{"version":3,"file":"context-J9yEcM3W.js","sources":["../../src/lightspeed/features/sidebar/context.ts"],"sourcesContent":["import type { OrganizationJs } from \"@/generated/models\";\nimport type { MaybeElementRef } from \"@vueuse/core\";\nimport type { RefOrGetter } from \"ls/common/types\";\nimport { createInjectionState, useLocalStorage } from \"@vueuse/core\";\nimport { useContextOrThrow } from \"ls/composables/useContextOrThrow\";\nimport { computed, ref, toValue } from \"vue\";\n\nconst [useProvideNavigationContext, useNavigationContextFn] = createInjectionState(() => {\n const browseWorkspacesOrganization = ref();\n return {\n browseWorkspacesOrganization,\n };\n});\n\nexport { useProvideNavigationContext };\nexport const useNavigationContext = useContextOrThrow(useNavigationContextFn);\n\ntype SidebarMode = \"fixed\" | \"floating\";\nexport function useSidebarMode() {\n const mode = useLocalStorage(\"sidebar\", \"fixed\");\n function toggle() {\n mode.value = mode.value === \"fixed\" ? \"floating\" : \"fixed\";\n }\n\n return {\n mode,\n toggle,\n };\n}\n\nexport interface EditableNameRef {\n start: () => void;\n linkElement: MaybeElementRef;\n}\n\nconst [useProvideSidebarContext, useSidebarContextFn] = createInjectionState(() => {\n const editableNameRefs = new Map();\n\n function registerEditableNameRef(id: string, ref: EditableNameRef) {\n if (ref == null) {\n editableNameRefs.delete(id);\n } else {\n editableNameRefs.set(id, ref);\n }\n }\n\n const { mode, toggle } = useSidebarMode();\n\n const menuObservers = ref(new Set>());\n function observeMenu(isOpen: RefOrGetter) {\n menuObservers.value.add(isOpen);\n\n return () => {\n menuObservers.value.delete(isOpen);\n };\n };\n\n const anyMenuOpen = computed(() => {\n return [...menuObservers.value].some(menuOpen => toValue(menuOpen));\n });\n\n return {\n mode,\n toggle,\n observeMenu,\n anyMenuOpen,\n registerEditableNameRef,\n editableNameRefs,\n };\n});\n\nexport { useProvideSidebarContext };\nexport const useSidebarContext = useContextOrThrow(useSidebarContextFn);\nexport const useSidebarContextUnsafe = useSidebarContextFn;\n"],"names":["useProvideNavigationContext","useNavigationContextFn","createInjectionState","ref","useNavigationContext","useContextOrThrow","useSidebarMode","mode","useLocalStorage","toggle","useProvideSidebarContext","useSidebarContextFn","editableNameRefs","registerEditableNameRef","id","menuObservers","observeMenu","isOpen","anyMenuOpen","computed","menuOpen","toValue","useSidebarContext","useSidebarContextUnsafe"],"mappings":"8EAOA,KAAM,CAACA,EAA6BC,CAAsB,EAAIC,EAAqB,KAE1E,CACL,6BAFmCC,EAAoB,CAGzD,EACD,EAGYC,EAAuBC,EAAkBJ,CAAsB,EAGrE,SAASK,GAAiB,CACzB,MAAAC,EAAOC,EAA6B,UAAW,OAAO,EAC5D,SAASC,GAAS,CAChBF,EAAK,MAAQA,EAAK,QAAU,QAAU,WAAa,OAAA,CAG9C,MAAA,CACL,KAAAA,EACA,OAAAE,CACF,CACF,CAOA,KAAM,CAACC,EAA0BC,CAAmB,EAAIT,EAAqB,IAAM,CAC3E,MAAAU,MAAuB,IAEpB,SAAAC,EAAwBC,EAAYX,EAAsB,CAC7DA,GAAO,KACTS,EAAiB,OAAOE,CAAE,EAETF,EAAA,IAAIE,EAAIX,CAAG,CAC9B,CAGF,KAAM,CAAE,KAAAI,EAAM,OAAAE,CAAO,EAAIH,EAAe,EAElCS,EAAgBZ,EAAQ,IAAA,GAAuC,EACrE,SAASa,EAAYC,EAA0C,CAC/C,OAAAF,EAAA,MAAM,IAAIE,CAAM,EAEvB,IAAM,CACGF,EAAA,MAAM,OAAOE,CAAM,CACnC,CAAA,CAGI,MAAAC,EAAcC,EAAS,IACpB,CAAC,GAAGJ,EAAc,KAAK,EAAE,KAAKK,GAAYC,EAAQD,CAAQ,CAAC,CACnE,EAEM,MAAA,CACL,KAAAb,EACA,OAAAE,EACA,YAAAO,EACA,YAAAE,EACA,wBAAAL,EACA,iBAAAD,CACF,CACF,CAAC,EAGYU,EAAoBjB,EAAkBM,CAAmB,EACzDY,EAA0BZ"}