[{"name":"AgGrid","comment":" AgGrid integration for elm.\n\n\n# Data Types\n\n@docs Aggregation, CellEditor, ColumnDef, ColumnSettings, EventType, FilterType, LockPosition, PinningType, Renderer\n@docs RowGroupPanelVisibility, RowSelection, Sorting, StateChange, CsvExportParams, ExcelExportParams\n\n\n# Grid\n\n@docs GridConfig, grid\n\n\n# Defaults\n\n@docs defaultGridConfig, defaultSettings\n\n\n# Events\n\n@docs onCellChanged, onCellDoubleClicked, onCellClicked, onSelectionChange, onContextMenu\n\n\n# ColumnState\n\n@docs ColumnState, onColumnStateChanged, columnStatesDecoder, columnStatesEncoder, applyColumnState\n\n\n# FilterState\n\n@docs FilterState, onFilterStateChanged, filterStatesEncoder, filterStatesDecoder\n\n\n# Sidebar\n\n@docs Sidebar, SidebarType, SidebarPosition, defaultSidebar\n\n\n# Type parser\n\n@docs aggregationToString, pinningTypeToString, sortingToString, toAggregation, toPinningType, toSorting\n\n","unions":[{"name":"Aggregation","comment":" Variants to aggregate values for a grouped column.\n","args":[],"cases":[["AvgAggregation",[]],["CountAggregation",[]],["CustomAggregation",["String.String"]],["FirstAggregation",[]],["LastAggregation",[]],["MaxAggregation",[]],["MinAggregation",[]],["NoAggregation",[]],["SumAggregation",[]]]},{"name":"CellEditor","comment":" CellEditor\n\n  - `DefaultEditor` will set an editor derived from the renderer\n  - `PredefinedEditor` allows to use an existing ag-grid editor\n  - `AppEditor` allows to use an Elm app as custom editor\n\n","args":[],"cases":[["AppEditor",["{ componentName : String.String, componentParams : Maybe.Maybe Json.Encode.Value }"]],["PredefinedEditor",["String.String"]],["DefaultEditor",[]]]},{"name":"EventType","comment":" Possible variants of callbacks that can lead to a certain change.\n","args":[],"cases":[["ColumnMoved",[]],["ColumnResized",[]],["ColumnVisible",[]],["FilterChanged",[]],["GridColumnsChanged",[]],["SortChanged",[]],["ColumnPinned",[]],["ColumnRowGroupChanged",[]],["ColumnValueChanged",[]],["ResetColumns",[]]]},{"name":"FilterState","comment":" Filter state.\n\nCan be used to evaluate the current filter configuration whenever a filter on a column gets changed.\n\nMight be used to persist the filters applied to the table for the users to the localstorage or some\nother external storage. Filter states can be restored through the `filterState` on the `GridConfig`.\n\nAG Grid reference: <https://www.ag-grid.com/javascript-data-grid/filtering/#column-filter-types>\n\n","args":[],"cases":[["TextFilterState",["AgGrid.TextFilterAttrs"]],["NumberFilterState",["AgGrid.NumberFilterAttrs"]],["DateFilterState",["AgGrid.DateFilterAttrs"]],["SetFilterState",["AgGrid.SetFilterAttrs"]]]},{"name":"FilterType","comment":" Possible filter options for columns.\n","args":[],"cases":[["DefaultFilter",[]],["DateFilter",[]],["NumberFilter",[]],["StringFilter",[]],["SetFilter",[]],["NoFilter",[]]]},{"name":"LockPosition","comment":" Lock a column to position to left or right to always have this column displayed in that position.\n\nOr can be configured to not lock in one position and move the column freely.\n\n","args":[],"cases":[["LockToLeft",[]],["LockToRight",[]],["NoPositionLock",[]]]},{"name":"PinningType","comment":" Possible options to pin a column.\n","args":[],"cases":[["PinnedToLeft",[]],["PinnedToRight",[]],["Unpinned",[]]]},{"name":"Renderer","comment":" The `Renderer` expresses how the data is retrieved from the list of data\nand rendered to the view.\n\nThe editor and renderer views in the table depend on the type.\nFor example, a `BoolRenderer` is displayed and can be edited with a checkbox\nin the table.\n\nThe `Renderer` may need a function to read the value for the cell from the\nrecords.\n\n\n### Example\n\nIf the data is list of `Product`, the `Renderer` to display the column for\nthe `title` might be defined as:\n\n    type alias Product =\n        { title : String }\n\n    -- Column definitions:\n    [{ renderer = StringRenderer .title, ... }]\n\n","args":["dataType"],"cases":[["AppRenderer",["{ componentName : String.String, componentParams : Maybe.Maybe Json.Encode.Value }","dataType -> String.String"]],["BoolRenderer",["dataType -> Basics.Bool"]],["CurrencyRenderer",["{ countryCode : String.String, currency : String.String }","dataType -> Maybe.Maybe String.String"]],["DecimalRenderer",["{ countryCode : String.String, decimalPlaces : Basics.Int }","dataType -> Maybe.Maybe String.String"]],["FloatRenderer",["dataType -> Basics.Float"]],["GroupRenderer",["dataType -> String.String"]],["IntRenderer",["dataType -> Basics.Int"]],["MaybeFloatRenderer",["dataType -> Maybe.Maybe Basics.Float"]],["MaybeIntRenderer",["dataType -> Maybe.Maybe Basics.Int"]],["MaybeStringRenderer",["dataType -> Maybe.Maybe String.String"]],["DateRenderer",["dataType -> String.String"]],["NoRenderer",[]],["PercentRenderer",["{ countryCode : String.String, decimalPlaces : Basics.Int }","dataType -> Maybe.Maybe String.String"]],["SelectionRenderer",["dataType -> String.String","List.List String.String"]],["StringRenderer",["dataType -> String.String"]]]},{"name":"RowGroupPanelVisibility","comment":" Row Group Panel allows the users to control which columns the rows are grouped by.\n","args":[],"cases":[["AlwaysVisible",[]],["NeverVisible",[]],["OnlyWhenGroupingVisible",[]]]},{"name":"RowSelection","comment":" Type of row selection, set to either `SingleRowSelection` or `MultipleRowSelection` to enable selection.\n\n  - `SingleRowSelection` will use single row selection, such that when you select a row, any previously selected row gets unselected.\n  - `MultipleRowSelection` allows multiple rows to be selected.\n  - `NoRowSelection` will not perform a row selection, only selecting the cell.\n\n","args":[],"cases":[["MultipleRowSelection",[]],["NoRowSelection",[]],["SingleRowSelection",[]]]},{"name":"SidebarPosition","comment":" Position for the sidebar.\n","args":[],"cases":[["SidebarLeft",[]],["SidebarRight",[]]]},{"name":"SidebarType","comment":" Possible options for displayed sidebars.\n","args":[],"cases":[["ColumnSidebar",[]],["FilterSidebar",[]]]},{"name":"Sorting","comment":" Possible pre-configured column sorting.\n","args":[],"cases":[["SortAscending",[]],["SortDescending",[]],["NoSorting",[]]]}],"aliases":[{"name":"ColumnDef","comment":" Column definition.\n\nRequires `field`, `renderer`, `headerName`, and `settings` to be defined\nfor each column.\n\n  - `field`: name of the column and specifically used to decode data\n    properly (e.g. from events)\n\n  - `renderer`: used to render data to a cell (for more information see\n    the documentation for `Renderer`)\n\n  - `headerName`: displayed text in the column header\n\n  - `settings`: allows to customize each column - a `defaultSettings`\n    record is offered, which can be adjusted to your own needs to reduce\n    the implemenation overhead.\n\n\n### Example\n\n    let\n        defaultSettings =\n            AgGrid.defaultSettings\n    in\n    [ { field = \"id\"\n      , renderer = IntRenderer .id\n      , headerName = \"Id\"\n      , settings = defaultSettings\n      }\n    , { field = \"title\"\n      , renderer = StringRenderer .title\n      , headerName = \"Product\"\n      , settings =\n            { defaultSettings\n                | editable = False\n                , pinned = AgGrid.PinnedToLeft\n            }\n      }\n    ]\n\n","args":["dataType"],"type":"{ field : String.String, renderer : AgGrid.Renderer dataType, headerName : String.String, settings : AgGrid.ColumnSettings }"},{"name":"ColumnSettings","comment":" Column configuration settings.\n","args":[],"type":"{ aggFunc : AgGrid.Aggregation, allowedAggFuncs : Maybe.Maybe (List.List AgGrid.Aggregation), defaultAggFunc : AgGrid.Aggregation, autoHeaderHeight : Basics.Bool, cellClassRules : List.List AgGrid.ClassRule, checkboxSelection : Basics.Bool, customCellEditor : AgGrid.CellEditor, editable : AgGrid.Expression.Eval Basics.Bool, enablePivot : Basics.Bool, enableRowGroup : Basics.Bool, enableValue : Basics.Bool, filter : AgGrid.FilterType, filterParams : { buttons : List.List AgGrid.FilterButtonType, closeOnApply : Basics.Bool }, filterValueGetter : Maybe.Maybe String.String, flex : Maybe.Maybe Basics.Int, floatingFilter : Basics.Bool, headerCheckboxSelection : Basics.Bool, hide : Basics.Bool, lockPosition : AgGrid.LockPosition, minWidth : Maybe.Maybe Basics.Int, pinned : AgGrid.PinningType, pivot : Basics.Bool, pivotIndex : Maybe.Maybe Basics.Int, resizable : Basics.Bool, rowGroup : Basics.Bool, rowGroupIndex : Maybe.Maybe Basics.Int, showDisabledCheckboxes : Basics.Bool, sortable : Basics.Bool, sort : AgGrid.Sorting, sortIndex : Maybe.Maybe Basics.Int, suppressColumnsToolPanel : Basics.Bool, suppressFiltersToolPanel : Basics.Bool, suppressMenu : Basics.Bool, suppressSizeToFit : Basics.Bool, valueFormatter : Maybe.Maybe String.String, valueGetter : Maybe.Maybe String.String, valueParser : Maybe.Maybe String.String, valueSetter : Maybe.Maybe String.String, width : Maybe.Maybe Basics.Float, wrapHeaderText : Basics.Bool }"},{"name":"ColumnState","comment":" Column state.\n\nCan be used to evaluate the current table state whenever a change to the structure of the table\nhappens (e.g. sorting, order, sizing, or visiblity of columns changed).\n\nMight be used to persist the table state of the user to the localstorage or some other external\nstorage. Column states can be restored through the `columnState` on the `GridConfig`.\n\n","args":[],"type":"{ aggFunc : Maybe.Maybe String.String, colId : String.String, flex : Maybe.Maybe Basics.Int, hide : Maybe.Maybe Basics.Bool, pinned : Maybe.Maybe String.String, pivot : Maybe.Maybe Basics.Bool, pivotIndex : Maybe.Maybe Basics.Int, rowGroup : Maybe.Maybe Basics.Bool, rowGroupIndex : Maybe.Maybe Basics.Int, sort : Maybe.Maybe String.String, sortIndex : Maybe.Maybe Basics.Int, width : Basics.Float }"},{"name":"CsvExportParams","comment":" Possible configuration for the CSV export.\n","args":[],"type":"{ fileName : String.String, columnKeys : List.List String.String }"},{"name":"ExcelExportParams","comment":" Possible configuration for the Excel export.\n","args":[],"type":"{ fileName : String.String, columnKeys : List.List String.String }"},{"name":"GridConfig","comment":" Grid configurations.\n","args":["dataType"],"type":"{ autoGroupColumnDef : { cellRendererParams : { suppressCount : Basics.Bool, checkbox : Basics.Bool }, headerName : Maybe.Maybe String.String, minWidth : Maybe.Maybe Basics.Int, resizable : Basics.Bool }, autoSizeColumns : Basics.Bool, cacheQuickFilter : Basics.Bool, columnStates : List.List AgGrid.ColumnState, contextMenu : Maybe.Maybe AgGrid.ContextMenu.ContextMenu, csvExport : Maybe.Maybe AgGrid.CsvExportParams, detailRenderer : Maybe.Maybe { componentName : String.String, componentParams : Maybe.Maybe Json.Encode.Value, rowHeight : Maybe.Maybe Basics.Int }, disableResizeOnScroll : Basics.Bool, excelExport : Maybe.Maybe AgGrid.ExcelExportParams, filterStates : Dict.Dict String.String AgGrid.FilterState, groupDefaultExpanded : Basics.Int, groupIncludeFooter : Basics.Bool, groupIncludeTotalFooter : Basics.Bool, groupSelectsChildren : Basics.Bool, isRowSelectable : dataType -> Basics.Bool, maintainColumnOrder : Basics.Bool, pagination : Basics.Bool, quickFilterText : String.String, rowGroupPanelShow : AgGrid.RowGroupPanelVisibility, rowHeight : Maybe.Maybe Basics.Int, rowId : Maybe.Maybe (dataType -> String.String), rowMultiSelectWithClick : Basics.Bool, rowSelection : AgGrid.RowSelection, rowClassRules : List.List AgGrid.ClassRule, selectedIds : List.List String.String, sideBar : AgGrid.Sidebar, size : String.String, sizeToFitAfterFirstDataRendered : Basics.Bool, stopEditingWhenCellsLoseFocus : Basics.Bool, suppressMenuHide : Basics.Bool, suppressRowClickSelection : Basics.Bool, suppressRowDeselection : Basics.Bool, themeClasses : Maybe.Maybe String.String }"},{"name":"Sidebar","comment":" Sidebar configuration.\n","args":[],"type":"{ panels : List.List AgGrid.SidebarType, defaultToolPanel : Maybe.Maybe AgGrid.SidebarType, position : AgGrid.SidebarPosition }"},{"name":"StateChange","comment":" Change event data for a table state changes.\n","args":["type_"],"type":"{ event : { type_ : AgGrid.EventType }, states : type_ }"}],"values":[{"name":"aggregationToString","comment":" Stringify an Aggregation.\n\nThis matches the configuration for AgGrid and equals the value retrieved from the `ColumnState`.\nFurther, it can be used for external communication if necessary.\n\n","type":"AgGrid.Aggregation -> Maybe.Maybe String.String"},{"name":"applyColumnState","comment":" Apply the column state from the `GridConfig` to the given `ColumnDefs`.\n\nThe values from the cache overwrite the values on the ColumnDef. The order is also according\nto the order in the column state. New columns, that don't exist in the column state, are appended to the end.\n\n**This function is mainly exposed to allow unit-testing, as this is automatically applied to ColumnDefs passed to the `grid`.**\n\n","type":"AgGrid.GridConfig dataType -> List.List (AgGrid.ColumnDef dataType) -> List.List (AgGrid.ColumnDef dataType)"},{"name":"columnStatesDecoder","comment":" Decoder for the current column states.\n\nCan be used to retrieve and decode the column states from an external storage.\n\n","type":"Json.Decode.Decoder (List.List AgGrid.ColumnState)"},{"name":"columnStatesEncoder","comment":" Encode a collection of `ColumnState`.\n\nCan be used to persist the current list of `ColumnState` for the grid to an external storage.\n\n","type":"List.List AgGrid.ColumnState -> Json.Encode.Value"},{"name":"defaultGridConfig","comment":" Retrieve a `GridConfig` record with default configuration.\n\nCan be used when implementing the grid.\n\n        { autoGroupColumnDef =\n            { cellRendererParams =\n                { suppressCount = False\n                , checkbox = False\n                }\n            , headerName = Nothing\n            , minWidth = Nothing\n            , resizable = True\n            }\n        , autoSizeColumns = False\n        , cacheQuickFilter = False\n        , columnStates = []\n        , detailRenderer = Nothing\n        , disableResizeOnScroll = False\n        , filterStates = Dict.empty\n        , groupDefaultExpanded = 0\n        , groupIncludeFooter = False\n        , groupIncludeTotalFooter = False\n        , groupSelectsChildren = False\n        , isRowSelectable = always True\n        , pagination = False\n        , quickFilterText = \"\"\n        , rowGroupPanelShow = NeverVisible\n        , rowHeight = Nothing\n        , rowMultiSelectWithClick = False\n        , rowSelection = MultipleRowSelection\n        , selectedIds = []\n        , sideBar = defaultSidebar\n        , size = \"65vh\"\n        , sizeToFitAfterFirstDataRendered = True\n        , stopEditingWhenCellsLoseFocus = True\n        , suppressMenuHide = False\n        , suppressRowClickSelection = False\n        , suppressRowDeselection = False\n        , themeClasses = Nothing\n        }\n\n","type":"AgGrid.GridConfig dataType"},{"name":"defaultSettings","comment":" Retrieve a `ColumnSettings` record with default configuration.\n\nCan be used when implementing column configurations for the table.\n\nDefault column settings:\n\n    { aggFunc = NoAggregation\n    , allowedAggFuncs = Nothing\n    , defaultAggFunc = SumAggregation\n    , autoHeaderHeight = False\n    , cellClassRules = []\n    , checkboxSelection = False\n    , customCellEditor = DefaultEditor\n    , editable = Const False\n    , enablePivot = True\n    , enableRowGroup = True\n    , enableValue = True\n    , filter = DefaultFilter\n    , filterParams =\n        { buttons = [ ClearButton ]\n        , closeOnApply = False\n        }\n    , filterValueGetter = Nothing\n    , flex = Nothing\n    , floatingFilter = False\n    , headerCheckboxSelection = False\n    , hide = False\n    , lockPosition = NoPositionLock\n    , minWidth = Nothing\n    , pinned = Unpinned\n    , pivot = False\n    , pivotIndex = Nothing\n    , resizable = True\n    , rowGroup = False\n    , rowGroupIndex = Nothing\n    , showDisabledCheckboxes = False\n    , sortable = True\n    , sort = NoSorting\n    , sortIndex = Nothing\n    , suppressColumnsToolPanel = False\n    , suppressFiltersToolPanel = False\n    , suppressMenu = False\n    , suppressSizeToFit = True\n    , valueFormatter = Nothing\n    , valueGetter = Nothing\n    , valueParser = Nothing\n    , valueSetter = Nothing\n    , width = Nothing\n    , wrapHeaderText = False\n    }\n\n","type":"AgGrid.ColumnSettings"},{"name":"defaultSidebar","comment":" Retrieve a `Sidebar` with default configuration.\n\nCan be used to ease the sidebar configuration.\n\n        { panels = []\n        , defaultToolPanel = Nothing\n        , position = SidebarRight\n        }\n\n","type":"AgGrid.Sidebar"},{"name":"filterStatesDecoder","comment":" Decoder for the filter states.\n\nCan be used to retrieve and decode the filter states from an external storage.\n\n","type":"Json.Decode.Decoder (Dict.Dict String.String AgGrid.FilterState)"},{"name":"filterStatesEncoder","comment":" Encode a collection of `FilterState`.\n\nCan be used to persist the current collection of `FilterState` for the grid to an external storage.\n\n","type":"Dict.Dict String.String AgGrid.FilterState -> Json.Encode.Value"},{"name":"grid","comment":" Defines the data grid.\n\n\n## Example\n\n    let\n        gridConfig =\n            AgGrid.defaultGridConfig\n                |> (\\config -> { config | themeClasses = Just \"ag-theme-balham ag-basic\" })\n\n        events =\n            [ onCellChanged rowDecoder UpdateProduct ]\n\n        defaultSettings =\n            AgGrid.defaultSettings\n                |> (\\settings -> { settings | editable = True })\n\n        columns =\n            [ { field = \"id\"\n              , renderer = IntRenderer .id\n              , headerName = \"Id\"\n              , settings = { defaultSettings | enablePivot = False }\n              }\n            , { field = \"title\"\n              , renderer = StringRenderer .title\n              , headerName = \"Product\"\n              , settings = { defaultSettings | filter = StringFilter }\n              }\n            ]\n\n        data =\n            model.products\n    in\n    grid gridConfig events columns data\n\n","type":"AgGrid.GridConfig dataType -> List.List (Html.Attribute msg) -> List.List (AgGrid.ColumnDef dataType) -> List.List dataType -> Html.Html msg"},{"name":"onCellChanged","comment":" Detect change events on cells.\n\nDecodes the changed row according to the provided `dataDecoder` and passes the result to\nthe message `toMsg`.\n\nHandles the `cellValueChanged` event from Ag Grid.\n\n","type":"Json.Decode.Decoder dataType -> (Result.Result Json.Decode.Error dataType -> msg) -> Html.Attribute msg"},{"name":"onCellClicked","comment":" Detect click events on cells.\n\nDecodes the row of the clicked cell according to the provided `dataDecoder` and the field\nname of the clicked cells as tuple and passes the result to the message `toMsg`.\n\nHandles the `cellClicked` event from Ag Grid.\n\n","type":"Json.Decode.Decoder dataType -> (( Result.Result Json.Decode.Error dataType, String.String ) -> msg) -> Html.Attribute msg"},{"name":"onCellDoubleClicked","comment":" Detect doubleclick events on cells.\n\nDecodes the row of the clicked cell according to the provided `dataDecoder` and the field\nname of the clicked cells as tuple and passes the result to the message `toMsg`.\n\nHandles the `cellDoubleClicked` event from Ag Grid.\n\n","type":"Json.Decode.Decoder dataType -> (( Result.Result Json.Decode.Error dataType, String.String ) -> msg) -> Html.Attribute msg"},{"name":"onColumnStateChanged","comment":" Detect change events to the table structure (e.g. sorting or moved columns).\n\nDecodes the `EventType` of the change and the current states of the grid columns and passes\nthe result to the `toMsg`.\n\n","type":"(AgGrid.StateChange (List.List AgGrid.ColumnState) -> msg) -> Html.Attribute msg"},{"name":"onContextMenu","comment":" Detect click on custom context menu actions\n","type":"Json.Decode.Decoder dataType -> (( Result.Result Json.Decode.Error dataType, String.String ) -> msg) -> Html.Attribute msg"},{"name":"onFilterStateChanged","comment":" Detect change events to the table filters.\n\nDecodes the `EventType` of the change and the filter configuration of the grid columns and passes\nthe result to the `toMsg`.\n\n","type":"(AgGrid.StateChange (Dict.Dict String.String AgGrid.FilterState) -> msg) -> Html.Attribute msg"},{"name":"onSelectionChange","comment":" Detect selection change events.\n\nSends the current selection of [nodes](https://www.ag-grid.com/javascript-data-grid/row-object/) to the `toMsg`.\n\n","type":"Json.Decode.Decoder node -> (Result.Result Json.Decode.Error (List.List node) -> msg) -> Html.Attribute msg"},{"name":"pinningTypeToString","comment":" Stringify a PinningType.\n\nThis matches the configuration for AgGrid and equals the value retrieved from the `ColumnState`.\nFurther, it can be used for external communication if necessary.\n\n","type":"AgGrid.PinningType -> Maybe.Maybe String.String"},{"name":"sortingToString","comment":" Stringify the Sorting.\n\nThis matches the configuration for AgGrid and equals the value retrieved from the `ColumnState`.\nFurther, it can be used for external communication if necessary.\n\n","type":"AgGrid.Sorting -> Maybe.Maybe String.String"},{"name":"toAggregation","comment":" Parse a string to an Aggregation.\n\nThis can be used in combination with the value on the `ColumnState`.\nFurther, it can be used for external communication if necessary.\n\n","type":"Maybe.Maybe String.String -> AgGrid.Aggregation"},{"name":"toPinningType","comment":" Parse a string to a PinningType.\n\nThis can be used in combination with the value on the `ColumnState`.\nFurther, it can be used for external communication if necessary.\n\n","type":"Maybe.Maybe String.String -> AgGrid.PinningType"},{"name":"toSorting","comment":" Parse a string to the Sorting type.\n\nThis can be used in combination with the value on the `ColumnState`.\nFurther, it can be used for external communication if necessary.\n\n","type":"Maybe.Maybe String.String -> AgGrid.Sorting"}],"binops":[]},{"name":"AgGrid.ContextMenu","comment":"\n\n\n# Definition\n\n@docs ContextAction, ContextMenu\n\n\n# Custom context action\n\n@docs contextAction, defaultActionAttributes\n\n\n# Predefined context actions\n\n@docs autoSizeAllContextAction, chartRangeContextAction, contractAllContextAction, copyContextAction, copyWithGroupHeadersContextAction, copyWithHeadersContextAction\n@docs csvExportContextAction, cutContextAction, excelExportContextAction, expandAllContextAction, exportContextAction, pasteContextAction, pivotChartContextAction\n@docs resetColumnsContextAction, contextSeparator\n\n\n# Encoding\n\n@docs encode\n\n","unions":[{"name":"ContextAction","comment":" Context action configuration.\n","args":[],"cases":[]}],"aliases":[{"name":"ContextMenu","comment":" Type alias for a context menu.\n","args":[],"type":"List.List AgGrid.ContextMenu.ContextAction"}],"values":[{"name":"autoSizeAllContextAction","comment":" Auto-size all columns.\n\nReference: <https://www.ag-grid.com/javascript-data-grid/context-menu/#built-in-menu-items>\n\n","type":"AgGrid.ContextMenu.ContextAction"},{"name":"chartRangeContextAction","comment":" Chart a range of selected cells. Only shown if charting is enabled.\n\nReference: <https://www.ag-grid.com/javascript-data-grid/context-menu/#built-in-menu-items>\n\n","type":"AgGrid.ContextMenu.ContextAction"},{"name":"contextAction","comment":" Create a custom context action\n","type":"{ name : String.String, checked : Maybe.Maybe Basics.Bool, actionName : Maybe.Maybe String.String, disabled : AgGrid.Expression.Eval Basics.Bool, icon : Maybe.Maybe String.String, cssClasses : List.List ( List.List String.String, AgGrid.Expression.Eval Basics.Bool ), subMenu : List.List AgGrid.ContextMenu.ContextAction } -> AgGrid.ContextMenu.ContextAction"},{"name":"contextSeparator","comment":" Adds a septerator to the context menu.\n\nReference: <https://www.ag-grid.com/javascript-data-grid/context-menu/#built-in-menu-items>\n\n","type":"AgGrid.ContextMenu.ContextAction"},{"name":"contractAllContextAction","comment":" Collapse all groups. When set, it's only shown if grouping by at least one column.\n\nReference: <https://www.ag-grid.com/javascript-data-grid/context-menu/#built-in-menu-items>\n\n","type":"AgGrid.ContextMenu.ContextAction"},{"name":"copyContextAction","comment":" Copy selected value to clipboard.\n\nReference: <https://www.ag-grid.com/javascript-data-grid/context-menu/#built-in-menu-items>\n\n","type":"AgGrid.ContextMenu.ContextAction"},{"name":"copyWithGroupHeadersContextAction","comment":" Copy selected value to clipboard with headers and header groups.\n\nReference: <https://www.ag-grid.com/javascript-data-grid/context-menu/#built-in-menu-items>\n\n","type":"AgGrid.ContextMenu.ContextAction"},{"name":"copyWithHeadersContextAction","comment":" Copy selected value to clipboard with headers.\n\nReference: <https://www.ag-grid.com/javascript-data-grid/context-menu/#built-in-menu-items>\n\n","type":"AgGrid.ContextMenu.ContextAction"},{"name":"csvExportContextAction","comment":" Export to CSV using all default export values.\n\nReference: <https://www.ag-grid.com/javascript-data-grid/context-menu/#built-in-menu-items>\n\n","type":"AgGrid.ContextMenu.ContextAction"},{"name":"cutContextAction","comment":" Cut the selected value to clipboard.\n\nReference: <https://www.ag-grid.com/javascript-data-grid/context-menu/#built-in-menu-items>\n\n","type":"AgGrid.ContextMenu.ContextAction"},{"name":"defaultActionAttributes","comment":" Retrieves `ContextActionAttributes` with default configuration.\n\nCan be used to ease the context action attributes configuration.\n\n        { name = \"\"\n        , checked = Nothing\n        , disabled = Const False\n        , actionName = Nothing\n        , icon = Nothing\n        , subMenu = []\n        }\n\n","type":"AgGrid.ContextMenu.ContextActionAttributes"},{"name":"encode","comment":" Encodes the ContextMenu type to json.\n","type":"AgGrid.ContextMenu.ContextMenu -> Json.Encode.Value"},{"name":"excelExportContextAction","comment":" Export to Excel (.xlsx) using all default export values.\n\nReference: <https://www.ag-grid.com/javascript-data-grid/context-menu/#built-in-menu-items>\n\n","type":"AgGrid.ContextMenu.ContextAction"},{"name":"expandAllContextAction","comment":" When set, it's only shown if grouping by at least one column.\n\nReference: <https://www.ag-grid.com/javascript-data-grid/context-menu/#built-in-menu-items>\n\n","type":"AgGrid.ContextMenu.ContextAction"},{"name":"exportContextAction","comment":" Export sub menu (containing csvExport and excelExport).\n\nReference: <https://www.ag-grid.com/javascript-data-grid/context-menu/#built-in-menu-items>\n\n","type":"AgGrid.ContextMenu.ContextAction"},{"name":"pasteContextAction","comment":" Always disabled.\n\nReference: <https://www.ag-grid.com/javascript-data-grid/context-menu/#built-in-menu-items>\n\n","type":"AgGrid.ContextMenu.ContextAction"},{"name":"pivotChartContextAction","comment":" Chart all grouped and pivoted data from the grid. Only shown if charting is enabled and in Pivot Mode.\n\nReference: <https://www.ag-grid.com/javascript-data-grid/context-menu/#built-in-menu-items>\n\n","type":"AgGrid.ContextMenu.ContextAction"},{"name":"resetColumnsContextAction","comment":" Reset all columns\n\nReference: <https://www.ag-grid.com/javascript-data-grid/context-menu/#built-in-menu-items>\n\n","type":"AgGrid.ContextMenu.ContextAction"}],"binops":[]},{"name":"AgGrid.Expression","comment":" Integration of Expressions for AgGrid. A `Expression` will be encoded and evaluated in javascript.\n\nFor more information take a look at <https://github.com/mercurymedia/elm-ag-grid/blob/10.0.0/ag-grid-webcomponent/expression.js>.\n\n\n# Definition\n\n@docs Eval, Expression, Literal, Operator\n\n\n# Operators\n\n@docs or, and, eq, lte, gte, not, includes\n\n\n# Literals\n\n@docs bool, int, string, float, list\n\n\n# Row values\n\n@docs value\n\n\n# Encoding\n\n@docs encode\n\n","unions":[{"name":"Eval","comment":" `Eval a` can be a `Cosnt a` or and `Expr`\n\n    A `Const a` will pass the value of the type `a` directly to the `AgGrid` attribute in javascript.\n    A `Expr` will frist evaluated in javascript and than passed to the `AgGrid` attribute.\n\n","args":["a"],"cases":[["Const",["a"]],["Expr",["AgGrid.Expression.Expression"]]]},{"name":"Expression","comment":" A `Expression` covers some basic operators to evaluate\n\nAt this moment this only covers very basic operations\n\n","args":[],"cases":[]},{"name":"Literal","comment":" The `Literal` type represents literals for strings, ints and floats.\n","args":[],"cases":[]},{"name":"Operator","comment":" A `Operator` take expression(s) and evaluate the result in javascript.\n","args":[],"cases":[]}],"aliases":[],"values":[{"name":"and","comment":" Represents the && operator\n\n    Expression.and (Expression.value \"likesElm\") (Expression.value \"isProgrammer\")\n\n","type":"AgGrid.Expression.Expression -> AgGrid.Expression.Expression -> AgGrid.Expression.Expression"},{"name":"bool","comment":" A bool literal\n\n    Expression.bool True\n\n","type":"Basics.Bool -> AgGrid.Expression.Expression"},{"name":"encode","comment":" The encode encodes a evaluation.\n","type":"(a -> Json.Encode.Value) -> AgGrid.Expression.Eval a -> Json.Encode.Value"},{"name":"eq","comment":" Represents the == operator\n\n    Expression.eq (Expression.int 18) (Expression.value \"age\")\n\n","type":"AgGrid.Expression.Expression -> AgGrid.Expression.Expression -> AgGrid.Expression.Expression"},{"name":"float","comment":" A float Literal\n\n    Expression.float 13.37\n\n","type":"Basics.Float -> AgGrid.Expression.Expression"},{"name":"gte","comment":" Represents the >= operator\n\n    Expression.gte (Expression.int 18) (Expression.value \"age\")\n\n","type":"AgGrid.Expression.Expression -> AgGrid.Expression.Expression -> AgGrid.Expression.Expression"},{"name":"includes","comment":" Performs the javascript Array.inclues function\n\n    Expression.includes (Expression.string \"Tim\") (Expression.value \"names\")\n    Where names is a list of Strings.\n\n","type":"AgGrid.Expression.Expression -> AgGrid.Expression.Expression -> AgGrid.Expression.Expression"},{"name":"int","comment":" An int Literal\n\n    Expression.int 18\n\n","type":"Basics.Int -> AgGrid.Expression.Expression"},{"name":"list","comment":" A string-list literal\n\n    Expression.list [ \"a\", \"b\" ]\n\n","type":"List.List String.String -> AgGrid.Expression.Expression"},{"name":"lte","comment":" Represents the <= operator\n\n    Expression.lte (Expression.int 18) (Expression.value \"age\")\n\n","type":"AgGrid.Expression.Expression -> AgGrid.Expression.Expression -> AgGrid.Expression.Expression"},{"name":"not","comment":" Represents the ! operator\n\n    Expression.not (Expression.value \"isActive\")\n\n","type":"AgGrid.Expression.Expression -> AgGrid.Expression.Expression"},{"name":"or","comment":" Represents the || operator\n\n    Expression.or (Expression.value \"likesElm\") (Expression.value \"isProgrammer\")\n\n","type":"AgGrid.Expression.Expression -> AgGrid.Expression.Expression -> AgGrid.Expression.Expression"},{"name":"string","comment":" A string Literal\n\n    Expression.string \"Tim\"\n\n","type":"String.String -> AgGrid.Expression.Expression"},{"name":"value","comment":" The value function can be used to get a value from the data object passed in from a callback of `AgGrid`.\n\nFor example when it comes to disable a contextMenu entry, you can get a value from the current clicked row.\n\n    type alias Row =\n        { age : Int }\n\n    columnDefs =\n        [ { field = \"age\"\n          , renderer = IntRenderer .age\n          , headerName = \"Age\"\n          , settings = AgGrid.defaultSettings\n          }\n        ]\n\n    contextMenu =\n        [ AgGridContextMenu.contextAction\n            { defaultActionAttributes\n                | name = \"Full age action\"\n                , actionName = Just \"fullAgeAction\"\n                , disabled = Expression.Expr (Expression.lte (Expression.value \"age\") (Expression.int 18))\n            }\n        ]\n\n","type":"String.String -> AgGrid.Expression.Expression"}],"binops":[]},{"name":"AgGrid.ValueFormat","comment":" Formatting of values in the AgGrid table.\n\nAllows to format values as currencies, decimal, and percent.\n\n\n# valueFormatter\n\n@docs currencyValueFormatter, decimalValueFormatter, percentValueFormatter\n\n\n# ValueGetter\n\n@docs numberValueGetter\n\n\n# filterValueGetter\n\n@docs booleanFilterValueGetter, numberFilterValueGetter, dateFilterValueGetter\n\n","unions":[],"aliases":[],"values":[{"name":"booleanFilterValueGetter","comment":" Format a boolean cell value with a proper translation.\n\nThis is similar to using a normal Value Getter, but is specific to the filter.\n\n    cellValue = true\n\n    booleanFilterValueGetter \"boolField\"\n    > \"Yes\"\n\n","type":"{ true : String.String, false : String.String, field : String.String } -> String.String"},{"name":"currencyValueFormatter","comment":" Format a cell value as localized CURRENCY value utilizing the Javascript `Intl.NumberFormat` class.\n\n    cellValue = \"1200.35\"\n\n    currencyValueFormatter { currency = \"EUR\", countryCode = \"de-DE\" }\n    > \"1.200,35 €\"\n\n    currencyValueFormatter { currency = \"EUR\", countryCode = \"en-US\" }\n    > \"€1,200.35\"\n\n","type":"{ currency : String.String, countryCode : String.String } -> String.String"},{"name":"dateFilterValueGetter","comment":" Format a cell value as Date.\n\nThis is similar to using a normal Value Getter, but is specific to the filter.\n\n    cellValue = \"2023-12-12\"\n\n    dateFilterValueGetter \"dateField\"\n    > const date = Date(\"2023-12-12\");\n    > date.setHours(0,0,0);\n\n","type":"String.String -> String.String"},{"name":"decimalValueFormatter","comment":" Format a cell value as localized DECIMAL value utilizing the Javascript `Intl.NumberFormat` class.\n\n    cellValue = 1200.35\n\n    decimalValueFormatter { countryCode = \"de-DE\", decimalPlaces = 1 }\n    > \"1.200,4\"\n\n    decimalValueFormatter { countryCode = \"en-US\", decimalPlaces = 0 }\n    > \"1,200\"\n\n","type":"{ countryCode : String.String, decimalPlaces : Basics.Int } -> String.String"},{"name":"numberFilterValueGetter","comment":" Format a cell value as number.\n\nThis is similar to using a normal Value Getter, but is specific to the filter.\n\n    cellValue = \"15\"\n\n    numberFilterValueGetter \"numberField\"\n    > 15\n\n","type":"String.String -> String.String"},{"name":"numberValueGetter","comment":" Casts the field value as a number.\n\nThis is important if the cell value is given as a string (e.g. for currencies) but needs to a number\nin order to aggregate the values.\n\n","type":"String.String -> String.String"},{"name":"percentValueFormatter","comment":" Format a cell value as localized PERCENT value utilizing the Javascript `Intl.NumberFormat` class.\n\n    cellValue = 0.15\n\n    percentValueFormatter { countryCode = \"de-DE\" }\n    > \"15%\"\n\n","type":"{ countryCode : String.String, decimalPlaces : Basics.Int } -> String.String"}],"binops":[]}]