Consistency: selections now also use _underlying instead of _stub

This commit is contained in:
Rainer Simon 2020-11-28 13:52:41 +01:00
parent bce13d0210
commit 79831fe957
1 changed files with 10 additions and 10 deletions

View File

@ -9,7 +9,7 @@ import { v4 as uuid } from 'uuid';
export default class Selection { export default class Selection {
constructor(target) { constructor(target) {
this._stub = { this._underlying = {
type: 'Selection', type: 'Selection',
body: [], body: [],
target target
@ -19,25 +19,25 @@ export default class Selection {
/** Creates a copy of this selection **/ /** Creates a copy of this selection **/
clone = opt_props => { clone = opt_props => {
// Deep-clone target // Deep-clone target
const clonedTarget = JSON.parse(JSON.stringify(this._stub.target)); const clonedTarget = JSON.parse(JSON.stringify(this._underlying.target));
const cloned = new Selection(clonedTarget); const cloned = new Selection(clonedTarget);
if (opt_props) if (opt_props)
cloned._stub = { ...cloned._stub, ...opt_props }; cloned._underlying = { ...cloned._underlying, ...opt_props };
return cloned; return cloned;
} }
get type() { get type() {
return this._stub.type; return this._underlying.type;
} }
get body() { get body() {
return this._stub.body; return this._underlying.body;
} }
get target() { get target() {
return this._stub.target; return this._underlying.target;
} }
/** For consistency with WebAnnotation **/ /** For consistency with WebAnnotation **/
@ -45,16 +45,16 @@ export default class Selection {
if (!other) { if (!other) {
return false; return false;
} else { } else {
return this._stub === other._stub; return this._underlying === other._underlying;
} }
} }
get bodies() { get bodies() {
return this._stub.body; return this._underlying.body;
} }
selector = type => { selector = type => {
const { target } = this._stub; const { target } = this._underlying;
if (target.selector) { if (target.selector) {
// Normalize to array // Normalize to array
@ -79,7 +79,7 @@ export default class Selection {
} }
toAnnotation = () => { toAnnotation = () => {
const a = Object.assign({}, this._stub, { const a = Object.assign({}, this._underlying, {
'@context': 'http://www.w3.org/ns/anno.jsonld', '@context': 'http://www.w3.org/ns/anno.jsonld',
'type': 'Annotation', 'type': 'Annotation',
'id': `#${uuid()}` 'id': `#${uuid()}`