overview-components 1.0.65 → 1.0.67

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