{"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;;;;"}