{"version":3,"file":"vue-sanitize.cjs","names":[],"sources":["../src/index.ts"],"sourcesContent":["import sanitizeHtml, { type IOptions } from \"sanitize-html\";\nimport { inject, type App, type InjectionKey, type Plugin } from \"vue\";\n\nexport type SanitizeOptions = IOptions;\nexport type SanitizeFn = (dirty: string, options?: SanitizeOptions) => string;\n\nexport const VueSanitizeKey: InjectionKey<SanitizeFn> = Symbol(\"VueSanitize\");\n\nconst VueSanitize: Plugin<[SanitizeOptions?]> = {\n  install(app: App, defaultOptions?: SanitizeOptions) {\n    const sanitize: SanitizeFn = (dirty, options) =>\n      sanitizeHtml(dirty, options ?? defaultOptions);\n\n    app.config.globalProperties.$sanitize = sanitize;\n    app.provide(VueSanitizeKey, sanitize);\n  },\n};\n\nexport function useSanitize(): SanitizeFn {\n  const sanitize = inject(VueSanitizeKey);\n  if (!sanitize) {\n    throw new Error(\n      \"[vue-sanitize] useSanitize() was called before the plugin was installed. Call app.use(VueSanitize) first.\",\n    );\n  }\n  return sanitize;\n}\n\nexport const defaults = sanitizeHtml.defaults;\n\nexport default VueSanitize;\n\ndeclare module \"vue\" {\n  interface ComponentCustomProperties {\n    $sanitize: SanitizeFn;\n  }\n}\n"],"mappings":"0nBAMA,IAAa,EAA2C,OAAO,aAAa,EAEtE,EAA0C,CAC9C,QAAQ,EAAU,EAAkC,CAClD,IAAM,GAAwB,EAAO,KAAA,EAAA,EAAA,SACtB,EAAO,GAAW,CAAc,EAE/C,EAAI,OAAO,iBAAiB,UAAY,EACxC,EAAI,QAAQ,EAAgB,CAAQ,CACtC,CACF,EAEA,SAAgB,GAA0B,CACxC,IAAM,GAAA,EAAA,EAAA,QAAkB,CAAc,EACtC,GAAI,CAAC,EACH,MAAU,MACR,2GACF,EAEF,OAAO,CACT,CAEA,IAAa,EAAW,EAAA,QAAa"}