UNPKG

various-ui

Version:

This is a test version of the Vue 3 component library

1 lines 8.21 kB
{"version":3,"file":"composable.mjs","sources":["../../../../../../packages/components/textarea/default/src/composable.ts"],"sourcesContent":["import { SetupContext, computed, inject, ref } from \"vue\";\r\nimport { UiTextareaProps, UiTextareaEmits } from \"../index\";\r\nimport { UiFormEmitterKey } from \"@various/constants\";\r\nimport { utility } from \"@various/utils\";\r\n\r\nexport const useComposable = (define: UiTextareaProps, emits: SetupContext<typeof UiTextareaEmits>[\"emit\"]) => {\r\n //* 初始化mitt\r\n const emitter = inject(UiFormEmitterKey, undefined);\r\n\r\n //* 响应式属性\r\n const refs = {\r\n inputNode: ref<HTMLInputElement>(), //* 输入框节点\r\n };\r\n\r\n //* 函数列表\r\n const methods = {\r\n //* 回车函数\r\n enter: (ev: KeyboardEvent) => emits(\"enter\", ev),\r\n\r\n //* 清空函数\r\n clear: () => {\r\n emits(\"update:modelValue\", \"\"); //* 清空文本框内容\r\n emits(\"clear\"); //* 触发清空回调\r\n emitter?.emit(define.name || \"\", \"change\"); //* 促发表单change回调\r\n },\r\n\r\n //* 焦点获取函数\r\n focus: (ev?: FocusEvent | Event) => {\r\n emits(\"focus\", ev);\r\n emitter?.emit(define.name || \"\", \"focus\");\r\n if (!ev) {\r\n refs.inputNode.value?.focus();\r\n }\r\n },\r\n\r\n //* 焦点失去函数\r\n blur: (ev?: FocusEvent | Event) => {\r\n emits(\"blur\", ev);\r\n emitter?.emit(define.name || \"\", \"blur\");\r\n if (!ev) {\r\n refs.inputNode.value?.blur();\r\n }\r\n },\r\n };\r\n\r\n //* 处理函数列表\r\n const handlers = {\r\n inputHandler: {\r\n blur: methods.blur,\r\n focus: methods.focus,\r\n click: (ev: PointerEvent | Event) => emits(\"click\", ev),\r\n change: (ev: Event) => {\r\n emits(\"change\", ev);\r\n emitter?.emit(define.name || \"\", \"change\");\r\n },\r\n input: (ev: InputEvent) => {\r\n emits(\"update:modelValue\", (ev.target as HTMLInputElement).value);\r\n emits(\"input\", ev);\r\n },\r\n },\r\n };\r\n\r\n //* 计算属性\r\n const computeds = {\r\n //* 文本框属性\r\n attrs: computed(() => {\r\n const result: any = {\r\n rows: define.rows,\r\n value: define.modelValue,\r\n disabled: define.disabled,\r\n readonly: define.readonly,\r\n placeholder: define.placeholder,\r\n };\r\n\r\n if (define.maxlength) result.maxlength = define.maxlength;\r\n\r\n return result;\r\n }),\r\n\r\n //* 文本框样式\r\n style: computed(() => {\r\n //* 初始化数据\r\n const result: { [name: string]: string } = {};\r\n\r\n //* 宽度设置\r\n if (define.width) {\r\n if (utility.isNumber(define.width)) result.width = define.width + \"px\";\r\n else {\r\n result.width = define.width as string;\r\n }\r\n }\r\n\r\n //* 高度设置\r\n if (define.height) {\r\n if (utility.isNumber(define.height)) result.height = define.height + \"px\";\r\n else {\r\n result.height = define.height as string;\r\n }\r\n }\r\n\r\n return result;\r\n }),\r\n\r\n //* 文本框状态\r\n status: computed(() => {\r\n if (define.loading) {\r\n return { is: true, name: \"loading\" };\r\n } else {\r\n return { is: false, name: define.disabled ? \"disabled\" : define.readonly ? \"readonly\" : \"default\" };\r\n }\r\n }),\r\n\r\n //* 文本框类名\r\n className: computed(() => {\r\n //* 初始化输出\r\n const result: string[] = [];\r\n //* 判断是否是禁用或只读状态\r\n if (computeds.status.value.name == \"disabled\") result.push(\"ui-disabled-status\");\r\n else if (computeds.status.value.name == \"readonly\") result.push(\"ui-readonly-status\");\r\n else if (computeds.status.value.name == \"loading\") result.push(\"ui-loading-status\");\r\n\r\n return result.join(\" \");\r\n }),\r\n };\r\n\r\n return { refs, methods, handlers, computeds };\r\n};\r\n"],"names":["utility.isNumber"],"mappings":";;;;;AAKa,MAAA,aAAA,GAAgB,CAAC,MAAA,EAAyB,KAAwD,KAAA;AAE3G,EAAM,MAAA,OAAA,GAAU,MAAO,CAAA,gBAAA,EAAkB,KAAS,CAAA,CAAA,CAAA;AAGlD,EAAA,MAAM,IAAO,GAAA;AAAA,IACT,WAAW,GAAsB,EAAA;AAAA;AAAA,GACrC,CAAA;AAGA,EAAA,MAAM,OAAU,GAAA;AAAA;AAAA,IAEZ,KAAO,EAAA,CAAC,EAAsB,KAAA,KAAA,CAAM,SAAS,EAAE,CAAA;AAAA;AAAA,IAG/C,OAAO,MAAM;AACT,MAAA,KAAA,CAAM,qBAAqB,EAAE,CAAA,CAAA;AAC7B,MAAA,KAAA,CAAM,OAAO,CAAA,CAAA;AACb,MAAS,OAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,OAAA,CAAA,IAAA,CAAK,MAAO,CAAA,IAAA,IAAQ,EAAI,EAAA,QAAA,CAAA,CAAA;AAAA,KACrC;AAAA;AAAA,IAGA,KAAA,EAAO,CAAC,EAA4B,KAAA;AA3B5C,MAAA,IAAA,EAAA,CAAA;AA4BY,MAAA,KAAA,CAAM,SAAS,EAAE,CAAA,CAAA;AACjB,MAAS,OAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,OAAA,CAAA,IAAA,CAAK,MAAO,CAAA,IAAA,IAAQ,EAAI,EAAA,OAAA,CAAA,CAAA;AACjC,MAAA,IAAI,CAAC,EAAI,EAAA;AACL,QAAK,CAAA,EAAA,GAAA,IAAA,CAAA,SAAA,CAAU,UAAf,IAAsB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAA,EAAA,CAAA;AAAA,OAC1B;AAAA,KACJ;AAAA;AAAA,IAGA,IAAA,EAAM,CAAC,EAA4B,KAAA;AApC3C,MAAA,IAAA,EAAA,CAAA;AAqCY,MAAA,KAAA,CAAM,QAAQ,EAAE,CAAA,CAAA;AAChB,MAAS,OAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,OAAA,CAAA,IAAA,CAAK,MAAO,CAAA,IAAA,IAAQ,EAAI,EAAA,MAAA,CAAA,CAAA;AACjC,MAAA,IAAI,CAAC,EAAI,EAAA;AACL,QAAK,CAAA,EAAA,GAAA,IAAA,CAAA,SAAA,CAAU,UAAf,IAAsB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,EAAA,CAAA;AAAA,OAC1B;AAAA,KACJ;AAAA,GACJ,CAAA;AAGA,EAAA,MAAM,QAAW,GAAA;AAAA,IACb,YAAc,EAAA;AAAA,MACV,MAAM,OAAQ,CAAA,IAAA;AAAA,MACd,OAAO,OAAQ,CAAA,KAAA;AAAA,MACf,KAAO,EAAA,CAAC,EAA6B,KAAA,KAAA,CAAM,SAAS,EAAE,CAAA;AAAA,MACtD,MAAA,EAAQ,CAAC,EAAc,KAAA;AACnB,QAAA,KAAA,CAAM,UAAU,EAAE,CAAA,CAAA;AAClB,QAAS,OAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,OAAA,CAAA,IAAA,CAAK,MAAO,CAAA,IAAA,IAAQ,EAAI,EAAA,QAAA,CAAA,CAAA;AAAA,OACrC;AAAA,MACA,KAAA,EAAO,CAAC,EAAmB,KAAA;AACvB,QAAM,KAAA,CAAA,mBAAA,EAAsB,EAAG,CAAA,MAAA,CAA4B,KAAK,CAAA,CAAA;AAChE,QAAA,KAAA,CAAM,SAAS,EAAE,CAAA,CAAA;AAAA,OACrB;AAAA,KACJ;AAAA,GACJ,CAAA;AAGA,EAAA,MAAM,SAAY,GAAA;AAAA;AAAA,IAEd,KAAA,EAAO,SAAS,MAAM;AAClB,MAAA,MAAM,MAAc,GAAA;AAAA,QAChB,MAAM,MAAO,CAAA,IAAA;AAAA,QACb,OAAO,MAAO,CAAA,UAAA;AAAA,QACd,UAAU,MAAO,CAAA,QAAA;AAAA,QACjB,UAAU,MAAO,CAAA,QAAA;AAAA,QACjB,aAAa,MAAO,CAAA,WAAA;AAAA,OACxB,CAAA;AAEA,MAAA,IAAI,MAAO,CAAA,SAAA,EAAkB,MAAA,CAAA,SAAA,GAAY,MAAO,CAAA,SAAA,CAAA;AAEhD,MAAO,OAAA,MAAA,CAAA;AAAA,KACV,CAAA;AAAA;AAAA,IAGD,KAAA,EAAO,SAAS,MAAM;AAElB,MAAA,MAAM,SAAqC,EAAC,CAAA;AAG5C,MAAA,IAAI,OAAO,KAAO,EAAA;AACd,QAAI,IAAAA,SAAiB,MAAO,CAAA,KAAK,GAAU,MAAA,CAAA,KAAA,GAAQ,OAAO,KAAQ,GAAA,IAAA,CAAA;AAAA,aAC7D;AACD,UAAA,MAAA,CAAO,QAAQ,MAAO,CAAA,KAAA,CAAA;AAAA,SAC1B;AAAA,OACJ;AAGA,MAAA,IAAI,OAAO,MAAQ,EAAA;AACf,QAAI,IAAAA,SAAiB,MAAO,CAAA,MAAM,GAAU,MAAA,CAAA,MAAA,GAAS,OAAO,MAAS,GAAA,IAAA,CAAA;AAAA,aAChE;AACD,UAAA,MAAA,CAAO,SAAS,MAAO,CAAA,MAAA,CAAA;AAAA,SAC3B;AAAA,OACJ;AAEA,MAAO,OAAA,MAAA,CAAA;AAAA,KACV,CAAA;AAAA;AAAA,IAGD,MAAA,EAAQ,SAAS,MAAM;AACnB,MAAA,IAAI,OAAO,OAAS,EAAA;AAChB,QAAA,OAAO,EAAE,EAAA,EAAI,IAAM,EAAA,IAAA,EAAM,SAAU,EAAA,CAAA;AAAA,OAChC,MAAA;AACH,QAAO,OAAA,EAAE,EAAI,EAAA,KAAA,EAAO,IAAM,EAAA,MAAA,CAAO,WAAW,UAAa,GAAA,MAAA,CAAO,QAAW,GAAA,UAAA,GAAa,SAAU,EAAA,CAAA;AAAA,OACtG;AAAA,KACH,CAAA;AAAA;AAAA,IAGD,SAAA,EAAW,SAAS,MAAM;AAEtB,MAAA,MAAM,SAAmB,EAAC,CAAA;AAE1B,MAAA,IAAI,UAAU,MAAO,CAAA,KAAA,CAAM,QAAQ,UAAY,EAAA,MAAA,CAAO,KAAK,oBAAoB,CAAA,CAAA;AAAA,WAAA,IACtE,UAAU,MAAO,CAAA,KAAA,CAAM,QAAQ,UAAY,EAAA,MAAA,CAAO,KAAK,oBAAoB,CAAA,CAAA;AAAA,WAAA,IAC3E,UAAU,MAAO,CAAA,KAAA,CAAM,QAAQ,SAAW,EAAA,MAAA,CAAO,KAAK,mBAAmB,CAAA,CAAA;AAElF,MAAO,OAAA,MAAA,CAAO,KAAK,GAAG,CAAA,CAAA;AAAA,KACzB,CAAA;AAAA,GACL,CAAA;AAEA,EAAA,OAAO,EAAE,IAAA,EAAM,OAAS,EAAA,QAAA,EAAU,SAAU,EAAA,CAAA;AAChD;;;;"}