slightning-coco-widget
Version:
SLIGHTNING 的 CoCo 控件框架。
120 lines (119 loc) • 3.65 kB
TypeScript
import { RollUpFuncType } from '../enums';
import { IField } from './field';
/**
* Field property.
*/
export interface ISingleTextFieldFieldProperty {
defaultValue?: string;
}
export interface INumberFieldProperty {
defaultValue?: string;
precision: number;
}
export interface ICurrencyFieldProperty {
defaultValue?: string;
precision: number;
symbol: string;
}
export interface IPercentFieldProperty {
defaultValue?: string;
precision: number;
}
export interface ISelectOption {
id: string;
name: string;
color: {
name: string;
value: string;
};
}
export interface ISingleSelectFieldProperty {
options?: ISelectOption[];
}
export declare type IMultiSelectFieldProperty = ISingleSelectFieldProperty;
export interface IMember {
id: string;
name: string;
type: 'member' | 'team';
avatar?: string;
}
export interface IMemberFieldProperty {
options?: IMember[];
isMulti?: boolean;
shouldSendMsg?: boolean;
}
export interface IUser {
id: string | 'Anonymous' | 'Bot';
name: string;
avatar: string;
}
export interface ICreateByFieldProperty {
options?: IUser[];
}
export interface ILastModifiedByFieldProperty {
options?: IUser[];
}
export interface ICheckboxFieldProperty {
icon: string;
}
export interface IRatingFieldProperty {
icon: string;
max: number;
}
export interface IDateTimeFieldProperty {
format: string;
autoFill: boolean;
includeTime: boolean;
}
export declare type ICreatedTimeFieldProperty = IDateTimeFieldProperty;
export declare type ILastModifiedTimeFieldProperty = IDateTimeFieldProperty;
export interface IMagicLinkFieldProperty {
foreignDatasheetId: string;
brotherFieldId: string;
limitToViewId?: string;
limitSingleRecord?: boolean;
}
export interface IFieldWithDatasheetId {
datasheetId: string;
field: IField;
}
export declare type ValueType = 'string' | 'boolean' | 'number' | 'datetime' | 'array';
export interface IDateTimeFormat {
dateFormat: string;
timeFormat: string;
includeTime: boolean;
}
export interface INumberFormat {
precision: number;
}
export declare type IPercentFormat = INumberFormat;
export interface ICurrencyFormat {
precision: number;
symbol?: string;
}
export declare type IFormat = IDateTimeFormat | INumberFormat | IPercentFormat | ICurrencyFormat;
export interface IDateTimeFormat {
dateFormat: string;
timeFormat: string;
includeTime: boolean;
}
export interface INoneStringValueFormat {
type: 'datetime' | 'number' | 'percent' | 'currency';
format: IFormat;
}
export interface IMagicLookupFieldProperty {
relatedLinkFieldId: string;
targetFieldId: string;
hasError?: boolean;
entityField?: IFieldWithDatasheetId;
rollupFunction?: RollUpFuncType;
valueType: ValueType;
format?: INoneStringValueFormat;
}
export interface IFormulaFieldProperty {
expression: string;
valueType: ValueType;
hasError?: boolean;
format?: INoneStringValueFormat;
}
export declare type IFieldProperty = ISingleTextFieldFieldProperty | INumberFieldProperty | ICurrencyFieldProperty | IPercentFieldProperty | ISingleSelectFieldProperty | IMultiSelectFieldProperty | IMemberFieldProperty | ICreateByFieldProperty | ILastModifiedByFieldProperty | ICheckboxFieldProperty | IRatingFieldProperty | IDateTimeFieldProperty | ICreatedTimeFieldProperty | ILastModifiedTimeFieldProperty | IMagicLinkFieldProperty | IMagicLookupFieldProperty | IFormulaFieldProperty;