{"version":3,"file":"directive.mjs","sources":["../../../../../../packages/components/loading/src/directive.ts"],"sourcesContent":["import Loading from './index'\n\nimport type { DirectiveBinding } from 'vue'\nimport type { ILoadingInstance } from './loading.type'\n\nconst INSTANCE_NAME = 'ElLoading'\n\nexport interface ElementLoading extends HTMLElement {\n  [INSTANCE_NAME]?: ILoadingInstance\n}\n\nconst createInstance = (el: ElementLoading, binding: DirectiveBinding) => {\n  const textExr = el.getAttribute('element-loading-text')\n  const spinnerExr = el.getAttribute('element-loading-spinner')\n  const svgExr = el.getAttribute('element-loading-svg')\n  const svgViewBoxExr = el.getAttribute('element-loading-svg-view-box')\n  const backgroundExr = el.getAttribute('element-loading-background')\n  const customClassExr = el.getAttribute('element-loading-custom-class')\n  const vm = binding.instance\n  el[INSTANCE_NAME] = Loading({\n    text: (vm && vm[textExr]) || textExr,\n    svg: (vm && vm[svgExr]) || svgExr,\n    svgViewBox: (vm && vm[svgViewBoxExr]) || svgViewBoxExr,\n    spinner: (vm && vm[spinnerExr]) || spinnerExr,\n    background: (vm && vm[backgroundExr]) || backgroundExr,\n    customClass: (vm && vm[customClassExr]) || customClassExr,\n    fullscreen: !!binding.modifiers.fullscreen,\n    target: binding.modifiers.fullscreen ? null : el,\n    body: !!binding.modifiers.body,\n    visible: true,\n    lock: !!binding.modifiers.lock,\n  })\n}\n\nconst vLoading = {\n  mounted(el: ElementLoading, binding: DirectiveBinding) {\n    if (binding.value) {\n      createInstance(el, binding)\n    }\n  },\n  updated(el: ElementLoading, binding: DirectiveBinding) {\n    const instance = el[INSTANCE_NAME]\n    if (binding.oldValue !== binding.value) {\n      if (binding.value) {\n        createInstance(el, binding)\n      } else {\n        instance?.close()\n      }\n    }\n  },\n  unmounted(el: ElementLoading) {\n    el[INSTANCE_NAME]?.close()\n  },\n}\n\nexport default vLoading\n"],"names":[],"mappings":";;AAKA,MAAM,gBAAgB;AAMtB,MAAM,iBAAiB,CAAC,IAAoB,YAA8B;AACxE,QAAM,UAAU,GAAG,aAAa;AAChC,QAAM,aAAa,GAAG,aAAa;AACnC,QAAM,SAAS,GAAG,aAAa;AAC/B,QAAM,gBAAgB,GAAG,aAAa;AACtC,QAAM,gBAAgB,GAAG,aAAa;AACtC,QAAM,iBAAiB,GAAG,aAAa;AACvC,QAAM,KAAK,QAAQ;AACnB,KAAG,iBAAiB,QAAQ;AAAA,IAC1B,MAAO,MAAM,GAAG,YAAa;AAAA,IAC7B,KAAM,MAAM,GAAG,WAAY;AAAA,IAC3B,YAAa,MAAM,GAAG,kBAAmB;AAAA,IACzC,SAAU,MAAM,GAAG,eAAgB;AAAA,IACnC,YAAa,MAAM,GAAG,kBAAmB;AAAA,IACzC,aAAc,MAAM,GAAG,mBAAoB;AAAA,IAC3C,YAAY,CAAC,CAAC,QAAQ,UAAU;AAAA,IAChC,QAAQ,QAAQ,UAAU,aAAa,OAAO;AAAA,IAC9C,MAAM,CAAC,CAAC,QAAQ,UAAU;AAAA,IAC1B,SAAS;AAAA,IACT,MAAM,CAAC,CAAC,QAAQ,UAAU;AAAA;AAAA;MAIxB,WAAW;AAAA,EACf,QAAQ,IAAoB,SAA2B;AACrD,QAAI,QAAQ,OAAO;AACjB,qBAAe,IAAI;AAAA;AAAA;AAAA,EAGvB,QAAQ,IAAoB,SAA2B;AACrD,UAAM,WAAW,GAAG;AACpB,QAAI,QAAQ,aAAa,QAAQ,OAAO;AACtC,UAAI,QAAQ,OAAO;AACjB,uBAAe,IAAI;AAAA,aACd;AACL,6CAAU;AAAA;AAAA;AAAA;AAAA,EAIhB,UAAU,IAAoB;AAlDhC;AAmDI,aAAG,mBAAH,mBAAmB;AAAA;AAAA;;;;"}