@milaboratories/uikit 2.5.4 → 2.5.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.5.4 build /home/runner/_work/platforma/platforma/lib/ui/uikit
3
+ > @milaboratories/uikit@2.5.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...
@@ -13,81 +13,81 @@ rendering chunks...
13
13
 
14
14
  [vite:dts] Start generate declaration files...
15
15
  computing gzip size...
16
- [vite:dts] Declaration files built in 18576ms.
16
+ [vite:dts] Declaration files built in 21581ms.
17
17
 
18
18
  dist/components/PlTabs/Tab.vue2.js  0.09 kB │ gzip: 0.11 kB │ map: 0.09 kB
19
19
  dist/components/PlTooltip/global.js  0.10 kB │ gzip: 0.11 kB │ map: 0.22 kB
20
20
  dist/layout/PlRow/PlRow.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
21
21
  dist/components/PlFileDialog/Local.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
22
22
  dist/components/Slider.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
23
- dist/components/PlTabs/PlTabs.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
24
- dist/components/PlChip/PlChip.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
25
23
  dist/layout/PlGrid/PlGrid.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
24
+ dist/components/PlChip/PlChip.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
25
+ dist/components/PlTabs/PlTabs.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
26
26
  dist/components/DataTable/TdCell.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
27
27
  dist/components/DataTable/TrHead.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
28
28
  dist/components/DataTable/ThCell.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
29
29
  dist/components/DataTable/TrBody.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
30
30
  dist/components/PlFileDialog/Remote.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
31
31
  dist/components/PlAlert/PlAlert.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
32
- dist/components/DataTable/TScroll.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
33
32
  dist/base/BtnBase.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
33
+ dist/components/DataTable/TScroll.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
34
34
  dist/components/TabItem.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
35
35
  dist/components/VScroll.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
36
36
  dist/components/HScroll.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
37
37
  dist/layout/PlSpacer/PlSpacer.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
38
38
  dist/components/PlSplash/PlSplash.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
39
39
  dist/components/PlBtnLink/PlBtnLink.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
40
- dist/components/PlLogView/PlLogView.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
41
40
  dist/components/PlTooltip/PlTooltip.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
41
+ dist/components/PlLogView/PlLogView.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
42
42
  dist/components/Scrollable.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
43
43
  dist/components/PlBtnGroup/PlBtnGroup.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
44
- dist/components/PlTextArea/PlTextArea.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
45
- dist/components/PlBtnGhost/PlBtnGhost.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
44
+ dist/components/PlDropdown/PlDropdown.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
46
45
  dist/components/PlCheckbox/PlCheckbox.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
46
+ dist/components/PlTextArea/PlTextArea.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
47
47
  dist/components/PlBtnSplit/PlBtnSplit.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
48
- dist/components/PlDropdown/PlDropdown.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
49
- dist/components/InputRange.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
48
+ dist/components/PlBtnGhost/PlBtnGhost.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
50
49
  dist/utils/DoubleContour.vue2.js  0.11 kB │ gzip: 0.12 kB │ map: 0.43 kB
51
50
  dist/components/PlDropdown/OptionList.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
51
+ dist/components/InputRange.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
52
52
  dist/components/SliderRange.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
53
- dist/components/PlBtnAccent/PlBtnAccent.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
54
- dist/components/PlAccordion/PlAccordion.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
55
- dist/components/PlStatusTag/PlStatusTag.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
56
53
  dist/layout/PlBlockPage/PlBlockPage.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
57
54
  dist/layout/PlContainer/PlContainer.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
58
- dist/components/PlFileInput/PlFileInput.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
59
55
  dist/components/PlTextField/PlTextField.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
60
56
  dist/components/PlBtnDanger/PlBtnDanger.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
57
+ dist/components/PlStatusTag/PlStatusTag.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
58
+ dist/components/PlFileInput/PlFileInput.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
59
+ dist/components/PlBtnAccent/PlBtnAccent.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
60
+ dist/components/PlAccordion/PlAccordion.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
61
61
  dist/components/DataTable/ColumnCaret.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
62
62
  dist/components/PlFileDialog/PlFileDialog.vue2.js  0.11 kB │ gzip: 0.12 kB │ map: 0.10 kB
63
63
  dist/components/PlBtnPrimary/PlBtnPrimary.vue2.js  0.11 kB │ gzip: 0.12 kB │ map: 0.10 kB
64
64
  dist/utils/InnerBorder.vue2.js  0.11 kB │ gzip: 0.12 kB │ map: 0.34 kB
65
65
  dist/components/ThemeSwitcher.vue2.js  0.11 kB │ gzip: 0.12 kB │ map: 0.10 kB
66
- dist/components/PlDialogModal/PlDialogModal.vue2.js  0.11 kB │ gzip: 0.12 kB │ map: 0.10 kB
67
66
  dist/components/PlProgressBar/PlProgressBar.vue2.js  0.11 kB │ gzip: 0.12 kB │ map: 0.10 kB
68
67
  dist/components/PlNumberField/PlNumberField.vue2.js  0.11 kB │ gzip: 0.12 kB │ map: 0.10 kB
69
68
  dist/components/PlDropdownRef/PlDropdownRef.vue2.js  0.11 kB │ gzip: 0.12 kB │ map: 0.10 kB
69
+ dist/components/PlDialogModal/PlDialogModal.vue2.js  0.11 kB │ gzip: 0.12 kB │ map: 0.10 kB
70
+ dist/components/PlToggleSwitch/PlToggleSwitch.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.10 kB
71
+ dist/components/PlAutocomplete/PlAutocomplete.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.10 kB
72
+ dist/components/PlBtnSecondary/PlBtnSecondary.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.10 kB
70
73
  dist/components/PlProgressCell/PlProgressCell.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.10 kB
71
74
  dist/components/DataTable/TableComponent.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.10 kB
72
- dist/components/PlAutocomplete/PlAutocomplete.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.10 kB
73
- dist/components/PlToggleSwitch/PlToggleSwitch.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.10 kB
74
75
  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
- dist/components/PlDropdownLine/ResizableInput.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.10 kB
77
76
  dist/components/PlCheckbox/PlCheckboxBase.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.10 kB
77
+ dist/components/PlDropdownLine/ResizableInput.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.10 kB
78
78
  dist/components/ContextProvider.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
79
79
  dist/components/PlConfirmDialog.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
80
- dist/components/PlErrorBoundary/PlErrorBoundary.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
81
80
  dist/utils/DropdownOverlay/DropdownOverlay.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
81
+ dist/components/PlErrorBoundary/PlErrorBoundary.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
82
+ dist/components/PlDropdownMulti/PlDropdownMulti.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
82
83
  dist/components/PlEditableTitle/PlEditableTitle.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
83
84
  dist/components/PlCheckboxGroup/PlCheckboxGroup.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
84
- dist/components/PlDropdownMulti/PlDropdownMulti.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
85
85
  dist/helpers/math.js  0.12 kB │ gzip: 0.13 kB │ map: 0.33 kB
86
86
  dist/components/DataTable/RowsCommandMenu.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
87
87
  dist/components/DropdownListItem.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
88
88
  dist/components/PlDropdownLegacy/PlDropdownLegacy.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
89
- dist/components/PlLoaderCircular/PlLoaderCircular.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
90
89
  dist/components/PlSlideModal/PlPureSlideModal.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
90
+ dist/components/PlLoaderCircular/PlLoaderCircular.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
91
91
  dist/components/SliderRangeTriple.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
92
92
  dist/components/DataTable/BaseCellComponent.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
93
93
  dist/components/PlDropdownMultiRef/PlDropdownMultiRef.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
@@ -148,10 +148,10 @@ computing gzip size...
148
148
  dist/assets/icons/icon-assets-min/16_maximize.svg.js  0.29 kB │ gzip: 0.24 kB │ map: 0.47 kB
149
149
  dist/components/PlSlideModal/PlSlideModal.vue.js  0.29 kB │ gzip: 0.22 kB │ map: 0.11 kB
150
150
  dist/components/PlRadio/PlRadioGroup.vue.js  0.29 kB │ gzip: 0.22 kB │ map: 0.11 kB
151
+ dist/components/PlErrorAlert/PlErrorAlert.vue.js  0.29 kB │ gzip: 0.22 kB │ map: 0.11 kB
151
152
  dist/assets/icons/icon-assets-min/16_caret-left.svg.js  0.29 kB │ gzip: 0.24 kB │ map: 0.46 kB
152
153
  dist/assets/icons/icon-assets-min/16_download.svg.js  0.29 kB │ gzip: 0.24 kB │ map: 0.46 kB
153
154
  dist/assets/icons/icon-assets-min/24_linetype-dashed.svg.js  0.29 kB │ gzip: 0.23 kB │ map: 0.48 kB
154
- dist/components/PlErrorAlert/PlErrorAlert.vue.js  0.29 kB │ gzip: 0.22 kB │ map: 0.11 kB
155
155
  dist/assets/icons/icon-assets-min/24_drag-dots.svg.js  0.29 kB │ gzip: 0.23 kB │ map: 0.46 kB
156
156
  dist/assets/icons/icon-assets-min/16_chevron-up.svg.js  0.29 kB │ gzip: 0.24 kB │ map: 0.47 kB
157
157
  dist/components/PlElementList/PlElementList.vue.js  0.29 kB │ gzip: 0.22 kB │ map: 0.11 kB
@@ -166,12 +166,12 @@ computing gzip size...
166
166
  dist/assets/icons/icon-assets-min/24_jump-link.svg.js  0.30 kB │ gzip: 0.25 kB │ map: 0.46 kB
167
167
  dist/assets/icons/icon-assets-min/24_checkbox-intermediate.svg.js  0.30 kB │ gzip: 0.24 kB │ map: 0.53 kB
168
168
  dist/assets/icons/icon-assets-min/24_chevron-up.svg.js  0.30 kB │ gzip: 0.24 kB │ map: 0.48 kB
169
+ dist/components/PlElementList/utils.js  0.30 kB │ gzip: 0.23 kB │ map: 0.79 kB
169
170
  dist/assets/icons/icon-assets-min/16_close.svg.js  0.30 kB │ gzip: 0.24 kB │ map: 0.47 kB
170
171
  dist/assets/icons/icon-assets-min/24_chevron-down.svg.js  0.30 kB │ gzip: 0.24 kB │ map: 0.48 kB
171
172
  dist/assets/icons/icon-assets-min/24_linetype-dotdash.svg.js  0.30 kB │ gzip: 0.25 kB │ map: 0.49 kB
172
173
  dist/assets/icons/icon-assets-min/24_menu.svg.js  0.30 kB │ gzip: 0.24 kB │ map: 0.46 kB
173
174
  dist/assets/icons/icon-assets-min/24_text-align-left.svg.js  0.30 kB │ gzip: 0.25 kB │ map: 0.49 kB
174
- dist/components/PlElementList/utils.js  0.30 kB │ gzip: 0.23 kB │ map: 0.79 kB
175
175
  dist/assets/icons/icon-assets-min/24_arrow-link.svg.js  0.30 kB │ gzip: 0.25 kB │ map: 0.48 kB
176
176
  dist/assets/icons/icon-assets-min/24_chevron-right.svg.js  0.30 kB │ gzip: 0.25 kB │ map: 0.49 kB
177
177
  dist/assets/icons/icon-assets-min/16_arrow-link.svg.js  0.30 kB │ gzip: 0.25 kB │ map: 0.48 kB
@@ -183,10 +183,10 @@ computing gzip size...
183
183
  dist/assets/icons/icon-assets-min/24_text-align-right.svg.js  0.30 kB │ gzip: 0.25 kB │ map: 0.50 kB
184
184
  dist/assets/icons/icon-assets-min/16_checkmark.svg.js  0.30 kB │ gzip: 0.25 kB │ map: 0.48 kB
185
185
  dist/components/PlChartStackedBar/PlChartStackedBar.vue.js  0.30 kB │ gzip: 0.22 kB │ map: 0.11 kB
186
+ dist/components/PlElementList/PlElementListItem.vue.js  0.30 kB │ gzip: 0.22 kB │ map: 0.11 kB
187
+ dist/components/PlChartStackedBar/StackedRowCompact.vue.js  0.30 kB │ gzip: 0.22 kB │ map: 0.11 kB
186
188
  dist/assets/icons/icon-assets-min/16_arrow-up.svg.js  0.30 kB │ gzip: 0.25 kB │ map: 0.48 kB
187
189
  dist/assets/icons/icon-assets-min/24_linetype-twodash.svg.js  0.30 kB │ gzip: 0.25 kB │ map: 0.50 kB
188
- dist/components/PlChartStackedBar/StackedRowCompact.vue.js  0.30 kB │ gzip: 0.22 kB │ map: 0.11 kB
189
- dist/components/PlElementList/PlElementListItem.vue.js  0.30 kB │ gzip: 0.22 kB │ map: 0.11 kB
190
190
  dist/assets/icons/icon-assets-min/24_checkmark.svg.js  0.31 kB │ gzip: 0.25 kB │ map: 0.49 kB
191
191
  dist/assets/icons/icon-assets-min/16_arrow-down.svg.js  0.31 kB │ gzip: 0.25 kB │ map: 0.49 kB
192
192
  dist/assets/icons/icon-assets-min/16_arrow-left.svg.js  0.31 kB │ gzip: 0.24 kB │ map: 0.49 kB
@@ -220,8 +220,8 @@ computing gzip size...
220
220
  dist/assets/icons/icon-assets-min/24_legend-box.svg.js  0.35 kB │ gzip: 0.26 kB │ map: 0.54 kB
221
221
  dist/assets/icons/icon-assets-min/24_position-left.svg.js  0.35 kB │ gzip: 0.27 kB │ map: 0.52 kB
222
222
  dist/assets/icons/icon-assets-min/24_close.svg.js  0.35 kB │ gzip: 0.25 kB │ map: 0.52 kB
223
- dist/assets/icons/icon-assets-min/24_stop.svg.js  0.35 kB │ gzip: 0.25 kB │ map: 0.52 kB
224
223
  dist/composition/useFilteredList.js  0.35 kB │ gzip: 0.24 kB │ map: 1.15 kB
224
+ dist/assets/icons/icon-assets-min/24_stop.svg.js  0.35 kB │ gzip: 0.25 kB │ map: 0.52 kB
225
225
  dist/layout/PlSpacer/PlSpacer.vue.js  0.35 kB │ gzip: 0.27 kB │ map: 0.44 kB
226
226
  dist/assets/icons/icon-assets-min/24_checkbox.svg.js  0.35 kB │ gzip: 0.26 kB │ map: 0.53 kB
227
227
  dist/assets/icons/icon-assets-min/24_play.svg.js  0.35 kB │ gzip: 0.28 kB │ map: 0.53 kB
@@ -267,9 +267,9 @@ computing gzip size...
267
267
  dist/assets/icons/icon-assets-min/24_align-right.svg.js  0.43 kB │ gzip: 0.28 kB │ map: 0.61 kB
268
268
  dist/assets/icons/icon-assets-min/24_zoom-out.svg.js  0.43 kB │ gzip: 0.29 kB │ map: 0.63 kB
269
269
  dist/assets/icons/icon-assets-min/24_windows-collapse.svg.js  0.43 kB │ gzip: 0.30 kB │ map: 0.66 kB
270
+ dist/utils/InnerBorder.vue.js  0.43 kB │ gzip: 0.31 kB │ map: 0.42 kB
270
271
  dist/assets/icons/icon-assets-min/16_delete-circle.svg.js  0.43 kB │ gzip: 0.30 kB │ map: 0.62 kB
271
272
  dist/assets/icons/icon-assets-min/24_drag-vertical.svg.js  0.43 kB │ gzip: 0.31 kB │ map: 0.62 kB
272
- dist/utils/InnerBorder.vue.js  0.43 kB │ gzip: 0.31 kB │ map: 0.42 kB
273
273
  dist/assets/icons/icon-assets-min/16_zip.svg.js  0.43 kB │ gzip: 0.29 kB │ map: 0.60 kB
274
274
  dist/assets/icons/icon-assets-min/24_arrow-left-curved.svg.js  0.43 kB │ gzip: 0.31 kB │ map: 0.61 kB
275
275
  dist/assets/icons/icon-assets-min/24_drag-horizontal.svg.js  0.43 kB │ gzip: 0.32 kB │ map: 0.62 kB
@@ -464,8 +464,8 @@ computing gzip size...
464
464
  dist/assets/icons/icon-assets-min/24_view-show.svg.js  0.93 kB │ gzip: 0.55 kB │ map: 1.11 kB
465
465
  dist/assets/icons/icon-assets-min/24_theme-dark.svg.js  0.94 kB │ gzip: 0.48 kB │ map: 1.12 kB
466
466
  dist/layout/PlRow/PlRow.vue.js  0.94 kB │ gzip: 0.56 kB │ map: 0.61 kB
467
- dist/components/PlIcon16/PlIcon16.vue2.js  0.95 kB │ gzip: 0.51 kB │ map: 1.55 kB
468
467
  dist/components/PlIcon24/PlIcon24.vue2.js  0.95 kB │ gzip: 0.51 kB │ map: 2.26 kB
468
+ dist/components/PlIcon16/PlIcon16.vue2.js  0.95 kB │ gzip: 0.51 kB │ map: 1.55 kB
469
469
  dist/assets/icons/icon-assets-min/24_dendrogram-X-line.svg.js  0.95 kB │ gzip: 0.39 kB │ map: 1.24 kB
470
470
  dist/components/PlAccordion/PlAccordionSection.vue3.js  0.95 kB │ gzip: 0.53 kB │ map: 0.11 kB
471
471
  dist/components/DataTable/composition/useTableColumns.js  0.97 kB │ gzip: 0.53 kB │ map: 2.87 kB
@@ -611,7 +611,7 @@ computing gzip size...
611
611
  dist/components/PlTextArea/PlTextArea.vue.js  6.75 kB │ gzip: 2.38 kB │ map: 5.86 kB
612
612
  dist/components/PlCheckbox/PlCheckboxBase.vue.js  6.84 kB │ gzip: 1.34 kB │ map: 0.81 kB
613
613
  dist/components/SliderRange.vue.js  6.99 kB │ gzip: 2.19 kB │ map: 11.64 kB
614
- dist/components/PlBtnSplit/PlBtnSplit.vue.js  7.07 kB │ gzip: 2.58 kB │ map: 8.86 kB
614
+ dist/components/PlBtnSplit/PlBtnSplit.vue.js  7.06 kB │ gzip: 2.56 kB │ map: 8.82 kB
615
615
  dist/components/PlLogView/PlLogView.vue.js  7.12 kB │ gzip: 2.44 kB │ map: 6.98 kB
616
616
  dist/components/SliderRangeTriple.vue.js  8.52 kB │ gzip: 2.46 kB │ map: 15.42 kB
617
617
  dist/components/PlFileDialog/Remote.vue.js  8.70 kB │ gzip: 2.79 kB │ map: 14.21 kB
@@ -632,5 +632,5 @@ computing gzip size...
632
632
  dist/index.js 502.31 kB │ gzip: 192.47 kB │ map: 5.79 kB
633
633
  dist/components/PlSlideModal/PlPureSlideModal.vue.js 604.73 kB │ gzip: 205.03 kB │ map: 2.25 kB
634
634
  dist/components/DataTable/TableComponent.vue.js 606.57 kB │ gzip: 205.92 kB │ map: 4.86 kB
635
- ✓ built in 22.60s
635
+ ✓ built in 27.35s
636
636
  Build completed successfully
@@ -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.5.4 type-check /home/runner/_work/platforma/platforma/lib/ui/uikit
3
+ > @milaboratories/uikit@2.5.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
package/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # @milaboratories/uikit
2
2
 
3
+ ## 2.5.7
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [17e5fe7]
8
+ - @platforma-sdk/model@1.45.30
9
+
10
+ ## 2.5.6
11
+
12
+ ### Patch Changes
13
+
14
+ - 8996bed: Publish again, previous publish failed
15
+
16
+ ## 2.5.5
17
+
18
+ ### Patch Changes
19
+
20
+ - 38b2b47: update btnsplit icon usage
21
+
3
22
  ## 2.5.4
4
23
 
5
24
  ### Patch Changes
@@ -1,11 +1,11 @@
1
1
  (function(){"use strict";try{if(typeof document<"u"){var o=document.createElement("style");o.appendChild(document.createTextNode('.pl-btn-split{--border-color: var(--border-color-default);height:40px;min-width:160px;border-radius:6px;border:1px solid var(--border-color);cursor:pointer}.pl-btn-split.disabled,.pl-btn-split.loading{pointer-events:none;--border-color: var(--border-color-div-grey)}.pl-btn-split.loading .mask-loading{animation:spin 2.5s linear infinite}.pl-btn-split__title{padding:8px 14px;height:100%;color:var(--border-color);transition:all .1s ease-in-out}.pl-btn-split__title:focus-visible{position:relative;outline:none}.pl-btn-split__title:focus-visible:after{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border:2px solid var(--border-color-focus);border-radius:6px;z-index:2}.pl-btn-split__title:hover{border-radius:6px;background-color:var(--btn-sec-hover-grey)}.pl-btn-split__title:active{border-radius:6px;background-color:var(--btn-sec-press-grey)}.pl-btn-split__icon,.pl-btn-split .mask-loading{--icon-color: var(--border-color)}.pl-btn-split__icon-container{width:36px;height:100%;position:relative;transition:all .1s ease-in-out}.pl-btn-split__icon-container:focus-visible{position:relative;outline:none}.pl-btn-split__icon-container:focus-visible:after{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border:2px solid var(--border-color-focus);border-radius:6px;z-index:2}.pl-btn-split__icon-container:hover{border-radius:6px;background-color:var(--btn-sec-hover-grey)}.pl-btn-split__icon-container:active{border-radius:6px;background-color:var(--btn-sec-press-grey)}.pl-btn-split__icon-container:before{content:"";background:var(--border-color);height:26px;position:absolute;left:0;width:1px}')),document.head.appendChild(o)}}catch(t){console.error("vite-plugin-css-injected-by-js",t)}})();
2
- import { defineComponent as j, mergeModels as C, useModel as q, ref as u, reactive as B, watch as U, computed as r, createElementBlock as g, openBlock as l, normalizeClass as S, createElementVNode as k, createBlock as w, createCommentVNode as R, withKeys as G, withModifiers as M, toDisplayString as J, unref as H, Teleport as Q, normalizeStyle as X, Fragment as Y, renderList as Z } from "vue";
3
-
4
- import ee from "../DropdownListItem.vue.js";
2
+ import { defineComponent as j, mergeModels as C, useModel as q, ref as u, reactive as B, watch as U, computed as r, createElementBlock as M, openBlock as s, normalizeClass as R, createElementVNode as w, createBlock as f, createCommentVNode as G, withKeys as J, withModifiers as S, toDisplayString as Q, unref as y, Teleport as X, normalizeStyle as Y, Fragment as Z, renderList as ee } from "vue";
3
+ import { deepEqual as H } from "@milaboratories/helpers";
5
4
  import { useElementPosition as te } from "../../composition/usePosition.js";
6
5
  import { normalizeListOptions as oe } from "../../helpers/utils.js";
7
- import { deepEqual as K } from "@milaboratories/helpers";
8
- import ne from "../PlIcon16/PlIcon16.vue.js";
6
+ import ne from "../DropdownListItem.vue.js";
7
+ import K from "../PlIcon16/PlIcon16.vue.js";
8
+
9
9
  const ie = ["onKeyup"], ue = /* @__PURE__ */ j({
10
10
  __name: "PlBtnSplit",
11
11
  props: /* @__PURE__ */ C({
@@ -17,8 +17,8 @@ const ie = ["onKeyup"], ue = /* @__PURE__ */ j({
17
17
  modelModifiers: {}
18
18
  }),
19
19
  emits: /* @__PURE__ */ C(["click"], ["update:modelValue"]),
20
- setup(y, { expose: O, emit: V }) {
21
- const a = y, z = V, f = q(y, "modelValue"), s = u(), m = u(), _ = u(), b = u(), o = B({
20
+ setup(k, { expose: O, emit: V }) {
21
+ const a = k, z = V, m = q(k, "modelValue"), l = u(), v = u(), _ = u(), b = u(), o = B({
22
22
  open: !1,
23
23
  optionsHeight: 0,
24
24
  activeIndex: -1
@@ -32,7 +32,7 @@ const ie = ["onKeyup"], ue = /* @__PURE__ */ j({
32
32
  width: "0px"
33
33
  });
34
34
  U(
35
- m,
35
+ v,
36
36
  (e) => {
37
37
  if (e) {
38
38
  const t = e.getBoundingClientRect();
@@ -41,36 +41,36 @@ const ie = ["onKeyup"], ue = /* @__PURE__ */ j({
41
41
  },
42
42
  { immediate: !0 }
43
43
  );
44
- const D = r(() => o.open ? "mask-24 mask-chevron-up" : "mask-24 mask-chevron-down"), T = r(() => (a.options ?? []).findIndex((e) => K(e.value, f.value))), d = r(
44
+ const D = r(() => o.open ? "chevron-up" : "chevron-down"), N = r(() => (a.options ?? []).findIndex((e) => H(e.value, m.value))), d = r(
45
45
  () => oe(a.options ?? []).map((e, t) => ({
46
46
  ...e,
47
47
  index: t,
48
- isSelected: t === T.value,
48
+ isSelected: t === N.value,
49
49
  isActive: t === o.activeIndex
50
50
  }))
51
- ), v = r(() => a.loading || a.options === void 0), F = r(() => {
51
+ ), x = r(() => a.loading || a.options === void 0), T = r(() => {
52
52
  var e;
53
- return ((e = d.value.find((t) => K(t.value, f.value))) == null ? void 0 : e.label) ?? (a.options === void 0 ? "..." : "");
53
+ return ((e = d.value.find((t) => H(t.value, m.value))) == null ? void 0 : e.label) ?? (a.options === void 0 ? "..." : "");
54
54
  });
55
- te(s, (e) => {
55
+ te(l, (e) => {
56
56
  const n = e.top + e.height + 3;
57
57
  n + o.optionsHeight > e.clientHeight ? c.top = e.top - o.optionsHeight - 3 + "px" : c.top = n + "px", c.left = e.left + "px", c.width = e.width + "px";
58
58
  });
59
59
  const E = (e) => {
60
60
  var t;
61
- f.value = e, o.open = !1, (t = s == null ? void 0 : s.value) == null || t.focus();
61
+ m.value = e, o.open = !1, (t = l == null ? void 0 : l.value) == null || t.focus();
62
62
  };
63
- function x() {
63
+ function h() {
64
64
  z("click");
65
65
  }
66
- const L = (e) => {
66
+ const F = (e) => {
67
67
  var A, I;
68
68
  if (["ArrowDown", "ArrowUp", "Enter", "Escape"].includes(e.code))
69
69
  e.preventDefault();
70
70
  else
71
71
  return;
72
72
  if (e.target === b.value && e.code === "Enter") {
73
- x();
73
+ h();
74
74
  return;
75
75
  }
76
76
  const { open: t, activeIndex: n } = o;
@@ -78,69 +78,70 @@ const ie = ["onKeyup"], ue = /* @__PURE__ */ j({
78
78
  e.code === "Enter" && (o.open = !0);
79
79
  return;
80
80
  }
81
- e.code === "Escape" && (o.open = !1, (A = s.value) == null || A.focus());
82
- const i = H(d), { length: p } = i;
81
+ e.code === "Escape" && (o.open = !1, (A = l.value) == null || A.focus());
82
+ const i = y(d), { length: p } = i;
83
83
  if (!p)
84
84
  return;
85
- e.code === "Enter" && E((I = i.find((h) => h.index === n)) == null ? void 0 : I.value);
86
- const P = i.findIndex((h) => h.index === n) ?? -1, W = e.code === "ArrowDown" ? 1 : e.code === "ArrowUp" ? -1 : 0, $ = Math.abs(P + W + p) % p;
85
+ e.code === "Enter" && E((I = i.find((g) => g.index === n)) == null ? void 0 : I.value);
86
+ const P = i.findIndex((g) => g.index === n) ?? -1, W = e.code === "ArrowDown" ? 1 : e.code === "ArrowUp" ? -1 : 0, $ = Math.abs(P + W + p) % p;
87
87
  o.activeIndex = d.value[$].index ?? -1;
88
- }, N = (e) => {
88
+ }, L = (e) => {
89
89
  var n, i;
90
90
  const t = e.relatedTarget;
91
- !((n = s.value) != null && n.contains(t)) && !((i = m.value) != null && i.contains(t)) && (o.open = !1);
91
+ !((n = l.value) != null && n.contains(t)) && !((i = v.value) != null && i.contains(t)) && (o.open = !1);
92
92
  };
93
- return (e, t) => (l(), g("div", {
93
+ return (e, t) => (s(), M("div", {
94
94
  ref_key: "root",
95
- ref: s,
96
- class: S([{ disabled: e.disabled || v.value, loading: v.value }, "pl-btn-split d-flex"]),
97
- onFocusout: N,
98
- onKeydown: L
95
+ ref: l,
96
+ class: R([{ disabled: e.disabled || x.value, loading: x.value }, "pl-btn-split d-flex"]),
97
+ onFocusout: L,
98
+ onKeydown: F
99
99
  }, [
100
- k("div", {
100
+ w("div", {
101
101
  ref_key: "buttonAction",
102
102
  ref: b,
103
103
  class: "pl-btn-split__title flex-grow-1 d-flex align-center text-s-btn",
104
104
  tabindex: "0",
105
- onClick: x,
106
- onKeyup: G(M(x, ["stop"]), ["enter"])
107
- }, J(F.value), 41, ie),
108
- k("div", {
105
+ onClick: h,
106
+ onKeyup: J(S(h, ["stop"]), ["enter"])
107
+ }, Q(T.value), 41, ie),
108
+ w("div", {
109
109
  ref_key: "menuActivator",
110
110
  ref: _,
111
111
  class: "pl-btn-split__icon-container d-flex align-center justify-center",
112
112
  tabindex: "0",
113
113
  onClick: t[0] || (t[0] = (n) => o.open = !o.open)
114
114
  }, [
115
- v.value ? (l(), w(H(ne), {
115
+ x.value ? (s(), f(y(K), {
116
116
  key: 0,
117
117
  name: "loading"
118
- })) : (l(), g("div", {
118
+ })) : (s(), f(y(K), {
119
119
  key: 1,
120
- class: S([D.value, "pl-btn-split__icon"])
121
- }, null, 2))
120
+ name: D.value,
121
+ class: "pl-btn-split__icon"
122
+ }, null, 8, ["name"]))
122
123
  ], 512),
123
- o.open ? (l(), w(Q, {
124
+ o.open ? (s(), f(X, {
124
125
  key: 0,
125
126
  to: "body"
126
127
  }, [
127
- k("div", {
128
+ w("div", {
128
129
  ref_key: "list",
129
- ref: m,
130
+ ref: v,
130
131
  class: "pl-dropdown__options",
131
- style: X(c),
132
+ style: Y(c),
132
133
  tabindex: "-1"
133
134
  }, [
134
- (l(!0), g(Y, null, Z(d.value, (n, i) => (l(), w(ee, {
135
+ (s(!0), M(Z, null, ee(d.value, (n, i) => (s(), f(ne, {
135
136
  key: i,
136
137
  option: n,
137
138
  "is-selected": n.isSelected,
138
139
  "is-hovered": n.isActive,
139
140
  size: "medium",
140
- onClick: M((p) => E(n.value), ["stop"])
141
+ onClick: S((p) => E(n.value), ["stop"])
141
142
  }, null, 8, ["option", "is-selected", "is-hovered", "onClick"]))), 128))
142
143
  ], 4)
143
- ])) : R("", !0)
144
+ ])) : G("", !0)
144
145
  ], 34));
145
146
  }
146
147
  });
@@ -1 +1 @@
1
- {"version":3,"file":"PlBtnSplit.vue.js","sources":["../../../src/components/PlBtnSplit/PlBtnSplit.vue"],"sourcesContent":["<script setup lang=\"ts\" generic=\"M = unknown\">\nimport { computed, reactive, ref, unref, watch } from 'vue';\nimport './pl-btn-split.scss';\nimport DropdownListItem from '../DropdownListItem.vue';\nimport type { ListOption } from '../../types';\nimport { useElementPosition } from '../../composition/usePosition';\nimport { normalizeListOptions } from '../../helpers/utils';\nimport { deepEqual } from '@milaboratories/helpers';\nimport { PlMaskIcon16 } from '../PlMaskIcon16';\n\nconst props = defineProps<{\n /**\n * List of available options for the dropdown menu\n */\n options?: Readonly<ListOption<M>[]>;\n\n /**\n * If `true`, the dropdown component is disabled and cannot be interacted with.\n */\n disabled?: boolean;\n\n /**\n * If `true,` the button is disabled, cannot be interacted with, and shows a special 'loading' icon.\n */\n loading?: boolean;\n}>();\n\nconst emits = defineEmits(['click']);\n\nconst model = defineModel<M>({ required: true });\n\nconst root = ref<HTMLElement | undefined>();\nconst list = ref<HTMLElement | undefined>();\nconst menuActivator = ref<HTMLElement | undefined>();\nconst buttonAction = ref<HTMLElement | undefined>();\n\nconst data = reactive({\n open: false,\n optionsHeight: 0,\n activeIndex: -1,\n});\n\ndefineExpose({\n data,\n});\n\nconst optionsStyle = reactive({\n top: '0px',\n left: '0px',\n width: '0px',\n});\n\nwatch(\n list,\n (el) => {\n if (el) {\n const rect = el.getBoundingClientRect();\n data.optionsHeight = rect.height;\n window.dispatchEvent(new CustomEvent('adjust'));\n }\n },\n { immediate: true },\n);\n\nconst iconState = computed(() => (data.open ? 'mask-24 mask-chevron-up' : 'mask-24 mask-chevron-down'));\n\nconst selectedIndex = computed(() => {\n return (props.options ?? []).findIndex((o) => deepEqual(o.value, model.value));\n});\n\nconst items = computed(() =>\n normalizeListOptions(props.options ?? []).map((opt, index) => ({\n ...opt,\n index,\n isSelected: index === selectedIndex.value,\n isActive: index === data.activeIndex,\n })),\n);\n\nconst isLoadingOptions = computed(() => props.loading || props.options === undefined);\n\nconst actionName = computed(() => items.value.find((o) => deepEqual(o.value, model.value))?.label ?? (props.options === undefined ? '...' : ''));\n\nuseElementPosition(root, (pos) => {\n const focusWidth = 3;\n\n const downTopOffset = pos.top + pos.height + focusWidth;\n\n if (downTopOffset + data.optionsHeight > pos.clientHeight) {\n optionsStyle.top = pos.top - data.optionsHeight - focusWidth + 'px';\n } else {\n optionsStyle.top = downTopOffset + 'px';\n }\n\n optionsStyle.left = pos.left + 'px';\n optionsStyle.width = pos.width + 'px';\n});\n\nconst selectOption = (v: M | undefined) => {\n model.value = v!;\n data.open = false;\n root?.value?.focus();\n};\n\nfunction emitEnter() {\n emits('click');\n}\n\nconst handleKeydown = (e: { code: string; preventDefault(): void; stopPropagation(): void; target: EventTarget | null }) => {\n if (!['ArrowDown', 'ArrowUp', 'Enter', 'Escape'].includes(e.code)) {\n return;\n } else {\n e.preventDefault();\n }\n\n if (e.target === buttonAction.value && e.code === 'Enter') {\n emitEnter();\n return;\n }\n\n const { open, activeIndex } = data;\n\n if (!open && e.target === menuActivator.value) {\n if (e.code === 'Enter') {\n data.open = true;\n }\n return;\n }\n\n if (e.code === 'Escape') {\n data.open = false;\n root.value?.focus();\n }\n\n const filtered = unref(items);\n\n const { length } = filtered;\n\n if (!length) {\n return;\n }\n\n if (e.code === 'Enter') {\n selectOption(filtered.find((it) => it.index === activeIndex)?.value);\n }\n\n const localIndex = filtered.findIndex((it) => it.index === activeIndex) ?? -1;\n\n const delta = e.code === 'ArrowDown' ? 1 : e.code === 'ArrowUp' ? -1 : 0;\n\n const newIndex = Math.abs(localIndex + delta + length) % length;\n\n data.activeIndex = items.value[newIndex].index ?? -1;\n};\n\nconst onFocusOut = (event: FocusEvent) => {\n const relatedTarget = event.relatedTarget as Node | null;\n\n if (!root.value?.contains(relatedTarget) && !list.value?.contains(relatedTarget)) {\n data.open = false;\n }\n};\n</script>\n<template>\n <div\n ref=\"root\"\n :class=\"{ disabled: disabled || isLoadingOptions, loading: isLoadingOptions }\"\n class=\"pl-btn-split d-flex\"\n @focusout=\"onFocusOut\"\n @keydown=\"handleKeydown\"\n >\n <div\n ref=\"buttonAction\"\n class=\"pl-btn-split__title flex-grow-1 d-flex align-center text-s-btn\"\n tabindex=\"0\"\n @click=\"emitEnter\"\n @keyup.stop.enter=\"emitEnter\"\n >\n {{ actionName }}\n </div>\n <div ref=\"menuActivator\" class=\"pl-btn-split__icon-container d-flex align-center justify-center\" tabindex=\"0\" @click=\"data.open = !data.open\">\n <PlMaskIcon16 v-if=\"isLoadingOptions\" name=\"loading\" />\n <div v-else :class=\"iconState\" class=\"pl-btn-split__icon\" />\n </div>\n\n <Teleport v-if=\"data.open\" to=\"body\">\n <div ref=\"list\" class=\"pl-dropdown__options\" :style=\"optionsStyle\" tabindex=\"-1\">\n <DropdownListItem\n v-for=\"(item, index) in items\"\n :key=\"index\"\n :option=\"item\"\n :is-selected=\"item.isSelected\"\n :is-hovered=\"item.isActive\"\n :size=\"'medium'\"\n @click.stop=\"selectOption(item.value)\"\n />\n </div>\n </Teleport>\n </div>\n</template>\n"],"names":["props","__props","emits","__emit","model","_useModel","root","ref","list","menuActivator","buttonAction","data","reactive","__expose","optionsStyle","watch","el","rect","iconState","computed","selectedIndex","o","deepEqual","items","normalizeListOptions","opt","index","isLoadingOptions","actionName","_a","useElementPosition","pos","downTopOffset","selectOption","v","emitEnter","handleKeydown","open","activeIndex","filtered","unref","length","_b","it","localIndex","delta","newIndex","onFocusOut","event","relatedTarget"],"mappings":"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"}
1
+ {"version":3,"file":"PlBtnSplit.vue.js","sources":["../../../src/components/PlBtnSplit/PlBtnSplit.vue"],"sourcesContent":["<script setup lang=\"ts\" generic=\"M = unknown\">\nimport { deepEqual } from '@milaboratories/helpers';\nimport { computed, reactive, ref, unref, watch } from 'vue';\nimport { useElementPosition } from '../../composition/usePosition';\nimport { normalizeListOptions } from '../../helpers/utils';\nimport type { ListOption } from '../../types';\nimport DropdownListItem from '../DropdownListItem.vue';\nimport { PlIcon16 } from '../PlIcon16';\n\nimport './pl-btn-split.scss';\n\nconst props = defineProps<{\n /**\n * List of available options for the dropdown menu\n */\n options?: Readonly<ListOption<M>[]>;\n\n /**\n * If `true`, the dropdown component is disabled and cannot be interacted with.\n */\n disabled?: boolean;\n\n /**\n * If `true,` the button is disabled, cannot be interacted with, and shows a special 'loading' icon.\n */\n loading?: boolean;\n}>();\n\nconst emits = defineEmits(['click']);\n\nconst model = defineModel<M>({ required: true });\n\nconst root = ref<HTMLElement | undefined>();\nconst list = ref<HTMLElement | undefined>();\nconst menuActivator = ref<HTMLElement | undefined>();\nconst buttonAction = ref<HTMLElement | undefined>();\n\nconst data = reactive({\n open: false,\n optionsHeight: 0,\n activeIndex: -1,\n});\n\ndefineExpose({\n data,\n});\n\nconst optionsStyle = reactive({\n top: '0px',\n left: '0px',\n width: '0px',\n});\n\nwatch(\n list,\n (el) => {\n if (el) {\n const rect = el.getBoundingClientRect();\n data.optionsHeight = rect.height;\n window.dispatchEvent(new CustomEvent('adjust'));\n }\n },\n { immediate: true },\n);\n\nconst iconName = computed(() => (data.open ? 'chevron-up' : 'chevron-down'));\n\nconst selectedIndex = computed(() => {\n return (props.options ?? []).findIndex((o) => deepEqual(o.value, model.value));\n});\n\nconst items = computed(() =>\n normalizeListOptions(props.options ?? []).map((opt, index) => ({\n ...opt,\n index,\n isSelected: index === selectedIndex.value,\n isActive: index === data.activeIndex,\n })),\n);\n\nconst isLoadingOptions = computed(() => props.loading || props.options === undefined);\n\nconst actionName = computed(() => items.value.find((o) => deepEqual(o.value, model.value))?.label ?? (props.options === undefined ? '...' : ''));\n\nuseElementPosition(root, (pos) => {\n const focusWidth = 3;\n\n const downTopOffset = pos.top + pos.height + focusWidth;\n\n if (downTopOffset + data.optionsHeight > pos.clientHeight) {\n optionsStyle.top = pos.top - data.optionsHeight - focusWidth + 'px';\n } else {\n optionsStyle.top = downTopOffset + 'px';\n }\n\n optionsStyle.left = pos.left + 'px';\n optionsStyle.width = pos.width + 'px';\n});\n\nconst selectOption = (v: M | undefined) => {\n model.value = v!;\n data.open = false;\n root?.value?.focus();\n};\n\nfunction emitEnter() {\n emits('click');\n}\n\nconst handleKeydown = (e: { code: string; preventDefault(): void; stopPropagation(): void; target: EventTarget | null }) => {\n if (!['ArrowDown', 'ArrowUp', 'Enter', 'Escape'].includes(e.code)) {\n return;\n } else {\n e.preventDefault();\n }\n\n if (e.target === buttonAction.value && e.code === 'Enter') {\n emitEnter();\n return;\n }\n\n const { open, activeIndex } = data;\n\n if (!open && e.target === menuActivator.value) {\n if (e.code === 'Enter') {\n data.open = true;\n }\n return;\n }\n\n if (e.code === 'Escape') {\n data.open = false;\n root.value?.focus();\n }\n\n const filtered = unref(items);\n\n const { length } = filtered;\n\n if (!length) {\n return;\n }\n\n if (e.code === 'Enter') {\n selectOption(filtered.find((it) => it.index === activeIndex)?.value);\n }\n\n const localIndex = filtered.findIndex((it) => it.index === activeIndex) ?? -1;\n\n const delta = e.code === 'ArrowDown' ? 1 : e.code === 'ArrowUp' ? -1 : 0;\n\n const newIndex = Math.abs(localIndex + delta + length) % length;\n\n data.activeIndex = items.value[newIndex].index ?? -1;\n};\n\nconst onFocusOut = (event: FocusEvent) => {\n const relatedTarget = event.relatedTarget as Node | null;\n\n if (!root.value?.contains(relatedTarget) && !list.value?.contains(relatedTarget)) {\n data.open = false;\n }\n};\n</script>\n<template>\n <div\n ref=\"root\"\n :class=\"{ disabled: disabled || isLoadingOptions, loading: isLoadingOptions }\"\n class=\"pl-btn-split d-flex\"\n @focusout=\"onFocusOut\"\n @keydown=\"handleKeydown\"\n >\n <div\n ref=\"buttonAction\"\n class=\"pl-btn-split__title flex-grow-1 d-flex align-center text-s-btn\"\n tabindex=\"0\"\n @click=\"emitEnter\"\n @keyup.stop.enter=\"emitEnter\"\n >\n {{ actionName }}\n </div>\n <div ref=\"menuActivator\" class=\"pl-btn-split__icon-container d-flex align-center justify-center\" tabindex=\"0\" @click=\"data.open = !data.open\">\n <PlIcon16 v-if=\"isLoadingOptions\" name=\"loading\" />\n <PlIcon16 v-else :name=\"iconName\" class=\"pl-btn-split__icon\" />\n </div>\n\n <Teleport v-if=\"data.open\" to=\"body\">\n <div ref=\"list\" class=\"pl-dropdown__options\" :style=\"optionsStyle\" tabindex=\"-1\">\n <DropdownListItem\n v-for=\"(item, index) in items\"\n :key=\"index\"\n :option=\"item\"\n :is-selected=\"item.isSelected\"\n :is-hovered=\"item.isActive\"\n :size=\"'medium'\"\n @click.stop=\"selectOption(item.value)\"\n />\n </div>\n </Teleport>\n </div>\n</template>\n"],"names":["props","__props","emits","__emit","model","_useModel","root","ref","list","menuActivator","buttonAction","data","reactive","__expose","optionsStyle","watch","el","rect","iconName","computed","selectedIndex","o","deepEqual","items","normalizeListOptions","opt","index","isLoadingOptions","actionName","_a","useElementPosition","pos","downTopOffset","selectOption","v","emitEnter","handleKeydown","open","activeIndex","filtered","unref","length","_b","it","localIndex","delta","newIndex","onFocusOut","event","relatedTarget"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@milaboratories/uikit",
3
- "version": "2.5.4",
3
+ "version": "2.5.7",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "exports": {
@@ -31,7 +31,7 @@
31
31
  "d3-axis": "^3.0.0",
32
32
  "resize-observer-polyfill": "^1.5.1",
33
33
  "canonicalize": "~2.1.0",
34
- "@platforma-sdk/model": "1.45.26",
34
+ "@platforma-sdk/model": "1.45.30",
35
35
  "@milaboratories/helpers": "1.12.0"
36
36
  },
37
37
  "devDependencies": {
@@ -40,10 +40,10 @@
40
40
  "yarpm": "^1.2.0",
41
41
  "svgo": "^3.3.2",
42
42
  "typescript": "~5.6.3",
43
- "@milaboratories/build-configs": "1.0.8",
44
43
  "@milaboratories/ts-configs": "1.0.6",
45
44
  "@milaboratories/ts-builder": "1.0.5",
46
- "@milaboratories/eslint-config": "1.0.4"
45
+ "@milaboratories/build-configs": "1.0.8",
46
+ "@milaboratories/eslint-config": "1.0.5"
47
47
  },
48
48
  "scripts": {
49
49
  "dev": "ts-builder serve --target browser-lib --build-config ./build.browser-lib.config.js",
@@ -1,12 +1,13 @@
1
1
  <script setup lang="ts" generic="M = unknown">
2
+ import { deepEqual } from '@milaboratories/helpers';
2
3
  import { computed, reactive, ref, unref, watch } from 'vue';
3
- import './pl-btn-split.scss';
4
- import DropdownListItem from '../DropdownListItem.vue';
5
- import type { ListOption } from '../../types';
6
4
  import { useElementPosition } from '../../composition/usePosition';
7
5
  import { normalizeListOptions } from '../../helpers/utils';
8
- import { deepEqual } from '@milaboratories/helpers';
9
- import { PlMaskIcon16 } from '../PlMaskIcon16';
6
+ import type { ListOption } from '../../types';
7
+ import DropdownListItem from '../DropdownListItem.vue';
8
+ import { PlIcon16 } from '../PlIcon16';
9
+
10
+ import './pl-btn-split.scss';
10
11
 
11
12
  const props = defineProps<{
12
13
  /**
@@ -62,7 +63,7 @@ watch(
62
63
  { immediate: true },
63
64
  );
64
65
 
65
- const iconState = computed(() => (data.open ? 'mask-24 mask-chevron-up' : 'mask-24 mask-chevron-down'));
66
+ const iconName = computed(() => (data.open ? 'chevron-up' : 'chevron-down'));
66
67
 
67
68
  const selectedIndex = computed(() => {
68
69
  return (props.options ?? []).findIndex((o) => deepEqual(o.value, model.value));
@@ -179,8 +180,8 @@ const onFocusOut = (event: FocusEvent) => {
179
180
  {{ actionName }}
180
181
  </div>
181
182
  <div ref="menuActivator" class="pl-btn-split__icon-container d-flex align-center justify-center" tabindex="0" @click="data.open = !data.open">
182
- <PlMaskIcon16 v-if="isLoadingOptions" name="loading" />
183
- <div v-else :class="iconState" class="pl-btn-split__icon" />
183
+ <PlIcon16 v-if="isLoadingOptions" name="loading" />
184
+ <PlIcon16 v-else :name="iconName" class="pl-btn-split__icon" />
184
185
  </div>
185
186
 
186
187
  <Teleport v-if="data.open" to="body">