yuyeon 0.3.4-rc.4 → 0.3.6-beta.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 (451) hide show
  1. package/dist/style.css +1 -1
  2. package/dist/yuyeon.js +3963 -3707
  3. package/dist/yuyeon.umd.cjs +3 -3
  4. package/lib/abstract/items.js.map +1 -1
  5. package/lib/components/alert/YAlert.js +1 -2
  6. package/lib/components/alert/YAlert.js.map +1 -1
  7. package/lib/components/alert/index.js.map +1 -1
  8. package/lib/components/app/YApp.js +2 -2
  9. package/lib/components/app/YApp.js.map +1 -1
  10. package/lib/components/app/index.js.map +1 -1
  11. package/lib/components/badge/YBadge.js +7 -5
  12. package/lib/components/badge/YBadge.js.map +1 -1
  13. package/lib/components/badge/YBadge.scss +87 -86
  14. package/lib/components/badge/index.js.map +1 -1
  15. package/lib/components/bench/YBench.js +3 -4
  16. package/lib/components/bench/YBench.js.map +1 -1
  17. package/lib/components/bench/index.js.map +1 -1
  18. package/lib/components/button/YButton.js +1 -2
  19. package/lib/components/button/YButton.js.map +1 -1
  20. package/lib/components/button/index.js.map +1 -1
  21. package/lib/components/card/YCard.js.map +1 -1
  22. package/lib/components/card/YCard.scss +2 -2
  23. package/lib/components/card/YCardBody.js.map +1 -1
  24. package/lib/components/card/YCardFooter.js.map +1 -1
  25. package/lib/components/card/YCardHeader.js.map +1 -1
  26. package/lib/components/card/index.js.map +1 -1
  27. package/lib/components/checkbox/YCheckbox.js +1 -2
  28. package/lib/components/checkbox/YCheckbox.js.map +1 -1
  29. package/lib/components/checkbox/YInputCheckbox.js +1 -2
  30. package/lib/components/checkbox/YInputCheckbox.js.map +1 -1
  31. package/lib/components/checkbox/index.js.map +1 -1
  32. package/lib/components/chip/YChip.js +1 -2
  33. package/lib/components/chip/YChip.js.map +1 -1
  34. package/lib/components/chip/index.js.map +1 -1
  35. package/lib/components/date-picker/YDateCalendar.js +59 -54
  36. package/lib/components/date-picker/YDateCalendar.js.map +1 -1
  37. package/lib/components/date-picker/YDatePicker.js +24 -25
  38. package/lib/components/date-picker/YDatePicker.js.map +1 -1
  39. package/lib/components/date-picker/YDatePickerControl.js +19 -20
  40. package/lib/components/date-picker/YDatePickerControl.js.map +1 -1
  41. package/lib/components/date-picker/YMonthPicker.js +10 -11
  42. package/lib/components/date-picker/YMonthPicker.js.map +1 -1
  43. package/lib/components/date-picker/YYearPicker.js +11 -13
  44. package/lib/components/date-picker/YYearPicker.js.map +1 -1
  45. package/lib/components/date-picker/index.js.map +1 -1
  46. package/lib/components/default-provider/YDefaultProvider.js.map +1 -1
  47. package/lib/components/default-provider/index.js.map +1 -1
  48. package/lib/components/dialog/YDialog.js +32 -32
  49. package/lib/components/dialog/YDialog.js.map +1 -1
  50. package/lib/components/dialog/index.js.map +1 -1
  51. package/lib/components/divider/YDivider.js +5 -5
  52. package/lib/components/divider/YDivider.js.map +1 -1
  53. package/lib/components/divider/index.js.map +1 -1
  54. package/lib/components/draggable/YDraggable.js +10 -11
  55. package/lib/components/draggable/YDraggable.js.map +1 -1
  56. package/lib/components/draggable/index.js.map +1 -1
  57. package/lib/components/dropdown/YDropdown.js +16 -17
  58. package/lib/components/dropdown/YDropdown.js.map +1 -1
  59. package/lib/components/dropdown/index.js.map +1 -1
  60. package/lib/components/field-input/YFieldInput.js +39 -39
  61. package/lib/components/field-input/YFieldInput.js.map +1 -1
  62. package/lib/components/field-input/index.js.map +1 -1
  63. package/lib/components/form/YForm.js +12 -14
  64. package/lib/components/form/YForm.js.map +1 -1
  65. package/lib/components/form/index.js.map +1 -1
  66. package/lib/components/hover/YHover.js +9 -8
  67. package/lib/components/hover/YHover.js.map +1 -1
  68. package/lib/components/hover/index.js.map +1 -1
  69. package/lib/components/icon/YIcon.js +2 -4
  70. package/lib/components/icon/YIcon.js.map +1 -1
  71. package/lib/components/icon/index.js.map +1 -1
  72. package/lib/components/icons/YIconCheckbox.js +7 -6
  73. package/lib/components/icons/YIconCheckbox.js.map +1 -1
  74. package/lib/components/icons/YIconCheckbox.scss +4 -5
  75. package/lib/components/icons/YIconClear.js +2 -1
  76. package/lib/components/icons/YIconClear.js.map +1 -1
  77. package/lib/components/icons/YIconDropdown.js +2 -1
  78. package/lib/components/icons/YIconDropdown.js.map +1 -1
  79. package/lib/components/icons/YIconExpand.js +1 -0
  80. package/lib/components/icons/YIconExpand.js.map +1 -1
  81. package/lib/components/icons/YIconPageControl.js +7 -6
  82. package/lib/components/icons/YIconPageControl.js.map +1 -1
  83. package/lib/components/icons/YIconSort.js +6 -5
  84. package/lib/components/icons/YIconSort.js.map +1 -1
  85. package/lib/components/icons/YIconSort.scss +2 -0
  86. package/lib/components/icons/index.js.map +1 -1
  87. package/lib/components/img/YImg.js +38 -33
  88. package/lib/components/img/YImg.js.map +1 -1
  89. package/lib/components/img/index.js +1 -1
  90. package/lib/components/img/index.js.map +1 -1
  91. package/lib/components/index.js +1 -0
  92. package/lib/components/index.js.map +1 -1
  93. package/lib/components/input/YInput.js +1 -2
  94. package/lib/components/input/YInput.js.map +1 -1
  95. package/lib/components/input/YInput.scss +9 -8
  96. package/lib/components/input/index.js.map +1 -1
  97. package/lib/components/ip-field/YIpv4Field.js +1 -2
  98. package/lib/components/ip-field/YIpv4Field.js.map +1 -1
  99. package/lib/components/ip-field/index.js.map +1 -1
  100. package/lib/components/layer/YLayer.js +38 -25
  101. package/lib/components/layer/YLayer.js.map +1 -1
  102. package/lib/components/layer/active-delay.js.map +1 -1
  103. package/lib/components/layer/active-stack.js.map +1 -1
  104. package/lib/components/layer/base.js +11 -1
  105. package/lib/components/layer/base.js.map +1 -1
  106. package/lib/components/layer/content.js.map +1 -1
  107. package/lib/components/layer/index.js.map +1 -1
  108. package/lib/components/layer/scroll-strategies.js.map +1 -1
  109. package/lib/components/list/YList.js +1 -2
  110. package/lib/components/list/YList.js.map +1 -1
  111. package/lib/components/list/YListItem.js +1 -2
  112. package/lib/components/list/YListItem.js.map +1 -1
  113. package/lib/components/list/index.js.map +1 -1
  114. package/lib/components/loading/YSpinnerRing.js.map +1 -1
  115. package/lib/components/loading/index.js.map +1 -1
  116. package/lib/components/menu/YMenu.js +22 -25
  117. package/lib/components/menu/YMenu.js.map +1 -1
  118. package/lib/components/menu/YMenu.scss +3 -4
  119. package/lib/components/menu/index.js.map +1 -1
  120. package/lib/components/navigation/YNavigation.js +1 -2
  121. package/lib/components/navigation/YNavigation.js.map +1 -1
  122. package/lib/components/navigation/index.js.map +1 -1
  123. package/lib/components/pagination/YPagination.js +1 -2
  124. package/lib/components/pagination/YPagination.js.map +1 -1
  125. package/lib/components/pagination/index.js.map +1 -1
  126. package/lib/components/panel/YDividePanel.js +1 -2
  127. package/lib/components/panel/YDividePanel.js.map +1 -1
  128. package/lib/components/panel/YDividePanel.scss +44 -43
  129. package/lib/components/panel/index.js.map +1 -1
  130. package/lib/components/plate/YPlate.js +1 -2
  131. package/lib/components/plate/YPlate.js.map +1 -1
  132. package/lib/components/plate/index.js.map +1 -1
  133. package/lib/components/progress-bar/YProgressBar.js +1 -2
  134. package/lib/components/progress-bar/YProgressBar.js.map +1 -1
  135. package/lib/components/progress-bar/index.js.map +1 -1
  136. package/lib/components/progress-ring/YProgressRing.js +3 -4
  137. package/lib/components/progress-ring/YProgressRing.js.map +1 -1
  138. package/lib/components/progress-ring/index.js.map +1 -1
  139. package/lib/components/radio/YRadio.js +1 -1
  140. package/lib/components/radio/YRadio.js.map +1 -1
  141. package/lib/components/radio/YRadioIcon.js.map +1 -1
  142. package/lib/components/radio/YRadioIcon.scss +2 -3
  143. package/lib/components/radio/index.js.map +1 -1
  144. package/lib/components/select/YSelect.js +41 -42
  145. package/lib/components/select/YSelect.js.map +1 -1
  146. package/lib/components/select/index.js.map +1 -1
  147. package/lib/components/slider/YSlider.js.map +1 -1
  148. package/lib/components/slider/index.js.map +1 -1
  149. package/lib/components/slider/slider.js.map +1 -1
  150. package/lib/components/snackbar/YSnackbar.js +6 -6
  151. package/lib/components/snackbar/YSnackbar.js.map +1 -1
  152. package/lib/components/snackbar/index.js.map +1 -1
  153. package/lib/components/switch/YSwitch.js +1 -2
  154. package/lib/components/switch/YSwitch.js.map +1 -1
  155. package/lib/components/switch/index.js.map +1 -1
  156. package/lib/components/tab/YTab.js +2 -3
  157. package/lib/components/tab/YTab.js.map +1 -1
  158. package/lib/components/tab/YTab.scss +1 -1
  159. package/lib/components/tab/YTabs.js +1 -2
  160. package/lib/components/tab/YTabs.js.map +1 -1
  161. package/lib/components/tab/index.js.map +1 -1
  162. package/lib/components/tab/shared.js.map +1 -1
  163. package/lib/components/tab/types.js.map +1 -1
  164. package/lib/components/table/YDataTable.js +1 -2
  165. package/lib/components/table/YDataTable.js.map +1 -1
  166. package/lib/components/table/YDataTableBody.js +2 -3
  167. package/lib/components/table/YDataTableBody.js.map +1 -1
  168. package/lib/components/table/YDataTableCell.js +1 -2
  169. package/lib/components/table/YDataTableCell.js.map +1 -1
  170. package/lib/components/table/YDataTableControl.js +1 -1
  171. package/lib/components/table/YDataTableControl.js.map +1 -1
  172. package/lib/components/table/YDataTableControl.scss +17 -17
  173. package/lib/components/table/YDataTableHead.js +1 -1
  174. package/lib/components/table/YDataTableHead.js.map +1 -1
  175. package/lib/components/table/YDataTableLayer.js +1 -2
  176. package/lib/components/table/YDataTableLayer.js.map +1 -1
  177. package/lib/components/table/YDataTableLayerRow.js +1 -2
  178. package/lib/components/table/YDataTableLayerRow.js.map +1 -1
  179. package/lib/components/table/YDataTableLayerRows.js +3 -4
  180. package/lib/components/table/YDataTableLayerRows.js.map +1 -1
  181. package/lib/components/table/YDataTableRow.js +1 -2
  182. package/lib/components/table/YDataTableRow.js.map +1 -1
  183. package/lib/components/table/YDataTableServer.js +1 -2
  184. package/lib/components/table/YDataTableServer.js.map +1 -1
  185. package/lib/components/table/YTable.js +1 -2
  186. package/lib/components/table/YTable.js.map +1 -1
  187. package/lib/components/table/composables/expand.js.map +1 -1
  188. package/lib/components/table/composables/header.js.map +1 -1
  189. package/lib/components/table/composables/items.js.map +1 -1
  190. package/lib/components/table/composables/measure.js +1 -1
  191. package/lib/components/table/composables/measure.js.map +1 -1
  192. package/lib/components/table/composables/options.js.map +1 -1
  193. package/lib/components/table/composables/pagination.js.map +1 -1
  194. package/lib/components/table/composables/provides.js.map +1 -1
  195. package/lib/components/table/composables/selection.js.map +1 -1
  196. package/lib/components/table/composables/sorted-items.js.map +1 -1
  197. package/lib/components/table/composables/sorting.js.map +1 -1
  198. package/lib/components/table/index.js.map +1 -1
  199. package/lib/components/table/types/common.js.map +1 -1
  200. package/lib/components/table/types/header.js.map +1 -1
  201. package/lib/components/table/types/index.js.map +1 -1
  202. package/lib/components/table/types/item.js.map +1 -1
  203. package/lib/components/table/types/row.js.map +1 -1
  204. package/lib/components/text-ellipsis/YTextEllipsis.js +1 -2
  205. package/lib/components/text-ellipsis/YTextEllipsis.js.map +1 -1
  206. package/lib/components/text-ellipsis/index.js.map +1 -1
  207. package/lib/components/text-highlighter/YTextHighlighter.js.map +1 -1
  208. package/lib/components/text-highlighter/index.js.map +1 -1
  209. package/lib/components/text-interpolation/YTi.js +2 -2
  210. package/lib/components/text-interpolation/YTi.js.map +1 -1
  211. package/lib/components/text-interpolation/index.js.map +1 -1
  212. package/lib/components/textarea/YTextarea.js +1 -2
  213. package/lib/components/textarea/YTextarea.js.map +1 -1
  214. package/lib/components/textarea/index.js.map +1 -1
  215. package/lib/components/toggle-button/YToggleButton.js.map +1 -1
  216. package/lib/components/toggle-button/index.js.map +1 -1
  217. package/lib/components/tooltip/YTooltip.js +20 -21
  218. package/lib/components/tooltip/YTooltip.js.map +1 -1
  219. package/lib/components/tooltip/index.js.map +1 -1
  220. package/lib/components/transitions/expand-transition.js.map +1 -1
  221. package/lib/components/transitions/index.js.map +1 -1
  222. package/lib/components/tree-view/YTreeView.js +23 -29
  223. package/lib/components/tree-view/YTreeView.js.map +1 -1
  224. package/lib/components/tree-view/YTreeViewNode.js +58 -21
  225. package/lib/components/tree-view/YTreeViewNode.js.map +1 -1
  226. package/lib/components/tree-view/index.js.map +1 -1
  227. package/lib/components/tree-view/tree-view.js +61 -8
  228. package/lib/components/tree-view/tree-view.js.map +1 -1
  229. package/lib/components/tree-view/types.js.map +1 -1
  230. package/lib/components/tree-view/util.js.map +1 -1
  231. package/lib/composables/choice-link.js.map +1 -1
  232. package/lib/composables/choice.js.map +1 -1
  233. package/lib/composables/communication.js.map +1 -1
  234. package/lib/composables/component.js.map +1 -1
  235. package/lib/composables/coordinate/arrangement.js.map +1 -1
  236. package/lib/composables/coordinate/index.js +23 -13
  237. package/lib/composables/coordinate/index.js.map +1 -1
  238. package/lib/composables/coordinate/levitation.js +79 -50
  239. package/lib/composables/coordinate/levitation.js.map +1 -1
  240. package/lib/composables/coordinate/types.js.map +1 -1
  241. package/lib/composables/coordinate/utils/point.js.map +1 -1
  242. package/lib/composables/date/factory.js.map +1 -1
  243. package/lib/composables/date/index.js.map +1 -1
  244. package/lib/composables/date/setting.js.map +1 -1
  245. package/lib/composables/date/types.js.map +1 -1
  246. package/lib/composables/defaults/index.js.map +1 -1
  247. package/lib/composables/defaults/share.js.map +1 -1
  248. package/lib/composables/defaults/types.js.map +1 -1
  249. package/lib/composables/dimension.js.map +1 -1
  250. package/lib/composables/focus.js.map +1 -1
  251. package/lib/composables/form.js +5 -5
  252. package/lib/composables/form.js.map +1 -1
  253. package/lib/composables/i18n/index.js.map +1 -1
  254. package/lib/composables/i18n/locale.js.map +1 -1
  255. package/lib/composables/i18n/rtl.js.map +1 -1
  256. package/lib/composables/i18n/share.js.map +1 -1
  257. package/lib/composables/icon.js +1 -2
  258. package/lib/composables/icon.js.map +1 -1
  259. package/lib/composables/index.js.map +1 -1
  260. package/lib/composables/layer-group.js.map +1 -1
  261. package/lib/composables/layout.js.map +1 -1
  262. package/lib/composables/list-items.js.map +1 -1
  263. package/lib/composables/progress.js.map +1 -1
  264. package/lib/composables/ref.js.map +1 -1
  265. package/lib/composables/resize-observer.js.map +1 -1
  266. package/lib/composables/scope.js.map +1 -1
  267. package/lib/composables/style-color.js +6 -5
  268. package/lib/composables/style-color.js.map +1 -1
  269. package/lib/composables/theme/factory.js.map +1 -1
  270. package/lib/composables/theme/helper.js.map +1 -1
  271. package/lib/composables/theme/index.js +8 -1
  272. package/lib/composables/theme/index.js.map +1 -1
  273. package/lib/composables/theme/setting.js.map +1 -1
  274. package/lib/composables/theme/types.js.map +1 -1
  275. package/lib/composables/timing.js +13 -5
  276. package/lib/composables/timing.js.map +1 -1
  277. package/lib/composables/transition.js.map +1 -1
  278. package/lib/composables/validation.js.map +1 -1
  279. package/lib/composables/vue-router.js.map +1 -1
  280. package/lib/directives/complement-click/index.js.map +1 -1
  281. package/lib/directives/index.js +3 -0
  282. package/lib/directives/index.js.map +1 -0
  283. package/lib/directives/plate-wave/index.js.map +1 -1
  284. package/lib/directives/plate-wave/plate-wave.scss +44 -33
  285. package/lib/directives/theme-class/index.js +24 -0
  286. package/lib/directives/theme-class/index.js.map +1 -0
  287. package/lib/etc/index.js.map +1 -1
  288. package/lib/i18n/built-in.js.map +1 -1
  289. package/lib/i18n/config.js.map +1 -1
  290. package/lib/i18n/types.js.map +1 -1
  291. package/lib/index.js +3 -3
  292. package/lib/index.js.map +1 -1
  293. package/lib/locales/en.js.map +1 -1
  294. package/lib/locales/index.js.map +1 -1
  295. package/lib/locales/ko.js.map +1 -1
  296. package/lib/mixins/di.js.map +1 -1
  297. package/lib/mixins/rebind-attrs.js +0 -2
  298. package/lib/mixins/rebind-attrs.js.map +1 -1
  299. package/lib/styles/_elevation.scss +0 -1
  300. package/lib/styles/base.scss +3 -1
  301. package/lib/styles/settings/_elevation.scss +12 -12
  302. package/lib/styles/settings/_provided.scss +33 -33
  303. package/lib/styles/theme/dark.scss +3 -3
  304. package/lib/styles/theme/index.scss +4 -5
  305. package/lib/styles/theme/light.scss +3 -3
  306. package/lib/styles/util/_mixin.scss +16 -16
  307. package/lib/types/index.js.map +1 -1
  308. package/lib/util/anchor.js.map +1 -1
  309. package/lib/util/array.js.map +1 -1
  310. package/lib/util/collection.js.map +1 -1
  311. package/lib/util/color/apca.js +31 -30
  312. package/lib/util/color/apca.js.map +1 -1
  313. package/lib/util/color/const.js.map +1 -1
  314. package/lib/util/color/contrast/contrast.js.map +1 -1
  315. package/lib/util/color/conversion.js.map +1 -1
  316. package/lib/util/color/hct/cam16.js +95 -95
  317. package/lib/util/color/hct/cam16.js.map +1 -1
  318. package/lib/util/color/hct/hct-solver.js +113 -113
  319. package/lib/util/color/hct/hct-solver.js.map +1 -1
  320. package/lib/util/color/hct/hct.js +71 -71
  321. package/lib/util/color/hct/hct.js.map +1 -1
  322. package/lib/util/color/hct/viewing-conditions.js +6 -4
  323. package/lib/util/color/hct/viewing-conditions.js.map +1 -1
  324. package/lib/util/color/index.js +12 -12
  325. package/lib/util/color/index.js.map +1 -1
  326. package/lib/util/color/palettes/core-palette.js.map +1 -1
  327. package/lib/util/color/palettes/tonal-palette.js +3 -3
  328. package/lib/util/color/palettes/tonal-palette.js.map +1 -1
  329. package/lib/util/color/types.js.map +1 -1
  330. package/lib/util/color/utils/math-utils.js +62 -62
  331. package/lib/util/color/utils/math-utils.js.map +1 -1
  332. package/lib/util/common.js +28 -13
  333. package/lib/util/common.js.map +1 -1
  334. package/lib/util/component/component.js.map +1 -1
  335. package/lib/util/component/index.js.map +1 -1
  336. package/lib/util/component/inject-self.js.map +1 -1
  337. package/lib/util/component/props.js.map +1 -1
  338. package/lib/util/component/types.js.map +1 -1
  339. package/lib/util/date/adapters/yuyeon-date-adapter.js +3 -3
  340. package/lib/util/date/adapters/yuyeon-date-adapter.js.map +1 -1
  341. package/lib/util/date/built-in.js +2 -0
  342. package/lib/util/date/built-in.js.map +1 -1
  343. package/lib/util/date/index.js +1 -1
  344. package/lib/util/date/index.js.map +1 -1
  345. package/lib/util/date/types.js.map +1 -1
  346. package/lib/util/debounce.js +1 -1
  347. package/lib/util/debounce.js.map +1 -1
  348. package/lib/util/dom.js +10 -1
  349. package/lib/util/dom.js.map +1 -1
  350. package/lib/util/environments.js.map +1 -1
  351. package/lib/util/frame-scheduler.js +3 -3
  352. package/lib/util/frame-scheduler.js.map +1 -1
  353. package/lib/util/index.js +11 -11
  354. package/lib/util/index.js.map +1 -1
  355. package/lib/util/reactivity.js +3 -3
  356. package/lib/util/reactivity.js.map +1 -1
  357. package/lib/util/rect.js.map +1 -1
  358. package/lib/util/scroll.js.map +1 -1
  359. package/lib/util/string.js +3 -1
  360. package/lib/util/string.js.map +1 -1
  361. package/lib/util/ui.js +8 -7
  362. package/lib/util/ui.js.map +1 -1
  363. package/lib/util/validation.js.map +1 -1
  364. package/package.json +11 -2
  365. package/types/abstract/items.d.ts +4 -4
  366. package/types/components/alert/YAlert.d.ts +2 -2
  367. package/types/components/badge/YBadge.d.ts +9 -3
  368. package/types/components/button/YButton.d.ts +3 -3
  369. package/types/components/checkbox/YCheckbox.d.ts +4 -4
  370. package/types/components/chip/YChip.d.ts +0 -3
  371. package/types/components/date-picker/YDateCalendar.d.ts +4 -3
  372. package/types/components/date-picker/YDatePickerControl.d.ts +7 -7
  373. package/types/components/dialog/YDialog.d.ts +116 -6484
  374. package/types/components/draggable/YDraggable.d.ts +6 -6
  375. package/types/components/dropdown/YDropdown.d.ts +87 -87
  376. package/types/components/field-input/YFieldInput.d.ts +14 -14
  377. package/types/components/form/YForm.d.ts +3 -3
  378. package/types/components/icon/YIcon.d.ts +4 -4
  379. package/types/components/icons/YIconPageControl.d.ts +1 -1
  380. package/types/components/icons/YIconSort.d.ts +1 -1
  381. package/types/components/icons/index.d.ts +4 -4
  382. package/types/components/img/YImg.d.ts +30 -27
  383. package/types/components/img/index.d.ts +1 -0
  384. package/types/components/index.d.ts +1 -0
  385. package/types/components/input/YInput.d.ts +13 -13
  386. package/types/components/ip-field/YIpv4Field.d.ts +5 -5
  387. package/types/components/layer/YLayer.d.ts +59 -3242
  388. package/types/components/layer/base.d.ts +4 -0
  389. package/types/components/layer/scroll-strategies.d.ts +4 -4
  390. package/types/components/menu/YMenu.d.ts +83 -6451
  391. package/types/components/pagination/YPagination.d.ts +3 -3
  392. package/types/components/select/YSelect.d.ts +172 -496
  393. package/types/components/slider/YSlider.d.ts +1 -1
  394. package/types/components/snackbar/YSnackbar.d.ts +55 -55
  395. package/types/components/tab/YTab.d.ts +3 -3
  396. package/types/components/tab/YTabs.d.ts +1 -1
  397. package/types/components/table/YDataTable.d.ts +30 -87
  398. package/types/components/table/YDataTableBody.d.ts +3 -3
  399. package/types/components/table/YDataTableCell.d.ts +2 -2
  400. package/types/components/table/YDataTableControl.d.ts +6 -6
  401. package/types/components/table/YDataTableLayer.d.ts +2 -2
  402. package/types/components/table/YDataTableRow.d.ts +1 -1
  403. package/types/components/table/YDataTableServer.d.ts +37 -94
  404. package/types/components/table/YTable.d.ts +3 -3
  405. package/types/components/table/composables/expand.d.ts +4 -4
  406. package/types/components/table/composables/header.d.ts +16 -48
  407. package/types/components/table/composables/items.d.ts +2 -2
  408. package/types/components/table/composables/pagination.d.ts +10 -10
  409. package/types/components/table/composables/selection.d.ts +6 -6
  410. package/types/components/table/composables/sorting.d.ts +8 -14
  411. package/types/components/table/types/item.d.ts +1 -1
  412. package/types/components/textarea/YTextarea.d.ts +30 -30
  413. package/types/components/tooltip/YTooltip.d.ts +67 -67
  414. package/types/components/tree-view/YTreeView.d.ts +21 -29
  415. package/types/components/tree-view/YTreeViewNode.d.ts +76 -6
  416. package/types/components/tree-view/tree-view.d.ts +19 -3
  417. package/types/composables/choice.d.ts +2 -2
  418. package/types/composables/coordinate/index.d.ts +28 -3207
  419. package/types/composables/coordinate/levitation.d.ts +4 -2
  420. package/types/composables/coordinate/types.d.ts +1 -0
  421. package/types/composables/dimension.d.ts +6 -6
  422. package/types/composables/form.d.ts +17 -27
  423. package/types/composables/list-items.d.ts +3 -3
  424. package/types/composables/style-color.d.ts +22 -1
  425. package/types/composables/theme/index.d.ts +1 -0
  426. package/types/composables/transition.d.ts +10 -10
  427. package/types/composables/validation.d.ts +6 -6
  428. package/types/composables/vue-router.d.ts +3 -3
  429. package/types/declares.d.ts +1 -0
  430. package/types/directives/index.d.ts +2 -0
  431. package/types/directives/plate-wave/index.d.ts +7 -1
  432. package/types/globals.d.ts +4 -5
  433. package/types/shims.d.ts +65 -59
  434. package/types/types/index.d.ts +3 -0
  435. package/types/util/anchor.d.ts +1 -1
  436. package/types/util/common.d.ts +3 -0
  437. package/types/util/component/component.d.ts +1 -2
  438. package/types/util/component/props.d.ts +1 -1
  439. package/types/util/component/types.d.ts +1 -1
  440. package/types/util/date/index.d.ts +1 -1
  441. package/types/util/dom.d.ts +2 -0
  442. package/types/util/index.d.ts +11 -11
  443. package/types/components/table/composibles/header.d.ts +0 -207
  444. package/types/components/table/composibles/items.d.ts +0 -55
  445. package/types/components/table/composibles/measure.d.ts +0 -8
  446. package/types/components/table/composibles/options.d.ts +0 -11
  447. package/types/components/table/composibles/pagination.d.ts +0 -81
  448. package/types/components/table/composibles/selection.d.ts +0 -82
  449. package/types/components/table/composibles/sorted-items.d.ts +0 -7
  450. package/types/components/table/composibles/sorting.d.ts +0 -62
  451. /package/types/directives/{theme-class.d.ts → theme-class/index.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["onScopeDispose","ref","watch","propsFactory","useToggleScope","applyArrangement","applyLevitation","coordinateStrategies","levitation","arrangement","pressCoordinateProps","coordinateStrategy","type","String","Function","default","position","align","origin","offset","Number","Array","viewportMargin","useCoordinate","props","state","updateCoordinate","coordinate","coordinateStyles","active","value","reset","undefined","strategy","window","addEventListener","onResize","passive","removeEventListener","e"],"sources":["../../../src/composables/coordinate/index.ts"],"sourcesContent":["import type { CSSProperties, PropType, Ref } from 'vue';\r\nimport { onScopeDispose, ref, watch } from 'vue';\r\n\r\nimport { Rect } from '../../util/rect';\r\nimport { propsFactory } from '../../util/component';\r\nimport { useToggleScope } from '../scope';\r\nimport { applyArrangement } from './arrangement';\r\nimport { applyLevitation } from './levitation';\r\n\r\nimport { CoordinateState } from './types';\r\n\r\nconst coordinateStrategies = {\r\n levitation: applyLevitation,\r\n arrangement: applyArrangement,\r\n};\r\n\r\nexport type CoordinateStrategyFn = (\r\n props: any,\r\n state: CoordinateState,\r\n coordinate: Ref<Rect | undefined>,\r\n coordinateStyles: Ref<CSSProperties>,\r\n) => undefined | { updateCoordinate: (e: Event) => void };\r\n\r\nexport const pressCoordinateProps = propsFactory(\r\n {\r\n coordinateStrategy: {\r\n type: [String, Function] as PropType<keyof typeof coordinateStrategies | CoordinateStrategyFn>,\r\n default: 'arrangement',\r\n },\r\n position: {\r\n type: String as PropType<\r\n 'default' | 'top' | 'end' | 'right' | 'bottom' | 'left' | 'start'\r\n >,\r\n default: 'default',\r\n },\r\n align: {\r\n type: String as PropType<'start' | 'center' | 'end' | 'top' | 'bottom'>,\r\n default: 'start',\r\n },\r\n origin: {\r\n type: String,\r\n default: 'auto'\r\n },\r\n offset: {\r\n type: [Number, String, Array] as PropType<number | string | number[]>,\r\n },\r\n viewportMargin: {\r\n type: [Number, String, Array],\r\n default: 16,\r\n }\r\n },\r\n 'Coordinate',\r\n);\r\n\r\nexport function useCoordinate(props: any, state: CoordinateState) {\r\n const updateCoordinate = ref<(e: Event) => void>();\r\n const coordinate = ref<Rect | undefined>();\r\n const coordinateStyles = ref<CSSProperties>({});\r\n\r\n useToggleScope(\r\n () => !!(state.active.value && props.coordinateStrategy),\r\n (reset) => {\r\n watch(() => props.coordinateStrategy, reset);\r\n onScopeDispose(() => {\r\n updateCoordinate.value = undefined;\r\n });\r\n\r\n if (typeof props.coordinateStrategy === 'function') {\r\n updateCoordinate.value = props.coordinateStrategy(\r\n props,\r\n state,\r\n coordinate,\r\n coordinateStyles,\r\n )?.updateCoordinate;\r\n } else {\r\n const strategy =\r\n coordinateStrategies[\r\n props.coordinateStrategy as keyof typeof coordinateStrategies\r\n ];\r\n updateCoordinate.value = strategy?.(\r\n props,\r\n state,\r\n coordinate,\r\n coordinateStyles,\r\n )?.updateCoordinate;\r\n }\r\n },\r\n );\r\n\r\n window.addEventListener('resize', onResize, { passive: true });\r\n\r\n onScopeDispose(() => {\r\n window.removeEventListener('resize', onResize);\r\n updateCoordinate.value = undefined;\r\n });\r\n\r\n function onResize(e: Event) {\r\n updateCoordinate.value?.(e);\r\n }\r\n\r\n return {\r\n coordinate,\r\n coordinateStyles,\r\n updateCoordinate,\r\n };\r\n}\r\n"],"mappings":"AACA,SAASA,cAAc,EAAEC,GAAG,EAAEC,KAAK,QAAQ,KAAK;AAAC,SAGxCC,YAAY;AAAA,SACZC,cAAc;AAAA,SACdC,gBAAgB;AAAA,SAChBC,eAAe;AAIxB,MAAMC,oBAAoB,GAAG;EAC3BC,UAAU,EAAEF,eAAe;EAC3BG,WAAW,EAAEJ;AACf,CAAC;AASD,OAAO,MAAMK,oBAAoB,GAAGP,YAAY,CAC9C;EACEQ,kBAAkB,EAAE;IAClBC,IAAI,EAAE,CAACC,MAAM,EAAEC,QAAQ,CAAuE;IAC9FC,OAAO,EAAE;EACX,CAAC;EACDC,QAAQ,EAAE;IACRJ,IAAI,EAAEC,MAEL;IACDE,OAAO,EAAE;EACX,CAAC;EACDE,KAAK,EAAE;IACLL,IAAI,EAAEC,MAAiE;IACvEE,OAAO,EAAE;EACX,CAAC;EACDG,MAAM,EAAE;IACNN,IAAI,EAAEC,MAAM;IACZE,OAAO,EAAE;EACX,CAAC;EACDI,MAAM,EAAE;IACNP,IAAI,EAAE,CAACQ,MAAM,EAAEP,MAAM,EAAEQ,KAAK;EAC9B,CAAC;EACDC,cAAc,EAAE;IACdV,IAAI,EAAE,CAACQ,MAAM,EAAEP,MAAM,EAAEQ,KAAK,CAAC;IAC7BN,OAAO,EAAE;EACX;AACF,CAAC,EACD,YACF,CAAC;AAED,OAAO,SAASQ,aAAaA,CAACC,KAAU,EAAEC,KAAsB,EAAE;EAChE,MAAMC,gBAAgB,GAAGzB,GAAG,CAAqB,CAAC;EAClD,MAAM0B,UAAU,GAAG1B,GAAG,CAAmB,CAAC;EAC1C,MAAM2B,gBAAgB,GAAG3B,GAAG,CAAgB,CAAC,CAAC,CAAC;EAE/CG,cAAc,CACZ,MAAM,CAAC,EAAEqB,KAAK,CAACI,MAAM,CAACC,KAAK,IAAIN,KAAK,CAACb,kBAAkB,CAAC,EACvDoB,KAAK,IAAK;IACT7B,KAAK,CAAC,MAAMsB,KAAK,CAACb,kBAAkB,EAAEoB,KAAK,CAAC;IAC5C/B,cAAc,CAAC,MAAM;MACnB0B,gBAAgB,CAACI,KAAK,GAAGE,SAAS;IACpC,CAAC,CAAC;IAEF,IAAI,OAAOR,KAAK,CAACb,kBAAkB,KAAK,UAAU,EAAE;MAClDe,gBAAgB,CAACI,KAAK,GAAGN,KAAK,CAACb,kBAAkB,CAC/Ca,KAAK,EACLC,KAAK,EACLE,UAAU,EACVC,gBACF,CAAC,EAAEF,gBAAgB;IACrB,CAAC,MAAM;MACL,MAAMO,QAAQ,GACZ1B,oBAAoB,CAClBiB,KAAK,CAACb,kBAAkB,CACzB;MACHe,gBAAgB,CAACI,KAAK,GAAGG,QAAQ,GAC/BT,KAAK,EACLC,KAAK,EACLE,UAAU,EACVC,gBACF,CAAC,EAAEF,gBAAgB;IACrB;EACF,CACF,CAAC;EAEDQ,MAAM,CAACC,gBAAgB,CAAC,QAAQ,EAAEC,QAAQ,EAAE;IAAEC,OAAO,EAAE;EAAK,CAAC,CAAC;EAE9DrC,cAAc,CAAC,MAAM;IACnBkC,MAAM,CAACI,mBAAmB,CAAC,QAAQ,EAAEF,QAAQ,CAAC;IAC9CV,gBAAgB,CAACI,KAAK,GAAGE,SAAS;EACpC,CAAC,CAAC;EAEF,SAASI,QAAQA,CAACG,CAAQ,EAAE;IAC1Bb,gBAAgB,CAACI,KAAK,GAAGS,CAAC,CAAC;EAC7B;EAEA,OAAO;IACLZ,UAAU;IACVC,gBAAgB;IAChBF;EACF,CAAC;AACH"}
1
+ {"version":3,"file":"index.js","names":["onScopeDispose","ref","watch","propsFactory","useToggleScope","applyArrangement","applyLevitation","coordinateStrategies","levitation","arrangement","pressCoordinateProps","coordinateStrategy","type","String","Function","default","position","align","origin","offset","Number","Array","viewportMargin","useCoordinate","props","state","updateCoordinate","coordination","side","rect","x","y","width","height","coordinateStyles","active","value","reset","undefined","strategy","window","addEventListener","onResize","passive","removeEventListener","e"],"sources":["../../../src/composables/coordinate/index.ts"],"sourcesContent":["import type { PropType, Ref } from \"vue\";\r\nimport { onScopeDispose, ref, watch } from \"vue\";\r\n\r\nimport type { CssProperties } from \"@/types\";\r\n\r\nimport { propsFactory } from \"../../util/component\";\r\nimport type { Rect } from \"../../util/rect\";\r\nimport { useToggleScope } from \"../scope\";\r\nimport { applyArrangement } from \"./arrangement\";\r\nimport { applyLevitation } from \"./levitation\";\r\nimport type { CoordinateState } from \"./types\";\r\n\r\nconst coordinateStrategies = {\r\n\tlevitation: applyLevitation,\r\n\tarrangement: applyArrangement,\r\n};\r\n\r\nexport type CoordinateStrategyFn = (\r\n\tprops: any,\r\n\tstate: CoordinateState,\r\n\tcoordination: Ref<any>,\r\n\tcoordinateStyles: Ref<CssProperties>,\r\n) => undefined | { updateCoordinate: (e: Event) => void };\r\n\r\nexport const pressCoordinateProps = propsFactory(\r\n\t{\r\n\t\tcoordinateStrategy: {\r\n\t\t\ttype: [String, Function] as PropType<\r\n\t\t\t\tkeyof typeof coordinateStrategies | CoordinateStrategyFn\r\n\t\t\t>,\r\n\t\t\tdefault: \"arrangement\",\r\n\t\t},\r\n\t\tposition: {\r\n\t\t\ttype: String as PropType<\r\n\t\t\t\t\"default\" | \"top\" | \"end\" | \"right\" | \"bottom\" | \"left\" | \"start\"\r\n\t\t\t>,\r\n\t\t\tdefault: \"default\",\r\n\t\t},\r\n\t\talign: {\r\n\t\t\ttype: String as PropType<\"start\" | \"center\" | \"end\" | \"top\" | \"bottom\">,\r\n\t\t\tdefault: \"start\",\r\n\t\t},\r\n\t\torigin: {\r\n\t\t\ttype: String,\r\n\t\t\tdefault: \"auto\",\r\n\t\t},\r\n\t\toffset: {\r\n\t\t\ttype: [Number, String, Array] as PropType<number | string | number[]>,\r\n\t\t},\r\n\t\tviewportMargin: {\r\n\t\t\ttype: [Number, String, Array],\r\n\t\t\tdefault: 16,\r\n\t\t},\r\n\t},\r\n\t\"Coordinate\",\r\n);\r\n\r\nexport function useCoordinate(props: any, state: CoordinateState) {\r\n\tconst updateCoordinate = ref<(e: Event) => void>();\r\n\tconst coordination = ref<any>({\r\n\t\tside: '',\r\n\t\talign: '',\r\n\t\toffset: [0, 0],\r\n\t\trect: {\r\n\t\t\tx: 0,\r\n\t\t\ty: 0,\r\n\t\t\twidth: 0,\r\n\t\t\theight: 0\r\n\t\t}\r\n\t});\r\n\tconst coordinateStyles = ref<CssProperties>({});\r\n\r\n\tuseToggleScope(\r\n\t\t() => !!(state.active.value && props.coordinateStrategy),\r\n\t\t(reset) => {\r\n\t\t\twatch(() => props.coordinateStrategy, reset);\r\n\t\t\tonScopeDispose(() => {\r\n\t\t\t\tupdateCoordinate.value = undefined;\r\n\t\t\t});\r\n\r\n\t\t\tif (typeof props.coordinateStrategy === \"function\") {\r\n\t\t\t\tupdateCoordinate.value = props.coordinateStrategy(\r\n\t\t\t\t\tprops,\r\n\t\t\t\t\tstate,\r\n\t\t\t\t\tcoordination,\r\n\t\t\t\t\tcoordinateStyles,\r\n\t\t\t\t)?.updateCoordinate;\r\n\t\t\t} else {\r\n\t\t\t\tconst strategy =\r\n\t\t\t\t\tcoordinateStrategies[\r\n\t\t\t\t\t\tprops.coordinateStrategy as keyof typeof coordinateStrategies\r\n\t\t\t\t\t];\r\n\t\t\t\tupdateCoordinate.value = strategy?.(\r\n\t\t\t\t\tprops,\r\n\t\t\t\t\tstate,\r\n\t\t\t\t\tcoordination,\r\n\t\t\t\t\tcoordinateStyles,\r\n\t\t\t\t)?.updateCoordinate;\r\n\t\t\t}\r\n\t\t},\r\n\t);\r\n\r\n\twindow.addEventListener(\"resize\", onResize, { passive: true });\r\n\r\n\tonScopeDispose(() => {\r\n\t\twindow.removeEventListener(\"resize\", onResize);\r\n\t\tupdateCoordinate.value = undefined;\r\n\t});\r\n\r\n\tfunction onResize(e: Event) {\r\n\t\tupdateCoordinate.value?.(e);\r\n\t}\r\n\r\n\treturn {\r\n\t\tcoordination,\r\n\t\tcoordinateStyles,\r\n\t\tupdateCoordinate,\r\n\t};\r\n}\r\n"],"mappings":"AACA,SAASA,cAAc,EAAEC,GAAG,EAAEC,KAAK,QAAQ,KAAK;AAAC,SAIxCC,YAAY;AAAA,SAEZC,cAAc;AAAA,SACdC,gBAAgB;AAAA,SAChBC,eAAe;AAGxB,MAAMC,oBAAoB,GAAG;EAC5BC,UAAU,EAAEF,eAAe;EAC3BG,WAAW,EAAEJ;AACd,CAAC;AASD,OAAO,MAAMK,oBAAoB,GAAGP,YAAY,CAC/C;EACCQ,kBAAkB,EAAE;IACnBC,IAAI,EAAE,CAACC,MAAM,EAAEC,QAAQ,CAEtB;IACDC,OAAO,EAAE;EACV,CAAC;EACDC,QAAQ,EAAE;IACTJ,IAAI,EAAEC,MAEL;IACDE,OAAO,EAAE;EACV,CAAC;EACDE,KAAK,EAAE;IACNL,IAAI,EAAEC,MAAiE;IACvEE,OAAO,EAAE;EACV,CAAC;EACDG,MAAM,EAAE;IACPN,IAAI,EAAEC,MAAM;IACZE,OAAO,EAAE;EACV,CAAC;EACDI,MAAM,EAAE;IACPP,IAAI,EAAE,CAACQ,MAAM,EAAEP,MAAM,EAAEQ,KAAK;EAC7B,CAAC;EACDC,cAAc,EAAE;IACfV,IAAI,EAAE,CAACQ,MAAM,EAAEP,MAAM,EAAEQ,KAAK,CAAC;IAC7BN,OAAO,EAAE;EACV;AACD,CAAC,EACD,YACD,CAAC;AAED,OAAO,SAASQ,aAAaA,CAACC,KAAU,EAAEC,KAAsB,EAAE;EACjE,MAAMC,gBAAgB,GAAGzB,GAAG,CAAqB,CAAC;EAClD,MAAM0B,YAAY,GAAG1B,GAAG,CAAM;IAC7B2B,IAAI,EAAE,EAAE;IACRX,KAAK,EAAE,EAAE;IACTE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IACdU,IAAI,EAAE;MACLC,CAAC,EAAE,CAAC;MACJC,CAAC,EAAE,CAAC;MACJC,KAAK,EAAE,CAAC;MACRC,MAAM,EAAE;IACT;EACD,CAAC,CAAC;EACF,MAAMC,gBAAgB,GAAGjC,GAAG,CAAgB,CAAC,CAAC,CAAC;EAE/CG,cAAc,CACb,MAAM,CAAC,EAAEqB,KAAK,CAACU,MAAM,CAACC,KAAK,IAAIZ,KAAK,CAACb,kBAAkB,CAAC,EACvD0B,KAAK,IAAK;IACVnC,KAAK,CAAC,MAAMsB,KAAK,CAACb,kBAAkB,EAAE0B,KAAK,CAAC;IAC5CrC,cAAc,CAAC,MAAM;MACpB0B,gBAAgB,CAACU,KAAK,GAAGE,SAAS;IACnC,CAAC,CAAC;IAEF,IAAI,OAAOd,KAAK,CAACb,kBAAkB,KAAK,UAAU,EAAE;MACnDe,gBAAgB,CAACU,KAAK,GAAGZ,KAAK,CAACb,kBAAkB,CAChDa,KAAK,EACLC,KAAK,EACLE,YAAY,EACZO,gBACD,CAAC,EAAER,gBAAgB;IACpB,CAAC,MAAM;MACN,MAAMa,QAAQ,GACbhC,oBAAoB,CACnBiB,KAAK,CAACb,kBAAkB,CACxB;MACFe,gBAAgB,CAACU,KAAK,GAAGG,QAAQ,GAChCf,KAAK,EACLC,KAAK,EACLE,YAAY,EACZO,gBACD,CAAC,EAAER,gBAAgB;IACpB;EACD,CACD,CAAC;EAEDc,MAAM,CAACC,gBAAgB,CAAC,QAAQ,EAAEC,QAAQ,EAAE;IAAEC,OAAO,EAAE;EAAK,CAAC,CAAC;EAE9D3C,cAAc,CAAC,MAAM;IACpBwC,MAAM,CAACI,mBAAmB,CAAC,QAAQ,EAAEF,QAAQ,CAAC;IAC9ChB,gBAAgB,CAACU,KAAK,GAAGE,SAAS;EACnC,CAAC,CAAC;EAEF,SAASI,QAAQA,CAACG,CAAQ,EAAE;IAC3BnB,gBAAgB,CAACU,KAAK,GAAGS,CAAC,CAAC;EAC5B;EAEA,OAAO;IACNlB,YAAY;IACZO,gBAAgB;IAChBR;EACD,CAAC;AACF","ignoreList":[]}
@@ -1,38 +1,60 @@
1
- import { computed, nextTick, onScopeDispose, ref, watch } from 'vue';
1
+ import { computed, nextTick, onScopeDispose, ref, watch } from "vue";
2
2
  import { flipAlign, flipCorner, flipSide, getAxis, parseAnchor } from "../../util/anchor.js";
3
3
  import { clamp } from "../../util/common.js";
4
4
  import { $computed } from "../../util/reactivity.js";
5
- import { MutableRect, getOverflow } from "../../util/rect.js";
5
+ import { getOverflow, MutableRect } from "../../util/rect.js";
6
6
  import { getScrollParents } from "../../util/scroll.js";
7
7
  import { getBoundingPureRect, pixelCeil, pixelRound, toStyleSizeValue } from "../../util/ui.js";
8
8
  import { anchorToPoint, getOffset } from "./utils/point.js";
9
- export function applyLevitation(props, state, coordinate, coordinateStyles) {
9
+ export function applyLevitation(props, state, coordination, coordinateStyles) {
10
10
  const {
11
11
  contentEl,
12
12
  base,
13
13
  active
14
14
  } = state;
15
15
  const isRtl = ref(false);
16
+ const isFlipped = ref([false, false]);
16
17
 
17
18
  /* Content Limitations */
18
- const [minWidth, minHeight, maxWidth, maxHeight] = ['minWidth', 'minHeight', 'maxWidth', 'maxHeight'].map(key => {
19
+ const [minWidth, minHeight, maxWidth, maxHeight] = ["minWidth", "minHeight", "maxWidth", "maxHeight"].map(key => {
19
20
  return computed(() => {
20
21
  const val = parseFloat(props[key]);
21
22
  return isNaN(val) ? Infinity : val;
22
23
  });
23
24
  });
25
+ const {
26
+ preferredAnchor,
27
+ preferredOrigin
28
+ } = $computed(() => {
29
+ const location = `${props.position} ${props.align}`;
30
+ const parsedAnchor = parseAnchor(location, false);
31
+ const parsedOrigin = props.origin === "overlap" ? parsedAnchor : props.origin === "auto" ? flipSide(parsedAnchor) : parseAnchor(props.origin, false);
32
+
33
+ // Some combinations of props may produce an invalid origin
34
+ if (parsedAnchor.side === parsedOrigin.side && parsedAnchor.align === flipAlign(parsedOrigin).align) {
35
+ return {
36
+ preferredAnchor: flipCorner(parsedAnchor),
37
+ preferredOrigin: flipCorner(parsedOrigin)
38
+ };
39
+ } else {
40
+ return {
41
+ preferredAnchor: parsedAnchor,
42
+ preferredOrigin: parsedOrigin
43
+ };
44
+ }
45
+ });
24
46
 
25
47
  /* Offset */
26
48
  const offset = computed(() => {
27
49
  if (Array.isArray(props.offset)) {
28
50
  return props.offset;
29
51
  }
30
- if (typeof props.offset === 'string') {
31
- const offset = props.offset.split(' ').map(parseFloat);
52
+ if (typeof props.offset === "string") {
53
+ const offset = props.offset.split(" ").map(parseFloat);
32
54
  if (offset.length < 2) offset.push(0);
33
55
  return offset;
34
56
  }
35
- return typeof props.offset === 'number' ? [props.offset, 0] : [0, 0];
57
+ return typeof props.offset === "number" ? [props.offset, 0] : [0, 0];
36
58
  });
37
59
 
38
60
  /* Viewport Margin */
@@ -40,12 +62,12 @@ export function applyLevitation(props, state, coordinate, coordinateStyles) {
40
62
  if (Array.isArray(props.viewportMargin)) {
41
63
  return props.viewportMargin;
42
64
  }
43
- if (typeof props.viewportMargin === 'string') {
44
- const offset = props.viewportMargin.split(' ').map(parseFloat);
65
+ if (typeof props.viewportMargin === "string") {
66
+ const offset = props.viewportMargin.split(" ").map(parseFloat);
45
67
  if (offset.length < 2) offset.push(0);
46
68
  return offset;
47
69
  }
48
- return typeof props.viewportMargin === 'number' ? [props.viewportMargin, 0] : [0, 0];
70
+ return typeof props.viewportMargin === "number" ? [props.viewportMargin, 0] : [0, 0];
49
71
  });
50
72
 
51
73
  /* Observing Update */
@@ -68,8 +90,8 @@ export function applyLevitation(props, state, coordinate, coordinateStyles) {
68
90
  });
69
91
  function getIgnoreInsetRect(el) {
70
92
  const rect = getBoundingPureRect(el);
71
- rect.x -= parseFloat(el.style.left || '0');
72
- rect.y -= parseFloat(el.style.top || '0');
93
+ rect.x -= parseFloat(el.style.left || "0");
94
+ rect.y -= parseFloat(el.style.top || "0");
73
95
  return rect;
74
96
  }
75
97
  function updateCoordinate() {
@@ -77,7 +99,9 @@ export function applyLevitation(props, state, coordinate, coordinateStyles) {
77
99
  const $base = base.value;
78
100
  const $content = contentEl.value;
79
101
  requestAnimationFrame(() => {
80
- requestAnimationFrame(() => observe = true);
102
+ requestAnimationFrame(() => {
103
+ observe = true;
104
+ });
81
105
  });
82
106
  if (!$base || !$content) return;
83
107
  const baseRect = Array.isArray($base) ? new MutableRect({
@@ -117,27 +141,6 @@ export function applyLevitation(props, state, coordinate, coordinateStyles) {
117
141
  viewport.y += viewportMargin.value[1];
118
142
  viewport.width -= viewportMargin.value[0] * 2;
119
143
  viewport.height -= viewportMargin.value[1] * 2;
120
- const {
121
- preferredAnchor,
122
- preferredOrigin
123
- } = $computed(() => {
124
- const location = `${props.position} ${props.align}`;
125
- const parsedAnchor = parseAnchor(location, false);
126
- const parsedOrigin = props.origin === 'overlap' ? parsedAnchor : props.origin === 'auto' ? flipSide(parsedAnchor) : parseAnchor(props.origin, false);
127
-
128
- // Some combinations of props may produce an invalid origin
129
- if (parsedAnchor.side === parsedOrigin.side && parsedAnchor.align === flipAlign(parsedOrigin).align) {
130
- return {
131
- preferredAnchor: flipCorner(parsedAnchor),
132
- preferredOrigin: flipCorner(parsedOrigin)
133
- };
134
- } else {
135
- return {
136
- preferredAnchor: parsedAnchor,
137
- preferredOrigin: parsedOrigin
138
- };
139
- }
140
- });
141
144
  let placement = {
142
145
  anchor: preferredAnchor.value,
143
146
  origin: preferredOrigin.value
@@ -151,32 +154,41 @@ export function applyLevitation(props, state, coordinate, coordinateStyles) {
151
154
  y
152
155
  } = getOffset(targetPoint, contentPoint);
153
156
  switch (_placement.anchor.side) {
154
- case 'top':
157
+ case "top":
155
158
  y -= offset.value[0];
156
159
  break;
157
- case 'bottom':
160
+ case "bottom":
158
161
  y += offset.value[0];
159
162
  break;
160
- case 'left':
163
+ case "left":
161
164
  x -= offset.value[0];
162
165
  break;
163
- case 'right':
166
+ case "right":
164
167
  x += offset.value[0];
165
168
  break;
166
169
  }
167
170
  switch (_placement.anchor.align) {
168
- case 'top':
171
+ case "top":
169
172
  y -= offset.value[1];
170
173
  break;
171
- case 'bottom':
174
+ case "bottom":
172
175
  y += offset.value[1];
173
176
  break;
174
- case 'left':
177
+ case "left":
175
178
  x -= offset.value[1];
176
179
  break;
177
- case 'right':
180
+ case "right":
178
181
  x += offset.value[1];
179
182
  break;
183
+ case "center":
184
+ {
185
+ if (_placement.anchor.side === "top" || _placement.anchor.side === "bottom") {
186
+ x += offset.value[1];
187
+ } else {
188
+ y += offset.value[1];
189
+ }
190
+ break;
191
+ }
180
192
  }
181
193
  box.x += x;
182
194
  box.y += y;
@@ -220,8 +232,8 @@ export function applyLevitation(props, state, coordinate, coordinateStyles) {
220
232
  const hasOverflowX = overflows.x.before || overflows.x.after;
221
233
  const hasOverflowY = overflows.y.before || overflows.y.after;
222
234
  let reset = false;
223
- ['x', 'y'].forEach(key => {
224
- if (key === 'x' && hasOverflowX && !flipped.x || key === 'y' && hasOverflowY && !flipped.y) {
235
+ ["x", "y"].forEach(key => {
236
+ if (key === "x" && hasOverflowX && !flipped.x || key === "y" && hasOverflowY && !flipped.y) {
225
237
  const newPlacement = {
226
238
  anchor: {
227
239
  ...placement.anchor
@@ -230,7 +242,7 @@ export function applyLevitation(props, state, coordinate, coordinateStyles) {
230
242
  ...placement.origin
231
243
  }
232
244
  };
233
- const flip = key === 'x' ? axis === 'y' ? flipAlign : flipSide : axis === 'y' ? flipSide : flipAlign;
245
+ const flip = key === "x" ? axis === "y" ? flipAlign : flipSide : axis === "y" ? flipSide : flipAlign;
234
246
  newPlacement.anchor = flip(newPlacement.anchor);
235
247
  newPlacement.origin = flip(newPlacement.origin);
236
248
  const {
@@ -276,22 +288,36 @@ export function applyLevitation(props, state, coordinate, coordinateStyles) {
276
288
  break;
277
289
  }
278
290
  const axis = getAxis(placement.anchor);
291
+ coordination.value = {
292
+ side: placement.anchor.side,
293
+ align: placement.anchor.align,
294
+ rect: new MutableRect({
295
+ x,
296
+ y,
297
+ width: contentRect.width,
298
+ height: contentRect.height
299
+ }),
300
+ offset: [0, 0]
301
+ };
279
302
  Object.assign(coordinateStyles.value, {
280
- '--y-levitation-anchor-origin': `${placement.anchor.side} ${placement.anchor.align}`,
303
+ "--y-levitation-anchor-origin": `${placement.anchor.side} ${placement.anchor.align}`,
281
304
  transformOrigin: `${placement.origin.side} ${placement.origin.align}`,
282
305
  top: toStyleSizeValue(pixelRound(y)),
283
306
  left: isRtl.value ? undefined : toStyleSizeValue(pixelRound(x)),
284
307
  right: isRtl.value ? toStyleSizeValue(pixelRound(-x)) : undefined,
285
- minWidth: toStyleSizeValue(axis === 'y' ? Math.min(minWidth.value, baseRect.width) : minWidth.value),
308
+ minWidth: toStyleSizeValue(axis === "y" ? Math.min(minWidth.value, baseRect.width) : minWidth.value),
286
309
  maxWidth: toStyleSizeValue(pixelCeil(clamp(available.x, minWidth.value === Infinity ? 0 : minWidth.value, maxWidth.value))),
287
310
  maxHeight: toStyleSizeValue(pixelCeil(clamp(available.y, minHeight.value === Infinity ? 0 : minHeight.value, maxHeight.value)))
288
311
  });
312
+ isFlipped.value = [flipped.x, flipped.y];
289
313
  return {
290
314
  available,
291
- contentRect
315
+ contentRect,
316
+ flipped,
317
+ placement
292
318
  };
293
319
  }
294
- watch(() => [props.offset, props.minWidth, props.minHeight, props.maxWidth, props.maxHeight], () => updateCoordinate());
320
+ watch(() => [props.offset, props.minWidth, props.minHeight, props.maxWidth, props.maxHeight, preferredAnchor.value, preferredOrigin.value], () => updateCoordinate());
295
321
  nextTick(() => {
296
322
  const result = updateCoordinate();
297
323
  if (!result) return;
@@ -309,7 +335,10 @@ export function applyLevitation(props, state, coordinate, coordinateStyles) {
309
335
  }
310
336
  });
311
337
  return {
312
- updateCoordinate
338
+ updateCoordinate,
339
+ isFlipped,
340
+ preferredAnchor,
341
+ preferredOrigin
313
342
  };
314
343
  }
315
344
  //# sourceMappingURL=levitation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"levitation.js","names":["computed","nextTick","onScopeDispose","ref","watch","flipAlign","flipCorner","flipSide","getAxis","parseAnchor","clamp","$computed","MutableRect","getOverflow","getScrollParents","getBoundingPureRect","pixelCeil","pixelRound","toStyleSizeValue","anchorToPoint","getOffset","applyLevitation","props","state","coordinate","coordinateStyles","contentEl","base","active","isRtl","minWidth","minHeight","maxWidth","maxHeight","map","key","val","parseFloat","isNaN","Infinity","offset","Array","isArray","split","length","push","viewportMargin","observe","resizeObserver","ResizeObserver","updateCoordinate","_ref","_ref2","neoBaseEl","neoContentEl","oldBaseEl","oldContentEl","nodeType","unobserve","immediate","disconnect","getIgnoreInsetRect","el","rect","x","style","left","y","top","$base","value","$content","requestAnimationFrame","baseRect","width","height","getBoundingClientRect","contentRect","scrollParents","document","documentElement","viewport","reduce","box","scrollBox","clientWidth","clientHeight","Math","max","min","right","bottom","undefined","preferredAnchor","preferredOrigin","location","position","align","parsedAnchor","parsedOrigin","origin","side","placement","anchor","checkOverflow","_placement","targetPoint","contentPoint","overflows","available","flipped","resets","_x","_y","axis","hasOverflowX","before","after","hasOverflowY","reset","forEach","newPlacement","flip","newOverflows","Object","assign","transformOrigin","result"],"sources":["../../../src/composables/coordinate/levitation.ts"],"sourcesContent":["import type { CSSProperties, Ref } from 'vue';\r\nimport { computed, nextTick, onScopeDispose, ref, watch } from 'vue';\r\n\r\nimport {\r\n type Anchor,\r\n flipAlign,\r\n flipCorner,\r\n flipSide,\r\n getAxis,\r\n parseAnchor,\r\n} from '@/util/anchor';\r\nimport { clamp } from '@/util/common';\r\nimport { $computed } from '@/util/reactivity';\r\nimport { MutableRect, Rect, getOverflow } from '@/util/rect';\r\nimport { getScrollParents } from '@/util/scroll';\r\nimport {\r\n getBoundingPureRect,\r\n pixelCeil,\r\n pixelRound,\r\n toStyleSizeValue,\r\n} from '@/util/ui';\r\n\r\nimport { CoordinateState } from './types';\r\nimport { anchorToPoint, getOffset } from './utils/point';\r\n\r\nexport function applyLevitation(\r\n props: any,\r\n state: CoordinateState,\r\n coordinate: Ref<Rect | undefined>,\r\n coordinateStyles: Ref<CSSProperties>,\r\n) {\r\n const { contentEl, base, active } = state;\r\n\r\n const isRtl = ref(false);\r\n\r\n /* Content Limitations */\r\n const [minWidth, minHeight, maxWidth, maxHeight] = (\r\n ['minWidth', 'minHeight', 'maxWidth', 'maxHeight'] as const\r\n ).map((key) => {\r\n return computed(() => {\r\n const val = parseFloat(props[key]!);\r\n return isNaN(val) ? Infinity : val;\r\n });\r\n });\r\n\r\n /* Offset */\r\n const offset = computed(() => {\r\n if (Array.isArray(props.offset)) {\r\n return props.offset;\r\n }\r\n if (typeof props.offset === 'string') {\r\n const offset = props.offset.split(' ').map(parseFloat);\r\n if (offset.length < 2) offset.push(0);\r\n return offset;\r\n }\r\n return typeof props.offset === 'number' ? [props.offset, 0] : [0, 0];\r\n });\r\n\r\n /* Viewport Margin */\r\n const viewportMargin = computed(() => {\r\n if (Array.isArray(props.viewportMargin)) {\r\n return props.viewportMargin;\r\n }\r\n if (typeof props.viewportMargin === 'string') {\r\n const offset = props.viewportMargin.split(' ').map(parseFloat);\r\n if (offset.length < 2) offset.push(0);\r\n return offset;\r\n }\r\n return typeof props.viewportMargin === 'number'\r\n ? [props.viewportMargin, 0]\r\n : [0, 0];\r\n });\r\n\r\n /* Observing Update */\r\n let observe = false;\r\n const resizeObserver = new ResizeObserver(() => {\r\n if (observe) updateCoordinate();\r\n });\r\n\r\n watch(\r\n [state.base, state.contentEl],\r\n ([neoBaseEl, neoContentEl], [oldBaseEl, oldContentEl]) => {\r\n if (oldBaseEl && !Array.isArray(oldBaseEl) && oldBaseEl.nodeType === 1)\r\n resizeObserver.unobserve(oldBaseEl);\r\n if (neoBaseEl && !Array.isArray(neoBaseEl) && neoBaseEl.nodeType === 1)\r\n resizeObserver.observe(neoBaseEl);\r\n\r\n if (oldContentEl) resizeObserver.unobserve(oldContentEl);\r\n if (neoContentEl) resizeObserver.observe(neoContentEl);\r\n },\r\n { immediate: true },\r\n );\r\n\r\n onScopeDispose(() => {\r\n resizeObserver.disconnect();\r\n });\r\n\r\n function getIgnoreInsetRect(el: HTMLElement) {\r\n const rect = getBoundingPureRect(el);\r\n rect.x -= parseFloat(el.style.left || '0');\r\n rect.y -= parseFloat(el.style.top || '0');\r\n return rect;\r\n }\r\n\r\n function updateCoordinate(): any {\r\n observe = false;\r\n const $base = base.value;\r\n const $content = contentEl.value;\r\n requestAnimationFrame(() => {\r\n requestAnimationFrame(() => (observe = true));\r\n });\r\n\r\n if (!$base || !$content) return;\r\n\r\n const baseRect = Array.isArray($base)\r\n ? new MutableRect({\r\n x: $base?.[0] ?? 0,\r\n y: $base?.[1] ?? 0,\r\n width: 0,\r\n height: 0,\r\n })\r\n : $base.getBoundingClientRect();\r\n const contentRect = getIgnoreInsetRect($content);\r\n const scrollParents = getScrollParents($content);\r\n\r\n if (scrollParents.length < 1) {\r\n scrollParents.push(document.documentElement);\r\n }\r\n\r\n /**\r\n * Viewport area\r\n */\r\n const viewport = scrollParents.reduce<MutableRect>(\r\n (box: MutableRect | undefined, el) => {\r\n const rect = el.getBoundingClientRect();\r\n const scrollBox = new MutableRect({\r\n x: el === document.documentElement ? 0 : rect.x,\r\n y: el === document.documentElement ? 0 : rect.y,\r\n width: el.clientWidth,\r\n height: el.clientHeight,\r\n });\r\n\r\n if (box) {\r\n return new MutableRect({\r\n x: Math.max(box.left, scrollBox.left),\r\n y: Math.max(box.top, scrollBox.top),\r\n width:\r\n Math.min(box.right, scrollBox.right) -\r\n Math.max(box.left, scrollBox.left),\r\n height:\r\n Math.min(box.bottom, scrollBox.bottom) -\r\n Math.max(box.top, scrollBox.top),\r\n });\r\n }\r\n return scrollBox;\r\n },\r\n undefined!,\r\n );\r\n viewport.x += viewportMargin.value[0];\r\n viewport.y += viewportMargin.value[1];\r\n viewport.width -= viewportMargin.value[0] * 2;\r\n viewport.height -= viewportMargin.value[1] * 2;\r\n\r\n const { preferredAnchor, preferredOrigin } = $computed(() => {\r\n const location = `${props.position} ${props.align}` as Anchor;\r\n const parsedAnchor = parseAnchor(location, false);\r\n const parsedOrigin =\r\n props.origin === 'overlap'\r\n ? parsedAnchor\r\n : props.origin === 'auto'\r\n ? flipSide(parsedAnchor)\r\n : parseAnchor(props.origin, false);\r\n\r\n // Some combinations of props may produce an invalid origin\r\n if (\r\n parsedAnchor.side === parsedOrigin.side &&\r\n parsedAnchor.align === flipAlign(parsedOrigin).align\r\n ) {\r\n return {\r\n preferredAnchor: flipCorner(parsedAnchor),\r\n preferredOrigin: flipCorner(parsedOrigin),\r\n };\r\n } else {\r\n return {\r\n preferredAnchor: parsedAnchor,\r\n preferredOrigin: parsedOrigin,\r\n };\r\n }\r\n });\r\n\r\n let placement = {\r\n anchor: preferredAnchor.value,\r\n origin: preferredOrigin.value,\r\n };\r\n\r\n function checkOverflow(_placement: typeof placement) {\r\n const box = new MutableRect(contentRect);\r\n const targetPoint = anchorToPoint(_placement.anchor, baseRect);\r\n const contentPoint = anchorToPoint(_placement.origin, box);\r\n\r\n let { x, y } = getOffset(targetPoint, contentPoint);\r\n\r\n switch (_placement.anchor.side) {\r\n case 'top':\r\n y -= offset.value[0];\r\n break;\r\n case 'bottom':\r\n y += offset.value[0];\r\n break;\r\n case 'left':\r\n x -= offset.value[0];\r\n break;\r\n case 'right':\r\n x += offset.value[0];\r\n break;\r\n }\r\n\r\n switch (_placement.anchor.align) {\r\n case 'top':\r\n y -= offset.value[1];\r\n break;\r\n case 'bottom':\r\n y += offset.value[1];\r\n break;\r\n case 'left':\r\n x -= offset.value[1];\r\n break;\r\n case 'right':\r\n x += offset.value[1];\r\n break;\r\n }\r\n\r\n box.x += x;\r\n box.y += y;\r\n\r\n box.width = Math.min(box.width, maxWidth.value);\r\n box.height = Math.min(box.height, maxHeight.value);\r\n\r\n const overflows = getOverflow(box, viewport);\r\n\r\n return { overflows, x, y };\r\n }\r\n\r\n let x = 0;\r\n let y = 0;\r\n const available = { x: 0, y: 0 };\r\n const flipped = { x: false, y: false };\r\n let resets = -1;\r\n while (true) {\r\n if (resets++ > 10) {\r\n break;\r\n }\r\n\r\n const { x: _x, y: _y, overflows } = checkOverflow(placement);\r\n\r\n x += _x;\r\n y += _y;\r\n\r\n contentRect.x += _x;\r\n contentRect.y += _y;\r\n\r\n // flip\r\n {\r\n const axis = getAxis(placement.anchor);\r\n const hasOverflowX = overflows.x.before || overflows.x.after;\r\n const hasOverflowY = overflows.y.before || overflows.y.after;\r\n\r\n let reset = false;\r\n ['x', 'y'].forEach((key) => {\r\n if (\r\n (key === 'x' && hasOverflowX && !flipped.x) ||\r\n (key === 'y' && hasOverflowY && !flipped.y)\r\n ) {\r\n const newPlacement = {\r\n anchor: { ...placement.anchor },\r\n origin: { ...placement.origin },\r\n };\r\n const flip =\r\n key === 'x'\r\n ? axis === 'y'\r\n ? flipAlign\r\n : flipSide\r\n : axis === 'y'\r\n ? flipSide\r\n : flipAlign;\r\n newPlacement.anchor = flip(newPlacement.anchor);\r\n newPlacement.origin = flip(newPlacement.origin);\r\n const { overflows: newOverflows } = checkOverflow(newPlacement);\r\n if (\r\n (newOverflows[key].before <= overflows[key].before &&\r\n newOverflows[key].after <= overflows[key].after) ||\r\n newOverflows[key].before + newOverflows[key].after <\r\n (overflows[key].before + overflows[key].after) / 2\r\n ) {\r\n placement = newPlacement;\r\n reset = flipped[key] = true;\r\n }\r\n }\r\n });\r\n if (reset) continue;\r\n }\r\n\r\n // shift\r\n if (overflows.x.before) {\r\n x += overflows.x.before;\r\n contentRect.x += overflows.x.before;\r\n }\r\n if (overflows.x.after) {\r\n x -= overflows.x.after;\r\n contentRect.x -= overflows.x.after;\r\n }\r\n if (overflows.y.before) {\r\n y += overflows.y.before;\r\n contentRect.y += overflows.y.before;\r\n }\r\n if (overflows.y.after) {\r\n y -= overflows.y.after;\r\n contentRect.y -= overflows.y.after;\r\n }\r\n\r\n // size\r\n {\r\n const overflows = getOverflow(contentRect, viewport);\r\n available.x = viewport.width - overflows.x.before - overflows.x.after;\r\n available.y = viewport.height - overflows.y.before - overflows.y.after;\r\n\r\n x += overflows.x.before;\r\n contentRect.x += overflows.x.before;\r\n y += overflows.y.before;\r\n contentRect.y += overflows.y.before;\r\n }\r\n\r\n break;\r\n }\r\n\r\n const axis = getAxis(placement.anchor);\r\n\r\n Object.assign(coordinateStyles.value, {\r\n '--y-levitation-anchor-origin': `${placement.anchor.side} ${placement.anchor.align}`,\r\n transformOrigin: `${placement.origin.side} ${placement.origin.align}`,\r\n top: toStyleSizeValue(pixelRound(y)),\r\n left: isRtl.value ? undefined : toStyleSizeValue(pixelRound(x)),\r\n right: isRtl.value ? toStyleSizeValue(pixelRound(-x)) : undefined,\r\n minWidth: toStyleSizeValue(\r\n axis === 'y'\r\n ? Math.min(minWidth.value, baseRect.width)\r\n : minWidth.value,\r\n ),\r\n maxWidth: toStyleSizeValue(\r\n pixelCeil(\r\n clamp(\r\n available.x,\r\n minWidth.value === Infinity ? 0 : minWidth.value,\r\n maxWidth.value,\r\n ),\r\n ),\r\n ),\r\n maxHeight: toStyleSizeValue(\r\n pixelCeil(\r\n clamp(\r\n available.y,\r\n minHeight.value === Infinity ? 0 : minHeight.value,\r\n maxHeight.value,\r\n ),\r\n ),\r\n ),\r\n });\r\n\r\n return {\r\n available,\r\n contentRect,\r\n };\r\n }\r\n\r\n watch(\r\n () => [\r\n props.offset,\r\n props.minWidth,\r\n props.minHeight,\r\n props.maxWidth,\r\n props.maxHeight,\r\n ],\r\n () => updateCoordinate(),\r\n );\r\n\r\n nextTick(() => {\r\n const result = updateCoordinate();\r\n if (!result) return;\r\n const { available, contentRect } = result;\r\n if (contentRect.height > available.y) {\r\n requestAnimationFrame(() => {\r\n updateCoordinate();\r\n requestAnimationFrame(() => {\r\n updateCoordinate();\r\n });\r\n });\r\n }\r\n });\r\n\r\n return {\r\n updateCoordinate,\r\n };\r\n}\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"levitation.js","names":["computed","nextTick","onScopeDispose","ref","watch","flipAlign","flipCorner","flipSide","getAxis","parseAnchor","clamp","$computed","getOverflow","MutableRect","getScrollParents","getBoundingPureRect","pixelCeil","pixelRound","toStyleSizeValue","anchorToPoint","getOffset","applyLevitation","props","state","coordination","coordinateStyles","contentEl","base","active","isRtl","isFlipped","minWidth","minHeight","maxWidth","maxHeight","map","key","val","parseFloat","isNaN","Infinity","preferredAnchor","preferredOrigin","location","position","align","parsedAnchor","parsedOrigin","origin","side","offset","Array","isArray","split","length","push","viewportMargin","observe","resizeObserver","ResizeObserver","updateCoordinate","_ref","_ref2","neoBaseEl","neoContentEl","oldBaseEl","oldContentEl","nodeType","unobserve","immediate","disconnect","getIgnoreInsetRect","el","rect","x","style","left","y","top","$base","value","$content","requestAnimationFrame","baseRect","width","height","getBoundingClientRect","contentRect","scrollParents","document","documentElement","viewport","reduce","box","scrollBox","clientWidth","clientHeight","Math","max","min","right","bottom","undefined","placement","anchor","checkOverflow","_placement","targetPoint","contentPoint","overflows","available","flipped","resets","_x","_y","axis","hasOverflowX","before","after","hasOverflowY","reset","forEach","newPlacement","flip","newOverflows","Object","assign","transformOrigin","result"],"sources":["../../../src/composables/coordinate/levitation.ts"],"sourcesContent":["import type { CSSProperties, Ref } from \"vue\";\r\nimport { computed, nextTick, onScopeDispose, ref, watch } from \"vue\";\r\n\r\nimport {\r\n\ttype Anchor,\r\n\tflipAlign,\r\n\tflipCorner,\r\n\tflipSide,\r\n\tgetAxis,\r\n\tparseAnchor,\r\n} from \"@/util/anchor\";\r\nimport { clamp } from \"@/util/common\";\r\nimport { $computed } from \"@/util/reactivity\";\r\nimport { getOverflow, MutableRect } from \"@/util/rect\";\r\nimport { getScrollParents } from \"@/util/scroll\";\r\nimport {\r\n\tgetBoundingPureRect,\r\n\tpixelCeil,\r\n\tpixelRound,\r\n\ttoStyleSizeValue,\r\n} from \"@/util/ui\";\r\n\r\nimport type { CoordinateState } from \"./types\";\r\nimport { anchorToPoint, getOffset } from \"./utils/point\";\r\n\r\nexport function applyLevitation(\r\n\tprops: any,\r\n\tstate: CoordinateState,\r\n\tcoordination: Ref<any>,\r\n\tcoordinateStyles: Ref<CSSProperties>,\r\n) {\r\n\tconst { contentEl, base, active } = state;\r\n\r\n\tconst isRtl = ref(false);\r\n\tconst isFlipped = ref([false, false]);\r\n\r\n\t/* Content Limitations */\r\n\tconst [minWidth, minHeight, maxWidth, maxHeight] = (\r\n\t\t[\"minWidth\", \"minHeight\", \"maxWidth\", \"maxHeight\"] as const\r\n\t).map((key) => {\r\n\t\treturn computed(() => {\r\n\t\t\tconst val = parseFloat(props[key]!);\r\n\t\t\treturn isNaN(val) ? Infinity : val;\r\n\t\t});\r\n\t});\r\n\r\n\tconst { preferredAnchor, preferredOrigin } = $computed(() => {\r\n\t\tconst location = `${props.position} ${props.align}` as Anchor;\r\n\t\tconst parsedAnchor = parseAnchor(location, false);\r\n\t\tconst parsedOrigin =\r\n\t\t\tprops.origin === \"overlap\"\r\n\t\t\t\t? parsedAnchor\r\n\t\t\t\t: props.origin === \"auto\"\r\n\t\t\t\t\t? flipSide(parsedAnchor)\r\n\t\t\t\t\t: parseAnchor(props.origin, false);\r\n\r\n\t\t// Some combinations of props may produce an invalid origin\r\n\t\tif (\r\n\t\t\tparsedAnchor.side === parsedOrigin.side &&\r\n\t\t\tparsedAnchor.align === flipAlign(parsedOrigin).align\r\n\t\t) {\r\n\t\t\treturn {\r\n\t\t\t\tpreferredAnchor: flipCorner(parsedAnchor),\r\n\t\t\t\tpreferredOrigin: flipCorner(parsedOrigin),\r\n\t\t\t};\r\n\t\t} else {\r\n\t\t\treturn {\r\n\t\t\t\tpreferredAnchor: parsedAnchor,\r\n\t\t\t\tpreferredOrigin: parsedOrigin,\r\n\t\t\t};\r\n\t\t}\r\n\t});\r\n\r\n\t/* Offset */\r\n\tconst offset = computed(() => {\r\n\t\tif (Array.isArray(props.offset)) {\r\n\t\t\treturn props.offset;\r\n\t\t}\r\n\t\tif (typeof props.offset === \"string\") {\r\n\t\t\tconst offset = props.offset.split(\" \").map(parseFloat);\r\n\t\t\tif (offset.length < 2) offset.push(0);\r\n\t\t\treturn offset;\r\n\t\t}\r\n\t\treturn typeof props.offset === \"number\" ? [props.offset, 0] : [0, 0];\r\n\t});\r\n\r\n\t/* Viewport Margin */\r\n\tconst viewportMargin = computed(() => {\r\n\t\tif (Array.isArray(props.viewportMargin)) {\r\n\t\t\treturn props.viewportMargin;\r\n\t\t}\r\n\t\tif (typeof props.viewportMargin === \"string\") {\r\n\t\t\tconst offset = props.viewportMargin.split(\" \").map(parseFloat);\r\n\t\t\tif (offset.length < 2) offset.push(0);\r\n\t\t\treturn offset;\r\n\t\t}\r\n\t\treturn typeof props.viewportMargin === \"number\"\r\n\t\t\t? [props.viewportMargin, 0]\r\n\t\t\t: [0, 0];\r\n\t});\r\n\r\n\t/* Observing Update */\r\n\tlet observe = false;\r\n\tconst resizeObserver = new ResizeObserver(() => {\r\n\t\tif (observe) updateCoordinate();\r\n\t});\r\n\r\n\twatch(\r\n\t\t[state.base, state.contentEl],\r\n\t\t([neoBaseEl, neoContentEl], [oldBaseEl, oldContentEl]) => {\r\n\t\t\tif (oldBaseEl && !Array.isArray(oldBaseEl) && oldBaseEl.nodeType === 1)\r\n\t\t\t\tresizeObserver.unobserve(oldBaseEl);\r\n\t\t\tif (neoBaseEl && !Array.isArray(neoBaseEl) && neoBaseEl.nodeType === 1)\r\n\t\t\t\tresizeObserver.observe(neoBaseEl);\r\n\r\n\t\t\tif (oldContentEl) resizeObserver.unobserve(oldContentEl);\r\n\t\t\tif (neoContentEl) resizeObserver.observe(neoContentEl);\r\n\t\t},\r\n\t\t{ immediate: true },\r\n\t);\r\n\r\n\tonScopeDispose(() => {\r\n\t\tresizeObserver.disconnect();\r\n\t});\r\n\r\n\tfunction getIgnoreInsetRect(el: HTMLElement) {\r\n\t\tconst rect = getBoundingPureRect(el);\r\n\t\trect.x -= parseFloat(el.style.left || \"0\");\r\n\t\trect.y -= parseFloat(el.style.top || \"0\");\r\n\t\treturn rect;\r\n\t}\r\n\r\n\tfunction updateCoordinate(): any {\r\n\t\tobserve = false;\r\n\t\tconst $base = base.value;\r\n\t\tconst $content = contentEl.value;\r\n\t\trequestAnimationFrame(() => {\r\n\t\t\trequestAnimationFrame(() => {\r\n\t\t\t\tobserve = true;\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tif (!$base || !$content) return;\r\n\r\n\t\tconst baseRect = Array.isArray($base)\r\n\t\t\t? new MutableRect({\r\n\t\t\t\t\tx: $base?.[0] ?? 0,\r\n\t\t\t\t\ty: $base?.[1] ?? 0,\r\n\t\t\t\t\twidth: 0,\r\n\t\t\t\t\theight: 0,\r\n\t\t\t\t})\r\n\t\t\t: $base.getBoundingClientRect();\r\n\t\tconst contentRect = getIgnoreInsetRect($content);\r\n\t\tconst scrollParents = getScrollParents($content);\r\n\r\n\t\tif (scrollParents.length < 1) {\r\n\t\t\tscrollParents.push(document.documentElement);\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Viewport area\r\n\t\t */\r\n\t\tconst viewport = scrollParents.reduce<MutableRect>(\r\n\t\t\t(box: MutableRect | undefined, el) => {\r\n\t\t\t\tconst rect = el.getBoundingClientRect();\r\n\t\t\t\tconst scrollBox = new MutableRect({\r\n\t\t\t\t\tx: el === document.documentElement ? 0 : rect.x,\r\n\t\t\t\t\ty: el === document.documentElement ? 0 : rect.y,\r\n\t\t\t\t\twidth: el.clientWidth,\r\n\t\t\t\t\theight: el.clientHeight,\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif (box) {\r\n\t\t\t\t\treturn new MutableRect({\r\n\t\t\t\t\t\tx: Math.max(box.left, scrollBox.left),\r\n\t\t\t\t\t\ty: Math.max(box.top, scrollBox.top),\r\n\t\t\t\t\t\twidth:\r\n\t\t\t\t\t\t\tMath.min(box.right, scrollBox.right) -\r\n\t\t\t\t\t\t\tMath.max(box.left, scrollBox.left),\r\n\t\t\t\t\t\theight:\r\n\t\t\t\t\t\t\tMath.min(box.bottom, scrollBox.bottom) -\r\n\t\t\t\t\t\t\tMath.max(box.top, scrollBox.top),\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\treturn scrollBox;\r\n\t\t\t},\r\n\t\t\tundefined!,\r\n\t\t);\r\n\t\tviewport.x += viewportMargin.value[0];\r\n\t\tviewport.y += viewportMargin.value[1];\r\n\t\tviewport.width -= viewportMargin.value[0] * 2;\r\n\t\tviewport.height -= viewportMargin.value[1] * 2;\r\n\r\n\t\tlet placement = {\r\n\t\t\tanchor: preferredAnchor.value,\r\n\t\t\torigin: preferredOrigin.value,\r\n\t\t};\r\n\r\n\t\tfunction checkOverflow(_placement: typeof placement) {\r\n\t\t\tconst box = new MutableRect(contentRect);\r\n\t\t\tconst targetPoint = anchorToPoint(_placement.anchor, baseRect);\r\n\t\t\tconst contentPoint = anchorToPoint(_placement.origin, box);\r\n\r\n\t\t\tlet { x, y } = getOffset(targetPoint, contentPoint);\r\n\r\n\t\t\tswitch (_placement.anchor.side) {\r\n\t\t\t\tcase \"top\":\r\n\t\t\t\t\ty -= offset.value[0];\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"bottom\":\r\n\t\t\t\t\ty += offset.value[0];\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"left\":\r\n\t\t\t\t\tx -= offset.value[0];\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"right\":\r\n\t\t\t\t\tx += offset.value[0];\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\tswitch (_placement.anchor.align) {\r\n\t\t\t\tcase \"top\":\r\n\t\t\t\t\ty -= offset.value[1];\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"bottom\":\r\n\t\t\t\t\ty += offset.value[1];\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"left\":\r\n\t\t\t\t\tx -= offset.value[1];\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"right\":\r\n\t\t\t\t\tx += offset.value[1];\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase \"center\": {\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\t_placement.anchor.side === \"top\" ||\r\n\t\t\t\t\t\t_placement.anchor.side === \"bottom\"\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tx += offset.value[1];\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\ty += offset.value[1];\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tbox.x += x;\r\n\t\t\tbox.y += y;\r\n\r\n\t\t\tbox.width = Math.min(box.width, maxWidth.value);\r\n\t\t\tbox.height = Math.min(box.height, maxHeight.value);\r\n\r\n\t\t\tconst overflows = getOverflow(box, viewport);\r\n\r\n\t\t\treturn { overflows, x, y };\r\n\t\t}\r\n\r\n\t\tlet x = 0;\r\n\t\tlet y = 0;\r\n\t\tconst available = { x: 0, y: 0 };\r\n\t\tconst flipped = { x: false, y: false };\r\n\t\tlet resets = -1;\r\n\t\twhile (true) {\r\n\t\t\tif (resets++ > 10) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\tconst { x: _x, y: _y, overflows } = checkOverflow(placement);\r\n\r\n\t\t\tx += _x;\r\n\t\t\ty += _y;\r\n\r\n\t\t\tcontentRect.x += _x;\r\n\t\t\tcontentRect.y += _y;\r\n\r\n\t\t\t// flip\r\n\t\t\t{\r\n\t\t\t\tconst axis = getAxis(placement.anchor);\r\n\t\t\t\tconst hasOverflowX = overflows.x.before || overflows.x.after;\r\n\t\t\t\tconst hasOverflowY = overflows.y.before || overflows.y.after;\r\n\r\n\t\t\t\tlet reset = false;\r\n\t\t\t\t[\"x\", \"y\"].forEach((key) => {\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\t(key === \"x\" && hasOverflowX && !flipped.x) ||\r\n\t\t\t\t\t\t(key === \"y\" && hasOverflowY && !flipped.y)\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tconst newPlacement = {\r\n\t\t\t\t\t\t\tanchor: { ...placement.anchor },\r\n\t\t\t\t\t\t\torigin: { ...placement.origin },\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t\tconst flip =\r\n\t\t\t\t\t\t\tkey === \"x\"\r\n\t\t\t\t\t\t\t\t? axis === \"y\"\r\n\t\t\t\t\t\t\t\t\t? flipAlign\r\n\t\t\t\t\t\t\t\t\t: flipSide\r\n\t\t\t\t\t\t\t\t: axis === \"y\"\r\n\t\t\t\t\t\t\t\t\t? flipSide\r\n\t\t\t\t\t\t\t\t\t: flipAlign;\r\n\t\t\t\t\t\tnewPlacement.anchor = flip(newPlacement.anchor);\r\n\t\t\t\t\t\tnewPlacement.origin = flip(newPlacement.origin);\r\n\t\t\t\t\t\tconst { overflows: newOverflows } = checkOverflow(newPlacement);\r\n\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t(newOverflows[key].before <= overflows[key].before &&\r\n\t\t\t\t\t\t\t\tnewOverflows[key].after <= overflows[key].after) ||\r\n\t\t\t\t\t\t\tnewOverflows[key].before + newOverflows[key].after <\r\n\t\t\t\t\t\t\t\t(overflows[key].before + overflows[key].after) / 2\r\n\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\tplacement = newPlacement;\r\n\t\t\t\t\t\t\treset = flipped[key] = true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\tif (reset) continue;\r\n\t\t\t}\r\n\r\n\t\t\t// shift\r\n\t\t\tif (overflows.x.before) {\r\n\t\t\t\tx += overflows.x.before;\r\n\t\t\t\tcontentRect.x += overflows.x.before;\r\n\t\t\t}\r\n\t\t\tif (overflows.x.after) {\r\n\t\t\t\tx -= overflows.x.after;\r\n\t\t\t\tcontentRect.x -= overflows.x.after;\r\n\t\t\t}\r\n\t\t\tif (overflows.y.before) {\r\n\t\t\t\ty += overflows.y.before;\r\n\t\t\t\tcontentRect.y += overflows.y.before;\r\n\t\t\t}\r\n\t\t\tif (overflows.y.after) {\r\n\t\t\t\ty -= overflows.y.after;\r\n\t\t\t\tcontentRect.y -= overflows.y.after;\r\n\t\t\t}\r\n\r\n\t\t\t// size\r\n\t\t\t{\r\n\t\t\t\tconst overflows = getOverflow(contentRect, viewport);\r\n\t\t\t\tavailable.x = viewport.width - overflows.x.before - overflows.x.after;\r\n\t\t\t\tavailable.y = viewport.height - overflows.y.before - overflows.y.after;\r\n\r\n\t\t\t\tx += overflows.x.before;\r\n\t\t\t\tcontentRect.x += overflows.x.before;\r\n\t\t\t\ty += overflows.y.before;\r\n\t\t\t\tcontentRect.y += overflows.y.before;\r\n\t\t\t}\r\n\r\n\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\tconst axis = getAxis(placement.anchor);\r\n\r\n\t\tcoordination.value = {\r\n\t\t\tside: placement.anchor.side,\r\n\t\t\talign: placement.anchor.align,\r\n\t\t\trect: new MutableRect({\r\n\t\t\t\tx,\r\n\t\t\t\ty,\r\n\t\t\t\twidth: contentRect.width,\r\n\t\t\t\theight: contentRect.height,\r\n\t\t\t}),\r\n\t\t\toffset: [0, 0],\r\n\t\t};\r\n\r\n\t\tObject.assign(coordinateStyles.value, {\r\n\t\t\t\"--y-levitation-anchor-origin\": `${placement.anchor.side} ${placement.anchor.align}`,\r\n\t\t\ttransformOrigin: `${placement.origin.side} ${placement.origin.align}`,\r\n\t\t\ttop: toStyleSizeValue(pixelRound(y)),\r\n\t\t\tleft: isRtl.value ? undefined : toStyleSizeValue(pixelRound(x)),\r\n\t\t\tright: isRtl.value ? toStyleSizeValue(pixelRound(-x)) : undefined,\r\n\t\t\tminWidth: toStyleSizeValue(\r\n\t\t\t\taxis === \"y\"\r\n\t\t\t\t\t? Math.min(minWidth.value, baseRect.width)\r\n\t\t\t\t\t: minWidth.value,\r\n\t\t\t),\r\n\t\t\tmaxWidth: toStyleSizeValue(\r\n\t\t\t\tpixelCeil(\r\n\t\t\t\t\tclamp(\r\n\t\t\t\t\t\tavailable.x,\r\n\t\t\t\t\t\tminWidth.value === Infinity ? 0 : minWidth.value,\r\n\t\t\t\t\t\tmaxWidth.value,\r\n\t\t\t\t\t),\r\n\t\t\t\t),\r\n\t\t\t),\r\n\t\t\tmaxHeight: toStyleSizeValue(\r\n\t\t\t\tpixelCeil(\r\n\t\t\t\t\tclamp(\r\n\t\t\t\t\t\tavailable.y,\r\n\t\t\t\t\t\tminHeight.value === Infinity ? 0 : minHeight.value,\r\n\t\t\t\t\t\tmaxHeight.value,\r\n\t\t\t\t\t),\r\n\t\t\t\t),\r\n\t\t\t),\r\n\t\t});\r\n\r\n\t\tisFlipped.value = [flipped.x, flipped.y];\r\n\r\n\t\treturn {\r\n\t\t\tavailable,\r\n\t\t\tcontentRect,\r\n\t\t\tflipped,\r\n\t\t\tplacement,\r\n\t\t};\r\n\t}\r\n\r\n\twatch(\r\n\t\t() => [\r\n\t\t\tprops.offset,\r\n\t\t\tprops.minWidth,\r\n\t\t\tprops.minHeight,\r\n\t\t\tprops.maxWidth,\r\n\t\t\tprops.maxHeight,\r\n\t\t\tpreferredAnchor.value,\r\n\t\t\tpreferredOrigin.value,\r\n\t\t],\r\n\t\t() => updateCoordinate(),\r\n\t);\r\n\r\n\tnextTick(() => {\r\n\t\tconst result = updateCoordinate();\r\n\t\tif (!result) return;\r\n\t\tconst { available, contentRect } = result;\r\n\t\tif (contentRect.height > available.y) {\r\n\t\t\trequestAnimationFrame(() => {\r\n\t\t\t\tupdateCoordinate();\r\n\t\t\t\trequestAnimationFrame(() => {\r\n\t\t\t\t\tupdateCoordinate();\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\t});\r\n\r\n\treturn {\r\n\t\tupdateCoordinate,\r\n\t\tisFlipped,\r\n\t\tpreferredAnchor,\r\n\t\tpreferredOrigin,\r\n\t};\r\n}\r\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../src/composables/coordinate/types.ts"],"sourcesContent":["import type { Ref } from \"vue\";\r\n\r\nexport interface CoordinateState {\r\n contentEl: Ref<HTMLElement | undefined>;\r\n base: Ref<HTMLElement | [x: number, y: number] | undefined>;\r\n active: Ref<boolean>;\r\n}\r\n"],"mappings":""}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../src/composables/coordinate/types.ts"],"sourcesContent":["import type { Ref } from 'vue';\r\n\r\nexport interface CoordinateState {\r\n contentEl: Ref<HTMLElement | undefined>;\r\n base: Ref<HTMLElement | [x: number, y: number] | undefined>;\r\n active: Ref<boolean>;\r\n placement?: Ref<any>;\r\n}\r\n"],"mappings":"","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"point.js","names":["elementToViewport","point","offset","x","y","viewportToElement","getOffset","a","b","anchorToPoint","anchor","box","side","align","width","height"],"sources":["../../../../src/composables/coordinate/utils/point.ts"],"sourcesContent":["import { type ParsedAnchor } from '@/util/anchor';\r\nimport { type MutableRect } from '@/util/rect';\r\n\r\ntype Point = { x: number; y: number };\r\ndeclare class As<T extends string> {\r\n private as: T;\r\n}\r\ntype ElementPoint = Point & As<'element'>;\r\ntype ViewportPoint = Point & As<'viewport'>;\r\ntype Offset = Point & As<'offset'>;\r\n\r\n/** Convert a point in local space to viewport space */\r\nexport function elementToViewport(\r\n point: ElementPoint,\r\n offset: Offset | MutableRect,\r\n) {\r\n return {\r\n x: point.x + offset.x,\r\n y: point.y + offset.y,\r\n } as ViewportPoint;\r\n}\r\n\r\n/** Convert a point in viewport space to local space */\r\nexport function viewportToElement(\r\n point: ViewportPoint,\r\n offset: Offset | MutableRect,\r\n) {\r\n return {\r\n x: point.x - offset.x,\r\n y: point.y - offset.y,\r\n } as ElementPoint;\r\n}\r\n\r\n/** Get the difference between two points */\r\nexport function getOffset<T extends Point>(a: T, b: T) {\r\n return {\r\n x: a.x - b.x,\r\n y: a.y - b.y,\r\n } as Offset;\r\n}\r\n\r\n/** Convert an anchor object to a point in local space */\r\nexport function anchorToPoint(\r\n anchor: ParsedAnchor,\r\n box: MutableRect,\r\n): ViewportPoint {\r\n if (anchor.side === 'top' || anchor.side === 'bottom') {\r\n const { side, align } = anchor;\r\n\r\n const x: number =\r\n align === 'left'\r\n ? 0\r\n : align === 'center'\r\n ? box.width / 2\r\n : align === 'right'\r\n ? box.width\r\n : align;\r\n const y: number =\r\n side === 'top' ? 0 : side === 'bottom' ? box.height : side;\r\n\r\n return elementToViewport({ x, y } as ElementPoint, box);\r\n } else if (anchor.side === 'left' || anchor.side === 'right') {\r\n const { side, align } = anchor;\r\n\r\n const x: number = side === 'left' ? 0 : side === 'right' ? box.width : side;\r\n const y: number =\r\n align === 'top'\r\n ? 0\r\n : align === 'center'\r\n ? box.height / 2\r\n : align === 'bottom'\r\n ? box.height\r\n : align;\r\n\r\n return elementToViewport({ x, y } as ElementPoint, box);\r\n }\r\n\r\n return elementToViewport(\r\n {\r\n x: box.width / 2,\r\n y: box.height / 2,\r\n } as ElementPoint,\r\n box,\r\n );\r\n}\r\n"],"mappings":"AAWA;AACA,OAAO,SAASA,iBAAiBA,CAC/BC,KAAmB,EACnBC,MAA4B,EAC5B;EACA,OAAO;IACLC,CAAC,EAAEF,KAAK,CAACE,CAAC,GAAGD,MAAM,CAACC,CAAC;IACrBC,CAAC,EAAEH,KAAK,CAACG,CAAC,GAAGF,MAAM,CAACE;EACtB,CAAC;AACH;;AAEA;AACA,OAAO,SAASC,iBAAiBA,CAC/BJ,KAAoB,EACpBC,MAA4B,EAC5B;EACA,OAAO;IACLC,CAAC,EAAEF,KAAK,CAACE,CAAC,GAAGD,MAAM,CAACC,CAAC;IACrBC,CAAC,EAAEH,KAAK,CAACG,CAAC,GAAGF,MAAM,CAACE;EACtB,CAAC;AACH;;AAEA;AACA,OAAO,SAASE,SAASA,CAAkBC,CAAI,EAAEC,CAAI,EAAE;EACrD,OAAO;IACLL,CAAC,EAAEI,CAAC,CAACJ,CAAC,GAAGK,CAAC,CAACL,CAAC;IACZC,CAAC,EAAEG,CAAC,CAACH,CAAC,GAAGI,CAAC,CAACJ;EACb,CAAC;AACH;;AAEA;AACA,OAAO,SAASK,aAAaA,CAC3BC,MAAoB,EACpBC,GAAgB,EACD;EACf,IAAID,MAAM,CAACE,IAAI,KAAK,KAAK,IAAIF,MAAM,CAACE,IAAI,KAAK,QAAQ,EAAE;IACrD,MAAM;MAAEA,IAAI;MAAEC;IAAM,CAAC,GAAGH,MAAM;IAE9B,MAAMP,CAAS,GACbU,KAAK,KAAK,MAAM,GACZ,CAAC,GACDA,KAAK,KAAK,QAAQ,GAChBF,GAAG,CAACG,KAAK,GAAG,CAAC,GACbD,KAAK,KAAK,OAAO,GACfF,GAAG,CAACG,KAAK,GACTD,KAAK;IACf,MAAMT,CAAS,GACbQ,IAAI,KAAK,KAAK,GAAG,CAAC,GAAGA,IAAI,KAAK,QAAQ,GAAGD,GAAG,CAACI,MAAM,GAAGH,IAAI;IAE5D,OAAOZ,iBAAiB,CAAC;MAAEG,CAAC;MAAEC;IAAE,CAAC,EAAkBO,GAAG,CAAC;EACzD,CAAC,MAAM,IAAID,MAAM,CAACE,IAAI,KAAK,MAAM,IAAIF,MAAM,CAACE,IAAI,KAAK,OAAO,EAAE;IAC5D,MAAM;MAAEA,IAAI;MAAEC;IAAM,CAAC,GAAGH,MAAM;IAE9B,MAAMP,CAAS,GAAGS,IAAI,KAAK,MAAM,GAAG,CAAC,GAAGA,IAAI,KAAK,OAAO,GAAGD,GAAG,CAACG,KAAK,GAAGF,IAAI;IAC3E,MAAMR,CAAS,GACbS,KAAK,KAAK,KAAK,GACX,CAAC,GACDA,KAAK,KAAK,QAAQ,GAChBF,GAAG,CAACI,MAAM,GAAG,CAAC,GACdF,KAAK,KAAK,QAAQ,GAChBF,GAAG,CAACI,MAAM,GACVF,KAAK;IAEf,OAAOb,iBAAiB,CAAC;MAAEG,CAAC;MAAEC;IAAE,CAAC,EAAkBO,GAAG,CAAC;EACzD;EAEA,OAAOX,iBAAiB,CACtB;IACEG,CAAC,EAAEQ,GAAG,CAACG,KAAK,GAAG,CAAC;IAChBV,CAAC,EAAEO,GAAG,CAACI,MAAM,GAAG;EAClB,CAAC,EACDJ,GACF,CAAC;AACH"}
1
+ {"version":3,"file":"point.js","names":["elementToViewport","point","offset","x","y","viewportToElement","getOffset","a","b","anchorToPoint","anchor","box","side","align","width","height"],"sources":["../../../../src/composables/coordinate/utils/point.ts"],"sourcesContent":["import { type ParsedAnchor } from '@/util/anchor';\nimport { type MutableRect } from '@/util/rect';\n\ntype Point = { x: number; y: number };\ndeclare class As<T extends string> {\n private as: T;\n}\ntype ElementPoint = Point & As<'element'>;\ntype ViewportPoint = Point & As<'viewport'>;\ntype Offset = Point & As<'offset'>;\n\n/** Convert a point in local space to viewport space */\nexport function elementToViewport(\n point: ElementPoint,\n offset: Offset | MutableRect,\n) {\n return {\n x: point.x + offset.x,\n y: point.y + offset.y,\n } as ViewportPoint;\n}\n\n/** Convert a point in viewport space to local space */\nexport function viewportToElement(\n point: ViewportPoint,\n offset: Offset | MutableRect,\n) {\n return {\n x: point.x - offset.x,\n y: point.y - offset.y,\n } as ElementPoint;\n}\n\n/** Get the difference between two points */\nexport function getOffset<T extends Point>(a: T, b: T) {\n return {\n x: a.x - b.x,\n y: a.y - b.y,\n } as Offset;\n}\n\n/** Convert an anchor object to a point in local space */\nexport function anchorToPoint(\n anchor: ParsedAnchor,\n box: MutableRect,\n): ViewportPoint {\n if (anchor.side === 'top' || anchor.side === 'bottom') {\n const { side, align } = anchor;\n\n const x: number =\n align === 'left'\n ? 0\n : align === 'center'\n ? box.width / 2\n : align === 'right'\n ? box.width\n : align;\n const y: number =\n side === 'top' ? 0 : side === 'bottom' ? box.height : side;\n\n return elementToViewport({ x, y } as ElementPoint, box);\n } else if (anchor.side === 'left' || anchor.side === 'right') {\n const { side, align } = anchor;\n\n const x: number = side === 'left' ? 0 : side === 'right' ? box.width : side;\n const y: number =\n align === 'top'\n ? 0\n : align === 'center'\n ? box.height / 2\n : align === 'bottom'\n ? box.height\n : align;\n\n return elementToViewport({ x, y } as ElementPoint, box);\n }\n\n return elementToViewport(\n {\n x: box.width / 2,\n y: box.height / 2,\n } as ElementPoint,\n box,\n );\n}\n"],"mappings":"AAWA;AACA,OAAO,SAASA,iBAAiBA,CAC/BC,KAAmB,EACnBC,MAA4B,EAC5B;EACA,OAAO;IACLC,CAAC,EAAEF,KAAK,CAACE,CAAC,GAAGD,MAAM,CAACC,CAAC;IACrBC,CAAC,EAAEH,KAAK,CAACG,CAAC,GAAGF,MAAM,CAACE;EACtB,CAAC;AACH;;AAEA;AACA,OAAO,SAASC,iBAAiBA,CAC/BJ,KAAoB,EACpBC,MAA4B,EAC5B;EACA,OAAO;IACLC,CAAC,EAAEF,KAAK,CAACE,CAAC,GAAGD,MAAM,CAACC,CAAC;IACrBC,CAAC,EAAEH,KAAK,CAACG,CAAC,GAAGF,MAAM,CAACE;EACtB,CAAC;AACH;;AAEA;AACA,OAAO,SAASE,SAASA,CAAkBC,CAAI,EAAEC,CAAI,EAAE;EACrD,OAAO;IACLL,CAAC,EAAEI,CAAC,CAACJ,CAAC,GAAGK,CAAC,CAACL,CAAC;IACZC,CAAC,EAAEG,CAAC,CAACH,CAAC,GAAGI,CAAC,CAACJ;EACb,CAAC;AACH;;AAEA;AACA,OAAO,SAASK,aAAaA,CAC3BC,MAAoB,EACpBC,GAAgB,EACD;EACf,IAAID,MAAM,CAACE,IAAI,KAAK,KAAK,IAAIF,MAAM,CAACE,IAAI,KAAK,QAAQ,EAAE;IACrD,MAAM;MAAEA,IAAI;MAAEC;IAAM,CAAC,GAAGH,MAAM;IAE9B,MAAMP,CAAS,GACbU,KAAK,KAAK,MAAM,GACZ,CAAC,GACDA,KAAK,KAAK,QAAQ,GAChBF,GAAG,CAACG,KAAK,GAAG,CAAC,GACbD,KAAK,KAAK,OAAO,GACfF,GAAG,CAACG,KAAK,GACTD,KAAK;IACf,MAAMT,CAAS,GACbQ,IAAI,KAAK,KAAK,GAAG,CAAC,GAAGA,IAAI,KAAK,QAAQ,GAAGD,GAAG,CAACI,MAAM,GAAGH,IAAI;IAE5D,OAAOZ,iBAAiB,CAAC;MAAEG,CAAC;MAAEC;IAAE,CAAC,EAAkBO,GAAG,CAAC;EACzD,CAAC,MAAM,IAAID,MAAM,CAACE,IAAI,KAAK,MAAM,IAAIF,MAAM,CAACE,IAAI,KAAK,OAAO,EAAE;IAC5D,MAAM;MAAEA,IAAI;MAAEC;IAAM,CAAC,GAAGH,MAAM;IAE9B,MAAMP,CAAS,GAAGS,IAAI,KAAK,MAAM,GAAG,CAAC,GAAGA,IAAI,KAAK,OAAO,GAAGD,GAAG,CAACG,KAAK,GAAGF,IAAI;IAC3E,MAAMR,CAAS,GACbS,KAAK,KAAK,KAAK,GACX,CAAC,GACDA,KAAK,KAAK,QAAQ,GAChBF,GAAG,CAACI,MAAM,GAAG,CAAC,GACdF,KAAK,KAAK,QAAQ,GAChBF,GAAG,CAACI,MAAM,GACVF,KAAK;IAEf,OAAOb,iBAAiB,CAAC;MAAEG,CAAC;MAAEC;IAAE,CAAC,EAAkBO,GAAG,CAAC;EACzD;EAEA,OAAOX,iBAAiB,CACtB;IACEG,CAAC,EAAEQ,GAAG,CAACG,KAAK,GAAG,CAAC;IAChBV,CAAC,EAAEO,GAAG,CAACI,MAAM,GAAG;EAClB,CAAC,EACDJ,GACF,CAAC;AACH","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"factory.js","names":["reactive","watch","constructAdapter","options","locale","instance","adapter","value","formats"],"sources":["../../../src/composables/date/factory.ts"],"sourcesContent":["import { reactive, watch } from 'vue';\r\n\r\nimport { LocaleModule } from '@/i18n/types';\r\n\r\nexport function constructAdapter(options: any, locale: LocaleModule) {\r\n const instance = reactive(\r\n typeof options.adapter === 'function'\r\n ? new options.adapter({\r\n locale: options.locale[locale.locale.value] ?? locale.locale.value,\r\n formats: options.formats,\r\n })\r\n : options.adapter,\r\n );\r\n\r\n watch(locale.locale, (value) => {\r\n instance.locale = options.locale[value] ?? value ?? instance.locale;\r\n });\r\n\r\n return instance;\r\n}\r\n"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,KAAK,QAAQ,KAAK;AAIrC,OAAO,SAASC,gBAAgBA,CAACC,OAAY,EAAEC,MAAoB,EAAE;EACnE,MAAMC,QAAQ,GAAGL,QAAQ,CACvB,OAAOG,OAAO,CAACG,OAAO,KAAK,UAAU,GACjC,IAAIH,OAAO,CAACG,OAAO,CAAC;IAClBF,MAAM,EAAED,OAAO,CAACC,MAAM,CAACA,MAAM,CAACA,MAAM,CAACG,KAAK,CAAC,IAAIH,MAAM,CAACA,MAAM,CAACG,KAAK;IAClEC,OAAO,EAAEL,OAAO,CAACK;EACnB,CAAC,CAAC,GACFL,OAAO,CAACG,OACd,CAAC;EAEDL,KAAK,CAACG,MAAM,CAACA,MAAM,EAAGG,KAAK,IAAK;IAC9BF,QAAQ,CAACD,MAAM,GAAGD,OAAO,CAACC,MAAM,CAACG,KAAK,CAAC,IAAIA,KAAK,IAAIF,QAAQ,CAACD,MAAM;EACrE,CAAC,CAAC;EAEF,OAAOC,QAAQ;AACjB"}
1
+ {"version":3,"file":"factory.js","names":["reactive","watch","constructAdapter","options","locale","instance","adapter","value","formats"],"sources":["../../../src/composables/date/factory.ts"],"sourcesContent":["import { reactive, watch } from 'vue';\n\nimport { LocaleModule } from '@/i18n/types';\n\nexport function constructAdapter(options: any, locale: LocaleModule) {\n const instance = reactive(\n typeof options.adapter === 'function'\n ? new options.adapter({\n locale: options.locale[locale.locale.value] ?? locale.locale.value,\n formats: options.formats,\n })\n : options.adapter,\n );\n\n watch(locale.locale, (value) => {\n instance.locale = options.locale[value] ?? value ?? instance.locale;\n });\n\n return instance;\n}\n"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,KAAK,QAAQ,KAAK;AAIrC,OAAO,SAASC,gBAAgBA,CAACC,OAAY,EAAEC,MAAoB,EAAE;EACnE,MAAMC,QAAQ,GAAGL,QAAQ,CACvB,OAAOG,OAAO,CAACG,OAAO,KAAK,UAAU,GACjC,IAAIH,OAAO,CAACG,OAAO,CAAC;IAClBF,MAAM,EAAED,OAAO,CAACC,MAAM,CAACA,MAAM,CAACA,MAAM,CAACG,KAAK,CAAC,IAAIH,MAAM,CAACA,MAAM,CAACG,KAAK;IAClEC,OAAO,EAAEL,OAAO,CAACK;EACnB,CAAC,CAAC,GACFL,OAAO,CAACG,OACd,CAAC;EAEDL,KAAK,CAACG,MAAM,CAACA,MAAM,EAAGG,KAAK,IAAK;IAC9BF,QAAQ,CAACD,MAAM,GAAGD,OAAO,CAACC,MAAM,CAACG,KAAK,CAAC,IAAIA,KAAK,IAAIF,QAAQ,CAACD,MAAM;EACrE,CAAC,CAAC;EAEF,OAAOC,QAAQ;AACjB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["inject","useI18n","constructAdapter","configureOptions","YUYEON_DATE_KEY","Symbol","for","YUYEON_DATE_OPTIONS_KEY","createDateModule","options","locale","_options","instance","useDate","Error","i18n"],"sources":["../../../src/composables/date/index.ts"],"sourcesContent":["import { inject } from 'vue';\r\n\r\nimport { LocaleModule } from '@/i18n/types';\r\n\r\nimport { useI18n } from '../i18n';\r\nimport { constructAdapter } from './factory';\r\nimport { configureOptions } from './setting';\r\nimport { DateInstance, DateOptions } from './types';\r\n\r\nexport const YUYEON_DATE_KEY = Symbol.for('yuyeon.date');\r\nexport const YUYEON_DATE_OPTIONS_KEY = Symbol.for('yuyeon.date-options');\r\n\r\nexport function createDateModule(options: DateOptions, locale: LocaleModule) {\r\n const _options = configureOptions(options);\r\n return {\r\n options: _options,\r\n instance: constructAdapter(_options, locale),\r\n };\r\n}\r\n\r\nexport function useDate(): DateInstance {\r\n const options = inject<any>(YUYEON_DATE_OPTIONS_KEY);\r\n if (!options)\r\n throw new Error('【yuyeon】 Not found provided \"DateModule\" for options');\r\n\r\n const i18n = useI18n();\r\n\r\n return constructAdapter(options, i18n);\r\n}\r\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,KAAK;AAAC,SAIpBC,OAAO;AAAA,SACPC,gBAAgB;AAAA,SAChBC,gBAAgB;AAGzB,OAAO,MAAMC,eAAe,GAAGC,MAAM,CAACC,GAAG,CAAC,aAAa,CAAC;AACxD,OAAO,MAAMC,uBAAuB,GAAGF,MAAM,CAACC,GAAG,CAAC,qBAAqB,CAAC;AAExE,OAAO,SAASE,gBAAgBA,CAACC,OAAoB,EAAEC,MAAoB,EAAE;EAC3E,MAAMC,QAAQ,GAAGR,gBAAgB,CAACM,OAAO,CAAC;EAC1C,OAAO;IACLA,OAAO,EAAEE,QAAQ;IACjBC,QAAQ,EAAEV,gBAAgB,CAACS,QAAQ,EAAED,MAAM;EAC7C,CAAC;AACH;AAEA,OAAO,SAASG,OAAOA,CAAA,EAAiB;EACtC,MAAMJ,OAAO,GAAGT,MAAM,CAAMO,uBAAuB,CAAC;EACpD,IAAI,CAACE,OAAO,EACV,MAAM,IAAIK,KAAK,CAAC,sDAAsD,CAAC;EAEzE,MAAMC,IAAI,GAAGd,OAAO,CAAC,CAAC;EAEtB,OAAOC,gBAAgB,CAACO,OAAO,EAAEM,IAAI,CAAC;AACxC"}
1
+ {"version":3,"file":"index.js","names":["inject","useI18n","constructAdapter","configureOptions","YUYEON_DATE_KEY","Symbol","for","YUYEON_DATE_OPTIONS_KEY","createDateModule","options","locale","_options","instance","useDate","Error","i18n"],"sources":["../../../src/composables/date/index.ts"],"sourcesContent":["import { inject } from 'vue';\n\nimport { LocaleModule } from '@/i18n/types';\n\nimport { useI18n } from '../i18n';\nimport { constructAdapter } from './factory';\nimport { configureOptions } from './setting';\nimport { DateInstance, DateOptions } from './types';\n\nexport const YUYEON_DATE_KEY = Symbol.for('yuyeon.date');\nexport const YUYEON_DATE_OPTIONS_KEY = Symbol.for('yuyeon.date-options');\n\nexport function createDateModule(options: DateOptions, locale: LocaleModule) {\n const _options = configureOptions(options);\n return {\n options: _options,\n instance: constructAdapter(_options, locale),\n };\n}\n\nexport function useDate(): DateInstance {\n const options = inject<any>(YUYEON_DATE_OPTIONS_KEY);\n if (!options)\n throw new Error('【yuyeon】 Not found provided \"DateModule\" for options');\n\n const i18n = useI18n();\n\n return constructAdapter(options, i18n);\n}\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,KAAK;AAAC,SAIpBC,OAAO;AAAA,SACPC,gBAAgB;AAAA,SAChBC,gBAAgB;AAGzB,OAAO,MAAMC,eAAe,GAAGC,MAAM,CAACC,GAAG,CAAC,aAAa,CAAC;AACxD,OAAO,MAAMC,uBAAuB,GAAGF,MAAM,CAACC,GAAG,CAAC,qBAAqB,CAAC;AAExE,OAAO,SAASE,gBAAgBA,CAACC,OAAoB,EAAEC,MAAoB,EAAE;EAC3E,MAAMC,QAAQ,GAAGR,gBAAgB,CAACM,OAAO,CAAC;EAC1C,OAAO;IACLA,OAAO,EAAEE,QAAQ;IACjBC,QAAQ,EAAEV,gBAAgB,CAACS,QAAQ,EAAED,MAAM;EAC7C,CAAC;AACH;AAEA,OAAO,SAASG,OAAOA,CAAA,EAAiB;EACtC,MAAMJ,OAAO,GAAGT,MAAM,CAAMO,uBAAuB,CAAC;EACpD,IAAI,CAACE,OAAO,EACV,MAAM,IAAIK,KAAK,CAAC,sDAAsD,CAAC;EAEzE,MAAMC,IAAI,GAAGd,OAAO,CAAC,CAAC;EAEtB,OAAOC,gBAAgB,CAACO,OAAO,EAAEM,IAAI,CAAC;AACxC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"setting.js","names":["localeCodesMap","mergeDeep","YuyeonDateAdapter","configureOptions","options","_options","adapter","locale"],"sources":["../../../src/composables/date/setting.ts"],"sourcesContent":["import { localeCodesMap } from '@/i18n/config';\r\nimport { mergeDeep } from '@/util/common';\r\nimport { YuyeonDateAdapter } from '@/util/date';\r\n\r\nimport type { DateOptions } from './types';\r\n\r\nexport function configureOptions(options?: DateOptions) {\r\n const _options = mergeDeep(\r\n {\r\n adapter: YuyeonDateAdapter,\r\n locale: localeCodesMap,\r\n },\r\n options,\r\n );\r\n\r\n return _options;\r\n}\r\n"],"mappings":"SAASA,cAAc;AAAA,SACdC,SAAS;AAAA,SACTC,iBAAiB;AAI1B,OAAO,SAASC,gBAAgBA,CAACC,OAAqB,EAAE;EACtD,MAAMC,QAAQ,GAAGJ,SAAS,CACxB;IACEK,OAAO,EAAEJ,iBAAiB;IAC1BK,MAAM,EAAEP;EACV,CAAC,EACDI,OACF,CAAC;EAED,OAAOC,QAAQ;AACjB"}
1
+ {"version":3,"file":"setting.js","names":["localeCodesMap","mergeDeep","YuyeonDateAdapter","configureOptions","options","_options","adapter","locale"],"sources":["../../../src/composables/date/setting.ts"],"sourcesContent":["import { localeCodesMap } from '@/i18n/config';\nimport { mergeDeep } from '@/util/common';\nimport { YuyeonDateAdapter } from '@/util/date';\n\nimport type { DateOptions } from './types';\n\nexport function configureOptions(options?: DateOptions) {\n const _options = mergeDeep(\n {\n adapter: YuyeonDateAdapter,\n locale: localeCodesMap,\n },\n options,\n );\n\n return _options;\n}\n"],"mappings":"SAASA,cAAc;AAAA,SACdC,SAAS;AAAA,SACTC,iBAAiB;AAI1B,OAAO,SAASC,gBAAgBA,CAACC,OAAqB,EAAE;EACtD,MAAMC,QAAQ,GAAGJ,SAAS,CACxB;IACEK,OAAO,EAAEJ,iBAAiB;IAC1BK,MAAM,EAAEP;EACV,CAAC,EACDI,OACF,CAAC;EAED,OAAOC,QAAQ;AACjB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../src/composables/date/types.ts"],"sourcesContent":["import type { DateAdapter } from '@/util/date/types';\r\n\r\nexport interface DateOptions {\r\n adapter: any;\r\n locale: Record<string, any>;\r\n formats?: Record<string, any>;\r\n}\r\n\r\nexport interface DateInstanceType {\r\n instanceType: unknown;\r\n}\r\n\r\nexport interface DateInstance<T = DateInstanceType['instanceType']>\r\n extends DateAdapter<T> {\r\n locale?: any;\r\n}\r\n"],"mappings":""}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../src/composables/date/types.ts"],"sourcesContent":["import type { DateAdapter } from '@/util/date/types';\n\nexport interface DateOptions {\n adapter: any;\n locale: Record<string, any>;\n formats?: Record<string, any>;\n}\n\nexport interface DateInstanceType {\n instanceType: unknown;\n}\n\nexport interface DateInstance<T = DateInstanceType['instanceType']>\n extends DateAdapter<T> {\n locale?: any;\n}\n"],"mappings":"","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["computed","getCurrentInstance","inject","provide","ref","shallowRef","unref","watchEffect","clamp","mergeDeep","injectSelf","propIsDefined","YUYEON_DEFAULTS_KEY","configureOptions","options","createDefaultsModule","useDefaultsModule","defaults","Error","provideDefaults","defaultsModule","provides","computedDefaults","disabled","value","root","reset","scoped","revision","Array","isArray","revisions","push","resetNum","isNaN","Number","length","useSuperDefaults","props","arguments","undefined","name","vm","type","__name","namedDefaults","_subcomponentDefaults","_props","Proxy","get","target","prop","propValue","Reflect","filter","v","vnode","global","subComponents","Object","entries","_ref","key","startsWith","toUpperCase","fromEntries","provideSubDefaults","injected","useDefaults"],"sources":["../../../src/composables/defaults/index.ts"],"sourcesContent":["import {\r\n type MaybeRef,\r\n computed,\r\n getCurrentInstance,\r\n inject,\r\n provide,\r\n ref,\r\n shallowRef,\r\n unref,\r\n watchEffect,\r\n} from 'vue';\r\n\r\nimport { clamp, mergeDeep } from '@/util/common';\r\nimport { injectSelf } from '@/util/component/inject-self';\r\nimport { propIsDefined } from '@/util/component/props';\r\n\r\nimport { YUYEON_DEFAULTS_KEY } from './share';\r\nimport {\r\n DefaultsModuleInstance,\r\n DefaultsOptions,\r\n ProvideDefaultsOptions,\r\n} from './types';\r\n\r\nfunction configureOptions(options?: DefaultsOptions) {\r\n return ref<DefaultsModuleInstance>(options);\r\n}\r\n\r\nexport function createDefaultsModule(options?: DefaultsModuleInstance) {\r\n return configureOptions(options);\r\n}\r\n\r\nexport function useDefaultsModule() {\r\n const defaults = inject(YUYEON_DEFAULTS_KEY);\r\n if (!defaults)\r\n throw new Error('【yuyeon】 Not found provided \"DefaultsModule\"');\r\n\r\n return defaults;\r\n}\r\n\r\nexport function provideDefaults(\r\n defaults?: MaybeRef<DefaultsModuleInstance | undefined>,\r\n options?: ProvideDefaultsOptions,\r\n) {\r\n const defaultsModule = useDefaultsModule();\r\n const provides = ref(defaults);\r\n\r\n const computedDefaults = computed<DefaultsModuleInstance>(() => {\r\n if (unref(options?.disabled)) return defaultsModule.value;\r\n\r\n const root = unref(options?.root);\r\n const reset = unref(options?.reset);\r\n const scoped = unref(options?.scoped);\r\n\r\n if (provides.value == null && !(scoped || reset || root))\r\n return defaultsModule.value;\r\n\r\n let revision = provides.value ?? {};\r\n if (!Array.isArray(revision?.revisions)) {\r\n revision.revisions = [];\r\n }\r\n revision.revisions.push(defaultsModule.value);\r\n if (scoped) return revision;\r\n if (reset || root) {\r\n const { revisions } = revision;\r\n const resetNum = isNaN(Number(reset))\r\n ? 0\r\n : clamp(Number(reset), 0, revisions.length);\r\n revision = revisions[revisions.length - resetNum];\r\n if (revision && typeof root === 'string' && root in revision) {\r\n revision = mergeDeep(revision, revision[root]);\r\n }\r\n\r\n return revision;\r\n }\r\n });\r\n\r\n provide(YUYEON_DEFAULTS_KEY, computedDefaults);\r\n\r\n return computedDefaults;\r\n}\r\n\r\nexport function useSuperDefaults(\r\n props: Record<string, any> = {},\r\n name?: string,\r\n defaults = useDefaultsModule(),\r\n) {\r\n const vm = getCurrentInstance()!;\r\n name = name || vm?.type?.name || vm?.type?.__name;\r\n if (!name) throw new Error('Missing component name');\r\n\r\n const namedDefaults = computed(() => defaults.value?.[name]);\r\n const _subcomponentDefaults = shallowRef();\r\n\r\n const _props = new Proxy(props, {\r\n get(target, prop) {\r\n const propValue = Reflect.get(target, prop);\r\n if (prop === 'class' || prop === 'style') {\r\n return [namedDefaults.value?.[prop], propValue].filter(\r\n (v) => v != null,\r\n );\r\n } else if (typeof prop === 'string' && !propIsDefined(vm.vnode, prop)) {\r\n return namedDefaults.value?.[prop] !== undefined\r\n ? namedDefaults.value?.[prop]\r\n : defaults.value?.global?.[prop] !== undefined\r\n ? defaults.value?.global?.[prop]\r\n : propValue;\r\n }\r\n return propValue;\r\n },\r\n });\r\n\r\n watchEffect(() => {\r\n if (namedDefaults.value) {\r\n const subComponents = Object.entries(namedDefaults.value).filter(\r\n ([key]) => key.startsWith(key[0].toUpperCase()),\r\n );\r\n _subcomponentDefaults.value = subComponents.length\r\n ? Object.fromEntries(subComponents)\r\n : undefined;\r\n } else {\r\n _subcomponentDefaults.value = undefined;\r\n }\r\n });\r\n\r\n function provideSubDefaults() {\r\n const injected = injectSelf(YUYEON_DEFAULTS_KEY, vm);\r\n provide(\r\n YUYEON_DEFAULTS_KEY,\r\n computed(() => {\r\n return _subcomponentDefaults.value\r\n ? mergeDeep(injected?.value ?? {}, _subcomponentDefaults.value)\r\n : injected?.value;\r\n }),\r\n );\r\n }\r\n\r\n return { props: _props, provideSubDefaults };\r\n}\r\n\r\nexport function useDefaults(\r\n props: undefined,\r\n name: string,\r\n): Record<string, any>;\r\nexport function useDefaults(props: Record<string, any> = {}, name?: string) {\r\n const { props: _props, provideSubDefaults } = useSuperDefaults(props, name);\r\n provideSubDefaults();\r\n\r\n return _props;\r\n}\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["computed","getCurrentInstance","inject","provide","ref","shallowRef","unref","watchEffect","clamp","mergeDeep","injectSelf","propIsDefined","YUYEON_DEFAULTS_KEY","configureOptions","options","createDefaultsModule","useDefaultsModule","defaults","Error","provideDefaults","defaultsModule","provides","computedDefaults","disabled","value","root","reset","scoped","revision","Array","isArray","revisions","push","resetNum","isNaN","Number","length","useSuperDefaults","props","arguments","undefined","name","vm","type","__name","namedDefaults","_subcomponentDefaults","_props","Proxy","get","target","prop","propValue","Reflect","filter","v","vnode","global","subComponents","Object","entries","_ref","key","startsWith","toUpperCase","fromEntries","provideSubDefaults","injected","useDefaults"],"sources":["../../../src/composables/defaults/index.ts"],"sourcesContent":["import {\n type MaybeRef,\n computed,\n getCurrentInstance,\n inject,\n provide,\n ref,\n shallowRef,\n unref,\n watchEffect,\n} from 'vue';\n\nimport { clamp, mergeDeep } from '@/util/common';\nimport { injectSelf } from '@/util/component/inject-self';\nimport { propIsDefined } from '@/util/component/props';\n\nimport { YUYEON_DEFAULTS_KEY } from './share';\nimport {\n DefaultsModuleInstance,\n DefaultsOptions,\n ProvideDefaultsOptions,\n} from './types';\n\nfunction configureOptions(options?: DefaultsOptions) {\n return ref<DefaultsModuleInstance>(options);\n}\n\nexport function createDefaultsModule(options?: DefaultsModuleInstance) {\n return configureOptions(options);\n}\n\nexport function useDefaultsModule() {\n const defaults = inject(YUYEON_DEFAULTS_KEY);\n if (!defaults)\n throw new Error('【yuyeon】 Not found provided \"DefaultsModule\"');\n\n return defaults;\n}\n\nexport function provideDefaults(\n defaults?: MaybeRef<DefaultsModuleInstance | undefined>,\n options?: ProvideDefaultsOptions,\n) {\n const defaultsModule = useDefaultsModule();\n const provides = ref(defaults);\n\n const computedDefaults = computed<DefaultsModuleInstance>(() => {\n if (unref(options?.disabled)) return defaultsModule.value;\n\n const root = unref(options?.root);\n const reset = unref(options?.reset);\n const scoped = unref(options?.scoped);\n\n if (provides.value == null && !(scoped || reset || root))\n return defaultsModule.value;\n\n let revision = provides.value ?? {};\n if (!Array.isArray(revision?.revisions)) {\n revision.revisions = [];\n }\n revision.revisions.push(defaultsModule.value);\n if (scoped) return revision;\n if (reset || root) {\n const { revisions } = revision;\n const resetNum = isNaN(Number(reset))\n ? 0\n : clamp(Number(reset), 0, revisions.length);\n revision = revisions[revisions.length - resetNum];\n if (revision && typeof root === 'string' && root in revision) {\n revision = mergeDeep(revision, revision[root]);\n }\n\n return revision;\n }\n });\n\n provide(YUYEON_DEFAULTS_KEY, computedDefaults);\n\n return computedDefaults;\n}\n\nexport function useSuperDefaults(\n props: Record<string, any> = {},\n name?: string,\n defaults = useDefaultsModule(),\n) {\n const vm = getCurrentInstance()!;\n name = name || vm?.type?.name || vm?.type?.__name;\n if (!name) throw new Error('Missing component name');\n\n const namedDefaults = computed(() => defaults.value?.[name]);\n const _subcomponentDefaults = shallowRef();\n\n const _props = new Proxy(props, {\n get(target, prop) {\n const propValue = Reflect.get(target, prop);\n if (prop === 'class' || prop === 'style') {\n return [namedDefaults.value?.[prop], propValue].filter(\n (v) => v != null,\n );\n } else if (typeof prop === 'string' && !propIsDefined(vm.vnode, prop)) {\n return namedDefaults.value?.[prop] !== undefined\n ? namedDefaults.value?.[prop]\n : defaults.value?.global?.[prop] !== undefined\n ? defaults.value?.global?.[prop]\n : propValue;\n }\n return propValue;\n },\n });\n\n watchEffect(() => {\n if (namedDefaults.value) {\n const subComponents = Object.entries(namedDefaults.value).filter(\n ([key]) => key.startsWith(key[0].toUpperCase()),\n );\n _subcomponentDefaults.value = subComponents.length\n ? Object.fromEntries(subComponents)\n : undefined;\n } else {\n _subcomponentDefaults.value = undefined;\n }\n });\n\n function provideSubDefaults() {\n const injected = injectSelf(YUYEON_DEFAULTS_KEY, vm);\n provide(\n YUYEON_DEFAULTS_KEY,\n computed(() => {\n return _subcomponentDefaults.value\n ? mergeDeep(injected?.value ?? {}, _subcomponentDefaults.value)\n : injected?.value;\n }),\n );\n }\n\n return { props: _props, provideSubDefaults };\n}\n\nexport function useDefaults(\n props: undefined,\n name: string,\n): Record<string, any>;\nexport function useDefaults(props: Record<string, any> = {}, name?: string) {\n const { props: _props, provideSubDefaults } = useSuperDefaults(props, name);\n provideSubDefaults();\n\n return _props;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"share.js","names":["YUYEON_DEFAULTS_KEY","Symbol","for"],"sources":["../../../src/composables/defaults/share.ts"],"sourcesContent":["import type { InjectionKey, Ref } from 'vue';\r\n\r\nimport type { DefaultsModuleInstance } from './types';\r\n\r\nexport const YUYEON_DEFAULTS_KEY: InjectionKey<Ref<DefaultsModuleInstance>> =\r\n Symbol.for('yuyeon.defaults');\r\n"],"mappings":"AAIA,OAAO,MAAMA,mBAA8D,GACzEC,MAAM,CAACC,GAAG,CAAC,iBAAiB,CAAC"}
1
+ {"version":3,"file":"share.js","names":["YUYEON_DEFAULTS_KEY","Symbol","for"],"sources":["../../../src/composables/defaults/share.ts"],"sourcesContent":["import type { InjectionKey, Ref } from 'vue';\n\nimport type { DefaultsModuleInstance } from './types';\n\nexport const YUYEON_DEFAULTS_KEY: InjectionKey<Ref<DefaultsModuleInstance>> =\n Symbol.for('yuyeon.defaults');\n"],"mappings":"AAIA,OAAO,MAAMA,mBAA8D,GACzEC,MAAM,CAACC,GAAG,CAAC,iBAAiB,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../src/composables/defaults/types.ts"],"sourcesContent":["import { type MaybeRef } from 'vue';\r\n\r\nexport type DefaultsModuleInstance = undefined | {\r\n [key: string]: any;\r\n}\r\n\r\nexport type DefaultsOptions = Partial<DefaultsModuleInstance>;\r\n\r\nexport type ProvideDefaultsOptions = {\r\n disabled?: MaybeRef<boolean | undefined>\r\n reset?: MaybeRef<number | string | undefined>\r\n root?: MaybeRef<boolean | string | undefined>\r\n scoped?: MaybeRef<boolean | undefined>\r\n}\r\n"],"mappings":""}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../src/composables/defaults/types.ts"],"sourcesContent":["import { type MaybeRef } from 'vue';\r\n\r\nexport type DefaultsModuleInstance =\r\n | undefined\r\n | {\r\n [key: string]: any;\r\n };\r\n\r\nexport type DefaultsOptions = Partial<DefaultsModuleInstance>;\r\n\r\nexport type ProvideDefaultsOptions = {\r\n disabled?: MaybeRef<boolean | undefined>;\r\n reset?: MaybeRef<number | string | undefined>;\r\n root?: MaybeRef<boolean | string | undefined>;\r\n scoped?: MaybeRef<boolean | undefined>;\r\n};\r\n"],"mappings":"","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"dimension.js","names":["computed","propsFactory","toStyleSizeValue","dimensionPropsOptions","minWidth","Number","String","width","maxWidth","minHeight","height","maxHeight","pressDimensionPropsOptions","useDimension","props","dimensionStyles"],"sources":["../../src/composables/dimension.ts"],"sourcesContent":["import { type ExtractPropTypes, type PropType, computed } from 'vue';\r\n\r\nimport { propsFactory } from '@/util/component';\r\nimport { toStyleSizeValue } from '@/util/ui';\r\n\r\nconst dimensionPropsOptions = {\r\n minWidth: [Number, String] as PropType<number | string>,\r\n width: [Number, String] as PropType<number | string>,\r\n maxWidth: [Number, String] as PropType<number | string>,\r\n minHeight: [Number, String] as PropType<number | string>,\r\n height: [Number, String] as PropType<number | string>,\r\n maxHeight: [Number, String] as PropType<number | string>,\r\n};\r\n\r\nexport const pressDimensionPropsOptions = propsFactory(\r\n dimensionPropsOptions,\r\n 'dimension',\r\n);\r\n\r\nexport function useDimension(\r\n props: ExtractPropTypes<typeof dimensionPropsOptions>,\r\n) {\r\n const dimensionStyles = computed(() => ({\r\n minWidth: toStyleSizeValue(props.minWidth),\r\n width: toStyleSizeValue(props.width),\r\n maxWidth: toStyleSizeValue(props.maxWidth),\r\n minHeight: toStyleSizeValue(props.minHeight),\r\n height: toStyleSizeValue(props.height),\r\n maxHeight: toStyleSizeValue(props.maxHeight),\r\n }));\r\n\r\n return {\r\n dimensionStyles,\r\n };\r\n}\r\n"],"mappings":"AAAA,SAA+CA,QAAQ,QAAQ,KAAK;AAAC,SAE5DC,YAAY;AAAA,SACZC,gBAAgB;AAEzB,MAAMC,qBAAqB,GAAG;EAC5BC,QAAQ,EAAE,CAACC,MAAM,EAAEC,MAAM,CAA8B;EACvDC,KAAK,EAAE,CAACF,MAAM,EAAEC,MAAM,CAA8B;EACpDE,QAAQ,EAAE,CAACH,MAAM,EAAEC,MAAM,CAA8B;EACvDG,SAAS,EAAE,CAACJ,MAAM,EAAEC,MAAM,CAA8B;EACxDI,MAAM,EAAE,CAACL,MAAM,EAAEC,MAAM,CAA8B;EACrDK,SAAS,EAAE,CAACN,MAAM,EAAEC,MAAM;AAC5B,CAAC;AAED,OAAO,MAAMM,0BAA0B,GAAGX,YAAY,CACpDE,qBAAqB,EACrB,WACF,CAAC;AAED,OAAO,SAASU,YAAYA,CAC1BC,KAAqD,EACrD;EACA,MAAMC,eAAe,GAAGf,QAAQ,CAAC,OAAO;IACtCI,QAAQ,EAAEF,gBAAgB,CAACY,KAAK,CAACV,QAAQ,CAAC;IAC1CG,KAAK,EAAEL,gBAAgB,CAACY,KAAK,CAACP,KAAK,CAAC;IACpCC,QAAQ,EAAEN,gBAAgB,CAACY,KAAK,CAACN,QAAQ,CAAC;IAC1CC,SAAS,EAAEP,gBAAgB,CAACY,KAAK,CAACL,SAAS,CAAC;IAC5CC,MAAM,EAAER,gBAAgB,CAACY,KAAK,CAACJ,MAAM,CAAC;IACtCC,SAAS,EAAET,gBAAgB,CAACY,KAAK,CAACH,SAAS;EAC7C,CAAC,CAAC,CAAC;EAEH,OAAO;IACLI;EACF,CAAC;AACH"}
1
+ {"version":3,"file":"dimension.js","names":["computed","propsFactory","toStyleSizeValue","dimensionPropsOptions","minWidth","Number","String","width","maxWidth","minHeight","height","maxHeight","pressDimensionPropsOptions","useDimension","props","dimensionStyles"],"sources":["../../src/composables/dimension.ts"],"sourcesContent":["import { type ExtractPropTypes, type PropType, computed } from 'vue';\n\nimport { propsFactory } from '@/util/component';\nimport { toStyleSizeValue } from '@/util/ui';\n\nconst dimensionPropsOptions = {\n minWidth: [Number, String] as PropType<number | string>,\n width: [Number, String] as PropType<number | string>,\n maxWidth: [Number, String] as PropType<number | string>,\n minHeight: [Number, String] as PropType<number | string>,\n height: [Number, String] as PropType<number | string>,\n maxHeight: [Number, String] as PropType<number | string>,\n};\n\nexport const pressDimensionPropsOptions = propsFactory(\n dimensionPropsOptions,\n 'dimension',\n);\n\nexport function useDimension(\n props: ExtractPropTypes<typeof dimensionPropsOptions>,\n) {\n const dimensionStyles = computed(() => ({\n minWidth: toStyleSizeValue(props.minWidth),\n width: toStyleSizeValue(props.width),\n maxWidth: toStyleSizeValue(props.maxWidth),\n minHeight: toStyleSizeValue(props.minHeight),\n height: toStyleSizeValue(props.height),\n maxHeight: toStyleSizeValue(props.maxHeight),\n }));\n\n return {\n dimensionStyles,\n };\n}\n"],"mappings":"AAAA,SAA+CA,QAAQ,QAAQ,KAAK;AAAC,SAE5DC,YAAY;AAAA,SACZC,gBAAgB;AAEzB,MAAMC,qBAAqB,GAAG;EAC5BC,QAAQ,EAAE,CAACC,MAAM,EAAEC,MAAM,CAA8B;EACvDC,KAAK,EAAE,CAACF,MAAM,EAAEC,MAAM,CAA8B;EACpDE,QAAQ,EAAE,CAACH,MAAM,EAAEC,MAAM,CAA8B;EACvDG,SAAS,EAAE,CAACJ,MAAM,EAAEC,MAAM,CAA8B;EACxDI,MAAM,EAAE,CAACL,MAAM,EAAEC,MAAM,CAA8B;EACrDK,SAAS,EAAE,CAACN,MAAM,EAAEC,MAAM;AAC5B,CAAC;AAED,OAAO,MAAMM,0BAA0B,GAAGX,YAAY,CACpDE,qBAAqB,EACrB,WACF,CAAC;AAED,OAAO,SAASU,YAAYA,CAC1BC,KAAqD,EACrD;EACA,MAAMC,eAAe,GAAGf,QAAQ,CAAC,OAAO;IACtCI,QAAQ,EAAEF,gBAAgB,CAACY,KAAK,CAACV,QAAQ,CAAC;IAC1CG,KAAK,EAAEL,gBAAgB,CAACY,KAAK,CAACP,KAAK,CAAC;IACpCC,QAAQ,EAAEN,gBAAgB,CAACY,KAAK,CAACN,QAAQ,CAAC;IAC1CC,SAAS,EAAEP,gBAAgB,CAACY,KAAK,CAACL,SAAS,CAAC;IAC5CC,MAAM,EAAER,gBAAgB,CAACY,KAAK,CAACJ,MAAM,CAAC;IACtCC,SAAS,EAAET,gBAAgB,CAACY,KAAK,CAACH,SAAS;EAC7C,CAAC,CAAC,CAAC;EAEH,OAAO;IACLI;EACF,CAAC;AACH","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"focus.js","names":["computed","propsFactory","useModelDuplex","focusPropsOptions","focused","Boolean","Function","pressFocusPropsOptions","useFocus","props","className","whenFocus","value","whenBlur","focusedClasses"],"sources":["../../src/composables/focus.ts"],"sourcesContent":["import { type ExtractPropTypes, type PropType, computed } from 'vue';\r\n\r\nimport { propsFactory } from '@/util/component';\r\n\r\nimport { useModelDuplex } from './communication';\r\n\r\nconst focusPropsOptions = {\r\n focused: Boolean,\r\n 'onUpdate:focused': Function as PropType<(v: boolean) => void>,\r\n};\r\n\r\nexport const pressFocusPropsOptions = propsFactory(focusPropsOptions, 'focus');\r\n\r\nexport function useFocus(\r\n props: ExtractPropTypes<typeof focusPropsOptions>,\r\n className: string,\r\n) {\r\n const focused = useModelDuplex(props, 'focused');\r\n\r\n function whenFocus() {\r\n focused.value = true;\r\n }\r\n\r\n function whenBlur() {\r\n focused.value = false;\r\n }\r\n\r\n const focusedClasses = computed(() => {\r\n return {\r\n [`${className}--focused`]: focused.value,\r\n };\r\n });\r\n\r\n return {\r\n focused,\r\n whenFocus,\r\n whenBlur,\r\n focusedClasses,\r\n };\r\n}\r\n"],"mappings":"AAAA,SAA+CA,QAAQ,QAAQ,KAAK;AAAC,SAE5DC,YAAY;AAAA,SAEZC,cAAc;AAEvB,MAAMC,iBAAiB,GAAG;EACxBC,OAAO,EAAEC,OAAO;EAChB,kBAAkB,EAAEC;AACtB,CAAC;AAED,OAAO,MAAMC,sBAAsB,GAAGN,YAAY,CAACE,iBAAiB,EAAE,OAAO,CAAC;AAE9E,OAAO,SAASK,QAAQA,CACtBC,KAAiD,EACjDC,SAAiB,EACjB;EACA,MAAMN,OAAO,GAAGF,cAAc,CAACO,KAAK,EAAE,SAAS,CAAC;EAEhD,SAASE,SAASA,CAAA,EAAG;IACnBP,OAAO,CAACQ,KAAK,GAAG,IAAI;EACtB;EAEA,SAASC,QAAQA,CAAA,EAAG;IAClBT,OAAO,CAACQ,KAAK,GAAG,KAAK;EACvB;EAEA,MAAME,cAAc,GAAGd,QAAQ,CAAC,MAAM;IACpC,OAAO;MACL,CAAE,GAAEU,SAAU,WAAU,GAAGN,OAAO,CAACQ;IACrC,CAAC;EACH,CAAC,CAAC;EAEF,OAAO;IACLR,OAAO;IACPO,SAAS;IACTE,QAAQ;IACRC;EACF,CAAC;AACH"}
1
+ {"version":3,"file":"focus.js","names":["computed","propsFactory","useModelDuplex","focusPropsOptions","focused","Boolean","Function","pressFocusPropsOptions","useFocus","props","className","whenFocus","value","whenBlur","focusedClasses"],"sources":["../../src/composables/focus.ts"],"sourcesContent":["import { type ExtractPropTypes, type PropType, computed } from 'vue';\n\nimport { propsFactory } from '@/util/component';\n\nimport { useModelDuplex } from './communication';\n\nconst focusPropsOptions = {\n focused: Boolean,\n 'onUpdate:focused': Function as PropType<(v: boolean) => void>,\n};\n\nexport const pressFocusPropsOptions = propsFactory(focusPropsOptions, 'focus');\n\nexport function useFocus(\n props: ExtractPropTypes<typeof focusPropsOptions>,\n className: string,\n) {\n const focused = useModelDuplex(props, 'focused');\n\n function whenFocus() {\n focused.value = true;\n }\n\n function whenBlur() {\n focused.value = false;\n }\n\n const focusedClasses = computed(() => {\n return {\n [`${className}--focused`]: focused.value,\n };\n });\n\n return {\n focused,\n whenFocus,\n whenBlur,\n focusedClasses,\n };\n}\n"],"mappings":"AAAA,SAA+CA,QAAQ,QAAQ,KAAK;AAAC,SAE5DC,YAAY;AAAA,SAEZC,cAAc;AAEvB,MAAMC,iBAAiB,GAAG;EACxBC,OAAO,EAAEC,OAAO;EAChB,kBAAkB,EAAEC;AACtB,CAAC;AAED,OAAO,MAAMC,sBAAsB,GAAGN,YAAY,CAACE,iBAAiB,EAAE,OAAO,CAAC;AAE9E,OAAO,SAASK,QAAQA,CACtBC,KAAiD,EACjDC,SAAiB,EACjB;EACA,MAAMN,OAAO,GAAGF,cAAc,CAACO,KAAK,EAAE,SAAS,CAAC;EAEhD,SAASE,SAASA,CAAA,EAAG;IACnBP,OAAO,CAACQ,KAAK,GAAG,IAAI;EACtB;EAEA,SAASC,QAAQA,CAAA,EAAG;IAClBT,OAAO,CAACQ,KAAK,GAAG,KAAK;EACvB;EAEA,MAAME,cAAc,GAAGd,QAAQ,CAAC,MAAM;IACpC,OAAO;MACL,CAAC,GAAGU,SAAS,WAAW,GAAGN,OAAO,CAACQ;IACrC,CAAC;EACH,CAAC,CAAC;EAEF,OAAO;IACLR,OAAO;IACPO,SAAS;IACTE,QAAQ;IACRC;EACF,CAAC;AACH","ignoreList":[]}