yuyeon 0.3.4-beta.15 → 0.3.4-beta.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/yuyeon.js +3157 -3119
- package/dist/yuyeon.umd.cjs +3 -3
- package/lib/components/img/YImg.js +6 -6
- package/lib/components/img/YImg.js.map +1 -1
- package/lib/components/layer/YLayer.js +12 -3
- package/lib/components/layer/YLayer.js.map +1 -1
- package/lib/composables/coordinate/index.js +23 -13
- package/lib/composables/coordinate/index.js.map +1 -1
- package/lib/composables/coordinate/levitation.js +79 -50
- package/lib/composables/coordinate/levitation.js.map +1 -1
- package/lib/directives/plate-wave/index.js.map +1 -1
- package/package.json +1 -1
- package/types/components/dialog/YDialog.d.ts +6 -4
- package/types/components/img/YImg.d.ts +4 -1
- package/types/components/img/index.d.ts +1 -0
- package/types/components/index.d.ts +1 -0
- package/types/components/layer/YLayer.d.ts +3 -2
- package/types/components/menu/YMenu.d.ts +6 -4
- package/types/composables/coordinate/index.d.ts +2 -3
- package/types/composables/coordinate/levitation.d.ts +4 -2
- package/types/composables/coordinate/types.d.ts +1 -0
- package/types/directives/plate-wave/index.d.ts +1 -1
- package/types/shims.d.ts +5 -4
- package/types/components/table/composibles/header.d.ts +0 -207
- package/types/components/table/composibles/items.d.ts +0 -55
- package/types/components/table/composibles/measure.d.ts +0 -8
- package/types/components/table/composibles/options.d.ts +0 -11
- package/types/components/table/composibles/pagination.d.ts +0 -81
- package/types/components/table/composibles/selection.d.ts +0 -82
- package/types/components/table/composibles/sorted-items.d.ts +0 -7
- package/types/components/table/composibles/sorting.d.ts +0 -62
- package/types/src/abstract/items.d.ts +0 -49
- package/types/src/components/alert/YAlert.d.ts +0 -13
- package/types/src/components/alert/index.d.ts +0 -1
- package/types/src/components/app/YApp.d.ts +0 -8
- package/types/src/components/app/index.d.ts +0 -1
- package/types/src/components/badge/YBadge.d.ts +0 -126
- package/types/src/components/badge/index.d.ts +0 -1
- package/types/src/components/bench/YBench.d.ts +0 -4
- package/types/src/components/bench/index.d.ts +0 -1
- package/types/src/components/button/YButton.d.ts +0 -189
- package/types/src/components/button/index.d.ts +0 -1
- package/types/src/components/card/YCard.d.ts +0 -9
- package/types/src/components/card/YCardBody.d.ts +0 -2
- package/types/src/components/card/YCardFooter.d.ts +0 -2
- package/types/src/components/card/YCardHeader.d.ts +0 -2
- package/types/src/components/card/index.d.ts +0 -4
- package/types/src/components/checkbox/YCheckbox.d.ts +0 -23
- package/types/src/components/checkbox/YInputCheckbox.d.ts +0 -31
- package/types/src/components/checkbox/index.d.ts +0 -4
- package/types/src/components/chip/YChip.d.ts +0 -37
- package/types/src/components/chip/index.d.ts +0 -1
- package/types/src/components/date-picker/YDateCalendar.d.ts +0 -115
- package/types/src/components/date-picker/YDatePicker.d.ts +0 -94
- package/types/src/components/date-picker/YDatePickerControl.d.ts +0 -97
- package/types/src/components/date-picker/YMonthPicker.d.ts +0 -25
- package/types/src/components/date-picker/YYearPicker.d.ts +0 -38
- package/types/src/components/date-picker/index.d.ts +0 -3
- package/types/src/components/default-provider/YDefaultProvider.d.ts +0 -0
- package/types/src/components/default-provider/index.d.ts +0 -0
- package/types/src/components/dialog/YDialog.d.ts +0 -715
- package/types/src/components/dialog/index.d.ts +0 -1
- package/types/src/components/divider/YDivider.d.ts +0 -14
- package/types/src/components/divider/index.d.ts +0 -1
- package/types/src/components/draggable/YDraggable.d.ts +0 -36
- package/types/src/components/draggable/index.d.ts +0 -1
- package/types/src/components/dropdown/YDropdown.d.ts +0 -574
- package/types/src/components/dropdown/index.d.ts +0 -1
- package/types/src/components/field-input/YFieldInput.d.ts +0 -322
- package/types/src/components/field-input/index.d.ts +0 -1
- package/types/src/components/form/YForm.d.ts +0 -20
- package/types/src/components/form/index.d.ts +0 -1
- package/types/src/components/hover/YHover.d.ts +0 -57
- package/types/src/components/hover/index.d.ts +0 -1
- package/types/src/components/icon/YIcon.d.ts +0 -67
- package/types/src/components/icon/index.d.ts +0 -1
- package/types/src/components/icons/YIconCheckbox.d.ts +0 -6
- package/types/src/components/icons/YIconClear.d.ts +0 -1
- package/types/src/components/icons/YIconDropdown.d.ts +0 -1
- package/types/src/components/icons/YIconExpand.d.ts +0 -1
- package/types/src/components/icons/YIconPageControl.d.ts +0 -14
- package/types/src/components/icons/YIconSort.d.ts +0 -10
- package/types/src/components/icons/index.d.ts +0 -51
- package/types/src/components/img/YImg.d.ts +0 -136
- package/types/src/components/img/index.d.ts +0 -1
- package/types/src/components/index.d.ts +0 -39
- package/types/src/components/input/YInput.d.ts +0 -249
- package/types/src/components/input/index.d.ts +0 -1
- package/types/src/components/ip-field/YIpv4Field.d.ts +0 -65
- package/types/src/components/ip-field/index.d.ts +0 -1
- package/types/src/components/layer/YLayer.d.ts +0 -436
- package/types/src/components/layer/active-delay.d.ts +0 -4
- package/types/src/components/layer/active-stack.d.ts +0 -16
- package/types/src/components/layer/base.d.ts +0 -28
- package/types/src/components/layer/content.d.ts +0 -21
- package/types/src/components/layer/index.d.ts +0 -1
- package/types/src/components/layer/scroll-strategies.d.ts +0 -41
- package/types/src/components/list/YList.d.ts +0 -19
- package/types/src/components/list/YListItem.d.ts +0 -42
- package/types/src/components/list/index.d.ts +0 -2
- package/types/src/components/loading/YSpinnerRing.d.ts +0 -3
- package/types/src/components/loading/index.d.ts +0 -1
- package/types/src/components/menu/YMenu.d.ts +0 -517
- package/types/src/components/menu/index.d.ts +0 -1
- package/types/src/components/navigation/YNavigation.d.ts +0 -1
- package/types/src/components/navigation/index.d.ts +0 -1
- package/types/src/components/pagination/YPagination.d.ts +0 -137
- package/types/src/components/pagination/index.d.ts +0 -1
- package/types/src/components/panel/YDividePanel.d.ts +0 -5
- package/types/src/components/panel/index.d.ts +0 -1
- package/types/src/components/plate/YPlate.d.ts +0 -9
- package/types/src/components/plate/index.d.ts +0 -1
- package/types/src/components/progress-bar/YProgressBar.d.ts +0 -38
- package/types/src/components/progress-bar/index.d.ts +0 -1
- package/types/src/components/progress-ring/YProgressRing.d.ts +0 -34
- package/types/src/components/progress-ring/index.d.ts +0 -1
- package/types/src/components/radio/YRadio.d.ts +0 -25
- package/types/src/components/radio/YRadioIcon.d.ts +0 -6
- package/types/src/components/radio/index.d.ts +0 -2
- package/types/src/components/select/YSelect.d.ts +0 -1221
- package/types/src/components/select/index.d.ts +0 -1
- package/types/src/components/slider/YSlider.d.ts +0 -16
- package/types/src/components/slider/index.d.ts +0 -1
- package/types/src/components/slider/slider.d.ts +0 -0
- package/types/src/components/snackbar/YSnackbar.d.ts +0 -452
- package/types/src/components/snackbar/index.d.ts +0 -1
- package/types/src/components/switch/YSwitch.d.ts +0 -137
- package/types/src/components/switch/index.d.ts +0 -1
- package/types/src/components/tab/YTab.d.ts +0 -218
- package/types/src/components/tab/YTabs.d.ts +0 -98
- package/types/src/components/tab/index.d.ts +0 -3
- package/types/src/components/tab/shared.d.ts +0 -4
- package/types/src/components/tab/types.d.ts +0 -5
- package/types/src/components/table/YDataTable.d.ts +0 -459
- package/types/src/components/table/YDataTableBody.d.ts +0 -99
- package/types/src/components/table/YDataTableCell.d.ts +0 -32
- package/types/src/components/table/YDataTableControl.d.ts +0 -68
- package/types/src/components/table/YDataTableHead.d.ts +0 -54
- package/types/src/components/table/YDataTableLayer.d.ts +0 -13
- package/types/src/components/table/YDataTableLayerRow.d.ts +0 -22
- package/types/src/components/table/YDataTableLayerRows.d.ts +0 -9
- package/types/src/components/table/YDataTableRow.d.ts +0 -53
- package/types/src/components/table/YDataTableServer.d.ts +0 -502
- package/types/src/components/table/YTable.d.ts +0 -65
- package/types/src/components/table/composables/expand.d.ts +0 -42
- package/types/src/components/table/composables/header.d.ts +0 -175
- package/types/src/components/table/composables/items.d.ts +0 -55
- package/types/src/components/table/composables/measure.d.ts +0 -8
- package/types/src/components/table/composables/options.d.ts +0 -11
- package/types/src/components/table/composables/pagination.d.ts +0 -81
- package/types/src/components/table/composables/provides.d.ts +0 -15
- package/types/src/components/table/composables/selection.d.ts +0 -82
- package/types/src/components/table/composables/sorted-items.d.ts +0 -7
- package/types/src/components/table/composables/sorting.d.ts +0 -56
- package/types/src/components/table/index.d.ts +0 -10
- package/types/src/components/table/types/common.d.ts +0 -2
- package/types/src/components/table/types/header.d.ts +0 -25
- package/types/src/components/table/types/index.d.ts +0 -59
- package/types/src/components/table/types/item.d.ts +0 -23
- package/types/src/components/table/types/row.d.ts +0 -4
- package/types/src/components/text-ellipsis/YTextEllipsis.d.ts +0 -11
- package/types/src/components/text-ellipsis/index.d.ts +0 -1
- package/types/src/components/text-highlighter/YTextHighlighter.d.ts +0 -26
- package/types/src/components/text-highlighter/index.d.ts +0 -1
- package/types/src/components/text-interpolation/YTi.d.ts +0 -11
- package/types/src/components/text-interpolation/index.d.ts +0 -1
- package/types/src/components/textarea/YTextarea.d.ts +0 -583
- package/types/src/components/textarea/index.d.ts +0 -1
- package/types/src/components/toggle-button/YToggleButton.d.ts +0 -4
- package/types/src/components/toggle-button/index.d.ts +0 -1
- package/types/src/components/tooltip/YTooltip.d.ts +0 -502
- package/types/src/components/tooltip/index.d.ts +0 -1
- package/types/src/components/transitions/expand-transition.d.ts +0 -20
- package/types/src/components/transitions/index.d.ts +0 -38
- package/types/src/components/tree-view/YTreeView.d.ts +0 -172
- package/types/src/components/tree-view/YTreeViewNode.d.ts +0 -176
- package/types/src/components/tree-view/index.d.ts +0 -2
- package/types/src/components/tree-view/tree-view.d.ts +0 -51
- package/types/src/components/tree-view/types.d.ts +0 -17
- package/types/src/components/tree-view/util.d.ts +0 -6
- package/types/src/composables/choice-link.d.ts +0 -3
- package/types/src/composables/choice.d.ts +0 -113
- package/types/src/composables/communication.d.ts +0 -8
- package/types/src/composables/component.d.ts +0 -3
- package/types/src/composables/coordinate/arrangement.d.ts +0 -7
- package/types/src/composables/coordinate/index.d.ts +0 -87
- package/types/src/composables/coordinate/levitation.d.ts +0 -7
- package/types/src/composables/coordinate/types.d.ts +0 -8
- package/types/src/composables/coordinate/utils/point.d.ts +0 -22
- package/types/src/composables/date/factory.d.ts +0 -3
- package/types/src/composables/date/index.d.ts +0 -12
- package/types/src/composables/date/setting.d.ts +0 -5
- package/types/src/composables/date/types.d.ts +0 -13
- package/types/src/composables/defaults/index.d.ts +0 -11
- package/types/src/composables/defaults/share.d.ts +0 -4
- package/types/src/composables/defaults/types.d.ts +0 -12
- package/types/src/composables/dimension.d.ts +0 -54
- package/types/src/composables/focus.d.ts +0 -30
- package/types/src/composables/form.d.ts +0 -132
- package/types/src/composables/i18n/index.d.ts +0 -9
- package/types/src/composables/i18n/locale.d.ts +0 -3
- package/types/src/composables/i18n/rtl.d.ts +0 -21
- package/types/src/composables/i18n/share.d.ts +0 -1
- package/types/src/composables/icon.d.ts +0 -79
- package/types/src/composables/index.d.ts +0 -10
- package/types/src/composables/layer-group.d.ts +0 -10
- package/types/src/composables/layout.d.ts +0 -10
- package/types/src/composables/list-items.d.ts +0 -113
- package/types/src/composables/progress.d.ts +0 -4
- package/types/src/composables/ref.d.ts +0 -6
- package/types/src/composables/resize-observer.d.ts +0 -24
- package/types/src/composables/scope.d.ts +0 -3
- package/types/src/composables/style-color.d.ts +0 -14
- package/types/src/composables/theme/factory.d.ts +0 -4
- package/types/src/composables/theme/helper.d.ts +0 -3
- package/types/src/composables/theme/index.d.ts +0 -57
- package/types/src/composables/theme/setting.d.ts +0 -11
- package/types/src/composables/theme/types.d.ts +0 -29
- package/types/src/composables/timing.d.ts +0 -20
- package/types/src/composables/transition.d.ts +0 -40
- package/types/src/composables/validation.d.ts +0 -82
- package/types/src/composables/vue-router.d.ts +0 -43
- package/types/src/declares.d.ts +0 -1
- package/types/src/directives/complement-click/index.d.ts +0 -26
- package/types/src/directives/index.d.ts +0 -2
- package/types/src/directives/plate-wave/index.d.ts +0 -20
- package/types/src/directives/theme-class/index.d.ts +0 -4
- package/types/src/etc/index.d.ts +0 -1
- package/types/src/globals.d.ts +0 -20
- package/types/src/i18n/built-in.d.ts +0 -3
- package/types/src/i18n/config.d.ts +0 -81
- package/types/src/i18n/types.d.ts +0 -20
- package/types/src/index.d.ts +0 -13
- package/types/src/locales/en.d.ts +0 -6
- package/types/src/locales/index.d.ts +0 -2
- package/types/src/locales/ko.d.ts +0 -6
- package/types/src/mixins/di.d.ts +0 -2
- package/types/src/mixins/rebind-attrs.d.ts +0 -5
- package/types/src/shims.d.ts +0 -65
- package/types/src/types/index.d.ts +0 -9
- package/types/src/util/anchor.d.ts +0 -23
- package/types/src/util/array.d.ts +0 -2
- package/types/src/util/collection.d.ts +0 -1
- package/types/src/util/color/apca.d.ts +0 -29
- package/types/src/util/color/const.d.ts +0 -5
- package/types/src/util/color/contrast/contrast.d.ts +0 -74
- package/types/src/util/color/conversion.d.ts +0 -131
- package/types/src/util/color/hct/cam16.d.ts +0 -116
- package/types/src/util/color/hct/hct-solver.d.ts +0 -131
- package/types/src/util/color/hct/hct.d.ts +0 -71
- package/types/src/util/color/hct/viewing-conditions.d.ts +0 -58
- package/types/src/util/color/index.d.ts +0 -5
- package/types/src/util/color/palettes/core-palette.d.ts +0 -44
- package/types/src/util/color/palettes/tonal-palette.d.ts +0 -40
- package/types/src/util/color/types.d.ts +0 -14
- package/types/src/util/color/utils/math-utils.d.ts +0 -82
- package/types/src/util/common.d.ts +0 -17
- package/types/src/util/component/component.d.ts +0 -5
- package/types/src/util/component/index.d.ts +0 -11
- package/types/src/util/component/inject-self.d.ts +0 -3
- package/types/src/util/component/props.d.ts +0 -32
- package/types/src/util/component/types.d.ts +0 -21
- package/types/src/util/date/adapters/yuyeon-date-adapter.d.ts +0 -43
- package/types/src/util/date/built-in.d.ts +0 -41
- package/types/src/util/date/index.d.ts +0 -3
- package/types/src/util/date/types.d.ts +0 -167
- package/types/src/util/debounce.d.ts +0 -11
- package/types/src/util/dom.d.ts +0 -5
- package/types/src/util/environments.d.ts +0 -6
- package/types/src/util/frame-scheduler.d.ts +0 -7
- package/types/src/util/index.d.ts +0 -16
- package/types/src/util/reactivity.d.ts +0 -7
- package/types/src/util/rect.d.ts +0 -36
- package/types/src/util/scroll.d.ts +0 -3
- package/types/src/util/string.d.ts +0 -9
- package/types/src/util/ui.d.ts +0 -4
- package/types/src/util/validation.d.ts +0 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"levitation.js","names":["computed","nextTick","onScopeDispose","ref","watch","flipAlign","flipCorner","flipSide","getAxis","parseAnchor","clamp","$computed","MutableRect","getOverflow","getScrollParents","getBoundingPureRect","pixelCeil","pixelRound","toStyleSizeValue","anchorToPoint","getOffset","applyLevitation","props","state","coordinate","coordinateStyles","contentEl","base","active","isRtl","minWidth","minHeight","maxWidth","maxHeight","map","key","val","parseFloat","isNaN","Infinity","offset","Array","isArray","split","length","push","viewportMargin","observe","resizeObserver","ResizeObserver","updateCoordinate","_ref","_ref2","neoBaseEl","neoContentEl","oldBaseEl","oldContentEl","nodeType","unobserve","immediate","disconnect","getIgnoreInsetRect","el","rect","x","style","left","y","top","$base","value","$content","requestAnimationFrame","baseRect","width","height","getBoundingClientRect","contentRect","scrollParents","document","documentElement","viewport","reduce","box","scrollBox","clientWidth","clientHeight","Math","max","min","right","bottom","undefined","preferredAnchor","preferredOrigin","location","position","align","parsedAnchor","parsedOrigin","origin","side","placement","anchor","checkOverflow","_placement","targetPoint","contentPoint","overflows","available","flipped","resets","_x","_y","axis","hasOverflowX","before","after","hasOverflowY","reset","forEach","newPlacement","flip","newOverflows","Object","assign","transformOrigin","result"],"sources":["../../../src/composables/coordinate/levitation.ts"],"sourcesContent":["import type { CSSProperties, Ref } from 'vue';\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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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"levitation.js","names":["computed","nextTick","onScopeDispose","ref","watch","flipAlign","flipCorner","flipSide","getAxis","parseAnchor","clamp","$computed","getOverflow","MutableRect","getScrollParents","getBoundingPureRect","pixelCeil","pixelRound","toStyleSizeValue","anchorToPoint","getOffset","applyLevitation","props","state","coordination","coordinateStyles","contentEl","base","active","isRtl","isFlipped","minWidth","minHeight","maxWidth","maxHeight","map","key","val","parseFloat","isNaN","Infinity","preferredAnchor","preferredOrigin","location","position","align","parsedAnchor","parsedOrigin","origin","side","offset","Array","isArray","split","length","push","viewportMargin","observe","resizeObserver","ResizeObserver","updateCoordinate","_ref","_ref2","neoBaseEl","neoContentEl","oldBaseEl","oldContentEl","nodeType","unobserve","immediate","disconnect","getIgnoreInsetRect","el","rect","x","style","left","y","top","$base","value","$content","requestAnimationFrame","baseRect","width","height","getBoundingClientRect","contentRect","scrollParents","document","documentElement","viewport","reduce","box","scrollBox","clientWidth","clientHeight","Math","max","min","right","bottom","undefined","placement","anchor","checkOverflow","_placement","targetPoint","contentPoint","overflows","available","flipped","resets","_x","_y","axis","hasOverflowX","before","after","hasOverflowY","reset","forEach","newPlacement","flip","newOverflows","Object","assign","transformOrigin","result"],"sources":["../../../src/composables/coordinate/levitation.ts"],"sourcesContent":["import type { CSSProperties, Ref } from \"vue\";\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 { getOverflow, MutableRect, type Rect } from \"@/util/rect\";\nimport { getScrollParents } from \"@/util/scroll\";\nimport {\n getBoundingPureRect,\n pixelCeil,\n pixelRound,\n toStyleSizeValue,\n} from \"@/util/ui\";\n\nimport type { CoordinateState } from \"./types\";\nimport { anchorToPoint, getOffset } from \"./utils/point\";\nimport { posix } from \"path/win32\";\n\nexport function applyLevitation(\n props: any,\n state: CoordinateState,\n coordination: Ref<any>,\n coordinateStyles: Ref<CSSProperties>,\n) {\n const { contentEl, base, active } = state;\n\n const isRtl = ref(false);\n const isFlipped = ref([false, 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 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 /* 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(() => {\n observe = true\n });\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 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 case \"center\": {\n if (_placement.anchor.side === \"top\" || _placement.anchor.side === \"bottom\") {\n x += offset.value[1];\n } else {\n y += offset.value[1];\n }\n break;\n }\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 coordination.value = {\n side: placement.anchor.side,\n align: placement.anchor.align,\n rect: new MutableRect({x, y, width: contentRect.width, height: contentRect.height}),\n offset: [0, 0],\n }\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 isFlipped.value = [flipped.x, flipped.y];\n\n return {\n available,\n contentRect,\n flipped,\n placement,\n };\n }\n\n watch(\n () => [\n props.offset,\n props.minWidth,\n props.minHeight,\n props.maxWidth,\n props.maxHeight,\n preferredAnchor.value,\n preferredOrigin.value,\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 isFlipped,\n preferredAnchor,\n preferredOrigin,\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["CLASS_NAME","showAnimation","el","animation","document","createElement","className","appendChild","dataset","activated","String","performance","now","hideAnimation","animations","getElementsByClassName","length","isHiding","diff","Number","delay","Math","max","setTimeout","removeChild","keyboardEventFlag","spawn","event","currentTarget","clean","stop","keyboardSpawn","key","keyboardClean","destroyListeners","removeEventListener","attachWave","binding","init","arguments","undefined","value","modifiers","enabled","addEventListener","PlateWave","mounted","updated","oldValue","unmount"],"sources":["../../../src/directives/plate-wave/index.ts"],"sourcesContent":["import type { Directive, DirectiveBinding } from 'vue';\n\nimport './plate-wave.scss';\n\nexport interface PlateWaveBinding\n extends Omit<DirectiveBinding, 'modifiers' | 'value'> {\n value?: boolean;\n modifiers: { stop?: boolean };\n}\n\nconst CLASS_NAME = 'y-plate-wave__animation';\n\nfunction showAnimation(el: HTMLElement | null) {\n if (!el) return;\n const animation = document.createElement('span');\n animation.className = CLASS_NAME;\n el.appendChild(animation);\n animation.dataset.activated = String(performance.now());\n}\n\nfunction hideAnimation(el: HTMLElement | null) {\n if (!el) {\n return;\n }\n const animations = el.getElementsByClassName(CLASS_NAME);\n if (animations.length === 0) return;\n const animation = animations[animations.length - 1] as HTMLElement;\n if (animation.dataset.isHiding) return;\n animation.dataset.isHiding = 'true';\n const diff = performance.now() - Number(animation.dataset.activated);\n const delay = Math.max(250 - diff, 0);\n setTimeout(() => {\n if (animation) {\n el.removeChild(animation);\n }\n }, delay + 300);\n}\n\n/*\n * Event\n * */\n\nlet keyboardEventFlag = false;\n\nfunction spawn(event: Event) {\n showAnimation(event.currentTarget as HTMLElement);\n}\n\nfunction clean(event: Event) {\n hideAnimation(event.currentTarget as HTMLElement);\n}\n\nfunction stop(event: Event) {\n //\n}\n\nfunction keyboardSpawn(event: KeyboardEvent) {\n if (!keyboardEventFlag && (event.key === 'Enter' || event.key === 'Space')) {\n keyboardEventFlag = true;\n showAnimation(event.currentTarget as HTMLElement);\n }\n}\n\nfunction keyboardClean(event: KeyboardEvent) {\n keyboardEventFlag = false;\n hideAnimation(event.currentTarget as HTMLElement);\n}\n\nfunction destroyListeners(el: HTMLElement) {\n el.removeEventListener('mousedown', spawn);\n el.removeEventListener('mouseup', clean);\n el.removeEventListener('mouseleave', clean);\n el.removeEventListener('keydown', keyboardSpawn);\n el.removeEventListener('keyup', keyboardClean);\n}\n\nfunction attachWave(el: HTMLElement, binding: PlateWaveBinding, init = false) {\n const { value, modifiers } = binding;\n let enabled = value ?? true;\n if (typeof value === 'boolean') {\n enabled = value;\n }\n if (!enabled) hideAnimation(el);\n\n if (enabled && init) {\n if (modifiers.stop) {\n el.addEventListener('mousedown', stop);\n return;\n }\n\n el.addEventListener('mousedown', spawn);\n el.addEventListener('mouseup', clean);\n el.addEventListener('mouseleave', clean);\n el.addEventListener('keydown', keyboardSpawn);\n el.addEventListener('keyup', keyboardClean);\n el.addEventListener('blur', clean);\n } else if (!enabled && !init) {\n destroyListeners(el);\n }\n}\n\nexport const PlateWave = {\n mounted(el: HTMLElement, binding: PlateWaveBinding) {\n attachWave(el, binding, true);\n },\n updated(el: HTMLElement, binding: PlateWaveBinding) {\n if (binding.value === binding.oldValue) {\n return;\n }\n attachWave(el, binding);\n },\n unmount(el: HTMLElement) {\n destroyListeners(el);\n },\n};\n\nexport type PlateWaveDirective = Directive<HTMLElement,
|
|
1
|
+
{"version":3,"file":"index.js","names":["CLASS_NAME","showAnimation","el","animation","document","createElement","className","appendChild","dataset","activated","String","performance","now","hideAnimation","animations","getElementsByClassName","length","isHiding","diff","Number","delay","Math","max","setTimeout","removeChild","keyboardEventFlag","spawn","event","currentTarget","clean","stop","keyboardSpawn","key","keyboardClean","destroyListeners","removeEventListener","attachWave","binding","init","arguments","undefined","value","modifiers","enabled","addEventListener","PlateWave","mounted","updated","oldValue","unmount"],"sources":["../../../src/directives/plate-wave/index.ts"],"sourcesContent":["import type { Directive, DirectiveBinding } from 'vue';\n\nimport './plate-wave.scss';\n\nexport interface PlateWaveBinding\n extends Omit<DirectiveBinding, 'modifiers' | 'value'> {\n value?: boolean;\n modifiers: { stop?: boolean };\n}\n\nconst CLASS_NAME = 'y-plate-wave__animation';\n\nfunction showAnimation(el: HTMLElement | null) {\n if (!el) return;\n const animation = document.createElement('span');\n animation.className = CLASS_NAME;\n el.appendChild(animation);\n animation.dataset.activated = String(performance.now());\n}\n\nfunction hideAnimation(el: HTMLElement | null) {\n if (!el) {\n return;\n }\n const animations = el.getElementsByClassName(CLASS_NAME);\n if (animations.length === 0) return;\n const animation = animations[animations.length - 1] as HTMLElement;\n if (animation.dataset.isHiding) return;\n animation.dataset.isHiding = 'true';\n const diff = performance.now() - Number(animation.dataset.activated);\n const delay = Math.max(250 - diff, 0);\n setTimeout(() => {\n if (animation) {\n el.removeChild(animation);\n }\n }, delay + 300);\n}\n\n/*\n * Event\n * */\n\nlet keyboardEventFlag = false;\n\nfunction spawn(event: Event) {\n showAnimation(event.currentTarget as HTMLElement);\n}\n\nfunction clean(event: Event) {\n hideAnimation(event.currentTarget as HTMLElement);\n}\n\nfunction stop(event: Event) {\n //\n}\n\nfunction keyboardSpawn(event: KeyboardEvent) {\n if (!keyboardEventFlag && (event.key === 'Enter' || event.key === 'Space')) {\n keyboardEventFlag = true;\n showAnimation(event.currentTarget as HTMLElement);\n }\n}\n\nfunction keyboardClean(event: KeyboardEvent) {\n keyboardEventFlag = false;\n hideAnimation(event.currentTarget as HTMLElement);\n}\n\nfunction destroyListeners(el: HTMLElement) {\n el.removeEventListener('mousedown', spawn);\n el.removeEventListener('mouseup', clean);\n el.removeEventListener('mouseleave', clean);\n el.removeEventListener('keydown', keyboardSpawn);\n el.removeEventListener('keyup', keyboardClean);\n}\n\nfunction attachWave(el: HTMLElement, binding: PlateWaveBinding, init = false) {\n const { value, modifiers } = binding;\n let enabled = value ?? true;\n if (typeof value === 'boolean') {\n enabled = value;\n }\n if (!enabled) hideAnimation(el);\n\n if (enabled && init) {\n if (modifiers.stop) {\n el.addEventListener('mousedown', stop);\n return;\n }\n\n el.addEventListener('mousedown', spawn);\n el.addEventListener('mouseup', clean);\n el.addEventListener('mouseleave', clean);\n el.addEventListener('keydown', keyboardSpawn);\n el.addEventListener('keyup', keyboardClean);\n el.addEventListener('blur', clean);\n } else if (!enabled && !init) {\n destroyListeners(el);\n }\n}\n\nexport const PlateWave = {\n mounted(el: HTMLElement, binding: PlateWaveBinding) {\n attachWave(el, binding, true);\n },\n updated(el: HTMLElement, binding: PlateWaveBinding) {\n if (binding.value === binding.oldValue) {\n return;\n }\n attachWave(el, binding);\n },\n unmount(el: HTMLElement) {\n destroyListeners(el);\n },\n};\n\nexport type PlateWaveDirective = Directive<HTMLElement, boolean>;\n\ndeclare module 'vue' {\n export interface ComponentCustomProperties {\n vPlateWave: PlateWaveDirective;\n }\n}\n\nexport default PlateWave;\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -576,9 +576,10 @@ export declare const YDialog: import('vue').DefineComponent<{
|
|
|
576
576
|
coordinateStyles: import('vue').Ref<import('../../types').CssProperties, import('../../types').CssProperties>;
|
|
577
577
|
layerGroupState: WeakMap<HTMLElement, Set<any>>;
|
|
578
578
|
getActiveLayers: () => import('vue').ComponentInternalInstance[];
|
|
579
|
+
coordination: import('vue').Ref<any, any>;
|
|
579
580
|
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
580
|
-
|
|
581
|
-
|
|
581
|
+
"update:modelValue": (value: boolean) => true;
|
|
582
|
+
"click:complement": (mouseEvent: MouseEvent) => true;
|
|
582
583
|
afterLeave: () => true;
|
|
583
584
|
}, string> | undefined, import('vue').DefineComponent<{
|
|
584
585
|
minWidth: PropType<number | string>;
|
|
@@ -702,9 +703,10 @@ export declare const YDialog: import('vue').DefineComponent<{
|
|
|
702
703
|
coordinateStyles: import('vue').Ref<import('../../types').CssProperties, import('../../types').CssProperties>;
|
|
703
704
|
layerGroupState: WeakMap<HTMLElement, Set<any>>;
|
|
704
705
|
getActiveLayers: () => import('vue').ComponentInternalInstance[];
|
|
706
|
+
coordination: import('vue').Ref<any, any>;
|
|
705
707
|
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
706
|
-
|
|
707
|
-
|
|
708
|
+
"update:modelValue": (value: boolean) => true;
|
|
709
|
+
"click:complement": (mouseEvent: MouseEvent) => true;
|
|
708
710
|
afterLeave: () => true;
|
|
709
711
|
}, string> | undefined>;
|
|
710
712
|
classes: import('vue').ComputedRef<{
|
|
@@ -130,4 +130,7 @@ export declare const YImg: import('vue').DefineComponent<{
|
|
|
130
130
|
src: PropType<string>;
|
|
131
131
|
crossorigin: PropType<ImgHTMLAttributes["crossorigin"]>;
|
|
132
132
|
referrerpolicy: PropType<ImgHTMLAttributes["referrerpolicy"]>;
|
|
133
|
-
},
|
|
133
|
+
}, {
|
|
134
|
+
status: import('vue').ShallowRef<YImgStatus, YImgStatus>;
|
|
135
|
+
image$: import('vue').Ref<HTMLImageElement | undefined, HTMLImageElement | undefined>;
|
|
136
|
+
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, ("error" | "load" | "loaded")[], "error" | "load" | "loaded">;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './YImg';
|
|
@@ -428,9 +428,10 @@ export declare const YLayer: import('vue').DefineComponent<{
|
|
|
428
428
|
coordinateStyles: import('vue').Ref<CssProperties, CssProperties>;
|
|
429
429
|
layerGroupState: WeakMap<HTMLElement, Set<any>>;
|
|
430
430
|
getActiveLayers: () => ComponentInternalInstance[];
|
|
431
|
+
coordination: import('vue').Ref<any, any>;
|
|
431
432
|
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
432
|
-
|
|
433
|
-
|
|
433
|
+
"update:modelValue": (value: boolean) => true;
|
|
434
|
+
"click:complement": (mouseEvent: MouseEvent) => true;
|
|
434
435
|
afterLeave: () => true;
|
|
435
436
|
}, string>;
|
|
436
437
|
export type YLayer = InstanceType<typeof YLayer>;
|
|
@@ -372,9 +372,10 @@ export declare const YMenu: import('vue').DefineComponent<{
|
|
|
372
372
|
coordinateStyles: import('vue').Ref<import('../../types').CssProperties, import('../../types').CssProperties>;
|
|
373
373
|
layerGroupState: WeakMap<HTMLElement, Set<any>>;
|
|
374
374
|
getActiveLayers: () => import('vue').ComponentInternalInstance[];
|
|
375
|
+
coordination: import('vue').Ref<any, any>;
|
|
375
376
|
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
376
|
-
|
|
377
|
-
|
|
377
|
+
"update:modelValue": (value: boolean) => true;
|
|
378
|
+
"click:complement": (mouseEvent: MouseEvent) => true;
|
|
378
379
|
afterLeave: () => true;
|
|
379
380
|
}, string> | undefined, import('vue').DefineComponent<{
|
|
380
381
|
minWidth: PropType<number | string>;
|
|
@@ -498,9 +499,10 @@ export declare const YMenu: import('vue').DefineComponent<{
|
|
|
498
499
|
coordinateStyles: import('vue').Ref<import('../../types').CssProperties, import('../../types').CssProperties>;
|
|
499
500
|
layerGroupState: WeakMap<HTMLElement, Set<any>>;
|
|
500
501
|
getActiveLayers: () => import('vue').ComponentInternalInstance[];
|
|
502
|
+
coordination: import('vue').Ref<any, any>;
|
|
501
503
|
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
502
|
-
|
|
503
|
-
|
|
504
|
+
"update:modelValue": (value: boolean) => true;
|
|
505
|
+
"click:complement": (mouseEvent: MouseEvent) => true;
|
|
504
506
|
afterLeave: () => true;
|
|
505
507
|
}, string> | undefined>;
|
|
506
508
|
baseEl: import('vue').ComputedRef<any>;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { PropType, Ref } from 'vue';
|
|
2
2
|
import { CssProperties } from '../../types';
|
|
3
|
-
import { Rect } from '../../util/rect';
|
|
4
3
|
import { applyArrangement } from './arrangement';
|
|
5
4
|
import { applyLevitation } from './levitation';
|
|
6
5
|
import { CoordinateState } from './types';
|
|
@@ -9,7 +8,7 @@ declare const coordinateStrategies: {
|
|
|
9
8
|
levitation: typeof applyLevitation;
|
|
10
9
|
arrangement: typeof applyArrangement;
|
|
11
10
|
};
|
|
12
|
-
export type CoordinateStrategyFn = (props: any, state: CoordinateState,
|
|
11
|
+
export type CoordinateStrategyFn = (props: any, state: CoordinateState, coordination: Ref<any>, coordinateStyles: Ref<CssProperties>) => undefined | {
|
|
13
12
|
updateCoordinate: (e: Event) => void;
|
|
14
13
|
};
|
|
15
14
|
export declare const pressCoordinateProps: <Defaults extends {
|
|
@@ -80,7 +79,7 @@ export declare const pressCoordinateProps: <Defaults extends {
|
|
|
80
79
|
};
|
|
81
80
|
};
|
|
82
81
|
export declare function useCoordinate(props: any, state: CoordinateState): {
|
|
83
|
-
|
|
82
|
+
coordination: Ref<any, any>;
|
|
84
83
|
coordinateStyles: Ref<CssProperties, CssProperties>;
|
|
85
84
|
updateCoordinate: Ref<((e: Event) => void) | undefined, ((e: Event) => void) | undefined>;
|
|
86
85
|
};
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { CSSProperties, Ref } from 'vue';
|
|
2
|
-
import { Rect } from '../../util/rect';
|
|
3
2
|
import { CoordinateState } from './types';
|
|
4
3
|
|
|
5
|
-
export declare function applyLevitation(props: any, state: CoordinateState,
|
|
4
|
+
export declare function applyLevitation(props: any, state: CoordinateState, coordination: Ref<any>, coordinateStyles: Ref<CSSProperties>): {
|
|
6
5
|
updateCoordinate: () => any;
|
|
6
|
+
isFlipped: Ref<boolean[], boolean[]>;
|
|
7
|
+
preferredAnchor: Ref<import('../../util/anchor').ParsedAnchor, import('../../util/anchor').ParsedAnchor>;
|
|
8
|
+
preferredOrigin: Ref<import('../../util/anchor').ParsedAnchor, import('../../util/anchor').ParsedAnchor>;
|
|
7
9
|
};
|
|
@@ -11,7 +11,7 @@ export declare const PlateWave: {
|
|
|
11
11
|
updated(el: HTMLElement, binding: PlateWaveBinding): void;
|
|
12
12
|
unmount(el: HTMLElement): void;
|
|
13
13
|
};
|
|
14
|
-
export type PlateWaveDirective = Directive<HTMLElement,
|
|
14
|
+
export type PlateWaveDirective = Directive<HTMLElement, boolean>;
|
|
15
15
|
declare module 'vue' {
|
|
16
16
|
interface ComponentCustomProperties {
|
|
17
17
|
vPlateWave: PlateWaveDirective;
|
package/types/shims.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { YAlert, YApp, YBadge, YButton, YCard, YCardBody, YCardFooter, YCardHeader, YCheckbox, YChip, YDataTable,
|
|
1
|
+
import { YAlert, YApp, YBadge, YButton, YCard, YCardBody, YCardFooter, YCardHeader, YCheckbox, YChip, YDataTable, YDataTableServer, YDateCalendar, YDatePicker, YDividePanel, YDivider, YExpandHTransition, YExpandVTransition, YFieldInput, YForm, YHover, YIcon, YImg, YInput, YIpv4Field, YLayer, YList, YListItem, YMenu, YMonthPicker, YPagination, YProgressBar, YProgressRing, YSelect, YSnackbar, YSpinnerRing, YSwitch, YTab, YTable, YTabs, YTextarea, YTextEllipsis, YTextHighlighter, YTi, YTooltip, YTreeView } from 'yuyeon/components';
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
declare module
|
|
4
|
+
declare module "vue" {
|
|
5
5
|
export interface GlobalComponents {
|
|
6
6
|
// @define-components
|
|
7
7
|
YApp: YApp;
|
|
@@ -55,10 +55,11 @@ declare module 'vue' {
|
|
|
55
55
|
YTextHighlighter: YTextHighlighter;
|
|
56
56
|
YProgressRing: YProgressRing;
|
|
57
57
|
YTextEllipsis: YTextEllipsis;
|
|
58
|
+
YImg: YImg;
|
|
58
59
|
}
|
|
59
60
|
|
|
60
61
|
export interface GlobalDirectives {
|
|
61
|
-
vPlateWave: typeof import(
|
|
62
|
-
vComplementClick: typeof import(
|
|
62
|
+
vPlateWave: (typeof import("yuyeon/directives"))["PlateWave"];
|
|
63
|
+
vComplementClick: (typeof import("yuyeon/directives"))["ComplementClick"];
|
|
63
64
|
}
|
|
64
65
|
}
|
|
@@ -1,207 +0,0 @@
|
|
|
1
|
-
import { DeepReadonly, InjectionKey, PropType, Ref } from 'vue';
|
|
2
|
-
import { DataTableHeader, InternalDataTableHeader } from '../types';
|
|
3
|
-
|
|
4
|
-
export declare const pressDataTableHeader: <Defaults extends {
|
|
5
|
-
headers?: unknown;
|
|
6
|
-
} = {}>(defaults?: Defaults | undefined) => {
|
|
7
|
-
headers: unknown extends Defaults["headers"] ? {
|
|
8
|
-
type: PropType<readonly {
|
|
9
|
-
readonly key: string;
|
|
10
|
-
readonly text: string;
|
|
11
|
-
readonly value?: any;
|
|
12
|
-
readonly colspan?: number | undefined;
|
|
13
|
-
readonly rowspan?: number | undefined;
|
|
14
|
-
readonly fixed?: boolean | "left" | "right" | undefined;
|
|
15
|
-
readonly classes?: string | readonly string[] | import('../types/common').DataTableCellClassesFn | undefined;
|
|
16
|
-
readonly headerClasses?: string | readonly string[] | undefined;
|
|
17
|
-
readonly align?: "start" | "end" | "center" | undefined;
|
|
18
|
-
readonly width?: string | number | undefined;
|
|
19
|
-
readonly minWidth?: string | undefined;
|
|
20
|
-
readonly maxWidth?: string | undefined;
|
|
21
|
-
readonly sortable?: boolean | undefined;
|
|
22
|
-
readonly sort?: import('../types').DataTableCompareFn | undefined;
|
|
23
|
-
readonly mustSort?: boolean | undefined;
|
|
24
|
-
}[]>;
|
|
25
|
-
default: () => never[];
|
|
26
|
-
} : Omit<{
|
|
27
|
-
type: PropType<readonly {
|
|
28
|
-
readonly key: string;
|
|
29
|
-
readonly text: string;
|
|
30
|
-
readonly value?: any;
|
|
31
|
-
readonly colspan?: number | undefined;
|
|
32
|
-
readonly rowspan?: number | undefined;
|
|
33
|
-
readonly fixed?: boolean | "left" | "right" | undefined;
|
|
34
|
-
readonly classes?: string | readonly string[] | import('../types/common').DataTableCellClassesFn | undefined;
|
|
35
|
-
readonly headerClasses?: string | readonly string[] | undefined;
|
|
36
|
-
readonly align?: "start" | "end" | "center" | undefined;
|
|
37
|
-
readonly width?: string | number | undefined;
|
|
38
|
-
readonly minWidth?: string | undefined;
|
|
39
|
-
readonly maxWidth?: string | undefined;
|
|
40
|
-
readonly sortable?: boolean | undefined;
|
|
41
|
-
readonly sort?: import('../types').DataTableCompareFn | undefined;
|
|
42
|
-
readonly mustSort?: boolean | undefined;
|
|
43
|
-
}[]>;
|
|
44
|
-
default: () => never[];
|
|
45
|
-
}, "type" | "default"> & {
|
|
46
|
-
type: PropType<unknown extends Defaults["headers"] ? readonly {
|
|
47
|
-
readonly key: string;
|
|
48
|
-
readonly text: string;
|
|
49
|
-
readonly value?: any;
|
|
50
|
-
readonly colspan?: number | undefined;
|
|
51
|
-
readonly rowspan?: number | undefined;
|
|
52
|
-
readonly fixed?: boolean | "left" | "right" | undefined;
|
|
53
|
-
readonly classes?: string | readonly string[] | import('../types/common').DataTableCellClassesFn | undefined;
|
|
54
|
-
readonly headerClasses?: string | readonly string[] | undefined;
|
|
55
|
-
readonly align?: "start" | "end" | "center" | undefined;
|
|
56
|
-
readonly width?: string | number | undefined;
|
|
57
|
-
readonly minWidth?: string | undefined;
|
|
58
|
-
readonly maxWidth?: string | undefined;
|
|
59
|
-
readonly sortable?: boolean | undefined;
|
|
60
|
-
readonly sort?: import('../types').DataTableCompareFn | undefined;
|
|
61
|
-
readonly mustSort?: boolean | undefined;
|
|
62
|
-
}[] : readonly {
|
|
63
|
-
readonly key: string;
|
|
64
|
-
readonly text: string;
|
|
65
|
-
readonly value?: any;
|
|
66
|
-
readonly colspan?: number | undefined;
|
|
67
|
-
readonly rowspan?: number | undefined;
|
|
68
|
-
readonly fixed?: boolean | "left" | "right" | undefined;
|
|
69
|
-
readonly classes?: string | readonly string[] | import('../types/common').DataTableCellClassesFn | undefined;
|
|
70
|
-
readonly headerClasses?: string | readonly string[] | undefined;
|
|
71
|
-
readonly align?: "start" | "end" | "center" | undefined;
|
|
72
|
-
readonly width?: string | number | undefined;
|
|
73
|
-
readonly minWidth?: string | undefined;
|
|
74
|
-
readonly maxWidth?: string | undefined;
|
|
75
|
-
readonly sortable?: boolean | undefined;
|
|
76
|
-
readonly sort?: import('../types').DataTableCompareFn | undefined;
|
|
77
|
-
readonly mustSort?: boolean | undefined;
|
|
78
|
-
}[] | Defaults["headers"]>;
|
|
79
|
-
default: unknown extends Defaults["headers"] ? readonly {
|
|
80
|
-
readonly key: string;
|
|
81
|
-
readonly text: string;
|
|
82
|
-
readonly value?: any;
|
|
83
|
-
readonly colspan?: number | undefined;
|
|
84
|
-
readonly rowspan?: number | undefined;
|
|
85
|
-
readonly fixed?: boolean | "left" | "right" | undefined;
|
|
86
|
-
readonly classes?: string | readonly string[] | import('../types/common').DataTableCellClassesFn | undefined;
|
|
87
|
-
readonly headerClasses?: string | readonly string[] | undefined;
|
|
88
|
-
readonly align?: "start" | "end" | "center" | undefined;
|
|
89
|
-
readonly width?: string | number | undefined;
|
|
90
|
-
readonly minWidth?: string | undefined;
|
|
91
|
-
readonly maxWidth?: string | undefined;
|
|
92
|
-
readonly sortable?: boolean | undefined;
|
|
93
|
-
readonly sort?: import('../types').DataTableCompareFn | undefined;
|
|
94
|
-
readonly mustSort?: boolean | undefined;
|
|
95
|
-
}[] : readonly {
|
|
96
|
-
readonly key: string;
|
|
97
|
-
readonly text: string;
|
|
98
|
-
readonly value?: any;
|
|
99
|
-
readonly colspan?: number | undefined;
|
|
100
|
-
readonly rowspan?: number | undefined;
|
|
101
|
-
readonly fixed?: boolean | "left" | "right" | undefined;
|
|
102
|
-
readonly classes?: string | readonly string[] | import('../types/common').DataTableCellClassesFn | undefined;
|
|
103
|
-
readonly headerClasses?: string | readonly string[] | undefined;
|
|
104
|
-
readonly align?: "start" | "end" | "center" | undefined;
|
|
105
|
-
readonly width?: string | number | undefined;
|
|
106
|
-
readonly minWidth?: string | undefined;
|
|
107
|
-
readonly maxWidth?: string | undefined;
|
|
108
|
-
readonly sortable?: boolean | undefined;
|
|
109
|
-
readonly sort?: import('../types').DataTableCompareFn | undefined;
|
|
110
|
-
readonly mustSort?: boolean | undefined;
|
|
111
|
-
}[] | Defaults["headers"];
|
|
112
|
-
};
|
|
113
|
-
};
|
|
114
|
-
export declare const Y_DATA_TABLE_HEADER_KEY: InjectionKey<{
|
|
115
|
-
headers: Ref<InternalDataTableHeader[][]>;
|
|
116
|
-
columns: Ref<InternalDataTableHeader[]>;
|
|
117
|
-
}>;
|
|
118
|
-
type HeaderProps = {
|
|
119
|
-
headers: DeepReadonly<DataTableHeader[]> | undefined;
|
|
120
|
-
};
|
|
121
|
-
export declare function createHeader(props: HeaderProps, options?: {
|
|
122
|
-
enableSelect?: Ref<boolean>;
|
|
123
|
-
}): {
|
|
124
|
-
headers: Ref<{
|
|
125
|
-
key: string;
|
|
126
|
-
text: string;
|
|
127
|
-
value?: any;
|
|
128
|
-
colspan?: number | undefined;
|
|
129
|
-
rowspan?: number | undefined;
|
|
130
|
-
fixed?: boolean | "left" | "right" | undefined;
|
|
131
|
-
classes?: string | string[] | import('../types/common').DataTableCellClassesFn | undefined;
|
|
132
|
-
headerClasses?: string | string[] | undefined;
|
|
133
|
-
align?: "start" | "end" | "center" | undefined;
|
|
134
|
-
width?: string | number | undefined;
|
|
135
|
-
minWidth?: string | undefined;
|
|
136
|
-
maxWidth?: string | undefined;
|
|
137
|
-
sortable: boolean;
|
|
138
|
-
sort?: import('../types').DataTableCompareFn | undefined;
|
|
139
|
-
mustSort?: boolean | undefined;
|
|
140
|
-
fixedOffset?: number | undefined;
|
|
141
|
-
lastFixed?: boolean | undefined;
|
|
142
|
-
rightOffset?: number | undefined;
|
|
143
|
-
}[][], InternalDataTableHeader[][] | {
|
|
144
|
-
key: string;
|
|
145
|
-
text: string;
|
|
146
|
-
value?: any;
|
|
147
|
-
colspan?: number | undefined;
|
|
148
|
-
rowspan?: number | undefined;
|
|
149
|
-
fixed?: boolean | "left" | "right" | undefined;
|
|
150
|
-
classes?: string | string[] | import('../types/common').DataTableCellClassesFn | undefined;
|
|
151
|
-
headerClasses?: string | string[] | undefined;
|
|
152
|
-
align?: "start" | "end" | "center" | undefined;
|
|
153
|
-
width?: string | number | undefined;
|
|
154
|
-
minWidth?: string | undefined;
|
|
155
|
-
maxWidth?: string | undefined;
|
|
156
|
-
sortable: boolean;
|
|
157
|
-
sort?: import('../types').DataTableCompareFn | undefined;
|
|
158
|
-
mustSort?: boolean | undefined;
|
|
159
|
-
fixedOffset?: number | undefined;
|
|
160
|
-
lastFixed?: boolean | undefined;
|
|
161
|
-
rightOffset?: number | undefined;
|
|
162
|
-
}[][]>;
|
|
163
|
-
columns: Ref<{
|
|
164
|
-
key: string;
|
|
165
|
-
text: string;
|
|
166
|
-
value?: any;
|
|
167
|
-
colspan?: number | undefined;
|
|
168
|
-
rowspan?: number | undefined;
|
|
169
|
-
fixed?: boolean | "left" | "right" | undefined;
|
|
170
|
-
classes?: string | string[] | import('../types/common').DataTableCellClassesFn | undefined;
|
|
171
|
-
headerClasses?: string | string[] | undefined;
|
|
172
|
-
align?: "start" | "end" | "center" | undefined;
|
|
173
|
-
width?: string | number | undefined;
|
|
174
|
-
minWidth?: string | undefined;
|
|
175
|
-
maxWidth?: string | undefined;
|
|
176
|
-
sortable: boolean;
|
|
177
|
-
sort?: import('../types').DataTableCompareFn | undefined;
|
|
178
|
-
mustSort?: boolean | undefined;
|
|
179
|
-
fixedOffset?: number | undefined;
|
|
180
|
-
lastFixed?: boolean | undefined;
|
|
181
|
-
rightOffset?: number | undefined;
|
|
182
|
-
}[], InternalDataTableHeader[] | {
|
|
183
|
-
key: string;
|
|
184
|
-
text: string;
|
|
185
|
-
value?: any;
|
|
186
|
-
colspan?: number | undefined;
|
|
187
|
-
rowspan?: number | undefined;
|
|
188
|
-
fixed?: boolean | "left" | "right" | undefined;
|
|
189
|
-
classes?: string | string[] | import('../types/common').DataTableCellClassesFn | undefined;
|
|
190
|
-
headerClasses?: string | string[] | undefined;
|
|
191
|
-
align?: "start" | "end" | "center" | undefined;
|
|
192
|
-
width?: string | number | undefined;
|
|
193
|
-
minWidth?: string | undefined;
|
|
194
|
-
maxWidth?: string | undefined;
|
|
195
|
-
sortable: boolean;
|
|
196
|
-
sort?: import('../types').DataTableCompareFn | undefined;
|
|
197
|
-
mustSort?: boolean | undefined;
|
|
198
|
-
fixedOffset?: number | undefined;
|
|
199
|
-
lastFixed?: boolean | undefined;
|
|
200
|
-
rightOffset?: number | undefined;
|
|
201
|
-
}[]>;
|
|
202
|
-
};
|
|
203
|
-
export declare function useHeader(): {
|
|
204
|
-
headers: Ref<InternalDataTableHeader[][], InternalDataTableHeader[][]>;
|
|
205
|
-
columns: Ref<InternalDataTableHeader[], InternalDataTableHeader[]>;
|
|
206
|
-
};
|
|
207
|
-
export {};
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { PropType, Ref } from 'vue';
|
|
2
|
-
import { DataTableItem, InternalDataTableHeader } from '../types';
|
|
3
|
-
|
|
4
|
-
export type DataTableItemsProps = {
|
|
5
|
-
items: any[];
|
|
6
|
-
itemKey: any;
|
|
7
|
-
itemSelectable: any;
|
|
8
|
-
returnItem: boolean;
|
|
9
|
-
};
|
|
10
|
-
export declare const pressDataTableItemsProps: <Defaults extends {
|
|
11
|
-
items?: unknown;
|
|
12
|
-
itemKey?: unknown;
|
|
13
|
-
itemSelectable?: unknown;
|
|
14
|
-
returnItem?: unknown;
|
|
15
|
-
} = {}>(defaults?: Defaults | undefined) => {
|
|
16
|
-
items: unknown extends Defaults["items"] ? {
|
|
17
|
-
type: PropType<any[]>;
|
|
18
|
-
default: () => never[];
|
|
19
|
-
} : Omit<{
|
|
20
|
-
type: PropType<any[]>;
|
|
21
|
-
default: () => never[];
|
|
22
|
-
}, "type" | "default"> & {
|
|
23
|
-
type: PropType<unknown extends Defaults["items"] ? any[] : any[] | Defaults["items"]>;
|
|
24
|
-
default: unknown extends Defaults["items"] ? any[] : any[] | Defaults["items"];
|
|
25
|
-
};
|
|
26
|
-
itemKey: unknown extends Defaults["itemKey"] ? {
|
|
27
|
-
type: PropType<any>;
|
|
28
|
-
default: string;
|
|
29
|
-
} : Omit<{
|
|
30
|
-
type: PropType<any>;
|
|
31
|
-
default: string;
|
|
32
|
-
}, "type" | "default"> & {
|
|
33
|
-
type: PropType<unknown extends Defaults["itemKey"] ? any : any>;
|
|
34
|
-
default: unknown extends Defaults["itemKey"] ? any : any;
|
|
35
|
-
};
|
|
36
|
-
itemSelectable: unknown extends Defaults["itemSelectable"] ? {
|
|
37
|
-
type: PropType<any>;
|
|
38
|
-
default: null;
|
|
39
|
-
} : Omit<{
|
|
40
|
-
type: PropType<any>;
|
|
41
|
-
default: null;
|
|
42
|
-
}, "type" | "default"> & {
|
|
43
|
-
type: PropType<unknown extends Defaults["itemSelectable"] ? any : any>;
|
|
44
|
-
default: unknown extends Defaults["itemSelectable"] ? any : any;
|
|
45
|
-
};
|
|
46
|
-
returnItem: unknown extends Defaults["returnItem"] ? BooleanConstructor : {
|
|
47
|
-
type: PropType<unknown extends Defaults["returnItem"] ? boolean : boolean | Defaults["returnItem"]>;
|
|
48
|
-
default: unknown extends Defaults["returnItem"] ? boolean : boolean | Defaults["returnItem"];
|
|
49
|
-
};
|
|
50
|
-
};
|
|
51
|
-
export declare function updateItem(props: Omit<DataTableItemsProps, 'items'>, item: any, index: number, columns: InternalDataTableHeader[]): DataTableItem;
|
|
52
|
-
export declare function updateItems(props: Omit<DataTableItemsProps, 'items'>, items: DataTableItemsProps['items'], columns: InternalDataTableHeader[]): DataTableItem[];
|
|
53
|
-
export declare function useItems(props: DataTableItemsProps, columns: Ref<InternalDataTableHeader[]>): {
|
|
54
|
-
items: import('vue').ComputedRef<DataTableItem<any>[]>;
|
|
55
|
-
};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export declare function useRectMeasure(): {
|
|
2
|
-
containerRef: import('vue').Ref<HTMLElement | undefined, HTMLElement | undefined>;
|
|
3
|
-
wrapperRef: import('vue').Ref<any, any>;
|
|
4
|
-
tableRef: import('vue').Ref<any, any>;
|
|
5
|
-
containerRect: import('vue').ShallowRef<DOMRectReadOnly | undefined, DOMRectReadOnly | undefined>;
|
|
6
|
-
wrapperRect: import('vue').ShallowRef<DOMRectReadOnly | undefined, DOMRectReadOnly | undefined>;
|
|
7
|
-
tableRect: import('vue').ShallowRef<DOMRectReadOnly | undefined, DOMRectReadOnly | undefined>;
|
|
8
|
-
};
|