UNPKG

xdesign-vue-next

Version:

XDesign Component for vue-next

1 lines 3.89 kB
{"version":3,"file":"input-adornment.mjs","sources":["../../src/input-adornment/input-adornment.tsx"],"sourcesContent":["import { defineComponent, h, VNodeChild } from 'vue';\nimport isString from 'lodash/isString';\nimport isNumber from 'lodash/isNumber';\nimport { usePrefixClass } from '../hooks/useConfig';\nimport { useTNodeJSX } from '../hooks/tnode';\nimport props from './props';\nimport isFunction from 'lodash/isFunction';\n\nexport default defineComponent({\n name: 'XInputAdornment',\n inheritAttrs: false,\n props,\n setup(props, { slots }) {\n const COMPONENT_NAME = usePrefixClass('input-adornment');\n const renderTNodeJSX = useTNodeJSX();\n\n const renderAddon = (h: any, type: string, addon: string | Function | VNodeChild | undefined): VNodeChild => {\n let addonNode: VNodeChild;\n const isContentNode = isString(addon) || isNumber(addon);\n if (!slots[type] && isString(addon) && !addon) return null;\n if (slots[type]) {\n if (slots[type](null).length === 1 && typeof slots[type](null)[0].children === 'string') {\n addonNode = <span class={`${COMPONENT_NAME.value}__text`}>{slots[type](null)}</span>;\n } else {\n addonNode = slots[type](null);\n }\n } else if (isFunction(addon)) {\n addonNode = addon(h);\n } else {\n addonNode = isContentNode ? (\n <span class={`${COMPONENT_NAME.value}__text`}>{addon}</span>\n ) : (\n (addon as VNodeChild)\n );\n }\n return addonNode ? <span class={`${COMPONENT_NAME.value}__${type}`}>{addonNode}</span> : addonNode;\n };\n return () => {\n const prepend = renderAddon(h, 'prepend', props.prepend);\n const append = renderAddon(h, 'append', props.append);\n const defaultSlot: VNodeChild[] = renderTNodeJSX('default') || [null];\n const className = [\n COMPONENT_NAME.value,\n {\n [`${COMPONENT_NAME.value}--prepend`]: prepend,\n [`${COMPONENT_NAME.value}--append`]: append,\n },\n ];\n\n if (!prepend && !append) {\n return defaultSlot[0];\n }\n\n return (\n <div class={className}>\n {prepend}\n {defaultSlot[0]}\n {append}\n </div>\n );\n };\n },\n});\n"],"names":["name","inheritAttrs","props","setup","isString","addonNode","isFunction","_createVNode"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,sBAAA,eAAA,CAAA;AACEA,EAAAA,IAAAA,EAAAA,iBAAAA;AACAC,EAAAA,YAAAA,EAAAA,KAAAA;AACAC,EAAAA,KAAAA,EAAAA,KAAAA;AACAC,EAAAA,KAAAA,EAAAA,SAAAA,KAAAA,CAAAA,MAAAA,EAAAA,IAAAA,EAAAA;AAAwB,IAAA,IAAA,KAAA,GAAA,IAAA,CAAA,KAAA,CAAA;AAChB,IAAA,IAAA,cAAA,GAAA,cAAA,CAAA,iBAAA,CAAA,CAAA;AACN,IAAA,IAAA,cAAA,GAAA,WAAA,EAAA,CAAA;;AAGM,MAAA,IAAA,SAAA,CAAA;;AAEJ,MAAA,IAAA,CAAA,KAAA,CAAA,IAAA,CAAA,IAAAC,UAAA,CAAA,KAAA,CAAA,IAAA,CAAA,KAAA,EAAA,OAAA,IAAA,CAAA;AACA,MAAA,IAAA,KAAA,CAAA,IAAA,CAAA,EAAA;;AAEgBC,UAAAA,SAAAA,GAAAA,WAAAA,CAAAA,MAAAA,EAAAA;AAAA,YAAA,OAAA,EAAA,EAAA,CAAA,MAAA,CAAA,cAAA,CAAA,KAAA,EAAA,QAAA,CAAA;;AACd,SAAA,MAAA;AACcA,UAAAA,SAAAA,GAAAA,KAAAA,CAAAA,IAAAA,CAAAA,CAAAA,IAAAA,CAAAA,CAAAA;AACd,SAAA;AACF,OAAA,MAAA,IAAAC,YAAA,CAAA,KAAA,CAAA,EAAA;AACED,QAAAA,SAAAA,GAAAA,KAAAA,CAAAA,EAAAA,CAAAA,CAAAA;AACF,OAAA,MAAA;;AACc,UAAA,OAAA,EAAA,EAAA,CAAA,MAAA,CAAA,cAAA,CAAA,KAAA,EAAA,QAAA,CAAA;;AAKd,OAAA;;;;;AAGF,IAAA,OAAA,YAAA;AAAa,MAAA,IAAA,KAAA,CAAA;;;;AAIX,MAAA,IAAA,SAAA,GAAA,CAAA,cAAA,CAAA,KAAA,GAAA,KAAA,GAAA,EAAA,EAAA,eAAA,CAAA,KAAA,EAAA,EAAA,CAAA,MAAA,CAAA,cAAA,CAAA,KAAA,EAAA,WAAA,CAAA,EAAA,OAAA,CAAA,EAAA,eAAA,CAAA,KAAA,EAAA,EAAA,CAAA,MAAA,CAAA,cAAA,CAAA,KAAA,EAAA,UAAA,CAAA,EAAA,MAAA,CAAA,EAAA,KAAA,EAAA,CAAA;AAQI,MAAA,IAAA,CAAA,OAAA,IAAA,CAAA,MAAA,EAAA;;AAEJ,OAAA;AAGE,MAAA,OAAAE,WAAA,CAAA,KAAA,EAAA;;AAAY,OAAA,EAAA,CAAA,OAAA,EAAA,WAAA,CAAA,CAAA,CAAA,EAAA,MAAA,CAAA,CAAA,CAAA;;AAOlB,GAAA;AACF,CAAA,CAAA;;;;"}