sard-uniapp 1.22.0 → 1.22.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.
Files changed (88) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +1 -1
  3. package/components/action-sheet/README.md +15 -6
  4. package/components/action-sheet/action-sheet.d.ts +6 -10
  5. package/components/action-sheet/action-sheet.vue +16 -2
  6. package/components/action-sheet/common.d.ts +2 -1
  7. package/components/calendar-input/calendar-input.d.ts +5 -7
  8. package/components/calendar-input/calendar-input.vue +26 -3
  9. package/components/calendar-popout/README.md +15 -5
  10. package/components/calendar-popout/calendar-popout.d.ts +5 -7
  11. package/components/calendar-popout/calendar-popout.vue +19 -12
  12. package/components/calendar-popout/common.d.ts +3 -1
  13. package/components/cascader-input/cascader-input.d.ts +5 -10
  14. package/components/cascader-input/cascader-input.vue +26 -3
  15. package/components/cascader-popout/README.md +16 -6
  16. package/components/cascader-popout/cascader-popout.d.ts +5 -9
  17. package/components/cascader-popout/cascader-popout.vue +19 -12
  18. package/components/cascader-popout/common.d.ts +3 -1
  19. package/components/checkbox-input/checkbox-input.d.ts +5 -7
  20. package/components/checkbox-input/checkbox-input.vue +26 -3
  21. package/components/checkbox-popout/README.md +15 -5
  22. package/components/checkbox-popout/checkbox-popout.d.ts +5 -7
  23. package/components/checkbox-popout/checkbox-popout.vue +14 -6
  24. package/components/checkbox-popout/common.d.ts +3 -1
  25. package/components/crop-image/README.md +12 -3
  26. package/components/crop-image/common.d.ts +2 -1
  27. package/components/crop-image/crop-image.d.ts +5 -3
  28. package/components/crop-image/crop-image.vue +16 -2
  29. package/components/datetime-picker-input/datetime-picker-input.d.ts +5 -7
  30. package/components/datetime-picker-input/datetime-picker-input.vue +26 -3
  31. package/components/datetime-picker-popout/README.md +15 -5
  32. package/components/datetime-picker-popout/common.d.ts +3 -1
  33. package/components/datetime-picker-popout/datetime-picker-popout.d.ts +5 -7
  34. package/components/datetime-picker-popout/datetime-picker-popout.vue +21 -3
  35. package/components/datetime-range-picker-input/datetime-range-picker-input.d.ts +5 -7
  36. package/components/datetime-range-picker-input/datetime-range-picker-input.vue +26 -3
  37. package/components/datetime-range-picker-popout/README.md +15 -5
  38. package/components/datetime-range-picker-popout/common.d.ts +3 -1
  39. package/components/datetime-range-picker-popout/datetime-range-picker-popout.d.ts +5 -7
  40. package/components/datetime-range-picker-popout/datetime-range-picker-popout.vue +21 -3
  41. package/components/dialog/dialog.d.ts +1 -1
  42. package/components/dialog-agent/dialog-agent.d.ts +1 -1
  43. package/components/dnd/README.md +0 -6
  44. package/components/dnd/dnd.vue +1 -14
  45. package/components/dnd/index.scss +0 -4
  46. package/components/dnd-handle/index.scss +0 -1
  47. package/components/icon/common.d.ts +3 -0
  48. package/components/icon/icon.d.ts +5 -1
  49. package/components/icon/icon.vue +8 -3
  50. package/components/icon/index.d.ts +1 -1
  51. package/components/list/README.md +10 -10
  52. package/components/list-item/list-item.vue +1 -1
  53. package/components/picker-input/picker-input.d.ts +6 -8
  54. package/components/picker-input/picker-input.vue +26 -3
  55. package/components/picker-popout/README.md +15 -5
  56. package/components/picker-popout/common.d.ts +3 -1
  57. package/components/picker-popout/picker-popout.d.ts +6 -8
  58. package/components/picker-popout/picker-popout.vue +21 -3
  59. package/components/popout/popout.d.ts +1 -1
  60. package/components/radio-input/radio-input.d.ts +5 -7
  61. package/components/radio-input/radio-input.vue +26 -3
  62. package/components/radio-popout/README.md +15 -5
  63. package/components/radio-popout/common.d.ts +3 -1
  64. package/components/radio-popout/radio-popout.d.ts +5 -7
  65. package/components/radio-popout/radio-popout.vue +14 -6
  66. package/components/rate/rate.d.ts +1 -1
  67. package/components/share-sheet/README.md +15 -6
  68. package/components/share-sheet/common.d.ts +2 -1
  69. package/components/share-sheet/share-sheet.d.ts +6 -10
  70. package/components/share-sheet/share-sheet.vue +16 -2
  71. package/components/style/mixins.scss +0 -1
  72. package/components/style/variables.scss +0 -2
  73. package/components/tree/common.d.ts +0 -1
  74. package/components/tree/index.scss +0 -4
  75. package/components/tree/tree.vue +2 -16
  76. package/components/tree-node/index.scss +1 -0
  77. package/components/tree-node/tree-node.vue +0 -2
  78. package/components/upload/README.md +13 -4
  79. package/components/upload/common.d.ts +6 -0
  80. package/components/upload/upload.vue +37 -30
  81. package/components/waterfall/README.md +1 -1
  82. package/package.json +2 -2
  83. package/use/useFormPopout.d.ts +6 -2
  84. package/use/useFormPopout.js +9 -1
  85. package/use/usePopoutInput.d.ts +4 -1
  86. package/use/usePopoutInput.js +5 -0
  87. package/utils/dom.js +2 -0
  88. package/components/style/mixins/disable-scroll.scss +0 -14
package/CHANGELOG.md CHANGED
@@ -1,3 +1,29 @@
1
+ ## [1.22.2](https://github.com/sutras/sard-uniapp/compare/v1.22.1...v1.22.2) (2025-07-24)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * 优化支付宝端拖拽体验 ([351db34](https://github.com/sutras/sard-uniapp/commit/351db340ec343c95cb37015e03375113b43a6840))
7
+ * 修复支付宝端获取元素尺寸可能存在失败的问题 ([12c2dfb](https://github.com/sutras/sard-uniapp/commit/12c2dfb59e17a9811600b11d23c093d6c0c56bf6))
8
+ * 隐藏 list-item 单独使用时的上下文警告 ([18fe6bb](https://github.com/sutras/sard-uniapp/commit/18fe6bb645c383282723ad29c4636ac775cbadf2))
9
+
10
+
11
+ ### Features
12
+
13
+ * upload 新增默认插槽 ([73f3658](https://github.com/sutras/sard-uniapp/commit/73f3658c94cc7b04c036a577a959c1385665e6f7))
14
+
15
+
16
+
17
+ ## [1.22.1](https://github.com/sutras/sard-uniapp/compare/v1.22.0...v1.22.1) (2025-07-19)
18
+
19
+
20
+ ### Features
21
+
22
+ * 基于 popout 组件的带有确定按钮的组件添加 confirm 事件 ([d88f36f](https://github.com/sutras/sard-uniapp/commit/d88f36fd2f23a33eb56b2c7fd1f3919558a4f857))
23
+ * 所有基于 Popup 和 Popout 组件的组件都添加入场/退场相关事件 ([5178b00](https://github.com/sutras/sard-uniapp/commit/5178b00e0e4b092304013b5639a7f85c52ba65b3))
24
+
25
+
26
+
1
27
  # [1.22.0](https://github.com/sutras/sard-uniapp/compare/v1.21.1...v1.22.0) (2025-07-15)
2
28
 
3
29
 
package/README.md CHANGED
@@ -34,7 +34,7 @@
34
34
  - 🌍 国际化支持
35
35
  - 🌙 支持暗黑模式
36
36
  - 🧪 单元测试覆盖率超过 80%,保障稳定性
37
- - ⭐️ 零外部依赖,不依赖三方 `npm`
37
+ - ⭐️ 零外部依赖,不依赖三方 npm 包
38
38
 
39
39
  ## 开源协议
40
40
 
@@ -71,12 +71,21 @@ import ActionSheet from 'sard-uniapp/components/action-sheet/action-sheet.vue'
71
71
 
72
72
  ### ActionSheetEmits
73
73
 
74
- | 事件 | 描述 | 类型 |
75
- | -------------- | ------------------ | ---------------------------------------------- |
76
- | update:visible | 动作面板显隐时触发 | (visible: boolean) => void |
77
- | close | 点击遮罩时触发 | () => void |
78
- | cancel | 点击取消按钮时触发 | () => void |
79
- | select | 点击动作按钮时触发 | (item: ActionSheetItem, index: number) => void |
74
+ | 事件 | 描述 | 类型 |
75
+ | ---------------------------------- | --------------------------- | ---------------------------------------------- |
76
+ | update:visible | 动作面板显隐时触发 | (visible: boolean) => void |
77
+ | close | 点击遮罩时触发 | () => void |
78
+ | cancel | 点击取消按钮时触发 | () => void |
79
+ | select | 点击动作按钮时触发 | (item: ActionSheetItem, index: number) => void |
80
+ | visible-hook <sup>1.22.1+</sup> | 入场/退场动画状态改变时触发 | (name: TransitionHookName) => void |
81
+ | before-enter <sup>1.22.1+</sup> | 入场动画开始前触发 | () => void |
82
+ | enter <sup>1.22.1+</sup> | 入场动画开始时触发 | () => void |
83
+ | after-enter <sup>1.22.1+</sup> | 入场动画结束时触发 | () => void |
84
+ | enter-cancelled <sup>1.22.1+</sup> | 入场动画取消时触发 | () => void |
85
+ | before-leave <sup>1.22.1+</sup> | 退场动画开始前触发 | () => void |
86
+ | leave <sup>1.22.1+</sup> | 退场动画开始时触发 | () => void |
87
+ | after-leave <sup>1.22.1+</sup> | 退场动画结束时触发 | () => void |
88
+ | leave-cancelled <sup>1.22.1+</sup> | 退场动画取消时触发 | () => void |
80
89
 
81
90
  ## 主题定制
82
91
 
@@ -1,14 +1,10 @@
1
- import { type ActionSheetItem, type ActionSheetProps } from './common';
2
- declare const _default: import("vue").DefineComponent<ActionSheetProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
3
- cancel: () => any;
4
- close: () => any;
5
- select: (item: ActionSheetItem, index: number) => any;
6
- "update:visible": (visible: boolean) => any;
1
+ import { type ActionSheetProps } from './common';
2
+ declare const _default: import("vue").DefineComponent<ActionSheetProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
3
+ [x: string]: any;
4
+ } & {
5
+ [x: string]: any;
7
6
  }, string, import("vue").PublicProps, Readonly<ActionSheetProps> & Readonly<{
8
- onCancel?: (() => any) | undefined;
9
- onClose?: (() => any) | undefined;
10
- onSelect?: ((item: ActionSheetItem, index: number) => any) | undefined;
11
- "onUpdate:visible"?: ((visible: boolean) => any) | undefined;
7
+ [x: `on${Capitalize<any>}`]: ((...args: any) => any) | undefined;
12
8
  }>, {
13
9
  duration: number;
14
10
  overlayClosable: boolean;
@@ -4,6 +4,7 @@
4
4
  :visible="innerVisible"
5
5
  :duration="duration"
6
6
  @overlay-click="onOverlayClick"
7
+ @visible-hook="onVisibleHook"
7
8
  >
8
9
  <view :class="actionSheetClass" :style="actionSheetStyle">
9
10
  <view v-if="description" :class="bem.e('description')">
@@ -76,6 +77,15 @@ import {
76
77
  * @event {() => void} close 点击遮罩时触发
77
78
  * @event {() => void} cancel 点击取消按钮时触发
78
79
  * @event {(item: ActionSheetItem, index: number) => void} select 点击动作按钮时触发
80
+ * @event {(name: TransitionHookName) => void} visible-hook 入场/退场动画状态改变时触发
81
+ * @event {() => void} before-enter 入场动画开始前触发
82
+ * @event {() => void} enter 入场动画开始时触发
83
+ * @event {() => void} after-enter 入场动画结束时触发
84
+ * @event {() => void} enter-cancelled 入场动画取消时触发
85
+ * @event {() => void} before-leave 退场动画开始前触发
86
+ * @event {() => void} leave 退场动画开始时触发
87
+ * @event {() => void} after-leave 退场动画结束时触发
88
+ * @event {() => void} leave-cancelled 退场动画取消时触发
79
89
  */
80
90
  export default _defineComponent({
81
91
  components: {
@@ -100,7 +110,7 @@ export default _defineComponent({
100
110
  beforeClose: { type: Function, required: false },
101
111
  duration: { type: Number, required: false }
102
112
  }, defaultActionSheetProps),
103
- emits: ["update:visible", "close", "cancel", "select"],
113
+ emits: ["update:visible", "close", "cancel", "select", "before-enter", "enter", "after-enter", "enter-cancelled", "before-leave", "leave", "after-leave", "leave-cancelled", "visible-hook"],
104
114
  setup(__props, { expose: __expose, emit: __emit }) {
105
115
  __expose();
106
116
  const props = __props;
@@ -144,6 +154,10 @@ export default _defineComponent({
144
154
  emit("cancel");
145
155
  perhapsClose("cancel");
146
156
  };
157
+ const onVisibleHook = (name) => {
158
+ emit("visible-hook", name);
159
+ emit(name);
160
+ };
147
161
  const actionSheetClass = computed(() => {
148
162
  return classNames(
149
163
  bem.b(),
@@ -154,7 +168,7 @@ export default _defineComponent({
154
168
  const actionSheetStyle = computed(() => {
155
169
  return stringifyStyle(props.rootStyle);
156
170
  });
157
- const __returned__ = { props, emit, bem, innerVisible, perhapsClose, onOverlayClick, onSelect, onCancel, actionSheetClass, actionSheetStyle, get classNames() {
171
+ const __returned__ = { props, emit, bem, innerVisible, perhapsClose, onOverlayClick, onSelect, onCancel, onVisibleHook, actionSheetClass, actionSheetStyle, get classNames() {
158
172
  return classNames;
159
173
  }, get stringifyStyle() {
160
174
  return stringifyStyle;
@@ -1,4 +1,5 @@
1
1
  import { type StyleValue } from 'vue';
2
+ import { type TransitionHookEmits } from '../popup/common';
2
3
  export interface ActionSheetProps {
3
4
  rootStyle?: StyleValue;
4
5
  rootClass?: string;
@@ -14,7 +15,7 @@ export declare const defaultActionSheetProps: {
14
15
  overlayClosable: boolean;
15
16
  duration: number;
16
17
  };
17
- export interface ActionSheetEmits {
18
+ export interface ActionSheetEmits extends TransitionHookEmits {
18
19
  (e: 'update:visible', visible: boolean): void;
19
20
  (e: 'close'): void;
20
21
  (e: 'cancel'): void;
@@ -1,14 +1,12 @@
1
1
  import { type CalendarType } from '../calendar/common';
2
2
  import { type CalendarInputProps, type CalendarInputSlots } from './common';
3
3
  declare function __VLS_template(): Readonly<CalendarInputSlots> & CalendarInputSlots;
4
- declare const __VLS_component: import("vue").DefineComponent<CalendarInputProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
5
- "update:model-value": (value: string | string[] | Date | Date[] | undefined) => any;
6
- change: (value: string | string[] | Date | Date[] | undefined) => any;
7
- "update:visible": (visible: boolean) => any;
4
+ declare const __VLS_component: import("vue").DefineComponent<CalendarInputProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
5
+ [x: string]: any;
6
+ } & {
7
+ [x: string]: any;
8
8
  }, string, import("vue").PublicProps, Readonly<CalendarInputProps> & Readonly<{
9
- "onUpdate:model-value"?: ((value: string | string[] | Date | Date[] | undefined) => any) | undefined;
10
- onChange?: ((value: string | string[] | Date | Date[] | undefined) => any) | undefined;
11
- "onUpdate:visible"?: ((visible: boolean) => any) | undefined;
9
+ [x: `on${Capitalize<any>}`]: ((...args: any) => any) | undefined;
12
10
  }>, {
13
11
  type: CalendarType;
14
12
  valueOnClear: () => any;
@@ -39,6 +39,8 @@
39
39
  :value-format="valueFormat"
40
40
  :validate-event="validateEvent"
41
41
  @change="onChange"
42
+ @visible-hook="onVisibleHook"
43
+ @confirm="onConfirm"
42
44
  />
43
45
  </sar-popout-input>
44
46
  </template>
@@ -90,6 +92,16 @@ import {
90
92
  * @property {InputProps} inputProps 自定义输入框组件属性,默认值:-。
91
93
  * @event {(visible: boolean) => void} update 弹出框显隐时触发
92
94
  * @event {(value: Date | Date[] | string | string[] | undefined) => void} change 日历组件值改变时触发
95
+ * @event {() => void} confirm 点击确定按钮时触发
96
+ * @event {(name: TransitionHookName) => void} visible-hook 入场/退场动画状态改变时触发
97
+ * @event {() => void} before-enter 入场动画开始前触发
98
+ * @event {() => void} enter 入场动画开始时触发
99
+ * @event {() => void} after-enter 入场动画结束时触发
100
+ * @event {() => void} enter-cancelled 入场动画取消时触发
101
+ * @event {() => void} before-leave 退场动画开始前触发
102
+ * @event {() => void} leave 退场动画开始时触发
103
+ * @event {() => void} after-leave 退场动画结束时触发
104
+ * @event {() => void} leave-cancelled 退场动画取消时触发
93
105
  */
94
106
  export default _defineComponent({
95
107
  components: {
@@ -140,12 +152,20 @@ export default _defineComponent({
140
152
  internalArrow: { type: Number, required: false },
141
153
  inputProps: { type: Object, required: false }
142
154
  }, defaultCalendarInputProps()),
143
- emits: ["update:visible", "update:model-value", "change"],
155
+ emits: ["update:visible", "update:model-value", "change", "confirm", "before-enter", "enter", "after-enter", "enter-cancelled", "before-leave", "leave", "after-leave", "leave-cancelled", "visible-hook"],
144
156
  setup(__props, { expose: __expose, emit: __emit }) {
145
157
  __expose();
146
158
  const props = __props;
147
159
  const emit = __emit;
148
- const { innerVisible, innerValue, inputValue, show, onChange, onClear } = usePopoutInput(props, emit);
160
+ const {
161
+ innerVisible,
162
+ innerValue,
163
+ inputValue,
164
+ show,
165
+ onChange,
166
+ onClear,
167
+ onVisibleHook
168
+ } = usePopoutInput(props, emit);
149
169
  const { t } = useTranslate("calendar");
150
170
  function getOutletTextMayByStr(date) {
151
171
  if (isString(date) && props.valueFormat) {
@@ -188,7 +208,10 @@ export default _defineComponent({
188
208
  immediate: true
189
209
  }
190
210
  );
191
- const __returned__ = { props, emit, innerVisible, innerValue, inputValue, show, onChange, onClear, t, getOutletTextMayByStr, getOutletText, getInputValue, SarPopoutInput, SarCalendarPopout };
211
+ const onConfirm = () => {
212
+ emit("confirm");
213
+ };
214
+ const __returned__ = { props, emit, innerVisible, innerValue, inputValue, show, onChange, onClear, onVisibleHook, t, getOutletTextMayByStr, getOutletText, getInputValue, onConfirm, SarPopoutInput, SarCalendarPopout };
192
215
  return __returned__;
193
216
  }
194
217
  });
@@ -93,8 +93,18 @@ import CalendarPopout from 'sard-uniapp/components/calendar-popout/calendar-popo
93
93
 
94
94
  ### CalendarPopoutEmits
95
95
 
96
- | 事件 | 描述 | 类型 |
97
- | ------------------ | -------------------- | ------------------------------------------------------------------ |
98
- | update:model-value | 日历组件值改变时触发 | (value: Date \| Date[] \| string \| string[] \| undefined) => void |
99
- | change | 日历组件值改变时触发 | (value: Date \| Date[] \| string \| string[] \| undefined) => void |
100
- | update:visible | 弹出框显隐时触发 | (visible: boolean) => void |
96
+ | 事件 | 描述 | 类型 |
97
+ | ---------------------------------- | --------------------------- | ------------------------------------------------------------------ |
98
+ | update:model-value | 日历组件值改变时触发 | (value: Date \| Date[] \| string \| string[] \| undefined) => void |
99
+ | change | 日历组件值改变时触发 | (value: Date \| Date[] \| string \| string[] \| undefined) => void |
100
+ | update:visible | 弹出框显隐时触发 | (visible: boolean) => void |
101
+ | confirm <sup>1.22.1+</sup> | 点击确定按钮时触发 | () => void |
102
+ | visible-hook <sup>1.22.1+</sup> | 入场/退场动画状态改变时触发 | (name: TransitionHookName) => void |
103
+ | before-enter <sup>1.22.1+</sup> | 入场动画开始前触发 | () => void |
104
+ | enter <sup>1.22.1+</sup> | 入场动画开始时触发 | () => void |
105
+ | after-enter <sup>1.22.1+</sup> | 入场动画结束时触发 | () => void |
106
+ | enter-cancelled <sup>1.22.1+</sup> | 入场动画取消时触发 | () => void |
107
+ | before-leave <sup>1.22.1+</sup> | 退场动画开始前触发 | () => void |
108
+ | leave <sup>1.22.1+</sup> | 退场动画开始时触发 | () => void |
109
+ | after-leave <sup>1.22.1+</sup> | 退场动画结束时触发 | () => void |
110
+ | leave-cancelled <sup>1.22.1+</sup> | 退场动画取消时触发 | () => void |
@@ -3,14 +3,12 @@ declare function __VLS_template(): {
3
3
  "title-prepend"?(_: {}): any;
4
4
  title?(_: {}): any;
5
5
  };
6
- declare const __VLS_component: import("vue").DefineComponent<CalendarPopoutProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
7
- "update:model-value": (value: string | string[] | Date | Date[] | undefined) => any;
8
- change: (value: string | string[] | Date | Date[] | undefined) => any;
9
- "update:visible": (visible: boolean) => any;
6
+ declare const __VLS_component: import("vue").DefineComponent<CalendarPopoutProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
7
+ [x: string]: any;
8
+ } & {
9
+ [x: string]: any;
10
10
  }, string, import("vue").PublicProps, Readonly<CalendarPopoutProps> & Readonly<{
11
- "onUpdate:model-value"?: ((value: string | string[] | Date | Date[] | undefined) => any) | undefined;
12
- onChange?: ((value: string | string[] | Date | Date[] | undefined) => any) | undefined;
13
- "onUpdate:visible"?: ((visible: boolean) => any) | undefined;
11
+ [x: `on${Capitalize<any>}`]: ((...args: any) => any) | undefined;
14
12
  }>, {
15
13
  type: import("../calendar/common.js").CalendarType;
16
14
  showConfirm: boolean;
@@ -7,6 +7,7 @@
7
7
  :root-class="popoutClass"
8
8
  :root-style="popoutStyle"
9
9
  @confirm="onConfirm"
10
+ @visible-hook="onVisibleHook"
10
11
  >
11
12
  <template #title-prepend>
12
13
  <slot name="title-prepend"></slot>
@@ -75,6 +76,16 @@ import { useFormPopout } from "../../use";
75
76
  * @property {boolean} validateEvent 是否触发表单验证,默认值:true。
76
77
  * @event {(visible: boolean) => void} update 弹出框显隐时触发
77
78
  * @event {(value: Date | Date[] | string | string[] | undefined) => void} change 日历组件值改变时触发
79
+ * @event {() => void} confirm 点击确定按钮时触发
80
+ * @event {(name: TransitionHookName) => void} visible-hook 入场/退场动画状态改变时触发
81
+ * @event {() => void} before-enter 入场动画开始前触发
82
+ * @event {() => void} enter 入场动画开始时触发
83
+ * @event {() => void} after-enter 入场动画结束时触发
84
+ * @event {() => void} enter-cancelled 入场动画取消时触发
85
+ * @event {() => void} before-leave 退场动画开始前触发
86
+ * @event {() => void} leave 退场动画开始时触发
87
+ * @event {() => void} after-leave 退场动画结束时触发
88
+ * @event {() => void} leave-cancelled 退场动画取消时触发
78
89
  */
79
90
  export default _defineComponent({
80
91
  components: {
@@ -114,28 +125,24 @@ export default _defineComponent({
114
125
  endDateText: { type: String, required: false },
115
126
  sameDateText: { type: String, required: false }
116
127
  }, defaultCalendarPopoutProps()),
117
- emits: ["update:visible", "update:model-value", "change"],
128
+ emits: ["update:visible", "update:model-value", "change", "confirm", "before-enter", "enter", "after-enter", "enter-cancelled", "before-leave", "leave", "after-leave", "leave-cancelled", "visible-hook"],
118
129
  setup(__props, { expose: __expose, emit: __emit }) {
119
130
  __expose();
120
131
  const props = __props;
121
132
  const emit = __emit;
122
- const { innerVisible, popoutValue, onChange, onConfirm } = useFormPopout(
123
- props,
124
- emit,
125
- {
126
- onChange() {
127
- if (!props.showConfirm && !confirmDisabled.value) {
128
- onConfirm();
129
- innerVisible.value = false;
130
- }
133
+ const { innerVisible, popoutValue, onChange, onConfirm, onVisibleHook } = useFormPopout(props, emit, {
134
+ onChange() {
135
+ if (!props.showConfirm && !confirmDisabled.value) {
136
+ onConfirm(false);
137
+ innerVisible.value = false;
131
138
  }
132
139
  }
133
- );
140
+ });
134
141
  const confirmDisabled = computed(() => {
135
142
  const value = popoutValue.value;
136
143
  return !value || Array.isArray(value) && value.length === 0;
137
144
  });
138
- const __returned__ = { props, emit, innerVisible, popoutValue, onChange, onConfirm, confirmDisabled, SarPopout, SarCalendar };
145
+ const __returned__ = { props, emit, innerVisible, popoutValue, onChange, onConfirm, onVisibleHook, confirmDisabled, SarPopout, SarCalendar };
139
146
  return __returned__;
140
147
  }
141
148
  });
@@ -1,5 +1,6 @@
1
1
  import { type StyleValue } from 'vue';
2
2
  import { type CalendarProps } from '../calendar/common';
3
+ import { type TransitionHookEmits } from '../popup/common';
3
4
  export interface CalendarPopoutProps extends CalendarProps {
4
5
  visible?: boolean;
5
6
  title?: string;
@@ -20,10 +21,11 @@ export interface CalendarPopoutSlots {
20
21
  title?(props: Record<string, never>): any;
21
22
  'title-prepend'?(props: Record<string, never>): any;
22
23
  }
23
- export interface CalendarPopoutEmits {
24
+ export interface CalendarPopoutEmits extends TransitionHookEmits {
24
25
  (e: 'update:visible', visible: boolean): void;
25
26
  (e: 'update:model-value', value: Date | Date[] | string | string[] | undefined): void;
26
27
  (e: 'change', value: Date | Date[] | string | string[] | undefined): void;
28
+ (e: 'confirm'): void;
27
29
  }
28
30
  export interface CalendarPopoutExpose {
29
31
  }
@@ -1,16 +1,11 @@
1
- import { type CascaderOption } from '../cascader/common';
2
1
  import { type CascaderInputProps, type CascaderInputSlots } from './common';
3
2
  declare function __VLS_template(): Readonly<CascaderInputSlots> & CascaderInputSlots;
4
- declare const __VLS_component: import("vue").DefineComponent<CascaderInputProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
5
- "update:model-value": (value: any, selectedOptions: CascaderOption[]) => any;
6
- change: (value: any, selectedOptions: CascaderOption[]) => any;
7
- select: (option: CascaderOption, tabIndex: number) => any;
8
- "update:visible": (visible: boolean) => any;
3
+ declare const __VLS_component: import("vue").DefineComponent<CascaderInputProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
4
+ [x: string]: any;
5
+ } & {
6
+ [x: string]: any;
9
7
  }, string, import("vue").PublicProps, Readonly<CascaderInputProps> & Readonly<{
10
- "onUpdate:model-value"?: ((value: any, selectedOptions: CascaderOption[]) => any) | undefined;
11
- onChange?: ((value: any, selectedOptions: CascaderOption[]) => any) | undefined;
12
- onSelect?: ((option: CascaderOption, tabIndex: number) => any) | undefined;
13
- "onUpdate:visible"?: ((visible: boolean) => any) | undefined;
8
+ [x: `on${Capitalize<any>}`]: ((...args: any) => any) | undefined;
14
9
  }>, {
15
10
  valueOnClear: () => any;
16
11
  showConfirm: boolean;
@@ -31,6 +31,8 @@
31
31
  :validate-event="validateEvent"
32
32
  @select="(option, tabIndex) => $emit('select', option, tabIndex)"
33
33
  @change="onChange"
34
+ @visible-hook="onVisibleHook"
35
+ @confirm="onConfirm"
34
36
  >
35
37
  <template #top="{ tabIndex }">
36
38
  <slot name="top" :tab-index="tabIndex"></slot>
@@ -80,6 +82,16 @@ import {
80
82
  * @event {(visible: boolean) => void} update 弹出框显隐时触发
81
83
  * @event {(value: string | number, selectedOptions: CascaderOption[]) => void} change 级联输入组件值改变时触发
82
84
  * @event {(option: CascaderOption, tabIndex: number) => void} select 选择级联选择某一项时触发
85
+ * @event {() => void} confirm 点击确定按钮时触发
86
+ * @event {(name: TransitionHookName) => void} visible-hook 入场/退场动画状态改变时触发
87
+ * @event {() => void} before-enter 入场动画开始前触发
88
+ * @event {() => void} enter 入场动画开始时触发
89
+ * @event {() => void} after-enter 入场动画结束时触发
90
+ * @event {() => void} enter-cancelled 入场动画取消时触发
91
+ * @event {() => void} before-leave 退场动画开始前触发
92
+ * @event {() => void} leave 退场动画开始时触发
93
+ * @event {() => void} after-leave 退场动画结束时触发
94
+ * @event {() => void} leave-cancelled 退场动画取消时触发
83
95
  */
84
96
  export default _defineComponent({
85
97
  components: {
@@ -120,12 +132,20 @@ export default _defineComponent({
120
132
  internalArrow: { type: Number, required: false },
121
133
  inputProps: { type: Object, required: false }
122
134
  }, defaultCascaderInputProps()),
123
- emits: ["update:visible", "update:model-value", "change", "select"],
135
+ emits: ["update:visible", "update:model-value", "change", "select", "confirm", "before-enter", "enter", "after-enter", "enter-cancelled", "before-leave", "leave", "after-leave", "leave-cancelled", "visible-hook"],
124
136
  setup(__props, { expose: __expose, emit: __emit }) {
125
137
  __expose();
126
138
  const props = __props;
127
139
  const emit = __emit;
128
- const { innerVisible, innerValue, inputValue, show, onChange, onClear } = usePopoutInput(props, emit, {
140
+ const {
141
+ innerVisible,
142
+ innerValue,
143
+ inputValue,
144
+ show,
145
+ onChange,
146
+ onClear,
147
+ onVisibleHook
148
+ } = usePopoutInput(props, emit, {
129
149
  onClear(value) {
130
150
  emit("update:model-value", value, []);
131
151
  emit("change", value, []);
@@ -161,7 +181,10 @@ export default _defineComponent({
161
181
  immediate: true
162
182
  }
163
183
  );
164
- const __returned__ = { props, emit, innerVisible, innerValue, inputValue, show, onChange, onClear, fieldkeys, getOutletText, getInputValue, SarPopoutInput, SarCascaderPopout };
184
+ const onConfirm = () => {
185
+ emit("confirm");
186
+ };
187
+ const __returned__ = { props, emit, innerVisible, innerValue, inputValue, show, onChange, onClear, onVisibleHook, fieldkeys, getOutletText, getInputValue, onConfirm, SarPopoutInput, SarCascaderPopout };
165
188
  return __returned__;
166
189
  }
167
190
  });
@@ -45,9 +45,19 @@ import CascaderPopout from 'sard-uniapp/components/cascader-popout/cascader-popo
45
45
 
46
46
  ### CascaderPopoutEmits
47
47
 
48
- | 事件 | 描述 | 类型 |
49
- | ------------------ | ------------------------ | -------------------------------------------------------------------- |
50
- | update:model-value | 级联输入组件值改变时触发 | (value: string \| number, selectedOptions: CascaderOption[]) => void |
51
- | change | 级联输入组件值改变时触发 | (value: string \| number, selectedOptions: CascaderOption[]) => void |
52
- | select | 选择级联选择某一项时触发 | (option: CascaderOption, tabIndex: number) => void |
53
- | update:visible | 弹出框显隐时触发 | (visible: boolean) => void |
48
+ | 事件 | 描述 | 类型 |
49
+ | ---------------------------------- | --------------------------- | -------------------------------------------------------------------- |
50
+ | update:model-value | 级联输入组件值改变时触发 | (value: string \| number, selectedOptions: CascaderOption[]) => void |
51
+ | change | 级联输入组件值改变时触发 | (value: string \| number, selectedOptions: CascaderOption[]) => void |
52
+ | select | 选择级联选择某一项时触发 | (option: CascaderOption, tabIndex: number) => void |
53
+ | update:visible | 弹出框显隐时触发 | (visible: boolean) => void |
54
+ | confirm <sup>1.22.1+</sup> | 点击确定按钮时触发 | () => void |
55
+ | visible-hook <sup>1.22.1+</sup> | 入场/退场动画状态改变时触发 | (name: TransitionHookName) => void |
56
+ | before-enter <sup>1.22.1+</sup> | 入场动画开始前触发 | () => void |
57
+ | enter <sup>1.22.1+</sup> | 入场动画开始时触发 | () => void |
58
+ | after-enter <sup>1.22.1+</sup> | 入场动画结束时触发 | () => void |
59
+ | enter-cancelled <sup>1.22.1+</sup> | 入场动画取消时触发 | () => void |
60
+ | before-leave <sup>1.22.1+</sup> | 退场动画开始前触发 | () => void |
61
+ | leave <sup>1.22.1+</sup> | 退场动画开始时触发 | () => void |
62
+ | after-leave <sup>1.22.1+</sup> | 退场动画结束时触发 | () => void |
63
+ | leave-cancelled <sup>1.22.1+</sup> | 退场动画取消时触发 | () => void |
@@ -1,15 +1,11 @@
1
1
  import { type CascaderPopoutProps, type CascaderPopoutSlots } from './common';
2
2
  declare function __VLS_template(): Readonly<CascaderPopoutSlots> & CascaderPopoutSlots;
3
- declare const __VLS_component: import("vue").DefineComponent<CascaderPopoutProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
4
- "update:model-value": (value: any, selectedOptions: import("../cascader/common.js").CascaderOption[]) => any;
5
- change: (value: any, selectedOptions: import("../cascader/common.js").CascaderOption[]) => any;
6
- select: (option: import("../cascader/common.js").CascaderOption, tabIndex: number) => any;
7
- "update:visible": (visible: boolean) => any;
3
+ declare const __VLS_component: import("vue").DefineComponent<CascaderPopoutProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
4
+ [x: string]: any;
5
+ } & {
6
+ [x: string]: any;
8
7
  }, string, import("vue").PublicProps, Readonly<CascaderPopoutProps> & Readonly<{
9
- "onUpdate:model-value"?: ((value: any, selectedOptions: import("../cascader/common.js").CascaderOption[]) => any) | undefined;
10
- onChange?: ((value: any, selectedOptions: import("../cascader/common.js").CascaderOption[]) => any) | undefined;
11
- onSelect?: ((option: import("../cascader/common.js").CascaderOption, tabIndex: number) => any) | undefined;
12
- "onUpdate:visible"?: ((visible: boolean) => any) | undefined;
8
+ [x: `on${Capitalize<any>}`]: ((...args: any) => any) | undefined;
13
9
  }>, {
14
10
  showConfirm: boolean;
15
11
  validateEvent: boolean;
@@ -6,6 +6,7 @@
6
6
  :root-class="popoutClass"
7
7
  :root-style="popoutStyle"
8
8
  @confirm="onConfirm"
9
+ @visible-hook="onVisibleHook"
9
10
  >
10
11
  <template #visible="{ already }">
11
12
  <sar-cascader
@@ -54,6 +55,16 @@ import { useFormPopout } from "../../use";
54
55
  * @event {(visible: boolean) => void} update 弹出框显隐时触发
55
56
  * @event {(value: string | number, selectedOptions: CascaderOption[]) => void} change 级联输入组件值改变时触发
56
57
  * @event {(option: CascaderOption, tabIndex: number) => void} select 选择级联选择某一项时触发
58
+ * @event {() => void} confirm 点击确定按钮时触发
59
+ * @event {(name: TransitionHookName) => void} visible-hook 入场/退场动画状态改变时触发
60
+ * @event {() => void} before-enter 入场动画开始前触发
61
+ * @event {() => void} enter 入场动画开始时触发
62
+ * @event {() => void} after-enter 入场动画结束时触发
63
+ * @event {() => void} enter-cancelled 入场动画取消时触发
64
+ * @event {() => void} before-leave 退场动画开始前触发
65
+ * @event {() => void} leave 退场动画开始时触发
66
+ * @event {() => void} after-leave 退场动画结束时触发
67
+ * @event {() => void} leave-cancelled 退场动画取消时触发
57
68
  */
58
69
  export default _defineComponent({
59
70
  components: {
@@ -83,24 +94,20 @@ export default _defineComponent({
83
94
  labelRender: { type: Function, required: false },
84
95
  changeOnSelect: { type: Boolean, required: false }
85
96
  }, defaultCascaderPopoutProps),
86
- emits: ["update:visible", "update:model-value", "change", "select"],
97
+ emits: ["update:visible", "update:model-value", "change", "select", "confirm", "before-enter", "enter", "after-enter", "enter-cancelled", "before-leave", "leave", "after-leave", "leave-cancelled", "visible-hook"],
87
98
  setup(__props, { expose: __expose, emit: __emit }) {
88
99
  __expose();
89
100
  const props = __props;
90
101
  const emit = __emit;
91
- const { innerVisible, popoutValue, onChange, onConfirm } = useFormPopout(
92
- props,
93
- emit,
94
- {
95
- onChange() {
96
- if (!props.showConfirm && !isEmptyBinding(popoutValue.value)) {
97
- onConfirm();
98
- innerVisible.value = false;
99
- }
102
+ const { innerVisible, popoutValue, onChange, onConfirm, onVisibleHook } = useFormPopout(props, emit, {
103
+ onChange() {
104
+ if (!props.showConfirm && !isEmptyBinding(popoutValue.value)) {
105
+ onConfirm(false);
106
+ innerVisible.value = false;
100
107
  }
101
108
  }
102
- );
103
- const __returned__ = { props, emit, innerVisible, popoutValue, onChange, onConfirm, SarPopout, SarCascader };
109
+ });
110
+ const __returned__ = { props, emit, innerVisible, popoutValue, onChange, onConfirm, onVisibleHook, SarPopout, SarCascader };
104
111
  return __returned__;
105
112
  }
106
113
  });
@@ -1,5 +1,6 @@
1
1
  import { type StyleValue } from 'vue';
2
2
  import { type CascaderOption, type CascaderProps } from '../cascader/common';
3
+ import { type TransitionHookEmits } from '../popup/common';
3
4
  export interface CascaderPopoutProps extends CascaderProps {
4
5
  visible?: boolean;
5
6
  title?: string;
@@ -17,11 +18,12 @@ export interface CascaderPopoutSlots {
17
18
  tabIndex: number;
18
19
  }): any;
19
20
  }
20
- export interface CascaderPopoutEmits {
21
+ export interface CascaderPopoutEmits extends TransitionHookEmits {
21
22
  (e: 'update:visible', visible: boolean): void;
22
23
  (e: 'update:model-value', value: any, selectedOptions: CascaderOption[]): void;
23
24
  (e: 'change', value: any, selectedOptions: CascaderOption[]): void;
24
25
  (e: 'select', option: CascaderOption, tabIndex: number): void;
26
+ (e: 'confirm'): void;
25
27
  }
26
28
  export interface CascaderPopoutExpose {
27
29
  }
@@ -1,13 +1,11 @@
1
1
  import { type CheckboxInputProps, type CheckboxInputSlots } from './common';
2
2
  declare function __VLS_template(): Readonly<CheckboxInputSlots> & CheckboxInputSlots;
3
- declare const __VLS_component: import("vue").DefineComponent<CheckboxInputProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
4
- "update:model-value": (value: any) => any;
5
- change: (value: any) => any;
6
- "update:visible": (visible: boolean) => any;
3
+ declare const __VLS_component: import("vue").DefineComponent<CheckboxInputProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
4
+ [x: string]: any;
5
+ } & {
6
+ [x: string]: any;
7
7
  }, string, import("vue").PublicProps, Readonly<CheckboxInputProps> & Readonly<{
8
- "onUpdate:model-value"?: ((value: any) => any) | undefined;
9
- onChange?: ((value: any) => any) | undefined;
10
- "onUpdate:visible"?: ((visible: boolean) => any) | undefined;
8
+ [x: `on${Capitalize<any>}`]: ((...args: any) => any) | undefined;
11
9
  }>, {
12
10
  options: import("../checkbox/common").CheckboxGroupOption[];
13
11
  valueOnClear: () => any;