@milaboratories/uikit 2.10.45 → 2.11.0

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.
Files changed (41) hide show
  1. package/.turbo/turbo-build.log +19 -19
  2. package/.turbo/turbo-formatter$colon$check.log +2 -2
  3. package/.turbo/turbo-linter$colon$check.log +2 -2
  4. package/.turbo/turbo-types$colon$check.log +1 -1
  5. package/CHANGELOG.md +18 -0
  6. package/dist/components/PlNumberField/PlNumberField.js.map +1 -1
  7. package/dist/components/PlNumberField/PlNumberField.vue.d.ts +45 -75
  8. package/dist/components/PlNumberField/PlNumberField.vue.d.ts.map +1 -1
  9. package/dist/components/PlNumberField/PlNumberField.vue2.js +129 -121
  10. package/dist/components/PlNumberField/PlNumberField.vue2.js.map +1 -1
  11. package/dist/components/PlNumberField/__test__/PlNumberField.spec.d.ts.map +1 -0
  12. package/dist/components/PlNumberField/__test__/parseNumber.spec.d.ts +2 -0
  13. package/dist/components/PlNumberField/__test__/parseNumber.spec.d.ts.map +1 -0
  14. package/dist/components/PlNumberField/parseNumber.d.ts +56 -7
  15. package/dist/components/PlNumberField/parseNumber.d.ts.map +1 -1
  16. package/dist/components/PlNumberField/parseNumber.js +40 -56
  17. package/dist/components/PlNumberField/parseNumber.js.map +1 -1
  18. package/dist/components/PlNumberField/pl-number-field.css +1 -1
  19. package/dist/components/PlSearchField/PlSearchField.js.map +1 -1
  20. package/dist/components/PlSearchField/PlSearchField.style.js.map +1 -1
  21. package/dist/components/PlSearchField/PlSearchField.vue.d.ts +20 -32
  22. package/dist/components/PlSearchField/PlSearchField.vue.d.ts.map +1 -1
  23. package/dist/components/PlSearchField/PlSearchField.vue2.js +4 -2
  24. package/dist/components/PlSearchField/PlSearchField.vue2.js.map +1 -1
  25. package/dist/components/PlTextField/PlTextField.js.map +1 -1
  26. package/dist/components/PlTextField/PlTextField.vue.d.ts +46 -118
  27. package/dist/components/PlTextField/PlTextField.vue.d.ts.map +1 -1
  28. package/dist/components/PlTextField/PlTextField.vue2.js +61 -58
  29. package/dist/components/PlTextField/PlTextField.vue2.js.map +1 -1
  30. package/package.json +5 -5
  31. package/src/components/PlNumberField/PlNumberField.vue +151 -143
  32. package/src/components/PlNumberField/__test__/PlNumberField.spec.ts +296 -0
  33. package/src/components/PlNumberField/__test__/parseNumber.spec.ts +204 -0
  34. package/src/components/PlNumberField/parseNumber.ts +125 -98
  35. package/src/components/PlNumberField/pl-number-field.scss +17 -4
  36. package/src/components/PlSearchField/PlSearchField.vue +8 -4
  37. package/src/components/PlTextField/PlTextField.vue +37 -49
  38. package/src/components/PlTextField/__tests__/TextField.spec.ts +2 -2
  39. package/dist/components/PlNumberField/__tests__/PlNumberField.spec.d.ts.map +0 -1
  40. package/src/components/PlNumberField/__tests__/PlNumberField.spec.ts +0 -182
  41. /package/dist/components/PlNumberField/{__tests__ → __test__}/PlNumberField.spec.d.ts +0 -0
@@ -1,6 +1,6 @@
1
1
   WARN  Issue while reading "/home/runner/_work/platforma/platforma/.npmrc". Failed to replace env in config: ${NPMJS_TOKEN}
2
2
 
3
- > @milaboratories/uikit@2.10.45 build /home/runner/_work/platforma/platforma/lib/ui/uikit
3
+ > @milaboratories/uikit@2.11.0 build /home/runner/_work/platforma/platforma/lib/ui/uikit
4
4
  > ts-builder build --target browser-lib --build-config ./build.browser-lib.config.js
5
5
 
6
6
  Building browser-lib project...
@@ -24,7 +24,7 @@ Using custom config: ./build.browser-lib.config.js
24
24
  rendering chunks...
25
25
 
26
26
  [vite:dts] Start generate declaration files...
27
- [vite:dts] Declaration files built in 12595ms.
27
+ [vite:dts] Declaration files built in 6346ms.
28
28
 
29
29
  computing gzip size...
30
30
  dist/components/PlClipboard/PlClipboard.vue?vue&type=style&index=0&lang.css 0.04 kB │ gzip: 0.06 kB
@@ -84,7 +84,7 @@ dist/components/PlBtnSecondary/pl-btn-secondary.css
84
84
  dist/components/PlBtnGroup/pl-btn-group.css 2.53 kB │ gzip: 0.81 kB
85
85
  dist/components/PlBtnPrimary/pl-btn-primary.css 2.57 kB │ gzip: 0.84 kB
86
86
  dist/components/PlLogView/pl-log-view.css 2.61 kB │ gzip: 0.76 kB
87
- dist/components/PlNumberField/pl-number-field.css 2.61 kB │ gzip: 0.83 kB
87
+ dist/components/PlNumberField/pl-number-field.css 2.81 kB │ gzip: 0.88 kB
88
88
  dist/components/PlTextArea/pl-textarea.css 2.97 kB │ gzip: 0.87 kB
89
89
  dist/components/PlTextField/pl-text-field.css 3.30 kB │ gzip: 0.93 kB
90
90
  dist/components/PlTooltip/PlTooltip.vue?vue&type=style&index=0&lang.css 3.46 kB │ gzip: 0.82 kB
@@ -203,7 +203,7 @@ dist/components/PlBtnAccent/PlBtnAccent.js
203
203
  dist/components/PlBtnDanger/PlBtnDanger.js 0.14 kB │ gzip: 0.14 kB │ map: 1.11 kB
204
204
  dist/components/PlFileInput/PlFileInput.js 0.14 kB │ gzip: 0.14 kB │ map: 6.62 kB
205
205
  dist/components/PlStatusTag/PlStatusTag.js 0.14 kB │ gzip: 0.14 kB │ map: 0.80 kB
206
- dist/components/PlTextField/PlTextField.js 0.14 kB │ gzip: 0.14 kB │ map: 5.75 kB
206
+ dist/components/PlTextField/PlTextField.js 0.14 kB │ gzip: 0.14 kB │ map: 5.85 kB
207
207
  dist/components/SliderRange.js 0.14 kB │ gzip: 0.14 kB │ map: 8.18 kB
208
208
  dist/composition/utils.js 0.14 kB │ gzip: 0.14 kB │ map: 0.32 kB
209
209
  dist/layout/PlContainer/PlContainer.js 0.14 kB │ gzip: 0.14 kB │ map: 0.94 kB
@@ -212,7 +212,7 @@ dist/components/PlBtnPrimary/PlBtnPrimary.js
212
212
  dist/components/PlFileDialog/PlFileDialog.js 0.14 kB │ gzip: 0.14 kB │ map: 3.89 kB
213
213
  dist/components/PlDialogModal/PlDialogModal.js 0.15 kB │ gzip: 0.14 kB │ map: 4.58 kB
214
214
  dist/components/PlDropdownRef/PlDropdownRef.js 0.15 kB │ gzip: 0.14 kB │ map: 3.02 kB
215
- dist/components/PlNumberField/PlNumberField.js 0.15 kB │ gzip: 0.14 kB │ map: 9.82 kB
215
+ dist/components/PlNumberField/PlNumberField.js 0.15 kB │ gzip: 0.14 kB │ map: 10.16 kB
216
216
  dist/components/PlProgressBar/PlProgressBar.js 0.15 kB │ gzip: 0.14 kB │ map: 0.93 kB
217
217
  dist/components/ThemeSwitcher.js 0.15 kB │ gzip: 0.14 kB │ map: 0.40 kB
218
218
  dist/components/PlSlideModal/props.js 0.15 kB │ gzip: 0.15 kB │ map: 0.75 kB
@@ -374,7 +374,7 @@ dist/components/PlSlideModal/PlSlideModal.js
374
374
  dist/assets/icons/icon-assets-min/16_sort.js 0.33 kB │ gzip: 0.26 kB │ map: 0.47 kB
375
375
  dist/assets/icons/icon-assets-min/16_required.js 0.34 kB │ gzip: 0.27 kB │ map: 0.48 kB
376
376
  dist/components/PlElementList/PlElementList.js 0.34 kB │ gzip: 0.23 kB │ map: 14.40 kB
377
- dist/components/PlSearchField/PlSearchField.js 0.34 kB │ gzip: 0.23 kB │ map: 2.78 kB
377
+ dist/components/PlSearchField/PlSearchField.js 0.34 kB │ gzip: 0.23 kB │ map: 2.95 kB
378
378
  dist/components/PlSidebar/PlSidebarItem.js 0.34 kB │ gzip: 0.23 kB │ map: 1.43 kB
379
379
  dist/composition/useFilteredList.js 0.34 kB │ gzip: 0.24 kB │ map: 1.03 kB
380
380
  dist/layout/PlPlaceholder/PlPlaceholder.js 0.34 kB │ gzip: 0.23 kB │ map: 3.74 kB
@@ -698,12 +698,19 @@ dist/components/DataTable/ThCell.vue_vue_type_script_setup_true_lang.js
698
698
  dist/components/PlErrorAlert/PlErrorAlert.vue_vue_type_script_setup_true_lang.js 1.36 kB │ gzip: 0.65 kB │ map: 3.02 kB
699
699
  dist/components/PlErrorBoundary/PlErrorBoundary.vue_vue_type_script_setup_true_lang.js 1.36 kB │ gzip: 0.74 kB │ map: 2.45 kB
700
700
  dist/assets/icons/icon-assets-min/24_color-none.js 1.38 kB │ gzip: 0.64 kB │ map: 1.55 kB
701
+ [PLUGIN_TIMINGS] Warning: Your build spent significant time in plugins. Here is a breakdown:
702
+ - vite:asset (35%)
703
+ - sourcemaps (14%)
704
+ - vite:css-post (12%)
705
+ - vite:dts (9%)
706
+ - vite:vue (8%)
707
+ See https://rolldown.rs/options/checks#plugintimings for more details.
708
+ 
701
709
  dist/assets/icons/icon-assets-min/24_sina.js 1.38 kB │ gzip: 0.39 kB │ map: 1.58 kB
702
710
  dist/components/PlSlideModal/PlSlideModal.vue_vue_type_script_setup_true_lang.js 1.39 kB │ gzip: 0.70 kB │ map: 3.85 kB
703
711
  dist/components/DataTable/composition/useResize.js 1.40 kB │ gzip: 0.70 kB │ map: 3.60 kB
704
712
  dist/components/HScroll.vue_vue_type_script_setup_true_lang.js 1.40 kB │ gzip: 0.73 kB │ map: 2.40 kB
705
713
  dist/components/VScroll.vue_vue_type_script_setup_true_lang.js 1.40 kB │ gzip: 0.73 kB │ map: 2.40 kB
706
- dist/components/PlNumberField/parseNumber.js 1.42 kB │ gzip: 0.55 kB │ map: 3.96 kB
707
714
  dist/colors/color.js 1.47 kB │ gzip: 0.67 kB │ map: 3.53 kB
708
715
  dist/components/PlDropdownRef/PlDropdownRef.vue_vue_type_script_setup_true_lang.js 1.48 kB │ gzip: 0.71 kB │ map: 3.47 kB
709
716
  dist/layout/PlPlaceholder/PlPlaceholder.vue_vue_type_script_setup_true_lang.js 1.49 kB │ gzip: 0.76 kB │ map: 4.80 kB
@@ -731,11 +738,12 @@ dist/assets/icons/icon-assets-min/24_debug.js
731
738
  dist/components/PlSlideModal/PlPureSlideModal.vue_vue_type_script_setup_true_lang.js 1.90 kB │ gzip: 0.89 kB │ map: 5.14 kB
732
739
  dist/composition/useTransformedModel.js 1.91 kB │ gzip: 0.90 kB │ map: 3.22 kB
733
740
  dist/assets/icons/icon-assets-min/24_pen-tool.js 1.94 kB │ gzip: 1.00 kB │ map: 2.08 kB
734
- dist/components/PlSearchField/PlSearchField.vue_vue_type_script_setup_true_lang.js 1.95 kB │ gzip: 0.95 kB │ map: 3.55 kB
735
741
  dist/components/InputRange.vue_vue_type_script_setup_true_lang.js 1.95 kB │ gzip: 0.88 kB │ map: 3.98 kB
736
742
  dist/assets/icons/icon-assets-min/16_sorter.js 1.98 kB │ gzip: 0.51 kB │ map: 2.16 kB
737
743
  dist/components/PlProgressCell/PlProgressCell.vue_vue_type_script_setup_true_lang.js 2.00 kB │ gzip: 0.92 kB │ map: 5.53 kB
738
744
  dist/components/PlLoaderLogo.vue_vue_type_script_setup_true_lang.js 2.04 kB │ gzip: 1.16 kB │ map: 2.80 kB
745
+ dist/components/PlSearchField/PlSearchField.vue_vue_type_script_setup_true_lang.js 2.04 kB │ gzip: 0.99 kB │ map: 3.78 kB
746
+ dist/components/PlNumberField/parseNumber.js 2.05 kB │ gzip: 0.97 kB │ map: 8.76 kB
739
747
  dist/helpers/utils.js 2.08 kB │ gzip: 0.85 kB │ map: 5.89 kB
740
748
  dist/assets/icons/icon-assets-min/24_violin-jitter.js 2.09 kB │ gzip: 0.98 kB │ map: 2.26 kB
741
749
  dist/assets/icons/icon-assets-min/24_bindot.js 2.10 kB │ gzip: 0.37 kB │ map: 2.38 kB
@@ -764,15 +772,15 @@ dist/components/PlTooltip/PlTooltip.vue_vue_type_script_setup_true_lang.js
764
772
  dist/layout/PlPlaceholder/paint-worklet.js 3.40 kB │ gzip: 0.68 kB │ map: 3.65 kB
765
773
  dist/components/DataTable/TableComponent.vue_vue_type_script_setup_true_lang.js 3.51 kB │ gzip: 1.49 kB │ map: 10.60 kB
766
774
  dist/components/PlLogView/PlLogView.vue_vue_type_script_setup_true_lang.js 3.59 kB │ gzip: 1.53 kB │ map: 10.52 kB
767
- dist/components/PlTextField/PlTextField.vue_vue_type_script_setup_true_lang.js 4.07 kB │ gzip: 1.66 kB │ map: 11.86 kB
768
775
  dist/components/PlElementList/PlElementListItem.vue_vue_type_script_setup_true_lang.js 4.08 kB │ gzip: 1.30 kB │ map: 10.07 kB
776
+ dist/components/PlTextField/PlTextField.vue_vue_type_script_setup_true_lang.js 4.10 kB │ gzip: 1.66 kB │ map: 11.92 kB
769
777
  dist/composition/useSortable2.js 4.37 kB │ gzip: 1.64 kB │ map: 11.54 kB
770
778
  dist/assets/icons/icon-assets-min/24_heatmap.js 4.42 kB │ gzip: 0.99 kB │ map: 4.65 kB
771
779
  dist/components/PlBtnSplit/PlBtnSplit.vue_vue_type_script_setup_true_lang.js 4.52 kB │ gzip: 1.94 kB │ map: 13.35 kB
772
780
  dist/components/Slider.vue_vue_type_script_setup_true_lang.js 4.59 kB │ gzip: 1.83 kB │ map: 8.92 kB
773
781
  dist/components/PlFileInput/PlFileInput.vue_vue_type_script_setup_true_lang.js 5.17 kB │ gzip: 2.02 kB │ map: 14.66 kB
774
782
  dist/components/SliderRange.vue_vue_type_script_setup_true_lang.js 5.83 kB │ gzip: 2.09 kB │ map: 12.27 kB
775
- dist/components/PlNumberField/PlNumberField.vue_vue_type_script_setup_true_lang.js 6.12 kB │ gzip: 2.23 kB │ map: 17.47 kB
783
+ dist/components/PlNumberField/PlNumberField.vue_vue_type_script_setup_true_lang.js 6.13 kB │ gzip: 2.24 kB │ map: 17.53 kB
776
784
  dist/components/PlDropdownLine/PlDropdownLine.vue_vue_type_script_setup_true_lang.js 7.12 kB │ gzip: 2.50 kB │ map: 20.90 kB
777
785
  dist/components/PlFileDialog/Remote.vue_vue_type_script_setup_true_lang.js 7.22 kB │ gzip: 2.71 kB │ map: 15.25 kB
778
786
  dist/components/SliderRangeTriple.vue_vue_type_script_setup_true_lang.js 7.26 kB │ gzip: 2.38 kB │ map: 15.58 kB
@@ -788,13 +796,5 @@ dist/composition/filters/metadata.js
788
796
  dist/index.js 12.50 kB │ gzip: 2.94 kB │ map: 21.27 kB
789
797
  dist/components/PlSvg/PlSvg.vue_vue_type_script_setup_true_lang.js 39.32 kB │ gzip: 3.34 kB │ map: 8.66 kB
790
798
 
791
- [PLUGIN_TIMINGS] Warning: Your build spent significant time in plugins. Here is a breakdown:
792
- - vite:asset (31%)
793
- - sourcemaps (15%)
794
- - vite:dts (13%)
795
- - vite:css-post (11%)
796
- - vite:vue (9%)
797
- See https://rolldown.rs/options/checks#plugintimings for more details.
798
- 
799
- ✓ built in 14.60s
799
+ ✓ built in 8.38s
800
800
  Build completed successfully
@@ -1,6 +1,6 @@
1
1
   WARN  Issue while reading "/home/runner/_work/platforma/platforma/.npmrc". Failed to replace env in config: ${NPMJS_TOKEN}
2
2
 
3
- > @milaboratories/uikit@2.10.45 formatter:check /home/runner/_work/platforma/platforma/lib/ui/uikit
3
+ > @milaboratories/uikit@2.11.0 formatter:check /home/runner/_work/platforma/platforma/lib/ui/uikit
4
4
  > ts-builder formatter --check
5
5
 
6
6
  Checking formatting...
@@ -8,5 +8,5 @@ Checking formatting...
8
8
  Checking formatting...
9
9
 
10
10
  All matched files use the correct format.
11
- Finished in 6809ms on 380 files using 8 threads.
11
+ Finished in 7097ms on 381 files using 8 threads.
12
12
  Format check completed successfully
@@ -1,10 +1,10 @@
1
1
   WARN  Issue while reading "/home/runner/_work/platforma/platforma/.npmrc". Failed to replace env in config: ${NPMJS_TOKEN}
2
2
 
3
- > @milaboratories/uikit@2.10.45 linter:check /home/runner/_work/platforma/platforma/lib/ui/uikit
3
+ > @milaboratories/uikit@2.11.0 linter:check /home/runner/_work/platforma/platforma/lib/ui/uikit
4
4
  > ts-builder linter --check
5
5
 
6
6
  Linting project...
7
7
  ↳ oxlint --config /home/runner/_work/platforma/platforma/lib/ui/uikit/.oxlintrc.json --deny-warnings
8
8
  Found 0 warnings and 0 errors.
9
- Finished in 31ms on 307 files with 98 rules using 8 threads.
9
+ Finished in 37ms on 308 files with 98 rules using 8 threads.
10
10
  Linting completed successfully
@@ -1,6 +1,6 @@
1
1
   WARN  Issue while reading "/home/runner/_work/platforma/platforma/.npmrc". Failed to replace env in config: ${NPMJS_TOKEN}
2
2
 
3
- > @milaboratories/uikit@2.10.45 types:check /home/runner/_work/platforma/platforma/lib/ui/uikit
3
+ > @milaboratories/uikit@2.11.0 types:check /home/runner/_work/platforma/platforma/lib/ui/uikit
4
4
  > ts-builder type-check --target browser-lib
5
5
 
6
6
  ↳ vue-tsc.js --noEmit --project ./tsconfig.json --customConditions ,
package/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # @milaboratories/uikit
2
2
 
3
+ ## 2.11.0
4
+
5
+ ### Minor Changes
6
+
7
+ - d59f5fe: New collection columns implementation
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies [d59f5fe]
12
+ - @milaboratories/helpers@1.14.0
13
+ - @platforma-sdk/model@1.60.0
14
+
15
+ ## 2.10.46
16
+
17
+ ### Patch Changes
18
+
19
+ - 68bc3e4: update uikit file/number input
20
+
3
21
  ## 2.10.45
4
22
 
5
23
  ### Patch Changes
@@ -1 +1 @@
1
- {"version":3,"file":"PlNumberField.js","names":[],"sources":["../../../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(\n 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 /** Makes some of corners not rounded */\n groupPosition?:\n | \"top\"\n | \"bottom\"\n | \"left\"\n | \"right\"\n | \"top-left\"\n | \"top-right\"\n | \"bottom-left\"\n | \"bottom-right\"\n | \"middle\";\n }>(),\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 groupPosition: undefined,\n },\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(() => 10 ** (props.step.toString().split(\".\").at(1)?.length ?? 0));\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 =\n ((parsedValue || 0) * multiplier.value + props.step * multiplier.value) / 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 =\n ((parsedValue || 0) * multiplier.value - props.step * multiplier.value) / 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\" :group-position=\"groupPosition\" />\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=\"\n focused = false;\n applyChanges();\n \"\n />\n </div>\n <div\n v-if=\"useIncrementButtons\"\n class=\"pl-number-field__icons d-flex-column\"\n @mousedown=\"onMousedown\"\n >\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\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n >\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\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n >\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"],"mappings":""}
1
+ {"version":3,"file":"PlNumberField.js","names":[],"sources":["../../../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 * label=\"Even Number\"\n * />\n */\nexport default {\n name: \"PlNumberField\",\n};\n</script>\n\n<script\n setup\n lang=\"ts\"\n generic=\"\n R extends true | false,\n V extends undefined | number,\n C extends Exclude<V, R extends true ? undefined : never>\n \"\n>\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 { PlIcon16 } from \"../PlIcon16\";\nimport { tryParseNumber, numberToDecimalString, validateNumber } from \"./parseNumber\";\n\nconst modelValue = defineModel<V>({ required: true });\n\nconst emit = defineEmits<{\n blur: [value: V];\n focus: [value: V];\n enter: [value: V];\n}>();\n\nconst props = withDefaults(\n defineProps<{\n /** If `true`, the field is required and will show an error if left empty. */\n required?: R;\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 /** Input is disabled if true */\n disabled?: boolean;\n /** If true - remove buttons on the right */\n disableSteps?: 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 /** If `true`, shows a clear button that resets value to `undefined`. If a function, calls it to get the reset value. */\n clearable?: (R extends true ? never : boolean) | (() => C);\n /** Makes some of corners not rounded */\n groupPosition?:\n | \"top\"\n | \"bottom\"\n | \"left\"\n | \"right\"\n | \"top-left\"\n | \"top-right\"\n | \"bottom-left\"\n | \"bottom-right\"\n | \"middle\";\n }>(),\n { step: 1 },\n);\n\nconst slots = useSlots();\n\nconst rootRef = ref<HTMLElement>();\n\nuseLabelNotch(rootRef);\n\nconst displayText = ref(numberToDecimalString(modelValue.value));\n\n// Sync display when model changes externally (parent, increment/decrement).\n// Skip if the current input already represents the same value.\nwatch(modelValue, (newVal) => {\n const parsed = tryParseNumber(displayText.value);\n if (parsed.value === newVal) return;\n displayText.value = numberToDecimalString(newVal);\n});\n\nfunction handleInput(event: Event) {\n const input = event.target as HTMLInputElement;\n displayText.value = input.value;\n\n const result = tryParseNumber(input.value);\n if (result.value !== undefined) {\n modelValue.value = result.value as V;\n }\n}\n\n// On Enter or blur: if parseable, replace display with canonical decimal string.\n// Converts exponential (1e-5) to plain form (0.00001).\nfunction commitValue() {\n const text = displayText.value.trim();\n const result = tryParseNumber(text);\n\n // Empty or partial (-, ., -.) → clear display and reset model for non-required fields\n if (text === \"\" || (result.value === undefined && result.error === undefined)) {\n displayText.value = \"\";\n if (!props.required) {\n modelValue.value = undefined as V;\n }\n return;\n }\n\n if (result.value !== undefined) {\n modelValue.value = result.value as V;\n displayText.value = numberToDecimalString(result.value);\n }\n}\n\nconst error = computed(() => {\n if (props.errorMessage) return props.errorMessage;\n\n const result = tryParseNumber(displayText.value);\n if (result.error) return result.error;\n if (result.value !== undefined) {\n return validateNumber(result.value, props);\n }\n\n if (props.required && displayText.value.trim() === \"\") {\n return \"Value is required\";\n }\n\n return undefined;\n});\n\nconst canShowClearable = computed(\n () =>\n props.clearable &&\n (modelValue.value !== undefined || displayText.value.trim() !== \"\") &&\n !props.disabled,\n);\n\nfunction clear() {\n if (typeof props.clearable === \"function\") {\n modelValue.value = props.clearable();\n displayText.value = numberToDecimalString(modelValue.value);\n } else {\n modelValue.value = undefined as V;\n displayText.value = \"\";\n }\n}\n\nconst isIncrementDisabled = computed(() => {\n if (error.value) return true;\n return (\n props.maxValue !== undefined &&\n modelValue.value !== undefined &&\n modelValue.value >= props.maxValue\n );\n});\n\nconst isDecrementDisabled = computed(() => {\n if (error.value) return true;\n return (\n props.minValue !== undefined &&\n modelValue.value !== undefined &&\n modelValue.value <= props.minValue\n );\n});\n\nconst multiplier = computed(() => 10 ** (props.step.toString().split(\".\").at(1)?.length ?? 0));\n\nfunction increment() {\n if (isIncrementDisabled.value) return;\n\n let nV: number;\n if (modelValue.value === undefined) {\n nV = props.minValue ?? 0;\n } else {\n nV =\n ((modelValue.value || 0) * multiplier.value + props.step * multiplier.value) /\n multiplier.value;\n }\n\n modelValue.value = (props.maxValue !== undefined ? Math.min(props.maxValue, nV) : nV) as V;\n}\n\nfunction decrement() {\n if (isDecrementDisabled.value) return;\n\n let nV: number;\n if (modelValue.value === undefined) {\n nV = 0;\n } else {\n nV =\n ((modelValue.value || 0) * multiplier.value - props.step * multiplier.value) /\n multiplier.value;\n }\n\n modelValue.value = (props.minValue !== undefined ? Math.max(props.minValue, nV) : nV) as V;\n}\n\nfunction handleBlur() {\n commitValue();\n emit(\"blur\", modelValue.value);\n}\n\nfunction handleFocus() {\n emit(\"focus\", modelValue.value);\n}\n\nfunction handleKeyDown(e: KeyboardEvent) {\n if (e.code === \"Enter\") {\n commitValue();\n emit(\"enter\", modelValue.value);\n }\n\n if ([\"ArrowDown\", \"ArrowUp\"].includes(e.code)) {\n e.preventDefault();\n }\n\n if (!props.disableSteps && e.code === \"ArrowUp\") {\n increment();\n }\n\n if (!props.disableSteps && e.code === \"ArrowDown\") {\n decrement();\n }\n}\n\n// Prevent selecting beyond input content on triple-click etc.\nfunction handleMousedown(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: !!error, disabled: disabled }\"\n class=\"pl-number-field d-flex-column\"\n @keydown=\"handleKeyDown\"\n >\n <div class=\"pl-number-field__main-wrapper d-flex\">\n <DoubleContour class=\"pl-number-field__contour\" :group-position=\"groupPosition\" />\n <div class=\"pl-number-field__wrapper flex-grow d-flex flex-align-center\">\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 type=\"text\"\n inputmode=\"numeric\"\n :value=\"displayText\"\n :disabled=\"disabled\"\n :placeholder=\"placeholder\"\n class=\"text-s flex-grow\"\n @input=\"handleInput\"\n @focusout=\"handleBlur\"\n @focusin=\"handleFocus\"\n />\n <PlIcon16\n v-if=\"canShowClearable\"\n class=\"pl-number-field__clearable\"\n name=\"delete-clear\"\n @click.stop=\"clear\"\n />\n </div>\n <div\n v-if=\"!props.disableSteps\"\n class=\"pl-number-field__icons d-flex-column\"\n @mousedown=\"handleMousedown\"\n >\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\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n >\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\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n >\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=\"error\" class=\"pl-number-field__error\">\n {{ error }}\n </div>\n </div>\n</template>\n"],"mappings":""}
@@ -8,84 +8,54 @@
8
8
  * <PlNumberField
9
9
  * v-model="evenNumber"
10
10
  * :validate="(v) => v % 2 !== 0 ? 'Number must be even' : undefined"
11
- * :update-on-enter-or-click-outside="true"
12
11
  * label="Even Number"
13
12
  * />
14
13
  */
15
- declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<{
16
- modelValue: number | undefined;
17
- } & {
18
- /** Input is disabled if true */
19
- disabled?: boolean;
20
- /** Label on the top border of the field, empty by default */
21
- label?: string;
22
- /** Input placeholder, empty by default */
23
- placeholder?: string;
24
- /** Step for increment/decrement buttons, 1 by default */
25
- step?: number;
26
- /** If defined - show an error if value is lower */
27
- minValue?: number;
28
- /** If defined - show an error if value is higher */
29
- maxValue?: number;
30
- /** If false - remove buttons on the right */
31
- useIncrementButtons?: boolean;
32
- /** If true - changes do not apply immediately, they apply only by removing focus from the input (by click enter or by click outside) */
33
- updateOnEnterOrClickOutside?: boolean;
34
- /** Error message that shows always when it's provided, without other checks */
35
- errorMessage?: string;
36
- /** Additional validity check for input value that must return an error text if failed */
37
- validate?: (v: number) => string | undefined;
38
- /** Makes some of corners not rounded */
39
- groupPosition?: "top" | "bottom" | "left" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | "middle";
40
- }, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
41
- "update:modelValue": (value: number | undefined) => any;
42
- }, string, import('vue').PublicProps, Readonly<{
43
- modelValue: number | undefined;
44
- } & {
45
- /** Input is disabled if true */
46
- disabled?: boolean;
47
- /** Label on the top border of the field, empty by default */
48
- label?: string;
49
- /** Input placeholder, empty by default */
50
- placeholder?: string;
51
- /** Step for increment/decrement buttons, 1 by default */
52
- step?: number;
53
- /** If defined - show an error if value is lower */
54
- minValue?: number;
55
- /** If defined - show an error if value is higher */
56
- maxValue?: number;
57
- /** If false - remove buttons on the right */
58
- useIncrementButtons?: boolean;
59
- /** If true - changes do not apply immediately, they apply only by removing focus from the input (by click enter or by click outside) */
60
- updateOnEnterOrClickOutside?: boolean;
61
- /** Error message that shows always when it's provided, without other checks */
62
- errorMessage?: string;
63
- /** Additional validity check for input value that must return an error text if failed */
64
- validate?: (v: number) => string | undefined;
65
- /** Makes some of corners not rounded */
66
- groupPosition?: "top" | "bottom" | "left" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | "middle";
67
- }> & Readonly<{
68
- "onUpdate:modelValue"?: ((value: number | undefined) => any) | undefined;
69
- }>, {
70
- label: string;
71
- placeholder: string;
72
- step: number;
73
- groupPosition: "top" | "bottom" | "left" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | "middle";
74
- validate: (v: number) => string | undefined;
75
- minValue: number;
76
- maxValue: number;
77
- useIncrementButtons: boolean;
78
- errorMessage: string;
79
- }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
80
- rootRef: HTMLDivElement;
81
- inputRef: HTMLInputElement;
82
- }, HTMLDivElement>, {
83
- tooltip?(_: {}): any;
84
- }>;
85
- export default _default;
86
- type __VLS_WithTemplateSlots<T, S> = T & {
87
- new (): {
88
- $slots: S;
14
+ declare const _default: <R extends true | false, V extends undefined | number, C extends Exclude<V, R extends true ? undefined : never>>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
15
+ props: __VLS_PrettifyLocal<Pick<Partial<{}> & Omit<{
16
+ readonly onBlur?: ((value: V) => any) | undefined;
17
+ readonly onFocus?: ((value: V) => any) | undefined;
18
+ readonly "onUpdate:modelValue"?: ((value: V) => any) | undefined;
19
+ readonly onEnter?: ((value: V) => any) | undefined;
20
+ } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, never>, "onFocus" | "onBlur" | "onUpdate:modelValue" | "onEnter"> & ({
21
+ modelValue: V;
22
+ } & {
23
+ /** If `true`, the field is required and will show an error if left empty. */
24
+ required?: R;
25
+ /** Label on the top border of the field, empty by default */
26
+ label?: string;
27
+ /** Input placeholder, empty by default */
28
+ placeholder?: string;
29
+ /** Step for increment/decrement buttons, 1 by default */
30
+ step?: number;
31
+ /** If defined - show an error if value is lower */
32
+ minValue?: number;
33
+ /** If defined - show an error if value is higher */
34
+ maxValue?: number;
35
+ /** Input is disabled if true */
36
+ disabled?: boolean;
37
+ /** If true - remove buttons on the right */
38
+ disableSteps?: boolean;
39
+ /** Error message that shows always when it's provided, without other checks */
40
+ errorMessage?: string;
41
+ /** Additional validity check for input value that must return an error text if failed */
42
+ validate?: (v: number) => string | undefined;
43
+ /** If `true`, shows a clear button that resets value to `undefined`. If a function, calls it to get the reset value. */
44
+ clearable?: (R extends true ? never : boolean) | (() => C);
45
+ /** Makes some of corners not rounded */
46
+ groupPosition?: "top" | "bottom" | "left" | "right" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | "middle";
47
+ }) & Partial<{}>> & import('vue').PublicProps;
48
+ expose(exposed: import('vue').ShallowUnwrapRef<{}>): void;
49
+ attrs: any;
50
+ slots: {
51
+ tooltip?(_: {}): any;
89
52
  };
53
+ emit: (((evt: "blur", value: V) => void) & ((evt: "focus", value: V) => void) & ((evt: "enter", value: V) => void)) & ((evt: "update:modelValue", value: V) => void);
54
+ }>) => import('vue').VNode & {
55
+ __ctx?: Awaited<typeof __VLS_setup>;
90
56
  };
57
+ export default _default;
58
+ type __VLS_PrettifyLocal<T> = {
59
+ [K in keyof T]: T[K];
60
+ } & {};
91
61
  //# sourceMappingURL=PlNumberField.vue.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PlNumberField.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlNumberField/PlNumberField.vue"],"names":[],"mappings":"AA4UA,OAAO,wBAAwB,CAAC;AAQhC;;;;;;;;;;;;;GAaG;;gBA0OS,MAAM,GAAG,SAAS;;IAvO1B,gCAAgC;eACrB,OAAO;IAClB,6DAA6D;YACrD,MAAM;IACd,0CAA0C;kBAC5B,MAAM;IACpB,yDAAyD;WAClD,MAAM;IACb,oDAAoD;eACzC,MAAM;IACjB,oDAAoD;eACzC,MAAM;IACjB,6CAA6C;0BACvB,OAAO;IAC7B,yIAAyI;kCAC3G,OAAO;IACrC,+EAA+E;mBAChE,MAAM;IACrB,yFAAyF;eAC9E,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS;IAC5C,wCAAwC;oBAEpC,KAAK,GACL,QAAQ,GACR,MAAM,GACN,OAAO,GACP,UAAU,GACV,WAAW,GACX,aAAa,GACb,cAAc,GACd,QAAQ;;;;gBAyMJ,MAAM,GAAG,SAAS;;IAvO1B,gCAAgC;eACrB,OAAO;IAClB,6DAA6D;YACrD,MAAM;IACd,0CAA0C;kBAC5B,MAAM;IACpB,yDAAyD;WAClD,MAAM;IACb,oDAAoD;eACzC,MAAM;IACjB,oDAAoD;eACzC,MAAM;IACjB,6CAA6C;0BACvB,OAAO;IAC7B,yIAAyI;kCAC3G,OAAO;IACrC,+EAA+E;mBAChE,MAAM;IACrB,yFAAyF;eAC9E,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS;IAC5C,wCAAwC;oBAEpC,KAAK,GACL,QAAQ,GACR,MAAM,GACN,OAAO,GACP,UAAU,GACV,WAAW,GACX,aAAa,GACb,cAAc,GACd,QAAQ;;;;WA3BJ,MAAM;iBAEA,MAAM;UAEb,MAAM;mBAeT,KAAK,GACL,QAAQ,GACR,MAAM,GACN,OAAO,GACP,UAAU,GACV,WAAW,GACX,aAAa,GACb,cAAc,GACd,QAAQ;cAXD,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS;cAVjC,MAAM;cAEN,MAAM;yBAEK,OAAO;kBAId,MAAM;;;;;qBA8VK,GAAG;;AAjXjC,wBA4aK;AAcL,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"PlNumberField.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlNumberField/PlNumberField.vue"],"names":[],"mappings":"AAoVA,OAAO,wBAAwB,CAAC;AAShC;;;;;;;;;;;;GAYG;yBAEC,CAAC,SAAS,IAAI,GAAG,KAAK,EACtB,CAAC,SAAS,SAAS,GAAG,MAAM,EAC5B,CAAC,SAAS,OAAO,CAAC,CAAC,EAAE,CAAC,SAAS,IAAI,GAAG,SAAS,GAAG,KAAK,CAAC,EAE3D,aAAa,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,EAC9D,YAAY,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,EAC3G,eAAe,WAAW,CAAC,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,EACjE;WAwaO,mBAAmB,CAAC;;;;;;oBAvMhB,CAAC;;QAtNT,6EAA6E;mBAClE,CAAC;QACZ,6DAA6D;gBACrD,MAAM;QACd,0CAA0C;sBAC5B,MAAM;QACpB,yDAAyD;eAClD,MAAM;QACb,oDAAoD;mBACzC,MAAM;QACjB,oDAAoD;mBACzC,MAAM;QACjB,gCAAgC;mBACrB,OAAO;QAClB,4CAA4C;uBAC7B,OAAO;QACtB,+EAA+E;uBAChE,MAAM;QACrB,yFAAyF;mBAC9E,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS;QAC5C,wHAAwH;oBAC5G,CAAC,CAAC,SAAS,IAAI,GAAG,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC1D,wCAAwC;wBAEpC,KAAK,GACL,QAAQ,GACR,MAAM,GACN,OAAO,GACP,UAAU,GACV,WAAW,GACX,aAAa,GACb,cAAc,GACd,QAAQ;oBA6X8E,CAAC,4BAA2B;oBACzG,OAAO,KAAK,EAAE,gBAAgB,CAAC,EAAE,CAAC,GAAG,IAAI;WAClD,GAAG;;yBAnDmB,GAAG;;UAqD1B,8JAAoC;EAEvC,KACQ,OAAO,KAAK,EAAE,KAAK,GAAG;IAAE,KAAK,CAAC,EAAE,OAAO,CAAC,OAAO,WAAW,CAAC,CAAA;CAAE;AAvbzE,wBAub4E;AAG5E,KAAK,mBAAmB,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAG,GAAG,EAAE,CAAC"}