various-ui
Version:
This is a test version of the Vue 3 component library
1 lines • 4.41 kB
Source Map (JSON)
{"version":3,"file":"composable.mjs","sources":["../../../../../../packages/components/button/default/src/composable.ts"],"sourcesContent":["import { computed, SetupContext } from \"vue\";\r\nimport { UiButtonEmits, UiButtonProps } from \"../index\";\r\nimport { utility } from \"@various/utils\";\r\n\r\nexport const useComposable = (define: UiButtonProps, emits: SetupContext<typeof UiButtonEmits>[\"emit\"]) => {\r\n //* 组件状态\r\n const status = computed(() => {\r\n if (define.loading) return { is: true, name: \"loading\" };\r\n else if (define.disabled) return { is: false, name: \"disabled\" };\r\n else if (define.readonly) 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 computeds = {\r\n //* 主体样式\r\n style: computed(() => {\r\n if (!define.width) return {};\r\n else if (utility.isNumber(define.width)) {\r\n return { \"min-width\": define.width + \"px\" };\r\n } else {\r\n return { \"min-width\": define.width };\r\n }\r\n }),\r\n\r\n //* 禁用状态\r\n disabled: computed(() => {\r\n return [\"loading\", \"disabled\", \"readonly\"].includes(status.value.name);\r\n }),\r\n\r\n //* 主体类名\r\n className: computed(() => {\r\n //* 数据初始化\r\n const result: string[] = [];\r\n\r\n //* 根据需求添加类名\r\n if (define.simple) result.push(\"ui-button-simple\");\r\n if (define.size != \"default\") result.push(`ui-${define.size}`);\r\n if (define.type != \"info\") result.push(`ui-${define.type}-type`);\r\n if (status.value.name == \"loading\") result.push(\"ui-loading-status\");\r\n else 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\r\n //* 输出结果\r\n return result.join(\" \");\r\n }),\r\n };\r\n\r\n //* 函数列表\r\n const methods = {\r\n click: (ev?: MouseEvent) => {\r\n if (computeds.disabled.value) return;\r\n else {\r\n emits(\"click\", ev);\r\n }\r\n },\r\n };\r\n\r\n return { status, computeds, methods };\r\n};\r\n"],"names":["utility.isNumber"],"mappings":";;;;AAIa,MAAA,aAAA,GAAgB,CAAC,MAAA,EAAuB,KAAsD,KAAA;AAEvG,EAAM,MAAA,MAAA,GAAS,SAAS,MAAM;AAC1B,IAAA,IAAI,OAAO,OAAS,EAAA,OAAO,EAAE,EAAI,EAAA,IAAA,EAAM,MAAM,SAAU,EAAA,CAAA;AAAA,SAAA,IAC9C,OAAO,QAAU,EAAA,OAAO,EAAE,EAAI,EAAA,KAAA,EAAO,MAAM,UAAW,EAAA,CAAA;AAAA,SAAA,IACtD,OAAO,QAAU,EAAA,OAAO,EAAE,EAAI,EAAA,KAAA,EAAO,MAAM,UAAW,EAAA,CAAA;AAAA,SAC1D;AACD,MAAA,OAAO,EAAE,EAAA,EAAI,KAAO,EAAA,IAAA,EAAM,SAAU,EAAA,CAAA;AAAA,KACxC;AAAA,GACH,CAAA,CAAA;AAGD,EAAA,MAAM,SAAY,GAAA;AAAA;AAAA,IAEd,KAAA,EAAO,SAAS,MAAM;AAClB,MAAA,IAAI,CAAC,MAAA,CAAO,KAAO,EAAA,OAAO,EAAC,CAAA;AAAA,WAAA,IAClBA,QAAQ,CAAS,MAAO,CAAA,KAAK,CAAG,EAAA;AACrC,QAAA,OAAO,EAAE,WAAA,EAAa,MAAO,CAAA,KAAA,GAAQ,IAAK,EAAA,CAAA;AAAA,OACvC,MAAA;AACH,QAAO,OAAA,EAAE,WAAa,EAAA,MAAA,CAAO,KAAM,EAAA,CAAA;AAAA,OACvC;AAAA,KACH,CAAA;AAAA;AAAA,IAGD,QAAA,EAAU,SAAS,MAAM;AACrB,MAAO,OAAA,CAAC,WAAW,UAAY,EAAA,UAAU,EAAE,QAAS,CAAA,MAAA,CAAO,MAAM,IAAI,CAAA,CAAA;AAAA,KACxE,CAAA;AAAA;AAAA,IAGD,SAAA,EAAW,SAAS,MAAM;AAEtB,MAAA,MAAM,SAAmB,EAAC,CAAA;AAG1B,MAAA,IAAI,MAAO,CAAA,MAAA,EAAe,MAAA,CAAA,IAAA,CAAK,kBAAkB,CAAA,CAAA;AACjD,MAAI,IAAA,MAAA,CAAO,QAAQ,SAAW,EAAA,MAAA,CAAO,KAAK,CAAM,GAAA,EAAA,MAAA,CAAO,IAAI,CAAE,CAAA,CAAA,CAAA;AAC7D,MAAI,IAAA,MAAA,CAAO,QAAQ,MAAQ,EAAA,MAAA,CAAO,KAAK,CAAM,GAAA,EAAA,MAAA,CAAO,IAAI,CAAO,KAAA,CAAA,CAAA,CAAA;AAC/D,MAAA,IAAI,OAAO,KAAM,CAAA,IAAA,IAAQ,SAAW,EAAA,MAAA,CAAO,KAAK,mBAAmB,CAAA,CAAA;AAAA,WAAA,IAC1D,OAAO,KAAM,CAAA,IAAA,IAAQ,UAAY,EAAA,MAAA,CAAO,KAAK,oBAAoB,CAAA,CAAA;AAAA,WAAA,IACjE,OAAO,KAAM,CAAA,IAAA,IAAQ,UAAY,EAAA,MAAA,CAAO,KAAK,oBAAoB,CAAA,CAAA;AAG1E,MAAO,OAAA,MAAA,CAAO,KAAK,GAAG,CAAA,CAAA;AAAA,KACzB,CAAA;AAAA,GACL,CAAA;AAGA,EAAA,MAAM,OAAU,GAAA;AAAA,IACZ,KAAA,EAAO,CAAC,EAAoB,KAAA;AACxB,MAAI,IAAA,SAAA,CAAU,SAAS,KAAO,EAAA,OAAA;AAAA,WACzB;AACD,QAAA,KAAA,CAAM,SAAS,EAAE,CAAA,CAAA;AAAA,OACrB;AAAA,KACJ;AAAA,GACJ,CAAA;AAEA,EAAO,OAAA,EAAE,MAAQ,EAAA,SAAA,EAAW,OAAQ,EAAA,CAAA;AACxC;;;;"}