From aea4995ff0aea1baf9fd4aaaf4cf096a53e94f99 Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Wed, 4 Oct 2023 13:16:50 -0300 Subject: support art tag info pages; ensure "art tag" terminology everywhere --- src/data/checks.js | 2 +- src/data/composite/things/art-tag/index.js | 2 +- .../things/art-tag/withAllDescendantArtTags.js | 44 ++++++++++++++++++++++ .../things/art-tag/withAllDescendantTags.js | 44 ---------------------- src/data/things/art-tag.js | 34 +++++++++-------- 5 files changed, 64 insertions(+), 62 deletions(-) create mode 100644 src/data/composite/things/art-tag/withAllDescendantArtTags.js delete mode 100644 src/data/composite/things/art-tag/withAllDescendantTags.js (limited to 'src/data') diff --git a/src/data/checks.js b/src/data/checks.js index 8698e877..e46f97ef 100644 --- a/src/data/checks.js +++ b/src/data/checks.js @@ -189,7 +189,7 @@ export function filterReferenceErrors(wikiData, { }], ['artTagData', { - directDescendantTags: 'artTag', + directDescendantArtTags: 'artTag', }], ['flashData', { diff --git a/src/data/composite/things/art-tag/index.js b/src/data/composite/things/art-tag/index.js index aedc3a0c..0c365ce2 100644 --- a/src/data/composite/things/art-tag/index.js +++ b/src/data/composite/things/art-tag/index.js @@ -1 +1 @@ -export {default as withAllDescendantTags} from './withAllDescendantTags.js'; +export {default as withAllDescendantArtTags} from './withAllDescendantArtTags.js'; diff --git a/src/data/composite/things/art-tag/withAllDescendantArtTags.js b/src/data/composite/things/art-tag/withAllDescendantArtTags.js new file mode 100644 index 00000000..795f96cd --- /dev/null +++ b/src/data/composite/things/art-tag/withAllDescendantArtTags.js @@ -0,0 +1,44 @@ +// Gets all the art tags which descend from this one - that means its own direct +// descendants, but also all the direct and indirect desceands of each of those! +// The results aren't specially sorted, but they won't contain any duplicates +// (for example if two descendant tags both route deeper to end up including +// some of the same tags). + +import {input, templateCompositeFrom} from '#composite'; +import {unique} from '#sugar'; + +import {raiseOutputWithoutDependency} from '#composite/control-flow'; +import {withResolvedReferenceList} from '#composite/wiki-data'; +import {soupyFind} from '#composite/wiki-properties'; + +export default templateCompositeFrom({ + annotation: `withAllDescendantArtTags`, + + outputs: ['#allDescendantArtTags'], + + steps: () => [ + raiseOutputWithoutDependency({ + dependency: 'directDescendantArtTags', + mode: input.value('empty'), + output: input.value({'#allDescendantArtTags': []}) + }), + + withResolvedReferenceList({ + list: 'directDescendantArtTags', + find: soupyFind.input('artTag'), + }), + + { + dependencies: ['#resolvedReferenceList'], + compute: (continuation, { + ['#resolvedReferenceList']: directDescendantArtTags, + }) => continuation({ + ['#allDescendantArtTags']: + unique([ + ...directDescendantArtTags, + ...directDescendantArtTags.flatMap(artTag => artTag.allDescendantArtTags), + ]), + }), + }, + ], +}) diff --git a/src/data/composite/things/art-tag/withAllDescendantTags.js b/src/data/composite/things/art-tag/withAllDescendantTags.js deleted file mode 100644 index 945e9f37..00000000 --- a/src/data/composite/things/art-tag/withAllDescendantTags.js +++ /dev/null @@ -1,44 +0,0 @@ -// Gets all the tags which descend from this one - that means its own direct -// descendants, but also all the direct and indirect desceands of each of those! -// The results aren't specially sorted, but they won't contain any duplicates -// (for example if two descendant tags both route deeper to end up including -// some of the same tags). - -import {input, templateCompositeFrom} from '#composite'; -import {unique} from '#sugar'; - -import {raiseOutputWithoutDependency} from '#composite/control-flow'; -import {withResolvedReferenceList} from '#composite/wiki-data'; -import {soupyFind} from '#composite/wiki-properties'; - -export default templateCompositeFrom({ - annotation: `withAllDescendantTags`, - - outputs: ['#allDescendantTags'], - - steps: () => [ - raiseOutputWithoutDependency({ - dependency: 'directDescendantTags', - mode: input.value('empty'), - output: input.value({'#allDescendantTags': []}) - }), - - withResolvedReferenceList({ - list: 'directDescendantTags', - find: soupyFind.input('artTag'), - }), - - { - dependencies: ['#resolvedReferenceList'], - compute: (continuation, { - ['#resolvedReferenceList']: directDescendantTags, - }) => continuation({ - ['#allDescendantTags']: - unique([ - ...directDescendantTags, - ...directDescendantTags.flatMap(tag => tag.allDescendantTags), - ]), - }), - }, - ], -}) diff --git a/src/data/things/art-tag.js b/src/data/things/art-tag.js index dd3dddf2..60a4340d 100644 --- a/src/data/things/art-tag.js +++ b/src/data/things/art-tag.js @@ -24,7 +24,7 @@ import { wikiData, } from '#composite/wiki-properties'; -import {withAllDescendantTags} from '#composite/things/art-tag'; +import {withAllDescendantArtTags} from '#composite/things/art-tag'; export class ArtTag extends Thing { static [Thing.referenceType] = 'tag'; @@ -53,7 +53,7 @@ export class ArtTag extends Thing { description: simpleString(), - directDescendantTags: referenceList({ + directDescendantArtTags: referenceList({ class: input.value(ArtTag), find: soupyFind.input('artTag'), }), @@ -94,21 +94,23 @@ export class ArtTag extends Thing { }, indirectlyTaggedInThings: [ - withAllDescendantTags(), + withAllDescendantArtTags(), { - dependencies: ['#allDescendantTags'], - compute: ({'#allDescendantTags': allDescendantTags}) => - unique(allDescendantTags.flatMap(tag => tag.directlyTaggedInThings)), + dependencies: ['#allDescendantArtTags'], + compute: ({'#allDescendantArtTags': allDescendantArtTags}) => + unique( + allDescendantArtTags + .flatMap(artTag => artTag.directlyTaggedInThings)), }, ], - allDescendantTags: [ - withAllDescendantTags(), - exposeDependency({dependency: '#allDescendantTags'}), + allDescendantArtTags: [ + withAllDescendantArtTags(), + exposeDependency({dependency: '#allDescendantArtTags'}), ], - directAncestorTags: reverseReferenceList({ + directAncestorArtTags: reverseReferenceList({ reverse: soupyReverse.input('artTagsWhichDirectlyAncestor'), }), }); @@ -118,10 +120,10 @@ export class ArtTag extends Thing { referenceTypes: ['tag'], bindTo: 'artTagData', - getMatchableNames: tag => - (tag.isContentWarning - ? [`cw: ${tag.name}`] - : [tag.name]), + getMatchableNames: artTag => + (artTag.isContentWarning + ? [`cw: ${artTag.name}`] + : [artTag.name]), }, }; @@ -130,7 +132,7 @@ export class ArtTag extends Thing { bindTo: 'artTagData', referencing: artTag => [artTag], - referenced: artTag => artTag.directDescendantTags, + referenced: artTag => artTag.directDescendantArtTags, }, }; @@ -145,7 +147,7 @@ export class ArtTag extends Thing { 'Color': {property: 'color'}, 'Is CW': {property: 'isContentWarning'}, - 'Direct Descendant Tags': {property: 'directDescendantTags'}, + 'Direct Descendant Tags': {property: 'directDescendantArtTags'}, }, }; -- cgit 1.3.0-6-gf8a5