overview-components 1.0.92 → 1.0.93

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 (211) hide show
  1. package/dist/assets/generated/locales/de.js +71 -0
  2. package/dist/assets/generated/locales/de.js.map +1 -0
  3. package/dist/assets/generated/locales/en.js +71 -0
  4. package/dist/assets/generated/locales/en.js.map +1 -0
  5. package/dist/assets/generated/locales/fr.js +71 -0
  6. package/dist/assets/generated/locales/fr.js.map +1 -0
  7. package/dist/assets/generated/locales/hr.js +71 -0
  8. package/dist/assets/generated/locales/hr.js.map +1 -0
  9. package/dist/assets/generated/locales/it.js +71 -0
  10. package/dist/assets/generated/locales/it.js.map +1 -0
  11. package/dist/assets/generated/locales/pl.js +71 -0
  12. package/dist/assets/generated/locales/pl.js.map +1 -0
  13. package/dist/assets/generated/locales/ro.js +71 -0
  14. package/dist/assets/generated/locales/ro.js.map +1 -0
  15. package/dist/assets/generated/locales/sk.js +71 -0
  16. package/dist/assets/generated/locales/sk.js.map +1 -0
  17. package/dist/assets/generated/locales/sr.js +71 -0
  18. package/dist/assets/generated/locales/sr.js.map +1 -0
  19. package/dist/assets/icons/iconGlyphs.js +679 -0
  20. package/dist/assets/icons/iconGlyphs.js.map +1 -0
  21. package/dist/assets/illustration/delete-illustration.js +96 -0
  22. package/dist/assets/illustration/delete-illustration.js.map +1 -0
  23. package/dist/assets/illustration/no-content.js +167 -0
  24. package/dist/assets/illustration/no-content.js.map +1 -0
  25. package/dist/assets/illustration/no-preview.js +133 -0
  26. package/dist/assets/illustration/no-preview.js.map +1 -0
  27. package/dist/assets/illustration/not-found.js +106 -0
  28. package/dist/assets/illustration/not-found.js.map +1 -0
  29. package/dist/assets/illustration/settings-illustration.js +176 -0
  30. package/dist/assets/illustration/settings-illustration.js.map +1 -0
  31. package/dist/components/components-settings/attachments-tab-settings.js +226 -0
  32. package/dist/components/components-settings/attachments-tab-settings.js.map +1 -0
  33. package/dist/components/components-settings/data-grid-settings.js +318 -0
  34. package/dist/components/components-settings/data-grid-settings.js.map +1 -0
  35. package/dist/components/components-settings/section-tab-settings.js +269 -0
  36. package/dist/components/components-settings/section-tab-settings.js.map +1 -0
  37. package/dist/components/components-settings/tabs-overview-settings.js +439 -0
  38. package/dist/components/components-settings/tabs-overview-settings.js.map +1 -0
  39. package/dist/components/lit-attachments-tab.js +680 -0
  40. package/dist/components/lit-attachments-tab.js.map +1 -0
  41. package/dist/components/lit-badge.js +100 -0
  42. package/dist/components/lit-badge.js.map +1 -0
  43. package/dist/components/lit-case-variables-tab.js +842 -0
  44. package/dist/components/lit-case-variables-tab.js.map +1 -0
  45. package/dist/components/lit-chart.js +423 -0
  46. package/dist/components/lit-chart.js.map +1 -0
  47. package/dist/components/lit-data-grid-tanstack.js +2246 -0
  48. package/dist/components/lit-data-grid-tanstack.js.map +1 -0
  49. package/dist/components/lit-filter-modal.js +344 -0
  50. package/dist/components/lit-filter-modal.js.map +1 -0
  51. package/dist/components/lit-multiselect-item.js +706 -0
  52. package/dist/components/lit-multiselect-item.js.map +1 -0
  53. package/dist/components/lit-section-tab.js +145 -0
  54. package/dist/components/lit-section-tab.js.map +1 -0
  55. package/dist/components/lit-tabs-overview.js +345 -0
  56. package/dist/components/lit-tabs-overview.js.map +1 -0
  57. package/dist/components/modals/lit-confirm-modal.js +120 -0
  58. package/dist/components/modals/lit-confirm-modal.js.map +1 -0
  59. package/dist/components/modals/lit-delete-modal.js +128 -0
  60. package/dist/components/modals/lit-delete-modal.js.map +1 -0
  61. package/dist/components/react-wrappers/attachments-tab.js +9 -0
  62. package/dist/components/react-wrappers/attachments-tab.js.map +1 -0
  63. package/dist/components/react-wrappers/badge.js +9 -0
  64. package/dist/components/react-wrappers/badge.js.map +1 -0
  65. package/dist/components/react-wrappers/button.js +9 -0
  66. package/dist/components/react-wrappers/button.js.map +1 -0
  67. package/dist/components/react-wrappers/case-variables-tab.js +9 -0
  68. package/dist/components/react-wrappers/case-variables-tab.js.map +1 -0
  69. package/dist/components/react-wrappers/chart.js +9 -0
  70. package/dist/components/react-wrappers/chart.js.map +1 -0
  71. package/dist/components/react-wrappers/data-grid-tanstack.js +9 -0
  72. package/dist/components/react-wrappers/data-grid-tanstack.js.map +1 -0
  73. package/dist/components/react-wrappers/filter-modal.js +9 -0
  74. package/dist/components/react-wrappers/filter-modal.js.map +1 -0
  75. package/dist/components/react-wrappers/progress-bar.js +9 -0
  76. package/dist/components/react-wrappers/progress-bar.js.map +1 -0
  77. package/dist/components/react-wrappers/section-tab.js +9 -0
  78. package/dist/components/react-wrappers/section-tab.js.map +1 -0
  79. package/dist/components/react-wrappers/tabs-overview.js +9 -0
  80. package/dist/components/react-wrappers/tabs-overview.js.map +1 -0
  81. package/dist/data/translations.js +2763 -0
  82. package/dist/data/translations.js.map +1 -0
  83. package/dist/index.js +43 -0
  84. package/dist/index.js.map +1 -0
  85. package/dist/schemas/index.js +17 -0
  86. package/dist/schemas/index.js.map +1 -0
  87. package/dist/schemas/lit-attachments-tab-document.schema.js +20 -0
  88. package/dist/schemas/lit-attachments-tab-document.schema.js.map +1 -0
  89. package/dist/schemas/lit-attachments-tab-settings-value.schema.js +15 -0
  90. package/dist/schemas/lit-attachments-tab-settings-value.schema.js.map +1 -0
  91. package/dist/schemas/lit-attachments-tab.schema.js +32 -0
  92. package/dist/schemas/lit-attachments-tab.schema.js.map +1 -0
  93. package/dist/schemas/lit-case-variables-tab-cell.schema.js +43 -0
  94. package/dist/schemas/lit-case-variables-tab-cell.schema.js.map +1 -0
  95. package/dist/schemas/lit-case-variables-tab-rows.schema.js +6 -0
  96. package/dist/schemas/lit-case-variables-tab-rows.schema.js.map +1 -0
  97. package/dist/schemas/lit-case-variables-tab.schema.js +24 -0
  98. package/dist/schemas/lit-case-variables-tab.schema.js.map +1 -0
  99. package/dist/schemas/lit-data-grid-tanstack-column-array.schema.js +6 -0
  100. package/dist/schemas/lit-data-grid-tanstack-column-array.schema.js.map +1 -0
  101. package/dist/schemas/lit-data-grid-tanstack-column-custom-filter-array.schema.js +6 -0
  102. package/dist/schemas/lit-data-grid-tanstack-column-custom-filter-array.schema.js.map +1 -0
  103. package/dist/schemas/lit-data-grid-tanstack-column-custom-filter.schema.js +11 -0
  104. package/dist/schemas/lit-data-grid-tanstack-column-custom-filter.schema.js.map +1 -0
  105. package/dist/schemas/lit-data-grid-tanstack-column.schema.js +55 -0
  106. package/dist/schemas/lit-data-grid-tanstack-column.schema.js.map +1 -0
  107. package/dist/schemas/lit-data-grid-tanstack.schema.js +99 -0
  108. package/dist/schemas/lit-data-grid-tanstack.schema.js.map +1 -0
  109. package/dist/schemas/lit-section-tab-schema.js +24 -0
  110. package/dist/schemas/lit-section-tab-schema.js.map +1 -0
  111. package/dist/schemas/lit-tabs-overview-tab-array.schema.js +6 -0
  112. package/dist/schemas/lit-tabs-overview-tab-array.schema.js.map +1 -0
  113. package/dist/schemas/lit-tabs-overview-tab.schema.js +32 -0
  114. package/dist/schemas/lit-tabs-overview-tab.schema.js.map +1 -0
  115. package/dist/schemas/lit-tabs-overview.schema.js +29 -0
  116. package/dist/schemas/lit-tabs-overview.schema.js.map +1 -0
  117. package/dist/scripts/translate-locales.js +69 -0
  118. package/dist/scripts/translate-locales.js.map +1 -0
  119. package/dist/shared/filter-inputs.js +427 -0
  120. package/dist/shared/filter-inputs.js.map +1 -0
  121. package/dist/shared/lit-button.js +156 -0
  122. package/dist/shared/lit-button.js.map +1 -0
  123. package/dist/shared/lit-case-variables-tab-cell.js +226 -0
  124. package/dist/shared/lit-case-variables-tab-cell.js.map +1 -0
  125. package/dist/shared/lit-checkbox.js +171 -0
  126. package/dist/shared/lit-checkbox.js.map +1 -0
  127. package/dist/shared/lit-custom-popper.js +117 -0
  128. package/dist/shared/lit-custom-popper.js.map +1 -0
  129. package/dist/shared/lit-data-grid-action-buttons-popover.js +295 -0
  130. package/dist/shared/lit-data-grid-action-buttons-popover.js.map +1 -0
  131. package/dist/shared/lit-data-grid-density-popover.js +84 -0
  132. package/dist/shared/lit-data-grid-density-popover.js.map +1 -0
  133. package/dist/shared/lit-data-grid-export-popover.js +68 -0
  134. package/dist/shared/lit-data-grid-export-popover.js.map +1 -0
  135. package/dist/shared/lit-data-grid-operators-popover.js +114 -0
  136. package/dist/shared/lit-data-grid-operators-popover.js.map +1 -0
  137. package/dist/shared/lit-data-grid-row-actions.js +76 -0
  138. package/dist/shared/lit-data-grid-row-actions.js.map +1 -0
  139. package/dist/shared/lit-date-picker.js +606 -0
  140. package/dist/shared/lit-date-picker.js.map +1 -0
  141. package/dist/shared/lit-icon-button.js +105 -0
  142. package/dist/shared/lit-icon-button.js.map +1 -0
  143. package/dist/shared/lit-icon.js +284 -0
  144. package/dist/shared/lit-icon.js.map +1 -0
  145. package/dist/shared/lit-input.js +239 -0
  146. package/dist/shared/lit-input.js.map +1 -0
  147. package/dist/shared/lit-label.js +104 -0
  148. package/dist/shared/lit-label.js.map +1 -0
  149. package/dist/shared/lit-loader.js +69 -0
  150. package/dist/shared/lit-loader.js.map +1 -0
  151. package/dist/shared/lit-loading-bar.js +127 -0
  152. package/dist/shared/lit-loading-bar.js.map +1 -0
  153. package/dist/shared/lit-menu-item.js +99 -0
  154. package/dist/shared/lit-menu-item.js.map +1 -0
  155. package/dist/shared/lit-menu.js +42 -0
  156. package/dist/shared/lit-menu.js.map +1 -0
  157. package/dist/shared/lit-modal-body.js +22 -0
  158. package/dist/shared/lit-modal-body.js.map +1 -0
  159. package/dist/shared/lit-modal-footer.js +29 -0
  160. package/dist/shared/lit-modal-footer.js.map +1 -0
  161. package/dist/shared/lit-modal-header.js +36 -0
  162. package/dist/shared/lit-modal-header.js.map +1 -0
  163. package/dist/shared/lit-modal.js +169 -0
  164. package/dist/shared/lit-modal.js.map +1 -0
  165. package/dist/shared/lit-overflow-tooltip.js +103 -0
  166. package/dist/shared/lit-overflow-tooltip.js.map +1 -0
  167. package/dist/shared/lit-pill.js +88 -0
  168. package/dist/shared/lit-pill.js.map +1 -0
  169. package/dist/shared/lit-progress-bar.js +81 -0
  170. package/dist/shared/lit-progress-bar.js.map +1 -0
  171. package/dist/shared/lit-responsive-button.js +94 -0
  172. package/dist/shared/lit-responsive-button.js.map +1 -0
  173. package/dist/shared/lit-select-field.js +459 -0
  174. package/dist/shared/lit-select-field.js.map +1 -0
  175. package/dist/shared/lit-select.js +413 -0
  176. package/dist/shared/lit-select.js.map +1 -0
  177. package/dist/shared/lit-settings.js +77 -0
  178. package/dist/shared/lit-settings.js.map +1 -0
  179. package/dist/shared/lit-text-field.js +222 -0
  180. package/dist/shared/lit-text-field.js.map +1 -0
  181. package/dist/shared/lit-toggle.js +222 -0
  182. package/dist/shared/lit-toggle.js.map +1 -0
  183. package/dist/shared/lit-tooltip.js +166 -0
  184. package/dist/shared/lit-tooltip.js.map +1 -0
  185. package/dist/shared/simple-popper.js +266 -0
  186. package/dist/shared/simple-popper.js.map +1 -0
  187. package/dist/shared/simple-tooltip.js +248 -0
  188. package/dist/shared/simple-tooltip.js.map +1 -0
  189. package/dist/shared/styles/button-shared-styles.js +201 -0
  190. package/dist/shared/styles/button-shared-styles.js.map +1 -0
  191. package/dist/styles.js +169 -0
  192. package/dist/styles.js.map +1 -0
  193. package/dist/utils/currency.js +16 -0
  194. package/dist/utils/currency.js.map +1 -0
  195. package/dist/utils/custom-filters.js +84 -0
  196. package/dist/utils/custom-filters.js.map +1 -0
  197. package/dist/utils/date.js +22 -0
  198. package/dist/utils/date.js.map +1 -0
  199. package/dist/utils/getOperatorByType.js +66 -0
  200. package/dist/utils/getOperatorByType.js.map +1 -0
  201. package/dist/utils/getOverviewValue.js +177 -0
  202. package/dist/utils/getOverviewValue.js.map +1 -0
  203. package/dist/utils/localization.js +432 -0
  204. package/dist/utils/localization.js.map +1 -0
  205. package/dist/utils/utils.js +13 -0
  206. package/dist/utils/utils.js.map +1 -0
  207. package/dist/utils/validate-json-schema.js +8 -0
  208. package/dist/utils/validate-json-schema.js.map +1 -0
  209. package/dist/validators/validator.js +7 -0
  210. package/dist/validators/validator.js.map +1 -0
  211. package/package.json +2 -2
@@ -0,0 +1,32 @@
1
+ import { IconArray } from '../shared/lit-icon.js';
2
+ export const litTabsOverviewTabSchema = {
3
+ $id: 'TabDefinition',
4
+ type: 'object',
5
+ properties: {
6
+ id: {
7
+ type: 'string',
8
+ },
9
+ icon: {
10
+ type: 'string',
11
+ enum: IconArray,
12
+ },
13
+ noContentText: {
14
+ type: 'object',
15
+ properties: {
16
+ default: { type: 'string' },
17
+ },
18
+ additionalProperties: { type: 'string' },
19
+ },
20
+ label: {
21
+ type: 'object',
22
+ properties: {
23
+ default: { type: 'string', minLength: 1 },
24
+ },
25
+ required: ['default'],
26
+ additionalProperties: { type: 'string' },
27
+ },
28
+ },
29
+ required: ['id'],
30
+ additionalProperties: false,
31
+ };
32
+ //# sourceMappingURL=lit-tabs-overview-tab.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lit-tabs-overview-tab.schema.js","sourceRoot":"","sources":["../../src/schemas/lit-tabs-overview-tab.schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACpC,GAAG,EAAE,eAAe;IACpB,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACR,EAAE,EAAE;YACA,IAAI,EAAE,QAAQ;SACjB;QACD,IAAI,EAAE;YACF,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,SAAS;SAClB;QACD,aAAa,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACR,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aAC9B;YACD,oBAAoB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC3C;QACD,KAAK,EAAE;YACH,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACR,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAE;aAC5C;YACD,QAAQ,EAAE,CAAC,SAAS,CAAC;YACrB,oBAAoB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC3C;KACJ;IACD,QAAQ,EAAE,CAAC,IAAI,CAAC;IAChB,oBAAoB,EAAE,KAAK;CACA,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { litTabsOverviewTabSchema } from './lit-tabs-overview-tab.schema';
2
+ export const litTabsOverviewSchema = {
3
+ $id: 'TabsOverview',
4
+ type: 'object',
5
+ properties: {
6
+ tabs: {
7
+ type: 'array',
8
+ items: litTabsOverviewTabSchema,
9
+ },
10
+ initialSelectedTabId: {
11
+ type: 'string',
12
+ },
13
+ enableSettings: {
14
+ type: 'boolean',
15
+ },
16
+ userLang: {
17
+ type: 'string',
18
+ },
19
+ allowedLang: {
20
+ type: 'array',
21
+ items: {
22
+ type: 'string',
23
+ },
24
+ },
25
+ },
26
+ required: ['userLang', 'allowedLang'],
27
+ additionalProperties: false,
28
+ };
29
+ //# sourceMappingURL=lit-tabs-overview.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lit-tabs-overview.schema.js","sourceRoot":"","sources":["../../src/schemas/lit-tabs-overview.schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAE1E,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACjC,GAAG,EAAE,cAAc;IACnB,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACR,IAAI,EAAE;YACF,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,wBAAwB;SAClC;QACD,oBAAoB,EAAE;YAClB,IAAI,EAAE,QAAQ;SACjB;QACD,cAAc,EAAE;YACZ,IAAI,EAAE,SAAS;SAClB;QACD,QAAQ,EAAE;YACN,IAAI,EAAE,QAAQ;SACjB;QACD,WAAW,EAAE;YACT,IAAI,EAAE,OAAO;YACb,KAAK,EAAE;gBACH,IAAI,EAAE,QAAQ;aACjB;SACJ;KACJ;IACD,QAAQ,EAAE,CAAC,UAAU,EAAE,aAAa,CAAC;IACrC,oBAAoB,EAAE,KAAK;CACA,CAAC"}
@@ -0,0 +1,69 @@
1
+ import fs from 'fs';
2
+ import path from 'path';
3
+ import dotenv from 'dotenv';
4
+ dotenv.config();
5
+ const DEEPL_API_URL = 'https://api-free.deepl.com/v2/translate';
6
+ const API_KEY = process.env.DEEP_L_TRANSLATION;
7
+ const localesDir = path.resolve('./src/assets/generated/locales');
8
+ // Helper to translate text
9
+ async function translateText(text, sourceLang, targetLang) {
10
+ try {
11
+ const response = await fetch(DEEPL_API_URL, {
12
+ method: 'POST',
13
+ headers: {
14
+ 'Content-Type': 'application/x-www-form-urlencoded',
15
+ },
16
+ body: new URLSearchParams({
17
+ auth_key: API_KEY,
18
+ text,
19
+ source_lang: sourceLang.toUpperCase(),
20
+ target_lang: targetLang.toUpperCase(),
21
+ }),
22
+ });
23
+ if (!response.ok) {
24
+ throw new Error(`HTTP Error ${response.status}: ${response.statusText}`);
25
+ }
26
+ const data = await response.json();
27
+ return data.translations[0].text;
28
+ }
29
+ catch (error) {
30
+ console.error(`Error translating "${text}" from ${sourceLang} to ${targetLang}:`, error.message);
31
+ return text; // Fallback to original text
32
+ }
33
+ }
34
+ // Process a single locale file
35
+ async function processLocaleFile(filePath) {
36
+ const locale = path.basename(filePath, '.ts'); // Extract locale name (e.g., 'en', 'fr')
37
+ const sourceLang = 'cs'; // Adjust as needed
38
+ const targetLang = locale;
39
+ const fileContent = fs.readFileSync(filePath, 'utf8');
40
+ // Extract the `templates` object
41
+ const match = fileContent.match(/const templates = ({[\s\S]*?});/);
42
+ if (!match) {
43
+ console.error(`No templates object found in ${filePath}`);
44
+ return;
45
+ }
46
+ const templates = eval('(' + match[1] + ')'); // Parse the object safely
47
+ const translatedTemplates = {};
48
+ for (const [key, value] of Object.entries(templates)) {
49
+ if (!translatedTemplates[key]) {
50
+ translatedTemplates[key] = await translateText(value, sourceLang, targetLang);
51
+ await new Promise(res => setTimeout(res, 1000)); // Small delay to prevent rate limits
52
+ }
53
+ }
54
+ // Recreate the file content with updated translations
55
+ const newFileContent = `export const templates = ${JSON.stringify(translatedTemplates, null, 2)}`;
56
+ fs.writeFileSync(filePath, newFileContent);
57
+ console.log(`Updated translations for ${filePath}`);
58
+ }
59
+ // Main function to process all locale files
60
+ async function translateLocales() {
61
+ const files = fs.readdirSync(localesDir).filter(file => file.endsWith('.ts'));
62
+ for (const file of files) {
63
+ const filePath = path.join(localesDir, file);
64
+ await processLocaleFile(filePath);
65
+ await new Promise(res => setTimeout(res, 5000)); // Small delay to prevent rate limits
66
+ }
67
+ }
68
+ translateLocales();
69
+ //# sourceMappingURL=translate-locales.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translate-locales.js","sourceRoot":"","sources":["../../src/scripts/translate-locales.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,427 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { LitElement, html, css } from 'lit';
8
+ import _ from 'lodash';
9
+ import { msg } from '@lit/localize';
10
+ import { customElement, property, state } from 'lit/decorators.js';
11
+ import 'air-datepicker/air-datepicker.css';
12
+ // components
13
+ import './lit-icon.js';
14
+ import './lit-icon-button.js';
15
+ import './lit-select.js';
16
+ import './lit-date-picker.js';
17
+ import './lit-data-grid-operators-popover.js';
18
+ import './lit-input.js';
19
+ import { debounce } from '../utils/utils.js';
20
+ let FilterInputs = class FilterInputs extends LitElement {
21
+ constructor() {
22
+ super();
23
+ this.minFilterCharacters = 0;
24
+ this.server = false;
25
+ this.value = undefined;
26
+ this.operator = undefined;
27
+ this.filterOperators = [];
28
+ this.valueOptions = [];
29
+ this.filterVariant = [];
30
+ this.isClickInside = false;
31
+ this.handleSetOperator = (value, opt) => {
32
+ this.operator = this.filterOperators.find((item) => item.value === value)?.value;
33
+ if (['isEmpty', 'isNotEmpty'].includes(value)) {
34
+ this.value = null;
35
+ this.column?.setFilterValue({ value: this.value, operator: value });
36
+ }
37
+ else {
38
+ if (this.value && !opt?.silent) {
39
+ this.column?.setFilterValue({
40
+ value: this.value,
41
+ operator: this.operator,
42
+ });
43
+ }
44
+ }
45
+ };
46
+ // Create debounced methods with 500ms delay
47
+ this.debouncedSetTextFilter = debounce((value) => {
48
+ this.checkNumberOfCharacters(value, () => {
49
+ this.handleSetFilter(value);
50
+ });
51
+ });
52
+ this.debouncedSetNumberFilter = debounce((value) => {
53
+ this.handleSetFilter(value);
54
+ });
55
+ }
56
+ checkNumberOfCharacters(value, cf) {
57
+ if (!_.isEmpty(value)) {
58
+ if (value.length >= this.minFilterCharacters) {
59
+ cf();
60
+ }
61
+ }
62
+ else {
63
+ cf();
64
+ }
65
+ }
66
+ updated(changedProperties) {
67
+ if (changedProperties.has('column')) {
68
+ if (this.filterVariant === 'select' || this.filterVariant === 'multiselect') {
69
+ if (this.column?.columnDef?.meta.valueOptions || this.server) {
70
+ this.valueOptions = this.column?.columnDef?.meta.valueOptions || [];
71
+ }
72
+ else {
73
+ const sortedUniqueValues = Array.from(this.column?.getFacetedUniqueValues().keys())
74
+ .sort()
75
+ .slice(0, 5000);
76
+ this.valueOptions = sortedUniqueValues.map((value) => ({
77
+ value,
78
+ label: value,
79
+ }));
80
+ }
81
+ }
82
+ }
83
+ }
84
+ handleSetFilter(value) {
85
+ this.value = value;
86
+ if (!_.isEmpty(value)) {
87
+ if (this.server) {
88
+ this.column?.setFilterValue({ value: this.value, operator: this.operator });
89
+ }
90
+ else {
91
+ this.column?.setFilterValue(this.value);
92
+ }
93
+ }
94
+ else {
95
+ this.column?.setFilterValue();
96
+ }
97
+ }
98
+ handleClearFilter() {
99
+ if (this.server) {
100
+ this.operator = this.filterOperators[0].value;
101
+ }
102
+ this.value = null;
103
+ this.column?.setFilterValue();
104
+ }
105
+ handleDateChange(value) {
106
+ if (!_.isEqual(value, this.value)) {
107
+ this.handleSetFilter(value);
108
+ }
109
+ }
110
+ handleStartDateChange(value) {
111
+ this.startDate = value;
112
+ this.handleFilterDateRangeChange();
113
+ }
114
+ handleEndDateChange(value) {
115
+ this.endDate = value;
116
+ this.handleFilterDateRangeChange();
117
+ }
118
+ handleFilterDateRangeChange() {
119
+ if (!this.startDate && !this.endDate) {
120
+ this.handleSetFilter(undefined);
121
+ }
122
+ else {
123
+ this.handleSetFilter({ startDate: this.startDate, endDate: this.endDate });
124
+ }
125
+ }
126
+ handleKeyDown(event) {
127
+ if (event.key === 'Enter') {
128
+ const target = event.target;
129
+ if (target) {
130
+ this.handleSetFilter(target.value);
131
+ this.requestUpdate();
132
+ }
133
+ }
134
+ else if (event.key === 'Tab') {
135
+ // Get all focusable elements within this filter
136
+ const focusableElements = this.getFocusableElements();
137
+ if (focusableElements.length <= 1) {
138
+ // If there's only one or no focusable element, proceed with filter-to-filter navigation
139
+ event.preventDefault();
140
+ this.dispatchEvent(new CustomEvent('filter-tab', {
141
+ bubbles: true,
142
+ composed: true,
143
+ detail: {
144
+ direction: event.shiftKey ? 'backward' : 'forward',
145
+ currentFilter: this,
146
+ },
147
+ }));
148
+ return;
149
+ }
150
+ // If there are multiple elements (like in range filters), handle internal navigation
151
+ const currentElement = event.target;
152
+ const currentIndex = focusableElements.indexOf(currentElement);
153
+ // If Shift+Tab on first element or Tab on last element, move to next/previous filter
154
+ if ((event.shiftKey && currentIndex === 0) ||
155
+ (!event.shiftKey && currentIndex === focusableElements.length - 1)) {
156
+ event.preventDefault();
157
+ this.dispatchEvent(new CustomEvent('filter-tab', {
158
+ bubbles: true,
159
+ composed: true,
160
+ detail: {
161
+ direction: event.shiftKey ? 'backward' : 'forward',
162
+ currentFilter: this,
163
+ },
164
+ }));
165
+ }
166
+ else {
167
+ // Otherwise, just move to the next/previous internal element
168
+ event.preventDefault();
169
+ const nextIndex = event.shiftKey ? currentIndex - 1 : currentIndex + 1;
170
+ focusableElements[nextIndex].focus();
171
+ }
172
+ }
173
+ }
174
+ // Improved getFocusableElements to find all actual focusable elements
175
+ getFocusableElements() {
176
+ const elements = [];
177
+ // Check for regular inputs
178
+ const inputs = this.shadowRoot?.querySelectorAll('lit-input');
179
+ if (inputs) {
180
+ inputs.forEach((input) => elements.push(input));
181
+ }
182
+ // Check for lit-select components
183
+ const selects = this.shadowRoot?.querySelectorAll('lit-select');
184
+ if (selects) {
185
+ selects.forEach((select) => elements.push(select));
186
+ }
187
+ // Check for lit-date-picker components
188
+ const datePickers = this.shadowRoot?.querySelectorAll('lit-date-picker');
189
+ if (datePickers) {
190
+ datePickers.forEach((datePicker) => elements.push(datePicker));
191
+ }
192
+ return elements;
193
+ }
194
+ focus() {
195
+ const firstFocusable = this.shadowRoot?.querySelector('lit-input, lit-select, lit-date-picker');
196
+ firstFocusable?.focus();
197
+ }
198
+ render() {
199
+ if (this.filterVariant === 'numberRange') {
200
+ return this.renderNumberRangeInput();
201
+ }
202
+ else if (this.filterVariant === 'select') {
203
+ return this.renderSelectInput();
204
+ }
205
+ else if (this.filterVariant === 'multiselect') {
206
+ return this.renderSelectInput(true);
207
+ }
208
+ else if (this.filterVariant === 'number') {
209
+ return this.renderNumberInput();
210
+ }
211
+ else if (this.filterVariant === 'currency') {
212
+ return this.renderNumberInput();
213
+ }
214
+ else if (this.filterVariant === 'date') {
215
+ return this.renderDateInput();
216
+ }
217
+ else if (this.filterVariant === 'dateTime') {
218
+ return this.renderDateInput();
219
+ }
220
+ else if (this.filterVariant === 'dateRange') {
221
+ return this.renderDateRangeInput();
222
+ }
223
+ else if (this.filterVariant === 'dateTimeRange') {
224
+ return this.renderDateRangeInput();
225
+ }
226
+ else {
227
+ return this.renderTextInput();
228
+ }
229
+ }
230
+ renderNumberRangeInput() {
231
+ const debouncedSetRangeFilter = debounce((min, max) => {
232
+ this.handleSetFilter([min, max]);
233
+ });
234
+ return html `
235
+ <div class="range">
236
+ <lit-input
237
+ class="range-fields"
238
+ type="number"
239
+ .server="${this.server}"
240
+ .value="${this.value?.[0] || ''}"
241
+ placeholder="Min"
242
+ .onInput=${(val) => {
243
+ const min = val ? Number(val) : undefined;
244
+ const currentMax = this.value?.[1];
245
+ debouncedSetRangeFilter(min, currentMax);
246
+ }}
247
+ .onClear="${() => {
248
+ this.handleClearFilter();
249
+ }}"
250
+ @keydown=${(e) => this.handleKeyDown(e)}
251
+ ></lit-input>
252
+
253
+ <lit-input
254
+ class="range-fields"
255
+ type="number"
256
+ .server="${this.server}"
257
+ .value="${this.value?.[1] || ''}"
258
+ placeholder="Max"
259
+ .onInput=${(val) => {
260
+ const max = val ? Number(val) : undefined;
261
+ const currentMin = this.value?.[0];
262
+ debouncedSetRangeFilter(currentMin, max);
263
+ }}
264
+ .onClear="${() => {
265
+ this.handleClearFilter();
266
+ }}"
267
+ @keydown=${(e) => this.handleKeyDown(e)}
268
+ ></lit-input>
269
+ </div>
270
+ `;
271
+ }
272
+ renderSelectInput(multiselect = false) {
273
+ return html `
274
+ <lit-select
275
+ id=${this.column.id}
276
+ .value="${typeof this.value === 'number'
277
+ ? this.value.toString()
278
+ : this.value || []}"
279
+ .server="${this.server}"
280
+ .options="${this.valueOptions}"
281
+ .onChange="${(selectedValue) => {
282
+ const filterValue = selectedValue.length === 0 ? undefined : selectedValue;
283
+ this.handleSetFilter(filterValue);
284
+ }}"
285
+ .multiple="${multiselect}"
286
+ @keydown=${(e) => this.handleKeyDown(e)}
287
+ .setOperator="${this.handleSetOperator}"
288
+ .operator="${this.operator}"
289
+ .filterOperators="${this.filterOperators}"
290
+ ></lit-select>
291
+ `;
292
+ }
293
+ renderNumberInput() {
294
+ return html `
295
+ <lit-input
296
+ type="number"
297
+ .value="${this.value || ''}"
298
+ .server="${this.server}"
299
+ .onInput=${(val) => this.debouncedSetNumberFilter(val)}
300
+ .onClear="${() => {
301
+ this.handleClearFilter();
302
+ }}"
303
+ @keydown=${(e) => this.handleKeyDown(e)}
304
+ .setOperator="${this.handleSetOperator}"
305
+ .operator="${this.operator}"
306
+ .disabled="${this.server &&
307
+ ['isEmpty', 'isNotEmpty'].includes(this.operator)}"
308
+ .filterOperators="${this.filterOperators}"
309
+ ></lit-input>
310
+ `;
311
+ }
312
+ renderDateInput() {
313
+ return html `
314
+ <lit-date-picker
315
+ class="datePicker"
316
+ .server="${this.server}"
317
+ .pickerVariant=${this.filterVariant || ''}
318
+ .value=${this.value}
319
+ .dateFormat=${this.dateFormat}
320
+ .userLang=${this.userLang}
321
+ .onChange="${(value) => this.handleDateChange(value)}"
322
+ @keydown=${(e) => this.handleKeyDown(e)}
323
+ .setOperator="${this.handleSetOperator}"
324
+ .operator="${this.operator}"
325
+ .disabled="${this.server &&
326
+ ['isEmpty', 'isNotEmpty'].includes(this.operator)}"
327
+ .range="${['fromTo'].includes(this.operator)}"
328
+ .filterOperators="${this.filterOperators}"
329
+ ></lit-date-picker>
330
+ `;
331
+ }
332
+ renderDateRangeInput() {
333
+ return html `
334
+ <div class="range">
335
+ <lit-date-picker
336
+ class="range-fields"
337
+ .server="${this.server}"
338
+ .dateFormat=${this.dateFormat}
339
+ .userLang=${this.userLang}
340
+ placeholder=${msg('Od')}
341
+ .onChange="${(value) => this.handleStartDateChange(value)}"
342
+ @keydown=${(e) => this.handleKeyDown(e)}
343
+ ></lit-date-picker>
344
+
345
+ <lit-date-picker
346
+ class="range-fields"
347
+ .server="${this.server}"
348
+ .dateFormat=${this.dateFormat}
349
+ .userLang=${this.userLang}
350
+ placeholder=${msg('Do')}
351
+ .onChange="${(value) => this.handleEndDateChange(value)}"
352
+ @keydown=${(e) => this.handleKeyDown(e)}
353
+ ></lit-date-picker>
354
+ </div>
355
+ `;
356
+ }
357
+ renderTextInput() {
358
+ return html `
359
+ <lit-input
360
+ .value="${this.value}"
361
+ .server="${this.server}"
362
+ .onInput=${(val) => this.debouncedSetTextFilter(val)}
363
+ .onClear="${() => {
364
+ this.handleClearFilter();
365
+ }}"
366
+ @keydown=${(e) => this.handleKeyDown(e)}
367
+ .setOperator="${this.handleSetOperator}"
368
+ .operator="${this.operator}"
369
+ .disabled="${this.server &&
370
+ ['isEmpty', 'isNotEmpty'].includes(this.operator)}"
371
+ .filterOperators="${this.filterOperators}"
372
+ ></lit-input>
373
+ `;
374
+ }
375
+ };
376
+ FilterInputs.styles = css `
377
+ .range {
378
+ display: flex;
379
+ gap: 0.3125rem;
380
+ }
381
+
382
+ .range-fields {
383
+ width: 100%;
384
+ min-width: 70px;
385
+ }
386
+ `;
387
+ __decorate([
388
+ property({ type: Object })
389
+ ], FilterInputs.prototype, "column", void 0);
390
+ __decorate([
391
+ property({ type: String })
392
+ ], FilterInputs.prototype, "dateFormat", void 0);
393
+ __decorate([
394
+ property({ type: String })
395
+ ], FilterInputs.prototype, "userLang", void 0);
396
+ __decorate([
397
+ property({ type: Number })
398
+ ], FilterInputs.prototype, "minFilterCharacters", void 0);
399
+ __decorate([
400
+ property({ type: Boolean })
401
+ ], FilterInputs.prototype, "server", void 0);
402
+ __decorate([
403
+ property({ type: Object })
404
+ ], FilterInputs.prototype, "value", void 0);
405
+ __decorate([
406
+ property({ type: String })
407
+ ], FilterInputs.prototype, "operator", void 0);
408
+ __decorate([
409
+ property({ type: Array })
410
+ ], FilterInputs.prototype, "filterOperators", void 0);
411
+ __decorate([
412
+ property({ type: Array })
413
+ ], FilterInputs.prototype, "valueOptions", void 0);
414
+ __decorate([
415
+ state()
416
+ ], FilterInputs.prototype, "startDate", void 0);
417
+ __decorate([
418
+ state()
419
+ ], FilterInputs.prototype, "endDate", void 0);
420
+ __decorate([
421
+ state()
422
+ ], FilterInputs.prototype, "filterVariant", void 0);
423
+ FilterInputs = __decorate([
424
+ customElement('filter-inputs')
425
+ ], FilterInputs);
426
+ export { FilterInputs };
427
+ //# sourceMappingURL=filter-inputs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"filter-inputs.js","sourceRoot":"","sources":["../../src/shared/filter-inputs.ts"],"names":[],"mappings":"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"}