aboutsummaryrefslogtreecommitdiff
path: root/viewer/src
diff options
context:
space:
mode:
Diffstat (limited to 'viewer/src')
-rw-r--r--viewer/src/@types/ItemType.ts11
-rw-r--r--viewer/src/@types/gallery.d.ts114
-rw-r--r--viewer/src/@types/gallery.ts129
-rw-r--r--viewer/src/@types/itemType.ts (renamed from viewer/src/@types/v-lazy-image.d.ts)13
-rw-r--r--viewer/src/@types/operation.ts (renamed from viewer/src/@types/Operation.ts)8
-rw-r--r--viewer/src/@types/splashscreen.ts (renamed from viewer/src/@types/vue-dragscroll.d.ts)9
-rw-r--r--viewer/src/@types/tag.ts (renamed from viewer/src/@types/tag.d.ts)43
-rw-r--r--viewer/src/assets/scss/_buefy_variables.scss171
-rw-r--r--viewer/src/assets/scss/buefy.scss47
-rw-r--r--viewer/src/assets/scss/constants.scss (renamed from viewer/src/assets/scss/palette.scss)24
-rw-r--r--viewer/src/assets/scss/global.scss53
-rw-r--r--viewer/src/assets/scss/scrollbar.scss6
-rw-r--r--viewer/src/assets/scss/theme.scss42
-rw-r--r--viewer/src/assets/scss/transition.scss40
-rw-r--r--viewer/src/components/LdBreadcrumb.vue127
-rw-r--r--viewer/src/components/LdCommand.vue97
-rw-r--r--viewer/src/components/LdCommandSort.vue55
-rw-r--r--viewer/src/components/LdDropdown.vue92
-rw-r--r--viewer/src/components/LdGallery.vue59
-rw-r--r--viewer/src/components/LdInput.vue60
-rw-r--r--viewer/src/components/LdKeyPress.vue49
-rw-r--r--viewer/src/components/LdLink.vue75
-rw-r--r--viewer/src/components/LdLoading.vue51
-rw-r--r--viewer/src/components/LdNotice.vue (renamed from viewer/src/components/LdError.vue)39
-rw-r--r--viewer/src/components/LdProposition.vue179
-rw-r--r--viewer/src/components/LdTagInput.vue97
-rw-r--r--viewer/src/components/LdTitle.vue46
-rw-r--r--viewer/src/components/async/AsyncLdMarkdown.vue125
-rw-r--r--viewer/src/components/async/index.ts (renamed from viewer/src/plugins/dragscroll.ts)7
-rw-r--r--viewer/src/components/index.ts44
-rw-r--r--viewer/src/components/item_handlers/LdPicture.vue127
-rw-r--r--viewer/src/components/item_handlers/LdPlainTextViewer.vue55
-rw-r--r--viewer/src/locales/en.json24
-rw-r--r--viewer/src/locales/en.yml44
-rw-r--r--viewer/src/main.ts70
-rw-r--r--viewer/src/plugins/asyncLib.ts3
-rw-r--r--viewer/src/plugins/devServer.js53
-rw-r--r--viewer/src/plugins/i18n.ts19
-rw-r--r--viewer/src/plugins/router.ts22
-rw-r--r--viewer/src/services/api/ldFetch.ts (renamed from viewer/src/plugins/fontawesome-icons.ts)42
-rw-r--r--viewer/src/services/dragscrollclickfix.ts51
-rw-r--r--viewer/src/services/indexFactory.ts163
-rw-r--r--viewer/src/services/indexSearch.ts74
-rw-r--r--viewer/src/services/indexfactory.ts155
-rw-r--r--viewer/src/services/indexsearch.ts68
-rw-r--r--viewer/src/services/itemComparator.ts93
-rw-r--r--viewer/src/services/itemComparators.ts73
-rw-r--r--viewer/src/services/itemGuards.ts11
-rw-r--r--viewer/src/services/ldzoom.ts136
-rw-r--r--viewer/src/services/navigation.ts88
-rw-r--r--viewer/src/services/ui/ldFullscreen.ts (renamed from viewer/src/plugins/buefy.ts)43
-rw-r--r--viewer/src/services/ui/ldItemResourceUrl.ts15
-rw-r--r--viewer/src/services/ui/ldKeepFocus.ts (renamed from viewer/src/plugins/fontawesome.ts)23
-rw-r--r--viewer/src/services/ui/ldKeyboard.ts (renamed from viewer/src/plugins/lazyimage.ts)13
-rw-r--r--viewer/src/services/ui/ldSaveScroll.ts37
-rw-r--r--viewer/src/services/ui/ldTitle.ts (renamed from viewer/src/@types/scrollposition.d.ts)18
-rw-r--r--viewer/src/services/ui/ldZoom.ts128
-rw-r--r--viewer/src/shims-tsx.d.ts13
-rw-r--r--viewer/src/shims-vue.d.ts10
-rw-r--r--viewer/src/store/galleryStore.ts199
-rw-r--r--viewer/src/store/index.ts47
-rw-r--r--viewer/src/store/uiStore.ts82
-rw-r--r--viewer/src/views/GalleryNavigation.vue103
-rw-r--r--viewer/src/views/GallerySearch.vue69
-rw-r--r--viewer/src/views/GalleryTiles.vue70
-rw-r--r--viewer/src/views/ItemThumbnail.vue (renamed from viewer/src/components/LdThumbnail.vue)67
-rw-r--r--viewer/src/views/MainLayout.vue159
-rw-r--r--viewer/src/views/PanelLeft.vue116
-rw-r--r--viewer/src/views/SplashScreen.vue75
-rw-r--r--viewer/src/views/item_handlers/AudioViewer.vue (renamed from viewer/src/components/item_handlers/LdAudioViewer.vue)42
-rw-r--r--viewer/src/views/item_handlers/DirectoryViewer.vue (renamed from viewer/src/components/item_handlers/LdDirectory.vue)34
-rw-r--r--viewer/src/views/item_handlers/DownloadViewer.vue (renamed from viewer/src/components/item_handlers/LdDownload.vue)41
-rw-r--r--viewer/src/views/item_handlers/MarkdownViewer.vue50
-rw-r--r--viewer/src/views/item_handlers/PdfViewer.vue (renamed from viewer/src/components/item_handlers/LdPdfViewer.vue)29
-rw-r--r--viewer/src/views/item_handlers/PictureViewer.vue129
-rw-r--r--viewer/src/views/item_handlers/PlainTextViewer.vue69
-rw-r--r--viewer/src/views/item_handlers/VideoViewer.vue (renamed from viewer/src/components/item_handlers/LdVideoViewer.vue)34
-rw-r--r--viewer/src/views/layout/left/LayoutCommandSearch.vue (renamed from viewer/src/components/LdCommandSearch.vue)58
-rw-r--r--viewer/src/views/layout/left/LayoutInformation.vue (renamed from viewer/src/components/LdInformation.vue)61
-rw-r--r--viewer/src/views/layout/left/LayoutLeft.vue158
-rw-r--r--viewer/src/views/layout/left/LayoutProposition.vue208
-rw-r--r--viewer/src/views/layout/left/LayoutTagInput.vue141
-rw-r--r--viewer/src/views/layout/left/LayoutTagList.vue74
-rw-r--r--viewer/src/views/layout/top/LayoutBreadcrumb.vue130
-rw-r--r--viewer/src/views/layout/top/LayoutCommand.vue127
-rw-r--r--viewer/src/views/layout/top/LayoutCommandSort.vue85
-rw-r--r--viewer/src/views/layout/top/LayoutTop.vue (renamed from viewer/src/views/PanelTop.vue)22
87 files changed, 3315 insertions, 2747 deletions
diff --git a/viewer/src/@types/ItemType.ts b/viewer/src/@types/ItemType.ts
deleted file mode 100644
index 31a395b..0000000
--- a/viewer/src/@types/ItemType.ts
+++ /dev/null
@@ -1,11 +0,0 @@
1// TODO: Convert all ambiant types related to LdGallery to modules
2
3export enum ItemType {
4 OTHER = "other",
5 PICTURE = "picture",
6 PLAINTEXT = "plaintext",
7 PDF = "pdf",
8 VIDEO = "video",
9 AUDIO = "audio",
10 DIRECTORY = "directory",
11}
diff --git a/viewer/src/@types/gallery.d.ts b/viewer/src/@types/gallery.d.ts
deleted file mode 100644
index e9b80e6..0000000
--- a/viewer/src/@types/gallery.d.ts
+++ /dev/null
@@ -1,114 +0,0 @@
1/* ldgallery - A static generator which turns a collection of tagged
2-- pictures into a searchable web gallery.
3--
4-- Copyright (C) 2019-2020 Guillaume FOUET
5--
6-- This program is free software: you can redistribute it and/or modify
7-- it under the terms of the GNU Affero General Public License as
8-- published by the Free Software Foundation, either version 3 of the
9-- License, or (at your option) any later version.
10--
11-- This program is distributed in the hope that it will be useful,
12-- but WITHOUT ANY WARRANTY; without even the implied warranty of
13-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14-- GNU Affero General Public License for more details.
15--
16-- You should have received a copy of the GNU Affero General Public License
17-- along with this program. If not, see <https://www.gnu.org/licenses/>.
18*/
19
20declare namespace Gallery {
21 type ItemSortStr = "title_asc" | "date_asc" | "date_desc";
22
23 interface Config {
24 galleryRoot: string;
25 galleryIndex?: string;
26 initialItemSort?: ItemSortStr;
27 initialTagDisplayLimit?: number;
28 }
29
30 interface GalleryProperties {
31 galleryTitle: string;
32 tagCategories: RawTag[];
33 }
34 interface Index {
35 properties: GalleryProperties;
36 tree: Directory;
37 }
38
39 interface Other extends Item {
40 properties: OtherProperties;
41 }
42 interface Picture extends Item {
43 properties: PictureProperties;
44 }
45 interface PlainText extends Item {
46 properties: PlainTextProperties;
47 }
48 interface PDF extends Item {
49 properties: PDFProperties;
50 }
51 interface Video extends Item {
52 properties: VideoProperties;
53 }
54 interface Audio extends Item {
55 properties: AudioProperties;
56 }
57 interface Directory extends Item {
58 properties: DirectoryProperties;
59 }
60 interface Item {
61 title: string;
62 datetime: string;
63 description: string;
64 tags: RawTag[];
65 path: string;
66 thumbnail?: Thumbnail;
67 properties:
68 | OtherProperties
69 | PictureProperties
70 | PlainTextProperties
71 | PDFProperties
72 | VideoProperties
73 | AudioProperties
74 | DirectoryProperties;
75 }
76 interface Resolution {
77 width: number;
78 height: number;
79 }
80 interface OtherProperties {
81 type: import("./ItemType").ItemType.OTHER;
82 resource: string;
83 }
84 interface PictureProperties {
85 type: import("./ItemType").ItemType.PICTURE;
86 resource: string;
87 resolution: Resolution;
88 }
89 interface PlainTextProperties {
90 type: import("./ItemType").ItemType.PLAINTEXT;
91 resource: string;