@paperless/core 1.37.1 → 1.38.0
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 +11 -0
- package/dist/build/{p-06f224c5.entry.js → p-a676e532.entry.js} +2 -2
- package/dist/build/p-a676e532.entry.js.map +1 -0
- package/dist/build/paperless.esm.js +1 -1
- package/dist/build/paperless.esm.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/p-table.cjs.entry.js +28 -4
- package/dist/cjs/p-table.cjs.entry.js.map +1 -1
- package/dist/cjs/paperless.cjs.js +1 -1
- package/dist/collection/components/organisms/table/table.component.css +1 -1
- package/dist/collection/components/organisms/table/table.component.js +44 -3
- package/dist/collection/components/organisms/table/table.component.js.map +1 -1
- package/dist/components/p-table.js +29 -4
- package/dist/components/p-table.js.map +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/p-table.entry.js +28 -4
- package/dist/esm/p-table.entry.js.map +1 -1
- package/dist/esm/paperless.js +1 -1
- package/dist/index.html +1 -1
- package/dist/paperless/{p-06f224c5.entry.js → p-a676e532.entry.js} +2 -2
- package/dist/paperless/p-a676e532.entry.js.map +1 -0
- package/dist/paperless/paperless.esm.js +1 -1
- package/dist/paperless/paperless.esm.js.map +1 -1
- package/dist/sw.js +1 -1
- package/dist/sw.js.map +1 -1
- package/dist/types/components/organisms/table/table.component.d.ts +4 -0
- package/dist/types/components.d.ts +8 -0
- package/hydrate/index.js +29 -4
- package/package.json +1 -1
- package/dist/build/p-06f224c5.entry.js.map +0 -1
- package/dist/paperless/p-06f224c5.entry.js.map +0 -1
|
@@ -29,6 +29,10 @@ export declare class Table {
|
|
|
29
29
|
* Wether to enable selection
|
|
30
30
|
*/
|
|
31
31
|
enableRowSelection: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* A limit to the amount of rows that can be selected
|
|
34
|
+
*/
|
|
35
|
+
rowSelectionLimit: number | undefined;
|
|
32
36
|
/**
|
|
33
37
|
* Wether to enable row clicking
|
|
34
38
|
*/
|
|
@@ -1255,6 +1255,10 @@ export namespace Components {
|
|
|
1255
1255
|
* Quick filters to show
|
|
1256
1256
|
*/
|
|
1257
1257
|
"quickFilters": QuickFilter[];
|
|
1258
|
+
/**
|
|
1259
|
+
* A limit to the amount of rows that can be selected
|
|
1260
|
+
*/
|
|
1261
|
+
"rowSelectionLimit": number | undefined;
|
|
1258
1262
|
/**
|
|
1259
1263
|
* The amount of filters being selected
|
|
1260
1264
|
*/
|
|
@@ -3426,6 +3430,10 @@ declare namespace LocalJSX {
|
|
|
3426
3430
|
* Quick filters to show
|
|
3427
3431
|
*/
|
|
3428
3432
|
"quickFilters"?: QuickFilter[];
|
|
3433
|
+
/**
|
|
3434
|
+
* A limit to the amount of rows that can be selected
|
|
3435
|
+
*/
|
|
3436
|
+
"rowSelectionLimit"?: number | undefined;
|
|
3429
3437
|
/**
|
|
3430
3438
|
* The amount of filters being selected
|
|
3431
3439
|
*/
|
package/hydrate/index.js
CHANGED
|
@@ -21551,7 +21551,7 @@ class TabItem {
|
|
|
21551
21551
|
}; }
|
|
21552
21552
|
}
|
|
21553
21553
|
|
|
21554
|
-
const tableComponentCss = ".fixed{position:fixed!important}.absolute{position:absolute!important}.relative{position:relative!important}.bottom-4{bottom:1rem!important}.left-1\\/2{left:50%!important}.flex{display:flex!important}.hidden{display:none!important}.flex-shrink{flex-shrink:1!important}.-translate-x-1\\/2{--tw-translate-x:-50%!important}.-translate-x-1\\/2,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}*{box-sizing:border-box}p-table{display:flex;flex-direction:column;position:relative}p-table .p-input[type=checkbox]{flex-shrink:0}p-table p-table-container{position:relative}p-table p-table-container p-floating-menu-container{--tw-translate-x:-50%;animation:floatingMenuContainerIn .3s ease forwards!important;bottom:1rem;left:50%;position:fixed;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@media (min-width:40rem){p-table p-table-container p-floating-menu-container{bottom:4rem;position:absolute}}p-table p-table-container p-floating-menu-container:not(.shown){display:none}p-table p-table-container p-floating-menu-container.inactive{animation:floatingMenuContainerOut .3s ease forwards!important}p-table p-table-container p-floating-menu-container .hide-mobile{display:none}@media (min-width:40rem){p-table p-table-container p-floating-menu-container .hide-mobile{display:block}}@keyframes floatingMenuContainerOut{0%{display:flex;opacity:1;transform:translateY(0) translateX(-50%)}99%{display:flex;opacity:0;transform:translateY(100%) translateX(-50%)}to{display:none;opacity:0;transform:translateY(100%) translateX(-50%)}}@keyframes floatingMenuContainerIn{0%{display:none;opacity:0;transform:translateY(100%) translateX(-50%)}1%{display:flex;opacity:0;transform:translateY(100%) translateX(-50%)}to{display:flex;opacity:1;transform:translateY(0) translateX(-50%)}}@media (min-width:40rem){.tablet\\:block{display:block!important}}.static{position:static!important}.mx-0{margin-left:0!important;margin-right:0!important}.mb-14{margin-bottom:3.5rem!important}.mb-6{margin-bottom:1.5rem!important}.table{display:table!important}.h-6{height:1.5rem!important}.w-6{width:1.5rem!important}.max-w-\\[20rem\\]{max-width:20rem!important}.flex-1{flex:1 1 0%!important}.cursor-pointer{cursor:pointer!important}.flex-col{flex-direction:column!important}.items-center{align-items:center!important}.self-center{align-self:center!important}.rounded{border-radius:.25rem!important}.py-24{padding-bottom:6rem!important;padding-top:6rem!important}.text-center{text-align:center!important}.text-sm{font-size:.875rem!important;line-height:1.25rem!important}.font-semibold{font-weight:600!important}.text-storm{--tw-text-opacity:1!important;color:rgb(81 83 107/var(--tw-text-opacity))!important}.text-storm-medium{--tw-text-opacity:1!important;color:rgb(128 130 158/var(--tw-text-opacity))!important}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}";
|
|
21554
|
+
const tableComponentCss = ".fixed{position:fixed!important}.absolute{position:absolute!important}.relative{position:relative!important}.bottom-4{bottom:1rem!important}.left-1\\/2{left:50%!important}.flex{display:flex!important}.hidden{display:none!important}.flex-shrink{flex-shrink:1!important}.-translate-x-1\\/2{--tw-translate-x:-50%!important}.-translate-x-1\\/2,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}*{box-sizing:border-box}p-table{display:flex;flex-direction:column;position:relative}p-table .p-input[type=checkbox]{flex-shrink:0}p-table p-table-container{position:relative}p-table p-table-container p-floating-menu-container{--tw-translate-x:-50%;animation:floatingMenuContainerIn .3s ease forwards!important;bottom:1rem;left:50%;position:fixed;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@media (min-width:40rem){p-table p-table-container p-floating-menu-container{bottom:4rem;position:absolute}}p-table p-table-container p-floating-menu-container:not(.shown){display:none}p-table p-table-container p-floating-menu-container.inactive{animation:floatingMenuContainerOut .3s ease forwards!important}p-table p-table-container p-floating-menu-container .hide-mobile{display:none}@media (min-width:40rem){p-table p-table-container p-floating-menu-container .hide-mobile{display:block}}@keyframes floatingMenuContainerOut{0%{display:flex;opacity:1;transform:translateY(0) translateX(-50%)}99%{display:flex;opacity:0;transform:translateY(100%) translateX(-50%)}to{display:none;opacity:0;transform:translateY(100%) translateX(-50%)}}@keyframes floatingMenuContainerIn{0%{display:none;opacity:0;transform:translateY(100%) translateX(-50%)}1%{display:flex;opacity:0;transform:translateY(100%) translateX(-50%)}to{display:flex;opacity:1;transform:translateY(0) translateX(-50%)}}@media (min-width:40rem){.tablet\\:block{display:block!important}}.static{position:static!important}.mx-0{margin-left:0!important;margin-right:0!important}.mb-14{margin-bottom:3.5rem!important}.mb-6{margin-bottom:1.5rem!important}.table{display:table!important}.h-6{height:1.5rem!important}.w-6{width:1.5rem!important}.max-w-\\[20rem\\]{max-width:20rem!important}.flex-1{flex:1 1 0%!important}.cursor-pointer{cursor:pointer!important}.flex-col{flex-direction:column!important}.items-center{align-items:center!important}.self-center{align-self:center!important}.rounded{border-radius:.25rem!important}.py-24{padding-bottom:6rem!important;padding-top:6rem!important}.text-center{text-align:center!important}.text-sm{font-size:.875rem!important;line-height:1.25rem!important}.font-semibold{font-weight:600!important}.text-storm{--tw-text-opacity:1!important;color:rgb(81 83 107/var(--tw-text-opacity))!important}.text-storm-medium{--tw-text-opacity:1!important;color:rgb(128 130 158/var(--tw-text-opacity))!important}.opacity-0{opacity:0!important}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}";
|
|
21555
21555
|
|
|
21556
21556
|
class Table {
|
|
21557
21557
|
constructor(hostRef) {
|
|
@@ -21579,6 +21579,7 @@ class Table {
|
|
|
21579
21579
|
this.footerLoading = false;
|
|
21580
21580
|
this.amountOfLoadingRows = 6;
|
|
21581
21581
|
this.enableRowSelection = true;
|
|
21582
|
+
this.rowSelectionLimit = undefined;
|
|
21582
21583
|
this.enableRowClick = true;
|
|
21583
21584
|
this.selectedRows = [];
|
|
21584
21585
|
this.enableFloatingMenu = true;
|
|
@@ -21743,10 +21744,14 @@ class Table {
|
|
|
21743
21744
|
return hAsync("p-loader", { variant: "ghost", class: "h-6 w-6 rounded" });
|
|
21744
21745
|
}
|
|
21745
21746
|
if (variant === 'header') {
|
|
21746
|
-
return (hAsync("input", { class:
|
|
21747
|
+
return (hAsync("input", { class: `p-input ${this.rowSelectionLimit === 1 && 'opacity-0'}`, type: "checkbox", onChange: (ev) => this._selectAllChange(ev), checked: this._selectionContainsAll(), indeterminate: this._selectionIndeterminate(), disabled: this.rowSelectionLimit === 1 }));
|
|
21747
21748
|
}
|
|
21748
21749
|
const item = this._items[rowIndex];
|
|
21749
|
-
|
|
21750
|
+
const selectionContains = this._selectionContains(item, rowIndex);
|
|
21751
|
+
return (hAsync("input", { class: "p-input", type: "checkbox", onChange: (ev) => this._checkboxChange(ev === null || ev === void 0 ? void 0 : ev.target, rowIndex), disabled: (this.canSelectKey && !item[this.canSelectKey]) ||
|
|
21752
|
+
(this.rowSelectionLimit !== undefined &&
|
|
21753
|
+
!selectionContains &&
|
|
21754
|
+
this.selectedRows.length === this.rowSelectionLimit), checked: selectionContains }));
|
|
21750
21755
|
}
|
|
21751
21756
|
_getEmptyState() {
|
|
21752
21757
|
var _a;
|
|
@@ -21775,6 +21780,11 @@ class Table {
|
|
|
21775
21780
|
}
|
|
21776
21781
|
toAdd.push(row);
|
|
21777
21782
|
this.rowSelected.emit(row);
|
|
21783
|
+
if (this.rowSelectionLimit !== undefined &&
|
|
21784
|
+
this.selectedRows.length + toAdd.length ===
|
|
21785
|
+
this.rowSelectionLimit) {
|
|
21786
|
+
break;
|
|
21787
|
+
}
|
|
21778
21788
|
}
|
|
21779
21789
|
this.selectedRows = [...this.selectedRows, ...toAdd];
|
|
21780
21790
|
this.selectedRowsChange.emit(this.selectedRows);
|
|
@@ -21799,12 +21809,18 @@ class Table {
|
|
|
21799
21809
|
if (!this.enableRowSelection) {
|
|
21800
21810
|
return;
|
|
21801
21811
|
}
|
|
21812
|
+
const value = this._getCheckedValue(target);
|
|
21813
|
+
if (value &&
|
|
21814
|
+
this.rowSelectionLimit !== undefined &&
|
|
21815
|
+
this.selectedRows.length >= this.rowSelectionLimit) {
|
|
21816
|
+
target.checked = false;
|
|
21817
|
+
return;
|
|
21818
|
+
}
|
|
21802
21819
|
const row = this._items[index];
|
|
21803
21820
|
if (this.canSelectKey && !row[this.canSelectKey]) {
|
|
21804
21821
|
target.checked = false;
|
|
21805
21822
|
return;
|
|
21806
21823
|
}
|
|
21807
|
-
const value = this._getCheckedValue(target);
|
|
21808
21824
|
if (value) {
|
|
21809
21825
|
this.selectedRows = [...this.selectedRows, row];
|
|
21810
21826
|
this.selectedRowsChange.emit(this.selectedRows);
|
|
@@ -21839,6 +21855,10 @@ class Table {
|
|
|
21839
21855
|
if (!((_a = this._items) === null || _a === void 0 ? void 0 : _a.length)) {
|
|
21840
21856
|
return false;
|
|
21841
21857
|
}
|
|
21858
|
+
if (this.rowSelectionLimit !== undefined &&
|
|
21859
|
+
this.selectedRows.length === this.rowSelectionLimit) {
|
|
21860
|
+
return true;
|
|
21861
|
+
}
|
|
21842
21862
|
for (let i = 0; i < ((_b = this._items) === null || _b === void 0 ? void 0 : _b.length); i++) {
|
|
21843
21863
|
const item = this._items[i];
|
|
21844
21864
|
const contains = this._selectionContains(item, i);
|
|
@@ -21854,6 +21874,10 @@ class Table {
|
|
|
21854
21874
|
if (!((_a = this._items) === null || _a === void 0 ? void 0 : _a.length) || !((_b = this.selectedRows) === null || _b === void 0 ? void 0 : _b.length)) {
|
|
21855
21875
|
return false;
|
|
21856
21876
|
}
|
|
21877
|
+
if (this.rowSelectionLimit !== undefined &&
|
|
21878
|
+
this.selectedRows.length === this.rowSelectionLimit) {
|
|
21879
|
+
return false;
|
|
21880
|
+
}
|
|
21857
21881
|
let containsCount = 0;
|
|
21858
21882
|
for (let i = 0; i < ((_c = this._items) === null || _c === void 0 ? void 0 : _c.length); i++) {
|
|
21859
21883
|
const item = this._items[i];
|
|
@@ -21932,6 +21956,7 @@ class Table {
|
|
|
21932
21956
|
"footerLoading": [4, "footer-loading"],
|
|
21933
21957
|
"amountOfLoadingRows": [2, "amount-of-loading-rows"],
|
|
21934
21958
|
"enableRowSelection": [4, "enable-row-selection"],
|
|
21959
|
+
"rowSelectionLimit": [2, "row-selection-limit"],
|
|
21935
21960
|
"enableRowClick": [4, "enable-row-click"],
|
|
21936
21961
|
"selectedRows": [16],
|
|
21937
21962
|
"enableFloatingMenu": [4, "enable-floating-menu"],
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["tableComponentCss","Table","this","_ctrlDown","_hasCustomFilterSlot","_hasFloatingMenuItems","_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","componentWillLoad","_el","querySelector","querySelectorAll","length","_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","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","floatingMenuAmountSelectedTemplate","variant","onClick","_selectAllChange","getLocaleComponentStrings","onTableDefinitionUpdated","keyDown","key","keyUp","visibilityChange","document","visibilityState","_items","Array","isArray","JSON","parse","definitions","definitionsArray","from","_columns","map","col","index","definition","value","checkbox","hasCheckbox","_getCheckbox","amountOfLoadingRows","_","i","enableHover","enableRowClick","_getLoadingColumns","_getEmptyState","item","ev","_rowClick","_getRowColumns","colIndex","rowIndex","selectionKey","type","onChange","checked","_selectionContainsAll","indeterminate","_selectionIndeterminate","_checkboxChange","target","disabled","canSelectKey","_selectionContains","emptyStateFilteredHeader","emptyStateFilteredContent","enableEmptyStateAction","emptyStateActionClick","emptyStateHeader","emptyStateContent","icon","size","emptyStateAction","$event","forceValue","undefined","_getCheckedValue","toAdd","row","push","rowSelected","selectedRowsChange","find","d","_getSelectionValue","rowDeselected","indexOfToRemove","selection","splice","returnIndex","returnValue","findIndex","contains","containsCount","tagName","toLowerCase","_findRow","_findRowAction","rowClick","ctrlDown","el","parentElement","getAttribute"],"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\n\t\t\t.hide-mobile {\n\t\t\t\t@apply hidden tablet:block;\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 { QuickFilter, RowClickEvent } from '../../../types/table';\nimport { formatTranslation, getLocaleComponentStrings } from '../../../utils';\nimport { TableColumn } from '../../helpers/table-column/table-column.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 * 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\tprivate _ctrlDown = false;\n\tprivate _hasCustomFilterSlot = false;\n\tprivate _hasFloatingMenuItems = false;\n\tprivate _floatingMenuShown = false;\n\n\tcomponentWillLoad() {\n\t\tthis._hasCustomFilterSlot = !!this._el.querySelector(\n\t\t\t':scope > [slot=\"custom-filter\"]'\n\t\t);\n\t\tthis._hasFloatingMenuItems = !!this._el.querySelectorAll(\n\t\t\t':scope > [slot=\"floating-menu-item\"]'\n\t\t).length;\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={\n\t\t\t\t\t\t\t\tthis.activeQuickFilterIdentifier\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonQuickFilter={({ detail }) =>\n\t\t\t\t\t\t\t\tthis.quickFilter.emit(detail)\n\t\t\t\t\t\t\t}\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 }) =>\n\t\t\t\t\t\t\t\tthis.queryChange.emit(detail)\n\t\t\t\t\t\t\t}\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-col flex-1\">{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 }) =>\n\t\t\t\t\t\t\t\tthis.pageChange.emit(detail)\n\t\t\t\t\t\t\t}\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={`${\n\t\t\t\t\t\t\t\tthis.selectedRows?.length ? '' : 'inactive'\n\t\t\t\t\t\t\t} ${this._floatingMenuShown ? 'shown' : ''}`}\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._hasFloatingMenuItems\n\t\t\t\t\t\t\t\t\t\t? 'hide-mobile'\n\t\t\t\t\t\t\t\t\t\t: ''\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._hasFloatingMenuItems\n\t\t\t\t\t\t\t\t\t\t? 'hide-mobile'\n\t\t\t\t\t\t\t\t\t\t: ''\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._hasFloatingMenuItems && (\n\t\t\t\t\t\t\t\t<slot name=\"floating-menu-item\"></slot>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{this._hasFloatingMenuItems && (\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={() =>\n\t\t\t\t\t\t\t\t\tthis._selectAllChange(null, false)\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<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\tprivate _generateColumns() {\n\t\tconst definitions = this._el.querySelectorAll('p-table-column');\n\t\tconst definitionsArray = Array.from(definitions);\n\n\t\tdefinitionsArray[definitionsArray.length - 1]['isLast'] = true;\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(\n\t\t\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t\t\tthis.loading ? 'loading' : 'header'\n\t\t\t\t\t\t\t\t\t)\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={\n\t\t\t\t\t\t\tthis.enableRowSelection || this.enableRowClick\n\t\t\t\t\t\t}\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\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\titem={item}\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)\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 _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,\n\t\tvariant: 'header' | 'default' | 'loading' = 'default'\n\t) {\n\t\tif (!this.enableRowSelection || !this.selectionKey) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (variant === 'loading') {\n\t\t\treturn <p-loader variant=\"ghost\" class=\"h-6 w-6 rounded\" />;\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\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/>\n\t\t\t);\n\t\t}\n\n\t\tconst item = this._items[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={this.canSelectKey && !item[this.canSelectKey]}\n\t\t\t\tchecked={this._selectionContains(item, rowIndex)}\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 variant=\"empty-state-search\" class=\"mb-6\" />\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 &&\n\t\t\t\t\tthis.emptyStateActionClick.emit(null)\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<p-illustration variant=\"empty-state-add\" class=\"mb-6\" />\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\">\n\t\t\t\t\t{this.emptyStateContent()}\n\t\t\t\t</p>\n\t\t\t\t{this.enableEmptyStateAction && (\n\t\t\t\t\t<p-button variant=\"secondary\" icon=\"plus\" size=\"small\">\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(row, 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\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._floatingMenuShown = true;\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\t(d) =>\n\t\t\t\t\tthis._getSelectionValue(d, i) ===\n\t\t\t\t\tthis._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 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\tconst value = this._getCheckedValue(target);\n\t\tif (value) {\n\t\t\tthis.selectedRows = [...this.selectedRows, row];\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._floatingMenuShown = true;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst indexOfToRemove = this._selectionContains(row, 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(row, index, returnIndex = false): any {\n\t\tconst returnValue = this.selectedRows.findIndex(\n\t\t\t(item) =>\n\t\t\t\tthis._getSelectionValue(row, index) ===\n\t\t\t\tthis._getSelectionValue(item, 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\tfor (let i = 0; i < this._items?.length; i++) {\n\t\t\tconst item = this._items[i];\n\t\t\tconst contains = this._selectionContains(item, 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\tlet containsCount = 0;\n\t\tfor (let i = 0; i < this._items?.length; i++) {\n\t\t\tconst item = this._items[i];\n\t\t\tconst contains = this._selectionContains(item, 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"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["tableComponentCss","Table","this","_ctrlDown","_hasCustomFilterSlot","_hasFloatingMenuItems","_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","componentWillLoad","_el","querySelector","querySelectorAll","length","_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","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","floatingMenuAmountSelectedTemplate","variant","onClick","_selectAllChange","getLocaleComponentStrings","onTableDefinitionUpdated","keyDown","key","keyUp","visibilityChange","document","visibilityState","_items","Array","isArray","JSON","parse","definitions","definitionsArray","from","_columns","map","col","index","definition","value","checkbox","hasCheckbox","_getCheckbox","amountOfLoadingRows","_","i","enableHover","enableRowClick","_getLoadingColumns","_getEmptyState","item","ev","_rowClick","_getRowColumns","colIndex","rowIndex","selectionKey","type","onChange","checked","_selectionContainsAll","indeterminate","_selectionIndeterminate","_checkboxChange","target","disabled","canSelectKey","_selectionContains","emptyStateFilteredHeader","emptyStateFilteredContent","enableEmptyStateAction","emptyStateActionClick","emptyStateHeader","emptyStateContent","icon","size","emptyStateAction","$event","forceValue","undefined","_getCheckedValue","toAdd","row","push","rowSelected","selectedRowsChange","find","d","_getSelectionValue","rowDeselected","indexOfToRemove","selection","splice","returnIndex","returnValue","findIndex","contains","containsCount","tagName","toLowerCase","_findRow","_findRowAction","rowClick","ctrlDown","el","parentElement","getAttribute"],"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\n\t\t\t.hide-mobile {\n\t\t\t\t@apply hidden tablet:block;\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 { QuickFilter, RowClickEvent } from '../../../types/table';\nimport { formatTranslation, getLocaleComponentStrings } from '../../../utils';\nimport { TableColumn } from '../../helpers/table-column/table-column.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 * 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\tprivate _ctrlDown = false;\n\tprivate _hasCustomFilterSlot = false;\n\tprivate _hasFloatingMenuItems = false;\n\tprivate _floatingMenuShown = false;\n\n\tcomponentWillLoad() {\n\t\tthis._hasCustomFilterSlot = !!this._el.querySelector(\n\t\t\t':scope > [slot=\"custom-filter\"]'\n\t\t);\n\t\tthis._hasFloatingMenuItems = !!this._el.querySelectorAll(\n\t\t\t':scope > [slot=\"floating-menu-item\"]'\n\t\t).length;\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={\n\t\t\t\t\t\t\t\tthis.activeQuickFilterIdentifier\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonQuickFilter={({ detail }) =>\n\t\t\t\t\t\t\t\tthis.quickFilter.emit(detail)\n\t\t\t\t\t\t\t}\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 }) =>\n\t\t\t\t\t\t\t\tthis.queryChange.emit(detail)\n\t\t\t\t\t\t\t}\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-col flex-1\">{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 }) =>\n\t\t\t\t\t\t\t\tthis.pageChange.emit(detail)\n\t\t\t\t\t\t\t}\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={`${\n\t\t\t\t\t\t\t\tthis.selectedRows?.length ? '' : 'inactive'\n\t\t\t\t\t\t\t} ${this._floatingMenuShown ? 'shown' : ''}`}\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._hasFloatingMenuItems\n\t\t\t\t\t\t\t\t\t\t? 'hide-mobile'\n\t\t\t\t\t\t\t\t\t\t: ''\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._hasFloatingMenuItems\n\t\t\t\t\t\t\t\t\t\t? 'hide-mobile'\n\t\t\t\t\t\t\t\t\t\t: ''\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._hasFloatingMenuItems && (\n\t\t\t\t\t\t\t\t<slot name=\"floating-menu-item\"></slot>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t{this._hasFloatingMenuItems && (\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={() =>\n\t\t\t\t\t\t\t\t\tthis._selectAllChange(null, false)\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<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\tprivate _generateColumns() {\n\t\tconst definitions = this._el.querySelectorAll('p-table-column');\n\t\tconst definitionsArray = Array.from(definitions);\n\n\t\tdefinitionsArray[definitionsArray.length - 1]['isLast'] = true;\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(\n\t\t\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\t\t\tthis.loading ? 'loading' : 'header'\n\t\t\t\t\t\t\t\t\t)\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={\n\t\t\t\t\t\t\tthis.enableRowSelection || this.enableRowClick\n\t\t\t\t\t\t}\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\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\titem={item}\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)\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 _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,\n\t\tvariant: 'header' | 'default' | 'loading' = 'default'\n\t) {\n\t\tif (!this.enableRowSelection || !this.selectionKey) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (variant === 'loading') {\n\t\t\treturn <p-loader variant=\"ghost\" class=\"h-6 w-6 rounded\" />;\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\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/>\n\t\t\t);\n\t\t}\n\n\t\tconst item = this._items[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={this.canSelectKey && !item[this.canSelectKey]}\n\t\t\t\tchecked={this._selectionContains(item, rowIndex)}\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 variant=\"empty-state-search\" class=\"mb-6\" />\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 &&\n\t\t\t\t\tthis.emptyStateActionClick.emit(null)\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<p-illustration variant=\"empty-state-add\" class=\"mb-6\" />\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\">\n\t\t\t\t\t{this.emptyStateContent()}\n\t\t\t\t</p>\n\t\t\t\t{this.enableEmptyStateAction && (\n\t\t\t\t\t<p-button variant=\"secondary\" icon=\"plus\" size=\"small\">\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(row, 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\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._floatingMenuShown = true;\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\t(d) =>\n\t\t\t\t\tthis._getSelectionValue(d, i) ===\n\t\t\t\t\tthis._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 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\tconst value = this._getCheckedValue(target);\n\t\tif (value) {\n\t\t\tthis.selectedRows = [...this.selectedRows, row];\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._floatingMenuShown = true;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst indexOfToRemove = this._selectionContains(row, 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(row, index, returnIndex = false): any {\n\t\tconst returnValue = this.selectedRows.findIndex(\n\t\t\t(item) =>\n\t\t\t\tthis._getSelectionValue(row, index) ===\n\t\t\t\tthis._getSelectionValue(item, 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\tfor (let i = 0; i < this._items?.length; i++) {\n\t\t\tconst item = this._items[i];\n\t\t\tconst contains = this._selectionContains(item, 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\tlet containsCount = 0;\n\t\tfor (let i = 0; i < this._items?.length; i++) {\n\t\t\tconst item = this._items[i];\n\t\t\tconst contains = this._selectionContains(item, 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"],"mappings":"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"}
|