From 9165cc1efcf7791f78b61b2c51a9de651b1b09aa Mon Sep 17 00:00:00 2001 From: Zero~Informatique Date: Fri, 2 Jul 2021 22:53:16 +0200 Subject: viewer: types normalization - gallery.d.ts GitHub: closes #301 --- viewer/src/@types/gallery.d.ts | 183 +++++++++++++++++++++-------------------- viewer/src/@types/tag.d.ts | 6 +- 2 files changed, 95 insertions(+), 94 deletions(-) (limited to 'viewer/src/@types') diff --git a/viewer/src/@types/gallery.d.ts b/viewer/src/@types/gallery.d.ts index e9b80e6..d9e7534 100644 --- a/viewer/src/@types/gallery.d.ts +++ b/viewer/src/@types/gallery.d.ts @@ -17,98 +17,99 @@ -- along with this program. If not, see . */ -declare namespace Gallery { - type ItemSortStr = "title_asc" | "date_asc" | "date_desc"; +import { ItemType } from "./ItemType"; - interface Config { - galleryRoot: string; - galleryIndex?: string; - initialItemSort?: ItemSortStr; - initialTagDisplayLimit?: number; - } +export type ItemSortStr = "title_asc" | "date_asc" | "date_desc"; - interface GalleryProperties { - galleryTitle: string; - tagCategories: RawTag[]; - } - interface Index { - properties: GalleryProperties; - tree: Directory; - } +export interface Config { + galleryRoot: string; + galleryIndex?: string; + initialItemSort?: ItemSortStr; + initialTagDisplayLimit?: number; +} + +export interface Properties { + galleryTitle: string; + tagCategories: RawTag[]; +} +export interface Index { + properties: Properties; + tree: DirectoryItem; +} + +export interface OtherItem extends Item { + properties: OtherProperties; +} +export interface PictureItem extends Item { + properties: PictureProperties; +} +export interface PlainTextItem extends Item { + properties: PlainTextProperties; +} +export interface PDFItem extends Item { + properties: PDFProperties; +} +export interface VideoItem extends Item { + properties: VideoProperties; +} +export interface AudioItem extends Item { + properties: AudioProperties; +} +export interface DirectoryItem extends Item { + properties: DirectoryProperties; +} +export interface Item { + title: string; + datetime: string; + description: string; + tags: RawTag[]; + path: string; + thumbnail?: Thumbnail; + properties: + | OtherProperties + | PictureProperties + | PlainTextProperties + | PDFProperties + | VideoProperties + | AudioProperties + | DirectoryProperties; +} +export interface Resolution { + width: number; + height: number; +} +export interface OtherProperties { + type: ItemType.OTHER; + resource: string; +} +export interface PictureProperties { + type: ItemType.PICTURE; + resource: string; + resolution: Resolution; +} +export interface PlainTextProperties { + type: ItemType.PLAINTEXT; + resource: string; +} +export interface PDFProperties { + type: ItemType.PDF; + resource: string; +} +export interface VideoProperties { + type: ItemType.VIDEO; + resource: string; +} +export interface AudioProperties { + type: ItemType.AUDIO; + resource: string; +} +export interface DirectoryProperties { + type: ItemType.DIRECTORY; + items: Item[]; +} - interface Other extends Item { - properties: OtherProperties; - } - interface Picture extends Item { - properties: PictureProperties; - } - interface PlainText extends Item { - properties: PlainTextProperties; - } - interface PDF extends Item { - properties: PDFProperties; - } - interface Video extends Item { - properties: VideoProperties; - } - interface Audio extends Item { - properties: AudioProperties; - } - interface Directory extends Item { - properties: DirectoryProperties; - } - interface Item { - title: string; - datetime: string; - description: string; - tags: RawTag[]; - path: string; - thumbnail?: Thumbnail; - properties: - | OtherProperties - | PictureProperties - | PlainTextProperties - | PDFProperties - | VideoProperties - | AudioProperties - | DirectoryProperties; - } - interface Resolution { - width: number; - height: number; - } - interface OtherProperties { - type: import("./ItemType").ItemType.OTHER; - resource: string; - } - interface PictureProperties { - type: import("./ItemType").ItemType.PICTURE; - resource: string; - resolution: Resolution; - } - interface PlainTextProperties { - type: import("./ItemType").ItemType.PLAINTEXT; - resource: string; - } - interface PDFProperties { - type: import("./ItemType").ItemType.PDF; - resource: string; - } - interface VideoProperties { - type: import("./ItemType").ItemType.VIDEO; - resource: string; - } - interface AudioProperties { - type: import("./ItemType").ItemType.AUDIO; - resource: string; - } - interface DirectoryProperties { - type: import("./ItemType").ItemType.DIRECTORY; - items: Item[]; - } - interface Thumbnail { - resource: string; - resolution: Resolution; - } - type RawTag = string; +export interface Thumbnail { + resource: string; + resolution: Resolution; } +export type RawTag = string; diff --git a/viewer/src/@types/tag.d.ts b/viewer/src/@types/tag.d.ts index 59ae779..bb908d3 100644 --- a/viewer/src/@types/tag.d.ts +++ b/viewer/src/@types/tag.d.ts @@ -19,11 +19,11 @@ declare namespace Tag { interface Node { - tag: Gallery.RawTag; - tagfiltered: Gallery.RawTag; + tag: RawTag; + tagfiltered: RawTag; rootPart: boolean; childPart: boolean; - items: Gallery.Item[]; + items: Item[]; children: Index; } interface Search extends Node { -- cgit v1.2.3 From 92cb34b719b481faf417760f307241e8f6d777a9 Mon Sep 17 00:00:00 2001 From: Zero~Informatique Date: Fri, 2 Jul 2021 22:59:56 +0200 Subject: viewer: types normalization - tag.d.ts GitHub: closes #301 --- viewer/src/@types/tag.d.ts | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) (limited to 'viewer/src/@types') diff --git a/viewer/src/@types/tag.d.ts b/viewer/src/@types/tag.d.ts index bb908d3..9ed2c04 100644 --- a/viewer/src/@types/tag.d.ts +++ b/viewer/src/@types/tag.d.ts @@ -17,25 +17,25 @@ -- along with this program. If not, see . */ -declare namespace Tag { - interface Node { - tag: RawTag; - tagfiltered: RawTag; - rootPart: boolean; - childPart: boolean; - items: Item[]; - children: Index; - } - interface Search extends Node { - parent?: Node; - operation: string; // Enum Operation - display: string; - } - type SearchByOperation = Record; - type Index = Record; +import { Item, RawTag } from "./gallery"; - interface Category { - tag: string; - index: Index; - } +export interface TagNode { + tag: RawTag; + tagfiltered: RawTag; + rootPart: boolean; + childPart: boolean; + items: Item[]; + children: TagIndex; +} +export interface TagSearch extends TagNode { + parent?: TagNode; + operation: string; // Enum Operation + display: string; +} +export type TagSearchByOperation = Record; +export type TagIndex = Record; + +export interface TagCategory { + tag: string; + index: TagIndex; } -- cgit v1.2.3 From 4fa86b565c2055f11e87991b61ba3844c3da8894 Mon Sep 17 00:00:00 2001 From: Zero~Informatique Date: Fri, 2 Jul 2021 23:04:32 +0200 Subject: viewer: types normalization - ItemType.ts GitHub: closes #301 --- viewer/src/@types/ItemType.ts | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'viewer/src/@types') diff --git a/viewer/src/@types/ItemType.ts b/viewer/src/@types/ItemType.ts index 31a395b..9974d4e 100644 --- a/viewer/src/@types/ItemType.ts +++ b/viewer/src/@types/ItemType.ts @@ -1,4 +1,21 @@ -// TODO: Convert all ambiant types related to LdGallery to modules +/* ldgallery - A static generator which turns a collection of tagged +-- pictures into a searchable web gallery. +-- +-- Copyright (C) 2019-2021 Guillaume FOUET +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU Affero General Public License as +-- published by the Free Software Foundation, either version 3 of the +-- License, or (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU Affero General Public License for more details. +-- +-- You should have received a copy of the GNU Affero General Public License +-- along with this program. If not, see . +*/ export enum ItemType { OTHER = "other", -- cgit v1.2.3 From 1f0377c1b4c2959c73fe4e368673f057ef369917 Mon Sep 17 00:00:00 2001 From: Zero~Informatique Date: Fri, 2 Jul 2021 23:04:52 +0200 Subject: viewer: types normalization - scrollposition.d.ts GitHub: closes #301 --- viewer/src/@types/scrollposition.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'viewer/src/@types') diff --git a/viewer/src/@types/scrollposition.d.ts b/viewer/src/@types/scrollposition.d.ts index 2f17515..0102eab 100644 --- a/viewer/src/@types/scrollposition.d.ts +++ b/viewer/src/@types/scrollposition.d.ts @@ -17,4 +17,4 @@ -- along with this program. If not, see . */ -type ScrollPosition = Record; +export type ScrollPosition = Record; -- cgit v1.2.3 From 928c501dda0c3580e3cb0389efc16fc1dde16b68 Mon Sep 17 00:00:00 2001 From: Zero~Informatique Date: Sat, 3 Jul 2021 05:06:44 +0200 Subject: viewer: optional user-defined markdown splash screen GitHub: closes #284 --- viewer/src/@types/gallery.d.ts | 2 ++ viewer/src/@types/splashscreen.d.ts | 25 +++++++++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 viewer/src/@types/splashscreen.d.ts (limited to 'viewer/src/@types') diff --git a/viewer/src/@types/gallery.d.ts b/viewer/src/@types/gallery.d.ts index d9e7534..9011f19 100644 --- a/viewer/src/@types/gallery.d.ts +++ b/viewer/src/@types/gallery.d.ts @@ -18,6 +18,7 @@ */ import { ItemType } from "./ItemType"; +import { SplashScreenConfig } from "./splashscreen"; export type ItemSortStr = "title_asc" | "date_asc" | "date_desc"; @@ -26,6 +27,7 @@ export interface Config { galleryIndex?: string; initialItemSort?: ItemSortStr; initialTagDisplayLimit?: number; + splashScreen?: SplashScreenConfig; } export interface Properties { diff --git a/viewer/src/@types/splashscreen.d.ts b/viewer/src/@types/splashscreen.d.ts new file mode 100644 index 0000000..bd79f80 --- /dev/null +++ b/viewer/src/@types/splashscreen.d.ts @@ -0,0 +1,25 @@ +/* ldgallery - A static generator which turns a collection of tagged +-- pictures into a searchable web gallery. +-- +-- Copyright (C) 2019-2021 Guillaume FOUET +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU Affero General Public License as +-- published by the Free Software Foundation, either version 3 of the +-- License, or (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU Affero General Public License for more details. +-- +-- You should have received a copy of the GNU Affero General Public License +-- along with this program. If not, see . +*/ + +export interface SplashScreenConfig { + resource?: string; + dontshowagainUID?: string; + buttonAcknowledgeLabel?: string; + style?: any; +} -- cgit v1.2.3 From c83f44cd69a227f873a026c01653ef434b6ae045 Mon Sep 17 00:00:00 2001 From: Zero~Informatique Date: Mon, 5 Jul 2021 19:10:20 +0200 Subject: viewer: viewer: optional user-defined markdown splash screen Code review changes --- viewer/src/@types/splashscreen.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'viewer/src/@types') diff --git a/viewer/src/@types/splashscreen.d.ts b/viewer/src/@types/splashscreen.d.ts index bd79f80..4e03fa8 100644 --- a/viewer/src/@types/splashscreen.d.ts +++ b/viewer/src/@types/splashscreen.d.ts @@ -19,7 +19,7 @@ export interface SplashScreenConfig { resource?: string; - dontshowagainUID?: string; + acknowledgmentKey?: string; buttonAcknowledgeLabel?: string; style?: any; } -- cgit v1.2.3 From 2bd63dc7622c0f84383fb76f7e2c4380d3f78495 Mon Sep 17 00:00:00 2001 From: Zero~Informatique Date: Sat, 3 Jul 2021 23:07:09 +0200 Subject: viewer: register markdown item type Extracted from b170f49 (GH PR #304) --- viewer/src/@types/ItemType.ts | 1 + viewer/src/@types/gallery.d.ts | 8 ++++++++ 2 files changed, 9 insertions(+) (limited to 'viewer/src/@types') diff --git a/viewer/src/@types/ItemType.ts b/viewer/src/@types/ItemType.ts index 9974d4e..5ef38d8 100644 --- a/viewer/src/@types/ItemType.ts +++ b/viewer/src/@types/ItemType.ts @@ -21,6 +21,7 @@ export enum ItemType { OTHER = "other", PICTURE = "picture", PLAINTEXT = "plaintext", + MARKDOWN = "markdown", PDF = "pdf", VIDEO = "video", AUDIO = "audio", diff --git a/viewer/src/@types/gallery.d.ts b/viewer/src/@types/gallery.d.ts index 9011f19..0b4cfc4 100644 --- a/viewer/src/@types/gallery.d.ts +++ b/viewer/src/@types/gallery.d.ts @@ -48,6 +48,9 @@ export interface PictureItem extends Item { export interface PlainTextItem extends Item { properties: PlainTextProperties; } +export interface MarkdownItem extends Item { + properties: MarkdownProperties; +} export interface PDFItem extends Item { properties: PDFProperties; } @@ -71,6 +74,7 @@ export interface Item { | OtherProperties | PictureProperties | PlainTextProperties + | MarkdownProperties | PDFProperties | VideoProperties | AudioProperties @@ -93,6 +97,10 @@ export interface PlainTextProperties { type: ItemType.PLAINTEXT; resource: string; } +export interface MarkdownProperties { + type: ItemType.MARKDOWN; + resource: string; +} export interface PDFProperties { type: ItemType.PDF; resource: string; -- cgit v1.2.3 From 00510820a2794efcadbc83f7f8b54318fe198ecb Mon Sep 17 00:00:00 2001 From: Zéro~Informatique Date: Tue, 26 Jul 2022 08:44:34 +0200 Subject: 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 --- viewer/src/@types/ItemType.ts | 29 -------- viewer/src/@types/Operation.ts | 24 ------- viewer/src/@types/gallery.d.ts | 125 -------------------------------- viewer/src/@types/gallery.ts | 129 ++++++++++++++++++++++++++++++++++ viewer/src/@types/itemType.ts | 29 ++++++++ viewer/src/@types/operation.ts | 24 +++++++ viewer/src/@types/scrollposition.d.ts | 20 ------ viewer/src/@types/splashscreen.d.ts | 25 ------- viewer/src/@types/splashscreen.ts | 25 +++++++ viewer/src/@types/tag.d.ts | 41 ----------- viewer/src/@types/tag.ts | 42 +++++++++++ viewer/src/@types/v-lazy-image.d.ts | 20 ------ viewer/src/@types/vue-dragscroll.d.ts | 20 ------ 13 files changed, 249 insertions(+), 304 deletions(-) delete mode 100644 viewer/src/@types/ItemType.ts delete mode 100644 viewer/src/@types/Operation.ts delete mode 100644 viewer/src/@types/gallery.d.ts create mode 100644 viewer/src/@types/gallery.ts create mode 100644 viewer/src/@types/itemType.ts create mode 100644 viewer/src/@types/operation.ts delete mode 100644 viewer/src/@types/scrollposition.d.ts delete mode 100644 viewer/src/@types/splashscreen.d.ts create mode 100644 viewer/src/@types/splashscreen.ts delete mode 100644 viewer/src/@types/tag.d.ts create mode 100644 viewer/src/@types/tag.ts delete mode 100644 viewer/src/@types/v-lazy-image.d.ts delete mode 100644 viewer/src/@types/vue-dragscroll.d.ts (limited to 'viewer/src/@types') diff --git a/viewer/src/@types/ItemType.ts b/viewer/src/@types/ItemType.ts deleted file mode 100644 index 5ef38d8..0000000 --- a/viewer/src/@types/ItemType.ts +++ /dev/null @@ -1,29 +0,0 @@ -/* ldgallery - A static generator which turns a collection of tagged --- pictures into a searchable web gallery. --- --- Copyright (C) 2019-2021 Guillaume FOUET --- --- This program is free software: you can redistribute it and/or modify --- it under the terms of the GNU Affero General Public License as --- published by the Free Software Foundation, either version 3 of the --- License, or (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU Affero General Public License for more details. --- --- You should have received a copy of the GNU Affero General Public License --- along with this program. If not, see . -*/ - -export enum ItemType { - OTHER = "other", - PICTURE = "picture", - PLAINTEXT = "plaintext", - MARKDOWN = "markdown", - PDF = "pdf", - VIDEO = "video", - AUDIO = "audio", - DIRECTORY = "directory", -} diff --git a/viewer/src/@types/Operation.ts b/viewer/src/@types/Operation.ts deleted file mode 100644 index e566f4b..0000000 --- a/viewer/src/@types/Operation.ts +++ /dev/null @@ -1,24 +0,0 @@ -/* ldgallery - A static generator which turns a collection of tagged --- pictures into a searchable web gallery. --- --- Copyright (C) 2019-2020 Guillaume FOUET --- --- This program is free software: you can redistribute it and/or modify --- it under the terms of the GNU Affero General Public License as --- published by the Free Software Foundation, either version 3 of the --- License, or (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU Affero General Public License for more details. --- --- You should have received a copy of the GNU Affero General Public License --- along with this program. If not, see . -*/ - -export enum Operation { - INTERSECTION = "", - ADDITION = "+", - SUBSTRACTION = "-", -} diff --git a/viewer/src/@types/gallery.d.ts b/viewer/src/@types/gallery.d.ts deleted file mode 100644 index 0b4cfc4..0000000 --- a/viewer/src/@types/gallery.d.ts +++ /dev/null @@ -1,125 +0,0 @@ -/* ldgallery - A static generator which turns a collection of tagged --- pictures into a searchable web gallery. --- --- Copyright (C) 2019-2020 Guillaume FOUET --- --- This program is free software: you can redistribute it and/or modify --- it under the terms of the GNU Affero General Public License as --- published by the Free Software Foundation, either version 3 of the --- License, or (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU Affero General Public License for more details. --- --- You should have received a copy of the GNU Affero General Public License --- along with this program. If not, see . -*/ - -import { ItemType } from "./ItemType"; -import { SplashScreenConfig } from "./splashscreen"; - -export type ItemSortStr = "title_asc" | "date_asc" | "date_desc"; - -export interface Config { - galleryRoot: string; - galleryIndex?: string; - initialItemSort?: ItemSortStr; - initialTagDisplayLimit?: number; - splashScreen?: SplashScreenConfig; -} - -export interface Properties { - galleryTitle: string; - tagCategories: RawTag[]; -} -export interface Index { - properties: Properties; - tree: DirectoryItem; -} - -export interface OtherItem extends Item { - properties: OtherProperties; -} -export interface PictureItem extends Item { - properties: PictureProperties; -} -export interface PlainTextItem extends Item { - properties: PlainTextProperties; -} -export interface MarkdownItem extends Item { - properties: MarkdownProperties; -} -export interface PDFItem extends Item { - properties: PDFProperties; -} -export interface VideoItem extends Item { - properties: VideoProperties; -} -export interface AudioItem extends Item { - properties: AudioProperties; -} -export interface DirectoryItem extends Item { - properties: DirectoryProperties; -} -export interface Item { - title: string; - datetime: string; - description: string; - tags: RawTag[]; - path: string; - thumbnail?: Thumbnail; - properties: - | OtherProperties - | PictureProperties - | PlainTextProperties - | MarkdownProperties - | PDFProperties - | VideoProperties - | AudioProperties - | DirectoryProperties; -} -export interface Resolution { - width: number; - height: number; -} -export interface OtherProperties { - type: ItemType.OTHER; - resource: string; -} -export interface PictureProperties { - type: ItemType.PICTURE; - resource: string; - resolution: Resolution; -} -export interface PlainTextProperties { - type: ItemType.PLAINTEXT; - resource: string; -} -export interface MarkdownProperties { - type: ItemType.MARKDOWN; - resource: string; -} -export interface PDFProperties { - type: ItemType.PDF; - resource: string; -} -export interface VideoProperties { - type: ItemType.VIDEO; - resource: string; -} -export interface AudioProperties { - type: ItemType.AUDIO; - resource: string; -} -export interface DirectoryProperties { - type: ItemType.DIRECTORY; - items: Item[]; -} - -export interface Thumbnail { - resource: string; - resolution: Resolution; -} -export type RawTag = string; 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 @@ +/* ldgallery - A static generator which turns a collection of tagged +-- pictures into a searchable web gallery. +-- +-- Copyright (C) 2019-2022 Guillaume FOUET +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU Affero General Public License as +-- published by the Free Software Foundation, either version 3 of the +-- License, or (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU Affero General Public License for more details. +-- +-- You should have received a copy of the GNU Affero General Public License +-- along with this program. If not, see . +*/ + +import { ItemType } from './itemType'; +import { SplashScreenConfig } from './splashscreen'; + +export type ItemSortStr = 'title_asc' | 'date_asc' | 'date_desc'; + +export interface Config { + galleryRoot: string; + galleryIndex?: string; + initialItemSort?: ItemSortStr; + initialTagDisplayLimit?: number; + splashScreen?: SplashScreenConfig; +} + +// --- + +export interface Resolution { + width: number; + height: number; +} +export interface Thumbnail { + resource: string; + resolution: Resolution; +} +export type RawTag = string; + +// --- + +export interface Downloadable { + resource: string; + type: ItemType; // unknown +} +export interface OtherProperties extends Downloadable { + type: ItemType.OTHER; +} +export interface PictureProperties extends Downloadable { + type: ItemType.PICTURE; + resolution: Resolution; +} +export interface PlainTextProperties extends Downloadable { + type: ItemType.PLAINTEXT; +} +export interface MarkdownProperties extends Downloadable { + type: ItemType.MARKDOWN; +} +export interface PDFProperties extends Downloadable { + type: ItemType.PDF; +} +export interface VideoProperties extends Downloadable { + type: ItemType.VIDEO; +} +export interface AudioProperties extends Downloadable { + type: ItemType.AUDIO; +} +export interface DirectoryProperties { + type: ItemType.DIRECTORY; + // eslint-disable-next-line no-use-before-define + items: Item[]; +} + +// --- + +export interface Item { + title: string; + datetime: string; + description: string; + tags: RawTag[]; + path: string; + thumbnail?: Thumbnail; + properties: + | Downloadable + | DirectoryProperties; +} +export interface DownloadableItem extends Item { // Special unknown item type + properties: Downloadable; +} +export interface OtherItem extends Item { + properties: OtherProperties; +} +export interface PictureItem extends Item { + properties: PictureProperties; +} +export interface PlainTextItem extends Item { + properties: PlainTextProperties; +} +export interface MarkdownItem extends Item { + properties: MarkdownProperties; +} +export interface PDFItem extends Item { + properties: PDFProperties; +} +export interface VideoItem extends Item { + properties: VideoProperties; +} +export interface AudioItem extends Item { + properties: AudioProperties; +} +export interface DirectoryItem extends Item { + properties: DirectoryProperties; +} + +// --- + +export interface IndexProperties { + galleryTitle: string; + tagCategories: RawTag[]; +} +export interface Index { + properties: IndexProperties; + tree: DirectoryItem; +} diff --git a/viewer/src/@types/itemType.ts b/viewer/src/@types/itemType.ts new file mode 100644 index 0000000..ecab05c --- /dev/null +++ b/viewer/src/@types/itemType.ts @@ -0,0 +1,29 @@ +/* ldgallery - A static generator which turns a collection of tagged +-- pictures into a searchable web gallery. +-- +-- Copyright (C) 2019-2021 Guillaume FOUET +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU Affero General Public License as +-- published by the Free Software Foundation, either version 3 of the +-- License, or (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU Affero General Public License for more details. +-- +-- You should have received a copy of the GNU Affero General Public License +-- along with this program. If not, see . +*/ + +export enum ItemType { + OTHER = 'other', + PICTURE = 'picture', + PLAINTEXT = 'plaintext', + MARKDOWN = 'markdown', + PDF = 'pdf', + VIDEO = 'video', + AUDIO = 'audio', + DIRECTORY = 'directory', +} diff --git a/viewer/src/@types/operation.ts b/viewer/src/@types/operation.ts new file mode 100644 index 0000000..ec6a2d3 --- /dev/null +++ b/viewer/src/@types/operation.ts @@ -0,0 +1,24 @@ +/* ldgallery - A static generator which turns a collection of tagged +-- pictures into a searchable web gallery. +-- +-- Copyright (C) 2019-2022 Guillaume FOUET +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU Affero General Public License as +-- published by the Free Software Foundation, either version 3 of the +-- License, or (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU Affero General Public License for more details. +-- +-- You should have received a copy of the GNU Affero General Public License +-- along with this program. If not, see . +*/ + +export enum Operation { + INTERSECTION = '', + ADDITION = '+', + SUBSTRACTION = '-', +} diff --git a/viewer/src/@types/scrollposition.d.ts b/viewer/src/@types/scrollposition.d.ts deleted file mode 100644 index 0102eab..0000000 --- a/viewer/src/@types/scrollposition.d.ts +++ /dev/null @@ -1,20 +0,0 @@ -/* ldgallery - A static generator which turns a collection of tagged --- pictures into a searchable web gallery. --- --- Copyright (C) 2019-2020 Guillaume FOUET --- --- This program is free software: you can redistribute it and/or modify --- it under the terms of the GNU Affero General Public License as --- published by the Free Software Foundation, either version 3 of the --- License, or (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU Affero General Public License for more details. --- --- You should have received a copy of the GNU Affero General Public License --- along with this program. If not, see . -*/ - -export type ScrollPosition = Record; diff --git a/viewer/src/@types/splashscreen.d.ts b/viewer/src/@types/splashscreen.d.ts deleted file mode 100644 index 4e03fa8..0000000 --- a/viewer/src/@types/splashscreen.d.ts +++ /dev/null @@ -1,25 +0,0 @@ -/* ldgallery - A static generator which turns a collection of tagged --- pictures into a searchable web gallery. --- --- Copyright (C) 2019-2021 Guillaume FOUET --- --- This program is free software: you can redistribute it and/or modify --- it under the terms of the GNU Affero General Public License as --- published by the Free Software Foundation, either version 3 of the --- License, or (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU Affero General Public License for more details. --- --- You should have received a copy of the GNU Affero General Public License --- along with this program. If not, see . -*/ - -export interface SplashScreenConfig { - resource?: string; - acknowledgmentKey?: string; - buttonAcknowledgeLabel?: string; - style?: any; -} diff --git a/viewer/src/@types/splashscreen.ts b/viewer/src/@types/splashscreen.ts new file mode 100644 index 0000000..ea2e331 --- /dev/null +++ b/viewer/src/@types/splashscreen.ts @@ -0,0 +1,25 @@ +/* ldgallery - A static generator which turns a collection of tagged +-- pictures into a searchable web gallery. +-- +-- Copyright (C) 2019-2021 Guillaume FOUET +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU Affero General Public License as +-- published by the Free Software Foundation, either version 3 of the +-- License, or (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU Affero General Public License for more details. +-- +-- You should have received a copy of the GNU Affero General Public License +-- along with this program. If not, see . +*/ + +export interface SplashScreenConfig { + resource?: string; + acknowledgmentKey?: string; + buttonAcknowledgeLabel?: string; + style?: unknown; +} diff --git a/viewer/src/@types/tag.d.ts b/viewer/src/@types/tag.d.ts deleted file mode 100644 index 9ed2c04..0000000 --- a/viewer/src/@types/tag.d.ts +++ /dev/null @@ -1,41 +0,0 @@ -/* ldgallery - A static generator which turns a collection of tagged --- pictures into a searchable web gallery. --- --- Copyright (C) 2019-2020 Guillaume FOUET --- --- This program is free software: you can redistribute it and/or modify --- it under the terms of the GNU Affero General Public License as --- published by the Free Software Foundation, either version 3 of the --- License, or (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU Affero General Public License for more details. --- --- You should have received a copy of the GNU Affero General Public License --- along with this program. If not, see . -*/ - -import { Item, RawTag } from "./gallery"; - -export interface TagNode { - tag: RawTag; - tagfiltered: RawTag; - rootPart: boolean; - childPart: boolean; - items: Item[]; - children: TagIndex; -} -export interface TagSearch extends TagNode { - parent?: TagNode; - operation: string; // Enum Operation - display: string; -} -export type TagSearchByOperation = Record; -export type TagIndex = Record; - -export interface TagCategory { - tag: string; - index: TagIndex; -} diff --git a/viewer/src/@types/tag.ts b/viewer/src/@types/tag.ts new file mode 100644 index 0000000..4c909f2 --- /dev/null +++ b/viewer/src/@types/tag.ts @@ -0,0 +1,42 @@ +/* ldgallery - A static generator which turns a collection of tagged +-- pictures into a searchable web gallery. +-- +-- Copyright (C) 2019-2022 Guillaume FOUET +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU Affero General Public License as +-- published by the Free Software Foundation, either version 3 of the +-- License, or (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU Affero General Public License for more details. +-- +-- You should have received a copy of the GNU Affero General Public License +-- along with this program. If not, see . +*/ + +import { Item, RawTag } from './gallery'; + +export interface TagNode { + tag: RawTag; + tagfiltered: RawTag; + rootPart: boolean; + childPart: boolean; + items: Item[]; + // eslint-disable-next-line no-use-before-define + children: TagIndex; +} +export interface TagSearch extends TagNode { + parent?: TagNode; + operation: string; // Enum Operation + display: string; +} +export type TagSearchByOperation = Record; +export type TagIndex = Record; + +export interface TagCategory { + tag: string; + index: TagIndex; +} diff --git a/viewer/src/@types/v-lazy-image.d.ts b/viewer/src/@types/v-lazy-image.d.ts deleted file mode 100644 index 2777921..0000000 --- a/viewer/src/@types/v-lazy-image.d.ts +++ /dev/null @@ -1,20 +0,0 @@ -/* ldgallery - A static generator which turns a collection of tagged --- pictures into a searchable web gallery. --- --- Copyright (C) 2019-2020 Guillaume FOUET --- --- This program is free software: you can redistribute it and/or modify --- it under the terms of the GNU Affero General Public License as --- published by the Free Software Foundation, either version 3 of the --- License, or (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU Affero General Public License for more details. --- --- You should have received a copy of the GNU Affero General Public License --- along with this program. If not, see . -*/ - -declare module "v-lazy-image"; diff --git a/viewer/src/@types/vue-dragscroll.d.ts b/viewer/src/@types/vue-dragscroll.d.ts deleted file mode 100644 index c07c7d8..0000000 --- a/viewer/src/@types/vue-dragscroll.d.ts +++ /dev/null @@ -1,20 +0,0 @@ -/* ldgallery - A static generator which turns a collection of tagged --- pictures into a searchable web gallery. --- --- Copyright (C) 2019-2020 Guillaume FOUET --- --- This program is free software: you can redistribute it and/or modify --- it under the terms of the GNU Affero General Public License as --- published by the Free Software Foundation, either version 3 of the --- License, or (at your option) any later version. --- --- This program is distributed in the hope that it will be useful, --- but WITHOUT ANY WARRANTY; without even the implied warranty of --- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --- GNU Affero General Public License for more details. --- --- You should have received a copy of the GNU Affero General Public License --- along with this program. If not, see . -*/ - -declare module "vue-dragscroll"; -- cgit v1.2.3