diff options
Diffstat (limited to 'src/data/things/artwork.js')
-rw-r--r-- | src/data/things/artwork.js | 61 |
1 files changed, 27 insertions, 34 deletions
diff --git a/src/data/things/artwork.js b/src/data/things/artwork.js index 8c88dea7..3cdb07d0 100644 --- a/src/data/things/artwork.js +++ b/src/data/things/artwork.js @@ -54,9 +54,10 @@ import { } from '#composite/wiki-properties'; import { + withAttachedArtwork, withContainingArtworkList, - withContribsFromMainArtwork, - withPropertyFromMainArtwork, + withContribsFromAttachedArtwork, + withPropertyFromAttachedArtwork, withDate, } from '#composite/things/artwork'; @@ -178,10 +179,10 @@ export class Artwork extends Thing { mode: input.value('empty'), }), - withContribsFromMainArtwork(), + withContribsFromAttachedArtwork(), exposeDependencyOrContinue({ - dependency: '#mainArtwork.artistContribs', + dependency: '#attachedArtwork.artistContribs', }), exitWithoutDependency({ @@ -222,13 +223,12 @@ export class Artwork extends Thing { mode: input.value('empty'), }), - withPropertyFromMainArtwork({ + withPropertyFromAttachedArtwork({ property: input.value('artTags'), - onlyIfAttached: input.value(true), }), exposeDependencyOrContinue({ - dependency: '#mainArtwork.artTags', + dependency: '#attachedArtwork.artTags', }), exitWithoutDependency({ @@ -360,36 +360,17 @@ export class Artwork extends Thing { }, ], - siblingArtworks: [ - withContainingArtworkList(), - - exitWithoutDependency({ - dependency: '#containingArtworkList', - value: input.value(null), - }), + attachedArtwork: [ + withAttachedArtwork(), - withIndexInList({ - list: '#containingArtworkList', - item: input.myself(), - }), - - exitWithoutDependency({ - dependency: '#index', - mode: input.value('index'), - value: input.value(null), + exposeDependency({ + dependency: '#attachedArtwork', }), - - { - dependencies: ['#containingArtworkList', '#index'], - compute: ({ - ['#containingArtworkList']: list, - ['#index']: index, - }) => [ - ...list.slice(0, index), - ...list.slice(index + 1), - ], - }, ], + + attachingArtworks: reverseReferenceList({ + reverse: soupyReverse.input('artworksWhichAttach'), + }), }); static [Thing.yamlDocumentSpec] = { @@ -448,6 +429,18 @@ export class Artwork extends Thing { date: ({artwork}) => artwork.date, }, + artworksWhichAttach: { + bindTo: 'artworkData', + + referencing: referencingArtwork => + (referencingArtwork.attachAbove + ? [referencingArtwork] + : []), + + referenced: referencingArtwork => + [referencingArtwork.attachedArtwork], + }, + artworksWhichFeature: { bindTo: 'artworkData', |