From 7c2576b0cfb0a15b2a14f6f5ea96de16f0c23b44 Mon Sep 17 00:00:00 2001
From: Zero~Informatique
Date: Tue, 24 Dec 2019 02:22:56 +0100
Subject: viewer: Plugin for Optional chaining and Coalesce. Implemented tag
operations (intersection, addition, substraction). Unified Tag.Search
---
viewer/src/@types/tag/Operation.ts | 5 ++++
viewer/src/@types/tag/index.d.ts | 8 +++---
viewer/src/components/LdTagInput.vue | 48 ++++++++++++++++++++++++++++++------
viewer/src/components/index.ts | 2 +-
viewer/src/plugins/fontawesome.ts | 14 +++++++++--
viewer/src/store/galleryStore.ts | 2 +-
viewer/src/store/uiStore.ts | 2 +-
viewer/src/views/Gallery.vue | 46 ++++++++++++++++++++++++++++++----
8 files changed, 106 insertions(+), 21 deletions(-)
create mode 100644 viewer/src/@types/tag/Operation.ts
(limited to 'viewer/src')
diff --git a/viewer/src/@types/tag/Operation.ts b/viewer/src/@types/tag/Operation.ts
new file mode 100644
index 0000000..a0de92b
--- /dev/null
+++ b/viewer/src/@types/tag/Operation.ts
@@ -0,0 +1,5 @@
+export enum Operation {
+ INTERSECTION = '',
+ ADDITION = '+',
+ SUBSTRACTION = '-',
+};
\ No newline at end of file
diff --git a/viewer/src/@types/tag/index.d.ts b/viewer/src/@types/tag/index.d.ts
index 30bbebb..6a0c605 100644
--- a/viewer/src/@types/tag/index.d.ts
+++ b/viewer/src/@types/tag/index.d.ts
@@ -4,9 +4,11 @@ declare namespace Tag {
items: Gallery.Item[];
children: Index;
}
- interface NodeWithParent extends Node {
- parent: Node;
+ interface Search extends Node {
+ parent?: Node;
+ operation: string; // Enum Operation
+ display: string;
}
- type Search = Node | NodeWithParent;
+ type SearchByOperation = { [index: string]: Tag.Search[] };
type Index = { [index: string]: Node };
}
\ No newline at end of file
diff --git a/viewer/src/components/LdTagInput.vue b/viewer/src/components/LdTagInput.vue
index 4121cd7..daca62d 100644
--- a/viewer/src/components/LdTagInput.vue
+++ b/viewer/src/components/LdTagInput.vue
@@ -6,11 +6,14 @@
ellipsis
attached
:data="filteredTags"
- field="tag"
+ field="display"
type="is-black"
icon="tag"
+ size="is-medium"
class="panelTagInput"
@typing="searchTags"
+ @add="onAdd"
+ @remove="onRemove"
>
{{displayOption(props.option)}}
{{$t('tagInput.nomatch')}}
@@ -19,41 +22,70 @@
--
cgit v1.2.3