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/services/indexsearch.ts | 70 --------------------------------------
1 file changed, 70 deletions(-)
delete mode 100644 viewer/src/services/indexsearch.ts
(limited to 'viewer/src/services/indexsearch.ts')
diff --git a/viewer/src/services/indexsearch.ts b/viewer/src/services/indexsearch.ts
deleted file mode 100644
index 57bd03c..0000000
--- a/viewer/src/services/indexsearch.ts
+++ /dev/null
@@ -1,70 +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 } from "@/@types/gallery";
-import { Operation } from "@/@types/Operation";
-import { TagSearch, TagSearchByOperation } from "@/@types/tag";
-
-export default class IndexSearch {
- // Results of the search (by tags)
- public static search(searchTags: TagSearch[]): Item[] {
- const byOperation = this.extractTagsByOperation(searchTags);
- const intersection = this.extractIntersection(byOperation);
- const substraction = this.extractSubstraction(byOperation);
- return this.aggregateAll(byOperation, intersection, substraction);
- }
-
- private static extractTagsByOperation(searchTags: TagSearch[]): TagSearchByOperation {
- const byOperation: TagSearchByOperation = {};
- Object.values(Operation).forEach(
- operation => (byOperation[operation] = searchTags.filter(tag => tag.operation === operation))
- );
- return byOperation;
- }
-
- private static extractIntersection(byOperation: TagSearchByOperation): Set- {
- const intersection = new Set
- ();
- if (byOperation[Operation.INTERSECTION].length > 0) {
- byOperation[Operation.INTERSECTION]
- .map(tag => tag.items)
- .reduce((a, b) => a.filter(c => b.includes(c)))
- .flatMap(items => items)
- .forEach(item => intersection.add(item));
- }
- return intersection;
- }
-
- private static extractSubstraction(byOperation: TagSearchByOperation): Set
- {
- const substraction = new Set
- ();
- if (byOperation[Operation.SUBSTRACTION].length > 0) {
- byOperation[Operation.SUBSTRACTION].flatMap(tag => tag.items).forEach(item => substraction.add(item));
- }
- return substraction;
- }
-
- private static aggregateAll(
- byOperation: TagSearchByOperation,
- intersection: Set
- ,
- substraction: Set
-
- ): Item[] {
- byOperation[Operation.ADDITION].flatMap(tag => tag.items).forEach(item => intersection.add(item));
- substraction.forEach(item => intersection.delete(item));
- return [...intersection];
- }
-}
--
cgit v1.2.3