overview-components 1.1.160 → 1.1.162

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 (244) hide show
  1. package/LICENSE +7 -0
  2. package/README.md +82 -0
  3. package/dist/assets/illustration/index.d.ts +7 -0
  4. package/dist/assets/illustration/index.d.ts.map +1 -0
  5. package/dist/index.d.ts +1 -0
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +22487 -7
  8. package/package.json +55 -21
  9. package/dist/assets/generated/locales/de.js +0 -269
  10. package/dist/assets/generated/locales/de.js.map +0 -1
  11. package/dist/assets/generated/locales/en.js +0 -269
  12. package/dist/assets/generated/locales/en.js.map +0 -1
  13. package/dist/assets/generated/locales/fr.js +0 -269
  14. package/dist/assets/generated/locales/fr.js.map +0 -1
  15. package/dist/assets/generated/locales/hr.js +0 -269
  16. package/dist/assets/generated/locales/hr.js.map +0 -1
  17. package/dist/assets/generated/locales/it.js +0 -269
  18. package/dist/assets/generated/locales/it.js.map +0 -1
  19. package/dist/assets/generated/locales/pl.js +0 -269
  20. package/dist/assets/generated/locales/pl.js.map +0 -1
  21. package/dist/assets/generated/locales/ro.js +0 -269
  22. package/dist/assets/generated/locales/ro.js.map +0 -1
  23. package/dist/assets/generated/locales/sk.js +0 -269
  24. package/dist/assets/generated/locales/sk.js.map +0 -1
  25. package/dist/assets/generated/locales/sr.js +0 -269
  26. package/dist/assets/generated/locales/sr.js.map +0 -1
  27. package/dist/assets/icons/iconGlyphs.js +0 -691
  28. package/dist/assets/icons/iconGlyphs.js.map +0 -1
  29. package/dist/assets/illustration/aichatbot-illustration.js +0 -144
  30. package/dist/assets/illustration/aichatbot-illustration.js.map +0 -1
  31. package/dist/assets/illustration/delete-illustration.js +0 -88
  32. package/dist/assets/illustration/delete-illustration.js.map +0 -1
  33. package/dist/assets/illustration/no-content.js +0 -159
  34. package/dist/assets/illustration/no-content.js.map +0 -1
  35. package/dist/assets/illustration/no-preview.js +0 -125
  36. package/dist/assets/illustration/no-preview.js.map +0 -1
  37. package/dist/assets/illustration/not-found.js +0 -98
  38. package/dist/assets/illustration/not-found.js.map +0 -1
  39. package/dist/assets/illustration/settings-illustration.js +0 -168
  40. package/dist/assets/illustration/settings-illustration.js.map +0 -1
  41. package/dist/components/components-settings/attachments-tab-settings.js +0 -318
  42. package/dist/components/components-settings/attachments-tab-settings.js.map +0 -1
  43. package/dist/components/components-settings/data-grid-settings.js +0 -553
  44. package/dist/components/components-settings/data-grid-settings.js.map +0 -1
  45. package/dist/components/components-settings/section-tab-settings.js +0 -719
  46. package/dist/components/components-settings/section-tab-settings.js.map +0 -1
  47. package/dist/components/components-settings/tabs-overview-settings.js +0 -421
  48. package/dist/components/components-settings/tabs-overview-settings.js.map +0 -1
  49. package/dist/components/index.js +0 -30
  50. package/dist/components/index.js.map +0 -1
  51. package/dist/components/lit-ai-filter-assistant.js +0 -443
  52. package/dist/components/lit-ai-filter-assistant.js.map +0 -1
  53. package/dist/components/lit-attachments-tab.js +0 -2044
  54. package/dist/components/lit-attachments-tab.js.map +0 -1
  55. package/dist/components/lit-badge.js +0 -124
  56. package/dist/components/lit-badge.js.map +0 -1
  57. package/dist/components/lit-case-variables-tab.js +0 -3718
  58. package/dist/components/lit-case-variables-tab.js.map +0 -1
  59. package/dist/components/lit-chart.js +0 -727
  60. package/dist/components/lit-chart.js.map +0 -1
  61. package/dist/components/lit-data-grid-tanstack.js +0 -2550
  62. package/dist/components/lit-data-grid-tanstack.js.map +0 -1
  63. package/dist/components/lit-filter-builder.js +0 -701
  64. package/dist/components/lit-filter-builder.js.map +0 -1
  65. package/dist/components/lit-filter-modal.js +0 -349
  66. package/dist/components/lit-filter-modal.js.map +0 -1
  67. package/dist/components/lit-multiselect-item.js +0 -707
  68. package/dist/components/lit-multiselect-item.js.map +0 -1
  69. package/dist/components/lit-section-tab.js +0 -268
  70. package/dist/components/lit-section-tab.js.map +0 -1
  71. package/dist/components/lit-tabs-overview.js +0 -356
  72. package/dist/components/lit-tabs-overview.js.map +0 -1
  73. package/dist/components/modals/lit-confirm-modal.js +0 -121
  74. package/dist/components/modals/lit-confirm-modal.js.map +0 -1
  75. package/dist/components/modals/lit-delete-modal.js +0 -131
  76. package/dist/components/modals/lit-delete-modal.js.map +0 -1
  77. package/dist/components/react-wrappers/ai-filter-assistant.js +0 -9
  78. package/dist/components/react-wrappers/ai-filter-assistant.js.map +0 -1
  79. package/dist/components/react-wrappers/attachments-tab.js +0 -9
  80. package/dist/components/react-wrappers/attachments-tab.js.map +0 -1
  81. package/dist/components/react-wrappers/badge.js +0 -9
  82. package/dist/components/react-wrappers/badge.js.map +0 -1
  83. package/dist/components/react-wrappers/button.js +0 -9
  84. package/dist/components/react-wrappers/button.js.map +0 -1
  85. package/dist/components/react-wrappers/calendar.js +0 -9
  86. package/dist/components/react-wrappers/calendar.js.map +0 -1
  87. package/dist/components/react-wrappers/case-variables-tab.js +0 -9
  88. package/dist/components/react-wrappers/case-variables-tab.js.map +0 -1
  89. package/dist/components/react-wrappers/chart.js +0 -9
  90. package/dist/components/react-wrappers/chart.js.map +0 -1
  91. package/dist/components/react-wrappers/data-grid-tanstack.js +0 -9
  92. package/dist/components/react-wrappers/data-grid-tanstack.js.map +0 -1
  93. package/dist/components/react-wrappers/filter-builder.js +0 -12
  94. package/dist/components/react-wrappers/filter-builder.js.map +0 -1
  95. package/dist/components/react-wrappers/filter-modal.js +0 -9
  96. package/dist/components/react-wrappers/filter-modal.js.map +0 -1
  97. package/dist/components/react-wrappers/index.js +0 -27
  98. package/dist/components/react-wrappers/index.js.map +0 -1
  99. package/dist/components/react-wrappers/progress-bar.js +0 -9
  100. package/dist/components/react-wrappers/progress-bar.js.map +0 -1
  101. package/dist/components/react-wrappers/section-tab.js +0 -9
  102. package/dist/components/react-wrappers/section-tab.js.map +0 -1
  103. package/dist/components/react-wrappers/tabs-overview.js +0 -9
  104. package/dist/components/react-wrappers/tabs-overview.js.map +0 -1
  105. package/dist/data/translations.js +0 -2768
  106. package/dist/data/translations.js.map +0 -1
  107. package/dist/index.js.map +0 -1
  108. package/dist/schemas/index.js +0 -18
  109. package/dist/schemas/index.js.map +0 -1
  110. package/dist/schemas/lit-attachments-tab-document.schema.js +0 -39
  111. package/dist/schemas/lit-attachments-tab-document.schema.js.map +0 -1
  112. package/dist/schemas/lit-attachments-tab-settings-value.schema.js +0 -30
  113. package/dist/schemas/lit-attachments-tab-settings-value.schema.js.map +0 -1
  114. package/dist/schemas/lit-attachments-tab.schema.js +0 -68
  115. package/dist/schemas/lit-attachments-tab.schema.js.map +0 -1
  116. package/dist/schemas/lit-case-variables-tab-cell.schema.js +0 -225
  117. package/dist/schemas/lit-case-variables-tab-cell.schema.js.map +0 -1
  118. package/dist/schemas/lit-case-variables-tab-rows.schema.js +0 -6
  119. package/dist/schemas/lit-case-variables-tab-rows.schema.js.map +0 -1
  120. package/dist/schemas/lit-case-variables-tab.schema.js +0 -27
  121. package/dist/schemas/lit-case-variables-tab.schema.js.map +0 -1
  122. package/dist/schemas/lit-data-grid-tanstack-column-array.schema.js +0 -6
  123. package/dist/schemas/lit-data-grid-tanstack-column-array.schema.js.map +0 -1
  124. package/dist/schemas/lit-data-grid-tanstack-column-custom-filter-array.schema.js +0 -6
  125. package/dist/schemas/lit-data-grid-tanstack-column-custom-filter-array.schema.js.map +0 -1
  126. package/dist/schemas/lit-data-grid-tanstack-column-custom-filter.schema.js +0 -11
  127. package/dist/schemas/lit-data-grid-tanstack-column-custom-filter.schema.js.map +0 -1
  128. package/dist/schemas/lit-data-grid-tanstack-column.schema.js +0 -79
  129. package/dist/schemas/lit-data-grid-tanstack-column.schema.js.map +0 -1
  130. package/dist/schemas/lit-data-grid-tanstack.schema.js +0 -108
  131. package/dist/schemas/lit-data-grid-tanstack.schema.js.map +0 -1
  132. package/dist/schemas/lit-filter-builder.schema.js +0 -61
  133. package/dist/schemas/lit-filter-builder.schema.js.map +0 -1
  134. package/dist/schemas/lit-section-tab-schema.js +0 -37
  135. package/dist/schemas/lit-section-tab-schema.js.map +0 -1
  136. package/dist/schemas/lit-tabs-overview-tab-array.schema.js +0 -6
  137. package/dist/schemas/lit-tabs-overview-tab-array.schema.js.map +0 -1
  138. package/dist/schemas/lit-tabs-overview-tab.schema.js +0 -32
  139. package/dist/schemas/lit-tabs-overview-tab.schema.js.map +0 -1
  140. package/dist/schemas/lit-tabs-overview.schema.js +0 -29
  141. package/dist/schemas/lit-tabs-overview.schema.js.map +0 -1
  142. package/dist/scripts/translate-locales.js +0 -241
  143. package/dist/scripts/translate-locales.js.map +0 -1
  144. package/dist/shared/filter-inputs.js +0 -429
  145. package/dist/shared/filter-inputs.js.map +0 -1
  146. package/dist/shared/index.js +0 -40
  147. package/dist/shared/index.js.map +0 -1
  148. package/dist/shared/lit-button.js +0 -159
  149. package/dist/shared/lit-button.js.map +0 -1
  150. package/dist/shared/lit-calendar.js +0 -485
  151. package/dist/shared/lit-calendar.js.map +0 -1
  152. package/dist/shared/lit-case-variables-tab-cell.js +0 -226
  153. package/dist/shared/lit-case-variables-tab-cell.js.map +0 -1
  154. package/dist/shared/lit-checkbox.js +0 -184
  155. package/dist/shared/lit-checkbox.js.map +0 -1
  156. package/dist/shared/lit-custom-popper.js +0 -116
  157. package/dist/shared/lit-custom-popper.js.map +0 -1
  158. package/dist/shared/lit-data-grid-action-buttons-popover.js +0 -295
  159. package/dist/shared/lit-data-grid-action-buttons-popover.js.map +0 -1
  160. package/dist/shared/lit-data-grid-density-popover.js +0 -84
  161. package/dist/shared/lit-data-grid-density-popover.js.map +0 -1
  162. package/dist/shared/lit-data-grid-export-popover.js +0 -68
  163. package/dist/shared/lit-data-grid-export-popover.js.map +0 -1
  164. package/dist/shared/lit-data-grid-operators-popover.js +0 -114
  165. package/dist/shared/lit-data-grid-operators-popover.js.map +0 -1
  166. package/dist/shared/lit-data-grid-row-actions.js +0 -87
  167. package/dist/shared/lit-data-grid-row-actions.js.map +0 -1
  168. package/dist/shared/lit-date-picker.js +0 -608
  169. package/dist/shared/lit-date-picker.js.map +0 -1
  170. package/dist/shared/lit-document-thumbnail.js +0 -383
  171. package/dist/shared/lit-document-thumbnail.js.map +0 -1
  172. package/dist/shared/lit-filter-input.js +0 -115
  173. package/dist/shared/lit-filter-input.js.map +0 -1
  174. package/dist/shared/lit-icon-button.js +0 -165
  175. package/dist/shared/lit-icon-button.js.map +0 -1
  176. package/dist/shared/lit-icon.js +0 -337
  177. package/dist/shared/lit-icon.js.map +0 -1
  178. package/dist/shared/lit-input.js +0 -282
  179. package/dist/shared/lit-input.js.map +0 -1
  180. package/dist/shared/lit-label.js +0 -103
  181. package/dist/shared/lit-label.js.map +0 -1
  182. package/dist/shared/lit-loader.js +0 -68
  183. package/dist/shared/lit-loader.js.map +0 -1
  184. package/dist/shared/lit-loading-bar.js +0 -91
  185. package/dist/shared/lit-loading-bar.js.map +0 -1
  186. package/dist/shared/lit-menu-item.js +0 -98
  187. package/dist/shared/lit-menu-item.js.map +0 -1
  188. package/dist/shared/lit-menu.js +0 -29
  189. package/dist/shared/lit-menu.js.map +0 -1
  190. package/dist/shared/lit-modal-body.js +0 -24
  191. package/dist/shared/lit-modal-body.js.map +0 -1
  192. package/dist/shared/lit-modal-footer.js +0 -21
  193. package/dist/shared/lit-modal-footer.js.map +0 -1
  194. package/dist/shared/lit-modal-header.js +0 -34
  195. package/dist/shared/lit-modal-header.js.map +0 -1
  196. package/dist/shared/lit-modal.js +0 -168
  197. package/dist/shared/lit-modal.js.map +0 -1
  198. package/dist/shared/lit-overflow-tooltip.js +0 -114
  199. package/dist/shared/lit-overflow-tooltip.js.map +0 -1
  200. package/dist/shared/lit-pill.js +0 -87
  201. package/dist/shared/lit-pill.js.map +0 -1
  202. package/dist/shared/lit-progress-bar.js +0 -130
  203. package/dist/shared/lit-progress-bar.js.map +0 -1
  204. package/dist/shared/lit-responsive-button.js +0 -106
  205. package/dist/shared/lit-responsive-button.js.map +0 -1
  206. package/dist/shared/lit-select-field.js +0 -457
  207. package/dist/shared/lit-select-field.js.map +0 -1
  208. package/dist/shared/lit-select.js +0 -668
  209. package/dist/shared/lit-select.js.map +0 -1
  210. package/dist/shared/lit-settings.js +0 -76
  211. package/dist/shared/lit-settings.js.map +0 -1
  212. package/dist/shared/lit-text-field.js +0 -252
  213. package/dist/shared/lit-text-field.js.map +0 -1
  214. package/dist/shared/lit-toggle.js +0 -240
  215. package/dist/shared/lit-toggle.js.map +0 -1
  216. package/dist/shared/lit-tooltip.js +0 -165
  217. package/dist/shared/lit-tooltip.js.map +0 -1
  218. package/dist/shared/simple-popper.js +0 -285
  219. package/dist/shared/simple-popper.js.map +0 -1
  220. package/dist/shared/simple-tooltip.js +0 -249
  221. package/dist/shared/simple-tooltip.js.map +0 -1
  222. package/dist/shared/styles/button-shared-styles.js +0 -494
  223. package/dist/shared/styles/button-shared-styles.js.map +0 -1
  224. package/dist/styles.js +0 -169
  225. package/dist/styles.js.map +0 -1
  226. package/dist/utils/custom-filters.js +0 -42
  227. package/dist/utils/custom-filters.js.map +0 -1
  228. package/dist/utils/date.js +0 -21
  229. package/dist/utils/date.js.map +0 -1
  230. package/dist/utils/file-type-utils.js +0 -55
  231. package/dist/utils/file-type-utils.js.map +0 -1
  232. package/dist/utils/formatNumber.js +0 -62
  233. package/dist/utils/formatNumber.js.map +0 -1
  234. package/dist/utils/getOperatorByType.js +0 -70
  235. package/dist/utils/getOperatorByType.js.map +0 -1
  236. package/dist/utils/getOverviewValue.js +0 -175
  237. package/dist/utils/getOverviewValue.js.map +0 -1
  238. package/dist/utils/localization.js +0 -433
  239. package/dist/utils/localization.js.map +0 -1
  240. package/dist/utils/pdf-thumbnail-generator.js +0 -91
  241. package/dist/utils/pdf-thumbnail-generator.js.map +0 -1
  242. package/dist/utils/utils.js +0 -94
  243. package/dist/utils/utils.js.map +0 -1
  244. package/dist/vite.svg +0 -1
@@ -1,727 +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 { property } from 'lit/decorators.js';
8
- import { html, css, LitElement } from 'lit';
9
- import { msg } from '@lit/localize';
10
- import { Chart, registerables } from 'chart.js';
11
- import '../shared/lit-loader.js';
12
- Chart.register(...registerables);
13
- export class LitChart extends LitElement {
14
- constructor() {
15
- super(...arguments);
16
- this.type = 'bar';
17
- this.data = { labels: [], datasets: [], title: '' };
18
- this.isLoading = false;
19
- this.colorPalette = 'modern';
20
- this.useGradients = true;
21
- this.showLegend = true;
22
- this.chart = null;
23
- // Modern color palettes
24
- this.colorPalettes = {
25
- modern: [
26
- '#6366f1', // Indigo
27
- '#8b5cf6', // Purple
28
- '#ec4899', // Pink
29
- '#f43f5e', // Rose
30
- '#f97316', // Orange
31
- '#eab308', // Yellow
32
- '#22c55e', // Green
33
- '#14b8a6', // Teal
34
- '#06b6d4', // Cyan
35
- '#3b82f6', // Blue
36
- ],
37
- vibrant: [
38
- '#ff6b6b', // Red
39
- '#4ecdc4', // Turquoise
40
- '#45b7d1', // Sky Blue
41
- '#f9ca24', // Yellow
42
- '#6c5ce7', // Purple
43
- '#fd79a8', // Pink
44
- '#00b894', // Green
45
- '#fdcb6e', // Light Orange
46
- '#e17055', // Orange
47
- '#74b9ff', // Light Blue
48
- ],
49
- pastel: [
50
- '#a8dadc', // Pale Blue
51
- '#f1faee', // Cream
52
- '#e9c46a', // Sand
53
- '#f4a261', // Peach
54
- '#e76f51', // Coral
55
- '#264653', // Dark Blue
56
- '#2a9d8f', // Teal
57
- '#e9d8a6', // Light Yellow
58
- '#ee9b00', // Orange
59
- '#ca6702', // Dark Orange
60
- ],
61
- ocean: [
62
- '#0077b6', // Ocean Blue
63
- '#00b4d8', // Sky Blue
64
- '#90e0ef', // Light Blue
65
- '#caf0f8', // Pale Blue
66
- '#023e8a', // Deep Blue
67
- '#48cae4', // Cyan
68
- '#ade8f4', // Light Cyan
69
- '#0096c7', // Blue
70
- '#00b4d8', // Bright Blue
71
- '#90e0ef', // Light Blue
72
- ],
73
- };
74
- }
75
- disconnectedCallback() {
76
- super.disconnectedCallback();
77
- // Clean up chart when component is removed
78
- if (this.chart) {
79
- this.chart.destroy();
80
- this.chart = null;
81
- }
82
- }
83
- getPrimaryColor() {
84
- // Get CSS variable from document root
85
- const cssVar = getComputedStyle(document.documentElement)
86
- .getPropertyValue('--color-primary-main')
87
- .trim();
88
- return cssVar || '#6366f1'; // Fallback if CSS variable is not defined
89
- }
90
- updated(changedProperties) {
91
- if (changedProperties.has('type') ||
92
- changedProperties.has('data') ||
93
- changedProperties.has('colorPalette') ||
94
- changedProperties.has('useGradients') ||
95
- changedProperties.has('showLegend')) {
96
- this.renderChart();
97
- }
98
- }
99
- hexToHSL(hex) {
100
- // Remove # if present
101
- hex = hex.replace('#', '');
102
- // Convert hex to RGB
103
- const r = parseInt(hex.substring(0, 2), 16) / 255;
104
- const g = parseInt(hex.substring(2, 4), 16) / 255;
105
- const b = parseInt(hex.substring(4, 6), 16) / 255;
106
- const max = Math.max(r, g, b);
107
- const min = Math.min(r, g, b);
108
- let h = 0, s = 0;
109
- const l = (max + min) / 2;
110
- if (max !== min) {
111
- const d = max - min;
112
- s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
113
- switch (max) {
114
- case r:
115
- h = ((g - b) / d + (g < b ? 6 : 0)) / 6;
116
- break;
117
- case g:
118
- h = ((b - r) / d + 2) / 6;
119
- break;
120
- case b:
121
- h = ((r - g) / d + 4) / 6;
122
- break;
123
- }
124
- }
125
- return { h: h * 360, s: s * 100, l: l * 100 };
126
- }
127
- hslToHex(h, s, l) {
128
- h = h / 360;
129
- s = s / 100;
130
- l = l / 100;
131
- let r, g, b;
132
- if (s === 0) {
133
- r = g = b = l;
134
- }
135
- else {
136
- const hue2rgb = (p, q, t) => {
137
- if (t < 0)
138
- t += 1;
139
- if (t > 1)
140
- t -= 1;
141
- if (t < 1 / 6)
142
- return p + (q - p) * 6 * t;
143
- if (t < 1 / 2)
144
- return q;
145
- if (t < 2 / 3)
146
- return p + (q - p) * (2 / 3 - t) * 6;
147
- return p;
148
- };
149
- const q = l < 0.5 ? l * (1 + s) : l + s - l * s;
150
- const p = 2 * l - q;
151
- r = hue2rgb(p, q, h + 1 / 3);
152
- g = hue2rgb(p, q, h);
153
- b = hue2rgb(p, q, h - 1 / 3);
154
- }
155
- const toHex = (x) => {
156
- const hex = Math.round(x * 255).toString(16);
157
- return hex.length === 1 ? '0' + hex : hex;
158
- };
159
- return `#${toHex(r)}${toHex(g)}${toHex(b)}`;
160
- }
161
- generatePrimaryColorPalette(baseColor, numColors) {
162
- const hsl = this.hexToHSL(baseColor);
163
- const colors = [];
164
- for (let i = 0; i < numColors; i++) {
165
- // Create variations by adjusting hue and lightness
166
- const hueShift = (i * 30) % 360; // Shift hue for variety
167
- const newHue = (hsl.h + hueShift) % 360;
168
- const lightnessVariation = 50 + (i % 3) * 15; // Vary lightness
169
- const saturationVariation = Math.max(40, Math.min(90, hsl.s + (i % 2) * 20));
170
- colors.push(this.hslToHex(newHue, saturationVariation, lightnessVariation));
171
- }
172
- return colors;
173
- }
174
- generateColors(numColors) {
175
- if (this.colorPalette === 'primary') {
176
- return this.generatePrimaryColorPalette(this.getPrimaryColor(), numColors);
177
- }
178
- const palette = this.colorPalettes[this.colorPalette];
179
- return Array.from({ length: numColors }, (_, i) => palette[i % palette.length]);
180
- }
181
- createGradient(ctx, color, chartArea, isHorizontal = false) {
182
- const gradient = isHorizontal
183
- ? ctx.createLinearGradient(chartArea.left, 0, chartArea.right, 0)
184
- : ctx.createLinearGradient(0, chartArea.top, 0, chartArea.bottom);
185
- // Convert hex to rgba and create gradient
186
- const r = parseInt(color.slice(1, 3), 16);
187
- const g = parseInt(color.slice(3, 5), 16);
188
- const b = parseInt(color.slice(5, 7), 16);
189
- gradient.addColorStop(0, `rgba(${r}, ${g}, ${b}, 0.8)`);
190
- gradient.addColorStop(0.5, `rgba(${r}, ${g}, ${b}, 0.6)`);
191
- gradient.addColorStop(1, `rgba(${r}, ${g}, ${b}, 0.3)`);
192
- return gradient;
193
- }
194
- createRadialGradient(ctx, color, chartArea) {
195
- const centerX = (chartArea.left + chartArea.right) / 2;
196
- const centerY = (chartArea.top + chartArea.bottom) / 2;
197
- const radius = Math.min((chartArea.right - chartArea.left) / 2, (chartArea.bottom - chartArea.top) / 2);
198
- const gradient = ctx.createRadialGradient(centerX, centerY, 0, centerX, centerY, radius);
199
- // Convert hex to rgba and create radial gradient
200
- const r = parseInt(color.slice(1, 3), 16);
201
- const g = parseInt(color.slice(3, 5), 16);
202
- const b = parseInt(color.slice(5, 7), 16);
203
- gradient.addColorStop(0, `rgba(${r}, ${g}, ${b}, 1)`);
204
- gradient.addColorStop(0.5, `rgba(${r}, ${g}, ${b}, 0.8)`);
205
- gradient.addColorStop(1, `rgba(${r}, ${g}, ${b}, 0.6)`);
206
- return gradient;
207
- }
208
- renderChart() {
209
- const canvas = this.shadowRoot?.querySelector('canvas');
210
- if (!canvas)
211
- return;
212
- if (this.type === 'bar' || this.type === 'line') {
213
- this.renderBarAndLineChart(canvas);
214
- }
215
- else if (this.type === 'bubble') {
216
- this.renderBubbleChart(canvas);
217
- }
218
- else if (this.type === 'pie' || this.type === 'doughnut') {
219
- this.renderPieAndDoughnutChart(canvas);
220
- }
221
- else if (this.type === 'gantt') {
222
- this.renderGanttChart(canvas);
223
- }
224
- }
225
- renderGanttChart(canvas) {
226
- if (this.chart)
227
- this.chart.destroy();
228
- const colors = this.generateColors(this.data.datasets[0]?.data.length || 0);
229
- const datasetsWithColors = this.data.datasets.map((dataset, index) => ({
230
- label: dataset.label || `Dataset ${index + 1}`,
231
- data: dataset.data.map((entry) => {
232
- const startDate = new Date(entry.x[0]);
233
- const endDate = new Date(entry.x[1]);
234
- return {
235
- x: [
236
- isNaN(startDate.getTime()) ? Date.now() : startDate.getTime(),
237
- isNaN(endDate.getTime()) ? Date.now() : endDate.getTime(),
238
- ],
239
- y: entry.y,
240
- };
241
- }),
242
- backgroundColor: colors,
243
- borderColor: colors.map((color) => color),
244
- borderWidth: 0,
245
- barThickness: 20,
246
- borderRadius: 8,
247
- borderSkipped: false,
248
- }));
249
- const allDates = this.data.datasets.flatMap((dataset) => dataset.data.flatMap((entry) => [
250
- new Date(entry?.x?.[0]).getTime(),
251
- new Date(entry?.x?.[1]).getTime(),
252
- ]));
253
- const minDate = Math.min(...allDates);
254
- const maxDate = Math.max(...allDates);
255
- // Vypočítanie stepSize pre 20 hodnôt na osi X
256
- const dateDifference = maxDate - minDate;
257
- const desiredTicks = 20; // Počet požadovaných hodnôt na osi X
258
- const stepSize = dateDifference / desiredTicks; // Vypočítanie stepSize
259
- this.chart = new Chart(canvas, {
260
- type: 'bar',
261
- data: {
262
- datasets: datasetsWithColors,
263
- },
264
- options: {
265
- animation: false,
266
- indexAxis: 'y',
267
- responsive: true,
268
- maintainAspectRatio: false,
269
- scales: {
270
- x: {
271
- type: 'linear',
272
- ticks: {
273
- stepSize: stepSize, // 30 dní v milisekundách
274
- autoSkip: false,
275
- callback: (value) => {
276
- return new Date(value).toLocaleDateString('sk-SK', {
277
- day: '2-digit',
278
- month: '2-digit',
279
- year: 'numeric',
280
- });
281
- },
282
- },
283
- min: minDate,
284
- max: maxDate,
285
- title: {
286
- display: !!this.data.xAxisLabel,
287
- text: this.data.xAxisLabel || '',
288
- font: {
289
- size: 11,
290
- weight: 400,
291
- },
292
- color: 'var(--text-secondary, #111827)',
293
- },
294
- },
295
- y: {
296
- type: 'category',
297
- title: {
298
- display: !!this.data.yAxisLabel,
299
- text: this.data.yAxisLabel || '',
300
- font: {
301
- size: 11,
302
- weight: 400,
303
- },
304
- color: 'var(--text-secondary, #111827)',
305
- },
306
- },
307
- },
308
- plugins: {
309
- tooltip: {
310
- callbacks: {
311
- label: function (context) {
312
- const start = new Date(context.raw.x[0]).toLocaleDateString('sk-SK', {
313
- day: '2-digit',
314
- month: '2-digit',
315
- year: 'numeric',
316
- });
317
- const end = new Date(context.raw.x[1]).toLocaleDateString('sk-SK', {
318
- day: '2-digit',
319
- month: '2-digit',
320
- year: 'numeric',
321
- });
322
- return `\u00A0\u00A0${msg('Začátek')}: ${start}, ${msg('Konec')}: ${end}`;
323
- },
324
- },
325
- bodyFont: {
326
- size: 13,
327
- weight: 400,
328
- },
329
- displayColors: true,
330
- usePointStyle: true,
331
- backgroundColor: 'black',
332
- cornerRadius: 8,
333
- },
334
- legend: {
335
- display: this.showLegend,
336
- position: 'top',
337
- labels: {
338
- usePointStyle: true,
339
- pointStyle: 'circle',
340
- font: {
341
- size: 13,
342
- weight: 500,
343
- },
344
- },
345
- },
346
- title: {
347
- display: !!this.data.title,
348
- text: this.data.title, // Text, ktorý sa zobrazí nad grafom
349
- font: {
350
- size: 17,
351
- weight: 500,
352
- },
353
- color: 'var(--text-primary, #111827)',
354
- padding: {
355
- top: 10,
356
- bottom: 20,
357
- },
358
- },
359
- },
360
- onHover: (event, chartElement) => {
361
- const target = event.native?.target;
362
- target.style.cursor = chartElement.length ? 'pointer' : 'default';
363
- },
364
- },
365
- });
366
- }
367
- renderPieAndDoughnutChart(canvas) {
368
- if (this.chart)
369
- this.chart.destroy();
370
- const colors = this.generateColors(this.data.datasets[0]?.data.length || 0);
371
- const datasetsWithColors = this.data.datasets.map((dataset) => ({
372
- ...dataset,
373
- backgroundColor: this.useGradients
374
- ? (context) => {
375
- const chart = context.chart;
376
- const { ctx, chartArea } = chart;
377
- if (!chartArea)
378
- return colors[context.dataIndex] || colors[0];
379
- return this.createRadialGradient(ctx, colors[context.dataIndex] || colors[0], chartArea);
380
- }
381
- : colors,
382
- borderColor: '#ffffff',
383
- borderWidth: 3,
384
- hoverBorderWidth: 4,
385
- hoverOffset: 8,
386
- }));
387
- this.chart = new Chart(canvas, {
388
- type: this.type,
389
- data: {
390
- labels: this.data.labels,
391
- datasets: datasetsWithColors,
392
- },
393
- options: {
394
- animation: false,
395
- responsive: true,
396
- maintainAspectRatio: false,
397
- plugins: {
398
- legend: {
399
- display: this.showLegend,
400
- position: 'top',
401
- labels: {
402
- usePointStyle: true,
403
- pointStyle: 'circle',
404
- font: {
405
- size: 13,
406
- weight: 500,
407
- },
408
- },
409
- },
410
- tooltip: {
411
- callbacks: {
412
- title: () => '',
413
- label: (tooltipItem) => {
414
- const value = tooltipItem.raw || 0;
415
- return `\u00A0\u00A0${tooltipItem.label}: ${tooltipItem.raw}`;
416
- },
417
- },
418
- bodyFont: {
419
- size: 13,
420
- weight: 400,
421
- },
422
- displayColors: true,
423
- usePointStyle: true, // Použitie kruhového symbolu
424
- xAlign: 'center',
425
- yAlign: 'bottom',
426
- padding: 16,
427
- backgroundColor: 'black',
428
- cornerRadius: 8,
429
- },
430
- title: {
431
- display: !!this.data.title,
432
- text: this.data.title, // Text, ktorý sa zobrazí nad grafom
433
- font: {
434
- size: 17,
435
- weight: 500,
436
- },
437
- color: 'var(--text-primary, #111827)',
438
- padding: {
439
- top: 10,
440
- bottom: 20,
441
- },
442
- },
443
- },
444
- ...(this.type === 'doughnut' && {
445
- cutout: '70%',
446
- }),
447
- onHover: (event, chartElement) => {
448
- const target = event.native?.target;
449
- if (chartElement.length) {
450
- target.style.cursor = 'pointer'; // Zmena kurzora na ruku
451
- }
452
- else {
453
- target.style.cursor = 'default';
454
- }
455
- },
456
- },
457
- });
458
- }
459
- renderBubbleChart(canvas) {
460
- if (this.chart)
461
- this.chart.destroy();
462
- const colors = this.generateColors(this.data.datasets.length);
463
- const datasets = this.data.datasets.map((dataset, index) => ({
464
- ...dataset,
465
- backgroundColor: this.useGradients
466
- ? (context) => {
467
- const chart = context.chart;
468
- const { ctx, chartArea } = chart;
469
- if (!chartArea)
470
- return colors[index];
471
- return this.createGradient(ctx, colors[index], chartArea, false);
472
- }
473
- : colors[index],
474
- borderColor: colors[index],
475
- borderWidth: 2,
476
- hoverRadius: 12,
477
- pointBorderWidth: 2,
478
- }));
479
- this.chart = new Chart(canvas, {
480
- type: 'bubble',
481
- data: { datasets },
482
- options: {
483
- animation: false,
484
- responsive: true,
485
- scales: {
486
- x: {
487
- beginAtZero: true,
488
- title: {
489
- display: !!this.data.xAxisLabel,
490
- text: this.data.xAxisLabel || '',
491
- font: {
492
- size: 11,
493
- weight: 400,
494
- },
495
- color: 'var(--text-secondary, #111827)',
496
- },
497
- },
498
- y: {
499
- beginAtZero: true,
500
- title: {
501
- display: !!this.data.yAxisLabel,
502
- text: this.data.yAxisLabel || '',
503
- font: {
504
- size: 11,
505
- weight: 400,
506
- },
507
- color: 'var(--text-secondary, #111827)',
508
- },
509
- },
510
- },
511
- plugins: {
512
- legend: {
513
- display: this.showLegend,
514
- position: 'top',
515
- labels: {
516
- usePointStyle: true, // Použitie kruhového symbolu
517
- pointStyle: 'circle', // Špecifický tvar pre symbol v legende
518
- font: {
519
- size: 13,
520
- weight: 500,
521
- },
522
- },
523
- },
524
- tooltip: {
525
- callbacks: {
526
- label: (tooltipItem) => {
527
- const dataPoint = tooltipItem.raw;
528
- return `\u00A0\u00A0x: ${dataPoint.x}, y: ${dataPoint.y}, r: ${dataPoint.r}`;
529
- },
530
- },
531
- bodyFont: {
532
- size: 13,
533
- weight: 400,
534
- },
535
- displayColors: true,
536
- usePointStyle: true, // Použitie kruhového symbolu
537
- xAlign: 'center',
538
- yAlign: 'bottom',
539
- padding: 16,
540
- backgroundColor: 'black',
541
- cornerRadius: 8,
542
- },
543
- title: {
544
- display: !!this.data.title,
545
- text: this.data.title, // Text, ktorý sa zobrazí nad grafom
546
- font: {
547
- size: 17,
548
- weight: 500,
549
- },
550
- color: 'var(--text-primary, #111827)',
551
- padding: {
552
- top: 10,
553
- bottom: 20,
554
- },
555
- },
556
- },
557
- onHover: (event, chartElement) => {
558
- const target = event.native?.target;
559
- if (chartElement.length) {
560
- target.style.cursor = 'pointer'; // Zmena kurzora na ruku
561
- }
562
- else {
563
- target.style.cursor = 'default';
564
- }
565
- },
566
- },
567
- });
568
- }
569
- renderBarAndLineChart(canvas) {
570
- if (this.chart)
571
- this.chart.destroy();
572
- const colors = this.generateColors(this.data.datasets.length);
573
- const datasetsWithColors = this.data.datasets.map((dataset, index) => ({
574
- ...dataset,
575
- backgroundColor: this.useGradients
576
- ? (context) => {
577
- const chart = context.chart;
578
- const { ctx, chartArea } = chart;
579
- if (!chartArea)
580
- return colors[index];
581
- return this.createGradient(ctx, colors[index], chartArea, false);
582
- }
583
- : colors[index],
584
- borderColor: colors[index],
585
- borderWidth: 2,
586
- ...(this.type === 'bar' ? { borderRadius: 8, borderSkipped: false } : {}),
587
- ...(this.type === 'line'
588
- ? {
589
- pointStyle: 'circle',
590
- pointRadius: 4,
591
- pointBorderWidth: 2,
592
- pointBorderColor: colors[index],
593
- pointBackgroundColor: '#fff',
594
- tension: 0.4,
595
- fill: true,
596
- }
597
- : {}),
598
- }));
599
- this.chart = new Chart(canvas, {
600
- type: this.type,
601
- data: {
602
- labels: this.data.labels,
603
- datasets: datasetsWithColors,
604
- },
605
- options: {
606
- animation: false,
607
- responsive: true,
608
- maintainAspectRatio: false,
609
- scales: {
610
- x: {
611
- title: {
612
- display: !!this.data.xAxisLabel,
613
- text: this.data.xAxisLabel || '',
614
- font: {
615
- size: 11,
616
- weight: 400,
617
- },
618
- color: 'var(--text-secondary, #111827)',
619
- },
620
- },
621
- y: {
622
- title: {
623
- display: !!this.data.yAxisLabel,
624
- text: this.data.yAxisLabel || '',
625
- font: {
626
- size: 11,
627
- weight: 400,
628
- },
629
- color: 'var(--text-secondary, #111827)',
630
- },
631
- },
632
- },
633
- plugins: {
634
- legend: {
635
- display: this.showLegend,
636
- position: 'top',
637
- labels: {
638
- usePointStyle: true, // Použitie kruhového symbolu
639
- pointStyle: 'circle', // Špecifický tvar pre symbol v legende
640
- font: {
641
- size: 13,
642
- weight: 500,
643
- },
644
- },
645
- },
646
- tooltip: {
647
- callbacks: {
648
- title: () => '',
649
- label: (tooltipItem) => {
650
- const value = tooltipItem.raw || 0;
651
- return `\u00A0\u00A0${tooltipItem.label}: ${tooltipItem.raw}`;
652
- },
653
- },
654
- bodyFont: {
655
- size: 13,
656
- weight: 400,
657
- },
658
- displayColors: true,
659
- usePointStyle: true, // Použitie kruhového symbolu
660
- xAlign: 'center',
661
- yAlign: 'bottom',
662
- padding: 16,
663
- backgroundColor: 'black',
664
- cornerRadius: 8,
665
- },
666
- title: {
667
- display: !!this.data.title,
668
- text: this.data.title, // Text, ktorý sa zobrazí nad grafom
669
- font: {
670
- size: 17,
671
- weight: 500,
672
- },
673
- color: 'var(--text-primary, #111827)',
674
- padding: {
675
- top: 10,
676
- bottom: 20,
677
- },
678
- },
679
- },
680
- onHover: (event, chartElement) => {
681
- const target = event.native?.target;
682
- if (chartElement.length) {
683
- target.style.cursor = 'pointer'; // Zmena kurzora na ruku
684
- }
685
- else {
686
- target.style.cursor = 'default';
687
- }
688
- },
689
- },
690
- });
691
- }
692
- render() {
693
- return html `${this.isLoading ? html `<lit-loader></lit-loader>` : html `<canvas></canvas>`}`;
694
- }
695
- }
696
- LitChart.styles = [
697
- css `
698
- canvas {
699
- width: 100%;
700
- height: 100%;
701
- font-family: 'Inter', sans-serif;
702
- margin: 0 auto;
703
- }
704
- `,
705
- ];
706
- __decorate([
707
- property({ type: String })
708
- ], LitChart.prototype, "type", void 0);
709
- __decorate([
710
- property({ type: Array })
711
- ], LitChart.prototype, "data", void 0);
712
- __decorate([
713
- property({ type: Boolean })
714
- ], LitChart.prototype, "isLoading", void 0);
715
- __decorate([
716
- property({ type: String })
717
- ], LitChart.prototype, "colorPalette", void 0);
718
- __decorate([
719
- property({ type: Boolean })
720
- ], LitChart.prototype, "useGradients", void 0);
721
- __decorate([
722
- property({ type: Boolean })
723
- ], LitChart.prototype, "showLegend", void 0);
724
- if (!window.customElements.get('lit-chart')) {
725
- window.customElements.define('lit-chart', LitChart);
726
- }
727
- //# sourceMappingURL=lit-chart.js.map