@sdata/web-vue 3.11.0 → 3.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/sd.css +147 -15
- package/dist/sd.min.css +43 -1
- package/es/_components/picker/input-range.vue.d.ts +6 -7
- package/es/_components/picker/input-range.vue_vue_type_script_setup_true_lang.js +63 -46
- package/es/_components/picker/input.vue.d.ts +5 -6
- package/es/_components/picker/input.vue_vue_type_script_setup_true_lang.js +52 -35
- package/es/_hooks/use-readonly-tip.d.ts +11 -0
- package/es/_hooks/use-readonly-tip.js +66 -0
- package/es/auto-complete/auto-complete.d.ts +9 -0
- package/es/auto-complete/auto-complete.js +11 -1
- package/es/auto-complete/index.d.ts +15 -0
- package/es/button/button.vue.d.ts +16 -7
- package/es/button/button.vue_vue_type_script_setup_true_lang.js +57 -31
- package/es/button/index.d.ts +11 -0
- package/es/button/interface.d.ts +2 -0
- package/es/card/card.d.ts +312 -0
- package/es/card/card.js +39 -7
- package/es/card/index.d.ts +616 -0
- package/es/card/style/index.css +23 -0
- package/es/card/style/index.scss +31 -0
- package/es/cascader/cascader.vue.d.ts +9 -8
- package/es/cascader/cascader.vue_vue_type_script_setup_true_lang.js +149 -128
- package/es/cascader/types.d.ts +1 -0
- package/es/color-picker/color-picker.d.ts +9 -0
- package/es/color-picker/color-picker.js +33 -11
- package/es/color-picker/index.d.ts +15 -0
- package/es/config-provider/context.d.ts +9 -9
- package/es/copy/copy.vue_vue_type_script_setup_true_lang.js +1 -1
- package/es/date-picker/index.d.ts +3 -6
- package/es/date-picker/picker.vue.d.ts +2 -3
- package/es/date-picker/picker.vue_vue_type_script_setup_true_lang.js +5 -5
- package/es/date-picker/range-picker.vue.d.ts +2 -3
- package/es/date-picker/range-picker.vue_vue_type_script_setup_true_lang.js +4 -4
- package/es/drawer/drawer.vue_vue_type_script_setup_true_lang.js +3 -3
- package/es/empty/empty.js +1 -1
- package/es/file-previewer/file-previewer.vue_vue_type_script_setup_true_lang.js +1 -1
- package/es/image/image.vue_vue_type_script_setup_true_lang.js +1 -1
- package/es/image/preview-action.d.ts +7 -127
- package/es/image/preview.vue_vue_type_script_setup_true_lang.js +2 -2
- package/es/index.css +147 -15
- package/es/index.js +3 -3
- package/es/input/index.d.ts +6 -6
- package/es/input/input.d.ts +3 -3
- package/es/input/input.js +18 -6
- package/es/input-number/index.d.ts +9 -9
- package/es/input-number/input-number.d.ts +5 -5
- package/es/input-number/input-number.js +8 -8
- package/es/input-tag/index.d.ts +6 -6
- package/es/input-tag/input-tag.d.ts +3 -3
- package/es/input-tag/input-tag.js +16 -7
- package/es/locale/interface.d.ts +1 -0
- package/es/locale/lang/en-us.js +1 -0
- package/es/locale/lang/zh-cn.js +1 -0
- package/es/locale/lang/zh-tw.js +1 -0
- package/es/mention/index.d.ts +15 -0
- package/es/mention/mention.d.ts +9 -0
- package/es/mention/mention.js +12 -1
- package/es/menu/base-menu.vue_vue_type_script_setup_true_lang.js +1 -1
- package/es/modal/modal.vue_vue_type_script_setup_true_lang.js +3 -3
- package/es/pagination/pagination.js +1 -1
- package/es/popconfirm/popconfirm.vue_vue_type_script_setup_true_lang.js +2 -2
- package/es/popover/popover.vue_vue_type_script_setup_true_lang.js +1 -1
- package/es/rate/index.d.ts +6 -6
- package/es/rate/rate.d.ts +3 -3
- package/es/rate/rate.js +17 -7
- package/es/scrollbar/scrollbar.vue_vue_type_script_setup_true_lang.js +1 -1
- package/es/scrollbar/style/index.css +57 -15
- package/es/scrollbar/style/index.scss +63 -15
- package/es/sd-vue.js +3 -3
- package/es/secret/secret.vue_vue_type_script_setup_true_lang.js +1 -1
- package/es/select/index.d.ts +15 -0
- package/es/select/select.d.ts +9 -0
- package/es/select/select.js +28 -5
- package/es/style/normalize.scss +68 -0
- package/es/table/table-th.js +2 -2
- package/es/tabs/context.d.ts +2 -0
- package/es/tabs/index.d.ts +32 -0
- package/es/tabs/style/index.css +29 -0
- package/es/tabs/style/index.scss +38 -0
- package/es/tabs/tab-pane.vue.d.ts +4 -2
- package/es/tabs/tab-pane.vue_vue_type_script_setup_true_lang.js +19 -3
- package/es/tabs/tabs.d.ts +19 -0
- package/es/tabs/tabs.js +23 -2
- package/es/textarea/index.d.ts +15 -0
- package/es/textarea/textarea.vue.d.ts +11 -2
- package/es/textarea/textarea.vue_vue_type_script_setup_true_lang.js +71 -46
- package/es/time-picker/index.d.ts +3 -6
- package/es/time-picker/panel.vue_vue_type_script_setup_true_lang.js +1 -1
- package/es/time-picker/time-picker.vue.d.ts +2 -3
- package/es/time-picker/time-picker.vue_vue_type_script_setup_true_lang.js +8 -5
- package/es/toolbar/toolbar.vue_vue_type_script_setup_true_lang.js +1 -1
- package/es/tooltip/index.d.ts +8 -127
- package/es/tooltip/interface.d.ts +17 -0
- package/es/tooltip/tooltip.vue.d.ts +5 -88
- package/es/tooltip/tooltip.vue_vue_type_script_setup_true_lang.js +8 -69
- package/es/tour/tour.vue_vue_type_script_setup_true_lang.js +1 -1
- package/es/tree/tree.vue_vue_type_script_setup_true_lang.js +1 -1
- package/es/tree-select/tree-select.vue.d.ts +16 -10
- package/es/tree-select/tree-select.vue_vue_type_script_setup_true_lang.js +156 -133
- package/es/typography/base.js +1 -1
- package/es/upload/upload-button.js +1 -1
- package/es/verification-code/index.d.ts +15 -6
- package/es/verification-code/verification-code.d.ts +9 -3
- package/es/verification-code/verification-code.js +4 -1
- package/json/vetur-attributes.json +48 -7
- package/json/vetur-tags.json +17 -5
- package/json/web-types.json +99 -10
- package/package.json +1 -1
- package/es/style/base.scss +0 -18
package/es/input/index.d.ts
CHANGED
|
@@ -23,7 +23,7 @@ declare const Input: {
|
|
|
23
23
|
default: boolean;
|
|
24
24
|
};
|
|
25
25
|
readonly: {
|
|
26
|
-
type: BooleanConstructor;
|
|
26
|
+
type: (StringConstructor | BooleanConstructor)[];
|
|
27
27
|
default: boolean;
|
|
28
28
|
};
|
|
29
29
|
error: {
|
|
@@ -82,7 +82,7 @@ declare const Input: {
|
|
|
82
82
|
}, import("vue").PublicProps, {
|
|
83
83
|
type: "text" | "password";
|
|
84
84
|
error: boolean;
|
|
85
|
-
readonly: boolean;
|
|
85
|
+
readonly: string | boolean;
|
|
86
86
|
disabled: boolean;
|
|
87
87
|
defaultValue: string;
|
|
88
88
|
allowClear: boolean;
|
|
@@ -116,7 +116,7 @@ declare const Input: {
|
|
|
116
116
|
default: boolean;
|
|
117
117
|
};
|
|
118
118
|
readonly: {
|
|
119
|
-
type: BooleanConstructor;
|
|
119
|
+
type: (StringConstructor | BooleanConstructor)[];
|
|
120
120
|
default: boolean;
|
|
121
121
|
};
|
|
122
122
|
error: {
|
|
@@ -167,7 +167,7 @@ declare const Input: {
|
|
|
167
167
|
}, {
|
|
168
168
|
type: "text" | "password";
|
|
169
169
|
error: boolean;
|
|
170
|
-
readonly: boolean;
|
|
170
|
+
readonly: string | boolean;
|
|
171
171
|
disabled: boolean;
|
|
172
172
|
defaultValue: string;
|
|
173
173
|
allowClear: boolean;
|
|
@@ -198,7 +198,7 @@ declare const Input: {
|
|
|
198
198
|
default: boolean;
|
|
199
199
|
};
|
|
200
200
|
readonly: {
|
|
201
|
-
type: BooleanConstructor;
|
|
201
|
+
type: (StringConstructor | BooleanConstructor)[];
|
|
202
202
|
default: boolean;
|
|
203
203
|
};
|
|
204
204
|
error: {
|
|
@@ -257,7 +257,7 @@ declare const Input: {
|
|
|
257
257
|
}, string, {
|
|
258
258
|
type: "text" | "password";
|
|
259
259
|
error: boolean;
|
|
260
|
-
readonly: boolean;
|
|
260
|
+
readonly: string | boolean;
|
|
261
261
|
disabled: boolean;
|
|
262
262
|
defaultValue: string;
|
|
263
263
|
allowClear: boolean;
|
package/es/input/input.d.ts
CHANGED
|
@@ -18,7 +18,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
18
18
|
default: boolean;
|
|
19
19
|
};
|
|
20
20
|
readonly: {
|
|
21
|
-
type: BooleanConstructor;
|
|
21
|
+
type: (StringConstructor | BooleanConstructor)[];
|
|
22
22
|
default: boolean;
|
|
23
23
|
};
|
|
24
24
|
error: {
|
|
@@ -84,7 +84,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
84
84
|
default: boolean;
|
|
85
85
|
};
|
|
86
86
|
readonly: {
|
|
87
|
-
type: BooleanConstructor;
|
|
87
|
+
type: (StringConstructor | BooleanConstructor)[];
|
|
88
88
|
default: boolean;
|
|
89
89
|
};
|
|
90
90
|
error: {
|
|
@@ -129,7 +129,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
129
129
|
}>, {
|
|
130
130
|
type: "text" | "password";
|
|
131
131
|
error: boolean;
|
|
132
|
-
readonly: boolean;
|
|
132
|
+
readonly: string | boolean;
|
|
133
133
|
disabled: boolean;
|
|
134
134
|
defaultValue: string;
|
|
135
135
|
allowClear: boolean;
|
package/es/input/input.js
CHANGED
|
@@ -7,13 +7,18 @@ import IconClose from "../icon/icon-close/index.js";
|
|
|
7
7
|
import { useAllowClear } from "../_hooks/use-allow-clear.js";
|
|
8
8
|
import feedback_icon_default from "../_components/feedback-icon.js";
|
|
9
9
|
import { useCursor } from "../_hooks/use-cursor.js";
|
|
10
|
+
import { isReadonlyModificationKey, useReadonlyTip, useReadonlyTipText } from "../_hooks/use-readonly-tip.js";
|
|
10
11
|
import { useSize } from "../_hooks/use-size.js";
|
|
11
12
|
import { INPUT_EVENTS } from "../_utils/constant.js";
|
|
12
13
|
import { Enter } from "../_utils/keycode.js";
|
|
13
14
|
import { omit } from "../_utils/omit.js";
|
|
14
15
|
import pick from "../_utils/pick.js";
|
|
15
|
-
import
|
|
16
|
+
import Tooltip from "../tooltip/index.js";
|
|
17
|
+
import { computed, createTextVNode, createVNode, defineComponent, isVNode, mergeProps, nextTick, ref, toRef, toRefs, watch } from "vue";
|
|
16
18
|
//#region components/input/input.tsx
|
|
19
|
+
function _isSlot(s) {
|
|
20
|
+
return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
|
|
21
|
+
}
|
|
17
22
|
var input_default = /* @__PURE__ */ defineComponent({
|
|
18
23
|
name: "Input",
|
|
19
24
|
inheritAttrs: false,
|
|
@@ -59,7 +64,7 @@ var input_default = /* @__PURE__ */ defineComponent({
|
|
|
59
64
|
* @en Whether it is read-only
|
|
60
65
|
*/
|
|
61
66
|
readonly: {
|
|
62
|
-
type: Boolean,
|
|
67
|
+
type: [Boolean, String],
|
|
63
68
|
default: false
|
|
64
69
|
},
|
|
65
70
|
/**
|
|
@@ -198,6 +203,8 @@ var input_default = /* @__PURE__ */ defineComponent({
|
|
|
198
203
|
const { mergedSize } = useSize(_mergedSize);
|
|
199
204
|
const { mergedAllowClear } = useAllowClear(allowClear);
|
|
200
205
|
const [recordCursor, setCursor] = useCursor(inputRef);
|
|
206
|
+
const { tipVisible, show: showReadonlyTip } = useReadonlyTip(toRef(props, "readonly"), mergedDisabled);
|
|
207
|
+
const readonlyTipText = useReadonlyTipText(toRef(props, "readonly"));
|
|
201
208
|
const _value = ref(props.defaultValue);
|
|
202
209
|
const computedValue = computed(() => {
|
|
203
210
|
var _props$modelValue;
|
|
@@ -314,6 +321,7 @@ var input_default = /* @__PURE__ */ defineComponent({
|
|
|
314
321
|
emit("clear", ev);
|
|
315
322
|
};
|
|
316
323
|
const handleKeyDown = (e) => {
|
|
324
|
+
if (props.readonly && !mergedDisabled.value && isReadonlyModificationKey(e)) showReadonlyTip();
|
|
317
325
|
const keyCode = e.key || e.code;
|
|
318
326
|
if (!isComposition.value && keyCode === Enter.key) {
|
|
319
327
|
emitChange(computedValue.value, e);
|
|
@@ -354,7 +362,7 @@ var input_default = /* @__PURE__ */ defineComponent({
|
|
|
354
362
|
"value": computedValue.value,
|
|
355
363
|
"type": props.type,
|
|
356
364
|
"placeholder": props.placeholder,
|
|
357
|
-
"readonly": props.readonly,
|
|
365
|
+
"readonly": !!props.readonly,
|
|
358
366
|
"disabled": mergedDisabled.value,
|
|
359
367
|
"onInput": handleInput,
|
|
360
368
|
"onKeydown": handleKeyDown,
|
|
@@ -380,12 +388,16 @@ var input_default = /* @__PURE__ */ defineComponent({
|
|
|
380
388
|
]);
|
|
381
389
|
};
|
|
382
390
|
const render = () => {
|
|
383
|
-
|
|
391
|
+
const node = slots.prepend || slots.append || props.prepend || props.append ? createVNode("span", mergeProps({ "class": outerCls.value }, wrapperAttrs.value), [
|
|
384
392
|
(slots.prepend || props.prepend) && createVNode("span", { "class": `${prefixCls}-prepend` }, [slots.prepend ? slots.prepend() : props.prepend]),
|
|
385
393
|
renderInput(true),
|
|
386
394
|
(slots.append || props.append) && createVNode("span", { "class": `${prefixCls}-append` }, [slots.append ? slots.append() : props.append])
|
|
387
|
-
]);
|
|
388
|
-
return
|
|
395
|
+
]) : renderInput();
|
|
396
|
+
return createVNode(Tooltip, {
|
|
397
|
+
"popupVisible": tipVisible.value,
|
|
398
|
+
"content": readonlyTipText.value,
|
|
399
|
+
"position": "top"
|
|
400
|
+
}, _isSlot(node) ? node : { default: () => [node] });
|
|
389
401
|
};
|
|
390
402
|
return {
|
|
391
403
|
inputRef,
|
|
@@ -61,8 +61,8 @@ declare const InputNumber: {
|
|
|
61
61
|
type: import("vue").PropType<"change" | "input">;
|
|
62
62
|
default: string;
|
|
63
63
|
};
|
|
64
|
-
|
|
65
|
-
type: BooleanConstructor;
|
|
64
|
+
readonly: {
|
|
65
|
+
type: (StringConstructor | BooleanConstructor)[];
|
|
66
66
|
default: boolean;
|
|
67
67
|
};
|
|
68
68
|
inputAttrs: {
|
|
@@ -92,6 +92,7 @@ declare const InputNumber: {
|
|
|
92
92
|
keydown: (_ev: KeyboardEvent) => true;
|
|
93
93
|
}, import("vue").PublicProps, {
|
|
94
94
|
error: boolean;
|
|
95
|
+
readonly: string | boolean;
|
|
95
96
|
disabled: boolean;
|
|
96
97
|
allowClear: boolean;
|
|
97
98
|
max: number;
|
|
@@ -100,7 +101,6 @@ declare const InputNumber: {
|
|
|
100
101
|
min: number;
|
|
101
102
|
hideButton: boolean;
|
|
102
103
|
modelEvent: "change" | "input";
|
|
103
|
-
readOnly: boolean;
|
|
104
104
|
}, true, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
|
|
105
105
|
P: {};
|
|
106
106
|
B: {};
|
|
@@ -162,8 +162,8 @@ declare const InputNumber: {
|
|
|
162
162
|
type: import("vue").PropType<"change" | "input">;
|
|
163
163
|
default: string;
|
|
164
164
|
};
|
|
165
|
-
|
|
166
|
-
type: BooleanConstructor;
|
|
165
|
+
readonly: {
|
|
166
|
+
type: (StringConstructor | BooleanConstructor)[];
|
|
167
167
|
default: boolean;
|
|
168
168
|
};
|
|
169
169
|
inputAttrs: {
|
|
@@ -185,6 +185,7 @@ declare const InputNumber: {
|
|
|
185
185
|
blur(): void;
|
|
186
186
|
}, {
|
|
187
187
|
error: boolean;
|
|
188
|
+
readonly: string | boolean;
|
|
188
189
|
disabled: boolean;
|
|
189
190
|
allowClear: boolean;
|
|
190
191
|
max: number;
|
|
@@ -193,7 +194,6 @@ declare const InputNumber: {
|
|
|
193
194
|
min: number;
|
|
194
195
|
hideButton: boolean;
|
|
195
196
|
modelEvent: "change" | "input";
|
|
196
|
-
readOnly: boolean;
|
|
197
197
|
}>;
|
|
198
198
|
__isFragment?: never;
|
|
199
199
|
__isTeleport?: never;
|
|
@@ -252,8 +252,8 @@ declare const InputNumber: {
|
|
|
252
252
|
type: import("vue").PropType<"change" | "input">;
|
|
253
253
|
default: string;
|
|
254
254
|
};
|
|
255
|
-
|
|
256
|
-
type: BooleanConstructor;
|
|
255
|
+
readonly: {
|
|
256
|
+
type: (StringConstructor | BooleanConstructor)[];
|
|
257
257
|
default: boolean;
|
|
258
258
|
};
|
|
259
259
|
inputAttrs: {
|
|
@@ -283,6 +283,7 @@ declare const InputNumber: {
|
|
|
283
283
|
keydown: (_ev: KeyboardEvent) => true;
|
|
284
284
|
}, string, {
|
|
285
285
|
error: boolean;
|
|
286
|
+
readonly: string | boolean;
|
|
286
287
|
disabled: boolean;
|
|
287
288
|
allowClear: boolean;
|
|
288
289
|
max: number;
|
|
@@ -291,7 +292,6 @@ declare const InputNumber: {
|
|
|
291
292
|
min: number;
|
|
292
293
|
hideButton: boolean;
|
|
293
294
|
modelEvent: "change" | "input";
|
|
294
|
-
readOnly: boolean;
|
|
295
295
|
}, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & {
|
|
296
296
|
install: (app: App, options?: SDOptions) => void;
|
|
297
297
|
};
|
|
@@ -55,8 +55,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
55
55
|
type: PropType<"change" | "input">;
|
|
56
56
|
default: string;
|
|
57
57
|
};
|
|
58
|
-
|
|
59
|
-
type: BooleanConstructor;
|
|
58
|
+
readonly: {
|
|
59
|
+
type: (StringConstructor | BooleanConstructor)[];
|
|
60
60
|
default: boolean;
|
|
61
61
|
};
|
|
62
62
|
inputAttrs: {
|
|
@@ -130,8 +130,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
130
130
|
type: PropType<"change" | "input">;
|
|
131
131
|
default: string;
|
|
132
132
|
};
|
|
133
|
-
|
|
134
|
-
type: BooleanConstructor;
|
|
133
|
+
readonly: {
|
|
134
|
+
type: (StringConstructor | BooleanConstructor)[];
|
|
135
135
|
default: boolean;
|
|
136
136
|
};
|
|
137
137
|
inputAttrs: {
|
|
@@ -147,6 +147,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
147
147
|
"onUpdate:modelValue"?: ((_value: InputNumberValue) => any) | undefined;
|
|
148
148
|
}>, {
|
|
149
149
|
error: boolean;
|
|
150
|
+
readonly: string | boolean;
|
|
150
151
|
disabled: boolean;
|
|
151
152
|
allowClear: boolean;
|
|
152
153
|
max: number;
|
|
@@ -155,6 +156,5 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
155
156
|
min: number;
|
|
156
157
|
hideButton: boolean;
|
|
157
158
|
modelEvent: "change" | "input";
|
|
158
|
-
readOnly: boolean;
|
|
159
159
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
160
160
|
export default _default;
|
|
@@ -135,8 +135,8 @@ var input_number_default = /* @__PURE__ */ defineComponent({
|
|
|
135
135
|
* @en Readonly
|
|
136
136
|
* @version 2.33.1
|
|
137
137
|
*/
|
|
138
|
-
|
|
139
|
-
type: Boolean,
|
|
138
|
+
readonly: {
|
|
139
|
+
type: [Boolean, String],
|
|
140
140
|
default: false
|
|
141
141
|
},
|
|
142
142
|
/**
|
|
@@ -321,7 +321,7 @@ var input_number_default = /* @__PURE__ */ defineComponent({
|
|
|
321
321
|
const handleStepButton = (event, method, needRepeat = false) => {
|
|
322
322
|
var _inputRef$value;
|
|
323
323
|
event.preventDefault();
|
|
324
|
-
if (props.
|
|
324
|
+
if (props.readonly) return;
|
|
325
325
|
(_inputRef$value = inputRef.value) === null || _inputRef$value === void 0 || _inputRef$value.focus();
|
|
326
326
|
nextStep(method, event);
|
|
327
327
|
if (needRepeat) repeatTimer = window.setTimeout(() => event.target.dispatchEvent(event), repeatTimer ? SPEED : FIRST_DELAY);
|
|
@@ -364,10 +364,10 @@ var input_number_default = /* @__PURE__ */ defineComponent({
|
|
|
364
364
|
};
|
|
365
365
|
const keyDownHandler = getKeyDownHandler(new Map([[KEYBOARD_KEY.ARROW_UP, (ev) => {
|
|
366
366
|
ev.preventDefault();
|
|
367
|
-
!props.
|
|
367
|
+
!props.readonly && nextStep("plus", ev);
|
|
368
368
|
}], [KEYBOARD_KEY.ARROW_DOWN, (ev) => {
|
|
369
369
|
ev.preventDefault();
|
|
370
|
-
!props.
|
|
370
|
+
!props.readonly && nextStep("minus", ev);
|
|
371
371
|
}]]));
|
|
372
372
|
const onKeyDown = (event) => {
|
|
373
373
|
emit("keydown", event);
|
|
@@ -387,7 +387,7 @@ var input_number_default = /* @__PURE__ */ defineComponent({
|
|
|
387
387
|
});
|
|
388
388
|
const renderSuffix = () => {
|
|
389
389
|
var _slots$suffix, _slots$plus, _slots$minus;
|
|
390
|
-
if (props.
|
|
390
|
+
if (props.readonly) return null;
|
|
391
391
|
return createVNode(Fragment, null, [slots.suffix && createVNode("div", { "class": `${prefixCls}-suffix` }, [(_slots$suffix = slots.suffix) === null || _slots$suffix === void 0 ? void 0 : _slots$suffix.call(slots)]), createVNode("div", { "class": `${prefixCls}-step` }, [createVNode("button", {
|
|
392
392
|
"class": [`${prefixCls}-step-button`, { [`${prefixCls}-step-button-disabled`]: mergedDisabled.value || isMax.value }],
|
|
393
393
|
"type": "button",
|
|
@@ -410,7 +410,7 @@ var input_number_default = /* @__PURE__ */ defineComponent({
|
|
|
410
410
|
prefixCls,
|
|
411
411
|
`${prefixCls}-mode-${props.mode}`,
|
|
412
412
|
`${prefixCls}-size-${mergedSize.value}`,
|
|
413
|
-
{ [`${prefixCls}-readonly`]: props.
|
|
413
|
+
{ [`${prefixCls}-readonly`]: props.readonly }
|
|
414
414
|
]);
|
|
415
415
|
const renderPrependButton = () => {
|
|
416
416
|
return createVNode(Button, mergeProps({
|
|
@@ -458,7 +458,7 @@ var input_number_default = /* @__PURE__ */ defineComponent({
|
|
|
458
458
|
"modelValue": _value.value,
|
|
459
459
|
"placeholder": props.placeholder,
|
|
460
460
|
"disabled": mergedDisabled.value,
|
|
461
|
-
"readonly": props.
|
|
461
|
+
"readonly": props.readonly,
|
|
462
462
|
"error": props.error,
|
|
463
463
|
"inputAttrs": _objectSpread2({
|
|
464
464
|
"role": "spinbutton",
|
package/es/input-tag/index.d.ts
CHANGED
|
@@ -25,7 +25,7 @@ declare const InputTag: {
|
|
|
25
25
|
default: boolean;
|
|
26
26
|
};
|
|
27
27
|
readonly: {
|
|
28
|
-
type: BooleanConstructor;
|
|
28
|
+
type: (StringConstructor | BooleanConstructor)[];
|
|
29
29
|
default: boolean;
|
|
30
30
|
};
|
|
31
31
|
allowClear: {
|
|
@@ -92,7 +92,7 @@ declare const InputTag: {
|
|
|
92
92
|
blur: (_ev: FocusEvent) => true;
|
|
93
93
|
}, import("vue").PublicProps, {
|
|
94
94
|
error: boolean;
|
|
95
|
-
readonly: boolean;
|
|
95
|
+
readonly: string | boolean;
|
|
96
96
|
disabled: boolean;
|
|
97
97
|
defaultValue: (string | number | import("./interface").TagData)[];
|
|
98
98
|
allowClear: boolean;
|
|
@@ -137,7 +137,7 @@ declare const InputTag: {
|
|
|
137
137
|
default: boolean;
|
|
138
138
|
};
|
|
139
139
|
readonly: {
|
|
140
|
-
type: BooleanConstructor;
|
|
140
|
+
type: (StringConstructor | BooleanConstructor)[];
|
|
141
141
|
default: boolean;
|
|
142
142
|
};
|
|
143
143
|
allowClear: {
|
|
@@ -194,7 +194,7 @@ declare const InputTag: {
|
|
|
194
194
|
blur(): void;
|
|
195
195
|
}, {
|
|
196
196
|
error: boolean;
|
|
197
|
-
readonly: boolean;
|
|
197
|
+
readonly: string | boolean;
|
|
198
198
|
disabled: boolean;
|
|
199
199
|
defaultValue: (string | number | import("./interface").TagData)[];
|
|
200
200
|
allowClear: boolean;
|
|
@@ -236,7 +236,7 @@ declare const InputTag: {
|
|
|
236
236
|
default: boolean;
|
|
237
237
|
};
|
|
238
238
|
readonly: {
|
|
239
|
-
type: BooleanConstructor;
|
|
239
|
+
type: (StringConstructor | BooleanConstructor)[];
|
|
240
240
|
default: boolean;
|
|
241
241
|
};
|
|
242
242
|
allowClear: {
|
|
@@ -303,7 +303,7 @@ declare const InputTag: {
|
|
|
303
303
|
blur: (_ev: FocusEvent) => true;
|
|
304
304
|
}, string, {
|
|
305
305
|
error: boolean;
|
|
306
|
-
readonly: boolean;
|
|
306
|
+
readonly: string | boolean;
|
|
307
307
|
disabled: boolean;
|
|
308
308
|
defaultValue: (string | number | import("./interface").TagData)[];
|
|
309
309
|
allowClear: boolean;
|
|
@@ -24,7 +24,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
24
24
|
default: boolean;
|
|
25
25
|
};
|
|
26
26
|
readonly: {
|
|
27
|
-
type: BooleanConstructor;
|
|
27
|
+
type: (StringConstructor | BooleanConstructor)[];
|
|
28
28
|
default: boolean;
|
|
29
29
|
};
|
|
30
30
|
allowClear: {
|
|
@@ -102,7 +102,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
102
102
|
default: boolean;
|
|
103
103
|
};
|
|
104
104
|
readonly: {
|
|
105
|
-
type: BooleanConstructor;
|
|
105
|
+
type: (StringConstructor | BooleanConstructor)[];
|
|
106
106
|
default: boolean;
|
|
107
107
|
};
|
|
108
108
|
allowClear: {
|
|
@@ -153,7 +153,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
153
153
|
onRemove?: ((_removed: string | number, _ev: Event) => any) | undefined;
|
|
154
154
|
}>, {
|
|
155
155
|
error: boolean;
|
|
156
|
-
readonly: boolean;
|
|
156
|
+
readonly: string | boolean;
|
|
157
157
|
disabled: boolean;
|
|
158
158
|
defaultValue: (string | number | TagData)[];
|
|
159
159
|
allowClear: boolean;
|
|
@@ -7,15 +7,17 @@ import icon_hover_default from "../_components/icon-hover.js";
|
|
|
7
7
|
import IconClose from "../icon/icon-close/index.js";
|
|
8
8
|
import { useAllowClear } from "../_hooks/use-allow-clear.js";
|
|
9
9
|
import feedback_icon_default from "../_components/feedback-icon.js";
|
|
10
|
+
import { isReadonlyModificationKey, useReadonlyTip, useReadonlyTipText } from "../_hooks/use-readonly-tip.js";
|
|
10
11
|
import { useSize } from "../_hooks/use-size.js";
|
|
11
12
|
import { INPUT_EVENTS } from "../_utils/constant.js";
|
|
12
13
|
import { Backspace, Enter } from "../_utils/keycode.js";
|
|
13
14
|
import { omit } from "../_utils/omit.js";
|
|
14
15
|
import pick from "../_utils/pick.js";
|
|
16
|
+
import Tooltip from "../tooltip/index.js";
|
|
15
17
|
import Ellipsis from "../ellipsis/index.js";
|
|
16
18
|
import Tag from "../tag/index.js";
|
|
17
19
|
import { getValueData } from "./utils.js";
|
|
18
|
-
import { TransitionGroup, computed, createVNode, defineComponent, isVNode, mergeProps, nextTick, onMounted, reactive, ref, toRefs, watch } from "vue";
|
|
20
|
+
import { TransitionGroup, computed, createVNode, defineComponent, isVNode, mergeProps, nextTick, onMounted, reactive, ref, toRef, toRefs, watch } from "vue";
|
|
19
21
|
//#region components/input-tag/input-tag.tsx
|
|
20
22
|
function _isSlot(s) {
|
|
21
23
|
return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
|
|
@@ -84,7 +86,7 @@ var input_tag_default = /* @__PURE__ */ defineComponent({
|
|
|
84
86
|
* @en Whether it is read-only mode
|
|
85
87
|
*/
|
|
86
88
|
readonly: {
|
|
87
|
-
type: Boolean,
|
|
89
|
+
type: [Boolean, String],
|
|
88
90
|
default: false
|
|
89
91
|
},
|
|
90
92
|
/**
|
|
@@ -233,6 +235,8 @@ var input_tag_default = /* @__PURE__ */ defineComponent({
|
|
|
233
235
|
});
|
|
234
236
|
const { mergedSize } = useSize(_mergedSize);
|
|
235
237
|
const { mergedAllowClear } = useAllowClear(allowClear);
|
|
238
|
+
const { tipVisible, show: showReadonlyTip } = useReadonlyTip(toRef(props, "readonly"), mergedDisabled);
|
|
239
|
+
const readonlyTipText = useReadonlyTipText(toRef(props, "readonly"));
|
|
236
240
|
const mergedFieldNames = computed(() => _objectSpread2(_objectSpread2({}, DEFAULT_FIELD_NAMES), props.fieldNames));
|
|
237
241
|
const _focused = ref(false);
|
|
238
242
|
const _value = ref(props.defaultValue);
|
|
@@ -443,6 +447,7 @@ var input_tag_default = /* @__PURE__ */ defineComponent({
|
|
|
443
447
|
return -1;
|
|
444
448
|
};
|
|
445
449
|
const handleKeyDown = (e) => {
|
|
450
|
+
if (props.readonly && !mergedDisabled.value && isReadonlyModificationKey(e)) showReadonlyTip();
|
|
446
451
|
if (mergedDisabled.value || props.readonly) return;
|
|
447
452
|
const keyCode = e.key || e.code;
|
|
448
453
|
if (!isComposition.value && computedInputValue.value && keyCode === Enter.key) handlePressEnter(e);
|
|
@@ -515,9 +520,13 @@ var input_tag_default = /* @__PURE__ */ defineComponent({
|
|
|
515
520
|
});
|
|
516
521
|
});
|
|
517
522
|
const isCompressedResponsiveTag = (index, value) => isResponsiveMaxTagCount.value && !isOverflowCounterTag(value) && hiddenTagCount.value > 0 && index === 0 && responsiveTagMaxWidth.value > 0;
|
|
518
|
-
const render = () => {
|
|
523
|
+
const render = () => createVNode(Tooltip, {
|
|
524
|
+
"popupVisible": tipVisible.value,
|
|
525
|
+
"content": readonlyTipText.value,
|
|
526
|
+
"position": "top"
|
|
527
|
+
}, { default: () => {
|
|
519
528
|
var _slots$suffix;
|
|
520
|
-
return createVNode("span", mergeProps({
|
|
529
|
+
return [createVNode("span", mergeProps({
|
|
521
530
|
"ref": wrapperRef,
|
|
522
531
|
"class": cls.value,
|
|
523
532
|
"onMousedown": handleMousedown
|
|
@@ -578,7 +587,7 @@ var input_tag_default = /* @__PURE__ */ defineComponent({
|
|
|
578
587
|
"style": getInputStyle.value,
|
|
579
588
|
"placeholder": valueData.value.length === 0 ? props.placeholder : void 0,
|
|
580
589
|
"disabled": mergedDisabled.value,
|
|
581
|
-
"readonly": props.readonly || props.disabledInput,
|
|
590
|
+
"readonly": !!(props.readonly || props.disabledInput),
|
|
582
591
|
"onInput": handleInput,
|
|
583
592
|
"onKeydown": handleKeyDown,
|
|
584
593
|
"onFocus": handleFocus,
|
|
@@ -592,8 +601,8 @@ var input_tag_default = /* @__PURE__ */ defineComponent({
|
|
|
592
601
|
onMousedown: (e) => e.stopPropagation()
|
|
593
602
|
}), { default: () => [createVNode(IconClose, null, null)] }),
|
|
594
603
|
(slots.suffix || Boolean(feedback.value)) && createVNode("span", { "class": `${prefixCls}-suffix` }, [(_slots$suffix = slots.suffix) === null || _slots$suffix === void 0 ? void 0 : _slots$suffix.call(slots), Boolean(feedback.value) && createVNode(feedback_icon_default, { "type": feedback.value }, null)])
|
|
595
|
-
]);
|
|
596
|
-
};
|
|
604
|
+
])];
|
|
605
|
+
} });
|
|
597
606
|
return {
|
|
598
607
|
inputRef,
|
|
599
608
|
render
|
package/es/locale/interface.d.ts
CHANGED
package/es/locale/lang/en-us.js
CHANGED
package/es/locale/lang/zh-cn.js
CHANGED
package/es/locale/lang/zh-tw.js
CHANGED
package/es/mention/index.d.ts
CHANGED
|
@@ -28,6 +28,10 @@ declare const Mention: {
|
|
|
28
28
|
type: BooleanConstructor;
|
|
29
29
|
default: boolean;
|
|
30
30
|
};
|
|
31
|
+
readonly: {
|
|
32
|
+
type: (StringConstructor | BooleanConstructor)[];
|
|
33
|
+
default: boolean;
|
|
34
|
+
};
|
|
31
35
|
allowClear: {
|
|
32
36
|
type: BooleanConstructor;
|
|
33
37
|
default: boolean;
|
|
@@ -57,6 +61,7 @@ declare const Mention: {
|
|
|
57
61
|
}, import("vue").PublicProps, {
|
|
58
62
|
type: "input" | "textarea";
|
|
59
63
|
split: string;
|
|
64
|
+
readonly: string | boolean;
|
|
60
65
|
data: (string | number | import("..").SelectOptionData | import("..").SelectOptionGroup)[];
|
|
61
66
|
disabled: boolean;
|
|
62
67
|
prefix: string | string[];
|
|
@@ -95,6 +100,10 @@ declare const Mention: {
|
|
|
95
100
|
type: BooleanConstructor;
|
|
96
101
|
default: boolean;
|
|
97
102
|
};
|
|
103
|
+
readonly: {
|
|
104
|
+
type: (StringConstructor | BooleanConstructor)[];
|
|
105
|
+
default: boolean;
|
|
106
|
+
};
|
|
98
107
|
allowClear: {
|
|
99
108
|
type: BooleanConstructor;
|
|
100
109
|
default: boolean;
|
|
@@ -116,6 +125,7 @@ declare const Mention: {
|
|
|
116
125
|
}, {
|
|
117
126
|
type: "input" | "textarea";
|
|
118
127
|
split: string;
|
|
128
|
+
readonly: string | boolean;
|
|
119
129
|
data: (string | number | import("..").SelectOptionData | import("..").SelectOptionGroup)[];
|
|
120
130
|
disabled: boolean;
|
|
121
131
|
prefix: string | string[];
|
|
@@ -151,6 +161,10 @@ declare const Mention: {
|
|
|
151
161
|
type: BooleanConstructor;
|
|
152
162
|
default: boolean;
|
|
153
163
|
};
|
|
164
|
+
readonly: {
|
|
165
|
+
type: (StringConstructor | BooleanConstructor)[];
|
|
166
|
+
default: boolean;
|
|
167
|
+
};
|
|
154
168
|
allowClear: {
|
|
155
169
|
type: BooleanConstructor;
|
|
156
170
|
default: boolean;
|
|
@@ -180,6 +194,7 @@ declare const Mention: {
|
|
|
180
194
|
}, string, {
|
|
181
195
|
type: "input" | "textarea";
|
|
182
196
|
split: string;
|
|
197
|
+
readonly: string | boolean;
|
|
183
198
|
data: (string | number | import("..").SelectOptionData | import("..").SelectOptionGroup)[];
|
|
184
199
|
disabled: boolean;
|
|
185
200
|
prefix: string | string[];
|
package/es/mention/mention.d.ts
CHANGED
|
@@ -26,6 +26,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
26
26
|
type: BooleanConstructor;
|
|
27
27
|
default: boolean;
|
|
28
28
|
};
|
|
29
|
+
readonly: {
|
|
30
|
+
type: (StringConstructor | BooleanConstructor)[];
|
|
31
|
+
default: boolean;
|
|
32
|
+
};
|
|
29
33
|
allowClear: {
|
|
30
34
|
type: BooleanConstructor;
|
|
31
35
|
default: boolean;
|
|
@@ -70,6 +74,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
70
74
|
type: BooleanConstructor;
|
|
71
75
|
default: boolean;
|
|
72
76
|
};
|
|
77
|
+
readonly: {
|
|
78
|
+
type: (StringConstructor | BooleanConstructor)[];
|
|
79
|
+
default: boolean;
|
|
80
|
+
};
|
|
73
81
|
allowClear: {
|
|
74
82
|
type: BooleanConstructor;
|
|
75
83
|
default: boolean;
|
|
@@ -85,6 +93,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
85
93
|
}>, {
|
|
86
94
|
type: "input" | "textarea";
|
|
87
95
|
split: string;
|
|
96
|
+
readonly: string | boolean;
|
|
88
97
|
data: (string | number | SelectOptionData | SelectOptionGroup)[];
|
|
89
98
|
disabled: boolean;
|
|
90
99
|
prefix: string | string[];
|
package/es/mention/mention.js
CHANGED
|
@@ -4,11 +4,11 @@ import { getPrefixCls } from "../_utils/global-config.js";
|
|
|
4
4
|
import { isFunction, isNull, isUndefined } from "../_utils/is.js";
|
|
5
5
|
import resize_observer_default from "../_components/resize-observer.js";
|
|
6
6
|
import { useAllowClear } from "../_hooks/use-allow-clear.js";
|
|
7
|
+
import Trigger from "../trigger/index.js";
|
|
7
8
|
import Input from "../input/index.js";
|
|
8
9
|
import { getKeyFromValue } from "../select/utils.js";
|
|
9
10
|
import { useSelect } from "../select/hooks/use-select.js";
|
|
10
11
|
import select_dropdown_default from "../select/select-dropdown.js";
|
|
11
|
-
import Trigger from "../trigger/index.js";
|
|
12
12
|
import { getSizeStyles } from "../textarea/utils.js";
|
|
13
13
|
import Textarea from "../textarea/index.js";
|
|
14
14
|
import { getLastMeasureIndex, getTextBeforeSelection, isValidSearch } from "./utils.js";
|
|
@@ -76,6 +76,14 @@ var mention_default = /* @__PURE__ */ defineComponent({
|
|
|
76
76
|
default: false
|
|
77
77
|
},
|
|
78
78
|
/**
|
|
79
|
+
* @zh 是否为只读状态
|
|
80
|
+
* @en Whether it is read-only
|
|
81
|
+
*/
|
|
82
|
+
readonly: {
|
|
83
|
+
type: [Boolean, String],
|
|
84
|
+
default: false
|
|
85
|
+
},
|
|
86
|
+
/**
|
|
79
87
|
* @zh 是否允许清空输入框
|
|
80
88
|
* @en Whether to allow the input to be cleared
|
|
81
89
|
* @version 2.23.0
|
|
@@ -170,6 +178,7 @@ var mention_default = /* @__PURE__ */ defineComponent({
|
|
|
170
178
|
const filterOption = ref(true);
|
|
171
179
|
const handleInput = (value, e) => {
|
|
172
180
|
var _eventHandlers$value, _eventHandlers$value$;
|
|
181
|
+
if (props.readonly) return;
|
|
173
182
|
const text = getTextBeforeSelection(e.target);
|
|
174
183
|
const lastMeasure = getLastMeasureIndex(text, props.prefix);
|
|
175
184
|
if (lastMeasure.location > -1) {
|
|
@@ -308,6 +317,7 @@ var mention_default = /* @__PURE__ */ defineComponent({
|
|
|
308
317
|
"allowClear": mergedAllowClear.value,
|
|
309
318
|
"modelValue": computedValue.value,
|
|
310
319
|
"disabled": mergedDisabled.value,
|
|
320
|
+
"readonly": props.readonly,
|
|
311
321
|
"onInput": handleInput,
|
|
312
322
|
"onClear": handleClear,
|
|
313
323
|
"onFocus": onFocus,
|
|
@@ -347,6 +357,7 @@ var mention_default = /* @__PURE__ */ defineComponent({
|
|
|
347
357
|
"allowClear": mergedAllowClear.value,
|
|
348
358
|
"modelValue": computedValue.value,
|
|
349
359
|
"disabled": mergedDisabled.value,
|
|
360
|
+
"readonly": props.readonly,
|
|
350
361
|
"onInput": handleInput,
|
|
351
362
|
"onClear": handleClear,
|
|
352
363
|
"onFocus": onFocus,
|
|
@@ -2,8 +2,8 @@ import { _objectSpread2 } from "../_virtual/_@oxc-project_runtime@0.133.0/helper
|
|
|
2
2
|
import { getPrefixCls } from "../_utils/global-config.js";
|
|
3
3
|
import { isNumber, isObject } from "../_utils/is.js";
|
|
4
4
|
import { omit } from "../_utils/omit.js";
|
|
5
|
-
import useMergeState from "../_hooks/use-merge-state.js";
|
|
6
5
|
import usePickSlots from "../_hooks/use-pick-slots.js";
|
|
6
|
+
import useMergeState from "../_hooks/use-merge-state.js";
|
|
7
7
|
import { MenuInjectionKey } from "./context.js";
|
|
8
8
|
import { provideLevel } from "./hooks/use-level.js";
|
|
9
9
|
import useMenuDataCollector from "./hooks/use-menu-data-collector.js";
|