{"version":3,"file":"index.mjs","sources":["../../../packages/control/index.ts"],"sourcesContent":["import { defineComponent, h, onMounted, onUnmounted } from \"vue\";\nimport { useEvent } from \"~/use/event\";\nimport { useMapRoot } from \"~/use/mapRoot\";\nimport { EVENTS, NATIVE_EVENTS, PROPS, useInit, useWatch } from \"./use\";\n\nexport const TdtControl = defineComponent({\n  name: \"TdtControl\",\n  props: PROPS,\n  emits: EVENTS,\n  setup(props, { emit, slots }) {\n    let controlRef = h(\"div\");\n\n    onMounted(async () => {\n      onUnmounted(() => tdtComponent && tdtMap?.removeControl(tdtComponent));\n\n      const tdtMap = await useMapRoot();\n      const tdtComponent = useInit(props);\n      tdtComponent.onAdd = () => controlRef.el;\n      tdtComponent.onRemove = () => {};\n      tdtMap.addControl(tdtComponent);\n      useEvent({ events: NATIVE_EVENTS, emit, instance: tdtComponent });\n      useWatch({ props, instance: tdtComponent });\n      emit(\"init\", tdtComponent);\n    });\n\n    return () => {\n      controlRef = h(\"div\", { class: \"tdt-control-custom\" }, slots.default?.());\n      return controlRef;\n    };\n  }\n});\n\nexport type TdtControlInstance = InstanceType<typeof TdtControl>;\n"],"names":["TdtControl","defineComponent","PROPS","EVENTS","props","emit","slots","controlRef","h","onMounted","onUnmounted","tdtComponent","tdtMap","useMapRoot","useInit","useEvent","NATIVE_EVENTS","useWatch","_a"],"mappings":";;;;;;AAKO,MAAMA,IAAaC,EAAgB;AAAA,EACxC,MAAM;AAAA,EACN,OAAOC;AAAA,EACP,OAAOC;AAAA,EACP,MAAMC,GAAO,EAAE,MAAAC,GAAM,OAAAC,KAAS;AACxB,QAAAC,IAAaC,EAAE,KAAK;AAExB,WAAAC,EAAU,YAAY;AACpB,MAAAC,EAAY,MAAMC,MAAgBC,KAAA,gBAAAA,EAAQ,cAAcD,GAAa;AAE/D,YAAAC,IAAS,MAAMC,EAAW,GAC1BF,IAAeG,EAAQV,CAAK;AACrB,MAAAO,EAAA,QAAQ,MAAMJ,EAAW,IACtCI,EAAa,WAAW,MAAM;AAAA,MAAC,GAC/BC,EAAO,WAAWD,CAAY,GAC9BI,EAAS,EAAE,QAAQC,GAAe,MAAAX,GAAM,UAAUM,GAAc,GAChEM,EAAS,EAAE,OAAAb,GAAO,UAAUO,EAAA,CAAc,GAC1CN,EAAK,QAAQM,CAAY;AAAA,IAAA,CAC1B,GAEM,MAAM;;AACE,aAAAJ,IAAAC,EAAE,OAAO,EAAE,OAAO,yBAAwBU,IAAAZ,EAAM,YAAN,gBAAAY,EAAA,KAAAZ,EAAiB,GACjEC;AAAA,IACT;AAAA,EAAA;AAEJ,CAAC;"}