{"version":3,"file":"context.cjs","sources":["../../../../../../packages/components/anchor/src/context.ts"],"sourcesContent":["import type { ComputedRef, InjectionKey, Ref } from 'vue';\nimport type { AnchorDirection } from './interface';\nimport { computed, inject, provide } from 'vue';\n\nexport interface AnchorContext {\n  registerLink: (link: string) => void\n  unregisterLink: (link: string) => void\n  activeLink: Ref<string>\n  scrollTo: (link: string) => void\n  handleClick: (e: Event, info: { title: any, href: string }) => void\n  direction: ComputedRef<AnchorDirection>\n}\n\nfunction noop(..._any: any[]): any {}\n\nexport const AnchorContextKey: InjectionKey<AnchorContext> = Symbol('anchorContextKey');\n\nfunction useProvideAnchor(state: AnchorContext) {\n  provide(AnchorContextKey, state);\n}\n\nfunction useInjectAnchor() {\n  return inject(AnchorContextKey, {\n    registerLink: noop,\n    unregisterLink: noop,\n    scrollTo: noop,\n    activeLink: computed(() => ''),\n    handleClick: noop,\n    direction: computed(() => 'vertical'),\n  } as AnchorContext);\n}\n\nexport { useInjectAnchor, useProvideAnchor };\nexport default useProvideAnchor;\n"],"names":["provide","inject","computed"],"mappings":";;;;;;AAaA,SAAS,QAAQ,IAAkB,EAAA;AAAC,CAAA;AAEvB,MAAA,gBAAA,GAAgD,OAAO,kBAAkB,EAAA;AAEtF,SAAS,iBAAiB,KAAsB,EAAA;AAC9C,EAAAA,WAAA,CAAQ,kBAAkB,KAAK,CAAA,CAAA;AACjC,CAAA;AAEA,SAAS,eAAkB,GAAA;AACzB,EAAA,OAAOC,WAAO,gBAAkB,EAAA;AAAA,IAC9B,YAAc,EAAA,IAAA;AAAA,IACd,cAAgB,EAAA,IAAA;AAAA,IAChB,QAAU,EAAA,IAAA;AAAA,IACV,UAAA,EAAYC,YAAS,CAAA,MAAM,EAAE,CAAA;AAAA,IAC7B,WAAa,EAAA,IAAA;AAAA,IACb,SAAA,EAAWA,YAAS,CAAA,MAAM,UAAU,CAAA;AAAA,GACpB,CAAA,CAAA;AACpB;;;;;;;"}