@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/CHANGELOG.md +19 -0
- package/dist/build/{p-702e1097.entry.js → p-3764eab6.entry.js} +2 -2
- package/dist/build/p-3764eab6.entry.js.map +1 -0
- package/dist/build/paperless.esm.js +1 -1
- package/dist/cjs/p-table.cjs.entry.js +4 -5
- package/dist/cjs/p-table.cjs.entry.js.map +1 -1
- package/dist/collection/components/organisms/table/table.component.js +4 -5
- package/dist/collection/components/organisms/table/table.component.js.map +1 -1
- package/dist/components/p-table.js +4 -5
- package/dist/components/p-table.js.map +1 -1
- package/dist/esm/p-table.entry.js +4 -5
- package/dist/esm/p-table.entry.js.map +1 -1
- package/dist/index.html +1 -1
- package/dist/paperless/{p-702e1097.entry.js → p-3764eab6.entry.js} +2 -2
- package/dist/paperless/p-3764eab6.entry.js.map +1 -0
- package/dist/paperless/paperless.esm.js +1 -1
- package/dist/sw.js +1 -1
- package/dist/sw.js.map +1 -1
- package/hydrate/index.js +4 -5
- package/package.json +1 -1
- package/dist/build/p-702e1097.entry.js.map +0 -1
- package/dist/paperless/p-702e1097.entry.js.map +0 -1
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
|
-
|
|
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: !!
|
|
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 ((
|
|
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:
|
|
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 +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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"}
|
|
@@ -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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"}
|