@milaboratories/uikit 2.10.45 → 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.
- package/.turbo/turbo-build.log +19 -19
- package/.turbo/turbo-formatter$colon$check.log +2 -2
- package/.turbo/turbo-linter$colon$check.log +2 -2
- package/.turbo/turbo-types$colon$check.log +1 -1
- package/CHANGELOG.md +6 -0
- package/dist/components/PlNumberField/PlNumberField.js.map +1 -1
- package/dist/components/PlNumberField/PlNumberField.vue.d.ts +45 -75
- package/dist/components/PlNumberField/PlNumberField.vue.d.ts.map +1 -1
- package/dist/components/PlNumberField/PlNumberField.vue2.js +129 -121
- package/dist/components/PlNumberField/PlNumberField.vue2.js.map +1 -1
- package/dist/components/PlNumberField/__test__/PlNumberField.spec.d.ts.map +1 -0
- package/dist/components/PlNumberField/__test__/parseNumber.spec.d.ts +2 -0
- package/dist/components/PlNumberField/__test__/parseNumber.spec.d.ts.map +1 -0
- package/dist/components/PlNumberField/parseNumber.d.ts +56 -7
- package/dist/components/PlNumberField/parseNumber.d.ts.map +1 -1
- package/dist/components/PlNumberField/parseNumber.js +40 -56
- package/dist/components/PlNumberField/parseNumber.js.map +1 -1
- package/dist/components/PlNumberField/pl-number-field.css +1 -1
- package/dist/components/PlSearchField/PlSearchField.js.map +1 -1
- package/dist/components/PlSearchField/PlSearchField.style.js.map +1 -1
- package/dist/components/PlSearchField/PlSearchField.vue.d.ts +20 -32
- package/dist/components/PlSearchField/PlSearchField.vue.d.ts.map +1 -1
- package/dist/components/PlSearchField/PlSearchField.vue2.js +4 -2
- package/dist/components/PlSearchField/PlSearchField.vue2.js.map +1 -1
- package/dist/components/PlTextField/PlTextField.js.map +1 -1
- package/dist/components/PlTextField/PlTextField.vue.d.ts +46 -118
- package/dist/components/PlTextField/PlTextField.vue.d.ts.map +1 -1
- package/dist/components/PlTextField/PlTextField.vue2.js +61 -58
- package/dist/components/PlTextField/PlTextField.vue2.js.map +1 -1
- package/package.json +5 -5
- package/src/components/PlNumberField/PlNumberField.vue +151 -143
- package/src/components/PlNumberField/__test__/PlNumberField.spec.ts +296 -0
- package/src/components/PlNumberField/__test__/parseNumber.spec.ts +204 -0
- package/src/components/PlNumberField/parseNumber.ts +125 -98
- package/src/components/PlNumberField/pl-number-field.scss +17 -4
- package/src/components/PlSearchField/PlSearchField.vue +8 -4
- package/src/components/PlTextField/PlTextField.vue +37 -49
- package/src/components/PlTextField/__tests__/TextField.spec.ts +2 -2
- package/dist/components/PlNumberField/__tests__/PlNumberField.spec.d.ts.map +0 -1
- package/src/components/PlNumberField/__tests__/PlNumberField.spec.ts +0 -182
- /package/dist/components/PlNumberField/{__tests__ → __test__}/PlNumberField.spec.d.ts +0 -0
package/.turbo/turbo-build.log
CHANGED
|
@@ -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.
|
|
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
|
|
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.
|
|
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.
|
|
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:
|
|
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.
|
|
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
|
|
@@ -534,6 +534,14 @@ dist/composition/useConfirm.js
|
|
|
534
534
|
dist/assets/icons/icon-assets-min/16_clipboard-copied.js 0.57 kB │ gzip: 0.36 kB │ map: 0.73 kB
|
|
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
|
+
[33m[33m[PLUGIN_TIMINGS] Warning:[0m Your build spent significant time in plugins. Here is a breakdown:
|
|
538
|
+
- vite:asset (37%)
|
|
539
|
+
- sourcemaps (14%)
|
|
540
|
+
- vite:css-post (11%)
|
|
541
|
+
- vite:dts (9%)
|
|
542
|
+
- vite:vue (8%)
|
|
543
|
+
See https://rolldown.rs/options/checks#plugintimings for more details.
|
|
544
|
+
[39m
|
|
537
545
|
dist/components/PlChartStackedBar/PlChartStackedBarCompact.vue_vue_type_script_setup_true_lang.js 0.57 kB │ gzip: 0.39 kB │ map: 1.02 kB
|
|
538
546
|
dist/assets/icons/icon-assets-min/24_file-doc-import.js 0.57 kB │ gzip: 0.37 kB │ map: 0.74 kB
|
|
539
547
|
dist/composition/useRipple.js 0.57 kB │ gzip: 0.37 kB │ map: 1.50 kB
|
|
@@ -703,7 +711,6 @@ dist/components/PlSlideModal/PlSlideModal.vue_vue_type_script_setup_true_lang.js
|
|
|
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.
|
|
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
|
-
[
|
|
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
|
-
[39m
|
|
799
|
-
[32m✓ built in 14.60s[39m
|
|
799
|
+
[32m✓ built in 7.50s[39m
|
|
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.
|
|
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
|
|
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.
|
|
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
|
|
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.
|
|
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 +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:
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
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":"
|
|
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"}
|