From 8461875e45c33fdec5a904b8137a9342bafc6c46 Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Fri, 16 May 2025 11:17:37 -0300 Subject: data: AdditionalFile --- src/data/things/additional-file.js | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/data/things/additional-file.js (limited to 'src/data/things/additional-file.js') diff --git a/src/data/things/additional-file.js b/src/data/things/additional-file.js new file mode 100644 index 00000000..3bf3dce9 --- /dev/null +++ b/src/data/things/additional-file.js @@ -0,0 +1,36 @@ +import {input} from '#composite'; +import Thing from '#thing'; +import {isString, validateArrayItems} from '#validators'; + +import {contentString, simpleString} from '#composite/wiki-properties'; + +import {exposeConstant, exposeUpdateValueOrContinue} + from '#composite/control-flow'; + +export class AdditionalFile extends Thing { + static [Thing.getPropertyDescriptors] = ({}) => ({ + // Update & expose + + title: simpleString(), + + description: contentString(), + + files: [ + exposeUpdateValueOrContinue({ + validate: input.value(validateArrayItems(isString)), + }), + + exposeConstant({ + value: input.value(null), + }), + ], + }); + + static [Thing.yamlDocumentSpec] = { + fields: { + 'Title': {property: 'title'}, + 'Description': {property: 'description'}, + 'Files': {property: 'files'}, + }, + }; +} -- cgit 1.3.0-6-gf8a5