{
  "meta": {
    "generatedAt": "2026-09-16T13:58:24.675Z",
    "repo": "G:/Dropbox/Work/SlickGrid/SlickGrid-6pac",
    "counts": {
      "gridOptions": 118,
      "gridOptionsWithDoc": 113,
      "gridOptionsWithDefault": 100,
      "columns": 50,
      "gridEvents": 57,
      "gridMethods": 150,
      "dataViewOptions": 4,
      "dataViewEvents": 9,
      "dataViewMethods": 57,
      "plugins": 20,
      "controls": 4,
      "coreClasses": 14,
      "editors": 8,
      "formatters": 5,
      "enums": 3
    }
  },
  "gridOptions": [
    {
      "name": "addNewRowCssClass",
      "type": "string",
      "optional": true,
      "description": "CSS class name used on newly added row",
      "default": "new-row"
    },
    {
      "name": "alwaysAllowHorizontalScroll",
      "type": "boolean",
      "optional": true,
      "description": "Defaults to false, which leads to always show an horizontal scrolling.",
      "default": false
    },
    {
      "name": "alwaysShowVerticalScroll",
      "type": "boolean",
      "optional": true,
      "description": "Defaults to false, which leads to always show a vertical scrolling. This is rather important to use when using the Grid Menu (hamburger)",
      "default": false
    },
    {
      "name": "asyncEditorLoadDelay",
      "type": "number",
      "optional": true,
      "description": "Defaults to 100, which is the asynchronous editor loading delay",
      "default": 100
    },
    {
      "name": "asyncEditorLoading",
      "type": "boolean",
      "optional": true,
      "description": "Defaults to false, which leads to load editor asynchronously (delayed)",
      "default": false
    },
    {
      "name": "asyncPostRenderDelay",
      "type": "number",
      "optional": true,
      "description": "Defaults to 50, which is the delay before the asynchronous post renderer start execution",
      "default": 50
    },
    {
      "name": "asyncPostRenderCleanupDelay",
      "type": "number",
      "optional": true,
      "description": "Defaults to 40, which is the delay before the asynchronous post renderer start cleanup execution",
      "default": 40
    },
    {
      "name": "auto",
      "type": "boolean",
      "optional": true,
      "description": "",
      "default": false
    },
    {
      "name": "nonce",
      "type": "string",
      "optional": true,
      "description": "Added for CSP header because of dynamic css generation.",
      "default": ""
    },
    {
      "name": "autoCommitEdit",
      "type": "boolean",
      "optional": true,
      "description": "Defaults to false, when enabled will try to commit the current edit without focusing on the next row.\r\nIf a custom editor is implemented and the grid cannot auto commit, you must use this option to implement it yourself",
      "default": false
    },
    {
      "name": "autoEdit",
      "type": "boolean",
      "optional": true,
      "description": "Defaults to false, when enabled it will automatically open the inlined editor as soon as there is a focus on the cell (can be combined with \"enableCellNavigation: true\").",
      "default": true
    },
    {
      "name": "autoEditByKeypress",
      "type": "boolean",
      "optional": true,
      "description": "Defaults to false, when enabled will automatically open the inlined editor as soon as user starts typing in an active cell (can be combined with \"enableCellNavigation: true\")."
    },
    {
      "name": "autoEditNewRow",
      "type": "boolean",
      "optional": true,
      "description": "Defaults to true, when enabled it will automatically open the editor when clicking on cell that has a defined editor.\r\nWhen using CellExternalCopyManager, this option could be useful to avoid opening the cell editor automatically on empty new row and we wish to paste our cell selection range.",
      "default": true
    },
    {
      "name": "autoHeight",
      "type": "boolean",
      "optional": true,
      "description": "Defaults to false, which leads to automatically adjust the size (height) of the grid to display the entire content without any scrolling in the grid."
    },
    {
      "name": "autosizeColsMode",
      "type": "string",
      "optional": true,
      "description": "defaults to LegacyOff, Grid Autosize Columns Mode used when calling \"autosizeColumns()\" method",
      "default": "GridAutosizeColsMode.LegacyOff"
    },
    {
      "name": "autosizeColPaddingPx",
      "type": "number",
      "optional": true,
      "description": "defaults to 4, autosize column padding in pixel",
      "default": 4
    },
    {
      "name": "autosizeTextAvgToMWidthRatio",
      "type": "number",
      "optional": true,
      "description": "defaults to 0.75, autosize text average to minimum width ratio",
      "default": 0.75
    },
    {
      "name": "cellFlashingCssClass",
      "type": "string",
      "optional": true,
      "description": "CSS class name used to simulate cell flashing",
      "default": "flashing"
    },
    {
      "name": "cellMenu",
      "type": "CellMenuOption",
      "optional": true,
      "description": "Cell menu options (Action menu)"
    },
    {
      "name": "colAutosizeTreatAsLockedBelowWidth",
      "type": "number",
      "optional": true,
      "description": "Defaults to 100px, maximum column width (px) below which a column may be treated as locked (not resized) during auto-sizing.\r\nNote that additional conditions must also be met: header text is not ignored, sizeToRemaining is false, and content size equals header width.",
      "default": 100
    },
    {
      "name": "columnPicker",
      "type": "ColumnPickerOption",
      "optional": true,
      "description": "Column Picker Plugin options (columnTitle, forceFitTitle, syncResizeTitle)"
    },
    {
      "name": "contextMenu",
      "type": "ContextMenuOption",
      "optional": true,
      "description": "Context menu options (mouse right+click)"
    },
    {
      "name": "createFooterRow",
      "type": "boolean",
      "optional": true,
      "description": "Defaults to false, which leads to creating the footer row of the grid",
      "default": false
    },
    {
      "name": "createPreHeaderPanel",
      "type": "boolean",
      "optional": true,
      "description": "Default to false, which leads to creating an extra pre-header panel (on top of column header) for column grouping purposes",
      "default": false
    },
    {
      "name": "createTopHeaderPanel",
      "type": "boolean",
      "optional": true,
      "description": "Default to false, which leads to creating an extra top-header panel (on top of column header & pre-header) for column grouping purposes",
      "default": false
    },
    {
      "name": "customTooltip",
      "type": "CustomTooltipOption",
      "optional": true,
      "description": "Custom Tooltip Options, the tooltip could be defined in any of the Column Definition or in the Grid Options,\r\nit will first try to find it in the Column that the user is hovering over or else (when not found) go and try to find it in the Grid Options"
    },
    {
      "name": "dataItemColumnValueExtractor",
      "type": "null | ((item: any, columnDef: C) => any)",
      "optional": true,
      "description": "Data item column value extractor (getter) that can be used by the Excel like copy buffer plugin",
      "default": null
    },
    {
      "name": "defaultColumnWidth",
      "type": "number",
      "optional": true,
      "description": "Default column width, is set to 80 when null",
      "default": 80
    },
    {
      "name": "defaultFormatter",
      "type": "Formatter",
      "optional": true,
      "description": "Default cell Formatter that will be used by the grid",
      "default": "this.defaultFormatter"
    },
    {
      "name": "devMode",
      "type": "false | { ownerNodeIndex?: number; containerClientWidth?: number; }",
      "optional": true,
      "description": "Escape hatch geared towards testing Slickgrid in JSDOM based environments to circumvent the lack of stylesheet.ownerNode and clientWidth calculations"
    },
    {
      "name": "doPaging",
      "type": "boolean",
      "optional": true,
      "description": "Do we have paging enabled?",
      "default": true
    },
    {
      "name": "editable",
      "type": "boolean",
      "optional": true,
      "description": "Defaults to false, when enabled will give the possibility to edit cell values with inline editors.",
      "default": false
    },
    {
      "name": "editCommandHandler",
      "type": "(item: any, column: C, command: EditCommand) => void",
      "optional": true,
      "description": "option to intercept edit commands and implement undo support."
    },
    {
      "name": "editorFactory",
      "type": "null | { getEditor: (col: C) => EditorConstructor; }",
      "optional": true,
      "description": "Editor classes factory",
      "default": null
    },
    {
      "name": "editorLock",
      "type": "SlickEditorLock",
      "optional": true,
      "description": "a global singleton editor lock.",
      "default": "GlobalEditorLock"
    },
    {
      "name": "emulatePagingWhenScrolling",
      "type": "boolean",
      "optional": true,
      "description": "Do we want to emulate paging when we are scrolling?",
      "default": true
    },
    {
      "name": "enableAddRow",
      "type": "boolean",
      "optional": true,
      "description": "Defaults to false, which leads to give user possibility to add row to the grid",
      "default": false
    },
    {
      "name": "enableAsyncPostRender",
      "type": "boolean",
      "optional": true,
      "description": "Do we want to enable asynchronous (delayed) post rendering",
      "default": false
    },
    {
      "name": "enableAsyncPostRenderCleanup",
      "type": "boolean",
      "optional": true,
      "description": "Defaults to false, which leads to cleanup after the post render is finished executing",
      "default": false
    },
    {
      "name": "enableAutoTooltip",
      "type": "boolean",
      "optional": true,
      "description": "Defaults to false, which leads to showing tooltip over cell & header values that are not shown completely (... ellipsis)"
    },
    {
      "name": "enableAutoSizeColumns",
      "type": "boolean",
      "optional": true,
      "description": "Defaults to false, which will automatically resize the column headers whenever the grid size changes"
    },
    {
      "name": "autoScrollOnColumnResize",
      "type": "boolean",
      "optional": true,
      "description": "Defaults to true, automatically scrolls the viewport while resizing a column beyond its visible edge.",
      "default": true
    },
    {
      "name": "enableCellNavigation",
      "type": "boolean",
      "optional": true,
      "description": "Defaults to false, which will let user click on cell and navigate with arrow keys.",
      "default": true
    },
    {
      "name": "editorCellNavOnLRKeys",
      "type": "boolean",
      "optional": true,
      "description": "Defaults to false, editor cell navigation left/right keys",
      "default": false
    },
    {
      "name": "enableCellRowSpan",
      "type": "boolean",
      "optional": true,
      "description": "Do we want to enable cell rowspan?\r\nNote: this is an opt-in option because of the multiple row/column/cells looping that it has to do\r\n(which is at least an O^n3 but only for visible range)",
      "default": false
    },
    {
      "name": "enableVariableRowHeight",
      "type": "boolean",
      "optional": true,
      "description": "Defaults to false. When enabled, rows may have differing heights: each row's height comes\r\nfrom the `rowHeightProvider` grid option (whose default implementation reads\r\n`ItemMetadata.height` from the data provider), falling back to the default `rowHeight`\r\nwhenever the provider returns `undefined`.\r\nWhen disabled (the default), every row uses `rowHeight`, the grid keeps its fixed-height\r\nfast path and `rowHeightProvider` is never called.",
      "default": false
    },
    {
      "name": "enableColumnReorder",
      "type": "boolean | ColumnReorderFunction<C>",
      "optional": true,
      "description": "Defaults to true, this option can be a boolean or a Column Reorder function.\r\nWhen provided as a boolean, it will permits the user to move an entire column from a position to another.\r\nWe could also provide a Column Reorder function, there's mostly only 1 use for this which is the SlickDraggableGrouping plugin.",
      "default": true
    },
    {
      "name": "unorderableColumnCssClass",
      "type": "string",
      "optional": true,
      "description": "Defaults to \"unorderable\", a CSS class name that will be added to the column classes when the column cannot be reordered.",
      "default": "unorderable"
    },
    {
      "name": "enableHtmlRendering",
      "type": "boolean",
      "optional": true,
      "description": "Defaults to true, do we want to allow passing HTML string to cell/row rendering by using `innerHTML`.\r\nWhen this is enabled and input is a string, it will use `innerHTML = 'some html'` to render the input, however when disable it will use `textContent = 'some html'`.\r\nNote: for strict CSP, you would want to disable this option and convert all your custom Formatters to return an HTMLElement instead of a string",
      "default": true
    },
    {
      "name": "enableMouseWheelScrollHandler",
      "type": "boolean",
      "optional": true,
      "description": "Do we want to always enable the mousewheel scroll handler?\r\nIn other words, do we want the mouse scrolling would work from anywhere.\r\nTypically we should only enable it when using a Frozen/Pinned grid and if it does detect it to be a frozen grid,\r\nthen it will automatically enable the scroll handler if this flag was originally set to undefined (which it is by default unless the user specifically disabled it).",
      "default": true
    },
    {
      "name": "enableTextSelectionOnCells",
      "type": "boolean",
      "optional": true,
      "description": "Do we want to enable text selection on cells? Useful when user wants to do copy to clipboard.",
      "default": false
    },
    {
      "name": "excelCopyBufferOptions",
      "type": "ExcelCopyBufferOption",
      "optional": true,
      "description": "Options for the ExcelCopyBuffer Extension"
    },
    {
      "name": "explicitInitialization",
      "type": "boolean",
      "optional": true,
      "description": "Do we want explicit grid initialization?",
      "default": false
    },
    {
      "name": "ffMaxSupportedCssHeight",
      "type": "number",
      "optional": true,
      "description": "Firefox max supported CSS height",
      "default": 6000000
    },
    {
      "name": "footerRowHeight",
      "type": "number",
      "optional": true,
      "description": "Defaults to 25, which is the grid footer row panel height (only accepts an integer)",
      "default": 25
    },
    {
      "name": "forceFitColumns",
      "type": "boolean",
      "optional": true,
      "description": "Do we want to force fit columns in the grid at all time?",
      "default": false
    },
    {
      "name": "forceSyncScrolling",
      "type": "boolean",
      "optional": true,
      "description": "Defaults to false, force synchronous scrolling without throttling the UI render when scrolling.\r\nNote: it might be risky to disable this option on large dataset, use at your own risk",
      "default": false
    },
    {
      "name": "formatterFactory",
      "type": "{ getFormatter: (col: C) => Formatter; } | null",
      "optional": true,
      "description": "Formatter classes factory",
      "default": null
    },
    {
      "name": "frozenBottom",
      "type": "boolean",
      "optional": true,
      "description": "Defaults to false, do we want to freeze (pin) the bottom portion instead of the top",
      "default": false
    },
    {
      "name": "frozenColumn",
      "type": "number",
      "optional": true,
      "description": "Number of column index(es) to freeze (pin) in the grid",
      "default": -1
    },
    {
      "name": "frozenRow",
      "type": "number",
      "optional": true,
      "description": "Number of row index(es) to freeze (pin) in the grid",
      "default": -1
    },
    {
      "name": "frozenRightViewportMinWidth",
      "type": "number",
      "optional": true,
      "description": "Defaults to 100, what is the minimum width to keep for the section on the right of a frozen grid?\r\nThis basically fixes an issue that if the user expand any column on the left of the frozen (pinning) section\r\nand make it bigger than the viewport width, then the grid becomes unusable because the right section goes into a void/hidden area.",
      "default": 100
    },
    {
      "name": "fullWidthRows",
      "type": "boolean",
      "optional": true,
      "description": "Defaults to false, which leads to have row(s) taking full width",
      "default": false
    },
    {
      "name": "gridMenu",
      "type": "GridMenuOption",
      "optional": true,
      "description": "Grid Menu options (aka hamburger menu)"
    },
    {
      "name": "headerRowHeight",
      "type": "number",
      "optional": true,
      "description": "Header row height in pixels (only accepts an integer). Header row is where the filters are.",
      "default": 25
    },
    {
      "name": "leaveSpaceForNewRows",
      "type": "boolean",
      "optional": true,
      "description": "Do we leave space for new rows in the DOM visible buffer",
      "default": false
    },
    {
      "name": "logSanitizedHtml",
      "type": "boolean",
      "optional": true,
      "description": "Should we log the sanitized html?",
      "default": false
    },
    {
      "name": "maxPartialRowSpanRemap",
      "type": "number",
      "optional": true,
      "description": "Defaults to 5000, max number of rows that we'll consider doing a partial rowspan remapping.\r\nAnything else will be considered to require a full rowspan remap when necessary",
      "default": 5000
    },
    {
      "name": "maxSupportedCssHeight",
      "type": "number",
      "optional": true,
      "description": "Max supported CSS height (only accepts an integer)",
      "default": 1000000000
    },
    {
      "name": "minRowBuffer",
      "type": "number",
      "optional": true,
      "description": "What is the minimum row buffer to use?",
      "default": 3
    },
    {
      "name": "maxRowBuffer",
      "type": "number",
      "optional": true,
      "description": "What is the maximum row buffer to use?"
    },
    {
      "name": "mixinDefaults",
      "type": "boolean",
      "optional": true,
      "description": "Use a mixin function when applying defaults to passed in option and columns objects, rather than creating a new object, so as not to break references",
      "default": true
    },
    {
      "name": "multiColumnSort",
      "type": "boolean",
      "optional": true,
      "description": "Defaults to false, which leads to be able to do multiple columns sorting (or single sort when false)",
      "default": false
    },
    {
      "name": "multiSelect",
      "type": "boolean",
      "optional": true,
      "description": "Defaults to true, which leads to be able to do multiple selection",
      "default": true
    },
    {
      "name": "numberedMultiColumnSort",
      "type": "boolean",
      "optional": true,
      "description": "Defaults to true, which will display numbers indicating column sort precedence are displayed in the columns when multiple columns selected",
      "default": false
    },
    {
      "name": "preHeaderPanelHeight",
      "type": "number",
      "optional": true,
      "description": "Extra pre-header panel height (on top of column header, only accepts an integer)",
      "default": 25
    },
    {
      "name": "preHeaderPanelWidth",
      "type": "number | string",
      "optional": true,
      "description": "Defaults to \"auto\", extra pre-header panel (on top of column header) width, it could be a number (pixels) or a string (\"100%\" or \"auto\")",
      "default": "auto"
    },
    {
      "name": "topHeaderPanelHeight",
      "type": "number",
      "optional": true,
      "description": "Extra top-header panel height (on top of column header & pre-header, only accepts an integer)",
      "default": 25
    },
    {
      "name": "topHeaderPanelWidth",
      "type": "number | string",
      "optional": true,
      "description": "Defaults to \"auto\", extra top-header panel (on top of column header & pre-header) width, it could be a number (pixels) or a string (\"100%\" or \"auto\")",
      "default": "auto"
    },
    {
      "name": "preserveCopiedSelectionOnPaste",
      "type": "boolean",
      "optional": true,
      "description": "Do we want to preserve copied selection on paste?",
      "default": false
    },
    {
      "name": "preventDragFromKeys",
      "type": "Array<'altKey' | 'ctrlKey' | 'metaKey' | 'shiftKey'>",
      "optional": true,
      "description": "Defaults to `['ctrlKey', 'metaKey']`, list of keys that when pressed will prevent Draggable events from triggering (e.g. prevent onDrag when Ctrl key is pressed while dragging)",
      "default": "['ctrlKey', 'metaKey']"
    },
    {
      "name": "rowHeight",
      "type": "number",
      "optional": true,
      "description": "Grid row height in pixels (only accepts an integer). Cell value row height.",
      "default": 25
    },
    {
      "name": "rowHeightProvider",
      "type": "(grid: SlickGridModel, row: number, item: any) => number | undefined",
      "optional": true,
      "description": "The single source of row heights, only called when `enableVariableRowHeight` is on.\r\nReceives the grid instance (giving access to any grid state), the row index, and the row's\r\ndata item. Returns the height (integer) in pixels of that row, or `undefined` to use the default `rowHeight`.\r\nThe default implementation reads `ItemMetadata.height` from the data provider's\r\n`getItemMetadata(row)`, so metadata-driven heights work without configuring this option.\r\nSupplying your own function fully replaces the default - item metadata is then no longer\r\nconsulted (no per-row fallback between the two sources).\r\nHeights are cached in a prefix-sum index that is rebuilt whenever the row count changes, rows\r\nare invalidated, or `grid.invalidateRowHeights()` is called; the callback is called once per\r\nrow per rebuild, so it must be fast (a simple lookup or calculation - no DOM access).\r\nWhen heights change without a row count change, call `grid.invalidateRowHeights()`.",
      "default": "(grid: SlickGridModel, row: number) => grid.getItemMetadaWhenExists(row)?.height"
    },
    {
      "name": "rowHighlightCssClass",
      "type": "string",
      "optional": true,
      "description": "Defaults to \"highlight-animate\", a CSS class name used to simulate row highlight with an optional duration (e.g. after insert).\r\nNote: make sure that the duration is always lower than the duration defined in the CSS/SASS variable `$alpine-row-highlight-fade-animation`.\r\nAlso note that the highlight is temporary and will also disappear as soon as the user starts scrolling or a `render()` is being called",
      "default": "highlight-animate"
    },
    {
      "name": "rowHighlightDuration",
      "type": "number",
      "optional": true,
      "description": "Defaults to 400, duration to show the row highlight (e.g. after CRUD executions)",
      "default": 400
    },
    {
      "name": "autoHeaderHeight",
      "type": "boolean",
      "optional": true,
      "description": "Defaults to false, when enabled the header row will automatically resize its height to fit multi-line column titles",
      "default": false
    },
    {
      "name": "rtl",
      "type": "boolean",
      "optional": true,
      "description": "Defaults to false, sets the grid direction to RTL (Right-to-Left) for proper rendering of RTL languages",
      "default": false
    },
    {
      "name": "rowTopOffsetRenderType",
      "type": "'top' | 'transform'",
      "optional": true,
      "description": "Defaults to \"top\", what CSS style to we want to use to render each row top offset (we can use \"top\" or \"transform\").\r\nFor example, with a default `rowHeight: 22`, the 2nd row will have a `top` offset of 44px and by default have a CSS style of `top: 44px`.\r\nNOTE: for perf reasons, the \"transform\" might become the default in our future major version.",
      "default": "top"
    },
    {
      "name": "sanitizer",
      "type": "(dirtyHtml: string) => string",
      "optional": true,
      "description": "Optional sanitizer function to use for sanitizing data to avoid XSS attacks",
      "default": "undefined"
    },
    {
      "name": "scrollRenderThrottling",
      "type": "number",
      "optional": true,
      "description": "Defaults to 10(ms), render throttling when using virtual scroll on large dataset",
      "default": 10
    },
    {
      "name": "selectedCellCssClass",
      "type": "string",
      "optional": true,
      "description": "CSS class name used when cell is selected",
      "default": "selected"
    },
    {
      "name": "showColumnHeader",
      "type": "boolean",
      "optional": true,
      "description": "Do we want to show column header?",
      "default": true
    },
    {
      "name": "showCellSelection",
      "type": "boolean",
      "optional": true,
      "description": "Do we want to show cell selection?",
      "default": true
    },
    {
      "name": "showFooterRow",
      "type": "boolean",
      "optional": true,
      "description": "Do we want to show the footer row?",
      "default": false
    },
    {
      "name": "showHeaderRow",
      "type": "boolean",
      "optional": true,
      "description": "Do we want to show header row?",
      "default": false
    },
    {
      "name": "showPreHeaderPanel",
      "type": "boolean",
      "optional": true,
      "description": "Do we want to show the extra pre-header panel (on top of column header) for column grouping purposes",
      "default": false
    },
    {
      "name": "showTopHeaderPanel",
      "type": "boolean",
      "optional": true,
      "description": "Do we want to show the extra top-header panel (on top of column header & pre-header) for column grouping purposes",
      "default": false
    },
    {
      "name": "showTopPanel",
      "type": "boolean",
      "optional": true,
      "description": "Do we want to show top panel row?",
      "default": false
    },
    {
      "name": "sortColNumberInSeparateSpan",
      "type": "boolean",
      "optional": true,
      "description": "Defaults to true, which leads to render a separate span for the number and styles it with css class <i>slick-sort-indicator-numbered</i>",
      "default": false
    },
    {
      "name": "shadowRoot",
      "type": "ShadowRoot",
      "optional": true,
      "description": "Defaults to undefined. If we are inside a Shadow DOM tree, this must be the Shadow root of the tree",
      "default": "undefined"
    },
    {
      "name": "suppressActiveCellChangeOnEdit",
      "type": "boolean",
      "optional": true,
      "description": "Defaults to false, which leads to suppress the cell from becoming active when cell as an editor and is clicked.\r\nThis flag was originally enabled to work properly with (Row Selections & Inline Editors) features but it caused problem when also used with CellExternalCopyManager,\r\nhowever this flag shouldn't be need anymore when editing & using all 3 features and the flag's default is now disabled (false) but user can still change it if needed.",
      "default": false
    },
    {
      "name": "suppressCssChangesOnHiddenInit",
      "type": "boolean",
      "optional": true,
      "description": "Defaults to false, do we want to suppress CSS changes when onHiddenInit event is triggered",
      "default": false
    },
    {
      "name": "syncColumnCellResize",
      "type": "boolean",
      "optional": true,
      "description": "Defaults to false, when set to True will sync the column cell resize & apply the column width"
    },
    {
      "name": "skipFreezeColumnValidation",
      "type": "boolean",
      "optional": true,
      "description": "When set to true, it will skip the validation check to make sure frozen columns are not wider than the grid visible canvas width"
    },
    {
      "name": "throwWhenFrozenNotAllViewable",
      "type": "boolean",
      "optional": true,
      "description": "",
      "deprecated": "",
      "default": false
    },
    {
      "name": "invalidColumnFreezePickerMessage",
      "type": "string",
      "optional": true,
      "description": "Message to show when the frozen column is invalid and `invalidColumnFreezeWidthCallbackPicker` is enabled",
      "default": "'[SlickGrid] Action not allowed and aborted, you need to have at least one or more column on the right section of the column freeze/pining. ' +\r\n      'You could alternatively \"Unfreeze all the columns\" before trying again.'"
    },
    {
      "name": "invalidColumnFreezePickerCallback",
      "type": "(error: string) => void",
      "optional": true,
      "description": "Defaults to `alert(error)`, which will trigger when the user tries to uncheck too many columns via ColumnPicker/GridMenu.\r\nWe need to have 1 or more columns visible on the right side of the frozen column.",
      "default": "(error) => alert(error)"
    },
    {
      "name": "invalidColumnFreezeWidthMessage",
      "type": "string",
      "optional": true,
      "description": "Message to show when the frozen column width is invalid and `invalidColumnFreezeWidthCallbackWidth` or `throwWhenFrozenNotAllViewable` is enabled",
      "default": "'[SlickGrid] You are trying to freeze/pin more columns than the grid can support. ' +\r\n      'Make sure to have less columns pinned (on the left) than the actual visible grid width.'"
    },
    {
      "name": "invalidColumnFreezeWidthCallback",
      "type": "(error: string) => void",
      "optional": true,
      "description": "Defaults to `alert(error)`, which will trigger when the user tries to set a `frozenColumn` that is wider than the visible grid viewport width in the browser.\r\nWe can't freeze wider than the viewport because the right canvas will never be visible and since the left canvas is never scrollable this would break the UX.",
      "default": "(error) => alert(error)"
    },
    {
      "name": "topPanelHeight",
      "type": "number",
      "optional": true,
      "description": "What is the top panel height in pixels (only accepts an integer)",
      "default": 25
    },
    {
      "name": "tristateMultiColumnSort",
      "type": "boolean",
      "optional": true,
      "description": "Defaults to false, when set to True will lead to multiple columns sorting without the need to hold or do shift-click to execute a multiple sort.",
      "default": false
    },
    {
      "name": "viewportClass",
      "type": "string",
      "optional": true,
      "description": "Defaults to null, which is the default Viewport CSS class name",
      "default": "undefined"
    },
    {
      "name": "viewportSwitchToScrollModeWidthPercent",
      "type": "number",
      "optional": true,
      "description": "Viewport switch to scroll model with percentage",
      "default": "undefined"
    },
    {
      "name": "viewportMinWidthPx",
      "type": "number",
      "optional": true,
      "description": "Viewport min width in pixel",
      "default": "undefined"
    },
    {
      "name": "viewportMaxWidthPx",
      "type": "number",
      "optional": true,
      "description": "Viewport max width in pixel",
      "default": "undefined"
    },
    {
      "name": "columnPickerTitle",
      "type": "string",
      "optional": true,
      "description": "",
      "deprecated": ""
    },
    {
      "name": "forceFitTitle",
      "type": "string",
      "optional": true,
      "description": "",
      "deprecated": ""
    },
    {
      "name": "syncResizeTitle",
      "type": "string",
      "optional": true,
      "description": "",
      "deprecated": ""
    }
  ],
  "columns": [
    {
      "name": "alwaysRenderColumn",
      "type": "boolean",
      "optional": true,
      "description": "Defaults to false, should we always render the column?"
    },
    {
      "name": "asyncPostRender",
      "type": "(domCellNode: HTMLElement, row: number, dataContext: TData, columnDef: Column, process?: boolean) => void",
      "optional": true,
      "description": "async background post-rendering formatter"
    },
    {
      "name": "asyncPostRenderCleanup",
      "type": "(node: HTMLElement, rowIdx: number, column: Column) => void",
      "optional": true,
      "description": "async background post-render cleanup callback function"
    },
    {
      "name": "autoSize",
      "type": "AutoSize",
      "optional": true,
      "description": "column autosize feature"
    },
    {
      "name": "behavior",
      "type": "string",
      "optional": true,
      "description": "optional Behavior of a column with action, for example it's used by the Row Move Manager Plugin"
    },
    {
      "name": "cellAttrs",
      "type": "any",
      "optional": true,
      "description": "cell attributes"
    },
    {
      "name": "cellMenu",
      "type": "CellMenuOption",
      "optional": true,
      "description": "Options that can be provide to the Cell Context Menu Plugin"
    },
    {
      "name": "headerCellAttrs",
      "type": "any",
      "optional": true,
      "description": "header cell attributes"
    },
    {
      "name": "cannotTriggerInsert",
      "type": "boolean",
      "optional": true,
      "description": "Block event triggering of a new row insert"
    },
    {
      "name": "columnGroup",
      "type": "string",
      "optional": true,
      "description": "Column group name for grouping of column headers spanning accross multiple columns"
    },
    {
      "name": "colspan",
      "type": "number | string | '*'",
      "optional": true,
      "description": "Column span in cell count or use `*` to span across the entire row"
    },
    {
      "name": "cssClass",
      "type": "string",
      "optional": true,
      "description": "CSS class to add to the column cell"
    },
    {
      "name": "customTooltip",
      "type": "CustomTooltipOption",
      "optional": true,
      "description": "Custom Tooltip Options, the tooltip could be defined in any of the Column Definition or in the Grid Options,\nit will first try to find it in the Column that the user is hovering over or else (when not found) it will try to find it in the Grid Options"
    },
    {
      "name": "defaultSortAsc",
      "type": "boolean",
      "optional": true,
      "description": "Do we want default sort to be ascending? True by default"
    },
    {
      "name": "denyPaste",
      "type": "boolean",
      "optional": true,
      "description": "Defaults to false, do we want to deny executing a Paste (from a Copy of CellExternalCopyManager)?"
    },
    {
      "name": "disableTooltip",
      "type": "boolean",
      "optional": true,
      "description": "defaults to False, optionally enable/disable tooltip.\nThis is typically used on a specific column that you would like to completely disable the custom/regular tooltip."
    },
    {
      "name": "editor",
      "type": "Editor | EditorConstructor | null",
      "optional": true,
      "description": "Any inline editor function that implements Editor for the cell value or ColumnEditor"
    },
    {
      "name": "editorFixedDecimalPlaces",
      "type": "number",
      "optional": true,
      "description": "Editor number fixed decimal places"
    },
    {
      "name": "excludeFromColumnPicker",
      "type": "boolean",
      "optional": true,
      "description": "Default to false, which leads to exclude the column title from the Column Picker."
    },
    {
      "name": "excludeFromExport",
      "type": "boolean",
      "optional": true,
      "description": "Default to false, which leads to exclude the column from the export."
    },
    {
      "name": "excludeFromGridMenu",
      "type": "boolean",
      "optional": true,
      "description": "Default to false, which leads to exclude the column title from the Grid Menu."
    },
    {
      "name": "excludeFromQuery",
      "type": "boolean",
      "optional": true,
      "description": "Defaults to false, which leads to exclude the field from the query (typically a backend service query)"
    },
    {
      "name": "excludeFromHeaderMenu",
      "type": "boolean",
      "optional": true,
      "description": "Defaults to false, which leads to exclude the column from getting a header menu. For example, the checkbox row selection should not have a header menu."
    },
    {
      "name": "field",
      "type": "Join<PathsToStringProps<TData>, '.'>",
      "optional": false,
      "description": "Field property name to use from the dataset that is used to display the column data.\nFor example: { id: 'firstName', field: 'firstName' }"
    },
    {
      "name": "focusable",
      "type": "boolean",
      "optional": true,
      "description": "are we allowed to focus on the column?"
    },
    {
      "name": "formatter",
      "type": "Formatter<TData>",
      "optional": true,
      "description": "Formatter function is meant to format, or visually change, the data shown in the grid (UI) in a different way without affecting the source."
    },
    {
      "name": "formatterOverride",
      "type": "{ ReturnsTextOnly: boolean; } | FormatterOverrideCallback",
      "optional": true,
      "description": "Formatter override function"
    },
    {
      "name": "grouping",
      "type": "Grouping",
      "optional": true,
      "description": "Grouping option used by a Draggable Grouping Column"
    },
    {
      "name": "groupTotalsFormatter",
      "type": "GroupTotalsFormatter",
      "optional": true,
      "description": "Group Totals Formatter function that can be used to add grouping totals in the grid"
    },
    {
      "name": "header",
      "type": "HeaderButtonsOrMenu",
      "optional": true,
      "description": "Options that can be provided to the Header Menu Plugin"
    },
    {
      "name": "headerCssClass",
      "type": "string | null",
      "optional": true,
      "description": "CSS class that can be added to the column header"
    },
    {
      "name": "hidden",
      "type": "boolean",
      "optional": true,
      "description": "is the column hidden?"
    },
    {
      "name": "id",
      "type": "number | string",
      "optional": false,
      "description": "ID of the column, each column definition ID must be unique or else SlickGrid will throw an error."
    },
    {
      "name": "maxWidth",
      "type": "number",
      "optional": true,
      "description": "Maximum Width of the column in pixels (number only)."
    },
    {
      "name": "minWidth",
      "type": "number",
      "optional": true,
      "description": "Minimum Width of the column in pixels (number only)."
    },
    {
      "name": "name",
      "type": "string | HTMLElement | DocumentFragment",
      "optional": true,
      "description": "Column Title Name to be displayed in the Grid (UI)"
    },
    {
      "name": "offsetWidth",
      "type": "number",
      "optional": true,
      "description": "column offset width"
    },
    {
      "name": "params",
      "type": "any | any[]",
      "optional": true,
      "description": "extra custom generic parameters that could be used by your Formatter/Editor or anything else"
    },
    {
      "name": "previousWidth",
      "type": "number",
      "optional": true,
      "description": "column previous width"
    },
    {
      "name": "reorderable",
      "type": "boolean",
      "optional": true,
      "description": "Defaults to true, makes the column reorderable to another position in the grid.\nNOTE: Works best when used as first or last columns of the grid (e.g.: row selection checkbox as first column)."
    },
    {
      "name": "rerenderOnResize",
      "type": "boolean",
      "optional": true,
      "description": "Should we re-render when onResize is being triggered?"
    },
    {
      "name": "resizable",
      "type": "boolean",
      "optional": true,
      "description": "Is the column resizable, can we make it wider/thinner? A resize cursor will show on the right side of the column when enabled."
    },
    {
      "name": "rowspan",
      "type": "number",
      "optional": true,
      "description": "Row span in cell count or use `*` to span across the entire row"
    },
    {
      "name": "selectable",
      "type": "boolean",
      "optional": true,
      "description": "Is the column selectable? Goes with grid option \"enableCellNavigation: true\"."
    },
    {
      "name": "sortable",
      "type": "boolean",
      "optional": true,
      "description": "Is the column sortable? Goes with grid option \"enableSorting: true\"."
    },
    {
      "name": "toolTip",
      "type": "string",
      "optional": true,
      "description": "Custom Tooltip that can ben shown to the column"
    },
    {
      "name": "unselectable",
      "type": "boolean",
      "optional": true,
      "description": "Defaults to false, when set to True will lead to the column being unselected in the UI"
    },
    {
      "name": "validator",
      "type": "EditorValidator",
      "optional": true,
      "description": "Editor Validator"
    },
    {
      "name": "width",
      "type": "number",
      "optional": true,
      "description": "Width of the column in pixels (number only)."
    },
    {
      "name": "widthRequest",
      "type": "number",
      "optional": true,
      "description": "column width request when resizing"
    }
  ],
  "gridEvents": [
    {
      "name": "onActiveCellChanged",
      "payload": "OnActiveCellChangedEventArgs",
      "args": {
        "typeName": "OnActiveCellChangedEventArgs",
        "fields": [
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          },
          {
            "name": "cell",
            "type": "number",
            "optional": false
          },
          {
            "name": "row",
            "type": "number",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onActiveCellPositionChanged",
      "payload": "{ grid: SlickGrid; }",
      "args": {
        "typeName": "{ grid: SlickGrid; }",
        "fields": [
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onAddNewRow",
      "payload": "OnAddNewRowEventArgs",
      "args": {
        "typeName": "OnAddNewRowEventArgs",
        "fields": [
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          },
          {
            "name": "item",
            "type": "any",
            "optional": false
          },
          {
            "name": "column",
            "type": "Column",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onAfterSetColumns",
      "payload": "OnAfterSetColumnsEventArgs",
      "args": {
        "typeName": "OnAfterSetColumnsEventArgs",
        "fields": [
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          },
          {
            "name": "newColumns",
            "type": "Column[]",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onAutosizeColumns",
      "payload": "OnAutosizeColumnsEventArgs",
      "args": {
        "typeName": "OnAutosizeColumnsEventArgs",
        "fields": [
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          },
          {
            "name": "columns",
            "type": "Column[]",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onBeforeAppendCell",
      "payload": "OnBeforeAppendCellEventArgs",
      "args": {
        "typeName": "OnBeforeAppendCellEventArgs",
        "fields": [
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          },
          {
            "name": "row",
            "type": "number",
            "optional": false
          },
          {
            "name": "cell",
            "type": "number",
            "optional": false
          },
          {
            "name": "value",
            "type": "any",
            "optional": false
          },
          {
            "name": "dataContext",
            "type": "any",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onBeforeCellEditorDestroy",
      "payload": "OnBeforeCellEditorDestroyEventArgs",
      "args": {
        "typeName": "OnBeforeCellEditorDestroyEventArgs",
        "fields": [
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          },
          {
            "name": "editor",
            "type": "Editor",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onBeforeColumnsResize",
      "payload": "OnBeforeColumnsResizeEventArgs",
      "args": {
        "typeName": "OnBeforeColumnsResizeEventArgs",
        "fields": [
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          },
          {
            "name": "triggeredByColumn",
            "type": "string",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onBeforeDestroy",
      "payload": "{ grid: SlickGrid; }",
      "args": {
        "typeName": "{ grid: SlickGrid; }",
        "fields": [
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onBeforeEditCell",
      "payload": "OnBeforeEditCellEventArgs",
      "args": {
        "typeName": "OnBeforeEditCellEventArgs",
        "fields": [
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          },
          {
            "name": "row",
            "type": "number",
            "optional": true
          },
          {
            "name": "cell",
            "type": "number",
            "optional": true
          },
          {
            "name": "item",
            "type": "any",
            "optional": false
          },
          {
            "name": "column",
            "type": "Column",
            "optional": false
          },
          {
            "name": "target",
            "type": "'grid' | 'composite'",
            "optional": true
          },
          {
            "name": "compositeEditorOptions",
            "type": "CompositeEditorOption",
            "optional": true
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onBeforeFooterRowCellDestroy",
      "payload": "OnBeforeFooterRowCellDestroyEventArgs",
      "args": {
        "typeName": "OnBeforeFooterRowCellDestroyEventArgs",
        "fields": [
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          },
          {
            "name": "node",
            "type": "HTMLElement",
            "optional": false
          },
          {
            "name": "column",
            "type": "Column",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onBeforeHeaderCellDestroy",
      "payload": "OnBeforeHeaderCellDestroyEventArgs",
      "args": {
        "typeName": "OnBeforeHeaderCellDestroyEventArgs",
        "fields": [
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          },
          {
            "name": "node",
            "type": "HTMLElement",
            "optional": false
          },
          {
            "name": "column",
            "type": "Column",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onBeforeHeaderRowCellDestroy",
      "payload": "OnBeforeHeaderRowCellDestroyEventArgs",
      "args": {
        "typeName": "OnBeforeHeaderRowCellDestroyEventArgs",
        "fields": [
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          },
          {
            "name": "node",
            "type": "HTMLElement",
            "optional": false
          },
          {
            "name": "column",
            "type": "Column",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onBeforeRemoveCachedRow",
      "payload": "{ row: number; grid: SlickGrid }",
      "args": {
        "typeName": "{ row: number; grid: SlickGrid }",
        "fields": [
          {
            "name": "row",
            "type": "number",
            "optional": false
          },
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onBeforeSetColumns",
      "payload": "OnBeforeSetColumnsEventArgs",
      "args": {
        "typeName": "OnBeforeSetColumnsEventArgs",
        "fields": [
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          },
          {
            "name": "previousColumns",
            "type": "Column[]",
            "optional": false
          },
          {
            "name": "newColumns",
            "type": "Column[]",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onBeforeSort",
      "payload": "SingleColumnSort | MultiColumnSort",
      "args": {
        "variants": [
          {
            "label": "SingleColumnSort",
            "fields": [
              {
                "name": "columnId",
                "type": "string | number",
                "optional": false
              },
              {
                "name": "sortAsc",
                "type": "boolean",
                "optional": false
              },
              {
                "name": "sortCol",
                "type": "Column",
                "optional": true
              },
              {
                "name": "grid",
                "type": "SlickGrid",
                "optional": true
              },
              {
                "name": "multiColumnSort",
                "type": "false",
                "optional": true
              },
              {
                "name": "previousSortColumns",
                "type": "ColumnSort[]",
                "optional": true
              }
            ]
          },
          {
            "label": "MultiColumnSort",
            "fields": [
              {
                "name": "grid",
                "type": "SlickGrid",
                "optional": false
              },
              {
                "name": "multiColumnSort",
                "type": "true",
                "optional": false
              },
              {
                "name": "sortCols",
                "type": "ColumnSort[]",
                "optional": false
              },
              {
                "name": "previousSortColumns",
                "type": "ColumnSort[]",
                "optional": true
              }
            ]
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onBeforeUpdateColumns",
      "payload": "OnColumnsEventArgs",
      "args": {
        "typeName": "OnColumnsEventArgs",
        "fields": [
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          },
          {
            "name": "columns",
            "type": "Column[]",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onAfterUpdateColumns",
      "payload": "OnColumnsEventArgs",
      "args": {
        "typeName": "OnColumnsEventArgs",
        "fields": [
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          },
          {
            "name": "columns",
            "type": "Column[]",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onCellChange",
      "payload": "OnCellChangeEventArgs",
      "args": {
        "typeName": "OnCellChangeEventArgs",
        "fields": [
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          },
          {
            "name": "row",
            "type": "number",
            "optional": false
          },
          {
            "name": "cell",
            "type": "number",
            "optional": false
          },
          {
            "name": "item",
            "type": "any",
            "optional": false
          },
          {
            "name": "column",
            "type": "Column",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onCellCssStylesChanged",
      "payload": "OnCellCssStylesChangedEventArgs",
      "args": {
        "typeName": "OnCellCssStylesChangedEventArgs",
        "fields": [
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          },
          {
            "name": "key",
            "type": "string",
            "optional": false
          },
          {
            "name": "hash",
            "type": "CssStyleHash",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onClick",
      "payload": "OnClickEventArgs",
      "args": {
        "typeName": "OnClickEventArgs",
        "fields": [
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          },
          {
            "name": "row",
            "type": "number",
            "optional": false
          },
          {
            "name": "cell",
            "type": "number",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onColumnsReordered",
      "payload": "OnColumnsReorderedEventArgs",
      "args": {
        "typeName": "OnColumnsReorderedEventArgs",
        "fields": [
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          },
          {
            "name": "impactedColumns",
            "type": "Column[]",
            "optional": false
          },
          {
            "name": "previousColumnOrder",
            "type": "Array<string | number>",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onColumnsDrag",
      "payload": "OnColumnsDragEventArgs",
      "args": {
        "typeName": "OnColumnsDragEventArgs",
        "fields": [
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          },
          {
            "name": "triggeredByColumn",
            "type": "string",
            "optional": false
          },
          {
            "name": "resizeHandle",
            "type": "HTMLDivElement",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onColumnsResized",
      "payload": "OnColumnsResizedEventArgs",
      "args": {
        "typeName": "OnColumnsResizedEventArgs",
        "fields": [
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          },
          {
            "name": "triggeredByColumn",
            "type": "string",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onColumnsResizeDblClick",
      "payload": "OnColumnsResizeDblClickEventArgs",
      "args": {
        "typeName": "OnColumnsResizeDblClickEventArgs",
        "fields": [
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          },
          {
            "name": "triggeredByColumn",
            "type": "string",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onCompositeEditorChange",
      "payload": "OnCompositeEditorChangeEventArgs",
      "args": {
        "typeName": "OnCompositeEditorChangeEventArgs",
        "fields": [
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          },
          {
            "name": "row",
            "type": "number",
            "optional": true
          },
          {
            "name": "cell",
            "type": "number",
            "optional": true
          },
          {
            "name": "item",
            "type": "any",
            "optional": false
          },
          {
            "name": "column",
            "type": "Column",
            "optional": false
          },
          {
            "name": "formValues",
            "type": "any",
            "optional": false
          },
          {
            "name": "editors",
            "type": "{ [columnId: string]: Editor; }",
            "optional": false
          },
          {
            "name": "triggeredBy",
            "type": "'user' | 'system'",
            "optional": true
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onContextMenu",
      "payload": "MenuCommandItemCallbackArgs",
      "args": {
        "typeName": "MenuCommandItemCallbackArgs",
        "fields": [
          {
            "name": "cell",
            "type": "number",
            "optional": true
          },
          {
            "name": "row",
            "type": "number",
            "optional": true
          },
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          },
          {
            "name": "column",
            "type": "Column<T>",
            "optional": false
          },
          {
            "name": "dataContext",
            "type": "T",
            "optional": true
          },
          {
            "name": "command",
            "type": "string",
            "optional": false
          },
          {
            "name": "item",
            "type": "MenuCommandItem",
            "optional": false
          },
          {
            "name": "value",
            "type": "any",
            "optional": true
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onDrag",
      "payload": "DragRowMove",
      "args": {
        "typeName": "DragRowMove",
        "fields": [
          {
            "name": "available",
            "type": "any[]",
            "optional": false
          },
          {
            "name": "canMove",
            "type": "boolean",
            "optional": false
          },
          {
            "name": "clonedSlickRow",
            "type": "HTMLElement",
            "optional": false
          },
          {
            "name": "deltaX",
            "type": "number",
            "optional": false
          },
          {
            "name": "deltaY",
            "type": "number",
            "optional": false
          },
          {
            "name": "drag",
            "type": "HTMLElement",
            "optional": false
          },
          {
            "name": "drop",
            "type": "any[]",
            "optional": false
          },
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          },
          {
            "name": "guide",
            "type": "HTMLElement",
            "optional": false
          },
          {
            "name": "insertBefore",
            "type": "number",
            "optional": false
          },
          {
            "name": "offsetX",
            "type": "number",
            "optional": false
          },
          {
            "name": "offsetY",
            "type": "number",
            "optional": false
          },
          {
            "name": "originalX",
            "type": "number",
            "optional": false
          },
          {
            "name": "originalY",
            "type": "number",
            "optional": false
          },
          {
            "name": "proxy",
            "type": "HTMLElement",
            "optional": false
          },
          {
            "name": "selectionProxy",
            "type": "HTMLElement",
            "optional": false
          },
          {
            "name": "target",
            "type": "HTMLElement",
            "optional": false
          },
          {
            "name": "selectedRows",
            "type": "number[]",
            "optional": false
          },
          {
            "name": "startX",
            "type": "number",
            "optional": false
          },
          {
            "name": "startY",
            "type": "number",
            "optional": false
          },
          {
            "name": "range",
            "type": "DragRange",
            "optional": false
          },
          {
            "name": "matchClassTag",
            "type": "string",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onDblClick",
      "payload": "OnDblClickEventArgs",
      "args": {
        "typeName": "OnDblClickEventArgs",
        "fields": [
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          },
          {
            "name": "row",
            "type": "number",
            "optional": false
          },
          {
            "name": "cell",
            "type": "number",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onDragInit",
      "payload": "DragRowMove",
      "args": {
        "typeName": "DragRowMove",
        "fields": [
          {
            "name": "available",
            "type": "any[]",
            "optional": false
          },
          {
            "name": "canMove",
            "type": "boolean",
            "optional": false
          },
          {
            "name": "clonedSlickRow",
            "type": "HTMLElement",
            "optional": false
          },
          {
            "name": "deltaX",
            "type": "number",
            "optional": false
          },
          {
            "name": "deltaY",
            "type": "number",
            "optional": false
          },
          {
            "name": "drag",
            "type": "HTMLElement",
            "optional": false
          },
          {
            "name": "drop",
            "type": "any[]",
            "optional": false
          },
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          },
          {
            "name": "guide",
            "type": "HTMLElement",
            "optional": false
          },
          {
            "name": "insertBefore",
            "type": "number",
            "optional": false
          },
          {
            "name": "offsetX",
            "type": "number",
            "optional": false
          },
          {
            "name": "offsetY",
            "type": "number",
            "optional": false
          },
          {
            "name": "originalX",
            "type": "number",
            "optional": false
          },
          {
            "name": "originalY",
            "type": "number",
            "optional": false
          },
          {
            "name": "proxy",
            "type": "HTMLElement",
            "optional": false
          },
          {
            "name": "selectionProxy",
            "type": "HTMLElement",
            "optional": false
          },
          {
            "name": "target",
            "type": "HTMLElement",
            "optional": false
          },
          {
            "name": "selectedRows",
            "type": "number[]",
            "optional": false
          },
          {
            "name": "startX",
            "type": "number",
            "optional": false
          },
          {
            "name": "startY",
            "type": "number",
            "optional": false
          },
          {
            "name": "range",
            "type": "DragRange",
            "optional": false
          },
          {
            "name": "matchClassTag",
            "type": "string",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onDragStart",
      "payload": "DragRowMove",
      "args": {
        "typeName": "DragRowMove",
        "fields": [
          {
            "name": "available",
            "type": "any[]",
            "optional": false
          },
          {
            "name": "canMove",
            "type": "boolean",
            "optional": false
          },
          {
            "name": "clonedSlickRow",
            "type": "HTMLElement",
            "optional": false
          },
          {
            "name": "deltaX",
            "type": "number",
            "optional": false
          },
          {
            "name": "deltaY",
            "type": "number",
            "optional": false
          },
          {
            "name": "drag",
            "type": "HTMLElement",
            "optional": false
          },
          {
            "name": "drop",
            "type": "any[]",
            "optional": false
          },
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          },
          {
            "name": "guide",
            "type": "HTMLElement",
            "optional": false
          },
          {
            "name": "insertBefore",
            "type": "number",
            "optional": false
          },
          {
            "name": "offsetX",
            "type": "number",
            "optional": false
          },
          {
            "name": "offsetY",
            "type": "number",
            "optional": false
          },
          {
            "name": "originalX",
            "type": "number",
            "optional": false
          },
          {
            "name": "originalY",
            "type": "number",
            "optional": false
          },
          {
            "name": "proxy",
            "type": "HTMLElement",
            "optional": false
          },
          {
            "name": "selectionProxy",
            "type": "HTMLElement",
            "optional": false
          },
          {
            "name": "target",
            "type": "HTMLElement",
            "optional": false
          },
          {
            "name": "selectedRows",
            "type": "number[]",
            "optional": false
          },
          {
            "name": "startX",
            "type": "number",
            "optional": false
          },
          {
            "name": "startY",
            "type": "number",
            "optional": false
          },
          {
            "name": "range",
            "type": "DragRange",
            "optional": false
          },
          {
            "name": "matchClassTag",
            "type": "string",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onDragEnd",
      "payload": "DragRowMove",
      "args": {
        "typeName": "DragRowMove",
        "fields": [
          {
            "name": "available",
            "type": "any[]",
            "optional": false
          },
          {
            "name": "canMove",
            "type": "boolean",
            "optional": false
          },
          {
            "name": "clonedSlickRow",
            "type": "HTMLElement",
            "optional": false
          },
          {
            "name": "deltaX",
            "type": "number",
            "optional": false
          },
          {
            "name": "deltaY",
            "type": "number",
            "optional": false
          },
          {
            "name": "drag",
            "type": "HTMLElement",
            "optional": false
          },
          {
            "name": "drop",
            "type": "any[]",
            "optional": false
          },
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          },
          {
            "name": "guide",
            "type": "HTMLElement",
            "optional": false
          },
          {
            "name": "insertBefore",
            "type": "number",
            "optional": false
          },
          {
            "name": "offsetX",
            "type": "number",
            "optional": false
          },
          {
            "name": "offsetY",
            "type": "number",
            "optional": false
          },
          {
            "name": "originalX",
            "type": "number",
            "optional": false
          },
          {
            "name": "originalY",
            "type": "number",
            "optional": false
          },
          {
            "name": "proxy",
            "type": "HTMLElement",
            "optional": false
          },
          {
            "name": "selectionProxy",
            "type": "HTMLElement",
            "optional": false
          },
          {
            "name": "target",
            "type": "HTMLElement",
            "optional": false
          },
          {
            "name": "selectedRows",
            "type": "number[]",
            "optional": false
          },
          {
            "name": "startX",
            "type": "number",
            "optional": false
          },
          {
            "name": "startY",
            "type": "number",
            "optional": false
          },
          {
            "name": "range",
            "type": "DragRange",
            "optional": false
          },
          {
            "name": "matchClassTag",
            "type": "string",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onFooterClick",
      "payload": "OnFooterClickEventArgs",
      "args": {
        "typeName": "OnFooterClickEventArgs",
        "fields": [
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          },
          {
            "name": "column",
            "type": "Column",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onFooterContextMenu",
      "payload": "OnFooterContextMenuEventArgs",
      "args": {
        "typeName": "OnFooterContextMenuEventArgs",
        "fields": [
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          },
          {
            "name": "column",
            "type": "Column",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onFooterRowCellRendered",
      "payload": "OnFooterRowCellRenderedEventArgs",
      "args": {
        "typeName": "OnFooterRowCellRenderedEventArgs",
        "fields": [
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          },
          {
            "name": "node",
            "type": "HTMLDivElement",
            "optional": false
          },
          {
            "name": "column",
            "type": "Column",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onHeaderCellRendered",
      "payload": "OnHeaderCellRenderedEventArgs",
      "args": {
        "typeName": "OnHeaderCellRenderedEventArgs",
        "fields": [
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          },
          {
            "name": "node",
            "type": "HTMLDivElement",
            "optional": false
          },
          {
            "name": "column",
            "type": "Column",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onHeaderClick",
      "payload": "OnHeaderClickEventArgs",
      "args": {
        "typeName": "OnHeaderClickEventArgs",
        "fields": [
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          },
          {
            "name": "column",
            "type": "Column",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onHeaderContextMenu",
      "payload": "OnHeaderContextMenuEventArgs",
      "args": {
        "typeName": "OnHeaderContextMenuEventArgs",
        "fields": [
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          },
          {
            "name": "column",
            "type": "Column",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onHeaderMouseEnter",
      "payload": "OnHeaderMouseEventArgs",
      "args": {
        "typeName": "OnHeaderMouseEventArgs",
        "fields": [
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          },
          {
            "name": "column",
            "type": "Column",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onHeaderMouseLeave",
      "payload": "OnHeaderMouseEventArgs",
      "args": {
        "typeName": "OnHeaderMouseEventArgs",
        "fields": [
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          },
          {
            "name": "column",
            "type": "Column",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onHeaderRowCellRendered",
      "payload": "OnHeaderRowCellRenderedEventArgs",
      "args": {
        "typeName": "OnHeaderRowCellRenderedEventArgs",
        "fields": [
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          },
          {
            "name": "node",
            "type": "HTMLDivElement",
            "optional": false
          },
          {
            "name": "column",
            "type": "Column",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onHeaderRowMouseEnter",
      "payload": "OnHeaderMouseEventArgs",
      "args": {
        "typeName": "OnHeaderMouseEventArgs",
        "fields": [
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          },
          {
            "name": "column",
            "type": "Column",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onHeaderRowMouseLeave",
      "payload": "OnHeaderMouseEventArgs",
      "args": {
        "typeName": "OnHeaderMouseEventArgs",
        "fields": [
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          },
          {
            "name": "column",
            "type": "Column",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onPreHeaderContextMenu",
      "payload": "OnPreHeaderContextMenuEventArgs",
      "args": {
        "typeName": "OnPreHeaderContextMenuEventArgs",
        "fields": [
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          },
          {
            "name": "node",
            "type": "HTMLElement",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onPreHeaderClick",
      "payload": "OnPreHeaderClickEventArgs",
      "args": {
        "typeName": "OnPreHeaderClickEventArgs",
        "fields": [
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          },
          {
            "name": "node",
            "type": "HTMLElement",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onKeyDown",
      "payload": "OnKeyDownEventArgs",
      "args": {
        "typeName": "OnKeyDownEventArgs",
        "fields": [
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          },
          {
            "name": "row",
            "type": "number",
            "optional": false
          },
          {
            "name": "cell",
            "type": "number",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onMouseEnter",
      "payload": "OnHeaderMouseEventArgs",
      "args": {
        "typeName": "OnHeaderMouseEventArgs",
        "fields": [
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          },
          {
            "name": "column",
            "type": "Column",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onMouseLeave",
      "payload": "OnHeaderMouseEventArgs",
      "args": {
        "typeName": "OnHeaderMouseEventArgs",
        "fields": [
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          },
          {
            "name": "column",
            "type": "Column",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onRendered",
      "payload": "OnRenderedEventArgs",
      "args": {
        "typeName": "OnRenderedEventArgs",
        "fields": [
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          },
          {
            "name": "startRow",
            "type": "number",
            "optional": false
          },
          {
            "name": "endRow",
            "type": "number",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onScroll",
      "payload": "OnScrollEventArgs",
      "args": {
        "typeName": "OnScrollEventArgs",
        "fields": [
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          },
          {
            "name": "scrollLeft",
            "type": "number",
            "optional": false
          },
          {
            "name": "scrollTop",
            "type": "number",
            "optional": false
          },
          {
            "name": "cell",
            "type": "number",
            "optional": false
          },
          {
            "name": "row",
            "type": "number",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onSelectedRowsChanged",
      "payload": "OnSelectedRowsChangedEventArgs",
      "args": {
        "typeName": "OnSelectedRowsChangedEventArgs",
        "fields": [
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          },
          {
            "name": "rows",
            "type": "number[]",
            "optional": false
          },
          {
            "name": "previousSelectedRows",
            "type": "number[]",
            "optional": false
          },
          {
            "name": "changedSelectedRows",
            "type": "number[]",
            "optional": false
          },
          {
            "name": "changedUnselectedRows",
            "type": "number[]",
            "optional": false
          },
          {
            "name": "caller",
            "type": "string",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onSetOptions",
      "payload": "OnSetOptionsEventArgs",
      "args": {
        "typeName": "OnSetOptionsEventArgs",
        "fields": [
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          },
          {
            "name": "optionsBefore",
            "type": "GridOption",
            "optional": false
          },
          {
            "name": "optionsAfter",
            "type": "GridOption",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onActivateChangedOptions",
      "payload": "OnActivateChangedOptionsEventArgs",
      "args": {
        "typeName": "OnActivateChangedOptionsEventArgs",
        "fields": [
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          },
          {
            "name": "options",
            "type": "GridOption",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onSort",
      "payload": "SingleColumnSort | MultiColumnSort",
      "args": {
        "variants": [
          {
            "label": "SingleColumnSort",
            "fields": [
              {
                "name": "columnId",
                "type": "string | number",
                "optional": false
              },
              {
                "name": "sortAsc",
                "type": "boolean",
                "optional": false
              },
              {
                "name": "sortCol",
                "type": "Column",
                "optional": true
              },
              {
                "name": "grid",
                "type": "SlickGrid",
                "optional": true
              },
              {
                "name": "multiColumnSort",
                "type": "false",
                "optional": true
              },
              {
                "name": "previousSortColumns",
                "type": "ColumnSort[]",
                "optional": true
              }
            ]
          },
          {
            "label": "MultiColumnSort",
            "fields": [
              {
                "name": "grid",
                "type": "SlickGrid",
                "optional": false
              },
              {
                "name": "multiColumnSort",
                "type": "true",
                "optional": false
              },
              {
                "name": "sortCols",
                "type": "ColumnSort[]",
                "optional": false
              },
              {
                "name": "previousSortColumns",
                "type": "ColumnSort[]",
                "optional": true
              }
            ]
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onValidationError",
      "payload": "OnValidationErrorEventArgs",
      "args": {
        "typeName": "OnValidationErrorEventArgs",
        "fields": [
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          },
          {
            "name": "row",
            "type": "number",
            "optional": false
          },
          {
            "name": "cell",
            "type": "number",
            "optional": false
          },
          {
            "name": "validationResults",
            "type": "EditorValidationResult",
            "optional": false
          },
          {
            "name": "column",
            "type": "Column",
            "optional": false
          },
          {
            "name": "editor",
            "type": "Editor",
            "optional": false
          },
          {
            "name": "cellNode",
            "type": "HTMLDivElement",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onViewportChanged",
      "payload": "{ grid: SlickGrid; }",
      "args": {
        "typeName": "{ grid: SlickGrid; }",
        "fields": [
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onDragReplaceCells",
      "payload": "OnDragReplaceCellsEventArgs",
      "args": {
        "typeName": "OnDragReplaceCellsEventArgs",
        "fields": [
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": false
          },
          {
            "name": "prevSelectedRange",
            "type": "SlickRange",
            "optional": false
          },
          {
            "name": "selectedRange",
            "type": "SlickRange",
            "optional": false
          },
          {
            "name": "copyToRange",
            "type": "SlickCopyRange",
            "optional": false
          }
        ]
      },
      "description": ""
    }
  ],
  "gridMethods": [
    {
      "name": "init",
      "group": "Grid and Dom Initialisation",
      "signature": "init()",
      "params": [],
      "returns": "",
      "description": "Initializes the grid."
    },
    {
      "name": "cacheCssForHiddenInit",
      "group": "Grid and Dom Initialisation",
      "signature": "cacheCssForHiddenInit()",
      "params": [],
      "returns": "",
      "description": "Finds all container ancestors/parents (including the grid container itself) that are hidden (i.e. have display:none)\r\nand temporarily applies visible CSS properties (absolute positioning, hidden visibility, block display)\r\nso that dimensions can be measured correctly.\r\nIt stores the original CSS properties in an internal array for later restoration.\r\n\r\nRelated to issue: https://github.com/6pac/SlickGrid/issues/568"
    },
    {
      "name": "restoreCssFromHiddenInit",
      "group": "Grid and Dom Initialisation",
      "signature": "restoreCssFromHiddenInit(): void",
      "params": [],
      "returns": "void",
      "description": "Restores the original CSS properties for the container and its hidden\r\nancestors that were modified by cacheCssForHiddenInit.\r\nThis ensures that after initial measurements the DOM elements revert\r\nto their original style settings."
    },
    {
      "name": "registerPlugin",
      "group": "Grid and Dom Initialisation",
      "signature": "registerPlugin(plugin: T)",
      "params": [
        {
          "name": "plugin",
          "type": "T",
          "optional": false,
          "description": "- The plugin instance to be registered."
        }
      ],
      "returns": "",
      "description": "Registers an external plugin to the grid’s internal plugin list.\r\nOnce added, it immediately initialises the plugin by calling its init()\r\nmethod with the grid instance."
    },
    {
      "name": "unregisterPlugin",
      "group": "Grid and Dom Initialisation",
      "signature": "unregisterPlugin(plugin: SlickPlugin)",
      "params": [
        {
          "name": "plugin",
          "type": "SlickPlugin",
          "optional": false,
          "description": "- The plugin instance to be registered."
        }
      ],
      "returns": "",
      "description": "Unregister (destroy) an external Plugin.\r\nSearches for the specified plugin in the grid’s plugin list.\r\nWhen found, it calls the plugin’s destroy() method and removes the plugin from the list,\r\nthereby unregistering it from the grid."
    },
    {
      "name": "destroy",
      "group": "Grid and Dom Initialisation",
      "signature": "destroy(shouldDestroyAllElements?: boolean)",
      "params": [
        {
          "name": "shouldDestroyAllElements",
          "type": "boolean",
          "optional": true,
          "description": "- do we want to destroy (nullify) all DOM elements as well? This help in avoiding mem leaks"
        }
      ],
      "returns": "",
      "description": "Destroy (dispose) of SlickGrid\r\n\r\nUnbinds all event handlers, cancels any active cell edits, triggers the onBeforeDestroy event,\r\nunregisters and destroys plugins, destroys sortable and other interaction instances,\r\nunbinds ancestor scroll events, removes CSS rules, unbinds events from all key DOM elements\r\n(canvas, viewports, header, footer, etc.), empties the grid container, removes the grid’s uid class,\r\nand clears all timers. Optionally, if shouldDestroyAllElements is true,\r\ncalls destroyAllElements to nullify all DOM references."
    },
    {
      "name": "getOptions",
      "group": "Grid and Dom Initialisation",
      "signature": "getOptions(): O",
      "params": [],
      "returns": "O",
      "description": "Returns an object containing all of the Grid options set on the grid. See a list of Grid Options here."
    },
    {
      "name": "getFrozenColumnId",
      "group": "Grid and Dom Initialisation",
      "signature": "getFrozenColumnId(): string | number | null",
      "params": [],
      "returns": "string | number | null",
      "description": "Get the Column ID of the currently frozen column or `null` when not frozen"
    },
    {
      "name": "setOptions",
      "group": "Grid and Dom Initialisation",
      "signature": "setOptions(newOptions: Partial<O>, suppressRender?: boolean, suppressColumnSet?: boolean, suppressSetOverflow?: boolean): void",
      "params": [
        {
          "name": "newOptions",
          "type": "Partial<O>",
          "optional": false,
          "description": ""
        },
        {
          "name": "suppressRender",
          "type": "boolean",
          "optional": true,
          "description": "- do we want to supress the grid re-rendering? (defaults to false)"
        },
        {
          "name": "suppressColumnSet",
          "type": "boolean",
          "optional": true,
          "description": "- do we want to supress the columns set, via \"setColumns()\" method? (defaults to false)"
        },
        {
          "name": "suppressSetOverflow",
          "type": "boolean",
          "optional": true,
          "description": "- do we want to suppress the call to `setOverflow`"
        }
      ],
      "returns": "void",
      "description": "Extends grid options with a given hash. If an there is an active edit, the grid will attempt to commit the changes and only continue if the attempt succeeds."
    },
    {
      "name": "activateChangedOptions",
      "group": "Grid and Dom Initialisation",
      "signature": "activateChangedOptions(suppressRender?: boolean, suppressColumnSet?: boolean, suppressSetOverflow?: boolean): void",
      "params": [
        {
          "name": "suppressRender",
          "type": "boolean",
          "optional": true,
          "description": "- do we want to supress the grid re-rendering? (defaults to false)"
        },
        {
          "name": "suppressColumnSet",
          "type": "boolean",
          "optional": true,
          "description": "- do we want to supress the columns set, via \"setColumns()\" method? (defaults to false)"
        },
        {
          "name": "suppressSetOverflow",
          "type": "boolean",
          "optional": true,
          "description": "- do we want to suppress the call to `setOverflow`"
        }
      ],
      "returns": "void",
      "description": "If option.mixinDefaults is true then external code maintains a reference to the options object. In this case there is no need\r\nto call setOptions() - changes can be made directly to the object. However setOptions() also performs some recalibration of the\r\ngrid in reaction to changed options. activateChangedOptions call the same recalibration routines as setOptions() would have."
    },
    {
      "name": "validateAndEnforceOptions",
      "group": "Grid and Dom Initialisation",
      "signature": "validateAndEnforceOptions(): void",
      "params": [],
      "returns": "void",
      "description": "Ensures consistency in option setting, by thastIF autoHeight IS enabled, leaveSpaceForNewRows is set to FALSE.\r\nAnd, if forceFitColumns is True, then autosizeColsMode is set to LegacyForceFit."
    },
    {
      "name": "setSelectionModel",
      "group": "Grid and Dom Initialisation",
      "signature": "setSelectionModel(model: SelectionModel)",
      "params": [
        {
          "name": "model",
          "type": "SelectionModel",
          "optional": false,
          "description": ""
        }
      ],
      "returns": "",
      "description": "Unregisters a current selection model and registers a new one. See the definition of SelectionModel for more information."
    },
    {
      "name": "getSelectionModel",
      "group": "Grid and Dom Initialisation",
      "signature": "getSelectionModel()",
      "params": [],
      "returns": "",
      "description": "Returns the current SelectionModel. See here for more information about SelectionModels."
    },
    {
      "name": "updateColumnHeader",
      "group": "Column Management, Headers and Footers",
      "signature": "updateColumnHeader(columnId: number | string, title?: string | HTMLElement | DocumentFragment, toolTip?: string)",
      "params": [
        {
          "name": "columnId",
          "type": "number | string",
          "optional": false,
          "description": "Column id."
        },
        {
          "name": "title",
          "type": "string | HTMLElement | DocumentFragment",
          "optional": true,
          "description": "New column name."
        },
        {
          "name": "toolTip",
          "type": "string",
          "optional": true,
          "description": "New column tooltip."
        }
      ],
      "returns": "",
      "description": "Updates an existing column definition and a corresponding header DOM element with the new title and tooltip."
    },
    {
      "name": "getHeader",
      "group": "Column Management, Headers and Footers",
      "signature": "getHeader(columnDef: C)",
      "params": [
        {
          "name": "columnDef",
          "type": "C",
          "optional": false,
          "description": "- column definition"
        }
      ],
      "returns": "",
      "description": "Get the Header DOM element"
    },
    {
      "name": "getHeaderColumn",
      "group": "Column Management, Headers and Footers",
      "signature": "getHeaderColumn(columnIdOrIdx: number | string)",
      "params": [
        {
          "name": "columnIdOrIdx",
          "type": "number | string",
          "optional": false,
          "description": "- column Id or index"
        }
      ],
      "returns": "",
      "description": "Get a specific Header Column DOM element by its column Id or index"
    },
    {
      "name": "getHeaderRow",
      "group": "Column Management, Headers and Footers",
      "signature": "getHeaderRow()",
      "params": [],
      "returns": "",
      "description": "Get the Header Row DOM element"
    },
    {
      "name": "getFooterRow",
      "group": "Column Management, Headers and Footers",
      "signature": "getFooterRow()",
      "params": [],
      "returns": "",
      "description": "Get the Footer DOM element"
    },
    {
      "name": "getHeaderRowColumn",
      "group": "Column Management, Headers and Footers",
      "signature": "getHeaderRowColumn(columnIdOrIdx: number | string)",
      "params": [
        {
          "name": "columnIdOrIdx",
          "type": "number | string",
          "optional": false,
          "description": "- column Id or index"
        }
      ],
      "returns": "",
      "description": "Get Header Row Column DOM element by its column Id or index"
    },
    {
      "name": "getFooterRowColumn",
      "group": "Column Management, Headers and Footers",
      "signature": "getFooterRowColumn(columnIdOrIdx: number | string)",
      "params": [
        {
          "name": "columnIdOrIdx",
          "type": "number | string",
          "optional": false,
          "description": "- column Id or index"
        }
      ],
      "returns": "",
      "description": "Get the Footer Row Column DOM element by its column Id or index"
    },
    {
      "name": "autosizeColumn",
      "group": "Column Management - Autosizing",
      "signature": "autosizeColumn(columnOrIndexOrId: number | string, isInit?: boolean)",
      "params": [
        {
          "name": "columnOrIndexOrId",
          "type": "number | string",
          "optional": false,
          "description": ""
        },
        {
          "name": "isInit",
          "type": "boolean",
          "optional": true,
          "description": ""
        }
      ],
      "returns": "",
      "description": "Proportionally resize a specific column by its name, index or Id\r\n\r\nResizes based on its content, but determines the column definition from the provided identifier or index.\r\nThen, obtains a grid canvas and calls getColAutosizeWidth to compute and update the column’s width."
    },
    {
      "name": "autosizeColumns",
      "group": "Column Management - Autosizing",
      "signature": "autosizeColumns(autosizeMode?: string, isInit?: boolean)",
      "params": [
        {
          "name": "autosizeMode",
          "type": "string",
          "optional": true,
          "description": ""
        },
        {
          "name": "isInit",
          "type": "boolean",
          "optional": true,
          "description": ""
        }
      ],
      "returns": "",
      "description": "Proportionately resizes all columns to fill available horizontal space.\r\nThis does not take the cell contents into consideration.\r\n\r\nIt does this by temporarily caching CSS for hidden containers, calling the internal autosizing logic\r\n(internalAutosizeColumns) with the autosize mode and initialisation flag,\r\nthen restores the original CSS."
    },
    {
      "name": "reRenderColumns",
      "group": "Column Management - Autosizing",
      "signature": "reRenderColumns(reRender?: boolean)",
      "params": [
        {
          "name": "reRender",
          "type": "boolean",
          "optional": true,
          "description": ""
        }
      ],
      "returns": "",
      "description": "Apply Columns Widths in the UI and optionally invalidate & re-render the columns when specified"
    },
    {
      "name": "getVisibleColumns",
      "group": "Column Management - Autosizing",
      "signature": "getVisibleColumns()",
      "params": [],
      "returns": "",
      "description": "Returns an array of column definitions filtered to exclude any that are marked as hidden."
    },
    {
      "name": "getColumnIndex",
      "group": "Column Management - Autosizing",
      "signature": "getColumnIndex(id: number | string): number",
      "params": [
        {
          "name": "id",
          "type": "number | string",
          "optional": false,
          "description": "A column id."
        }
      ],
      "returns": "number",
      "description": "Returns the index of a column with a given id. Since columns can be reordered by the user, this can be used to get the column definition independent of the order:"
    },
    {
      "name": "setSortColumn",
      "group": "Column Management - Autosizing",
      "signature": "setSortColumn(columnId: number | string, ascending: boolean)",
      "params": [
        {
          "name": "columnId",
          "type": "number | string",
          "optional": false,
          "description": ""
        },
        {
          "name": "ascending",
          "type": "boolean",
          "optional": false,
          "description": ""
        }
      ],
      "returns": "",
      "description": "A convenience method that creates a sort configuration for one column (with the given sort direction)\r\nand calls setSortColumns with it. Accepts a columnId string and an ascending boolean.\r\nApplies a sort glyph in either ascending or descending form to the header of the column.\r\nNote that this does not actually sort the column. It only adds the sort glyph to the header."
    },
    {
      "name": "getColumnByIndex",
      "group": "Column Management - Autosizing",
      "signature": "getColumnByIndex(id: number)",
      "params": [
        {
          "name": "id",
          "type": "number",
          "optional": false,
          "description": "- column index"
        }
      ],
      "returns": "",
      "description": "Get column by index - iterates over header containers and returns the header column\r\nelement corresponding to the given index."
    },
    {
      "name": "setSortColumns",
      "group": "Column Management - Autosizing",
      "signature": "setSortColumns(cols: ColumnSort[])",
      "params": [
        {
          "name": "cols",
          "type": "ColumnSort[]",
          "optional": false,
          "description": "- column sort"
        }
      ],
      "returns": "",
      "description": "Accepts an array of objects in the form [ { columnId: [string], sortAsc: [boolean] }, ... ] to\r\ndefine the grid's sort order. When called, this will apply a sort glyph in either ascending\r\nor descending form to the header of each column specified in the array.\r\nNote that this does not actually sort the column. It only adds the sort glyph to the header."
    },
    {
      "name": "getColumns",
      "group": "Column Management - Autosizing",
      "signature": "getColumns()",
      "params": [],
      "returns": "",
      "description": "Returns the current array of column definitions."
    },
    {
      "name": "getSortColumns",
      "group": "Column Management - Autosizing",
      "signature": "getSortColumns(): ColumnSort[]",
      "params": [],
      "returns": "ColumnSort[]",
      "description": "Get sorted columns representing the current sorting state of the grid"
    },
    {
      "name": "setColumns",
      "group": "Column Management - Autosizing",
      "signature": "setColumns(columnDefinitions: C[])",
      "params": [
        {
          "name": "columnDefinitions",
          "type": "C[]",
          "optional": false,
          "description": "An array of column definitions."
        }
      ],
      "returns": "",
      "description": "Sets grid columns. Column headers will be recreated and all rendered rows will be removed.\r\nTo rerender the grid (if necessary), call render()."
    },
    {
      "name": "updateColumns",
      "group": "Column Management - Autosizing",
      "signature": "updateColumns()",
      "params": [],
      "returns": "",
      "description": "Update columns for when a hidden property has changed but the column list itself has not changed."
    },
    {
      "name": "getEditorLock",
      "group": "Data Management and Editing",
      "signature": "getEditorLock()",
      "params": [],
      "returns": "",
      "description": "Get Editor lock"
    },
    {
      "name": "getEditController",
      "group": "Data Management and Editing",
      "signature": "getEditController()",
      "params": [],
      "returns": "",
      "description": "Get Editor Controller"
    },
    {
      "name": "setData",
      "group": "Data Management and Editing",
      "signature": "setData(newData: CustomDataView<TData> | TData[], scrollToTop?: boolean)",
      "params": [
        {
          "name": "newData",
          "type": "CustomDataView<TData> | TData[]",
          "optional": false,
          "description": "New databinding source using a regular JavaScript array.. or a custom object exposing getItem(index) and getLength() functions."
        },
        {
          "name": "scrollToTop",
          "type": "boolean",
          "optional": true,
          "description": "If true, the grid will reset the vertical scroll position to the top of the grid."
        }
      ],
      "returns": "",
      "description": "Sets a new source for databinding and removes all rendered rows. Note that this doesn't render the new rows - you can follow it with a call to render() to do that."
    },
    {
      "name": "getData",
      "group": "Data Management and Editing",
      "signature": "getData(): U",
      "params": [],
      "returns": "U",
      "description": "Returns an array of every data object, unless you're using DataView in which case it returns a DataView object."
    },
    {
      "name": "getDataLength",
      "group": "Data Management and Editing",
      "signature": "getDataLength()",
      "params": [],
      "returns": "",
      "description": "Returns the size of the databinding source."
    },
    {
      "name": "getDataItem",
      "group": "Data Management and Editing",
      "signature": "getDataItem(i: number): TData",
      "params": [
        {
          "name": "i",
          "type": "number",
          "optional": false,
          "description": ""
        }
      ],
      "returns": "TData",
      "description": "Returns the databinding item at a given position."
    },
    {
      "name": "getCellValue",
      "group": "Data Management and Editing",
      "signature": "getCellValue(i: number, field: string): TData[keyof TData]",
      "params": [
        {
          "name": "i",
          "type": "number",
          "optional": false,
          "description": "Item row index."
        },
        {
          "name": "field",
          "type": "string",
          "optional": false,
          "description": "Column field name."
        }
      ],
      "returns": "TData[keyof TData]",
      "description": "Returns the value of a single field for a given row index.\r\n\r\nWhen the databinding source is a `CustomDataView` that implements the optional\r\n`getCellValue(index, field)` accessor, that method is used directly. This allows\r\ncolumn-oriented (or otherwise non row-materializing) data sources to return a\r\nsingle cell value without first having to build a full row object via `getItem()`,\r\nwhich can be expensive when called repeatedly (e.g. during column content auto-sizing).\r\n\r\nFalls back to `getDataItem(i)[field]` for plain arrays or data sources that don't\r\nimplement `getCellValue`."
    },
    {
      "name": "hasDataView",
      "group": "Data Management and Editing",
      "signature": "hasDataView()",
      "params": [],
      "returns": "",
      "description": "Are we using a DataView?"
    },
    {
      "name": "getItemMetadaWhenExists",
      "group": "Data Management and Editing",
      "signature": "getItemMetadaWhenExists(row: number): ItemMetadata | null",
      "params": [
        {
          "name": "row",
          "type": "number",
          "optional": false,
          "description": ""
        }
      ],
      "returns": "ItemMetadata | null",
      "description": "Returns item metadata by a row index when it exists"
    },
    {
      "name": "resetActiveCell",
      "group": "Data Management and Editing - Cell Switchers",
      "signature": "resetActiveCell()",
      "params": [],
      "returns": "",
      "description": "Resets active cell by making cell normal and other internal reset."
    },
    {
      "name": "unsetActiveCell",
      "group": "Data Management and Editing - Cell Switchers",
      "signature": "unsetActiveCell()",
      "params": [],
      "returns": "",
      "description": "Clear active cell by making cell normal & removing \"active\" CSS class."
    },
    {
      "name": "focus",
      "group": "Data Management and Editing - Cell Switchers",
      "signature": "focus()",
      "params": [],
      "returns": "",
      "description": ""
    },
    {
      "name": "editActiveCell",
      "group": "Data Management and Editing - Cell Switchers",
      "signature": "editActiveCell(editor?: EditorConstructor, preClickModeOn?: boolean | null, e?: Event)",
      "params": [
        {
          "name": "editor",
          "type": "EditorConstructor",
          "optional": true,
          "description": ""
        },
        {
          "name": "preClickModeOn",
          "type": "boolean | null",
          "optional": true,
          "description": ""
        },
        {
          "name": "e",
          "type": "Event",
          "optional": true,
          "description": ""
        }
      ],
      "returns": "",
      "description": "A public method that starts editing on the active cell by calling\r\nmakeActiveCellEditable with the provided editor, pre–click flag, and event."
    },
    {
      "name": "getSelectedRows",
      "group": "Data Management and Editing - Cell Switchers",
      "signature": "getSelectedRows()",
      "params": [],
      "returns": "",
      "description": "Returns an array of row indices corresponding to the currently selected rows."
    },
    {
      "name": "setSelectedRows",
      "group": "Data Management and Editing - Cell Switchers",
      "signature": "setSelectedRows(rows: number[], caller?: string)",
      "params": [
        {
          "name": "rows",
          "type": "number[]",
          "optional": false,
          "description": ""
        },
        {
          "name": "caller",
          "type": "string",
          "optional": true,
          "description": "- an optional string to identify who called the method"
        }
      ],
      "returns": "",
      "description": "Accepts an array of row indices and applies the current selectedCellCssClass to the cells in the row, respecting whether cells have been flagged as selectable."
    },
    {
      "name": "getCellFromEvent",
      "group": "Event Handling and Interactivity",
      "signature": "getCellFromEvent(evt: Event | SlickEventData_)",
      "params": [
        {
          "name": "evt",
          "type": "Event | SlickEventData_",
          "optional": false,
          "description": ""
        }
      ],
      "returns": "",
      "description": "Returns a hash containing row and cell indexes from a standard W3C event."
    },
    {
      "name": "applyHtmlCode",
      "group": "Rendering and Layout Management",
      "signature": "applyHtmlCode(target: HTMLElement, val?: boolean | string | HTMLElement | DocumentFragment, options?: { emptyTarget?: boolean; skipEmptyReassignment?: boolean; })",
      "params": [
        {
          "name": "target",
          "type": "HTMLElement",
          "optional": false,
          "description": "- target element to apply to"
        },
        {
          "name": "val",
          "type": "boolean | string | HTMLElement | DocumentFragment",
          "optional": true,
          "description": "- input value can be either a string or an HTMLElement"
        },
        {
          "name": "options",
          "type": "{ emptyTarget?: boolean; skipEmptyReassignment?: boolean; }",
          "optional": true,
          "description": "-\r\n`emptyTarget`, defaults to true, will empty the target.\r\n`skipEmptyReassignment`, defaults to true, when enabled it will not try to reapply an empty value when the target is already empty"
        }
      ],
      "returns": "",
      "description": "Apply HTML code by 3 different ways depending on what is provided as input and what options are enabled.\r\n1. value is an HTMLElement or DocumentFragment, then first empty the target and simply append the HTML to the target element.\r\n2. value is string and `enableHtmlRendering` is enabled, then use `target.innerHTML = value;`\r\n3. value is string and `enableHtmlRendering` is disabled, then use `target.textContent = value;`"
    },
    {
      "name": "getCanvasNode",
      "group": "Rendering and Layout Management",
      "signature": "getCanvasNode(columnIdOrIdx?: number | string, rowIndex?: number)",
      "params": [
        {
          "name": "columnIdOrIdx",
          "type": "number | string",
          "optional": true,
          "description": ""
        },
        {
          "name": "rowIndex",
          "type": "number",
          "optional": true,
          "description": ""
        }
      ],
      "returns": "",
      "description": "Get Grid Canvas Node DOM Element"
    },
    {
      "name": "getActiveCanvasNode",
      "group": "Rendering and Layout Management",
      "signature": "getActiveCanvasNode(e?: Event | SlickEventData_)",
      "params": [
        {
          "name": "e",
          "type": "Event | SlickEventData_",
          "optional": true,
          "description": ""
        }
      ],
      "returns": "",
      "description": "Get the canvas DOM element"
    },
    {
      "name": "getCanvases",
      "group": "Rendering and Layout Management",
      "signature": "getCanvases()",
      "params": [],
      "returns": "",
      "description": "Get the canvas DOM element"
    },
    {
      "name": "getViewportNode",
      "group": "Rendering and Layout Management",
      "signature": "getViewportNode(columnIdOrIdx?: number | string, rowIndex?: number)",
      "params": [
        {
          "name": "columnIdOrIdx",
          "type": "number | string",
          "optional": true,
          "description": ""
        },
        {
          "name": "rowIndex",
          "type": "number",
          "optional": true,
          "description": ""
        }
      ],
      "returns": "",
      "description": "Get the Viewport DOM node element"
    },
    {
      "name": "getViewports",
      "group": "Rendering and Layout Management",
      "signature": "getViewports()",
      "params": [],
      "returns": "",
      "description": "Get all the Viewport node elements"
    },
    {
      "name": "getActiveViewportNode",
      "group": "Rendering and Layout Management",
      "signature": "getActiveViewportNode(e: Event | SlickEventData_)",
      "params": [
        {
          "name": "e",
          "type": "Event | SlickEventData_",
          "optional": false,
          "description": ""
        }
      ],
      "returns": "",
      "description": "Calls setActiveViewportNode (using the provided event) to set the active viewport,\r\nthen returns the active viewport DOM element."
    },
    {
      "name": "setActiveViewportNode",
      "group": "Rendering and Layout Management",
      "signature": "setActiveViewportNode(e: Event | SlickEventData_)",
      "params": [
        {
          "name": "e",
          "type": "Event | SlickEventData_",
          "optional": false,
          "description": ""
        }
      ],
      "returns": "",
      "description": "Sets an active viewport node"
    },
    {
      "name": "getHeadersWidth",
      "group": "Rendering and Layout Management",
      "signature": "getHeadersWidth()",
      "params": [],
      "returns": "",
      "description": "Get the headers width in pixel\r\n\r\nIterates over all columns to accumulate the widths for the left and right header sections,\r\nadds scrollbar width if needed, and adjusts for frozen columns.\r\nReturns the computed overall header width in pixels."
    },
    {
      "name": "getCanvasWidth",
      "group": "Rendering and Layout Management",
      "signature": "getCanvasWidth(): number",
      "params": [],
      "returns": "number",
      "description": "Get the grid canvas width\r\n\r\nComputes the available width (considering vertical scrollbar if present),\r\nthen iterates over the columns (left vs. right based on frozen columns) to sum their widths.\r\nIf full–width rows are enabled, extra width is added. Returns the total calculated width."
    },
    {
      "name": "validateColumnFreezeWidth",
      "group": "Rendering and Layout Management",
      "signature": "validateColumnFreezeWidth(frozenColumn?, forceAlert?: boolean): boolean",
      "params": [
        {
          "name": "frozenColumn",
          "type": "",
          "optional": true,
          "description": "the column index to freeze at"
        },
        {
          "name": "forceAlert",
          "type": "boolean",
          "optional": true,
          "description": "tri-state flag to alert when frozen column is invalid\r\n- if `undefined` it will do the condition check and never alert more than once\r\n- if `true` it will do the condition check and always alert even if it was called before\r\n- if `false` it will do the condition check but always skip the alert"
        }
      ],
      "returns": "boolean",
      "description": "Validate that the column freeze is allowed in the browser by making sure that the frozen column is not exceeding the available and visible left canvas width.\r\nNote that it will only validate when `invalidColumnFreezeWidthCallback` or `throwWhenFrozenNotAllViewable` grid option is enabled."
    },
    {
      "name": "calculateFrozenColumnIndexById",
      "group": "Rendering and Layout Management",
      "signature": "calculateFrozenColumnIndexById(newColumns: C[], columnId?: string | number | null, applyIndexChange?): number",
      "params": [
        {
          "name": "newColumns",
          "type": "C[]",
          "optional": false,
          "description": "- new columns to calculate frozen index from"
        },
        {
          "name": "columnId",
          "type": "string | number | null",
          "optional": true,
          "description": "- optional column id to calculate from (otherwise it will find the current frozen column id)"
        },
        {
          "name": "applyIndexChange",
          "type": "",
          "optional": true,
          "description": "- whether to apply index changes to the frozen column"
        }
      ],
      "returns": "number",
      "description": "From a new set of columns, different than current grid columns, we'll recalculate the `frozenColumn` index position by comparing its column `id`\r\nand recalculating the `frozenColumn` index to find out if it is different from a new set of columns."
    },
    {
      "name": "validateSetColumnFreeze",
      "group": "Rendering and Layout Management",
      "signature": "validateSetColumnFreeze(newColumns: C[], forceAlert?: boolean): boolean",
      "params": [
        {
          "name": "newColumns",
          "type": "C[]",
          "optional": false,
          "description": "the new columns that will later be provided to `setColumns()`"
        },
        {
          "name": "forceAlert",
          "type": "boolean",
          "optional": true,
          "description": "tri-state flag to alert when frozen column is invalid\r\n- if `undefined` it will do the condition check and never alert more than once\r\n- if `true` it will do the condition check and always alert even if it was called before\r\n- if `false` it will do the condition check but always skip the alert"
        }
      ],
      "returns": "boolean",
      "description": "Validate that there is at least 1, or more, column to the right of the frozen column otherwise show an error (we do this check before calling `setColumns()`).\r\nNote that it will only validate when `invalidColumnFreezePickerCallback` grid option is enabled."
    },
    {
      "name": "getPreHeaderPanel",
      "group": "Rendering and Layout Management",
      "signature": "getPreHeaderPanel()",
      "params": [],
      "returns": "",
      "description": ""
    },
    {
      "name": "getPreHeaderPanelLeft",
      "group": "Rendering and Layout Management",
      "signature": "getPreHeaderPanelLeft()",
      "params": [],
      "returns": "",
      "description": "Get the Pre-Header Panel Left DOM node element"
    },
    {
      "name": "getPreHeaderPanelRight",
      "group": "Rendering and Layout Management",
      "signature": "getPreHeaderPanelRight()",
      "params": [],
      "returns": "",
      "description": "Get the Pre-Header Panel Right DOM node element"
    },
    {
      "name": "getTopHeaderPanel",
      "group": "Rendering and Layout Management",
      "signature": "getTopHeaderPanel()",
      "params": [],
      "returns": "",
      "description": "Get the Top-Header Panel DOM node element"
    },
    {
      "name": "getTopPanel",
      "group": "Rendering and Layout Management",
      "signature": "getTopPanel()",
      "params": [],
      "returns": "",
      "description": "Get Top Panel DOM element"
    },
    {
      "name": "getTopPanels",
      "group": "Rendering and Layout Management",
      "signature": "getTopPanels()",
      "params": [],
      "returns": "",
      "description": "Get Top Panels (left/right) DOM element"
    },
    {
      "name": "setTopPanelVisibility",
      "group": "Rendering and Layout Management",
      "signature": "setTopPanelVisibility(visible?: boolean, animate?: boolean)",
      "params": [
        {
          "name": "visible",
          "type": "boolean",
          "optional": true,
          "description": "- optionally set if top panel is visible or not"
        },
        {
          "name": "animate",
          "type": "boolean",
          "optional": true,
          "description": "- optionally enable an animation while toggling the panel"
        }
      ],
      "returns": "",
      "description": "Set the Top Panel Visibility and optionally enable/disable animation (enabled by default)"
    },
    {
      "name": "setHeaderRowVisibility",
      "group": "Rendering and Layout Management",
      "signature": "setHeaderRowVisibility(visible?: boolean, animate?: boolean)",
      "params": [
        {
          "name": "visible",
          "type": "boolean",
          "optional": true,
          "description": "- optionally set if header row panel is visible or not"
        },
        {
          "name": "animate",
          "type": "boolean",
          "optional": true,
          "description": "- optionally enable an animation while toggling the panel"
        }
      ],
      "returns": "",
      "description": "Set the Header Row Visibility and optionally enable/disable animation (enabled by default)"
    },
    {
      "name": "setColumnHeaderVisibility",
      "group": "Rendering and Layout Management",
      "signature": "setColumnHeaderVisibility(visible?: boolean, animate?: boolean)",
      "params": [
        {
          "name": "visible",
          "type": "boolean",
          "optional": true,
          "description": "- optionally set if column header is visible or not"
        },
        {
          "name": "animate",
          "type": "boolean",
          "optional": true,
          "description": "- optionally enable an animation while toggling the panel"
        }
      ],
      "returns": "",
      "description": "Set the Column Header Visibility and optionally enable/disable animation (enabled by default)"
    },
    {
      "name": "setFooterRowVisibility",
      "group": "Rendering and Layout Management",
      "signature": "setFooterRowVisibility(visible?: boolean, animate?: boolean)",
      "params": [
        {
          "name": "visible",
          "type": "boolean",
          "optional": true,
          "description": "- optionally set if footer row panel is visible or not"
        },
        {
          "name": "animate",
          "type": "boolean",
          "optional": true,
          "description": "- optionally enable an animation while toggling the panel"
        }
      ],
      "returns": "",
      "description": "Set the Footer Visibility and optionally enable/disable animation (enabled by default)"
    },
    {
      "name": "setPreHeaderPanelVisibility",
      "group": "Rendering and Layout Management",
      "signature": "setPreHeaderPanelVisibility(visible?: boolean, animate?: boolean)",
      "params": [
        {
          "name": "visible",
          "type": "boolean",
          "optional": true,
          "description": "- optionally set if pre-header panel is visible or not"
        },
        {
          "name": "animate",
          "type": "boolean",
          "optional": true,
          "description": "- optionally enable an animation while toggling the panel"
        }
      ],
      "returns": "",
      "description": "Set the Pre-Header Visibility and optionally enable/disable animation (enabled by default)"
    },
    {
      "name": "setTopHeaderPanelVisibility",
      "group": "Rendering and Layout Management",
      "signature": "setTopHeaderPanelVisibility(visible?: boolean)",
      "params": [
        {
          "name": "visible",
          "type": "boolean",
          "optional": true,
          "description": "- optionally set if top-header panel is visible or not"
        }
      ],
      "returns": "",
      "description": "Set the Top-Header Visibility"
    },
    {
      "name": "getRowHeight",
      "group": "Rendering and Layout Management",
      "signature": "getRowHeight(row?: number)",
      "params": [
        {
          "name": "row",
          "type": "number",
          "optional": true,
          "description": "- The row index. When omitted the default row height is returned."
        }
      ],
      "returns": "",
      "description": "Retrieves the height of a row.\r\nIn variable row height mode (`enableVariableRowHeight`) and with a row index provided,\r\nreturns that row's individual height; otherwise returns the default row height defined\r\nin the grid options."
    },
    {
      "name": "invalidate",
      "group": "Rendering and Layout Management",
      "signature": "invalidate()",
      "params": [],
      "returns": "",
      "description": "Invalidate all grid rows and re-render the visible grid rows"
    },
    {
      "name": "invalidateAllRows",
      "group": "Rendering and Layout Management",
      "signature": "invalidateAllRows()",
      "params": [],
      "returns": "",
      "description": "Invalidate all grid rows"
    },
    {
      "name": "invalidateRows",
      "group": "Rendering and Layout Management",
      "signature": "invalidateRows(rows: number[])",
      "params": [
        {
          "name": "rows",
          "type": "number[]",
          "optional": false,
          "description": ""
        }
      ],
      "returns": "",
      "description": "Invalidate a specific set of row numbers"
    },
    {
      "name": "invalidateRow",
      "group": "Rendering and Layout Management",
      "signature": "invalidateRow(row: number)",
      "params": [
        {
          "name": "row",
          "type": "number",
          "optional": false,
          "description": ""
        }
      ],
      "returns": "",
      "description": "Invalidate a specific row number"
    },
    {
      "name": "updateCell",
      "group": "Rendering and Layout Management",
      "signature": "updateCell(row: number, cell: number)",
      "params": [
        {
          "name": "row",
          "type": "number",
          "optional": false,
          "description": "- grid row number"
        },
        {
          "name": "cell",
          "type": "number",
          "optional": false,
          "description": "- grid cell column number"
        }
      ],
      "returns": "",
      "description": "Update a specific cell by its row and column index"
    },
    {
      "name": "updateRow",
      "group": "Rendering and Layout Management",
      "signature": "updateRow(row: number)",
      "params": [
        {
          "name": "row",
          "type": "number",
          "optional": false,
          "description": "- grid row number"
        }
      ],
      "returns": "",
      "description": "Update a specific row by its row index"
    },
    {
      "name": "getViewportRowCount",
      "group": "Rendering and Layout Management",
      "signature": "getViewportRowCount()",
      "params": [],
      "returns": "",
      "description": "Get the number of rows displayed in the viewport\r\nNote that the row count is an approximation because it is a calculated value using this formula (viewport / rowHeight = rowCount),\r\nthe viewport must also be displayed for this calculation to work."
    },
    {
      "name": "getViewportHeight",
      "group": "Rendering and Layout Management",
      "signature": "getViewportHeight()",
      "params": [],
      "returns": "",
      "description": "Calculates the vertical height available for displaying grid rows. In auto–height mode it sums panel heights\r\n(header, footer, top panel) plus the total row height; otherwise, it subtracts header, footer, pre–header,\r\ntop–header heights and container paddings from the container’s computed height. It also computes and stores\r\nthe number of visible rows."
    },
    {
      "name": "getViewportWidth",
      "group": "Rendering and Layout Management",
      "signature": "getViewportWidth()",
      "params": [],
      "returns": "",
      "description": "Returns the width of the grid’s viewport by measuring the inner width of the grid container (using a utility function).\r\nIt falls back to a devMode–specified width if necessary."
    },
    {
      "name": "resizeCanvas",
      "group": "Rendering and Layout Management",
      "signature": "resizeCanvas()",
      "params": [],
      "returns": "",
      "description": "Execute a Resize of the Grid Canvas.\r\n\r\nRecalculates the grid’s canvas, pane, and viewport dimensions based on the current container size,\r\nfrozen rows/columns settings, and auto–height configuration. It then applies these dimensions to various DOM elements\r\n(panes, viewports, canvases) and updates the scrollbar dimensions.\r\nFinally, it updates the row count, handles scrolling, and forces a re–render."
    },
    {
      "name": "invalidateRowHeights",
      "group": "Rendering and Layout Management",
      "signature": "invalidateRowHeights()",
      "params": [],
      "returns": "",
      "description": "Invalidate all row heights (variable row height mode) and fully re-render the grid.\r\nCall this after the values driving `rowHeightProvider` (or, with the default provider, the\r\nitem metadata heights) have changed without a change in row count; the row position index\r\nis then rebuilt with the new heights."
    },
    {
      "name": "updateRowCount",
      "group": "Rendering and Layout Management",
      "signature": "updateRowCount()",
      "params": [],
      "returns": "",
      "description": "Update the dataset row count"
    },
    {
      "name": "getViewport",
      "group": "Rendering and Layout Management",
      "signature": "getViewport(viewportTop?: number, viewportLeft?: number)",
      "params": [
        {
          "name": "viewportTop",
          "type": "number",
          "optional": true,
          "description": ""
        },
        {
          "name": "viewportLeft",
          "type": "number",
          "optional": true,
          "description": ""
        }
      ],
      "returns": "",
      "description": ""
    },
    {
      "name": "getVisibleRange",
      "group": "Rendering and Layout Management",
      "signature": "getVisibleRange(viewportTop?: number, viewportLeft?: number)",
      "params": [
        {
          "name": "viewportTop",
          "type": "number",
          "optional": true,
          "description": "- The top scroll position."
        },
        {
          "name": "viewportLeft",
          "type": "number",
          "optional": true,
          "description": "- The left scroll position."
        }
      ],
      "returns": "",
      "description": "Returns an object with the top and bottom row indices that are visible in the viewport, as well\r\nas the left and right pixel boundaries.\r\nIt uses the current (or provided) scroll positions and viewport dimensions."
    },
    {
      "name": "getRenderedRange",
      "group": "Rendering and Layout Management",
      "signature": "getRenderedRange(viewportTop?: number, viewportLeft?: number)",
      "params": [
        {
          "name": "viewportTop",
          "type": "number",
          "optional": true,
          "description": "- The top scroll position."
        },
        {
          "name": "viewportLeft",
          "type": "number",
          "optional": true,
          "description": "- The left scroll position."
        }
      ],
      "returns": "",
      "description": "Computes the range of rows (and horizontal pixel boundaries) that should be rendered,\r\nincluding an additional buffer (based on row height and a minimum buffer) determined by\r\nthe current vertical scroll direction.\r\nThis range is used to decide which rows and cells to render."
    },
    {
      "name": "getRowCache",
      "group": "Rendering and Layout Management",
      "signature": "getRowCache(): Record<number, RowCaching>",
      "params": [],
      "returns": "Record<number, RowCaching>",
      "description": "Returns the rows cache that are currently rendered in the DOM,\r\nthe cache includes certain properties like the row div element, cell rendered queue and the row colspan when defined."
    },
    {
      "name": "render",
      "group": "Rendering and Layout Management",
      "signature": "render()",
      "params": [],
      "returns": "",
      "description": "(re)Render the grid\r\n\r\nMain rendering method that first dequeues any pending scroll throttling, then obtains the visible and rendered ranges.\r\nIt removes rows no longer visible, calls cleanUpAndRenderCells and renderRows to render missing cells and new rows,\r\nand, if frozen rows are present, renders them separately. It then sets post–processing boundaries, starts post–processing,\r\nupdates scroll positions, and triggers the onRendered event."
    },
    {
      "name": "getFrozenRowOffset",
      "group": "Rendering and Layout Management",
      "signature": "getFrozenRowOffset(row: number)",
      "params": [
        {
          "name": "row",
          "type": "number",
          "optional": false,
          "description": "- grid row number"
        }
      ],
      "returns": "",
      "description": "Get frozen (pinned) row offset\r\n\r\nReturns the vertical pixel offset to apply for frozen rows.\r\nDepending on whether frozen rows are pinned at the bottom or top and based on grid height,\r\nit returns either a fixed frozen rows height or a calculated offset."
    },
    {
      "name": "scrollTo",
      "group": "Scrolling and Virtualisation",
      "signature": "scrollTo(y: number)",
      "params": [
        {
          "name": "y",
          "type": "number",
          "optional": false,
          "description": ""
        }
      ],
      "returns": "",
      "description": "Scroll to a Y position in the grid (clamped to valid bounds)\r\n\r\nUpdates internal offsets, recalculates the visible range, cleans up rows outside the viewport,\r\nupdates row positions, and triggers the onViewportChanged event."
    },
    {
      "name": "scrollCellIntoView",
      "group": "Scrolling and Virtualisation",
      "signature": "scrollCellIntoView(row: number, cell: number, doPaging?: boolean)",
      "params": [
        {
          "name": "row",
          "type": "number",
          "optional": false,
          "description": ""
        },
        {
          "name": "cell",
          "type": "number",
          "optional": false,
          "description": ""
        },
        {
          "name": "doPaging",
          "type": "boolean",
          "optional": true,
          "description": ""
        }
      ],
      "returns": "",
      "description": "Scroll to a specific cell and make it into the view\r\n\r\nFirst calls scrollRowIntoView for the row. If the cell is not in a frozen column,\r\ncalculates the cell’s colspan and then calls internalScrollColumnIntoView with the\r\ncell’s left and right boundaries."
    },
    {
      "name": "scrollColumnIntoView",
      "group": "Scrolling and Virtualisation",
      "signature": "scrollColumnIntoView(cell: number)",
      "params": [
        {
          "name": "cell",
          "type": "number",
          "optional": false,
          "description": "- cell column number"
        }
      ],
      "returns": "",
      "description": "Scroll to a specific column and show it into the viewport"
    },
    {
      "name": "updatePagingStatusFromView",
      "group": "Scrolling and Virtualisation",
      "signature": "updatePagingStatusFromView(pagingInfo: Pick<PagingInfo, 'pageSize' | 'pageNum' | 'totalPages'>)",
      "params": [
        {
          "name": "pagingInfo",
          "type": "Pick<PagingInfo, 'pageSize' | 'pageNum' | 'totalPages'>",
          "optional": false,
          "description": ""
        }
      ],
      "returns": "",
      "description": "Update paging information status from the View"
    },
    {
      "name": "getRowSpanColumnIntersects",
      "group": "Scrolling and Virtualisation",
      "signature": "getRowSpanColumnIntersects(row: number): number[]",
      "params": [
        {
          "name": "row",
          "type": "number",
          "optional": false,
          "description": "- grid row index"
        }
      ],
      "returns": "number[]",
      "description": "from a row number, return any column indexes that intersected with the grid row including the cell"
    },
    {
      "name": "getRowSpanIntersect",
      "group": "Scrolling and Virtualisation",
      "signature": "getRowSpanIntersect(row: number): number | null",
      "params": [
        {
          "name": "row",
          "type": "number",
          "optional": false,
          "description": "- grid row index"
        }
      ],
      "returns": "number | null",
      "description": "from a row number, verify if the rowspan is intersecting and return it when found,\r\notherwise return `null` when nothing is found or when the rowspan feature is disabled."
    },
    {
      "name": "getParentRowSpanByCell",
      "group": "Scrolling and Virtualisation",
      "signature": "getParentRowSpanByCell(row: number, cell: number, excludeParentRow?): { start: number; end: number; range: string; } | null",
      "params": [
        {
          "name": "row",
          "type": "number",
          "optional": false,
          "description": "- grid row index"
        },
        {
          "name": "cell",
          "type": "number",
          "optional": false,
          "description": "- grid cell/column index"
        },
        {
          "name": "excludeParentRow",
          "type": "",
          "optional": true,
          "description": "- should we exclude the parent who initiated the rowspan in the search (defaults to true)?"
        }
      ],
      "returns": "{ start: number; end: number; range: string; } | null",
      "description": "Returns the parent rowspan details when child cell are spanned from a rowspan or `null` when it's not spanned.\r\nBy default it will exclude the parent cell that holds the rowspan, and return `null`, that initiated the rowspan unless the 3rd argument is disabled.\r\nThe exclusion is helpful to find out when we're dealing with a child cell of a rowspan"
    },
    {
      "name": "remapAllColumnsRowSpan",
      "group": "Scrolling and Virtualisation",
      "signature": "remapAllColumnsRowSpan()",
      "params": [],
      "returns": "",
      "description": "Remap all the rowspan metadata by looping through all dataset rows and keep a cache of rowspan by column indexes\r\nFor example:\r\n 1- if 2nd row of the 1st column has a metadata.rowspan of 3 then the cache will be: `{ 0: '1:4' }`\r\n 2- if 2nd row if the 1st column has a metadata.rowspan of 3 AND a colspan of 2 then the cache will be: `{ 0: '1:4', 1: '1:4' }`"
    },
    {
      "name": "scrollRowIntoView",
      "group": "Scrolling and Virtualisation",
      "signature": "scrollRowIntoView(row: number, doPaging?: boolean)",
      "params": [
        {
          "name": "row",
          "type": "number",
          "optional": false,
          "description": "- grid row number"
        },
        {
          "name": "doPaging",
          "type": "boolean",
          "optional": true,
          "description": "- scroll when pagination is enabled"
        }
      ],
      "returns": "",
      "description": "Scroll to a specific row and make it into the view"
    },
    {
      "name": "scrollRowToTop",
      "group": "Scrolling and Virtualisation",
      "signature": "scrollRowToTop(row: number)",
      "params": [
        {
          "name": "row",
          "type": "number",
          "optional": false,
          "description": "- grid row number"
        }
      ],
      "returns": "",
      "description": "Scroll to the top row and make it into the view"
    },
    {
      "name": "navigatePageDown",
      "group": "Scrolling and Virtualisation",
      "signature": "navigatePageDown()",
      "params": [],
      "returns": "",
      "description": "Navigate (scroll) by a page down"
    },
    {
      "name": "navigatePageUp",
      "group": "Scrolling and Virtualisation",
      "signature": "navigatePageUp()",
      "params": [],
      "returns": "",
      "description": "Navigate (scroll) by a page up"
    },
    {
      "name": "navigateTop",
      "group": "Scrolling and Virtualisation",
      "signature": "navigateTop()",
      "params": [],
      "returns": "",
      "description": "Navigate to the top of the grid"
    },
    {
      "name": "navigateBottom",
      "group": "Scrolling and Virtualisation",
      "signature": "navigateBottom()",
      "params": [],
      "returns": "",
      "description": "Navigate to the bottom of the grid"
    },
    {
      "name": "navigateToRow",
      "group": "Scrolling and Virtualisation",
      "signature": "navigateToRow(row: number)",
      "params": [
        {
          "name": "row",
          "type": "number",
          "optional": false,
          "description": "- The row index to navigate to."
        }
      ],
      "returns": "",
      "description": "Navigates to a specified row, ensuring it is visible and selecting an active cell if applicable.\r\nAdjusts the scroll position and updates the active cell based on cell navigation rules."
    },
    {
      "name": "applyFormatResultToCellNode",
      "group": "Cell and Row Post-Processing and CSS Styling",
      "signature": "applyFormatResultToCellNode(formatterResult: FormatterResultWithHtml | FormatterResultWithText | string | HTMLElement | DocumentFragment, cellNode: HTMLDivElement, suppressRemove?: boolean)",
      "params": [
        {
          "name": "formatterResult",
          "type": "FormatterResultWithHtml | FormatterResultWithText | string | HTMLElement | DocumentFragment",
          "optional": false,
          "description": ""
        },
        {
          "name": "cellNode",
          "type": "HTMLDivElement",
          "optional": false,
          "description": ""
        },
        {
          "name": "suppressRemove",
          "type": "boolean",
          "optional": true,
          "description": ""
        }
      ],
      "returns": "",
      "description": "Apply a Formatter Result to a Cell DOM Node\r\n\r\nIf the formatter result is not an object, it is applied directly as HTML/text;\r\notherwise, it extracts the content (from a property such as “html” or “text”) and applies it.\r\nAdditionally, it conditionally removes or adds CSS classes and sets a tooltip on the cell."
    },
    {
      "name": "addCellCssStyles",
      "group": "Cell and Row Post-Processing and CSS Styling",
      "signature": "addCellCssStyles(key: string, hash: CssStyleHash)",
      "params": [
        {
          "name": "key",
          "type": "string",
          "optional": false,
          "description": "A unique key you can use in calls to setCellCssStyles and removeCellCssStyles. If a hash with that key has already been set, an exception will be thrown."
        },
        {
          "name": "hash",
          "type": "CssStyleHash",
          "optional": false,
          "description": "A hash of additional cell CSS classes keyed by row number and then by column id. Multiple CSS classes can be specified and separated by space."
        }
      ],
      "returns": "",
      "description": "Adds an \"overlay\" of CSS classes to cell DOM elements. SlickGrid can have many such overlays associated with different keys and they are frequently used by plugins. For example, SlickGrid uses this method internally to decorate selected cells with selectedCellCssClass (see options)."
    },
    {
      "name": "removeCellCssStyles",
      "group": "Cell and Row Post-Processing and CSS Styling",
      "signature": "removeCellCssStyles(key: string)",
      "params": [
        {
          "name": "key",
          "type": "string",
          "optional": false,
          "description": "A string key."
        }
      ],
      "returns": "",
      "description": "Removes an \"overlay\" of CSS classes from cell DOM elements. See setCellCssStyles for more."
    },
    {
      "name": "setCellCssStyles",
      "group": "Cell and Row Post-Processing and CSS Styling",
      "signature": "setCellCssStyles(key: string, hash: CssStyleHash)",
      "params": [
        {
          "name": "key",
          "type": "string",
          "optional": false,
          "description": "A string key. Will overwrite any data already associated with this key."
        },
        {
          "name": "hash",
          "type": "CssStyleHash",
          "optional": false,
          "description": "A hash of additional cell CSS classes keyed by row number and then by column id. Multiple CSS classes can be specified and separated by space."
        }
      ],
      "returns": "",
      "description": "Sets CSS classes to specific grid cells by calling removeCellCssStyles(key) followed by addCellCssStyles(key, hash). key is name for this set of styles so you can reference it later - to modify it or remove it, for example. hash is a per-row-index, per-column-name nested hash of CSS classes to apply.\r\nSuppose you have a grid with columns:\r\n[\"login\", \"name\", \"birthday\", \"age\", \"likes_icecream\", \"favorite_cake\"]\r\n...and you'd like to highlight the \"birthday\" and \"age\" columns for people whose birthday is today, in this case, rows at index 0 and 9. (The first and tenth row in the grid)."
    },
    {
      "name": "getCellCssStyles",
      "group": "Cell and Row Post-Processing and CSS Styling",
      "signature": "getCellCssStyles(key: string): CssStyleHash",
      "params": [
        {
          "name": "key",
          "type": "string",
          "optional": false,
          "description": "A string."
        }
      ],
      "returns": "CssStyleHash",
      "description": "Accepts a key name, returns the group of CSS styles defined under that name. See setCellCssStyles for more info."
    },
    {
      "name": "flashCell",
      "group": "Cell and Row Post-Processing and CSS Styling",
      "signature": "flashCell(row: number, cell: number, speed?)",
      "params": [
        {
          "name": "row",
          "type": "number",
          "optional": false,
          "description": "A row index."
        },
        {
          "name": "cell",
          "type": "number",
          "optional": false,
          "description": "A column index."
        },
        {
          "name": "speed",
          "type": "",
          "optional": true,
          "description": "(optional) - The milliseconds delay between the toggling calls. Defaults to 250 ms."
        }
      ],
      "returns": "",
      "description": "Flashes the cell twice by toggling the CSS class 4 times."
    },
    {
      "name": "highlightRow",
      "group": "Cell and Row Post-Processing and CSS Styling",
      "signature": "highlightRow(row: number, duration?: number)",
      "params": [
        {
          "name": "row",
          "type": "number",
          "optional": false,
          "description": "- grid row number"
        },
        {
          "name": "duration",
          "type": "number",
          "optional": true,
          "description": "- duration (ms), defaults to 400ms"
        }
      ],
      "returns": "",
      "description": "Highlight a row for a certain duration (ms) of time."
    },
    {
      "name": "getUID",
      "group": "Shared Utilities and Accessors",
      "signature": "getUID()",
      "params": [],
      "returns": "",
      "description": "Get grid unique identifier"
    },
    {
      "name": "getHeaderColumnWidthDiff",
      "group": "Shared Utilities and Accessors",
      "signature": "getHeaderColumnWidthDiff()",
      "params": [],
      "returns": "",
      "description": "Get Header Column Width Difference in pixel"
    },
    {
      "name": "getScrollbarDimensions",
      "group": "Shared Utilities and Accessors",
      "signature": "getScrollbarDimensions()",
      "params": [],
      "returns": "",
      "description": "Get scrollbar dimensions"
    },
    {
      "name": "getDisplayedScrollbarDimensions",
      "group": "Shared Utilities and Accessors",
      "signature": "getDisplayedScrollbarDimensions()",
      "params": [],
      "returns": "",
      "description": "Returns an object with width and height of scrollbars currently displayed in the viewport (zero if not visible)."
    },
    {
      "name": "getAbsoluteColumnMinWidth",
      "group": "Shared Utilities and Accessors",
      "signature": "getAbsoluteColumnMinWidth(): number",
      "params": [],
      "returns": "number",
      "description": "Get the absolute column minimum width"
    },
    {
      "name": "arrayEquals",
      "group": "Shared Utilities and Accessors",
      "signature": "arrayEquals(arr1: Array<T>, arr2: Array<T>): boolean",
      "params": [
        {
          "name": "arr1",
          "type": "Array<T>",
          "optional": false,
          "description": ""
        },
        {
          "name": "arr2",
          "type": "Array<T>",
          "optional": false,
          "description": ""
        }
      ],
      "returns": "boolean",
      "description": ""
    },
    {
      "name": "scrollToX",
      "group": "Shared Utilities and Accessors",
      "signature": "scrollToX(x: number): void",
      "params": [
        {
          "name": "x",
          "type": "number",
          "optional": false,
          "description": ""
        }
      ],
      "returns": "void",
      "description": "Scroll to an X coordinate position in the grid"
    },
    {
      "name": "getPubSubService",
      "group": "Shared Utilities and Accessors",
      "signature": "getPubSubService(): BasePubSub | undefined",
      "params": [],
      "returns": "BasePubSub | undefined",
      "description": "Get the displayed scrollbar dimensions"
    },
    {
      "name": "getCellFromPoint",
      "group": "Shared Utilities and Accessors",
      "signature": "getCellFromPoint(x: number, y: number)",
      "params": [
        {
          "name": "x",
          "type": "number",
          "optional": false,
          "description": "An x coordinate."
        },
        {
          "name": "y",
          "type": "number",
          "optional": false,
          "description": "A y coordinate."
        }
      ],
      "returns": "",
      "description": "Returns row and cell indexes by providing x,y coordinates.\r\nCoordinates are relative to the top left corner of the grid beginning with the first row (not including the column headers)."
    },
    {
      "name": "getPluginByName",
      "group": "Shared Utilities and Accessors",
      "signature": "getPluginByName(name: string)",
      "params": [
        {
          "name": "name",
          "type": "string",
          "optional": false,
          "description": ""
        }
      ],
      "returns": "",
      "description": "Get a Plugin (addon) by its name"
    },
    {
      "name": "getContainerNode",
      "group": "Shared Utilities and Accessors",
      "signature": "getContainerNode()",
      "params": [],
      "returns": "",
      "description": "Get Grid Canvas Node DOM Element"
    },
    {
      "name": "getCellHeight",
      "group": "Shared Utilities and Accessors",
      "signature": "getCellHeight(row: number, rowspan: number)",
      "params": [
        {
          "name": "row",
          "type": "number",
          "optional": false,
          "description": "- The row index of the cell."
        },
        {
          "name": "rowspan",
          "type": "number",
          "optional": false,
          "description": "- The number of rows the cell spans."
        }
      ],
      "returns": "",
      "description": "Computes the height of a cell, taking into account row span if applicable."
    },
    {
      "name": "getCellNodeBox",
      "group": "Shared Utilities and Accessors",
      "signature": "getCellNodeBox(row: number, cell: number)",
      "params": [
        {
          "name": "row",
          "type": "number",
          "optional": false,
          "description": "- A row number."
        },
        {
          "name": "cell",
          "type": "number",
          "optional": false,
          "description": "- A column number."
        }
      ],
      "returns": "",
      "description": "Returns an object representing information about a cell's position. All coordinates are absolute and take into consideration the visibility and scrolling position of all ancestors."
    },
    {
      "name": "getActiveCellPosition",
      "group": "Shared Utilities and Accessors",
      "signature": "getActiveCellPosition()",
      "params": [],
      "returns": "",
      "description": "Returns an object representing information about the active cell's position. All coordinates are absolute and take into consideration the visibility and scrolling position of all ancestors."
    },
    {
      "name": "getGridPosition",
      "group": "Shared Utilities and Accessors",
      "signature": "getGridPosition()",
      "params": [],
      "returns": "",
      "description": "Get the Grid Position"
    },
    {
      "name": "getCellEditor",
      "group": "Shared Utilities and Accessors",
      "signature": "getCellEditor()",
      "params": [],
      "returns": "",
      "description": "Returns the active cell editor. If there is no actively edited cell, null is returned."
    },
    {
      "name": "getActiveCell",
      "group": "Shared Utilities and Accessors",
      "signature": "getActiveCell()",
      "params": [],
      "returns": "",
      "description": "Returns an object representing the coordinates of the currently active cell:"
    },
    {
      "name": "getActiveCellNode",
      "group": "Shared Utilities and Accessors",
      "signature": "getActiveCellNode()",
      "params": [],
      "returns": "",
      "description": "Returns the DOM element containing the currently active cell. If no cell is active, null is returned."
    },
    {
      "name": "sanitizeHtmlString",
      "group": "Shared Utilities and Accessors",
      "signature": "sanitizeHtmlString(dirtyHtml: string, suppressLogging?: boolean)",
      "params": [
        {
          "name": "dirtyHtml",
          "type": "string",
          "optional": false,
          "description": ""
        },
        {
          "name": "suppressLogging",
          "type": "boolean",
          "optional": true,
          "description": ""
        }
      ],
      "returns": "",
      "description": "html sanitizer to avoid scripting attack"
    },
    {
      "name": "findSpanStartingCell",
      "group": "Navigation Helpers",
      "signature": "findSpanStartingCell(row: number, cell: number)",
      "params": [
        {
          "name": "row",
          "type": "number",
          "optional": false,
          "description": "- The row index."
        },
        {
          "name": "cell",
          "type": "number",
          "optional": false,
          "description": "- The column index."
        }
      ],
      "returns": "",
      "description": "From any row/cell indexes that might have colspan/rowspan, find its starting indexes\r\nFor example, if we start at 0,0 and we have colspan/rowspan of 4 for both and our indexes is row:2,cell:3\r\nthen our starting row/cell is 0,0. If a cell has no spanning at all then row/cell output is same as input"
    },
    {
      "name": "navigateRight",
      "group": "Navigation Helpers",
      "signature": "navigateRight()",
      "params": [],
      "returns": "",
      "description": "Switches the active cell one cell right skipping unselectable cells. Unline navigateNext, navigateRight stops at the last cell of the row. Returns a boolean saying whether it was able to complete or not."
    },
    {
      "name": "navigateLeft",
      "group": "Navigation Helpers",
      "signature": "navigateLeft()",
      "params": [],
      "returns": "",
      "description": "Switches the active cell one cell left skipping unselectable cells. Unline navigatePrev, navigateLeft stops at the first cell of the row. Returns a boolean saying whether it was able to complete or not."
    },
    {
      "name": "navigateDown",
      "group": "Navigation Helpers",
      "signature": "navigateDown()",
      "params": [],
      "returns": "",
      "description": "Switches the active cell one row down skipping unselectable cells. Returns a boolean saying whether it was able to complete or not."
    },
    {
      "name": "navigateUp",
      "group": "Navigation Helpers",
      "signature": "navigateUp()",
      "params": [],
      "returns": "",
      "description": "Switches the active cell one row up skipping unselectable cells. Returns a boolean saying whether it was able to complete or not."
    },
    {
      "name": "navigateNext",
      "group": "Navigation Helpers",
      "signature": "navigateNext()",
      "params": [],
      "returns": "",
      "description": "Tabs over active cell to the next selectable cell. Returns a boolean saying whether it was able to complete or not."
    },
    {
      "name": "navigatePrev",
      "group": "Navigation Helpers",
      "signature": "navigatePrev()",
      "params": [],
      "returns": "",
      "description": "Tabs over active cell to the previous selectable cell. Returns a boolean saying whether it was able to complete or not."
    },
    {
      "name": "navigateRowStart",
      "group": "Navigation Helpers",
      "signature": "navigateRowStart()",
      "params": [],
      "returns": "",
      "description": "Navigate to the start row in the grid"
    },
    {
      "name": "navigateRowEnd",
      "group": "Navigation Helpers",
      "signature": "navigateRowEnd()",
      "params": [],
      "returns": "",
      "description": "Navigate to the end row in the grid"
    },
    {
      "name": "navigateTopStart",
      "group": "Navigation Helpers",
      "signature": "navigateTopStart(): boolean | undefined",
      "params": [],
      "returns": "boolean | undefined",
      "description": "Navigate to coordinate 0,0 (top left home)"
    },
    {
      "name": "navigateBottomEnd",
      "group": "Navigation Helpers",
      "signature": "navigateBottomEnd(): boolean | undefined",
      "params": [],
      "returns": "boolean | undefined",
      "description": "Navigate to bottom row end (bottom right end)"
    },
    {
      "name": "getCellNode",
      "group": "Navigation Helpers",
      "signature": "getCellNode(row: number, cell: number): HTMLDivElement | null",
      "params": [
        {
          "name": "row",
          "type": "number",
          "optional": false,
          "description": "A row index."
        },
        {
          "name": "cell",
          "type": "number",
          "optional": false,
          "description": "A column index."
        }
      ],
      "returns": "HTMLDivElement | null",
      "description": "Returns a DOM element containing a cell at a given row and cell."
    },
    {
      "name": "setActiveCell",
      "group": "Navigation Helpers",
      "signature": "setActiveCell(row: number, cell: number, opt_editMode?: boolean, preClickModeOn?: boolean, suppressActiveCellChangedEvent?: boolean)",
      "params": [
        {
          "name": "row",
          "type": "number",
          "optional": false,
          "description": "- A row index."
        },
        {
          "name": "cell",
          "type": "number",
          "optional": false,
          "description": "- A column index."
        },
        {
          "name": "opt_editMode",
          "type": "boolean",
          "optional": true,
          "description": ""
        },
        {
          "name": "preClickModeOn",
          "type": "boolean",
          "optional": true,
          "description": "Pre-Click Mode is Enabled?"
        },
        {
          "name": "suppressActiveCellChangedEvent",
          "type": "boolean",
          "optional": true,
          "description": "Are we suppressing Active Cell Changed Event (defaults to false)"
        }
      ],
      "returns": "",
      "description": "Sets an active cell."
    },
    {
      "name": "setActiveRow",
      "group": "Navigation Helpers",
      "signature": "setActiveRow(row: number, cell?: number, suppressScrollIntoView?: boolean)",
      "params": [
        {
          "name": "row",
          "type": "number",
          "optional": false,
          "description": "- A row index."
        },
        {
          "name": "cell",
          "type": "number",
          "optional": true,
          "description": "- A column index."
        },
        {
          "name": "suppressScrollIntoView",
          "type": "boolean",
          "optional": true,
          "description": "- optionally suppress the ScrollIntoView that happens by default (defaults to false)"
        }
      ],
      "returns": "",
      "description": "Sets an active cell."
    },
    {
      "name": "canCellBeActive",
      "group": "Navigation Helpers",
      "signature": "canCellBeActive(row: number, cell: number)",
      "params": [
        {
          "name": "row",
          "type": "number",
          "optional": false,
          "description": "A row index."
        },
        {
          "name": "cell",
          "type": "number",
          "optional": false,
          "description": ""
        }
      ],
      "returns": "",
      "description": "Returns true if you can click on a given cell and make it the active focus."
    },
    {
      "name": "canCellBeSelected",
      "group": "Navigation Helpers",
      "signature": "canCellBeSelected(row: number, cell: number)",
      "params": [
        {
          "name": "row",
          "type": "number",
          "optional": false,
          "description": "A row index."
        },
        {
          "name": "cell",
          "type": "number",
          "optional": false,
          "description": ""
        }
      ],
      "returns": "",
      "description": "Returns true if selecting the row causes this particular cell to have the selectedCellCssClass applied to it. A cell can be selected if it exists and if it isn't on an empty / \"Add New\" row and if it is not marked as \"unselectable\" in the column definition."
    },
    {
      "name": "gotoCell",
      "group": "Navigation Helpers",
      "signature": "gotoCell(row: number, cell: number, forceEdit?: boolean, e?: Event | SlickEvent_)",
      "params": [
        {
          "name": "row",
          "type": "number",
          "optional": false,
          "description": "A row index."
        },
        {
          "name": "cell",
          "type": "number",
          "optional": false,
          "description": "A column index."
        },
        {
          "name": "forceEdit",
          "type": "boolean",
          "optional": true,
          "description": "If true, will attempt to initiate the edit dialogue for the field in the specified cell."
        },
        {
          "name": "e",
          "type": "Event | SlickEvent_",
          "optional": true,
          "description": ""
        }
      ],
      "returns": "",
      "description": "Accepts a row integer and a cell integer, scrolling the view to the row where row is its row index, and cell is its cell index. Optionally accepts a forceEdit boolean which, if true, will attempt to initiate the edit dialogue for the field in the specified cell.\r\nUnlike setActiveCell, this scrolls the row into the viewport and sets the keyboard focus."
    }
  ],
  "dataViewOptions": [
    {
      "name": "globalItemMetadataProvider",
      "type": "ItemMetadataProvider | null",
      "optional": false,
      "description": "global override for all rows"
    },
    {
      "name": "groupItemMetadataProvider",
      "type": "SlickGroupItemMetadataProvider_ | null",
      "optional": false,
      "description": "Optionally provide a GroupItemMetadataProvider in order to use Grouping/DraggableGrouping features"
    },
    {
      "name": "inlineFilters",
      "type": "boolean",
      "optional": false,
      "description": "",
      "deprecated": "Filtering is always CSP-safe and this option is now ignored.\r\nRemove both `inlineFilters` and `useCSPSafeFilter` in the next major release."
    },
    {
      "name": "useCSPSafeFilter",
      "type": "boolean",
      "optional": false,
      "description": "",
      "deprecated": "Filtering is always CSP-safe and this option is now ignored.\r\nRemove it in the next major release together with `inlineFilters`."
    }
  ],
  "dataViewEvents": [
    {
      "name": "onBeforePagingInfoChanged",
      "payload": "PagingInfo",
      "args": {
        "typeName": "PagingInfo",
        "fields": [
          {
            "name": "pageSize",
            "type": "number",
            "optional": false
          },
          {
            "name": "pageNum",
            "type": "number",
            "optional": false
          },
          {
            "name": "totalRows",
            "type": "number",
            "optional": false
          },
          {
            "name": "totalPages",
            "type": "number",
            "optional": false
          },
          {
            "name": "dataView",
            "type": "any",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onGroupExpanded",
      "payload": "OnGroupExpandedEventArgs",
      "args": {
        "typeName": "OnGroupExpandedEventArgs",
        "fields": [
          {
            "name": "level",
            "type": "number",
            "optional": false
          },
          {
            "name": "groupingKey",
            "type": "string | number | null",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onGroupCollapsed",
      "payload": "OnGroupCollapsedEventArgs",
      "args": {
        "typeName": "OnGroupCollapsedEventArgs",
        "fields": [
          {
            "name": "level",
            "type": "number",
            "optional": false
          },
          {
            "name": "groupingKey",
            "type": "string | number | null",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onPagingInfoChanged",
      "payload": "PagingInfo",
      "args": {
        "typeName": "PagingInfo",
        "fields": [
          {
            "name": "pageSize",
            "type": "number",
            "optional": false
          },
          {
            "name": "pageNum",
            "type": "number",
            "optional": false
          },
          {
            "name": "totalRows",
            "type": "number",
            "optional": false
          },
          {
            "name": "totalPages",
            "type": "number",
            "optional": false
          },
          {
            "name": "dataView",
            "type": "any",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onRowCountChanged",
      "payload": "OnRowCountChangedEventArgs",
      "args": {
        "typeName": "OnRowCountChangedEventArgs",
        "fields": [
          {
            "name": "previous",
            "type": "number",
            "optional": false
          },
          {
            "name": "current",
            "type": "number",
            "optional": false
          },
          {
            "name": "itemCount",
            "type": "number",
            "optional": false
          },
          {
            "name": "dataView",
            "type": "SlickDataView",
            "optional": false
          },
          {
            "name": "callingOnRowsChanged",
            "type": "boolean",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onRowsChanged",
      "payload": "OnRowsChangedEventArgs",
      "args": {
        "typeName": "OnRowsChangedEventArgs",
        "fields": [
          {
            "name": "rows",
            "type": "number[]",
            "optional": false
          },
          {
            "name": "itemCount",
            "type": "number",
            "optional": false
          },
          {
            "name": "dataView",
            "type": "SlickDataView",
            "optional": false
          },
          {
            "name": "calledOnRowCountChanged",
            "type": "boolean",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onRowsOrCountChanged",
      "payload": "OnRowsOrCountChangedEventArgs",
      "args": {
        "typeName": "OnRowsOrCountChangedEventArgs",
        "fields": [
          {
            "name": "rowsDiff",
            "type": "number[]",
            "optional": false
          },
          {
            "name": "previousRowCount",
            "type": "number",
            "optional": false
          },
          {
            "name": "currentRowCount",
            "type": "number",
            "optional": false
          },
          {
            "name": "itemCount",
            "type": "number",
            "optional": false
          },
          {
            "name": "rowCountChanged",
            "type": "boolean",
            "optional": false
          },
          {
            "name": "rowsChanged",
            "type": "boolean",
            "optional": false
          },
          {
            "name": "dataView",
            "type": "SlickDataView",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onSelectedRowIdsChanged",
      "payload": "OnSelectedRowIdsChangedEventArgs",
      "args": {
        "typeName": "OnSelectedRowIdsChangedEventArgs",
        "fields": [
          {
            "name": "grid",
            "type": "SlickGrid",
            "optional": true
          },
          {
            "name": "added",
            "type": "boolean",
            "optional": true
          },
          {
            "name": "filteredIds",
            "type": "Array<string | number>",
            "optional": false
          },
          {
            "name": "selectedRowIds",
            "type": "Array<string | number>",
            "optional": false
          },
          {
            "name": "ids",
            "type": "Array<string | number>",
            "optional": false
          },
          {
            "name": "rows",
            "type": "number[]",
            "optional": false
          },
          {
            "name": "dataView",
            "type": "SlickDataView",
            "optional": false
          }
        ]
      },
      "description": ""
    },
    {
      "name": "onSetItemsCalled",
      "payload": "OnSetItemsCalledEventArgs",
      "args": {
        "typeName": "OnSetItemsCalledEventArgs",
        "fields": [
          {
            "name": "idProperty",
            "type": "string",
            "optional": false
          },
          {
            "name": "itemCount",
            "type": "number",
            "optional": false
          }
        ]
      },
      "description": ""
    }
  ],
  "dataViewMethods": [
    {
      "name": "beginUpdate",
      "group": "",
      "signature": "beginUpdate(bulkUpdate?: boolean)",
      "params": [
        {
          "name": "bulkUpdate",
          "type": "boolean",
          "optional": true,
          "description": "- if set to true, most data view modifications"
        }
      ],
      "returns": "",
      "description": "Begins a bached update of the items in the data view.\r\nincluding deletes and the related events are postponed to the endUpdate call.\r\nAs certain operations are postponed during this update, some methods might not\r\ndeliver fully consistent information."
    },
    {
      "name": "endUpdate",
      "group": "",
      "signature": "endUpdate()",
      "params": [],
      "returns": "",
      "description": ""
    },
    {
      "name": "destroy",
      "group": "",
      "signature": "destroy()",
      "params": [],
      "returns": "",
      "description": ""
    },
    {
      "name": "setRefreshHints",
      "group": "",
      "signature": "setRefreshHints(hints: DataViewHints)",
      "params": [
        {
          "name": "hints",
          "type": "DataViewHints",
          "optional": false,
          "description": ""
        }
      ],
      "returns": "",
      "description": "provide some refresh hints as to what to rows needs refresh"
    },
    {
      "name": "getFilterArgs",
      "group": "",
      "signature": "getFilterArgs()",
      "params": [],
      "returns": "",
      "description": "get extra filter arguments of the filter method"
    },
    {
      "name": "setFilterArgs",
      "group": "",
      "signature": "setFilterArgs(args: any)",
      "params": [
        {
          "name": "args",
          "type": "any",
          "optional": false,
          "description": ""
        }
      ],
      "returns": "",
      "description": "add extra filter arguments to the filter method"
    },
    {
      "name": "getItems",
      "group": "",
      "signature": "getItems()",
      "params": [],
      "returns": "",
      "description": "Get all DataView Items"
    },
    {
      "name": "getIdPropertyName",
      "group": "",
      "signature": "getIdPropertyName()",
      "params": [],
      "returns": "",
      "description": "Get the DataView Id property name to use (defaults to \"Id\" but could be customized to something else when instantiating the DataView)"
    },
    {
      "name": "setItems",
      "group": "",
      "signature": "setItems(data: TData[], objectIdProperty?: string)",
      "params": [
        {
          "name": "data",
          "type": "TData[]",
          "optional": false,
          "description": "- array of data"
        },
        {
          "name": "objectIdProperty",
          "type": "string",
          "optional": true,
          "description": "- optional id property to use as primary id"
        }
      ],
      "returns": "",
      "description": "Set the Items with a new Dataset and optionally pass a different Id property name"
    },
    {
      "name": "setPagingOptions",
      "group": "",
      "signature": "setPagingOptions(args: Partial<PagingInfo>)",
      "params": [
        {
          "name": "args",
          "type": "Partial<PagingInfo>",
          "optional": false,
          "description": ""
        }
      ],
      "returns": "",
      "description": "Set Paging Options"
    },
    {
      "name": "getPagingInfo",
      "group": "",
      "signature": "getPagingInfo(): PagingInfo",
      "params": [],
      "returns": "PagingInfo",
      "description": "Get Paging Options"
    },
    {
      "name": "sort",
      "group": "",
      "signature": "sort(comparer: (a: TData, b: TData) => number, ascending?: boolean)",
      "params": [
        {
          "name": "comparer",
          "type": "(a: TData, b: TData) => number",
          "optional": false,
          "description": ""
        },
        {
          "name": "ascending",
          "type": "boolean",
          "optional": true,
          "description": ""
        }
      ],
      "returns": "",
      "description": "Sort Method to use by the DataView"
    },
    {
      "name": "fastSort",
      "group": "",
      "signature": "fastSort(field: string | (() => string), ascending?: boolean)",
      "params": [
        {
          "name": "field",
          "type": "string | (() => string)",
          "optional": false,
          "description": ""
        },
        {
          "name": "ascending",
          "type": "boolean",
          "optional": true,
          "description": ""
        }
      ],
      "returns": "",
      "description": "",
      "deprecated": ", to be more removed in next major since IE is no longer supported and this is no longer useful.\r\nProvides a workaround for the extremely slow sorting in IE.\r\nDoes a [lexicographic] sort on a give column by temporarily overriding Object.prototype.toString\r\nto return the value of that field and then doing a native Array.sort()."
    },
    {
      "name": "reSort",
      "group": "",
      "signature": "reSort()",
      "params": [],
      "returns": "",
      "description": "Re-Sort the dataset"
    },
    {
      "name": "getFilteredItems",
      "group": "",
      "signature": "getFilteredItems()",
      "params": [],
      "returns": "",
      "description": "Get only the DataView filtered items"
    },
    {
      "name": "getFilteredItemCount",
      "group": "",
      "signature": "getFilteredItemCount()",
      "params": [],
      "returns": "",
      "description": "Get the array length (count) of only the DataView filtered items"
    },
    {
      "name": "getFilter",
      "group": "",
      "signature": "getFilter()",
      "params": [],
      "returns": "",
      "description": "Get current Filter used by the DataView"
    },
    {
      "name": "setFilter",
      "group": "",
      "signature": "setFilter(filterFn: FilterFn<TData>)",
      "params": [
        {
          "name": "filterFn",
          "type": "FilterFn<TData>",
          "optional": false,
          "description": ""
        }
      ],
      "returns": "",
      "description": "Set a Filter that will be used by the DataView"
    },
    {
      "name": "getGrouping",
      "group": "",
      "signature": "getGrouping(): Grouping[]",
      "params": [],
      "returns": "Grouping[]",
      "description": "Get current Grouping info"
    },
    {
      "name": "setGrouping",
      "group": "",
      "signature": "setGrouping(groupingInfo: Grouping | Grouping[])",
      "params": [
        {
          "name": "groupingInfo",
          "type": "Grouping | Grouping[]",
          "optional": false,
          "description": ""
        }
      ],
      "returns": "",
      "description": "Set some Grouping"
    },
    {
      "name": "getItemByIdx",
      "group": "",
      "signature": "getItemByIdx(i: number)",
      "params": [
        {
          "name": "i",
          "type": "number",
          "optional": false,
          "description": ""
        }
      ],
      "returns": "",
      "description": "Get an item in the DataView by its row index"
    },
    {
      "name": "getIdxById",
      "group": "",
      "signature": "getIdxById(id: DataIdType)",
      "params": [
        {
          "name": "id",
          "type": "DataIdType",
          "optional": false,
          "description": ""
        }
      ],
      "returns": "",
      "description": "Get row index in the DataView by its Id"
    },
    {
      "name": "getRowByItem",
      "group": "",
      "signature": "getRowByItem(item: TData)",
      "params": [
        {
          "name": "item",
          "type": "TData",
          "optional": false,
          "description": ""
        }
      ],
      "returns": "",
      "description": "Get row number in the grid by its item object"
    },
    {
      "name": "getRowById",
      "group": "",
      "signature": "getRowById(id: DataIdType)",
      "params": [
        {
          "name": "id",
          "type": "DataIdType",
          "optional": false,
          "description": ""
        }
      ],
      "returns": "",
      "description": "Get row number in the grid by its Id"
    },
    {
      "name": "getItemById",
      "group": "",
      "signature": "getItemById(id: DataIdType)",
      "params": [
        {
          "name": "id",
          "type": "DataIdType",
          "optional": false,
          "description": ""
        }
      ],
      "returns": "",
      "description": "Get an item in the DataView by its Id"
    },
    {
      "name": "mapItemsToRows",
      "group": "",
      "signature": "mapItemsToRows(itemArray: TData[])",
      "params": [
        {
          "name": "itemArray",
          "type": "TData[]",
          "optional": false,
          "description": ""
        }
      ],
      "returns": "",
      "description": "From the items array provided, return the mapped rows"
    },
    {
      "name": "mapIdsToRows",
      "group": "",
      "signature": "mapIdsToRows(idArray: DataIdType[])",
      "params": [
        {
          "name": "idArray",
          "type": "DataIdType[]",
          "optional": false,
          "description": ""
        }
      ],
      "returns": "",
      "description": "From the Ids array provided, return the mapped rows"
    },
    {
      "name": "mapRowsToIds",
      "group": "",
      "signature": "mapRowsToIds(rowArray: number[])",
      "params": [
        {
          "name": "rowArray",
          "type": "number[]",
          "optional": false,
          "description": ""
        }
      ],
      "returns": "",
      "description": "From the rows array provided, return the mapped Ids"
    },
    {
      "name": "updateSingleItem",
      "group": "",
      "signature": "updateSingleItem(id: DataIdType, item: TData)",
      "params": [
        {
          "name": "id",
          "type": "DataIdType",
          "optional": false,
          "description": "The new id of the item."
        },
        {
          "name": "item",
          "type": "TData",
          "optional": false,
          "description": "The item which should be the new value for the given id."
        }
      ],
      "returns": "",
      "description": "Performs the update operations of a single item by id without\r\ntriggering any events or refresh operations."
    },
    {
      "name": "updateItem",
      "group": "",
      "signature": "updateItem(id: DataIdType, item: T)",
      "params": [
        {
          "name": "id",
          "type": "DataIdType",
          "optional": false,
          "description": "The new id of the item."
        },
        {
          "name": "item",
          "type": "T",
          "optional": false,
          "description": "The item which should be the new value for the given id."
        }
      ],
      "returns": "",
      "description": "Updates a single item in the data view given the id and new value."
    },
    {
      "name": "updateItems",
      "group": "",
      "signature": "updateItems(ids: DataIdType[], newItems: T[])",
      "params": [
        {
          "name": "ids",
          "type": "DataIdType[]",
          "optional": false,
          "description": ""
        },
        {
          "name": "newItems",
          "type": "T[]",
          "optional": false,
          "description": "The new items that should be set in the data view for the given ids."
        }
      ],
      "returns": "",
      "description": "Updates multiple items in the data view given the new ids and new values."
    },
    {
      "name": "insertItem",
      "group": "",
      "signature": "insertItem(insertBefore: number, item: TData)",
      "params": [
        {
          "name": "insertBefore",
          "type": "number",
          "optional": false,
          "description": "The 0-based index before which the item should be inserted."
        },
        {
          "name": "item",
          "type": "TData",
          "optional": false,
          "description": "The item to insert."
        }
      ],
      "returns": "",
      "description": "Inserts a single item into the data view at the given position."
    },
    {
      "name": "insertItems",
      "group": "",
      "signature": "insertItems(insertBefore: number, newItems: TData[])",
      "params": [
        {
          "name": "insertBefore",
          "type": "number",
          "optional": false,
          "description": "The 0-based index before which the items should be inserted."
        },
        {
          "name": "newItems",
          "type": "TData[]",
          "optional": false,
          "description": "The items to insert."
        }
      ],
      "returns": "",
      "description": "Inserts multiple items into the data view at the given position."
    },
    {
      "name": "addItem",
      "group": "",
      "signature": "addItem(item: TData)",
      "params": [
        {
          "name": "item",
          "type": "TData",
          "optional": false,
          "description": "The item to add at the end."
        }
      ],
      "returns": "",
      "description": "Adds a single item at the end of the data view."
    },
    {
      "name": "addItems",
      "group": "",
      "signature": "addItems(newItems: TData[])",
      "params": [
        {
          "name": "newItems",
          "type": "TData[]",
          "optional": false,
          "description": "The items to add at the end."
        }
      ],
      "returns": "",
      "description": "Adds multiple items at the end of the data view."
    },
    {
      "name": "deleteItem",
      "group": "",
      "signature": "deleteItem(id: DataIdType)",
      "params": [
        {
          "name": "id",
          "type": "DataIdType",
          "optional": false,
          "description": "The id identifying the object to delete."
        }
      ],
      "returns": "",
      "description": "Deletes a single item identified by the given id from the data view."
    },
    {
      "name": "deleteItems",
      "group": "",
      "signature": "deleteItems(ids: DataIdType[])",
      "params": [
        {
          "name": "ids",
          "type": "DataIdType[]",
          "optional": false,
          "description": "The ids of the items to delete."
        }
      ],
      "returns": "",
      "description": "Deletes multiple item identified by the given ids from the data view."
    },
    {
      "name": "sortedAddItem",
      "group": "",
      "signature": "sortedAddItem(item: TData)",
      "params": [
        {
          "name": "item",
          "type": "TData",
          "optional": false,
          "description": ""
        }
      ],
      "returns": "",
      "description": "Add an item in a sorted dataset (a Sort function must be defined)"
    },
    {
      "name": "sortedUpdateItem",
      "group": "",
      "signature": "sortedUpdateItem(id: string | number, item: TData)",
      "params": [
        {
          "name": "id",
          "type": "string | number",
          "optional": false,
          "description": ""
        },
        {
          "name": "item",
          "type": "TData",
          "optional": false,
          "description": ""
        }
      ],
      "returns": "",
      "description": "Update an item in a sorted dataset (a Sort function must be defined)"
    },
    {
      "name": "getItemCount",
      "group": "",
      "signature": "getItemCount()",
      "params": [],
      "returns": "",
      "description": "Get item count, that is the full dataset lenght of the DataView"
    },
    {
      "name": "getLength",
      "group": "",
      "signature": "getLength()",
      "params": [],
      "returns": "",
      "description": "Get row count (rows displayed in current page)"
    },
    {
      "name": "getItem",
      "group": "",
      "signature": "getItem(i: number)",
      "params": [
        {
          "name": "i",
          "type": "number",
          "optional": false,
          "description": ""
        }
      ],
      "returns": "",
      "description": "Retrieve an item from the DataView at specific index"
    },
    {
      "name": "getItemMetadata",
      "group": "",
      "signature": "getItemMetadata(row: number): ItemMetadata | null",
      "params": [
        {
          "name": "row",
          "type": "number",
          "optional": false,
          "description": ""
        }
      ],
      "returns": "ItemMetadata | null",
      "description": ""
    },
    {
      "name": "collapseAllGroups",
      "group": "",
      "signature": "collapseAllGroups(level?: number)",
      "params": [
        {
          "name": "level",
          "type": "number",
          "optional": true,
          "description": "Optional level to collapse.  If not specified, applies to all levels."
        }
      ],
      "returns": "",
      "description": ""
    },
    {
      "name": "expandAllGroups",
      "group": "",
      "signature": "expandAllGroups(level?: number)",
      "params": [
        {
          "name": "level",
          "type": "number",
          "optional": true,
          "description": "Optional level to expand.  If not specified, applies to all levels."
        }
      ],
      "returns": "",
      "description": ""
    },
    {
      "name": "expandCollapseGroup",
      "group": "",
      "signature": "expandCollapseGroup(level: number, groupingKey: string, collapse?: boolean)",
      "params": [
        {
          "name": "level",
          "type": "number",
          "optional": false,
          "description": ""
        },
        {
          "name": "groupingKey",
          "type": "string",
          "optional": false,
          "description": ""
        },
        {
          "name": "collapse",
          "type": "boolean",
          "optional": true,
          "description": ""
        }
      ],
      "returns": "",
      "description": ""
    },
    {
      "name": "collapseGroup",
      "group": "",
      "signature": "collapseGroup(args: any)",
      "params": [
        {
          "name": "args",
          "type": "any",
          "optional": false,
          "description": ""
        }
      ],
      "returns": "",
      "description": ""
    },
    {
      "name": "expandGroup",
      "group": "",
      "signature": "expandGroup(args: any)",
      "params": [
        {
          "name": "args",
          "type": "any",
          "optional": false,
          "description": ""
        }
      ],
      "returns": "",
      "description": ""
    },
    {
      "name": "getGroups",
      "group": "",
      "signature": "getGroups()",
      "params": [],
      "returns": "",
      "description": ""
    },
    {
      "name": "refresh",
      "group": "",
      "signature": "refresh()",
      "params": [],
      "returns": "",
      "description": ""
    },
    {
      "name": "syncGridSelection",
      "group": "",
      "signature": "syncGridSelection(grid: SlickGridModel, preserveHidden: boolean, preserveHiddenOnSelectionChange?: boolean)",
      "params": [
        {
          "name": "grid",
          "type": "SlickGridModel",
          "optional": false,
          "description": "- The grid to sync selection with."
        },
        {
          "name": "preserveHidden",
          "type": "boolean",
          "optional": false,
          "description": "- Whether to keep selected items that go out of the\r\nview due to them getting filtered out."
        },
        {
          "name": "preserveHiddenOnSelectionChange",
          "type": "boolean",
          "optional": true,
          "description": "- Whether to keep selected items\r\nthat are currently out of the view (see preserveHidden) as selected when selection\r\nchanges."
        }
      ],
      "returns": "",
      "description": "Wires the grid and the DataView together to keep row selection tied to item ids.\r\nThis is useful since, without it, the grid only knows about rows, so if the items\r\nmove around, the same rows stay selected instead of the selection moving along\r\nwith the items.\r\n\r\nNOTE:  This doesn't work with cell selection model."
    },
    {
      "name": "getAllSelectedIds",
      "group": "",
      "signature": "getAllSelectedIds()",
      "params": [],
      "returns": "",
      "description": "Get all selected IDs\r\nNote: when using Pagination it will also include hidden selections assuming `preserveHiddenOnSelectionChange` is set to true."
    },
    {
      "name": "getAllSelectedFilteredIds",
      "group": "",
      "signature": "getAllSelectedFilteredIds()",
      "params": [],
      "returns": "",
      "description": "Get all selected filtered IDs (similar to \"getAllSelectedIds\" but only return filtered data)\r\nNote: when using Pagination it will also include hidden selections assuming `preserveHiddenOnSelectionChange` is set to true."
    },
    {
      "name": "setSelectedIds",
      "group": "",
      "signature": "setSelectedIds(selectedIds: Array<number | string>, options?: Partial<{ isRowBeingAdded: boolean; shouldTriggerEvent: boolean; applyRowSelectionToGrid: boolean; }>)",
      "params": [
        {
          "name": "selectedIds",
          "type": "Array<number | string>",
          "optional": false,
          "description": "- list of IDs which have been selected for this action"
        },
        {
          "name": "options",
          "type": "Partial<{ isRowBeingAdded: boolean; shouldTriggerEvent: boolean; applyRowSelectionToGrid: boolean; }>",
          "optional": true,
          "description": "- `isRowBeingAdded`: defaults to true, are the new selected IDs being added (or removed) as new row selections\r\n - `shouldTriggerEvent`: defaults to true, should we trigger `onSelectedRowIdsChanged` event\r\n - `applyRowSelectionToGrid`: defaults to true, should we apply the row selections to the grid in the UI"
        }
      ],
      "returns": "",
      "description": "Set current row selected IDs array (regardless of Pagination)\r\nNOTE: This will NOT change the selection in the grid, if you need to do that then you still need to call\r\n\"grid.setSelectedRows(rows)\""
    },
    {
      "name": "getAllSelectedItems",
      "group": "",
      "signature": "getAllSelectedItems()",
      "params": [],
      "returns": "",
      "description": "Get all selected dataContext items\r\nNote: when using Pagination it will also include hidden selections assuming `preserveHiddenOnSelectionChange` is set to true."
    },
    {
      "name": "getAllSelectedFilteredItems",
      "group": "",
      "signature": "getAllSelectedFilteredItems()",
      "params": [],
      "returns": "",
      "description": "Get all selected filtered dataContext items (similar to \"getAllSelectedItems\" but only return filtered data)\r\nNote: when using Pagination it will also include hidden selections assuming `preserveHiddenOnSelectionChange` is set to true."
    },
    {
      "name": "syncGridCellCssStyles",
      "group": "",
      "signature": "syncGridCellCssStyles(grid: SlickGridModel, key: string)",
      "params": [
        {
          "name": "grid",
          "type": "SlickGridModel",
          "optional": false,
          "description": ""
        },
        {
          "name": "key",
          "type": "string",
          "optional": false,
          "description": ""
        }
      ],
      "returns": "",
      "description": ""
    }
  ],
  "modules": {
    "editors": {
      "registry": [
        "Text",
        "Integer",
        "Float",
        "Flatpickr",
        "YesNoSelect",
        "Checkbox",
        "PercentComplete",
        "LongText"
      ],
      "classes": [
        {
          "name": "TextEditor",
          "description": "Contains basic SlickGrid editors.",
          "methods": [
            {
              "name": "init",
              "group": "",
              "signature": "init()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "onChange",
              "group": "",
              "signature": "onChange()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "destroy",
              "group": "",
              "signature": "destroy()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "focus",
              "group": "",
              "signature": "focus()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "getValue",
              "group": "",
              "signature": "getValue()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "setValue",
              "group": "",
              "signature": "setValue(val: string)",
              "params": [
                {
                  "name": "val",
                  "type": "string",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "",
              "description": ""
            },
            {
              "name": "loadValue",
              "group": "",
              "signature": "loadValue(item: any)",
              "params": [
                {
                  "name": "item",
                  "type": "any",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "",
              "description": ""
            },
            {
              "name": "serializeValue",
              "group": "",
              "signature": "serializeValue()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "applyValue",
              "group": "",
              "signature": "applyValue(item: any, state: any)",
              "params": [
                {
                  "name": "item",
                  "type": "any",
                  "optional": false,
                  "description": ""
                },
                {
                  "name": "state",
                  "type": "any",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "",
              "description": ""
            },
            {
              "name": "isValueChanged",
              "group": "",
              "signature": "isValueChanged()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "validate",
              "group": "",
              "signature": "validate()",
              "params": [],
              "returns": "",
              "description": ""
            }
          ],
          "events": []
        },
        {
          "name": "IntegerEditor",
          "description": "",
          "methods": [
            {
              "name": "init",
              "group": "",
              "signature": "init()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "onChange",
              "group": "",
              "signature": "onChange()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "destroy",
              "group": "",
              "signature": "destroy()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "focus",
              "group": "",
              "signature": "focus()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "loadValue",
              "group": "",
              "signature": "loadValue(item: any)",
              "params": [
                {
                  "name": "item",
                  "type": "any",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "",
              "description": ""
            },
            {
              "name": "serializeValue",
              "group": "",
              "signature": "serializeValue()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "applyValue",
              "group": "",
              "signature": "applyValue(item: any, state: any)",
              "params": [
                {
                  "name": "item",
                  "type": "any",
                  "optional": false,
                  "description": ""
                },
                {
                  "name": "state",
                  "type": "any",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "",
              "description": ""
            },
            {
              "name": "isValueChanged",
              "group": "",
              "signature": "isValueChanged()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "validate",
              "group": "",
              "signature": "validate()",
              "params": [],
              "returns": "",
              "description": ""
            }
          ],
          "events": []
        },
        {
          "name": "FloatEditor",
          "description": "",
          "methods": [
            {
              "name": "init",
              "group": "",
              "signature": "init()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "onChange",
              "group": "",
              "signature": "onChange()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "destroy",
              "group": "",
              "signature": "destroy()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "focus",
              "group": "",
              "signature": "focus()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "getDecimalPlaces",
              "group": "",
              "signature": "getDecimalPlaces()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "loadValue",
              "group": "",
              "signature": "loadValue(item: any)",
              "params": [
                {
                  "name": "item",
                  "type": "any",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "",
              "description": ""
            },
            {
              "name": "serializeValue",
              "group": "",
              "signature": "serializeValue()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "applyValue",
              "group": "",
              "signature": "applyValue(item: any, state: number | string)",
              "params": [
                {
                  "name": "item",
                  "type": "any",
                  "optional": false,
                  "description": ""
                },
                {
                  "name": "state",
                  "type": "number | string",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "",
              "description": ""
            },
            {
              "name": "isValueChanged",
              "group": "",
              "signature": "isValueChanged()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "validate",
              "group": "",
              "signature": "validate()",
              "params": [],
              "returns": "",
              "description": ""
            }
          ],
          "events": []
        },
        {
          "name": "FlatpickrEditor",
          "description": "",
          "methods": [
            {
              "name": "init",
              "group": "",
              "signature": "init()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "destroy",
              "group": "",
              "signature": "destroy()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "show",
              "group": "",
              "signature": "show()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "hide",
              "group": "",
              "signature": "hide()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "focus",
              "group": "",
              "signature": "focus()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "loadValue",
              "group": "",
              "signature": "loadValue(item: any)",
              "params": [
                {
                  "name": "item",
                  "type": "any",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "",
              "description": ""
            },
            {
              "name": "serializeValue",
              "group": "",
              "signature": "serializeValue()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "applyValue",
              "group": "",
              "signature": "applyValue(item: any, state: any)",
              "params": [
                {
                  "name": "item",
                  "type": "any",
                  "optional": false,
                  "description": ""
                },
                {
                  "name": "state",
                  "type": "any",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "",
              "description": ""
            },
            {
              "name": "isValueChanged",
              "group": "",
              "signature": "isValueChanged()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "validate",
              "group": "",
              "signature": "validate()",
              "params": [],
              "returns": "",
              "description": ""
            }
          ],
          "events": []
        },
        {
          "name": "YesNoSelectEditor",
          "description": "",
          "methods": [
            {
              "name": "init",
              "group": "",
              "signature": "init()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "onChange",
              "group": "",
              "signature": "onChange()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "destroy",
              "group": "",
              "signature": "destroy()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "focus",
              "group": "",
              "signature": "focus()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "loadValue",
              "group": "",
              "signature": "loadValue(item: any)",
              "params": [
                {
                  "name": "item",
                  "type": "any",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "",
              "description": ""
            },
            {
              "name": "serializeValue",
              "group": "",
              "signature": "serializeValue()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "applyValue",
              "group": "",
              "signature": "applyValue(item: any, state: any)",
              "params": [
                {
                  "name": "item",
                  "type": "any",
                  "optional": false,
                  "description": ""
                },
                {
                  "name": "state",
                  "type": "any",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "",
              "description": ""
            },
            {
              "name": "isValueChanged",
              "group": "",
              "signature": "isValueChanged()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "validate",
              "group": "",
              "signature": "validate()",
              "params": [],
              "returns": "",
              "description": ""
            }
          ],
          "events": []
        },
        {
          "name": "CheckboxEditor",
          "description": "",
          "methods": [
            {
              "name": "init",
              "group": "",
              "signature": "init()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "onChange",
              "group": "",
              "signature": "onChange()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "destroy",
              "group": "",
              "signature": "destroy()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "focus",
              "group": "",
              "signature": "focus()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "loadValue",
              "group": "",
              "signature": "loadValue(item: any)",
              "params": [
                {
                  "name": "item",
                  "type": "any",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "",
              "description": ""
            },
            {
              "name": "preClick",
              "group": "",
              "signature": "preClick()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "serializeValue",
              "group": "",
              "signature": "serializeValue()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "applyValue",
              "group": "",
              "signature": "applyValue(item: any, state: any)",
              "params": [
                {
                  "name": "item",
                  "type": "any",
                  "optional": false,
                  "description": ""
                },
                {
                  "name": "state",
                  "type": "any",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "",
              "description": ""
            },
            {
              "name": "isValueChanged",
              "group": "",
              "signature": "isValueChanged()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "validate",
              "group": "",
              "signature": "validate(): EditorValidationResult",
              "params": [],
              "returns": "EditorValidationResult",
              "description": ""
            }
          ],
          "events": []
        },
        {
          "name": "PercentCompleteEditor",
          "description": "",
          "methods": [
            {
              "name": "sliderInputHandler",
              "group": "",
              "signature": "sliderInputHandler(e: MouseEvent & { target: HTMLButtonElement })",
              "params": [
                {
                  "name": "e",
                  "type": "MouseEvent & { target: HTMLButtonElement }",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "",
              "description": ""
            },
            {
              "name": "sliderChangeHandler",
              "group": "",
              "signature": "sliderChangeHandler()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "init",
              "group": "",
              "signature": "init()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "onClick",
              "group": "",
              "signature": "onClick(e: MouseEvent & { target: HTMLButtonElement })",
              "params": [
                {
                  "name": "e",
                  "type": "MouseEvent & { target: HTMLButtonElement }",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "",
              "description": ""
            },
            {
              "name": "destroy",
              "group": "",
              "signature": "destroy()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "focus",
              "group": "",
              "signature": "focus()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "loadValue",
              "group": "",
              "signature": "loadValue(item: any)",
              "params": [
                {
                  "name": "item",
                  "type": "any",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "",
              "description": ""
            },
            {
              "name": "serializeValue",
              "group": "",
              "signature": "serializeValue()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "applyValue",
              "group": "",
              "signature": "applyValue(item: any, state: any)",
              "params": [
                {
                  "name": "item",
                  "type": "any",
                  "optional": false,
                  "description": ""
                },
                {
                  "name": "state",
                  "type": "any",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "",
              "description": ""
            },
            {
              "name": "isValueChanged",
              "group": "",
              "signature": "isValueChanged()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "validate",
              "group": "",
              "signature": "validate(): EditorValidationResult",
              "params": [],
              "returns": "EditorValidationResult",
              "description": ""
            }
          ],
          "events": []
        },
        {
          "name": "LongTextEditor",
          "description": "",
          "methods": [
            {
              "name": "init",
              "group": "",
              "signature": "init()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "onChange",
              "group": "",
              "signature": "onChange()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "handleKeyDown",
              "group": "",
              "signature": "handleKeyDown(e: KeyboardEvent & { target: HTMLInputElement })",
              "params": [
                {
                  "name": "e",
                  "type": "KeyboardEvent & { target: HTMLInputElement }",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "",
              "description": ""
            },
            {
              "name": "save",
              "group": "",
              "signature": "save()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "cancel",
              "group": "",
              "signature": "cancel()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "hide",
              "group": "",
              "signature": "hide()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "show",
              "group": "",
              "signature": "show()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "position",
              "group": "",
              "signature": "position(position: ElementPosition)",
              "params": [
                {
                  "name": "position",
                  "type": "ElementPosition",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "",
              "description": ""
            },
            {
              "name": "destroy",
              "group": "",
              "signature": "destroy()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "focus",
              "group": "",
              "signature": "focus()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "loadValue",
              "group": "",
              "signature": "loadValue(item: any)",
              "params": [
                {
                  "name": "item",
                  "type": "any",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "",
              "description": ""
            },
            {
              "name": "serializeValue",
              "group": "",
              "signature": "serializeValue()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "applyValue",
              "group": "",
              "signature": "applyValue(item: any, state: any)",
              "params": [
                {
                  "name": "item",
                  "type": "any",
                  "optional": false,
                  "description": ""
                },
                {
                  "name": "state",
                  "type": "any",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "",
              "description": ""
            },
            {
              "name": "isValueChanged",
              "group": "",
              "signature": "isValueChanged()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "validate",
              "group": "",
              "signature": "validate()",
              "params": [],
              "returns": "",
              "description": ""
            }
          ],
          "events": []
        }
      ]
    },
    "formatters": {
      "registry": [
        "PercentComplete",
        "PercentCompleteBar",
        "YesNo",
        "Checkmark",
        "Checkbox"
      ],
      "classes": []
    },
    "core": {
      "classes": [
        {
          "name": "SlickEventData",
          "description": "An event object for passing data to event handlers and letting them control propagation.\r\n<p>This is pretty much identical to how W3C and jQuery implement events.</p>",
          "methods": [
            {
              "name": "stopPropagation",
              "group": "",
              "signature": "stopPropagation()",
              "params": [],
              "returns": "",
              "description": "Stops event from propagating up the DOM tree."
            },
            {
              "name": "isPropagationStopped",
              "group": "",
              "signature": "isPropagationStopped()",
              "params": [],
              "returns": "",
              "description": "Returns whether stopPropagation was called on this event object."
            },
            {
              "name": "stopImmediatePropagation",
              "group": "",
              "signature": "stopImmediatePropagation()",
              "params": [],
              "returns": "",
              "description": "Prevents the rest of the handlers from being executed."
            },
            {
              "name": "isImmediatePropagationStopped",
              "group": "",
              "signature": "isImmediatePropagationStopped()",
              "params": [],
              "returns": "",
              "description": "Returns whether stopImmediatePropagation was called on this event object.\\"
            },
            {
              "name": "getNativeEvent",
              "group": "",
              "signature": "getNativeEvent()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "preventDefault",
              "group": "",
              "signature": "preventDefault()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "isDefaultPrevented",
              "group": "",
              "signature": "isDefaultPrevented()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "addReturnValue",
              "group": "",
              "signature": "addReturnValue(value: any)",
              "params": [
                {
                  "name": "value",
                  "type": "any",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "",
              "description": ""
            },
            {
              "name": "getReturnValue",
              "group": "",
              "signature": "getReturnValue()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "getArguments",
              "group": "",
              "signature": "getArguments()",
              "params": [],
              "returns": "",
              "description": ""
            }
          ],
          "events": []
        },
        {
          "name": "SlickEvent",
          "description": "A simple publisher-subscriber implementation.",
          "methods": [
            {
              "name": "subscribe",
              "group": "",
              "signature": "subscribe(fn: Handler<ArgType>)",
              "params": [
                {
                  "name": "fn",
                  "type": "Handler<ArgType>",
                  "optional": false,
                  "description": "- Event handler."
                }
              ],
              "returns": "",
              "description": "Adds an event handler to be called when the event is fired.\r\n<p>Event handler will receive two arguments - an <code>EventData</code> and the <code>data</code>\r\nobject the event was fired with.<p>"
            },
            {
              "name": "unsubscribe",
              "group": "",
              "signature": "unsubscribe(fn?: Handler<ArgType>)",
              "params": [
                {
                  "name": "fn",
                  "type": "Handler<ArgType>",
                  "optional": true,
                  "description": "- Event handler to be removed."
                }
              ],
              "returns": "",
              "description": "Removes an event handler added with <code>subscribe(fn)</code>."
            },
            {
              "name": "notify",
              "group": "",
              "signature": "notify(args: ArgType, evt?: SlickEventData<ArgType> | Event | MergeTypes<SlickEventData<ArgType>, Event> | null, scope?: any)",
              "params": [
                {
                  "name": "args",
                  "type": "ArgType",
                  "optional": false,
                  "description": "Additional data object to be passed to all handlers."
                },
                {
                  "name": "evt",
                  "type": "SlickEventData<ArgType> | Event | MergeTypes<SlickEventData<ArgType>, Event> | null",
                  "optional": true,
                  "description": ""
                },
                {
                  "name": "scope",
                  "type": "any",
                  "optional": true,
                  "description": "- The scope (\"this\") within which the handler will be executed.\r\nIf not specified, the scope will be set to the <code>Event</code> instance."
                }
              ],
              "returns": "",
              "description": "Fires an event notifying all subscribers."
            },
            {
              "name": "setPubSubService",
              "group": "",
              "signature": "setPubSubService(pubSub: BasePubSub)",
              "params": [
                {
                  "name": "pubSub",
                  "type": "BasePubSub",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "",
              "description": ""
            }
          ],
          "events": []
        },
        {
          "name": "SlickEventHandler",
          "description": "",
          "methods": [
            {
              "name": "subscribe",
              "group": "",
              "signature": "subscribe(event: SlickEvent<T>, handler: Handler<T>)",
              "params": [
                {
                  "name": "event",
                  "type": "SlickEvent<T>",
                  "optional": false,
                  "description": ""
                },
                {
                  "name": "handler",
                  "type": "Handler<T>",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "",
              "description": ""
            },
            {
              "name": "unsubscribe",
              "group": "",
              "signature": "unsubscribe(event: SlickEvent<T>, handler: Handler<T>)",
              "params": [
                {
                  "name": "event",
                  "type": "SlickEvent<T>",
                  "optional": false,
                  "description": ""
                },
                {
                  "name": "handler",
                  "type": "Handler<T>",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "",
              "description": ""
            },
            {
              "name": "unsubscribeAll",
              "group": "",
              "signature": "unsubscribeAll()",
              "params": [],
              "returns": "",
              "description": ""
            }
          ],
          "events": []
        },
        {
          "name": "SlickRange",
          "description": "A structure containing a range of cells.",
          "methods": [
            {
              "name": "isSingleRow",
              "group": "",
              "signature": "isSingleRow()",
              "params": [],
              "returns": "",
              "description": "Returns whether a range represents a single row."
            },
            {
              "name": "isSingleCell",
              "group": "",
              "signature": "isSingleCell()",
              "params": [],
              "returns": "",
              "description": "Returns whether a range represents a single cell."
            },
            {
              "name": "rowCount",
              "group": "",
              "signature": "rowCount()",
              "params": [],
              "returns": "",
              "description": "Row Count."
            },
            {
              "name": "cellCount",
              "group": "",
              "signature": "cellCount()",
              "params": [],
              "returns": "",
              "description": "Cell Count."
            },
            {
              "name": "contains",
              "group": "",
              "signature": "contains(row: number, cell: number)",
              "params": [
                {
                  "name": "row",
                  "type": "number",
                  "optional": false,
                  "description": ""
                },
                {
                  "name": "cell",
                  "type": "number",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "",
              "description": "Returns whether a range contains a given cell."
            },
            {
              "name": "toString",
              "group": "",
              "signature": "toString()",
              "params": [],
              "returns": "",
              "description": "Returns a readable representation of a range."
            }
          ],
          "events": []
        },
        {
          "name": "SlickCopyRange",
          "description": "A structure containing a range of cells to copy to.",
          "methods": [],
          "events": []
        },
        {
          "name": "SlickDragExtendHandle",
          "description": "Create a handle element for Excel style drag-replace",
          "methods": [
            {
              "name": "removeEl",
              "group": "",
              "signature": "removeEl()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "createEl",
              "group": "",
              "signature": "createEl(activeCellNode: any, showDragHandle?: boolean | 'hover')",
              "params": [
                {
                  "name": "activeCellNode",
                  "type": "any",
                  "optional": false,
                  "description": ""
                },
                {
                  "name": "showDragHandle",
                  "type": "boolean | 'hover'",
                  "optional": true,
                  "description": ""
                }
              ],
              "returns": "",
              "description": ""
            }
          ],
          "events": []
        },
        {
          "name": "SlickNonDataItem",
          "description": "A base class that all special / non-data rows (like Group and GroupTotals) derive from.",
          "methods": [],
          "events": []
        },
        {
          "name": "SlickGroup",
          "description": "Information about a group of rows.",
          "methods": [
            {
              "name": "equals",
              "group": "",
              "signature": "equals(group: SlickGroup): boolean",
              "params": [
                {
                  "name": "group",
                  "type": "SlickGroup",
                  "optional": false,
                  "description": "Group instance to compare to."
                }
              ],
              "returns": "boolean",
              "description": "Compares two Group instances."
            }
          ],
          "events": []
        },
        {
          "name": "SlickGroupTotals",
          "description": "Information about group totals.\r\nAn instance of GroupTotals will be created for each totals row and passed to the aggregators\r\nso that they can store arbitrary data in it.  That data can later be accessed by group totals\r\nformatters during the display.",
          "methods": [],
          "events": []
        },
        {
          "name": "SlickEditorLock",
          "description": "A locking helper to track the active edit controller and ensure that only a single controller\r\ncan be active at a time.  This prevents a whole class of state and validation synchronization\r\nissues.  An edit controller (such as SlickGrid) can query if an active edit is in progress\r\nand attempt a commit or cancel before proceeding.",
          "methods": [
            {
              "name": "isActive",
              "group": "",
              "signature": "isActive(editController?: EditController): boolean",
              "params": [
                {
                  "name": "editController",
                  "type": "EditController",
                  "optional": true,
                  "description": ""
                }
              ],
              "returns": "boolean",
              "description": "Returns true if a specified edit controller is active (has the edit lock).\r\nIf the parameter is not specified, returns true if any edit controller is active."
            },
            {
              "name": "activate",
              "group": "",
              "signature": "activate(editController: EditController)",
              "params": [
                {
                  "name": "editController",
                  "type": "EditController",
                  "optional": false,
                  "description": "edit controller acquiring the lock"
                }
              ],
              "returns": "",
              "description": "Sets the specified edit controller as the active edit controller (acquire edit lock).\r\nIf another edit controller is already active, and exception will be throw new Error(."
            },
            {
              "name": "deactivate",
              "group": "",
              "signature": "deactivate(editController: EditController)",
              "params": [
                {
                  "name": "editController",
                  "type": "EditController",
                  "optional": false,
                  "description": "edit controller releasing the lock"
                }
              ],
              "returns": "",
              "description": "Unsets the specified edit controller as the active edit controller (release edit lock).\r\nIf the specified edit controller is not the active one, an exception will be throw new Error(."
            },
            {
              "name": "commitCurrentEdit",
              "group": "",
              "signature": "commitCurrentEdit(): boolean",
              "params": [],
              "returns": "boolean",
              "description": "Attempts to commit the current edit by calling \"commitCurrentEdit\" method on the active edit\r\ncontroller and returns whether the commit attempt was successful (commit may fail due to validation\r\nerrors, etc.).  Edit controller's \"commitCurrentEdit\" must return true if the commit has succeeded\r\nand false otherwise.  If no edit controller is active, returns true."
            },
            {
              "name": "cancelCurrentEdit",
              "group": "",
              "signature": "cancelCurrentEdit(): boolean",
              "params": [],
              "returns": "boolean",
              "description": "Attempts to cancel the current edit by calling \"cancelCurrentEdit\" method on the active edit\r\ncontroller and returns whether the edit was successfully cancelled.  If no edit controller is\r\nactive, returns true."
            }
          ],
          "events": []
        },
        {
          "name": "BindingEventService",
          "description": "A simple binding event service to keep track of all JavaScript events with callback listeners,\r\nit allows us to unbind event(s) and their listener(s) by calling a simple unbind method call.\r\nUnbinding is a necessary step to make sure that all event listeners are removed to avoid memory leaks when destroing the grid",
          "methods": [
            {
              "name": "getBoundedEvents",
              "group": "",
              "signature": "getBoundedEvents()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "destroy",
              "group": "",
              "signature": "destroy()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "bind",
              "group": "",
              "signature": "bind(element: Element | Window | Document, eventName: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions, groupName?)",
              "params": [
                {
                  "name": "element",
                  "type": "Element | Window | Document",
                  "optional": false,
                  "description": ""
                },
                {
                  "name": "eventName",
                  "type": "string",
                  "optional": false,
                  "description": ""
                },
                {
                  "name": "listener",
                  "type": "EventListenerOrEventListenerObject",
                  "optional": false,
                  "description": ""
                },
                {
                  "name": "options",
                  "type": "boolean | AddEventListenerOptions",
                  "optional": true,
                  "description": ""
                },
                {
                  "name": "groupName",
                  "type": "",
                  "optional": true,
                  "description": ""
                }
              ],
              "returns": "",
              "description": "Bind an event listener to any element"
            },
            {
              "name": "unbind",
              "group": "",
              "signature": "unbind(element: Element | Window | Document, eventName: string, listener: EventListenerOrEventListenerObject)",
              "params": [
                {
                  "name": "element",
                  "type": "Element | Window | Document",
                  "optional": false,
                  "description": ""
                },
                {
                  "name": "eventName",
                  "type": "string",
                  "optional": false,
                  "description": ""
                },
                {
                  "name": "listener",
                  "type": "EventListenerOrEventListenerObject",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "",
              "description": "Unbind all will remove every every event handlers that were bounded earlier"
            },
            {
              "name": "unbindByEventName",
              "group": "",
              "signature": "unbindByEventName(element: Element | Window | Document, eventName: string)",
              "params": [
                {
                  "name": "element",
                  "type": "Element | Window | Document",
                  "optional": false,
                  "description": ""
                },
                {
                  "name": "eventName",
                  "type": "string",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "",
              "description": ""
            },
            {
              "name": "unbindAll",
              "group": "",
              "signature": "unbindAll(groupName?: string | string[])",
              "params": [
                {
                  "name": "groupName",
                  "type": "string | string[]",
                  "optional": true,
                  "description": ""
                }
              ],
              "returns": "",
              "description": "Unbind all event listeners that were bounded, optionally provide a group name to unbind all listeners assigned to that specific group only."
            }
          ],
          "events": []
        },
        {
          "name": "Utils",
          "description": "",
          "methods": [
            {
              "name": "isFunction",
              "group": "",
              "signature": "isFunction(obj: any)",
              "params": [
                {
                  "name": "obj",
                  "type": "any",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "",
              "description": ""
            },
            {
              "name": "isPlainObject",
              "group": "",
              "signature": "isPlainObject(obj: any)",
              "params": [
                {
                  "name": "obj",
                  "type": "any",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "",
              "description": ""
            },
            {
              "name": "calculateAvailableSpace",
              "group": "",
              "signature": "calculateAvailableSpace(element: HTMLElement)",
              "params": [
                {
                  "name": "element",
                  "type": "HTMLElement",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "",
              "description": ""
            },
            {
              "name": "extend",
              "group": "",
              "signature": "extend(args: any[]): T",
              "params": [
                {
                  "name": "args",
                  "type": "any[]",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "T",
              "description": ""
            },
            {
              "name": "createDomElement",
              "group": "",
              "signature": "createDomElement(tagName: T, elementOptions?: null | { [P in K]: InferDOMType<HTMLElementTagNameMap[T][P]> }, appendToParent?: Element): HTMLElementTagNameMap[T]",
              "params": [
                {
                  "name": "tagName",
                  "type": "T",
                  "optional": false,
                  "description": "- html tag"
                },
                {
                  "name": "elementOptions",
                  "type": "null | { [P in K]: InferDOMType<HTMLElementTagNameMap[T][P]> }",
                  "optional": true,
                  "description": ""
                },
                {
                  "name": "appendToParent",
                  "type": "Element",
                  "optional": true,
                  "description": "- parent element to append to"
                }
              ],
              "returns": "HTMLElementTagNameMap[T]",
              "description": "Create a DOM Element with any optional attributes or properties.\r\nIt will only accept valid DOM element properties that `createElement` would accept.\r\nFor example: `createDomElement('div', { className: 'my-css-class' })`,\r\nfor style or dataset you need to use nested object `{ style: { display: 'none' }}\r\nThe last argument is to optionally append the created element to a parent container element."
            },
            {
              "name": "getHtmlStringOutput",
              "group": "",
              "signature": "getHtmlStringOutput(input: DocumentFragment | HTMLElement | string | number, type?: 'innerHTML' | 'outerHTML'): string",
              "params": [
                {
                  "name": "input",
                  "type": "DocumentFragment | HTMLElement | string | number",
                  "optional": false,
                  "description": ""
                },
                {
                  "name": "type",
                  "type": "'innerHTML' | 'outerHTML'",
                  "optional": true,
                  "description": "- when the input is a DocumentFragment or HTMLElement, which type of HTML do you want to return? 'innerHTML' or 'outerHTML'"
                }
              ],
              "returns": "string",
              "description": "From any input provided, return the HTML string (when a string is provided, it will be returned \"as is\" but when it's a number it will be converted to string)\r\nWhen detecting HTMLElement/DocumentFragment, we can also specify which HTML type to retrieve innerHTML or outerHTML.\r\nWe can get the HTML by looping through all fragment `childNodes`"
            },
            {
              "name": "emptyElement",
              "group": "",
              "signature": "emptyElement(element?: T | null): T | undefined | null",
              "params": [
                {
                  "name": "element",
                  "type": "T | null",
                  "optional": true,
                  "description": ""
                }
              ],
              "returns": "T | undefined | null",
              "description": ""
            },
            {
              "name": "classNameToList",
              "group": "",
              "signature": "classNameToList(className?): string[]",
              "params": [
                {
                  "name": "className",
                  "type": "",
                  "optional": true,
                  "description": "- space separated list of class names"
                }
              ],
              "returns": "string[]",
              "description": "Accepts string containing the class or space-separated list of classes, and\r\nreturns list of individual classes.\r\nMethod properly takes into account extra whitespaces in the `className`\r\ne.g.: \" class1    class2   \" => will result in `['class1', 'class2']`."
            },
            {
              "name": "innerSize",
              "group": "",
              "signature": "innerSize(elm: HTMLElement, type: 'height' | 'width')",
              "params": [
                {
                  "name": "elm",
                  "type": "HTMLElement",
                  "optional": false,
                  "description": ""
                },
                {
                  "name": "type",
                  "type": "'height' | 'width'",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "",
              "description": ""
            },
            {
              "name": "isDefined",
              "group": "",
              "signature": "isDefined(value: T | undefined | null): value is T",
              "params": [
                {
                  "name": "value",
                  "type": "T | undefined | null",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "value is T",
              "description": ""
            },
            {
              "name": "getElementProp",
              "group": "",
              "signature": "getElementProp(elm: HTMLElement & { getComputedStyle?: () => CSSStyleDeclaration }, property: string)",
              "params": [
                {
                  "name": "elm",
                  "type": "HTMLElement & { getComputedStyle?: () => CSSStyleDeclaration }",
                  "optional": false,
                  "description": ""
                },
                {
                  "name": "property",
                  "type": "string",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "",
              "description": ""
            },
            {
              "name": "getFunctionDetails",
              "group": "",
              "signature": "getFunctionDetails(fn: AnyFunction, addReturn?)",
              "params": [
                {
                  "name": "fn",
                  "type": "AnyFunction",
                  "optional": false,
                  "description": "- function to analyze"
                },
                {
                  "name": "addReturn",
                  "type": "",
                  "optional": true,
                  "description": "- when using ES6 function as single liner, we could add the missing `return ...`"
                }
              ],
              "returns": "",
              "description": "Get the function details (param & body) of a function.\r\nIt supports regular function and also ES6 arrow functions"
            },
            {
              "name": "insertAfterElement",
              "group": "",
              "signature": "insertAfterElement(referenceNode: HTMLElement, newNode: HTMLElement)",
              "params": [
                {
                  "name": "referenceNode",
                  "type": "HTMLElement",
                  "optional": false,
                  "description": ""
                },
                {
                  "name": "newNode",
                  "type": "HTMLElement",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "",
              "description": ""
            },
            {
              "name": "isEmptyObject",
              "group": "",
              "signature": "isEmptyObject(obj: any)",
              "params": [
                {
                  "name": "obj",
                  "type": "any",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "",
              "description": ""
            },
            {
              "name": "noop",
              "group": "",
              "signature": "noop()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "offset",
              "group": "",
              "signature": "offset(el: HTMLElement | null)",
              "params": [
                {
                  "name": "el",
                  "type": "HTMLElement | null",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "",
              "description": ""
            },
            {
              "name": "windowScrollPosition",
              "group": "",
              "signature": "windowScrollPosition()",
              "params": [],
              "returns": "",
              "description": ""
            },
            {
              "name": "width",
              "group": "",
              "signature": "width(el: HTMLElement, value?: number | string): number | void",
              "params": [
                {
                  "name": "el",
                  "type": "HTMLElement",
                  "optional": false,
                  "description": ""
                },
                {
                  "name": "value",
                  "type": "number | string",
                  "optional": true,
                  "description": ""
                }
              ],
              "returns": "number | void",
              "description": ""
            },
            {
              "name": "height",
              "group": "",
              "signature": "height(el: HTMLElement, value?: number | string): number | void",
              "params": [
                {
                  "name": "el",
                  "type": "HTMLElement",
                  "optional": false,
                  "description": ""
                },
                {
                  "name": "value",
                  "type": "number | string",
                  "optional": true,
                  "description": ""
                }
              ],
              "returns": "number | void",
              "description": ""
            },
            {
              "name": "setStyleSize",
              "group": "",
              "signature": "setStyleSize(el: HTMLElement, style: keyof P, val?: number | string | Function): void",
              "params": [
                {
                  "name": "el",
                  "type": "HTMLElement",
                  "optional": false,
                  "description": ""
                },
                {
                  "name": "style",
                  "type": "keyof P",
                  "optional": false,
                  "description": ""
                },
                {
                  "name": "val",
                  "type": "number | string | Function",
                  "optional": true,
                  "description": ""
                }
              ],
              "returns": "void",
              "description": ""
            },
            {
              "name": "setStyles",
              "group": "",
              "signature": "setStyles(element: T, styles: P): void",
              "params": [
                {
                  "name": "element",
                  "type": "T",
                  "optional": false,
                  "description": ""
                },
                {
                  "name": "styles",
                  "type": "P",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "void",
              "description": ""
            },
            {
              "name": "contains",
              "group": "",
              "signature": "contains(parent: HTMLElement, child: HTMLElement)",
              "params": [
                {
                  "name": "parent",
                  "type": "HTMLElement",
                  "optional": false,
                  "description": ""
                },
                {
                  "name": "child",
                  "type": "HTMLElement",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "",
              "description": ""
            },
            {
              "name": "isHidden",
              "group": "",
              "signature": "isHidden(el: HTMLElement)",
              "params": [
                {
                  "name": "el",
                  "type": "HTMLElement",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "",
              "description": ""
            },
            {
              "name": "parents",
              "group": "",
              "signature": "parents(el: HTMLElement | ParentNode, selector?: string)",
              "params": [
                {
                  "name": "el",
                  "type": "HTMLElement | ParentNode",
                  "optional": false,
                  "description": ""
                },
                {
                  "name": "selector",
                  "type": "string",
                  "optional": true,
                  "description": ""
                }
              ],
              "returns": "",
              "description": ""
            },
            {
              "name": "toFloat",
              "group": "",
              "signature": "toFloat(value: string | number)",
              "params": [
                {
                  "name": "value",
                  "type": "string | number",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "",
              "description": ""
            },
            {
              "name": "show",
              "group": "",
              "signature": "show(el: HTMLElement | HTMLElement[], type?)",
              "params": [
                {
                  "name": "el",
                  "type": "HTMLElement | HTMLElement[]",
                  "optional": false,
                  "description": ""
                },
                {
                  "name": "type",
                  "type": "",
                  "optional": true,
                  "description": ""
                }
              ],
              "returns": "",
              "description": ""
            },
            {
              "name": "hide",
              "group": "",
              "signature": "hide(el: HTMLElement | HTMLElement[])",
              "params": [
                {
                  "name": "el",
                  "type": "HTMLElement | HTMLElement[]",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "",
              "description": ""
            },
            {
              "name": "slideUp",
              "group": "",
              "signature": "slideUp(el: HTMLElement | HTMLElement[], callback: Function)",
              "params": [
                {
                  "name": "el",
                  "type": "HTMLElement | HTMLElement[]",
                  "optional": false,
                  "description": ""
                },
                {
                  "name": "callback",
                  "type": "Function",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "",
              "description": ""
            },
            {
              "name": "slideDown",
              "group": "",
              "signature": "slideDown(el: HTMLElement | HTMLElement[], callback: Function)",
              "params": [
                {
                  "name": "el",
                  "type": "HTMLElement | HTMLElement[]",
                  "optional": false,
                  "description": ""
                },
                {
                  "name": "callback",
                  "type": "Function",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "",
              "description": ""
            },
            {
              "name": "slideAnimation",
              "group": "",
              "signature": "slideAnimation(el: HTMLElement | HTMLElement[], slideDirection: 'slideDown' | 'slideUp', callback: Function)",
              "params": [
                {
                  "name": "el",
                  "type": "HTMLElement | HTMLElement[]",
                  "optional": false,
                  "description": ""
                },
                {
                  "name": "slideDirection",
                  "type": "'slideDown' | 'slideUp'",
                  "optional": false,
                  "description": ""
                },
                {
                  "name": "callback",
                  "type": "Function",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "",
              "description": ""
            },
            {
              "name": "applyDefaults",
              "group": "",
              "signature": "applyDefaults(targetObj: any, srcObj: any)",
              "params": [
                {
                  "name": "targetObj",
                  "type": "any",
                  "optional": false,
                  "description": ""
                },
                {
                  "name": "srcObj",
                  "type": "any",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "",
              "description": ""
            },
            {
              "name": "addSlickEventPubSubWhenDefined",
              "group": "",
              "signature": "addSlickEventPubSubWhenDefined(pubSub?: BasePubSub, scope?: T)",
              "params": [
                {
                  "name": "pubSub",
                  "type": "BasePubSub",
                  "optional": true,
                  "description": ""
                },
                {
                  "name": "scope",
                  "type": "T",
                  "optional": true,
                  "description": ""
                }
              ],
              "returns": "",
              "description": "User could optionally add PubSub Service to SlickEvent\r\nWhen it is defined then a SlickEvent `notify()` call will also dispatch it by using the PubSub publish() method"
            }
          ],
          "events": []
        },
        {
          "name": "SelectionUtils",
          "description": "",
          "methods": [
            {
              "name": "normaliseDragRange",
              "group": "",
              "signature": "normaliseDragRange(rawRange: DragRange)",
              "params": [
                {
                  "name": "rawRange",
                  "type": "DragRange",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "",
              "description": ""
            },
            {
              "name": "copyRangeIsLarger",
              "group": "",
              "signature": "copyRangeIsLarger(baseRange: SlickRange, copyToRange: SlickRange): boolean",
              "params": [
                {
                  "name": "baseRange",
                  "type": "SlickRange",
                  "optional": false,
                  "description": ""
                },
                {
                  "name": "copyToRange",
                  "type": "SlickRange",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "boolean",
              "description": ""
            },
            {
              "name": "normalRangeOppositeCellFromCopy",
              "group": "",
              "signature": "normalRangeOppositeCellFromCopy(normalisedDragRange: DragRange, targetCell: { row: number; cell: number }): { row: number; cell: number }",
              "params": [
                {
                  "name": "normalisedDragRange",
                  "type": "DragRange",
                  "optional": false,
                  "description": ""
                },
                {
                  "name": "targetCell",
                  "type": "{ row: number; cell: number }",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "{ row: number; cell: number }",
              "description": "Returns the anchor (opposite) cell to use while dragging the drag-extend handle.\r\nAnchoring on the range start lets the drag shrink the range (Excel behavior), while dragging\r\npast the start anchors on the range end so that it expands in the opposite direction instead."
            },
            {
              "name": "verticalTargetRange",
              "group": "",
              "signature": "verticalTargetRange(baseRange: SlickRange, copyToRange: SlickRange)",
              "params": [
                {
                  "name": "baseRange",
                  "type": "SlickRange",
                  "optional": false,
                  "description": ""
                },
                {
                  "name": "copyToRange",
                  "type": "SlickRange",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "",
              "description": ""
            },
            {
              "name": "horizontalTargetRange",
              "group": "",
              "signature": "horizontalTargetRange(baseRange: SlickRange, copyToRange: SlickRange)",
              "params": [
                {
                  "name": "baseRange",
                  "type": "SlickRange",
                  "optional": false,
                  "description": ""
                },
                {
                  "name": "copyToRange",
                  "type": "SlickRange",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "",
              "description": ""
            },
            {
              "name": "cornerTargetRange",
              "group": "",
              "signature": "cornerTargetRange(baseRange: SlickRange, copyToRange: SlickRange)",
              "params": [
                {
                  "name": "baseRange",
                  "type": "SlickRange",
                  "optional": false,
                  "description": ""
                },
                {
                  "name": "copyToRange",
                  "type": "SlickRange",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "",
              "description": ""
            },
            {
              "name": "copyCellsToTargetRange",
              "group": "",
              "signature": "copyCellsToTargetRange(baseRange: SlickRange, targetRange: SlickRange, grid: SlickGrid)",
              "params": [
                {
                  "name": "baseRange",
                  "type": "SlickRange",
                  "optional": false,
                  "description": ""
                },
                {
                  "name": "targetRange",
                  "type": "SlickRange",
                  "optional": false,
                  "description": ""
                },
                {
                  "name": "grid",
                  "type": "SlickGrid",
                  "optional": false,
                  "description": ""
                }
              ],
              "returns": "",
              "description": ""
            }
          ],
          "events": []
        },
        {
          "name": "RowPositionIndexer",
          "description": "RowPositionIndexer - a prefix-sum index of row top positions, used by SlickGrid when variable\r\nrow height mode is enabled (i.e. when a `rowHeightProvider` grid option is supplied).\r\n\r\n`rowPos[i]` holds the virtual top pixel position of row `i` (i.e. the summed heights of all\r\npreceding rows) and `rowPos[rowCount]` holds the total height of all indexed rows, which makes\r\nrow-to-position lookups an O(1) array read and position-to-row lookups an O(log n) binary search.\r\n\r\nRow indexes are expected to be 0 or greater (guaranteed by the grid core; user-provided indexes\r\nare validated in the public grid methods). Rows at or beyond the indexed range extrapolate\r\nlinearly using the default row height, mirroring the fixed-row-height arithmetic it replaces\r\n(needed for the Add-New row and `leaveSpaceForNewRows` padding).",
          "methods": [
            {
              "name": "rebuild",
              "group": "",
              "signature": "rebuild(rowCount: number, defaultRowHeight: number, getRowHeight: (row: number) => number | undefined): void",
              "params": [
                {
                  "name": "rowCount",
                  "type": "number",
                  "optional": false,
                  "description": "- The number of rows to index."
                },
                {
                  "name": "defaultRowHeight",
                  "type": "number",
                  "optional": false,
                  "description": "- The height used when the callback returns `undefined` and for extrapolating beyond the indexed range."
                },
                {
                  "name": "getRowHeight",
                  "type": "(row: number) => number | undefined",
                  "optional": false,
                  "description": "- Returns the height of a row in pixels, or `undefined` to use the default."
                }
              ],
              "returns": "void",
              "description": "Rebuilds the index by querying the height of every row. O(n) - the provided callback is\r\ncalled once per row and must therefore be fast (a simple lookup, no DOM access)."
            },
            {
              "name": "top",
              "group": "",
              "signature": "top(row: number): number",
              "params": [
                {
                  "name": "row",
                  "type": "number",
                  "optional": false,
                  "description": "- The row index (>= 0); indexes beyond the indexed range extrapolate using the default row height."
                }
              ],
              "returns": "number",
              "description": "Returns the virtual top pixel position of a row."
            },
            {
              "name": "height",
              "group": "",
              "signature": "height(row: number): number",
              "params": [
                {
                  "name": "row",
                  "type": "number",
                  "optional": false,
                  "description": "- The row index (>= 0); indexes beyond the indexed range return the default row height."
                }
              ],
              "returns": "number",
              "description": "Returns the height of a row."
            },
            {
              "name": "rowAt",
              "group": "",
              "signature": "rowAt(y: number): number",
              "params": [
                {
                  "name": "y",
                  "type": "number",
                  "optional": false,
                  "description": "- The virtual vertical position in pixels."
                }
              ],
              "returns": "number",
              "description": "Returns the index of the row containing a virtual vertical pixel position.\r\nPositions below zero return row 0; positions beyond the indexed range extrapolate using the\r\ndefault row height (results may be beyond the last row - callers clamp, as in fixed mode)."
            }
          ],
          "events": []
        }
      ]
    },
    "enums": {
      "keyCode": {
        "SPACE": 8,
        "BACKSPACE": 8,
        "DELETE": 46,
        "DOWN": 40,
        "END": 35,
        "ENTER": 13,
        "ESCAPE": 27,
        "HOME": 36,
        "INSERT": 45,
        "LEFT": 37,
        "PAGE_DOWN": 34,
        "PAGE_UP": 33,
        "RIGHT": 39,
        "TAB": 9,
        "UP": 38,
        "A": 65
      },
      "GridAutosizeColsMode": {
        "None": "NOA",
        "LegacyOff": "LOF",
        "LegacyForceFit": "LFF",
        "IgnoreViewport": "IGV",
        "FitColsToViewport": "FCV",
        "FitViewportToCols": "FVC"
      },
      "WidthEvalMode": {
        "Auto": "AUTO",
        "TextOnly": "CANV",
        "HTML": "HTML"
      }
    },
    "controls": [
      {
        "file": "controls/slick.columnmenu.ts",
        "classes": [
          {
            "name": "SlickColumnMenu",
            "description": "A control to add a Column Picker (right+click on any column header to reveal the column picker)\nNOTE: this a simplified and updated version of slick.columnpicker.js\n\nUSAGE:\n\nAdd the slick.columnpicker.(js|css) files and register it with the grid.\n\nAvailable options, by defining a columnPicker object:\n\n let options = {\n   enableCellNavigation: true,\n   columnPicker: {\n     columnTitle: \"Columns\",                 // default to empty string\n\n     // the last 2 checkboxes titles\n     hideForceFitButton: false,              // show/hide checkbox near the end \"Force Fit Columns\" (default:false)\n     hideSyncResizeButton: false,            // show/hide checkbox near the end \"Synchronous Resize\" (default:false)\n     forceFitTitle: \"Force fit columns\",     // default to \"Force fit columns\"\n     headerColumnValueExtractor: \"Extract the column label\" // default to column.name\n     syncResizeTitle: \"Synchronous resize\",  // default to \"Synchronous resize\"\n   }\n };",
            "methods": [
              {
                "name": "init",
                "group": "",
                "signature": "init(grid: SlickGrid)",
                "params": [
                  {
                    "name": "grid",
                    "type": "SlickGrid",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              },
              {
                "name": "destroy",
                "group": "",
                "signature": "destroy()",
                "params": [],
                "returns": "",
                "description": ""
              },
              {
                "name": "handleBodyMouseDown",
                "group": "",
                "signature": "handleBodyMouseDown(e: DOMMouseOrTouchEvent<HTMLDivElement>)",
                "params": [
                  {
                    "name": "e",
                    "type": "DOMMouseOrTouchEvent<HTMLDivElement>",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              },
              {
                "name": "handleHeaderContextMenu",
                "group": "",
                "signature": "handleHeaderContextMenu(e: SlickEventData)",
                "params": [
                  {
                    "name": "e",
                    "type": "SlickEventData",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              },
              {
                "name": "repositionMenu",
                "group": "",
                "signature": "repositionMenu(event: DOMMouseOrTouchEvent<HTMLDivElement> | SlickEventData)",
                "params": [
                  {
                    "name": "event",
                    "type": "DOMMouseOrTouchEvent<HTMLDivElement> | SlickEventData",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              },
              {
                "name": "updateColumnOrder",
                "group": "",
                "signature": "updateColumnOrder()",
                "params": [],
                "returns": "",
                "description": ""
              },
              {
                "name": "updateAllTitles",
                "group": "",
                "signature": "updateAllTitles(pickerOptions: { columnTitle: string; })",
                "params": [
                  {
                    "name": "pickerOptions",
                    "type": "{ columnTitle: string; }",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": "Update the Titles of each sections (command, customTitle, ...)"
              },
              {
                "name": "updateColumn",
                "group": "",
                "signature": "updateColumn(e: DOMMouseOrTouchEvent<HTMLInputElement>)",
                "params": [
                  {
                    "name": "e",
                    "type": "DOMMouseOrTouchEvent<HTMLInputElement>",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              },
              {
                "name": "setColumnVisibiliy",
                "group": "",
                "signature": "setColumnVisibiliy(idxOrId: number | string, show: boolean)",
                "params": [
                  {
                    "name": "idxOrId",
                    "type": "number | string",
                    "optional": false,
                    "description": ""
                  },
                  {
                    "name": "show",
                    "type": "boolean",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": "",
                "deprecated": "because of a typo"
              },
              {
                "name": "setColumnVisibility",
                "group": "",
                "signature": "setColumnVisibility(idxOrId: number | string, show: boolean)",
                "params": [
                  {
                    "name": "idxOrId",
                    "type": "number | string",
                    "optional": false,
                    "description": ""
                  },
                  {
                    "name": "show",
                    "type": "boolean",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              },
              {
                "name": "getAllColumns",
                "group": "",
                "signature": "getAllColumns()",
                "params": [],
                "returns": "",
                "description": ""
              },
              {
                "name": "getColumnbyId",
                "group": "",
                "signature": "getColumnbyId(id: number | string)",
                "params": [
                  {
                    "name": "id",
                    "type": "number | string",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              },
              {
                "name": "getColumnIndexbyId",
                "group": "",
                "signature": "getColumnIndexbyId(id: number | string)",
                "params": [
                  {
                    "name": "id",
                    "type": "number | string",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              },
              {
                "name": "getVisibleColumns",
                "group": "",
                "signature": "getVisibleColumns()",
                "params": [],
                "returns": "",
                "description": "visible columns, we can simply get them directly from the grid"
              }
            ],
            "events": [
              {
                "name": "onColumnsChanged",
                "payload": "OnColumnsChangedArgs",
                "args": {
                  "typeName": "OnColumnsChangedArgs",
                  "fields": [
                    {
                      "name": "columnId",
                      "type": "number | string",
                      "optional": false
                    },
                    {
                      "name": "showing",
                      "type": "boolean",
                      "optional": false
                    },
                    {
                      "name": "grid",
                      "type": "SlickGrid",
                      "optional": false
                    },
                    {
                      "name": "allColumns",
                      "type": "Column[]",
                      "optional": false
                    },
                    {
                      "name": "columns",
                      "type": "Column[]",
                      "optional": false
                    },
                    {
                      "name": "visibleColumns",
                      "type": "Column[]",
                      "optional": false
                    }
                  ]
                },
                "description": ""
              }
            ]
          }
        ],
        "interfaces": []
      },
      {
        "file": "controls/slick.columnpicker.ts",
        "classes": [
          {
            "name": "SlickColumnPicker",
            "description": "A control to add a Column Picker (right+click on any column header to reveal the column picker)\nNOTE: this is the old 'complex' column pciker that hides columns by removing them from the grid\n       for a more modern version that uses the column.hidden property and is a lot simpler, use slick.columnmenu.js\n\nUSAGE:\n\nAdd the slick.columnpicker.(js|css) files and register it with the grid.\n\nAvailable options, by defining a columnPicker object:\n\n let options = {\n   enableCellNavigation: true,\n   columnPicker: {\n     columnTitle: \"Columns\",                 // default to empty string\n\n     // the last 2 checkboxes titles\n     hideForceFitButton: false,              // show/hide checkbox near the end \"Force Fit Columns\" (default:false)\n     hideSyncResizeButton: false,            // show/hide checkbox near the end \"Synchronous Resize\" (default:false)\n     forceFitTitle: \"Force fit columns\",     // default to \"Force fit columns\"\n     headerColumnValueExtractor: \"Extract the column label\" // default to column.name\n     syncResizeTitle: \"Synchronous resize\",  // default to \"Synchronous resize\"\n   }\n };",
            "methods": [
              {
                "name": "init",
                "group": "",
                "signature": "init(grid: SlickGrid)",
                "params": [
                  {
                    "name": "grid",
                    "type": "SlickGrid",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              },
              {
                "name": "destroy",
                "group": "",
                "signature": "destroy()",
                "params": [],
                "returns": "",
                "description": ""
              },
              {
                "name": "updateAllTitles",
                "group": "",
                "signature": "updateAllTitles(pickerOptions: { columnTitle: string; })",
                "params": [
                  {
                    "name": "pickerOptions",
                    "type": "{ columnTitle: string; }",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": "Update the Titles of each sections (command, customTitle, ...)"
              },
              {
                "name": "setColumnVisibiliy",
                "group": "",
                "signature": "setColumnVisibiliy(idxOrId: number | string, show: boolean)",
                "params": [
                  {
                    "name": "idxOrId",
                    "type": "number | string",
                    "optional": false,
                    "description": ""
                  },
                  {
                    "name": "show",
                    "type": "boolean",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": "",
                "deprecated": "because of a typo"
              },
              {
                "name": "setColumnVisibility",
                "group": "",
                "signature": "setColumnVisibility(idxOrId: number | string, show: boolean)",
                "params": [
                  {
                    "name": "idxOrId",
                    "type": "number | string",
                    "optional": false,
                    "description": ""
                  },
                  {
                    "name": "show",
                    "type": "boolean",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              },
              {
                "name": "getAllColumns",
                "group": "",
                "signature": "getAllColumns()",
                "params": [],
                "returns": "",
                "description": ""
              },
              {
                "name": "getColumnbyId",
                "group": "",
                "signature": "getColumnbyId(id: number | string)",
                "params": [
                  {
                    "name": "id",
                    "type": "number | string",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              },
              {
                "name": "getColumnIndexbyId",
                "group": "",
                "signature": "getColumnIndexbyId(id: number | string)",
                "params": [
                  {
                    "name": "id",
                    "type": "number | string",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              },
              {
                "name": "getVisibleColumns",
                "group": "",
                "signature": "getVisibleColumns()",
                "params": [],
                "returns": "",
                "description": "visible columns, we can simply get them directly from the grid"
              }
            ],
            "events": [
              {
                "name": "onColumnsChanged",
                "payload": "OnColumnsChangedArgs",
                "args": {
                  "typeName": "OnColumnsChangedArgs",
                  "fields": [
                    {
                      "name": "columnId",
                      "type": "number | string",
                      "optional": false
                    },
                    {
                      "name": "showing",
                      "type": "boolean",
                      "optional": false
                    },
                    {
                      "name": "grid",
                      "type": "SlickGrid",
                      "optional": false
                    },
                    {
                      "name": "allColumns",
                      "type": "Column[]",
                      "optional": false
                    },
                    {
                      "name": "columns",
                      "type": "Column[]",
                      "optional": false
                    },
                    {
                      "name": "visibleColumns",
                      "type": "Column[]",
                      "optional": false
                    }
                  ]
                },
                "description": ""
              }
            ]
          }
        ],
        "interfaces": []
      },
      {
        "file": "controls/slick.gridmenu.ts",
        "classes": [
          {
            "name": "SlickGridMenu",
            "description": "A control to add a Grid Menu (hambuger menu on top-right of the grid)\r\n\r\nUSAGE:\r\n\r\nAdd the slick.gridmenu.(js|css) files and register it with the grid.\r\n\r\nTo specify a menu in a column header, extend the column definition like so:\r\nlet gridMenuControl = new Slick.Controls.GridMenu(columns, grid, options);\r\n\r\nAvailable grid options, by defining a gridMenu object:\r\n\r\n let options = {\r\n   enableCellNavigation: true,\r\n   gridMenu: {\r\n     commandTitle: \"Command List\",                // default to empty string\r\n     columnTitle: \"Columns\",                     // default to empty string\r\n     iconImage: \"some-image.png\",                // this is the Grid Menu icon (hamburger icon)\r\n     iconCssClass: \"fa fa-bars\",                 // you can provide iconImage OR iconCssClass\r\n     leaveOpen: false,                           // do we want to leave the Grid Menu open after a command execution? (false by default)\r\n     menuWidth: 18,                              // width (icon) that will be use to resize the column header container (18 by default)\r\n     contentMinWidth: 0,\t\t\t\t\t\t\t            // defaults to 0 (auto), minimum width of grid menu content (command, column list)\r\n     marginBottom: 15,                           // defaults to 15, margin to use at the bottom of the grid when using max-height (default)\r\n     resizeOnShowHeaderRow: false,               // false by default\r\n     showButton: true,                           // true by default - it allows the user to control if the\r\n                                                         // default gridMenu button (located on the top right corner by default CSS)\r\n                                                         // should be created or omitted\r\n     useClickToRepositionMenu: true,             // true by default\r\n\r\n     // the last 2 checkboxes titles\r\n     hideForceFitButton: false,                  // show/hide checkbox near the end \"Force Fit Columns\"\r\n     hideSyncResizeButton: false,                // show/hide checkbox near the end \"Synchronous Resize\"\r\n     forceFitTitle: \"Force fit columns\",         // default to \"Force fit columns\"\r\n     syncResizeTitle: \"Synchronous resize\",      // default to \"Synchronous resize\"\r\n\r\n     commandItems: [\r\n       {\r\n         // command menu item options\r\n       },\r\n       {\r\n         // command menu item options\r\n       }\r\n     ]\r\n   }\r\n };\r\n\r\n\r\nAvailable menu options:\r\n   hideForceFitButton:         Hide the \"Force fit columns\" button (defaults to false)\r\n   hideSyncResizeButton:       Hide the \"Synchronous resize\" button (defaults to false)\r\n   forceFitTitle:              Text of the title \"Force fit columns\"\r\n   contentMinWidth:\t\t\t\t\t\tminimum width of grid menu content (command, column list), defaults to 0 (auto)\r\n   height:                     Height of the Grid Menu content, when provided it will be used instead of the max-height (defaults to undefined)\r\n   menuWidth:                  Grid menu button width (defaults to 18)\r\n   resizeOnShowHeaderRow:      Do we want to resize on the show header row event\r\n   syncResizeTitle:            Text of the title \"Synchronous resize\"\r\n   useClickToRepositionMenu:   Use the Click offset to reposition the Grid Menu (defaults to true), when set to False it will use the icon offset to reposition the grid menu\r\n   menuUsabilityOverride:      Callback method that user can override the default behavior of enabling/disabling the menu from being usable (must be combined with a custom formatter)\r\n   marginBottom:               Margin to use at the bottom of the grid menu, only in effect when height is undefined (defaults to 15)\r\n   subItemChevronClass:        CSS class that can be added on the right side of a sub-item parent (typically a chevron-right icon)\r\n   subMenuOpenByEvent:         defaults to \"mouseover\", what event type shoud we use to open sub-menu(s), 2 options are available: \"mouseover\" or \"click\"\r\n\r\nAvailable command menu item options:\r\n   action:                     Optionally define a callback function that gets executed when item is chosen (and/or use the onCommand event)\r\n   title:                      Menu item text.\r\n   divider:                    Whether the current item is a divider, not an actual command.\r\n   disabled:                   Whether the item/command is disabled.\r\n   hidden:                     Whether the item/command is hidden.\r\n   tooltip:                    Item tooltip.\r\n   command:                    A command identifier to be passed to the onCommand event handlers.\r\n   cssClass:                   A CSS class to be added to the menu item container.\r\n   iconCssClass:               A CSS class to be added to the menu item icon.\r\n   iconImage:                  A url to the icon image.\r\n   textCssClass:               A CSS class to be added to the menu item text.\r\n   subMenuTitle:               Optional sub-menu title that will shows up when sub-menu commmands/options list is opened\r\n   subMenuTitleCssClass:       Optional sub-menu title CSS class to use with `subMenuTitle`\r\n   itemVisibilityOverride:     Callback method that user can override the default behavior of showing/hiding an item from the list\r\n   itemUsabilityOverride:      Callback method that user can override the default behavior of enabling/disabling an item from the list\r\n\r\n\r\nThe plugin exposes the following events:\r\n\r\n   onAfterMenuShow:   Fired after the menu is shown.  You can customize the menu or dismiss it by returning false.\r\n     * ONLY works with a JS event (as per slick.core code), so we cannot notify when it's a button event (when grid menu is attached to an external button, not the hamburger menu)\r\n       Event args:\r\n           grid:     Reference to the grid.\r\n           column:   Column definition.\r\n           menu:     Menu options.  Note that you can change the menu items here.\r\n\r\n   onBeforeMenuShow:   Fired before the menu is shown.  You can customize the menu or dismiss it by returning false.\r\n     * ONLY works with a JS event (as per slick.core code), so we cannot notify when it's a button event (when grid menu is attached to an external button, not the hamburger menu)\r\n       Event args:\r\n           grid:     Reference to the grid.\r\n           column:   Column definition.\r\n           menu:     Menu options.  Note that you can change the menu items here.\r\n\r\n   onMenuClose:      Fired when the menu is closing.\r\n       Event args:\r\n           grid:     Reference to the grid.\r\n           column:   Column definition.\r\n           menu:     Menu options.  Note that you can change the menu items here.\r\n\r\n   onCommand:    Fired on menu item click for buttons with 'command' specified.\r\n       Event args:\r\n           grid:     Reference to the grid.\r\n           column:   Column definition.\r\n           command:  Button command identified.\r\n           button:   Button options.  Note that you can change the button options in your\r\n                     event handler, and the column header will be automatically updated to\r\n                     reflect them.  This is useful if you want to implement something like a\r\n                     toggle button.",
            "methods": [
              {
                "name": "init",
                "group": "",
                "signature": "init(grid: SlickGrid)",
                "params": [
                  {
                    "name": "grid",
                    "type": "SlickGrid",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              },
              {
                "name": "setOptions",
                "group": "",
                "signature": "setOptions(newOptions: GridMenuOption)",
                "params": [
                  {
                    "name": "newOptions",
                    "type": "GridMenuOption",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              },
              {
                "name": "createMenu",
                "group": "",
                "signature": "createMenu(level?, item?: GridMenuItem | MenuCommandItem | 'divider')",
                "params": [
                  {
                    "name": "level",
                    "type": "",
                    "optional": true,
                    "description": ""
                  },
                  {
                    "name": "item",
                    "type": "GridMenuItem | MenuCommandItem | 'divider'",
                    "optional": true,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": "Create the menu or sub-menu(s) but without the column picker which is a separate single process"
              },
              {
                "name": "destroy",
                "group": "",
                "signature": "destroy()",
                "params": [],
                "returns": "",
                "description": "Destroy the plugin by unsubscribing every events & also delete the menu DOM elements"
              },
              {
                "name": "deleteMenu",
                "group": "",
                "signature": "deleteMenu()",
                "params": [],
                "returns": "",
                "description": "Delete the menu DOM element but without unsubscribing any events"
              },
              {
                "name": "destroySubMenus",
                "group": "",
                "signature": "destroySubMenus()",
                "params": [],
                "returns": "",
                "description": "Close and destroy all previously opened sub-menus"
              },
              {
                "name": "recreateGridMenu",
                "group": "",
                "signature": "recreateGridMenu()",
                "params": [],
                "returns": "",
                "description": "Delete and then Recreate the Grid Menu (for example when we switch from regular to a frozen grid)"
              },
              {
                "name": "showGridMenu",
                "group": "",
                "signature": "showGridMenu(e: DOMMouseOrTouchEvent<HTMLButtonElement>)",
                "params": [
                  {
                    "name": "e",
                    "type": "DOMMouseOrTouchEvent<HTMLButtonElement>",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              },
              {
                "name": "hideMenu",
                "group": "",
                "signature": "hideMenu(e: DOMMouseOrTouchEvent<HTMLElement>)",
                "params": [
                  {
                    "name": "e",
                    "type": "DOMMouseOrTouchEvent<HTMLElement>",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              },
              {
                "name": "updateAllTitles",
                "group": "",
                "signature": "updateAllTitles(gridMenuOptions: GridMenuOption)",
                "params": [
                  {
                    "name": "gridMenuOptions",
                    "type": "GridMenuOption",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": "Update the Titles of each sections (command, commandTitle, ...)"
              },
              {
                "name": "getAllColumns",
                "group": "",
                "signature": "getAllColumns()",
                "params": [],
                "returns": "",
                "description": ""
              },
              {
                "name": "getVisibleColumns",
                "group": "",
                "signature": "getVisibleColumns()",
                "params": [],
                "returns": "",
                "description": "visible columns, we can simply get them directly from the grid"
              }
            ],
            "events": [
              {
                "name": "onAfterMenuShow",
                "payload": "GridMenuEventWithElementCallbackArgs",
                "args": {
                  "typeName": "GridMenuEventWithElementCallbackArgs",
                  "fields": [
                    {
                      "name": "allColumns",
                      "type": "Column[]",
                      "optional": false
                    },
                    {
                      "name": "visibleColumns",
                      "type": "Column[]",
                      "optional": false
                    },
                    {
                      "name": "grid",
                      "type": "SlickGrid",
                      "optional": false
                    },
                    {
                      "name": "menu",
                      "type": "HTMLElement",
                      "optional": false
                    }
                  ]
                },
                "description": ""
              },
              {
                "name": "onBeforeMenuShow",
                "payload": "GridMenuEventWithElementCallbackArgs",
                "args": {
                  "typeName": "GridMenuEventWithElementCallbackArgs",
                  "fields": [
                    {
                      "name": "allColumns",
                      "type": "Column[]",
                      "optional": false
                    },
                    {
                      "name": "visibleColumns",
                      "type": "Column[]",
                      "optional": false
                    },
                    {
                      "name": "grid",
                      "type": "SlickGrid",
                      "optional": false
                    },
                    {
                      "name": "menu",
                      "type": "HTMLElement",
                      "optional": false
                    }
                  ]
                },
                "description": ""
              },
              {
                "name": "onMenuClose",
                "payload": "GridMenuEventWithElementCallbackArgs",
                "args": {
                  "typeName": "GridMenuEventWithElementCallbackArgs",
                  "fields": [
                    {
                      "name": "allColumns",
                      "type": "Column[]",
                      "optional": false
                    },
                    {
                      "name": "visibleColumns",
                      "type": "Column[]",
                      "optional": false
                    },
                    {
                      "name": "grid",
                      "type": "SlickGrid",
                      "optional": false
                    },
                    {
                      "name": "menu",
                      "type": "HTMLElement",
                      "optional": false
                    }
                  ]
                },
                "description": ""
              },
              {
                "name": "onCommand",
                "payload": "GridMenuCommandItemCallbackArgs",
                "args": {
                  "typeName": "GridMenuCommandItemCallbackArgs",
                  "fields": [
                    {
                      "name": "command",
                      "type": "string",
                      "optional": false
                    },
                    {
                      "name": "item",
                      "type": "GridMenuItem | MenuCommandItem",
                      "optional": false
                    },
                    {
                      "name": "grid",
                      "type": "SlickGrid",
                      "optional": false
                    },
                    {
                      "name": "allColumns",
                      "type": "Column[]",
                      "optional": false
                    },
                    {
                      "name": "visibleColumns",
                      "type": "Column[]",
                      "optional": false
                    }
                  ]
                },
                "description": ""
              },
              {
                "name": "onColumnsChanged",
                "payload": "onGridMenuColumnsChangedCallbackArgs",
                "args": {
                  "typeName": "onGridMenuColumnsChangedCallbackArgs",
                  "fields": [
                    {
                      "name": "allColumns",
                      "type": "Column[]",
                      "optional": false
                    },
                    {
                      "name": "visibleColumns",
                      "type": "Column[]",
                      "optional": false
                    },
                    {
                      "name": "grid",
                      "type": "SlickGrid",
                      "optional": false
                    },
                    {
                      "name": "columnId",
                      "type": "string",
                      "optional": false
                    },
                    {
                      "name": "showing",
                      "type": "boolean",
                      "optional": false
                    }
                  ]
                },
                "description": ""
              }
            ]
          }
        ],
        "interfaces": []
      },
      {
        "file": "controls/slick.pager.ts",
        "classes": [
          {
            "name": "SlickGridPager",
            "description": "",
            "methods": [
              {
                "name": "init",
                "group": "",
                "signature": "init()",
                "params": [],
                "returns": "",
                "description": ""
              },
              {
                "name": "destroy",
                "group": "",
                "signature": "destroy()",
                "params": [],
                "returns": "",
                "description": "Destroy function when element is destroyed"
              }
            ],
            "events": []
          }
        ],
        "interfaces": [
          {
            "name": "GridPagerOption",
            "description": "",
            "properties": [
              {
                "name": "showAllText",
                "type": "string",
                "optional": false,
                "description": ""
              },
              {
                "name": "showPageText",
                "type": "string",
                "optional": false,
                "description": ""
              },
              {
                "name": "showCountText",
                "type": "string",
                "optional": false,
                "description": ""
              },
              {
                "name": "showCount",
                "type": "boolean",
                "optional": false,
                "description": ""
              },
              {
                "name": "pagingOptions",
                "type": "Array<{ data: number; name: string; ariaLabel: string; }>",
                "optional": false,
                "description": ""
              },
              {
                "name": "showPageSizes",
                "type": "boolean",
                "optional": false,
                "description": ""
              }
            ]
          }
        ]
      }
    ],
    "plugins": [
      {
        "file": "plugins/slick.autotooltips.ts",
        "classes": [
          {
            "name": "SlickAutoTooltips",
            "description": "AutoTooltips plugin to show/hide tooltips when columns are too narrow to fit content.",
            "methods": [
              {
                "name": "init",
                "group": "",
                "signature": "init(grid: SlickGrid)",
                "params": [
                  {
                    "name": "grid",
                    "type": "SlickGrid",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": "Initialize plugin."
              },
              {
                "name": "destroy",
                "group": "",
                "signature": "destroy()",
                "params": [],
                "returns": "",
                "description": "Destroy plugin."
              }
            ],
            "events": []
          }
        ],
        "interfaces": []
      },
      {
        "file": "plugins/slick.cellcopymanager.ts",
        "classes": [
          {
            "name": "SlickCellCopyManager",
            "description": "This manager enables users to copy/paste cell data",
            "methods": [
              {
                "name": "init",
                "group": "",
                "signature": "init(grid: SlickGrid)",
                "params": [
                  {
                    "name": "grid",
                    "type": "SlickGrid",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              },
              {
                "name": "destroy",
                "group": "",
                "signature": "destroy()",
                "params": [],
                "returns": "",
                "description": ""
              }
            ],
            "events": [
              {
                "name": "onCopyCells",
                "payload": "{ ranges: SlickRange[] | null; }",
                "args": {
                  "typeName": "{ ranges: SlickRange[] | null; }",
                  "fields": [
                    {
                      "name": "ranges",
                      "type": "SlickRange[] | null",
                      "optional": false
                    }
                  ]
                },
                "description": ""
              },
              {
                "name": "onCopyCancelled",
                "payload": "{ ranges: SlickRange[] | null; }",
                "args": {
                  "typeName": "{ ranges: SlickRange[] | null; }",
                  "fields": [
                    {
                      "name": "ranges",
                      "type": "SlickRange[] | null",
                      "optional": false
                    }
                  ]
                },
                "description": ""
              },
              {
                "name": "onPasteCells",
                "payload": "{ from: SlickRange[] | undefined; to: SlickRange[] | undefined; }",
                "args": {
                  "typeName": "{ from: SlickRange[] | undefined; to: SlickRange[] | undefined; }",
                  "fields": [
                    {
                      "name": "from",
                      "type": "SlickRange[] | undefined",
                      "optional": false
                    },
                    {
                      "name": "to",
                      "type": "SlickRange[] | undefined",
                      "optional": false
                    }
                  ]
                },
                "description": ""
              }
            ]
          }
        ],
        "interfaces": []
      },
      {
        "file": "plugins/slick.cellexternalcopymanager.ts",
        "classes": [
          {
            "name": "SlickCellExternalCopyManager",
            "description": "This manager enables users to copy/paste data from/to an external Spreadsheet application\r\n  such as MS-Excel® or OpenOffice-Spreadsheet.\r\n\r\n  Since it is not possible to access directly the clipboard in javascript, the plugin uses\r\n  a trick to do it's job. After detecting the keystroke, we dynamically create a textarea\r\n  where the browser copies/pastes the serialized data.\r\n\r\n  options:\r\n    copiedCellStyle : sets the css className used for copied cells. default : \"copied\"\r\n    copiedCellStyleLayerKey : sets the layer key for setting css values of copied cells. default : \"copy-manager\"\r\n    dataItemColumnValueExtractor : option to specify a custom column value extractor function\r\n    dataItemColumnValueSetter : option to specify a custom column value setter function\r\n    clipboardCommandHandler : option to specify a custom handler for paste actions\r\n    includeHeaderWhenCopying : set to true and the plugin will take the name property from each column (which is usually what appears in your header) and put that as the first row of the text that's copied to the clipboard\r\n    bodyElement: option to specify a custom DOM element which to will be added the hidden textbox. It's useful if the grid is inside a modal dialog.\r\n    onCopyInit: optional handler to run when copy action initializes\r\n    onCopySuccess: optional handler to run when copy action is complete\r\n    newRowCreator: function to add rows to table if paste overflows bottom of table, if this function is not provided new rows will be ignored.\r\n    readOnlyMode: suppresses paste\r\n    headerColumnValueExtractor : option to specify a custom column header value extractor function",
            "methods": [
              {
                "name": "init",
                "group": "",
                "signature": "init(grid: SlickGrid)",
                "params": [
                  {
                    "name": "grid",
                    "type": "SlickGrid",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              },
              {
                "name": "destroy",
                "group": "",
                "signature": "destroy()",
                "params": [],
                "returns": "",
                "description": ""
              },
              {
                "name": "clearCopySelection",
                "group": "",
                "signature": "clearCopySelection()",
                "params": [],
                "returns": "",
                "description": ""
              },
              {
                "name": "setIncludeHeaderWhenCopying",
                "group": "",
                "signature": "setIncludeHeaderWhenCopying(includeHeaderWhenCopying: boolean)",
                "params": [
                  {
                    "name": "includeHeaderWhenCopying",
                    "type": "boolean",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              }
            ],
            "events": [
              {
                "name": "onCopyCells",
                "payload": "{ ranges: SlickRange_[]; }",
                "args": {
                  "typeName": "{ ranges: SlickRange_[]; }",
                  "fields": [
                    {
                      "name": "ranges",
                      "type": "SlickRange_[]",
                      "optional": false
                    }
                  ]
                },
                "description": ""
              },
              {
                "name": "onCopyCancelled",
                "payload": "{ ranges: SlickRange_[]; }",
                "args": {
                  "typeName": "{ ranges: SlickRange_[]; }",
                  "fields": [
                    {
                      "name": "ranges",
                      "type": "SlickRange_[]",
                      "optional": false
                    }
                  ]
                },
                "description": ""
              },
              {
                "name": "onPasteCells",
                "payload": "{ ranges: SlickRange_[]; }",
                "args": {
                  "typeName": "{ ranges: SlickRange_[]; }",
                  "fields": [
                    {
                      "name": "ranges",
                      "type": "SlickRange_[]",
                      "optional": false
                    }
                  ]
                },
                "description": ""
              }
            ]
          }
        ],
        "interfaces": []
      },
      {
        "file": "plugins/slick.cellmenu.ts",
        "classes": [
          {
            "name": "SlickCellMenu",
            "description": "A plugin to add Menu on a Cell click (click on the cell that has the cellMenu object defined)\nThe \"cellMenu\" is defined in a Column Definition object\nSimilar to the ContextMenu plugin (could be used in combo),\nexcept that it subscribes to the cell \"onClick\" event (regular mouse click or touch).\n\nA general use of this plugin is for an Action Dropdown Menu to do certain things on the row that was clicked\nYou can use it to change the cell data property through a list of Options AND/OR through a list of Commands.\n\nUSAGE:\n\nAdd the slick.cellMenu.(js|css) files and register it with the grid.\n\nTo specify a menu in a column header, extend the column definition like so:\nvar cellMenuPlugin = new Slick.Plugins.CellMenu(columns, grid, options);\n\nAvailable cellMenu options, by defining a cellMenu object:\n\n var columns = [\n   {\n     id: \"action\", name: \"Action\", field: \"action\", formatter: fakeButtonFormatter,\n     cellMenu: {\n       optionTitle: \"Change Effort Driven\",\n       optionItems: [\n         { option: true, title: \"True\", iconCssClass: 'checkmark' },\n         { option: false, title: \"False\" }\n       ],\n       commandTitle: \"Commands\",\n       commandItems: [\n         { command: \"delete-row\", title: \"Delete Row\", iconCssClass: \"sgi sgi-close\", cssClass: 'bold', textCssClass: \"red\" },\n         { divider: true },\n         \"divider\" // you can pass \"divider\" as a string or an object\n         { command: \"help\", title: \"Help\", iconCssClass: \"icon-help\" },\n         { command: \"help\", title: \"Disabled Command\", disabled: true },\n       ],\n     }\n   }\n ];\n\n\nAvailable cellMenu properties:\n   commandTitle:               Title of the Command section (optional)\n   commandItems:               Array of Command item objects (command/title pair)\n   optionTitle:                Title of the Option section (optional)\n   optionItems:                Array of Options item objects (option/title pair)\n   hideCloseButton:            Hide the Close button on top right (defaults to false)\n   hideCommandSection:         Hide the Commands section even when the commandItems array is filled (defaults to false)\n   hideMenuOnScroll:           Do we want to hide the Cell Menu when a scrolling event occurs (defaults to true)?\n   hideOptionSection:          Hide the Options section even when the optionItems array is filled (defaults to false)\n   maxHeight:                  Maximum height that the drop menu will have, can be a number (250) or text (\"none\")\n   width:                      Width that the drop menu will have, can be a number (250) or text (defaults to \"auto\")\n   autoAdjustDrop:             Auto-align dropup or dropdown menu to the left or right depending on grid viewport available space (defaults to true)\n   autoAdjustDropOffset:       Optionally add an offset to the auto-align of the drop menu (defaults to 0)\n   autoAlignSide:              Auto-align drop menu to the left or right depending on grid viewport available space (defaults to true)\n   autoAlignSideOffset:        Optionally add an offset to the left/right side auto-align (defaults to 0)\n   menuUsabilityOverride:      Callback method that user can override the default behavior of enabling/disabling the menu from being usable (must be combined with a custom formatter)\n   subItemChevronClass:        CSS class that can be added on the right side of a sub-item parent (typically a chevron-right icon)\n   subMenuOpenByEvent:         defaults to \"mouseover\", what event type shoud we use to open sub-menu(s), 2 options are available: \"mouseover\" or \"click\"\n\n\nAvailable menu Command/Option item properties:\n   action:                     Optionally define a callback function that gets executed when item is chosen (and/or use the onCommand event)\n   command:                    A command identifier to be passed to the onCommand event handlers (when using \"commandItems\").\n   option:                     An option to be passed to the onOptionSelected event handlers (when using \"optionItems\").\n   title:                      Menu item text label.\n   divider:                    Boolean which tells if the current item is a divider, not an actual command. You could also pass \"divider\" instead of an object\n   disabled:                   Whether the item/command is disabled.\n   hidden:                     Whether the item/command is hidden.\n   subMenuTitle:               Optional sub-menu title that will shows up when sub-menu commmands/options list is opened\n   subMenuTitleCssClass:       Optional sub-menu title CSS class to use with `subMenuTitle`\n   tooltip:                    Item tooltip.\n   cssClass:                   A CSS class to be added to the menu item container.\n   iconCssClass:               A CSS class to be added to the menu item icon.\n   textCssClass:               A CSS class to be added to the menu item text.\n   iconImage:                  A url to the icon image.\n   itemVisibilityOverride:     Callback method that user can override the default behavior of showing/hiding an item from the list\n   itemUsabilityOverride:      Callback method that user can override the default behavior of enabling/disabling an item from the list\n\n\nThe plugin exposes the following events:\n\n   onAfterMenuShow: Fired after the menu is shown.  You can customize the menu or dismiss it by returning false.\n       Event args:\n           cell:         Cell or column index\n           row:          Row index\n           grid:         Reference to the grid.\n\n   onBeforeMenuShow: Fired before the menu is shown.  You can customize the menu or dismiss it by returning false.\n       Event args:\n           cell:         Cell or column index\n           row:          Row index\n           grid:         Reference to the grid.\n\n   onBeforeMenuClose: Fired when the menu is closing.\n       Event args:\n           cell:         Cell or column index\n           row:          Row index\n           grid:         Reference to the grid.\n           menu:         Menu DOM element\n\n   onCommand: Fired on menu option clicked from the Command items list\n       Event args:\n           cell:         Cell or column index\n           row:          Row index\n           grid:         Reference to the grid.\n           command:      Menu command identified.\n           item:         Menu item selected\n           column:    Cell Column definition\n           dataContext:  Cell Data Context (data object)\n\n   onOptionSelected: Fired on menu option clicked from the Option items list\n       Event args:\n           cell:         Cell or column index\n           row:          Row index\n           grid:         Reference to the grid.\n           option:       Menu option selected.\n           item:         Menu item selected\n           column:    Cell Column definition\n           dataContext:  Cell Data Context (data object)",
            "methods": [
              {
                "name": "init",
                "group": "",
                "signature": "init(grid: SlickGrid)",
                "params": [
                  {
                    "name": "grid",
                    "type": "SlickGrid",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              },
              {
                "name": "setOptions",
                "group": "",
                "signature": "setOptions(newOptions: Partial<CellMenuOption>)",
                "params": [
                  {
                    "name": "newOptions",
                    "type": "Partial<CellMenuOption>",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              },
              {
                "name": "destroy",
                "group": "",
                "signature": "destroy()",
                "params": [],
                "returns": "",
                "description": ""
              },
              {
                "name": "closeMenu",
                "group": "",
                "signature": "closeMenu(e?: DOMMouseOrTouchEvent<HTMLButtonElement | HTMLDivElement> | SlickEventData_, args?: MenuFromCellCallbackArgs)",
                "params": [
                  {
                    "name": "e",
                    "type": "DOMMouseOrTouchEvent<HTMLButtonElement | HTMLDivElement> | SlickEventData_",
                    "optional": true,
                    "description": ""
                  },
                  {
                    "name": "args",
                    "type": "MenuFromCellCallbackArgs",
                    "optional": true,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": "Close and destroy Cell Menu"
              },
              {
                "name": "destroyAllMenus",
                "group": "",
                "signature": "destroyAllMenus()",
                "params": [],
                "returns": "",
                "description": "Destroy all parent menus and any sub-menus"
              },
              {
                "name": "destroySubMenus",
                "group": "",
                "signature": "destroySubMenus()",
                "params": [],
                "returns": "",
                "description": "Close and destroy all previously opened sub-menus"
              },
              {
                "name": "repositionMenu",
                "group": "",
                "signature": "repositionMenu(e: DOMMouseOrTouchEvent<HTMLDivElement>, menuElm: HTMLElement)",
                "params": [
                  {
                    "name": "e",
                    "type": "DOMMouseOrTouchEvent<HTMLDivElement>",
                    "optional": false,
                    "description": ""
                  },
                  {
                    "name": "menuElm",
                    "type": "HTMLElement",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": "Reposition the menu drop (up/down) and the side (left/right)"
              }
            ],
            "events": [
              {
                "name": "onAfterMenuShow",
                "payload": "MenuFromCellCallbackArgs",
                "args": {
                  "typeName": "MenuFromCellCallbackArgs",
                  "fields": [
                    {
                      "name": "cell",
                      "type": "number",
                      "optional": false
                    },
                    {
                      "name": "row",
                      "type": "number",
                      "optional": false
                    },
                    {
                      "name": "grid",
                      "type": "SlickGrid",
                      "optional": false
                    }
                  ]
                },
                "description": ""
              },
              {
                "name": "onBeforeMenuShow",
                "payload": "MenuFromCellCallbackArgs",
                "args": {
                  "typeName": "MenuFromCellCallbackArgs",
                  "fields": [
                    {
                      "name": "cell",
                      "type": "number",
                      "optional": false
                    },
                    {
                      "name": "row",
                      "type": "number",
                      "optional": false
                    },
                    {
                      "name": "grid",
                      "type": "SlickGrid",
                      "optional": false
                    }
                  ]
                },
                "description": ""
              },
              {
                "name": "onBeforeMenuClose",
                "payload": "MenuFromCellCallbackArgs",
                "args": {
                  "typeName": "MenuFromCellCallbackArgs",
                  "fields": [
                    {
                      "name": "cell",
                      "type": "number",
                      "optional": false
                    },
                    {
                      "name": "row",
                      "type": "number",
                      "optional": false
                    },
                    {
                      "name": "grid",
                      "type": "SlickGrid",
                      "optional": false
                    }
                  ]
                },
                "description": ""
              },
              {
                "name": "onCommand",
                "payload": "MenuCommandItemCallbackArgs",
                "args": {
                  "typeName": "MenuCommandItemCallbackArgs",
                  "fields": [
                    {
                      "name": "cell",
                      "type": "number",
                      "optional": true
                    },
                    {
                      "name": "row",
                      "type": "number",
                      "optional": true
                    },
                    {
                      "name": "grid",
                      "type": "SlickGrid",
                      "optional": false
                    },
                    {
                      "name": "column",
                      "type": "Column<T>",
                      "optional": false
                    },
                    {
                      "name": "dataContext",
                      "type": "T",
                      "optional": true
                    },
                    {
                      "name": "command",
                      "type": "string",
                      "optional": false
                    },
                    {
                      "name": "item",
                      "type": "MenuCommandItem",
                      "optional": false
                    },
                    {
                      "name": "value",
                      "type": "any",
                      "optional": true
                    }
                  ]
                },
                "description": ""
              },
              {
                "name": "onOptionSelected",
                "payload": "MenuOptionItemCallbackArgs",
                "args": {
                  "typeName": "MenuOptionItemCallbackArgs",
                  "fields": [
                    {
                      "name": "cell",
                      "type": "number",
                      "optional": true
                    },
                    {
                      "name": "row",
                      "type": "number",
                      "optional": true
                    },
                    {
                      "name": "grid",
                      "type": "SlickGrid",
                      "optional": false
                    },
                    {
                      "name": "column",
                      "type": "Column<T>",
                      "optional": false
                    },
                    {
                      "name": "dataContext",
                      "type": "T",
                      "optional": true
                    },
                    {
                      "name": "option",
                      "type": "string",
                      "optional": false
                    },
                    {
                      "name": "item",
                      "type": "MenuOptionItem",
                      "optional": false
                    },
                    {
                      "name": "value",
                      "type": "any",
                      "optional": true
                    }
                  ]
                },
                "description": ""
              }
            ]
          }
        ],
        "interfaces": []
      },
      {
        "file": "plugins/slick.cellrangedecorator.ts",
        "classes": [
          {
            "name": "SlickCellRangeDecorator",
            "description": "Displays an overlay on top of a given cell range.\r\n\r\nTODO:\r\nCurrently, it blocks mouse events to DOM nodes behind it.\r\nUse FF and WebKit-specific \"pointer-events\" CSS style, or some kind of event forwarding.\r\nCould also construct the borders separately using 4 individual DIVs.",
            "methods": [
              {
                "name": "destroy",
                "group": "",
                "signature": "destroy()",
                "params": [],
                "returns": "",
                "description": ""
              },
              {
                "name": "getSelectionCss",
                "group": "",
                "signature": "getSelectionCss()",
                "params": [],
                "returns": "",
                "description": ""
              },
              {
                "name": "setSelectionCss",
                "group": "",
                "signature": "setSelectionCss(cssProps: CSSStyleDeclaration)",
                "params": [
                  {
                    "name": "cssProps",
                    "type": "CSSStyleDeclaration",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              },
              {
                "name": "init",
                "group": "",
                "signature": "init()",
                "params": [],
                "returns": "",
                "description": ""
              },
              {
                "name": "hide",
                "group": "",
                "signature": "hide()",
                "params": [],
                "returns": "",
                "description": ""
              },
              {
                "name": "show",
                "group": "",
                "signature": "show(range: SlickRange, isCopyTo?: boolean)",
                "params": [
                  {
                    "name": "range",
                    "type": "SlickRange",
                    "optional": false,
                    "description": ""
                  },
                  {
                    "name": "isCopyTo",
                    "type": "boolean",
                    "optional": true,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              }
            ],
            "events": []
          }
        ],
        "interfaces": []
      },
      {
        "file": "plugins/slick.cellrangeselector.ts",
        "classes": [
          {
            "name": "SlickCellRangeSelector",
            "description": "",
            "methods": [
              {
                "name": "init",
                "group": "",
                "signature": "init(grid: SlickGrid)",
                "params": [
                  {
                    "name": "grid",
                    "type": "SlickGrid",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              },
              {
                "name": "destroy",
                "group": "",
                "signature": "destroy()",
                "params": [],
                "returns": "",
                "description": ""
              },
              {
                "name": "getCellDecorator",
                "group": "",
                "signature": "getCellDecorator()",
                "params": [],
                "returns": "",
                "description": ""
              },
              {
                "name": "getSelectionMode",
                "group": "",
                "signature": "getSelectionMode()",
                "params": [],
                "returns": "",
                "description": ""
              },
              {
                "name": "setSelectionMode",
                "group": "",
                "signature": "setSelectionMode(mode: string)",
                "params": [
                  {
                    "name": "mode",
                    "type": "string",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              },
              {
                "name": "getCurrentRange",
                "group": "",
                "signature": "getCurrentRange()",
                "params": [],
                "returns": "",
                "description": ""
              },
              {
                "name": "getPreviousRange",
                "group": "",
                "signature": "getPreviousRange()",
                "params": [],
                "returns": "",
                "description": ""
              }
            ],
            "events": [
              {
                "name": "onBeforeCellRangeSelected",
                "payload": "{ row: number; cell: number; }",
                "args": {
                  "typeName": "{ row: number; cell: number; }",
                  "fields": [
                    {
                      "name": "row",
                      "type": "number",
                      "optional": false
                    },
                    {
                      "name": "cell",
                      "type": "number",
                      "optional": false
                    }
                  ]
                },
                "description": ""
              },
              {
                "name": "onCellRangeSelected",
                "payload": "{ range: SlickRange_; selectionMode: string; allowAutoEdit: boolean; addToSelection?: boolean; }",
                "args": {
                  "typeName": "{ range: SlickRange_; selectionMode: string; allowAutoEdit: boolean; addToSelection?: boolean; }",
                  "fields": [
                    {
                      "name": "range",
                      "type": "SlickRange_",
                      "optional": false
                    },
                    {
                      "name": "selectionMode",
                      "type": "string",
                      "optional": false
                    },
                    {
                      "name": "allowAutoEdit",
                      "type": "boolean",
                      "optional": false
                    },
                    {
                      "name": "addToSelection",
                      "type": "boolean",
                      "optional": true
                    }
                  ]
                },
                "description": ""
              },
              {
                "name": "onCellRangeSelecting",
                "payload": "{ range: SlickRange_; selectionMode: string; allowAutoEdit: boolean; addToSelection?: boolean; }",
                "args": {
                  "typeName": "{ range: SlickRange_; selectionMode: string; allowAutoEdit: boolean; addToSelection?: boolean; }",
                  "fields": [
                    {
                      "name": "range",
                      "type": "SlickRange_",
                      "optional": false
                    },
                    {
                      "name": "selectionMode",
                      "type": "string",
                      "optional": false
                    },
                    {
                      "name": "allowAutoEdit",
                      "type": "boolean",
                      "optional": false
                    },
                    {
                      "name": "addToSelection",
                      "type": "boolean",
                      "optional": true
                    }
                  ]
                },
                "description": ""
              }
            ]
          }
        ],
        "interfaces": []
      },
      {
        "file": "plugins/slick.cellselectionmodel.ts",
        "classes": [
          {
            "name": "SlickCellSelectionModel",
            "description": "",
            "methods": [
              {
                "name": "init",
                "group": "",
                "signature": "init(grid: SlickGrid)",
                "params": [
                  {
                    "name": "grid",
                    "type": "SlickGrid",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              },
              {
                "name": "destroy",
                "group": "",
                "signature": "destroy()",
                "params": [],
                "returns": "",
                "description": ""
              },
              {
                "name": "getOptions",
                "group": "",
                "signature": "getOptions(): CellSelectionModelOption | undefined",
                "params": [],
                "returns": "CellSelectionModelOption | undefined",
                "description": ""
              },
              {
                "name": "setOptions",
                "group": "",
                "signature": "setOptions(options: Partial<CellSelectionModelOption>)",
                "params": [
                  {
                    "name": "options",
                    "type": "Partial<CellSelectionModelOption>",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              },
              {
                "name": "resetPageRowCount",
                "group": "",
                "signature": "resetPageRowCount()",
                "params": [],
                "returns": "",
                "description": "Provide a way to force a recalculation of page row count (for example on grid resize)"
              },
              {
                "name": "setSelectedRanges",
                "group": "",
                "signature": "setSelectedRanges(ranges: SlickRange_[], caller?, selectionMode?)",
                "params": [
                  {
                    "name": "ranges",
                    "type": "SlickRange_[]",
                    "optional": false,
                    "description": ""
                  },
                  {
                    "name": "caller",
                    "type": "",
                    "optional": true,
                    "description": ""
                  },
                  {
                    "name": "selectionMode",
                    "type": "",
                    "optional": true,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              },
              {
                "name": "getSelectedRanges",
                "group": "",
                "signature": "getSelectedRanges()",
                "params": [],
                "returns": "",
                "description": ""
              },
              {
                "name": "refreshSelections",
                "group": "",
                "signature": "refreshSelections()",
                "params": [],
                "returns": "",
                "description": ""
              }
            ],
            "events": [
              {
                "name": "onSelectedRangesChanged",
                "payload": "SlickRange_[]",
                "args": {
                  "typeName": "SlickRange_[]",
                  "unresolved": true
                },
                "description": ""
              }
            ]
          }
        ],
        "interfaces": [
          {
            "name": "CellSelectionModelOption",
            "description": "",
            "properties": [
              {
                "name": "selectActiveCell",
                "type": "boolean",
                "optional": false,
                "description": ""
              },
              {
                "name": "cellRangeSelector",
                "type": "SlickCellRangeSelector_",
                "optional": true,
                "description": ""
              }
            ]
          }
        ]
      },
      {
        "file": "plugins/slick.checkboxselectcolumn.ts",
        "classes": [
          {
            "name": "SlickCheckboxSelectColumn",
            "description": "",
            "methods": [
              {
                "name": "init",
                "group": "",
                "signature": "init(grid: SlickGrid)",
                "params": [
                  {
                    "name": "grid",
                    "type": "SlickGrid",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              },
              {
                "name": "destroy",
                "group": "",
                "signature": "destroy()",
                "params": [],
                "returns": "",
                "description": ""
              },
              {
                "name": "getOptions",
                "group": "",
                "signature": "getOptions()",
                "params": [],
                "returns": "",
                "description": ""
              },
              {
                "name": "setOptions",
                "group": "",
                "signature": "setOptions(options: Partial<CheckboxSelectorOption>)",
                "params": [
                  {
                    "name": "options",
                    "type": "Partial<CheckboxSelectorOption>",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              },
              {
                "name": "selectRows",
                "group": "",
                "signature": "selectRows(rowArray: number[])",
                "params": [
                  {
                    "name": "rowArray",
                    "type": "number[]",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              },
              {
                "name": "deSelectRows",
                "group": "",
                "signature": "deSelectRows(rowArray: number[])",
                "params": [
                  {
                    "name": "rowArray",
                    "type": "number[]",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              },
              {
                "name": "createCheckboxElement",
                "group": "",
                "signature": "createCheckboxElement(inputId: string, checked?)",
                "params": [
                  {
                    "name": "inputId",
                    "type": "string",
                    "optional": false,
                    "description": "- id to link the label"
                  },
                  {
                    "name": "checked",
                    "type": "",
                    "optional": true,
                    "description": "- is the input checkbox checked? (defaults to false)"
                  }
                ],
                "returns": "",
                "description": "use a DocumentFragment to return a fragment including an <input> then a <label> as siblings,\r\nthe label is using `for` to link it to the input `id`"
              },
              {
                "name": "getColumnDefinition",
                "group": "",
                "signature": "getColumnDefinition()",
                "params": [],
                "returns": "",
                "description": ""
              },
              {
                "name": "selectableOverride",
                "group": "",
                "signature": "selectableOverride(overrideFn: SelectableOverrideCallback<T>)",
                "params": [
                  {
                    "name": "overrideFn",
                    "type": "SelectableOverrideCallback<T>",
                    "optional": false,
                    "description": ": override function callback"
                  }
                ],
                "returns": "",
                "description": "Method that user can pass to override the default behavior or making every row a selectable row.\r\nIn order word, user can choose which rows to be selectable or not by providing his own logic."
              }
            ],
            "events": []
          }
        ],
        "interfaces": []
      },
      {
        "file": "plugins/slick.contextmenu.ts",
        "classes": [
          {
            "name": "SlickContextMenu",
            "description": "A plugin to add Context Menu (mouse right+click), it subscribes to the cell \"onContextMenu\" event.\nThe \"contextMenu\" is defined in the Grid Options object\nYou can use it to change a data property (only 1) through a list of Options AND/OR through a list of Commands.\nA good example of a Command would be an Export to CSV, that can be run from anywhere in the grid by doing a mouse right+click\n\nNote:\n  There is only 1 list of Options, so typically that would be use for 1 column\n  if you plan to use different Options for different columns, then the CellMenu plugin might be better suited.\n\nUSAGE:\n\nAdd the slick.contextmenu.(js|css) files and register it with the grid.\n\nTo specify a menu in a column header, extend the column definition like so:\nvar contextMenuPlugin = new Slick.Plugins.ContextMenu(columns, grid, options);\n\nAvailable grid options, by defining a contextMenu object:\n\n var options = {\n   enableCellNavigation: true,\n   contextMenu: {\n     optionTitle: 'Change Priority',\n     optionShownOverColumnIds: [\"priority\"],\n     optionItems: [\n       { option: 0, title: 'none', cssClass: 'italic' },\n       { divider: true },\n       \"divider\" // just the string is also accepted\n       { option: 1, iconCssClass: 'fa fa-fire grey', title: 'Low' },\n       { option: 3, iconCssClass: 'fa fa-fire red', title: 'High' },\n       { option: 2, iconCssClass: 'fa fa-fire orange', title: 'Medium' },\n       { option: 4, iconCssClass: 'fa fa-fire', title: 'Extreme', disabled: true },\n     ],\n     commandTitle: 'Commands',\n     commandShownOverColumnIds: [\"title\", \"complete\", \"start\", \"finish\", \"effortDriven\"],\n     commandItems: [\n       { command: 'export-excel', title: 'Export to CSV', iconCssClass: 'fa fa-file-excel-o', cssClass: '' },\n       { command: 'delete-row', title: 'Delete Row', cssClass: 'bold', textCssClass: 'red' },\n       { command: 'help', title: 'Help', iconCssClass: 'fa fa-question-circle',},\n       { divider: true },\n     ],\n   }\n };\n\n\nAvailable contextMenu properties:\n   commandTitle:               Title of the Command section (optional)\n   commandItems:               Array of Command item objects (command/title pair)\n   commandShownOverColumnIds:  Define which column to show the Commands list. If not defined (defaults), the menu will be shown over all columns\n   optionTitle:                Title of the Option section (optional)\n   optionItems:                Array of Options item objects (option/title pair)\n   optionShownOverColumnIds:   Define which column to show the Options list. If not defined (defaults), the menu will be shown over all columns\n   hideCloseButton:            Hide the Close button on top right (defaults to false)\n   hideCommandSection:         Hide the Commands section even when the commandItems array is filled (defaults to false)\n   hideMenuOnScroll:           Do we want to hide the Cell Menu when a scrolling event occurs (defaults to false)?\n   hideOptionSection:          Hide the Options section even when the optionItems array is filled (defaults to false)\n   maxHeight:                  Maximum height that the drop menu will have, can be a number (250) or text (\"none\")\n   width:                      Width that the drop menu will have, can be a number (250) or text (defaults to \"auto\")\n   autoAdjustDrop:             Auto-align dropup or dropdown menu to the left or right depending on grid viewport available space (defaults to true)\n   autoAdjustDropOffset:       Optionally add an offset to the auto-align of the drop menu (defaults to -4)\n   autoAlignSide:              Auto-align drop menu to the left or right depending on grid viewport available space (defaults to true)\n   autoAlignSideOffset:        Optionally add an offset to the left/right side auto-align (defaults to 0)\n   menuUsabilityOverride:      Callback method that user can override the default behavior of enabling/disabling the menu from being usable (must be combined with a custom formatter)\n   subItemChevronClass:        CSS class that can be added on the right side of a sub-item parent (typically a chevron-right icon)\n   subMenuOpenByEvent:         defaults to \"mouseover\", what event type shoud we use to open sub-menu(s), 2 options are available: \"mouseover\" or \"click\"\n\n\nAvailable menu Command/Option item properties:\n   action:                     Optionally define a callback function that gets executed when item is chosen (and/or use the onCommand event)\n   command:                    A command identifier to be passed to the onCommand event handlers (when using \"commandItems\").\n   option:                     An option to be passed to the onOptionSelected event handlers (when using \"optionItems\").\n   title:                      Menu item text.\n   divider:                    Boolean which tell if the current item is a divider, not an actual command. You could also pass \"divider\" instead of an object\n   disabled:                   Whether the item/command is disabled.\n   hidden:                     Whether the item/command is hidden.\n   subMenuTitle:               Optional sub-menu title that will shows up when sub-menu commmands/options list is opened\n   subMenuTitleCssClass:       Optional sub-menu title CSS class to use with `subMenuTitle`\n   tooltip:                    Item tooltip.\n   cssClass:                   A CSS class to be added to the menu item container.\n   iconCssClass:               A CSS class to be added to the menu item icon.\n   textCssClass:               A CSS class to be added to the menu item text.\n   iconImage:                  A url to the icon image.\n   itemVisibilityOverride:     Callback method that user can override the default behavior of showing/hiding an item from the list\n   itemUsabilityOverride:      Callback method that user can override the default behavior of enabling/disabling an item from the list\n\nThe plugin exposes the following events:\n\n   onAfterMenuShow: Fired after the menu is shown.  You can customize the menu or dismiss it by returning false.\n       Event args:\n           cell:         Cell or column index\n           row:          Row index\n           grid:         Reference to the grid.\n\n   onBeforeMenuShow: Fired before the menu is shown.  You can customize the menu or dismiss it by returning false.\n       Event args:\n           cell:         Cell or column index\n           row:          Row index\n           grid:         Reference to the grid.\n\n   onBeforeMenuClose: Fired when the menu is closing.\n       Event args:\n           cell:         Cell or column index\n           row:          Row index\n           grid:         Reference to the grid.\n           menu:         Menu DOM element\n\n   onCommand: Fired on menu option clicked from the Command items list\n       Event args:\n           cell:         Cell or column index\n           row:          Row index\n           grid:         Reference to the grid.\n           command:      Menu command identified.\n           item:         Menu item selected\n           column:    Cell Column definition\n           dataContext:  Cell Data Context (data object)\n           value:        Value of the cell we triggered the context menu from\n\n   onOptionSelected: Fired on menu option clicked from the Option items list\n       Event args:\n           cell:         Cell or column index\n           row:          Row index\n           grid:         Reference to the grid.\n           option:       Menu option selected.\n           item:         Menu item selected\n           column:    Cell Column definition\n           dataContext:  Cell Data Context (data object)",
            "methods": [
              {
                "name": "init",
                "group": "",
                "signature": "init(grid: SlickGrid)",
                "params": [
                  {
                    "name": "grid",
                    "type": "SlickGrid",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              },
              {
                "name": "setOptions",
                "group": "",
                "signature": "setOptions(newOptions: Partial<ContextMenuOption>)",
                "params": [
                  {
                    "name": "newOptions",
                    "type": "Partial<ContextMenuOption>",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              },
              {
                "name": "destroy",
                "group": "",
                "signature": "destroy()",
                "params": [],
                "returns": "",
                "description": ""
              },
              {
                "name": "destroyMenu",
                "group": "",
                "signature": "destroyMenu(e?: Event | SlickEventData_, args?: { cell: number; row: number; })",
                "params": [
                  {
                    "name": "e",
                    "type": "Event | SlickEventData_",
                    "optional": true,
                    "description": ""
                  },
                  {
                    "name": "args",
                    "type": "{ cell: number; row: number; }",
                    "optional": true,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              },
              {
                "name": "destroyAllMenus",
                "group": "",
                "signature": "destroyAllMenus()",
                "params": [],
                "returns": "",
                "description": "Destroy all parent menus and any sub-menus"
              },
              {
                "name": "destroySubMenus",
                "group": "",
                "signature": "destroySubMenus()",
                "params": [],
                "returns": "",
                "description": "Close and destroy all previously opened sub-menus"
              }
            ],
            "events": [
              {
                "name": "onAfterMenuShow",
                "payload": "MenuFromCellCallbackArgs",
                "args": {
                  "typeName": "MenuFromCellCallbackArgs",
                  "fields": [
                    {
                      "name": "cell",
                      "type": "number",
                      "optional": false
                    },
                    {
                      "name": "row",
                      "type": "number",
                      "optional": false
                    },
                    {
                      "name": "grid",
                      "type": "SlickGrid",
                      "optional": false
                    }
                  ]
                },
                "description": ""
              },
              {
                "name": "onBeforeMenuShow",
                "payload": "MenuFromCellCallbackArgs",
                "args": {
                  "typeName": "MenuFromCellCallbackArgs",
                  "fields": [
                    {
                      "name": "cell",
                      "type": "number",
                      "optional": false
                    },
                    {
                      "name": "row",
                      "type": "number",
                      "optional": false
                    },
                    {
                      "name": "grid",
                      "type": "SlickGrid",
                      "optional": false
                    }
                  ]
                },
                "description": ""
              },
              {
                "name": "onBeforeMenuClose",
                "payload": "MenuFromCellCallbackArgs",
                "args": {
                  "typeName": "MenuFromCellCallbackArgs",
                  "fields": [
                    {
                      "name": "cell",
                      "type": "number",
                      "optional": false
                    },
                    {
                      "name": "row",
                      "type": "number",
                      "optional": false
                    },
                    {
                      "name": "grid",
                      "type": "SlickGrid",
                      "optional": false
                    }
                  ]
                },
                "description": ""
              },
              {
                "name": "onCommand",
                "payload": "MenuCommandItemCallbackArgs",
                "args": {
                  "typeName": "MenuCommandItemCallbackArgs",
                  "fields": [
                    {
                      "name": "cell",
                      "type": "number",
                      "optional": true
                    },
                    {
                      "name": "row",
                      "type": "number",
                      "optional": true
                    },
                    {
                      "name": "grid",
                      "type": "SlickGrid",
                      "optional": false
                    },
                    {
                      "name": "column",
                      "type": "Column<T>",
                      "optional": false
                    },
                    {
                      "name": "dataContext",
                      "type": "T",
                      "optional": true
                    },
                    {
                      "name": "command",
                      "type": "string",
                      "optional": false
                    },
                    {
                      "name": "item",
                      "type": "MenuCommandItem",
                      "optional": false
                    },
                    {
                      "name": "value",
                      "type": "any",
                      "optional": true
                    }
                  ]
                },
                "description": ""
              },
              {
                "name": "onOptionSelected",
                "payload": "MenuOptionItemCallbackArgs",
                "args": {
                  "typeName": "MenuOptionItemCallbackArgs",
                  "fields": [
                    {
                      "name": "cell",
                      "type": "number",
                      "optional": true
                    },
                    {
                      "name": "row",
                      "type": "number",
                      "optional": true
                    },
                    {
                      "name": "grid",
                      "type": "SlickGrid",
                      "optional": false
                    },
                    {
                      "name": "column",
                      "type": "Column<T>",
                      "optional": false
                    },
                    {
                      "name": "dataContext",
                      "type": "T",
                      "optional": true
                    },
                    {
                      "name": "option",
                      "type": "string",
                      "optional": false
                    },
                    {
                      "name": "item",
                      "type": "MenuOptionItem",
                      "optional": false
                    },
                    {
                      "name": "value",
                      "type": "any",
                      "optional": true
                    }
                  ]
                },
                "description": ""
              }
            ]
          }
        ],
        "interfaces": []
      },
      {
        "file": "plugins/slick.crossgridrowmovemanager.ts",
        "classes": [
          {
            "name": "SlickCrossGridRowMoveManager",
            "description": "Row Move Manager options:\n   cssClass:                 A CSS class to be added to the menu item container.\n   columnId:                 Column definition id (defaults to \"_move\")\n   cancelEditOnDrag:         Do we want to cancel any Editing while dragging a row (defaults to false)\n   disableRowSelection:      Do we want to disable the row selection? (defaults to false)\n   hideRowMoveShadow:        Do we want to hide the row move shadow clone? (defaults to true)\n   rowMoveShadowMarginTop:   When row move shadow is shown, optional margin-top (defaults to 0)\n   rowMoveShadowMarginLeft:  When row move shadow is shown, optional margin-left (defaults to 0)\n   rowMoveShadowOpacity:     When row move shadow is shown, what is its opacity? (defaults to 0.95)\n   rowMoveShadowScale:       When row move shadow is shown, what is its size scale? (default to 0.75)\n   singleRowMove:            Do we want a single row move? Setting this to false means that it's a multple row move (defaults to false)\n   width:                    Width of the column\n   usabilityOverride:        Callback method that user can override the default behavior of the row being moveable or not",
            "methods": [
              {
                "name": "init",
                "group": "",
                "signature": "init(grid: SlickGrid)",
                "params": [
                  {
                    "name": "grid",
                    "type": "SlickGrid",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              },
              {
                "name": "destroy",
                "group": "",
                "signature": "destroy()",
                "params": [],
                "returns": "",
                "description": ""
              },
              {
                "name": "setOptions",
                "group": "",
                "signature": "setOptions(newOptions: CrossGridRowMoveManagerOption)",
                "params": [
                  {
                    "name": "newOptions",
                    "type": "CrossGridRowMoveManagerOption",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              },
              {
                "name": "getColumnDefinition",
                "group": "",
                "signature": "getColumnDefinition(): Column",
                "params": [],
                "returns": "Column",
                "description": ""
              },
              {
                "name": "usabilityOverride",
                "group": "",
                "signature": "usabilityOverride(overrideFn: UsabilityOverrideFn)",
                "params": [
                  {
                    "name": "overrideFn",
                    "type": "UsabilityOverrideFn",
                    "optional": false,
                    "description": ": override function callback"
                  }
                ],
                "returns": "",
                "description": "Method that user can pass to override the default behavior or making every row moveable.\nIn order word, user can choose which rows to be an available as moveable (or not) by providing his own logic show/hide icon and usability."
              },
              {
                "name": "isHandlerColumn",
                "group": "",
                "signature": "isHandlerColumn(columnIndex: number | string)",
                "params": [
                  {
                    "name": "columnIndex",
                    "type": "number | string",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              }
            ],
            "events": [
              {
                "name": "onBeforeMoveRows",
                "payload": "{ rows: number[]; insertBefore: number; fromGrid: SlickGrid; toGrid: SlickGrid; }",
                "args": {
                  "typeName": "{ rows: number[]; insertBefore: number; fromGrid: SlickGrid; toGrid: SlickGrid; }",
                  "fields": [
                    {
                      "name": "rows",
                      "type": "number[]",
                      "optional": false
                    },
                    {
                      "name": "insertBefore",
                      "type": "number",
                      "optional": false
                    },
                    {
                      "name": "fromGrid",
                      "type": "SlickGrid",
                      "optional": false
                    },
                    {
                      "name": "toGrid",
                      "type": "SlickGrid",
                      "optional": false
                    }
                  ]
                },
                "description": ""
              },
              {
                "name": "onMoveRows",
                "payload": "{ rows: number[]; insertBefore: number; fromGrid: SlickGrid; toGrid: SlickGrid; }",
                "args": {
                  "typeName": "{ rows: number[]; insertBefore: number; fromGrid: SlickGrid; toGrid: SlickGrid; }",
                  "fields": [
                    {
                      "name": "rows",
                      "type": "number[]",
                      "optional": false
                    },
                    {
                      "name": "insertBefore",
                      "type": "number",
                      "optional": false
                    },
                    {
                      "name": "fromGrid",
                      "type": "SlickGrid",
                      "optional": false
                    },
                    {
                      "name": "toGrid",
                      "type": "SlickGrid",
                      "optional": false
                    }
                  ]
                },
                "description": ""
              }
            ]
          }
        ],
        "interfaces": []
      },
      {
        "file": "plugins/slick.customtooltip.ts",
        "classes": [
          {
            "name": "SlickCustomTooltip",
            "description": "CustomTooltip plugin to show/hide tooltips when columns are too narrow to fit content.",
            "methods": [
              {
                "name": "init",
                "group": "",
                "signature": "init(grid: SlickGrid)",
                "params": [
                  {
                    "name": "grid",
                    "type": "SlickGrid",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": "Initialize plugin."
              },
              {
                "name": "destroy",
                "group": "",
                "signature": "destroy()",
                "params": [],
                "returns": "",
                "description": "Destroy plugin."
              },
              {
                "name": "hideTooltip",
                "group": "",
                "signature": "hideTooltip()",
                "params": [],
                "returns": "",
                "description": "hide (remove) tooltip from the DOM,\r\nwhen using async process, it will also cancel any opened Promise/Observable that might still be opened/pending."
              },
              {
                "name": "setOptions",
                "group": "",
                "signature": "setOptions(newOptions: Partial<CustomTooltipOption>)",
                "params": [
                  {
                    "name": "newOptions",
                    "type": "Partial<CustomTooltipOption>",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              }
            ],
            "events": []
          }
        ],
        "interfaces": []
      },
      {
        "file": "plugins/slick.draggablegrouping.ts",
        "classes": [
          {
            "name": "SlickDraggableGrouping",
            "description": "Draggable Grouping contributed by:  Muthukumar Selvarasu\n muthukumar{dot}se{at}gmail{dot}com\n github.com/muthukumarse/Slickgrid\n\nNOTES:\n    This plugin provides the Draggable Grouping feature which could be located in either the Top-Header or the Pre-Header\nA plugin to add Draggable Grouping feature.\n\nUSAGE:\n\nAdd the plugin .js & .css files and register it with the grid.\n\n\nThe plugin expose the following methods:\n   destroy: used to destroy the plugin\n   setDroppedGroups: provide option to set default grouping on loading\n   clearDroppedGroups: provide option to clear grouping\n   getSetupColumnReorder: its function to setup draggable feature agains Header Column, should be passed on grid option. Also possible to pass custom function\n\n\nThe plugin expose the following event(s):\n   onGroupChanged: pass the grouped columns to who subscribed.",
            "methods": [
              {
                "name": "init",
                "group": "",
                "signature": "init(grid: SlickGrid)",
                "params": [
                  {
                    "name": "grid",
                    "type": "SlickGrid",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": "Initialize plugin."
              },
              {
                "name": "getSetupColumnReorder",
                "group": "",
                "signature": "getSetupColumnReorder(grid: SlickGrid, headers: any, _headerColumnWidthDiff: any, setColumns: (columns: Column[]) => void, setupColumnResize: () => void, _columns: Column[], getColumnIndex: (columnId: string) => number, _uid: string, trigger: (slickEvent: SlickEvent_, data?: any) => void)",
                "params": [
                  {
                    "name": "grid",
                    "type": "SlickGrid",
                    "optional": false,
                    "description": "- slick grid object"
                  },
                  {
                    "name": "headers",
                    "type": "any",
                    "optional": false,
                    "description": "- slick grid column header elements"
                  },
                  {
                    "name": "_headerColumnWidthDiff",
                    "type": "any",
                    "optional": false,
                    "description": "- header column width difference"
                  },
                  {
                    "name": "setColumns",
                    "type": "(columns: Column[]) => void",
                    "optional": false,
                    "description": "- callback to reassign columns"
                  },
                  {
                    "name": "setupColumnResize",
                    "type": "() => void",
                    "optional": false,
                    "description": "- callback to setup the column resize"
                  },
                  {
                    "name": "_columns",
                    "type": "Column[]",
                    "optional": false,
                    "description": ""
                  },
                  {
                    "name": "getColumnIndex",
                    "type": "(columnId: string) => number",
                    "optional": false,
                    "description": "- callback to find index of a column"
                  },
                  {
                    "name": "_uid",
                    "type": "string",
                    "optional": false,
                    "description": ""
                  },
                  {
                    "name": "trigger",
                    "type": "(slickEvent: SlickEvent_, data?: any) => void",
                    "optional": false,
                    "description": "- callback to execute when triggering a column grouping"
                  }
                ],
                "returns": "",
                "description": "Setup the column reordering\nNOTE: this function is a standalone function and is called externally and does not have access to `this` instance"
              },
              {
                "name": "destroy",
                "group": "",
                "signature": "destroy()",
                "params": [],
                "returns": "",
                "description": "Destroy plugin."
              },
              {
                "name": "setDroppedGroups",
                "group": "",
                "signature": "setDroppedGroups(groupingInfo: Array<string | GroupingGetterFunction> | string)",
                "params": [
                  {
                    "name": "groupingInfo",
                    "type": "Array<string | GroupingGetterFunction> | string",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              },
              {
                "name": "clearDroppedGroups",
                "group": "",
                "signature": "clearDroppedGroups()",
                "params": [],
                "returns": "",
                "description": ""
              }
            ],
            "events": [
              {
                "name": "onGroupChanged",
                "payload": "{ caller?: string; groupColumns: Grouping[]; }",
                "args": {
                  "typeName": "{ caller?: string; groupColumns: Grouping[]; }",
                  "fields": [
                    {
                      "name": "caller",
                      "type": "string",
                      "optional": true
                    },
                    {
                      "name": "groupColumns",
                      "type": "Grouping[]",
                      "optional": false
                    }
                  ]
                },
                "description": ""
              }
            ]
          }
        ],
        "interfaces": []
      },
      {
        "file": "plugins/slick.headerbuttons.ts",
        "classes": [
          {
            "name": "SlickHeaderButtons",
            "description": "A plugin to add custom buttons to column headers.\n\nUSAGE:\n\nAdd the plugin .js & .css files and register it with the grid.\n\nTo specify a custom button in a column header, extend the column definition like so:\n\n  let columns = [\n    {\n      id: 'myColumn',\n      name: 'My column',\n\n      // This is the relevant part\n      header: {\n         buttons: [\n             {\n               // button options\n             },\n             {\n               // button options\n             }\n         ]\n      }\n    }\n  ];\n\nAvailable button options:\n   cssClass:     CSS class to add to the button.\n   image:        Relative button image path.\n   disabled:     Whether the item is disabled.\n   tooltip:      Button tooltip.\n   showOnHover:  Only show the button on hover.\n   handler:      Button click handler.\n   command:      A command identifier to be passed to the onCommand event handlers.\n\nAvailable menu item options:\n   action:                   Optionally define a callback function that gets executed when item is chosen (and/or use the onCommand event)\n   command:                  A command identifier to be passed to the onCommand event handlers.\n   cssClass:                 CSS class to add to the button.\n   handler:                  Button click handler.\n   image:                    Relative button image path.\n   showOnHover:              Only show the button on hover.\n   tooltip:                  Button tooltip.\n   itemVisibilityOverride:   Callback method that user can override the default behavior of showing/hiding an item from the list\n   itemUsabilityOverride:    Callback method that user can override the default behavior of enabling/disabling an item from the list\n\nThe plugin exposes the following events:\n   onCommand:    Fired on button click for buttons with 'command' specified.\n       Event args:\n           grid:     Reference to the grid.\n           column:   Column definition.\n           command:  Button command identified.\n           button:   Button options.  Note that you can change the button options in your\n                     event handler, and the column header will be automatically updated to\n                     reflect them.  This is useful if you want to implement something like a\n                     toggle button.",
            "methods": [
              {
                "name": "init",
                "group": "",
                "signature": "init(grid: SlickGrid)",
                "params": [
                  {
                    "name": "grid",
                    "type": "SlickGrid",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              },
              {
                "name": "destroy",
                "group": "",
                "signature": "destroy()",
                "params": [],
                "returns": "",
                "description": ""
              }
            ],
            "events": [
              {
                "name": "onCommand",
                "payload": "HeaderButtonOnCommandArgs",
                "args": {
                  "typeName": "HeaderButtonOnCommandArgs",
                  "fields": [
                    {
                      "name": "grid",
                      "type": "SlickGrid",
                      "optional": false
                    },
                    {
                      "name": "column",
                      "type": "Column",
                      "optional": false
                    },
                    {
                      "name": "command",
                      "type": "string",
                      "optional": false
                    },
                    {
                      "name": "button",
                      "type": "HeaderButtonItem",
                      "optional": false
                    }
                  ]
                },
                "description": ""
              }
            ]
          }
        ],
        "interfaces": []
      },
      {
        "file": "plugins/slick.headermenu.ts",
        "classes": [
          {
            "name": "SlickHeaderMenu",
            "description": "A plugin to add drop-down menus to column headers.\n\nUSAGE:\n\nAdd the plugin .js & .css files and register it with the grid.\n\nTo specify a menu in a column header, extend the column definition like so:\n\n  let columns = [\n    {\n      id: 'myColumn',\n      name: 'My column',\n\n      // This is the relevant part\n      header: {\n         menu: {\n             items: [\n               {\n                 // menu item options\n               },\n               {\n                 // menu item options\n               }\n             ]\n         }\n      }\n    }\n  ];\n\n\nAvailable menu options:\n   autoAlign:              Auto-align drop menu to the left when not enough viewport space to show on the right\n   autoAlignOffset:        When drop menu is aligned to the left, it might not be perfectly aligned with the header menu icon, if that is the case you can add an offset (positive/negative number to move right/left)\n   buttonCssClass:         an extra CSS class to add to the menu button (default 'caret')\n   buttonImage:            a url to the menu button image\n   menuUsabilityOverride:  Callback method that user can override the default behavior of enabling/disabling the menu from being usable (must be combined with a custom formatter)\n   minWidth:               Minimum width that the drop menu will have\n   subItemChevronClass:        CSS class that can be added on the right side of a sub-item parent (typically a chevron-right icon)\n   subMenuOpenByEvent:         defaults to \"mouseover\", what event type shoud we use to open sub-menu(s), 2 options are available: \"mouseover\" or \"click\"\n\n\nAvailable menu item options:\n   action:                   Optionally define a callback function that gets executed when item is chosen (and/or use the onCommand event)\n   title:                    Menu item text.\n   divider:                  Whether the current item is a divider, not an actual command.\n   disabled:                 Whether the item/command is disabled.\n   hidden:                   Whether the item/command is hidden.\n   tooltip:                  Item tooltip.\n   command:                  A command identifier to be passed to the onCommand event handlers.\n   cssClass:                 A CSS class to be added to the menu item container.\n   iconCssClass:             A CSS class to be added to the menu item icon.\n   iconImage:                A url to the icon image.\n   textCssClass:             A CSS class to be added to the menu item text.\n   itemVisibilityOverride:   Callback method that user can override the default behavior of showing/hiding an item from the list\n   itemUsabilityOverride:    Callback method that user can override the default behavior of enabling/disabling an item from the list\n\n\nThe plugin exposes the following events:\n\n   onAfterMenuShow:   Fired after the menu is shown.  You can customize the menu or dismiss it by returning false.\n       Event args:\n           grid:     Reference to the grid.\n           column:   Column definition.\n           menu:     Menu options.  Note that you can change the menu items here.\n\n   onBeforeMenuShow:   Fired before the menu is shown.  You can customize the menu or dismiss it by returning false.\n       Event args:\n           grid:     Reference to the grid.\n           column:   Column definition.\n           menu:     Menu options.  Note that you can change the menu items here.\n\n   onCommand:    Fired on menu item click for buttons with 'command' specified.\n       Event args:\n           grid:     Reference to the grid.\n           column:   Column definition.\n           command:  Button command identified.\n           button:   Button options.  Note that you can change the button options in your\n                     event handler, and the column header will be automatically updated to\n                     reflect them.  This is useful if you want to implement something like a\n                     toggle button.",
            "methods": [
              {
                "name": "init",
                "group": "",
                "signature": "init(grid: SlickGrid)",
                "params": [
                  {
                    "name": "grid",
                    "type": "SlickGrid",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              },
              {
                "name": "setOptions",
                "group": "",
                "signature": "setOptions(newOptions: Partial<HeaderMenuOption>)",
                "params": [
                  {
                    "name": "newOptions",
                    "type": "Partial<HeaderMenuOption>",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              },
              {
                "name": "destroy",
                "group": "",
                "signature": "destroy()",
                "params": [],
                "returns": "",
                "description": ""
              },
              {
                "name": "destroyAllMenus",
                "group": "",
                "signature": "destroyAllMenus()",
                "params": [],
                "returns": "",
                "description": ""
              },
              {
                "name": "destroySubMenus",
                "group": "",
                "signature": "destroySubMenus()",
                "params": [],
                "returns": "",
                "description": "Close and destroy all previously opened sub-menus"
              },
              {
                "name": "hideMenu",
                "group": "",
                "signature": "hideMenu()",
                "params": [],
                "returns": "",
                "description": ""
              }
            ],
            "events": [
              {
                "name": "onAfterMenuShow",
                "payload": "HeaderMenuCommandItemCallbackArgs",
                "args": {
                  "typeName": "HeaderMenuCommandItemCallbackArgs",
                  "fields": [
                    {
                      "name": "column",
                      "type": "Column",
                      "optional": false
                    },
                    {
                      "name": "grid",
                      "type": "SlickGrid",
                      "optional": false
                    },
                    {
                      "name": "menu",
                      "type": "Array<HeaderMenuCommandItem | 'divider'>",
                      "optional": false
                    }
                  ]
                },
                "description": ""
              },
              {
                "name": "onBeforeMenuShow",
                "payload": "HeaderMenuCommandItemCallbackArgs",
                "args": {
                  "typeName": "HeaderMenuCommandItemCallbackArgs",
                  "fields": [
                    {
                      "name": "column",
                      "type": "Column",
                      "optional": false
                    },
                    {
                      "name": "grid",
                      "type": "SlickGrid",
                      "optional": false
                    },
                    {
                      "name": "menu",
                      "type": "Array<HeaderMenuCommandItem | 'divider'>",
                      "optional": false
                    }
                  ]
                },
                "description": ""
              },
              {
                "name": "onCommand",
                "payload": "MenuCommandItemCallbackArgs",
                "args": {
                  "typeName": "MenuCommandItemCallbackArgs",
                  "fields": [
                    {
                      "name": "cell",
                      "type": "number",
                      "optional": true
                    },
                    {
                      "name": "row",
                      "type": "number",
                      "optional": true
                    },
                    {
                      "name": "grid",
                      "type": "SlickGrid",
                      "optional": false
                    },
                    {
                      "name": "column",
                      "type": "Column<T>",
                      "optional": false
                    },
                    {
                      "name": "dataContext",
                      "type": "T",
                      "optional": true
                    },
                    {
                      "name": "command",
                      "type": "string",
                      "optional": false
                    },
                    {
                      "name": "item",
                      "type": "MenuCommandItem",
                      "optional": false
                    },
                    {
                      "name": "value",
                      "type": "any",
                      "optional": true
                    }
                  ]
                },
                "description": ""
              }
            ]
          }
        ],
        "interfaces": []
      },
      {
        "file": "plugins/slick.hybridselectionmodel.ts",
        "classes": [
          {
            "name": "SlickHybridSelectionModel",
            "description": "",
            "methods": [
              {
                "name": "init",
                "group": "",
                "signature": "init(grid: SlickGrid)",
                "params": [
                  {
                    "name": "grid",
                    "type": "SlickGrid",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              },
              {
                "name": "destroy",
                "group": "",
                "signature": "destroy()",
                "params": [],
                "returns": "",
                "description": ""
              },
              {
                "name": "getOptions",
                "group": "",
                "signature": "getOptions(): HybridSelectionModelOption",
                "params": [],
                "returns": "HybridSelectionModelOption",
                "description": ""
              },
              {
                "name": "setOptions",
                "group": "",
                "signature": "setOptions(options: Partial<HybridSelectionModelOption>)",
                "params": [
                  {
                    "name": "options",
                    "type": "Partial<HybridSelectionModelOption>",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              },
              {
                "name": "getCellRangeSelector",
                "group": "",
                "signature": "getCellRangeSelector(): SlickCellRangeSelector_ | undefined",
                "params": [],
                "returns": "SlickCellRangeSelector_ | undefined",
                "description": ""
              },
              {
                "name": "getSelectedRanges",
                "group": "",
                "signature": "getSelectedRanges(): SlickRange_[]",
                "params": [],
                "returns": "SlickRange_[]",
                "description": ""
              },
              {
                "name": "getSelectedRows",
                "group": "",
                "signature": "getSelectedRows(): number[]",
                "params": [],
                "returns": "number[]",
                "description": ""
              },
              {
                "name": "setSelectedRows",
                "group": "",
                "signature": "setSelectedRows(rows: number[]): void",
                "params": [
                  {
                    "name": "rows",
                    "type": "number[]",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "void",
                "description": ""
              },
              {
                "name": "resetPageRowCount",
                "group": "",
                "signature": "resetPageRowCount()",
                "params": [],
                "returns": "",
                "description": "Provide a way to force a recalculation of page row count (for example on grid resize)"
              },
              {
                "name": "setSelectedRanges",
                "group": "",
                "signature": "setSelectedRanges(ranges: SlickRange_[], caller?, selectionMode?)",
                "params": [
                  {
                    "name": "ranges",
                    "type": "SlickRange_[]",
                    "optional": false,
                    "description": ""
                  },
                  {
                    "name": "caller",
                    "type": "",
                    "optional": true,
                    "description": ""
                  },
                  {
                    "name": "selectionMode",
                    "type": "",
                    "optional": true,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              },
              {
                "name": "currentSelectionModeIsRow",
                "group": "",
                "signature": "currentSelectionModeIsRow()",
                "params": [],
                "returns": "",
                "description": ""
              },
              {
                "name": "refreshSelections",
                "group": "",
                "signature": "refreshSelections()",
                "params": [],
                "returns": "",
                "description": ""
              },
              {
                "name": "getRowMoveManagerPlugin",
                "group": "",
                "signature": "getRowMoveManagerPlugin(): SlickRowMoveManager_ | SlickCrossGridRowMoveManager_ | undefined",
                "params": [],
                "returns": "SlickRowMoveManager_ | SlickCrossGridRowMoveManager_ | undefined",
                "description": ""
              },
              {
                "name": "rowSelectionModelIsActive",
                "group": "",
                "signature": "rowSelectionModelIsActive(data: OnActiveCellChangedEventArgs): boolean",
                "params": [
                  {
                    "name": "data",
                    "type": "OnActiveCellChangedEventArgs",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "boolean",
                "description": ""
              }
            ],
            "events": [
              {
                "name": "onSelectedRangesChanged",
                "payload": "SlickRange_[]",
                "args": {
                  "typeName": "SlickRange_[]",
                  "unresolved": true
                },
                "description": ""
              }
            ]
          }
        ],
        "interfaces": []
      },
      {
        "file": "plugins/slick.resizer.ts",
        "classes": [
          {
            "name": "SlickResizer",
            "description": "A Resizer plugin that can be used to auto-resize a grid and/or resize with fixed dimensions.\nWhen fixed height is defined, it will auto-resize only the width and vice versa with the width defined.\nYou can also choose to use the flag \"enableAutoSizeColumns\" if you want to the plugin to\nautomatically call the grid \"autosizeColumns()\" method after each resize.\n\nUSAGE:\n\nAdd the \"slick.resizer.js\" file and register it with the grid.\n\nYou can specify certain options as arguments when instantiating the plugin like so:\nvar resizer = new Slick.Plugins.Resizer({\n  container: '#gridContainer',\n  rightPadding: 15,\n  bottomPadding: 20,\n  minHeight: 180,\n  minWidth: 300,\n});\ngrid.registerPlugin(resizer);\n\n\nThe plugin exposes the following events:\n\n   onGridAfterResize:  Fired after the grid got resized.  You can customize the menu or dismiss it by returning false.\n       Event args:\n           grid:       Reference to the grid.\n           dimensions: Resized grid dimensions used\n\n   onGridBeforeResize:   Fired before the grid gets resized.  You can customize the menu or dismiss it by returning false.\n       Event args:\n           grid:     Reference to the grid.",
            "methods": [
              {
                "name": "setOptions",
                "group": "",
                "signature": "setOptions(newOptions: Partial<ResizerOption>)",
                "params": [
                  {
                    "name": "newOptions",
                    "type": "Partial<ResizerOption>",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              },
              {
                "name": "init",
                "group": "",
                "signature": "init(grid: SlickGrid)",
                "params": [
                  {
                    "name": "grid",
                    "type": "SlickGrid",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              },
              {
                "name": "bindAutoResizeDataGrid",
                "group": "",
                "signature": "bindAutoResizeDataGrid(newSizes?: GridSize)",
                "params": [
                  {
                    "name": "newSizes",
                    "type": "GridSize",
                    "optional": true,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": "Bind an auto resize trigger on the datagrid, if that is enable then it will resize itself to the available space\nOptions: we could also provide a % factor to resize on each height/width independently"
              },
              {
                "name": "calculateGridNewDimensions",
                "group": "",
                "signature": "calculateGridNewDimensions(): GridSize | null",
                "params": [],
                "returns": "GridSize | null",
                "description": "Calculate the datagrid new height/width from the available space, also consider that a % factor might be applied to calculation"
              },
              {
                "name": "destroy",
                "group": "",
                "signature": "destroy()",
                "params": [],
                "returns": "",
                "description": "Destroy function when element is destroyed"
              },
              {
                "name": "getLastResizeDimensions",
                "group": "",
                "signature": "getLastResizeDimensions()",
                "params": [],
                "returns": "",
                "description": "Return the last resize dimensions used by the service"
              },
              {
                "name": "pauseResizer",
                "group": "",
                "signature": "pauseResizer(isResizePaused: boolean)",
                "params": [
                  {
                    "name": "isResizePaused",
                    "type": "boolean",
                    "optional": false,
                    "description": "are we pausing the resizer?"
                  }
                ],
                "returns": "",
                "description": "Provide the possibility to pause the resizer for some time, until user decides to re-enabled it later if he wish to."
              },
              {
                "name": "resizeGrid",
                "group": "",
                "signature": "resizeGrid(delay?: number, newSizes?: GridSize, event?: Event | null): Promise<GridSize | undefined> | void",
                "params": [
                  {
                    "name": "delay",
                    "type": "number",
                    "optional": true,
                    "description": "to wait before resizing, defaults to 0 (in milliseconds)"
                  },
                  {
                    "name": "newSizes",
                    "type": "GridSize",
                    "optional": true,
                    "description": "can optionally be passed (height: number, width: number)"
                  },
                  {
                    "name": "event",
                    "type": "Event | null",
                    "optional": true,
                    "description": "that triggered the resize, defaults to null"
                  }
                ],
                "returns": "Promise<GridSize | undefined> | void",
                "description": "Resize the datagrid to fit the browser height & width."
              }
            ],
            "events": [
              {
                "name": "onGridAfterResize",
                "payload": "{ grid: SlickGrid; dimensions: GridSize; }",
                "args": {
                  "typeName": "{ grid: SlickGrid; dimensions: GridSize; }",
                  "fields": [
                    {
                      "name": "grid",
                      "type": "SlickGrid",
                      "optional": false
                    },
                    {
                      "name": "dimensions",
                      "type": "GridSize",
                      "optional": false
                    }
                  ]
                },
                "description": ""
              },
              {
                "name": "onGridBeforeResize",
                "payload": "{ grid: SlickGrid; }",
                "args": {
                  "typeName": "{ grid: SlickGrid; }",
                  "fields": [
                    {
                      "name": "grid",
                      "type": "SlickGrid",
                      "optional": false
                    }
                  ]
                },
                "description": ""
              }
            ]
          }
        ],
        "interfaces": []
      },
      {
        "file": "plugins/slick.rowdetailview.ts",
        "classes": [
          {
            "name": "SlickRowDetailView",
            "description": "A plugin to add row detail panel\r\nOriginal StackOverflow question & article making this possible (thanks to violet313)\r\nhttps://stackoverflow.com/questions/10535164/can-slickgrids-row-height-be-dynamically-altered#29399927\r\nhttp://violet313.org/slickgrids/#intro\r\n\r\nUSAGE:\r\nAdd the slick.rowDetailView.(js|css) files and register the plugin with the grid.\r\n\r\nAVAILABLE ROW DETAIL OPTIONS:\r\n   cssClass:               A CSS class to be added to the row detail\r\n   expandedClass:          Extra classes to be added to the expanded Toggle\r\n   expandableOverride:     callback method that user can override the default behavior of making every row an expandable row (the logic to show or not the expandable icon).\r\n   collapsedClass:         Extra classes to be added to the collapse Toggle\r\n   loadOnce:               Defaults to false, when set to True it will load the data once and then reuse it.\r\n   preTemplate:            Template that will be used before the async process (typically used to show a spinner/loading)\r\n   postTemplate:           Template that will be loaded once the async function finishes\r\n   process:                Async server function call\r\n   panelRows:              Row count to use for the template panel\r\n   singleRowExpand:        Defaults to false, limit expanded row to 1 at a time.\r\n   useRowClick:            Boolean flag, when True will open the row detail on a row click (from any column), default to False\r\n   keyPrefix:              Defaults to '_', prefix used for all the plugin metadata added to the item object (meta e.g.: padding, collapsed, parent)\r\n   collapseAllOnSort:      Defaults to true, which will collapse all row detail views when user calls a sort. Unless user implements a sort to deal with padding\r\n   saveDetailViewOnScroll: Defaults to true, which will save the row detail view in a cache when it detects that it will become out of the viewport buffer\r\n   useSimpleViewportCalc:  Defaults to false, which will use simplified calculation of out or back of viewport visibility\r\n\r\nAVAILABLE PUBLIC METHODS:\r\n   init:                 initiliaze the plugin\r\n   expandableOverride:   callback method that user can override the default behavior of making every row an expandable row (the logic to show or not the expandable icon).\r\n   destroy:              destroy the plugin and it's events\r\n   collapseAll:          collapse all opened row detail panel\r\n   collapseDetailView:   collapse a row by passing the item object (row detail)\r\n   expandDetailView:     expand a row by passing the item object (row detail)\r\n   getColumnDefinition:  get the column definitions\r\n   getExpandedRows:      get all the expanded rows\r\n   getFilterItem:        takes in the item we are filtering and if it is an expanded row returns it's parents row to filter on\r\n   getOptions:           get current plugin options\r\n   resizeDetailView:     resize a row detail view, it will auto-calculate the number of rows it needs\r\n   saveDetailView:       save a row detail view content by passing the row object\r\n   setOptions:           set or change some of the plugin options\r\n\r\nTHE PLUGIN EXPOSES THE FOLLOWING SLICK EVENTS:\r\n   onAsyncResponse:  This event must be used with the \"notify\" by the end user once the Asynchronous Server call returns the item detail\r\n     Event args:\r\n       item:         Item detail returned from the async server call\r\n       detailView:   An explicit view to use instead of template (Optional)\r\n\r\n   onAsyncEndUpdate: Fired when the async response finished\r\n     Event args:\r\n       grid:         Reference to the grid.\r\n       item:         Item data context\r\n\r\n   onBeforeRowDetailToggle: Fired before the row detail gets toggled\r\n     Event args:\r\n       grid:         Reference to the grid.\r\n       item:         Item data context\r\n\r\n   onAfterRowDetailToggle: Fired after the row detail gets toggled\r\n     Event args:\r\n       grid:         Reference to the grid.\r\n       item:         Item data context\r\n       expandedRows: Array of the Expanded Rows\r\n\r\n   onRowOutOfViewportRange: Fired after a row becomes out of viewport range (user can't see the row anymore)\r\n     Event args:\r\n       grid:         Reference to the grid.\r\n       item:         Item data context\r\n       rowId:        Id of the Row object (datacontext) in the Grid\r\n       rowIndex:     Index of the Row in the Grid\r\n       expandedRows: Array of the Expanded Rows\r\n       rowIdsOutOfViewport: Array of the Out of viewport Range Rows\r\n\r\n   onRowBackToViewportRange: Fired after a row is back to viewport range (user can visually see the row detail)\r\n     Event args:\r\n       grid:         Reference to the grid.\r\n       item:         Item data context\r\n       rowId:        Id of the Row object (datacontext) in the Grid\r\n       rowIndex:     Index of the Row in the Grid\r\n       expandedRows: Array of the Expanded Rows\r\n       rowIdsOutOfViewport: Array of the Out of viewport Range Rows",
            "methods": [
              {
                "name": "init",
                "group": "",
                "signature": "init(grid: SlickGrid)",
                "params": [
                  {
                    "name": "grid",
                    "type": "SlickGrid",
                    "optional": false,
                    "description": ": SlickGrid Grid object"
                  }
                ],
                "returns": "",
                "description": "Initialize the plugin, which requires user to pass the SlickGrid Grid object"
              },
              {
                "name": "destroy",
                "group": "",
                "signature": "destroy()",
                "params": [],
                "returns": "",
                "description": "destroy the plugin and it's events"
              },
              {
                "name": "getOptions",
                "group": "",
                "signature": "getOptions()",
                "params": [],
                "returns": "",
                "description": "Get current plugin options"
              },
              {
                "name": "setOptions",
                "group": "",
                "signature": "setOptions(options: Partial<RowDetailViewOption>)",
                "params": [
                  {
                    "name": "options",
                    "type": "Partial<RowDetailViewOption>",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": "set or change some of the plugin options"
              },
              {
                "name": "collapseAll",
                "group": "",
                "signature": "collapseAll()",
                "params": [],
                "returns": "",
                "description": "Collapse all of the open detail rows"
              },
              {
                "name": "collapseDetailView",
                "group": "",
                "signature": "collapseDetailView(item: any, isMultipleCollapsing?)",
                "params": [
                  {
                    "name": "item",
                    "type": "any",
                    "optional": false,
                    "description": ""
                  },
                  {
                    "name": "isMultipleCollapsing",
                    "type": "",
                    "optional": true,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": "Collapse a detail row so that it is not longer open"
              },
              {
                "name": "expandDetailView",
                "group": "",
                "signature": "expandDetailView(item: any)",
                "params": [
                  {
                    "name": "item",
                    "type": "any",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": "Expand a detail row by providing the dataview item that is to be expanded"
              },
              {
                "name": "saveDetailView",
                "group": "",
                "signature": "saveDetailView(item: any)",
                "params": [
                  {
                    "name": "item",
                    "type": "any",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": "Saves the current state of the detail view"
              },
              {
                "name": "getColumnDefinition",
                "group": "",
                "signature": "getColumnDefinition()",
                "params": [],
                "returns": "",
                "description": "Get the Column Definition of the first column dedicated to toggling the Row Detail View"
              },
              {
                "name": "getExpandedRows",
                "group": "",
                "signature": "getExpandedRows()",
                "params": [],
                "returns": "",
                "description": "Return the currently expanded rows"
              },
              {
                "name": "resizeDetailView",
                "group": "",
                "signature": "resizeDetailView(item: any)",
                "params": [
                  {
                    "name": "item",
                    "type": "any",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": "Resize the Row Detail View"
              },
              {
                "name": "getFilterItem",
                "group": "",
                "signature": "getFilterItem(item: any)",
                "params": [
                  {
                    "name": "item",
                    "type": "any",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": "Takes in the item we are filtering and if it is an expanded row returns it's parents row to filter on"
              },
              {
                "name": "expandableOverride",
                "group": "",
                "signature": "expandableOverride(overrideFn: UsabilityOverrideFn)",
                "params": [
                  {
                    "name": "overrideFn",
                    "type": "UsabilityOverrideFn",
                    "optional": false,
                    "description": ": override function callback"
                  }
                ],
                "returns": "",
                "description": "Method that user can pass to override the default behavior or making every row an expandable row.\r\nIn order word, user can choose which rows to be an available row detail (or not) by providing his own logic."
              }
            ],
            "events": [
              {
                "name": "onAsyncResponse",
                "payload": "OnRowDetailAsyncResponseArgs",
                "args": {
                  "typeName": "OnRowDetailAsyncResponseArgs",
                  "fields": [
                    {
                      "name": "item",
                      "type": "any",
                      "optional": false
                    },
                    {
                      "name": "itemDetail",
                      "type": "any",
                      "optional": false
                    },
                    {
                      "name": "detailView",
                      "type": "any",
                      "optional": true
                    },
                    {
                      "name": "grid",
                      "type": "SlickGrid",
                      "optional": true
                    }
                  ]
                },
                "description": ""
              },
              {
                "name": "onAsyncEndUpdate",
                "payload": "OnRowDetailAsyncEndUpdateArgs",
                "args": {
                  "typeName": "OnRowDetailAsyncEndUpdateArgs",
                  "fields": [
                    {
                      "name": "item",
                      "type": "any",
                      "optional": false
                    },
                    {
                      "name": "itemDetail",
                      "type": "any",
                      "optional": false
                    },
                    {
                      "name": "grid",
                      "type": "SlickGrid",
                      "optional": true
                    }
                  ]
                },
                "description": ""
              },
              {
                "name": "onAfterRowDetailToggle",
                "payload": "OnAfterRowDetailToggleArgs",
                "args": {
                  "typeName": "OnAfterRowDetailToggleArgs",
                  "fields": [
                    {
                      "name": "item",
                      "type": "any",
                      "optional": false
                    },
                    {
                      "name": "expandedRows",
                      "type": "Array<number | string>",
                      "optional": false
                    },
                    {
                      "name": "grid",
                      "type": "SlickGrid",
                      "optional": false
                    }
                  ]
                },
                "description": ""
              },
              {
                "name": "onBeforeRowDetailToggle",
                "payload": "OnBeforeRowDetailToggleArgs",
                "args": {
                  "typeName": "OnBeforeRowDetailToggleArgs",
                  "fields": [
                    {
                      "name": "item",
                      "type": "any",
                      "optional": false
                    },
                    {
                      "name": "grid",
                      "type": "SlickGrid",
                      "optional": false
                    }
                  ]
                },
                "description": ""
              },
              {
                "name": "onRowBackToViewportRange",
                "payload": "OnRowBackToViewportRangeArgs",
                "args": {
                  "typeName": "OnRowBackToViewportRangeArgs",
                  "fields": [
                    {
                      "name": "item",
                      "type": "any",
                      "optional": false
                    },
                    {
                      "name": "rowId",
                      "type": "string | number",
                      "optional": false
                    },
                    {
                      "name": "rowIndex",
                      "type": "number",
                      "optional": false
                    },
                    {
                      "name": "expandedRows",
                      "type": "Array<string | number>",
                      "optional": false
                    },
                    {
                      "name": "rowIdsOutOfViewport",
                      "type": "Array<string | number>",
                      "optional": false
                    },
                    {
                      "name": "grid",
                      "type": "SlickGrid",
                      "optional": false
                    }
                  ]
                },
                "description": ""
              },
              {
                "name": "onRowOutOfViewportRange",
                "payload": "OnRowOutOfViewportRangeArgs",
                "args": {
                  "typeName": "OnRowOutOfViewportRangeArgs",
                  "fields": [
                    {
                      "name": "item",
                      "type": "any",
                      "optional": false
                    },
                    {
                      "name": "rowId",
                      "type": "string | number",
                      "optional": false
                    },
                    {
                      "name": "rowIndex",
                      "type": "number",
                      "optional": false
                    },
                    {
                      "name": "expandedRows",
                      "type": "Array<string | number>",
                      "optional": false
                    },
                    {
                      "name": "rowIdsOutOfViewport",
                      "type": "Array<string | number>",
                      "optional": false
                    },
                    {
                      "name": "grid",
                      "type": "SlickGrid",
                      "optional": false
                    }
                  ]
                },
                "description": ""
              }
            ]
          }
        ],
        "interfaces": []
      },
      {
        "file": "plugins/slick.rowmovemanager.ts",
        "classes": [
          {
            "name": "SlickRowMoveManager",
            "description": "Row Move Manager options:\r\n   containerCssClass:        A CSS class to be added to the cell container.\r\n   cssClass:                 A CSS class to be added to the div of the cell formatter.\r\n   columnId:                 Column definition id (defaults to \"_move\")\r\n   cancelEditOnDrag:         Do we want to cancel any Editing while dragging a row (defaults to false)\r\n   disableRowSelection:      Do we want to disable the row selection? (defaults to false)\r\n   hideRowMoveShadow:        Do we want to hide the row move shadow clone? (defaults to true)\r\n   rowMoveShadowMarginTop:   When row move shadow is shown, optional margin-top (defaults to 0)\r\n   rowMoveShadowMarginLeft:  When row move shadow is shown, optional margin-left (defaults to 0)\r\n   rowMoveShadowOpacity:     When row move shadow is shown, what is its opacity? (defaults to 0.95)\r\n   rowMoveShadowScale:       When row move shadow is shown, what is its size scale? (default to 0.75)\r\n   singleRowMove:            Do we want a single row move? Setting this to false means that it's a multple row move (defaults to false)\r\n   width:                    Width of the column\r\n   usabilityOverride:        Callback method that user can override the default behavior of the row being moveable or not",
            "methods": [
              {
                "name": "init",
                "group": "",
                "signature": "init(grid: SlickGrid)",
                "params": [
                  {
                    "name": "grid",
                    "type": "SlickGrid",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              },
              {
                "name": "destroy",
                "group": "",
                "signature": "destroy()",
                "params": [],
                "returns": "",
                "description": ""
              },
              {
                "name": "setOptions",
                "group": "",
                "signature": "setOptions(newOptions: Partial<RowMoveManagerOption>)",
                "params": [
                  {
                    "name": "newOptions",
                    "type": "Partial<RowMoveManagerOption>",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              },
              {
                "name": "getColumnDefinition",
                "group": "",
                "signature": "getColumnDefinition(): Column",
                "params": [],
                "returns": "Column",
                "description": ""
              },
              {
                "name": "usabilityOverride",
                "group": "",
                "signature": "usabilityOverride(overrideFn: UsabilityOverrideFn)",
                "params": [
                  {
                    "name": "overrideFn",
                    "type": "UsabilityOverrideFn",
                    "optional": false,
                    "description": ": override function callback"
                  }
                ],
                "returns": "",
                "description": "Method that user can pass to override the default behavior or making every row moveable.\r\nIn order word, user can choose which rows to be an available as moveable (or not) by providing his own logic show/hide icon and usability."
              },
              {
                "name": "isHandlerColumn",
                "group": "",
                "signature": "isHandlerColumn(columnIndex: number | string)",
                "params": [
                  {
                    "name": "columnIndex",
                    "type": "number | string",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              }
            ],
            "events": [
              {
                "name": "onBeforeMoveRows",
                "payload": "{ grid: SlickGrid; rows: number[]; insertBefore: number; }",
                "args": {
                  "typeName": "{ grid: SlickGrid; rows: number[]; insertBefore: number; }",
                  "fields": [
                    {
                      "name": "grid",
                      "type": "SlickGrid",
                      "optional": false
                    },
                    {
                      "name": "rows",
                      "type": "number[]",
                      "optional": false
                    },
                    {
                      "name": "insertBefore",
                      "type": "number",
                      "optional": false
                    }
                  ]
                },
                "description": ""
              },
              {
                "name": "onMoveRows",
                "payload": "{ grid: SlickGrid; rows: number[]; insertBefore: number; }",
                "args": {
                  "typeName": "{ grid: SlickGrid; rows: number[]; insertBefore: number; }",
                  "fields": [
                    {
                      "name": "grid",
                      "type": "SlickGrid",
                      "optional": false
                    },
                    {
                      "name": "rows",
                      "type": "number[]",
                      "optional": false
                    },
                    {
                      "name": "insertBefore",
                      "type": "number",
                      "optional": false
                    }
                  ]
                },
                "description": ""
              }
            ]
          }
        ],
        "interfaces": []
      },
      {
        "file": "plugins/slick.rowselectionmodel.ts",
        "classes": [
          {
            "name": "SlickRowSelectionModel",
            "description": "",
            "methods": [
              {
                "name": "init",
                "group": "",
                "signature": "init(grid: SlickGrid)",
                "params": [
                  {
                    "name": "grid",
                    "type": "SlickGrid",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              },
              {
                "name": "destroy",
                "group": "",
                "signature": "destroy()",
                "params": [],
                "returns": "",
                "description": ""
              },
              {
                "name": "getOptions",
                "group": "",
                "signature": "getOptions(): RowSelectionModelOption",
                "params": [],
                "returns": "RowSelectionModelOption",
                "description": ""
              },
              {
                "name": "setOptions",
                "group": "",
                "signature": "setOptions(options: Partial<RowSelectionModelOption>)",
                "params": [
                  {
                    "name": "options",
                    "type": "Partial<RowSelectionModelOption>",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              },
              {
                "name": "getSelectedRows",
                "group": "",
                "signature": "getSelectedRows()",
                "params": [],
                "returns": "",
                "description": ""
              },
              {
                "name": "setSelectedRows",
                "group": "",
                "signature": "setSelectedRows(rows: number[])",
                "params": [
                  {
                    "name": "rows",
                    "type": "number[]",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              },
              {
                "name": "setSelectedRanges",
                "group": "",
                "signature": "setSelectedRanges(ranges: SlickRange_[], caller?, selectionMode?: string)",
                "params": [
                  {
                    "name": "ranges",
                    "type": "SlickRange_[]",
                    "optional": false,
                    "description": ""
                  },
                  {
                    "name": "caller",
                    "type": "",
                    "optional": true,
                    "description": ""
                  },
                  {
                    "name": "selectionMode",
                    "type": "string",
                    "optional": true,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              },
              {
                "name": "getSelectedRanges",
                "group": "",
                "signature": "getSelectedRanges()",
                "params": [],
                "returns": "",
                "description": ""
              },
              {
                "name": "refreshSelections",
                "group": "",
                "signature": "refreshSelections()",
                "params": [],
                "returns": "",
                "description": ""
              }
            ],
            "events": [
              {
                "name": "onSelectedRangesChanged",
                "payload": "SlickRange_[]",
                "args": {
                  "typeName": "SlickRange_[]",
                  "unresolved": true
                },
                "description": ""
              }
            ]
          }
        ],
        "interfaces": []
      },
      {
        "file": "plugins/slick.state.ts",
        "classes": [
          {
            "name": "SlickState",
            "description": "",
            "methods": [
              {
                "name": "init",
                "group": "",
                "signature": "init(grid: SlickGrid)",
                "params": [
                  {
                    "name": "grid",
                    "type": "SlickGrid",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              },
              {
                "name": "destroy",
                "group": "",
                "signature": "destroy()",
                "params": [],
                "returns": "",
                "description": ""
              },
              {
                "name": "save",
                "group": "",
                "signature": "save()",
                "params": [],
                "returns": "",
                "description": ""
              },
              {
                "name": "restore",
                "group": "",
                "signature": "restore()",
                "params": [],
                "returns": "",
                "description": ""
              },
              {
                "name": "setUserData",
                "group": "",
                "signature": "setUserData(data: any)",
                "params": [
                  {
                    "name": "data",
                    "type": "any",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": "allows users to add their own data to the grid state\nthis function does not trigger the save() function, so the actual act of writing the state happens in save()\ntherefore, it's necessary to call save() function after setting user-data"
              },
              {
                "name": "setUserDataFromState",
                "group": "",
                "signature": "setUserDataFromState(data: any)",
                "params": [
                  {
                    "name": "data",
                    "type": "any",
                    "optional": false,
                    "description": ""
                  }
                ],
                "returns": "",
                "description": ""
              },
              {
                "name": "getUserData",
                "group": "",
                "signature": "getUserData()",
                "params": [],
                "returns": "",
                "description": "returns current value of user-data"
              },
              {
                "name": "getStateUserData",
                "group": "",
                "signature": "getStateUserData()",
                "params": [],
                "returns": "",
                "description": "returns user-data found in saved state"
              },
              {
                "name": "resetUserData",
                "group": "",
                "signature": "resetUserData()",
                "params": [],
                "returns": "",
                "description": "Sets user-data to the value read from state"
              },
              {
                "name": "getColumns",
                "group": "",
                "signature": "getColumns()",
                "params": [],
                "returns": "",
                "description": ""
              },
              {
                "name": "getSortColumns",
                "group": "",
                "signature": "getSortColumns()",
                "params": [],
                "returns": "",
                "description": ""
              },
              {
                "name": "reset",
                "group": "",
                "signature": "reset()",
                "params": [],
                "returns": "",
                "description": ""
              }
            ],
            "events": [
              {
                "name": "onStateChanged",
                "payload": "CurrentState",
                "args": {
                  "typeName": "CurrentState",
                  "unresolved": true
                },
                "description": ""
              }
            ]
          }
        ],
        "interfaces": [
          {
            "name": "SlickStateOption",
            "description": "",
            "properties": [
              {
                "name": "cid",
                "type": "string",
                "optional": false,
                "description": "optional grid state clientId"
              },
              {
                "name": "defaultColumns",
                "type": "Column[]",
                "optional": false,
                "description": "default columns when loadnig the grid"
              },
              {
                "name": "key_prefix",
                "type": "string",
                "optional": false,
                "description": "local storage key prefix"
              },
              {
                "name": "scrollRowIntoView",
                "type": "boolean",
                "optional": false,
                "description": "should we scroll the grid into view?"
              },
              {
                "name": "storage",
                "type": "LocalStorageWrapper",
                "optional": false,
                "description": "local storage wrapper"
              }
            ]
          },
          {
            "name": "CurrentState",
            "description": "",
            "properties": [
              {
                "name": "columns",
                "type": "Array<{ id: string | number; width: number | undefined; }>",
                "optional": false,
                "description": ""
              },
              {
                "name": "sortcols",
                "type": "ColumnSort[]",
                "optional": false,
                "description": ""
              },
              {
                "name": "userData",
                "type": "any",
                "optional": false,
                "description": ""
              },
              {
                "name": "viewport",
                "type": "{ top: number; bottom: number; leftPx: number; rightPx: number; }",
                "optional": false,
                "description": ""
              }
            ]
          }
        ]
      }
    ]
  }
}