{"version":3,"file":"LoadingIcon.mjs","sources":["../../../../../../packages/components/button/src/LoadingIcon.tsx"],"sourcesContent":["import { defineComponent, nextTick, Transition } from 'vue'\nimport { BnIconLoading } from '../../icon'\n\nconst getCollapsedWidth = (node: HTMLSpanElement) => {\n  if (node) {\n    node.style.width = '0px'\n    node.style.opacity = '0'\n    node.style.transform = 'scale(0)'\n  }\n}\nconst getRealWidth = (node: HTMLSpanElement) => {\n  nextTick(() => {\n    if (node) {\n      node.style.transition = 'all 0.15s'\n      node.style.width = `${node.scrollWidth}px`\n      node.style.opacity = '1'\n      node.style.transform = 'scale(1)'\n    }\n  })\n}\nconst resetStyle = (node: HTMLSpanElement) => {\n  if (node && node.style) {\n    node.style.width = ''\n    node.style.opacity = ''\n    node.style.transform = ''\n  }\n}\nexport default defineComponent({\n  name: 'LoadingIcon',\n  props: {\n    loading: Boolean,\n    // eslint-disable-next-line vue/require-default-prop\n    ns: String\n  },\n  setup(props) {\n    return () => {\n      return (\n        <Transition\n          onBeforeEnter={getCollapsedWidth}\n          onEnter={getRealWidth}\n          onBeforeLeave={getRealWidth}\n          onAfterEnter={resetStyle}\n          onLeave={(node: HTMLSpanElement) => {\n            setTimeout(() => {\n              getCollapsedWidth(node)\n            }, 16)\n          }}\n          onAfterLeave={resetStyle}\n        >\n          {props.loading ? (\n            <span class={`${props.ns}__loading`}>\n              <BnIconLoading />\n            </span>\n          ) : null}\n        </Transition>\n      )\n    }\n  }\n})\n"],"names":["getCollapsedWidth","node","style","width","opacity","transform","getRealWidth","nextTick","transition","scrollWidth","resetStyle","name","props","loading","Boolean","ns","String","setup","_createVNode","Transition","setTimeout","default","BnIconLoading"],"mappings":";;;;AAGA,MAAMA,oBAAqBC,CAA0B,IAAA,KAAA;AACnD,EAAA,IAAIA,IAAM,EAAA;AACRA,IAAAA,IAAAA,CAAKC,MAAMC,KAAQ,GAAA,KAAA,CAAA;AACnBF,IAAAA,IAAAA,CAAKC,MAAME,OAAU,GAAA,GAAA,CAAA;AACrBH,IAAAA,IAAAA,CAAKC,MAAMG,SAAY,GAAA,UAAA,CAAA;AAAA,GACzB;AACF,CAAA,CAAA;AACA,MAAMC,eAAgBL,CAA0B,IAAA,KAAA;AAC9CM,EAAAA,QAAAA,CAAS,MAAM;AACb,IAAA,IAAIN,IAAM,EAAA;AACRA,MAAAA,IAAAA,CAAKC,MAAMM,UAAa,GAAA,WAAA,CAAA;AACxBP,MAAKC,IAAAA,CAAAA,KAAAA,CAAMC,KAAQ,GAAA,CAAA,EAAGF,IAAKQ,CAAAA,WAAAA,CAAAA,EAAAA,CAAAA,CAAAA;AAC3BR,MAAAA,IAAAA,CAAKC,MAAME,OAAU,GAAA,GAAA,CAAA;AACrBH,MAAAA,IAAAA,CAAKC,MAAMG,SAAY,GAAA,UAAA,CAAA;AAAA,KACzB;AAAA,GACD,CAAA,CAAA;AACH,CAAA,CAAA;AACA,MAAMK,aAAcT,CAA0B,IAAA,KAAA;AAC5C,EAAIA,IAAAA,IAAAA,IAAQA,KAAKC,KAAO,EAAA;AACtBD,IAAAA,IAAAA,CAAKC,MAAMC,KAAQ,GAAA,EAAA,CAAA;AACnBF,IAAAA,IAAAA,CAAKC,MAAME,OAAU,GAAA,EAAA,CAAA;AACrBH,IAAAA,IAAAA,CAAKC,MAAMG,SAAY,GAAA,EAAA,CAAA;AAAA,GACzB;AACF,CAAA,CAAA;AACA,kCAA+B,eAAA,CAAA;AAAA,EAC7BM,IAAM,EAAA,aAAA;AAAA,EACNC,KAAO,EAAA;AAAA,IACLC,OAASC,EAAAA,OAAAA;AAAAA;AAAAA,IAETC,EAAIC,EAAAA,MAAAA;AAAAA,GACN;AAAA,EACAC,MAAML,KAAO,EAAA;AACX,IAAA,OAAO,MAAM;AACX,MAAA,OAAAM,YAAAC,UAAA,EAAA;AAAA,QAAA,eAEmBnB,EAAAA,iBAAAA;AAAAA,QAAiB,SACvBM,EAAAA,YAAAA;AAAAA,QAAY,eACNA,EAAAA,YAAAA;AAAAA,QAAY,cACbI,EAAAA,UAAAA;AAAAA,QAAU,WACdT,CAA0B,IAAA,KAAA;AAClCmB,UAAAA,UAAAA,CAAW,MAAM;AACfpB,YAAAA,iBAAAA,CAAkBC,IAAI,CAAA,CAAA;AAAA,aACrB,EAAE,CAAA,CAAA;AAAA,SACP;AAAA,QAAC,cACaS,EAAAA,UAAAA;AAAAA,OAAU,EAAA;AAAA,QAAAW,SAAAA,MAAA,CAEvBT,KAAMC,CAAAA,OAAAA,GAAOK,YAAA,MAAA,EAAA;AAAA,UAAA,OAAA,EACC,GAAGN,KAAMG,CAAAA,EAAAA,CAAAA,SAAAA,CAAAA;AAAAA,SAAa,EAAA,CAAAG,WAAAI,CAAAA,aAAAA,EAAA,MAAA,IAAA,CAAA,CAAA,CAAA,GAGjC,IAAI,CAAA;AAAA,OAAA,CAAA,CAAA;AAAA,KAGd,CAAA;AAAA,GACF;AACF,CAAC,CAAA;;;;"}