@milaboratories/uikit 2.8.5 → 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.5 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,79 +24,79 @@ 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
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
30
30
  dist/components/DataTable/TdCell.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
31
31
  dist/components/DataTable/TrHead.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
32
32
  dist/components/DataTable/ThCell.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
33
33
  dist/components/DataTable/TrBody.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
34
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
- dist/layout/PlSpacer/PlSpacer.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
42
41
  dist/components/PlSplash/PlSplash.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
42
+ dist/layout/PlSpacer/PlSpacer.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
43
43
  dist/components/PlLogView/PlLogView.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
44
44
  dist/components/PlBtnLink/PlBtnLink.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
45
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/PlBtnGhost/PlBtnGhost.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
47
48
  dist/components/PlCheckbox/PlCheckbox.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
48
49
  dist/components/PlBtnGroup/PlBtnGroup.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
49
50
  dist/components/PlTextArea/PlTextArea.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
50
- dist/components/PlBtnSplit/PlBtnSplit.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
51
- dist/components/PlBtnGhost/PlBtnGhost.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
52
51
  dist/components/PlDropdown/PlDropdown.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
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/PlTextField/PlTextField.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
57
- dist/components/PlBtnAccent/PlBtnAccent.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
58
56
  dist/components/PlStatusTag/PlStatusTag.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
59
57
  dist/components/PlAccordion/PlAccordion.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
60
- dist/components/PlBtnDanger/PlBtnDanger.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
61
- dist/layout/PlContainer/PlContainer.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
62
58
  dist/components/PlFileInput/PlFileInput.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
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
63
61
  dist/layout/PlBlockPage/PlBlockPage.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
62
+ dist/components/PlBtnDanger/PlBtnDanger.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
- dist/components/PlFileDialog/PlFileDialog.vue2.js  0.11 kB │ gzip: 0.12 kB │ map: 0.10 kB
66
65
  dist/components/PlBtnPrimary/PlBtnPrimary.vue2.js  0.11 kB │ gzip: 0.12 kB │ map: 0.10 kB
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
69
  dist/components/PlDropdownRef/PlDropdownRef.vue2.js  0.11 kB │ gzip: 0.12 kB │ map: 0.10 kB
70
70
  dist/components/PlDialogModal/PlDialogModal.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
71
  dist/components/PlProgressBar/PlProgressBar.vue2.js  0.11 kB │ gzip: 0.12 kB │ map: 0.10 kB
73
- dist/components/PlDropdownLine/PlDropdownLine.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.10 kB
74
- dist/components/PlProgressCell/PlProgressCell.vue2.js  0.12 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
75
73
  dist/components/PlAutocomplete/PlAutocomplete.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.10 kB
76
- dist/components/DataTable/TableComponent.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
77
75
  dist/components/PlBtnSecondary/PlBtnSecondary.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.10 kB
78
76
  dist/components/PlToggleSwitch/PlToggleSwitch.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.10 kB
77
+ dist/components/DataTable/TableComponent.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/PlCheckboxGroup/PlCheckboxGroup.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
84
83
  dist/utils/DropdownOverlay/DropdownOverlay.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
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
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
97
97
  dist/components/DataTable/ColumnsCommandMenu.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
98
- dist/components/PlNotificationAlert/PlNotificationAlert.vue2.js  0.13 kB │ gzip: 0.12 kB │ map: 0.11 kB
99
98
  dist/components/PlAutocompleteMulti/PlAutocompleteMulti.vue2.js  0.13 kB │ gzip: 0.12 kB │ map: 0.11 kB
99
+ dist/components/PlNotificationAlert/PlNotificationAlert.vue2.js  0.13 kB │ gzip: 0.12 kB │ map: 0.11 kB
100
100
  dist/components/TransitionSlidePanel.vue2.js  0.13 kB │ gzip: 0.12 kB │ map: 0.11 kB
101
101
  dist/components/PlRadio/keys.js  0.13 kB │ gzip: 0.13 kB │ map: 0.43 kB
102
102
  dist/composition/utils.js  0.15 kB │ gzip: 0.14 kB │ map: 0.38 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
@@ -152,10 +152,10 @@ computing gzip size...
152
152
  dist/assets/icons/icon-assets-min/16_maximize.svg.js  0.29 kB │ gzip: 0.24 kB │ map: 0.47 kB
153
153
  dist/components/PlSlideModal/PlSlideModal.vue.js  0.29 kB │ gzip: 0.22 kB │ map: 0.11 kB
154
154
  dist/components/PlRadio/PlRadioGroup.vue.js  0.29 kB │ gzip: 0.22 kB │ map: 0.11 kB
155
+ dist/components/PlErrorAlert/PlErrorAlert.vue.js  0.29 kB │ gzip: 0.22 kB │ map: 0.11 kB
155
156
  dist/assets/icons/icon-assets-min/16_caret-left.svg.js  0.29 kB │ gzip: 0.24 kB │ map: 0.46 kB
156
157
  dist/assets/icons/icon-assets-min/16_download.svg.js  0.29 kB │ gzip: 0.24 kB │ map: 0.46 kB
157
158
  dist/assets/icons/icon-assets-min/24_linetype-dashed.svg.js  0.29 kB │ gzip: 0.23 kB │ map: 0.48 kB
158
- dist/components/PlErrorAlert/PlErrorAlert.vue.js  0.29 kB │ gzip: 0.22 kB │ map: 0.11 kB
159
159
  dist/assets/icons/icon-assets-min/24_drag-dots.svg.js  0.29 kB │ gzip: 0.23 kB │ map: 0.46 kB
160
160
  dist/assets/icons/icon-assets-min/16_chevron-up.svg.js  0.29 kB │ gzip: 0.24 kB │ map: 0.47 kB
161
161
  dist/layout/PlPlaceholder/PlPlaceholder.vue.js  0.29 kB │ gzip: 0.22 kB │ map: 0.11 kB
@@ -171,12 +171,12 @@ computing gzip size...
171
171
  dist/assets/icons/icon-assets-min/24_jump-link.svg.js  0.30 kB │ gzip: 0.25 kB │ map: 0.46 kB
172
172
  dist/assets/icons/icon-assets-min/24_checkbox-intermediate.svg.js  0.30 kB │ gzip: 0.24 kB │ map: 0.53 kB
173
173
  dist/assets/icons/icon-assets-min/24_chevron-up.svg.js  0.30 kB │ gzip: 0.24 kB │ map: 0.48 kB
174
- dist/components/PlElementList/utils.js  0.30 kB │ gzip: 0.23 kB │ map: 0.79 kB
175
174
  dist/assets/icons/icon-assets-min/16_close.svg.js  0.30 kB │ gzip: 0.24 kB │ map: 0.47 kB
176
175
  dist/assets/icons/icon-assets-min/24_chevron-down.svg.js  0.30 kB │ gzip: 0.24 kB │ map: 0.48 kB
177
176
  dist/assets/icons/icon-assets-min/24_linetype-dotdash.svg.js  0.30 kB │ gzip: 0.25 kB │ map: 0.49 kB
178
177
  dist/assets/icons/icon-assets-min/24_menu.svg.js  0.30 kB │ gzip: 0.24 kB │ map: 0.46 kB
179
178
  dist/assets/icons/icon-assets-min/24_text-align-left.svg.js  0.30 kB │ gzip: 0.25 kB │ map: 0.49 kB
179
+ dist/components/PlElementList/utils.js  0.30 kB │ gzip: 0.23 kB │ map: 0.79 kB
180
180
  dist/assets/icons/icon-assets-min/24_arrow-link.svg.js  0.30 kB │ gzip: 0.25 kB │ map: 0.48 kB
181
181
  dist/assets/icons/icon-assets-min/24_chevron-right.svg.js  0.30 kB │ gzip: 0.25 kB │ map: 0.49 kB
182
182
  dist/assets/icons/icon-assets-min/16_arrow-link.svg.js  0.30 kB │ gzip: 0.25 kB │ map: 0.48 kB
@@ -188,10 +188,10 @@ computing gzip size...
188
188
  dist/assets/icons/icon-assets-min/24_text-align-right.svg.js  0.30 kB │ gzip: 0.25 kB │ map: 0.50 kB
189
189
  dist/assets/icons/icon-assets-min/16_checkmark.svg.js  0.30 kB │ gzip: 0.25 kB │ map: 0.48 kB
190
190
  dist/components/PlChartStackedBar/PlChartStackedBar.vue.js  0.30 kB │ gzip: 0.22 kB │ map: 0.11 kB
191
- dist/components/PlElementList/PlElementListItem.vue.js  0.30 kB │ gzip: 0.22 kB │ map: 0.11 kB
192
191
  dist/components/PlChartStackedBar/StackedRowCompact.vue.js  0.30 kB │ gzip: 0.22 kB │ map: 0.11 kB
193
192
  dist/assets/icons/icon-assets-min/16_arrow-up.svg.js  0.30 kB │ gzip: 0.25 kB │ map: 0.48 kB
194
193
  dist/assets/icons/icon-assets-min/24_linetype-twodash.svg.js  0.30 kB │ gzip: 0.25 kB │ map: 0.50 kB
194
+ dist/components/PlElementList/PlElementListItem.vue.js  0.30 kB │ gzip: 0.22 kB │ map: 0.11 kB
195
195
  dist/assets/icons/icon-assets-min/24_checkmark.svg.js  0.31 kB │ gzip: 0.25 kB │ map: 0.49 kB
196
196
  dist/assets/icons/icon-assets-min/16_arrow-down.svg.js  0.31 kB │ gzip: 0.25 kB │ map: 0.49 kB
197
197
  dist/assets/icons/icon-assets-min/16_arrow-left.svg.js  0.31 kB │ gzip: 0.24 kB │ map: 0.49 kB
@@ -272,9 +272,9 @@ computing gzip size...
272
272
  dist/assets/icons/icon-assets-min/24_align-right.svg.js  0.43 kB │ gzip: 0.28 kB │ map: 0.61 kB
273
273
  dist/assets/icons/icon-assets-min/24_zoom-out.svg.js  0.43 kB │ gzip: 0.29 kB │ map: 0.63 kB
274
274
  dist/assets/icons/icon-assets-min/24_windows-collapse.svg.js  0.43 kB │ gzip: 0.30 kB │ map: 0.66 kB
275
+ dist/utils/InnerBorder.vue.js  0.43 kB │ gzip: 0.31 kB │ map: 0.42 kB
275
276
  dist/assets/icons/icon-assets-min/16_delete-circle.svg.js  0.43 kB │ gzip: 0.30 kB │ map: 0.62 kB
276
277
  dist/assets/icons/icon-assets-min/24_drag-vertical.svg.js  0.43 kB │ gzip: 0.31 kB │ map: 0.62 kB
277
- dist/utils/InnerBorder.vue.js  0.43 kB │ gzip: 0.31 kB │ map: 0.42 kB
278
278
  dist/assets/icons/icon-assets-min/16_zip.svg.js  0.43 kB │ gzip: 0.29 kB │ map: 0.60 kB
279
279
  dist/assets/icons/icon-assets-min/24_arrow-left-curved.svg.js  0.43 kB │ gzip: 0.31 kB │ map: 0.61 kB
280
280
  dist/assets/icons/icon-assets-min/24_drag-horizontal.svg.js  0.43 kB │ gzip: 0.32 kB │ map: 0.62 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
@@ -470,8 +470,8 @@ computing gzip size...
470
470
  dist/assets/icons/icon-assets-min/24_view-show.svg.js  0.93 kB │ gzip: 0.55 kB │ map: 1.11 kB
471
471
  dist/assets/icons/icon-assets-min/24_theme-dark.svg.js  0.94 kB │ gzip: 0.48 kB │ map: 1.12 kB
472
472
  dist/layout/PlRow/PlRow.vue.js  0.94 kB │ gzip: 0.56 kB │ map: 0.81 kB
473
- dist/components/PlIcon24/PlIcon24.vue2.js  0.95 kB │ gzip: 0.51 kB │ map: 2.57 kB
474
473
  dist/components/PlIcon16/PlIcon16.vue2.js  0.95 kB │ gzip: 0.51 kB │ map: 1.86 kB
474
+ dist/components/PlIcon24/PlIcon24.vue2.js  0.95 kB │ gzip: 0.51 kB │ map: 2.57 kB
475
475
  dist/assets/icons/icon-assets-min/24_dendrogram-X-line.svg.js  0.95 kB │ gzip: 0.39 kB │ map: 1.24 kB
476
476
  dist/components/PlAccordion/PlAccordionSection.vue3.js  0.95 kB │ gzip: 0.53 kB │ map: 0.11 kB
477
477
  dist/components/DataTable/composition/useTableColumns.js  0.97 kB │ gzip: 0.53 kB │ map: 2.87 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 8473ms.
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 12.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.5 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.5 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,18 @@
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
+
9
+ ## 2.8.6
10
+
11
+ ### Patch Changes
12
+
13
+ - Updated dependencies [d6856e2]
14
+ - @platforma-sdk/model@1.48.14
15
+
3
16
  ## 2.8.5
4
17
 
5
18
  ### 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.5",
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",
@@ -32,7 +33,7 @@
32
33
  "resize-observer-polyfill": "^1.5.1",
33
34
  "canonicalize": "~2.1.0",
34
35
  "@milaboratories/helpers": "1.12.1",
35
- "@platforma-sdk/model": "1.48.13"
36
+ "@platforma-sdk/model": "1.48.14"
36
37
  },
37
38
  "devDependencies": {
38
39
  "jsdom": "^25.0.1",
@@ -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-builder": "1.2.1",
46
- "@milaboratories/ts-configs": "1.2.0",
47
46
  "@milaboratories/build-configs": "1.2.1",
48
- "@milaboratories/eslint-config": "1.0.5"
47
+ "@milaboratories/eslint-config": "1.0.5",
48
+ "@milaboratories/ts-builder": "1.2.1",
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;;;;;"}
@@ -1,23 +0,0 @@
1
- import { defineComponent as t, createElementBlock as r, openBlock as n, normalizeClass as s, createElementVNode as a, normalizeProps as l, guardReactiveProps as i, renderSlot as u } from "vue";
2
- const d = {
3
- inheritAttrs: !1
4
- }, m = /* @__PURE__ */ t({
5
- ...d,
6
- __name: "DoubleContour",
7
- props: {
8
- groupPosition: { default: void 0 }
9
- },
10
- setup(o) {
11
- return (e, c) => (n(), r("div", {
12
- class: s(["double-contour", { [o.groupPosition]: !0 }])
13
- }, [
14
- a("div", l(i(e.$attrs)), [
15
- u(e.$slots, "default")
16
- ], 16)
17
- ], 2));
18
- }
19
- });
20
- export {
21
- m as default
22
- };
23
- //# sourceMappingURL=DoubleContour.vue2.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DoubleContour.vue2.js","sources":["../../src/utils/DoubleContour.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nwithDefaults(defineProps<{\n groupPosition?: 'top' | 'bottom' | 'left' | 'right' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | 'middle';\n}>(), {\n groupPosition: undefined,\n});\n</script>\n\n<script lang=\"ts\">\n\nexport default {\n inheritAttrs: false,\n};\n</script>\n\n<template>\n <div class=\"double-contour\" :class=\"{ [groupPosition]: true }\">\n <div v-bind=\"$attrs\">\n <slot />\n </div>\n </div>\n</template>\n<style>\n.double-contour {\n &.top > div {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n }\n}\n.double-contour {\n &.bottom > div {\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n }\n}\n.double-contour {\n &.left > div {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n}\n.double-contour {\n &.right > div {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n}\n.double-contour {\n &.top-left > div{\n border-top-right-radius: 0;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n }\n}\n.double-contour {\n &.top-right > div {\n border-bottom-right-radius: 0;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n}\n.double-contour {\n &.bottom-left > div {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n border-top-left-radius: 0;\n }\n}\n.double-contour {\n &.bottom-right > div {\n border-top-right-radius: 0;\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n }\n}\n.double-contour {\n &.middle > div {\n border-radius: 0;\n }\n}\n</style>\n"],"names":["__default__","_createElementBlock","_normalizeClass","__props","_createElementVNode","$attrs","_renderSlot","_ctx"],"mappings":";AAUA,MAAAA,IAAe;AAAA,EACb,cAAc;AAChB;;;;;;;2BAIEC,EAIM,OAAA;AAAA,MAJD,OAAKC,EAAA,CAAC,kBAAgB,EAAA,CAAYC,EAAA,aAAa,GAAA,IAAA,CAAA;AAAA,IAAA;MAClDC,EAEM,WAFOC,EAAAA,MAAM,CAAA,GAAA;AAAA,QACjBC,EAAQC,EAAA,QAAA,SAAA;AAAA,MAAA;;;;"}