@platforma-sdk/ui-vue 1.37.13 → 1.37.14
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 +19 -15
- package/.turbo/turbo-type-check.log +1 -1
- package/CHANGELOG.md +8 -0
- package/dist/AgGridVue/createAgGridColDef.d.ts.map +1 -1
- package/dist/AgGridVue/createAgGridColDef.js.map +1 -1
- package/dist/lib/ui/uikit/dist/components/DataTable/TableComponent.vue.js +1 -1
- package/dist/lib/ui/uikit/dist/components/PlAccordion/PlAccordionSection.vue2.js +27 -27
- package/dist/lib/ui/uikit/dist/components/PlAccordion/PlAccordionSection.vue2.js.map +1 -1
- package/dist/lib/ui/uikit/dist/components/PlAutocomplete/PlAutocomplete.vue.js.map +1 -1
- package/dist/lib/ui/uikit/dist/components/PlDropdown/OptionList.vue.js +88 -0
- package/dist/lib/ui/uikit/dist/components/PlDropdown/OptionList.vue.js.map +1 -0
- package/dist/lib/ui/uikit/dist/components/PlDropdown/PlDropdown.vue.js +105 -117
- package/dist/lib/ui/uikit/dist/components/PlDropdown/PlDropdown.vue.js.map +1 -1
- package/dist/lib/ui/uikit/dist/components/PlDropdown/useGroupBy.js +33 -0
- package/dist/lib/ui/uikit/dist/components/PlDropdown/useGroupBy.js.map +1 -0
- package/dist/lib/ui/uikit/dist/components/PlDropdownRef/PlDropdownRef.vue.js +8 -7
- package/dist/lib/ui/uikit/dist/components/PlDropdownRef/PlDropdownRef.vue.js.map +1 -1
- package/dist/lib/ui/uikit/dist/components/PlFileDialog/Remote.vue.js +4 -4
- package/dist/lib/ui/uikit/dist/components/PlSlideModal/PlSlideModal.vue.js +1 -1
- package/dist/lib/ui/uikit/dist/helpers/utils.js +2 -1
- package/dist/lib/ui/uikit/dist/helpers/utils.js.map +1 -1
- package/dist/lib/ui/uikit/dist/sdk/model/dist/index.js +1 -1
- package/dist/lib/ui/uikit/dist/sdk/model/dist/index.js.map +1 -1
- package/dist/lib/ui/uikit/dist/utils/TextLabel.vue.js +26 -0
- package/dist/lib/ui/uikit/dist/utils/TextLabel.vue.js.map +1 -0
- package/dist/lib/ui/uikit/dist/utils/TextLabel.vue2.js +22 -0
- package/dist/lib/ui/uikit/dist/utils/TextLabel.vue2.js.map +1 -0
- package/dist/plugins/Monetization/MonetizationSidebar.vue.js +2 -2
- package/dist/sdk/model/dist/index.js +1 -1
- package/dist/sdk/model/dist/index.js.map +1 -1
- package/package.json +7 -7
- package/src/AgGridVue/createAgGridColDef.ts +2 -1
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
WARN Issue while reading "/home/runner/_work/platforma/platforma/.npmrc". Failed to replace env in config: ${NPMJS_TOKEN}
|
|
2
2
|
|
|
3
|
-
> @platforma-sdk/ui-vue@1.37.
|
|
3
|
+
> @platforma-sdk/ui-vue@1.37.14 build /home/runner/_work/platforma/platforma/sdk/ui-vue
|
|
4
4
|
> vite build
|
|
5
5
|
|
|
6
6
|
[36mvite v6.3.5 [32mbuilding for production...[36m[39m
|
|
7
7
|
transforming...
|
|
8
|
-
[32m✓[39m
|
|
8
|
+
[32m✓[39m 903 modules transformed.
|
|
9
9
|
rendering chunks...
|
|
10
10
|
|
|
11
11
|
[vite:dts] Start generate declaration files...
|
|
12
12
|
computing gzip size...
|
|
13
|
-
[vite:dts] Declaration files built in
|
|
13
|
+
[vite:dts] Declaration files built in 5286ms.
|
|
14
14
|
|
|
15
15
|
[2mdist/[22m[36m_virtual/re.js [39m[1m[2m 0.08 kB[22m[1m[22m[2m │ gzip: 0.10 kB[22m[2m │ map: 0.09 kB[22m
|
|
16
16
|
[2mdist/[22m[36m_virtual/lodash2.js [39m[1m[2m 0.09 kB[22m[1m[22m[2m │ gzip: 0.10 kB[22m[2m │ map: 0.09 kB[22m
|
|
@@ -137,8 +137,8 @@ computing gzip size...
|
|
|
137
137
|
[2mdist/[22m[36mlib/ui/uikit/dist/assets/icons/icon-assets-min/24_linetype-solid.svg.js [39m[1m[2m 0.26 kB[22m[1m[22m[2m │ gzip: 0.22 kB[22m[2m │ map: 0.48 kB[22m
|
|
138
138
|
[2mdist/[22m[36mnode_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/defaultLocale.js [39m[1m[2m 0.26 kB[22m[1m[22m[2m │ gzip: 0.21 kB[22m[2m │ map: 0.87 kB[22m
|
|
139
139
|
[2mdist/[22m[36mlib/ui/uikit/dist/assets/icons/icon-assets-min/24_color-stroke.svg.js [39m[1m[2m 0.26 kB[22m[1m[22m[2m │ gzip: 0.22 kB[22m[2m │ map: 0.49 kB[22m
|
|
140
|
-
[2mdist/[22m[36mlib/ui/uikit/dist/node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/init.js [39m[1m[2m 0.26 kB[22m[1m[22m[2m │ gzip: 0.18 kB[22m[2m │ map: 1.11 kB[22m
|
|
141
140
|
[2mdist/[22m[36mlib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/selection.js [39m[1m[2m 0.26 kB[22m[1m[22m[2m │ gzip: 0.20 kB[22m[2m │ map: 0.60 kB[22m
|
|
141
|
+
[2mdist/[22m[36mlib/ui/uikit/dist/node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/init.js [39m[1m[2m 0.26 kB[22m[1m[22m[2m │ gzip: 0.18 kB[22m[2m │ map: 1.11 kB[22m
|
|
142
142
|
[2mdist/[22m[36mlib/ui/uikit/dist/node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/node.js [39m[1m[2m 0.26 kB[22m[1m[22m[2m │ gzip: 0.19 kB[22m[2m │ map: 0.82 kB[22m
|
|
143
143
|
[2mdist/[22m[36mlib/ui/uikit/dist/node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/select.js [39m[1m[2m 0.26 kB[22m[1m[22m[2m │ gzip: 0.20 kB[22m[2m │ map: 0.73 kB[22m
|
|
144
144
|
[2mdist/[22m[36mlib/ui/uikit/dist/node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/each.js [39m[1m[2m 0.26 kB[22m[1m[22m[2m │ gzip: 0.21 kB[22m[2m │ map: 0.88 kB[22m
|
|
@@ -156,8 +156,8 @@ computing gzip size...
|
|
|
156
156
|
[2mdist/[22m[36mlib/ui/uikit/dist/components/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
|
|
157
157
|
[2mdist/[22m[36m_virtual/index.js [39m[1m[2m 0.27 kB[22m[1m[22m[2m │ gzip: 0.21 kB[22m[2m │ map: 0.09 kB[22m
|
|
158
158
|
[2mdist/[22m[36mcomponents/PlMultiSequenceAlignment/Toolbar.vue.js [39m[1m[2m 0.27 kB[22m[1m[22m[2m │ gzip: 0.21 kB[22m[2m │ map: 0.10 kB[22m
|
|
159
|
-
[2mdist/[22m[36mlib/ui/uikit/dist/assets/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.50 kB[22m
|
|
160
159
|
[2mdist/[22m[36mlib/ui/uikit/dist/components/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
|
|
160
|
+
[2mdist/[22m[36mlib/ui/uikit/dist/assets/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.50 kB[22m
|
|
161
161
|
[2mdist/[22m[36mcomponents/PlMultiSequenceAlignment/SeqLogo.vue.js [39m[1m[2m 0.27 kB[22m[1m[22m[2m │ gzip: 0.21 kB[22m[2m │ map: 0.10 kB[22m
|
|
162
162
|
[2mdist/[22m[36mlib/ui/uikit/dist/assets/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.48 kB[22m
|
|
163
163
|
[2mdist/[22m[36mlib/ui/uikit/dist/components/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
|
|
@@ -523,6 +523,7 @@ computing gzip size...
|
|
|
523
523
|
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlFileDialog/utils.js [39m[1m[2m 0.66 kB[22m[1m[22m[2m │ gzip: 0.42 kB[22m[2m │ map: 2.48 kB[22m
|
|
524
524
|
[2mdist/[22m[36mlib/ui/uikit/dist/assets/icons/icon-assets-min/24_filter.svg.js [39m[1m[2m 0.66 kB[22m[1m[22m[2m │ gzip: 0.40 kB[22m[2m │ map: 0.89 kB[22m
|
|
525
525
|
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlRadio/PlRadioGroup.vue3.js [39m[1m[2m 0.66 kB[22m[1m[22m[2m │ gzip: 0.42 kB[22m[2m │ map: 0.12 kB[22m
|
|
526
|
+
[2mdist/[22m[36mlib/ui/uikit/dist/utils/TextLabel.vue.js [39m[1m[2m 0.66 kB[22m[1m[22m[2m │ gzip: 0.38 kB[22m[2m │ map: 1.26 kB[22m
|
|
526
527
|
[2mdist/[22m[36mlib/ui/uikit/dist/composition/useQuery.js [39m[1m[2m 0.66 kB[22m[1m[22m[2m │ gzip: 0.36 kB[22m[2m │ map: 1.55 kB[22m
|
|
527
528
|
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlElementList/PlElementList.vue3.js [39m[1m[2m 0.67 kB[22m[1m[22m[2m │ gzip: 0.42 kB[22m[2m │ map: 0.12 kB[22m
|
|
528
529
|
[2mdist/[22m[36mlib/ui/uikit/dist/assets/icons/icon-assets-min/24_cpu.svg.js [39m[1m[2m 0.67 kB[22m[1m[22m[2m │ gzip: 0.38 kB[22m[2m │ map: 0.87 kB[22m
|
|
@@ -552,6 +553,7 @@ computing gzip size...
|
|
|
552
553
|
[2mdist/[22m[36mlib/ui/uikit/dist/components/contextMenu/Menu.vue2.js [39m[1m[2m 0.74 kB[22m[1m[22m[2m │ gzip: 0.46 kB[22m[2m │ map: 2.11 kB[22m
|
|
553
554
|
[2mdist/[22m[36mlib/ui/uikit/dist/assets/icons/icon-assets-min/24_graph.svg.js [39m[1m[2m 0.74 kB[22m[1m[22m[2m │ gzip: 0.39 kB[22m[2m │ map: 0.97 kB[22m
|
|
554
555
|
[2mdist/[22m[36mlib/ui/uikit/dist/assets/icons/icon-assets-min/24_bar-trend.svg.js [39m[1m[2m 0.75 kB[22m[1m[22m[2m │ gzip: 0.40 kB[22m[2m │ map: 1.00 kB[22m
|
|
556
|
+
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlDropdown/useGroupBy.js [39m[1m[2m 0.75 kB[22m[1m[22m[2m │ gzip: 0.41 kB[22m[2m │ map: 2.49 kB[22m
|
|
555
557
|
[2mdist/[22m[36mlib/ui/uikit/dist/assets/icons/icon-assets-min/24_delete-bin.svg.js [39m[1m[2m 0.75 kB[22m[1m[22m[2m │ gzip: 0.39 kB[22m[2m │ map: 1.03 kB[22m
|
|
556
558
|
[2mdist/[22m[36mnode_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/diff.js [39m[1m[2m 0.75 kB[22m[1m[22m[2m │ gzip: 0.39 kB[22m[2m │ map: 2.46 kB[22m
|
|
557
559
|
[2mdist/[22m[36mlib/ui/uikit/dist/assets/icons/icon-assets-min/24_help-outline.svg.js [39m[1m[2m 0.75 kB[22m[1m[22m[2m │ gzip: 0.48 kB[22m[2m │ map: 0.97 kB[22m
|
|
@@ -598,6 +600,7 @@ computing gzip size...
|
|
|
598
600
|
[2mdist/[22m[36mlib/ui/uikit/dist/layout/PlGrid/PlGrid.vue.js [39m[1m[2m 0.92 kB[22m[1m[22m[2m │ gzip: 0.56 kB[22m[2m │ map: 0.84 kB[22m
|
|
599
601
|
[2mdist/[22m[36mlib/ui/uikit/dist/utils/useLabelNotch.js [39m[1m[2m 0.93 kB[22m[1m[22m[2m │ gzip: 0.51 kB[22m[2m │ map: 2.38 kB[22m
|
|
600
602
|
[2mdist/[22m[36mlib/ui/uikit/dist/assets/icons/icon-assets-min/24_view-show.svg.js [39m[1m[2m 0.93 kB[22m[1m[22m[2m │ gzip: 0.55 kB[22m[2m │ map: 1.14 kB[22m
|
|
603
|
+
[2mdist/[22m[36mlib/ui/uikit/dist/utils/TextLabel.vue2.js [39m[1m[2m 0.93 kB[22m[1m[22m[2m │ gzip: 0.53 kB[22m[2m │ map: 0.11 kB[22m
|
|
601
604
|
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlChartHistogram/PlChartHistogram.vue3.js [39m[1m[2m 0.93 kB[22m[1m[22m[2m │ gzip: 0.56 kB[22m[2m │ map: 0.12 kB[22m
|
|
602
605
|
[2mdist/[22m[36mlib/ui/uikit/dist/assets/icons/icon-assets-min/24_theme-dark.svg.js [39m[1m[2m 0.94 kB[22m[1m[22m[2m │ gzip: 0.48 kB[22m[2m │ map: 1.15 kB[22m
|
|
603
606
|
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlIcon16/PlIcon16.vue2.js [39m[1m[2m 0.95 kB[22m[1m[22m[2m │ gzip: 0.51 kB[22m[2m │ map: 1.59 kB[22m
|
|
@@ -605,8 +608,8 @@ computing gzip size...
|
|
|
605
608
|
[2mdist/[22m[36mlib/ui/uikit/dist/assets/icons/icon-assets-min/24_dendrogram-X-line.svg.js [39m[1m[2m 0.95 kB[22m[1m[22m[2m │ gzip: 0.39 kB[22m[2m │ map: 1.27 kB[22m
|
|
606
609
|
[2mdist/[22m[36mlib/ui/uikit/dist/node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/bisector.js [39m[1m[2m 0.96 kB[22m[1m[22m[2m │ gzip: 0.40 kB[22m[2m │ map: 3.15 kB[22m
|
|
607
610
|
[2mdist/[22m[36mlib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/attrTween.js [39m[1m[2m 0.97 kB[22m[1m[22m[2m │ gzip: 0.42 kB[22m[2m │ map: 2.60 kB[22m
|
|
608
|
-
[2mdist/[22m[36mlib/ui/uikit/dist/assets/icons/icon-assets-min/24_lasso.svg.js [39m[1m[2m 0.97 kB[22m[1m[22m[2m │ gzip: 0.57 kB[22m[2m │ map: 1.18 kB[22m
|
|
609
611
|
[2mdist/[22m[36mlib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/selection/transition.js [39m[1m[2m 0.97 kB[22m[1m[22m[2m │ gzip: 0.53 kB[22m[2m │ map: 2.34 kB[22m
|
|
612
|
+
[2mdist/[22m[36mlib/ui/uikit/dist/assets/icons/icon-assets-min/24_lasso.svg.js [39m[1m[2m 0.97 kB[22m[1m[22m[2m │ gzip: 0.57 kB[22m[2m │ map: 1.18 kB[22m
|
|
610
613
|
[2mdist/[22m[36mlib/ui/uikit/dist/layout/PlRow/PlRow.vue.js [39m[1m[2m 0.98 kB[22m[1m[22m[2m │ gzip: 0.57 kB[22m[2m │ map: 0.64 kB[22m
|
|
611
614
|
[2mdist/[22m[36mlib/ui/uikit/dist/composition/useTheme.js [39m[1m[2m 0.98 kB[22m[1m[22m[2m │ gzip: 0.50 kB[22m[2m │ map: 2.43 kB[22m
|
|
612
615
|
[2mdist/[22m[36mcomponents/ValueOrErrorsComponent.vue.js [39m[1m[2m 0.98 kB[22m[1m[22m[2m │ gzip: 0.50 kB[22m[2m │ map: 1.34 kB[22m
|
|
@@ -714,14 +717,14 @@ computing gzip size...
|
|
|
714
717
|
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlRadio/PlRadio.vue3.js [39m[1m[2m 1.56 kB[22m[1m[22m[2m │ gzip: 0.76 kB[22m[2m │ map: 0.11 kB[22m
|
|
715
718
|
[2mdist/[22m[36mlib/ui/uikit/dist/components/contextMenu/Menu.vue.js [39m[1m[2m 1.58 kB[22m[1m[22m[2m │ gzip: 0.77 kB[22m[2m │ map: 0.11 kB[22m
|
|
716
719
|
[2mdist/[22m[36mcomponents/PlAgCsvExporter/export-csv.js [39m[1m[2m 1.60 kB[22m[1m[22m[2m │ gzip: 0.73 kB[22m[2m │ map: 3.74 kB[22m
|
|
717
|
-
[2mdist/[22m[36mAgGridVue/createAgGridColDef.js [39m[1m[2m 1.61 kB[22m[1m[22m[2m │ gzip: 0.72 kB[22m[2m │ map: 9.
|
|
720
|
+
[2mdist/[22m[36mAgGridVue/createAgGridColDef.js [39m[1m[2m 1.61 kB[22m[1m[22m[2m │ gzip: 0.72 kB[22m[2m │ map: 9.40 kB[22m
|
|
718
721
|
[2mdist/[22m[36mlib/ui/uikit/dist/node_modules/.pnpm/@vueuse_integrations@13.3.0_axios@1.8.1_focus-trap@7.6.0_sortablejs@1.15.6_vue@3.5.13_typescript@5.6.3_/node_modules/@vueuse/integrations/useSortable.js [39m[1m[2m 1.61 kB[22m[1m[22m[2m │ gzip: 0.80 kB[22m[2m │ map: 4.03 kB[22m
|
|
719
722
|
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlTabs/PlTabs.vue.js [39m[1m[2m 1.61 kB[22m[1m[22m[2m │ gzip: 0.80 kB[22m[2m │ map: 2.14 kB[22m
|
|
720
|
-
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlDropdownRef/PlDropdownRef.vue.js [39m[1m[2m 1.61 kB[22m[1m[22m[2m │ gzip: 0.73 kB[22m[2m │ map: 3.40 kB[22m
|
|
721
723
|
[2mdist/[22m[36mlib/ui/uikit/dist/node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/transform/index.js [39m[1m[2m 1.62 kB[22m[1m[22m[2m │ gzip: 0.65 kB[22m[2m │ map: 4.71 kB[22m
|
|
722
724
|
[2mdist/[22m[36mlib/ui/uikit/dist/node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/on.js [39m[1m[2m 1.63 kB[22m[1m[22m[2m │ gzip: 0.68 kB[22m[2m │ map: 4.38 kB[22m
|
|
723
725
|
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlFileDialog/Shortcuts.vue2.js [39m[1m[2m 1.63 kB[22m[1m[22m[2m │ gzip: 0.60 kB[22m[2m │ map: 0.14 kB[22m
|
|
724
726
|
[2mdist/[22m[36mplugins/Monetization/RunStatus.vue3.js [39m[1m[2m 1.63 kB[22m[1m[22m[2m │ gzip: 0.77 kB[22m[2m │ map: 0.11 kB[22m
|
|
727
|
+
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlDropdownRef/PlDropdownRef.vue.js [39m[1m[2m 1.64 kB[22m[1m[22m[2m │ gzip: 0.74 kB[22m[2m │ map: 3.45 kB[22m
|
|
725
728
|
[2mdist/[22m[36mcomponents/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue3.js [39m[1m[2m 1.64 kB[22m[1m[22m[2m │ gzip: 0.78 kB[22m[2m │ map: 0.12 kB[22m
|
|
726
729
|
[2mdist/[22m[36maggrid.js [39m[1m[2m 1.66 kB[22m[1m[22m[2m │ gzip: 0.79 kB[22m[2m │ map: 3.09 kB[22m
|
|
727
730
|
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlSvg/registry.js [39m[1m[2m 1.66 kB[22m[1m[22m[2m │ gzip: 0.86 kB[22m[2m │ map: 4.41 kB[22m
|
|
@@ -758,7 +761,7 @@ computing gzip size...
|
|
|
758
761
|
[2mdist/[22m[36mlib/ui/uikit/dist/components/InputRange.vue.js [39m[1m[2m 2.24 kB[22m[1m[22m[2m │ gzip: 0.91 kB[22m[2m │ map: 3.75 kB[22m
|
|
759
762
|
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlLoaderCircular/PlLoaderCircular.vue.js [39m[1m[2m 2.25 kB[22m[1m[22m[2m │ gzip: 0.95 kB[22m[2m │ map: 0.14 kB[22m
|
|
760
763
|
[2mdist/[22m[36mcomponents/PlAgTextAndButtonCell/PlAgTextAndButtonCell.vue.js [39m[1m[2m 2.26 kB[22m[1m[22m[2m │ gzip: 1.06 kB[22m[2m │ map: 2.83 kB[22m
|
|
761
|
-
[2mdist/[22m[36mlib/ui/uikit/dist/helpers/utils.js [39m[1m[2m 2.
|
|
764
|
+
[2mdist/[22m[36mlib/ui/uikit/dist/helpers/utils.js [39m[1m[2m 2.28 kB[22m[1m[22m[2m │ gzip: 0.89 kB[22m[2m │ map: 6.63 kB[22m
|
|
762
765
|
[2mdist/[22m[36mplugins/Monetization/useInfo.js [39m[1m[2m 2.29 kB[22m[1m[22m[2m │ gzip: 0.87 kB[22m[2m │ map: 4.32 kB[22m
|
|
763
766
|
[2mdist/[22m[36mlib/ui/uikit/dist/components/Scrollable.vue.js [39m[1m[2m 2.30 kB[22m[1m[22m[2m │ gzip: 0.88 kB[22m[2m │ map: 3.54 kB[22m
|
|
764
767
|
[2mdist/[22m[36mlib/ui/uikit/dist/node_modules/.pnpm/@vueuse_core@13.3.0_vue@3.5.13_typescript@5.6.3_/node_modules/@vueuse/core/index.js [39m[1m[2m 2.31 kB[22m[1m[22m[2m │ gzip: 1.02 kB[22m[2m │ map: 248.40 kB[22m
|
|
@@ -768,9 +771,9 @@ computing gzip size...
|
|
|
768
771
|
[2mdist/[22m[36mlib/util/helpers/dist/index.js [39m[1m[2m 2.40 kB[22m[1m[22m[2m │ gzip: 1.01 kB[22m[2m │ map: 20.17 kB[22m
|
|
769
772
|
[2mdist/[22m[36mlib/ui/uikit/dist/colors/gradient.js [39m[1m[2m 2.44 kB[22m[1m[22m[2m │ gzip: 0.98 kB[22m[2m │ map: 6.48 kB[22m
|
|
770
773
|
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlTabs/pl-tabs.module.scss.js [39m[1m[2m 2.49 kB[22m[1m[22m[2m │ gzip: 0.90 kB[22m[2m │ map: 0.12 kB[22m
|
|
771
|
-
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlAccordion/PlAccordionSection.vue2.js [39m[1m[2m 2.51 kB[22m[1m[22m[2m │ gzip: 1.13 kB[22m[2m │ map: 2.76 kB[22m
|
|
772
774
|
[2mdist/[22m[36mlib/ui/uikit/dist/node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/continuous.js [39m[1m[2m 2.53 kB[22m[1m[22m[2m │ gzip: 0.94 kB[22m[2m │ map: 7.07 kB[22m
|
|
773
775
|
[2mdist/[22m[36mplugins/Monetization/LimitCard.vue3.js [39m[1m[2m 2.55 kB[22m[1m[22m[2m │ gzip: 0.92 kB[22m[2m │ map: 0.11 kB[22m
|
|
776
|
+
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlAccordion/PlAccordionSection.vue2.js [39m[1m[2m 2.57 kB[22m[1m[22m[2m │ gzip: 1.15 kB[22m[2m │ map: 2.90 kB[22m
|
|
774
777
|
[2mdist/[22m[36mnode_modules/.pnpm/@vueuse_shared@13.3.0_vue@3.5.13_typescript@5.5.4_/node_modules/@vueuse/shared/index.js [39m[1m[2m 2.57 kB[22m[1m[22m[2m │ gzip: 1.13 kB[22m[2m │ map: 50.11 kB[22m
|
|
775
778
|
[2mdist/[22m[36mplugins/Monetization/LimitCard.vue2.js [39m[1m[2m 2.61 kB[22m[1m[22m[2m │ gzip: 0.88 kB[22m[2m │ map: 4.83 kB[22m
|
|
776
779
|
[2mdist/[22m[36mlib/ui/uikit/dist/components/DataTable/TdCell.vue.js [39m[1m[2m 2.61 kB[22m[1m[22m[2m │ gzip: 1.04 kB[22m[2m │ map: 4.63 kB[22m
|
|
@@ -782,6 +785,7 @@ computing gzip size...
|
|
|
782
785
|
[2mdist/[22m[36mlib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/schedule.js [39m[1m[2m 2.74 kB[22m[1m[22m[2m │ gzip: 1.07 kB[22m[2m │ map: 8.14 kB[22m
|
|
783
786
|
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlEditableTitle/PlEditableTitle.vue.js [39m[1m[2m 2.75 kB[22m[1m[22m[2m │ gzip: 1.18 kB[22m[2m │ map: 3.19 kB[22m
|
|
784
787
|
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlCheckboxGroup/PlCheckboxGroup.vue.js [39m[1m[2m 2.80 kB[22m[1m[22m[2m │ gzip: 1.25 kB[22m[2m │ map: 2.65 kB[22m
|
|
788
|
+
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlDropdown/OptionList.vue.js [39m[1m[2m 2.92 kB[22m[1m[22m[2m │ gzip: 1.09 kB[22m[2m │ map: 3.07 kB[22m
|
|
785
789
|
[2mdist/[22m[36mcomposition/fileContent.js [39m[1m[2m 2.92 kB[22m[1m[22m[2m │ gzip: 1.06 kB[22m[2m │ map: 8.69 kB[22m
|
|
786
790
|
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlChartHistogram/histogram.js [39m[1m[2m 2.98 kB[22m[1m[22m[2m │ gzip: 0.99 kB[22m[2m │ map: 7.83 kB[22m
|
|
787
791
|
[2mdist/[22m[36mcomponents/PlAgDataTable/sources/row-number.js [39m[1m[2m 3.10 kB[22m[1m[22m[2m │ gzip: 1.34 kB[22m[2m │ map: 8.35 kB[22m
|
|
@@ -853,9 +857,9 @@ computing gzip size...
|
|
|
853
857
|
[2mdist/[22m[36mlib/ui/uikit/dist/demo-site-data/all-css-variables.js [39m[1m[2m 11.00 kB[22m[1m[22m[2m │ gzip: 1.76 kB[22m[2m │ map: 18.24 kB[22m
|
|
854
858
|
[2mdist/[22m[36mcomponents/PlTableFilters/PlTableFilters.vue.js [39m[1m[2m 13.75 kB[22m[1m[22m[2m │ gzip: 4.06 kB[22m[2m │ map: 18.77 kB[22m
|
|
855
859
|
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlDropdownLine/PlDropdownLine.vue.js [39m[1m[2m 14.70 kB[22m[1m[22m[2m │ gzip: 3.91 kB[22m[2m │ map: 12.75 kB[22m
|
|
856
|
-
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlDropdown/PlDropdown.vue.js [39m[1m[2m 16.
|
|
860
|
+
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlDropdown/PlDropdown.vue.js [39m[1m[2m 16.32 kB[22m[1m[22m[2m │ gzip: 4.79 kB[22m[2m │ map: 14.65 kB[22m
|
|
857
861
|
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlDropdownLegacy/PlDropdownLegacy.vue.js [39m[1m[2m 17.39 kB[22m[1m[22m[2m │ gzip: 4.84 kB[22m[2m │ map: 14.46 kB[22m
|
|
858
|
-
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlAutocomplete/PlAutocomplete.vue.js [39m[1m[2m 17.76 kB[22m[1m[22m[2m │ gzip: 5.14 kB[22m[2m │ map: 17.
|
|
862
|
+
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlAutocomplete/PlAutocomplete.vue.js [39m[1m[2m 17.76 kB[22m[1m[22m[2m │ gzip: 5.14 kB[22m[2m │ map: 17.09 kB[22m
|
|
859
863
|
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlDropdownMulti/PlDropdownMulti.vue.js [39m[1m[2m 20.23 kB[22m[1m[22m[2m │ gzip: 5.27 kB[22m[2m │ map: 12.97 kB[22m
|
|
860
864
|
[2mdist/[22m[36mcomponents/PlAgDataTable/PlAgOverlayNoRows.vue3.js [39m[1m[2m 35.48 kB[22m[1m[22m[2m │ gzip: 26.70 kB[22m[2m │ map: 0.11 kB[22m
|
|
861
865
|
[2mdist/[22m[36mnode_modules/.pnpm/lru-cache@11.1.0/node_modules/lru-cache/dist/esm/index.js [39m[1m[2m 37.21 kB[22m[1m[22m[2m │ gzip: 9.81 kB[22m[2m │ map: 127.30 kB[22m
|
|
@@ -874,6 +878,6 @@ computing gzip size...
|
|
|
874
878
|
[2mdist/[22m[36mnode_modules/.pnpm/zod@3.23.8/node_modules/zod/lib/index.js [39m[1m[2m 83.81 kB[22m[1m[22m[2m │ gzip: 17.26 kB[22m[2m │ map: 241.15 kB[22m
|
|
875
879
|
[2mdist/[22m[36mnode_modules/.pnpm/lodash@4.17.21/node_modules/lodash/lodash.js [39m[1m[2m128.45 kB[22m[1m[22m[2m │ gzip: 31.07 kB[22m[2m │ map: 723.83 kB[22m
|
|
876
880
|
[2mdist/[22m[36mlib/ui/uikit/dist/index.js [39m[1m[2m497.54 kB[22m[1m[22m[2m │ gzip: 191.69 kB[22m[2m │ map: 0.18 kB[22m
|
|
877
|
-
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlSlideModal/PlSlideModal.vue.js [39m[1m[33m601.
|
|
878
|
-
[2mdist/[22m[36mlib/ui/uikit/dist/components/DataTable/TableComponent.vue.js [39m[1m[33m602.
|
|
879
|
-
[32m✓ built in
|
|
881
|
+
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlSlideModal/PlSlideModal.vue.js [39m[1m[33m601.41 kB[39m[22m[2m │ gzip: 204.41 kB[22m[2m │ map: 0.23 kB[22m
|
|
882
|
+
[2mdist/[22m[36mlib/ui/uikit/dist/components/DataTable/TableComponent.vue.js [39m[1m[33m602.75 kB[39m[22m[2m │ gzip: 205.00 kB[22m[2m │ map: 0.27 kB[22m
|
|
883
|
+
[32m✓ built in 10.13s[39m
|
|
@@ -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
|
-
> @platforma-sdk/ui-vue@1.37.
|
|
3
|
+
> @platforma-sdk/ui-vue@1.37.14 type-check /home/runner/_work/platforma/platforma/sdk/ui-vue
|
|
4
4
|
> vue-tsc --noEmit --project ./tsconfig.json
|
|
5
5
|
|
package/CHANGELOG.md
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createAgGridColDef.d.ts","sourceRoot":"","sources":["../../src/AgGridVue/createAgGridColDef.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEtE,OAAO,KAAK,EAAE,cAAc,EAAuB,MAAM,uBAAuB,CAAC;AAEjF,OAAO,
|
|
1
|
+
{"version":3,"file":"createAgGridColDef.d.ts","sourceRoot":"","sources":["../../src/AgGridVue/createAgGridColDef.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEtE,OAAO,KAAK,EAAE,cAAc,EAAuB,MAAM,uBAAuB,CAAC;AAEjF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAIhF;;GAEG;AACH,KAAK,cAAc,GAAG,aAAa,GAAG,SAAS,GAAG,MAAM,CAAC;AAWzD;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B;;;;;OAKG;IACH,MAAM,EAAE,cAAc,CAAC;IACvB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,SAAS,CAAC;AAEd;;;;;;;;;;GAUG;AACH,MAAM,MAAM,sBAAsB,CAAC,KAAK,GAAG,GAAG,EAAE,MAAM,GAAG,GAAG,IAAI,CAC9D,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,KACzC,cAAc,CAAC;AAEpB;;;;;;;;;GASG;AACH,MAAM,WAAW,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAE,SAAQ,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC;IAChF,QAAQ,CAAC,EAAE,sBAAsB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACjD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,qBAAqB,CAAC,EAAE,yBAAyB,CAAC;IAClD,cAAc,CAAC,EAAE,IAAI,GAAG;QACtB;;WAEG;QACH,IAAI,CAAC,EAAE,cAAc,CAAC;QACtB;;WAEG;QACH,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB;;;;;;;;WAQG;QACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;QAClC;;;WAGG;QACH,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,IAAI,CAAC;KACjD,CAAC;CACH;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,SAAS,MAAM,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AA8D5H;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CA6BjH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createAgGridColDef.js","sources":["../../src/AgGridVue/createAgGridColDef.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { ColDef, ICellRendererParams } from 'ag-grid-enterprise';\nimport { PlAgCellProgress } from '../components/PlAgCellProgress';\nimport type { MaskIconName16, PlProgressCellProps } from '@milaboratories/uikit';\nimport { tapIf } from '@milaboratories/helpers';\nimport { PlAgColumnHeader
|
|
1
|
+
{"version":3,"file":"createAgGridColDef.js","sources":["../../src/AgGridVue/createAgGridColDef.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { ColDef, ICellRendererParams } from 'ag-grid-enterprise';\nimport { PlAgCellProgress } from '../components/PlAgCellProgress';\nimport type { MaskIconName16, PlProgressCellProps } from '@milaboratories/uikit';\nimport { tapIf } from '@milaboratories/helpers';\nimport type { PlAgHeaderComponentParams } from '../components/PlAgColumnHeader';\nimport { PlAgColumnHeader } from '../components/PlAgColumnHeader';\nimport { PlAgTextAndButtonCell } from '../components/PlAgTextAndButtonCell';\n\n/**\n * Represents the available progress statuses for a cell.\n */\ntype ProgressStatus = 'not_started' | 'running' | 'done';\n\n/**\n * Human-readable labels for each {@link ProgressStatus}.\n */\nconst progressStatusLabels: Record<ProgressStatus, string> = {\n not_started: 'Not Started',\n running: 'Running',\n done: 'Done',\n};\n\n/**\n * Defines the configuration for rendering a progress overlay in a grid cell.\n *\n * When provided, a progress overlay will be rendered. If the value is\n * `undefined`, no progress overlay is shown.\n */\nexport type ColDefProgress = {\n /**\n * The progress status which influences default text and styling:\n * - `'not_started'`: Typically renders gray text without a progress bar.\n * - `'running'`: Indicates an active progress state.\n * - `'done'`: Implies completion (commonly rendered as 100%).\n */\n status: ProgressStatus;\n /**\n * A number (or numeric string) between 0 and 100 that indicates progress.\n * If omitted or invalid, it implies an infinite or indeterminate progress state\n */\n percent?: number | string;\n /**\n * The main label displayed on the left side of the cell.\n */\n text?: string;\n /**\n * Additional text, often used to display the percentage by default.\n */\n suffix?: string;\n /**\n * If provided, this message takes precedence over `text` to indicate an error.\n */\n error?: string;\n} | undefined;\n\n/**\n * Callback function type to dynamically generate a {@link ColDefProgress} configuration\n * for a cell based on its rendering parameters.\n *\n * @typeParam TData - The type of the row data.\n * @typeParam TValue - The type of the cell value.\n *\n * @param cellData - The parameters provided by AG Grid's cell renderer.\n * @returns A {@link ColDefProgress} object to configure the progress overlay,\n * or `undefined` if no progress overlay should be rendered.\n */\nexport type ColDefProgressCallback<TData = any, TValue = any> = (\n value: TValue,\n cellData: ICellRendererParams<TData, TValue>\n) => ColDefProgress;\n\n/**\n * Extended AG Grid column definition that supports additional properties for\n * progress overlays and layout customization.\n *\n * @typeParam TData - The type of the row data.\n * @typeParam TValue - The type of the cell value.\n *\n * @property progress - An optional callback to provide progress overlay configuration.\n * @property noGutters - If `true`, removes padding from the cell.\n */\nexport interface ColDefExtended<TData, TValue = any> extends ColDef<TData, TValue> {\n progress?: ColDefProgressCallback<TData, TValue>;\n noGutters?: boolean;\n headerComponentParams?: PlAgHeaderComponentParams;\n textWithButton?: true | {\n /**\n * Button icon MaskIconName16\n */\n icon?: MaskIconName16;\n /**\n * Button label\n */\n btnLabel?: string;\n /**\n * If invokeRowsOnDoubleClick = true, clicking a button inside the row\n * triggers the doubleClick event for the entire row. In this case,\n * the handler passed to the component is not called, even if it is defined.\n *\n * If invokeRowsOnDoubleClick = false, the doubleClick event for the row\n * is not triggered, but the provided handler will be called, receiving\n * the ICellRendererParams as an argument.\n */\n invokeRowsOnDoubleClick?: boolean;\n /**\n * plHandler parameter is a click handler that is invoked when\n * the invokeRowsOnDoubleClick property is set to false.\n */\n onClick?: (params: ICellRendererParams) => void;\n };\n}\n\n/**\n * Utility type to infer the type of a specific property key from a {@link ColDefExtended}. Maybe not useful\n */\nexport type InferColDefKey<TData, TValue, K extends keyof ColDefExtended<TData, TValue>> = ColDefExtended<TData, TValue>[K];\n\n/**\n * Returns a style object that removes horizontal and vertical padding from an AG Grid cell.\n */\nfunction noGuttersStyle() {\n return {\n '--ag-cell-horizontal-padding': '0px',\n '--ag-cell-vertical-padding': '0px',\n };\n}\n\n/**\n * Creates the configuration object for a progress cell renderer component.\n *\n * @param params - The properties for the progress cell component, conforming to {@link PlProgressCellProps}.\n * @returns An object containing the progress component and its parameters.\n */\nfunction createProgressComponent(params: PlProgressCellProps) {\n return {\n component: PlAgCellProgress,\n params,\n };\n}\n\n/**\n * Enhances the given column definition to support a progress overlay if a progress callback is provided.\n *\n * This function modifies the column definition by:\n * - Merging no-gutters styles into the cell style.\n * - Overriding the `cellRendererSelector` to return a progress component when a valid progress configuration is present.\n *\n * @typeParam TData - The type of the row data.\n * @param def - The extended column definition to be augmented.\n */\nfunction handleProgress<TData>(def: ColDefExtended<TData>) {\n if (def.progress) {\n const progress = def.progress;\n\n const cellRendererSelector = def.cellRendererSelector;\n\n // Ensure no padding in the cell when a progress overlay is rendered.\n def.cellStyle = Object.assign({}, def.cellStyle ?? {}, noGuttersStyle());\n\n def.cellRendererSelector = (cellData) => {\n const pt = progress(cellData.value, cellData);\n\n if (!pt) {\n return cellRendererSelector?.(cellData);\n }\n\n return createProgressComponent({\n progress: tapIf(Number(pt.percent), (n) => Number.isFinite(n) ? (n < 0 ? 0 : n) : undefined),\n progressString: pt.suffix ?? (pt.status === 'running' ? `${pt.percent ?? 0}%` : ''),\n step: pt.text ?? progressStatusLabels[pt.status],\n stage: pt.status,\n error: pt.error,\n });\n };\n }\n}\n\n/**\n * Creates an AG Grid column definition with extended features such as progress overlays and gutter removal.\n *\n * This function processes an extended column definition by:\n * - Applying progress rendering logic via {@link handleProgress} if a progress callback is provided.\n * - Merging no-gutters styles if the `noGutters` flag is set.\n * - Removing the internal properties (`progress` and `noGutters`) from the final definition.\n *\n * @typeParam TData - The type of the row data.\n * @typeParam TValue - The type of the cell value.\n * @param def - The extended column definition containing custom properties.\n * @returns The processed column definition ready for use with AG Grid.\n */\nexport function createAgGridColDef<TData, TValue = any>(def: ColDefExtended<TData, TValue>): ColDef<TData, TValue> {\n handleProgress(def);\n\n if (def.noGutters) {\n def.cellStyle = Object.assign({}, def.cellStyle ?? {}, noGuttersStyle());\n }\n\n if (def.headerComponentParams) {\n def.headerComponent = PlAgColumnHeader;\n }\n\n if (def.textWithButton) {\n def.cellRenderer = PlAgTextAndButtonCell;\n if (typeof def.textWithButton !== 'boolean') {\n def.cellRendererParams = def.textWithButton;\n } else {\n def.cellRendererParams = {\n invokeRowsOnDoubleClick: true,\n };\n }\n }\n\n delete def.textWithButton;\n\n delete def.progress;\n\n delete def.noGutters;\n\n return def;\n}\n"],"names":["progressStatusLabels","noGuttersStyle","createProgressComponent","params","PlAgCellProgress","handleProgress","def","progress","cellRendererSelector","cellData","pt","tapIf","n","createAgGridColDef","PlAgColumnHeader","PlAgTextAndButtonCell"],"mappings":";;;;AAiBA,MAAMA,IAAuD;AAAA,EAC3D,aAAa;AAAA,EACb,SAAS;AAAA,EACT,MAAM;AACR;AAoGA,SAASC,IAAiB;AACjB,SAAA;AAAA,IACL,gCAAgC;AAAA,IAChC,8BAA8B;AAAA,EAChC;AACF;AAQA,SAASC,EAAwBC,GAA6B;AACrD,SAAA;AAAA,IACL,WAAWC;AAAAA,IACX,QAAAD;AAAA,EACF;AACF;AAYA,SAASE,EAAsBC,GAA4B;AACzD,MAAIA,EAAI,UAAU;AAChB,UAAMC,IAAWD,EAAI,UAEfE,IAAuBF,EAAI;AAG7B,IAAAA,EAAA,YAAY,OAAO,OAAO,CAAA,GAAIA,EAAI,aAAa,IAAIL,GAAgB,GAEnEK,EAAA,uBAAuB,CAACG,MAAa;AACvC,YAAMC,IAAKH,EAASE,EAAS,OAAOA,CAAQ;AAE5C,aAAKC,IAIER,EAAwB;AAAA,QAC7B,UAAUS,EAAM,OAAOD,EAAG,OAAO,GAAG,CAACE,MAAM,OAAO,SAASA,CAAC,IAAKA,IAAI,IAAI,IAAIA,IAAK,MAAS;AAAA,QAC3F,gBAAgBF,EAAG,WAAWA,EAAG,WAAW,YAAY,GAAGA,EAAG,WAAW,CAAC,MAAM;AAAA,QAChF,MAAMA,EAAG,QAAQV,EAAqBU,EAAG,MAAM;AAAA,QAC/C,OAAOA,EAAG;AAAA,QACV,OAAOA,EAAG;AAAA,MAAA,CACX,IATQF,KAAA,gBAAAA,EAAuBC;AAAA,IAUlC;AAAA,EAAA;AAEJ;AAeO,SAASI,EAAwCP,GAA2D;AACjH,SAAAD,EAAeC,CAAG,GAEdA,EAAI,cACFA,EAAA,YAAY,OAAO,OAAO,CAAA,GAAIA,EAAI,aAAa,IAAIL,GAAgB,IAGrEK,EAAI,0BACNA,EAAI,kBAAkBQ,IAGpBR,EAAI,mBACNA,EAAI,eAAeS,GACf,OAAOT,EAAI,kBAAmB,YAChCA,EAAI,qBAAqBA,EAAI,iBAE7BA,EAAI,qBAAqB;AAAA,IACvB,yBAAyB;AAAA,EAC3B,IAIJ,OAAOA,EAAI,gBAEX,OAAOA,EAAI,UAEX,OAAOA,EAAI,WAEJA;AACT;"}
|
|
@@ -46,7 +46,7 @@ import "../../colors/gradient.js";
|
|
|
46
46
|
.pl-text-field{--pl-text-field-text-color: var(--txt-01);--contour-color: var(--txt-01);--label-color: var(--txt-01);--contour-border-width: 1px;--contour-box-shadow: none;--label-offset-left-x: 8px;--label-offset-right-x: 8px;--prefix-color: var(--color-placeholder);--show-clearable: none;width:100%;min-width:160px;min-height:var(--control-height);position:relative;border-radius:var(--border-radius-control);display:flex;flex-direction:row;align-items:center;outline:none}.pl-text-field__envelope{font-family:var(--font-family-base)}.pl-text-field input{font-family:var(--font-family-base);font-weight:500;min-height:calc(var(--control-height) - 2px);line-height:20px;width:100%;padding:0 12px;border:none;font-size:inherit;background-color:transparent;color:var(--pl-text-field-text-color);caret-color:var(--border-color-focus);cursor:inherit}.pl-text-field input:focus{outline:none}.pl-text-field input::placeholder{color:var(--color-placeholder)}.pl-text-field label{display:flex;align-items:center;gap:4px;position:absolute;top:0;transform:translateY(-60%);left:var(--label-offset-left-x);padding:0 4px;max-width:calc(100% - 16px);overflow:hidden;white-space:pre;text-overflow:ellipsis;cursor:inherit;color:var(--label-color);font-size:12px;font-weight:500;border-bottom-right-radius:4px;border-bottom-left-radius:4px;background:var(--bg-elevated-01)}.pl-text-field label>span{overflow:hidden;white-space:pre;text-overflow:ellipsis}.pl-text-field__contour{position:absolute;top:0;left:0;right:0;bottom:0;border-radius:var(--border-radius-control);border-width:var(--contour-border-width);border-color:var(--contour-color);border-style:solid;box-shadow:var(--contour-box-shadow);z-index:0;pointer-events:none}.pl-text-field__prefix{padding-left:12px;white-space:nowrap;margin-right:-12px;color:var(--prefix-color)}.pl-text-field__append{padding-right:12px;display:flex;flex-direction:row;align-items:center;gap:4px;cursor:text}.pl-text-field__append .icon-16{cursor:pointer}.pl-text-field__append .mask-16{--icon-color: var(--control-mask-fill);cursor:pointer}.pl-text-field__clearable{display:var(--show-clearable)!important;--icon-color: var(--ic-02) !important}.pl-text-field__helper{font-size:12px;color:var(--txt-03);padding:2px 0 0;white-space:pre-wrap;text-overflow:ellipsis;font-weight:500;line-height:16px;margin-top:6px}.pl-text-field__error{font-size:12px;color:var(--txt-error);padding:2px 0 0;white-space:pre-wrap;text-overflow:ellipsis;font-weight:500;line-height:16px;margin-top:6px}.pl-text-field:hover{--contour-color: var(--control-hover-color);--show-clearable: inline-block}.pl-text-field:focus-within{--show-clearable: inline-block}.pl-text-field:focus-within:not(.error){--label-color: var(--txt-focus);--contour-color: var(--border-color-focus);--contour-border-width: 2px;--contour-box-shadow: 0 0 0 4px var(--border-color-focus-shadow)}.pl-text-field:focus-within.error{--contour-border-width: 2px;--contour-box-shadow: 0 0 0 4px var(--color-error-shadow)}.pl-text-field.dashed .pl-text-field__contour{border-style:dashed}.pl-text-field.nonEmpty{--prefix-color: var(--txt-01)}.pl-text-field.error{--contour-color: var(--txt-error);--label-color: var(--txt-error)}.pl-text-field.disabled{--contour-color: var(--color-dis-01);--label-color: var(--dis-01);--pl-text-field-text-color: var(--dis-01);--mask-icon-bg-color: var(--dis-01);cursor:not-allowed}
|
|
47
47
|
.SvgRequired{background-image:url(data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%225%22%20height%3D%2212%22%20viewBox%3D%220%200%205%2012%22%20fill%3D%22none%22%3E%3Cpath%20d%3D%22M1.51685%204.8L2.5%203.34159L3.47612%204.8L4.39607%204.12743L3.31461%202.7469L5%202.25133L4.64888%201.16106L3.00562%201.77699L3.06882%200H1.93118L1.99438%201.77699L0.351124%201.16106L0%202.25133L1.68539%202.7469L0.59691%204.12743L1.51685%204.8Z%22%20fill%3D%22%23F1222F%22%2F%3E%3C%2Fsvg%3E)}
|
|
48
48
|
.ui-text-area{--contour-color: var(--txt-01);--label-color: var(--txt-01);--contour-border-width: 1px;--contour-box-shadow: none;--label-offset-left-x: 8px;--label-offset-right-x: 8px;--prefix-color: var(--color-placeholder);width:100%;min-height:var(--control-height);position:relative;border-radius:var(--border-radius-control);display:flex;flex-direction:row;align-items:center;outline:none}.ui-text-area__envelope{font-family:var(--font-family-base)}.ui-text-area textarea{min-height:calc(var(--control-height) - 2px);width:100%;padding:10px 12px;border:none;font-size:inherit;background-color:transparent;color:var(--txt-01);caret-color:var(--border-color-focus);cursor:inherit;resize:none;--thumb-color: var(--ic-02);overflow-y:auto}.ui-text-area textarea::-webkit-scrollbar{width:var(--scrollbar-width, 6px);height:5px;background-color:transparent;display:block}.ui-text-area textarea::-webkit-scrollbar-thumb{background:var(--thumb-color);border-radius:5px}.ui-text-area textarea::-webkit-scrollbar-thumb:hover{--thumb-color: var(--border-color-focus)}.ui-text-area textarea:focus{outline:none}.ui-text-area textarea::placeholder{color:var(--color-placeholder)}.ui-text-area label{display:flex;align-items:center;gap:4px;position:absolute;top:0;transform:translateY(-60%);left:var(--label-offset-left-x);padding:0 4px;max-width:calc(100% - 16px);overflow:hidden;white-space:pre;text-overflow:ellipsis;cursor:inherit;color:var(--label-color);font-size:12px;font-weight:500;border-bottom-right-radius:4px;border-bottom-left-radius:4px;background:var(--bg-elevated-01)}.ui-text-area label>span{overflow:hidden;white-space:pre;text-overflow:ellipsis}.ui-text-area__contour{position:absolute;top:0;left:0;right:0;bottom:0;border-radius:var(--border-radius-control);border-width:var(--contour-border-width);border-color:var(--contour-color);border-style:solid;box-shadow:var(--contour-box-shadow);z-index:0;pointer-events:none}.ui-text-area__append{display:flex;flex-direction:row;align-items:center;gap:4px}.ui-text-area__helper{font-size:12px;color:var(--txt-03);padding:2px 0 0;white-space:pre-wrap;text-overflow:ellipsis;font-weight:500;line-height:16px;margin-top:6px}.ui-text-area__error{font-size:12px;color:var(--txt-error);padding:2px 0 0;white-space:pre-wrap;text-overflow:ellipsis;font-weight:500;line-height:16px;margin-top:6px}.ui-text-area:hover{--contour-color: var(--control-hover-color)}.ui-text-area:focus-within:not(.error){--label-color: var(--txt-focus);--contour-color: var(--border-color-focus);--contour-border-width: 2px;--contour-box-shadow: 0 0 0 4px var(--border-color-focus-shadow)}.ui-text-area:focus-within.error{--contour-border-width: 2px;--contour-box-shadow: 0 0 0 4px var(--color-error-shadow)}.ui-text-area.dashed .ui-text-area__contour{border-style:dashed}.ui-text-area.nonEmpty{--prefix-color: var(--txt-01)}.ui-text-area.error{--contour-color: var(--txt-error)}.ui-text-area.disabled{--contour-color: var(--color-dis-01);cursor:not-allowed;pointer-events:none}.ui-text-area.disabled *{color:var(--contour-color)}
|
|
49
|
-
.pl-dropdown__options{--option-hover-bg: var(--btn-sec-hover-grey);z-index:var(--z-dropdown-options);border:1px solid var(--border-color-div-grey);position:absolute;background-color:var(--pl-dropdown-options-bg);border-radius:6px;max-height:244px;box-shadow:0 4px 12px -2px #0f244d14,0 6px 24px -2px #0f244d14;--thumb-color: var(--ic-02);overflow-y:auto}.pl-dropdown__options::-webkit-scrollbar{width:var(--scrollbar-width, 6px);height:5px;background-color:transparent;display:block}.pl-dropdown__options::-webkit-scrollbar-thumb{background:var(--thumb-color);border-radius:5px}.pl-dropdown__options::-webkit-scrollbar-thumb:hover{--thumb-color: var(--border-color-focus)}.pl-dropdown__options .nothing-found{padding:0 10px;height:var(--control-height);line-height:var(--control-height);background-color:#fff;opacity:.5;font-style:italic}.pl-dropdown__options .option{position:relative;padding:0 30px 0 10px;height:var(--control-height);line-height:var(--control-height);cursor:pointer;-webkit-user-select:none;user-select:none}.pl-dropdown__options .option .checkmark{position:absolute;display:none;right:10px;top:50%;transform:translateY(-50%)}.pl-dropdown__options .option>span{display:block;overflow:hidden;white-space:nowrap;max-width:100%;text-overflow:ellipsis}.pl-dropdown__options .option.selected{background-color:var(--color-active-select)}.pl-dropdown__options .option.selected .checkmark{display:block}.pl-dropdown__options .option.active:not(.selected){background-color:var(--option-hover-bg)}.pl-dropdown__options .option:hover{background-color:var(--option-hover-bg)}.pl-dropdown{--contour-color: var(--txt-01);--contour-border-width: 1px;--label-offset-left-x: 8px;--label-offset-right-x: 8px;--label-color: var(--txt-01);position:relative;outline:none;min-height:var(--control-height);border-radius:6px;font-family:var(--font-family-base);font-size:var(--font-size-base);font-weight:var(--font-weigh-base)}.pl-dropdown__envelope{font-family:var(--control-font-family);min-width:160px}.pl-dropdown label{display:flex;align-items:center;gap:4px;position:absolute;top:0;transform:translateY(-60%);left:var(--label-offset-left-x);padding:0 4px;max-width:calc(100% - 16px);overflow:hidden;white-space:pre;text-overflow:ellipsis;cursor:inherit;color:var(--label-color);font-size:12px;font-weight:500;border-bottom-right-radius:4px;border-bottom-left-radius:4px;background:var(--bg-elevated-01)}.pl-dropdown label>span{overflow:hidden;white-space:pre;text-overflow:ellipsis}.pl-dropdown__container{position:absolute;top:0;left:0;right:0;border-radius:6px;min-height:var(--control-height);color:var(--txt-01)}.pl-dropdown__contour{border-radius:var(--border-radius-control);border:var(--contour-border-width) solid var(--contour-color);box-shadow:var(--contour-box-shadow);z-index:0;pointer-events:none}.pl-dropdown__field{position:relative;border-radius:6px;overflow:hidden;background:transparent;padding-left:11px;min-height:var(--control-height);line-height:var(--control-height);display:flex;flex-direction:row;align-items:center;cursor:pointer}.pl-dropdown__field .input-value{position:absolute;top:0;left:0;bottom:0;right:0;display:flex;flex-direction:row;align-items:center;padding:0 60px 0 11px;pointer-events:none;line-height:20px;color:var(--txt-01);overflow:hidden;white-space:pre;text-overflow:ellipsis;cursor:inherit}.pl-dropdown__field input{min-height:calc(var(--control-height) - 2px);line-height:20px;font-family:inherit;font-size:inherit;background-color:transparent;border:none;padding:0;width:calc(100% - 40px);color:var(--txt-01);caret-color:var(--border-color-focus)}.pl-dropdown__field input:focus{outline:none}.pl-dropdown__field input:placeholder-shown{text-overflow:ellipsis}.pl-dropdown__field input::placeholder{color:var(--color-placeholder)}.pl-dropdown__helper{font-size:12px;color:var(--txt-03);padding:2px 0 0;white-space:pre-wrap;text-overflow:ellipsis;font-weight:500;line-height:16px;margin-top:6px}.pl-dropdown__error{font-size:12px;color:var(--txt-error);padding:2px 0 0;white-space:pre-wrap;text-overflow:ellipsis;font-weight:500;line-height:16px;margin-top:6px}.pl-dropdown__controls{display:flex;flex-direction:row;align-items:center;gap:6px;margin-left:auto}.pl-dropdown__controls .mask-16,.pl-dropdown__controls .mask-24{--icon-color: var(--control-mask-fill);cursor:pointer}.pl-dropdown__controls .clear{--icon-color: var(--ic-02)}.pl-dropdown__controls .mask-loading{--icon-color: var(--ic-accent);animation:spin 2.5s linear infinite}.pl-dropdown__arrow-wrapper{display:flex;align-items:center;min-height:var(--control-height);padding-right:11px}.pl-dropdown .arrow-icon{cursor:pointer}.pl-dropdown .arrow-icon.arrow-icon-default{transition:transform .2s;background-color:var(--control-mask-fill);mask-image:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M2.46967%206.53033L3.53033%205.46967L8%209.93934L12.4697%205.46967L13.5303%206.53033L8%2012.0607L2.46967%206.53033Z'%20fill='%23110529'/%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M2.46967%206.53033L3.53033%205.46967L8%209.93934L12.4697%205.46967L13.5303%206.53033L8%2012.0607L2.46967%206.53033Z'%20fill='%23110529'/%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;mask-position:center;-webkit-mask-position:center;mask-size:16px;-webkit-mask-size:16px;width:16px;height:16px}.pl-dropdown.open,.pl-dropdown:focus-within{z-index:1;--label-color: var(--txt-focus)}.pl-dropdown.open .pl-dropdown__container{z-index:1000}.pl-dropdown.open .pl-dropdown__field{border-radius:6px 6px 0 0}.pl-dropdown.open .arrow-icon.arrow-icon-default{background-color:var(--control-mask-fill);transform:rotate(-180deg)}.pl-dropdown:hover{--contour-color: var(--control-hover-color)}.pl-dropdown:focus-within:not(.error){--label-color: var(--txt-focus);--contour-color: var(--border-color-focus);--contour-border-width: 2px;--contour-box-shadow: 0 0 0 4px var(--border-color-focus-shadow)}.pl-dropdown:focus-within.error{--contour-border-width: 2px;--contour-box-shadow: 0 0 0 4px var(--color-error-shadow)}.pl-dropdown.error{--contour-color: var(--txt-error);--label-color: var(--txt-error)}.pl-dropdown.disabled{--contour-color: var(--color-dis-01);--control-mask-fill: var(--color-dis-01);--label-color: var(--color-dis-01);cursor:not-allowed;pointer-events:none;-webkit-user-select:none;user-select:none}.pl-dropdown.disabled .input-value{color:var(--dis-01)}
|
|
49
|
+
.pl-dropdown__options{--option-hover-bg: var(--btn-sec-hover-grey);z-index:var(--z-dropdown-options);border:1px solid var(--border-color-div-grey);position:absolute;background-color:var(--pl-dropdown-options-bg);border-radius:6px;max-height:244px;box-shadow:0 4px 12px -2px #0f244d14,0 6px 24px -2px #0f244d14;--thumb-color: var(--ic-02);overflow-y:auto}.pl-dropdown__options::-webkit-scrollbar{width:var(--scrollbar-width, 6px);height:5px;background-color:transparent;display:block}.pl-dropdown__options::-webkit-scrollbar-thumb{background:var(--thumb-color);border-radius:5px}.pl-dropdown__options::-webkit-scrollbar-thumb:hover{--thumb-color: var(--border-color-focus)}.pl-dropdown__options .nothing-found{padding:0 10px;height:var(--control-height);line-height:var(--control-height);background-color:#fff;opacity:.5;font-style:italic}.pl-dropdown__options .group-container{padding:4px 0}.pl-dropdown__options .option{position:relative;padding:0 30px 0 10px;height:var(--control-height);line-height:var(--control-height);cursor:pointer;-webkit-user-select:none;user-select:none}.pl-dropdown__options .option .checkmark{position:absolute;display:none;right:10px;top:50%;transform:translateY(-50%)}.pl-dropdown__options .option>span{display:block;overflow:hidden;white-space:nowrap;max-width:100%;text-overflow:ellipsis}.pl-dropdown__options .option.selected{background-color:var(--color-active-select)}.pl-dropdown__options .option.selected .checkmark{display:block}.pl-dropdown__options .option.active:not(.selected){background-color:var(--option-hover-bg)}.pl-dropdown__options .option:hover{background-color:var(--option-hover-bg)}.pl-dropdown{--contour-color: var(--txt-01);--contour-border-width: 1px;--label-offset-left-x: 8px;--label-offset-right-x: 8px;--label-color: var(--txt-01);position:relative;outline:none;min-height:var(--control-height);border-radius:6px;font-family:var(--font-family-base);font-size:var(--font-size-base);font-weight:var(--font-weigh-base)}.pl-dropdown__envelope{font-family:var(--control-font-family);min-width:160px}.pl-dropdown label{display:flex;align-items:center;gap:4px;position:absolute;top:0;transform:translateY(-60%);left:var(--label-offset-left-x);padding:0 4px;max-width:calc(100% - 16px);overflow:hidden;white-space:pre;text-overflow:ellipsis;cursor:inherit;color:var(--label-color);font-size:12px;font-weight:500;border-bottom-right-radius:4px;border-bottom-left-radius:4px;background:var(--bg-elevated-01)}.pl-dropdown label>span{overflow:hidden;white-space:pre;text-overflow:ellipsis}.pl-dropdown__container{position:absolute;top:0;left:0;right:0;border-radius:6px;min-height:var(--control-height);color:var(--txt-01)}.pl-dropdown__contour{border-radius:var(--border-radius-control);border:var(--contour-border-width) solid var(--contour-color);box-shadow:var(--contour-box-shadow);z-index:0;pointer-events:none}.pl-dropdown__field{position:relative;border-radius:6px;overflow:hidden;background:transparent;padding-left:11px;min-height:var(--control-height);line-height:var(--control-height);display:flex;flex-direction:row;align-items:center;cursor:pointer}.pl-dropdown__field .input-value{position:absolute;top:0;left:0;bottom:0;right:0;display:flex;flex-direction:row;align-items:center;padding:0 60px 0 11px;pointer-events:none;line-height:20px;color:var(--txt-01);overflow:hidden;white-space:pre;text-overflow:ellipsis;cursor:inherit}.pl-dropdown__field input{min-height:calc(var(--control-height) - 2px);line-height:20px;font-family:inherit;font-size:inherit;background-color:transparent;border:none;padding:0;width:calc(100% - 40px);color:var(--txt-01);caret-color:var(--border-color-focus)}.pl-dropdown__field input:focus{outline:none}.pl-dropdown__field input:placeholder-shown{text-overflow:ellipsis}.pl-dropdown__field input::placeholder{color:var(--color-placeholder)}.pl-dropdown__helper{font-size:12px;color:var(--txt-03);padding:2px 0 0;white-space:pre-wrap;text-overflow:ellipsis;font-weight:500;line-height:16px;margin-top:6px}.pl-dropdown__error{font-size:12px;color:var(--txt-error);padding:2px 0 0;white-space:pre-wrap;text-overflow:ellipsis;font-weight:500;line-height:16px;margin-top:6px}.pl-dropdown__controls{display:flex;flex-direction:row;align-items:center;gap:6px;margin-left:auto}.pl-dropdown__controls .mask-16,.pl-dropdown__controls .mask-24{--icon-color: var(--control-mask-fill);cursor:pointer}.pl-dropdown__controls .clear{--icon-color: var(--ic-02)}.pl-dropdown__controls .mask-loading{--icon-color: var(--ic-accent);animation:spin 2.5s linear infinite}.pl-dropdown__arrow-wrapper{display:flex;align-items:center;min-height:var(--control-height);padding-right:11px}.pl-dropdown .arrow-icon{cursor:pointer}.pl-dropdown .arrow-icon.arrow-icon-default{transition:transform .2s;background-color:var(--control-mask-fill);mask-image:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M2.46967%206.53033L3.53033%205.46967L8%209.93934L12.4697%205.46967L13.5303%206.53033L8%2012.0607L2.46967%206.53033Z'%20fill='%23110529'/%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M2.46967%206.53033L3.53033%205.46967L8%209.93934L12.4697%205.46967L13.5303%206.53033L8%2012.0607L2.46967%206.53033Z'%20fill='%23110529'/%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;mask-position:center;-webkit-mask-position:center;mask-size:16px;-webkit-mask-size:16px;width:16px;height:16px}.pl-dropdown.open,.pl-dropdown:focus-within{z-index:1;--label-color: var(--txt-focus)}.pl-dropdown.open .pl-dropdown__container{z-index:1000}.pl-dropdown.open .pl-dropdown__field{border-radius:6px 6px 0 0}.pl-dropdown.open .arrow-icon.arrow-icon-default{background-color:var(--control-mask-fill);transform:rotate(-180deg)}.pl-dropdown:hover{--contour-color: var(--control-hover-color)}.pl-dropdown:focus-within:not(.error){--label-color: var(--txt-focus);--contour-color: var(--border-color-focus);--contour-border-width: 2px;--contour-box-shadow: 0 0 0 4px var(--border-color-focus-shadow)}.pl-dropdown:focus-within.error{--contour-border-width: 2px;--contour-box-shadow: 0 0 0 4px var(--color-error-shadow)}.pl-dropdown.error{--contour-color: var(--txt-error);--label-color: var(--txt-error)}.pl-dropdown.disabled{--contour-color: var(--color-dis-01);--control-mask-fill: var(--color-dis-01);--label-color: var(--color-dis-01);cursor:not-allowed;pointer-events:none;-webkit-user-select:none;user-select:none}.pl-dropdown.disabled .input-value{color:var(--dis-01)}
|
|
50
50
|
.pl-line-dropdown{display:flex;align-items:center;width:fit-content;padding:8px 0;box-sizing:border-box;position:relative;outline:none;max-width:256px}.pl-line-dropdown:focus-within:after{border-bottom:2px solid var(--border-color-focus)}.pl-line-dropdown__prefix,.pl-line-dropdown__input{text-transform:uppercase}.pl-line-dropdown:hover:after{border-bottom:2px solid var(--border-color-focus)}.pl-line-dropdown:after{content:"";position:absolute;bottom:0;border-bottom:2px solid var(--color-div-grey);width:100%}.pl-line-dropdown *{color:var(--txt-01);font-family:var(--font-family-base);font-size:13px;font-style:normal;font-weight:600;line-height:14px;letter-spacing:.52px}.pl-line-dropdown__input::placeholder{color:var(--txt-mask)}.pl-line-dropdown__icon{display:flex;align-items:center;min-width:16px;background-color:var(--control-mask-fill);mask-image:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M2.46967%206.53033L3.53033%205.46967L8%209.93934L12.4697%205.46967L13.5303%206.53033L8%2012.0607L2.46967%206.53033Z'%20fill='%23110529'/%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M2.46967%206.53033L3.53033%205.46967L8%209.93934L12.4697%205.46967L13.5303%206.53033L8%2012.0607L2.46967%206.53033Z'%20fill='%23110529'/%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;mask-position:center;-webkit-mask-position:center;mask-size:16px;-webkit-mask-size:16px;width:16px;height:16px}.pl-line-dropdown__icon-clear{mask-image:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20clip-path='url(%23clip0_586_7851)'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M8%2016C12.4183%2016%2016%2012.4183%2016%208C16%203.58172%2012.4183%200%208%200C3.58172%200%200%203.58172%200%208C0%2012.4183%203.58172%2016%208%2016ZM4.46967%205.53033L6.93934%208L4.46967%2010.4697L5.53033%2011.5303L8%209.06066L10.4697%2011.5303L11.5303%2010.4697L9.06066%208L11.5303%205.53033L10.4697%204.46967L8%206.93934L5.53033%204.46967L4.46967%205.53033Z'%20fill='%23CFD1DB'/%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='clip0_586_7851'%3e%3crect%20width='16'%20height='16'%20fill='white'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20clip-path='url(%23clip0_586_7851)'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M8%2016C12.4183%2016%2016%2012.4183%2016%208C16%203.58172%2012.4183%200%208%200C3.58172%200%200%203.58172%200%208C0%2012.4183%203.58172%2016%208%2016ZM4.46967%205.53033L6.93934%208L4.46967%2010.4697L5.53033%2011.5303L8%209.06066L10.4697%2011.5303L11.5303%2010.4697L9.06066%208L11.5303%205.53033L10.4697%204.46967L8%206.93934L5.53033%204.46967L4.46967%205.53033Z'%20fill='%23CFD1DB'/%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='clip0_586_7851'%3e%3crect%20width='16'%20height='16'%20fill='white'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;mask-position:center;-webkit-mask-position:center;mask-size:16px;-webkit-mask-size:16px;width:16px;height:16px;background-color:var(--color-ic-02)}.pl-line-dropdown.open .pl-line-dropdown__icon{mask-image:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M8%204.93933L13.5303%2010.4697L12.4697%2011.5303L8%207.06065L3.53033%2011.5303L2.46967%2010.4697L8%204.93933Z'%20fill='%23110529'/%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M8%204.93933L13.5303%2010.4697L12.4697%2011.5303L8%207.06065L3.53033%2011.5303L2.46967%2010.4697L8%204.93933Z'%20fill='%23110529'/%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;mask-position:center;-webkit-mask-position:center;mask-size:16px;-webkit-mask-size:16px;width:16px;height:16px}.pl-line-dropdown.open:after{border-bottom:2px solid var(--border-color-focus)}.pl-line-dropdown__icon-wrapper{padding:4px 2px 4px 0}.pl-line-dropdown.disabled *{color:var(--txt-mask);cursor:not-allowed}.pl-line-dropdown.disabled .pl-line-dropdown__icon{background-color:var(--color-div-grey)!important}.pl-line-dropdown.disabled:after{border-bottom:2px solid var(--color-div-grey)!important}.pl-line-dropdown.disabled:hover:after{border-bottom:2px solid var(--color-div-grey)!important}.pl-line-dropdown__no-item{padding:8px 12px}.pl-line-dropdown__no-item-title{color:var(--txt-03)!important;text-wrap:nowrap;text-overflow:ellipsis;overflow:hidden}.pl-line-dropdown__items{position:absolute;top:0;z-index:var(--z-dropdown-options);border-radius:6px;padding:12px 0;border:1px solid var(--color-div-grey);width:256px;box-sizing:border-box;max-height:320px;background-color:var(--bg-elevated-01);box-shadow:var(--shadow-m);--thumb-color: var(--ic-02);overflow-y:auto}.pl-line-dropdown__items::-webkit-scrollbar{width:var(--scrollbar-width, 6px);height:5px;background-color:transparent;display:block}.pl-line-dropdown__items::-webkit-scrollbar-thumb{background:var(--thumb-color);border-radius:5px}.pl-line-dropdown__items::-webkit-scrollbar-thumb:hover{--thumb-color: var(--border-color-focus)}.pl-line-dropdown__items-tabs{display:flex;position:absolute;top:0;z-index:var(--z-dropdown-options);background-color:var(--color-div-bw);overflow-x:scroll;max-width:400px;padding:6px 12px 12px;border:1px solid var(--color-div-grey);border-radius:6px;box-shadow:var(--shadow-m);--thumb-color: var(--ic-02);overflow-x:auto}.pl-line-dropdown__items-tabs::-webkit-scrollbar{width:var(--scrollbar-width, 6px);height:5px;background-color:transparent;display:block}.pl-line-dropdown__items-tabs::-webkit-scrollbar-thumb{background:var(--thumb-color);border-radius:5px}.pl-line-dropdown__items-tabs::-webkit-scrollbar-thumb:hover{--thumb-color: var(--border-color-focus)}
|
|
51
51
|
.resizable-input{position:relative;box-sizing:border-box;padding:0 8px;display:inline-block;max-width:100%;text-overflow:ellipsis;overflow:hidden}.resizable-input__size-span{font-family:inherit;white-space:pre;display:inline-block;font-size:inherit;line-height:inherit;box-sizing:border-box;position:relative;left:0;opacity:0;min-width:2px;-webkit-user-select:none;user-select:none;vertical-align:top}.resizable-input input{border:none;outline:none;height:100%;text-overflow:ellipsis;font-family:inherit;background:none;color:inherit;top:0;left:0;right:0;font-size:inherit;line-height:inherit;position:absolute;box-sizing:border-box}
|
|
52
52
|
.pl-dropdown-legacy{--contour-color: var(--txt-01);--contour-border-width: 1px;--options-bg: #fff;--option-hover-bg: var(--btn-sec-hover-grey);--label-offset-left-x: 8px;--label-offset-right-x: 8px;--label-color: var(--txt-01);position:relative;outline:none;min-height:var(--control-height);border-radius:6px;font-family:var(--font-family-base);font-size:var(--font-size-base);font-weight:var(--font-weigh-base)}[data-theme=dark] .pl-dropdown-legacy{--options-bg: #1b1b1f}.pl-dropdown-legacy__envelope{font-family:var(--control-font-family);min-width:160px}.pl-dropdown-legacy label{display:flex;align-items:center;gap:4px;position:absolute;top:0;transform:translateY(-60%);left:var(--label-offset-left-x);padding:0 4px;max-width:calc(100% - 16px);overflow:hidden;white-space:pre;text-overflow:ellipsis;cursor:inherit;color:var(--label-color);font-size:12px;font-weight:500;border-bottom-right-radius:4px;border-bottom-left-radius:4px;background:var(--bg-elevated-01)}.pl-dropdown-legacy label>span{overflow:hidden;white-space:pre;text-overflow:ellipsis}.pl-dropdown-legacy__container{position:absolute;top:0;left:0;right:0;border-radius:6px;min-height:var(--control-height);color:var(--txt-01)}.pl-dropdown-legacy__contour{border-radius:var(--border-radius-control);border:var(--contour-border-width) solid var(--contour-color);box-shadow:var(--contour-box-shadow);z-index:0;pointer-events:none}.pl-dropdown-legacy__options{position:relative;background-color:var(--options-bg);border-radius:0 0 6px 6px;max-height:244px;border-top:1px solid var(--color-div-black);--thumb-color: var(--ic-02);overflow-y:auto}.pl-dropdown-legacy__options::-webkit-scrollbar{width:var(--scrollbar-width, 6px);height:5px;background-color:transparent;display:block}.pl-dropdown-legacy__options::-webkit-scrollbar-thumb{background:var(--thumb-color);border-radius:5px}.pl-dropdown-legacy__options::-webkit-scrollbar-thumb:hover{--thumb-color: var(--border-color-focus)}.pl-dropdown-legacy__options .nothing-found{padding:0 10px;height:var(--control-height);line-height:var(--control-height);background-color:#fff;opacity:.5;font-style:italic}.pl-dropdown-legacy__options .option{position:relative;padding:0 30px 0 10px;height:var(--control-height);line-height:var(--control-height);cursor:pointer;-webkit-user-select:none;user-select:none}.pl-dropdown-legacy__options .option .checkmark{position:absolute;display:none;right:10px;top:50%;transform:translateY(-50%)}.pl-dropdown-legacy__options .option>span{display:block;overflow:hidden;white-space:nowrap;max-width:100%;text-overflow:ellipsis}.pl-dropdown-legacy__options .option.selected{background-color:var(--color-active-select)}.pl-dropdown-legacy__options .option.selected .checkmark{display:block}.pl-dropdown-legacy__options .option.active:not(.selected){background-color:var(--option-hover-bg)}.pl-dropdown-legacy__options .option:hover{background-color:var(--option-hover-bg)}.pl-dropdown-legacy__field{position:relative;border-radius:6px;overflow:hidden;background:transparent;padding:0 11px;min-height:var(--control-height);line-height:var(--control-height);display:flex;flex-direction:row;align-items:center}.pl-dropdown-legacy__field .input-value{outline:1px solid red;position:absolute;top:0;left:0;bottom:0;right:0;padding:0 60px 0 11px;pointer-events:none;line-height:var(--control-height);color:var(--contour-color);overflow:hidden;white-space:pre;text-overflow:ellipsis}.pl-dropdown-legacy__field input{min-height:calc(var(--control-height) - 2px);line-height:calc(var(--control-height) - 2px);font-family:inherit;font-size:inherit;background-color:transparent;border:none;padding:0;width:calc(100% - 40px);color:var(--txt-01);caret-color:var(--border-color-focus)}.pl-dropdown-legacy__field input:focus{outline:none}.pl-dropdown-legacy__field input:placeholder-shown{text-overflow:ellipsis}.pl-dropdown-legacy__field input::placeholder{color:var(--color-placeholder)}.pl-dropdown-legacy__helper{font-size:12px;color:var(--txt-03);padding:2px 0 0;white-space:pre-wrap;text-overflow:ellipsis;font-weight:500;line-height:16px;margin-top:6px}.pl-dropdown-legacy__error{font-size:12px;color:var(--txt-error);padding:2px 0 0;white-space:pre-wrap;text-overflow:ellipsis;font-weight:500;line-height:16px;margin-top:6px}.pl-dropdown-legacy__controls{display:flex;flex-direction:row;align-items:center;gap:6px;margin-left:auto}.pl-dropdown-legacy__controls .mask-16,.pl-dropdown-legacy__controls .mask-24{--icon-color: var(--control-mask-fill);cursor:pointer}.pl-dropdown-legacy__controls .clear{--icon-color: var(--ic-02)}.pl-dropdown-legacy__controls .mask-loading{--icon-color: var(#07AD3E);animation:spin 2.5s linear infinite}.pl-dropdown-legacy .arrow-icon{cursor:pointer}.pl-dropdown-legacy .arrow-icon.arrow-icon-default{background-color:var(--control-mask-fill);mask-image:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M2.46967%206.53033L3.53033%205.46967L8%209.93934L12.4697%205.46967L13.5303%206.53033L8%2012.0607L2.46967%206.53033Z'%20fill='%23110529'/%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M2.46967%206.53033L3.53033%205.46967L8%209.93934L12.4697%205.46967L13.5303%206.53033L8%2012.0607L2.46967%206.53033Z'%20fill='%23110529'/%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;mask-position:center;-webkit-mask-position:center;mask-size:16px;-webkit-mask-size:16px;width:16px;height:16px}.pl-dropdown-legacy.open,.pl-dropdown-legacy:focus-within{z-index:1;--label-color: var(--txt-focus)}.pl-dropdown-legacy.open .pl-dropdown-legacy__container{z-index:1000}.pl-dropdown-legacy.open .pl-dropdown-legacy__field{border-radius:6px 6px 0 0}.pl-dropdown-legacy.open .arrow-icon{background-color:var(--control-mask-fill);mask-image:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M8%204.93933L13.5303%2010.4697L12.4697%2011.5303L8%207.06065L3.53033%2011.5303L2.46967%2010.4697L8%204.93933Z'%20fill='%23110529'/%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M8%204.93933L13.5303%2010.4697L12.4697%2011.5303L8%207.06065L3.53033%2011.5303L2.46967%2010.4697L8%204.93933Z'%20fill='%23110529'/%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;mask-position:center;-webkit-mask-position:center;mask-size:16px;-webkit-mask-size:16px;width:16px;height:16px}.pl-dropdown-legacy:hover{--contour-color: var(--control-hover-color)}.pl-dropdown-legacy:focus-within:not(.error){--label-color: var(--txt-focus);--contour-color: var(--border-color-focus);--contour-border-width: 2px;--contour-box-shadow: 0 0 0 4px var(--border-color-focus-shadow)}.pl-dropdown-legacy:focus-within.error{--contour-border-width: 2px;--contour-box-shadow: 0 0 0 4px var(--color-error-shadow)}.pl-dropdown-legacy.error{--contour-color: var(--txt-error);--label-color: var(--txt-error)}.pl-dropdown-legacy.disabled{--contour-color: var(--color-dis-01);--control-mask-fill: var(--color-dis-01);--label-color: var(--color-dis-01);cursor:not-allowed;pointer-events:none;-webkit-user-select:none;user-select:none}
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import { uniqueId as
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
1
|
+
import { defineComponent as x, mergeModels as g, inject as d, toRef as u, useModel as C, computed as m, createElementBlock as v, openBlock as f, createVNode as n, unref as h, normalizeClass as r, withCtx as y, createTextVNode as $, toDisplayString as V, createCommentVNode as b, renderSlot as k } from "vue";
|
|
2
|
+
import { uniqueId as w } from "../../lib/util/helpers/dist/index.js";
|
|
3
|
+
import B from "../PlIcon16/PlIcon16.vue.js";
|
|
4
|
+
import N from "../PlSectionSeparator/PlSectionSeparator.vue.js";
|
|
5
|
+
import _ from "./ExpandTransition.vue2.js";
|
|
6
6
|
(function() {
|
|
7
7
|
try {
|
|
8
8
|
if (typeof document < "u") {
|
|
9
|
-
var
|
|
10
|
-
|
|
9
|
+
var o = document.createElement("style");
|
|
10
|
+
o.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(o);
|
|
11
11
|
}
|
|
12
|
-
} catch (
|
|
13
|
-
console.error("vite-plugin-css-injected-by-js",
|
|
12
|
+
} catch (t) {
|
|
13
|
+
console.error("vite-plugin-css-injected-by-js", t);
|
|
14
14
|
}
|
|
15
15
|
})();
|
|
16
|
-
const j = { class: "pl-accordion-section" },
|
|
16
|
+
const j = { class: "pl-accordion-section" }, A = /* @__PURE__ */ x({
|
|
17
17
|
__name: "PlAccordionSection",
|
|
18
|
-
props: /* @__PURE__ */
|
|
18
|
+
props: /* @__PURE__ */ g({
|
|
19
19
|
label: {},
|
|
20
20
|
compact: { type: Boolean }
|
|
21
21
|
}, {
|
|
@@ -23,38 +23,38 @@ const j = { class: "pl-accordion-section" }, q = /* @__PURE__ */ y({
|
|
|
23
23
|
modelModifiers: {}
|
|
24
24
|
}),
|
|
25
25
|
emits: ["update:modelValue"],
|
|
26
|
-
setup(
|
|
27
|
-
const
|
|
26
|
+
setup(o) {
|
|
27
|
+
const t = d("pl-accordion-model", () => u(""), !0), s = d("pl-accordion-props", () => u({ multiple: !1 }), !0), a = C(o, "modelValue"), c = w(), i = m(() => !s || s.value.multiple), l = m({
|
|
28
28
|
get() {
|
|
29
|
-
return i.value ? a.value :
|
|
29
|
+
return i.value ? a.value : t ? t.value === c : a.value;
|
|
30
30
|
},
|
|
31
31
|
set(e) {
|
|
32
|
-
i.value ? a.value = e :
|
|
32
|
+
i.value ? a.value = e : t && (t.value = t.value === c ? "" : c);
|
|
33
33
|
}
|
|
34
34
|
});
|
|
35
|
-
return (e, p) => (
|
|
36
|
-
n(
|
|
35
|
+
return (e, p) => (f(), v("div", j, [
|
|
36
|
+
n(h(N), {
|
|
37
37
|
class: r(e.$style.separator),
|
|
38
38
|
compact: e.compact,
|
|
39
|
-
onClick: p[0] || (p[0] = (
|
|
39
|
+
onClick: p[0] || (p[0] = (E) => l.value = !l.value)
|
|
40
40
|
}, {
|
|
41
|
-
default:
|
|
42
|
-
n(
|
|
41
|
+
default: y(() => [
|
|
42
|
+
n(h(B), {
|
|
43
43
|
name: "chevron-right",
|
|
44
44
|
class: r([{ [e.$style.down]: l.value }, e.$style.chevron])
|
|
45
45
|
}, null, 8, ["class"]),
|
|
46
|
-
|
|
46
|
+
$(" " + V(e.label), 1)
|
|
47
47
|
]),
|
|
48
48
|
_: 1
|
|
49
49
|
}, 8, ["class", "compact"]),
|
|
50
|
-
n(
|
|
51
|
-
default:
|
|
52
|
-
l.value ? (
|
|
50
|
+
n(_, null, {
|
|
51
|
+
default: y(() => [
|
|
52
|
+
l.value ? (f(), v("div", {
|
|
53
53
|
key: 0,
|
|
54
54
|
class: r(e.$style.content)
|
|
55
55
|
}, [
|
|
56
|
-
|
|
57
|
-
], 2)) :
|
|
56
|
+
k(e.$slots, "default")
|
|
57
|
+
], 2)) : b("", !0)
|
|
58
58
|
]),
|
|
59
59
|
_: 3
|
|
60
60
|
})
|
|
@@ -62,6 +62,6 @@ const j = { class: "pl-accordion-section" }, q = /* @__PURE__ */ y({
|
|
|
62
62
|
}
|
|
63
63
|
});
|
|
64
64
|
export {
|
|
65
|
-
|
|
65
|
+
A as default
|
|
66
66
|
};
|
|
67
67
|
//# sourceMappingURL=PlAccordionSection.vue2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlAccordionSection.vue2.js","sources":["../../../../../../../../../lib/ui/uikit/src/components/PlAccordion/PlAccordionSection.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { uniqueId } from '@milaboratories/helpers';\nimport { PlMaskIcon16 } from '../PlMaskIcon16';\nimport { PlSectionSeparator } from '../PlSectionSeparator';\nimport ExpandTransition from './ExpandTransition.vue';\nimport type { Ref } from 'vue';\nimport { computed, inject } from 'vue';\n\nconst $m = inject<Ref<string>>('pl-accordion-model');\n\nconst $p = inject<\n Ref<{\n multiple?: boolean;\n }>\n>('pl-accordion-props');\n\nconst model = defineModel<boolean>();\n\nconst id = uniqueId();\n\nconst isMulti = computed(() => !$p || $p.value.multiple);\n\nconst open = computed({\n get() {\n if (isMulti.value) {\n return model.value;\n }\n\n return $m ? $m.value === id : model.value;\n },\n set(on) {\n if (isMulti.value) {\n model.value = on;\n } else if ($m) {\n $m.value = $m.value === id ? '' : id;\n }\n },\n});\n\ndefineProps<{\n /**\n * The label text (optional)\n */\n label?: string;\n /**\n * If `true`, remove top padding\n */\n compact?: boolean;\n}>();\n</script>\n\n<template>\n <div class=\"pl-accordion-section\">\n <PlSectionSeparator :class=\"$style.separator\" :compact=\"compact\" @click=\"open = !open\">\n <PlMaskIcon16 name=\"chevron-right\" :class=\"[{ [$style.down]: open }, $style.chevron]\" />\n {{ label }}\n </PlSectionSeparator>\n <ExpandTransition>\n <div v-if=\"open\" :class=\"$style.content\">\n <slot />\n </div>\n </ExpandTransition>\n </div>\n</template>\n\n<style module>\n.content {\n display: flex;\n flex-direction: column;\n gap: var(--gap-v);\n will-change: height, opacity;\n /* transform: translateZ(0);\n backface-visibility: hidden; */\n}\n\n.content > *:first-child {\n margin-top: 24px;\n}\n\n.content > *:last-child {\n margin-bottom: 4px;\n}\n\n.separator {\n cursor: pointer;\n &:hover {\n --pl-separator-txt-color: var(--txt-01);\n --mask-icon-bg-color: var(--ic-01);\n }\n}\n\n.chevron {\n transition-duration: 50ms;\n}\n\n.down {\n transform: rotate(90deg);\n}\n</style>\n"],"names":["
|
|
1
|
+
{"version":3,"file":"PlAccordionSection.vue2.js","sources":["../../../../../../../../../lib/ui/uikit/src/components/PlAccordion/PlAccordionSection.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { uniqueId } from '@milaboratories/helpers';\nimport { PlMaskIcon16 } from '../PlMaskIcon16';\nimport { PlSectionSeparator } from '../PlSectionSeparator';\nimport ExpandTransition from './ExpandTransition.vue';\nimport type { Ref } from 'vue';\nimport { computed, inject, toRef } from 'vue';\n\nconst $m = inject<Ref<string>>('pl-accordion-model', () => toRef(''), true);\n\nconst $p = inject<\n Ref<{\n multiple?: boolean;\n }>\n>('pl-accordion-props', () => toRef({ multiple: false }), true);\n\nconst model = defineModel<boolean>();\n\nconst id = uniqueId();\n\nconst isMulti = computed(() => !$p || $p.value.multiple);\n\nconst open = computed({\n get() {\n if (isMulti.value) {\n return model.value;\n }\n\n return $m ? $m.value === id : model.value;\n },\n set(on) {\n if (isMulti.value) {\n model.value = on;\n } else if ($m) {\n $m.value = $m.value === id ? '' : id;\n }\n },\n});\n\ndefineProps<{\n /**\n * The label text (optional)\n */\n label?: string;\n /**\n * If `true`, remove top padding\n */\n compact?: boolean;\n}>();\n</script>\n\n<template>\n <div class=\"pl-accordion-section\">\n <PlSectionSeparator :class=\"$style.separator\" :compact=\"compact\" @click=\"open = !open\">\n <PlMaskIcon16 name=\"chevron-right\" :class=\"[{ [$style.down]: open }, $style.chevron]\" />\n {{ label }}\n </PlSectionSeparator>\n <ExpandTransition>\n <div v-if=\"open\" :class=\"$style.content\">\n <slot />\n </div>\n </ExpandTransition>\n </div>\n</template>\n\n<style module>\n.content {\n display: flex;\n flex-direction: column;\n gap: var(--gap-v);\n will-change: height, opacity;\n /* transform: translateZ(0);\n backface-visibility: hidden; */\n}\n\n.content > *:first-child {\n margin-top: 24px;\n}\n\n.content > *:last-child {\n margin-bottom: 4px;\n}\n\n.separator {\n cursor: pointer;\n &:hover {\n --pl-separator-txt-color: var(--txt-01);\n --mask-icon-bg-color: var(--ic-01);\n }\n}\n\n.chevron {\n transition-duration: 50ms;\n}\n\n.down {\n transform: rotate(90deg);\n}\n</style>\n"],"names":["y","o","i","m","r","t","k","a","B","c","p","isMulti","model"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;EAQA,MAAAA;AAcsB,UACdC,IAAAC,EAAA,sBAAA,MAAAC,EAAA,EAAA,GAAA,EAAA,GAAAC,IAAAF,EAAA,sBAAA,MAAAC,EAAA,EAAA,UAAA,GAAA,CAAA,GAAA,EAAA,GAAAE,IAAAC,EAAAN,GAAA,YAAA,GAAAO,IAAAC,EAAA,GAAAC,IAAAC,EAAA,MAAA,CAAAN,KAAAA,EAAA,MAAA,QAAA,GAAA,IAAAM,EAAA;AAAA,MACAC,MAAAA;AAKN,eAAAF,EAAA,QAAAJ,EAAA,QAAAJ,IAAAA,EAAA,UAAAM,IAAAF,EAAA;AAAA;MAEMM,IAAQ,GACVC;AAGF,QAAAH,EAAA,QAAAJ,EAAA,QAAA,IAAAJ,MAAAA,EAAA,QAAAA,EAAA,UAAAM,IAAA,KAAAA;AAAA,MAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlAutocomplete.vue.js","sources":["../../../../../../../../../lib/ui/uikit/src/components/PlAutocomplete/PlAutocomplete.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * A component for selecting one value from a big list of options using string search request\n */\nexport default {\n name: 'PlAutocomplete',\n};\n</script>\n\n<script lang=\"ts\" setup generic=\"M = unknown\">\nimport './pl-autocomplete.scss';\nimport { computed, reactive, ref, unref, useSlots, useTemplateRef, watch, watchPostEffect } from 'vue';\nimport { tap } from '../../helpers/functions';\nimport { PlTooltip } from '../PlTooltip';\nimport DoubleContour from '../../utils/DoubleContour.vue';\nimport { useLabelNotch } from '../../utils/useLabelNotch';\nimport type { ListOption, ListOptionNormalized } from '../../types';\nimport { deepEqual } from '../../helpers/objects';\nimport DropdownListItem from '../DropdownListItem.vue';\nimport LongText from '../LongText.vue';\nimport { normalizeListOptions } from '../../helpers/utils';\nimport { PlIcon16 } from '../PlIcon16';\nimport { PlMaskIcon24 } from '../PlMaskIcon24';\nimport { DropdownOverlay } from '../../utils/DropdownOverlay';\nimport { refDebounced } from '@vueuse/core';\nimport { useWatchFetch } from '../../composition/useWatchFetch.ts';\nimport SvgRequired from '../../generated/components/svg/images/SvgRequired.vue';\nimport { getErrorMessage } from '../../helpers/error.ts';\n\n/**\n * The current selected value.\n */\nconst model = defineModel<M>({ required: true });\n\nconst props = withDefaults(\n defineProps<{\n /**\n * Lambda for requesting of available options for the dropdown by search string.\n */\n optionsSearch: (s: string) => Promise<ListOption<M>[]>;\n /**\n * Lambda for requesting of corresponding option for current model value. If empty, optionsSearch is used for this.\n */\n modelSearch?: (v: M) => Promise<ListOption<M>>;\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 * A helper text displayed below the dropdown when there are no options yet or options is undefined (optional).\n */\n loadingOptionsHelper?: 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 * Enables a button to clear the selected value (default: false)\n */\n clearable?: boolean;\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 * Custom icon (16px) class for the dropdown arrow (optional)\n */\n arrowIcon?: string;\n /**\n * Custom icon (24px) class for the dropdown arrow (optional)\n */\n arrowIconLarge?: string;\n /**\n * Option list item size\n */\n optionSize?: 'small' | 'medium';\n /**\n * Formatter for the selected value if its label is absent\n */\n formatValue?: (value: M) => string;\n }>(),\n {\n modelSearch: undefined,\n label: '',\n helper: undefined,\n loadingOptionsHelper: undefined,\n error: undefined,\n placeholder: '...',\n clearable: false,\n required: false,\n disabled: false,\n arrowIcon: undefined,\n arrowIconLarge: undefined,\n optionSize: 'small',\n formatValue: (v: M) => String(v),\n },\n);\n\nconst slots = defineSlots<{\n [key: string]: unknown;\n}>();\n\nconst rootRef = ref<HTMLElement | undefined>();\nconst input = ref<HTMLInputElement | undefined>();\n\nconst overlayRef = useTemplateRef('overlay');\n\nconst search = ref<string | null>(null);\nconst data = reactive({\n activeIndex: -1,\n open: false,\n});\n\nconst findActiveIndex = () =>\n tap(\n renderedOptionsRef.value.findIndex((o) => deepEqual(o.value, model.value)),\n (v) => (v < 0 ? 0 : v),\n );\n\nconst updateActive = () => (data.activeIndex = findActiveIndex());\n\nconst loadedOptionsRef = ref<ListOption<M>[]>([]);\nconst modelOptionRef = ref<ListOptionNormalized<M> | undefined>(); // list of 1 option that is selected or empty, to keep selected label\n\nconst renderedOptionsRef = computed(() => {\n return normalizeListOptions(loadedOptionsRef.value).map((opt, index) => ({\n ...opt,\n index,\n isSelected: index === selectedIndex.value,\n isActive: index === data.activeIndex,\n }));\n});\nconst isLoadingOptions = ref<boolean>(true);\nconst isLoadingError = ref<boolean>(false);\n\nconst isDisabled = computed(() => {\n return props.disabled;\n});\n\nconst selectedIndex = computed(() => {\n return loadedOptionsRef.value.findIndex((o) => deepEqual(o.value, model.value));\n});\n\nconst computedError = computed(() => {\n if (isLoadingOptions.value) {\n return undefined;\n }\n\n if (props.error) {\n return getErrorMessage(props.error);\n }\n\n if (isLoadingError.value) {\n return 'Data loading error';\n }\n\n return undefined;\n});\n\nconst textValue = computed(() => {\n const modelOption = unref(modelOptionRef);\n const options = unref(renderedOptionsRef);\n\n const item: ListOptionNormalized | undefined = modelOption ?? options.find((o) => deepEqual(o.value, model.value)) ?? options.find((o) => deepEqual(o.value, model.value));\n\n return item?.label || (model.value ? props.formatValue(model.value) : '');\n});\n\nconst computedPlaceholder = computed(() => {\n if (!data.open && model.value) {\n return '';\n }\n\n return model.value ? String(textValue.value) : props.placeholder;\n});\n\nconst hasValue = computed(() => {\n return model.value !== undefined && model.value !== null;\n});\n\nconst tabindex = computed(() => (isDisabled.value ? undefined : '0'));\n\nconst selectOption = (v: ListOptionNormalized<M> | undefined) => {\n model.value = v?.value as M;\n modelOptionRef.value = v;\n search.value = null;\n data.open = false;\n rootRef?.value?.focus();\n};\n\nconst clear = () => {\n model.value = undefined as M;\n modelOptionRef.value = undefined;\n};\n\nconst setFocusOnInput = () => input.value?.focus();\n\nconst toggleOpen = () => {\n data.open = !data.open;\n};\n\nwatch(() => data.open, (v) => {\n search.value = v ? '' : null;\n});\n\nconst onInputFocus = () => {\n data.open = true;\n};\n\nconst onFocusOut = (event: FocusEvent) => {\n const relatedTarget = event.relatedTarget as Node | null;\n\n if (!rootRef.value?.contains(relatedTarget) && !overlayRef.value?.listRef?.contains(relatedTarget)) {\n search.value = null;\n data.open = false;\n }\n};\n\nconst handleKeydown = (e: { code: string; preventDefault(): void }) => {\n if (!['ArrowDown', 'ArrowUp', 'Enter', 'Escape'].includes(e.code)) {\n return;\n } else {\n e.preventDefault();\n }\n\n const { open, activeIndex } = data;\n\n if (!open) {\n if (e.code === 'Enter') {\n data.open = true;\n search.value = '';\n }\n return;\n }\n\n if (e.code === 'Escape') {\n data.open = false;\n search.value = null;\n rootRef.value?.focus();\n }\n\n const options = unref(renderedOptionsRef);\n\n const { length } = options;\n\n if (!length) {\n return;\n }\n\n if (e.code === 'Enter') {\n selectOption(options.find((it) => it.index === activeIndex));\n }\n\n const localIndex = options.findIndex((it) => it.index === activeIndex) ?? -1;\n\n const delta = e.code === 'ArrowDown' ? 1 : e.code === 'ArrowUp' ? -1 : 0;\n\n const newIndex = Math.abs(localIndex + delta + length) % length;\n\n data.activeIndex = renderedOptionsRef.value[newIndex].index ?? -1;\n};\n\nuseLabelNotch(rootRef);\n\nwatch(() => model.value, updateActive, { immediate: true });\n\nwatch(\n () => data.open,\n (open) => (open ? input.value?.focus() : ''),\n);\n\nwatchPostEffect(() => {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n search.value; // to watch\n\n if (data.activeIndex >= 0 && data.open) {\n overlayRef.value?.scrollIntoActive();\n }\n});\n\nconst searchDebounced = refDebounced(search, 300, { maxWait: 1000 });\n\nconst optionsRequest = useWatchFetch(() => searchDebounced.value, async (v) => {\n if (v !== null) { // search is null when dropdown is closed;\n return props.optionsSearch(v);\n }\n return [];\n});\n\nconst modelOptionRequest = useWatchFetch(() => model.value, async (v) => {\n if (v && !deepEqual(modelOptionRef.value?.value, v)) { // load label for selected value if it was updated from outside the component\n if (props.modelSearch) {\n return props.modelSearch(v);\n }\n return (await props.optionsSearch(String(v)))?.[0];\n }\n return modelOptionRef.value;\n});\n\nwatch(() => optionsRequest.value, (result) => {\n if (result) {\n loadedOptionsRef.value = result;\n if (search.value !== null) {\n isLoadingError.value = false;\n }\n }\n});\n\nwatch(() => modelOptionRequest.value, (result) => {\n if (result) {\n modelOptionRef.value = normalizeListOptions([result])[0];\n }\n});\n\nwatch(() => optionsRequest.error, (err) => {\n if (err) {\n isLoadingError.value = Boolean(err);\n }\n});\n\nwatch(() => optionsRequest.loading || modelOptionRequest.loading, (loading) => {\n isLoadingOptions.value = loading;\n});\n</script>\n\n<template>\n <div class=\"pl-autocomplete__envelope\" @click.stop=\"setFocusOnInput\">\n <div\n ref=\"rootRef\"\n :tabindex=\"tabindex\"\n class=\"pl-autocomplete\"\n :class=\"{ open: data.open, error: Boolean(computedError), disabled: isDisabled }\"\n @keydown=\"handleKeydown\"\n @focusout=\"onFocusOut\"\n >\n <div class=\"pl-autocomplete__container\">\n <div class=\"pl-autocomplete__field\">\n <input\n ref=\"input\"\n v-model=\"search\"\n type=\"text\"\n tabindex=\"-1\"\n :disabled=\"isDisabled\"\n :placeholder=\"computedPlaceholder\"\n spellcheck=\"false\"\n autocomplete=\"chrome-off\"\n @focus=\"onInputFocus\"\n />\n\n <div v-if=\"!data.open\" class=\"input-value\">\n <LongText> {{ textValue }} </LongText>\n </div>\n\n <div class=\"pl-autocomplete__controls\">\n <PlMaskIcon24 v-if=\"isLoadingOptions\" name=\"loading\" />\n <PlIcon16 v-if=\"clearable && hasValue\" class=\"clear\" name=\"delete-clear\" @click.stop=\"clear\" />\n <slot name=\"append\" />\n <div class=\"pl-autocomplete__arrow-wrapper\" @click.stop=\"toggleOpen\">\n <div v-if=\"arrowIconLarge\" class=\"arrow-icon\" :class=\"[`icon-24 ${arrowIconLarge}`]\" />\n <div v-else-if=\"arrowIcon\" class=\"arrow-icon\" :class=\"[`icon-16 ${arrowIcon}`]\" />\n <div v-else class=\"arrow-icon arrow-icon-default\" />\n </div>\n </div>\n </div>\n <label v-if=\"label\">\n <SvgRequired v-if=\"required\" />\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 v-if=\"data.open\" ref=\"overlay\" :root=\"rootRef\" class=\"pl-autocomplete__options\" tabindex=\"-1\" :gap=\"3\">\n <DropdownListItem\n v-for=\"(item, index) in renderedOptionsRef\"\n :key=\"index\"\n :option=\"item\"\n :is-selected=\"item.isSelected\"\n :is-hovered=\"item.isActive\"\n :size=\"optionSize\"\n @click.stop=\"selectOption(item)\"\n />\n <div v-if=\"!renderedOptionsRef.length\" class=\"nothing-found\">Nothing found</div>\n </DropdownOverlay>\n <DoubleContour class=\"pl-autocomplete__contour\" />\n </div>\n </div>\n <div v-if=\"computedError\" class=\"pl-autocomplete__error\">{{ computedError }}</div>\n <div v-else-if=\"isLoadingOptions && loadingOptionsHelper\" class=\"pl-autocomplete__helper\">{{ loadingOptionsHelper }}</div>\n <div v-else-if=\"helper\" class=\"pl-autocomplete__helper\">{{ helper }}</div>\n </div>\n</template>\n"],"names":["He","model","I","n","ue","u","U","ce","d","f","x","$","de","i","pe","findActiveIndex","tap","renderedOptionsRef","v","ge","g","b","ref","modelOptionRef","opt","index","S","V","A","p","j","E","getErrorMessage","props","isLoadingError","Ae","computed","item","computedPlaceholder","m","y","r","G","data","_a","rootRef","Q","L","setFocusOnInput","Y","input","Z","search","h","relatedTarget","o","te","z","l","length","localIndex","newIndex","R","ae","ne","re","useLabelNotch","be","open","refDebounced","useWatchFetch","searchDebounced","Ce","H","optionsRequest","result","D","normalizeListOptions","watch","err","T","modelOptionRequest","isLoadingOptions","loading"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAIe;AAAA,EACb,OAAM;AACR,GAAAA,KAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;EA0BMC,OAAAA,CAAAA;EAwFgB,MACPC,GAAA;AAAA,UACPC,IAAAC,GAAAF,GAAA,YAAA,GAAAG,IAAAH,GAAAI,IAAAC,GAAA,GAAAC,IAAAC,EAAA,GAAAC,IAAAD,EAAA,GAAAE,IAAAC,GAAA,SAAA,GAAAC,IAAAJ,EAAA,IAAA,GAAA,IAAAK,GAAA;AAAA,MAGFC,aACJC;AAAAA,MACEC,MAAyB;AAAA,IAAgD,CAAA,GACxEC,IAAAA,MAAWC;AAAAA,MACdC,EAEmB,MAAA,UAAY,CAAA,MAAAC,EAAcN,EAAgB,OAEtCO,EAAqB,KACxCC,CAAAA;AAAAA,MAIF,CAAGC,MAAAA,IAAAA,IAAAA,IAAAA;AAAAA,IAAA,GACHC,IAAAA,MAAAA,EAAAA,cAAAA,EAAAA,GAAAA,IAAAA,EAAAA,CAAAA,CAAAA,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA,EAAAA,MAAAA,EAAAA,EAAAA,KAAAA,EAAAA,IAAAA,CAAAA,GAAAA,OAAAA;AAAAA,MACA,GAAA;AAAA,MACA,OAAA;AAAA,MACA,YAEsC,MACnBH,EAAAA;AAAAA,MAWjB,UAIJ,MAAA,EAAA;AAAA,IAAA,EAAA,CAAA,GAAAI,IAAUjB,EAAA,EAAA,GAAAkB,IAAAlB,EAAA,EAAA,GAAAmB,IAAAC,EAAA,MAAAxB,EAAA,QAAA,GAAAyB,IAAAD,EAAA,MAAAE,EAAA,MAAA,UAAA,CAAA,MAAAV,EAAA,EAAA,OAAAlB,EAAA,KAAA,CAAA,CAAA,GAAA,IAAA0B,EAAA,MAAA;AACDG,UAAAA,CAAAA,EAAAA,OAAgBC;AAGzB,YAAIC,EAAe;AACV,iBAAAC,GAAA9B,EAAA,KAAA;AAAA,YAAAsB,EAAA;AAMOS,iBAAe;AAAA,MACzB;AAAA,IAKC,CAAAC,GAAAA,IAAAA,EAAAA,MAAAA;AAGHC,YAAsBF,IACtBG,EAAAC,CAAA,OAAcvC,EAAAA,CAAAA,GAAAA,IACT,KAAA,EAAA,KAGI,CAAQwC,MAAApB,EAAAoB,EAAA,OAAsBtC,EAAA,KAAA,CAAI8B,KAChD,EAAA,KAAA,CAAAQ,MAEgBL,EAAAA,SACFjC,EAAA,KAAA,CAAA;;IAMb,CAAAF,GAAMyC,YAAQ,CAAA,EAAA,QAAAvC,EAAA,QACdoB,KAAAA,EAAe,QAAQL,cAEvByB,IAAAA,EAAAA,WACAC,GAAAA,YAAAC,EAAAA,UAAAA,UAAA1C,EAAA,UAAgB,IAAA,GAAA2C,IAAAjB,EAAA,MAAAD,EAAA,QAAA,SAAA,GAAA,GAAAmB,IAAA,CAAA,MAAA;AAClB;AAGE9C,MAAAA,EAAM,QAAQ,KACdsB,OAAuB,SAAA,EAAA,OAAAiB,EAAA,QAAA,GAAA3B,EAAA,QAAA,MAAA,EAAA,OAAA,KAAA,IAAAL,KAAA,OAAA,SAAAA,EAAA,UAAA,QAAA,EAAA,MAAA;AAAA,IACzB,GAEMwC,IAAkB,MAAA;;IAAM,GAAAC,IAAA,MAAAC;AAAa;AAGpCP,cAAO,IAAMjC,EAAA,UAAA,OAAA,SAAA,EAAA,MAAA;AAAA,IACpB,GAAAyC,IAAA,MAAA;AAEM,QAAA,OAAW,CAAA,EAAA;AAAA,IACRC;AAAiBC,IAAAA,EACzB,MAAA,EAAA,MAAA,CAAA,MAAA;AAED,MAAAxC,EAAA,QAA2B,IAAA,KAAA;AAAA,IACzB,CAAA;AACF,UAEmB,KAAuB,MAAA;;IACxC,GAAA,KAAMyC,OAAsB;AAExB,UAACT,GAAAA,GAAA3B;AAIP,YAEsBqC,IAAiD,EAAA;;IACjE,GAACC;AAGH,UAAEC;AAAe,UAAA,CAAA,aAAA,WAAA,SAAA,QAAA,EAAA,SAAA,EAAA,IAAA;AAFjB,UAAA,eAAA;AAAA;AAOF;AACM,YAAW,EAAA,MAAAF,GAAA,aACDG,EAAA,IAAA;AAGd,UAAA,CAAAH,GAAA;AAAA,UAAA,SAAA,YAAA,EAAA,OAAA,IAAA1C,EAAA,QAAA;AAGI;AAAA,MAMA;AAIN,QAAA,SAAK8C,aAAAA,EAAAA,OAAAA,IAAAA,EAAAA,QAAAA,OAAAA,IAAAA,EAAAA,UAAAA,QAAAA,EAAAA;AACH,YAAAlB,IAAAF,EAAAnB,CAAA,GAAA,EAAA,QAAAF,EAAA,IAAAuB;AAGE,UAAW,CAAAvB;AAIT0C;AAMNjB,QAAK,SAAc1B,WAAyB4C,EAAAA,EAAQ,KAAW,CAAAC,MAAAA,EAAA,UAAAJ,CAAA,CAAA;AACjE,YAAAK,KAAAtB,EAAA,UAAA,CAAAqB,MAAAA,EAAA,UAAAJ,CAAA,KAAA,IAAAM,KAAA,EAAA,SAAA,cAAA,IAAA,EAAA,SAAA,YAAA,KAAA,GAAAC,KAAA,KAAA,IAAAF,KAAAC,KAAA9C,CAAA,IAAAA;AAEAgD,QAAqB,cAEH9C,EAAA,MAAqB6C,EAAA,EAAa,SAAA;AAAA,IAEpD;AACaE,IAAAA,GACVC,CAAU,GAAAf,EAAA,MAAAlD,EAAA,OAAA,GAAA,EAAA,WAAA,GAAA,CAAA,GAAAkD;AAAAA;MAAA,CAAA,MAAA;AAA8B,YAAA;eAGrB,KAAA,IAAA3C,EAAA,UAAA,OAAA,SAAA,EAAA,MAAA,IAAA;AAAA;IAEb0C,GAAAA,GAEHT,MAAAA;AAGL,UAAA;AAED,MAAA9B,EAAA,OAAwBwD,EAAAA,eAA4B,KAAS,EAAM,UAE5CC,IAAoBC,EAAAA,kBAA8BrD,EAAAA,iBAC7D;AAAA;AAOV,UAAA,KAASsD,GAAA3D,GAAW+B,KAAArB,EAAe,SAAA,IAAfqB,CAAAA,GAAAA,IAAAA,EAAAA,MAA6B1B,GAAAA,OAC3Ce,OACKA,MAAAA,MAAM,OAAYf,EAAAA,cAEbe,CAAAA,IAAAA,CAAAA,CAAM,GAAc,IAAAwC,EAAA,MAAAtE,EAAA,OAA1B,OAAA,MAAA;AAGX,UAAA,GAAA;AAED,aAAM,KAAA,CAAMuE,GAAe,IAAAlC,EAAO,UAAY,OAAA,SAAA,EAAA,OAAA,CAAA,IAAAnC,EAAA,cAAAA,EAAA,YAAA,CAAA,KAAA,IAAA,MAAAA,EAAA,cAAA,OAAA,CAAA,CAAA,MAAA,OAAA,SAAA,EAAA,CAAA,IAAAmC,EAAA;AAAA,IAC5C,CAAImC;AAKJ,mBAG6BC,EAAA,OAAmB,CAAA,MAAA;AAC5CD,YACFpD,EAAe,QAAQsD,GAAsBF,EAAO,UAAG,SAAAhD,EAAA,QAAA;AAAA,IAE1D,CAAA,GAEDmD,EAAM,MAAMJ,EAAe,OAAO,CAACK,MAAQ;AACrCA,YACa7C,EAAA,QAAQ8C,EAAQD,CAAAA,CAAAA,CAAAA,EAAAA,CAAAA;AAAAA,IAElC,CAAA,GAEDD,EAAM,MAAMJ,EAAe,OAAWO,CAAAA,MAA4B;AAChEC,YAAyBC,EAAAA,QAAAA,CAAAA,CAAAA;AAAAA,IAAA,CAC1B,GAAA9B,EAAA,MAAAuB,EAAA,WAAA,EAAA,SAAA,CAAA,MAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"PlAutocomplete.vue.js","sources":["../../../../../../../../../lib/ui/uikit/src/components/PlAutocomplete/PlAutocomplete.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * A component for selecting one value from a big list of options using string search request\n */\nexport default {\n name: 'PlAutocomplete',\n};\n</script>\n\n<script lang=\"ts\" setup generic=\"M = unknown\">\nimport './pl-autocomplete.scss';\nimport { computed, reactive, ref, unref, useTemplateRef, watch, watchPostEffect } from 'vue';\nimport { tap } from '../../helpers/functions';\nimport { PlTooltip } from '../PlTooltip';\nimport DoubleContour from '../../utils/DoubleContour.vue';\nimport { useLabelNotch } from '../../utils/useLabelNotch';\nimport type { ListOption, ListOptionNormalized } from '../../types';\nimport { deepEqual } from '../../helpers/objects';\nimport DropdownListItem from '../DropdownListItem.vue';\nimport LongText from '../LongText.vue';\nimport { normalizeListOptions } from '../../helpers/utils';\nimport { PlIcon16 } from '../PlIcon16';\nimport { PlMaskIcon24 } from '../PlMaskIcon24';\nimport { DropdownOverlay } from '../../utils/DropdownOverlay';\nimport { refDebounced } from '@vueuse/core';\nimport { useWatchFetch } from '../../composition/useWatchFetch.ts';\nimport SvgRequired from '../../generated/components/svg/images/SvgRequired.vue';\nimport { getErrorMessage } from '../../helpers/error.ts';\n\n/**\n * The current selected value.\n */\nconst model = defineModel<M>({ required: true });\n\nconst props = withDefaults(\n defineProps<{\n /**\n * Lambda for requesting of available options for the dropdown by search string.\n */\n optionsSearch: (s: string) => Promise<ListOption<M>[]>;\n /**\n * Lambda for requesting of corresponding option for current model value. If empty, optionsSearch is used for this.\n */\n modelSearch?: (v: M) => Promise<ListOption<M>>;\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 * A helper text displayed below the dropdown when there are no options yet or options is undefined (optional).\n */\n loadingOptionsHelper?: 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 * Enables a button to clear the selected value (default: false)\n */\n clearable?: boolean;\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 * Custom icon (16px) class for the dropdown arrow (optional)\n */\n arrowIcon?: string;\n /**\n * Custom icon (24px) class for the dropdown arrow (optional)\n */\n arrowIconLarge?: string;\n /**\n * Option list item size\n */\n optionSize?: 'small' | 'medium';\n /**\n * Formatter for the selected value if its label is absent\n */\n formatValue?: (value: M) => string;\n }>(),\n {\n modelSearch: undefined,\n label: '',\n helper: undefined,\n loadingOptionsHelper: undefined,\n error: undefined,\n placeholder: '...',\n clearable: false,\n required: false,\n disabled: false,\n arrowIcon: undefined,\n arrowIconLarge: undefined,\n optionSize: 'small',\n formatValue: (v: M) => String(v),\n },\n);\n\nconst slots = defineSlots<{\n [key: string]: unknown;\n}>();\n\nconst rootRef = ref<HTMLElement | undefined>();\nconst input = ref<HTMLInputElement | undefined>();\n\nconst overlayRef = useTemplateRef('overlay');\n\nconst search = ref<string | null>(null);\nconst data = reactive({\n activeIndex: -1,\n open: false,\n});\n\nconst findActiveIndex = () =>\n tap(\n renderedOptionsRef.value.findIndex((o) => deepEqual(o.value, model.value)),\n (v) => (v < 0 ? 0 : v),\n );\n\nconst updateActive = () => (data.activeIndex = findActiveIndex());\n\nconst loadedOptionsRef = ref<ListOption<M>[]>([]);\nconst modelOptionRef = ref<ListOptionNormalized<M> | undefined>(); // list of 1 option that is selected or empty, to keep selected label\n\nconst renderedOptionsRef = computed(() => {\n return normalizeListOptions(loadedOptionsRef.value).map((opt, index) => ({\n ...opt,\n index,\n isSelected: index === selectedIndex.value,\n isActive: index === data.activeIndex,\n }));\n});\nconst isLoadingOptions = ref<boolean>(true);\nconst isLoadingError = ref<boolean>(false);\n\nconst isDisabled = computed(() => {\n return props.disabled;\n});\n\nconst selectedIndex = computed(() => {\n return loadedOptionsRef.value.findIndex((o) => deepEqual(o.value, model.value));\n});\n\nconst computedError = computed(() => {\n if (isLoadingOptions.value) {\n return undefined;\n }\n\n if (props.error) {\n return getErrorMessage(props.error);\n }\n\n if (isLoadingError.value) {\n return 'Data loading error';\n }\n\n return undefined;\n});\n\nconst textValue = computed(() => {\n const modelOption = unref(modelOptionRef);\n const options = unref(renderedOptionsRef);\n\n const item: ListOptionNormalized | undefined = modelOption ?? options.find((o) => deepEqual(o.value, model.value)) ?? options.find((o) => deepEqual(o.value, model.value));\n\n return item?.label || (model.value ? props.formatValue(model.value) : '');\n});\n\nconst computedPlaceholder = computed(() => {\n if (!data.open && model.value) {\n return '';\n }\n\n return model.value ? String(textValue.value) : props.placeholder;\n});\n\nconst hasValue = computed(() => {\n return model.value !== undefined && model.value !== null;\n});\n\nconst tabindex = computed(() => (isDisabled.value ? undefined : '0'));\n\nconst selectOption = (v: ListOptionNormalized<M> | undefined) => {\n model.value = v?.value as M;\n modelOptionRef.value = v;\n search.value = null;\n data.open = false;\n rootRef?.value?.focus();\n};\n\nconst clear = () => {\n model.value = undefined as M;\n modelOptionRef.value = undefined;\n};\n\nconst setFocusOnInput = () => input.value?.focus();\n\nconst toggleOpen = () => {\n data.open = !data.open;\n};\n\nwatch(() => data.open, (v) => {\n search.value = v ? '' : null;\n});\n\nconst onInputFocus = () => {\n data.open = true;\n};\n\nconst onFocusOut = (event: FocusEvent) => {\n const relatedTarget = event.relatedTarget as Node | null;\n\n if (!rootRef.value?.contains(relatedTarget) && !overlayRef.value?.listRef?.contains(relatedTarget)) {\n search.value = null;\n data.open = false;\n }\n};\n\nconst handleKeydown = (e: { code: string; preventDefault(): void }) => {\n if (!['ArrowDown', 'ArrowUp', 'Enter', 'Escape'].includes(e.code)) {\n return;\n } else {\n e.preventDefault();\n }\n\n const { open, activeIndex } = data;\n\n if (!open) {\n if (e.code === 'Enter') {\n data.open = true;\n search.value = '';\n }\n return;\n }\n\n if (e.code === 'Escape') {\n data.open = false;\n search.value = null;\n rootRef.value?.focus();\n }\n\n const options = unref(renderedOptionsRef);\n\n const { length } = options;\n\n if (!length) {\n return;\n }\n\n if (e.code === 'Enter') {\n selectOption(options.find((it) => it.index === activeIndex));\n }\n\n const localIndex = options.findIndex((it) => it.index === activeIndex) ?? -1;\n\n const delta = e.code === 'ArrowDown' ? 1 : e.code === 'ArrowUp' ? -1 : 0;\n\n const newIndex = Math.abs(localIndex + delta + length) % length;\n\n data.activeIndex = renderedOptionsRef.value[newIndex].index ?? -1;\n};\n\nuseLabelNotch(rootRef);\n\nwatch(() => model.value, updateActive, { immediate: true });\n\nwatch(\n () => data.open,\n (open) => (open ? input.value?.focus() : ''),\n);\n\nwatchPostEffect(() => {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n search.value; // to watch\n\n if (data.activeIndex >= 0 && data.open) {\n overlayRef.value?.scrollIntoActive();\n }\n});\n\nconst searchDebounced = refDebounced(search, 300, { maxWait: 1000 });\n\nconst optionsRequest = useWatchFetch(() => searchDebounced.value, async (v) => {\n if (v !== null) { // search is null when dropdown is closed;\n return props.optionsSearch(v);\n }\n return [];\n});\n\nconst modelOptionRequest = useWatchFetch(() => model.value, async (v) => {\n if (v && !deepEqual(modelOptionRef.value?.value, v)) { // load label for selected value if it was updated from outside the component\n if (props.modelSearch) {\n return props.modelSearch(v);\n }\n return (await props.optionsSearch(String(v)))?.[0];\n }\n return modelOptionRef.value;\n});\n\nwatch(() => optionsRequest.value, (result) => {\n if (result) {\n loadedOptionsRef.value = result;\n if (search.value !== null) {\n isLoadingError.value = false;\n }\n }\n});\n\nwatch(() => modelOptionRequest.value, (result) => {\n if (result) {\n modelOptionRef.value = normalizeListOptions([result])[0];\n }\n});\n\nwatch(() => optionsRequest.error, (err) => {\n if (err) {\n isLoadingError.value = Boolean(err);\n }\n});\n\nwatch(() => optionsRequest.loading || modelOptionRequest.loading, (loading) => {\n isLoadingOptions.value = loading;\n});\n</script>\n\n<template>\n <div class=\"pl-autocomplete__envelope\" @click.stop=\"setFocusOnInput\">\n <div\n ref=\"rootRef\"\n :tabindex=\"tabindex\"\n class=\"pl-autocomplete\"\n :class=\"{ open: data.open, error: Boolean(computedError), disabled: isDisabled }\"\n @keydown=\"handleKeydown\"\n @focusout=\"onFocusOut\"\n >\n <div class=\"pl-autocomplete__container\">\n <div class=\"pl-autocomplete__field\">\n <input\n ref=\"input\"\n v-model=\"search\"\n type=\"text\"\n tabindex=\"-1\"\n :disabled=\"isDisabled\"\n :placeholder=\"computedPlaceholder\"\n spellcheck=\"false\"\n autocomplete=\"chrome-off\"\n @focus=\"onInputFocus\"\n />\n\n <div v-if=\"!data.open\" class=\"input-value\">\n <LongText> {{ textValue }} </LongText>\n </div>\n\n <div class=\"pl-autocomplete__controls\">\n <PlMaskIcon24 v-if=\"isLoadingOptions\" name=\"loading\" />\n <PlIcon16 v-if=\"clearable && hasValue\" class=\"clear\" name=\"delete-clear\" @click.stop=\"clear\" />\n <slot name=\"append\" />\n <div class=\"pl-autocomplete__arrow-wrapper\" @click.stop=\"toggleOpen\">\n <div v-if=\"arrowIconLarge\" class=\"arrow-icon\" :class=\"[`icon-24 ${arrowIconLarge}`]\" />\n <div v-else-if=\"arrowIcon\" class=\"arrow-icon\" :class=\"[`icon-16 ${arrowIcon}`]\" />\n <div v-else class=\"arrow-icon arrow-icon-default\" />\n </div>\n </div>\n </div>\n <label v-if=\"label\">\n <SvgRequired v-if=\"required\" />\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 v-if=\"data.open\" ref=\"overlay\" :root=\"rootRef\" class=\"pl-autocomplete__options\" tabindex=\"-1\" :gap=\"3\">\n <DropdownListItem\n v-for=\"(item, index) in renderedOptionsRef\"\n :key=\"index\"\n :option=\"item\"\n :is-selected=\"item.isSelected\"\n :is-hovered=\"item.isActive\"\n :size=\"optionSize\"\n @click.stop=\"selectOption(item)\"\n />\n <div v-if=\"!renderedOptionsRef.length\" class=\"nothing-found\">Nothing found</div>\n </DropdownOverlay>\n <DoubleContour class=\"pl-autocomplete__contour\" />\n </div>\n </div>\n <div v-if=\"computedError\" class=\"pl-autocomplete__error\">{{ computedError }}</div>\n <div v-else-if=\"isLoadingOptions && loadingOptionsHelper\" class=\"pl-autocomplete__helper\">{{ loadingOptionsHelper }}</div>\n <div v-else-if=\"helper\" class=\"pl-autocomplete__helper\">{{ helper }}</div>\n </div>\n</template>\n"],"names":["He","model","I","n","ue","u","U","ce","d","f","x","$","de","i","pe","findActiveIndex","tap","renderedOptionsRef","v","ge","g","b","ref","modelOptionRef","opt","index","S","V","A","p","j","E","getErrorMessage","props","isLoadingError","Ae","computed","item","computedPlaceholder","m","y","r","G","data","_a","rootRef","Q","L","setFocusOnInput","Y","input","Z","search","h","relatedTarget","o","te","z","l","length","localIndex","newIndex","R","ae","ne","re","useLabelNotch","be","open","refDebounced","useWatchFetch","searchDebounced","Ce","H","optionsRequest","result","D","normalizeListOptions","watch","err","T","modelOptionRequest","isLoadingOptions","loading"],"mappings":"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"}
|