element-plus
Version:
A Component Library for Vue 3
1 lines • 3.8 kB
Source Map (JSON)
{"version":3,"file":"use-predefine.mjs","sources":["../../../../../../../packages/components/color-picker-panel/src/composables/use-predefine.ts"],"sourcesContent":["import { computed, inject, ref, watch, watchEffect } from 'vue'\nimport { useNamespace } from '@element-plus/hooks'\nimport { PredefineProps } from '../props/predefine'\nimport { colorPickerPanelContextKey } from '../color-picker-panel'\nimport Color from '../utils/color'\n\nimport type { Ref } from 'vue'\n\nexport const usePredefine = (props: PredefineProps) => {\n const { currentColor } = inject(colorPickerPanelContextKey)!\n\n const rgbaColors = ref(parseColors(props.colors, props.color)) as Ref<Color[]>\n\n watch(\n () => currentColor.value,\n (val) => {\n const color = new Color({\n value: val,\n enableAlpha: props.enableAlpha,\n })\n\n rgbaColors.value.forEach((item) => {\n item.selected = color.compare(item)\n })\n }\n )\n\n watchEffect(() => {\n rgbaColors.value = parseColors(props.colors, props.color)\n })\n\n function handleSelect(index: number) {\n props.color.fromString(props.colors[index])\n }\n\n function parseColors(colors: string[], color: Color) {\n return colors.map((value) => {\n const c = new Color({\n value,\n enableAlpha: props.enableAlpha,\n })\n c.selected = c.compare(color)\n return c\n })\n }\n\n return {\n rgbaColors,\n handleSelect,\n }\n}\n\nexport const usePredefineDOM = (props: PredefineProps) => {\n const ns = useNamespace('color-predefine')\n\n const rootKls = computed(() => [ns.b(), ns.is('disabled', props.disabled)])\n\n const colorsKls = computed(() => ns.e('colors'))\n\n function colorSelectorKls(item: Color) {\n return [\n ns.e('color-selector'),\n ns.is('alpha', item.get('alpha') < 100),\n { selected: item.selected },\n ]\n }\n\n return {\n rootKls,\n colorsKls,\n colorSelectorKls,\n }\n}\n"],"names":[],"mappings":";;;;;AAQa,MAAA,YAAA,GAAe,CAAC,KAA0B,KAAA;AACrD,EAAA,MAAM,EAAE,YAAA,EAAiB,GAAA,MAAA,CAAO,0BAA0B,CAAA,CAAA;AAE1D,EAAA,MAAM,aAAa,GAAI,CAAA,WAAA,CAAY,MAAM,MAAQ,EAAA,KAAA,CAAM,KAAK,CAAC,CAAA,CAAA;AAE7D,EAAA,KAAA;AAAA,IACE,MAAM,YAAa,CAAA,KAAA;AAAA,IACnB,CAAC,GAAQ,KAAA;AACP,MAAM,MAAA,KAAA,GAAQ,IAAI,KAAM,CAAA;AAAA,QACtB,KAAO,EAAA,GAAA;AAAA,QACP,aAAa,KAAM,CAAA,WAAA;AAAA,OACpB,CAAA,CAAA;AAED,MAAW,UAAA,CAAA,KAAA,CAAM,OAAQ,CAAA,CAAC,IAAS,KAAA;AACjC,QAAK,IAAA,CAAA,QAAA,GAAW,KAAM,CAAA,OAAA,CAAQ,IAAI,CAAA,CAAA;AAAA,OACnC,CAAA,CAAA;AAAA,KACH;AAAA,GACF,CAAA;AAEA,EAAA,WAAA,CAAY,MAAM;AAChB,IAAA,UAAA,CAAW,KAAQ,GAAA,WAAA,CAAY,KAAM,CAAA,MAAA,EAAQ,MAAM,KAAK,CAAA,CAAA;AAAA,GACzD,CAAA,CAAA;AAED,EAAA,SAAS,aAAa,KAAe,EAAA;AACnC,IAAA,KAAA,CAAM,KAAM,CAAA,UAAA,CAAW,KAAM,CAAA,MAAA,CAAO,KAAM,CAAA,CAAA,CAAA;AAAA,GAC5C;AAEA,EAAS,SAAA,WAAA,CAAY,QAAkB,KAAc,EAAA;AACnD,IAAO,OAAA,MAAA,CAAO,GAAI,CAAA,CAAC,KAAU,KAAA;AAC3B,MAAM,MAAA,CAAA,GAAI,IAAI,KAAM,CAAA;AAAA,QAClB,KAAA;AAAA,QACA,aAAa,KAAM,CAAA,WAAA;AAAA,OACpB,CAAA,CAAA;AACD,MAAE,CAAA,CAAA,QAAA,GAAW,CAAE,CAAA,OAAA,CAAQ,KAAK,CAAA,CAAA;AAC5B,MAAO,OAAA,CAAA,CAAA;AAAA,KACR,CAAA,CAAA;AAAA,GACH;AAEA,EAAO,OAAA;AAAA,IACL,UAAA;AAAA,IACA,YAAA;AAAA,GACF,CAAA;AACF,EAAA;AAEa,MAAA,eAAA,GAAkB,CAAC,KAA0B,KAAA;AACxD,EAAM,MAAA,EAAA,GAAK,aAAa,iBAAiB,CAAA,CAAA;AAEzC,EAAA,MAAM,OAAU,GAAA,QAAA,CAAS,MAAM,CAAC,EAAG,CAAA,CAAA,EAAK,EAAA,EAAA,CAAG,EAAG,CAAA,UAAA,EAAY,KAAM,CAAA,QAAQ,CAAC,CAAC,CAAA,CAAA;AAE1E,EAAA,MAAM,YAAY,QAAS,CAAA,MAAM,EAAG,CAAA,CAAA,CAAE,QAAQ,CAAC,CAAA,CAAA;AAE/C,EAAA,SAAS,iBAAiB,IAAa,EAAA;AACrC,IAAO,OAAA;AAAA,MACL,EAAA,CAAG,EAAE,gBAAgB,CAAA;AAAA,MACrB,GAAG,EAAG,CAAA,OAAA,EAAS,KAAK,GAAI,CAAA,OAAO,IAAI,GAAG,CAAA;AAAA,MACtC,EAAE,QAAU,EAAA,IAAA,CAAK,QAAS,EAAA;AAAA,KAC5B,CAAA;AAAA,GACF;AAEA,EAAO,OAAA;AAAA,IACL,OAAA;AAAA,IACA,SAAA;AAAA,IACA,gBAAA;AAAA,GACF,CAAA;AACF;;;;"}