Przeniesienie autogenerowanych typów do oddzielnego folderu. Dodanie własnego tooltipa do wykresów, a przywrócenie oryginalnego kodu do porządku. Praca nad wykresami była już ukończona, ale przez sugestie Bartka zostałem zmuszony do wzięcia się jeszcze raz za wykresy.
This commit is contained in:
@@ -420,6 +420,57 @@
|
||||
"useToast": true,
|
||||
"cacheFullListResponsesStore": true,
|
||||
"cacheFullListResponsesStores": true,
|
||||
"listenCurrentUserStore": true
|
||||
"listenCurrentUserStore": true,
|
||||
"useDataFetch": true,
|
||||
"usePBDataFetch": true,
|
||||
"tabsConfig": true,
|
||||
"dataForCharts": true,
|
||||
"useChartData": true,
|
||||
"Collections": true,
|
||||
"CulturesNamesbaseOptions": true,
|
||||
"CulturesTypeOptions": true,
|
||||
"ProvincesFormOptions": true,
|
||||
"ReligionsTypeOptions": true,
|
||||
"StatesFormOptions": true,
|
||||
"UsersRoleOptions": true,
|
||||
".": true,
|
||||
"/": true,
|
||||
"T": true,
|
||||
"a": true,
|
||||
"c": true,
|
||||
"e": true,
|
||||
"p": true,
|
||||
"r": true,
|
||||
"s": true,
|
||||
"t": true,
|
||||
"y": true,
|
||||
"ChartData": true,
|
||||
"Config": true,
|
||||
"ChartConfig": true,
|
||||
"DataForCharts": true,
|
||||
"AdminService": true,
|
||||
"AsyncAuthStore": true,
|
||||
"BaseAuthStore": true,
|
||||
"ClientResponseError": true,
|
||||
"CollectionService": true,
|
||||
"CrudService": true,
|
||||
"HealthService": true,
|
||||
"LocalAuthStore": true,
|
||||
"LogService": true,
|
||||
"RealtimeService": true,
|
||||
"RecordService": true,
|
||||
"cookieParse": true,
|
||||
"cookieSerialize": true,
|
||||
"default": true,
|
||||
"getTokenPayload": true,
|
||||
"isTokenExpired": true,
|
||||
"normalizeUnknownQueryParams": true,
|
||||
"dFCh": true,
|
||||
"Progress": true,
|
||||
"chartsConfig": true,
|
||||
"useFetchData": true,
|
||||
"function": true,
|
||||
"useChartDataFetch": true,
|
||||
"chartsCategories": true
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ RUN bun run build-only
|
||||
FROM alpine:latest
|
||||
|
||||
LABEL maintainer="garandplg@garandplg.com"
|
||||
LABEL version="0.0.18"
|
||||
LABEL version="0.0.19"
|
||||
LABEL description="Garand's WG. Pocketbase + Bun + Vue3 + Vite + TypeScript + TailwindCSS + Shadcn-vue"
|
||||
|
||||
ARG PB_VERSION=0.22.26
|
||||
|
||||
40
package.json
40
package.json
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "garands-world-game",
|
||||
"version": "0.0.18",
|
||||
"version": "0.0.19",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
@@ -17,21 +17,21 @@
|
||||
"dependencies": {
|
||||
"@types/bun": "^1.1.13",
|
||||
"@unhead/vue": "^1.11.11",
|
||||
"@unovis/ts": "^1.5.0-beta.0",
|
||||
"@unovis/vue": "^1.5.0-beta.0",
|
||||
"@vee-validate/zod": "^4.14.4",
|
||||
"@unovis/ts": "^1.5.0-version.9",
|
||||
"@unovis/vue": "^1.5.0-beta.3",
|
||||
"@vee-validate/zod": "^4.14.7",
|
||||
"@vueuse/core": "^11.2.0",
|
||||
"class-variance-authority": "^0.7.0",
|
||||
"clsx": "^2.1.1",
|
||||
"dotenv": "^16.4.5",
|
||||
"lucide-vue-next": "^0.453.0",
|
||||
"pinia": "^2.2.4",
|
||||
"pinia": "^2.2.6",
|
||||
"pocketbase": "^0.21.5",
|
||||
"radix-vue": "^1.9.7",
|
||||
"radix-vue": "^1.9.10",
|
||||
"tailwind-merge": "^2.5.4",
|
||||
"tailwindcss-animate": "^1.0.7",
|
||||
"vee-validate": "^4.14.4",
|
||||
"vue": "^3.5.12",
|
||||
"vee-validate": "^4.14.7",
|
||||
"vue": "^3.5.13",
|
||||
"vue-router": "^4.4.5",
|
||||
"zod": "^3.23.8"
|
||||
},
|
||||
@@ -42,32 +42,32 @@
|
||||
"@std/csv": "npm:@jsr/std__csv",
|
||||
"@tsconfig/node20": "^20.1.4",
|
||||
"@types/jsdom": "^21.1.7",
|
||||
"@types/node": "^22.7.9",
|
||||
"@vitejs/plugin-vue": "^5.1.4",
|
||||
"@types/node": "^22.9.1",
|
||||
"@vitejs/plugin-vue": "^5.2.0",
|
||||
"@vue/eslint-config-prettier": "^10.1.0",
|
||||
"@vue/eslint-config-typescript": "^14.1.3",
|
||||
"@vue/test-utils": "^2.4.6",
|
||||
"@vue/tsconfig": "^0.5.1",
|
||||
"autoprefixer": "^10.4.20",
|
||||
"date-fns": "^4.1.0",
|
||||
"eslint": "^9.13.0",
|
||||
"eslint-plugin-vue": "^9.29.1",
|
||||
"eslint": "^9.15.0",
|
||||
"eslint-plugin-vue": "^9.31.0",
|
||||
"jsdom": "^25.0.1",
|
||||
"npm-run-all2": "^7.0.1",
|
||||
"pocketbase-typegen": "^1.2.1",
|
||||
"prettier": "^3.3.3",
|
||||
"prettier-plugin-classnames": "^0.7.3",
|
||||
"prettier-plugin-classnames": "^0.7.4",
|
||||
"prettier-plugin-organize-imports": "^4.1.0",
|
||||
"prettier-plugin-tailwindcss": "^0.6.8",
|
||||
"prettier-plugin-tailwindcss": "^0.6.9",
|
||||
"start-server-and-test": "^2.0.8",
|
||||
"tailwindcss": "^3.4.14",
|
||||
"tailwindcss": "^3.4.15",
|
||||
"typescript": "~5.6.3",
|
||||
"unplugin-auto-import": "^0.18.3",
|
||||
"unplugin-auto-import": "^0.18.5",
|
||||
"unplugin-vue-components": "^0.27.4",
|
||||
"unplugin-vue-router": "^0.10.8",
|
||||
"vite": "^5.4.10",
|
||||
"vite-plugin-vue-devtools": "^7.5.3",
|
||||
"vitest": "^2.1.3",
|
||||
"vue-tsc": "^2.1.6"
|
||||
"vite": "^5.4.11",
|
||||
"vite-plugin-vue-devtools": "^7.6.4",
|
||||
"vitest": "^2.1.5",
|
||||
"vue-tsc": "^2.1.10"
|
||||
}
|
||||
}
|
||||
|
||||
895
src/auto-types/auto-imports.d.ts
vendored
Normal file
895
src/auto-types/auto-imports.d.ts
vendored
Normal file
@@ -0,0 +1,895 @@
|
||||
/* eslint-disable */
|
||||
/* prettier-ignore */
|
||||
// @ts-nocheck
|
||||
// noinspection JSUnusedGlobalSymbols
|
||||
// Generated by unplugin-auto-import
|
||||
// biome-ignore lint: disable
|
||||
export {}
|
||||
declare global {
|
||||
const AdminService: typeof import('pocketbase')['AdminService']
|
||||
const AsyncAuthStore: typeof import('pocketbase')['AsyncAuthStore']
|
||||
const BaseAuthStore: typeof import('pocketbase')['BaseAuthStore']
|
||||
const Button: typeof import('../components/ui/button/index')['Button']
|
||||
const Card: typeof import('../components/ui/card/index')['Card']
|
||||
const CardContent: typeof import('../components/ui/card/index')['CardContent']
|
||||
const CardDescription: typeof import('../components/ui/card/index')['CardDescription']
|
||||
const CardFooter: typeof import('../components/ui/card/index')['CardFooter']
|
||||
const CardHeader: typeof import('../components/ui/card/index')['CardHeader']
|
||||
const CardTitle: typeof import('../components/ui/card/index')['CardTitle']
|
||||
const ChartCrosshair: typeof import('../components/ui/chart/index')['ChartCrosshair']
|
||||
const ChartLegend: typeof import('../components/ui/chart/index')['ChartLegend']
|
||||
const ChartSingleTooltip: typeof import('../components/ui/chart/index')['ChartSingleTooltip']
|
||||
const ChartTooltip: typeof import('../components/ui/chart/index')['ChartTooltip']
|
||||
const ClientResponseError: typeof import('pocketbase')['ClientResponseError']
|
||||
const CollectionService: typeof import('pocketbase')['CollectionService']
|
||||
const Collections: typeof import('../types/pb-types')['Collections']
|
||||
const CrudService: typeof import('pocketbase')['CrudService']
|
||||
const CulturesNamesbaseOptions: typeof import('../types/pb-types')['CulturesNamesbaseOptions']
|
||||
const CulturesTypeOptions: typeof import('../types/pb-types')['CulturesTypeOptions']
|
||||
const Dialog: typeof import('../components/ui/dialog/index')['Dialog']
|
||||
const DialogClose: typeof import('../components/ui/dialog/index')['DialogClose']
|
||||
const DialogContent: typeof import('../components/ui/dialog/index')['DialogContent']
|
||||
const DialogDescription: typeof import('../components/ui/dialog/index')['DialogDescription']
|
||||
const DialogFooter: typeof import('../components/ui/dialog/index')['DialogFooter']
|
||||
const DialogHeader: typeof import('../components/ui/dialog/index')['DialogHeader']
|
||||
const DialogScrollContent: typeof import('../components/ui/dialog/index')['DialogScrollContent']
|
||||
const DialogTitle: typeof import('../components/ui/dialog/index')['DialogTitle']
|
||||
const DialogTrigger: typeof import('../components/ui/dialog/index')['DialogTrigger']
|
||||
const DropdownMenu: typeof import('../components/ui/dropdown-menu/index')['DropdownMenu']
|
||||
const DropdownMenuCheckboxItem: typeof import('../components/ui/dropdown-menu/index')['DropdownMenuCheckboxItem']
|
||||
const DropdownMenuContent: typeof import('../components/ui/dropdown-menu/index')['DropdownMenuContent']
|
||||
const DropdownMenuGroup: typeof import('../components/ui/dropdown-menu/index')['DropdownMenuGroup']
|
||||
const DropdownMenuItem: typeof import('../components/ui/dropdown-menu/index')['DropdownMenuItem']
|
||||
const DropdownMenuLabel: typeof import('../components/ui/dropdown-menu/index')['DropdownMenuLabel']
|
||||
const DropdownMenuPortal: typeof import('../components/ui/dropdown-menu/index')['DropdownMenuPortal']
|
||||
const DropdownMenuRadioGroup: typeof import('../components/ui/dropdown-menu/index')['DropdownMenuRadioGroup']
|
||||
const DropdownMenuRadioItem: typeof import('../components/ui/dropdown-menu/index')['DropdownMenuRadioItem']
|
||||
const DropdownMenuSeparator: typeof import('../components/ui/dropdown-menu/index')['DropdownMenuSeparator']
|
||||
const DropdownMenuShortcut: typeof import('../components/ui/dropdown-menu/index')['DropdownMenuShortcut']
|
||||
const DropdownMenuSub: typeof import('../components/ui/dropdown-menu/index')['DropdownMenuSub']
|
||||
const DropdownMenuSubContent: typeof import('../components/ui/dropdown-menu/index')['DropdownMenuSubContent']
|
||||
const DropdownMenuSubTrigger: typeof import('../components/ui/dropdown-menu/index')['DropdownMenuSubTrigger']
|
||||
const DropdownMenuTrigger: typeof import('../components/ui/dropdown-menu/index')['DropdownMenuTrigger']
|
||||
const EffectScope: typeof import('vue')['EffectScope']
|
||||
const FORM_ITEM_INJECTION_KEY: typeof import('../components/ui/form/injectionKeys')['FORM_ITEM_INJECTION_KEY']
|
||||
const Form: typeof import('../components/ui/form/index')['Form']
|
||||
const FormControl: typeof import('../components/ui/form/index')['FormControl']
|
||||
const FormDescription: typeof import('../components/ui/form/index')['FormDescription']
|
||||
const FormField: typeof import('../components/ui/form/index')['FormField']
|
||||
const FormItem: typeof import('../components/ui/form/index')['FormItem']
|
||||
const FormLabel: typeof import('../components/ui/form/index')['FormLabel']
|
||||
const FormMessage: typeof import('../components/ui/form/index')['FormMessage']
|
||||
const HealthService: typeof import('pocketbase')['HealthService']
|
||||
const Input: typeof import('../components/ui/input/index')['Input']
|
||||
const Label: typeof import('../components/ui/label/index')['Label']
|
||||
const LineChart: typeof import('../components/ui/chart-line/index')['LineChart']
|
||||
const LocalAuthStore: typeof import('pocketbase')['LocalAuthStore']
|
||||
const LogService: typeof import('pocketbase')['LogService']
|
||||
const NavigationMenu: typeof import('../components/ui/navigation-menu/index')['NavigationMenu']
|
||||
const NavigationMenuContent: typeof import('../components/ui/navigation-menu/index')['NavigationMenuContent']
|
||||
const NavigationMenuItem: typeof import('../components/ui/navigation-menu/index')['NavigationMenuItem']
|
||||
const NavigationMenuLink: typeof import('../components/ui/navigation-menu/index')['NavigationMenuLink']
|
||||
const NavigationMenuList: typeof import('../components/ui/navigation-menu/index')['NavigationMenuList']
|
||||
const NavigationMenuTrigger: typeof import('../components/ui/navigation-menu/index')['NavigationMenuTrigger']
|
||||
const NumberField: typeof import('../components/ui/number-field/index')['NumberField']
|
||||
const NumberFieldContent: typeof import('../components/ui/number-field/index')['NumberFieldContent']
|
||||
const NumberFieldDecrement: typeof import('../components/ui/number-field/index')['NumberFieldDecrement']
|
||||
const NumberFieldIncrement: typeof import('../components/ui/number-field/index')['NumberFieldIncrement']
|
||||
const NumberFieldInput: typeof import('../components/ui/number-field/index')['NumberFieldInput']
|
||||
const Popover: typeof import('../components/ui/popover/index')['Popover']
|
||||
const PopoverContent: typeof import('../components/ui/popover/index')['PopoverContent']
|
||||
const PopoverTrigger: typeof import('../components/ui/popover/index')['PopoverTrigger']
|
||||
const Progress: typeof import('../components/ui/progress/index')['Progress']
|
||||
const ProvincesFormOptions: typeof import('../types/pb-types')['ProvincesFormOptions']
|
||||
const RadioGroup: typeof import('../components/ui/radio-group/index')['RadioGroup']
|
||||
const RadioGroupItem: typeof import('../components/ui/radio-group/index')['RadioGroupItem']
|
||||
const RealtimeService: typeof import('pocketbase')['RealtimeService']
|
||||
const RecordService: typeof import('pocketbase')['RecordService']
|
||||
const ReligionsTypeOptions: typeof import('../types/pb-types')['ReligionsTypeOptions']
|
||||
const ScrollArea: typeof import('../components/ui/scroll-area/index')['ScrollArea']
|
||||
const ScrollBar: typeof import('../components/ui/scroll-area/index')['ScrollBar']
|
||||
const Separator: typeof import('../components/ui/separator/index')['Separator']
|
||||
const StatesFormOptions: typeof import('../types/pb-types')['StatesFormOptions']
|
||||
const Switch: typeof import('../components/ui/switch/index')['Switch']
|
||||
const Tabs: typeof import('../components/ui/tabs/index')['Tabs']
|
||||
const TabsContent: typeof import('../components/ui/tabs/index')['TabsContent']
|
||||
const TabsList: typeof import('../components/ui/tabs/index')['TabsList']
|
||||
const TabsTrigger: typeof import('../components/ui/tabs/index')['TabsTrigger']
|
||||
const Toast: typeof import('../components/ui/toast/index')['Toast']
|
||||
const ToastAction: typeof import('../components/ui/toast/index')['ToastAction']
|
||||
const ToastClose: typeof import('../components/ui/toast/index')['ToastClose']
|
||||
const ToastDescription: typeof import('../components/ui/toast/index')['ToastDescription']
|
||||
const ToastProvider: typeof import('../components/ui/toast/index')['ToastProvider']
|
||||
const ToastTitle: typeof import('../components/ui/toast/index')['ToastTitle']
|
||||
const ToastViewport: typeof import('../components/ui/toast/index')['ToastViewport']
|
||||
const Toaster: typeof import('../components/ui/toast/index')['Toaster']
|
||||
const UsersRoleOptions: typeof import('../types/pb-types')['UsersRoleOptions']
|
||||
const acceptHMRUpdate: typeof import('pinia')['acceptHMRUpdate']
|
||||
const afterAll: typeof import('vitest')['afterAll']
|
||||
const afterEach: typeof import('vitest')['afterEach']
|
||||
const assert: typeof import('vitest')['assert']
|
||||
const asyncComputed: typeof import('@vueuse/core')['asyncComputed']
|
||||
const autoResetRef: typeof import('@vueuse/core')['autoResetRef']
|
||||
const beforeAll: typeof import('vitest')['beforeAll']
|
||||
const beforeEach: typeof import('vitest')['beforeEach']
|
||||
const buttonVariants: typeof import('../components/ui/button/index')['buttonVariants']
|
||||
const cacheFullListResponsesStore: typeof import('../stores/cacheFullListResponsesStore')['cacheFullListResponsesStore']
|
||||
const chai: typeof import('vitest')['chai']
|
||||
const chartsCategories: typeof import('../data/chartsConfig')['chartsCategories']
|
||||
const chartsConfig: typeof import('../data/chartsConfig')['chartsConfig']
|
||||
const computed: typeof import('vue')['computed']
|
||||
const computedAsync: typeof import('@vueuse/core')['computedAsync']
|
||||
const computedEager: typeof import('@vueuse/core')['computedEager']
|
||||
const computedInject: typeof import('@vueuse/core')['computedInject']
|
||||
const computedWithControl: typeof import('@vueuse/core')['computedWithControl']
|
||||
const controlledComputed: typeof import('@vueuse/core')['controlledComputed']
|
||||
const controlledRef: typeof import('@vueuse/core')['controlledRef']
|
||||
const cookieParse: typeof import('pocketbase')['cookieParse']
|
||||
const cookieSerialize: typeof import('pocketbase')['cookieSerialize']
|
||||
const createApp: typeof import('vue')['createApp']
|
||||
const createEventHook: typeof import('@vueuse/core')['createEventHook']
|
||||
const createGlobalState: typeof import('@vueuse/core')['createGlobalState']
|
||||
const createInjectionState: typeof import('@vueuse/core')['createInjectionState']
|
||||
const createPinia: typeof import('pinia')['createPinia']
|
||||
const createReactiveFn: typeof import('@vueuse/core')['createReactiveFn']
|
||||
const createReusableTemplate: typeof import('@vueuse/core')['createReusableTemplate']
|
||||
const createSharedComposable: typeof import('@vueuse/core')['createSharedComposable']
|
||||
const createTemplatePromise: typeof import('@vueuse/core')['createTemplatePromise']
|
||||
const createUnrefFn: typeof import('@vueuse/core')['createUnrefFn']
|
||||
const customRef: typeof import('vue')['customRef']
|
||||
const dFCh: typeof import('../data/dataForCharts')['dFCh']
|
||||
const debouncedRef: typeof import('@vueuse/core')['debouncedRef']
|
||||
const debouncedWatch: typeof import('@vueuse/core')['debouncedWatch']
|
||||
const default: typeof import('pocketbase')['default']
|
||||
const defaultColors: typeof import('../components/ui/chart/index')['defaultColors']
|
||||
const defineAsyncComponent: typeof import('vue')['defineAsyncComponent']
|
||||
const defineComponent: typeof import('vue')['defineComponent']
|
||||
const defineStore: typeof import('pinia')['defineStore']
|
||||
const describe: typeof import('vitest')['describe']
|
||||
const eagerComputed: typeof import('@vueuse/core')['eagerComputed']
|
||||
const effectScope: typeof import('vue')['effectScope']
|
||||
const expect: typeof import('vitest')['expect']
|
||||
const extendRef: typeof import('@vueuse/core')['extendRef']
|
||||
const getActiveHead: typeof import('@unhead/vue')['getActiveHead']
|
||||
const getActivePinia: typeof import('pinia')['getActivePinia']
|
||||
const getCurrentInstance: typeof import('vue')['getCurrentInstance']
|
||||
const getCurrentScope: typeof import('vue')['getCurrentScope']
|
||||
const getTokenPayload: typeof import('pocketbase')['getTokenPayload']
|
||||
const h: typeof import('vue')['h']
|
||||
const ignorableWatch: typeof import('@vueuse/core')['ignorableWatch']
|
||||
const inject: typeof import('vue')['inject']
|
||||
const injectHead: typeof import('@unhead/vue')['injectHead']
|
||||
const injectLocal: typeof import('@vueuse/core')['injectLocal']
|
||||
const isDefined: typeof import('@vueuse/core')['isDefined']
|
||||
const isProxy: typeof import('vue')['isProxy']
|
||||
const isReactive: typeof import('vue')['isReactive']
|
||||
const isReadonly: typeof import('vue')['isReadonly']
|
||||
const isRef: typeof import('vue')['isRef']
|
||||
const isTokenExpired: typeof import('pocketbase')['isTokenExpired']
|
||||
const it: typeof import('vitest')['it']
|
||||
const listenCurrentUserStore: typeof import('../stores/listenCurrentUseStore')['listenCurrentUserStore']
|
||||
const makeDestructurable: typeof import('@vueuse/core')['makeDestructurable']
|
||||
const mapActions: typeof import('pinia')['mapActions']
|
||||
const mapGetters: typeof import('pinia')['mapGetters']
|
||||
const mapState: typeof import('pinia')['mapState']
|
||||
const mapStores: typeof import('pinia')['mapStores']
|
||||
const mapWritableState: typeof import('pinia')['mapWritableState']
|
||||
const markRaw: typeof import('vue')['markRaw']
|
||||
const navigationMenuTriggerStyle: typeof import('../components/ui/navigation-menu/index')['navigationMenuTriggerStyle']
|
||||
const nextTick: typeof import('vue')['nextTick']
|
||||
const normalizeUnknownQueryParams: typeof import('pocketbase')['normalizeUnknownQueryParams']
|
||||
const onActivated: typeof import('vue')['onActivated']
|
||||
const onBeforeMount: typeof import('vue')['onBeforeMount']
|
||||
const onBeforeRouteLeave: typeof import('vue-router')['onBeforeRouteLeave']
|
||||
const onBeforeRouteUpdate: typeof import('vue-router')['onBeforeRouteUpdate']
|
||||
const onBeforeUnmount: typeof import('vue')['onBeforeUnmount']
|
||||
const onBeforeUpdate: typeof import('vue')['onBeforeUpdate']
|
||||
const onClickOutside: typeof import('@vueuse/core')['onClickOutside']
|
||||
const onDeactivated: typeof import('vue')['onDeactivated']
|
||||
const onErrorCaptured: typeof import('vue')['onErrorCaptured']
|
||||
const onKeyStroke: typeof import('@vueuse/core')['onKeyStroke']
|
||||
const onLongPress: typeof import('@vueuse/core')['onLongPress']
|
||||
const onMounted: typeof import('vue')['onMounted']
|
||||
const onRenderTracked: typeof import('vue')['onRenderTracked']
|
||||
const onRenderTriggered: typeof import('vue')['onRenderTriggered']
|
||||
const onScopeDispose: typeof import('vue')['onScopeDispose']
|
||||
const onServerPrefetch: typeof import('vue')['onServerPrefetch']
|
||||
const onStartTyping: typeof import('@vueuse/core')['onStartTyping']
|
||||
const onUnmounted: typeof import('vue')['onUnmounted']
|
||||
const onUpdated: typeof import('vue')['onUpdated']
|
||||
const onWatcherCleanup: typeof import('vue')['onWatcherCleanup']
|
||||
const pausableWatch: typeof import('@vueuse/core')['pausableWatch']
|
||||
const provide: typeof import('vue')['provide']
|
||||
const provideLocal: typeof import('@vueuse/core')['provideLocal']
|
||||
const reactify: typeof import('@vueuse/core')['reactify']
|
||||
const reactifyObject: typeof import('@vueuse/core')['reactifyObject']
|
||||
const reactive: typeof import('vue')['reactive']
|
||||
const reactiveComputed: typeof import('@vueuse/core')['reactiveComputed']
|
||||
const reactiveOmit: typeof import('@vueuse/core')['reactiveOmit']
|
||||
const reactivePick: typeof import('@vueuse/core')['reactivePick']
|
||||
const readonly: typeof import('vue')['readonly']
|
||||
const ref: typeof import('vue')['ref']
|
||||
const refAutoReset: typeof import('@vueuse/core')['refAutoReset']
|
||||
const refDebounced: typeof import('@vueuse/core')['refDebounced']
|
||||
const refDefault: typeof import('@vueuse/core')['refDefault']
|
||||
const refThrottled: typeof import('@vueuse/core')['refThrottled']
|
||||
const refWithControl: typeof import('@vueuse/core')['refWithControl']
|
||||
const resolveComponent: typeof import('vue')['resolveComponent']
|
||||
const resolveRef: typeof import('@vueuse/core')['resolveRef']
|
||||
const resolveUnref: typeof import('@vueuse/core')['resolveUnref']
|
||||
const setActivePinia: typeof import('pinia')['setActivePinia']
|
||||
const setMapStoreSuffix: typeof import('pinia')['setMapStoreSuffix']
|
||||
const shallowReactive: typeof import('vue')['shallowReactive']
|
||||
const shallowReadonly: typeof import('vue')['shallowReadonly']
|
||||
const shallowRef: typeof import('vue')['shallowRef']
|
||||
const storeToRefs: typeof import('pinia')['storeToRefs']
|
||||
const suite: typeof import('vitest')['suite']
|
||||
const syncRef: typeof import('@vueuse/core')['syncRef']
|
||||
const syncRefs: typeof import('@vueuse/core')['syncRefs']
|
||||
const templateRef: typeof import('@vueuse/core')['templateRef']
|
||||
const test: typeof import('vitest')['test']
|
||||
const throttledRef: typeof import('@vueuse/core')['throttledRef']
|
||||
const throttledWatch: typeof import('@vueuse/core')['throttledWatch']
|
||||
const toRaw: typeof import('vue')['toRaw']
|
||||
const toReactive: typeof import('@vueuse/core')['toReactive']
|
||||
const toRef: typeof import('vue')['toRef']
|
||||
const toRefs: typeof import('vue')['toRefs']
|
||||
const toValue: typeof import('vue')['toValue']
|
||||
const toast: typeof import('../components/ui/toast/use-toast')['toast']
|
||||
const toastVariants: typeof import('../components/ui/toast/index')['toastVariants']
|
||||
const triggerRef: typeof import('vue')['triggerRef']
|
||||
const tryOnBeforeMount: typeof import('@vueuse/core')['tryOnBeforeMount']
|
||||
const tryOnBeforeUnmount: typeof import('@vueuse/core')['tryOnBeforeUnmount']
|
||||
const tryOnMounted: typeof import('@vueuse/core')['tryOnMounted']
|
||||
const tryOnScopeDispose: typeof import('@vueuse/core')['tryOnScopeDispose']
|
||||
const tryOnUnmounted: typeof import('@vueuse/core')['tryOnUnmounted']
|
||||
const unref: typeof import('vue')['unref']
|
||||
const unrefElement: typeof import('@vueuse/core')['unrefElement']
|
||||
const until: typeof import('@vueuse/core')['until']
|
||||
const useActiveElement: typeof import('@vueuse/core')['useActiveElement']
|
||||
const useAnimate: typeof import('@vueuse/core')['useAnimate']
|
||||
const useArrayDifference: typeof import('@vueuse/core')['useArrayDifference']
|
||||
const useArrayEvery: typeof import('@vueuse/core')['useArrayEvery']
|
||||
const useArrayFilter: typeof import('@vueuse/core')['useArrayFilter']
|
||||
const useArrayFind: typeof import('@vueuse/core')['useArrayFind']
|
||||
const useArrayFindIndex: typeof import('@vueuse/core')['useArrayFindIndex']
|
||||
const useArrayFindLast: typeof import('@vueuse/core')['useArrayFindLast']
|
||||
const useArrayIncludes: typeof import('@vueuse/core')['useArrayIncludes']
|
||||
const useArrayJoin: typeof import('@vueuse/core')['useArrayJoin']
|
||||
const useArrayMap: typeof import('@vueuse/core')['useArrayMap']
|
||||
const useArrayReduce: typeof import('@vueuse/core')['useArrayReduce']
|
||||
const useArraySome: typeof import('@vueuse/core')['useArraySome']
|
||||
const useArrayUnique: typeof import('@vueuse/core')['useArrayUnique']
|
||||
const useAsyncQueue: typeof import('@vueuse/core')['useAsyncQueue']
|
||||
const useAsyncState: typeof import('@vueuse/core')['useAsyncState']
|
||||
const useAttrs: typeof import('vue')['useAttrs']
|
||||
const useBase64: typeof import('@vueuse/core')['useBase64']
|
||||
const useBattery: typeof import('@vueuse/core')['useBattery']
|
||||
const useBluetooth: typeof import('@vueuse/core')['useBluetooth']
|
||||
const useBreakpoints: typeof import('@vueuse/core')['useBreakpoints']
|
||||
const useBroadcastChannel: typeof import('@vueuse/core')['useBroadcastChannel']
|
||||
const useBrowserLocation: typeof import('@vueuse/core')['useBrowserLocation']
|
||||
const useCached: typeof import('@vueuse/core')['useCached']
|
||||
const useChartData: typeof import('../composables/useChartData')['useChartData']
|
||||
const useChartDataFetch: typeof import('../composables/useChartDataFetch')['useChartDataFetch']
|
||||
const useClipboard: typeof import('@vueuse/core')['useClipboard']
|
||||
const useClipboardItems: typeof import('@vueuse/core')['useClipboardItems']
|
||||
const useCloned: typeof import('@vueuse/core')['useCloned']
|
||||
const useColorMode: typeof import('@vueuse/core')['useColorMode']
|
||||
const useConfirmDialog: typeof import('@vueuse/core')['useConfirmDialog']
|
||||
const useCounter: typeof import('@vueuse/core')['useCounter']
|
||||
const useCssModule: typeof import('vue')['useCssModule']
|
||||
const useCssVar: typeof import('@vueuse/core')['useCssVar']
|
||||
const useCssVars: typeof import('vue')['useCssVars']
|
||||
const useCurrentElement: typeof import('@vueuse/core')['useCurrentElement']
|
||||
const useCycleList: typeof import('@vueuse/core')['useCycleList']
|
||||
const useDark: typeof import('@vueuse/core')['useDark']
|
||||
const useDateFormat: typeof import('@vueuse/core')['useDateFormat']
|
||||
const useDebounce: typeof import('@vueuse/core')['useDebounce']
|
||||
const useDebounceFn: typeof import('@vueuse/core')['useDebounceFn']
|
||||
const useDebouncedRefHistory: typeof import('@vueuse/core')['useDebouncedRefHistory']
|
||||
const useDeviceMotion: typeof import('@vueuse/core')['useDeviceMotion']
|
||||
const useDeviceOrientation: typeof import('@vueuse/core')['useDeviceOrientation']
|
||||
const useDevicePixelRatio: typeof import('@vueuse/core')['useDevicePixelRatio']
|
||||
const useDevicesList: typeof import('@vueuse/core')['useDevicesList']
|
||||
const useDisplayMedia: typeof import('@vueuse/core')['useDisplayMedia']
|
||||
const useDocumentVisibility: typeof import('@vueuse/core')['useDocumentVisibility']
|
||||
const useDraggable: typeof import('@vueuse/core')['useDraggable']
|
||||
const useDropZone: typeof import('@vueuse/core')['useDropZone']
|
||||
const useElementBounding: typeof import('@vueuse/core')['useElementBounding']
|
||||
const useElementByPoint: typeof import('@vueuse/core')['useElementByPoint']
|
||||
const useElementHover: typeof import('@vueuse/core')['useElementHover']
|
||||
const useElementSize: typeof import('@vueuse/core')['useElementSize']
|
||||
const useElementVisibility: typeof import('@vueuse/core')['useElementVisibility']
|
||||
const useEventBus: typeof import('@vueuse/core')['useEventBus']
|
||||
const useEventListener: typeof import('@vueuse/core')['useEventListener']
|
||||
const useEventSource: typeof import('@vueuse/core')['useEventSource']
|
||||
const useEyeDropper: typeof import('@vueuse/core')['useEyeDropper']
|
||||
const useFavicon: typeof import('@vueuse/core')['useFavicon']
|
||||
const useFetch: typeof import('@vueuse/core')['useFetch']
|
||||
const useFileDialog: typeof import('@vueuse/core')['useFileDialog']
|
||||
const useFileSystemAccess: typeof import('@vueuse/core')['useFileSystemAccess']
|
||||
const useFocus: typeof import('@vueuse/core')['useFocus']
|
||||
const useFocusWithin: typeof import('@vueuse/core')['useFocusWithin']
|
||||
const useFormField: typeof import('../components/ui/form/useFormField')['useFormField']
|
||||
const useFps: typeof import('@vueuse/core')['useFps']
|
||||
const useFullscreen: typeof import('@vueuse/core')['useFullscreen']
|
||||
const useGamepad: typeof import('@vueuse/core')['useGamepad']
|
||||
const useGeolocation: typeof import('@vueuse/core')['useGeolocation']
|
||||
const useHead: typeof import('@unhead/vue')['useHead']
|
||||
const useHeadSafe: typeof import('@unhead/vue')['useHeadSafe']
|
||||
const useId: typeof import('vue')['useId']
|
||||
const useIdle: typeof import('@vueuse/core')['useIdle']
|
||||
const useImage: typeof import('@vueuse/core')['useImage']
|
||||
const useInfiniteScroll: typeof import('@vueuse/core')['useInfiniteScroll']
|
||||
const useIntersectionObserver: typeof import('@vueuse/core')['useIntersectionObserver']
|
||||
const useInterval: typeof import('@vueuse/core')['useInterval']
|
||||
const useIntervalFn: typeof import('@vueuse/core')['useIntervalFn']
|
||||
const useKeyModifier: typeof import('@vueuse/core')['useKeyModifier']
|
||||
const useLastChanged: typeof import('@vueuse/core')['useLastChanged']
|
||||
const useLink: typeof import('vue-router')['useLink']
|
||||
const useLocalStorage: typeof import('@vueuse/core')['useLocalStorage']
|
||||
const useMagicKeys: typeof import('@vueuse/core')['useMagicKeys']
|
||||
const useManualRefHistory: typeof import('@vueuse/core')['useManualRefHistory']
|
||||
const useMediaControls: typeof import('@vueuse/core')['useMediaControls']
|
||||
const useMediaQuery: typeof import('@vueuse/core')['useMediaQuery']
|
||||
const useMemoize: typeof import('@vueuse/core')['useMemoize']
|
||||
const useMemory: typeof import('@vueuse/core')['useMemory']
|
||||
const useModel: typeof import('vue')['useModel']
|
||||
const useMounted: typeof import('@vueuse/core')['useMounted']
|
||||
const useMouse: typeof import('@vueuse/core')['useMouse']
|
||||
const useMouseInElement: typeof import('@vueuse/core')['useMouseInElement']
|
||||
const useMousePressed: typeof import('@vueuse/core')['useMousePressed']
|
||||
const useMutationObserver: typeof import('@vueuse/core')['useMutationObserver']
|
||||
const useNavigatorLanguage: typeof import('@vueuse/core')['useNavigatorLanguage']
|
||||
const useNetwork: typeof import('@vueuse/core')['useNetwork']
|
||||
const useNow: typeof import('@vueuse/core')['useNow']
|
||||
const useObjectUrl: typeof import('@vueuse/core')['useObjectUrl']
|
||||
const useOffsetPagination: typeof import('@vueuse/core')['useOffsetPagination']
|
||||
const useOnline: typeof import('@vueuse/core')['useOnline']
|
||||
const usePBDataFetch: typeof import('../composables/usePBDataFetch')['usePBDataFetch']
|
||||
const usePageLeave: typeof import('@vueuse/core')['usePageLeave']
|
||||
const useParallax: typeof import('@vueuse/core')['useParallax']
|
||||
const useParentElement: typeof import('@vueuse/core')['useParentElement']
|
||||
const usePerformanceObserver: typeof import('@vueuse/core')['usePerformanceObserver']
|
||||
const usePermission: typeof import('@vueuse/core')['usePermission']
|
||||
const usePocketBase: typeof import('../composables/usePocketBase')['default']
|
||||
const usePointer: typeof import('@vueuse/core')['usePointer']
|
||||
const usePointerLock: typeof import('@vueuse/core')['usePointerLock']
|
||||
const usePointerSwipe: typeof import('@vueuse/core')['usePointerSwipe']
|
||||
const usePreferredColorScheme: typeof import('@vueuse/core')['usePreferredColorScheme']
|
||||
const usePreferredContrast: typeof import('@vueuse/core')['usePreferredContrast']
|
||||
const usePreferredDark: typeof import('@vueuse/core')['usePreferredDark']
|
||||
const usePreferredLanguages: typeof import('@vueuse/core')['usePreferredLanguages']
|
||||
const usePreferredReducedMotion: typeof import('@vueuse/core')['usePreferredReducedMotion']
|
||||
const usePrevious: typeof import('@vueuse/core')['usePrevious']
|
||||
const useRafFn: typeof import('@vueuse/core')['useRafFn']
|
||||
const useRefHistory: typeof import('@vueuse/core')['useRefHistory']
|
||||
const useResizeObserver: typeof import('@vueuse/core')['useResizeObserver']
|
||||
const useRoute: typeof import('vue-router')['useRoute']
|
||||
const useRouter: typeof import('vue-router')['useRouter']
|
||||
const useScreenOrientation: typeof import('@vueuse/core')['useScreenOrientation']
|
||||
const useScreenSafeArea: typeof import('@vueuse/core')['useScreenSafeArea']
|
||||
const useScriptTag: typeof import('@vueuse/core')['useScriptTag']
|
||||
const useScroll: typeof import('@vueuse/core')['useScroll']
|
||||
const useScrollLock: typeof import('@vueuse/core')['useScrollLock']
|
||||
const useSeoMeta: typeof import('@unhead/vue')['useSeoMeta']
|
||||
const useServerHead: typeof import('@unhead/vue')['useServerHead']
|
||||
const useServerHeadSafe: typeof import('@unhead/vue')['useServerHeadSafe']
|
||||
const useServerSeoMeta: typeof import('@unhead/vue')['useServerSeoMeta']
|
||||
const useSessionStorage: typeof import('@vueuse/core')['useSessionStorage']
|
||||
const useShare: typeof import('@vueuse/core')['useShare']
|
||||
const useSlots: typeof import('vue')['useSlots']
|
||||
const useSorted: typeof import('@vueuse/core')['useSorted']
|
||||
const useSpeechRecognition: typeof import('@vueuse/core')['useSpeechRecognition']
|
||||
const useSpeechSynthesis: typeof import('@vueuse/core')['useSpeechSynthesis']
|
||||
const useStepper: typeof import('@vueuse/core')['useStepper']
|
||||
const useStorage: typeof import('@vueuse/core')['useStorage']
|
||||
const useStorageAsync: typeof import('@vueuse/core')['useStorageAsync']
|
||||
const useStyleTag: typeof import('@vueuse/core')['useStyleTag']
|
||||
const useSupported: typeof import('@vueuse/core')['useSupported']
|
||||
const useSwipe: typeof import('@vueuse/core')['useSwipe']
|
||||
const useTemplateRef: typeof import('vue')['useTemplateRef']
|
||||
const useTemplateRefsList: typeof import('@vueuse/core')['useTemplateRefsList']
|
||||
const useTextDirection: typeof import('@vueuse/core')['useTextDirection']
|
||||
const useTextSelection: typeof import('@vueuse/core')['useTextSelection']
|
||||
const useTextareaAutosize: typeof import('@vueuse/core')['useTextareaAutosize']
|
||||
const useThemeStore: typeof import('../stores/themeStore')['useThemeStore']
|
||||
const useThrottle: typeof import('@vueuse/core')['useThrottle']
|
||||
const useThrottleFn: typeof import('@vueuse/core')['useThrottleFn']
|
||||
const useThrottledRefHistory: typeof import('@vueuse/core')['useThrottledRefHistory']
|
||||
const useTimeAgo: typeof import('@vueuse/core')['useTimeAgo']
|
||||
const useTimeout: typeof import('@vueuse/core')['useTimeout']
|
||||
const useTimeoutFn: typeof import('@vueuse/core')['useTimeoutFn']
|
||||
const useTimeoutPoll: typeof import('@vueuse/core')['useTimeoutPoll']
|
||||
const useTimestamp: typeof import('@vueuse/core')['useTimestamp']
|
||||
const useTitle: typeof import('@vueuse/core')['useTitle']
|
||||
const useToNumber: typeof import('@vueuse/core')['useToNumber']
|
||||
const useToString: typeof import('@vueuse/core')['useToString']
|
||||
const useToast: typeof import('../components/ui/toast/use-toast')['useToast']
|
||||
const useToggle: typeof import('@vueuse/core')['useToggle']
|
||||
const useTransition: typeof import('@vueuse/core')['useTransition']
|
||||
const useUrlSearchParams: typeof import('@vueuse/core')['useUrlSearchParams']
|
||||
const useUserMedia: typeof import('@vueuse/core')['useUserMedia']
|
||||
const useVModel: typeof import('@vueuse/core')['useVModel']
|
||||
const useVModels: typeof import('@vueuse/core')['useVModels']
|
||||
const useVibrate: typeof import('@vueuse/core')['useVibrate']
|
||||
const useVirtualList: typeof import('@vueuse/core')['useVirtualList']
|
||||
const useWakeLock: typeof import('@vueuse/core')['useWakeLock']
|
||||
const useWebNotification: typeof import('@vueuse/core')['useWebNotification']
|
||||
const useWebSocket: typeof import('@vueuse/core')['useWebSocket']
|
||||
const useWebWorker: typeof import('@vueuse/core')['useWebWorker']
|
||||
const useWebWorkerFn: typeof import('@vueuse/core')['useWebWorkerFn']
|
||||
const useWindowFocus: typeof import('@vueuse/core')['useWindowFocus']
|
||||
const useWindowScroll: typeof import('@vueuse/core')['useWindowScroll']
|
||||
const useWindowSize: typeof import('@vueuse/core')['useWindowSize']
|
||||
const vi: typeof import('vitest')['vi']
|
||||
const vitest: typeof import('vitest')['vitest']
|
||||
const watch: typeof import('vue')['watch']
|
||||
const watchArray: typeof import('@vueuse/core')['watchArray']
|
||||
const watchAtMost: typeof import('@vueuse/core')['watchAtMost']
|
||||
const watchDebounced: typeof import('@vueuse/core')['watchDebounced']
|
||||
const watchDeep: typeof import('@vueuse/core')['watchDeep']
|
||||
const watchEffect: typeof import('vue')['watchEffect']
|
||||
const watchIgnorable: typeof import('@vueuse/core')['watchIgnorable']
|
||||
const watchImmediate: typeof import('@vueuse/core')['watchImmediate']
|
||||
const watchOnce: typeof import('@vueuse/core')['watchOnce']
|
||||
const watchPausable: typeof import('@vueuse/core')['watchPausable']
|
||||
const watchPostEffect: typeof import('vue')['watchPostEffect']
|
||||
const watchSyncEffect: typeof import('vue')['watchSyncEffect']
|
||||
const watchThrottled: typeof import('@vueuse/core')['watchThrottled']
|
||||
const watchTriggerable: typeof import('@vueuse/core')['watchTriggerable']
|
||||
const watchWithFilter: typeof import('@vueuse/core')['watchWithFilter']
|
||||
const whenever: typeof import('@vueuse/core')['whenever']
|
||||
}
|
||||
// for type re-export
|
||||
declare global {
|
||||
// @ts-ignore
|
||||
export type { Component, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue'
|
||||
import('vue')
|
||||
// @ts-ignore
|
||||
export type { Collections, CulturesTypeOptions, CulturesNamesbaseOptions, ProvincesFormOptions, ReligionsTypeOptions, StatesFormOptions, UsersRoleOptions } from '../types/pb-types'
|
||||
import('../types/pb-types')
|
||||
}
|
||||
|
||||
// for vue template auto import
|
||||
import { UnwrapRef } from 'vue'
|
||||
declare module 'vue' {
|
||||
interface GlobalComponents {}
|
||||
interface ComponentCustomProperties {
|
||||
readonly AdminService: UnwrapRef<typeof import('pocketbase')['AdminService']>
|
||||
readonly AsyncAuthStore: UnwrapRef<typeof import('pocketbase')['AsyncAuthStore']>
|
||||
readonly BaseAuthStore: UnwrapRef<typeof import('pocketbase')['BaseAuthStore']>
|
||||
readonly Button: UnwrapRef<typeof import('../components/ui/button/index')['Button']>
|
||||
readonly Card: UnwrapRef<typeof import('../components/ui/card/index')['Card']>
|
||||
readonly CardContent: UnwrapRef<typeof import('../components/ui/card/index')['CardContent']>
|
||||
readonly CardDescription: UnwrapRef<typeof import('../components/ui/card/index')['CardDescription']>
|
||||
readonly CardFooter: UnwrapRef<typeof import('../components/ui/card/index')['CardFooter']>
|
||||
readonly CardHeader: UnwrapRef<typeof import('../components/ui/card/index')['CardHeader']>
|
||||
readonly CardTitle: UnwrapRef<typeof import('../components/ui/card/index')['CardTitle']>
|
||||
readonly ChartCrosshair: UnwrapRef<typeof import('../components/ui/chart/index')['ChartCrosshair']>
|
||||
readonly ChartLegend: UnwrapRef<typeof import('../components/ui/chart/index')['ChartLegend']>
|
||||
readonly ChartSingleTooltip: UnwrapRef<typeof import('../components/ui/chart/index')['ChartSingleTooltip']>
|
||||
readonly ChartTooltip: UnwrapRef<typeof import('../components/ui/chart/index')['ChartTooltip']>
|
||||
readonly ClientResponseError: UnwrapRef<typeof import('pocketbase')['ClientResponseError']>
|
||||
readonly CollectionService: UnwrapRef<typeof import('pocketbase')['CollectionService']>
|
||||
readonly Collections: UnwrapRef<typeof import('../types/pb-types')['Collections']>
|
||||
readonly CrudService: UnwrapRef<typeof import('pocketbase')['CrudService']>
|
||||
readonly CulturesNamesbaseOptions: UnwrapRef<typeof import('../types/pb-types')['CulturesNamesbaseOptions']>
|
||||
readonly CulturesTypeOptions: UnwrapRef<typeof import('../types/pb-types')['CulturesTypeOptions']>
|
||||
readonly Dialog: UnwrapRef<typeof import('../components/ui/dialog/index')['Dialog']>
|
||||
readonly DialogClose: UnwrapRef<typeof import('../components/ui/dialog/index')['DialogClose']>
|
||||
readonly DialogContent: UnwrapRef<typeof import('../components/ui/dialog/index')['DialogContent']>
|
||||
readonly DialogDescription: UnwrapRef<typeof import('../components/ui/dialog/index')['DialogDescription']>
|
||||
readonly DialogFooter: UnwrapRef<typeof import('../components/ui/dialog/index')['DialogFooter']>
|
||||
readonly DialogHeader: UnwrapRef<typeof import('../components/ui/dialog/index')['DialogHeader']>
|
||||
readonly DialogScrollContent: UnwrapRef<typeof import('../components/ui/dialog/index')['DialogScrollContent']>
|
||||
readonly DialogTitle: UnwrapRef<typeof import('../components/ui/dialog/index')['DialogTitle']>
|
||||
readonly DialogTrigger: UnwrapRef<typeof import('../components/ui/dialog/index')['DialogTrigger']>
|
||||
readonly DropdownMenu: UnwrapRef<typeof import('../components/ui/dropdown-menu/index')['DropdownMenu']>
|
||||
readonly DropdownMenuCheckboxItem: UnwrapRef<typeof import('../components/ui/dropdown-menu/index')['DropdownMenuCheckboxItem']>
|
||||
readonly DropdownMenuContent: UnwrapRef<typeof import('../components/ui/dropdown-menu/index')['DropdownMenuContent']>
|
||||
readonly DropdownMenuGroup: UnwrapRef<typeof import('../components/ui/dropdown-menu/index')['DropdownMenuGroup']>
|
||||
readonly DropdownMenuItem: UnwrapRef<typeof import('../components/ui/dropdown-menu/index')['DropdownMenuItem']>
|
||||
readonly DropdownMenuLabel: UnwrapRef<typeof import('../components/ui/dropdown-menu/index')['DropdownMenuLabel']>
|
||||
readonly DropdownMenuPortal: UnwrapRef<typeof import('../components/ui/dropdown-menu/index')['DropdownMenuPortal']>
|
||||
readonly DropdownMenuRadioGroup: UnwrapRef<typeof import('../components/ui/dropdown-menu/index')['DropdownMenuRadioGroup']>
|
||||
readonly DropdownMenuRadioItem: UnwrapRef<typeof import('../components/ui/dropdown-menu/index')['DropdownMenuRadioItem']>
|
||||
readonly DropdownMenuSeparator: UnwrapRef<typeof import('../components/ui/dropdown-menu/index')['DropdownMenuSeparator']>
|
||||
readonly DropdownMenuShortcut: UnwrapRef<typeof import('../components/ui/dropdown-menu/index')['DropdownMenuShortcut']>
|
||||
readonly DropdownMenuSub: UnwrapRef<typeof import('../components/ui/dropdown-menu/index')['DropdownMenuSub']>
|
||||
readonly DropdownMenuSubContent: UnwrapRef<typeof import('../components/ui/dropdown-menu/index')['DropdownMenuSubContent']>
|
||||
readonly DropdownMenuSubTrigger: UnwrapRef<typeof import('../components/ui/dropdown-menu/index')['DropdownMenuSubTrigger']>
|
||||
readonly DropdownMenuTrigger: UnwrapRef<typeof import('../components/ui/dropdown-menu/index')['DropdownMenuTrigger']>
|
||||
readonly EffectScope: UnwrapRef<typeof import('vue')['EffectScope']>
|
||||
readonly FORM_ITEM_INJECTION_KEY: UnwrapRef<typeof import('../components/ui/form/injectionKeys')['FORM_ITEM_INJECTION_KEY']>
|
||||
readonly Form: UnwrapRef<typeof import('../components/ui/form/index')['Form']>
|
||||
readonly FormControl: UnwrapRef<typeof import('../components/ui/form/index')['FormControl']>
|
||||
readonly FormDescription: UnwrapRef<typeof import('../components/ui/form/index')['FormDescription']>
|
||||
readonly FormField: UnwrapRef<typeof import('../components/ui/form/index')['FormField']>
|
||||
readonly FormItem: UnwrapRef<typeof import('../components/ui/form/index')['FormItem']>
|
||||
readonly FormLabel: UnwrapRef<typeof import('../components/ui/form/index')['FormLabel']>
|
||||
readonly FormMessage: UnwrapRef<typeof import('../components/ui/form/index')['FormMessage']>
|
||||
readonly HealthService: UnwrapRef<typeof import('pocketbase')['HealthService']>
|
||||
readonly Input: UnwrapRef<typeof import('../components/ui/input/index')['Input']>
|
||||
readonly Label: UnwrapRef<typeof import('../components/ui/label/index')['Label']>
|
||||
readonly LineChart: UnwrapRef<typeof import('../components/ui/chart-line/index')['LineChart']>
|
||||
readonly LocalAuthStore: UnwrapRef<typeof import('pocketbase')['LocalAuthStore']>
|
||||
readonly LogService: UnwrapRef<typeof import('pocketbase')['LogService']>
|
||||
readonly NavigationMenu: UnwrapRef<typeof import('../components/ui/navigation-menu/index')['NavigationMenu']>
|
||||
readonly NavigationMenuContent: UnwrapRef<typeof import('../components/ui/navigation-menu/index')['NavigationMenuContent']>
|
||||
readonly NavigationMenuItem: UnwrapRef<typeof import('../components/ui/navigation-menu/index')['NavigationMenuItem']>
|
||||
readonly NavigationMenuLink: UnwrapRef<typeof import('../components/ui/navigation-menu/index')['NavigationMenuLink']>
|
||||
readonly NavigationMenuList: UnwrapRef<typeof import('../components/ui/navigation-menu/index')['NavigationMenuList']>
|
||||
readonly NavigationMenuTrigger: UnwrapRef<typeof import('../components/ui/navigation-menu/index')['NavigationMenuTrigger']>
|
||||
readonly NumberField: UnwrapRef<typeof import('../components/ui/number-field/index')['NumberField']>
|
||||
readonly NumberFieldContent: UnwrapRef<typeof import('../components/ui/number-field/index')['NumberFieldContent']>
|
||||
readonly NumberFieldDecrement: UnwrapRef<typeof import('../components/ui/number-field/index')['NumberFieldDecrement']>
|
||||
readonly NumberFieldIncrement: UnwrapRef<typeof import('../components/ui/number-field/index')['NumberFieldIncrement']>
|
||||
readonly NumberFieldInput: UnwrapRef<typeof import('../components/ui/number-field/index')['NumberFieldInput']>
|
||||
readonly Popover: UnwrapRef<typeof import('../components/ui/popover/index')['Popover']>
|
||||
readonly PopoverContent: UnwrapRef<typeof import('../components/ui/popover/index')['PopoverContent']>
|
||||
readonly PopoverTrigger: UnwrapRef<typeof import('../components/ui/popover/index')['PopoverTrigger']>
|
||||
readonly Progress: UnwrapRef<typeof import('../components/ui/progress/index')['Progress']>
|
||||
readonly ProvincesFormOptions: UnwrapRef<typeof import('../types/pb-types')['ProvincesFormOptions']>
|
||||
readonly RadioGroup: UnwrapRef<typeof import('../components/ui/radio-group/index')['RadioGroup']>
|
||||
readonly RadioGroupItem: UnwrapRef<typeof import('../components/ui/radio-group/index')['RadioGroupItem']>
|
||||
readonly RealtimeService: UnwrapRef<typeof import('pocketbase')['RealtimeService']>
|
||||
readonly RecordService: UnwrapRef<typeof import('pocketbase')['RecordService']>
|
||||
readonly ReligionsTypeOptions: UnwrapRef<typeof import('../types/pb-types')['ReligionsTypeOptions']>
|
||||
readonly ScrollArea: UnwrapRef<typeof import('../components/ui/scroll-area/index')['ScrollArea']>
|
||||
readonly ScrollBar: UnwrapRef<typeof import('../components/ui/scroll-area/index')['ScrollBar']>
|
||||
readonly Separator: UnwrapRef<typeof import('../components/ui/separator/index')['Separator']>
|
||||
readonly StatesFormOptions: UnwrapRef<typeof import('../types/pb-types')['StatesFormOptions']>
|
||||
readonly Switch: UnwrapRef<typeof import('../components/ui/switch/index')['Switch']>
|
||||
readonly Tabs: UnwrapRef<typeof import('../components/ui/tabs/index')['Tabs']>
|
||||
readonly TabsContent: UnwrapRef<typeof import('../components/ui/tabs/index')['TabsContent']>
|
||||
readonly TabsList: UnwrapRef<typeof import('../components/ui/tabs/index')['TabsList']>
|
||||
readonly TabsTrigger: UnwrapRef<typeof import('../components/ui/tabs/index')['TabsTrigger']>
|
||||
readonly Toast: UnwrapRef<typeof import('../components/ui/toast/index')['Toast']>
|
||||
readonly ToastAction: UnwrapRef<typeof import('../components/ui/toast/index')['ToastAction']>
|
||||
readonly ToastClose: UnwrapRef<typeof import('../components/ui/toast/index')['ToastClose']>
|
||||
readonly ToastDescription: UnwrapRef<typeof import('../components/ui/toast/index')['ToastDescription']>
|
||||
readonly ToastProvider: UnwrapRef<typeof import('../components/ui/toast/index')['ToastProvider']>
|
||||
readonly ToastTitle: UnwrapRef<typeof import('../components/ui/toast/index')['ToastTitle']>
|
||||
readonly ToastViewport: UnwrapRef<typeof import('../components/ui/toast/index')['ToastViewport']>
|
||||
readonly Toaster: UnwrapRef<typeof import('../components/ui/toast/index')['Toaster']>
|
||||
readonly UsersRoleOptions: UnwrapRef<typeof import('../types/pb-types')['UsersRoleOptions']>
|
||||
readonly acceptHMRUpdate: UnwrapRef<typeof import('pinia')['acceptHMRUpdate']>
|
||||
readonly afterAll: UnwrapRef<typeof import('vitest')['afterAll']>
|
||||
readonly afterEach: UnwrapRef<typeof import('vitest')['afterEach']>
|
||||
readonly assert: UnwrapRef<typeof import('vitest')['assert']>
|
||||
readonly asyncComputed: UnwrapRef<typeof import('@vueuse/core')['asyncComputed']>
|
||||
readonly autoResetRef: UnwrapRef<typeof import('@vueuse/core')['autoResetRef']>
|
||||
readonly beforeAll: UnwrapRef<typeof import('vitest')['beforeAll']>
|
||||
readonly beforeEach: UnwrapRef<typeof import('vitest')['beforeEach']>
|
||||
readonly buttonVariants: UnwrapRef<typeof import('../components/ui/button/index')['buttonVariants']>
|
||||
readonly cacheFullListResponsesStore: UnwrapRef<typeof import('../stores/cacheFullListResponsesStore')['cacheFullListResponsesStore']>
|
||||
readonly chai: UnwrapRef<typeof import('vitest')['chai']>
|
||||
readonly chartsCategories: UnwrapRef<typeof import('../data/chartsConfig')['chartsCategories']>
|
||||
readonly computed: UnwrapRef<typeof import('vue')['computed']>
|
||||
readonly computedAsync: UnwrapRef<typeof import('@vueuse/core')['computedAsync']>
|
||||
readonly computedEager: UnwrapRef<typeof import('@vueuse/core')['computedEager']>
|
||||
readonly computedInject: UnwrapRef<typeof import('@vueuse/core')['computedInject']>
|
||||
readonly computedWithControl: UnwrapRef<typeof import('@vueuse/core')['computedWithControl']>
|
||||
readonly controlledComputed: UnwrapRef<typeof import('@vueuse/core')['controlledComputed']>
|
||||
readonly controlledRef: UnwrapRef<typeof import('@vueuse/core')['controlledRef']>
|
||||
readonly cookieParse: UnwrapRef<typeof import('pocketbase')['cookieParse']>
|
||||
readonly cookieSerialize: UnwrapRef<typeof import('pocketbase')['cookieSerialize']>
|
||||
readonly createApp: UnwrapRef<typeof import('vue')['createApp']>
|
||||
readonly createEventHook: UnwrapRef<typeof import('@vueuse/core')['createEventHook']>
|
||||
readonly createGlobalState: UnwrapRef<typeof import('@vueuse/core')['createGlobalState']>
|
||||
readonly createInjectionState: UnwrapRef<typeof import('@vueuse/core')['createInjectionState']>
|
||||
readonly createPinia: UnwrapRef<typeof import('pinia')['createPinia']>
|
||||
readonly createReactiveFn: UnwrapRef<typeof import('@vueuse/core')['createReactiveFn']>
|
||||
readonly createReusableTemplate: UnwrapRef<typeof import('@vueuse/core')['createReusableTemplate']>
|
||||
readonly createSharedComposable: UnwrapRef<typeof import('@vueuse/core')['createSharedComposable']>
|
||||
readonly createTemplatePromise: UnwrapRef<typeof import('@vueuse/core')['createTemplatePromise']>
|
||||
readonly createUnrefFn: UnwrapRef<typeof import('@vueuse/core')['createUnrefFn']>
|
||||
readonly customRef: UnwrapRef<typeof import('vue')['customRef']>
|
||||
readonly dFCh: UnwrapRef<typeof import('../data/dataForCharts')['dFCh']>
|
||||
readonly debouncedRef: UnwrapRef<typeof import('@vueuse/core')['debouncedRef']>
|
||||
readonly debouncedWatch: UnwrapRef<typeof import('@vueuse/core')['debouncedWatch']>
|
||||
readonly default: UnwrapRef<typeof import('pocketbase')['default']>
|
||||
readonly defaultColors: UnwrapRef<typeof import('../components/ui/chart/index')['defaultColors']>
|
||||
readonly defineAsyncComponent: UnwrapRef<typeof import('vue')['defineAsyncComponent']>
|
||||
readonly defineComponent: UnwrapRef<typeof import('vue')['defineComponent']>
|
||||
readonly defineStore: UnwrapRef<typeof import('pinia')['defineStore']>
|
||||
readonly describe: UnwrapRef<typeof import('vitest')['describe']>
|
||||
readonly eagerComputed: UnwrapRef<typeof import('@vueuse/core')['eagerComputed']>
|
||||
readonly effectScope: UnwrapRef<typeof import('vue')['effectScope']>
|
||||
readonly expect: UnwrapRef<typeof import('vitest')['expect']>
|
||||
readonly extendRef: UnwrapRef<typeof import('@vueuse/core')['extendRef']>
|
||||
readonly getActiveHead: UnwrapRef<typeof import('@unhead/vue')['getActiveHead']>
|
||||
readonly getActivePinia: UnwrapRef<typeof import('pinia')['getActivePinia']>
|
||||
readonly getCurrentInstance: UnwrapRef<typeof import('vue')['getCurrentInstance']>
|
||||
readonly getCurrentScope: UnwrapRef<typeof import('vue')['getCurrentScope']>
|
||||
readonly getTokenPayload: UnwrapRef<typeof import('pocketbase')['getTokenPayload']>
|
||||
readonly h: UnwrapRef<typeof import('vue')['h']>
|
||||
readonly ignorableWatch: UnwrapRef<typeof import('@vueuse/core')['ignorableWatch']>
|
||||
readonly inject: UnwrapRef<typeof import('vue')['inject']>
|
||||
readonly injectHead: UnwrapRef<typeof import('@unhead/vue')['injectHead']>
|
||||
readonly injectLocal: UnwrapRef<typeof import('@vueuse/core')['injectLocal']>
|
||||
readonly isDefined: UnwrapRef<typeof import('@vueuse/core')['isDefined']>
|
||||
readonly isProxy: UnwrapRef<typeof import('vue')['isProxy']>
|
||||
readonly isReactive: UnwrapRef<typeof import('vue')['isReactive']>
|
||||
readonly isReadonly: UnwrapRef<typeof import('vue')['isReadonly']>
|
||||
readonly isRef: UnwrapRef<typeof import('vue')['isRef']>
|
||||
readonly isTokenExpired: UnwrapRef<typeof import('pocketbase')['isTokenExpired']>
|
||||
readonly it: UnwrapRef<typeof import('vitest')['it']>
|
||||
readonly listenCurrentUserStore: UnwrapRef<typeof import('../stores/listenCurrentUseStore')['listenCurrentUserStore']>
|
||||
readonly makeDestructurable: UnwrapRef<typeof import('@vueuse/core')['makeDestructurable']>
|
||||
readonly mapActions: UnwrapRef<typeof import('pinia')['mapActions']>
|
||||
readonly mapGetters: UnwrapRef<typeof import('pinia')['mapGetters']>
|
||||
readonly mapState: UnwrapRef<typeof import('pinia')['mapState']>
|
||||
readonly mapStores: UnwrapRef<typeof import('pinia')['mapStores']>
|
||||
readonly mapWritableState: UnwrapRef<typeof import('pinia')['mapWritableState']>
|
||||
readonly markRaw: UnwrapRef<typeof import('vue')['markRaw']>
|
||||
readonly navigationMenuTriggerStyle: UnwrapRef<typeof import('../components/ui/navigation-menu/index')['navigationMenuTriggerStyle']>
|
||||
readonly nextTick: UnwrapRef<typeof import('vue')['nextTick']>
|
||||
readonly normalizeUnknownQueryParams: UnwrapRef<typeof import('pocketbase')['normalizeUnknownQueryParams']>
|
||||
readonly onActivated: UnwrapRef<typeof import('vue')['onActivated']>
|
||||
readonly onBeforeMount: UnwrapRef<typeof import('vue')['onBeforeMount']>
|
||||
readonly onBeforeRouteLeave: UnwrapRef<typeof import('vue-router')['onBeforeRouteLeave']>
|
||||
readonly onBeforeRouteUpdate: UnwrapRef<typeof import('vue-router')['onBeforeRouteUpdate']>
|
||||
readonly onBeforeUnmount: UnwrapRef<typeof import('vue')['onBeforeUnmount']>
|
||||
readonly onBeforeUpdate: UnwrapRef<typeof import('vue')['onBeforeUpdate']>
|
||||
readonly onClickOutside: UnwrapRef<typeof import('@vueuse/core')['onClickOutside']>
|
||||
readonly onDeactivated: UnwrapRef<typeof import('vue')['onDeactivated']>
|
||||
readonly onErrorCaptured: UnwrapRef<typeof import('vue')['onErrorCaptured']>
|
||||
readonly onKeyStroke: UnwrapRef<typeof import('@vueuse/core')['onKeyStroke']>
|
||||
readonly onLongPress: UnwrapRef<typeof import('@vueuse/core')['onLongPress']>
|
||||
readonly onMounted: UnwrapRef<typeof import('vue')['onMounted']>
|
||||
readonly onRenderTracked: UnwrapRef<typeof import('vue')['onRenderTracked']>
|
||||
readonly onRenderTriggered: UnwrapRef<typeof import('vue')['onRenderTriggered']>
|
||||
readonly onScopeDispose: UnwrapRef<typeof import('vue')['onScopeDispose']>
|
||||
readonly onServerPrefetch: UnwrapRef<typeof import('vue')['onServerPrefetch']>
|
||||
readonly onStartTyping: UnwrapRef<typeof import('@vueuse/core')['onStartTyping']>
|
||||
readonly onUnmounted: UnwrapRef<typeof import('vue')['onUnmounted']>
|
||||
readonly onUpdated: UnwrapRef<typeof import('vue')['onUpdated']>
|
||||
readonly onWatcherCleanup: UnwrapRef<typeof import('vue')['onWatcherCleanup']>
|
||||
readonly pausableWatch: UnwrapRef<typeof import('@vueuse/core')['pausableWatch']>
|
||||
readonly provide: UnwrapRef<typeof import('vue')['provide']>
|
||||
readonly provideLocal: UnwrapRef<typeof import('@vueuse/core')['provideLocal']>
|
||||
readonly reactify: UnwrapRef<typeof import('@vueuse/core')['reactify']>
|
||||
readonly reactifyObject: UnwrapRef<typeof import('@vueuse/core')['reactifyObject']>
|
||||
readonly reactive: UnwrapRef<typeof import('vue')['reactive']>
|
||||
readonly reactiveComputed: UnwrapRef<typeof import('@vueuse/core')['reactiveComputed']>
|
||||
readonly reactiveOmit: UnwrapRef<typeof import('@vueuse/core')['reactiveOmit']>
|
||||
readonly reactivePick: UnwrapRef<typeof import('@vueuse/core')['reactivePick']>
|
||||
readonly readonly: UnwrapRef<typeof import('vue')['readonly']>
|
||||
readonly ref: UnwrapRef<typeof import('vue')['ref']>
|
||||
readonly refAutoReset: UnwrapRef<typeof import('@vueuse/core')['refAutoReset']>
|
||||
readonly refDebounced: UnwrapRef<typeof import('@vueuse/core')['refDebounced']>
|
||||
readonly refDefault: UnwrapRef<typeof import('@vueuse/core')['refDefault']>
|
||||
readonly refThrottled: UnwrapRef<typeof import('@vueuse/core')['refThrottled']>
|
||||
readonly refWithControl: UnwrapRef<typeof import('@vueuse/core')['refWithControl']>
|
||||
readonly resolveComponent: UnwrapRef<typeof import('vue')['resolveComponent']>
|
||||
readonly resolveRef: UnwrapRef<typeof import('@vueuse/core')['resolveRef']>
|
||||
readonly resolveUnref: UnwrapRef<typeof import('@vueuse/core')['resolveUnref']>
|
||||
readonly setActivePinia: UnwrapRef<typeof import('pinia')['setActivePinia']>
|
||||
readonly setMapStoreSuffix: UnwrapRef<typeof import('pinia')['setMapStoreSuffix']>
|
||||
readonly shallowReactive: UnwrapRef<typeof import('vue')['shallowReactive']>
|
||||
readonly shallowReadonly: UnwrapRef<typeof import('vue')['shallowReadonly']>
|
||||
readonly shallowRef: UnwrapRef<typeof import('vue')['shallowRef']>
|
||||
readonly storeToRefs: UnwrapRef<typeof import('pinia')['storeToRefs']>
|
||||
readonly suite: UnwrapRef<typeof import('vitest')['suite']>
|
||||
readonly syncRef: UnwrapRef<typeof import('@vueuse/core')['syncRef']>
|
||||
readonly syncRefs: UnwrapRef<typeof import('@vueuse/core')['syncRefs']>
|
||||
readonly templateRef: UnwrapRef<typeof import('@vueuse/core')['templateRef']>
|
||||
readonly test: UnwrapRef<typeof import('vitest')['test']>
|
||||
readonly throttledRef: UnwrapRef<typeof import('@vueuse/core')['throttledRef']>
|
||||
readonly throttledWatch: UnwrapRef<typeof import('@vueuse/core')['throttledWatch']>
|
||||
readonly toRaw: UnwrapRef<typeof import('vue')['toRaw']>
|
||||
readonly toReactive: UnwrapRef<typeof import('@vueuse/core')['toReactive']>
|
||||
readonly toRef: UnwrapRef<typeof import('vue')['toRef']>
|
||||
readonly toRefs: UnwrapRef<typeof import('vue')['toRefs']>
|
||||
readonly toValue: UnwrapRef<typeof import('vue')['toValue']>
|
||||
readonly toast: UnwrapRef<typeof import('../components/ui/toast/use-toast')['toast']>
|
||||
readonly toastVariants: UnwrapRef<typeof import('../components/ui/toast/index')['toastVariants']>
|
||||
readonly triggerRef: UnwrapRef<typeof import('vue')['triggerRef']>
|
||||
readonly tryOnBeforeMount: UnwrapRef<typeof import('@vueuse/core')['tryOnBeforeMount']>
|
||||
readonly tryOnBeforeUnmount: UnwrapRef<typeof import('@vueuse/core')['tryOnBeforeUnmount']>
|
||||
readonly tryOnMounted: UnwrapRef<typeof import('@vueuse/core')['tryOnMounted']>
|
||||
readonly tryOnScopeDispose: UnwrapRef<typeof import('@vueuse/core')['tryOnScopeDispose']>
|
||||
readonly tryOnUnmounted: UnwrapRef<typeof import('@vueuse/core')['tryOnUnmounted']>
|
||||
readonly unref: UnwrapRef<typeof import('vue')['unref']>
|
||||
readonly unrefElement: UnwrapRef<typeof import('@vueuse/core')['unrefElement']>
|
||||
readonly until: UnwrapRef<typeof import('@vueuse/core')['until']>
|
||||
readonly useActiveElement: UnwrapRef<typeof import('@vueuse/core')['useActiveElement']>
|
||||
readonly useAnimate: UnwrapRef<typeof import('@vueuse/core')['useAnimate']>
|
||||
readonly useArrayDifference: UnwrapRef<typeof import('@vueuse/core')['useArrayDifference']>
|
||||
readonly useArrayEvery: UnwrapRef<typeof import('@vueuse/core')['useArrayEvery']>
|
||||
readonly useArrayFilter: UnwrapRef<typeof import('@vueuse/core')['useArrayFilter']>
|
||||
readonly useArrayFind: UnwrapRef<typeof import('@vueuse/core')['useArrayFind']>
|
||||
readonly useArrayFindIndex: UnwrapRef<typeof import('@vueuse/core')['useArrayFindIndex']>
|
||||
readonly useArrayFindLast: UnwrapRef<typeof import('@vueuse/core')['useArrayFindLast']>
|
||||
readonly useArrayIncludes: UnwrapRef<typeof import('@vueuse/core')['useArrayIncludes']>
|
||||
readonly useArrayJoin: UnwrapRef<typeof import('@vueuse/core')['useArrayJoin']>
|
||||
readonly useArrayMap: UnwrapRef<typeof import('@vueuse/core')['useArrayMap']>
|
||||
readonly useArrayReduce: UnwrapRef<typeof import('@vueuse/core')['useArrayReduce']>
|
||||
readonly useArraySome: UnwrapRef<typeof import('@vueuse/core')['useArraySome']>
|
||||
readonly useArrayUnique: UnwrapRef<typeof import('@vueuse/core')['useArrayUnique']>
|
||||
readonly useAsyncQueue: UnwrapRef<typeof import('@vueuse/core')['useAsyncQueue']>
|
||||
readonly useAsyncState: UnwrapRef<typeof import('@vueuse/core')['useAsyncState']>
|
||||
readonly useAttrs: UnwrapRef<typeof import('vue')['useAttrs']>
|
||||
readonly useBase64: UnwrapRef<typeof import('@vueuse/core')['useBase64']>
|
||||
readonly useBattery: UnwrapRef<typeof import('@vueuse/core')['useBattery']>
|
||||
readonly useBluetooth: UnwrapRef<typeof import('@vueuse/core')['useBluetooth']>
|
||||
readonly useBreakpoints: UnwrapRef<typeof import('@vueuse/core')['useBreakpoints']>
|
||||
readonly useBroadcastChannel: UnwrapRef<typeof import('@vueuse/core')['useBroadcastChannel']>
|
||||
readonly useBrowserLocation: UnwrapRef<typeof import('@vueuse/core')['useBrowserLocation']>
|
||||
readonly useCached: UnwrapRef<typeof import('@vueuse/core')['useCached']>
|
||||
readonly useChartData: UnwrapRef<typeof import('../composables/useChartData')['useChartData']>
|
||||
readonly useChartDataFetch: UnwrapRef<typeof import('../composables/useChartDataFetch')['useChartDataFetch']>
|
||||
readonly useClipboard: UnwrapRef<typeof import('@vueuse/core')['useClipboard']>
|
||||
readonly useClipboardItems: UnwrapRef<typeof import('@vueuse/core')['useClipboardItems']>
|
||||
readonly useCloned: UnwrapRef<typeof import('@vueuse/core')['useCloned']>
|
||||
readonly useColorMode: UnwrapRef<typeof import('@vueuse/core')['useColorMode']>
|
||||
readonly useConfirmDialog: UnwrapRef<typeof import('@vueuse/core')['useConfirmDialog']>
|
||||
readonly useCounter: UnwrapRef<typeof import('@vueuse/core')['useCounter']>
|
||||
readonly useCssModule: UnwrapRef<typeof import('vue')['useCssModule']>
|
||||
readonly useCssVar: UnwrapRef<typeof import('@vueuse/core')['useCssVar']>
|
||||
readonly useCssVars: UnwrapRef<typeof import('vue')['useCssVars']>
|
||||
readonly useCurrentElement: UnwrapRef<typeof import('@vueuse/core')['useCurrentElement']>
|
||||
readonly useCycleList: UnwrapRef<typeof import('@vueuse/core')['useCycleList']>
|
||||
readonly useDark: UnwrapRef<typeof import('@vueuse/core')['useDark']>
|
||||
readonly useDateFormat: UnwrapRef<typeof import('@vueuse/core')['useDateFormat']>
|
||||
readonly useDebounce: UnwrapRef<typeof import('@vueuse/core')['useDebounce']>
|
||||
readonly useDebounceFn: UnwrapRef<typeof import('@vueuse/core')['useDebounceFn']>
|
||||
readonly useDebouncedRefHistory: UnwrapRef<typeof import('@vueuse/core')['useDebouncedRefHistory']>
|
||||
readonly useDeviceMotion: UnwrapRef<typeof import('@vueuse/core')['useDeviceMotion']>
|
||||
readonly useDeviceOrientation: UnwrapRef<typeof import('@vueuse/core')['useDeviceOrientation']>
|
||||
readonly useDevicePixelRatio: UnwrapRef<typeof import('@vueuse/core')['useDevicePixelRatio']>
|
||||
readonly useDevicesList: UnwrapRef<typeof import('@vueuse/core')['useDevicesList']>
|
||||
readonly useDisplayMedia: UnwrapRef<typeof import('@vueuse/core')['useDisplayMedia']>
|
||||
readonly useDocumentVisibility: UnwrapRef<typeof import('@vueuse/core')['useDocumentVisibility']>
|
||||
readonly useDraggable: UnwrapRef<typeof import('@vueuse/core')['useDraggable']>
|
||||
readonly useDropZone: UnwrapRef<typeof import('@vueuse/core')['useDropZone']>
|
||||
readonly useElementBounding: UnwrapRef<typeof import('@vueuse/core')['useElementBounding']>
|
||||
readonly useElementByPoint: UnwrapRef<typeof import('@vueuse/core')['useElementByPoint']>
|
||||
readonly useElementHover: UnwrapRef<typeof import('@vueuse/core')['useElementHover']>
|
||||
readonly useElementSize: UnwrapRef<typeof import('@vueuse/core')['useElementSize']>
|
||||
readonly useElementVisibility: UnwrapRef<typeof import('@vueuse/core')['useElementVisibility']>
|
||||
readonly useEventBus: UnwrapRef<typeof import('@vueuse/core')['useEventBus']>
|
||||
readonly useEventListener: UnwrapRef<typeof import('@vueuse/core')['useEventListener']>
|
||||
readonly useEventSource: UnwrapRef<typeof import('@vueuse/core')['useEventSource']>
|
||||
readonly useEyeDropper: UnwrapRef<typeof import('@vueuse/core')['useEyeDropper']>
|
||||
readonly useFavicon: UnwrapRef<typeof import('@vueuse/core')['useFavicon']>
|
||||
readonly useFetch: UnwrapRef<typeof import('@vueuse/core')['useFetch']>
|
||||
readonly useFileDialog: UnwrapRef<typeof import('@vueuse/core')['useFileDialog']>
|
||||
readonly useFileSystemAccess: UnwrapRef<typeof import('@vueuse/core')['useFileSystemAccess']>
|
||||
readonly useFocus: UnwrapRef<typeof import('@vueuse/core')['useFocus']>
|
||||
readonly useFocusWithin: UnwrapRef<typeof import('@vueuse/core')['useFocusWithin']>
|
||||
readonly useFormField: UnwrapRef<typeof import('../components/ui/form/useFormField')['useFormField']>
|
||||
readonly useFps: UnwrapRef<typeof import('@vueuse/core')['useFps']>
|
||||
readonly useFullscreen: UnwrapRef<typeof import('@vueuse/core')['useFullscreen']>
|
||||
readonly useGamepad: UnwrapRef<typeof import('@vueuse/core')['useGamepad']>
|
||||
readonly useGeolocation: UnwrapRef<typeof import('@vueuse/core')['useGeolocation']>
|
||||
readonly useHead: UnwrapRef<typeof import('@unhead/vue')['useHead']>
|
||||
readonly useHeadSafe: UnwrapRef<typeof import('@unhead/vue')['useHeadSafe']>
|
||||
readonly useId: UnwrapRef<typeof import('vue')['useId']>
|
||||
readonly useIdle: UnwrapRef<typeof import('@vueuse/core')['useIdle']>
|
||||
readonly useImage: UnwrapRef<typeof import('@vueuse/core')['useImage']>
|
||||
readonly useInfiniteScroll: UnwrapRef<typeof import('@vueuse/core')['useInfiniteScroll']>
|
||||
readonly useIntersectionObserver: UnwrapRef<typeof import('@vueuse/core')['useIntersectionObserver']>
|
||||
readonly useInterval: UnwrapRef<typeof import('@vueuse/core')['useInterval']>
|
||||
readonly useIntervalFn: UnwrapRef<typeof import('@vueuse/core')['useIntervalFn']>
|
||||
readonly useKeyModifier: UnwrapRef<typeof import('@vueuse/core')['useKeyModifier']>
|
||||
readonly useLastChanged: UnwrapRef<typeof import('@vueuse/core')['useLastChanged']>
|
||||
readonly useLink: UnwrapRef<typeof import('vue-router')['useLink']>
|
||||
readonly useLocalStorage: UnwrapRef<typeof import('@vueuse/core')['useLocalStorage']>
|
||||
readonly useMagicKeys: UnwrapRef<typeof import('@vueuse/core')['useMagicKeys']>
|
||||
readonly useManualRefHistory: UnwrapRef<typeof import('@vueuse/core')['useManualRefHistory']>
|
||||
readonly useMediaControls: UnwrapRef<typeof import('@vueuse/core')['useMediaControls']>
|
||||
readonly useMediaQuery: UnwrapRef<typeof import('@vueuse/core')['useMediaQuery']>
|
||||
readonly useMemoize: UnwrapRef<typeof import('@vueuse/core')['useMemoize']>
|
||||
readonly useMemory: UnwrapRef<typeof import('@vueuse/core')['useMemory']>
|
||||
readonly useModel: UnwrapRef<typeof import('vue')['useModel']>
|
||||
readonly useMounted: UnwrapRef<typeof import('@vueuse/core')['useMounted']>
|
||||
readonly useMouse: UnwrapRef<typeof import('@vueuse/core')['useMouse']>
|
||||
readonly useMouseInElement: UnwrapRef<typeof import('@vueuse/core')['useMouseInElement']>
|
||||
readonly useMousePressed: UnwrapRef<typeof import('@vueuse/core')['useMousePressed']>
|
||||
readonly useMutationObserver: UnwrapRef<typeof import('@vueuse/core')['useMutationObserver']>
|
||||
readonly useNavigatorLanguage: UnwrapRef<typeof import('@vueuse/core')['useNavigatorLanguage']>
|
||||
readonly useNetwork: UnwrapRef<typeof import('@vueuse/core')['useNetwork']>
|
||||
readonly useNow: UnwrapRef<typeof import('@vueuse/core')['useNow']>
|
||||
readonly useObjectUrl: UnwrapRef<typeof import('@vueuse/core')['useObjectUrl']>
|
||||
readonly useOffsetPagination: UnwrapRef<typeof import('@vueuse/core')['useOffsetPagination']>
|
||||
readonly useOnline: UnwrapRef<typeof import('@vueuse/core')['useOnline']>
|
||||
readonly usePBDataFetch: UnwrapRef<typeof import('../composables/usePBDataFetch')['usePBDataFetch']>
|
||||
readonly usePageLeave: UnwrapRef<typeof import('@vueuse/core')['usePageLeave']>
|
||||
readonly useParallax: UnwrapRef<typeof import('@vueuse/core')['useParallax']>
|
||||
readonly useParentElement: UnwrapRef<typeof import('@vueuse/core')['useParentElement']>
|
||||
readonly usePerformanceObserver: UnwrapRef<typeof import('@vueuse/core')['usePerformanceObserver']>
|
||||
readonly usePermission: UnwrapRef<typeof import('@vueuse/core')['usePermission']>
|
||||
readonly usePocketBase: UnwrapRef<typeof import('../composables/usePocketBase')['default']>
|
||||
readonly usePointer: UnwrapRef<typeof import('@vueuse/core')['usePointer']>
|
||||
readonly usePointerLock: UnwrapRef<typeof import('@vueuse/core')['usePointerLock']>
|
||||
readonly usePointerSwipe: UnwrapRef<typeof import('@vueuse/core')['usePointerSwipe']>
|
||||
readonly usePreferredColorScheme: UnwrapRef<typeof import('@vueuse/core')['usePreferredColorScheme']>
|
||||
readonly usePreferredContrast: UnwrapRef<typeof import('@vueuse/core')['usePreferredContrast']>
|
||||
readonly usePreferredDark: UnwrapRef<typeof import('@vueuse/core')['usePreferredDark']>
|
||||
readonly usePreferredLanguages: UnwrapRef<typeof import('@vueuse/core')['usePreferredLanguages']>
|
||||
readonly usePreferredReducedMotion: UnwrapRef<typeof import('@vueuse/core')['usePreferredReducedMotion']>
|
||||
readonly usePrevious: UnwrapRef<typeof import('@vueuse/core')['usePrevious']>
|
||||
readonly useRafFn: UnwrapRef<typeof import('@vueuse/core')['useRafFn']>
|
||||
readonly useRefHistory: UnwrapRef<typeof import('@vueuse/core')['useRefHistory']>
|
||||
readonly useResizeObserver: UnwrapRef<typeof import('@vueuse/core')['useResizeObserver']>
|
||||
readonly useRoute: UnwrapRef<typeof import('vue-router')['useRoute']>
|
||||
readonly useRouter: UnwrapRef<typeof import('vue-router')['useRouter']>
|
||||
readonly useScreenOrientation: UnwrapRef<typeof import('@vueuse/core')['useScreenOrientation']>
|
||||
readonly useScreenSafeArea: UnwrapRef<typeof import('@vueuse/core')['useScreenSafeArea']>
|
||||
readonly useScriptTag: UnwrapRef<typeof import('@vueuse/core')['useScriptTag']>
|
||||
readonly useScroll: UnwrapRef<typeof import('@vueuse/core')['useScroll']>
|
||||
readonly useScrollLock: UnwrapRef<typeof import('@vueuse/core')['useScrollLock']>
|
||||
readonly useSeoMeta: UnwrapRef<typeof import('@unhead/vue')['useSeoMeta']>
|
||||
readonly useServerHead: UnwrapRef<typeof import('@unhead/vue')['useServerHead']>
|
||||
readonly useServerHeadSafe: UnwrapRef<typeof import('@unhead/vue')['useServerHeadSafe']>
|
||||
readonly useServerSeoMeta: UnwrapRef<typeof import('@unhead/vue')['useServerSeoMeta']>
|
||||
readonly useSessionStorage: UnwrapRef<typeof import('@vueuse/core')['useSessionStorage']>
|
||||
readonly useShare: UnwrapRef<typeof import('@vueuse/core')['useShare']>
|
||||
readonly useSlots: UnwrapRef<typeof import('vue')['useSlots']>
|
||||
readonly useSorted: UnwrapRef<typeof import('@vueuse/core')['useSorted']>
|
||||
readonly useSpeechRecognition: UnwrapRef<typeof import('@vueuse/core')['useSpeechRecognition']>
|
||||
readonly useSpeechSynthesis: UnwrapRef<typeof import('@vueuse/core')['useSpeechSynthesis']>
|
||||
readonly useStepper: UnwrapRef<typeof import('@vueuse/core')['useStepper']>
|
||||
readonly useStorage: UnwrapRef<typeof import('@vueuse/core')['useStorage']>
|
||||
readonly useStorageAsync: UnwrapRef<typeof import('@vueuse/core')['useStorageAsync']>
|
||||
readonly useStyleTag: UnwrapRef<typeof import('@vueuse/core')['useStyleTag']>
|
||||
readonly useSupported: UnwrapRef<typeof import('@vueuse/core')['useSupported']>
|
||||
readonly useSwipe: UnwrapRef<typeof import('@vueuse/core')['useSwipe']>
|
||||
readonly useTemplateRef: UnwrapRef<typeof import('vue')['useTemplateRef']>
|
||||
readonly useTemplateRefsList: UnwrapRef<typeof import('@vueuse/core')['useTemplateRefsList']>
|
||||
readonly useTextDirection: UnwrapRef<typeof import('@vueuse/core')['useTextDirection']>
|
||||
readonly useTextSelection: UnwrapRef<typeof import('@vueuse/core')['useTextSelection']>
|
||||
readonly useTextareaAutosize: UnwrapRef<typeof import('@vueuse/core')['useTextareaAutosize']>
|
||||
readonly useThemeStore: UnwrapRef<typeof import('../stores/themeStore')['useThemeStore']>
|
||||
readonly useThrottle: UnwrapRef<typeof import('@vueuse/core')['useThrottle']>
|
||||
readonly useThrottleFn: UnwrapRef<typeof import('@vueuse/core')['useThrottleFn']>
|
||||
readonly useThrottledRefHistory: UnwrapRef<typeof import('@vueuse/core')['useThrottledRefHistory']>
|
||||
readonly useTimeAgo: UnwrapRef<typeof import('@vueuse/core')['useTimeAgo']>
|
||||
readonly useTimeout: UnwrapRef<typeof import('@vueuse/core')['useTimeout']>
|
||||
readonly useTimeoutFn: UnwrapRef<typeof import('@vueuse/core')['useTimeoutFn']>
|
||||
readonly useTimeoutPoll: UnwrapRef<typeof import('@vueuse/core')['useTimeoutPoll']>
|
||||
readonly useTimestamp: UnwrapRef<typeof import('@vueuse/core')['useTimestamp']>
|
||||
readonly useTitle: UnwrapRef<typeof import('@vueuse/core')['useTitle']>
|
||||
readonly useToNumber: UnwrapRef<typeof import('@vueuse/core')['useToNumber']>
|
||||
readonly useToString: UnwrapRef<typeof import('@vueuse/core')['useToString']>
|
||||
readonly useToast: UnwrapRef<typeof import('../components/ui/toast/use-toast')['useToast']>
|
||||
readonly useToggle: UnwrapRef<typeof import('@vueuse/core')['useToggle']>
|
||||
readonly useTransition: UnwrapRef<typeof import('@vueuse/core')['useTransition']>
|
||||
readonly useUrlSearchParams: UnwrapRef<typeof import('@vueuse/core')['useUrlSearchParams']>
|
||||
readonly useUserMedia: UnwrapRef<typeof import('@vueuse/core')['useUserMedia']>
|
||||
readonly useVModel: UnwrapRef<typeof import('@vueuse/core')['useVModel']>
|
||||
readonly useVModels: UnwrapRef<typeof import('@vueuse/core')['useVModels']>
|
||||
readonly useVibrate: UnwrapRef<typeof import('@vueuse/core')['useVibrate']>
|
||||
readonly useVirtualList: UnwrapRef<typeof import('@vueuse/core')['useVirtualList']>
|
||||
readonly useWakeLock: UnwrapRef<typeof import('@vueuse/core')['useWakeLock']>
|
||||
readonly useWebNotification: UnwrapRef<typeof import('@vueuse/core')['useWebNotification']>
|
||||
readonly useWebSocket: UnwrapRef<typeof import('@vueuse/core')['useWebSocket']>
|
||||
readonly useWebWorker: UnwrapRef<typeof import('@vueuse/core')['useWebWorker']>
|
||||
readonly useWebWorkerFn: UnwrapRef<typeof import('@vueuse/core')['useWebWorkerFn']>
|
||||
readonly useWindowFocus: UnwrapRef<typeof import('@vueuse/core')['useWindowFocus']>
|
||||
readonly useWindowScroll: UnwrapRef<typeof import('@vueuse/core')['useWindowScroll']>
|
||||
readonly useWindowSize: UnwrapRef<typeof import('@vueuse/core')['useWindowSize']>
|
||||
readonly vi: UnwrapRef<typeof import('vitest')['vi']>
|
||||
readonly vitest: UnwrapRef<typeof import('vitest')['vitest']>
|
||||
readonly watch: UnwrapRef<typeof import('vue')['watch']>
|
||||
readonly watchArray: UnwrapRef<typeof import('@vueuse/core')['watchArray']>
|
||||
readonly watchAtMost: UnwrapRef<typeof import('@vueuse/core')['watchAtMost']>
|
||||
readonly watchDebounced: UnwrapRef<typeof import('@vueuse/core')['watchDebounced']>
|
||||
readonly watchDeep: UnwrapRef<typeof import('@vueuse/core')['watchDeep']>
|
||||
readonly watchEffect: UnwrapRef<typeof import('vue')['watchEffect']>
|
||||
readonly watchIgnorable: UnwrapRef<typeof import('@vueuse/core')['watchIgnorable']>
|
||||
readonly watchImmediate: UnwrapRef<typeof import('@vueuse/core')['watchImmediate']>
|
||||
readonly watchOnce: UnwrapRef<typeof import('@vueuse/core')['watchOnce']>
|
||||
readonly watchPausable: UnwrapRef<typeof import('@vueuse/core')['watchPausable']>
|
||||
readonly watchPostEffect: UnwrapRef<typeof import('vue')['watchPostEffect']>
|
||||
readonly watchSyncEffect: UnwrapRef<typeof import('vue')['watchSyncEffect']>
|
||||
readonly watchThrottled: UnwrapRef<typeof import('@vueuse/core')['watchThrottled']>
|
||||
readonly watchTriggerable: UnwrapRef<typeof import('@vueuse/core')['watchTriggerable']>
|
||||
readonly watchWithFilter: UnwrapRef<typeof import('@vueuse/core')['watchWithFilter']>
|
||||
readonly whenever: UnwrapRef<typeof import('@vueuse/core')['whenever']>
|
||||
}
|
||||
}
|
||||
@@ -19,6 +19,7 @@ declare module 'vue' {
|
||||
ChartLegend: typeof import('./../components/ui/chart/ChartLegend.vue')['default']
|
||||
ChartSingleTooltip: typeof import('./../components/ui/chart/ChartSingleTooltip.vue')['default']
|
||||
ChartTooltip: typeof import('./../components/ui/chart/ChartTooltip.vue')['default']
|
||||
CustomChartTooltip: typeof import('./../components/charts-and-stats/customChartTooltip.vue')['default']
|
||||
Dialog: typeof import('./../components/ui/dialog/Dialog.vue')['default']
|
||||
DialogClose: typeof import('./../components/ui/dialog/DialogClose.vue')['default']
|
||||
DialogContent: typeof import('./../components/ui/dialog/DialogContent.vue')['default']
|
||||
@@ -68,6 +69,7 @@ declare module 'vue' {
|
||||
PopoverContent: typeof import('./../components/ui/popover/PopoverContent.vue')['default']
|
||||
PopoverTrigger: typeof import('./../components/ui/popover/PopoverTrigger.vue')['default']
|
||||
PreviewReportTab: typeof import('./../components/admin-panel/previewReportTab.vue')['default']
|
||||
Progress: typeof import('./../components/ui/progress/Progress.vue')['default']
|
||||
RadioGroup: typeof import('./../components/ui/radio-group/RadioGroup.vue')['default']
|
||||
RadioGroupItem: typeof import('./../components/ui/radio-group/RadioGroupItem.vue')['default']
|
||||
RouterLink: typeof import('vue-router')['RouterLink']
|
||||
@@ -75,8 +77,6 @@ declare module 'vue' {
|
||||
ScrollArea: typeof import('./../components/ui/scroll-area/ScrollArea.vue')['default']
|
||||
ScrollBar: typeof import('./../components/ui/scroll-area/ScrollBar.vue')['default']
|
||||
Separator: typeof import('./../components/ui/separator/Separator.vue')['default']
|
||||
SimplifedChartTooltip: typeof import('../components/charts-and-stats/simplifiedChartTooltip.vue')['default']
|
||||
SimplifiedChartTooltip: typeof import('./../components/charts-and-stats/simplifiedChartTooltip.vue')['default']
|
||||
Switch: typeof import('./../components/ui/switch/Switch.vue')['default']
|
||||
Tabs: typeof import('./../components/ui/tabs/Tabs.vue')['default']
|
||||
TabsContent: typeof import('./../components/ui/tabs/TabsContent.vue')['default']
|
||||
@@ -20,7 +20,12 @@ declare module 'vue-router/auto-routes' {
|
||||
export interface RouteNamedMap {
|
||||
'/': RouteRecordInfo<'/', '/', Record<never, never>, Record<never, never>>,
|
||||
'/admin-panel': RouteRecordInfo<'/admin-panel', '/admin-panel', Record<never, never>, Record<never, never>>,
|
||||
'/charts-and-stats': RouteRecordInfo<'/charts-and-stats', '/charts-and-stats', Record<never, never>, Record<never, never>>,
|
||||
'/charts-and-stats/burgs/[subgroup]': RouteRecordInfo<'/charts-and-stats/burgs/[subgroup]', '/charts-and-stats/burgs/:subgroup', { subgroup: ParamValue<true> }, { subgroup: ParamValue<false> }>,
|
||||
'/charts-and-stats/cultures/[subgroup]': RouteRecordInfo<'/charts-and-stats/cultures/[subgroup]', '/charts-and-stats/cultures/:subgroup', { subgroup: ParamValue<true> }, { subgroup: ParamValue<false> }>,
|
||||
'/charts-and-stats/misc/[subgroup]': RouteRecordInfo<'/charts-and-stats/misc/[subgroup]', '/charts-and-stats/misc/:subgroup', { subgroup: ParamValue<true> }, { subgroup: ParamValue<false> }>,
|
||||
'/charts-and-stats/provinces/[subgroup]': RouteRecordInfo<'/charts-and-stats/provinces/[subgroup]', '/charts-and-stats/provinces/:subgroup', { subgroup: ParamValue<true> }, { subgroup: ParamValue<false> }>,
|
||||
'/charts-and-stats/religions/[subgroup]': RouteRecordInfo<'/charts-and-stats/religions/[subgroup]', '/charts-and-stats/religions/:subgroup', { subgroup: ParamValue<true> }, { subgroup: ParamValue<false> }>,
|
||||
'/charts-and-stats/states/[subgroup]': RouteRecordInfo<'/charts-and-stats/states/[subgroup]', '/charts-and-stats/states/:subgroup', { subgroup: ParamValue<true> }, { subgroup: ParamValue<false> }>,
|
||||
'/login': RouteRecordInfo<'/login', '/login', Record<never, never>, Record<never, never>>,
|
||||
'/map': RouteRecordInfo<'/map', '/map', Record<never, never>, Record<never, never>>,
|
||||
'/profile': RouteRecordInfo<'/profile', '/profile', Record<never, never>, Record<never, never>>,
|
||||
@@ -104,7 +104,7 @@ const pb_url = import.meta.env.PROD ? '/_/' : '/pb/_/';
|
||||
<NavigationMenuLink :class="navigationMenuTriggerStyle()" class="flex items-center gap-1">
|
||||
<Icon icon="majesticons:presentation-chart" class="h-4 w-4 text-primary" />
|
||||
|
||||
<RouterLink to="/charts-and-stats">Wykresy i statystyki</RouterLink>
|
||||
<RouterLink to="/charts-and-stats/states/cells">Wykresy i statystyki</RouterLink>
|
||||
</NavigationMenuLink>
|
||||
</NavigationMenuItem>
|
||||
|
||||
|
||||
@@ -13,10 +13,9 @@ const props = defineProps<{
|
||||
const pb = usePocketBase();
|
||||
const { toast } = useToast();
|
||||
|
||||
const cd = cacheFullListResponsesStore();
|
||||
const { cd, fetchDataForTurnEndTab } = usePBDataFetch();
|
||||
|
||||
if (!cd.turnsData.length) await cd.fetchTurnsData();
|
||||
if (!cd.statesData.length) await cd.fetchStatesData();
|
||||
await fetchDataForTurnEndTab();
|
||||
|
||||
const turns = ref(cd.turnsData.slice().reverse());
|
||||
const turn = ref(turns[0]);
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
<script lang="ts" setup>
|
||||
import type { ChartData, Config } from '@/types/chartsTypes';
|
||||
|
||||
defineProps<{
|
||||
config: Config;
|
||||
labels: string[];
|
||||
charts: Record<string, ChartData[]>;
|
||||
}>();
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div v-for="(chart, _, index) in charts" :key="index" class="mb-4 flex flex-col">
|
||||
<Label class="my-4 text-center text-5xl font-bold text-primary"> {{ labels[index] }} </Label>
|
||||
|
||||
<LineChart
|
||||
v-once
|
||||
:categories="config.categories"
|
||||
index="turn"
|
||||
:colors="config.colors"
|
||||
:data="chart"
|
||||
class="h-[900px]"
|
||||
:show-legend="true"
|
||||
:show-tooltip="true"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
63
src/components/charts-and-stats/customChartTooltip.vue
Normal file
63
src/components/charts-and-stats/customChartTooltip.vue
Normal file
@@ -0,0 +1,63 @@
|
||||
<script setup lang="ts">
|
||||
const props = defineProps<{
|
||||
title?: string;
|
||||
data: {
|
||||
name: string;
|
||||
color: string;
|
||||
value: any;
|
||||
}[];
|
||||
}>();
|
||||
|
||||
props.data.sort((a, b) => b.value - a.value);
|
||||
|
||||
// const paginatedData = ref(props.data.slice(0, 70));
|
||||
// const pagination = ref([paginatedData.value]);
|
||||
|
||||
// if (props.data.length > 70) {
|
||||
// for (let i = 70; i < props.data.length; i += 70) {
|
||||
// pagination.value.push(props.data.slice(i, i + 70));
|
||||
// }
|
||||
// }
|
||||
|
||||
// const selectedPagination = ref(0);
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<Card class="text-sm opacity-75">
|
||||
<CardHeader v-if="title" class="border-b p-3">
|
||||
<CardTitle> <span class="text-primary">Tura</span>: {{ title }} </CardTitle>
|
||||
<!-- <CardDescription v-if="pagination.length > 1">
|
||||
Strona {{ selectedPagination + 1 }} / {{ pagination.length }}
|
||||
</CardDescription> -->
|
||||
</CardHeader>
|
||||
<CardContent class="flex min-w-[180px] flex-col gap-1 p-3">
|
||||
<!-- <div
|
||||
v-if="pagination[selectedPagination]"
|
||||
:key="selectedPagination"
|
||||
class="grid max-w-[1300px] grid-cols-5 gap-3"
|
||||
> -->
|
||||
<div class="grid max-w-[1300px] grid-cols-5 gap-3">
|
||||
<div
|
||||
v-for="(item, key) in data"
|
||||
:key="key"
|
||||
class="bottom-1 flex justify-between rounded-md border p-2"
|
||||
>
|
||||
<div class="flex items-center">
|
||||
<span class="mr-2 h-2.5 w-2.5">
|
||||
<svg width="100%" height="100%" viewBox="0 0 30 30">
|
||||
<path
|
||||
d="M 15 15 m -14, 0 a 14,14 0 1,1 28,0 a 14,14 0 1,1 -28,0"
|
||||
:stroke="item.color"
|
||||
:fill="item.color"
|
||||
stroke-width="1"
|
||||
/>
|
||||
</svg>
|
||||
</span>
|
||||
<span>{{ item.name }}</span>
|
||||
</div>
|
||||
<span class="ml-4 flex items-center font-semibold">{{ item.value }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</CardContent>
|
||||
</Card>
|
||||
</template>
|
||||
@@ -49,7 +49,7 @@ function onLegendItemClick(d: BulletLegendItemInterface, i: number) {
|
||||
|
||||
<template>
|
||||
<div ref="elRef" class="w-max">
|
||||
<ScrollArea class="mb-2 ms-40 w-screen whitespace-nowrap rounded-md border">
|
||||
<ScrollArea class="mb-2 w-screen whitespace-nowrap rounded-md border">
|
||||
<VisBulletLegend :items="items" :on-legend-item-click="onLegendItemClick" class="ms-10" />
|
||||
<ScrollBar orientation="horizontal" />
|
||||
</ScrollArea>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<script setup lang="ts">
|
||||
import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card';
|
||||
|
||||
const props = defineProps<{
|
||||
defineProps<{
|
||||
title?: string;
|
||||
data: {
|
||||
name: string;
|
||||
@@ -9,42 +9,32 @@ const props = defineProps<{
|
||||
value: any;
|
||||
}[];
|
||||
}>();
|
||||
|
||||
props.data.sort((a, b) => b.value - a.value);
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<Card class="text-sm">
|
||||
<CardHeader v-if="title" class="border-b p-3">
|
||||
<CardTitle> <span class="text-primary">Tura</span>: {{ title }} </CardTitle>
|
||||
<CardTitle>
|
||||
{{ title }}
|
||||
</CardTitle>
|
||||
</CardHeader>
|
||||
<CardContent class="flex min-w-[180px] flex-col gap-1 p-3">
|
||||
<ScrollArea class="h-full w-full">
|
||||
<div class="grid max-w-[1300px] grid-cols-5 gap-3">
|
||||
<div
|
||||
v-for="(item, key) in data"
|
||||
:key="key"
|
||||
class="bottom-1 flex justify-between rounded-md border p-2"
|
||||
>
|
||||
<div class="flex items-center">
|
||||
<span class="mr-2 h-2.5 w-2.5">
|
||||
<svg width="100%" height="100%" viewBox="0 0 30 30">
|
||||
<path
|
||||
d=" M 15 15 m -14, 0 a 14,14 0 1,1 28,0 a 14,14 0 1,1 -28,0"
|
||||
:stroke="item.color"
|
||||
:fill="item.color"
|
||||
stroke-width="1"
|
||||
/>
|
||||
</svg>
|
||||
</span>
|
||||
<span>{{ item.name }}</span>
|
||||
</div>
|
||||
<span class="ml-4 flex items-center font-semibold">{{ item.value }}</span>
|
||||
</div>
|
||||
<div v-for="(item, key) in data" :key="key" class="flex justify-between">
|
||||
<div class="flex items-center">
|
||||
<span class="mr-2 h-2.5 w-2.5">
|
||||
<svg width="100%" height="100%" viewBox="0 0 30 30">
|
||||
<path
|
||||
d=" M 15 15 m -14, 0 a 14,14 0 1,1 28,0 a 14,14 0 1,1 -28,0"
|
||||
:stroke="item.color"
|
||||
:fill="item.color"
|
||||
stroke-width="1"
|
||||
/>
|
||||
</svg>
|
||||
</span>
|
||||
<span>{{ item.name }}</span>
|
||||
</div>
|
||||
|
||||
<ScrollBar orientation="vertical" />
|
||||
</ScrollArea>
|
||||
<span class="ml-4 font-semibold">{{ item.value }}</span>
|
||||
</div>
|
||||
</CardContent>
|
||||
</Card>
|
||||
</template>
|
||||
|
||||
27
src/components/ui/progress/Progress.vue
Normal file
27
src/components/ui/progress/Progress.vue
Normal file
@@ -0,0 +1,27 @@
|
||||
<script setup lang="ts">
|
||||
import { cn } from '@/lib/utils';
|
||||
import { ProgressIndicator, ProgressRoot, type ProgressRootProps } from 'radix-vue';
|
||||
import { computed, type HTMLAttributes } from 'vue';
|
||||
|
||||
const props = withDefaults(defineProps<ProgressRootProps & { class?: HTMLAttributes['class'] }>(), {
|
||||
modelValue: 0
|
||||
});
|
||||
|
||||
const delegatedProps = computed(() => {
|
||||
const { class: _, ...delegated } = props;
|
||||
|
||||
return delegated;
|
||||
});
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<ProgressRoot
|
||||
v-bind="delegatedProps"
|
||||
:class="cn('relative h-4 w-full overflow-hidden rounded-full bg-secondary', props.class)"
|
||||
>
|
||||
<ProgressIndicator
|
||||
class="h-full w-full flex-1 bg-primary transition-all"
|
||||
:style="`transform: translateX(-${100 - (props.modelValue ?? 0)}%);`"
|
||||
/>
|
||||
</ProgressRoot>
|
||||
</template>
|
||||
1
src/components/ui/progress/index.ts
Normal file
1
src/components/ui/progress/index.ts
Normal file
@@ -0,0 +1 @@
|
||||
export { default as Progress } from './Progress.vue';
|
||||
98
src/composables/useChartData.ts
Normal file
98
src/composables/useChartData.ts
Normal file
@@ -0,0 +1,98 @@
|
||||
import type { ChartData, DataForChart } from '@/types/chartsTypes';
|
||||
// TODO: dodać specjalne przypadki
|
||||
export const useChartData = (cd: any, dataForChart: globalThis.ComputedRef<DataForChart>) => {
|
||||
const generateChartContent = () => {
|
||||
for (let i = 0; i < cd.turnsData.value.length - 1; i++) {
|
||||
const turn = cd.turnsData.value[i];
|
||||
const dataInTurn = cd[`${dataForChart.value.group}Data`].value.filter(
|
||||
item => item.turn === turn.id
|
||||
);
|
||||
const dataItem = { turn: turn.value } as ChartData;
|
||||
|
||||
for (let j = 0; j < dataInTurn.length; j++) {
|
||||
const item = dataInTurn[j];
|
||||
dataItem[item.name] = item[dataForChart.value.subgroup];
|
||||
}
|
||||
dataForChart.value.chart.push(dataItem);
|
||||
|
||||
// metrics.forEach(metric => {
|
||||
// const dataItem = { turn: turn.value };
|
||||
// if (metric === 'burgs' && (key === 'states' || key === 'religions' || key === 'cultures')) {
|
||||
// dataInTurn.forEach(item => {
|
||||
// const burgsCount = cd.burgsData.value.filter(
|
||||
// burg => burg[key.slice(0, -1)] === item.id
|
||||
// ).length;
|
||||
// dataItem[item.name] = burgsCount || 0;
|
||||
// });
|
||||
// } else {
|
||||
// dataInTurn.forEach(item => {
|
||||
// dataItem[item.name] = item[metric] || 0;
|
||||
// });
|
||||
// }
|
||||
// dataForCharts.value[key].charts[metric].push(dataItem);
|
||||
// });
|
||||
}
|
||||
|
||||
// Object.entries(chartMappings).forEach(([key, metrics]) => {
|
||||
// for (let i = 0; i < cd.turnsData.value.length - 1; i++) {
|
||||
// const turn = cd.turnsData.value[i];
|
||||
// const dataInTurn = cd[`${key}Data`].value.filter(item => item.turn === turn.id);
|
||||
// metrics.forEach(metric => {
|
||||
// const dataItem = { turn: turn.value };
|
||||
// if (
|
||||
// metric === 'burgs' &&
|
||||
// (key === 'states' || key === 'religions' || key === 'cultures')
|
||||
// ) {
|
||||
// dataInTurn.forEach(item => {
|
||||
// const burgsCount = cd.burgsData.value.filter(
|
||||
// burg => burg[key.slice(0, -1)] === item.id
|
||||
// ).length;
|
||||
// dataItem[item.name] = burgsCount || 0;
|
||||
// });
|
||||
// } else {
|
||||
// dataInTurn.forEach(item => {
|
||||
// dataItem[item.name] = item[metric] || 0;
|
||||
// });
|
||||
// }
|
||||
// dataForCharts.value[key].charts[metric].push(dataItem);
|
||||
// });
|
||||
// }
|
||||
// });
|
||||
// for (let i = 0; i < cd.turnsData.value.length - 1; i++) {
|
||||
// const turn = cd.turnsData.value[i];
|
||||
// const statesDataInTurn = cd.statesData.value.filter(state => state.turn === turn.id);
|
||||
// const dataItem = { turn: turn.value };
|
||||
// statesDataInTurn.forEach(state => {
|
||||
// const provincesCount = cd.provincesData.value.filter(
|
||||
// province => province.state === state.id
|
||||
// ).length;
|
||||
// dataItem[state.name] = provincesCount;
|
||||
// });
|
||||
// dataForCharts.value.states.charts.provinces.push(dataItem);
|
||||
// }
|
||||
// for (let i = 0; i < cd.turnsData.value.length - 1; i++) {
|
||||
// const turn = cd.turnsData.value[i];
|
||||
// const burgsDataInTurn = cd.burgsData.value.filter(burg => burg.turn === turn.id);
|
||||
// const populationDataItem = { turn: turn.value };
|
||||
// const buildingsFeatures = [0, 0, 0, 0, 0, 0, 0];
|
||||
// burgsDataInTurn.forEach(burg => {
|
||||
// populationDataItem[burg.name] = burg.population || 0;
|
||||
// if (burg.isCapital) buildingsFeatures[0]++;
|
||||
// if (burg.isPort) buildingsFeatures[1]++;
|
||||
// if (burg.isCitadel) buildingsFeatures[2]++;
|
||||
// if (burg.isWalls) buildingsFeatures[3]++;
|
||||
// if (burg.isPlaza) buildingsFeatures[4]++;
|
||||
// if (burg.isTemple) buildingsFeatures[5]++;
|
||||
// if (burg.isShantyTown) buildingsFeatures[6]++;
|
||||
// });
|
||||
// dataForCharts.value.burgs.charts.population.push(populationDataItem);
|
||||
// const featuresDataItem = { turn: turn.value };
|
||||
// dataForCharts.value.misc.config.categories.forEach((category, index) => {
|
||||
// featuresDataItem[category] = buildingsFeatures[index];
|
||||
// });
|
||||
// dataForCharts.value.misc.charts.features.push(featuresDataItem);
|
||||
// }
|
||||
};
|
||||
|
||||
return { generateChartContent };
|
||||
};
|
||||
36
src/composables/useChartDataFetch.ts
Normal file
36
src/composables/useChartDataFetch.ts
Normal file
@@ -0,0 +1,36 @@
|
||||
export async function useChartDataFetch(group: globalThis.ComputedRef<any>) {
|
||||
const {
|
||||
fetchStatesData,
|
||||
fetchProvincesData,
|
||||
fetchBurgsData,
|
||||
fetchCulturesData,
|
||||
fetchReligionsData
|
||||
} = cacheFullListResponsesStore();
|
||||
|
||||
const cd = storeToRefs(cacheFullListResponsesStore());
|
||||
|
||||
const chartDataFetch = async () => {
|
||||
switch (group.value) {
|
||||
case 'states':
|
||||
if (!cd.statesData.value.length) await fetchStatesData();
|
||||
break;
|
||||
case 'provinces':
|
||||
if (!cd.provincesData.value.length) await fetchProvincesData();
|
||||
break;
|
||||
case 'burgs':
|
||||
if (!cd.burgsData.value.length) await fetchBurgsData();
|
||||
break;
|
||||
case 'cultures':
|
||||
if (!cd.culturesData.value.length) await fetchCulturesData();
|
||||
break;
|
||||
case 'religions':
|
||||
if (!cd.religionsData.value.length) await fetchReligionsData();
|
||||
break;
|
||||
case 'misc':
|
||||
if (!cd.burgsData.value.length) await fetchBurgsData();
|
||||
break;
|
||||
}
|
||||
};
|
||||
|
||||
return { chartDataFetch };
|
||||
}
|
||||
28
src/composables/usePBDataFetch.ts
Normal file
28
src/composables/usePBDataFetch.ts
Normal file
@@ -0,0 +1,28 @@
|
||||
export function usePBDataFetch() {
|
||||
const {
|
||||
fetchTurnsData,
|
||||
fetchStatesData,
|
||||
fetchProvincesData,
|
||||
fetchBurgsData,
|
||||
fetchCulturesData,
|
||||
fetchReligionsData
|
||||
} = cacheFullListResponsesStore();
|
||||
|
||||
const cd = storeToRefs(cacheFullListResponsesStore());
|
||||
|
||||
const fetchAllData = async () => {
|
||||
if (!cd.turnsData.value.length) await fetchTurnsData();
|
||||
if (!cd.statesData.value.length) await fetchStatesData();
|
||||
if (!cd.provincesData.value.length) await fetchProvincesData();
|
||||
if (!cd.burgsData.value.length) await fetchBurgsData();
|
||||
if (!cd.culturesData.value.length) await fetchCulturesData();
|
||||
if (!cd.religionsData.value.length) await fetchReligionsData();
|
||||
};
|
||||
|
||||
const fetchDataForTurnEndTab = async () => {
|
||||
if (!cd.turnsData.value.length) await fetchTurnsData();
|
||||
if (!cd.statesData.value.length) await fetchStatesData();
|
||||
};
|
||||
|
||||
return { cd, fetchAllData, fetchDataForTurnEndTab };
|
||||
}
|
||||
49
src/data/chartsConfig.ts
Normal file
49
src/data/chartsConfig.ts
Normal file
@@ -0,0 +1,49 @@
|
||||
export const chartsCategories = [
|
||||
{
|
||||
name: 'states',
|
||||
label: 'Państwa',
|
||||
description: 'Statystyki państw',
|
||||
labels: {
|
||||
cells: 'Ilość kratek',
|
||||
burgs: 'Ilość miast',
|
||||
provinces: 'Ilość prowincji',
|
||||
ruralPopulation: 'Ilość populacji wiejskiej ',
|
||||
urbanPopulation: 'Ilość populacji miejskiej'
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'provinces',
|
||||
label: 'Prowincje',
|
||||
description: 'Statystyki prowincji',
|
||||
labels: {
|
||||
cells: 'Ilość kratek',
|
||||
burgs: 'Ilość miast',
|
||||
ruralPopulation: 'Ilość populacji wiejskiej ',
|
||||
urbanPopulation: 'Ilość populacji miejskiej'
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'burgs',
|
||||
label: 'Miasta',
|
||||
description: 'Statystyki miast',
|
||||
labels: { population: 'Ilość populacji' }
|
||||
},
|
||||
{
|
||||
name: 'cultures',
|
||||
label: 'Kultury',
|
||||
description: 'Statystyki kultur',
|
||||
labels: { cells: 'Ilość kratek', population: 'Ilość populacji', burgs: 'Ilość miast' }
|
||||
},
|
||||
{
|
||||
name: 'religions',
|
||||
label: 'Religie',
|
||||
description: 'Statystyki religii',
|
||||
labels: { cells: 'Ilość kratek', population: 'Ilość populacji', burgs: 'Ilość miast' }
|
||||
},
|
||||
{
|
||||
name: 'misc',
|
||||
label: 'Pozostałe',
|
||||
description: 'pozostałe statystyki',
|
||||
labels: { features: 'Własności miast' }
|
||||
}
|
||||
];
|
||||
54
src/data/dataForCharts.ts
Normal file
54
src/data/dataForCharts.ts
Normal file
@@ -0,0 +1,54 @@
|
||||
import type { DataForCharts } from '@/types/chartsTypes';
|
||||
|
||||
export const dFCh: DataForCharts = {
|
||||
states: {
|
||||
config: { categories: [], colors: [] },
|
||||
charts: {
|
||||
burgs: [],
|
||||
provinces: [],
|
||||
cells: [],
|
||||
ruralPopulation: [],
|
||||
urbanPopulation: []
|
||||
}
|
||||
},
|
||||
provinces: {
|
||||
config: { categories: [], colors: [] },
|
||||
charts: {
|
||||
burgs: [],
|
||||
cells: [],
|
||||
ruralPopulation: [],
|
||||
urbanPopulation: []
|
||||
}
|
||||
},
|
||||
burgs: {
|
||||
config: { categories: [], colors: [] },
|
||||
charts: {
|
||||
population: []
|
||||
}
|
||||
},
|
||||
cultures: {
|
||||
config: { categories: [], colors: [] },
|
||||
charts: {
|
||||
cells: [],
|
||||
population: [],
|
||||
burgs: []
|
||||
}
|
||||
},
|
||||
religions: {
|
||||
config: { categories: [], colors: [] },
|
||||
charts: {
|
||||
cells: [],
|
||||
population: [],
|
||||
burgs: []
|
||||
}
|
||||
},
|
||||
misc: {
|
||||
config: {
|
||||
categories: ['Capitals', 'Ports', 'Citadels', 'Walls', 'Plazas', 'Temples', 'Shanty Towns'],
|
||||
colors: ['#FF0000', '#00FF00', '#0000FF', '#FFFF00', '#FF00FF', '#00FFFF', '#FFFFFF']
|
||||
},
|
||||
charts: {
|
||||
features: []
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -1,341 +0,0 @@
|
||||
<script setup lang="ts">
|
||||
useHead({
|
||||
title: "Garand's WG | Wykresy i statystyki"
|
||||
});
|
||||
|
||||
import type { ChartData, Config, DataForCharts } from '@/types/chartsTypes';
|
||||
import type { BurgsResponse } from '@/types/pb-types';
|
||||
|
||||
const cd = cacheFullListResponsesStore();
|
||||
|
||||
if (!cd.turnsData.length) await cd.fetchTurnsData();
|
||||
if (!cd.statesData.length) await cd.fetchStatesData();
|
||||
if (!cd.provincesData.length) await cd.fetchProvincesData();
|
||||
if (!cd.burgsData.length) await cd.fetchBurgsData();
|
||||
if (!cd.culturesData.length) await cd.fetchCulturesData();
|
||||
if (!cd.religionsData.length) await cd.fetchReligionsData();
|
||||
|
||||
const turnsData = cd.turnsData;
|
||||
const statesData = cd.statesData;
|
||||
const provincesData = cd.provincesData;
|
||||
const burgsData = cd.burgsData;
|
||||
const culturesData = cd.culturesData;
|
||||
const religionsData = cd.religionsData;
|
||||
|
||||
const dataForCharts: DataForCharts = {
|
||||
states: {
|
||||
config: { categories: [], colors: [] },
|
||||
charts: {
|
||||
burgs: [],
|
||||
provinces: [],
|
||||
cells: [],
|
||||
ruralPopulation: [],
|
||||
urbanPopulation: []
|
||||
}
|
||||
},
|
||||
provinces: {
|
||||
config: { categories: [], colors: [] },
|
||||
charts: {
|
||||
burgs: [],
|
||||
cells: [],
|
||||
ruralPopulation: [],
|
||||
urbanPopulation: []
|
||||
}
|
||||
},
|
||||
burgs: {
|
||||
config: { categories: [], colors: [] },
|
||||
charts: {
|
||||
population: []
|
||||
// features: []
|
||||
}
|
||||
},
|
||||
cultures: {
|
||||
config: { categories: [], colors: [] },
|
||||
charts: {
|
||||
cells: [],
|
||||
population: [],
|
||||
burgs: []
|
||||
}
|
||||
},
|
||||
religions: {
|
||||
config: { categories: [], colors: [] },
|
||||
charts: {
|
||||
cells: [],
|
||||
population: [],
|
||||
burgs: []
|
||||
}
|
||||
},
|
||||
misc: {
|
||||
config: {
|
||||
categories: ['Capitals', 'Ports', 'Citadels', 'Walls', 'Plazas', 'Temples', 'Shanty Towns'],
|
||||
colors: ['#FF0000', '#00FF00', '#0000FF', '#FFFF00', '#FF00FF', '#00FFFF', '#FFFFFF']
|
||||
},
|
||||
charts: {
|
||||
features: []
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
const configsDataSets = [
|
||||
{ data: statesData, key: 'states' },
|
||||
{ data: provincesData, key: 'provinces' },
|
||||
{ data: burgsData, key: 'burgs' },
|
||||
{ data: culturesData, key: 'cultures' },
|
||||
{ data: religionsData, key: 'religions' }
|
||||
];
|
||||
|
||||
for (let i = 0; i < configsDataSets.length; i++) {
|
||||
const dataset = configsDataSets[i];
|
||||
const config = dataForCharts[dataset.key].config;
|
||||
|
||||
config.categories = dataset.data.map(item => item.name);
|
||||
if (dataset.data[0].color) config.colors = dataset.data.map(item => item.color);
|
||||
else if (!dataset.data[0].color && dataset.key === 'burgs')
|
||||
config.colors = dataset.data.map(
|
||||
burg => statesData.find(state => state.id === (burg as BurgsResponse).state)?.color
|
||||
);
|
||||
}
|
||||
|
||||
for (let i = 0; i < turnsData.length - 1; i++) {
|
||||
const turn = turnsData[i];
|
||||
const statesDataInTurn = statesData.filter(state => state.turn === turn.id);
|
||||
const provincesDataInTurn = provincesData.filter(province => province.turn === turn.id);
|
||||
const buildingsFeaturesDataItems: ChartData[] = [{ turn: turn.value }];
|
||||
const burgsDataInTurn = burgsData.filter(burg => burg.turn === turn.id);
|
||||
const culturesDataInTurn = culturesData.filter(culture => culture.turn === turn.id);
|
||||
const religionsDataInTurn = religionsData.filter(religion => religion.turn === turn.id);
|
||||
|
||||
const statesDataItems: ChartData[] = [
|
||||
{ turn: turn.value },
|
||||
{ turn: turn.value },
|
||||
{ turn: turn.value },
|
||||
{ turn: turn.value },
|
||||
{ turn: turn.value }
|
||||
];
|
||||
|
||||
for (let j = 0; j < statesDataInTurn.length; j++) {
|
||||
const state = statesDataInTurn[j];
|
||||
|
||||
statesDataItems[0][state.name] = state.burgs;
|
||||
statesDataItems[1][state.name] = provincesData.filter(
|
||||
province => province.state === state.id
|
||||
).length;
|
||||
statesDataItems[2][state.name] = state.cells;
|
||||
statesDataItems[3][state.name] = state.ruralPopulation;
|
||||
statesDataItems[4][state.name] = state.urbanPopulation;
|
||||
}
|
||||
|
||||
dataForCharts.states.charts.burgs.push(statesDataItems[0]);
|
||||
dataForCharts.states.charts.provinces.push(statesDataItems[1]);
|
||||
dataForCharts.states.charts.cells.push(statesDataItems[2]);
|
||||
dataForCharts.states.charts.ruralPopulation.push(statesDataItems[3]);
|
||||
dataForCharts.states.charts.urbanPopulation.push(statesDataItems[4]);
|
||||
|
||||
const provincesDataItems: ChartData[] = [
|
||||
{ turn: turn.value },
|
||||
{ turn: turn.value },
|
||||
{ turn: turn.value },
|
||||
{ turn: turn.value }
|
||||
];
|
||||
|
||||
for (let j = 0; j < provincesDataInTurn.length; j++) {
|
||||
const province = provincesDataInTurn[j];
|
||||
|
||||
provincesDataItems[0][province.name] = province.burgs;
|
||||
provincesDataItems[1][province.name] = province.cells;
|
||||
provincesDataItems[2][province.name] = province.ruralPopulation;
|
||||
provincesDataItems[3][province.name] = province.urbanPopulation;
|
||||
}
|
||||
|
||||
dataForCharts.provinces.charts.burgs.push(provincesDataItems[0]);
|
||||
dataForCharts.provinces.charts.cells.push(provincesDataItems[1]);
|
||||
dataForCharts.provinces.charts.ruralPopulation.push(provincesDataItems[2]);
|
||||
dataForCharts.provinces.charts.urbanPopulation.push(provincesDataItems[3]);
|
||||
|
||||
const burgsDataItems: ChartData[] = [{ turn: turn.value }];
|
||||
|
||||
const buildingsFeatures = [0, 0, 0, 0, 0, 0, 0];
|
||||
for (let j = 0; j < burgsDataInTurn.length; j++) {
|
||||
const burg = burgsData[j];
|
||||
burgsDataItems[0][burg.name] = burg.population;
|
||||
|
||||
if (burg.isCapital) buildingsFeatures[0]++;
|
||||
if (burg.isPort) buildingsFeatures[1]++;
|
||||
if (burg.isCitadel) buildingsFeatures[2]++;
|
||||
if (burg.isWalls) buildingsFeatures[3]++;
|
||||
if (burg.isPlaza) buildingsFeatures[4]++;
|
||||
if (burg.isTemple) buildingsFeatures[5]++;
|
||||
if (burg.isShantyTown) buildingsFeatures[6]++;
|
||||
|
||||
const categories = dataForCharts.misc.config.categories;
|
||||
for (let k = 0; k < categories.length; k++) {
|
||||
buildingsFeaturesDataItems[0][categories[k]] = buildingsFeatures[k];
|
||||
}
|
||||
}
|
||||
|
||||
dataForCharts.burgs.charts.population.push(burgsDataItems[0]);
|
||||
dataForCharts.misc.charts.features.push(buildingsFeaturesDataItems[0]);
|
||||
|
||||
const culturesDataItems: ChartData[] = [
|
||||
{ turn: turn.value },
|
||||
{ turn: turn.value },
|
||||
{ turn: turn.value }
|
||||
];
|
||||
|
||||
for (let j = 0; j < culturesDataInTurn.length; j++) {
|
||||
const culture = culturesDataInTurn[j];
|
||||
const burgsCount = burgsDataInTurn.filter(burg => burg.culture === culture.id).length;
|
||||
|
||||
culturesDataItems[0][culture.name] = culture.cells;
|
||||
culturesDataItems[1][culture.name] = culture.population;
|
||||
culturesDataItems[2][culture.name] = burgsCount;
|
||||
}
|
||||
|
||||
dataForCharts.cultures.charts.cells.push(culturesDataItems[0]);
|
||||
dataForCharts.cultures.charts.population.push(culturesDataItems[1]);
|
||||
dataForCharts.cultures.charts.burgs.push(culturesDataItems[2]);
|
||||
|
||||
const religionsDataItems: ChartData[] = [
|
||||
{ turn: turn.value },
|
||||
{ turn: turn.value },
|
||||
{ turn: turn.value }
|
||||
];
|
||||
|
||||
for (let j = 0; j < religionsDataInTurn.length; j++) {
|
||||
const religion = religionsDataInTurn[j];
|
||||
const burgsCount = burgsDataInTurn.filter(burg => burg.religion === religion.id).length;
|
||||
|
||||
religionsDataItems[0][religion.name] = religion.cells;
|
||||
religionsDataItems[1][religion.name] = religion.population;
|
||||
religionsDataItems[2][religion.name] = burgsCount;
|
||||
}
|
||||
|
||||
dataForCharts.religions.charts.cells.push(religionsDataItems[0]);
|
||||
dataForCharts.religions.charts.population.push(religionsDataItems[1]);
|
||||
dataForCharts.religions.charts.burgs.push(religionsDataItems[2]);
|
||||
}
|
||||
|
||||
const tabs: {
|
||||
name: string;
|
||||
label: string;
|
||||
description: string;
|
||||
props: {
|
||||
config: Config;
|
||||
labels: string[];
|
||||
charts: Record<string, ChartData[]>;
|
||||
};
|
||||
}[] = [
|
||||
{
|
||||
name: 'states',
|
||||
label: 'Państwa',
|
||||
description: 'Statystyki państw',
|
||||
props: {
|
||||
config: dataForCharts.states.config,
|
||||
labels: [
|
||||
'Ilość miast',
|
||||
'Ilość prowincji',
|
||||
'Ilość kratek',
|
||||
'Ilość populacji wiejskiej ',
|
||||
'Ilość populacji miejskiej'
|
||||
],
|
||||
charts: dataForCharts.states.charts
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'provinces',
|
||||
label: 'Prowincje',
|
||||
description: 'Statystyki prowincji',
|
||||
props: {
|
||||
config: dataForCharts.provinces.config,
|
||||
labels: [
|
||||
'Ilość miast',
|
||||
'Ilość kratek',
|
||||
'Ilość populacji wiejskiej ',
|
||||
'Ilość populacji miejskiej'
|
||||
],
|
||||
charts: dataForCharts.provinces.charts
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'burgs',
|
||||
label: 'Miasta',
|
||||
description: 'Statystyki miast',
|
||||
props: {
|
||||
config: dataForCharts.burgs.config,
|
||||
labels: ['Ilość populacji', 'Ilość specjalnych budynków'],
|
||||
charts: dataForCharts.burgs.charts
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'cultures',
|
||||
label: 'Kultury',
|
||||
description: 'Statystyki kultur',
|
||||
props: {
|
||||
config: dataForCharts.cultures.config,
|
||||
labels: ['Ilość kratek', 'Ilość populacji', 'Ilość miast'],
|
||||
charts: dataForCharts.cultures.charts
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'religions',
|
||||
label: 'Religie',
|
||||
description: 'Statystyki religii',
|
||||
props: {
|
||||
config: dataForCharts.religions.config,
|
||||
labels: ['Ilość kratek', 'Ilość populacji', 'Ilość miast'],
|
||||
charts: dataForCharts.religions.charts
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'misc',
|
||||
label: 'Pozostałe',
|
||||
description: 'pozostałe statystyki',
|
||||
props: {
|
||||
config: dataForCharts.misc.config,
|
||||
labels: ['Własności miast'],
|
||||
charts: dataForCharts.misc.charts
|
||||
}
|
||||
}
|
||||
];
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="mt-12 flex h-screen items-center justify-center">
|
||||
<Tabs class="flex w-full flex-col items-center justify-center" :default-value="tabs[0].name">
|
||||
<TabsList class="w-full items-center justify-center">
|
||||
<TabsTrigger v-for="tab in tabs" :key="tab.name" :value="tab.name">
|
||||
{{ tab.label }}
|
||||
</TabsTrigger>
|
||||
</TabsList>
|
||||
|
||||
<TabsContent
|
||||
v-for="tab in tabs"
|
||||
:key="tab.name"
|
||||
:value="tab.name"
|
||||
class="h-screen w-full flex-col items-center justify-center"
|
||||
>
|
||||
<Card>
|
||||
<CardHeader>
|
||||
<CardTitle>
|
||||
{{ tab.label }}
|
||||
</CardTitle>
|
||||
|
||||
<CardDescription class="flex flex-col">
|
||||
{{ tab.description }}
|
||||
</CardDescription>
|
||||
</CardHeader>
|
||||
|
||||
<Separator />
|
||||
|
||||
<CardContent class="space-y-2 py-6">
|
||||
<ChartComponent
|
||||
:config="tab.props.config"
|
||||
:charts="tab.props.charts"
|
||||
:labels="tab.props.labels"
|
||||
/>
|
||||
</CardContent>
|
||||
</Card>
|
||||
</TabsContent>
|
||||
</Tabs>
|
||||
</div>
|
||||
</template>
|
||||
0
src/pages/charts-and-stats/burgs/[subgroup].vue
Normal file
0
src/pages/charts-and-stats/burgs/[subgroup].vue
Normal file
0
src/pages/charts-and-stats/cultures/[subgroup].vue
Normal file
0
src/pages/charts-and-stats/cultures/[subgroup].vue
Normal file
0
src/pages/charts-and-stats/misc/[subgroup].vue
Normal file
0
src/pages/charts-and-stats/misc/[subgroup].vue
Normal file
0
src/pages/charts-and-stats/provinces/[subgroup].vue
Normal file
0
src/pages/charts-and-stats/provinces/[subgroup].vue
Normal file
0
src/pages/charts-and-stats/religions/[subgroup].vue
Normal file
0
src/pages/charts-and-stats/religions/[subgroup].vue
Normal file
132
src/pages/charts-and-stats/states/[subgroup].vue
Normal file
132
src/pages/charts-and-stats/states/[subgroup].vue
Normal file
@@ -0,0 +1,132 @@
|
||||
<script setup lang="ts">
|
||||
import customChartTooltip from '@/components/charts-and-stats/customChartTooltip.vue';
|
||||
import type { DataForChart } from '@/types/chartsTypes';
|
||||
|
||||
useHead({
|
||||
title: `Garand's WG | Wykresy i statystyki | Państwa`
|
||||
});
|
||||
|
||||
// TODO: przenieść subskrypcję z cache do tego pliku
|
||||
// TODO: dokończyć resztę plików
|
||||
|
||||
const route = useRoute();
|
||||
const group = ref('states');
|
||||
const subgroup = computed(() => route.params.subgroup);
|
||||
|
||||
const chartsSubcategories = computed(
|
||||
() => chartsCategories.filter(category => category.name === group.value)[0].labels
|
||||
);
|
||||
|
||||
const { fetchTurnsData, fetchStatesData } = cacheFullListResponsesStore();
|
||||
|
||||
const cd = storeToRefs(cacheFullListResponsesStore());
|
||||
|
||||
if (!cd.turnsData.value.length) await fetchTurnsData();
|
||||
if (!cd.statesData.value.length) await fetchStatesData();
|
||||
|
||||
const dataForCharts = computed<DataForChart>(() => ({
|
||||
group: group.value,
|
||||
subgroup: subgroup.value,
|
||||
config: dFCh[group.value].config,
|
||||
chart: dFCh[group.value].charts[subgroup.value]
|
||||
}));
|
||||
|
||||
const statesDataItem = cd.statesData.value.filter(
|
||||
item => item.turn === cd.turnsData.value[cd.turnsData.value.length - 2].id
|
||||
);
|
||||
|
||||
dataForCharts.value.config.categories = statesDataItem.map(item => item.name);
|
||||
|
||||
dataForCharts.value.config.colors = statesDataItem[0]?.color
|
||||
? statesDataItem.map(item => item.color)
|
||||
: statesDataItem.map(item => {
|
||||
return cd.statesData.value.find(state => state.id === item.state)?.color || '#000';
|
||||
});
|
||||
|
||||
const { generateChartContent } = useChartData(cd, dataForCharts);
|
||||
|
||||
generateChartContent();
|
||||
|
||||
const chartData = computed(() => {
|
||||
dataForCharts.value.chart = [];
|
||||
generateChartContent();
|
||||
return dataForCharts.value.chart;
|
||||
});
|
||||
|
||||
watch(
|
||||
[cd.turnsData, cd.statesData, cd.provincesData, cd.burgsData, cd.culturesData, cd.religionsData],
|
||||
() => {
|
||||
dataForCharts.value.chart = [];
|
||||
generateChartContent();
|
||||
},
|
||||
{ deep: true }
|
||||
);
|
||||
|
||||
watch([subgroup], () => {
|
||||
dataForCharts.value.chart = [];
|
||||
generateChartContent();
|
||||
});
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="mt-2 flex h-screen flex-col items-center">
|
||||
<NavigationMenu class="max-h-10">
|
||||
<NavigationMenuList>
|
||||
<NavigationMenuItem
|
||||
v-for="category in chartsCategories"
|
||||
:key="category.name"
|
||||
class="mb-4 gap-5"
|
||||
>
|
||||
<NavigationMenuLink :class="navigationMenuTriggerStyle()" class="flex items-center gap-1">
|
||||
<RouterLink
|
||||
:to="`/charts-and-stats/${category.name}/${Object.keys(category.labels)[0]}/`"
|
||||
>
|
||||
{{ category.label }}
|
||||
</RouterLink>
|
||||
</NavigationMenuLink>
|
||||
</NavigationMenuItem>
|
||||
</NavigationMenuList>
|
||||
</NavigationMenu>
|
||||
|
||||
<NavigationMenu class="max-h-10">
|
||||
<NavigationMenuList>
|
||||
<NavigationMenuItem
|
||||
v-for="(subcategory, subcategoryKey) in chartsSubcategories"
|
||||
:key="subcategory"
|
||||
class="gap-5"
|
||||
>
|
||||
<NavigationMenuLink :class="navigationMenuTriggerStyle()" class="flex items-center gap-1">
|
||||
<RouterLink :to="`/charts-and-stats/${group}/${subcategoryKey}/`">
|
||||
{{ subcategory }}
|
||||
</RouterLink>
|
||||
</NavigationMenuLink>
|
||||
</NavigationMenuItem>
|
||||
</NavigationMenuList>
|
||||
</NavigationMenu>
|
||||
|
||||
<Card class="mx-10 w-screen">
|
||||
<CardHeader>
|
||||
<CardTitle class="ps-10 text-primary">
|
||||
{{ chartsCategories.find(config => config.name === group)?.label }}
|
||||
</CardTitle>
|
||||
|
||||
<CardDescription class="flex flex-col ps-10">
|
||||
{{ chartsSubcategories[subgroup] }}
|
||||
</CardDescription>
|
||||
</CardHeader>
|
||||
|
||||
<Separator />
|
||||
|
||||
<CardContent class="space-y-2 overflow-x-auto py-6">
|
||||
<LineChart
|
||||
:categories="dataForCharts.config.categories"
|
||||
index="turn"
|
||||
:colors="dataForCharts.config.colors"
|
||||
:data="chartData"
|
||||
class="mb-3 mt-6 h-[800px]"
|
||||
:custom-tooltip="customChartTooltip"
|
||||
/>
|
||||
</CardContent>
|
||||
</Card>
|
||||
</div>
|
||||
</template>
|
||||
@@ -13,7 +13,7 @@ const { toast } = useToast();
|
||||
>Witaj na <span class="text-primary">Garandowym WG</span>!</h1
|
||||
>
|
||||
|
||||
<p class="mb-4 text-sm">Wersja: <span class="text-primary">0.0.18 Indev</span></p>
|
||||
<p class="mb-4 text-sm">Wersja: <span class="text-primary">0.0.19 Indev</span></p>
|
||||
|
||||
<a
|
||||
href="https://discord.gg/vhBmFVpR3w"
|
||||
|
||||
@@ -6,10 +6,12 @@ import type {
|
||||
StatesResponse,
|
||||
TurnsResponse
|
||||
} from '@/types/pb-types';
|
||||
import type { UnsubscribeFunc } from 'pocketbase';
|
||||
|
||||
const ONE_HOUR = 60 * 60 * 1000; // 1 godzina w milisekundach
|
||||
export const cacheFullListResponsesStore = defineStore('cacheFullListResponsesStore', () => {
|
||||
const pb = usePocketBase();
|
||||
const { toast } = useToast();
|
||||
|
||||
const turnsData = ref<TurnsResponse<unknown>[]>([]);
|
||||
const statesData = ref<StatesResponse<unknown, unknown, unknown, unknown, unknown>[]>([]);
|
||||
@@ -19,7 +21,11 @@ export const cacheFullListResponsesStore = defineStore('cacheFullListResponsesSt
|
||||
const religionsData = ref<ReligionsResponse<unknown>[]>([]);
|
||||
|
||||
const fetchTurnsData = async () => {
|
||||
if (turnsData.value.length && isCached('turnsData')) return turnsData.value;
|
||||
if (isCached('turnsData') && turnsData.value.length) {
|
||||
readCached('turnsData', turnsData);
|
||||
return turnsData.value;
|
||||
}
|
||||
|
||||
try {
|
||||
const data = await pb.collection('turns').getFullList();
|
||||
turnsData.value = data;
|
||||
@@ -35,7 +41,11 @@ export const cacheFullListResponsesStore = defineStore('cacheFullListResponsesSt
|
||||
};
|
||||
|
||||
const fetchStatesData = async () => {
|
||||
if (statesData.value.length && isCached('statesData')) return statesData.value;
|
||||
if (isCached('statesData') && statesData.value.length) {
|
||||
readCached('statesData', statesData);
|
||||
return statesData.value;
|
||||
}
|
||||
|
||||
try {
|
||||
const data = await pb.collection('states').getFullList();
|
||||
statesData.value = data;
|
||||
@@ -51,7 +61,11 @@ export const cacheFullListResponsesStore = defineStore('cacheFullListResponsesSt
|
||||
};
|
||||
|
||||
const fetchProvincesData = async () => {
|
||||
if (provincesData.value.length && isCached('provincesData')) return provincesData.value;
|
||||
if (isCached('provincesData') && provincesData.value.length) {
|
||||
readCached('provincesData', provincesData);
|
||||
return provincesData.value;
|
||||
}
|
||||
|
||||
try {
|
||||
const data = await pb.collection('provinces').getFullList();
|
||||
provincesData.value = data;
|
||||
@@ -67,7 +81,11 @@ export const cacheFullListResponsesStore = defineStore('cacheFullListResponsesSt
|
||||
};
|
||||
|
||||
const fetchBurgsData = async () => {
|
||||
if (burgsData.value.length && isCached('burgsData')) return burgsData.value;
|
||||
if (isCached('burgsData') && burgsData.value.length) {
|
||||
readCached('burgsData', burgsData);
|
||||
return burgsData.value;
|
||||
}
|
||||
|
||||
try {
|
||||
const data = await pb.collection('burgs').getFullList();
|
||||
burgsData.value = data;
|
||||
@@ -83,7 +101,11 @@ export const cacheFullListResponsesStore = defineStore('cacheFullListResponsesSt
|
||||
};
|
||||
|
||||
const fetchCulturesData = async () => {
|
||||
if (culturesData.value.length && isCached('culturesData')) return culturesData.value;
|
||||
if (isCached('culturesData') && culturesData.value.length) {
|
||||
readCached('culturesData', culturesData);
|
||||
return culturesData.value;
|
||||
}
|
||||
|
||||
try {
|
||||
const data = await pb.collection('cultures').getFullList();
|
||||
culturesData.value = data;
|
||||
@@ -99,7 +121,11 @@ export const cacheFullListResponsesStore = defineStore('cacheFullListResponsesSt
|
||||
};
|
||||
|
||||
const fetchReligionsData = async () => {
|
||||
if (religionsData.value.length && isCached('religionsData')) return religionsData.value;
|
||||
if (isCached('religionsData') && religionsData.value.length) {
|
||||
readCached('religionsData', religionsData);
|
||||
return religionsData.value;
|
||||
}
|
||||
|
||||
try {
|
||||
const data = await pb.collection('religions').getFullList();
|
||||
religionsData.value = data;
|
||||
@@ -114,20 +140,176 @@ export const cacheFullListResponsesStore = defineStore('cacheFullListResponsesSt
|
||||
}
|
||||
};
|
||||
|
||||
const cacheData = (key, data) => {
|
||||
const cacheData = (key: string, data: unknown[]) => {
|
||||
const now = new Date().getTime();
|
||||
localStorage.setItem(key, JSON.stringify({ data, timestamp: now }));
|
||||
};
|
||||
|
||||
const isCached = key => {
|
||||
const isCached = (key: string) => {
|
||||
const cachedData = localStorage.getItem(key);
|
||||
if (!cachedData) return false;
|
||||
console.log(cachedData);
|
||||
const { timestamp } = JSON.parse(cachedData);
|
||||
return new Date().getTime() - timestamp < ONE_HOUR;
|
||||
};
|
||||
|
||||
// TODO: Funkcja czytająca z localstorage i wpisująca w fetcha jego zawartość
|
||||
const readCached = (key: string, ref: Ref<unknown[]>) => {
|
||||
const cachedData = localStorage.getItem(key);
|
||||
if (cachedData) {
|
||||
const { data } = JSON.parse(cachedData);
|
||||
ref.value = data;
|
||||
}
|
||||
};
|
||||
|
||||
let turnsSubscription: UnsubscribeFunc;
|
||||
let statesSubscription: UnsubscribeFunc;
|
||||
let provincesSubscription: UnsubscribeFunc;
|
||||
let burgsSubscription: UnsubscribeFunc;
|
||||
let culturesSubscription: UnsubscribeFunc;
|
||||
let religionsSubscription: UnsubscribeFunc;
|
||||
|
||||
onMounted(async () => {
|
||||
turnsSubscription = await pb.collection('turns').subscribe('*', e => {
|
||||
switch (e.action) {
|
||||
case 'create':
|
||||
turnsData.value.push(e.record);
|
||||
cacheData('turnsData', turnsData.value);
|
||||
break;
|
||||
|
||||
case 'update':
|
||||
turnsData.value = turnsData.value.map(turn => {
|
||||
if (turn.id === e.record.id) return e.record;
|
||||
return turn;
|
||||
});
|
||||
cacheData('turnsData', turnsData.value);
|
||||
break;
|
||||
|
||||
case 'delete':
|
||||
turnsData.value = turnsData.value.filter(turn => turn.id !== e.record.id);
|
||||
cacheData('turnsData', turnsData.value);
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
statesSubscription = await pb.collection('states').subscribe('*', e => {
|
||||
switch (e.action) {
|
||||
case 'create':
|
||||
statesData.value.push(e.record);
|
||||
cacheData('statesData', statesData.value);
|
||||
break;
|
||||
|
||||
case 'update':
|
||||
statesData.value = statesData.value.map(state => {
|
||||
if (state.id === e.record.id) return e.record;
|
||||
return state;
|
||||
});
|
||||
cacheData('statesData', statesData.value);
|
||||
break;
|
||||
|
||||
case 'delete':
|
||||
statesData.value = statesData.value.filter(state => state.id !== e.record.id);
|
||||
cacheData('statesData', statesData.value);
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
provincesSubscription = await pb.collection('provinces').subscribe('*', e => {
|
||||
switch (e.action) {
|
||||
case 'create':
|
||||
provincesData.value.push(e.record);
|
||||
cacheData('provincesData', provincesData.value);
|
||||
break;
|
||||
|
||||
case 'update':
|
||||
provincesData.value = provincesData.value.map(province => {
|
||||
if (province.id === e.record.id) return e.record;
|
||||
return province;
|
||||
});
|
||||
cacheData('provincesData', provincesData.value);
|
||||
break;
|
||||
|
||||
case 'delete':
|
||||
provincesData.value = provincesData.value.filter(province => province.id !== e.record.id);
|
||||
cacheData('provincesData', provincesData.value);
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
burgsSubscription = await pb.collection('burgs').subscribe('*', e => {
|
||||
switch (e.action) {
|
||||
case 'create':
|
||||
burgsData.value.push(e.record);
|
||||
cacheData('burgsData', burgsData.value);
|
||||
break;
|
||||
|
||||
case 'update':
|
||||
burgsData.value = burgsData.value.map(burg => {
|
||||
if (burg.id === e.record.id) return e.record;
|
||||
return burg;
|
||||
});
|
||||
cacheData('burgsData', burgsData.value);
|
||||
break;
|
||||
|
||||
case 'delete':
|
||||
burgsData.value = burgsData.value.filter(burg => burg.id !== e.record.id);
|
||||
cacheData('burgsData', burgsData.value);
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
culturesSubscription = await pb.collection('cultures').subscribe('*', e => {
|
||||
switch (e.action) {
|
||||
case 'create':
|
||||
culturesData.value.push(e.record);
|
||||
cacheData('culturesData', culturesData.value);
|
||||
break;
|
||||
|
||||
case 'update':
|
||||
culturesData.value = culturesData.value.map(culture => {
|
||||
if (culture.id === e.record.id) return e.record;
|
||||
return culture;
|
||||
});
|
||||
cacheData('culturesData', culturesData.value);
|
||||
break;
|
||||
|
||||
case 'delete':
|
||||
culturesData.value = culturesData.value.filter(culture => culture.id !== e.record.id);
|
||||
cacheData('culturesData', culturesData.value);
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
religionsSubscription = await pb.collection('religions').subscribe('*', e => {
|
||||
switch (e.action) {
|
||||
case 'create':
|
||||
religionsData.value.push(e.record);
|
||||
cacheData('religionsData', religionsData.value);
|
||||
break;
|
||||
|
||||
case 'update':
|
||||
religionsData.value = religionsData.value.map(religion => {
|
||||
if (religion.id === e.record.id) return e.record;
|
||||
return religion;
|
||||
});
|
||||
cacheData('religionsData', religionsData.value);
|
||||
break;
|
||||
|
||||
case 'delete':
|
||||
religionsData.value = religionsData.value.filter(religion => religion.id !== e.record.id);
|
||||
cacheData('religionsData', religionsData.value);
|
||||
break;
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
onUnmounted(() => {
|
||||
turnsSubscription();
|
||||
statesSubscription();
|
||||
provincesSubscription();
|
||||
burgsSubscription();
|
||||
culturesSubscription();
|
||||
religionsSubscription();
|
||||
});
|
||||
|
||||
// TODO: Subskrypcja in real time aktualizująca localstorage jeżeli się zmieni kolekcja
|
||||
|
||||
return {
|
||||
|
||||
432
src/types/auto-imports.d.ts
vendored
432
src/types/auto-imports.d.ts
vendored
@@ -1,432 +0,0 @@
|
||||
/* eslint-disable */
|
||||
/* prettier-ignore */
|
||||
// @ts-nocheck
|
||||
// noinspection JSUnusedGlobalSymbols
|
||||
// Generated by unplugin-auto-import
|
||||
// biome-ignore lint: disable
|
||||
export {}
|
||||
declare global {
|
||||
const BarChart: (typeof import('../components/ui/chart-bar/index'))['BarChart']
|
||||
const Button: typeof import('../components/ui/button/index')['Button']
|
||||
const Card: typeof import('../components/ui/card/index')['Card']
|
||||
const CardContent: typeof import('../components/ui/card/index')['CardContent']
|
||||
const CardDescription: typeof import('../components/ui/card/index')['CardDescription']
|
||||
const CardFooter: typeof import('../components/ui/card/index')['CardFooter']
|
||||
const CardHeader: typeof import('../components/ui/card/index')['CardHeader']
|
||||
const CardTitle: typeof import('../components/ui/card/index')['CardTitle']
|
||||
const ChartCrosshair: typeof import('../components/ui/chart/index')['ChartCrosshair']
|
||||
const ChartLegend: typeof import('../components/ui/chart/index')['ChartLegend']
|
||||
const ChartSingleTooltip: typeof import('../components/ui/chart/index')['ChartSingleTooltip']
|
||||
const ChartTooltip: typeof import('../components/ui/chart/index')['ChartTooltip']
|
||||
const Dialog: typeof import('../components/ui/dialog/index')['Dialog']
|
||||
const DialogClose: typeof import('../components/ui/dialog/index')['DialogClose']
|
||||
const DialogContent: typeof import('../components/ui/dialog/index')['DialogContent']
|
||||
const DialogDescription: typeof import('../components/ui/dialog/index')['DialogDescription']
|
||||
const DialogFooter: typeof import('../components/ui/dialog/index')['DialogFooter']
|
||||
const DialogHeader: typeof import('../components/ui/dialog/index')['DialogHeader']
|
||||
const DialogScrollContent: typeof import('../components/ui/dialog/index')['DialogScrollContent']
|
||||
const DialogTitle: typeof import('../components/ui/dialog/index')['DialogTitle']
|
||||
const DialogTrigger: typeof import('../components/ui/dialog/index')['DialogTrigger']
|
||||
const DropdownMenu: typeof import('../components/ui/dropdown-menu/index')['DropdownMenu']
|
||||
const DropdownMenuCheckboxItem: typeof import('../components/ui/dropdown-menu/index')['DropdownMenuCheckboxItem']
|
||||
const DropdownMenuContent: typeof import('../components/ui/dropdown-menu/index')['DropdownMenuContent']
|
||||
const DropdownMenuGroup: typeof import('../components/ui/dropdown-menu/index')['DropdownMenuGroup']
|
||||
const DropdownMenuItem: typeof import('../components/ui/dropdown-menu/index')['DropdownMenuItem']
|
||||
const DropdownMenuLabel: typeof import('../components/ui/dropdown-menu/index')['DropdownMenuLabel']
|
||||
const DropdownMenuPortal: typeof import('../components/ui/dropdown-menu/index')['DropdownMenuPortal']
|
||||
const DropdownMenuRadioGroup: typeof import('../components/ui/dropdown-menu/index')['DropdownMenuRadioGroup']
|
||||
const DropdownMenuRadioItem: typeof import('../components/ui/dropdown-menu/index')['DropdownMenuRadioItem']
|
||||
const DropdownMenuSeparator: typeof import('../components/ui/dropdown-menu/index')['DropdownMenuSeparator']
|
||||
const DropdownMenuShortcut: typeof import('../components/ui/dropdown-menu/index')['DropdownMenuShortcut']
|
||||
const DropdownMenuSub: typeof import('../components/ui/dropdown-menu/index')['DropdownMenuSub']
|
||||
const DropdownMenuSubContent: typeof import('../components/ui/dropdown-menu/index')['DropdownMenuSubContent']
|
||||
const DropdownMenuSubTrigger: typeof import('../components/ui/dropdown-menu/index')['DropdownMenuSubTrigger']
|
||||
const DropdownMenuTrigger: typeof import('../components/ui/dropdown-menu/index')['DropdownMenuTrigger']
|
||||
const EffectScope: typeof import('vue')['EffectScope']
|
||||
const FORM_ITEM_INJECTION_KEY: typeof import('../components/ui/form/injectionKeys')['FORM_ITEM_INJECTION_KEY']
|
||||
const Form: typeof import('../components/ui/form/index')['Form']
|
||||
const FormControl: typeof import('../components/ui/form/index')['FormControl']
|
||||
const FormDescription: typeof import('../components/ui/form/index')['FormDescription']
|
||||
const FormField: typeof import('../components/ui/form/index')['FormField']
|
||||
const FormItem: typeof import('../components/ui/form/index')['FormItem']
|
||||
const FormLabel: typeof import('../components/ui/form/index')['FormLabel']
|
||||
const FormMessage: typeof import('../components/ui/form/index')['FormMessage']
|
||||
const Input: typeof import('../components/ui/input/index')['Input']
|
||||
const Label: typeof import('../components/ui/label/index')['Label']
|
||||
const LineChart: typeof import('../components/ui/chart-line/index')['LineChart']
|
||||
const NavigationMenu: typeof import('../components/ui/navigation-menu/index')['NavigationMenu']
|
||||
const NavigationMenuContent: typeof import('../components/ui/navigation-menu/index')['NavigationMenuContent']
|
||||
const NavigationMenuItem: typeof import('../components/ui/navigation-menu/index')['NavigationMenuItem']
|
||||
const NavigationMenuLink: typeof import('../components/ui/navigation-menu/index')['NavigationMenuLink']
|
||||
const NavigationMenuList: typeof import('../components/ui/navigation-menu/index')['NavigationMenuList']
|
||||
const NavigationMenuTrigger: typeof import('../components/ui/navigation-menu/index')['NavigationMenuTrigger']
|
||||
const NumberField: typeof import('../components/ui/number-field/index')['NumberField']
|
||||
const NumberFieldContent: typeof import('../components/ui/number-field/index')['NumberFieldContent']
|
||||
const NumberFieldDecrement: typeof import('../components/ui/number-field/index')['NumberFieldDecrement']
|
||||
const NumberFieldIncrement: typeof import('../components/ui/number-field/index')['NumberFieldIncrement']
|
||||
const NumberFieldInput: typeof import('../components/ui/number-field/index')['NumberFieldInput']
|
||||
const Popover: typeof import('../components/ui/popover/index')['Popover']
|
||||
const PopoverContent: typeof import('../components/ui/popover/index')['PopoverContent']
|
||||
const PopoverTrigger: typeof import('../components/ui/popover/index')['PopoverTrigger']
|
||||
const RadioGroup: typeof import('../components/ui/radio-group/index')['RadioGroup']
|
||||
const RadioGroupItem: typeof import('../components/ui/radio-group/index')['RadioGroupItem']
|
||||
const ResizableHandle: (typeof import('../components/ui/resizable/index'))['ResizableHandle']
|
||||
const ResizablePanel: (typeof import('../components/ui/resizable/index'))['ResizablePanel']
|
||||
const ResizablePanelGroup: (typeof import('../components/ui/resizable/index'))['ResizablePanelGroup']
|
||||
const ScrollArea: typeof import('../components/ui/scroll-area/index')['ScrollArea']
|
||||
const ScrollBar: typeof import('../components/ui/scroll-area/index')['ScrollBar']
|
||||
const Separator: typeof import('../components/ui/separator/index')['Separator']
|
||||
const Switch: typeof import('../components/ui/switch/index')['Switch']
|
||||
const Tabs: typeof import('../components/ui/tabs/index')['Tabs']
|
||||
const TabsContent: typeof import('../components/ui/tabs/index')['TabsContent']
|
||||
const TabsList: typeof import('../components/ui/tabs/index')['TabsList']
|
||||
const TabsTrigger: typeof import('../components/ui/tabs/index')['TabsTrigger']
|
||||
const Toast: typeof import('../components/ui/toast/index')['Toast']
|
||||
const ToastAction: typeof import('../components/ui/toast/index')['ToastAction']
|
||||
const ToastClose: typeof import('../components/ui/toast/index')['ToastClose']
|
||||
const ToastDescription: typeof import('../components/ui/toast/index')['ToastDescription']
|
||||
const ToastProvider: typeof import('../components/ui/toast/index')['ToastProvider']
|
||||
const ToastTitle: typeof import('../components/ui/toast/index')['ToastTitle']
|
||||
const ToastViewport: typeof import('../components/ui/toast/index')['ToastViewport']
|
||||
const Toaster: typeof import('../components/ui/toast/index')['Toaster']
|
||||
const acceptHMRUpdate: typeof import('pinia')['acceptHMRUpdate']
|
||||
const afterAll: typeof import('vitest')['afterAll']
|
||||
const afterEach: typeof import('vitest')['afterEach']
|
||||
const assert: typeof import('vitest')['assert']
|
||||
const asyncComputed: typeof import('@vueuse/core')['asyncComputed']
|
||||
const autoResetRef: typeof import('@vueuse/core')['autoResetRef']
|
||||
const beforeAll: typeof import('vitest')['beforeAll']
|
||||
const beforeEach: typeof import('vitest')['beforeEach']
|
||||
const buttonVariants: typeof import('../components/ui/button/index')['buttonVariants']
|
||||
const cacheFullListResponses: typeof import('../stores/cacheFullListResponsesStore')['cacheFullListResponses']
|
||||
const cacheFullListResponsesStore: typeof import('../stores/cacheFullListResponsesStore')['cacheFullListResponsesStore']
|
||||
const cacheFullListResponsesStores: typeof import('../stores/cacheFullListResponsesStore')['cacheFullListResponsesStores']
|
||||
const chai: typeof import('vitest')['chai']
|
||||
const chartsAndStatsStore: (typeof import('../stores/useCacheFullListResponsesStore'))['chartsAndStatsStore']
|
||||
const computed: typeof import('vue')['computed']
|
||||
const computedAsync: typeof import('@vueuse/core')['computedAsync']
|
||||
const computedEager: typeof import('@vueuse/core')['computedEager']
|
||||
const computedInject: typeof import('@vueuse/core')['computedInject']
|
||||
const computedWithControl: typeof import('@vueuse/core')['computedWithControl']
|
||||
const controlledComputed: typeof import('@vueuse/core')['controlledComputed']
|
||||
const controlledRef: typeof import('@vueuse/core')['controlledRef']
|
||||
const createApp: typeof import('vue')['createApp']
|
||||
const createEventHook: typeof import('@vueuse/core')['createEventHook']
|
||||
const createGlobalState: typeof import('@vueuse/core')['createGlobalState']
|
||||
const createInjectionState: typeof import('@vueuse/core')['createInjectionState']
|
||||
const createPinia: typeof import('pinia')['createPinia']
|
||||
const createReactiveFn: typeof import('@vueuse/core')['createReactiveFn']
|
||||
const createReusableTemplate: typeof import('@vueuse/core')['createReusableTemplate']
|
||||
const createSharedComposable: typeof import('@vueuse/core')['createSharedComposable']
|
||||
const createTemplatePromise: typeof import('@vueuse/core')['createTemplatePromise']
|
||||
const createUnrefFn: typeof import('@vueuse/core')['createUnrefFn']
|
||||
const customRef: typeof import('vue')['customRef']
|
||||
const debouncedRef: typeof import('@vueuse/core')['debouncedRef']
|
||||
const debouncedWatch: typeof import('@vueuse/core')['debouncedWatch']
|
||||
const defaultColors: typeof import('../components/ui/chart/index')['defaultColors']
|
||||
const defineAsyncComponent: typeof import('vue')['defineAsyncComponent']
|
||||
const defineComponent: typeof import('vue')['defineComponent']
|
||||
const defineStore: typeof import('pinia')['defineStore']
|
||||
const describe: typeof import('vitest')['describe']
|
||||
const eagerComputed: typeof import('@vueuse/core')['eagerComputed']
|
||||
const effectScope: typeof import('vue')['effectScope']
|
||||
const expect: typeof import('vitest')['expect']
|
||||
const extendRef: typeof import('@vueuse/core')['extendRef']
|
||||
const getActiveHead: typeof import('@unhead/vue')['getActiveHead']
|
||||
const getActivePinia: typeof import('pinia')['getActivePinia']
|
||||
const getCurrentInstance: typeof import('vue')['getCurrentInstance']
|
||||
const getCurrentScope: typeof import('vue')['getCurrentScope']
|
||||
const h: typeof import('vue')['h']
|
||||
const ignorableWatch: typeof import('@vueuse/core')['ignorableWatch']
|
||||
const inject: typeof import('vue')['inject']
|
||||
const injectHead: typeof import('@unhead/vue')['injectHead']
|
||||
const injectLocal: typeof import('@vueuse/core')['injectLocal']
|
||||
const isDefined: typeof import('@vueuse/core')['isDefined']
|
||||
const isProxy: typeof import('vue')['isProxy']
|
||||
const isReactive: typeof import('vue')['isReactive']
|
||||
const isReadonly: typeof import('vue')['isReadonly']
|
||||
const isRef: typeof import('vue')['isRef']
|
||||
const it: typeof import('vitest')['it']
|
||||
const listenCurrentUser: typeof import('../stores/listenCurrentUseStore')['listenCurrentUser']
|
||||
const listenCurrentUserStore: typeof import('../stores/listenCurrentUseStore')['listenCurrentUserStore']
|
||||
const makeDestructurable: typeof import('@vueuse/core')['makeDestructurable']
|
||||
const mapActions: typeof import('pinia')['mapActions']
|
||||
const mapGetters: typeof import('pinia')['mapGetters']
|
||||
const mapState: typeof import('pinia')['mapState']
|
||||
const mapStores: typeof import('pinia')['mapStores']
|
||||
const mapWritableState: typeof import('pinia')['mapWritableState']
|
||||
const markRaw: typeof import('vue')['markRaw']
|
||||
const navigationMenuTriggerStyle: typeof import('../components/ui/navigation-menu/index')['navigationMenuTriggerStyle']
|
||||
const nextTick: typeof import('vue')['nextTick']
|
||||
const onActivated: typeof import('vue')['onActivated']
|
||||
const onBeforeMount: typeof import('vue')['onBeforeMount']
|
||||
const onBeforeRouteLeave: typeof import('vue-router')['onBeforeRouteLeave']
|
||||
const onBeforeRouteUpdate: typeof import('vue-router')['onBeforeRouteUpdate']
|
||||
const onBeforeUnmount: typeof import('vue')['onBeforeUnmount']
|
||||
const onBeforeUpdate: typeof import('vue')['onBeforeUpdate']
|
||||
const onClickOutside: typeof import('@vueuse/core')['onClickOutside']
|
||||
const onDeactivated: typeof import('vue')['onDeactivated']
|
||||
const onErrorCaptured: typeof import('vue')['onErrorCaptured']
|
||||
const onKeyStroke: typeof import('@vueuse/core')['onKeyStroke']
|
||||
const onLongPress: typeof import('@vueuse/core')['onLongPress']
|
||||
const onMounted: typeof import('vue')['onMounted']
|
||||
const onRenderTracked: typeof import('vue')['onRenderTracked']
|
||||
const onRenderTriggered: typeof import('vue')['onRenderTriggered']
|
||||
const onScopeDispose: typeof import('vue')['onScopeDispose']
|
||||
const onServerPrefetch: typeof import('vue')['onServerPrefetch']
|
||||
const onStartTyping: typeof import('@vueuse/core')['onStartTyping']
|
||||
const onUnmounted: typeof import('vue')['onUnmounted']
|
||||
const onUpdated: typeof import('vue')['onUpdated']
|
||||
const onWatcherCleanup: typeof import('vue')['onWatcherCleanup']
|
||||
const pausableWatch: typeof import('@vueuse/core')['pausableWatch']
|
||||
const provide: typeof import('vue')['provide']
|
||||
const provideLocal: typeof import('@vueuse/core')['provideLocal']
|
||||
const reactify: typeof import('@vueuse/core')['reactify']
|
||||
const reactifyObject: typeof import('@vueuse/core')['reactifyObject']
|
||||
const reactive: typeof import('vue')['reactive']
|
||||
const reactiveComputed: typeof import('@vueuse/core')['reactiveComputed']
|
||||
const reactiveOmit: typeof import('@vueuse/core')['reactiveOmit']
|
||||
const reactivePick: typeof import('@vueuse/core')['reactivePick']
|
||||
const readonly: typeof import('vue')['readonly']
|
||||
const ref: typeof import('vue')['ref']
|
||||
const refAutoReset: typeof import('@vueuse/core')['refAutoReset']
|
||||
const refDebounced: typeof import('@vueuse/core')['refDebounced']
|
||||
const refDefault: typeof import('@vueuse/core')['refDefault']
|
||||
const refThrottled: typeof import('@vueuse/core')['refThrottled']
|
||||
const refWithControl: typeof import('@vueuse/core')['refWithControl']
|
||||
const resolveComponent: typeof import('vue')['resolveComponent']
|
||||
const resolveRef: typeof import('@vueuse/core')['resolveRef']
|
||||
const resolveUnref: typeof import('@vueuse/core')['resolveUnref']
|
||||
const setActivePinia: typeof import('pinia')['setActivePinia']
|
||||
const setMapStoreSuffix: typeof import('pinia')['setMapStoreSuffix']
|
||||
const shallowReactive: typeof import('vue')['shallowReactive']
|
||||
const shallowReadonly: typeof import('vue')['shallowReadonly']
|
||||
const shallowRef: typeof import('vue')['shallowRef']
|
||||
const storeToRefs: typeof import('pinia')['storeToRefs']
|
||||
const suite: typeof import('vitest')['suite']
|
||||
const syncRef: typeof import('@vueuse/core')['syncRef']
|
||||
const syncRefs: typeof import('@vueuse/core')['syncRefs']
|
||||
const templateRef: typeof import('@vueuse/core')['templateRef']
|
||||
const test: typeof import('vitest')['test']
|
||||
const themeColors: (typeof import('../lib/theme-colors'))['default']
|
||||
const themeStore: (typeof import('../stores/useThemeStore'))['themeStore']
|
||||
const throttledRef: typeof import('@vueuse/core')['throttledRef']
|
||||
const throttledWatch: typeof import('@vueuse/core')['throttledWatch']
|
||||
const toRaw: typeof import('vue')['toRaw']
|
||||
const toReactive: typeof import('@vueuse/core')['toReactive']
|
||||
const toRef: typeof import('vue')['toRef']
|
||||
const toRefs: typeof import('vue')['toRefs']
|
||||
const toValue: typeof import('vue')['toValue']
|
||||
const toast: typeof import('../components/ui/toast/use-toast')['toast']
|
||||
const toastVariants: typeof import('../components/ui/toast/index')['toastVariants']
|
||||
const triggerRef: typeof import('vue')['triggerRef']
|
||||
const tryOnBeforeMount: typeof import('@vueuse/core')['tryOnBeforeMount']
|
||||
const tryOnBeforeUnmount: typeof import('@vueuse/core')['tryOnBeforeUnmount']
|
||||
const tryOnMounted: typeof import('@vueuse/core')['tryOnMounted']
|
||||
const tryOnScopeDispose: typeof import('@vueuse/core')['tryOnScopeDispose']
|
||||
const tryOnUnmounted: typeof import('@vueuse/core')['tryOnUnmounted']
|
||||
const unref: typeof import('vue')['unref']
|
||||
const unrefElement: typeof import('@vueuse/core')['unrefElement']
|
||||
const until: typeof import('@vueuse/core')['until']
|
||||
const useActiveElement: typeof import('@vueuse/core')['useActiveElement']
|
||||
const useAnimate: typeof import('@vueuse/core')['useAnimate']
|
||||
const useArrayDifference: typeof import('@vueuse/core')['useArrayDifference']
|
||||
const useArrayEvery: typeof import('@vueuse/core')['useArrayEvery']
|
||||
const useArrayFilter: typeof import('@vueuse/core')['useArrayFilter']
|
||||
const useArrayFind: typeof import('@vueuse/core')['useArrayFind']
|
||||
const useArrayFindIndex: typeof import('@vueuse/core')['useArrayFindIndex']
|
||||
const useArrayFindLast: typeof import('@vueuse/core')['useArrayFindLast']
|
||||
const useArrayIncludes: typeof import('@vueuse/core')['useArrayIncludes']
|
||||
const useArrayJoin: typeof import('@vueuse/core')['useArrayJoin']
|
||||
const useArrayMap: typeof import('@vueuse/core')['useArrayMap']
|
||||
const useArrayReduce: typeof import('@vueuse/core')['useArrayReduce']
|
||||
const useArraySome: typeof import('@vueuse/core')['useArraySome']
|
||||
const useArrayUnique: typeof import('@vueuse/core')['useArrayUnique']
|
||||
const useAsyncQueue: typeof import('@vueuse/core')['useAsyncQueue']
|
||||
const useAsyncState: typeof import('@vueuse/core')['useAsyncState']
|
||||
const useAttrs: typeof import('vue')['useAttrs']
|
||||
const useBase64: typeof import('@vueuse/core')['useBase64']
|
||||
const useBattery: typeof import('@vueuse/core')['useBattery']
|
||||
const useBluetooth: typeof import('@vueuse/core')['useBluetooth']
|
||||
const useBreakpoints: typeof import('@vueuse/core')['useBreakpoints']
|
||||
const useBroadcastChannel: typeof import('@vueuse/core')['useBroadcastChannel']
|
||||
const useBrowserLocation: typeof import('@vueuse/core')['useBrowserLocation']
|
||||
const useCacheStore: (typeof import('../stores/useCacheFullListResponsesStore'))['useCacheStore']
|
||||
const useCached: typeof import('@vueuse/core')['useCached']
|
||||
const useChartsAndStatsStore: (typeof import('../stores/useCacheFullListResponsesStore'))['useChartsAndStatsStore']
|
||||
const useClipboard: typeof import('@vueuse/core')['useClipboard']
|
||||
const useClipboardItems: typeof import('@vueuse/core')['useClipboardItems']
|
||||
const useCloned: typeof import('@vueuse/core')['useCloned']
|
||||
const useColorMode: typeof import('@vueuse/core')['useColorMode']
|
||||
const useConfirmDialog: typeof import('@vueuse/core')['useConfirmDialog']
|
||||
const useCounter: typeof import('@vueuse/core')['useCounter']
|
||||
const useCssModule: typeof import('vue')['useCssModule']
|
||||
const useCssVar: typeof import('@vueuse/core')['useCssVar']
|
||||
const useCssVars: typeof import('vue')['useCssVars']
|
||||
const useCurrentElement: typeof import('@vueuse/core')['useCurrentElement']
|
||||
const useCycleList: typeof import('@vueuse/core')['useCycleList']
|
||||
const useDark: typeof import('@vueuse/core')['useDark']
|
||||
const useDataStore: (typeof import('../stores/useCacheFullListResponsesStore'))['useDataStore']
|
||||
const useDateFormat: typeof import('@vueuse/core')['useDateFormat']
|
||||
const useDebounce: typeof import('@vueuse/core')['useDebounce']
|
||||
const useDebounceFn: typeof import('@vueuse/core')['useDebounceFn']
|
||||
const useDebouncedRefHistory: typeof import('@vueuse/core')['useDebouncedRefHistory']
|
||||
const useDeviceMotion: typeof import('@vueuse/core')['useDeviceMotion']
|
||||
const useDeviceOrientation: typeof import('@vueuse/core')['useDeviceOrientation']
|
||||
const useDevicePixelRatio: typeof import('@vueuse/core')['useDevicePixelRatio']
|
||||
const useDevicesList: typeof import('@vueuse/core')['useDevicesList']
|
||||
const useDisplayMedia: typeof import('@vueuse/core')['useDisplayMedia']
|
||||
const useDocumentVisibility: typeof import('@vueuse/core')['useDocumentVisibility']
|
||||
const useDraggable: typeof import('@vueuse/core')['useDraggable']
|
||||
const useDropZone: typeof import('@vueuse/core')['useDropZone']
|
||||
const useElementBounding: typeof import('@vueuse/core')['useElementBounding']
|
||||
const useElementByPoint: typeof import('@vueuse/core')['useElementByPoint']
|
||||
const useElementHover: typeof import('@vueuse/core')['useElementHover']
|
||||
const useElementSize: typeof import('@vueuse/core')['useElementSize']
|
||||
const useElementVisibility: typeof import('@vueuse/core')['useElementVisibility']
|
||||
const useEventBus: typeof import('@vueuse/core')['useEventBus']
|
||||
const useEventListener: typeof import('@vueuse/core')['useEventListener']
|
||||
const useEventSource: typeof import('@vueuse/core')['useEventSource']
|
||||
const useEyeDropper: typeof import('@vueuse/core')['useEyeDropper']
|
||||
const useFavicon: typeof import('@vueuse/core')['useFavicon']
|
||||
const useFetch: typeof import('@vueuse/core')['useFetch']
|
||||
const useFileDialog: typeof import('@vueuse/core')['useFileDialog']
|
||||
const useFileSystemAccess: typeof import('@vueuse/core')['useFileSystemAccess']
|
||||
const useFocus: typeof import('@vueuse/core')['useFocus']
|
||||
const useFocusWithin: typeof import('@vueuse/core')['useFocusWithin']
|
||||
const useFormField: typeof import('../components/ui/form/useFormField')['useFormField']
|
||||
const useFps: typeof import('@vueuse/core')['useFps']
|
||||
const useFullscreen: typeof import('@vueuse/core')['useFullscreen']
|
||||
const useGamepad: typeof import('@vueuse/core')['useGamepad']
|
||||
const useGeolocation: typeof import('@vueuse/core')['useGeolocation']
|
||||
const useHead: typeof import('@unhead/vue')['useHead']
|
||||
const useHeadSafe: typeof import('@unhead/vue')['useHeadSafe']
|
||||
const useId: typeof import('vue')['useId']
|
||||
const useIdle: typeof import('@vueuse/core')['useIdle']
|
||||
const useImage: typeof import('@vueuse/core')['useImage']
|
||||
const useInfiniteScroll: typeof import('@vueuse/core')['useInfiniteScroll']
|
||||
const useIntersectionObserver: typeof import('@vueuse/core')['useIntersectionObserver']
|
||||
const useInterval: typeof import('@vueuse/core')['useInterval']
|
||||
const useIntervalFn: typeof import('@vueuse/core')['useIntervalFn']
|
||||
const useKeyModifier: typeof import('@vueuse/core')['useKeyModifier']
|
||||
const useLastChanged: typeof import('@vueuse/core')['useLastChanged']
|
||||
const useLink: typeof import('vue-router')['useLink']
|
||||
const useLocalStorage: typeof import('@vueuse/core')['useLocalStorage']
|
||||
const useMagicKeys: typeof import('@vueuse/core')['useMagicKeys']
|
||||
const useManualRefHistory: typeof import('@vueuse/core')['useManualRefHistory']
|
||||
const useMediaControls: typeof import('@vueuse/core')['useMediaControls']
|
||||
const useMediaQuery: typeof import('@vueuse/core')['useMediaQuery']
|
||||
const useMemoize: typeof import('@vueuse/core')['useMemoize']
|
||||
const useMemory: typeof import('@vueuse/core')['useMemory']
|
||||
const useModel: typeof import('vue')['useModel']
|
||||
const useMounted: typeof import('@vueuse/core')['useMounted']
|
||||
const useMouse: typeof import('@vueuse/core')['useMouse']
|
||||
const useMouseInElement: typeof import('@vueuse/core')['useMouseInElement']
|
||||
const useMousePressed: typeof import('@vueuse/core')['useMousePressed']
|
||||
const useMutationObserver: typeof import('@vueuse/core')['useMutationObserver']
|
||||
const useNavigatorLanguage: typeof import('@vueuse/core')['useNavigatorLanguage']
|
||||
const useNetwork: typeof import('@vueuse/core')['useNetwork']
|
||||
const useNow: typeof import('@vueuse/core')['useNow']
|
||||
const useObjectUrl: typeof import('@vueuse/core')['useObjectUrl']
|
||||
const useOffsetPagination: typeof import('@vueuse/core')['useOffsetPagination']
|
||||
const useOnline: typeof import('@vueuse/core')['useOnline']
|
||||
const usePageLeave: typeof import('@vueuse/core')['usePageLeave']
|
||||
const useParallax: typeof import('@vueuse/core')['useParallax']
|
||||
const useParentElement: typeof import('@vueuse/core')['useParentElement']
|
||||
const usePerformanceObserver: typeof import('@vueuse/core')['usePerformanceObserver']
|
||||
const usePermission: typeof import('@vueuse/core')['usePermission']
|
||||
const usePocketBase: typeof import('../composables/usePocketBase')['default']
|
||||
const usePointer: typeof import('@vueuse/core')['usePointer']
|
||||
const usePointerLock: typeof import('@vueuse/core')['usePointerLock']
|
||||
const usePointerSwipe: typeof import('@vueuse/core')['usePointerSwipe']
|
||||
const usePreferredColorScheme: typeof import('@vueuse/core')['usePreferredColorScheme']
|
||||
const usePreferredContrast: typeof import('@vueuse/core')['usePreferredContrast']
|
||||
const usePreferredDark: typeof import('@vueuse/core')['usePreferredDark']
|
||||
const usePreferredLanguages: typeof import('@vueuse/core')['usePreferredLanguages']
|
||||
const usePreferredReducedMotion: typeof import('@vueuse/core')['usePreferredReducedMotion']
|
||||
const usePrevious: typeof import('@vueuse/core')['usePrevious']
|
||||
const useRafFn: typeof import('@vueuse/core')['useRafFn']
|
||||
const useRefHistory: typeof import('@vueuse/core')['useRefHistory']
|
||||
const useResizeObserver: typeof import('@vueuse/core')['useResizeObserver']
|
||||
const useRoute: typeof import('vue-router')['useRoute']
|
||||
const useRouter: typeof import('vue-router')['useRouter']
|
||||
const useScreenOrientation: typeof import('@vueuse/core')['useScreenOrientation']
|
||||
const useScreenSafeArea: typeof import('@vueuse/core')['useScreenSafeArea']
|
||||
const useScriptTag: typeof import('@vueuse/core')['useScriptTag']
|
||||
const useScroll: typeof import('@vueuse/core')['useScroll']
|
||||
const useScrollLock: typeof import('@vueuse/core')['useScrollLock']
|
||||
const useSeoMeta: typeof import('@unhead/vue')['useSeoMeta']
|
||||
const useServerHead: typeof import('@unhead/vue')['useServerHead']
|
||||
const useServerHeadSafe: typeof import('@unhead/vue')['useServerHeadSafe']
|
||||
const useServerSeoMeta: typeof import('@unhead/vue')['useServerSeoMeta']
|
||||
const useSessionStorage: typeof import('@vueuse/core')['useSessionStorage']
|
||||
const useShare: typeof import('@vueuse/core')['useShare']
|
||||
const useSlots: typeof import('vue')['useSlots']
|
||||
const useSorted: typeof import('@vueuse/core')['useSorted']
|
||||
const useSpeechRecognition: typeof import('@vueuse/core')['useSpeechRecognition']
|
||||
const useSpeechSynthesis: typeof import('@vueuse/core')['useSpeechSynthesis']
|
||||
const useStepper: typeof import('@vueuse/core')['useStepper']
|
||||
const useStorage: typeof import('@vueuse/core')['useStorage']
|
||||
const useStorageAsync: typeof import('@vueuse/core')['useStorageAsync']
|
||||
const useStyleTag: typeof import('@vueuse/core')['useStyleTag']
|
||||
const useSupported: typeof import('@vueuse/core')['useSupported']
|
||||
const useSwipe: typeof import('@vueuse/core')['useSwipe']
|
||||
const useTemplateRef: typeof import('vue')['useTemplateRef']
|
||||
const useTemplateRefsList: typeof import('@vueuse/core')['useTemplateRefsList']
|
||||
const useTextDirection: typeof import('@vueuse/core')['useTextDirection']
|
||||
const useTextSelection: typeof import('@vueuse/core')['useTextSelection']
|
||||
const useTextareaAutosize: typeof import('@vueuse/core')['useTextareaAutosize']
|
||||
const useThemeStore: typeof import('../stores/themeStore')['useThemeStore']
|
||||
const useThrottle: typeof import('@vueuse/core')['useThrottle']
|
||||
const useThrottleFn: typeof import('@vueuse/core')['useThrottleFn']
|
||||
const useThrottledRefHistory: typeof import('@vueuse/core')['useThrottledRefHistory']
|
||||
const useTimeAgo: typeof import('@vueuse/core')['useTimeAgo']
|
||||
const useTimeout: typeof import('@vueuse/core')['useTimeout']
|
||||
const useTimeoutFn: typeof import('@vueuse/core')['useTimeoutFn']
|
||||
const useTimeoutPoll: typeof import('@vueuse/core')['useTimeoutPoll']
|
||||
const useTimestamp: typeof import('@vueuse/core')['useTimestamp']
|
||||
const useTitle: typeof import('@vueuse/core')['useTitle']
|
||||
const useToNumber: typeof import('@vueuse/core')['useToNumber']
|
||||
const useToString: typeof import('@vueuse/core')['useToString']
|
||||
const useToast: typeof import('../components/ui/toast/use-toast')['useToast']
|
||||
const useToggle: typeof import('@vueuse/core')['useToggle']
|
||||
const useTransition: typeof import('@vueuse/core')['useTransition']
|
||||
const useUrlSearchParams: typeof import('@vueuse/core')['useUrlSearchParams']
|
||||
const useUserMedia: typeof import('@vueuse/core')['useUserMedia']
|
||||
const useVModel: typeof import('@vueuse/core')['useVModel']
|
||||
const useVModels: typeof import('@vueuse/core')['useVModels']
|
||||
const useVibrate: typeof import('@vueuse/core')['useVibrate']
|
||||
const useVirtualList: typeof import('@vueuse/core')['useVirtualList']
|
||||
const useWakeLock: typeof import('@vueuse/core')['useWakeLock']
|
||||
const useWebNotification: typeof import('@vueuse/core')['useWebNotification']
|
||||
const useWebSocket: typeof import('@vueuse/core')['useWebSocket']
|
||||
const useWebWorker: typeof import('@vueuse/core')['useWebWorker']
|
||||
const useWebWorkerFn: typeof import('@vueuse/core')['useWebWorkerFn']
|
||||
const useWindowFocus: typeof import('@vueuse/core')['useWindowFocus']
|
||||
const useWindowScroll: typeof import('@vueuse/core')['useWindowScroll']
|
||||
const useWindowSize: typeof import('@vueuse/core')['useWindowSize']
|
||||
const vi: typeof import('vitest')['vi']
|
||||
const vitest: typeof import('vitest')['vitest']
|
||||
const watch: typeof import('vue')['watch']
|
||||
const watchArray: typeof import('@vueuse/core')['watchArray']
|
||||
const watchAtMost: typeof import('@vueuse/core')['watchAtMost']
|
||||
const watchDebounced: typeof import('@vueuse/core')['watchDebounced']
|
||||
const watchDeep: typeof import('@vueuse/core')['watchDeep']
|
||||
const watchEffect: typeof import('vue')['watchEffect']
|
||||
const watchIgnorable: typeof import('@vueuse/core')['watchIgnorable']
|
||||
const watchImmediate: typeof import('@vueuse/core')['watchImmediate']
|
||||
const watchOnce: typeof import('@vueuse/core')['watchOnce']
|
||||
const watchPausable: typeof import('@vueuse/core')['watchPausable']
|
||||
const watchPostEffect: typeof import('vue')['watchPostEffect']
|
||||
const watchSyncEffect: typeof import('vue')['watchSyncEffect']
|
||||
const watchThrottled: typeof import('@vueuse/core')['watchThrottled']
|
||||
const watchTriggerable: typeof import('@vueuse/core')['watchTriggerable']
|
||||
const watchWithFilter: typeof import('@vueuse/core')['watchWithFilter']
|
||||
const whenever: typeof import('@vueuse/core')['whenever']
|
||||
}
|
||||
// for type re-export
|
||||
declare global {
|
||||
// @ts-ignore
|
||||
export type { Component, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue'
|
||||
import('vue')
|
||||
}
|
||||
78
src/types/chartsTypes.d.ts
vendored
Normal file
78
src/types/chartsTypes.d.ts
vendored
Normal file
@@ -0,0 +1,78 @@
|
||||
export interface DataForCharts {
|
||||
states: {
|
||||
config: ChartConfig;
|
||||
charts: StatesCharts;
|
||||
};
|
||||
provinces: {
|
||||
config: ChartConfig;
|
||||
charts: ProvincesCharts;
|
||||
};
|
||||
burgs: {
|
||||
config: ChartConfig;
|
||||
charts: BurgsCharts;
|
||||
};
|
||||
cultures: {
|
||||
config: ChartConfig;
|
||||
charts: CulturesCharts;
|
||||
};
|
||||
religions: {
|
||||
config: ChartConfig;
|
||||
charts: ReligionsCharts;
|
||||
};
|
||||
misc: {
|
||||
config: ChartConfig;
|
||||
charts: MiscCharts;
|
||||
};
|
||||
}
|
||||
|
||||
export interface DataForChart {
|
||||
group: string;
|
||||
subgroup: globalThis.ComputedRef<any>;
|
||||
config: ChartConfig;
|
||||
chart: ChartData[];
|
||||
}
|
||||
|
||||
export interface ChartData {
|
||||
turn: number;
|
||||
[key: string]: number;
|
||||
}
|
||||
|
||||
export interface ChartConfig {
|
||||
categories: string[];
|
||||
colors: string[];
|
||||
}
|
||||
|
||||
export interface StatesCharts {
|
||||
burgs: ChartData[];
|
||||
provinces: ChartData[];
|
||||
cells: ChartData[];
|
||||
ruralPopulation: ChartData[];
|
||||
urbanPopulation: ChartData[];
|
||||
}
|
||||
|
||||
export interface ProvincesCharts {
|
||||
burgs: ChartData[];
|
||||
cells: ChartData[];
|
||||
ruralPopulation: ChartData[];
|
||||
urbanPopulation: ChartData[];
|
||||
}
|
||||
|
||||
export interface BurgsCharts {
|
||||
population: ChartData[];
|
||||
}
|
||||
|
||||
export interface CulturesCharts {
|
||||
cells: ChartData[];
|
||||
population: ChartData[];
|
||||
burgs: ChartData[];
|
||||
}
|
||||
|
||||
export interface ReligionsCharts {
|
||||
cells: ChartData[];
|
||||
population: ChartData[];
|
||||
burgs: ChartData[];
|
||||
}
|
||||
|
||||
export interface MiscCharts {
|
||||
features: ChartData[];
|
||||
}
|
||||
@@ -1,62 +0,0 @@
|
||||
interface DataForCharts {
|
||||
states: {
|
||||
config: Config;
|
||||
charts: {
|
||||
burgs: ChartData[];
|
||||
provinces: ChartData[];
|
||||
cells: ChartData[];
|
||||
ruralPopulation: ChartData[];
|
||||
urbanPopulation: ChartData[];
|
||||
};
|
||||
};
|
||||
provinces: {
|
||||
config: Config;
|
||||
charts: {
|
||||
burgs: ChartData[];
|
||||
cells: ChartData[];
|
||||
ruralPopulation: ChartData[];
|
||||
urbanPopulation: ChartData[];
|
||||
};
|
||||
};
|
||||
burgs: {
|
||||
config: Config;
|
||||
charts: {
|
||||
population: ChartData[];
|
||||
// features: ChartData[];
|
||||
};
|
||||
};
|
||||
cultures: {
|
||||
config: Config;
|
||||
charts: {
|
||||
cells: ChartData[];
|
||||
population: ChartData[];
|
||||
burgs: ChartData[];
|
||||
};
|
||||
};
|
||||
religions: {
|
||||
config: Config;
|
||||
charts: {
|
||||
cells: ChartData[];
|
||||
population: ChartData[];
|
||||
burgs: ChartData[];
|
||||
};
|
||||
};
|
||||
misc: {
|
||||
config: Config;
|
||||
charts: {
|
||||
features: ChartData[];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
interface ChartData {
|
||||
turn: number;
|
||||
[key: string]: number;
|
||||
}
|
||||
|
||||
interface Config {
|
||||
categories: string[];
|
||||
colors: string[];
|
||||
}
|
||||
|
||||
export type { ChartData, Config, DataForCharts };
|
||||
@@ -4,11 +4,12 @@
|
||||
"env.d.ts",
|
||||
"src/**/*",
|
||||
"src/**/*.vue",
|
||||
"src/types/auto-imports.d.ts",
|
||||
"src/types/components.d.ts",
|
||||
"src/types/typed-router.d.ts",
|
||||
"src/auto-types/auto-imports.d.ts",
|
||||
"src/auto-types/components.d.ts",
|
||||
"src/auto-types/typed-router.d.ts",
|
||||
"src/types/pb-types.ts",
|
||||
"src/types/theme-types.d.ts"
|
||||
"src/types/theme-types.d.ts",
|
||||
"src/types/chartsTypes.d.ts"
|
||||
],
|
||||
"exclude": ["src/**/__tests__/*"],
|
||||
"compilerOptions": {
|
||||
@@ -21,7 +22,12 @@
|
||||
"baseUrl": ".",
|
||||
"paths": {
|
||||
"@/*": ["./src/*"]
|
||||
}
|
||||
},
|
||||
"typeRoots": ["./node_modules/@types"]
|
||||
},
|
||||
"files": ["./src/types/auto-imports.d.ts", "./src/types/components.d.ts"]
|
||||
"files": [
|
||||
"src/auto-types/auto-imports.d.ts",
|
||||
"src/auto-types/components.d.ts",
|
||||
"src/auto-types/typed-router.d.ts"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -16,14 +16,18 @@ import tailwind from 'tailwindcss';
|
||||
export default defineConfig({
|
||||
plugins: [
|
||||
VueRouter({
|
||||
dts: './src/types/typed-router.d.ts',
|
||||
dts: './src/auto-types/typed-router.d.ts',
|
||||
importMode: 'async'
|
||||
}),
|
||||
vue(),
|
||||
vueDevTools(),
|
||||
AutoImport({
|
||||
dts: './types/auto-imports.d.ts',
|
||||
dirs: ['./composables', './stores', './components/ui/**/*.ts'],
|
||||
include: [
|
||||
/\.(d\.ts|[tj]sx?)$/, // .ts, .tsx, .js, .jsx
|
||||
/\.vue$/,
|
||||
/\.vue\?vue/, // .vue
|
||||
/\.md$/ // .md
|
||||
],
|
||||
imports: [
|
||||
'vue',
|
||||
'vue-router',
|
||||
@@ -32,13 +36,23 @@ export default defineConfig({
|
||||
'vitest',
|
||||
unheadVueComposablesImports
|
||||
],
|
||||
dirs: [
|
||||
'./composables',
|
||||
'./stores',
|
||||
'./components/ui/**/*.ts',
|
||||
'./data',
|
||||
'./types',
|
||||
'./auto-types'
|
||||
],
|
||||
dts: './auto-types/auto-imports.d.ts',
|
||||
vueTemplate: true,
|
||||
eslintrc: {
|
||||
enabled: true
|
||||
},
|
||||
packagePresets: ['pocketbase']
|
||||
}),
|
||||
Components({
|
||||
dts: './types/components.d.ts',
|
||||
dts: './auto-types/components.d.ts',
|
||||
dirs: ['./components/**'],
|
||||
directoryAsNamespace: true,
|
||||
collapseSamePrefixes: true,
|
||||
|
||||
Reference in New Issue
Block a user