diff --git a/packages/reader-commentaries-mode/README.md b/packages/reader-commentaries-mode/README.md
index cc941fe..ac74704 100644
--- a/packages/reader-commentaries-mode/README.md
+++ b/packages/reader-commentaries-mode/README.md
@@ -4,4 +4,6 @@
`$scaife.config.commentariesDisplayModeLabel`
+Callback, passed rootGetters and `$scaife` config object.
+
Default value is `'Commentaries'`.
diff --git a/packages/reader-commentaries-mode/src/CommentariesModeReader.vue b/packages/reader-commentaries-mode/src/CommentariesModeReader.vue
index 7432f46..368c017 100644
--- a/packages/reader-commentaries-mode/src/CommentariesModeReader.vue
+++ b/packages/reader-commentaries-mode/src/CommentariesModeReader.vue
@@ -30,7 +30,11 @@
} from '@scaife-viewer/common';
const displayNameCallback = (rootGetters, $scaife) => {
- return $scaife.config.commentariesDisplayModeLabel || 'Commentaries';
+ const callback = $scaife.config.commentariesDisplayModeLabel;
+ if (callback) {
+ return callback(rootGetters, $scaife)
+ }
+ return 'Commentaries';
};
export default {
diff --git a/packages/store/src/constants.js b/packages/store/src/constants.js
index d83e33b..f8ee224 100644
--- a/packages/store/src/constants.js
+++ b/packages/store/src/constants.js
@@ -49,6 +49,7 @@ export const DISPLAY_MODE_METRICAL = 'metrical';
export const DISPLAY_MODE_DICTIONARY_ENTRIES = 'dictionary-entries';
export const DISPLAY_MODE_NAMED_ENTITIES = 'named-entities';
export const DISPLAY_MODE_COMMENTARIES = 'commentaries';
+export const DISPLAY_MODE_TEXTUAL_NOTES = 'textual-notes';
export const DISPLAY_MODE_SYNTAX_TREES = 'syntax-trees';
export const DISPLAY_MODE_GRAMMATICAL_ENTRIES = 'grammatical-entries';
export const DISPLAY_MODE_FALLBACK = 'fallback';
diff --git a/packages/store/src/index.js b/packages/store/src/index.js
index d8bee09..5b615f4 100644
--- a/packages/store/src/index.js
+++ b/packages/store/src/index.js
@@ -38,6 +38,7 @@ import {
DISPLAY_MODE_DICTIONARY_ENTRIES,
DISPLAY_MODE_NAMED_ENTITIES,
DISPLAY_MODE_COMMENTARIES,
+ DISPLAY_MODE_TEXTUAL_NOTES,
DISPLAY_MODE_SYNTAX_TREES,
DISPLAY_MODE_GRAMMATICAL_ENTRIES,
DISPLAY_MODE_FALLBACK,
@@ -107,6 +108,7 @@ export {
DISPLAY_MODE_DICTIONARY_ENTRIES,
DISPLAY_MODE_NAMED_ENTITIES,
DISPLAY_MODE_COMMENTARIES,
+ DISPLAY_MODE_TEXTUAL_NOTES,
DISPLAY_MODE_SYNTAX_TREES,
DISPLAY_MODE_GRAMMATICAL_ENTRIES,
DISPLAY_MODE_FALLBACK,
diff --git a/packages/store/src/store.js b/packages/store/src/store.js
index a8cb212..3a759bb 100644
--- a/packages/store/src/store.js
+++ b/packages/store/src/store.js
@@ -37,6 +37,7 @@ import {
DISPLAY_MODE_DICTIONARY_ENTRIES,
DISPLAY_MODE_NAMED_ENTITIES,
DISPLAY_MODE_COMMENTARIES,
+ DISPLAY_MODE_TEXTUAL_NOTES,
DISPLAY_MODE_DEFAULT,
DISPLAY_MODE_FALLBACK,
SENSE_EXPANSION_PASSAGE,
@@ -147,6 +148,9 @@ const createStore = client => {
commentariesMode: (_, getters) => {
return getters.displayMode === DISPLAY_MODE_COMMENTARIES;
},
+ textualNotesMode: (_, getters) => {
+ return getters.displayMode === DISPLAY_MODE_TEXTUAL_NOTES;
+ },
fallbackMode: (_, getters) => {
return getters.displayMode === DISPLAY_MODE_FALLBACK;
},
diff --git a/packages/widget-commentary/src/CommentaryWidget2.vue b/packages/widget-commentary/src/CommentaryWidget2.vue
index dc78e1e..9a00f05 100644
--- a/packages/widget-commentary/src/CommentaryWidget2.vue
+++ b/packages/widget-commentary/src/CommentaryWidget2.vue
@@ -197,7 +197,7 @@
filteredLines: {
immediate: true,
handler(newVal) {
- if (newVal) {
+ if (newVal && newVal.length) {
// TODO: Proper mutation
// OPTION B: Filter via selected lines
const lookup = this.buildTokenLookup(newVal);
diff --git a/packages/widget-commentary/src/index.js b/packages/widget-commentary/src/index.js
index dd2e240..31e6e34 100644
--- a/packages/widget-commentary/src/index.js
+++ b/packages/widget-commentary/src/index.js
@@ -1,11 +1,13 @@
// TODO: Export / target SV 2
import CommentaryWidget from './CommentaryWidget.vue';
-
import CommentaryWidget2 from './CommentaryWidget2.vue';
+// NOTE: Used by widget-textual-notes
+import CommentaryLine from './CommentaryLine.vue';
+
const CommentaryWidgetSV1 = CommentaryWidget;
const CommentaryWidgetSV2 = CommentaryWidget2;
export default CommentaryWidgetSV1;
-export { CommentaryWidgetSV1, CommentaryWidgetSV2 };
+export { CommentaryWidgetSV1, CommentaryWidgetSV2, CommentaryLine };
diff --git a/packages/widget-reader/src/ReaderToken.vue b/packages/widget-reader/src/ReaderToken.vue
index caa03cc..85e7c2f 100644
--- a/packages/widget-reader/src/ReaderToken.vue
+++ b/packages/widget-reader/src/ReaderToken.vue
@@ -164,7 +164,11 @@
},
// TODO: Splat from store; revisit docs
commentariesMode() {
- return this.$store.getters[`${MODULE_NS}/commentariesMode`];
+ // TODO: Add textualNotesMode
+ return (
+ this.$store.getters[`${MODULE_NS}/commentariesMode`] ||
+ this.$store.getters[`${MODULE_NS}/textualNotesMode`]
+ );
},
entities() {
return (this.token && this.token.entities) || [];
@@ -267,6 +271,7 @@
// //
// return this.$store.state[MODULE_NS].syncCommentary;
// },
+ // TODO: Textual notes
commentaries() {
if (!this.commentary) {
return [];
diff --git a/packages/widget-textual-notes/LICENSE b/packages/widget-textual-notes/LICENSE
new file mode 100644
index 0000000..8d5af72
--- /dev/null
+++ b/packages/widget-textual-notes/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2017-2023 Perseus Digital Library
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/packages/widget-textual-notes/README.md b/packages/widget-textual-notes/README.md
new file mode 100644
index 0000000..909d934
--- /dev/null
+++ b/packages/widget-textual-notes/README.md
@@ -0,0 +1,6 @@
+# widget-textual-notes
+
+A widget that displays textual notes.
+
+_NOTE:_ This widget reuses code from `@scaife-viewer/widget-commentary`
+
diff --git a/packages/widget-textual-notes/package.json b/packages/widget-textual-notes/package.json
new file mode 100644
index 0000000..39d89dd
--- /dev/null
+++ b/packages/widget-textual-notes/package.json
@@ -0,0 +1,17 @@
+{
+ "name": "@scaife-viewer/widget-textual-notes",
+ "packageManager": "yarn@3.6.4",
+ "version": "0.6.0",
+ "main": "src/index.js",
+ "publishConfig": {
+ "access": "public"
+ },
+ "author": "Eldarion",
+ "license": "MIT",
+ "dependencies": {
+ "@scaife-viewer/common": "^0.6.0",
+ "@scaife-viewer/store": "^0.6.0",
+ "@scaife-viewer/widget-commentary": "^0.6.0",
+ "graphql-tag": "^2.12.6"
+ }
+}
diff --git a/packages/widget-textual-notes/src/TextualNotesWidget.vue b/packages/widget-textual-notes/src/TextualNotesWidget.vue
new file mode 100644
index 0000000..d010e02
--- /dev/null
+++ b/packages/widget-textual-notes/src/TextualNotesWidget.vue
@@ -0,0 +1,469 @@
+
+
+
+
+
+
diff --git a/packages/widget-textual-notes/src/index.js b/packages/widget-textual-notes/src/index.js
new file mode 100644
index 0000000..2aa0dc4
--- /dev/null
+++ b/packages/widget-textual-notes/src/index.js
@@ -0,0 +1,4 @@
+// TODO: Refactor with widget-commentary
+import TextualNotesWidget from './TextualNotesWidget.vue';
+
+export default TextualNotesWidget;
diff --git a/src/ExploreHomer.vue b/src/ExploreHomer.vue
index d9995e1..795b31b 100644
--- a/src/ExploreHomer.vue
+++ b/src/ExploreHomer.vue
@@ -16,6 +16,7 @@
import ReaderWidget from '@scaife-viewer/widget-reader';
import { CommentaryWidgetSV2 } from '@scaife-viewer/widget-commentary';
+ import TextualNotesWidget from '@scaife-viewer/widget-textual-notes';
import RepoMetadataWidget from '@scaife-viewer/widget-repo-metadata';
import MetadataWidget from '@scaife-viewer/widget-metadata';
// FIXME: Restore once we've synchronized ATLAS branches
@@ -90,6 +91,7 @@
MorphologyWidget,
WordListWidget,
NewAlexandriaWidget,
+ TextualNotesWidget,
ScholiaWidget,
CommentaryWidgetSV2,
EmbedWidget,
diff --git a/src/main.js b/src/main.js
index 27ff049..f852af6 100644
--- a/src/main.js
+++ b/src/main.js
@@ -11,6 +11,7 @@ import {
DISPLAY_MODE_DICTIONARY_ENTRIES,
DISPLAY_MODE_NAMED_ENTITIES,
DISPLAY_MODE_COMMENTARIES,
+ DISPLAY_MODE_TEXTUAL_NOTES,
DISPLAY_MODE_SYNTAX_TREES,
DISPLAY_MODE_GRAMMATICAL_ENTRIES,
DISPLAY_MODE_FALLBACK,
@@ -81,6 +82,8 @@ Vue.use(SkeletonPlugin, {
[DISPLAY_MODE_DICTIONARY_ENTRIES]: DictionaryEntriesModeReader,
[DISPLAY_MODE_NAMED_ENTITIES]: NamedEntitiesModeReader,
[DISPLAY_MODE_COMMENTARIES]: CommentariesModeReader,
+ // TODO: Add TextualNotesModeReader
+ [DISPLAY_MODE_TEXTUAL_NOTES]: CommentariesModeReader,
[DISPLAY_MODE_ALIGNMENTS]: AlignmentsModeReader,
[DISPLAY_MODE_SYNTAX_TREES]: SyntaxTreesModeReader,
[DISPLAY_MODE_GRAMMATICAL_ENTRIES]: GrammaticalEntriesModeReader,
diff --git a/yarn.lock b/yarn.lock
index a5f7ac3..e4213cc 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1569,7 +1569,7 @@ __metadata:
dependencies:
"@scaife-viewer/common": ^0.6.0
"@scaife-viewer/store": ^0.6.0
- "@scaife-viewer/widget-attributions": ^0.6.0
+ "@scaife-viewer/widget-attributions": ^0.6.1
graphql-tag: ^2.10.3
languageName: unknown
linkType: soft
@@ -1668,8 +1668,8 @@ __metadata:
dependencies:
"@scaife-viewer/common": ^0.6.0
"@scaife-viewer/store": ^0.6.0
- "@scaife-viewer/vue-treant": ^0.6.0
- "@scaife-viewer/widget-attributions": ^0.6.0
+ "@scaife-viewer/vue-treant": ^0.6.1
+ "@scaife-viewer/widget-attributions": ^0.6.1
graphql-tag: ^2.10.3
vue-apollo: ^3.0.4
languageName: unknown
@@ -1709,7 +1709,7 @@ __metadata:
languageName: unknown
linkType: soft
-"@scaife-viewer/vue-treant@^0.6.0, @scaife-viewer/vue-treant@workspace:packages/vue-treant":
+"@scaife-viewer/vue-treant@^0.6.1, @scaife-viewer/vue-treant@workspace:packages/vue-treant":
version: 0.0.0-use.local
resolution: "@scaife-viewer/vue-treant@workspace:packages/vue-treant"
dependencies:
@@ -1719,7 +1719,7 @@ __metadata:
languageName: unknown
linkType: soft
-"@scaife-viewer/widget-attributions@^0.6.0, @scaife-viewer/widget-attributions@workspace:packages/widget-attributions":
+"@scaife-viewer/widget-attributions@^0.6.1, @scaife-viewer/widget-attributions@workspace:packages/widget-attributions":
version: 0.0.0-use.local
resolution: "@scaife-viewer/widget-attributions@workspace:packages/widget-attributions"
dependencies:
@@ -1739,7 +1739,7 @@ __metadata:
languageName: unknown
linkType: soft
-"@scaife-viewer/widget-commentary@workspace:packages/widget-commentary":
+"@scaife-viewer/widget-commentary@^0.6.0, @scaife-viewer/widget-commentary@workspace:packages/widget-commentary":
version: 0.0.0-use.local
resolution: "@scaife-viewer/widget-commentary@workspace:packages/widget-commentary"
dependencies:
@@ -1958,6 +1958,17 @@ __metadata:
languageName: unknown
linkType: soft
+"@scaife-viewer/widget-textual-notes@workspace:packages/widget-textual-notes":
+ version: 0.0.0-use.local
+ resolution: "@scaife-viewer/widget-textual-notes@workspace:packages/widget-textual-notes"
+ dependencies:
+ "@scaife-viewer/common": ^0.6.0
+ "@scaife-viewer/store": ^0.6.0
+ "@scaife-viewer/widget-commentary": ^0.6.0
+ graphql-tag: ^2.12.6
+ languageName: unknown
+ linkType: soft
+
"@scaife-viewer/widget-toc@workspace:packages/widget-toc":
version: 0.0.0-use.local
resolution: "@scaife-viewer/widget-toc@workspace:packages/widget-toc"