Darya Blavanovich 3819aecb70
[MNT-24354] update license header to 2024 (#9633)
* MNT-24354 update license header [ci:force]

* MNT-24354 fix lint [ci:force]

* MNT-24354 [ci:force]

* MNT-24354 update license header in process-services [ci:force]

---------

Co-authored-by: DaryaBalvanovich <darya.balvanovich1@hyland.com>
2024-05-08 08:34:51 +02:00

262 lines
6.3 KiB
TypeScript

/*!
* @license
* Copyright © 2005-2024 Hyland Software, Inc. and its affiliates. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
export interface FormContent {
formRepresentation: FormRepresentation;
}
export interface FormRepresentation {
id: string;
name: string;
description: string;
version?: number;
formDefinition?: FormDefinition;
standAlone?: boolean;
displayMode?: FormCloudDisplayMode;
}
export interface FormTab {
id: string;
title: string;
visibilityCondition: VisibilityCondition | null;
}
export interface FormOutcome {
id: string;
name: string;
}
export interface FormDefinition {
tabs: FormTab[];
fields: Container[] | HeaderRepresentation[];
outcomes: FormOutcome[];
metadata: any;
variables: any[];
}
export interface Container {
id: string;
type: string;
tab: string;
name: string;
numberOfColumns: number;
fields: {
[key: string]: FormFieldRepresentation[];
};
}
export type FormFieldRepresentation = (DateField | DateTimeField | TextField | AttachFileField | DropDownField |
RadioField | TypeaheadField | PeopleField | AmountField | NumberField | CheckboxField | HyperlinkField);
export interface AttachFileField extends FormField {
required: boolean;
}
export interface TypeaheadField extends RestField {
required: boolean;
}
export interface RestField extends FormField {
required: boolean;
restUrl: string;
restResponsePath: string;
restIdProperty: string;
restLabelProperty: string;
}
export interface HeaderRepresentation extends Container {
numberOfColumns: number;
params: {
[key: string]: any;
};
visibilityCondition: VisibilityCondition;
}
export interface ColumnDefinitionRepresentation extends Container {
id: string;
name: string;
type: string;
value: any;
required: boolean;
editable: boolean;
sortable: boolean;
visible: boolean;
}
export interface DynamicTableRepresentation extends FormField {
required: boolean;
tab: string;
placeholder: string;
columnDefinitions: ColumnDefinitionRepresentation[];
}
export interface VisibilityCondition {
leftType: string;
leftValue: string;
operator: string;
rightValue: string | number | Date;
rightType: string;
nextConditionOperator?: string;
nextCondition?: VisibilityCondition;
}
export interface FormField {
id: string;
name: string;
value: any;
type: FormFieldType | string;
readOnly?: boolean;
colspan: number;
params: {
[anyKey: string]: any;
};
visibilityCondition: null | VisibilityCondition;
}
export interface FormOption {
id: string;
name: string;
}
export interface OptionsField {
value: any;
restUrl: string | null;
restResponsePath: string | null;
restIdProperty: string | null;
restLabelProperty: string | null;
optionType: 'manual' | 'rest';
options: FormOption[];
}
export interface AmountField extends FormField {
required: boolean;
placeholder: string | null;
minValue: number | null;
maxValue: number | null;
enableFractions: boolean;
currency: string;
}
export interface CheckboxField extends FormField {
required: boolean;
}
export interface DateField extends FormField {
required: boolean;
placeholder: string | null;
minValue: string | null;
maxValue: string | null;
dateDisplayFormat: string;
}
export interface DateTimeField extends FormField {
required: boolean;
placeholder: string | null;
minValue: string | null;
maxValue: string | null;
dateDisplayFormat: string;
}
export interface DropDownField extends OptionsField, FormField {
required: boolean;
}
export interface HyperlinkField extends FormField {
hyperlinkUrl: string | null;
displayText: string | null;
}
export interface NumberField extends FormField {
placeholder: string | null;
minValue: number | null;
maxValue: number | null;
required: boolean;
}
export interface RadioField extends OptionsField, FormField {
required: boolean;
}
export interface TextField extends FormField {
regexPattern: string | null;
required: boolean;
minLength: number;
maxLength: number;
placeholder: string | null;
}
// eslint-disable-next-line no-shadow
export enum PeopleModeOptions {
single = 'single',
multiple = 'multiple'
}
export interface PeopleField extends FormField {
required: boolean;
optionType: PeopleModeOptions;
}
// eslint-disable-next-line no-shadow
export enum FormFieldType {
text = 'text',
multiline = 'multi-line-text',
// eslint-disable-next-line id-blacklist
number = 'integer',
checkbox = 'boolean',
date = 'date',
datetime = 'datetime',
dropdown = 'dropdown',
typeahead = 'typeahead',
amount = 'amount',
radio = 'radio-buttons',
people = 'people',
groupOfPeople = 'functional-group',
dynamicTable = 'dynamicTable',
hyperlink = 'hyperlink',
header = 'group',
uploadFile = 'upload',
uploadFolder = 'uploadFolder',
displayValue = 'readonly',
displayText = 'readonly-text',
fileViewer = 'file-viewer'
}
export interface FormCloudDisplayModeConfigurationOptions {
onCompleteTask(id?: string): void;
onSaveTask(id?: string): void;
onDisplayModeOn(id?: string): void;
onDisplayModeOff(id?: string): void;
[key: string]: any;
};
export interface FormCloudDisplayModeConfiguration {
displayMode: FormCloudDisplayMode;
options?: FormCloudDisplayModeConfigurationOptions;
default?: boolean;
};
// eslint-disable-next-line no-shadow
export enum FormCloudDisplayMode {
inline = 'inline',
fullScreen = 'fullScreen'
};
export interface FormCloudDisplayModeChange {
displayMode: FormCloudDisplayMode;
id?: string;
};