yuyeon 0.3.4-beta.15 → 0.3.4-beta.18

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 (277) hide show
  1. package/dist/yuyeon.js +3157 -3119
  2. package/dist/yuyeon.umd.cjs +3 -3
  3. package/lib/components/img/YImg.js +6 -6
  4. package/lib/components/img/YImg.js.map +1 -1
  5. package/lib/components/layer/YLayer.js +12 -3
  6. package/lib/components/layer/YLayer.js.map +1 -1
  7. package/lib/composables/coordinate/index.js +23 -13
  8. package/lib/composables/coordinate/index.js.map +1 -1
  9. package/lib/composables/coordinate/levitation.js +79 -50
  10. package/lib/composables/coordinate/levitation.js.map +1 -1
  11. package/lib/directives/plate-wave/index.js.map +1 -1
  12. package/package.json +1 -1
  13. package/types/components/dialog/YDialog.d.ts +6 -4
  14. package/types/components/img/YImg.d.ts +4 -1
  15. package/types/components/img/index.d.ts +1 -0
  16. package/types/components/index.d.ts +1 -0
  17. package/types/components/layer/YLayer.d.ts +3 -2
  18. package/types/components/menu/YMenu.d.ts +6 -4
  19. package/types/composables/coordinate/index.d.ts +2 -3
  20. package/types/composables/coordinate/levitation.d.ts +4 -2
  21. package/types/composables/coordinate/types.d.ts +1 -0
  22. package/types/directives/plate-wave/index.d.ts +1 -1
  23. package/types/shims.d.ts +5 -4
  24. package/types/components/table/composibles/header.d.ts +0 -207
  25. package/types/components/table/composibles/items.d.ts +0 -55
  26. package/types/components/table/composibles/measure.d.ts +0 -8
  27. package/types/components/table/composibles/options.d.ts +0 -11
  28. package/types/components/table/composibles/pagination.d.ts +0 -81
  29. package/types/components/table/composibles/selection.d.ts +0 -82
  30. package/types/components/table/composibles/sorted-items.d.ts +0 -7
  31. package/types/components/table/composibles/sorting.d.ts +0 -62
  32. package/types/src/abstract/items.d.ts +0 -49
  33. package/types/src/components/alert/YAlert.d.ts +0 -13
  34. package/types/src/components/alert/index.d.ts +0 -1
  35. package/types/src/components/app/YApp.d.ts +0 -8
  36. package/types/src/components/app/index.d.ts +0 -1
  37. package/types/src/components/badge/YBadge.d.ts +0 -126
  38. package/types/src/components/badge/index.d.ts +0 -1
  39. package/types/src/components/bench/YBench.d.ts +0 -4
  40. package/types/src/components/bench/index.d.ts +0 -1
  41. package/types/src/components/button/YButton.d.ts +0 -189
  42. package/types/src/components/button/index.d.ts +0 -1
  43. package/types/src/components/card/YCard.d.ts +0 -9
  44. package/types/src/components/card/YCardBody.d.ts +0 -2
  45. package/types/src/components/card/YCardFooter.d.ts +0 -2
  46. package/types/src/components/card/YCardHeader.d.ts +0 -2
  47. package/types/src/components/card/index.d.ts +0 -4
  48. package/types/src/components/checkbox/YCheckbox.d.ts +0 -23
  49. package/types/src/components/checkbox/YInputCheckbox.d.ts +0 -31
  50. package/types/src/components/checkbox/index.d.ts +0 -4
  51. package/types/src/components/chip/YChip.d.ts +0 -37
  52. package/types/src/components/chip/index.d.ts +0 -1
  53. package/types/src/components/date-picker/YDateCalendar.d.ts +0 -115
  54. package/types/src/components/date-picker/YDatePicker.d.ts +0 -94
  55. package/types/src/components/date-picker/YDatePickerControl.d.ts +0 -97
  56. package/types/src/components/date-picker/YMonthPicker.d.ts +0 -25
  57. package/types/src/components/date-picker/YYearPicker.d.ts +0 -38
  58. package/types/src/components/date-picker/index.d.ts +0 -3
  59. package/types/src/components/default-provider/YDefaultProvider.d.ts +0 -0
  60. package/types/src/components/default-provider/index.d.ts +0 -0
  61. package/types/src/components/dialog/YDialog.d.ts +0 -715
  62. package/types/src/components/dialog/index.d.ts +0 -1
  63. package/types/src/components/divider/YDivider.d.ts +0 -14
  64. package/types/src/components/divider/index.d.ts +0 -1
  65. package/types/src/components/draggable/YDraggable.d.ts +0 -36
  66. package/types/src/components/draggable/index.d.ts +0 -1
  67. package/types/src/components/dropdown/YDropdown.d.ts +0 -574
  68. package/types/src/components/dropdown/index.d.ts +0 -1
  69. package/types/src/components/field-input/YFieldInput.d.ts +0 -322
  70. package/types/src/components/field-input/index.d.ts +0 -1
  71. package/types/src/components/form/YForm.d.ts +0 -20
  72. package/types/src/components/form/index.d.ts +0 -1
  73. package/types/src/components/hover/YHover.d.ts +0 -57
  74. package/types/src/components/hover/index.d.ts +0 -1
  75. package/types/src/components/icon/YIcon.d.ts +0 -67
  76. package/types/src/components/icon/index.d.ts +0 -1
  77. package/types/src/components/icons/YIconCheckbox.d.ts +0 -6
  78. package/types/src/components/icons/YIconClear.d.ts +0 -1
  79. package/types/src/components/icons/YIconDropdown.d.ts +0 -1
  80. package/types/src/components/icons/YIconExpand.d.ts +0 -1
  81. package/types/src/components/icons/YIconPageControl.d.ts +0 -14
  82. package/types/src/components/icons/YIconSort.d.ts +0 -10
  83. package/types/src/components/icons/index.d.ts +0 -51
  84. package/types/src/components/img/YImg.d.ts +0 -136
  85. package/types/src/components/img/index.d.ts +0 -1
  86. package/types/src/components/index.d.ts +0 -39
  87. package/types/src/components/input/YInput.d.ts +0 -249
  88. package/types/src/components/input/index.d.ts +0 -1
  89. package/types/src/components/ip-field/YIpv4Field.d.ts +0 -65
  90. package/types/src/components/ip-field/index.d.ts +0 -1
  91. package/types/src/components/layer/YLayer.d.ts +0 -436
  92. package/types/src/components/layer/active-delay.d.ts +0 -4
  93. package/types/src/components/layer/active-stack.d.ts +0 -16
  94. package/types/src/components/layer/base.d.ts +0 -28
  95. package/types/src/components/layer/content.d.ts +0 -21
  96. package/types/src/components/layer/index.d.ts +0 -1
  97. package/types/src/components/layer/scroll-strategies.d.ts +0 -41
  98. package/types/src/components/list/YList.d.ts +0 -19
  99. package/types/src/components/list/YListItem.d.ts +0 -42
  100. package/types/src/components/list/index.d.ts +0 -2
  101. package/types/src/components/loading/YSpinnerRing.d.ts +0 -3
  102. package/types/src/components/loading/index.d.ts +0 -1
  103. package/types/src/components/menu/YMenu.d.ts +0 -517
  104. package/types/src/components/menu/index.d.ts +0 -1
  105. package/types/src/components/navigation/YNavigation.d.ts +0 -1
  106. package/types/src/components/navigation/index.d.ts +0 -1
  107. package/types/src/components/pagination/YPagination.d.ts +0 -137
  108. package/types/src/components/pagination/index.d.ts +0 -1
  109. package/types/src/components/panel/YDividePanel.d.ts +0 -5
  110. package/types/src/components/panel/index.d.ts +0 -1
  111. package/types/src/components/plate/YPlate.d.ts +0 -9
  112. package/types/src/components/plate/index.d.ts +0 -1
  113. package/types/src/components/progress-bar/YProgressBar.d.ts +0 -38
  114. package/types/src/components/progress-bar/index.d.ts +0 -1
  115. package/types/src/components/progress-ring/YProgressRing.d.ts +0 -34
  116. package/types/src/components/progress-ring/index.d.ts +0 -1
  117. package/types/src/components/radio/YRadio.d.ts +0 -25
  118. package/types/src/components/radio/YRadioIcon.d.ts +0 -6
  119. package/types/src/components/radio/index.d.ts +0 -2
  120. package/types/src/components/select/YSelect.d.ts +0 -1221
  121. package/types/src/components/select/index.d.ts +0 -1
  122. package/types/src/components/slider/YSlider.d.ts +0 -16
  123. package/types/src/components/slider/index.d.ts +0 -1
  124. package/types/src/components/slider/slider.d.ts +0 -0
  125. package/types/src/components/snackbar/YSnackbar.d.ts +0 -452
  126. package/types/src/components/snackbar/index.d.ts +0 -1
  127. package/types/src/components/switch/YSwitch.d.ts +0 -137
  128. package/types/src/components/switch/index.d.ts +0 -1
  129. package/types/src/components/tab/YTab.d.ts +0 -218
  130. package/types/src/components/tab/YTabs.d.ts +0 -98
  131. package/types/src/components/tab/index.d.ts +0 -3
  132. package/types/src/components/tab/shared.d.ts +0 -4
  133. package/types/src/components/tab/types.d.ts +0 -5
  134. package/types/src/components/table/YDataTable.d.ts +0 -459
  135. package/types/src/components/table/YDataTableBody.d.ts +0 -99
  136. package/types/src/components/table/YDataTableCell.d.ts +0 -32
  137. package/types/src/components/table/YDataTableControl.d.ts +0 -68
  138. package/types/src/components/table/YDataTableHead.d.ts +0 -54
  139. package/types/src/components/table/YDataTableLayer.d.ts +0 -13
  140. package/types/src/components/table/YDataTableLayerRow.d.ts +0 -22
  141. package/types/src/components/table/YDataTableLayerRows.d.ts +0 -9
  142. package/types/src/components/table/YDataTableRow.d.ts +0 -53
  143. package/types/src/components/table/YDataTableServer.d.ts +0 -502
  144. package/types/src/components/table/YTable.d.ts +0 -65
  145. package/types/src/components/table/composables/expand.d.ts +0 -42
  146. package/types/src/components/table/composables/header.d.ts +0 -175
  147. package/types/src/components/table/composables/items.d.ts +0 -55
  148. package/types/src/components/table/composables/measure.d.ts +0 -8
  149. package/types/src/components/table/composables/options.d.ts +0 -11
  150. package/types/src/components/table/composables/pagination.d.ts +0 -81
  151. package/types/src/components/table/composables/provides.d.ts +0 -15
  152. package/types/src/components/table/composables/selection.d.ts +0 -82
  153. package/types/src/components/table/composables/sorted-items.d.ts +0 -7
  154. package/types/src/components/table/composables/sorting.d.ts +0 -56
  155. package/types/src/components/table/index.d.ts +0 -10
  156. package/types/src/components/table/types/common.d.ts +0 -2
  157. package/types/src/components/table/types/header.d.ts +0 -25
  158. package/types/src/components/table/types/index.d.ts +0 -59
  159. package/types/src/components/table/types/item.d.ts +0 -23
  160. package/types/src/components/table/types/row.d.ts +0 -4
  161. package/types/src/components/text-ellipsis/YTextEllipsis.d.ts +0 -11
  162. package/types/src/components/text-ellipsis/index.d.ts +0 -1
  163. package/types/src/components/text-highlighter/YTextHighlighter.d.ts +0 -26
  164. package/types/src/components/text-highlighter/index.d.ts +0 -1
  165. package/types/src/components/text-interpolation/YTi.d.ts +0 -11
  166. package/types/src/components/text-interpolation/index.d.ts +0 -1
  167. package/types/src/components/textarea/YTextarea.d.ts +0 -583
  168. package/types/src/components/textarea/index.d.ts +0 -1
  169. package/types/src/components/toggle-button/YToggleButton.d.ts +0 -4
  170. package/types/src/components/toggle-button/index.d.ts +0 -1
  171. package/types/src/components/tooltip/YTooltip.d.ts +0 -502
  172. package/types/src/components/tooltip/index.d.ts +0 -1
  173. package/types/src/components/transitions/expand-transition.d.ts +0 -20
  174. package/types/src/components/transitions/index.d.ts +0 -38
  175. package/types/src/components/tree-view/YTreeView.d.ts +0 -172
  176. package/types/src/components/tree-view/YTreeViewNode.d.ts +0 -176
  177. package/types/src/components/tree-view/index.d.ts +0 -2
  178. package/types/src/components/tree-view/tree-view.d.ts +0 -51
  179. package/types/src/components/tree-view/types.d.ts +0 -17
  180. package/types/src/components/tree-view/util.d.ts +0 -6
  181. package/types/src/composables/choice-link.d.ts +0 -3
  182. package/types/src/composables/choice.d.ts +0 -113
  183. package/types/src/composables/communication.d.ts +0 -8
  184. package/types/src/composables/component.d.ts +0 -3
  185. package/types/src/composables/coordinate/arrangement.d.ts +0 -7
  186. package/types/src/composables/coordinate/index.d.ts +0 -87
  187. package/types/src/composables/coordinate/levitation.d.ts +0 -7
  188. package/types/src/composables/coordinate/types.d.ts +0 -8
  189. package/types/src/composables/coordinate/utils/point.d.ts +0 -22
  190. package/types/src/composables/date/factory.d.ts +0 -3
  191. package/types/src/composables/date/index.d.ts +0 -12
  192. package/types/src/composables/date/setting.d.ts +0 -5
  193. package/types/src/composables/date/types.d.ts +0 -13
  194. package/types/src/composables/defaults/index.d.ts +0 -11
  195. package/types/src/composables/defaults/share.d.ts +0 -4
  196. package/types/src/composables/defaults/types.d.ts +0 -12
  197. package/types/src/composables/dimension.d.ts +0 -54
  198. package/types/src/composables/focus.d.ts +0 -30
  199. package/types/src/composables/form.d.ts +0 -132
  200. package/types/src/composables/i18n/index.d.ts +0 -9
  201. package/types/src/composables/i18n/locale.d.ts +0 -3
  202. package/types/src/composables/i18n/rtl.d.ts +0 -21
  203. package/types/src/composables/i18n/share.d.ts +0 -1
  204. package/types/src/composables/icon.d.ts +0 -79
  205. package/types/src/composables/index.d.ts +0 -10
  206. package/types/src/composables/layer-group.d.ts +0 -10
  207. package/types/src/composables/layout.d.ts +0 -10
  208. package/types/src/composables/list-items.d.ts +0 -113
  209. package/types/src/composables/progress.d.ts +0 -4
  210. package/types/src/composables/ref.d.ts +0 -6
  211. package/types/src/composables/resize-observer.d.ts +0 -24
  212. package/types/src/composables/scope.d.ts +0 -3
  213. package/types/src/composables/style-color.d.ts +0 -14
  214. package/types/src/composables/theme/factory.d.ts +0 -4
  215. package/types/src/composables/theme/helper.d.ts +0 -3
  216. package/types/src/composables/theme/index.d.ts +0 -57
  217. package/types/src/composables/theme/setting.d.ts +0 -11
  218. package/types/src/composables/theme/types.d.ts +0 -29
  219. package/types/src/composables/timing.d.ts +0 -20
  220. package/types/src/composables/transition.d.ts +0 -40
  221. package/types/src/composables/validation.d.ts +0 -82
  222. package/types/src/composables/vue-router.d.ts +0 -43
  223. package/types/src/declares.d.ts +0 -1
  224. package/types/src/directives/complement-click/index.d.ts +0 -26
  225. package/types/src/directives/index.d.ts +0 -2
  226. package/types/src/directives/plate-wave/index.d.ts +0 -20
  227. package/types/src/directives/theme-class/index.d.ts +0 -4
  228. package/types/src/etc/index.d.ts +0 -1
  229. package/types/src/globals.d.ts +0 -20
  230. package/types/src/i18n/built-in.d.ts +0 -3
  231. package/types/src/i18n/config.d.ts +0 -81
  232. package/types/src/i18n/types.d.ts +0 -20
  233. package/types/src/index.d.ts +0 -13
  234. package/types/src/locales/en.d.ts +0 -6
  235. package/types/src/locales/index.d.ts +0 -2
  236. package/types/src/locales/ko.d.ts +0 -6
  237. package/types/src/mixins/di.d.ts +0 -2
  238. package/types/src/mixins/rebind-attrs.d.ts +0 -5
  239. package/types/src/shims.d.ts +0 -65
  240. package/types/src/types/index.d.ts +0 -9
  241. package/types/src/util/anchor.d.ts +0 -23
  242. package/types/src/util/array.d.ts +0 -2
  243. package/types/src/util/collection.d.ts +0 -1
  244. package/types/src/util/color/apca.d.ts +0 -29
  245. package/types/src/util/color/const.d.ts +0 -5
  246. package/types/src/util/color/contrast/contrast.d.ts +0 -74
  247. package/types/src/util/color/conversion.d.ts +0 -131
  248. package/types/src/util/color/hct/cam16.d.ts +0 -116
  249. package/types/src/util/color/hct/hct-solver.d.ts +0 -131
  250. package/types/src/util/color/hct/hct.d.ts +0 -71
  251. package/types/src/util/color/hct/viewing-conditions.d.ts +0 -58
  252. package/types/src/util/color/index.d.ts +0 -5
  253. package/types/src/util/color/palettes/core-palette.d.ts +0 -44
  254. package/types/src/util/color/palettes/tonal-palette.d.ts +0 -40
  255. package/types/src/util/color/types.d.ts +0 -14
  256. package/types/src/util/color/utils/math-utils.d.ts +0 -82
  257. package/types/src/util/common.d.ts +0 -17
  258. package/types/src/util/component/component.d.ts +0 -5
  259. package/types/src/util/component/index.d.ts +0 -11
  260. package/types/src/util/component/inject-self.d.ts +0 -3
  261. package/types/src/util/component/props.d.ts +0 -32
  262. package/types/src/util/component/types.d.ts +0 -21
  263. package/types/src/util/date/adapters/yuyeon-date-adapter.d.ts +0 -43
  264. package/types/src/util/date/built-in.d.ts +0 -41
  265. package/types/src/util/date/index.d.ts +0 -3
  266. package/types/src/util/date/types.d.ts +0 -167
  267. package/types/src/util/debounce.d.ts +0 -11
  268. package/types/src/util/dom.d.ts +0 -5
  269. package/types/src/util/environments.d.ts +0 -6
  270. package/types/src/util/frame-scheduler.d.ts +0 -7
  271. package/types/src/util/index.d.ts +0 -16
  272. package/types/src/util/reactivity.d.ts +0 -7
  273. package/types/src/util/rect.d.ts +0 -36
  274. package/types/src/util/scroll.d.ts +0 -3
  275. package/types/src/util/string.d.ts +0 -9
  276. package/types/src/util/ui.d.ts +0 -4
  277. package/types/src/util/validation.d.ts +0 -3
@@ -76,16 +76,14 @@ export const YImg = defineComponent({
76
76
  watch(() => props.src, () => {
77
77
  initIntersect();
78
78
  });
79
- const _Placeholder = () => {
79
+ const _Placeholder = placeholderProps => {
80
80
  if (!slots.placeholder) return null;
81
81
  return _createVNode(PolyTransition, _mergeProps(polyTransitionBindProps.value, {
82
82
  "appear": true
83
83
  }), {
84
- default: () => [(status.value === "idle" || status.value === "error") && _createVNode("div", {
84
+ default: () => [(placeholderProps.status === "idle" || placeholderProps.status === "error") && _createVNode("div", {
85
85
  "class": "y-img__placeholder"
86
- }, [slots.placeholder?.({
87
- status: status.value
88
- })])]
86
+ }, [slots.placeholder?.(placeholderProps)])]
89
87
  });
90
88
  };
91
89
  function onLoad() {
@@ -165,7 +163,9 @@ export const YImg = defineComponent({
165
163
  useRender(() => {
166
164
  return _createVNode("div", {
167
165
  "class": ["y-img"]
168
- }, [_createVNode(_Placeholder, null, null), _createVNode(_Image, {
166
+ }, [_createVNode(_Placeholder, {
167
+ "status": status.value
168
+ }, null), _createVNode(_Image, {
169
169
  "status": status.value
170
170
  }, null)]);
171
171
  });
@@ -1 +1 @@
1
- {"version":3,"file":"YImg.js","names":["computed","getCurrentInstance","nextTick","onBeforeMount","onBeforeUnmount","ref","shallowRef","vShow","watch","withDirectives","createVNode","_createVNode","mergeProps","_mergeProps","useRender","pressDimensionPropsOptions","PolyTransition","pressPolyTransitionPropsOptions","usePolyTransition","defineComponent","propsFactory","Environments","pressYImgPropsOptions","src","String","crossorigin","referrerpolicy","transition","objectFit","type","default","eager","Boolean","YImg","name","props","slots","Object","emits","setup","_ref","attrs","emit","vm","image$","status","imgSrc","naturalWidth","naturalHeight","polyTransitionBindProps","srcMeta","imgClasses","getImgSrc","imgEl","value","currentSrc","inspectImage","complete","endsWith","startsWith","initIntersect","_Placeholder","placeholder","onLoad","isUnmounted","onError","event","_Image","imageProps","Img","draggable","alt","requestTimer","requestInspectImage","timeout","arguments","length","undefined","_request","clearTimeout","window","setTimeout","isIntersection","canUseIntersectionObserver"],"sources":["../../../src/components/img/YImg.tsx"],"sourcesContent":["import {\n type CSSProperties,\n computed,\n getCurrentInstance,\n type ImgHTMLAttributes,\n nextTick,\n onBeforeMount,\n onBeforeUnmount,\n type PropType,\n ref,\n type SlotsType,\n shallowRef,\n vShow,\n watch,\n withDirectives,\n} from \"vue\";\n\nimport { useRender } from \"@/composables/component\";\nimport { pressDimensionPropsOptions } from \"@/composables/dimension\";\nimport {\n PolyTransition,\n pressPolyTransitionPropsOptions,\n usePolyTransition,\n} from \"@/composables/transition\";\nimport { defineComponent, propsFactory } from \"@/util/component\";\nimport Environments from \"@/util/environments\";\n\nimport \"./YImg.scss\";\n\nexport const pressYImgPropsOptions = propsFactory(\n {\n src: String as PropType<string>,\n crossorigin: String as PropType<ImgHTMLAttributes[\"crossorigin\"]>,\n referrerpolicy: String as PropType<ImgHTMLAttributes[\"referrerpolicy\"]>,\n ...pressPolyTransitionPropsOptions({\n transition: \"fade\",\n }),\n objectFit: {\n type: String as PropType<\n Extract<\n CSSProperties[\"objectFit\"],\n \"contain\" | \"cover\" | \"fill\" | \"scale-down\"\n >\n >,\n default: \"contain\",\n },\n eager: Boolean,\n ...pressDimensionPropsOptions(),\n },\n \"YImg\",\n);\n\nexport type YImgStatus = \"idle\" | \"loading\" | \"loaded\" | \"error\";\n\nexport const YImg = defineComponent({\n name: \"YImg\",\n props: {\n ...pressYImgPropsOptions(),\n },\n slots: Object as SlotsType<{\n placeholder: any;\n }>,\n emits: [\"load\", \"loaded\", \"error\"],\n setup(props, { slots, attrs, emit }) {\n const vm = getCurrentInstance()!;\n const image$ = ref<HTMLImageElement>();\n const status = shallowRef<YImgStatus>(props.eager ? \"loading\" : \"idle\");\n const imgSrc = shallowRef(\"\");\n const naturalWidth = shallowRef<number>();\n const naturalHeight = shallowRef<number>();\n const { polyTransitionBindProps } = usePolyTransition(props);\n\n const srcMeta = computed(() => {\n const src = props.src;\n\n return {\n src,\n };\n });\n\n const imgClasses = computed(() => {\n return {\n \"y-img--cover\": props.objectFit === \"cover\",\n \"y-img--contain\": props.objectFit === \"contain\",\n \"y-img--fill\": props.objectFit === \"fill\",\n \"y-img--scale-down\": props.objectFit === \"scale-down\",\n };\n });\n\n function getImgSrc() {\n const imgEl = image$.value;\n if (imgEl) {\n imgSrc.value = imgEl.currentSrc || imgEl.src;\n }\n }\n\n function inspectImage(imgEl: HTMLImageElement) {\n if (imgEl.naturalWidth || imgEl.naturalHeight) {\n naturalWidth.value = imgEl.naturalWidth;\n naturalHeight.value = imgEl.naturalHeight;\n } else if (!imgEl.complete && status.value === \"loading\") {\n return false;\n } else if (\n imgEl.currentSrc.endsWith(\".svg\") ||\n imgEl.currentSrc.startsWith(\"data:image/svg+xml\")\n ) {\n naturalWidth.value = 1;\n naturalHeight.value = 1;\n }\n\n return true;\n }\n\n watch(\n () => props.src,\n () => {\n initIntersect();\n },\n );\n\n const _Placeholder = () => {\n if (!slots.placeholder) return null;\n return (\n <PolyTransition {...polyTransitionBindProps.value} appear>\n {(status.value === \"idle\" || status.value === \"error\") && (\n <div class=\"y-img__placeholder\">\n {slots.placeholder?.({ status: status.value })}\n </div>\n )}\n </PolyTransition>\n );\n };\n\n function onLoad() {\n if (vm.isUnmounted) return;\n status.value = \"loaded\";\n }\n\n function onError(event?: Event) {\n if (vm.isUnmounted) return;\n status.value = \"error\";\n emit(\"error\", event);\n }\n\n const _Image = (imageProps: { status: string }) => {\n const Img = (\n <img\n ref={image$}\n src={srcMeta.value.src}\n crossorigin={props.crossorigin}\n referrerpolicy={props.referrerpolicy}\n draggable={(attrs as ImgHTMLAttributes).draggable}\n alt={(attrs as ImgHTMLAttributes).alt}\n class={[\"y-img__img\", imgClasses.value]}\n onLoad={onLoad}\n onError={onError}\n />\n );\n\n return (\n <PolyTransition {...polyTransitionBindProps.value} appear>\n {withDirectives(Img, [[vShow, imageProps.status === \"loaded\"]])}\n </PolyTransition>\n );\n };\n\n let requestTimer = -1;\n\n /**\n *\n * @param imgEl\n * @param timeout null: once\n */\n function requestInspectImage(\n imgEl: HTMLImageElement,\n timeout: number | null = 100,\n ) {\n const _request = () => {\n clearTimeout(requestTimer);\n if (vm.isUnmounted) return;\n if (!inspectImage(imgEl) && timeout != null) {\n requestTimer = window.setTimeout(_request, timeout);\n }\n };\n\n _request();\n }\n\n function initIntersect(isIntersection?: boolean) {\n if (props.eager && isIntersection) return;\n if (\n Environments.canUseIntersectionObserver &&\n !isIntersection &&\n !props.eager\n )\n return;\n\n status.value = \"loading\";\n\n if (!srcMeta.value.src) return;\n nextTick(() => {\n emit(\"load\", image$.value?.currentSrc || srcMeta.value.src);\n setTimeout(() => {\n if (vm.isUnmounted) return;\n if (image$.value?.complete) {\n if (!image$.value?.naturalWidth) {\n onError();\n }\n if (status.value === \"error\") return;\n requestInspectImage(image$.value, null);\n if (status.value === \"loading\") onLoad();\n } else if (image$.value) {\n requestInspectImage(image$.value);\n getImgSrc();\n }\n });\n });\n }\n\n onBeforeMount(() => {\n initIntersect();\n });\n\n onBeforeUnmount(() => {\n clearTimeout(requestTimer);\n });\n\n useRender(() => {\n return (\n <div class={[\"y-img\"]}>\n <_Placeholder />\n <_Image status={status.value} />\n </div>\n );\n });\n\n return {\n status,\n image$: image$\n }\n },\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"YImg.js","names":["computed","getCurrentInstance","nextTick","onBeforeMount","onBeforeUnmount","ref","shallowRef","vShow","watch","withDirectives","createVNode","_createVNode","mergeProps","_mergeProps","useRender","pressDimensionPropsOptions","PolyTransition","pressPolyTransitionPropsOptions","usePolyTransition","defineComponent","propsFactory","Environments","pressYImgPropsOptions","src","String","crossorigin","referrerpolicy","transition","objectFit","type","default","eager","Boolean","YImg","name","props","slots","Object","emits","setup","_ref","attrs","emit","vm","image$","status","imgSrc","naturalWidth","naturalHeight","polyTransitionBindProps","srcMeta","imgClasses","getImgSrc","imgEl","value","currentSrc","inspectImage","complete","endsWith","startsWith","initIntersect","_Placeholder","placeholderProps","placeholder","onLoad","isUnmounted","onError","event","_Image","imageProps","Img","draggable","alt","requestTimer","requestInspectImage","timeout","arguments","length","undefined","_request","clearTimeout","window","setTimeout","isIntersection","canUseIntersectionObserver"],"sources":["../../../src/components/img/YImg.tsx"],"sourcesContent":["import {\n type CSSProperties,\n computed,\n getCurrentInstance,\n type ImgHTMLAttributes,\n nextTick,\n onBeforeMount,\n onBeforeUnmount,\n type PropType,\n ref,\n type SlotsType,\n shallowRef,\n vShow,\n watch,\n withDirectives,\n} from \"vue\";\n\nimport { useRender } from \"@/composables/component\";\nimport { pressDimensionPropsOptions } from \"@/composables/dimension\";\nimport {\n PolyTransition,\n pressPolyTransitionPropsOptions,\n usePolyTransition,\n} from \"@/composables/transition\";\nimport { defineComponent, propsFactory } from \"@/util/component\";\nimport Environments from \"@/util/environments\";\n\nimport \"./YImg.scss\";\n\nexport const pressYImgPropsOptions = propsFactory(\n {\n src: String as PropType<string>,\n crossorigin: String as PropType<ImgHTMLAttributes[\"crossorigin\"]>,\n referrerpolicy: String as PropType<ImgHTMLAttributes[\"referrerpolicy\"]>,\n ...pressPolyTransitionPropsOptions({\n transition: \"fade\",\n }),\n objectFit: {\n type: String as PropType<\n Extract<\n CSSProperties[\"objectFit\"],\n \"contain\" | \"cover\" | \"fill\" | \"scale-down\"\n >\n >,\n default: \"contain\",\n },\n eager: Boolean,\n ...pressDimensionPropsOptions(),\n },\n \"YImg\",\n);\n\nexport type YImgStatus = \"idle\" | \"loading\" | \"loaded\" | \"error\";\n\nexport const YImg = defineComponent({\n name: \"YImg\",\n props: {\n ...pressYImgPropsOptions(),\n },\n slots: Object as SlotsType<{\n placeholder: any;\n }>,\n emits: [\"load\", \"loaded\", \"error\"],\n setup(props, { slots, attrs, emit }) {\n const vm = getCurrentInstance()!;\n const image$ = ref<HTMLImageElement>();\n const status = shallowRef<YImgStatus>(props.eager ? \"loading\" : \"idle\");\n const imgSrc = shallowRef(\"\");\n const naturalWidth = shallowRef<number>();\n const naturalHeight = shallowRef<number>();\n const { polyTransitionBindProps } = usePolyTransition(props);\n\n const srcMeta = computed(() => {\n const src = props.src;\n\n return {\n src,\n };\n });\n\n const imgClasses = computed(() => {\n return {\n \"y-img--cover\": props.objectFit === \"cover\",\n \"y-img--contain\": props.objectFit === \"contain\",\n \"y-img--fill\": props.objectFit === \"fill\",\n \"y-img--scale-down\": props.objectFit === \"scale-down\",\n };\n });\n\n function getImgSrc() {\n const imgEl = image$.value;\n if (imgEl) {\n imgSrc.value = imgEl.currentSrc || imgEl.src;\n }\n }\n\n function inspectImage(imgEl: HTMLImageElement) {\n if (imgEl.naturalWidth || imgEl.naturalHeight) {\n naturalWidth.value = imgEl.naturalWidth;\n naturalHeight.value = imgEl.naturalHeight;\n } else if (!imgEl.complete && status.value === \"loading\") {\n return false;\n } else if (\n imgEl.currentSrc.endsWith(\".svg\") ||\n imgEl.currentSrc.startsWith(\"data:image/svg+xml\")\n ) {\n naturalWidth.value = 1;\n naturalHeight.value = 1;\n }\n\n return true;\n }\n\n watch(\n () => props.src,\n () => {\n initIntersect();\n },\n );\n\n const _Placeholder = (placeholderProps: { status: string }) => {\n if (!slots.placeholder) return null;\n return (\n <PolyTransition {...polyTransitionBindProps.value} appear>\n {(placeholderProps.status === \"idle\" || placeholderProps.status === \"error\") && (\n <div class=\"y-img__placeholder\">\n {slots.placeholder?.(placeholderProps)}\n </div>\n )}\n </PolyTransition>\n );\n };\n\n function onLoad() {\n if (vm.isUnmounted) return;\n status.value = \"loaded\";\n }\n\n function onError(event?: Event) {\n if (vm.isUnmounted) return;\n status.value = \"error\";\n emit(\"error\", event);\n }\n\n const _Image = (imageProps: { status: string }) => {\n const Img = (\n <img\n ref={image$}\n src={srcMeta.value.src}\n crossorigin={props.crossorigin}\n referrerpolicy={props.referrerpolicy}\n draggable={(attrs as ImgHTMLAttributes).draggable}\n alt={(attrs as ImgHTMLAttributes).alt}\n class={[\"y-img__img\", imgClasses.value]}\n onLoad={onLoad}\n onError={onError}\n />\n );\n\n return (\n <PolyTransition {...polyTransitionBindProps.value} appear>\n {withDirectives(Img, [[vShow, imageProps.status === \"loaded\"]])}\n </PolyTransition>\n );\n };\n\n let requestTimer = -1;\n\n /**\n *\n * @param imgEl\n * @param timeout null: once\n */\n function requestInspectImage(\n imgEl: HTMLImageElement,\n timeout: number | null = 100,\n ) {\n const _request = () => {\n clearTimeout(requestTimer);\n if (vm.isUnmounted) return;\n if (!inspectImage(imgEl) && timeout != null) {\n requestTimer = window.setTimeout(_request, timeout);\n }\n };\n\n _request();\n }\n\n function initIntersect(isIntersection?: boolean) {\n if (props.eager && isIntersection) return;\n if (\n Environments.canUseIntersectionObserver &&\n !isIntersection &&\n !props.eager\n )\n return;\n\n status.value = \"loading\";\n\n if (!srcMeta.value.src) return;\n nextTick(() => {\n emit(\"load\", image$.value?.currentSrc || srcMeta.value.src);\n setTimeout(() => {\n if (vm.isUnmounted) return;\n if (image$.value?.complete) {\n if (!image$.value?.naturalWidth) {\n onError();\n }\n if (status.value === \"error\") return;\n requestInspectImage(image$.value, null);\n if (status.value === \"loading\") onLoad();\n } else if (image$.value) {\n requestInspectImage(image$.value);\n getImgSrc();\n }\n });\n });\n }\n\n onBeforeMount(() => {\n initIntersect();\n });\n\n onBeforeUnmount(() => {\n clearTimeout(requestTimer);\n });\n\n useRender(() => {\n return (\n <div class={[\"y-img\"]}>\n <_Placeholder status={status.value} />\n <_Image status={status.value} />\n </div>\n );\n });\n\n return {\n status,\n image$: image$\n }\n },\n});\n"],"mappings":"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","ignoreList":[]}
@@ -149,6 +149,7 @@ export const YLayer = defineComponent({
149
149
  const maximized = toRef(props, "maximized");
150
150
  const rendered = computed(() => !disabled.value && (lazyValue.value || active.value));
151
151
  const {
152
+ coordination,
152
153
  coordinateStyles,
153
154
  updateCoordinate
154
155
  } = useCoordinate(props, {
@@ -217,8 +218,14 @@ export const YLayer = defineComponent({
217
218
  });
218
219
  const computedContentClasses = computed(() => {
219
220
  const boundClasses = bindClasses(props.contentClasses);
221
+ const {
222
+ side,
223
+ align
224
+ } = coordination.value;
220
225
  return {
221
- ...boundClasses
226
+ ...boundClasses,
227
+ [`y-layer--side-${side}`]: !!side,
228
+ [`y-layer--align-${align}`]: !!align
222
229
  };
223
230
  });
224
231
  expose({
@@ -235,7 +242,8 @@ export const YLayer = defineComponent({
235
242
  getActiveLayers,
236
243
  isMe: vnode => {
237
244
  return vnode === vm;
238
- }
245
+ },
246
+ coordination
239
247
  });
240
248
  useRender(() => {
241
249
  const slotBase = slots.base?.({
@@ -322,7 +330,8 @@ export const YLayer = defineComponent({
322
330
  polyTransitionBindProps,
323
331
  coordinateStyles,
324
332
  layerGroupState,
325
- getActiveLayers
333
+ getActiveLayers,
334
+ coordination
326
335
  };
327
336
  }
328
337
  });
@@ -1 +1 @@
1
- {"version":3,"file":"YLayer.js","names":["computed","getCurrentInstance","mergeProps","reactive","ref","shallowRef","Teleport","Transition","toRef","Fragment","_Fragment","createVNode","_createVNode","vShow","_vShow","resolveDirective","_resolveDirective","_mergeProps","withDirectives","_withDirectives","useModelDuplex","useRender","pressCoordinateProps","useCoordinate","pressDimensionPropsOptions","useDimension","useLayerGroup","pressThemePropsOptions","useLocalTheme","useLazy","PolyTransition","pressPolyTransitionPropsOptions","usePolyTransition","ComplementClick","bindClasses","defineComponent","propsFactory","pressBasePropsOptions","useBase","pressContentPropsOptions","useContent","pressScrollStrategyProps","useScrollStrategies","noop","pressYLayerProps","modelValue","type","Boolean","scrim","scrimOpacity","Number","eager","classes","Array","String","Object","contentClasses","closeClickScrim","contentStyles","default","disabled","maximized","openOnHover","openDelay","closeDelay","zIndex","contained","layerGroup","YLayer","name","inheritAttrs","components","directives","props","modal","emits","value","mouseEvent","afterLeave","slots","setup","_ref","emit","expose","attrs","vm","scrim$","content$","root$","model","active","get","set","v","base","base$","baseEl","baseSlot","baseFromSlotEl","contentEvents","themeClasses","layerGroupState","getActiveLayers","polyTransitionBindProps","dimensionStyles","lazyValue","onAfterUpdate","finish","hovered","focused","rendered","coordinateStyles","updateCoordinate","contentEl","root","onClickComplementLayer","target","closeConditional","complementClickOption","handler","determine","include","onAfterEnter","onAfterLeave","onClickScrim","onMouseenter","event","onMouseleave","computedStyle","toString","computedClass","boundClasses","computedContentClasses","isMe","vnode","slotBase","class","baseProps"],"sources":["../../../src/components/layer/YLayer.tsx"],"sourcesContent":["import type { ComponentInternalInstance, PropType, SlotsType } from \"vue\";\nimport {\n\tcomputed,\n\tgetCurrentInstance,\n\tmergeProps,\n\treactive,\n\tref,\n\tshallowRef,\n\tTeleport,\n\tTransition,\n\ttoRef,\n} from \"vue\";\n\nimport { useModelDuplex } from \"@/composables/communication\";\nimport { useRender } from \"@/composables/component\";\nimport { pressCoordinateProps, useCoordinate } from \"@/composables/coordinate\";\nimport {\n\tpressDimensionPropsOptions,\n\tuseDimension,\n} from \"@/composables/dimension\";\nimport { useLayerGroup } from \"@/composables/layer-group\";\nimport { pressThemePropsOptions, useLocalTheme } from \"@/composables/theme\";\nimport { useLazy } from \"@/composables/timing\";\nimport {\n\tPolyTransition,\n\tpressPolyTransitionPropsOptions,\n\tusePolyTransition,\n} from \"@/composables/transition\";\nimport {\n\tComplementClick,\n\ttype ComplementClickBindingOptions,\n} from \"@/directives/complement-click\";\nimport { bindClasses, defineComponent, propsFactory } from \"@/util/component\";\n\nimport { pressBasePropsOptions, useBase } from \"./base\";\nimport { pressContentPropsOptions, useContent } from \"./content\";\nimport {\n\tpressScrollStrategyProps,\n\tuseScrollStrategies,\n} from \"./scroll-strategies\";\n\nimport \"./YLayer.scss\";\nimport type { CssProperties } from \"@/types\";\nimport { noop } from \"@/util\";\n\nexport const pressYLayerProps = propsFactory(\n\t{\n\t\tmodelValue: {\n\t\t\ttype: Boolean as PropType<boolean>,\n\t\t},\n\t\tscrim: {\n\t\t\ttype: Boolean as PropType<boolean>,\n\t\t},\n\t\tscrimOpacity: {\n\t\t\ttype: Number as PropType<number>,\n\t\t},\n\t\teager: {\n\t\t\ttype: Boolean as PropType<boolean>,\n\t\t},\n\t\tclasses: {\n\t\t\ttype: [Array, String, Object] as PropType<\n\t\t\t\tstring[] | string | Record<string, any>\n\t\t\t>,\n\t\t},\n\t\tcontentClasses: {\n\t\t\ttype: [Array, String, Object] as PropType<\n\t\t\t\tstring[] | string | Record<string, any>\n\t\t\t>,\n\t\t},\n\t\tcloseClickScrim: {\n\t\t\ttype: Boolean as PropType<boolean>,\n\t\t},\n\t\tcontentStyles: {\n\t\t\ttype: Object as PropType<CssProperties>,\n\t\t\tdefault: () => {},\n\t\t},\n\t\tdisabled: {\n\t\t\ttype: Boolean as PropType<boolean>,\n\t\t\tdefault: false,\n\t\t},\n\t\tmaximized: {\n\t\t\ttype: Boolean as PropType<boolean>,\n\t\t},\n\t\topenOnHover: {\n\t\t\ttype: Boolean as PropType<boolean>,\n\t\t\tdefault: false,\n\t\t},\n\t\topenDelay: {\n\t\t\ttype: Number as PropType<number>,\n\t\t\tdefault: 200,\n\t\t},\n\t\tcloseDelay: {\n\t\t\ttype: Number as PropType<number>,\n\t\t\tdefault: 200,\n\t\t},\n\t\tzIndex: {\n\t\t\ttype: [Number, String] as PropType<number | string>,\n\t\t\tdefault: 2000,\n\t\t},\n\t\tcontained: Boolean,\n\t\tlayerGroup: [String, Object] as PropType<string | Element>,\n\t\t...pressThemePropsOptions(),\n\t\t...pressPolyTransitionPropsOptions(),\n\t\t...pressBasePropsOptions(),\n\t\t...pressContentPropsOptions(),\n\t\t...pressCoordinateProps(),\n\t\t...pressScrollStrategyProps(),\n\t\t...pressDimensionPropsOptions(),\n\t},\n\t\"YLayer\",\n);\n\nexport const YLayer = defineComponent({\n\tname: \"YLayer\",\n\tinheritAttrs: false,\n\tcomponents: {\n\t\tPolyTransition,\n\t},\n\tdirectives: {\n\t\tComplementClick,\n\t},\n\tprops: {\n\t\tmodal: Boolean as PropType<boolean>,\n\t\t...pressYLayerProps(),\n\t},\n\temits: {\n\t\t\"update:modelValue\": (value: boolean) => true,\n\t\t\"click:complement\": (mouseEvent: MouseEvent) => true,\n\t\tafterLeave: () => true,\n\t},\n\tslots: Object as SlotsType<{\n\t\tbase: any;\n\t\tdefault: any;\n\t}>,\n\tsetup(props, { emit, expose, attrs, slots }) {\n\t\tconst vm = getCurrentInstance();\n\t\tconst scrim$ = ref<HTMLElement>();\n\t\tconst content$ = ref<HTMLElement>();\n\t\tconst root$ = ref<HTMLElement>();\n\t\tconst model = useModelDuplex(props);\n\t\tconst active = computed({\n\t\t\tget: (): boolean => {\n\t\t\t\treturn !!model.value;\n\t\t\t},\n\t\t\tset: (v: boolean) => {\n\t\t\t\tif (!(v && props.disabled)) model.value = v;\n\t\t\t},\n\t\t});\n\t\t// Frags\n\t\tconst { base, base$, baseEl, baseSlot, baseFromSlotEl } = useBase(props);\n\t\tconst { contentEvents } = useContent(props, active);\n\t\tconst { themeClasses } = useLocalTheme(props);\n\t\tconst { layerGroup, layerGroupState, getActiveLayers } =\n\t\t\tuseLayerGroup(props);\n\t\tconst { polyTransitionBindProps } = usePolyTransition(props);\n\t\tconst { dimensionStyles } = useDimension(props);\n\n\t\tconst { lazyValue, onAfterUpdate } = useLazy(toRef(props, \"eager\"), active);\n\t\t// States\n\t\tconst finish = shallowRef(false);\n\t\tconst hovered = ref(false);\n\t\tconst focused = ref(false);\n\t\tconst disabled = toRef(props, \"disabled\");\n\t\tconst maximized = toRef(props, \"maximized\");\n\n\t\tconst rendered = computed<boolean>(\n\t\t\t() => !disabled.value && (lazyValue.value || active.value),\n\t\t);\n\n\t\tconst { coordinateStyles, updateCoordinate } = useCoordinate(props, {\n\t\t\tcontentEl: content$,\n\t\t\tbase,\n\t\t\tactive,\n\t\t});\n\t\tuseScrollStrategies(props, {\n\t\t\troot: root$,\n\t\t\tcontentEl: content$,\n\t\t\tactive,\n\t\t\tbaseEl: base,\n\t\t\tupdateCoordinate,\n\t\t});\n\n\t\tfunction onClickComplementLayer(mouseEvent: MouseEvent) {\n\t\t\temit(\"click:complement\", mouseEvent);\n\t\t\tif (!props.modal) {\n\t\t\t\tif (\n\t\t\t\t\tscrim$.value !== null &&\n\t\t\t\t\tscrim$.value === mouseEvent.target &&\n\t\t\t\t\tprops.closeClickScrim\n\t\t\t\t) {\n\t\t\t\t\tactive.value = false;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// TODO: shrug ani\n\t\t\t}\n\t\t}\n\n\t\tfunction closeConditional(): boolean {\n\t\t\treturn (\n\t\t\t\t(!props.openOnHover || (props.openOnHover && !hovered.value)) &&\n\t\t\t\tactive.value &&\n\t\t\t\tfinish.value\n\t\t\t); // TODO: && groupTopLevel.value;\n\t\t}\n\n\t\tconst complementClickOption = reactive<ComplementClickBindingOptions>({\n\t\t\thandler: onClickComplementLayer,\n\t\t\tdetermine: closeConditional,\n\t\t\tinclude: () => [baseEl.value],\n\t\t});\n\n\t\tfunction onAfterEnter() {\n\t\t\tfinish.value = true;\n\t\t}\n\n\t\tfunction onAfterLeave() {\n\t\t\tonAfterUpdate();\n\t\t\tfinish.value = false;\n\t\t\temit(\"afterLeave\");\n\t\t}\n\n\t\tfunction onClickScrim() {\n\t\t\tif (props.closeClickScrim) {\n\t\t\t\tactive.value = false;\n\t\t\t}\n\t\t}\n\n\t\tfunction onMouseenter(event: Event) {\n\t\t\thovered.value = true;\n\t\t}\n\n\t\tfunction onMouseleave(event: Event) {\n\t\t\thovered.value = false;\n\t\t}\n\n\t\tconst computedStyle = computed(() => {\n\t\t\treturn {\n\t\t\t\tzIndex: (props.zIndex ?? \"2000\").toString(),\n\t\t\t};\n\t\t});\n\n\t\tconst computedClass = computed<Record<string, boolean>>(() => {\n\t\t\tconst { classes } = props;\n\t\t\tconst boundClasses = bindClasses(classes);\n\t\t\treturn {\n\t\t\t\t...boundClasses,\n\t\t\t\t\"y-layer--active\": !!active.value,\n\t\t\t};\n\t\t});\n\n\t\tconst computedContentClasses = computed<Record<string, boolean>>(() => {\n\t\t\tconst boundClasses = bindClasses(props.contentClasses);\n\t\t\treturn {\n\t\t\t\t...boundClasses,\n\t\t\t};\n\t\t});\n\n\t\texpose({\n\t\t\tscrim$,\n\t\t\tbase$,\n\t\t\tcontent$: computed(() => content$.value),\n\t\t\tbaseEl,\n\t\t\tactive,\n\t\t\tonAfterUpdate,\n\t\t\tupdateCoordinate,\n\t\t\thovered,\n\t\t\tfinish,\n\t\t\tmodal: computed(() => props.modal),\n\t\t\tgetActiveLayers,\n\t\t\tisMe: (vnode: ComponentInternalInstance) => {\n\t\t\t\treturn vnode === vm;\n\t\t\t},\n\t\t});\n\n\t\tuseRender(() => {\n\t\t\tconst slotBase = slots.base?.({\n\t\t\t\tactive: active.value,\n\t\t\t\tprops: mergeProps({\n\t\t\t\t\tref: base$,\n\t\t\t\t\tclass: {\n\t\t\t\t\t\t\"y-layer-base\": true,\n\t\t\t\t\t\t\"y-layer-base--active\": active.value,\n\t\t\t\t\t},\n\t\t\t\t\t...(props.baseProps ?? {}),\n\t\t\t\t}),\n\t\t\t});\n\t\t\tbaseSlot.value = slotBase;\n\t\t\treturn (\n\t\t\t\t<>\n\t\t\t\t\t{slotBase}\n\t\t\t\t\t<Teleport disabled={!layerGroup.value} to={layerGroup.value as any}>\n\t\t\t\t\t\t{rendered.value && (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclass={[\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\"y-layer\": true,\n\t\t\t\t\t\t\t\t\t\t\"y-layer--finish\": finish.value,\n\t\t\t\t\t\t\t\t\t\t\"y-layer--contained\": props.contained,\n\t\t\t\t\t\t\t\t\t\t...computedClass.value,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tthemeClasses.value,\n\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\tonMouseenter={onMouseenter}\n\t\t\t\t\t\t\t\tonMouseleave={onMouseleave}\n\t\t\t\t\t\t\t\tstyle={computedStyle.value}\n\t\t\t\t\t\t\t\tref={root$}\n\t\t\t\t\t\t\t\t{...attrs}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Transition name=\"fade\" appear>\n\t\t\t\t\t\t\t\t\t{active.value && props.scrim && (\n\t\t\t\t\t\t\t\t\t\t// biome-ignore lint/a11y/noStaticElementInteractions: <explanation>\n\t\t\t\t\t\t\t\t\t\t// biome-ignore lint/a11y/useKeyWithClickEvents: <explanation>\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tclass=\"y-layer__scrim\"\n\t\t\t\t\t\t\t\t\t\t\tstyle={{ \"--y-layer-scrim-opacity\": props.scrimOpacity }}\n\t\t\t\t\t\t\t\t\t\t\tonClick={onClickScrim}\n\t\t\t\t\t\t\t\t\t\t\tonKeydown={noop()}\n\t\t\t\t\t\t\t\t\t\t\tonKeyup={noop()}\n\t\t\t\t\t\t\t\t\t\t\tref=\"scrim$\"\n\t\t\t\t\t\t\t\t\t\t></div>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</Transition>\n\t\t\t\t\t\t\t\t<PolyTransition\n\t\t\t\t\t\t\t\t\tonAfterEnter={onAfterEnter}\n\t\t\t\t\t\t\t\t\tonAfterLeave={onAfterLeave}\n\t\t\t\t\t\t\t\t\tappear\n\t\t\t\t\t\t\t\t\t{...polyTransitionBindProps.value}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tv-show={active.value}\n\t\t\t\t\t\t\t\t\t\tv-complement-click={{ ...complementClickOption }}\n\t\t\t\t\t\t\t\t\t\tclass={{\n\t\t\t\t\t\t\t\t\t\t\t\"y-layer__content\": true,\n\t\t\t\t\t\t\t\t\t\t\t...computedContentClasses.value,\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tstyle={[\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t...dimensionStyles.value,\n\t\t\t\t\t\t\t\t\t\t\t\t...coordinateStyles.value,\n\t\t\t\t\t\t\t\t\t\t\t\t...props.contentStyles,\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t\t\t{...contentEvents.value}\n\t\t\t\t\t\t\t\t\t\tref={content$}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{slots.default?.({ active: active.value })}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</PolyTransition>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Teleport>\n\t\t\t\t</>\n\t\t\t);\n\t\t});\n\n\t\treturn {\n\t\t\tcomplementClickOption,\n\t\t\tlayerGroup,\n\t\t\tactive,\n\t\t\tfinish,\n\t\t\trendered,\n\t\t\tlazyValue,\n\t\t\tonAfterUpdate: onAfterUpdate as () => void,\n\t\t\tscrim$,\n\t\t\tcontent$,\n\t\t\tbase$,\n\t\t\tbaseEl,\n\t\t\tbaseFromSlotEl,\n\t\t\tpolyTransitionBindProps,\n\t\t\tcoordinateStyles,\n\t\t\tlayerGroupState,\n\t\t\tgetActiveLayers,\n\t\t};\n\t},\n});\n\nexport type YLayer = InstanceType<typeof YLayer>;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"YLayer.js","names":["computed","getCurrentInstance","mergeProps","reactive","ref","shallowRef","Teleport","Transition","toRef","Fragment","_Fragment","createVNode","_createVNode","vShow","_vShow","resolveDirective","_resolveDirective","_mergeProps","withDirectives","_withDirectives","useModelDuplex","useRender","pressCoordinateProps","useCoordinate","pressDimensionPropsOptions","useDimension","useLayerGroup","pressThemePropsOptions","useLocalTheme","useLazy","PolyTransition","pressPolyTransitionPropsOptions","usePolyTransition","ComplementClick","bindClasses","defineComponent","propsFactory","pressBasePropsOptions","useBase","pressContentPropsOptions","useContent","pressScrollStrategyProps","useScrollStrategies","noop","pressYLayerProps","modelValue","type","Boolean","scrim","scrimOpacity","Number","eager","classes","Array","String","Object","contentClasses","closeClickScrim","contentStyles","default","disabled","maximized","openOnHover","openDelay","closeDelay","zIndex","contained","layerGroup","YLayer","name","inheritAttrs","components","directives","props","modal","emits","value","mouseEvent","afterLeave","slots","setup","_ref","emit","expose","attrs","vm","scrim$","content$","root$","model","active","get","set","v","base","base$","baseEl","baseSlot","baseFromSlotEl","contentEvents","themeClasses","layerGroupState","getActiveLayers","polyTransitionBindProps","dimensionStyles","lazyValue","onAfterUpdate","finish","hovered","focused","rendered","coordination","coordinateStyles","updateCoordinate","contentEl","root","onClickComplementLayer","target","closeConditional","complementClickOption","handler","determine","include","onAfterEnter","onAfterLeave","onClickScrim","onMouseenter","event","onMouseleave","computedStyle","toString","computedClass","boundClasses","computedContentClasses","side","align","isMe","vnode","slotBase","class","baseProps"],"sources":["../../../src/components/layer/YLayer.tsx"],"sourcesContent":["import type { ComponentInternalInstance, PropType, SlotsType } from \"vue\";\nimport {\n\tcomputed,\n\tgetCurrentInstance,\n\tmergeProps,\n\treactive,\n\tref,\n\tshallowRef,\n\tTeleport,\n\tTransition,\n\ttoRef,\n} from \"vue\";\n\nimport { useModelDuplex } from \"@/composables/communication\";\nimport { useRender } from \"@/composables/component\";\nimport { pressCoordinateProps, useCoordinate } from \"@/composables/coordinate\";\nimport {\n\tpressDimensionPropsOptions,\n\tuseDimension,\n} from \"@/composables/dimension\";\nimport { useLayerGroup } from \"@/composables/layer-group\";\nimport { pressThemePropsOptions, useLocalTheme } from \"@/composables/theme\";\nimport { useLazy } from \"@/composables/timing\";\nimport {\n\tPolyTransition,\n\tpressPolyTransitionPropsOptions,\n\tusePolyTransition,\n} from \"@/composables/transition\";\nimport {\n\tComplementClick,\n\ttype ComplementClickBindingOptions,\n} from \"@/directives/complement-click\";\nimport { bindClasses, defineComponent, propsFactory } from \"@/util/component\";\n\nimport { pressBasePropsOptions, useBase } from \"./base\";\nimport { pressContentPropsOptions, useContent } from \"./content\";\nimport {\n\tpressScrollStrategyProps,\n\tuseScrollStrategies,\n} from \"./scroll-strategies\";\n\nimport \"./YLayer.scss\";\nimport type { CssProperties } from \"@/types\";\nimport { noop } from \"@/util\";\n\nexport const pressYLayerProps = propsFactory(\n\t{\n\t\tmodelValue: {\n\t\t\ttype: Boolean as PropType<boolean>,\n\t\t},\n\t\tscrim: {\n\t\t\ttype: Boolean as PropType<boolean>,\n\t\t},\n\t\tscrimOpacity: {\n\t\t\ttype: Number as PropType<number>,\n\t\t},\n\t\teager: {\n\t\t\ttype: Boolean as PropType<boolean>,\n\t\t},\n\t\tclasses: {\n\t\t\ttype: [Array, String, Object] as PropType<\n\t\t\t\tstring[] | string | Record<string, any>\n\t\t\t>,\n\t\t},\n\t\tcontentClasses: {\n\t\t\ttype: [Array, String, Object] as PropType<\n\t\t\t\tstring[] | string | Record<string, any>\n\t\t\t>,\n\t\t},\n\t\tcloseClickScrim: {\n\t\t\ttype: Boolean as PropType<boolean>,\n\t\t},\n\t\tcontentStyles: {\n\t\t\ttype: Object as PropType<CssProperties>,\n\t\t\tdefault: () => {},\n\t\t},\n\t\tdisabled: {\n\t\t\ttype: Boolean as PropType<boolean>,\n\t\t\tdefault: false,\n\t\t},\n\t\tmaximized: {\n\t\t\ttype: Boolean as PropType<boolean>,\n\t\t},\n\t\topenOnHover: {\n\t\t\ttype: Boolean as PropType<boolean>,\n\t\t\tdefault: false,\n\t\t},\n\t\topenDelay: {\n\t\t\ttype: Number as PropType<number>,\n\t\t\tdefault: 200,\n\t\t},\n\t\tcloseDelay: {\n\t\t\ttype: Number as PropType<number>,\n\t\t\tdefault: 200,\n\t\t},\n\t\tzIndex: {\n\t\t\ttype: [Number, String] as PropType<number | string>,\n\t\t\tdefault: 2000,\n\t\t},\n\t\tcontained: Boolean,\n\t\tlayerGroup: [String, Object] as PropType<string | Element>,\n\t\t...pressThemePropsOptions(),\n\t\t...pressPolyTransitionPropsOptions(),\n\t\t...pressBasePropsOptions(),\n\t\t...pressContentPropsOptions(),\n\t\t...pressCoordinateProps(),\n\t\t...pressScrollStrategyProps(),\n\t\t...pressDimensionPropsOptions(),\n\t},\n\t\"YLayer\",\n);\n\nexport const YLayer = defineComponent({\n\tname: \"YLayer\",\n\tinheritAttrs: false,\n\tcomponents: {\n\t\tPolyTransition,\n\t},\n\tdirectives: {\n\t\tComplementClick,\n\t},\n\tprops: {\n\t\tmodal: Boolean as PropType<boolean>,\n\t\t...pressYLayerProps(),\n\t},\n\temits: {\n\t\t\"update:modelValue\": (value: boolean) => true,\n\t\t\"click:complement\": (mouseEvent: MouseEvent) => true,\n\t\tafterLeave: () => true,\n\t},\n\tslots: Object as SlotsType<{\n\t\tbase: any;\n\t\tdefault: any;\n\t}>,\n\tsetup(props, { emit, expose, attrs, slots }) {\n\t\tconst vm = getCurrentInstance();\n\t\tconst scrim$ = ref<HTMLElement>();\n\t\tconst content$ = ref<HTMLElement>();\n\t\tconst root$ = ref<HTMLElement>();\n\t\tconst model = useModelDuplex(props);\n\t\tconst active = computed({\n\t\t\tget: (): boolean => {\n\t\t\t\treturn !!model.value;\n\t\t\t},\n\t\t\tset: (v: boolean) => {\n\t\t\t\tif (!(v && props.disabled)) model.value = v;\n\t\t\t},\n\t\t});\n\t\t// Frags\n\t\tconst { base, base$, baseEl, baseSlot, baseFromSlotEl } = useBase(props);\n\t\tconst { contentEvents } = useContent(props, active);\n\t\tconst { themeClasses } = useLocalTheme(props);\n\t\tconst { layerGroup, layerGroupState, getActiveLayers } =\n\t\t\tuseLayerGroup(props);\n\t\tconst { polyTransitionBindProps } = usePolyTransition(props);\n\t\tconst { dimensionStyles } = useDimension(props);\n\n\t\tconst { lazyValue, onAfterUpdate } = useLazy(toRef(props, \"eager\"), active);\n\t\t// States\n\t\tconst finish = shallowRef(false);\n\t\tconst hovered = ref(false);\n\t\tconst focused = ref(false);\n\t\tconst disabled = toRef(props, \"disabled\");\n\t\tconst maximized = toRef(props, \"maximized\");\n\n\t\tconst rendered = computed<boolean>(\n\t\t\t() => !disabled.value && (lazyValue.value || active.value),\n\t\t);\n\n\t\tconst { coordination, coordinateStyles, updateCoordinate } = useCoordinate(props, {\n\t\t\tcontentEl: content$,\n\t\t\tbase,\n\t\t\tactive,\n\t\t});\n\t\tuseScrollStrategies(props, {\n\t\t\troot: root$,\n\t\t\tcontentEl: content$,\n\t\t\tactive,\n\t\t\tbaseEl: base,\n\t\t\tupdateCoordinate,\n\t\t});\n\n\t\tfunction onClickComplementLayer(mouseEvent: MouseEvent) {\n\t\t\temit(\"click:complement\", mouseEvent);\n\t\t\tif (!props.modal) {\n\t\t\t\tif (\n\t\t\t\t\tscrim$.value !== null &&\n\t\t\t\t\tscrim$.value === mouseEvent.target &&\n\t\t\t\t\tprops.closeClickScrim\n\t\t\t\t) {\n\t\t\t\t\tactive.value = false;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// TODO: shrug ani\n\t\t\t}\n\t\t}\n\n\t\tfunction closeConditional(): boolean {\n\t\t\treturn (\n\t\t\t\t(!props.openOnHover || (props.openOnHover && !hovered.value)) &&\n\t\t\t\tactive.value &&\n\t\t\t\tfinish.value\n\t\t\t); // TODO: && groupTopLevel.value;\n\t\t}\n\n\t\tconst complementClickOption = reactive<ComplementClickBindingOptions>({\n\t\t\thandler: onClickComplementLayer,\n\t\t\tdetermine: closeConditional,\n\t\t\tinclude: () => [baseEl.value],\n\t\t});\n\n\t\tfunction onAfterEnter() {\n\t\t\tfinish.value = true;\n\t\t}\n\n\t\tfunction onAfterLeave() {\n\t\t\tonAfterUpdate();\n\t\t\tfinish.value = false;\n\t\t\temit(\"afterLeave\");\n\t\t}\n\n\t\tfunction onClickScrim() {\n\t\t\tif (props.closeClickScrim) {\n\t\t\t\tactive.value = false;\n\t\t\t}\n\t\t}\n\n\t\tfunction onMouseenter(event: Event) {\n\t\t\thovered.value = true;\n\t\t}\n\n\t\tfunction onMouseleave(event: Event) {\n\t\t\thovered.value = false;\n\t\t}\n\n\t\tconst computedStyle = computed(() => {\n\t\t\treturn {\n\t\t\t\tzIndex: (props.zIndex ?? \"2000\").toString(),\n\t\t\t};\n\t\t});\n\n\t\tconst computedClass = computed<Record<string, boolean>>(() => {\n\t\t\tconst { classes } = props;\n\t\t\tconst boundClasses = bindClasses(classes);\n\t\t\treturn {\n\t\t\t\t...boundClasses,\n\t\t\t\t\"y-layer--active\": !!active.value,\n\t\t\t};\n\t\t});\n\n\t\tconst computedContentClasses = computed<Record<string, boolean>>(() => {\n\t\t\tconst boundClasses = bindClasses(props.contentClasses);\n\t\t\tconst { side, align } = coordination.value;\n\t\t\treturn {\n\t\t\t\t...boundClasses,\n [`y-layer--side-${side}`]: !!side,\n [`y-layer--align-${align}`]: !!align,\n\t\t\t};\n\t\t});\n\n\t\texpose({\n\t\t\tscrim$,\n\t\t\tbase$,\n\t\t\tcontent$: computed(() => content$.value),\n\t\t\tbaseEl,\n\t\t\tactive,\n\t\t\tonAfterUpdate,\n\t\t\tupdateCoordinate,\n\t\t\thovered,\n\t\t\tfinish,\n\t\t\tmodal: computed(() => props.modal),\n\t\t\tgetActiveLayers,\n\t\t\tisMe: (vnode: ComponentInternalInstance) => {\n\t\t\t\treturn vnode === vm;\n\t\t\t},\n\t\t\tcoordination,\n\t\t});\n\n\t\tuseRender(() => {\n\t\t\tconst slotBase = slots.base?.({\n\t\t\t\tactive: active.value,\n\t\t\t\tprops: mergeProps({\n\t\t\t\t\tref: base$,\n\t\t\t\t\tclass: {\n\t\t\t\t\t\t\"y-layer-base\": true,\n\t\t\t\t\t\t\"y-layer-base--active\": active.value,\n\t\t\t\t\t},\n\t\t\t\t\t...(props.baseProps ?? {}),\n\t\t\t\t}),\n\t\t\t});\n\t\t\tbaseSlot.value = slotBase;\n\t\t\treturn (\n\t\t\t\t<>\n\t\t\t\t\t{slotBase}\n\t\t\t\t\t<Teleport disabled={!layerGroup.value} to={layerGroup.value as any}>\n\t\t\t\t\t\t{rendered.value && (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclass={[\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\"y-layer\": true,\n\t\t\t\t\t\t\t\t\t\t\"y-layer--finish\": finish.value,\n\t\t\t\t\t\t\t\t\t\t\"y-layer--contained\": props.contained,\n\t\t\t\t\t\t\t\t\t\t...computedClass.value,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tthemeClasses.value,\n\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\tonMouseenter={onMouseenter}\n\t\t\t\t\t\t\t\tonMouseleave={onMouseleave}\n\t\t\t\t\t\t\t\tstyle={computedStyle.value}\n\t\t\t\t\t\t\t\tref={root$}\n\t\t\t\t\t\t\t\t{...attrs}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Transition name=\"fade\" appear>\n\t\t\t\t\t\t\t\t\t{active.value && props.scrim && (\n\t\t\t\t\t\t\t\t\t\t// biome-ignore lint/a11y/noStaticElementInteractions: <explanation>\n\t\t\t\t\t\t\t\t\t\t// biome-ignore lint/a11y/useKeyWithClickEvents: <explanation>\n\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\tclass=\"y-layer__scrim\"\n\t\t\t\t\t\t\t\t\t\t\tstyle={{ \"--y-layer-scrim-opacity\": props.scrimOpacity }}\n\t\t\t\t\t\t\t\t\t\t\tonClick={onClickScrim}\n\t\t\t\t\t\t\t\t\t\t\tonKeydown={noop()}\n\t\t\t\t\t\t\t\t\t\t\tonKeyup={noop()}\n\t\t\t\t\t\t\t\t\t\t\tref=\"scrim$\"\n\t\t\t\t\t\t\t\t\t\t></div>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</Transition>\n\t\t\t\t\t\t\t\t<PolyTransition\n\t\t\t\t\t\t\t\t\tonAfterEnter={onAfterEnter}\n\t\t\t\t\t\t\t\t\tonAfterLeave={onAfterLeave}\n\t\t\t\t\t\t\t\t\tappear\n\t\t\t\t\t\t\t\t\t{...polyTransitionBindProps.value}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\tv-show={active.value}\n\t\t\t\t\t\t\t\t\t\tv-complement-click={{ ...complementClickOption }}\n\t\t\t\t\t\t\t\t\t\tclass={{\n\t\t\t\t\t\t\t\t\t\t\t\"y-layer__content\": true,\n\t\t\t\t\t\t\t\t\t\t\t...computedContentClasses.value,\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tstyle={[\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t...dimensionStyles.value,\n\t\t\t\t\t\t\t\t\t\t\t\t...coordinateStyles.value,\n\t\t\t\t\t\t\t\t\t\t\t\t...props.contentStyles,\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t]}\n\t\t\t\t\t\t\t\t\t\t{...contentEvents.value}\n\t\t\t\t\t\t\t\t\t\tref={content$}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{slots.default?.({ active: active.value })}\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</PolyTransition>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Teleport>\n\t\t\t\t</>\n\t\t\t);\n\t\t});\n\n\t\treturn {\n\t\t\tcomplementClickOption,\n\t\t\tlayerGroup,\n\t\t\tactive,\n\t\t\tfinish,\n\t\t\trendered,\n\t\t\tlazyValue,\n\t\t\tonAfterUpdate: onAfterUpdate as () => void,\n\t\t\tscrim$,\n\t\t\tcontent$,\n\t\t\tbase$,\n\t\t\tbaseEl,\n\t\t\tbaseFromSlotEl,\n\t\t\tpolyTransitionBindProps,\n\t\t\tcoordinateStyles,\n\t\t\tlayerGroupState,\n\t\t\tgetActiveLayers,\n\t\t\tcoordination,\n\t\t};\n\t},\n});\n\nexport type YLayer = InstanceType<typeof YLayer>;\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { onScopeDispose, ref, watch } from 'vue';
1
+ import { onScopeDispose, ref, watch } from "vue";
2
2
  import { propsFactory } from "../../util/component/index.js";
3
3
  import { useToggleScope } from "../scope.js";
4
4
  import { applyArrangement } from "./arrangement.js";
@@ -10,19 +10,19 @@ const coordinateStrategies = {
10
10
  export const pressCoordinateProps = propsFactory({
11
11
  coordinateStrategy: {
12
12
  type: [String, Function],
13
- default: 'arrangement'
13
+ default: "arrangement"
14
14
  },
15
15
  position: {
16
16
  type: String,
17
- default: 'default'
17
+ default: "default"
18
18
  },
19
19
  align: {
20
20
  type: String,
21
- default: 'start'
21
+ default: "start"
22
22
  },
23
23
  origin: {
24
24
  type: String,
25
- default: 'auto'
25
+ default: "auto"
26
26
  },
27
27
  offset: {
28
28
  type: [Number, String, Array]
@@ -31,35 +31,45 @@ export const pressCoordinateProps = propsFactory({
31
31
  type: [Number, String, Array],
32
32
  default: 16
33
33
  }
34
- }, 'Coordinate');
34
+ }, "Coordinate");
35
35
  export function useCoordinate(props, state) {
36
36
  const updateCoordinate = ref();
37
- const coordinate = ref();
37
+ const coordination = ref({
38
+ side: '',
39
+ align: '',
40
+ offset: [0, 0],
41
+ rect: {
42
+ x: 0,
43
+ y: 0,
44
+ width: 0,
45
+ height: 0
46
+ }
47
+ });
38
48
  const coordinateStyles = ref({});
39
49
  useToggleScope(() => !!(state.active.value && props.coordinateStrategy), reset => {
40
50
  watch(() => props.coordinateStrategy, reset);
41
51
  onScopeDispose(() => {
42
52
  updateCoordinate.value = undefined;
43
53
  });
44
- if (typeof props.coordinateStrategy === 'function') {
45
- updateCoordinate.value = props.coordinateStrategy(props, state, coordinate, coordinateStyles)?.updateCoordinate;
54
+ if (typeof props.coordinateStrategy === "function") {
55
+ updateCoordinate.value = props.coordinateStrategy(props, state, coordination, coordinateStyles)?.updateCoordinate;
46
56
  } else {
47
57
  const strategy = coordinateStrategies[props.coordinateStrategy];
48
- updateCoordinate.value = strategy?.(props, state, coordinate, coordinateStyles)?.updateCoordinate;
58
+ updateCoordinate.value = strategy?.(props, state, coordination, coordinateStyles)?.updateCoordinate;
49
59
  }
50
60
  });
51
- window.addEventListener('resize', onResize, {
61
+ window.addEventListener("resize", onResize, {
52
62
  passive: true
53
63
  });
54
64
  onScopeDispose(() => {
55
- window.removeEventListener('resize', onResize);
65
+ window.removeEventListener("resize", onResize);
56
66
  updateCoordinate.value = undefined;
57
67
  });
58
68
  function onResize(e) {
59
69
  updateCoordinate.value?.(e);
60
70
  }
61
71
  return {
62
- coordinate,
72
+ coordination,
63
73
  coordinateStyles,
64
74
  updateCoordinate
65
75
  };
@@ -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 { PropType, Ref } from 'vue';\nimport { onScopeDispose, ref, watch } from 'vue';\n\nimport { CssProperties } from '@/types';\n\nimport { propsFactory } from '../../util/component';\nimport { Rect } from '../../util/rect';\nimport { useToggleScope } from '../scope';\nimport { applyArrangement } from './arrangement';\nimport { applyLevitation } from './levitation';\nimport { CoordinateState } from './types';\n\nconst coordinateStrategies = {\n levitation: applyLevitation,\n arrangement: applyArrangement,\n};\n\nexport type CoordinateStrategyFn = (\n props: any,\n state: CoordinateState,\n coordinate: Ref<Rect | undefined>,\n coordinateStyles: Ref<CssProperties>,\n) => undefined | { updateCoordinate: (e: Event) => void };\n\nexport const pressCoordinateProps = propsFactory(\n {\n coordinateStrategy: {\n type: [String, Function] as PropType<\n keyof typeof coordinateStrategies | CoordinateStrategyFn\n >,\n default: 'arrangement',\n },\n position: {\n type: String as PropType<\n 'default' | 'top' | 'end' | 'right' | 'bottom' | 'left' | 'start'\n >,\n default: 'default',\n },\n align: {\n type: String as PropType<'start' | 'center' | 'end' | 'top' | 'bottom'>,\n default: 'start',\n },\n origin: {\n type: String,\n default: 'auto',\n },\n offset: {\n type: [Number, String, Array] as PropType<number | string | number[]>,\n },\n viewportMargin: {\n type: [Number, String, Array],\n default: 16,\n },\n },\n 'Coordinate',\n);\n\nexport function useCoordinate(props: any, state: CoordinateState) {\n const updateCoordinate = ref<(e: Event) => void>();\n const coordinate = ref<Rect | undefined>();\n const coordinateStyles = ref<CssProperties>({});\n\n useToggleScope(\n () => !!(state.active.value && props.coordinateStrategy),\n (reset) => {\n watch(() => props.coordinateStrategy, reset);\n onScopeDispose(() => {\n updateCoordinate.value = undefined;\n });\n\n if (typeof props.coordinateStrategy === 'function') {\n updateCoordinate.value = props.coordinateStrategy(\n props,\n state,\n coordinate,\n coordinateStyles,\n )?.updateCoordinate;\n } else {\n const strategy =\n coordinateStrategies[\n props.coordinateStrategy as keyof typeof coordinateStrategies\n ];\n updateCoordinate.value = strategy?.(\n props,\n state,\n coordinate,\n coordinateStyles,\n )?.updateCoordinate;\n }\n },\n );\n\n window.addEventListener('resize', onResize, { passive: true });\n\n onScopeDispose(() => {\n window.removeEventListener('resize', onResize);\n updateCoordinate.value = undefined;\n });\n\n function onResize(e: Event) {\n updateCoordinate.value?.(e);\n }\n\n return {\n coordinate,\n coordinateStyles,\n updateCoordinate,\n };\n}\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;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,CAEtB;IACDC,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","ignoreList":[]}
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\";\nimport { onScopeDispose, ref, watch } from \"vue\";\n\nimport type { CssProperties } from \"@/types\";\n\nimport { propsFactory } from \"../../util/component\";\nimport type { Rect } from \"../../util/rect\";\nimport { useToggleScope } from \"../scope\";\nimport { applyArrangement } from \"./arrangement\";\nimport { applyLevitation } from \"./levitation\";\nimport type { CoordinateState } from \"./types\";\n\nconst coordinateStrategies = {\n\tlevitation: applyLevitation,\n\tarrangement: applyArrangement,\n};\n\nexport type CoordinateStrategyFn = (\n\tprops: any,\n\tstate: CoordinateState,\n\tcoordination: Ref<any>,\n\tcoordinateStyles: Ref<CssProperties>,\n) => undefined | { updateCoordinate: (e: Event) => void };\n\nexport const pressCoordinateProps = propsFactory(\n\t{\n\t\tcoordinateStrategy: {\n\t\t\ttype: [String, Function] as PropType<\n\t\t\t\tkeyof typeof coordinateStrategies | CoordinateStrategyFn\n\t\t\t>,\n\t\t\tdefault: \"arrangement\",\n\t\t},\n\t\tposition: {\n\t\t\ttype: String as PropType<\n\t\t\t\t\"default\" | \"top\" | \"end\" | \"right\" | \"bottom\" | \"left\" | \"start\"\n\t\t\t>,\n\t\t\tdefault: \"default\",\n\t\t},\n\t\talign: {\n\t\t\ttype: String as PropType<\"start\" | \"center\" | \"end\" | \"top\" | \"bottom\">,\n\t\t\tdefault: \"start\",\n\t\t},\n\t\torigin: {\n\t\t\ttype: String,\n\t\t\tdefault: \"auto\",\n\t\t},\n\t\toffset: {\n\t\t\ttype: [Number, String, Array] as PropType<number | string | number[]>,\n\t\t},\n\t\tviewportMargin: {\n\t\t\ttype: [Number, String, Array],\n\t\t\tdefault: 16,\n\t\t},\n\t},\n\t\"Coordinate\",\n);\n\nexport function useCoordinate(props: any, state: CoordinateState) {\n\tconst updateCoordinate = ref<(e: Event) => void>();\n\tconst coordination = ref<any>({\n\t\tside: '',\n\t\talign: '',\n\t\toffset: [0, 0],\n\t\trect: {\n\t\t\tx: 0,\n\t\t\ty: 0,\n\t\t\twidth: 0,\n\t\t\theight: 0\n\t\t}\n\t});\n\tconst coordinateStyles = ref<CssProperties>({});\n\n\tuseToggleScope(\n\t\t() => !!(state.active.value && props.coordinateStrategy),\n\t\t(reset) => {\n\t\t\twatch(() => props.coordinateStrategy, reset);\n\t\t\tonScopeDispose(() => {\n\t\t\t\tupdateCoordinate.value = undefined;\n\t\t\t});\n\n\t\t\tif (typeof props.coordinateStrategy === \"function\") {\n\t\t\t\tupdateCoordinate.value = props.coordinateStrategy(\n\t\t\t\t\tprops,\n\t\t\t\t\tstate,\n\t\t\t\t\tcoordination,\n\t\t\t\t\tcoordinateStyles,\n\t\t\t\t)?.updateCoordinate;\n\t\t\t} else {\n\t\t\t\tconst strategy =\n\t\t\t\t\tcoordinateStrategies[\n\t\t\t\t\t\tprops.coordinateStrategy as keyof typeof coordinateStrategies\n\t\t\t\t\t];\n\t\t\t\tupdateCoordinate.value = strategy?.(\n\t\t\t\t\tprops,\n\t\t\t\t\tstate,\n\t\t\t\t\tcoordination,\n\t\t\t\t\tcoordinateStyles,\n\t\t\t\t)?.updateCoordinate;\n\t\t\t}\n\t\t},\n\t);\n\n\twindow.addEventListener(\"resize\", onResize, { passive: true });\n\n\tonScopeDispose(() => {\n\t\twindow.removeEventListener(\"resize\", onResize);\n\t\tupdateCoordinate.value = undefined;\n\t});\n\n\tfunction onResize(e: Event) {\n\t\tupdateCoordinate.value?.(e);\n\t}\n\n\treturn {\n\t\tcoordination,\n\t\tcoordinateStyles,\n\t\tupdateCoordinate,\n\t};\n}\n"],"mappings":"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","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