@milaboratories/uikit 2.7.1 → 2.7.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.
- package/.turbo/turbo-build.log +39 -51
- package/.turbo/turbo-type-check.log +1 -1
- package/CHANGELOG.md +15 -0
- package/dist/components/PlAccordion/{ExpandTransition.vue.js → ExpandTransition.vue2.js} +1 -1
- package/dist/components/PlAccordion/ExpandTransition.vue2.js.map +1 -0
- package/dist/components/PlAccordion/ExpandTransition.vue3.js +1 -1
- package/dist/components/PlAccordion/PlAccordionSection.vue2.js +1 -1
- package/dist/components/PlAutocompleteMulti/PlAutocompleteMulti.vue.d.ts +111 -0
- package/dist/components/PlAutocompleteMulti/PlAutocompleteMulti.vue.js.map +1 -1
- package/dist/components/PlAutocompleteMulti/index.d.ts +1 -1
- package/dist/components/PlErrorAlert/PlErrorAlert.vue.d.ts +1 -1
- package/dist/components/PlErrorBoundary/PlErrorBoundary.vue.d.ts +6 -6
- package/package.json +6 -6
- package/src/components/PlAutocompleteMulti/PlAutocompleteMulti.vue +7 -6
- package/src/components/PlAutocompleteMulti/index.ts +1 -1
- package/dist/components/PlAccordion/ExpandTransition.vue.js.map +0 -1
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,31 +1,19 @@
|
|
|
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.7.
|
|
3
|
+
> @milaboratories/uikit@2.7.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...
|
|
7
7
|
Using custom config: ./build.browser-lib.config.js
|
|
8
8
|
↳ vite.js build --config ./build.browser-lib.config.js --mode production
|
|
9
9
|
[36mvite v6.3.5 [32mbuilding for production...[36m[39m
|
|
10
|
-
[96msrc/components/PlAutocompleteMulti/PlAutocompleteMulti.vue[0m:[93m477[0m:[93m1[0m - [91merror[0m[90m TS4082: [0mDefault export of the module has or is using private name 'OptionsSearch'.
|
|
11
|
-
|
|
12
|
-
[7m 477[0m export default (<M extends string | number = string,>(
|
|
13
|
-
[7m [0m [91m~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[0m
|
|
14
|
-
[7m 478[0m __VLS_props: NonNullable<Awaited<typeof __VLS_setup>>['props'],
|
|
15
|
-
[7m [0m [91m~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[0m
|
|
16
|
-
[7m ...[0m
|
|
17
|
-
[7m1114[0m })(),
|
|
18
|
-
[7m [0m [91m~~~~~[0m
|
|
19
|
-
[7m1115[0m ) => ({} as import('vue').VNode & { __ctx?: Awaited<typeof __VLS_setup> }));
|
|
20
|
-
[7m [0m [91m~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[0m
|
|
21
|
-
|
|
22
10
|
transforming...
|
|
23
11
|
[32m✓[39m 729 modules transformed.
|
|
24
12
|
rendering chunks...
|
|
25
13
|
|
|
26
14
|
[vite:dts] Start generate declaration files...
|
|
27
15
|
computing gzip size...
|
|
28
|
-
[vite:dts] Declaration files built in
|
|
16
|
+
[vite:dts] Declaration files built in 32214ms.
|
|
29
17
|
|
|
30
18
|
[2mdist/[22m[36mcomponents/PlTabs/Tab.vue2.js [39m[1m[2m 0.09 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.09 kB[22m
|
|
31
19
|
[2mdist/[22m[36mcomponents/PlTooltip/global.js [39m[1m[2m 0.10 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.22 kB[22m
|
|
@@ -33,72 +21,72 @@ computing gzip size...
|
|
|
33
21
|
[2mdist/[22m[36mcomponents/PlFileDialog/Local.vue2.js [39m[1m[2m 0.10 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
34
22
|
[2mdist/[22m[36mcomponents/Slider.vue2.js [39m[1m[2m 0.10 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
35
23
|
[2mdist/[22m[36mcomponents/PlChip/PlChip.vue2.js [39m[1m[2m 0.10 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
36
|
-
[2mdist/[22m[36mlayout/PlGrid/PlGrid.vue2.js [39m[1m[2m 0.10 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
37
24
|
[2mdist/[22m[36mcomponents/PlTabs/PlTabs.vue2.js [39m[1m[2m 0.10 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
38
|
-
[2mdist/[22m[
|
|
25
|
+
[2mdist/[22m[36mlayout/PlGrid/PlGrid.vue2.js [39m[1m[2m 0.10 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
39
26
|
[2mdist/[22m[36mcomponents/DataTable/TdCell.vue2.js [39m[1m[2m 0.10 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
40
27
|
[2mdist/[22m[36mcomponents/DataTable/TrHead.vue2.js [39m[1m[2m 0.10 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
41
28
|
[2mdist/[22m[36mcomponents/DataTable/ThCell.vue2.js [39m[1m[2m 0.10 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
42
29
|
[2mdist/[22m[36mcomponents/DataTable/TrBody.vue2.js [39m[1m[2m 0.10 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
30
|
+
[2mdist/[22m[36mcomponents/PlFileDialog/Remote.vue2.js [39m[1m[2m 0.10 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
43
31
|
[2mdist/[22m[36mcomponents/PlAlert/PlAlert.vue2.js [39m[1m[2m 0.10 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
44
|
-
[2mdist/[22m[36mbase/BtnBase.vue2.js [39m[1m[2m 0.10 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
45
|
-
[2mdist/[22m[36mcomponents/TabItem.vue2.js [39m[1m[2m 0.10 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
46
32
|
[2mdist/[22m[36mcomponents/DataTable/TScroll.vue2.js [39m[1m[2m 0.10 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
33
|
+
[2mdist/[22m[36mcomponents/TabItem.vue2.js [39m[1m[2m 0.10 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
34
|
+
[2mdist/[22m[36mbase/BtnBase.vue2.js [39m[1m[2m 0.10 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
47
35
|
[2mdist/[22m[36mcomponents/VScroll.vue2.js [39m[1m[2m 0.10 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
48
36
|
[2mdist/[22m[36mcomponents/HScroll.vue2.js [39m[1m[2m 0.10 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
49
|
-
[2mdist/[22m[36mcomponents/PlSplash/PlSplash.vue2.js [39m[1m[2m 0.10 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
50
37
|
[2mdist/[22m[36mlayout/PlSpacer/PlSpacer.vue2.js [39m[1m[2m 0.10 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
38
|
+
[2mdist/[22m[36mcomponents/PlSplash/PlSplash.vue2.js [39m[1m[2m 0.10 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
51
39
|
[2mdist/[22m[36mcomponents/PlBtnLink/PlBtnLink.vue2.js [39m[1m[2m 0.11 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
52
|
-
[2mdist/[22m[36mcomponents/PlTooltip/PlTooltip.vue2.js [39m[1m[2m 0.11 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
53
40
|
[2mdist/[22m[36mcomponents/PlLogView/PlLogView.vue2.js [39m[1m[2m 0.11 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
41
|
+
[2mdist/[22m[36mcomponents/PlTooltip/PlTooltip.vue2.js [39m[1m[2m 0.11 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
54
42
|
[2mdist/[22m[36mcomponents/Scrollable.vue2.js [39m[1m[2m 0.11 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
55
|
-
[2mdist/[22m[36mcomponents/PlBtnGhost/PlBtnGhost.vue2.js [39m[1m[2m 0.11 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
56
43
|
[2mdist/[22m[36mcomponents/PlTextArea/PlTextArea.vue2.js [39m[1m[2m 0.11 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
57
|
-
[2mdist/[22m[36mcomponents/PlBtnSplit/PlBtnSplit.vue2.js [39m[1m[2m 0.11 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
58
44
|
[2mdist/[22m[36mcomponents/PlDropdown/PlDropdown.vue2.js [39m[1m[2m 0.11 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
59
|
-
[2mdist/[22m[36mcomponents/PlBtnGroup/PlBtnGroup.vue2.js [39m[1m[2m 0.11 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
60
45
|
[2mdist/[22m[36mcomponents/PlCheckbox/PlCheckbox.vue2.js [39m[1m[2m 0.11 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
46
|
+
[2mdist/[22m[36mcomponents/PlBtnGhost/PlBtnGhost.vue2.js [39m[1m[2m 0.11 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
47
|
+
[2mdist/[22m[36mcomponents/PlBtnGroup/PlBtnGroup.vue2.js [39m[1m[2m 0.11 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
48
|
+
[2mdist/[22m[36mcomponents/PlBtnSplit/PlBtnSplit.vue2.js [39m[1m[2m 0.11 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
61
49
|
[2mdist/[22m[36mcomponents/InputRange.vue2.js [39m[1m[2m 0.11 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
62
50
|
[2mdist/[22m[36mcomponents/PlDropdown/OptionList.vue2.js [39m[1m[2m 0.11 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
63
51
|
[2mdist/[22m[36mcomponents/SliderRange.vue2.js [39m[1m[2m 0.11 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
64
|
-
[2mdist/[22m[36mlayout/PlContainer/PlContainer.vue2.js [39m[1m[2m 0.11 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
65
|
-
[2mdist/[22m[36mcomponents/PlFileInput/PlFileInput.vue2.js [39m[1m[2m 0.11 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
66
|
-
[2mdist/[22m[36mcomponents/PlBtnAccent/PlBtnAccent.vue2.js [39m[1m[2m 0.11 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
67
|
-
[2mdist/[22m[36mcomponents/PlBtnDanger/PlBtnDanger.vue2.js [39m[1m[2m 0.11 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
68
52
|
[2mdist/[22m[36mcomponents/PlAccordion/PlAccordion.vue2.js [39m[1m[2m 0.11 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
53
|
+
[2mdist/[22m[36mcomponents/PlBtnAccent/PlBtnAccent.vue2.js [39m[1m[2m 0.11 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
69
54
|
[2mdist/[22m[36mlayout/PlBlockPage/PlBlockPage.vue2.js [39m[1m[2m 0.11 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
70
|
-
[2mdist/[22m[36mcomponents/PlTextField/PlTextField.vue2.js [39m[1m[2m 0.11 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
71
55
|
[2mdist/[22m[36mcomponents/PlStatusTag/PlStatusTag.vue2.js [39m[1m[2m 0.11 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
56
|
+
[2mdist/[22m[36mcomponents/PlTextField/PlTextField.vue2.js [39m[1m[2m 0.11 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
57
|
+
[2mdist/[22m[36mcomponents/PlBtnDanger/PlBtnDanger.vue2.js [39m[1m[2m 0.11 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
58
|
+
[2mdist/[22m[36mcomponents/PlFileInput/PlFileInput.vue2.js [39m[1m[2m 0.11 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
59
|
+
[2mdist/[22m[36mlayout/PlContainer/PlContainer.vue2.js [39m[1m[2m 0.11 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
72
60
|
[2mdist/[22m[36mcomponents/DataTable/ColumnCaret.vue2.js [39m[1m[2m 0.11 kB[22m[1m[22m[2m │ gzip: 0.11 kB[22m[2m │ map: 0.10 kB[22m
|
|
73
61
|
[2mdist/[22m[36mcomponents/PlBtnPrimary/PlBtnPrimary.vue2.js [39m[1m[2m 0.11 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.10 kB[22m
|
|
74
62
|
[2mdist/[22m[36mcomponents/PlFileDialog/PlFileDialog.vue2.js [39m[1m[2m 0.11 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.10 kB[22m
|
|
75
63
|
[2mdist/[22m[36mutils/InnerBorder.vue2.js [39m[1m[2m 0.11 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.34 kB[22m
|
|
76
64
|
[2mdist/[22m[36mcomponents/ThemeSwitcher.vue2.js [39m[1m[2m 0.11 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.10 kB[22m
|
|
65
|
+
[2mdist/[22m[36mcomponents/PlDropdownRef/PlDropdownRef.vue2.js [39m[1m[2m 0.11 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.10 kB[22m
|
|
66
|
+
[2mdist/[22m[36mcomponents/PlProgressBar/PlProgressBar.vue2.js [39m[1m[2m 0.11 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.10 kB[22m
|
|
77
67
|
[2mdist/[22m[36mcomponents/PlDialogModal/PlDialogModal.vue2.js [39m[1m[2m 0.11 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.10 kB[22m
|
|
78
68
|
[2mdist/[22m[36mcomponents/PlNumberField/PlNumberField.vue2.js [39m[1m[2m 0.11 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.10 kB[22m
|
|
79
|
-
[2mdist/[22m[36mcomponents/PlProgressBar/PlProgressBar.vue2.js [39m[1m[2m 0.11 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.10 kB[22m
|
|
80
|
-
[2mdist/[22m[36mcomponents/PlDropdownRef/PlDropdownRef.vue2.js [39m[1m[2m 0.11 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.10 kB[22m
|
|
81
|
-
[2mdist/[22m[36mcomponents/PlBtnSecondary/PlBtnSecondary.vue2.js [39m[1m[2m 0.12 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.10 kB[22m
|
|
82
|
-
[2mdist/[22m[36mcomponents/PlDropdownLine/PlDropdownLine.vue2.js [39m[1m[2m 0.12 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.10 kB[22m
|
|
83
|
-
[2mdist/[22m[36mcomponents/PlProgressCell/PlProgressCell.vue2.js [39m[1m[2m 0.12 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.10 kB[22m
|
|
84
|
-
[2mdist/[22m[36mcomponents/DataTable/TableComponent.vue2.js [39m[1m[2m 0.12 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.10 kB[22m
|
|
85
69
|
[2mdist/[22m[36mcomponents/PlAutocomplete/PlAutocomplete.vue2.js [39m[1m[2m 0.12 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.10 kB[22m
|
|
86
70
|
[2mdist/[22m[36mcomponents/PlToggleSwitch/PlToggleSwitch.vue2.js [39m[1m[2m 0.12 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.10 kB[22m
|
|
87
|
-
[2mdist/[22m[36mcomponents/
|
|
71
|
+
[2mdist/[22m[36mcomponents/DataTable/TableComponent.vue2.js [39m[1m[2m 0.12 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.10 kB[22m
|
|
72
|
+
[2mdist/[22m[36mcomponents/PlProgressCell/PlProgressCell.vue2.js [39m[1m[2m 0.12 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.10 kB[22m
|
|
73
|
+
[2mdist/[22m[36mcomponents/PlDropdownLine/PlDropdownLine.vue2.js [39m[1m[2m 0.12 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.10 kB[22m
|
|
74
|
+
[2mdist/[22m[36mcomponents/PlBtnSecondary/PlBtnSecondary.vue2.js [39m[1m[2m 0.12 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.10 kB[22m
|
|
88
75
|
[2mdist/[22m[36mcomponents/PlCheckbox/PlCheckboxBase.vue2.js [39m[1m[2m 0.12 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.10 kB[22m
|
|
76
|
+
[2mdist/[22m[36mcomponents/PlDropdownLine/ResizableInput.vue2.js [39m[1m[2m 0.12 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.10 kB[22m
|
|
89
77
|
[2mdist/[22m[36mcomponents/ContextProvider.vue2.js [39m[1m[2m 0.12 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.11 kB[22m
|
|
90
78
|
[2mdist/[22m[36mcomponents/PlConfirmDialog.vue2.js [39m[1m[2m 0.12 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.11 kB[22m
|
|
91
79
|
[2mdist/[22m[36mutils/DropdownOverlay/DropdownOverlay.vue2.js [39m[1m[2m 0.12 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.11 kB[22m
|
|
92
|
-
[2mdist/[22m[36mcomponents/PlEditableTitle/PlEditableTitle.vue2.js [39m[1m[2m 0.12 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.11 kB[22m
|
|
93
80
|
[2mdist/[22m[36mcomponents/PlCheckboxGroup/PlCheckboxGroup.vue2.js [39m[1m[2m 0.12 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.11 kB[22m
|
|
94
|
-
[2mdist/[22m[36mcomponents/PlDropdownMulti/PlDropdownMulti.vue2.js [39m[1m[2m 0.12 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.11 kB[22m
|
|
95
81
|
[2mdist/[22m[36mcomponents/PlErrorBoundary/PlErrorBoundary.vue2.js [39m[1m[2m 0.12 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.11 kB[22m
|
|
82
|
+
[2mdist/[22m[36mcomponents/PlDropdownMulti/PlDropdownMulti.vue2.js [39m[1m[2m 0.12 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.11 kB[22m
|
|
83
|
+
[2mdist/[22m[36mcomponents/PlEditableTitle/PlEditableTitle.vue2.js [39m[1m[2m 0.12 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.11 kB[22m
|
|
96
84
|
[2mdist/[22m[36mhelpers/math.js [39m[1m[2m 0.12 kB[22m[1m[22m[2m │ gzip: 0.13 kB[22m[2m │ map: 0.33 kB[22m
|
|
97
85
|
[2mdist/[22m[36mcomponents/DataTable/RowsCommandMenu.vue2.js [39m[1m[2m 0.12 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.11 kB[22m
|
|
98
86
|
[2mdist/[22m[36mcomponents/DropdownListItem.vue2.js [39m[1m[2m 0.12 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.11 kB[22m
|
|
99
87
|
[2mdist/[22m[36mcomponents/PlDropdownLegacy/PlDropdownLegacy.vue2.js [39m[1m[2m 0.12 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.11 kB[22m
|
|
100
|
-
[2mdist/[22m[36mcomponents/PlLoaderCircular/PlLoaderCircular.vue2.js [39m[1m[2m 0.12 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.11 kB[22m
|
|
101
88
|
[2mdist/[22m[36mcomponents/PlSlideModal/PlPureSlideModal.vue2.js [39m[1m[2m 0.12 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.11 kB[22m
|
|
89
|
+
[2mdist/[22m[36mcomponents/PlLoaderCircular/PlLoaderCircular.vue2.js [39m[1m[2m 0.12 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.11 kB[22m
|
|
102
90
|
[2mdist/[22m[36mcomponents/SliderRangeTriple.vue2.js [39m[1m[2m 0.12 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.11 kB[22m
|
|
103
91
|
[2mdist/[22m[36mcomponents/DataTable/BaseCellComponent.vue2.js [39m[1m[2m 0.12 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.11 kB[22m
|
|
104
92
|
[2mdist/[22m[36mcomponents/PlDropdownMultiRef/PlDropdownMultiRef.vue2.js [39m[1m[2m 0.12 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.11 kB[22m
|
|
@@ -139,8 +127,8 @@ computing gzip size...
|
|
|
139
127
|
[2mdist/[22m[36massets/icons/icon-assets-min/24_arrow-down.svg.js [39m[1m[2m 0.27 kB[22m[1m[22m[2m │ gzip: 0.24 kB[22m[2m │ map: 0.44 kB[22m
|
|
140
128
|
[2mdist/[22m[36massets/icons/icon-assets-min/16_add.svg.js [39m[1m[2m 0.27 kB[22m[1m[22m[2m │ gzip: 0.23 kB[22m[2m │ map: 0.44 kB[22m
|
|
141
129
|
[2mdist/[22m[36mcomponents/PlRadio/PlRadio.vue.js [39m[1m[2m 0.27 kB[22m[1m[22m[2m │ gzip: 0.21 kB[22m[2m │ map: 0.10 kB[22m
|
|
142
|
-
[2mdist/[22m[36mcomponents/PlChartStackedBar/Legends.vue.js [39m[1m[2m 0.27 kB[22m[1m[22m[2m │ gzip: 0.21 kB[22m[2m │ map: 0.10 kB[22m
|
|
143
130
|
[2mdist/[22m[36massets/icons/icon-assets-min/24_linetype-longdash.svg.js [39m[1m[2m 0.27 kB[22m[1m[22m[2m │ gzip: 0.23 kB[22m[2m │ map: 0.47 kB[22m
|
|
131
|
+
[2mdist/[22m[36mcomponents/PlChartStackedBar/Legends.vue.js [39m[1m[2m 0.27 kB[22m[1m[22m[2m │ gzip: 0.21 kB[22m[2m │ map: 0.10 kB[22m
|
|
144
132
|
[2mdist/[22m[36massets/icons/icon-assets-min/16_chevron-first.svg.js [39m[1m[2m 0.28 kB[22m[1m[22m[2m │ gzip: 0.23 kB[22m[2m │ map: 0.45 kB[22m
|
|
145
133
|
[2mdist/[22m[36mcomponents/PlIcon16/PlIcon16.vue.js [39m[1m[2m 0.28 kB[22m[1m[22m[2m │ gzip: 0.22 kB[22m[2m │ map: 0.10 kB[22m
|
|
146
134
|
[2mdist/[22m[36mcomponents/PlIcon24/PlIcon24.vue.js [39m[1m[2m 0.28 kB[22m[1m[22m[2m │ gzip: 0.22 kB[22m[2m │ map: 0.10 kB[22m
|
|
@@ -159,10 +147,10 @@ computing gzip size...
|
|
|
159
147
|
[2mdist/[22m[36massets/icons/icon-assets-min/16_maximize.svg.js [39m[1m[2m 0.29 kB[22m[1m[22m[2m │ gzip: 0.24 kB[22m[2m │ map: 0.47 kB[22m
|
|
160
148
|
[2mdist/[22m[36mcomponents/PlSlideModal/PlSlideModal.vue.js [39m[1m[2m 0.29 kB[22m[1m[22m[2m │ gzip: 0.22 kB[22m[2m │ map: 0.11 kB[22m
|
|
161
149
|
[2mdist/[22m[36mcomponents/PlRadio/PlRadioGroup.vue.js [39m[1m[2m 0.29 kB[22m[1m[22m[2m │ gzip: 0.22 kB[22m[2m │ map: 0.11 kB[22m
|
|
162
|
-
[2mdist/[22m[36mcomponents/PlErrorAlert/PlErrorAlert.vue.js [39m[1m[2m 0.29 kB[22m[1m[22m[2m │ gzip: 0.22 kB[22m[2m │ map: 0.11 kB[22m
|
|
163
150
|
[2mdist/[22m[36massets/icons/icon-assets-min/16_caret-left.svg.js [39m[1m[2m 0.29 kB[22m[1m[22m[2m │ gzip: 0.24 kB[22m[2m │ map: 0.46 kB[22m
|
|
164
151
|
[2mdist/[22m[36massets/icons/icon-assets-min/16_download.svg.js [39m[1m[2m 0.29 kB[22m[1m[22m[2m │ gzip: 0.24 kB[22m[2m │ map: 0.46 kB[22m
|
|
165
152
|
[2mdist/[22m[36massets/icons/icon-assets-min/24_linetype-dashed.svg.js [39m[1m[2m 0.29 kB[22m[1m[22m[2m │ gzip: 0.23 kB[22m[2m │ map: 0.48 kB[22m
|
|
153
|
+
[2mdist/[22m[36mcomponents/PlErrorAlert/PlErrorAlert.vue.js [39m[1m[2m 0.29 kB[22m[1m[22m[2m │ gzip: 0.22 kB[22m[2m │ map: 0.11 kB[22m
|
|
166
154
|
[2mdist/[22m[36massets/icons/icon-assets-min/24_drag-dots.svg.js [39m[1m[2m 0.29 kB[22m[1m[22m[2m │ gzip: 0.23 kB[22m[2m │ map: 0.46 kB[22m
|
|
167
155
|
[2mdist/[22m[36massets/icons/icon-assets-min/16_chevron-up.svg.js [39m[1m[2m 0.29 kB[22m[1m[22m[2m │ gzip: 0.24 kB[22m[2m │ map: 0.47 kB[22m
|
|
168
156
|
[2mdist/[22m[36mcomponents/PlElementList/PlElementList.vue.js [39m[1m[2m 0.29 kB[22m[1m[22m[2m │ gzip: 0.22 kB[22m[2m │ map: 0.11 kB[22m
|
|
@@ -194,9 +182,9 @@ computing gzip size...
|
|
|
194
182
|
[2mdist/[22m[36massets/icons/icon-assets-min/24_text-align-right.svg.js [39m[1m[2m 0.30 kB[22m[1m[22m[2m │ gzip: 0.25 kB[22m[2m │ map: 0.50 kB[22m
|
|
195
183
|
[2mdist/[22m[36massets/icons/icon-assets-min/16_checkmark.svg.js [39m[1m[2m 0.30 kB[22m[1m[22m[2m │ gzip: 0.25 kB[22m[2m │ map: 0.48 kB[22m
|
|
196
184
|
[2mdist/[22m[36mcomponents/PlChartStackedBar/PlChartStackedBar.vue.js [39m[1m[2m 0.30 kB[22m[1m[22m[2m │ gzip: 0.22 kB[22m[2m │ map: 0.11 kB[22m
|
|
185
|
+
[2mdist/[22m[36mcomponents/PlChartStackedBar/StackedRowCompact.vue.js [39m[1m[2m 0.30 kB[22m[1m[22m[2m │ gzip: 0.22 kB[22m[2m │ map: 0.11 kB[22m
|
|
197
186
|
[2mdist/[22m[36massets/icons/icon-assets-min/16_arrow-up.svg.js [39m[1m[2m 0.30 kB[22m[1m[22m[2m │ gzip: 0.25 kB[22m[2m │ map: 0.48 kB[22m
|
|
198
187
|
[2mdist/[22m[36massets/icons/icon-assets-min/24_linetype-twodash.svg.js [39m[1m[2m 0.30 kB[22m[1m[22m[2m │ gzip: 0.25 kB[22m[2m │ map: 0.50 kB[22m
|
|
199
|
-
[2mdist/[22m[36mcomponents/PlChartStackedBar/StackedRowCompact.vue.js [39m[1m[2m 0.30 kB[22m[1m[22m[2m │ gzip: 0.22 kB[22m[2m │ map: 0.11 kB[22m
|
|
200
188
|
[2mdist/[22m[36mcomponents/PlElementList/PlElementListItem.vue.js [39m[1m[2m 0.30 kB[22m[1m[22m[2m │ gzip: 0.22 kB[22m[2m │ map: 0.11 kB[22m
|
|
201
189
|
[2mdist/[22m[36massets/icons/icon-assets-min/24_checkmark.svg.js [39m[1m[2m 0.31 kB[22m[1m[22m[2m │ gzip: 0.25 kB[22m[2m │ map: 0.49 kB[22m
|
|
202
190
|
[2mdist/[22m[36massets/icons/icon-assets-min/16_arrow-down.svg.js [39m[1m[2m 0.31 kB[22m[1m[22m[2m │ gzip: 0.25 kB[22m[2m │ map: 0.49 kB[22m
|
|
@@ -223,8 +211,8 @@ computing gzip size...
|
|
|
223
211
|
[2mdist/[22m[36massets/icons/icon-assets-min/16_compare.svg.js [39m[1m[2m 0.34 kB[22m[1m[22m[2m │ gzip: 0.26 kB[22m[2m │ map: 0.51 kB[22m
|
|
224
212
|
[2mdist/[22m[36massets/icons/icon-assets-min/16_jump-link.svg.js [39m[1m[2m 0.34 kB[22m[1m[22m[2m │ gzip: 0.26 kB[22m[2m │ map: 0.52 kB[22m
|
|
225
213
|
[2mdist/[22m[36massets/icons/icon-assets-min/16_reverse.svg.js [39m[1m[2m 0.34 kB[22m[1m[22m[2m │ gzip: 0.26 kB[22m[2m │ map: 0.51 kB[22m
|
|
226
|
-
[2mdist/[22m[36massets/icons/icon-assets-min/16_stop.svg.js [39m[1m[2m 0.34 kB[22m[1m[22m[2m │ gzip: 0.25 kB[22m[2m │ map: 0.52 kB[22m
|
|
227
214
|
[2mdist/[22m[36mcomponents/DataTable/TrHead.vue.js [39m[1m[2m 0.34 kB[22m[1m[22m[2m │ gzip: 0.27 kB[22m[2m │ map: 0.41 kB[22m
|
|
215
|
+
[2mdist/[22m[36massets/icons/icon-assets-min/16_stop.svg.js [39m[1m[2m 0.34 kB[22m[1m[22m[2m │ gzip: 0.25 kB[22m[2m │ map: 0.52 kB[22m
|
|
228
216
|
[2mdist/[22m[36massets/icons/icon-assets-min/24_expand-left.svg.js [39m[1m[2m 0.35 kB[22m[1m[22m[2m │ gzip: 0.24 kB[22m[2m │ map: 0.53 kB[22m
|
|
229
217
|
[2mdist/[22m[36massets/icons/icon-assets-min/24_expand-right.svg.js [39m[1m[2m 0.35 kB[22m[1m[22m[2m │ gzip: 0.25 kB[22m[2m │ map: 0.53 kB[22m
|
|
230
218
|
[2mdist/[22m[36massets/icons/icon-assets-min/24_restart.svg.js [39m[1m[2m 0.35 kB[22m[1m[22m[2m │ gzip: 0.27 kB[22m[2m │ map: 0.52 kB[22m
|
|
@@ -278,9 +266,9 @@ computing gzip size...
|
|
|
278
266
|
[2mdist/[22m[36massets/icons/icon-assets-min/24_align-right.svg.js [39m[1m[2m 0.43 kB[22m[1m[22m[2m │ gzip: 0.28 kB[22m[2m │ map: 0.61 kB[22m
|
|
279
267
|
[2mdist/[22m[36massets/icons/icon-assets-min/24_zoom-out.svg.js [39m[1m[2m 0.43 kB[22m[1m[22m[2m │ gzip: 0.29 kB[22m[2m │ map: 0.63 kB[22m
|
|
280
268
|
[2mdist/[22m[36massets/icons/icon-assets-min/24_windows-collapse.svg.js [39m[1m[2m 0.43 kB[22m[1m[22m[2m │ gzip: 0.30 kB[22m[2m │ map: 0.66 kB[22m
|
|
269
|
+
[2mdist/[22m[36mutils/InnerBorder.vue.js [39m[1m[2m 0.43 kB[22m[1m[22m[2m │ gzip: 0.31 kB[22m[2m │ map: 0.42 kB[22m
|
|
281
270
|
[2mdist/[22m[36massets/icons/icon-assets-min/16_delete-circle.svg.js [39m[1m[2m 0.43 kB[22m[1m[22m[2m │ gzip: 0.30 kB[22m[2m │ map: 0.62 kB[22m
|
|
282
271
|
[2mdist/[22m[36massets/icons/icon-assets-min/24_drag-vertical.svg.js [39m[1m[2m 0.43 kB[22m[1m[22m[2m │ gzip: 0.31 kB[22m[2m │ map: 0.62 kB[22m
|
|
283
|
-
[2mdist/[22m[36mutils/InnerBorder.vue.js [39m[1m[2m 0.43 kB[22m[1m[22m[2m │ gzip: 0.31 kB[22m[2m │ map: 0.42 kB[22m
|
|
284
272
|
[2mdist/[22m[36massets/icons/icon-assets-min/16_zip.svg.js [39m[1m[2m 0.43 kB[22m[1m[22m[2m │ gzip: 0.29 kB[22m[2m │ map: 0.60 kB[22m
|
|
285
273
|
[2mdist/[22m[36massets/icons/icon-assets-min/24_arrow-left-curved.svg.js [39m[1m[2m 0.43 kB[22m[1m[22m[2m │ gzip: 0.31 kB[22m[2m │ map: 0.61 kB[22m
|
|
286
274
|
[2mdist/[22m[36massets/icons/icon-assets-min/24_drag-horizontal.svg.js [39m[1m[2m 0.43 kB[22m[1m[22m[2m │ gzip: 0.32 kB[22m[2m │ map: 0.62 kB[22m
|
|
@@ -294,8 +282,8 @@ computing gzip size...
|
|
|
294
282
|
[2mdist/[22m[36massets/icons/icon-assets-min/24_renew.svg.js [39m[1m[2m 0.44 kB[22m[1m[22m[2m │ gzip: 0.32 kB[22m[2m │ map: 0.62 kB[22m
|
|
295
283
|
[2mdist/[22m[36massets/icons/icon-assets-min/16_error.svg.js [39m[1m[2m 0.44 kB[22m[1m[22m[2m │ gzip: 0.32 kB[22m[2m │ map: 0.64 kB[22m
|
|
296
284
|
[2mdist/[22m[36massets/icons/icon-assets-min/24_monetization.svg.js [39m[1m[2m 0.45 kB[22m[1m[22m[2m │ gzip: 0.30 kB[22m[2m │ map: 0.63 kB[22m
|
|
297
|
-
[2mdist/[22m[36massets/images/24_checkbox-light-enabled-unchecked.svg.js [39m[1m[2m 0.45 kB[22m[1m[22m[2m │ gzip: 0.32 kB[22m[2m │ map: 0.67 kB[22m
|
|
298
285
|
[2mdist/[22m[36massets/icons/icon-assets-min/24_y-axis.svg.js [39m[1m[2m 0.45 kB[22m[1m[22m[2m │ gzip: 0.30 kB[22m[2m │ map: 0.65 kB[22m
|
|
286
|
+
[2mdist/[22m[36massets/images/24_checkbox-light-enabled-unchecked.svg.js [39m[1m[2m 0.45 kB[22m[1m[22m[2m │ gzip: 0.32 kB[22m[2m │ map: 0.67 kB[22m
|
|
299
287
|
[2mdist/[22m[36massets/icons/icon-assets-min/16_y-axis.svg.js [39m[1m[2m 0.45 kB[22m[1m[22m[2m │ gzip: 0.30 kB[22m[2m │ map: 0.65 kB[22m
|
|
300
288
|
[2mdist/[22m[36massets/icons/icon-assets-min/24_delete-circle.svg.js [39m[1m[2m 0.45 kB[22m[1m[22m[2m │ gzip: 0.31 kB[22m[2m │ map: 0.65 kB[22m
|
|
301
289
|
[2mdist/[22m[36massets/icons/icon-assets-min/24_zoom-in.svg.js [39m[1m[2m 0.45 kB[22m[1m[22m[2m │ gzip: 0.30 kB[22m[2m │ map: 0.65 kB[22m
|
|
@@ -360,8 +348,8 @@ computing gzip size...
|
|
|
360
348
|
[2mdist/[22m[36massets/icons/icon-assets-min/16_settings.svg.js [39m[1m[2m 0.56 kB[22m[1m[22m[2m │ gzip: 0.33 kB[22m[2m │ map: 0.74 kB[22m
|
|
361
349
|
[2mdist/[22m[36mcomposition/useFormState.js [39m[1m[2m 0.56 kB[22m[1m[22m[2m │ gzip: 0.32 kB[22m[2m │ map: 1.67 kB[22m
|
|
362
350
|
[2mdist/[22m[36massets/icons/icon-assets-min/24_frame-type-none.svg.js [39m[1m[2m 0.56 kB[22m[1m[22m[2m │ gzip: 0.27 kB[22m[2m │ map: 0.75 kB[22m
|
|
363
|
-
[2mdist/[22m[36massets/icons/icon-assets-min/24_columns.svg.js [39m[1m[2m 0.56 kB[22m[1m[22m[2m │ gzip: 0.33 kB[22m[2m │ map: 0.76 kB[22m
|
|
364
351
|
[2mdist/[22m[36mcomponents/DataTable/ColumnCaret.vue.js [39m[1m[2m 0.56 kB[22m[1m[22m[2m │ gzip: 0.37 kB[22m[2m │ map: 0.90 kB[22m
|
|
352
|
+
[2mdist/[22m[36massets/icons/icon-assets-min/24_columns.svg.js [39m[1m[2m 0.56 kB[22m[1m[22m[2m │ gzip: 0.33 kB[22m[2m │ map: 0.76 kB[22m
|
|
365
353
|
[2mdist/[22m[36massets/icons/icon-assets-min/16_clipboard-copied.svg.js [39m[1m[2m 0.56 kB[22m[1m[22m[2m │ gzip: 0.36 kB[22m[2m │ map: 0.76 kB[22m
|
|
366
354
|
[2mdist/[22m[36massets/icons/icon-assets-min/16_clipboard.svg.js [39m[1m[2m 0.56 kB[22m[1m[22m[2m │ gzip: 0.34 kB[22m[2m │ map: 0.74 kB[22m
|
|
367
355
|
[2mdist/[22m[36massets/icons/icon-assets-min/24_file-doc-import.svg.js [39m[1m[2m 0.56 kB[22m[1m[22m[2m │ gzip: 0.37 kB[22m[2m │ map: 0.77 kB[22m
|
|
@@ -399,8 +387,8 @@ computing gzip size...
|
|
|
399
387
|
[2mdist/[22m[36massets/icons/icon-assets-min/16_duplicate.svg.js [39m[1m[2m 0.62 kB[22m[1m[22m[2m │ gzip: 0.39 kB[22m[2m │ map: 0.83 kB[22m
|
|
400
388
|
[2mdist/[22m[36massets/icons/icon-assets-min/24_bar-stacked.svg.js [39m[1m[2m 0.62 kB[22m[1m[22m[2m │ gzip: 0.34 kB[22m[2m │ map: 0.83 kB[22m
|
|
401
389
|
[2mdist/[22m[36mcomponents/PlElementList/PlElementList.vue3.js [39m[1m[2m 0.63 kB[22m[1m[22m[2m │ gzip: 0.41 kB[22m[2m │ map: 0.11 kB[22m
|
|
402
|
-
[2mdist/[22m[36mcomposition/useRipple.js [39m[1m[2m 0.63 kB[22m[1m[22m[2m │ gzip: 0.40 kB[22m[2m │ map: 1.69 kB[22m
|
|
403
390
|
[2mdist/[22m[36massets/icons/icon-assets-min/24_file-doc-download.svg.js [39m[1m[2m 0.63 kB[22m[1m[22m[2m │ gzip: 0.38 kB[22m[2m │ map: 0.85 kB[22m
|
|
391
|
+
[2mdist/[22m[36mcomposition/useRipple.js [39m[1m[2m 0.63 kB[22m[1m[22m[2m │ gzip: 0.40 kB[22m[2m │ map: 1.69 kB[22m
|
|
404
392
|
[2mdist/[22m[36massets/icons/icon-assets-min/24_axes.svg.js [39m[1m[2m 0.63 kB[22m[1m[22m[2m │ gzip: 0.37 kB[22m[2m │ map: 0.81 kB[22m
|
|
405
393
|
[2mdist/[22m[36mutils/DoubleContour.vue.js [39m[1m[2m 0.63 kB[22m[1m[22m[2m │ gzip: 0.41 kB[22m[2m │ map: 2.12 kB[22m
|
|
406
394
|
[2mdist/[22m[36massets/icons/icon-assets-min/24_clipboard.svg.js [39m[1m[2m 0.63 kB[22m[1m[22m[2m │ gzip: 0.37 kB[22m[2m │ map: 0.84 kB[22m
|
|
@@ -441,7 +429,7 @@ computing gzip size...
|
|
|
441
429
|
[2mdist/[22m[36massets/icons/icon-assets-min/24_cell-type-txt.svg.js [39m[1m[2m 0.77 kB[22m[1m[22m[2m │ gzip: 0.50 kB[22m[2m │ map: 0.94 kB[22m
|
|
442
430
|
[2mdist/[22m[36massets/icons/icon-assets-min/24_bubble.svg.js [39m[1m[2m 0.77 kB[22m[1m[22m[2m │ gzip: 0.40 kB[22m[2m │ map: 0.97 kB[22m
|
|
443
431
|
[2mdist/[22m[36massets/icons/icon-assets-min/24_container.svg.js [39m[1m[2m 0.78 kB[22m[1m[22m[2m │ gzip: 0.43 kB[22m[2m │ map: 1.05 kB[22m
|
|
444
|
-
[2mdist/[22m[36mcomponents/PlAccordion/ExpandTransition.
|
|
432
|
+
[2mdist/[22m[36mcomponents/PlAccordion/ExpandTransition.vue2.js [39m[1m[2m 0.78 kB[22m[1m[22m[2m │ gzip: 0.43 kB[22m[2m │ map: 1.53 kB[22m
|
|
445
433
|
[2mdist/[22m[36mcomponents/DataTable/adapters/AsyncData.js [39m[1m[2m 0.79 kB[22m[1m[22m[2m │ gzip: 0.43 kB[22m[2m │ map: 2.12 kB[22m
|
|
446
434
|
[2mdist/[22m[36mcomponents/PlDropdown/useGroupBy.js [39m[1m[2m 0.80 kB[22m[1m[22m[2m │ gzip: 0.42 kB[22m[2m │ map: 2.49 kB[22m
|
|
447
435
|
[2mdist/[22m[36mcomposition/watchCached.js [39m[1m[2m 0.80 kB[22m[1m[22m[2m │ gzip: 0.45 kB[22m[2m │ map: 2.44 kB[22m
|
|
@@ -487,8 +475,8 @@ computing gzip size...
|
|
|
487
475
|
[2mdist/[22m[36mcomposition/usePosition.js [39m[1m[2m 1.00 kB[22m[1m[22m[2m │ gzip: 0.46 kB[22m[2m │ map: 2.31 kB[22m
|
|
488
476
|
[2mdist/[22m[36massets/icons/icon-assets-min/16_progress.svg.js [39m[1m[2m 1.02 kB[22m[1m[22m[2m │ gzip: 0.61 kB[22m[2m │ map: 1.22 kB[22m
|
|
489
477
|
[2mdist/[22m[36mcomposition/useDraggable.js [39m[1m[2m 1.02 kB[22m[1m[22m[2m │ gzip: 0.44 kB[22m[2m │ map: 2.56 kB[22m
|
|
490
|
-
[2mdist/[22m[36massets/icons/icon-assets-min/24_strip-plot.svg.js [39m[1m[2m 1.02 kB[22m[1m[22m[2m │ gzip: 0.36 kB[22m[2m │ map: 1.29 kB[22m
|
|
491
478
|
[2mdist/[22m[36mcomponents/DataTable/assets/TableIcon.vue.js [39m[1m[2m 1.02 kB[22m[1m[22m[2m │ gzip: 0.55 kB[22m[2m │ map: 1.20 kB[22m
|
|
479
|
+
[2mdist/[22m[36massets/icons/icon-assets-min/24_strip-plot.svg.js [39m[1m[2m 1.02 kB[22m[1m[22m[2m │ gzip: 0.36 kB[22m[2m │ map: 1.29 kB[22m
|
|
492
480
|
[2mdist/[22m[36mcomponents/PlChartStackedBar/Legends.vue3.js [39m[1m[2m 1.03 kB[22m[1m[22m[2m │ gzip: 0.56 kB[22m[2m │ map: 0.10 kB[22m
|
|
493
481
|
[2mdist/[22m[36mhelpers/downloadContent.js [39m[1m[2m 1.03 kB[22m[1m[22m[2m │ gzip: 0.50 kB[22m[2m │ map: 3.22 kB[22m
|
|
494
482
|
[2mdist/[22m[36mgenerated/icons-16.js [39m[1m[2m 1.04 kB[22m[1m[22m[2m │ gzip: 0.42 kB[22m[2m │ map: 1.90 kB[22m
|
|
@@ -587,7 +575,7 @@ computing gzip size...
|
|
|
587
575
|
[2mdist/[22m[36massets/icons/icon-assets-min/24_file-logs-accent.svg.js [39m[1m[2m 2.42 kB[22m[1m[22m[2m │ gzip: 1.19 kB[22m[2m │ map: 2.66 kB[22m
|
|
588
576
|
[2mdist/[22m[36mcolors/gradient.js [39m[1m[2m 2.44 kB[22m[1m[22m[2m │ gzip: 0.98 kB[22m[2m │ map: 6.44 kB[22m
|
|
589
577
|
[2mdist/[22m[36mcomponents/PlTabs/pl-tabs.module.scss.js [39m[1m[2m 2.45 kB[22m[1m[22m[2m │ gzip: 0.88 kB[22m[2m │ map: 0.11 kB[22m
|
|
590
|
-
[2mdist/[22m[36mcomponents/PlAccordion/PlAccordionSection.vue2.js [39m[1m[2m 2.51 kB[22m[1m[22m[2m │ gzip: 1.
|
|
578
|
+
[2mdist/[22m[36mcomponents/PlAccordion/PlAccordionSection.vue2.js [39m[1m[2m 2.51 kB[22m[1m[22m[2m │ gzip: 1.14 kB[22m[2m │ map: 3.69 kB[22m
|
|
591
579
|
[2mdist/[22m[36mcomponents/DataTable/TdCell.vue.js [39m[1m[2m 2.60 kB[22m[1m[22m[2m │ gzip: 1.04 kB[22m[2m │ map: 5.35 kB[22m
|
|
592
580
|
[2mdist/[22m[36mcomponents/PlNotificationAlert/PlNotificationAlert.vue.js [39m[1m[2m 2.64 kB[22m[1m[22m[2m │ gzip: 1.12 kB[22m[2m │ map: 2.10 kB[22m
|
|
593
581
|
[2mdist/[22m[36mcomponents/PlFileDialog/Local.vue.js [39m[1m[2m 2.67 kB[22m[1m[22m[2m │ gzip: 1.17 kB[22m[2m │ map: 4.98 kB[22m
|
|
@@ -639,11 +627,11 @@ computing gzip size...
|
|
|
639
627
|
[2mdist/[22m[36mcomponents/PlDropdownMulti/PlDropdownMulti.vue.js [39m[1m[2m 18.23 kB[22m[1m[22m[2m │ gzip: 4.95 kB[22m[2m │ map: 16.65 kB[22m
|
|
640
628
|
[2mdist/[22m[36mcomponents/PlDropdownLegacy/PlDropdownLegacy.vue.js [39m[1m[2m 18.26 kB[22m[1m[22m[2m │ gzip: 4.95 kB[22m[2m │ map: 17.77 kB[22m
|
|
641
629
|
[2mdist/[22m[36mcomponents/PlAutocomplete/PlAutocomplete.vue.js [39m[1m[2m 18.62 kB[22m[1m[22m[2m │ gzip: 5.23 kB[22m[2m │ map: 20.72 kB[22m
|
|
642
|
-
[2mdist/[22m[36mcomponents/PlAutocompleteMulti/PlAutocompleteMulti.vue.js [39m[1m[2m 19.31 kB[22m[1m[22m[2m │ gzip: 5.23 kB[22m[2m │ map: 20.
|
|
630
|
+
[2mdist/[22m[36mcomponents/PlAutocompleteMulti/PlAutocompleteMulti.vue.js [39m[1m[2m 19.31 kB[22m[1m[22m[2m │ gzip: 5.23 kB[22m[2m │ map: 20.80 kB[22m
|
|
643
631
|
[2mdist/[22m[36mcomponents/PlSvg/PlSvg.vue2.js [39m[1m[2m 39.54 kB[22m[1m[22m[2m │ gzip: 3.38 kB[22m[2m │ map: 12.31 kB[22m
|
|
644
632
|
[2mdist/[22m[36mcomponents/PlFileDialog/pl-file-dialog.module.scss.js [39m[1m[2m 47.68 kB[22m[1m[22m[2m │ gzip: 16.33 kB[22m[2m │ map: 0.13 kB[22m
|
|
645
633
|
[2mdist/[22m[36mindex.js [39m[1m[33m502.41 kB[39m[22m[2m │ gzip: 192.50 kB[22m[2m │ map: 5.86 kB[22m
|
|
646
634
|
[2mdist/[22m[36mcomponents/PlSlideModal/PlPureSlideModal.vue.js [39m[1m[33m605.54 kB[39m[22m[2m │ gzip: 205.13 kB[22m[2m │ map: 2.93 kB[22m
|
|
647
635
|
[2mdist/[22m[36mcomponents/DataTable/TableComponent.vue.js [39m[1m[33m607.38 kB[39m[22m[2m │ gzip: 206.02 kB[22m[2m │ map: 6.85 kB[22m
|
|
648
|
-
[32m✓ built in
|
|
636
|
+
[32m✓ built in 38.19s[39m
|
|
649
637
|
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.7.
|
|
3
|
+
> @milaboratories/uikit@2.7.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
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# @milaboratories/uikit
|
|
2
2
|
|
|
3
|
+
## 2.7.3
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [5deb79a]
|
|
8
|
+
- @platforma-sdk/model@1.47.5
|
|
9
|
+
|
|
10
|
+
## 2.7.2
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- 92439e1: ts-builder ignore customcudition for build/serve without flag
|
|
15
|
+
- @milaboratories/helpers@1.12.0
|
|
16
|
+
- @platforma-sdk/model@1.46.0
|
|
17
|
+
|
|
3
18
|
## 2.7.1
|
|
4
19
|
|
|
5
20
|
### Patch Changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExpandTransition.vue2.js","sources":["../../../src/components/PlAccordion/ExpandTransition.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nconst onStart = (el: Element) => {\n el.classList.add('expand-collapse-fix');\n (el as HTMLElement).style.setProperty('--component-height', el.scrollHeight + 'px');\n};\n\nconst onAfter = (el: Element) => {\n (el as HTMLElement).style.removeProperty('--component-height');\n el.classList.remove('expand-collapse-fix');\n};\n</script>\n\n<template>\n <Transition name=\"expand-collapse\" @enter=\"onStart\" @leave=\"onStart\" @after-enter=\"onAfter\" @after-leave=\"onAfter\">\n <slot/>\n </Transition>\n</template>\n\n<style>\n.expand-collapse-fix {\n overflow: hidden;\n}\n\n.expand-collapse-enter-active,\n.expand-collapse-leave-active {\n transition:\n height 0.2s ease-in-out,\n opacity 0.2s ease-in-out;\n height: var(--component-height);\n}\n\n.expand-collapse-enter-from,\n.expand-collapse-leave-to {\n opacity: 0.5;\n height: 0;\n}\n</style>\n"],"names":["onStart","el","onAfter","_createBlock","_Transition","_renderSlot","_ctx"],"mappings":";;;;AACA,UAAMA,IAAU,CAACC,MAAgB;AAC/B,MAAAA,EAAG,UAAU,IAAI,qBAAqB,GACrCA,EAAmB,MAAM,YAAY,sBAAsBA,EAAG,eAAe,IAAI;AAAA,IACpF,GAEMC,IAAU,CAACD,MAAgB;AAC9B,MAAAA,EAAmB,MAAM,eAAe,oBAAoB,GAC7DA,EAAG,UAAU,OAAO,qBAAqB;AAAA,IAC3C;2BAIEE,EAEaC,GAAA;AAAA,MAFD,MAAK;AAAA,MAAmB,SAAOJ;AAAA,MAAU,SAAOA;AAAA,MAAU,cAAaE;AAAA,MAAU,cAAaA;AAAA,IAAA;iBACxG,MAAO;AAAA,QAAPG,EAAOC,EAAA,QAAA,SAAA;AAAA,MAAA;;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
(function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode(".expand-collapse-fix{overflow:hidden}.expand-collapse-enter-active,.expand-collapse-leave-active{transition:height .2s ease-in-out,opacity .2s ease-in-out;height:var(--component-height)}.expand-collapse-enter-from,.expand-collapse-leave-to{opacity:.5;height:0}")),document.head.appendChild(e)}}catch(t){console.error("vite-plugin-css-injected-by-js",t)}})();
|
|
2
|
-
import o from "./ExpandTransition.
|
|
2
|
+
import o from "./ExpandTransition.vue2.js";
|
|
3
3
|
|
|
4
4
|
export {
|
|
5
5
|
o as default
|
|
@@ -3,7 +3,7 @@ import { defineComponent as V, mergeModels as k, inject as m, toRef as d, useMod
|
|
|
3
3
|
import { uniqueId as B } from "@milaboratories/helpers";
|
|
4
4
|
import N from "../PlIcon16/PlIcon16.vue.js";
|
|
5
5
|
import P from "../PlSectionSeparator/PlSectionSeparator.vue.js";
|
|
6
|
-
import b from "./ExpandTransition.
|
|
6
|
+
import b from "./ExpandTransition.vue2.js";
|
|
7
7
|
|
|
8
8
|
const w = { class: "pl-accordion-section" }, R = /* @__PURE__ */ V({
|
|
9
9
|
__name: "PlAccordionSection",
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { ListOptionBase } from '@platforma-sdk/model';
|
|
2
|
+
/**
|
|
3
|
+
* A multi-select autocomplete component that allows users to search and select multiple values from a list of options.
|
|
4
|
+
* Supports async data fetching, keyboard navigation, and displays selected items as removable chips.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* Basic usage:
|
|
8
|
+
* <PlAutocompleteMulti
|
|
9
|
+
* v-model="selectedUsers"
|
|
10
|
+
* :options-search="searchUsers"
|
|
11
|
+
* :model-search="getUsersByIds"
|
|
12
|
+
* label="Select Users"
|
|
13
|
+
* placeholder="Search for users..."
|
|
14
|
+
* required
|
|
15
|
+
* :debounce="300"
|
|
16
|
+
* helper="Choose one or more users from the list"
|
|
17
|
+
* />
|
|
18
|
+
*
|
|
19
|
+
* With async functions:
|
|
20
|
+
* const selectedUsers = ref([])
|
|
21
|
+
*
|
|
22
|
+
* const searchUsers = async (searchTerm) => {
|
|
23
|
+
* const response = await fetch('/api/users/search?q=' + searchTerm)
|
|
24
|
+
* const users = await response.json()
|
|
25
|
+
* return users.map(user => ({ value: user.id, label: user.name }))
|
|
26
|
+
* }
|
|
27
|
+
*
|
|
28
|
+
* const getUsersByIds = async (userIds) => {
|
|
29
|
+
* if (!userIds.length) return []
|
|
30
|
+
* const response = await fetch('/api/users?ids=' + userIds.join(','))
|
|
31
|
+
* const users = await response.json()
|
|
32
|
+
* return users.map(user => ({ value: user.id, label: user.name }))
|
|
33
|
+
* }
|
|
34
|
+
*/
|
|
35
|
+
declare const _default: <M extends string | number = string>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
36
|
+
props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
|
|
37
|
+
readonly "onUpdate:modelValue"?: ((v: M[]) => any) | undefined;
|
|
38
|
+
} & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, never>, "onUpdate:modelValue"> & {
|
|
39
|
+
/**
|
|
40
|
+
* The current selected values.
|
|
41
|
+
*/
|
|
42
|
+
modelValue: M[];
|
|
43
|
+
/**
|
|
44
|
+
* Lambda for requesting of available options for the dropdown by search string.
|
|
45
|
+
*/
|
|
46
|
+
optionsSearch: OptionsSearch<M>;
|
|
47
|
+
/**
|
|
48
|
+
* Unique identifier for the source of the options, changing it will invalidate the options cache.
|
|
49
|
+
*/
|
|
50
|
+
sourceId?: string;
|
|
51
|
+
/**
|
|
52
|
+
* The label text for the dropdown field (optional)
|
|
53
|
+
*/
|
|
54
|
+
label?: string;
|
|
55
|
+
/**
|
|
56
|
+
* A helper text displayed below the dropdown when there are no errors (optional).
|
|
57
|
+
*/
|
|
58
|
+
helper?: string;
|
|
59
|
+
/**
|
|
60
|
+
* Error message displayed below the dropdown (optional)
|
|
61
|
+
*/
|
|
62
|
+
error?: unknown;
|
|
63
|
+
/**
|
|
64
|
+
* Placeholder text shown when no value is selected.
|
|
65
|
+
*/
|
|
66
|
+
placeholder?: string;
|
|
67
|
+
/**
|
|
68
|
+
* If `true`, the dropdown component is marked as required.
|
|
69
|
+
*/
|
|
70
|
+
required?: boolean;
|
|
71
|
+
/**
|
|
72
|
+
* If `true`, the dropdown component is disabled and cannot be interacted with.
|
|
73
|
+
*/
|
|
74
|
+
disabled?: boolean;
|
|
75
|
+
/**
|
|
76
|
+
* Debounce time in ms for the options search.
|
|
77
|
+
*/
|
|
78
|
+
debounce?: number;
|
|
79
|
+
/**
|
|
80
|
+
* If `true`, the search input is reset and focus is set on it when the new option is selected.
|
|
81
|
+
*/
|
|
82
|
+
resetSearchOnSelect?: boolean;
|
|
83
|
+
/**
|
|
84
|
+
* The text to display when no options are found.
|
|
85
|
+
*/
|
|
86
|
+
emptyOptionsText?: string;
|
|
87
|
+
/**
|
|
88
|
+
* Makes some of corners not rounded
|
|
89
|
+
* */
|
|
90
|
+
groupPosition?: "top" | "bottom" | "left" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | "middle";
|
|
91
|
+
} & Partial<{}>> & import('vue').PublicProps;
|
|
92
|
+
expose(exposed: import('vue').ShallowUnwrapRef<{}>): void;
|
|
93
|
+
attrs: any;
|
|
94
|
+
slots: {
|
|
95
|
+
append?(_: {}): any;
|
|
96
|
+
tooltip?(_: {}): any;
|
|
97
|
+
};
|
|
98
|
+
emit: (e: "update:modelValue", v: M[]) => void;
|
|
99
|
+
}>) => import('vue').VNode<import('vue').RendererNode, import('vue').RendererElement, {
|
|
100
|
+
[key: string]: any;
|
|
101
|
+
}> & {
|
|
102
|
+
__ctx?: Awaited<typeof __VLS_setup>;
|
|
103
|
+
};
|
|
104
|
+
export default _default;
|
|
105
|
+
export interface OptionsSearch<T> {
|
|
106
|
+
(s: string, type: 'label'): Promise<Readonly<ListOptionBase<T>[]>>;
|
|
107
|
+
(s: T[], type: 'value'): Promise<Readonly<ListOptionBase<T>[]>>;
|
|
108
|
+
}
|
|
109
|
+
type __VLS_PrettifyLocal<T> = {
|
|
110
|
+
[K in keyof T]: T[K];
|
|
111
|
+
} & {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlAutocompleteMulti.vue.js","sources":["../../../src/components/PlAutocompleteMulti/PlAutocompleteMulti.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * A multi-select autocomplete component that allows users to search and select multiple values from a list of options.\n * Supports async data fetching, keyboard navigation, and displays selected items as removable chips.\n *\n * @example\n * Basic usage:\n * <PlAutocompleteMulti\n * v-model=\"selectedUsers\"\n * :options-search=\"searchUsers\"\n * :model-search=\"getUsersByIds\"\n * label=\"Select Users\"\n * placeholder=\"Search for users...\"\n * required\n * :debounce=\"300\"\n * helper=\"Choose one or more users from the list\"\n * />\n *\n * With async functions:\n * const selectedUsers = ref([])\n *\n * const searchUsers = async (searchTerm) => {\n * const response = await fetch('/api/users/search?q=' + searchTerm)\n * const users = await response.json()\n * return users.map(user => ({ value: user.id, label: user.name }))\n * }\n *\n * const getUsersByIds = async (userIds) => {\n * if (!userIds.length) return []\n * const response = await fetch('/api/users?ids=' + userIds.join(','))\n * const users = await response.json()\n * return users.map(user => ({ value: user.id, label: user.name }))\n * }\n */\nexport default {\n name: 'PlAutocompleteMulti',\n};\n</script>\n\n<script lang=\"ts\" setup generic=\"M extends string | number = string\">\nimport './pl-autocomplete-multi.scss';\n\nimport type { ListOptionBase } from '@platforma-sdk/model';\nimport canonicalize from 'canonicalize';\nimport { computed, reactive, ref, toRef, unref, useSlots, useTemplateRef, watch } from 'vue';\nimport { useWatchFetch } from '../../composition/useWatchFetch.ts';\nimport { getErrorMessage } from '../../helpers/error.ts';\nimport { deepEqual, deepIncludes } from '../../helpers/objects';\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 { PlTooltip } from '../PlTooltip';\n\nimport SvgRequired from '../../assets/images/required.svg?raw';\nimport { PlSvg } from '../PlSvg';\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\ninterface OptionsSearch {\n (s: string, type: 'label'): Promise<Readonly<ListOptionBase<M>[]>>;\n (s: M[], type: 'value'): Promise<Readonly<ListOptionBase<M>[]>>;\n}\n\nconst props = withDefaults(\n defineProps<{\n /**\n * The current selected values.\n */\n modelValue: M[];\n /**\n * Lambda for requesting of available options for the dropdown by search string.\n */\n optionsSearch: OptionsSearch;\n /**\n * Unique identifier for the source of the options, changing it will invalidate the options cache.\n */\n sourceId?: string;\n /**\n * The label text for the dropdown field (optional)\n */\n label?: string;\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 * Debounce time in ms for the options search.\n */\n debounce?: number;\n /**\n * If `true`, the search input is reset and focus is set on it when the new option is selected.\n */\n resetSearchOnSelect?: boolean;\n /**\n * The text to display when no options are found.\n */\n emptyOptionsText?: string;\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 debounce: 300,\n emptyOptionsText: 'Nothing found',\n sourceId: undefined,\n groupPosition: undefined,\n },\n);\n\nconst rootRef = ref<HTMLElement | undefined>();\nconst inputRef = 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\nwatch(() => data.open, (v) => {\n if (!v) {\n data.search = '';\n }\n}, { flush: 'sync' });\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 debounce = toRef(props, 'debounce');\n\nconst searchOptionsRef = useWatchFetch(() => [data.search, data.open, props.sourceId] as const, async ([search, _open]) => {\n return props.optionsSearch(search, 'label');\n}, {\n filterWatchResult: ([_search, open]) => open,\n debounce,\n});\n\nconst modelOptionsRef = useWatchFetch(() => [props.modelValue, props.sourceId] as const, async ([v]) => {\n return props.optionsSearch(v, 'value');\n}, {\n debounce,\n});\n\nconst allOptionsRef = computed(() => {\n const modelOptions = modelOptionsRef.value ?? [];\n const searchOptions = searchOptionsRef.value ?? [];\n\n const seenValues = new Set<string | undefined>();\n const result = [] as ListOptionBase<M>[];\n\n const addOptions = (options: Readonly<ListOptionBase<M>[]>) => {\n for (const option of options) {\n const canonicalValue = canonicalize(option.value);\n if (!seenValues.has(canonicalValue)) {\n seenValues.add(canonicalValue);\n result.push(option);\n }\n }\n };\n\n addOptions(modelOptions);\n addOptions(searchOptions);\n\n return result;\n});\n\nconst selectedOptionsRef = computed(() => {\n return selectedValuesRef.value.map((v) =>\n allOptionsRef.value.find((opt) => deepEqual(opt.value, v))).filter((v) => v !== undefined,\n );\n});\n\nconst filteredOptionsRef = computed(() => {\n const selectedValues = unref(selectedValuesRef);\n\n const options = searchOptionsRef.value ?? [];\n\n return [...options].map((opt) => ({\n ...opt,\n selected: deepIncludes(selectedValues, opt.value),\n }));\n});\n\nconst isOptionsLoading = computed(() => searchOptionsRef.loading || modelOptionsRef.loading);\n\nconst isDisabled = computed(() => {\n if (modelOptionsRef.value === undefined) {\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 if (props.resetSearchOnSelect) {\n data.search = '';\n }\n inputRef.value?.focus();\n};\n\nconst unselectOption = (d: M) => emitModel(unref(selectedValuesRef).filter((v) => !deepEqual(v, d)));\n\nconst setFocusOnInput = () => inputRef.value?.focus();\n\nconst toggleOpen = () => data.open = !data.open;\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.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 inputRef.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\nconst computedError = computed(() => {\n if (isOptionsLoading.value) {\n return undefined;\n }\n\n if (searchOptionsRef.error) {\n return getErrorMessage(searchOptionsRef.error);\n }\n\n if (modelOptionsRef.error) {\n return getErrorMessage(modelOptionsRef.error);\n }\n\n if (props.error) {\n return getErrorMessage(props.error);\n }\n\n if (props.modelValue.length && selectedOptionsRef.value.length !== props.modelValue.length) {\n return 'The selected values are not one of the options';\n }\n\n return undefined;\n});\n</script>\n\n<template>\n <div class=\"pl-autocomplete-multi__envelope\" @click=\"setFocusOnInput\">\n <div\n ref=\"rootRef\"\n :tabindex=\"tabindex\"\n class=\"pl-autocomplete-multi\"\n :class=\"{ open: data.open, error: Boolean(computedError), disabled: isDisabled }\"\n @keydown=\"handleKeydown\"\n @focusout=\"onFocusOut\"\n >\n <div class=\"pl-autocomplete-multi__container\">\n <div class=\"pl-autocomplete-multi__field\">\n <input\n ref=\"inputRef\"\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-autocomplete-multi__controls\">\n <PlMaskIcon24 v-if=\"isOptionsLoading\" name=\"loading\" />\n <slot name=\"append\" />\n <div class=\"pl-autocomplete-multi__arrow-wrapper\" @click.stop=\"toggleOpen\">\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-autocomplete-multi__options\"\n :gap=\"5\"\n tabindex=\"-1\"\n @focusout=\"onFocusOut\"\n >\n <div class=\"pl-autocomplete-multi__open-chips-container\">\n <PlChip\n v-for=\"(opt, i) in selectedOptionsRef\"\n :key=\"i\"\n closeable\n small\n @close=\"unselectOption(opt.value)\"\n >\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 && !isOptionsLoading\" class=\"nothing-found\">{{ emptyOptionsText }}</div>\n </DropdownOverlay>\n <DoubleContour class=\"pl-autocomplete-multi__contour\" :group-position=\"groupPosition\" />\n </div>\n </div>\n <div v-if=\"computedError\" class=\"pl-autocomplete-multi__error\">{{ computedError }}</div>\n <div v-else-if=\"helper\" class=\"pl-autocomplete-multi__helper\">{{ helper }}</div>\n </div>\n</template>\n"],"names":["__default__","emit","__emit","emitModel","v","slots","useSlots","props","__props","rootRef","ref","inputRef","overlay","useTemplateRef","data","reactive","watch","selectedValuesRef","computed","placeholderRef","debounce","toRef","searchOptionsRef","useWatchFetch","search","_open","_search","open","modelOptionsRef","allOptionsRef","modelOptions","searchOptions","seenValues","result","addOptions","options","option","canonicalValue","canonicalize","selectedOptionsRef","opt","deepEqual","filteredOptionsRef","selectedValues","unref","deepIncludes","isOptionsLoading","isDisabled","tabindex","updateActiveOption","selectOption","values","it","_a","unselectOption","d","setFocusOnInput","toggleOpen","onFocusOut","event","relatedTarget","_c","_b","handleKeydown","activeOption","filteredOptions","length","useLabelNotch","computedError","getErrorMessage","_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","_hoisted_11"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"PlAutocompleteMulti.vue.js","sources":["../../../src/components/PlAutocompleteMulti/PlAutocompleteMulti.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * A multi-select autocomplete component that allows users to search and select multiple values from a list of options.\n * Supports async data fetching, keyboard navigation, and displays selected items as removable chips.\n *\n * @example\n * Basic usage:\n * <PlAutocompleteMulti\n * v-model=\"selectedUsers\"\n * :options-search=\"searchUsers\"\n * :model-search=\"getUsersByIds\"\n * label=\"Select Users\"\n * placeholder=\"Search for users...\"\n * required\n * :debounce=\"300\"\n * helper=\"Choose one or more users from the list\"\n * />\n *\n * With async functions:\n * const selectedUsers = ref([])\n *\n * const searchUsers = async (searchTerm) => {\n * const response = await fetch('/api/users/search?q=' + searchTerm)\n * const users = await response.json()\n * return users.map(user => ({ value: user.id, label: user.name }))\n * }\n *\n * const getUsersByIds = async (userIds) => {\n * if (!userIds.length) return []\n * const response = await fetch('/api/users?ids=' + userIds.join(','))\n * const users = await response.json()\n * return users.map(user => ({ value: user.id, label: user.name }))\n * }\n */\nexport default {\n name: 'PlAutocompleteMulti',\n};\n\nexport interface OptionsSearch<T> {\n (s: string, type: 'label'): Promise<Readonly<ListOptionBase<T>[]>>;\n (s: T[], type: 'value'): Promise<Readonly<ListOptionBase<T>[]>>;\n}\n\n</script>\n\n<script lang=\"ts\" setup generic=\"M extends string | number = string\">\nimport './pl-autocomplete-multi.scss';\n\nimport type { ListOptionBase } from '@platforma-sdk/model';\nimport canonicalize from 'canonicalize';\nimport { computed, reactive, ref, toRef, unref, useSlots, useTemplateRef, watch } from 'vue';\nimport { useWatchFetch } from '../../composition/useWatchFetch.ts';\nimport { getErrorMessage } from '../../helpers/error.ts';\nimport { deepEqual, deepIncludes } from '../../helpers/objects';\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 { PlTooltip } from '../PlTooltip';\n\nimport SvgRequired from '../../assets/images/required.svg?raw';\nimport { PlSvg } from '../PlSvg';\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 * Lambda for requesting of available options for the dropdown by search string.\n */\n optionsSearch: OptionsSearch<M>;\n /**\n * Unique identifier for the source of the options, changing it will invalidate the options cache.\n */\n sourceId?: string;\n /**\n * The label text for the dropdown field (optional)\n */\n label?: string;\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 * Debounce time in ms for the options search.\n */\n debounce?: number;\n /**\n * If `true`, the search input is reset and focus is set on it when the new option is selected.\n */\n resetSearchOnSelect?: boolean;\n /**\n * The text to display when no options are found.\n */\n emptyOptionsText?: string;\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 debounce: 300,\n emptyOptionsText: 'Nothing found',\n sourceId: undefined,\n groupPosition: undefined,\n },\n);\n\nconst rootRef = ref<HTMLElement | undefined>();\nconst inputRef = 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\nwatch(() => data.open, (v) => {\n if (!v) {\n data.search = '';\n }\n}, { flush: 'sync' });\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 debounce = toRef(props, 'debounce');\n\nconst searchOptionsRef = useWatchFetch(() => [data.search, data.open, props.sourceId] as const, async ([search, _open]) => {\n return props.optionsSearch(search, 'label');\n}, {\n filterWatchResult: ([_search, open]) => open,\n debounce,\n});\n\nconst modelOptionsRef = useWatchFetch(() => [props.modelValue, props.sourceId] as const, async ([v]) => {\n return props.optionsSearch(v, 'value');\n}, {\n debounce,\n});\n\nconst allOptionsRef = computed(() => {\n const modelOptions = modelOptionsRef.value ?? [];\n const searchOptions = searchOptionsRef.value ?? [];\n\n const seenValues = new Set<string | undefined>();\n const result = [] as ListOptionBase<M>[];\n\n const addOptions = (options: Readonly<ListOptionBase<M>[]>) => {\n for (const option of options) {\n const canonicalValue = canonicalize(option.value);\n if (!seenValues.has(canonicalValue)) {\n seenValues.add(canonicalValue);\n result.push(option);\n }\n }\n };\n\n addOptions(modelOptions);\n addOptions(searchOptions);\n\n return result;\n});\n\nconst selectedOptionsRef = computed(() => {\n return selectedValuesRef.value.map((v) =>\n allOptionsRef.value.find((opt) => deepEqual(opt.value, v))).filter((v) => v !== undefined,\n );\n});\n\nconst filteredOptionsRef = computed(() => {\n const selectedValues = unref(selectedValuesRef);\n\n const options = searchOptionsRef.value ?? [];\n\n return [...options].map((opt) => ({\n ...opt,\n selected: deepIncludes(selectedValues, opt.value),\n }));\n});\n\nconst isOptionsLoading = computed(() => searchOptionsRef.loading || modelOptionsRef.loading);\n\nconst isDisabled = computed(() => {\n if (modelOptionsRef.value === undefined) {\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 if (props.resetSearchOnSelect) {\n data.search = '';\n }\n inputRef.value?.focus();\n};\n\nconst unselectOption = (d: M) => emitModel(unref(selectedValuesRef).filter((v) => !deepEqual(v, d)));\n\nconst setFocusOnInput = () => inputRef.value?.focus();\n\nconst toggleOpen = () => data.open = !data.open;\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.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 inputRef.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\nconst computedError = computed(() => {\n if (isOptionsLoading.value) {\n return undefined;\n }\n\n if (searchOptionsRef.error) {\n return getErrorMessage(searchOptionsRef.error);\n }\n\n if (modelOptionsRef.error) {\n return getErrorMessage(modelOptionsRef.error);\n }\n\n if (props.error) {\n return getErrorMessage(props.error);\n }\n\n if (props.modelValue.length && selectedOptionsRef.value.length !== props.modelValue.length) {\n return 'The selected values are not one of the options';\n }\n\n return undefined;\n});\n</script>\n\n<template>\n <div class=\"pl-autocomplete-multi__envelope\" @click=\"setFocusOnInput\">\n <div\n ref=\"rootRef\"\n :tabindex=\"tabindex\"\n class=\"pl-autocomplete-multi\"\n :class=\"{ open: data.open, error: Boolean(computedError), disabled: isDisabled }\"\n @keydown=\"handleKeydown\"\n @focusout=\"onFocusOut\"\n >\n <div class=\"pl-autocomplete-multi__container\">\n <div class=\"pl-autocomplete-multi__field\">\n <input\n ref=\"inputRef\"\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-autocomplete-multi__controls\">\n <PlMaskIcon24 v-if=\"isOptionsLoading\" name=\"loading\" />\n <slot name=\"append\" />\n <div class=\"pl-autocomplete-multi__arrow-wrapper\" @click.stop=\"toggleOpen\">\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-autocomplete-multi__options\"\n :gap=\"5\"\n tabindex=\"-1\"\n @focusout=\"onFocusOut\"\n >\n <div class=\"pl-autocomplete-multi__open-chips-container\">\n <PlChip\n v-for=\"(opt, i) in selectedOptionsRef\"\n :key=\"i\"\n closeable\n small\n @close=\"unselectOption(opt.value)\"\n >\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 && !isOptionsLoading\" class=\"nothing-found\">{{ emptyOptionsText }}</div>\n </DropdownOverlay>\n <DoubleContour class=\"pl-autocomplete-multi__contour\" :group-position=\"groupPosition\" />\n </div>\n </div>\n <div v-if=\"computedError\" class=\"pl-autocomplete-multi__error\">{{ computedError }}</div>\n <div v-else-if=\"helper\" class=\"pl-autocomplete-multi__helper\">{{ helper }}</div>\n </div>\n</template>\n"],"names":["__default__","emit","__emit","emitModel","v","slots","useSlots","props","__props","rootRef","ref","inputRef","overlay","useTemplateRef","data","reactive","watch","selectedValuesRef","computed","placeholderRef","debounce","toRef","searchOptionsRef","useWatchFetch","search","_open","_search","open","modelOptionsRef","allOptionsRef","modelOptions","searchOptions","seenValues","result","addOptions","options","option","canonicalValue","canonicalize","selectedOptionsRef","opt","deepEqual","filteredOptionsRef","selectedValues","unref","deepIncludes","isOptionsLoading","isDisabled","tabindex","updateActiveOption","selectOption","values","it","_a","unselectOption","d","setFocusOnInput","toggleOpen","onFocusOut","event","relatedTarget","_c","_b","handleKeydown","activeOption","filteredOptions","length","useLabelNotch","computedError","getErrorMessage","_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","_hoisted_11"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { default as PlAutocompleteMulti } from './PlAutocompleteMulti.vue';
|
|
1
|
+
export { default as PlAutocompleteMulti, type OptionsSearch as PlAutocompleteMultiOptionsSearch } from './PlAutocompleteMulti.vue';
|
|
@@ -9,8 +9,8 @@ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<{
|
|
|
9
9
|
maxHeight?: string;
|
|
10
10
|
copyMessage?: string;
|
|
11
11
|
}> & Readonly<{}>, {
|
|
12
|
-
message: string;
|
|
13
12
|
title: string;
|
|
13
|
+
message: string;
|
|
14
14
|
maxHeight: string;
|
|
15
15
|
copyMessage: string;
|
|
16
16
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>, {
|
|
@@ -34,8 +34,8 @@ declare function __VLS_template(): {
|
|
|
34
34
|
maxHeight?: string;
|
|
35
35
|
copyMessage?: string;
|
|
36
36
|
}> & Readonly<{}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, {
|
|
37
|
-
message: string;
|
|
38
37
|
title: string;
|
|
38
|
+
message: string;
|
|
39
39
|
maxHeight: string;
|
|
40
40
|
copyMessage: string;
|
|
41
41
|
}, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & {
|
|
@@ -59,8 +59,8 @@ declare function __VLS_template(): {
|
|
|
59
59
|
$nextTick: typeof import('vue').nextTick;
|
|
60
60
|
$watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, import('@vue/reactivity').OnCleanup]) => any : (...args: [any, any, import('@vue/reactivity').OnCleanup]) => any, options?: import('vue').WatchOptions): import('vue').WatchStopHandle;
|
|
61
61
|
} & Readonly<{
|
|
62
|
-
message: string;
|
|
63
62
|
title: string;
|
|
63
|
+
message: string;
|
|
64
64
|
maxHeight: string;
|
|
65
65
|
copyMessage: string;
|
|
66
66
|
}> & Omit<Readonly<{
|
|
@@ -68,7 +68,7 @@ declare function __VLS_template(): {
|
|
|
68
68
|
message?: string;
|
|
69
69
|
maxHeight?: string;
|
|
70
70
|
copyMessage?: string;
|
|
71
|
-
}> & Readonly<{}>, "
|
|
71
|
+
}> & Readonly<{}>, "title" | "message" | "maxHeight" | "copyMessage"> & import('vue').ShallowUnwrapRef<{}> & {} & import('vue').ComponentCustomProperties & {} & {
|
|
72
72
|
$slots: {
|
|
73
73
|
title?(_: {}): any;
|
|
74
74
|
message?(_: {}): any;
|
|
@@ -111,8 +111,8 @@ declare const __VLS_component: import('vue').DefineComponent<{}, {
|
|
|
111
111
|
maxHeight?: string;
|
|
112
112
|
copyMessage?: string;
|
|
113
113
|
}> & Readonly<{}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, {
|
|
114
|
-
message: string;
|
|
115
114
|
title: string;
|
|
115
|
+
message: string;
|
|
116
116
|
maxHeight: string;
|
|
117
117
|
copyMessage: string;
|
|
118
118
|
}, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & {
|
|
@@ -136,8 +136,8 @@ declare const __VLS_component: import('vue').DefineComponent<{}, {
|
|
|
136
136
|
$nextTick: typeof import('vue').nextTick;
|
|
137
137
|
$watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, import('@vue/reactivity').OnCleanup]) => any : (...args: [any, any, import('@vue/reactivity').OnCleanup]) => any, options?: import('vue').WatchOptions): import('vue').WatchStopHandle;
|
|
138
138
|
} & Readonly<{
|
|
139
|
-
message: string;
|
|
140
139
|
title: string;
|
|
140
|
+
message: string;
|
|
141
141
|
maxHeight: string;
|
|
142
142
|
copyMessage: string;
|
|
143
143
|
}> & Omit<Readonly<{
|
|
@@ -145,7 +145,7 @@ declare const __VLS_component: import('vue').DefineComponent<{}, {
|
|
|
145
145
|
message?: string;
|
|
146
146
|
maxHeight?: string;
|
|
147
147
|
copyMessage?: string;
|
|
148
|
-
}> & Readonly<{}>, "
|
|
148
|
+
}> & Readonly<{}>, "title" | "message" | "maxHeight" | "copyMessage"> & import('vue').ShallowUnwrapRef<{}> & {} & import('vue').ComponentCustomProperties & {} & {
|
|
149
149
|
$slots: {
|
|
150
150
|
title?(_: {}): any;
|
|
151
151
|
message?(_: {}): any;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@milaboratories/uikit",
|
|
3
|
-
"version": "2.7.
|
|
3
|
+
"version": "2.7.3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"exports": {
|
|
@@ -31,8 +31,8 @@
|
|
|
31
31
|
"d3-axis": "^3.0.0",
|
|
32
32
|
"resize-observer-polyfill": "^1.5.1",
|
|
33
33
|
"canonicalize": "~2.1.0",
|
|
34
|
-
"@
|
|
35
|
-
"@
|
|
34
|
+
"@platforma-sdk/model": "1.47.5",
|
|
35
|
+
"@milaboratories/helpers": "1.12.0"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
38
|
"jsdom": "^25.0.1",
|
|
@@ -40,10 +40,10 @@
|
|
|
40
40
|
"yarpm": "^1.2.0",
|
|
41
41
|
"svgo": "^3.3.2",
|
|
42
42
|
"typescript": "~5.6.3",
|
|
43
|
-
"@milaboratories/eslint-config": "1.0.5",
|
|
44
|
-
"@milaboratories/build-configs": "1.0.8",
|
|
45
43
|
"@milaboratories/ts-configs": "1.0.6",
|
|
46
|
-
"@milaboratories/ts-builder": "1.0.
|
|
44
|
+
"@milaboratories/ts-builder": "1.0.6",
|
|
45
|
+
"@milaboratories/eslint-config": "1.0.5",
|
|
46
|
+
"@milaboratories/build-configs": "1.0.9"
|
|
47
47
|
},
|
|
48
48
|
"scripts": {
|
|
49
49
|
"dev": "ts-builder serve --target browser-lib --build-config ./build.browser-lib.config.js",
|
|
@@ -35,6 +35,12 @@
|
|
|
35
35
|
export default {
|
|
36
36
|
name: 'PlAutocompleteMulti',
|
|
37
37
|
};
|
|
38
|
+
|
|
39
|
+
export interface OptionsSearch<T> {
|
|
40
|
+
(s: string, type: 'label'): Promise<Readonly<ListOptionBase<T>[]>>;
|
|
41
|
+
(s: T[], type: 'value'): Promise<Readonly<ListOptionBase<T>[]>>;
|
|
42
|
+
}
|
|
43
|
+
|
|
38
44
|
</script>
|
|
39
45
|
|
|
40
46
|
<script lang="ts" setup generic="M extends string | number = string">
|
|
@@ -65,11 +71,6 @@ const emitModel = (v: M[]) => emit('update:modelValue', v);
|
|
|
65
71
|
|
|
66
72
|
const slots = useSlots();
|
|
67
73
|
|
|
68
|
-
interface OptionsSearch {
|
|
69
|
-
(s: string, type: 'label'): Promise<Readonly<ListOptionBase<M>[]>>;
|
|
70
|
-
(s: M[], type: 'value'): Promise<Readonly<ListOptionBase<M>[]>>;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
74
|
const props = withDefaults(
|
|
74
75
|
defineProps<{
|
|
75
76
|
/**
|
|
@@ -79,7 +80,7 @@ const props = withDefaults(
|
|
|
79
80
|
/**
|
|
80
81
|
* Lambda for requesting of available options for the dropdown by search string.
|
|
81
82
|
*/
|
|
82
|
-
optionsSearch: OptionsSearch
|
|
83
|
+
optionsSearch: OptionsSearch<M>;
|
|
83
84
|
/**
|
|
84
85
|
* Unique identifier for the source of the options, changing it will invalidate the options cache.
|
|
85
86
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { default as PlAutocompleteMulti } from './PlAutocompleteMulti.vue';
|
|
1
|
+
export { default as PlAutocompleteMulti, type OptionsSearch as PlAutocompleteMultiOptionsSearch } from './PlAutocompleteMulti.vue';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ExpandTransition.vue.js","sources":["../../../src/components/PlAccordion/ExpandTransition.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nconst onStart = (el: Element) => {\n el.classList.add('expand-collapse-fix');\n (el as HTMLElement).style.setProperty('--component-height', el.scrollHeight + 'px');\n};\n\nconst onAfter = (el: Element) => {\n (el as HTMLElement).style.removeProperty('--component-height');\n el.classList.remove('expand-collapse-fix');\n};\n</script>\n\n<template>\n <Transition name=\"expand-collapse\" @enter=\"onStart\" @leave=\"onStart\" @after-enter=\"onAfter\" @after-leave=\"onAfter\">\n <slot/>\n </Transition>\n</template>\n\n<style>\n.expand-collapse-fix {\n overflow: hidden;\n}\n\n.expand-collapse-enter-active,\n.expand-collapse-leave-active {\n transition:\n height 0.2s ease-in-out,\n opacity 0.2s ease-in-out;\n height: var(--component-height);\n}\n\n.expand-collapse-enter-from,\n.expand-collapse-leave-to {\n opacity: 0.5;\n height: 0;\n}\n</style>\n"],"names":["onStart","el","onAfter","_createBlock","_Transition","_renderSlot","_ctx"],"mappings":";;;;AACA,UAAMA,IAAU,CAACC,MAAgB;AAC/B,MAAAA,EAAG,UAAU,IAAI,qBAAqB,GACrCA,EAAmB,MAAM,YAAY,sBAAsBA,EAAG,eAAe,IAAI;AAAA,IACpF,GAEMC,IAAU,CAACD,MAAgB;AAC9B,MAAAA,EAAmB,MAAM,eAAe,oBAAoB,GAC7DA,EAAG,UAAU,OAAO,qBAAqB;AAAA,IAC3C;2BAIEE,EAEaC,GAAA;AAAA,MAFD,MAAK;AAAA,MAAmB,SAAOJ;AAAA,MAAU,SAAOA;AAAA,MAAU,cAAaE;AAAA,MAAU,cAAaA;AAAA,IAAA;iBACxG,MAAO;AAAA,QAAPG,EAAOC,EAAA,QAAA,SAAA;AAAA,MAAA;;;;;"}
|