yuyeon 0.3.6-beta.6 → 0.3.6-beta.8
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 +1514 -1492
- 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/snackbar/YSnackbar.js +10 -7
- package/lib/components/snackbar/YSnackbar.js.map +1 -1
- package/lib/util/animation/index.js +15 -2
- package/lib/util/animation/index.js.map +1 -1
- package/lib/util/date/adapters/yuyeon-date-adapter.js +3 -2
- package/lib/util/date/adapters/yuyeon-date-adapter.js.map +1 -1
- package/lib/util/date/built-in.js +6 -3
- package/lib/util/date/built-in.js.map +1 -1
- package/lib/util/date/types.js.map +1 -1
- package/package.json +1 -1
- package/types/components/dialog/YDialog.d.ts +1 -1
- package/types/util/animation/index.d.ts +1 -1
- package/types/util/date/adapters/yuyeon-date-adapter.d.ts +1 -1
- package/types/util/date/built-in.d.ts +1 -1
- package/types/util/date/types.d.ts +1 -1
|
@@ -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":[]}
|
|
@@ -14,23 +14,26 @@ const defaultSnackbarTransition = {
|
|
|
14
14
|
if (!el.getAttribute('data-transform')) {
|
|
15
15
|
const cache = el.style.getPropertyValue('transform');
|
|
16
16
|
el.setAttribute('data-transform', cache);
|
|
17
|
+
el.setAttribute('data-direction', direction);
|
|
17
18
|
el.style.setProperty('transform', `${cache} translateY(${direction === 'top' ? '-' : ''}40px)`);
|
|
18
19
|
}
|
|
19
20
|
},
|
|
20
21
|
onEnter(el, done) {
|
|
21
22
|
const cache = el.getAttribute('data-transform');
|
|
22
|
-
const
|
|
23
|
-
if (
|
|
23
|
+
const direction = el.getAttribute('data-direction');
|
|
24
|
+
if (!direction || !cache) {
|
|
24
25
|
return;
|
|
25
26
|
}
|
|
26
|
-
el
|
|
27
|
-
|
|
28
|
-
transform: `${cache.replace(/translateY(.+)/, 'translateY(0)')}`
|
|
27
|
+
animate(el, [{
|
|
28
|
+
transform: `${cache} translateY(${direction === 'top' ? '-' : ''}40px)`
|
|
29
29
|
}, {
|
|
30
|
-
|
|
30
|
+
transform: `${cache.replace(/translateY(.+)/, 'translateY(0)')}`
|
|
31
|
+
}], {
|
|
32
|
+
duration: 300,
|
|
33
|
+
easing: 'cubic-bezier(0.25, 0.8, 0.5, 1)'
|
|
31
34
|
}).then(() => {
|
|
32
35
|
el.removeAttribute('data-transform');
|
|
33
|
-
el.removeAttribute('data-
|
|
36
|
+
el.removeAttribute('data-direction');
|
|
34
37
|
done();
|
|
35
38
|
});
|
|
36
39
|
}
|
|
@@ -1 +1 @@
|
|
|
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","motion","transform","replace","duration","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.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 ).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 (!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
|
+
{"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,6 +1,19 @@
|
|
|
1
1
|
export function animate(el, keyframes, options) {
|
|
2
|
-
return
|
|
3
|
-
|
|
2
|
+
if (typeof el.animate === 'undefined') return Promise.resolve();
|
|
3
|
+
let animation;
|
|
4
|
+
try {
|
|
5
|
+
animation = el.animate(keyframes, options);
|
|
6
|
+
} catch (e) {
|
|
7
|
+
return Promise.resolve();
|
|
8
|
+
}
|
|
9
|
+
const promise = new Promise(resolve => {
|
|
10
|
+
animation.onfinish = () => {
|
|
11
|
+
resolve(animation);
|
|
12
|
+
};
|
|
4
13
|
});
|
|
14
|
+
Object.assign(promise, {
|
|
15
|
+
animation
|
|
16
|
+
});
|
|
17
|
+
return promise;
|
|
5
18
|
}
|
|
6
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["animate","el","keyframes","options","Promise"],"sources":["../../../src/util/animation/index.ts"],"sourcesContent":["export function animate(el: Element, keyframes: any, options?: any) {\r\n return
|
|
1
|
+
{"version":3,"file":"index.js","names":["animate","el","keyframes","options","Promise","resolve","animation","e","promise","onfinish","Object","assign"],"sources":["../../../src/util/animation/index.ts"],"sourcesContent":["export function animate(el: Element, keyframes: any, options?: any) {\r\n if (typeof el.animate === 'undefined') return Promise.resolve();\r\n\r\n let animation: Animation;\r\n try {\r\n animation = el.animate(keyframes, options);\r\n } catch (e) {\r\n return Promise.resolve();\r\n }\r\n\r\n const promise = new Promise<any>((resolve) => {\r\n animation.onfinish = () => {\r\n resolve(animation)\r\n };\r\n }) as any;\r\n Object.assign(promise, { animation });\r\n\r\n return promise;\r\n}\r\n"],"mappings":"AAAA,OAAO,SAASA,OAAOA,CAACC,EAAW,EAAEC,SAAc,EAAEC,OAAa,EAAE;EAClE,IAAI,OAAOF,EAAE,CAACD,OAAO,KAAK,WAAW,EAAE,OAAOI,OAAO,CAACC,OAAO,CAAC,CAAC;EAE/D,IAAIC,SAAoB;EACxB,IAAI;IACFA,SAAS,GAAGL,EAAE,CAACD,OAAO,CAACE,SAAS,EAAEC,OAAO,CAAC;EAC5C,CAAC,CAAC,OAAOI,CAAC,EAAE;IACV,OAAOH,OAAO,CAACC,OAAO,CAAC,CAAC;EAC1B;EAEA,MAAMG,OAAO,GAAG,IAAIJ,OAAO,CAAOC,OAAO,IAAK;IAC5CC,SAAS,CAACG,QAAQ,GAAG,MAAM;MACzBJ,OAAO,CAACC,SAAS,CAAC;IACpB,CAAC;EACH,CAAC,CAAQ;EACTI,MAAM,CAACC,MAAM,CAACH,OAAO,EAAE;IAAEF;EAAU,CAAC,CAAC;EAErC,OAAOE,OAAO;AAChB","ignoreList":[]}
|
|
@@ -50,8 +50,9 @@ export class YuyeonDateAdapter {
|
|
|
50
50
|
getNextMonth(date) {
|
|
51
51
|
return DateUtil.getNextMonth(date);
|
|
52
52
|
}
|
|
53
|
-
getWeekdays() {
|
|
54
|
-
|
|
53
|
+
getWeekdays(firstDayIndex) {
|
|
54
|
+
let locale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.locale;
|
|
55
|
+
return DateUtil.getWeekdays(locale, firstDayIndex);
|
|
55
56
|
}
|
|
56
57
|
isAfter(date, comparing) {
|
|
57
58
|
return DateUtil.isAfter(date, comparing);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yuyeon-date-adapter.js","names":["DateUtil","YuyeonDateAdapter","constructor","options","_defineProperty","locale","formats","getWeekArray","date","startOfMonth","endOfMonth","addDays","amount","addMonths","value","endOfDay","endOfYear","format","formatString","getDiff","comparing","unit","getYear","getMonth","getDay","getNextMonth","getWeekdays","isAfter","isBefore","isEqual","isSameDay","isSameMonth","isValid","isWithinRange","range","parseISO","setMonth","month","setYear","year","startOfDay","startOfYear","toISO","toJsDate","getHour","getMinute","setHour","hour","setMinute","minute"],"sources":["../../../../src/util/date/adapters/yuyeon-date-adapter.ts"],"sourcesContent":["import { DateUtil } from '../built-in';\nimport { DateAdapter, DateFormatOptions } from '../types';\n\nexport class YuyeonDateAdapter implements DateAdapter<Date> {\n public locale = 'ko-kr';\n\n public formats?: Record<string, DateFormatOptions>;\n\n constructor(options: {\n locale: string;\n formats?: Record<string, DateFormatOptions>;\n }) {\n this.locale = options.locale;\n this.formats = options.formats;\n }\n\n public getWeekArray(date: Date) {\n return DateUtil.getWeekArray(date, this.locale);\n }\n\n public startOfMonth(date: Date) {\n return DateUtil.startOfMonth(date);\n }\n\n public endOfMonth(date: Date) {\n return DateUtil.endOfMonth(date);\n }\n\n public addDays(date: Date, amount: number): Date {\n return DateUtil.addDays(date, amount);\n }\n\n public addMonths(date: Date, amount: number): Date {\n return DateUtil.addMonths(date, amount);\n }\n\n public date(value?: any): Date | null {\n return DateUtil.date(value);\n }\n\n public endOfDay(date: Date): Date {\n return DateUtil.endOfDay(date);\n }\n\n public endOfYear(date: Date): Date {\n return DateUtil.endOfYear(date);\n }\n\n public format(date: Date, formatString: string): string {\n return DateUtil.format(date, formatString, this.locale, this.formats);\n }\n\n public getDiff(date: Date, comparing: string | Date, unit?: string): number {\n return DateUtil.getDiff(date, comparing, unit);\n }\n\n public getYear(date: Date): number {\n return DateUtil.getYear(date);\n }\n\n public getMonth(date: Date): number {\n return DateUtil.getMonth(date);\n }\n\n public getDay(date: Date): number {\n return DateUtil.getDay(date);\n }\n\n public getNextMonth(date: Date): Date {\n return DateUtil.getNextMonth(date);\n }\n\n public getWeekdays(): string[] {\n return DateUtil.getWeekdays(
|
|
1
|
+
{"version":3,"file":"yuyeon-date-adapter.js","names":["DateUtil","YuyeonDateAdapter","constructor","options","_defineProperty","locale","formats","getWeekArray","date","startOfMonth","endOfMonth","addDays","amount","addMonths","value","endOfDay","endOfYear","format","formatString","getDiff","comparing","unit","getYear","getMonth","getDay","getNextMonth","getWeekdays","firstDayIndex","arguments","length","undefined","isAfter","isBefore","isEqual","isSameDay","isSameMonth","isValid","isWithinRange","range","parseISO","setMonth","month","setYear","year","startOfDay","startOfYear","toISO","toJsDate","getHour","getMinute","setHour","hour","setMinute","minute"],"sources":["../../../../src/util/date/adapters/yuyeon-date-adapter.ts"],"sourcesContent":["import { DateUtil } from '../built-in';\nimport { DateAdapter, DateFormatOptions } from '../types';\n\nexport class YuyeonDateAdapter implements DateAdapter<Date> {\n public locale = 'ko-kr';\n\n public formats?: Record<string, DateFormatOptions>;\n\n constructor(options: {\n locale: string;\n formats?: Record<string, DateFormatOptions>;\n }) {\n this.locale = options.locale;\n this.formats = options.formats;\n }\n\n public getWeekArray(date: Date) {\n return DateUtil.getWeekArray(date, this.locale);\n }\n\n public startOfMonth(date: Date) {\n return DateUtil.startOfMonth(date);\n }\n\n public endOfMonth(date: Date) {\n return DateUtil.endOfMonth(date);\n }\n\n public addDays(date: Date, amount: number): Date {\n return DateUtil.addDays(date, amount);\n }\n\n public addMonths(date: Date, amount: number): Date {\n return DateUtil.addMonths(date, amount);\n }\n\n public date(value?: any): Date | null {\n return DateUtil.date(value);\n }\n\n public endOfDay(date: Date): Date {\n return DateUtil.endOfDay(date);\n }\n\n public endOfYear(date: Date): Date {\n return DateUtil.endOfYear(date);\n }\n\n public format(date: Date, formatString: string): string {\n return DateUtil.format(date, formatString, this.locale, this.formats);\n }\n\n public getDiff(date: Date, comparing: string | Date, unit?: string): number {\n return DateUtil.getDiff(date, comparing, unit);\n }\n\n public getYear(date: Date): number {\n return DateUtil.getYear(date);\n }\n\n public getMonth(date: Date): number {\n return DateUtil.getMonth(date);\n }\n\n public getDay(date: Date): number {\n return DateUtil.getDay(date);\n }\n\n public getNextMonth(date: Date): Date {\n return DateUtil.getNextMonth(date);\n }\n\n public getWeekdays(firstDayIndex?: number, locale = this.locale): string[] {\n return DateUtil.getWeekdays(locale, firstDayIndex);\n }\n\n public isAfter(date: Date, comparing: Date): boolean {\n return DateUtil.isAfter(date, comparing);\n }\n\n public isBefore(date: Date, comparing: Date): boolean {\n return DateUtil.isBefore(date, comparing);\n }\n\n public isEqual(date: Date, comparing: Date): boolean {\n return DateUtil.isEqual(date, comparing);\n }\n\n public isSameDay(date: Date, comparing: Date): boolean {\n return DateUtil.isSameDay(date, comparing);\n }\n\n public isSameMonth(date: Date, comparing: Date): boolean {\n return DateUtil.isSameMonth(date, comparing);\n }\n\n public isValid(date: any): boolean {\n return DateUtil.isValid(date);\n }\n\n public isWithinRange(date: Date, range: [Date, Date]): boolean {\n return DateUtil.isWithinRange(date, range);\n }\n\n public parseISO(date: string): Date {\n return DateUtil.parseISO(date);\n }\n\n public setMonth(date: Date, month: number): Date {\n return DateUtil.setMonth(date, month);\n }\n\n public setYear(date: Date, year: number): Date {\n return DateUtil.setYear(date, year);\n }\n\n public startOfDay(date: Date): Date {\n return DateUtil.startOfDay(date);\n }\n\n public startOfYear(date: Date): Date {\n return DateUtil.startOfYear(date);\n }\n\n public toISO(date: Date): string {\n return DateUtil.toISO(this, date);\n }\n\n public toJsDate(date: Date): Date {\n return date;\n }\n\n getHour(date: Date): number {\n return DateUtil.getHour(date);\n }\n\n getMinute(date: Date): number {\n return DateUtil.getMinute(date);\n }\n\n setHour(date: Date, hour: number): Date {\n return DateUtil.setHour(date, hour);\n }\n\n setMinute(date: Date, minute: number): Date {\n return DateUtil.setMinute(date, minute);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -328,11 +328,14 @@ export class DateUtil {
|
|
|
328
328
|
static getNextMonth(date) {
|
|
329
329
|
return new Date(date.getFullYear(), date.getMonth() + 1, 1);
|
|
330
330
|
}
|
|
331
|
-
static getWeekdays(locale) {
|
|
332
|
-
|
|
331
|
+
static getWeekdays(locale, firstDayIndex) {
|
|
332
|
+
let indexOffset = FIRST_DAY_INDEX[locale.slice(-2).toUpperCase()] ?? 0;
|
|
333
|
+
if (typeof firstDayIndex !== 'undefined' && firstDayIndex >= 0 && firstDayIndex < 7) {
|
|
334
|
+
indexOffset = firstDayIndex;
|
|
335
|
+
}
|
|
333
336
|
return [...Array(7).keys()].map(i => {
|
|
334
337
|
const weekday = new Date(FIRST_SUNDAY);
|
|
335
|
-
weekday.setDate(FIRST_SUNDAY.getDate() +
|
|
338
|
+
weekday.setDate(FIRST_SUNDAY.getDate() + indexOffset + i);
|
|
336
339
|
return new Intl.DateTimeFormat(locale, {
|
|
337
340
|
weekday: 'narrow'
|
|
338
341
|
}).format(weekday);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"built-in.js","names":["FIRST_DAY_INDEX","AD","AE","AF","AG","AI","AL","AM","AN","AR","AS","AT","AU","AX","AZ","BA","BD","BE","BG","BH","BM","BN","BR","BS","BT","BW","BY","BZ","CA","CH","CL","CM","CN","CO","CR","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","ES","ET","FI","FJ","FO","FR","GB","GE","GF","GP","GR","GT","GU","HK","HN","HR","HU","ID","IE","IL","IN","IQ","IR","IS","IT","JM","JO","JP","KE","KG","KH","KR","KW","KZ","LA","LB","LI","LK","LT","LU","LV","LY","MC","MD","ME","MH","MK","MM","MN","MO","MQ","MT","MV","MX","MY","MZ","NI","NL","NO","NP","NZ","OM","PA","PE","PH","PK","PL","PR","PT","PY","QA","RE","RO","RS","RU","SA","SD","SE","SG","SI","SK","SM","SV","SY","TH","TJ","TM","TR","TT","TW","UA","UM","US","UY","UZ","VA","VE","VI","VN","WS","XK","YE","ZA","ZW","ONE_DAY","YYYY_MM_DD_REGEX","FIRST_SUNDAY","Date","DateUtil","date","value","parsed","test","parseLocalDate","parse","isNaN","format","formatString","locale","formats","neo","formatFunction","options","weekday","day","month","year","timeZone","timeZoneName","Intl","DateTimeFormat","parts","split","map","Number","parseISO","toISO","adapter","toJsDate","getFullYear","getMonth","getDate","getWeekArray","weeks","currentWeek","firstDayOfMonth","startOfMonth","lastDayOfMonth","endOfMonth","firstDayWeekIndex","getDay","slice","toUpperCase","lastDayWeekIndex","i","adjacentDay","setDate","push","length","startOfDay","startOfYear","endOfDay","endOfYear","getYear","getNextMonth","getWeekdays","sundayIndex","Array","keys","getMeridians","amDate","setHours","pmDate","formatter","minute","hour","hour12","replace","trim","isAfter","comparing","getTime","isBefore","isEqual","isSameDay","isSameMonth","isValid","d","isWithinRange","range","addDays","amount","addMonths","setMonth","getDiff","unit","b","c","Math","floor","setYear","setFullYear","getHour","getHours","setHour","getMinute","getMinutes","setMinute","setMinutes"],"sources":["../../../src/util/date/built-in.ts"],"sourcesContent":["import type { DateAdapter, DateFormatOptions } from './types';\r\n\r\nconst FIRST_DAY_INDEX: Record<string, number> = {\r\n AD: 1,\r\n AE: 6,\r\n AF: 6,\r\n AG: 0,\r\n AI: 1,\r\n AL: 1,\r\n AM: 1,\r\n AN: 1,\r\n AR: 1,\r\n AS: 0,\r\n AT: 1,\r\n AU: 1,\r\n AX: 1,\r\n AZ: 1,\r\n BA: 1,\r\n BD: 0,\r\n BE: 1,\r\n BG: 1,\r\n BH: 6,\r\n BM: 1,\r\n BN: 1,\r\n BR: 0,\r\n BS: 0,\r\n BT: 0,\r\n BW: 0,\r\n BY: 1,\r\n BZ: 0,\r\n CA: 0,\r\n CH: 1,\r\n CL: 1,\r\n CM: 1,\r\n CN: 1,\r\n CO: 0,\r\n CR: 1,\r\n CY: 1,\r\n CZ: 1,\r\n DE: 1,\r\n DJ: 6,\r\n DK: 1,\r\n DM: 0,\r\n DO: 0,\r\n DZ: 6,\r\n EC: 1,\r\n EE: 1,\r\n EG: 6,\r\n ES: 1,\r\n ET: 0,\r\n FI: 1,\r\n FJ: 1,\r\n FO: 1,\r\n FR: 1,\r\n GB: 1,\r\n GE: 1,\r\n GF: 1,\r\n GP: 1,\r\n GR: 1,\r\n GT: 0,\r\n GU: 0,\r\n HK: 0,\r\n HN: 0,\r\n HR: 1,\r\n HU: 1,\r\n ID: 0,\r\n IE: 1,\r\n IL: 0,\r\n IN: 0,\r\n IQ: 6,\r\n IR: 6,\r\n IS: 1,\r\n IT: 1,\r\n JM: 0,\r\n JO: 6,\r\n JP: 0,\r\n KE: 0,\r\n KG: 1,\r\n KH: 0,\r\n KR: 0,\r\n KW: 6,\r\n KZ: 1,\r\n LA: 0,\r\n LB: 1,\r\n LI: 1,\r\n LK: 1,\r\n LT: 1,\r\n LU: 1,\r\n LV: 1,\r\n LY: 6,\r\n MC: 1,\r\n MD: 1,\r\n ME: 1,\r\n MH: 0,\r\n MK: 1,\r\n MM: 0,\r\n MN: 1,\r\n MO: 0,\r\n MQ: 1,\r\n MT: 0,\r\n MV: 5,\r\n MX: 0,\r\n MY: 1,\r\n MZ: 0,\r\n NI: 0,\r\n NL: 1,\r\n NO: 1,\r\n NP: 0,\r\n NZ: 1,\r\n OM: 6,\r\n PA: 0,\r\n PE: 0,\r\n PH: 0,\r\n PK: 0,\r\n PL: 1,\r\n PR: 0,\r\n PT: 0,\r\n PY: 0,\r\n QA: 6,\r\n RE: 1,\r\n RO: 1,\r\n RS: 1,\r\n RU: 1,\r\n SA: 0,\r\n SD: 6,\r\n SE: 1,\r\n SG: 0,\r\n SI: 1,\r\n SK: 1,\r\n SM: 1,\r\n SV: 0,\r\n SY: 6,\r\n TH: 0,\r\n TJ: 1,\r\n TM: 1,\r\n TR: 1,\r\n TT: 0,\r\n TW: 0,\r\n UA: 1,\r\n UM: 0,\r\n US: 0,\r\n UY: 1,\r\n UZ: 1,\r\n VA: 1,\r\n VE: 0,\r\n VI: 0,\r\n VN: 1,\r\n WS: 0,\r\n XK: 1,\r\n YE: 0,\r\n ZA: 0,\r\n ZW: 0,\r\n};\r\n\r\nexport const ONE_DAY = 1000 * 60 * 60 * 24;\r\nexport const YYYY_MM_DD_REGEX =\r\n /^([12]\\d{3}-([1-9]|0[1-9]|1[0-2])-([1-9]|0[1-9]|[12]\\d|3[01]))$/;\r\nexport const FIRST_SUNDAY = new Date(1970, 0, 4);\r\n\r\n// biome-ignore lint/complexity/noStaticOnlyClass: <explanation>\r\nexport class DateUtil {\r\n static date(value?: any): Date | null {\r\n if (value == null) return new Date();\r\n if (value instanceof Date) {\r\n return value;\r\n }\r\n let parsed: number;\r\n if (typeof value === 'string') {\r\n if (YYYY_MM_DD_REGEX.test(value)) {\r\n return DateUtil.parseLocalDate(value);\r\n } else {\r\n parsed = Date.parse(value);\r\n }\r\n\r\n if (!isNaN(parsed)) {\r\n return new Date(parsed);\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n static format(\r\n value: Date,\r\n formatString: string,\r\n locale: string,\r\n formats?: Record<string, DateFormatOptions>,\r\n ): string {\r\n const neo = DateUtil.date(value) ?? new Date();\r\n const formatFunction = formats?.[formatString];\r\n\r\n if (typeof formatFunction === 'function') {\r\n return formatFunction(neo, formatString, locale);\r\n }\r\n\r\n let options: Intl.DateTimeFormatOptions = {};\r\n switch (formatString) {\r\n case 'fullDateWithWeekday':\r\n options = {\r\n weekday: 'long',\r\n day: 'numeric',\r\n month: 'long',\r\n year: 'numeric',\r\n };\r\n break;\r\n case 'normalDateWithWeekday':\r\n options = { weekday: 'short', day: 'numeric', month: 'short' };\r\n break;\r\n case 'keyboardDate':\r\n options = { day: '2-digit', month: '2-digit', year: 'numeric' };\r\n break;\r\n case 'monthAndDate':\r\n options = { month: 'long', day: 'numeric' };\r\n break;\r\n case 'monthAndYear':\r\n options = { month: 'long', year: 'numeric' };\r\n break;\r\n case 'year':\r\n options = { year: 'numeric' };\r\n break;\r\n case 'month':\r\n options = { month: 'long' };\r\n break;\r\n case 'monthShort':\r\n options = { month: 'short' };\r\n break;\r\n case 'dayOfMonth':\r\n options = { day: 'numeric' };\r\n break;\r\n case 'shortDate':\r\n options = { year: '2-digit', month: 'numeric', day: 'numeric' };\r\n break;\r\n default:\r\n options = formatFunction ?? { timeZone: 'UTC', timeZoneName: 'short' };\r\n }\r\n\r\n return new Intl.DateTimeFormat(locale, options).format(neo);\r\n }\r\n\r\n static parseLocalDate(value: string) {\r\n const parts = value.split('-').map(Number);\r\n return new Date(parts[0], parts[1] - 1, parts[2]);\r\n }\r\n\r\n static parseISO(value: string): Date {\r\n const [year, month, day] = value.split('-').map(Number);\r\n return new Date(year, month - 1, day);\r\n }\r\n\r\n static toISO(adapter: DateAdapter<any>, value: Date): string {\r\n const date = adapter.toJsDate(value);\r\n const year = date.getFullYear();\r\n const month =\r\n date.getMonth() + 1 < 10\r\n ? `0${date.getMonth() + 1}`\r\n : `${date.getMonth() + 1}`;\r\n const day =\r\n date.getDate() < 10 ? `0${date.getDate()}` : `${date.getDate()}`;\r\n return `${year}-${month}-${day}`;\r\n }\r\n\r\n static getWeekArray(date: Date, locale: string) {\r\n const weeks = [];\r\n let currentWeek = [];\r\n const firstDayOfMonth = DateUtil.startOfMonth(date);\r\n const lastDayOfMonth = DateUtil.endOfMonth(date);\r\n const firstDayWeekIndex =\r\n (firstDayOfMonth.getDay() -\r\n FIRST_DAY_INDEX[locale.slice(-2).toUpperCase()] +\r\n 7) %\r\n 7;\r\n const lastDayWeekIndex =\r\n (lastDayOfMonth.getDay() -\r\n FIRST_DAY_INDEX[locale.slice(-2).toUpperCase()] +\r\n 7) %\r\n 7;\r\n // prev month\r\n for (let i = 0; i < firstDayWeekIndex; i++) {\r\n const adjacentDay = new Date(firstDayOfMonth);\r\n adjacentDay.setDate(adjacentDay.getDate() - (firstDayWeekIndex - i));\r\n currentWeek.push(adjacentDay);\r\n }\r\n // this month\r\n for (let i = 1; i <= lastDayOfMonth.getDate(); i++) {\r\n currentWeek.push(new Date(date.getFullYear(), date.getMonth(), i));\r\n // flush full week\r\n if (currentWeek.length === 7) {\r\n weeks.push(currentWeek);\r\n currentWeek = [];\r\n }\r\n }\r\n // next month\r\n for (let i = 1; i < 7 - lastDayWeekIndex; i++) {\r\n const adjacentDay = new Date(lastDayOfMonth);\r\n adjacentDay.setDate(adjacentDay.getDate() + i);\r\n currentWeek.push(adjacentDay);\r\n }\r\n\r\n if (currentWeek.length > 0) {\r\n weeks.push(currentWeek);\r\n }\r\n\r\n return weeks;\r\n }\r\n\r\n static startOfMonth(date: Date) {\r\n return new Date(date.getFullYear(), date.getMonth(), 1);\r\n }\r\n\r\n static endOfMonth(date: Date) {\r\n return new Date(date.getFullYear(), date.getMonth() + 1, 0);\r\n }\r\n\r\n static startOfDay(date: Date) {\r\n return new Date(date.getFullYear(), date.getMonth(), date.getDate());\r\n }\r\n\r\n static startOfYear(date: Date) {\r\n return new Date(date.getFullYear(), 0, 1);\r\n }\r\n\r\n static endOfDay(date: Date) {\r\n return new Date(\r\n date.getFullYear(),\r\n date.getMonth(),\r\n date.getDate(),\r\n 23,\r\n 59,\r\n 59,\r\n 999,\r\n );\r\n }\r\n\r\n static endOfYear(date: Date) {\r\n return new Date(date.getFullYear(), 11, 31);\r\n }\r\n\r\n static getYear(date: Date) {\r\n return date.getFullYear();\r\n }\r\n\r\n static getMonth(date: Date): number {\r\n return date.getMonth();\r\n }\r\n\r\n static getDay(date: Date): number {\r\n return date.getDate();\r\n }\r\n\r\n static getNextMonth(date: Date) {\r\n return new Date(date.getFullYear(), date.getMonth() + 1, 1);\r\n }\r\n\r\n static getWeekdays(locale: string) {\r\n const sundayIndex = FIRST_DAY_INDEX[locale.slice(-2).toUpperCase()] ?? 0;\r\n return [...Array(7).keys()].map((i) => {\r\n const weekday = new Date(FIRST_SUNDAY);\r\n weekday.setDate(FIRST_SUNDAY.getDate() + sundayIndex + i);\r\n return new Intl.DateTimeFormat(locale, { weekday: 'narrow' }).format(\r\n weekday,\r\n );\r\n });\r\n }\r\n\r\n static getMeridians(locale: string) {\r\n const amDate = new Date(FIRST_SUNDAY).setHours(11);\r\n const pmDate = new Date(FIRST_SUNDAY).setHours(13);\r\n const formatter = Intl.DateTimeFormat(locale, {\r\n minute: 'numeric',\r\n hour: 'numeric',\r\n hour12: true,\r\n });\r\n return [\r\n formatter\r\n .format(amDate)\r\n .replace(/\\d+:\\d+/, '')\r\n .trim(),\r\n formatter\r\n .format(pmDate)\r\n .replace(/\\d+:\\d+/, '')\r\n .trim(),\r\n ];\r\n }\r\n\r\n static isAfter(date: Date, comparing: Date): boolean {\r\n return date.getTime() > comparing.getTime();\r\n }\r\n\r\n static isBefore(date: Date, comparing: Date): boolean {\r\n return date.getTime() < comparing.getTime();\r\n }\r\n\r\n static isEqual(date: Date, comparing: Date): boolean {\r\n return date.getTime() === comparing.getTime();\r\n }\r\n\r\n static isSameDay(date: Date, comparing: Date): boolean {\r\n return (\r\n date.getDate() === comparing.getDate() &&\r\n date.getMonth() === comparing.getMonth() &&\r\n date.getFullYear() === comparing.getFullYear()\r\n );\r\n }\r\n\r\n static isSameMonth(date: Date, comparing: Date): boolean {\r\n return !!(\r\n date.getMonth() === comparing.getMonth() &&\r\n date.getFullYear() &&\r\n comparing.getFullYear()\r\n );\r\n }\r\n\r\n static isValid(date: any): boolean {\r\n const d = new Date(date);\r\n return d instanceof Date && !isNaN(d.getTime());\r\n }\r\n\r\n static isWithinRange(date: Date, range: [Date, Date]): boolean {\r\n return (\r\n DateUtil.isAfter(date, range[0]) && DateUtil.isBefore(date, range[1])\r\n );\r\n }\r\n\r\n static addDays(date: Date, amount: number) {\r\n const d = new Date(date);\r\n d.setDate(d.getDate() + amount);\r\n return d;\r\n }\r\n\r\n static addMonths(date: Date, amount: number) {\r\n const d = new Date(date);\r\n d.setMonth(d.getMonth() + amount);\r\n return d;\r\n }\r\n\r\n static getDiff(\r\n date: Date,\r\n comparing: string | Date,\r\n unit?: 'month' | string,\r\n ): number {\r\n const b = new Date(date);\r\n const c = new Date(comparing);\r\n\r\n if (unit === 'month') {\r\n return (\r\n b.getMonth() - c.getMonth() + (b.getFullYear() - c.getFullYear()) * 12\r\n );\r\n }\r\n\r\n return Math.floor(b.getTime() - c.getTime()) / ONE_DAY;\r\n }\r\n\r\n static setMonth(date: Date, month: number) {\r\n const d = new Date(date);\r\n d.setMonth(month);\r\n return d;\r\n }\r\n\r\n static setYear(date: Date, year: number) {\r\n const d = new Date(date);\r\n d.setFullYear(year);\r\n return d;\r\n }\r\n\r\n static getHour(date: Date): number {\r\n return date.getHours();\r\n }\r\n\r\n static setHour(date: Date, hour: number) {\r\n const d = new Date(date);\r\n d.setHours(hour);\r\n return d;\r\n }\r\n\r\n static getMinute(date: Date): number {\r\n return date.getMinutes();\r\n }\r\n\r\n static setMinute(date: Date, minute: number) {\r\n const d = new Date(date);\r\n d.setMinutes(minute);\r\n return d;\r\n }\r\n}\r\n"],"mappings":"AAEA,MAAMA,eAAuC,GAAG;EAC9CC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACL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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"built-in.js","names":["FIRST_DAY_INDEX","AD","AE","AF","AG","AI","AL","AM","AN","AR","AS","AT","AU","AX","AZ","BA","BD","BE","BG","BH","BM","BN","BR","BS","BT","BW","BY","BZ","CA","CH","CL","CM","CN","CO","CR","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","ES","ET","FI","FJ","FO","FR","GB","GE","GF","GP","GR","GT","GU","HK","HN","HR","HU","ID","IE","IL","IN","IQ","IR","IS","IT","JM","JO","JP","KE","KG","KH","KR","KW","KZ","LA","LB","LI","LK","LT","LU","LV","LY","MC","MD","ME","MH","MK","MM","MN","MO","MQ","MT","MV","MX","MY","MZ","NI","NL","NO","NP","NZ","OM","PA","PE","PH","PK","PL","PR","PT","PY","QA","RE","RO","RS","RU","SA","SD","SE","SG","SI","SK","SM","SV","SY","TH","TJ","TM","TR","TT","TW","UA","UM","US","UY","UZ","VA","VE","VI","VN","WS","XK","YE","ZA","ZW","ONE_DAY","YYYY_MM_DD_REGEX","FIRST_SUNDAY","Date","DateUtil","date","value","parsed","test","parseLocalDate","parse","isNaN","format","formatString","locale","formats","neo","formatFunction","options","weekday","day","month","year","timeZone","timeZoneName","Intl","DateTimeFormat","parts","split","map","Number","parseISO","toISO","adapter","toJsDate","getFullYear","getMonth","getDate","getWeekArray","weeks","currentWeek","firstDayOfMonth","startOfMonth","lastDayOfMonth","endOfMonth","firstDayWeekIndex","getDay","slice","toUpperCase","lastDayWeekIndex","i","adjacentDay","setDate","push","length","startOfDay","startOfYear","endOfDay","endOfYear","getYear","getNextMonth","getWeekdays","firstDayIndex","indexOffset","Array","keys","getMeridians","amDate","setHours","pmDate","formatter","minute","hour","hour12","replace","trim","isAfter","comparing","getTime","isBefore","isEqual","isSameDay","isSameMonth","isValid","d","isWithinRange","range","addDays","amount","addMonths","setMonth","getDiff","unit","b","c","Math","floor","setYear","setFullYear","getHour","getHours","setHour","getMinute","getMinutes","setMinute","setMinutes"],"sources":["../../../src/util/date/built-in.ts"],"sourcesContent":["import type { DateAdapter, DateFormatOptions } from './types';\r\n\r\nconst FIRST_DAY_INDEX: Record<string, number> = {\r\n AD: 1,\r\n AE: 6,\r\n AF: 6,\r\n AG: 0,\r\n AI: 1,\r\n AL: 1,\r\n AM: 1,\r\n AN: 1,\r\n AR: 1,\r\n AS: 0,\r\n AT: 1,\r\n AU: 1,\r\n AX: 1,\r\n AZ: 1,\r\n BA: 1,\r\n BD: 0,\r\n BE: 1,\r\n BG: 1,\r\n BH: 6,\r\n BM: 1,\r\n BN: 1,\r\n BR: 0,\r\n BS: 0,\r\n BT: 0,\r\n BW: 0,\r\n BY: 1,\r\n BZ: 0,\r\n CA: 0,\r\n CH: 1,\r\n CL: 1,\r\n CM: 1,\r\n CN: 1,\r\n CO: 0,\r\n CR: 1,\r\n CY: 1,\r\n CZ: 1,\r\n DE: 1,\r\n DJ: 6,\r\n DK: 1,\r\n DM: 0,\r\n DO: 0,\r\n DZ: 6,\r\n EC: 1,\r\n EE: 1,\r\n EG: 6,\r\n ES: 1,\r\n ET: 0,\r\n FI: 1,\r\n FJ: 1,\r\n FO: 1,\r\n FR: 1,\r\n GB: 1,\r\n GE: 1,\r\n GF: 1,\r\n GP: 1,\r\n GR: 1,\r\n GT: 0,\r\n GU: 0,\r\n HK: 0,\r\n HN: 0,\r\n HR: 1,\r\n HU: 1,\r\n ID: 0,\r\n IE: 1,\r\n IL: 0,\r\n IN: 0,\r\n IQ: 6,\r\n IR: 6,\r\n IS: 1,\r\n IT: 1,\r\n JM: 0,\r\n JO: 6,\r\n JP: 0,\r\n KE: 0,\r\n KG: 1,\r\n KH: 0,\r\n KR: 0,\r\n KW: 6,\r\n KZ: 1,\r\n LA: 0,\r\n LB: 1,\r\n LI: 1,\r\n LK: 1,\r\n LT: 1,\r\n LU: 1,\r\n LV: 1,\r\n LY: 6,\r\n MC: 1,\r\n MD: 1,\r\n ME: 1,\r\n MH: 0,\r\n MK: 1,\r\n MM: 0,\r\n MN: 1,\r\n MO: 0,\r\n MQ: 1,\r\n MT: 0,\r\n MV: 5,\r\n MX: 0,\r\n MY: 1,\r\n MZ: 0,\r\n NI: 0,\r\n NL: 1,\r\n NO: 1,\r\n NP: 0,\r\n NZ: 1,\r\n OM: 6,\r\n PA: 0,\r\n PE: 0,\r\n PH: 0,\r\n PK: 0,\r\n PL: 1,\r\n PR: 0,\r\n PT: 0,\r\n PY: 0,\r\n QA: 6,\r\n RE: 1,\r\n RO: 1,\r\n RS: 1,\r\n RU: 1,\r\n SA: 0,\r\n SD: 6,\r\n SE: 1,\r\n SG: 0,\r\n SI: 1,\r\n SK: 1,\r\n SM: 1,\r\n SV: 0,\r\n SY: 6,\r\n TH: 0,\r\n TJ: 1,\r\n TM: 1,\r\n TR: 1,\r\n TT: 0,\r\n TW: 0,\r\n UA: 1,\r\n UM: 0,\r\n US: 0,\r\n UY: 1,\r\n UZ: 1,\r\n VA: 1,\r\n VE: 0,\r\n VI: 0,\r\n VN: 1,\r\n WS: 0,\r\n XK: 1,\r\n YE: 0,\r\n ZA: 0,\r\n ZW: 0,\r\n};\r\n\r\nexport const ONE_DAY = 1000 * 60 * 60 * 24;\r\nexport const YYYY_MM_DD_REGEX =\r\n /^([12]\\d{3}-([1-9]|0[1-9]|1[0-2])-([1-9]|0[1-9]|[12]\\d|3[01]))$/;\r\nexport const FIRST_SUNDAY = new Date(1970, 0, 4);\r\n\r\n// biome-ignore lint/complexity/noStaticOnlyClass: <explanation>\r\nexport class DateUtil {\r\n static date(value?: any): Date | null {\r\n if (value == null) return new Date();\r\n if (value instanceof Date) {\r\n return value;\r\n }\r\n let parsed: number;\r\n if (typeof value === 'string') {\r\n if (YYYY_MM_DD_REGEX.test(value)) {\r\n return DateUtil.parseLocalDate(value);\r\n } else {\r\n parsed = Date.parse(value);\r\n }\r\n\r\n if (!isNaN(parsed)) {\r\n return new Date(parsed);\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n static format(\r\n value: Date,\r\n formatString: string,\r\n locale: string,\r\n formats?: Record<string, DateFormatOptions>,\r\n ): string {\r\n const neo = DateUtil.date(value) ?? new Date();\r\n const formatFunction = formats?.[formatString];\r\n\r\n if (typeof formatFunction === 'function') {\r\n return formatFunction(neo, formatString, locale);\r\n }\r\n\r\n let options: Intl.DateTimeFormatOptions = {};\r\n switch (formatString) {\r\n case 'fullDateWithWeekday':\r\n options = {\r\n weekday: 'long',\r\n day: 'numeric',\r\n month: 'long',\r\n year: 'numeric',\r\n };\r\n break;\r\n case 'normalDateWithWeekday':\r\n options = { weekday: 'short', day: 'numeric', month: 'short' };\r\n break;\r\n case 'keyboardDate':\r\n options = { day: '2-digit', month: '2-digit', year: 'numeric' };\r\n break;\r\n case 'monthAndDate':\r\n options = { month: 'long', day: 'numeric' };\r\n break;\r\n case 'monthAndYear':\r\n options = { month: 'long', year: 'numeric' };\r\n break;\r\n case 'year':\r\n options = { year: 'numeric' };\r\n break;\r\n case 'month':\r\n options = { month: 'long' };\r\n break;\r\n case 'monthShort':\r\n options = { month: 'short' };\r\n break;\r\n case 'dayOfMonth':\r\n options = { day: 'numeric' };\r\n break;\r\n case 'shortDate':\r\n options = { year: '2-digit', month: 'numeric', day: 'numeric' };\r\n break;\r\n default:\r\n options = formatFunction ?? { timeZone: 'UTC', timeZoneName: 'short' };\r\n }\r\n\r\n return new Intl.DateTimeFormat(locale, options).format(neo);\r\n }\r\n\r\n static parseLocalDate(value: string) {\r\n const parts = value.split('-').map(Number);\r\n return new Date(parts[0], parts[1] - 1, parts[2]);\r\n }\r\n\r\n static parseISO(value: string): Date {\r\n const [year, month, day] = value.split('-').map(Number);\r\n return new Date(year, month - 1, day);\r\n }\r\n\r\n static toISO(adapter: DateAdapter<any>, value: Date): string {\r\n const date = adapter.toJsDate(value);\r\n const year = date.getFullYear();\r\n const month =\r\n date.getMonth() + 1 < 10\r\n ? `0${date.getMonth() + 1}`\r\n : `${date.getMonth() + 1}`;\r\n const day =\r\n date.getDate() < 10 ? `0${date.getDate()}` : `${date.getDate()}`;\r\n return `${year}-${month}-${day}`;\r\n }\r\n\r\n static getWeekArray(date: Date, locale: string) {\r\n const weeks = [];\r\n let currentWeek = [];\r\n const firstDayOfMonth = DateUtil.startOfMonth(date);\r\n const lastDayOfMonth = DateUtil.endOfMonth(date);\r\n const firstDayWeekIndex =\r\n (firstDayOfMonth.getDay() -\r\n FIRST_DAY_INDEX[locale.slice(-2).toUpperCase()] +\r\n 7) %\r\n 7;\r\n const lastDayWeekIndex =\r\n (lastDayOfMonth.getDay() -\r\n FIRST_DAY_INDEX[locale.slice(-2).toUpperCase()] +\r\n 7) %\r\n 7;\r\n // prev month\r\n for (let i = 0; i < firstDayWeekIndex; i++) {\r\n const adjacentDay = new Date(firstDayOfMonth);\r\n adjacentDay.setDate(adjacentDay.getDate() - (firstDayWeekIndex - i));\r\n currentWeek.push(adjacentDay);\r\n }\r\n // this month\r\n for (let i = 1; i <= lastDayOfMonth.getDate(); i++) {\r\n currentWeek.push(new Date(date.getFullYear(), date.getMonth(), i));\r\n // flush full week\r\n if (currentWeek.length === 7) {\r\n weeks.push(currentWeek);\r\n currentWeek = [];\r\n }\r\n }\r\n // next month\r\n for (let i = 1; i < 7 - lastDayWeekIndex; i++) {\r\n const adjacentDay = new Date(lastDayOfMonth);\r\n adjacentDay.setDate(adjacentDay.getDate() + i);\r\n currentWeek.push(adjacentDay);\r\n }\r\n\r\n if (currentWeek.length > 0) {\r\n weeks.push(currentWeek);\r\n }\r\n\r\n return weeks;\r\n }\r\n\r\n static startOfMonth(date: Date) {\r\n return new Date(date.getFullYear(), date.getMonth(), 1);\r\n }\r\n\r\n static endOfMonth(date: Date) {\r\n return new Date(date.getFullYear(), date.getMonth() + 1, 0);\r\n }\r\n\r\n static startOfDay(date: Date) {\r\n return new Date(date.getFullYear(), date.getMonth(), date.getDate());\r\n }\r\n\r\n static startOfYear(date: Date) {\r\n return new Date(date.getFullYear(), 0, 1);\r\n }\r\n\r\n static endOfDay(date: Date) {\r\n return new Date(\r\n date.getFullYear(),\r\n date.getMonth(),\r\n date.getDate(),\r\n 23,\r\n 59,\r\n 59,\r\n 999,\r\n );\r\n }\r\n\r\n static endOfYear(date: Date) {\r\n return new Date(date.getFullYear(), 11, 31);\r\n }\r\n\r\n static getYear(date: Date) {\r\n return date.getFullYear();\r\n }\r\n\r\n static getMonth(date: Date): number {\r\n return date.getMonth();\r\n }\r\n\r\n static getDay(date: Date): number {\r\n return date.getDate();\r\n }\r\n\r\n static getNextMonth(date: Date) {\r\n return new Date(date.getFullYear(), date.getMonth() + 1, 1);\r\n }\r\n\r\n static getWeekdays(locale: string, firstDayIndex?: number) {\r\n let indexOffset = FIRST_DAY_INDEX[locale.slice(-2).toUpperCase()] ?? 0;\r\n if (typeof firstDayIndex !== 'undefined' && firstDayIndex >= 0 && firstDayIndex < 7) {\r\n indexOffset = firstDayIndex;\r\n }\r\n return [...Array(7).keys()].map((i) => {\r\n const weekday = new Date(FIRST_SUNDAY);\r\n weekday.setDate(FIRST_SUNDAY.getDate() + indexOffset + i);\r\n return new Intl.DateTimeFormat(locale, { weekday: 'narrow' }).format(\r\n weekday,\r\n );\r\n });\r\n }\r\n\r\n static getMeridians(locale: string) {\r\n const amDate = new Date(FIRST_SUNDAY).setHours(11);\r\n const pmDate = new Date(FIRST_SUNDAY).setHours(13);\r\n const formatter = Intl.DateTimeFormat(locale, {\r\n minute: 'numeric',\r\n hour: 'numeric',\r\n hour12: true,\r\n });\r\n return [\r\n formatter\r\n .format(amDate)\r\n .replace(/\\d+:\\d+/, '')\r\n .trim(),\r\n formatter\r\n .format(pmDate)\r\n .replace(/\\d+:\\d+/, '')\r\n .trim(),\r\n ];\r\n }\r\n\r\n static isAfter(date: Date, comparing: Date): boolean {\r\n return date.getTime() > comparing.getTime();\r\n }\r\n\r\n static isBefore(date: Date, comparing: Date): boolean {\r\n return date.getTime() < comparing.getTime();\r\n }\r\n\r\n static isEqual(date: Date, comparing: Date): boolean {\r\n return date.getTime() === comparing.getTime();\r\n }\r\n\r\n static isSameDay(date: Date, comparing: Date): boolean {\r\n return (\r\n date.getDate() === comparing.getDate() &&\r\n date.getMonth() === comparing.getMonth() &&\r\n date.getFullYear() === comparing.getFullYear()\r\n );\r\n }\r\n\r\n static isSameMonth(date: Date, comparing: Date): boolean {\r\n return !!(\r\n date.getMonth() === comparing.getMonth() &&\r\n date.getFullYear() &&\r\n comparing.getFullYear()\r\n );\r\n }\r\n\r\n static isValid(date: any): boolean {\r\n const d = new Date(date);\r\n return d instanceof Date && !isNaN(d.getTime());\r\n }\r\n\r\n static isWithinRange(date: Date, range: [Date, Date]): boolean {\r\n return (\r\n DateUtil.isAfter(date, range[0]) && DateUtil.isBefore(date, range[1])\r\n );\r\n }\r\n\r\n static addDays(date: Date, amount: number) {\r\n const d = new Date(date);\r\n d.setDate(d.getDate() + amount);\r\n return d;\r\n }\r\n\r\n static addMonths(date: Date, amount: number) {\r\n const d = new Date(date);\r\n d.setMonth(d.getMonth() + amount);\r\n return d;\r\n }\r\n\r\n static getDiff(\r\n date: Date,\r\n comparing: string | Date,\r\n unit?: 'month' | string,\r\n ): number {\r\n const b = new Date(date);\r\n const c = new Date(comparing);\r\n\r\n if (unit === 'month') {\r\n return (\r\n b.getMonth() - c.getMonth() + (b.getFullYear() - c.getFullYear()) * 12\r\n );\r\n }\r\n\r\n return Math.floor(b.getTime() - c.getTime()) / ONE_DAY;\r\n }\r\n\r\n static setMonth(date: Date, month: number) {\r\n const d = new Date(date);\r\n d.setMonth(month);\r\n return d;\r\n }\r\n\r\n static setYear(date: Date, year: number) {\r\n const d = new Date(date);\r\n d.setFullYear(year);\r\n return d;\r\n }\r\n\r\n static getHour(date: Date): number {\r\n return date.getHours();\r\n }\r\n\r\n static setHour(date: Date, hour: number) {\r\n const d = new Date(date);\r\n d.setHours(hour);\r\n return d;\r\n }\r\n\r\n static getMinute(date: Date): number {\r\n return date.getMinutes();\r\n }\r\n\r\n static setMinute(date: Date, minute: number) {\r\n const d = new Date(date);\r\n d.setMinutes(minute);\r\n return d;\r\n }\r\n}\r\n"],"mappings":"AAEA,MAAMA,eAAuC,GAAG;EAC9CC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACL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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../src/util/date/types.ts"],"sourcesContent":["export interface DateAdapter<T = unknown> {\r\n /**\r\n *\r\n * @param value\r\n */\r\n date(value?: any): T | null;\r\n\r\n /**\r\n *\r\n * @param date\r\n * @param formatString\r\n */\r\n format(date: T, formatString: string): string;\r\n\r\n /**\r\n *\r\n * @param value\r\n */\r\n toJsDate(value: T): Date;\r\n\r\n /**\r\n *\r\n * @param date\r\n */\r\n parseISO(date: string): T;\r\n\r\n /**\r\n *\r\n * @param date\r\n */\r\n toISO(date: T): string;\r\n\r\n /**\r\n *\r\n * @param date\r\n */\r\n startOfDay(date: T): T;\r\n\r\n /**\r\n *\r\n * @param date\r\n */\r\n endOfDay(date: T): T;\r\n\r\n /**\r\n *\r\n * @param date\r\n */\r\n startOfMonth(date: T): T;\r\n\r\n /**\r\n *\r\n * @param date\r\n */\r\n endOfMonth(date: T): T;\r\n\r\n /**\r\n *\r\n * @param date\r\n */\r\n startOfYear(date: T): T;\r\n\r\n /**\r\n *\r\n * @param date\r\n */\r\n endOfYear(date: T): T;\r\n\r\n /**\r\n *\r\n * @param date\r\n * @param comparing\r\n */\r\n isBefore(date: T, comparing: T): boolean;\r\n\r\n /**\r\n *\r\n * @param date\r\n * @param comparing\r\n */\r\n isAfter(date: T, comparing: T): boolean;\r\n\r\n /**\r\n *\r\n * @param date\r\n * @param comparing\r\n */\r\n isEqual(date: T, comparing: T): boolean;\r\n\r\n /**\r\n *\r\n * @param date\r\n * @param comparing\r\n */\r\n isSameDay(date: T, comparing: T): boolean;\r\n\r\n /**\r\n *\r\n * @param date\r\n * @param comparing\r\n */\r\n isSameMonth(date: T, comparing: T): boolean;\r\n\r\n /**\r\n *\r\n * @param date\r\n */\r\n isValid(date: any): boolean;\r\n\r\n /**\r\n *\r\n * @param date\r\n * @param range\r\n */\r\n isWithinRange(date: T, range: [T, T]): boolean;\r\n\r\n /**\r\n *\r\n * @param date\r\n * @param amount\r\n */\r\n addDays(date: T, amount: number): T;\r\n\r\n /**\r\n *\r\n * @param date\r\n * @param amount\r\n */\r\n addMonths(date: T, amount: number): T;\r\n\r\n /**\r\n *\r\n * @param date\r\n */\r\n getYear(date: T): number;\r\n\r\n /**\r\n *\r\n * @param date\r\n * @param year\r\n */\r\n setYear(date: T, year: number): T;\r\n\r\n /**\r\n *\r\n * @param date\r\n * @param comparing\r\n * @param unit\r\n */\r\n getDiff(date: T, comparing: T | string, unit?: string): number;\r\n\r\n /**\r\n *\r\n *\r\n * @param date\r\n */\r\n getWeekArray(date: T): T[][];\r\n\r\n /**\r\n *\r\n */\r\n getWeekdays(): string[];\r\n\r\n /**\r\n * 0 ~ 11\r\n * @param date\r\n */\r\n getMonth(date: T): number;\r\n\r\n /**\r\n *\r\n * @param date\r\n * @param month\r\n */\r\n setMonth(date: T, month: number): T;\r\n\r\n /**\r\n *\r\n * get day (1-31) number\r\n *\r\n * @param date\r\n */\r\n getDay(date: T): number;\r\n\r\n /**\r\n *\r\n * @param date\r\n */\r\n getNextMonth(date: T): T;\r\n\r\n getHour(date: T): number;\r\n\r\n setHour(date: T, hour: number): T;\r\n\r\n getMinute(date: T): number;\r\n\r\n setMinute(date: T, minute: number): T;\r\n}\r\n\r\nexport type DateFormatOptions =\r\n | Intl.DateTimeFormatOptions\r\n | ((date: Date, formatString: string, locale: string) => string);\r\n"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../src/util/date/types.ts"],"sourcesContent":["export interface DateAdapter<T = unknown> {\r\n /**\r\n *\r\n * @param value\r\n */\r\n date(value?: any): T | null;\r\n\r\n /**\r\n *\r\n * @param date\r\n * @param formatString\r\n */\r\n format(date: T, formatString: string): string;\r\n\r\n /**\r\n *\r\n * @param value\r\n */\r\n toJsDate(value: T): Date;\r\n\r\n /**\r\n *\r\n * @param date\r\n */\r\n parseISO(date: string): T;\r\n\r\n /**\r\n *\r\n * @param date\r\n */\r\n toISO(date: T): string;\r\n\r\n /**\r\n *\r\n * @param date\r\n */\r\n startOfDay(date: T): T;\r\n\r\n /**\r\n *\r\n * @param date\r\n */\r\n endOfDay(date: T): T;\r\n\r\n /**\r\n *\r\n * @param date\r\n */\r\n startOfMonth(date: T): T;\r\n\r\n /**\r\n *\r\n * @param date\r\n */\r\n endOfMonth(date: T): T;\r\n\r\n /**\r\n *\r\n * @param date\r\n */\r\n startOfYear(date: T): T;\r\n\r\n /**\r\n *\r\n * @param date\r\n */\r\n endOfYear(date: T): T;\r\n\r\n /**\r\n *\r\n * @param date\r\n * @param comparing\r\n */\r\n isBefore(date: T, comparing: T): boolean;\r\n\r\n /**\r\n *\r\n * @param date\r\n * @param comparing\r\n */\r\n isAfter(date: T, comparing: T): boolean;\r\n\r\n /**\r\n *\r\n * @param date\r\n * @param comparing\r\n */\r\n isEqual(date: T, comparing: T): boolean;\r\n\r\n /**\r\n *\r\n * @param date\r\n * @param comparing\r\n */\r\n isSameDay(date: T, comparing: T): boolean;\r\n\r\n /**\r\n *\r\n * @param date\r\n * @param comparing\r\n */\r\n isSameMonth(date: T, comparing: T): boolean;\r\n\r\n /**\r\n *\r\n * @param date\r\n */\r\n isValid(date: any): boolean;\r\n\r\n /**\r\n *\r\n * @param date\r\n * @param range\r\n */\r\n isWithinRange(date: T, range: [T, T]): boolean;\r\n\r\n /**\r\n *\r\n * @param date\r\n * @param amount\r\n */\r\n addDays(date: T, amount: number): T;\r\n\r\n /**\r\n *\r\n * @param date\r\n * @param amount\r\n */\r\n addMonths(date: T, amount: number): T;\r\n\r\n /**\r\n *\r\n * @param date\r\n */\r\n getYear(date: T): number;\r\n\r\n /**\r\n *\r\n * @param date\r\n * @param year\r\n */\r\n setYear(date: T, year: number): T;\r\n\r\n /**\r\n *\r\n * @param date\r\n * @param comparing\r\n * @param unit\r\n */\r\n getDiff(date: T, comparing: T | string, unit?: string): number;\r\n\r\n /**\r\n *\r\n *\r\n * @param date\r\n */\r\n getWeekArray(date: T): T[][];\r\n\r\n /**\r\n *\r\n */\r\n getWeekdays(firstDayIndex?: number, locale?: string): string[];\r\n\r\n /**\r\n * 0 ~ 11\r\n * @param date\r\n */\r\n getMonth(date: T): number;\r\n\r\n /**\r\n *\r\n * @param date\r\n * @param month\r\n */\r\n setMonth(date: T, month: number): T;\r\n\r\n /**\r\n *\r\n * get day (1-31) number\r\n *\r\n * @param date\r\n */\r\n getDay(date: T): number;\r\n\r\n /**\r\n *\r\n * @param date\r\n */\r\n getNextMonth(date: T): T;\r\n\r\n getHour(date: T): number;\r\n\r\n setHour(date: T, hour: number): T;\r\n\r\n getMinute(date: T): number;\r\n\r\n setMinute(date: T, minute: number): T;\r\n}\r\n\r\nexport type DateFormatOptions =\r\n | Intl.DateTimeFormatOptions\r\n | ((date: Date, formatString: string, locale: string) => string);\r\n"],"mappings":"","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -718,4 +718,4 @@ export declare const YDialog: import('vue').DefineComponent<{
|
|
|
718
718
|
"y-dialog--maximized": boolean | undefined;
|
|
719
719
|
}>;
|
|
720
720
|
children: import('vue').ShallowRef<any[], any[]>;
|
|
721
|
-
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, "update:modelValue"[], "update:modelValue">;
|
|
721
|
+
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, ("update:modelValue" | "afterLeave" | "afterEnter")[], "update:modelValue" | "afterLeave" | "afterEnter">;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function animate(el: Element, keyframes: any, options?: any):
|
|
1
|
+
export declare function animate(el: Element, keyframes: any, options?: any): any;
|
|
@@ -21,7 +21,7 @@ export declare class YuyeonDateAdapter implements DateAdapter<Date> {
|
|
|
21
21
|
getMonth(date: Date): number;
|
|
22
22
|
getDay(date: Date): number;
|
|
23
23
|
getNextMonth(date: Date): Date;
|
|
24
|
-
getWeekdays(): string[];
|
|
24
|
+
getWeekdays(firstDayIndex?: number, locale?: string): string[];
|
|
25
25
|
isAfter(date: Date, comparing: Date): boolean;
|
|
26
26
|
isBefore(date: Date, comparing: Date): boolean;
|
|
27
27
|
isEqual(date: Date, comparing: Date): boolean;
|
|
@@ -20,7 +20,7 @@ export declare class DateUtil {
|
|
|
20
20
|
static getMonth(date: Date): number;
|
|
21
21
|
static getDay(date: Date): number;
|
|
22
22
|
static getNextMonth(date: Date): Date;
|
|
23
|
-
static getWeekdays(locale: string): string[];
|
|
23
|
+
static getWeekdays(locale: string, firstDayIndex?: number): string[];
|
|
24
24
|
static getMeridians(locale: string): string[];
|
|
25
25
|
static isAfter(date: Date, comparing: Date): boolean;
|
|
26
26
|
static isBefore(date: Date, comparing: Date): boolean;
|