@sdata/web-vue 4.4.0 → 4.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/sd.css +20 -5
- package/dist/sd.min.css +2 -2
- package/es/_utils/global-config.js +9 -5
- package/es/anchor/anchor.vue_vue_type_script_setup_true_lang.js +5 -8
- package/es/anchor/utils.d.ts +1 -1
- package/es/anchor/utils.js +6 -1
- package/es/auto-complete/auto-complete.vue.d.ts +6 -6
- package/es/auto-complete/auto-complete.vue_vue_type_script_setup_true_lang.js +22 -6
- package/es/avatar/avatar-group.vue_vue_type_script_setup_true_lang.js +2 -1
- package/es/avatar/avatar.vue_vue_type_script_setup_true_lang.js +3 -3
- package/es/avatar/style/index.css +1 -1
- package/es/avatar/style/index.scss +2 -1
- package/es/badge/badge.vue_vue_type_script_setup_true_lang.js +59 -42
- package/es/basic-crud-table/basic-crud-modal.vue.d.ts +22 -22
- package/es/basic-crud-table/basic-crud-table.vue.d.ts +66 -66
- package/es/basic-crud-table/index.d.ts +198 -198
- package/es/bloom-menu/bloom-menu.vue.d.ts +1 -1
- package/es/bloom-menu/bloom-menu.vue_vue_type_script_setup_true_lang.js +16 -3
- package/es/border-beam/border-beam.vue_vue_type_script_setup_true_lang.js +32 -18
- package/es/breadcrumb/breadcrumb-item.vue_vue_type_script_setup_true_lang.js +3 -3
- package/es/button/button.vue_vue_type_script_setup_true_lang.js +1 -1
- package/es/calendar/components/cell.vue_vue_type_script_setup_true_lang.js +1 -1
- package/es/calendar/components/event.vue_vue_type_script_setup_true_lang.js +1 -1
- package/es/calendar/core/config.js +4 -1
- package/es/calendar/core/events.js +22 -2
- package/es/calendar/default-theme.scss +1 -1
- package/es/calendar/style/index.css +2 -2
- package/es/carousel/carousel.vue.d.ts +5 -1
- package/es/carousel/carousel.vue_vue_type_script_setup_true_lang.js +55 -12
- package/es/carousel/index.d.ts +15 -3
- package/es/cascader/cascader-panel.vue_vue_type_script_setup_true_lang.js +6 -3
- package/es/checkbox/checkbox.vue.d.ts +2 -0
- package/es/checkbox/checkbox.vue_vue_type_script_setup_true_lang.js +12 -6
- package/es/checkbox/index.d.ts +6 -0
- package/es/color-picker/color-picker.vue_vue_type_script_setup_true_lang.js +13 -5
- package/es/color-picker/control-bar.vue_vue_type_script_setup_true_lang.js +1 -1
- package/es/color-picker/hooks/use-control-block.d.ts +1 -1
- package/es/color-picker/hooks/use-control-block.js +6 -6
- package/es/color-picker/palette.vue_vue_type_script_setup_true_lang.js +1 -1
- package/es/comment/comment.vue_vue_type_script_setup_true_lang.js +7 -2
- package/es/config-provider/config-provider.vue_vue_type_script_setup_true_lang.js +7 -6
- package/es/config-provider/theme-provider.vue_vue_type_script_setup_true_lang.js +7 -1
- package/es/copy/copy.vue_vue_type_script_setup_true_lang.js +23 -8
- package/es/cropper/cropper.vue_vue_type_script_setup_true_lang.js +16 -7
- package/es/date-picker/hooks/use-range-header-value.js +1 -1
- package/es/drawer/drawer.vue.d.ts +2 -2
- package/es/drawer/drawer.vue_vue_type_script_setup_true_lang.js +5 -12
- package/es/drawer/index.d.ts +3 -3
- package/es/dropdown/dropdown-panel.vue.d.ts +0 -9
- package/es/dropdown/dropdown-panel.vue_vue_type_script_setup_true_lang.js +0 -4
- package/es/dropdown/dropdown.vue.d.ts +16 -3
- package/es/dropdown/dropdown.vue_vue_type_script_setup_true_lang.js +24 -3
- package/es/dropdown/index.d.ts +25 -0
- package/es/dropdown/interface.d.ts +2 -0
- package/es/ellipsis/ellipsis.vue.d.ts +2 -0
- package/es/ellipsis/ellipsis.vue_vue_type_script_setup_true_lang.js +37 -8
- package/es/ellipsis/index.d.ts +3 -0
- package/es/ellipsis/performant-ellipsis.vue_vue_type_script_setup_true_lang.js +3 -0
- package/es/empty/empty.vue_vue_type_script_setup_true_lang.js +1 -4
- package/es/file-previewer/file-previewer.vue.d.ts +0 -3
- package/es/file-previewer/file-previewer.vue_vue_type_script_setup_true_lang.js +3 -6
- package/es/file-previewer/index.d.ts +0 -9
- package/es/form/context.d.ts +1 -2
- package/es/form/form-item.vue_vue_type_script_setup_true_lang.js +6 -6
- package/es/form/form.vue.d.ts +3 -3
- package/es/form/form.vue_vue_type_script_setup_true_lang.js +5 -7
- package/es/form/index.d.ts +6 -6
- package/es/grid/grid-col.vue_vue_type_script_setup_true_lang.js +5 -4
- package/es/grid/hook/use-responsive-state.js +15 -4
- package/es/grid/hook/use-responsive-value.js +3 -2
- package/es/icon/icon-arrow-up/icon-arrow-up.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-calendar/icon-calendar.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-caret-down/icon-caret-down.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-caret-left/icon-caret-left.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-caret-right/icon-caret-right.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-caret-up/icon-caret-up.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-check/icon-check.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-check-circle-fill/icon-check-circle-fill.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-clock-circle/icon-clock-circle.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-close/icon-close.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-close-circle-fill/icon-close-circle-fill.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-components.d.ts +1 -1
- package/es/icon/icon-copy/icon-copy.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-delete/icon-delete.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-double-left/icon-double-left.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-double-right/icon-double-right.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-down/icon-down.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-drag-dot/icon-drag-dot.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-drag-dot-vertical/icon-drag-dot-vertical.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-edit/icon-edit.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-empty/icon-empty.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-exclamation/icon-exclamation.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-exclamation-circle-fill/icon-exclamation-circle-fill.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-eye/icon-eye.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-eye-invisible/icon-eye-invisible.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-face-frown-fill/icon-face-frown-fill.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-face-meh-fill/icon-face-meh-fill.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-face-smile-fill/icon-face-smile-fill.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/{icon-faceBook-circle-fill → icon-facebook-circle-fill}/index.d.ts +5 -5
- package/es/icon/icon-file/icon-file.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-file-audio/icon-file-audio.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-file-image/icon-file-image.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-file-pdf/icon-file-pdf.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-file-video/icon-file-video.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-filter/icon-filter.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-fullscreen/icon-fullscreen.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-image-close/icon-image-close.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-info/icon-info.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-info-circle-fill/icon-info-circle-fill.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-left/icon-left.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-link/icon-link.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-list/icon-list.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-loading/icon-loading.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-menu/icon-menu.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-menu-fold/icon-menu-fold.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-menu-unfold/icon-menu-unfold.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-minus/icon-minus.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-more/icon-more.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-mute/icon-mute.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-oblique-line/icon-oblique-line.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-original-size/icon-original-size.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-pause/icon-pause.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-play-arrow-fill/icon-play-arrow-fill.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-plus/icon-plus.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-question-circle/icon-question-circle.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-right/icon-right.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-rotate-left/icon-rotate-left.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-rotate-right/icon-rotate-right.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-search/icon-search.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-star-fill/icon-star-fill.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-to-top/icon-to-top.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-up/icon-up.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-upload/icon-upload.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-voice/icon-voice.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-zoom-in/icon-zoom-in.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/icon-zoom-out/icon-zoom-out.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/icon/index.d.ts +1 -1
- package/es/icon.js +1162 -300
- package/es/image/image.vue_vue_type_script_setup_true_lang.js +5 -3
- package/es/image/preview.vue_vue_type_script_setup_true_lang.js +1 -1
- package/es/index.css +20 -5
- package/es/input/input-password.vue_vue_type_script_setup_true_lang.js +4 -4
- package/es/input-mask/input-mask.vue_vue_type_script_setup_true_lang.js +25 -11
- package/es/input-mask/mask-engine.d.ts +4 -0
- package/es/input-mask/mask-engine.js +12 -1
- package/es/input-number/index.d.ts +15 -0
- package/es/input-number/input-number.vue.d.ts +9 -0
- package/es/input-number/input-number.vue_vue_type_script_setup_true_lang.js +47 -14
- package/es/json-form/index.d.ts +11 -11
- package/es/json-form/json-form-item.vue.d.ts +3 -6
- package/es/json-form/json-form-item.vue_vue_type_script_setup_true_lang.js +14 -15
- package/es/json-form/json-form.vue.d.ts +7 -10
- package/es/json-form/json-form.vue_vue_type_script_setup_true_lang.js +17 -16
- package/es/json-form/style/index.css +15 -0
- package/es/json-form/style/index.scss +21 -0
- package/es/json-form/types.d.ts +1 -0
- package/es/json-form/utils.d.ts +1 -1
- package/es/json-form/utils.js +20 -13
- package/es/kv-list/kv-list.vue_vue_type_script_setup_true_lang.js +1 -0
- package/es/layout/hooks/use-has-sider.js +23 -2
- package/es/layout/interface.d.ts +1 -1
- package/es/layout/sider.vue_vue_type_script_setup_true_lang.js +1 -1
- package/es/list/list-item-meta.vue_vue_type_script_setup_true_lang.js +3 -3
- package/es/locale/interface.d.ts +7 -0
- package/es/locale/lang/en-us.js +5 -0
- package/es/locale/lang/zh-cn.js +5 -0
- package/es/mention/index.d.ts +15 -0
- package/es/mention/mention.vue.d.ts +10 -1
- package/es/mention/mention.vue_vue_type_script_setup_true_lang.js +16 -9
- package/es/message/index.js +1 -1
- package/es/modal/index.js +9 -1
- package/es/modal/modal.vue_vue_type_script_setup_true_lang.js +15 -16
- package/es/model-selector/model-selector-input.vue_vue_type_script_setup_true_lang.js +4 -1
- package/es/model-selector/model-selector-item.vue_vue_type_script_setup_true_lang.js +27 -3
- package/es/model-selector/model-selector.vue_vue_type_script_setup_true_lang.js +15 -3
- package/es/notification/index.js +5 -2
- package/es/notification/notification-list.vue_vue_type_script_setup_true_lang.js +5 -5
- package/es/number-flow/number-flow.vue_vue_type_script_setup_true_lang.js +27 -8
- package/es/page-header/page-header.vue_vue_type_script_setup_true_lang.js +2 -1
- package/es/pagination/page-item-ellipsis.vue.d.ts +9 -0
- package/es/pagination/page-item-ellipsis.vue_vue_type_script_setup_true_lang.js +19 -3
- package/es/pagination/page-jumper.vue_vue_type_script_setup_true_lang.js +3 -2
- package/es/pagination/pagination.vue_vue_type_script_setup_true_lang.js +10 -0
- package/es/popconfirm/popconfirm.vue_vue_type_script_setup_true_lang.js +4 -11
- package/es/popover/index.d.ts +2 -0
- package/es/popover/popover.vue.d.ts +4 -2
- package/es/popover/popover.vue_vue_type_script_setup_true_lang.js +10 -3
- package/es/qr-code/qr-code.vue_vue_type_script_setup_true_lang.js +1 -0
- package/es/rate/rate.vue_vue_type_script_setup_true_lang.js +1 -2
- package/es/resize-box/resize-box.vue_vue_type_script_setup_true_lang.js +10 -10
- package/es/result/result.vue_vue_type_script_setup_true_lang.js +6 -4
- package/es/skeleton/line.vue_vue_type_script_setup_true_lang.js +16 -13
- package/es/slider/slider-button.vue_vue_type_script_setup_true_lang.js +2 -0
- package/es/slider/slider.vue_vue_type_script_setup_true_lang.js +20 -9
- package/es/slider/utils.js +1 -1
- package/es/spin/spin.vue_vue_type_script_setup_true_lang.js +1 -1
- package/es/split/split.vue_vue_type_script_setup_true_lang.js +3 -1
- package/es/statistic/countdown.vue_vue_type_script_setup_true_lang.js +7 -0
- package/es/statistic/index.d.ts +0 -3
- package/es/statistic/statistic.vue.d.ts +0 -2
- package/es/statistic/statistic.vue_vue_type_script_setup_true_lang.js +0 -5
- package/es/style/icon.scss +2 -2
- package/es/switch/switch.vue_vue_type_script_setup_true_lang.js +1 -1
- package/es/table/table-td.vue_vue_type_script_setup_true_lang.js +6 -6
- package/es/table/table-th.vue_vue_type_script_setup_true_lang.js +6 -6
- package/es/tag/index.d.ts +8 -8
- package/es/tag/tag.vue.d.ts +4 -4
- package/es/tag/tag.vue_vue_type_script_setup_true_lang.js +1 -2
- package/es/timeline/timeline.vue_vue_type_script_setup_true_lang.js +2 -2
- package/es/tour/tour.vue_vue_type_script_setup_true_lang.js +14 -8
- package/es/transfer/transfer-view.vue_vue_type_script_setup_true_lang.js +1 -1
- package/es/tree/base-node.vue_vue_type_script_setup_true_lang.js +1 -1
- package/es/tree-select/tree-select.vue_vue_type_script_setup_true_lang.js +10 -3
- package/es/trigger/index.d.ts +0 -6
- package/es/trigger/interface.d.ts +1 -2
- package/es/trigger/trigger.vue.d.ts +0 -2
- package/es/trigger/trigger.vue_vue_type_script_setup_true_lang.js +0 -4
- package/es/typography/base.vue_vue_type_script_setup_true_lang.js +1 -0
- package/es/typography/interface.d.ts +0 -4
- package/es/typography/utils/getInnerText.js +11 -10
- package/es/upload/upload-list-item.vue_vue_type_script_setup_true_lang.js +1 -1
- package/es/upload/upload.vue_vue_type_script_setup_true_lang.js +7 -5
- package/es/upload/utils.d.ts +1 -2
- package/es/verification-code/index.d.ts +12 -3
- package/es/verification-code/verification-code.vue.d.ts +6 -1
- package/es/verification-code/verification-code.vue_vue_type_script_setup_true_lang.js +29 -5
- package/es/watermark/watermark.vue_vue_type_script_setup_true_lang.js +4 -2
- package/json/vetur-attributes.json +22 -10
- package/json/vetur-tags.json +10 -4
- package/json/web-types.json +43 -17
- package/package.json +1 -1
- /package/es/icon/{icon-faceBook-circle-fill/icon-faceBook-circle-fill.vue.d.ts → icon-facebook-circle-fill/icon-facebook-circle-fill.vue.d.ts} +0 -0
|
@@ -171,8 +171,8 @@ var image_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
|
|
|
171
171
|
{
|
|
172
172
|
[`${prefixCls}-loading`]: isLoading.value,
|
|
173
173
|
[`${prefixCls}-loading-error`]: isError.value,
|
|
174
|
-
[`${prefixCls}-with-footer-inner`]: isLoaded && showFooter && footerPosition.value === "inner",
|
|
175
|
-
[`${prefixCls}-with-footer-outer`]: isLoaded && showFooter && footerPosition.value === "outer"
|
|
174
|
+
[`${prefixCls}-with-footer-inner`]: isLoaded.value && showFooter.value && footerPosition.value === "inner",
|
|
175
|
+
[`${prefixCls}-with-footer-outer`]: isLoaded.value && showFooter.value && footerPosition.value === "outer"
|
|
176
176
|
},
|
|
177
177
|
attrs.class
|
|
178
178
|
]);
|
|
@@ -187,6 +187,7 @@ var image_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
|
|
|
187
187
|
const mergePreview = computed(() => !(groupContext === null || groupContext === void 0 ? void 0 : groupContext.preview) && preview.value);
|
|
188
188
|
watchEffect(() => {
|
|
189
189
|
if (isServerRendering || !refImg.value) return;
|
|
190
|
+
if (!(src === null || src === void 0 ? void 0 : src.value)) return;
|
|
190
191
|
refImg.value.src = src === null || src === void 0 ? void 0 : src.value;
|
|
191
192
|
setLoadStatus("loading");
|
|
192
193
|
});
|
|
@@ -226,6 +227,7 @@ var image_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
|
|
|
226
227
|
onPreviewClose
|
|
227
228
|
});
|
|
228
229
|
return (_ctx, _cache) => {
|
|
230
|
+
var _props$alt;
|
|
229
231
|
return openBlock(), createElementBlock("div", {
|
|
230
232
|
class: normalizeClass(wrapperClassNames.value),
|
|
231
233
|
style: normalizeStyle(wrapperStyles.value)
|
|
@@ -237,7 +239,7 @@ var image_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
|
|
|
237
239
|
}, imgProps.value, {
|
|
238
240
|
style: _objectSpread2(_objectSpread2({}, unref(imgStyle)), fitStyle.value),
|
|
239
241
|
title: unref(title),
|
|
240
|
-
alt: __props.alt,
|
|
242
|
+
alt: (_props$alt = __props.alt) !== null && _props$alt !== void 0 ? _props$alt : unref(description),
|
|
241
243
|
onLoad: onImgLoaded,
|
|
242
244
|
onError: onImgLoadError,
|
|
243
245
|
onClick: onImgClick
|
|
@@ -249,7 +249,7 @@ var preview_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCo
|
|
|
249
249
|
setLoadStatus("loading");
|
|
250
250
|
addGlobalKeyDownListener();
|
|
251
251
|
} else removeGlobalKeyDownListener();
|
|
252
|
-
});
|
|
252
|
+
}, { immediate: true });
|
|
253
253
|
function close() {
|
|
254
254
|
if (mergedVisible.value) {
|
|
255
255
|
emit("close");
|
package/es/index.css
CHANGED
|
@@ -928,10 +928,10 @@ html[data-overlayscrollbars-viewport~=scrollbarHidden] > body::-webkit-scrollbar
|
|
|
928
928
|
|
|
929
929
|
@keyframes sd-loading-circle {
|
|
930
930
|
0% {
|
|
931
|
-
transform: rotate(
|
|
931
|
+
transform: rotate(var(--icon-rotate, 0deg));
|
|
932
932
|
}
|
|
933
933
|
100% {
|
|
934
|
-
transform: rotate(360deg);
|
|
934
|
+
transform: rotate(calc(var(--icon-rotate, 0deg) + 360deg));
|
|
935
935
|
}
|
|
936
936
|
}
|
|
937
937
|
@media (prefers-reduced-motion: reduce) {
|
|
@@ -16330,6 +16330,21 @@ body.sd-tour-active .sd-tour-popover * {
|
|
|
16330
16330
|
min-width: 0;
|
|
16331
16331
|
border-radius: 4px;
|
|
16332
16332
|
}
|
|
16333
|
+
.sd-json-form-chips {
|
|
16334
|
+
display: inline-flex;
|
|
16335
|
+
flex-wrap: wrap;
|
|
16336
|
+
gap: 4px;
|
|
16337
|
+
align-items: center;
|
|
16338
|
+
}
|
|
16339
|
+
.sd-json-form-chips .sd-checkbox {
|
|
16340
|
+
margin-right: 0;
|
|
16341
|
+
padding: 2px 6px;
|
|
16342
|
+
border: 1px solid var(--sd-color-neutral-3);
|
|
16343
|
+
border-radius: 4px;
|
|
16344
|
+
}
|
|
16345
|
+
.sd-json-form-chips .sd-checkbox-checked {
|
|
16346
|
+
border-color: rgb(var(--sd-primary-6));
|
|
16347
|
+
}
|
|
16333
16348
|
|
|
16334
16349
|
.sd-ellipsis {
|
|
16335
16350
|
display: inline-block;
|
|
@@ -19884,8 +19899,8 @@ body.sd-tour-active .sd-tour-popover * {
|
|
|
19884
19899
|
[sd-theme=light] [class$=-calendar--default-theme]:is(.sd-calendar--sm, .sd-calendar--lg) .sd-calendar__scrollable--month-view .sd-calendar__cell--selected .sd-calendar__cell-date {
|
|
19885
19900
|
background-color: color-mix(in srgb, var(--sd-calendar-primary-color) 40%, transparent);
|
|
19886
19901
|
}
|
|
19887
|
-
.sd-calendar--default-theme .sd-calendar__cell--out-of-
|
|
19888
|
-
[class$=-calendar--default-theme] .sd-calendar__cell--out-of-
|
|
19902
|
+
.sd-calendar--default-theme .sd-calendar__cell--out-of-range .sd-calendar__cell-date,
|
|
19903
|
+
[class$=-calendar--default-theme] .sd-calendar__cell--out-of-range .sd-calendar__cell-date {
|
|
19889
19904
|
opacity: 0.4;
|
|
19890
19905
|
}
|
|
19891
19906
|
.sd-calendar--default-theme .sd-calendar__scrollable--month-view .sd-calendar__cell-events,
|
|
@@ -22318,7 +22333,7 @@ body.sd-tour-active .sd-tour-popover * {
|
|
|
22318
22333
|
margin-left: -10px;
|
|
22319
22334
|
}
|
|
22320
22335
|
.sd-avatar-group-popover .sd-avatar:not(:first-child) {
|
|
22321
|
-
margin-left: 4px;
|
|
22336
|
+
margin-left: 4px !important;
|
|
22322
22337
|
}
|
|
22323
22338
|
|
|
22324
22339
|
/**********************************************
|
|
@@ -10,8 +10,8 @@ var input_password_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ d
|
|
|
10
10
|
__name: "input-password",
|
|
11
11
|
props: {
|
|
12
12
|
/**
|
|
13
|
-
* @zh
|
|
14
|
-
* @en Whether is
|
|
13
|
+
* @zh 是否为掩码(隐藏)状态,受控属性。true 表示输入框显示为密码掩码态(type=password,显示 eye-invisible 图标)
|
|
14
|
+
* @en Whether the input is in the masked (hidden) state. `true` renders the input masked (type=password, shows the eye-invisible icon)
|
|
15
15
|
* @vModel
|
|
16
16
|
*/
|
|
17
17
|
visibility: {
|
|
@@ -19,8 +19,8 @@ var input_password_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ d
|
|
|
19
19
|
default: void 0
|
|
20
20
|
},
|
|
21
21
|
/**
|
|
22
|
-
* @zh
|
|
23
|
-
* @en
|
|
22
|
+
* @zh 默认是否为掩码状态,非受控
|
|
23
|
+
* @en Whether the input is masked by default
|
|
24
24
|
*/
|
|
25
25
|
defaultVisibility: {
|
|
26
26
|
type: Boolean,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _objectSpread2 from "../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/objectSpread2.js";
|
|
2
2
|
import { getPrefixCls } from "../_utils/global-config.js";
|
|
3
3
|
import Input from "../input/index.js";
|
|
4
|
-
import { formatInputMask, resolveDeletion } from "./mask-engine.js";
|
|
4
|
+
import { formatInputMask, resolveDeletion, stripMaskPlaceholders } from "./mask-engine.js";
|
|
5
5
|
import { inputMaskPresets } from "./presets.js";
|
|
6
6
|
import { computed, createBlock, createSlots, defineComponent, mergeProps, nextTick, onBeforeUnmount, onMounted, openBlock, ref, renderSlot, unref, useAttrs, watch, withCtx } from "vue";
|
|
7
7
|
//#region components/input-mask/input-mask.vue?vue&type=script&setup=true&lang.ts
|
|
@@ -148,6 +148,13 @@ var input_mask_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
|
|
|
148
148
|
if (nextComplete && !complete.value) emit("complete", value);
|
|
149
149
|
complete.value = nextComplete;
|
|
150
150
|
};
|
|
151
|
+
const toCommittedValue = (value) => {
|
|
152
|
+
if (!effectiveMask.value) return value;
|
|
153
|
+
return stripMaskPlaceholders(value, effectiveMask.value, {
|
|
154
|
+
maskChar: effectiveMaskChar.value,
|
|
155
|
+
formatChars: effectiveFormatChars.value
|
|
156
|
+
});
|
|
157
|
+
};
|
|
151
158
|
const commitValue = (rawValue) => {
|
|
152
159
|
var _input$selectionStart, _props$beforeMaskedVa, _props$beforeMaskedVa2;
|
|
153
160
|
const input = getInputElement();
|
|
@@ -183,7 +190,8 @@ var input_mask_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
|
|
|
183
190
|
}
|
|
184
191
|
} else {
|
|
185
192
|
const value = normalizePresetValue(rawValue, innerValue.value);
|
|
186
|
-
const
|
|
193
|
+
const rejectedInsertion = value === innerValue.value && rawValue.length === innerValue.value.length + 1;
|
|
194
|
+
const cursor = rawCursor === rawValue.length ? value.length : Math.min(Math.max(rawCursor - (rejectedInsertion ? 1 : 0), 0), value.length);
|
|
187
195
|
nextState = {
|
|
188
196
|
value,
|
|
189
197
|
selection: {
|
|
@@ -195,11 +203,14 @@ var input_mask_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
|
|
|
195
203
|
nextState = (_props$beforeMaskedVa = (_props$beforeMaskedVa2 = props.beforeMaskedValueChange) === null || _props$beforeMaskedVa2 === void 0 ? void 0 : _props$beforeMaskedVa2.call(props, nextState, previousState)) !== null && _props$beforeMaskedVa !== void 0 ? _props$beforeMaskedVa : nextState;
|
|
196
204
|
innerValue.value = nextState.value;
|
|
197
205
|
lastSelection.value = nextState.selection;
|
|
198
|
-
|
|
199
|
-
|
|
206
|
+
const committedValue = toCommittedValue(nextState.value);
|
|
207
|
+
emit("update:modelValue", committedValue);
|
|
208
|
+
syncComplete(committedValue, nextComplete);
|
|
200
209
|
nextTick(() => {
|
|
201
|
-
|
|
202
|
-
|
|
210
|
+
nextTick(() => {
|
|
211
|
+
const element = getInputElement();
|
|
212
|
+
if (focused.value && element && nextState.selection) element.setSelectionRange(nextState.selection.start, nextState.selection.end);
|
|
213
|
+
});
|
|
203
214
|
});
|
|
204
215
|
};
|
|
205
216
|
const handleModelUpdate = (value) => commitValue(value);
|
|
@@ -234,6 +245,10 @@ var input_mask_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
|
|
|
234
245
|
const input = getInputElement();
|
|
235
246
|
if (input) trackedEvents.forEach((event) => input.addEventListener(event, updateSelectionFromDom));
|
|
236
247
|
document.addEventListener("selectionchange", updateSelectionFromDom);
|
|
248
|
+
if (effectiveMask.value) {
|
|
249
|
+
const { complete: initialComplete } = applyNormalization(innerValue.value);
|
|
250
|
+
syncComplete(toCommittedValue(innerValue.value), initialComplete);
|
|
251
|
+
}
|
|
237
252
|
});
|
|
238
253
|
onBeforeUnmount(() => {
|
|
239
254
|
const input = getInputElement();
|
|
@@ -241,11 +256,10 @@ var input_mask_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
|
|
|
241
256
|
document.removeEventListener("selectionchange", updateSelectionFromDom);
|
|
242
257
|
});
|
|
243
258
|
watch(() => props.modelValue, (value) => {
|
|
244
|
-
if (value === void 0) return;
|
|
245
259
|
const { value: next, complete: nextComplete } = applyNormalization(value !== null && value !== void 0 ? value : "");
|
|
246
260
|
innerValue.value = next;
|
|
247
|
-
if (next !== value) emit("update:modelValue", next);
|
|
248
|
-
syncComplete(next, nextComplete);
|
|
261
|
+
if (next !== value) emit("update:modelValue", toCommittedValue(next));
|
|
262
|
+
syncComplete(toCommittedValue(next), nextComplete);
|
|
249
263
|
});
|
|
250
264
|
watch([
|
|
251
265
|
effectiveMask,
|
|
@@ -256,8 +270,8 @@ var input_mask_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
|
|
|
256
270
|
const { value: next, complete: nextComplete } = applyNormalization(innerValue.value);
|
|
257
271
|
const changed = next !== innerValue.value;
|
|
258
272
|
innerValue.value = next;
|
|
259
|
-
if (changed) emit("update:modelValue", next);
|
|
260
|
-
syncComplete(next, nextComplete);
|
|
273
|
+
if (changed) emit("update:modelValue", toCommittedValue(next));
|
|
274
|
+
syncComplete(toCommittedValue(next), nextComplete);
|
|
261
275
|
});
|
|
262
276
|
__expose({
|
|
263
277
|
get inputRef() {
|
|
@@ -10,6 +10,10 @@ export interface FormatMaskResult {
|
|
|
10
10
|
complete: boolean;
|
|
11
11
|
}
|
|
12
12
|
export declare const defaultInputMaskFormatChars: Readonly<Record<string, RegExp>>;
|
|
13
|
+
export declare function stripMaskPlaceholders(value: string, mask: InputMaskPattern, options?: {
|
|
14
|
+
maskChar?: string | null;
|
|
15
|
+
formatChars?: Readonly<Record<string, RegExp>>;
|
|
16
|
+
}): string;
|
|
13
17
|
export declare function formatInputMask(rawValue: string, rawCursor: number | null, mask: InputMaskPattern, options: FormatMaskOptions): FormatMaskResult;
|
|
14
18
|
export declare function resolveDeletion(previousValue: string, previousSelection: InputMaskSelection | null, rawValue: string, rawCursor: number, mask: InputMaskPattern, formatChars?: Readonly<Record<string, RegExp>>, maskChar?: string | null): {
|
|
15
19
|
value: string;
|
|
@@ -92,6 +92,17 @@ var renderMask = (tokens, values, maskChar, showMask) => {
|
|
|
92
92
|
if (!values.length && !showMask) return "";
|
|
93
93
|
return buildLayout(tokens, values, maskChar, showMask).map((position) => position.char).join("");
|
|
94
94
|
};
|
|
95
|
+
/**
|
|
96
|
+
* Removes unfilled placeholder characters from a rendered fixed-mask value,
|
|
97
|
+
* keeping only the filled editable characters plus literals. This mirrors the
|
|
98
|
+
* value react-input-mask consumers read back: the committed value never
|
|
99
|
+
* contains placeholder characters.
|
|
100
|
+
*/
|
|
101
|
+
function stripMaskPlaceholders(value, mask, options = {}) {
|
|
102
|
+
var _options$maskChar;
|
|
103
|
+
const tokens = parseMask(mask, mergeFormatChars(options.formatChars));
|
|
104
|
+
return renderMask(tokens, readEditableCharacters(value, tokens, (_options$maskChar = options.maskChar) !== null && _options$maskChar !== void 0 ? _options$maskChar : null), null, true);
|
|
105
|
+
}
|
|
95
106
|
var sliceToGraphemeBoundary = (value, cursor) => {
|
|
96
107
|
const graphemeIndex = codeUnitToGraphemeIndex(value, cursor);
|
|
97
108
|
return value.slice(0, graphemeIndexToCodeUnit(value, graphemeIndex));
|
|
@@ -173,4 +184,4 @@ function resolveDeletion(previousValue, previousSelection, rawValue, rawCursor,
|
|
|
173
184
|
};
|
|
174
185
|
}
|
|
175
186
|
//#endregion
|
|
176
|
-
export { defaultInputMaskFormatChars, formatInputMask, resolveDeletion };
|
|
187
|
+
export { defaultInputMaskFormatChars, formatInputMask, resolveDeletion, stripMaskPlaceholders };
|
|
@@ -50,6 +50,10 @@ declare const InputNumber: {
|
|
|
50
50
|
type: BooleanConstructor;
|
|
51
51
|
default: boolean;
|
|
52
52
|
};
|
|
53
|
+
stringMode: {
|
|
54
|
+
type: BooleanConstructor;
|
|
55
|
+
default: boolean;
|
|
56
|
+
};
|
|
53
57
|
size: import("vue").PropType<import("../index.ts").Size>;
|
|
54
58
|
allowClear: {
|
|
55
59
|
type: BooleanConstructor;
|
|
@@ -626,6 +630,7 @@ declare const InputNumber: {
|
|
|
626
630
|
step: number;
|
|
627
631
|
min: number;
|
|
628
632
|
hideButton: boolean;
|
|
633
|
+
stringMode: boolean;
|
|
629
634
|
modelEvent: "change" | "input";
|
|
630
635
|
}, true, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
|
|
631
636
|
P: {};
|
|
@@ -677,6 +682,10 @@ declare const InputNumber: {
|
|
|
677
682
|
type: BooleanConstructor;
|
|
678
683
|
default: boolean;
|
|
679
684
|
};
|
|
685
|
+
stringMode: {
|
|
686
|
+
type: BooleanConstructor;
|
|
687
|
+
default: boolean;
|
|
688
|
+
};
|
|
680
689
|
size: import("vue").PropType<import("../index.ts").Size>;
|
|
681
690
|
allowClear: {
|
|
682
691
|
type: BooleanConstructor;
|
|
@@ -1245,6 +1254,7 @@ declare const InputNumber: {
|
|
|
1245
1254
|
step: number;
|
|
1246
1255
|
min: number;
|
|
1247
1256
|
hideButton: boolean;
|
|
1257
|
+
stringMode: boolean;
|
|
1248
1258
|
modelEvent: "change" | "input";
|
|
1249
1259
|
}>;
|
|
1250
1260
|
__isFragment?: never;
|
|
@@ -1293,6 +1303,10 @@ declare const InputNumber: {
|
|
|
1293
1303
|
type: BooleanConstructor;
|
|
1294
1304
|
default: boolean;
|
|
1295
1305
|
};
|
|
1306
|
+
stringMode: {
|
|
1307
|
+
type: BooleanConstructor;
|
|
1308
|
+
default: boolean;
|
|
1309
|
+
};
|
|
1296
1310
|
size: import("vue").PropType<import("../index.ts").Size>;
|
|
1297
1311
|
allowClear: {
|
|
1298
1312
|
type: BooleanConstructor;
|
|
@@ -1869,6 +1883,7 @@ declare const InputNumber: {
|
|
|
1869
1883
|
step: number;
|
|
1870
1884
|
min: number;
|
|
1871
1885
|
hideButton: boolean;
|
|
1886
|
+
stringMode: boolean;
|
|
1872
1887
|
modelEvent: "change" | "input";
|
|
1873
1888
|
}, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => {
|
|
1874
1889
|
$slots: {
|
|
@@ -63,6 +63,10 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
63
63
|
type: BooleanConstructor;
|
|
64
64
|
default: boolean;
|
|
65
65
|
};
|
|
66
|
+
stringMode: {
|
|
67
|
+
type: BooleanConstructor;
|
|
68
|
+
default: boolean;
|
|
69
|
+
};
|
|
66
70
|
size: PropType<Size>;
|
|
67
71
|
allowClear: {
|
|
68
72
|
type: BooleanConstructor;
|
|
@@ -662,6 +666,10 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
662
666
|
type: BooleanConstructor;
|
|
663
667
|
default: boolean;
|
|
664
668
|
};
|
|
669
|
+
stringMode: {
|
|
670
|
+
type: BooleanConstructor;
|
|
671
|
+
default: boolean;
|
|
672
|
+
};
|
|
665
673
|
size: PropType<Size>;
|
|
666
674
|
allowClear: {
|
|
667
675
|
type: BooleanConstructor;
|
|
@@ -696,6 +704,7 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
696
704
|
step: number;
|
|
697
705
|
min: number;
|
|
698
706
|
hideButton: boolean;
|
|
707
|
+
stringMode: boolean;
|
|
699
708
|
modelEvent: "change" | "input";
|
|
700
709
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
701
710
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
@@ -64,6 +64,14 @@ var input_number_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
|
|
|
64
64
|
type: Boolean,
|
|
65
65
|
default: false
|
|
66
66
|
},
|
|
67
|
+
/**
|
|
68
|
+
* @zh 开启高精度小数支持,update:modelValue 返回 string 类型;内部不再把值转换为 Number,避免超过 2^53 丢失精度
|
|
69
|
+
* @en Enables high-precision decimal support; update:modelValue emits string values. The accepted digit string is kept verbatim instead of being converted to Number, avoiding precision loss beyond Number.MAX_SAFE_INTEGER
|
|
70
|
+
*/
|
|
71
|
+
stringMode: {
|
|
72
|
+
type: Boolean,
|
|
73
|
+
default: false
|
|
74
|
+
},
|
|
67
75
|
size: String,
|
|
68
76
|
allowClear: {
|
|
69
77
|
type: Boolean,
|
|
@@ -90,6 +98,7 @@ var input_number_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
|
|
|
90
98
|
},
|
|
91
99
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|
92
100
|
var _props$modelValue, _props$modelValue2;
|
|
101
|
+
const DECIMAL_PATTERN = /^[-+]?(\d+(\.\d*)?|\.\d+)$/;
|
|
93
102
|
NP.enableBoundaryChecking(false);
|
|
94
103
|
const props = __props;
|
|
95
104
|
const emit = __emit;
|
|
@@ -103,7 +112,7 @@ var input_number_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
|
|
|
103
112
|
});
|
|
104
113
|
const { mergedSize } = useSize(formSize);
|
|
105
114
|
const { mergedAllowClear } = useAllowClear(toRef(props, "allowClear"));
|
|
106
|
-
const valueMode = ref(typeof ((_props$modelValue = props.modelValue) !== null && _props$modelValue !== void 0 ? _props$modelValue : props.defaultValue) === "string" ? "string" : "number");
|
|
115
|
+
const valueMode = ref(props.stringMode || typeof ((_props$modelValue = props.modelValue) !== null && _props$modelValue !== void 0 ? _props$modelValue : props.defaultValue) === "string" ? "string" : "number");
|
|
107
116
|
const mergedPrecision = computed(() => {
|
|
108
117
|
if (isNumber(props.precision)) {
|
|
109
118
|
const decimal = `${props.step}`.split(".")[1];
|
|
@@ -113,29 +122,35 @@ var input_number_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
|
|
|
113
122
|
const getNumberValue = (value) => {
|
|
114
123
|
var _props$parser, _props$parser2;
|
|
115
124
|
if (isUndefined(value) || value === null || value === "") return void 0;
|
|
116
|
-
if (typeof value === "number") return Number.
|
|
125
|
+
if (typeof value === "number") return Number.isFinite(value) ? value : void 0;
|
|
117
126
|
const normalizedValue = value.trim();
|
|
118
127
|
if (!normalizedValue || /^[-.]$/.test(normalizedValue)) return void 0;
|
|
119
128
|
const parsed = Number((_props$parser = (_props$parser2 = props.parser) === null || _props$parser2 === void 0 ? void 0 : _props$parser2.call(props, normalizedValue)) !== null && _props$parser !== void 0 ? _props$parser : normalizedValue);
|
|
120
|
-
return Number.
|
|
129
|
+
return Number.isFinite(parsed) ? parsed : void 0;
|
|
130
|
+
};
|
|
131
|
+
const toPlainString = (number) => {
|
|
132
|
+
if (!isNumber(number)) return "";
|
|
133
|
+
return mergedPrecision.value ? number.toFixed(mergedPrecision.value) : String(number);
|
|
121
134
|
};
|
|
122
135
|
const getStringValue = (number) => {
|
|
123
136
|
var _props$formatter, _props$formatter2;
|
|
124
|
-
|
|
125
|
-
const value = mergedPrecision.value ? number.toFixed(mergedPrecision.value) : String(number);
|
|
137
|
+
const value = toPlainString(number);
|
|
126
138
|
return (_props$formatter = (_props$formatter2 = props.formatter) === null || _props$formatter2 === void 0 ? void 0 : _props$formatter2.call(props, value)) !== null && _props$formatter !== void 0 ? _props$formatter : value;
|
|
127
139
|
};
|
|
128
140
|
const getDisplayValue = (value) => {
|
|
129
141
|
if (typeof value === "string") {
|
|
130
142
|
const normalizedValue = value.trim();
|
|
131
143
|
if (!normalizedValue || /^[-.]$/.test(normalizedValue)) return value;
|
|
144
|
+
if (props.stringMode && DECIMAL_PATTERN.test(normalizedValue)) return normalizedValue;
|
|
132
145
|
const parsed = getNumberValue(value);
|
|
133
|
-
return isNumber(parsed) ? getStringValue(parsed) :
|
|
146
|
+
return isNumber(parsed) ? getStringValue(parsed) : "";
|
|
134
147
|
}
|
|
148
|
+
if (typeof value === "number" && !Number.isFinite(value)) return "";
|
|
135
149
|
return getStringValue(value !== null && value !== void 0 ? value : void 0);
|
|
136
150
|
};
|
|
137
151
|
const getModelValue = (value) => valueMode.value === "string" ? isUndefined(value) ? "" : String(value) : value;
|
|
138
152
|
const innerValue = ref(getDisplayValue((_props$modelValue2 = props.modelValue) !== null && _props$modelValue2 !== void 0 ? _props$modelValue2 : props.defaultValue));
|
|
153
|
+
const rawText = ref(DECIMAL_PATTERN.test(innerValue.value) ? innerValue.value : "");
|
|
139
154
|
const valueNumber = computed(() => getNumberValue(innerValue.value));
|
|
140
155
|
const isMin = ref(isNumber(valueNumber.value) && valueNumber.value <= props.min);
|
|
141
156
|
const isMax = ref(isNumber(valueNumber.value) && valueNumber.value >= props.max);
|
|
@@ -158,9 +173,16 @@ var input_number_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
|
|
|
158
173
|
};
|
|
159
174
|
const handleExceedRange = () => {
|
|
160
175
|
const finalValue = getLegalValue(valueNumber.value);
|
|
161
|
-
const
|
|
162
|
-
|
|
163
|
-
|
|
176
|
+
const clamped = finalValue !== valueNumber.value;
|
|
177
|
+
const keepRaw = props.stringMode && !clamped && DECIMAL_PATTERN.test(rawText.value);
|
|
178
|
+
if (!keepRaw) {
|
|
179
|
+
const stringValue = getStringValue(finalValue);
|
|
180
|
+
if (clamped || innerValue.value !== stringValue) innerValue.value = stringValue;
|
|
181
|
+
rawText.value = isNumber(finalValue) ? toPlainString(finalValue) : "";
|
|
182
|
+
}
|
|
183
|
+
const emitted = keepRaw ? rawText.value : getModelValue(finalValue);
|
|
184
|
+
emit("update:modelValue", emitted);
|
|
185
|
+
return emitted;
|
|
164
186
|
};
|
|
165
187
|
watch(() => [props.max, props.min], () => {
|
|
166
188
|
handleExceedRange();
|
|
@@ -170,6 +192,7 @@ var input_number_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
|
|
|
170
192
|
if (mergedDisabled.value || method === "plus" && isMax.value || method === "minus" && isMin.value) return;
|
|
171
193
|
const nextValue = isNumber(valueNumber.value) ? getLegalValue(NP[method](valueNumber.value, props.step)) : props.min === -Infinity ? 0 : props.min;
|
|
172
194
|
innerValue.value = getStringValue(nextValue);
|
|
195
|
+
rawText.value = toPlainString(nextValue);
|
|
173
196
|
updateNumberStatus(nextValue);
|
|
174
197
|
const emittedValue = getModelValue(nextValue);
|
|
175
198
|
emit("update:modelValue", emittedValue);
|
|
@@ -179,6 +202,7 @@ var input_number_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
|
|
|
179
202
|
var _inputRef$value;
|
|
180
203
|
event.preventDefault();
|
|
181
204
|
if (props.readonly) return;
|
|
205
|
+
if (mergedDisabled.value || method === "plus" && isMax.value || method === "minus" && isMin.value) return;
|
|
182
206
|
(_inputRef$value = inputRef.value) === null || _inputRef$value === void 0 || _inputRef$value.focus();
|
|
183
207
|
nextStep(method, event);
|
|
184
208
|
if (needRepeat) repeatTimer = window.setTimeout(() => event.target.dispatchEvent(event), repeatTimer ? SPEED : FIRST_DELAY);
|
|
@@ -187,11 +211,12 @@ var input_number_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
|
|
|
187
211
|
var _props$parser3, _props$parser4;
|
|
188
212
|
const normalizedValue = value.trim().replace(/。/g, ".");
|
|
189
213
|
const parsedValue = (_props$parser3 = (_props$parser4 = props.parser) === null || _props$parser4 === void 0 ? void 0 : _props$parser4.call(props, normalizedValue)) !== null && _props$parser3 !== void 0 ? _props$parser3 : normalizedValue;
|
|
190
|
-
if (
|
|
214
|
+
if (parsedValue === "" || Number.isFinite(Number(parsedValue)) || /^[-.]$/.test(String(parsedValue))) {
|
|
191
215
|
var _props$formatter3, _props$formatter4;
|
|
216
|
+
rawText.value = String(parsedValue);
|
|
192
217
|
innerValue.value = (_props$formatter3 = (_props$formatter4 = props.formatter) === null || _props$formatter4 === void 0 ? void 0 : _props$formatter4.call(props, parsedValue)) !== null && _props$formatter3 !== void 0 ? _props$formatter3 : String(parsedValue);
|
|
193
218
|
updateNumberStatus(valueNumber.value);
|
|
194
|
-
const emittedValue =
|
|
219
|
+
const emittedValue = getEmittedValue();
|
|
195
220
|
emit("input", emittedValue, innerValue.value, event);
|
|
196
221
|
if (props.modelEvent === "input") {
|
|
197
222
|
emit("update:modelValue", emittedValue);
|
|
@@ -199,16 +224,21 @@ var input_number_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
|
|
|
199
224
|
}
|
|
200
225
|
}
|
|
201
226
|
};
|
|
227
|
+
const getEmittedValue = () => {
|
|
228
|
+
if (props.stringMode && DECIMAL_PATTERN.test(rawText.value)) return rawText.value;
|
|
229
|
+
return getModelValue(valueNumber.value);
|
|
230
|
+
};
|
|
202
231
|
const handleFocus = (event) => emit("focus", event);
|
|
203
232
|
const handleChange = (value, event) => {
|
|
204
233
|
if (event instanceof MouseEvent && !value) return;
|
|
205
|
-
handleExceedRange();
|
|
206
|
-
emit("change",
|
|
234
|
+
const emitted = handleExceedRange();
|
|
235
|
+
emit("change", emitted, event);
|
|
207
236
|
};
|
|
208
237
|
const handleBlur = (event) => emit("blur", event);
|
|
209
238
|
const handleClear = (event) => {
|
|
210
239
|
var _eventHandlers$value, _eventHandlers$value$;
|
|
211
240
|
innerValue.value = "";
|
|
241
|
+
rawText.value = "";
|
|
212
242
|
const emittedValue = getModelValue(void 0);
|
|
213
243
|
emit("update:modelValue", emittedValue);
|
|
214
244
|
emit("change", emittedValue, event);
|
|
@@ -227,14 +257,17 @@ var input_number_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
|
|
|
227
257
|
if (!event.defaultPrevented) keyDownHandler(event);
|
|
228
258
|
};
|
|
229
259
|
watch(() => props.modelValue, (value) => {
|
|
230
|
-
if (
|
|
260
|
+
if (props.stringMode) valueMode.value = "string";
|
|
261
|
+
else if (typeof value === "string") valueMode.value = "string";
|
|
231
262
|
else if (typeof value === "number") valueMode.value = "number";
|
|
232
263
|
const nextNumberValue = getNumberValue(value);
|
|
233
264
|
if (value !== innerValue.value && nextNumberValue !== valueNumber.value) {
|
|
234
265
|
innerValue.value = getDisplayValue(value);
|
|
266
|
+
rawText.value = DECIMAL_PATTERN.test(innerValue.value) ? innerValue.value : "";
|
|
235
267
|
updateNumberStatus(nextNumberValue);
|
|
236
268
|
} else if (value === "" && innerValue.value !== "") {
|
|
237
269
|
innerValue.value = "";
|
|
270
|
+
rawText.value = "";
|
|
238
271
|
updateNumberStatus(void 0);
|
|
239
272
|
}
|
|
240
273
|
});
|
package/es/json-form/index.d.ts
CHANGED
|
@@ -4,16 +4,15 @@ import _JsonForm from './json-form.vue';
|
|
|
4
4
|
declare const JsonForm: {
|
|
5
5
|
new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<{
|
|
6
6
|
schemas: import("./types").JsonFormA2UI_0_9_1ComponentNode[] | import("./types").JsonFormSchema<import("./types").JsonFormComponentType<{}>, {}>[];
|
|
7
|
+
modelValue?: import("./types").JsonFormModel;
|
|
7
8
|
adapter?: import("./types").JsonFormAdapter;
|
|
8
9
|
model?: import("./types").JsonFormModel;
|
|
9
10
|
hideLabel?: boolean;
|
|
10
11
|
hideAsterisk?: boolean;
|
|
11
12
|
showColon?: boolean;
|
|
12
13
|
component?: string | import("vue").Component;
|
|
13
|
-
} & {
|
|
14
|
-
modelValue?: import("./types").JsonFormModel | undefined;
|
|
15
14
|
}> & Readonly<{
|
|
16
|
-
"onUpdate:modelValue"?: ((value: import("./types").JsonFormModel
|
|
15
|
+
"onUpdate:modelValue"?: ((value: import("./types").JsonFormModel) => any) | undefined;
|
|
17
16
|
}>, {
|
|
18
17
|
validate: (callback?: ((errors: undefined | Record<string, import("../index.ts").ValidatedError>) => void) | undefined) => Promise<Record<string, import("../index.ts").ValidatedError> | undefined> | undefined;
|
|
19
18
|
validateField: (field: string | string[], callback?: ((errors: undefined | Record<string, import("../index.ts").ValidatedError>) => void) | undefined) => Promise<Record<string, import("../index.ts").ValidatedError> | undefined> | undefined;
|
|
@@ -22,9 +21,10 @@ declare const JsonForm: {
|
|
|
22
21
|
setFields: (data: Record<string, import("../form/interface.ts").FieldData>) => void | undefined;
|
|
23
22
|
scrollToField: (field: string) => void | undefined;
|
|
24
23
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
25
|
-
"update:modelValue": (value: import("./types").JsonFormModel
|
|
24
|
+
"update:modelValue": (value: import("./types").JsonFormModel) => any;
|
|
26
25
|
}, import("vue").PublicProps, {
|
|
27
26
|
component: string | import("vue").Component;
|
|
27
|
+
modelValue: import("./types").JsonFormModel;
|
|
28
28
|
showColon: boolean;
|
|
29
29
|
hideLabel: boolean;
|
|
30
30
|
hideAsterisk: boolean;
|
|
@@ -39,16 +39,15 @@ declare const JsonForm: {
|
|
|
39
39
|
Defaults: {};
|
|
40
40
|
}, Readonly<{
|
|
41
41
|
schemas: import("./types").JsonFormA2UI_0_9_1ComponentNode[] | import("./types").JsonFormSchema<import("./types").JsonFormComponentType<{}>, {}>[];
|
|
42
|
+
modelValue?: import("./types").JsonFormModel;
|
|
42
43
|
adapter?: import("./types").JsonFormAdapter;
|
|
43
44
|
model?: import("./types").JsonFormModel;
|
|
44
45
|
hideLabel?: boolean;
|
|
45
46
|
hideAsterisk?: boolean;
|
|
46
47
|
showColon?: boolean;
|
|
47
48
|
component?: string | import("vue").Component;
|
|
48
|
-
} & {
|
|
49
|
-
modelValue?: import("./types").JsonFormModel | undefined;
|
|
50
49
|
}> & Readonly<{
|
|
51
|
-
"onUpdate:modelValue"?: ((value: import("./types").JsonFormModel
|
|
50
|
+
"onUpdate:modelValue"?: ((value: import("./types").JsonFormModel) => any) | undefined;
|
|
52
51
|
}>, {
|
|
53
52
|
validate: (callback?: ((errors: undefined | Record<string, import("../index.ts").ValidatedError>) => void) | undefined) => Promise<Record<string, import("../index.ts").ValidatedError> | undefined> | undefined;
|
|
54
53
|
validateField: (field: string | string[], callback?: ((errors: undefined | Record<string, import("../index.ts").ValidatedError>) => void) | undefined) => Promise<Record<string, import("../index.ts").ValidatedError> | undefined> | undefined;
|
|
@@ -58,6 +57,7 @@ declare const JsonForm: {
|
|
|
58
57
|
scrollToField: (field: string) => void | undefined;
|
|
59
58
|
}, {}, {}, {}, {
|
|
60
59
|
component: string | import("vue").Component;
|
|
60
|
+
modelValue: import("./types").JsonFormModel;
|
|
61
61
|
showColon: boolean;
|
|
62
62
|
hideLabel: boolean;
|
|
63
63
|
hideAsterisk: boolean;
|
|
@@ -69,16 +69,15 @@ declare const JsonForm: {
|
|
|
69
69
|
__isSuspense?: never;
|
|
70
70
|
} & import("vue").ComponentOptionsBase<Readonly<{
|
|
71
71
|
schemas: import("./types").JsonFormA2UI_0_9_1ComponentNode[] | import("./types").JsonFormSchema<import("./types").JsonFormComponentType<{}>, {}>[];
|
|
72
|
+
modelValue?: import("./types").JsonFormModel;
|
|
72
73
|
adapter?: import("./types").JsonFormAdapter;
|
|
73
74
|
model?: import("./types").JsonFormModel;
|
|
74
75
|
hideLabel?: boolean;
|
|
75
76
|
hideAsterisk?: boolean;
|
|
76
77
|
showColon?: boolean;
|
|
77
78
|
component?: string | import("vue").Component;
|
|
78
|
-
} & {
|
|
79
|
-
modelValue?: import("./types").JsonFormModel | undefined;
|
|
80
79
|
}> & Readonly<{
|
|
81
|
-
"onUpdate:modelValue"?: ((value: import("./types").JsonFormModel
|
|
80
|
+
"onUpdate:modelValue"?: ((value: import("./types").JsonFormModel) => any) | undefined;
|
|
82
81
|
}>, {
|
|
83
82
|
validate: (callback?: ((errors: undefined | Record<string, import("../index.ts").ValidatedError>) => void) | undefined) => Promise<Record<string, import("../index.ts").ValidatedError> | undefined> | undefined;
|
|
84
83
|
validateField: (field: string | string[], callback?: ((errors: undefined | Record<string, import("../index.ts").ValidatedError>) => void) | undefined) => Promise<Record<string, import("../index.ts").ValidatedError> | undefined> | undefined;
|
|
@@ -87,9 +86,10 @@ declare const JsonForm: {
|
|
|
87
86
|
setFields: (data: Record<string, import("../form/interface.ts").FieldData>) => void | undefined;
|
|
88
87
|
scrollToField: (field: string) => void | undefined;
|
|
89
88
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
90
|
-
"update:modelValue": (value: import("./types").JsonFormModel
|
|
89
|
+
"update:modelValue": (value: import("./types").JsonFormModel) => any;
|
|
91
90
|
}, string, {
|
|
92
91
|
component: string | import("vue").Component;
|
|
92
|
+
modelValue: import("./types").JsonFormModel;
|
|
93
93
|
showColon: boolean;
|
|
94
94
|
hideLabel: boolean;
|
|
95
95
|
hideAsterisk: boolean;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type JsonFormAdapter, type JsonFormModel, type JsonFormSchema } from './types';
|
|
2
2
|
type __VLS_Props = {
|
|
3
|
+
modelValue: JsonFormModel;
|
|
3
4
|
schema: JsonFormSchema<string>;
|
|
4
5
|
adapter: JsonFormAdapter;
|
|
5
6
|
components: Record<string, unknown>;
|
|
@@ -9,13 +10,9 @@ type __VLS_Props = {
|
|
|
9
10
|
showColon?: boolean;
|
|
10
11
|
};
|
|
11
12
|
type __VLS_Slots = Record<string, (props?: Record<string, unknown>) => unknown>;
|
|
12
|
-
|
|
13
|
-
modelValue: JsonFormModel;
|
|
14
|
-
};
|
|
15
|
-
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
|
|
16
|
-
declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
13
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
17
14
|
"update:modelValue": (value: JsonFormModel) => any;
|
|
18
|
-
}, string, import("vue").PublicProps, Readonly<
|
|
15
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
|
|
19
16
|
"onUpdate:modelValue"?: ((value: JsonFormModel) => any) | undefined;
|
|
20
17
|
}>, {
|
|
21
18
|
showColon: boolean;
|