UNPKG

various-ui

Version:

This is a test version of the Vue 3 component library

1 lines 7.12 kB
{"version":3,"file":"composable.mjs","sources":["../../../../../../packages/components/input/scope/src/composable.ts"],"sourcesContent":["import { SetupContext, computed, inject, ref } from \"vue\";\r\n\r\nimport { UiScopeInputProps, UiScopeInputEmits } from \"../index\";\r\n\r\nimport { utility } from \"@various/utils\";\r\nimport { UiFormEmitterKey } from \"@various/constants\";\r\n\r\nexport const useComposable = (define: UiScopeInputProps, emits: SetupContext<typeof UiScopeInputEmits>[\"emit\"]) => {\r\n //* 初始化mitt\r\n const emitter = inject(UiFormEmitterKey, undefined);\r\n\r\n //* 响应式变量\r\n const refs = {\r\n active: ref<boolean>(false),\r\n };\r\n\r\n //* 组件状态\r\n const status = computed(() => {\r\n if (define.loading) {\r\n return { is: true, name: \"loading\" };\r\n } else if (define.disabled) {\r\n return { is: false, name: \"disabled\" };\r\n } else if (define.readonly) {\r\n return { is: false, name: \"readonly\" };\r\n } else {\r\n return { is: false, name: \"default\" };\r\n }\r\n });\r\n\r\n //* 函数列表\r\n const methods = {\r\n //* 清空事件\r\n clear: () => {\r\n emits(\"update:modelValue\", { start: \"\", end: \"\" });\r\n emits(\"clear\", \"clear\");\r\n emitter?.emit(define.name || \"\", \"change\");\r\n },\r\n };\r\n\r\n //* 处理函数\r\n const handlers = {\r\n mainHandler: {\r\n change: (ev: Event) => {\r\n emits(\"change\", ev);\r\n emitter?.emit(define.name || \"\", \"change\");\r\n },\r\n input: (ev: InputEvent | Event) => emits(\"input\", ev as InputEvent),\r\n focus: (ev: FocusEvent | Event) => {\r\n refs.active.value = true;\r\n emits(\"focus\", ev);\r\n },\r\n blur: (ev: FocusEvent | Event) => {\r\n refs.active.value = false;\r\n emits(\"blur\", ev);\r\n emitter?.emit(define.name || \"\", \"blur\");\r\n },\r\n },\r\n };\r\n\r\n //* 计算属性\r\n const computeds = {\r\n //* 标签属性\r\n attrs: computed(() => {\r\n const isDisabled = [\"disabled\", \"loading\"].includes(status.value.name);\r\n const isReadonly = status.value.name == \"readonly\";\r\n return {\r\n start: { disabled: isDisabled, readonly: isReadonly, placeholder: define.placeholder?.start },\r\n end: { disabled: isDisabled, readonly: isReadonly, placeholder: define.placeholder?.end },\r\n };\r\n }),\r\n\r\n //* 样式属性\r\n style: computed(() => {\r\n //* 宽度处理\r\n if (utility.isNumber(define.width)) return { width: define.width + \"px\" };\r\n else {\r\n return { width: define.width };\r\n }\r\n }),\r\n\r\n //* 标签类名\r\n className: computed(() => {\r\n //* 初始化输出列表\r\n const result: string[] = [];\r\n //* 判断是否是禁用或只读状态\r\n if (status.value.name == \"disabled\") result.push(\"ui-disabled-status\");\r\n else if (status.value.name == \"readonly\") result.push(\"ui-readonly-status\");\r\n else if (status.value.name == \"loading\") result.push(\"ui-loading-status\");\r\n //* 判断是否需要添加size类名\r\n if (define.size != \"default\") result.push(`ui-${define.size}`);\r\n //* 判断是否激活\r\n if (refs.active.value) result.push(\"ui-active\");\r\n\r\n return result.join(\" \");\r\n }),\r\n };\r\n\r\n return { refs, status, methods, handlers, computeds };\r\n};\r\n"],"names":["utility.isNumber"],"mappings":"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"}