diff options
author | Zéro~Informatique | 2022-07-26 08:44:34 +0200 |
---|---|---|
committer | pacien | 2022-09-03 01:30:42 +0200 |
commit | 00510820a2794efcadbc83f7f8b54318fe198ecb (patch) | |
tree | a894d99c22a601197869c7a6928d40bb4ae2c392 /viewer/src/@types/gallery.ts | |
parent | 88aa098c07e067f9f737fbeba1f52a9bd5042e53 (diff) | |
download | ldgallery-00510820a2794efcadbc83f7f8b54318fe198ecb.tar.gz |
viewer: migrate to vue 3, general refactoring and cleanup
Non-exhaustive list of fixes and improvements done at the same time:
- html default background to grey (avoids white flash during init)
- unified links behavior
- added more theme variables
- removed the flex-expand transition (it wasn't working) and replaced it
with a slide
- fixed LdLoading not centered on the content
- title on removable tags
- fixed an issue with encoded URI from vue-router
- unified Item resource URLs
- removed the iframe for PlainTextViewer (it wasn't working properly)
and replaced it with a pre
- fixed clear and search buttons tabindex
- fixed the information panel bumping up during the fade animation of
tag's dropdown
- fixed some focus outlines not appearing correctly
- moved CSS variables to the :root context
- Code cleaning
GitHub: closes #217
GitHub: closes #300
GitHub: closes #297
GitHub: closes #105
GitHub: closes #267
GitHub: closes #275
GitHub: closes #228
GitHub: closes #215
GitHub: closes #112
Diffstat (limited to 'viewer/src/@types/gallery.ts')
-rw-r--r-- | viewer/src/@types/gallery.ts | 129 |
1 files changed, 129 insertions, 0 deletions
diff --git a/viewer/src/@types/gallery.ts b/viewer/src/@types/gallery.ts new file mode 100644 index 0000000..8c0f177 --- /dev/null +++ b/viewer/src/@types/gallery.ts | |||
@@ -0,0 +1,129 @@ | |||
1 | /* ldgallery - A static generator which turns a collection of tagged | ||
2 | -- pictures into a searchable web gallery. | ||
3 | -- | ||
4 | -- Copyright (C) 2019-2022 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 | import { ItemType } from './itemType'; | ||
21 | import { SplashScreenConfig } from './splashscreen'; | ||
22 | |||
23 | export type ItemSortStr = 'title_asc' | 'date_asc' | 'date_desc'; | ||
24 | |||
25 | export interface Config { | ||
26 | galleryRoot: string; | ||
27 | galleryIndex?: string; | ||
28 | initialItemSort?: ItemSortStr; | ||
29 | initialTagDisplayLimit?: number; | ||
30 | splashScreen?: SplashScreenConfig; | ||
31 | } | ||
32 | |||
33 | // --- | ||
34 | |||
35 | export interface Resolution { | ||
36 | width: number; | ||
37 | height: number; | ||
38 | } | ||
39 | export interface Thumbnail { | ||
40 | resource: string; | ||
41 | resolution: Resolution; | ||
42 | } | ||
43 | export type RawTag = string; | ||
44 | |||
45 | // --- | ||
46 | |||
47 | export interface Downloadable { | ||
48 | resource: string; | ||
49 | type: ItemType; // unknown | ||
50 | } | ||
51 | export interface OtherProperties extends Downloadable { | ||
52 | type: ItemType.OTHER; | ||
53 | } | ||
54 | export interface PictureProperties extends Downloadable { | ||
55 | type: ItemType.PICTURE; | ||
56 | resolution: Resolution; | ||
57 | } | ||
58 | export interface PlainTextProperties extends Downloadable { | ||
59 | type: ItemType.PLAINTEXT; | ||
60 | } | ||
61 | export interface MarkdownProperties extends Downloadable { | ||
62 | type: ItemType.MARKDOWN; | ||
63 | } | ||
64 | export interface PDFProperties extends Downloadable { | ||
65 | type: ItemType.PDF; | ||
66 | } | ||
67 | export interface VideoProperties extends Downloadable { | ||
68 | type: ItemType.VIDEO; | ||
69 | } | ||
70 | export interface AudioProperties extends Downloadable { | ||
71 | type: ItemType.AUDIO; | ||
72 | } | ||
73 | export interface DirectoryProperties { | ||
74 | type: ItemType.DIRECTORY; | ||
75 | // eslint-disable-next-line no-use-before-define | ||
76 | items: Item[]; | ||
77 | } | ||
78 | |||
79 | // --- | ||
80 | |||
81 | export interface Item { | ||
82 | title: string; | ||
83 | datetime: string; | ||
84 | description: string; | ||
85 | tags: RawTag[]; | ||
86 | path: string; | ||
87 | thumbnail?: Thumbnail; | ||
88 | properties: | ||
89 | | Downloadable | ||
90 | | DirectoryProperties; | ||
91 | } | ||
92 | export interface DownloadableItem extends Item { // Special unknown item type | ||
93 | properties: Downloadable; | ||
94 | } | ||
95 | export interface OtherItem extends Item { | ||
96 | properties: OtherProperties; | ||
97 | } | ||
98 | export interface PictureItem extends Item { | ||
99 | properties: PictureProperties; | ||
100 | } | ||
101 | export interface PlainTextItem extends Item { | ||
102 | properties: PlainTextProperties; | ||
103 | } | ||
104 | export interface MarkdownItem extends Item { | ||
105 | properties: MarkdownProperties; | ||
106 | } | ||
107 | export interface PDFItem extends Item { | ||
108 | properties: PDFProperties; | ||
109 | } | ||
110 | export interface VideoItem extends Item { | ||
111 | properties: VideoProperties; | ||
112 | } | ||
113 | export interface AudioItem extends Item { | ||
114 | properties: AudioProperties; | ||
115 | } | ||
116 | export interface DirectoryItem extends Item { | ||
117 | properties: DirectoryProperties; | ||
118 | } | ||
119 | |||
120 | // --- | ||
121 | |||
122 | export interface IndexProperties { | ||
123 | galleryTitle: string; | ||
124 | tagCategories: RawTag[]; | ||
125 | } | ||
126 | export interface Index { | ||
127 | properties: IndexProperties; | ||
128 | tree: DirectoryItem; | ||
129 | } | ||