various-ui
Version:
This is a test version of the Vue 3 component library
1 lines • 7.49 kB
Source Map (JSON)
{"version":3,"file":"composable.mjs","sources":["../../../../../../packages/components/modal/default/src/composable.ts"],"sourcesContent":["import { ref, computed, nextTick, SetupContext, reactive } from \"vue\";\r\nimport { UiModalEmits, UiModalProps } from \"../index\";\r\nimport { utility } from \"@various/utils\";\r\n\r\nexport const useComposable = (define: UiModalProps, emit: SetupContext<typeof UiModalEmits>[\"emit\"]) => {\r\n //* 响应式变量\r\n const refs = {\r\n open: ref<boolean>(false),\r\n main: ref<HTMLElement>(),\r\n observer: ref<ResizeObserver>(),\r\n container: ref<HTMLElement>(),\r\n };\r\n\r\n //* 计算属性\r\n const computeds = {\r\n //* 主体样式\r\n mainStyle: computed(() => {\r\n return {\r\n padding: define.margin,\r\n zIndex: define.zIndex,\r\n };\r\n }),\r\n //* 容器样式\r\n containerStyle: computed(() => {\r\n //* 初始化返回数据\r\n const result: { [name: string]: any } = {\r\n width: utility.isNumber(define.width) ? define.width + \"px\" : define.width,\r\n height: utility.isNumber(define.height) ? define.height + \"px\" : define.height,\r\n padding: define.spacing,\r\n };\r\n\r\n if (define.minHeight) result[\"min-height\"] = utility.isNumber(define.minHeight) ? define.minHeight + \"px\" : define.minHeight;\r\n if (define.maxHeight) result[\"max-height\"] = utility.isNumber(define.maxHeight) ? define.maxHeight + \"px\" : define.maxHeight;\r\n if (define.minWidth) result[\"min-width\"] = utility.isNumber(define.minWidth) ? define.minWidth + \"px\" : define.minWidth;\r\n if (define.maxWidth) {\r\n result[\"max-width\"] = utility.isNumber(define.maxWidth) ? define.maxWidth + \"px\" : define.maxWidth;\r\n }\r\n\r\n return result;\r\n }),\r\n };\r\n\r\n //* 函数列表\r\n const methods = {\r\n //* 窗口初始化函数\r\n resizeHandler: () => {\r\n nextTick(() => {\r\n if (!refs.container.value || !refs.main.value) return;\r\n if (refs.container.value.offsetHeight >= window.innerHeight) {\r\n refs.main.value.style.alignItems = \"flex-start\";\r\n } else {\r\n refs.main.value.style.alignItems = \"center\";\r\n }\r\n });\r\n },\r\n\r\n //* Modal关闭函数\r\n closeModal: () => {\r\n //* 检测是否满足运行条件\r\n if (!refs.main.value || !refs.observer.value) return;\r\n else {\r\n //* Body显示被隐藏的滚动条\r\n document.body.style.overflow = \"\";\r\n //* 卸载监听事件\r\n refs.observer.value.disconnect();\r\n //* 隐藏弹出窗口\r\n refs.open.value = false;\r\n //* 响应关闭事件\r\n emit(\"close\");\r\n }\r\n },\r\n\r\n //* Modal启动函数\r\n openModal: () => {\r\n //* 检测是否满足运行条件\r\n if (!refs.main.value || !refs.observer.value) return;\r\n else {\r\n //* 隐藏滚动条\r\n document.body.style.overflow = \"hidden\";\r\n //* 回到顶部\r\n refs.main.value?.scrollTo({ top: 0 });\r\n //* 挂载监听事件\r\n refs.observer.value.observe(refs.main.value);\r\n //* 显示弹出窗口\r\n refs.open.value = true;\r\n //* 响应Open事件\r\n emit(\"open\");\r\n }\r\n },\r\n\r\n //* Modal滚动条函数\r\n scrollTo: (options: ScrollToOptions) => {\r\n refs.main.value?.scrollTo(options);\r\n },\r\n };\r\n\r\n //* 属性\r\n const binds = reactive({\r\n main: computed(() => {\r\n return {\r\n style: computeds.mainStyle.value,\r\n class: define.classExtraName,\r\n };\r\n }),\r\n });\r\n\r\n return { refs, binds, methods, computeds };\r\n};\r\n"],"names":["utility.isNumber"],"mappings":"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"}