@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.
Files changed (119) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/build/index.esm.js +1 -1
  3. package/dist/build/index.esm.js.map +1 -1
  4. package/dist/build/p-66e3624b.js +2 -0
  5. package/dist/build/p-66e3624b.js.map +1 -0
  6. package/dist/build/p-702e1097.entry.js +2 -0
  7. package/dist/build/p-702e1097.entry.js.map +1 -0
  8. package/dist/build/{p-329ebeb7.entry.js → p-9d114950.entry.js} +2 -2
  9. package/dist/build/p-9d114950.entry.js.map +1 -0
  10. package/dist/build/{p-4dc5647e.entry.js → p-d7f2d4d3.entry.js} +2 -2
  11. package/dist/build/{p-4dc5647e.entry.js.map → p-d7f2d4d3.entry.js.map} +1 -1
  12. package/dist/build/p-f8544f0c.js +2 -0
  13. package/dist/build/p-f8544f0c.js.map +1 -0
  14. package/dist/build/paperless.esm.js +1 -1
  15. package/dist/build/paperless.esm.js.map +1 -1
  16. package/dist/cjs/index.cjs.js +9 -5
  17. package/dist/cjs/index.cjs.js.map +1 -1
  18. package/dist/cjs/loader.cjs.js +1 -1
  19. package/dist/cjs/object-get-by-path-7e65c82d.js +115 -0
  20. package/dist/cjs/object-get-by-path-7e65c82d.js.map +1 -0
  21. package/dist/cjs/p-floating-menu-container_8.cjs.entry.js +5 -109
  22. package/dist/cjs/p-floating-menu-container_8.cjs.entry.js.map +1 -1
  23. package/dist/cjs/p-table-column.cjs.entry.js +2 -1
  24. package/dist/cjs/p-table-column.cjs.entry.js.map +1 -1
  25. package/dist/cjs/p-table.cjs.entry.js +112 -41
  26. package/dist/cjs/p-table.cjs.entry.js.map +1 -1
  27. package/dist/cjs/paperless.cjs.js +1 -1
  28. package/dist/cjs/{screens-84f01214.js → screens-eb3a3232.js} +12 -1
  29. package/dist/cjs/screens-eb3a3232.js.map +1 -0
  30. package/dist/collection/collection-manifest.json +1 -1
  31. package/dist/collection/components/helpers/table-column/table-column.component.js +27 -7
  32. package/dist/collection/components/helpers/table-column/table-column.component.js.map +1 -1
  33. package/dist/collection/components/molecules/table-cell/table-cell.component.css +1 -1
  34. package/dist/collection/components/molecules/table-cell/table-cell.component.js +49 -106
  35. package/dist/collection/components/molecules/table-cell/table-cell.component.js.map +1 -1
  36. package/dist/collection/components/organisms/table/table.component.js +112 -40
  37. package/dist/collection/components/organisms/table/table.component.js.map +1 -1
  38. package/dist/collection/types/constants.js +10 -0
  39. package/dist/collection/types/constants.js.map +1 -0
  40. package/dist/collection/types/index.js +1 -0
  41. package/dist/collection/types/index.js.map +1 -1
  42. package/dist/collection/types/table.js.map +1 -1
  43. package/dist/collection/types/tailwind.js.map +1 -1
  44. package/dist/collection/utils/index.js +1 -0
  45. package/dist/collection/utils/index.js.map +1 -1
  46. package/dist/collection/utils/table-helpers.js +94 -0
  47. package/dist/collection/utils/table-helpers.js.map +1 -0
  48. package/dist/components/index.js +3 -3
  49. package/dist/components/object-get-by-path.js +94 -1
  50. package/dist/components/object-get-by-path.js.map +1 -1
  51. package/dist/components/p-table-column.js +4 -2
  52. package/dist/components/p-table-column.js.map +1 -1
  53. package/dist/components/p-table.js +112 -41
  54. package/dist/components/p-table.js.map +1 -1
  55. package/dist/components/screens.js +11 -1
  56. package/dist/components/screens.js.map +1 -1
  57. package/dist/components/table-cell.component.js +5 -109
  58. package/dist/components/table-cell.component.js.map +1 -1
  59. package/dist/esm/index.js +3 -3
  60. package/dist/esm/loader.js +1 -1
  61. package/dist/esm/object-get-by-path-56508a0e.js +109 -0
  62. package/dist/esm/object-get-by-path-56508a0e.js.map +1 -0
  63. package/dist/esm/p-floating-menu-container_8.entry.js +5 -109
  64. package/dist/esm/p-floating-menu-container_8.entry.js.map +1 -1
  65. package/dist/esm/p-table-column.entry.js +2 -1
  66. package/dist/esm/p-table-column.entry.js.map +1 -1
  67. package/dist/esm/p-table.entry.js +112 -41
  68. package/dist/esm/p-table.entry.js.map +1 -1
  69. package/dist/esm/paperless.js +1 -1
  70. package/dist/esm/{screens-64bd8af0.js → screens-c0e0dee2.js} +12 -2
  71. package/dist/esm/screens-c0e0dee2.js.map +1 -0
  72. package/dist/index.html +1 -1
  73. package/dist/paperless/index.esm.js +1 -1
  74. package/dist/paperless/index.esm.js.map +1 -1
  75. package/dist/paperless/p-66e3624b.js +2 -0
  76. package/dist/paperless/p-66e3624b.js.map +1 -0
  77. package/dist/paperless/p-702e1097.entry.js +2 -0
  78. package/dist/paperless/p-702e1097.entry.js.map +1 -0
  79. package/dist/paperless/{p-329ebeb7.entry.js → p-9d114950.entry.js} +2 -2
  80. package/dist/paperless/p-9d114950.entry.js.map +1 -0
  81. package/dist/paperless/{p-4dc5647e.entry.js → p-d7f2d4d3.entry.js} +2 -2
  82. package/dist/paperless/{p-4dc5647e.entry.js.map → p-d7f2d4d3.entry.js.map} +1 -1
  83. package/dist/paperless/p-f8544f0c.js +2 -0
  84. package/dist/paperless/p-f8544f0c.js.map +1 -0
  85. package/dist/paperless/paperless.esm.js +1 -1
  86. package/dist/paperless/paperless.esm.js.map +1 -1
  87. package/dist/sw.js +1 -1
  88. package/dist/sw.js.map +1 -1
  89. package/dist/types/components/helpers/table-column/table-column.component.d.ts +7 -1
  90. package/dist/types/components/molecules/table-cell/table-cell.component.d.ts +0 -1
  91. package/dist/types/components/organisms/table/table.component.d.ts +4 -0
  92. package/dist/types/components.d.ts +12 -2
  93. package/dist/types/types/constants.d.ts +2 -0
  94. package/dist/types/types/index.d.ts +1 -0
  95. package/dist/types/types/table.d.ts +9 -0
  96. package/dist/types/utils/index.d.ts +1 -0
  97. package/dist/types/utils/table-helpers.d.ts +14 -0
  98. package/hydrate/index.js +273 -153
  99. package/package.json +71 -69
  100. package/dist/build/p-08bef9ec.entry.js +0 -2
  101. package/dist/build/p-08bef9ec.entry.js.map +0 -1
  102. package/dist/build/p-15f63841.js +0 -2
  103. package/dist/build/p-15f63841.js.map +0 -1
  104. package/dist/build/p-329ebeb7.entry.js.map +0 -1
  105. package/dist/build/p-8da0a7c2.js +0 -2
  106. package/dist/build/p-8da0a7c2.js.map +0 -1
  107. package/dist/cjs/object-get-by-path-9757a1e9.js +0 -19
  108. package/dist/cjs/object-get-by-path-9757a1e9.js.map +0 -1
  109. package/dist/cjs/screens-84f01214.js.map +0 -1
  110. package/dist/esm/object-get-by-path-161ec6e4.js +0 -16
  111. package/dist/esm/object-get-by-path-161ec6e4.js.map +0 -1
  112. package/dist/esm/screens-64bd8af0.js.map +0 -1
  113. package/dist/paperless/p-08bef9ec.entry.js +0 -2
  114. package/dist/paperless/p-08bef9ec.entry.js.map +0 -1
  115. package/dist/paperless/p-15f63841.js +0 -2
  116. package/dist/paperless/p-15f63841.js.map +0 -1
  117. package/dist/paperless/p-329ebeb7.entry.js.map +0 -1
  118. package/dist/paperless/p-8da0a7c2.js +0 -2
  119. 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"]}
@@ -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":"SA0CgB,qBAAqB,CACjC,CAAmB,EACnB,CAAc;EAEd,OAAO,CAAC,IAAI,CAAC,CAAC;AAClB;;MC/Ca,eAAe,GAAG,CAC3B,GAAQ,EACR,IAAY,EACZ,YAAY,GAAG,SAAS;EAExB,MAAM,MAAM,GAAG,CAAC,MAAM,KAClB,MAAM,CAAC,SAAS,CAAC,KAAK;KACjB,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC;KAClB,MAAM,CAAC,OAAO,CAAC;KACf,MAAM,CACH,CAAC,GAAG,EAAE,GAAG,KACL,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,EACtD,GAAG,CACN,CAAC;EACV,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC;EACzD,OAAO,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,GAAG,GAAG,YAAY,GAAG,MAAM,CAAC;AAC1E;;;;","names":[],"sources":["src/types/table.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 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","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}
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 = false;
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": [1540, "is-last"],
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;kBAKkD,KAAK;iBAUzC,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: boolean = false;\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
+ {"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: "p-table" }, h("p-table-container", { shadow: this.shadow }, this.enableHeader && (h("p-table-header", {
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: "custom-filter", slot: "custom-filter" })))), this._getHeader(), h("div", { class: "flex flex-col flex-1" }, this._getRows()), this.enableFooter && (h("p-table-footer", {
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: "floating-menu-item", class: ((_c = this._rowActionsFloating) === null || _c === void 0 ? void 0 : _c.length)
144
- ? 'hidden tablet:flex'
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: "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" })))) : (''))));
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((a) => a.type === 'both' || a.type === 'single');
197
+ this._rowActionsRow = actions.filter(a => a.type === 'both' || a.type === 'single');
202
198
  this._rowActionsFloatingAll = actions
203
- .filter((a) => a.type === 'both' || a.type === 'multi' || mobile)
204
- .map((a) => {
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
- const definitionsArray = Array.from(definitions);
231
- definitionsArray[definitionsArray.length - 1]['isLast'] = true;
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: "header" }, this._columns.map((col, index) => (h("p-table-cell", { definition: col, value: col.name, variant: "header", checkbox: index === 0 || col.hasCheckbox
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: (ev) => this._rowClick(ev, index) }, this._getRowColumns(item, index))));
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 lastDef = this._columns[this._columns.length - 1];
259
- const actions = this._rowActionsRow.filter((a) => a.showFunction ? a.showFunction(item) : true);
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: "actions", definition: lastDef, item: item, index: this._columns.length - 1, rowIndex: index, tableHasActions: !!this._rowActionsRow.length }, h("div", { slot: "actions", class: "flex ml-auto gap-2 items-center" }, 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: () => {
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: "loading", checkbox: colIndex === 0 || col.hasCheckbox
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: "ghost", class: "h-6 w-6 rounded" });
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: "checkbox", onChange: (ev) => this._selectAllChange(ev), checked: this._selectionContainsAll(), indeterminate: this._selectionIndeterminate(), disabled: this._rowSelectionLimit !== undefined }));
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: "p-input", type: "checkbox", onChange: (ev) => this._checkboxChange(ev === null || ev === void 0 ? void 0 : ev.target, rowIndex), disabled: (this.canSelectKey && !item[this.canSelectKey]) ||
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: "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())));
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((d) => this._getSelectionValue(d, i) ===
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((item) => item.index === index);
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((a) => (a.type === 'single' || a.type === 'both') && a.showFunction) >= 0) {
489
- actions = actions.filter((a) => a.type === 'multi' ||
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"],