@paperless/core 1.52.0 → 1.52.2
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 +24 -0
- package/dist/build/index.esm.js +1 -1
- package/dist/build/index.esm.js.map +1 -1
- package/dist/build/p-66e3624b.js +2 -0
- package/dist/build/p-66e3624b.js.map +1 -0
- package/dist/build/p-702e1097.entry.js +2 -0
- package/dist/build/p-702e1097.entry.js.map +1 -0
- package/dist/build/{p-329ebeb7.entry.js → p-9d114950.entry.js} +2 -2
- package/dist/build/p-9d114950.entry.js.map +1 -0
- package/dist/build/{p-4dc5647e.entry.js → p-d7f2d4d3.entry.js} +2 -2
- package/dist/build/{p-4dc5647e.entry.js.map → p-d7f2d4d3.entry.js.map} +1 -1
- package/dist/build/p-f8544f0c.js +2 -0
- package/dist/build/p-f8544f0c.js.map +1 -0
- package/dist/build/paperless.esm.js +1 -1
- package/dist/build/paperless.esm.js.map +1 -1
- package/dist/cjs/index.cjs.js +9 -5
- package/dist/cjs/index.cjs.js.map +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/object-get-by-path-7e65c82d.js +115 -0
- package/dist/cjs/object-get-by-path-7e65c82d.js.map +1 -0
- package/dist/cjs/p-floating-menu-container_8.cjs.entry.js +5 -109
- package/dist/cjs/p-floating-menu-container_8.cjs.entry.js.map +1 -1
- package/dist/cjs/p-table-column.cjs.entry.js +2 -1
- package/dist/cjs/p-table-column.cjs.entry.js.map +1 -1
- package/dist/cjs/p-table.cjs.entry.js +112 -41
- package/dist/cjs/p-table.cjs.entry.js.map +1 -1
- package/dist/cjs/paperless.cjs.js +1 -1
- package/dist/cjs/{screens-84f01214.js → screens-eb3a3232.js} +12 -1
- package/dist/cjs/screens-eb3a3232.js.map +1 -0
- package/dist/collection/collection-manifest.json +1 -1
- package/dist/collection/components/helpers/table-column/table-column.component.js +27 -7
- package/dist/collection/components/helpers/table-column/table-column.component.js.map +1 -1
- package/dist/collection/components/molecules/table-cell/table-cell.component.css +1 -1
- package/dist/collection/components/molecules/table-cell/table-cell.component.js +49 -106
- package/dist/collection/components/molecules/table-cell/table-cell.component.js.map +1 -1
- package/dist/collection/components/organisms/table/table.component.js +112 -40
- package/dist/collection/components/organisms/table/table.component.js.map +1 -1
- package/dist/collection/types/constants.js +10 -0
- package/dist/collection/types/constants.js.map +1 -0
- package/dist/collection/types/index.js +1 -0
- package/dist/collection/types/index.js.map +1 -1
- package/dist/collection/types/table.js.map +1 -1
- package/dist/collection/types/tailwind.js.map +1 -1
- package/dist/collection/utils/index.js +1 -0
- package/dist/collection/utils/index.js.map +1 -1
- package/dist/collection/utils/table-helpers.js +94 -0
- package/dist/collection/utils/table-helpers.js.map +1 -0
- package/dist/components/index.js +3 -3
- package/dist/components/object-get-by-path.js +94 -1
- package/dist/components/object-get-by-path.js.map +1 -1
- package/dist/components/p-table-column.js +4 -2
- package/dist/components/p-table-column.js.map +1 -1
- package/dist/components/p-table.js +112 -41
- package/dist/components/p-table.js.map +1 -1
- package/dist/components/screens.js +11 -1
- package/dist/components/screens.js.map +1 -1
- package/dist/components/table-cell.component.js +5 -109
- package/dist/components/table-cell.component.js.map +1 -1
- package/dist/esm/index.js +3 -3
- package/dist/esm/loader.js +1 -1
- package/dist/esm/object-get-by-path-56508a0e.js +109 -0
- package/dist/esm/object-get-by-path-56508a0e.js.map +1 -0
- package/dist/esm/p-floating-menu-container_8.entry.js +5 -109
- package/dist/esm/p-floating-menu-container_8.entry.js.map +1 -1
- package/dist/esm/p-table-column.entry.js +2 -1
- package/dist/esm/p-table-column.entry.js.map +1 -1
- package/dist/esm/p-table.entry.js +112 -41
- package/dist/esm/p-table.entry.js.map +1 -1
- package/dist/esm/paperless.js +1 -1
- package/dist/esm/{screens-64bd8af0.js → screens-c0e0dee2.js} +12 -2
- package/dist/esm/screens-c0e0dee2.js.map +1 -0
- package/dist/index.html +1 -1
- package/dist/paperless/index.esm.js +1 -1
- package/dist/paperless/index.esm.js.map +1 -1
- package/dist/paperless/p-66e3624b.js +2 -0
- package/dist/paperless/p-66e3624b.js.map +1 -0
- package/dist/paperless/p-702e1097.entry.js +2 -0
- package/dist/paperless/p-702e1097.entry.js.map +1 -0
- package/dist/paperless/{p-329ebeb7.entry.js → p-9d114950.entry.js} +2 -2
- package/dist/paperless/p-9d114950.entry.js.map +1 -0
- package/dist/paperless/{p-4dc5647e.entry.js → p-d7f2d4d3.entry.js} +2 -2
- package/dist/paperless/{p-4dc5647e.entry.js.map → p-d7f2d4d3.entry.js.map} +1 -1
- package/dist/paperless/p-f8544f0c.js +2 -0
- package/dist/paperless/p-f8544f0c.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/helpers/table-column/table-column.component.d.ts +7 -1
- package/dist/types/components/molecules/table-cell/table-cell.component.d.ts +0 -1
- package/dist/types/components/organisms/table/table.component.d.ts +4 -0
- package/dist/types/components.d.ts +12 -2
- package/dist/types/types/constants.d.ts +2 -0
- package/dist/types/types/index.d.ts +1 -0
- package/dist/types/types/table.d.ts +9 -0
- package/dist/types/utils/index.d.ts +1 -0
- package/dist/types/utils/table-helpers.d.ts +14 -0
- package/hydrate/index.js +273 -153
- package/package.json +71 -69
- package/dist/build/p-08bef9ec.entry.js +0 -2
- package/dist/build/p-08bef9ec.entry.js.map +0 -1
- package/dist/build/p-15f63841.js +0 -2
- package/dist/build/p-15f63841.js.map +0 -1
- package/dist/build/p-329ebeb7.entry.js.map +0 -1
- package/dist/build/p-8da0a7c2.js +0 -2
- package/dist/build/p-8da0a7c2.js.map +0 -1
- package/dist/cjs/object-get-by-path-9757a1e9.js +0 -19
- package/dist/cjs/object-get-by-path-9757a1e9.js.map +0 -1
- package/dist/cjs/screens-84f01214.js.map +0 -1
- package/dist/esm/object-get-by-path-161ec6e4.js +0 -16
- package/dist/esm/object-get-by-path-161ec6e4.js.map +0 -1
- package/dist/esm/screens-64bd8af0.js.map +0 -1
- package/dist/paperless/p-08bef9ec.entry.js +0 -2
- package/dist/paperless/p-08bef9ec.entry.js.map +0 -1
- package/dist/paperless/p-15f63841.js +0 -2
- package/dist/paperless/p-15f63841.js.map +0 -1
- package/dist/paperless/p-329ebeb7.entry.js.map +0 -1
- package/dist/paperless/p-8da0a7c2.js +0 -2
- package/dist/paperless/p-8da0a7c2.js.map +0 -1
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { isTableColumnSizesKey, } from "../types";
|
|
2
|
+
export const getTableCellColumnClasses = (definition, variant, hasActions) => {
|
|
3
|
+
const sizes = definition ? getTableCellSizes(definition, variant) : {};
|
|
4
|
+
const isLastValues = definition
|
|
5
|
+
? getTableCellIsLastValues(definition, variant, hasActions)
|
|
6
|
+
: {};
|
|
7
|
+
return Object.assign(Object.assign({ 'justify-start': !(definition === null || definition === void 0 ? void 0 : definition.align) || (definition === null || definition === void 0 ? void 0 : definition.align) === 'start', 'justify-center': (definition === null || definition === void 0 ? void 0 : definition.align) === 'center', 'justify-end': (definition === null || definition === void 0 ? void 0 : definition.align) === 'end', 'font-semibold': variant !== 'header' && (definition === null || definition === void 0 ? void 0 : definition.type) === 'th', 'text-storm-dark': variant !== 'header' && (definition === null || definition === void 0 ? void 0 : definition.type) === 'th', 'group-hover:flex': variant === 'actions' && hasActions, hidden: variant === 'actions' && hasActions }, sizes), isLastValues);
|
|
8
|
+
};
|
|
9
|
+
export const getTableCellSizes = ({ sizes, } /* Table Definition */, variant) => {
|
|
10
|
+
if (sizes === 'auto' || !sizes) {
|
|
11
|
+
return {
|
|
12
|
+
'w-auto': true,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
if (sizes === 'hidden') {
|
|
16
|
+
return {
|
|
17
|
+
hidden: true,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
if (typeof sizes === 'object') {
|
|
21
|
+
sizes = sizes;
|
|
22
|
+
const classes = {};
|
|
23
|
+
let previousSize;
|
|
24
|
+
for (let size in sizes) {
|
|
25
|
+
if (!isTableColumnSizesKey(sizes, size)) {
|
|
26
|
+
continue;
|
|
27
|
+
}
|
|
28
|
+
if (size === 'default') {
|
|
29
|
+
if (sizes.default === 'hidden') {
|
|
30
|
+
classes['hidden'] = true;
|
|
31
|
+
previousSize = size;
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
classes[`w-${sizes.default}/12`] = true;
|
|
35
|
+
previousSize = size;
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
const currentValue = sizes[size];
|
|
39
|
+
const previousValue = previousSize ? sizes[previousSize] : null;
|
|
40
|
+
if (currentValue !== 'hidden' &&
|
|
41
|
+
previousValue &&
|
|
42
|
+
previousValue === 'hidden' &&
|
|
43
|
+
variant !== 'actions') {
|
|
44
|
+
classes[`${size}:flex`] = true;
|
|
45
|
+
}
|
|
46
|
+
if (currentValue === 'hidden' && variant !== 'actions') {
|
|
47
|
+
classes[`${size}:hidden`] = true;
|
|
48
|
+
previousSize = size;
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
if (currentValue === 12 || currentValue === 'full') {
|
|
52
|
+
classes[`${size}:w-full`] = true;
|
|
53
|
+
}
|
|
54
|
+
classes[`${size}:w-${currentValue}/12`] = true;
|
|
55
|
+
previousSize = size;
|
|
56
|
+
}
|
|
57
|
+
return classes;
|
|
58
|
+
}
|
|
59
|
+
if (sizes === 12 || sizes === 'full') {
|
|
60
|
+
return {
|
|
61
|
+
'w-full': true,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
// is a number.
|
|
65
|
+
return {
|
|
66
|
+
[`w-${sizes}/12`]: true,
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
export const getTableCellIsLastValues = ({ isLast, parsedSizes, } /* Table Definition */, variant, hasActions) => {
|
|
70
|
+
const values = {};
|
|
71
|
+
for (let size of Object.keys(isLast)) {
|
|
72
|
+
let prefix = '';
|
|
73
|
+
if (size !== 'default') {
|
|
74
|
+
prefix = `${size}:`;
|
|
75
|
+
}
|
|
76
|
+
values[`${prefix}pr-4`] = !isLast[size];
|
|
77
|
+
values[`${prefix}pr-0`] = isLast[size];
|
|
78
|
+
values[`${prefix}group-hover:hidden`] =
|
|
79
|
+
(isLast[size] ||
|
|
80
|
+
parsedSizes[size] === 'hidden') &&
|
|
81
|
+
hasActions &&
|
|
82
|
+
variant === 'default';
|
|
83
|
+
values[`${prefix}group-hover:flex`] =
|
|
84
|
+
(!isLast[size] &&
|
|
85
|
+
parsedSizes[size] !== 'hidden' &&
|
|
86
|
+
variant === 'default') ||
|
|
87
|
+
variant === 'actions';
|
|
88
|
+
values[`${prefix}flex`] =
|
|
89
|
+
parsedSizes[size] !== 'hidden' &&
|
|
90
|
+
variant !== 'actions';
|
|
91
|
+
}
|
|
92
|
+
return values;
|
|
93
|
+
};
|
|
94
|
+
//# sourceMappingURL=table-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table-helpers.js","sourceRoot":"","sources":["../../src/utils/table-helpers.ts"],"names":[],"mappings":"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","sourcesContent":["import { TableColumn } from '../components';\nimport {\n\tisTableColumnSizesKey,\n\tTableColumnSizes,\n\tTableColumnSizesKey,\n} from '../types';\n\nexport const getTableCellColumnClasses = (\n\tdefinition: any | TableColumn,\n\tvariant: 'default' | 'header' | 'loading' | 'actions',\n\thasActions: boolean\n) => {\n\tconst sizes = definition ? getTableCellSizes(definition, variant) : {};\n\tconst isLastValues = definition\n\t\t? getTableCellIsLastValues(definition, variant, hasActions)\n\t\t: {};\n\n\treturn {\n\t\t'justify-start': !definition?.align || definition?.align === 'start',\n\t\t'justify-center': definition?.align === 'center',\n\t\t'justify-end': definition?.align === 'end',\n\t\t'font-semibold': variant !== 'header' && definition?.type === 'th',\n\t\t'text-storm-dark': variant !== 'header' && definition?.type === 'th',\n\t\t'group-hover:flex': variant === 'actions' && hasActions,\n\t\thidden: variant === 'actions' && hasActions,\n\t\t...sizes,\n\t\t...isLastValues,\n\t};\n};\n\nexport const getTableCellSizes = (\n\t{\n\t\tsizes,\n\t}: {\n\t\tsizes: 'auto' | 'hidden' | 'full' | number | TableColumnSizes;\n\t} /* Table Definition */,\n\tvariant: 'default' | 'header' | 'loading' | 'actions'\n) => {\n\tif (sizes === 'auto' || !sizes) {\n\t\treturn {\n\t\t\t'w-auto': true,\n\t\t};\n\t}\n\n\tif (sizes === 'hidden') {\n\t\treturn {\n\t\t\thidden: true,\n\t\t};\n\t}\n\n\tif (typeof sizes === 'object') {\n\t\tsizes = sizes as TableColumnSizes;\n\t\tconst classes: any = {};\n\t\tlet previousSize: TableColumnSizesKey | undefined;\n\n\t\tfor (let size in sizes) {\n\t\t\tif (!isTableColumnSizesKey(sizes, size)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (size === 'default') {\n\t\t\t\tif (sizes.default === 'hidden') {\n\t\t\t\t\tclasses['hidden'] = true;\n\t\t\t\t\tpreviousSize = size;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tclasses[`w-${sizes.default}/12`] = true;\n\t\t\t\tpreviousSize = size;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst currentValue = sizes[size];\n\t\t\tconst previousValue = previousSize ? sizes[previousSize] : null;\n\t\t\tif (\n\t\t\t\tcurrentValue !== 'hidden' &&\n\t\t\t\tpreviousValue &&\n\t\t\t\tpreviousValue === 'hidden' &&\n\t\t\t\tvariant !== 'actions'\n\t\t\t) {\n\t\t\t\tclasses[`${size}:flex`] = true;\n\t\t\t}\n\n\t\t\tif (currentValue === 'hidden' && variant !== 'actions') {\n\t\t\t\tclasses[`${size}:hidden`] = true;\n\t\t\t\tpreviousSize = size;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (currentValue === 12 || currentValue === 'full') {\n\t\t\t\tclasses[`${size}:w-full`] = true;\n\t\t\t}\n\n\t\t\tclasses[`${size}:w-${currentValue}/12`] = true;\n\t\t\tpreviousSize = size;\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tif (sizes === 12 || sizes === 'full') {\n\t\treturn {\n\t\t\t'w-full': true,\n\t\t};\n\t}\n\n\t// is a number.\n\treturn {\n\t\t[`w-${sizes}/12`]: true,\n\t};\n};\n\nexport const getTableCellIsLastValues = (\n\t{\n\t\tisLast,\n\t\tparsedSizes,\n\t}: {\n\t\tisLast: { [key: string]: boolean };\n\t\tparsedSizes: TableColumnSizes;\n\t} /* Table Definition */,\n\tvariant: 'default' | 'header' | 'loading' | 'actions',\n\thasActions: boolean\n) => {\n\tconst values: { [key: string]: boolean } = {};\n\n\tfor (let size of Object.keys(isLast)) {\n\t\tlet prefix = '';\n\t\tif (size !== 'default') {\n\t\t\tprefix = `${size}:`;\n\t\t}\n\n\t\tvalues[`${prefix}pr-4`] = !isLast[size];\n\t\tvalues[`${prefix}pr-0`] = isLast[size];\n\n\t\tvalues[`${prefix}group-hover:hidden`] =\n\t\t\t(isLast[size] ||\n\t\t\t\tparsedSizes[size as keyof TableColumnSizes] === 'hidden') &&\n\t\t\thasActions &&\n\t\t\tvariant === 'default';\n\n\t\tvalues[`${prefix}group-hover:flex`] =\n\t\t\t(!isLast[size] &&\n\t\t\t\tparsedSizes[size as keyof TableColumnSizes] !== 'hidden' &&\n\t\t\t\tvariant === 'default') ||\n\t\t\tvariant === 'actions';\n\n\t\tvalues[`${prefix}flex`] =\n\t\t\tparsedSizes[size as keyof TableColumnSizes] !== 'hidden' &&\n\t\t\tvariant !== 'actions';\n\t}\n\n\treturn values;\n};\n"]}
|
package/dist/components/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export { getAssetPath, setAssetPath, setNonce, setPlatformOptions } from '@stencil/core/internal/client';
|
|
2
|
-
export { i as isTableColumnSizesKey, o as objectGetByPath } from './object-get-by-path.js';
|
|
2
|
+
export { g as getTableCellColumnClasses, b as getTableCellIsLastValues, a as getTableCellSizes, i as isTableColumnSizesKey, o as objectGetByPath } from './object-get-by-path.js';
|
|
3
|
+
import { s as screens } from './screens.js';
|
|
4
|
+
export { g as getScreenSize, b as getScreenSizeInPixels, a as getScreenSizeInRem, d as isBetweenScreens, i as isBiggerThanScreen, j as isDesktop, f as isMobile, c as isSmallerThanScreen, h as isTablet, e as isTouchDevice, t as tableColumSizesOptions } from './screens.js';
|
|
3
5
|
export { c as childOf } from './child-of.js';
|
|
4
6
|
export { f as formatTranslation, g as getLocaleComponentStrings } from './localization.js';
|
|
5
|
-
import { s as screens } from './screens.js';
|
|
6
|
-
export { g as getScreenSize, b as getScreenSizeInPixels, a as getScreenSizeInRem, d as isBetweenScreens, i as isBiggerThanScreen, j as isDesktop, f as isMobile, c as isSmallerThanScreen, h as isTablet, e as isTouchDevice } from './screens.js';
|
|
7
7
|
|
|
8
8
|
const camelToSnakeCase = (str) => str.replace(/[A-Z]/g, (letter) => `_${letter.toLowerCase()}`);
|
|
9
9
|
const snakeToCamelCase = (str) => str
|
|
@@ -2,6 +2,99 @@ function isTableColumnSizesKey(x, k) {
|
|
|
2
2
|
return k in x;
|
|
3
3
|
}
|
|
4
4
|
|
|
5
|
+
const getTableCellColumnClasses = (definition, variant, hasActions) => {
|
|
6
|
+
const sizes = definition ? getTableCellSizes(definition, variant) : {};
|
|
7
|
+
const isLastValues = definition
|
|
8
|
+
? getTableCellIsLastValues(definition, variant, hasActions)
|
|
9
|
+
: {};
|
|
10
|
+
return Object.assign(Object.assign({ 'justify-start': !(definition === null || definition === void 0 ? void 0 : definition.align) || (definition === null || definition === void 0 ? void 0 : definition.align) === 'start', 'justify-center': (definition === null || definition === void 0 ? void 0 : definition.align) === 'center', 'justify-end': (definition === null || definition === void 0 ? void 0 : definition.align) === 'end', 'font-semibold': variant !== 'header' && (definition === null || definition === void 0 ? void 0 : definition.type) === 'th', 'text-storm-dark': variant !== 'header' && (definition === null || definition === void 0 ? void 0 : definition.type) === 'th', 'group-hover:flex': variant === 'actions' && hasActions, hidden: variant === 'actions' && hasActions }, sizes), isLastValues);
|
|
11
|
+
};
|
|
12
|
+
const getTableCellSizes = ({ sizes, } /* Table Definition */, variant) => {
|
|
13
|
+
if (sizes === 'auto' || !sizes) {
|
|
14
|
+
return {
|
|
15
|
+
'w-auto': true,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
if (sizes === 'hidden') {
|
|
19
|
+
return {
|
|
20
|
+
hidden: true,
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
if (typeof sizes === 'object') {
|
|
24
|
+
sizes = sizes;
|
|
25
|
+
const classes = {};
|
|
26
|
+
let previousSize;
|
|
27
|
+
for (let size in sizes) {
|
|
28
|
+
if (!isTableColumnSizesKey(sizes, size)) {
|
|
29
|
+
continue;
|
|
30
|
+
}
|
|
31
|
+
if (size === 'default') {
|
|
32
|
+
if (sizes.default === 'hidden') {
|
|
33
|
+
classes['hidden'] = true;
|
|
34
|
+
previousSize = size;
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
classes[`w-${sizes.default}/12`] = true;
|
|
38
|
+
previousSize = size;
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
const currentValue = sizes[size];
|
|
42
|
+
const previousValue = previousSize ? sizes[previousSize] : null;
|
|
43
|
+
if (currentValue !== 'hidden' &&
|
|
44
|
+
previousValue &&
|
|
45
|
+
previousValue === 'hidden' &&
|
|
46
|
+
variant !== 'actions') {
|
|
47
|
+
classes[`${size}:flex`] = true;
|
|
48
|
+
}
|
|
49
|
+
if (currentValue === 'hidden' && variant !== 'actions') {
|
|
50
|
+
classes[`${size}:hidden`] = true;
|
|
51
|
+
previousSize = size;
|
|
52
|
+
continue;
|
|
53
|
+
}
|
|
54
|
+
if (currentValue === 12 || currentValue === 'full') {
|
|
55
|
+
classes[`${size}:w-full`] = true;
|
|
56
|
+
}
|
|
57
|
+
classes[`${size}:w-${currentValue}/12`] = true;
|
|
58
|
+
previousSize = size;
|
|
59
|
+
}
|
|
60
|
+
return classes;
|
|
61
|
+
}
|
|
62
|
+
if (sizes === 12 || sizes === 'full') {
|
|
63
|
+
return {
|
|
64
|
+
'w-full': true,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
// is a number.
|
|
68
|
+
return {
|
|
69
|
+
[`w-${sizes}/12`]: true,
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
const getTableCellIsLastValues = ({ isLast, parsedSizes, } /* Table Definition */, variant, hasActions) => {
|
|
73
|
+
const values = {};
|
|
74
|
+
for (let size of Object.keys(isLast)) {
|
|
75
|
+
let prefix = '';
|
|
76
|
+
if (size !== 'default') {
|
|
77
|
+
prefix = `${size}:`;
|
|
78
|
+
}
|
|
79
|
+
values[`${prefix}pr-4`] = !isLast[size];
|
|
80
|
+
values[`${prefix}pr-0`] = isLast[size];
|
|
81
|
+
values[`${prefix}group-hover:hidden`] =
|
|
82
|
+
(isLast[size] ||
|
|
83
|
+
parsedSizes[size] === 'hidden') &&
|
|
84
|
+
hasActions &&
|
|
85
|
+
variant === 'default';
|
|
86
|
+
values[`${prefix}group-hover:flex`] =
|
|
87
|
+
(!isLast[size] &&
|
|
88
|
+
parsedSizes[size] !== 'hidden' &&
|
|
89
|
+
variant === 'default') ||
|
|
90
|
+
variant === 'actions';
|
|
91
|
+
values[`${prefix}flex`] =
|
|
92
|
+
parsedSizes[size] !== 'hidden' &&
|
|
93
|
+
variant !== 'actions';
|
|
94
|
+
}
|
|
95
|
+
return values;
|
|
96
|
+
};
|
|
97
|
+
|
|
5
98
|
const objectGetByPath = (obj, path, defaultValue = undefined) => {
|
|
6
99
|
const travel = (regexp) => String.prototype.split
|
|
7
100
|
.call(path, regexp)
|
|
@@ -11,6 +104,6 @@ const objectGetByPath = (obj, path, defaultValue = undefined) => {
|
|
|
11
104
|
return result === undefined || result === obj ? defaultValue : result;
|
|
12
105
|
};
|
|
13
106
|
|
|
14
|
-
export { isTableColumnSizesKey as i, objectGetByPath as o };
|
|
107
|
+
export { getTableCellSizes as a, getTableCellIsLastValues as b, getTableCellColumnClasses as g, isTableColumnSizesKey as i, objectGetByPath as o };
|
|
15
108
|
|
|
16
109
|
//# sourceMappingURL=object-get-by-path.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"object-get-by-path.js","mappings":"
|
|
1
|
+
{"file":"object-get-by-path.js","mappings":"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","names":[],"sources":["src/types/table.ts","src/utils/table-helpers.ts","src/utils/object-get-by-path.ts"],"sourcesContent":["export type QuickFilterTextFunction = () => string;\n\nexport interface QuickFilter {\n identifier: string;\n text: string | QuickFilterTextFunction;\n count?: number;\n default?: boolean;\n}\n\nexport interface RowClickEvent {\n item: any;\n ctrlDown: boolean;\n}\n\nexport interface TableDefinitionData {\n value: any;\n item: any;\n index: number;\n rowIndex: number;\n}\n\nexport type TableDefinitionTemplateFunc = (data: TableDefinitionData) => any;\n\nexport interface TableColumnSizes {\n default: number | 'hidden' | 'full';\n tablet?: number | 'hidden' | 'full';\n 'desktop-xs'?: number | 'hidden' | 'full';\n 'desktop-sm'?: number | 'hidden' | 'full';\n desktop?: number | 'hidden' | 'full';\n 'desktop-lg'?: number | 'hidden' | 'full';\n 'desktop-xl'?: number | 'hidden' | 'full';\n}\n\nexport interface TableColumnIsLast {\n default: boolean;\n tablet?: boolean;\n 'desktop-xs'?: boolean;\n 'desktop-sm'?: boolean;\n desktop?: boolean;\n 'desktop-lg'?: boolean;\n 'desktop-xl'?: boolean;\n}\n\nexport type TableColumnSizesKey =\n | 'default'\n | 'tablet'\n | 'desktop-xs'\n | 'desktop-sm'\n | 'desktop'\n | 'desktop-lg'\n | 'desktop-xl';\n\nexport function isTableColumnSizesKey(\n x: TableColumnSizes,\n k: PropertyKey\n): k is keyof TableColumnSizes {\n return k in x;\n}\n","import { TableColumn } from '../components';\nimport {\n\tisTableColumnSizesKey,\n\tTableColumnSizes,\n\tTableColumnSizesKey,\n} from '../types';\n\nexport const getTableCellColumnClasses = (\n\tdefinition: any | TableColumn,\n\tvariant: 'default' | 'header' | 'loading' | 'actions',\n\thasActions: boolean\n) => {\n\tconst sizes = definition ? getTableCellSizes(definition, variant) : {};\n\tconst isLastValues = definition\n\t\t? getTableCellIsLastValues(definition, variant, hasActions)\n\t\t: {};\n\n\treturn {\n\t\t'justify-start': !definition?.align || definition?.align === 'start',\n\t\t'justify-center': definition?.align === 'center',\n\t\t'justify-end': definition?.align === 'end',\n\t\t'font-semibold': variant !== 'header' && definition?.type === 'th',\n\t\t'text-storm-dark': variant !== 'header' && definition?.type === 'th',\n\t\t'group-hover:flex': variant === 'actions' && hasActions,\n\t\thidden: variant === 'actions' && hasActions,\n\t\t...sizes,\n\t\t...isLastValues,\n\t};\n};\n\nexport const getTableCellSizes = (\n\t{\n\t\tsizes,\n\t}: {\n\t\tsizes: 'auto' | 'hidden' | 'full' | number | TableColumnSizes;\n\t} /* Table Definition */,\n\tvariant: 'default' | 'header' | 'loading' | 'actions'\n) => {\n\tif (sizes === 'auto' || !sizes) {\n\t\treturn {\n\t\t\t'w-auto': true,\n\t\t};\n\t}\n\n\tif (sizes === 'hidden') {\n\t\treturn {\n\t\t\thidden: true,\n\t\t};\n\t}\n\n\tif (typeof sizes === 'object') {\n\t\tsizes = sizes as TableColumnSizes;\n\t\tconst classes: any = {};\n\t\tlet previousSize: TableColumnSizesKey | undefined;\n\n\t\tfor (let size in sizes) {\n\t\t\tif (!isTableColumnSizesKey(sizes, size)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (size === 'default') {\n\t\t\t\tif (sizes.default === 'hidden') {\n\t\t\t\t\tclasses['hidden'] = true;\n\t\t\t\t\tpreviousSize = size;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tclasses[`w-${sizes.default}/12`] = true;\n\t\t\t\tpreviousSize = size;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst currentValue = sizes[size];\n\t\t\tconst previousValue = previousSize ? sizes[previousSize] : null;\n\t\t\tif (\n\t\t\t\tcurrentValue !== 'hidden' &&\n\t\t\t\tpreviousValue &&\n\t\t\t\tpreviousValue === 'hidden' &&\n\t\t\t\tvariant !== 'actions'\n\t\t\t) {\n\t\t\t\tclasses[`${size}:flex`] = true;\n\t\t\t}\n\n\t\t\tif (currentValue === 'hidden' && variant !== 'actions') {\n\t\t\t\tclasses[`${size}:hidden`] = true;\n\t\t\t\tpreviousSize = size;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (currentValue === 12 || currentValue === 'full') {\n\t\t\t\tclasses[`${size}:w-full`] = true;\n\t\t\t}\n\n\t\t\tclasses[`${size}:w-${currentValue}/12`] = true;\n\t\t\tpreviousSize = size;\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tif (sizes === 12 || sizes === 'full') {\n\t\treturn {\n\t\t\t'w-full': true,\n\t\t};\n\t}\n\n\t// is a number.\n\treturn {\n\t\t[`w-${sizes}/12`]: true,\n\t};\n};\n\nexport const getTableCellIsLastValues = (\n\t{\n\t\tisLast,\n\t\tparsedSizes,\n\t}: {\n\t\tisLast: { [key: string]: boolean };\n\t\tparsedSizes: TableColumnSizes;\n\t} /* Table Definition */,\n\tvariant: 'default' | 'header' | 'loading' | 'actions',\n\thasActions: boolean\n) => {\n\tconst values: { [key: string]: boolean } = {};\n\n\tfor (let size of Object.keys(isLast)) {\n\t\tlet prefix = '';\n\t\tif (size !== 'default') {\n\t\t\tprefix = `${size}:`;\n\t\t}\n\n\t\tvalues[`${prefix}pr-4`] = !isLast[size];\n\t\tvalues[`${prefix}pr-0`] = isLast[size];\n\n\t\tvalues[`${prefix}group-hover:hidden`] =\n\t\t\t(isLast[size] ||\n\t\t\t\tparsedSizes[size as keyof TableColumnSizes] === 'hidden') &&\n\t\t\thasActions &&\n\t\t\tvariant === 'default';\n\n\t\tvalues[`${prefix}group-hover:flex`] =\n\t\t\t(!isLast[size] &&\n\t\t\t\tparsedSizes[size as keyof TableColumnSizes] !== 'hidden' &&\n\t\t\t\tvariant === 'default') ||\n\t\t\tvariant === 'actions';\n\n\t\tvalues[`${prefix}flex`] =\n\t\t\tparsedSizes[size as keyof TableColumnSizes] !== 'hidden' &&\n\t\t\tvariant !== 'actions';\n\t}\n\n\treturn values;\n};\n","export const objectGetByPath = (\n obj: any,\n path: string,\n defaultValue = undefined\n) => {\n const travel = (regexp) =>\n String.prototype.split\n .call(path, regexp)\n .filter(Boolean)\n .reduce(\n (res, key) =>\n res !== null && res !== undefined ? res[key] : res,\n obj\n );\n const result = travel(/[,[\\]]+?/) || travel(/[,[\\].]+?/);\n return result === undefined || result === obj ? defaultValue : result;\n};\n"],"version":3}
|
|
@@ -11,7 +11,8 @@ const TableColumn = /*@__PURE__*/ proxyCustomElement(class TableColumn extends H
|
|
|
11
11
|
this.useSlot = false;
|
|
12
12
|
this.hasCheckbox = false;
|
|
13
13
|
this.align = 'start';
|
|
14
|
-
this.isLast =
|
|
14
|
+
this.isLast = {};
|
|
15
|
+
this.parsedSizes = undefined;
|
|
15
16
|
this.sizes = 'auto';
|
|
16
17
|
}
|
|
17
18
|
componentDidUpdate() {
|
|
@@ -27,7 +28,8 @@ const TableColumn = /*@__PURE__*/ proxyCustomElement(class TableColumn extends H
|
|
|
27
28
|
"useSlot": [1540, "use-slot"],
|
|
28
29
|
"hasCheckbox": [1540, "has-checkbox"],
|
|
29
30
|
"align": [1537],
|
|
30
|
-
"isLast": [
|
|
31
|
+
"isLast": [1040],
|
|
32
|
+
"parsedSizes": [1040],
|
|
31
33
|
"sizes": [1032]
|
|
32
34
|
}]);
|
|
33
35
|
function defineCustomElement$1() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"p-table-column.js","mappings":";;MAMa,WAAW;;;;;;gBASqC,IAAI;;mBAUL,KAAK;uBAKD,KAAK;iBAMnE,OAAO;
|
|
1
|
+
{"file":"p-table-column.js","mappings":";;MAMa,WAAW;;;;;;gBASqC,IAAI;;mBAUL,KAAK;uBAKD,KAAK;iBAMnE,OAAO;kBAMP,EAAE;;iBAiBmB,MAAM;;EAQ5B,kBAAkB;IACjB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;GACvC;EAED,MAAM;IACL,OAAO;GACP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["src/components/helpers/table-column/table-column.component.tsx"],"sourcesContent":["import { Component, Event, EventEmitter, Prop } from '@stencil/core';\nimport { TableColumnSizes } from '../../../types/table';\n\n@Component({\n\ttag: 'p-table-column',\n})\nexport class TableColumn {\n\t/**\n\t * The path of the value of the item you want to display\n\t */\n\t@Prop({ reflect: true, mutable: true }) path: string;\n\n\t/**\n\t * The type of the column\n\t */\n\t@Prop({ reflect: true, mutable: true }) type: 'td' | 'th' = 'td';\n\n\t/**\n\t * The name of the column\n\t */\n\t@Prop({ reflect: true, mutable: true }) name: string;\n\n\t/**\n\t * Wether the column should use the slot\n\t */\n\t@Prop({ reflect: true, mutable: true }) useSlot: boolean = false;\n\n\t/**\n\t * Wether the column should have a checkbox\n\t */\n\t@Prop({ reflect: true, mutable: true }) hasCheckbox: boolean = false;\n\n\t/**\n\t * The alignment of the column\n\t */\n\t@Prop({ reflect: true, mutable: true }) align: 'start' | 'center' | 'end' =\n\t\t'start';\n\n\t/**\n\t * Wether the column is the last in the row\n\t */\n\t@Prop({ reflect: true, mutable: true }) isLast: { [key: string]: boolean } =\n\t\t{};\n\n\t/**\n\t * Parsed sizes based on the complete set of columns\n\t */\n\t@Prop({ reflect: true, mutable: true }) parsedSizes:\n\t\t| TableColumnSizes\n\t\t| undefined;\n\n\t/**\n\t * The sizes of the column\n\t */\n\t@Prop({ mutable: true }) sizes:\n\t\t| 'auto'\n\t\t| 'hidden'\n\t\t| 'full'\n\t\t| number\n\t\t| TableColumnSizes = 'auto';\n\n\t/**\n\t * Event to let the table know it has to re render\n\t */\n\t@Event({ bubbles: true, composed: true })\n\ttableDefinitionChanged: EventEmitter<boolean>;\n\n\tcomponentDidUpdate() {\n\t\tthis.tableDefinitionChanged.emit(true);\n\t}\n\n\trender() {\n\t\treturn;\n\t}\n}\n"],"version":3}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
|
|
2
|
+
import { f as isMobile, t as tableColumSizesOptions } from './screens.js';
|
|
2
3
|
import { f as formatTranslation, g as getLocaleComponentStrings } from './localization.js';
|
|
3
|
-
import { f as isMobile } from './screens.js';
|
|
4
4
|
import { a as defaultSize, b as defaultSizeOptions, d as defineCustomElement$c } from './page-size-select.component.js';
|
|
5
5
|
import { d as defineCustomElement$q } from './button.component.js';
|
|
6
6
|
import { d as defineCustomElement$p } from './divider.component.js';
|
|
@@ -118,7 +118,7 @@ const Table = /*@__PURE__*/ proxyCustomElement(class Table extends HTMLElement {
|
|
|
118
118
|
}
|
|
119
119
|
render() {
|
|
120
120
|
var _a, _b, _c, _d, _e, _f, _g;
|
|
121
|
-
return (h(Host, { class:
|
|
121
|
+
return (h(Host, { class: 'p-table' }, h("p-table-container", { shadow: this.shadow }, this.enableHeader && (h("p-table-header", {
|
|
122
122
|
// quick filters
|
|
123
123
|
quickFilters: this.quickFilters, activeQuickFilterIdentifier: this.activeQuickFilterIdentifier, onQuickFilter: ({ detail }) => this.quickFilter.emit(detail),
|
|
124
124
|
// search
|
|
@@ -129,7 +129,7 @@ const Table = /*@__PURE__*/ proxyCustomElement(class Table extends HTMLElement {
|
|
|
129
129
|
enableAction: this.enableAction, actionIcon: this.actionButtonIcon, actionText: this.actionButtonText, actionLoading: this.actionButtonLoading, canUseAction: this.actionButtonEnabled, actionButtonTemplate: this.actionButtonTemplate, onAction: () => this.action.emit(), itemsSelectedAmount: (_a = this.selectedRows) === null || _a === void 0 ? void 0 : _a.length,
|
|
130
130
|
//loading
|
|
131
131
|
loading: this.headerLoading
|
|
132
|
-
}, this._hasCustomFilterSlot && (h("slot", { name:
|
|
132
|
+
}, this._hasCustomFilterSlot && (h("slot", { name: 'custom-filter', slot: 'custom-filter' })))), this._getHeader(), h("div", { class: 'flex flex-1 flex-col' }, this._getRows()), this.enableFooter && (h("p-table-footer", {
|
|
133
133
|
// overall
|
|
134
134
|
hideOnSinglePage: this.hideOnSinglePage,
|
|
135
135
|
// page size select
|
|
@@ -140,17 +140,13 @@ const Table = /*@__PURE__*/ proxyCustomElement(class Table extends HTMLElement {
|
|
|
140
140
|
enableExport: this.enableExport, onExport: () => this.export.emit(),
|
|
141
141
|
//loading
|
|
142
142
|
loading: this.footerLoading
|
|
143
|
-
})), this.enableFloatingMenu && this._enableRowSelection ? (h("p-floating-menu-container", { usedInTable: true, class: `${((_b = this.selectedRows) === null || _b === void 0 ? void 0 : _b.length) ? '' : 'inactive'} ${this._floatingMenuShown ? 'shown' : ''}` }, h("p-floating-menu-item", { hover: false, slot:
|
|
144
|
-
|
|
145
|
-
: '' }, this.floatingMenuAmountSelectedTemplate((_d = this.selectedRows) === null || _d === void 0 ? void 0 : _d.length)), h("p-divider", { class: `mx-0 text-storm ${((_e = this._rowActionsFloating) === null || _e === void 0 ? void 0 : _e.length)
|
|
146
|
-
? 'hidden tablet:flex'
|
|
147
|
-
: ''}`, variant: "vertical", slot: "floating-menu-item" }), ((_f = this._rowActionsFloating) === null || _f === void 0 ? void 0 : _f.length) &&
|
|
148
|
-
this._rowActionsFloating.map((a) => (h("p-floating-menu-item", { slot: "floating-menu-item", disabled: a.disabled, onClick: () => !a.disabled &&
|
|
143
|
+
})), this.enableFloatingMenu && this._enableRowSelection ? (h("p-floating-menu-container", { usedInTable: true, class: `${((_b = this.selectedRows) === null || _b === void 0 ? void 0 : _b.length) ? '' : 'inactive'} ${this._floatingMenuShown ? 'shown' : ''}` }, h("p-floating-menu-item", { hover: false, slot: 'floating-menu-item', class: ((_c = this._rowActionsFloating) === null || _c === void 0 ? void 0 : _c.length) ? 'hidden tablet:flex' : '' }, this.floatingMenuAmountSelectedTemplate((_d = this.selectedRows) === null || _d === void 0 ? void 0 : _d.length)), h("p-divider", { class: `mx-0 text-storm ${((_e = this._rowActionsFloating) === null || _e === void 0 ? void 0 : _e.length) ? 'hidden tablet:flex' : ''}`, variant: 'vertical', slot: 'floating-menu-item' }), ((_f = this._rowActionsFloating) === null || _f === void 0 ? void 0 : _f.length) &&
|
|
144
|
+
this._rowActionsFloating.map(a => (h("p-floating-menu-item", { slot: 'floating-menu-item', disabled: a.disabled, onClick: () => !a.disabled &&
|
|
149
145
|
!a.loading &&
|
|
150
146
|
!!a.action &&
|
|
151
147
|
a.type === 'single'
|
|
152
148
|
? a.action(this.selectedRows[0], false)
|
|
153
|
-
: a.action(this.selectedRows, true) }, a.label, ' ', a.loading ? (h("p-loader", null)) : (h("p-icon", { variant: a.icon, rotate: a.iconRotate, flip: a.iconFlip }))))), ((_g = this._rowActionsFloating) === null || _g === void 0 ? void 0 : _g.length) && (h("p-divider", { class:
|
|
149
|
+
: a.action(this.selectedRows, true) }, a.label, ' ', a.loading ? (h("p-loader", null)) : (h("p-icon", { variant: a.icon, rotate: a.iconRotate, flip: a.iconFlip }))))), ((_g = this._rowActionsFloating) === null || _g === void 0 ? void 0 : _g.length) && (h("p-divider", { class: 'mx-0 text-storm', variant: 'vertical', slot: 'floating-menu-item' })), h("p-floating-menu-item", { slot: 'floating-menu-item', onClick: () => this._selectAllChange(null, false) }, h("p-icon", { variant: 'negative' })))) : (''))));
|
|
154
150
|
}
|
|
155
151
|
async _setLocales() {
|
|
156
152
|
this._locales = await getLocaleComponentStrings(this._el);
|
|
@@ -198,10 +194,12 @@ const Table = /*@__PURE__*/ proxyCustomElement(class Table extends HTMLElement {
|
|
|
198
194
|
const mobile = isMobile();
|
|
199
195
|
// we hack this to any[] to make it work..
|
|
200
196
|
const actions = Array.from(this._el.querySelectorAll(':scope > p-table-row-action'));
|
|
201
|
-
this._rowActionsRow = actions.filter(
|
|
197
|
+
this._rowActionsRow = actions.filter(a => a.type === 'both' || a.type === 'single');
|
|
202
198
|
this._rowActionsFloatingAll = actions
|
|
203
|
-
.filter(
|
|
204
|
-
|
|
199
|
+
.filter(a => (this.enableRowSelection &&
|
|
200
|
+
(a.type === 'both' || a.type === 'multi')) ||
|
|
201
|
+
(mobile && a.type === 'single'))
|
|
202
|
+
.map(a => {
|
|
205
203
|
var _a;
|
|
206
204
|
if (a.type === 'single') {
|
|
207
205
|
a.disabled = ((_a = this.selectedRows) === null || _a === void 0 ? void 0 : _a.length) > 1;
|
|
@@ -223,16 +221,19 @@ const Table = /*@__PURE__*/ proxyCustomElement(class Table extends HTMLElement {
|
|
|
223
221
|
enableRowSelection = true;
|
|
224
222
|
}
|
|
225
223
|
this._enableRowSelection = enableRowSelection;
|
|
224
|
+
if (this._floatingMenuShown) {
|
|
225
|
+
this._showFloatingMenu();
|
|
226
|
+
}
|
|
226
227
|
}, 200);
|
|
227
228
|
}
|
|
228
229
|
_generateColumns() {
|
|
229
230
|
const definitions = this._el.querySelectorAll('p-table-column');
|
|
230
|
-
|
|
231
|
-
definitionsArray
|
|
231
|
+
let definitionsArray = Array.from(definitions);
|
|
232
|
+
definitionsArray = this._parseDefinitions(definitionsArray);
|
|
232
233
|
this._columns = definitionsArray;
|
|
233
234
|
}
|
|
234
235
|
_getHeader() {
|
|
235
|
-
return (h("p-table-row", { variant:
|
|
236
|
+
return (h("p-table-row", { variant: 'header' }, this._columns.map((col, index) => (h("p-table-cell", { definition: col, value: col.name, variant: 'header', checkbox: index === 0 || col.hasCheckbox
|
|
236
237
|
? this._getCheckbox(null, this.loading ? 'loading' : 'header')
|
|
237
238
|
: null, index: index })))));
|
|
238
239
|
}
|
|
@@ -245,32 +246,26 @@ const Table = /*@__PURE__*/ proxyCustomElement(class Table extends HTMLElement {
|
|
|
245
246
|
if (!this._items.length) {
|
|
246
247
|
return this._getEmptyState();
|
|
247
248
|
}
|
|
248
|
-
return this._items.map((item, index) => (h("p-table-row", { enableHover: this._enableRowSelection || this.enableRowClick, onClick:
|
|
249
|
+
return this._items.map((item, index) => (h("p-table-row", { enableHover: this._enableRowSelection || this.enableRowClick, onClick: ev => this._rowClick(ev, index) }, this._getRowColumns(item, index))));
|
|
249
250
|
}
|
|
250
251
|
_getRowColumns(item, index) {
|
|
251
252
|
var _a;
|
|
252
253
|
const columns = this._columns.map((col, colIndex) => {
|
|
253
|
-
return (h("p-table-cell", { definition: col, item: item, checkbox: colIndex === 0 || col.hasCheckbox
|
|
254
|
-
? this._getCheckbox(index)
|
|
255
|
-
: null, index: colIndex, rowIndex: index, tableHasActions: !!this._rowActionsRow.length && !isMobile() }));
|
|
254
|
+
return (h("p-table-cell", { definition: col, item: item, checkbox: colIndex === 0 || col.hasCheckbox ? this._getCheckbox(index) : null, index: colIndex, rowIndex: index, tableHasActions: !!this._rowActionsRow.length && !isMobile() }));
|
|
256
255
|
});
|
|
257
256
|
if (((_a = this._rowActionsRow) === null || _a === void 0 ? void 0 : _a.length) && !isMobile()) {
|
|
258
|
-
const
|
|
259
|
-
const actions = this._rowActionsRow.filter(
|
|
257
|
+
const def = this._parseRowActionsRowDefinition();
|
|
258
|
+
const actions = this._rowActionsRow.filter(a => a.showFunction ? a.showFunction(item) : true);
|
|
260
259
|
if (!actions.length) {
|
|
261
260
|
return columns;
|
|
262
261
|
}
|
|
263
|
-
columns.push(h("p-table-cell", { variant:
|
|
264
|
-
var _a;
|
|
265
|
-
return typeof a.action === 'function' &&
|
|
266
|
-
((_a = a.action) === null || _a === void 0 ? void 0 : _a.call(a, item, false));
|
|
267
|
-
} })))))));
|
|
262
|
+
columns.push(h("p-table-cell", { variant: 'actions', definition: def, item: item, index: this._columns.length - 1, rowIndex: index, tableHasActions: !!this._rowActionsRow.length }, h("div", { slot: 'actions', class: 'ml-auto flex items-center gap-2' }, actions.map(a => (h("p-tooltip", { content: a.label }, h("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)); } })))))));
|
|
268
263
|
}
|
|
269
264
|
return columns;
|
|
270
265
|
}
|
|
271
266
|
_getLoadingColumns(index) {
|
|
272
267
|
return this._columns.map((col, colIndex) => {
|
|
273
|
-
return (h("p-table-cell", { definition: col, variant:
|
|
268
|
+
return (h("p-table-cell", { definition: col, variant: 'loading', checkbox: colIndex === 0 || col.hasCheckbox
|
|
274
269
|
? this._getCheckbox(index, 'loading')
|
|
275
270
|
: null, index: colIndex, rowIndex: index }));
|
|
276
271
|
});
|
|
@@ -282,14 +277,14 @@ const Table = /*@__PURE__*/ proxyCustomElement(class Table extends HTMLElement {
|
|
|
282
277
|
return;
|
|
283
278
|
}
|
|
284
279
|
if (variant === 'loading') {
|
|
285
|
-
return h("p-loader", { variant:
|
|
280
|
+
return (h("p-loader", { variant: 'ghost', class: 'h-6 w-6 rounded' }));
|
|
286
281
|
}
|
|
287
282
|
if (variant === 'header') {
|
|
288
|
-
return (h("input", { class: `p-input ${this._rowSelectionLimit !== undefined && 'opacity-0'}`, type:
|
|
283
|
+
return (h("input", { class: `p-input ${this._rowSelectionLimit !== undefined && 'opacity-0'}`, type: 'checkbox', onChange: ev => this._selectAllChange(ev), checked: this._selectionContainsAll(), indeterminate: this._selectionIndeterminate(), disabled: this._rowSelectionLimit !== undefined }));
|
|
289
284
|
}
|
|
290
285
|
const item = this._items[rowIndex];
|
|
291
286
|
const selectionContains = this._selectionContains(rowIndex);
|
|
292
|
-
return (h("input", { class:
|
|
287
|
+
return (h("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]) ||
|
|
293
288
|
(this._rowSelectionLimit !== undefined &&
|
|
294
289
|
!selectionContains &&
|
|
295
290
|
this.selectedRows.length === this._rowSelectionLimit), checked: selectionContains }));
|
|
@@ -297,10 +292,9 @@ const Table = /*@__PURE__*/ proxyCustomElement(class Table extends HTMLElement {
|
|
|
297
292
|
_getEmptyState() {
|
|
298
293
|
var _a;
|
|
299
294
|
if (((_a = this.query) === null || _a === void 0 ? void 0 : _a.length) || this.selectedFiltersAmount) {
|
|
300
|
-
return (h("div", { class:
|
|
295
|
+
return (h("div", { class: 'flex max-w-[20rem] flex-col items-center self-center py-24 text-center' }, h("p-illustration", { variant: 'empty-state-search', class: 'mb-6' }), h("p", { class: 'text-storm-default font-semibold' }, this.emptyStateFilteredHeader()), h("p", { class: 'mb-14 text-sm text-storm-medium' }, this.emptyStateFilteredContent())));
|
|
301
296
|
}
|
|
302
|
-
return (h("div", { class: `flex max-w-[20rem] flex-col items-center self-center py-24 text-center ${this.enableEmptyStateAction && 'cursor-pointer'}`, onClick: () => this.enableEmptyStateAction &&
|
|
303
|
-
this.emptyStateActionClick.emit(null) }, h("p-illustration", { variant: "empty-state-add", class: "mb-6" }), h("p", { class: "text-storm-default font-semibold" }, this.emptyStateHeader()), h("p", { class: "mb-6 text-sm text-storm-medium" }, this.emptyStateContent()), this.enableEmptyStateAction && (h("p-button", { variant: "secondary", icon: "plus", size: "small" }, this.emptyStateAction()))));
|
|
297
|
+
return (h("div", { class: `flex max-w-[20rem] flex-col items-center self-center py-24 text-center ${this.enableEmptyStateAction && 'cursor-pointer'}`, onClick: () => this.enableEmptyStateAction && this.emptyStateActionClick.emit(null) }, h("p-illustration", { variant: 'empty-state-add', class: 'mb-6' }), h("p", { class: 'text-storm-default font-semibold' }, this.emptyStateHeader()), h("p", { class: 'mb-6 text-sm text-storm-medium' }, this.emptyStateContent()), this.enableEmptyStateAction && (h("p-button", { variant: 'secondary', icon: 'plus', size: 'small' }, this.emptyStateAction()))));
|
|
304
298
|
}
|
|
305
299
|
_selectAllChange($event, forceValue) {
|
|
306
300
|
if (!this._enableRowSelection) {
|
|
@@ -322,8 +316,7 @@ const Table = /*@__PURE__*/ proxyCustomElement(class Table extends HTMLElement {
|
|
|
322
316
|
toAdd.push(row);
|
|
323
317
|
this.rowSelected.emit(row);
|
|
324
318
|
if (this._rowSelectionLimit !== undefined &&
|
|
325
|
-
this.selectedRows.length + toAdd.length ===
|
|
326
|
-
this._rowSelectionLimit) {
|
|
319
|
+
this.selectedRows.length + toAdd.length === this._rowSelectionLimit) {
|
|
327
320
|
break;
|
|
328
321
|
}
|
|
329
322
|
}
|
|
@@ -336,8 +329,7 @@ const Table = /*@__PURE__*/ proxyCustomElement(class Table extends HTMLElement {
|
|
|
336
329
|
}
|
|
337
330
|
for (let i = 0; i < this.selectedRows.length; i++) {
|
|
338
331
|
const value = this.selectedRows[i];
|
|
339
|
-
const row = this._items.find(
|
|
340
|
-
this._getSelectionValue(value, i));
|
|
332
|
+
const row = this._items.find(d => this._getSelectionValue(d, i) === this._getSelectionValue(value, i));
|
|
341
333
|
if (!row) {
|
|
342
334
|
continue;
|
|
343
335
|
}
|
|
@@ -389,7 +381,7 @@ const Table = /*@__PURE__*/ proxyCustomElement(class Table extends HTMLElement {
|
|
|
389
381
|
return this.selectionKey ? (row === null || row === void 0 ? void 0 : row[this.selectionKey]) || index : index;
|
|
390
382
|
}
|
|
391
383
|
_selectionContains(index, returnIndex = false) {
|
|
392
|
-
const returnValue = this.selectedRows.findIndex(
|
|
384
|
+
const returnValue = this.selectedRows.findIndex(item => item.index === index);
|
|
393
385
|
return !returnIndex ? returnValue >= 0 : returnValue;
|
|
394
386
|
}
|
|
395
387
|
_selectionContainsAll() {
|
|
@@ -485,14 +477,93 @@ const Table = /*@__PURE__*/ proxyCustomElement(class Table extends HTMLElement {
|
|
|
485
477
|
_showFloatingMenu() {
|
|
486
478
|
let actions = this._rowActionsFloatingAll;
|
|
487
479
|
if (this.rowSelectionLimit === 1 &&
|
|
488
|
-
actions.findIndex(
|
|
489
|
-
actions = actions.filter(
|
|
480
|
+
actions.findIndex(a => (a.type === 'single' || a.type === 'both') && a.showFunction) >= 0) {
|
|
481
|
+
actions = actions.filter(a => a.type === 'multi' ||
|
|
490
482
|
!a.showFunction ||
|
|
491
483
|
a.showFunction(this.selectedRows[0]));
|
|
492
484
|
}
|
|
493
485
|
this._rowActionsFloating = actions;
|
|
494
486
|
this._floatingMenuShown = true;
|
|
495
487
|
}
|
|
488
|
+
_parseDefinitions(definitionsArray) {
|
|
489
|
+
const definitions = definitionsArray.map(definition => {
|
|
490
|
+
definition = this._parseDefinitionSizes(definition);
|
|
491
|
+
definition.isLast = {};
|
|
492
|
+
return definition;
|
|
493
|
+
});
|
|
494
|
+
const matchedIsLast = tableColumSizesOptions.reduce((data, size) => {
|
|
495
|
+
data[size] = false;
|
|
496
|
+
return data;
|
|
497
|
+
}, {});
|
|
498
|
+
for (let i = definitions.length - 1; i >= 0; i--) {
|
|
499
|
+
const definition = definitions[i];
|
|
500
|
+
for (const size of tableColumSizesOptions) {
|
|
501
|
+
if (matchedIsLast[size]) {
|
|
502
|
+
definition.isLast[size] = false;
|
|
503
|
+
continue;
|
|
504
|
+
}
|
|
505
|
+
if (definition.parsedSizes[size] === 'hidden') {
|
|
506
|
+
definition.isLast[size] = false;
|
|
507
|
+
continue;
|
|
508
|
+
}
|
|
509
|
+
const isLastAtSizeFound = this._findLastDefinitionBySize(definitions, size);
|
|
510
|
+
if (isLastAtSizeFound) {
|
|
511
|
+
definition.isLast[size] = false;
|
|
512
|
+
continue;
|
|
513
|
+
}
|
|
514
|
+
definition.isLast[size] = true;
|
|
515
|
+
}
|
|
516
|
+
}
|
|
517
|
+
return definitions;
|
|
518
|
+
}
|
|
519
|
+
_findLastDefinitionBySize(definitions, size) {
|
|
520
|
+
return definitions
|
|
521
|
+
.slice()
|
|
522
|
+
.reverse()
|
|
523
|
+
.find(d => d.isLast[size] === true);
|
|
524
|
+
}
|
|
525
|
+
_parseDefinitionSizes(definition) {
|
|
526
|
+
var _a;
|
|
527
|
+
const definitionAny = definition;
|
|
528
|
+
let parsedSizes = { default: 'full' };
|
|
529
|
+
if (typeof definition.sizes === 'string' &&
|
|
530
|
+
!['auto', 'hidden', 'full'].includes(definition.sizes)) {
|
|
531
|
+
definition.sizes = JSON.parse(definition.sizes);
|
|
532
|
+
}
|
|
533
|
+
for (const [index, size] of tableColumSizesOptions.entries()) {
|
|
534
|
+
if (definitionAny.sizes === 'auto' ||
|
|
535
|
+
definitionAny.sizes === 'hidden' ||
|
|
536
|
+
definitionAny.sizes === 'full' ||
|
|
537
|
+
typeof definitionAny.sizes === 'number') {
|
|
538
|
+
parsedSizes[size] =
|
|
539
|
+
definitionAny.sizes === 'auto' ? 'full' : definitionAny.sizes;
|
|
540
|
+
continue;
|
|
541
|
+
}
|
|
542
|
+
parsedSizes[size] =
|
|
543
|
+
(_a = definitionAny.sizes[size]) !== null && _a !== void 0 ? _a : parsedSizes[tableColumSizesOptions[index - 1]];
|
|
544
|
+
}
|
|
545
|
+
definition.parsedSizes = parsedSizes;
|
|
546
|
+
return definition;
|
|
547
|
+
}
|
|
548
|
+
_parseRowActionsRowDefinition() {
|
|
549
|
+
const isLast = tableColumSizesOptions.reduce((data, size) => {
|
|
550
|
+
data[size] = true;
|
|
551
|
+
return data;
|
|
552
|
+
}, {});
|
|
553
|
+
const sizes = { default: 0 };
|
|
554
|
+
for (const size of tableColumSizesOptions) {
|
|
555
|
+
const lastColumn = this._findLastDefinitionBySize(this._columns, size);
|
|
556
|
+
sizes[size] = lastColumn.parsedSizes[size];
|
|
557
|
+
}
|
|
558
|
+
return {
|
|
559
|
+
isLast,
|
|
560
|
+
sizes,
|
|
561
|
+
parsedSizes: sizes,
|
|
562
|
+
align: 'end',
|
|
563
|
+
type: 'td',
|
|
564
|
+
path: null,
|
|
565
|
+
};
|
|
566
|
+
}
|
|
496
567
|
get _el() { return this; }
|
|
497
568
|
static get watchers() { return {
|
|
498
569
|
"items": ["_parseItems"],
|