@paperless/core 1.52.3 → 1.52.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/hydrate/index.js CHANGED
@@ -21979,17 +21979,16 @@ class Table {
21979
21979
  return this._items.map((item, index) => (hAsync("p-table-row", { enableHover: this._enableRowSelection || this.enableRowClick, onClick: ev => this._rowClick(ev, index) }, this._getRowColumns(item, index))));
21980
21980
  }
21981
21981
  _getRowColumns(item, index) {
21982
- var _a;
21982
+ const actions = this._rowActionsRow.filter(a => a.showFunction ? a.showFunction(item) : true);
21983
21983
  const columns = this._columns.map((col, colIndex) => {
21984
- return (hAsync("p-table-cell", { definition: col, item: item, checkbox: colIndex === 0 || col.hasCheckbox ? this._getCheckbox(index) : null, index: colIndex, rowIndex: index, tableHasActions: !!this._rowActionsRow.length && !isMobile() }));
21984
+ return (hAsync("p-table-cell", { definition: col, item: item, checkbox: colIndex === 0 || col.hasCheckbox ? this._getCheckbox(index) : null, index: colIndex, rowIndex: index, tableHasActions: !!actions.length && !isMobile() }));
21985
21985
  });
21986
- if (((_a = this._rowActionsRow) === null || _a === void 0 ? void 0 : _a.length) && !isMobile()) {
21986
+ if ((actions === null || actions === void 0 ? void 0 : actions.length) && !isMobile()) {
21987
21987
  const def = this._parseRowActionsRowDefinition();
21988
- const actions = this._rowActionsRow.filter(a => a.showFunction ? a.showFunction(item) : true);
21989
21988
  if (!actions.length) {
21990
21989
  return columns;
21991
21990
  }
21992
- columns.push(hAsync("p-table-cell", { variant: 'actions', definition: def, item: item, index: this._columns.length - 1, rowIndex: index, tableHasActions: !!this._rowActionsRow.length }, hAsync("div", { slot: 'actions', class: 'ml-auto flex items-center gap-2' }, actions.map(a => (hAsync("p-tooltip", { content: a.label }, hAsync("p-button", { "data-is-action": true, variant: 'secondary', slot: 'trigger', icon: a.icon, iconRotate: a.iconRotate, iconFlip: a.iconFlip, iconOnly: true, size: 'small', onClick: () => { var _a; return typeof a.action === 'function' && ((_a = a.action) === null || _a === void 0 ? void 0 : _a.call(a, item, false)); } })))))));
21991
+ columns.push(hAsync("p-table-cell", { variant: 'actions', definition: def, item: item, index: this._columns.length - 1, rowIndex: index, tableHasActions: true }, hAsync("div", { slot: 'actions', class: 'ml-auto flex items-center gap-2' }, actions.map(a => (hAsync("p-tooltip", { content: a.label }, hAsync("p-button", { "data-is-action": true, variant: 'secondary', slot: 'trigger', icon: a.icon, iconRotate: a.iconRotate, iconFlip: a.iconFlip, iconOnly: true, size: 'small', onClick: () => { var _a; return typeof a.action === 'function' && ((_a = a.action) === null || _a === void 0 ? void 0 : _a.call(a, item, false)); } })))))));
21993
21992
  }
21994
21993
  return columns;
21995
21994
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@paperless/core",
3
- "version": "1.52.3",
3
+ "version": "1.52.5",
4
4
  "description": "Stencil Component Starter",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.js",
@@ -1 +0,0 @@
1
- {"version":3,"names":["tableComponentCss","Table","this","_rowActionsFloatingAll","_ctrlDown","_hasCustomFilterSlot","_floatingMenuShown","amount","formatTranslation","_c","_a","_locales","floating_menu","amount_selected","_b","amount_selected_plural","replace","defaultSize","defaultSizeOptions","empty_state","no_filter","header","content","action","filtered","enableRowSelection","componentWillLoad","_el","querySelector","_setRowSelectionData","_setLocales","_parseItems","items","_generateColumns","componentDidRender","hasRendered","emit","render","h","Host","class","shadow","enableHeader","quickFilters","activeQuickFilterIdentifier","onQuickFilter","detail","quickFilter","enableSearch","query","onQueryChange","queryChange","enableFilter","selectedFiltersAmount","filterButtonTemplate","onFilter","filter","enableAction","actionIcon","actionButtonIcon","actionText","actionButtonText","actionLoading","actionButtonLoading","canUseAction","actionButtonEnabled","actionButtonTemplate","onAction","itemsSelectedAmount","selectedRows","length","loading","headerLoading","name","slot","_getHeader","_getRows","enableFooter","hideOnSinglePage","enablePageSize","pageSize","pageSizeOptions","onPageSizeChange","pageSizeChange","enablePagination","page","total","onPageChange","pageChange","enableExport","onExport","export","footerLoading","enableFloatingMenu","_enableRowSelection","usedInTable","hover","_rowActionsFloating","floatingMenuAmountSelectedTemplate","_d","_e","variant","_f","map","a","disabled","onClick","type","label","icon","rotate","iconRotate","flip","iconFlip","_g","_selectAllChange","getLocaleComponentStrings","onTableDefinitionUpdated","keyDown","key","keyUp","visibilityChange","document","visibilityState","_items","Array","isArray","JSON","parse","_resizeTimeout","clearTimeout","setTimeout","mobile","isMobile","actions","from","querySelectorAll","_rowActionsRow","rowSelectionLimit","undefined","_rowSelectionLimit","_showFloatingMenu","definitions","definitionsArray","_parseDefinitions","_columns","col","index","definition","value","checkbox","hasCheckbox","_getCheckbox","amountOfLoadingRows","_","i","enableHover","enableRowClick","_getLoadingColumns","_getEmptyState","item","ev","_rowClick","_getRowColumns","columns","colIndex","rowIndex","tableHasActions","def","_parseRowActionsRowDefinition","showFunction","push","iconOnly","size","call","selectionKey","onChange","checked","_selectionContainsAll","indeterminate","_selectionIndeterminate","selectionContains","_selectionContains","_checkboxChange","target","canSelectKey","emptyStateFilteredHeader","emptyStateFilteredContent","enableEmptyStateAction","emptyStateActionClick","emptyStateHeader","emptyStateContent","emptyStateAction","$event","forceValue","_getCheckedValue","toAdd","row","rowSelected","selectedRowsChange","find","d","_getSelectionValue","rowDeselected","indexOfToRemove","selection","splice","returnIndex","returnValue","findIndex","contains","containsCount","tagName","toLowerCase","_findRow","_findRowAction","rowClick","ctrlDown","el","parentElement","getAttribute","_parseDefinitionSizes","isLast","matchedIsLast","tableColumSizesOptions","reduce","data","parsedSizes","isLastAtSizeFound","_findLastDefinitionBySize","slice","reverse","definitionAny","default","sizes","includes","entries","lastColumn","align","path"],"sources":["src/components/organisms/table/table.component.scss?tag=p-table","src/components/organisms/table/table.component.tsx"],"sourcesContent":["p-table {\n\t@apply relative flex flex-col;\n\n\t.p-input[type='checkbox'] {\n\t\tflex-shrink: 0;\n\t}\n\n\tp-table-container {\n\t\t@apply relative;\n\n\t\tp-floating-menu-container {\n\t\t\t@apply fixed bottom-4 left-1/2 -translate-x-1/2 transform;\n\t\t\tanimation: forwards floatingMenuContainerIn 0.3s ease !important;\n\n\t\t\t@screen tablet {\n\t\t\t\t@apply absolute bottom-16;\n\t\t\t}\n\n\t\t\t&:not(.shown) {\n\t\t\t\t@apply hidden;\n\t\t\t}\n\n\t\t\t&.inactive {\n\t\t\t\tanimation: forwards floatingMenuContainerOut 0.3s ease !important;\n\t\t\t}\n\t\t}\n\t}\n}\n\n@keyframes floatingMenuContainerOut {\n\t0% {\n\t\tdisplay: flex;\n\t\ttransform: translateY(0) translateX(-50%);\n\t\topacity: 100;\n\t}\n\t99% {\n\t\ttransform: translateY(100%) translateX(-50%);\n\t\topacity: 0;\n\t\tdisplay: flex;\n\t}\n\t100% {\n\t\ttransform: translateY(100%) translateX(-50%);\n\t\topacity: 0;\n\t\tdisplay: none;\n\t}\n}\n\n@keyframes floatingMenuContainerIn {\n\t0% {\n\t\ttransform: translateY(100%) translateX(-50%);\n\t\topacity: 0;\n\t\tdisplay: none;\n\t}\n\t1% {\n\t\ttransform: translateY(100%) translateX(-50%);\n\t\topacity: 0;\n\t\tdisplay: flex;\n\t}\n\t100% {\n\t\ttransform: translateY(0) translateX(-50%);\n\t\topacity: 100;\n\t\tdisplay: flex;\n\t}\n}\n","import {\n\tComponent,\n\tElement,\n\tEvent,\n\tEventEmitter,\n\th,\n\tHost,\n\tListen,\n\tProp,\n\tState,\n\tWatch,\n} from '@stencil/core';\nimport { IconVariant } from '../../../components';\nimport { tableColumSizesOptions } from '../../../types/constants';\nimport {\n\tQuickFilter,\n\tRowClickEvent,\n\tTableColumnSizes,\n} from '../../../types/table';\nimport {\n\tformatTranslation,\n\tgetLocaleComponentStrings,\n\tisMobile,\n} from '../../../utils';\nimport { TableColumn } from '../../helpers/table-column/table-column.component';\nimport { TableRowAction } from '../../helpers/table-row-action/table-row-action.component';\nimport {\n\tdefaultSize,\n\tdefaultSizeOptions,\n} from '../../molecules/page-size-select/constants';\nimport { buttonTemplateFunc } from '../../molecules/table-header/table-header.component';\n\nexport type templateFunc = () => string;\nexport type amountSelectedTemplateFunc = (amount: number) => string;\n\n@Component({\n\ttag: 'p-table',\n\tstyleUrl: 'table.component.scss',\n})\nexport class Table {\n\t/**\n\t * The items to be fed to the table\n\t */\n\t@Prop() items: string;\n\n\t/**\n\t * Wether data is loading\n\t */\n\t@Prop() loading: boolean = false;\n\n\t/**\n\t * Wether the header should show loading state\n\t */\n\t@Prop() headerLoading: boolean = false;\n\n\t/**\n\t * Wether the footer should show loading state\n\t */\n\t@Prop() footerLoading: boolean = false;\n\n\t/**\n\t * The amount of loading rows to show\n\t */\n\t@Prop() amountOfLoadingRows: number = 6;\n\n\t/**\n\t * Wether to enable selection\n\t */\n\t@Prop() enableRowSelection: boolean = true;\n\n\t/**\n\t * A limit to the amount of rows that can be selected\n\t */\n\t@Prop() rowSelectionLimit: number | undefined;\n\n\t/**\n\t * Wether to enable row clicking\n\t */\n\t@Prop() enableRowClick: boolean = true;\n\n\t/**\n\t * The current selection of items\n\t */\n\t@Prop() selectedRows: any[] = [];\n\n\t/**\n\t * Wether to enable the floating menu\n\t */\n\t@Prop() enableFloatingMenu: boolean = true;\n\n\t/**\n\t * The template for amount selected item in the floating menu\n\t */\n\t@Prop() floatingMenuAmountSelectedTemplate: amountSelectedTemplateFunc = (\n\t\tamount: number\n\t) =>\n\t\tformatTranslation(\n\t\t\t(amount === 1\n\t\t\t\t? this._locales.floating_menu?.amount_selected\n\t\t\t\t: this._locales.floating_menu?.amount_selected_plural\n\t\t\t)?.replace('{{amount}}', amount)\n\t\t);\n\n\t/**\n\t * Event whenever the current selection changes\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tselectedRowsChange: EventEmitter<any>;\n\n\t/**\n\t * The key to determine if a row is selected\n\t */\n\t@Prop() selectionKey: string;\n\n\t/**\n\t * A key to determine if a row can be selected\n\t */\n\t@Prop() canSelectKey: string;\n\n\t/**\n\t * Event whenever a row is clicked\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\trowClick: EventEmitter<RowClickEvent>;\n\n\t/**\n\t * Event whenever a row is selected\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\trowSelected: EventEmitter<any>;\n\n\t/**\n\t * Event whenever a row is deselected\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\trowDeselected: EventEmitter<any>;\n\n\t/**\n\t * Event when the table has rendered\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\thasRendered: EventEmitter<number>;\n\n\t/** START HEADER */\n\n\t/**\n\t * Wether to show the header\n\t */\n\t@Prop() enableHeader: boolean = true;\n\n\t/**\n\t * Quick filters to show\n\t */\n\t@Prop() quickFilters: QuickFilter[] = [];\n\n\t/**\n\t * Active quick filter identifier\n\t */\n\t@Prop() activeQuickFilterIdentifier: string;\n\n\t/**\n\t * Wether to show the search input\n\t */\n\t@Prop() enableSearch: boolean = true;\n\n\t/**\n\t * The query to show in the search bar\n\t */\n\t@Prop({ mutable: true }) query: string;\n\n\t/**\n\t * Wether to show the filter button\n\t */\n\t@Prop() enableFilter: boolean = true;\n\n\t/**\n\t * The amount of filters being selected\n\t */\n\t@Prop() selectedFiltersAmount: number;\n\n\t/**\n\t * The template for the filter button text\n\t */\n\t@Prop() filterButtonTemplate: templateFunc;\n\n\t/**\n\t * Wether to show the action button\n\t */\n\t@Prop() enableAction: boolean = false;\n\n\t/**\n\t * Wether the action button is loading\n\t */\n\t@Prop() actionButtonLoading: boolean = false;\n\n\t/**\n\t * Wether the action button is enabled\n\t */\n\t@Prop() actionButtonEnabled: boolean = false;\n\n\t/**\n\t * The action button icon\n\t */\n\t@Prop() actionButtonIcon: IconVariant = 'pencil';\n\n\t/**\n\t * The action button text if changed\n\t */\n\t@Prop() actionButtonText: string;\n\n\t/**\n\t * The template for the action button text\n\t */\n\t@Prop() actionButtonTemplate: buttonTemplateFunc;\n\n\t/**\n\t * Event when one of the quick filters is clicked\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tquickFilter: EventEmitter<QuickFilter>;\n\n\t/**\n\t * Event when the query changes\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tqueryChange: EventEmitter<string>;\n\n\t/**\n\t * Event when the filter button is clicked\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tfilter: EventEmitter<null>;\n\n\t/**\n\t * Event when the action button is clicked\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\taction: EventEmitter<null>;\n\n\t/** START FOOTER */\n\n\t/**\n\t * Wether to show the header\n\t */\n\t@Prop() enableFooter: boolean = true;\n\n\t/**\n\t * Wether to enable page size select\n\t */\n\t@Prop() enablePageSize: boolean = true;\n\n\t/**\n\t * Wether to enable pagination\n\t */\n\t@Prop() enablePagination: boolean = true;\n\n\t/**\n\t * Wether to enable export\n\t */\n\t@Prop() enableExport: boolean = true;\n\n\t/**\n\t * The current page\n\t */\n\t@Prop({ mutable: true, reflect: true }) page: number = 1;\n\n\t/**\n\t * The total amount of items\n\t */\n\t@Prop() total!: number;\n\n\t/**\n\t * Event whenever the page changes\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tpageChange: EventEmitter<number>;\n\n\t/**\n\t * The amount of items per page\n\t */\n\t@Prop() pageSize: number = defaultSize;\n\n\t/**\n\t * The options for the page size\n\t */\n\t@Prop() pageSizeOptions: number[] = defaultSizeOptions;\n\n\t/**\n\t * Event whenever the page changes\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tpageSizeChange: EventEmitter<number>;\n\n\t/**\n\t * Event whenever the page changes\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\texport: EventEmitter<number>;\n\n\t/**\n\t * Wether to hide when there is only 1 page available\n\t */\n\t@Prop() hideOnSinglePage: boolean = true;\n\n\t/* Empty state start */\n\t@Prop() emptyStateHeader: templateFunc = () =>\n\t\tformatTranslation(this._locales.empty_state?.no_filter.header);\n\t@Prop() emptyStateContent: templateFunc = () =>\n\t\tformatTranslation(this._locales.empty_state?.no_filter.content);\n\t@Prop() emptyStateAction: templateFunc = () =>\n\t\tformatTranslation(this._locales.empty_state?.no_filter.action);\n\t/**\n\t * Wether to enable empty state action\n\t */\n\t@Prop() enableEmptyStateAction: boolean = true;\n\n\t@Prop() emptyStateFilteredHeader: templateFunc = () =>\n\t\tformatTranslation(this._locales.empty_state.filtered.header);\n\t@Prop() emptyStateFilteredContent: templateFunc = () =>\n\t\tformatTranslation(this._locales.empty_state.filtered.content);\n\n\t/**\n\t * Event whenever the empty state is clicked\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\temptyStateActionClick: EventEmitter<null>;\n\n\t/*\n\t * Wether to show the shadow or not\n\t */\n\t@Prop() shadow: boolean = true;\n\n\t/* Empty state end */\n\n\t/**\n\t * The host element\n\t */\n\t@Element() private _el: HTMLElement;\n\n\t/**\n\t * Locales used for this component\n\t */\n\t@State() private _locales: any = {};\n\n\t@State() private _columns: any[] = [];\n\t@State() private _items: any[] = [];\n\n\t@State() private _enableRowSelection: boolean = this.enableRowSelection;\n\t@State() private _rowSelectionLimit: number | undefined;\n\n\tprivate _rowActionsFloatingAll: TableRowAction[] = [];\n\t@State() private _rowActionsFloating: TableRowAction[] = [];\n\t@State() private _rowActionsRow: TableRowAction[] = [];\n\n\tprivate _ctrlDown = false;\n\tprivate _hasCustomFilterSlot = false;\n\tprivate _floatingMenuShown = false;\n\tprivate _resizeTimeout: NodeJS.Timer;\n\n\tcomponentWillLoad() {\n\t\tthis._hasCustomFilterSlot = !!this._el.querySelector(\n\t\t\t':scope > [slot=\"custom-filter\"]'\n\t\t);\n\n\t\tthis._setRowSelectionData();\n\n\t\tthis._setLocales();\n\t\tthis._parseItems(this.items);\n\t\tthis._generateColumns();\n\t}\n\n\tcomponentDidRender() {\n\t\tthis.hasRendered.emit();\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class='p-table'>\n\t\t\t\t<p-table-container shadow={this.shadow}>\n\t\t\t\t\t{this.enableHeader && (\n\t\t\t\t\t\t<p-table-header\n\t\t\t\t\t\t\t// quick filters\n\t\t\t\t\t\t\tquickFilters={this.quickFilters}\n\t\t\t\t\t\t\tactiveQuickFilterIdentifier={this.activeQuickFilterIdentifier}\n\t\t\t\t\t\t\tonQuickFilter={({ detail }) => this.quickFilter.emit(detail)}\n\t\t\t\t\t\t\t// search\n\t\t\t\t\t\t\tenableSearch={this.enableSearch}\n\t\t\t\t\t\t\tquery={this.query}\n\t\t\t\t\t\t\tonQueryChange={({ detail }) => this.queryChange.emit(detail)}\n\t\t\t\t\t\t\t// filter button\n\t\t\t\t\t\t\tenableFilter={this.enableFilter}\n\t\t\t\t\t\t\tselectedFiltersAmount={this.selectedFiltersAmount}\n\t\t\t\t\t\t\tfilterButtonTemplate={this.filterButtonTemplate}\n\t\t\t\t\t\t\tonFilter={() => this.filter.emit()}\n\t\t\t\t\t\t\t// action button\n\t\t\t\t\t\t\tenableAction={this.enableAction}\n\t\t\t\t\t\t\tactionIcon={this.actionButtonIcon}\n\t\t\t\t\t\t\tactionText={this.actionButtonText}\n\t\t\t\t\t\t\tactionLoading={this.actionButtonLoading}\n\t\t\t\t\t\t\tcanUseAction={this.actionButtonEnabled}\n\t\t\t\t\t\t\tactionButtonTemplate={this.actionButtonTemplate}\n\t\t\t\t\t\t\tonAction={() => this.action.emit()}\n\t\t\t\t\t\t\titemsSelectedAmount={this.selectedRows?.length}\n\t\t\t\t\t\t\t//loading\n\t\t\t\t\t\t\tloading={this.headerLoading}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{this._hasCustomFilterSlot && (\n\t\t\t\t\t\t\t\t<slot\n\t\t\t\t\t\t\t\t\tname='custom-filter'\n\t\t\t\t\t\t\t\t\tslot='custom-filter'\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</p-table-header>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{this._getHeader()}\n\t\t\t\t\t<div class='flex flex-1 flex-col'>{this._getRows()}</div>\n\n\t\t\t\t\t{this.enableFooter && (\n\t\t\t\t\t\t<p-table-footer\n\t\t\t\t\t\t\t// overall\n\t\t\t\t\t\t\thideOnSinglePage={this.hideOnSinglePage}\n\t\t\t\t\t\t\t// page size select\n\t\t\t\t\t\t\tenablePageSize={this.enablePageSize}\n\t\t\t\t\t\t\tpageSize={this.pageSize}\n\t\t\t\t\t\t\tpageSizeOptions={this.pageSizeOptions}\n\t\t\t\t\t\t\tonPageSizeChange={({ detail }) =>\n\t\t\t\t\t\t\t\tthis.pageSizeChange.emit(detail)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// pagination\n\t\t\t\t\t\t\tenablePagination={this.enablePagination}\n\t\t\t\t\t\t\tpage={this.page}\n\t\t\t\t\t\t\ttotal={this.total}\n\t\t\t\t\t\t\tonPageChange={({ detail }) => this.pageChange.emit(detail)}\n\t\t\t\t\t\t\t// export\n\t\t\t\t\t\t\tenableExport={this.enableExport}\n\t\t\t\t\t\t\tonExport={() => this.export.emit()}\n\t\t\t\t\t\t\t//loading\n\t\t\t\t\t\t\tloading={this.footerLoading}\n\t\t\t\t\t\t></p-table-footer>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{this.enableFloatingMenu && this._enableRowSelection ? (\n\t\t\t\t\t\t<p-floating-menu-container\n\t\t\t\t\t\t\tusedInTable={true}\n\t\t\t\t\t\t\tclass={`${this.selectedRows?.length ? '' : 'inactive'} ${\n\t\t\t\t\t\t\t\tthis._floatingMenuShown ? 'shown' : ''\n\t\t\t\t\t\t\t}`}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<p-floating-menu-item\n\t\t\t\t\t\t\t\thover={false}\n\t\t\t\t\t\t\t\tslot='floating-menu-item'\n\t\t\t\t\t\t\t\tclass={\n\t\t\t\t\t\t\t\t\tthis._rowActionsFloating?.length ? 'hidden tablet:flex' : ''\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{this.floatingMenuAmountSelectedTemplate(\n\t\t\t\t\t\t\t\t\tthis.selectedRows?.length\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</p-floating-menu-item>\n\t\t\t\t\t\t\t<p-divider\n\t\t\t\t\t\t\t\tclass={`mx-0 text-storm ${\n\t\t\t\t\t\t\t\t\tthis._rowActionsFloating?.length ? 'hidden tablet:flex' : ''\n\t\t\t\t\t\t\t\t}`}\n\t\t\t\t\t\t\t\tvariant='vertical'\n\t\t\t\t\t\t\t\tslot='floating-menu-item'\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{this._rowActionsFloating?.length &&\n\t\t\t\t\t\t\t\tthis._rowActionsFloating.map(a => (\n\t\t\t\t\t\t\t\t\t<p-floating-menu-item\n\t\t\t\t\t\t\t\t\t\tslot='floating-menu-item'\n\t\t\t\t\t\t\t\t\t\tdisabled={a.disabled}\n\t\t\t\t\t\t\t\t\t\tonClick={() =>\n\t\t\t\t\t\t\t\t\t\t\t!a.disabled &&\n\t\t\t\t\t\t\t\t\t\t\t!a.loading &&\n\t\t\t\t\t\t\t\t\t\t\t!!a.action &&\n\t\t\t\t\t\t\t\t\t\t\ta.type === 'single'\n\t\t\t\t\t\t\t\t\t\t\t\t? a.action(this.selectedRows[0], false)\n\t\t\t\t\t\t\t\t\t\t\t\t: a.action(this.selectedRows, true)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{a.label}{' '}\n\t\t\t\t\t\t\t\t\t\t{a.loading ? (\n\t\t\t\t\t\t\t\t\t\t\t<p-loader></p-loader>\n\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t<p-icon\n\t\t\t\t\t\t\t\t\t\t\t\tvariant={a.icon}\n\t\t\t\t\t\t\t\t\t\t\t\trotate={a.iconRotate}\n\t\t\t\t\t\t\t\t\t\t\t\tflip={a.iconFlip}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</p-floating-menu-item>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t{this._rowActionsFloating?.length && (\n\t\t\t\t\t\t\t\t<p-divider\n\t\t\t\t\t\t\t\t\tclass='mx-0 text-storm'\n\t\t\t\t\t\t\t\t\tvariant='vertical'\n\t\t\t\t\t\t\t\t\tslot='floating-menu-item'\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t<p-floating-menu-item\n\t\t\t\t\t\t\t\tslot='floating-menu-item'\n\t\t\t\t\t\t\t\tonClick={() => this._selectAllChange(null, false)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<p-icon variant='negative' />\n\t\t\t\t\t\t\t</p-floating-menu-item>\n\t\t\t\t\t\t</p-floating-menu-container>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t''\n\t\t\t\t\t)}\n\t\t\t\t</p-table-container>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t@Listen('localeChanged', { target: 'body' })\n\tprivate async _setLocales(): Promise<void> {\n\t\tthis._locales = await getLocaleComponentStrings(this._el);\n\t}\n\n\t@Listen('tableDefinitionChanged', { target: 'body' })\n\tonTableDefinitionUpdated() {\n\t\tthis._generateColumns();\n\t}\n\n\t@Listen('keydown', { target: 'document' })\n\tkeyDown({ key }) {\n\t\tif (key !== 'Control' || this._ctrlDown === true) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._ctrlDown = true;\n\t}\n\n\t@Listen('keyup', { target: 'document' })\n\tkeyUp({ key }) {\n\t\tif (key !== 'Control' || this._ctrlDown === false) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._ctrlDown = false;\n\t}\n\n\t@Listen('visibilitychange', { target: 'document' })\n\tvisibilityChange() {\n\t\tif (document.visibilityState !== 'hidden' || this._ctrlDown === false) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._ctrlDown = false;\n\t}\n\n\t@Watch('items')\n\tprivate _parseItems(items: string) {\n\t\tif (!items) {\n\t\t\tthis._items = [];\n\t\t\treturn;\n\t\t}\n\n\t\tif (Array.isArray(items)) {\n\t\t\tthis._items = items;\n\t\t\treturn;\n\t\t}\n\n\t\tthis._items = JSON.parse(items);\n\t}\n\n\t@Watch('enableRowSelection')\n\t@Watch('rowSelectionLimit')\n\t@Watch('selectedRows')\n\t@Listen('resize', { target: 'window' })\n\tprivate _setRowSelectionData() {\n\t\tif (this._resizeTimeout) {\n\t\t\tclearTimeout(this._resizeTimeout);\n\t\t}\n\n\t\t// We add a timeout here because it's a lot easier on the machine to do these when someone is done\n\t\t// resizing and playing around with their browser\n\t\tthis._resizeTimeout = setTimeout(() => {\n\t\t\tconst mobile = isMobile();\n\n\t\t\t// we hack this to any[] to make it work..\n\t\t\tconst actions = Array.from(\n\t\t\t\tthis._el.querySelectorAll(':scope > p-table-row-action')\n\t\t\t) as any[] as TableRowAction[];\n\t\t\tthis._rowActionsRow = actions.filter(\n\t\t\t\ta => a.type === 'both' || a.type === 'single'\n\t\t\t);\n\t\t\tthis._rowActionsFloatingAll = actions\n\t\t\t\t.filter(\n\t\t\t\t\ta =>\n\t\t\t\t\t\t(this.enableRowSelection &&\n\t\t\t\t\t\t\t(a.type === 'both' || a.type === 'multi')) ||\n\t\t\t\t\t\t(mobile && a.type === 'single')\n\t\t\t\t)\n\t\t\t\t.map(a => {\n\t\t\t\t\tif (a.type === 'single') {\n\t\t\t\t\t\ta.disabled = this.selectedRows?.length > 1;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn a;\n\t\t\t\t});\n\n\t\t\tlet rowSelectionLimit = this.rowSelectionLimit;\n\t\t\tif (\n\t\t\t\tmobile && // we're mobile\n\t\t\t\tthis._rowActionsFloatingAll?.length && // we have atleast 1 item in _rowActionsFloating\n\t\t\t\t((rowSelectionLimit !== undefined && this.enableRowSelection) ||\n\t\t\t\t\t!this.enableRowSelection)\n\t\t\t) {\n\t\t\t\trowSelectionLimit = 1;\n\t\t\t}\n\n\t\t\tthis._rowSelectionLimit = rowSelectionLimit;\n\n\t\t\tlet enableRowSelection = this.enableRowSelection;\n\t\t\tif (\n\t\t\t\tmobile && // we're mobile\n\t\t\t\tthis._rowActionsFloatingAll?.length && // we have atleast 1 item in _rowActionsFloating\n\t\t\t\t!enableRowSelection\n\t\t\t) {\n\t\t\t\tenableRowSelection = true;\n\t\t\t}\n\n\t\t\tthis._enableRowSelection = enableRowSelection;\n\n\t\t\tif (this._floatingMenuShown) {\n\t\t\t\tthis._showFloatingMenu();\n\t\t\t}\n\t\t}, 200);\n\t}\n\n\tprivate _generateColumns() {\n\t\tconst definitions = this._el.querySelectorAll('p-table-column');\n\t\tlet definitionsArray = Array.from(definitions);\n\n\t\tdefinitionsArray = this._parseDefinitions(definitionsArray);\n\n\t\tthis._columns = definitionsArray;\n\t}\n\n\tprivate _getHeader() {\n\t\treturn (\n\t\t\t<p-table-row variant='header'>\n\t\t\t\t{this._columns.map((col: TableColumn, index) => (\n\t\t\t\t\t<p-table-cell\n\t\t\t\t\t\tdefinition={col}\n\t\t\t\t\t\tvalue={col.name}\n\t\t\t\t\t\tvariant='header'\n\t\t\t\t\t\tcheckbox={\n\t\t\t\t\t\t\tindex === 0 || col.hasCheckbox\n\t\t\t\t\t\t\t\t? this._getCheckbox(null, this.loading ? 'loading' : 'header')\n\t\t\t\t\t\t\t\t: null\n\t\t\t\t\t\t}\n\t\t\t\t\t\tindex={index}\n\t\t\t\t\t></p-table-cell>\n\t\t\t\t))}\n\t\t\t</p-table-row>\n\t\t);\n\t}\n\n\tprivate _getRows() {\n\t\tif (this.loading) {\n\t\t\treturn Array.from(\n\t\t\t\t{\n\t\t\t\t\tlength: this.amountOfLoadingRows,\n\t\t\t\t},\n\t\t\t\t(_, i) => (\n\t\t\t\t\t<p-table-row\n\t\t\t\t\t\tenableHover={this._enableRowSelection || this.enableRowClick}\n\t\t\t\t\t>\n\t\t\t\t\t\t{this._getLoadingColumns(i)}\n\t\t\t\t\t</p-table-row>\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\n\t\tif (!this._items.length) {\n\t\t\treturn this._getEmptyState();\n\t\t}\n\n\t\treturn this._items.map((item, index) => (\n\t\t\t<p-table-row\n\t\t\t\tenableHover={this._enableRowSelection || this.enableRowClick}\n\t\t\t\tonClick={ev => this._rowClick(ev, index)}\n\t\t\t>\n\t\t\t\t{this._getRowColumns(item, index)}\n\t\t\t</p-table-row>\n\t\t));\n\t}\n\n\tprivate _getRowColumns(item, index) {\n\t\tconst columns = this._columns.map((col: TableColumn, colIndex) => {\n\t\t\treturn (\n\t\t\t\t<p-table-cell\n\t\t\t\t\tdefinition={col}\n\t\t\t\t\titem={item}\n\t\t\t\t\tcheckbox={\n\t\t\t\t\t\tcolIndex === 0 || col.hasCheckbox ? this._getCheckbox(index) : null\n\t\t\t\t\t}\n\t\t\t\t\tindex={colIndex}\n\t\t\t\t\trowIndex={index}\n\t\t\t\t\ttableHasActions={!!this._rowActionsRow.length && !isMobile()}\n\t\t\t\t></p-table-cell>\n\t\t\t);\n\t\t});\n\n\t\tif (this._rowActionsRow?.length && !isMobile()) {\n\t\t\tconst def = this._parseRowActionsRowDefinition();\n\t\t\tconst actions = this._rowActionsRow.filter(a =>\n\t\t\t\ta.showFunction ? a.showFunction(item) : true\n\t\t\t);\n\n\t\t\tif (!actions.length) {\n\t\t\t\treturn columns;\n\t\t\t}\n\n\t\t\tcolumns.push(\n\t\t\t\t<p-table-cell\n\t\t\t\t\tvariant='actions'\n\t\t\t\t\tdefinition={def}\n\t\t\t\t\titem={item}\n\t\t\t\t\tindex={this._columns.length - 1}\n\t\t\t\t\trowIndex={index}\n\t\t\t\t\ttableHasActions={!!this._rowActionsRow.length}\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tslot='actions'\n\t\t\t\t\t\tclass='ml-auto flex items-center gap-2'\n\t\t\t\t\t>\n\t\t\t\t\t\t{actions.map(a => (\n\t\t\t\t\t\t\t<p-tooltip content={a.label}>\n\t\t\t\t\t\t\t\t<p-button\n\t\t\t\t\t\t\t\t\tdata-is-action\n\t\t\t\t\t\t\t\t\tvariant='secondary'\n\t\t\t\t\t\t\t\t\tslot='trigger'\n\t\t\t\t\t\t\t\t\ticon={a.icon}\n\t\t\t\t\t\t\t\t\ticonRotate={a.iconRotate}\n\t\t\t\t\t\t\t\t\ticonFlip={a.iconFlip}\n\t\t\t\t\t\t\t\t\ticonOnly={true}\n\t\t\t\t\t\t\t\t\tsize='small'\n\t\t\t\t\t\t\t\t\tonClick={() =>\n\t\t\t\t\t\t\t\t\t\ttypeof a.action === 'function' && a.action?.(item, false)\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t></p-button>\n\t\t\t\t\t\t\t</p-tooltip>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</div>\n\t\t\t\t</p-table-cell>\n\t\t\t);\n\t\t}\n\n\t\treturn columns;\n\t}\n\n\tprivate _getLoadingColumns(index) {\n\t\treturn this._columns.map((col: TableColumn, colIndex) => {\n\t\t\treturn (\n\t\t\t\t<p-table-cell\n\t\t\t\t\tdefinition={col}\n\t\t\t\t\tvariant='loading'\n\t\t\t\t\tcheckbox={\n\t\t\t\t\t\tcolIndex === 0 || col.hasCheckbox\n\t\t\t\t\t\t\t? this._getCheckbox(index, 'loading')\n\t\t\t\t\t\t\t: null\n\t\t\t\t\t}\n\t\t\t\t\tindex={colIndex}\n\t\t\t\t\trowIndex={index}\n\t\t\t\t></p-table-cell>\n\t\t\t);\n\t\t});\n\t}\n\n\tprivate _getCheckbox(\n\t\trowIndex: number,\n\t\tvariant: 'header' | 'default' | 'loading' = 'default'\n\t) {\n\t\tif (\n\t\t\t!this._enableRowSelection ||\n\t\t\t(!this.selectionKey && !this._rowActionsFloating?.length)\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (variant === 'loading') {\n\t\t\treturn (\n\t\t\t\t<p-loader\n\t\t\t\t\tvariant='ghost'\n\t\t\t\t\tclass='h-6 w-6 rounded'\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\tif (variant === 'header') {\n\t\t\treturn (\n\t\t\t\t<input\n\t\t\t\t\tclass={`p-input ${\n\t\t\t\t\t\tthis._rowSelectionLimit !== undefined && 'opacity-0'\n\t\t\t\t\t}`}\n\t\t\t\t\ttype='checkbox'\n\t\t\t\t\tonChange={ev => this._selectAllChange(ev)}\n\t\t\t\t\tchecked={this._selectionContainsAll()}\n\t\t\t\t\tindeterminate={this._selectionIndeterminate()}\n\t\t\t\t\tdisabled={this._rowSelectionLimit !== undefined}\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\tconst item = this._items[rowIndex];\n\n\t\tconst selectionContains = this._selectionContains(rowIndex);\n\n\t\treturn (\n\t\t\t<input\n\t\t\t\tclass='p-input'\n\t\t\t\ttype='checkbox'\n\t\t\t\tonChange={ev => this._checkboxChange(ev?.target, rowIndex)}\n\t\t\t\tdisabled={\n\t\t\t\t\t(this.canSelectKey && !item[this.canSelectKey]) ||\n\t\t\t\t\t(this._rowSelectionLimit !== undefined &&\n\t\t\t\t\t\t!selectionContains &&\n\t\t\t\t\t\tthis.selectedRows.length === this._rowSelectionLimit)\n\t\t\t\t}\n\t\t\t\tchecked={selectionContains}\n\t\t\t/>\n\t\t);\n\t}\n\n\tprivate _getEmptyState() {\n\t\tif (this.query?.length || this.selectedFiltersAmount) {\n\t\t\treturn (\n\t\t\t\t<div class='flex max-w-[20rem] flex-col items-center self-center py-24 text-center'>\n\t\t\t\t\t<p-illustration\n\t\t\t\t\t\tvariant='empty-state-search'\n\t\t\t\t\t\tclass='mb-6'\n\t\t\t\t\t/>\n\t\t\t\t\t<p class='text-storm-default font-semibold'>\n\t\t\t\t\t\t{this.emptyStateFilteredHeader()}\n\t\t\t\t\t</p>\n\t\t\t\t\t<p class='mb-14 text-sm text-storm-medium'>\n\t\t\t\t\t\t{this.emptyStateFilteredContent()}\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<div\n\t\t\t\tclass={`flex max-w-[20rem] flex-col items-center self-center py-24 text-center ${\n\t\t\t\t\tthis.enableEmptyStateAction && 'cursor-pointer'\n\t\t\t\t}`}\n\t\t\t\tonClick={() =>\n\t\t\t\t\tthis.enableEmptyStateAction && this.emptyStateActionClick.emit(null)\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<p-illustration\n\t\t\t\t\tvariant='empty-state-add'\n\t\t\t\t\tclass='mb-6'\n\t\t\t\t/>\n\t\t\t\t<p class='text-storm-default font-semibold'>\n\t\t\t\t\t{this.emptyStateHeader()}\n\t\t\t\t</p>\n\t\t\t\t<p class='mb-6 text-sm text-storm-medium'>{this.emptyStateContent()}</p>\n\t\t\t\t{this.enableEmptyStateAction && (\n\t\t\t\t\t<p-button\n\t\t\t\t\t\tvariant='secondary'\n\t\t\t\t\t\ticon='plus'\n\t\t\t\t\t\tsize='small'\n\t\t\t\t\t>\n\t\t\t\t\t\t{this.emptyStateAction()}\n\t\t\t\t\t</p-button>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t}\n\n\tprivate _selectAllChange($event: any, forceValue?: boolean) {\n\t\tif (!this._enableRowSelection) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst value =\n\t\t\tforceValue === undefined\n\t\t\t\t? this._getCheckedValue($event.target)\n\t\t\t\t: forceValue;\n\t\tif (value) {\n\t\t\tconst toAdd = [];\n\t\t\tfor (let i = 0; i < this._items.length; i++) {\n\t\t\t\tconst row = this._items[i];\n\t\t\t\tif (this.canSelectKey && !row[this.canSelectKey]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (this._selectionContains(i)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\ttoAdd.push(row);\n\t\t\t\tthis.rowSelected.emit(row);\n\n\t\t\t\tif (\n\t\t\t\t\tthis._rowSelectionLimit !== undefined &&\n\t\t\t\t\tthis.selectedRows.length + toAdd.length === this._rowSelectionLimit\n\t\t\t\t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.selectedRows = [...this.selectedRows, ...toAdd];\n\t\t\tthis.selectedRowsChange.emit(this.selectedRows);\n\t\t\tif (this.enableFloatingMenu && !this._floatingMenuShown) {\n\t\t\t\tthis._showFloatingMenu();\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tfor (let i = 0; i < this.selectedRows.length; i++) {\n\t\t\tconst value = this.selectedRows[i];\n\t\t\tconst row = this._items.find(\n\t\t\t\td => this._getSelectionValue(d, i) === this._getSelectionValue(value, i)\n\t\t\t);\n\n\t\t\tif (!row) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tthis.rowDeselected.emit(row);\n\t\t}\n\n\t\tthis.selectedRows = [];\n\t\tthis.selectedRowsChange.emit(this.selectedRows);\n\t}\n\n\tprivate _checkboxChange(target: any, index: number) {\n\t\tif (!this._enableRowSelection) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst value = this._getCheckedValue(target);\n\t\tif (\n\t\t\tvalue &&\n\t\t\tthis._rowSelectionLimit !== undefined &&\n\t\t\tthis.selectedRows.length >= this._rowSelectionLimit\n\t\t) {\n\t\t\ttarget.checked = false;\n\t\t\treturn;\n\t\t}\n\n\t\tconst row = this._items[index];\n\n\t\tif (this.canSelectKey && !row[this.canSelectKey]) {\n\t\t\ttarget.checked = false;\n\t\t\treturn;\n\t\t}\n\n\t\tif (value) {\n\t\t\tthis.selectedRows = [\n\t\t\t\t...this.selectedRows,\n\t\t\t\t{\n\t\t\t\t\t...row,\n\t\t\t\t\tindex,\n\t\t\t\t},\n\t\t\t];\n\t\t\tthis.selectedRowsChange.emit(this.selectedRows);\n\t\t\tthis.rowSelected.emit(row);\n\n\t\t\tif (this.enableFloatingMenu && !this._floatingMenuShown) {\n\t\t\t\tthis._showFloatingMenu();\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst indexOfToRemove = this._selectionContains(index, true);\n\n\t\t// we need to do this, because splice does not trigger the selection setter.\n\t\tconst selection = [...this.selectedRows];\n\t\tselection.splice(indexOfToRemove, 1);\n\t\tthis.selectedRows = selection;\n\t\tthis.selectedRowsChange.emit(this.selectedRows);\n\t\tthis.rowDeselected.emit(row);\n\t}\n\n\tprivate _getCheckedValue(target: any) {\n\t\treturn target?.checked;\n\t}\n\n\tprivate _getSelectionValue(row: any, index: number) {\n\t\treturn this.selectionKey ? row?.[this.selectionKey] || index : index;\n\t}\n\n\tprivate _selectionContains(index, returnIndex = false): any {\n\t\tconst returnValue = this.selectedRows.findIndex(\n\t\t\titem => item.index === index\n\t\t);\n\t\treturn !returnIndex ? returnValue >= 0 : returnValue;\n\t}\n\n\tprivate _selectionContainsAll() {\n\t\tlet returnValue = true;\n\t\tif (!this._items?.length) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (\n\t\t\tthis._rowSelectionLimit !== undefined &&\n\t\t\tthis.selectedRows.length === this._rowSelectionLimit\n\t\t) {\n\t\t\treturn true;\n\t\t}\n\n\t\tfor (let i = 0; i < this._items?.length; i++) {\n\t\t\tconst contains = this._selectionContains(i);\n\n\t\t\tif (!contains) {\n\t\t\t\treturnValue = false;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn returnValue;\n\t}\n\n\tprivate _selectionIndeterminate() {\n\t\tif (!this._items?.length || !this.selectedRows?.length) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (\n\t\t\tthis._rowSelectionLimit !== undefined &&\n\t\t\tthis.selectedRows.length === this._rowSelectionLimit\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\n\t\tlet containsCount = 0;\n\t\tfor (let i = 0; i < this._items?.length; i++) {\n\t\t\tconst contains = this._selectionContains(i);\n\n\t\t\tif (contains) {\n\t\t\t\tcontainsCount++;\n\t\t\t}\n\t\t}\n\n\t\treturn containsCount > 0 && containsCount !== this._items.length;\n\t}\n\n\tprivate _rowClick($event, index) {\n\t\tconst target = $event.target;\n\n\t\tif (\n\t\t\ttarget.tagName.toLowerCase() === 'input' ||\n\t\t\ttarget.type === 'checkbox'\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst row = this._findRow($event.target);\n\t\tconst action = this._findRowAction($event.target);\n\n\t\tif (action) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.enableRowClick) {\n\t\t\tconst item = this._items[index];\n\t\t\tthis.rowClick.emit({\n\t\t\t\titem,\n\t\t\t\tctrlDown: this._ctrlDown,\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._enableRowSelection) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst checkbox = row?.querySelector('input[type=\"checkbox\"]');\n\n\t\tif (!checkbox) {\n\t\t\treturn;\n\t\t}\n\n\t\tcheckbox.checked = !checkbox.checked;\n\t\tthis._checkboxChange(checkbox, index);\n\t}\n\n\tprivate _findRow(el: HTMLElement) {\n\t\tif (!el) {\n\t\t\treturn el;\n\t\t}\n\n\t\tif (el?.tagName?.toLowerCase() === 'p-table-row') {\n\t\t\treturn el;\n\t\t}\n\n\t\treturn this._findRow(el?.parentElement);\n\t}\n\n\tprivate _findRowAction(el: HTMLElement) {\n\t\tif (!el) {\n\t\t\treturn null;\n\t\t}\n\n\t\tif (\n\t\t\tel.getAttribute('data-is-action') !== null &&\n\t\t\tel.getAttribute('data-is-action') !== 'false'\n\t\t) {\n\t\t\treturn el;\n\t\t}\n\n\t\tif (el?.tagName?.toLowerCase() === 'p-table-row') {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this._findRowAction(el?.parentElement);\n\t}\n\n\tprivate _showFloatingMenu() {\n\t\tlet actions = this._rowActionsFloatingAll;\n\t\tif (\n\t\t\tthis.rowSelectionLimit === 1 &&\n\t\t\tactions.findIndex(\n\t\t\t\ta => (a.type === 'single' || a.type === 'both') && a.showFunction\n\t\t\t) >= 0\n\t\t) {\n\t\t\tactions = actions.filter(\n\t\t\t\ta =>\n\t\t\t\t\ta.type === 'multi' ||\n\t\t\t\t\t!a.showFunction ||\n\t\t\t\t\ta.showFunction(this.selectedRows[0])\n\t\t\t);\n\t\t}\n\n\t\tthis._rowActionsFloating = actions;\n\t\tthis._floatingMenuShown = true;\n\t}\n\n\tprivate _parseDefinitions(definitionsArray: HTMLPTableColumnElement[]) {\n\t\tconst definitions = definitionsArray.map(definition => {\n\t\t\tdefinition = this._parseDefinitionSizes(definition);\n\t\t\tdefinition.isLast = {};\n\t\t\treturn definition;\n\t\t});\n\n\t\tconst matchedIsLast = tableColumSizesOptions.reduce(\n\t\t\t(data: { [key: string]: boolean }, size) => {\n\t\t\t\tdata[size] = false;\n\t\t\t\treturn data;\n\t\t\t},\n\t\t\t{}\n\t\t);\n\n\t\tfor (let i = definitions.length - 1; i >= 0; i--) {\n\t\t\tconst definition = definitions[i];\n\n\t\t\tfor (const size of tableColumSizesOptions) {\n\t\t\t\tif (matchedIsLast[size]) {\n\t\t\t\t\tdefinition.isLast[size] = false;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (definition.parsedSizes![size] === 'hidden') {\n\t\t\t\t\tdefinition.isLast[size] = false;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tconst isLastAtSizeFound = this._findLastDefinitionBySize(\n\t\t\t\t\tdefinitions,\n\t\t\t\t\tsize\n\t\t\t\t);\n\t\t\t\tif (isLastAtSizeFound) {\n\t\t\t\t\tdefinition.isLast[size] = false;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tdefinition.isLast[size] = true;\n\t\t\t}\n\t\t}\n\n\t\treturn definitions;\n\t}\n\n\tprivate _findLastDefinitionBySize(\n\t\tdefinitions: HTMLPTableColumnElement[],\n\t\tsize: string\n\t) {\n\t\treturn definitions\n\t\t\t.slice()\n\t\t\t.reverse()\n\t\t\t.find(d => d.isLast[size] === true);\n\t}\n\n\tprivate _parseDefinitionSizes(definition: HTMLPTableColumnElement) {\n\t\tconst definitionAny = definition as any;\n\t\tlet parsedSizes: TableColumnSizes = { default: 'full' };\n\n\t\tif (\n\t\t\ttypeof definition.sizes === 'string' &&\n\t\t\t!['auto', 'hidden', 'full'].includes(definition.sizes)\n\t\t) {\n\t\t\tdefinition.sizes = JSON.parse(definition.sizes);\n\t\t}\n\n\t\tfor (const [index, size] of tableColumSizesOptions.entries()) {\n\t\t\tif (\n\t\t\t\tdefinitionAny.sizes === 'auto' ||\n\t\t\t\tdefinitionAny.sizes === 'hidden' ||\n\t\t\t\tdefinitionAny.sizes === 'full' ||\n\t\t\t\ttypeof definitionAny.sizes === 'number'\n\t\t\t) {\n\t\t\t\tparsedSizes[size] =\n\t\t\t\t\tdefinitionAny.sizes === 'auto' ? 'full' : definitionAny.sizes;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tparsedSizes[size] =\n\t\t\t\tdefinitionAny.sizes[size] ??\n\t\t\t\tparsedSizes[tableColumSizesOptions[index - 1]];\n\t\t}\n\n\t\tdefinition.parsedSizes = parsedSizes;\n\t\treturn definition;\n\t}\n\n\tprivate _parseRowActionsRowDefinition() {\n\t\tconst isLast = tableColumSizesOptions.reduce(\n\t\t\t(data: { [key: string]: boolean }, size) => {\n\t\t\t\tdata[size] = true;\n\t\t\t\treturn data;\n\t\t\t},\n\t\t\t{}\n\t\t);\n\t\tconst sizes: TableColumnSizes = { default: 0 };\n\n\t\tfor (const size of tableColumSizesOptions) {\n\t\t\tconst lastColumn = this._findLastDefinitionBySize(this._columns, size);\n\t\t\tsizes[size] = lastColumn!.parsedSizes![size]!;\n\t\t}\n\n\t\treturn {\n\t\t\tisLast,\n\t\t\tsizes,\n\t\t\tparsedSizes: sizes,\n\t\t\talign: 'end',\n\t\t\ttype: 'td',\n\t\t\tpath: null,\n\t\t} as TableColumn;\n\t}\n}\n"],"mappings":"iMAAA,MAAMA,EAAoB,mpG,MCuCbC,EAAK,M,ojBAiVTC,KAAAC,uBAA2C,GAI3CD,KAAAE,UAAY,MACZF,KAAAG,qBAAuB,MACvBH,KAAAI,mBAAqB,M,kCA9UF,M,mBAKM,M,mBAKA,M,yBAKK,E,wBAKA,K,qDAUJ,K,kBAKJ,G,wBAKQ,K,wCAMrCC,I,UAEA,OAAAC,GACCC,EAACF,IAAW,GACTG,EAAAR,KAAKS,SAASC,iBAAa,MAAAF,SAAA,SAAAA,EAAEG,iBAC7BC,EAAAZ,KAAKS,SAASC,iBAAa,MAAAE,SAAA,SAAAA,EAAEC,0BAC/B,MAAAN,SAAA,SAAAA,EAAEO,QAAQ,aAAcT,GACzB,E,0EAyD8B,K,kBAKM,G,6DAUN,K,uCAUA,K,2FAeA,M,yBAKO,M,yBAKA,M,sBAKC,S,sFAiDR,K,oBAKE,K,sBAKE,K,kBAKJ,K,UAKuB,E,mCAkB5BU,E,qBAKSC,E,sBAqBA,K,sBAGK,SAAAR,EACxC,OAAAF,GAAkBE,EAAAR,KAAKS,SAASQ,eAAW,MAAAT,SAAA,SAAAA,EAAEU,UAAUC,OAAO,E,uBACrB,SAAAX,EACzC,OAAAF,GAAkBE,EAAAR,KAAKS,SAASQ,eAAW,MAAAT,SAAA,SAAAA,EAAEU,UAAUE,QAAQ,E,sBACvB,SAAAZ,EACxC,OAAAF,GAAkBE,EAAAR,KAAKS,SAASQ,eAAW,MAAAT,SAAA,SAAAA,EAAEU,UAAUG,OAAO,E,4BAIrB,K,8BAEO,IAChDf,EAAkBN,KAAKS,SAASQ,YAAYK,SAASH,Q,+BACJ,IACjDb,EAAkBN,KAAKS,SAASQ,YAAYK,SAASF,S,YAa5B,K,cAYO,G,cAEE,G,YACF,G,yBAEepB,KAAKuB,mB,2DAII,G,oBACL,E,CAOpD,iBAAAC,GACCxB,KAAKG,uBAAyBH,KAAKyB,IAAIC,cACtC,mCAGD1B,KAAK2B,uBAEL3B,KAAK4B,cACL5B,KAAK6B,YAAY7B,KAAK8B,OACtB9B,KAAK+B,kB,CAGN,kBAAAC,GACChC,KAAKiC,YAAYC,M,CAGlB,MAAAC,G,kBACC,OACCC,EAACC,EAAI,CAACC,MAAM,WACXF,EAAA,qBAAmBG,OAAQvC,KAAKuC,QAC9BvC,KAAKwC,cACLJ,EAAA,kBAECK,aAAczC,KAAKyC,aACnBC,4BAA6B1C,KAAK0C,4BAClCC,cAAe,EAAGC,YAAa5C,KAAK6C,YAAYX,KAAKU,GAErDE,aAAc9C,KAAK8C,aACnBC,MAAO/C,KAAK+C,MACZC,cAAe,EAAGJ,YAAa5C,KAAKiD,YAAYf,KAAKU,GAErDM,aAAclD,KAAKkD,aACnBC,sBAAuBnD,KAAKmD,sBAC5BC,qBAAsBpD,KAAKoD,qBAC3BC,SAAU,IAAMrD,KAAKsD,OAAOpB,OAE5BqB,aAAcvD,KAAKuD,aACnBC,WAAYxD,KAAKyD,iBACjBC,WAAY1D,KAAK2D,iBACjBC,cAAe5D,KAAK6D,oBACpBC,aAAc9D,KAAK+D,oBACnBC,qBAAsBhE,KAAKgE,qBAC3BC,SAAU,IAAMjE,KAAKqB,OAAOa,OAC5BgC,qBAAqB1D,EAAAR,KAAKmE,gBAAY,MAAA3D,SAAA,SAAAA,EAAE4D,OAExCC,QAASrE,KAAKsE,eAEbtE,KAAKG,sBACLiC,EAAA,QACCmC,KAAK,gBACLC,KAAK,mBAMRxE,KAAKyE,aACNrC,EAAA,OAAKE,MAAM,wBAAwBtC,KAAK0E,YAEvC1E,KAAK2E,cACLvC,EAAA,kBAECwC,iBAAkB5E,KAAK4E,iBAEvBC,eAAgB7E,KAAK6E,eACrBC,SAAU9E,KAAK8E,SACfC,gBAAiB/E,KAAK+E,gBACtBC,iBAAkB,EAAGpC,YACpB5C,KAAKiF,eAAe/C,KAAKU,GAG1BsC,iBAAkBlF,KAAKkF,iBACvBC,KAAMnF,KAAKmF,KACXC,MAAOpF,KAAKoF,MACZC,aAAc,EAAGzC,YAAa5C,KAAKsF,WAAWpD,KAAKU,GAEnD2C,aAAcvF,KAAKuF,aACnBC,SAAU,IAAMxF,KAAKyF,OAAOvD,OAE5BmC,QAASrE,KAAK0F,gBAIf1F,KAAK2F,oBAAsB3F,KAAK4F,oBAChCxD,EAAA,6BACCyD,YAAa,KACbvD,MAAO,KAAG1B,EAAAZ,KAAKmE,gBAAY,MAAAvD,SAAA,SAAAA,EAAEwD,QAAS,GAAK,cAC1CpE,KAAKI,mBAAqB,QAAU,MAGrCgC,EAAA,wBACC0D,MAAO,MACPtB,KAAK,qBACLlC,QACC/B,EAAAP,KAAK+F,uBAAmB,MAAAxF,SAAA,SAAAA,EAAE6D,QAAS,qBAAuB,IAG1DpE,KAAKgG,oCACLC,EAAAjG,KAAKmE,gBAAY,MAAA8B,SAAA,SAAAA,EAAE7B,SAGrBhC,EAAA,aACCE,MAAO,qBACN4D,EAAAlG,KAAK+F,uBAAmB,MAAAG,SAAA,SAAAA,EAAE9B,QAAS,qBAAuB,KAE3D+B,QAAQ,WACR3B,KAAK,yBAEL4B,EAAApG,KAAK+F,uBAAmB,MAAAK,SAAA,SAAAA,EAAEhC,SAC1BpE,KAAK+F,oBAAoBM,KAAIC,GAC5BlE,EAAA,wBACCoC,KAAK,qBACL+B,SAAUD,EAAEC,SACZC,QAAS,KACPF,EAAEC,WACFD,EAAEjC,WACDiC,EAAEjF,QACJiF,EAAEG,OAAS,SACRH,EAAEjF,OAAOrB,KAAKmE,aAAa,GAAI,OAC/BmC,EAAEjF,OAAOrB,KAAKmE,aAAc,OAG/BmC,EAAEI,MAAO,IACTJ,EAAEjC,QACFjC,EAAA,iBAEAA,EAAA,UACC+D,QAASG,EAAEK,KACXC,OAAQN,EAAEO,WACVC,KAAMR,EAAES,gBAKZC,EAAAhH,KAAK+F,uBAAmB,MAAAiB,SAAA,SAAAA,EAAE5C,SAC1BhC,EAAA,aACCE,MAAM,kBACN6D,QAAQ,WACR3B,KAAK,uBAGPpC,EAAA,wBACCoC,KAAK,qBACLgC,QAAS,IAAMxG,KAAKiH,iBAAiB,KAAM,QAE3C7E,EAAA,UAAQ+D,QAAQ,eAEU,I,CAUzB,iBAAMvE,GACb5B,KAAKS,eAAiByG,EAA0BlH,KAAKyB,I,CAItD,wBAAA0F,GACCnH,KAAK+B,kB,CAIN,OAAAqF,EAAQC,IAAEA,IACT,GAAIA,IAAQ,WAAarH,KAAKE,YAAc,KAAM,CACjD,M,CAGDF,KAAKE,UAAY,I,CAIlB,KAAAoH,EAAMD,IAAEA,IACP,GAAIA,IAAQ,WAAarH,KAAKE,YAAc,MAAO,CAClD,M,CAGDF,KAAKE,UAAY,K,CAIlB,gBAAAqH,GACC,GAAIC,SAASC,kBAAoB,UAAYzH,KAAKE,YAAc,MAAO,CACtE,M,CAGDF,KAAKE,UAAY,K,CAIV,WAAA2B,CAAYC,GACnB,IAAKA,EAAO,CACX9B,KAAK0H,OAAS,GACd,M,CAGD,GAAIC,MAAMC,QAAQ9F,GAAQ,CACzB9B,KAAK0H,OAAS5F,EACd,M,CAGD9B,KAAK0H,OAASG,KAAKC,MAAMhG,E,CAOlB,oBAAAH,GACP,GAAI3B,KAAK+H,eAAgB,CACxBC,aAAahI,KAAK+H,e,CAKnB/H,KAAK+H,eAAiBE,YAAW,K,QAChC,MAAMC,EAASC,IAGf,MAAMC,EAAUT,MAAMU,KACrBrI,KAAKyB,IAAI6G,iBAAiB,gCAE3BtI,KAAKuI,eAAiBH,EAAQ9E,QAC7BgD,GAAKA,EAAEG,OAAS,QAAUH,EAAEG,OAAS,WAEtCzG,KAAKC,uBAAyBmI,EAC5B9E,QACAgD,GACEtG,KAAKuB,qBACJ+E,EAAEG,OAAS,QAAUH,EAAEG,OAAS,UACjCyB,GAAU5B,EAAEG,OAAS,WAEvBJ,KAAIC,I,MACJ,GAAIA,EAAEG,OAAS,SAAU,CACxBH,EAAEC,WAAW/F,EAAAR,KAAKmE,gBAAY,MAAA3D,SAAA,SAAAA,EAAE4D,QAAS,C,CAG1C,OAAOkC,CAAC,IAGV,IAAIkC,EAAoBxI,KAAKwI,kBAC7B,GACCN,KACA1H,EAAAR,KAAKC,0BAAsB,MAAAO,SAAA,SAAAA,EAAE4D,UAC3BoE,IAAsBC,WAAazI,KAAKuB,qBACxCvB,KAAKuB,oBACN,CACDiH,EAAoB,C,CAGrBxI,KAAK0I,mBAAqBF,EAE1B,IAAIjH,EAAqBvB,KAAKuB,mBAC9B,GACC2G,KACAtH,EAAAZ,KAAKC,0BAAsB,MAAAW,SAAA,SAAAA,EAAEwD,UAC5B7C,EACA,CACDA,EAAqB,I,CAGtBvB,KAAK4F,oBAAsBrE,EAE3B,GAAIvB,KAAKI,mBAAoB,CAC5BJ,KAAK2I,mB,IAEJ,I,CAGI,gBAAA5G,GACP,MAAM6G,EAAc5I,KAAKyB,IAAI6G,iBAAiB,kBAC9C,IAAIO,EAAmBlB,MAAMU,KAAKO,GAElCC,EAAmB7I,KAAK8I,kBAAkBD,GAE1C7I,KAAK+I,SAAWF,C,CAGT,UAAApE,GACP,OACCrC,EAAA,eAAa+D,QAAQ,UACnBnG,KAAK+I,SAAS1C,KAAI,CAAC2C,EAAkBC,IACrC7G,EAAA,gBACC8G,WAAYF,EACZG,MAAOH,EAAIzE,KACX4B,QAAQ,SACRiD,SACCH,IAAU,GAAKD,EAAIK,YAChBrJ,KAAKsJ,aAAa,KAAMtJ,KAAKqE,QAAU,UAAY,UACnD,KAEJ4E,MAAOA,M,CAOJ,QAAAvE,GACP,GAAI1E,KAAKqE,QAAS,CACjB,OAAOsD,MAAMU,KACZ,CACCjE,OAAQpE,KAAKuJ,sBAEd,CAACC,EAAGC,IACHrH,EAAA,eACCsH,YAAa1J,KAAK4F,qBAAuB5F,KAAK2J,gBAE7C3J,KAAK4J,mBAAmBH,K,CAM7B,IAAKzJ,KAAK0H,OAAOtD,OAAQ,CACxB,OAAOpE,KAAK6J,gB,CAGb,OAAO7J,KAAK0H,OAAOrB,KAAI,CAACyD,EAAMb,IAC7B7G,EAAA,eACCsH,YAAa1J,KAAK4F,qBAAuB5F,KAAK2J,eAC9CnD,QAASuD,GAAM/J,KAAKgK,UAAUD,EAAId,IAEjCjJ,KAAKiK,eAAeH,EAAMb,K,CAKtB,cAAAgB,CAAeH,EAAMb,G,MAC5B,MAAMiB,EAAUlK,KAAK+I,SAAS1C,KAAI,CAAC2C,EAAkBmB,IAEnD/H,EAAA,gBACC8G,WAAYF,EACZc,KAAMA,EACNV,SACCe,IAAa,GAAKnB,EAAIK,YAAcrJ,KAAKsJ,aAAaL,GAAS,KAEhEA,MAAOkB,EACPC,SAAUnB,EACVoB,kBAAmBrK,KAAKuI,eAAenE,SAAW+D,QAKrD,KAAI3H,EAAAR,KAAKuI,kBAAc,MAAA/H,SAAA,SAAAA,EAAE4D,UAAW+D,IAAY,CAC/C,MAAMmC,EAAMtK,KAAKuK,gCACjB,MAAMnC,EAAUpI,KAAKuI,eAAejF,QAAOgD,GAC1CA,EAAEkE,aAAelE,EAAEkE,aAAaV,GAAQ,OAGzC,IAAK1B,EAAQhE,OAAQ,CACpB,OAAO8F,C,CAGRA,EAAQO,KACPrI,EAAA,gBACC+D,QAAQ,UACR+C,WAAYoB,EACZR,KAAMA,EACNb,MAAOjJ,KAAK+I,SAAS3E,OAAS,EAC9BgG,SAAUnB,EACVoB,kBAAmBrK,KAAKuI,eAAenE,QAEvChC,EAAA,OACCoC,KAAK,UACLlC,MAAM,mCAEL8F,EAAQ/B,KAAIC,GACZlE,EAAA,aAAWhB,QAASkF,EAAEI,OACrBtE,EAAA,kCAEC+D,QAAQ,YACR3B,KAAK,UACLmC,KAAML,EAAEK,KACRE,WAAYP,EAAEO,WACdE,SAAUT,EAAES,SACZ2D,SAAU,KACVC,KAAK,QACLnE,QAAS,SAAAhG,EACR,cAAO8F,EAAEjF,SAAW,cAAcb,EAAA8F,EAAEjF,UAAM,MAAAb,SAAA,SAAAA,EAAAoK,KAAAtE,EAAGwD,EAAM,OAAM,S,CAUjE,OAAOI,C,CAGA,kBAAAN,CAAmBX,GAC1B,OAAOjJ,KAAK+I,SAAS1C,KAAI,CAAC2C,EAAkBmB,IAE1C/H,EAAA,gBACC8G,WAAYF,EACZ7C,QAAQ,UACRiD,SACCe,IAAa,GAAKnB,EAAIK,YACnBrJ,KAAKsJ,aAAaL,EAAO,WACzB,KAEJA,MAAOkB,EACPC,SAAUnB,K,CAMN,YAAAK,CACPc,EACAjE,EAA4C,W,MAE5C,IACEnG,KAAK4F,sBACJ5F,KAAK6K,iBAAiBrK,EAAAR,KAAK+F,uBAAmB,MAAAvF,SAAA,SAAAA,EAAE4D,QACjD,CACD,M,CAGD,GAAI+B,IAAY,UAAW,CAC1B,OACC/D,EAAA,YACC+D,QAAQ,QACR7D,MAAM,mB,CAKT,GAAI6D,IAAY,SAAU,CACzB,OACC/D,EAAA,SACCE,MAAO,WACNtC,KAAK0I,qBAAuBD,WAAa,cAE1ChC,KAAK,WACLqE,SAAUf,GAAM/J,KAAKiH,iBAAiB8C,GACtCgB,QAAS/K,KAAKgL,wBACdC,cAAejL,KAAKkL,0BACpB3E,SAAUvG,KAAK0I,qBAAuBD,W,CAKzC,MAAMqB,EAAO9J,KAAK0H,OAAO0C,GAEzB,MAAMe,EAAoBnL,KAAKoL,mBAAmBhB,GAElD,OACChI,EAAA,SACCE,MAAM,UACNmE,KAAK,WACLqE,SAAUf,GAAM/J,KAAKqL,gBAAgBtB,IAAE,MAAFA,SAAE,SAAFA,EAAIuB,OAAQlB,GACjD7D,SACEvG,KAAKuL,eAAiBzB,EAAK9J,KAAKuL,eAChCvL,KAAK0I,qBAAuBD,YAC3B0C,GACDnL,KAAKmE,aAAaC,SAAWpE,KAAK0I,mBAEpCqC,QAASI,G,CAKJ,cAAAtB,G,MACP,KAAIrJ,EAAAR,KAAK+C,SAAK,MAAAvC,SAAA,SAAAA,EAAE4D,SAAUpE,KAAKmD,sBAAuB,CACrD,OACCf,EAAA,OAAKE,MAAM,0EACVF,EAAA,kBACC+D,QAAQ,qBACR7D,MAAM,SAEPF,EAAA,KAAGE,MAAM,oCACPtC,KAAKwL,4BAEPpJ,EAAA,KAAGE,MAAM,mCACPtC,KAAKyL,6B,CAMV,OACCrJ,EAAA,OACCE,MAAO,0EACNtC,KAAK0L,wBAA0B,mBAEhClF,QAAS,IACRxG,KAAK0L,wBAA0B1L,KAAK2L,sBAAsBzJ,KAAK,OAGhEE,EAAA,kBACC+D,QAAQ,kBACR7D,MAAM,SAEPF,EAAA,KAAGE,MAAM,oCACPtC,KAAK4L,oBAEPxJ,EAAA,KAAGE,MAAM,kCAAkCtC,KAAK6L,qBAC/C7L,KAAK0L,wBACLtJ,EAAA,YACC+D,QAAQ,YACRQ,KAAK,OACLgE,KAAK,SAEJ3K,KAAK8L,oB,CAOH,gBAAA7E,CAAiB8E,EAAaC,GACrC,IAAKhM,KAAK4F,oBAAqB,CAC9B,M,CAGD,MAAMuD,EACL6C,IAAevD,UACZzI,KAAKiM,iBAAiBF,EAAOT,QAC7BU,EACJ,GAAI7C,EAAO,CACV,MAAM+C,EAAQ,GACd,IAAK,IAAIzC,EAAI,EAAGA,EAAIzJ,KAAK0H,OAAOtD,OAAQqF,IAAK,CAC5C,MAAM0C,EAAMnM,KAAK0H,OAAO+B,GACxB,GAAIzJ,KAAKuL,eAAiBY,EAAInM,KAAKuL,cAAe,CACjD,Q,CAGD,GAAIvL,KAAKoL,mBAAmB3B,GAAI,CAC/B,Q,CAGDyC,EAAMzB,KAAK0B,GACXnM,KAAKoM,YAAYlK,KAAKiK,GAEtB,GACCnM,KAAK0I,qBAAuBD,WAC5BzI,KAAKmE,aAAaC,OAAS8H,EAAM9H,SAAWpE,KAAK0I,mBAChD,CACD,K,EAIF1I,KAAKmE,aAAe,IAAInE,KAAKmE,gBAAiB+H,GAC9ClM,KAAKqM,mBAAmBnK,KAAKlC,KAAKmE,cAClC,GAAInE,KAAK2F,qBAAuB3F,KAAKI,mBAAoB,CACxDJ,KAAK2I,mB,CAGN,M,CAGD,IAAK,IAAIc,EAAI,EAAGA,EAAIzJ,KAAKmE,aAAaC,OAAQqF,IAAK,CAClD,MAAMN,EAAQnJ,KAAKmE,aAAasF,GAChC,MAAM0C,EAAMnM,KAAK0H,OAAO4E,MACvBC,GAAKvM,KAAKwM,mBAAmBD,EAAG9C,KAAOzJ,KAAKwM,mBAAmBrD,EAAOM,KAGvE,IAAK0C,EAAK,CACT,Q,CAGDnM,KAAKyM,cAAcvK,KAAKiK,E,CAGzBnM,KAAKmE,aAAe,GACpBnE,KAAKqM,mBAAmBnK,KAAKlC,KAAKmE,a,CAG3B,eAAAkH,CAAgBC,EAAarC,GACpC,IAAKjJ,KAAK4F,oBAAqB,CAC9B,M,CAGD,MAAMuD,EAAQnJ,KAAKiM,iBAAiBX,GACpC,GACCnC,GACAnJ,KAAK0I,qBAAuBD,WAC5BzI,KAAKmE,aAAaC,QAAUpE,KAAK0I,mBAChC,CACD4C,EAAOP,QAAU,MACjB,M,CAGD,MAAMoB,EAAMnM,KAAK0H,OAAOuB,GAExB,GAAIjJ,KAAKuL,eAAiBY,EAAInM,KAAKuL,cAAe,CACjDD,EAAOP,QAAU,MACjB,M,CAGD,GAAI5B,EAAO,CACVnJ,KAAKmE,aAAe,IAChBnE,KAAKmE,a,+BAEJgI,GAAG,CACNlD,WAGFjJ,KAAKqM,mBAAmBnK,KAAKlC,KAAKmE,cAClCnE,KAAKoM,YAAYlK,KAAKiK,GAEtB,GAAInM,KAAK2F,qBAAuB3F,KAAKI,mBAAoB,CACxDJ,KAAK2I,mB,CAGN,M,CAGD,MAAM+D,EAAkB1M,KAAKoL,mBAAmBnC,EAAO,MAGvD,MAAM0D,EAAY,IAAI3M,KAAKmE,cAC3BwI,EAAUC,OAAOF,EAAiB,GAClC1M,KAAKmE,aAAewI,EACpB3M,KAAKqM,mBAAmBnK,KAAKlC,KAAKmE,cAClCnE,KAAKyM,cAAcvK,KAAKiK,E,CAGjB,gBAAAF,CAAiBX,GACxB,OAAOA,IAAM,MAANA,SAAM,SAANA,EAAQP,O,CAGR,kBAAAyB,CAAmBL,EAAUlD,GACpC,OAAOjJ,KAAK6K,cAAesB,IAAG,MAAHA,SAAG,SAAHA,EAAMnM,KAAK6K,gBAAiB5B,EAAQA,C,CAGxD,kBAAAmC,CAAmBnC,EAAO4D,EAAc,OAC/C,MAAMC,EAAc9M,KAAKmE,aAAa4I,WACrCjD,GAAQA,EAAKb,QAAUA,IAExB,OAAQ4D,EAAcC,GAAe,EAAIA,C,CAGlC,qBAAA9B,G,QACP,IAAI8B,EAAc,KAClB,MAAKtM,EAAAR,KAAK0H,UAAM,MAAAlH,SAAA,SAAAA,EAAE4D,QAAQ,CACzB,OAAO,K,CAGR,GACCpE,KAAK0I,qBAAuBD,WAC5BzI,KAAKmE,aAAaC,SAAWpE,KAAK0I,mBACjC,CACD,OAAO,I,CAGR,IAAK,IAAIe,EAAI,EAAGA,IAAI7I,EAAAZ,KAAK0H,UAAM,MAAA9G,SAAA,SAAAA,EAAEwD,QAAQqF,IAAK,CAC7C,MAAMuD,EAAWhN,KAAKoL,mBAAmB3B,GAEzC,IAAKuD,EAAU,CACdF,EAAc,MACd,K,EAIF,OAAOA,C,CAGA,uBAAA5B,G,UACP,MAAK1K,EAAAR,KAAK0H,UAAM,MAAAlH,SAAA,SAAAA,EAAE4D,YAAWxD,EAAAZ,KAAKmE,gBAAY,MAAAvD,SAAA,SAAAA,EAAEwD,QAAQ,CACvD,OAAO,K,CAGR,GACCpE,KAAK0I,qBAAuBD,WAC5BzI,KAAKmE,aAAaC,SAAWpE,KAAK0I,mBACjC,CACD,OAAO,K,CAGR,IAAIuE,EAAgB,EACpB,IAAK,IAAIxD,EAAI,EAAGA,IAAIlJ,EAAAP,KAAK0H,UAAM,MAAAnH,SAAA,SAAAA,EAAE6D,QAAQqF,IAAK,CAC7C,MAAMuD,EAAWhN,KAAKoL,mBAAmB3B,GAEzC,GAAIuD,EAAU,CACbC,G,EAIF,OAAOA,EAAgB,GAAKA,IAAkBjN,KAAK0H,OAAOtD,M,CAGnD,SAAA4F,CAAU+B,EAAQ9C,GACzB,MAAMqC,EAASS,EAAOT,OAEtB,GACCA,EAAO4B,QAAQC,gBAAkB,SACjC7B,EAAO7E,OAAS,WACf,CACD,M,CAGD,MAAM0F,EAAMnM,KAAKoN,SAASrB,EAAOT,QACjC,MAAMjK,EAASrB,KAAKqN,eAAetB,EAAOT,QAE1C,GAAIjK,EAAQ,CACX,M,CAGD,GAAIrB,KAAK2J,eAAgB,CACxB,MAAMG,EAAO9J,KAAK0H,OAAOuB,GACzBjJ,KAAKsN,SAASpL,KAAK,CAClB4H,OACAyD,SAAUvN,KAAKE,YAEhB,M,CAGD,IAAKF,KAAK4F,oBAAqB,CAC9B,M,CAGD,MAAMwD,EAAW+C,IAAG,MAAHA,SAAG,SAAHA,EAAKzK,cAAc,0BAEpC,IAAK0H,EAAU,CACd,M,CAGDA,EAAS2B,SAAW3B,EAAS2B,QAC7B/K,KAAKqL,gBAAgBjC,EAAUH,E,CAGxB,QAAAmE,CAASI,G,MAChB,IAAKA,EAAI,CACR,OAAOA,C,CAGR,KAAIhN,EAAAgN,IAAE,MAAFA,SAAE,SAAFA,EAAIN,WAAO,MAAA1M,SAAA,SAAAA,EAAE2M,iBAAkB,cAAe,CACjD,OAAOK,C,CAGR,OAAOxN,KAAKoN,SAASI,IAAE,MAAFA,SAAE,SAAFA,EAAIC,c,CAGlB,cAAAJ,CAAeG,G,MACtB,IAAKA,EAAI,CACR,OAAO,I,CAGR,GACCA,EAAGE,aAAa,oBAAsB,MACtCF,EAAGE,aAAa,oBAAsB,QACrC,CACD,OAAOF,C,CAGR,KAAIhN,EAAAgN,IAAE,MAAFA,SAAE,SAAFA,EAAIN,WAAO,MAAA1M,SAAA,SAAAA,EAAE2M,iBAAkB,cAAe,CACjD,OAAO,I,CAGR,OAAOnN,KAAKqN,eAAeG,IAAE,MAAFA,SAAE,SAAFA,EAAIC,c,CAGxB,iBAAA9E,GACP,IAAIP,EAAUpI,KAAKC,uBACnB,GACCD,KAAKwI,oBAAsB,GAC3BJ,EAAQ2E,WACPzG,IAAMA,EAAEG,OAAS,UAAYH,EAAEG,OAAS,SAAWH,EAAEkE,gBACjD,EACJ,CACDpC,EAAUA,EAAQ9E,QACjBgD,GACCA,EAAEG,OAAS,UACVH,EAAEkE,cACHlE,EAAEkE,aAAaxK,KAAKmE,aAAa,K,CAIpCnE,KAAK+F,oBAAsBqC,EAC3BpI,KAAKI,mBAAqB,I,CAGnB,iBAAA0I,CAAkBD,GACzB,MAAMD,EAAcC,EAAiBxC,KAAI6C,IACxCA,EAAalJ,KAAK2N,sBAAsBzE,GACxCA,EAAW0E,OAAS,GACpB,OAAO1E,CAAU,IAGlB,MAAM2E,EAAgBC,EAAuBC,QAC5C,CAACC,EAAkCrD,KAClCqD,EAAKrD,GAAQ,MACb,OAAOqD,CAAI,GAEZ,IAGD,IAAK,IAAIvE,EAAIb,EAAYxE,OAAS,EAAGqF,GAAK,EAAGA,IAAK,CACjD,MAAMP,EAAaN,EAAYa,GAE/B,IAAK,MAAMkB,KAAQmD,EAAwB,CAC1C,GAAID,EAAclD,GAAO,CACxBzB,EAAW0E,OAAOjD,GAAQ,MAC1B,Q,CAGD,GAAIzB,EAAW+E,YAAatD,KAAU,SAAU,CAC/CzB,EAAW0E,OAAOjD,GAAQ,MAC1B,Q,CAGD,MAAMuD,EAAoBlO,KAAKmO,0BAC9BvF,EACA+B,GAED,GAAIuD,EAAmB,CACtBhF,EAAW0E,OAAOjD,GAAQ,MAC1B,Q,CAGDzB,EAAW0E,OAAOjD,GAAQ,I,EAI5B,OAAO/B,C,CAGA,yBAAAuF,CACPvF,EACA+B,GAEA,OAAO/B,EACLwF,QACAC,UACA/B,MAAKC,GAAKA,EAAEqB,OAAOjD,KAAU,M,CAGxB,qBAAAgD,CAAsBzE,G,MAC7B,MAAMoF,EAAgBpF,EACtB,IAAI+E,EAAgC,CAAEM,QAAS,QAE/C,UACQrF,EAAWsF,QAAU,WAC3B,CAAC,OAAQ,SAAU,QAAQC,SAASvF,EAAWsF,OAC/C,CACDtF,EAAWsF,MAAQ3G,KAAKC,MAAMoB,EAAWsF,M,CAG1C,IAAK,MAAOvF,EAAO0B,KAASmD,EAAuBY,UAAW,CAC7D,GACCJ,EAAcE,QAAU,QACxBF,EAAcE,QAAU,UACxBF,EAAcE,QAAU,eACjBF,EAAcE,QAAU,SAC9B,CACDP,EAAYtD,GACX2D,EAAcE,QAAU,OAAS,OAASF,EAAcE,MACzD,Q,CAGDP,EAAYtD,IACXnK,EAAA8N,EAAcE,MAAM7D,MAAK,MAAAnK,SAAA,EAAAA,EACzByN,EAAYH,EAAuB7E,EAAQ,G,CAG7CC,EAAW+E,YAAcA,EACzB,OAAO/E,C,CAGA,6BAAAqB,GACP,MAAMqD,EAASE,EAAuBC,QACrC,CAACC,EAAkCrD,KAClCqD,EAAKrD,GAAQ,KACb,OAAOqD,CAAI,GAEZ,IAED,MAAMQ,EAA0B,CAAED,QAAS,GAE3C,IAAK,MAAM5D,KAAQmD,EAAwB,CAC1C,MAAMa,EAAa3O,KAAKmO,0BAA0BnO,KAAK+I,SAAU4B,GACjE6D,EAAM7D,GAAQgE,EAAYV,YAAatD,E,CAGxC,MAAO,CACNiD,SACAY,QACAP,YAAaO,EACbI,MAAO,MACPnI,KAAM,KACNoI,KAAM,K"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["tableComponentCss","Table","this","_rowActionsFloatingAll","_ctrlDown","_hasCustomFilterSlot","_floatingMenuShown","amount","formatTranslation","_c","_a","_locales","floating_menu","amount_selected","_b","amount_selected_plural","replace","defaultSize","defaultSizeOptions","empty_state","no_filter","header","content","action","filtered","enableRowSelection","componentWillLoad","_el","querySelector","_setRowSelectionData","_setLocales","_parseItems","items","_generateColumns","componentDidRender","hasRendered","emit","render","h","Host","class","shadow","enableHeader","quickFilters","activeQuickFilterIdentifier","onQuickFilter","detail","quickFilter","enableSearch","query","onQueryChange","queryChange","enableFilter","selectedFiltersAmount","filterButtonTemplate","onFilter","filter","enableAction","actionIcon","actionButtonIcon","actionText","actionButtonText","actionLoading","actionButtonLoading","canUseAction","actionButtonEnabled","actionButtonTemplate","onAction","itemsSelectedAmount","selectedRows","length","loading","headerLoading","name","slot","_getHeader","_getRows","enableFooter","hideOnSinglePage","enablePageSize","pageSize","pageSizeOptions","onPageSizeChange","pageSizeChange","enablePagination","page","total","onPageChange","pageChange","enableExport","onExport","export","footerLoading","enableFloatingMenu","_enableRowSelection","usedInTable","hover","_rowActionsFloating","floatingMenuAmountSelectedTemplate","_d","_e","variant","_f","map","a","disabled","onClick","type","label","icon","rotate","iconRotate","flip","iconFlip","_g","_selectAllChange","getLocaleComponentStrings","onTableDefinitionUpdated","keyDown","key","keyUp","visibilityChange","document","visibilityState","_items","Array","isArray","JSON","parse","_resizeTimeout","clearTimeout","setTimeout","mobile","isMobile","actions","from","querySelectorAll","_rowActionsRow","rowSelectionLimit","undefined","_rowSelectionLimit","_showFloatingMenu","definitions","definitionsArray","_parseDefinitions","_columns","col","index","definition","value","checkbox","hasCheckbox","_getCheckbox","amountOfLoadingRows","_","i","enableHover","enableRowClick","_getLoadingColumns","_getEmptyState","item","ev","_rowClick","_getRowColumns","columns","colIndex","rowIndex","tableHasActions","def","_parseRowActionsRowDefinition","showFunction","push","iconOnly","size","call","selectionKey","onChange","checked","_selectionContainsAll","indeterminate","_selectionIndeterminate","selectionContains","_selectionContains","_checkboxChange","target","canSelectKey","emptyStateFilteredHeader","emptyStateFilteredContent","enableEmptyStateAction","emptyStateActionClick","emptyStateHeader","emptyStateContent","emptyStateAction","$event","forceValue","_getCheckedValue","toAdd","row","rowSelected","selectedRowsChange","find","d","_getSelectionValue","rowDeselected","indexOfToRemove","selection","splice","returnIndex","returnValue","findIndex","contains","containsCount","tagName","toLowerCase","_findRow","_findRowAction","rowClick","ctrlDown","el","parentElement","getAttribute","_parseDefinitionSizes","isLast","matchedIsLast","tableColumSizesOptions","reduce","data","parsedSizes","isLastAtSizeFound","_findLastDefinitionBySize","slice","reverse","definitionAny","default","sizes","includes","entries","lastColumn","align","path"],"sources":["src/components/organisms/table/table.component.scss?tag=p-table","src/components/organisms/table/table.component.tsx"],"sourcesContent":["p-table {\n\t@apply relative flex flex-col;\n\n\t.p-input[type='checkbox'] {\n\t\tflex-shrink: 0;\n\t}\n\n\tp-table-container {\n\t\t@apply relative;\n\n\t\tp-floating-menu-container {\n\t\t\t@apply fixed bottom-4 left-1/2 -translate-x-1/2 transform;\n\t\t\tanimation: forwards floatingMenuContainerIn 0.3s ease !important;\n\n\t\t\t@screen tablet {\n\t\t\t\t@apply absolute bottom-16;\n\t\t\t}\n\n\t\t\t&:not(.shown) {\n\t\t\t\t@apply hidden;\n\t\t\t}\n\n\t\t\t&.inactive {\n\t\t\t\tanimation: forwards floatingMenuContainerOut 0.3s ease !important;\n\t\t\t}\n\t\t}\n\t}\n}\n\n@keyframes floatingMenuContainerOut {\n\t0% {\n\t\tdisplay: flex;\n\t\ttransform: translateY(0) translateX(-50%);\n\t\topacity: 100;\n\t}\n\t99% {\n\t\ttransform: translateY(100%) translateX(-50%);\n\t\topacity: 0;\n\t\tdisplay: flex;\n\t}\n\t100% {\n\t\ttransform: translateY(100%) translateX(-50%);\n\t\topacity: 0;\n\t\tdisplay: none;\n\t}\n}\n\n@keyframes floatingMenuContainerIn {\n\t0% {\n\t\ttransform: translateY(100%) translateX(-50%);\n\t\topacity: 0;\n\t\tdisplay: none;\n\t}\n\t1% {\n\t\ttransform: translateY(100%) translateX(-50%);\n\t\topacity: 0;\n\t\tdisplay: flex;\n\t}\n\t100% {\n\t\ttransform: translateY(0) translateX(-50%);\n\t\topacity: 100;\n\t\tdisplay: flex;\n\t}\n}\n","import {\n\tComponent,\n\tElement,\n\tEvent,\n\tEventEmitter,\n\th,\n\tHost,\n\tListen,\n\tProp,\n\tState,\n\tWatch,\n} from '@stencil/core';\nimport { IconVariant } from '../../../components';\nimport { tableColumSizesOptions } from '../../../types/constants';\nimport {\n\tQuickFilter,\n\tRowClickEvent,\n\tTableColumnSizes,\n} from '../../../types/table';\nimport {\n\tformatTranslation,\n\tgetLocaleComponentStrings,\n\tisMobile,\n} from '../../../utils';\nimport { TableColumn } from '../../helpers/table-column/table-column.component';\nimport { TableRowAction } from '../../helpers/table-row-action/table-row-action.component';\nimport {\n\tdefaultSize,\n\tdefaultSizeOptions,\n} from '../../molecules/page-size-select/constants';\nimport { buttonTemplateFunc } from '../../molecules/table-header/table-header.component';\n\nexport type templateFunc = () => string;\nexport type amountSelectedTemplateFunc = (amount: number) => string;\n\n@Component({\n\ttag: 'p-table',\n\tstyleUrl: 'table.component.scss',\n})\nexport class Table {\n\t/**\n\t * The items to be fed to the table\n\t */\n\t@Prop() items: string;\n\n\t/**\n\t * Wether data is loading\n\t */\n\t@Prop() loading: boolean = false;\n\n\t/**\n\t * Wether the header should show loading state\n\t */\n\t@Prop() headerLoading: boolean = false;\n\n\t/**\n\t * Wether the footer should show loading state\n\t */\n\t@Prop() footerLoading: boolean = false;\n\n\t/**\n\t * The amount of loading rows to show\n\t */\n\t@Prop() amountOfLoadingRows: number = 6;\n\n\t/**\n\t * Wether to enable selection\n\t */\n\t@Prop() enableRowSelection: boolean = true;\n\n\t/**\n\t * A limit to the amount of rows that can be selected\n\t */\n\t@Prop() rowSelectionLimit: number | undefined;\n\n\t/**\n\t * Wether to enable row clicking\n\t */\n\t@Prop() enableRowClick: boolean = true;\n\n\t/**\n\t * The current selection of items\n\t */\n\t@Prop() selectedRows: any[] = [];\n\n\t/**\n\t * Wether to enable the floating menu\n\t */\n\t@Prop() enableFloatingMenu: boolean = true;\n\n\t/**\n\t * The template for amount selected item in the floating menu\n\t */\n\t@Prop() floatingMenuAmountSelectedTemplate: amountSelectedTemplateFunc = (\n\t\tamount: number\n\t) =>\n\t\tformatTranslation(\n\t\t\t(amount === 1\n\t\t\t\t? this._locales.floating_menu?.amount_selected\n\t\t\t\t: this._locales.floating_menu?.amount_selected_plural\n\t\t\t)?.replace('{{amount}}', amount)\n\t\t);\n\n\t/**\n\t * Event whenever the current selection changes\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tselectedRowsChange: EventEmitter<any>;\n\n\t/**\n\t * The key to determine if a row is selected\n\t */\n\t@Prop() selectionKey: string;\n\n\t/**\n\t * A key to determine if a row can be selected\n\t */\n\t@Prop() canSelectKey: string;\n\n\t/**\n\t * Event whenever a row is clicked\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\trowClick: EventEmitter<RowClickEvent>;\n\n\t/**\n\t * Event whenever a row is selected\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\trowSelected: EventEmitter<any>;\n\n\t/**\n\t * Event whenever a row is deselected\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\trowDeselected: EventEmitter<any>;\n\n\t/**\n\t * Event when the table has rendered\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\thasRendered: EventEmitter<number>;\n\n\t/** START HEADER */\n\n\t/**\n\t * Wether to show the header\n\t */\n\t@Prop() enableHeader: boolean = true;\n\n\t/**\n\t * Quick filters to show\n\t */\n\t@Prop() quickFilters: QuickFilter[] = [];\n\n\t/**\n\t * Active quick filter identifier\n\t */\n\t@Prop() activeQuickFilterIdentifier: string;\n\n\t/**\n\t * Wether to show the search input\n\t */\n\t@Prop() enableSearch: boolean = true;\n\n\t/**\n\t * The query to show in the search bar\n\t */\n\t@Prop({ mutable: true }) query: string;\n\n\t/**\n\t * Wether to show the filter button\n\t */\n\t@Prop() enableFilter: boolean = true;\n\n\t/**\n\t * The amount of filters being selected\n\t */\n\t@Prop() selectedFiltersAmount: number;\n\n\t/**\n\t * The template for the filter button text\n\t */\n\t@Prop() filterButtonTemplate: templateFunc;\n\n\t/**\n\t * Wether to show the action button\n\t */\n\t@Prop() enableAction: boolean = false;\n\n\t/**\n\t * Wether the action button is loading\n\t */\n\t@Prop() actionButtonLoading: boolean = false;\n\n\t/**\n\t * Wether the action button is enabled\n\t */\n\t@Prop() actionButtonEnabled: boolean = false;\n\n\t/**\n\t * The action button icon\n\t */\n\t@Prop() actionButtonIcon: IconVariant = 'pencil';\n\n\t/**\n\t * The action button text if changed\n\t */\n\t@Prop() actionButtonText: string;\n\n\t/**\n\t * The template for the action button text\n\t */\n\t@Prop() actionButtonTemplate: buttonTemplateFunc;\n\n\t/**\n\t * Event when one of the quick filters is clicked\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tquickFilter: EventEmitter<QuickFilter>;\n\n\t/**\n\t * Event when the query changes\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tqueryChange: EventEmitter<string>;\n\n\t/**\n\t * Event when the filter button is clicked\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tfilter: EventEmitter<null>;\n\n\t/**\n\t * Event when the action button is clicked\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\taction: EventEmitter<null>;\n\n\t/** START FOOTER */\n\n\t/**\n\t * Wether to show the header\n\t */\n\t@Prop() enableFooter: boolean = true;\n\n\t/**\n\t * Wether to enable page size select\n\t */\n\t@Prop() enablePageSize: boolean = true;\n\n\t/**\n\t * Wether to enable pagination\n\t */\n\t@Prop() enablePagination: boolean = true;\n\n\t/**\n\t * Wether to enable export\n\t */\n\t@Prop() enableExport: boolean = true;\n\n\t/**\n\t * The current page\n\t */\n\t@Prop({ mutable: true, reflect: true }) page: number = 1;\n\n\t/**\n\t * The total amount of items\n\t */\n\t@Prop() total!: number;\n\n\t/**\n\t * Event whenever the page changes\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tpageChange: EventEmitter<number>;\n\n\t/**\n\t * The amount of items per page\n\t */\n\t@Prop() pageSize: number = defaultSize;\n\n\t/**\n\t * The options for the page size\n\t */\n\t@Prop() pageSizeOptions: number[] = defaultSizeOptions;\n\n\t/**\n\t * Event whenever the page changes\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\tpageSizeChange: EventEmitter<number>;\n\n\t/**\n\t * Event whenever the page changes\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\texport: EventEmitter<number>;\n\n\t/**\n\t * Wether to hide when there is only 1 page available\n\t */\n\t@Prop() hideOnSinglePage: boolean = true;\n\n\t/* Empty state start */\n\t@Prop() emptyStateHeader: templateFunc = () =>\n\t\tformatTranslation(this._locales.empty_state?.no_filter.header);\n\t@Prop() emptyStateContent: templateFunc = () =>\n\t\tformatTranslation(this._locales.empty_state?.no_filter.content);\n\t@Prop() emptyStateAction: templateFunc = () =>\n\t\tformatTranslation(this._locales.empty_state?.no_filter.action);\n\t/**\n\t * Wether to enable empty state action\n\t */\n\t@Prop() enableEmptyStateAction: boolean = true;\n\n\t@Prop() emptyStateFilteredHeader: templateFunc = () =>\n\t\tformatTranslation(this._locales.empty_state.filtered.header);\n\t@Prop() emptyStateFilteredContent: templateFunc = () =>\n\t\tformatTranslation(this._locales.empty_state.filtered.content);\n\n\t/**\n\t * Event whenever the empty state is clicked\n\t */\n\t@Event({\n\t\tbubbles: false,\n\t})\n\temptyStateActionClick: EventEmitter<null>;\n\n\t/*\n\t * Wether to show the shadow or not\n\t */\n\t@Prop() shadow: boolean = true;\n\n\t/* Empty state end */\n\n\t/**\n\t * The host element\n\t */\n\t@Element() private _el: HTMLElement;\n\n\t/**\n\t * Locales used for this component\n\t */\n\t@State() private _locales: any = {};\n\n\t@State() private _columns: any[] = [];\n\t@State() private _items: any[] = [];\n\n\t@State() private _enableRowSelection: boolean = this.enableRowSelection;\n\t@State() private _rowSelectionLimit: number | undefined;\n\n\tprivate _rowActionsFloatingAll: TableRowAction[] = [];\n\t@State() private _rowActionsFloating: TableRowAction[] = [];\n\t@State() private _rowActionsRow: TableRowAction[] = [];\n\n\tprivate _ctrlDown = false;\n\tprivate _hasCustomFilterSlot = false;\n\tprivate _floatingMenuShown = false;\n\tprivate _resizeTimeout: NodeJS.Timer;\n\n\tcomponentWillLoad() {\n\t\tthis._hasCustomFilterSlot = !!this._el.querySelector(\n\t\t\t':scope > [slot=\"custom-filter\"]'\n\t\t);\n\n\t\tthis._setRowSelectionData();\n\n\t\tthis._setLocales();\n\t\tthis._parseItems(this.items);\n\t\tthis._generateColumns();\n\t}\n\n\tcomponentDidRender() {\n\t\tthis.hasRendered.emit();\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t<Host class='p-table'>\n\t\t\t\t<p-table-container shadow={this.shadow}>\n\t\t\t\t\t{this.enableHeader && (\n\t\t\t\t\t\t<p-table-header\n\t\t\t\t\t\t\t// quick filters\n\t\t\t\t\t\t\tquickFilters={this.quickFilters}\n\t\t\t\t\t\t\tactiveQuickFilterIdentifier={this.activeQuickFilterIdentifier}\n\t\t\t\t\t\t\tonQuickFilter={({ detail }) => this.quickFilter.emit(detail)}\n\t\t\t\t\t\t\t// search\n\t\t\t\t\t\t\tenableSearch={this.enableSearch}\n\t\t\t\t\t\t\tquery={this.query}\n\t\t\t\t\t\t\tonQueryChange={({ detail }) => this.queryChange.emit(detail)}\n\t\t\t\t\t\t\t// filter button\n\t\t\t\t\t\t\tenableFilter={this.enableFilter}\n\t\t\t\t\t\t\tselectedFiltersAmount={this.selectedFiltersAmount}\n\t\t\t\t\t\t\tfilterButtonTemplate={this.filterButtonTemplate}\n\t\t\t\t\t\t\tonFilter={() => this.filter.emit()}\n\t\t\t\t\t\t\t// action button\n\t\t\t\t\t\t\tenableAction={this.enableAction}\n\t\t\t\t\t\t\tactionIcon={this.actionButtonIcon}\n\t\t\t\t\t\t\tactionText={this.actionButtonText}\n\t\t\t\t\t\t\tactionLoading={this.actionButtonLoading}\n\t\t\t\t\t\t\tcanUseAction={this.actionButtonEnabled}\n\t\t\t\t\t\t\tactionButtonTemplate={this.actionButtonTemplate}\n\t\t\t\t\t\t\tonAction={() => this.action.emit()}\n\t\t\t\t\t\t\titemsSelectedAmount={this.selectedRows?.length}\n\t\t\t\t\t\t\t//loading\n\t\t\t\t\t\t\tloading={this.headerLoading}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{this._hasCustomFilterSlot && (\n\t\t\t\t\t\t\t\t<slot\n\t\t\t\t\t\t\t\t\tname='custom-filter'\n\t\t\t\t\t\t\t\t\tslot='custom-filter'\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</p-table-header>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{this._getHeader()}\n\t\t\t\t\t<div class='flex flex-1 flex-col'>{this._getRows()}</div>\n\n\t\t\t\t\t{this.enableFooter && (\n\t\t\t\t\t\t<p-table-footer\n\t\t\t\t\t\t\t// overall\n\t\t\t\t\t\t\thideOnSinglePage={this.hideOnSinglePage}\n\t\t\t\t\t\t\t// page size select\n\t\t\t\t\t\t\tenablePageSize={this.enablePageSize}\n\t\t\t\t\t\t\tpageSize={this.pageSize}\n\t\t\t\t\t\t\tpageSizeOptions={this.pageSizeOptions}\n\t\t\t\t\t\t\tonPageSizeChange={({ detail }) =>\n\t\t\t\t\t\t\t\tthis.pageSizeChange.emit(detail)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// pagination\n\t\t\t\t\t\t\tenablePagination={this.enablePagination}\n\t\t\t\t\t\t\tpage={this.page}\n\t\t\t\t\t\t\ttotal={this.total}\n\t\t\t\t\t\t\tonPageChange={({ detail }) => this.pageChange.emit(detail)}\n\t\t\t\t\t\t\t// export\n\t\t\t\t\t\t\tenableExport={this.enableExport}\n\t\t\t\t\t\t\tonExport={() => this.export.emit()}\n\t\t\t\t\t\t\t//loading\n\t\t\t\t\t\t\tloading={this.footerLoading}\n\t\t\t\t\t\t></p-table-footer>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{this.enableFloatingMenu && this._enableRowSelection ? (\n\t\t\t\t\t\t<p-floating-menu-container\n\t\t\t\t\t\t\tusedInTable={true}\n\t\t\t\t\t\t\tclass={`${this.selectedRows?.length ? '' : 'inactive'} ${\n\t\t\t\t\t\t\t\tthis._floatingMenuShown ? 'shown' : ''\n\t\t\t\t\t\t\t}`}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<p-floating-menu-item\n\t\t\t\t\t\t\t\thover={false}\n\t\t\t\t\t\t\t\tslot='floating-menu-item'\n\t\t\t\t\t\t\t\tclass={\n\t\t\t\t\t\t\t\t\tthis._rowActionsFloating?.length ? 'hidden tablet:flex' : ''\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{this.floatingMenuAmountSelectedTemplate(\n\t\t\t\t\t\t\t\t\tthis.selectedRows?.length\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</p-floating-menu-item>\n\t\t\t\t\t\t\t<p-divider\n\t\t\t\t\t\t\t\tclass={`mx-0 text-storm ${\n\t\t\t\t\t\t\t\t\tthis._rowActionsFloating?.length ? 'hidden tablet:flex' : ''\n\t\t\t\t\t\t\t\t}`}\n\t\t\t\t\t\t\t\tvariant='vertical'\n\t\t\t\t\t\t\t\tslot='floating-menu-item'\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{this._rowActionsFloating?.length &&\n\t\t\t\t\t\t\t\tthis._rowActionsFloating.map(a => (\n\t\t\t\t\t\t\t\t\t<p-floating-menu-item\n\t\t\t\t\t\t\t\t\t\tslot='floating-menu-item'\n\t\t\t\t\t\t\t\t\t\tdisabled={a.disabled}\n\t\t\t\t\t\t\t\t\t\tonClick={() =>\n\t\t\t\t\t\t\t\t\t\t\t!a.disabled &&\n\t\t\t\t\t\t\t\t\t\t\t!a.loading &&\n\t\t\t\t\t\t\t\t\t\t\t!!a.action &&\n\t\t\t\t\t\t\t\t\t\t\ta.type === 'single'\n\t\t\t\t\t\t\t\t\t\t\t\t? a.action(this.selectedRows[0], false)\n\t\t\t\t\t\t\t\t\t\t\t\t: a.action(this.selectedRows, true)\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{a.label}{' '}\n\t\t\t\t\t\t\t\t\t\t{a.loading ? (\n\t\t\t\t\t\t\t\t\t\t\t<p-loader></p-loader>\n\t\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\t\t<p-icon\n\t\t\t\t\t\t\t\t\t\t\t\tvariant={a.icon}\n\t\t\t\t\t\t\t\t\t\t\t\trotate={a.iconRotate}\n\t\t\t\t\t\t\t\t\t\t\t\tflip={a.iconFlip}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</p-floating-menu-item>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t{this._rowActionsFloating?.length && (\n\t\t\t\t\t\t\t\t<p-divider\n\t\t\t\t\t\t\t\t\tclass='mx-0 text-storm'\n\t\t\t\t\t\t\t\t\tvariant='vertical'\n\t\t\t\t\t\t\t\t\tslot='floating-menu-item'\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t<p-floating-menu-item\n\t\t\t\t\t\t\t\tslot='floating-menu-item'\n\t\t\t\t\t\t\t\tonClick={() => this._selectAllChange(null, false)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<p-icon variant='negative' />\n\t\t\t\t\t\t\t</p-floating-menu-item>\n\t\t\t\t\t\t</p-floating-menu-container>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t''\n\t\t\t\t\t)}\n\t\t\t\t</p-table-container>\n\t\t\t</Host>\n\t\t);\n\t}\n\n\t@Listen('localeChanged', { target: 'body' })\n\tprivate async _setLocales(): Promise<void> {\n\t\tthis._locales = await getLocaleComponentStrings(this._el);\n\t}\n\n\t@Listen('tableDefinitionChanged', { target: 'body' })\n\tonTableDefinitionUpdated() {\n\t\tthis._generateColumns();\n\t}\n\n\t@Listen('keydown', { target: 'document' })\n\tkeyDown({ key }) {\n\t\tif (key !== 'Control' || this._ctrlDown === true) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._ctrlDown = true;\n\t}\n\n\t@Listen('keyup', { target: 'document' })\n\tkeyUp({ key }) {\n\t\tif (key !== 'Control' || this._ctrlDown === false) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._ctrlDown = false;\n\t}\n\n\t@Listen('visibilitychange', { target: 'document' })\n\tvisibilityChange() {\n\t\tif (document.visibilityState !== 'hidden' || this._ctrlDown === false) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._ctrlDown = false;\n\t}\n\n\t@Watch('items')\n\tprivate _parseItems(items: string) {\n\t\tif (!items) {\n\t\t\tthis._items = [];\n\t\t\treturn;\n\t\t}\n\n\t\tif (Array.isArray(items)) {\n\t\t\tthis._items = items;\n\t\t\treturn;\n\t\t}\n\n\t\tthis._items = JSON.parse(items);\n\t}\n\n\t@Watch('enableRowSelection')\n\t@Watch('rowSelectionLimit')\n\t@Watch('selectedRows')\n\t@Listen('resize', { target: 'window' })\n\tprivate _setRowSelectionData() {\n\t\tif (this._resizeTimeout) {\n\t\t\tclearTimeout(this._resizeTimeout);\n\t\t}\n\n\t\t// We add a timeout here because it's a lot easier on the machine to do these when someone is done\n\t\t// resizing and playing around with their browser\n\t\tthis._resizeTimeout = setTimeout(() => {\n\t\t\tconst mobile = isMobile();\n\n\t\t\t// we hack this to any[] to make it work..\n\t\t\tconst actions = Array.from(\n\t\t\t\tthis._el.querySelectorAll(':scope > p-table-row-action')\n\t\t\t) as any[] as TableRowAction[];\n\t\t\tthis._rowActionsRow = actions.filter(\n\t\t\t\ta => a.type === 'both' || a.type === 'single'\n\t\t\t);\n\t\t\tthis._rowActionsFloatingAll = actions\n\t\t\t\t.filter(\n\t\t\t\t\ta =>\n\t\t\t\t\t\t(this.enableRowSelection &&\n\t\t\t\t\t\t\t(a.type === 'both' || a.type === 'multi')) ||\n\t\t\t\t\t\t(mobile && a.type === 'single')\n\t\t\t\t)\n\t\t\t\t.map(a => {\n\t\t\t\t\tif (a.type === 'single') {\n\t\t\t\t\t\ta.disabled = this.selectedRows?.length > 1;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn a;\n\t\t\t\t});\n\n\t\t\tlet rowSelectionLimit = this.rowSelectionLimit;\n\t\t\tif (\n\t\t\t\tmobile && // we're mobile\n\t\t\t\tthis._rowActionsFloatingAll?.length && // we have atleast 1 item in _rowActionsFloating\n\t\t\t\t((rowSelectionLimit !== undefined && this.enableRowSelection) ||\n\t\t\t\t\t!this.enableRowSelection)\n\t\t\t) {\n\t\t\t\trowSelectionLimit = 1;\n\t\t\t}\n\n\t\t\tthis._rowSelectionLimit = rowSelectionLimit;\n\n\t\t\tlet enableRowSelection = this.enableRowSelection;\n\t\t\tif (\n\t\t\t\tmobile && // we're mobile\n\t\t\t\tthis._rowActionsFloatingAll?.length && // we have atleast 1 item in _rowActionsFloating\n\t\t\t\t!enableRowSelection\n\t\t\t) {\n\t\t\t\tenableRowSelection = true;\n\t\t\t}\n\n\t\t\tthis._enableRowSelection = enableRowSelection;\n\n\t\t\tif (this._floatingMenuShown) {\n\t\t\t\tthis._showFloatingMenu();\n\t\t\t}\n\t\t}, 200);\n\t}\n\n\tprivate _generateColumns() {\n\t\tconst definitions = this._el.querySelectorAll('p-table-column');\n\t\tlet definitionsArray = Array.from(definitions);\n\n\t\tdefinitionsArray = this._parseDefinitions(definitionsArray);\n\n\t\tthis._columns = definitionsArray;\n\t}\n\n\tprivate _getHeader() {\n\t\treturn (\n\t\t\t<p-table-row variant='header'>\n\t\t\t\t{this._columns.map((col: TableColumn, index) => (\n\t\t\t\t\t<p-table-cell\n\t\t\t\t\t\tdefinition={col}\n\t\t\t\t\t\tvalue={col.name}\n\t\t\t\t\t\tvariant='header'\n\t\t\t\t\t\tcheckbox={\n\t\t\t\t\t\t\tindex === 0 || col.hasCheckbox\n\t\t\t\t\t\t\t\t? this._getCheckbox(null, this.loading ? 'loading' : 'header')\n\t\t\t\t\t\t\t\t: null\n\t\t\t\t\t\t}\n\t\t\t\t\t\tindex={index}\n\t\t\t\t\t></p-table-cell>\n\t\t\t\t))}\n\t\t\t</p-table-row>\n\t\t);\n\t}\n\n\tprivate _getRows() {\n\t\tif (this.loading) {\n\t\t\treturn Array.from(\n\t\t\t\t{\n\t\t\t\t\tlength: this.amountOfLoadingRows,\n\t\t\t\t},\n\t\t\t\t(_, i) => (\n\t\t\t\t\t<p-table-row\n\t\t\t\t\t\tenableHover={this._enableRowSelection || this.enableRowClick}\n\t\t\t\t\t>\n\t\t\t\t\t\t{this._getLoadingColumns(i)}\n\t\t\t\t\t</p-table-row>\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\n\t\tif (!this._items.length) {\n\t\t\treturn this._getEmptyState();\n\t\t}\n\n\t\treturn this._items.map((item, index) => (\n\t\t\t<p-table-row\n\t\t\t\tenableHover={this._enableRowSelection || this.enableRowClick}\n\t\t\t\tonClick={ev => this._rowClick(ev, index)}\n\t\t\t>\n\t\t\t\t{this._getRowColumns(item, index)}\n\t\t\t</p-table-row>\n\t\t));\n\t}\n\n\tprivate _getRowColumns(item, index) {\n\t\tconst columns = this._columns.map((col: TableColumn, colIndex) => {\n\t\t\treturn (\n\t\t\t\t<p-table-cell\n\t\t\t\t\tdefinition={col}\n\t\t\t\t\titem={item}\n\t\t\t\t\tcheckbox={\n\t\t\t\t\t\tcolIndex === 0 || col.hasCheckbox ? this._getCheckbox(index) : null\n\t\t\t\t\t}\n\t\t\t\t\tindex={colIndex}\n\t\t\t\t\trowIndex={index}\n\t\t\t\t\ttableHasActions={!!this._rowActionsRow.length && !isMobile()}\n\t\t\t\t></p-table-cell>\n\t\t\t);\n\t\t});\n\n\t\tif (this._rowActionsRow?.length && !isMobile()) {\n\t\t\tconst def = this._parseRowActionsRowDefinition();\n\t\t\tconst actions = this._rowActionsRow.filter(a =>\n\t\t\t\ta.showFunction ? a.showFunction(item) : true\n\t\t\t);\n\n\t\t\tif (!actions.length) {\n\t\t\t\treturn columns;\n\t\t\t}\n\n\t\t\tcolumns.push(\n\t\t\t\t<p-table-cell\n\t\t\t\t\tvariant='actions'\n\t\t\t\t\tdefinition={def}\n\t\t\t\t\titem={item}\n\t\t\t\t\tindex={this._columns.length - 1}\n\t\t\t\t\trowIndex={index}\n\t\t\t\t\ttableHasActions={!!this._rowActionsRow.length}\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tslot='actions'\n\t\t\t\t\t\tclass='ml-auto flex items-center gap-2'\n\t\t\t\t\t>\n\t\t\t\t\t\t{actions.map(a => (\n\t\t\t\t\t\t\t<p-tooltip content={a.label}>\n\t\t\t\t\t\t\t\t<p-button\n\t\t\t\t\t\t\t\t\tdata-is-action\n\t\t\t\t\t\t\t\t\tvariant='secondary'\n\t\t\t\t\t\t\t\t\tslot='trigger'\n\t\t\t\t\t\t\t\t\ticon={a.icon}\n\t\t\t\t\t\t\t\t\ticonRotate={a.iconRotate}\n\t\t\t\t\t\t\t\t\ticonFlip={a.iconFlip}\n\t\t\t\t\t\t\t\t\ticonOnly={true}\n\t\t\t\t\t\t\t\t\tsize='small'\n\t\t\t\t\t\t\t\t\tonClick={() =>\n\t\t\t\t\t\t\t\t\t\ttypeof a.action === 'function' && a.action?.(item, false)\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t></p-button>\n\t\t\t\t\t\t\t</p-tooltip>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</div>\n\t\t\t\t</p-table-cell>\n\t\t\t);\n\t\t}\n\n\t\treturn columns;\n\t}\n\n\tprivate _getLoadingColumns(index) {\n\t\treturn this._columns.map((col: TableColumn, colIndex) => {\n\t\t\treturn (\n\t\t\t\t<p-table-cell\n\t\t\t\t\tdefinition={col}\n\t\t\t\t\tvariant='loading'\n\t\t\t\t\tcheckbox={\n\t\t\t\t\t\tcolIndex === 0 || col.hasCheckbox\n\t\t\t\t\t\t\t? this._getCheckbox(index, 'loading')\n\t\t\t\t\t\t\t: null\n\t\t\t\t\t}\n\t\t\t\t\tindex={colIndex}\n\t\t\t\t\trowIndex={index}\n\t\t\t\t></p-table-cell>\n\t\t\t);\n\t\t});\n\t}\n\n\tprivate _getCheckbox(\n\t\trowIndex: number,\n\t\tvariant: 'header' | 'default' | 'loading' = 'default'\n\t) {\n\t\tif (\n\t\t\t!this._enableRowSelection ||\n\t\t\t(!this.selectionKey && !this._rowActionsFloating?.length)\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (variant === 'loading') {\n\t\t\treturn (\n\t\t\t\t<p-loader\n\t\t\t\t\tvariant='ghost'\n\t\t\t\t\tclass='h-6 w-6 rounded'\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\tif (variant === 'header') {\n\t\t\treturn (\n\t\t\t\t<input\n\t\t\t\t\tclass={`p-input ${\n\t\t\t\t\t\tthis._rowSelectionLimit !== undefined && 'opacity-0'\n\t\t\t\t\t}`}\n\t\t\t\t\ttype='checkbox'\n\t\t\t\t\tonChange={ev => this._selectAllChange(ev)}\n\t\t\t\t\tchecked={this._selectionContainsAll()}\n\t\t\t\t\tindeterminate={this._selectionIndeterminate()}\n\t\t\t\t\tdisabled={this._rowSelectionLimit !== undefined}\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\tconst item = this._items[rowIndex];\n\n\t\tconst selectionContains = this._selectionContains(rowIndex);\n\n\t\treturn (\n\t\t\t<input\n\t\t\t\tclass='p-input'\n\t\t\t\ttype='checkbox'\n\t\t\t\tonChange={ev => this._checkboxChange(ev?.target, rowIndex)}\n\t\t\t\tdisabled={\n\t\t\t\t\t(this.canSelectKey && !item[this.canSelectKey]) ||\n\t\t\t\t\t(this._rowSelectionLimit !== undefined &&\n\t\t\t\t\t\t!selectionContains &&\n\t\t\t\t\t\tthis.selectedRows.length === this._rowSelectionLimit)\n\t\t\t\t}\n\t\t\t\tchecked={selectionContains}\n\t\t\t/>\n\t\t);\n\t}\n\n\tprivate _getEmptyState() {\n\t\tif (this.query?.length || this.selectedFiltersAmount) {\n\t\t\treturn (\n\t\t\t\t<div class='flex max-w-[20rem] flex-col items-center self-center py-24 text-center'>\n\t\t\t\t\t<p-illustration\n\t\t\t\t\t\tvariant='empty-state-search'\n\t\t\t\t\t\tclass='mb-6'\n\t\t\t\t\t/>\n\t\t\t\t\t<p class='text-storm-default font-semibold'>\n\t\t\t\t\t\t{this.emptyStateFilteredHeader()}\n\t\t\t\t\t</p>\n\t\t\t\t\t<p class='mb-14 text-sm text-storm-medium'>\n\t\t\t\t\t\t{this.emptyStateFilteredContent()}\n\t\t\t\t\t</p>\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<div\n\t\t\t\tclass={`flex max-w-[20rem] flex-col items-center self-center py-24 text-center ${\n\t\t\t\t\tthis.enableEmptyStateAction && 'cursor-pointer'\n\t\t\t\t}`}\n\t\t\t\tonClick={() =>\n\t\t\t\t\tthis.enableEmptyStateAction && this.emptyStateActionClick.emit(null)\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<p-illustration\n\t\t\t\t\tvariant='empty-state-add'\n\t\t\t\t\tclass='mb-6'\n\t\t\t\t/>\n\t\t\t\t<p class='text-storm-default font-semibold'>\n\t\t\t\t\t{this.emptyStateHeader()}\n\t\t\t\t</p>\n\t\t\t\t<p class='mb-6 text-sm text-storm-medium'>{this.emptyStateContent()}</p>\n\t\t\t\t{this.enableEmptyStateAction && (\n\t\t\t\t\t<p-button\n\t\t\t\t\t\tvariant='secondary'\n\t\t\t\t\t\ticon='plus'\n\t\t\t\t\t\tsize='small'\n\t\t\t\t\t>\n\t\t\t\t\t\t{this.emptyStateAction()}\n\t\t\t\t\t</p-button>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t}\n\n\tprivate _selectAllChange($event: any, forceValue?: boolean) {\n\t\tif (!this._enableRowSelection) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst value =\n\t\t\tforceValue === undefined\n\t\t\t\t? this._getCheckedValue($event.target)\n\t\t\t\t: forceValue;\n\t\tif (value) {\n\t\t\tconst toAdd = [];\n\t\t\tfor (let i = 0; i < this._items.length; i++) {\n\t\t\t\tconst row = this._items[i];\n\t\t\t\tif (this.canSelectKey && !row[this.canSelectKey]) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (this._selectionContains(i)) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\ttoAdd.push(row);\n\t\t\t\tthis.rowSelected.emit(row);\n\n\t\t\t\tif (\n\t\t\t\t\tthis._rowSelectionLimit !== undefined &&\n\t\t\t\t\tthis.selectedRows.length + toAdd.length === this._rowSelectionLimit\n\t\t\t\t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.selectedRows = [...this.selectedRows, ...toAdd];\n\t\t\tthis.selectedRowsChange.emit(this.selectedRows);\n\t\t\tif (this.enableFloatingMenu && !this._floatingMenuShown) {\n\t\t\t\tthis._showFloatingMenu();\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tfor (let i = 0; i < this.selectedRows.length; i++) {\n\t\t\tconst value = this.selectedRows[i];\n\t\t\tconst row = this._items.find(\n\t\t\t\td => this._getSelectionValue(d, i) === this._getSelectionValue(value, i)\n\t\t\t);\n\n\t\t\tif (!row) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tthis.rowDeselected.emit(row);\n\t\t}\n\n\t\tthis.selectedRows = [];\n\t\tthis.selectedRowsChange.emit(this.selectedRows);\n\t}\n\n\tprivate _checkboxChange(target: any, index: number) {\n\t\tif (!this._enableRowSelection) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst value = this._getCheckedValue(target);\n\t\tif (\n\t\t\tvalue &&\n\t\t\tthis._rowSelectionLimit !== undefined &&\n\t\t\tthis.selectedRows.length >= this._rowSelectionLimit\n\t\t) {\n\t\t\ttarget.checked = false;\n\t\t\treturn;\n\t\t}\n\n\t\tconst row = this._items[index];\n\n\t\tif (this.canSelectKey && !row[this.canSelectKey]) {\n\t\t\ttarget.checked = false;\n\t\t\treturn;\n\t\t}\n\n\t\tif (value) {\n\t\t\tthis.selectedRows = [\n\t\t\t\t...this.selectedRows,\n\t\t\t\t{\n\t\t\t\t\t...row,\n\t\t\t\t\tindex,\n\t\t\t\t},\n\t\t\t];\n\t\t\tthis.selectedRowsChange.emit(this.selectedRows);\n\t\t\tthis.rowSelected.emit(row);\n\n\t\t\tif (this.enableFloatingMenu && !this._floatingMenuShown) {\n\t\t\t\tthis._showFloatingMenu();\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst indexOfToRemove = this._selectionContains(index, true);\n\n\t\t// we need to do this, because splice does not trigger the selection setter.\n\t\tconst selection = [...this.selectedRows];\n\t\tselection.splice(indexOfToRemove, 1);\n\t\tthis.selectedRows = selection;\n\t\tthis.selectedRowsChange.emit(this.selectedRows);\n\t\tthis.rowDeselected.emit(row);\n\t}\n\n\tprivate _getCheckedValue(target: any) {\n\t\treturn target?.checked;\n\t}\n\n\tprivate _getSelectionValue(row: any, index: number) {\n\t\treturn this.selectionKey ? row?.[this.selectionKey] || index : index;\n\t}\n\n\tprivate _selectionContains(index, returnIndex = false): any {\n\t\tconst returnValue = this.selectedRows.findIndex(\n\t\t\titem => item.index === index\n\t\t);\n\t\treturn !returnIndex ? returnValue >= 0 : returnValue;\n\t}\n\n\tprivate _selectionContainsAll() {\n\t\tlet returnValue = true;\n\t\tif (!this._items?.length) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (\n\t\t\tthis._rowSelectionLimit !== undefined &&\n\t\t\tthis.selectedRows.length === this._rowSelectionLimit\n\t\t) {\n\t\t\treturn true;\n\t\t}\n\n\t\tfor (let i = 0; i < this._items?.length; i++) {\n\t\t\tconst contains = this._selectionContains(i);\n\n\t\t\tif (!contains) {\n\t\t\t\treturnValue = false;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn returnValue;\n\t}\n\n\tprivate _selectionIndeterminate() {\n\t\tif (!this._items?.length || !this.selectedRows?.length) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (\n\t\t\tthis._rowSelectionLimit !== undefined &&\n\t\t\tthis.selectedRows.length === this._rowSelectionLimit\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\n\t\tlet containsCount = 0;\n\t\tfor (let i = 0; i < this._items?.length; i++) {\n\t\t\tconst contains = this._selectionContains(i);\n\n\t\t\tif (contains) {\n\t\t\t\tcontainsCount++;\n\t\t\t}\n\t\t}\n\n\t\treturn containsCount > 0 && containsCount !== this._items.length;\n\t}\n\n\tprivate _rowClick($event, index) {\n\t\tconst target = $event.target;\n\n\t\tif (\n\t\t\ttarget.tagName.toLowerCase() === 'input' ||\n\t\t\ttarget.type === 'checkbox'\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst row = this._findRow($event.target);\n\t\tconst action = this._findRowAction($event.target);\n\n\t\tif (action) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.enableRowClick) {\n\t\t\tconst item = this._items[index];\n\t\t\tthis.rowClick.emit({\n\t\t\t\titem,\n\t\t\t\tctrlDown: this._ctrlDown,\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tif (!this._enableRowSelection) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst checkbox = row?.querySelector('input[type=\"checkbox\"]');\n\n\t\tif (!checkbox) {\n\t\t\treturn;\n\t\t}\n\n\t\tcheckbox.checked = !checkbox.checked;\n\t\tthis._checkboxChange(checkbox, index);\n\t}\n\n\tprivate _findRow(el: HTMLElement) {\n\t\tif (!el) {\n\t\t\treturn el;\n\t\t}\n\n\t\tif (el?.tagName?.toLowerCase() === 'p-table-row') {\n\t\t\treturn el;\n\t\t}\n\n\t\treturn this._findRow(el?.parentElement);\n\t}\n\n\tprivate _findRowAction(el: HTMLElement) {\n\t\tif (!el) {\n\t\t\treturn null;\n\t\t}\n\n\t\tif (\n\t\t\tel.getAttribute('data-is-action') !== null &&\n\t\t\tel.getAttribute('data-is-action') !== 'false'\n\t\t) {\n\t\t\treturn el;\n\t\t}\n\n\t\tif (el?.tagName?.toLowerCase() === 'p-table-row') {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn this._findRowAction(el?.parentElement);\n\t}\n\n\tprivate _showFloatingMenu() {\n\t\tlet actions = this._rowActionsFloatingAll;\n\t\tif (\n\t\t\tthis.rowSelectionLimit === 1 &&\n\t\t\tactions.findIndex(\n\t\t\t\ta => (a.type === 'single' || a.type === 'both') && a.showFunction\n\t\t\t) >= 0\n\t\t) {\n\t\t\tactions = actions.filter(\n\t\t\t\ta =>\n\t\t\t\t\ta.type === 'multi' ||\n\t\t\t\t\t!a.showFunction ||\n\t\t\t\t\ta.showFunction(this.selectedRows[0])\n\t\t\t);\n\t\t}\n\n\t\tthis._rowActionsFloating = actions;\n\t\tthis._floatingMenuShown = true;\n\t}\n\n\tprivate _parseDefinitions(definitionsArray: HTMLPTableColumnElement[]) {\n\t\tconst definitions = definitionsArray.map(definition => {\n\t\t\tdefinition = this._parseDefinitionSizes(definition);\n\t\t\tdefinition.isLast = {};\n\t\t\treturn definition;\n\t\t});\n\n\t\tconst matchedIsLast = tableColumSizesOptions.reduce(\n\t\t\t(data: { [key: string]: boolean }, size) => {\n\t\t\t\tdata[size] = false;\n\t\t\t\treturn data;\n\t\t\t},\n\t\t\t{}\n\t\t);\n\n\t\tfor (let i = definitions.length - 1; i >= 0; i--) {\n\t\t\tconst definition = definitions[i];\n\n\t\t\tfor (const size of tableColumSizesOptions) {\n\t\t\t\tif (matchedIsLast[size]) {\n\t\t\t\t\tdefinition.isLast[size] = false;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (definition.parsedSizes![size] === 'hidden') {\n\t\t\t\t\tdefinition.isLast[size] = false;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tconst isLastAtSizeFound = this._findLastDefinitionBySize(\n\t\t\t\t\tdefinitions,\n\t\t\t\t\tsize\n\t\t\t\t);\n\t\t\t\tif (isLastAtSizeFound) {\n\t\t\t\t\tdefinition.isLast[size] = false;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tdefinition.isLast[size] = true;\n\t\t\t}\n\t\t}\n\n\t\treturn definitions;\n\t}\n\n\tprivate _findLastDefinitionBySize(\n\t\tdefinitions: HTMLPTableColumnElement[],\n\t\tsize: string\n\t) {\n\t\treturn definitions\n\t\t\t.slice()\n\t\t\t.reverse()\n\t\t\t.find(d => d.isLast[size] === true);\n\t}\n\n\tprivate _parseDefinitionSizes(definition: HTMLPTableColumnElement) {\n\t\tconst definitionAny = definition as any;\n\t\tlet parsedSizes: TableColumnSizes = { default: 'full' };\n\n\t\tif (\n\t\t\ttypeof definition.sizes === 'string' &&\n\t\t\t!['auto', 'hidden', 'full'].includes(definition.sizes)\n\t\t) {\n\t\t\tdefinition.sizes = JSON.parse(definition.sizes);\n\t\t}\n\n\t\tfor (const [index, size] of tableColumSizesOptions.entries()) {\n\t\t\tif (\n\t\t\t\tdefinitionAny.sizes === 'auto' ||\n\t\t\t\tdefinitionAny.sizes === 'hidden' ||\n\t\t\t\tdefinitionAny.sizes === 'full' ||\n\t\t\t\ttypeof definitionAny.sizes === 'number'\n\t\t\t) {\n\t\t\t\tparsedSizes[size] =\n\t\t\t\t\tdefinitionAny.sizes === 'auto' ? 'full' : definitionAny.sizes;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tparsedSizes[size] =\n\t\t\t\tdefinitionAny.sizes[size] ??\n\t\t\t\tparsedSizes[tableColumSizesOptions[index - 1]];\n\t\t}\n\n\t\tdefinition.parsedSizes = parsedSizes;\n\t\treturn definition;\n\t}\n\n\tprivate _parseRowActionsRowDefinition() {\n\t\tconst isLast = tableColumSizesOptions.reduce(\n\t\t\t(data: { [key: string]: boolean }, size) => {\n\t\t\t\tdata[size] = true;\n\t\t\t\treturn data;\n\t\t\t},\n\t\t\t{}\n\t\t);\n\t\tconst sizes: TableColumnSizes = { default: 0 };\n\n\t\tfor (const size of tableColumSizesOptions) {\n\t\t\tconst lastColumn = this._findLastDefinitionBySize(this._columns, size);\n\t\t\tsizes[size] = lastColumn!.parsedSizes![size]!;\n\t\t}\n\n\t\treturn {\n\t\t\tisLast,\n\t\t\tsizes,\n\t\t\tparsedSizes: sizes,\n\t\t\talign: 'end',\n\t\t\ttype: 'td',\n\t\t\tpath: null,\n\t\t} as TableColumn;\n\t}\n}\n"],"mappings":"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"}