@sdata/web-vue 1.7.1 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/dist/sd.css +92 -1
  2. package/dist/sd.min.css +1 -1
  3. package/es/_hooks/use-allow-clear.d.ts +4 -0
  4. package/es/_hooks/use-allow-clear.js +20 -0
  5. package/es/_utils/color.js +1 -18
  6. package/es/auto-complete/auto-complete.js +4 -2
  7. package/es/cascader/cascader.js +1 -1
  8. package/es/cascader/cascader.vue.d.ts +1 -0
  9. package/es/cascader/cascader.vue_vue_type_script_lang.js +4 -1
  10. package/es/cascader/index.d.ts +3 -0
  11. package/es/color-picker/color-picker.d.ts +115 -40
  12. package/es/color-picker/color-picker.js +146 -102
  13. package/es/color-picker/index.d.ts +217 -69
  14. package/es/color-picker/interface.d.ts +41 -0
  15. package/es/color-picker/palette.js +1 -1
  16. package/es/color-picker/panel.d.ts +73 -34
  17. package/es/color-picker/panel.js +423 -89
  18. package/es/color-picker/style/index.css +92 -1
  19. package/es/color-picker/style/index.scss +107 -1
  20. package/es/color-picker/utils.d.ts +89 -0
  21. package/es/color-picker/utils.js +456 -0
  22. package/es/config-provider/config-provider.vue.d.ts +9 -0
  23. package/es/config-provider/config-provider.vue_vue_type_script_lang.js +6 -1
  24. package/es/config-provider/context.d.ts +1 -0
  25. package/es/config-provider/index.d.ts +15 -0
  26. package/es/date-picker/index.d.ts +1 -0
  27. package/es/date-picker/picker.js +1 -1
  28. package/es/date-picker/picker.vue.d.ts +1 -0
  29. package/es/date-picker/picker.vue_vue_type_script_lang.js +4 -1
  30. package/es/date-picker/range-picker.js +1 -1
  31. package/es/date-picker/range-picker.vue.d.ts +1 -0
  32. package/es/date-picker/range-picker.vue_vue_type_script_lang.js +4 -1
  33. package/es/index.css +92 -1
  34. package/es/input/input.js +4 -2
  35. package/es/input-number/input-number.js +4 -2
  36. package/es/input-tag/input-tag.js +4 -2
  37. package/es/mention/mention.js +4 -2
  38. package/es/rate/rate.js +4 -2
  39. package/es/select/select.js +4 -2
  40. package/es/textarea/index.d.ts +3 -3
  41. package/es/textarea/textarea.vue.d.ts +1 -1
  42. package/es/textarea/textarea.vue_vue_type_script_lang.js +6 -2
  43. package/es/time-picker/index.d.ts +3 -0
  44. package/es/time-picker/time-picker.js +1 -1
  45. package/es/time-picker/time-picker.vue.d.ts +1 -0
  46. package/es/time-picker/time-picker.vue_vue_type_script_lang.js +4 -1
  47. package/es/tree-select/index.d.ts +3 -0
  48. package/es/tree-select/tree-select.js +1 -1
  49. package/es/tree-select/tree-select.vue.d.ts +1 -0
  50. package/es/tree-select/tree-select.vue_vue_type_script_lang.js +4 -1
  51. package/json/vetur-attributes.json +46 -20
  52. package/json/vetur-tags.json +14 -6
  53. package/json/web-types.json +86 -22
  54. package/package.json +3 -1
  55. package/es/color-picker/input-alpha.js +0 -32
  56. package/es/color-picker/input-hex.js +0 -73
  57. package/es/color-picker/input-rgb.js +0 -55
@@ -15,6 +15,10 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
15
15
  size: {
16
16
  type: PropType<Size>;
17
17
  };
18
+ allowClear: {
19
+ type: BooleanConstructor;
20
+ default: boolean;
21
+ };
18
22
  global: {
19
23
  type: BooleanConstructor;
20
24
  default: boolean;
@@ -52,6 +56,10 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
52
56
  size: {
53
57
  type: PropType<Size>;
54
58
  };
59
+ allowClear: {
60
+ type: BooleanConstructor;
61
+ default: boolean;
62
+ };
55
63
  global: {
56
64
  type: BooleanConstructor;
57
65
  default: boolean;
@@ -80,6 +88,7 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
80
88
  };
81
89
  }>> & Readonly<{}>, {
82
90
  prefixCls: string;
91
+ allowClear: boolean;
83
92
  updateAtScroll: boolean;
84
93
  scrollToClose: boolean;
85
94
  rtl: boolean;
@@ -12,6 +12,10 @@ var config_provider_vue_vue_type_script_lang_default = defineComponent({
12
12
  },
13
13
  locale: { type: Object },
14
14
  size: { type: String },
15
+ allowClear: {
16
+ type: Boolean,
17
+ default: false
18
+ },
15
19
  global: {
16
20
  type: Boolean,
17
21
  default: false
@@ -36,12 +40,13 @@ var config_provider_vue_vue_type_script_lang_default = defineComponent({
36
40
  themeMode: { type: String }
37
41
  },
38
42
  setup(props, { slots }) {
39
- const { prefixCls, locale, size, updateAtScroll, scrollToClose, exchangeTime, rtl } = toRefs(props);
43
+ const { prefixCls, locale, size, allowClear, updateAtScroll, scrollToClose, exchangeTime, rtl } = toRefs(props);
40
44
  const config = reactive({
41
45
  slots,
42
46
  prefixCls,
43
47
  locale,
44
48
  size,
49
+ allowClear,
45
50
  updateAtScroll,
46
51
  scrollToClose,
47
52
  exchangeTime,
@@ -7,6 +7,7 @@ export interface ConfigProvider {
7
7
  prefixCls?: string;
8
8
  locale?: SDLang;
9
9
  size?: Size;
10
+ allowClear?: boolean;
10
11
  updateAtScroll?: boolean;
11
12
  scrollToClose?: boolean;
12
13
  exchangeTime?: boolean;
@@ -13,6 +13,10 @@ declare const ConfigProvider: {
13
13
  size: {
14
14
  type: import("vue").PropType<import("..").Size>;
15
15
  };
16
+ allowClear: {
17
+ type: BooleanConstructor;
18
+ default: boolean;
19
+ };
16
20
  global: {
17
21
  type: BooleanConstructor;
18
22
  default: boolean;
@@ -41,6 +45,7 @@ declare const ConfigProvider: {
41
45
  };
42
46
  }>> & Readonly<{}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, import("vue").PublicProps, {
43
47
  prefixCls: string;
48
+ allowClear: boolean;
44
49
  updateAtScroll: boolean;
45
50
  scrollToClose: boolean;
46
51
  rtl: boolean;
@@ -111,6 +116,10 @@ declare const ConfigProvider: {
111
116
  size: {
112
117
  type: import("vue").PropType<import("..").Size>;
113
118
  };
119
+ allowClear: {
120
+ type: BooleanConstructor;
121
+ default: boolean;
122
+ };
114
123
  global: {
115
124
  type: BooleanConstructor;
116
125
  default: boolean;
@@ -139,6 +148,7 @@ declare const ConfigProvider: {
139
148
  };
140
149
  }>> & Readonly<{}>, {}, {}, {}, {}, {
141
150
  prefixCls: string;
151
+ allowClear: boolean;
142
152
  updateAtScroll: boolean;
143
153
  scrollToClose: boolean;
144
154
  rtl: boolean;
@@ -159,6 +169,10 @@ declare const ConfigProvider: {
159
169
  size: {
160
170
  type: import("vue").PropType<import("..").Size>;
161
171
  };
172
+ allowClear: {
173
+ type: BooleanConstructor;
174
+ default: boolean;
175
+ };
162
176
  global: {
163
177
  type: BooleanConstructor;
164
178
  default: boolean;
@@ -187,6 +201,7 @@ declare const ConfigProvider: {
187
201
  };
188
202
  }>> & Readonly<{}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {
189
203
  prefixCls: string;
204
+ allowClear: boolean;
190
205
  updateAtScroll: boolean;
191
206
  scrollToClose: boolean;
192
207
  rtl: boolean;
@@ -385,6 +385,7 @@ declare const DatePicker: {
385
385
  panelValue: import("vue").ComputedRef<(import("dayjs").Dayjs | undefined)[]>;
386
386
  inputValue: import("vue").Ref<(string | undefined)[] | undefined, (string | undefined)[] | undefined>;
387
387
  focusedIndex: import("vue").Ref<number, number>;
388
+ mergedAllowClear: import("vue").ComputedRef<boolean | undefined>;
388
389
  triggerDisabled: import("vue").ComputedRef<boolean>;
389
390
  mergedSize: import("vue").ComputedRef<"mini" | "small" | "medium" | "large" | undefined>;
390
391
  mergedError: import("vue").ComputedRef<boolean>;
@@ -33,7 +33,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
33
33
  error: _ctx.error,
34
34
  disabled: _ctx.mergedDisabled,
35
35
  readonly: !_ctx.inputEditable || _ctx.disabledInput,
36
- "allow-clear": _ctx.allowClear && !_ctx.readonly,
36
+ "allow-clear": _ctx.mergedAllowClear && !_ctx.readonly,
37
37
  placeholder: _ctx.computedPlaceholder,
38
38
  "input-value": _ctx.inputValue,
39
39
  value: _ctx.needConfirm ? _ctx.panelValue : _ctx.selectedValue,
@@ -197,6 +197,7 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
197
197
  inputFormat: import("vue").ComputedRef<string | ((value: Dayjs) => string)>;
198
198
  computedPlaceholder: import("vue").ComputedRef<string>;
199
199
  panelVisible: import("vue").ComputedRef<boolean>;
200
+ mergedAllowClear: import("vue").ComputedRef<boolean | undefined>;
200
201
  inputEditable: import("vue").ComputedRef<boolean>;
201
202
  needConfirm: import("vue").ComputedRef<boolean>;
202
203
  mergedDisabled: import("vue").ComputedRef<boolean>;
@@ -2,6 +2,7 @@ import { useFormItem } from "../_hooks/use-form-item.js";
2
2
  import { _objectSpread2 } from "../_virtual/_@oxc-project_runtime@0.124.0/helpers/objectSpread2.js";
3
3
  import { getPrefixCls } from "../_utils/global-config.js";
4
4
  import { isBoolean, isFunction } from "../_utils/is.js";
5
+ import { useAllowClear } from "../_hooks/use-allow-clear.js";
5
6
  import { omit } from "../_utils/omit.js";
6
7
  import pick from "../_utils/pick.js";
7
8
  import useState from "../_hooks/use-state.js";
@@ -136,12 +137,13 @@ var picker_vue_vue_type_script_lang_default = defineComponent({
136
137
  "update:pickerValue": (_value) => true
137
138
  },
138
139
  setup(props, { emit, slots }) {
139
- const { mode, modelValue, defaultValue, format, valueFormat, placeholder, popupVisible, defaultPopupVisible, disabled, showTime, timePickerProps, disabledDate, disabledTime, readonly, locale, pickerValue, defaultPickerValue, dayStartOfWeek, previewShortcut, showConfirmBtn } = toRefs(props);
140
+ const { mode, modelValue, defaultValue, format, valueFormat, placeholder, popupVisible, defaultPopupVisible, disabled, showTime, timePickerProps, disabledDate, disabledTime, readonly, allowClear, locale, pickerValue, defaultPickerValue, dayStartOfWeek, previewShortcut, showConfirmBtn } = toRefs(props);
140
141
  const { locale: globalLocal } = useI18n();
141
142
  watchEffect(() => {
142
143
  initializeDateLocale(globalLocal.value, dayStartOfWeek.value);
143
144
  });
144
145
  const { mergedDisabled, eventHandlers } = useFormItem({ disabled });
146
+ const { mergedAllowClear } = useAllowClear(allowClear);
145
147
  const datePickerT = useDatePickerTransform(reactive({ locale }));
146
148
  const prefixCls = getPrefixCls("picker");
147
149
  const refInput = ref();
@@ -395,6 +397,7 @@ var picker_vue_vue_type_script_lang_default = defineComponent({
395
397
  inputFormat,
396
398
  computedPlaceholder,
397
399
  panelVisible,
400
+ mergedAllowClear,
398
401
  inputEditable,
399
402
  needConfirm,
400
403
  mergedDisabled,
@@ -33,7 +33,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
33
33
  error: _ctx.error,
34
34
  disabled: _ctx.disabled,
35
35
  readonly: _ctx.readonly || _ctx.disabledInput,
36
- "allow-clear": _ctx.allowClear && !_ctx.readonly,
36
+ "allow-clear": _ctx.mergedAllowClear && !_ctx.readonly,
37
37
  placeholder: _ctx.computedPlaceholder,
38
38
  "input-value": _ctx.inputValue,
39
39
  value: _ctx.panelValue,
@@ -132,6 +132,7 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
132
132
  panelValue: import("vue").ComputedRef<(Dayjs | undefined)[]>;
133
133
  inputValue: import("vue").Ref<(string | undefined)[] | undefined, (string | undefined)[] | undefined>;
134
134
  focusedIndex: import("vue").Ref<number, number>;
135
+ mergedAllowClear: import("vue").ComputedRef<boolean | undefined>;
135
136
  triggerDisabled: import("vue").ComputedRef<boolean>;
136
137
  mergedSize: import("vue").ComputedRef<"mini" | "small" | "medium" | "large" | undefined>;
137
138
  mergedError: import("vue").ComputedRef<boolean>;
@@ -3,6 +3,7 @@ import { configProviderInjectionKey } from "../config-provider/context.js";
3
3
  import { _objectSpread2 } from "../_virtual/_@oxc-project_runtime@0.124.0/helpers/objectSpread2.js";
4
4
  import { getPrefixCls } from "../_utils/global-config.js";
5
5
  import { isArray, isBoolean } from "../_utils/is.js";
6
+ import { useAllowClear } from "../_hooks/use-allow-clear.js";
6
7
  import { omit } from "../_utils/omit.js";
7
8
  import pick from "../_utils/pick.js";
8
9
  import useState from "../_hooks/use-state.js";
@@ -138,7 +139,7 @@ var range_picker_vue_vue_type_script_lang_default = defineComponent({
138
139
  }
139
140
  },
140
141
  setup(props, { emit, slots }) {
141
- const { mode, showTime, format, modelValue, defaultValue, popupVisible, defaultPopupVisible, placeholder, timePickerProps, disabled, disabledDate, disabledTime, locale, pickerValue, defaultPickerValue, valueFormat, size, error, dayStartOfWeek, exchangeTime, previewShortcut, showConfirmBtn } = toRefs(props);
142
+ const { mode, showTime, format, modelValue, defaultValue, popupVisible, defaultPopupVisible, placeholder, timePickerProps, disabled, disabledDate, disabledTime, locale, pickerValue, defaultPickerValue, valueFormat, size, error, dayStartOfWeek, exchangeTime, previewShortcut, showConfirmBtn, allowClear } = toRefs(props);
142
143
  const { locale: globalLocal } = useI18n();
143
144
  const configCtx = inject(configProviderInjectionKey, void 0);
144
145
  watchEffect(() => {
@@ -148,6 +149,7 @@ var range_picker_vue_vue_type_script_lang_default = defineComponent({
148
149
  var _configCtx$exchangeTi;
149
150
  return !(!exchangeTime.value || !((_configCtx$exchangeTi = configCtx === null || configCtx === void 0 ? void 0 : configCtx.exchangeTime) !== null && _configCtx$exchangeTi !== void 0 ? _configCtx$exchangeTi : true));
150
151
  });
152
+ const { mergedAllowClear } = useAllowClear(allowClear);
151
153
  const { mergedSize, mergedDisabled: formDisabled, mergedError, eventHandlers } = useFormItem({
152
154
  size,
153
155
  error
@@ -459,6 +461,7 @@ var range_picker_vue_vue_type_script_lang_default = defineComponent({
459
461
  panelValue,
460
462
  inputValue,
461
463
  focusedIndex,
464
+ mergedAllowClear,
462
465
  triggerDisabled,
463
466
  mergedSize,
464
467
  mergedError,
package/es/index.css CHANGED
@@ -14669,6 +14669,75 @@ body {
14669
14669
  border-radius: 2px;
14670
14670
  box-shadow: 0 8px 20px 0 rgba(0, 0, 0, 0.1);
14671
14671
  }
14672
+ .sd-color-picker-panel .sd-color-picker-panel-head {
14673
+ display: flex;
14674
+ justify-content: center;
14675
+ padding: 8px 8px 0;
14676
+ }
14677
+ .sd-color-picker-panel .sd-color-picker-gradient-panel {
14678
+ padding: 8px 8px 0;
14679
+ }
14680
+ .sd-color-picker-panel .sd-color-picker-gradient-bar-shell {
14681
+ position: relative;
14682
+ display: flex;
14683
+ align-items: center;
14684
+ height: 28px;
14685
+ user-select: none;
14686
+ margin-inline: 8px;
14687
+ }
14688
+ .sd-color-picker-panel .sd-color-picker-gradient-bar {
14689
+ display: block;
14690
+ width: 100%;
14691
+ height: 8px;
14692
+ padding: 0;
14693
+ background-color: transparent;
14694
+ border: 1px solid var(--color-border-2);
14695
+ border-radius: 4px;
14696
+ cursor: pointer;
14697
+ }
14698
+ .sd-color-picker-panel .sd-color-picker-gradient-thumb {
14699
+ position: absolute;
14700
+ z-index: 1;
14701
+ width: 18px;
14702
+ height: 18px;
14703
+ padding: 2px;
14704
+ background: var(--color-bg-white);
14705
+ border: 1px solid var(--color-border-2);
14706
+ border-radius: 50%;
14707
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.14);
14708
+ transform: translateX(-50%);
14709
+ cursor: pointer;
14710
+ touch-action: none;
14711
+ }
14712
+ .sd-color-picker-panel .sd-color-picker-gradient-thumb-active {
14713
+ border-color: var(--color-primary-6);
14714
+ box-shadow: 0 0 0 2px rgba(22, 93, 255, 0.16);
14715
+ }
14716
+ .sd-color-picker-panel .sd-color-picker-gradient-thumb-inner {
14717
+ display: block;
14718
+ width: 100%;
14719
+ height: 100%;
14720
+ border-radius: 50%;
14721
+ }
14722
+ .sd-color-picker-panel .sd-color-picker-gradient-meta {
14723
+ display: flex;
14724
+ gap: 6px;
14725
+ align-items: center;
14726
+ margin-top: 8px;
14727
+ }
14728
+ .sd-color-picker-panel .sd-color-picker-gradient-label {
14729
+ color: var(--color-text-2);
14730
+ font-size: 12px;
14731
+ }
14732
+ .sd-color-picker-panel .sd-color-picker-gradient-degree {
14733
+ width: 72px;
14734
+ }
14735
+ .sd-color-picker-panel .sd-color-picker-gradient-preview {
14736
+ height: 32px;
14737
+ margin-top: 8px;
14738
+ border: 1px solid var(--color-border-2);
14739
+ border-radius: 4px;
14740
+ }
14672
14741
  .sd-color-picker-panel .sd-color-picker-palette {
14673
14742
  position: relative;
14674
14743
  box-sizing: border-box;
@@ -14741,11 +14810,25 @@ body {
14741
14810
  .sd-color-picker-panel .sd-color-picker-panel-colors .sd-color-picker-colors-section:not(:first-child) {
14742
14811
  margin-top: 12px;
14743
14812
  }
14813
+ .sd-color-picker-panel .sd-color-picker-panel-colors .sd-color-picker-colors-header {
14814
+ display: flex;
14815
+ gap: 6px;
14816
+ align-items: center;
14817
+ justify-content: space-between;
14818
+ }
14744
14819
  .sd-color-picker-panel .sd-color-picker-panel-colors .sd-color-picker-colors-text {
14745
14820
  color: var(--color-text-1);
14746
14821
  font-weight: 400;
14747
14822
  font-size: 12px;
14748
14823
  }
14824
+ .sd-color-picker-panel .sd-color-picker-panel-colors .sd-color-picker-colors-action {
14825
+ padding: 0;
14826
+ color: var(--color-primary-6);
14827
+ font-size: 12px;
14828
+ background: transparent;
14829
+ border: 0;
14830
+ cursor: pointer;
14831
+ }
14749
14832
  .sd-color-picker-panel .sd-color-picker-panel-colors .sd-color-picker-colors-empty {
14750
14833
  margin: 12px 0;
14751
14834
  color: var(--color-text-3);
@@ -14831,13 +14914,21 @@ body {
14831
14914
  flex: 0 0 auto;
14832
14915
  width: 52px;
14833
14916
  }
14917
+ .sd-color-picker-panel .sd-color-picker-input-group {
14918
+ width: 100%;
14919
+ }
14920
+ .sd-color-picker-panel .sd-color-picker-format-input {
14921
+ min-width: 0;
14922
+ }
14834
14923
  .sd-color-picker-panel .sd-color-picker-input-hex .sd-input {
14835
14924
  padding-left: 4px;
14836
14925
  }
14837
14926
  .sd-color-picker-panel.sd-color-picker-panel-disabled .sd-color-picker-palette,
14838
14927
  .sd-color-picker-panel.sd-color-picker-panel-disabled .sd-color-picker-control-bar,
14839
14928
  .sd-color-picker-panel.sd-color-picker-panel-disabled .sd-color-picker-color-block,
14840
- .sd-color-picker-panel.sd-color-picker-panel-disabled .sd-color-picker-preview {
14929
+ .sd-color-picker-panel.sd-color-picker-panel-disabled .sd-color-picker-preview,
14930
+ .sd-color-picker-panel.sd-color-picker-panel-disabled .sd-color-picker-gradient-bar,
14931
+ .sd-color-picker-panel.sd-color-picker-panel-disabled .sd-color-picker-gradient-thumb {
14841
14932
  cursor: not-allowed;
14842
14933
  opacity: 0.8;
14843
14934
  }
package/es/input/input.js CHANGED
@@ -4,6 +4,7 @@ import { getPrefixCls } from "../_utils/global-config.js";
4
4
  import { isFunction, isNull, isObject, isUndefined } from "../_utils/is.js";
5
5
  import icon_hover_default from "../_components/icon-hover.js";
6
6
  import IconClose from "../icon/icon-close/index.js";
7
+ import { useAllowClear } from "../_hooks/use-allow-clear.js";
7
8
  import feedback_icon_default from "../_components/feedback-icon.js";
8
9
  import { useCursor } from "../_hooks/use-cursor.js";
9
10
  import { useSize } from "../_hooks/use-size.js";
@@ -68,7 +69,7 @@ var input_default = /* @__PURE__ */ defineComponent({
68
69
  "blur": (_ev) => true
69
70
  },
70
71
  setup(props, { emit, slots, attrs }) {
71
- const { size, disabled, error, modelValue } = toRefs(props);
72
+ const { size, disabled, error, modelValue, allowClear } = toRefs(props);
72
73
  const prefixCls = getPrefixCls("input");
73
74
  const inputRef = ref();
74
75
  const { mergedSize: _mergedSize, mergedDisabled, mergedError: _mergedError, feedback, eventHandlers } = useFormItem({
@@ -77,6 +78,7 @@ var input_default = /* @__PURE__ */ defineComponent({
77
78
  error
78
79
  });
79
80
  const { mergedSize } = useSize(_mergedSize);
81
+ const { mergedAllowClear } = useAllowClear(allowClear);
80
82
  const [recordCursor, setCursor] = useCursor(inputRef);
81
83
  const _value = ref(props.defaultValue);
82
84
  const computedValue = computed(() => {
@@ -91,7 +93,7 @@ var input_default = /* @__PURE__ */ defineComponent({
91
93
  preValue = oldValue;
92
94
  });
93
95
  const focused = ref(false);
94
- const showClearBtn = computed(() => props.allowClear && !props.readonly && !mergedDisabled.value && Boolean(computedValue.value));
96
+ const showClearBtn = computed(() => mergedAllowClear.value && !props.readonly && !mergedDisabled.value && Boolean(computedValue.value));
95
97
  const isComposition = ref(false);
96
98
  const compositionValue = ref("");
97
99
  const getValueLength = (value) => {
@@ -2,6 +2,7 @@ import { useFormItem } from "../_hooks/use-form-item.js";
2
2
  import { _objectSpread2 } from "../_virtual/_@oxc-project_runtime@0.124.0/helpers/objectSpread2.js";
3
3
  import { getPrefixCls } from "../_utils/global-config.js";
4
4
  import { isNumber, isUndefined } from "../_utils/is.js";
5
+ import { useAllowClear } from "../_hooks/use-allow-clear.js";
5
6
  import { useSize } from "../_hooks/use-size.js";
6
7
  import Button from "../button/index.js";
7
8
  import Input from "../input/index.js";
@@ -79,7 +80,7 @@ var input_number_default = /* @__PURE__ */ defineComponent({
79
80
  },
80
81
  setup(props, { emit, slots }) {
81
82
  var _props$modelValue;
82
- const { size, disabled } = toRefs(props);
83
+ const { size, disabled, allowClear } = toRefs(props);
83
84
  const prefixCls = getPrefixCls("input-number");
84
85
  const inputRef = ref();
85
86
  const { mergedSize: _mergedSize, mergedDisabled, eventHandlers } = useFormItem({
@@ -87,6 +88,7 @@ var input_number_default = /* @__PURE__ */ defineComponent({
87
88
  disabled
88
89
  });
89
90
  const { mergedSize } = useSize(_mergedSize);
91
+ const { mergedAllowClear } = useAllowClear(allowClear);
90
92
  const mergedPrecision = computed(() => {
91
93
  if (isNumber(props.precision)) {
92
94
  const decimal = `${props.step}`.split(".")[1];
@@ -277,7 +279,7 @@ var input_number_default = /* @__PURE__ */ defineComponent({
277
279
  "ref": inputRef,
278
280
  "class": cls.value,
279
281
  "type": "text",
280
- "allowClear": props.allowClear,
282
+ "allowClear": mergedAllowClear.value,
281
283
  "size": mergedSize.value,
282
284
  "modelValue": _value.value,
283
285
  "placeholder": props.placeholder,
@@ -5,6 +5,7 @@ import { isNull, isObject, isUndefined } from "../_utils/is.js";
5
5
  import resize_observer_default from "../_components/resize-observer.js";
6
6
  import icon_hover_default from "../_components/icon-hover.js";
7
7
  import IconClose from "../icon/icon-close/index.js";
8
+ import { useAllowClear } from "../_hooks/use-allow-clear.js";
8
9
  import feedback_icon_default from "../_components/feedback-icon.js";
9
10
  import { useSize } from "../_hooks/use-size.js";
10
11
  import { INPUT_EVENTS } from "../_utils/constant.js";
@@ -88,7 +89,7 @@ var input_tag_default = /* @__PURE__ */ defineComponent({
88
89
  "blur": (_ev) => true
89
90
  },
90
91
  setup(props, { emit, slots, attrs }) {
91
- const { size, disabled, error, uninjectFormItemContext, modelValue } = toRefs(props);
92
+ const { size, disabled, error, uninjectFormItemContext, modelValue, allowClear } = toRefs(props);
92
93
  const prefixCls = props.baseCls || getPrefixCls("input-tag");
93
94
  const inputRef = ref();
94
95
  const mirrorRef = ref();
@@ -99,6 +100,7 @@ var input_tag_default = /* @__PURE__ */ defineComponent({
99
100
  uninject: uninjectFormItemContext === null || uninjectFormItemContext === void 0 ? void 0 : uninjectFormItemContext.value
100
101
  });
101
102
  const { mergedSize } = useSize(_mergedSize);
103
+ const { mergedAllowClear } = useAllowClear(allowClear);
102
104
  const mergedFieldNames = computed(() => _objectSpread2(_objectSpread2({}, DEFAULT_FIELD_NAMES), props.fieldNames));
103
105
  const _focused = ref(false);
104
106
  const _value = ref(props.defaultValue);
@@ -196,7 +198,7 @@ var input_tag_default = /* @__PURE__ */ defineComponent({
196
198
  updateValue([], e);
197
199
  emit("clear", e);
198
200
  };
199
- const showClearBtn = computed(() => !mergedDisabled.value && !props.readonly && props.allowClear && Boolean(computedValue.value.length));
201
+ const showClearBtn = computed(() => !mergedDisabled.value && !props.readonly && mergedAllowClear.value && Boolean(computedValue.value.length));
200
202
  const handlePressEnter = (e) => {
201
203
  if (computedInputValue.value) {
202
204
  var _computedValue$value2;
@@ -3,6 +3,7 @@ import { _objectSpread2 } from "../_virtual/_@oxc-project_runtime@0.124.0/helper
3
3
  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
+ import { useAllowClear } from "../_hooks/use-allow-clear.js";
6
7
  import Input from "../input/index.js";
7
8
  import { getKeyFromValue } from "../select/utils.js";
8
9
  import { useSelect } from "../select/hooks/use-select.js";
@@ -62,6 +63,7 @@ var mention_default = /* @__PURE__ */ defineComponent({
62
63
  },
63
64
  setup(props, { emit, attrs, slots }) {
64
65
  const prefixCls = getPrefixCls("mention");
66
+ const { mergedAllowClear } = useAllowClear(toRef(props, "allowClear"));
65
67
  let styleDeclaration;
66
68
  const { mergedDisabled, eventHandlers } = useFormItem({ disabled: toRef(props, "disabled") });
67
69
  const { data, modelValue } = toRefs(props);
@@ -211,7 +213,7 @@ var mention_default = /* @__PURE__ */ defineComponent({
211
213
  var _computedValue$value;
212
214
  return createVNode("div", { "class": prefixCls }, [createVNode(resize_observer_default, { "onResize": handleResize }, { default: () => [createVNode(Textarea, mergeProps(attrs, {
213
215
  "ref": inputRef,
214
- "allowClear": props.allowClear,
216
+ "allowClear": mergedAllowClear.value,
215
217
  "modelValue": computedValue.value,
216
218
  "disabled": mergedDisabled.value,
217
219
  "onInput": handleInput,
@@ -251,7 +253,7 @@ var mention_default = /* @__PURE__ */ defineComponent({
251
253
  }, {
252
254
  default: () => [createVNode(Input, mergeProps(attrs, {
253
255
  "ref": inputRef,
254
- "allowClear": props.allowClear,
256
+ "allowClear": mergedAllowClear.value,
255
257
  "modelValue": computedValue.value,
256
258
  "disabled": mergedDisabled.value,
257
259
  "onInput": handleInput,
package/es/rate/rate.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { useFormItem } from "../_hooks/use-form-item.js";
2
2
  import { getPrefixCls } from "../_utils/global-config.js";
3
3
  import { isNull, isObject, isString, isUndefined } from "../_utils/is.js";
4
+ import { useAllowClear } from "../_hooks/use-allow-clear.js";
4
5
  import IconFaceFrownFill from "../icon/icon-face-frown-fill/index.js";
5
6
  import IconFaceMehFill from "../icon/icon-face-meh-fill/index.js";
6
7
  import IconFaceSmileFill from "../icon/icon-face-smile-fill/index.js";
@@ -51,9 +52,10 @@ var rate_default = /* @__PURE__ */ defineComponent({
51
52
  "hoverChange": (_value) => true
52
53
  },
53
54
  setup(props, { emit, slots }) {
54
- const { modelValue } = toRefs(props);
55
+ const { modelValue, allowClear } = toRefs(props);
55
56
  const prefixCls = getPrefixCls("rate");
56
57
  const { mergedDisabled: _mergedDisabled, eventHandlers } = useFormItem({ disabled: toRef(props, "disabled") });
58
+ const { mergedAllowClear } = useAllowClear(allowClear);
57
59
  const _value = ref(props.defaultValue);
58
60
  const animation = ref(false);
59
61
  watch(modelValue, (value) => {
@@ -107,7 +109,7 @@ var rate_default = /* @__PURE__ */ defineComponent({
107
109
  emit("update:modelValue", newValue);
108
110
  emit("change", newValue);
109
111
  (_eventHandlers$value = eventHandlers.value) === null || _eventHandlers$value === void 0 || (_eventHandlers$value$ = _eventHandlers$value.onChange) === null || _eventHandlers$value$ === void 0 || _eventHandlers$value$.call(_eventHandlers$value);
110
- } else if (props.allowClear) {
112
+ } else if (mergedAllowClear.value) {
111
113
  var _eventHandlers$value2, _eventHandlers$value3;
112
114
  _value.value = 0;
113
115
  emit("update:modelValue", 0);
@@ -3,6 +3,7 @@ import { _objectSpread2 } from "../_virtual/_@oxc-project_runtime@0.124.0/helper
3
3
  import { getPrefixCls } from "../_utils/global-config.js";
4
4
  import { isArray, isBoolean, isEmptyObject, isFunction, isNull, isNumber, isObject, isString, isUndefined } from "../_utils/is.js";
5
5
  import virtual_list_v2_default from "../_components/virtual-list-v2/index.js";
6
+ import { useAllowClear } from "../_hooks/use-allow-clear.js";
6
7
  import { getKeyFromValue, hasEmptyStringKey, isGroupOptionInfo, isValidOption } from "./utils.js";
7
8
  import { useSelect } from "./hooks/use-select.js";
8
9
  import option_default from "./option.js";
@@ -176,13 +177,14 @@ var select_default = /* @__PURE__ */ defineComponent({
176
177
  "exceedLimit": (_value, _ev) => true
177
178
  },
178
179
  setup(props, { slots, emit, attrs }) {
179
- const { size, disabled, error, options, filterOption, valueKey, multiple, popupVisible, defaultPopupVisible, showExtraOptions, modelValue, fieldNames, loading, defaultActiveFirstOption } = toRefs(props);
180
+ const { size, disabled, error, options, filterOption, valueKey, multiple, popupVisible, defaultPopupVisible, showExtraOptions, modelValue, fieldNames, loading, defaultActiveFirstOption, allowClear } = toRefs(props);
180
181
  const prefixCls = getPrefixCls("select");
181
182
  const { mergedSize, mergedDisabled, mergedError, eventHandlers } = useFormItem({
182
183
  size,
183
184
  disabled,
184
185
  error
185
186
  });
187
+ const { mergedAllowClear } = useAllowClear(allowClear);
186
188
  const component = computed(() => props.virtualListProps ? "div" : "li");
187
189
  const retainInputValue = computed(() => isObject(props.allowSearch) && Boolean(props.allowSearch.retainInputValue));
188
190
  const dropdownRef = ref();
@@ -479,7 +481,7 @@ var select_default = /* @__PURE__ */ defineComponent({
479
481
  "disabled": mergedDisabled.value,
480
482
  "error": mergedError.value,
481
483
  "loading": props.loading,
482
- "allowClear": props.allowClear,
484
+ "allowClear": mergedAllowClear.value,
483
485
  "allowCreate": props.allowCreate,
484
486
  "allowSearch": Boolean(props.allowSearch),
485
487
  "opened": computedPopupVisible.value,
@@ -65,7 +65,7 @@ declare const Textarea: {
65
65
  mirrorRef: import("vue").Ref<HTMLInputElement | undefined, HTMLInputElement | undefined>;
66
66
  mirrorStyle: import("vue").Ref<import("vue").CSSProperties | undefined, import("vue").CSSProperties | undefined>;
67
67
  computedValue: import("vue").ComputedRef<string>;
68
- showClearBtn: import("vue").ComputedRef<string | false>;
68
+ showClearBtn: import("vue").ComputedRef<string | false | undefined>;
69
69
  valueLength: import("vue").ComputedRef<number>;
70
70
  computedMaxLength: import("vue").ComputedRef<number>;
71
71
  mergedDisabled: import("vue").ComputedRef<boolean>;
@@ -329,7 +329,7 @@ declare const Textarea: {
329
329
  mirrorRef: import("vue").Ref<HTMLInputElement | undefined, HTMLInputElement | undefined>;
330
330
  mirrorStyle: import("vue").Ref<import("vue").CSSProperties | undefined, import("vue").CSSProperties | undefined>;
331
331
  computedValue: import("vue").ComputedRef<string>;
332
- showClearBtn: import("vue").ComputedRef<string | false>;
332
+ showClearBtn: import("vue").ComputedRef<string | false | undefined>;
333
333
  valueLength: import("vue").ComputedRef<number>;
334
334
  computedMaxLength: import("vue").ComputedRef<number>;
335
335
  mergedDisabled: import("vue").ComputedRef<boolean>;
@@ -429,7 +429,7 @@ declare const Textarea: {
429
429
  mirrorRef: import("vue").Ref<HTMLInputElement | undefined, HTMLInputElement | undefined>;
430
430
  mirrorStyle: import("vue").Ref<import("vue").CSSProperties | undefined, import("vue").CSSProperties | undefined>;
431
431
  computedValue: import("vue").ComputedRef<string>;
432
- showClearBtn: import("vue").ComputedRef<string | false>;
432
+ showClearBtn: import("vue").ComputedRef<string | false | undefined>;
433
433
  valueLength: import("vue").ComputedRef<number>;
434
434
  computedMaxLength: import("vue").ComputedRef<number>;
435
435
  mergedDisabled: import("vue").ComputedRef<boolean>;
@@ -57,7 +57,7 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
57
57
  mirrorRef: import("vue").Ref<HTMLInputElement | undefined, HTMLInputElement | undefined>;
58
58
  mirrorStyle: import("vue").Ref<CSSProperties | undefined, CSSProperties | undefined>;
59
59
  computedValue: import("vue").ComputedRef<string>;
60
- showClearBtn: import("vue").ComputedRef<string | false>;
60
+ showClearBtn: import("vue").ComputedRef<string | false | undefined>;
61
61
  valueLength: import("vue").ComputedRef<number>;
62
62
  computedMaxLength: import("vue").ComputedRef<number>;
63
63
  mergedDisabled: import("vue").ComputedRef<boolean>;
@@ -5,6 +5,7 @@ import { isFunction, isNull, isObject, isUndefined } from "../_utils/is.js";
5
5
  import resize_observer_default from "../_components/resize-observer.js";
6
6
  import icon_hover_default from "../_components/icon-hover.js";
7
7
  import IconClose from "../icon/icon-close/index.js";
8
+ import { useAllowClear } from "../_hooks/use-allow-clear.js";
8
9
  import { useCursor } from "../_hooks/use-cursor.js";
9
10
  import { INPUT_EVENTS } from "../_utils/constant.js";
10
11
  import { omit } from "../_utils/omit.js";
@@ -64,12 +65,13 @@ var textarea_vue_vue_type_script_lang_default = defineComponent({
64
65
  "blur": (_ev) => true
65
66
  },
66
67
  setup(props, { emit, attrs }) {
67
- const { disabled, error, modelValue } = toRefs(props);
68
+ const { disabled, error, modelValue, allowClear } = toRefs(props);
68
69
  const prefixCls = getPrefixCls("textarea");
69
70
  const { mergedDisabled, mergedError: _mergedError, eventHandlers } = useFormItem({
70
71
  disabled,
71
72
  error
72
73
  });
74
+ const { mergedAllowClear } = useAllowClear(allowClear);
73
75
  const textareaRef = ref();
74
76
  const textareaStyle = ref();
75
77
  const mirrorRef = ref();
@@ -97,7 +99,9 @@ var textarea_vue_vue_type_script_lang_default = defineComponent({
97
99
  const mergedError = computed(() => _mergedError.value || Boolean(computedMaxLength.value && maxLengthErrorOnly.value && valueLength.value > computedMaxLength.value));
98
100
  const isScroll = ref(false);
99
101
  const focused = ref(false);
100
- const showClearBtn = computed(() => props.allowClear && !mergedDisabled.value && computedValue.value);
102
+ const showClearBtn = computed(() => {
103
+ return mergedAllowClear.value && !mergedDisabled.value && computedValue.value;
104
+ });
101
105
  const isComposition = ref(false);
102
106
  const compositionValue = ref("");
103
107
  const keepControl = () => {
@@ -100,6 +100,7 @@ declare const TimePicker: {
100
100
  inputValue: import("vue").Ref<string | (string | undefined)[] | undefined, string | (string | undefined)[] | undefined>;
101
101
  computedFormat: import("vue").ComputedRef<string>;
102
102
  computedUse12Hours: import("vue").ComputedRef<boolean>;
103
+ mergedAllowClear: import("vue").ComputedRef<boolean | undefined>;
103
104
  inputProps: import("vue").ComputedRef<{
104
105
  focusedIndex: number;
105
106
  onFocusedIndexChange: (index: number) => void;
@@ -3885,6 +3886,7 @@ declare const TimePicker: {
3885
3886
  inputValue: import("vue").Ref<string | (string | undefined)[] | undefined, string | (string | undefined)[] | undefined>;
3886
3887
  computedFormat: import("vue").ComputedRef<string>;
3887
3888
  computedUse12Hours: import("vue").ComputedRef<boolean>;
3889
+ mergedAllowClear: import("vue").ComputedRef<boolean | undefined>;
3888
3890
  inputProps: import("vue").ComputedRef<{
3889
3891
  focusedIndex: number;
3890
3892
  onFocusedIndexChange: (index: number) => void;
@@ -4025,6 +4027,7 @@ declare const TimePicker: {
4025
4027
  inputValue: import("vue").Ref<string | (string | undefined)[] | undefined, string | (string | undefined)[] | undefined>;
4026
4028
  computedFormat: import("vue").ComputedRef<string>;
4027
4029
  computedUse12Hours: import("vue").ComputedRef<boolean>;
4030
+ mergedAllowClear: import("vue").ComputedRef<boolean | undefined>;
4028
4031
  inputProps: import("vue").ComputedRef<{
4029
4032
  focusedIndex: number;
4030
4033
  onFocusedIndexChange: (index: number) => void;