@platforma-sdk/ui-vue 1.42.1 → 1.42.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,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.42.1 build /home/runner/_work/platforma/platforma/sdk/ui-vue
3
+ > @platforma-sdk/ui-vue@1.42.2 build /home/runner/_work/platforma/platforma/sdk/ui-vue
4
4
  > vite build
5
5
 
6
6
  vite v6.3.5 building for production...
7
7
  transforming...
8
- ✓ 899 modules transformed.
8
+ ✓ 900 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 6433ms.
13
+ [vite:dts] Declaration files built in 5831ms.
14
14
 
15
15
  dist/_virtual/re.js  0.08 kB │ gzip: 0.10 kB │ map: 0.09 kB
16
16
  dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/constant.js  0.09 kB │ gzip: 0.10 kB │ map: 0.32 kB
@@ -38,18 +38,18 @@ computing gzip size...
38
38
  dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/number.js  0.11 kB │ gzip: 0.12 kB │ map: 0.79 kB
39
39
  dist/components/PlAgCsvExporter/PlAgCsvExporter.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
40
40
  dist/lib/ui/uikit/dist/helpers/math.js  0.12 kB │ gzip: 0.13 kB │ map: 0.36 kB
41
- dist/components/PlAgCellProgress/PlAgCellProgress.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
42
41
  dist/components/PlAgColumnHeader/PlAgColumnHeader.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
42
+ dist/components/PlAgCellProgress/PlAgCellProgress.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
43
43
  dist/components/PlAgRowNumHeader.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
44
44
  dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/constant.js  0.12 kB │ gzip: 0.12 kB │ map: 0.40 kB
45
45
  dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/constant.js  0.12 kB │ gzip: 0.12 kB │ map: 0.40 kB
46
46
  dist/components/PlAgDataTable/PlAgOverlayLoading.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
47
- dist/components/PlAgRowNumCheckbox/PlAgRowNumCheckbox.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
48
47
  dist/components/PlTableFilters/PlTableAddFilterV2.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
48
+ dist/components/PlAgRowNumCheckbox/PlAgRowNumCheckbox.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
49
49
  dist/plugins/Monetization/MonetizationSidebar.vue2.js  0.13 kB │ gzip: 0.12 kB │ map: 0.11 kB
50
50
  dist/components/PlTableFilters/PlTableFilterEntryV2.vue2.js  0.13 kB │ gzip: 0.12 kB │ map: 0.11 kB
51
- dist/components/PlAgTextAndButtonCell/PlAgTextAndButtonCell.vue2.js  0.13 kB │ gzip: 0.12 kB │ map: 0.11 kB
52
51
  dist/components/PlAgGridColumnManager/PlAgGridColumnManager.vue2.js  0.13 kB │ gzip: 0.12 kB │ map: 0.11 kB
52
+ dist/components/PlAgTextAndButtonCell/PlAgTextAndButtonCell.vue2.js  0.13 kB │ gzip: 0.12 kB │ map: 0.11 kB
53
53
  dist/lib/ui/uikit/dist/components/PlRadio/keys.js  0.13 kB │ gzip: 0.13 kB │ map: 0.46 kB
54
54
  dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/size.js  0.13 kB │ gzip: 0.13 kB │ map: 0.49 kB
55
55
  dist/components/ValueOrErrorsComponent.vue2.js  0.13 kB │ gzip: 0.12 kB │ map: 0.11 kB
@@ -151,8 +151,8 @@ computing gzip size...
151
151
  dist/lib/ui/uikit/dist/components/PlRadio/PlRadio.vue.js  0.27 kB │ gzip: 0.21 kB │ map: 0.10 kB
152
152
  dist/_virtual/index.js  0.27 kB │ gzip: 0.21 kB │ map: 0.09 kB
153
153
  dist/components/PlMultiSequenceAlignment/Toolbar.vue.js  0.27 kB │ gzip: 0.21 kB │ map: 0.10 kB
154
- dist/lib/ui/uikit/dist/assets/icons/icon-assets-min/24_linetype-longdash.svg.js  0.27 kB │ gzip: 0.23 kB │ map: 0.50 kB
155
154
  dist/lib/ui/uikit/dist/components/PlChartStackedBar/Legends.vue.js  0.27 kB │ gzip: 0.21 kB │ map: 0.10 kB
155
+ dist/lib/ui/uikit/dist/assets/icons/icon-assets-min/24_linetype-longdash.svg.js  0.27 kB │ gzip: 0.23 kB │ map: 0.50 kB
156
156
  dist/lib/ui/uikit/dist/assets/icons/icon-assets-min/16_chevron-first.svg.js  0.28 kB │ gzip: 0.23 kB │ map: 0.48 kB
157
157
  dist/lib/ui/uikit/dist/components/PlIcon16/PlIcon16.vue.js  0.28 kB │ gzip: 0.22 kB │ map: 0.10 kB
158
158
  dist/lib/ui/uikit/dist/components/PlIcon24/PlIcon24.vue.js  0.28 kB │ gzip: 0.22 kB │ map: 0.10 kB
@@ -554,7 +554,7 @@ computing gzip size...
554
554
  dist/lib/ui/uikit/dist/assets/icons/icon-assets-min/24_bubble.svg.js  0.77 kB │ gzip: 0.40 kB │ map: 1.00 kB
555
555
  dist/plugins/Monetization/EndOfPeriod.vue2.js  0.77 kB │ gzip: 0.47 kB │ map: 1.55 kB
556
556
  dist/lib/ui/uikit/dist/assets/icons/icon-assets-min/24_container.svg.js  0.78 kB │ gzip: 0.43 kB │ map: 1.08 kB
557
- dist/lib/ui/uikit/dist/components/PlAccordion/ExpandTransition.vue.js  0.78 kB │ gzip: 0.43 kB │ map: 1.34 kB
557
+ dist/lib/ui/uikit/dist/components/PlAccordion/ExpandTransition.vue2.js  0.78 kB │ gzip: 0.43 kB │ map: 1.35 kB
558
558
  dist/node_modules/.pnpm/canonicalize@2.1.0/node_modules/canonicalize/lib/canonicalize.js  0.80 kB │ gzip: 0.45 kB │ map: 2.18 kB
559
559
  dist/lib/ui/uikit/dist/node_modules/.pnpm/canonicalize@2.1.0/node_modules/canonicalize/lib/canonicalize.js  0.80 kB │ gzip: 0.45 kB │ map: 2.20 kB
560
560
  dist/lib/ui/uikit/dist/components/DataTable/adapters/AsyncData.js  0.81 kB │ gzip: 0.43 kB │ map: 2.16 kB
@@ -705,6 +705,7 @@ computing gzip size...
705
705
  dist/AgGridVue/createAgGridColDef.js  1.61 kB │ gzip: 0.72 kB │ map: 9.40 kB
706
706
  dist/lib/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  1.61 kB │ gzip: 0.80 kB │ map: 4.03 kB
707
707
  dist/lib/ui/uikit/dist/components/PlTabs/PlTabs.vue.js  1.61 kB │ gzip: 0.80 kB │ map: 2.14 kB
708
+ dist/lib/ui/uikit/dist/components/PlNumberField/parseNumber.js  1.61 kB │ gzip: 0.56 kB │ map: 4.44 kB
708
709
  dist/lib/ui/uikit/dist/base/BtnBase.vue.js  1.63 kB │ gzip: 0.74 kB │ map: 1.80 kB
709
710
  dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/on.js  1.63 kB │ gzip: 0.68 kB │ map: 4.38 kB
710
711
  dist/lib/ui/uikit/dist/components/PlFileDialog/Shortcuts.vue2.js  1.63 kB │ gzip: 0.60 kB │ map: 0.14 kB
@@ -757,7 +758,7 @@ computing gzip size...
757
758
  dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/continuous.js  2.53 kB │ gzip: 0.94 kB │ map: 7.07 kB
758
759
  dist/lib/util/helpers/dist/index.js  2.55 kB │ gzip: 1.06 kB │ map: 25.73 kB
759
760
  dist/plugins/Monetization/LimitCard.vue3.js  2.55 kB │ gzip: 0.92 kB │ map: 0.11 kB
760
- dist/lib/ui/uikit/dist/components/PlAccordion/PlAccordionSection.vue2.js  2.56 kB │ gzip: 1.16 kB │ map: 2.90 kB
761
+ dist/lib/ui/uikit/dist/components/PlAccordion/PlAccordionSection.vue2.js  2.57 kB │ gzip: 1.15 kB │ map: 2.90 kB
761
762
  dist/node_modules/.pnpm/@vueuse_shared@13.3.0_vue@3.5.13_typescript@5.6.3_/node_modules/@vueuse/shared/index.js  2.57 kB │ gzip: 1.13 kB │ map: 50.11 kB
762
763
  dist/components/PlTableFilters/PlTableFiltersV2.vue3.js  2.58 kB │ gzip: 0.94 kB │ map: 0.12 kB
763
764
  dist/plugins/Monetization/LimitCard.vue2.js  2.61 kB │ gzip: 0.88 kB │ map: 4.83 kB
@@ -849,7 +850,7 @@ computing gzip size...
849
850
  dist/lib/ui/uikit/dist/components/PlElementList/PlElementList.vue2.js  9.17 kB │ gzip: 2.43 kB │ map: 17.22 kB
850
851
  dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-color@3.1.0/node_modules/d3-color/src/color.js  9.19 kB │ gzip: 3.33 kB │ map: 22.02 kB
851
852
  dist/components/PlTableFilters/filters_logic.js  9.69 kB │ gzip: 2.25 kB │ map: 20.32 kB
852
- dist/lib/ui/uikit/dist/components/PlNumberField/PlNumberField.vue.js  10.42 kB │ gzip: 3.33 kB │ map: 13.57 kB
853
+ dist/lib/ui/uikit/dist/components/PlNumberField/PlNumberField.vue.js  10.00 kB │ gzip: 3.17 kB │ map: 12.09 kB
853
854
  dist/lib/ui/uikit/dist/components/PlFileInput/PlFileInput.vue.js  10.78 kB │ gzip: 3.38 kB │ map: 8.09 kB
854
855
  dist/lib/ui/uikit/dist/demo-site-data/all-css-variables.js  11.00 kB │ gzip: 1.76 kB │ map: 18.24 kB
855
856
  dist/lib/ui/uikit/dist/components/PlDropdownLine/PlDropdownLine.vue.js  14.70 kB │ gzip: 3.91 kB │ map: 12.75 kB
@@ -876,6 +877,6 @@ computing gzip size...
876
877
  dist/lib/ui/uikit/dist/node_modules/.pnpm/zod@3.23.8/node_modules/zod/lib/index.js  83.80 kB │ gzip: 17.23 kB │ map: 240.83 kB
877
878
  dist/node_modules/.pnpm/zod@3.23.8/node_modules/zod/lib/index.js  83.81 kB │ gzip: 17.26 kB │ map: 241.15 kB
878
879
  dist/lib/ui/uikit/dist/index.js 497.77 kB │ gzip: 191.75 kB │ map: 0.18 kB
879
- dist/lib/ui/uikit/dist/components/PlSlideModal/PlPureSlideModal.vue.js 601.01 kB │ gzip: 204.69 kB │ map: 0.21 kB
880
- dist/lib/ui/uikit/dist/components/DataTable/TableComponent.vue.js 602.90 kB │ gzip: 205.54 kB │ map: 0.27 kB
881
- ✓ built in 10.70s
880
+ dist/lib/ui/uikit/dist/components/PlSlideModal/PlPureSlideModal.vue.js 601.12 kB │ gzip: 204.71 kB │ map: 0.21 kB
881
+ dist/lib/ui/uikit/dist/components/DataTable/TableComponent.vue.js 603.01 kB │ gzip: 205.56 kB │ map: 0.27 kB
882
+ ✓ built in 9.90s
@@ -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.42.1 type-check /home/runner/_work/platforma/platforma/sdk/ui-vue
3
+ > @platforma-sdk/ui-vue@1.42.2 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,5 +1,12 @@
1
1
  # @platforma-sdk/ui-vue
2
2
 
3
+ ## 1.42.2
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [911f928]
8
+ - @milaboratories/uikit@2.3.26
9
+
3
10
  ## 1.42.1
4
11
 
5
12
  ### Patch Changes
@@ -1,4 +1,4 @@
1
- import { defineComponent as I, ref as b, watchEffect as K, computed as P, createElementBlock as $, openBlock as f, Fragment as L, createElementVNode as r, createVNode as o, normalizeClass as d, unref as n, withModifiers as S, withCtx as s, createTextVNode as i, createCommentVNode as U, createBlock as T, withKeys as C } from "vue";
1
+ import { defineComponent as I, ref as b, watchEffect as K, computed as P, createElementBlock as $, openBlock as f, Fragment as L, createElementVNode as r, createVNode as o, normalizeClass as u, unref as n, withModifiers as S, withCtx as s, createTextVNode as i, createCommentVNode as U, createBlock as T, withKeys as C } from "vue";
2
2
  import { isJsonEqual as k } from "../../lib/util/helpers/dist/index.js";
3
3
  import "../../lib/ui/uikit/dist/index.js";
4
4
  import { defaultAlignmentParams as A } from "./multi-sequence-alignment.js";
@@ -19,7 +19,7 @@ const h = /* @__PURE__ */ I({
19
19
  colorSchemeOptions: {}
20
20
  },
21
21
  emits: ["updateSettings", "export"],
22
- setup(u, { emit: w }) {
22
+ setup(d, { emit: w }) {
23
23
  const O = w, p = b(!1);
24
24
  function m(t, e) {
25
25
  O("updateSettings", { [t]: e });
@@ -27,27 +27,27 @@ const h = /* @__PURE__ */ I({
27
27
  function v(t, e) {
28
28
  m(
29
29
  "widgets",
30
- e ? [...u.settings.widgets, t] : u.settings.widgets.filter((l) => t !== l)
30
+ e ? [...d.settings.widgets, t] : d.settings.widgets.filter((l) => t !== l)
31
31
  );
32
32
  }
33
- const a = b({ ...u.settings.alignmentParams });
33
+ const a = b({ ...d.settings.alignmentParams });
34
34
  K(() => {
35
- a.value = { ...u.settings.alignmentParams };
35
+ a.value = { ...d.settings.alignmentParams };
36
36
  });
37
37
  const E = P(
38
- () => !k(u.settings.alignmentParams, a.value)
38
+ () => !k(d.settings.alignmentParams, a.value)
39
39
  ), N = P(
40
- () => !k(u.settings.alignmentParams, A)
40
+ () => !k(d.settings.alignmentParams, A)
41
41
  );
42
42
  return (t, e) => (f(), $(L, null, [
43
43
  r("div", {
44
- class: d(t.$style.container)
44
+ class: u(t.$style.container)
45
45
  }, [
46
46
  r("div", {
47
- class: d(t.$style.line)
47
+ class: u(t.$style.line)
48
48
  }, [
49
49
  r("div", {
50
- class: d(t.$style.section)
50
+ class: u(t.$style.section)
51
51
  }, [
52
52
  o(n(q), {
53
53
  label: "Sequence Columns",
@@ -71,7 +71,7 @@ const h = /* @__PURE__ */ I({
71
71
  }, null, 8, ["model-value", "options"])
72
72
  ], 2),
73
73
  r("div", {
74
- class: d(t.$style.buttons)
74
+ class: u(t.$style.buttons)
75
75
  }, [
76
76
  o(n(y), {
77
77
  icon: "settings",
@@ -94,10 +94,10 @@ const h = /* @__PURE__ */ I({
94
94
  ], 2)
95
95
  ], 2),
96
96
  r("div", {
97
- class: d(t.$style.line)
97
+ class: u(t.$style.line)
98
98
  }, [
99
99
  r("div", {
100
- class: d(t.$style.section)
100
+ class: u(t.$style.section)
101
101
  }, [
102
102
  o(n(g), {
103
103
  "model-value": t.settings.widgets.includes("seqLogo"),
@@ -194,7 +194,7 @@ const h = /* @__PURE__ */ I({
194
194
  }, 8, ["modelValue"]),
195
195
  E.value ? (f(), $("div", {
196
196
  key: 0,
197
- class: d(t.$style["pending-changes"])
197
+ class: u(t.$style["pending-changes"])
198
198
  }, [
199
199
  o(n(G), {
200
200
  onClick: e[14] || (e[14] = (l) => m("alignmentParams", a.value))
@@ -215,7 +215,7 @@ const h = /* @__PURE__ */ I({
215
215
  ], 2)) : U("", !0),
216
216
  N.value ? (f(), T(n(z), {
217
217
  key: 1,
218
- class: d(t.$style["reset-button"]),
218
+ class: u(t.$style["reset-button"]),
219
219
  icon: "reverse",
220
220
  onClick: e[16] || (e[16] = (l) => m("alignmentParams", void 0))
221
221
  }, {
@@ -56,7 +56,7 @@ import "../../colors/gradient.js";
56
56
  .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}
57
57
  .pl-dropdown-multi{--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-multi{--options-bg: #1B1B1F}.pl-dropdown-multi__envelope{font-family:var(--control-font-family);min-width:160px}.pl-dropdown-multi 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-multi label>span{overflow:hidden;white-space:pre;text-overflow:ellipsis}.pl-dropdown-multi__container{position:absolute;top:0;left:0;right:0;border-radius:6px;min-height:var(--control-height);padding:1px;color:var(--txt-01)}.pl-dropdown-multi__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-multi__options{position:absolute;top:0;z-index:var(--z-dropdown-options);border:1px solid var(--border-color-div-grey);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-multi__options::-webkit-scrollbar{width:var(--scrollbar-width, 6px);height:5px;background-color:transparent;display:block}.pl-dropdown-multi__options::-webkit-scrollbar-thumb{background:var(--thumb-color);border-radius:5px}.pl-dropdown-multi__options::-webkit-scrollbar-thumb:hover{--thumb-color: var(--border-color-focus)}.pl-dropdown-multi__options .nothing-found{padding:0 10px;height:var(--control-height);line-height:20px;background-color:#fff;opacity:.5;font-style:italic}.pl-dropdown-multi__options .option{position:relative;padding:0 10px;height:var(--control-height);line-height:20px;cursor:pointer;-webkit-user-select:none;user-select:none;display:flex;align-items:center;gap:12px;--base-icon: url("data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M19.5%204.5H4.5L4.5%2019.5H19.5V4.5ZM4.5%203C3.67157%203%203%203.67157%203%204.5V19.5C3%2020.3284%203.67157%2021%204.5%2021H19.5C20.3284%2021%2021%2020.3284%2021%2019.5V4.5C21%203.67157%2020.3284%203%2019.5%203H4.5Z'%20fill='%23110529'/%3e%3c/svg%3e");--checked-icon: url("data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='3'%20y='3'%20width='18'%20height='18'%20rx='2'%20fill='%23110529'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M17.5431%208.51739L10.3333%2016.0877L6.45691%2012.0174L7.54312%2010.9829L10.3333%2013.9127L16.4569%207.48291L17.5431%208.51739Z'%20fill='white'/%3e%3c/svg%3e")}.pl-dropdown-multi__options .option .pl-dropdown-multi__checkmark{cursor:pointer;outline:none;border-radius:4px;background:var(--base-icon) no-repeat center;width:24px;height:24px}[data-theme=dark] .pl-dropdown-multi__options .option .pl-dropdown-multi__checkmark{--base-icon: url("data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M19.5%204.5H4.5L4.5%2019.5H19.5V4.5ZM4.5%203C3.67157%203%203%203.67157%203%204.5V19.5C3%2020.3284%203.67157%2021%204.5%2021H19.5C20.3284%2021%2021%2020.3284%2021%2019.5V4.5C21%203.67157%2020.3284%203%2019.5%203H4.5Z'%20fill='white'/%3e%3c/svg%3e");--checked-icon: url("data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='3'%20y='3'%20width='18'%20height='18'%20rx='2'%20fill='white'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M17.5431%208.51739L10.3333%2016.0877L6.45691%2012.0174L7.54312%2010.9829L10.3333%2013.9127L16.4569%207.48291L17.5431%208.51739Z'%20fill='%23110529'/%3e%3c/svg%3e")}.pl-dropdown-multi__options .option>span{display:block;overflow:hidden;white-space:nowrap;max-width:100%;text-overflow:ellipsis}.pl-dropdown-multi__options .option.selected{background-color:var(--color-active-select)}.pl-dropdown-multi__options .option.selected .pl-dropdown-multi__checkmark{background:var(--checked-icon) no-repeat center;width:24px;height:24px}.pl-dropdown-multi__options .option.active:not(.selected){background-color:var(--option-hover-bg)}.pl-dropdown-multi__options .option:hover{background-color:var(--option-hover-bg)}.pl-dropdown-multi__field{position:relative;border-radius:6px;overflow:hidden;background:transparent;padding-left:11px;min-height:var(--control-height);line-height:20px;cursor:pointer;display:flex;flex-direction:row;align-items:center}.pl-dropdown-multi__field .chips-container{position:absolute;top:0;left:0;bottom:0;right:30px;overflow:hidden;padding:0 60px 0 11px;line-height:20px;color:var(--contour-color);display:flex;gap:8px;align-items:center}.pl-dropdown-multi__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% - 20px);color:var(--txt-01);caret-color:var(--border-color-focus)}.pl-dropdown-multi__field input:focus{outline:none}.pl-dropdown-multi__field input:placeholder-shown{text-overflow:ellipsis}.pl-dropdown-multi__field input::placeholder{color:var(--color-placeholder)}.pl-dropdown-multi__field:hover .clear{display:block}.pl-dropdown-multi__controls{display:flex;flex-direction:row;align-items:center;gap:6px;margin-left:auto}.pl-dropdown-multi__controls .mask-16,.pl-dropdown-multi__controls .mask-24{--icon-color: var(--control-mask-fill);cursor:pointer}.pl-dropdown-multi__controls .mask-loading{--icon-color: var(--ic-accent);animation:spin 2.5s linear infinite}.pl-dropdown-multi__arrow-wrapper{display:flex;align-items:center;min-height:var(--control-height);padding-right:11px}.pl-dropdown-multi .arrow-icon{cursor:pointer}.pl-dropdown-multi .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-multi__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-multi__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-multi.open .arrow-icon.arrow-icon-default{background-color:var(--control-mask-fill);transform:rotate(-180deg)}.pl-dropdown-multi .clear{display:none;position:absolute;top:50%;transform:translateY(-50%);right:36px;z-index:1;background: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") no-repeat center;width:16px;height:16px;cursor:pointer}.pl-dropdown-multi.open,.pl-dropdown-multi:focus-within{z-index:1}.pl-dropdown-multi.open .pl-dropdown-multi__container .label,.pl-dropdown-multi:focus-within .pl-dropdown-multi__container .label{color:var(--txt-focus)}.pl-dropdown-multi.open .pl-dropdown-multi__container{z-index:1000}.pl-dropdown-multi.open .pl-dropdown-multi__field{border-radius:6px 6px 0 0}.pl-dropdown-multi.open .arrow{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-multi:hover{--contour-color: var(--control-hover-color)}.pl-dropdown-multi: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-multi:focus-within.error{--contour-border-width: 2px;--contour-box-shadow: 0 0 0 4px var(--color-error-shadow)}.pl-dropdown-multi.error{--contour-color: var(--txt-error);--label-color: var(--txt-error)}.pl-dropdown-multi.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}.pl-dropdown-multi.disabled .mask-loading{animation:spin 2.5s linear infinite;--icon-color: var(--ic-accent)}.pl-dropdown-multi__open-chips-container{padding:12px}.pl-dropdown-multi__open-chips-container .pl-chip{margin-right:4px;margin-bottom:4px}
58
58
  .pl-log-view{--log-background: var(--bg-base-light);--contour-color: var(--txt-01);--contour-border-width: 1px;--label-offset-left-x: 8px;--label-offset-right-x: 8px;--border-color-log-view: var(--border-color-div-grey);height:100%;max-height:calc(100% - var(--contour-offset));max-width:calc(100% - var(--contour-offset));border-radius:6px;background:var(--log-background);display:flex;position:relative;min-height:44px;padding-right:40px}.pl-log-view__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(--border-color-log-view);border-style:solid;box-shadow:none;z-index:0;pointer-events:none}.pl-log-view 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-log-view label>span{overflow:hidden;white-space:pre;text-overflow:ellipsis}.pl-log-view.has-error{--log-background: linear-gradient(90deg, #FFEBEB 0%, #FFFFFF 100%);--border-color-log-view: var(--border-color-error)}.pl-log-view__copy{position:absolute;top:12px;right:12px;cursor:pointer}.pl-log-view__copy .mask-24{--icon-color: var(--ic-02)}.pl-log-view__copy:hover .mask-24{--icon-color: var(--txt-01)}.pl-log-view__content{margin:12px;max-height:100%;max-width:100%;flex:1;color:var(--txt-01);font-feature-settings:"ss11" on,"ss15" on,"ss17" on;font-family:var(--font-family-monospace);white-space:pre;font-size:14px;font-weight:400;line-height:20px;--thumb-color: var(--ic-02);overflow-y:auto;overflow-x:auto}.pl-log-view__content::-webkit-scrollbar{width:var(--scrollbar-width, 6px);height:5px;background-color:transparent;display:block}.pl-log-view__content::-webkit-scrollbar-thumb{background:var(--thumb-color);border-radius:5px}.pl-log-view__content::-webkit-scrollbar-thumb:hover{--thumb-color: var(--border-color-focus)}.pl-log-view__error{margin:12px;max-height:100%;max-width:100%;flex:1;color:var(--txt-01);font-feature-settings:"ss11" on,"ss15" on,"ss17" on;font-family:var(--font-family-monospace);white-space:pre;font-size:14px;font-weight:400;line-height:20px;--thumb-color: var(--ic-02);overflow-y:auto;overflow-x:auto}.pl-log-view__error::-webkit-scrollbar{width:var(--scrollbar-width, 6px);height:5px;background-color:transparent;display:block}.pl-log-view__error::-webkit-scrollbar-thumb{background:var(--thumb-color);border-radius:5px}.pl-log-view__error::-webkit-scrollbar-thumb:hover{--thumb-color: var(--border-color-focus)}
59
- .mi-number-field{--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);--color-hint: #9d9eae}.mi-number-field ::placeholder{color:#cfd1db;opacity:1}.mi-number-field__main-wrapper{height:40px;position:relative}.mi-number-field__wrapper{padding-left:12px;border-radius:6px}.mi-number-field__wrapper.withoutArrows{padding-right:12px}.mi-number-field__icons{width:40px;border-radius:0 6px 6px 0;border-left:1px solid var(--contour-color)}.mi-number-field__icon{line-height:0}.mi-number-field__icon.disabled{cursor:not-allowed;position:relative;z-index:1}.mi-number-field__icon.disabled svg path{fill:#cfd1db}.mi-number-field__icon:hover{background-color:#9babcc29}.mi-number-field__icon:first-child{border-bottom:1px solid var(--contour-color)}.mi-number-field__hint{margin-top:3px;color:var(--color-hint)}.mi-number-field input{outline:none;border:none;width:100%;background:unset;text-overflow:ellipsis}.mi-number-field__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;transition:all .3s}.mi-number-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)}.mi-number-field:focus-within.error{--contour-border-width: 2px;--contour-box-shadow: 0 0 0 4px var(--color-error-shadow)}.mi-number-field.error{--contour-color: var(--txt-error);--label-color: var(--txt-error);--color-hint: var(--txt-error)}.mi-number-field.disabled{--contour-color: var(--color-dis-01);--control-mask-fill: var(--color-dis-01);cursor:not-allowed}.mi-number-field.disabled label,.mi-number-field.disabled .mi-number-field__hint,.mi-number-field.disabled input{color:var(--contour-color)}.mi-number-field.disabled svg path{fill:var(--contour-color)}.mi-number-field.disabled .mi-number-field__icons{pointer-events:none}.mi-number-field label{position:absolute;top:0;transform:translateY(-60%);left:var(--label-offset-left-x);display:flex;align-items:center;padding:0 4px;overflow:hidden;white-space:pre;text-overflow:ellipsis;cursor:inherit;color:var(--label-color);transition:color .3s}.mi-number-field label .required{display:inline-block;font-weight:500;font-size:12px;line-height:16px;color:var(--txt-error);margin-right:4px}
59
+ .pl-number-field{--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);--color-hint: #9d9eae}.pl-number-field ::placeholder{color:#cfd1db;opacity:1}.pl-number-field__main-wrapper{height:40px;position:relative}.pl-number-field__wrapper{padding-left:12px;border-radius:6px}.pl-number-field__wrapper.withoutArrows{padding-right:12px}.pl-number-field__icons{width:40px;border-radius:0 6px 6px 0;border-left:1px solid var(--contour-color)}.pl-number-field__icon{line-height:0}.pl-number-field__icon.disabled{cursor:not-allowed;position:relative;z-index:1}.pl-number-field__icon.disabled svg path{fill:#cfd1db}.pl-number-field__icon:hover{background-color:#9babcc29}.pl-number-field__icon:first-child{border-bottom:1px solid var(--contour-color)}.pl-number-field__hint{margin-top:3px;color:var(--color-hint)}.pl-number-field__error{margin-top:3px;color:var(--txt-error);font-size:12px;font-weight:500;line-height:16px}.pl-number-field input{outline:none;border:none;width:100%;background:unset;text-overflow:ellipsis}.pl-number-field__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;transition:all .3s}.pl-number-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-number-field:focus-within.error{--contour-border-width: 2px;--contour-box-shadow: 0 0 0 4px var(--color-error-shadow)}.pl-number-field.error{--contour-color: var(--txt-error);--label-color: var(--txt-error);--color-hint: var(--txt-error)}.pl-number-field.disabled{--contour-color: var(--color-dis-01);--control-mask-fill: var(--color-dis-01);cursor:not-allowed}.pl-number-field.disabled label,.pl-number-field.disabled .mi-number-field__hint,.pl-number-field.disabled input{color:var(--contour-color)}.pl-number-field.disabled svg path{fill:var(--contour-color)}.pl-number-field.disabled .mi-number-field__icons{pointer-events:none}.pl-number-field label{position:absolute;top:0;transform:translateY(-60%);left:var(--label-offset-left-x);display:flex;align-items:center;padding:0 4px;overflow:hidden;white-space:pre;text-overflow:ellipsis;cursor:inherit;color:var(--label-color);transition:color .3s}.pl-number-field label .required{display:inline-block;font-weight:500;font-size:12px;line-height:16px;color:var(--txt-error);margin-right:4px}
60
60
  .progress-cell{background-color:transparent;height:100%;position:relative;width:100%;overflow:hidden;border-radius:2px}.progress-cell .mask-error{--icon-color: var(--txt-error)}.progress-cell.not-started *{color:var(--txt-03)!important}.progress-cell.error *{color:var(--txt-error)!important}.progress-cell__white-bg{background-color:#fff}.progress-cell__indicator{position:absolute;height:100%;transition:width .4s ease-in-out;background:linear-gradient(90deg,#fff,#d8fac8);transition:width .2s ease-in-out}.progress-cell__body{padding:0 15px;display:flex;gap:12px;align-items:center;height:100%;width:100%;position:absolute;z-index:1}.progress-cell__stage{overflow:hidden;text-overflow:ellipsis;flex-shrink:1;text-wrap:nowrap}.progress-cell__percentage{flex-grow:1;flex-shrink:0;text-align:right}.progress-cell__stage--queued{color:var(--txt-03)}.progress-cell__infinity-loader{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;animation:move-gradient 2s linear infinite}.progress-cell__infinity-gradient{width:50%;height:100%;background:linear-gradient(90deg,#fff,#d8fac8,#fff)}@keyframes move-gradient{0%{transform:translate(-50%)}to{transform:translate(100%)}}
61
61
  .pl-slide-modal{--padding-top: 0;--padding-bottom: 0;position:absolute;top:var(--title-bar-height);right:0;bottom:0;z-index:var(--z-slide-dialog);display:flex;flex-direction:column;padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);min-width:368px;width:368px;max-width:100%;will-change:transform;background-color:#fff;border-left:1px solid var(--div-grey);box-shadow:0 8px 16px -4px #0f244d29,0 12px 32px -4px #0f244d29}.pl-slide-modal .close-dialog-btn{position:absolute;z-index:1;top:12px;right:12px;cursor:pointer;background-color:#d3d7e0;mask-image:url("data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M5.99954%2018L11.9995%2012M11.9995%2012L17.9995%206M11.9995%2012L5.99954%206M11.9995%2012L17.9995%2018'%20stroke='%23110529'%20stroke-width='1.5'/%3e%3c/svg%3e");-webkit-mask-image:url("data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M5.99954%2018L11.9995%2012M11.9995%2012L17.9995%206M11.9995%2012L5.99954%206M11.9995%2012L17.9995%2018'%20stroke='%23110529'%20stroke-width='1.5'/%3e%3c/svg%3e");mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;mask-position:center;-webkit-mask-position:center;mask-size:24px;-webkit-mask-size:24px;width:24px;height:24px}.pl-slide-modal .close-dialog-btn:hover{background-color:var(--main-dark-color)}.pl-slide-modal.has-title{--padding-top: 0}.pl-slide-modal.has-actions{--padding-bottom: 0}.pl-slide-modal__title{display:flex;align-items:center;font-family:var(--font-family-base);font-size:28px;font-style:normal;font-weight:500;line-height:40px;letter-spacing:-.56px;padding:24px;width:100%;overflow:hidden}.pl-slide-modal__title-content{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;word-break:break-word}.pl-slide-modal__actions{display:flex;align-items:center;gap:6px;min-height:88px;padding:0 24px}.pl-slide-modal__actions button{min-width:160px}.pl-slide-modal__content{flex:1;display:flex;flex-direction:column;gap:24px;padding:16px calc(24px - var(--scrollbar-width)) 16px 24px;margin:0;--thumb-color: var(--ic-02);overflow-y:auto;scrollbar-gutter:stable}.pl-slide-modal__content::-webkit-scrollbar{width:var(--scrollbar-width, 6px);height:5px;background-color:transparent;display:block}.pl-slide-modal__content::-webkit-scrollbar-thumb{background:var(--thumb-color);border-radius:5px}.pl-slide-modal__content::-webkit-scrollbar-thumb:hover{--thumb-color: var(--border-color-focus)}.pl-slide-modal__shadow{position:absolute;z-index:var(--z-slide-shadow);top:var(--title-bar-height);left:0;right:0;bottom:0;background-color:#000000a3}
62
62
  .pl-status-tag{border-radius:4px;border:1px solid var(--txt-01);padding:2px 8px;width:fit-content;height:24px}.pl-status-tag.ok{background:var(--notification-success)}.pl-status-tag.warn{background:var(--notification-warning)}.pl-status-tag.alert{background:var(--notification-error)}.pl-status-tag.hold{background:var(--notification-neutral)}
@@ -24,4 +24,4 @@ const f = /* @__PURE__ */ n({
24
24
  export {
25
25
  f as default
26
26
  };
27
- //# sourceMappingURL=ExpandTransition.vue.js.map
27
+ //# sourceMappingURL=ExpandTransition.vue2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExpandTransition.vue2.js","sources":["../../../../../../../../../lib/ui/uikit/src/components/PlAccordion/ExpandTransition.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nconst onStart = (el: Element) => {\n el.classList.add('expand-collapse-fix');\n (el as HTMLElement).style.setProperty('--component-height', el.scrollHeight + 'px');\n};\n\nconst onAfter = (el: Element) => {\n (el as HTMLElement).style.removeProperty('--component-height');\n el.classList.remove('expand-collapse-fix');\n};\n</script>\n\n<template>\n <Transition name=\"expand-collapse\" @enter=\"onStart\" @leave=\"onStart\" @after-enter=\"onAfter\" @after-leave=\"onAfter\">\n <slot/>\n </Transition>\n</template>\n\n<style>\n.expand-collapse-fix {\n overflow: hidden;\n}\n\n.expand-collapse-enter-active,\n.expand-collapse-leave-active {\n transition:\n height 0.2s ease-in-out,\n opacity 0.2s ease-in-out;\n height: var(--component-height);\n}\n\n.expand-collapse-enter-from,\n.expand-collapse-leave-to {\n opacity: 0.5;\n height: 0;\n}\n</style>\n"],"names":["onStart","el","onAfter"],"mappings":";;;;AACMA,UAAAA,IAAU,CAACC,MAAgB;AAC5BA,QAAA,UAAU,IAAI,qBAAqB,GACrCA,EAAmB,MAAM,YAAY,sBAAsBA,EAAG,eAAe,IAAI;AAAA,IAAA,GAG9EC,IAAU,CAACD,MAAgB;AAC9BA,QAAmB,MAAM,eAAe,oBAAoB,GAC1DA,EAAA,UAAU,OAAO,qBAAqB;AAAA,IAC3C;;;;;;;;;;;;;;;"}
@@ -2,7 +2,7 @@ import { defineComponent as x, mergeModels as g, inject as d, toRef as u, useMod
2
2
  import { uniqueId as w } from "../../lib/util/helpers/dist/index.js";
3
3
  import B from "../PlIcon16/PlIcon16.vue.js";
4
4
  import N from "../PlSectionSeparator/PlSectionSeparator.vue.js";
5
- import _ from "./ExpandTransition.vue.js";
5
+ import _ from "./ExpandTransition.vue2.js";
6
6
  (function() {
7
7
  try {
8
8
  if (typeof document < "u") {
@@ -1,26 +1,29 @@
1
- import { defineComponent as A, mergeModels as F, useModel as j, ref as f, useSlots as I, computed as d, watch as z, createElementBlock as v, openBlock as m, normalizeClass as p, createElementVNode as t, createCommentVNode as b, createVNode as T, withDirectives as U, createTextVNode as q, createBlock as Y, toDisplayString as C, unref as O, withCtx as Z, renderSlot as J, vModelText as K } from "vue";
2
- import P from "../../utils/DoubleContour.vue.js";
3
- import { useLabelNotch as Q } from "../../utils/useLabelNotch.js";
4
- import W from "../PlTooltip/PlTooltip.vue.js";
1
+ import { defineComponent as A, mergeModels as S, useModel as j, useSlots as z, ref as v, computed as u, watch as F, createElementBlock as f, openBlock as c, normalizeClass as m, createElementVNode as t, createCommentVNode as b, createVNode as T, withDirectives as U, createTextVNode as $, createBlock as q, toDisplayString as L, unref as M, withCtx as R, renderSlot as Y, vModelText as Z } from "vue";
2
+ import J from "../../utils/DoubleContour.vue.js";
3
+ import { useLabelNotch as K } from "../../utils/useLabelNotch.js";
4
+ import P from "../PlTooltip/PlTooltip.vue.js";
5
+ import { parseNumber as C } from "./parseNumber.js";
5
6
  (function() {
6
7
  try {
7
8
  if (typeof document < "u") {
8
- var s = document.createElement("style");
9
- s.appendChild(document.createTextNode(".mi-number-field{--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);--color-hint: #9d9eae}.mi-number-field ::placeholder{color:#cfd1db;opacity:1}.mi-number-field__main-wrapper{height:40px;position:relative}.mi-number-field__wrapper{padding-left:12px;border-radius:6px}.mi-number-field__wrapper.withoutArrows{padding-right:12px}.mi-number-field__icons{width:40px;border-radius:0 6px 6px 0;border-left:1px solid var(--contour-color)}.mi-number-field__icon{line-height:0}.mi-number-field__icon.disabled{cursor:not-allowed;position:relative;z-index:1}.mi-number-field__icon.disabled svg path{fill:#cfd1db}.mi-number-field__icon:hover{background-color:#9babcc29}.mi-number-field__icon:first-child{border-bottom:1px solid var(--contour-color)}.mi-number-field__hint{margin-top:3px;color:var(--color-hint)}.mi-number-field input{outline:none;border:none;width:100%;background:unset;text-overflow:ellipsis}.mi-number-field__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;transition:all .3s}.mi-number-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)}.mi-number-field:focus-within.error{--contour-border-width: 2px;--contour-box-shadow: 0 0 0 4px var(--color-error-shadow)}.mi-number-field.error{--contour-color: var(--txt-error);--label-color: var(--txt-error);--color-hint: var(--txt-error)}.mi-number-field.disabled{--contour-color: var(--color-dis-01);--control-mask-fill: var(--color-dis-01);cursor:not-allowed}.mi-number-field.disabled label,.mi-number-field.disabled .mi-number-field__hint,.mi-number-field.disabled input{color:var(--contour-color)}.mi-number-field.disabled svg path{fill:var(--contour-color)}.mi-number-field.disabled .mi-number-field__icons{pointer-events:none}.mi-number-field label{position:absolute;top:0;transform:translateY(-60%);left:var(--label-offset-left-x);display:flex;align-items:center;padding:0 4px;overflow:hidden;white-space:pre;text-overflow:ellipsis;cursor:inherit;color:var(--label-color);transition:color .3s}.mi-number-field label .required{display:inline-block;font-weight:500;font-size:12px;line-height:16px;color:var(--txt-error);margin-right:4px}")), document.head.appendChild(s);
9
+ var d = document.createElement("style");
10
+ d.appendChild(document.createTextNode(".pl-number-field{--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);--color-hint: #9d9eae}.pl-number-field ::placeholder{color:#cfd1db;opacity:1}.pl-number-field__main-wrapper{height:40px;position:relative}.pl-number-field__wrapper{padding-left:12px;border-radius:6px}.pl-number-field__wrapper.withoutArrows{padding-right:12px}.pl-number-field__icons{width:40px;border-radius:0 6px 6px 0;border-left:1px solid var(--contour-color)}.pl-number-field__icon{line-height:0}.pl-number-field__icon.disabled{cursor:not-allowed;position:relative;z-index:1}.pl-number-field__icon.disabled svg path{fill:#cfd1db}.pl-number-field__icon:hover{background-color:#9babcc29}.pl-number-field__icon:first-child{border-bottom:1px solid var(--contour-color)}.pl-number-field__hint{margin-top:3px;color:var(--color-hint)}.pl-number-field__error{margin-top:3px;color:var(--txt-error);font-size:12px;font-weight:500;line-height:16px}.pl-number-field input{outline:none;border:none;width:100%;background:unset;text-overflow:ellipsis}.pl-number-field__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;transition:all .3s}.pl-number-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-number-field:focus-within.error{--contour-border-width: 2px;--contour-box-shadow: 0 0 0 4px var(--color-error-shadow)}.pl-number-field.error{--contour-color: var(--txt-error);--label-color: var(--txt-error);--color-hint: var(--txt-error)}.pl-number-field.disabled{--contour-color: var(--color-dis-01);--control-mask-fill: var(--color-dis-01);cursor:not-allowed}.pl-number-field.disabled label,.pl-number-field.disabled .mi-number-field__hint,.pl-number-field.disabled input{color:var(--contour-color)}.pl-number-field.disabled svg path{fill:var(--contour-color)}.pl-number-field.disabled .mi-number-field__icons{pointer-events:none}.pl-number-field label{position:absolute;top:0;transform:translateY(-60%);left:var(--label-offset-left-x);display:flex;align-items:center;padding:0 4px;overflow:hidden;white-space:pre;text-overflow:ellipsis;cursor:inherit;color:var(--label-color);transition:color .3s}.pl-number-field label .required{display:inline-block;font-weight:500;font-size:12px;line-height:16px;color:var(--txt-error);margin-right:4px}")), document.head.appendChild(d);
10
11
  }
11
- } catch (l) {
12
- console.error("vite-plugin-css-injected-by-js", l);
12
+ } catch (o) {
13
+ console.error("vite-plugin-css-injected-by-js", o);
13
14
  }
14
15
  })();
15
- const G = { class: "mi-number-field__main-wrapper d-flex" }, H = {
16
+ const Q = { class: "pl-number-field__main-wrapper d-flex" }, W = {
16
17
  key: 0,
17
18
  class: "text-description"
18
- }, R = ["disabled", "placeholder"], X = {
19
+ }, X = ["disabled", "placeholder"], G = {
19
20
  key: 0,
20
- class: "mi-number-field__hint text-description"
21
+ class: "pl-number-field__error"
22
+ }, H = {
23
+ name: "PlNumberField"
21
24
  }, ie = /* @__PURE__ */ A({
22
- __name: "PlNumberField",
23
- props: /* @__PURE__ */ F({
25
+ ...H,
26
+ props: /* @__PURE__ */ S({
24
27
  disabled: { type: Boolean },
25
28
  label: { default: void 0 },
26
29
  placeholder: { default: void 0 },
@@ -36,136 +39,121 @@ const G = { class: "mi-number-field__main-wrapper d-flex" }, H = {
36
39
  modelModifiers: {}
37
40
  }),
38
41
  emits: ["update:modelValue"],
39
- setup(s) {
40
- const l = s, n = j(s, "modelValue"), w = f(), E = I(), c = f();
41
- Q(w);
42
- function h(e) {
43
- return e === void 0 ? "" : String(+e);
44
- }
42
+ setup(d) {
43
+ const o = d, i = j(d, "modelValue"), E = z(), w = v(), p = v();
44
+ K(w);
45
45
  function g(e) {
46
- return e === "." || e === "," || e === "-";
47
- }
48
- function _(e) {
49
- if (e === "")
50
- return;
51
- if (g(e))
52
- return 0;
53
- let o = e;
54
- return o = o.replace(",", "."), o = o.replace("−", "-"), o = o.replace("–", "-"), o = o.replace("+", ""), parseFloat(o);
46
+ return e === void 0 ? "" : String(+e);
55
47
  }
56
- const i = f(h(n.value)), a = d(() => _(i.value));
57
- z(() => n.value, (e) => {
58
- parseFloat(i.value) !== e && (i.value = h(e));
48
+ const n = u(() => C(o, s.value)), x = v(void 0), N = () => x.value = void 0;
49
+ F(i, (e) => {
50
+ const l = n.value;
51
+ (l.error || e !== l.value) && N();
59
52
  });
60
- const D = /^[-−–+]?(\d+)?[\\.,]?(\d+)?$/, V = d({
53
+ const s = u({
61
54
  get() {
62
- return i.value;
55
+ return x.value ?? g(i.value);
63
56
  },
64
57
  set(e) {
65
- const o = _(e);
66
- o === void 0 || e.match(D) && !isNaN(o) ? (i.value = e, !l.updateOnEnterOrClickOutside && !g(e) && k()) : c.value && (c.value.value = i.value);
58
+ const l = C(o, e);
59
+ x.value = l.cleanInput, l.error || o.updateOnEnterOrClickOutside ? p.value.value = l.cleanInput : i.value = l.value;
67
60
  }
68
- }), y = f(!1);
69
- function k() {
70
- if (i.value === "") {
71
- n.value = void 0;
72
- return;
73
- }
74
- n.value = a.value;
61
+ }), _ = v(!1);
62
+ function O() {
63
+ n.value.error === void 0 && (i.value = n.value.value);
75
64
  }
76
- const x = d(() => {
65
+ const h = u(() => {
77
66
  let e = [];
78
- l.errorMessage && e.push(l.errorMessage);
79
- const o = a.value;
80
- if (o !== void 0 && isNaN(o))
81
- e.push("Value is not a number");
82
- else if (l.validate && o !== void 0) {
83
- const r = l.validate(o);
67
+ o.errorMessage && e.push(o.errorMessage);
68
+ const l = n.value;
69
+ if (l.error)
70
+ e.push(l.error.message);
71
+ else if (o.validate && l.value !== void 0) {
72
+ const r = o.validate(l.value);
84
73
  r && e.push(r);
85
- } else
86
- l.minValue !== void 0 && o !== void 0 && o < l.minValue && e.push(`Value must be higher than ${l.minValue}`), l.maxValue !== void 0 && o !== void 0 && o > l.maxValue && e.push(`Value must be less than ${l.maxValue}`);
74
+ }
87
75
  return e = [...e], e.join(" ");
88
- }), B = d(() => {
89
- const e = a.value;
90
- return l.maxValue !== void 0 && e !== void 0 ? e >= l.maxValue : !1;
91
- }), L = d(() => {
92
- const e = a.value;
93
- return l.minValue !== void 0 && e !== void 0 ? e <= l.minValue : !1;
94
- }), u = d(
76
+ }), y = u(() => {
77
+ const e = n.value;
78
+ return o.maxValue !== void 0 && e.value !== void 0 ? e.value >= o.maxValue : !1;
79
+ }), V = u(() => {
80
+ const e = n.value;
81
+ return o.minValue !== void 0 && e.value !== void 0 ? e.value <= o.minValue : !1;
82
+ }), a = u(
95
83
  () => {
96
84
  var e;
97
- return 10 ** (((e = l.step.toString().split(".").at(1)) == null ? void 0 : e.length) ?? 0);
85
+ return 10 ** (((e = o.step.toString().split(".").at(1)) == null ? void 0 : e.length) ?? 0);
98
86
  }
99
87
  );
100
- function M() {
101
- const e = a.value;
102
- if (!B.value) {
103
- let o;
104
- e === void 0 ? o = l.minValue ? l.minValue : 0 : o = ((e || 0) * u.value + l.step * u.value) / u.value, n.value = l.maxValue !== void 0 ? Math.min(l.maxValue, o) : o;
88
+ function k() {
89
+ const e = n.value.value;
90
+ if (!y.value) {
91
+ let l;
92
+ e === void 0 ? l = o.minValue ? o.minValue : 0 : l = ((e || 0) * a.value + o.step * a.value) / a.value, i.value = o.maxValue !== void 0 ? Math.min(o.maxValue, l) : l;
105
93
  }
106
94
  }
107
- function N() {
108
- const e = a.value;
109
- if (!L.value) {
110
- let o;
111
- e === void 0 ? o = 0 : o = ((e || 0) * u.value - l.step * u.value) / u.value, n.value = l.minValue !== void 0 ? Math.max(l.minValue, o) : o;
95
+ function B() {
96
+ const e = n.value.value;
97
+ if (!V.value) {
98
+ let l;
99
+ e === void 0 ? l = 0 : l = ((e || 0) * a.value - o.step * a.value) / a.value, i.value = o.minValue !== void 0 ? Math.max(o.minValue, l) : l;
112
100
  }
113
101
  }
114
- function S(e) {
115
- var o, r;
116
- l.updateOnEnterOrClickOutside && (e.code === "Escape" && (i.value = h(n.value), (o = c.value) == null || o.blur()), e.code === "Enter" && ((r = c.value) == null || r.blur())), e.code === "Enter" && (i.value = String(n.value)), ["ArrowDown", "ArrowUp"].includes(e.code) && e.preventDefault(), l.useIncrementButtons && e.code === "ArrowUp" && M(), l.useIncrementButtons && e.code === "ArrowDown" && N();
102
+ function I(e) {
103
+ var l, r;
104
+ o.updateOnEnterOrClickOutside && (e.code === "Escape" && (s.value = g(i.value), (l = p.value) == null || l.blur()), e.code === "Enter" && ((r = p.value) == null || r.blur())), e.code === "Enter" && (s.value = String(i.value)), ["ArrowDown", "ArrowUp"].includes(e.code) && e.preventDefault(), o.useIncrementButtons && e.code === "ArrowUp" && k(), o.useIncrementButtons && e.code === "ArrowDown" && B();
117
105
  }
118
- const $ = (e) => {
106
+ const D = (e) => {
119
107
  e.detail > 1 && e.preventDefault();
120
108
  };
121
- return (e, o) => (m(), v("div", {
122
- ref_key: "root",
109
+ return (e, l) => (c(), f("div", {
110
+ ref_key: "rootRef",
123
111
  ref: w,
124
- class: p([{ error: !!x.value.trim(), disabled: e.disabled }, "mi-number-field d-flex-column"]),
125
- onKeydown: o[3] || (o[3] = (r) => S(r))
112
+ class: m([{ error: !!h.value.trim(), disabled: e.disabled }, "pl-number-field d-flex-column"]),
113
+ onKeydown: l[3] || (l[3] = (r) => I(r))
126
114
  }, [
127
- t("div", G, [
128
- T(P, { class: "mi-number-field__contour" }),
115
+ t("div", Q, [
116
+ T(J, { class: "pl-number-field__contour" }),
129
117
  t("div", {
130
- class: p(["mi-number-field__wrapper flex-grow d-flex flex-align-center", { withoutArrows: !e.useIncrementButtons }])
118
+ class: m(["pl-number-field__wrapper flex-grow d-flex flex-align-center", { withoutArrows: !e.useIncrementButtons }])
131
119
  }, [
132
- e.label ? (m(), v("label", H, [
133
- q(C(e.label) + " ", 1),
134
- O(E).tooltip ? (m(), Y(O(W), {
120
+ e.label ? (c(), f("label", W, [
121
+ $(L(e.label) + " ", 1),
122
+ M(E).tooltip ? (c(), q(M(P), {
135
123
  key: 0,
136
124
  class: "info",
137
125
  position: "top"
138
126
  }, {
139
- tooltip: Z(() => [
140
- J(e.$slots, "tooltip")
127
+ tooltip: R(() => [
128
+ Y(e.$slots, "tooltip")
141
129
  ]),
142
130
  _: 3
143
131
  })) : b("", !0)
144
132
  ])) : b("", !0),
145
133
  U(t("input", {
146
- ref_key: "input",
147
- ref: c,
148
- "onUpdate:modelValue": o[0] || (o[0] = (r) => V.value = r),
134
+ ref_key: "inputRef",
135
+ ref: p,
136
+ "onUpdate:modelValue": l[0] || (l[0] = (r) => s.value = r),
149
137
  disabled: e.disabled,
150
138
  placeholder: e.placeholder,
151
139
  class: "text-s flex-grow",
152
- onFocusin: o[1] || (o[1] = (r) => y.value = !0),
153
- onFocusout: o[2] || (o[2] = (r) => {
154
- y.value = !1, k();
140
+ onFocusin: l[1] || (l[1] = (r) => _.value = !0),
141
+ onFocusout: l[2] || (l[2] = (r) => {
142
+ _.value = !1, O();
155
143
  })
156
- }, null, 40, R), [
157
- [K, V.value]
144
+ }, null, 40, X), [
145
+ [Z, s.value]
158
146
  ])
159
147
  ], 2),
160
- e.useIncrementButtons ? (m(), v("div", {
148
+ e.useIncrementButtons ? (c(), f("div", {
161
149
  key: 0,
162
- class: "mi-number-field__icons d-flex-column",
163
- onMousedown: $
150
+ class: "pl-number-field__icons d-flex-column",
151
+ onMousedown: D
164
152
  }, [
165
153
  t("div", {
166
- class: p([{ disabled: B.value }, "mi-number-field__icon d-flex flex-justify-center uc-pointer flex-grow flex-align-center"]),
167
- onClick: M
168
- }, o[4] || (o[4] = [
154
+ class: m([{ disabled: y.value }, "pl-number-field__icon d-flex flex-justify-center uc-pointer flex-grow flex-align-center"]),
155
+ onClick: k
156
+ }, l[4] || (l[4] = [
169
157
  t("svg", {
170
158
  xmlns: "http://www.w3.org/2000/svg",
171
159
  width: "16",
@@ -182,9 +170,9 @@ const G = { class: "mi-number-field__main-wrapper d-flex" }, H = {
182
170
  ], -1)
183
171
  ]), 2),
184
172
  t("div", {
185
- class: p([{ disabled: L.value }, "mi-number-field__icon d-flex flex-justify-center uc-pointer flex-grow flex-align-center"]),
186
- onClick: N
187
- }, o[5] || (o[5] = [
173
+ class: m([{ disabled: V.value }, "pl-number-field__icon d-flex flex-justify-center uc-pointer flex-grow flex-align-center"]),
174
+ onClick: B
175
+ }, l[5] || (l[5] = [
188
176
  t("svg", {
189
177
  xmlns: "http://www.w3.org/2000/svg",
190
178
  width: "16",
@@ -202,7 +190,7 @@ const G = { class: "mi-number-field__main-wrapper d-flex" }, H = {
202
190
  ]), 2)
203
191
  ], 32)) : b("", !0)
204
192
  ]),
205
- x.value.trim() ? (m(), v("div", X, C(x.value), 1)) : b("", !0)
193
+ h.value.trim() ? (c(), f("div", G, L(h.value), 1)) : b("", !0)
206
194
  ], 34));
207
195
  }
208
196
  });
@@ -1 +1 @@
1
- {"version":3,"file":"PlNumberField.vue.js","sources":["../../../../../../../../../lib/ui/uikit/src/components/PlNumberField/PlNumberField.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport './pl-number-field.scss';\nimport DoubleContour from '../../utils/DoubleContour.vue';\nimport { useLabelNotch } from '../../utils/useLabelNotch';\nimport { computed, ref, useSlots, watch } from 'vue';\nimport { PlTooltip } from '../PlTooltip';\n\ntype NumberInputProps = {\n /** Input is disabled if true */\n disabled?: boolean;\n /** Label on the top border of the field, empty by default */\n label?: string;\n /** Input placeholder, empty by default */\n placeholder?: string;\n /** Step for increment/decrement buttons, 1 by default */\n step?: number;\n /** If defined - show an error if value is lower */\n minValue?: number;\n /** If defined - show an error if value is higher */\n maxValue?: number;\n /** If false - remove buttons on the right */\n useIncrementButtons?: boolean;\n /** If true - changes do not apply immediately, they apply only by removing focus from the input (by click enter or by click outside) */\n updateOnEnterOrClickOutside?: boolean;\n /** Error message that shows always when it's provided, without other checks */\n errorMessage?: string;\n /** Additional validity check for input value that must return an error text if failed */\n validate?: (v: number) => string | undefined;\n};\n\nconst props = withDefaults(defineProps<NumberInputProps>(), {\n step: 1,\n label: undefined,\n placeholder: undefined,\n minValue: undefined,\n maxValue: undefined,\n useIncrementButtons: true,\n updateOnEnter: false,\n errorMessage: undefined,\n validate: undefined,\n});\n\nconst modelValue = defineModel<number | undefined>({ required: true });\n\nconst root = ref<HTMLElement>();\nconst slots = useSlots();\nconst input = ref<HTMLInputElement>();\n\nuseLabelNotch(root);\n\nfunction modelToString(v: number | undefined) {\n return v === undefined ? '' : String(+v); // (+v) to avoid staying in input non-number values if they are provided in model\n}\n\nfunction isPartial(v: string) {\n return v === '.' || v === ',' || v === '-';\n}\nfunction stringToModel(v: string) {\n if (v === '') {\n return undefined;\n }\n if (isPartial(v)) {\n return 0;\n }\n let forParsing = v;\n forParsing = forParsing.replace(',', '.');\n forParsing = forParsing.replace('−', '-'); // minus, replacing for the case of input the whole copied value\n forParsing = forParsing.replace('–', '-'); // dash, replacing for the case of input the whole copied value\n forParsing = forParsing.replace('+', '');\n return parseFloat(forParsing);\n}\n\nconst innerTextValue = ref(modelToString(modelValue.value));\nconst innerNumberValue = computed(() => stringToModel(innerTextValue.value));\n\nwatch(() => modelValue.value, (outerValue) => { // update inner value if outer value is changed\n if (parseFloat(innerTextValue.value) !== outerValue) {\n innerTextValue.value = modelToString(outerValue);\n }\n});\n\nconst NUMBER_REGEX = /^[-−–+]?(\\d+)?[\\\\.,]?(\\d+)?$/; // parseFloat works without errors on strings with multiple dots, or letters in value\nconst inputValue = computed({\n get() {\n return innerTextValue.value;\n },\n set(nextValue: string) {\n const parsedValue = stringToModel(nextValue);\n // we allow to set empty value or valid numeric value, otherwise reset input value to previous valid\n if (parsedValue === undefined\n || (nextValue.match(NUMBER_REGEX) && !isNaN(parsedValue))\n ) {\n innerTextValue.value = nextValue;\n if (!props.updateOnEnterOrClickOutside && !isPartial(nextValue)) { // to avoid applying '-' or '.'\n applyChanges();\n }\n } else if (input.value) {\n input.value.value = innerTextValue.value;\n }\n },\n});\nconst focused = ref(false);\n\nfunction applyChanges() {\n if (innerTextValue.value === '') {\n modelValue.value = undefined;\n return;\n }\n modelValue.value = innerNumberValue.value;\n}\n\nconst errors = computed(() => {\n let ers: string[] = [];\n if (props.errorMessage) {\n ers.push(props.errorMessage);\n }\n const parsedValue = innerNumberValue.value;\n if (parsedValue !== undefined && isNaN(parsedValue)) {\n ers.push('Value is not a number');\n } else if (props.validate && parsedValue !== undefined) {\n const error = props.validate(parsedValue);\n if (error) {\n ers.push(error);\n }\n } else {\n if (props.minValue !== undefined && parsedValue !== undefined && parsedValue < props.minValue) {\n ers.push(`Value must be higher than ${props.minValue}`);\n }\n if (props.maxValue !== undefined && parsedValue !== undefined && parsedValue > props.maxValue) {\n ers.push(`Value must be less than ${props.maxValue}`);\n }\n }\n\n ers = [...ers];\n\n return ers.join(' ');\n});\n\nconst isIncrementDisabled = computed(() => {\n const parsedValue = innerNumberValue.value;\n if (props.maxValue !== undefined && parsedValue !== undefined) {\n return parsedValue >= props.maxValue;\n }\n return false;\n});\n\nconst isDecrementDisabled = computed(() => {\n const parsedValue = innerNumberValue.value;\n if (props.minValue !== undefined && parsedValue !== undefined) {\n return parsedValue <= props.minValue;\n }\n return false;\n});\n\nconst multiplier = computed(() =>\n 10 ** (props.step.toString().split('.').at(1)?.length ?? 0),\n);\n\nfunction increment() {\n const parsedValue = innerNumberValue.value;\n if (!isIncrementDisabled.value) {\n let nV;\n if (parsedValue === undefined) {\n nV = props.minValue ? props.minValue : 0;\n } else {\n nV = ((parsedValue || 0) * multiplier.value\n + props.step * multiplier.value)\n / multiplier.value;\n }\n modelValue.value = props.maxValue !== undefined ? Math.min(props.maxValue, nV) : nV;\n }\n}\n\nfunction decrement() {\n const parsedValue = innerNumberValue.value;\n if (!isDecrementDisabled.value) {\n let nV;\n if (parsedValue === undefined) {\n nV = 0;\n } else {\n nV = ((parsedValue || 0) * multiplier.value\n - props.step * multiplier.value)\n / multiplier.value;\n }\n modelValue.value = props.minValue !== undefined ? Math.max(props.minValue, nV) : nV;\n }\n}\n\nfunction handleKeyPress(e: { code: string; preventDefault(): void }) {\n if (props.updateOnEnterOrClickOutside) {\n if (e.code === 'Escape') {\n innerTextValue.value = modelToString(modelValue.value);\n input.value?.blur();\n }\n if (e.code === 'Enter') {\n input.value?.blur();\n }\n }\n\n if (e.code === 'Enter') {\n innerTextValue.value = String(modelValue.value); // to make .1 => 0.1, 10.00 => 10, remove leading zeros etc\n }\n\n if (['ArrowDown', 'ArrowUp'].includes(e.code)) {\n e.preventDefault();\n }\n if (props.useIncrementButtons && e.code === 'ArrowUp') {\n increment();\n }\n if (props.useIncrementButtons && e.code === 'ArrowDown') {\n decrement();\n }\n}\n\n// https://stackoverflow.com/questions/880512/prevent-text-selection-after-double-click#:~:text=If%20you%20encounter%20a%20situation,none%3B%20to%20the%20summary%20element.\n// this prevents selecting of more than input content in some cases,\n// but also disable selecting input content by double-click (useful feature)\nconst onMousedown = (ev: MouseEvent) => {\n if (ev.detail > 1) {\n ev.preventDefault();\n }\n};\n</script>\n\n<template>\n <div\n ref=\"root\"\n :class=\"{ error: !!errors.trim(), disabled: disabled }\"\n class=\"mi-number-field d-flex-column\"\n @keydown=\"handleKeyPress($event)\"\n >\n <div class=\"mi-number-field__main-wrapper d-flex\">\n <DoubleContour class=\"mi-number-field__contour\"/>\n <div\n class=\"mi-number-field__wrapper flex-grow d-flex flex-align-center\"\n :class=\"{withoutArrows: !useIncrementButtons}\"\n >\n <label v-if=\"label\" class=\"text-description\">\n {{ label }}\n <PlTooltip v-if=\"slots.tooltip\" class=\"info\" position=\"top\">\n <template #tooltip>\n <slot name=\"tooltip\"/>\n </template>\n </PlTooltip>\n </label>\n <input\n ref=\"input\"\n v-model=\"inputValue\"\n :disabled=\"disabled\"\n :placeholder=\"placeholder\"\n class=\"text-s flex-grow\"\n @focusin=\"focused = true\"\n @focusout=\"focused = false; applyChanges()\"\n />\n </div>\n <div v-if=\"useIncrementButtons\" class=\"mi-number-field__icons d-flex-column\" @mousedown=\"onMousedown\">\n <div\n :class=\"{ disabled: isIncrementDisabled }\"\n class=\"mi-number-field__icon d-flex flex-justify-center uc-pointer flex-grow flex-align-center\"\n @click=\"increment\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M8 4.93933L13.5303 10.4697L12.4697 11.5303L8 7.06065L3.53033 11.5303L2.46967 10.4697L8 4.93933Z\"\n fill=\"#110529\"\n />\n </svg>\n </div>\n <div\n :class=\"{ disabled: isDecrementDisabled }\"\n class=\"mi-number-field__icon d-flex flex-justify-center uc-pointer flex-grow flex-align-center\"\n @click=\"decrement\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M2.46967 6.53033L3.53033 5.46967L8 9.93934L12.4697 5.46967L13.5303 6.53033L8 12.0607L2.46967 6.53033Z\"\n fill=\"#110529\"\n />\n </svg>\n </div>\n </div>\n </div>\n <div v-if=\"errors.trim()\" class=\"mi-number-field__hint text-description\">\n {{ errors }}\n </div>\n </div>\n</template>\n"],"names":["w","__props","useLabelNotch","t","a","A","g","v","D","T","d","X","x","h","forParsing","l","watch","o","V","r","s","P","NUMBER_REGEX","O","y","parsedValue","nextValue","B","k","innerTextValue","ers","props","error","i","computed","M","nV","N","_","ev"],"mappings":"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"}
1
+ {"version":3,"file":"PlNumberField.vue.js","sources":["../../../../../../../../../lib/ui/uikit/src/components/PlNumberField/PlNumberField.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * Number input field with increment/decrement buttons, validation, and min/max constraints.\n *\n * @example\n * <PlNumberField v-model=\"price\" :step=\"0.01\" :min-value=\"0\" label=\"Price\" />\n *\n * @example\n * <PlNumberField\n * v-model=\"evenNumber\"\n * :validate=\"(v) => v % 2 !== 0 ? 'Number must be even' : undefined\"\n * :update-on-enter-or-click-outside=\"true\"\n * label=\"Even Number\"\n * />\n */\nexport default {\n name: 'PlNumberField',\n};\n</script>\n\n<script setup lang=\"ts\">\nimport './pl-number-field.scss';\nimport DoubleContour from '../../utils/DoubleContour.vue';\nimport { useLabelNotch } from '../../utils/useLabelNotch';\nimport { computed, ref, useSlots, watch } from 'vue';\nimport { PlTooltip } from '../PlTooltip';\nimport { parseNumber } from './parseNumber';\n\nconst props = withDefaults(defineProps<{\n /** Input is disabled if true */\n disabled?: boolean;\n /** Label on the top border of the field, empty by default */\n label?: string;\n /** Input placeholder, empty by default */\n placeholder?: string;\n /** Step for increment/decrement buttons, 1 by default */\n step?: number;\n /** If defined - show an error if value is lower */\n minValue?: number;\n /** If defined - show an error if value is higher */\n maxValue?: number;\n /** If false - remove buttons on the right */\n useIncrementButtons?: boolean;\n /** If true - changes do not apply immediately, they apply only by removing focus from the input (by click enter or by click outside) */\n updateOnEnterOrClickOutside?: boolean;\n /** Error message that shows always when it's provided, without other checks */\n errorMessage?: string;\n /** Additional validity check for input value that must return an error text if failed */\n validate?: (v: number) => string | undefined;\n}>(), {\n step: 1,\n label: undefined,\n placeholder: undefined,\n minValue: undefined,\n maxValue: undefined,\n useIncrementButtons: true,\n updateOnEnter: false,\n errorMessage: undefined,\n validate: undefined,\n});\n\nconst modelValue = defineModel<number | undefined>({ required: true });\n\nconst slots = useSlots();\n\nconst rootRef = ref<HTMLElement>();\nconst inputRef = ref<HTMLInputElement>();\n\nuseLabelNotch(rootRef);\n\nfunction modelToString(v: number | undefined) {\n return v === undefined ? '' : String(+v); // (+v) to avoid staying in input non-number values if they are provided in model\n}\n\nconst parsedResult = computed(() => parseNumber(props, inputValue.value));\n\nconst cachedValue = ref<string | undefined>(undefined);\n\nconst resetCachedValue = () => cachedValue.value = undefined;\n\nwatch(modelValue, (n) => {\n const r = parsedResult.value;\n if (r.error || n !== r.value) {\n resetCachedValue();\n }\n});\n\nconst inputValue = computed({\n get() {\n return cachedValue.value ?? modelToString(modelValue.value);\n },\n set(nextValue: string) {\n const r = parseNumber(props, nextValue);\n\n cachedValue.value = r.cleanInput;\n\n if (r.error || props.updateOnEnterOrClickOutside) {\n inputRef.value!.value = r.cleanInput;\n } else {\n modelValue.value = r.value;\n }\n },\n});\n\nconst focused = ref(false);\n\nfunction applyChanges() {\n if (parsedResult.value.error === undefined) {\n modelValue.value = parsedResult.value.value;\n }\n}\n\nconst errors = computed(() => {\n let ers: string[] = [];\n\n if (props.errorMessage) {\n ers.push(props.errorMessage);\n }\n\n const r = parsedResult.value;\n\n if (r.error) {\n ers.push(r.error.message);\n } else if (props.validate && r.value !== undefined) {\n const error = props.validate(r.value);\n if (error) {\n ers.push(error);\n }\n }\n\n ers = [...ers];\n\n return ers.join(' ');\n});\n\nconst isIncrementDisabled = computed(() => {\n const r = parsedResult.value;\n\n if (props.maxValue !== undefined && r.value !== undefined) {\n return r.value >= props.maxValue;\n }\n\n return false;\n});\n\nconst isDecrementDisabled = computed(() => {\n const r = parsedResult.value;\n\n if (props.minValue !== undefined && r.value !== undefined) {\n return r.value <= props.minValue;\n }\n\n return false;\n});\n\nconst multiplier = computed(() =>\n 10 ** (props.step.toString().split('.').at(1)?.length ?? 0),\n);\n\nfunction increment() {\n const r = parsedResult.value;\n\n const parsedValue = r.value;\n\n if (!isIncrementDisabled.value) {\n let nV;\n if (parsedValue === undefined) {\n nV = props.minValue ? props.minValue : 0;\n } else {\n nV = ((parsedValue || 0) * multiplier.value\n + props.step * multiplier.value)\n / multiplier.value;\n }\n modelValue.value = props.maxValue !== undefined ? Math.min(props.maxValue, nV) : nV;\n }\n}\n\nfunction decrement() {\n const r = parsedResult.value;\n\n const parsedValue = r.value;\n\n if (!isDecrementDisabled.value) {\n let nV;\n if (parsedValue === undefined) {\n nV = 0;\n } else {\n nV = ((parsedValue || 0) * multiplier.value\n - props.step * multiplier.value)\n / multiplier.value;\n }\n modelValue.value = props.minValue !== undefined ? Math.max(props.minValue, nV) : nV;\n }\n}\n\nfunction handleKeyPress(e: { code: string; preventDefault(): void }) {\n if (props.updateOnEnterOrClickOutside) {\n if (e.code === 'Escape') {\n inputValue.value = modelToString(modelValue.value);\n inputRef.value?.blur();\n }\n if (e.code === 'Enter') {\n inputRef.value?.blur();\n }\n }\n\n if (e.code === 'Enter') {\n inputValue.value = String(modelValue.value); // to make .1 => 0.1, 10.00 => 10, remove leading zeros etc\n }\n\n if (['ArrowDown', 'ArrowUp'].includes(e.code)) {\n e.preventDefault();\n }\n\n if (props.useIncrementButtons && e.code === 'ArrowUp') {\n increment();\n }\n\n if (props.useIncrementButtons && e.code === 'ArrowDown') {\n decrement();\n }\n}\n\n// https://stackoverflow.com/questions/880512/prevent-text-selection-after-double-click#:~:text=If%20you%20encounter%20a%20situation,none%3B%20to%20the%20summary%20element.\n// this prevents selecting of more than input content in some cases,\n// but also disable selecting input content by double-click (useful feature)\nconst onMousedown = (ev: MouseEvent) => {\n if (ev.detail > 1) {\n ev.preventDefault();\n }\n};\n</script>\n\n<template>\n <div\n ref=\"rootRef\"\n :class=\"{ error: !!errors.trim(), disabled: disabled }\"\n class=\"pl-number-field d-flex-column\"\n @keydown=\"handleKeyPress($event)\"\n >\n <div class=\"pl-number-field__main-wrapper d-flex\">\n <DoubleContour class=\"pl-number-field__contour\"/>\n <div\n class=\"pl-number-field__wrapper flex-grow d-flex flex-align-center\"\n :class=\"{withoutArrows: !useIncrementButtons}\"\n >\n <label v-if=\"label\" class=\"text-description\">\n {{ label }}\n <PlTooltip v-if=\"slots.tooltip\" class=\"info\" position=\"top\">\n <template #tooltip>\n <slot name=\"tooltip\"/>\n </template>\n </PlTooltip>\n </label>\n <input\n ref=\"inputRef\"\n v-model=\"inputValue\"\n :disabled=\"disabled\"\n :placeholder=\"placeholder\"\n class=\"text-s flex-grow\"\n @focusin=\"focused = true\"\n @focusout=\"focused = false; applyChanges()\"\n />\n </div>\n <div v-if=\"useIncrementButtons\" class=\"pl-number-field__icons d-flex-column\" @mousedown=\"onMousedown\">\n <div\n :class=\"{ disabled: isIncrementDisabled }\"\n class=\"pl-number-field__icon d-flex flex-justify-center uc-pointer flex-grow flex-align-center\"\n @click=\"increment\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M8 4.93933L13.5303 10.4697L12.4697 11.5303L8 7.06065L3.53033 11.5303L2.46967 10.4697L8 4.93933Z\"\n fill=\"#110529\"\n />\n </svg>\n </div>\n <div\n :class=\"{ disabled: isDecrementDisabled }\"\n class=\"pl-number-field__icon d-flex flex-justify-center uc-pointer flex-grow flex-align-center\"\n @click=\"decrement\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M2.46967 6.53033L3.53033 5.46967L8 9.93934L12.4697 5.46967L13.5303 6.53033L8 12.0607L2.46967 6.53033Z\"\n fill=\"#110529\"\n />\n </svg>\n </div>\n </div>\n </div>\n <div v-if=\"errors.trim()\" class=\"pl-number-field__error\">\n {{ errors }}\n </div>\n </div>\n</template>\n"],"names":["Y","g","__props","useLabelNotch","t","n","R","D","F","V","f","v","G","watch","i","M","w","O","$","parsedResult","u","x","r","cachedValue","h","E","ers","props","error","o","computed","k","parsedValue","nV","l","B","L","N","ev"],"mappings":"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"}
@@ -0,0 +1,77 @@
1
+ const a = /^[-−–+]?(\d+)?[.,]?(\d+)?$/;
2
+ function i(e) {
3
+ return e === "." || e === "," || e === "-";
4
+ }
5
+ function l(e) {
6
+ return e = e.trim(), e = e.replace(",", "."), e = e.replace("−", "-"), e = e.replace("–", "-"), e = e.replace("+", ""), e;
7
+ }
8
+ function o(e) {
9
+ return parseFloat(l(e));
10
+ }
11
+ function c(e) {
12
+ if (e = e.trim(), i(e))
13
+ return e;
14
+ if (/^-[^0-9.]/.test(e))
15
+ return "-";
16
+ const t = e.match(/^(.*)[.,][^0-9].*$/);
17
+ if (t)
18
+ return t[1] + ".";
19
+ if (e.match(a))
20
+ return l(e);
21
+ const r = o(e);
22
+ return isNaN(r) ? "" : String(+r);
23
+ }
24
+ function m(e, t) {
25
+ t = t.trim();
26
+ const r = c(t);
27
+ if (t === "")
28
+ return {
29
+ value: void 0,
30
+ cleanInput: r
31
+ };
32
+ if (!t.match(a))
33
+ return {
34
+ error: Error("Value is not a number"),
35
+ cleanInput: r
36
+ };
37
+ if (i(t))
38
+ return {
39
+ error: Error("Enter a number"),
40
+ cleanInput: r
41
+ };
42
+ const n = o(t);
43
+ if (isNaN(n))
44
+ return {
45
+ error: Error("Value is not a number"),
46
+ cleanInput: r
47
+ };
48
+ if (e.minValue !== void 0 && n < e.minValue)
49
+ return {
50
+ error: Error(`Value must be higher than ${e.minValue}`),
51
+ value: n,
52
+ cleanInput: r
53
+ };
54
+ if (e.maxValue !== void 0 && n > e.maxValue)
55
+ return {
56
+ error: Error(`Value must be less than ${e.maxValue}`),
57
+ value: n,
58
+ cleanInput: r
59
+ };
60
+ if (e.validate) {
61
+ const u = e.validate(n);
62
+ if (u)
63
+ return {
64
+ error: Error(u),
65
+ value: n,
66
+ cleanInput: r
67
+ };
68
+ }
69
+ return {
70
+ value: n,
71
+ cleanInput: r
72
+ };
73
+ }
74
+ export {
75
+ m as parseNumber
76
+ };
77
+ //# sourceMappingURL=parseNumber.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseNumber.js","sources":["../../../../../../../../../lib/ui/uikit/src/components/PlNumberField/parseNumber.ts"],"sourcesContent":["type ParseResult = {\n error?: Error;\n value?: number;\n cleanInput: string;\n};\n\nconst NUMBER_REGEX = /^[-−–+]?(\\d+)?[.,]?(\\d+)?$/; // parseFloat works without errors on strings with multiple dots, or letters in value\n\nfunction isPartial(v: string) {\n return v === '.' || v === ',' || v === '-';\n}\n\nfunction clearNumericValue(v: string) {\n v = v.trim();\n v = v.replace(',', '.');\n v = v.replace('−', '-'); // minus, replacing for the case of input the whole copied value\n v = v.replace('–', '-'); // dash, replacing for the case of input the whole copied value\n v = v.replace('+', '');\n return v;\n}\n\nfunction stringToNumber(v: string) {\n return parseFloat(clearNumericValue(v));\n}\n\nfunction clearInput(v: string): string {\n v = v.trim();\n\n if (isPartial(v)) {\n return v;\n }\n\n if (/^-[^0-9.]/.test(v)) {\n return '-';\n }\n\n const match = v.match(/^(.*)[.,][^0-9].*$/);\n if (match) {\n return match[1] + '.';\n }\n\n if (v.match(NUMBER_REGEX)) {\n return clearNumericValue(v);\n }\n\n const n = stringToNumber(v);\n\n return isNaN(n) ? '' : String(+n);\n}\n\nexport function parseNumber(props: {\n minValue?: number;\n maxValue?: number;\n validate?: (v: number) => string | undefined;\n}, str: string): ParseResult {\n str = str.trim();\n\n const cleanInput = clearInput(str);\n\n if (str === '') {\n return {\n value: undefined,\n cleanInput,\n };\n }\n\n if (!str.match(NUMBER_REGEX)) {\n return {\n error: Error('Value is not a number'),\n cleanInput,\n };\n }\n\n if (isPartial(str)) {\n return {\n error: Error('Enter a number'),\n cleanInput,\n };\n }\n\n const value = stringToNumber(str);\n\n if (isNaN(value)) {\n return {\n error: Error('Value is not a number'),\n cleanInput,\n };\n }\n\n if (props.minValue !== undefined && value < props.minValue) {\n return {\n error: Error(`Value must be higher than ${props.minValue}`),\n value,\n cleanInput,\n };\n }\n\n if (props.maxValue !== undefined && value > props.maxValue) {\n return {\n error: Error(`Value must be less than ${props.maxValue}`),\n value,\n cleanInput,\n };\n }\n\n if (props.validate) {\n const error = props.validate(value);\n if (error) {\n return {\n error: Error(error),\n value,\n cleanInput,\n };\n }\n }\n\n return {\n value,\n cleanInput,\n };\n}\n"],"names":["NUMBER_REGEX","isPartial","v","clearNumericValue","stringToNumber","clearInput","match","n","parseNumber","props","str","cleanInput","value","error"],"mappings":"AAMA,MAAMA,IAAe;AAErB,SAASC,EAAUC,GAAW;AAC5B,SAAOA,MAAM,OAAOA,MAAM,OAAOA,MAAM;AACzC;AAEA,SAASC,EAAkBD,GAAW;AACpCA,SAAAA,IAAIA,EAAE,KACFA,GAAAA,IAAAA,EAAE,QAAQ,KAAK,GAAG,GAClBA,IAAAA,EAAE,QAAQ,KAAK,GAAG,GAClBA,IAAAA,EAAE,QAAQ,KAAK,GAAG,GAClBA,IAAAA,EAAE,QAAQ,KAAK,EAAE,GACdA;AACT;AAEA,SAASE,EAAeF,GAAW;AAC1B,SAAA,WAAWC,EAAkBD,CAAC,CAAC;AACxC;AAEA,SAASG,EAAWH,GAAmB;AAGjC,MAFJA,IAAIA,EAAE,KAAK,GAEPD,EAAUC,CAAC;AACNA,WAAAA;AAGL,MAAA,YAAY,KAAKA,CAAC;AACb,WAAA;AAGHI,QAAAA,IAAQJ,EAAE,MAAM,oBAAoB;AACtCI,MAAAA;AACKA,WAAAA,EAAM,CAAC,IAAI;AAGhBJ,MAAAA,EAAE,MAAMF,CAAY;AACtB,WAAOG,EAAkBD,CAAC;AAGtBK,QAAAA,IAAIH,EAAeF,CAAC;AAE1B,SAAO,MAAMK,CAAC,IAAI,KAAK,OAAO,CAACA,CAAC;AAClC;AAEgB,SAAAC,EAAYC,GAIzBC,GAA0B;AAC3BA,EAAAA,IAAMA,EAAI,KAAK;AAETC,QAAAA,IAAaN,EAAWK,CAAG;AAEjC,MAAIA,MAAQ;AACH,WAAA;AAAA,MACL,OAAO;AAAA,MACP,YAAAC;AAAAA,IACF;AAGE,MAAA,CAACD,EAAI,MAAMV,CAAY;AAClB,WAAA;AAAA,MACL,OAAO,MAAM,uBAAuB;AAAA,MACpC,YAAAW;AAAAA,IACF;AAGE,MAAAV,EAAUS,CAAG;AACR,WAAA;AAAA,MACL,OAAO,MAAM,gBAAgB;AAAA,MAC7B,YAAAC;AAAAA,IACF;AAGIC,QAAAA,IAAQR,EAAeM,CAAG;AAE5B,MAAA,MAAME,CAAK;AACN,WAAA;AAAA,MACL,OAAO,MAAM,uBAAuB;AAAA,MACpC,YAAAD;AAAAA,IACF;AAGF,MAAIF,EAAM,aAAa,UAAaG,IAAQH,EAAM;AACzC,WAAA;AAAA,MACL,OAAO,MAAM,6BAA6BA,EAAM,QAAQ,EAAE;AAAA,MAC1D,OAAAG;AAAAA,MACA,YAAAD;AAAAA,IACF;AAGF,MAAIF,EAAM,aAAa,UAAaG,IAAQH,EAAM;AACzC,WAAA;AAAA,MACL,OAAO,MAAM,2BAA2BA,EAAM,QAAQ,EAAE;AAAA,MACxD,OAAAG;AAAAA,MACA,YAAAD;AAAAA,IACF;AAGF,MAAIF,EAAM,UAAU;AACZI,UAAAA,IAAQJ,EAAM,SAASG,CAAK;AAC9BC,QAAAA;AACK,aAAA;AAAA,QACL,OAAO,MAAMA,CAAK;AAAA,QAClB,OAAAD;AAAAA,QACA,YAAAD;AAAAA,MACF;AAAA,EAAA;AAIG,SAAA;AAAA,IACL,OAAAC;AAAAA,IACA,YAAAD;AAAAA,EACF;AACF;"}
@@ -1,4 +1,4 @@
1
- import { defineComponent as l, mergeDefaults as I, ref as n, useAttrs as c, createBlock as p, openBlock as Q, Teleport as h, createVNode as D, createElementBlock as C, createCommentVNode as r, withCtx as d, mergeProps as M, unref as s, withKeys as w, createElementVNode as Y, renderSlot as x } from "vue";
1
+ import { defineComponent as l, mergeDefaults as I, ref as n, useAttrs as p, createBlock as c, openBlock as Q, Teleport as h, createVNode as D, createElementBlock as C, createCommentVNode as r, withCtx as d, mergeProps as M, unref as s, withKeys as w, createElementVNode as Y, renderSlot as x } from "vue";
2
2
  import F from "../TransitionSlidePanel.vue.js";
3
3
  import { useEventListener as v } from "../../composition/useEventListener.js";
4
4
  import "../../composition/useTheme.js";
@@ -48,7 +48,7 @@ import "../../colors/gradient.js";
48
48
  .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}
49
49
  .pl-dropdown-multi{--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-multi{--options-bg: #1B1B1F}.pl-dropdown-multi__envelope{font-family:var(--control-font-family);min-width:160px}.pl-dropdown-multi 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-multi label>span{overflow:hidden;white-space:pre;text-overflow:ellipsis}.pl-dropdown-multi__container{position:absolute;top:0;left:0;right:0;border-radius:6px;min-height:var(--control-height);padding:1px;color:var(--txt-01)}.pl-dropdown-multi__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-multi__options{position:absolute;top:0;z-index:var(--z-dropdown-options);border:1px solid var(--border-color-div-grey);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-multi__options::-webkit-scrollbar{width:var(--scrollbar-width, 6px);height:5px;background-color:transparent;display:block}.pl-dropdown-multi__options::-webkit-scrollbar-thumb{background:var(--thumb-color);border-radius:5px}.pl-dropdown-multi__options::-webkit-scrollbar-thumb:hover{--thumb-color: var(--border-color-focus)}.pl-dropdown-multi__options .nothing-found{padding:0 10px;height:var(--control-height);line-height:20px;background-color:#fff;opacity:.5;font-style:italic}.pl-dropdown-multi__options .option{position:relative;padding:0 10px;height:var(--control-height);line-height:20px;cursor:pointer;-webkit-user-select:none;user-select:none;display:flex;align-items:center;gap:12px;--base-icon: url("data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M19.5%204.5H4.5L4.5%2019.5H19.5V4.5ZM4.5%203C3.67157%203%203%203.67157%203%204.5V19.5C3%2020.3284%203.67157%2021%204.5%2021H19.5C20.3284%2021%2021%2020.3284%2021%2019.5V4.5C21%203.67157%2020.3284%203%2019.5%203H4.5Z'%20fill='%23110529'/%3e%3c/svg%3e");--checked-icon: url("data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='3'%20y='3'%20width='18'%20height='18'%20rx='2'%20fill='%23110529'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M17.5431%208.51739L10.3333%2016.0877L6.45691%2012.0174L7.54312%2010.9829L10.3333%2013.9127L16.4569%207.48291L17.5431%208.51739Z'%20fill='white'/%3e%3c/svg%3e")}.pl-dropdown-multi__options .option .pl-dropdown-multi__checkmark{cursor:pointer;outline:none;border-radius:4px;background:var(--base-icon) no-repeat center;width:24px;height:24px}[data-theme=dark] .pl-dropdown-multi__options .option .pl-dropdown-multi__checkmark{--base-icon: url("data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M19.5%204.5H4.5L4.5%2019.5H19.5V4.5ZM4.5%203C3.67157%203%203%203.67157%203%204.5V19.5C3%2020.3284%203.67157%2021%204.5%2021H19.5C20.3284%2021%2021%2020.3284%2021%2019.5V4.5C21%203.67157%2020.3284%203%2019.5%203H4.5Z'%20fill='white'/%3e%3c/svg%3e");--checked-icon: url("data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='3'%20y='3'%20width='18'%20height='18'%20rx='2'%20fill='white'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M17.5431%208.51739L10.3333%2016.0877L6.45691%2012.0174L7.54312%2010.9829L10.3333%2013.9127L16.4569%207.48291L17.5431%208.51739Z'%20fill='%23110529'/%3e%3c/svg%3e")}.pl-dropdown-multi__options .option>span{display:block;overflow:hidden;white-space:nowrap;max-width:100%;text-overflow:ellipsis}.pl-dropdown-multi__options .option.selected{background-color:var(--color-active-select)}.pl-dropdown-multi__options .option.selected .pl-dropdown-multi__checkmark{background:var(--checked-icon) no-repeat center;width:24px;height:24px}.pl-dropdown-multi__options .option.active:not(.selected){background-color:var(--option-hover-bg)}.pl-dropdown-multi__options .option:hover{background-color:var(--option-hover-bg)}.pl-dropdown-multi__field{position:relative;border-radius:6px;overflow:hidden;background:transparent;padding-left:11px;min-height:var(--control-height);line-height:20px;cursor:pointer;display:flex;flex-direction:row;align-items:center}.pl-dropdown-multi__field .chips-container{position:absolute;top:0;left:0;bottom:0;right:30px;overflow:hidden;padding:0 60px 0 11px;line-height:20px;color:var(--contour-color);display:flex;gap:8px;align-items:center}.pl-dropdown-multi__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% - 20px);color:var(--txt-01);caret-color:var(--border-color-focus)}.pl-dropdown-multi__field input:focus{outline:none}.pl-dropdown-multi__field input:placeholder-shown{text-overflow:ellipsis}.pl-dropdown-multi__field input::placeholder{color:var(--color-placeholder)}.pl-dropdown-multi__field:hover .clear{display:block}.pl-dropdown-multi__controls{display:flex;flex-direction:row;align-items:center;gap:6px;margin-left:auto}.pl-dropdown-multi__controls .mask-16,.pl-dropdown-multi__controls .mask-24{--icon-color: var(--control-mask-fill);cursor:pointer}.pl-dropdown-multi__controls .mask-loading{--icon-color: var(--ic-accent);animation:spin 2.5s linear infinite}.pl-dropdown-multi__arrow-wrapper{display:flex;align-items:center;min-height:var(--control-height);padding-right:11px}.pl-dropdown-multi .arrow-icon{cursor:pointer}.pl-dropdown-multi .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-multi__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-multi__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-multi.open .arrow-icon.arrow-icon-default{background-color:var(--control-mask-fill);transform:rotate(-180deg)}.pl-dropdown-multi .clear{display:none;position:absolute;top:50%;transform:translateY(-50%);right:36px;z-index:1;background: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") no-repeat center;width:16px;height:16px;cursor:pointer}.pl-dropdown-multi.open,.pl-dropdown-multi:focus-within{z-index:1}.pl-dropdown-multi.open .pl-dropdown-multi__container .label,.pl-dropdown-multi:focus-within .pl-dropdown-multi__container .label{color:var(--txt-focus)}.pl-dropdown-multi.open .pl-dropdown-multi__container{z-index:1000}.pl-dropdown-multi.open .pl-dropdown-multi__field{border-radius:6px 6px 0 0}.pl-dropdown-multi.open .arrow{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-multi:hover{--contour-color: var(--control-hover-color)}.pl-dropdown-multi: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-multi:focus-within.error{--contour-border-width: 2px;--contour-box-shadow: 0 0 0 4px var(--color-error-shadow)}.pl-dropdown-multi.error{--contour-color: var(--txt-error);--label-color: var(--txt-error)}.pl-dropdown-multi.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}.pl-dropdown-multi.disabled .mask-loading{animation:spin 2.5s linear infinite;--icon-color: var(--ic-accent)}.pl-dropdown-multi__open-chips-container{padding:12px}.pl-dropdown-multi__open-chips-container .pl-chip{margin-right:4px;margin-bottom:4px}
50
50
  .pl-log-view{--log-background: var(--bg-base-light);--contour-color: var(--txt-01);--contour-border-width: 1px;--label-offset-left-x: 8px;--label-offset-right-x: 8px;--border-color-log-view: var(--border-color-div-grey);height:100%;max-height:calc(100% - var(--contour-offset));max-width:calc(100% - var(--contour-offset));border-radius:6px;background:var(--log-background);display:flex;position:relative;min-height:44px;padding-right:40px}.pl-log-view__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(--border-color-log-view);border-style:solid;box-shadow:none;z-index:0;pointer-events:none}.pl-log-view 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-log-view label>span{overflow:hidden;white-space:pre;text-overflow:ellipsis}.pl-log-view.has-error{--log-background: linear-gradient(90deg, #FFEBEB 0%, #FFFFFF 100%);--border-color-log-view: var(--border-color-error)}.pl-log-view__copy{position:absolute;top:12px;right:12px;cursor:pointer}.pl-log-view__copy .mask-24{--icon-color: var(--ic-02)}.pl-log-view__copy:hover .mask-24{--icon-color: var(--txt-01)}.pl-log-view__content{margin:12px;max-height:100%;max-width:100%;flex:1;color:var(--txt-01);font-feature-settings:"ss11" on,"ss15" on,"ss17" on;font-family:var(--font-family-monospace);white-space:pre;font-size:14px;font-weight:400;line-height:20px;--thumb-color: var(--ic-02);overflow-y:auto;overflow-x:auto}.pl-log-view__content::-webkit-scrollbar{width:var(--scrollbar-width, 6px);height:5px;background-color:transparent;display:block}.pl-log-view__content::-webkit-scrollbar-thumb{background:var(--thumb-color);border-radius:5px}.pl-log-view__content::-webkit-scrollbar-thumb:hover{--thumb-color: var(--border-color-focus)}.pl-log-view__error{margin:12px;max-height:100%;max-width:100%;flex:1;color:var(--txt-01);font-feature-settings:"ss11" on,"ss15" on,"ss17" on;font-family:var(--font-family-monospace);white-space:pre;font-size:14px;font-weight:400;line-height:20px;--thumb-color: var(--ic-02);overflow-y:auto;overflow-x:auto}.pl-log-view__error::-webkit-scrollbar{width:var(--scrollbar-width, 6px);height:5px;background-color:transparent;display:block}.pl-log-view__error::-webkit-scrollbar-thumb{background:var(--thumb-color);border-radius:5px}.pl-log-view__error::-webkit-scrollbar-thumb:hover{--thumb-color: var(--border-color-focus)}
51
- .mi-number-field{--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);--color-hint: #9d9eae}.mi-number-field ::placeholder{color:#cfd1db;opacity:1}.mi-number-field__main-wrapper{height:40px;position:relative}.mi-number-field__wrapper{padding-left:12px;border-radius:6px}.mi-number-field__wrapper.withoutArrows{padding-right:12px}.mi-number-field__icons{width:40px;border-radius:0 6px 6px 0;border-left:1px solid var(--contour-color)}.mi-number-field__icon{line-height:0}.mi-number-field__icon.disabled{cursor:not-allowed;position:relative;z-index:1}.mi-number-field__icon.disabled svg path{fill:#cfd1db}.mi-number-field__icon:hover{background-color:#9babcc29}.mi-number-field__icon:first-child{border-bottom:1px solid var(--contour-color)}.mi-number-field__hint{margin-top:3px;color:var(--color-hint)}.mi-number-field input{outline:none;border:none;width:100%;background:unset;text-overflow:ellipsis}.mi-number-field__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;transition:all .3s}.mi-number-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)}.mi-number-field:focus-within.error{--contour-border-width: 2px;--contour-box-shadow: 0 0 0 4px var(--color-error-shadow)}.mi-number-field.error{--contour-color: var(--txt-error);--label-color: var(--txt-error);--color-hint: var(--txt-error)}.mi-number-field.disabled{--contour-color: var(--color-dis-01);--control-mask-fill: var(--color-dis-01);cursor:not-allowed}.mi-number-field.disabled label,.mi-number-field.disabled .mi-number-field__hint,.mi-number-field.disabled input{color:var(--contour-color)}.mi-number-field.disabled svg path{fill:var(--contour-color)}.mi-number-field.disabled .mi-number-field__icons{pointer-events:none}.mi-number-field label{position:absolute;top:0;transform:translateY(-60%);left:var(--label-offset-left-x);display:flex;align-items:center;padding:0 4px;overflow:hidden;white-space:pre;text-overflow:ellipsis;cursor:inherit;color:var(--label-color);transition:color .3s}.mi-number-field label .required{display:inline-block;font-weight:500;font-size:12px;line-height:16px;color:var(--txt-error);margin-right:4px}
51
+ .pl-number-field{--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);--color-hint: #9d9eae}.pl-number-field ::placeholder{color:#cfd1db;opacity:1}.pl-number-field__main-wrapper{height:40px;position:relative}.pl-number-field__wrapper{padding-left:12px;border-radius:6px}.pl-number-field__wrapper.withoutArrows{padding-right:12px}.pl-number-field__icons{width:40px;border-radius:0 6px 6px 0;border-left:1px solid var(--contour-color)}.pl-number-field__icon{line-height:0}.pl-number-field__icon.disabled{cursor:not-allowed;position:relative;z-index:1}.pl-number-field__icon.disabled svg path{fill:#cfd1db}.pl-number-field__icon:hover{background-color:#9babcc29}.pl-number-field__icon:first-child{border-bottom:1px solid var(--contour-color)}.pl-number-field__hint{margin-top:3px;color:var(--color-hint)}.pl-number-field__error{margin-top:3px;color:var(--txt-error);font-size:12px;font-weight:500;line-height:16px}.pl-number-field input{outline:none;border:none;width:100%;background:unset;text-overflow:ellipsis}.pl-number-field__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;transition:all .3s}.pl-number-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-number-field:focus-within.error{--contour-border-width: 2px;--contour-box-shadow: 0 0 0 4px var(--color-error-shadow)}.pl-number-field.error{--contour-color: var(--txt-error);--label-color: var(--txt-error);--color-hint: var(--txt-error)}.pl-number-field.disabled{--contour-color: var(--color-dis-01);--control-mask-fill: var(--color-dis-01);cursor:not-allowed}.pl-number-field.disabled label,.pl-number-field.disabled .mi-number-field__hint,.pl-number-field.disabled input{color:var(--contour-color)}.pl-number-field.disabled svg path{fill:var(--contour-color)}.pl-number-field.disabled .mi-number-field__icons{pointer-events:none}.pl-number-field label{position:absolute;top:0;transform:translateY(-60%);left:var(--label-offset-left-x);display:flex;align-items:center;padding:0 4px;overflow:hidden;white-space:pre;text-overflow:ellipsis;cursor:inherit;color:var(--label-color);transition:color .3s}.pl-number-field label .required{display:inline-block;font-weight:500;font-size:12px;line-height:16px;color:var(--txt-error);margin-right:4px}
52
52
  .progress-cell{background-color:transparent;height:100%;position:relative;width:100%;overflow:hidden;border-radius:2px}.progress-cell .mask-error{--icon-color: var(--txt-error)}.progress-cell.not-started *{color:var(--txt-03)!important}.progress-cell.error *{color:var(--txt-error)!important}.progress-cell__white-bg{background-color:#fff}.progress-cell__indicator{position:absolute;height:100%;transition:width .4s ease-in-out;background:linear-gradient(90deg,#fff,#d8fac8);transition:width .2s ease-in-out}.progress-cell__body{padding:0 15px;display:flex;gap:12px;align-items:center;height:100%;width:100%;position:absolute;z-index:1}.progress-cell__stage{overflow:hidden;text-overflow:ellipsis;flex-shrink:1;text-wrap:nowrap}.progress-cell__percentage{flex-grow:1;flex-shrink:0;text-align:right}.progress-cell__stage--queued{color:var(--txt-03)}.progress-cell__infinity-loader{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;animation:move-gradient 2s linear infinite}.progress-cell__infinity-gradient{width:50%;height:100%;background:linear-gradient(90deg,#fff,#d8fac8,#fff)}@keyframes move-gradient{0%{transform:translate(-50%)}to{transform:translate(100%)}}
53
53
  .pl-status-tag{border-radius:4px;border:1px solid var(--txt-01);padding:2px 8px;width:fit-content;height:24px}.pl-status-tag.ok{background:var(--notification-success)}.pl-status-tag.warn{background:var(--notification-warning)}.pl-status-tag.alert{background:var(--notification-error)}.pl-status-tag.hold{background:var(--notification-neutral)}
54
54
  .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)}
@@ -74,12 +74,12 @@ const U = {
74
74
  }, f),
75
75
  emits: ["update:modelValue"],
76
76
  setup(o, { emit: e }) {
77
- const B = e, E = n(), a = c(), A = o;
77
+ const B = e, E = n(), a = p(), A = o;
78
78
  return m(E, () => {
79
79
  A.modelValue && A.closeOnOutsideClick && B("update:modelValue", !1);
80
80
  }), v(document, "keydown", (i) => {
81
81
  i.key === "Escape" && B("update:modelValue", !1);
82
- }), (i, g) => (Q(), p(h, { to: "body" }, [
82
+ }), (i, g) => (Q(), c(h, { to: "body" }, [
83
83
  D(F, null, {
84
84
  default: d(() => [
85
85
  A.modelValue ? (Q(), C("div", M({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@platforma-sdk/ui-vue",
3
- "version": "1.42.1",
3
+ "version": "1.42.2",
4
4
  "type": "module",
5
5
  "main": "dist/lib.js",
6
6
  "styles": "dist/lib.js",
@@ -25,9 +25,9 @@
25
25
  "@vueuse/integrations": "^13.3.0",
26
26
  "d3-format": "^3.1.0",
27
27
  "zod": "~3.23.8",
28
- "@milaboratories/biowasm-tools": "^1.1.0",
29
- "@milaboratories/uikit": "2.3.25",
30
- "@platforma-sdk/model": "~1.42.1"
28
+ "@platforma-sdk/model": "~1.42.1",
29
+ "@milaboratories/uikit": "2.3.26",
30
+ "@milaboratories/biowasm-tools": "^1.1.0"
31
31
  },
32
32
  "devDependencies": {
33
33
  "happy-dom": "^15.11.7",
@@ -44,8 +44,8 @@
44
44
  "fast-json-patch": "^3.1.1",
45
45
  "@faker-js/faker": "^9.2.0",
46
46
  "@milaboratories/ts-configs": "1.0.5",
47
- "@milaboratories/build-configs": "1.0.5",
48
47
  "@milaboratories/eslint-config": "^1.0.4",
48
+ "@milaboratories/build-configs": "1.0.5",
49
49
  "@milaboratories/helpers": "^1.6.19"
50
50
  },
51
51
  "scripts": {
@@ -1 +0,0 @@
1
- {"version":3,"file":"ExpandTransition.vue.js","sources":["../../../../../../../../../lib/ui/uikit/src/components/PlAccordion/ExpandTransition.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nconst onStart = (el: Element) => {\n el.classList.add('expand-collapse-fix');\n (el as HTMLElement).style.setProperty('--component-height', el.scrollHeight + 'px');\n};\n\nconst onAfter = (el: Element) => {\n (el as HTMLElement).style.removeProperty('--component-height');\n el.classList.remove('expand-collapse-fix');\n};\n</script>\n\n<template>\n <Transition name=\"expand-collapse\" @enter=\"onStart\" @leave=\"onStart\" @after-enter=\"onAfter\" @after-leave=\"onAfter\">\n <slot/>\n </Transition>\n</template>\n\n<style>\n.expand-collapse-fix {\n overflow: hidden;\n}\n\n.expand-collapse-enter-active,\n.expand-collapse-leave-active {\n transition:\n height 0.2s ease-in-out,\n opacity 0.2s ease-in-out;\n height: var(--component-height);\n}\n\n.expand-collapse-enter-from,\n.expand-collapse-leave-to {\n opacity: 0.5;\n height: 0;\n}\n</style>\n"],"names":["onStart","el","onAfter"],"mappings":";;;;AACMA,UAAAA,IAAU,CAACC,MAAgB;AAC5BA,QAAA,UAAU,IAAI,qBAAqB,GACrCA,EAAmB,MAAM,YAAY,sBAAsBA,EAAG,eAAe,IAAI;AAAA,IAAA,GAG9EC,IAAU,CAACD,MAAgB;AAC9BA,QAAmB,MAAM,eAAe,oBAAoB,GAC1DA,EAAA,UAAU,OAAO,qBAAqB;AAAA,IAC3C;;;;;;;;;;;;;;;"}