aboutsummaryrefslogtreecommitdiff
path: root/viewer/src/@types/gallery.d.ts
diff options
context:
space:
mode:
Diffstat (limited to 'viewer/src/@types/gallery.d.ts')
-rw-r--r--viewer/src/@types/gallery.d.ts92
1 files changed, 66 insertions, 26 deletions
diff --git a/viewer/src/@types/gallery.d.ts b/viewer/src/@types/gallery.d.ts
index 066aedf..e9b80e6 100644
--- a/viewer/src/@types/gallery.d.ts
+++ b/viewer/src/@types/gallery.d.ts
@@ -18,57 +18,97 @@
18*/ 18*/
19 19
20declare namespace Gallery { 20declare namespace Gallery {
21 type ItemSortStr = "title_asc" | "date_asc" | "date_desc";
22
21 interface Config { 23 interface Config {
22 galleryRoot: string, 24 galleryRoot: string;
25 galleryIndex?: string;
26 initialItemSort?: ItemSortStr;
27 initialTagDisplayLimit?: number;
23 } 28 }
24 29
25 interface GalleryProperties { 30 interface GalleryProperties {
26 galleryTitle: string, 31 galleryTitle: string;
27 tagCategories: RawTag[] 32 tagCategories: RawTag[];
28 } 33 }
29 interface Index { 34 interface Index {
30 properties: GalleryProperties, 35 properties: GalleryProperties;
31 tree: Directory 36 tree: Directory;
32 } 37 }
33 38
34 interface Other extends Item { 39 interface Other extends Item {
35 properties: OtherProperties, 40 properties: OtherProperties;
36 } 41 }
37 interface Picture extends Item { 42 interface Picture extends Item {
38 properties: PictureProperties, 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;
39 } 56 }
40 interface Directory extends Item { 57 interface Directory extends Item {
41 properties: DirectoryProperties, 58 properties: DirectoryProperties;
42 } 59 }
43 interface Item { 60 interface Item {
44 title: string, 61 title: string;
45 datetime: string, 62 datetime: string;
46 description: string, 63 description: string;
47 tags: RawTag[], 64 tags: RawTag[];
48 path: string, 65 path: string;
49 thumbnail?: Thumbnail 66 thumbnail?: Thumbnail;
50 properties: OtherProperties | PictureProperties | DirectoryProperties, 67 properties:
68 | OtherProperties
69 | PictureProperties
70 | PlainTextProperties
71 | PDFProperties
72 | VideoProperties
73 | AudioProperties
74 | DirectoryProperties;
51 } 75 }
52 interface Resolution { 76 interface Resolution {
53 width: number, 77 width: number;
54 height: number, 78 height: number;
55 } 79 }
56 interface OtherProperties { 80 interface OtherProperties {
57 type: "other", 81 type: import("./ItemType").ItemType.OTHER;
82 resource: string;
58 } 83 }
59 interface PictureProperties { 84 interface PictureProperties {
60 type: "picture", 85 type: import("./ItemType").ItemType.PICTURE;
61 resource: string, 86 resource: string;
62 resolution: Resolution 87 resolution: Resolution;
88 }
89 interface PlainTextProperties {
90 type: import("./ItemType").ItemType.PLAINTEXT;
91 resource: string;
92 }
93 interface PDFProperties {
94 type: import("./ItemType").ItemType.PDF;
95 resource: string;
96 }
97 interface VideoProperties {
98 type: import("./ItemType").ItemType.VIDEO;
99 resource: string;
100 }
101 interface AudioProperties {
102 type: import("./ItemType").ItemType.AUDIO;
103 resource: string;
63 } 104 }
64 interface DirectoryProperties { 105 interface DirectoryProperties {
65 type: "directory", 106 type: import("./ItemType").ItemType.DIRECTORY;
66 items: Item[] 107 items: Item[];
67 } 108 }
68 interface Thumbnail { 109 interface Thumbnail {
69 resource: string, 110 resource: string;
70 resolution: Resolution 111 resolution: Resolution;
71 } 112 }
72 type RawTag = string; 113 type RawTag = string;
73 type ItemType = "other" | "picture" | "directory";
74} 114}