@sdata/web-vue 1.18.0 → 2.1.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 (683) hide show
  1. package/README.md +3 -7
  2. package/dist/sd.css +4083 -2512
  3. package/dist/sd.min.css +1 -1
  4. package/es/_components/feedback-icon.js +1 -1
  5. package/es/_components/icon-hover.js +1 -1
  6. package/es/_components/icon-hover.vue.d.ts +1 -1
  7. package/es/_components/input-label/input-label.d.ts +1 -1
  8. package/es/_components/input-label/style/index.css +27 -27
  9. package/es/_components/picker/input-range.js +1 -1
  10. package/es/_components/picker/input-range.vue.d.ts +2 -2
  11. package/es/_components/picker/input.js +1 -1
  12. package/es/_components/picker/input.vue.d.ts +2 -2
  13. package/es/_components/resize-trigger.js +1 -1
  14. package/es/_components/select-view/select-view.d.ts +3 -3
  15. package/es/_components/select-view/style/index.css +199 -199
  16. package/es/_components/transition/expand-transition.js +1 -1
  17. package/es/_components/virtual-list/virtual-list.js +1 -1
  18. package/es/_components/virtual-list/virtual-list.vue.d.ts +8 -5
  19. package/es/_components/virtual-list/virtual-list.vue_vue_type_script_lang.js +9 -16
  20. package/es/_hooks/use-form-item.d.ts +1 -1
  21. package/es/_hooks/use-scrollbar.d.ts +2 -3
  22. package/es/_hooks/use-scrollbar.js +4 -8
  23. package/es/_hooks/use-size.d.ts +1 -1
  24. package/es/_utils/color.d.ts +9 -0
  25. package/es/_utils/color.js +38 -2
  26. package/es/_utils/date.d.ts +1 -2
  27. package/es/_utils/date.js +74 -25
  28. package/es/_utils/global-config.d.ts +4 -0
  29. package/es/_utils/global-config.js +10 -2
  30. package/es/_utils/omit.js +1 -1
  31. package/es/_utils/responsive-observe.js +1 -1
  32. package/es/_utils/virtual-dropdown.js +1 -1
  33. package/es/_virtual/{_@oxc-project_runtime@0.130.0/helpers → _@oxc-project_runtime@0.133.0/helpers/esm}/asyncToGenerator.js +1 -1
  34. package/es/_virtual/{_@oxc-project_runtime@0.130.0/helpers → _@oxc-project_runtime@0.133.0/helpers/esm}/defineProperty.js +1 -1
  35. package/es/_virtual/{_@oxc-project_runtime@0.130.0/helpers → _@oxc-project_runtime@0.133.0/helpers/esm}/extends.js +1 -1
  36. package/es/_virtual/{_@oxc-project_runtime@0.130.0/helpers → _@oxc-project_runtime@0.133.0/helpers/esm}/objectDestructuringEmpty.js +1 -1
  37. package/es/_virtual/{_@oxc-project_runtime@0.130.0/helpers → _@oxc-project_runtime@0.133.0/helpers/esm}/objectSpread2.js +1 -1
  38. package/es/_virtual/{_@oxc-project_runtime@0.130.0/helpers → _@oxc-project_runtime@0.133.0/helpers/esm}/objectWithoutProperties.js +1 -1
  39. package/es/_virtual/{_@oxc-project_runtime@0.130.0/helpers → _@oxc-project_runtime@0.133.0/helpers/esm}/objectWithoutPropertiesLoose.js +1 -1
  40. package/es/_virtual/{_@oxc-project_runtime@0.130.0/helpers → _@oxc-project_runtime@0.133.0/helpers/esm}/toPrimitive.js +1 -1
  41. package/es/_virtual/{_@oxc-project_runtime@0.130.0/helpers → _@oxc-project_runtime@0.133.0/helpers/esm}/toPropertyKey.js +1 -1
  42. package/es/_virtual/{_@oxc-project_runtime@0.130.0/helpers → _@oxc-project_runtime@0.133.0/helpers/esm}/typeof.js +1 -1
  43. package/es/affix/affix.js +1 -1
  44. package/es/affix/affix.vue_vue_type_script_lang.js +1 -1
  45. package/es/alert/alert.js +1 -1
  46. package/es/alert/alert.vue.d.ts +1 -1
  47. package/es/alert/index.d.ts +2 -2
  48. package/es/alert/style/index.css +28 -28
  49. package/es/anchor/anchor-link.js +1 -1
  50. package/es/anchor/anchor.js +1 -1
  51. package/es/anchor/style/index.css +9 -9
  52. package/es/auto-complete/auto-complete.d.ts +3 -3
  53. package/es/auto-complete/auto-complete.js +23 -9
  54. package/es/auto-complete/index.d.ts +9 -9
  55. package/es/auto-complete/style/index.css +3 -3
  56. package/es/avatar/avatar.js +1 -1
  57. package/es/avatar/avatar.vue_vue_type_script_lang.js +1 -1
  58. package/es/avatar/style/index.css +15 -15
  59. package/es/back-top/back-top.js +1 -1
  60. package/es/back-top/style/index.css +4 -4
  61. package/es/badge/badge.d.ts +1 -1
  62. package/es/badge/badge.js +1 -1
  63. package/es/badge/index.d.ts +3 -3
  64. package/es/badge/style/index.css +25 -25
  65. package/es/breadcrumb/style/index.css +12 -12
  66. package/es/button/button-group.js +1 -1
  67. package/es/button/button.js +1 -1
  68. package/es/button/button.vue.d.ts +2 -2
  69. package/es/button/index.d.ts +6 -6
  70. package/es/button/style/index.css +37 -37
  71. package/es/calendar/components/body.js +5 -0
  72. package/es/calendar/components/body.vue.d.ts +100 -0
  73. package/es/calendar/components/body.vue_vue_type_script_setup_true_lang.js +158 -0
  74. package/es/calendar/components/cell.js +5 -0
  75. package/es/calendar/components/cell.vue.d.ts +220 -0
  76. package/es/calendar/components/cell.vue_vue_type_script_setup_true_lang.js +813 -0
  77. package/es/calendar/components/event.js +5 -0
  78. package/es/calendar/components/event.vue.d.ts +73 -0
  79. package/es/calendar/components/event.vue_vue_type_script_setup_true_lang.js +290 -0
  80. package/es/calendar/components/header.js +5 -0
  81. package/es/calendar/components/header.vue.d.ts +34 -0
  82. package/es/calendar/components/header.vue_vue_type_script_setup_true_lang.js +84 -0
  83. package/es/calendar/components/headings-bar.js +5 -0
  84. package/es/calendar/components/headings-bar.vue.d.ts +40 -0
  85. package/es/calendar/components/headings-bar.vue_vue_type_script_setup_true_lang.js +201 -0
  86. package/es/calendar/components/index.js +5 -0
  87. package/es/calendar/components/index.vue.d.ts +616 -0
  88. package/es/calendar/components/index.vue_vue_type_script_setup_true_lang.js +314 -0
  89. package/es/calendar/components/time-column.js +5 -0
  90. package/es/calendar/components/time-column.vue.d.ts +27 -0
  91. package/es/calendar/components/time-column.vue_vue_type_script_setup_true_lang.js +66 -0
  92. package/es/calendar/context.d.ts +16 -0
  93. package/es/calendar/context.js +5 -0
  94. package/es/calendar/core/config.d.ts +126 -0
  95. package/es/calendar/core/config.js +522 -0
  96. package/es/calendar/core/events.d.ts +1 -0
  97. package/es/calendar/core/events.js +921 -0
  98. package/es/calendar/core/i18n.d.ts +1 -0
  99. package/es/calendar/core/i18n.js +72 -0
  100. package/es/calendar/core/index.d.ts +112 -0
  101. package/es/calendar/core/index.js +66 -0
  102. package/es/calendar/core/props-definitions.d.ts +263 -0
  103. package/es/calendar/core/props-definitions.js +70 -0
  104. package/es/calendar/core/view.d.ts +60 -0
  105. package/es/calendar/core/view.js +761 -0
  106. package/es/calendar/default-theme.scss +1012 -0
  107. package/es/calendar/hooks/use-calendar-theme.d.ts +4 -0
  108. package/es/calendar/hooks/use-calendar-theme.js +32 -0
  109. package/es/calendar/index.d.ts +836 -98
  110. package/es/calendar/index.js +3 -3
  111. package/es/calendar/index.scss +331 -0
  112. package/es/calendar/modules/drag-and-drop.d.ts +8 -0
  113. package/es/calendar/modules/drag-and-drop.js +442 -0
  114. package/es/calendar/style/body.scss +51 -0
  115. package/es/calendar/style/cell.scss +153 -0
  116. package/es/calendar/style/css.js +0 -1
  117. package/es/calendar/style/event.scss +69 -0
  118. package/es/calendar/style/header.scss +104 -0
  119. package/es/calendar/style/headings-bar.scss +94 -0
  120. package/es/calendar/style/index.css +1514 -264
  121. package/es/calendar/style/index.d.ts +1 -3
  122. package/es/calendar/style/index.js +0 -1
  123. package/es/calendar/style/index.scss +9 -496
  124. package/es/calendar/style/time-column.scss +109 -0
  125. package/es/calendar/style/token.scss +64 -60
  126. package/es/calendar/utils/conversions.d.ts +3 -0
  127. package/es/calendar/utils/conversions.js +31 -0
  128. package/es/calendar/utils/date.d.ts +26 -0
  129. package/es/calendar/utils/date.js +253 -0
  130. package/es/calendar/utils/special-hours-allow-events.d.ts +28 -0
  131. package/es/calendar/utils/special-hours-allow-events.js +230 -0
  132. package/es/card/card-grid.js +1 -1
  133. package/es/card/style/index.css +16 -16
  134. package/es/carousel/carousel-arrow.js +1 -1
  135. package/es/carousel/carousel-indicator.js +1 -1
  136. package/es/carousel/carousel-indicator.vue.d.ts +1 -1
  137. package/es/carousel/carousel-item.js +1 -1
  138. package/es/carousel/carousel.js +1 -1
  139. package/es/carousel/style/index.css +11 -11
  140. package/es/cascader/cascader-option.d.ts +1 -1
  141. package/es/cascader/cascader-option.js +1 -1
  142. package/es/cascader/cascader-panel.vue.d.ts +1 -1
  143. package/es/cascader/cascader-panel.vue_vue_type_script_setup_true_lang.js +2 -2
  144. package/es/cascader/cascader.vue.d.ts +5 -5
  145. package/es/cascader/cascader.vue_vue_type_script_setup_true_lang.js +5 -5
  146. package/es/cascader/style/index.css +36 -36
  147. package/es/checkbox/checkbox.d.ts +1 -1
  148. package/es/checkbox/index.d.ts +2 -2
  149. package/es/checkbox/style/index.css +18 -18
  150. package/es/collapse/collapse-item.d.ts +1 -1
  151. package/es/collapse/collapse.js +1 -1
  152. package/es/collapse/index.d.ts +1 -1
  153. package/es/collapse/style/index.css +15 -15
  154. package/es/color-picker/color-picker.d.ts +1 -1
  155. package/es/color-picker/color-picker.js +1 -1
  156. package/es/color-picker/index.d.ts +3 -3
  157. package/es/color-picker/palette.js +1 -1
  158. package/es/color-picker/panel.d.ts +1 -1
  159. package/es/color-picker/panel.js +2 -2
  160. package/es/color-picker/style/index.css +13 -13
  161. package/es/color-picker/utils.js +1 -1
  162. package/es/comment/comment.js +2 -2
  163. package/es/comment/style/index.css +5 -5
  164. package/es/components.d.ts +2 -2
  165. package/es/config-provider/config-provider.js +1 -1
  166. package/es/config-provider/config-provider.vue.d.ts +1 -1
  167. package/es/config-provider/context.d.ts +3 -0
  168. package/es/config-provider/index.d.ts +3 -3
  169. package/es/config-provider/theme-provider.vue_vue_type_script_setup_true_lang.js +2 -2
  170. package/es/config-provider/theme.js +1 -1
  171. package/es/copy/copy.vue_vue_type_script_setup_true_lang.js +3 -3
  172. package/es/cropper/cropper.vue_vue_type_script_setup_true_lang.js +3 -3
  173. package/es/cropper/style/index.css +3 -3
  174. package/es/date-picker/hooks/use-range-time-picker-value.js +1 -1
  175. package/es/date-picker/index.d.ts +48 -48
  176. package/es/date-picker/panels/body.js +1 -1
  177. package/es/date-picker/panels/date/index.js +2 -2
  178. package/es/date-picker/panels/date/index.vue.d.ts +6 -6
  179. package/es/date-picker/panels/date/index.vue_vue_type_script_lang.js +1 -1
  180. package/es/date-picker/panels/footer.js +1 -1
  181. package/es/date-picker/panels/footer.vue.d.ts +9 -9
  182. package/es/date-picker/panels/header.js +1 -1
  183. package/es/date-picker/panels/month/index.js +2 -2
  184. package/es/date-picker/panels/quarter/index.js +2 -2
  185. package/es/date-picker/panels/shortcuts.js +1 -1
  186. package/es/date-picker/panels/shortcuts.vue.d.ts +6 -6
  187. package/es/date-picker/panels/week/index.js +1 -1
  188. package/es/date-picker/panels/week/index.vue.d.ts +6 -6
  189. package/es/date-picker/panels/week-list.js +1 -1
  190. package/es/date-picker/panels/year/index.js +2 -2
  191. package/es/date-picker/picker-panel.js +1 -1
  192. package/es/date-picker/picker-panel.vue.d.ts +28 -28
  193. package/es/date-picker/picker.js +2 -2
  194. package/es/date-picker/picker.vue.d.ts +46 -46
  195. package/es/date-picker/picker.vue_vue_type_script_lang.js +1 -1
  196. package/es/date-picker/range-picker-panel.js +1 -1
  197. package/es/date-picker/range-picker-panel.vue.d.ts +29 -29
  198. package/es/date-picker/range-picker-panel.vue_vue_type_script_lang.js +1 -1
  199. package/es/date-picker/range-picker.js +2 -2
  200. package/es/date-picker/range-picker.vue.d.ts +48 -48
  201. package/es/date-picker/range-picker.vue_vue_type_script_lang.js +1 -1
  202. package/es/date-picker/style/index.css +72 -72
  203. package/es/descriptions/descriptions-item.js +1 -1
  204. package/es/descriptions/descriptions.d.ts +2 -2
  205. package/es/descriptions/descriptions.js +1 -1
  206. package/es/descriptions/index.d.ts +6 -6
  207. package/es/descriptions/style/index.css +10 -10
  208. package/es/divider/divider.d.ts +1 -1
  209. package/es/divider/index.d.ts +3 -3
  210. package/es/divider/style/index.css +4 -4
  211. package/es/drawer/drawer.js +9 -2
  212. package/es/drawer/drawer.vue.d.ts +2905 -10
  213. package/es/drawer/drawer.vue_vue_type_script_lang.js +26 -7
  214. package/es/drawer/index.d.ts +6550 -764
  215. package/es/drawer/index.js +2 -2
  216. package/es/drawer/style/index.css +12 -7
  217. package/es/drawer/style/index.scss +6 -0
  218. package/es/dropdown/dropdown-button.js +1 -1
  219. package/es/dropdown/dropdown-button.vue.d.ts +24 -21
  220. package/es/dropdown/dropdown-group.js +1 -1
  221. package/es/dropdown/dropdown-option.js +1 -1
  222. package/es/dropdown/dropdown-option.vue.d.ts +1 -1
  223. package/es/dropdown/dropdown-panel.js +1 -1
  224. package/es/dropdown/dropdown-panel.vue.d.ts +6 -3
  225. package/es/dropdown/dropdown-submenu.js +1 -1
  226. package/es/dropdown/dropdown-submenu.vue.d.ts +18 -15
  227. package/es/dropdown/dropdown.js +1 -1
  228. package/es/dropdown/dropdown.vue.d.ts +16 -13
  229. package/es/dropdown/index.d.ts +78 -66
  230. package/es/dropdown/style/index.css +1 -1
  231. package/es/ellipsis/ellipsis.js +1 -1
  232. package/es/ellipsis/ellipsis.vue.d.ts +24 -24
  233. package/es/ellipsis/ellipsis.vue_vue_type_script_lang.js +2 -2
  234. package/es/ellipsis/index.d.ts +96 -96
  235. package/es/ellipsis/performant-ellipsis.js +1 -1
  236. package/es/ellipsis/performant-ellipsis.vue.d.ts +24 -24
  237. package/es/ellipsis/performant-ellipsis.vue_vue_type_script_lang.js +1 -1
  238. package/es/empty/style/index.css +2 -2
  239. package/es/form/form-item-label.js +1 -1
  240. package/es/form/form-item-label.vue.d.ts +24 -24
  241. package/es/form/form-item-message.js +1 -1
  242. package/es/form/form-item.js +1 -1
  243. package/es/form/form-item.vue.d.ts +29 -29
  244. package/es/form/form-item.vue_vue_type_script_lang.js +3 -3
  245. package/es/form/form.js +1 -1
  246. package/es/form/form.vue.d.ts +1 -1
  247. package/es/form/index.d.ts +35 -35
  248. package/es/form/style/index.css +6 -6
  249. package/es/grid/grid-col.js +1 -1
  250. package/es/grid/grid-col.vue_vue_type_script_lang.js +1 -1
  251. package/es/grid/grid-item.js +1 -1
  252. package/es/grid/grid-item.vue_vue_type_script_lang.js +1 -1
  253. package/es/grid/grid-row.js +1 -1
  254. package/es/grid/grid-row.vue.d.ts +4 -4
  255. package/es/grid/grid.js +1 -1
  256. package/es/grid/index.d.ts +4 -4
  257. package/es/icon/icon-calendar/icon-calendar.js +1 -1
  258. package/es/icon/icon-caret-down/icon-caret-down.js +1 -1
  259. package/es/icon/icon-caret-left/icon-caret-left.js +1 -1
  260. package/es/icon/icon-caret-right/icon-caret-right.js +1 -1
  261. package/es/icon/icon-caret-up/icon-caret-up.js +1 -1
  262. package/es/icon/icon-check/icon-check.js +1 -1
  263. package/es/icon/icon-check-circle-fill/icon-check-circle-fill.js +1 -1
  264. package/es/icon/icon-clock-circle/icon-clock-circle.js +1 -1
  265. package/es/icon/icon-close/icon-close.js +1 -1
  266. package/es/icon/icon-close-circle-fill/icon-close-circle-fill.js +1 -1
  267. package/es/icon/icon-copy/icon-copy.js +1 -1
  268. package/es/icon/icon-delete/icon-delete.js +1 -1
  269. package/es/icon/icon-double-left/icon-double-left.js +1 -1
  270. package/es/icon/icon-double-right/icon-double-right.js +1 -1
  271. package/es/icon/icon-down/icon-down.js +1 -1
  272. package/es/icon/icon-drag-dot/icon-drag-dot.js +1 -1
  273. package/es/icon/icon-drag-dot-vertical/icon-drag-dot-vertical.js +1 -1
  274. package/es/icon/icon-edit/icon-edit.js +1 -1
  275. package/es/icon/icon-empty/icon-empty.js +1 -1
  276. package/es/icon/icon-exclamation/icon-exclamation.js +1 -1
  277. package/es/icon/icon-exclamation-circle-fill/icon-exclamation-circle-fill.js +1 -1
  278. package/es/icon/icon-eye/icon-eye.js +1 -1
  279. package/es/icon/icon-eye-invisible/icon-eye-invisible.js +1 -1
  280. package/es/icon/icon-face-frown-fill/icon-face-frown-fill.js +1 -1
  281. package/es/icon/icon-face-meh-fill/icon-face-meh-fill.js +1 -1
  282. package/es/icon/icon-face-smile-fill/icon-face-smile-fill.js +1 -1
  283. package/es/icon/icon-file/icon-file.js +1 -1
  284. package/es/icon/icon-file-audio/icon-file-audio.js +1 -1
  285. package/es/icon/icon-file-image/icon-file-image.js +1 -1
  286. package/es/icon/icon-file-pdf/icon-file-pdf.js +1 -1
  287. package/es/icon/icon-file-video/icon-file-video.js +1 -1
  288. package/es/icon/icon-filter/icon-filter.js +1 -1
  289. package/es/icon/icon-fullscreen/icon-fullscreen.js +1 -1
  290. package/es/icon/icon-image-close/icon-image-close.js +1 -1
  291. package/es/icon/icon-info/icon-info.js +1 -1
  292. package/es/icon/icon-info-circle-fill/icon-info-circle-fill.js +1 -1
  293. package/es/icon/icon-left/icon-left.js +1 -1
  294. package/es/icon/icon-link/icon-link.js +1 -1
  295. package/es/icon/icon-loading/icon-loading.js +1 -1
  296. package/es/icon/icon-menu-fold/icon-menu-fold.js +1 -1
  297. package/es/icon/icon-menu-unfold/icon-menu-unfold.js +1 -1
  298. package/es/icon/icon-minus/icon-minus.js +1 -1
  299. package/es/icon/icon-more/icon-more.js +1 -1
  300. package/es/icon/icon-oblique-line/icon-oblique-line.js +1 -1
  301. package/es/icon/icon-original-size/icon-original-size.js +1 -1
  302. package/es/icon/icon-pause/icon-pause.js +1 -1
  303. package/es/icon/icon-play-arrow-fill/icon-play-arrow-fill.js +1 -1
  304. package/es/icon/icon-plus/icon-plus.js +1 -1
  305. package/es/icon/icon-question-circle/icon-question-circle.js +1 -1
  306. package/es/icon/icon-right/icon-right.js +1 -1
  307. package/es/icon/icon-rotate-left/icon-rotate-left.js +1 -1
  308. package/es/icon/icon-rotate-right/icon-rotate-right.js +1 -1
  309. package/es/icon/icon-search/icon-search.js +1 -1
  310. package/es/icon/icon-star-fill/icon-star-fill.js +1 -1
  311. package/es/icon/icon-to-top/icon-to-top.js +1 -1
  312. package/es/icon/icon-up/icon-up.js +1 -1
  313. package/es/icon/icon-upload/icon-upload.js +1 -1
  314. package/es/icon/icon-zoom-in/icon-zoom-in.js +1 -1
  315. package/es/icon/icon-zoom-out/icon-zoom-out.js +1 -1
  316. package/es/icon-component/icon.js +1 -1
  317. package/es/icon.js +292 -292
  318. package/es/image/image-footer.js +1 -1
  319. package/es/image/image.js +2 -2
  320. package/es/image/image.vue.d.ts +24 -24
  321. package/es/image/preview-action.d.ts +24 -24
  322. package/es/image/preview-arrow.js +1 -1
  323. package/es/image/preview-group.js +2 -2
  324. package/es/image/preview-group.vue.d.ts +25 -25
  325. package/es/image/preview-toolbar.js +1 -1
  326. package/es/image/preview-toolbar.vue.d.ts +24 -24
  327. package/es/image/preview.js +1 -1
  328. package/es/image/preview.vue.d.ts +24 -24
  329. package/es/image/preview.vue_vue_type_script_lang.js +1 -1
  330. package/es/image/style/index.css +32 -32
  331. package/es/index.css +4083 -2512
  332. package/es/index.d.ts +8 -2
  333. package/es/index.js +11 -10
  334. package/es/index.scss +3 -1
  335. package/es/input/index.d.ts +9 -9
  336. package/es/input/input-group.js +1 -1
  337. package/es/input/input-password.js +1 -1
  338. package/es/input/input-password.vue.d.ts +3 -3
  339. package/es/input/input.d.ts +2 -2
  340. package/es/input/input.js +1 -1
  341. package/es/input/style/index.css +50 -50
  342. package/es/input-number/index.d.ts +6 -6
  343. package/es/input-number/input-number.d.ts +2 -2
  344. package/es/input-number/input-number.js +1 -1
  345. package/es/input-number/style/index.css +16 -16
  346. package/es/input-tag/index.d.ts +6 -6
  347. package/es/input-tag/input-tag.d.ts +2 -2
  348. package/es/input-tag/input-tag.js +1 -1
  349. package/es/input-tag/style/index.css +172 -172
  350. package/es/input-tag/utils.js +1 -1
  351. package/es/json-form/json-form-component.vue_vue_type_script_setup_true_lang.js +3 -3
  352. package/es/json-form/json-form-item.vue_vue_type_script_setup_true_lang.js +3 -3
  353. package/es/json-form/json-form.vue_vue_type_script_setup_true_lang.js +3 -3
  354. package/es/json-form/utils.js +3 -3
  355. package/es/layout/content.js +1 -1
  356. package/es/layout/footer.js +1 -1
  357. package/es/layout/header.vue.d.ts +1 -1
  358. package/es/layout/header.vue_vue_type_script_setup_true_lang.js +2 -2
  359. package/es/layout/index.d.ts +21 -21
  360. package/es/layout/layout.js +1 -1
  361. package/es/layout/sider.js +1 -1
  362. package/es/layout/sider.vue.d.ts +16 -16
  363. package/es/layout/sider.vue_vue_type_script_lang.js +1 -1
  364. package/es/layout/style/index.css +12 -12
  365. package/es/link/index.d.ts +3 -3
  366. package/es/link/link.vue.d.ts +1 -1
  367. package/es/link/link.vue_vue_type_script_setup_true_lang.js +2 -2
  368. package/es/link/style/index.css +23 -23
  369. package/es/list/index.d.ts +9 -9
  370. package/es/list/list-item-meta.js +1 -1
  371. package/es/list/list.d.ts +3 -3
  372. package/es/list/list.js +4 -4
  373. package/es/list/style/index.css +9 -9
  374. package/es/locale/interface.d.ts +6 -0
  375. package/es/locale/lang/ar-eg.js +7 -1
  376. package/es/locale/lang/de-de.js +7 -1
  377. package/es/locale/lang/en-us.js +7 -1
  378. package/es/locale/lang/es-es.js +7 -1
  379. package/es/locale/lang/fr-fr.js +7 -1
  380. package/es/locale/lang/id-id.js +7 -1
  381. package/es/locale/lang/it-it.js +7 -1
  382. package/es/locale/lang/ja-jp.js +7 -1
  383. package/es/locale/lang/km-kh.js +7 -1
  384. package/es/locale/lang/ko-kr.js +7 -1
  385. package/es/locale/lang/ms-my.js +7 -1
  386. package/es/locale/lang/nl-nl.js +7 -1
  387. package/es/locale/lang/pt-pt.js +7 -1
  388. package/es/locale/lang/ru-ru.js +7 -1
  389. package/es/locale/lang/th-th.js +7 -1
  390. package/es/locale/lang/vi-vn.js +7 -1
  391. package/es/locale/lang/zh-cn.js +7 -1
  392. package/es/locale/lang/zh-tw.js +7 -1
  393. package/es/mention/index.d.ts +9 -9
  394. package/es/mention/mention.d.ts +3 -3
  395. package/es/mention/mention.js +24 -10
  396. package/es/menu/base-menu.js +1 -1
  397. package/es/menu/indent.js +1 -1
  398. package/es/menu/item-group.js +1 -1
  399. package/es/menu/item-group.vue.d.ts +48 -48
  400. package/es/menu/item.js +1 -1
  401. package/es/menu/menu.js +1 -1
  402. package/es/menu/style/index.css +62 -62
  403. package/es/menu/sub-menu-inline.js +1 -1
  404. package/es/menu/sub-menu-inline.vue.d.ts +48 -48
  405. package/es/menu/sub-menu-pop.js +1 -1
  406. package/es/menu/sub-menu-pop.vue.d.ts +57 -57
  407. package/es/menu/sub-menu.js +1 -1
  408. package/es/message/index.js +1 -1
  409. package/es/message/message-list.d.ts +1 -1
  410. package/es/message/message.js +1 -1
  411. package/es/message/message.vue.d.ts +1 -1
  412. package/es/message/style/index.css +26 -26
  413. package/es/modal/index.d.ts +6368 -570
  414. package/es/modal/index.js +2 -2
  415. package/es/modal/modal.js +15 -4
  416. package/es/modal/modal.vue.d.ts +2907 -8
  417. package/es/modal/modal.vue_vue_type_script_lang.js +28 -5
  418. package/es/modal/style/index.css +28 -12
  419. package/es/modal/style/index.scss +23 -0
  420. package/es/notification/index.js +1 -1
  421. package/es/notification/notification.js +1 -1
  422. package/es/notification/notification.vue.d.ts +1 -1
  423. package/es/notification/style/index.css +26 -26
  424. package/es/page-header/index.d.ts +2 -2
  425. package/es/page-header/page-header.js +1 -1
  426. package/es/page-header/page-header.vue.d.ts +1 -1
  427. package/es/page-header/style/index.css +6 -6
  428. package/es/pagination/page-item-ellipsis.js +1 -1
  429. package/es/pagination/page-item-step.js +1 -1
  430. package/es/pagination/page-item.js +1 -1
  431. package/es/pagination/page-jumper.js +1 -1
  432. package/es/pagination/page-jumper.vue.d.ts +6 -6
  433. package/es/pagination/page-options.js +1 -1
  434. package/es/pagination/page-options.vue.d.ts +647 -469
  435. package/es/pagination/style/index.css +21 -21
  436. package/es/popconfirm/index.d.ts +33 -33
  437. package/es/popconfirm/popconfirm.js +1 -1
  438. package/es/popconfirm/popconfirm.vue.d.ts +16 -16
  439. package/es/popconfirm/popconfirm.vue_vue_type_script_lang.js +1 -1
  440. package/es/popconfirm/style/index.css +11 -11
  441. package/es/popover/index.d.ts +899 -21
  442. package/es/popover/popover.js +7 -3
  443. package/es/popover/popover.vue.d.ts +451 -10
  444. package/es/popover/popover.vue_vue_type_script_lang.js +15 -3
  445. package/es/popover/style/index.css +7 -7
  446. package/es/popover/style/index.d.ts +1 -0
  447. package/es/progress/circle.js +1 -1
  448. package/es/progress/circle.vue.d.ts +1 -1
  449. package/es/progress/index.d.ts +7 -7
  450. package/es/progress/line.js +1 -1
  451. package/es/progress/line.vue.d.ts +1 -1
  452. package/es/progress/line.vue_vue_type_script_lang.js +1 -1
  453. package/es/progress/progress.js +1 -1
  454. package/es/progress/progress.vue.d.ts +3 -3
  455. package/es/progress/steps.js +1 -1
  456. package/es/progress/style/index.css +32 -32
  457. package/es/qr-code/index.d.ts +294 -0
  458. package/es/qr-code/index.js +10 -0
  459. package/es/qr-code/qr-code-status.js +5 -0
  460. package/es/qr-code/qr-code-status.vue.d.ts +8 -0
  461. package/es/qr-code/qr-code-status.vue_vue_type_script_setup_true_lang.js +30 -0
  462. package/es/qr-code/qr-code.js +5 -0
  463. package/es/qr-code/qr-code.vue.d.ts +167 -0
  464. package/es/qr-code/qr-code.vue_vue_type_script_setup_true_lang.js +313 -0
  465. package/es/qr-code/style/css.js +2 -0
  466. package/es/qr-code/style/index.css +106 -0
  467. package/es/qr-code/style/index.d.ts +2 -0
  468. package/es/qr-code/style/index.js +2 -0
  469. package/es/qr-code/style/index.scss +111 -0
  470. package/es/qr-code/style/token.scss +36 -0
  471. package/es/qr-code/types.d.ts +19 -0
  472. package/es/radio/index.d.ts +5 -5
  473. package/es/radio/radio.d.ts +2 -2
  474. package/es/radio/style/index.css +33 -33
  475. package/es/rate/index.d.ts +3 -3
  476. package/es/rate/rate.d.ts +1 -1
  477. package/es/rate/style/index.css +3 -3
  478. package/es/resize-box/index.d.ts +6 -6
  479. package/es/resize-box/resize-box.js +1 -1
  480. package/es/resize-box/resize-box.vue.d.ts +2 -2
  481. package/es/resize-box/resize-box.vue_vue_type_script_lang.js +1 -1
  482. package/es/resize-box/style/index.css +2 -2
  483. package/es/result/result.js +1 -1
  484. package/es/result/style/index.css +2 -2
  485. package/es/scrollbar/index.d.ts +6 -3
  486. package/es/scrollbar/scrollbar.js +2 -1
  487. package/es/scrollbar/scrollbar.vue.d.ts +2 -1
  488. package/es/scrollbar/scrollbar.vue_vue_type_script_lang.js +52 -2
  489. package/es/scrollbar/style/index.css +13 -13
  490. package/es/sd-vue.js +13 -12
  491. package/es/secret/secret.vue_vue_type_script_setup_true_lang.js +3 -3
  492. package/es/secret/style/index.css +4 -4
  493. package/es/select/context.d.ts +1 -4
  494. package/es/select/hooks/use-options.d.ts +1 -4
  495. package/es/select/hooks/use-options.js +2 -23
  496. package/es/select/hooks/use-select.d.ts +1 -3
  497. package/es/select/hooks/use-select.js +2 -7
  498. package/es/select/index.d.ts +647 -474
  499. package/es/select/index.js +5 -13
  500. package/es/select/interface.d.ts +1 -1
  501. package/es/select/select-dropdown.js +3 -2
  502. package/es/select/select-dropdown.vue.d.ts +56 -54
  503. package/es/select/select-dropdown.vue_vue_type_script_lang.js +2 -3
  504. package/es/select/select.d.ts +260 -18
  505. package/es/select/select.js +44 -23
  506. package/es/select/style/index.css +14 -14
  507. package/es/select/utils.d.ts +1 -1
  508. package/es/select/utils.js +1 -1
  509. package/es/skeleton/line.js +1 -1
  510. package/es/skeleton/shape.js +1 -1
  511. package/es/skeleton/skeleton.js +1 -1
  512. package/es/skeleton/style/index.css +4 -4
  513. package/es/slider/index.d.ts +67 -67
  514. package/es/slider/slider-button.js +1 -1
  515. package/es/slider/slider-button.vue.d.ts +25 -25
  516. package/es/slider/slider-dots.js +1 -1
  517. package/es/slider/slider-input.js +1 -1
  518. package/es/slider/slider-input.vue.d.ts +7 -7
  519. package/es/slider/slider-marks.js +1 -1
  520. package/es/slider/slider-ticks.js +1 -1
  521. package/es/slider/slider.js +1 -1
  522. package/es/slider/slider.vue.d.ts +33 -33
  523. package/es/slider/style/index.css +18 -18
  524. package/es/space/index.d.ts +9 -9
  525. package/es/space/space.d.ts +2 -2
  526. package/es/spin/index.d.ts +1 -0
  527. package/es/spin/style/index.css +9 -9
  528. package/es/split/split.js +1 -1
  529. package/es/split/split.vue_vue_type_script_lang.js +1 -1
  530. package/es/split/style/index.css +2 -2
  531. package/es/statistic/countdown.js +1 -1
  532. package/es/statistic/countdown.vue.d.ts +1 -1
  533. package/es/statistic/countdown.vue_vue_type_script_lang.js +5 -5
  534. package/es/statistic/index.d.ts +1 -1
  535. package/es/statistic/statistic.js +1 -1
  536. package/es/statistic/statistic.vue_vue_type_script_lang.js +2 -2
  537. package/es/statistic/style/index.css +4 -4
  538. package/es/steps/index.d.ts +4 -4
  539. package/es/steps/step.js +1 -1
  540. package/es/steps/step.vue.d.ts +1 -1
  541. package/es/steps/steps.js +1 -1
  542. package/es/steps/steps.vue.d.ts +1 -1
  543. package/es/steps/style/index.css +79 -79
  544. package/es/style/color/colors.scss +1 -1
  545. package/es/style/theme/global.scss +8 -8
  546. package/es/style/theme/index.scss +4 -12
  547. package/es/style/theme/z-index.js +1 -2
  548. package/es/switch/style/index.css +30 -30
  549. package/es/switch/switch.js +1 -1
  550. package/es/switch/switch.vue_vue_type_script_lang.js +1 -1
  551. package/es/table/index.d.ts +14 -14
  552. package/es/table/style/index.css +65 -65
  553. package/es/table/table-operation-td.d.ts +7 -7
  554. package/es/table/table-operation-td.js +1 -1
  555. package/es/table/table-operation-th.js +1 -1
  556. package/es/table/table-td.d.ts +1 -1
  557. package/es/table/table-td.js +1 -1
  558. package/es/table/table-th.d.ts +1 -1
  559. package/es/table/table-th.js +2 -2
  560. package/es/table/table.d.ts +5 -5
  561. package/es/table/table.js +12 -14
  562. package/es/table/utils.js +1 -1
  563. package/es/tabs/index.d.ts +9 -9
  564. package/es/tabs/style/index.css +56 -56
  565. package/es/tabs/tab-pane.js +1 -1
  566. package/es/tabs/tab-pane.vue_vue_type_script_lang.js +1 -1
  567. package/es/tabs/tabs-nav-ink.js +1 -1
  568. package/es/tabs/tabs-nav.d.ts +1 -1
  569. package/es/tabs/tabs-tab.js +1 -1
  570. package/es/tabs/tabs-tab.vue.d.ts +1 -1
  571. package/es/tabs/tabs.d.ts +3 -3
  572. package/es/tag/index.d.ts +66 -29688
  573. package/es/tag/interface.d.ts +2 -0
  574. package/es/tag/style/index.css +134 -134
  575. package/es/tag/style/index.scss +33 -13
  576. package/es/tag/tag.js +2 -64
  577. package/es/tag/tag.vue.d.ts +53 -11936
  578. package/es/tag/tag.vue_vue_type_script_setup_true_lang.js +368 -0
  579. package/es/tag-group/tag-group.vue_vue_type_script_setup_true_lang.js +4 -4
  580. package/es/textarea/index.d.ts +8 -8
  581. package/es/textarea/style/index.css +28 -28
  582. package/es/textarea/textarea.js +1 -1
  583. package/es/textarea/textarea.vue.d.ts +3 -3
  584. package/es/textarea/textarea.vue_vue_type_script_lang.js +1 -1
  585. package/es/time-picker/hooks/use-time-list.js +1 -1
  586. package/es/time-picker/index.d.ts +56 -56
  587. package/es/time-picker/panel.js +1 -1
  588. package/es/time-picker/panel.vue.d.ts +6 -6
  589. package/es/time-picker/range-panel.d.ts +6 -6
  590. package/es/time-picker/range-panel.js +1 -1
  591. package/es/time-picker/style/index.css +11 -11
  592. package/es/time-picker/time-column.js +1 -1
  593. package/es/time-picker/time-picker.js +2 -2
  594. package/es/time-picker/time-picker.vue.d.ts +27 -27
  595. package/es/timeline/item.js +1 -1
  596. package/es/timeline/item.vue_vue_type_script_lang.js +1 -1
  597. package/es/timeline/style/index.css +11 -11
  598. package/es/tooltip/index.d.ts +24 -24
  599. package/es/tooltip/style/index.css +3 -3
  600. package/es/tooltip/tooltip.js +1 -1
  601. package/es/tooltip/tooltip.vue.d.ts +11 -11
  602. package/es/tooltip/tooltip.vue_vue_type_script_lang.js +1 -1
  603. package/es/tour/index.d.ts +664 -0
  604. package/es/tour/index.js +10 -0
  605. package/es/tour/style/css.js +1 -0
  606. package/es/tour/style/index.css +226 -0
  607. package/es/tour/style/index.d.ts +1 -0
  608. package/es/tour/style/index.js +1 -0
  609. package/es/tour/style/index.scss +218 -0
  610. package/es/tour/style/token.scss +27 -0
  611. package/es/tour/tour.js +5 -0
  612. package/es/tour/tour.vue.d.ts +411 -0
  613. package/es/tour/tour.vue_vue_type_script_setup_true_lang.js +1219 -0
  614. package/es/tour/types.d.ts +143 -0
  615. package/es/transfer/index.d.ts +51 -45
  616. package/es/transfer/style/index.css +20 -20
  617. package/es/transfer/transfer-view.js +2 -3
  618. package/es/transfer/transfer-view.vue.d.ts +18 -15
  619. package/es/transfer/transfer-view.vue_vue_type_script_lang.js +1 -1
  620. package/es/transfer/transfer.js +1 -1
  621. package/es/transfer/transfer.vue.d.ts +25 -22
  622. package/es/tree/base-node.js +1 -1
  623. package/es/tree/base-node.vue.d.ts +2 -2
  624. package/es/tree/expand-transition.js +1 -1
  625. package/es/tree/node.js +1 -1
  626. package/es/tree/style/index.css +25 -25
  627. package/es/tree/transition-node-list.js +1 -1
  628. package/es/tree/transition-node-list.vue.d.ts +2 -2
  629. package/es/tree/tree.js +1 -1
  630. package/es/tree/tree.vue.d.ts +12 -9
  631. package/es/tree/tree.vue_vue_type_script_lang.js +2 -2
  632. package/es/tree/utils/tree-data.js +1 -1
  633. package/es/tree-select/hooks/use-selected-state.js +1 -1
  634. package/es/tree-select/panel.js +4 -7
  635. package/es/tree-select/style/index.css +5 -5
  636. package/es/tree-select/tree-select.js +2 -2
  637. package/es/tree-select/tree-select.vue.d.ts +21 -21
  638. package/es/tree-select/tree-select.vue_vue_type_script_lang.js +1 -1
  639. package/es/trigger/index.d.ts +9 -9
  640. package/es/trigger/style/index.css +5 -5
  641. package/es/trigger/trigger.d.ts +3 -3
  642. package/es/trigger/trigger.js +1 -1
  643. package/es/trigger/utils.js +1 -1
  644. package/es/typography/base.d.ts +4 -4
  645. package/es/typography/base.js +1 -1
  646. package/es/typography/edit-content.js +1 -1
  647. package/es/typography/edit-content.vue.d.ts +28 -28
  648. package/es/typography/operations.js +1 -1
  649. package/es/typography/operations.vue.d.ts +24 -24
  650. package/es/typography/style/index.css +22 -22
  651. package/es/typography/typography.js +1 -1
  652. package/es/upload/index.d.ts +6 -6
  653. package/es/upload/style/index.css +51 -51
  654. package/es/upload/upload-button.d.ts +1 -1
  655. package/es/upload/upload.d.ts +2 -2
  656. package/es/upload/upload.js +2 -2
  657. package/es/verification-code/index.d.ts +3 -3
  658. package/es/verification-code/verification-code.d.ts +1 -1
  659. package/es/watermark/hooks/use-mutation-observer.js +1 -1
  660. package/es/watermark/watermark.js +1 -1
  661. package/json/vetur-attributes.json +125 -107
  662. package/json/vetur-tags.json +39 -36
  663. package/json/web-types.json +181 -162
  664. package/package.json +19 -15
  665. package/es/calendar/calendar.d.ts +0 -104
  666. package/es/calendar/calendar.js +0 -207
  667. package/es/calendar/header.d.ts +0 -104
  668. package/es/calendar/header.js +0 -131
  669. package/es/calendar/hooks/useCellClassName.d.ts +0 -19
  670. package/es/calendar/hooks/useCellClassName.js +0 -43
  671. package/es/calendar/month.d.ts +0 -83
  672. package/es/calendar/month.js +0 -149
  673. package/es/calendar/week.d.ts +0 -61
  674. package/es/calendar/week.js +0 -45
  675. package/es/calendar/year.d.ts +0 -69
  676. package/es/calendar/year.js +0 -101
  677. package/es/select/optgroup.js +0 -10
  678. package/es/select/optgroup.vue.d.ts +0 -13
  679. package/es/select/optgroup.vue_vue_type_script_lang.js +0 -23
  680. package/es/select/option.js +0 -51
  681. package/es/select/option.vue.d.ts +0 -299
  682. package/es/select/option.vue_vue_type_script_lang.js +0 -149
  683. package/es/tag/tag.vue_vue_type_script_lang.js +0 -264
@@ -0,0 +1,522 @@
1
+ import { computed, reactive, toRefs, watch } from 'vue';
2
+
3
+ import { initializeDateLocale } from '../../_utils/date';
4
+ import { useI18n } from '../../locale';
5
+ import { createCalendarTexts } from './i18n';
6
+
7
+ export const defaults = {
8
+ texts: {
9
+ weekDays: Array(7).fill(''),
10
+ weekDaysShort: [],
11
+ weekDaysMin: [],
12
+ months: Array(12).fill(''),
13
+ years: '',
14
+ year: '',
15
+ month: '',
16
+ week: '',
17
+ day: '',
18
+ days: '',
19
+ today: '',
20
+ noEvent: '',
21
+ allDay: '',
22
+ deleteEvent: '',
23
+ createEvent: '',
24
+ dateFormat: 'dddd MMMM D, YYYY',
25
+ am: 'am',
26
+ pm: 'pm',
27
+ truncations: true,
28
+ },
29
+
30
+ availableViews: {
31
+ day: { cols: 1, rows: 1 },
32
+ days: { cols: 10, rows: 1 },
33
+ week: { cols: 7, rows: 1 },
34
+ month: { cols: 7, rows: 6 },
35
+ year: { cols: 4, rows: 3 },
36
+ years: { cols: 5, rows: 5 }, // Arbitrary range of quarters of century (25y).
37
+ },
38
+ };
39
+
40
+ // Short labels for CSS classes.
41
+ export const months = [
42
+ 'jan',
43
+ 'feb',
44
+ 'mar',
45
+ 'apr',
46
+ 'may',
47
+ 'jun',
48
+ 'jul',
49
+ 'aug',
50
+ 'sep',
51
+ 'oct',
52
+ 'nov',
53
+ 'dec',
54
+ ];
55
+ export const weekdays = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];
56
+
57
+ const isSpecialHoursRange = (value) => {
58
+ if (!value || typeof value !== 'object' || Array.isArray(value)) return false;
59
+ const hasCoords = 'from' in value || 'to' in value;
60
+ return hasCoords && ('class' in value || 'label' in value || 'allowEvents' in value);
61
+ };
62
+
63
+ const normalizeSpecialHoursRanges = (ranges) => {
64
+ if (!ranges) return [];
65
+ const list = Array.isArray(ranges) ? ranges : [ranges];
66
+ const valid = [];
67
+ for (let i = 0; i < list.length; i++) {
68
+ const item = list[i];
69
+ if (isSpecialHoursRange(item)) valid.push({ ...item });
70
+ }
71
+ return valid;
72
+ };
73
+
74
+ const normalizeSpecialHoursDay = (dayConfig) => {
75
+ if (!dayConfig) return null;
76
+
77
+ if (Array.isArray(dayConfig) || isSpecialHoursRange(dayConfig)) {
78
+ return {
79
+ default: normalizeSpecialHoursRanges(dayConfig),
80
+ schedules: {},
81
+ };
82
+ }
83
+
84
+ if (typeof dayConfig !== 'object') return null;
85
+
86
+ const normalized = {
87
+ default: normalizeSpecialHoursRanges(dayConfig.default),
88
+ schedules: {},
89
+ };
90
+
91
+ let scheduleKeyCount = 0;
92
+ const schedulesSrc = dayConfig.schedules;
93
+ if (schedulesSrc && typeof schedulesSrc === 'object') {
94
+ const scheduleKeys = Object.keys(schedulesSrc);
95
+ scheduleKeyCount = scheduleKeys.length;
96
+ for (let i = 0; i < scheduleKeys.length; i++) {
97
+ const scheduleId = scheduleKeys[i];
98
+ normalized.schedules[scheduleId] = normalizeSpecialHoursRanges(schedulesSrc[scheduleId]);
99
+ }
100
+ }
101
+
102
+ if (!normalized.default.length && !scheduleKeyCount) return null;
103
+ return normalized;
104
+ };
105
+
106
+ /**
107
+ * Plain `{ from, to }` segments where `allowEvents === false`, keyed like normalized specialHours.
108
+ * Used for fast overlap checks (see `specialHoursDisallowed` computed).
109
+ * Tuned for few weekdays / ranges: avoid Object.keys arrays and empty per-day shells.
110
+ */
111
+ const buildSpecialHoursDisallowed = (normalizedByWeekday) => {
112
+ const byWeekday = {};
113
+ let hasAny = false;
114
+ for (const weekday in normalizedByWeekday) {
115
+ if (!Object.prototype.hasOwnProperty.call(normalizedByWeekday, weekday)) continue;
116
+ const day = normalizedByWeekday[weekday];
117
+ if (!day) continue;
118
+
119
+ let defOut = null;
120
+ let schedulesOut = null;
121
+
122
+ const def = day.default;
123
+ if (def && def.length) {
124
+ for (let ri = 0; ri < def.length; ri++) {
125
+ const r = def[ri];
126
+ if (
127
+ r &&
128
+ r.allowEvents === false &&
129
+ typeof r.from === 'number' &&
130
+ typeof r.to === 'number'
131
+ ) {
132
+ if (!defOut) defOut = [];
133
+ defOut.push({ from: r.from, to: r.to });
134
+ hasAny = true;
135
+ }
136
+ }
137
+ }
138
+
139
+ const schedSrc = day.schedules;
140
+ if (schedSrc && typeof schedSrc === 'object') {
141
+ for (const scheduleId in schedSrc) {
142
+ if (!Object.prototype.hasOwnProperty.call(schedSrc, scheduleId)) continue;
143
+ const ranges = schedSrc[scheduleId];
144
+ if (!ranges || !ranges.length) continue;
145
+ const arr = [];
146
+ for (let ri = 0; ri < ranges.length; ri++) {
147
+ const r = ranges[ri];
148
+ if (
149
+ r &&
150
+ r.allowEvents === false &&
151
+ typeof r.from === 'number' &&
152
+ typeof r.to === 'number'
153
+ ) {
154
+ arr.push({ from: r.from, to: r.to });
155
+ hasAny = true;
156
+ }
157
+ }
158
+ if (arr.length) {
159
+ if (!schedulesOut) schedulesOut = {};
160
+ schedulesOut[scheduleId] = arr;
161
+ }
162
+ }
163
+ }
164
+
165
+ if (defOut || schedulesOut) {
166
+ const outDay = {};
167
+ if (defOut) outDay.default = defOut;
168
+ if (schedulesOut) outDay.schedules = schedulesOut;
169
+ byWeekday[weekday] = outDay;
170
+ }
171
+ }
172
+ return { hasAny, byWeekday };
173
+ };
174
+
175
+ const weekdaysMap = weekdays.reduce((obj, day, i) => {
176
+ // 1 - 7, from Mon to Sun.
177
+ obj[day] = i || 7;
178
+ return obj;
179
+ }, {});
180
+
181
+ export const useConfig = (calendar, props, attrs) => {
182
+ const { dateUtils } = calendar;
183
+
184
+ // Library locale — reactive, follows ConfigProvider.
185
+ const { i18nMessage, locale: globalLocal } = useI18n();
186
+ const ready = false;
187
+ const view = computed(() => {
188
+ // If user explicitly provided a valid view, use it.
189
+ if (props.view && availableViews.value[props.view]) return props.view;
190
+
191
+ // If user explicitly provided an invalid view, warn and use first available.
192
+ if (props.view && !availableViews.value[props.view]) {
193
+ console.warn(
194
+ `Calendar: the provided view \`${props.view}\` is not in the list of available views.` +
195
+ ` The first available view will be chosen: \`${Object.keys(availableViews.value)[0]}\`.`,
196
+ );
197
+ return Object.keys(availableViews.value)[0];
198
+ }
199
+
200
+ // User didn't provide a view - use default fallback silently.
201
+ const fallbackView = props.datePicker ? 'month' : 'week';
202
+ if (availableViews.value[fallbackView]) return fallbackView;
203
+
204
+ // Default fallback not available, silently use first available.
205
+ return Object.keys(availableViews.value)[0];
206
+ });
207
+ const sm = computed(() => props.sm && !props.xs);
208
+ const xs = computed(() => props.xs || props.datePicker);
209
+ const clickToNavigate = computed(
210
+ () => props.clickToNavigate || (props.datePicker && props.clickToNavigate !== false),
211
+ );
212
+
213
+ /**
214
+ * Extract all the Calendar external event listeners for cells and events, and prepare an object to
215
+ * pass to the cell component which will v-on this object of listeners.
216
+ */
217
+ const eventListeners = computed(() => {
218
+ const listeners = {
219
+ cell: {}, // All possible event listeners to attach to cells.
220
+ event: {}, // All possible event listeners to attach to calendar events.
221
+ };
222
+
223
+ const kebabize = (str) => str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
224
+ // Forward any cell and calendar-events event listener attached to sd-calendar to the cell and event components.
225
+ // For instance, convert sd-calendar.onCellMouseenter to cell.mouseenter.
226
+ for (const [attr, value] of Object.entries(attrs)) {
227
+ const [m0, m1, m2] = attr.match(/^on(Cell|Event)(.+)$/) || [];
228
+ // Allow both camelCase and kebab-case for event handlers names, but store as kebab-case.
229
+ if (m0) listeners[m1.toLowerCase()][kebabize(m2).replace(/^-+|-+$/g, '')] = value;
230
+ }
231
+
232
+ return listeners;
233
+ });
234
+
235
+ // An object consisting of only the weekdays to hide, given their index (1-7, Mon - Sun).
236
+ // E.g. { 1: true, 6: true, 7 true } will hide the Mondays and weekends.
237
+ const hideWeekdays = computed(() => {
238
+ const weekDays = {}; // 1-7, Mon - Sun.
239
+ if (props.hideWeekends) (weekDays[6] = true) && (weekDays[7] = true);
240
+ if (props.hideWeekdays?.length)
241
+ props.hideWeekdays.forEach((day) => (weekDays[weekdaysMap[day]] = true));
242
+
243
+ return weekDays;
244
+ });
245
+ const hideWeekends = computed(
246
+ () => props.hideWeekends || (hideWeekdays.value[6] && hideWeekdays.value[7]),
247
+ );
248
+
249
+ const availableViews = computed(() => {
250
+ const datePicker = props.datePicker;
251
+ let invalidViews = 0;
252
+ let availViews = {}; // The new object to return.
253
+ const views = props.views;
254
+
255
+ // Default views for date picker layout: ['month', 'year', 'years'].
256
+ if (datePicker && !views)
257
+ return {
258
+ month: { ...defaults.availableViews.month },
259
+ year: { ...defaults.availableViews.year },
260
+ years: { ...defaults.availableViews.years },
261
+ };
262
+
263
+ if (views) {
264
+ if (Array.isArray(views)) {
265
+ availViews = views.reduce((obj, view) => {
266
+ if (typeof view === 'string' && defaults.availableViews[view])
267
+ obj[view] = defaults.availableViews[view];
268
+ else invalidViews++;
269
+ return obj;
270
+ }, {});
271
+ } else if (typeof views === 'object') {
272
+ availViews = Object.entries(views).reduce((obj, [id, size]) => {
273
+ const { cols, rows } = defaults.availableViews[id];
274
+ obj[id] = { cols: size.cols || cols, rows: size.rows || rows };
275
+ return obj;
276
+ }, {});
277
+ }
278
+ // Else case handled by unauthorized Vue props definition error.
279
+
280
+ if (invalidViews) {
281
+ console.warn(
282
+ 'Calendar: the provided `views` prop contains invalid views that will be ignored.',
283
+ );
284
+ }
285
+ if (!Object.keys(availViews).length) {
286
+ console.warn(
287
+ 'Calendar: No valid view in the provided `views` prop. Falling back to default views.',
288
+ );
289
+ availViews = { ...defaults.availableViews };
290
+ }
291
+ }
292
+ // Default views for normal layout: ['day', 'days', 'week', 'month', 'year', 'years'] }.
293
+ else {
294
+ availViews = { ...defaults.availableViews };
295
+ // If horizontal view, flip the default rows and cols for the days and week views.
296
+ if (props.horizontal) {
297
+ const { days, week } = defaults.availableViews;
298
+ availViews.days = { cols: days.rows, rows: days.cols };
299
+ availViews.week = { cols: week.rows, rows: week.cols };
300
+ }
301
+ }
302
+
303
+ return availViews;
304
+ });
305
+
306
+ const defaultView = computed(() => {
307
+ if (props.datePicker) return 'month';
308
+ if (availableViews.value.week) return 'week';
309
+ return Object.keys(availableViews.value)[0];
310
+ });
311
+
312
+ const selectedDate = computed(() => {
313
+ if (typeof props.selectedDate === 'string') return dateUtils.stringToDate(props.selectedDate);
314
+ if (props.selectedDate instanceof Date) return props.selectedDate;
315
+ if (!props.selectedDate)
316
+ console.log('Calendar: Info - The provided selected date is undefined.');
317
+ else console.warn('Calendar: The provided selected date is invalid:', props.selectedDate);
318
+ });
319
+
320
+ // An array of specific dates to disable.
321
+ // The dates can be provided as 'YYYY-MM-DD' strings or Date objects and the dates are validated
322
+ // or ignored.
323
+ const disableDays = computed(() => {
324
+ if (!props.disableDays) return [];
325
+
326
+ const validDates = [];
327
+ if (Array.isArray(props.disableDays)) {
328
+ for (let date of props.disableDays) {
329
+ let jsDate = date;
330
+ if (typeof date === 'string') jsDate = dateUtils.stringToDate(date);
331
+ else if (date instanceof Date) date = dateUtils.formatDate(date, 'YYYY-MM-DD');
332
+
333
+ if (jsDate instanceof Date && !isNaN(jsDate.getTime())) {
334
+ validDates.push(date);
335
+ // Don't return here, we need to process all dates in the array.
336
+ } else {
337
+ console.warn('Calendar: The provided `disableDays` prop contains an invalid date:', date);
338
+ }
339
+ }
340
+ } else console.warn('Calendar: The provided `disableDays` prop is invalid:', props.disableDays);
341
+
342
+ return validDates;
343
+ });
344
+
345
+ /**
346
+ * Mostly for date pickers, sets a minimum date for cell interactions.
347
+ */
348
+ const minTimestamp = computed(() => {
349
+ let date = null;
350
+ if (props.minDate && typeof props.minDate === 'string')
351
+ date = dateUtils.stringToDate(props.minDate);
352
+ else if (props.minDate && props.minDate instanceof Date) date = props.minDate;
353
+ return date?.getTime() || null;
354
+ });
355
+
356
+ /**
357
+ * Mostly for date pickers, sets a maximum date for cell interactions.
358
+ */
359
+ const maxTimestamp = computed(() => {
360
+ let date = null;
361
+ if (props.maxDate && typeof props.maxDate === 'string')
362
+ date = dateUtils.stringToDate(props.maxDate);
363
+ else if (props.maxDate && props.maxDate instanceof Date) date = props.maxDate;
364
+ return date?.getTime() || null;
365
+ });
366
+
367
+ const schedules = computed(() => {
368
+ const { view } = calendar;
369
+ const list = props.schedules;
370
+ if (!list?.length || !(view.isDay || view.isDays || view.isWeek)) return undefined;
371
+ const visible = [];
372
+ for (let i = 0; i < list.length; i++) {
373
+ const s = list[i];
374
+ if (s.hide) continue;
375
+ visible.push({ ...s, id: s.id ?? i + 1 });
376
+ }
377
+ return visible.length ? visible : undefined;
378
+ });
379
+
380
+ const rawSpecialHours = computed(() => {
381
+ const sh = props.specialHours;
382
+ const bh = props.businessHours;
383
+ if (sh && typeof sh === 'object' && !Array.isArray(sh) && Object.keys(sh).length) return sh;
384
+ if (bh && typeof bh === 'object' && !Array.isArray(bh)) return bh;
385
+ return {};
386
+ });
387
+
388
+ const specialHours = computed(() => {
389
+ const raw = rawSpecialHours.value;
390
+ if (!raw || typeof raw !== 'object') return {};
391
+
392
+ return Object.entries(raw).reduce((obj, [weekday, dayConfig]) => {
393
+ if (!weekdays.includes(weekday)) return obj;
394
+
395
+ const normalized = normalizeSpecialHoursDay(dayConfig);
396
+ if (normalized) obj[weekday] = normalized;
397
+ return obj;
398
+ }, {});
399
+ });
400
+
401
+ const specialHoursDisallowed = computed(() => buildSpecialHoursDisallowed(specialHours.value));
402
+
403
+ const editableEvents = computed(() => {
404
+ const defaults = {
405
+ drag: true,
406
+ resize: true,
407
+ delete: true,
408
+ create: true,
409
+ };
410
+ if (props.editableEvents === true) return defaults;
411
+ if (props.editableEvents === false)
412
+ return Object.keys(defaults).map((key) => (defaults[key] = false));
413
+ return { ...defaults, ...props.editableEvents };
414
+ });
415
+
416
+ const showCellEventCount = computed(() => {
417
+ const { view } = calendar;
418
+ const { eventCount } = props;
419
+ const showEventCount = Array.isArray(eventCount) ? eventCount.includes(view.id) : eventCount;
420
+ return showEventCount && ((view.isMonth && !props.eventsOnMonthView) || view.isYear);
421
+ });
422
+
423
+ const allDayEvents = computed(() => {
424
+ const { view } = calendar;
425
+ return props.allDayEvents && props.time && (view.isDay || view.isDays || view.isWeek);
426
+ });
427
+
428
+ const horizontal = computed(() => {
429
+ const { view } = calendar;
430
+ return props.horizontal && (view.isDay || view.isDays || view.isWeek);
431
+ });
432
+
433
+ const timeAtCursor = computed(() => props.timeAtCursor && props.time);
434
+
435
+ /**
436
+ * Initializes dayjs locale and loads calendar texts from both
437
+ * dayjs locale data (month/weekday names) and the library's SDLang
438
+ * calendar section (UI labels).
439
+ */
440
+ const loadTexts = async (locale) => {
441
+ const effectiveLocale = locale || globalLocal.value || 'en-us';
442
+ const weekStart = props.startWeekOnSunday ? 0 : 1;
443
+
444
+ // 1. Initialize dayjs locale (loads locale data, sets weekStart).
445
+ await initializeDateLocale(effectiveLocale, weekStart);
446
+
447
+ // 2. Get calendar section from the library's locale messages.
448
+ const calendarLang = i18nMessage.value?.calendar;
449
+
450
+ // 3. Build texts from dayjs locale data + library UI text.
451
+ const translations = createCalendarTexts(calendarLang);
452
+ Object.assign(calendar.texts, defaults.texts, translations);
453
+ };
454
+
455
+ // Keep a local copy of the events so the prop is not mandatory.
456
+ const events = reactive(props.events || []);
457
+ // Watch both reference (full replacement) and length (push/pop/splice) changes.
458
+ // Avoids deep watching which would traverse every event property on each mutation.
459
+ watch(
460
+ () => props.events,
461
+ (evts) => events.splice(0, events.length, ...(evts || [])),
462
+ );
463
+ // Watch events length to catch push/pop/splice mutations.
464
+ watch(
465
+ () => props.events?.length,
466
+ () => {
467
+ const evts = props.events;
468
+ if (evts) events.splice(0, events.length, ...evts);
469
+ },
470
+ );
471
+
472
+ // React to locale changes from either the `locale` prop or the library's global locale.
473
+ watch(
474
+ () => props.locale || globalLocal.value,
475
+ (newLocale) => loadTexts(newLocale),
476
+ );
477
+
478
+ // When startWeekOnSunday changes, re-initialize dayjs locale with new weekStart.
479
+ watch(
480
+ () => props.startWeekOnSunday,
481
+ () => loadTexts(props.locale || globalLocal.value),
482
+ );
483
+
484
+ // Initial load.
485
+ loadTexts(props.locale || globalLocal.value);
486
+
487
+ return {
488
+ ...toRefs(props),
489
+ events,
490
+ // All the events listeners for cells and events that the end user may have attached to cal.
491
+ eventListeners,
492
+ defaultView,
493
+ availableViews,
494
+ disableDays,
495
+ ready,
496
+ sm,
497
+ xs,
498
+ clickToNavigate,
499
+ hideWeekdays,
500
+ hideWeekends,
501
+ minTimestamp,
502
+ maxTimestamp,
503
+ schedules,
504
+ specialHours,
505
+ specialHoursDisallowed,
506
+ selectedDate,
507
+ editableEvents,
508
+ showCellEventCount,
509
+ allDayEvents,
510
+ horizontal,
511
+ timeAtCursor,
512
+ view,
513
+ // Getters.
514
+ get hasHiddenDays() {
515
+ return Object.keys(hideWeekdays.value).length;
516
+ },
517
+ get size() {
518
+ return xs.value ? 'xs' : sm.value ? 'sm' : 'lg';
519
+ },
520
+ loadTexts,
521
+ };
522
+ };
@@ -0,0 +1 @@
1
+ export function useEvents(calendar: Object): Object;