{"version":3,"sources":["webpack:///./src/lib/composables/useContextSidebar.ts","webpack:///./src/components/alerts/FlashMessages.tsx","webpack:///./src/components/dialog/MyDialog.tsx","webpack:///./src/lib/constants/layout.ts","webpack:///./src/components/sidebars/TemporarySidebar.tsx","webpack:///./src/components/toolbar/accountMenu/AccountMenuAvatar.tsx","webpack:///./src/components/toolbar/accountMenu/AccountMenuUserHeader.tsx","webpack:///./src/components/toolbar/accountMenu/composables.ts","webpack:///./src/components/toolbar/AccountMenu.tsx","webpack:///./src/components/icon/TissIcon.tsx","webpack:///./src/components/toolbar/ToolbarMenus.tsx","webpack:///./src/components/toolbar/Toolbar.tsx","webpack:///./node_modules/vue-use-web/dist/vue-use-web.esm.js","webpack:///./src/lib/composables/utils/useNetworkStatus.ts","webpack:///./src/layouts/AppLayout.tsx","webpack:///./src/components/menus/QuickMenu.tsx","webpack:///./src/components/menus/mapMenuTile.tsx","webpack:///./src/components/icon/Logo.tsx"],"names":["useContextSidebar","ctx","width","miniWidth","$temporarySidebarOpen","s","layout","temporarySidebar","open","$showMiniSidebar","$currentWidth","$width","$miniVariant","value","$mini","contextSidebar","mini","useUpdateAppLeft","checkNoSidebar","fullPath","routesNoSidebar","includes","updateAppLeft","vuetify","application","left","FlashMessages","name","setup","props","$alerts","flashMessages","alerts","map","alert","id","type","close","text","MyDialog","$dialog","dialog","handleInput","cancel","title","noCloseBtn","fullWidth","component","params","toolbarBtns","Btns","MyTheme","coolGray900","MyIcons","DialogContent","appMenus","icon","dashboard","to","app","agenda","profissionalId","index","pacientes","financas","relatorios","relatorio","atendimento","plus","group","model","children","contatos","cid10","cid","logs","tiss","lotes","TemporarySidebar","$open","$menus","filter","f","hidden","updateTemporary","menu","i","Menus","Object","required","child","idx","AccountMenuAvatar","$user","auth","user","$imageUrl","imagem","thumbnailUrl","url","cyan800","nome","white","account","AccountMenuUserHeader","meuPerfil","useAccountMenus","divider","description","clinicaBox","action","setClinicaSelect","push","clinicas","configuracaoAccount","configAccount","assinatura","clinica","configClinica","perfilClinica","users","configProfissionais","sair","logout","AccountMenu","activator","mapMenuTile","on","chevronDown","TissIcon","ToolbarMenus","Toolbar","homeRoute","home","quickMenus","useQuickMenu","stop","openTemporary","plusCircle","agendamentoNew","agendamentos","new","pacienteNew","profissional","usuarios","newProfissional","recepcionista","newRecepcionista","useNetwork","isOnline","saveData","offlineAt","undefined","downlink","downlinkMax","effectiveType","updateNetworkInformation","window","navigator","onLine","Date","now","connection","onOffline","onOnline","addEventListener","removeEventListener","useNetworkStatus","$isOnline","$isOffline","watchOffline","cb","useAlertNetworkStatus","isOffline","alertOffline","alertOnline","AppLayout","beforeRouteUpdate","from","next","closeAll","$dialogId","loadingOff","QuickMenu","String","iconColor","btnClasses","default","menus","Array","maxWidth","Number","menuActivator","menuListItem","Logo"],"mappings":"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","file":"js/chunk-1272a17e.8dcdfbfa.js","sourcesContent":["import { computed, SetupContext } from '@vue/composition-api';\nimport { useState } from '.';\nimport { watchRun } from '../vue';\nimport { useBreakpoints } from './utils/useBreakpoints';\nimport { useRoute } from './utils/useRouter';\nimport { useVuetify } from './utils/useVuetify';\n\nexport function useContextSidebar(ctx: SetupContext) {\n const width = 300;\n\n const miniWidth = 40;\n\n const $temporarySidebarOpen = useState(s => s.layout.temporarySidebar.open);\n\n const { $showMiniSidebar, $width: $currentWidth } = useBreakpoints();\n\n const $miniVariant = computed(() =>\n $showMiniSidebar.value ? $mini.value : false,\n );\n\n const $mini = useState(s => s.layout.contextSidebar.mini);\n\n return {\n $currentWidth,\n width,\n miniWidth,\n $temporarySidebarOpen,\n $showMiniSidebar,\n $miniVariant,\n $mini,\n };\n}\n\nexport function useUpdateAppLeft(ctx: SetupContext) {\n const {\n $miniVariant,\n miniWidth,\n width,\n $temporarySidebarOpen,\n $currentWidth,\n } = useContextSidebar(ctx);\n\n function checkNoSidebar() {\n const fullPath = useRoute().fullPath;\n\n const routesNoSidebar = [\n '/pacientes',\n '/configuracoes/meu-perfil',\n '/contatos',\n '/cid',\n ];\n\n return (\n routesNoSidebar.includes(fullPath) ||\n // routes => /cid/*\n fullPath.includes('/cid/') ||\n // routes => /contatos/*\n fullPath.includes('/contatos/') ||\n // routes => /erro/*\n fullPath.includes('/erro/')\n );\n }\n\n function updateAppLeft() {\n const vuetify = useVuetify();\n\n if (checkNoSidebar()) {\n return (vuetify.application.left = 0);\n }\n\n // fix the left padding issue\n vuetify.application.left = $miniVariant.value ? miniWidth : width;\n }\n\n watchRun($temporarySidebarOpen, updateAppLeft);\n\n watchRun($currentWidth, updateAppLeft);\n\n watchRun(() => useRoute().fullPath, updateAppLeft);\n}\n","import { useState } from '@/lib/composables';\nimport { createComponent } from '@/lib/vue';\nimport { FlashMessagesState } from '@/store/modules/flashMessages/flashMessages.store';\nimport { Alert } from './Alert';\n\nexport const FlashMessages = createComponent({\n name: 'FlashMessages',\n setup(props, ctx) {\n const $alerts = useState(s => s.flashMessages.alerts);\n\n return () => (\n \n {$alerts.value.map(alert => (\n FlashMessagesState.close(alert.id)}\n class=\"w-full\"\n >\n \n \n ))}\n \n );\n },\n});\n","import { useState } from '@/lib/composables';\nimport { MyIcons } from '@/lib/helpers/MyIcons';\nimport { MyTheme } from '@/lib/helpers/MyTheme';\nimport { createComponent } from '@/lib/vue';\nimport { DialogState } from '@/store/modules/dialog.store';\nimport { ITsxComponent } from '@/typings';\n\nexport const MyDialog = createComponent({\n name: 'MyDialog',\n setup(props, ctx) {\n const $dialog = useState(s => s.dialog);\n\n function handleInput(open: boolean) {\n if (!open) {\n DialogState.cancel();\n }\n }\n\n return () => {\n const {\n title,\n noCloseBtn,\n width,\n fullWidth,\n component,\n params,\n open,\n toolbarBtns,\n } = $dialog.value;\n\n return (\n \n \n {dialogToolbar({ title, noCloseBtn, toolbarBtns })}\n\n {content({ component, params })}\n \n \n );\n };\n },\n});\n\nconst dialogToolbar = ({\n title,\n noCloseBtn,\n toolbarBtns,\n}: {\n title: string | null;\n noCloseBtn: boolean;\n toolbarBtns: any;\n}) => {\n const Btns = toolbarBtns || null;\n\n return (\n \n {title &&

{title}

}\n\n \n\n {Btns && }\n\n {!noCloseBtn && (\n \n {MyIcons.close}\n \n )}\n
\n );\n};\n\nconst content = ({\n component,\n params,\n}: {\n component: ITsxComponent | null;\n params: any;\n}) => {\n if (!component) {\n return null;\n }\n\n const DialogContent = component as any;\n\n return (\n
\n \n
\n );\n};\n","import { Routes } from '@/routes/routes';\nimport {\n getProfissionalId,\n userIsAdminAccount,\n userIsAdminClinica,\n userIsProfissionalSaude,\n} from '@/store/utils/auth';\nimport { MyIcons } from '../helpers/MyIcons';\n\nimport { IMenu } from '@/typings';\n\nexport const appMenus: IMenu[] = [\n {\n text: 'Visão geral',\n icon: MyIcons.dashboard,\n to: Routes.app.dashboard,\n get hidden() {\n return !userIsProfissionalSaude();\n },\n },\n {\n text: 'Agenda',\n icon: MyIcons.agenda,\n get to() {\n const profissionalId = getProfissionalId();\n\n return profissionalId\n ? Routes.app.agenda(profissionalId).index\n : Routes.app.dashboard;\n },\n get hidden() {\n return !getProfissionalId();\n },\n },\n {\n text: 'Pacientes',\n icon: MyIcons.pacientes,\n to: Routes.app.pacientes.index,\n },\n {\n text: 'Finanças',\n icon: MyIcons.financas,\n to: Routes.app.financas.index,\n get hidden() {\n return !userIsAdminClinica() && !userIsAdminAccount();\n },\n },\n {\n text: 'Relatórios',\n icon: MyIcons.relatorios,\n to: Routes.app.relatorio.atendimento.index,\n get hidden() {\n return (\n !userIsAdminClinica() &&\n !userIsAdminAccount() &&\n !userIsProfissionalSaude()\n );\n },\n },\n {\n text: 'Outros',\n icon: MyIcons.plus,\n group: 'outros',\n model: false,\n children: [\n {\n text: 'Contatos',\n icon: MyIcons.contatos,\n to: Routes.app.contatos.index,\n },\n {\n text: 'CID 10',\n icon: MyIcons.cid10,\n to: Routes.app.cid.index,\n },\n {\n text: 'Logs',\n icon: MyIcons.logs,\n to: Routes.app.logs.agenda,\n },\n {\n text: 'TISS',\n tiss: true,\n get to() {\n const profissionalId = getProfissionalId();\n\n return profissionalId\n ? Routes.app.tiss(profissionalId).lotes.index\n : Routes.app.dashboard;\n },\n },\n ],\n },\n];\n","import { useState } from '@/lib/composables';\nimport { appMenus } from '@/lib/constants/layout';\nimport { createComponent } from '@/lib/vue';\nimport { LayoutState } from '@/store/modules/layout.store';\nimport { IMenu } from '@/typings';\nimport { computed } from '@vue/composition-api';\n\nexport const TemporarySidebar = createComponent({\n name: 'TemporarySidebar',\n setup(props, ctx) {\n const $open = useState(s => s.layout.temporarySidebar.open);\n\n const $menus = computed(() => appMenus.filter(f => !f.hidden));\n\n return () => (\n \n \n {$menus.value.map((menu, i) => (\n \n ))}\n \n \n );\n },\n});\n\nexport default TemporarySidebar;\n\nconst Menus = createComponent<{ menu: IMenu }>({\n name: 'TemporarySidebarMenus',\n props: {\n menu: { type: Object, required: true },\n },\n setup(props, ctx) {\n return () => {\n const menu = props.menu;\n\n if (menu.children) {\n return (\n \n \n {menu.text}\n \n\n {menu.children.map(mapChild)}\n \n );\n }\n\n return (\n \n \n {menu.icon}\n \n\n \n {menu.text}\n \n \n );\n };\n },\n});\n\nconst mapChild = (child: IMenu, idx: number) => (\n \n \n {child.text}\n \n \n);\n","import { useState } from '@/lib/composables';\nimport { MyIcons } from '@/lib/helpers/MyIcons';\nimport { MyTheme } from '@/lib/helpers/MyTheme';\nimport { createComponent } from '@/lib/vue';\n\nexport const AccountMenuAvatar = createComponent({\n name: 'AccountMenuAvatar',\n setup(props, ctx) {\n const $user = useState(s => s.auth.user);\n\n const $imageUrl = useState(\n s => s.auth.user?.imagem?.thumbnailUrl || s.auth.user?.imagem?.url,\n );\n\n return () => (\n \n {$imageUrl.value ? (\n {$user.value?.nome}\n ) : (\n \n {MyIcons.account}\n \n )}\n \n );\n },\n});\n","import { useState } from '@/lib/composables';\nimport { createComponent } from '@/lib/vue';\nimport { Routes } from '@/routes/routes';\nimport { AccountMenuAvatar } from './AccountMenuAvatar';\n\nexport const AccountMenuUserHeader = createComponent({\n name: 'AccountMenuUserHeader',\n setup(props, ctx) {\n const $user = useState(s => s.auth.user);\n\n return () => (\n \n \n \n \n\n \n \n {$user.value?.nome}\n \n\n Meu perfil\n \n \n );\n },\n});\n","import { MyIcons } from '@/lib/helpers/MyIcons';\nimport { AuthLoginService } from '@/lib/services';\nimport { router } from '@/routes';\nimport { Routes } from '@/routes/routes';\nimport { AuthState } from '@/store/modules/auth.store';\nimport {\n getClinica,\n getProfissionalId,\n userHasClinicas,\n userIsAdminAccount,\n userIsAdminClinica,\n userIsProfissionalSaude,\n} from '@/store/utils/auth';\nimport { IMenu } from '@/typings';\nimport { computed } from '@vue/composition-api';\n\nexport function useAccountMenus() {\n const $menus = computed(() => [\n { divider: true },\n {\n text: getClinica().nome,\n description: 'Selecionar clínica',\n icon: MyIcons.clinicaBox,\n action() {\n AuthState.setClinicaSelect(true);\n\n return router.push(Routes.auth.clinicas);\n },\n hidden: !userHasClinicas(),\n },\n {\n divider: true,\n hidden: !userHasClinicas(),\n },\n {\n text: 'Configurações da Conta',\n description: 'Clínicas, Usuários, Assinatura',\n icon: MyIcons.configuracaoAccount,\n to: Routes.app.configAccount.assinatura,\n hidden: !userIsAdminAccount(),\n },\n {\n text: 'Configurações da Clínica',\n description: 'Perfil da Clínica, Convênios, Finanças',\n icon: MyIcons.clinica,\n to: Routes.app.configClinica.perfilClinica,\n hidden: !userIsAdminClinica() && !userIsAdminAccount(),\n },\n {\n text:\n userIsAdminAccount() || userIsAdminClinica()\n ? 'Configurações de Profissionais'\n : 'Minhas configurações',\n description: 'Agenda, Procedimentos, Prontuário',\n icon: MyIcons.users,\n to: Routes.app.configProfissionais(getProfissionalId() || '').agenda,\n hidden:\n !userIsProfissionalSaude() &&\n !userIsAdminAccount() &&\n !userIsAdminClinica(),\n },\n { divider: true },\n {\n text: 'Sair',\n icon: MyIcons.sair,\n action: AuthLoginService.logout,\n },\n ]);\n\n return { $menus };\n}\n","import { MyIcons } from '@/lib/helpers/MyIcons';\nimport { createComponent } from '@/lib/vue';\nimport { mapMenuTile } from '../menus/mapMenuTile';\nimport { AccountMenuAvatar } from './accountMenu/AccountMenuAvatar';\nimport { AccountMenuUserHeader } from './accountMenu/AccountMenuUserHeader';\nimport { useAccountMenus } from './accountMenu/composables';\n\nexport const AccountMenu = createComponent({\n name: 'AccountMenu',\n setup(props, ctx) {\n const { $menus } = useAccountMenus();\n\n return () => (\n \n \n \n\n {$menus.value.map(mapMenuTile)}\n \n \n );\n },\n});\n\nconst menuActivator = ({ on }) => (\n \n \n\n {MyIcons.chevronDown}\n \n);\n","import { createComponent } from '@/lib/vue';\n\nexport const TissIcon = createComponent({\n name: 'TissIcon',\n setup(props, ctx) {\n return () => (\n \n \n \n \n \n \n );\n },\n});\n\nexport default TissIcon;\n","import { appMenus } from '@/lib/constants/layout';\nimport { createComponent } from '@/lib/vue';\nimport { IMenu } from '@/typings';\nimport { computed } from '@vue/composition-api';\nimport { TissIcon } from '../icon/TissIcon';\n\nexport const ToolbarMenus = createComponent({\n name: 'ToolbarMenus',\n setup(props, ctx) {\n const $menus = computed(() => appMenus.filter(f => !f.hidden));\n\n return () => (\n \n {$menus.value.map(menu => menuItem(menu))}\n \n );\n },\n});\n\nconst menuItem = (menu: IMenu) => {\n if (!menu.children) {\n return (\n \n {menu.icon}\n\n {menu.text}\n \n );\n }\n\n return (\n \n {menu.children.map(child => menuChild(child))}\n \n );\n};\n\nconst menuActivator =\n (menu: IMenu) =>\n ({ on }) =>\n (\n \n {menu.icon}\n\n {menu.text}\n \n );\n\nconst menuChild = (child: IMenu) => (\n \n \n {child.tiss ? (\n \n \n \n ) : (\n {child.icon}\n )}\n \n\n \n {child.text}\n \n \n);\n","import { MyIcons } from '@/lib/helpers/MyIcons';\nimport { createComponent, modifiers } from '@/lib/vue';\nimport { Routes } from '@/routes/routes';\nimport { LayoutState } from '@/store/modules/layout.store';\nimport { getProfissionalId, userIsAdminAccount } from '@/store/utils/auth';\nimport { IMenu } from '@/typings';\nimport { Logo } from '../icon/Logo';\nimport { QuickMenu } from '../menus/QuickMenu';\nimport { AccountMenu } from './AccountMenu';\nimport { ToolbarMenus } from './ToolbarMenus';\n\nexport const Toolbar = createComponent({\n name: 'Toolbar',\n setup(props, ctx) {\n const homeRoute = Routes.app.home;\n\n const quickMenus = useQuickMenu();\n return () => (\n \n \n\n \n \n \n \n \n\n \n\n \n\n \n\n \n\n \n \n );\n },\n});\n\nfunction useQuickMenu(): IMenu[] {\n return [\n {\n text: 'Novo Agendamento',\n icon: MyIcons.agendamentoNew,\n to: Routes.app.agenda(getProfissionalId() || '').agendamentos.new(),\n },\n {\n text: 'Novo Paciente',\n icon: MyIcons.pacienteNew,\n to: Routes.app.pacientes.new.index,\n },\n {\n divider: true,\n hidden: !userIsAdminAccount(),\n },\n {\n text: 'Novo Profissional de saúde',\n icon: MyIcons.profissional,\n to: Routes.app.configAccount.usuarios.newProfissional,\n hidden: !userIsAdminAccount(),\n },\n {\n text: 'Nova Recepcionista',\n icon: MyIcons.recepcionista,\n to: Routes.app.configAccount.usuarios.newRecepcionista,\n hidden: !userIsAdminAccount(),\n },\n ];\n}\n","/**\n * elweb v1.0.1\n * (c) 2020 Abdelrahman Awad\n * @license MIT\n */\nimport { ref, onMounted, onUnmounted, isRef, onBeforeUnmount, computed, onBeforeMount } from '@vue/composition-api';\n\nvar events = ['chargingchange', 'chargingtimechange', 'dischargingtimechange', 'levelchange'];\r\nfunction useBattery() {\r\n var isCharging = ref(false);\r\n var chargingTime = ref(0);\r\n var dischargingTime = ref(0);\r\n var level = ref(1);\r\n function updateBatteryInfo() {\r\n isCharging.value = this.charging;\r\n chargingTime.value = this.chargingTime || 0;\r\n dischargingTime.value = this.dischargingTime || 0;\r\n level.value = this.level;\r\n }\r\n onMounted(function () {\r\n if (!('getBattery' in navigator)) {\r\n return;\r\n }\r\n navigator.getBattery().then(function (battery) {\r\n updateBatteryInfo.call(battery);\r\n events.forEach(function (evt) {\r\n battery.addEventListener(evt, updateBatteryInfo);\r\n });\r\n });\r\n });\r\n onUnmounted(function () {\r\n if (!('getBattery' in navigator)) {\r\n return;\r\n }\r\n navigator.getBattery().then(function (battery) {\r\n events.forEach(function (evt) {\r\n battery.removeEventListener(evt, updateBatteryInfo);\r\n });\r\n });\r\n });\r\n return {\r\n isCharging: isCharging,\r\n chargingTime: chargingTime,\r\n dischargingTime: dischargingTime,\r\n level: level\r\n };\r\n}\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nfunction __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\n\nfunction useClipboard() {\r\n var text = ref('');\r\n function onCopy() {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _a;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n _a = text;\r\n return [4 /*yield*/, navigator.clipboard.readText()];\r\n case 1:\r\n _a.value = _b.sent();\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n }\r\n onMounted(function () {\r\n window.addEventListener('copy', onCopy);\r\n });\r\n onUnmounted(function () {\r\n window.removeEventListener('copy', onCopy);\r\n });\r\n function write(txt) {\r\n text.value = txt;\r\n return navigator.clipboard.writeText(txt);\r\n }\r\n return {\r\n text: text,\r\n write: write\r\n };\r\n}\n\nfunction useDeviceLight() {\r\n var value = ref(null);\r\n function handler(event) {\r\n value.value = event.value;\r\n }\r\n // TODO: Should we debounce/throttle the event?\r\n onMounted(function () {\r\n window.addEventListener('devicelight', handler);\r\n });\r\n onUnmounted(function () {\r\n window.removeEventListener('devicelight', handler);\r\n });\r\n return {\r\n value: value\r\n };\r\n}\n\nfunction throttle(wait, fn) {\r\n if (wait === 0) {\r\n return fn;\r\n }\r\n var timeout;\r\n return (function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var later = function () {\r\n timeout = undefined;\r\n // check if the fn call was cancelled.\r\n fn.apply(void 0, args);\r\n };\r\n clearTimeout(timeout);\r\n timeout = setTimeout(later, wait);\r\n });\r\n}\r\nvar hasWindow = typeof window !== 'undefined';\n\nfunction useDeviceMotion(options) {\r\n if (options === void 0) { options = { throttleMs: 10 }; }\r\n var acceleration = ref({ x: null, y: null, z: null });\r\n var rotationRate = ref({ alpha: null, beta: null, gamma: null });\r\n var interval = ref(0);\r\n var accelerationIncludingGravity = ref({\r\n x: null,\r\n y: null,\r\n z: null\r\n });\r\n function onDeviceMotion(event) {\r\n acceleration.value = event.acceleration;\r\n accelerationIncludingGravity.value = event.accelerationIncludingGravity;\r\n rotationRate.value = event.rotationRate;\r\n interval.value = event.interval;\r\n }\r\n var handler = options.throttleMs ? throttle(options.throttleMs, onDeviceMotion) : onDeviceMotion;\r\n onMounted(function () {\r\n window.addEventListener('devicemotion', handler, false);\r\n });\r\n onUnmounted(function () {\r\n window.removeEventListener('devicemotion', handler, false);\r\n });\r\n return {\r\n acceleration: acceleration,\r\n accelerationIncludingGravity: accelerationIncludingGravity,\r\n rotationRate: rotationRate,\r\n interval: interval\r\n };\r\n}\n\nfunction useDeviceOrientation() {\r\n var isAbsolute = ref(false);\r\n var alpha = ref(0);\r\n var beta = ref(0);\r\n var gamma = ref(0);\r\n function handler(event) {\r\n isAbsolute.value = event.absolute;\r\n alpha.value = event.alpha;\r\n beta.value = event.beta;\r\n gamma.value = event.gamma;\r\n }\r\n onMounted(function () {\r\n window.addEventListener('deviceorientation', handler);\r\n });\r\n onUnmounted(function () {\r\n window.removeEventListener('deviceorientation', handler);\r\n });\r\n return {\r\n isAbsolute: isAbsolute,\r\n alpha: alpha,\r\n beta: beta,\r\n gamma: gamma\r\n };\r\n}\n\nfunction useEventListener(target, type, handler, options) {\r\n onMounted(function () {\r\n var t = isRef(target) ? target.value : target;\r\n t.addEventListener(type, handler, options);\r\n });\r\n onBeforeUnmount(function () {\r\n var t = isRef(target) ? target.value : target;\r\n t.removeEventListener(type, handler, options);\r\n });\r\n}\n\n/**\r\n * Tracks visibility of the page.\r\n *\r\n * @returns True if the document is currently visible.\r\n *\r\n * @example\r\n * setup() {\r\n * const isVisible = useDocumentVisibility()\r\n * watch(() => console.log(isVisible))\r\n * }\r\n *\r\n */\r\nfunction useDocumentVisibility() {\r\n var documentIsVisible = function () { return document.visibilityState === 'visible'; };\r\n var isVisible = ref(hasWindow ? documentIsVisible() : true);\r\n useEventListener(document, 'visibilitychange', function () {\r\n isVisible.value = documentIsVisible();\r\n });\r\n return isVisible;\r\n}\n\nfunction useFetch(url, options) {\r\n var response = ref(null);\r\n var isLoading = ref(false);\r\n var success = ref(false);\r\n var error = ref(false);\r\n var cancelled = ref(false);\r\n var type = ref('unknown');\r\n var status = ref(undefined);\r\n var statusText = ref('');\r\n var headers = ref({});\r\n var signal;\r\n var controller;\r\n if (typeof AbortController !== 'undefined') {\r\n controller = new AbortController();\r\n signal = controller.signal;\r\n }\r\n function execute() {\r\n isLoading.value = true;\r\n return window\r\n .fetch(url, __assign({ signal: signal }, options))\r\n .then(function (res) {\r\n var _a, _b;\r\n success.value = res.ok;\r\n error.value = !res.ok;\r\n isLoading.value = false;\r\n statusText.value = res.statusText;\r\n status.value = res.status;\r\n type.value = res.type;\r\n var responseHeaders = {};\r\n res.headers.forEach(function (value, key) {\r\n responseHeaders[key] = value;\r\n });\r\n headers.value = responseHeaders;\r\n var isContentTypeJson = ((_a = res.headers.get('content-type')) === null || _a === void 0 ? void 0 : _a.slice(0, (_b = res.headers.get('content-type')) === null || _b === void 0 ? void 0 : _b.indexOf(';'))) ===\r\n 'application/json';\r\n if (isContentTypeJson) {\r\n return res.json();\r\n }\r\n return res.text();\r\n })\r\n .then(function (responseValue) {\r\n // Graceful degradation for cancellation.\r\n if (cancelled.value) {\r\n return;\r\n }\r\n response.value = responseValue;\r\n })\r\n .catch(function () {\r\n error.value = true;\r\n isLoading.value = false;\r\n });\r\n }\r\n onMounted(execute);\r\n function cancel() {\r\n if (success.value) {\r\n return;\r\n }\r\n cancelled.value = true;\r\n if (controller) {\r\n controller.abort();\r\n }\r\n }\r\n return {\r\n response: response,\r\n status: status,\r\n statusText: statusText,\r\n headers: headers,\r\n isLoading: isLoading,\r\n cancelled: cancelled,\r\n error: error,\r\n success: success,\r\n cancel: cancel,\r\n execute: execute\r\n };\r\n}\n\nfunction useFullscreen(target) {\r\n var isFullscreen = ref(false);\r\n function exitFullscreen() {\r\n if (document.fullscreenElement) {\r\n document.exitFullscreen();\r\n }\r\n isFullscreen.value = false;\r\n }\r\n function enterFullscreen() {\r\n exitFullscreen();\r\n target.value.requestFullscreen().then(function () {\r\n isFullscreen.value = true;\r\n });\r\n }\r\n return {\r\n isFullscreen: isFullscreen,\r\n enterFullscreen: enterFullscreen,\r\n exitFullscreen: exitFullscreen\r\n };\r\n}\n\nfunction useGeolocation(options) {\r\n var locatedAt = ref(null);\r\n var error = ref('');\r\n var coords = ref({\r\n accuracy: 0,\r\n latitude: 0,\r\n longitude: 0,\r\n altitude: null,\r\n altitudeAccuracy: null,\r\n heading: null,\r\n speed: null\r\n });\r\n function updatePosition(position) {\r\n locatedAt.value = position.timestamp;\r\n coords.value = position.coords;\r\n error.value = '';\r\n }\r\n var watcher;\r\n onMounted(function () {\r\n if ('geolocation' in navigator) {\r\n watcher = window.navigator.geolocation.watchPosition(updatePosition, undefined, options);\r\n }\r\n });\r\n onUnmounted(function () {\r\n if (watcher) {\r\n window.navigator.geolocation.clearWatch(watcher);\r\n }\r\n });\r\n return {\r\n coords: coords,\r\n locatedAt: locatedAt,\r\n error: error\r\n };\r\n}\n\nfunction useHardwareConcurrency() {\r\n var logicalProcessors = ref(0);\r\n var unsupported = ref(false);\r\n function resolveConcurrency() {\r\n if (!hasWindow) {\r\n onMounted(resolveConcurrency);\r\n }\r\n if ('hardwareConcurrency' in window.navigator) {\r\n logicalProcessors.value = window.navigator.hardwareConcurrency;\r\n }\r\n unsupported.value = true;\r\n }\r\n resolveConcurrency();\r\n return { logicalProcessors: logicalProcessors, unsupported: unsupported };\r\n}\n\nfunction useIntersectionObserver(target, options) {\r\n if (options === void 0) { options = { root: null, rootMargin: '0px' }; }\r\n var intersectionRatio = ref(0);\r\n var isIntersecting = ref(false);\r\n var isFullyInView = ref(false);\r\n function observe() {\r\n if (target.value) {\r\n observer.observe(target.value);\r\n }\r\n }\r\n var observer;\r\n onMounted(function () {\r\n observer = new IntersectionObserver(function (_a) {\r\n var entry = _a[0];\r\n intersectionRatio.value = entry.intersectionRatio;\r\n if (entry.intersectionRatio > 0) {\r\n isIntersecting.value = true;\r\n isFullyInView.value = entry.intersectionRatio >= 1;\r\n return;\r\n }\r\n isIntersecting.value = false;\r\n }, options);\r\n observe();\r\n });\r\n function unobserve() {\r\n if (!observer)\r\n return;\r\n if (target.value) {\r\n observer.unobserve(target.value);\r\n }\r\n }\r\n onUnmounted(unobserve);\r\n return {\r\n intersectionRatio: intersectionRatio,\r\n isIntersecting: isIntersecting,\r\n isFullyInView: isFullyInView,\r\n observe: observe,\r\n unobserve: unobserve\r\n };\r\n}\n\nfunction parseValue(serializedVal) {\r\n var value = null;\r\n try {\r\n value = JSON.parse(serializedVal);\r\n }\r\n catch (_a) {\r\n value = serializedVal;\r\n }\r\n return value;\r\n}\r\nfunction useLocalStorage(key, def) {\r\n var value = ref(null);\r\n var init = function () {\r\n var serializedVal = localStorage.getItem(key);\r\n if (serializedVal !== null) {\r\n value.value = parseValue(serializedVal);\r\n return;\r\n }\r\n value.value = def;\r\n };\r\n var initialized = false;\r\n // early init if possible.\r\n if (typeof window !== 'undefined') {\r\n init();\r\n initialized = true;\r\n }\r\n function handler(e) {\r\n if (e.key === key) {\r\n value.value = e.newValue ? parseValue(e.newValue) : null;\r\n }\r\n }\r\n onMounted(function () {\r\n if (!initialized) {\r\n init();\r\n }\r\n window.addEventListener('storage', handler, true);\r\n });\r\n onUnmounted(function () {\r\n localStorage.setItem(key, JSON.stringify(value.value));\r\n window.removeEventListener('storage', handler);\r\n });\r\n return {\r\n value: value\r\n };\r\n}\n\nfunction useMedia(query) {\r\n var mediaQuery;\r\n // try to fetch initial value (avoid SSR issues)\r\n if (typeof window !== 'undefined') {\r\n mediaQuery = window.matchMedia(query);\r\n }\r\n var matches = ref(mediaQuery ? mediaQuery.matches : false);\r\n function handler(event) {\r\n matches.value = event.matches;\r\n }\r\n onMounted(function () {\r\n if (!mediaQuery) {\r\n mediaQuery = window.matchMedia(query);\r\n }\r\n matches.value = mediaQuery.matches;\r\n mediaQuery.addListener(handler);\r\n });\r\n onUnmounted(function () {\r\n mediaQuery.removeListener(handler);\r\n });\r\n return matches;\r\n}\n\nfunction useMemoryStatus() {\r\n var deviceMemory = ref(0);\r\n var unsupported = ref(false);\r\n var totalJSHeapSize = ref(undefined);\r\n var usedJSHeapSize = ref(undefined);\r\n var jsHeapSizeLimit = ref(undefined);\r\n function resolveMemory() {\r\n if (!hasWindow) {\r\n onMounted(resolveMemory);\r\n }\r\n if (!('deviceMemory' in window.navigator)) {\r\n unsupported.value = true;\r\n return;\r\n }\r\n deviceMemory.value = window.navigator.deviceMemory;\r\n if ('memory' in window.performance) {\r\n var memory = window.performance.memory;\r\n totalJSHeapSize.value = memory.totalJSHeapSize;\r\n usedJSHeapSize.value = memory === null || memory === void 0 ? void 0 : memory.usedJSHeapSize;\r\n jsHeapSizeLimit.value = memory === null || memory === void 0 ? void 0 : memory.jsHeapSizeLimit;\r\n }\r\n }\r\n resolveMemory();\r\n return { deviceMemory: deviceMemory, unsupported: unsupported };\r\n}\n\nfunction useMousePosition() {\r\n var x = ref(0);\r\n var y = ref(0);\r\n function handler(e) {\r\n x.value = e.clientX;\r\n x.value = e.clientY;\r\n }\r\n onMounted(function () {\r\n window.addEventListener('mousemove', handler, false);\r\n });\r\n onUnmounted(function () {\r\n window.removeEventListener('mousemove', handler, false);\r\n });\r\n return {\r\n x: x,\r\n y: y\r\n };\r\n}\n\nfunction useNetwork() {\r\n var isOnline = ref(true);\r\n var saveData = ref(false);\r\n var offlineAt = ref(undefined);\r\n var downlink = ref(undefined);\r\n var downlinkMax = ref(undefined);\r\n var effectiveType = ref(undefined);\r\n var type = ref('unknown');\r\n function updateNetworkInformation() {\r\n isOnline.value = window.navigator.onLine;\r\n offlineAt.value = isOnline.value ? undefined : Date.now();\r\n // skip for non supported browsers.\r\n if (!('connection' in window.navigator)) {\r\n return;\r\n }\r\n downlink.value = window.navigator.connection.downlink;\r\n downlinkMax.value = window.navigator.connection.downlinkMax;\r\n effectiveType.value = window.navigator.connection.effectiveType;\r\n saveData.value = window.navigator.connection.saveData;\r\n type.value = window.navigator.connection.type;\r\n }\r\n var onOffline = function () {\r\n isOnline.value = false;\r\n offlineAt.value = Date.now();\r\n };\r\n var onOnline = function () {\r\n isOnline.value = true;\r\n };\r\n onMounted(function () {\r\n updateNetworkInformation();\r\n window.addEventListener('offline', onOffline);\r\n window.addEventListener('online', onOnline);\r\n if ('connection' in window.navigator) {\r\n window.navigator.connection.addEventListener('change', updateNetworkInformation, false);\r\n }\r\n });\r\n onUnmounted(function () {\r\n window.removeEventListener('offline', onOffline);\r\n window.removeEventListener('online', onOnline);\r\n if ('connection' in window.navigator) {\r\n window.navigator.connection.removeEventListener('change', updateNetworkInformation, false);\r\n }\r\n });\r\n return {\r\n isOnline: isOnline,\r\n saveData: saveData,\r\n offlineAt: offlineAt,\r\n downlink: downlink,\r\n downlinkMax: downlinkMax,\r\n effectiveType: effectiveType,\r\n type: type\r\n };\r\n}\n\nfunction usePreferredColorScheme() {\r\n var queries = {\r\n light: '(prefers-color-scheme: light)',\r\n dark: '(prefers-color-scheme: dark)',\r\n 'no-preference': '(prefers-color-scheme: no-preference)'\r\n };\r\n var isDark = useMedia(queries.dark);\r\n var isLight = useMedia(queries.light);\r\n var theme = computed(function () {\r\n if (isDark.value) {\r\n return 'dark';\r\n }\r\n if (isLight.value) {\r\n return 'light';\r\n }\r\n return 'no-preference';\r\n });\r\n return theme;\r\n}\n\nfunction usePreferredLanguages() {\r\n var value = ref(navigator.languages);\r\n function handler() {\r\n value.value = navigator.languages;\r\n }\r\n onMounted(function () {\r\n window.addEventListener('languagechange', handler);\r\n });\r\n onUnmounted(function () {\r\n window.removeEventListener('languagechange', handler);\r\n });\r\n return value;\r\n}\n\nfunction useScript(opts) {\r\n var isLoading = ref(false);\r\n var error = ref(false);\r\n var success = ref(false);\r\n var promise = new Promise(function (resolve, reject) {\r\n onMounted(function () {\r\n var script = document.createElement('script');\r\n // script.async = opts.async || true;\r\n // script.async = opts.defer || true;\r\n // script.noModule = !opts.module || false;\r\n script.onload = function () {\r\n isLoading.value = false;\r\n success.value = true;\r\n error.value = false;\r\n resolve();\r\n };\r\n script.onerror = function (err) {\r\n isLoading.value = false;\r\n success.value = false;\r\n error.value = true;\r\n reject(err);\r\n };\r\n script.src = opts.src;\r\n document.head.appendChild(script);\r\n });\r\n });\r\n return {\r\n isLoading: isLoading,\r\n error: error,\r\n success: success,\r\n toPromise: function () { return promise; }\r\n };\r\n}\n\nfunction useWebSocket(url) {\r\n var data = ref(null);\r\n var state = ref('CONNECTING');\r\n var ws;\r\n var close = function close(code, reason) {\r\n if (!ws)\r\n return;\r\n ws.close(code, reason);\r\n };\r\n var send = function send(data) {\r\n if (!ws)\r\n return;\r\n ws.send(data);\r\n };\r\n onMounted(function () {\r\n ws = new WebSocket(url);\r\n ws.onopen = function () {\r\n state.value = 'OPEN';\r\n };\r\n ws.onclose = ws.onerror = function () {\r\n state.value = 'CLOSED';\r\n };\r\n ws.onmessage = function (e) {\r\n data.value = e.data;\r\n };\r\n });\r\n onUnmounted(function () {\r\n ws.close();\r\n });\r\n return {\r\n data: data,\r\n state: state,\r\n close: close,\r\n send: send\r\n };\r\n}\n\nfunction useWindowScrollPosition(options) {\r\n if (options === void 0) { options = { throttleMs: 100 }; }\r\n var x = ref(0);\r\n var y = ref(0);\r\n function setScrollPos() {\r\n x.value = window.pageXOffset;\r\n y.value = window.pageYOffset;\r\n }\r\n var onScroll = throttle(options.throttleMs, setScrollPos);\r\n onBeforeMount(function () {\r\n setScrollPos();\r\n });\r\n onMounted(function () {\r\n window.addEventListener('scroll', onScroll, { passive: true });\r\n });\r\n onUnmounted(function () {\r\n window.removeEventListener('scroll', onScroll);\r\n });\r\n return {\r\n x: x,\r\n y: y\r\n };\r\n}\n\nfunction useWindowSize(options) {\r\n if (options === void 0) { options = { throttleMs: 100 }; }\r\n var width = ref(0);\r\n var height = ref(0);\r\n function setSize() {\r\n width.value = window.innerWidth;\r\n height.value = window.innerHeight;\r\n }\r\n var onResize = throttle(options.throttleMs, setSize);\r\n onBeforeMount(function () {\r\n setSize();\r\n });\r\n onMounted(function () {\r\n window.addEventListener('resize', onResize, { passive: true });\r\n });\r\n onUnmounted(function () {\r\n window.removeEventListener('resize', onResize);\r\n });\r\n return {\r\n height: height,\r\n width: width\r\n };\r\n}\n\nfunction useWorker(url) {\r\n var data = ref(null);\r\n var worker;\r\n var post = function post(val) {\r\n if (!worker)\r\n return;\r\n worker.postMessage(val);\r\n };\r\n var terminate = function terminate() {\r\n if (!worker)\r\n return;\r\n worker.terminate();\r\n };\r\n onMounted(function () {\r\n worker = new Worker(url);\r\n worker.onmessage = function (e) {\r\n data.value = e.data;\r\n };\r\n });\r\n onUnmounted(function () {\r\n worker.terminate();\r\n });\r\n return {\r\n data: data,\r\n post: post,\r\n terminate: terminate\r\n };\r\n}\n\nvar defaultNotificationOptions = {\r\n onClick: null,\r\n onShow: null,\r\n onError: null,\r\n onClose: null\r\n};\r\nfunction useNotification(title, options, methods) {\r\n var _this = this;\r\n if (options === void 0) { options = {}; }\r\n if (methods === void 0) { methods = defaultNotificationOptions; }\r\n var notification = ref(null);\r\n var requestPermission = function () { return __awaiter(_this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!('permission' in Notification && Notification.permission !== 'denied')) return [3 /*break*/, 2];\r\n return [4 /*yield*/, Notification.requestPermission()];\r\n case 1:\r\n _a.sent();\r\n _a.label = 2;\r\n case 2: return [2 /*return*/];\r\n }\r\n });\r\n }); };\r\n onMounted(requestPermission);\r\n onUnmounted(function () {\r\n notification.value = null;\r\n });\r\n var showNotifcation = function () {\r\n notification.value = new Notification(title, options);\r\n notification.value.onclick = methods.onClick;\r\n notification.value.onshow = methods.onShow;\r\n notification.value.onerror = methods.onError;\r\n notification.value.onclose = methods.onClose;\r\n };\r\n return { showNotifcation: showNotifcation };\r\n}\n\nfunction useDeviceMedia(constraints) {\r\n var streamRef = ref(null);\r\n var errorRef = ref(null);\r\n onMounted(function () {\r\n navigator.mediaDevices\r\n .getUserMedia(constraints)\r\n .then(function (stream) { return (streamRef.value = stream); })\r\n .catch(function (err) {\r\n errorRef.value = err;\r\n });\r\n });\r\n return {\r\n stream: streamRef,\r\n error: errorRef\r\n };\r\n}\n\nexport { useBattery, useClipboard, useDeviceLight, useDeviceMedia, useDeviceMotion, useDeviceOrientation, useDocumentVisibility, useEventListener, useFetch, useFullscreen, useGeolocation, useHardwareConcurrency, useIntersectionObserver, useLocalStorage, useMedia, useMemoryStatus, useMousePosition, useNetwork, useNotification, usePreferredColorScheme, usePreferredLanguages, useScript, useWebSocket, useWindowScrollPosition, useWindowSize, useWorker };\n","import { watchLazy } from '@/lib/vue';\nimport { FlashMessagesState } from '@/store/modules/flashMessages/flashMessages.store';\nimport { computed } from '@vue/composition-api';\nimport { useNetwork } from 'vue-use-web';\n\nexport function useNetworkStatus() {\n const { isOnline: $isOnline } = useNetwork();\n\n const $isOffline = computed(() => !$isOnline.value);\n\n return { $isOnline, $isOffline };\n}\n\nexport function watchOnline(cb: (isOnline: boolean) => void) {\n const { $isOnline } = useNetworkStatus();\n\n watchLazy($isOnline, cb);\n}\n\nexport function watchOffline(cb: (isOffline: boolean) => void) {\n const { $isOffline } = useNetworkStatus();\n\n watchLazy($isOffline, cb);\n}\n\nexport const checkIsOnline = () => window.navigator.onLine;\nexport const checkIsOffline = () => !window.navigator.onLine;\n\nexport function useAlertNetworkStatus() {\n watchOffline(isOffline =>\n isOffline\n ? FlashMessagesState.alertOffline()\n : FlashMessagesState.alertOnline(),\n );\n}\n","import { FlashMessages } from '@/components/alerts/FlashMessages';\nimport { MyDialog } from '@/components/dialog/MyDialog';\nimport { TemporarySidebar } from '@/components/sidebars/TemporarySidebar';\nimport { Toolbar } from '@/components/toolbar/Toolbar';\nimport { useState } from '@/lib/composables';\nimport { useUpdateAppLeft } from '@/lib/composables/useContextSidebar';\nimport { useAlertNetworkStatus } from '@/lib/composables/utils/useNetworkStatus';\nimport { useRoute } from '@/lib/composables/utils/useRouter';\nimport { createComponent } from '@/lib/vue';\nimport { FlashMessagesState } from '@/store/modules/flashMessages/flashMessages.store';\nimport { AppState } from '@/store/modules/root.store';\n\nexport const AppLayout = createComponent({\n name: 'AppLayout',\n beforeRouteUpdate(to, from, next) {\n FlashMessagesState.closeAll();\n\n next();\n },\n setup(props, ctx) {\n const $dialogId = useState(s => s.dialog.id);\n\n AppState.loadingOff();\n\n useUpdateAppLeft(ctx);\n\n useAlertNetworkStatus();\n\n return () => (\n
\n \n\n \n\n \n \n \n\n \n
\n
\n \n\n \n \n \n
\n
\n
\n\n \n
\n );\n },\n});\n\nexport default AppLayout;\n","import { createComponent } from '@/lib/vue';\nimport { IMenu } from '@/typings';\nimport { PropType } from 'vue';\nimport { mapMenuTile } from './mapMenuTile';\n\nexport interface IProps {\n icon: string;\n iconColor?: string;\n btnClasses?: string;\n menus: IMenu[];\n maxWidth?: number;\n}\n\nexport const QuickMenu = createComponent({\n name: 'QuickMenu',\n props: {\n icon: { type: String, required: true },\n iconColor: String,\n btnClasses: { type: String, default: '' },\n menus: { type: Array as PropType, required: true },\n maxWidth: { type: Number, default: 320 },\n },\n setup(props, ctx) {\n return () => (\n \n {props.menus.map(mapMenuTile)}\n \n );\n },\n});\n\nconst menuActivator =\n (props: IProps) =>\n ({ on }) =>\n (\n \n {props.icon}\n \n );\n","import { IMenu } from '@/typings';\n\nexport function mapMenuTile(menu: IMenu, index: number) {\n if (menu.hidden) {\n return null;\n } else if (menu.to) {\n return (\n \n {menuListItem(menu)}\n \n );\n } else if (menu.action) {\n return (\n \n {menuListItem(menu)}\n \n );\n } else if (menu.divider) {\n return ;\n }\n}\n\nfunction menuListItem(menu: IMenu) {\n return [\n \n {menu.icon}\n ,\n\n \n {menu.text}\n\n {menu.description && (\n {menu.description}\n )}\n ,\n ];\n}\n","import { createComponent } from '@/lib/vue';\nimport { PropType } from 'vue';\n\ntype ILogoType = 'white' | 'primary';\n\nexport const Logo = createComponent({\n name: 'Logo',\n props: {\n type: { type: String as PropType, required: true },\n width: { type: Number, default: 260 },\n },\n setup(props, ctx) {\n return () => (\n \n );\n },\n});\n"],"sourceRoot":""}