{"version":3,"file":"index.mjs","sources":["../../../../src/plugins/showHide/index.ts"],"sourcesContent":["import {type Plugin, readonly, ref, type Ref} from 'vue'\nimport {\n  globalShowHideStorageInjectionKey,\n  type RegisterShowHideFnInput,\n  type RegisterShowHideMapValue,\n} from '../../utils/keys'\n\nexport const showHidePlugin: Plugin = {\n  install(app) {\n    const values: Ref<Map<string, RegisterShowHideMapValue>> = ref(new Map())\n\n    const register = ({\n      id,\n      component,\n      value,\n      toggle,\n      show,\n      hide,\n      registerTrigger,\n      unregisterTrigger,\n    }: RegisterShowHideFnInput) => {\n      values.value.set(id, {\n        id,\n        component,\n        value: readonly(value),\n        toggle,\n        show,\n        hide,\n        registerTrigger,\n        unregisterTrigger,\n      })\n      return {\n        unregister() {\n          // delete values.value[id]\n          values.value.delete(id)\n        },\n        updateId(newId: string, oldId: string) {\n          const existingValue = values.value.get(oldId)\n          if (existingValue) {\n            values.value.set(newId, {...existingValue, id: newId})\n            values.value.delete(oldId)\n          }\n        },\n      }\n    }\n\n    app.provide(globalShowHideStorageInjectionKey, {register, values})\n  },\n}\n"],"names":[],"mappings":";;AAOO,MAAM,iBAAyB;AAAA,EACpC,QAAQ,KAAK;AACX,UAAM,SAAqD,IAAQ,oBAAA,KAAK;AAExE,UAAM,WAAW,CAAC;AAAA,MAChB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,MAC6B;AACtB,aAAA,MAAM,IAAI,IAAI;AAAA,QACnB;AAAA,QACA;AAAA,QACA,OAAO,SAAS,KAAK;AAAA,QACrB;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAAA,CACD;AACM,aAAA;AAAA,QACL,aAAa;AAEJ,iBAAA,MAAM,OAAO,EAAE;AAAA,QACxB;AAAA,QACA,SAAS,OAAe,OAAe;AACrC,gBAAM,gBAAgB,OAAO,MAAM,IAAI,KAAK;AAC5C,cAAI,eAAe;AACV,mBAAA,MAAM,IAAI,OAAO,EAAC,GAAG,eAAe,IAAI,OAAM;AAC9C,mBAAA,MAAM,OAAO,KAAK;AAAA,UAAA;AAAA,QAC3B;AAAA,MAEJ;AAAA,IACF;AAEA,QAAI,QAAQ,mCAAmC,EAAC,UAAU,QAAO;AAAA,EAAA;AAErE;"}