diff --git a/.env b/.env new file mode 100644 index 0000000000000000000000000000000000000000..344bfda14acfa04a04c251729369a2df541bcacd --- /dev/null +++ b/.env @@ -0,0 +1,3 @@ +VITE_SUPABASE_URL=https://wrwwvdgppriodcdoyohp.supabase.co +VITE_SUPABASE_ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Indyd3d2ZGdwcHJpb2RjZG95b2hwIiwicm9sZSI6ImFub24iLCJpYXQiOjE3MjM3OTc1NzQsImV4cCI6MjAzOTM3MzU3NH0.ttfp3RHEgJIwF8fC-iUx2BmfxB_T-NqNeQCxycMqCDs +VITE_SUPABASE_ACCESS_TOKEN=sbp_cc9798115cb71d087e9b6774a35ba5c6ab866c9f \ No newline at end of file diff --git a/components.d.ts b/components.d.ts index 213ab65a4e6fa8ad0a32994eb6e65050d68bc5d9..c0b700716c6ce387b98b7d5d83db79150ecdc8e9 100644 --- a/components.d.ts +++ b/components.d.ts @@ -10,19 +10,29 @@ declare module 'vue' { Avatar: typeof import('primevue/avatar')['default'] Button: typeof import('primevue/button')['default'] CreateEntityMenu: typeof import('./src/components/CreateEntityMenu.vue')['default'] + Dialog: typeof import('primevue/dialog')['default'] Divider: typeof import('primevue/divider')['default'] Drawer: typeof import('primevue/drawer')['default'] - EditImageEntityMenu: typeof import('./src/components/EditImageEntityMenu.vue')['default'] - ImageItem: typeof import('./src/components/entities/ImageItem.vue')['default'] + ImageItem: typeof import('@/modules/entities/ImageItem.vue')['default'] + ImageMoveMenu: typeof import('./src/components/editEntityMenu/ImageMoveMenu.vue')['default'] + ImageSizeMenu: typeof import('./src/components/editEntityMenu/ImageSizeMenu.vue')['default'] + ImageStateMenu: typeof import('./src/components/editEntityMenu/ImageStateMenu.vue')['default'] LogoAndLabel: typeof import('./src/components/LogoAndLabel.vue')['default'] - MoveMenu: typeof import('./src/components/editEntityMenus/text/MoveMenu.vue')['default'] + MoveImageMenu: typeof import('./src/components/editEntityMenu/image/MoveImageMenu.vue')['default'] + MoveMenu: typeof import('./src/components/editEntityMenu/text/MoveMenu.vue')['default'] + MoveTextMenu: typeof import('./src/components/editEntityMenu/text/MoveTextMenu.vue')['default'] RouterLink: typeof import('vue-router')['RouterLink'] RouterView: typeof import('vue-router')['RouterView'] SpeedDial: typeof import('primevue/speeddial')['default'] Splitter: typeof import('primevue/splitter')['default'] SplitterPanel: typeof import('primevue/splitterpanel')['default'] - StateMenu: typeof import('./src/components/editEntityMenus/text/StateMenu.vue')['default'] - TextItem: typeof import('./src/components/entities/TextItem.vue')['default'] + StateImageMenu: typeof import('./src/components/editEntityMenu/image/StateImageMenu.vue')['default'] + StateMenu: typeof import('./src/components/editEntityMenu/text/StateMenu.vue')['default'] + StateTextMenu: typeof import('./src/components/editEntityMenu/text/StateTextMenu.vue')['default'] + TextItem: typeof import('@/modules/entities/TextItem.vue')['default'] + TextMoveMenu: typeof import('./src/components/editEntityMenu/TextMoveMenu.vue')['default'] + TextStateMenu: typeof import('./src/components/editEntityMenu/TextStateMenu.vue')['default'] + Toast: typeof import('primevue/toast')['default'] Tree: typeof import('primevue/tree')['default'] UserInfoHeaderWithSettings: typeof import('./src/components/UserInfoHeaderWithSettings.vue')['default'] } diff --git a/env.d.ts b/env.d.ts index 11f02fe2a0061d6e6e1f271b21da95423b448b32..910435b463b19b55228ca6e4d77b9d0213ee30f8 100644 --- a/env.d.ts +++ b/env.d.ts @@ -1 +1,2 @@ /// +// npx tailwindcss -i ./src/input.css -o ./src/output.css --watch diff --git a/index.html b/index.html index d1c0ae6b8441c103fb74237dd006bd11b827b6ad..7a0abe949abb1b37b2ceca8345a6551bd0c1e3db 100644 --- a/index.html +++ b/index.html @@ -9,6 +9,6 @@
- + \ No newline at end of file diff --git a/package.json b/package.json index 15be68437e82dca77bc43ba3806ab559e7188210..131c67df188266078267b40d77bde9d730589760 100644 --- a/package.json +++ b/package.json @@ -14,9 +14,10 @@ }, "dependencies": { "@primevue/themes": "^4.0.4", - "@vueuse/components": "^10.11.1", + "@supabase/supabase-js": "^2.45.1", "@vueuse/core": "^10.11.0", "@vueuse/integrations": "^10.11.0", + "cropperjs": "^1.6.2", "pinia": "^2.1.7", "primeicons": "^7.0.0", "primevue": "^4.0.4", @@ -24,6 +25,7 @@ "universal-cookie": "^7", "uuid": "^10.0.0", "vue": "^3.4.29", + "vue-advanced-cropper": "^2.8.9", "vue-router": "^4.3.3" }, "devDependencies": { @@ -36,6 +38,7 @@ "@vue/eslint-config-prettier": "^9.0.0", "@vue/eslint-config-typescript": "^13.0.0", "@vue/tsconfig": "^0.5.1", + "cost-of-modules": "^1.0.1", "eslint": "^8.57.0", "eslint-plugin-vue": "^9.23.0", "npm-run-all2": "^6.2.0", diff --git a/src/App.vue b/src/app/App.vue similarity index 71% rename from src/App.vue rename to src/app/App.vue index df298a2f11b3e8ede53c033d188615b659efdd2e..26bfa004a56c37378f5b75fd58ea71514ae507dc 100644 --- a/src/App.vue +++ b/src/app/App.vue @@ -1,13 +1,13 @@ diff --git a/src/assets/ShelfNote.svg b/src/app/assets/ShelfNote.svg similarity index 100% rename from src/assets/ShelfNote.svg rename to src/app/assets/ShelfNote.svg diff --git a/src/assets/main.css b/src/app/assets/main.css similarity index 100% rename from src/assets/main.css rename to src/app/assets/main.css diff --git a/src/app/auto-imports.d.ts b/src/app/auto-imports.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..07ab7b9a30efbaa1b1306ef5dbcca4153ce2d09b --- /dev/null +++ b/src/app/auto-imports.d.ts @@ -0,0 +1,89 @@ +/* eslint-disable */ +/* prettier-ignore */ +// @ts-nocheck +// noinspection JSUnusedGlobalSymbols +// Generated by unplugin-auto-import +export {} +declare global { + const EffectScope: (typeof import('vue'))['EffectScope']; + const [alias]: (typeof import('[package-name]'))['[from]']; + const axios: (typeof import('axios'))['default']; + const computed: (typeof import('vue'))['computed']; + const createApp: (typeof import('vue'))['createApp']; + const customRef: (typeof import('vue'))['customRef']; + const defineAsyncComponent: (typeof import('vue'))['defineAsyncComponent']; + const defineComponent: (typeof import('vue'))['defineComponent']; + const effectScope: (typeof import('vue'))['effectScope']; + const getCurrentInstance: (typeof import('vue'))['getCurrentInstance']; + const getCurrentScope: (typeof import('vue'))['getCurrentScope']; + const h: (typeof import('vue'))['h']; + const inject: (typeof import('vue'))['inject']; + 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 markRaw: (typeof import('vue'))['markRaw']; + 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 onDeactivated: (typeof import('vue'))['onDeactivated']; + const onErrorCaptured: (typeof import('vue'))['onErrorCaptured']; + 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 onUnmounted: (typeof import('vue'))['onUnmounted']; + const onUpdated: (typeof import('vue'))['onUpdated']; + const provide: (typeof import('vue'))['provide']; + const reactive: (typeof import('vue'))['reactive']; + const readonly: (typeof import('vue'))['readonly']; + const ref: (typeof import('vue'))['ref']; + const resolveComponent: (typeof import('vue'))['resolveComponent']; + const shallowReactive: (typeof import('vue'))['shallowReactive']; + const shallowReadonly: (typeof import('vue'))['shallowReadonly']; + const shallowRef: (typeof import('vue'))['shallowRef']; + const toRaw: (typeof import('vue'))['toRaw']; + const toRef: (typeof import('vue'))['toRef']; + const toRefs: (typeof import('vue'))['toRefs']; + const toValue: (typeof import('vue'))['toValue']; + const triggerRef: (typeof import('vue'))['triggerRef']; + const unref: (typeof import('vue'))['unref']; + const useAttrs: (typeof import('vue'))['useAttrs']; + const useCssModule: (typeof import('vue'))['useCssModule']; + const useCssVars: (typeof import('vue'))['useCssVars']; + const useLink: (typeof import('vue-router'))['useLink']; + const useMyFetch: (typeof import('@vueuse/core'))['useFetch']; + const useRoute: (typeof import('vue-router'))['useRoute']; + const useRouter: (typeof import('vue-router'))['useRouter']; + const useSlots: (typeof import('vue'))['useSlots']; + const watch: (typeof import('vue'))['watch']; + const watchEffect: (typeof import('vue'))['watchEffect']; + const watchPostEffect: (typeof import('vue'))['watchPostEffect']; + const watchSyncEffect: (typeof import('vue'))['watchSyncEffect']; +} +// for type re-export +declare global { + // @ts-ignore + export type { + Component, + ComponentPublicInstance, + ComputedRef, + ExtractDefaultPropTypes, + ExtractPropTypes, + ExtractPublicPropTypes, + InjectionKey, + PropType, + Ref, + VNode, + WritableComputedRef + } from 'vue'; + import('vue'); + // @ts-ignore + export type { RouteLocationRaw } from 'vue-router'; + import('vue-router'); +} diff --git a/src/helpers/index.ts b/src/app/helpers/index.ts similarity index 87% rename from src/helpers/index.ts rename to src/app/helpers/index.ts index 7b5ac9c0ee54d338ac46782b2c5b271f091f3b90..675d2782caf4d15c6130ef5f8a6c7429071de55b 100644 --- a/src/helpers/index.ts +++ b/src/app/helpers/index.ts @@ -1,7 +1,7 @@ -import { useInterfaceStore } from '@/stores/interface'; -import type { IEntity } from '@/interfaces/environment'; -import { useDataStore } from '@/stores/data'; -import { useWebsocketStore } from '@/stores/websocket'; +import { useInterfaceStore } from '@/app/stores/interface'; +import type { IEntity } from '@/app/interfaces/environment'; +import { useDataStore } from '@/app/stores/data'; +import { useWebsocketStore } from '@/app/stores/websocket'; export async function uploadFile($event: Event) { const target = $event.target as HTMLInputElement; diff --git a/src/interfaces/authorization.ts b/src/app/interfaces/authorization.ts similarity index 70% rename from src/interfaces/authorization.ts rename to src/app/interfaces/authorization.ts index f9ae4f51e6c998f3e471349c2391c5ae12616dae..659cadb75267441aaa51101c92929da9c9a5ff10 100644 --- a/src/interfaces/authorization.ts +++ b/src/app/interfaces/authorization.ts @@ -1,5 +1,5 @@ -import type { TThemes } from '@/interfaces/environment'; -import type {IImage } from "@/interfaces/entities"; +import type { TThemes } from '@/app/interfaces/environment'; +import type { IImage } from '@/app/interfaces/entities'; export interface IUserData { user_uuid: string; diff --git a/src/interfaces/entities.ts b/src/app/interfaces/entities.ts similarity index 79% rename from src/interfaces/entities.ts rename to src/app/interfaces/entities.ts index d82328a355af046582734b3740ad43d255e79216..984ca161914392b00fd7c28916f91cdc459afa5e 100644 --- a/src/interfaces/entities.ts +++ b/src/app/interfaces/entities.ts @@ -36,8 +36,12 @@ export interface IImage { entity_uuid: string; title?: string; text?: string; - image_data: string; + text_size?: 'small' | 'medium' | 'large'; + paragraph_size?: 'small' | 'medium' | 'large' | 'extraLarge'; + text_position?: 'left' | 'right'; + image_url: string; image_width: number; image_height: number; image_position: 'left' | 'center' | 'right'; + image_scale: string; } diff --git a/src/interfaces/environment.ts b/src/app/interfaces/environment.ts similarity index 82% rename from src/interfaces/environment.ts rename to src/app/interfaces/environment.ts index 4c9536e839800da8d9bac6d3c4bb6c9389b76ba4..699199eea315e475f9b6fd9a49e72fddc152578a 100644 --- a/src/interfaces/environment.ts +++ b/src/app/interfaces/environment.ts @@ -1,4 +1,4 @@ -import type { IImage, ITable, IText } from '@/interfaces/entities'; +import type { IImage, ITable, IText } from '@/app/interfaces/entities'; export interface ISheet { sheet_uuid: string; diff --git a/src/app/interfaces/index.ts b/src/app/interfaces/index.ts new file mode 100644 index 0000000000000000000000000000000000000000..fcaa1f8132010ef7b5c0ffad8643ea3ff0565535 --- /dev/null +++ b/src/app/interfaces/index.ts @@ -0,0 +1,5 @@ +export interface IImageMainInfo { + image_url: string; + image_width: number; + image_height: number; +} diff --git a/src/main.ts b/src/app/main.ts similarity index 92% rename from src/main.ts rename to src/app/main.ts index f0b3ed0813698a2cafdecb298086c520eae80241..b61cec809f84be9d41071d18c73f86a17541de5e 100644 --- a/src/main.ts +++ b/src/app/main.ts @@ -1,4 +1,4 @@ -import './assets/main.css'; +import '@/app/assets/main.css'; import { createApp } from 'vue'; import { createPinia } from 'pinia'; diff --git a/src/router/index.ts b/src/app/router/index.ts similarity index 84% rename from src/router/index.ts rename to src/app/router/index.ts index 9652021332db5b88725cfc6d6bb32836163bf551..98dcd9051c6891900820960dfe184ced17a95d24 100644 --- a/src/router/index.ts +++ b/src/app/router/index.ts @@ -12,7 +12,7 @@ const router = createRouter({ { path: '/:sheetUuid', name: 'sheet', - component: () => import('../pages/[uuid]/SheetPage.vue') + component: () => import('../../pages/[uuid]/SheetPage.vue') } ] }); diff --git a/src/stores/authorization.ts b/src/app/stores/authorization.ts similarity index 83% rename from src/stores/authorization.ts rename to src/app/stores/authorization.ts index d1ba2d75f777c78ac055955bd34651ce897d23d0..846b16051ee3f788dc7872f7fd4a7ba508ec39a2 100644 --- a/src/stores/authorization.ts +++ b/src/app/stores/authorization.ts @@ -1,5 +1,5 @@ import { defineStore } from 'pinia'; -import type { IUserData } from '@/interfaces/authorization'; +import type { IUserData } from '@/app/interfaces/authorization'; export const useAuthorizationStore = defineStore('authorizationStore', () => { const userUuid = ref('e786de50-f33c-4ef9-9dfe-329eed32b023'); diff --git a/src/stores/data.ts b/src/app/stores/data.ts similarity index 96% rename from src/stores/data.ts rename to src/app/stores/data.ts index 27b1f4004d2ed9d1a31568c8d6c042320f61d6a7..bbd53f45806d3744512dff576e4ce2ea209e3e5d 100644 --- a/src/stores/data.ts +++ b/src/app/stores/data.ts @@ -1,5 +1,5 @@ import { defineStore } from 'pinia'; -import type {IEntity, ISheet} from '@/interfaces/environment'; +import type { IEntity } from '@/app/interfaces/environment'; export const useDataStore = defineStore('dataStore', () => { const sheets = ref([ diff --git a/src/stores/interface.ts b/src/app/stores/interface.ts similarity index 51% rename from src/stores/interface.ts rename to src/app/stores/interface.ts index d834a66ad88590150042def97b59a265740394e8..2485d0c63952d64880d04009b8e0da95d29cff47 100644 --- a/src/stores/interface.ts +++ b/src/app/stores/interface.ts @@ -1,4 +1,5 @@ import { defineStore } from 'pinia'; +import { useWebsocketStore } from '@/app/stores/websocket'; export const useInterfaceStore = defineStore('interfaceStore', () => { const homeBackgroundUrl = ref( @@ -13,7 +14,27 @@ export const useInterfaceStore = defineStore('interfaceStore', () => { }); function changeHomeBackgroundUrl(newUrl: string) { homeBackgroundUrl.value = newUrl; + const websocketStore = useWebsocketStore(); + const data = { + event: 'changeHomeBackgroundUrl', + body: { + setting_name: 'homeBackgroundUrl', + setting_value: newUrl + } + }; + websocketStore.sendData(data); + } + function setHomeBackgroundUrlFromDB(url: string | null) { + if (!url) { + return; + } + homeBackgroundUrl.value = url; } - return { homeBackgroundUrl, defaultHomeBackgroundUrl, changeHomeBackgroundUrl }; + return { + homeBackgroundUrl, + defaultHomeBackgroundUrl, + changeHomeBackgroundUrl, + setHomeBackgroundUrlFromDB + }; }); diff --git a/src/stores/websocket.ts b/src/app/stores/websocket.ts similarity index 80% rename from src/stores/websocket.ts rename to src/app/stores/websocket.ts index 26d0dfca4898806218d3abfef710a3f9d480dbd9..20ea30571b2ebf132a2ebfdf0f74bbec81511c17 100644 --- a/src/stores/websocket.ts +++ b/src/app/stores/websocket.ts @@ -1,20 +1,26 @@ import { defineStore } from 'pinia'; -import { useDataStore } from '@/stores/data'; -import type { IEntity } from '@/interfaces/environment'; +import { useDataStore } from '@/app/stores/data'; +import type { IEntity } from '@/app/interfaces/environment'; +import { useInterfaceStore } from '@/app/stores/interface'; export const useWebsocketStore = defineStore('websocketStore', () => { const socket = ref(); const dataStore = useDataStore(); + const interfaceStore = useInterfaceStore(); const homeEntities = computed(() => dataStore.homeEntities); onMounted(() => { socket.value = new WebSocket('ws://localhost:5000'); socket.value.onopen = () => { console.log('Websocket opened'); - const data = { + const getHomeEntitiesData = { event: 'getHomeEntities' }; - socket.value.send(JSON.stringify(data)); + socket.value.send(JSON.stringify(getHomeEntitiesData)); + const getHomeBackgroundUrlData = { + event: 'getHomeBackgroundUrl' + }; + socket.value.send(JSON.stringify(getHomeBackgroundUrlData)); }; socket.value.onmessage = (event: any) => { const response = JSON.parse(event.data); @@ -23,6 +29,9 @@ export const useWebsocketStore = defineStore('websocketStore', () => { case 'getHomeEntities': dataStore.editHomeEntities(response.data); break; + case 'getHomeBackgroundUrl': + interfaceStore.setHomeBackgroundUrlFromDB(response.data?.setting_value); + break; case 'createHomeEntity': { const entities = [...homeEntities.value]; entities.push(response.data); diff --git a/src/assets/Motion.svg b/src/assets/Motion.svg deleted file mode 100644 index a51145e952f004c36dc87ffff45382f8b88fbbc3..0000000000000000000000000000000000000000 --- a/src/assets/Motion.svg +++ /dev/null @@ -1,203 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/auto-imports.d.ts b/src/auto-imports.d.ts deleted file mode 100644 index b14a1099bc9d648fb7159fe55bce138199bb5388..0000000000000000000000000000000000000000 --- a/src/auto-imports.d.ts +++ /dev/null @@ -1,78 +0,0 @@ -/* eslint-disable */ -/* prettier-ignore */ -// @ts-nocheck -// noinspection JSUnusedGlobalSymbols -// Generated by unplugin-auto-import -export {} -declare global { - const EffectScope: typeof import('vue')['EffectScope'] - const [alias]: typeof import('[package-name]')['[from]'] - const [import-names]: typeof import('[package-name]')['[import-names]'] - const axios: typeof import('axios')['default'] - const computed: typeof import('vue')['computed'] - const createApp: typeof import('vue')['createApp'] - const customRef: typeof import('vue')['customRef'] - const defineAsyncComponent: typeof import('vue')['defineAsyncComponent'] - const defineComponent: typeof import('vue')['defineComponent'] - const effectScope: typeof import('vue')['effectScope'] - const getCurrentInstance: typeof import('vue')['getCurrentInstance'] - const getCurrentScope: typeof import('vue')['getCurrentScope'] - const h: typeof import('vue')['h'] - const inject: typeof import('vue')['inject'] - 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 markRaw: typeof import('vue')['markRaw'] - 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 onDeactivated: typeof import('vue')['onDeactivated'] - const onErrorCaptured: typeof import('vue')['onErrorCaptured'] - 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 onUnmounted: typeof import('vue')['onUnmounted'] - const onUpdated: typeof import('vue')['onUpdated'] - const provide: typeof import('vue')['provide'] - const reactive: typeof import('vue')['reactive'] - const readonly: typeof import('vue')['readonly'] - const ref: typeof import('vue')['ref'] - const resolveComponent: typeof import('vue')['resolveComponent'] - const shallowReactive: typeof import('vue')['shallowReactive'] - const shallowReadonly: typeof import('vue')['shallowReadonly'] - const shallowRef: typeof import('vue')['shallowRef'] - const toRaw: typeof import('vue')['toRaw'] - const toRef: typeof import('vue')['toRef'] - const toRefs: typeof import('vue')['toRefs'] - const toValue: typeof import('vue')['toValue'] - const triggerRef: typeof import('vue')['triggerRef'] - const unref: typeof import('vue')['unref'] - const useAttrs: typeof import('vue')['useAttrs'] - const useCssModule: typeof import('vue')['useCssModule'] - const useCssVars: typeof import('vue')['useCssVars'] - const useLink: typeof import('vue-router')['useLink'] - const useMyFetch: typeof import('@vueuse/core')['useFetch'] - const useRoute: typeof import('vue-router')['useRoute'] - const useRouter: typeof import('vue-router')['useRouter'] - const useSlots: typeof import('vue')['useSlots'] - const watch: typeof import('vue')['watch'] - const watchEffect: typeof import('vue')['watchEffect'] - const watchPostEffect: typeof import('vue')['watchPostEffect'] - const watchSyncEffect: typeof import('vue')['watchSyncEffect'] -} -// for type re-export -declare global { - // @ts-ignore - export type { Component, ComponentPublicInstance, ComputedRef, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, VNode, WritableComputedRef } from 'vue' - import('vue') - // @ts-ignore - export type { RouteLocationRaw } from 'vue-router' - import('vue-router') -} diff --git a/src/components/CreateEntityMenu.vue b/src/components/CreateEntityMenu.vue index 8d679e0e63f356fb1d35b34bdff88c8722e1f133..cb07a8741501c385f47728605a26b72720acc5d4 100644 --- a/src/components/CreateEntityMenu.vue +++ b/src/components/CreateEntityMenu.vue @@ -1,37 +1,34 @@ - - - - diff --git a/src/components/EditTextEntityMenu.vue b/src/components/EditTextEntityMenu.vue deleted file mode 100644 index a02b908acfe378d15768f6da150a300df4acba27..0000000000000000000000000000000000000000 --- a/src/components/EditTextEntityMenu.vue +++ /dev/null @@ -1,182 +0,0 @@ - - - - - diff --git a/src/components/LogoAndLabel.vue b/src/components/LogoAndLabel.vue index e6b58fa33c09a6d828a1223f34ab5a08dbdc3567..83c84e242b112883b0696dd2158b0670a7fb87a6 100644 --- a/src/components/LogoAndLabel.vue +++ b/src/components/LogoAndLabel.vue @@ -2,7 +2,7 @@ diff --git a/src/components/UserInfoHeaderWithSettings.vue b/src/components/UserInfoHeaderWithSettings.vue index 9afc9f54905891ea6528e5f2025705d3b087e1f3..0264faa62e6277032fc429315319a743bce181d5 100644 --- a/src/components/UserInfoHeaderWithSettings.vue +++ b/src/components/UserInfoHeaderWithSettings.vue @@ -1,5 +1,5 @@ + + + + diff --git a/src/components/editEntityMenu/ImageSizeMenu.vue b/src/components/editEntityMenu/ImageSizeMenu.vue new file mode 100644 index 0000000000000000000000000000000000000000..127da3a68da7040bd938a2be446e3a5755c09211 --- /dev/null +++ b/src/components/editEntityMenu/ImageSizeMenu.vue @@ -0,0 +1,169 @@ + + + + + diff --git a/src/components/editEntityMenu/ImageStateMenu.vue b/src/components/editEntityMenu/ImageStateMenu.vue new file mode 100644 index 0000000000000000000000000000000000000000..879815fdbef103efb54f69cd2f233abd6342f037 --- /dev/null +++ b/src/components/editEntityMenu/ImageStateMenu.vue @@ -0,0 +1,104 @@ + + + + + diff --git a/src/components/editEntityMenus/text/MoveMenu.vue b/src/components/editEntityMenu/TextMoveMenu.vue similarity index 82% rename from src/components/editEntityMenus/text/MoveMenu.vue rename to src/components/editEntityMenu/TextMoveMenu.vue index c77d79660eba1d306c7b2aea22188f5b1ee9828b..93f8bc8425c2b675484d04964991037267e26860 100644 --- a/src/components/editEntityMenus/text/MoveMenu.vue +++ b/src/components/editEntityMenu/TextMoveMenu.vue @@ -1,8 +1,8 @@ - - - - diff --git a/src/helpers/autoResize.ts b/src/helpers/autoResize.ts deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/helpers/constants.ts b/src/helpers/constants.ts deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/src/modules/BaseMenu.vue b/src/modules/BaseSidebarMenu.vue similarity index 97% rename from src/modules/BaseMenu.vue rename to src/modules/BaseSidebarMenu.vue index 906cd9fe1952277431d50e62c58e47a33802be83..cc67cb5518df4225bf133a3bb7644adf49264ebf 100644 --- a/src/modules/BaseMenu.vue +++ b/src/modules/BaseSidebarMenu.vue @@ -1,6 +1,6 @@ + + + + diff --git a/src/modules/EntityItem.vue b/src/modules/EntityItem.vue index f040b9f4fba86ee22f19a52396ab4a462e7b4852..fec3597fd38dbf3e367c81c7a0ec6929c75b0356 100644 --- a/src/modules/EntityItem.vue +++ b/src/modules/EntityItem.vue @@ -1,20 +1,23 @@ diff --git a/src/modules/entities/ImageItem.vue b/src/modules/entities/ImageItem.vue new file mode 100644 index 0000000000000000000000000000000000000000..938f4eec8318db1fa1c6828951afc719c84ba907 --- /dev/null +++ b/src/modules/entities/ImageItem.vue @@ -0,0 +1,193 @@ + + +