yuyeon 0.3.0-rc.3 → 0.3.0-rc.5
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.
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createVNode as _createVNode, mergeProps as _mergeProps, Fragment as _Fragment } from "vue";
|
|
2
|
-
import { computed, getCurrentInstance,
|
|
2
|
+
import { computed, getCurrentInstance, ref, shallowRef, watch, onScopeDispose } from 'vue';
|
|
3
3
|
import { useModelDuplex } from "../../composables/communication.mjs";
|
|
4
4
|
import { useRender } from "../../composables/component.mjs";
|
|
5
5
|
import { omit } from "../../util/common.mjs";
|
|
@@ -25,7 +25,8 @@ export const pressYDialogPropsOptions = propsFactory({
|
|
|
25
25
|
type: String
|
|
26
26
|
},
|
|
27
27
|
...omit(pressYLayerProps({
|
|
28
|
-
scrim: true
|
|
28
|
+
scrim: true,
|
|
29
|
+
scrollStrategy: null
|
|
29
30
|
}), ['offset', 'classes'])
|
|
30
31
|
}, 'YDialog');
|
|
31
32
|
export const YDialog = defineComponent({
|
|
@@ -171,19 +172,17 @@ export const YDialog = defineComponent({
|
|
|
171
172
|
old.removeEventListener('click', onClick);
|
|
172
173
|
}
|
|
173
174
|
});
|
|
174
|
-
|
|
175
|
+
if (active.value) {
|
|
176
|
+
installFocusTrap();
|
|
177
|
+
preventInteractionBackground(true);
|
|
178
|
+
}
|
|
179
|
+
watch(active, neo => {
|
|
175
180
|
neo ? installFocusTrap() : dismantleFocusTrap();
|
|
176
181
|
preventInteractionBackground(neo);
|
|
177
|
-
}, {
|
|
178
|
-
immediate: true
|
|
179
182
|
});
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
setTimeout(() => {
|
|
184
|
-
preventInteractionBackground(false);
|
|
185
|
-
}, 100);
|
|
186
|
-
}
|
|
183
|
+
onScopeDispose(() => {
|
|
184
|
+
dismantleFocusTrap();
|
|
185
|
+
preventInteractionBackground(false);
|
|
187
186
|
});
|
|
188
187
|
useRender(() => {
|
|
189
188
|
return _createVNode(_Fragment, null, [_createVNode(YLayer, _mergeProps({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YDialog.mjs","names":["computed","getCurrentInstance","onBeforeUnmount","ref","shallowRef","watch","useModelDuplex","useRender","omit","bindClasses","chooseProps","defineComponent","propsFactory","toStyleSizeValue","YCard","YLayer","pressYLayerProps","useActiveStack","pressYDialogPropsOptions","persistent","type","Boolean","default","dialogClasses","Array","String","Object","focusTrap","offset","scrim","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","isArray","excluded","some","exclude","testChildrenContains","layers","layer","content$","contains","value","includes","focusableSelector","focusables","querySelectorAll","filter","el","hasAttribute","matches","length","firstChild","lastChild","isSameNode","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","immediate","setTimeout","_createVNode","_Fragment","_mergeProps","$event","_len","arguments","args","_key","base"],"sources":["../../../src/components/dialog/YDialog.tsx"],"sourcesContent":["import {\r\n type PropType,\r\n computed,\r\n getCurrentInstance,\r\n onBeforeUnmount,\r\n ref,\r\n shallowRef,\r\n watch,\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 bindClasses,\r\n chooseProps,\r\n defineComponent,\r\n propsFactory,\r\n} from '@/util/component';\r\nimport { toStyleSizeValue } from '@/util/ui';\r\n\r\nimport { YCard } from '../card';\r\nimport { YLayer, pressYLayerProps } from '../layer';\r\nimport { useActiveStack } from '../layer/active-stack';\r\n\r\nimport './YDialog.scss';\r\n\r\nexport const pressYDialogPropsOptions = propsFactory(\r\n {\r\n persistent: {\r\n type: Boolean as PropType<boolean>,\r\n default: true,\r\n },\r\n dialogClasses: {\r\n type: [Array, String, Object] as PropType<\r\n string[] | string | Record<string, any>\r\n >,\r\n },\r\n focusTrap: {\r\n type: [Boolean, String, Object, Array] as PropType<\r\n false | string | string[] | HTMLElement\r\n >,\r\n default: true,\r\n },\r\n offset: {\r\n type: String as PropType<string>,\r\n },\r\n ...omit(\r\n pressYLayerProps({\r\n scrim: true,\r\n }),\r\n ['offset', 'classes'],\r\n ),\r\n },\r\n 'YDialog',\r\n);\r\n\r\nexport const YDialog = defineComponent({\r\n name: 'YDialog',\r\n components: {\r\n YLayer,\r\n YCard,\r\n },\r\n props: pressYDialogPropsOptions(),\r\n emits: ['update:modelValue'],\r\n setup(props, { emit, slots }) {\r\n const vm = getCurrentInstance();\r\n const $yuyeon = vm?.appContext.config.globalProperties.$yuyeon;\r\n const active = useModelDuplex(props);\r\n\r\n const classes = computed(() => {\r\n const boundClasses = bindClasses(props.dialogClasses);\r\n return {\r\n ...boundClasses,\r\n 'y-dialog': true,\r\n 'y-dialog--maximized': props.maximized,\r\n };\r\n });\r\n\r\n const styles = computed(() => {\r\n return {\r\n ...(props.contentStyles ?? {}),\r\n paddingTop: toStyleSizeValue(props.offset),\r\n };\r\n });\r\n\r\n const layer$ = ref<typeof YLayer>();\r\n const { children } = useActiveStack(layer$, active, shallowRef(true));\r\n\r\n function onFocusin(e: FocusEvent) {\r\n if (props.focusTrap === false) {\r\n return;\r\n }\r\n\r\n const prevTarget = e.relatedTarget as HTMLElement | null;\r\n const target = e.target as HTMLElement | null;\r\n\r\n const excludeTarget = props.focusTrap;\r\n\r\n if (\r\n typeof excludeTarget === 'string' &&\r\n document.querySelector(excludeTarget) == target\r\n ) {\r\n return;\r\n }\r\n\r\n if (typeof excludeTarget === 'object') {\r\n if (Array.isArray(excludeTarget)) {\r\n const excluded = excludeTarget.some((exclude) => {\r\n if (typeof exclude === 'string') {\r\n return document.querySelector(exclude) == target;\r\n }\r\n if (typeof exclude === 'object') {\r\n return exclude == target;\r\n }\r\n });\r\n if (excluded) {\r\n return;\r\n }\r\n } else if (excludeTarget == target) {\r\n return;\r\n }\r\n }\r\n\r\n function testChildrenContains(layers: YLayer[]) {\r\n return layers.some((layer) => {\r\n return !layer.content$?.contains(target);\r\n });\r\n }\r\n\r\n if (\r\n prevTarget !== target &&\r\n layer$.value?.content$ &&\r\n ![document, layer$.value?.content$].includes(target) &&\r\n !layer$.value?.content$.contains(target) &&\r\n !testChildrenContains(children.value)\r\n ) {\r\n const focusableSelector =\r\n 'button, [href], input:not([type=\"hidden\"]), select, textarea, [tabindex]:not([tabindex=\"-1\"])';\r\n const focusables = [\r\n ...layer$.value.content$.querySelectorAll(focusableSelector),\r\n ].filter(\r\n (el) =>\r\n !el.hasAttribute('disabled') && !el.matches('[tabindex=\"-1\"]'),\r\n ) as HTMLElement[];\r\n if (!focusables.length) return;\r\n const firstChild = focusables[0];\r\n const lastChild = focusables[focusables.length - 1];\r\n if (target?.isSameNode(firstChild) || target?.isSameNode(lastChild)) {\r\n return;\r\n }\r\n if (firstChild === lastChild) {\r\n lastChild.focus();\r\n } else {\r\n firstChild.focus();\r\n }\r\n }\r\n }\r\n\r\n function installFocusTrap() {\r\n document.addEventListener('focusin', onFocusin);\r\n }\r\n\r\n function dismantleFocusTrap() {\r\n document.removeEventListener('focusin', onFocusin);\r\n }\r\n\r\n const tempScrollTop = ref(0);\r\n const tempScrollLeft = ref(0);\r\n\r\n function preventInteractionBackground(toggle: boolean) {\r\n const root$ = $yuyeon.root as HTMLElement;\r\n const activeLayers = layer$.value?.getActiveLayers();\r\n if (toggle) {\r\n if (props.maximized) {\r\n document.documentElement.classList.add('y-dialog--prevent-scroll');\r\n }\r\n const filtered = activeLayers?.filter((layer: any) => {\r\n return layer.ctx.modal;\r\n });\r\n if (\r\n (filtered && !filtered.length) ||\r\n !root$.classList.contains('y-dialog--virtual-scroll')\r\n ) {\r\n const scrollTop = document.documentElement.scrollTop;\r\n const scrollLeft = document.documentElement.scrollLeft;\r\n tempScrollTop.value = scrollTop;\r\n tempScrollLeft.value = scrollLeft;\r\n\r\n root$.classList.add('y-dialog--virtual-scroll');\r\n root$.style.top = toStyleSizeValue(-1 * scrollTop) || '';\r\n root$.style.left = toStyleSizeValue(-1 * scrollLeft) || '';\r\n }\r\n } else {\r\n const filtered = activeLayers?.filter((layer: any) => {\r\n return !layer$.value?.isMe(layer) && layer.ctx.modal;\r\n });\r\n\r\n if (!filtered?.length && root$) {\r\n document.documentElement.classList.remove('y-dialog--prevent-scroll');\r\n root$.classList.remove('y-dialog--virtual-scroll');\r\n root$.style.top = '';\r\n root$.style.left = '';\r\n requestAnimationFrame(() => {\r\n document.documentElement.scrollTop = tempScrollTop.value;\r\n document.documentElement.scrollLeft = tempScrollLeft.value;\r\n });\r\n } else if (filtered.every((layer: any) => !layer.ctx?.maximized)) {\r\n document.documentElement.classList.remove('y-dialog--prevent-scroll');\r\n }\r\n }\r\n }\r\n\r\n function onUpdate(v: boolean) {\r\n active.value = v;\r\n }\r\n\r\n function onClick(e: MouseEvent) {\r\n const currentActive = active.value;\r\n if (!props.disabled) {\r\n active.value = !currentActive;\r\n }\r\n }\r\n\r\n watch(\r\n () => layer$.value?.baseEl,\r\n (neo, old) => {\r\n if (neo) {\r\n neo.addEventListener('click', onClick);\r\n } else if (old) {\r\n old.removeEventListener('click', onClick);\r\n }\r\n },\r\n );\r\n\r\n watch(\r\n () => active.value,\r\n (neo) => {\r\n neo ? installFocusTrap() : dismantleFocusTrap();\r\n preventInteractionBackground(neo);\r\n },\r\n { immediate: true },\r\n );\r\n\r\n onBeforeUnmount(() => {\r\n if (active.value) {\r\n active.value = false;\r\n setTimeout(() => {\r\n preventInteractionBackground(false);\r\n }, 100);\r\n }\r\n });\r\n\r\n useRender(() => {\r\n return (\r\n <>\r\n <YLayer\r\n v-model={active.value}\r\n classes={classes.value}\r\n content-styles={styles.value}\r\n modal\r\n ref={layer$}\r\n {...omit(chooseProps(props, YLayer.props), ['contentStyles'])}\r\n >\r\n {{\r\n default: (...args: any[]) => slots.default?.(...args),\r\n base: slots.base,\r\n }}\r\n </YLayer>\r\n </>\r\n );\r\n });\r\n\r\n return {\r\n active,\r\n layer: layer$,\r\n classes,\r\n children,\r\n };\r\n },\r\n});\r\n"],"mappings":";AAAA,SAEEA,QAAQ,EACRC,kBAAkB,EAClBC,eAAe,EACfC,GAAG,EACHC,UAAU,EACVC,KAAK,QACA,KAAK;AAAC,SAEJC,cAAc;AAAA,SACdC,SAAS;AAAA,SACTC,IAAI;AAAA,SAEXC,WAAW,EACXC,WAAW,EACXC,eAAe,EACfC,YAAY;AAAA,SAELC,gBAAgB;AAAA,SAEhBC,KAAK;AAAA,SACLC,MAAM,EAAEC,gBAAgB;AAAA,SACxBC,cAAc;AAEvB;AAEA,OAAO,MAAMC,wBAAwB,GAAGN,YAAY,CAClD;EACEO,UAAU,EAAE;IACVC,IAAI,EAAEC,OAA4B;IAClCC,OAAO,EAAE;EACX,CAAC;EACDC,aAAa,EAAE;IACbH,IAAI,EAAE,CAACI,KAAK,EAAEC,MAAM,EAAEC,MAAM;EAG9B,CAAC;EACDC,SAAS,EAAE;IACTP,IAAI,EAAE,CAACC,OAAO,EAAEI,MAAM,EAAEC,MAAM,EAAEF,KAAK,CAEpC;IACDF,OAAO,EAAE;EACX,CAAC;EACDM,MAAM,EAAE;IACNR,IAAI,EAAEK;EACR,CAAC;EACD,GAAGjB,IAAI,CACLQ,gBAAgB,CAAC;IACfa,KAAK,EAAE;EACT,CAAC,CAAC,EACF,CAAC,QAAQ,EAAE,SAAS,CACtB;AACF,CAAC,EACD,SACF,CAAC;AAED,OAAO,MAAMC,OAAO,GAAGnB,eAAe,CAAC;EACrCoB,IAAI,EAAE,SAAS;EACfC,UAAU,EAAE;IACVjB,MAAM;IACND;EACF,CAAC;EACDmB,KAAK,EAAEf,wBAAwB,CAAC,CAAC;EACjCgB,KAAK,EAAE,CAAC,mBAAmB,CAAC;EAC5BC,KAAKA,CAACF,KAAK,EAAAG,IAAA,EAAmB;IAAA,IAAjB;MAAEC,IAAI;MAAEC;IAAM,CAAC,GAAAF,IAAA;IAC1B,MAAMG,EAAE,GAAGtC,kBAAkB,CAAC,CAAC;IAC/B,MAAMuC,OAAO,GAAGD,EAAE,EAAEE,UAAU,CAACC,MAAM,CAACC,gBAAgB,CAACH,OAAO;IAC9D,MAAMI,MAAM,GAAGtC,cAAc,CAAC2B,KAAK,CAAC;IAEpC,MAAMY,OAAO,GAAG7C,QAAQ,CAAC,MAAM;MAC7B,MAAM8C,YAAY,GAAGrC,WAAW,CAACwB,KAAK,CAACV,aAAa,CAAC;MACrD,OAAO;QACL,GAAGuB,YAAY;QACf,UAAU,EAAE,IAAI;QAChB,qBAAqB,EAAEb,KAAK,CAACc;MAC/B,CAAC;IACH,CAAC,CAAC;IAEF,MAAMC,MAAM,GAAGhD,QAAQ,CAAC,MAAM;MAC5B,OAAO;QACL,IAAIiC,KAAK,CAACgB,aAAa,IAAI,CAAC,CAAC,CAAC;QAC9BC,UAAU,EAAErC,gBAAgB,CAACoB,KAAK,CAACL,MAAM;MAC3C,CAAC;IACH,CAAC,CAAC;IAEF,MAAMuB,MAAM,GAAGhD,GAAG,CAAgB,CAAC;IACnC,MAAM;MAAEiD;IAAU,CAAC,GAAGnC,cAAc,CAACkC,MAAM,EAAEP,MAAM,EAAExC,UAAU,CAAC,IAAI,CAAC,CAAC;IAEtE,SAASiD,SAASA,CAACC,CAAa,EAAE;MAChC,IAAIrB,KAAK,CAACN,SAAS,KAAK,KAAK,EAAE;QAC7B;MACF;MAEA,MAAM4B,UAAU,GAAGD,CAAC,CAACE,aAAmC;MACxD,MAAMC,MAAM,GAAGH,CAAC,CAACG,MAA4B;MAE7C,MAAMC,aAAa,GAAGzB,KAAK,CAACN,SAAS;MAErC,IACE,OAAO+B,aAAa,KAAK,QAAQ,IACjCC,QAAQ,CAACC,aAAa,CAACF,aAAa,CAAC,IAAID,MAAM,EAC/C;QACA;MACF;MAEA,IAAI,OAAOC,aAAa,KAAK,QAAQ,EAAE;QACrC,IAAIlC,KAAK,CAACqC,OAAO,CAACH,aAAa,CAAC,EAAE;UAChC,MAAMI,QAAQ,GAAGJ,aAAa,CAACK,IAAI,CAAEC,OAAO,IAAK;YAC/C,IAAI,OAAOA,OAAO,KAAK,QAAQ,EAAE;cAC/B,OAAOL,QAAQ,CAACC,aAAa,CAACI,OAAO,CAAC,IAAIP,MAAM;YAClD;YACA,IAAI,OAAOO,OAAO,KAAK,QAAQ,EAAE;cAC/B,OAAOA,OAAO,IAAIP,MAAM;YAC1B;UACF,CAAC,CAAC;UACF,IAAIK,QAAQ,EAAE;YACZ;UACF;QACF,CAAC,MAAM,IAAIJ,aAAa,IAAID,MAAM,EAAE;UAClC;QACF;MACF;MAEA,SAASQ,oBAAoBA,CAACC,MAAgB,EAAE;QAC9C,OAAOA,MAAM,CAACH,IAAI,CAAEI,KAAK,IAAK;UAC5B,OAAO,CAACA,KAAK,CAACC,QAAQ,EAAEC,QAAQ,CAACZ,MAAM,CAAC;QAC1C,CAAC,CAAC;MACJ;MAEA,IACEF,UAAU,KAAKE,MAAM,IACrBN,MAAM,CAACmB,KAAK,EAAEF,QAAQ,IACtB,CAAC,CAACT,QAAQ,EAAER,MAAM,CAACmB,KAAK,EAAEF,QAAQ,CAAC,CAACG,QAAQ,CAACd,MAAM,CAAC,IACpD,CAACN,MAAM,CAACmB,KAAK,EAAEF,QAAQ,CAACC,QAAQ,CAACZ,MAAM,CAAC,IACxC,CAACQ,oBAAoB,CAACb,QAAQ,CAACkB,KAAK,CAAC,EACrC;QACA,MAAME,iBAAiB,GACrB,+FAA+F;QACjG,MAAMC,UAAU,GAAG,CACjB,GAAGtB,MAAM,CAACmB,KAAK,CAACF,QAAQ,CAACM,gBAAgB,CAACF,iBAAiB,CAAC,CAC7D,CAACG,MAAM,CACLC,EAAE,IACD,CAACA,EAAE,CAACC,YAAY,CAAC,UAAU,CAAC,IAAI,CAACD,EAAE,CAACE,OAAO,CAAC,iBAAiB,CACjE,CAAkB;QAClB,IAAI,CAACL,UAAU,CAACM,MAAM,EAAE;QACxB,MAAMC,UAAU,GAAGP,UAAU,CAAC,CAAC,CAAC;QAChC,MAAMQ,SAAS,GAAGR,UAAU,CAACA,UAAU,CAACM,MAAM,GAAG,CAAC,CAAC;QACnD,IAAItB,MAAM,EAAEyB,UAAU,CAACF,UAAU,CAAC,IAAIvB,MAAM,EAAEyB,UAAU,CAACD,SAAS,CAAC,EAAE;UACnE;QACF;QACA,IAAID,UAAU,KAAKC,SAAS,EAAE;UAC5BA,SAAS,CAACE,KAAK,CAAC,CAAC;QACnB,CAAC,MAAM;UACLH,UAAU,CAACG,KAAK,CAAC,CAAC;QACpB;MACF;IACF;IAEA,SAASC,gBAAgBA,CAAA,EAAG;MAC1BzB,QAAQ,CAAC0B,gBAAgB,CAAC,SAAS,EAAEhC,SAAS,CAAC;IACjD;IAEA,SAASiC,kBAAkBA,CAAA,EAAG;MAC5B3B,QAAQ,CAAC4B,mBAAmB,CAAC,SAAS,EAAElC,SAAS,CAAC;IACpD;IAEA,MAAMmC,aAAa,GAAGrF,GAAG,CAAC,CAAC,CAAC;IAC5B,MAAMsF,cAAc,GAAGtF,GAAG,CAAC,CAAC,CAAC;IAE7B,SAASuF,4BAA4BA,CAACC,MAAe,EAAE;MACrD,MAAMC,KAAK,GAAGpD,OAAO,CAACqD,IAAmB;MACzC,MAAMC,YAAY,GAAG3C,MAAM,CAACmB,KAAK,EAAEyB,eAAe,CAAC,CAAC;MACpD,IAAIJ,MAAM,EAAE;QACV,IAAI1D,KAAK,CAACc,SAAS,EAAE;UACnBY,QAAQ,CAACqC,eAAe,CAACC,SAAS,CAACC,GAAG,CAAC,0BAA0B,CAAC;QACpE;QACA,MAAMC,QAAQ,GAAGL,YAAY,EAAEnB,MAAM,CAAER,KAAU,IAAK;UACpD,OAAOA,KAAK,CAACiC,GAAG,CAACC,KAAK;QACxB,CAAC,CAAC;QACF,IACGF,QAAQ,IAAI,CAACA,QAAQ,CAACpB,MAAM,IAC7B,CAACa,KAAK,CAACK,SAAS,CAAC5B,QAAQ,CAAC,0BAA0B,CAAC,EACrD;UACA,MAAMiC,SAAS,GAAG3C,QAAQ,CAACqC,eAAe,CAACM,SAAS;UACpD,MAAMC,UAAU,GAAG5C,QAAQ,CAACqC,eAAe,CAACO,UAAU;UACtDf,aAAa,CAAClB,KAAK,GAAGgC,SAAS;UAC/Bb,cAAc,CAACnB,KAAK,GAAGiC,UAAU;UAEjCX,KAAK,CAACK,SAAS,CAACC,GAAG,CAAC,0BAA0B,CAAC;UAC/CN,KAAK,CAACY,KAAK,CAACC,GAAG,GAAG5F,gBAAgB,CAAC,CAAC,CAAC,GAAGyF,SAAS,CAAC,IAAI,EAAE;UACxDV,KAAK,CAACY,KAAK,CAACE,IAAI,GAAG7F,gBAAgB,CAAC,CAAC,CAAC,GAAG0F,UAAU,CAAC,IAAI,EAAE;QAC5D;MACF,CAAC,MAAM;QACL,MAAMJ,QAAQ,GAAGL,YAAY,EAAEnB,MAAM,CAAER,KAAU,IAAK;UACpD,OAAO,CAAChB,MAAM,CAACmB,KAAK,EAAEqC,IAAI,CAACxC,KAAK,CAAC,IAAIA,KAAK,CAACiC,GAAG,CAACC,KAAK;QACtD,CAAC,CAAC;QAEF,IAAI,CAACF,QAAQ,EAAEpB,MAAM,IAAIa,KAAK,EAAE;UAC9BjC,QAAQ,CAACqC,eAAe,CAACC,SAAS,CAACW,MAAM,CAAC,0BAA0B,CAAC;UACrEhB,KAAK,CAACK,SAAS,CAACW,MAAM,CAAC,0BAA0B,CAAC;UAClDhB,KAAK,CAACY,KAAK,CAACC,GAAG,GAAG,EAAE;UACpBb,KAAK,CAACY,KAAK,CAACE,IAAI,GAAG,EAAE;UACrBG,qBAAqB,CAAC,MAAM;YAC1BlD,QAAQ,CAACqC,eAAe,CAACM,SAAS,GAAGd,aAAa,CAAClB,KAAK;YACxDX,QAAQ,CAACqC,eAAe,CAACO,UAAU,GAAGd,cAAc,CAACnB,KAAK;UAC5D,CAAC,CAAC;QACJ,CAAC,MAAM,IAAI6B,QAAQ,CAACW,KAAK,CAAE3C,KAAU,IAAK,CAACA,KAAK,CAACiC,GAAG,EAAErD,SAAS,CAAC,EAAE;UAChEY,QAAQ,CAACqC,eAAe,CAACC,SAAS,CAACW,MAAM,CAAC,0BAA0B,CAAC;QACvE;MACF;IACF;IAEA,SAASG,QAAQA,CAACC,CAAU,EAAE;MAC5BpE,MAAM,CAAC0B,KAAK,GAAG0C,CAAC;IAClB;IAEA,SAASC,OAAOA,CAAC3D,CAAa,EAAE;MAC9B,MAAM4D,aAAa,GAAGtE,MAAM,CAAC0B,KAAK;MAClC,IAAI,CAACrC,KAAK,CAACkF,QAAQ,EAAE;QACnBvE,MAAM,CAAC0B,KAAK,GAAG,CAAC4C,aAAa;MAC/B;IACF;IAEA7G,KAAK,CACH,MAAM8C,MAAM,CAACmB,KAAK,EAAE8C,MAAM,EAC1B,CAACC,GAAG,EAAEC,GAAG,KAAK;MACZ,IAAID,GAAG,EAAE;QACPA,GAAG,CAAChC,gBAAgB,CAAC,OAAO,EAAE4B,OAAO,CAAC;MACxC,CAAC,MAAM,IAAIK,GAAG,EAAE;QACdA,GAAG,CAAC/B,mBAAmB,CAAC,OAAO,EAAE0B,OAAO,CAAC;MAC3C;IACF,CACF,CAAC;IAED5G,KAAK,CACH,MAAMuC,MAAM,CAAC0B,KAAK,EACjB+C,GAAG,IAAK;MACPA,GAAG,GAAGjC,gBAAgB,CAAC,CAAC,GAAGE,kBAAkB,CAAC,CAAC;MAC/CI,4BAA4B,CAAC2B,GAAG,CAAC;IACnC,CAAC,EACD;MAAEE,SAAS,EAAE;IAAK,CACpB,CAAC;IAEDrH,eAAe,CAAC,MAAM;MACpB,IAAI0C,MAAM,CAAC0B,KAAK,EAAE;QAChB1B,MAAM,CAAC0B,KAAK,GAAG,KAAK;QACpBkD,UAAU,CAAC,MAAM;UACf9B,4BAA4B,CAAC,KAAK,CAAC;QACrC,CAAC,EAAE,GAAG,CAAC;MACT;IACF,CAAC,CAAC;IAEFnF,SAAS,CAAC,MAAM;MACd,OAAAkH,YAAA,CAAAC,SAAA,SAAAD,YAAA,CAAA1G,MAAA,EAAA4G,WAAA;QAAA,cAGe/E,MAAM,CAAC0B,KAAK;QAAA,uBAAAsD,MAAA,IAAZhF,MAAM,CAAC0B,KAAK,GAAAsD,MAAA;QAAA,WACZ/E,OAAO,CAACyB,KAAK;QAAA,kBACNtB,MAAM,CAACsB,KAAK;QAAA;QAAA,OAEvBnB;MAAM,GACP3C,IAAI,CAACE,WAAW,CAACuB,KAAK,EAAElB,MAAM,CAACkB,KAAK,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC;QAG3DX,OAAO,EAAE,SAAAA,CAAA;UAAA,SAAAuG,IAAA,GAAAC,SAAA,CAAA/C,MAAA,EAAIgD,IAAI,OAAAvG,KAAA,CAAAqG,IAAA,GAAAG,IAAA,MAAAA,IAAA,GAAAH,IAAA,EAAAG,IAAA;YAAJD,IAAI,CAAAC,IAAA,IAAAF,SAAA,CAAAE,IAAA;UAAA;UAAA,OAAY1F,KAAK,CAAChB,OAAO,GAAG,GAAGyG,IAAI,CAAC;QAAA;QACrDE,IAAI,EAAE3F,KAAK,CAAC2F;MAAI;IAK1B,CAAC,CAAC;IAEF,OAAO;MACLrF,MAAM;MACNuB,KAAK,EAAEhB,MAAM;MACbN,OAAO;MACPO;IACF,CAAC;EACH;AACF,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"YDialog.mjs","names":["computed","getCurrentInstance","ref","shallowRef","watch","onScopeDispose","useModelDuplex","useRender","omit","bindClasses","chooseProps","defineComponent","propsFactory","toStyleSizeValue","YCard","YLayer","pressYLayerProps","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","isArray","excluded","some","exclude","testChildrenContains","layers","layer","content$","contains","value","includes","focusableSelector","focusables","querySelectorAll","filter","el","hasAttribute","matches","length","firstChild","lastChild","isSameNode","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","_createVNode","_Fragment","_mergeProps","$event","_len","arguments","args","_key","base"],"sources":["../../../src/components/dialog/YDialog.tsx"],"sourcesContent":["import {\n type PropType,\n computed,\n getCurrentInstance,\n onBeforeUnmount,\n ref,\n shallowRef,\n watch, onScopeDispose,\n} from 'vue';\n\nimport { useModelDuplex } from '@/composables/communication';\nimport { useRender } from '@/composables/component';\nimport { omit } from '@/util/common';\nimport {\n bindClasses,\n chooseProps,\n defineComponent,\n propsFactory,\n} from '@/util/component';\nimport { toStyleSizeValue } from '@/util/ui';\n\nimport { YCard } from '../card';\nimport { YLayer, pressYLayerProps } from '../layer';\nimport { useActiveStack } from '../layer/active-stack';\n\nimport './YDialog.scss';\n\nexport const pressYDialogPropsOptions = propsFactory(\n {\n persistent: {\n type: Boolean as PropType<boolean>,\n default: true,\n },\n dialogClasses: {\n type: [Array, String, Object] as PropType<\n string[] | string | Record<string, any>\n >,\n },\n focusTrap: {\n type: [Boolean, String, Object, Array] as PropType<\n false | string | string[] | HTMLElement\n >,\n default: true,\n },\n offset: {\n type: String as PropType<string>,\n },\n ...omit(\n pressYLayerProps({\n scrim: true,\n scrollStrategy: null,\n }),\n ['offset', 'classes'],\n ),\n },\n 'YDialog',\n);\n\nexport const YDialog = defineComponent({\n name: 'YDialog',\n components: {\n YLayer,\n YCard,\n },\n props: pressYDialogPropsOptions(),\n emits: ['update:modelValue'],\n setup(props, { emit, slots }) {\n const vm = getCurrentInstance();\n const $yuyeon = vm?.appContext.config.globalProperties.$yuyeon;\n const active = useModelDuplex(props);\n\n const classes = computed(() => {\n const boundClasses = bindClasses(props.dialogClasses);\n return {\n ...boundClasses,\n 'y-dialog': true,\n 'y-dialog--maximized': props.maximized,\n };\n });\n\n const styles = computed(() => {\n return {\n ...(props.contentStyles ?? {}),\n paddingTop: toStyleSizeValue(props.offset),\n };\n });\n\n const layer$ = ref<typeof YLayer>();\n const { children } = useActiveStack(layer$, active, shallowRef(true));\n\n function onFocusin(e: FocusEvent) {\n if (props.focusTrap === false) {\n return;\n }\n\n const prevTarget = e.relatedTarget as HTMLElement | null;\n const target = e.target as HTMLElement | null;\n\n const excludeTarget = props.focusTrap;\n\n if (\n typeof excludeTarget === 'string' &&\n document.querySelector(excludeTarget) == target\n ) {\n return;\n }\n\n if (typeof excludeTarget === 'object') {\n if (Array.isArray(excludeTarget)) {\n const excluded = excludeTarget.some((exclude) => {\n if (typeof exclude === 'string') {\n return document.querySelector(exclude) == target;\n }\n if (typeof exclude === 'object') {\n return exclude == target;\n }\n });\n if (excluded) {\n return;\n }\n } else if (excludeTarget == target) {\n return;\n }\n }\n\n function testChildrenContains(layers: YLayer[]) {\n return layers.some((layer) => {\n return !layer.content$?.contains(target);\n });\n }\n\n if (\n prevTarget !== target &&\n layer$.value?.content$ &&\n ![document, layer$.value?.content$].includes(target) &&\n !layer$.value?.content$.contains(target) &&\n !testChildrenContains(children.value)\n ) {\n const focusableSelector =\n 'button, [href], input:not([type=\"hidden\"]), select, textarea, [tabindex]:not([tabindex=\"-1\"])';\n const focusables = [\n ...layer$.value.content$.querySelectorAll(focusableSelector),\n ].filter(\n (el) =>\n !el.hasAttribute('disabled') && !el.matches('[tabindex=\"-1\"]'),\n ) as HTMLElement[];\n if (!focusables.length) return;\n const firstChild = focusables[0];\n const lastChild = focusables[focusables.length - 1];\n if (target?.isSameNode(firstChild) || target?.isSameNode(lastChild)) {\n return;\n }\n if (firstChild === lastChild) {\n lastChild.focus();\n } else {\n firstChild.focus();\n }\n }\n }\n\n function installFocusTrap() {\n document.addEventListener('focusin', onFocusin);\n }\n\n function dismantleFocusTrap() {\n document.removeEventListener('focusin', onFocusin);\n }\n\n const tempScrollTop = ref(0);\n const tempScrollLeft = ref(0);\n\n function preventInteractionBackground(toggle: boolean) {\n const root$ = $yuyeon.root as HTMLElement;\n const activeLayers = layer$.value?.getActiveLayers();\n if (toggle) {\n if (props.maximized) {\n document.documentElement.classList.add('y-dialog--prevent-scroll');\n }\n const filtered = activeLayers?.filter((layer: any) => {\n return layer.ctx.modal;\n });\n if (\n (filtered && !filtered.length) ||\n !root$.classList.contains('y-dialog--virtual-scroll')\n ) {\n const scrollTop = document.documentElement.scrollTop;\n const scrollLeft = document.documentElement.scrollLeft;\n tempScrollTop.value = scrollTop;\n tempScrollLeft.value = scrollLeft;\n\n root$.classList.add('y-dialog--virtual-scroll');\n root$.style.top = toStyleSizeValue(-1 * scrollTop) || '';\n root$.style.left = toStyleSizeValue(-1 * scrollLeft) || '';\n }\n } else {\n const filtered = activeLayers?.filter((layer: any) => {\n return !layer$.value?.isMe(layer) && layer.ctx.modal;\n });\n\n if (!filtered?.length && root$) {\n document.documentElement.classList.remove('y-dialog--prevent-scroll');\n root$.classList.remove('y-dialog--virtual-scroll');\n root$.style.top = '';\n root$.style.left = '';\n requestAnimationFrame(() => {\n document.documentElement.scrollTop = tempScrollTop.value;\n document.documentElement.scrollLeft = tempScrollLeft.value;\n });\n } else if (filtered.every((layer: any) => !layer.ctx?.maximized)) {\n document.documentElement.classList.remove('y-dialog--prevent-scroll');\n }\n }\n }\n\n function onUpdate(v: boolean) {\n active.value = v;\n }\n\n function onClick(e: MouseEvent) {\n const currentActive = active.value;\n if (!props.disabled) {\n active.value = !currentActive;\n }\n }\n\n watch(\n () => layer$.value?.baseEl,\n (neo, old) => {\n if (neo) {\n neo.addEventListener('click', onClick);\n } else if (old) {\n old.removeEventListener('click', onClick);\n }\n },\n );\n\n if (active.value) {\n installFocusTrap()\n preventInteractionBackground(true);\n }\n\n watch(active, (neo) => {\n neo ? installFocusTrap() : dismantleFocusTrap();\n preventInteractionBackground(neo);\n });\n\n onScopeDispose(() => {\n dismantleFocusTrap();\n preventInteractionBackground(false);\n })\n\n useRender(() => {\n return (\n <>\n <YLayer\n v-model={active.value}\n classes={classes.value}\n content-styles={styles.value}\n modal\n ref={layer$}\n {...omit(chooseProps(props, YLayer.props), ['contentStyles'])}\n >\n {{\n default: (...args: any[]) => slots.default?.(...args),\n base: slots.base,\n }}\n </YLayer>\n </>\n );\n });\n\n return {\n active,\n layer: layer$,\n classes,\n children,\n };\n },\n});\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -202,17 +202,23 @@ export declare const pressYDialogPropsOptions: <Defaults extends {
|
|
|
202
202
|
type: PropType<unknown extends Defaults["closeClickContent"] ? boolean : boolean | Defaults["closeClickContent"]>;
|
|
203
203
|
default: unknown extends Defaults["closeClickContent"] ? boolean : boolean | Defaults["closeClickContent"];
|
|
204
204
|
};
|
|
205
|
-
scrollStrategy: unknown extends Defaults["scrollStrategy"] ? {
|
|
205
|
+
scrollStrategy: unknown extends Defaults["scrollStrategy"] ? Omit<{
|
|
206
206
|
type: PropType<"close" | "none" | "block" | ((data: import('../layer/scroll-strategies').ScrollStrategyData, props: import('../layer/scroll-strategies').StrategyProps, scope: import('vue').EffectScope) => void) | "reposition">;
|
|
207
207
|
default: string;
|
|
208
208
|
validator: (val: any) => boolean;
|
|
209
|
-
}
|
|
209
|
+
}, "type" | "default"> & {
|
|
210
|
+
type: PropType<NonNullable<"close" | "none" | "block" | ((data: import('../layer/scroll-strategies').ScrollStrategyData, props: import('../layer/scroll-strategies').StrategyProps, scope: import('vue').EffectScope) => void) | "reposition"> | null>;
|
|
211
|
+
default: NonNullable<"close" | "none" | "block" | ((data: import('../layer/scroll-strategies').ScrollStrategyData, props: import('../layer/scroll-strategies').StrategyProps, scope: import('vue').EffectScope) => void) | "reposition"> | null;
|
|
212
|
+
} : Omit<Omit<{
|
|
210
213
|
type: PropType<"close" | "none" | "block" | ((data: import('../layer/scroll-strategies').ScrollStrategyData, props: import('../layer/scroll-strategies').StrategyProps, scope: import('vue').EffectScope) => void) | "reposition">;
|
|
211
214
|
default: string;
|
|
212
215
|
validator: (val: any) => boolean;
|
|
213
216
|
}, "type" | "default"> & {
|
|
214
|
-
type: PropType<
|
|
215
|
-
default:
|
|
217
|
+
type: PropType<NonNullable<"close" | "none" | "block" | ((data: import('../layer/scroll-strategies').ScrollStrategyData, props: import('../layer/scroll-strategies').StrategyProps, scope: import('vue').EffectScope) => void) | "reposition"> | null>;
|
|
218
|
+
default: NonNullable<"close" | "none" | "block" | ((data: import('../layer/scroll-strategies').ScrollStrategyData, props: import('../layer/scroll-strategies').StrategyProps, scope: import('vue').EffectScope) => void) | "reposition"> | null;
|
|
219
|
+
}, "type" | "default"> & {
|
|
220
|
+
type: PropType<unknown extends Defaults["scrollStrategy"] ? NonNullable<"close" | "none" | "block" | ((data: import('../layer/scroll-strategies').ScrollStrategyData, props: import('../layer/scroll-strategies').StrategyProps, scope: import('vue').EffectScope) => void) | "reposition"> | null : Defaults["scrollStrategy"] | NonNullable<NonNullable<"close" | "none" | "block" | ((data: import('../layer/scroll-strategies').ScrollStrategyData, props: import('../layer/scroll-strategies').StrategyProps, scope: import('vue').EffectScope) => void) | "reposition"> | null>>;
|
|
221
|
+
default: unknown extends Defaults["scrollStrategy"] ? NonNullable<"close" | "none" | "block" | ((data: import('../layer/scroll-strategies').ScrollStrategyData, props: import('../layer/scroll-strategies').StrategyProps, scope: import('vue').EffectScope) => void) | "reposition"> | null : Defaults["scrollStrategy"] | NonNullable<NonNullable<"close" | "none" | "block" | ((data: import('../layer/scroll-strategies').ScrollStrategyData, props: import('../layer/scroll-strategies').StrategyProps, scope: import('vue').EffectScope) => void) | "reposition"> | null>;
|
|
216
222
|
};
|
|
217
223
|
scrim: unknown extends Defaults["scrim"] ? Omit<{
|
|
218
224
|
type: PropType<boolean>;
|
|
@@ -391,10 +397,13 @@ export declare const YDialog: import('vue').DefineComponent<{
|
|
|
391
397
|
closeClickContent: {
|
|
392
398
|
type: PropType<boolean>;
|
|
393
399
|
};
|
|
394
|
-
scrollStrategy: {
|
|
400
|
+
scrollStrategy: Omit<{
|
|
395
401
|
type: PropType<"close" | "none" | "block" | ((data: import('../layer/scroll-strategies').ScrollStrategyData, props: import('../layer/scroll-strategies').StrategyProps, scope: import('vue').EffectScope) => void) | "reposition">;
|
|
396
402
|
default: string;
|
|
397
403
|
validator: (val: any) => boolean;
|
|
404
|
+
}, "type" | "default"> & {
|
|
405
|
+
type: PropType<NonNullable<"close" | "none" | "block" | ((data: import('../layer/scroll-strategies').ScrollStrategyData, props: import('../layer/scroll-strategies').StrategyProps, scope: import('vue').EffectScope) => void) | "reposition"> | null>;
|
|
406
|
+
default: NonNullable<"close" | "none" | "block" | ((data: import('../layer/scroll-strategies').ScrollStrategyData, props: import('../layer/scroll-strategies').StrategyProps, scope: import('vue').EffectScope) => void) | "reposition"> | null;
|
|
398
407
|
};
|
|
399
408
|
scrim: Omit<{
|
|
400
409
|
type: PropType<boolean>;
|