@milaboratories/uikit 2.10.2 → 2.10.3

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.10.2 build /home/runner/_work/platforma/platforma/lib/ui/uikit
3
+ > @milaboratories/uikit@2.10.3 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...
@@ -24,8 +24,8 @@ 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/components/PlChip/PlChip.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
28
27
  dist/layout/PlGrid/PlGrid.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
28
+ dist/components/PlChip/PlChip.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
29
29
  dist/components/PlTabs/PlTabs.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/DataTable/TdCell.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
@@ -38,67 +38,67 @@ computing gzip size...
38
38
  dist/components/HScroll.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
39
39
  dist/components/TabItem.vue2.js  0.10 kB │ gzip: 0.11 kB │ map: 0.10 kB
40
40
  dist/components/DataTable/TScroll.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
43
- dist/components/PlTooltip/PlTooltip.vue2.js  0.11 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
44
43
  dist/components/PlLogView/PlLogView.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
44
+ dist/components/PlTooltip/PlTooltip.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
45
45
  dist/components/PlBtnLink/PlBtnLink.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/PlCheckbox/PlCheckbox.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
48
- dist/components/PlBtnSplit/PlBtnSplit.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
49
- dist/components/PlDropdown/PlDropdown.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
50
47
  dist/components/PlBtnGhost/PlBtnGhost.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
51
48
  dist/components/PlBtnGroup/PlBtnGroup.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
49
+ dist/components/PlBtnSplit/PlBtnSplit.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
50
+ dist/components/PlDropdown/PlDropdown.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
51
+ dist/components/PlCheckbox/PlCheckbox.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
52
52
  dist/components/PlTextArea/PlTextArea.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
53
53
  dist/components/PlDropdown/OptionList.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
54
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/PlBtnDanger/PlBtnDanger.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
57
56
  dist/components/PlAccordion/PlAccordion.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
58
- dist/components/PlStatusTag/PlStatusTag.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
59
57
  dist/components/PlTextField/PlTextField.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
58
+ dist/components/PlBtnDanger/PlBtnDanger.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
60
  dist/components/PlBtnAccent/PlBtnAccent.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
61
61
  dist/components/PlFileInput/PlFileInput.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
62
- dist/layout/PlContainer/PlContainer.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
62
+ dist/components/PlStatusTag/PlStatusTag.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
63
63
  dist/components/DataTable/ColumnCaret.vue2.js  0.11 kB │ gzip: 0.11 kB │ map: 0.10 kB
64
- dist/components/PlFileDialog/PlFileDialog.vue2.js  0.11 kB │ gzip: 0.12 kB │ map: 0.10 kB
65
64
  dist/components/PlBtnPrimary/PlBtnPrimary.vue2.js  0.11 kB │ gzip: 0.12 kB │ map: 0.10 kB
65
+ dist/components/PlFileDialog/PlFileDialog.vue2.js  0.11 kB │ gzip: 0.12 kB │ map: 0.10 kB
66
66
  dist/utils/InnerBorder.vue2.js  0.11 kB │ gzip: 0.12 kB │ map: 0.34 kB
67
67
  dist/components/ThemeSwitcher.vue2.js  0.11 kB │ gzip: 0.12 kB │ map: 0.10 kB
68
- dist/components/PlDialogModal/PlDialogModal.vue2.js  0.11 kB │ gzip: 0.12 kB │ map: 0.10 kB
69
68
  dist/components/PlProgressBar/PlProgressBar.vue2.js  0.11 kB │ gzip: 0.12 kB │ map: 0.10 kB
70
- 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
71
70
  dist/components/PlNumberField/PlNumberField.vue2.js  0.11 kB │ gzip: 0.12 kB │ map: 0.10 kB
71
+ dist/components/PlDropdownRef/PlDropdownRef.vue2.js  0.11 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
72
73
  dist/components/PlAutocomplete/PlAutocomplete.vue2.js  0.12 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/DataTable/TableComponent.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.10 kB
75
74
  dist/components/PlToggleSwitch/PlToggleSwitch.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.10 kB
76
75
  dist/components/PlProgressCell/PlProgressCell.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.10 kB
77
- dist/components/PlBtnSecondary/PlBtnSecondary.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
77
+ dist/components/PlDropdownLine/PlDropdownLine.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.10 kB
78
78
  dist/components/PlCheckbox/PlCheckboxBase.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.10 kB
79
79
  dist/components/PlDropdownLine/ResizableInput.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.10 kB
80
80
  dist/components/ContextProvider.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
81
81
  dist/components/PlConfirmDialog.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
82
82
  dist/utils/DropdownOverlay/DropdownOverlay.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
83
+ dist/components/PlErrorBoundary/PlErrorBoundary.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
83
84
  dist/components/PlEditableTitle/PlEditableTitle.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
84
85
  dist/components/PlDropdownMulti/PlDropdownMulti.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
85
- dist/components/PlErrorBoundary/PlErrorBoundary.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
86
86
  dist/components/PlCheckboxGroup/PlCheckboxGroup.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
87
87
  dist/helpers/math.js  0.12 kB │ gzip: 0.13 kB │ map: 0.33 kB
88
88
  dist/components/DataTable/RowsCommandMenu.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
89
89
  dist/components/DropdownListItem.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
90
- dist/components/PlSlideModal/PlPureSlideModal.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
91
90
  dist/components/PlDropdownLegacy/PlDropdownLegacy.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
92
91
  dist/components/PlLoaderCircular/PlLoaderCircular.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
92
+ dist/components/PlSlideModal/PlPureSlideModal.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
93
93
  dist/components/SliderRangeTriple.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
94
94
  dist/components/PlSvg/PlSvg.vue3.js  0.12 kB │ gzip: 0.13 kB │ map: 0.10 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
100
- dist/components/PlIcon24/PlIcon24.vue3.js  0.13 kB │ gzip: 0.13 kB │ map: 0.10 kB
99
+ dist/components/PlNotificationAlert/PlNotificationAlert.vue2.js  0.13 kB │ gzip: 0.12 kB │ map: 0.11 kB
101
100
  dist/components/PlIcon16/PlIcon16.vue3.js  0.13 kB │ gzip: 0.13 kB │ map: 0.10 kB
101
+ dist/components/PlIcon24/PlIcon24.vue3.js  0.13 kB │ gzip: 0.13 kB │ map: 0.10 kB
102
102
  dist/components/TransitionSlidePanel.vue2.js  0.13 kB │ gzip: 0.12 kB │ map: 0.11 kB
103
103
  dist/components/PlRadio/keys.js  0.13 kB │ gzip: 0.13 kB │ map: 0.43 kB
104
104
  dist/components/PlClipboard/PlClipboard.vue3.js  0.13 kB │ gzip: 0.13 kB │ map: 0.10 kB
@@ -119,8 +119,8 @@ computing gzip size...
119
119
  dist/_virtual/_plugin-vue_export-helper.js  0.19 kB │ gzip: 0.17 kB │ map: 0.12 kB
120
120
  dist/components/PlRadio/PlRadioGroup.vue3.js  0.20 kB │ gzip: 0.16 kB │ map: 0.11 kB
121
121
  dist/components/PlSearchField/PlSearchField.vue3.js  0.20 kB │ gzip: 0.16 kB │ map: 0.11 kB
122
- dist/components/PlChartStackedBar/PlChartStackedBar.vue3.js  0.20 kB │ gzip: 0.16 kB │ map: 0.11 kB
123
122
  dist/components/PlChartHistogram/PlChartHistogram.vue3.js  0.20 kB │ gzip: 0.16 kB │ map: 0.11 kB
123
+ dist/components/PlChartStackedBar/PlChartStackedBar.vue3.js  0.20 kB │ gzip: 0.16 kB │ map: 0.11 kB
124
124
  dist/components/PlSectionSeparator/PlSectionSeparator.vue3.js  0.20 kB │ gzip: 0.16 kB │ map: 0.11 kB
125
125
  dist/helpers/index.js  0.21 kB │ gzip: 0.17 kB │ map: 0.65 kB
126
126
  dist/components/PlElementList/PlElementList.vue3.js  0.22 kB │ gzip: 0.17 kB │ map: 0.11 kB
@@ -155,8 +155,8 @@ computing gzip size...
155
155
  dist/assets/icons/icon-assets-min/24_arrow-down.svg.js  0.27 kB │ gzip: 0.24 kB │ map: 0.44 kB
156
156
  dist/assets/icons/icon-assets-min/16_add.svg.js  0.27 kB │ gzip: 0.23 kB │ map: 0.44 kB
157
157
  dist/components/PlRadio/PlRadio.vue.js  0.27 kB │ gzip: 0.21 kB │ map: 0.10 kB
158
- dist/components/PlChartStackedBar/Legends.vue.js  0.27 kB │ gzip: 0.21 kB │ map: 0.10 kB
159
158
  dist/assets/icons/icon-assets-min/24_linetype-longdash.svg.js  0.27 kB │ gzip: 0.23 kB │ map: 0.47 kB
159
+ dist/components/PlChartStackedBar/Legends.vue.js  0.27 kB │ gzip: 0.21 kB │ map: 0.10 kB
160
160
  dist/assets/icons/icon-assets-min/16_chevron-first.svg.js  0.28 kB │ gzip: 0.23 kB │ map: 0.45 kB
161
161
  dist/components/PlIcon16/PlIcon16.vue.js  0.28 kB │ gzip: 0.22 kB │ map: 0.10 kB
162
162
  dist/components/PlIcon24/PlIcon24.vue.js  0.28 kB │ gzip: 0.22 kB │ map: 0.10 kB
@@ -177,10 +177,10 @@ computing gzip size...
177
177
  dist/assets/icons/icon-assets-min/16_maximize.svg.js  0.29 kB │ gzip: 0.24 kB │ map: 0.47 kB
178
178
  dist/components/PlSlideModal/PlSlideModal.vue.js  0.29 kB │ gzip: 0.22 kB │ map: 0.11 kB
179
179
  dist/components/PlRadio/PlRadioGroup.vue.js  0.29 kB │ gzip: 0.22 kB │ map: 0.11 kB
180
+ dist/components/PlErrorAlert/PlErrorAlert.vue.js  0.29 kB │ gzip: 0.22 kB │ map: 0.11 kB
180
181
  dist/assets/icons/icon-assets-min/16_caret-left.svg.js  0.29 kB │ gzip: 0.24 kB │ map: 0.46 kB
181
182
  dist/assets/icons/icon-assets-min/16_download.svg.js  0.29 kB │ gzip: 0.24 kB │ map: 0.46 kB
182
183
  dist/assets/icons/icon-assets-min/24_linetype-dashed.svg.js  0.29 kB │ gzip: 0.23 kB │ map: 0.48 kB
183
- dist/components/PlErrorAlert/PlErrorAlert.vue.js  0.29 kB │ gzip: 0.22 kB │ map: 0.11 kB
184
184
  dist/assets/icons/icon-assets-min/24_drag-dots.svg.js  0.29 kB │ gzip: 0.23 kB │ map: 0.46 kB
185
185
  dist/assets/icons/icon-assets-min/16_chevron-up.svg.js  0.29 kB │ gzip: 0.24 kB │ map: 0.47 kB
186
186
  dist/components/PlElementList/PlElementList.vue.js  0.29 kB │ gzip: 0.22 kB │ map: 0.11 kB
@@ -196,12 +196,12 @@ computing gzip size...
196
196
  dist/assets/icons/icon-assets-min/24_jump-link.svg.js  0.30 kB │ gzip: 0.25 kB │ map: 0.46 kB
197
197
  dist/assets/icons/icon-assets-min/24_checkbox-intermediate.svg.js  0.30 kB │ gzip: 0.24 kB │ map: 0.53 kB
198
198
  dist/assets/icons/icon-assets-min/24_chevron-up.svg.js  0.30 kB │ gzip: 0.24 kB │ map: 0.48 kB
199
+ dist/components/PlElementList/utils.js  0.30 kB │ gzip: 0.23 kB │ map: 0.79 kB
199
200
  dist/assets/icons/icon-assets-min/16_close.svg.js  0.30 kB │ gzip: 0.24 kB │ map: 0.47 kB
200
201
  dist/assets/icons/icon-assets-min/24_chevron-down.svg.js  0.30 kB │ gzip: 0.24 kB │ map: 0.48 kB
201
202
  dist/assets/icons/icon-assets-min/24_linetype-dotdash.svg.js  0.30 kB │ gzip: 0.25 kB │ map: 0.49 kB
202
203
  dist/assets/icons/icon-assets-min/24_menu.svg.js  0.30 kB │ gzip: 0.24 kB │ map: 0.46 kB
203
204
  dist/assets/icons/icon-assets-min/24_text-align-left.svg.js  0.30 kB │ gzip: 0.25 kB │ map: 0.49 kB
204
- dist/components/PlElementList/utils.js  0.30 kB │ gzip: 0.23 kB │ map: 0.79 kB
205
205
  dist/assets/icons/icon-assets-min/24_arrow-link.svg.js  0.30 kB │ gzip: 0.25 kB │ map: 0.48 kB
206
206
  dist/assets/icons/icon-assets-min/24_chevron-right.svg.js  0.30 kB │ gzip: 0.25 kB │ map: 0.49 kB
207
207
  dist/assets/icons/icon-assets-min/16_arrow-link.svg.js  0.30 kB │ gzip: 0.25 kB │ map: 0.48 kB
@@ -214,9 +214,9 @@ computing gzip size...
214
214
  dist/assets/icons/icon-assets-min/16_checkmark.svg.js  0.30 kB │ gzip: 0.25 kB │ map: 0.48 kB
215
215
  dist/components/PlChartStackedBar/PlChartStackedBar.vue.js  0.30 kB │ gzip: 0.22 kB │ map: 0.11 kB
216
216
  dist/components/PlChartStackedBar/StackedRowCompact.vue.js  0.30 kB │ gzip: 0.22 kB │ map: 0.11 kB
217
+ dist/components/PlElementList/PlElementListItem.vue.js  0.30 kB │ gzip: 0.22 kB │ map: 0.11 kB
217
218
  dist/assets/icons/icon-assets-min/16_arrow-up.svg.js  0.30 kB │ gzip: 0.25 kB │ map: 0.48 kB
218
219
  dist/assets/icons/icon-assets-min/24_linetype-twodash.svg.js  0.30 kB │ gzip: 0.25 kB │ map: 0.50 kB
219
- dist/components/PlElementList/PlElementListItem.vue.js  0.30 kB │ gzip: 0.22 kB │ map: 0.11 kB
220
220
  dist/assets/icons/icon-assets-min/24_checkmark.svg.js  0.31 kB │ gzip: 0.25 kB │ map: 0.49 kB
221
221
  dist/assets/icons/icon-assets-min/16_arrow-down.svg.js  0.31 kB │ gzip: 0.25 kB │ map: 0.49 kB
222
222
  dist/assets/icons/icon-assets-min/16_arrow-left.svg.js  0.31 kB │ gzip: 0.24 kB │ map: 0.49 kB
@@ -302,9 +302,9 @@ computing gzip size...
302
302
  dist/assets/icons/icon-assets-min/24_align-right.svg.js  0.43 kB │ gzip: 0.28 kB │ map: 0.61 kB
303
303
  dist/assets/icons/icon-assets-min/24_zoom-out.svg.js  0.43 kB │ gzip: 0.29 kB │ map: 0.63 kB
304
304
  dist/assets/icons/icon-assets-min/24_windows-collapse.svg.js  0.43 kB │ gzip: 0.30 kB │ map: 0.66 kB
305
- dist/utils/InnerBorder.vue.js  0.43 kB │ gzip: 0.31 kB │ map: 0.42 kB
306
305
  dist/assets/icons/icon-assets-min/16_delete-circle.svg.js  0.43 kB │ gzip: 0.30 kB │ map: 0.62 kB
307
306
  dist/assets/icons/icon-assets-min/24_drag-vertical.svg.js  0.43 kB │ gzip: 0.31 kB │ map: 0.62 kB
307
+ dist/utils/InnerBorder.vue.js  0.43 kB │ gzip: 0.31 kB │ map: 0.42 kB
308
308
  dist/assets/icons/icon-assets-min/16_zip.svg.js  0.43 kB │ gzip: 0.29 kB │ map: 0.60 kB
309
309
  dist/assets/icons/icon-assets-min/24_arrow-left-curved.svg.js  0.43 kB │ gzip: 0.31 kB │ map: 0.61 kB
310
310
  dist/assets/icons/icon-assets-min/24_drag-horizontal.svg.js  0.43 kB │ gzip: 0.32 kB │ map: 0.62 kB
@@ -318,8 +318,8 @@ computing gzip size...
318
318
  dist/assets/icons/icon-assets-min/24_renew.svg.js  0.44 kB │ gzip: 0.32 kB │ map: 0.62 kB
319
319
  dist/assets/icons/icon-assets-min/16_error.svg.js  0.44 kB │ gzip: 0.32 kB │ map: 0.64 kB
320
320
  dist/assets/icons/icon-assets-min/24_monetization.svg.js  0.45 kB │ gzip: 0.30 kB │ map: 0.63 kB
321
- dist/assets/images/24_checkbox-light-enabled-unchecked.svg.js  0.45 kB │ gzip: 0.32 kB │ map: 0.67 kB
322
321
  dist/assets/icons/icon-assets-min/24_y-axis.svg.js  0.45 kB │ gzip: 0.30 kB │ map: 0.65 kB
322
+ dist/assets/images/24_checkbox-light-enabled-unchecked.svg.js  0.45 kB │ gzip: 0.32 kB │ map: 0.67 kB
323
323
  dist/assets/icons/icon-assets-min/16_y-axis.svg.js  0.45 kB │ gzip: 0.30 kB │ map: 0.65 kB
324
324
  dist/assets/icons/icon-assets-min/24_delete-circle.svg.js  0.45 kB │ gzip: 0.31 kB │ map: 0.65 kB
325
325
  dist/assets/icons/icon-assets-min/24_zoom-in.svg.js  0.45 kB │ gzip: 0.30 kB │ map: 0.65 kB
@@ -419,8 +419,8 @@ computing gzip size...
419
419
  dist/assets/icons/icon-assets-min/24_filter-on.svg.js  0.62 kB │ gzip: 0.41 kB │ map: 0.81 kB
420
420
  dist/assets/icons/icon-assets-min/16_duplicate.svg.js  0.62 kB │ gzip: 0.39 kB │ map: 0.83 kB
421
421
  dist/assets/icons/icon-assets-min/24_bar-stacked.svg.js  0.62 kB │ gzip: 0.34 kB │ map: 0.83 kB
422
- dist/composition/useRipple.js  0.63 kB │ gzip: 0.40 kB │ map: 1.69 kB
423
422
  dist/assets/icons/icon-assets-min/24_file-doc-download.svg.js  0.63 kB │ gzip: 0.38 kB │ map: 0.85 kB
423
+ dist/composition/useRipple.js  0.63 kB │ gzip: 0.40 kB │ map: 1.69 kB
424
424
  dist/assets/icons/icon-assets-min/24_axes.svg.js  0.63 kB │ gzip: 0.37 kB │ map: 0.81 kB
425
425
  dist/utils/DoubleContour.vue.js  0.63 kB │ gzip: 0.41 kB │ map: 2.12 kB
426
426
  dist/assets/icons/icon-assets-min/24_clipboard.svg.js  0.63 kB │ gzip: 0.37 kB │ map: 0.84 kB
@@ -498,8 +498,8 @@ computing gzip size...
498
498
  dist/assets/icons/icon-assets-min/24_view-show.svg.js  0.93 kB │ gzip: 0.55 kB │ map: 1.11 kB
499
499
  dist/components/PlCheckbox/PlCheckboxBase.vue.js  0.94 kB │ gzip: 0.51 kB │ map: 1.26 kB
500
500
  dist/assets/icons/icon-assets-min/24_theme-dark.svg.js  0.94 kB │ gzip: 0.48 kB │ map: 1.12 kB
501
- dist/components/PlIcon24/PlIcon24.vue2.js  0.95 kB │ gzip: 0.51 kB │ map: 2.57 kB
502
501
  dist/components/PlIcon16/PlIcon16.vue2.js  0.95 kB │ gzip: 0.51 kB │ map: 1.86 kB
502
+ dist/components/PlIcon24/PlIcon24.vue2.js  0.95 kB │ gzip: 0.51 kB │ map: 2.57 kB
503
503
  dist/assets/icons/icon-assets-min/24_dendrogram-X-line.svg.js  0.95 kB │ gzip: 0.39 kB │ map: 1.24 kB
504
504
  dist/components/DataTable/composition/useTableColumns.js  0.97 kB │ gzip: 0.53 kB │ map: 2.87 kB
505
505
  dist/assets/icons/icon-assets-min/24_lasso.svg.js  0.97 kB │ gzip: 0.57 kB │ map: 1.15 kB
@@ -636,7 +636,7 @@ computing gzip size...
636
636
  dist/components/PlDropdownLine/PlDropdownLine.vue.js  8.19 kB │ gzip: 2.56 kB │ map: 15.98 kB
637
637
  dist/components/SliderRangeTriple.vue.js  8.54 kB │ gzip: 2.46 kB │ map: 17.64 kB
638
638
  dist/components/PlFileDialog/Remote.vue.js  8.71 kB │ gzip: 2.80 kB │ map: 17.21 kB
639
- dist/components/PlDropdownMulti/PlDropdownMulti.vue.js  8.93 kB │ gzip: 2.82 kB │ map: 16.65 kB
639
+ dist/components/PlDropdownMulti/PlDropdownMulti.vue.js  8.97 kB │ gzip: 2.83 kB │ map: 16.82 kB
640
640
  dist/components/PlDropdownLegacy/PlDropdownLegacy.vue.js  9.16 kB │ gzip: 2.89 kB │ map: 17.77 kB
641
641
  dist/components/PlDropdown/PlDropdown.vue.js  9.27 kB │ gzip: 2.89 kB │ map: 18.45 kB
642
642
  dist/components/PlAutocompleteMulti/PlAutocompleteMulti.vue.js  9.82 kB │ gzip: 3.09 kB │ map: 20.80 kB
@@ -646,7 +646,7 @@ computing gzip size...
646
646
  dist/composition/filters/metadata.js  12.91 kB │ gzip: 1.15 kB │ map: 24.22 kB
647
647
  dist/components/PlSvg/PlSvg.vue2.js  39.54 kB │ gzip: 3.38 kB │ map: 12.31 kB
648
648
  dist/index.js 683.13 kB │ gzip: 226.33 kB │ map: 5.98 kB
649
- [vite:dts] Declaration files built in 8193ms.
649
+ [vite:dts] Declaration files built in 5810ms.
650
650
 
651
- ✓ built in 11.83s
651
+ ✓ built in 8.61s
652
652
  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.10.2 lint /home/runner/_work/platforma/platforma/lib/ui/uikit
3
+ > @milaboratories/uikit@2.10.3 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.10.2 type-check /home/runner/_work/platforma/platforma/lib/ui/uikit
3
+ > @milaboratories/uikit@2.10.3 type-check /home/runner/_work/platforma/platforma/lib/ui/uikit
4
4
  > ts-builder types --target browser-lib
5
5
 
6
6
  ↳ vue-tsc.js --noEmit --project ./tsconfig.json --customConditions ,
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @milaboratories/uikit
2
2
 
3
+ ## 2.10.3
4
+
5
+ ### Patch Changes
6
+
7
+ - 601a869: PlDropdownMulti: don't show loading spinner when disabled
8
+
3
9
  ## 2.10.2
4
10
 
5
11
  ### Patch Changes
@@ -1 +1 @@
1
- {"version":3,"file":"PlDropdownMulti.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlDropdownMulti/PlDropdownMulti.vue"],"names":[],"mappings":"AAyUA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAS9C,OAAO,0BAA0B,CAAC;AAGlC;;GAEG;yBACc,CAAC,yBACJ,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,cAClD,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,iBAC5F,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;WAqjB1D,mBAAmB,CAAC;;;QAziBxB;;WAEG;oBACS,CAAC,EAAE;QACf;;WAEG;gBACK,MAAM;QACd;;WAEG;kBACO,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QACnC;;WAEG;iBACM,MAAM;QACf;;WAEG;gBACK,OAAO;QACf;;WAEG;sBACW,MAAM;QACpB;;WAEG;mBACQ,OAAO;QAClB;;WAEG;mBACQ,OAAO;QAClB;;aAEK;wBACW,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,WAAW,GAAG,aAAa,GAAG,cAAc,GAAG,QAAQ;mBAsgBhC,CAAC,4BAA2B;oBACzG,OAAO,KAAK,EAAE,gBAAgB,CAAC,EAAE,CAAC,GAAG,IAAI;WAClD,GAAG;;wBA5DkB,GAAG;yBACF,GAAG;;cAzf3B,mBAAmB,KAAK,CAAC,EAAE,KAAG,IAAI;;;;YAyjBI,OAAO,CAAC,OAAO,WAAW,CAAC;;AA/jBvE,wBA+jB4E;AAG5E,KAAK,mBAAmB,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"PlDropdownMulti.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlDropdownMulti/PlDropdownMulti.vue"],"names":[],"mappings":"AA6UA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAS9C,OAAO,0BAA0B,CAAC;AAGlC;;GAEG;yBACc,CAAC,yBACJ,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,cAClD,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,iBAC5F,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC;WAyjB1D,mBAAmB,CAAC;;;QA7iBxB;;WAEG;oBACS,CAAC,EAAE;QACf;;WAEG;gBACK,MAAM;QACd;;WAEG;kBACO,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QACnC;;WAEG;iBACM,MAAM;QACf;;WAEG;gBACK,OAAO;QACf;;WAEG;sBACW,MAAM;QACpB;;WAEG;mBACQ,OAAO;QAClB;;WAEG;mBACQ,OAAO;QAClB;;aAEK;wBACW,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,WAAW,GAAG,aAAa,GAAG,cAAc,GAAG,QAAQ;mBA0gBhC,CAAC,4BAA2B;oBACzG,OAAO,KAAK,EAAE,gBAAgB,CAAC,EAAE,CAAC,GAAG,IAAI;WAClD,GAAG;;wBA5DkB,GAAG;yBACF,GAAG;;cA7f3B,mBAAmB,KAAK,CAAC,EAAE,KAAG,IAAI;;;;YA6jBI,OAAO,CAAC,OAAO,WAAW,CAAC;;AAnkBvE,wBAmkB4E;AAG5E,KAAK,mBAAmB,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC"}
@@ -1,34 +1,34 @@
1
- import { defineComponent as X, useSlots as Y, ref as P, useTemplateRef as Z, reactive as ee, computed as f, unref as s, watch as oe, watchPostEffect as te, createElementBlock as d, openBlock as r, createElementVNode as c, createCommentVNode as m, normalizeClass as le, createBlock as v, createVNode as ne, withDirectives as re, vModelText as se, Fragment as b, renderList as C, withModifiers as O, withCtx as y, createTextVNode as q, toDisplayString as h, renderSlot as B } from "vue";
2
- import ie from "../../assets/images/required.svg.js";
3
- import { getErrorMessage as ae } from "../../helpers/error.js";
4
- import { deepEqual as V, deepIncludes as I } from "../../helpers/objects.js";
5
- import { normalizeListOptions as ue } from "../../helpers/utils.js";
6
- import de from "../../utils/DoubleContour.vue.js";
1
+ import { defineComponent as Y, useSlots as Z, ref as P, useTemplateRef as ee, reactive as oe, computed as d, unref as s, watch as te, watchPostEffect as le, createElementBlock as c, openBlock as r, createElementVNode as p, createCommentVNode as m, normalizeClass as ne, createBlock as v, createVNode as re, withDirectives as se, vModelText as ie, Fragment as b, renderList as C, withModifiers as O, withCtx as y, createTextVNode as S, toDisplayString as h, renderSlot as q } from "vue";
2
+ import ae from "../../assets/images/required.svg.js";
3
+ import { getErrorMessage as ue } from "../../helpers/error.js";
4
+ import { deepEqual as V, deepIncludes as B } from "../../helpers/objects.js";
5
+ import { normalizeListOptions as de } from "../../helpers/utils.js";
6
+ import ce from "../../utils/DoubleContour.vue.js";
7
7
  /* empty css */
8
- import ce from "../../utils/DropdownOverlay/DropdownOverlay.vue.js";
9
- import { useLabelNotch as pe } from "../../utils/useLabelNotch.js";
10
- import fe from "../DropdownListItem.vue.js";
11
- import S from "../PlChip/PlChip.vue.js";
12
- import me from "../PlIcon24/PlIcon24.vue.js";
13
- import ve from "../PlSvg/PlSvg.vue.js";
14
- import he from "../PlTooltip/PlTooltip.vue.js";
8
+ import pe from "../../utils/DropdownOverlay/DropdownOverlay.vue.js";
9
+ import { useLabelNotch as fe } from "../../utils/useLabelNotch.js";
10
+ import me from "../DropdownListItem.vue.js";
11
+ import I from "../PlChip/PlChip.vue.js";
12
+ import ve from "../PlIcon24/PlIcon24.vue.js";
13
+ import he from "../PlSvg/PlSvg.vue.js";
14
+ import _e from "../PlTooltip/PlTooltip.vue.js";
15
15
  /* empty css */
16
- const _e = ["tabindex"], we = { class: "pl-dropdown-multi__container" }, ye = { class: "pl-dropdown-multi__field" }, ke = ["disabled", "placeholder"], ge = {
16
+ const we = ["tabindex"], ye = { class: "pl-dropdown-multi__container" }, ge = { class: "pl-dropdown-multi__field" }, ke = ["disabled", "placeholder"], be = {
17
17
  key: 0,
18
18
  class: "chips-container"
19
- }, be = { class: "pl-dropdown-multi__controls" }, Ce = { key: 0 }, Oe = { class: "pl-dropdown-multi__open-chips-container" }, Ve = {
19
+ }, Ce = { class: "pl-dropdown-multi__controls" }, Oe = { key: 0 }, Ve = { class: "pl-dropdown-multi__open-chips-container" }, $e = {
20
20
  key: 0,
21
21
  class: "nothing-found"
22
- }, $e = {
22
+ }, xe = {
23
23
  key: 0,
24
24
  class: "pl-dropdown-multi__error"
25
- }, xe = {
25
+ }, Ae = {
26
26
  key: 1,
27
27
  class: "pl-dropdown-multi__helper"
28
- }, Ae = {
28
+ }, Ee = {
29
29
  name: "PlDropdownMulti"
30
- }, Ke = /* @__PURE__ */ X({
31
- ...Ae,
30
+ }, He = /* @__PURE__ */ Y({
31
+ ...Ee,
32
32
  props: {
33
33
  modelValue: { default: () => [] },
34
34
  label: { default: void 0 },
@@ -41,159 +41,159 @@ const _e = ["tabindex"], we = { class: "pl-dropdown-multi__container" }, ye = {
41
41
  groupPosition: { default: void 0 }
42
42
  },
43
43
  emits: ["update:modelValue"],
44
- setup(i, { emit: T }) {
45
- const z = T, $ = (e) => z("update:modelValue", e), U = Y(), a = i, p = P(), x = P(), _ = Z("overlay"), t = ee({
44
+ setup(a, { emit: T }) {
45
+ const z = T, $ = (e) => z("update:modelValue", e), U = Z(), i = a, f = P(), x = P(), _ = ee("overlay"), t = oe({
46
46
  search: "",
47
47
  activeOption: -1,
48
48
  open: !1,
49
49
  optionsHeight: 0
50
- }), w = f(() => Array.isArray(a.modelValue) ? a.modelValue : []), K = f(() => t.open && a.modelValue.length > 0 ? a.placeholder : a.modelValue.length > 0 ? "" : a.placeholder), A = f(() => ue(a.options ?? [])), E = f(() => w.value.map((e) => A.value.find((l) => V(l.value, e))).filter((e) => e !== void 0)), k = f(() => {
50
+ }), w = d(() => Array.isArray(i.modelValue) ? i.modelValue : []), K = d(() => t.open && i.modelValue.length > 0 ? i.placeholder : i.modelValue.length > 0 ? "" : i.placeholder), A = d(() => de(i.options ?? [])), E = d(() => w.value.map((e) => A.value.find((l) => V(l.value, e))).filter((e) => e !== void 0)), g = d(() => {
51
51
  const e = s(w), l = s(A);
52
52
  return (t.search ? l.filter((o) => {
53
53
  const n = t.search.toLowerCase();
54
54
  return o.label.toLowerCase().includes(n) ? !0 : typeof o.value == "string" ? o.value.toLowerCase().includes(n) : o.value === t.search;
55
55
  }) : [...l]).map((o) => ({
56
56
  ...o,
57
- selected: I(e, o.value)
57
+ selected: B(e, o.value)
58
58
  }));
59
- }), M = f(() => a.options === void 0), g = f(() => M.value ? !0 : a.disabled), H = f(() => g.value ? void 0 : "0"), j = () => {
59
+ }), L = d(() => i.options === void 0), H = d(() => !i.disabled && L.value), k = d(() => L.value ? !0 : i.disabled), j = d(() => k.value ? void 0 : "0"), G = () => {
60
60
  t.activeOption = 0;
61
- }, R = (e) => {
61
+ }, M = (e) => {
62
62
  var o;
63
63
  const l = s(w);
64
- $(I(l, e) ? l.filter((n) => !V(n, e)) : [...l, e]), t.search = "", (o = p == null ? void 0 : p.value) == null || o.focus();
65
- }, D = (e) => $(s(w).filter((l) => !V(l, e))), G = () => {
64
+ $(B(l, e) ? l.filter((n) => !V(n, e)) : [...l, e]), t.search = "", (o = f == null ? void 0 : f.value) == null || o.focus();
65
+ }, R = (e) => $(s(w).filter((l) => !V(l, e))), J = () => {
66
66
  var e;
67
67
  return (e = x.value) == null ? void 0 : e.focus();
68
- }, J = () => {
68
+ }, Q = () => {
69
69
  t.open = !t.open, t.open || (t.search = "");
70
- }, F = (e) => {
70
+ }, D = (e) => {
71
71
  var o, n, u;
72
72
  const l = e.relatedTarget;
73
- !((o = p.value) != null && o.contains(l)) && !((u = (n = _.value) == null ? void 0 : n.listRef) != null && u.contains(l)) && (t.search = "", t.open = !1);
74
- }, Q = (e) => {
75
- var L;
73
+ !((o = f.value) != null && o.contains(l)) && !((u = (n = _.value) == null ? void 0 : n.listRef) != null && u.contains(l)) && (t.search = "", t.open = !1);
74
+ }, W = (e) => {
75
+ var F;
76
76
  const { open: l, activeOption: o } = t;
77
77
  if (!l) {
78
78
  e.code === "Enter" && (t.open = !0);
79
79
  return;
80
80
  }
81
- e.code === "Escape" && (t.open = !1, (L = p.value) == null || L.focus());
82
- const n = s(k), { length: u } = n;
81
+ e.code === "Escape" && (t.open = !1, (F = f.value) == null || F.focus());
82
+ const n = s(g), { length: u } = n;
83
83
  if (!u)
84
84
  return;
85
- ["ArrowDown", "ArrowUp", "Enter"].includes(e.code) && e.preventDefault(), e.code === "Enter" && R(n[o].value);
86
- const W = e.code === "ArrowDown" ? 1 : e.code === "ArrowUp" ? -1 : 0;
87
- t.activeOption = Math.abs(o + W + u) % u, requestAnimationFrame(() => {
85
+ ["ArrowDown", "ArrowUp", "Enter"].includes(e.code) && e.preventDefault(), e.code === "Enter" && M(n[o].value);
86
+ const X = e.code === "ArrowDown" ? 1 : e.code === "ArrowUp" ? -1 : 0;
87
+ t.activeOption = Math.abs(o + X + u) % u, requestAnimationFrame(() => {
88
88
  var N;
89
89
  return (N = _.value) == null ? void 0 : N.scrollIntoActive();
90
90
  });
91
91
  };
92
- return pe(p), oe(
93
- () => a.modelValue,
94
- () => j(),
92
+ return fe(f), te(
93
+ () => i.modelValue,
94
+ () => G(),
95
95
  { immediate: !0 }
96
- ), te(() => {
96
+ ), le(() => {
97
97
  var e;
98
98
  t.search, t.open && ((e = _.value) == null || e.scrollIntoActive());
99
- }), (e, l) => (r(), d("div", {
99
+ }), (e, l) => (r(), c("div", {
100
100
  class: "pl-dropdown-multi__envelope",
101
- onClick: G
101
+ onClick: J
102
102
  }, [
103
- c("div", {
103
+ p("div", {
104
104
  ref_key: "rootRef",
105
- ref: p,
106
- tabindex: H.value,
107
- class: le(["pl-dropdown-multi", { open: t.open, error: i.error, disabled: g.value }]),
108
- onKeydown: Q,
109
- onFocusout: F
105
+ ref: f,
106
+ tabindex: j.value,
107
+ class: ne(["pl-dropdown-multi", { open: t.open, error: a.error, disabled: k.value }]),
108
+ onKeydown: W,
109
+ onFocusout: D
110
110
  }, [
111
- c("div", we, [
112
- c("div", ye, [
113
- re(c("input", {
111
+ p("div", ye, [
112
+ p("div", ge, [
113
+ se(p("input", {
114
114
  ref_key: "input",
115
115
  ref: x,
116
116
  "onUpdate:modelValue": l[0] || (l[0] = (o) => t.search = o),
117
117
  type: "text",
118
118
  tabindex: "-1",
119
- disabled: g.value,
119
+ disabled: k.value,
120
120
  placeholder: K.value,
121
121
  spellcheck: "false",
122
122
  autocomplete: "chrome-off",
123
123
  onFocus: l[1] || (l[1] = (o) => t.open = !0)
124
124
  }, null, 40, ke), [
125
- [se, t.search]
125
+ [ie, t.search]
126
126
  ]),
127
- t.open ? m("", !0) : (r(), d("div", ge, [
128
- (r(!0), d(b, null, C(E.value, (o, n) => (r(), v(s(S), {
127
+ t.open ? m("", !0) : (r(), c("div", be, [
128
+ (r(!0), c(b, null, C(E.value, (o, n) => (r(), v(s(I), {
129
129
  key: n,
130
130
  closeable: "",
131
131
  small: "",
132
132
  onClick: l[2] || (l[2] = O((u) => t.open = !0, ["stop"])),
133
- onClose: (u) => D(o.value)
133
+ onClose: (u) => R(o.value)
134
134
  }, {
135
135
  default: y(() => [
136
- q(h(o.label || o.value), 1)
136
+ S(h(o.label || o.value), 1)
137
137
  ]),
138
138
  _: 2
139
139
  }, 1032, ["onClose"]))), 128))
140
140
  ])),
141
- c("div", be, [
142
- M.value ? (r(), v(s(me), {
141
+ p("div", Ce, [
142
+ H.value ? (r(), v(s(ve), {
143
143
  key: 0,
144
144
  name: "loading"
145
145
  })) : m("", !0),
146
- B(e.$slots, "append"),
147
- c("div", {
146
+ q(e.$slots, "append"),
147
+ p("div", {
148
148
  class: "pl-dropdown-multi__arrow-wrapper",
149
- onClick: O(J, ["stop"])
149
+ onClick: O(Q, ["stop"])
150
150
  }, [...l[3] || (l[3] = [
151
- c("div", { class: "arrow-icon arrow-icon-default" }, null, -1)
151
+ p("div", { class: "arrow-icon arrow-icon-default" }, null, -1)
152
152
  ])])
153
153
  ])
154
154
  ]),
155
- i.label ? (r(), d("label", Ce, [
156
- i.required ? (r(), v(s(ve), {
155
+ a.label ? (r(), c("label", Oe, [
156
+ a.required ? (r(), v(s(he), {
157
157
  key: 0,
158
- uri: s(ie)
158
+ uri: s(ae)
159
159
  }, null, 8, ["uri"])) : m("", !0),
160
- c("span", null, h(i.label), 1),
161
- s(U).tooltip ? (r(), v(s(he), {
160
+ p("span", null, h(a.label), 1),
161
+ s(U).tooltip ? (r(), v(s(_e), {
162
162
  key: 1,
163
163
  class: "info",
164
164
  position: "top"
165
165
  }, {
166
166
  tooltip: y(() => [
167
- B(e.$slots, "tooltip")
167
+ q(e.$slots, "tooltip")
168
168
  ]),
169
169
  _: 3
170
170
  })) : m("", !0)
171
171
  ])) : m("", !0),
172
- t.open ? (r(), v(ce, {
172
+ t.open ? (r(), v(pe, {
173
173
  key: 1,
174
174
  ref_key: "overlay",
175
175
  ref: _,
176
- root: p.value,
176
+ root: f.value,
177
177
  class: "pl-dropdown-multi__options",
178
178
  gap: 5,
179
179
  tabindex: "-1",
180
- onFocusout: F
180
+ onFocusout: D
181
181
  }, {
182
182
  default: y(() => [
183
- c("div", Oe, [
184
- (r(!0), d(b, null, C(E.value, (o, n) => (r(), v(s(S), {
183
+ p("div", Ve, [
184
+ (r(!0), c(b, null, C(E.value, (o, n) => (r(), v(s(I), {
185
185
  key: n,
186
186
  closeable: "",
187
187
  small: "",
188
- onClose: (u) => D(o.value)
188
+ onClose: (u) => R(o.value)
189
189
  }, {
190
190
  default: y(() => [
191
- q(h(o.label || o.value), 1)
191
+ S(h(o.label || o.value), 1)
192
192
  ]),
193
193
  _: 2
194
194
  }, 1032, ["onClose"]))), 128))
195
195
  ]),
196
- (r(!0), d(b, null, C(k.value, (o, n) => (r(), v(fe, {
196
+ (r(!0), c(b, null, C(g.value, (o, n) => (r(), v(me, {
197
197
  key: n,
198
198
  option: o,
199
199
  "text-item": "text",
@@ -201,23 +201,23 @@ const _e = ["tabindex"], we = { class: "pl-dropdown-multi__container" }, ye = {
201
201
  "is-hovered": t.activeOption == n,
202
202
  size: "medium",
203
203
  "use-checkbox": "",
204
- onClick: O((u) => R(o.value), ["stop"])
204
+ onClick: O((u) => M(o.value), ["stop"])
205
205
  }, null, 8, ["option", "is-selected", "is-hovered", "onClick"]))), 128)),
206
- k.value.length ? m("", !0) : (r(), d("div", Ve, "Nothing found"))
206
+ g.value.length ? m("", !0) : (r(), c("div", $e, "Nothing found"))
207
207
  ]),
208
208
  _: 1
209
209
  }, 8, ["root"])) : m("", !0),
210
- ne(de, {
210
+ re(ce, {
211
211
  class: "pl-dropdown-multi__contour",
212
- "group-position": i.groupPosition
212
+ "group-position": a.groupPosition
213
213
  }, null, 8, ["group-position"])
214
214
  ])
215
- ], 42, _e),
216
- i.error ? (r(), d("div", $e, h(s(ae)(i.error)), 1)) : i.helper ? (r(), d("div", xe, h(i.helper), 1)) : m("", !0)
215
+ ], 42, we),
216
+ a.error ? (r(), c("div", xe, h(s(ue)(a.error)), 1)) : a.helper ? (r(), c("div", Ae, h(a.helper), 1)) : m("", !0)
217
217
  ]));
218
218
  }
219
219
  });
220
220
  export {
221
- Ke as default
221
+ He as default
222
222
  };
223
223
  //# sourceMappingURL=PlDropdownMulti.vue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PlDropdownMulti.vue.js","sources":["../../../src/components/PlDropdownMulti/PlDropdownMulti.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * A component for selecting multiple values from a list of options\n */\nexport default {\n name: 'PlDropdownMulti',\n};\n</script>\n\n<script lang=\"ts\" setup generic=\"M = unknown\">\nimport { computed, reactive, ref, unref, useSlots, useTemplateRef, watch, watchPostEffect } from 'vue';\nimport SvgRequired from '../../assets/images/required.svg?raw';\nimport { getErrorMessage } from '../../helpers/error.ts';\nimport { deepEqual, deepIncludes } from '../../helpers/objects';\nimport { normalizeListOptions } from '../../helpers/utils';\nimport type { ListOption } from '../../types';\nimport DoubleContour from '../../utils/DoubleContour.vue';\nimport DropdownOverlay from '../../utils/DropdownOverlay/DropdownOverlay.vue';\nimport { useLabelNotch } from '../../utils/useLabelNotch';\nimport DropdownListItem from '../DropdownListItem.vue';\nimport { PlChip } from '../PlChip';\nimport { PlMaskIcon24 } from '../PlMaskIcon24';\nimport { PlSvg } from '../PlSvg';\nimport { PlTooltip } from '../PlTooltip';\nimport './pl-dropdown-multi.scss';\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', v: M[]): void;\n}>();\n\nconst emitModel = (v: M[]) => emit('update:modelValue', v);\n\nconst slots = useSlots();\n\nconst props = withDefaults(\n defineProps<{\n /**\n * The current selected values.\n */\n modelValue: M[];\n /**\n * The label text for the dropdown field (optional)\n */\n label?: string;\n /**\n * List of available options for the dropdown\n */\n options?: Readonly<ListOption<M>[]>;\n /**\n * A helper text displayed below the dropdown when there are no errors (optional).\n */\n helper?: string;\n /**\n * Error message displayed below the dropdown (optional)\n */\n error?: unknown;\n /**\n * Placeholder text shown when no value is selected.\n */\n placeholder?: string;\n /**\n * If `true`, the dropdown component is marked as required.\n */\n required?: boolean;\n /**\n * If `true`, the dropdown component is disabled and cannot be interacted with.\n */\n disabled?: boolean;\n /**\n * Makes some of corners not rounded\n * */\n groupPosition?: 'top' | 'bottom' | 'left' | 'right' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | 'middle';\n }>(),\n {\n modelValue: () => [],\n label: undefined,\n helper: undefined,\n error: undefined,\n placeholder: '...',\n required: false,\n disabled: false,\n options: undefined,\n groupPosition: undefined,\n },\n);\n\nconst rootRef = ref<HTMLElement | undefined>();\nconst input = ref<HTMLInputElement | undefined>();\n\nconst overlay = useTemplateRef('overlay');\n\nconst data = reactive({\n search: '',\n activeOption: -1,\n open: false,\n optionsHeight: 0,\n});\n\nconst selectedValuesRef = computed(() => (Array.isArray(props.modelValue) ? props.modelValue : []));\n\nconst placeholderRef = computed(() => {\n if (data.open && props.modelValue.length > 0) {\n return props.placeholder;\n }\n\n return props.modelValue.length > 0 ? '' : props.placeholder;\n});\n\nconst normalizedOptionsRef = computed(() => normalizeListOptions(props.options ?? []));\n\nconst selectedOptionsRef = computed(() => {\n return selectedValuesRef.value.map((v) => normalizedOptionsRef.value.find((opt) => deepEqual(opt.value, v))).filter((v) => v !== undefined);\n});\n\nconst filteredOptionsRef = computed(() => {\n const selectedValues = unref(selectedValuesRef);\n\n const options = unref(normalizedOptionsRef);\n\n return (\n data.search\n ? options.filter((opt) => {\n const search = data.search.toLowerCase();\n\n if (opt.label.toLowerCase().includes(search)) {\n return true;\n }\n\n if (typeof opt.value === 'string') {\n return opt.value.toLowerCase().includes(search);\n }\n\n return opt.value === data.search;\n })\n : [...options]\n ).map((opt) => ({\n ...opt,\n selected: deepIncludes(selectedValues, opt.value),\n }));\n});\n\nconst isLoadingOptions = computed(() => {\n return props.options === undefined;\n});\n\nconst isDisabled = computed(() => {\n if (isLoadingOptions.value) {\n return true;\n }\n\n return props.disabled;\n});\n\nconst tabindex = computed(() => (isDisabled.value ? undefined : '0'));\n\nconst updateActiveOption = () => {\n data.activeOption = 0;\n};\n\nconst selectOption = (v: M) => {\n const values = unref(selectedValuesRef);\n emitModel(deepIncludes(values, v) ? values.filter((it) => !deepEqual(it, v)) : [...values, v]);\n data.search = '';\n rootRef?.value?.focus();\n};\n\nconst unselectOption = (d: M) => emitModel(unref(selectedValuesRef).filter((v) => !deepEqual(v, d)));\n\nconst setFocusOnInput = () => input.value?.focus();\n\nconst toggleModel = () => {\n data.open = !data.open;\n if (!data.open) {\n data.search = '';\n }\n};\n\nconst onFocusOut = (event: FocusEvent) => {\n const relatedTarget = event.relatedTarget as Node | null;\n\n if (!rootRef.value?.contains(relatedTarget) && !overlay.value?.listRef?.contains(relatedTarget)) {\n data.search = '';\n data.open = false;\n }\n};\n\nconst handleKeydown = (e: { code: string; preventDefault(): void }) => {\n const { open, activeOption } = data;\n\n if (!open) {\n if (e.code === 'Enter') {\n data.open = true;\n }\n return;\n }\n\n if (e.code === 'Escape') {\n data.open = false;\n rootRef.value?.focus();\n }\n\n const filteredOptions = unref(filteredOptionsRef);\n\n const { length } = filteredOptions;\n\n if (!length) {\n return;\n }\n\n if (['ArrowDown', 'ArrowUp', 'Enter'].includes(e.code)) {\n e.preventDefault();\n }\n\n if (e.code === 'Enter') {\n selectOption(filteredOptions[activeOption].value);\n }\n\n const d = e.code === 'ArrowDown' ? 1 : e.code === 'ArrowUp' ? -1 : 0;\n\n data.activeOption = Math.abs(activeOption + d + length) % length;\n\n requestAnimationFrame(() => overlay.value?.scrollIntoActive());\n};\n\nuseLabelNotch(rootRef);\n\nwatch(\n () => props.modelValue,\n () => updateActiveOption(),\n { immediate: true },\n);\n\nwatchPostEffect(() => {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n data.search;\n\n if (data.open) {\n overlay.value?.scrollIntoActive();\n }\n});\n</script>\n\n<template>\n <div class=\"pl-dropdown-multi__envelope\" @click=\"setFocusOnInput\">\n <div\n ref=\"rootRef\"\n :tabindex=\"tabindex\"\n class=\"pl-dropdown-multi\"\n :class=\"{ open: data.open, error, disabled: isDisabled }\"\n @keydown=\"handleKeydown\"\n @focusout=\"onFocusOut\"\n >\n <div class=\"pl-dropdown-multi__container\">\n <div class=\"pl-dropdown-multi__field\">\n <input\n ref=\"input\"\n v-model=\"data.search\"\n type=\"text\"\n tabindex=\"-1\"\n :disabled=\"isDisabled\"\n :placeholder=\"placeholderRef\"\n spellcheck=\"false\"\n autocomplete=\"chrome-off\"\n @focus=\"data.open = true\"\n />\n <div v-if=\"!data.open\" class=\"chips-container\">\n <PlChip v-for=\"(opt, i) in selectedOptionsRef\" :key=\"i\" closeable small @click.stop=\"data.open = true\" @close=\"unselectOption(opt.value)\">\n {{ opt.label || opt.value }}\n </PlChip>\n </div>\n\n <div class=\"pl-dropdown-multi__controls\">\n <PlMaskIcon24 v-if=\"isLoadingOptions\" name=\"loading\" />\n <slot name=\"append\" />\n <div class=\"pl-dropdown-multi__arrow-wrapper\" @click.stop=\"toggleModel\">\n <div class=\"arrow-icon arrow-icon-default\" />\n </div>\n </div>\n </div>\n <label v-if=\"label\">\n <PlSvg v-if=\"required\" :uri=\"SvgRequired\" />\n <span>{{ label }}</span>\n <PlTooltip v-if=\"slots.tooltip\" class=\"info\" position=\"top\">\n <template #tooltip>\n <slot name=\"tooltip\" />\n </template>\n </PlTooltip>\n </label>\n <DropdownOverlay\n v-if=\"data.open\"\n ref=\"overlay\"\n :root=\"rootRef\"\n class=\"pl-dropdown-multi__options\"\n :gap=\"5\"\n tabindex=\"-1\"\n @focusout=\"onFocusOut\"\n >\n <div class=\"pl-dropdown-multi__open-chips-container\">\n <PlChip v-for=\"(opt, i) in selectedOptionsRef\" :key=\"i\" closeable small @close=\"unselectOption(opt.value)\">\n {{ opt.label || opt.value }}\n </PlChip>\n </div>\n <DropdownListItem\n v-for=\"(item, index) in filteredOptionsRef\"\n :key=\"index\"\n :option=\"item\"\n :text-item=\"'text'\"\n :is-selected=\"item.selected\"\n :is-hovered=\"data.activeOption == index\"\n size=\"medium\"\n use-checkbox\n @click.stop=\"selectOption(item.value)\"\n />\n <div v-if=\"!filteredOptionsRef.length\" class=\"nothing-found\">Nothing found</div>\n </DropdownOverlay>\n <DoubleContour class=\"pl-dropdown-multi__contour\" :group-position=\"groupPosition\" />\n </div>\n </div>\n <div v-if=\"error\" class=\"pl-dropdown-multi__error\">{{ getErrorMessage(error) }}</div>\n <div v-else-if=\"helper\" class=\"pl-dropdown-multi__helper\">{{ helper }}</div>\n </div>\n</template>\n"],"names":["__default__","emit","__emit","emitModel","v","slots","useSlots","props","__props","rootRef","ref","input","overlay","useTemplateRef","data","reactive","selectedValuesRef","computed","placeholderRef","normalizedOptionsRef","normalizeListOptions","selectedOptionsRef","opt","deepEqual","filteredOptionsRef","selectedValues","unref","options","search","deepIncludes","isLoadingOptions","isDisabled","tabindex","updateActiveOption","selectOption","values","it","_a","unselectOption","d","setFocusOnInput","toggleModel","onFocusOut","event","relatedTarget","_c","_b","handleKeydown","open","activeOption","filteredOptions","length","useLabelNotch","watch","watchPostEffect","_createElementBlock","_createElementVNode","_normalizeClass","_hoisted_2","_hoisted_3","_cache","$event","_vModelText","_openBlock","_hoisted_5","_Fragment","_renderList","i","_createBlock","_unref","PlChip","_withModifiers","_createTextVNode","_toDisplayString","_hoisted_6","PlMaskIcon24","_renderSlot","_ctx","_hoisted_7","PlSvg","SvgRequired","PlTooltip","DropdownOverlay","_hoisted_8","item","index","DropdownListItem","_hoisted_9","_createVNode","DoubleContour","_hoisted_10","getErrorMessage","_hoisted_11"],"mappings":"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"}
1
+ {"version":3,"file":"PlDropdownMulti.vue.js","sources":["../../../src/components/PlDropdownMulti/PlDropdownMulti.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * A component for selecting multiple values from a list of options\n */\nexport default {\n name: 'PlDropdownMulti',\n};\n</script>\n\n<script lang=\"ts\" setup generic=\"M = unknown\">\nimport { computed, reactive, ref, unref, useSlots, useTemplateRef, watch, watchPostEffect } from 'vue';\nimport SvgRequired from '../../assets/images/required.svg?raw';\nimport { getErrorMessage } from '../../helpers/error.ts';\nimport { deepEqual, deepIncludes } from '../../helpers/objects';\nimport { normalizeListOptions } from '../../helpers/utils';\nimport type { ListOption } from '../../types';\nimport DoubleContour from '../../utils/DoubleContour.vue';\nimport DropdownOverlay from '../../utils/DropdownOverlay/DropdownOverlay.vue';\nimport { useLabelNotch } from '../../utils/useLabelNotch';\nimport DropdownListItem from '../DropdownListItem.vue';\nimport { PlChip } from '../PlChip';\nimport { PlIcon24 } from '../PlIcon24';\nimport { PlSvg } from '../PlSvg';\nimport { PlTooltip } from '../PlTooltip';\nimport './pl-dropdown-multi.scss';\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', v: M[]): void;\n}>();\n\nconst emitModel = (v: M[]) => emit('update:modelValue', v);\n\nconst slots = useSlots();\n\nconst props = withDefaults(\n defineProps<{\n /**\n * The current selected values.\n */\n modelValue: M[];\n /**\n * The label text for the dropdown field (optional)\n */\n label?: string;\n /**\n * List of available options for the dropdown\n */\n options?: Readonly<ListOption<M>[]>;\n /**\n * A helper text displayed below the dropdown when there are no errors (optional).\n */\n helper?: string;\n /**\n * Error message displayed below the dropdown (optional)\n */\n error?: unknown;\n /**\n * Placeholder text shown when no value is selected.\n */\n placeholder?: string;\n /**\n * If `true`, the dropdown component is marked as required.\n */\n required?: boolean;\n /**\n * If `true`, the dropdown component is disabled and cannot be interacted with.\n */\n disabled?: boolean;\n /**\n * Makes some of corners not rounded\n * */\n groupPosition?: 'top' | 'bottom' | 'left' | 'right' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | 'middle';\n }>(),\n {\n modelValue: () => [],\n label: undefined,\n helper: undefined,\n error: undefined,\n placeholder: '...',\n required: false,\n disabled: false,\n options: undefined,\n groupPosition: undefined,\n },\n);\n\nconst rootRef = ref<HTMLElement | undefined>();\nconst input = ref<HTMLInputElement | undefined>();\n\nconst overlay = useTemplateRef('overlay');\n\nconst data = reactive({\n search: '',\n activeOption: -1,\n open: false,\n optionsHeight: 0,\n});\n\nconst selectedValuesRef = computed(() => (Array.isArray(props.modelValue) ? props.modelValue : []));\n\nconst placeholderRef = computed(() => {\n if (data.open && props.modelValue.length > 0) {\n return props.placeholder;\n }\n\n return props.modelValue.length > 0 ? '' : props.placeholder;\n});\n\nconst normalizedOptionsRef = computed(() => normalizeListOptions(props.options ?? []));\n\nconst selectedOptionsRef = computed(() => {\n return selectedValuesRef.value.map((v) => normalizedOptionsRef.value.find((opt) => deepEqual(opt.value, v))).filter((v) => v !== undefined);\n});\n\nconst filteredOptionsRef = computed(() => {\n const selectedValues = unref(selectedValuesRef);\n\n const options = unref(normalizedOptionsRef);\n\n return (\n data.search\n ? options.filter((opt) => {\n const search = data.search.toLowerCase();\n\n if (opt.label.toLowerCase().includes(search)) {\n return true;\n }\n\n if (typeof opt.value === 'string') {\n return opt.value.toLowerCase().includes(search);\n }\n\n return opt.value === data.search;\n })\n : [...options]\n ).map((opt) => ({\n ...opt,\n selected: deepIncludes(selectedValues, opt.value),\n }));\n});\n\nconst isLoadingOptions = computed(() => {\n return props.options === undefined;\n});\n\nconst showLoadingSpinner = computed(() => {\n return !props.disabled && isLoadingOptions.value;\n});\n\nconst isDisabled = computed(() => {\n if (isLoadingOptions.value) {\n return true;\n }\n\n return props.disabled;\n});\n\nconst tabindex = computed(() => (isDisabled.value ? undefined : '0'));\n\nconst updateActiveOption = () => {\n data.activeOption = 0;\n};\n\nconst selectOption = (v: M) => {\n const values = unref(selectedValuesRef);\n emitModel(deepIncludes(values, v) ? values.filter((it) => !deepEqual(it, v)) : [...values, v]);\n data.search = '';\n rootRef?.value?.focus();\n};\n\nconst unselectOption = (d: M) => emitModel(unref(selectedValuesRef).filter((v) => !deepEqual(v, d)));\n\nconst setFocusOnInput = () => input.value?.focus();\n\nconst toggleModel = () => {\n data.open = !data.open;\n if (!data.open) {\n data.search = '';\n }\n};\n\nconst onFocusOut = (event: FocusEvent) => {\n const relatedTarget = event.relatedTarget as Node | null;\n\n if (!rootRef.value?.contains(relatedTarget) && !overlay.value?.listRef?.contains(relatedTarget)) {\n data.search = '';\n data.open = false;\n }\n};\n\nconst handleKeydown = (e: { code: string; preventDefault(): void }) => {\n const { open, activeOption } = data;\n\n if (!open) {\n if (e.code === 'Enter') {\n data.open = true;\n }\n return;\n }\n\n if (e.code === 'Escape') {\n data.open = false;\n rootRef.value?.focus();\n }\n\n const filteredOptions = unref(filteredOptionsRef);\n\n const { length } = filteredOptions;\n\n if (!length) {\n return;\n }\n\n if (['ArrowDown', 'ArrowUp', 'Enter'].includes(e.code)) {\n e.preventDefault();\n }\n\n if (e.code === 'Enter') {\n selectOption(filteredOptions[activeOption].value);\n }\n\n const d = e.code === 'ArrowDown' ? 1 : e.code === 'ArrowUp' ? -1 : 0;\n\n data.activeOption = Math.abs(activeOption + d + length) % length;\n\n requestAnimationFrame(() => overlay.value?.scrollIntoActive());\n};\n\nuseLabelNotch(rootRef);\n\nwatch(\n () => props.modelValue,\n () => updateActiveOption(),\n { immediate: true },\n);\n\nwatchPostEffect(() => {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n data.search;\n\n if (data.open) {\n overlay.value?.scrollIntoActive();\n }\n});\n</script>\n\n<template>\n <div class=\"pl-dropdown-multi__envelope\" @click=\"setFocusOnInput\">\n <div\n ref=\"rootRef\"\n :tabindex=\"tabindex\"\n class=\"pl-dropdown-multi\"\n :class=\"{ open: data.open, error, disabled: isDisabled }\"\n @keydown=\"handleKeydown\"\n @focusout=\"onFocusOut\"\n >\n <div class=\"pl-dropdown-multi__container\">\n <div class=\"pl-dropdown-multi__field\">\n <input\n ref=\"input\"\n v-model=\"data.search\"\n type=\"text\"\n tabindex=\"-1\"\n :disabled=\"isDisabled\"\n :placeholder=\"placeholderRef\"\n spellcheck=\"false\"\n autocomplete=\"chrome-off\"\n @focus=\"data.open = true\"\n />\n <div v-if=\"!data.open\" class=\"chips-container\">\n <PlChip v-for=\"(opt, i) in selectedOptionsRef\" :key=\"i\" closeable small @click.stop=\"data.open = true\" @close=\"unselectOption(opt.value)\">\n {{ opt.label || opt.value }}\n </PlChip>\n </div>\n\n <div class=\"pl-dropdown-multi__controls\">\n <PlIcon24 v-if=\"showLoadingSpinner\" name=\"loading\" />\n <slot name=\"append\" />\n <div class=\"pl-dropdown-multi__arrow-wrapper\" @click.stop=\"toggleModel\">\n <div class=\"arrow-icon arrow-icon-default\" />\n </div>\n </div>\n </div>\n <label v-if=\"label\">\n <PlSvg v-if=\"required\" :uri=\"SvgRequired\" />\n <span>{{ label }}</span>\n <PlTooltip v-if=\"slots.tooltip\" class=\"info\" position=\"top\">\n <template #tooltip>\n <slot name=\"tooltip\" />\n </template>\n </PlTooltip>\n </label>\n <DropdownOverlay\n v-if=\"data.open\"\n ref=\"overlay\"\n :root=\"rootRef\"\n class=\"pl-dropdown-multi__options\"\n :gap=\"5\"\n tabindex=\"-1\"\n @focusout=\"onFocusOut\"\n >\n <div class=\"pl-dropdown-multi__open-chips-container\">\n <PlChip v-for=\"(opt, i) in selectedOptionsRef\" :key=\"i\" closeable small @close=\"unselectOption(opt.value)\">\n {{ opt.label || opt.value }}\n </PlChip>\n </div>\n <DropdownListItem\n v-for=\"(item, index) in filteredOptionsRef\"\n :key=\"index\"\n :option=\"item\"\n :text-item=\"'text'\"\n :is-selected=\"item.selected\"\n :is-hovered=\"data.activeOption == index\"\n size=\"medium\"\n use-checkbox\n @click.stop=\"selectOption(item.value)\"\n />\n <div v-if=\"!filteredOptionsRef.length\" class=\"nothing-found\">Nothing found</div>\n </DropdownOverlay>\n <DoubleContour class=\"pl-dropdown-multi__contour\" :group-position=\"groupPosition\" />\n </div>\n </div>\n <div v-if=\"error\" class=\"pl-dropdown-multi__error\">{{ getErrorMessage(error) }}</div>\n <div v-else-if=\"helper\" class=\"pl-dropdown-multi__helper\">{{ helper }}</div>\n </div>\n</template>\n"],"names":["__default__","emit","__emit","emitModel","v","slots","useSlots","props","__props","rootRef","ref","input","overlay","useTemplateRef","data","reactive","selectedValuesRef","computed","placeholderRef","normalizedOptionsRef","normalizeListOptions","selectedOptionsRef","opt","deepEqual","filteredOptionsRef","selectedValues","unref","options","search","deepIncludes","isLoadingOptions","showLoadingSpinner","isDisabled","tabindex","updateActiveOption","selectOption","values","it","_a","unselectOption","d","setFocusOnInput","toggleModel","onFocusOut","event","relatedTarget","_c","_b","handleKeydown","open","activeOption","filteredOptions","length","useLabelNotch","watch","watchPostEffect","_createElementBlock","_createElementVNode","_normalizeClass","_hoisted_2","_hoisted_3","_cache","$event","_vModelText","_openBlock","_hoisted_5","_Fragment","_renderList","i","_createBlock","_unref","PlChip","_withModifiers","_createTextVNode","_toDisplayString","_hoisted_6","PlIcon24","_renderSlot","_ctx","_hoisted_7","PlSvg","SvgRequired","PlTooltip","DropdownOverlay","_hoisted_8","item","index","DropdownListItem","_hoisted_9","_createVNode","DoubleContour","_hoisted_10","getErrorMessage","_hoisted_11"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@milaboratories/uikit",
3
- "version": "2.10.2",
3
+ "version": "2.10.3",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "exports": {
@@ -32,8 +32,8 @@
32
32
  "d3-axis": "^3.0.0",
33
33
  "resize-observer-polyfill": "^1.5.1",
34
34
  "canonicalize": "~2.1.0",
35
- "@platforma-sdk/model": "1.51.6",
36
- "@milaboratories/helpers": "1.13.0"
35
+ "@milaboratories/helpers": "1.13.0",
36
+ "@platforma-sdk/model": "1.51.6"
37
37
  },
38
38
  "devDependencies": {
39
39
  "jsdom": "^25.0.1",
@@ -44,9 +44,9 @@
44
44
  "svgo": "^3.3.2",
45
45
  "typescript": "~5.6.3",
46
46
  "@milaboratories/ts-configs": "1.2.0",
47
- "@milaboratories/build-configs": "1.2.2",
48
47
  "@milaboratories/ts-builder": "1.2.2",
49
- "@milaboratories/eslint-config": "1.0.5"
48
+ "@milaboratories/eslint-config": "1.0.5",
49
+ "@milaboratories/build-configs": "1.2.2"
50
50
  },
51
51
  "scripts": {
52
52
  "dev": "ts-builder serve --target browser-lib --build-config ./build.browser-lib.config.js",
@@ -19,7 +19,7 @@ import DropdownOverlay from '../../utils/DropdownOverlay/DropdownOverlay.vue';
19
19
  import { useLabelNotch } from '../../utils/useLabelNotch';
20
20
  import DropdownListItem from '../DropdownListItem.vue';
21
21
  import { PlChip } from '../PlChip';
22
- import { PlMaskIcon24 } from '../PlMaskIcon24';
22
+ import { PlIcon24 } from '../PlIcon24';
23
23
  import { PlSvg } from '../PlSvg';
24
24
  import { PlTooltip } from '../PlTooltip';
25
25
  import './pl-dropdown-multi.scss';
@@ -143,6 +143,10 @@ const isLoadingOptions = computed(() => {
143
143
  return props.options === undefined;
144
144
  });
145
145
 
146
+ const showLoadingSpinner = computed(() => {
147
+ return !props.disabled && isLoadingOptions.value;
148
+ });
149
+
146
150
  const isDisabled = computed(() => {
147
151
  if (isLoadingOptions.value) {
148
152
  return true;
@@ -270,7 +274,7 @@ watchPostEffect(() => {
270
274
  </div>
271
275
 
272
276
  <div class="pl-dropdown-multi__controls">
273
- <PlMaskIcon24 v-if="isLoadingOptions" name="loading" />
277
+ <PlIcon24 v-if="showLoadingSpinner" name="loading" />
274
278
  <slot name="append" />
275
279
  <div class="pl-dropdown-multi__arrow-wrapper" @click.stop="toggleModel">
276
280
  <div class="arrow-icon arrow-icon-default" />