yuyeon 0.3.6-beta.0 → 0.3.6-beta.10
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/style.css +1 -1
- package/dist/yuyeon.js +3945 -4297
- package/dist/yuyeon.umd.cjs +3 -3
- package/lib/components/date-picker/index.js +2 -1
- package/lib/components/date-picker/index.js.map +1 -1
- package/lib/components/dialog/YDialog.js +11 -2
- package/lib/components/dialog/YDialog.js.map +1 -1
- package/lib/components/layer/YLayer.js +7 -2
- package/lib/components/layer/YLayer.js.map +1 -1
- package/lib/components/pagination/YPagination.js +10 -10
- package/lib/components/pagination/YPagination.js.map +1 -1
- package/lib/components/snackbar/YSnackbar.js +25 -17
- package/lib/components/snackbar/YSnackbar.js.map +1 -1
- package/lib/components/table/YDataTableHead.js +4 -4
- package/lib/components/table/YDataTableHead.js.map +1 -1
- package/lib/components/table/YDataTableRow.js +0 -1
- package/lib/components/table/YDataTableRow.js.map +1 -1
- package/lib/components/table/composables/items.js.map +1 -1
- package/lib/components/table/composables/selection.js.map +1 -1
- package/lib/components/time-select/TimeSelect.vue +344 -0
- package/lib/components/tree-view/YTreeView.js +8 -8
- package/lib/components/tree-view/YTreeView.js.map +1 -1
- package/lib/components/tree-view/YTreeView.scss +5 -0
- package/lib/components/tree-view/YTreeViewNode.js +34 -4
- package/lib/components/tree-view/YTreeViewNode.js.map +1 -1
- package/lib/components/tree-view/tree-view.js +2 -2
- package/lib/components/tree-view/tree-view.js.map +1 -1
- package/lib/util/animation/index.js +19 -0
- package/lib/util/animation/index.js.map +1 -0
- package/lib/util/date/adapters/yuyeon-date-adapter.js +5 -2
- package/lib/util/date/adapters/yuyeon-date-adapter.js.map +1 -1
- package/lib/util/date/built-in.js +58 -4
- package/lib/util/date/built-in.js.map +1 -1
- package/lib/util/date/index.js +3 -0
- package/lib/util/date/index.js.map +1 -1
- package/lib/util/date/types.js.map +1 -1
- package/package.json +2 -5
- package/types/components/badge/YBadge.d.ts +2 -2
- package/types/components/checkbox/YCheckbox.d.ts +1 -1
- package/types/components/checkbox/YInputCheckbox.d.ts +1 -1
- package/types/components/date-picker/YDateCalendar.d.ts +4 -4
- package/types/components/date-picker/YDatePicker.d.ts +12 -12
- package/types/components/date-picker/YDatePickerControl.d.ts +2 -2
- package/types/components/date-picker/YMonthPicker.d.ts +2 -2
- package/types/components/date-picker/YYearPicker.d.ts +2 -2
- package/types/components/date-picker/index.d.ts +2 -1
- package/types/components/dialog/YDialog.d.ts +63 -61
- package/types/components/dropdown/YDropdown.d.ts +41 -41
- package/types/components/field-input/YFieldInput.d.ts +3 -3
- package/types/components/icon/YIcon.d.ts +3 -3
- package/types/components/input/YInput.d.ts +3 -3
- package/types/components/ip-field/YIpv4Field.d.ts +1 -1
- package/types/components/layer/YLayer.d.ts +4 -3
- package/types/components/menu/YMenu.d.ts +6 -4
- package/types/components/pagination/YPagination.d.ts +19 -13
- package/types/components/select/YSelect.d.ts +87 -87
- package/types/components/snackbar/YSnackbar.d.ts +3 -3
- package/types/components/switch/YSwitch.d.ts +1 -1
- package/types/components/table/YDataTable.d.ts +4 -4
- package/types/components/table/YDataTableBody.d.ts +2 -2
- package/types/components/table/YDataTableServer.d.ts +4 -4
- package/types/components/table/composables/selection.d.ts +2 -2
- package/types/components/textarea/YTextarea.d.ts +24 -24
- package/types/components/tooltip/YTooltip.d.ts +3 -3
- package/types/components/tree-view/YTreeView.d.ts +16 -4
- package/types/components/tree-view/YTreeViewNode.d.ts +18 -0
- package/types/composables/coordinate/index.d.ts +2 -2
- package/types/shims.d.ts +2 -1
- package/types/util/animation/index.d.ts +1 -0
- package/types/util/date/adapters/yuyeon-date-adapter.d.ts +5 -1
- package/types/util/date/built-in.d.ts +19 -1
- package/types/util/date/index.d.ts +1 -0
- package/types/util/date/types.d.ts +5 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../src/components/date-picker/index.ts"],"sourcesContent":["export * from './YDateCalendar';\nexport * from './YMonthPicker';\nexport * from './
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/components/date-picker/index.ts"],"sourcesContent":["export * from './YDateCalendar';\nexport * from './YDatePicker';\nexport * from './YMonthPicker';\nexport * from './YYearPicker';\n"],"mappings":"","ignoreList":[]}
|
|
@@ -35,7 +35,7 @@ export const YDialog = defineComponent({
|
|
|
35
35
|
YCard
|
|
36
36
|
},
|
|
37
37
|
props: pressYDialogPropsOptions(),
|
|
38
|
-
emits: ["update:modelValue"],
|
|
38
|
+
emits: ["update:modelValue", "afterEnter", "afterLeave"],
|
|
39
39
|
setup(props, _ref) {
|
|
40
40
|
let {
|
|
41
41
|
emit,
|
|
@@ -165,6 +165,12 @@ export const YDialog = defineComponent({
|
|
|
165
165
|
active.value = !currentActive;
|
|
166
166
|
}
|
|
167
167
|
}
|
|
168
|
+
function onAfterEnter() {
|
|
169
|
+
emit('afterEnter');
|
|
170
|
+
}
|
|
171
|
+
function onAfterLeave() {
|
|
172
|
+
emit('afterLeave');
|
|
173
|
+
}
|
|
168
174
|
watch(() => layer$.value?.baseEl, (neo, old) => {
|
|
169
175
|
if (neo) {
|
|
170
176
|
neo.addEventListener("click", onClick);
|
|
@@ -197,7 +203,10 @@ export const YDialog = defineComponent({
|
|
|
197
203
|
"content-styles": styles.value,
|
|
198
204
|
"modal": true,
|
|
199
205
|
"ref": layer$
|
|
200
|
-
}, omit(chooseProps(props, YLayer.props), ["contentStyles"])
|
|
206
|
+
}, omit(chooseProps(props, YLayer.props), ["contentStyles"]), {
|
|
207
|
+
"onAfterEnter": onAfterEnter,
|
|
208
|
+
"onAfterLeave": onAfterLeave
|
|
209
|
+
}), {
|
|
201
210
|
default: function () {
|
|
202
211
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
203
212
|
args[_key] = arguments[_key];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YDialog.js","names":["computed","getCurrentInstance","onMounted","onScopeDispose","ref","shallowRef","watch","Fragment","_Fragment","mergeProps","_mergeProps","createVNode","_createVNode","useModelDuplex","useRender","omit","bindClasses","chooseProps","defineComponent","propsFactory","toStyleSizeValue","YCard","pressYLayerProps","YLayer","useActiveStack","pressYDialogPropsOptions","persistent","type","Boolean","default","dialogClasses","Array","String","Object","focusTrap","offset","scrim","scrollStrategy","YDialog","name","components","props","emits","setup","_ref","emit","slots","vm","$yuyeon","appContext","config","globalProperties","active","classes","boundClasses","maximized","styles","contentStyles","paddingTop","layer$","children","onFocusin","e","prevTarget","relatedTarget","target","excludeTarget","document","querySelector","isSameNode","isArray","excluded","some","exclude","testChildrenContains","layers","layer","content$","contains","value","includes","focusableSelector","focusables","querySelectorAll","filter","el","hasAttribute","matches","length","firstChild","lastChild","focus","installFocusTrap","addEventListener","dismantleFocusTrap","removeEventListener","tempScrollTop","tempScrollLeft","preventInteractionBackground","toggle","root$","root","activeLayers","getActiveLayers","documentElement","classList","add","filtered","ctx","modal","scrollTop","scrollLeft","style","top","left","isMe","remove","requestAnimationFrame","every","onUpdate","v","onClick","currentActive","disabled","baseEl","neo","old","$event","_len","arguments","args","_key","base"],"sources":["../../../src/components/dialog/YDialog.tsx"],"sourcesContent":["import {\r\n\tcomputed,\r\n\tgetCurrentInstance,\r\n\tonMounted,\r\n\tonScopeDispose,\r\n\ttype PropType,\r\n\tref,\r\n\tshallowRef,\r\n\twatch,\r\n} from \"vue\";\r\n\r\nimport { useModelDuplex } from \"@/composables/communication\";\r\nimport { useRender } from \"@/composables/component\";\r\nimport { omit } from \"@/util/common\";\r\nimport {\r\n\tbindClasses,\r\n\tchooseProps,\r\n\tdefineComponent,\r\n\tpropsFactory,\r\n} from \"@/util/component\";\r\nimport { toStyleSizeValue } from \"@/util/ui\";\r\n\r\nimport { YCard } from \"../card\";\r\nimport { pressYLayerProps, YLayer } from \"../layer\";\r\nimport { useActiveStack } from \"../layer/active-stack\";\r\n\r\nimport \"./YDialog.scss\";\r\n\r\nexport const pressYDialogPropsOptions = propsFactory(\r\n\t{\r\n\t\tpersistent: {\r\n\t\t\ttype: Boolean as PropType<boolean>,\r\n\t\t\tdefault: true,\r\n\t\t},\r\n\t\tdialogClasses: {\r\n\t\t\ttype: [Array, String, Object] as PropType<\r\n\t\t\t\tstring[] | string | Record<string, any>\r\n\t\t\t>,\r\n\t\t},\r\n\t\tfocusTrap: {\r\n\t\t\ttype: [Boolean, String, Object, Array] as PropType<\r\n\t\t\t\tfalse | string | string[] | HTMLElement | HTMLElement[]\r\n\t\t\t>,\r\n\t\t\tdefault: true,\r\n\t\t},\r\n\t\toffset: {\r\n\t\t\ttype: String as PropType<string>,\r\n\t\t},\r\n\t\t...omit(\r\n\t\t\tpressYLayerProps({\r\n\t\t\t\tscrim: true,\r\n\t\t\t\tscrollStrategy: null,\r\n\t\t\t}),\r\n\t\t\t[\"offset\", \"classes\"],\r\n\t\t),\r\n\t},\r\n\t\"YDialog\",\r\n);\r\n\r\nexport const YDialog = defineComponent({\r\n\tname: \"YDialog\",\r\n\tcomponents: {\r\n\t\tYLayer,\r\n\t\tYCard,\r\n\t},\r\n\tprops: pressYDialogPropsOptions(),\r\n\temits: [\"update:modelValue\"],\r\n\tsetup(props, { emit, slots }) {\r\n\t\tconst vm = getCurrentInstance();\r\n\t\tconst $yuyeon = vm?.appContext.config.globalProperties.$yuyeon;\r\n\t\tconst active = useModelDuplex(props);\r\n\r\n\t\tconst classes = computed(() => {\r\n\t\t\tconst boundClasses = bindClasses(props.dialogClasses);\r\n\t\t\treturn {\r\n\t\t\t\t...boundClasses,\r\n\t\t\t\t\"y-dialog\": true,\r\n\t\t\t\t\"y-dialog--maximized\": props.maximized,\r\n\t\t\t};\r\n\t\t});\r\n\r\n\t\tconst styles = computed(() => {\r\n\t\t\treturn {\r\n\t\t\t\t...(props.contentStyles ?? {}),\r\n\t\t\t\tpaddingTop: toStyleSizeValue(props.offset),\r\n\t\t\t};\r\n\t\t});\r\n\r\n\t\tconst layer$ = ref<typeof YLayer>();\r\n\t\tconst { children } = useActiveStack(layer$, active, shallowRef(true));\r\n\r\n\t\tfunction onFocusin(e: FocusEvent) {\r\n\t\t\tif (props.focusTrap === false) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tconst prevTarget = e.relatedTarget as HTMLElement | null;\r\n\t\t\tconst target = e.target as HTMLElement | null;\r\n\r\n\t\t\tconst excludeTarget = props.focusTrap;\r\n\r\n\t\t\tif (\r\n\t\t\t\ttypeof excludeTarget === \"string\" &&\r\n\t\t\t\tdocument.querySelector(excludeTarget)?.isSameNode(target)\r\n\t\t\t) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (typeof excludeTarget === \"object\") {\r\n\t\t\t\tif (Array.isArray(excludeTarget)) {\r\n\t\t\t\t\tconst excluded = excludeTarget.some((exclude) => {\r\n\t\t\t\t\t\tif (typeof exclude === \"string\") {\r\n\t\t\t\t\t\t\treturn document.querySelector(exclude)?.isSameNode(target)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (typeof exclude === \"object\") {\r\n\t\t\t\t\t\t\treturn exclude?.isSameNode(target);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t});\r\n\t\t\t\t\tif (excluded) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (excludeTarget?.isSameNode(target)) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction testChildrenContains(layers: YLayer[]) {\r\n\t\t\t\treturn layers.some((layer) => {\r\n\t\t\t\t\treturn !layer.content$?.contains(target);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tif (\r\n\t\t\t\tprevTarget !== target &&\r\n\t\t\t\tlayer$.value?.content$ &&\r\n\t\t\t\t![document, layer$.value?.content$].includes(target) &&\r\n\t\t\t\t!layer$.value?.content$.contains(target) &&\r\n\t\t\t\t!testChildrenContains(children.value)\r\n\t\t\t) {\r\n\t\t\t\tconst focusableSelector =\r\n\t\t\t\t\t'button, [href], input:not([type=\"hidden\"]), select, textarea, [tabindex]:not([tabindex=\"-1\"])';\r\n\t\t\t\tconst focusables = [\r\n\t\t\t\t\t...layer$.value.content$.querySelectorAll(focusableSelector),\r\n\t\t\t\t].filter(\r\n\t\t\t\t\t(el) =>\r\n\t\t\t\t\t\t!el.hasAttribute(\"disabled\") && !el.matches('[tabindex=\"-1\"]'),\r\n\t\t\t\t) as HTMLElement[];\r\n\t\t\t\tif (!focusables.length) return;\r\n\t\t\t\tconst firstChild = focusables[0];\r\n\t\t\t\tconst lastChild = focusables[focusables.length - 1];\r\n\t\t\t\tif (target?.isSameNode(firstChild) || target?.isSameNode(lastChild)) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tif (firstChild === lastChild) {\r\n\t\t\t\t\tlastChild.focus();\r\n\t\t\t\t} else {\r\n\t\t\t\t\tfirstChild.focus();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction installFocusTrap() {\r\n\t\t\tdocument.addEventListener(\"focusin\", onFocusin);\r\n\t\t}\r\n\r\n\t\tfunction dismantleFocusTrap() {\r\n\t\t\tdocument.removeEventListener(\"focusin\", onFocusin);\r\n\t\t}\r\n\r\n\t\tconst tempScrollTop = ref(0);\r\n\t\tconst tempScrollLeft = ref(0);\r\n\r\n\t\tfunction preventInteractionBackground(toggle: boolean) {\r\n\t\t\tconst root$ = $yuyeon.root as HTMLElement;\r\n\t\t\tconst activeLayers = layer$.value?.getActiveLayers();\r\n\t\t\tif (toggle) {\r\n\t\t\t\tif (props.maximized) {\r\n\t\t\t\t\tdocument.documentElement.classList.add(\"y-dialog--prevent-scroll\");\r\n\t\t\t\t}\r\n\t\t\t\tconst filtered = activeLayers?.filter((layer: any) => {\r\n\t\t\t\t\treturn layer.ctx.modal;\r\n\t\t\t\t});\r\n\t\t\t\tif (\r\n\t\t\t\t\t(filtered && !filtered.length) ||\r\n\t\t\t\t\t!root$.classList.contains(\"y-dialog--virtual-scroll\")\r\n\t\t\t\t) {\r\n\t\t\t\t\tconst scrollTop = document.documentElement.scrollTop;\r\n\t\t\t\t\tconst scrollLeft = document.documentElement.scrollLeft;\r\n\t\t\t\t\ttempScrollTop.value = scrollTop;\r\n\t\t\t\t\ttempScrollLeft.value = scrollLeft;\r\n\r\n\t\t\t\t\troot$.classList.add(\"y-dialog--virtual-scroll\");\r\n\t\t\t\t\troot$.style.top = toStyleSizeValue(-1 * scrollTop) || \"\";\r\n\t\t\t\t\troot$.style.left = toStyleSizeValue(-1 * scrollLeft) || \"\";\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tconst filtered = activeLayers?.filter((layer: any) => {\r\n\t\t\t\t\treturn !layer$.value?.isMe(layer) && layer.ctx.modal;\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif (!filtered?.length && root$) {\r\n\t\t\t\t\tdocument.documentElement.classList.remove(\"y-dialog--prevent-scroll\");\r\n\t\t\t\t\troot$.classList.remove(\"y-dialog--virtual-scroll\");\r\n\t\t\t\t\troot$.style.top = \"\";\r\n\t\t\t\t\troot$.style.left = \"\";\r\n\t\t\t\t\trequestAnimationFrame(() => {\r\n\t\t\t\t\t\tdocument.documentElement.scrollTop = tempScrollTop.value;\r\n\t\t\t\t\t\tdocument.documentElement.scrollLeft = tempScrollLeft.value;\r\n\t\t\t\t\t});\r\n\t\t\t\t} else if (filtered.every((layer: any) => !layer.ctx?.maximized)) {\r\n\t\t\t\t\tdocument.documentElement.classList.remove(\"y-dialog--prevent-scroll\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction onUpdate(v: boolean) {\r\n\t\t\tactive.value = v;\r\n\t\t}\r\n\r\n\t\tfunction onClick(e: MouseEvent) {\r\n\t\t\tconst currentActive = active.value;\r\n\t\t\tif (!props.disabled) {\r\n\t\t\t\tactive.value = !currentActive;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\twatch(\r\n\t\t\t() => layer$.value?.baseEl,\r\n\t\t\t(neo, old) => {\r\n\t\t\t\tif (neo) {\r\n\t\t\t\t\tneo.addEventListener(\"click\", onClick);\r\n\t\t\t\t} else if (old) {\r\n\t\t\t\t\told.removeEventListener(\"click\", onClick);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t);\r\n\r\n\t\tif (active.value) {\r\n\t\t\tinstallFocusTrap();\r\n\t\t\tpreventInteractionBackground(true);\r\n\t\t}\r\n\r\n\t\twatch(active, (neo) => {\r\n\t\t\tneo ? installFocusTrap() : dismantleFocusTrap();\r\n\t\t\tpreventInteractionBackground(neo);\r\n\t\t});\r\n\r\n\t\tonMounted(() => {\r\n\t\t\tif (active.value) {\r\n\t\t\t\tpreventInteractionBackground(true);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tonScopeDispose(() => {\r\n\t\t\tdismantleFocusTrap();\r\n\t\t\tpreventInteractionBackground(false);\r\n\t\t});\r\n\r\n\t\tuseRender(() => {\r\n\t\t\treturn (\r\n\t\t\t\t<>\r\n\t\t\t\t\t<YLayer\r\n\t\t\t\t\t\tv-model={active.value}\r\n\t\t\t\t\t\tclasses={classes.value}\r\n\t\t\t\t\t\tcontent-styles={styles.value}\r\n\t\t\t\t\t\tmodal\r\n\t\t\t\t\t\tref={layer$}\r\n\t\t\t\t\t\t{...omit(chooseProps(props, YLayer.props), [\"contentStyles\"])}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{{\r\n\t\t\t\t\t\t\tdefault: (...args: any[]) => slots.default?.(...args),\r\n\t\t\t\t\t\t\tbase: slots.base,\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t</YLayer>\r\n\t\t\t\t</>\r\n\t\t\t);\r\n\t\t});\r\n\r\n\t\treturn {\r\n\t\t\tactive,\r\n\t\t\tlayer: layer$,\r\n\t\t\tclasses,\r\n\t\t\tchildren,\r\n\t\t};\r\n\t},\r\n});\r\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"YDialog.js","names":["computed","getCurrentInstance","onMounted","onScopeDispose","ref","shallowRef","watch","Fragment","_Fragment","mergeProps","_mergeProps","createVNode","_createVNode","useModelDuplex","useRender","omit","bindClasses","chooseProps","defineComponent","propsFactory","toStyleSizeValue","YCard","pressYLayerProps","YLayer","useActiveStack","pressYDialogPropsOptions","persistent","type","Boolean","default","dialogClasses","Array","String","Object","focusTrap","offset","scrim","scrollStrategy","YDialog","name","components","props","emits","setup","_ref","emit","slots","vm","$yuyeon","appContext","config","globalProperties","active","classes","boundClasses","maximized","styles","contentStyles","paddingTop","layer$","children","onFocusin","e","prevTarget","relatedTarget","target","excludeTarget","document","querySelector","isSameNode","isArray","excluded","some","exclude","testChildrenContains","layers","layer","content$","contains","value","includes","focusableSelector","focusables","querySelectorAll","filter","el","hasAttribute","matches","length","firstChild","lastChild","focus","installFocusTrap","addEventListener","dismantleFocusTrap","removeEventListener","tempScrollTop","tempScrollLeft","preventInteractionBackground","toggle","root$","root","activeLayers","getActiveLayers","documentElement","classList","add","filtered","ctx","modal","scrollTop","scrollLeft","style","top","left","isMe","remove","requestAnimationFrame","every","onUpdate","v","onClick","currentActive","disabled","onAfterEnter","onAfterLeave","baseEl","neo","old","$event","_len","arguments","args","_key","base"],"sources":["../../../src/components/dialog/YDialog.tsx"],"sourcesContent":["import {\r\n\tcomputed,\r\n\tgetCurrentInstance,\r\n\tonMounted,\r\n\tonScopeDispose,\r\n\ttype PropType,\r\n\tref,\r\n\tshallowRef,\r\n\twatch,\r\n} from \"vue\";\r\n\r\nimport { useModelDuplex } from \"@/composables/communication\";\r\nimport { useRender } from \"@/composables/component\";\r\nimport { omit } from \"@/util/common\";\r\nimport {\r\n\tbindClasses,\r\n\tchooseProps,\r\n\tdefineComponent,\r\n\tpropsFactory,\r\n} from \"@/util/component\";\r\nimport { toStyleSizeValue } from \"@/util/ui\";\r\n\r\nimport { YCard } from \"../card\";\r\nimport { pressYLayerProps, YLayer } from \"../layer\";\r\nimport { useActiveStack } from \"../layer/active-stack\";\r\n\r\nimport \"./YDialog.scss\";\r\n\r\nexport const pressYDialogPropsOptions = propsFactory(\r\n\t{\r\n\t\tpersistent: {\r\n\t\t\ttype: Boolean as PropType<boolean>,\r\n\t\t\tdefault: true,\r\n\t\t},\r\n\t\tdialogClasses: {\r\n\t\t\ttype: [Array, String, Object] as PropType<\r\n\t\t\t\tstring[] | string | Record<string, any>\r\n\t\t\t>,\r\n\t\t},\r\n\t\tfocusTrap: {\r\n\t\t\ttype: [Boolean, String, Object, Array] as PropType<\r\n\t\t\t\tfalse | string | string[] | HTMLElement | HTMLElement[]\r\n\t\t\t>,\r\n\t\t\tdefault: true,\r\n\t\t},\r\n\t\toffset: {\r\n\t\t\ttype: String as PropType<string>,\r\n\t\t},\r\n\t\t...omit(\r\n\t\t\tpressYLayerProps({\r\n\t\t\t\tscrim: true,\r\n\t\t\t\tscrollStrategy: null,\r\n\t\t\t}),\r\n\t\t\t[\"offset\", \"classes\"],\r\n\t\t),\r\n\t},\r\n\t\"YDialog\",\r\n);\r\n\r\nexport const YDialog = defineComponent({\r\n\tname: \"YDialog\",\r\n\tcomponents: {\r\n\t\tYLayer,\r\n\t\tYCard,\r\n\t},\r\n\tprops: pressYDialogPropsOptions(),\r\n\temits: [\"update:modelValue\", \"afterEnter\", \"afterLeave\"],\r\n\tsetup(props, { emit, slots }) {\r\n\t\tconst vm = getCurrentInstance();\r\n\t\tconst $yuyeon = vm?.appContext.config.globalProperties.$yuyeon;\r\n\t\tconst active = useModelDuplex(props);\r\n\r\n\t\tconst classes = computed(() => {\r\n\t\t\tconst boundClasses = bindClasses(props.dialogClasses);\r\n\t\t\treturn {\r\n\t\t\t\t...boundClasses,\r\n\t\t\t\t\"y-dialog\": true,\r\n\t\t\t\t\"y-dialog--maximized\": props.maximized,\r\n\t\t\t};\r\n\t\t});\r\n\r\n\t\tconst styles = computed(() => {\r\n\t\t\treturn {\r\n\t\t\t\t...(props.contentStyles ?? {}),\r\n\t\t\t\tpaddingTop: toStyleSizeValue(props.offset),\r\n\t\t\t};\r\n\t\t});\r\n\r\n\t\tconst layer$ = ref<typeof YLayer>();\r\n\t\tconst { children } = useActiveStack(layer$, active, shallowRef(true));\r\n\r\n\t\tfunction onFocusin(e: FocusEvent) {\r\n\t\t\tif (props.focusTrap === false) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tconst prevTarget = e.relatedTarget as HTMLElement | null;\r\n\t\t\tconst target = e.target as HTMLElement | null;\r\n\r\n\t\t\tconst excludeTarget = props.focusTrap;\r\n\r\n\t\t\tif (\r\n\t\t\t\ttypeof excludeTarget === \"string\" &&\r\n\t\t\t\tdocument.querySelector(excludeTarget)?.isSameNode(target)\r\n\t\t\t) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (typeof excludeTarget === \"object\") {\r\n\t\t\t\tif (Array.isArray(excludeTarget)) {\r\n\t\t\t\t\tconst excluded = excludeTarget.some((exclude) => {\r\n\t\t\t\t\t\tif (typeof exclude === \"string\") {\r\n\t\t\t\t\t\t\treturn document.querySelector(exclude)?.isSameNode(target)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (typeof exclude === \"object\") {\r\n\t\t\t\t\t\t\treturn exclude?.isSameNode(target);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t});\r\n\t\t\t\t\tif (excluded) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (excludeTarget?.isSameNode(target)) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction testChildrenContains(layers: YLayer[]) {\r\n\t\t\t\treturn layers.some((layer) => {\r\n\t\t\t\t\treturn !layer.content$?.contains(target);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tif (\r\n\t\t\t\tprevTarget !== target &&\r\n\t\t\t\tlayer$.value?.content$ &&\r\n\t\t\t\t![document, layer$.value?.content$].includes(target) &&\r\n\t\t\t\t!layer$.value?.content$.contains(target) &&\r\n\t\t\t\t!testChildrenContains(children.value)\r\n\t\t\t) {\r\n\t\t\t\tconst focusableSelector =\r\n\t\t\t\t\t'button, [href], input:not([type=\"hidden\"]), select, textarea, [tabindex]:not([tabindex=\"-1\"])';\r\n\t\t\t\tconst focusables = [\r\n\t\t\t\t\t...layer$.value.content$.querySelectorAll(focusableSelector),\r\n\t\t\t\t].filter(\r\n\t\t\t\t\t(el) =>\r\n\t\t\t\t\t\t!el.hasAttribute(\"disabled\") && !el.matches('[tabindex=\"-1\"]'),\r\n\t\t\t\t) as HTMLElement[];\r\n\t\t\t\tif (!focusables.length) return;\r\n\t\t\t\tconst firstChild = focusables[0];\r\n\t\t\t\tconst lastChild = focusables[focusables.length - 1];\r\n\t\t\t\tif (target?.isSameNode(firstChild) || target?.isSameNode(lastChild)) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tif (firstChild === lastChild) {\r\n\t\t\t\t\tlastChild.focus();\r\n\t\t\t\t} else {\r\n\t\t\t\t\tfirstChild.focus();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction installFocusTrap() {\r\n\t\t\tdocument.addEventListener(\"focusin\", onFocusin);\r\n\t\t}\r\n\r\n\t\tfunction dismantleFocusTrap() {\r\n\t\t\tdocument.removeEventListener(\"focusin\", onFocusin);\r\n\t\t}\r\n\r\n\t\tconst tempScrollTop = ref(0);\r\n\t\tconst tempScrollLeft = ref(0);\r\n\r\n\t\tfunction preventInteractionBackground(toggle: boolean) {\r\n\t\t\tconst root$ = $yuyeon.root as HTMLElement;\r\n\t\t\tconst activeLayers = layer$.value?.getActiveLayers();\r\n\t\t\tif (toggle) {\r\n\t\t\t\tif (props.maximized) {\r\n\t\t\t\t\tdocument.documentElement.classList.add(\"y-dialog--prevent-scroll\");\r\n\t\t\t\t}\r\n\t\t\t\tconst filtered = activeLayers?.filter((layer: any) => {\r\n\t\t\t\t\treturn layer.ctx.modal;\r\n\t\t\t\t});\r\n\t\t\t\tif (\r\n\t\t\t\t\t(filtered && !filtered.length) ||\r\n\t\t\t\t\t!root$.classList.contains(\"y-dialog--virtual-scroll\")\r\n\t\t\t\t) {\r\n\t\t\t\t\tconst scrollTop = document.documentElement.scrollTop;\r\n\t\t\t\t\tconst scrollLeft = document.documentElement.scrollLeft;\r\n\t\t\t\t\ttempScrollTop.value = scrollTop;\r\n\t\t\t\t\ttempScrollLeft.value = scrollLeft;\r\n\r\n\t\t\t\t\troot$.classList.add(\"y-dialog--virtual-scroll\");\r\n\t\t\t\t\troot$.style.top = toStyleSizeValue(-1 * scrollTop) || \"\";\r\n\t\t\t\t\troot$.style.left = toStyleSizeValue(-1 * scrollLeft) || \"\";\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tconst filtered = activeLayers?.filter((layer: any) => {\r\n\t\t\t\t\treturn !layer$.value?.isMe(layer) && layer.ctx.modal;\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif (!filtered?.length && root$) {\r\n\t\t\t\t\tdocument.documentElement.classList.remove(\"y-dialog--prevent-scroll\");\r\n\t\t\t\t\troot$.classList.remove(\"y-dialog--virtual-scroll\");\r\n\t\t\t\t\troot$.style.top = \"\";\r\n\t\t\t\t\troot$.style.left = \"\";\r\n\t\t\t\t\trequestAnimationFrame(() => {\r\n\t\t\t\t\t\tdocument.documentElement.scrollTop = tempScrollTop.value;\r\n\t\t\t\t\t\tdocument.documentElement.scrollLeft = tempScrollLeft.value;\r\n\t\t\t\t\t});\r\n\t\t\t\t} else if (filtered.every((layer: any) => !layer.ctx?.maximized)) {\r\n\t\t\t\t\tdocument.documentElement.classList.remove(\"y-dialog--prevent-scroll\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction onUpdate(v: boolean) {\r\n\t\t\tactive.value = v;\r\n\t\t}\r\n\r\n\t\tfunction onClick(e: MouseEvent) {\r\n\t\t\tconst currentActive = active.value;\r\n\t\t\tif (!props.disabled) {\r\n\t\t\t\tactive.value = !currentActive;\r\n\t\t\t}\r\n\t\t}\r\n\r\n function onAfterEnter() {\r\n emit('afterEnter')\r\n }\r\n\r\n function onAfterLeave() {\r\n emit('afterLeave')\r\n }\r\n\r\n\t\twatch(\r\n\t\t\t() => layer$.value?.baseEl,\r\n\t\t\t(neo, old) => {\r\n\t\t\t\tif (neo) {\r\n\t\t\t\t\tneo.addEventListener(\"click\", onClick);\r\n\t\t\t\t} else if (old) {\r\n\t\t\t\t\told.removeEventListener(\"click\", onClick);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t);\r\n\r\n\t\tif (active.value) {\r\n\t\t\tinstallFocusTrap();\r\n\t\t\tpreventInteractionBackground(true);\r\n\t\t}\r\n\r\n\t\twatch(active, (neo) => {\r\n\t\t\tneo ? installFocusTrap() : dismantleFocusTrap();\r\n\t\t\tpreventInteractionBackground(neo);\r\n\t\t});\r\n\r\n\t\tonMounted(() => {\r\n\t\t\tif (active.value) {\r\n\t\t\t\tpreventInteractionBackground(true);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tonScopeDispose(() => {\r\n\t\t\tdismantleFocusTrap();\r\n\t\t\tpreventInteractionBackground(false);\r\n\t\t});\r\n\r\n\t\tuseRender(() => {\r\n\t\t\treturn (\r\n\t\t\t\t<>\r\n\t\t\t\t\t<YLayer\r\n\t\t\t\t\t\tv-model={active.value}\r\n\t\t\t\t\t\tclasses={classes.value}\r\n\t\t\t\t\t\tcontent-styles={styles.value}\r\n\t\t\t\t\t\tmodal\r\n\t\t\t\t\t\tref={layer$}\r\n\t\t\t\t\t\t{...omit(chooseProps(props, YLayer.props), [\"contentStyles\"])}\r\n onAfterEnter={onAfterEnter}\r\n onAfterLeave={onAfterLeave}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{{\r\n\t\t\t\t\t\t\tdefault: (...args: any[]) => slots.default?.(...args),\r\n\t\t\t\t\t\t\tbase: slots.base,\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t</YLayer>\r\n\t\t\t\t</>\r\n\t\t\t);\r\n\t\t});\r\n\r\n\t\treturn {\r\n\t\t\tactive,\r\n\t\t\tlayer: layer$,\r\n\t\t\tclasses,\r\n\t\t\tchildren,\r\n\t\t};\r\n\t},\r\n});\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -89,7 +89,8 @@ export const YLayer = defineComponent({
|
|
|
89
89
|
emits: {
|
|
90
90
|
"update:modelValue": value => true,
|
|
91
91
|
"click:complement": mouseEvent => true,
|
|
92
|
-
afterLeave: () => true
|
|
92
|
+
afterLeave: () => true,
|
|
93
|
+
afterEnter: () => true
|
|
93
94
|
},
|
|
94
95
|
slots: Object,
|
|
95
96
|
setup(props, _ref) {
|
|
@@ -184,6 +185,7 @@ export const YLayer = defineComponent({
|
|
|
184
185
|
});
|
|
185
186
|
function onAfterEnter() {
|
|
186
187
|
finish.value = true;
|
|
188
|
+
emit('afterEnter');
|
|
187
189
|
}
|
|
188
190
|
function onAfterLeave() {
|
|
189
191
|
onAfterUpdate();
|
|
@@ -307,7 +309,10 @@ export const YLayer = defineComponent({
|
|
|
307
309
|
}, contentEvents.value, {
|
|
308
310
|
"ref": content$
|
|
309
311
|
}), [slots.default?.({
|
|
310
|
-
active: active.value
|
|
312
|
+
active: active.value,
|
|
313
|
+
close: () => {
|
|
314
|
+
active.value = false;
|
|
315
|
+
}
|
|
311
316
|
})]), [[_vShow, active.value], [_resolveDirective("complement-click"), {
|
|
312
317
|
...complementClickOption
|
|
313
318
|
}]])]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YLayer.js","names":["computed","getCurrentInstance","mergeProps","reactive","ref","shallowRef","Teleport","Transition","toRef","Fragment","_Fragment","createVNode","_createVNode","vShow","_vShow","resolveDirective","_resolveDirective","_mergeProps","withDirectives","_withDirectives","useModelDuplex","useRender","pressCoordinateProps","useCoordinate","pressDimensionPropsOptions","useDimension","useLayerGroup","pressThemePropsOptions","useLocalTheme","useLazy","PolyTransition","pressPolyTransitionPropsOptions","usePolyTransition","ComplementClick","bindClasses","defineComponent","propsFactory","pressBasePropsOptions","useBase","pressContentPropsOptions","useContent","pressScrollStrategyProps","useScrollStrategies","noop","pressYLayerProps","modelValue","type","Boolean","scrim","scrimOpacity","Number","eager","classes","Array","String","Object","contentClasses","closeClickScrim","contentStyles","default","disabled","maximized","openOnHover","openDelay","closeDelay","zIndex","contained","layerGroup","YLayer","name","inheritAttrs","components","directives","props","modal","emits","value","mouseEvent","afterLeave","slots","setup","_ref","emit","expose","attrs","vm","scrim$","content$","root$","model","active","get","set","v","base","base$","baseEl","baseSlot","baseFromSlotEl","contentEvents","themeClasses","layerGroupState","getActiveLayers","polyTransitionBindProps","dimensionStyles","lazyValue","onAfterUpdate","finish","hovered","focused","rendered","coordination","coordinateStyles","updateCoordinate","contentEl","root","onClickComplementLayer","target","closeConditional","complementClickOption","handler","determine","include","onAfterEnter","onAfterLeave","onClickScrim","onMouseenter","event","onMouseleave","computedStyle","toString","computedClass","boundClasses","computedContentClasses","side","align","isMe","vnode","slotBase","class","baseProps"],"sources":["../../../src/components/layer/YLayer.tsx"],"sourcesContent":["import type { ComponentInternalInstance, PropType, SlotsType } from \"vue\";\r\nimport {\r\n\tcomputed,\r\n\tgetCurrentInstance,\r\n\tmergeProps,\r\n\treactive,\r\n\tref,\r\n\tshallowRef,\r\n\tTeleport,\r\n\tTransition,\r\n\ttoRef,\r\n} from \"vue\";\r\n\r\nimport { useModelDuplex } from \"@/composables/communication\";\r\nimport { useRender } from \"@/composables/component\";\r\nimport { pressCoordinateProps, useCoordinate } from \"@/composables/coordinate\";\r\nimport {\r\n\tpressDimensionPropsOptions,\r\n\tuseDimension,\r\n} from \"@/composables/dimension\";\r\nimport { useLayerGroup } from \"@/composables/layer-group\";\r\nimport { pressThemePropsOptions, useLocalTheme } from \"@/composables/theme\";\r\nimport { useLazy } from \"@/composables/timing\";\r\nimport {\r\n\tPolyTransition,\r\n\tpressPolyTransitionPropsOptions,\r\n\tusePolyTransition,\r\n} from \"@/composables/transition\";\r\nimport {\r\n\tComplementClick,\r\n\ttype ComplementClickBindingOptions,\r\n} from \"@/directives/complement-click\";\r\nimport { bindClasses, defineComponent, propsFactory } from \"@/util/component\";\r\n\r\nimport { pressBasePropsOptions, useBase } from \"./base\";\r\nimport { pressContentPropsOptions, useContent } from \"./content\";\r\nimport {\r\n\tpressScrollStrategyProps,\r\n\tuseScrollStrategies,\r\n} from \"./scroll-strategies\";\r\n\r\nimport \"./YLayer.scss\";\r\nimport type { CssProperties } from \"@/types\";\r\nimport { noop } from \"@/util\";\r\n\r\nexport const pressYLayerProps = propsFactory(\r\n\t{\r\n\t\tmodelValue: {\r\n\t\t\ttype: Boolean as PropType<boolean>,\r\n\t\t},\r\n\t\tscrim: {\r\n\t\t\ttype: Boolean as PropType<boolean>,\r\n\t\t},\r\n\t\tscrimOpacity: {\r\n\t\t\ttype: Number as PropType<number>,\r\n\t\t},\r\n\t\teager: {\r\n\t\t\ttype: Boolean as PropType<boolean>,\r\n\t\t},\r\n\t\tclasses: {\r\n\t\t\ttype: [Array, String, Object] as PropType<\r\n\t\t\t\tstring[] | string | Record<string, any>\r\n\t\t\t>,\r\n\t\t},\r\n\t\tcontentClasses: {\r\n\t\t\ttype: [Array, String, Object] as PropType<\r\n\t\t\t\tstring[] | string | Record<string, any>\r\n\t\t\t>,\r\n\t\t},\r\n\t\tcloseClickScrim: {\r\n\t\t\ttype: Boolean as PropType<boolean>,\r\n\t\t},\r\n\t\tcontentStyles: {\r\n\t\t\ttype: Object as PropType<CssProperties>,\r\n\t\t\tdefault: () => {},\r\n\t\t},\r\n\t\tdisabled: {\r\n\t\t\ttype: Boolean as PropType<boolean>,\r\n\t\t\tdefault: false,\r\n\t\t},\r\n\t\tmaximized: {\r\n\t\t\ttype: Boolean as PropType<boolean>,\r\n\t\t},\r\n\t\topenOnHover: {\r\n\t\t\ttype: Boolean as PropType<boolean>,\r\n\t\t\tdefault: false,\r\n\t\t},\r\n\t\topenDelay: {\r\n\t\t\ttype: Number as PropType<number>,\r\n\t\t\tdefault: 200,\r\n\t\t},\r\n\t\tcloseDelay: {\r\n\t\t\ttype: Number as PropType<number>,\r\n\t\t\tdefault: 200,\r\n\t\t},\r\n\t\tzIndex: {\r\n\t\t\ttype: [Number, String] as PropType<number | string>,\r\n\t\t\tdefault: 2000,\r\n\t\t},\r\n\t\tcontained: Boolean,\r\n\t\tlayerGroup: [String, Object] as PropType<string | Element>,\r\n\t\t...pressThemePropsOptions(),\r\n\t\t...pressPolyTransitionPropsOptions(),\r\n\t\t...pressBasePropsOptions(),\r\n\t\t...pressContentPropsOptions(),\r\n\t\t...pressCoordinateProps(),\r\n\t\t...pressScrollStrategyProps(),\r\n\t\t...pressDimensionPropsOptions(),\r\n\t},\r\n\t\"YLayer\",\r\n);\r\n\r\nexport const YLayer = defineComponent({\r\n\tname: \"YLayer\",\r\n\tinheritAttrs: false,\r\n\tcomponents: {\r\n\t\tPolyTransition,\r\n\t},\r\n\tdirectives: {\r\n\t\tComplementClick,\r\n\t},\r\n\tprops: {\r\n\t\tmodal: Boolean as PropType<boolean>,\r\n\t\t...pressYLayerProps(),\r\n\t},\r\n\temits: {\r\n\t\t\"update:modelValue\": (value: boolean) => true,\r\n\t\t\"click:complement\": (mouseEvent: MouseEvent) => true,\r\n\t\tafterLeave: () => true,\r\n\t},\r\n\tslots: Object as SlotsType<{\r\n\t\tbase: any;\r\n\t\tdefault: any;\r\n\t}>,\r\n\tsetup(props, { emit, expose, attrs, slots }) {\r\n\t\tconst vm = getCurrentInstance();\r\n\t\tconst scrim$ = ref<HTMLElement>();\r\n\t\tconst content$ = ref<HTMLElement>();\r\n\t\tconst root$ = ref<HTMLElement>();\r\n\t\tconst model = useModelDuplex(props);\r\n\t\tconst active = computed({\r\n\t\t\tget: (): boolean => {\r\n\t\t\t\treturn !!model.value;\r\n\t\t\t},\r\n\t\t\tset: (v: boolean) => {\r\n\t\t\t\tif (!(v && props.disabled)) model.value = v;\r\n\t\t\t},\r\n\t\t});\r\n\t\t// Frags\r\n\t\tconst { base, base$, baseEl, baseSlot, baseFromSlotEl } = useBase(props);\r\n\t\tconst { contentEvents } = useContent(props, active);\r\n\t\tconst { themeClasses } = useLocalTheme(props);\r\n\t\tconst { layerGroup, layerGroupState, getActiveLayers } =\r\n\t\t\tuseLayerGroup(props);\r\n\t\tconst { polyTransitionBindProps } = usePolyTransition(props);\r\n\t\tconst { dimensionStyles } = useDimension(props);\r\n\r\n\t\tconst { lazyValue, onAfterUpdate } = useLazy(toRef(props, \"eager\"), active);\r\n\t\t// States\r\n\t\tconst finish = shallowRef(false);\r\n\t\tconst hovered = ref(false);\r\n\t\tconst focused = ref(false);\r\n\t\tconst disabled = toRef(props, \"disabled\");\r\n\t\tconst maximized = toRef(props, \"maximized\");\r\n\r\n\t\tconst rendered = computed<boolean>(\r\n\t\t\t() => !disabled.value && (lazyValue.value || active.value),\r\n\t\t);\r\n\r\n\t\tconst { coordination, coordinateStyles, updateCoordinate } = useCoordinate(props, {\r\n\t\t\tcontentEl: content$,\r\n\t\t\tbase,\r\n\t\t\tactive,\r\n\t\t});\r\n\t\tuseScrollStrategies(props, {\r\n\t\t\troot: root$,\r\n\t\t\tcontentEl: content$,\r\n\t\t\tactive,\r\n\t\t\tbaseEl: base,\r\n\t\t\tupdateCoordinate,\r\n\t\t});\r\n\r\n\t\tfunction onClickComplementLayer(mouseEvent: MouseEvent) {\r\n\t\t\temit(\"click:complement\", mouseEvent);\r\n\t\t\tif (!props.modal) {\r\n\t\t\t\tif (\r\n\t\t\t\t\tscrim$.value !== null &&\r\n\t\t\t\t\tscrim$.value === mouseEvent.target &&\r\n\t\t\t\t\tprops.closeClickScrim\r\n\t\t\t\t) {\r\n\t\t\t\t\tactive.value = false;\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t// TODO: shrug ani\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction closeConditional(): boolean {\r\n\t\t\treturn (\r\n\t\t\t\t(!props.openOnHover || (props.openOnHover && !hovered.value)) &&\r\n\t\t\t\tactive.value &&\r\n\t\t\t\tfinish.value\r\n\t\t\t); // TODO: && groupTopLevel.value;\r\n\t\t}\r\n\r\n\t\tconst complementClickOption = reactive<ComplementClickBindingOptions>({\r\n\t\t\thandler: onClickComplementLayer,\r\n\t\t\tdetermine: closeConditional,\r\n\t\t\tinclude: () => [baseEl.value],\r\n\t\t});\r\n\r\n\t\tfunction onAfterEnter() {\r\n\t\t\tfinish.value = true;\r\n\t\t}\r\n\r\n\t\tfunction onAfterLeave() {\r\n\t\t\tonAfterUpdate();\r\n\t\t\tfinish.value = false;\r\n\t\t\temit(\"afterLeave\");\r\n\t\t}\r\n\r\n\t\tfunction onClickScrim() {\r\n\t\t\tif (props.closeClickScrim) {\r\n\t\t\t\tactive.value = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction onMouseenter(event: Event) {\r\n\t\t\thovered.value = true;\r\n\t\t}\r\n\r\n\t\tfunction onMouseleave(event: Event) {\r\n\t\t\thovered.value = false;\r\n\t\t}\r\n\r\n\t\tconst computedStyle = computed(() => {\r\n\t\t\treturn {\r\n\t\t\t\tzIndex: (props.zIndex ?? \"2000\").toString(),\r\n\t\t\t};\r\n\t\t});\r\n\r\n\t\tconst computedClass = computed<Record<string, boolean>>(() => {\r\n\t\t\tconst { classes } = props;\r\n\t\t\tconst boundClasses = bindClasses(classes);\r\n\t\t\treturn {\r\n\t\t\t\t...boundClasses,\r\n\t\t\t\t\"y-layer--active\": !!active.value,\r\n\t\t\t};\r\n\t\t});\r\n\r\n\t\tconst computedContentClasses = computed<Record<string, boolean>>(() => {\r\n\t\t\tconst boundClasses = bindClasses(props.contentClasses);\r\n\t\t\tconst { side, align } = coordination.value;\r\n\t\t\treturn {\r\n\t\t\t\t...boundClasses,\r\n [`y-layer--side-${side}`]: !!side,\r\n [`y-layer--align-${align}`]: !!align,\r\n\t\t\t};\r\n\t\t});\r\n\r\n\t\texpose({\r\n\t\t\tscrim$,\r\n\t\t\tbase$,\r\n\t\t\tcontent$: computed(() => content$.value),\r\n\t\t\tbaseEl,\r\n\t\t\tactive,\r\n\t\t\tonAfterUpdate,\r\n\t\t\tupdateCoordinate,\r\n\t\t\thovered,\r\n\t\t\tfinish,\r\n\t\t\tmodal: computed(() => props.modal),\r\n\t\t\tgetActiveLayers,\r\n\t\t\tisMe: (vnode: ComponentInternalInstance) => {\r\n\t\t\t\treturn vnode === vm;\r\n\t\t\t},\r\n\t\t\tcoordination,\r\n\t\t});\r\n\r\n\t\tuseRender(() => {\r\n\t\t\tconst slotBase = slots.base?.({\r\n\t\t\t\tactive: active.value,\r\n\t\t\t\tprops: mergeProps({\r\n\t\t\t\t\tref: base$,\r\n\t\t\t\t\tclass: {\r\n\t\t\t\t\t\t\"y-layer-base\": true,\r\n\t\t\t\t\t\t\"y-layer-base--active\": active.value,\r\n\t\t\t\t\t},\r\n\t\t\t\t\t...(props.baseProps ?? {}),\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\t\t\tbaseSlot.value = slotBase;\r\n\t\t\treturn (\r\n\t\t\t\t<>\r\n\t\t\t\t\t{slotBase}\r\n\t\t\t\t\t<Teleport disabled={!layerGroup.value} to={layerGroup.value as any}>\r\n\t\t\t\t\t\t{rendered.value && (\r\n\t\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t\tclass={[\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\"y-layer\": true,\r\n\t\t\t\t\t\t\t\t\t\t\"y-layer--finish\": finish.value,\r\n\t\t\t\t\t\t\t\t\t\t\"y-layer--contained\": props.contained,\r\n\t\t\t\t\t\t\t\t\t\t...computedClass.value,\r\n\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\tthemeClasses.value,\r\n\t\t\t\t\t\t\t\t]}\r\n\t\t\t\t\t\t\t\tonMouseenter={onMouseenter}\r\n\t\t\t\t\t\t\t\tonMouseleave={onMouseleave}\r\n\t\t\t\t\t\t\t\tstyle={computedStyle.value}\r\n\t\t\t\t\t\t\t\tref={root$}\r\n\t\t\t\t\t\t\t\t{...attrs}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<Transition name=\"fade\" appear>\r\n\t\t\t\t\t\t\t\t\t{active.value && props.scrim && (\r\n\t\t\t\t\t\t\t\t\t\t// biome-ignore lint/a11y/noStaticElementInteractions: <explanation>\r\n\t\t\t\t\t\t\t\t\t\t// biome-ignore lint/a11y/useKeyWithClickEvents: <explanation>\r\n\t\t\t\t\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t\t\t\t\tclass=\"y-layer__scrim\"\r\n\t\t\t\t\t\t\t\t\t\t\tstyle={{ \"--y-layer-scrim-opacity\": props.scrimOpacity }}\r\n\t\t\t\t\t\t\t\t\t\t\tonClick={onClickScrim}\r\n\t\t\t\t\t\t\t\t\t\t\tonKeydown={noop()}\r\n\t\t\t\t\t\t\t\t\t\t\tonKeyup={noop()}\r\n\t\t\t\t\t\t\t\t\t\t\tref=\"scrim$\"\r\n\t\t\t\t\t\t\t\t\t\t></div>\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t</Transition>\r\n\t\t\t\t\t\t\t\t<PolyTransition\r\n\t\t\t\t\t\t\t\t\tonAfterEnter={onAfterEnter}\r\n\t\t\t\t\t\t\t\t\tonAfterLeave={onAfterLeave}\r\n\t\t\t\t\t\t\t\t\tappear\r\n\t\t\t\t\t\t\t\t\t{...polyTransitionBindProps.value}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t\t\t\tv-show={active.value}\r\n\t\t\t\t\t\t\t\t\t\tv-complement-click={{ ...complementClickOption }}\r\n\t\t\t\t\t\t\t\t\t\tclass={{\r\n\t\t\t\t\t\t\t\t\t\t\t\"y-layer__content\": true,\r\n\t\t\t\t\t\t\t\t\t\t\t...computedContentClasses.value,\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\tstyle={[\r\n\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t...dimensionStyles.value,\r\n\t\t\t\t\t\t\t\t\t\t\t\t...coordinateStyles.value,\r\n\t\t\t\t\t\t\t\t\t\t\t\t...props.contentStyles,\r\n\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t]}\r\n\t\t\t\t\t\t\t\t\t\t{...contentEvents.value}\r\n\t\t\t\t\t\t\t\t\t\tref={content$}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t{slots.default?.({ active: active.value })}\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</PolyTransition>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t</Teleport>\r\n\t\t\t\t</>\r\n\t\t\t);\r\n\t\t});\r\n\r\n\t\treturn {\r\n\t\t\tcomplementClickOption,\r\n\t\t\tlayerGroup,\r\n\t\t\tactive,\r\n\t\t\tfinish,\r\n\t\t\trendered,\r\n\t\t\tlazyValue,\r\n\t\t\tonAfterUpdate: onAfterUpdate as () => void,\r\n\t\t\tscrim$,\r\n\t\t\tcontent$,\r\n\t\t\tbase,\r\n\t\t\tbase$,\r\n\t\t\tbaseEl,\r\n\t\t\tbaseFromSlotEl,\r\n\t\t\tpolyTransitionBindProps,\r\n\t\t\tcoordinateStyles,\r\n\t\t\tlayerGroupState,\r\n\t\t\tgetActiveLayers,\r\n\t\t\tcoordination,\r\n\t\t};\r\n\t},\r\n});\r\n\r\nexport type YLayer = InstanceType<typeof YLayer>;\r\n"],"mappings":"AACA,SACCA,QAAQ,EACRC,kBAAkB,EAClBC,UAAU,EACVC,QAAQ,EACRC,GAAG,EACHC,UAAU,EACVC,QAAQ,EACRC,UAAU,EACVC,KAAK,EAAAC,QAAA,IAAAC,SAAA,EAAAC,WAAA,IAAAC,YAAA,EAAAC,KAAA,IAAAC,MAAA,EAAAC,gBAAA,IAAAC,iBAAA,EAAAd,UAAA,IAAAe,WAAA,EAAAC,cAAA,IAAAC,eAAA,QACC,KAAK;AAAC,SAEJC,cAAc;AAAA,SACdC,SAAS;AAAA,SACTC,oBAAoB,EAAEC,aAAa;AAAA,SAE3CC,0BAA0B,EAC1BC,YAAY;AAAA,SAEJC,aAAa;AAAA,SACbC,sBAAsB,EAAEC,aAAa;AAAA,SACrCC,OAAO;AAAA,SAEfC,cAAc,EACdC,+BAA+B,EAC/BC,iBAAiB;AAAA,SAGjBC,eAAe;AAAA,SAGPC,WAAW,EAAEC,eAAe,EAAEC,YAAY;AAAA,SAE1CC,qBAAqB,EAAEC,OAAO;AAAA,SAC9BC,wBAAwB,EAAEC,UAAU;AAAA,SAE5CC,wBAAwB,EACxBC,mBAAmB;AAGpB;AAAuB,SAEdC,IAAI;AAEb,OAAO,MAAMC,gBAAgB,GAAGR,YAAY,CAC3C;EACCS,UAAU,EAAE;IACXC,IAAI,EAAEC;EACP,CAAC;EACDC,KAAK,EAAE;IACNF,IAAI,EAAEC;EACP,CAAC;EACDE,YAAY,EAAE;IACbH,IAAI,EAAEI;EACP,CAAC;EACDC,KAAK,EAAE;IACNL,IAAI,EAAEC;EACP,CAAC;EACDK,OAAO,EAAE;IACRN,IAAI,EAAE,CAACO,KAAK,EAAEC,MAAM,EAAEC,MAAM;EAG7B,CAAC;EACDC,cAAc,EAAE;IACfV,IAAI,EAAE,CAACO,KAAK,EAAEC,MAAM,EAAEC,MAAM;EAG7B,CAAC;EACDE,eAAe,EAAE;IAChBX,IAAI,EAAEC;EACP,CAAC;EACDW,aAAa,EAAE;IACdZ,IAAI,EAAES,MAAiC;IACvCI,OAAO,EAAEA,CAAA,KAAM,CAAC;EACjB,CAAC;EACDC,QAAQ,EAAE;IACTd,IAAI,EAAEC,OAA4B;IAClCY,OAAO,EAAE;EACV,CAAC;EACDE,SAAS,EAAE;IACVf,IAAI,EAAEC;EACP,CAAC;EACDe,WAAW,EAAE;IACZhB,IAAI,EAAEC,OAA4B;IAClCY,OAAO,EAAE;EACV,CAAC;EACDI,SAAS,EAAE;IACVjB,IAAI,EAAEI,MAA0B;IAChCS,OAAO,EAAE;EACV,CAAC;EACDK,UAAU,EAAE;IACXlB,IAAI,EAAEI,MAA0B;IAChCS,OAAO,EAAE;EACV,CAAC;EACDM,MAAM,EAAE;IACPnB,IAAI,EAAE,CAACI,MAAM,EAAEI,MAAM,CAA8B;IACnDK,OAAO,EAAE;EACV,CAAC;EACDO,SAAS,EAAEnB,OAAO;EAClBoB,UAAU,EAAE,CAACb,MAAM,EAAEC,MAAM,CAA+B;EAC1D,GAAG5B,sBAAsB,CAAC,CAAC;EAC3B,GAAGI,+BAA+B,CAAC,CAAC;EACpC,GAAGM,qBAAqB,CAAC,CAAC;EAC1B,GAAGE,wBAAwB,CAAC,CAAC;EAC7B,GAAGjB,oBAAoB,CAAC,CAAC;EACzB,GAAGmB,wBAAwB,CAAC,CAAC;EAC7B,GAAGjB,0BAA0B,CAAC;AAC/B,CAAC,EACD,QACD,CAAC;AAED,OAAO,MAAM4C,MAAM,GAAGjC,eAAe,CAAC;EACrCkC,IAAI,EAAE,QAAQ;EACdC,YAAY,EAAE,KAAK;EACnBC,UAAU,EAAE;IACXzC;EACD,CAAC;EACD0C,UAAU,EAAE;IACXvC;EACD,CAAC;EACDwC,KAAK,EAAE;IACNC,KAAK,EAAE3B,OAA4B;IACnC,GAAGH,gBAAgB,CAAC;EACrB,CAAC;EACD+B,KAAK,EAAE;IACN,mBAAmB,EAAGC,KAAc,IAAK,IAAI;IAC7C,kBAAkB,EAAGC,UAAsB,IAAK,IAAI;IACpDC,UAAU,EAAEA,CAAA,KAAM;EACnB,CAAC;EACDC,KAAK,EAAExB,MAGL;EACFyB,KAAKA,CAACP,KAAK,EAAAQ,IAAA,EAAkC;IAAA,IAAhC;MAAEC,IAAI;MAAEC,MAAM;MAAEC,KAAK;MAAEL;IAAM,CAAC,GAAAE,IAAA;IAC1C,MAAMI,EAAE,GAAGpF,kBAAkB,CAAC,CAAC;IAC/B,MAAMqF,MAAM,GAAGlF,GAAG,CAAc,CAAC;IACjC,MAAMmF,QAAQ,GAAGnF,GAAG,CAAc,CAAC;IACnC,MAAMoF,KAAK,GAAGpF,GAAG,CAAc,CAAC;IAChC,MAAMqF,KAAK,GAAGrE,cAAc,CAACqD,KAAK,CAAC;IACnC,MAAMiB,MAAM,GAAG1F,QAAQ,CAAC;MACvB2F,GAAG,EAAEA,CAAA,KAAe;QACnB,OAAO,CAAC,CAACF,KAAK,CAACb,KAAK;MACrB,CAAC;MACDgB,GAAG,EAAGC,CAAU,IAAK;QACpB,IAAI,EAAEA,CAAC,IAAIpB,KAAK,CAACb,QAAQ,CAAC,EAAE6B,KAAK,CAACb,KAAK,GAAGiB,CAAC;MAC5C;IACD,CAAC,CAAC;IACF;IACA,MAAM;MAAEC,IAAI;MAAEC,KAAK;MAAEC,MAAM;MAAEC,QAAQ;MAAEC;IAAe,CAAC,GAAG5D,OAAO,CAACmC,KAAK,CAAC;IACxE,MAAM;MAAE0B;IAAc,CAAC,GAAG3D,UAAU,CAACiC,KAAK,EAAEiB,MAAM,CAAC;IACnD,MAAM;MAAEU;IAAa,CAAC,GAAGxE,aAAa,CAAC6C,KAAK,CAAC;IAC7C,MAAM;MAAEN,UAAU;MAAEkC,eAAe;MAAEC;IAAgB,CAAC,GACrD5E,aAAa,CAAC+C,KAAK,CAAC;IACrB,MAAM;MAAE8B;IAAwB,CAAC,GAAGvE,iBAAiB,CAACyC,KAAK,CAAC;IAC5D,MAAM;MAAE+B;IAAgB,CAAC,GAAG/E,YAAY,CAACgD,KAAK,CAAC;IAE/C,MAAM;MAAEgC,SAAS;MAAEC;IAAc,CAAC,GAAG7E,OAAO,CAACrB,KAAK,CAACiE,KAAK,EAAE,OAAO,CAAC,EAAEiB,MAAM,CAAC;IAC3E;IACA,MAAMiB,MAAM,GAAGtG,UAAU,CAAC,KAAK,CAAC;IAChC,MAAMuG,OAAO,GAAGxG,GAAG,CAAC,KAAK,CAAC;IAC1B,MAAMyG,OAAO,GAAGzG,GAAG,CAAC,KAAK,CAAC;IAC1B,MAAMwD,QAAQ,GAAGpD,KAAK,CAACiE,KAAK,EAAE,UAAU,CAAC;IACzC,MAAMZ,SAAS,GAAGrD,KAAK,CAACiE,KAAK,EAAE,WAAW,CAAC;IAE3C,MAAMqC,QAAQ,GAAG9G,QAAQ,CACxB,MAAM,CAAC4D,QAAQ,CAACgB,KAAK,KAAK6B,SAAS,CAAC7B,KAAK,IAAIc,MAAM,CAACd,KAAK,CAC1D,CAAC;IAED,MAAM;MAAEmC,YAAY;MAAEC,gBAAgB;MAAEC;IAAiB,CAAC,GAAG1F,aAAa,CAACkD,KAAK,EAAE;MACjFyC,SAAS,EAAE3B,QAAQ;MACnBO,IAAI;MACJJ;IACD,CAAC,CAAC;IACFhD,mBAAmB,CAAC+B,KAAK,EAAE;MAC1B0C,IAAI,EAAE3B,KAAK;MACX0B,SAAS,EAAE3B,QAAQ;MACnBG,MAAM;MACNM,MAAM,EAAEF,IAAI;MACZmB;IACD,CAAC,CAAC;IAEF,SAASG,sBAAsBA,CAACvC,UAAsB,EAAE;MACvDK,IAAI,CAAC,kBAAkB,EAAEL,UAAU,CAAC;MACpC,IAAI,CAACJ,KAAK,CAACC,KAAK,EAAE;QACjB,IACCY,MAAM,CAACV,KAAK,KAAK,IAAI,IACrBU,MAAM,CAACV,KAAK,KAAKC,UAAU,CAACwC,MAAM,IAClC5C,KAAK,CAAChB,eAAe,EACpB;UACDiC,MAAM,CAACd,KAAK,GAAG,KAAK;QACrB;MACD,CAAC,MAAM;QACN;MAAA;IAEF;IAEA,SAAS0C,gBAAgBA,CAAA,EAAY;MACpC,OACC,CAAC,CAAC7C,KAAK,CAACX,WAAW,IAAKW,KAAK,CAACX,WAAW,IAAI,CAAC8C,OAAO,CAAChC,KAAM,KAC5Dc,MAAM,CAACd,KAAK,IACZ+B,MAAM,CAAC/B,KAAK,CACX,CAAC;IACJ;IAEA,MAAM2C,qBAAqB,GAAGpH,QAAQ,CAAgC;MACrEqH,OAAO,EAAEJ,sBAAsB;MAC/BK,SAAS,EAAEH,gBAAgB;MAC3BI,OAAO,EAAEA,CAAA,KAAM,CAAC1B,MAAM,CAACpB,KAAK;IAC7B,CAAC,CAAC;IAEF,SAAS+C,YAAYA,CAAA,EAAG;MACvBhB,MAAM,CAAC/B,KAAK,GAAG,IAAI;IACpB;IAEA,SAASgD,YAAYA,CAAA,EAAG;MACvBlB,aAAa,CAAC,CAAC;MACfC,MAAM,CAAC/B,KAAK,GAAG,KAAK;MACpBM,IAAI,CAAC,YAAY,CAAC;IACnB;IAEA,SAAS2C,YAAYA,CAAA,EAAG;MACvB,IAAIpD,KAAK,CAAChB,eAAe,EAAE;QAC1BiC,MAAM,CAACd,KAAK,GAAG,KAAK;MACrB;IACD;IAEA,SAASkD,YAAYA,CAACC,KAAY,EAAE;MACnCnB,OAAO,CAAChC,KAAK,GAAG,IAAI;IACrB;IAEA,SAASoD,YAAYA,CAACD,KAAY,EAAE;MACnCnB,OAAO,CAAChC,KAAK,GAAG,KAAK;IACtB;IAEA,MAAMqD,aAAa,GAAGjI,QAAQ,CAAC,MAAM;MACpC,OAAO;QACNiE,MAAM,EAAE,CAACQ,KAAK,CAACR,MAAM,IAAI,MAAM,EAAEiE,QAAQ,CAAC;MAC3C,CAAC;IACF,CAAC,CAAC;IAEF,MAAMC,aAAa,GAAGnI,QAAQ,CAA0B,MAAM;MAC7D,MAAM;QAAEoD;MAAQ,CAAC,GAAGqB,KAAK;MACzB,MAAM2D,YAAY,GAAGlG,WAAW,CAACkB,OAAO,CAAC;MACzC,OAAO;QACN,GAAGgF,YAAY;QACf,iBAAiB,EAAE,CAAC,CAAC1C,MAAM,CAACd;MAC7B,CAAC;IACF,CAAC,CAAC;IAEF,MAAMyD,sBAAsB,GAAGrI,QAAQ,CAA0B,MAAM;MACtE,MAAMoI,YAAY,GAAGlG,WAAW,CAACuC,KAAK,CAACjB,cAAc,CAAC;MACtD,MAAM;QAAE8E,IAAI;QAAEC;MAAM,CAAC,GAAGxB,YAAY,CAACnC,KAAK;MAC1C,OAAO;QACN,GAAGwD,YAAY;QACX,CAAC,iBAAiBE,IAAI,EAAE,GAAG,CAAC,CAACA,IAAI;QACjC,CAAC,kBAAkBC,KAAK,EAAE,GAAG,CAAC,CAACA;MACpC,CAAC;IACF,CAAC,CAAC;IAEFpD,MAAM,CAAC;MACNG,MAAM;MACNS,KAAK;MACLR,QAAQ,EAAEvF,QAAQ,CAAC,MAAMuF,QAAQ,CAACX,KAAK,CAAC;MACxCoB,MAAM;MACNN,MAAM;MACNgB,aAAa;MACbO,gBAAgB;MAChBL,OAAO;MACPD,MAAM;MACNjC,KAAK,EAAE1E,QAAQ,CAAC,MAAMyE,KAAK,CAACC,KAAK,CAAC;MAClC4B,eAAe;MACfkC,IAAI,EAAGC,KAAgC,IAAK;QAC3C,OAAOA,KAAK,KAAKpD,EAAE;MACpB,CAAC;MACD0B;IACD,CAAC,CAAC;IAEF1F,SAAS,CAAC,MAAM;MACf,MAAMqH,QAAQ,GAAG3D,KAAK,CAACe,IAAI,GAAG;QAC7BJ,MAAM,EAAEA,MAAM,CAACd,KAAK;QACpBH,KAAK,EAAEvE,UAAU,CAAC;UACjBE,GAAG,EAAE2F,KAAK;UACV4C,KAAK,EAAE;YACN,cAAc,EAAE,IAAI;YACpB,sBAAsB,EAAEjD,MAAM,CAACd;UAChC,CAAC;UACD,IAAIH,KAAK,CAACmE,SAAS,IAAI,CAAC,CAAC;QAC1B,CAAC;MACF,CAAC,CAAC;MACF3C,QAAQ,CAACrB,KAAK,GAAG8D,QAAQ;MACzB,OAAA9H,YAAA,CAAAF,SAAA,SAEGgI,QAAQ,EAAA9H,YAAA,CAAAN,QAAA;QAAA,YACW,CAAC6D,UAAU,CAACS,KAAK;QAAA,MAAMT,UAAU,CAACS;MAAK;QAAAjB,OAAA,EAAAA,CAAA,MACzDmD,QAAQ,CAAClC,KAAK,IAAAhE,YAAA,QAAAK,WAAA;UAAA,SAEN,CACN;YACC,SAAS,EAAE,IAAI;YACf,iBAAiB,EAAE0F,MAAM,CAAC/B,KAAK;YAC/B,oBAAoB,EAAEH,KAAK,CAACP,SAAS;YACrC,GAAGiE,aAAa,CAACvD;UAClB,CAAC,EACDwB,YAAY,CAACxB,KAAK,CAClB;UAAA,gBACakD,YAAY;UAAA,gBACZE,YAAY;UAAA,SACnBC,aAAa,CAACrD,KAAK;UAAA,OACrBY;QAAK,GACNJ,KAAK,IAAAxE,YAAA,CAAAL,UAAA;UAAA;UAAA;QAAA;UAAAoD,OAAA,EAAAA,CAAA,MAGP+B,MAAM,CAACd,KAAK,IAAIH,KAAK,CAACzB,KAAK,IAC3B;UACA;UAAApC,YAAA;YAAA;YAAA,SAGQ;cAAE,yBAAyB,EAAE6D,KAAK,CAACxB;YAAa,CAAC;YAAA,WAC/C4E,YAAY;YAAA,aACVlF,IAAI,CAAC,CAAC;YAAA,WACRA,IAAI,CAAC,CAAC;YAAA;UAAA,QAGhB;QAAA,IAAA/B,YAAA,CAAAkB,cAAA,EAAAb,WAAA;UAAA,gBAGa0G,YAAY;UAAA,gBACZC,YAAY;UAAA;QAAA,GAEtBrB,uBAAuB,CAAC3B,KAAK;UAAAjB,OAAA,EAAAA,CAAA,MAAAxC,eAAA,CAAAP,YAAA,QAAAK,WAAA;YAAA,SAKzB;cACN,kBAAkB,EAAE,IAAI;cACxB,GAAGoH,sBAAsB,CAACzD;YAC3B,CAAC;YAAA,SACM,CACN;cACC,GAAG4B,eAAe,CAAC5B,KAAK;cACxB,GAAGoC,gBAAgB,CAACpC,KAAK;cACzB,GAAGH,KAAK,CAACf;YACV,CAAC;UACD,GACGyC,aAAa,CAACvB,KAAK;YAAA,OAClBW;UAAQ,KAEZR,KAAK,CAACpB,OAAO,GAAG;YAAE+B,MAAM,EAAEA,MAAM,CAACd;UAAM,CAAC,CAAC,MAAA9D,MAAA,EAhBlC4E,MAAM,CAACd,KAAK,IAAA5D,iBAAA,sBACA;YAAE,GAAGuG;UAAsB,CAAC;QAAA,IAmBnD;MAAA;IAIL,CAAC,CAAC;IAEF,OAAO;MACNA,qBAAqB;MACrBpD,UAAU;MACVuB,MAAM;MACNiB,MAAM;MACNG,QAAQ;MACRL,SAAS;MACTC,aAAa,EAAEA,aAA2B;MAC1CpB,MAAM;MACNC,QAAQ;MACRO,IAAI;MACJC,KAAK;MACLC,MAAM;MACNE,cAAc;MACdK,uBAAuB;MACvBS,gBAAgB;MAChBX,eAAe;MACfC,eAAe;MACfS;IACD,CAAC;EACF;AACD,CAAC,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"YLayer.js","names":["computed","getCurrentInstance","mergeProps","reactive","ref","shallowRef","Teleport","Transition","toRef","Fragment","_Fragment","createVNode","_createVNode","vShow","_vShow","resolveDirective","_resolveDirective","_mergeProps","withDirectives","_withDirectives","useModelDuplex","useRender","pressCoordinateProps","useCoordinate","pressDimensionPropsOptions","useDimension","useLayerGroup","pressThemePropsOptions","useLocalTheme","useLazy","PolyTransition","pressPolyTransitionPropsOptions","usePolyTransition","ComplementClick","bindClasses","defineComponent","propsFactory","pressBasePropsOptions","useBase","pressContentPropsOptions","useContent","pressScrollStrategyProps","useScrollStrategies","noop","pressYLayerProps","modelValue","type","Boolean","scrim","scrimOpacity","Number","eager","classes","Array","String","Object","contentClasses","closeClickScrim","contentStyles","default","disabled","maximized","openOnHover","openDelay","closeDelay","zIndex","contained","layerGroup","YLayer","name","inheritAttrs","components","directives","props","modal","emits","value","mouseEvent","afterLeave","afterEnter","slots","setup","_ref","emit","expose","attrs","vm","scrim$","content$","root$","model","active","get","set","v","base","base$","baseEl","baseSlot","baseFromSlotEl","contentEvents","themeClasses","layerGroupState","getActiveLayers","polyTransitionBindProps","dimensionStyles","lazyValue","onAfterUpdate","finish","hovered","focused","rendered","coordination","coordinateStyles","updateCoordinate","contentEl","root","onClickComplementLayer","target","closeConditional","complementClickOption","handler","determine","include","onAfterEnter","onAfterLeave","onClickScrim","onMouseenter","event","onMouseleave","computedStyle","toString","computedClass","boundClasses","computedContentClasses","side","align","isMe","vnode","slotBase","class","baseProps","close"],"sources":["../../../src/components/layer/YLayer.tsx"],"sourcesContent":["import type { ComponentInternalInstance, PropType, SlotsType } from \"vue\";\r\nimport {\r\n\tcomputed,\r\n\tgetCurrentInstance,\r\n\tmergeProps,\r\n\treactive,\r\n\tref,\r\n\tshallowRef,\r\n\tTeleport,\r\n\tTransition,\r\n\ttoRef,\r\n} from \"vue\";\r\n\r\nimport { useModelDuplex } from \"@/composables/communication\";\r\nimport { useRender } from \"@/composables/component\";\r\nimport { pressCoordinateProps, useCoordinate } from \"@/composables/coordinate\";\r\nimport {\r\n\tpressDimensionPropsOptions,\r\n\tuseDimension,\r\n} from \"@/composables/dimension\";\r\nimport { useLayerGroup } from \"@/composables/layer-group\";\r\nimport { pressThemePropsOptions, useLocalTheme } from \"@/composables/theme\";\r\nimport { useLazy } from \"@/composables/timing\";\r\nimport {\r\n\tPolyTransition,\r\n\tpressPolyTransitionPropsOptions,\r\n\tusePolyTransition,\r\n} from \"@/composables/transition\";\r\nimport {\r\n\tComplementClick,\r\n\ttype ComplementClickBindingOptions,\r\n} from \"@/directives/complement-click\";\r\nimport { bindClasses, defineComponent, propsFactory } from \"@/util/component\";\r\n\r\nimport { pressBasePropsOptions, useBase } from \"./base\";\r\nimport { pressContentPropsOptions, useContent } from \"./content\";\r\nimport {\r\n\tpressScrollStrategyProps,\r\n\tuseScrollStrategies,\r\n} from \"./scroll-strategies\";\r\n\r\nimport \"./YLayer.scss\";\r\nimport type { CssProperties } from \"@/types\";\r\nimport { noop } from \"@/util\";\r\n\r\nexport const pressYLayerProps = propsFactory(\r\n\t{\r\n\t\tmodelValue: {\r\n\t\t\ttype: Boolean as PropType<boolean>,\r\n\t\t},\r\n\t\tscrim: {\r\n\t\t\ttype: Boolean as PropType<boolean>,\r\n\t\t},\r\n\t\tscrimOpacity: {\r\n\t\t\ttype: Number as PropType<number>,\r\n\t\t},\r\n\t\teager: {\r\n\t\t\ttype: Boolean as PropType<boolean>,\r\n\t\t},\r\n\t\tclasses: {\r\n\t\t\ttype: [Array, String, Object] as PropType<\r\n\t\t\t\tstring[] | string | Record<string, any>\r\n\t\t\t>,\r\n\t\t},\r\n\t\tcontentClasses: {\r\n\t\t\ttype: [Array, String, Object] as PropType<\r\n\t\t\t\tstring[] | string | Record<string, any>\r\n\t\t\t>,\r\n\t\t},\r\n\t\tcloseClickScrim: {\r\n\t\t\ttype: Boolean as PropType<boolean>,\r\n\t\t},\r\n\t\tcontentStyles: {\r\n\t\t\ttype: Object as PropType<CssProperties>,\r\n\t\t\tdefault: () => {},\r\n\t\t},\r\n\t\tdisabled: {\r\n\t\t\ttype: Boolean as PropType<boolean>,\r\n\t\t\tdefault: false,\r\n\t\t},\r\n\t\tmaximized: {\r\n\t\t\ttype: Boolean as PropType<boolean>,\r\n\t\t},\r\n\t\topenOnHover: {\r\n\t\t\ttype: Boolean as PropType<boolean>,\r\n\t\t\tdefault: false,\r\n\t\t},\r\n\t\topenDelay: {\r\n\t\t\ttype: Number as PropType<number>,\r\n\t\t\tdefault: 200,\r\n\t\t},\r\n\t\tcloseDelay: {\r\n\t\t\ttype: Number as PropType<number>,\r\n\t\t\tdefault: 200,\r\n\t\t},\r\n\t\tzIndex: {\r\n\t\t\ttype: [Number, String] as PropType<number | string>,\r\n\t\t\tdefault: 2000,\r\n\t\t},\r\n\t\tcontained: Boolean,\r\n\t\tlayerGroup: [String, Object] as PropType<string | Element>,\r\n\t\t...pressThemePropsOptions(),\r\n\t\t...pressPolyTransitionPropsOptions(),\r\n\t\t...pressBasePropsOptions(),\r\n\t\t...pressContentPropsOptions(),\r\n\t\t...pressCoordinateProps(),\r\n\t\t...pressScrollStrategyProps(),\r\n\t\t...pressDimensionPropsOptions(),\r\n\t},\r\n\t\"YLayer\",\r\n);\r\n\r\nexport const YLayer = defineComponent({\r\n\tname: \"YLayer\",\r\n\tinheritAttrs: false,\r\n\tcomponents: {\r\n\t\tPolyTransition,\r\n\t},\r\n\tdirectives: {\r\n\t\tComplementClick,\r\n\t},\r\n\tprops: {\r\n\t\tmodal: Boolean as PropType<boolean>,\r\n\t\t...pressYLayerProps(),\r\n\t},\r\n\temits: {\r\n\t\t\"update:modelValue\": (value: boolean) => true,\r\n\t\t\"click:complement\": (mouseEvent: MouseEvent) => true,\r\n\t\tafterLeave: () => true,\r\n afterEnter: () => true,\r\n\t},\r\n\tslots: Object as SlotsType<{\r\n\t\tbase: any;\r\n\t\tdefault: any;\r\n\t}>,\r\n\tsetup(props, { emit, expose, attrs, slots }) {\r\n\t\tconst vm = getCurrentInstance();\r\n\t\tconst scrim$ = ref<HTMLElement>();\r\n\t\tconst content$ = ref<HTMLElement>();\r\n\t\tconst root$ = ref<HTMLElement>();\r\n\t\tconst model = useModelDuplex(props);\r\n\t\tconst active = computed({\r\n\t\t\tget: (): boolean => {\r\n\t\t\t\treturn !!model.value;\r\n\t\t\t},\r\n\t\t\tset: (v: boolean) => {\r\n\t\t\t\tif (!(v && props.disabled)) model.value = v;\r\n\t\t\t},\r\n\t\t});\r\n\t\t// Frags\r\n\t\tconst { base, base$, baseEl, baseSlot, baseFromSlotEl } = useBase(props);\r\n\t\tconst { contentEvents } = useContent(props, active);\r\n\t\tconst { themeClasses } = useLocalTheme(props);\r\n\t\tconst { layerGroup, layerGroupState, getActiveLayers } =\r\n\t\t\tuseLayerGroup(props);\r\n\t\tconst { polyTransitionBindProps } = usePolyTransition(props);\r\n\t\tconst { dimensionStyles } = useDimension(props);\r\n\r\n\t\tconst { lazyValue, onAfterUpdate } = useLazy(toRef(props, \"eager\"), active);\r\n\t\t// States\r\n\t\tconst finish = shallowRef(false);\r\n\t\tconst hovered = ref(false);\r\n\t\tconst focused = ref(false);\r\n\t\tconst disabled = toRef(props, \"disabled\");\r\n\t\tconst maximized = toRef(props, \"maximized\");\r\n\r\n\t\tconst rendered = computed<boolean>(\r\n\t\t\t() => !disabled.value && (lazyValue.value || active.value),\r\n\t\t);\r\n\r\n\t\tconst { coordination, coordinateStyles, updateCoordinate } = useCoordinate(props, {\r\n\t\t\tcontentEl: content$,\r\n\t\t\tbase,\r\n\t\t\tactive,\r\n\t\t});\r\n\t\tuseScrollStrategies(props, {\r\n\t\t\troot: root$,\r\n\t\t\tcontentEl: content$,\r\n\t\t\tactive,\r\n\t\t\tbaseEl: base,\r\n\t\t\tupdateCoordinate,\r\n\t\t});\r\n\r\n\t\tfunction onClickComplementLayer(mouseEvent: MouseEvent) {\r\n\t\t\temit(\"click:complement\", mouseEvent);\r\n\t\t\tif (!props.modal) {\r\n\t\t\t\tif (\r\n\t\t\t\t\tscrim$.value !== null &&\r\n\t\t\t\t\tscrim$.value === mouseEvent.target &&\r\n\t\t\t\t\tprops.closeClickScrim\r\n\t\t\t\t) {\r\n\t\t\t\t\tactive.value = false;\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t// TODO: shrug ani\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction closeConditional(): boolean {\r\n\t\t\treturn (\r\n\t\t\t\t(!props.openOnHover || (props.openOnHover && !hovered.value)) &&\r\n\t\t\t\tactive.value &&\r\n\t\t\t\tfinish.value\r\n\t\t\t); // TODO: && groupTopLevel.value;\r\n\t\t}\r\n\r\n\t\tconst complementClickOption = reactive<ComplementClickBindingOptions>({\r\n\t\t\thandler: onClickComplementLayer,\r\n\t\t\tdetermine: closeConditional,\r\n\t\t\tinclude: () => [baseEl.value],\r\n\t\t});\r\n\r\n\t\tfunction onAfterEnter() {\r\n\t\t\tfinish.value = true;\r\n emit('afterEnter');\r\n\t\t}\r\n\r\n\t\tfunction onAfterLeave() {\r\n\t\t\tonAfterUpdate();\r\n\t\t\tfinish.value = false;\r\n\t\t\temit(\"afterLeave\");\r\n\t\t}\r\n\r\n\t\tfunction onClickScrim() {\r\n\t\t\tif (props.closeClickScrim) {\r\n\t\t\t\tactive.value = false;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction onMouseenter(event: Event) {\r\n\t\t\thovered.value = true;\r\n\t\t}\r\n\r\n\t\tfunction onMouseleave(event: Event) {\r\n\t\t\thovered.value = false;\r\n\t\t}\r\n\r\n\t\tconst computedStyle = computed(() => {\r\n\t\t\treturn {\r\n\t\t\t\tzIndex: (props.zIndex ?? \"2000\").toString(),\r\n\t\t\t};\r\n\t\t});\r\n\r\n\t\tconst computedClass = computed<Record<string, boolean>>(() => {\r\n\t\t\tconst { classes } = props;\r\n\t\t\tconst boundClasses = bindClasses(classes);\r\n\t\t\treturn {\r\n\t\t\t\t...boundClasses,\r\n\t\t\t\t\"y-layer--active\": !!active.value,\r\n\t\t\t};\r\n\t\t});\r\n\r\n\t\tconst computedContentClasses = computed<Record<string, boolean>>(() => {\r\n\t\t\tconst boundClasses = bindClasses(props.contentClasses);\r\n\t\t\tconst { side, align } = coordination.value;\r\n\t\t\treturn {\r\n\t\t\t\t...boundClasses,\r\n [`y-layer--side-${side}`]: !!side,\r\n [`y-layer--align-${align}`]: !!align,\r\n\t\t\t};\r\n\t\t});\r\n\r\n\t\texpose({\r\n\t\t\tscrim$,\r\n\t\t\tbase$,\r\n\t\t\tcontent$: computed(() => content$.value),\r\n\t\t\tbaseEl,\r\n\t\t\tactive,\r\n\t\t\tonAfterUpdate,\r\n\t\t\tupdateCoordinate,\r\n\t\t\thovered,\r\n\t\t\tfinish,\r\n\t\t\tmodal: computed(() => props.modal),\r\n\t\t\tgetActiveLayers,\r\n\t\t\tisMe: (vnode: ComponentInternalInstance) => {\r\n\t\t\t\treturn vnode === vm;\r\n\t\t\t},\r\n\t\t\tcoordination,\r\n\t\t});\r\n\r\n\t\tuseRender(() => {\r\n\t\t\tconst slotBase = slots.base?.({\r\n\t\t\t\tactive: active.value,\r\n\t\t\t\tprops: mergeProps({\r\n\t\t\t\t\tref: base$,\r\n\t\t\t\t\tclass: {\r\n\t\t\t\t\t\t\"y-layer-base\": true,\r\n\t\t\t\t\t\t\"y-layer-base--active\": active.value,\r\n\t\t\t\t\t},\r\n\t\t\t\t\t...(props.baseProps ?? {}),\r\n\t\t\t\t}),\r\n\t\t\t});\r\n\t\t\tbaseSlot.value = slotBase;\r\n\t\t\treturn (\r\n\t\t\t\t<>\r\n\t\t\t\t\t{slotBase}\r\n\t\t\t\t\t<Teleport disabled={!layerGroup.value} to={layerGroup.value as any}>\r\n\t\t\t\t\t\t{rendered.value && (\r\n\t\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t\tclass={[\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\"y-layer\": true,\r\n\t\t\t\t\t\t\t\t\t\t\"y-layer--finish\": finish.value,\r\n\t\t\t\t\t\t\t\t\t\t\"y-layer--contained\": props.contained,\r\n\t\t\t\t\t\t\t\t\t\t...computedClass.value,\r\n\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\tthemeClasses.value,\r\n\t\t\t\t\t\t\t\t]}\r\n\t\t\t\t\t\t\t\tonMouseenter={onMouseenter}\r\n\t\t\t\t\t\t\t\tonMouseleave={onMouseleave}\r\n\t\t\t\t\t\t\t\tstyle={computedStyle.value}\r\n\t\t\t\t\t\t\t\tref={root$}\r\n\t\t\t\t\t\t\t\t{...attrs}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t<Transition name=\"fade\" appear>\r\n\t\t\t\t\t\t\t\t\t{active.value && props.scrim && (\r\n\t\t\t\t\t\t\t\t\t\t// biome-ignore lint/a11y/noStaticElementInteractions: <explanation>\r\n\t\t\t\t\t\t\t\t\t\t// biome-ignore lint/a11y/useKeyWithClickEvents: <explanation>\r\n\t\t\t\t\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t\t\t\t\tclass=\"y-layer__scrim\"\r\n\t\t\t\t\t\t\t\t\t\t\tstyle={{ \"--y-layer-scrim-opacity\": props.scrimOpacity }}\r\n\t\t\t\t\t\t\t\t\t\t\tonClick={onClickScrim}\r\n\t\t\t\t\t\t\t\t\t\t\tonKeydown={noop()}\r\n\t\t\t\t\t\t\t\t\t\t\tonKeyup={noop()}\r\n\t\t\t\t\t\t\t\t\t\t\tref=\"scrim$\"\r\n\t\t\t\t\t\t\t\t\t\t></div>\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t</Transition>\r\n\t\t\t\t\t\t\t\t<PolyTransition\r\n\t\t\t\t\t\t\t\t\tonAfterEnter={onAfterEnter}\r\n\t\t\t\t\t\t\t\t\tonAfterLeave={onAfterLeave}\r\n\t\t\t\t\t\t\t\t\tappear\r\n\t\t\t\t\t\t\t\t\t{...polyTransitionBindProps.value}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t<div\r\n\t\t\t\t\t\t\t\t\t\tv-show={active.value}\r\n\t\t\t\t\t\t\t\t\t\tv-complement-click={{ ...complementClickOption }}\r\n\t\t\t\t\t\t\t\t\t\tclass={{\r\n\t\t\t\t\t\t\t\t\t\t\t\"y-layer__content\": true,\r\n\t\t\t\t\t\t\t\t\t\t\t...computedContentClasses.value,\r\n\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\tstyle={[\r\n\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t...dimensionStyles.value,\r\n\t\t\t\t\t\t\t\t\t\t\t\t...coordinateStyles.value,\r\n\t\t\t\t\t\t\t\t\t\t\t\t...props.contentStyles,\r\n\t\t\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t\t]}\r\n\t\t\t\t\t\t\t\t\t\t{...contentEvents.value}\r\n\t\t\t\t\t\t\t\t\t\tref={content$}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t{slots.default?.({ active: active.value, close: () => { active.value = false; } })}\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</PolyTransition>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t</Teleport>\r\n\t\t\t\t</>\r\n\t\t\t);\r\n\t\t});\r\n\r\n\t\treturn {\r\n\t\t\tcomplementClickOption,\r\n\t\t\tlayerGroup,\r\n\t\t\tactive,\r\n\t\t\tfinish,\r\n\t\t\trendered,\r\n\t\t\tlazyValue,\r\n\t\t\tonAfterUpdate: onAfterUpdate as () => void,\r\n\t\t\tscrim$,\r\n\t\t\tcontent$,\r\n\t\t\tbase,\r\n\t\t\tbase$,\r\n\t\t\tbaseEl,\r\n\t\t\tbaseFromSlotEl,\r\n\t\t\tpolyTransitionBindProps,\r\n\t\t\tcoordinateStyles,\r\n\t\t\tlayerGroupState,\r\n\t\t\tgetActiveLayers,\r\n\t\t\tcoordination,\r\n\t\t};\r\n\t},\r\n});\r\n\r\nexport type YLayer = InstanceType<typeof YLayer>;\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -34,6 +34,7 @@ export const pressYPaginationProps = propsFactory({
|
|
|
34
34
|
color: String,
|
|
35
35
|
activeColor: String,
|
|
36
36
|
buttonVariation: [String],
|
|
37
|
+
activeButtonVariation: [String],
|
|
37
38
|
align: {
|
|
38
39
|
type: String,
|
|
39
40
|
default: 'center'
|
|
@@ -85,7 +86,7 @@ export const YPagination = defineComponent({
|
|
|
85
86
|
const fixedWidth = (itemWidth + gap) * fixedCount - gap;
|
|
86
87
|
const count = Math.max(0, Math.floor(+((listWidth - fixedWidth) / (itemWidth + gap)).toFixed(2)));
|
|
87
88
|
const maxVisible = Number(props.maxVisible);
|
|
88
|
-
if (!isNaN(maxVisible)) {
|
|
89
|
+
if (!Number.isNaN(maxVisible)) {
|
|
89
90
|
return Math.min(maxVisible, count);
|
|
90
91
|
}
|
|
91
92
|
return count;
|
|
@@ -94,7 +95,7 @@ export const YPagination = defineComponent({
|
|
|
94
95
|
const maxVisible = Number(props.maxVisible);
|
|
95
96
|
if (props.totalVisible) {
|
|
96
97
|
const total = parseInt(props.totalVisible, 10);
|
|
97
|
-
if (!isNaN(maxVisible)) {
|
|
98
|
+
if (!Number.isNaN(maxVisible)) {
|
|
98
99
|
return Math.min(total, maxVisible);
|
|
99
100
|
}
|
|
100
101
|
return total;
|
|
@@ -147,7 +148,7 @@ export const YPagination = defineComponent({
|
|
|
147
148
|
};
|
|
148
149
|
});
|
|
149
150
|
const range = computed(() => {
|
|
150
|
-
if (length.value <= 0 || isNaN(length.value) || length.value > Number.MAX_SAFE_INTEGER) {
|
|
151
|
+
if (length.value <= 0 || Number.isNaN(length.value) || length.value > Number.MAX_SAFE_INTEGER) {
|
|
151
152
|
return [];
|
|
152
153
|
}
|
|
153
154
|
if (totalVisible.value <= 1) {
|
|
@@ -207,7 +208,7 @@ export const YPagination = defineComponent({
|
|
|
207
208
|
ellipsis: false,
|
|
208
209
|
disabled: !!props.disabled || +props.length < 2,
|
|
209
210
|
color: active ? props.activeColor : props.color,
|
|
210
|
-
variation: props.buttonVariation,
|
|
211
|
+
variation: active ? props.activeButtonVariation : props.buttonVariation,
|
|
211
212
|
onClick: e => changePage(e, item)
|
|
212
213
|
}
|
|
213
214
|
};
|
|
@@ -215,10 +216,10 @@ export const YPagination = defineComponent({
|
|
|
215
216
|
});
|
|
216
217
|
});
|
|
217
218
|
const styles = computed(() => {
|
|
218
|
-
let gap
|
|
219
|
+
let gap;
|
|
219
220
|
if (props.gap) {
|
|
220
221
|
const value = +props.gap;
|
|
221
|
-
if (!isNaN(value)) {
|
|
222
|
+
if (!Number.isNaN(value)) {
|
|
222
223
|
gap = toStyleSizeValue(value);
|
|
223
224
|
} else if (typeof props.gap === 'string') {
|
|
224
225
|
gap = props.gap;
|
|
@@ -229,13 +230,12 @@ export const YPagination = defineComponent({
|
|
|
229
230
|
};
|
|
230
231
|
});
|
|
231
232
|
useRender(() => {
|
|
232
|
-
return _createVNode("
|
|
233
|
+
return _createVNode("nav", {
|
|
234
|
+
"ref": resizeObservedRef,
|
|
233
235
|
"class": ['y-pagination', {
|
|
234
236
|
[`y-pagination--align-${props.align}`]: props.align !== 'start'
|
|
235
237
|
}],
|
|
236
|
-
"
|
|
237
|
-
"style": styles.value,
|
|
238
|
-
"ref": resizeObservedRef
|
|
238
|
+
"style": styles.value
|
|
239
239
|
}, [_createVNode("ul", {
|
|
240
240
|
"class": ['y-pagination__list']
|
|
241
241
|
}, [props.showEndButton && _createVNode("li", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YPagination.js","names":["computed","shallowRef","createVNode","_createVNode","useModelDuplex","useRender","useRefs","useResizeObserver","getRangeArr","defineComponent","propsFactory","toStyleSizeValue","YButton","YIconPageControl","pressYPaginationProps","start","type","Number","String","default","modelValue","props","disabled","Boolean","length","validator","val","totalVisible","maxVisible","showEndButton","gap","color","activeColor","buttonVariation","align","YPagination","name","components","emits","value","change","control","setup","_ref","slots","emit","page","parseInt","itemCount","resizeObservedRef","entries","target","contentRect","firstItem","querySelector","listWidth","width","itemWidth","offsetWidth","parseFloat","getComputedStyle","marginRight","calcItemCount","fixedCount","fixedWidth","count","Math","max","floor","toFixed","isNaN","min","total","innerWidth","controls","prevDisabled","nextDisabled","first","variation","onClick","e","preventDefault","prev","to","next","last","range","MAX_SAFE_INTEGER","even","middle","left","right","rangeLength","rangeStart","ceil","refs","updateRef","changePage","event","arguments","undefined","items","map","item","index","ref","active","key","ellipsis","styles"],"sources":["../../../src/components/pagination/YPagination.tsx"],"sourcesContent":["import {\n type ComponentPublicInstance,\n type PropType,\n computed,\n shallowRef,\n} from 'vue';\n\nimport { useModelDuplex } from '@/composables/communication';\nimport { useRender } from '@/composables/component';\nimport { useRefs } from '@/composables/ref';\nimport { useResizeObserver } from '@/composables/resize-observer';\nimport { getRangeArr } from '@/util/common';\nimport { defineComponent, propsFactory } from '@/util/component';\nimport { toStyleSizeValue } from '@/util/ui';\n\nimport { YButton } from '../button';\nimport { YIconPageControl } from '../icons/YIconPageControl';\n\nimport './YPagination.scss';\n\nexport const pressYPaginationProps = propsFactory(\n {\n start: {\n type: [Number, String],\n default: 1,\n },\n modelValue: {\n type: Number,\n default: (props: any) => props.start as number,\n },\n disabled: Boolean,\n length: {\n type: [Number, String],\n default: 1,\n validator: (val: number) => val % 1 === 0,\n },\n totalVisible: [Number, String],\n maxVisible: [Number, String],\n showEndButton: Boolean,\n gap: {\n type: [String, Number],\n default: 4,\n },\n color: String,\n activeColor: String,\n buttonVariation: [String],\n align: {\n type: String as PropType<'start' | 'center' | 'end'>,\n default: 'center',\n },\n // firstIcon: [String],\n // lastIcon: [String],\n // prevIcon: [String],\n // nextIcon: [String],\n },\n 'YPagination',\n);\n\nexport const YPagination = defineComponent({\n name: 'YPagination',\n components: {\n YButton,\n },\n props: {\n ...pressYPaginationProps(),\n },\n emits: {\n 'update:modelValue': (value: number) => true,\n change: (value: number, control?: string) => true,\n },\n setup(props, { slots, emit }) {\n const page = useModelDuplex(props);\n\n const length = computed(() => parseInt(props.length as string, 10));\n const start = computed(() => parseInt(props.start as string, 10));\n\n const itemCount = shallowRef(-1);\n\n const { resizeObservedRef } = useResizeObserver((entries) => {\n if (1 > entries.length) return;\n const { target, contentRect } = entries[0];\n\n const firstItem = target.querySelector(\n '.y-pagination__list > *',\n ) as HTMLElement;\n if (firstItem) {\n const listWidth = contentRect.width;\n const itemWidth =\n firstItem.offsetWidth +\n parseFloat(getComputedStyle(firstItem).marginRight) * 2;\n itemCount.value = calcItemCount(listWidth, itemWidth);\n }\n });\n\n function calcItemCount(listWidth: number, itemWidth: number) {\n const fixedCount = props.showEndButton ? 5 : 3;\n const gap = +(props.gap ?? 4);\n const fixedWidth = (itemWidth + gap) * fixedCount - gap;\n const count = Math.max(\n 0,\n Math.floor(+((listWidth - fixedWidth) / (itemWidth + gap)).toFixed(2)),\n );\n const maxVisible = Number(props.maxVisible);\n if (!isNaN(maxVisible)) {\n return Math.min(maxVisible, count);\n }\n return count;\n }\n\n const totalVisible = computed(() => {\n const maxVisible = Number(props.maxVisible);\n if (props.totalVisible) {\n const total = parseInt(props.totalVisible as string, 10);\n if (!isNaN(maxVisible)) {\n return Math.min(total, maxVisible);\n }\n return total;\n } else if (itemCount.value >= 0) return itemCount.value;\n return calcItemCount(innerWidth, 58);\n });\n\n const controls = computed(() => {\n const prevDisabled = !!props.disabled || page.value <= start.value;\n const nextDisabled =\n !!props.disabled || page.value >= start.value + length.value - 1;\n return {\n first: {\n disabled: prevDisabled,\n variation: props.buttonVariation,\n onClick: (e: MouseEvent) => {\n e.preventDefault();\n page.value = 1;\n emit('change', 1, 'first');\n },\n },\n prev: {\n disabled: prevDisabled,\n variation: props.buttonVariation,\n onClick: (e: MouseEvent) => {\n e.preventDefault();\n const to = Math.max(1, page.value - 1);\n page.value = to;\n emit('change', to, 'prev');\n },\n },\n next: {\n disabled: nextDisabled,\n variation: props.buttonVariation,\n onClick: (e: MouseEvent) => {\n e.preventDefault();\n const to = Math.min(+length.value, page.value + 1);\n page.value = to;\n emit('change', to, 'next');\n },\n },\n last: {\n disabled: nextDisabled,\n variation: props.buttonVariation,\n onClick: (e: MouseEvent) => {\n e.preventDefault();\n const to = +length.value;\n page.value = +length.value;\n emit('change', to, 'last');\n },\n },\n };\n });\n\n const range = computed(() => {\n if (\n length.value <= 0 ||\n isNaN(length.value) ||\n length.value > Number.MAX_SAFE_INTEGER\n ) {\n return [];\n }\n if (totalVisible.value <= 1) {\n return [page.value];\n }\n if (length.value <= totalVisible.value) {\n return getRangeArr(length.value, start.value);\n }\n const even = totalVisible.value % 2 === 0;\n const middle = even\n ? totalVisible.value / 2\n : Math.floor(totalVisible.value / 2);\n const left = even ? middle : middle + 1;\n const right = length.value - middle;\n\n if (left - page.value >= 0) {\n return [\n ...getRangeArr(Math.max(1, totalVisible.value - 1), start.value),\n 'ellipsis',\n length.value,\n ];\n } else if (page.value - right >= (even ? 1 : 0)) {\n const rangeLength = totalVisible.value - 1;\n const rangeStart = length.value - rangeLength + start.value;\n return [\n start.value,\n 'ellipsis',\n ...getRangeArr(rangeLength, rangeStart),\n ];\n } else {\n const rangeLength = Math.max(1, totalVisible.value - 3);\n const rangeStart =\n rangeLength === 1\n ? page.value\n : page.value - Math.ceil(rangeLength / 2) + start.value;\n return [\n start.value,\n 'ellipsis',\n ...getRangeArr(rangeLength, rangeStart),\n 'ellipsis',\n length.value,\n ];\n }\n });\n\n const { refs, updateRef } = useRefs<ComponentPublicInstance>();\n\n function changePage(event: Event, to = 1) {\n event.preventDefault();\n page.value = to;\n emit('change', to);\n }\n\n const items = computed(() => {\n return range.value.map((item, index) => {\n const ref = (e: any) => updateRef(e, index);\n\n if (item === 'ellipsis') {\n return {\n active: false,\n key: `ellipsis-${index}`,\n page: item,\n props: {\n ref,\n ellipsis: true,\n disabled: true, // TODO: skipper\n },\n };\n } else {\n const active = item === page.value;\n return {\n active,\n key: `item-${item}`,\n page: item,\n props: {\n ref,\n ellipsis: false,\n disabled: !!props.disabled || +props.length < 2,\n color: active ? props.activeColor : props.color,\n variation: props.buttonVariation,\n onClick: (e: MouseEvent) => changePage(e, item),\n },\n };\n }\n });\n });\n\n const styles = computed(() => {\n let gap = undefined;\n if (props.gap) {\n const value = +props.gap;\n if (!isNaN(value)) {\n gap = toStyleSizeValue(value);\n } else if (typeof props.gap === 'string') {\n gap = props.gap;\n }\n }\n return {\n '--y-pagination__gap': gap,\n };\n });\n\n useRender(() => {\n return (\n <div\n class={[\n 'y-pagination',\n { [`y-pagination--align-${props.align}`]: props.align !== 'start' },\n ]}\n role={'navigation'}\n style={styles.value}\n ref={resizeObservedRef}\n >\n <ul class={['y-pagination__list']}>\n {props.showEndButton && (\n <li key=\"first\" class=\"y-pagination__first\">\n {slots.first ? (\n slots.first(controls.value.first)\n ) : (\n <YButton {...controls.value.first}>\n {slots['first-icon'] ? (\n slots['first-icon']()\n ) : (\n <YIconPageControl type={'first'}></YIconPageControl>\n )}\n </YButton>\n )}\n </li>\n )}\n <li key=\"prev\" class=\"y-pagination__prev\">\n {slots.prev ? (\n slots.prev(controls.value.prev)\n ) : (\n <YButton {...controls.value.prev}>\n {slots['prev-icon'] ? (\n slots['prev-icon']()\n ) : (\n <YIconPageControl type={'prev'}></YIconPageControl>\n )}\n </YButton>\n )}\n </li>\n {items.value.map((item, index) => {\n return (\n <li\n key={item.key}\n class={[\n 'y-pagination__item',\n { 'y-pagination__item--active': item.active },\n ]}\n >\n <YButton {...item.props}>\n {item.props.ellipsis\n ? slots.ellipsis\n ? slots.ellipsis()\n : '...'\n : item.page}\n </YButton>\n </li>\n );\n })}\n <li key=\"next\" class=\"y-pagination__next\">\n {slots.next ? (\n slots.next(controls.value.next)\n ) : (\n <YButton {...controls.value.next}>\n {slots['next-icon'] ? (\n slots['next-icon']()\n ) : (\n <YIconPageControl type={'next'}></YIconPageControl>\n )}\n </YButton>\n )}\n </li>\n {props.showEndButton && (\n <li key=\"last\" class=\"y-pagination__last\">\n {slots.last ? (\n slots.last(controls.value.last)\n ) : (\n <YButton {...controls.value.last}>\n {slots['last-icon'] ? (\n slots['last-icon']()\n ) : (\n <YIconPageControl type={'last'}></YIconPageControl>\n )}\n </YButton>\n )}\n </li>\n )}\n </ul>\n </div>\n );\n });\n\n return {\n itemCount,\n page,\n refs,\n };\n },\n});\n\nexport type YPagination = InstanceType<typeof YPagination>;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"YPagination.js","names":["computed","shallowRef","createVNode","_createVNode","useModelDuplex","useRender","useRefs","useResizeObserver","getRangeArr","defineComponent","propsFactory","toStyleSizeValue","YButton","YIconPageControl","pressYPaginationProps","start","type","Number","String","default","modelValue","props","disabled","Boolean","length","validator","val","totalVisible","maxVisible","showEndButton","gap","color","activeColor","buttonVariation","activeButtonVariation","align","YPagination","name","components","emits","value","change","control","setup","_ref","slots","emit","page","parseInt","itemCount","resizeObservedRef","entries","target","contentRect","firstItem","querySelector","listWidth","width","itemWidth","offsetWidth","parseFloat","getComputedStyle","marginRight","calcItemCount","fixedCount","fixedWidth","count","Math","max","floor","toFixed","isNaN","min","total","innerWidth","controls","prevDisabled","nextDisabled","first","variation","onClick","e","preventDefault","prev","to","next","last","range","MAX_SAFE_INTEGER","even","middle","left","right","rangeLength","rangeStart","ceil","refs","updateRef","changePage","event","arguments","undefined","items","map","item","index","ref","active","key","ellipsis","styles"],"sources":["../../../src/components/pagination/YPagination.tsx"],"sourcesContent":["import {\n type ComponentPublicInstance,\n computed,\n type PropType,\n shallowRef,\n} from 'vue';\n\nimport { useModelDuplex } from '@/composables/communication';\nimport { useRender } from '@/composables/component';\nimport { useRefs } from '@/composables/ref';\nimport { useResizeObserver } from '@/composables/resize-observer';\nimport { getRangeArr } from '@/util/common';\nimport { defineComponent, propsFactory } from '@/util/component';\nimport { toStyleSizeValue } from '@/util/ui';\n\nimport { YButton } from '../button';\nimport { YIconPageControl } from '../icons/YIconPageControl';\n\nimport './YPagination.scss';\n\nexport const pressYPaginationProps = propsFactory(\n {\n start: {\n type: [Number, String],\n default: 1,\n },\n modelValue: {\n type: Number,\n default: (props: any) => props.start as number,\n },\n disabled: Boolean,\n length: {\n type: [Number, String],\n default: 1,\n validator: (val: number) => val % 1 === 0,\n },\n totalVisible: [Number, String],\n maxVisible: [Number, String],\n showEndButton: Boolean,\n gap: {\n type: [String, Number],\n default: 4,\n },\n color: String,\n activeColor: String,\n buttonVariation: [String],\n activeButtonVariation: [String],\n align: {\n type: String as PropType<'start' | 'center' | 'end'>,\n default: 'center',\n },\n // firstIcon: [String],\n // lastIcon: [String],\n // prevIcon: [String],\n // nextIcon: [String],\n },\n 'YPagination',\n);\n\nexport const YPagination = defineComponent({\n name: 'YPagination',\n components: {\n YButton,\n },\n props: {\n ...pressYPaginationProps(),\n },\n emits: {\n 'update:modelValue': (value: number) => true,\n change: (value: number, control?: string) => true,\n },\n setup(props, { slots, emit }) {\n const page = useModelDuplex(props);\n\n const length = computed(() => parseInt(props.length as string, 10));\n const start = computed(() => parseInt(props.start as string, 10));\n\n const itemCount = shallowRef(-1);\n\n const { resizeObservedRef } = useResizeObserver((entries) => {\n if (1 > entries.length) return;\n const { target, contentRect } = entries[0];\n\n const firstItem = target.querySelector(\n '.y-pagination__list > *',\n ) as HTMLElement;\n if (firstItem) {\n const listWidth = contentRect.width;\n const itemWidth =\n firstItem.offsetWidth +\n parseFloat(getComputedStyle(firstItem).marginRight) * 2;\n itemCount.value = calcItemCount(listWidth, itemWidth);\n }\n });\n\n function calcItemCount(listWidth: number, itemWidth: number) {\n const fixedCount = props.showEndButton ? 5 : 3;\n const gap = +(props.gap ?? 4);\n const fixedWidth = (itemWidth + gap) * fixedCount - gap;\n const count = Math.max(\n 0,\n Math.floor(+((listWidth - fixedWidth) / (itemWidth + gap)).toFixed(2)),\n );\n const maxVisible = Number(props.maxVisible);\n if (!Number.isNaN(maxVisible)) {\n return Math.min(maxVisible, count);\n }\n return count;\n }\n\n const totalVisible = computed(() => {\n const maxVisible = Number(props.maxVisible);\n if (props.totalVisible) {\n const total = parseInt(props.totalVisible as string, 10);\n if (!Number.isNaN(maxVisible)) {\n return Math.min(total, maxVisible);\n }\n return total;\n } else if (itemCount.value >= 0) return itemCount.value;\n return calcItemCount(innerWidth, 58);\n });\n\n const controls = computed(() => {\n const prevDisabled = !!props.disabled || page.value <= start.value;\n const nextDisabled =\n !!props.disabled || page.value >= start.value + length.value - 1;\n return {\n first: {\n disabled: prevDisabled,\n variation: props.buttonVariation,\n onClick: (e: MouseEvent) => {\n e.preventDefault();\n page.value = 1;\n emit('change', 1, 'first');\n },\n },\n prev: {\n disabled: prevDisabled,\n variation: props.buttonVariation,\n onClick: (e: MouseEvent) => {\n e.preventDefault();\n const to = Math.max(1, page.value - 1);\n page.value = to;\n emit('change', to, 'prev');\n },\n },\n next: {\n disabled: nextDisabled,\n variation: props.buttonVariation,\n onClick: (e: MouseEvent) => {\n e.preventDefault();\n const to = Math.min(+length.value, page.value + 1);\n page.value = to;\n emit('change', to, 'next');\n },\n },\n last: {\n disabled: nextDisabled,\n variation: props.buttonVariation,\n onClick: (e: MouseEvent) => {\n e.preventDefault();\n const to = +length.value;\n page.value = +length.value;\n emit('change', to, 'last');\n },\n },\n };\n });\n\n const range = computed(() => {\n if (\n length.value <= 0 ||\n Number.isNaN(length.value) ||\n length.value > Number.MAX_SAFE_INTEGER\n ) {\n return [];\n }\n if (totalVisible.value <= 1) {\n return [page.value];\n }\n if (length.value <= totalVisible.value) {\n return getRangeArr(length.value, start.value);\n }\n const even = totalVisible.value % 2 === 0;\n const middle = even\n ? totalVisible.value / 2\n : Math.floor(totalVisible.value / 2);\n const left = even ? middle : middle + 1;\n const right = length.value - middle;\n\n if (left - page.value >= 0) {\n return [\n ...getRangeArr(Math.max(1, totalVisible.value - 1), start.value),\n 'ellipsis',\n length.value,\n ];\n } else if (page.value - right >= (even ? 1 : 0)) {\n const rangeLength = totalVisible.value - 1;\n const rangeStart = length.value - rangeLength + start.value;\n return [\n start.value,\n 'ellipsis',\n ...getRangeArr(rangeLength, rangeStart),\n ];\n } else {\n const rangeLength = Math.max(1, totalVisible.value - 3);\n const rangeStart =\n rangeLength === 1\n ? page.value\n : page.value - Math.ceil(rangeLength / 2) + start.value;\n return [\n start.value,\n 'ellipsis',\n ...getRangeArr(rangeLength, rangeStart),\n 'ellipsis',\n length.value,\n ];\n }\n });\n\n const { refs, updateRef } = useRefs<ComponentPublicInstance>();\n\n function changePage(event: Event, to = 1) {\n event.preventDefault();\n page.value = to;\n emit('change', to);\n }\n\n const items = computed(() => {\n return range.value.map((item, index) => {\n const ref = (e: any) => updateRef(e, index);\n\n if (item === 'ellipsis') {\n return {\n active: false,\n key: `ellipsis-${index}`,\n page: item,\n props: {\n ref,\n ellipsis: true,\n disabled: true, // TODO: skipper\n },\n };\n } else {\n const active = item === page.value;\n return {\n active,\n key: `item-${item}`,\n page: item,\n props: {\n ref,\n ellipsis: false,\n disabled: !!props.disabled || +props.length < 2,\n color: active ? props.activeColor : props.color,\n variation: active\n ? props.activeButtonVariation\n : props.buttonVariation,\n onClick: (e: MouseEvent) => changePage(e, item),\n },\n };\n }\n });\n });\n\n const styles = computed(() => {\n let gap: string | undefined;\n if (props.gap) {\n const value = +props.gap;\n if (!Number.isNaN(value)) {\n gap = toStyleSizeValue(value);\n } else if (typeof props.gap === 'string') {\n gap = props.gap;\n }\n }\n return {\n '--y-pagination__gap': gap,\n };\n });\n\n useRender(() => {\n return (\n <nav\n ref={resizeObservedRef}\n class={[\n 'y-pagination',\n { [`y-pagination--align-${props.align}`]: props.align !== 'start' },\n ]}\n style={styles.value}\n >\n <ul class={['y-pagination__list']}>\n {props.showEndButton && (\n <li key=\"first\" class=\"y-pagination__first\">\n {slots.first ? (\n slots.first(controls.value.first)\n ) : (\n <YButton {...controls.value.first}>\n {slots['first-icon'] ? (\n slots['first-icon']()\n ) : (\n <YIconPageControl type={'first'}></YIconPageControl>\n )}\n </YButton>\n )}\n </li>\n )}\n <li key=\"prev\" class=\"y-pagination__prev\">\n {slots.prev ? (\n slots.prev(controls.value.prev)\n ) : (\n <YButton {...controls.value.prev}>\n {slots['prev-icon'] ? (\n slots['prev-icon']()\n ) : (\n <YIconPageControl type={'prev'}></YIconPageControl>\n )}\n </YButton>\n )}\n </li>\n {items.value.map((item, index) => {\n return (\n <li\n key={item.key}\n class={[\n 'y-pagination__item',\n { 'y-pagination__item--active': item.active },\n ]}\n >\n <YButton {...item.props}>\n {item.props.ellipsis\n ? slots.ellipsis\n ? slots.ellipsis()\n : '...'\n : item.page}\n </YButton>\n </li>\n );\n })}\n <li key=\"next\" class=\"y-pagination__next\">\n {slots.next ? (\n slots.next(controls.value.next)\n ) : (\n <YButton {...controls.value.next}>\n {slots['next-icon'] ? (\n slots['next-icon']()\n ) : (\n <YIconPageControl type={'next'}></YIconPageControl>\n )}\n </YButton>\n )}\n </li>\n {props.showEndButton && (\n <li key=\"last\" class=\"y-pagination__last\">\n {slots.last ? (\n slots.last(controls.value.last)\n ) : (\n <YButton {...controls.value.last}>\n {slots['last-icon'] ? (\n slots['last-icon']()\n ) : (\n <YIconPageControl type={'last'}></YIconPageControl>\n )}\n </YButton>\n )}\n </li>\n )}\n </ul>\n </nav>\n );\n });\n\n return {\n itemCount,\n page,\n refs,\n };\n },\n});\n\nexport type YPagination = InstanceType<typeof YPagination>;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import { Fragment as _Fragment, createVNode as _createVNode, mergeProps as _mergeProps } from
|
|
2
|
-
import { animate } from 'motion';
|
|
3
|
-
import { computed, ref, toRef, watch, withModifiers } from 'vue';
|
|
1
|
+
import { computed, ref, toRef, watch, withModifiers, Fragment as _Fragment, createVNode as _createVNode, mergeProps as _mergeProps } from 'vue';
|
|
4
2
|
import { useModelDuplex } from "../../composables/communication.js";
|
|
5
3
|
import { useRender } from "../../composables/component.js";
|
|
6
4
|
import { useTimer } from "../../composables/timing.js";
|
|
5
|
+
import { animate } from "../../util/animation/index.js";
|
|
7
6
|
import { omit } from "../../util/common.js";
|
|
8
7
|
import { bindClasses, chooseProps, defineComponent, propsFactory } from "../../util/component/index.js";
|
|
9
|
-
import {
|
|
8
|
+
import { pressYLayerProps, YLayer } from "../layer/index.js";
|
|
10
9
|
import { YPlate } from "../plate/index.js";
|
|
11
10
|
import "./YSnackbar.scss";
|
|
12
11
|
const defaultSnackbarTransition = {
|
|
@@ -15,23 +14,26 @@ const defaultSnackbarTransition = {
|
|
|
15
14
|
if (!el.getAttribute('data-transform')) {
|
|
16
15
|
const cache = el.style.getPropertyValue('transform');
|
|
17
16
|
el.setAttribute('data-transform', cache);
|
|
17
|
+
el.setAttribute('data-direction', direction);
|
|
18
18
|
el.style.setProperty('transform', `${cache} translateY(${direction === 'top' ? '-' : ''}40px)`);
|
|
19
19
|
}
|
|
20
20
|
},
|
|
21
21
|
onEnter(el, done) {
|
|
22
22
|
const cache = el.getAttribute('data-transform');
|
|
23
|
-
const
|
|
24
|
-
if (
|
|
23
|
+
const direction = el.getAttribute('data-direction');
|
|
24
|
+
if (!direction || !cache) {
|
|
25
25
|
return;
|
|
26
26
|
}
|
|
27
|
-
el
|
|
28
|
-
|
|
29
|
-
transform: `${cache.replace(/translateY(.+)/, 'translateY(0)')}`
|
|
27
|
+
animate(el, [{
|
|
28
|
+
transform: `${cache} translateY(${direction === 'top' ? '-' : ''}40px)`
|
|
30
29
|
}, {
|
|
31
|
-
|
|
32
|
-
}
|
|
30
|
+
transform: `${cache.replace(/translateY(.+)/, 'translateY(0)')}`
|
|
31
|
+
}], {
|
|
32
|
+
duration: 300,
|
|
33
|
+
easing: 'cubic-bezier(0.25, 0.8, 0.5, 1)'
|
|
34
|
+
}).then(() => {
|
|
33
35
|
el.removeAttribute('data-transform');
|
|
34
|
-
el.removeAttribute('data-
|
|
36
|
+
el.removeAttribute('data-direction');
|
|
35
37
|
done();
|
|
36
38
|
});
|
|
37
39
|
}
|
|
@@ -99,7 +101,7 @@ export const YSnackbar = defineComponent({
|
|
|
99
101
|
};
|
|
100
102
|
});
|
|
101
103
|
const computedInset = computed(() => {
|
|
102
|
-
const [first, second] = props.position?.split(' ');
|
|
104
|
+
const [first, second] = props.position?.split(' ') ?? [];
|
|
103
105
|
let y = 'top';
|
|
104
106
|
let x = 'left';
|
|
105
107
|
if (second) {
|
|
@@ -140,7 +142,7 @@ export const YSnackbar = defineComponent({
|
|
|
140
142
|
}
|
|
141
143
|
});
|
|
142
144
|
watch(() => props.duration, neo => {
|
|
143
|
-
if (!isNaN(neo) && active.value) {
|
|
145
|
+
if (!Number.isNaN(neo) && active.value) {
|
|
144
146
|
reset();
|
|
145
147
|
if (!hover.value) {
|
|
146
148
|
setTimer();
|
|
@@ -180,7 +182,9 @@ export const YSnackbar = defineComponent({
|
|
|
180
182
|
"ref": "layer"
|
|
181
183
|
}, omit(chooseProps(props, YLayer.props), ['scrim', 'transition', 'content-classes', 'classes']), {
|
|
182
184
|
"modelValue": active.value,
|
|
183
|
-
"onUpdate:modelValue": v =>
|
|
185
|
+
"onUpdate:modelValue": v => {
|
|
186
|
+
active.value = v;
|
|
187
|
+
},
|
|
184
188
|
"classes": classes.value,
|
|
185
189
|
"content-classes": computedContentClasses.value,
|
|
186
190
|
"scrim": false,
|
|
@@ -190,8 +194,12 @@ export const YSnackbar = defineComponent({
|
|
|
190
194
|
default: () => _createVNode(_Fragment, null, [_createVNode(YPlate, null, null), _createVNode("div", {
|
|
191
195
|
"class": "y-snackbar__content",
|
|
192
196
|
"onClick": withModifiers(onClickContent, ['exact']),
|
|
193
|
-
"onMouseenter": () =>
|
|
194
|
-
|
|
197
|
+
"onMouseenter": () => {
|
|
198
|
+
hover.value = true;
|
|
199
|
+
},
|
|
200
|
+
"onMouseleave": () => {
|
|
201
|
+
hover.value = false;
|
|
202
|
+
}
|
|
195
203
|
}, [slots.default?.()])])
|
|
196
204
|
});
|
|
197
205
|
});
|