@milaboratories/uikit 2.8.6 → 2.8.7

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.
@@ -1,6 +1,6 @@
1
1
   WARN  Issue while reading "/home/runner/_work/platforma/platforma/.npmrc". Failed to replace env in config: ${NPMJS_TOKEN}
2
2
 
3
- > @milaboratories/uikit@2.8.6 build /home/runner/_work/platforma/platforma/lib/ui/uikit
3
+ > @milaboratories/uikit@2.8.7 build /home/runner/_work/platforma/platforma/lib/ui/uikit
4
4
  > ts-builder build --target browser-lib --build-config ./build.browser-lib.config.js
5
5
 
6
6
  Building browser-lib project...
@@ -14,7 +14,7 @@ Using custom config: ./build.browser-lib.config.js
14
14
     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
15
15
 
16
16
  transforming...
17
- ✓ 736 modules transformed.
17
+ ✓ 737 modules transformed.
18
18
  rendering chunks...
19
19
 
20
20
  [vite:dts] Start generate declaration files...
@@ -24,73 +24,73 @@ computing gzip size...
24
24
  dist/layout/PlRow/PlRow.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
25
25
  dist/components/PlFileDialog/Local.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
26
26
  dist/components/Slider.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
27
- dist/layout/PlGrid/PlGrid.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
28
- dist/components/PlTabs/PlTabs.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
29
27
  dist/components/PlChip/PlChip.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
30
- dist/components/PlFileDialog/Remote.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
28
+ dist/components/PlTabs/PlTabs.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
29
+ dist/layout/PlGrid/PlGrid.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
31
30
  dist/components/DataTable/TdCell.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
32
31
  dist/components/DataTable/TrHead.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
33
32
  dist/components/DataTable/ThCell.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
34
33
  dist/components/DataTable/TrBody.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
34
+ dist/components/PlFileDialog/Remote.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
35
35
  dist/components/PlAlert/PlAlert.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
36
+ dist/base/BtnBase.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
36
37
  dist/components/VScroll.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
37
38
  dist/components/HScroll.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
38
- dist/base/BtnBase.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
39
39
  dist/components/DataTable/TScroll.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
40
40
  dist/components/TabItem.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
41
41
  dist/components/PlSplash/PlSplash.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
42
42
  dist/layout/PlSpacer/PlSpacer.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
43
- dist/components/PlTooltip/PlTooltip.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
44
43
  dist/components/PlLogView/PlLogView.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
45
44
  dist/components/PlBtnLink/PlBtnLink.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
45
+ dist/components/PlTooltip/PlTooltip.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
46
46
  dist/components/Scrollable.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
47
- dist/components/PlBtnSplit/PlBtnSplit.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
48
47
  dist/components/PlBtnGhost/PlBtnGhost.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
49
- dist/components/PlBtnGroup/PlBtnGroup.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
50
- dist/components/PlDropdown/PlDropdown.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
51
48
  dist/components/PlCheckbox/PlCheckbox.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
49
+ dist/components/PlBtnGroup/PlBtnGroup.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
52
50
  dist/components/PlTextArea/PlTextArea.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
53
- dist/components/InputRange.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
51
+ dist/components/PlDropdown/PlDropdown.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
52
+ dist/components/PlBtnSplit/PlBtnSplit.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
54
53
  dist/components/PlDropdown/OptionList.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
54
+ dist/components/InputRange.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
55
55
  dist/components/SliderRange.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
56
- dist/components/PlBtnAccent/PlBtnAccent.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
56
+ dist/components/PlStatusTag/PlStatusTag.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
57
57
  dist/components/PlAccordion/PlAccordion.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
58
58
  dist/components/PlFileInput/PlFileInput.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
59
- dist/components/PlStatusTag/PlStatusTag.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
60
59
  dist/layout/PlContainer/PlContainer.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
60
+ dist/components/PlTextField/PlTextField.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
61
61
  dist/layout/PlBlockPage/PlBlockPage.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
62
62
  dist/components/PlBtnDanger/PlBtnDanger.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
63
- dist/components/PlTextField/PlTextField.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
63
+ dist/components/PlBtnAccent/PlBtnAccent.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
64
64
  dist/components/DataTable/ColumnCaret.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
65
65
  dist/components/PlBtnPrimary/PlBtnPrimary.vue2.js  0.11 kB │ gzip: 0.12 kB │ map: 0.10 kB
66
66
  dist/components/PlFileDialog/PlFileDialog.vue2.js  0.11 kB │ gzip: 0.12 kB │ map: 0.10 kB
67
67
  dist/utils/InnerBorder.vue2.js  0.11 kB │ gzip: 0.12 kB │ map: 0.34 kB
68
68
  dist/components/ThemeSwitcher.vue2.js  0.11 kB │ gzip: 0.12 kB │ map: 0.10 kB
69
- dist/components/PlProgressBar/PlProgressBar.vue2.js  0.11 kB │ gzip: 0.12 kB │ map: 0.10 kB
70
69
  dist/components/PlDropdownRef/PlDropdownRef.vue2.js  0.11 kB │ gzip: 0.12 kB │ map: 0.10 kB
71
- dist/components/PlNumberField/PlNumberField.vue2.js  0.11 kB │ gzip: 0.12 kB │ map: 0.10 kB
72
70
  dist/components/PlDialogModal/PlDialogModal.vue2.js  0.11 kB │ gzip: 0.12 kB │ map: 0.10 kB
73
- dist/components/PlBtnSecondary/PlBtnSecondary.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.10 kB
71
+ dist/components/PlProgressBar/PlProgressBar.vue2.js  0.11 kB │ gzip: 0.12 kB │ map: 0.10 kB
72
+ dist/components/PlNumberField/PlNumberField.vue2.js  0.11 kB │ gzip: 0.12 kB │ map: 0.10 kB
74
73
  dist/components/PlAutocomplete/PlAutocomplete.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.10 kB
75
- dist/components/PlProgressCell/PlProgressCell.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.10 kB
74
+ dist/components/PlDropdownLine/PlDropdownLine.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.10 kB
75
+ dist/components/PlBtnSecondary/PlBtnSecondary.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.10 kB
76
76
  dist/components/PlToggleSwitch/PlToggleSwitch.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.10 kB
77
77
  dist/components/DataTable/TableComponent.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.10 kB
78
- dist/components/PlDropdownLine/PlDropdownLine.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.10 kB
78
+ dist/components/PlProgressCell/PlProgressCell.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.10 kB
79
79
  dist/components/PlCheckbox/PlCheckboxBase.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.10 kB
80
80
  dist/components/PlDropdownLine/ResizableInput.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.10 kB
81
81
  dist/components/ContextProvider.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
82
82
  dist/components/PlConfirmDialog.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
83
- dist/components/PlErrorBoundary/PlErrorBoundary.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
84
- dist/components/PlEditableTitle/PlEditableTitle.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
85
- dist/components/PlCheckboxGroup/PlCheckboxGroup.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
86
83
  dist/utils/DropdownOverlay/DropdownOverlay.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
87
84
  dist/components/PlDropdownMulti/PlDropdownMulti.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
85
+ dist/components/PlEditableTitle/PlEditableTitle.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
86
+ dist/components/PlCheckboxGroup/PlCheckboxGroup.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
87
+ dist/components/PlErrorBoundary/PlErrorBoundary.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
88
88
  dist/helpers/math.js  0.12 kB │ gzip: 0.13 kB │ map: 0.33 kB
89
89
  dist/components/DataTable/RowsCommandMenu.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
90
90
  dist/components/DropdownListItem.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
91
+ dist/components/PlSlideModal/PlPureSlideModal.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
91
92
  dist/components/PlLoaderCircular/PlLoaderCircular.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
92
93
  dist/components/PlDropdownLegacy/PlDropdownLegacy.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
93
- dist/components/PlSlideModal/PlPureSlideModal.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
94
94
  dist/components/SliderRangeTriple.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
95
95
  dist/components/DataTable/BaseCellComponent.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
96
96
  dist/components/PlDropdownMultiRef/PlDropdownMultiRef.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
@@ -131,8 +131,8 @@ computing gzip size...
131
131
  dist/assets/icons/icon-assets-min/24_arrow-down.svg.js  0.27 kB │ gzip: 0.24 kB │ map: 0.44 kB
132
132
  dist/assets/icons/icon-assets-min/16_add.svg.js  0.27 kB │ gzip: 0.23 kB │ map: 0.44 kB
133
133
  dist/components/PlRadio/PlRadio.vue.js  0.27 kB │ gzip: 0.21 kB │ map: 0.10 kB
134
- dist/components/PlChartStackedBar/Legends.vue.js  0.27 kB │ gzip: 0.21 kB │ map: 0.10 kB
135
134
  dist/assets/icons/icon-assets-min/24_linetype-longdash.svg.js  0.27 kB │ gzip: 0.23 kB │ map: 0.47 kB
135
+ dist/components/PlChartStackedBar/Legends.vue.js  0.27 kB │ gzip: 0.21 kB │ map: 0.10 kB
136
136
  dist/assets/icons/icon-assets-min/16_chevron-first.svg.js  0.28 kB │ gzip: 0.23 kB │ map: 0.45 kB
137
137
  dist/components/PlIcon16/PlIcon16.vue.js  0.28 kB │ gzip: 0.22 kB │ map: 0.10 kB
138
138
  dist/components/PlIcon24/PlIcon24.vue.js  0.28 kB │ gzip: 0.22 kB │ map: 0.10 kB
@@ -217,16 +217,16 @@ computing gzip size...
217
217
  dist/assets/icons/icon-assets-min/16_compare.svg.js  0.34 kB │ gzip: 0.26 kB │ map: 0.51 kB
218
218
  dist/assets/icons/icon-assets-min/16_jump-link.svg.js  0.34 kB │ gzip: 0.26 kB │ map: 0.52 kB
219
219
  dist/assets/icons/icon-assets-min/16_reverse.svg.js  0.34 kB │ gzip: 0.26 kB │ map: 0.51 kB
220
- dist/assets/icons/icon-assets-min/16_stop.svg.js  0.34 kB │ gzip: 0.25 kB │ map: 0.52 kB
221
220
  dist/components/DataTable/TrHead.vue.js  0.34 kB │ gzip: 0.27 kB │ map: 0.41 kB
221
+ dist/assets/icons/icon-assets-min/16_stop.svg.js  0.34 kB │ gzip: 0.25 kB │ map: 0.52 kB
222
222
  dist/assets/icons/icon-assets-min/24_expand-left.svg.js  0.35 kB │ gzip: 0.24 kB │ map: 0.53 kB
223
223
  dist/assets/icons/icon-assets-min/24_expand-right.svg.js  0.35 kB │ gzip: 0.25 kB │ map: 0.53 kB
224
224
  dist/assets/icons/icon-assets-min/24_restart.svg.js  0.35 kB │ gzip: 0.27 kB │ map: 0.52 kB
225
225
  dist/assets/icons/icon-assets-min/24_legend-box.svg.js  0.35 kB │ gzip: 0.26 kB │ map: 0.54 kB
226
226
  dist/assets/icons/icon-assets-min/24_position-left.svg.js  0.35 kB │ gzip: 0.27 kB │ map: 0.52 kB
227
227
  dist/assets/icons/icon-assets-min/24_close.svg.js  0.35 kB │ gzip: 0.25 kB │ map: 0.52 kB
228
- dist/assets/icons/icon-assets-min/24_stop.svg.js  0.35 kB │ gzip: 0.25 kB │ map: 0.52 kB
229
228
  dist/composition/useFilteredList.js  0.35 kB │ gzip: 0.24 kB │ map: 1.15 kB
229
+ dist/assets/icons/icon-assets-min/24_stop.svg.js  0.35 kB │ gzip: 0.25 kB │ map: 0.52 kB
230
230
  dist/layout/PlSpacer/PlSpacer.vue.js  0.35 kB │ gzip: 0.27 kB │ map: 0.53 kB
231
231
  dist/assets/icons/icon-assets-min/24_checkbox.svg.js  0.35 kB │ gzip: 0.26 kB │ map: 0.53 kB
232
232
  dist/assets/icons/icon-assets-min/24_play.svg.js  0.35 kB │ gzip: 0.28 kB │ map: 0.53 kB
@@ -354,8 +354,8 @@ computing gzip size...
354
354
  dist/assets/icons/icon-assets-min/16_settings.svg.js  0.56 kB │ gzip: 0.33 kB │ map: 0.74 kB
355
355
  dist/composition/useFormState.js  0.56 kB │ gzip: 0.32 kB │ map: 1.67 kB
356
356
  dist/assets/icons/icon-assets-min/24_frame-type-none.svg.js  0.56 kB │ gzip: 0.27 kB │ map: 0.75 kB
357
- dist/assets/icons/icon-assets-min/24_columns.svg.js  0.56 kB │ gzip: 0.33 kB │ map: 0.76 kB
358
357
  dist/components/DataTable/ColumnCaret.vue.js  0.56 kB │ gzip: 0.37 kB │ map: 0.90 kB
358
+ dist/assets/icons/icon-assets-min/24_columns.svg.js  0.56 kB │ gzip: 0.33 kB │ map: 0.76 kB
359
359
  dist/assets/icons/icon-assets-min/16_clipboard-copied.svg.js  0.56 kB │ gzip: 0.36 kB │ map: 0.76 kB
360
360
  dist/assets/icons/icon-assets-min/16_clipboard.svg.js  0.56 kB │ gzip: 0.34 kB │ map: 0.74 kB
361
361
  dist/assets/icons/icon-assets-min/24_file-doc-import.svg.js  0.56 kB │ gzip: 0.37 kB │ map: 0.77 kB
@@ -393,8 +393,8 @@ computing gzip size...
393
393
  dist/assets/icons/icon-assets-min/16_duplicate.svg.js  0.62 kB │ gzip: 0.39 kB │ map: 0.83 kB
394
394
  dist/assets/icons/icon-assets-min/24_bar-stacked.svg.js  0.62 kB │ gzip: 0.34 kB │ map: 0.83 kB
395
395
  dist/components/PlElementList/PlElementList.vue3.js  0.63 kB │ gzip: 0.41 kB │ map: 0.11 kB
396
- dist/assets/icons/icon-assets-min/24_file-doc-download.svg.js  0.63 kB │ gzip: 0.38 kB │ map: 0.85 kB
397
396
  dist/composition/useRipple.js  0.63 kB │ gzip: 0.40 kB │ map: 1.69 kB
397
+ dist/assets/icons/icon-assets-min/24_file-doc-download.svg.js  0.63 kB │ gzip: 0.38 kB │ map: 0.85 kB
398
398
  dist/assets/icons/icon-assets-min/24_axes.svg.js  0.63 kB │ gzip: 0.37 kB │ map: 0.81 kB
399
399
  dist/utils/DoubleContour.vue.js  0.63 kB │ gzip: 0.41 kB │ map: 2.12 kB
400
400
  dist/assets/icons/icon-assets-min/24_clipboard.svg.js  0.63 kB │ gzip: 0.37 kB │ map: 0.84 kB
@@ -482,8 +482,8 @@ computing gzip size...
482
482
  dist/composition/usePosition.js  1.00 kB │ gzip: 0.46 kB │ map: 2.31 kB
483
483
  dist/assets/icons/icon-assets-min/16_progress.svg.js  1.02 kB │ gzip: 0.61 kB │ map: 1.22 kB
484
484
  dist/composition/useDraggable.js  1.02 kB │ gzip: 0.44 kB │ map: 2.56 kB
485
- dist/assets/icons/icon-assets-min/24_strip-plot.svg.js  1.02 kB │ gzip: 0.36 kB │ map: 1.29 kB
486
485
  dist/components/DataTable/assets/TableIcon.vue.js  1.02 kB │ gzip: 0.55 kB │ map: 1.20 kB
486
+ dist/assets/icons/icon-assets-min/24_strip-plot.svg.js  1.02 kB │ gzip: 0.36 kB │ map: 1.29 kB
487
487
  dist/components/PlChartStackedBar/Legends.vue3.js  1.03 kB │ gzip: 0.56 kB │ map: 0.10 kB
488
488
  dist/helpers/downloadContent.js  1.03 kB │ gzip: 0.50 kB │ map: 3.22 kB
489
489
  dist/generated/icons-16.js  1.04 kB │ gzip: 0.42 kB │ map: 1.90 kB
@@ -557,6 +557,7 @@ computing gzip size...
557
557
  dist/assets/icons/icon-assets-min/24_social-twitter-bird.svg.js  1.70 kB │ gzip: 0.94 kB │ map: 1.90 kB
558
558
  dist/assets/icons/icon-assets-min/24_publications.svg.js  1.73 kB │ gzip: 0.89 kB │ map: 1.93 kB
559
559
  dist/components/PlConfirmDialog.vue.js  1.75 kB │ gzip: 0.70 kB │ map: 2.45 kB
560
+ dist/layout/PlPlaceholder/PlPlaceholder.vue2.js  1.80 kB │ gzip: 0.87 kB │ map: 5.08 kB
560
561
  dist/components/PlCheckbox/PlCheckbox.vue.js  1.80 kB │ gzip: 0.87 kB │ map: 2.24 kB
561
562
  dist/components/PlLogView/useLogHandle.js  1.85 kB │ gzip: 0.90 kB │ map: 5.27 kB
562
563
  dist/components/PlChartStackedBar/StackedRow.vue2.js  1.86 kB │ gzip: 0.83 kB │ map: 4.27 kB
@@ -592,6 +593,7 @@ computing gzip size...
592
593
  dist/components/PlDropdown/OptionList.vue.js  2.92 kB │ gzip: 1.09 kB │ map: 4.26 kB
593
594
  dist/components/PlEditableTitle/PlEditableTitle.vue.js  2.99 kB │ gzip: 1.26 kB │ map: 5.04 kB
594
595
  dist/colors/palette.js  3.25 kB │ gzip: 1.22 kB │ map: 6.96 kB
596
+ dist/layout/PlPlaceholder/paint-worklet.js  3.27 kB │ gzip: 0.68 kB │ map: 4.26 kB
595
597
  dist/components/PlEditableTitle/pl-editable-title.module.scss.js  3.27 kB │ gzip: 1.17 kB │ map: 0.12 kB
596
598
  dist/components/PlBtnDanger/PlBtnDanger.vue.js  3.46 kB │ gzip: 1.34 kB │ map: 1.41 kB
597
599
  dist/components/PlProgressCell/PlProgressCell.vue.js  3.47 kB │ gzip: 1.43 kB │ map: 3.09 kB
@@ -618,7 +620,6 @@ computing gzip size...
618
620
  dist/components/PlSidebar/PlSidebarGroup.vue3.js  5.56 kB │ gzip: 1.64 kB │ map: 0.11 kB
619
621
  dist/components/PlDialogModal/PlDialogModal.vue.js  5.76 kB │ gzip: 2.02 kB │ map: 6.36 kB
620
622
  dist/components/PlSidebar/PlSidebarItem.vue3.js  5.83 kB │ gzip: 1.76 kB │ map: 0.11 kB
621
- dist/layout/PlPlaceholder/PlPlaceholder.vue2.js  5.98 kB │ gzip: 2.02 kB │ map: 4.72 kB
622
623
  dist/components/PlCheckbox/PlCheckboxBase.vue.js  6.84 kB │ gzip: 1.34 kB │ map: 1.26 kB
623
624
  dist/components/SliderRange.vue.js  7.00 kB │ gzip: 2.19 kB │ map: 13.65 kB
624
625
  dist/components/PlBtnSplit/PlBtnSplit.vue.js  7.06 kB │ gzip: 2.56 kB │ map: 10.03 kB
@@ -641,9 +642,9 @@ computing gzip size...
641
642
  dist/components/PlSvg/PlSvg.vue2.js  39.54 kB │ gzip: 3.38 kB │ map: 12.31 kB
642
643
  dist/components/PlFileDialog/pl-file-dialog.module.scss.js  47.68 kB │ gzip: 16.33 kB │ map: 0.13 kB
643
644
  dist/index.js 502.59 kB │ gzip: 192.54 kB │ map: 5.98 kB
644
- dist/components/PlSlideModal/PlPureSlideModal.vue.js 605.54 kB │ gzip: 205.13 kB │ map: 2.93 kB
645
- dist/components/DataTable/TableComponent.vue.js 607.38 kB │ gzip: 206.02 kB │ map: 6.85 kB
646
- [vite:dts] Declaration files built in 9266ms.
645
+ dist/components/PlSlideModal/PlPureSlideModal.vue.js 605.60 kB │ gzip: 205.14 kB │ map: 2.93 kB
646
+ dist/components/DataTable/TableComponent.vue.js 607.44 kB │ gzip: 206.03 kB │ map: 6.85 kB
647
+ [vite:dts] Declaration files built in 6243ms.
647
648
 
648
- ✓ built in 13.57s
649
+ ✓ built in 9.85s
649
650
  Build completed successfully
@@ -1,5 +1,5 @@
1
1
   WARN  Issue while reading "/home/runner/_work/platforma/platforma/.npmrc". Failed to replace env in config: ${NPMJS_TOKEN}
2
2
 
3
- > @milaboratories/uikit@2.8.6 lint /home/runner/_work/platforma/platforma/lib/ui/uikit
3
+ > @milaboratories/uikit@2.8.7 lint /home/runner/_work/platforma/platforma/lib/ui/uikit
4
4
  > eslint .
5
5
 
@@ -1,6 +1,6 @@
1
1
   WARN  Issue while reading "/home/runner/_work/platforma/platforma/.npmrc". Failed to replace env in config: ${NPMJS_TOKEN}
2
2
 
3
- > @milaboratories/uikit@2.8.6 type-check /home/runner/_work/platforma/platforma/lib/ui/uikit
3
+ > @milaboratories/uikit@2.8.7 type-check /home/runner/_work/platforma/platforma/lib/ui/uikit
4
4
  > ts-builder types --target browser-lib
5
5
 
6
6
  ↳ vue-tsc.js --noEmit --project ./tsconfig.json --customConditions ,
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @milaboratories/uikit
2
2
 
3
+ ## 2.8.7
4
+
5
+ ### Patch Changes
6
+
7
+ - 35a16d0: use blob URL for paint worklet to comply with CSP
8
+
3
9
  ## 2.8.6
4
10
 
5
11
  ### Patch Changes
@@ -41,7 +41,7 @@
41
41
  .ui-toggle-switch{--handle-ml: 0;--body-bg: var(--bg-base-light);--body-shadow: var(--btn-group-shape-shadow);display:flex;align-items:center;gap:12px;outline:none}.ui-toggle-switch__body{width:40px;height:24px;display:flex;padding:5px;border-radius:12px;border:1px solid var(--color-ic-01);box-shadow:var(--body-shadow);background:var(--body-bg);cursor:pointer}.ui-toggle-switch__handle{width:12px;height:12px;border-radius:12px;border:1px solid var(--color-ic-01);background:var(--color-ic-00);margin-left:var(--handle-ml)}.ui-toggle-switch.active{--body-bg: var(--btn-switcher-bg);--handle-ml: auto}.ui-toggle-switch:focus-visible{--label-color: var(--txt-focus);--body-shadow: var(--btn-group-shape-shadow), 0 0 0 2px #fff, 0 0 0 4px var(--border-color-focus)}
42
42
  .pl-file-input{--contour-color: var(--txt-01);--label-color: var(--txt-01);--text-color: var(--txt-01);--contour-border-width: 1px;--contour-box-shadow: none;--label-offset-left-x: 8px;--label-offset-right-x: 8px;--prefix-color: var(--color-placeholder);--contour-offset: 2px;--icon-color: #000;position:relative;z-index:0;width:100%;height:var(--control-height, 40px);border-radius:var(--border-radius-control);display:flex;flex-direction:row;align-items:center;outline:none;padding:0 8px;gap:8px;cursor:pointer}.pl-file-input__envelope{font-family:var(--font-family-base);display:flex;flex-direction:column;min-width:160px}.pl-file-input .mask-24{display:block;min-width:24px}.pl-file-input .mask-close{cursor:pointer}.pl-file-input__progress{position:absolute;z-index:-1;top:0;bottom:0;left:0;right:0;background:linear-gradient(90deg,#fff,#d8fac8);pointer-events:none;width:0}.pl-file-input__clear{--icon-color: var(--ic-02)}.pl-file-input__filename{width:100%;border:none;font-size:inherit;background-color:transparent;color:var(--text-color);caret-color:var(--border-color-focus);z-index:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:18px}.pl-file-input__filename:empty:before{color:var(--color-placeholder);content:attr(data-placeholder);color:var(--txt-03);font-size:14px;font-weight:500;line-height:20px}.pl-file-input__stats{white-space:nowrap;z-index:1;font-size:11px;font-weight:600;letter-spacing:.44px;text-transform:uppercase;color:var(--txt-03)}.pl-file-input label{display:flex;align-items:center;gap:4px;position:absolute;top:0;transform:translateY(-60%);left:var(--label-offset-left-x);padding:0 4px;max-width:calc(100% - 16px);overflow:hidden;white-space:pre;text-overflow:ellipsis;cursor:inherit;color:var(--label-color);font-size:12px;font-weight:500;border-bottom-right-radius:4px;border-bottom-left-radius:4px;background:var(--bg-elevated-01)}.pl-file-input label>span{overflow:hidden;white-space:pre;text-overflow:ellipsis}.pl-file-input__contour{position:absolute;top:0;left:0;right:0;bottom:0;border-radius:var(--border-radius-control);border-width:var(--contour-border-width);border-color:var(--contour-color);border-style:solid;box-shadow:var(--contour-box-shadow);z-index:0;pointer-events:none}.pl-file-input__prefix{padding-left:12px;white-space:nowrap;margin-right:-12px;color:var(--prefix-color)}.pl-file-input__helper{font-size:12px;color:var(--txt-03);padding:2px 0 0;white-space:pre-wrap;text-overflow:ellipsis;font-weight:500;line-height:16px;margin-top:6px}.pl-file-input__error{font-size:12px;color:var(--txt-error);padding:2px 0 0;white-space:pre-wrap;text-overflow:ellipsis;font-weight:500;line-height:16px;margin-top:6px}.pl-file-input:hover{--contour-color: var(--control-hover-color)}.pl-file-input:focus-within:not(.error){--label-color: var(--txt-focus);--contour-color: var(--border-color-focus);--contour-border-width: 2px;--contour-box-shadow: 0 0 0 4px var(--border-color-focus-shadow)}.pl-file-input:focus-within.error{--contour-border-width: 2px;--contour-box-shadow: 0 0 0 4px var(--color-error-shadow)}.pl-file-input.dashed .pl-file-input__contour{border-style:dashed}.pl-file-input.nonEmpty{--prefix-color: var(--txt-01)}.pl-file-input.error{--contour-color: var(--txt-error);--label-color: var(--txt-error);--text-color: var(--txt-error);--icon-color: var(--txt-error)}.pl-file-input.error .pl-file-input__progress{display:none}.pl-file-input.disabled{--contour-color: var(--color-dis-01);cursor:not-allowed}.pl-file-input__cell-style{--border-radius-control: 0px;--input-active-color: var(--bg-base-light);--border-color: var(--border-color-div-grey);background-color:var(--input-active-color);padding:4px;height:100%;position:relative}.pl-file-input__cell-style .mask-paper-clip{display:none}.pl-file-input__cell-style .pl-file-input{height:100%!important;position:unset}.pl-file-input__cell-style .pl-file-input .double-contour{top:2px;right:2px;bottom:2px;left:2px}.pl-file-input__cell-style .pl-file-input__contour{border-width:1px;box-shadow:unset!important;border-color:var(--border-color);border-style:dashed}.pl-file-input__cell-style .pl-file-input__filename{text-align:center!important}.pl-file-input__cell-style .pl-file-input__error{margin-top:0;margin-right:8px}.pl-file-input__cell-style:hover{--border-color: var(--border-color-focus);background-color:#d9f8ca}.pl-file-input__cell-style:hover .pl-file-input__filename:before{color:#110529!important}.pl-file-input__cell-style.has-file:hover{background-color:var(--input-active-color)}.pl-file-input__cell-style.has-file{padding-left:0;padding-right:0}.pl-file-input__cell-style.has-file .pl-file-input__contour{border:unset}.pl-file-input__cell-style.has-file .pl-file-input__filename{text-align:left!important}.pl-file-input__cell-style.has-file .mask-paper-clip{display:block}
43
43
  .pl-notification-alert{padding:12px;position:relative;border-radius:6px;border:1px solid var(--border-color-default);min-height:40px;width:256px;max-height:100%;overflow:auto}.pl-notification-alert .ui-btn-ghost{position:absolute;right:0;top:0}.pl-notification-alert__close{width:32px;min-width:28px}.pl-notification-alert__close .pl-btn-ghost{position:absolute;top:0;right:0;width:40px!important;height:40px!important}.pl-notification-alert__wrapper{flex-grow:1;overflow:auto}.pl-notification-alert.neutral{background:var(--notification-neutral)}.pl-notification-alert.error{background:var(--notification-error)}.pl-notification-alert.success{background:var(--notification-success)}.pl-notification-alert.warning{background:var(--notification-warning)}`)),document.head.appendChild(A)}}catch(g){console.error("vite-plugin-css-injected-by-js",g)}})();
44
- import { defineComponent as H, computed as R, watch as $, ref as b, onMounted as V, nextTick as h, watchPostEffect as I, unref as e, createElementBlock as a, openBlock as r, createElementVNode as p, createVNode as l, withCtx as z, Fragment as f, renderList as u, createBlock as c, normalizeStyle as y, createCommentVNode as L } from "vue";
44
+ import { defineComponent as H, computed as R, watch as $, ref as b, onMounted as V, nextTick as h, watchPostEffect as I, unref as e, createElementBlock as p, openBlock as r, createElementVNode as a, createVNode as l, withCtx as z, Fragment as f, renderList as u, createBlock as c, normalizeStyle as y, createCommentVNode as L } from "vue";
45
45
 
46
46
  import M from "./TdCell.vue.js";
47
47
  import F from "./assets/TableIcon.vue.js";
@@ -64,6 +64,7 @@ import { useEventListener as U } from "../../composition/useEventListener.js";
64
64
  import "../../global/resizeObserver.js";
65
65
  import "../../layout/PlBlockPage/PlBlockPageTitleTeleportId.js";
66
66
 
67
+ import "../../layout/PlPlaceholder/PlPlaceholder.vue2.js";
67
68
 
68
69
 
69
70
 
@@ -115,7 +116,7 @@ import "../../colors/gradient.js";
115
116
  const X = { class: "command-menu__container" }, Y = {
116
117
  key: 0,
117
118
  class: "table-body__no-data"
118
- }, Z = { class: "carets" }, ho = /* @__PURE__ */ H({
119
+ }, Z = { class: "carets" }, go = /* @__PURE__ */ H({
119
120
  __name: "TableComponent",
120
121
  props: {
121
122
  settings: {}
@@ -139,25 +140,25 @@ const X = { class: "command-menu__container" }, Y = {
139
140
  const E = (i) => {
140
141
  i.preventDefault(), t.updateOffsets(i);
141
142
  };
142
- return (i, m) => (r(), a("div", {
143
+ return (i, m) => (r(), p("div", {
143
144
  ref_key: "tableRef",
144
145
  ref: w,
145
146
  class: "data-table",
146
147
  onMousedown: m[2] || (m[2] = //@ts-ignore
147
148
  (...o) => e(C) && e(C)(...o))
148
149
  }, [
149
- p("div", X, [
150
+ a("div", X, [
150
151
  l(G),
151
152
  l(J)
152
153
  ]),
153
- p("div", {
154
+ a("div", {
154
155
  ref_key: "headRef",
155
156
  ref: S,
156
157
  class: "table-head"
157
158
  }, [
158
159
  l(O, null, {
159
160
  default: z(() => [
160
- (r(!0), a(f, null, u(e(k), (o, s) => (r(), c(P, {
161
+ (r(!0), p(f, null, u(e(k), (o, s) => (r(), c(P, {
161
162
  key: s,
162
163
  col: o,
163
164
  style: y(o.style),
@@ -167,25 +168,25 @@ const X = { class: "command-menu__container" }, Y = {
167
168
  _: 1
168
169
  })
169
170
  ], 512),
170
- p("div", {
171
+ a("div", {
171
172
  ref_key: "bodyRef",
172
173
  ref: v,
173
174
  class: "table-body",
174
175
  style: y(N.value),
175
176
  onWheel: E
176
177
  }, [
177
- g.value ? (r(), a("div", Y, [
178
- p("div", null, [
178
+ g.value ? (r(), p("div", Y, [
179
+ a("div", null, [
179
180
  l(F),
180
- m[3] || (m[3] = p("div", null, "No Data To Show", -1))
181
+ m[3] || (m[3] = a("div", null, "No Data To Show", -1))
181
182
  ])
182
183
  ])) : L("", !0),
183
- (r(!0), a(f, null, u(e(x), (o, s) => (r(), c(W, {
184
+ (r(!0), p(f, null, u(e(x), (o, s) => (r(), c(W, {
184
185
  key: s,
185
186
  row: o
186
187
  }, {
187
188
  default: z(() => [
188
- (r(!0), a(f, null, u(o.cells, (n) => (r(), c(M, {
189
+ (r(!0), p(f, null, u(o.cells, (n) => (r(), c(M, {
189
190
  key: n.column.id + ":" + s,
190
191
  cell: n,
191
192
  style: y(n.style)
@@ -194,8 +195,8 @@ const X = { class: "command-menu__container" }, Y = {
194
195
  _: 2
195
196
  }, 1032, ["row"]))), 128))
196
197
  ], 36),
197
- p("div", Z, [
198
- (r(!0), a(f, null, u(e(k), (o, s) => (r(), c(j, {
198
+ a("div", Z, [
199
+ (r(!0), p(f, null, u(e(k), (o, s) => (r(), c(j, {
199
200
  key: s,
200
201
  column: o,
201
202
  style: y(o.style),
@@ -212,6 +213,6 @@ const X = { class: "command-menu__container" }, Y = {
212
213
  }
213
214
  });
214
215
  export {
215
- ho as default
216
+ go as default
216
217
  };
217
218
  //# sourceMappingURL=TableComponent.vue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TableComponent.vue.js","sources":["../../../src/components/DataTable/TableComponent.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport './assets/data-table-style.scss';\nimport { ref, unref, onMounted, nextTick, watchPostEffect, watch, computed } from 'vue';\nimport TdCell from './TdCell.vue';\nimport type { TableSettings, TableData } from './types';\nimport TableIcon from './assets/TableIcon.vue';\nimport TrHead from './TrHead.vue';\nimport ThCell from './ThCell.vue';\nimport TrBody from './TrBody.vue';\nimport ColumnCaret from './ColumnCaret.vue';\nimport { useEventListener } from '../../index';\nimport { tapIf } from '@milaboratories/helpers';\nimport { useResize } from './composition/useResize';\nimport RowsCommandMenu from './RowsCommandMenu.vue';\nimport ColumnsCommandMenu from './ColumnsCommandMenu.vue';\nimport TScroll from './TScroll.vue';\nimport { createState } from './state';\n\nconst emit = defineEmits<{\n (e: 'update:data', value: TableData): void;\n (e: 'change:sort', value: unknown): void;\n}>();\n\nconst props = defineProps<{\n settings: Readonly<TableSettings>;\n}>();\n\nconst state = createState(props);\n\nconst hasNoData = computed(() => state.data.rows.length === 0);\n\nconst tableBodyStyle = computed(() => ({\n height: hasNoData.value ? '212px' /* css value */ : state.data.bodyHeight + 'px',\n}));\n\nwatch(state.data, (v) => emit('update:data', v), { deep: true });\n\nwatch(props, () => updateDimensions);\n\nconst tableRef = ref<HTMLElement>();\nconst headRef = ref<HTMLElement>();\nconst bodyRef = ref<HTMLElement>();\n\nconst updateDimensions = () => {\n tapIf(bodyRef.value, (el) => {\n state.updateDimensions(el.getBoundingClientRect());\n });\n};\n\nconst tableColumns = state.tableColumns;\n\nconst tableRows = state.tableRows;\n\nconst { mouseDown } = useResize(state, tableRef);\n\nonMounted(() => {\n nextTick(updateDimensions);\n});\n\nwatchPostEffect(() => {\n unref(props.settings);\n nextTick(updateDimensions);\n});\n\nuseEventListener(window, 'resize', () => nextTick(updateDimensions));\n\nconst onWheel = (ev: WheelEvent) => {\n ev.preventDefault();\n state.updateOffsets(ev);\n};\n</script>\n\n<template>\n <div ref=\"tableRef\" class=\"data-table\" @mousedown=\"mouseDown\">\n <div class=\"command-menu__container\">\n <RowsCommandMenu />\n <ColumnsCommandMenu />\n </div>\n <div ref=\"headRef\" class=\"table-head\">\n <TrHead>\n <ThCell v-for=\"(col, i) in tableColumns\" :key=\"i\" :col=\"col\" :style=\"col.style\" @change:sort=\"$emit('change:sort', $event)\" />\n </TrHead>\n </div>\n <div ref=\"bodyRef\" class=\"table-body\" :style=\"tableBodyStyle\" @wheel=\"onWheel\">\n <div v-if=\"hasNoData\" class=\"table-body__no-data\">\n <div>\n <TableIcon />\n <div>No Data To Show</div>\n </div>\n </div>\n <TrBody v-for=\"(row, i) in tableRows\" :key=\"i\" :row=\"row\">\n <TdCell v-for=\"cell in row.cells\" :key=\"cell.column.id + ':' + i\" :cell=\"cell\" :style=\"cell.style\" />\n </TrBody>\n </div>\n <div class=\"carets\">\n <ColumnCaret v-for=\"(col, i) in tableColumns\" :key=\"i\" :column=\"col\" :style=\"col.style\" @change:sort=\"$emit('change:sort', $event)\" />\n </div>\n <TScroll\n :offset=\"state.data.scrollTop\"\n :window-size=\"state.data.bodyHeight\"\n :data-size=\"state.data.dataHeight\"\n @change:offset=\"state.updateScrollTop\"\n />\n </div>\n</template>\n"],"names":["emit","__emit","props","__props","state","createState","hasNoData","computed","tableBodyStyle","watch","v","updateDimensions","tableRef","ref","headRef","bodyRef","tapIf","el","tableColumns","tableRows","mouseDown","useResize","onMounted","nextTick","watchPostEffect","unref","useEventListener","onWheel","ev","_createElementBlock","_cache","_unref","args","_createElementVNode","_hoisted_1","_createVNode","RowsCommandMenu","ColumnsCommandMenu","TrHead","_openBlock","_Fragment","_renderList","col","i","_createBlock","ThCell","_normalizeStyle","$event","$emit","_hoisted_2","TableIcon","row","TrBody","cell","TdCell","_hoisted_3","ColumnCaret","TScroll"],"mappings":"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"}
1
+ {"version":3,"file":"TableComponent.vue.js","sources":["../../../src/components/DataTable/TableComponent.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport './assets/data-table-style.scss';\nimport { ref, unref, onMounted, nextTick, watchPostEffect, watch, computed } from 'vue';\nimport TdCell from './TdCell.vue';\nimport type { TableSettings, TableData } from './types';\nimport TableIcon from './assets/TableIcon.vue';\nimport TrHead from './TrHead.vue';\nimport ThCell from './ThCell.vue';\nimport TrBody from './TrBody.vue';\nimport ColumnCaret from './ColumnCaret.vue';\nimport { useEventListener } from '../../index';\nimport { tapIf } from '@milaboratories/helpers';\nimport { useResize } from './composition/useResize';\nimport RowsCommandMenu from './RowsCommandMenu.vue';\nimport ColumnsCommandMenu from './ColumnsCommandMenu.vue';\nimport TScroll from './TScroll.vue';\nimport { createState } from './state';\n\nconst emit = defineEmits<{\n (e: 'update:data', value: TableData): void;\n (e: 'change:sort', value: unknown): void;\n}>();\n\nconst props = defineProps<{\n settings: Readonly<TableSettings>;\n}>();\n\nconst state = createState(props);\n\nconst hasNoData = computed(() => state.data.rows.length === 0);\n\nconst tableBodyStyle = computed(() => ({\n height: hasNoData.value ? '212px' /* css value */ : state.data.bodyHeight + 'px',\n}));\n\nwatch(state.data, (v) => emit('update:data', v), { deep: true });\n\nwatch(props, () => updateDimensions);\n\nconst tableRef = ref<HTMLElement>();\nconst headRef = ref<HTMLElement>();\nconst bodyRef = ref<HTMLElement>();\n\nconst updateDimensions = () => {\n tapIf(bodyRef.value, (el) => {\n state.updateDimensions(el.getBoundingClientRect());\n });\n};\n\nconst tableColumns = state.tableColumns;\n\nconst tableRows = state.tableRows;\n\nconst { mouseDown } = useResize(state, tableRef);\n\nonMounted(() => {\n nextTick(updateDimensions);\n});\n\nwatchPostEffect(() => {\n unref(props.settings);\n nextTick(updateDimensions);\n});\n\nuseEventListener(window, 'resize', () => nextTick(updateDimensions));\n\nconst onWheel = (ev: WheelEvent) => {\n ev.preventDefault();\n state.updateOffsets(ev);\n};\n</script>\n\n<template>\n <div ref=\"tableRef\" class=\"data-table\" @mousedown=\"mouseDown\">\n <div class=\"command-menu__container\">\n <RowsCommandMenu />\n <ColumnsCommandMenu />\n </div>\n <div ref=\"headRef\" class=\"table-head\">\n <TrHead>\n <ThCell v-for=\"(col, i) in tableColumns\" :key=\"i\" :col=\"col\" :style=\"col.style\" @change:sort=\"$emit('change:sort', $event)\" />\n </TrHead>\n </div>\n <div ref=\"bodyRef\" class=\"table-body\" :style=\"tableBodyStyle\" @wheel=\"onWheel\">\n <div v-if=\"hasNoData\" class=\"table-body__no-data\">\n <div>\n <TableIcon />\n <div>No Data To Show</div>\n </div>\n </div>\n <TrBody v-for=\"(row, i) in tableRows\" :key=\"i\" :row=\"row\">\n <TdCell v-for=\"cell in row.cells\" :key=\"cell.column.id + ':' + i\" :cell=\"cell\" :style=\"cell.style\" />\n </TrBody>\n </div>\n <div class=\"carets\">\n <ColumnCaret v-for=\"(col, i) in tableColumns\" :key=\"i\" :column=\"col\" :style=\"col.style\" @change:sort=\"$emit('change:sort', $event)\" />\n </div>\n <TScroll\n :offset=\"state.data.scrollTop\"\n :window-size=\"state.data.bodyHeight\"\n :data-size=\"state.data.dataHeight\"\n @change:offset=\"state.updateScrollTop\"\n />\n </div>\n</template>\n"],"names":["emit","__emit","props","__props","state","createState","hasNoData","computed","tableBodyStyle","watch","v","updateDimensions","tableRef","ref","headRef","bodyRef","tapIf","el","tableColumns","tableRows","mouseDown","useResize","onMounted","nextTick","watchPostEffect","unref","useEventListener","onWheel","ev","_createElementBlock","_cache","_unref","args","_createElementVNode","_hoisted_1","_createVNode","RowsCommandMenu","ColumnsCommandMenu","TrHead","_openBlock","_Fragment","_renderList","col","i","_createBlock","ThCell","_normalizeStyle","$event","$emit","_hoisted_2","TableIcon","row","TrBody","cell","TdCell","_hoisted_3","ColumnCaret","TScroll"],"mappings":"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"}
@@ -56,6 +56,7 @@ import { useClickOutside as P } from "../../composition/useClickOutside.js";
56
56
  import "../../global/resizeObserver.js";
57
57
  import "../../layout/PlBlockPage/PlBlockPageTitleTeleportId.js";
58
58
 
59
+ import "../../layout/PlPlaceholder/PlPlaceholder.vue2.js";
59
60
 
60
61
 
61
62
 
@@ -107,7 +108,7 @@ import "../../colors/gradient.js";
107
108
  const K = {
108
109
  name: "PlPureSlideModal",
109
110
  inheritAttrs: !1
110
- }, jt = /* @__PURE__ */ f({
111
+ }, qt = /* @__PURE__ */ f({
111
112
  ...K,
112
113
  props: /* @__PURE__ */ c({
113
114
  modelValue: { type: Boolean },
@@ -152,6 +153,6 @@ const K = {
152
153
  }
153
154
  });
154
155
  export {
155
- jt as default
156
+ qt as default
156
157
  };
157
158
  //# sourceMappingURL=PlPureSlideModal.vue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PlPureSlideModal.vue.js","sources":["../../../src/components/PlSlideModal/PlPureSlideModal.vue"],"sourcesContent":["<script lang=\"ts\">\nexport default {\n name: 'PlPureSlideModal',\n inheritAttrs: false,\n};\n</script>\n\n<script lang=\"ts\" setup>\nimport './pl-slide-modal.scss';\nimport { ref, useAttrs } from 'vue';\nimport TransitionSlidePanel from '../TransitionSlidePanel.vue';\nimport { useClickOutside, useEventListener } from '../../index';\nimport type { Props } from './props';\nimport { defaultProps } from './props';\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', value: boolean): void;\n}>();\n\nconst modal = ref();\nconst attrs = useAttrs();\nconst props = withDefaults(\n defineProps<Props>(),\n defaultProps,\n);\n\nuseClickOutside(modal, () => {\n if (props.modelValue && props.closeOnOutsideClick) {\n emit('update:modelValue', false);\n }\n});\n\nuseEventListener(document, 'keydown', (evt: KeyboardEvent) => {\n if (evt.key === 'Escape') {\n emit('update:modelValue', false);\n }\n});\n</script>\n\n<template>\n <Teleport to=\"body\">\n <TransitionSlidePanel>\n <div\n v-if=\"props.modelValue\"\n ref=\"modal\"\n class=\"pl-slide-modal\"\n :style=\"{ width: props.width }\"\n v-bind=\"attrs\"\n @keyup.esc=\"emit('update:modelValue', false)\"\n >\n <div class=\"close-dialog-btn\" @click=\"emit('update:modelValue', false)\" />\n <slot />\n </div>\n </TransitionSlidePanel>\n <div v-if=\"props.modelValue && props.shadow\" class=\"pl-slide-modal__shadow\" @keyup.esc=\"emit('update:modelValue', false)\" />\n </Teleport>\n</template>\n"],"names":["__default__","emit","__emit","modal","ref","attrs","useAttrs","props","__props","useClickOutside","useEventListener","evt","_createBlock","_Teleport","_createVNode","TransitionSlidePanel","_openBlock","_createElementBlock","_mergeProps","_unref","_createElementVNode","_renderSlot","_ctx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,MAAAA,IAAe;AAAA,EACb,MAAM;AAAA,EACN,cAAc;AAChB;;;;;;;;;;AAWA,UAAMC,IAAOC,GAIPC,IAAQC,EAAA,GACRC,IAAQC,EAAA,GACRC,IAAQC;AAKd,WAAAC,EAAgBN,GAAO,MAAM;AAC3B,MAAII,EAAM,cAAcA,EAAM,uBAC5BN,EAAK,qBAAqB,EAAK;AAAA,IAEnC,CAAC,GAEDS,EAAiB,UAAU,WAAW,CAACC,MAAuB;AAC5D,MAAIA,EAAI,QAAQ,YACdV,EAAK,qBAAqB,EAAK;AAAA,IAEnC,CAAC,mBAICW,EAeWC,GAAA,EAfD,IAAG,UAAM;AAAA,MACjBC,EAYuBC,GAAA,MAAA;AAAA,mBAXrB,MAUM;AAAA,UATER,EAAM,cADdS,EAAA,GAAAC,EAUM,OAVNC,EAUM;AAAA;qBARA;AAAA,YAAJ,KAAIf;AAAA,YACJ,OAAM;AAAA,YACL,OAAK,EAAA,OAAWI,EAAM,MAAA;AAAA,UAAK,GACpBY,EAAAd,CAAA,GAAK;AAAA,YACZ,kCAAWJ,EAAI,qBAAA,EAAA,GAAA,CAAA,KAAA,CAAA;AAAA,UAAA;YAEhBmB,EAA0E,OAAA;AAAA,cAArE,OAAM;AAAA,cAAoB,gCAAOnB,EAAI,qBAAA,EAAA;AAAA,YAAA;YAC1CoB,EAAQC,EAAA,QAAA,SAAA;AAAA,UAAA;;;;MAGDf,EAAM,cAAcA,EAAM,eAArCU,EAA4H,OAAA;AAAA;QAA/E,OAAM;AAAA,QAA0B,kCAAWhB,EAAI,qBAAA,EAAA,GAAA,CAAA,KAAA,CAAA;AAAA,MAAA;;;;"}
1
+ {"version":3,"file":"PlPureSlideModal.vue.js","sources":["../../../src/components/PlSlideModal/PlPureSlideModal.vue"],"sourcesContent":["<script lang=\"ts\">\nexport default {\n name: 'PlPureSlideModal',\n inheritAttrs: false,\n};\n</script>\n\n<script lang=\"ts\" setup>\nimport './pl-slide-modal.scss';\nimport { ref, useAttrs } from 'vue';\nimport TransitionSlidePanel from '../TransitionSlidePanel.vue';\nimport { useClickOutside, useEventListener } from '../../index';\nimport type { Props } from './props';\nimport { defaultProps } from './props';\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', value: boolean): void;\n}>();\n\nconst modal = ref();\nconst attrs = useAttrs();\nconst props = withDefaults(\n defineProps<Props>(),\n defaultProps,\n);\n\nuseClickOutside(modal, () => {\n if (props.modelValue && props.closeOnOutsideClick) {\n emit('update:modelValue', false);\n }\n});\n\nuseEventListener(document, 'keydown', (evt: KeyboardEvent) => {\n if (evt.key === 'Escape') {\n emit('update:modelValue', false);\n }\n});\n</script>\n\n<template>\n <Teleport to=\"body\">\n <TransitionSlidePanel>\n <div\n v-if=\"props.modelValue\"\n ref=\"modal\"\n class=\"pl-slide-modal\"\n :style=\"{ width: props.width }\"\n v-bind=\"attrs\"\n @keyup.esc=\"emit('update:modelValue', false)\"\n >\n <div class=\"close-dialog-btn\" @click=\"emit('update:modelValue', false)\" />\n <slot />\n </div>\n </TransitionSlidePanel>\n <div v-if=\"props.modelValue && props.shadow\" class=\"pl-slide-modal__shadow\" @keyup.esc=\"emit('update:modelValue', false)\" />\n </Teleport>\n</template>\n"],"names":["__default__","emit","__emit","modal","ref","attrs","useAttrs","props","__props","useClickOutside","useEventListener","evt","_createBlock","_Teleport","_createVNode","TransitionSlidePanel","_openBlock","_createElementBlock","_mergeProps","_unref","_createElementVNode","_renderSlot","_ctx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,MAAAA,IAAe;AAAA,EACb,MAAM;AAAA,EACN,cAAc;AAChB;;;;;;;;;;AAWA,UAAMC,IAAOC,GAIPC,IAAQC,EAAA,GACRC,IAAQC,EAAA,GACRC,IAAQC;AAKd,WAAAC,EAAgBN,GAAO,MAAM;AAC3B,MAAII,EAAM,cAAcA,EAAM,uBAC5BN,EAAK,qBAAqB,EAAK;AAAA,IAEnC,CAAC,GAEDS,EAAiB,UAAU,WAAW,CAACC,MAAuB;AAC5D,MAAIA,EAAI,QAAQ,YACdV,EAAK,qBAAqB,EAAK;AAAA,IAEnC,CAAC,mBAICW,EAeWC,GAAA,EAfD,IAAG,UAAM;AAAA,MACjBC,EAYuBC,GAAA,MAAA;AAAA,mBAXrB,MAUM;AAAA,UATER,EAAM,cADdS,EAAA,GAAAC,EAUM,OAVNC,EAUM;AAAA;qBARA;AAAA,YAAJ,KAAIf;AAAA,YACJ,OAAM;AAAA,YACL,OAAK,EAAA,OAAWI,EAAM,MAAA;AAAA,UAAK,GACpBY,EAAAd,CAAA,GAAK;AAAA,YACZ,kCAAWJ,EAAI,qBAAA,EAAA,GAAA,CAAA,KAAA,CAAA;AAAA,UAAA;YAEhBmB,EAA0E,OAAA;AAAA,cAArE,OAAM;AAAA,cAAoB,gCAAOnB,EAAI,qBAAA,EAAA;AAAA,YAAA;YAC1CoB,EAAQC,EAAA,QAAA,SAAA;AAAA,UAAA;;;;MAGDf,EAAM,cAAcA,EAAM,eAArCU,EAA4H,OAAA;AAAA;QAA/E,OAAM;AAAA,QAA0B,kCAAWhB,EAAI,qBAAA,EAAA,GAAA,CAAA,KAAA,CAAA;AAAA,MAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PlPlaceholder.vue.d.ts","sourceRoot":"","sources":["../../../src/layout/PlPlaceholder/PlPlaceholder.vue"],"names":[],"mappings":"AAyJA,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC9B;;AAED,wBAkHK"}
1
+ {"version":3,"file":"PlPlaceholder.vue.d.ts","sourceRoot":"","sources":["../../../src/layout/PlPlaceholder/PlPlaceholder.vue"],"names":[],"mappings":"AAgKA,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC9B;;AASD,wBA8GK"}
@@ -1,6 +1,9 @@
1
- import { defineComponent as Z, useCssModule as d, createElementBlock as a, openBlock as o, normalizeClass as A, unref as C, createElementVNode as G, createVNode as e, toDisplayString as l, Fragment as s, renderList as t } from "vue";
2
- import B from "../../components/PlLoaderLogo.vue.js";
3
- const W = { key: 1 }, n = /* @__PURE__ */ Z({
1
+ import { defineComponent as d, useCssModule as u, createElementBlock as o, openBlock as l, normalizeClass as r, unref as t, createElementVNode as s, createVNode as m, toDisplayString as n, Fragment as p, renderList as v } from "vue";
2
+ import b from "../../components/PlLoaderLogo.vue.js";
3
+ import y from "./paint-worklet.js";
4
+ const g = { key: 1 }, k = new Blob([y], { type: "application/javascript" }), f = URL.createObjectURL(k);
5
+ CSS.paintWorklet.addModule(f);
6
+ const P = /* @__PURE__ */ d({
4
7
  __name: "PlPlaceholder",
5
8
  props: {
6
9
  variant: {},
@@ -12,34 +15,34 @@ const W = { key: 1 }, n = /* @__PURE__ */ Z({
12
15
  "Processing may take minutes to hours"
13
16
  ] }
14
17
  },
15
- setup(I) {
16
- const g = d();
17
- return CSS.paintWorklet.addModule(new URL("data:text/javascript;base64,cmVnaXN0ZXJQYWludCgKICAncGwtcGxhY2Vob2xkZXItdGFibGUtc2tlbGV0b24nLAogIGNsYXNzIHsKICAgIC8qKgogICAgICogQHBhcmFtIHtDYW52YXNSZW5kZXJpbmdDb250ZXh0MkR9IGN0eAogICAgICogQHBhcmFtIHtPYmplY3R9IHNpemUKICAgICAqIEBwYXJhbSB7bnVtYmVyfSBzaXplLndpZHRoCiAgICAgKiBAcGFyYW0ge251bWJlcn0gc2l6ZS5oZWlnaHQKICAgICAqLwogICAgcGFpbnQoY3R4LCB7IHdpZHRoLCBoZWlnaHQgfSkgewogICAgICBjb25zdCBoZWFkZXJIZWlnaHQgPSA0MjsKICAgICAgY29uc3QgaGVhZGVyV2lkdGggPSA0ODsKCiAgICAgIGN0eC5maWxsU3R5bGUgPSAnI0Y3RjhGQSc7CgogICAgICAvLyBoZWFkZXJzCiAgICAgIHsKICAgICAgICBjb25zdCBwYXRoID0gbmV3IFBhdGgyRCgpOwogICAgICAgIHBhdGgubGluZVRvKHdpZHRoLCAwKTsKICAgICAgICBwYXRoLmxpbmVUbyh3aWR0aCwgaGVhZGVySGVpZ2h0KTsKICAgICAgICBwYXRoLmxpbmVUbyhoZWFkZXJXaWR0aCwgaGVhZGVySGVpZ2h0KTsKICAgICAgICBwYXRoLmxpbmVUbyhoZWFkZXJXaWR0aCwgaGVpZ2h0KTsKICAgICAgICBwYXRoLmxpbmVUbygwLCBoZWlnaHQpOwogICAgICAgIHBhdGgubGluZVRvKDAsIDApOwogICAgICAgIGN0eC5maWxsKHBhdGgpOwogICAgICB9CgogICAgICBjdHguc3Ryb2tlU3R5bGUgPSAnI0UxRTNFQic7CgogICAgICAvLyB2ZXJ0aWNhbCBsaW5lcwogICAgICBjb25zdCBjb2x1bW5XaWR0aCA9ICh3aWR0aCAtIGhlYWRlcldpZHRoKSAvIDY7CiAgICAgIGZvciAoCiAgICAgICAgbGV0IGhvcml6b250YWxQb3NpdGlvbiA9IGhlYWRlcldpZHRoOwogICAgICAgIGhvcml6b250YWxQb3NpdGlvbiA8IHdpZHRoOwogICAgICAgIGhvcml6b250YWxQb3NpdGlvbiArPSBjb2x1bW5XaWR0aAogICAgICApIHsKICAgICAgICBjb25zdCBwYXRoID0gbmV3IFBhdGgyRCgpOwogICAgICAgIHBhdGgubW92ZVRvKGhvcml6b250YWxQb3NpdGlvbiwgMCk7CiAgICAgICAgcGF0aC5saW5lVG8oaG9yaXpvbnRhbFBvc2l0aW9uLCBoZWlnaHQpOwogICAgICAgIGN0eC5zdHJva2UocGF0aCk7CiAgICAgIH0KCiAgICAgIC8vIGhvcml6b250YWwgbGluZXMKICAgICAgZm9yICgKICAgICAgICBsZXQgdmVydGljYWxQb3NpdGlvbiA9IGhlYWRlckhlaWdodDsKICAgICAgICB2ZXJ0aWNhbFBvc2l0aW9uIDwgaGVpZ2h0OwogICAgICAgIHZlcnRpY2FsUG9zaXRpb24gKz0gaGVhZGVySGVpZ2h0CiAgICAgICkgewogICAgICAgIGNvbnN0IHBhdGggPSBuZXcgUGF0aDJEKCk7CiAgICAgICAgcGF0aC5tb3ZlVG8oMCwgdmVydGljYWxQb3NpdGlvbik7CiAgICAgICAgcGF0aC5saW5lVG8od2lkdGgsIHZlcnRpY2FsUG9zaXRpb24pOwogICAgICAgIGN0eC5zdHJva2UocGF0aCk7CiAgICAgIH0KICAgIH0KICB9LAopOwoKcmVnaXN0ZXJQYWludCgKICAncGwtcGxhY2Vob2xkZXItZ3JhcGgtc2tlbGV0b24nLAogIGNsYXNzIHsKICAgIC8qKgogICAgICogQHBhcmFtIHtDYW52YXNSZW5kZXJpbmdDb250ZXh0MkR9IGN0eAogICAgICogQHBhcmFtIHtPYmplY3R9IHNpemUKICAgICAqIEBwYXJhbSB7bnVtYmVyfSBzaXplLndpZHRoCiAgICAgKiBAcGFyYW0ge251bWJlcn0gc2l6ZS5oZWlnaHQKICAgICAqLwogICAgcGFpbnQoY3R4LCB7IHdpZHRoLCBoZWlnaHQgfSkgewogICAgICBjb25zdCBwYWRkaW5nID0gNjsKICAgICAgY29uc3QgY2VsbFdpZHRoID0gMTAwOwogICAgICBjb25zdCBjZWxsSGVpZ2h0ID0gNjA7CgogICAgICBjdHguc3Ryb2tlU3R5bGUgPSAnI0UxRTNFQic7CgogICAgICAvLyB2ZXJ0aWNhbCBsaW5lcwogICAgICBmb3IgKAogICAgICAgIGxldCBob3Jpem9udGFsUG9zaXRpb24gPSBjZWxsV2lkdGggKyBwYWRkaW5nOwogICAgICAgIGhvcml6b250YWxQb3NpdGlvbiA8PSB3aWR0aDsKICAgICAgICBob3Jpem9udGFsUG9zaXRpb24gKz0gY2VsbFdpZHRoCiAgICAgICkgewogICAgICAgIGNvbnN0IHBhdGggPSBuZXcgUGF0aDJEKCk7CiAgICAgICAgcGF0aC5tb3ZlVG8oaG9yaXpvbnRhbFBvc2l0aW9uLCAwKTsKICAgICAgICBwYXRoLmxpbmVUbyhob3Jpem9udGFsUG9zaXRpb24sIGhlaWdodCAtIHBhZGRpbmcpOwogICAgICAgIGN0eC5zdHJva2UocGF0aCk7CiAgICAgIH0KCiAgICAgIC8vIGhvcml6b250YWwgbGluZXMKICAgICAgZm9yICgKICAgICAgICBsZXQgdmVydGljYWxQb3NpdGlvbiA9IGhlaWdodCAtIHBhZGRpbmcgLSBjZWxsSGVpZ2h0OwogICAgICAgIHZlcnRpY2FsUG9zaXRpb24gPj0gMDsKICAgICAgICB2ZXJ0aWNhbFBvc2l0aW9uIC09IGNlbGxIZWlnaHQKICAgICAgKSB7CiAgICAgICAgY29uc3QgcGF0aCA9IG5ldyBQYXRoMkQoKTsKICAgICAgICBwYXRoLm1vdmVUbyhwYWRkaW5nLCB2ZXJ0aWNhbFBvc2l0aW9uKTsKICAgICAgICBwYXRoLmxpbmVUbyh3aWR0aCwgdmVydGljYWxQb3NpdGlvbik7CiAgICAgICAgY3R4LnN0cm9rZShwYXRoKTsKICAgICAgfQoKICAgICAgY3R4LnN0cm9rZVN0eWxlID0gJyMxMTA1MjknOwoKICAgICAgLy8gdmVydGljYWwgYXJyb3cKICAgICAgewogICAgICAgIGNvbnN0IHBhdGggPSBuZXcgUGF0aDJEKCk7CiAgICAgICAgcGF0aC5tb3ZlVG8ocGFkZGluZywgaGVpZ2h0IC0gcGFkZGluZyk7CiAgICAgICAgcGF0aC5saW5lVG8ocGFkZGluZywgMCk7CiAgICAgICAgcGF0aC5saW5lVG8oMCwgcGFkZGluZyk7CiAgICAgICAgcGF0aC5tb3ZlVG8ocGFkZGluZywgMCk7CiAgICAgICAgcGF0aC5saW5lVG8ocGFkZGluZyAqIDIsIHBhZGRpbmcpOwogICAgICAgIGN0eC5zdHJva2UocGF0aCk7CiAgICAgIH0KCiAgICAgIC8vIGhvcml6b250YWwgYXJyb3cKICAgICAgewogICAgICAgIGNvbnN0IHBhdGggPSBuZXcgUGF0aDJEKCk7CiAgICAgICAgcGF0aC5tb3ZlVG8ocGFkZGluZywgaGVpZ2h0IC0gcGFkZGluZyk7CiAgICAgICAgcGF0aC5saW5lVG8od2lkdGgsIGhlaWdodCAtIHBhZGRpbmcpOwogICAgICAgIHBhdGgubGluZVRvKHdpZHRoIC0gcGFkZGluZywgaGVpZ2h0IC0gcGFkZGluZyAqIDIpOwogICAgICAgIHBhdGgubW92ZVRvKHdpZHRoLCBoZWlnaHQgLSBwYWRkaW5nKTsKICAgICAgICBwYXRoLmxpbmVUbyh3aWR0aCAtIHBhZGRpbmcsIGhlaWdodCk7CiAgICAgICAgY3R4LnN0cm9rZShwYXRoKTsKICAgICAgfQogICAgfQogIH0sCik7Cg==", import.meta.url)), (p, h) => (o(), a("div", {
18
- class: A(C(g).root)
18
+ setup(a) {
19
+ const e = u();
20
+ return (h, L) => (l(), o("div", {
21
+ class: r(t(e).root)
19
22
  }, [
20
- G("div", {
21
- class: A([C(g).background, {
22
- [C(g).table]: I.variant === "table",
23
- [C(g).graph]: I.variant === "graph"
23
+ s("div", {
24
+ class: r([t(e).background, {
25
+ [t(e).table]: a.variant === "table",
26
+ [t(e).graph]: a.variant === "graph"
24
27
  }])
25
28
  }, null, 2),
26
- G("div", {
27
- class: A(C(g).content)
29
+ s("div", {
30
+ class: r(t(e).content)
28
31
  }, [
29
- e(B, {
32
+ m(b, {
30
33
  size: 64,
31
34
  color: "var(--color-div-grey)"
32
35
  }),
33
- G("div", {
34
- class: A(C(g).text)
36
+ s("div", {
37
+ class: r(t(e).text)
35
38
  }, [
36
- G("div", {
37
- class: A(C(g).title)
38
- }, l(I.title), 3),
39
- G("div", {
40
- class: A(C(g).subtitle)
39
+ s("div", {
40
+ class: r(t(e).title)
41
+ }, n(a.title), 3),
42
+ s("div", {
43
+ class: r(t(e).subtitle)
41
44
  }, [
42
- Array.isArray(I.subtitle) ? (o(!0), a(s, { key: 0 }, t(I.subtitle, (b, c) => (o(), a("span", { key: c }, l(b), 1))), 128)) : (o(), a("span", W, l(I.subtitle), 1))
45
+ Array.isArray(a.subtitle) ? (l(!0), o(p, { key: 0 }, v(a.subtitle, (i, c) => (l(), o("span", { key: c }, n(i), 1))), 128)) : (l(), o("span", g, n(a.subtitle), 1))
43
46
  ], 2)
44
47
  ], 2)
45
48
  ], 2)
@@ -47,6 +50,6 @@ const W = { key: 1 }, n = /* @__PURE__ */ Z({
47
50
  }
48
51
  });
49
52
  export {
50
- n as default
53
+ P as default
51
54
  };
52
55
  //# sourceMappingURL=PlPlaceholder.vue2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PlPlaceholder.vue2.js","sources":["../../../src/layout/PlPlaceholder/PlPlaceholder.vue"],"sourcesContent":["<script lang=\"ts\">\nexport interface PlPlaceholderProps {\n variant?: 'table' | 'graph';\n title?: string;\n subtitle?: string | string[];\n}\n</script>\n\n<script setup lang=\"ts\">\nimport { useCssModule } from 'vue';\nimport PlLoaderLogo from '../../components/PlLoaderLogo.vue';\n\nconst {\n variant,\n title = 'Running analysis...',\n subtitle = [\n 'No action needed—the job is active',\n 'Larger datasets take longer to process',\n 'Results will appear here as soon as they’re ready',\n 'Processing may take minutes to hours',\n ],\n} = defineProps<PlPlaceholderProps>();\n\nconst styles = useCssModule();\n\n(CSS as unknown as {\n paintWorklet: { addModule: (url: URL) => void };\n}).paintWorklet.addModule(new URL('paint-worklet.js', import.meta.url));\n</script>\n\n<template>\n <div :class=\"styles.root\">\n <div\n :class=\"[styles.background, {\n [styles.table]: variant === 'table',\n [styles.graph]: variant === 'graph',\n }]\"\n />\n <div :class=\"styles.content\">\n <PlLoaderLogo :size=\"64\" color=\"var(--color-div-grey)\" />\n <div :class=\"styles.text\">\n <div :class=\"styles.title\">{{ title }}</div>\n <div :class=\"styles.subtitle\">\n <template v-if=\"Array.isArray(subtitle)\">\n <span v-for=\"(item, key) of subtitle\" :key>{{ item }}</span>\n </template>\n <span v-else>{{ subtitle }}</span>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<style module>\n.root {\n block-size: 100%;\n inline-size: 100%;\n position: relative;\n user-select: none;\n background-color: var(--bg-elevated-01);\n}\n\n.background {\n position: absolute;\n inset: 0;\n pointer-events: none;\n mask: linear-gradient(transparent 35%, #000 40% 60%, transparent 65%);\n mask-size: 100% 300%;\n animation-duration: 5s;\n animation-iteration-count: infinite;\n animation-name: slide;\n &.table {\n background-image: paint(pl-placeholder-table-skeleton);\n }\n &.graph {\n background-image: paint(pl-placeholder-graph-skeleton);\n }\n}\n\n.content {\n position: absolute;\n inset: 0;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: 12px;\n}\n\n.text {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 4px;\n -webkit-text-stroke-color: white;\n -webkit-text-stroke-width: 4px;\n paint-order: stroke;\n}\n\n.title {\n color: var(--txt-03);\n font-size: 20px;\n font-weight: 500;\n line-height: 24px;\n letter-spacing: -0.2px;\n}\n\n.subtitle {\n color: var(--txt-03);\n font-weight: 500;\n line-height: 20px;\n display: grid;\n span {\n grid-area: 1 / 1;\n text-align: center;\n animation-name: active-subtitle;\n animation-duration: calc(6s * sibling-count());\n animation-iteration-count: infinite;\n animation-timing-function: steps(sibling-count(), jump-none);\n visibility: if(\n style(--pl-placeholder-active-subtitle: sibling-index()): visible;\n else: hidden;\n );\n }\n}\n\n@keyframes slide {\n from {\n mask-position: 0 100%;\n }\n}\n\n@keyframes active-subtitle {\n from {\n --pl-placeholder-active-subtitle: 1;\n }\n to {\n --pl-placeholder-active-subtitle: sibling-count();\n }\n}\n\n@property --pl-placeholder-active-subtitle {\n syntax: '<number>';\n inherits: false;\n initial-value: 1;\n}\n</style>\n"],"names":["styles","useCssModule","_createElementBlock","_normalizeClass","_unref","_createElementVNode","__props","_createVNode","PlLoaderLogo","_openBlock","_Fragment","_renderList","item","key"],"mappings":";;;;;;;;;;;;;;;AAuBA,UAAMA,IAASC,EAAA;AAEd,eAEE,aAAa,UAAU,IAAA,IAAA,4rIAAA,YAAA,GAAA,CAA4C,mBAIpEC,EAmBM,OAAA;AAAA,MAnBA,OAAKC,EAAEC,EAAAJ,CAAA,EAAO,IAAI;AAAA,IAAA;MACtBK,EAKE,OAAA;AAAA,QAJC,OAAKF,EAAA,CAAGC,EAAAJ,CAAA,EAAO,YAAU;AAAA,WAAaI,EAAAJ,CAAA,EAAO,KAAK,GAAGM,EAAA,YAAO;AAAA,WAAuBF,EAAAJ,CAAA,EAAO,KAAK,GAAGM,EAAA,YAAO;AAAA,QAAA;;MAK5GD,EAWM,OAAA;AAAA,QAXA,OAAKF,EAAEC,EAAAJ,CAAA,EAAO,OAAO;AAAA,MAAA;QACzBO,EAAyDC,GAAA;AAAA,UAA1C,MAAM;AAAA,UAAI,OAAM;AAAA,QAAA;QAC/BH,EAQM,OAAA;AAAA,UARA,OAAKF,EAAEC,EAAAJ,CAAA,EAAO,IAAI;AAAA,QAAA;UACtBK,EAA4C,OAAA;AAAA,YAAtC,OAAKF,EAAEC,EAAAJ,CAAA,EAAO,KAAK;AAAA,UAAA,KAAKM,EAAA,KAAK,GAAA,CAAA;AAAA,UACnCD,EAKM,OAAA;AAAA,YALA,OAAKF,EAAEC,EAAAJ,CAAA,EAAO,QAAQ;AAAA,UAAA;YACV,MAAM,QAAQM,EAAA,QAAQ,KACpCG,EAAA,EAAA,GAAAP,EAA4DQ,GAAA,EAAA,KAAA,KAAAC,EAAhCL,EAAA,UAAQ,CAAtBM,GAAMC,OAApBJ,EAAA,GAAAP,EAA4D,QAAA,EAArB,KAAAW,OAAOD,CAAI,GAAA,CAAA,cAEpDH,EAAA,GAAAP,EAAkC,aAAlBI,EAAA,QAAQ,GAAA,CAAA;AAAA,UAAA;;;;;;"}
1
+ {"version":3,"file":"PlPlaceholder.vue2.js","sources":["../../../src/layout/PlPlaceholder/PlPlaceholder.vue"],"sourcesContent":["<script lang=\"ts\">\nimport paintWorkletCode from './paint-worklet.js?raw';\n\nexport interface PlPlaceholderProps {\n variant?: 'table' | 'graph';\n title?: string;\n subtitle?: string | string[];\n}\n\n// Register paint worklet once at module load (uses blob URL to comply with CSP)\nconst workletBlob = new Blob([paintWorkletCode], { type: 'application/javascript' });\nconst workletUrl = URL.createObjectURL(workletBlob);\n(CSS as unknown as {\n paintWorklet: { addModule: (url: string) => void };\n}).paintWorklet.addModule(workletUrl);\n</script>\n\n<script setup lang=\"ts\">\nimport { useCssModule } from 'vue';\nimport PlLoaderLogo from '../../components/PlLoaderLogo.vue';\n\nconst {\n variant,\n title = 'Running analysis...',\n subtitle = [\n 'No action needed—the job is active',\n 'Larger datasets take longer to process',\n 'Results will appear here as soon as they’re ready',\n 'Processing may take minutes to hours',\n ],\n} = defineProps<PlPlaceholderProps>();\n\nconst styles = useCssModule();\n</script>\n\n<template>\n <div :class=\"styles.root\">\n <div\n :class=\"[styles.background, {\n [styles.table]: variant === 'table',\n [styles.graph]: variant === 'graph',\n }]\"\n />\n <div :class=\"styles.content\">\n <PlLoaderLogo :size=\"64\" color=\"var(--color-div-grey)\" />\n <div :class=\"styles.text\">\n <div :class=\"styles.title\">{{ title }}</div>\n <div :class=\"styles.subtitle\">\n <template v-if=\"Array.isArray(subtitle)\">\n <span v-for=\"(item, key) of subtitle\" :key>{{ item }}</span>\n </template>\n <span v-else>{{ subtitle }}</span>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<style module>\n.root {\n block-size: 100%;\n inline-size: 100%;\n position: relative;\n user-select: none;\n background-color: var(--bg-elevated-01);\n}\n\n.background {\n position: absolute;\n inset: 0;\n pointer-events: none;\n mask: linear-gradient(transparent 35%, #000 40% 60%, transparent 65%);\n mask-size: 100% 300%;\n animation-duration: 5s;\n animation-iteration-count: infinite;\n animation-name: slide;\n &.table {\n background-image: paint(pl-placeholder-table-skeleton);\n }\n &.graph {\n background-image: paint(pl-placeholder-graph-skeleton);\n }\n}\n\n.content {\n position: absolute;\n inset: 0;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: 12px;\n}\n\n.text {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 4px;\n -webkit-text-stroke-color: white;\n -webkit-text-stroke-width: 4px;\n paint-order: stroke;\n}\n\n.title {\n color: var(--txt-03);\n font-size: 20px;\n font-weight: 500;\n line-height: 24px;\n letter-spacing: -0.2px;\n}\n\n.subtitle {\n color: var(--txt-03);\n font-weight: 500;\n line-height: 20px;\n display: grid;\n span {\n grid-area: 1 / 1;\n text-align: center;\n animation-name: active-subtitle;\n animation-duration: calc(6s * sibling-count());\n animation-iteration-count: infinite;\n animation-timing-function: steps(sibling-count(), jump-none);\n visibility: if(\n style(--pl-placeholder-active-subtitle: sibling-index()): visible;\n else: hidden;\n );\n }\n}\n\n@keyframes slide {\n from {\n mask-position: 0 100%;\n }\n}\n\n@keyframes active-subtitle {\n from {\n --pl-placeholder-active-subtitle: 1;\n }\n to {\n --pl-placeholder-active-subtitle: sibling-count();\n }\n}\n\n@property --pl-placeholder-active-subtitle {\n syntax: '<number>';\n inherits: false;\n initial-value: 1;\n}\n</style>\n"],"names":["workletBlob","paintWorkletCode","workletUrl","styles","useCssModule","_createElementBlock","_normalizeClass","_unref","_createElementVNode","__props","_createVNode","PlLoaderLogo","_openBlock","_Fragment","_renderList","item","key"],"mappings":";;;sBAUMA,IAAc,IAAI,KAAK,CAACC,CAAgB,GAAG,EAAE,MAAM,0BAA0B,GAC7EC,IAAa,IAAI,gBAAgBF,CAAW;AACjD,IAEE,aAAa,UAAUE,CAAU;;;;;;;;;;;;;;AAkBpC,UAAMC,IAASC,EAAA;2BAIbC,EAmBM,OAAA;AAAA,MAnBA,OAAKC,EAAEC,EAAAJ,CAAA,EAAO,IAAI;AAAA,IAAA;MACtBK,EAKE,OAAA;AAAA,QAJC,OAAKF,EAAA,CAAGC,EAAAJ,CAAA,EAAO,YAAU;AAAA,WAAaI,EAAAJ,CAAA,EAAO,KAAK,GAAGM,EAAA,YAAO;AAAA,WAAuBF,EAAAJ,CAAA,EAAO,KAAK,GAAGM,EAAA,YAAO;AAAA,QAAA;;MAK5GD,EAWM,OAAA;AAAA,QAXA,OAAKF,EAAEC,EAAAJ,CAAA,EAAO,OAAO;AAAA,MAAA;QACzBO,EAAyDC,GAAA;AAAA,UAA1C,MAAM;AAAA,UAAI,OAAM;AAAA,QAAA;QAC/BH,EAQM,OAAA;AAAA,UARA,OAAKF,EAAEC,EAAAJ,CAAA,EAAO,IAAI;AAAA,QAAA;UACtBK,EAA4C,OAAA;AAAA,YAAtC,OAAKF,EAAEC,EAAAJ,CAAA,EAAO,KAAK;AAAA,UAAA,KAAKM,EAAA,KAAK,GAAA,CAAA;AAAA,UACnCD,EAKM,OAAA;AAAA,YALA,OAAKF,EAAEC,EAAAJ,CAAA,EAAO,QAAQ;AAAA,UAAA;YACV,MAAM,QAAQM,EAAA,QAAQ,KACpCG,EAAA,EAAA,GAAAP,EAA4DQ,GAAA,EAAA,KAAA,KAAAC,EAAhCL,EAAA,UAAQ,CAAtBM,GAAMC,OAApBJ,EAAA,GAAAP,EAA4D,QAAA,EAArB,KAAAW,OAAOD,CAAI,GAAA,CAAA,cAEpDH,EAAA,GAAAP,EAAkC,aAAlBI,EAAA,QAAQ,GAAA,CAAA;AAAA,UAAA;;;;;;"}
@@ -0,0 +1,128 @@
1
+ const n = `registerPaint(
2
+ 'pl-placeholder-table-skeleton',
3
+ class {
4
+ /**
5
+ * @param {CanvasRenderingContext2D} ctx
6
+ * @param {Object} size
7
+ * @param {number} size.width
8
+ * @param {number} size.height
9
+ */
10
+ paint(ctx, { width, height }) {
11
+ const headerHeight = 42;
12
+ const headerWidth = 48;
13
+
14
+ ctx.fillStyle = '#F7F8FA';
15
+
16
+ // headers
17
+ {
18
+ const path = new Path2D();
19
+ path.lineTo(width, 0);
20
+ path.lineTo(width, headerHeight);
21
+ path.lineTo(headerWidth, headerHeight);
22
+ path.lineTo(headerWidth, height);
23
+ path.lineTo(0, height);
24
+ path.lineTo(0, 0);
25
+ ctx.fill(path);
26
+ }
27
+
28
+ ctx.strokeStyle = '#E1E3EB';
29
+
30
+ // vertical lines
31
+ const columnWidth = (width - headerWidth) / 6;
32
+ for (
33
+ let horizontalPosition = headerWidth;
34
+ horizontalPosition < width;
35
+ horizontalPosition += columnWidth
36
+ ) {
37
+ const path = new Path2D();
38
+ path.moveTo(horizontalPosition, 0);
39
+ path.lineTo(horizontalPosition, height);
40
+ ctx.stroke(path);
41
+ }
42
+
43
+ // horizontal lines
44
+ for (
45
+ let verticalPosition = headerHeight;
46
+ verticalPosition < height;
47
+ verticalPosition += headerHeight
48
+ ) {
49
+ const path = new Path2D();
50
+ path.moveTo(0, verticalPosition);
51
+ path.lineTo(width, verticalPosition);
52
+ ctx.stroke(path);
53
+ }
54
+ }
55
+ },
56
+ );
57
+
58
+ registerPaint(
59
+ 'pl-placeholder-graph-skeleton',
60
+ class {
61
+ /**
62
+ * @param {CanvasRenderingContext2D} ctx
63
+ * @param {Object} size
64
+ * @param {number} size.width
65
+ * @param {number} size.height
66
+ */
67
+ paint(ctx, { width, height }) {
68
+ const padding = 6;
69
+ const cellWidth = 100;
70
+ const cellHeight = 60;
71
+
72
+ ctx.strokeStyle = '#E1E3EB';
73
+
74
+ // vertical lines
75
+ for (
76
+ let horizontalPosition = cellWidth + padding;
77
+ horizontalPosition <= width;
78
+ horizontalPosition += cellWidth
79
+ ) {
80
+ const path = new Path2D();
81
+ path.moveTo(horizontalPosition, 0);
82
+ path.lineTo(horizontalPosition, height - padding);
83
+ ctx.stroke(path);
84
+ }
85
+
86
+ // horizontal lines
87
+ for (
88
+ let verticalPosition = height - padding - cellHeight;
89
+ verticalPosition >= 0;
90
+ verticalPosition -= cellHeight
91
+ ) {
92
+ const path = new Path2D();
93
+ path.moveTo(padding, verticalPosition);
94
+ path.lineTo(width, verticalPosition);
95
+ ctx.stroke(path);
96
+ }
97
+
98
+ ctx.strokeStyle = '#110529';
99
+
100
+ // vertical arrow
101
+ {
102
+ const path = new Path2D();
103
+ path.moveTo(padding, height - padding);
104
+ path.lineTo(padding, 0);
105
+ path.lineTo(0, padding);
106
+ path.moveTo(padding, 0);
107
+ path.lineTo(padding * 2, padding);
108
+ ctx.stroke(path);
109
+ }
110
+
111
+ // horizontal arrow
112
+ {
113
+ const path = new Path2D();
114
+ path.moveTo(padding, height - padding);
115
+ path.lineTo(width, height - padding);
116
+ path.lineTo(width - padding, height - padding * 2);
117
+ path.moveTo(width, height - padding);
118
+ path.lineTo(width - padding, height);
119
+ ctx.stroke(path);
120
+ }
121
+ }
122
+ },
123
+ );
124
+ `;
125
+ export {
126
+ n as default
127
+ };
128
+ //# sourceMappingURL=paint-worklet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paint-worklet.js","sources":["../../../src/layout/PlPlaceholder/paint-worklet.js?raw"],"sourcesContent":["export default \"registerPaint(\\n 'pl-placeholder-table-skeleton',\\n class {\\n /**\\n * @param {CanvasRenderingContext2D} ctx\\n * @param {Object} size\\n * @param {number} size.width\\n * @param {number} size.height\\n */\\n paint(ctx, { width, height }) {\\n const headerHeight = 42;\\n const headerWidth = 48;\\n\\n ctx.fillStyle = '#F7F8FA';\\n\\n // headers\\n {\\n const path = new Path2D();\\n path.lineTo(width, 0);\\n path.lineTo(width, headerHeight);\\n path.lineTo(headerWidth, headerHeight);\\n path.lineTo(headerWidth, height);\\n path.lineTo(0, height);\\n path.lineTo(0, 0);\\n ctx.fill(path);\\n }\\n\\n ctx.strokeStyle = '#E1E3EB';\\n\\n // vertical lines\\n const columnWidth = (width - headerWidth) / 6;\\n for (\\n let horizontalPosition = headerWidth;\\n horizontalPosition < width;\\n horizontalPosition += columnWidth\\n ) {\\n const path = new Path2D();\\n path.moveTo(horizontalPosition, 0);\\n path.lineTo(horizontalPosition, height);\\n ctx.stroke(path);\\n }\\n\\n // horizontal lines\\n for (\\n let verticalPosition = headerHeight;\\n verticalPosition < height;\\n verticalPosition += headerHeight\\n ) {\\n const path = new Path2D();\\n path.moveTo(0, verticalPosition);\\n path.lineTo(width, verticalPosition);\\n ctx.stroke(path);\\n }\\n }\\n },\\n);\\n\\nregisterPaint(\\n 'pl-placeholder-graph-skeleton',\\n class {\\n /**\\n * @param {CanvasRenderingContext2D} ctx\\n * @param {Object} size\\n * @param {number} size.width\\n * @param {number} size.height\\n */\\n paint(ctx, { width, height }) {\\n const padding = 6;\\n const cellWidth = 100;\\n const cellHeight = 60;\\n\\n ctx.strokeStyle = '#E1E3EB';\\n\\n // vertical lines\\n for (\\n let horizontalPosition = cellWidth + padding;\\n horizontalPosition <= width;\\n horizontalPosition += cellWidth\\n ) {\\n const path = new Path2D();\\n path.moveTo(horizontalPosition, 0);\\n path.lineTo(horizontalPosition, height - padding);\\n ctx.stroke(path);\\n }\\n\\n // horizontal lines\\n for (\\n let verticalPosition = height - padding - cellHeight;\\n verticalPosition >= 0;\\n verticalPosition -= cellHeight\\n ) {\\n const path = new Path2D();\\n path.moveTo(padding, verticalPosition);\\n path.lineTo(width, verticalPosition);\\n ctx.stroke(path);\\n }\\n\\n ctx.strokeStyle = '#110529';\\n\\n // vertical arrow\\n {\\n const path = new Path2D();\\n path.moveTo(padding, height - padding);\\n path.lineTo(padding, 0);\\n path.lineTo(0, padding);\\n path.moveTo(padding, 0);\\n path.lineTo(padding * 2, padding);\\n ctx.stroke(path);\\n }\\n\\n // horizontal arrow\\n {\\n const path = new Path2D();\\n path.moveTo(padding, height - padding);\\n path.lineTo(width, height - padding);\\n path.lineTo(width - padding, height - padding * 2);\\n path.moveTo(width, height - padding);\\n path.lineTo(width - padding, height);\\n ctx.stroke(path);\\n }\\n }\\n },\\n);\\n\""],"names":["paintWorkletCode"],"mappings":"AAAA,MAAAA,IAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
package/package.json CHANGED
@@ -1,11 +1,12 @@
1
1
  {
2
2
  "name": "@milaboratories/uikit",
3
- "version": "2.8.6",
3
+ "version": "2.8.7",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "exports": {
7
7
  ".": {
8
8
  "sources": "./src/index.ts",
9
+ "types": "./dist/index.d.ts",
9
10
  "default": "./dist/index.js"
10
11
  },
11
12
  "./styles": "./dist/index.js",
@@ -42,10 +43,10 @@
42
43
  "yarpm": "^1.2.0",
43
44
  "svgo": "^3.3.2",
44
45
  "typescript": "~5.6.3",
45
- "@milaboratories/ts-configs": "1.2.0",
46
46
  "@milaboratories/build-configs": "1.2.1",
47
+ "@milaboratories/eslint-config": "1.0.5",
47
48
  "@milaboratories/ts-builder": "1.2.1",
48
- "@milaboratories/eslint-config": "1.0.5"
49
+ "@milaboratories/ts-configs": "1.2.0"
49
50
  },
50
51
  "scripts": {
51
52
  "dev": "ts-builder serve --target browser-lib --build-config ./build.browser-lib.config.js",
@@ -1,9 +1,18 @@
1
1
  <script lang="ts">
2
+ import paintWorkletCode from './paint-worklet.js?raw';
3
+
2
4
  export interface PlPlaceholderProps {
3
5
  variant?: 'table' | 'graph';
4
6
  title?: string;
5
7
  subtitle?: string | string[];
6
8
  }
9
+
10
+ // Register paint worklet once at module load (uses blob URL to comply with CSP)
11
+ const workletBlob = new Blob([paintWorkletCode], { type: 'application/javascript' });
12
+ const workletUrl = URL.createObjectURL(workletBlob);
13
+ (CSS as unknown as {
14
+ paintWorklet: { addModule: (url: string) => void };
15
+ }).paintWorklet.addModule(workletUrl);
7
16
  </script>
8
17
 
9
18
  <script setup lang="ts">
@@ -22,10 +31,6 @@ const {
22
31
  } = defineProps<PlPlaceholderProps>();
23
32
 
24
33
  const styles = useCssModule();
25
-
26
- (CSS as unknown as {
27
- paintWorklet: { addModule: (url: URL) => void };
28
- }).paintWorklet.addModule(new URL('paint-worklet.js', import.meta.url));
29
34
  </script>
30
35
 
31
36
  <template>
package/vitest.config.mts CHANGED
@@ -11,6 +11,9 @@ export default defineConfig((configEnv) =>
11
11
  environment: 'jsdom',
12
12
  exclude: [...configDefaults.exclude, 'e2e/**'],
13
13
  root: fileURLToPath(new URL('./', import.meta.url)),
14
+ coverage: {
15
+ reporter: ['text'],
16
+ },
14
17
  },
15
18
  }),
16
19
  ),
@@ -1,27 +0,0 @@
1
- import { defineComponent as n, createBlock as r, openBlock as a, Transition as s, withCtx as p, renderSlot as c } from "vue";
2
- const f = /* @__PURE__ */ n({
3
- __name: "ExpandTransition",
4
- setup(l) {
5
- const t = (e) => {
6
- e.classList.add("expand-collapse-fix"), e.style.setProperty("--component-height", e.scrollHeight + "px");
7
- }, o = (e) => {
8
- e.style.removeProperty("--component-height"), e.classList.remove("expand-collapse-fix");
9
- };
10
- return (e, i) => (a(), r(s, {
11
- name: "expand-collapse",
12
- onEnter: t,
13
- onLeave: t,
14
- onAfterEnter: o,
15
- onAfterLeave: o
16
- }, {
17
- default: p(() => [
18
- c(e.$slots, "default")
19
- ]),
20
- _: 3
21
- }));
22
- }
23
- });
24
- export {
25
- f as default
26
- };
27
- //# sourceMappingURL=ExpandTransition.vue.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ExpandTransition.vue.js","sources":["../../../src/components/PlAccordion/ExpandTransition.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nconst onStart = (el: Element) => {\n el.classList.add('expand-collapse-fix');\n (el as HTMLElement).style.setProperty('--component-height', el.scrollHeight + 'px');\n};\n\nconst onAfter = (el: Element) => {\n (el as HTMLElement).style.removeProperty('--component-height');\n el.classList.remove('expand-collapse-fix');\n};\n</script>\n\n<template>\n <Transition name=\"expand-collapse\" @enter=\"onStart\" @leave=\"onStart\" @after-enter=\"onAfter\" @after-leave=\"onAfter\">\n <slot/>\n </Transition>\n</template>\n\n<style>\n.expand-collapse-fix {\n overflow: hidden;\n}\n\n.expand-collapse-enter-active,\n.expand-collapse-leave-active {\n transition:\n height 0.2s ease-in-out,\n opacity 0.2s ease-in-out;\n height: var(--component-height);\n}\n\n.expand-collapse-enter-from,\n.expand-collapse-leave-to {\n opacity: 0.5;\n height: 0;\n}\n</style>\n"],"names":["onStart","el","onAfter","_createBlock","_Transition","_renderSlot","_ctx"],"mappings":";;;;AACA,UAAMA,IAAU,CAACC,MAAgB;AAC/B,MAAAA,EAAG,UAAU,IAAI,qBAAqB,GACrCA,EAAmB,MAAM,YAAY,sBAAsBA,EAAG,eAAe,IAAI;AAAA,IACpF,GAEMC,IAAU,CAACD,MAAgB;AAC9B,MAAAA,EAAmB,MAAM,eAAe,oBAAoB,GAC7DA,EAAG,UAAU,OAAO,qBAAqB;AAAA,IAC3C;2BAIEE,EAEaC,GAAA;AAAA,MAFD,MAAK;AAAA,MAAmB,SAAOJ;AAAA,MAAU,SAAOA;AAAA,MAAU,cAAaE;AAAA,MAAU,cAAaA;AAAA,IAAA;iBACxG,MAAO;AAAA,QAAPG,EAAOC,EAAA,QAAA,SAAA;AAAA,MAAA;;;;;"}