forked from hazza/dspace-angular
122 lines
2.5 KiB
TypeScript
122 lines
2.5 KiB
TypeScript
import { autoserialize } from 'cerialize';
|
|
|
|
import { LanguageCode } from './form-field-language-value.model';
|
|
import { RelationshipOptions } from './relationship-options.model';
|
|
import { FormRowModel } from '../../../../core/config/models/config-submission-form.model';
|
|
|
|
/**
|
|
* Representing SelectableMetadata properties
|
|
*/
|
|
export interface SelectableMetadata {
|
|
/**
|
|
* The key of the metadata field to use to store the input
|
|
*/
|
|
metadata: string;
|
|
|
|
/**
|
|
* The label of the metadata field to use to store the input
|
|
*/
|
|
label: string;
|
|
|
|
/**
|
|
* The name of the controlled vocabulary used to retrieve value for the input see controlled vocabularies
|
|
*/
|
|
controlledVocabulary: string;
|
|
|
|
/**
|
|
* A boolean representing if value is closely related to the controlled vocabulary entry or not
|
|
*/
|
|
closed: boolean;
|
|
}
|
|
|
|
/**
|
|
* A class representing a specific input-form field
|
|
*/
|
|
export class FormFieldModel {
|
|
|
|
/**
|
|
* The hints for this metadata field to display on form
|
|
*/
|
|
@autoserialize
|
|
hints: string;
|
|
|
|
/**
|
|
* The label for this metadata field to display on form
|
|
*/
|
|
@autoserialize
|
|
label: string;
|
|
|
|
/**
|
|
* The languages available for this metadata field to display on form
|
|
*/
|
|
@autoserialize
|
|
languageCodes: LanguageCode[];
|
|
|
|
/**
|
|
* The error message for this metadata field to display on form in case of field is required
|
|
*/
|
|
@autoserialize
|
|
mandatoryMessage: string;
|
|
|
|
/**
|
|
* Representing if this metadata field is mandatory or not
|
|
*/
|
|
@autoserialize
|
|
mandatory: string;
|
|
|
|
/**
|
|
* Representing if this metadata field is repeatable or not
|
|
*/
|
|
@autoserialize
|
|
repeatable: boolean;
|
|
|
|
/**
|
|
* Containing additional properties for this metadata field
|
|
*/
|
|
@autoserialize
|
|
input: {
|
|
/**
|
|
* Representing the type for this metadata field
|
|
*/
|
|
type: string;
|
|
|
|
/**
|
|
* Containing regex to use for field validation
|
|
*/
|
|
regex?: string;
|
|
};
|
|
|
|
/**
|
|
* Representing additional vocabulary configuration for this metadata field
|
|
*/
|
|
@autoserialize
|
|
selectableMetadata: SelectableMetadata[];
|
|
|
|
/**
|
|
* Representing additional relationship configuration for this metadata field
|
|
*/
|
|
@autoserialize
|
|
selectableRelationship: RelationshipOptions;
|
|
|
|
@autoserialize
|
|
rows: FormRowModel[];
|
|
|
|
/**
|
|
* Representing the scope for this metadata field
|
|
*/
|
|
@autoserialize
|
|
scope: string;
|
|
|
|
/**
|
|
* Containing additional css classes for this metadata field to use on form
|
|
*/
|
|
@autoserialize
|
|
style: string;
|
|
|
|
/**
|
|
* Containing the value for this metadata field
|
|
*/
|
|
@autoserialize
|
|
value: any;
|
|
}
|