overview-components 1.0.66 → 1.0.68

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 (267) hide show
  1. package/dist/_virtual/_commonjsHelpers.js +6 -0
  2. package/dist/_virtual/index.js +4 -0
  3. package/dist/_virtual/react.production.js +4 -0
  4. package/dist/assets/generated/locales/de.js +72 -70
  5. package/dist/assets/generated/locales/en.js +72 -70
  6. package/dist/assets/generated/locales/fr.js +72 -70
  7. package/dist/assets/generated/locales/hr.js +72 -70
  8. package/dist/assets/generated/locales/it.js +72 -70
  9. package/dist/assets/generated/locales/pl.js +72 -70
  10. package/dist/assets/generated/locales/ro.js +72 -70
  11. package/dist/assets/generated/locales/sk.js +72 -70
  12. package/dist/assets/generated/locales/sr.js +72 -70
  13. package/dist/assets/{ilustration/no-content.d.ts → illustration/delete-illustration.d.ts} +2 -2
  14. package/dist/assets/illustration/delete-illustration.d.ts.map +1 -0
  15. package/dist/components/components-settings/attachments-tab-settings.d.ts +39 -0
  16. package/dist/components/components-settings/attachments-tab-settings.d.ts.map +1 -0
  17. package/dist/components/components-settings/section-tab-settings.d.ts +0 -1
  18. package/dist/components/components-settings/section-tab-settings.d.ts.map +1 -1
  19. package/dist/components/components-settings/tabs-overview-settings.d.ts +53 -0
  20. package/dist/components/components-settings/tabs-overview-settings.d.ts.map +1 -0
  21. package/dist/components/lit-attachments-tab.d.ts +13 -15
  22. package/dist/components/lit-attachments-tab.d.ts.map +1 -1
  23. package/dist/components/lit-attachments-tab.js +323 -384
  24. package/dist/components/lit-badge.js +37 -40
  25. package/dist/components/lit-case-variables-tab.js +378 -497
  26. package/dist/components/lit-data-grid-tanstack.js +1145 -1663
  27. package/dist/components/lit-filter-modal.js +194 -230
  28. package/dist/components/lit-section-tab.js +69 -85
  29. package/dist/components/lit-tabs-overview.d.ts +26 -10
  30. package/dist/components/lit-tabs-overview.d.ts.map +1 -1
  31. package/dist/components/modals/lit-confirm-modal.d.ts +25 -0
  32. package/dist/components/modals/lit-confirm-modal.d.ts.map +1 -0
  33. package/dist/components/modals/lit-delete-modal.d.ts +25 -0
  34. package/dist/components/modals/lit-delete-modal.d.ts.map +1 -0
  35. package/dist/components/react-wrappers/attachments-tab.js +13 -8
  36. package/dist/components/react-wrappers/badge.js +13 -8
  37. package/dist/components/react-wrappers/case-variables-tab.js +13 -8
  38. package/dist/components/react-wrappers/data-grid-tanstack.js +13 -8
  39. package/dist/components/react-wrappers/filter-modal.js +13 -8
  40. package/dist/components/react-wrappers/section-tab.js +13 -8
  41. package/dist/index.js +26 -27
  42. package/dist/libs/xlsx.mini.min.js +10 -0
  43. package/dist/node_modules/@lit/reactive-element/css-tag.js +42 -0
  44. package/dist/node_modules/@lit/reactive-element/decorators/base.js +9 -0
  45. package/dist/node_modules/@lit/reactive-element/decorators/custom-element.js +13 -0
  46. package/dist/node_modules/@lit/reactive-element/decorators/property.js +37 -0
  47. package/dist/node_modules/@lit/reactive-element/decorators/query.js +20 -0
  48. package/dist/node_modules/@lit/reactive-element/decorators/state.js +12 -0
  49. package/dist/node_modules/@lit/reactive-element/reactive-element.js +249 -0
  50. package/dist/node_modules/lit-html/async-directive.js +69 -0
  51. package/dist/node_modules/lit-html/directive-helpers.js +45 -0
  52. package/dist/node_modules/lit-html/directive.js +27 -0
  53. package/dist/node_modules/lit-html/directives/ref.js +42 -0
  54. package/dist/node_modules/lit-html/directives/repeat.js +61 -0
  55. package/dist/node_modules/lit-html/directives/style-map.js +36 -0
  56. package/dist/node_modules/lit-html/directives/unsafe-html.js +27 -0
  57. package/dist/node_modules/lit-html/lit-html.js +242 -0
  58. package/dist/node_modules/react/cjs/react.production.js +417 -0
  59. package/dist/node_modules/react/index.js +10 -0
  60. package/dist/schemas/index.d.ts +7 -1
  61. package/dist/schemas/index.d.ts.map +1 -1
  62. package/dist/schemas/lit-attachments-tab-document.schema.d.ts +20 -0
  63. package/dist/schemas/lit-attachments-tab-document.schema.d.ts.map +1 -0
  64. package/dist/schemas/lit-attachments-tab-settings-value.schema.d.ts +15 -0
  65. package/dist/schemas/lit-attachments-tab-settings-value.schema.d.ts.map +1 -0
  66. package/dist/schemas/lit-attachments-tab.schema.d.ts +49 -0
  67. package/dist/schemas/lit-attachments-tab.schema.d.ts.map +1 -0
  68. package/dist/schemas/lit-tabs-overview-tab-array.schema.d.ts +43 -0
  69. package/dist/schemas/lit-tabs-overview-tab-array.schema.d.ts.map +1 -0
  70. package/dist/schemas/lit-tabs-overview-tab.schema.d.ts +40 -0
  71. package/dist/schemas/lit-tabs-overview-tab.schema.d.ts.map +1 -0
  72. package/dist/schemas/lit-tabs-overview.schema.d.ts +66 -0
  73. package/dist/schemas/lit-tabs-overview.schema.d.ts.map +1 -0
  74. package/dist/shared/lit-button.d.ts +1 -1
  75. package/dist/shared/lit-button.d.ts.map +1 -1
  76. package/dist/shared/lit-icon-button.d.ts +2 -2
  77. package/dist/shared/lit-icon-button.d.ts.map +1 -1
  78. package/dist/shared/lit-input.d.ts.map +1 -1
  79. package/dist/shared/lit-label.d.ts.map +1 -1
  80. package/dist/shared/lit-text-field.d.ts +1 -0
  81. package/dist/shared/lit-text-field.d.ts.map +1 -1
  82. package/dist/shared/simple-tooltip.js +122 -198
  83. package/dist/shared/styles/button-shared-styles.d.ts.map +1 -1
  84. package/dist/utils/currency.js +12 -15
  85. package/dist/utils/custom-filters.js +45 -80
  86. package/dist/utils/date.js +13 -21
  87. package/dist/utils/getOperatorByType.js +50 -65
  88. package/dist/utils/localization.js +29 -431
  89. package/dist/vite.svg +1 -0
  90. package/package.json +17 -2
  91. package/dist/assets/generated/locales/de.js.map +0 -1
  92. package/dist/assets/generated/locales/en.js.map +0 -1
  93. package/dist/assets/generated/locales/fr.js.map +0 -1
  94. package/dist/assets/generated/locales/hr.js.map +0 -1
  95. package/dist/assets/generated/locales/it.js.map +0 -1
  96. package/dist/assets/generated/locales/pl.js.map +0 -1
  97. package/dist/assets/generated/locales/ro.js.map +0 -1
  98. package/dist/assets/generated/locales/sk.js.map +0 -1
  99. package/dist/assets/generated/locales/sr.js.map +0 -1
  100. package/dist/assets/icons/iconGlyphs.js +0 -679
  101. package/dist/assets/icons/iconGlyphs.js.map +0 -1
  102. package/dist/assets/illustration/no-content.js +0 -167
  103. package/dist/assets/illustration/no-content.js.map +0 -1
  104. package/dist/assets/illustration/no-preview.js +0 -133
  105. package/dist/assets/illustration/no-preview.js.map +0 -1
  106. package/dist/assets/illustration/not-found.js +0 -106
  107. package/dist/assets/illustration/not-found.js.map +0 -1
  108. package/dist/assets/illustration/settings-illustration.js +0 -176
  109. package/dist/assets/illustration/settings-illustration.js.map +0 -1
  110. package/dist/assets/ilustration/no-content.d.ts.map +0 -1
  111. package/dist/assets/ilustration/no-content.js +0 -167
  112. package/dist/assets/ilustration/no-content.js.map +0 -1
  113. package/dist/assets/ilustration/no-preview.d.ts +0 -6
  114. package/dist/assets/ilustration/no-preview.d.ts.map +0 -1
  115. package/dist/assets/ilustration/no-preview.js +0 -133
  116. package/dist/assets/ilustration/no-preview.js.map +0 -1
  117. package/dist/assets/ilustration/not-found.d.ts +0 -6
  118. package/dist/assets/ilustration/not-found.d.ts.map +0 -1
  119. package/dist/assets/ilustration/not-found.js +0 -106
  120. package/dist/assets/ilustration/not-found.js.map +0 -1
  121. package/dist/components/components-settings/data-grid-settings.js +0 -318
  122. package/dist/components/components-settings/data-grid-settings.js.map +0 -1
  123. package/dist/components/components-settings/section-tab-settings.js +0 -270
  124. package/dist/components/components-settings/section-tab-settings.js.map +0 -1
  125. package/dist/components/lit-attachments-tab.js.map +0 -1
  126. package/dist/components/lit-badge.js.map +0 -1
  127. package/dist/components/lit-case-variables-tab.js.map +0 -1
  128. package/dist/components/lit-chart.js +0 -423
  129. package/dist/components/lit-chart.js.map +0 -1
  130. package/dist/components/lit-data-grid-tanstack.js.map +0 -1
  131. package/dist/components/lit-filter-modal.js.map +0 -1
  132. package/dist/components/lit-multiselect-item.js +0 -706
  133. package/dist/components/lit-multiselect-item.js.map +0 -1
  134. package/dist/components/lit-progress-bar.d.ts +0 -17
  135. package/dist/components/lit-progress-bar.d.ts.map +0 -1
  136. package/dist/components/lit-progress-bar.js +0 -81
  137. package/dist/components/lit-progress-bar.js.map +0 -1
  138. package/dist/components/lit-section-tab.js.map +0 -1
  139. package/dist/components/lit-tabs-overview.js +0 -142
  140. package/dist/components/lit-tabs-overview.js.map +0 -1
  141. package/dist/components/react-wrappers/attachments-tab.js.map +0 -1
  142. package/dist/components/react-wrappers/badge.js.map +0 -1
  143. package/dist/components/react-wrappers/case-variables-tab.js.map +0 -1
  144. package/dist/components/react-wrappers/chart.js +0 -9
  145. package/dist/components/react-wrappers/chart.js.map +0 -1
  146. package/dist/components/react-wrappers/data-grid-tanstack.js.map +0 -1
  147. package/dist/components/react-wrappers/filter-modal.js.map +0 -1
  148. package/dist/components/react-wrappers/progress-bar.js +0 -9
  149. package/dist/components/react-wrappers/progress-bar.js.map +0 -1
  150. package/dist/components/react-wrappers/section-tab.js.map +0 -1
  151. package/dist/components/react-wrappers/tabs-overview.js +0 -9
  152. package/dist/components/react-wrappers/tabs-overview.js.map +0 -1
  153. package/dist/data/translations.js +0 -2763
  154. package/dist/data/translations.js.map +0 -1
  155. package/dist/index.js.map +0 -1
  156. package/dist/schemas/cell-case-variables-tab.schema.d.ts +0 -110
  157. package/dist/schemas/cell-case-variables-tab.schema.d.ts.map +0 -1
  158. package/dist/schemas/cell-case-variables-tab.schema.js +0 -47
  159. package/dist/schemas/cell-case-variables-tab.schema.js.map +0 -1
  160. package/dist/schemas/index.js +0 -11
  161. package/dist/schemas/index.js.map +0 -1
  162. package/dist/schemas/lit-case-variables-tab-cell.schema.js +0 -43
  163. package/dist/schemas/lit-case-variables-tab-cell.schema.js.map +0 -1
  164. package/dist/schemas/lit-case-variables-tab-rows.schema.js +0 -6
  165. package/dist/schemas/lit-case-variables-tab-rows.schema.js.map +0 -1
  166. package/dist/schemas/lit-case-variables-tab.schema.js +0 -24
  167. package/dist/schemas/lit-case-variables-tab.schema.js.map +0 -1
  168. package/dist/schemas/lit-data-grid-tanstack-column-array.schema.js +0 -6
  169. package/dist/schemas/lit-data-grid-tanstack-column-array.schema.js.map +0 -1
  170. package/dist/schemas/lit-data-grid-tanstack-column-custom-filter-array.schema.js +0 -6
  171. package/dist/schemas/lit-data-grid-tanstack-column-custom-filter-array.schema.js.map +0 -1
  172. package/dist/schemas/lit-data-grid-tanstack-column-custom-filter.schema.js +0 -11
  173. package/dist/schemas/lit-data-grid-tanstack-column-custom-filter.schema.js.map +0 -1
  174. package/dist/schemas/lit-data-grid-tanstack-column.schema.js +0 -55
  175. package/dist/schemas/lit-data-grid-tanstack-column.schema.js.map +0 -1
  176. package/dist/schemas/lit-data-grid-tanstack.schema.js +0 -99
  177. package/dist/schemas/lit-data-grid-tanstack.schema.js.map +0 -1
  178. package/dist/schemas/lit-section-tab-schema.js +0 -24
  179. package/dist/schemas/lit-section-tab-schema.js.map +0 -1
  180. package/dist/scripts/translate-locales.js +0 -69
  181. package/dist/scripts/translate-locales.js.map +0 -1
  182. package/dist/shared/filter-inputs.js +0 -427
  183. package/dist/shared/filter-inputs.js.map +0 -1
  184. package/dist/shared/lit-button.js +0 -156
  185. package/dist/shared/lit-button.js.map +0 -1
  186. package/dist/shared/lit-case-variables-tab-cell.js +0 -226
  187. package/dist/shared/lit-case-variables-tab-cell.js.map +0 -1
  188. package/dist/shared/lit-checkbox.js +0 -171
  189. package/dist/shared/lit-checkbox.js.map +0 -1
  190. package/dist/shared/lit-custom-popper.js +0 -117
  191. package/dist/shared/lit-custom-popper.js.map +0 -1
  192. package/dist/shared/lit-data-grid-action-buttons-popover.js +0 -295
  193. package/dist/shared/lit-data-grid-action-buttons-popover.js.map +0 -1
  194. package/dist/shared/lit-data-grid-density-popover.js +0 -84
  195. package/dist/shared/lit-data-grid-density-popover.js.map +0 -1
  196. package/dist/shared/lit-data-grid-export-popover.js +0 -68
  197. package/dist/shared/lit-data-grid-export-popover.js.map +0 -1
  198. package/dist/shared/lit-data-grid-operators-popover.js +0 -114
  199. package/dist/shared/lit-data-grid-operators-popover.js.map +0 -1
  200. package/dist/shared/lit-data-grid-row-actions.js +0 -76
  201. package/dist/shared/lit-data-grid-row-actions.js.map +0 -1
  202. package/dist/shared/lit-date-picker.js +0 -606
  203. package/dist/shared/lit-date-picker.js.map +0 -1
  204. package/dist/shared/lit-icon-button.js +0 -104
  205. package/dist/shared/lit-icon-button.js.map +0 -1
  206. package/dist/shared/lit-icon.js +0 -284
  207. package/dist/shared/lit-icon.js.map +0 -1
  208. package/dist/shared/lit-input.js +0 -238
  209. package/dist/shared/lit-input.js.map +0 -1
  210. package/dist/shared/lit-label.js +0 -100
  211. package/dist/shared/lit-label.js.map +0 -1
  212. package/dist/shared/lit-loader.js +0 -69
  213. package/dist/shared/lit-loader.js.map +0 -1
  214. package/dist/shared/lit-loading-bar.js +0 -127
  215. package/dist/shared/lit-loading-bar.js.map +0 -1
  216. package/dist/shared/lit-menu-item.js +0 -99
  217. package/dist/shared/lit-menu-item.js.map +0 -1
  218. package/dist/shared/lit-menu.js +0 -42
  219. package/dist/shared/lit-menu.js.map +0 -1
  220. package/dist/shared/lit-modal-body.js +0 -22
  221. package/dist/shared/lit-modal-body.js.map +0 -1
  222. package/dist/shared/lit-modal-footer.js +0 -29
  223. package/dist/shared/lit-modal-footer.js.map +0 -1
  224. package/dist/shared/lit-modal-header.js +0 -36
  225. package/dist/shared/lit-modal-header.js.map +0 -1
  226. package/dist/shared/lit-modal.js +0 -169
  227. package/dist/shared/lit-modal.js.map +0 -1
  228. package/dist/shared/lit-overflow-tooltip.js +0 -103
  229. package/dist/shared/lit-overflow-tooltip.js.map +0 -1
  230. package/dist/shared/lit-pill.js +0 -88
  231. package/dist/shared/lit-pill.js.map +0 -1
  232. package/dist/shared/lit-progress-bar.js +0 -81
  233. package/dist/shared/lit-progress-bar.js.map +0 -1
  234. package/dist/shared/lit-responsive-button.js +0 -94
  235. package/dist/shared/lit-responsive-button.js.map +0 -1
  236. package/dist/shared/lit-select-field.js +0 -459
  237. package/dist/shared/lit-select-field.js.map +0 -1
  238. package/dist/shared/lit-select.js +0 -413
  239. package/dist/shared/lit-select.js.map +0 -1
  240. package/dist/shared/lit-settings.js +0 -77
  241. package/dist/shared/lit-settings.js.map +0 -1
  242. package/dist/shared/lit-text-field.js +0 -214
  243. package/dist/shared/lit-text-field.js.map +0 -1
  244. package/dist/shared/lit-toggle.js +0 -222
  245. package/dist/shared/lit-toggle.js.map +0 -1
  246. package/dist/shared/lit-tooltip.js +0 -166
  247. package/dist/shared/lit-tooltip.js.map +0 -1
  248. package/dist/shared/simple-popper.js +0 -266
  249. package/dist/shared/simple-popper.js.map +0 -1
  250. package/dist/shared/simple-tooltip.js.map +0 -1
  251. package/dist/shared/styles/button-shared-styles.js +0 -105
  252. package/dist/shared/styles/button-shared-styles.js.map +0 -1
  253. package/dist/styles.js +0 -169
  254. package/dist/styles.js.map +0 -1
  255. package/dist/utils/currency.js.map +0 -1
  256. package/dist/utils/custom-filters.js.map +0 -1
  257. package/dist/utils/date.js.map +0 -1
  258. package/dist/utils/getOperatorByType.js.map +0 -1
  259. package/dist/utils/getOverviewValue.js +0 -177
  260. package/dist/utils/getOverviewValue.js.map +0 -1
  261. package/dist/utils/localization.js.map +0 -1
  262. package/dist/utils/utils.js +0 -13
  263. package/dist/utils/utils.js.map +0 -1
  264. package/dist/utils/validate-json-schema.js +0 -8
  265. package/dist/utils/validate-json-schema.js.map +0 -1
  266. package/dist/validators/validator.js +0 -7
  267. package/dist/validators/validator.js.map +0 -1
@@ -1,706 +0,0 @@
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 { customElement, property, state } from 'lit/decorators.js';
8
- import { LitElement, html, css } from 'lit';
9
- import { msg } from '@lit/localize';
10
- import Sortable from 'sortablejs';
11
- import { isEmpty } from 'lodash';
12
- //components
13
- import '../shared/lit-checkbox.js';
14
- import '../shared/lit-menu.js';
15
- import '../shared/lit-menu-item.js';
16
- import '../shared/lit-icon.js';
17
- import '../shared/lit-icon-button.js';
18
- import '../shared/lit-overflow-tooltip.js';
19
- import '../shared/lit-input.js';
20
- let LitMultiselectItem = class LitMultiselectItem extends LitElement {
21
- constructor() {
22
- super(...arguments);
23
- this.value = [];
24
- this.options = [];
25
- this.label = '';
26
- this.rightLabel = '';
27
- this.allowRightSearch = false;
28
- this.allowSelectAll = false;
29
- this.showRightTotal = false;
30
- this.autoSearch = true;
31
- this.enableAssignmentsOrdering = true;
32
- this.onChange = (value) => { };
33
- this.filterText = '';
34
- this.filterTextRight = '';
35
- this.appliedFilterText = '';
36
- this.appliedFilterTextRight = '';
37
- this.selectedLeftKeys = [];
38
- this.selectedRightKeys = [];
39
- this.lastSelectedIndexLeft = null;
40
- this.lastSelectedIndexRight = null;
41
- this.sortableInstances = [];
42
- this.sortableGroupId = `group-${Math.random().toString(36).substring(2, 9)}`;
43
- }
44
- connectedCallback() {
45
- super.connectedCallback();
46
- }
47
- disconnectedCallback() {
48
- super.disconnectedCallback();
49
- this.destroySortables();
50
- }
51
- updated(changedProperties) {
52
- if (this.enableAssignmentsOrdering &&
53
- (changedProperties.has('value') || changedProperties.has('options'))) {
54
- this.initSortables();
55
- }
56
- }
57
- firstUpdated() {
58
- if (this.enableAssignmentsOrdering) {
59
- this.initSortables();
60
- }
61
- }
62
- destroySortables() {
63
- this.sortableInstances.forEach((s) => s.destroy());
64
- this.sortableInstances = [];
65
- }
66
- initSortables() {
67
- this.updateComplete.then(() => {
68
- this.destroySortables();
69
- const leftList = this.shadowRoot?.querySelector('#left-list');
70
- const rightList = this.shadowRoot?.querySelector('#right-list');
71
- if (!leftList || !rightList)
72
- return;
73
- let fromOriginalNodes = [];
74
- let toOriginalNodes = [];
75
- const commonOptions = {
76
- group: {
77
- name: this.sortableGroupId,
78
- pull: true,
79
- put: true,
80
- },
81
- animation: 150,
82
- handle: '.drag-handle',
83
- onStart: (evt) => {
84
- fromOriginalNodes = Array.from(evt.from.childNodes);
85
- },
86
- onMove: (evt) => {
87
- if (evt.to !== evt.from && toOriginalNodes.length === 0) {
88
- toOriginalNodes = Array.from(evt.to.childNodes);
89
- }
90
- },
91
- onEnd: (evt) => {
92
- if (evt.from && fromOriginalNodes.length > 0) {
93
- evt.from.innerHTML = '';
94
- fromOriginalNodes.forEach((node) => evt.from.appendChild(node));
95
- }
96
- if (evt.to && evt.to !== evt.from && toOriginalNodes.length > 0) {
97
- evt.to.innerHTML = '';
98
- toOriginalNodes.forEach((node) => evt.to.appendChild(node));
99
- }
100
- this.updateDataAfterDrag(evt);
101
- this.requestUpdate();
102
- },
103
- };
104
- const left = Sortable.create(leftList, commonOptions);
105
- const right = Sortable.create(rightList, commonOptions);
106
- this.sortableInstances.push(left, right);
107
- });
108
- }
109
- updateDataAfterDrag(evt) {
110
- const { from, to, oldIndex, newIndex } = evt;
111
- const fromSide = from.id === 'left-list' ? 'left' : 'right';
112
- const toSide = to.id === 'left-list' ? 'left' : 'right';
113
- const itemId = evt.item.getAttribute('id');
114
- const allItems = [...this.options, ...this.value];
115
- const draggedItem = allItems.find((item) => String(item.value) === itemId);
116
- if (!draggedItem)
117
- return;
118
- const selectedKeys = fromSide === 'left' ? this.selectedLeftKeys : this.selectedRightKeys;
119
- const isDraggedItemSelected = selectedKeys.includes(draggedItem.value);
120
- const itemsToMove = isDraggedItemSelected
121
- ? allItems.filter((item) => selectedKeys.includes(item.value))
122
- : [draggedItem];
123
- if (fromSide === toSide) {
124
- const items = fromSide === 'left' ? [...this.options] : [...this.value];
125
- if (isDraggedItemSelected) {
126
- const filteredItems = items.filter((item) => !selectedKeys.includes(item.value));
127
- filteredItems.splice(newIndex, 0, ...itemsToMove);
128
- if (fromSide === 'left') {
129
- this.options = filteredItems;
130
- }
131
- else {
132
- this.value = filteredItems;
133
- }
134
- }
135
- else {
136
- const [removed] = items.splice(oldIndex, 1);
137
- items.splice(newIndex, 0, removed);
138
- if (fromSide === 'left') {
139
- this.options = items;
140
- }
141
- else {
142
- this.value = items;
143
- }
144
- }
145
- }
146
- else {
147
- if (fromSide === 'left') {
148
- const newOptions = this.options.filter((item) => !itemsToMove.some((moveItem) => moveItem.value === item.value));
149
- const newValue = [...this.value];
150
- itemsToMove.forEach((item, index) => {
151
- if (!newValue.some((v) => v.value === item.value)) {
152
- newValue.splice(newIndex + index, 0, item);
153
- }
154
- });
155
- this.options = newOptions;
156
- this.value = newValue;
157
- }
158
- else {
159
- const newValue = this.value.filter((item) => !itemsToMove.some((moveItem) => moveItem.value === item.value));
160
- const newOptions = [...this.options];
161
- itemsToMove.forEach((item, index) => {
162
- if (!newOptions.some((o) => o.value === item.value)) {
163
- newOptions.splice(newIndex + index, 0, item);
164
- }
165
- });
166
- this.value = newValue;
167
- this.options = newOptions;
168
- }
169
- }
170
- this.onChange?.(this.value);
171
- // dispatch event onChange
172
- this.dispatchEvent(new CustomEvent('onChange', {
173
- detail: this.value,
174
- }));
175
- this.selectedLeftKeys = [];
176
- this.selectedRightKeys = [];
177
- }
178
- onInputChange(e, side) {
179
- const val = e.detail.toLowerCase();
180
- if (side === 'left') {
181
- this.filterText = val;
182
- if (this.autoSearch) {
183
- this.appliedFilterText = val;
184
- }
185
- }
186
- else {
187
- this.filterTextRight = val;
188
- if (this.autoSearch) {
189
- this.appliedFilterTextRight = val;
190
- }
191
- }
192
- }
193
- onInputKeyDown(e, side) {
194
- if (!this.autoSearch && e.key === 'Enter') {
195
- if (side === 'left') {
196
- this.appliedFilterText = this.filterText;
197
- }
198
- else {
199
- this.appliedFilterTextRight = this.filterTextRight;
200
- }
201
- }
202
- }
203
- getItemsForSide(side) {
204
- return side === 'left' ? this.options : (this.value ?? []);
205
- }
206
- getSelectedKeysForSide(side) {
207
- return side === 'left' ? this.selectedLeftKeys : this.selectedRightKeys;
208
- }
209
- toggleSelection(item, side, event) {
210
- const list = this.getItemsForSide(side);
211
- const selected = this.getSelectedKeysForSide(side);
212
- const clickedIndex = list.findIndex((i) => i.value === item.value);
213
- const isSelected = selected.includes(item.value);
214
- let newSelected = [...selected];
215
- if (event?.shiftKey) {
216
- const lastIndex = side === 'left' ? this.lastSelectedIndexLeft : this.lastSelectedIndexRight;
217
- if (lastIndex !== null) {
218
- const start = Math.min(lastIndex, clickedIndex);
219
- const end = Math.max(lastIndex, clickedIndex);
220
- const rangeItems = list.slice(start, end + 1).map((i) => i.value);
221
- newSelected = Array.from(new Set([...newSelected, ...rangeItems]));
222
- }
223
- }
224
- else {
225
- if (isSelected) {
226
- newSelected = selected.filter((val) => val !== item.value);
227
- }
228
- else {
229
- newSelected = [...selected, item.value];
230
- }
231
- }
232
- if (side === 'left') {
233
- this.selectedLeftKeys = newSelected;
234
- this.lastSelectedIndexLeft = clickedIndex;
235
- }
236
- else {
237
- this.selectedRightKeys = newSelected;
238
- this.lastSelectedIndexRight = clickedIndex;
239
- }
240
- }
241
- areAllSelected(side) {
242
- const items = this.getItemsForSide(side);
243
- const selected = this.getSelectedKeysForSide(side);
244
- return items.length > 0 && items.every((item) => selected.includes(item.value));
245
- }
246
- toggleSelectAll(side) {
247
- const items = this.getItemsForSide(side);
248
- const allValues = items.map((item) => item.value);
249
- if (this.areAllSelected(side)) {
250
- if (side === 'left') {
251
- this.selectedLeftKeys = [];
252
- }
253
- else {
254
- this.selectedRightKeys = [];
255
- }
256
- }
257
- else {
258
- if (side === 'left') {
259
- this.selectedLeftKeys = allValues;
260
- }
261
- else {
262
- this.selectedRightKeys = allValues;
263
- }
264
- }
265
- }
266
- moveSelected(from, to) {
267
- const fromItems = this.getItemsForSide(from);
268
- const fromSelected = this.getSelectedKeysForSide(from);
269
- const selectedItems = fromItems.filter((item) => fromSelected.includes(item.value));
270
- const toItems = this.getItemsForSide(to);
271
- const newToItems = [...toItems];
272
- selectedItems.forEach((item) => {
273
- if (!newToItems.some((i) => i.value === item.value)) {
274
- newToItems.push(item);
275
- }
276
- });
277
- const newFromItems = fromItems.filter((item) => !fromSelected.includes(item.value));
278
- if (from === 'left') {
279
- this.options = newFromItems;
280
- this.selectedLeftKeys = [];
281
- this.value = newToItems;
282
- }
283
- else {
284
- this.value = newFromItems;
285
- this.selectedRightKeys = [];
286
- this.options = newToItems;
287
- }
288
- this.onChange?.(this.value);
289
- // dispatch event onChange
290
- this.dispatchEvent(new CustomEvent('onChange', {
291
- detail: this.value,
292
- }));
293
- }
294
- moveSingle(item, from, to) {
295
- if (from === 'left') {
296
- this.options = this.options.filter((i) => i.value !== item.value);
297
- if (!(this.value ?? []).some((i) => i.value === item.value)) {
298
- this.value = [...(this.value ?? []), item];
299
- }
300
- this.selectedLeftKeys = this.selectedLeftKeys.filter((v) => v !== item.value);
301
- this.appliedFilterTextRight = '';
302
- }
303
- else {
304
- this.value = (this.value ?? []).filter((i) => i.value !== item.value);
305
- if (!this.options.some((i) => i.value === item.value)) {
306
- this.options = [...this.options, item];
307
- }
308
- this.selectedRightKeys = this.selectedRightKeys.filter((v) => v !== item.value);
309
- this.appliedFilterText = '';
310
- }
311
- this.onChange?.(this.value);
312
- // dispatch event onChange
313
- this.dispatchEvent(new CustomEvent('onChange', {
314
- detail: this.value,
315
- }));
316
- }
317
- render() {
318
- return html `<div class="container">
319
- <div class="wrapper">
320
- <label class="label">${this.label}</label>
321
- <div class="tab">
322
- <div class="input">
323
- <lit-input
324
- placeholder=${msg('Napr. fakturace...')}
325
- .onInput=${(val) => this.onInputChange(new CustomEvent('onInput', { detail: val }), 'left')}
326
- @keydown=${(e) => this.onInputKeyDown(e, 'left')}
327
- .onClear=${() => {
328
- this.filterText = '';
329
- this.appliedFilterText = '';
330
- }}
331
- .size="medium"
332
- ></lit-input>
333
- </div>
334
-
335
- <div class="content">
336
- <lit-menu tabindex="0" id="left-list">
337
- ${this.options
338
- .filter((item) => {
339
- const title = item.title.toLowerCase();
340
- const filter = this.appliedFilterText.toLowerCase();
341
- return title.includes(filter);
342
- })
343
- .map((item) => {
344
- const isSelected = this.selectedLeftKeys.includes(item.value);
345
- return html `
346
- <lit-menu-item
347
- class="no-select"
348
- .key="${item.value}"
349
- .id="${item.value}"
350
- @click=${(e) => this.toggleSelection(item, 'left', e)}
351
- .isSelected=${isSelected}
352
- >
353
- <div class="item">
354
- <div class="item-text">${item.title}</div>
355
-
356
- <div class="add-minus-icon">
357
- ${this.enableAssignmentsOrdering
358
- ? html `
359
- <div class="drag-handle">
360
- <lit-icon
361
- icon="hamburger"
362
- size="1rem"
363
- @click=${(e) => {
364
- e.stopPropagation();
365
- }}
366
- ></lit-icon>
367
- </div>
368
- `
369
- : null}
370
-
371
- <lit-icon
372
- .icon="${'add'}"
373
- size="1rem"
374
- @click=${(e) => {
375
- e.stopPropagation();
376
- this.moveSingle(item, 'left', 'right');
377
- }}
378
- ></lit-icon>
379
- </div>
380
- </div>
381
- </lit-menu-item>
382
- `;
383
- })}
384
- </lit-menu>
385
- </div>
386
-
387
- <div class="footer">
388
- <div class="checkbox">
389
- ${this.allowSelectAll
390
- ? html `
391
- <lit-checkbox
392
- .checked=${this.areAllSelected('left')}
393
- @click=${() => this.toggleSelectAll('left')}
394
- ></lit-checkbox>
395
- <label>${msg('Označit vše')}</label>
396
- `
397
- : null}
398
- </div>
399
-
400
- <div class="count">
401
- <label>${msg('celkem') + ':'}</label>
402
- <label>${this.options.length}</label>
403
- </div>
404
- </div>
405
- </div>
406
- </div>
407
- <div class="wrapper middle">
408
- <lit-icon-button
409
- .variant="${'text'}"
410
- .icon="${'add'}"
411
- @click=${() => this.moveSelected('left', 'right')}
412
- .disabled="${isEmpty(this.selectedLeftKeys)}"
413
- ></lit-icon-button>
414
- <lit-icon-button
415
- .variant="${'text'}"
416
- .icon="${'minus'}"
417
- @click=${() => this.moveSelected('right', 'left')}
418
- .disabled="${isEmpty(this.selectedRightKeys)}"
419
- ></lit-icon-button>
420
- </div>
421
- <div class="wrapper">
422
- <label class="label">${this.rightLabel}</label>
423
- <div class="tab">
424
- <div class="input">
425
- ${this.allowRightSearch
426
- ? html `
427
- <lit-input
428
- placeholder=${msg('Napr. fakturace...')}
429
- .onInput=${(val) => this.onInputChange(new CustomEvent('onInput', { detail: val }), 'right')}
430
- @keydown=${(e) => this.onInputKeyDown(e, 'right')}
431
- .onClear=${() => {
432
- this.filterTextRight = '';
433
- this.appliedFilterTextRight = '';
434
- }}
435
- .size="medium"
436
- ></lit-input>
437
- `
438
- : null}
439
- </div>
440
- <div class="content">
441
- <lit-menu tabindex="1" id="right-list">
442
- ${(this.value ?? [])
443
- .filter((item) => {
444
- const title = item.title.toLowerCase();
445
- const filter = this.appliedFilterTextRight.toLowerCase();
446
- return title.includes(filter);
447
- })
448
- .map((item) => {
449
- const isSelected = this.selectedRightKeys.includes(item.value);
450
- return html `
451
- <lit-menu-item
452
- class="no-select"
453
- .key="${item.value}"
454
- id="${item.value}"
455
- @click=${(e) => this.toggleSelection(item, 'right', e)}
456
- .isSelected=${isSelected}
457
- >
458
- <div class="item">
459
- <div class="item-text">${item.title}</div>
460
- <div class="add-minus-icon">
461
- ${this.enableAssignmentsOrdering
462
- ? html `
463
- <div class="drag-handle">
464
- <lit-icon
465
- icon="hamburger"
466
- size="1rem"
467
- @click=${(e) => {
468
- e.stopPropagation();
469
- }}
470
- ></lit-icon>
471
- </div>
472
- `
473
- : null}
474
- <lit-icon
475
- .icon="${'minus'}"
476
- size="1rem"
477
- @click=${(e) => {
478
- e.stopPropagation();
479
- this.moveSingle(item, 'right', 'left');
480
- }}
481
- ></lit-icon>
482
- </div>
483
- </div>
484
- </lit-menu-item>
485
- `;
486
- })}
487
- </lit-menu>
488
- </div>
489
- <div class="footer">
490
- <div class="checkbox">
491
- ${this.allowSelectAll
492
- ? html `
493
- <lit-checkbox
494
- .checked=${this.areAllSelected('right')}
495
- @click=${() => this.toggleSelectAll('right')}
496
- ></lit-checkbox>
497
- <label>${msg('Označit vše')}</label>
498
- `
499
- : null}
500
- </div>
501
-
502
- <div class="count">
503
- ${this.showRightTotal
504
- ? html `
505
- <label>${msg('celkem') + ':'}</label>
506
- <label>${this.value?.length ?? 0}</label>
507
- `
508
- : null}
509
- </div>
510
- </div>
511
- </div>
512
- </div>
513
- </div>`;
514
- }
515
- };
516
- LitMultiselectItem.styles = [
517
- css `
518
- @media (max-width: 600px) {
519
- .container {
520
- flex-direction: column;
521
- }
522
- .wrapper.middle {
523
- flex-direction: row !important;
524
- justify-content: center;
525
- height: auto !important;
526
- padding-top: 0 !important;
527
- }
528
- }
529
-
530
- .container {
531
- display: flex;
532
- justify-content: space-between;
533
- width: 100%;
534
- height: 100%;
535
- gap: 0.375rem;
536
- }
537
-
538
- .wrapper {
539
- display: flex;
540
- flex-direction: column;
541
- flex: 1 1 0;
542
- height: 100%;
543
- min-width: 0;
544
- min-height: 0;
545
- }
546
-
547
- .wrapper.middle {
548
- flex: 0 0 auto;
549
- flex-direction: column;
550
- padding-top: 2rem;
551
- gap: 0.5rem;
552
- align-items: center;
553
- }
554
-
555
- .label {
556
- font-weight: 500;
557
- font-size: 14px;
558
- color: var(--text-secondary, #5d6371);
559
- line-height: 1.5rem;
560
- padding-left: 0.875rem;
561
- margin-bottom: 0.375rem;
562
- }
563
-
564
- .tab {
565
- display: flex;
566
- flex-direction: column;
567
- height: 100%;
568
- border-radius: var(--border-radius-small, 0.5rem);
569
- border: 1px solid var(--border-primary, #d0d3db);
570
- padding: 0.5rem;
571
- gap: 0.5rem;
572
- min-height: 0;
573
- }
574
-
575
- .input {
576
- }
577
-
578
- .content {
579
- flex-grow: 1;
580
- overflow: auto;
581
- min-height: 0;
582
- }
583
-
584
- .footer {
585
- border-top: 1px solid var(--border-primary, #d0d3db);
586
- display: flex;
587
- justify-content: space-between;
588
- align-items: center;
589
- min-height: 2.375rem;
590
- }
591
-
592
- .footer.csv {
593
- justify-content: end;
594
- }
595
-
596
- .csv-icon {
597
- padding-right: 0.5rem;
598
- }
599
-
600
- .checkbox {
601
- display: flex;
602
- align-items: center;
603
- padding: 0.25rem 0.5rem;
604
- gap: 0.375rem;
605
- font-size: 12px;
606
- font-weight: 500;
607
- }
608
-
609
- .count {
610
- display: flex;
611
- align-items: center;
612
- padding: 0.25rem 0.5rem;
613
- gap: 0.375rem;
614
- font-size: 12px;
615
- font-weight: 400;
616
- }
617
-
618
- .item {
619
- display: flex;
620
- width: 100%;
621
- justify-content: space-between;
622
- align-items: center;
623
- }
624
-
625
- .item-text {
626
- overflow: hidden;
627
- white-space: nowrap;
628
- text-overflow: ellipsis;
629
- }
630
-
631
- .add-minus-icon {
632
- visibility: hidden;
633
- display: flex;
634
- align-items: center;
635
- gap: 0.5rem;
636
- }
637
-
638
- .item:hover .add-minus-icon {
639
- visibility: visible;
640
- }
641
-
642
- .no-select {
643
- user-select: none;
644
- min-height: 2rem;
645
- }
646
- `,
647
- ];
648
- __decorate([
649
- property({ type: Array })
650
- ], LitMultiselectItem.prototype, "value", void 0);
651
- __decorate([
652
- property({ type: Array })
653
- ], LitMultiselectItem.prototype, "options", void 0);
654
- __decorate([
655
- property({ type: String })
656
- ], LitMultiselectItem.prototype, "label", void 0);
657
- __decorate([
658
- property({ type: String })
659
- ], LitMultiselectItem.prototype, "rightLabel", void 0);
660
- __decorate([
661
- property({ type: Boolean })
662
- ], LitMultiselectItem.prototype, "allowRightSearch", void 0);
663
- __decorate([
664
- property({ type: Boolean })
665
- ], LitMultiselectItem.prototype, "allowSelectAll", void 0);
666
- __decorate([
667
- property({ type: Boolean })
668
- ], LitMultiselectItem.prototype, "showRightTotal", void 0);
669
- __decorate([
670
- property({ type: Boolean })
671
- ], LitMultiselectItem.prototype, "autoSearch", void 0);
672
- __decorate([
673
- property({ type: Boolean })
674
- ], LitMultiselectItem.prototype, "enableAssignmentsOrdering", void 0);
675
- __decorate([
676
- property({ type: Function })
677
- ], LitMultiselectItem.prototype, "onChange", void 0);
678
- __decorate([
679
- state()
680
- ], LitMultiselectItem.prototype, "filterText", void 0);
681
- __decorate([
682
- state()
683
- ], LitMultiselectItem.prototype, "filterTextRight", void 0);
684
- __decorate([
685
- state()
686
- ], LitMultiselectItem.prototype, "appliedFilterText", void 0);
687
- __decorate([
688
- state()
689
- ], LitMultiselectItem.prototype, "appliedFilterTextRight", void 0);
690
- __decorate([
691
- state()
692
- ], LitMultiselectItem.prototype, "selectedLeftKeys", void 0);
693
- __decorate([
694
- state()
695
- ], LitMultiselectItem.prototype, "selectedRightKeys", void 0);
696
- __decorate([
697
- state()
698
- ], LitMultiselectItem.prototype, "lastSelectedIndexLeft", void 0);
699
- __decorate([
700
- state()
701
- ], LitMultiselectItem.prototype, "lastSelectedIndexRight", void 0);
702
- LitMultiselectItem = __decorate([
703
- customElement('lit-multiselect-item')
704
- ], LitMultiselectItem);
705
- export { LitMultiselectItem };
706
- //# sourceMappingURL=lit-multiselect-item.js.map