From f02db61b1da6b6a79a16550d9217cb3e1473ef98 Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Sun, 6 Apr 2025 15:41:27 -0300 Subject: data: Artwork.unqualifiedDirectory, Artwork.fileExtension Just the properties and fields here --- src/data/things/artwork.js | 50 ++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 48 insertions(+), 2 deletions(-) (limited to 'src/data') diff --git a/src/data/things/artwork.js b/src/data/things/artwork.js index bf5753b8..2e8936a4 100644 --- a/src/data/things/artwork.js +++ b/src/data/things/artwork.js @@ -1,13 +1,15 @@ import {input} from '#composite'; import Thing from '#thing'; -import {isContributionList, isDate, validateReferenceList} from '#validators'; +import {isContributionList, isDate, isFileExtension, validateReferenceList} + from '#validators'; import {parseContributors, parseDate} from '#yaml'; import {withPropertyFromObject} from '#composite/data'; -import {contentString, simpleString, soupyFind, thing} +import {contentString, directory, simpleString, soupyFind, thing} from '#composite/wiki-properties'; import { + exitWithoutDependency, exposeConstant, exposeDependency, exposeDependencyOrContinue, @@ -31,6 +33,10 @@ export class Artwork extends Thing { }) => ({ // Update & expose + unqualifiedDirectory: directory({ + name: input.value(null), + }), + thing: thing(), label: simpleString(), @@ -46,6 +52,43 @@ export class Artwork extends Thing { exposeDependency({dependency: '#date'}), ], + fileExtensionFromThingProperty: simpleString(), + + fileExtension: [ + { + compute: (continuation) => continuation({ + ['#default']: 'jpg', + }), + }, + + exposeUpdateValueOrContinue({ + validate: input.value(isFileExtension), + }), + + exitWithoutDependency({ + dependency: 'thing', + value: '#default', + }), + + exitWithoutDependency({ + dependency: 'fileExtensionFromThingProperty', + value: '#default', + }), + + withPropertyFromObject({ + object: 'thing', + property: 'fileExtensionFromThingProperty', + }), + + exposeDependencyOrContinue({ + dependency: '#value', + }), + + exposeDependency({ + dependency: '#default', + }), + ], + artistContribsFromThingProperty: simpleString(), artistContribsArtistProperty: simpleString(), @@ -119,6 +162,9 @@ export class Artwork extends Thing { static [Thing.yamlDocumentSpec] = { fields: { + 'Directory': {property: 'unqualifiedDirectory'}, + 'File Extension': {property: 'fileExtension'}, + 'Label': {property: 'label'}, 'Source': {property: 'source'}, -- cgit 1.3.0-6-gf8a5