var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  return c > 3 && r && Object.defineProperty(target, key, r), r;
};
import { Component, Element, Prop, State, Event, Watch, Method, h } from '@stencil/core';
import { ImmutableSet } from '../../helpers/immutable/immutable-set';
import { InjectVegaGlobalSlimmer, InjectVegaSlimmer, methodPlaceholder, slotPlaceholder, } from 'vega-slimmer/core';
import { VegaTableCellRenderer } from './slimmers/renderers/vega-table-cell-renderer';
import { VegaTableExpandRowController } from './slimmers/controllers/vega-table-expand-row-controller';
import { VegaTableRowSelectionController } from './slimmers/controllers/vega-table-row-selection-controller';
import { VegaTableDataSourceController } from './slimmers/controllers/vega-table-data-source-controller';
import { VegaTableBodyRenderer } from './slimmers/renderers/vega-table-body-renderer';
import { VegaTableHeaderRenderer } from './slimmers/renderers/vega-table-header-renderer';
import { VegaTablePaginationRenderer } from './slimmers/renderers/vega-table-pagination-renderer';
import { VegaTableScrollContainerRenderer } from './slimmers/renderers/vega-table-scroll-container-renderer';
import { VegaTableRenderer } from './slimmers/renderers/vega-table-renderer';
import { VegaTablePaginationController } from './slimmers/controllers/vega-table-pagination-controller';
import { VegaTableEditableController } from './slimmers/controllers/vega-table-editable-controller';
import { VegaTableSortController } from './slimmers/controllers/vega-table-sort-controller';
import { VegaTableColGroupRenderer } from './slimmers/renderers/vega-table-col-group-renderer';
import { getCurrentBreakpoint } from '../../utils/breakpoints';
import { VegaTableChildrenController } from './slimmers/controllers/vega-table-children-controller';
import { VegaTableRowRenderer } from './slimmers/renderers/vega-table-row-renderer';
import { PageResizeObserverSlimmer } from '../../helpers/slimmers/page-resize-observer-slimmer';
import { createSubStateNotifySlimmer } from '../../helpers/slimmers/sub-state/sub-state-notify-slimmer';
import { ChildNodesEventPreventSlimmer } from '../../helpers/event-manager/slimmers/child-nodes-event-prevent-slimmer';
import { VegaChange, VegaPageSizeChange, VegaRowClick, VegaRowSelect, VegaRowSelectAll, VegaRowExpand, VegaSelectAllChange, VegaSelectChange, VegaExpand, } from '../../helpers/event-manager/event-id/vega-event-id';
import { createEventEmitSlimmer, } from '../../helpers/event-manager/slimmers/event-emit-slimmer';
import { ImmutableMap } from '../../helpers/immutable/immutable-map';
import { VegaTableRenderModeController } from './slimmers/controllers/vega-table-render-mode-controller';
import { VegaComponentUsageRuntimeMetricsSlimmer } from '../../helpers/slimmers/component-usage-runtime-metrics';
import { VegaTableRuntimeMetricsPayloadDefinition } from '../../constants/runtime-metrics-payload-definition/vega-table/runtime-metrics-payload-definition';
import { TranslationSlimmer } from '../../helpers/slimmers/translation';
import { VegaTableColumnStructureModelController } from './slimmers/controllers/vega-table-column-structure-model-controller';
import { VegaTableRenderInputController } from './slimmers/controllers/vega-table-render-input-controller';
import { VegaTablePinnedRenderer } from './slimmers/renderers/vega-table-pinned-renderer';
/**
 * @vegaVersion 1.3.0
 */
export class VegaTable {
  constructor() {
    this.globalSlimmers = {};
    this.translationSlimmer = new TranslationSlimmer();
    this.vegaTableRenderModeController = new VegaTableRenderModeController();
    this.vegaTableColumnStructureModelController = new VegaTableColumnStructureModelController();
    this.vegaTableRenderInputController = new VegaTableRenderInputController();
    this.vegaTablePinnedRenderer = new VegaTablePinnedRenderer();
    this.vegaTableRenderer = new VegaTableRenderer();
    this.vegaTableHeaderRenderer = new VegaTableHeaderRenderer();
    this.vegaTableBodyRenderer = new VegaTableBodyRenderer();
    this.vegaTableRowRenderer = new VegaTableRowRenderer();
    this.vegaTableCellRenderer = new VegaTableCellRenderer();
    this.vegaTablePaginationRenderer = new VegaTablePaginationRenderer();
    this.vegaTableScrollContainerRenderer = new VegaTableScrollContainerRenderer();
    this.vegaTableExpandRowController = new VegaTableExpandRowController();
    this.vegaTableRowSelectionController = new VegaTableRowSelectionController();
    this.vegaTableDataSourceController = new VegaTableDataSourceController();
    this.vegaTablePaginationController = new VegaTablePaginationController();
    this.vegaTableEditableController = new VegaTableEditableController();
    this.vegaTableSortController = new VegaTableSortController();
    this.vegaTableColGroupRenderer = new VegaTableColGroupRenderer();
    this.vegaTableChildrenController = new VegaTableChildrenController();
    /**
     * The below method is e2e-test covered in
     * @see{module:should-render-responsive-columns-with-expandable-row-and-current-breakpoint-is-smaller-than-S}
     */
    this.pageResizeObserverSlimmer = new PageResizeObserverSlimmer();
    this.rowSelectionNotifySlimmer = createSubStateNotifySlimmer(VegaTable, 'rowSelection', 'watchRowSelection');
    this.rowExpandableNotifySlimmer = createSubStateNotifySlimmer(VegaTable, 'rowExpandable', 'watchRowExpandable');
    this.paddingXNotifySlimmer = createSubStateNotifySlimmer(VegaTable, 'paddingX', 'watchPaddingX');
    this.rowClickableNotifySlimmer = createSubStateNotifySlimmer(VegaTable, 'rowClickable', 'watchRowClickable');
    this.scrollConfigNotifySlimmer = createSubStateNotifySlimmer(VegaTable, 'scrollConfig', 'watchScrollConfig');
    this.eventsPrevent = new ChildNodesEventPreventSlimmer([VegaChange, VegaPageSizeChange, VegaExpand], () => this.host);
    this.changeEventEmitter = createEventEmitSlimmer(VegaTable, VegaChange);
    this.selectChangeEventEmitter = createEventEmitSlimmer(VegaTable, VegaSelectChange);
    this.selectAllChangeEventEmitter = createEventEmitSlimmer(VegaTable, VegaSelectAllChange);
    this.rowClickEventEmitter = createEventEmitSlimmer(VegaTable, VegaRowClick);
    this.rowExpandEventEmitter = createEventEmitSlimmer(VegaTable, VegaRowExpand);
    this.rowDividerNotifySlimmer = createSubStateNotifySlimmer(VegaTable, 'rowDivider', 'watchRowDivider');
    this.columnDividerNotifySlimmer = createSubStateNotifySlimmer(VegaTable, 'columnDivider', 'watchColumnDivider');
    this.densityNotifySlimmer = createSubStateNotifySlimmer(VegaTable, 'density', 'watchDensity');
    this.isTemplateRenderModeNotifySlimmer = createSubStateNotifySlimmer(VegaTable, 'isTemplateRenderMode', 'watchTemplateRenderMode');
    this.currentDataNotifySlimmer = createSubStateNotifySlimmer(VegaTable, 'currentData', 'watchCurrentData');
    this.vegaComponentUsageRuntimeMetricsSlimmer = new VegaComponentUsageRuntimeMetricsSlimmer(VegaTableRuntimeMetricsPayloadDefinition);
    this.rowSelectEventEmitter = createEventEmitSlimmer(VegaTable, VegaRowSelect);
    this.rowSelectAllEventEmitter = createEventEmitSlimmer(VegaTable, VegaRowSelectAll);
    this.selectedRowKeySet = new ImmutableSet(new Set(), (newSet) => {
      this.selectedRowKeySet = newSet;
    });
    this.expandedRowKeySet = new ImmutableSet(new Set(), (newSet) => {
      this.expandedRowKeySet = newSet;
    });
    this.currentBreakpoint = getCurrentBreakpoint();
    /** Current running sorters */
    this.sortersMap = new ImmutableMap(new Map(), (newMap) => {
      this.sortersMap = newMap;
    });
    /** The data for vega-table to render */
    this.currentData = [];
    /** Current page number of the table pagination */
    this.currentPage = 1;
    /**
     * The page size of the table pagination
     */
    this.pageSize = 10;
    this.editingRows = new ImmutableSet(new Set(), (newSet) => {
      this.editingRows = newSet;
    });
    this.isSelectedAll = false;
    /**
     * Defines the columns of the table.
     *
     * @vegaVersion 1.3.0
     */
    this.columns = [];
    /**
     * Contains the data records to be rendered and
     *    displayed within the table.
     *
     * @vegaVersion 1.3.0
     */
    /* eslint-disable-next-line @stencil/strict-mutable */
    this.dataSource = [];
    /**
     * Defines the behavior and options related to
     *    row selection in the table.
     *
     * It allows users to select one or more rows in
     *    the table for further actions or processing.
     *
     * @vegaVersion 1.3.0
     */
    /* eslint-disable-next-line @stencil/strict-mutable */
    this.rowSelection = null;
    /**
     * Specifies whether rows in the table can be expanded
     *    to show additional content or details.
     */
    /**
     * Indicates whether the row is expandable.
     *
     * @vegaVersion 1.3.0
     */
    this.rowExpandable = false;
    /**
     * Specifies whether rows in the table can be clicked.
     *    If enabled, a `vegaRowClick` event will be
     *    dispatched when a row is clicked.
     *
     * @vegaVersion 1.3.0
     */
    this.rowClickable = false;
    /**
     * Specifies whether dividers should be displayed
     *    between rows in the table.
     *
     * @vegaVersion 1.3.0
     */
    this.rowDivider = false;
    /**
     * Specifies whether dividers should be displayed
     *    between columns in the table.
     *
     * @vegaVersion 1.3.0
     */
    this.columnDivider = false;
    /**
     * Specifies whether alternate colors should be applied
     *    to the rows of the table.
     *
     * @vegaVersion 1.3.0
     */
    this.striped = true;
    /**
     * Specifies the negative space within the table's cells.
     *
     * @vegaVersion 1.3.0
     */
    this.density = 'default';
    /**
     * Controls the amount of horizontal padding applied to the table.
     *
     * @vegaVersion 1.3.0
     */
    this.paddingX = ['8px', '8px'];
    /**
     * Specifies whether the table header should be displayed.
     *
     * @vegaVersion 1.3.0
     */
    this.showHeader = true;
    /**
     * Specifies the pagination configuration.
     *
     * @vegaVersion 1.5.0
     */
    this.pagination = null;
    /**
     * Provides a customized message or description that is
     *    shown when the table's data source is empty.
     *
     * @vegaVersion 1.7.0
     */
    this.emptyDescription = 'There is no data to display';
    /**
     * Defines a unique key for each row in the table.
     *
     * @vegaVersion 1.9.2
     */
    this.rowKey = 'key';
    /**
     * Defines the column sorting options
     * Has optional property type: single | multiple
     * If not specified, it defaults to multiple column sorting
     *
     * @vegaVersion 2.22.0
     */
    this.sortConfig = { type: 'multiple' };
  }
  watchSelectedRowKeySet() {
    methodPlaceholder();
  }
  watchSortersMap() {
    methodPlaceholder();
  }
  watchCurrentData(newValue, oldValue) {
    methodPlaceholder(newValue, oldValue);
  }
  watchCurrentPage() {
    methodPlaceholder();
  }
  watchSelectedAll() {
    methodPlaceholder();
  }
  watchTemplateRenderMode() {
    methodPlaceholder();
  }
  watchColumnStructureModel() {
    methodPlaceholder();
  }
  watchColumns() {
    methodPlaceholder();
  }
  watchGroupColumns() {
    methodPlaceholder();
  }
  watchDataSource() {
    methodPlaceholder();
  }
  watchRowSelection() {
    methodPlaceholder();
  }
  watchRowExpandable() {
    methodPlaceholder();
  }
  watchRowClickable() {
    methodPlaceholder();
  }
  watchRowDivider() {
    methodPlaceholder();
  }
  watchColumnDivider() {
    methodPlaceholder();
  }
  watchStriped() {
    methodPlaceholder();
  }
  watchDensity() {
    methodPlaceholder();
  }
  watchPaddingX() {
    methodPlaceholder();
  }
  watchPagination() {
    methodPlaceholder();
  }
  watchScrollConfig() {
    methodPlaceholder();
  }
  /**
   * Invoke this method to expand the row with the specified `rowKey`,
   *    revealing additional content.
   *
   * @param rowKey
   * @vegaVersion 1.3.0
   */
  async openExpandRow(rowKey) {
    methodPlaceholder(rowKey);
  }
  /**
   * Invoke this method to close the expanded row with the specified `rowKey`.
   *
   * @param rowKey
   * @vegaVersion 1.3.0
   */
  async closeExpandRow(rowKey) {
    methodPlaceholder(rowKey);
  }
  /**
   * Invoke this method to close all expanded rows.
   *
   * @vegaVersion 1.3.0
   */
  async closeAllExpandRow() {
    methodPlaceholder();
  }
  /**
   * Invoke this method to toggle the expandable row with the
   *    specified `rowKey`, expanding it if it is currently
   *    collapsed and collapsing it if it is currently expanded.
   *
   * @param rowKey
   * @vegaVersion 1.3.0
   */
  async toggleExpandRow(rowKey) {
    methodPlaceholder(rowKey);
  }
  /**
   * Invoke this method to clear the selected row keys,
   *    removing any current selection.
   *
   * @vegaVersion 1.3.0
   */
  async clearSelection() {
    methodPlaceholder();
  }
  /**
   * Invoke this method to retrieve the selected row keys,
   *    provided an array or list of the keys representing
   *    the currently selected rows.
   *
   * @vegaVersion 1.3.0
   */
  async getSelection() {
    return methodPlaceholder();
  }
  /**
   * Invoke this method to set the selected row keys,
   *    specifying an array or list of keys to represent
   *    the desired selected rows.
   *
   * @param {string[]} keys - Row keys to be set as selected.
   * @vegaVersion 1.3.0
   */
  async setSelection(keys) {
    methodPlaceholder(keys);
  }
  /**
   * Invoke this method to start the edit mode for the row
   *    with the specified `rowKey`.
   *
   * @VegaWarning Note: This method only works with editable tables.
   *
   * @vegaVersion 1.19.0
   */
  async startRowEditMode(rowKey) {
    methodPlaceholder(rowKey);
  }
  /**
   * Invoke this method to stop the edit mode for the row
   *    with the specified `rowKey`.
   *
   * @VegaWarning Note: This method only works with editable tables.
   *
   * @vegaVersion 1.19.0
   */
  async stopRowEditMode(rowKey) {
    methodPlaceholder(rowKey);
  }
  /**
   * Invoke this method to stop the edit mode for all rows,
   *    exiting the edit mode for each row currently
   *    in the editing state.
   *
   * @VegaWarning Note: This method only works with editable tables.
   *
   * @vegaVersion 1.19.0
   */
  async stopAllRowEditMode() {
    methodPlaceholder();
  }
  /**
   * Invoke this method to retrieve the data of the row with
   *    the specified `rowKey`, obtaining the complete set of
   *    information associated with that row.
   *
   * @param rowKey The row's unique key.
   *
   * @VegaWarning Note: This method only works with editable tables.
   *
   * @vegaVersion 1.19.0
   */
  async getRowData(rowKey) {
    return methodPlaceholder(rowKey);
  }
  /**
   * Invoke this method to retrieve all rows of data,
   *    obtaining the complete set of information
   *    associated with each row.
   *
   * @VegaWarning Note: This method only works with editable tables.
   *
   * @vegaVersion 1.19.0
   */
  async getRowsData() {
    return methodPlaceholder();
  }
  /**
   * Invoke this method to retrieve the table row reference
   *    based on the provided `rowKey`.
   *
   * If the `rowKey` is empty, this method will return the
   *    reference to the table form.
   *
   * @param optional rowKey
   *
   * @VegaWarning Note: This method only works with editable tables.
   *
   * @vegaVersion 1.19.0
   */
  async getFormRef(rowKey) {
    return methodPlaceholder(rowKey);
  }
  /**
   * Invoke this method to add a new row to the editable table.
   *
   * @param record the default record of the new row
   * @returns {Promise<string>} the rowKey of the new row
   *
   * @VegaWarning Note: This method only works with editable tables.
   *
   * @vegaVersion 1.19.0
   */
  async addNewRow(record = {}) {
    return methodPlaceholder(record);
  }
  /**
   * Invoke this method to save the edited row data to
   *    the `currentData` and stop the edit mode
   *    for that row.
   *
   * This action will not affect the editing mode of other rows.
   *
   * @VegaWarning Note: This method only works with editable tables.
   *
   * @vegaVersion 1.19.0
   */
  async saveEditRow(rowKey) {
    return methodPlaceholder(rowKey);
  }
  /**
   * Invoke this method to save the data of all edited rows to
   *    the `currentData` and stop the edit mode for
   *    all rows in the table.
   *
   * @VegaWarning Note: This method only works with editable tables.
   *
   * @vegaVersion 1.19.0
   */
  async saveAllEditRows() {
    methodPlaceholder();
  }
  /**
   * Invoke this method to obtain the keys of the rows currently
   *    in the editing mode in the table.
   *
   * @VegaWarning Note: This method only works with editable tables.
   *
   * @vegaVersion 1.19.0
   */
  async getEditingRowsKey() {
    return methodPlaceholder();
  }
  /**
   * Invoke this method to remove a row from the `currentData`
   *    based on the specified `rowKey` in the table.
   *
   * @param rowKey The rowKey of the row to remove.
   *
   * @VegaWarning Note: This method only works with editable tables.
   *
   * @vegaVersion 1.19.0
   */
  async removeRow(rowKey) {
    methodPlaceholder(rowKey);
  }
  render() {
    slotPlaceholder(h("slot", null));
    return this.vegaTableRenderer.render();
  }
  static get is() { return "vega-table"; }
  static get encapsulation() { return "shadow"; }
  static get originalStyleUrls() { return {
    "$": ["vega-table.scss"]
  }; }
  static get styleUrls() { return {
    "$": ["vega-table.css"]
  }; }
  static get properties() { return {
    "columns": {
      "type": "unknown",
      "mutable": false,
      "complexType": {
        "original": "VegaTableColumnConfig[]",
        "resolved": "VegaTableColumnConfig[]",
        "references": {
          "VegaTableColumnConfig": {
            "location": "import",
            "path": "./interface"
          }
        }
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "name": "vegaVersion",
            "text": "1.3.0"
          }],
        "text": "Defines the columns of the table."
      },
      "defaultValue": "[]"
    },
    "groupColumns": {
      "type": "unknown",
      "mutable": false,
      "complexType": {
        "original": "VegaTableGroupColumnConfig[]",
        "resolved": "VegaTableGroupColumnConfig[]",
        "references": {
          "VegaTableGroupColumnConfig": {
            "location": "import",
            "path": "./interface"
          }
        }
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "name": "vegaVersion",
            "text": "2.57.0"
          }],
        "text": "Defines how columns can be grouped."
      }
    },
    "dataSource": {
      "type": "unknown",
      "mutable": true,
      "complexType": {
        "original": "VegaTableDataSourceItem[]",
        "resolved": "VegaTableDataSourceItem[]",
        "references": {
          "VegaTableDataSourceItem": {
            "location": "import",
            "path": "./interface"
          }
        }
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "name": "vegaVersion",
            "text": "1.3.0"
          }],
        "text": "Contains the data records to be rendered and\n   displayed within the table."
      },
      "defaultValue": "[]"
    },
    "rowSelection": {
      "type": "unknown",
      "mutable": true,
      "complexType": {
        "original": "VegaTableRowSelectionConfig",
        "resolved": "{ hideSelectAll?: boolean; type?: \"single\" | \"multiple\"; onSelectChange?: (selected: boolean, record: VegaTableDataSourceItem, selectedRows: VegaTableDataSourceItem[]) => void; onSelectAllChange?: (selected: boolean, selectedRows: VegaTableDataSourceItem[]) => void; }",
        "references": {
          "VegaTableRowSelectionConfig": {
            "location": "import",
            "path": "./interface"
          }
        }
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "name": "vegaVersion",
            "text": "1.3.0"
          }],
        "text": "Defines the behavior and options related to\n   row selection in the table.\n\nIt allows users to select one or more rows in\n   the table for further actions or processing."
      },
      "defaultValue": "null"
    },
    "rowExpandable": {
      "type": "boolean",
      "mutable": false,
      "complexType": {
        "original": "boolean",
        "resolved": "boolean",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "name": "vegaVersion",
            "text": "1.3.0"
          }],
        "text": "Indicates whether the row is expandable."
      },
      "attribute": "row-expandable",
      "reflect": false,
      "defaultValue": "false"
    },
    "rowClickable": {
      "type": "boolean",
      "mutable": false,
      "complexType": {
        "original": "boolean",
        "resolved": "boolean",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "name": "vegaVersion",
            "text": "1.3.0"
          }],
        "text": "Specifies whether rows in the table can be clicked.\n   If enabled, a `vegaRowClick` event will be\n   dispatched when a row is clicked."
      },
      "attribute": "row-clickable",
      "reflect": false,
      "defaultValue": "false"
    },
    "rowDivider": {
      "type": "boolean",
      "mutable": false,
      "complexType": {
        "original": "boolean",
        "resolved": "boolean",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "name": "vegaVersion",
            "text": "1.3.0"
          }],
        "text": "Specifies whether dividers should be displayed\n   between rows in the table."
      },
      "attribute": "row-divider",
      "reflect": false,
      "defaultValue": "false"
    },
    "columnDivider": {
      "type": "boolean",
      "mutable": false,
      "complexType": {
        "original": "boolean",
        "resolved": "boolean",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "name": "vegaVersion",
            "text": "1.3.0"
          }],
        "text": "Specifies whether dividers should be displayed\n   between columns in the table."
      },
      "attribute": "column-divider",
      "reflect": false,
      "defaultValue": "false"
    },
    "striped": {
      "type": "boolean",
      "mutable": false,
      "complexType": {
        "original": "boolean",
        "resolved": "boolean",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "name": "vegaVersion",
            "text": "1.3.0"
          }],
        "text": "Specifies whether alternate colors should be applied\n   to the rows of the table."
      },
      "attribute": "striped",
      "reflect": false,
      "defaultValue": "true"
    },
    "density": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "ResponsiveType<VegaTableDensityType>",
        "resolved": "\"compact\" | \"default\" | \"relaxed\" | { S?: VegaTableDensityType; M?: VegaTableDensityType; L?: VegaTableDensityType; XL?: VegaTableDensityType; default?: VegaTableDensityType; }",
        "references": {
          "ResponsiveType": {
            "location": "import",
            "path": "../../types/ui.type"
          },
          "VegaTableDensityType": {
            "location": "import",
            "path": "./interface"
          }
        }
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "name": "vegaVersion",
            "text": "1.3.0"
          }],
        "text": "Specifies the negative space within the table's cells."
      },
      "attribute": "density",
      "reflect": false,
      "defaultValue": "'default'"
    },
    "paddingX": {
      "type": "unknown",
      "mutable": false,
      "complexType": {
        "original": "[string, string]",
        "resolved": "[string, string]",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "name": "vegaVersion",
            "text": "1.3.0"
          }],
        "text": "Controls the amount of horizontal padding applied to the table."
      },
      "defaultValue": "['8px', '8px']"
    },
    "showHeader": {
      "type": "boolean",
      "mutable": false,
      "complexType": {
        "original": "boolean",
        "resolved": "boolean",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "name": "vegaVersion",
            "text": "1.3.0"
          }],
        "text": "Specifies whether the table header should be displayed."
      },
      "attribute": "show-header",
      "reflect": false,
      "defaultValue": "true"
    },
    "pagination": {
      "type": "unknown",
      "mutable": false,
      "complexType": {
        "original": "VegaTablePagination",
        "resolved": "{ position?: VegaTablePaginationPosition; vegaChange?: (e: CustomEvent<number>) => void; vegaPageSizeChange?: (e: CustomEvent<number>) => void; } & Partial<Pick<HTMLVegaPaginationElement, \"pageSize\" | \"current\" | \"extensions\" | \"pageSizeSelectorOptions\">>",
        "references": {
          "VegaTablePagination": {
            "location": "import",
            "path": "./interface"
          }
        }
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "name": "vegaVersion",
            "text": "1.5.0"
          }],
        "text": "Specifies the pagination configuration."
      },
      "defaultValue": "null"
    },
    "emptyDescription": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "name": "vegaVersion",
            "text": "1.7.0"
          }],
        "text": "Provides a customized message or description that is\n   shown when the table's data source is empty."
      },
      "attribute": "empty-description",
      "reflect": false,
      "defaultValue": "'There is no data to display'"
    },
    "rowKey": {
      "type": "string",
      "mutable": false,
      "complexType": {
        "original": "string",
        "resolved": "string",
        "references": {}
      },
      "required": false,
      "optional": false,
      "docs": {
        "tags": [{
            "name": "vegaVersion",
            "text": "1.9.2"
          }],
        "text": "Defines a unique key for each row in the table."
      },
      "attribute": "row-key",
      "reflect": false,
      "defaultValue": "'key'"
    },
    "scrollConfig": {
      "type": "unknown",
      "mutable": false,
      "complexType": {
        "original": "VegaTableScrollConfig",
        "resolved": "{ maxHeight?: string | number; fixedHeader?: boolean; fixedFooter?: boolean; }",
        "references": {
          "VegaTableScrollConfig": {
            "location": "import",
            "path": "./interface"
          }
        }
      },
      "required": false,
      "optional": true,
      "docs": {
        "tags": [{
            "name": "vegaVersion",
            "text": "1.29.0"
          }],
        "text": "Customizes the behavior and appearance of the\n   scrollable container that wraps the table."
      }
    },
    "sortConfig": {
      "type": "unknown",
      "mutable": false,
      "complexType": {
        "original": "VegaTableSortConfig",
        "resolved": "{ type: \"single\" | \"multiple\"; disableUnsorted?: boolean; }",
        "references": {
          "VegaTableSortConfig": {
            "location": "import",
            "path": "./interface"
          }
        }
      },
      "required": false,
      "optional": true,
      "docs": {
        "tags": [{
            "name": "vegaVersion",
            "text": "2.22.0"
          }],
        "text": "Defines the column sorting options\nHas optional property type: single | multiple\nIf not specified, it defaults to multiple column sorting"
      },
      "defaultValue": "{ type: 'multiple' }"
    }
  }; }
  static get states() { return {
    "selectedRowKeySet": {},
    "expandedRowKeySet": {},
    "currentBreakpoint": {},
    "sortersMap": {},
    "currentData": {},
    "currentClickedRowKey": {},
    "currentPage": {},
    "pageSize": {},
    "editingRows": {},
    "isSelectedAll": {},
    "isTemplateRenderMode": {},
    "columnStructureModel": {}
  }; }
  static get events() { return [{
      "method": "vegaChange",
      "name": "vegaChange",
      "bubbles": true,
      "cancelable": true,
      "composed": true,
      "docs": {
        "tags": [{
            "name": "vegaVersion",
            "text": "1.3.0"
          }],
        "text": "An event emitter notifying changes in the table data."
      },
      "complexType": {
        "original": "VegaTableChangePropType",
        "resolved": "{ sorters?: VegaTableSorterType[]; }",
        "references": {
          "VegaTableChangePropType": {
            "location": "import",
            "path": "./interface"
          }
        }
      }
    }, {
      "method": "change",
      "name": "change",
      "bubbles": true,
      "cancelable": true,
      "composed": true,
      "docs": {
        "tags": [{
            "name": "eventSemantics",
            "text": "namespace:native"
          }, {
            "name": "vegaVersion",
            "text": "2.0.0"
          }],
        "text": "An event emitter notifying changes in the table data."
      },
      "complexType": {
        "original": "VegaTableChangePropType",
        "resolved": "{ sorters?: VegaTableSorterType[]; }",
        "references": {
          "VegaTableChangePropType": {
            "location": "import",
            "path": "./interface"
          }
        }
      }
    }, {
      "method": "vegaRowClick",
      "name": "vegaRowClick",
      "bubbles": true,
      "cancelable": true,
      "composed": true,
      "docs": {
        "tags": [{
            "name": "vegaVersion",
            "text": "1.3.0"
          }],
        "text": "An event emitter notifying the click event of a row\n   in the table."
      },
      "complexType": {
        "original": "VegaTableRowClickPropType",
        "resolved": "{ record: VegaTableDataSourceItem; index: number; }",
        "references": {
          "VegaTableRowClickPropType": {
            "location": "import",
            "path": "./interface"
          }
        }
      }
    }, {
      "method": "rowClick",
      "name": "rowClick",
      "bubbles": true,
      "cancelable": true,
      "composed": true,
      "docs": {
        "tags": [{
            "name": "eventSemantics",
            "text": "namespace:native"
          }, {
            "name": "vegaVersion",
            "text": "2.0.0"
          }],
        "text": "An event emitter notifying the click event of a row\n   in the table."
      },
      "complexType": {
        "original": "VegaTableRowClickPropType",
        "resolved": "{ record: VegaTableDataSourceItem; index: number; }",
        "references": {
          "VegaTableRowClickPropType": {
            "location": "import",
            "path": "./interface"
          }
        }
      }
    }, {
      "method": "vegaRowExpand",
      "name": "vegaRowExpand",
      "bubbles": true,
      "cancelable": true,
      "composed": true,
      "docs": {
        "tags": [{
            "name": "vegaVersion",
            "text": "2.24.0"
          }],
        "text": "An event emitter notifying the expanded event of a row\n   in the table."
      },
      "complexType": {
        "original": "VegaTableRowExpandEventDetail",
        "resolved": "{ record: VegaTableDataSourceItem; expanded: boolean; }",
        "references": {
          "VegaTableRowExpandEventDetail": {
            "location": "import",
            "path": "./interface"
          }
        }
      }
    }, {
      "method": "rowExpand",
      "name": "rowExpand",
      "bubbles": true,
      "cancelable": true,
      "composed": true,
      "docs": {
        "tags": [{
            "name": "eventSemantics",
            "text": "namespace:native"
          }, {
            "name": "vegaVersion",
            "text": "2.24.0"
          }],
        "text": "An event emitter notifying the expanded event of a row\n   in the table."
      },
      "complexType": {
        "original": "VegaTableRowExpandEventDetail",
        "resolved": "{ record: VegaTableDataSourceItem; expanded: boolean; }",
        "references": {
          "VegaTableRowExpandEventDetail": {
            "location": "import",
            "path": "./interface"
          }
        }
      }
    }, {
      "method": "vegaSelectChange",
      "name": "vegaSelectChange",
      "bubbles": true,
      "cancelable": true,
      "composed": true,
      "docs": {
        "tags": [{
            "name": "vegaVersion",
            "text": "1.18.0"
          }],
        "text": "An event emitter notifying when the row selection changes."
      },
      "complexType": {
        "original": "VegaTableRowSelectProp",
        "resolved": "{ selected: boolean; record: VegaTableDataSourceItem; selectedRows: VegaTableDataSourceItem[]; }",
        "references": {
          "VegaTableRowSelectProp": {
            "location": "import",
            "path": "./interface"
          }
        }
      }
    }, {
      "method": "selectChange",
      "name": "selectChange",
      "bubbles": true,
      "cancelable": true,
      "composed": true,
      "docs": {
        "tags": [{
            "name": "eventSemantics",
            "text": "namespace:native"
          }, {
            "name": "vegaVersion",
            "text": "2.0.0"
          }],
        "text": "An event emitter notifying when the selection state of all rows changes."
      },
      "complexType": {
        "original": "VegaTableRowSelectProp",
        "resolved": "{ selected: boolean; record: VegaTableDataSourceItem; selectedRows: VegaTableDataSourceItem[]; }",
        "references": {
          "VegaTableRowSelectProp": {
            "location": "import",
            "path": "./interface"
          }
        }
      }
    }, {
      "method": "vegaSelectAllChange",
      "name": "vegaSelectAllChange",
      "bubbles": true,
      "cancelable": true,
      "composed": true,
      "docs": {
        "tags": [{
            "name": "vegaVersion",
            "text": "1.18.0"
          }],
        "text": "An event emitter notifying changes in the selection of checkboxes,\n   particularly the \"Select All\" checkbox in the table header."
      },
      "complexType": {
        "original": "VegaTableSelectAllProp",
        "resolved": "{ selected: boolean; selectedRows: VegaTableDataSourceItem[]; }",
        "references": {
          "VegaTableSelectAllProp": {
            "location": "import",
            "path": "./interface"
          }
        }
      }
    }, {
      "method": "selectAllChange",
      "name": "selectAllChange",
      "bubbles": true,
      "cancelable": true,
      "composed": true,
      "docs": {
        "tags": [{
            "name": "eventSemantics",
            "text": "namespace:native"
          }, {
            "name": "vegaVersion",
            "text": "2.0.0"
          }],
        "text": "An event emitter notifying changes in the selection of checkboxes,\n   particularly the \"Select All\" checkbox in the table header."
      },
      "complexType": {
        "original": "VegaTableSelectAllProp",
        "resolved": "{ selected: boolean; selectedRows: VegaTableDataSourceItem[]; }",
        "references": {
          "VegaTableSelectAllProp": {
            "location": "import",
            "path": "./interface"
          }
        }
      }
    }, {
      "method": "vegaRowSelect",
      "name": "vegaRowSelect",
      "bubbles": true,
      "cancelable": true,
      "composed": true,
      "docs": {
        "tags": [{
            "name": "vegaVersion",
            "text": "2.23.0"
          }],
        "text": "An event emitter notifying before the selected change when select/deselect one row"
      },
      "complexType": {
        "original": "VegaTableRowSelectEventDetail",
        "resolved": "{ selected: boolean; record: VegaTableDataSourceItem; selectedRows: VegaTableDataSourceItem[]; }",
        "references": {
          "VegaTableRowSelectEventDetail": {
            "location": "import",
            "path": "./interface"
          }
        }
      }
    }, {
      "method": "rowSelect",
      "name": "rowSelect",
      "bubbles": true,
      "cancelable": true,
      "composed": true,
      "docs": {
        "tags": [{
            "name": "eventSemantics",
            "text": "namespace:native"
          }, {
            "name": "vegaVersion",
            "text": "2.23.0"
          }],
        "text": "An event emitter notifying before the selected change when select/deselect one row"
      },
      "complexType": {
        "original": "VegaTableRowSelectEventDetail",
        "resolved": "{ selected: boolean; record: VegaTableDataSourceItem; selectedRows: VegaTableDataSourceItem[]; }",
        "references": {
          "VegaTableRowSelectEventDetail": {
            "location": "import",
            "path": "./interface"
          }
        }
      }
    }, {
      "method": "vegaRowSelectAll",
      "name": "vegaRowSelectAll",
      "bubbles": true,
      "cancelable": true,
      "composed": true,
      "docs": {
        "tags": [{
            "name": "vegaVersion",
            "text": "2.23.0"
          }],
        "text": "An event emitter notifying before the selected change when select/deselect all rows"
      },
      "complexType": {
        "original": "VegaTableRowSelectAllEventDetail",
        "resolved": "{ selected: boolean; selectedRows: VegaTableDataSourceItem[]; changedRows: VegaTableDataSourceItem[]; }",
        "references": {
          "VegaTableRowSelectAllEventDetail": {
            "location": "import",
            "path": "./interface"
          }
        }
      }
    }, {
      "method": "rowSelectAll",
      "name": "rowSelectAll",
      "bubbles": true,
      "cancelable": true,
      "composed": true,
      "docs": {
        "tags": [{
            "name": "eventSemantics",
            "text": "namespace:native"
          }, {
            "name": "vegaVersion",
            "text": "2.23.0"
          }],
        "text": "An event emitter notifying before the selected change when select/deselect all rows"
      },
      "complexType": {
        "original": "VegaTableRowSelectAllEventDetail",
        "resolved": "{ selected: boolean; selectedRows: VegaTableDataSourceItem[]; changedRows: VegaTableDataSourceItem[]; }",
        "references": {
          "VegaTableRowSelectAllEventDetail": {
            "location": "import",
            "path": "./interface"
          }
        }
      }
    }]; }
  static get methods() { return {
    "openExpandRow": {
      "complexType": {
        "signature": "(rowKey: string) => Promise<void>",
        "parameters": [{
            "tags": [{
                "name": "param",
                "text": "rowKey"
              }],
            "text": ""
          }],
        "references": {
          "Promise": {
            "location": "global"
          }
        },
        "return": "Promise<void>"
      },
      "docs": {
        "text": "Invoke this method to expand the row with the specified `rowKey`,\n   revealing additional content.",
        "tags": [{
            "name": "param",
            "text": "rowKey"
          }, {
            "name": "vegaVersion",
            "text": "1.3.0"
          }]
      }
    },
    "closeExpandRow": {
      "complexType": {
        "signature": "(rowKey: string) => Promise<void>",
        "parameters": [{
            "tags": [{
                "name": "param",
                "text": "rowKey"
              }],
            "text": ""
          }],
        "references": {
          "Promise": {
            "location": "global"
          }
        },
        "return": "Promise<void>"
      },
      "docs": {
        "text": "Invoke this method to close the expanded row with the specified `rowKey`.",
        "tags": [{
            "name": "param",
            "text": "rowKey"
          }, {
            "name": "vegaVersion",
            "text": "1.3.0"
          }]
      }
    },
    "closeAllExpandRow": {
      "complexType": {
        "signature": "() => Promise<void>",
        "parameters": [],
        "references": {
          "Promise": {
            "location": "global"
          }
        },
        "return": "Promise<void>"
      },
      "docs": {
        "text": "Invoke this method to close all expanded rows.",
        "tags": [{
            "name": "vegaVersion",
            "text": "1.3.0"
          }]
      }
    },
    "toggleExpandRow": {
      "complexType": {
        "signature": "(rowKey: string) => Promise<void>",
        "parameters": [{
            "tags": [{
                "name": "param",
                "text": "rowKey"
              }],
            "text": ""
          }],
        "references": {
          "Promise": {
            "location": "global"
          }
        },
        "return": "Promise<void>"
      },
      "docs": {
        "text": "Invoke this method to toggle the expandable row with the\n   specified `rowKey`, expanding it if it is currently\n   collapsed and collapsing it if it is currently expanded.",
        "tags": [{
            "name": "param",
            "text": "rowKey"
          }, {
            "name": "vegaVersion",
            "text": "1.3.0"
          }]
      }
    },
    "clearSelection": {
      "complexType": {
        "signature": "() => Promise<void>",
        "parameters": [],
        "references": {
          "Promise": {
            "location": "global"
          }
        },
        "return": "Promise<void>"
      },
      "docs": {
        "text": "Invoke this method to clear the selected row keys,\n   removing any current selection.",
        "tags": [{
            "name": "vegaVersion",
            "text": "1.3.0"
          }]
      }
    },
    "getSelection": {
      "complexType": {
        "signature": "() => Promise<string[]>",
        "parameters": [],
        "references": {
          "Promise": {
            "location": "global"
          }
        },
        "return": "Promise<string[]>"
      },
      "docs": {
        "text": "Invoke this method to retrieve the selected row keys,\n   provided an array or list of the keys representing\n   the currently selected rows.",
        "tags": [{
            "name": "vegaVersion",
            "text": "1.3.0"
          }]
      }
    },
    "setSelection": {
      "complexType": {
        "signature": "(keys: string[]) => Promise<void>",
        "parameters": [{
            "tags": [{
                "name": "param",
                "text": "keys - Row keys to be set as selected."
              }],
            "text": "- Row keys to be set as selected."
          }],
        "references": {
          "Promise": {
            "location": "global"
          }
        },
        "return": "Promise<void>"
      },
      "docs": {
        "text": "Invoke this method to set the selected row keys,\n   specifying an array or list of keys to represent\n   the desired selected rows.",
        "tags": [{
            "name": "param",
            "text": "keys - Row keys to be set as selected."
          }, {
            "name": "vegaVersion",
            "text": "1.3.0"
          }]
      }
    },
    "startRowEditMode": {
      "complexType": {
        "signature": "(rowKey: string) => Promise<void>",
        "parameters": [{
            "tags": [],
            "text": ""
          }],
        "references": {
          "Promise": {
            "location": "global"
          }
        },
        "return": "Promise<void>"
      },
      "docs": {
        "text": "Invoke this method to start the edit mode for the row\n   with the specified `rowKey`.",
        "tags": [{
            "name": "VegaWarning",
            "text": "Note: This method only works with editable tables."
          }, {
            "name": "vegaVersion",
            "text": "1.19.0"
          }]
      }
    },
    "stopRowEditMode": {
      "complexType": {
        "signature": "(rowKey: string) => Promise<void>",
        "parameters": [{
            "tags": [],
            "text": ""
          }],
        "references": {
          "Promise": {
            "location": "global"
          }
        },
        "return": "Promise<void>"
      },
      "docs": {
        "text": "Invoke this method to stop the edit mode for the row\n   with the specified `rowKey`.",
        "tags": [{
            "name": "VegaWarning",
            "text": "Note: This method only works with editable tables."
          }, {
            "name": "vegaVersion",
            "text": "1.19.0"
          }]
      }
    },
    "stopAllRowEditMode": {
      "complexType": {
        "signature": "() => Promise<void>",
        "parameters": [],
        "references": {
          "Promise": {
            "location": "global"
          }
        },
        "return": "Promise<void>"
      },
      "docs": {
        "text": "Invoke this method to stop the edit mode for all rows,\n   exiting the edit mode for each row currently\n   in the editing state.",
        "tags": [{
            "name": "VegaWarning",
            "text": "Note: This method only works with editable tables."
          }, {
            "name": "vegaVersion",
            "text": "1.19.0"
          }]
      }
    },
    "getRowData": {
      "complexType": {
        "signature": "(rowKey: string) => Promise<VegaTableDataSourceItem>",
        "parameters": [{
            "tags": [{
                "name": "param",
                "text": "rowKey The row's unique key."
              }],
            "text": "The row's unique key."
          }],
        "references": {
          "Promise": {
            "location": "global"
          },
          "VegaTableDataSourceItem": {
            "location": "import",
            "path": "./interface"
          }
        },
        "return": "Promise<VegaTableDataSourceItem>"
      },
      "docs": {
        "text": "Invoke this method to retrieve the data of the row with\n   the specified `rowKey`, obtaining the complete set of\n   information associated with that row.",
        "tags": [{
            "name": "param",
            "text": "rowKey The row's unique key."
          }, {
            "name": "VegaWarning",
            "text": "Note: This method only works with editable tables."
          }, {
            "name": "vegaVersion",
            "text": "1.19.0"
          }]
      }
    },
    "getRowsData": {
      "complexType": {
        "signature": "() => Promise<VegaTableDataSourceItem[]>",
        "parameters": [],
        "references": {
          "Promise": {
            "location": "global"
          },
          "VegaTableDataSourceItem": {
            "location": "import",
            "path": "./interface"
          }
        },
        "return": "Promise<VegaTableDataSourceItem[]>"
      },
      "docs": {
        "text": "Invoke this method to retrieve all rows of data,\n   obtaining the complete set of information\n   associated with each row.",
        "tags": [{
            "name": "VegaWarning",
            "text": "Note: This method only works with editable tables."
          }, {
            "name": "vegaVersion",
            "text": "1.19.0"
          }]
      }
    },
    "getFormRef": {
      "complexType": {
        "signature": "(rowKey?: string) => Promise<HTMLVegaFormElement>",
        "parameters": [{
            "tags": [],
            "text": ""
          }],
        "references": {
          "Promise": {
            "location": "global"
          },
          "HTMLVegaFormElement": {
            "location": "global"
          }
        },
        "return": "Promise<HTMLVegaFormElement>"
      },
      "docs": {
        "text": "Invoke this method to retrieve the table row reference\n   based on the provided `rowKey`.\n\nIf the `rowKey` is empty, this method will return the\n   reference to the table form.",
        "tags": [{
            "name": "param",
            "text": "optional rowKey"
          }, {
            "name": "VegaWarning",
            "text": "Note: This method only works with editable tables."
          }, {
            "name": "vegaVersion",
            "text": "1.19.0"
          }]
      }
    },
    "addNewRow": {
      "complexType": {
        "signature": "(record?: VegaTableDataSourceItem) => Promise<string>",
        "parameters": [{
            "tags": [{
                "name": "param",
                "text": "record the default record of the new row"
              }],
            "text": "the default record of the new row"
          }],
        "references": {
          "Promise": {
            "location": "global"
          },
          "VegaTableDataSourceItem": {
            "location": "import",
            "path": "./interface"
          }
        },
        "return": "Promise<string>"
      },
      "docs": {
        "text": "Invoke this method to add a new row to the editable table.",
        "tags": [{
            "name": "param",
            "text": "record the default record of the new row"
          }, {
            "name": "returns",
            "text": "the rowKey of the new row"
          }, {
            "name": "VegaWarning",
            "text": "Note: This method only works with editable tables."
          }, {
            "name": "vegaVersion",
            "text": "1.19.0"
          }]
      }
    },
    "saveEditRow": {
      "complexType": {
        "signature": "(rowKey: string) => Promise<void>",
        "parameters": [{
            "tags": [],
            "text": ""
          }],
        "references": {
          "Promise": {
            "location": "global"
          }
        },
        "return": "Promise<void>"
      },
      "docs": {
        "text": "Invoke this method to save the edited row data to\n   the `currentData` and stop the edit mode\n   for that row.\n\nThis action will not affect the editing mode of other rows.",
        "tags": [{
            "name": "VegaWarning",
            "text": "Note: This method only works with editable tables."
          }, {
            "name": "vegaVersion",
            "text": "1.19.0"
          }]
      }
    },
    "saveAllEditRows": {
      "complexType": {
        "signature": "() => Promise<void>",
        "parameters": [],
        "references": {
          "Promise": {
            "location": "global"
          }
        },
        "return": "Promise<void>"
      },
      "docs": {
        "text": "Invoke this method to save the data of all edited rows to\n   the `currentData` and stop the edit mode for\n   all rows in the table.",
        "tags": [{
            "name": "VegaWarning",
            "text": "Note: This method only works with editable tables."
          }, {
            "name": "vegaVersion",
            "text": "1.19.0"
          }]
      }
    },
    "getEditingRowsKey": {
      "complexType": {
        "signature": "() => Promise<string[]>",
        "parameters": [],
        "references": {
          "Promise": {
            "location": "global"
          }
        },
        "return": "Promise<string[]>"
      },
      "docs": {
        "text": "Invoke this method to obtain the keys of the rows currently\n   in the editing mode in the table.",
        "tags": [{
            "name": "VegaWarning",
            "text": "Note: This method only works with editable tables."
          }, {
            "name": "vegaVersion",
            "text": "1.19.0"
          }]
      }
    },
    "removeRow": {
      "complexType": {
        "signature": "(rowKey: string) => Promise<void>",
        "parameters": [{
            "tags": [{
                "name": "param",
                "text": "rowKey The rowKey of the row to remove."
              }],
            "text": "The rowKey of the row to remove."
          }],
        "references": {
          "Promise": {
            "location": "global"
          }
        },
        "return": "Promise<void>"
      },
      "docs": {
        "text": "Invoke this method to remove a row from the `currentData`\n   based on the specified `rowKey` in the table.",
        "tags": [{
            "name": "param",
            "text": "rowKey The rowKey of the row to remove."
          }, {
            "name": "VegaWarning",
            "text": "Note: This method only works with editable tables."
          }, {
            "name": "vegaVersion",
            "text": "1.19.0"
          }]
      }
    }
  }; }
  static get elementRef() { return "host"; }
  static get watchers() { return [{
      "propName": "selectedRowKeySet",
      "methodName": "watchSelectedRowKeySet"
    }, {
      "propName": "sortersMap",
      "methodName": "watchSortersMap"
    }, {
      "propName": "currentData",
      "methodName": "watchCurrentData"
    }, {
      "propName": "currentPage",
      "methodName": "watchCurrentPage"
    }, {
      "propName": "isSelectedAll",
      "methodName": "watchSelectedAll"
    }, {
      "propName": "isTemplateRenderMode",
      "methodName": "watchTemplateRenderMode"
    }, {
      "propName": "columnStructureModel",
      "methodName": "watchColumnStructureModel"
    }, {
      "propName": "columns",
      "methodName": "watchColumns"
    }, {
      "propName": "groupColumns",
      "methodName": "watchGroupColumns"
    }, {
      "propName": "dataSource",
      "methodName": "watchDataSource"
    }, {
      "propName": "rowSelection",
      "methodName": "watchRowSelection"
    }, {
      "propName": "rowExpandable",
      "methodName": "watchRowExpandable"
    }, {
      "propName": "rowClickable",
      "methodName": "watchRowClickable"
    }, {
      "propName": "rowDivider",
      "methodName": "watchRowDivider"
    }, {
      "propName": "columnDivider",
      "methodName": "watchColumnDivider"
    }, {
      "propName": "striped",
      "methodName": "watchStriped"
    }, {
      "propName": "density",
      "methodName": "watchDensity"
    }, {
      "propName": "paddingX",
      "methodName": "watchPaddingX"
    }, {
      "propName": "pagination",
      "methodName": "watchPagination"
    }, {
      "propName": "scrollConfig",
      "methodName": "watchScrollConfig"
    }]; }
}
__decorate([
  InjectVegaGlobalSlimmer()
], VegaTable.prototype, "globalSlimmers", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTable.prototype, "translationSlimmer", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTable.prototype, "vegaTableRenderModeController", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTable.prototype, "vegaTableColumnStructureModelController", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTable.prototype, "vegaTableRenderInputController", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTable.prototype, "vegaTablePinnedRenderer", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTable.prototype, "vegaTableRenderer", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTable.prototype, "vegaTableHeaderRenderer", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTable.prototype, "vegaTableBodyRenderer", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTable.prototype, "vegaTableRowRenderer", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTable.prototype, "vegaTableCellRenderer", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTable.prototype, "vegaTablePaginationRenderer", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTable.prototype, "vegaTableScrollContainerRenderer", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTable.prototype, "vegaTableExpandRowController", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTable.prototype, "vegaTableRowSelectionController", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTable.prototype, "vegaTableDataSourceController", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTable.prototype, "vegaTablePaginationController", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTable.prototype, "vegaTableEditableController", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTable.prototype, "vegaTableSortController", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTable.prototype, "vegaTableColGroupRenderer", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTable.prototype, "vegaTableChildrenController", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTable.prototype, "pageResizeObserverSlimmer", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTable.prototype, "rowSelectionNotifySlimmer", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTable.prototype, "rowExpandableNotifySlimmer", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTable.prototype, "paddingXNotifySlimmer", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTable.prototype, "rowClickableNotifySlimmer", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTable.prototype, "scrollConfigNotifySlimmer", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTable.prototype, "eventsPrevent", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTable.prototype, "changeEventEmitter", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTable.prototype, "selectChangeEventEmitter", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTable.prototype, "selectAllChangeEventEmitter", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTable.prototype, "rowClickEventEmitter", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTable.prototype, "rowExpandEventEmitter", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTable.prototype, "rowDividerNotifySlimmer", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTable.prototype, "columnDividerNotifySlimmer", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTable.prototype, "densityNotifySlimmer", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTable.prototype, "isTemplateRenderModeNotifySlimmer", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTable.prototype, "currentDataNotifySlimmer", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTable.prototype, "vegaComponentUsageRuntimeMetricsSlimmer", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTable.prototype, "rowSelectEventEmitter", void 0);
__decorate([
  InjectVegaSlimmer()
], VegaTable.prototype, "rowSelectAllEventEmitter", void 0);
