import SimpleSchema from 'simpl-schema'; import STORAGE_LIMITS from '/imports/constants/STORAGE_LIMITS.js'; import createPropertySchema from '/imports/api/properties/subSchemas/createPropertySchema.js'; // Folders organize a character sheet into a tree, particularly to group things // like 'race' and 'background' let FolderSchema = createPropertySchema({ name: { type: String, max: STORAGE_LIMITS.name, optional: true, }, description: { type: 'inlineCalculationFieldToCompute', optional: true, }, groupStats: { type: Boolean, optional: true, }, hideStatsGroup: { type: Boolean, optional: true, }, tab: { type: String, optional: true, allowedValues: [ 'stats', 'features', 'actions', 'spells', 'inventory', 'journal', 'build' ], }, location: { type: String, optional: true, allowedValues: [ 'start', 'events', 'stats', 'skills', 'proficiencies', 'end' ], }, }); const ComputedOnlyFolderSchema = createPropertySchema({ description: { type: 'computedOnlyInlineCalculationField', optional: true, }, }); const ComputedFolderSchema = new SimpleSchema() .extend(FolderSchema) .extend(ComputedOnlyFolderSchema); export { FolderSchema, ComputedFolderSchema, ComputedOnlyFolderSchema };