{"version":3,"file":"UIntegrationIcon.mjs","names":["genericComponent","propsFactory","makeComponentProps","makeTagProps","h","ref","watch","UTelegramIcon","UWhatsappIcon","UViberIcon","iconComponents","telegram","whatsapp","viber","makeUIntegrationIconProps","_objectSpread","icon","type","String","required","size","UIntegrationIcon","name","props","setup","iconComponent","getIconComponent","newValue","value","_createVNode"],"sources":["../../../src/components/UIntegrationIcon/UIntegrationIcon.tsx"],"sourcesContent":["import { genericComponent, propsFactory } from '@/utils'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeTagProps } from '@/composables/tag'\nimport { h, ref, watch } from 'vue'\nimport { UTelegramIcon } from '@/components/UIntegrationIcon/integration-icons/UTelegramIcon'\nimport { UWhatsappIcon } from '@/components/UIntegrationIcon/integration-icons/UWhatsapp'\nimport { UViberIcon } from '@/components/UIntegrationIcon/integration-icons/UViberIcon'\n\n// Create a map of icons\nconst iconComponents = {\n  telegram: UTelegramIcon,\n  whatsapp: UWhatsappIcon,\n  viber: UViberIcon,\n} as { [key: string]: any }\n\nexport const makeUIntegrationIconProps = propsFactory(\n  {\n    icon: {\n      type: String,\n      default: 'telegram',\n      required: true,\n    },\n    size: {\n      type: String,\n      default: 'sm',\n      required: false,\n    },\n    ...makeComponentProps(),\n    ...makeTagProps(),\n  },\n  'UIntegrationIcon'\n)\n\nexport const UIntegrationIcon = genericComponent()({\n  name: 'UIntegrationIcon',\n\n  props: makeUIntegrationIconProps(),\n\n  setup(props) {\n    const iconComponent = ref(iconComponents[props.icon] || UTelegramIcon)\n\n    const getIconComponent = (icon: string) => {\n      return iconComponents[icon] || UTelegramIcon\n    }\n\n    watch(\n      () => props.icon,\n      (newValue) => {\n        iconComponent.value = getIconComponent(newValue)\n      }\n    )\n\n    return () => (\n      <div class={['flex items-center']}>\n        {h(iconComponent.value, { size: props.size })}\n      </div>\n    )\n  },\n})\n\nexport type UIntegrationIconInstance = InstanceType<typeof UIntegrationIcon>\n"],"mappings":";;;;;;;SAASA,gBAAgB,EAAEC,YAAY;AAAA,SAC9BC,kBAAkB;AAAA,SAClBC,YAAY;AACrB,SAASC,CAAC,EAAEC,GAAG,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAC1BC,aAAa;AAAA,SACbC,aAAa;AAAA,SACbC,UAAU,8CAEnB;AACA,IAAMC,cAAc,GAAG;EACrBC,QAAQ,EAAEJ,aAAa;EACvBK,QAAQ,EAAEJ,aAAa;EACvBK,KAAK,EAAEJ;AACT,CAA2B;AAE3B,OAAO,IAAMK,yBAAyB,GAAGb,YAAY,CAAAc,aAAA,CAAAA,aAAA;EAEjDC,IAAI,EAAE;IACJC,IAAI,EAAEC,MAAM;IACZ,WAAS,UAAU;IACnBC,QAAQ,EAAE;EACZ,CAAC;EACDC,IAAI,EAAE;IACJH,IAAI,EAAEC,MAAM;IACZ,WAAS,IAAI;IACbC,QAAQ,EAAE;EACZ;AAAC,GACEjB,kBAAkB,CAAC,CAAC,GACpBC,YAAY,CAAC,CAAC,GAEnB,kBACF,CAAC;AAED,OAAO,IAAMkB,gBAAgB,GAAGrB,gBAAgB,CAAC,CAAC,CAAC;EACjDsB,IAAI,EAAE,kBAAkB;EAExBC,KAAK,EAAET,yBAAyB,CAAC,CAAC;EAElCU,KAAK,WAAAA,MAACD,KAAK,EAAE;IACX,IAAME,aAAa,GAAGpB,GAAG,CAACK,cAAc,CAACa,KAAK,CAACP,IAAI,CAAC,IAAIT,aAAa,CAAC;IAEtE,IAAMmB,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIV,IAAY,EAAK;MACzC,OAAON,cAAc,CAACM,IAAI,CAAC,IAAIT,aAAa;IAC9C,CAAC;IAEDD,KAAK,CACH;MAAA,OAAMiB,KAAK,CAACP,IAAI;IAAA,GAChB,UAACW,QAAQ,EAAK;MACZF,aAAa,CAACG,KAAK,GAAGF,gBAAgB,CAACC,QAAQ,CAAC;IAClD,CACF,CAAC;IAED,OAAO;MAAA,OAAAE,YAAA;QAAA,SACO,CAAC,mBAAmB;MAAC,IAC9BzB,CAAC,CAACqB,aAAa,CAACG,KAAK,EAAE;QAAER,IAAI,EAAEG,KAAK,CAACH;MAAK,CAAC,CAAC;IAAA,CAEhD;EACH;AACF,CAAC,CAAC"}