yuyeon 0.3.1-rc.0 → 0.3.1-rc.4
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.
- package/LICENSE +191 -191
- package/README.md +15 -15
- package/dist/yuyeon.js +1813 -1876
- package/dist/yuyeon.umd.cjs +3 -3
- package/lib/abstract/items.mjs.map +1 -1
- package/lib/components/alert/YAlert.mjs +2 -2
- package/lib/components/alert/YAlert.mjs.map +1 -1
- package/lib/components/alert/YAlert.scss +77 -77
- package/lib/components/app/YApp.mjs +2 -2
- package/lib/components/app/YApp.mjs.map +1 -1
- package/lib/components/bench/YBench.mjs +2 -2
- package/lib/components/bench/YBench.mjs.map +1 -1
- package/lib/components/button/YButton.scss +137 -137
- package/lib/components/card/YCard.mjs.map +1 -1
- package/lib/components/card/YCard.scss +45 -45
- package/lib/components/card/YCardBody.mjs.map +1 -1
- package/lib/components/card/YCardFooter.mjs.map +1 -1
- package/lib/components/card/YCardHeader.mjs.map +1 -1
- package/lib/components/checkbox/YCheckbox.mjs.map +1 -1
- package/lib/components/checkbox/YInputCheckbox.mjs.map +1 -1
- package/lib/components/checkbox/YInputCheckbox.scss +84 -84
- package/lib/components/checkbox/index.mjs.map +1 -1
- package/lib/components/chip/YChip.scss +36 -36
- package/lib/components/date-picker/YDateCalendar.mjs.map +1 -1
- package/lib/components/date-picker/YDateCalendar.scss +84 -84
- package/lib/components/date-picker/YDatePicker.mjs +2 -2
- package/lib/components/date-picker/YDatePicker.mjs.map +1 -1
- package/lib/components/date-picker/YDatePickerControl.mjs.map +1 -1
- package/lib/components/date-picker/YMonthPicker.mjs.map +1 -1
- package/lib/components/date-picker/YYearPicker.mjs.map +1 -1
- package/lib/components/dialog/index.mjs.map +1 -1
- package/lib/components/divider/YDivider.mjs.map +1 -1
- package/lib/components/divider/YDivider.scss +2 -2
- package/lib/components/draggable/YDraggable.mjs +2 -2
- package/lib/components/draggable/YDraggable.mjs.map +1 -1
- package/lib/components/dropdown/YDropdown.mjs.map +1 -1
- package/lib/components/dropdown/YDropdown.scss +27 -27
- package/lib/components/field-input/index.mjs.map +1 -1
- package/lib/components/form/YForm.mjs.map +1 -1
- package/lib/components/hover/YHover.mjs +1 -1
- package/lib/components/hover/YHover.mjs.map +1 -1
- package/lib/components/icon/YIcon.mjs.map +1 -1
- package/lib/components/icon/YIcon.scss +18 -18
- package/lib/components/icons/YIconCheckbox.mjs.map +1 -1
- package/lib/components/icons/YIconClear.mjs.map +1 -1
- package/lib/components/icons/YIconDropdown.mjs.map +1 -1
- package/lib/components/icons/YIconExpand.mjs.map +1 -1
- package/lib/components/icons/YIconPageControl.mjs.map +1 -1
- package/lib/components/icons/YIconSort.mjs.map +1 -1
- package/lib/components/icons/YIconSort.scss +24 -24
- package/lib/components/icons/index.mjs.map +1 -1
- package/lib/components/img/YImg.mjs +4 -4
- package/lib/components/img/YImg.mjs.map +1 -1
- package/lib/components/index.mjs.map +1 -1
- package/lib/components/input/YInput.mjs.map +1 -1
- package/lib/components/input/YInput.scss +258 -258
- package/lib/components/ip-field/YIpv4Field.mjs.map +1 -1
- package/lib/components/layer/YLayer.mjs.map +1 -1
- package/lib/components/layer/active-stack.mjs.map +1 -1
- package/lib/components/layer/base.mjs.map +1 -1
- package/lib/components/layer/content.mjs.map +1 -1
- package/lib/components/layer/scroll-strategies.mjs.map +1 -1
- package/lib/components/list/YList.mjs.map +1 -1
- package/lib/components/list/YListItem.mjs.map +1 -1
- package/lib/components/loading/YSpinnerRing.mjs.map +1 -1
- package/lib/components/menu/YMenu.mjs +2 -2
- package/lib/components/menu/YMenu.mjs.map +1 -1
- package/lib/components/menu/YMenu.scss +25 -25
- package/lib/components/navigation/YNavigation.mjs.map +1 -1
- package/lib/components/pagination/YPagination.mjs.map +1 -1
- package/lib/components/pagination/YPagination.scss +52 -52
- package/lib/components/panel/YDividePanel.mjs.map +1 -1
- package/lib/components/plate/YPlate.mjs +2 -2
- package/lib/components/plate/YPlate.mjs.map +1 -1
- package/lib/components/progress-bar/YProgressBar.mjs.map +1 -1
- package/lib/components/progress-bar/YProgressBar.scss +120 -120
- package/lib/components/progress-ring/YProgressRing.mjs +2 -2
- package/lib/components/progress-ring/YProgressRing.mjs.map +1 -1
- package/lib/components/progress-ring/YProgressRing.scss +38 -38
- package/lib/components/progress-ring/index.mjs.map +1 -1
- package/lib/components/select/YSelect.mjs.map +1 -1
- package/lib/components/slider/YSlider.mjs.map +1 -1
- package/lib/components/snackbar/YSnackbar.mjs +5 -5
- package/lib/components/snackbar/YSnackbar.mjs.map +1 -1
- package/lib/components/switch/YSwitch.mjs.map +1 -1
- package/lib/components/switch/YSwitch.scss +211 -211
- package/lib/components/tab/YTab.mjs.map +1 -1
- package/lib/components/tab/YTab.scss +73 -73
- package/lib/components/tab/YTabs.mjs.map +1 -1
- package/lib/components/tab/YTabs.scss +8 -8
- package/lib/components/tab/index.mjs.map +1 -1
- package/lib/components/tab/types.mjs.map +1 -1
- package/lib/components/table/YDataTableBody.mjs.map +1 -1
- package/lib/components/table/YDataTableCell.mjs.map +1 -1
- package/lib/components/table/YDataTableHead.mjs.map +1 -1
- package/lib/components/table/YDataTableLayer.mjs.map +1 -1
- package/lib/components/table/YDataTableRow.mjs.map +1 -1
- package/lib/components/table/YTable.mjs.map +1 -1
- package/lib/components/table/YTable.scss +157 -157
- package/lib/components/table/composibles/header.mjs.map +1 -1
- package/lib/components/table/composibles/items.mjs.map +1 -1
- package/lib/components/table/composibles/options.mjs.map +1 -1
- package/lib/components/table/composibles/pagination.mjs.map +1 -1
- package/lib/components/table/composibles/selection.mjs.map +1 -1
- package/lib/components/table/composibles/sorted-items.mjs.map +1 -1
- package/lib/components/table/composibles/sorting.mjs.map +1 -1
- package/lib/components/table/types/header.mjs.map +1 -1
- package/lib/components/table/types/index.mjs.map +1 -1
- package/lib/components/table/types/row.mjs.map +1 -1
- package/lib/components/text-ellipsis/YTextEllipsis.mjs.map +1 -1
- package/lib/components/text-ellipsis/YTextEllipsis.scss +43 -43
- package/lib/components/text-highlighter/YTextHighlighter.mjs.map +1 -1
- package/lib/components/text-interpolation/YTi.mjs.map +1 -1
- package/lib/components/textarea/YTextarea.mjs.map +1 -1
- package/lib/components/toggle-button/YToggleButton.mjs.map +1 -1
- package/lib/components/tooltip/YTooltip.mjs +2 -2
- package/lib/components/tooltip/YTooltip.mjs.map +1 -1
- package/lib/components/tree-view/YTreeView.mjs +5 -0
- package/lib/components/tree-view/YTreeView.mjs.map +1 -1
- package/lib/components/tree-view/YTreeView.scss +81 -81
- package/lib/components/tree-view/types.mjs.map +1 -1
- package/lib/components/tree-view/util.mjs.map +1 -1
- package/lib/composables/choice.mjs.map +1 -1
- package/lib/composables/communication.mjs.map +1 -1
- package/lib/composables/component.mjs.map +1 -1
- package/lib/composables/coordinate/arrangement.mjs.map +1 -1
- package/lib/composables/coordinate/index.mjs.map +1 -1
- package/lib/composables/coordinate/levitation.mjs +2 -2
- package/lib/composables/coordinate/levitation.mjs.map +1 -1
- package/lib/composables/coordinate/types.mjs.map +1 -1
- package/lib/composables/coordinate/utils/point.mjs.map +1 -1
- package/lib/composables/date/factory.mjs.map +1 -1
- package/lib/composables/date/index.mjs.map +1 -1
- package/lib/composables/date/setting.mjs.map +1 -1
- package/lib/composables/date/types.mjs.map +1 -1
- package/lib/composables/defaults/index.mjs.map +1 -1
- package/lib/composables/defaults/share.mjs.map +1 -1
- package/lib/composables/defaults/types.mjs.map +1 -1
- package/lib/composables/dimension.mjs.map +1 -1
- package/lib/composables/focus.mjs.map +1 -1
- package/lib/composables/form.mjs.map +1 -1
- package/lib/composables/i18n/index.mjs.map +1 -1
- package/lib/composables/i18n/locale.mjs.map +1 -1
- package/lib/composables/i18n/rtl.mjs.map +1 -1
- package/lib/composables/i18n/share.mjs.map +1 -1
- package/lib/composables/icon.mjs.map +1 -1
- package/lib/composables/index.mjs.map +1 -1
- package/lib/composables/layer-group.mjs.map +1 -1
- package/lib/composables/layout.mjs.map +1 -1
- package/lib/composables/list-items.mjs.map +1 -1
- package/lib/composables/progress.mjs.map +1 -1
- package/lib/composables/ref.mjs.map +1 -1
- package/lib/composables/resize-observer.mjs.map +1 -1
- package/lib/composables/scope.mjs.map +1 -1
- package/lib/composables/theme/factory.mjs.map +1 -1
- package/lib/composables/theme/index.mjs.map +1 -1
- package/lib/composables/theme/setting.mjs.map +1 -1
- package/lib/composables/theme/types.mjs.map +1 -1
- package/lib/composables/timing.mjs.map +1 -1
- package/lib/composables/transition.mjs.map +1 -1
- package/lib/composables/validation.mjs.map +1 -1
- package/lib/composables/vue-router.mjs.map +1 -1
- package/lib/directives/plate-wave/index.mjs +2 -2
- package/lib/directives/plate-wave/index.mjs.map +1 -1
- package/lib/etc/index.mjs.map +1 -1
- package/lib/i18n/built-in.mjs.map +1 -1
- package/lib/i18n/config.mjs.map +1 -1
- package/lib/i18n/types.mjs.map +1 -1
- package/lib/index.mjs +2 -1
- package/lib/index.mjs.map +1 -1
- package/lib/locales/en.mjs.map +1 -1
- package/lib/locales/index.mjs.map +1 -1
- package/lib/locales/ko.mjs.map +1 -1
- package/lib/styles/_elevation.scss +16 -16
- package/lib/styles/_palette.scss +1 -1
- package/lib/styles/base.scss +130 -130
- package/lib/styles/settings/_elevation.scss +20 -20
- package/lib/styles/settings/_variables.scss +14 -14
- package/lib/styles/theme/dark.scss +11 -11
- package/lib/styles/theme/light.scss +11 -11
- package/lib/styles/util/_mixin.scss +33 -33
- package/lib/styles/util/_var.scss +18 -18
- package/lib/util/anchor.mjs.map +1 -1
- package/lib/util/collection.mjs.map +1 -1
- package/lib/util/color/const.mjs.map +1 -1
- package/lib/util/color/index.mjs +12 -12
- package/lib/util/color/index.mjs.map +1 -1
- package/lib/util/color/types.mjs.map +1 -1
- package/lib/util/color/utils/math-utils.mjs +62 -62
- package/lib/util/color/utils/math-utils.mjs.map +1 -1
- package/lib/util/component/component.mjs.map +1 -1
- package/lib/util/component/index.mjs.map +1 -1
- package/lib/util/component/inject-self.mjs.map +1 -1
- package/lib/util/component/props.mjs.map +1 -1
- package/lib/util/component/types.mjs.map +1 -1
- package/lib/util/date/index.mjs.map +1 -1
- package/lib/util/date/types.mjs.map +1 -1
- package/lib/util/debounce.mjs.map +1 -1
- package/lib/util/environments.mjs.map +1 -1
- package/lib/util/index.mjs.map +1 -1
- package/lib/util/reactivity.mjs +3 -3
- package/lib/util/reactivity.mjs.map +1 -1
- package/lib/util/rect.mjs.map +1 -1
- package/lib/util/validation.mjs.map +1 -1
- package/package.json +120 -120
- package/types/globals.d.ts +20 -20
- package/types/shims.d.ts +55 -55
- package/lib/components/icon/poly.mjs +0 -57
- package/lib/components/icon/poly.mjs.map +0 -1
- package/lib/composables/group.mjs +0 -194
- package/lib/composables/group.mjs.map +0 -1
- package/lib/util/parser.mjs +0 -31
- package/lib/util/parser.mjs.map +0 -1
- package/lib/util/vue-component/index.mjs +0 -63
- package/lib/util/vue-component/index.mjs.map +0 -1
- package/lib/util/vue-component/props.mjs +0 -37
- package/lib/util/vue-component/props.mjs.map +0 -1
- package/lib/util/vue-component/types.mjs +0 -2
- package/lib/util/vue-component/types.mjs.map +0 -1
- package/lib/util/vue-component.mjs +0 -102
- package/lib/util/vue-component.mjs.map +0 -1
- package/types/components/select/YSelect.d.ts +0 -7062
- package/types/components/table/pagination.d.ts +0 -78
- package/types/components/tooltip/YTooltip.d.ts +0 -3711
- package/types/util/color/hct/hct_solver.d.ts +0 -146
- package/types/util/color/hct/viewing_conditions.d.ts +0 -74
- package/types/util/color/palettes/tonal_palette.d.ts +0 -55
- package/types/util/color/utils/math_utils.d.ts +0 -82
- package/types/util/parser.d.ts +0 -4
- package/types/util/vue-component/index.d.ts +0 -10
- package/types/util/vue-component/props.d.ts +0 -31
- package/types/util/vue-component/types.d.ts +0 -4
- package/types/util/vue-component.d.ts +0 -39
- /package/types/util/{Rect.d.ts → rect.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"levitation.mjs","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.mjs","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';\nimport { computed, nextTick, onScopeDispose, ref, watch } from 'vue';\n\nimport {\n type Anchor,\n flipAlign,\n flipCorner,\n flipSide,\n getAxis,\n parseAnchor,\n} from '@/util/anchor';\nimport { clamp } from '@/util/common';\nimport { $computed } from '@/util/reactivity';\nimport { MutableRect, Rect, getOverflow } from '@/util/rect';\nimport { getScrollParents } from '@/util/scroll';\nimport {\n getBoundingPureRect,\n pixelCeil,\n pixelRound,\n toStyleSizeValue,\n} from '@/util/ui';\n\nimport { CoordinateState } from './types';\nimport { anchorToPoint, getOffset } from './utils/point';\n\nexport function applyLevitation(\n props: any,\n state: CoordinateState,\n coordinate: Ref<Rect | undefined>,\n coordinateStyles: Ref<CSSProperties>,\n) {\n const { contentEl, base, active } = state;\n\n const isRtl = ref(false);\n\n /* Content Limitations */\n const [minWidth, minHeight, maxWidth, maxHeight] = (\n ['minWidth', 'minHeight', 'maxWidth', 'maxHeight'] as const\n ).map((key) => {\n return computed(() => {\n const val = parseFloat(props[key]!);\n return isNaN(val) ? Infinity : val;\n });\n });\n\n /* Offset */\n const offset = computed(() => {\n if (Array.isArray(props.offset)) {\n return props.offset;\n }\n if (typeof props.offset === 'string') {\n const offset = props.offset.split(' ').map(parseFloat);\n if (offset.length < 2) offset.push(0);\n return offset;\n }\n return typeof props.offset === 'number' ? [props.offset, 0] : [0, 0];\n });\n\n /* Viewport Margin */\n const viewportMargin = computed(() => {\n if (Array.isArray(props.viewportMargin)) {\n return props.viewportMargin;\n }\n if (typeof props.viewportMargin === 'string') {\n const offset = props.viewportMargin.split(' ').map(parseFloat);\n if (offset.length < 2) offset.push(0);\n return offset;\n }\n return typeof props.viewportMargin === 'number'\n ? [props.viewportMargin, 0]\n : [0, 0];\n });\n\n /* Observing Update */\n let observe = false;\n const resizeObserver = new ResizeObserver(() => {\n if (observe) updateCoordinate();\n });\n\n watch(\n [state.base, state.contentEl],\n ([neoBaseEl, neoContentEl], [oldBaseEl, oldContentEl]) => {\n if (oldBaseEl && !Array.isArray(oldBaseEl) && oldBaseEl.nodeType === 1)\n resizeObserver.unobserve(oldBaseEl);\n if (neoBaseEl && !Array.isArray(neoBaseEl) && neoBaseEl.nodeType === 1)\n resizeObserver.observe(neoBaseEl);\n\n if (oldContentEl) resizeObserver.unobserve(oldContentEl);\n if (neoContentEl) resizeObserver.observe(neoContentEl);\n },\n { immediate: true },\n );\n\n onScopeDispose(() => {\n resizeObserver.disconnect();\n });\n\n function getIgnoreInsetRect(el: HTMLElement) {\n const rect = getBoundingPureRect(el);\n rect.x -= parseFloat(el.style.left || '0');\n rect.y -= parseFloat(el.style.top || '0');\n return rect;\n }\n\n function updateCoordinate(): any {\n observe = false;\n const $base = base.value;\n const $content = contentEl.value;\n requestAnimationFrame(() => {\n requestAnimationFrame(() => (observe = true));\n });\n\n if (!$base || !$content) return;\n\n const baseRect = Array.isArray($base)\n ? new MutableRect({\n x: $base?.[0] ?? 0,\n y: $base?.[1] ?? 0,\n width: 0,\n height: 0,\n })\n : $base.getBoundingClientRect();\n const contentRect = getIgnoreInsetRect($content);\n const scrollParents = getScrollParents($content);\n\n if (scrollParents.length < 1) {\n scrollParents.push(document.documentElement);\n }\n\n /**\n * Viewport area\n */\n const viewport = scrollParents.reduce<MutableRect>(\n (box: MutableRect | undefined, el) => {\n const rect = el.getBoundingClientRect();\n const scrollBox = new MutableRect({\n x: el === document.documentElement ? 0 : rect.x,\n y: el === document.documentElement ? 0 : rect.y,\n width: el.clientWidth,\n height: el.clientHeight,\n });\n\n if (box) {\n return new MutableRect({\n x: Math.max(box.left, scrollBox.left),\n y: Math.max(box.top, scrollBox.top),\n width:\n Math.min(box.right, scrollBox.right) -\n Math.max(box.left, scrollBox.left),\n height:\n Math.min(box.bottom, scrollBox.bottom) -\n Math.max(box.top, scrollBox.top),\n });\n }\n return scrollBox;\n },\n undefined!,\n );\n viewport.x += viewportMargin.value[0];\n viewport.y += viewportMargin.value[1];\n viewport.width -= viewportMargin.value[0] * 2;\n viewport.height -= viewportMargin.value[1] * 2;\n\n const { preferredAnchor, preferredOrigin } = $computed(() => {\n const location = `${props.position} ${props.align}` as Anchor;\n const parsedAnchor = parseAnchor(location, false);\n const parsedOrigin =\n props.origin === 'overlap'\n ? parsedAnchor\n : props.origin === 'auto'\n ? flipSide(parsedAnchor)\n : parseAnchor(props.origin, false);\n\n // Some combinations of props may produce an invalid origin\n if (\n parsedAnchor.side === parsedOrigin.side &&\n parsedAnchor.align === flipAlign(parsedOrigin).align\n ) {\n return {\n preferredAnchor: flipCorner(parsedAnchor),\n preferredOrigin: flipCorner(parsedOrigin),\n };\n } else {\n return {\n preferredAnchor: parsedAnchor,\n preferredOrigin: parsedOrigin,\n };\n }\n });\n\n let placement = {\n anchor: preferredAnchor.value,\n origin: preferredOrigin.value,\n };\n\n function checkOverflow(_placement: typeof placement) {\n const box = new MutableRect(contentRect);\n const targetPoint = anchorToPoint(_placement.anchor, baseRect);\n const contentPoint = anchorToPoint(_placement.origin, box);\n\n let { x, y } = getOffset(targetPoint, contentPoint);\n\n switch (_placement.anchor.side) {\n case 'top':\n y -= offset.value[0];\n break;\n case 'bottom':\n y += offset.value[0];\n break;\n case 'left':\n x -= offset.value[0];\n break;\n case 'right':\n x += offset.value[0];\n break;\n }\n\n switch (_placement.anchor.align) {\n case 'top':\n y -= offset.value[1];\n break;\n case 'bottom':\n y += offset.value[1];\n break;\n case 'left':\n x -= offset.value[1];\n break;\n case 'right':\n x += offset.value[1];\n break;\n }\n\n box.x += x;\n box.y += y;\n\n box.width = Math.min(box.width, maxWidth.value);\n box.height = Math.min(box.height, maxHeight.value);\n\n const overflows = getOverflow(box, viewport);\n\n return { overflows, x, y };\n }\n\n let x = 0;\n let y = 0;\n const available = { x: 0, y: 0 };\n const flipped = { x: false, y: false };\n let resets = -1;\n while (true) {\n if (resets++ > 10) {\n break;\n }\n\n const { x: _x, y: _y, overflows } = checkOverflow(placement);\n\n x += _x;\n y += _y;\n\n contentRect.x += _x;\n contentRect.y += _y;\n\n // flip\n {\n const axis = getAxis(placement.anchor);\n const hasOverflowX = overflows.x.before || overflows.x.after;\n const hasOverflowY = overflows.y.before || overflows.y.after;\n\n let reset = false;\n ['x', 'y'].forEach((key) => {\n if (\n (key === 'x' && hasOverflowX && !flipped.x) ||\n (key === 'y' && hasOverflowY && !flipped.y)\n ) {\n const newPlacement = {\n anchor: { ...placement.anchor },\n origin: { ...placement.origin },\n };\n const flip =\n key === 'x'\n ? axis === 'y'\n ? flipAlign\n : flipSide\n : axis === 'y'\n ? flipSide\n : flipAlign;\n newPlacement.anchor = flip(newPlacement.anchor);\n newPlacement.origin = flip(newPlacement.origin);\n const { overflows: newOverflows } = checkOverflow(newPlacement);\n if (\n (newOverflows[key].before <= overflows[key].before &&\n newOverflows[key].after <= overflows[key].after) ||\n newOverflows[key].before + newOverflows[key].after <\n (overflows[key].before + overflows[key].after) / 2\n ) {\n placement = newPlacement;\n reset = flipped[key] = true;\n }\n }\n });\n if (reset) continue;\n }\n\n // shift\n if (overflows.x.before) {\n x += overflows.x.before;\n contentRect.x += overflows.x.before;\n }\n if (overflows.x.after) {\n x -= overflows.x.after;\n contentRect.x -= overflows.x.after;\n }\n if (overflows.y.before) {\n y += overflows.y.before;\n contentRect.y += overflows.y.before;\n }\n if (overflows.y.after) {\n y -= overflows.y.after;\n contentRect.y -= overflows.y.after;\n }\n\n // size\n {\n const overflows = getOverflow(contentRect, viewport);\n available.x = viewport.width - overflows.x.before - overflows.x.after;\n available.y = viewport.height - overflows.y.before - overflows.y.after;\n\n x += overflows.x.before;\n contentRect.x += overflows.x.before;\n y += overflows.y.before;\n contentRect.y += overflows.y.before;\n }\n\n break;\n }\n\n const axis = getAxis(placement.anchor);\n\n Object.assign(coordinateStyles.value, {\n '--y-levitation-anchor-origin': `${placement.anchor.side} ${placement.anchor.align}`,\n transformOrigin: `${placement.origin.side} ${placement.origin.align}`,\n top: toStyleSizeValue(pixelRound(y)),\n left: isRtl.value ? undefined : toStyleSizeValue(pixelRound(x)),\n right: isRtl.value ? toStyleSizeValue(pixelRound(-x)) : undefined,\n minWidth: toStyleSizeValue(\n axis === 'y'\n ? Math.min(minWidth.value, baseRect.width)\n : minWidth.value,\n ),\n maxWidth: toStyleSizeValue(\n pixelCeil(\n clamp(\n available.x,\n minWidth.value === Infinity ? 0 : minWidth.value,\n maxWidth.value,\n ),\n ),\n ),\n maxHeight: toStyleSizeValue(\n pixelCeil(\n clamp(\n available.y,\n minHeight.value === Infinity ? 0 : minHeight.value,\n maxHeight.value,\n ),\n ),\n ),\n });\n\n return {\n available,\n contentRect,\n };\n }\n\n watch(\n () => [\n props.offset,\n props.minWidth,\n props.minHeight,\n props.maxWidth,\n props.maxHeight,\n ],\n () => updateCoordinate(),\n );\n\n nextTick(() => {\n const result = updateCoordinate();\n if (!result) return;\n const { available, contentRect } = result;\n if (contentRect.height > available.y) {\n requestAnimationFrame(() => {\n updateCoordinate();\n requestAnimationFrame(() => {\n updateCoordinate();\n });\n });\n }\n });\n\n return {\n updateCoordinate,\n };\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.mjs","names":[],"sources":["../../../src/composables/coordinate/types.ts"],"sourcesContent":["import type { Ref } from \"vue\";\
|
|
1
|
+
{"version":3,"file":"types.mjs","names":[],"sources":["../../../src/composables/coordinate/types.ts"],"sourcesContent":["import type { Ref } from \"vue\";\n\nexport interface CoordinateState {\n contentEl: Ref<HTMLElement | undefined>;\n base: Ref<HTMLElement | [x: number, y: number] | undefined>;\n active: Ref<boolean>;\n}\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"point.mjs","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';\
|
|
1
|
+
{"version":3,"file":"point.mjs","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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factory.mjs","names":["reactive","watch","constructAdapter","options","locale","instance","adapter","value","formats"],"sources":["../../../src/composables/date/factory.ts"],"sourcesContent":["import { reactive, watch } from 'vue';\
|
|
1
|
+
{"version":3,"file":"factory.mjs","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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","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';\
|
|
1
|
+
{"version":3,"file":"index.mjs","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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setting.mjs","names":["localeCodesMap","mergeDeep","YuyeonDateAdapter","configureOptions","options","_options","adapter","locale"],"sources":["../../../src/composables/date/setting.ts"],"sourcesContent":["import { localeCodesMap } from '@/i18n/config';\
|
|
1
|
+
{"version":3,"file":"setting.mjs","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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.mjs","names":[],"sources":["../../../src/composables/date/types.ts"],"sourcesContent":["import type { DateAdapter } from '@/util/date/types';\
|
|
1
|
+
{"version":3,"file":"types.mjs","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":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","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 {\
|
|
1
|
+
{"version":3,"file":"index.mjs","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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"share.mjs","names":["YUYEON_DEFAULTS_KEY","Symbol","for"],"sources":["../../../src/composables/defaults/share.ts"],"sourcesContent":["import type { InjectionKey, Ref } from 'vue';\
|
|
1
|
+
{"version":3,"file":"share.mjs","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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.mjs","names":[],"sources":["../../../src/composables/defaults/types.ts"],"sourcesContent":["import { type MaybeRef } from 'vue';\
|
|
1
|
+
{"version":3,"file":"types.mjs","names":[],"sources":["../../../src/composables/defaults/types.ts"],"sourcesContent":["import { type MaybeRef } from 'vue';\n\nexport type DefaultsModuleInstance = undefined | {\n [key: string]: any;\n}\n\nexport type DefaultsOptions = Partial<DefaultsModuleInstance>;\n\nexport type ProvideDefaultsOptions = {\n disabled?: MaybeRef<boolean | undefined>\n reset?: MaybeRef<number | string | undefined>\n root?: MaybeRef<boolean | string | undefined>\n scoped?: MaybeRef<boolean | undefined>\n}\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dimension.mjs","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';\
|
|
1
|
+
{"version":3,"file":"dimension.mjs","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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"focus.mjs","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';\
|
|
1
|
+
{"version":3,"file":"focus.mjs","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,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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form.mjs","names":["computed","inject","provide","ref","shallowRef","toRef","propsFactory","useModelDuplex","YUYEON_FORM_KEY","Symbol","for","pressFormPropsOptions","readonly","Boolean","disabled","loading","modelValue","type","default","validateOn","String","createForm","props","model","isValidating","inputs","errors","isReadonly","isDisabled","isLoading","validate","results","valid","value","item","itemErrors","length","push","id","vnode","exposed","component","register","input","isError","unregister","filter","update","found","find","provideInstance","isValid","useForm"],"sources":["../../src/composables/form.ts"],"sourcesContent":["import {\
|
|
1
|
+
{"version":3,"file":"form.mjs","names":["computed","inject","provide","ref","shallowRef","toRef","propsFactory","useModelDuplex","YUYEON_FORM_KEY","Symbol","for","pressFormPropsOptions","readonly","Boolean","disabled","loading","modelValue","type","default","validateOn","String","createForm","props","model","isValidating","inputs","errors","isReadonly","isDisabled","isLoading","validate","results","valid","value","item","itemErrors","length","push","id","vnode","exposed","component","register","input","isError","unregister","filter","update","found","find","provideInstance","isValid","useForm"],"sources":["../../src/composables/form.ts"],"sourcesContent":["import {\n type ComputedRef,\n type InjectionKey,\n type PropType,\n type Ref,\n type VNode,\n computed,\n inject,\n provide,\n ref,\n shallowRef,\n toRef,\n} from 'vue';\n\nimport { type EventProp, propsFactory } from '@/util/component';\n\nimport { useModelDuplex } from './communication';\nimport { type ValidationProps } from './validation';\n\nexport interface FormInput {\n id: number | string;\n vnode: VNode;\n validate: () => Promise<any[]>;\n isError: boolean | undefined | null;\n errors: any[];\n}\n\nexport interface InputValidationResult {\n id: number | string;\n vnode: VNode;\n exposed: any;\n errors: any[];\n}\n\nexport interface FormValidationResult {\n valid: boolean;\n errors: InputValidationResult[];\n}\n\nexport interface SubmitEventPromise\n extends SubmitEvent,\n Promise<FormValidationResult> {}\n\nexport interface FormInstance {\n register: (input: {\n id: number | string;\n vnode: VNode;\n validate: () => Promise<any[]>;\n resetValidation: () => Promise<void>;\n }) => void;\n unregister: (id: number | string) => void;\n update: (\n id: number | string,\n isError: boolean | undefined | null,\n errors: any[],\n ) => void;\n inputs: Ref<FormInput[]>;\n isDisabled: ComputedRef<boolean>;\n isReadonly: ComputedRef<boolean>;\n isLoading: ComputedRef<boolean>;\n isValidating: Ref<boolean>;\n isValid: Ref<boolean | null>;\n validateOn: Ref<FormProps['validateOn']>;\n}\n\nexport const YUYEON_FORM_KEY: InjectionKey<FormInstance> =\n Symbol.for('yuyeon.form');\n\nexport interface FormProps {\n readonly: boolean;\n disabled: boolean;\n loading: boolean;\n modelValue: boolean | null;\n 'onUpdate:modelValue': EventProp<[boolean | null]> | undefined;\n validateOn: ValidationProps['validateOn'];\n}\n\nexport const pressFormPropsOptions = propsFactory(\n {\n readonly: Boolean,\n disabled: Boolean,\n loading: Boolean,\n modelValue: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n validateOn: {\n type: String as PropType<ValidationProps['validateOn']>,\n default: 'input',\n },\n },\n 'form',\n);\n\nexport function createForm(props: FormProps) {\n const model = useModelDuplex(props);\n const isValidating = shallowRef(false);\n const inputs = ref<FormInput[]>([]);\n const errors = ref<InputValidationResult[]>([]);\n\n const isReadonly = computed(() => props.readonly);\n const isDisabled = computed(() => props.disabled);\n const isLoading = computed(() => props.loading);\n\n async function validate() {\n const results: InputValidationResult[] = [];\n let valid = true;\n\n errors.value = [];\n isValidating.value = true;\n\n for (const item of inputs.value) {\n const itemErrors = await item.validate();\n\n if (itemErrors.length > 0) {\n valid = false;\n\n results.push({\n id: item.id,\n vnode: item.vnode,\n exposed: item.vnode.component?.exposed,\n errors: itemErrors,\n });\n }\n }\n\n errors.value = results;\n isValidating.value = false;\n\n return { valid, errors: errors.value };\n }\n\n function register(input: {\n id: number | string;\n vnode: VNode;\n validate: () => Promise<any[]>;\n }) {\n const { id, validate, vnode } = input;\n inputs.value.push({\n id,\n validate,\n vnode,\n isError: null,\n errors: [],\n });\n }\n\n function unregister(id: number | string) {\n inputs.value = inputs.value.filter((input) => input.id !== id);\n }\n\n function update(\n id: number | string,\n isError: boolean | undefined | null,\n errors: any[],\n ) {\n const found = inputs.value.find((item) => item.id === id);\n\n if (!found) return;\n\n found.isError = isError;\n found.errors = errors;\n }\n\n const provideInstance: FormInstance = {\n inputs,\n isDisabled,\n isReadonly,\n isLoading,\n isValid: model,\n isValidating,\n register,\n unregister,\n update,\n validateOn: toRef(props, 'validateOn'),\n };\n\n provide(YUYEON_FORM_KEY, provideInstance);\n\n return {\n inputs,\n errors,\n isValid: model,\n isDisabled,\n isReadonly,\n isLoading,\n isValidating,\n validate,\n };\n}\n\nexport function useForm() {\n return inject(YUYEON_FORM_KEY, null);\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["inject","provide","createLocaleModule","createRtlModule","createRtlProvideValue","YUYEON_I18N_KEY","createI18nModule","options","localeModule","rtlModule","useI18n","i18n","Error","provideI18n","props","locale","getContext","rtl","state"],"sources":["../../../src/composables/i18n/index.ts"],"sourcesContent":["import { inject, provide } from 'vue';\
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["inject","provide","createLocaleModule","createRtlModule","createRtlProvideValue","YUYEON_I18N_KEY","createI18nModule","options","localeModule","rtlModule","useI18n","i18n","Error","provideI18n","props","locale","getContext","rtl","state"],"sources":["../../../src/composables/i18n/index.ts"],"sourcesContent":["import { inject, provide } from 'vue';\n\nimport type { LocaleModule, LocaleOptions } from '@/i18n/types';\n\nimport { createLocaleModule } from './locale';\nimport {\n type RtlModule,\n type RtlOptions,\n type RtlProps,\n createRtlModule,\n createRtlProvideValue,\n} from './rtl';\nimport { YUYEON_I18N_KEY } from './share';\n\nexport function createI18nModule(options?: LocaleOptions & RtlOptions) {\n const localeModule = createLocaleModule(options);\n const rtlModule = createRtlModule(localeModule, options);\n\n return {\n localeModule,\n rtlModule,\n };\n}\n\nexport function useI18n(): LocaleModule & RtlModule {\n const i18n = inject<any>(YUYEON_I18N_KEY);\n if (!i18n) throw new Error('【yuyeon】 Not found provided \"I18nModule\"');\n return i18n;\n}\n\nexport function provideI18n(props: LocaleOptions & RtlProps) {\n const i18n = inject<any>(YUYEON_I18N_KEY);\n if (!i18n) throw new Error('【yuyeon】 Not found provided \"I18nModule\"');\n\n const locale = i18n.getContext(props);\n const rtl = createRtlProvideValue(locale, i18n.rtl, props);\n\n const state = {\n ...locale,\n ...rtl,\n };\n provide(YUYEON_I18N_KEY, state);\n\n return state;\n}\n"],"mappings":"AAAA,SAASA,MAAM,EAAEC,OAAO,QAAQ,KAAK;AAAC,SAI7BC,kBAAkB;AAAA,SAKzBC,eAAe,EACfC,qBAAqB;AAAA,SAEdC,eAAe;AAExB,OAAO,SAASC,gBAAgBA,CAACC,OAAoC,EAAE;EACrE,MAAMC,YAAY,GAAGN,kBAAkB,CAACK,OAAO,CAAC;EAChD,MAAME,SAAS,GAAGN,eAAe,CAACK,YAAY,EAAED,OAAO,CAAC;EAExD,OAAO;IACLC,YAAY;IACZC;EACF,CAAC;AACH;AAEA,OAAO,SAASC,OAAOA,CAAA,EAA6B;EAClD,MAAMC,IAAI,GAAGX,MAAM,CAAMK,eAAe,CAAC;EACzC,IAAI,CAACM,IAAI,EAAE,MAAM,IAAIC,KAAK,CAAC,0CAA0C,CAAC;EACtE,OAAOD,IAAI;AACb;AAEA,OAAO,SAASE,WAAWA,CAACC,KAA+B,EAAE;EAC3D,MAAMH,IAAI,GAAGX,MAAM,CAAMK,eAAe,CAAC;EACzC,IAAI,CAACM,IAAI,EAAE,MAAM,IAAIC,KAAK,CAAC,0CAA0C,CAAC;EAEtE,MAAMG,MAAM,GAAGJ,IAAI,CAACK,UAAU,CAACF,KAAK,CAAC;EACrC,MAAMG,GAAG,GAAGb,qBAAqB,CAACW,MAAM,EAAEJ,IAAI,CAACM,GAAG,EAAEH,KAAK,CAAC;EAE1D,MAAMI,KAAK,GAAG;IACZ,GAAGH,MAAM;IACT,GAAGE;EACL,CAAC;EACDhB,OAAO,CAACI,eAAe,EAAEa,KAAK,CAAC;EAE/B,OAAOA,KAAK;AACd"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locale.mjs","names":["constructYuyeonI18nAdapter","createLocaleModule","options","adapter","name"],"sources":["../../../src/composables/i18n/locale.ts"],"sourcesContent":["import { constructYuyeonI18nAdapter } from '../../i18n/built-in';\
|
|
1
|
+
{"version":3,"file":"locale.mjs","names":["constructYuyeonI18nAdapter","createLocaleModule","options","adapter","name"],"sources":["../../../src/composables/i18n/locale.ts"],"sourcesContent":["import { constructYuyeonI18nAdapter } from '../../i18n/built-in';\nimport { LocaleOptions } from '../../i18n/types';\n\nexport function createLocaleModule(options?: LocaleOptions) {\n return options?.adapter && options.adapter?.name\n ? options.adapter\n : constructYuyeonI18nAdapter(options);\n}\n"],"mappings":"SAASA,0BAA0B;AAGnC,OAAO,SAASC,kBAAkBA,CAACC,OAAuB,EAAE;EAC1D,OAAOA,OAAO,EAAEC,OAAO,IAAID,OAAO,CAACC,OAAO,EAAEC,IAAI,GAC5CF,OAAO,CAACC,OAAO,GACfH,0BAA0B,CAACE,OAAO,CAAC;AACzC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rtl.mjs","names":["computed","inject","ref","defaultRtl","YUYEON_I18N_KEY","YUYEON_RTL_KEY","Symbol","for","createRtlModule","localeModule","options","rtlOptions","rtl","value","locale","rtlClasses","createRtlProvideValue","props","useRtl","i18n","Error"],"sources":["../../../src/composables/i18n/rtl.ts"],"sourcesContent":["import { computed, inject, ref } from 'vue';\
|
|
1
|
+
{"version":3,"file":"rtl.mjs","names":["computed","inject","ref","defaultRtl","YUYEON_I18N_KEY","YUYEON_RTL_KEY","Symbol","for","createRtlModule","localeModule","options","rtlOptions","rtl","value","locale","rtlClasses","createRtlProvideValue","props","useRtl","i18n","Error"],"sources":["../../../src/composables/i18n/rtl.ts"],"sourcesContent":["import { computed, inject, ref } from 'vue';\nimport type { Ref } from 'vue';\n\nimport { defaultRtl } from '../../i18n/config';\nimport { LocaleModule } from '../../i18n/types';\nimport { YUYEON_I18N_KEY } from './share';\n\nexport const YUYEON_RTL_KEY = Symbol.for('yuyeon.rtl');\n\nexport interface RtlOptions {\n rtlOptions: Record<string, boolean>;\n}\n\nexport interface RtlProps {\n rtl?: boolean;\n}\n\nexport interface RtlModule {\n rtl: Ref<boolean>;\n rtlOptions: Ref<Record<string, boolean>>;\n rtlClasses: Ref<string>;\n}\n\nexport function createRtlModule(\n localeModule: LocaleModule,\n options?: RtlOptions,\n): RtlModule {\n const rtlOptions = ref<Record<string, boolean>>(\n options?.rtlOptions ?? defaultRtl,\n );\n const rtl = computed(() => {\n return rtlOptions.value[localeModule.locale.value] ?? false;\n });\n const rtlClasses = computed(() => `y-i18n--${rtl.value ? 'rtl' : 'ltr'}`);\n\n return {\n rtlOptions,\n rtl,\n rtlClasses,\n };\n}\n\nexport function createRtlProvideValue(\n localeModule: LocaleModule,\n rtlOptions: RtlModule['rtlOptions'],\n props: RtlProps,\n): RtlModule {\n const rtl = computed(\n () => props.rtl ?? rtlOptions.value[localeModule.locale.value] ?? false,\n );\n const rtlClasses = computed(() => `y-i18n--${rtl.value ? 'rtl' : 'ltr'}`);\n\n return {\n rtl,\n rtlOptions,\n rtlClasses,\n };\n}\n\nexport function useRtl() {\n const i18n = inject<any>(YUYEON_I18N_KEY);\n if (!i18n) throw new Error('Not found provided \"I18nModule\" for rtl');\n return {\n rtl: i18n.rtl,\n rtlClasses: i18n.rtlClasses,\n };\n}\n"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,MAAM,EAAEC,GAAG,QAAQ,KAAK;AAAC,SAGnCC,UAAU;AAAA,SAEVC,eAAe;AAExB,OAAO,MAAMC,cAAc,GAAGC,MAAM,CAACC,GAAG,CAAC,YAAY,CAAC;AAgBtD,OAAO,SAASC,eAAeA,CAC7BC,YAA0B,EAC1BC,OAAoB,EACT;EACX,MAAMC,UAAU,GAAGT,GAAG,CACpBQ,OAAO,EAAEC,UAAU,IAAIR,UACzB,CAAC;EACD,MAAMS,GAAG,GAAGZ,QAAQ,CAAC,MAAM;IACzB,OAAOW,UAAU,CAACE,KAAK,CAACJ,YAAY,CAACK,MAAM,CAACD,KAAK,CAAC,IAAI,KAAK;EAC7D,CAAC,CAAC;EACF,MAAME,UAAU,GAAGf,QAAQ,CAAC,MAAO,WAAUY,GAAG,CAACC,KAAK,GAAG,KAAK,GAAG,KAAM,EAAC,CAAC;EAEzE,OAAO;IACLF,UAAU;IACVC,GAAG;IACHG;EACF,CAAC;AACH;AAEA,OAAO,SAASC,qBAAqBA,CACnCP,YAA0B,EAC1BE,UAAmC,EACnCM,KAAe,EACJ;EACX,MAAML,GAAG,GAAGZ,QAAQ,CAClB,MAAMiB,KAAK,CAACL,GAAG,IAAID,UAAU,CAACE,KAAK,CAACJ,YAAY,CAACK,MAAM,CAACD,KAAK,CAAC,IAAI,KACpE,CAAC;EACD,MAAME,UAAU,GAAGf,QAAQ,CAAC,MAAO,WAAUY,GAAG,CAACC,KAAK,GAAG,KAAK,GAAG,KAAM,EAAC,CAAC;EAEzE,OAAO;IACLD,GAAG;IACHD,UAAU;IACVI;EACF,CAAC;AACH;AAEA,OAAO,SAASG,MAAMA,CAAA,EAAG;EACvB,MAAMC,IAAI,GAAGlB,MAAM,CAAMG,eAAe,CAAC;EACzC,IAAI,CAACe,IAAI,EAAE,MAAM,IAAIC,KAAK,CAAC,yCAAyC,CAAC;EACrE,OAAO;IACLR,GAAG,EAAEO,IAAI,CAACP,GAAG;IACbG,UAAU,EAAEI,IAAI,CAACJ;EACnB,CAAC;AACH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"share.mjs","names":["YUYEON_I18N_KEY","Symbol","for"],"sources":["../../../src/composables/i18n/share.ts"],"sourcesContent":["export const YUYEON_I18N_KEY = Symbol.for('yuyeon.i18n');\
|
|
1
|
+
{"version":3,"file":"share.mjs","names":["YUYEON_I18N_KEY","Symbol","for"],"sources":["../../../src/composables/i18n/share.ts"],"sourcesContent":["export const YUYEON_I18N_KEY = Symbol.for('yuyeon.i18n');\n"],"mappings":"AAAA,OAAO,MAAMA,eAAe,GAAGC,MAAM,CAACC,GAAG,CAAC,aAAa,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icon.mjs","names":["computed","h","inject","mergeProps","unref","builtSet","mergeDeep","defineComponent","propsFactory","IconPropOption","String","Function","Object","Array","IconValue","pressIconPropsOptions","icon","type","tag","required","YComponentIcon","name","props","setup","_ref","slots","Icon","_createVNode","_Fragment","iconProps","component","default","YSvgIcon","inheritAttrs","_ref2","attrs","isArray","map","path","YUYEON_ICON_KEY","Symbol","for","createIconModule","options","defaultSet","sets","svg","aliases","useIcon","iconProp","iconModule","Error","iconData","iconMeta","alias","trim","startsWith","slice","iconValue","iconSetName","keys","find","setName","iconName","length","iconSet","text","DOMParser","parseFromString","svgNode","querySelector","mounted","childNodes","forEach","child","$el","appendChild","render","hasAttributes","i","attributes","attr","item","value","node"],"sources":["../../src/composables/icon.tsx"],"sourcesContent":["import {\r\n type HTMLAttributes,\r\n type InjectionKey,\r\n type PropType,\r\n type Ref,\r\n type SVGAttributes,\r\n computed,\r\n h,\r\n inject,\r\n mergeProps,\r\n unref,\r\n} from 'vue';\r\n\r\nimport { builtSet } from '@/components/icons';\r\nimport type { JSXComponent } from '@/types';\r\nimport { mergeDeep } from '@/util/common';\r\nimport { defineComponent } from '@/util/component/component';\r\nimport { propsFactory } from '@/util/component/props';\r\n\r\ntype IconComponent =\r\n | JSXComponent<IconProps>\r\n | JSXComponent<SVGAttributes | HTMLAttributes>;\r\n\r\nexport type IconValue =\r\n | string\r\n | (string | [path: string, opacity: number])[]\r\n | IconComponent\r\n | { component: JSXComponent; props?: any }\r\n | { alias: string; iconProps?: any };\r\n\r\nexport const IconPropOption = [\r\n String,\r\n Function,\r\n Object,\r\n Array,\r\n] as PropType<IconValue>;\r\n\r\ntype IconProps = {\r\n tag: string;\r\n icon?: IconValue;\r\n disabled?: Boolean;\r\n};\r\n\r\nexport interface IconSet {\r\n component: IconComponent;\r\n}\r\n\r\nexport const IconValue = [\r\n String,\r\n Object,\r\n Array,\r\n Function,\r\n] as PropType<IconValue>;\r\n\r\nexport type IconModuleOptions = {\r\n defaultSet?: string;\r\n sets?: Record<string, IconSet>;\r\n aliases?: Partial<Record<string, any>>;\r\n};\r\n\r\nexport const pressIconPropsOptions = propsFactory(\r\n {\r\n icon: {\r\n type: IconValue,\r\n },\r\n tag: {\r\n type: String,\r\n required: true,\r\n },\r\n },\r\n 'icon',\r\n);\r\n\r\nexport const YComponentIcon = defineComponent({\r\n name: 'YComponentIcon',\r\n props: pressIconPropsOptions(),\r\n setup(props, { slots }) {\r\n return () => {\r\n const icon = props.icon as unknown;\r\n let Icon: JSXComponent = () => <></>;\r\n let iconProps: any = {};\r\n if (icon instanceof Object) {\r\n Icon = icon as JSXComponent;\r\n if ('component' in icon) {\r\n Icon = icon.component as JSXComponent;\r\n iconProps = (icon as any)?.props;\r\n }\r\n }\r\n return (\r\n <props.tag>\r\n {props.icon ? <Icon {...mergeProps(iconProps)} /> : slots.default?.()}\r\n </props.tag>\r\n );\r\n };\r\n },\r\n});\r\nexport type YComponentIcon = InstanceType<typeof YComponentIcon>;\r\n\r\nexport const YSvgIcon = defineComponent({\r\n name: 'YSvgIcon',\r\n inheritAttrs: false,\r\n props: pressIconPropsOptions(),\r\n setup(props, { attrs }) {\r\n return () => {\r\n return (\r\n <props.tag {...attrs}>\r\n <svg\r\n class=\"y-icon__svg\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 24 24\"\r\n role=\"img\"\r\n aria-hidden=\"true\"\r\n >\r\n {Array.isArray(props.icon) ? (\r\n props.icon.map((path) =>\r\n Array.isArray(path) ? (\r\n <path d={path[0] as string} fill-opacity={path[1]}></path>\r\n ) : (\r\n <path d={path as string}></path>\r\n ),\r\n )\r\n ) : (\r\n <path d={props.icon as string}></path>\r\n )}\r\n </svg>\r\n </props.tag>\r\n );\r\n };\r\n },\r\n});\r\nexport type YSvgIcon = InstanceType<typeof YSvgIcon>;\r\n\r\nexport const YUYEON_ICON_KEY: InjectionKey<Required<IconModuleOptions>> =\r\n Symbol.for('yuyeon.icon');\r\n\r\nexport function createIconModule(options?: IconModuleOptions) {\r\n return mergeDeep(\r\n {\r\n defaultSet: 'built',\r\n sets: {\r\n svg: {\r\n component: YSvgIcon,\r\n },\r\n },\r\n aliases: {\r\n ...builtSet,\r\n },\r\n },\r\n options,\r\n ) as Required<IconModuleOptions>;\r\n}\r\n\r\ntype IconInstance = {\r\n component: IconComponent;\r\n icon?: IconValue;\r\n};\r\n\r\nexport function useIcon(iconProp: Ref<IconValue | undefined>) {\r\n const iconModule = inject(YUYEON_ICON_KEY);\r\n\r\n if (!iconModule) throw new Error('Not found provided \"IconModule\"');\r\n\r\n const iconData = computed<IconInstance>(() => {\r\n const iconMeta = unref(iconProp);\r\n\r\n if (!iconMeta) return { component: YComponentIcon };\r\n\r\n let icon: IconValue | undefined = iconMeta;\r\n\r\n if (\r\n typeof icon === 'object' &&\r\n 'alias' in icon &&\r\n typeof icon.alias === 'string'\r\n ) {\r\n icon = icon.alias;\r\n }\r\n\r\n if (typeof icon === 'string') {\r\n icon = icon.trim();\r\n\r\n if (icon.startsWith('$')) {\r\n icon = iconModule.aliases?.[icon.slice(1)];\r\n }\r\n }\r\n\r\n if (!icon) throw new Error(`Could not find aliased icon \"${iconMeta}\"`);\r\n\r\n if (Array.isArray(icon)) {\r\n return {\r\n component: YSvgIcon,\r\n icon,\r\n };\r\n } else if (typeof icon !== 'string') {\r\n const iconValue = unref(iconProp);\r\n if (\r\n iconValue &&\r\n typeof iconValue === 'object' &&\r\n 'iconProps' in iconValue\r\n ) {\r\n icon = {\r\n component:\r\n 'component' in icon ? icon.component : (icon as JSXComponent),\r\n props:\r\n 'props' in icon\r\n ? mergeDeep(icon.props, iconValue?.iconProps ?? {})\r\n : iconValue.iconProps,\r\n };\r\n }\r\n\r\n return {\r\n component: YComponentIcon,\r\n icon,\r\n };\r\n }\r\n\r\n const iconSetName = Object.keys(iconModule.sets).find(\r\n (setName) => typeof icon === 'string' && icon.startsWith(`${setName}:`),\r\n );\r\n\r\n const iconName = iconSetName ? icon.slice(iconSetName.length + 1) : icon;\r\n const iconSet = iconModule.sets[iconSetName ?? iconModule.defaultSet];\r\n\r\n if (!iconSet?.component && typeof icon === 'string') {\r\n const text = new DOMParser().parseFromString(icon, 'text/xml');\r\n const svgNode = text.querySelector('svg');\r\n if (svgNode) {\r\n return {\r\n component: YComponentIcon,\r\n icon: {\r\n mounted() {\r\n svgNode.childNodes.forEach((child) => {\r\n this.$el?.appendChild(child);\r\n });\r\n },\r\n render: function () {\r\n const attrs: any = {};\r\n if (svgNode.hasAttributes()) {\r\n for (let i = 0; i < svgNode.attributes.length; i += 1) {\r\n const attr = svgNode.attributes.item(i);\r\n if (attr) {\r\n attrs[`^${attr.name}`] = attr.value;\r\n }\r\n }\r\n }\r\n\r\n const node = h('svg', { ...attrs }, []);\r\n return node;\r\n },\r\n } as any,\r\n };\r\n }\r\n }\r\n\r\n return {\r\n icon: iconName,\r\n component: iconSet.component,\r\n };\r\n });\r\n\r\n return {\r\n iconData,\r\n };\r\n}\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"icon.mjs","names":["computed","h","inject","mergeProps","unref","builtSet","mergeDeep","defineComponent","propsFactory","IconPropOption","String","Function","Object","Array","IconValue","pressIconPropsOptions","icon","type","tag","required","YComponentIcon","name","props","setup","_ref","slots","Icon","_createVNode","_Fragment","iconProps","component","default","YSvgIcon","inheritAttrs","_ref2","attrs","isArray","map","path","YUYEON_ICON_KEY","Symbol","for","createIconModule","options","defaultSet","sets","svg","aliases","useIcon","iconProp","iconModule","Error","iconData","iconMeta","alias","trim","startsWith","slice","iconValue","iconSetName","keys","find","setName","iconName","length","iconSet","text","DOMParser","parseFromString","svgNode","querySelector","mounted","childNodes","forEach","child","$el","appendChild","render","hasAttributes","i","attributes","attr","item","value","node"],"sources":["../../src/composables/icon.tsx"],"sourcesContent":["import {\n type HTMLAttributes,\n type InjectionKey,\n type PropType,\n type Ref,\n type SVGAttributes,\n computed,\n h,\n inject,\n mergeProps,\n unref,\n} from 'vue';\n\nimport { builtSet } from '@/components/icons';\nimport type { JSXComponent } from '@/types';\nimport { mergeDeep } from '@/util/common';\nimport { defineComponent } from '@/util/component/component';\nimport { propsFactory } from '@/util/component/props';\n\ntype IconComponent =\n | JSXComponent<IconProps>\n | JSXComponent<SVGAttributes | HTMLAttributes>;\n\nexport type IconValue =\n | string\n | (string | [path: string, opacity: number])[]\n | IconComponent\n | { component: JSXComponent; props?: any }\n | { alias: string; iconProps?: any };\n\nexport const IconPropOption = [\n String,\n Function,\n Object,\n Array,\n] as PropType<IconValue>;\n\ntype IconProps = {\n tag: string;\n icon?: IconValue;\n disabled?: Boolean;\n};\n\nexport interface IconSet {\n component: IconComponent;\n}\n\nexport const IconValue = [\n String,\n Object,\n Array,\n Function,\n] as PropType<IconValue>;\n\nexport type IconModuleOptions = {\n defaultSet?: string;\n sets?: Record<string, IconSet>;\n aliases?: Partial<Record<string, any>>;\n};\n\nexport const pressIconPropsOptions = propsFactory(\n {\n icon: {\n type: IconValue,\n },\n tag: {\n type: String,\n required: true,\n },\n },\n 'icon',\n);\n\nexport const YComponentIcon = defineComponent({\n name: 'YComponentIcon',\n props: pressIconPropsOptions(),\n setup(props, { slots }) {\n return () => {\n const icon = props.icon as unknown;\n let Icon: JSXComponent = () => <></>;\n let iconProps: any = {};\n if (icon instanceof Object) {\n Icon = icon as JSXComponent;\n if ('component' in icon) {\n Icon = icon.component as JSXComponent;\n iconProps = (icon as any)?.props;\n }\n }\n return (\n <props.tag>\n {props.icon ? <Icon {...mergeProps(iconProps)} /> : slots.default?.()}\n </props.tag>\n );\n };\n },\n});\nexport type YComponentIcon = InstanceType<typeof YComponentIcon>;\n\nexport const YSvgIcon = defineComponent({\n name: 'YSvgIcon',\n inheritAttrs: false,\n props: pressIconPropsOptions(),\n setup(props, { attrs }) {\n return () => {\n return (\n <props.tag {...attrs}>\n <svg\n class=\"y-icon__svg\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n role=\"img\"\n aria-hidden=\"true\"\n >\n {Array.isArray(props.icon) ? (\n props.icon.map((path) =>\n Array.isArray(path) ? (\n <path d={path[0] as string} fill-opacity={path[1]}></path>\n ) : (\n <path d={path as string}></path>\n ),\n )\n ) : (\n <path d={props.icon as string}></path>\n )}\n </svg>\n </props.tag>\n );\n };\n },\n});\nexport type YSvgIcon = InstanceType<typeof YSvgIcon>;\n\nexport const YUYEON_ICON_KEY: InjectionKey<Required<IconModuleOptions>> =\n Symbol.for('yuyeon.icon');\n\nexport function createIconModule(options?: IconModuleOptions) {\n return mergeDeep(\n {\n defaultSet: 'built',\n sets: {\n svg: {\n component: YSvgIcon,\n },\n },\n aliases: {\n ...builtSet,\n },\n },\n options,\n ) as Required<IconModuleOptions>;\n}\n\ntype IconInstance = {\n component: IconComponent;\n icon?: IconValue;\n};\n\nexport function useIcon(iconProp: Ref<IconValue | undefined>) {\n const iconModule = inject(YUYEON_ICON_KEY);\n\n if (!iconModule) throw new Error('Not found provided \"IconModule\"');\n\n const iconData = computed<IconInstance>(() => {\n const iconMeta = unref(iconProp);\n\n if (!iconMeta) return { component: YComponentIcon };\n\n let icon: IconValue | undefined = iconMeta;\n\n if (\n typeof icon === 'object' &&\n 'alias' in icon &&\n typeof icon.alias === 'string'\n ) {\n icon = icon.alias;\n }\n\n if (typeof icon === 'string') {\n icon = icon.trim();\n\n if (icon.startsWith('$')) {\n icon = iconModule.aliases?.[icon.slice(1)];\n }\n }\n\n if (!icon) throw new Error(`Could not find aliased icon \"${iconMeta}\"`);\n\n if (Array.isArray(icon)) {\n return {\n component: YSvgIcon,\n icon,\n };\n } else if (typeof icon !== 'string') {\n const iconValue = unref(iconProp);\n if (\n iconValue &&\n typeof iconValue === 'object' &&\n 'iconProps' in iconValue\n ) {\n icon = {\n component:\n 'component' in icon ? icon.component : (icon as JSXComponent),\n props:\n 'props' in icon\n ? mergeDeep(icon.props, iconValue?.iconProps ?? {})\n : iconValue.iconProps,\n };\n }\n\n return {\n component: YComponentIcon,\n icon,\n };\n }\n\n const iconSetName = Object.keys(iconModule.sets).find(\n (setName) => typeof icon === 'string' && icon.startsWith(`${setName}:`),\n );\n\n const iconName = iconSetName ? icon.slice(iconSetName.length + 1) : icon;\n const iconSet = iconModule.sets[iconSetName ?? iconModule.defaultSet];\n\n if (!iconSet?.component && typeof icon === 'string') {\n const text = new DOMParser().parseFromString(icon, 'text/xml');\n const svgNode = text.querySelector('svg');\n if (svgNode) {\n return {\n component: YComponentIcon,\n icon: {\n mounted() {\n svgNode.childNodes.forEach((child) => {\n this.$el?.appendChild(child);\n });\n },\n render: function () {\n const attrs: any = {};\n if (svgNode.hasAttributes()) {\n for (let i = 0; i < svgNode.attributes.length; i += 1) {\n const attr = svgNode.attributes.item(i);\n if (attr) {\n attrs[`^${attr.name}`] = attr.value;\n }\n }\n }\n\n const node = h('svg', { ...attrs }, []);\n return node;\n },\n } as any,\n };\n }\n }\n\n return {\n icon: iconName,\n component: iconSet.component,\n };\n });\n\n return {\n iconData,\n };\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":[],"sources":["../../src/composables/index.ts"],"sourcesContent":["export * from './communication';\
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../src/composables/index.ts"],"sourcesContent":["export * from './communication';\nexport * from './date';\nexport * from './resize-observer';\nexport * from './component';\nexport * from './focus';\nexport * from './scope';\nexport * from './timing';\nexport * from './transition';\nexport * from './vue-router';\nexport * from './theme';\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layer-group.mjs","names":["computed","getCurrentInstance","onBeforeUnmount","unref","watch","useYuyeon","Y_LAYER_GROUP_CLASS_NAME","layerGroupState","WeakMap","useLayerGroup","props","vm","yuyeon","layerGroup","targetEl","document","body","rootEl","root","proxy","$el","refTarget","el","querySelector","nodeType","layerEl","createElement","className","appendChild","neo","old","has","get","delete","set","Set","add","immediate","getActiveLayers","activeLayers","currentGroup","value","forEach","ctx","active","isUnmounted","push","unregister"],"sources":["../../src/composables/layer-group.ts"],"sourcesContent":["import {\
|
|
1
|
+
{"version":3,"file":"layer-group.mjs","names":["computed","getCurrentInstance","onBeforeUnmount","unref","watch","useYuyeon","Y_LAYER_GROUP_CLASS_NAME","layerGroupState","WeakMap","useLayerGroup","props","vm","yuyeon","layerGroup","targetEl","document","body","rootEl","root","proxy","$el","refTarget","el","querySelector","nodeType","layerEl","createElement","className","appendChild","neo","old","has","get","delete","set","Set","add","immediate","getActiveLayers","activeLayers","currentGroup","value","forEach","ctx","active","isUnmounted","push","unregister"],"sources":["../../src/composables/layer-group.ts"],"sourcesContent":["import {\n type MaybeRef,\n computed,\n getCurrentInstance,\n onBeforeUnmount,\n unref,\n watch,\n} from 'vue';\nimport type { ComponentInternalInstance, Ref } from 'vue';\n\nimport { useYuyeon } from '@/index';\n\nexport const Y_LAYER_GROUP_CLASS_NAME = 'y-layer-group';\n\nconst layerGroupState = new WeakMap<HTMLElement, Set<any>>();\n\nexport function useLayerGroup(props: {\n layerGroup?: MaybeRef<string | Element | undefined>;\n}) {\n const vm = getCurrentInstance()!;\n const yuyeon = useYuyeon();\n\n const layerGroup = computed<HTMLElement>(() => {\n let targetEl: Element = document.body;\n const rootEl = vm.root.proxy?.$el;\n if (rootEl) {\n targetEl = rootEl;\n }\n const refTarget = unref(props.layerGroup);\n if (typeof refTarget === 'string') {\n const el = document.querySelector(refTarget);\n if (el) {\n targetEl = el;\n }\n }\n if (refTarget && (refTarget as Element).nodeType === 1) {\n targetEl = refTarget as Element;\n }\n //\n let layerEl = targetEl.querySelector(\n `:scope > .${Y_LAYER_GROUP_CLASS_NAME}`,\n );\n if (!layerEl) {\n layerEl = document.createElement('div');\n layerEl.className = Y_LAYER_GROUP_CLASS_NAME;\n targetEl.appendChild(layerEl);\n }\n return layerEl as HTMLElement;\n });\n\n watch(\n layerGroup,\n (neo, old) => {\n if (old && layerGroupState.has(old)) {\n layerGroupState.get(old)?.delete(vm);\n }\n if (!(layerGroupState.has(neo) && layerGroupState.get(neo))) {\n layerGroupState.set(neo, new Set());\n }\n layerGroupState.get(neo)?.add(vm);\n },\n { immediate: true },\n );\n\n function getActiveLayers() {\n const activeLayers: ComponentInternalInstance[] = [];\n const currentGroup = layerGroupState.get(layerGroup.value);\n currentGroup?.forEach((value) => {\n if (value?.ctx?.active && !value?.isUnmounted) {\n activeLayers.push(value);\n }\n });\n return activeLayers;\n }\n\n function unregister() {\n layerGroupState.get(layerGroup.value)?.delete(vm);\n }\n\n onBeforeUnmount(() => {\n unregister();\n });\n\n return { layerGroup, layerGroupState, getActiveLayers };\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.mjs","names":["provide","YUYEON_LAYOUT_KEY","Symbol","for","initLayoutSystem","register","unregister"],"sources":["../../src/composables/layout.ts"],"sourcesContent":["import { type InjectionKey, provide } from 'vue';\
|
|
1
|
+
{"version":3,"file":"layout.mjs","names":["provide","YUYEON_LAYOUT_KEY","Symbol","for","initLayoutSystem","register","unregister"],"sources":["../../src/composables/layout.ts"],"sourcesContent":["import { type InjectionKey, provide } from 'vue';\n\ndeclare function register(): void;\n\ninterface LayoutProvide {\n register: typeof register;\n unregister: (id: string) => void;\n}\n\nexport const YUYEON_LAYOUT_KEY: InjectionKey<LayoutProvide> =\n Symbol.for('yuyeon.layout');\n\nexport function initLayoutSystem() {\n provide(YUYEON_LAYOUT_KEY, {\n register: () => {\n return;\n },\n unregister: () => {\n return;\n },\n });\n}\n"],"mappings":"AAAA,SAA4BA,OAAO,QAAQ,KAAK;AAShD,OAAO,MAAMC,iBAA8C,GACzDC,MAAM,CAACC,GAAG,CAAC,eAAe,CAAC;AAE7B,OAAO,SAASC,gBAAgBA,CAAA,EAAG;EACjCJ,OAAO,CAACC,iBAAiB,EAAE;IACzBI,QAAQ,EAAEA,CAAA,KAAM;MACd;IACF,CAAC;IACDC,UAAU,EAAEA,CAAA,KAAM;MAChB;IACF;EACF,CAAC,CAAC;AACJ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-items.mjs","names":["computed","pressItemsPropsOptions","deepEqual","getPropertyFromItem","propsFactory","listItemsPropsOptions","itemKey","itemChildren","returnItem","Boolean","pressListItemsPropsOptions","refineListItems","props","items","ret","item","push","refineListItem","hide","disabled","text","itemText","value","children","Array","isArray","undefined","raw","useItems","toRefineItems","values","filter","v","some","map","found","find","toEmitItems","_ref","_ref2"],"sources":["../../src/composables/list-items.ts"],"sourcesContent":["import { type ExtractPropTypes, computed } from 'vue';\
|
|
1
|
+
{"version":3,"file":"list-items.mjs","names":["computed","pressItemsPropsOptions","deepEqual","getPropertyFromItem","propsFactory","listItemsPropsOptions","itemKey","itemChildren","returnItem","Boolean","pressListItemsPropsOptions","refineListItems","props","items","ret","item","push","refineListItem","hide","disabled","text","itemText","value","children","Array","isArray","undefined","raw","useItems","toRefineItems","values","filter","v","some","map","found","find","toEmitItems","_ref","_ref2"],"sources":["../../src/composables/list-items.ts"],"sourcesContent":["import { type ExtractPropTypes, computed } from 'vue';\n\nimport { pressItemsPropsOptions } from '@/abstract/items';\nimport { deepEqual, getPropertyFromItem } from '@/util/common';\nimport { propsFactory } from '@/util/component';\n\nexport interface ListItem<T = any> {\n value: any;\n text: string;\n hide: boolean;\n disabled: boolean;\n props: {\n [key: string]: any;\n value: any;\n text: string;\n };\n children?: ListItem<T>[];\n raw: T;\n}\n\nconst listItemsPropsOptions = {\n ...pressItemsPropsOptions({\n itemKey: 'value',\n itemChildren: false,\n }),\n returnItem: Boolean,\n};\n\ntype ListItemProps = ExtractPropTypes<typeof listItemsPropsOptions>;\n\nexport const pressListItemsPropsOptions = propsFactory(\n listItemsPropsOptions,\n 'list-items',\n);\n\nexport function refineListItems(\n props: Omit<ListItemProps, 'items'>,\n items: any[],\n) {\n const ret: ListItem[] = [];\n for (const item of items) {\n ret.push(refineListItem(props, item));\n }\n return ret;\n}\n\nexport function refineListItem(\n props: Omit<ListItemProps, 'items'>,\n item: any,\n): ListItem {\n const hide = !!item?.hide;\n const disabled = !!item?.disabled;\n const text = getPropertyFromItem(item, props.itemText, item);\n const value = props.returnItem\n ? item\n : getPropertyFromItem(item, props.itemKey, text);\n const children = getPropertyFromItem(item, props.itemChildren);\n\n return {\n value,\n text,\n hide,\n disabled,\n props: {\n value,\n text,\n },\n children: Array.isArray(children)\n ? refineListItems(props, children)\n : undefined,\n raw: item,\n };\n}\n\nexport function useItems(props: ListItemProps) {\n const items = computed(() => refineListItems(props, props.items));\n\n function toRefineItems(values: any[]) {\n return values\n .filter(\n (v) => v !== null || items.value.some((item) => item.value === null),\n )\n .map((v) => {\n const found = items.value.find((item) => deepEqual(v, item.value));\n return found ?? refineListItem(props, v);\n });\n }\n\n function toEmitItems(items: any[]) {\n return props.returnItem\n ? items.map(({ raw }) => raw)\n : items.map(({ value }) => value);\n }\n\n return {\n items,\n toEmitItems,\n toRefineItems,\n };\n}\n"],"mappings":"AAAA,SAAgCA,QAAQ,QAAQ,KAAK;AAAC,SAE7CC,sBAAsB;AAAA,SACtBC,SAAS,EAAEC,mBAAmB;AAAA,SAC9BC,YAAY;AAgBrB,MAAMC,qBAAqB,GAAG;EAC5B,GAAGJ,sBAAsB,CAAC;IACxBK,OAAO,EAAE,OAAO;IAChBC,YAAY,EAAE;EAChB,CAAC,CAAC;EACFC,UAAU,EAAEC;AACd,CAAC;AAID,OAAO,MAAMC,0BAA0B,GAAGN,YAAY,CACpDC,qBAAqB,EACrB,YACF,CAAC;AAED,OAAO,SAASM,eAAeA,CAC7BC,KAAmC,EACnCC,KAAY,EACZ;EACA,MAAMC,GAAe,GAAG,EAAE;EAC1B,KAAK,MAAMC,IAAI,IAAIF,KAAK,EAAE;IACxBC,GAAG,CAACE,IAAI,CAACC,cAAc,CAACL,KAAK,EAAEG,IAAI,CAAC,CAAC;EACvC;EACA,OAAOD,GAAG;AACZ;AAEA,OAAO,SAASG,cAAcA,CAC5BL,KAAmC,EACnCG,IAAS,EACC;EACV,MAAMG,IAAI,GAAG,CAAC,CAACH,IAAI,EAAEG,IAAI;EACzB,MAAMC,QAAQ,GAAG,CAAC,CAACJ,IAAI,EAAEI,QAAQ;EACjC,MAAMC,IAAI,GAAGjB,mBAAmB,CAACY,IAAI,EAAEH,KAAK,CAACS,QAAQ,EAAEN,IAAI,CAAC;EAC5D,MAAMO,KAAK,GAAGV,KAAK,CAACJ,UAAU,GAC1BO,IAAI,GACJZ,mBAAmB,CAACY,IAAI,EAAEH,KAAK,CAACN,OAAO,EAAEc,IAAI,CAAC;EAClD,MAAMG,QAAQ,GAAGpB,mBAAmB,CAACY,IAAI,EAAEH,KAAK,CAACL,YAAY,CAAC;EAE9D,OAAO;IACLe,KAAK;IACLF,IAAI;IACJF,IAAI;IACJC,QAAQ;IACRP,KAAK,EAAE;MACLU,KAAK;MACLF;IACF,CAAC;IACDG,QAAQ,EAAEC,KAAK,CAACC,OAAO,CAACF,QAAQ,CAAC,GAC7BZ,eAAe,CAACC,KAAK,EAAEW,QAAQ,CAAC,GAChCG,SAAS;IACbC,GAAG,EAAEZ;EACP,CAAC;AACH;AAEA,OAAO,SAASa,QAAQA,CAAChB,KAAoB,EAAE;EAC7C,MAAMC,KAAK,GAAGb,QAAQ,CAAC,MAAMW,eAAe,CAACC,KAAK,EAAEA,KAAK,CAACC,KAAK,CAAC,CAAC;EAEjE,SAASgB,aAAaA,CAACC,MAAa,EAAE;IACpC,OAAOA,MAAM,CACVC,MAAM,CACJC,CAAC,IAAKA,CAAC,KAAK,IAAI,IAAInB,KAAK,CAACS,KAAK,CAACW,IAAI,CAAElB,IAAI,IAAKA,IAAI,CAACO,KAAK,KAAK,IAAI,CACrE,CAAC,CACAY,GAAG,CAAEF,CAAC,IAAK;MACV,MAAMG,KAAK,GAAGtB,KAAK,CAACS,KAAK,CAACc,IAAI,CAAErB,IAAI,IAAKb,SAAS,CAAC8B,CAAC,EAAEjB,IAAI,CAACO,KAAK,CAAC,CAAC;MAClE,OAAOa,KAAK,IAAIlB,cAAc,CAACL,KAAK,EAAEoB,CAAC,CAAC;IAC1C,CAAC,CAAC;EACN;EAEA,SAASK,WAAWA,CAACxB,KAAY,EAAE;IACjC,OAAOD,KAAK,CAACJ,UAAU,GACnBK,KAAK,CAACqB,GAAG,CAACI,IAAA;MAAA,IAAC;QAAEX;MAAI,CAAC,GAAAW,IAAA;MAAA,OAAKX,GAAG;IAAA,EAAC,GAC3Bd,KAAK,CAACqB,GAAG,CAACK,KAAA;MAAA,IAAC;QAAEjB;MAAM,CAAC,GAAAiB,KAAA;MAAA,OAAKjB,KAAK;IAAA,EAAC;EACrC;EAEA,OAAO;IACLT,KAAK;IACLwB,WAAW;IACXR;EACF,CAAC;AACH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress.mjs","names":["computed","shallowRef","watch","useProgress","props","delta","numValue","modelValue","value","Number","isNaN","neo","old"],"sources":["../../src/composables/progress.ts"],"sourcesContent":["import { computed, shallowRef, watch } from 'vue';\
|
|
1
|
+
{"version":3,"file":"progress.mjs","names":["computed","shallowRef","watch","useProgress","props","delta","numValue","modelValue","value","Number","isNaN","neo","old"],"sources":["../../src/composables/progress.ts"],"sourcesContent":["import { computed, shallowRef, watch } from 'vue';\n\nexport function useProgress(props: any) {\n const delta = shallowRef(0);\n\n const numValue = computed(() => {\n const { modelValue, value } = props;\n const numValue = Number(modelValue ?? value);\n if (Number.isNaN(numValue) || numValue < 0) {\n return 0;\n }\n if (numValue > 100) {\n return 100;\n }\n return numValue;\n });\n\n watch(numValue, (neo, old) => {\n delta.value = neo - old;\n });\n\n return {\n numValue,\n delta,\n };\n}\n"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,UAAU,EAAEC,KAAK,QAAQ,KAAK;AAEjD,OAAO,SAASC,WAAWA,CAACC,KAAU,EAAE;EACtC,MAAMC,KAAK,GAAGJ,UAAU,CAAC,CAAC,CAAC;EAE3B,MAAMK,QAAQ,GAAGN,QAAQ,CAAC,MAAM;IAC9B,MAAM;MAAEO,UAAU;MAAEC;IAAM,CAAC,GAAGJ,KAAK;IACnC,MAAME,QAAQ,GAAGG,MAAM,CAACF,UAAU,IAAIC,KAAK,CAAC;IAC5C,IAAIC,MAAM,CAACC,KAAK,CAACJ,QAAQ,CAAC,IAAIA,QAAQ,GAAG,CAAC,EAAE;MAC1C,OAAO,CAAC;IACV;IACA,IAAIA,QAAQ,GAAG,GAAG,EAAE;MAClB,OAAO,GAAG;IACZ;IACA,OAAOA,QAAQ;EACjB,CAAC,CAAC;EAEFJ,KAAK,CAACI,QAAQ,EAAE,CAACK,GAAG,EAAEC,GAAG,KAAK;IAC5BP,KAAK,CAACG,KAAK,GAAGG,GAAG,GAAGC,GAAG;EACzB,CAAC,CAAC;EAEF,OAAO;IACLN,QAAQ;IACRD;EACF,CAAC;AACH"}
|