aboutsummaryrefslogtreecommitdiff
path: root/viewer/src
diff options
context:
space:
mode:
Diffstat (limited to 'viewer/src')
-rw-r--r--viewer/src/@types/gallery/index.d.ts45
-rw-r--r--viewer/src/@types/tag/Operation.ts24
-rw-r--r--viewer/src/@types/tag/index.d.ts33
-rw-r--r--viewer/src/assets/scss/_buefy_variables.scss171
-rw-r--r--viewer/src/assets/scss/buefy.scss48
-rw-r--r--viewer/src/assets/scss/global.scss44
-rw-r--r--viewer/src/assets/scss/theme.scss29
-rw-r--r--viewer/src/components/LdButtonFullscreen.vue44
-rw-r--r--viewer/src/components/LdModeRadio.vue41
-rw-r--r--viewer/src/components/LdProposition.vue93
-rw-r--r--viewer/src/components/LdTagInput.vue123
-rw-r--r--viewer/src/components/index.ts41
-rw-r--r--viewer/src/locales/en.json11
-rw-r--r--viewer/src/main.ts37
-rw-r--r--viewer/src/plugins/buefy.ts28
-rw-r--r--viewer/src/plugins/fontawesome.ts44
-rw-r--r--viewer/src/plugins/i18n.ts42
-rw-r--r--viewer/src/router/index.ts41
-rw-r--r--viewer/src/shims-tsx.d.ts13
-rw-r--r--viewer/src/shims-vue.d.ts4
-rw-r--r--viewer/src/store/galleryStore.ts110
-rw-r--r--viewer/src/store/index.ts46
-rw-r--r--viewer/src/store/uiStore.ts56
-rw-r--r--viewer/src/views/Gallery.vue104
-rw-r--r--viewer/src/views/GalleryDirectory.vue45
-rw-r--r--viewer/src/views/GalleryPicture.vue40
-rw-r--r--viewer/src/views/GallerySearch.vue44
-rw-r--r--viewer/src/views/GalleryThumbnail.vue48
-rw-r--r--viewer/src/views/MainLayout.vue121
-rw-r--r--viewer/src/views/PanelLeft.vue42
-rw-r--r--viewer/src/views/PanelTop.vue86
31 files changed, 1698 insertions, 0 deletions
diff --git a/viewer/src/@types/gallery/index.d.ts b/viewer/src/@types/gallery/index.d.ts
new file mode 100644
index 0000000..25407e8
--- /dev/null
+++ b/viewer/src/@types/gallery/index.d.ts
@@ -0,0 +1,45 @@
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 Picture extends Item {
22 properties: PictureProperties,
23 }
24 interface Directory extends Item {
25 properties: DirectoryProperties,
26 }
27 interface Item {
28 title: string,
29 datetime: string,
30 description: string,
31 tags: RawTag[],
32 path: string,
33 thumbnail?: string,
34 properties: PictureProperties | DirectoryProperties,
35 }
36 interface PictureProperties {
37 type: "picture",
38 resource: string,
39 }
40 interface DirectoryProperties {
41 type: "directory",
42 items: Item[]
43 }
44 type RawTag = string;
45} \ No newline at end of file
diff --git a/viewer/src/@types/tag/Operation.ts b/viewer/src/@types/tag/Operation.ts
new file mode 100644
index 0000000..f1e7a41
--- /dev/null
+++ b/viewer/src/@types/tag/Operation.ts
@@ -0,0 +1,24 @@
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
20export enum Operation {
21 INTERSECTION = '',
22 ADDITION = '+',
23 SUBSTRACTION = '-',
24}; \ No newline at end of file
diff --git a/viewer/src/@types/tag/index.d.ts b/viewer/src/@types/tag/index.d.ts
new file mode 100644
index 0000000..c77fc3b
--- /dev/null
+++ b/viewer/src/@types/tag/index.d.ts
@@ -0,0 +1,33 @@
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 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/assets/scss/_buefy_variables.scss b/viewer/src/assets/scss/_buefy_variables.scss
new file mode 100644
index 0000000..e008269
--- /dev/null
+++ b/viewer/src/assets/scss/_buefy_variables.scss
@@ -0,0 +1,171 @@
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
20// Included below are all the defined variables from Bulma
21// Modify as needed, removing the !default attribute.
22
23// Colors
24
25$black: hsl(0, 0%, 4%) !default;
26$black-bis: hsl(0, 0%, 7%) !default;
27$black-ter: hsl(0, 0%, 14%) !default;
28
29$grey-darker: hsl(0, 0%, 21%) !default;
30$grey-dark: hsl(0, 0%, 29%) !default;
31$grey: hsl(0, 0%, 48%) !default;
32$grey-light: hsl(0, 0%, 71%) !default;
33$grey-lighter: hsl(0, 0%, 86%) !default;
34
35$white-ter: hsl(0, 0%, 96%) !default;
36$white-bis: hsl(0, 0%, 98%) !default;
37$white: hsl(0, 0%, 100%) !default;
38
39$orange: hsl(14, 100%, 53%) !default;
40$yellow: hsl(48, 100%, 67%) !default;
41$green: hsl(141, 71%, 48%) !default;
42$turquoise: hsl(171, 100%, 41%) !default;
43$cyan: hsl(204, 86%, 53%) !default;
44$blue: hsl(217, 71%, 53%) !default;
45$purple: hsl(271, 100%, 71%) !default;
46$red: hsl(348, 100%, 61%) !default;
47
48// Typography
49
50$family-sans-serif: BlinkMacSystemFont, -apple-system, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell",
51 "Fira Sans", "Droid Sans", "Helvetica Neue", "Helvetica", "Arial", sans-serif !default;
52$family-monospace: monospace !default;
53$render-mode: optimizeLegibility !default;
54
55$size-1: 3rem !default;
56$size-2: 2.5rem !default;
57$size-3: 2rem !default;
58$size-4: 1.5rem !default;
59$size-5: 1.25rem !default;
60$size-6: 1rem !default;
61$size-7: 0.75rem !default;
62
63$weight-light: 300 !default;
64$weight-normal: 400 !default;
65$weight-medium: 500 !default;
66$weight-semibold: 600 !default;
67$weight-bold: 700 !default;
68
69// Responsiveness
70
71// The container horizontal gap, which acts as the offset for breakpoints
72$gap: 32px !default;
73// 960, 1152, and 1344 have been chosen because they are divisible by both 12 and 16
74$tablet: 769px !default;
75