@milaboratories/uikit 2.10.44 → 2.10.46

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 (47) hide show
  1. package/.turbo/turbo-build.log +15 -15
  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 +12 -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/PlAutocomplete/__tests__/PlAutocomplete.spec.ts +18 -12
  32. package/src/components/PlAutocompleteMulti/__tests__/PlAutocompleteMulti.spec.ts +16 -12
  33. package/src/components/PlDropdown/__tests__/PlDropdown.spec.ts +2 -4
  34. package/src/components/PlDropdownMulti/__tests__/PlDropdownMulti.spec.ts +4 -6
  35. package/src/components/PlDropdownMultiRef/__tests__/PlDropdownMultiRef.spec.ts +4 -7
  36. package/src/components/PlDropdownRef/__tests__/PlDropdownRef.spec.ts +2 -6
  37. package/src/components/PlNumberField/PlNumberField.vue +151 -143
  38. package/src/components/PlNumberField/__test__/PlNumberField.spec.ts +296 -0
  39. package/src/components/PlNumberField/__test__/parseNumber.spec.ts +204 -0
  40. package/src/components/PlNumberField/parseNumber.ts +125 -98
  41. package/src/components/PlNumberField/pl-number-field.scss +17 -4
  42. package/src/components/PlSearchField/PlSearchField.vue +8 -4
  43. package/src/components/PlTextField/PlTextField.vue +37 -49
  44. package/src/components/PlTextField/__tests__/TextField.spec.ts +2 -2
  45. package/dist/components/PlNumberField/__tests__/PlNumberField.spec.d.ts.map +0 -1
  46. package/src/components/PlNumberField/__tests__/PlNumberField.spec.ts +0 -182
  47. /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.44 build /home/runner/_work/platforma/platforma/lib/ui/uikit
3
+ > @milaboratories/uikit@2.10.46 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 6214ms.
27
+ [vite:dts] Declaration files built in 5644ms.
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
@@ -535,11 +535,11 @@ dist/assets/icons/icon-assets-min/16_clipboard-copied.js
535
535
  dist/assets/icons/icon-assets-min/16_clipboard.js 0.57 kB │ gzip: 0.34 kB │ map: 0.72 kB
536
536
  dist/components/DataTable/ColumnCaret.vue_vue_type_script_setup_true_lang.js 0.57 kB │ gzip: 0.39 kB │ map: 0.85 kB
537
537
  [PLUGIN_TIMINGS] Warning: Your build spent significant time in plugins. Here is a breakdown:
538
- - vite:asset (36%)
539
- - sourcemaps (13%)
538
+ - vite:asset (37%)
539
+ - sourcemaps (14%)
540
540
  - vite:css-post (11%)
541
- - vite:dts (11%)
542
- - vite:vue (9%)
541
+ - vite:dts (9%)
542
+ - vite:vue (8%)
543
543
  See https://rolldown.rs/options/checks#plugintimings for more details.
544
544
  
545
545
  dist/components/PlChartStackedBar/PlChartStackedBarCompact.vue_vue_type_script_setup_true_lang.js 0.57 kB │ gzip: 0.39 kB │ map: 1.02 kB
@@ -711,7 +711,6 @@ dist/components/PlSlideModal/PlSlideModal.vue_vue_type_script_setup_true_lang.js
711
711
  dist/components/DataTable/composition/useResize.js 1.40 kB │ gzip: 0.70 kB │ map: 3.60 kB
712
712
  dist/components/HScroll.vue_vue_type_script_setup_true_lang.js 1.40 kB │ gzip: 0.73 kB │ map: 2.40 kB
713
713
  dist/components/VScroll.vue_vue_type_script_setup_true_lang.js 1.40 kB │ gzip: 0.73 kB │ map: 2.40 kB
714
- dist/components/PlNumberField/parseNumber.js 1.42 kB │ gzip: 0.55 kB │ map: 3.96 kB
715
714
  dist/colors/color.js 1.47 kB │ gzip: 0.67 kB │ map: 3.53 kB
716
715
  dist/components/PlDropdownRef/PlDropdownRef.vue_vue_type_script_setup_true_lang.js 1.48 kB │ gzip: 0.71 kB │ map: 3.47 kB
717
716
  dist/layout/PlPlaceholder/PlPlaceholder.vue_vue_type_script_setup_true_lang.js 1.49 kB │ gzip: 0.76 kB │ map: 4.80 kB
@@ -739,11 +738,12 @@ dist/assets/icons/icon-assets-min/24_debug.js
739
738
  dist/components/PlSlideModal/PlPureSlideModal.vue_vue_type_script_setup_true_lang.js 1.90 kB │ gzip: 0.89 kB │ map: 5.14 kB
740
739
  dist/composition/useTransformedModel.js 1.91 kB │ gzip: 0.90 kB │ map: 3.22 kB
741
740
  dist/assets/icons/icon-assets-min/24_pen-tool.js 1.94 kB │ gzip: 1.00 kB │ map: 2.08 kB
742
- dist/components/PlSearchField/PlSearchField.vue_vue_type_script_setup_true_lang.js 1.95 kB │ gzip: 0.95 kB │ map: 3.55 kB
743
741
  dist/components/InputRange.vue_vue_type_script_setup_true_lang.js 1.95 kB │ gzip: 0.88 kB │ map: 3.98 kB
744
742
  dist/assets/icons/icon-assets-min/16_sorter.js 1.98 kB │ gzip: 0.51 kB │ map: 2.16 kB
745
743
  dist/components/PlProgressCell/PlProgressCell.vue_vue_type_script_setup_true_lang.js 2.00 kB │ gzip: 0.92 kB │ map: 5.53 kB
746
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
747
747
  dist/helpers/utils.js 2.08 kB │ gzip: 0.85 kB │ map: 5.89 kB
748
748
  dist/assets/icons/icon-assets-min/24_violin-jitter.js 2.09 kB │ gzip: 0.98 kB │ map: 2.26 kB
749
749
  dist/assets/icons/icon-assets-min/24_bindot.js 2.10 kB │ gzip: 0.37 kB │ map: 2.38 kB
@@ -772,15 +772,15 @@ dist/components/PlTooltip/PlTooltip.vue_vue_type_script_setup_true_lang.js
772
772
  dist/layout/PlPlaceholder/paint-worklet.js 3.40 kB │ gzip: 0.68 kB │ map: 3.65 kB
773
773
  dist/components/DataTable/TableComponent.vue_vue_type_script_setup_true_lang.js 3.51 kB │ gzip: 1.49 kB │ map: 10.60 kB
774
774
  dist/components/PlLogView/PlLogView.vue_vue_type_script_setup_true_lang.js 3.59 kB │ gzip: 1.53 kB │ map: 10.52 kB
775
- dist/components/PlTextField/PlTextField.vue_vue_type_script_setup_true_lang.js 4.07 kB │ gzip: 1.66 kB │ map: 11.86 kB
776
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
777
777
  dist/composition/useSortable2.js 4.37 kB │ gzip: 1.64 kB │ map: 11.54 kB
778
778
  dist/assets/icons/icon-assets-min/24_heatmap.js 4.42 kB │ gzip: 0.99 kB │ map: 4.65 kB
779
779
  dist/components/PlBtnSplit/PlBtnSplit.vue_vue_type_script_setup_true_lang.js 4.52 kB │ gzip: 1.94 kB │ map: 13.35 kB
780
780
  dist/components/Slider.vue_vue_type_script_setup_true_lang.js 4.59 kB │ gzip: 1.83 kB │ map: 8.92 kB
781
781
  dist/components/PlFileInput/PlFileInput.vue_vue_type_script_setup_true_lang.js 5.17 kB │ gzip: 2.02 kB │ map: 14.66 kB
782
782
  dist/components/SliderRange.vue_vue_type_script_setup_true_lang.js 5.83 kB │ gzip: 2.09 kB │ map: 12.27 kB
783
- 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
784
784
  dist/components/PlDropdownLine/PlDropdownLine.vue_vue_type_script_setup_true_lang.js 7.12 kB │ gzip: 2.50 kB │ map: 20.90 kB
785
785
  dist/components/PlFileDialog/Remote.vue_vue_type_script_setup_true_lang.js 7.22 kB │ gzip: 2.71 kB │ map: 15.25 kB
786
786
  dist/components/SliderRangeTriple.vue_vue_type_script_setup_true_lang.js 7.26 kB │ gzip: 2.38 kB │ map: 15.58 kB
@@ -796,5 +796,5 @@ dist/composition/filters/metadata.js
796
796
  dist/index.js 12.50 kB │ gzip: 2.94 kB │ map: 21.27 kB
797
797
  dist/components/PlSvg/PlSvg.vue_vue_type_script_setup_true_lang.js 39.32 kB │ gzip: 3.34 kB │ map: 8.66 kB
798
798
 
799
- ✓ built in 8.27s
799
+ ✓ built in 7.50s
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.44 formatter:check /home/runner/_work/platforma/platforma/lib/ui/uikit
3
+ > @milaboratories/uikit@2.10.46 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 5794ms on 380 files using 8 threads.
11
+ Finished in 4726ms 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.44 linter:check /home/runner/_work/platforma/platforma/lib/ui/uikit
3
+ > @milaboratories/uikit@2.10.46 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 34ms on 307 files with 98 rules using 8 threads.
9
+ Finished in 30ms 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.44 types:check /home/runner/_work/platforma/platforma/lib/ui/uikit
3
+ > @milaboratories/uikit@2.10.46 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,17 @@
1
1
  # @milaboratories/uikit
2
2
 
3
+ ## 2.10.46
4
+
5
+ ### Patch Changes
6
+
7
+ - 68bc3e4: update uikit file/number input
8
+
9
+ ## 2.10.45
10
+
11
+ ### Patch Changes
12
+
13
+ - @platforma-sdk/model@1.59.3
14
+
3
15
  ## 2.10.44
4
16
 
5
17
  ### 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"}