import { stackFactory, flatStacksValue, strToParams } from '@/utils' import { reactive, ref } from 'vue' import type { FuseModel, TaggingPosition, View } from '@/store' export const viewModeStack = stackFactory(ref<'full' | 'auto'>('auto')) export const showToolbarStack = stackFactory(ref(false)) export const showHeadBarStack = stackFactory(ref(true)) export const showRightPanoStack = stackFactory(ref(true)) export const showLeftPanoStack = stackFactory(ref(false)) export const showLeftCtrlPanoStack = stackFactory(ref(true)) export const showRightCtrlPanoStack = stackFactory(ref(true)) export const showBottomBarStack = stackFactory(ref(false), true) export const bottomBarHeightStack = stackFactory(ref('60px')) export const showTaggingsStack = stackFactory(ref(true)) export const showMeasuresStack = stackFactory(ref(true)) export const currentModelStack = stackFactory(ref(null)) export const showModelsMapStack = stackFactory(ref>(new WeakMap()), true) export const modelsChangeStoreStack = stackFactory(ref(false)) export const showTaggingPositionsStack = stackFactory(ref>(new WeakSet())) export const currentViewStack = stackFactory(ref()) export const custom = flatStacksValue({ viewMode: viewModeStack, showToolbar: showToolbarStack, showRightPano: showRightPanoStack, showLeftPano: showLeftPanoStack, showLeftCtrlPano: showLeftCtrlPanoStack, shwoRightCtrlPano: showRightCtrlPanoStack, showTaggings: showTaggingsStack, showMeasures: showMeasuresStack, currentModel: currentModelStack, showModelsMap: showModelsMapStack, modelsChangeStore: modelsChangeStoreStack, showTaggingPositions: showTaggingPositionsStack, showBottomBar: showBottomBarStack, bottomBarHeight: bottomBarHeightStack, showHeadBar: showHeadBarStack, currentView: currentViewStack }) export const params = reactive(strToParams(location.search)) as unknown as Params params.caseId = Number(params.caseId) params.share = Boolean(Number(params.share)) export enum appType { fire = "1", criminal = "2" } export type Params = { caseId: number, baseURL?: string, modelId?: string, m?: string share?: boolean, app: appType token?: string } export const baseURL = params.baseURL ? params.baseURL : '/' export const getResource = (uri: string) => { if (~uri.indexOf('base64') || ~uri.indexOf('bolb') || ~uri.indexOf('//')) return uri return `${baseURL}/${uri}` }