aboutsummaryrefslogtreecommitdiff
path: root/viewer/src
diff options
context:
space:
mode:
Diffstat (limited to 'viewer/src')
-rw-r--r--viewer/src/@types/Operation.ts (renamed from viewer/src/@types/tag/Operation.ts)8
-rw-r--r--viewer/src/@types/gallery.d.ts74
-rw-r--r--viewer/src/@types/scrollposition.d.ts (renamed from viewer/src/@types/tag/index.d.ts)15
-rw-r--r--viewer/src/@types/tag.d.ts41
-rw-r--r--viewer/src/@types/v-lazy-image.d.ts20
-rw-r--r--viewer/src/@types/vue-dragscroll.d.ts20
-rw-r--r--viewer/src/assets/defaulticon.svg63
-rw-r--r--viewer/src/assets/scss/buefy.scss9
-rw-r--r--viewer/src/assets/scss/global.scss67
-rw-r--r--viewer/src/assets/scss/palette.scss31
-rw-r--r--viewer/src/assets/scss/theme.scss65
-rw-r--r--viewer/src/components/LdBreadcrumb.vue127
-rw-r--r--viewer/src/components/LdCommand.vue96
-rw-r--r--viewer/src/components/LdCommandSearch.vue (renamed from viewer/src/components/LdModeRadio.vue)35
-rw-r--r--viewer/src/components/LdGallery.vue (renamed from viewer/src/components/LdButtonFullscreen.vue)41
-rw-r--r--viewer/src/components/LdKeyPress.vue (renamed from viewer/src/views/GalleryThumbnail.vue)45
-rw-r--r--viewer/src/components/LdPicture.vue121
-rw-r--r--viewer/src/components/LdProposition.vue114
-rw-r--r--viewer/src/components/LdTagInput.vue94
-rw-r--r--viewer/src/components/LdThumbnail.vue90
-rw-r--r--viewer/src/components/LdTitle.vue (renamed from viewer/src/views/GalleryPicture.vue)34
-rw-r--r--viewer/src/components/index.ts32
-rw-r--r--viewer/src/locales/en.json24
-rw-r--r--viewer/src/main.ts18
-rw-r--r--viewer/src/plugins/buefy.ts24
-rw-r--r--viewer/src/plugins/dragscroll.ts23
-rw-r--r--viewer/src/plugins/fontawesome.ts43
-rw-r--r--viewer/src/plugins/lazyimage.ts23
-rw-r--r--viewer/src/plugins/router.ts (renamed from viewer/src/router/index.ts)17
-rw-r--r--viewer/src/services/dragscrollclickfix.ts (renamed from viewer/src/@types/gallery/index.d.ts)55
-rw-r--r--viewer/src/services/indexfactory.ts143
-rw-r--r--viewer/src/services/indexsearch.ts69
-rw-r--r--viewer/src/services/ldzoom.ts134
-rw-r--r--viewer/src/services/navigation.ts80
-rw-r--r--viewer/src/shims-tsx.d.ts4
-rw-r--r--viewer/src/store/galleryStore.ts180
-rw-r--r--viewer/src/store/index.ts13
-rw-r--r--viewer/src/store/uiStore.ts40
-rw-r--r--viewer/src/views/Gallery.vue104
-rw-r--r--viewer/src/views/GalleryDirectory.vue24
-rw-r--r--viewer/src/views/GalleryNavigation.vue62
-rw-r--r--viewer/src/views/GallerySearch.vue42
-rw-r--r--viewer/src/views/MainLayout.vue71
-rw-r--r--viewer/src/views/PanelLeft.vue78
-rw-r--r--viewer/src/views/PanelTop.vue64
45 files changed, 1984 insertions, 593 deletions
diff --git a/viewer/src/@types/tag/Operation.ts b/viewer/src/@types/Operation.ts
index f1e7a41..e7aad27 100644
--- a/viewer/src/@types/tag/Operation.ts
+++ b/viewer/src/@types/Operation.ts
@@ -18,7 +18,7 @@
18*/ 18*/
19 19
20export enum Operation { 20export enum Operation {
21 INTERSECTION = '', 21 INTERSECTION = "",
22 ADDITION = '+', 22 ADDITION = "+",
23 SUBSTRACTION = '-', 23 SUBSTRACTION = "-",
24}; \ No newline at end of file 24};
diff --git a/viewer/src/@types/gallery.d.ts b/viewer/src/@types/gallery.d.ts
new file mode 100644
index 0000000..066aedf
--- /dev/null
+++ b/viewer/src/@types/gallery.d.ts
@@ -0,0 +1,74 @@
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 interface Config {
22 galleryRoot: string,
23 }
24
25 interface GalleryProperties {
26 galleryTitle: string,
27 tagCategories: RawTag[]
28 }
29 interface Index {
30 properties: GalleryProperties,
31 tree: Directory
32 }
33
34 interface Other extends Item {
35 properties: OtherProperties,
36 }
37 interface Picture extends Item {
38 properties: PictureProperties,
39 }
40 interface Directory extends Item {
41 properties: DirectoryProperties,
42 }
43 interface Item {
44 title: string,
45 datetime: string,
46 description: string,
47 tags: RawTag[],
48 path: string,
49 thumbnail?: Thumbnail
50 properties: OtherProperties | PictureProperties | DirectoryProperties,
51 }
52 interface Resolution {
53 width: number,
54 height: number,
55 }
56 interface OtherProperties {
57 type: "other",
58 }
59 interface PictureProperties {
60 type: "picture",
61 resource: string,
62 resolution: Resolution
63 }
64 interface DirectoryProperties {
65 type: "directory",
66 items: Item[]
67 }
68 interface Thumbnail {
69 resource: string,
70 resolution: Resolution
71 }
72 type RawTag = string;
73 type ItemType = "other" | "picture" | "directory";
74}
diff --git a/viewer/src/@types/tag/index.d.ts b/viewer/src/@types/scrollposition.d.ts
index c77fc3b..b2147fa 100644
--- a/viewer/src/@types/tag/index.d.ts
+++ b/viewer/src/@types/scrollposition.d.ts
@@ -17,17 +17,4 @@
17-- along with this program. If not, see <https://www.gnu.org/licenses/>. 17-- along with this program. If not, see <https://www.gnu.org/licenses/>.
18*/ 18*/
19 19
20declare namespace Tag { 20type ScrollPosition = { [index: string]: number }
21 interface Node {
22 tag: Gallery.RawTag;
23 items: Gallery.Item[];
24 children: Index;
25 }
26 interface Search extends Node {
27 parent?: Node;
28 operation: string; // Enum Operation
29 display: string;
30 }
31 type SearchByOperation = { [index: string]: Tag.Search[] };
32 type Index = { [index: string]: Node };
33} \ No newline at end of file
diff --git a/viewer/src/@types/tag.d.ts b/viewer/src/@types/tag.d.ts
new file mode 100644
index 0000000..76f1207
--- /dev/null
+++ b/viewer/src/@types/tag.d.ts
@@ -0,0 +1,41 @@
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 Tag {
21 interface Node {
22 tag: Gallery.RawTag;
23 tagfiltered: Gallery.RawTag;
24 rootPart: boolean;
25 childPart: boolean;
26 items: Gallery.Item[];
27 children: Index;
28 }
29 interface Search extends Node {
30 parent?: Node;
31 operation: string; // Enum Operation
32 display: string;
33 }
34 type SearchByOperation = { [index: string]: Tag.Search[] };
35 type Index = { [index: string]: Node };
36
37 interface Category {
38 tag: string;
39 index: Index;
40 }
41}
diff --git a/viewer/src/@types/v-lazy-image.d.ts b/viewer/src/@types/v-lazy-image.d.ts
new file mode 100644
index 0000000..2777921
--- /dev/null
+++ b/viewer/src/@types/v-lazy-image.d.ts
@@ -0,0 +1,20 @@
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