yuyeon 0.3.6-beta.5 → 0.3.6-beta.7
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 +3699 -4115
- package/dist/yuyeon.umd.cjs +3 -3
- package/lib/components/dialog/YDialog.js +11 -2
- package/lib/components/dialog/YDialog.js.map +1 -1
- package/lib/components/layer/YLayer.js +3 -1
- package/lib/components/layer/YLayer.js.map +1 -1
- package/lib/components/pagination/YPagination.js +3 -3
- 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/util/animation/index.js +19 -0
- package/lib/util/animation/index.js.map +1 -0
- package/package.json +1 -4
- package/types/components/dialog/YDialog.d.ts +3 -1
- package/types/components/layer/YLayer.d.ts +1 -0
- package/types/components/menu/YMenu.d.ts +2 -0
- package/types/components/table/YDataTable.d.ts +2 -2
- package/types/components/table/YDataTableServer.d.ts +2 -2
- package/types/components/table/composables/selection.d.ts +2 -2
- package/types/util/animation/index.d.ts +1 -0
|
@@ -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();
|
|
@@ -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":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"YLayer.js","names":["computed","getCurrentInstance","mergeProps","reactive","ref","shallowRef","Teleport","Transition","toRef","Fragment","_Fragment","createVNode","_createVNode","vShow","_vShow","resolveDirective","_resolveDirective","_mergeProps","withDirectives","_withDirectives","useModelDuplex","useRender","pressCoordinateProps","useCoordinate","pressDimensionPropsOptions","useDimension","useLayerGroup","pressThemePropsOptions","useLocalTheme","useLazy","PolyTransition","pressPolyTransitionPropsOptions","usePolyTransition","ComplementClick","bindClasses","defineComponent","propsFactory","pressBasePropsOptions","useBase","pressContentPropsOptions","useContent","pressScrollStrategyProps","useScrollStrategies","noop","pressYLayerProps","modelValue","type","Boolean","scrim","scrimOpacity","Number","eager","classes","Array","String","Object","contentClasses","closeClickScrim","contentStyles","default","disabled","maximized","openOnHover","openDelay","closeDelay","zIndex","contained","layerGroup","YLayer","name","inheritAttrs","components","directives","props","modal","emits","value","mouseEvent","afterLeave","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"],"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 })}\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":[]}
|
|
@@ -86,7 +86,7 @@ export const YPagination = defineComponent({
|
|
|
86
86
|
const fixedWidth = (itemWidth + gap) * fixedCount - gap;
|
|
87
87
|
const count = Math.max(0, Math.floor(+((listWidth - fixedWidth) / (itemWidth + gap)).toFixed(2)));
|
|
88
88
|
const maxVisible = Number(props.maxVisible);
|
|
89
|
-
if (!isNaN(maxVisible)) {
|
|
89
|
+
if (!Number.isNaN(maxVisible)) {
|
|
90
90
|
return Math.min(maxVisible, count);
|
|
91
91
|
}
|
|
92
92
|
return count;
|
|
@@ -95,7 +95,7 @@ export const YPagination = defineComponent({
|
|
|
95
95
|
const maxVisible = Number(props.maxVisible);
|
|
96
96
|
if (props.totalVisible) {
|
|
97
97
|
const total = parseInt(props.totalVisible, 10);
|
|
98
|
-
if (!isNaN(maxVisible)) {
|
|
98
|
+
if (!Number.isNaN(maxVisible)) {
|
|
99
99
|
return Math.min(total, maxVisible);
|
|
100
100
|
}
|
|
101
101
|
return total;
|
|
@@ -148,7 +148,7 @@ export const YPagination = defineComponent({
|
|
|
148
148
|
};
|
|
149
149
|
});
|
|
150
150
|
const range = computed(() => {
|
|
151
|
-
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) {
|
|
152
152
|
return [];
|
|
153
153
|
}
|
|
154
154
|
if (totalVisible.value <= 1) {
|
|
@@ -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","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 (!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: active ? props.activeButtonVariation : 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
|
+
{"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
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YSnackbar.js","names":["animate","computed","ref","toRef","watch","withModifiers","useModelDuplex","useRender","useTimer","omit","bindClasses","chooseProps","defineComponent","propsFactory","YLayer","pressYLayerProps","YPlate","defaultSnackbarTransition","name","onBeforeEnter","direction","el","getAttribute","cache","style","getPropertyValue","setAttribute","setProperty","onEnter","done","motion","transform","replace","duration","finished","then","removeAttribute","pressYSnackbarPropsOptions","scrollStrategy","position","modelValue","type","Boolean","contentClasses","Array","String","Object","transition","default","Number","closeClickContent","YSnackbar","components","emits","props","setup","_ref","emit","slots","active","hover","classes","computedContentClasses","boundClasses","computedInset","first","second","split","y","x","ret","dismiss","value","start","stop","reset","setTimer","neo","isNaN","immediate","onClickContent","event","proxyTransition","includes","_createVNode","_mergeProps","v","_Fragment","onMouseenter","onMouseleave"],"sources":["../../../src/components/snackbar/YSnackbar.tsx"],"sourcesContent":["import { animate } from 'motion';\nimport { type PropType, computed, ref, toRef, watch, withModifiers } from 'vue';\n\nimport { useModelDuplex } from '@/composables/communication';\nimport { useRender } from '@/composables/component';\nimport { useTimer } from '@/composables/timing';\nimport { omit } from '@/util/common';\nimport {\n bindClasses,\n chooseProps,\n defineComponent,\n propsFactory,\n} from '@/util/component';\n\nimport { YLayer, pressYLayerProps } from '../layer';\nimport { YPlate } from '../plate';\n\nimport './YSnackbar.scss';\n\nconst defaultSnackbarTransition = {\n name: 'y-snackbar',\n onBeforeEnter: (direction: 'top' | 'bottom') => (el: HTMLElement) => {\n if (!el.getAttribute('data-transform')) {\n const cache = el.style.getPropertyValue('transform');\n el.setAttribute('data-transform', cache);\n el.style.setProperty(\n 'transform',\n `${cache} translateY(${direction === 'top' ? '-' : ''}40px)`,\n );\n }\n },\n onEnter(el: HTMLElement, done: () => void) {\n const cache = el.getAttribute('data-transform');\n const motion = el.getAttribute('data-motion');\n if (motion || !cache) {\n return;\n }\n el.setAttribute('data-motion', 'true');\n animate(\n el,\n {\n transform: `${cache.replace(/translateY(.+)/, 'translateY(0)')}`,\n },\n { duration: 0.1 },\n ).finished.then(() => {\n el.removeAttribute('data-transform');\n el.removeAttribute('data-motion');\n done();\n });\n },\n};\n\nexport const pressYSnackbarPropsOptions = propsFactory(\n {\n ...pressYLayerProps({\n scrollStrategy: 'none' as const,\n position: 'top center',\n }),\n modelValue: {\n type: Boolean as PropType<boolean>,\n },\n contentClasses: {\n type: [Array, String, Object] as PropType<\n string[] | string | Record<string, any>\n >,\n },\n transition: {\n type: [String, Object] as PropType<string | any>,\n default: () => ({ ...defaultSnackbarTransition }),\n },\n /**\n * @property Number\n *\n * The amount of time the snackbar should be displayed.\n * @default 4000\n */\n duration: {\n type: Number as PropType<number>,\n default: 4000,\n },\n closeClickContent: {\n type: Boolean,\n default: true,\n },\n },\n 'YSnackbar',\n);\n\nexport const YSnackbar = defineComponent({\n name: 'YSnackbar',\n components: { YPlate, YLayer },\n emits: ['update:modelValue', 'click'],\n props: {\n ...pressYSnackbarPropsOptions(),\n },\n setup(props, { emit, slots }) {\n const active = useModelDuplex(props);\n const hover = ref(false);\n const duration = toRef(props, 'duration');\n\n const classes = computed(() => {\n return {\n 'y-snackbar': true,\n };\n });\n\n const computedContentClasses = computed<Record<string, boolean>>(() => {\n const boundClasses = bindClasses(props.contentClasses);\n return {\n ...boundClasses,\n 'y-snackbar__display': true,\n };\n });\n\n const computedInset = computed(() => {\n const [first, second] = props.position?.split(' ');\n let y = 'top';\n let x = 'left';\n if (second) {\n x = second;\n y = first;\n } else if (first === 'bottom') {\n y = 'bottom';\n } else {\n x = first;\n }\n const ret = {\n [x === 'center' ? 'left' : x]: x === 'center' ? `50%` : 0,\n [y]: 0,\n } as any;\n if (x === 'center') {\n ret.transform = 'translateX(-50%)';\n }\n return ret;\n });\n\n function dismiss() {\n active.value = false;\n }\n\n const { start, stop, reset } = useTimer(dismiss, duration);\n function setTimer() {\n if (props.duration > 0) {\n start();\n }\n }\n\n watch(hover, (neo: boolean) => {\n if (neo) {\n stop();\n } else {\n setTimer();\n }\n });\n\n watch(\n () => props.duration,\n (neo) => {\n if (!isNaN(neo) && active.value) {\n reset();\n if (!hover.value) {\n setTimer();\n }\n }\n },\n );\n\n watch(\n active,\n (neo: boolean) => {\n if (neo) {\n setTimer();\n } else {\n reset();\n }\n },\n { immediate: true },\n );\n\n function onClickContent(event: Event) {\n emit('click', event);\n if (props.closeClickContent) {\n active.value = false;\n }\n }\n\n const proxyTransition = computed(() => {\n const { transition, position } = props;\n if (transition?.name === 'y-snackbar') {\n transition.onBeforeEnter = defaultSnackbarTransition.onBeforeEnter(\n position.includes('top') ? 'top' : 'bottom',\n );\n return { ...transition };\n }\n return props.transition;\n });\n\n useRender(() => {\n return (\n <YLayer\n ref=\"layer\"\n {...omit(chooseProps(props, YLayer.props), [\n 'scrim',\n 'transition',\n 'content-classes',\n 'classes',\n ])}\n modelValue={active.value}\n onUpdate:modelValue={(v) => (active.value = v)}\n classes={classes.value}\n content-classes={computedContentClasses.value}\n scrim={false}\n content-styles={computedInset.value}\n transition={proxyTransition.value as any}\n >\n {{\n default: () => (\n <>\n <YPlate></YPlate>\n <div\n class=\"y-snackbar__content\"\n onClick={withModifiers(onClickContent, ['exact'])}\n onMouseenter={() => (hover.value = true)}\n onMouseleave={() => (hover.value = false)}\n >\n {slots.default?.()}\n </div>\n </>\n ),\n }}\n </YLayer>\n );\n });\n\n return {\n active,\n hover,\n classes,\n computedContentClasses,\n computedInset,\n proxyTransition,\n onClickContent,\n };\n },\n});\n\nexport type YSnackbar = InstanceType<typeof YSnackbar>;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"YSnackbar.js","names":["computed","ref","toRef","watch","withModifiers","Fragment","_Fragment","createVNode","_createVNode","mergeProps","_mergeProps","useModelDuplex","useRender","useTimer","animate","omit","bindClasses","chooseProps","defineComponent","propsFactory","pressYLayerProps","YLayer","YPlate","defaultSnackbarTransition","name","onBeforeEnter","direction","el","getAttribute","cache","style","getPropertyValue","setAttribute","setProperty","onEnter","done","transform","replace","duration","easing","then","removeAttribute","pressYSnackbarPropsOptions","scrollStrategy","position","modelValue","type","Boolean","contentClasses","Array","String","Object","transition","default","Number","closeClickContent","YSnackbar","components","emits","props","setup","_ref","emit","slots","active","hover","classes","computedContentClasses","boundClasses","computedInset","first","second","split","y","x","ret","dismiss","value","start","stop","reset","setTimer","neo","isNaN","immediate","onClickContent","event","proxyTransition","includes","v","onMouseenter","onMouseleave"],"sources":["../../../src/components/snackbar/YSnackbar.tsx"],"sourcesContent":["import { computed, type PropType, ref, toRef, watch, withModifiers } from 'vue';\n\nimport { useModelDuplex } from '@/composables/communication';\nimport { useRender } from '@/composables/component';\nimport { useTimer } from '@/composables/timing';\nimport { animate } from '@/util/animation';\nimport { omit } from '@/util/common';\nimport {\n bindClasses,\n chooseProps,\n defineComponent,\n propsFactory,\n} from '@/util/component';\n\nimport { pressYLayerProps, YLayer } from '../layer';\nimport { YPlate } from '../plate';\n\nimport './YSnackbar.scss';\n\nconst defaultSnackbarTransition = {\n name: 'y-snackbar',\n onBeforeEnter: (direction: 'top' | 'bottom') => (el: HTMLElement) => {\n if (!el.getAttribute('data-transform')) {\n const cache = el.style.getPropertyValue('transform');\n el.setAttribute('data-transform', cache);\n el.setAttribute('data-direction', direction);\n el.style.setProperty(\n 'transform',\n `${cache} translateY(${direction === 'top' ? '-' : ''}40px)`,\n );\n }\n },\n onEnter(el: HTMLElement, done: () => void) {\n const cache = el.getAttribute('data-transform');\n const direction = el.getAttribute('data-direction');\n if (!direction || !cache) {\n return;\n }\n animate(\n el,\n [\n {\n transform: `${cache} translateY(${direction === 'top' ? '-' : ''}40px)`,\n },\n {\n transform: `${cache.replace(/translateY(.+)/, 'translateY(0)')}`,\n },\n ],\n { duration: 300 , easing: 'cubic-bezier(0.25, 0.8, 0.5, 1)' },\n ).then(() => {\n el.removeAttribute('data-transform');\n el.removeAttribute('data-direction');\n done();\n });\n },\n};\n\nexport const pressYSnackbarPropsOptions = propsFactory(\n {\n ...pressYLayerProps({\n scrollStrategy: 'none' as const,\n position: 'top center',\n }),\n modelValue: {\n type: Boolean as PropType<boolean>,\n },\n contentClasses: {\n type: [Array, String, Object] as PropType<\n string[] | string | Record<string, any>\n >,\n },\n transition: {\n type: [String, Object] as PropType<string | any>,\n default: () => ({ ...defaultSnackbarTransition }),\n },\n /**\n * @property Number\n *\n * The amount of time the snackbar should be displayed.\n * @default 4000\n */\n duration: {\n type: Number as PropType<number>,\n default: 4000,\n },\n closeClickContent: {\n type: Boolean,\n default: true,\n },\n },\n 'YSnackbar',\n);\n\nexport const YSnackbar = defineComponent({\n name: 'YSnackbar',\n components: { YPlate, YLayer },\n emits: ['update:modelValue', 'click'],\n props: {\n ...pressYSnackbarPropsOptions(),\n },\n setup(props, { emit, slots }) {\n const active = useModelDuplex(props);\n const hover = ref(false);\n const duration = toRef(props, 'duration');\n\n const classes = computed(() => {\n return {\n 'y-snackbar': true,\n };\n });\n\n const computedContentClasses = computed<Record<string, boolean>>(() => {\n const boundClasses = bindClasses(props.contentClasses);\n return {\n ...boundClasses,\n 'y-snackbar__display': true,\n };\n });\n\n const computedInset = computed(() => {\n const [first, second] = props.position?.split(' ') ?? [];\n let y = 'top';\n let x = 'left';\n if (second) {\n x = second;\n y = first;\n } else if (first === 'bottom') {\n y = 'bottom';\n } else {\n x = first;\n }\n const ret = {\n [x === 'center' ? 'left' : x]: x === 'center' ? `50%` : 0,\n [y]: 0,\n } as any;\n if (x === 'center') {\n ret.transform = 'translateX(-50%)';\n }\n return ret;\n });\n\n function dismiss() {\n active.value = false;\n }\n\n const { start, stop, reset } = useTimer(dismiss, duration);\n function setTimer() {\n if (props.duration > 0) {\n start();\n }\n }\n\n watch(hover, (neo: boolean) => {\n if (neo) {\n stop();\n } else {\n setTimer();\n }\n });\n\n watch(\n () => props.duration,\n (neo) => {\n if (!Number.isNaN(neo) && active.value) {\n reset();\n if (!hover.value) {\n setTimer();\n }\n }\n },\n );\n\n watch(\n active,\n (neo: boolean) => {\n if (neo) {\n setTimer();\n } else {\n reset();\n }\n },\n { immediate: true },\n );\n\n function onClickContent(event: Event) {\n emit('click', event);\n if (props.closeClickContent) {\n active.value = false;\n }\n }\n\n const proxyTransition = computed(() => {\n const { transition, position } = props;\n if (transition?.name === 'y-snackbar') {\n transition.onBeforeEnter = defaultSnackbarTransition.onBeforeEnter(\n position.includes('top') ? 'top' : 'bottom',\n );\n return { ...transition };\n }\n return props.transition;\n });\n\n useRender(() => {\n return (\n <YLayer\n ref=\"layer\"\n {...omit(chooseProps(props, YLayer.props), [\n 'scrim',\n 'transition',\n 'content-classes',\n 'classes',\n ])}\n modelValue={active.value}\n onUpdate:modelValue={(v) => {\n (active.value = v);\n }}\n classes={classes.value}\n content-classes={computedContentClasses.value}\n scrim={false}\n content-styles={computedInset.value}\n transition={proxyTransition.value as any}\n >\n {{\n default: () => (\n <>\n <YPlate></YPlate>\n <div\n class=\"y-snackbar__content\"\n onClick={withModifiers(onClickContent, ['exact'])}\n onMouseenter={() => {\n (hover.value = true);\n }}\n onMouseleave={() => {\n (hover.value = false);\n }}\n >\n {slots.default?.()}\n </div>\n </>\n ),\n }}\n </YLayer>\n );\n });\n\n return {\n active,\n hover,\n classes,\n computedContentClasses,\n computedInset,\n proxyTransition,\n onClickContent,\n };\n },\n});\n\nexport type YSnackbar = InstanceType<typeof YSnackbar>;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { createVNode as _createVNode, mergeProps as _mergeProps, Fragment as _Fragment } from "vue";
|
|
2
|
+
import { useHeader } from "./composables/header.js";
|
|
3
|
+
import { useSelection } from "./composables/selection.js";
|
|
4
|
+
import { useSorting } from "./composables/sorting.js";
|
|
2
5
|
import { useRender } from "../../composables/component.js";
|
|
3
6
|
import { wrapInArray } from "../../util/index.js";
|
|
4
7
|
import { defineComponent, propsFactory } from "../../util/component/index.js";
|
|
@@ -7,9 +10,6 @@ import { YButton } from "../button/YButton.js";
|
|
|
7
10
|
import { YIconCheckbox } from "../icons/YIconCheckbox.js";
|
|
8
11
|
import { YIconSort } from "../icons/YIconSort.js";
|
|
9
12
|
import { YDataTableCell } from "./YDataTableCell.js";
|
|
10
|
-
import { useHeader } from "./composables/header.js";
|
|
11
|
-
import { useSelection } from "./composables/selection.js";
|
|
12
|
-
import { useSorting } from "./composables/sorting.js";
|
|
13
13
|
export const pressYDataTableHeadProps = propsFactory({
|
|
14
14
|
multiSort: Boolean,
|
|
15
15
|
sortAscIcon: {
|
|
@@ -53,7 +53,7 @@ export const YDataTableHead = defineComponent({
|
|
|
53
53
|
} = useHeader();
|
|
54
54
|
const getFixedStyles = (column, y) => {
|
|
55
55
|
if (!props.sticky && !column.fixed) return undefined;
|
|
56
|
-
|
|
56
|
+
const fixedOffset = {};
|
|
57
57
|
if (column.fixed === true || column.fixed === 'left') {
|
|
58
58
|
fixedOffset.left = toStyleSizeValue(column.fixedOffset);
|
|
59
59
|
}
|