{"version":3,"file":"keys-CwytVEYF.mjs","sources":["../src/utils/keys.ts"],"sourcesContent":["import type {ComponentInternalInstance, ComputedRef, InjectionKey, Ref, ShallowRef} from 'vue'\nimport type {TabType} from '../types/Tab'\nimport type {ClassValue} from '../types/AnyValuedAttributes'\nimport type {Numberish, ValidationState} from '../types/CommonTypes'\nimport type {LiteralUnion} from '../types/LiteralUnion'\nimport type {Size} from '../types/Size'\nimport type {RadiusElement} from '../types/RadiusElement'\nimport type {\n  BgColorVariant,\n  ButtonVariant,\n  ColorVariant,\n  TextColorVariant,\n} from '../types/ColorTypes'\nimport type {CheckboxValue} from '../types/CheckboxTypes'\nimport type {RadioValue} from '../types/RadioTypes'\nimport type {BreadcrumbItemRaw} from '../types/BreadcrumbTypes'\nimport type {\n  ControllerKey,\n  ModalOrchestratorCreateOptions,\n  ModalOrchestratorCreateParam,\n  ModalOrchestratorMapValue,\n  PopoverOrchestratorCreateParam,\n  PopoverOrchestratorMapValue,\n  PromiseWithModal,\n  PromiseWithModalBoolean,\n  PromiseWithPopover,\n  PromiseWithToast,\n  ToastOrchestratorArrayValue,\n  ToastOrchestratorCreateOptions,\n  ToastOrchestratorCreateParam,\n  TooltipOrchestratorCreateParam,\n} from '../types/ComponentOrchestratorTypes'\nimport type {BvnComponentProps} from '../types/BootstrapVueOptions'\n\nexport const genericBvnPrefix = 'BootstrapVueNext__'\n\nexport const withBvnPrefix = (value: string, suffix: string = '') => {\n  const suffixWithTrail = `${suffix}___`\n  return `${genericBvnPrefix}ID__${value}__${suffix ? suffixWithTrail : ''}`\n}\n\nconst createBvnInjectionKey = (name: string) => withBvnPrefix(name) as unknown as symbol // Type cast to symbol, these should be static\nconst createBvnPluginInjectionKey = (name: string) =>\n  withBvnPrefix(`${name}__plugin`) as unknown as symbol\n\n// BCarousel\nexport const carouselInjectionKey: InjectionKey<{\n  background: Readonly<Ref<string | undefined>>\n  width: Readonly<Ref<string | undefined>>\n  height: Readonly<Ref<string | undefined>>\n}> = createBvnInjectionKey('carousel')\n\n// BTabs\nexport const tabsInjectionKey: InjectionKey<{\n  lazy: Readonly<Ref<boolean>>\n  card: Readonly<Ref<boolean>>\n  noFade: Readonly<Ref<boolean>>\n  registerTab: (tab: ComputedRef<TabType>) => string\n  unregisterTab: (id: string) => void\n  activateTab: (id: string | undefined) => void\n  activeTabClass: Readonly<Ref<ClassValue>>\n  inactiveTabClass: Readonly<Ref<ClassValue>>\n  tabClass: Readonly<Ref<ClassValue>>\n  activeId: Readonly<Ref<string | undefined>>\n}> = createBvnInjectionKey('tabs')\n\n// BProgress\nexport const progressInjectionKey: InjectionKey<{\n  animated: Readonly<Ref<boolean | undefined>>\n  max: Readonly<Ref<Numberish>>\n  showProgress: Readonly<Ref<boolean | undefined>>\n  showValue: Readonly<Ref<boolean | undefined>>\n  striped: Readonly<Ref<boolean | undefined>>\n}> = createBvnInjectionKey('progress')\n\n// BListGroup\nexport const listGroupInjectionKey: InjectionKey<{\n  numbered: Readonly<Ref<boolean>>\n}> = createBvnInjectionKey('listGroup')\n\n// BAvatarGroup\nexport const avatarGroupInjectionKey: InjectionKey<{\n  overlapScale: Readonly<Ref<number>>\n  size: Readonly<Ref<LiteralUnion<Size, Numberish> | undefined>>\n  square: Readonly<Ref<boolean>>\n  rounded: Readonly<Ref<RadiusElement | boolean>>\n  roundedTop: Readonly<Ref<RadiusElement | boolean | undefined>>\n  roundedBottom: Readonly<Ref<RadiusElement | boolean | undefined>>\n  roundedStart: Readonly<Ref<RadiusElement | boolean | undefined>>\n  roundedEnd: Readonly<Ref<RadiusElement | boolean | undefined>>\n  variant: Readonly<Ref<ColorVariant | null>>\n  bgVariant: Readonly<Ref<BgColorVariant | null>>\n  textVariant: Readonly<Ref<TextColorVariant | null>>\n}> = createBvnInjectionKey('avatarGroup')\n\n// BAccordion\nexport const accordionInjectionKey: InjectionKey<{\n  openItem: Readonly<Ref<string | string[] | undefined>>\n  free: Readonly<Ref<boolean>>\n  initialAnimation: Readonly<Ref<boolean>>\n  lazy: Readonly<Ref<boolean>>\n  unmountLazy: Readonly<Ref<boolean>>\n  setOpenItem: (id: string) => void\n  setCloseItem: (id: string) => void\n  registerAccordionItem: (id: string, el: Readonly<ShallowRef<HTMLElement | null>>) => void\n  unregisterAccordionItem: (id: string) => void\n}> = createBvnInjectionKey('accordion')\n\n// BFormCheckboxGroup\nexport const checkboxGroupKey: InjectionKey<{\n  modelValue: Ref<readonly CheckboxValue[]>\n  switch: Readonly<Ref<boolean>>\n  buttonVariant: Readonly<Ref<ButtonVariant | null>>\n  form: Readonly<Ref<string | undefined>>\n  name: Readonly<Ref<string>>\n  state: Readonly<Ref<ValidationState | undefined>>\n  plain: Readonly<Ref<boolean>>\n  size: Readonly<Ref<Size>>\n  inline: Readonly<Ref<boolean>>\n  reverse: Readonly<Ref<boolean>>\n  required: Readonly<Ref<boolean>>\n  buttons: Readonly<Ref<boolean>>\n  disabled: Readonly<Ref<boolean>>\n}> = createBvnInjectionKey('checkboxGroup')\n\nexport const radioGroupKey: InjectionKey<{\n  modelValue: Ref<RadioValue>\n  buttonVariant: Readonly<Ref<ButtonVariant | null>>\n  form: Readonly<Ref<string | undefined>>\n  name: Readonly<Ref<string>>\n  buttons: Readonly<Ref<boolean>>\n  state: Readonly<Ref<ValidationState | undefined>>\n  plain: Readonly<Ref<boolean>>\n  size: Readonly<Ref<Size>>\n  inline: Readonly<Ref<boolean>>\n  reverse: Readonly<Ref<boolean>>\n  required: Readonly<Ref<boolean>>\n  disabled: Readonly<Ref<boolean>>\n}> = createBvnInjectionKey('radioGroup')\n\n// Collapse\nexport const collapseInjectionKey: InjectionKey<{\n  id?: Readonly<Ref<string>>\n  readonly hide?: () => void\n  readonly show?: () => void\n  readonly toggle?: () => void\n  visible?: Readonly<Ref<boolean>>\n  isNav?: Readonly<Ref<boolean>>\n}> = createBvnInjectionKey('collapse')\n\n// Show/Hide components\nexport type RegisterShowHideFnInput = {\n  id: string\n  component: ComponentInternalInstance\n  value: Ref<boolean>\n  toggle: (resolveOnHide?: boolean) => Promise<boolean | string>\n  show: (resolveOnHide?: boolean) => Promise<boolean | string>\n  hide: (trigger?: string) => Promise<boolean | string>\n  registerTrigger: (trigger: string, el: Element) => void\n  unregisterTrigger: (trigger: string, el: Element, clean: boolean) => void\n}\n\nexport interface RegisterShowHideMapValue {\n  id: string\n  component: ComponentInternalInstance\n  value: Readonly<Ref<boolean>>\n  toggle: (resolveOnHide?: boolean) => Promise<boolean | string | null>\n  show: (resolveOnHide?: boolean) => Promise<boolean | string | null>\n  hide: (trigger?: string, noTraverse?: boolean) => Promise<boolean | string | null>\n  registerTrigger: (trigger: string, el: Element) => void\n  unregisterTrigger: (trigger: string, el: Element, clean: boolean) => void\n}\nexport interface RegisterShowHideValue {\n  register: (input: RegisterShowHideFnInput) => {\n    unregister: () => void\n    updateId: (newId: string, oldId: string) => void\n  }\n  values: Ref<Map<string, RegisterShowHideMapValue>>\n}\nexport const globalShowHideStorageInjectionKey: InjectionKey<RegisterShowHideValue> =\n  createBvnPluginInjectionKey('globalShowHideStorage')\n\nexport const dropdownInjectionKey: InjectionKey<{\n  id?: Readonly<Ref<string>>\n  readonly hide?: () => void\n  readonly show?: () => void\n  readonly toggle?: () => void\n  visible?: Readonly<Ref<boolean>>\n  isNav?: Readonly<Ref<boolean>>\n}> = createBvnInjectionKey('dropdown')\n\nexport const navbarInjectionKey: InjectionKey<{\n  tag?: Readonly<Ref<string>>\n  autoClose?: Readonly<Ref<boolean>>\n}> = createBvnInjectionKey('navbar')\n\nexport const rtlPluginKey: InjectionKey<{\n  isRtl: Ref<boolean>\n  locale: Ref<string | undefined>\n}> = createBvnPluginInjectionKey('rtl')\n\nexport const breadcrumbGlobalIndexKey = `${genericBvnPrefix}global_breadcrumb`\nexport const breadcrumbPluginKey: InjectionKey<{\n  items: Ref<Record<string, BreadcrumbItemRaw[]>>\n  reset: (key?: string) => void\n}> = createBvnPluginInjectionKey('breadcrumbPlugin')\n\nexport const modalManagerPluginKey: InjectionKey<{\n  stack: ComputedRef<ComponentInternalInstance[]>\n  countStack: ComputedRef<number>\n  lastStack: ComputedRef<ComponentInternalInstance | undefined>\n  pushStack: (modal: Readonly<ComponentInternalInstance>) => void\n  removeStack: (modal: Readonly<ComponentInternalInstance>) => void\n  registry: Readonly<Ref<Map<number, ComponentInternalInstance>>>\n  pushRegistry: (modal: Readonly<ComponentInternalInstance>) => void\n  removeRegistry: (modal: Readonly<ComponentInternalInstance>) => void\n}> = createBvnPluginInjectionKey('modalManager')\n\nexport const defaultsKey: InjectionKey<Ref<Partial<BvnComponentProps>>> =\n  createBvnPluginInjectionKey('defaults')\n\nexport const inputGroupKey: InjectionKey<boolean> = createBvnInjectionKey('inputGroup')\nexport const buttonGroupKey: InjectionKey<boolean> = createBvnInjectionKey('buttonGroup')\n\nexport const toastPluginKey: InjectionKey<{\n  toasts: Ref<ToastOrchestratorArrayValue[]>\n  _isAppend: Ref<boolean>\n  _isOrchestratorInstalled: Ref<boolean>\n  create: (\n    obj: ToastOrchestratorCreateParam,\n    options?: ToastOrchestratorCreateOptions\n  ) => PromiseWithToast\n  /**\n   * show\n   * @deprecated\n   */\n  show: (obj: ToastOrchestratorCreateParam) => PromiseWithToast\n}> = createBvnPluginInjectionKey('toast')\n\nexport const modalControllerPluginKey: InjectionKey<{\n  modals: Ref<Map<ControllerKey, ModalOrchestratorMapValue>>\n  _isOrchestratorInstalled: Ref<boolean>\n  create: (\n    obj: ModalOrchestratorCreateParam,\n    options?: ModalOrchestratorCreateOptions\n  ) => PromiseWithModal | PromiseWithModalBoolean\n  /**\n   * show\n   * @deprecated\n   */\n  show: (obj: ModalOrchestratorCreateParam) => PromiseWithModalBoolean\n  /**\n   * show\n   * @deprecated\n   */\n  confirm: (obj: ModalOrchestratorCreateParam) => PromiseWithModalBoolean\n}> = createBvnPluginInjectionKey('modalController')\n\nexport const popoverPluginKey: InjectionKey<{\n  popovers: Ref<Map<ControllerKey, PopoverOrchestratorMapValue>>\n  popover: (obj: PopoverOrchestratorCreateParam) => PromiseWithPopover\n  tooltip: (obj: TooltipOrchestratorCreateParam) => PromiseWithPopover\n  _isOrchestratorInstalled: Ref<boolean>\n}> = createBvnPluginInjectionKey('popover')\n\nexport const formGroupPluginKey: InjectionKey<\n  (id: Ref<string>) => {\n    state: Readonly<Ref<ValidationState | undefined>>\n  }\n> = createBvnInjectionKey('formGroupPlugin')\n"],"names":[],"mappings":"AAkCO,MAAM,mBAAmB;AAEzB,MAAM,gBAAgB,CAAC,OAAe,SAAiB,OAAO;AAC7D,QAAA,kBAAkB,GAAG,MAAM;AACjC,SAAO,GAAG,gBAAgB,OAAO,KAAK,KAAK,SAAS,kBAAkB,EAAE;AAC1E;AAEA,MAAM,wBAAwB,CAAC,SAAiB,cAAc,IAAI;AAClE,MAAM,8BAA8B,CAAC,SACnC,cAAc,GAAG,IAAI,UAAU;AAGpB,MAAA,uBAIR,sBAAsB,UAAU;AAGxB,MAAA,mBAWR,sBAAsB,MAAM;AAGpB,MAAA,uBAMR,sBAAsB,UAAU;AAGxB,MAAA,wBAER,sBAAsB,WAAW;AAGzB,MAAA,0BAYR,sBAAsB,aAAa;AAG3B,MAAA,wBAUR,sBAAsB,WAAW;AAGzB,MAAA,mBAcR,sBAAsB,eAAe;AAE7B,MAAA,gBAaR,sBAAsB,YAAY;AAG1B,MAAA,uBAOR,sBAAsB,UAAU;AA+BxB,MAAA,oCACX,4BAA4B,uBAAuB;AAExC,MAAA,uBAOR,sBAAsB,UAAU;AAExB,MAAA,qBAGR,sBAAsB,QAAQ;AAEtB,MAAA,eAGR,4BAA4B,KAAK;AAEzB,MAAA,2BAA2B,GAAG,gBAAgB;AAC9C,MAAA,sBAGR,4BAA4B,kBAAkB;AAEtC,MAAA,wBASR,4BAA4B,cAAc;AAElC,MAAA,cACX,4BAA4B,UAAU;AAE3B,MAAA,gBAAuC,sBAAsB,YAAY;AACzE,MAAA,iBAAwC,sBAAsB,aAAa;AAE3E,MAAA,iBAaR,4BAA4B,OAAO;AAE3B,MAAA,2BAiBR,4BAA4B,iBAAiB;AAErC,MAAA,mBAKR,4BAA4B,SAAS;AAE7B,MAAA,qBAIT,sBAAsB,iBAAiB;"}