@sdata/web-vue 4.4.0 → 4.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (232) hide show
  1. package/dist/sd.css +20 -5
  2. package/dist/sd.min.css +2 -2
  3. package/es/_utils/global-config.js +9 -5
  4. package/es/anchor/anchor.vue_vue_type_script_setup_true_lang.js +5 -8
  5. package/es/anchor/utils.d.ts +1 -1
  6. package/es/anchor/utils.js +6 -1
  7. package/es/auto-complete/auto-complete.vue.d.ts +6 -6
  8. package/es/auto-complete/auto-complete.vue_vue_type_script_setup_true_lang.js +22 -6
  9. package/es/avatar/avatar-group.vue_vue_type_script_setup_true_lang.js +2 -1
  10. package/es/avatar/avatar.vue_vue_type_script_setup_true_lang.js +3 -3
  11. package/es/avatar/style/index.css +1 -1
  12. package/es/avatar/style/index.scss +2 -1
  13. package/es/badge/badge.vue_vue_type_script_setup_true_lang.js +59 -42
  14. package/es/basic-crud-table/basic-crud-modal.vue.d.ts +22 -22
  15. package/es/basic-crud-table/basic-crud-table.vue.d.ts +66 -66
  16. package/es/basic-crud-table/index.d.ts +198 -198
  17. package/es/bloom-menu/bloom-menu.vue.d.ts +1 -1
  18. package/es/bloom-menu/bloom-menu.vue_vue_type_script_setup_true_lang.js +16 -3
  19. package/es/border-beam/border-beam.vue_vue_type_script_setup_true_lang.js +32 -18
  20. package/es/breadcrumb/breadcrumb-item.vue_vue_type_script_setup_true_lang.js +3 -3
  21. package/es/button/button.vue_vue_type_script_setup_true_lang.js +1 -1
  22. package/es/calendar/components/cell.vue_vue_type_script_setup_true_lang.js +1 -1
  23. package/es/calendar/components/event.vue_vue_type_script_setup_true_lang.js +1 -1
  24. package/es/calendar/core/config.js +4 -1
  25. package/es/calendar/core/events.js +22 -2
  26. package/es/calendar/default-theme.scss +1 -1
  27. package/es/calendar/style/index.css +2 -2
  28. package/es/carousel/carousel.vue.d.ts +5 -1
  29. package/es/carousel/carousel.vue_vue_type_script_setup_true_lang.js +55 -12
  30. package/es/carousel/index.d.ts +15 -3
  31. package/es/cascader/cascader-panel.vue_vue_type_script_setup_true_lang.js +6 -3
  32. package/es/checkbox/checkbox.vue.d.ts +2 -0
  33. package/es/checkbox/checkbox.vue_vue_type_script_setup_true_lang.js +12 -6
  34. package/es/checkbox/index.d.ts +6 -0
  35. package/es/color-picker/color-picker.vue_vue_type_script_setup_true_lang.js +13 -5
  36. package/es/color-picker/control-bar.vue_vue_type_script_setup_true_lang.js +1 -1
  37. package/es/color-picker/hooks/use-control-block.d.ts +1 -1
  38. package/es/color-picker/hooks/use-control-block.js +6 -6
  39. package/es/color-picker/palette.vue_vue_type_script_setup_true_lang.js +1 -1
  40. package/es/comment/comment.vue_vue_type_script_setup_true_lang.js +7 -2
  41. package/es/config-provider/config-provider.vue_vue_type_script_setup_true_lang.js +7 -6
  42. package/es/config-provider/theme-provider.vue_vue_type_script_setup_true_lang.js +7 -1
  43. package/es/copy/copy.vue_vue_type_script_setup_true_lang.js +23 -8
  44. package/es/cropper/cropper.vue_vue_type_script_setup_true_lang.js +16 -7
  45. package/es/date-picker/hooks/use-range-header-value.js +1 -1
  46. package/es/drawer/drawer.vue.d.ts +2 -2
  47. package/es/drawer/drawer.vue_vue_type_script_setup_true_lang.js +5 -12
  48. package/es/drawer/index.d.ts +3 -3
  49. package/es/dropdown/dropdown-panel.vue.d.ts +0 -9
  50. package/es/dropdown/dropdown-panel.vue_vue_type_script_setup_true_lang.js +0 -4
  51. package/es/dropdown/dropdown.vue.d.ts +16 -3
  52. package/es/dropdown/dropdown.vue_vue_type_script_setup_true_lang.js +24 -3
  53. package/es/dropdown/index.d.ts +25 -0
  54. package/es/dropdown/interface.d.ts +2 -0
  55. package/es/ellipsis/ellipsis.vue.d.ts +2 -0
  56. package/es/ellipsis/ellipsis.vue_vue_type_script_setup_true_lang.js +37 -8
  57. package/es/ellipsis/index.d.ts +3 -0
  58. package/es/ellipsis/performant-ellipsis.vue_vue_type_script_setup_true_lang.js +3 -0
  59. package/es/empty/empty.vue_vue_type_script_setup_true_lang.js +1 -4
  60. package/es/file-previewer/file-previewer.vue.d.ts +0 -3
  61. package/es/file-previewer/file-previewer.vue_vue_type_script_setup_true_lang.js +3 -6
  62. package/es/file-previewer/index.d.ts +0 -9
  63. package/es/form/context.d.ts +1 -2
  64. package/es/form/form-item.vue_vue_type_script_setup_true_lang.js +6 -6
  65. package/es/form/form.vue.d.ts +3 -3
  66. package/es/form/form.vue_vue_type_script_setup_true_lang.js +5 -7
  67. package/es/form/index.d.ts +6 -6
  68. package/es/grid/grid-col.vue_vue_type_script_setup_true_lang.js +5 -4
  69. package/es/grid/hook/use-responsive-state.js +15 -4
  70. package/es/grid/hook/use-responsive-value.js +3 -2
  71. package/es/icon/icon-arrow-up/icon-arrow-up.vue_vue_type_script_setup_true_lang.js +4 -1
  72. package/es/icon/icon-calendar/icon-calendar.vue_vue_type_script_setup_true_lang.js +4 -1
  73. package/es/icon/icon-caret-down/icon-caret-down.vue_vue_type_script_setup_true_lang.js +4 -1
  74. package/es/icon/icon-caret-left/icon-caret-left.vue_vue_type_script_setup_true_lang.js +4 -1
  75. package/es/icon/icon-caret-right/icon-caret-right.vue_vue_type_script_setup_true_lang.js +4 -1
  76. package/es/icon/icon-caret-up/icon-caret-up.vue_vue_type_script_setup_true_lang.js +4 -1
  77. package/es/icon/icon-check/icon-check.vue_vue_type_script_setup_true_lang.js +4 -1
  78. package/es/icon/icon-check-circle-fill/icon-check-circle-fill.vue_vue_type_script_setup_true_lang.js +4 -1
  79. package/es/icon/icon-clock-circle/icon-clock-circle.vue_vue_type_script_setup_true_lang.js +4 -1
  80. package/es/icon/icon-close/icon-close.vue_vue_type_script_setup_true_lang.js +4 -1
  81. package/es/icon/icon-close-circle-fill/icon-close-circle-fill.vue_vue_type_script_setup_true_lang.js +4 -1
  82. package/es/icon/icon-components.d.ts +1 -1
  83. package/es/icon/icon-copy/icon-copy.vue_vue_type_script_setup_true_lang.js +4 -1
  84. package/es/icon/icon-delete/icon-delete.vue_vue_type_script_setup_true_lang.js +4 -1
  85. package/es/icon/icon-double-left/icon-double-left.vue_vue_type_script_setup_true_lang.js +4 -1
  86. package/es/icon/icon-double-right/icon-double-right.vue_vue_type_script_setup_true_lang.js +4 -1
  87. package/es/icon/icon-down/icon-down.vue_vue_type_script_setup_true_lang.js +4 -1
  88. package/es/icon/icon-drag-dot/icon-drag-dot.vue_vue_type_script_setup_true_lang.js +4 -1
  89. package/es/icon/icon-drag-dot-vertical/icon-drag-dot-vertical.vue_vue_type_script_setup_true_lang.js +4 -1
  90. package/es/icon/icon-edit/icon-edit.vue_vue_type_script_setup_true_lang.js +4 -1
  91. package/es/icon/icon-empty/icon-empty.vue_vue_type_script_setup_true_lang.js +4 -1
  92. package/es/icon/icon-exclamation/icon-exclamation.vue_vue_type_script_setup_true_lang.js +4 -1
  93. package/es/icon/icon-exclamation-circle-fill/icon-exclamation-circle-fill.vue_vue_type_script_setup_true_lang.js +4 -1
  94. package/es/icon/icon-eye/icon-eye.vue_vue_type_script_setup_true_lang.js +4 -1
  95. package/es/icon/icon-eye-invisible/icon-eye-invisible.vue_vue_type_script_setup_true_lang.js +4 -1
  96. package/es/icon/icon-face-frown-fill/icon-face-frown-fill.vue_vue_type_script_setup_true_lang.js +4 -1
  97. package/es/icon/icon-face-meh-fill/icon-face-meh-fill.vue_vue_type_script_setup_true_lang.js +4 -1
  98. package/es/icon/icon-face-smile-fill/icon-face-smile-fill.vue_vue_type_script_setup_true_lang.js +4 -1
  99. package/es/icon/{icon-faceBook-circle-fill → icon-facebook-circle-fill}/index.d.ts +5 -5
  100. package/es/icon/icon-file/icon-file.vue_vue_type_script_setup_true_lang.js +4 -1
  101. package/es/icon/icon-file-audio/icon-file-audio.vue_vue_type_script_setup_true_lang.js +4 -1
  102. package/es/icon/icon-file-image/icon-file-image.vue_vue_type_script_setup_true_lang.js +4 -1
  103. package/es/icon/icon-file-pdf/icon-file-pdf.vue_vue_type_script_setup_true_lang.js +4 -1
  104. package/es/icon/icon-file-video/icon-file-video.vue_vue_type_script_setup_true_lang.js +4 -1
  105. package/es/icon/icon-filter/icon-filter.vue_vue_type_script_setup_true_lang.js +4 -1
  106. package/es/icon/icon-fullscreen/icon-fullscreen.vue_vue_type_script_setup_true_lang.js +4 -1
  107. package/es/icon/icon-image-close/icon-image-close.vue_vue_type_script_setup_true_lang.js +4 -1
  108. package/es/icon/icon-info/icon-info.vue_vue_type_script_setup_true_lang.js +4 -1
  109. package/es/icon/icon-info-circle-fill/icon-info-circle-fill.vue_vue_type_script_setup_true_lang.js +4 -1
  110. package/es/icon/icon-left/icon-left.vue_vue_type_script_setup_true_lang.js +4 -1
  111. package/es/icon/icon-link/icon-link.vue_vue_type_script_setup_true_lang.js +4 -1
  112. package/es/icon/icon-list/icon-list.vue_vue_type_script_setup_true_lang.js +4 -1
  113. package/es/icon/icon-loading/icon-loading.vue_vue_type_script_setup_true_lang.js +4 -1
  114. package/es/icon/icon-menu/icon-menu.vue_vue_type_script_setup_true_lang.js +4 -1
  115. package/es/icon/icon-menu-fold/icon-menu-fold.vue_vue_type_script_setup_true_lang.js +4 -1
  116. package/es/icon/icon-menu-unfold/icon-menu-unfold.vue_vue_type_script_setup_true_lang.js +4 -1
  117. package/es/icon/icon-minus/icon-minus.vue_vue_type_script_setup_true_lang.js +4 -1
  118. package/es/icon/icon-more/icon-more.vue_vue_type_script_setup_true_lang.js +4 -1
  119. package/es/icon/icon-mute/icon-mute.vue_vue_type_script_setup_true_lang.js +4 -1
  120. package/es/icon/icon-oblique-line/icon-oblique-line.vue_vue_type_script_setup_true_lang.js +4 -1
  121. package/es/icon/icon-original-size/icon-original-size.vue_vue_type_script_setup_true_lang.js +4 -1
  122. package/es/icon/icon-pause/icon-pause.vue_vue_type_script_setup_true_lang.js +4 -1
  123. package/es/icon/icon-play-arrow-fill/icon-play-arrow-fill.vue_vue_type_script_setup_true_lang.js +4 -1
  124. package/es/icon/icon-plus/icon-plus.vue_vue_type_script_setup_true_lang.js +4 -1
  125. package/es/icon/icon-question-circle/icon-question-circle.vue_vue_type_script_setup_true_lang.js +4 -1
  126. package/es/icon/icon-right/icon-right.vue_vue_type_script_setup_true_lang.js +4 -1
  127. package/es/icon/icon-rotate-left/icon-rotate-left.vue_vue_type_script_setup_true_lang.js +4 -1
  128. package/es/icon/icon-rotate-right/icon-rotate-right.vue_vue_type_script_setup_true_lang.js +4 -1
  129. package/es/icon/icon-search/icon-search.vue_vue_type_script_setup_true_lang.js +4 -1
  130. package/es/icon/icon-star-fill/icon-star-fill.vue_vue_type_script_setup_true_lang.js +4 -1
  131. package/es/icon/icon-to-top/icon-to-top.vue_vue_type_script_setup_true_lang.js +4 -1
  132. package/es/icon/icon-up/icon-up.vue_vue_type_script_setup_true_lang.js +4 -1
  133. package/es/icon/icon-upload/icon-upload.vue_vue_type_script_setup_true_lang.js +4 -1
  134. package/es/icon/icon-voice/icon-voice.vue_vue_type_script_setup_true_lang.js +4 -1
  135. package/es/icon/icon-zoom-in/icon-zoom-in.vue_vue_type_script_setup_true_lang.js +4 -1
  136. package/es/icon/icon-zoom-out/icon-zoom-out.vue_vue_type_script_setup_true_lang.js +4 -1
  137. package/es/icon/index.d.ts +1 -1
  138. package/es/icon.js +1162 -300
  139. package/es/image/image.vue_vue_type_script_setup_true_lang.js +5 -3
  140. package/es/image/preview.vue_vue_type_script_setup_true_lang.js +1 -1
  141. package/es/index.css +20 -5
  142. package/es/input/input-password.vue_vue_type_script_setup_true_lang.js +4 -4
  143. package/es/input-mask/input-mask.vue_vue_type_script_setup_true_lang.js +25 -11
  144. package/es/input-mask/mask-engine.d.ts +4 -0
  145. package/es/input-mask/mask-engine.js +12 -1
  146. package/es/input-number/index.d.ts +15 -0
  147. package/es/input-number/input-number.vue.d.ts +9 -0
  148. package/es/input-number/input-number.vue_vue_type_script_setup_true_lang.js +47 -14
  149. package/es/json-form/index.d.ts +11 -11
  150. package/es/json-form/json-form-item.vue.d.ts +3 -6
  151. package/es/json-form/json-form-item.vue_vue_type_script_setup_true_lang.js +14 -15
  152. package/es/json-form/json-form.vue.d.ts +7 -10
  153. package/es/json-form/json-form.vue_vue_type_script_setup_true_lang.js +17 -16
  154. package/es/json-form/style/index.css +15 -0
  155. package/es/json-form/style/index.scss +21 -0
  156. package/es/json-form/types.d.ts +1 -0
  157. package/es/json-form/utils.d.ts +1 -1
  158. package/es/json-form/utils.js +20 -13
  159. package/es/kv-list/kv-list.vue_vue_type_script_setup_true_lang.js +1 -0
  160. package/es/layout/hooks/use-has-sider.js +23 -2
  161. package/es/layout/interface.d.ts +1 -1
  162. package/es/layout/sider.vue_vue_type_script_setup_true_lang.js +1 -1
  163. package/es/list/list-item-meta.vue_vue_type_script_setup_true_lang.js +3 -3
  164. package/es/locale/interface.d.ts +7 -0
  165. package/es/locale/lang/en-us.js +5 -0
  166. package/es/locale/lang/zh-cn.js +5 -0
  167. package/es/mention/index.d.ts +15 -0
  168. package/es/mention/mention.vue.d.ts +10 -1
  169. package/es/mention/mention.vue_vue_type_script_setup_true_lang.js +16 -9
  170. package/es/message/index.js +1 -1
  171. package/es/modal/index.js +9 -1
  172. package/es/modal/modal.vue_vue_type_script_setup_true_lang.js +15 -16
  173. package/es/model-selector/model-selector-input.vue_vue_type_script_setup_true_lang.js +4 -1
  174. package/es/model-selector/model-selector-item.vue_vue_type_script_setup_true_lang.js +27 -3
  175. package/es/model-selector/model-selector.vue_vue_type_script_setup_true_lang.js +15 -3
  176. package/es/notification/index.js +5 -2
  177. package/es/notification/notification-list.vue_vue_type_script_setup_true_lang.js +5 -5
  178. package/es/number-flow/number-flow.vue_vue_type_script_setup_true_lang.js +27 -8
  179. package/es/page-header/page-header.vue_vue_type_script_setup_true_lang.js +2 -1
  180. package/es/pagination/page-item-ellipsis.vue.d.ts +9 -0
  181. package/es/pagination/page-item-ellipsis.vue_vue_type_script_setup_true_lang.js +19 -3
  182. package/es/pagination/page-jumper.vue_vue_type_script_setup_true_lang.js +3 -2
  183. package/es/pagination/pagination.vue_vue_type_script_setup_true_lang.js +10 -0
  184. package/es/popconfirm/popconfirm.vue_vue_type_script_setup_true_lang.js +4 -11
  185. package/es/popover/index.d.ts +2 -0
  186. package/es/popover/popover.vue.d.ts +4 -2
  187. package/es/popover/popover.vue_vue_type_script_setup_true_lang.js +10 -3
  188. package/es/qr-code/qr-code.vue_vue_type_script_setup_true_lang.js +1 -0
  189. package/es/rate/rate.vue_vue_type_script_setup_true_lang.js +1 -2
  190. package/es/resize-box/resize-box.vue_vue_type_script_setup_true_lang.js +10 -10
  191. package/es/result/result.vue_vue_type_script_setup_true_lang.js +6 -4
  192. package/es/skeleton/line.vue_vue_type_script_setup_true_lang.js +16 -13
  193. package/es/slider/slider-button.vue_vue_type_script_setup_true_lang.js +2 -0
  194. package/es/slider/slider.vue_vue_type_script_setup_true_lang.js +20 -9
  195. package/es/slider/utils.js +1 -1
  196. package/es/spin/spin.vue_vue_type_script_setup_true_lang.js +1 -1
  197. package/es/split/split.vue_vue_type_script_setup_true_lang.js +3 -1
  198. package/es/statistic/countdown.vue_vue_type_script_setup_true_lang.js +7 -0
  199. package/es/statistic/index.d.ts +0 -3
  200. package/es/statistic/statistic.vue.d.ts +0 -2
  201. package/es/statistic/statistic.vue_vue_type_script_setup_true_lang.js +0 -5
  202. package/es/style/icon.scss +2 -2
  203. package/es/switch/switch.vue_vue_type_script_setup_true_lang.js +1 -1
  204. package/es/table/table-td.vue_vue_type_script_setup_true_lang.js +6 -6
  205. package/es/table/table-th.vue_vue_type_script_setup_true_lang.js +6 -6
  206. package/es/tag/index.d.ts +8 -8
  207. package/es/tag/tag.vue.d.ts +4 -4
  208. package/es/tag/tag.vue_vue_type_script_setup_true_lang.js +1 -2
  209. package/es/timeline/timeline.vue_vue_type_script_setup_true_lang.js +2 -2
  210. package/es/tour/tour.vue_vue_type_script_setup_true_lang.js +14 -8
  211. package/es/transfer/transfer-view.vue_vue_type_script_setup_true_lang.js +1 -1
  212. package/es/tree/base-node.vue_vue_type_script_setup_true_lang.js +1 -1
  213. package/es/tree-select/tree-select.vue_vue_type_script_setup_true_lang.js +10 -3
  214. package/es/trigger/index.d.ts +0 -6
  215. package/es/trigger/interface.d.ts +1 -2
  216. package/es/trigger/trigger.vue.d.ts +0 -2
  217. package/es/trigger/trigger.vue_vue_type_script_setup_true_lang.js +0 -4
  218. package/es/typography/base.vue_vue_type_script_setup_true_lang.js +1 -0
  219. package/es/typography/interface.d.ts +0 -4
  220. package/es/typography/utils/getInnerText.js +11 -10
  221. package/es/upload/upload-list-item.vue_vue_type_script_setup_true_lang.js +1 -1
  222. package/es/upload/upload.vue_vue_type_script_setup_true_lang.js +7 -5
  223. package/es/upload/utils.d.ts +1 -2
  224. package/es/verification-code/index.d.ts +12 -3
  225. package/es/verification-code/verification-code.vue.d.ts +6 -1
  226. package/es/verification-code/verification-code.vue_vue_type_script_setup_true_lang.js +29 -5
  227. package/es/watermark/watermark.vue_vue_type_script_setup_true_lang.js +4 -2
  228. package/json/vetur-attributes.json +22 -10
  229. package/json/vetur-tags.json +10 -4
  230. package/json/web-types.json +43 -17
  231. package/package.json +1 -1
  232. /package/es/icon/{icon-faceBook-circle-fill/icon-faceBook-circle-fill.vue.d.ts → icon-facebook-circle-fill/icon-facebook-circle-fill.vue.d.ts} +0 -0
@@ -5,9 +5,10 @@ import _objectWithoutProperties from "../_virtual/_@oxc-project_runtime@0.146.0/
5
5
  import resize_observer_v2_default from "../_components/resize-observer-v2.js";
6
6
  import { RichLineClamp } from "../clamp/index.js";
7
7
  import Tooltip from "../tooltip/index.js";
8
- import { computed, createBlock, createElementBlock, createVNode, defineComponent, mergeProps, nextTick, normalizeClass, normalizeStyle, onMounted, onUpdated, openBlock, renderSlot, resolveDynamicComponent, shallowRef, unref, watch, withCtx } from "vue";
8
+ import { computed, createBlock, createElementBlock, defineComponent, mergeProps, nextTick, normalizeClass, normalizeStyle, onMounted, onUpdated, openBlock, renderSlot, resolveDynamicComponent, shallowRef, unref, watch, withCtx } from "vue";
9
9
  //#region components/ellipsis/ellipsis.vue?vue&type=script&setup=true&lang.ts
10
10
  var _excluded = ["disabled"];
11
+ var INTERACTIVE_SELECTOR = "a,button,input,textarea,select,[role=\"button\"]";
11
12
  var ellipsis_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent(_objectSpread2(_objectSpread2({}, {
12
13
  name: "Ellipsis",
13
14
  inheritAttrs: false
@@ -119,11 +120,33 @@ var ellipsis_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
119
120
  if (triggerElement.clientWidth !== measurementWidth.value) measurementWidth.value = triggerElement.clientWidth;
120
121
  if (nextPadding !== measurementPadding.value) measurementPadding.value = nextPadding;
121
122
  }
123
+ let measurementSettled = false;
124
+ let measurementWaiters = [];
125
+ function flushMeasurementWaiters() {
126
+ const waiters = measurementWaiters;
127
+ measurementWaiters = [];
128
+ waiters.forEach((resolve) => resolve());
129
+ }
122
130
  function handleClampChange(clamped) {
123
131
  isEllipsis.value = clamped;
132
+ if (!measurementSettled && measurementHtml.value !== "") {
133
+ measurementSettled = true;
134
+ flushMeasurementWaiters();
135
+ }
136
+ }
137
+ function waitForMeasurement() {
138
+ if (measurementSettled) return Promise.resolve();
139
+ return new Promise((resolve) => {
140
+ measurementWaiters.push(resolve);
141
+ });
124
142
  }
125
- function handleClick() {
126
- if (props.expandTrigger === "click" && (isEllipsis.value || expanded.value)) expanded.value = !expanded.value;
143
+ function handleClick(event) {
144
+ if (props.expandTrigger !== "click") return;
145
+ const triggerElement = triggerRef.value;
146
+ const target = event === null || event === void 0 ? void 0 : event.target;
147
+ const interactiveElement = target instanceof Element ? target.closest(INTERACTIVE_SELECTOR) : null;
148
+ if (interactiveElement && triggerElement && interactiveElement !== triggerElement && triggerElement.contains(interactiveElement)) return;
149
+ if (isEllipsis.value || expanded.value) expanded.value = !expanded.value;
127
150
  }
128
151
  function handleKeydown(event) {
129
152
  if (isExpandable.value && (event.key === "Enter" || event.key === " ")) {
@@ -135,10 +158,14 @@ var ellipsis_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
135
158
  expanded.value = false;
136
159
  nextTick(syncMeasurement);
137
160
  });
138
- onMounted(() => void nextTick(syncMeasurement));
161
+ onMounted(() => {
162
+ nextTick(syncMeasurement);
163
+ window.setTimeout(flushMeasurementWaiters, 200);
164
+ });
139
165
  onUpdated(() => void nextTick(syncMeasurement));
140
166
  __expose({
141
167
  triggerRef,
168
+ waitForMeasurement,
142
169
  get triggerElement() {
143
170
  return triggerRef.value;
144
171
  }
@@ -164,7 +191,8 @@ var ellipsis_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
164
191
  default: withCtx(() => [isLineClamp.value ? renderSlot(_ctx.$slots, "default", {}, void 0, void 0, 0) : (openBlock(), createElementBlock("span", {
165
192
  key: 1,
166
193
  class: normalizeClass(`${unref(prefixCls)}-content`)
167
- }, [renderSlot(_ctx.$slots, "default")], 2)), createVNode(unref(RichLineClamp), {
194
+ }, [renderSlot(_ctx.$slots, "default")], 2)), (openBlock(), createBlock(unref(RichLineClamp), {
195
+ key: measurementHtml.value,
168
196
  "data-ellipsis-measure": "",
169
197
  "aria-hidden": "true",
170
198
  html: measurementHtml.value,
@@ -175,7 +203,7 @@ var ellipsis_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
175
203
  "html",
176
204
  "max-lines",
177
205
  "style"
178
- ])]),
206
+ ]))]),
179
207
  _: 3
180
208
  }, 16, [
181
209
  "class",
@@ -204,7 +232,8 @@ var ellipsis_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
204
232
  default: withCtx(() => [isLineClamp.value ? renderSlot(_ctx.$slots, "default", {}, void 0, void 0, 0) : (openBlock(), createElementBlock("span", {
205
233
  key: 1,
206
234
  class: normalizeClass(`${unref(prefixCls)}-content`)
207
- }, [renderSlot(_ctx.$slots, "default")], 2)), createVNode(unref(RichLineClamp), {
235
+ }, [renderSlot(_ctx.$slots, "default")], 2)), (openBlock(), createBlock(unref(RichLineClamp), {
236
+ key: measurementHtml.value,
208
237
  "data-ellipsis-measure": "",
209
238
  "aria-hidden": "true",
210
239
  html: measurementHtml.value,
@@ -215,7 +244,7 @@ var ellipsis_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
215
244
  "html",
216
245
  "max-lines",
217
246
  "style"
218
- ])]),
247
+ ]))]),
219
248
  _: 3
220
249
  }, 16, [
221
250
  "class",
@@ -20,6 +20,7 @@ declare const Ellipsis: {
20
20
  };
21
21
  }>> & Readonly<{}>, {
22
22
  triggerRef: import("vue").ShallowRef<HTMLElement | undefined, HTMLElement | undefined>;
23
+ waitForMeasurement: () => Promise<void>;
23
24
  readonly triggerElement: HTMLElement | undefined;
24
25
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, import("vue").PublicProps, {
25
26
  tooltip: boolean | EllipsisTooltipProps;
@@ -47,6 +48,7 @@ declare const Ellipsis: {
47
48
  };
48
49
  }>> & Readonly<{}>, {
49
50
  triggerRef: import("vue").ShallowRef<HTMLElement | undefined, HTMLElement | undefined>;
51
+ waitForMeasurement: () => Promise<void>;
50
52
  readonly triggerElement: HTMLElement | undefined;
51
53
  }, {}, {}, {}, {
52
54
  tooltip: boolean | EllipsisTooltipProps;
@@ -71,6 +73,7 @@ declare const Ellipsis: {
71
73
  };
72
74
  }>> & Readonly<{}>, {
73
75
  triggerRef: import("vue").ShallowRef<HTMLElement | undefined, HTMLElement | undefined>;
76
+ waitForMeasurement: () => Promise<void>;
74
77
  readonly triggerElement: HTMLElement | undefined;
75
78
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {
76
79
  tooltip: boolean | EllipsisTooltipProps;
@@ -83,11 +83,14 @@ var performant_ellipsis_vue_vue_type_script_setup_true_lang_default = /*@__PURE_
83
83
  };
84
84
  const activate = function() {
85
85
  var _ref = _asyncToGenerator(function* (interactionType) {
86
+ var _ellipsisRef$value2, _ellipsisRef$value2$w;
86
87
  if (activated.value) return;
87
88
  activated.value = true;
88
89
  yield nextTick();
89
90
  yield nextTick();
90
91
  yield new Promise((resolve) => requestAnimationFrame(() => resolve()));
92
+ const measurement = (_ellipsisRef$value2 = ellipsisRef.value) === null || _ellipsisRef$value2 === void 0 || (_ellipsisRef$value2$w = _ellipsisRef$value2.waitForMeasurement) === null || _ellipsisRef$value2$w === void 0 ? void 0 : _ellipsisRef$value2$w.call(_ellipsisRef$value2);
93
+ if (measurement) yield measurement;
91
94
  replayInteraction(interactionType);
92
95
  });
93
96
  return function activate(_x) {
@@ -26,10 +26,7 @@ var empty_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
26
26
  const configCtx = inject(configProviderInjectionKey, void 0);
27
27
  const getCustomEmpty = () => configCtx === null || configCtx === void 0 ? void 0 : configCtx.slots.empty;
28
28
  return (_ctx, _cache) => {
29
- return !__props.inConfigProvider && getCustomEmpty() && !slots.image && !__props.imgSrc && !__props.description ? (openBlock(), createBlock(resolveDynamicComponent(getCustomEmpty()), {
30
- key: 0,
31
- component: "empty"
32
- })) : (openBlock(), createElementBlock("div", mergeProps({
29
+ return !__props.inConfigProvider && getCustomEmpty() && !slots.image && !__props.imgSrc && !__props.description ? (openBlock(), createBlock(resolveDynamicComponent(getCustomEmpty()), mergeProps({ key: 0 }, _ctx.$attrs, { component: "empty" }), null, 16)) : (openBlock(), createElementBlock("div", mergeProps({
33
30
  key: 1,
34
31
  class: unref(prefixCls)
35
32
  }, _ctx.$attrs), [createElementVNode("div", { class: normalizeClass(`${unref(prefixCls)}-image`) }, [renderSlot(_ctx.$slots, "image", {}, () => [__props.imgSrc ? (openBlock(), createElementBlock("img", {
@@ -66,9 +66,6 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
66
66
  close: typeof close;
67
67
  onLoad: typeof onPreviewLoad;
68
68
  onError: typeof onLoadError;
69
- onImageLoad: typeof onPreviewLoad;
70
- onPdfLoad: typeof onPreviewLoad;
71
- onLoadError: typeof onLoadError;
72
69
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
73
70
  close: () => any;
74
71
  "update:visible": (_visible: boolean) => any;
@@ -345,7 +345,7 @@ var file_previewer_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ d
345
345
  }
346
346
  }
347
347
  function close() {
348
- if (fullscreen.value && !mergedVisible.value) return;
348
+ if (!mergedVisible.value) return;
349
349
  emit("close");
350
350
  setVisible(false);
351
351
  }
@@ -453,10 +453,7 @@ var file_previewer_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ d
453
453
  __expose({
454
454
  close,
455
455
  onLoad: onPreviewLoad,
456
- onError: onLoadError,
457
- onImageLoad: onPreviewLoad,
458
- onPdfLoad: onPreviewLoad,
459
- onLoadError
456
+ onError: onLoadError
460
457
  });
461
458
  return (_ctx, _cache) => {
462
459
  return useImagePreview.value ? (openBlock(), createBlock(unref(Image), mergeProps({ key: currentSrc.value + "image" }, mergedImageProps.value, {
@@ -545,7 +542,7 @@ var file_previewer_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ d
545
542
  key: 3,
546
543
  class: normalizeClass(`${unref(prefixCls)}-error`),
547
544
  role: "alert"
548
- }, "文件预览加载失败", 2)) : createCommentVNode("", true)
545
+ }, toDisplayString(unref(t)("filePreview.loadFailed")), 3)) : createCommentVNode("", true)
549
546
  ], 46, _hoisted_1)) : createCommentVNode("", true)], 8, ["to", "disabled"]));
550
547
  };
551
548
  }
@@ -103,9 +103,6 @@ declare const FilePreviewer: {
103
103
  close: () => void;
104
104
  onLoad: () => void;
105
105
  onError: () => void;
106
- onImageLoad: () => void;
107
- onPdfLoad: () => void;
108
- onLoadError: () => void;
109
106
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
110
107
  close: () => any;
111
108
  "update:visible": (_visible: boolean) => any;
@@ -227,9 +224,6 @@ declare const FilePreviewer: {
227
224
  close: () => void;
228
225
  onLoad: () => void;
229
226
  onError: () => void;
230
- onImageLoad: () => void;
231
- onPdfLoad: () => void;
232
- onLoadError: () => void;
233
227
  }, {}, {}, {}, {
234
228
  type: import("./types").FilePreviewerType;
235
229
  visible: boolean;
@@ -302,9 +296,6 @@ declare const FilePreviewer: {
302
296
  close: () => void;
303
297
  onLoad: () => void;
304
298
  onError: () => void;
305
- onImageLoad: () => void;
306
- onPdfLoad: () => void;
307
- onLoadError: () => void;
308
299
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
309
300
  close: () => any;
310
301
  "update:visible": (_visible: boolean) => any;
@@ -15,7 +15,6 @@ export interface FormContext {
15
15
  size: Size;
16
16
  rules?: Record<string, FieldRule | FieldRule[]>;
17
17
  fields: FormItemInfo[];
18
- touchedFields: FormItemInfo[];
19
18
  addField: (field: FormItemInfo) => void;
20
19
  removeField: (field: FormItemInfo) => void;
21
20
  validateField: (field: string | string[], callback?: (errors: undefined | Record<string, ValidatedError>) => void) => Promise<undefined | Record<string, ValidatedError>>;
@@ -42,7 +41,7 @@ export interface FormItemInfo {
42
41
  disabled: boolean;
43
42
  error: boolean;
44
43
  labelWidth?: number;
45
- validate: () => Promise<undefined | Record<string, ValidatedError>>;
44
+ validate: () => Promise<ValidatedError | undefined>;
46
45
  clearValidate: () => void;
47
46
  resetField: () => void;
48
47
  setField: (data: FieldData) => void;
@@ -326,12 +326,12 @@ var form_item_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ define
326
326
  return new Promise((resolve) => {
327
327
  schema.validate({ [_field]: _value }, (err) => {
328
328
  var _err$_field$message;
329
- const isError = Boolean(err === null || err === void 0 ? void 0 : err[_field]);
329
+ const hasError = Boolean(err === null || err === void 0 ? void 0 : err[_field]);
330
330
  updateValidateState(_field, {
331
- status: isError ? "error" : "",
331
+ status: hasError ? "error" : "",
332
332
  message: (_err$_field$message = err === null || err === void 0 ? void 0 : err[_field].message) !== null && _err$_field$message !== void 0 ? _err$_field$message : ""
333
333
  });
334
- resolve(isError ? {
334
+ resolve(hasError ? {
335
335
  label: props.label,
336
336
  field: field.value,
337
337
  value: err[_field].value,
@@ -443,7 +443,7 @@ var form_item_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ define
443
443
  [`${prefixCls}-label-col-left`]: formCtx.labelAlign === "left",
444
444
  [`${prefixCls}-label-col-flex`]: formCtx.autoLabelWidth || props.labelColFlex
445
445
  }]);
446
- const wrapperColCls = computed(() => [`${prefixCls}-wrapper-col`, { [`${prefixCls}-wrapper-col-flex`]: !mergedWrapperCol.value }]);
446
+ const wrapperColCls = `${prefixCls}-wrapper-col`;
447
447
  return (_ctx, _cache) => {
448
448
  var _ctx$$slots$help;
449
449
  return __props.noStyle ? renderSlot(_ctx.$slots, "default", {}, void 0, void 0, 0) : (openBlock(), createBlock(unref(grid_row_default), mergeProps({
@@ -477,7 +477,7 @@ var form_item_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ define
477
477
  ])]),
478
478
  _: 3
479
479
  }, 16, ["class", "style"])) : createCommentVNode("", true), createVNode(unref(grid_col_default), mergeProps({
480
- class: wrapperColCls.value,
480
+ class: wrapperColCls,
481
481
  style: mergedWrapperStyle.value
482
482
  }, mergedWrapperCol.value), {
483
483
  default: withCtx(() => [
@@ -501,7 +501,7 @@ var form_item_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ define
501
501
  }, [renderSlot(_ctx.$slots, "extra", {}, () => [createTextVNode(toDisplayString(__props.extra), 1)])], 2)) : createCommentVNode("", true)
502
502
  ]),
503
503
  _: 3
504
- }, 16, ["class", "style"])]),
504
+ }, 16, ["style"])]),
505
505
  _: 3
506
506
  }, 16, [
507
507
  "class",
@@ -62,7 +62,7 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
62
62
  type: StringConstructor;
63
63
  };
64
64
  scrollToFirstError: {
65
- type: BooleanConstructor;
65
+ type: PropType<boolean | ScrollIntoViewOptions>;
66
66
  default: boolean;
67
67
  };
68
68
  }>, {
@@ -129,7 +129,7 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
129
129
  type: StringConstructor;
130
130
  };
131
131
  scrollToFirstError: {
132
- type: BooleanConstructor;
132
+ type: PropType<boolean | ScrollIntoViewOptions>;
133
133
  default: boolean;
134
134
  };
135
135
  }>> & Readonly<{
@@ -149,7 +149,7 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
149
149
  wrapperColProps: Record<string, any>;
150
150
  labelAlign: "left" | "right";
151
151
  autoLabelWidth: boolean;
152
- scrollToFirstError: boolean;
152
+ scrollToFirstError: boolean | ScrollIntoViewOptions;
153
153
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
154
154
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
155
155
  declare const _default: typeof __VLS_export;
@@ -95,12 +95,12 @@ var form_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCompo
95
95
  */
96
96
  id: { type: String },
97
97
  /**
98
- * @zh 验证失败后滚动到第一个错误字段
99
- * @en Scroll to the first error field after verification fails
98
+ * @zh 验证失败后滚动到第一个错误字段,支持传入 scrollIntoView 的选项对象
99
+ * @en Scroll to the first error field after verification fails; accepts a scrollIntoView options object
100
100
  * @version 2.51.0
101
101
  */
102
102
  scrollToFirstError: {
103
- type: Boolean,
103
+ type: [Boolean, Object],
104
104
  default: false
105
105
  }
106
106
  },
@@ -118,7 +118,6 @@ var form_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCompo
118
118
  const { mergedSize } = useSize(size);
119
119
  const autoLabelWidth = computed(() => props.layout === "horizontal" && props.autoLabelWidth);
120
120
  const fields = [];
121
- const touchedFields = [];
122
121
  const labelWidth = reactive({});
123
122
  const maxLabelWidth = computed(() => Math.max(...Object.values(labelWidth)));
124
123
  const addField = (formItemInfo) => {
@@ -152,10 +151,10 @@ var form_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCompo
152
151
  };
153
152
  const scrollToField = (field, options) => {
154
153
  const fieldNode = (formRef.value || document.body).querySelector(`#${getFormElementId(props.id, field)}`);
155
- if (fieldNode) fieldNode.scrollIntoView({
154
+ if (fieldNode) fieldNode.scrollIntoView(_objectSpread2({
156
155
  behavior: "smooth",
157
156
  block: "nearest"
158
- });
157
+ }, options));
159
158
  };
160
159
  const scrollToFirstError = (field) => {
161
160
  const options = !isBoolean(props.scrollToFirstError) ? props.scrollToFirstError : void 0;
@@ -237,7 +236,6 @@ var form_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCompo
237
236
  size: mergedSize,
238
237
  rules,
239
238
  fields,
240
- touchedFields,
241
239
  addField,
242
240
  removeField,
243
241
  validateField,
@@ -50,7 +50,7 @@ declare const Form: {
50
50
  type: StringConstructor;
51
51
  };
52
52
  scrollToFirstError: {
53
- type: BooleanConstructor;
53
+ type: import("vue").PropType<boolean | ScrollIntoViewOptions>;
54
54
  default: boolean;
55
55
  };
56
56
  }>> & Readonly<{
@@ -87,7 +87,7 @@ declare const Form: {
87
87
  wrapperColProps: Record<string, any>;
88
88
  labelAlign: "left" | "right";
89
89
  autoLabelWidth: boolean;
90
- scrollToFirstError: boolean;
90
+ scrollToFirstError: boolean | ScrollIntoViewOptions;
91
91
  }, true, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
92
92
  P: {};
93
93
  B: {};
@@ -142,7 +142,7 @@ declare const Form: {
142
142
  type: StringConstructor;
143
143
  };
144
144
  scrollToFirstError: {
145
- type: BooleanConstructor;
145
+ type: import("vue").PropType<boolean | ScrollIntoViewOptions>;
146
146
  default: boolean;
147
147
  };
148
148
  }>> & Readonly<{
@@ -169,7 +169,7 @@ declare const Form: {
169
169
  wrapperColProps: Record<string, any>;
170
170
  labelAlign: "left" | "right";
171
171
  autoLabelWidth: boolean;
172
- scrollToFirstError: boolean;
172
+ scrollToFirstError: boolean | ScrollIntoViewOptions;
173
173
  }>;
174
174
  __isFragment?: never;
175
175
  __isTeleport?: never;
@@ -221,7 +221,7 @@ declare const Form: {
221
221
  type: StringConstructor;
222
222
  };
223
223
  scrollToFirstError: {
224
- type: BooleanConstructor;
224
+ type: import("vue").PropType<boolean | ScrollIntoViewOptions>;
225
225
  default: boolean;
226
226
  };
227
227
  }>> & Readonly<{
@@ -258,7 +258,7 @@ declare const Form: {
258
258
  wrapperColProps: Record<string, any>;
259
259
  labelAlign: "left" | "right";
260
260
  autoLabelWidth: boolean;
261
- scrollToFirstError: boolean;
261
+ scrollToFirstError: boolean | ScrollIntoViewOptions;
262
262
  }, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => {
263
263
  $slots: {
264
264
  default?: (props: {}) => any;
@@ -1,6 +1,6 @@
1
1
  import _objectSpread2 from "../_virtual/_@oxc-project_runtime@0.146.0/helpers/esm/objectSpread2.js";
2
2
  import { getPrefixCls } from "../_utils/global-config.js";
3
- import { isNumber, isObject, isString } from "../_utils/is.js";
3
+ import { isNull, isNumber, isObject, isString, isUndefined } from "../_utils/is.js";
4
4
  import pick from "../_utils/pick.js";
5
5
  import { responsiveArray } from "../_utils/responsive-observe.js";
6
6
  import { RowContextInjectionKey } from "./context.js";
@@ -78,6 +78,7 @@ var grid_col_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
78
78
  const props = __props;
79
79
  const prefixCls = getPrefixCls("col");
80
80
  const rowContext = inject(RowContextInjectionKey, {});
81
+ const hasBreakpointValue = (value) => !isUndefined(value) && !isNull(value);
81
82
  const flexValue = computed(() => getAllowableFlexValue(props.flex));
82
83
  const mergeClassName = computed(() => {
83
84
  const { div } = rowContext;
@@ -85,7 +86,7 @@ var grid_col_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
85
86
  const result = {
86
87
  [`${prefixCls}`]: !div,
87
88
  [`${prefixCls}-order-${order}`]: order,
88
- [`${prefixCls}-${span}`]: !div && !xs && !sm && !md && !lg && !xl && !xxl,
89
+ [`${prefixCls}-${span}`]: !div && !hasBreakpointValue(xs) && !hasBreakpointValue(sm) && !hasBreakpointValue(md) && !hasBreakpointValue(lg) && !hasBreakpointValue(xl) && !hasBreakpointValue(xxl),
89
90
  [`${prefixCls}-offset-${offset}`]: offset && offset > 0
90
91
  };
91
92
  const screenList = {
@@ -98,8 +99,8 @@ var grid_col_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineC
98
99
  };
99
100
  Object.keys(screenList).forEach((screen) => {
100
101
  const screenValue = screenList[screen];
101
- if (screenValue && isNumber(screenValue)) result[`${prefixCls}-${screen}-${screenValue}`] = true;
102
- else if (screenValue && isObject(screenValue)) {
102
+ if (hasBreakpointValue(screenValue) && isNumber(screenValue)) result[`${prefixCls}-${screen}-${screenValue}`] = true;
103
+ else if (hasBreakpointValue(screenValue) && isObject(screenValue)) {
103
104
  result[`${prefixCls}-${screen}-${screenValue.span}`] = screenValue.span;
104
105
  result[`${prefixCls}-${screen}-offset-${screenValue.offset}`] = screenValue.offset;
105
106
  result[`${prefixCls}-${screen}-order-${screenValue.order}`] = screenValue.order;
@@ -1,19 +1,27 @@
1
1
  import { isObject } from "../../_utils/is.js";
2
- import responsiveObserve, { responsiveArray } from "../../_utils/responsive-observe.js";
3
- import { computed, onMounted, onUnmounted, ref } from "vue";
2
+ import responsiveObserve, { responsiveArray, responsiveMap } from "../../_utils/responsive-observe.js";
3
+ import { computed, onMounted, onUnmounted, ref, watch } from "vue";
4
4
  //#region components/grid/hook/use-responsive-state.ts
5
5
  function isResponsiveValue(val) {
6
6
  return isObject(val);
7
7
  }
8
- function useResponsiveState(val, defaultVal, fallbackToXs = false) {
9
- const screens = ref({
8
+ function getScreenSnapshot() {
9
+ if (typeof window === "undefined" || typeof window.matchMedia !== "function") return {
10
10
  xs: true,
11
11
  sm: true,
12
12
  md: true,
13
13
  lg: true,
14
14
  xl: true,
15
15
  xxl: true
16
+ };
17
+ const snapshot = {};
18
+ Object.keys(responsiveMap).forEach((breakpoint) => {
19
+ snapshot[breakpoint] = window.matchMedia(responsiveMap[breakpoint]).matches;
16
20
  });
21
+ return snapshot;
22
+ }
23
+ function useResponsiveState(val, defaultVal, fallbackToXs = false) {
24
+ const screens = ref(getScreenSnapshot());
17
25
  const result = computed(() => {
18
26
  let res = defaultVal;
19
27
  if (isResponsiveValue(val.value)) for (let i = 0; i < responsiveArray.length; i++) {
@@ -35,6 +43,9 @@ function useResponsiveState(val, defaultVal, fallbackToXs = false) {
35
43
  onUnmounted(() => {
36
44
  if (subscribeToken) responsiveObserve.unsubscribe(subscribeToken);
37
45
  });
46
+ watch(() => isResponsiveValue(val.value), (isResponsive) => {
47
+ if (isResponsive) screens.value = getScreenSnapshot();
48
+ });
38
49
  return result;
39
50
  }
40
51
  //#endregion
@@ -1,11 +1,12 @@
1
- import { isNumber, isObject } from "../../_utils/is.js";
1
+ import { isNull, isNumber, isObject, isUndefined } from "../../_utils/is.js";
2
2
  import { responsiveArray } from "../../_utils/responsive-observe.js";
3
3
  import { computed } from "vue";
4
4
  //#region components/grid/hook/use-responsive-value.ts
5
+ var hasBreakpointValue = (value) => !isUndefined(value) && !isNull(value);
5
6
  function useResponsiveValue(props) {
6
7
  return computed(() => {
7
8
  const { val, key, xs, sm, md, lg, xl, xxl } = props.value;
8
- if (!xs && !sm && !md && !lg && !xl && !xxl) return val;
9
+ if (!hasBreakpointValue(xs) && !hasBreakpointValue(sm) && !hasBreakpointValue(md) && !hasBreakpointValue(lg) && !hasBreakpointValue(xl) && !hasBreakpointValue(xxl)) return val;
9
10
  const result = {};
10
11
  responsiveArray.forEach((breakpoint) => {
11
12
  const config = props.value[breakpoint];
@@ -30,7 +30,10 @@ var icon_arrow_up_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ de
30
30
  const innerStyle = computed(() => {
31
31
  const styles = {};
32
32
  if (__props.size) styles.fontSize = isNumber(__props.size) ? `${__props.size}px` : __props.size;
33
- if (__props.rotate) styles.transform = `rotate(${__props.rotate}deg)`;
33
+ if (__props.rotate) {
34
+ styles.transform = `rotate(${__props.rotate}deg)`;
35
+ styles["--icon-rotate"] = `${__props.rotate}deg`;
36
+ }
34
37
  return styles;
35
38
  });
36
39
  const onClick = (ev) => {
@@ -30,7 +30,10 @@ var icon_calendar_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ de
30
30
  const innerStyle = computed(() => {
31
31
  const styles = {};
32
32
  if (__props.size) styles.fontSize = isNumber(__props.size) ? `${__props.size}px` : __props.size;
33
- if (__props.rotate) styles.transform = `rotate(${__props.rotate}deg)`;
33
+ if (__props.rotate) {
34
+ styles.transform = `rotate(${__props.rotate}deg)`;
35
+ styles["--icon-rotate"] = `${__props.rotate}deg`;
36
+ }
34
37
  return styles;
35
38
  });
36
39
  const onClick = (ev) => {
@@ -30,7 +30,10 @@ var icon_caret_down_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
30
30
  const innerStyle = computed(() => {
31
31
  const styles = {};
32
32
  if (__props.size) styles.fontSize = isNumber(__props.size) ? `${__props.size}px` : __props.size;
33
- if (__props.rotate) styles.transform = `rotate(${__props.rotate}deg)`;
33
+ if (__props.rotate) {
34
+ styles.transform = `rotate(${__props.rotate}deg)`;
35
+ styles["--icon-rotate"] = `${__props.rotate}deg`;
36
+ }
34
37
  return styles;
35
38
  });
36
39
  const onClick = (ev) => {
@@ -30,7 +30,10 @@ var icon_caret_left_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
30
30
  const innerStyle = computed(() => {
31
31
  const styles = {};
32
32
  if (__props.size) styles.fontSize = isNumber(__props.size) ? `${__props.size}px` : __props.size;
33
- if (__props.rotate) styles.transform = `rotate(${__props.rotate}deg)`;
33
+ if (__props.rotate) {
34
+ styles.transform = `rotate(${__props.rotate}deg)`;
35
+ styles["--icon-rotate"] = `${__props.rotate}deg`;
36
+ }
34
37
  return styles;
35
38
  });
36
39
  const onClick = (ev) => {
@@ -30,7 +30,10 @@ var icon_caret_right_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
30
30
  const innerStyle = computed(() => {
31
31
  const styles = {};
32
32
  if (__props.size) styles.fontSize = isNumber(__props.size) ? `${__props.size}px` : __props.size;
33
- if (__props.rotate) styles.transform = `rotate(${__props.rotate}deg)`;
33
+ if (__props.rotate) {
34
+ styles.transform = `rotate(${__props.rotate}deg)`;
35
+ styles["--icon-rotate"] = `${__props.rotate}deg`;
36
+ }
34
37
  return styles;
35
38
  });
36
39
  const onClick = (ev) => {
@@ -30,7 +30,10 @@ var icon_caret_up_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ de
30
30
  const innerStyle = computed(() => {
31
31
  const styles = {};
32
32
  if (__props.size) styles.fontSize = isNumber(__props.size) ? `${__props.size}px` : __props.size;
33
- if (__props.rotate) styles.transform = `rotate(${__props.rotate}deg)`;
33
+ if (__props.rotate) {
34
+ styles.transform = `rotate(${__props.rotate}deg)`;
35
+ styles["--icon-rotate"] = `${__props.rotate}deg`;
36
+ }
34
37
  return styles;
35
38
  });
36
39
  const onClick = (ev) => {
@@ -30,7 +30,10 @@ var icon_check_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
30
30
  const innerStyle = computed(() => {
31
31
  const styles = {};
32
32
  if (__props.size) styles.fontSize = isNumber(__props.size) ? `${__props.size}px` : __props.size;
33
- if (__props.rotate) styles.transform = `rotate(${__props.rotate}deg)`;
33
+ if (__props.rotate) {
34
+ styles.transform = `rotate(${__props.rotate}deg)`;
35
+ styles["--icon-rotate"] = `${__props.rotate}deg`;
36
+ }
34
37
  return styles;
35
38
  });
36
39
  const onClick = (ev) => {
@@ -30,7 +30,10 @@ var icon_check_circle_fill_vue_vue_type_script_setup_true_lang_default = /*@__PU
30
30
  const innerStyle = computed(() => {
31
31
  const styles = {};
32
32
  if (__props.size) styles.fontSize = isNumber(__props.size) ? `${__props.size}px` : __props.size;
33
- if (__props.rotate) styles.transform = `rotate(${__props.rotate}deg)`;
33
+ if (__props.rotate) {
34
+ styles.transform = `rotate(${__props.rotate}deg)`;
35
+ styles["--icon-rotate"] = `${__props.rotate}deg`;
36
+ }
34
37
  return styles;
35
38
  });
36
39
  const onClick = (ev) => {
@@ -30,7 +30,10 @@ var icon_clock_circle_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*
30
30
  const innerStyle = computed(() => {
31
31
  const styles = {};
32
32
  if (__props.size) styles.fontSize = isNumber(__props.size) ? `${__props.size}px` : __props.size;
33
- if (__props.rotate) styles.transform = `rotate(${__props.rotate}deg)`;
33
+ if (__props.rotate) {
34
+ styles.transform = `rotate(${__props.rotate}deg)`;
35
+ styles["--icon-rotate"] = `${__props.rotate}deg`;
36
+ }
34
37
  return styles;
35
38
  });
36
39
  const onClick = (ev) => {
@@ -30,7 +30,10 @@ var icon_close_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
30
30
  const innerStyle = computed(() => {
31
31
  const styles = {};
32
32
  if (__props.size) styles.fontSize = isNumber(__props.size) ? `${__props.size}px` : __props.size;
33
- if (__props.rotate) styles.transform = `rotate(${__props.rotate}deg)`;
33
+ if (__props.rotate) {
34
+ styles.transform = `rotate(${__props.rotate}deg)`;
35
+ styles["--icon-rotate"] = `${__props.rotate}deg`;
36
+ }
34
37
  return styles;
35
38
  });
36
39
  const onClick = (ev) => {