@vuecs/navigation 1.0.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -57,7 +57,7 @@ const primaryItems: NavigationItem[] = [
57
57
  }
58
58
  ]
59
59
 
60
- export const navigationProvider = createNavigationProvider({
60
+ export const provider = createNavigationProvider({
61
61
  async getItems(tier: number, itemsActive: NavigationItem[]) {
62
62
  // Return elements for a specific tier.
63
63
  // The context provides the current active elements for
@@ -100,12 +100,12 @@ import {
100
100
  } from '@vuecs/navigation';
101
101
  import { createApp } from 'vue';
102
102
  import { createRouter, createWebHistory } from 'vue-router';
103
- import { navigationProvider } from './module';
103
+ import { provider } from './module';
104
104
 
105
105
  const app = createApp();
106
106
 
107
107
  app.use(install({
108
- navigationProvider
108
+ provider
109
109
  }));
110
110
 
111
111
  const router = createRouter({
package/core/index.cjs CHANGED
@@ -1 +1 @@
1
- module.exports = require('@vue-layout/core');
1
+ module.exports = require('@vuecs/core');
package/core/index.mjs CHANGED
@@ -1 +1 @@
1
- export * from '@vue-layout/core';
1
+ export * from '@vuecs/core';
package/dist/index.cjs CHANGED
@@ -567,7 +567,10 @@ function install(instance, options) {
567
567
  setNavigationProvider(options.provider);
568
568
  }
569
569
  setupStore(instance);
570
- core.applyPluginBaseOptions(instance, options);
570
+ const storeManager = core.installStoreManager(instance);
571
+ if (options.storeManager) {
572
+ core.applyStoreManagerOptions(storeManager, options.storeManager);
573
+ }
571
574
  Object.entries({
572
575
  VCNavItem,
573
576
  VCNavItems
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../src/provider/module.ts","../src/store/module.ts","../src/core/match.ts","../src/core/expansion.ts","../src/core/reset.ts","../src/core/tier.ts","../src/core/replace.ts","../src/core/refresh.ts","../src/core/build.ts","../src/core/flatten.ts","../src/core/select.ts","../src/core/toggle.ts","../src/utils/url.ts","../src/constants.ts","../src/components/item.ts","../src/components/items.ts","../src/module.ts","../src/index.ts"],"sourcesContent":["import type { NavigationProvider } from './type';\n\nlet instance : NavigationProvider | undefined;\n\nexport function useNavigationProvider(module?: NavigationProvider) : NavigationProvider {\n if (typeof instance !== 'undefined') {\n return instance;\n }\n\n if (typeof module === 'undefined') {\n throw new Error('A Navigation Provider must be set!');\n }\n\n instance = module;\n\n return instance;\n}\n\nexport function setNavigationProvider(module: NavigationProvider) {\n instance = module;\n}\n\nexport function createNavigationProvider(input: NavigationProvider) : NavigationProvider {\n return input;\n}\n","/* eslint-disable vue/no-ref-as-operand */\nimport type { App } from 'vue';\nimport {\n hasInjectionContext, inject, provide, ref,\n} from 'vue';\nimport type { NavigationStore } from './type';\n\nexport const StoreSymbol = Symbol.for('VLNavigationStore');\n\nexport function isStoreInjected() {\n if (!hasInjectionContext()) {\n return false;\n }\n\n const instance = inject(StoreSymbol);\n return !!instance;\n}\n\nexport function setupStore(app?: App) {\n const store : NavigationStore = {\n items: ref([]),\n itemsActive: ref([]),\n };\n\n if (typeof app === 'undefined') {\n if (isStoreInjected()) {\n return;\n }\n\n provide(StoreSymbol, store);\n return;\n }\n\n if (\n app._context &&\n app._context.provides &&\n app._context.provides[StoreSymbol]\n ) {\n return;\n }\n\n app.provide(StoreSymbol, store);\n}\n\nexport function injectStore() : NavigationStore {\n const instance = inject(StoreSymbol);\n if (!instance) {\n throw new Error('The Store is not set.');\n }\n\n return instance as NavigationStore;\n}\n","import type { NavigationItem } from '../type';\n\nexport function isNavigationItemMatch(\n one?: NavigationItem,\n two?: NavigationItem,\n): boolean {\n if (!one || !two) {\n return false;\n }\n\n if (\n one.id &&\n two.id &&\n one.id === two.id\n ) {\n return true;\n }\n\n if (\n one.name &&\n two.name &&\n one.name === two.name\n ) {\n return true;\n }\n\n if (\n one.url &&\n two.url &&\n one.url === two.url\n ) {\n return true;\n }\n\n if (\n one.children &&\n two.children &&\n one.children.length === two.children.length\n ) {\n for (let i = 0; i < one.children.length; i++) {\n if (!isNavigationItemMatch(one.children[i], two.children[i])) {\n return false;\n }\n }\n\n return true;\n }\n\n return false;\n}\n","import type { NavigationItem } from '../type';\nimport { isNavigationItemMatch } from './match';\n\n// --------------------------------------------------\n\nexport function setNavigationExpansion(\n items: NavigationItem[],\n item: NavigationItem,\n parentMatch = false,\n) : { items: NavigationItem[], match: boolean} {\n let matchInIteration = false;\n\n for (let i = 0; i < items.length; i++) {\n const isMatch = isNavigationItemMatch(items[i], item);\n let isChildMatch = false;\n\n const { children } = items[i];\n\n if (typeof children !== 'undefined') {\n const { items: childItems, match: childMatch } = setNavigationExpansion(children, item, isMatch);\n items[i].children = childItems;\n isChildMatch = childMatch;\n }\n\n if (isMatch) {\n items[i].active = true;\n }\n\n if (isMatch || isChildMatch) {\n items[i].display = true;\n items[i].displayChildren = true;\n }\n\n if (parentMatch) {\n items[i].display = true;\n }\n\n if (!matchInIteration) {\n matchInIteration = isMatch || isChildMatch;\n }\n }\n\n if (matchInIteration) {\n for (let i = 0; i < items.length; i++) {\n items[i].display = true;\n }\n }\n\n return { items, match: matchInIteration };\n}\n","import type { NavigationItem } from '../type';\n\nexport function resetNavigationItem(\n items: NavigationItem[],\n root = true,\n) {\n for (let i = 0; i < items.length; i++) {\n items[i].display = root;\n items[i].displayChildren = false;\n items[i].active = false;\n\n const { children } = items[i];\n\n if (typeof children !== 'undefined') {\n items[i].children = resetNavigationItem(children, false);\n }\n }\n\n return items;\n}\n","import type { MaybeRef } from 'vue';\nimport { isRef } from 'vue';\nimport type { NavigationItem } from '../type';\n\nexport function findNavigationItemsForTier(\n items: NavigationItem[],\n tier: number,\n) : NavigationItem[] {\n const filterFn = (\n component: NavigationItem,\n ) => typeof component.tier !== 'undefined' && component.tier === tier;\n\n return items.filter(filterFn);\n}\n\nexport function findNavigationItemForTier(\n items: NavigationItem[],\n tier: number,\n) : NavigationItem | undefined {\n const data = findNavigationItemsForTier(items, tier);\n if (data.length >= 1) {\n return data[0];\n }\n\n return undefined;\n}\n\nexport function setTierForNavigationItems(\n items: MaybeRef<NavigationItem[]>,\n tier: number,\n) {\n const mapFn = (component: NavigationItem) => {\n component.tier = tier;\n return component;\n };\n\n if (isRef(items)) {\n return items.value.map(mapFn);\n }\n\n return items.map(mapFn);\n}\n\nexport function removeTierFromNavigationItems(\n items: MaybeRef<NavigationItem[]>,\n tier: number,\n) {\n const filterFn = (items: NavigationItem) => typeof items.tier === 'undefined' || items.tier !== tier;\n if (isRef(items)) {\n return items.value.filter(filterFn);\n }\n\n return items.filter(filterFn);\n}\n","import type { MaybeRef } from 'vue';\nimport type { NavigationStore } from '../store';\nimport type { NavigationItem } from '../type';\nimport { removeTierFromNavigationItems, setTierForNavigationItems } from './tier';\n\nexport function replaceNavigationTierItemActive(\n store: NavigationStore,\n tier: number,\n item: NavigationItem | undefined,\n) {\n const items = removeTierFromNavigationItems(store.itemsActive.value, tier);\n\n if (item) {\n item.tier = tier;\n\n store.itemsActive.value = [\n ...items,\n item,\n ];\n } else {\n store.itemsActive.value = items;\n }\n}\n\nexport function replaceNavigationTierItems(\n store: NavigationStore,\n tier: number,\n items: MaybeRef<NavigationItem[]>,\n) {\n const componentsExisting = removeTierFromNavigationItems(store.items.value, tier);\n\n store.items.value = [\n ...componentsExisting,\n ...setTierForNavigationItems(items, tier),\n ];\n}\n","import type { NavigationStore } from '../store';\nimport { setNavigationExpansion } from './expansion';\nimport { resetNavigationItem } from './reset';\nimport { replaceNavigationTierItems } from './replace';\nimport { findNavigationItemForTier, findNavigationItemsForTier } from './tier';\n\nexport function refreshNavigationTierItems(store: NavigationStore, tier: number) {\n const components = resetNavigationItem(findNavigationItemsForTier(store.items.value, tier));\n\n const component = findNavigationItemForTier(store.itemsActive.value, tier);\n if (component) {\n const { items } = setNavigationExpansion(components, component);\n replaceNavigationTierItems(store, tier, items);\n return;\n }\n\n replaceNavigationTierItems(store, tier, components);\n}\n","import { useNavigationProvider } from '../provider';\nimport type { NavigationStore } from '../store';\nimport type { NavigationItem } from '../type';\nimport { refreshNavigationTierItems } from './refresh';\nimport { replaceNavigationTierItems } from './replace';\nimport { findNavigationItemForTier } from './tier';\n\nexport async function buildNavigationForTier(\n store: NavigationStore,\n tier: number,\n itemsActive?: NavigationItem[],\n): Promise<boolean> {\n if (\n typeof itemsActive === 'undefined' ||\n itemsActive.length === 0\n ) {\n let tierStartIndex = 0;\n const tierEndIndex = tier;\n\n itemsActive = [];\n\n while (tierStartIndex <= tierEndIndex) {\n const component = findNavigationItemForTier(store.itemsActive.value, tierStartIndex);\n if (!component) {\n break;\n }\n\n itemsActive.push(component);\n\n tierStartIndex++;\n }\n }\n\n const items = await useNavigationProvider()\n .getItems(\n tier,\n itemsActive,\n );\n\n if (typeof items === 'undefined') {\n return false;\n }\n\n replaceNavigationTierItems(store, tier, items);\n refreshNavigationTierItems(store, tier);\n\n return true;\n}\n","import type { NavigationItem } from '../type';\n\nexport function flattenNestedNavigationItems(\n items: NavigationItem[],\n) : NavigationItem[] {\n const output : NavigationItem[] = [];\n\n for (let i = 0; i < items.length; i++) {\n const { children, ...data } = items[i];\n\n output.push(data);\n\n if (\n children &&\n children.length > 0\n ) {\n output.push(...flattenNestedNavigationItems([...children]));\n }\n }\n\n return output;\n}\n","import type { NavigationStore } from '../store';\nimport type { NavigationItem } from '../type';\nimport { buildNavigationForTier } from './build';\nimport { isNavigationItemMatch } from './match';\nimport { refreshNavigationTierItems } from './refresh';\nimport { replaceNavigationTierItemActive } from './replace';\nimport { findNavigationItemForTier } from './tier';\n\nexport async function selectNavigationTierItem(\n store: NavigationStore,\n tier: number,\n component: NavigationItem,\n) {\n const isMatch = isNavigationItemMatch(\n findNavigationItemForTier(store.itemsActive.value, tier),\n component,\n );\n\n if (isMatch) {\n return;\n }\n\n replaceNavigationTierItemActive(store, tier, component);\n refreshNavigationTierItems(store, tier);\n\n tier++;\n\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const built = await buildNavigationForTier(store, tier);\n if (!built) {\n break;\n }\n\n tier++;\n }\n}\n","import type { NavigationStore } from '../store';\nimport type { NavigationItem } from '../type';\nimport { isNavigationItemMatch } from './match';\nimport { refreshNavigationTierItems } from './refresh';\nimport { replaceNavigationTierItemActive } from './replace';\nimport { findNavigationItemForTier } from './tier';\n\nexport function toggleNavigation(\n store: NavigationStore,\n tier: number,\n component: NavigationItem,\n) {\n const isMatch = component.displayChildren || isNavigationItemMatch(\n findNavigationItemForTier(store.itemsActive.value, tier),\n component,\n );\n\n if (isMatch) {\n replaceNavigationTierItemActive(store, tier, undefined);\n } else {\n replaceNavigationTierItemActive(store, tier, component);\n }\n\n refreshNavigationTierItems(store, tier);\n}\n","export function isAbsoluteURL(str: string): boolean {\n return str.substring(0, 7) === 'http://' ||\n str.substring(0, 8) === 'https://';\n}\n","export enum SlotName {\n ITEM = 'item',\n SEPARATOR = 'separator',\n LINK = 'link',\n SUB = 'sub',\n SUB_TITLE = 'sub-title',\n SUB_ITEMS = 'sub-items',\n}\n\nexport enum ElementType {\n LINK = 'link',\n SEPARATOR = 'separator',\n}\n","import { hasNormalizedSlot, normalizeSlot } from '@vuecs/core';\nimport type { LinkProperties } from '@vuecs/link';\nimport { VCLink } from '@vuecs/link';\nimport type { PropType, Ref, VNodeChild } from 'vue';\nimport {\n defineComponent,\n h,\n resolveComponent,\n toRef,\n} from 'vue';\nimport {\n injectStore,\n} from '../store';\nimport type { NavigationItem } from '../type';\nimport {\n selectNavigationTierItem,\n toggleNavigation,\n} from '../core';\nimport { isAbsoluteURL } from '../utils';\nimport { ElementType, SlotName } from '../constants';\n\nexport const VCNavItem = defineComponent({\n props: {\n tier: {\n type: Number,\n default: 0,\n },\n component: {\n type: Object as PropType<NavigationItem>,\n required: true,\n },\n },\n setup(props, { slots }) {\n const store = injectStore();\n const component = toRef(props, 'component') as Ref<NavigationItem>;\n\n const selectComponent = async (value: NavigationItem) => {\n await selectNavigationTierItem(store, props.tier, value);\n };\n\n const toggleComponentExpansion = async (\n value: NavigationItem,\n ) => toggleNavigation(store, props.tier, value);\n\n return () => {\n const buildItem = () : VNodeChild => {\n let item : VNodeChild;\n\n switch (component.value.type) {\n case ElementType.SEPARATOR: {\n const hasSlot = hasNormalizedSlot(SlotName.SEPARATOR, slots);\n if (hasSlot) {\n item = normalizeSlot(SlotName.SEPARATOR, {\n component: component.value,\n }, slots);\n } else {\n item = h('div', {\n class: 'nav-separator',\n }, component.value.name);\n }\n break;\n }\n default: {\n if (typeof component.value.children === 'undefined') {\n const hasSlot = hasNormalizedSlot(SlotName.LINK, slots);\n if (hasSlot) {\n item = normalizeSlot(SlotName.LINK, {\n component: component.value,\n selectComponent,\n isActive: component.value.active,\n }, slots);\n } else {\n const linkProps : LinkProperties = {\n active: component.value.active,\n disabled: false,\n prefetch: true,\n };\n\n if (component.value.url) {\n if (\n isAbsoluteURL(component.value.url) ||\n component.value.url.startsWith('#')\n ) {\n linkProps.href = component.value.url;\n if (component.value.urlTarget) {\n linkProps.target = component.value.urlTarget;\n }\n } else {\n linkProps.to = component.value.url;\n }\n }\n\n item = h(VCLink, {\n class: [\n 'nav-link',\n {\n 'root-link': component.value.root,\n },\n ],\n ...linkProps,\n onClicked() {\n if (!component.value.url) {\n return selectComponent.call(null, component.value);\n }\n\n return undefined;\n },\n onClick() {\n return selectComponent.call(null, component.value);\n },\n }, {\n default: () => [\n ...(component.value.icon ? [h('i', { class: component.value.icon })] : []),\n h('span', { class: 'nav-link-text' }, [component.value.name]),\n ],\n });\n }\n } else if (hasNormalizedSlot(SlotName.SUB, slots)) {\n item = normalizeSlot(SlotName.SUB, {\n component: component.value,\n selectComponent,\n toggleComponentExpansion,\n }, slots);\n } else {\n let title : VNodeChild;\n if (hasNormalizedSlot(SlotName.SUB_TITLE, slots)) {\n title = normalizeSlot(SlotName.SUB_TITLE, {\n component: component.value,\n selectComponent,\n toggleComponentExpansion,\n });\n } else {\n title = h('div', {\n class: 'nav-sub-title',\n onClick($event: any) {\n $event.preventDefault();\n\n return toggleComponentExpansion.call(null, component.value);\n },\n }, [[\n ...(component.value.icon ? [h('i', { class: component.value.icon })] : []),\n h('span', { class: 'nav-link-text' }, [component.value.name]),\n ]]);\n }\n\n let items : VNodeChild;\n\n if (hasNormalizedSlot(SlotName.SUB_ITEMS, slots)) {\n items = normalizeSlot(SlotName.SUB_ITEMS, {\n component: component.value,\n selectComponent,\n toggleComponentExpansion,\n });\n } else if (component.value.displayChildren) {\n const navigationComponents = resolveComponent('VCNavItems');\n items = h(navigationComponents, {\n class: 'list-unstyled nav-sub-items',\n tier: props.tier,\n entities: component.value.children,\n });\n }\n\n item = [\n title,\n items,\n ];\n }\n break;\n }\n }\n\n return item;\n };\n\n return h('div', {\n class: [\n 'nav-item',\n {\n active: component.value.active || component.value.displayChildren,\n },\n ],\n }, [\n buildItem(),\n ]);\n };\n },\n});\n","import { hasNormalizedSlot, normalizeSlot } from '@vuecs/core';\nimport type { PropType, VNode, VNodeChild } from 'vue';\nimport { computed, defineComponent, h } from 'vue';\nimport { SlotName } from '../constants';\nimport { injectStore } from '../store';\nimport type { NavigationItem } from '../type';\nimport { findNavigationItemsForTier } from '../core';\nimport { VCNavItem } from './item';\n\nexport const VCNavItems = defineComponent({\n props: {\n tier: {\n type: Number,\n default: 0,\n },\n entities: {\n type: Array as PropType<NavigationItem[]>,\n default: undefined,\n },\n },\n setup(props, { slots }) {\n const store = injectStore();\n\n const items = computed(() => {\n if (typeof props.entities !== 'undefined') {\n return props.entities;\n }\n\n return findNavigationItemsForTier(store.items.value, props.tier);\n });\n\n const buildChild = (context: {\n tier?: number,\n component: NavigationItem\n }) : VNodeChild => {\n if (hasNormalizedSlot(SlotName.ITEM, slots)) {\n return normalizeSlot(SlotName.ITEM, context, slots);\n }\n\n return h(VCNavItem, context);\n };\n\n const buildChildren = () : VNodeChild => {\n const entities : VNode[] = [];\n\n if (items.value) {\n for (let i = 0; i < items.value.length; i++) {\n if (items.value[i].display) {\n entities.push(h(\n 'li',\n {\n key: i,\n },\n [\n buildChild({\n tier: props.tier,\n component: items.value[i],\n }),\n ],\n ));\n }\n }\n }\n\n return entities;\n };\n\n return () => h('ul', {\n class: 'nav-items',\n }, [buildChildren()]);\n },\n});\n","import {\n buildNavigationForTier,\n findNavigationItemForTier,\n isNavigationItemMatch,\n replaceNavigationTierItemActive,\n setTierForNavigationItems,\n} from './core';\nimport { useNavigationProvider } from './provider';\nimport type { NavigationBuildContext } from './store';\nimport { injectStore } from './store';\nimport type { NavigationItem } from './type';\n\nexport async function buildNavigation(\n context: NavigationBuildContext = {},\n): Promise<void> {\n const store = injectStore();\n const navigationProvider = useNavigationProvider();\n\n let itemsActive: NavigationItem[] = [];\n\n if (typeof context.itemsActive !== 'undefined') {\n itemsActive = context.itemsActive;\n } else if (context.route) {\n if (typeof navigationProvider.getItemsActiveByRoute !== 'undefined') {\n itemsActive = await navigationProvider.getItemsActiveByRoute(context.route);\n } else if (typeof navigationProvider.getItemsActiveByURL !== 'undefined') {\n itemsActive = await navigationProvider.getItemsActiveByURL(context.route.fullPath);\n }\n } else if (\n context.url &&\n typeof navigationProvider.getItemsActiveByURL !== 'undefined'\n ) {\n itemsActive = await navigationProvider.getItemsActiveByURL(context.url);\n }\n\n if (itemsActive.length > 0) {\n for (let i = 0; i < itemsActive.length; i++) {\n if (typeof itemsActive[i].tier === 'undefined') {\n itemsActive[i].tier = i;\n }\n }\n }\n\n let tierIndex = 0;\n\n let url: string | undefined;\n if (typeof context.url === 'string') {\n url = context.url;\n } else if (typeof context.route !== 'undefined') {\n url = context.route.fullPath;\n }\n\n // eslint-disable-next-line no-constant-condition\n while (true) {\n let items = await navigationProvider\n .getItems(tierIndex, itemsActive);\n\n if (!items || items.length === 0) {\n break;\n }\n\n // ensure tier property\n items = setTierForNavigationItems(items, tierIndex);\n\n let currentItem = findNavigationItemForTier(itemsActive, tierIndex);\n\n if (!currentItem) {\n if (url) {\n const urlMatches = items.filter(\n (item) => isNavigationItemMatch(item, { url }),\n );\n if (urlMatches.length > 0) {\n [currentItem] = urlMatches;\n }\n }\n\n if (!currentItem) {\n const defaultItem = items\n .filter((item) => item.default);\n if (defaultItem.length > 0) {\n currentItem = defaultItem;\n } else {\n [currentItem] = items;\n }\n }\n\n currentItem.tier = tierIndex;\n itemsActive.push(currentItem);\n }\n\n if (!currentItem) {\n continue;\n }\n\n replaceNavigationTierItemActive(store, tierIndex, currentItem);\n\n await buildNavigationForTier(store, tierIndex, itemsActive);\n\n tierIndex++;\n }\n}\n","import { applyPluginBaseOptions } from '@vuecs/core';\n\nimport type { App, Plugin } from 'vue';\n\nimport './vue';\n\nimport { setNavigationProvider } from './provider';\nimport { setupStore } from './store';\nimport {\n VCNavItem,\n VCNavItems,\n} from './components';\nimport type { Options } from './type';\n\nexport * from './components';\nexport * from './provider';\nexport * from './module';\nexport * from './type';\nexport * from './core/flatten';\n\nexport function install(instance: App, options: Options) : void {\n if (options.provider) {\n setNavigationProvider(options.provider);\n }\n\n setupStore(instance);\n\n applyPluginBaseOptions(instance, options);\n\n Object.entries({\n VCNavItem,\n VCNavItems,\n }).forEach(([componentName, component]) => {\n instance.component(componentName, component);\n });\n}\n\nexport default {\n install,\n} satisfies Plugin<Options>;\nexport { buildNavigationForTier } from './core';\n"],"names":["instance","useNavigationProvider","module","Error","setNavigationProvider","createNavigationProvider","input","StoreSymbol","Symbol","for","isStoreInjected","hasInjectionContext","inject","setupStore","app","store","items","ref","itemsActive","provide","_context","provides","injectStore","isNavigationItemMatch","one","two","id","name","url","children","length","i","setNavigationExpansion","item","parentMatch","matchInIteration","isMatch","isChildMatch","childItems","match","childMatch","active","display","displayChildren","resetNavigationItem","root","findNavigationItemsForTier","tier","filterFn","component","filter","findNavigationItemForTier","data","undefined","setTierForNavigationItems","mapFn","isRef","value","map","removeTierFromNavigationItems","replaceNavigationTierItemActive","replaceNavigationTierItems","componentsExisting","refreshNavigationTierItems","components","buildNavigationForTier","tierStartIndex","tierEndIndex","push","getItems","flattenNestedNavigationItems","output","selectNavigationTierItem","built","toggleNavigation","isAbsoluteURL","str","substring","SlotName","ElementType","VCNavItem","defineComponent","props","type","Number","default","Object","required","setup","slots","toRef","selectComponent","toggleComponentExpansion","buildItem","SEPARATOR","hasSlot","hasNormalizedSlot","normalizeSlot","h","class","LINK","isActive","linkProps","disabled","prefetch","startsWith","href","urlTarget","target","to","VCLink","onClicked","call","onClick","icon","SUB","title","SUB_TITLE","$event","preventDefault","SUB_ITEMS","navigationComponents","resolveComponent","entities","VCNavItems","Array","computed","buildChild","context","ITEM","buildChildren","key","buildNavigation","navigationProvider","route","getItemsActiveByRoute","getItemsActiveByURL","fullPath","tierIndex","currentItem","urlMatches","defaultItem","install","options","provider","applyPluginBaseOptions","entries","forEach","componentName"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../src/provider/module.ts","../src/store/module.ts","../src/core/match.ts","../src/core/expansion.ts","../src/core/reset.ts","../src/core/tier.ts","../src/core/replace.ts","../src/core/refresh.ts","../src/core/build.ts","../src/core/flatten.ts","../src/core/select.ts","../src/core/toggle.ts","../src/utils/url.ts","../src/constants.ts","../src/components/item.ts","../src/components/items.ts","../src/module.ts","../src/index.ts"],"sourcesContent":["import type { NavigationProvider } from './type';\n\nlet instance : NavigationProvider | undefined;\n\nexport function useNavigationProvider(module?: NavigationProvider) : NavigationProvider {\n if (typeof instance !== 'undefined') {\n return instance;\n }\n\n if (typeof module === 'undefined') {\n throw new Error('A Navigation Provider must be set!');\n }\n\n instance = module;\n\n return instance;\n}\n\nexport function setNavigationProvider(module: NavigationProvider) {\n instance = module;\n}\n\nexport function createNavigationProvider(input: NavigationProvider) : NavigationProvider {\n return input;\n}\n","/* eslint-disable vue/no-ref-as-operand */\nimport type { App } from 'vue';\nimport {\n hasInjectionContext, inject, provide, ref,\n} from 'vue';\nimport type { NavigationStore } from './type';\n\nexport const StoreSymbol = Symbol.for('VLNavigationStore');\n\nexport function isStoreInjected() {\n if (!hasInjectionContext()) {\n return false;\n }\n\n const instance = inject(StoreSymbol);\n return !!instance;\n}\n\nexport function setupStore(app?: App) {\n const store : NavigationStore = {\n items: ref([]),\n itemsActive: ref([]),\n };\n\n if (typeof app === 'undefined') {\n if (isStoreInjected()) {\n return;\n }\n\n provide(StoreSymbol, store);\n return;\n }\n\n if (\n app._context &&\n app._context.provides &&\n app._context.provides[StoreSymbol]\n ) {\n return;\n }\n\n app.provide(StoreSymbol, store);\n}\n\nexport function injectStore() : NavigationStore {\n const instance = inject(StoreSymbol);\n if (!instance) {\n throw new Error('The Store is not set.');\n }\n\n return instance as NavigationStore;\n}\n","import type { NavigationItem } from '../type';\n\nexport function isNavigationItemMatch(\n one?: NavigationItem,\n two?: NavigationItem,\n): boolean {\n if (!one || !two) {\n return false;\n }\n\n if (\n one.id &&\n two.id &&\n one.id === two.id\n ) {\n return true;\n }\n\n if (\n one.name &&\n two.name &&\n one.name === two.name\n ) {\n return true;\n }\n\n if (\n one.url &&\n two.url &&\n one.url === two.url\n ) {\n return true;\n }\n\n if (\n one.children &&\n two.children &&\n one.children.length === two.children.length\n ) {\n for (let i = 0; i < one.children.length; i++) {\n if (!isNavigationItemMatch(one.children[i], two.children[i])) {\n return false;\n }\n }\n\n return true;\n }\n\n return false;\n}\n","import type { NavigationItem } from '../type';\nimport { isNavigationItemMatch } from './match';\n\n// --------------------------------------------------\n\nexport function setNavigationExpansion(\n items: NavigationItem[],\n item: NavigationItem,\n parentMatch = false,\n) : { items: NavigationItem[], match: boolean} {\n let matchInIteration = false;\n\n for (let i = 0; i < items.length; i++) {\n const isMatch = isNavigationItemMatch(items[i], item);\n let isChildMatch = false;\n\n const { children } = items[i];\n\n if (typeof children !== 'undefined') {\n const { items: childItems, match: childMatch } = setNavigationExpansion(children, item, isMatch);\n items[i].children = childItems;\n isChildMatch = childMatch;\n }\n\n if (isMatch) {\n items[i].active = true;\n }\n\n if (isMatch || isChildMatch) {\n items[i].display = true;\n items[i].displayChildren = true;\n }\n\n if (parentMatch) {\n items[i].display = true;\n }\n\n if (!matchInIteration) {\n matchInIteration = isMatch || isChildMatch;\n }\n }\n\n if (matchInIteration) {\n for (let i = 0; i < items.length; i++) {\n items[i].display = true;\n }\n }\n\n return { items, match: matchInIteration };\n}\n","import type { NavigationItem } from '../type';\n\nexport function resetNavigationItem(\n items: NavigationItem[],\n root = true,\n) {\n for (let i = 0; i < items.length; i++) {\n items[i].display = root;\n items[i].displayChildren = false;\n items[i].active = false;\n\n const { children } = items[i];\n\n if (typeof children !== 'undefined') {\n items[i].children = resetNavigationItem(children, false);\n }\n }\n\n return items;\n}\n","import type { MaybeRef } from 'vue';\nimport { isRef } from 'vue';\nimport type { NavigationItem } from '../type';\n\nexport function findNavigationItemsForTier(\n items: NavigationItem[],\n tier: number,\n) : NavigationItem[] {\n const filterFn = (\n component: NavigationItem,\n ) => typeof component.tier !== 'undefined' && component.tier === tier;\n\n return items.filter(filterFn);\n}\n\nexport function findNavigationItemForTier(\n items: NavigationItem[],\n tier: number,\n) : NavigationItem | undefined {\n const data = findNavigationItemsForTier(items, tier);\n if (data.length >= 1) {\n return data[0];\n }\n\n return undefined;\n}\n\nexport function setTierForNavigationItems(\n items: MaybeRef<NavigationItem[]>,\n tier: number,\n) {\n const mapFn = (component: NavigationItem) => {\n component.tier = tier;\n return component;\n };\n\n if (isRef(items)) {\n return items.value.map(mapFn);\n }\n\n return items.map(mapFn);\n}\n\nexport function removeTierFromNavigationItems(\n items: MaybeRef<NavigationItem[]>,\n tier: number,\n) {\n const filterFn = (items: NavigationItem) => typeof items.tier === 'undefined' || items.tier !== tier;\n if (isRef(items)) {\n return items.value.filter(filterFn);\n }\n\n return items.filter(filterFn);\n}\n","import type { MaybeRef } from 'vue';\nimport type { NavigationStore } from '../store';\nimport type { NavigationItem } from '../type';\nimport { removeTierFromNavigationItems, setTierForNavigationItems } from './tier';\n\nexport function replaceNavigationTierItemActive(\n store: NavigationStore,\n tier: number,\n item: NavigationItem | undefined,\n) {\n const items = removeTierFromNavigationItems(store.itemsActive.value, tier);\n\n if (item) {\n item.tier = tier;\n\n store.itemsActive.value = [\n ...items,\n item,\n ];\n } else {\n store.itemsActive.value = items;\n }\n}\n\nexport function replaceNavigationTierItems(\n store: NavigationStore,\n tier: number,\n items: MaybeRef<NavigationItem[]>,\n) {\n const componentsExisting = removeTierFromNavigationItems(store.items.value, tier);\n\n store.items.value = [\n ...componentsExisting,\n ...setTierForNavigationItems(items, tier),\n ];\n}\n","import type { NavigationStore } from '../store';\nimport { setNavigationExpansion } from './expansion';\nimport { resetNavigationItem } from './reset';\nimport { replaceNavigationTierItems } from './replace';\nimport { findNavigationItemForTier, findNavigationItemsForTier } from './tier';\n\nexport function refreshNavigationTierItems(store: NavigationStore, tier: number) {\n const components = resetNavigationItem(findNavigationItemsForTier(store.items.value, tier));\n\n const component = findNavigationItemForTier(store.itemsActive.value, tier);\n if (component) {\n const { items } = setNavigationExpansion(components, component);\n replaceNavigationTierItems(store, tier, items);\n return;\n }\n\n replaceNavigationTierItems(store, tier, components);\n}\n","import { useNavigationProvider } from '../provider';\nimport type { NavigationStore } from '../store';\nimport type { NavigationItem } from '../type';\nimport { refreshNavigationTierItems } from './refresh';\nimport { replaceNavigationTierItems } from './replace';\nimport { findNavigationItemForTier } from './tier';\n\nexport async function buildNavigationForTier(\n store: NavigationStore,\n tier: number,\n itemsActive?: NavigationItem[],\n): Promise<boolean> {\n if (\n typeof itemsActive === 'undefined' ||\n itemsActive.length === 0\n ) {\n let tierStartIndex = 0;\n const tierEndIndex = tier;\n\n itemsActive = [];\n\n while (tierStartIndex <= tierEndIndex) {\n const component = findNavigationItemForTier(store.itemsActive.value, tierStartIndex);\n if (!component) {\n break;\n }\n\n itemsActive.push(component);\n\n tierStartIndex++;\n }\n }\n\n const items = await useNavigationProvider()\n .getItems(\n tier,\n itemsActive,\n );\n\n if (typeof items === 'undefined') {\n return false;\n }\n\n replaceNavigationTierItems(store, tier, items);\n refreshNavigationTierItems(store, tier);\n\n return true;\n}\n","import type { NavigationItem } from '../type';\n\nexport function flattenNestedNavigationItems(\n items: NavigationItem[],\n) : NavigationItem[] {\n const output : NavigationItem[] = [];\n\n for (let i = 0; i < items.length; i++) {\n const { children, ...data } = items[i];\n\n output.push(data);\n\n if (\n children &&\n children.length > 0\n ) {\n output.push(...flattenNestedNavigationItems([...children]));\n }\n }\n\n return output;\n}\n","import type { NavigationStore } from '../store';\nimport type { NavigationItem } from '../type';\nimport { buildNavigationForTier } from './build';\nimport { isNavigationItemMatch } from './match';\nimport { refreshNavigationTierItems } from './refresh';\nimport { replaceNavigationTierItemActive } from './replace';\nimport { findNavigationItemForTier } from './tier';\n\nexport async function selectNavigationTierItem(\n store: NavigationStore,\n tier: number,\n component: NavigationItem,\n) {\n const isMatch = isNavigationItemMatch(\n findNavigationItemForTier(store.itemsActive.value, tier),\n component,\n );\n\n if (isMatch) {\n return;\n }\n\n replaceNavigationTierItemActive(store, tier, component);\n refreshNavigationTierItems(store, tier);\n\n tier++;\n\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const built = await buildNavigationForTier(store, tier);\n if (!built) {\n break;\n }\n\n tier++;\n }\n}\n","import type { NavigationStore } from '../store';\nimport type { NavigationItem } from '../type';\nimport { isNavigationItemMatch } from './match';\nimport { refreshNavigationTierItems } from './refresh';\nimport { replaceNavigationTierItemActive } from './replace';\nimport { findNavigationItemForTier } from './tier';\n\nexport function toggleNavigation(\n store: NavigationStore,\n tier: number,\n component: NavigationItem,\n) {\n const isMatch = component.displayChildren || isNavigationItemMatch(\n findNavigationItemForTier(store.itemsActive.value, tier),\n component,\n );\n\n if (isMatch) {\n replaceNavigationTierItemActive(store, tier, undefined);\n } else {\n replaceNavigationTierItemActive(store, tier, component);\n }\n\n refreshNavigationTierItems(store, tier);\n}\n","export function isAbsoluteURL(str: string): boolean {\n return str.substring(0, 7) === 'http://' ||\n str.substring(0, 8) === 'https://';\n}\n","export enum SlotName {\n ITEM = 'item',\n SEPARATOR = 'separator',\n LINK = 'link',\n SUB = 'sub',\n SUB_TITLE = 'sub-title',\n SUB_ITEMS = 'sub-items',\n}\n\nexport enum ElementType {\n LINK = 'link',\n SEPARATOR = 'separator',\n}\n","import { hasNormalizedSlot, normalizeSlot } from '@vuecs/core';\nimport type { LinkProperties } from '@vuecs/link';\nimport { VCLink } from '@vuecs/link';\nimport type { PropType, Ref, VNodeChild } from 'vue';\nimport {\n defineComponent,\n h,\n resolveComponent,\n toRef,\n} from 'vue';\nimport {\n injectStore,\n} from '../store';\nimport type { NavigationItem } from '../type';\nimport {\n selectNavigationTierItem,\n toggleNavigation,\n} from '../core';\nimport { isAbsoluteURL } from '../utils';\nimport { ElementType, SlotName } from '../constants';\n\nexport const VCNavItem = defineComponent({\n props: {\n tier: {\n type: Number,\n default: 0,\n },\n component: {\n type: Object as PropType<NavigationItem>,\n required: true,\n },\n },\n setup(props, { slots }) {\n const store = injectStore();\n const component = toRef(props, 'component') as Ref<NavigationItem>;\n\n const selectComponent = async (value: NavigationItem) => {\n await selectNavigationTierItem(store, props.tier, value);\n };\n\n const toggleComponentExpansion = async (\n value: NavigationItem,\n ) => toggleNavigation(store, props.tier, value);\n\n return () => {\n const buildItem = () : VNodeChild => {\n let item : VNodeChild;\n\n switch (component.value.type) {\n case ElementType.SEPARATOR: {\n const hasSlot = hasNormalizedSlot(SlotName.SEPARATOR, slots);\n if (hasSlot) {\n item = normalizeSlot(SlotName.SEPARATOR, {\n component: component.value,\n }, slots);\n } else {\n item = h('div', {\n class: 'nav-separator',\n }, component.value.name);\n }\n break;\n }\n default: {\n if (typeof component.value.children === 'undefined') {\n const hasSlot = hasNormalizedSlot(SlotName.LINK, slots);\n if (hasSlot) {\n item = normalizeSlot(SlotName.LINK, {\n component: component.value,\n selectComponent,\n isActive: component.value.active,\n }, slots);\n } else {\n const linkProps : LinkProperties = {\n active: component.value.active,\n disabled: false,\n prefetch: true,\n };\n\n if (component.value.url) {\n if (\n isAbsoluteURL(component.value.url) ||\n component.value.url.startsWith('#')\n ) {\n linkProps.href = component.value.url;\n if (component.value.urlTarget) {\n linkProps.target = component.value.urlTarget;\n }\n } else {\n linkProps.to = component.value.url;\n }\n }\n\n item = h(VCLink, {\n class: [\n 'nav-link',\n {\n 'root-link': component.value.root,\n },\n ],\n ...linkProps,\n onClicked() {\n if (!component.value.url) {\n return selectComponent.call(null, component.value);\n }\n\n return undefined;\n },\n onClick() {\n return selectComponent.call(null, component.value);\n },\n }, {\n default: () => [\n ...(component.value.icon ? [h('i', { class: component.value.icon })] : []),\n h('span', { class: 'nav-link-text' }, [component.value.name]),\n ],\n });\n }\n } else if (hasNormalizedSlot(SlotName.SUB, slots)) {\n item = normalizeSlot(SlotName.SUB, {\n component: component.value,\n selectComponent,\n toggleComponentExpansion,\n }, slots);\n } else {\n let title : VNodeChild;\n if (hasNormalizedSlot(SlotName.SUB_TITLE, slots)) {\n title = normalizeSlot(SlotName.SUB_TITLE, {\n component: component.value,\n selectComponent,\n toggleComponentExpansion,\n });\n } else {\n title = h('div', {\n class: 'nav-sub-title',\n onClick($event: any) {\n $event.preventDefault();\n\n return toggleComponentExpansion.call(null, component.value);\n },\n }, [[\n ...(component.value.icon ? [h('i', { class: component.value.icon })] : []),\n h('span', { class: 'nav-link-text' }, [component.value.name]),\n ]]);\n }\n\n let items : VNodeChild;\n\n if (hasNormalizedSlot(SlotName.SUB_ITEMS, slots)) {\n items = normalizeSlot(SlotName.SUB_ITEMS, {\n component: component.value,\n selectComponent,\n toggleComponentExpansion,\n });\n } else if (component.value.displayChildren) {\n const navigationComponents = resolveComponent('VCNavItems');\n items = h(navigationComponents, {\n class: 'list-unstyled nav-sub-items',\n tier: props.tier,\n entities: component.value.children,\n });\n }\n\n item = [\n title,\n items,\n ];\n }\n break;\n }\n }\n\n return item;\n };\n\n return h('div', {\n class: [\n 'nav-item',\n {\n active: component.value.active || component.value.displayChildren,\n },\n ],\n }, [\n buildItem(),\n ]);\n };\n },\n});\n","import { hasNormalizedSlot, normalizeSlot } from '@vuecs/core';\nimport type { PropType, VNode, VNodeChild } from 'vue';\nimport { computed, defineComponent, h } from 'vue';\nimport { SlotName } from '../constants';\nimport { injectStore } from '../store';\nimport type { NavigationItem } from '../type';\nimport { findNavigationItemsForTier } from '../core';\nimport { VCNavItem } from './item';\n\nexport const VCNavItems = defineComponent({\n props: {\n tier: {\n type: Number,\n default: 0,\n },\n entities: {\n type: Array as PropType<NavigationItem[]>,\n default: undefined,\n },\n },\n setup(props, { slots }) {\n const store = injectStore();\n\n const items = computed(() => {\n if (typeof props.entities !== 'undefined') {\n return props.entities;\n }\n\n return findNavigationItemsForTier(store.items.value, props.tier);\n });\n\n const buildChild = (context: {\n tier?: number,\n component: NavigationItem\n }) : VNodeChild => {\n if (hasNormalizedSlot(SlotName.ITEM, slots)) {\n return normalizeSlot(SlotName.ITEM, context, slots);\n }\n\n return h(VCNavItem, context);\n };\n\n const buildChildren = () : VNodeChild => {\n const entities : VNode[] = [];\n\n if (items.value) {\n for (let i = 0; i < items.value.length; i++) {\n if (items.value[i].display) {\n entities.push(h(\n 'li',\n {\n key: i,\n },\n [\n buildChild({\n tier: props.tier,\n component: items.value[i],\n }),\n ],\n ));\n }\n }\n }\n\n return entities;\n };\n\n return () => h('ul', {\n class: 'nav-items',\n }, [buildChildren()]);\n },\n});\n","import {\n buildNavigationForTier,\n findNavigationItemForTier,\n isNavigationItemMatch,\n replaceNavigationTierItemActive,\n setTierForNavigationItems,\n} from './core';\nimport { useNavigationProvider } from './provider';\nimport type { NavigationBuildContext } from './store';\nimport { injectStore } from './store';\nimport type { NavigationItem } from './type';\n\nexport async function buildNavigation(\n context: NavigationBuildContext = {},\n): Promise<void> {\n const store = injectStore();\n const navigationProvider = useNavigationProvider();\n\n let itemsActive: NavigationItem[] = [];\n\n if (typeof context.itemsActive !== 'undefined') {\n itemsActive = context.itemsActive;\n } else if (context.route) {\n if (typeof navigationProvider.getItemsActiveByRoute !== 'undefined') {\n itemsActive = await navigationProvider.getItemsActiveByRoute(context.route);\n } else if (typeof navigationProvider.getItemsActiveByURL !== 'undefined') {\n itemsActive = await navigationProvider.getItemsActiveByURL(context.route.fullPath);\n }\n } else if (\n context.url &&\n typeof navigationProvider.getItemsActiveByURL !== 'undefined'\n ) {\n itemsActive = await navigationProvider.getItemsActiveByURL(context.url);\n }\n\n if (itemsActive.length > 0) {\n for (let i = 0; i < itemsActive.length; i++) {\n if (typeof itemsActive[i].tier === 'undefined') {\n itemsActive[i].tier = i;\n }\n }\n }\n\n let tierIndex = 0;\n\n let url: string | undefined;\n if (typeof context.url === 'string') {\n url = context.url;\n } else if (typeof context.route !== 'undefined') {\n url = context.route.fullPath;\n }\n\n // eslint-disable-next-line no-constant-condition\n while (true) {\n let items = await navigationProvider\n .getItems(tierIndex, itemsActive);\n\n if (!items || items.length === 0) {\n break;\n }\n\n // ensure tier property\n items = setTierForNavigationItems(items, tierIndex);\n\n let currentItem = findNavigationItemForTier(itemsActive, tierIndex);\n\n if (!currentItem) {\n if (url) {\n const urlMatches = items.filter(\n (item) => isNavigationItemMatch(item, { url }),\n );\n if (urlMatches.length > 0) {\n [currentItem] = urlMatches;\n }\n }\n\n if (!currentItem) {\n const defaultItem = items\n .filter((item) => item.default);\n if (defaultItem.length > 0) {\n currentItem = defaultItem;\n } else {\n [currentItem] = items;\n }\n }\n\n currentItem.tier = tierIndex;\n itemsActive.push(currentItem);\n }\n\n if (!currentItem) {\n continue;\n }\n\n replaceNavigationTierItemActive(store, tierIndex, currentItem);\n\n await buildNavigationForTier(store, tierIndex, itemsActive);\n\n tierIndex++;\n }\n}\n","import { applyStoreManagerOptions, installStoreManager } from '@vuecs/core';\n\nimport type { App, Plugin } from 'vue';\n\nimport './vue';\n\nimport { setNavigationProvider } from './provider';\nimport { setupStore } from './store';\nimport {\n VCNavItem,\n VCNavItems,\n} from './components';\nimport type { Options } from './type';\n\nexport * from './components';\nexport * from './provider';\nexport * from './module';\nexport * from './type';\nexport * from './core/flatten';\n\nexport function install(instance: App, options: Options) : void {\n if (options.provider) {\n setNavigationProvider(options.provider);\n }\n\n setupStore(instance);\n\n const storeManager = installStoreManager(instance);\n if (options.storeManager) {\n applyStoreManagerOptions(storeManager, options.storeManager);\n }\n\n Object.entries({\n VCNavItem,\n VCNavItems,\n }).forEach(([componentName, component]) => {\n instance.component(componentName, component);\n });\n}\n\nexport default {\n install,\n} satisfies Plugin<Options>;\nexport { buildNavigationForTier } from './core';\n"],"names":["instance","useNavigationProvider","module","Error","setNavigationProvider","createNavigationProvider","input","StoreSymbol","Symbol","for","isStoreInjected","hasInjectionContext","inject","setupStore","app","store","items","ref","itemsActive","provide","_context","provides","injectStore","isNavigationItemMatch","one","two","id","name","url","children","length","i","setNavigationExpansion","item","parentMatch","matchInIteration","isMatch","isChildMatch","childItems","match","childMatch","active","display","displayChildren","resetNavigationItem","root","findNavigationItemsForTier","tier","filterFn","component","filter","findNavigationItemForTier","data","undefined","setTierForNavigationItems","mapFn","isRef","value","map","removeTierFromNavigationItems","replaceNavigationTierItemActive","replaceNavigationTierItems","componentsExisting","refreshNavigationTierItems","components","buildNavigationForTier","tierStartIndex","tierEndIndex","push","getItems","flattenNestedNavigationItems","output","selectNavigationTierItem","built","toggleNavigation","isAbsoluteURL","str","substring","SlotName","ElementType","VCNavItem","defineComponent","props","type","Number","default","Object","required","setup","slots","toRef","selectComponent","toggleComponentExpansion","buildItem","SEPARATOR","hasSlot","hasNormalizedSlot","normalizeSlot","h","class","LINK","isActive","linkProps","disabled","prefetch","startsWith","href","urlTarget","target","to","VCLink","onClicked","call","onClick","icon","SUB","title","SUB_TITLE","$event","preventDefault","SUB_ITEMS","navigationComponents","resolveComponent","entities","VCNavItems","Array","computed","buildChild","context","ITEM","buildChildren","key","buildNavigation","navigationProvider","route","getItemsActiveByRoute","getItemsActiveByURL","fullPath","tierIndex","currentItem","urlMatches","defaultItem","install","options","provider","storeManager","installStoreManager","applyStoreManagerOptions","entries","forEach","componentName"],"mappings":";;;;;;;;AAEA,IAAIA,QAAAA,CAAAA;AAEG,SAASC,sBAAsBC,MAA2B,EAAA;IAC7D,IAAI,OAAOF,aAAa,WAAa,EAAA;QACjC,OAAOA,QAAAA,CAAAA;AACX,KAAA;IAEA,IAAI,OAAOE,WAAW,WAAa,EAAA;AAC/B,QAAA,MAAM,IAAIC,KAAM,CAAA,oCAAA,CAAA,CAAA;AACpB,KAAA;IAEAH,QAAWE,GAAAA,MAAAA,CAAAA;IAEX,OAAOF,QAAAA,CAAAA;AACX,CAAA;AAEO,SAASI,sBAAsBF,MAA0B,EAAA;IAC5DF,QAAWE,GAAAA,MAAAA,CAAAA;AACf,CAAA;AAEO,SAASG,yBAAyBC,KAAyB,EAAA;IAC9D,OAAOA,KAAAA,CAAAA;AACX;;ACjBO,MAAMC,WAAAA,GAAcC,MAAOC,CAAAA,GAAG,CAAC,mBAAqB,CAAA,CAAA;AAEpD,SAASC,eAAAA,GAAAA;AACZ,IAAA,IAAI,CAACC,uBAAuB,EAAA,EAAA;QACxB,OAAO,KAAA,CAAA;AACX,KAAA;AAEA,IAAA,MAAMX,WAAWY,UAAOL,CAAAA,WAAAA,CAAAA,CAAAA;AACxB,IAAA,OAAO,CAAC,CAACP,QAAAA,CAAAA;AACb,CAAA;AAEO,SAASa,WAAWC,GAAS,EAAA;AAChC,IAAA,MAAMC,KAA0B,GAAA;AAC5BC,QAAAA,KAAAA,EAAOC,QAAI,EAAE,CAAA;AACbC,QAAAA,WAAAA,EAAaD,QAAI,EAAE,CAAA;AACvB,KAAA,CAAA;IAEA,IAAI,OAAOH,QAAQ,WAAa,EAAA;AAC5B,QAAA,IAAIJ,eAAmB,EAAA,EAAA;AACnB,YAAA,OAAA;AACJ,SAAA;AAEAS,QAAAA,WAAAA,CAAQZ,WAAaQ,EAAAA,KAAAA,CAAAA,CAAAA;AACrB,QAAA,OAAA;AACJ,KAAA;AAEA,IAAA,IACID,GAAIM,CAAAA,QAAQ,IACZN,GAAAA,CAAIM,QAAQ,CAACC,QAAQ,IACrBP,GAAAA,CAAIM,QAAQ,CAACC,QAAQ,CAACd,YAAY,EACpC;AACE,QAAA,OAAA;AACJ,KAAA;IAEAO,GAAIK,CAAAA,OAAO,CAACZ,WAAaQ,EAAAA,KAAAA,CAAAA,CAAAA;AAC7B,CAAA;AAEO,SAASO,WAAAA,GAAAA;AACZ,IAAA,MAAMtB,WAAWY,UAAOL,CAAAA,WAAAA,CAAAA,CAAAA;AACxB,IAAA,IAAI,CAACP,QAAU,EAAA;AACX,QAAA,MAAM,IAAIG,KAAM,CAAA,uBAAA,CAAA,CAAA;AACpB,KAAA;IAEA,OAAOH,QAAAA,CAAAA;AACX;;ACjDO,SAASuB,qBAAAA,CACZC,GAAoB,EACpBC,GAAoB,EAAA;IAEpB,IAAI,CAACD,GAAO,IAAA,CAACC,GAAK,EAAA;QACd,OAAO,KAAA,CAAA;AACX,KAAA;IAEA,IACID,GAAAA,CAAIE,EAAE,IACND,GAAIC,CAAAA,EAAE,IACNF,GAAAA,CAAIE,EAAE,KAAKD,GAAIC,CAAAA,EAAE,EACnB;QACE,OAAO,IAAA,CAAA;AACX,KAAA;IAEA,IACIF,GAAAA,CAAIG,IAAI,IACRF,GAAIE,CAAAA,IAAI,IACRH,GAAAA,CAAIG,IAAI,KAAKF,GAAIE,CAAAA,IAAI,EACvB;QACE,OAAO,IAAA,CAAA;AACX,KAAA;IAEA,IACIH,GAAAA,CAAII,GAAG,IACPH,GAAIG,CAAAA,GAAG,IACPJ,GAAAA,CAAII,GAAG,KAAKH,GAAIG,CAAAA,GAAG,EACrB;QACE,OAAO,IAAA,CAAA;AACX,KAAA;AAEA,IAAA,IACIJ,GAAIK,CAAAA,QAAQ,IACZJ,GAAAA,CAAII,QAAQ,IACZL,GAAAA,CAAIK,QAAQ,CAACC,MAAM,KAAKL,GAAAA,CAAII,QAAQ,CAACC,MAAM,EAC7C;QACE,IAAK,IAAIC,IAAI,CAAGA,EAAAA,CAAAA,GAAIP,IAAIK,QAAQ,CAACC,MAAM,EAAEC,CAAK,EAAA,CAAA;YAC1C,IAAI,CAACR,qBAAsBC,CAAAA,GAAAA,CAAIK,QAAQ,CAACE,CAAE,CAAA,EAAEN,GAAII,CAAAA,QAAQ,CAACE,CAAAA,CAAE,CAAG,EAAA;gBAC1D,OAAO,KAAA,CAAA;AACX,aAAA;AACJ,SAAA;QAEA,OAAO,IAAA,CAAA;AACX,KAAA;IAEA,OAAO,KAAA,CAAA;AACX;;AC9CA;AAEO,SAASC,sBACZhB,CAAAA,KAAuB,EACvBiB,IAAoB,EACpBC,cAAc,KAAK,EAAA;AAEnB,IAAA,IAAIC,gBAAmB,GAAA,KAAA,CAAA;AAEvB,IAAA,IAAK,IAAIJ,CAAI,GAAA,CAAA,EAAGA,IAAIf,KAAMc,CAAAA,MAAM,EAAEC,CAAK,EAAA,CAAA;AACnC,QAAA,MAAMK,OAAUb,GAAAA,qBAAAA,CAAsBP,KAAK,CAACe,EAAE,EAAEE,IAAAA,CAAAA,CAAAA;AAChD,QAAA,IAAII,YAAe,GAAA,KAAA,CAAA;AAEnB,QAAA,MAAM,EAAER,QAAQ,EAAE,GAAGb,KAAK,CAACe,CAAE,CAAA,CAAA;QAE7B,IAAI,OAAOF,aAAa,WAAa,EAAA;YACjC,MAAM,EAAEb,KAAOsB,EAAAA,UAAU,EAAEC,KAAAA,EAAOC,UAAU,EAAE,GAAGR,sBAAuBH,CAAAA,QAAAA,EAAUI,IAAMG,EAAAA,OAAAA,CAAAA,CAAAA;AACxFpB,YAAAA,KAAK,CAACe,CAAAA,CAAE,CAACF,QAAQ,GAAGS,UAAAA,CAAAA;YACpBD,YAAeG,GAAAA,UAAAA,CAAAA;AACnB,SAAA;AAEA,QAAA,IAAIJ,OAAS,EAAA;AACTpB,YAAAA,KAAK,CAACe,CAAAA,CAAE,CAACU,MAAM,GAAG,IAAA,CAAA;AACtB,SAAA;AAEA,QAAA,IAAIL,WAAWC,YAAc,EAAA;AACzBrB,YAAAA,KAAK,CAACe,CAAAA,CAAE,CAACW,OAAO,GAAG,IAAA,CAAA;AACnB1B,YAAAA,KAAK,CAACe,CAAAA,CAAE,CAACY,eAAe,GAAG,IAAA,CAAA;AAC/B,SAAA;AAEA,QAAA,IAAIT,WAAa,EAAA;AACblB,YAAAA,KAAK,CAACe,CAAAA,CAAE,CAACW,OAAO,GAAG,IAAA,CAAA;AACvB,SAAA;AAEA,QAAA,IAAI,CAACP,gBAAkB,EAAA;AACnBA,YAAAA,gBAAAA,GAAmBC,OAAWC,IAAAA,YAAAA,CAAAA;AAClC,SAAA;AACJ,KAAA;AAEA,IAAA,IAAIF,gBAAkB,EAAA;AAClB,QAAA,IAAK,IAAIJ,CAAI,GAAA,CAAA,EAAGA,IAAIf,KAAMc,CAAAA,MAAM,EAAEC,CAAK,EAAA,CAAA;AACnCf,YAAAA,KAAK,CAACe,CAAAA,CAAE,CAACW,OAAO,GAAG,IAAA,CAAA;AACvB,SAAA;AACJ,KAAA;IAEA,OAAO;AAAE1B,QAAAA,KAAAA;QAAOuB,KAAOJ,EAAAA,gBAAAA;AAAiB,KAAA,CAAA;AAC5C;;AC/CO,SAASS,mBAAAA,CACZ5B,KAAuB,EACvB6B,OAAO,IAAI,EAAA;AAEX,IAAA,IAAK,IAAId,CAAI,GAAA,CAAA,EAAGA,IAAIf,KAAMc,CAAAA,MAAM,EAAEC,CAAK,EAAA,CAAA;AACnCf,QAAAA,KAAK,CAACe,CAAAA,CAAE,CAACW,OAAO,GAAGG,IAAAA,CAAAA;AACnB7B,QAAAA,KAAK,CAACe,CAAAA,CAAE,CAACY,eAAe,GAAG,KAAA,CAAA;AAC3B3B,QAAAA,KAAK,CAACe,CAAAA,CAAE,CAACU,MAAM,GAAG,KAAA,CAAA;AAElB,QAAA,MAAM,EAAEZ,QAAQ,EAAE,GAAGb,KAAK,CAACe,CAAE,CAAA,CAAA;QAE7B,IAAI,OAAOF,aAAa,WAAa,EAAA;AACjCb,YAAAA,KAAK,CAACe,CAAE,CAAA,CAACF,QAAQ,GAAGe,oBAAoBf,QAAU,EAAA,KAAA,CAAA,CAAA;AACtD,SAAA;AACJ,KAAA;IAEA,OAAOb,KAAAA,CAAAA;AACX;;ACfO,SAAS8B,0BAAAA,CACZ9B,KAAuB,EACvB+B,IAAY,EAAA;IAEZ,MAAMC,QAAAA,GAAW,CACbC,SAAAA,GACC,OAAOA,SAAAA,CAAUF,IAAI,KAAK,WAAA,IAAeE,SAAUF,CAAAA,IAAI,KAAKA,IAAAA,CAAAA;IAEjE,OAAO/B,KAAAA,CAAMkC,MAAM,CAACF,QAAAA,CAAAA,CAAAA;AACxB,CAAA;AAEO,SAASG,yBAAAA,CACZnC,KAAuB,EACvB+B,IAAY,EAAA;IAEZ,MAAMK,IAAAA,GAAON,2BAA2B9B,KAAO+B,EAAAA,IAAAA,CAAAA,CAAAA;IAC/C,IAAIK,IAAAA,CAAKtB,MAAM,IAAI,CAAG,EAAA;QAClB,OAAOsB,IAAI,CAAC,CAAE,CAAA,CAAA;AAClB,KAAA;IAEA,OAAOC,SAAAA,CAAAA;AACX,CAAA;AAEO,SAASC,yBAAAA,CACZtC,KAAiC,EACjC+B,IAAY,EAAA;AAEZ,IAAA,MAAMQ,QAAQ,CAACN,SAAAA,GAAAA;AACXA,QAAAA,SAAAA,CAAUF,IAAI,GAAGA,IAAAA,CAAAA;QACjB,OAAOE,SAAAA,CAAAA;AACX,KAAA,CAAA;AAEA,IAAA,IAAIO,UAAMxC,KAAQ,CAAA,EAAA;AACd,QAAA,OAAOA,KAAMyC,CAAAA,KAAK,CAACC,GAAG,CAACH,KAAAA,CAAAA,CAAAA;AAC3B,KAAA;IAEA,OAAOvC,KAAAA,CAAM0C,GAAG,CAACH,KAAAA,CAAAA,CAAAA;AACrB,CAAA;AAEO,SAASI,6BAAAA,CACZ3C,KAAiC,EACjC+B,IAAY,EAAA;IAEZ,MAAMC,QAAAA,GAAW,CAAChC,KAAAA,GAA0B,OAAOA,KAAAA,CAAM+B,IAAI,KAAK,WAAA,IAAe/B,KAAM+B,CAAAA,IAAI,KAAKA,IAAAA,CAAAA;AAChG,IAAA,IAAIS,UAAMxC,KAAQ,CAAA,EAAA;AACd,QAAA,OAAOA,KAAMyC,CAAAA,KAAK,CAACP,MAAM,CAACF,QAAAA,CAAAA,CAAAA;AAC9B,KAAA;IAEA,OAAOhC,KAAAA,CAAMkC,MAAM,CAACF,QAAAA,CAAAA,CAAAA;AACxB;;AChDO,SAASY,+BACZ7C,CAAAA,KAAsB,EACtBgC,IAAY,EACZd,IAAgC,EAAA;AAEhC,IAAA,MAAMjB,QAAQ2C,6BAA8B5C,CAAAA,KAAAA,CAAMG,WAAW,CAACuC,KAAK,EAAEV,IAAAA,CAAAA,CAAAA;AAErE,IAAA,IAAId,IAAM,EAAA;AACNA,QAAAA,IAAAA,CAAKc,IAAI,GAAGA,IAAAA,CAAAA;QAEZhC,KAAMG,CAAAA,WAAW,CAACuC,KAAK,GAAG;AACnBzC,YAAAA,GAAAA,KAAAA;AACHiB,YAAAA,IAAAA;AACH,SAAA,CAAA;KACE,MAAA;QACHlB,KAAMG,CAAAA,WAAW,CAACuC,KAAK,GAAGzC,KAAAA,CAAAA;AAC9B,KAAA;AACJ,CAAA;AAEO,SAAS6C,0BACZ9C,CAAAA,KAAsB,EACtBgC,IAAY,EACZ/B,KAAiC,EAAA;AAEjC,IAAA,MAAM8C,qBAAqBH,6BAA8B5C,CAAAA,KAAAA,CAAMC,KAAK,CAACyC,KAAK,EAAEV,IAAAA,CAAAA,CAAAA;IAE5EhC,KAAMC,CAAAA,KAAK,CAACyC,KAAK,GAAG;AACbK,QAAAA,GAAAA,kBAAAA;AACAR,QAAAA,GAAAA,yBAAAA,CAA0BtC,KAAO+B,EAAAA,IAAAA,CAAAA;AACvC,KAAA,CAAA;AACL;;AC7BO,SAASgB,0BAAAA,CAA2BhD,KAAsB,EAAEgC,IAAY,EAAA;AAC3E,IAAA,MAAMiB,aAAapB,mBAAoBE,CAAAA,0BAAAA,CAA2B/B,MAAMC,KAAK,CAACyC,KAAK,EAAEV,IAAAA,CAAAA,CAAAA,CAAAA;AAErF,IAAA,MAAME,YAAYE,yBAA0BpC,CAAAA,KAAAA,CAAMG,WAAW,CAACuC,KAAK,EAAEV,IAAAA,CAAAA,CAAAA;AACrE,IAAA,IAAIE,SAAW,EAAA;AACX,QAAA,MAAM,EAAEjC,KAAK,EAAE,GAAGgB,uBAAuBgC,UAAYf,EAAAA,SAAAA,CAAAA,CAAAA;AACrDY,QAAAA,0BAAAA,CAA2B9C,OAAOgC,IAAM/B,EAAAA,KAAAA,CAAAA,CAAAA;AACxC,QAAA,OAAA;AACJ,KAAA;AAEA6C,IAAAA,0BAAAA,CAA2B9C,OAAOgC,IAAMiB,EAAAA,UAAAA,CAAAA,CAAAA;AAC5C;;ACVO,eAAeC,sBAClBlD,CAAAA,KAAsB,EACtBgC,IAAY,EACZ7B,WAA8B,EAAA;AAE9B,IAAA,IACI,OAAOA,WAAgB,KAAA,WAAA,IACvBA,WAAYY,CAAAA,MAAM,KAAK,CACzB,EAAA;AACE,QAAA,IAAIoC,cAAiB,GAAA,CAAA,CAAA;AACrB,QAAA,MAAMC,YAAepB,GAAAA,IAAAA,CAAAA;AAErB7B,QAAAA,WAAAA,GAAc,EAAE,CAAA;AAEhB,QAAA,MAAOgD,kBAAkBC,YAAc,CAAA;AACnC,YAAA,MAAMlB,YAAYE,yBAA0BpC,CAAAA,KAAAA,CAAMG,WAAW,CAACuC,KAAK,EAAES,cAAAA,CAAAA,CAAAA;AACrE,YAAA,IAAI,CAACjB,SAAW,EAAA;AACZ,gBAAA,MAAA;AACJ,aAAA;AAEA/B,YAAAA,WAAAA,CAAYkD,IAAI,CAACnB,SAAAA,CAAAA,CAAAA;AAEjBiB,YAAAA,cAAAA,EAAAA,CAAAA;AACJ,SAAA;AACJ,KAAA;AAEA,IAAA,MAAMlD,KAAQ,GAAA,MAAMf,qBACfoE,EAAAA,CAAAA,QAAQ,CACLtB,IACA7B,EAAAA,WAAAA,CAAAA,CAAAA;IAGR,IAAI,OAAOF,UAAU,WAAa,EAAA;QAC9B,OAAO,KAAA,CAAA;AACX,KAAA;AAEA6C,IAAAA,0BAAAA,CAA2B9C,OAAOgC,IAAM/B,EAAAA,KAAAA,CAAAA,CAAAA;AACxC+C,IAAAA,0BAAAA,CAA2BhD,KAAOgC,EAAAA,IAAAA,CAAAA,CAAAA;IAElC,OAAO,IAAA,CAAA;AACX;;AC7CO,SAASuB,6BACZtD,KAAuB,EAAA;AAEvB,IAAA,MAAMuD,SAA4B,EAAE,CAAA;AAEpC,IAAA,IAAK,IAAIxC,CAAI,GAAA,CAAA,EAAGA,IAAIf,KAAMc,CAAAA,MAAM,EAAEC,CAAK,EAAA,CAAA;QACnC,MAAM,EAAEF,QAAQ,EAAE,GAAGuB,MAAM,GAAGpC,KAAK,CAACe,CAAE,CAAA,CAAA;AAEtCwC,QAAAA,MAAAA,CAAOH,IAAI,CAAChB,IAAAA,CAAAA,CAAAA;AAEZ,QAAA,IACIvB,QACAA,IAAAA,QAAAA,CAASC,MAAM,GAAG,CACpB,EAAA;YACEyC,MAAOH,CAAAA,IAAI,IAAIE,4BAA6B,CAAA;AAAIzC,gBAAAA,GAAAA,QAAAA;AAAS,aAAA,CAAA,CAAA,CAAA;AAC7D,SAAA;AACJ,KAAA;IAEA,OAAO0C,MAAAA,CAAAA;AACX;;ACbO,eAAeC,wBAClBzD,CAAAA,KAAsB,EACtBgC,IAAY,EACZE,SAAyB,EAAA;IAEzB,MAAMb,OAAAA,GAAUb,sBACZ4B,yBAA0BpC,CAAAA,KAAAA,CAAMG,WAAW,CAACuC,KAAK,EAAEV,IACnDE,CAAAA,EAAAA,SAAAA,CAAAA,CAAAA;AAGJ,IAAA,IAAIb,OAAS,EAAA;AACT,QAAA,OAAA;AACJ,KAAA;AAEAwB,IAAAA,+BAAAA,CAAgC7C,OAAOgC,IAAME,EAAAA,SAAAA,CAAAA,CAAAA;AAC7Cc,IAAAA,0BAAAA,CAA2BhD,KAAOgC,EAAAA,IAAAA,CAAAA,CAAAA;AAElCA,IAAAA,IAAAA,EAAAA,CAAAA;;AAGA,IAAA,MAAO,IAAM,CAAA;QACT,MAAM0B,KAAAA,GAAQ,MAAMR,sBAAAA,CAAuBlD,KAAOgC,EAAAA,IAAAA,CAAAA,CAAAA;AAClD,QAAA,IAAI,CAAC0B,KAAO,EAAA;AACR,YAAA,MAAA;AACJ,SAAA;AAEA1B,QAAAA,IAAAA,EAAAA,CAAAA;AACJ,KAAA;AACJ;;AC7BO,SAAS2B,gBACZ3D,CAAAA,KAAsB,EACtBgC,IAAY,EACZE,SAAyB,EAAA;IAEzB,MAAMb,OAAAA,GAAUa,SAAUN,CAAAA,eAAe,IAAIpB,qBAAAA,CACzC4B,yBAA0BpC,CAAAA,KAAAA,CAAMG,WAAW,CAACuC,KAAK,EAAEV,IACnDE,CAAAA,EAAAA,SAAAA,CAAAA,CAAAA;AAGJ,IAAA,IAAIb,OAAS,EAAA;AACTwB,QAAAA,+BAAAA,CAAgC7C,OAAOgC,IAAMM,EAAAA,SAAAA,CAAAA,CAAAA;KAC1C,MAAA;AACHO,QAAAA,+BAAAA,CAAgC7C,OAAOgC,IAAME,EAAAA,SAAAA,CAAAA,CAAAA;AACjD,KAAA;AAEAc,IAAAA,0BAAAA,CAA2BhD,KAAOgC,EAAAA,IAAAA,CAAAA,CAAAA;AACtC;;ACxBO,SAAS4B,cAAcC,GAAW,EAAA;IACrC,OAAOA,GAAAA,CAAIC,SAAS,CAAC,CAAG,EAAA,CAAA,CAAA,KAAO,aAC3BD,GAAIC,CAAAA,SAAS,CAAC,CAAA,EAAG,CAAO,CAAA,KAAA,UAAA,CAAA;AAChC;;;ACHYC,CAAAA,SAAAA,QAAAA,EAAAA;;;;;;;GAAAA,QAAAA,KAAAA,QAAAA,GAAAA,EAAAA,CAAAA,CAAAA,CAAAA;;AASAC,CAAAA,SAAAA,WAAAA,EAAAA;;;GAAAA,WAAAA,KAAAA,WAAAA,GAAAA,EAAAA,CAAAA,CAAAA;;ACYL,MAAMC,YAAYC,mBAAgB,CAAA;IACrCC,KAAO,EAAA;QACHnC,IAAM,EAAA;YACFoC,IAAMC,EAAAA,MAAAA;YACNC,OAAS,EAAA,CAAA;AACb,SAAA;QACApC,SAAW,EAAA;YACPkC,IAAMG,EAAAA,MAAAA;YACNC,QAAU,EAAA,IAAA;AACd,SAAA;AACJ,KAAA;AACAC,IAAAA,KAAAA,CAAAA,CAAMN,KAAK,EAAE,EAAEO,KAAK,EAAE,EAAA;AAClB,QAAA,MAAM1E,KAAQO,GAAAA,WAAAA,EAAAA,CAAAA;QACd,MAAM2B,SAAAA,GAAYyC,UAAMR,KAAO,EAAA,WAAA,CAAA,CAAA;AAE/B,QAAA,MAAMS,kBAAkB,OAAOlC,KAAAA,GAAAA;AAC3B,YAAA,MAAMe,wBAAyBzD,CAAAA,KAAAA,EAAOmE,KAAMnC,CAAAA,IAAI,EAAEU,KAAAA,CAAAA,CAAAA;AACtD,SAAA,CAAA;AAEA,QAAA,MAAMmC,2BAA2B,OAC7BnC,KAAAA,GACCiB,iBAAiB3D,KAAOmE,EAAAA,KAAAA,CAAMnC,IAAI,EAAEU,KAAAA,CAAAA,CAAAA;QAEzC,OAAO,IAAA;AACH,YAAA,MAAMoC,SAAY,GAAA,IAAA;gBACd,IAAI5D,IAAAA,CAAAA;gBAEJ,OAAQgB,SAAAA,CAAUQ,KAAK,CAAC0B,IAAI;AACxB,oBAAA,KAAKJ,YAAYe,SAAS;AAAE,wBAAA;AACxB,4BAAA,MAAMC,OAAUC,GAAAA,sBAAAA,CAAkBlB,QAASgB,CAAAA,SAAS,EAAEL,KAAAA,CAAAA,CAAAA;AACtD,4BAAA,IAAIM,OAAS,EAAA;gCACT9D,IAAOgE,GAAAA,kBAAAA,CAAcnB,QAASgB,CAAAA,SAAS,EAAE;AACrC7C,oCAAAA,SAAAA,EAAWA,UAAUQ,KAAK;iCAC3BgC,EAAAA,KAAAA,CAAAA,CAAAA;6BACA,MAAA;AACHxD,gCAAAA,IAAAA,GAAOiE,MAAE,KAAO,EAAA;oCACZC,KAAO,EAAA,eAAA;iCACRlD,EAAAA,SAAAA,CAAUQ,KAAK,CAAC9B,IAAI,CAAA,CAAA;AAC3B,6BAAA;AACA,4BAAA,MAAA;AACJ,yBAAA;AACA,oBAAA;AAAS,wBAAA;AACL,4BAAA,IAAI,OAAOsB,SAAUQ,CAAAA,KAAK,CAAC5B,QAAQ,KAAK,WAAa,EAAA;AACjD,gCAAA,MAAMkE,OAAUC,GAAAA,sBAAAA,CAAkBlB,QAASsB,CAAAA,IAAI,EAAEX,KAAAA,CAAAA,CAAAA;AACjD,gCAAA,IAAIM,OAAS,EAAA;oCACT9D,IAAOgE,GAAAA,kBAAAA,CAAcnB,QAASsB,CAAAA,IAAI,EAAE;AAChCnD,wCAAAA,SAAAA,EAAWA,UAAUQ,KAAK;AAC1BkC,wCAAAA,eAAAA;wCACAU,QAAUpD,EAAAA,SAAAA,CAAUQ,KAAK,CAAChB,MAAM;qCACjCgD,EAAAA,KAAAA,CAAAA,CAAAA;iCACA,MAAA;AACH,oCAAA,MAAMa,SAA6B,GAAA;wCAC/B7D,MAAQQ,EAAAA,SAAAA,CAAUQ,KAAK,CAAChB,MAAM;wCAC9B8D,QAAU,EAAA,KAAA;wCACVC,QAAU,EAAA,IAAA;AACd,qCAAA,CAAA;AAEA,oCAAA,IAAIvD,SAAUQ,CAAAA,KAAK,CAAC7B,GAAG,EAAE;AACrB,wCAAA,IACI+C,aAAc1B,CAAAA,SAAAA,CAAUQ,KAAK,CAAC7B,GAAG,CAAA,IACjCqB,SAAUQ,CAAAA,KAAK,CAAC7B,GAAG,CAAC6E,UAAU,CAAC,GACjC,CAAA,EAAA;AACEH,4CAAAA,SAAAA,CAAUI,IAAI,GAAGzD,SAAUQ,CAAAA,KAAK,CAAC7B,GAAG,CAAA;AACpC,4CAAA,IAAIqB,SAAUQ,CAAAA,KAAK,CAACkD,SAAS,EAAE;AAC3BL,gDAAAA,SAAAA,CAAUM,MAAM,GAAG3D,SAAUQ,CAAAA,KAAK,CAACkD,SAAS,CAAA;AAChD,6CAAA;yCACG,MAAA;AACHL,4CAAAA,SAAAA,CAAUO,EAAE,GAAG5D,SAAUQ,CAAAA,KAAK,CAAC7B,GAAG,CAAA;AACtC,yCAAA;AACJ,qCAAA;AAEAK,oCAAAA,IAAAA,GAAOiE,MAAEY,WAAQ,EAAA;wCACbX,KAAO,EAAA;AACH,4CAAA,UAAA;AACA,4CAAA;gDACI,WAAalD,EAAAA,SAAAA,CAAUQ,KAAK,CAACZ,IAAI;AACrC,6CAAA;AACH,yCAAA;AACD,wCAAA,GAAGyD,SAAS;AACZS,wCAAAA,SAAAA,CAAAA,GAAAA;AACI,4CAAA,IAAI,CAAC9D,SAAAA,CAAUQ,KAAK,CAAC7B,GAAG,EAAE;AACtB,gDAAA,OAAO+D,eAAgBqB,CAAAA,IAAI,CAAC,IAAA,EAAM/D,UAAUQ,KAAK,CAAA,CAAA;AACrD,6CAAA;4CAEA,OAAOJ,SAAAA,CAAAA;AACX,yCAAA;AACA4D,wCAAAA,OAAAA,CAAAA,GAAAA;AACI,4CAAA,OAAOtB,eAAgBqB,CAAAA,IAAI,CAAC,IAAA,EAAM/D,UAAUQ,KAAK,CAAA,CAAA;AACrD,yCAAA;qCACD,EAAA;AACC4B,wCAAAA,OAAAA,EAAS,IAAM;mDACPpC,SAAUQ,CAAAA,KAAK,CAACyD,IAAI,GAAG;AAAChB,oDAAAA,KAAAA,CAAE,GAAK,EAAA;wDAAEC,KAAOlD,EAAAA,SAAAA,CAAUQ,KAAK,CAACyD,IAAI;AAAC,qDAAA,CAAA;AAAG,iDAAA,GAAG,EAAE;AACzEhB,gDAAAA,KAAAA,CAAE,MAAQ,EAAA;oDAAEC,KAAO,EAAA,eAAA;iDAAmB,EAAA;oDAAClD,SAAUQ,CAAAA,KAAK,CAAC9B,IAAI;AAAC,iDAAA,CAAA;AAC/D,6CAAA;AACL,qCAAA,CAAA,CAAA;AACJ,iCAAA;AACJ,6BAAA,MAAO,IAAIqE,sBAAAA,CAAkBlB,QAASqC,CAAAA,GAAG,EAAE1B,KAAQ,CAAA,EAAA;gCAC/CxD,IAAOgE,GAAAA,kBAAAA,CAAcnB,QAASqC,CAAAA,GAAG,EAAE;AAC/BlE,oCAAAA,SAAAA,EAAWA,UAAUQ,KAAK;AAC1BkC,oCAAAA,eAAAA;AACAC,oCAAAA,wBAAAA;iCACDH,EAAAA,KAAAA,CAAAA,CAAAA;6BACA,MAAA;gCACH,IAAI2B,KAAAA,CAAAA;AACJ,gCAAA,IAAIpB,sBAAkBlB,CAAAA,QAAAA,CAASuC,SAAS,EAAE5B,KAAQ,CAAA,EAAA;oCAC9C2B,KAAQnB,GAAAA,kBAAAA,CAAcnB,QAASuC,CAAAA,SAAS,EAAE;AACtCpE,wCAAAA,SAAAA,EAAWA,UAAUQ,KAAK;AAC1BkC,wCAAAA,eAAAA;AACAC,wCAAAA,wBAAAA;AACJ,qCAAA,CAAA,CAAA;iCACG,MAAA;AACHwB,oCAAAA,KAAAA,GAAQlB,MAAE,KAAO,EAAA;wCACbC,KAAO,EAAA,eAAA;AACPc,wCAAAA,OAAAA,CAAAA,CAAQK,MAAW,EAAA;AACfA,4CAAAA,MAAAA,CAAOC,cAAc,EAAA,CAAA;AAErB,4CAAA,OAAO3B,wBAAyBoB,CAAAA,IAAI,CAAC,IAAA,EAAM/D,UAAUQ,KAAK,CAAA,CAAA;AAC9D,yCAAA;qCACD,EAAA;AAAC,wCAAA;+CACIR,SAAUQ,CAAAA,KAAK,CAACyD,IAAI,GAAG;AAAChB,gDAAAA,KAAAA,CAAE,GAAK,EAAA;oDAAEC,KAAOlD,EAAAA,SAAAA,CAAUQ,KAAK,CAACyD,IAAI;AAAC,iDAAA,CAAA;AAAG,6CAAA,GAAG,EAAE;AACzEhB,4CAAAA,KAAAA,CAAE,MAAQ,EAAA;gDAAEC,KAAO,EAAA,eAAA;6CAAmB,EAAA;gDAAClD,SAAUQ,CAAAA,KAAK,CAAC9B,IAAI;AAAC,6CAAA,CAAA;AAC/D,yCAAA;AAAC,qCAAA,CAAA,CAAA;AACN,iCAAA;gCAEA,IAAIX,KAAAA,CAAAA;AAEJ,gCAAA,IAAIgF,sBAAkBlB,CAAAA,QAAAA,CAAS0C,SAAS,EAAE/B,KAAQ,CAAA,EAAA;oCAC9CzE,KAAQiF,GAAAA,kBAAAA,CAAcnB,QAAS0C,CAAAA,SAAS,EAAE;AACtCvE,wCAAAA,SAAAA,EAAWA,UAAUQ,KAAK;AAC1BkC,wCAAAA,eAAAA;AACAC,wCAAAA,wBAAAA;AACJ,qCAAA,CAAA,CAAA;AACJ,iCAAA,MAAO,IAAI3C,SAAAA,CAAUQ,KAAK,CAACd,eAAe,EAAE;AACxC,oCAAA,MAAM8E,uBAAuBC,oBAAiB,CAAA,YAAA,CAAA,CAAA;AAC9C1G,oCAAAA,KAAAA,GAAQkF,MAAEuB,oBAAsB,EAAA;wCAC5BtB,KAAO,EAAA,6BAAA;AACPpD,wCAAAA,IAAAA,EAAMmC,MAAMnC,IAAI;wCAChB4E,QAAU1E,EAAAA,SAAAA,CAAUQ,KAAK,CAAC5B,QAAQ;AACtC,qCAAA,CAAA,CAAA;AACJ,iCAAA;gCAEAI,IAAO,GAAA;AACHmF,oCAAAA,KAAAA;AACApG,oCAAAA,KAAAA;AACH,iCAAA,CAAA;AACL,6BAAA;AACA,4BAAA,MAAA;AACJ,yBAAA;AACJ,iBAAA;gBAEA,OAAOiB,IAAAA,CAAAA;AACX,aAAA,CAAA;AAEA,YAAA,OAAOiE,MAAE,KAAO,EAAA;gBACZC,KAAO,EAAA;AACH,oBAAA,UAAA;AACA,oBAAA;wBACI1D,MAAQQ,EAAAA,SAAAA,CAAUQ,KAAK,CAAChB,MAAM,IAAIQ,SAAUQ,CAAAA,KAAK,CAACd,eAAe;AACrE,qBAAA;AACH,iBAAA;aACF,EAAA;AACCkD,gBAAAA,SAAAA,EAAAA;AACH,aAAA,CAAA,CAAA;AACL,SAAA,CAAA;AACJ,KAAA;AACJ,CAAG;;ACjLI,MAAM+B,aAAa3C,mBAAgB,CAAA;IACtCC,KAAO,EAAA;QACHnC,IAAM,EAAA;YACFoC,IAAMC,EAAAA,MAAAA;YACNC,OAAS,EAAA,CAAA;AACb,SAAA;QACAsC,QAAU,EAAA;YACNxC,IAAM0C,EAAAA,KAAAA;YACNxC,OAAShC,EAAAA,SAAAA;AACb,SAAA;AACJ,KAAA;AACAmC,IAAAA,KAAAA,CAAAA,CAAMN,KAAK,EAAE,EAAEO,KAAK,EAAE,EAAA;AAClB,QAAA,MAAM1E,KAAQO,GAAAA,WAAAA,EAAAA,CAAAA;AAEd,QAAA,MAAMN,QAAQ8G,YAAS,CAAA,IAAA;AACnB,YAAA,IAAI,OAAO5C,KAAAA,CAAMyC,QAAQ,KAAK,WAAa,EAAA;AACvC,gBAAA,OAAOzC,MAAMyC,QAAQ,CAAA;AACzB,aAAA;AAEA,YAAA,OAAO7E,2BAA2B/B,KAAMC,CAAAA,KAAK,CAACyC,KAAK,EAAEyB,MAAMnC,IAAI,CAAA,CAAA;AACnE,SAAA,CAAA,CAAA;AAEA,QAAA,MAAMgF,aAAa,CAACC,OAAAA,GAAAA;AAIhB,YAAA,IAAIhC,sBAAkBlB,CAAAA,QAAAA,CAASmD,IAAI,EAAExC,KAAQ,CAAA,EAAA;AACzC,gBAAA,OAAOQ,kBAAcnB,CAAAA,QAAAA,CAASmD,IAAI,EAAED,OAASvC,EAAAA,KAAAA,CAAAA,CAAAA;AACjD,aAAA;AAEA,YAAA,OAAOS,MAAElB,SAAWgD,EAAAA,OAAAA,CAAAA,CAAAA;AACxB,SAAA,CAAA;AAEA,QAAA,MAAME,aAAgB,GAAA,IAAA;AAClB,YAAA,MAAMP,WAAqB,EAAE,CAAA;YAE7B,IAAI3G,KAAAA,CAAMyC,KAAK,EAAE;gBACb,IAAK,IAAI1B,IAAI,CAAGA,EAAAA,CAAAA,GAAIf,MAAMyC,KAAK,CAAC3B,MAAM,EAAEC,CAAK,EAAA,CAAA;AACzC,oBAAA,IAAIf,MAAMyC,KAAK,CAAC1B,CAAE,CAAA,CAACW,OAAO,EAAE;wBACxBiF,QAASvD,CAAAA,IAAI,CAAC8B,KAAAA,CACV,IACA,EAAA;4BACIiC,GAAKpG,EAAAA,CAAAA;yBAET,EAAA;4BACIgG,UAAW,CAAA;AACPhF,gCAAAA,IAAAA,EAAMmC,MAAMnC,IAAI;gCAChBE,SAAWjC,EAAAA,KAAAA,CAAMyC,KAAK,CAAC1B,CAAE,CAAA;AAC7B,6BAAA,CAAA;AACH,yBAAA,CAAA,CAAA,CAAA;AAET,qBAAA;AACJ,iBAAA;AACJ,aAAA;YAEA,OAAO4F,QAAAA,CAAAA;AACX,SAAA,CAAA;QAEA,OAAO,IAAMzB,MAAE,IAAM,EAAA;gBACjBC,KAAO,EAAA,WAAA;aACR,EAAA;AAAC+B,gBAAAA,aAAAA,EAAAA;AAAgB,aAAA,CAAA,CAAA;AACxB,KAAA;AACJ,CAAG;;AC3DI,eAAeE,eAAAA,CAClBJ,OAAkC,GAAA,EAAE,EAAA;AAEpC,IAAA,MAAMjH,KAAQO,GAAAA,WAAAA,EAAAA,CAAAA;AACd,IAAA,MAAM+G,kBAAqBpI,GAAAA,qBAAAA,EAAAA,CAAAA;AAE3B,IAAA,IAAIiB,cAAgC,EAAE,CAAA;AAEtC,IAAA,IAAI,OAAO8G,OAAAA,CAAQ9G,WAAW,KAAK,WAAa,EAAA;AAC5CA,QAAAA,WAAAA,GAAc8G,QAAQ9G,WAAW,CAAA;KAC9B,MAAA,IAAI8G,OAAQM,CAAAA,KAAK,EAAE;AACtB,QAAA,IAAI,OAAOD,kBAAAA,CAAmBE,qBAAqB,KAAK,WAAa,EAAA;AACjErH,YAAAA,WAAAA,GAAc,MAAMmH,kBAAAA,CAAmBE,qBAAqB,CAACP,QAAQM,KAAK,CAAA,CAAA;AAC9E,SAAA,MAAO,IAAI,OAAOD,kBAAmBG,CAAAA,mBAAmB,KAAK,WAAa,EAAA;AACtEtH,YAAAA,WAAAA,GAAc,MAAMmH,kBAAmBG,CAAAA,mBAAmB,CAACR,OAAQM,CAAAA,KAAK,CAACG,QAAQ,CAAA,CAAA;AACrF,SAAA;KACG,MAAA,IACHT,QAAQpG,GAAG,IACX,OAAOyG,kBAAmBG,CAAAA,mBAAmB,KAAK,WACpD,EAAA;AACEtH,QAAAA,WAAAA,GAAc,MAAMmH,kBAAAA,CAAmBG,mBAAmB,CAACR,QAAQpG,GAAG,CAAA,CAAA;AAC1E,KAAA;IAEA,IAAIV,WAAAA,CAAYY,MAAM,GAAG,CAAG,EAAA;AACxB,QAAA,IAAK,IAAIC,CAAI,GAAA,CAAA,EAAGA,IAAIb,WAAYY,CAAAA,MAAM,EAAEC,CAAK,EAAA,CAAA;AACzC,YAAA,IAAI,OAAOb,WAAW,CAACa,EAAE,CAACgB,IAAI,KAAK,WAAa,EAAA;AAC5C7B,gBAAAA,WAAW,CAACa,CAAAA,CAAE,CAACgB,IAAI,GAAGhB,CAAAA,CAAAA;AAC1B,aAAA;AACJ,SAAA;AACJ,KAAA;AAEA,IAAA,IAAI2G,SAAY,GAAA,CAAA,CAAA;IAEhB,IAAI9G,GAAAA,CAAAA;AACJ,IAAA,IAAI,OAAOoG,OAAAA,CAAQpG,GAAG,KAAK,QAAU,EAAA;AACjCA,QAAAA,GAAAA,GAAMoG,QAAQpG,GAAG,CAAA;AACrB,KAAA,MAAO,IAAI,OAAOoG,OAAQM,CAAAA,KAAK,KAAK,WAAa,EAAA;QAC7C1G,GAAMoG,GAAAA,OAAAA,CAAQM,KAAK,CAACG,QAAQ,CAAA;AAChC,KAAA;;AAGA,IAAA,MAAO,IAAM,CAAA;AACT,QAAA,IAAIzH,KAAQ,GAAA,MAAMqH,kBACbhE,CAAAA,QAAQ,CAACqE,SAAWxH,EAAAA,WAAAA,CAAAA,CAAAA;AAEzB,QAAA,IAAI,CAACF,KAAAA,IAASA,KAAMc,CAAAA,MAAM,KAAK,CAAG,EAAA;AAC9B,YAAA,MAAA;AACJ,SAAA;;AAGAd,QAAAA,KAAAA,GAAQsC,0BAA0BtC,KAAO0H,EAAAA,SAAAA,CAAAA,CAAAA;QAEzC,IAAIC,WAAAA,GAAcxF,0BAA0BjC,WAAawH,EAAAA,SAAAA,CAAAA,CAAAA;AAEzD,QAAA,IAAI,CAACC,WAAa,EAAA;AACd,YAAA,IAAI/G,GAAK,EAAA;AACL,gBAAA,MAAMgH,aAAa5H,KAAMkC,CAAAA,MAAM,CAC3B,CAACjB,IAAAA,GAASV,sBAAsBU,IAAM,EAAA;AAAEL,wBAAAA,GAAAA;AAAI,qBAAA,CAAA,CAAA,CAAA;gBAEhD,IAAIgH,UAAAA,CAAW9G,MAAM,GAAG,CAAG,EAAA;AACvB,oBAAA,CAAC6G,YAAY,GAAGC,UAAAA,CAAAA;AACpB,iBAAA;AACJ,aAAA;AAEA,YAAA,IAAI,CAACD,WAAa,EAAA;AACd,gBAAA,MAAME,cAAc7H,KACfkC,CAAAA,MAAM,CAAC,CAACjB,IAAAA,GAASA,KAAKoD,OAAO,CAAA,CAAA;gBAClC,IAAIwD,WAAAA,CAAY/G,MAAM,GAAG,CAAG,EAAA;oBACxB6G,WAAcE,GAAAA,WAAAA,CAAAA;iBACX,MAAA;AACH,oBAAA,CAACF,YAAY,GAAG3H,KAAAA,CAAAA;AACpB,iBAAA;AACJ,aAAA;AAEA2H,YAAAA,WAAAA,CAAY5F,IAAI,GAAG2F,SAAAA,CAAAA;AACnBxH,YAAAA,WAAAA,CAAYkD,IAAI,CAACuE,WAAAA,CAAAA,CAAAA;AACrB,SAAA;AAEA,QAAA,IAAI,CAACA,WAAa,EAAA;AACd,YAAA,SAAA;AACJ,SAAA;AAEA/E,QAAAA,+BAAAA,CAAgC7C,OAAO2H,SAAWC,EAAAA,WAAAA,CAAAA,CAAAA;QAElD,MAAM1E,sBAAAA,CAAuBlD,OAAO2H,SAAWxH,EAAAA,WAAAA,CAAAA,CAAAA;AAE/CwH,QAAAA,SAAAA,EAAAA,CAAAA;AACJ,KAAA;AACJ;;AChFO,SAASI,OAAAA,CAAQ9I,QAAa,EAAE+I,OAAgB,EAAA;IACnD,IAAIA,OAAAA,CAAQC,QAAQ,EAAE;AAClB5I,QAAAA,qBAAAA,CAAsB2I,QAAQC,QAAQ,CAAA,CAAA;AAC1C,KAAA;IAEAnI,UAAWb,CAAAA,QAAAA,CAAAA,CAAAA;AAEX,IAAA,MAAMiJ,eAAeC,wBAAoBlJ,CAAAA,QAAAA,CAAAA,CAAAA;IACzC,IAAI+I,OAAAA,CAAQE,YAAY,EAAE;QACtBE,6BAAyBF,CAAAA,YAAAA,EAAcF,QAAQE,YAAY,CAAA,CAAA;AAC/D,KAAA;AAEA3D,IAAAA,MAAAA,CAAO8D,OAAO,CAAC;AACXpE,QAAAA,SAAAA;AACA4C,QAAAA,UAAAA;AACJ,KAAA,CAAA,CAAGyB,OAAO,CAAC,CAAC,CAACC,eAAerG,SAAU,CAAA,GAAA;QAClCjD,QAASiD,CAAAA,SAAS,CAACqG,aAAerG,EAAAA,SAAAA,CAAAA,CAAAA;AACtC,KAAA,CAAA,CAAA;AACJ,CAAA;AAEA,YAAe;AACX6F,IAAAA,OAAAA;AACJ,CAA4B;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAU,MAAM,KAAK,CAAC;AAEvC,OAAO,OAAO,CAAC;AAQf,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEtC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,gBAAgB,CAAC;AAE/B,wBAAgB,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,GAAI,IAAI,CAe9D;;;;AAED,wBAE4B;AAC5B,OAAO,EAAE,sBAAsB,EAAE,MAAM,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAU,MAAM,KAAK,CAAC;AAEvC,OAAO,OAAO,CAAC;AAQf,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAEtC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,gBAAgB,CAAC;AAE/B,wBAAgB,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,GAAI,IAAI,CAkB9D;;;;AAED,wBAE4B;AAC5B,OAAO,EAAE,sBAAsB,EAAE,MAAM,QAAQ,CAAC"}
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { hasNormalizedSlot, normalizeSlot, applyPluginBaseOptions } from '@vuecs/core';
1
+ import { hasNormalizedSlot, normalizeSlot, installStoreManager, applyStoreManagerOptions } from '@vuecs/core';
2
2
  import { inject, ref, provide, hasInjectionContext, isRef, defineComponent, toRef, h, resolveComponent, computed } from 'vue';
3
3
  import { VCLink } from '@vuecs/link';
4
4
 
@@ -563,7 +563,10 @@ function install(instance, options) {
563
563
  setNavigationProvider(options.provider);
564
564
  }
565
565
  setupStore(instance);
566
- applyPluginBaseOptions(instance, options);
566
+ const storeManager = installStoreManager(instance);
567
+ if (options.storeManager) {
568
+ applyStoreManagerOptions(storeManager, options.storeManager);
569
+ }
567
570
  Object.entries({
568
571
  VCNavItem,
569
572
  VCNavItems
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../src/provider/module.ts","../src/store/module.ts","../src/core/match.ts","../src/core/expansion.ts","../src/core/reset.ts","../src/core/tier.ts","../src/core/replace.ts","../src/core/refresh.ts","../src/core/build.ts","../src/core/flatten.ts","../src/core/select.ts","../src/core/toggle.ts","../src/utils/url.ts","../src/constants.ts","../src/components/item.ts","../src/components/items.ts","../src/module.ts","../src/index.ts"],"sourcesContent":["import type { NavigationProvider } from './type';\n\nlet instance : NavigationProvider | undefined;\n\nexport function useNavigationProvider(module?: NavigationProvider) : NavigationProvider {\n if (typeof instance !== 'undefined') {\n return instance;\n }\n\n if (typeof module === 'undefined') {\n throw new Error('A Navigation Provider must be set!');\n }\n\n instance = module;\n\n return instance;\n}\n\nexport function setNavigationProvider(module: NavigationProvider) {\n instance = module;\n}\n\nexport function createNavigationProvider(input: NavigationProvider) : NavigationProvider {\n return input;\n}\n","/* eslint-disable vue/no-ref-as-operand */\nimport type { App } from 'vue';\nimport {\n hasInjectionContext, inject, provide, ref,\n} from 'vue';\nimport type { NavigationStore } from './type';\n\nexport const StoreSymbol = Symbol.for('VLNavigationStore');\n\nexport function isStoreInjected() {\n if (!hasInjectionContext()) {\n return false;\n }\n\n const instance = inject(StoreSymbol);\n return !!instance;\n}\n\nexport function setupStore(app?: App) {\n const store : NavigationStore = {\n items: ref([]),\n itemsActive: ref([]),\n };\n\n if (typeof app === 'undefined') {\n if (isStoreInjected()) {\n return;\n }\n\n provide(StoreSymbol, store);\n return;\n }\n\n if (\n app._context &&\n app._context.provides &&\n app._context.provides[StoreSymbol]\n ) {\n return;\n }\n\n app.provide(StoreSymbol, store);\n}\n\nexport function injectStore() : NavigationStore {\n const instance = inject(StoreSymbol);\n if (!instance) {\n throw new Error('The Store is not set.');\n }\n\n return instance as NavigationStore;\n}\n","import type { NavigationItem } from '../type';\n\nexport function isNavigationItemMatch(\n one?: NavigationItem,\n two?: NavigationItem,\n): boolean {\n if (!one || !two) {\n return false;\n }\n\n if (\n one.id &&\n two.id &&\n one.id === two.id\n ) {\n return true;\n }\n\n if (\n one.name &&\n two.name &&\n one.name === two.name\n ) {\n return true;\n }\n\n if (\n one.url &&\n two.url &&\n one.url === two.url\n ) {\n return true;\n }\n\n if (\n one.children &&\n two.children &&\n one.children.length === two.children.length\n ) {\n for (let i = 0; i < one.children.length; i++) {\n if (!isNavigationItemMatch(one.children[i], two.children[i])) {\n return false;\n }\n }\n\n return true;\n }\n\n return false;\n}\n","import type { NavigationItem } from '../type';\nimport { isNavigationItemMatch } from './match';\n\n// --------------------------------------------------\n\nexport function setNavigationExpansion(\n items: NavigationItem[],\n item: NavigationItem,\n parentMatch = false,\n) : { items: NavigationItem[], match: boolean} {\n let matchInIteration = false;\n\n for (let i = 0; i < items.length; i++) {\n const isMatch = isNavigationItemMatch(items[i], item);\n let isChildMatch = false;\n\n const { children } = items[i];\n\n if (typeof children !== 'undefined') {\n const { items: childItems, match: childMatch } = setNavigationExpansion(children, item, isMatch);\n items[i].children = childItems;\n isChildMatch = childMatch;\n }\n\n if (isMatch) {\n items[i].active = true;\n }\n\n if (isMatch || isChildMatch) {\n items[i].display = true;\n items[i].displayChildren = true;\n }\n\n if (parentMatch) {\n items[i].display = true;\n }\n\n if (!matchInIteration) {\n matchInIteration = isMatch || isChildMatch;\n }\n }\n\n if (matchInIteration) {\n for (let i = 0; i < items.length; i++) {\n items[i].display = true;\n }\n }\n\n return { items, match: matchInIteration };\n}\n","import type { NavigationItem } from '../type';\n\nexport function resetNavigationItem(\n items: NavigationItem[],\n root = true,\n) {\n for (let i = 0; i < items.length; i++) {\n items[i].display = root;\n items[i].displayChildren = false;\n items[i].active = false;\n\n const { children } = items[i];\n\n if (typeof children !== 'undefined') {\n items[i].children = resetNavigationItem(children, false);\n }\n }\n\n return items;\n}\n","import type { MaybeRef } from 'vue';\nimport { isRef } from 'vue';\nimport type { NavigationItem } from '../type';\n\nexport function findNavigationItemsForTier(\n items: NavigationItem[],\n tier: number,\n) : NavigationItem[] {\n const filterFn = (\n component: NavigationItem,\n ) => typeof component.tier !== 'undefined' && component.tier === tier;\n\n return items.filter(filterFn);\n}\n\nexport function findNavigationItemForTier(\n items: NavigationItem[],\n tier: number,\n) : NavigationItem | undefined {\n const data = findNavigationItemsForTier(items, tier);\n if (data.length >= 1) {\n return data[0];\n }\n\n return undefined;\n}\n\nexport function setTierForNavigationItems(\n items: MaybeRef<NavigationItem[]>,\n tier: number,\n) {\n const mapFn = (component: NavigationItem) => {\n component.tier = tier;\n return component;\n };\n\n if (isRef(items)) {\n return items.value.map(mapFn);\n }\n\n return items.map(mapFn);\n}\n\nexport function removeTierFromNavigationItems(\n items: MaybeRef<NavigationItem[]>,\n tier: number,\n) {\n const filterFn = (items: NavigationItem) => typeof items.tier === 'undefined' || items.tier !== tier;\n if (isRef(items)) {\n return items.value.filter(filterFn);\n }\n\n return items.filter(filterFn);\n}\n","import type { MaybeRef } from 'vue';\nimport type { NavigationStore } from '../store';\nimport type { NavigationItem } from '../type';\nimport { removeTierFromNavigationItems, setTierForNavigationItems } from './tier';\n\nexport function replaceNavigationTierItemActive(\n store: NavigationStore,\n tier: number,\n item: NavigationItem | undefined,\n) {\n const items = removeTierFromNavigationItems(store.itemsActive.value, tier);\n\n if (item) {\n item.tier = tier;\n\n store.itemsActive.value = [\n ...items,\n item,\n ];\n } else {\n store.itemsActive.value = items;\n }\n}\n\nexport function replaceNavigationTierItems(\n store: NavigationStore,\n tier: number,\n items: MaybeRef<NavigationItem[]>,\n) {\n const componentsExisting = removeTierFromNavigationItems(store.items.value, tier);\n\n store.items.value = [\n ...componentsExisting,\n ...setTierForNavigationItems(items, tier),\n ];\n}\n","import type { NavigationStore } from '../store';\nimport { setNavigationExpansion } from './expansion';\nimport { resetNavigationItem } from './reset';\nimport { replaceNavigationTierItems } from './replace';\nimport { findNavigationItemForTier, findNavigationItemsForTier } from './tier';\n\nexport function refreshNavigationTierItems(store: NavigationStore, tier: number) {\n const components = resetNavigationItem(findNavigationItemsForTier(store.items.value, tier));\n\n const component = findNavigationItemForTier(store.itemsActive.value, tier);\n if (component) {\n const { items } = setNavigationExpansion(components, component);\n replaceNavigationTierItems(store, tier, items);\n return;\n }\n\n replaceNavigationTierItems(store, tier, components);\n}\n","import { useNavigationProvider } from '../provider';\nimport type { NavigationStore } from '../store';\nimport type { NavigationItem } from '../type';\nimport { refreshNavigationTierItems } from './refresh';\nimport { replaceNavigationTierItems } from './replace';\nimport { findNavigationItemForTier } from './tier';\n\nexport async function buildNavigationForTier(\n store: NavigationStore,\n tier: number,\n itemsActive?: NavigationItem[],\n): Promise<boolean> {\n if (\n typeof itemsActive === 'undefined' ||\n itemsActive.length === 0\n ) {\n let tierStartIndex = 0;\n const tierEndIndex = tier;\n\n itemsActive = [];\n\n while (tierStartIndex <= tierEndIndex) {\n const component = findNavigationItemForTier(store.itemsActive.value, tierStartIndex);\n if (!component) {\n break;\n }\n\n itemsActive.push(component);\n\n tierStartIndex++;\n }\n }\n\n const items = await useNavigationProvider()\n .getItems(\n tier,\n itemsActive,\n );\n\n if (typeof items === 'undefined') {\n return false;\n }\n\n replaceNavigationTierItems(store, tier, items);\n refreshNavigationTierItems(store, tier);\n\n return true;\n}\n","import type { NavigationItem } from '../type';\n\nexport function flattenNestedNavigationItems(\n items: NavigationItem[],\n) : NavigationItem[] {\n const output : NavigationItem[] = [];\n\n for (let i = 0; i < items.length; i++) {\n const { children, ...data } = items[i];\n\n output.push(data);\n\n if (\n children &&\n children.length > 0\n ) {\n output.push(...flattenNestedNavigationItems([...children]));\n }\n }\n\n return output;\n}\n","import type { NavigationStore } from '../store';\nimport type { NavigationItem } from '../type';\nimport { buildNavigationForTier } from './build';\nimport { isNavigationItemMatch } from './match';\nimport { refreshNavigationTierItems } from './refresh';\nimport { replaceNavigationTierItemActive } from './replace';\nimport { findNavigationItemForTier } from './tier';\n\nexport async function selectNavigationTierItem(\n store: NavigationStore,\n tier: number,\n component: NavigationItem,\n) {\n const isMatch = isNavigationItemMatch(\n findNavigationItemForTier(store.itemsActive.value, tier),\n component,\n );\n\n if (isMatch) {\n return;\n }\n\n replaceNavigationTierItemActive(store, tier, component);\n refreshNavigationTierItems(store, tier);\n\n tier++;\n\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const built = await buildNavigationForTier(store, tier);\n if (!built) {\n break;\n }\n\n tier++;\n }\n}\n","import type { NavigationStore } from '../store';\nimport type { NavigationItem } from '../type';\nimport { isNavigationItemMatch } from './match';\nimport { refreshNavigationTierItems } from './refresh';\nimport { replaceNavigationTierItemActive } from './replace';\nimport { findNavigationItemForTier } from './tier';\n\nexport function toggleNavigation(\n store: NavigationStore,\n tier: number,\n component: NavigationItem,\n) {\n const isMatch = component.displayChildren || isNavigationItemMatch(\n findNavigationItemForTier(store.itemsActive.value, tier),\n component,\n );\n\n if (isMatch) {\n replaceNavigationTierItemActive(store, tier, undefined);\n } else {\n replaceNavigationTierItemActive(store, tier, component);\n }\n\n refreshNavigationTierItems(store, tier);\n}\n","export function isAbsoluteURL(str: string): boolean {\n return str.substring(0, 7) === 'http://' ||\n str.substring(0, 8) === 'https://';\n}\n","export enum SlotName {\n ITEM = 'item',\n SEPARATOR = 'separator',\n LINK = 'link',\n SUB = 'sub',\n SUB_TITLE = 'sub-title',\n SUB_ITEMS = 'sub-items',\n}\n\nexport enum ElementType {\n LINK = 'link',\n SEPARATOR = 'separator',\n}\n","import { hasNormalizedSlot, normalizeSlot } from '@vuecs/core';\nimport type { LinkProperties } from '@vuecs/link';\nimport { VCLink } from '@vuecs/link';\nimport type { PropType, Ref, VNodeChild } from 'vue';\nimport {\n defineComponent,\n h,\n resolveComponent,\n toRef,\n} from 'vue';\nimport {\n injectStore,\n} from '../store';\nimport type { NavigationItem } from '../type';\nimport {\n selectNavigationTierItem,\n toggleNavigation,\n} from '../core';\nimport { isAbsoluteURL } from '../utils';\nimport { ElementType, SlotName } from '../constants';\n\nexport const VCNavItem = defineComponent({\n props: {\n tier: {\n type: Number,\n default: 0,\n },\n component: {\n type: Object as PropType<NavigationItem>,\n required: true,\n },\n },\n setup(props, { slots }) {\n const store = injectStore();\n const component = toRef(props, 'component') as Ref<NavigationItem>;\n\n const selectComponent = async (value: NavigationItem) => {\n await selectNavigationTierItem(store, props.tier, value);\n };\n\n const toggleComponentExpansion = async (\n value: NavigationItem,\n ) => toggleNavigation(store, props.tier, value);\n\n return () => {\n const buildItem = () : VNodeChild => {\n let item : VNodeChild;\n\n switch (component.value.type) {\n case ElementType.SEPARATOR: {\n const hasSlot = hasNormalizedSlot(SlotName.SEPARATOR, slots);\n if (hasSlot) {\n item = normalizeSlot(SlotName.SEPARATOR, {\n component: component.value,\n }, slots);\n } else {\n item = h('div', {\n class: 'nav-separator',\n }, component.value.name);\n }\n break;\n }\n default: {\n if (typeof component.value.children === 'undefined') {\n const hasSlot = hasNormalizedSlot(SlotName.LINK, slots);\n if (hasSlot) {\n item = normalizeSlot(SlotName.LINK, {\n component: component.value,\n selectComponent,\n isActive: component.value.active,\n }, slots);\n } else {\n const linkProps : LinkProperties = {\n active: component.value.active,\n disabled: false,\n prefetch: true,\n };\n\n if (component.value.url) {\n if (\n isAbsoluteURL(component.value.url) ||\n component.value.url.startsWith('#')\n ) {\n linkProps.href = component.value.url;\n if (component.value.urlTarget) {\n linkProps.target = component.value.urlTarget;\n }\n } else {\n linkProps.to = component.value.url;\n }\n }\n\n item = h(VCLink, {\n class: [\n 'nav-link',\n {\n 'root-link': component.value.root,\n },\n ],\n ...linkProps,\n onClicked() {\n if (!component.value.url) {\n return selectComponent.call(null, component.value);\n }\n\n return undefined;\n },\n onClick() {\n return selectComponent.call(null, component.value);\n },\n }, {\n default: () => [\n ...(component.value.icon ? [h('i', { class: component.value.icon })] : []),\n h('span', { class: 'nav-link-text' }, [component.value.name]),\n ],\n });\n }\n } else if (hasNormalizedSlot(SlotName.SUB, slots)) {\n item = normalizeSlot(SlotName.SUB, {\n component: component.value,\n selectComponent,\n toggleComponentExpansion,\n }, slots);\n } else {\n let title : VNodeChild;\n if (hasNormalizedSlot(SlotName.SUB_TITLE, slots)) {\n title = normalizeSlot(SlotName.SUB_TITLE, {\n component: component.value,\n selectComponent,\n toggleComponentExpansion,\n });\n } else {\n title = h('div', {\n class: 'nav-sub-title',\n onClick($event: any) {\n $event.preventDefault();\n\n return toggleComponentExpansion.call(null, component.value);\n },\n }, [[\n ...(component.value.icon ? [h('i', { class: component.value.icon })] : []),\n h('span', { class: 'nav-link-text' }, [component.value.name]),\n ]]);\n }\n\n let items : VNodeChild;\n\n if (hasNormalizedSlot(SlotName.SUB_ITEMS, slots)) {\n items = normalizeSlot(SlotName.SUB_ITEMS, {\n component: component.value,\n selectComponent,\n toggleComponentExpansion,\n });\n } else if (component.value.displayChildren) {\n const navigationComponents = resolveComponent('VCNavItems');\n items = h(navigationComponents, {\n class: 'list-unstyled nav-sub-items',\n tier: props.tier,\n entities: component.value.children,\n });\n }\n\n item = [\n title,\n items,\n ];\n }\n break;\n }\n }\n\n return item;\n };\n\n return h('div', {\n class: [\n 'nav-item',\n {\n active: component.value.active || component.value.displayChildren,\n },\n ],\n }, [\n buildItem(),\n ]);\n };\n },\n});\n","import { hasNormalizedSlot, normalizeSlot } from '@vuecs/core';\nimport type { PropType, VNode, VNodeChild } from 'vue';\nimport { computed, defineComponent, h } from 'vue';\nimport { SlotName } from '../constants';\nimport { injectStore } from '../store';\nimport type { NavigationItem } from '../type';\nimport { findNavigationItemsForTier } from '../core';\nimport { VCNavItem } from './item';\n\nexport const VCNavItems = defineComponent({\n props: {\n tier: {\n type: Number,\n default: 0,\n },\n entities: {\n type: Array as PropType<NavigationItem[]>,\n default: undefined,\n },\n },\n setup(props, { slots }) {\n const store = injectStore();\n\n const items = computed(() => {\n if (typeof props.entities !== 'undefined') {\n return props.entities;\n }\n\n return findNavigationItemsForTier(store.items.value, props.tier);\n });\n\n const buildChild = (context: {\n tier?: number,\n component: NavigationItem\n }) : VNodeChild => {\n if (hasNormalizedSlot(SlotName.ITEM, slots)) {\n return normalizeSlot(SlotName.ITEM, context, slots);\n }\n\n return h(VCNavItem, context);\n };\n\n const buildChildren = () : VNodeChild => {\n const entities : VNode[] = [];\n\n if (items.value) {\n for (let i = 0; i < items.value.length; i++) {\n if (items.value[i].display) {\n entities.push(h(\n 'li',\n {\n key: i,\n },\n [\n buildChild({\n tier: props.tier,\n component: items.value[i],\n }),\n ],\n ));\n }\n }\n }\n\n return entities;\n };\n\n return () => h('ul', {\n class: 'nav-items',\n }, [buildChildren()]);\n },\n});\n","import {\n buildNavigationForTier,\n findNavigationItemForTier,\n isNavigationItemMatch,\n replaceNavigationTierItemActive,\n setTierForNavigationItems,\n} from './core';\nimport { useNavigationProvider } from './provider';\nimport type { NavigationBuildContext } from './store';\nimport { injectStore } from './store';\nimport type { NavigationItem } from './type';\n\nexport async function buildNavigation(\n context: NavigationBuildContext = {},\n): Promise<void> {\n const store = injectStore();\n const navigationProvider = useNavigationProvider();\n\n let itemsActive: NavigationItem[] = [];\n\n if (typeof context.itemsActive !== 'undefined') {\n itemsActive = context.itemsActive;\n } else if (context.route) {\n if (typeof navigationProvider.getItemsActiveByRoute !== 'undefined') {\n itemsActive = await navigationProvider.getItemsActiveByRoute(context.route);\n } else if (typeof navigationProvider.getItemsActiveByURL !== 'undefined') {\n itemsActive = await navigationProvider.getItemsActiveByURL(context.route.fullPath);\n }\n } else if (\n context.url &&\n typeof navigationProvider.getItemsActiveByURL !== 'undefined'\n ) {\n itemsActive = await navigationProvider.getItemsActiveByURL(context.url);\n }\n\n if (itemsActive.length > 0) {\n for (let i = 0; i < itemsActive.length; i++) {\n if (typeof itemsActive[i].tier === 'undefined') {\n itemsActive[i].tier = i;\n }\n }\n }\n\n let tierIndex = 0;\n\n let url: string | undefined;\n if (typeof context.url === 'string') {\n url = context.url;\n } else if (typeof context.route !== 'undefined') {\n url = context.route.fullPath;\n }\n\n // eslint-disable-next-line no-constant-condition\n while (true) {\n let items = await navigationProvider\n .getItems(tierIndex, itemsActive);\n\n if (!items || items.length === 0) {\n break;\n }\n\n // ensure tier property\n items = setTierForNavigationItems(items, tierIndex);\n\n let currentItem = findNavigationItemForTier(itemsActive, tierIndex);\n\n if (!currentItem) {\n if (url) {\n const urlMatches = items.filter(\n (item) => isNavigationItemMatch(item, { url }),\n );\n if (urlMatches.length > 0) {\n [currentItem] = urlMatches;\n }\n }\n\n if (!currentItem) {\n const defaultItem = items\n .filter((item) => item.default);\n if (defaultItem.length > 0) {\n currentItem = defaultItem;\n } else {\n [currentItem] = items;\n }\n }\n\n currentItem.tier = tierIndex;\n itemsActive.push(currentItem);\n }\n\n if (!currentItem) {\n continue;\n }\n\n replaceNavigationTierItemActive(store, tierIndex, currentItem);\n\n await buildNavigationForTier(store, tierIndex, itemsActive);\n\n tierIndex++;\n }\n}\n","import { applyPluginBaseOptions } from '@vuecs/core';\n\nimport type { App, Plugin } from 'vue';\n\nimport './vue';\n\nimport { setNavigationProvider } from './provider';\nimport { setupStore } from './store';\nimport {\n VCNavItem,\n VCNavItems,\n} from './components';\nimport type { Options } from './type';\n\nexport * from './components';\nexport * from './provider';\nexport * from './module';\nexport * from './type';\nexport * from './core/flatten';\n\nexport function install(instance: App, options: Options) : void {\n if (options.provider) {\n setNavigationProvider(options.provider);\n }\n\n setupStore(instance);\n\n applyPluginBaseOptions(instance, options);\n\n Object.entries({\n VCNavItem,\n VCNavItems,\n }).forEach(([componentName, component]) => {\n instance.component(componentName, component);\n });\n}\n\nexport default {\n install,\n} satisfies Plugin<Options>;\nexport { buildNavigationForTier } from './core';\n"],"names":["instance","useNavigationProvider","module","Error","setNavigationProvider","createNavigationProvider","input","StoreSymbol","Symbol","for","isStoreInjected","hasInjectionContext","inject","setupStore","app","store","items","ref","itemsActive","provide","_context","provides","injectStore","isNavigationItemMatch","one","two","id","name","url","children","length","i","setNavigationExpansion","item","parentMatch","matchInIteration","isMatch","isChildMatch","childItems","match","childMatch","active","display","displayChildren","resetNavigationItem","root","findNavigationItemsForTier","tier","filterFn","component","filter","findNavigationItemForTier","data","undefined","setTierForNavigationItems","mapFn","isRef","value","map","removeTierFromNavigationItems","replaceNavigationTierItemActive","replaceNavigationTierItems","componentsExisting","refreshNavigationTierItems","components","buildNavigationForTier","tierStartIndex","tierEndIndex","push","getItems","flattenNestedNavigationItems","output","selectNavigationTierItem","built","toggleNavigation","isAbsoluteURL","str","substring","SlotName","ElementType","VCNavItem","defineComponent","props","type","Number","default","Object","required","setup","slots","toRef","selectComponent","toggleComponentExpansion","buildItem","SEPARATOR","hasSlot","hasNormalizedSlot","normalizeSlot","h","class","LINK","isActive","linkProps","disabled","prefetch","startsWith","href","urlTarget","target","to","VCLink","onClicked","call","onClick","icon","SUB","title","SUB_TITLE","$event","preventDefault","SUB_ITEMS","navigationComponents","resolveComponent","entities","VCNavItems","Array","computed","buildChild","context","ITEM","buildChildren","key","buildNavigation","navigationProvider","route","getItemsActiveByRoute","getItemsActiveByURL","fullPath","tierIndex","currentItem","urlMatches","defaultItem","install","options","provider","applyPluginBaseOptions","entries","forEach","componentName"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../src/provider/module.ts","../src/store/module.ts","../src/core/match.ts","../src/core/expansion.ts","../src/core/reset.ts","../src/core/tier.ts","../src/core/replace.ts","../src/core/refresh.ts","../src/core/build.ts","../src/core/flatten.ts","../src/core/select.ts","../src/core/toggle.ts","../src/utils/url.ts","../src/constants.ts","../src/components/item.ts","../src/components/items.ts","../src/module.ts","../src/index.ts"],"sourcesContent":["import type { NavigationProvider } from './type';\n\nlet instance : NavigationProvider | undefined;\n\nexport function useNavigationProvider(module?: NavigationProvider) : NavigationProvider {\n if (typeof instance !== 'undefined') {\n return instance;\n }\n\n if (typeof module === 'undefined') {\n throw new Error('A Navigation Provider must be set!');\n }\n\n instance = module;\n\n return instance;\n}\n\nexport function setNavigationProvider(module: NavigationProvider) {\n instance = module;\n}\n\nexport function createNavigationProvider(input: NavigationProvider) : NavigationProvider {\n return input;\n}\n","/* eslint-disable vue/no-ref-as-operand */\nimport type { App } from 'vue';\nimport {\n hasInjectionContext, inject, provide, ref,\n} from 'vue';\nimport type { NavigationStore } from './type';\n\nexport const StoreSymbol = Symbol.for('VLNavigationStore');\n\nexport function isStoreInjected() {\n if (!hasInjectionContext()) {\n return false;\n }\n\n const instance = inject(StoreSymbol);\n return !!instance;\n}\n\nexport function setupStore(app?: App) {\n const store : NavigationStore = {\n items: ref([]),\n itemsActive: ref([]),\n };\n\n if (typeof app === 'undefined') {\n if (isStoreInjected()) {\n return;\n }\n\n provide(StoreSymbol, store);\n return;\n }\n\n if (\n app._context &&\n app._context.provides &&\n app._context.provides[StoreSymbol]\n ) {\n return;\n }\n\n app.provide(StoreSymbol, store);\n}\n\nexport function injectStore() : NavigationStore {\n const instance = inject(StoreSymbol);\n if (!instance) {\n throw new Error('The Store is not set.');\n }\n\n return instance as NavigationStore;\n}\n","import type { NavigationItem } from '../type';\n\nexport function isNavigationItemMatch(\n one?: NavigationItem,\n two?: NavigationItem,\n): boolean {\n if (!one || !two) {\n return false;\n }\n\n if (\n one.id &&\n two.id &&\n one.id === two.id\n ) {\n return true;\n }\n\n if (\n one.name &&\n two.name &&\n one.name === two.name\n ) {\n return true;\n }\n\n if (\n one.url &&\n two.url &&\n one.url === two.url\n ) {\n return true;\n }\n\n if (\n one.children &&\n two.children &&\n one.children.length === two.children.length\n ) {\n for (let i = 0; i < one.children.length; i++) {\n if (!isNavigationItemMatch(one.children[i], two.children[i])) {\n return false;\n }\n }\n\n return true;\n }\n\n return false;\n}\n","import type { NavigationItem } from '../type';\nimport { isNavigationItemMatch } from './match';\n\n// --------------------------------------------------\n\nexport function setNavigationExpansion(\n items: NavigationItem[],\n item: NavigationItem,\n parentMatch = false,\n) : { items: NavigationItem[], match: boolean} {\n let matchInIteration = false;\n\n for (let i = 0; i < items.length; i++) {\n const isMatch = isNavigationItemMatch(items[i], item);\n let isChildMatch = false;\n\n const { children } = items[i];\n\n if (typeof children !== 'undefined') {\n const { items: childItems, match: childMatch } = setNavigationExpansion(children, item, isMatch);\n items[i].children = childItems;\n isChildMatch = childMatch;\n }\n\n if (isMatch) {\n items[i].active = true;\n }\n\n if (isMatch || isChildMatch) {\n items[i].display = true;\n items[i].displayChildren = true;\n }\n\n if (parentMatch) {\n items[i].display = true;\n }\n\n if (!matchInIteration) {\n matchInIteration = isMatch || isChildMatch;\n }\n }\n\n if (matchInIteration) {\n for (let i = 0; i < items.length; i++) {\n items[i].display = true;\n }\n }\n\n return { items, match: matchInIteration };\n}\n","import type { NavigationItem } from '../type';\n\nexport function resetNavigationItem(\n items: NavigationItem[],\n root = true,\n) {\n for (let i = 0; i < items.length; i++) {\n items[i].display = root;\n items[i].displayChildren = false;\n items[i].active = false;\n\n const { children } = items[i];\n\n if (typeof children !== 'undefined') {\n items[i].children = resetNavigationItem(children, false);\n }\n }\n\n return items;\n}\n","import type { MaybeRef } from 'vue';\nimport { isRef } from 'vue';\nimport type { NavigationItem } from '../type';\n\nexport function findNavigationItemsForTier(\n items: NavigationItem[],\n tier: number,\n) : NavigationItem[] {\n const filterFn = (\n component: NavigationItem,\n ) => typeof component.tier !== 'undefined' && component.tier === tier;\n\n return items.filter(filterFn);\n}\n\nexport function findNavigationItemForTier(\n items: NavigationItem[],\n tier: number,\n) : NavigationItem | undefined {\n const data = findNavigationItemsForTier(items, tier);\n if (data.length >= 1) {\n return data[0];\n }\n\n return undefined;\n}\n\nexport function setTierForNavigationItems(\n items: MaybeRef<NavigationItem[]>,\n tier: number,\n) {\n const mapFn = (component: NavigationItem) => {\n component.tier = tier;\n return component;\n };\n\n if (isRef(items)) {\n return items.value.map(mapFn);\n }\n\n return items.map(mapFn);\n}\n\nexport function removeTierFromNavigationItems(\n items: MaybeRef<NavigationItem[]>,\n tier: number,\n) {\n const filterFn = (items: NavigationItem) => typeof items.tier === 'undefined' || items.tier !== tier;\n if (isRef(items)) {\n return items.value.filter(filterFn);\n }\n\n return items.filter(filterFn);\n}\n","import type { MaybeRef } from 'vue';\nimport type { NavigationStore } from '../store';\nimport type { NavigationItem } from '../type';\nimport { removeTierFromNavigationItems, setTierForNavigationItems } from './tier';\n\nexport function replaceNavigationTierItemActive(\n store: NavigationStore,\n tier: number,\n item: NavigationItem | undefined,\n) {\n const items = removeTierFromNavigationItems(store.itemsActive.value, tier);\n\n if (item) {\n item.tier = tier;\n\n store.itemsActive.value = [\n ...items,\n item,\n ];\n } else {\n store.itemsActive.value = items;\n }\n}\n\nexport function replaceNavigationTierItems(\n store: NavigationStore,\n tier: number,\n items: MaybeRef<NavigationItem[]>,\n) {\n const componentsExisting = removeTierFromNavigationItems(store.items.value, tier);\n\n store.items.value = [\n ...componentsExisting,\n ...setTierForNavigationItems(items, tier),\n ];\n}\n","import type { NavigationStore } from '../store';\nimport { setNavigationExpansion } from './expansion';\nimport { resetNavigationItem } from './reset';\nimport { replaceNavigationTierItems } from './replace';\nimport { findNavigationItemForTier, findNavigationItemsForTier } from './tier';\n\nexport function refreshNavigationTierItems(store: NavigationStore, tier: number) {\n const components = resetNavigationItem(findNavigationItemsForTier(store.items.value, tier));\n\n const component = findNavigationItemForTier(store.itemsActive.value, tier);\n if (component) {\n const { items } = setNavigationExpansion(components, component);\n replaceNavigationTierItems(store, tier, items);\n return;\n }\n\n replaceNavigationTierItems(store, tier, components);\n}\n","import { useNavigationProvider } from '../provider';\nimport type { NavigationStore } from '../store';\nimport type { NavigationItem } from '../type';\nimport { refreshNavigationTierItems } from './refresh';\nimport { replaceNavigationTierItems } from './replace';\nimport { findNavigationItemForTier } from './tier';\n\nexport async function buildNavigationForTier(\n store: NavigationStore,\n tier: number,\n itemsActive?: NavigationItem[],\n): Promise<boolean> {\n if (\n typeof itemsActive === 'undefined' ||\n itemsActive.length === 0\n ) {\n let tierStartIndex = 0;\n const tierEndIndex = tier;\n\n itemsActive = [];\n\n while (tierStartIndex <= tierEndIndex) {\n const component = findNavigationItemForTier(store.itemsActive.value, tierStartIndex);\n if (!component) {\n break;\n }\n\n itemsActive.push(component);\n\n tierStartIndex++;\n }\n }\n\n const items = await useNavigationProvider()\n .getItems(\n tier,\n itemsActive,\n );\n\n if (typeof items === 'undefined') {\n return false;\n }\n\n replaceNavigationTierItems(store, tier, items);\n refreshNavigationTierItems(store, tier);\n\n return true;\n}\n","import type { NavigationItem } from '../type';\n\nexport function flattenNestedNavigationItems(\n items: NavigationItem[],\n) : NavigationItem[] {\n const output : NavigationItem[] = [];\n\n for (let i = 0; i < items.length; i++) {\n const { children, ...data } = items[i];\n\n output.push(data);\n\n if (\n children &&\n children.length > 0\n ) {\n output.push(...flattenNestedNavigationItems([...children]));\n }\n }\n\n return output;\n}\n","import type { NavigationStore } from '../store';\nimport type { NavigationItem } from '../type';\nimport { buildNavigationForTier } from './build';\nimport { isNavigationItemMatch } from './match';\nimport { refreshNavigationTierItems } from './refresh';\nimport { replaceNavigationTierItemActive } from './replace';\nimport { findNavigationItemForTier } from './tier';\n\nexport async function selectNavigationTierItem(\n store: NavigationStore,\n tier: number,\n component: NavigationItem,\n) {\n const isMatch = isNavigationItemMatch(\n findNavigationItemForTier(store.itemsActive.value, tier),\n component,\n );\n\n if (isMatch) {\n return;\n }\n\n replaceNavigationTierItemActive(store, tier, component);\n refreshNavigationTierItems(store, tier);\n\n tier++;\n\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const built = await buildNavigationForTier(store, tier);\n if (!built) {\n break;\n }\n\n tier++;\n }\n}\n","import type { NavigationStore } from '../store';\nimport type { NavigationItem } from '../type';\nimport { isNavigationItemMatch } from './match';\nimport { refreshNavigationTierItems } from './refresh';\nimport { replaceNavigationTierItemActive } from './replace';\nimport { findNavigationItemForTier } from './tier';\n\nexport function toggleNavigation(\n store: NavigationStore,\n tier: number,\n component: NavigationItem,\n) {\n const isMatch = component.displayChildren || isNavigationItemMatch(\n findNavigationItemForTier(store.itemsActive.value, tier),\n component,\n );\n\n if (isMatch) {\n replaceNavigationTierItemActive(store, tier, undefined);\n } else {\n replaceNavigationTierItemActive(store, tier, component);\n }\n\n refreshNavigationTierItems(store, tier);\n}\n","export function isAbsoluteURL(str: string): boolean {\n return str.substring(0, 7) === 'http://' ||\n str.substring(0, 8) === 'https://';\n}\n","export enum SlotName {\n ITEM = 'item',\n SEPARATOR = 'separator',\n LINK = 'link',\n SUB = 'sub',\n SUB_TITLE = 'sub-title',\n SUB_ITEMS = 'sub-items',\n}\n\nexport enum ElementType {\n LINK = 'link',\n SEPARATOR = 'separator',\n}\n","import { hasNormalizedSlot, normalizeSlot } from '@vuecs/core';\nimport type { LinkProperties } from '@vuecs/link';\nimport { VCLink } from '@vuecs/link';\nimport type { PropType, Ref, VNodeChild } from 'vue';\nimport {\n defineComponent,\n h,\n resolveComponent,\n toRef,\n} from 'vue';\nimport {\n injectStore,\n} from '../store';\nimport type { NavigationItem } from '../type';\nimport {\n selectNavigationTierItem,\n toggleNavigation,\n} from '../core';\nimport { isAbsoluteURL } from '../utils';\nimport { ElementType, SlotName } from '../constants';\n\nexport const VCNavItem = defineComponent({\n props: {\n tier: {\n type: Number,\n default: 0,\n },\n component: {\n type: Object as PropType<NavigationItem>,\n required: true,\n },\n },\n setup(props, { slots }) {\n const store = injectStore();\n const component = toRef(props, 'component') as Ref<NavigationItem>;\n\n const selectComponent = async (value: NavigationItem) => {\n await selectNavigationTierItem(store, props.tier, value);\n };\n\n const toggleComponentExpansion = async (\n value: NavigationItem,\n ) => toggleNavigation(store, props.tier, value);\n\n return () => {\n const buildItem = () : VNodeChild => {\n let item : VNodeChild;\n\n switch (component.value.type) {\n case ElementType.SEPARATOR: {\n const hasSlot = hasNormalizedSlot(SlotName.SEPARATOR, slots);\n if (hasSlot) {\n item = normalizeSlot(SlotName.SEPARATOR, {\n component: component.value,\n }, slots);\n } else {\n item = h('div', {\n class: 'nav-separator',\n }, component.value.name);\n }\n break;\n }\n default: {\n if (typeof component.value.children === 'undefined') {\n const hasSlot = hasNormalizedSlot(SlotName.LINK, slots);\n if (hasSlot) {\n item = normalizeSlot(SlotName.LINK, {\n component: component.value,\n selectComponent,\n isActive: component.value.active,\n }, slots);\n } else {\n const linkProps : LinkProperties = {\n active: component.value.active,\n disabled: false,\n prefetch: true,\n };\n\n if (component.value.url) {\n if (\n isAbsoluteURL(component.value.url) ||\n component.value.url.startsWith('#')\n ) {\n linkProps.href = component.value.url;\n if (component.value.urlTarget) {\n linkProps.target = component.value.urlTarget;\n }\n } else {\n linkProps.to = component.value.url;\n }\n }\n\n item = h(VCLink, {\n class: [\n 'nav-link',\n {\n 'root-link': component.value.root,\n },\n ],\n ...linkProps,\n onClicked() {\n if (!component.value.url) {\n return selectComponent.call(null, component.value);\n }\n\n return undefined;\n },\n onClick() {\n return selectComponent.call(null, component.value);\n },\n }, {\n default: () => [\n ...(component.value.icon ? [h('i', { class: component.value.icon })] : []),\n h('span', { class: 'nav-link-text' }, [component.value.name]),\n ],\n });\n }\n } else if (hasNormalizedSlot(SlotName.SUB, slots)) {\n item = normalizeSlot(SlotName.SUB, {\n component: component.value,\n selectComponent,\n toggleComponentExpansion,\n }, slots);\n } else {\n let title : VNodeChild;\n if (hasNormalizedSlot(SlotName.SUB_TITLE, slots)) {\n title = normalizeSlot(SlotName.SUB_TITLE, {\n component: component.value,\n selectComponent,\n toggleComponentExpansion,\n });\n } else {\n title = h('div', {\n class: 'nav-sub-title',\n onClick($event: any) {\n $event.preventDefault();\n\n return toggleComponentExpansion.call(null, component.value);\n },\n }, [[\n ...(component.value.icon ? [h('i', { class: component.value.icon })] : []),\n h('span', { class: 'nav-link-text' }, [component.value.name]),\n ]]);\n }\n\n let items : VNodeChild;\n\n if (hasNormalizedSlot(SlotName.SUB_ITEMS, slots)) {\n items = normalizeSlot(SlotName.SUB_ITEMS, {\n component: component.value,\n selectComponent,\n toggleComponentExpansion,\n });\n } else if (component.value.displayChildren) {\n const navigationComponents = resolveComponent('VCNavItems');\n items = h(navigationComponents, {\n class: 'list-unstyled nav-sub-items',\n tier: props.tier,\n entities: component.value.children,\n });\n }\n\n item = [\n title,\n items,\n ];\n }\n break;\n }\n }\n\n return item;\n };\n\n return h('div', {\n class: [\n 'nav-item',\n {\n active: component.value.active || component.value.displayChildren,\n },\n ],\n }, [\n buildItem(),\n ]);\n };\n },\n});\n","import { hasNormalizedSlot, normalizeSlot } from '@vuecs/core';\nimport type { PropType, VNode, VNodeChild } from 'vue';\nimport { computed, defineComponent, h } from 'vue';\nimport { SlotName } from '../constants';\nimport { injectStore } from '../store';\nimport type { NavigationItem } from '../type';\nimport { findNavigationItemsForTier } from '../core';\nimport { VCNavItem } from './item';\n\nexport const VCNavItems = defineComponent({\n props: {\n tier: {\n type: Number,\n default: 0,\n },\n entities: {\n type: Array as PropType<NavigationItem[]>,\n default: undefined,\n },\n },\n setup(props, { slots }) {\n const store = injectStore();\n\n const items = computed(() => {\n if (typeof props.entities !== 'undefined') {\n return props.entities;\n }\n\n return findNavigationItemsForTier(store.items.value, props.tier);\n });\n\n const buildChild = (context: {\n tier?: number,\n component: NavigationItem\n }) : VNodeChild => {\n if (hasNormalizedSlot(SlotName.ITEM, slots)) {\n return normalizeSlot(SlotName.ITEM, context, slots);\n }\n\n return h(VCNavItem, context);\n };\n\n const buildChildren = () : VNodeChild => {\n const entities : VNode[] = [];\n\n if (items.value) {\n for (let i = 0; i < items.value.length; i++) {\n if (items.value[i].display) {\n entities.push(h(\n 'li',\n {\n key: i,\n },\n [\n buildChild({\n tier: props.tier,\n component: items.value[i],\n }),\n ],\n ));\n }\n }\n }\n\n return entities;\n };\n\n return () => h('ul', {\n class: 'nav-items',\n }, [buildChildren()]);\n },\n});\n","import {\n buildNavigationForTier,\n findNavigationItemForTier,\n isNavigationItemMatch,\n replaceNavigationTierItemActive,\n setTierForNavigationItems,\n} from './core';\nimport { useNavigationProvider } from './provider';\nimport type { NavigationBuildContext } from './store';\nimport { injectStore } from './store';\nimport type { NavigationItem } from './type';\n\nexport async function buildNavigation(\n context: NavigationBuildContext = {},\n): Promise<void> {\n const store = injectStore();\n const navigationProvider = useNavigationProvider();\n\n let itemsActive: NavigationItem[] = [];\n\n if (typeof context.itemsActive !== 'undefined') {\n itemsActive = context.itemsActive;\n } else if (context.route) {\n if (typeof navigationProvider.getItemsActiveByRoute !== 'undefined') {\n itemsActive = await navigationProvider.getItemsActiveByRoute(context.route);\n } else if (typeof navigationProvider.getItemsActiveByURL !== 'undefined') {\n itemsActive = await navigationProvider.getItemsActiveByURL(context.route.fullPath);\n }\n } else if (\n context.url &&\n typeof navigationProvider.getItemsActiveByURL !== 'undefined'\n ) {\n itemsActive = await navigationProvider.getItemsActiveByURL(context.url);\n }\n\n if (itemsActive.length > 0) {\n for (let i = 0; i < itemsActive.length; i++) {\n if (typeof itemsActive[i].tier === 'undefined') {\n itemsActive[i].tier = i;\n }\n }\n }\n\n let tierIndex = 0;\n\n let url: string | undefined;\n if (typeof context.url === 'string') {\n url = context.url;\n } else if (typeof context.route !== 'undefined') {\n url = context.route.fullPath;\n }\n\n // eslint-disable-next-line no-constant-condition\n while (true) {\n let items = await navigationProvider\n .getItems(tierIndex, itemsActive);\n\n if (!items || items.length === 0) {\n break;\n }\n\n // ensure tier property\n items = setTierForNavigationItems(items, tierIndex);\n\n let currentItem = findNavigationItemForTier(itemsActive, tierIndex);\n\n if (!currentItem) {\n if (url) {\n const urlMatches = items.filter(\n (item) => isNavigationItemMatch(item, { url }),\n );\n if (urlMatches.length > 0) {\n [currentItem] = urlMatches;\n }\n }\n\n if (!currentItem) {\n const defaultItem = items\n .filter((item) => item.default);\n if (defaultItem.length > 0) {\n currentItem = defaultItem;\n } else {\n [currentItem] = items;\n }\n }\n\n currentItem.tier = tierIndex;\n itemsActive.push(currentItem);\n }\n\n if (!currentItem) {\n continue;\n }\n\n replaceNavigationTierItemActive(store, tierIndex, currentItem);\n\n await buildNavigationForTier(store, tierIndex, itemsActive);\n\n tierIndex++;\n }\n}\n","import { applyStoreManagerOptions, installStoreManager } from '@vuecs/core';\n\nimport type { App, Plugin } from 'vue';\n\nimport './vue';\n\nimport { setNavigationProvider } from './provider';\nimport { setupStore } from './store';\nimport {\n VCNavItem,\n VCNavItems,\n} from './components';\nimport type { Options } from './type';\n\nexport * from './components';\nexport * from './provider';\nexport * from './module';\nexport * from './type';\nexport * from './core/flatten';\n\nexport function install(instance: App, options: Options) : void {\n if (options.provider) {\n setNavigationProvider(options.provider);\n }\n\n setupStore(instance);\n\n const storeManager = installStoreManager(instance);\n if (options.storeManager) {\n applyStoreManagerOptions(storeManager, options.storeManager);\n }\n\n Object.entries({\n VCNavItem,\n VCNavItems,\n }).forEach(([componentName, component]) => {\n instance.component(componentName, component);\n });\n}\n\nexport default {\n install,\n} satisfies Plugin<Options>;\nexport { buildNavigationForTier } from './core';\n"],"names":["instance","useNavigationProvider","module","Error","setNavigationProvider","createNavigationProvider","input","StoreSymbol","Symbol","for","isStoreInjected","hasInjectionContext","inject","setupStore","app","store","items","ref","itemsActive","provide","_context","provides","injectStore","isNavigationItemMatch","one","two","id","name","url","children","length","i","setNavigationExpansion","item","parentMatch","matchInIteration","isMatch","isChildMatch","childItems","match","childMatch","active","display","displayChildren","resetNavigationItem","root","findNavigationItemsForTier","tier","filterFn","component","filter","findNavigationItemForTier","data","undefined","setTierForNavigationItems","mapFn","isRef","value","map","removeTierFromNavigationItems","replaceNavigationTierItemActive","replaceNavigationTierItems","componentsExisting","refreshNavigationTierItems","components","buildNavigationForTier","tierStartIndex","tierEndIndex","push","getItems","flattenNestedNavigationItems","output","selectNavigationTierItem","built","toggleNavigation","isAbsoluteURL","str","substring","SlotName","ElementType","VCNavItem","defineComponent","props","type","Number","default","Object","required","setup","slots","toRef","selectComponent","toggleComponentExpansion","buildItem","SEPARATOR","hasSlot","hasNormalizedSlot","normalizeSlot","h","class","LINK","isActive","linkProps","disabled","prefetch","startsWith","href","urlTarget","target","to","VCLink","onClicked","call","onClick","icon","SUB","title","SUB_TITLE","$event","preventDefault","SUB_ITEMS","navigationComponents","resolveComponent","entities","VCNavItems","Array","computed","buildChild","context","ITEM","buildChildren","key","buildNavigation","navigationProvider","route","getItemsActiveByRoute","getItemsActiveByURL","fullPath","tierIndex","currentItem","urlMatches","defaultItem","install","options","provider","storeManager","installStoreManager","applyStoreManagerOptions","entries","forEach","componentName"],"mappings":"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"}
package/dist/type.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { PluginBaseOptions } from '@vuecs/core';
1
+ import type { StoreManagerOptions } from '@vuecs/core';
2
2
  import type { ElementType } from './constants';
3
3
  import type { NavigationProvider } from './provider';
4
4
  export type NavigationItem = {
@@ -20,7 +20,8 @@ export type NavigationItem = {
20
20
  requirePermissions?: string | string[] | ((checker: (name: string) => boolean) => boolean);
21
21
  [key: string]: any;
22
22
  };
23
- export type Options = PluginBaseOptions & {
23
+ export type Options = {
24
24
  provider: NavigationProvider;
25
+ storeManager?: StoreManagerOptions;
25
26
  };
26
27
  //# sourceMappingURL=type.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../src/type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,MAAM,MAAM,cAAc,GAAG;IACzB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;IAE7D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,GAAG,WAAW,EAAE,CAAC;IAExB,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;IAE5B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,KAAK,OAAO,CAAC,CAAA;IAE1F,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACrB,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG,iBAAiB,GAAG;IACtC,QAAQ,EAAE,kBAAkB,CAAA;CAC/B,CAAC"}
1
+ {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../src/type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,MAAM,MAAM,cAAc,GAAG;IACzB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;IAE7D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,GAAG,WAAW,EAAE,CAAC;IAExB,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;IAE5B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,KAAK,OAAO,CAAC,CAAA;IAE1F,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACrB,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IAClB,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,YAAY,CAAC,EAAE,mBAAmB,CAAA;CACrC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vuecs/navigation",
3
- "version": "1.0.0",
3
+ "version": "1.1.1",
4
4
  "description": "A package for multi level navigations.",
5
5
  "exports": {
6
6
  "./package.json": "./package.json",
@@ -53,13 +53,13 @@
53
53
  "test:coverage": "cross-env NODE_ENV=test jest --config ./test/jest.config.js --coverage"
54
54
  },
55
55
  "devDependencies": {
56
- "@vuecs/core": "^1.0.0",
56
+ "@vuecs/core": "^1.2.0",
57
57
  "@vuecs/link": "^1.0.0",
58
58
  "vue": "^3.3.9",
59
59
  "vue-router": "^4.2.2"
60
60
  },
61
61
  "peerDependencies": {
62
- "@vuecs/core": "^1.0.0",
62
+ "@vuecs/core": "^1.2.0",
63
63
  "@vuecs/link": "^1.0.0",
64
64
  "vue": "^3.x",
65
65
  "vue-router": "^4.x"