diff options
Diffstat (limited to 'src/data/things/additional-file.js')
-rw-r--r-- | src/data/things/additional-file.js | 36 |
1 files changed, 36 insertions, 0 deletions
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'}, + }, + }; +} |