erp-platform/ui/src/proxy/form/models.ts
Sedat ÖZTÜRK dc539eec51 Gantt Layout
2025-12-01 17:39:40 +03:00

844 lines
18 KiB
TypeScript

import {
HorizontalAlignment,
ScrollMode,
SelectAllMode,
type SingleMultipleOrNone,
} from 'devextreme/common'
import {
ApplyFilterMode,
ColumnChooserMode,
ColumnResizeMode,
GridsEditMode,
GridsEditRefreshMode,
NewRowPosition,
SelectionColumnDisplayMode,
StartEditAction,
StateStoreType,
} from 'devextreme/ui/data_grid_types'
import { FormItemComponent } from 'devextreme/ui/form'
import { AuditedEntityDto } from '../abp'
import { EditorType2, RowMode } from '../../views/form/types'
import {
ChartCommonDto,
ChartAdaptivelayoutDto,
ChartAnimationDto,
ChartAnnotationDto,
ChartArgumentAxisDto,
ChartCommonAnnotationDto,
ChartCommonAxisDto,
ChartCommonPaneDto,
ChartCommonSeriesSettingsDto,
ChartCrosshairDto,
ChartExportDto,
ChartLegendDto,
ChartMarginDto,
ChartPanesDto,
ChartScrollBarDto,
ChartSeriesDto,
ChartSizeDto,
ChartTitleDto,
ChartTooltipDto,
ChartValueAxisDto,
ChartZoomAndPanDto,
} from '../admin/charts/models'
import { ListViewLayoutType } from '@/views/admin/listForm/edit/types'
import { SeriesType } from 'devextreme/common/charts'
import { PagerDisplayMode } from 'devextreme/common/grids'
//1
export interface SelectListItem {
text?: string
value?: string
selected?: boolean
}
//2
export interface GridDto {
columnFormats: ColumnFormatDto[]
gridOptions: GridOptionsDto
widgets: WidgetGroupDto[]
}
// 3 enums
export enum DbTypeEnum {
AnsiString = 0,
Binary = 1,
Byte = 2,
Boolean = 3,
Currency = 4,
Date = 5,
DateTime = 6,
Decimal = 7,
Double = 8,
Guid = 9,
Int16 = 10,
Int32 = 11,
Int64 = 12,
Object = 13,
SByte = 14,
Single = 15,
String = 16,
Time = 17,
UInt16 = 18,
UInt32 = 19,
UInt64 = 20,
VarNumeric = 21,
AnsiStringFixedLength = 22,
StringFixedLength = 23,
Xml = 25,
DateTime2 = 26,
DateTimeOffset = 27,
}
export enum ListFormCustomizationTypeEnum {
UserUiFilter = 1,
GridState = 2,
ServerJoin = 3,
ServerWhere = 4,
}
export enum UiCommandButtonPositionTypeEnum {
CommandColumn = 0,
Toolbar = 1,
}
export enum UiLookupDataSourceTypeEnum {
StaticData = 1,
Query = 2,
WebService = 3,
}
export enum SelectCommandTypeEnum {
Table = 1,
View = 2,
TableValuedFunction = 3,
Query = 4,
StoredProcedure = 5,
}
export enum FieldCustomValueTypeEnum {
Value = 1,
CustomKey = 2,
DbQuery = 3,
QueryParams = 4,
}
export enum ColumnValidationTypeListEnum {
None = '',
Async = 'async',
Compare = 'compare',
Custom = 'custom',
Email = 'email',
Numeric = 'numeric',
Pattern = 'pattern',
Range = 'range',
Required = 'required',
StringLength = 'stringLength',
}
export enum ColumnValidationComparisonTypeEnum {
'None' = '',
'!=' = '!=',
'!==' = '!==',
'<' = '<',
'<=' = '<=',
'==' = '==',
'===' = '===',
'>' = '>',
'>=' = '>=',
}
export enum ColumnCascadeFilterOperatorEnum {
'=' = '=',
'<>' = '<>',
'<' = '<',
'<=' = '<=',
'>' = '>',
'>=' = '>=',
'contains' = 'contains',
'endswith' = 'endswith',
'isblank' = 'isblank',
'isnotblank' = 'isnotblank',
'notcontains' = 'notcontains',
'startswith' = 'startswith',
'between' = 'between',
}
export interface FieldsDefaultValueDto {
fieldName?: string
fieldDbType: DbTypeEnum
value?: string
customValueType: FieldCustomValueTypeEnum
sqlQuery?: string
}
export enum GridOptionsSortModeEnum {
Single = 'single',
Multiple = 'multiple',
None = 'none',
}
// 4 rest
export interface ColumnCustomizationDto {
fixed: boolean
fixedPosition?: string
allowReordering: boolean
}
export interface ColumnEditingDto {
allowEditing: boolean
}
export interface ColumnFilterDto {
allowFiltering: boolean
filterOperations: string[]
selectedFilterOperation?: string
filterValue?: string
}
export interface ColumnFormatDto extends AuditedEntityDto<string> {
fieldName?: string
captionName?: string
readOnly: boolean
visible: boolean
isActive: boolean
width: number
listOrderNo: number
sourceDbType: DbTypeEnum
cultureName: string
dataType?: string
sortIndex: number
sortDirection?: string
allowSearch: boolean
columnCssClass?: string
columnCssValue?: string
bandName?: string
columnFilterJson?: string
columnFilterDto: ColumnFilterDto
columnHeaderJson?: string
columnHeaderDto: ColumnHeaderDto
groupingJson?: string
columnGroupingDto: ColumnGroupingDto
columnCustomizationJson?: string
columnCustomizationDto: ColumnCustomizationDto
totalSummaryJson?: string
columnTotalSummaryDto: ColumnTotalSummaryDto
groupSummaryJson?: string
columnGroupSummaryDto: ColumnTotalSummaryDto
editingJson?: string
columnEditingDto: ColumnEditingDto
lookupJson?: string
lookupDto: LookupDto
validationRuleJson?: string
validationRuleDto: ValidationRuleDto[]
columnStylingJson?: string
columnStylingDto: ColumnStylingDto[]
permissionJson?: string
permissionDto: ListFormFieldPermissionDto
canRead: boolean
canCreate: boolean
canUpdate: boolean
canExport: boolean
defaultValue: object
pivotSettingsJson?: string
pivotSettingsDto: ListFormFieldPivotSettingsDto
alignment?: HorizontalAlignment
format?: string
editorOptions?: string
}
export enum AuthorizationTypeEnum {
Deny = 0,
Read = 1,
Update = 2,
Create = 3,
Delete = 4,
}
export interface ColumnGroupingDto {
allowGrouping: boolean
groupIndex?: number
autoExpandGroup: boolean
}
export interface ColumnHeaderDto {
allowHeaderFiltering: boolean
allowSearch: boolean
dataSource: ColumnsHeaderDataSourceDto[]
dataSourceString?: string
}
export interface ColumnStylingDto {
rowType?: ColumnRowTypeListOptions
useRow: boolean
condition?: ColumnValidationComparisonTypeEnum
conditionValue?: string
cssStyles?: string
cssClassName?: string
}
export interface ColumnTotalSummaryDto {
summaryType?: string
valueFormat?: string
showInGroupFooter: boolean
alignByColumn: boolean
displayFormat?: string
showInColumn?: string
}
export interface ColumnsHeaderDataSourceDto {
text?: string
value: object[]
}
export interface CommandColumnDto {
buttonPosition: UiCommandButtonPositionTypeEnum
authName?: string
text?: string
hint?: string
icon?: string
url?: string
urlTarget?: string
dialogName?: string
dialogParameters?: string
onClick?: string
isVisible: boolean
visibleExpression?: string
}
export interface GridBoxOptionsDto {
showClearButton: boolean
columns: string[]
columnsString?: string
height: number
width: number
selectionMode?: SingleMultipleOrNone
filterRowVisible: boolean
acceptCustomValue: boolean
}
export interface TagBoxOptionsDto {
showClearButton: boolean
showSelectionControls: boolean
maxDisplayedTags: number
showMultiTagOnly: boolean
applyValueMode: string
searchEnabled: boolean
acceptCustomValue: boolean
}
export interface RowDto {
rowHeight: string
whiteSpace: string
overflowWrap: string
}
export interface FilterPanelDto {
visible: boolean
texts: FilterPanelTextsDto
filterEnabled: boolean
customizeText: object
}
export interface FilterPanelTextsDto {
clearFilter: string
createFilter: string
filterEnabledHint: string
}
export interface GridColumnOptionDto {
showBorders?: boolean
showRowLines: boolean
showColumnLines: boolean
rowAlternationEnabled: boolean
allowColumnReordering: boolean
allowColumnResizing: boolean
columnResizingMode?: ColumnResizeMode
columnAutoWidth: boolean
rtlEnabled: boolean
columnFixingEnabled: boolean
columnChooserEnabled: boolean
columnChooserMode?: ColumnChooserMode
hoverStateEnabled: boolean
columnHidingEnabled: boolean
focusedRowEnabled: boolean
showColumnHeaders: boolean
}
export interface GridPivotOptionDto {
columnChooserEnabled: boolean
allowFieldDragging: boolean
showFieldPanel: boolean
showDataFields: boolean
showColumnFields: boolean
showRowFields: boolean
showFilterFields: boolean
showChart: boolean
chartHeight: number
chartCommonSeriesType: SeriesType
}
export interface TreeOptionDto {
keyExpr?: string
parentIdExpr?: string
hasItemsExpr?: string
rootValue?: any
expandedRowKeys?: any[]
autoExpandAll?: boolean
recursiveSelection?: boolean
}
export interface GridEditingDto {
mode?: GridsEditMode
refreshMode?: GridsEditRefreshMode
allowUpdating: boolean
allowDeleting: boolean
allowAllDeleting: boolean
allowAdding: boolean
useIcons: boolean
confirmDelete: boolean
newRowPosition?: NewRowPosition
selectTextOnEditStart: boolean
startEditAction?: StartEditAction
editColumnName?: string
popup: GridEditingPopupDto
sendOnlyChangedFormValuesUpdate: boolean
isTenant: boolean
isBranch: boolean
isOrganizationUnit: boolean
}
export interface EditingFormDto {
order: number
itemType?: string
caption?: string
colCount: number
colSpan: number
items?: EditingFormItemDto[]
}
export interface EditingFormItemDto {
order: number
dataField: string
editorType: FormItemComponent
editorType2: EditorType2
colSpan?: number
editorOptions?: string
isRequired?: boolean
gridBoxOptions?: GridBoxOptionsDto
tagBoxOptions?: TagBoxOptionsDto
editorScript?: string
}
export interface GridEditingPopupDto {
title?: string
showTitle: boolean
width: number
height: number
fullScreen: boolean
hideOnOutsideClick: boolean
resizeEnabled: boolean
}
export interface GridFilterRowDto {
visible: boolean
applyFilter?: ApplyFilterMode
allowUserUiFilterSave: boolean
}
export interface GridHeaderFilterDto {
visible: boolean
allowSearch: boolean
height: number
searchTimeout: number
width: number
}
export interface GridOptionsDto extends AuditedEntityDto<string> {
listFormCode?: string
cultureName?: string
name?: string
keyFieldName?: string
title?: string
sortMode?: SingleMultipleOrNone
pageSize?: number
width: number
height: number
fullHeight: boolean
description?: string
filterRowJson?: string
filterRowDto: GridFilterRowDto
headerFilterJson?: string
headerFilterDto: GridHeaderFilterDto
filterPanelJson?: string
filterPanelDto: FilterPanelDto
rowJson?: string
rowDto: RowDto
searchPanelJson?: string
searchPanelDto: SearchPanelDto
groupPanelJson?: string
groupPanelDto: GroupPanelDto
selectionJson?: string
selectionDto: SelectionDto
columnOptionJson?: string
columnOptionDto: GridColumnOptionDto
pivotOptionJson?: string
pivotOptionDto: GridPivotOptionDto
treeOptionJson?: string
treeOptionDto: TreeOptionDto
pagerOptionJson?: string
pagerOptionDto: GridPagerOptionDto
editingOptionJson?: string
editingOptionDto: GridEditingDto
editingFormJson?: string
editingFormDto: EditingFormDto[]
permissionJson?: string
permissionDto: PermissionCrudDto
commandColumnJson?: string
commandColumnDto: CommandColumnDto[]
stateStoringJson?: string
stateStoringDto: StateStoringDto
customJsSourcesJson?: string
customJsSources: string[]
customStyleSourcesJson?: string
customStyleSources: string[]
updateServiceAddress?: string
insertServiceAddress?: string
deleteServiceAddress?: string
isTenant: boolean
isBranch: boolean
isOrganizationUnit: boolean
listFormType: string
isSubForm: boolean
showNote: boolean
subFormsJson?: string
subFormsDto: SubFormDto[]
extraFilterJson?: string
extraFilterDto: ExtraFilterDto[]
layoutDto: LayoutDto
//ChartEditDto
userId?: string
roleId?: string
commonJson?: string
commonDto: ChartCommonDto
adaptiveLayoutJson?: string
adaptivelayoutDto: ChartAdaptivelayoutDto
animationJson?: string
animationDto: ChartAnimationDto
annotationsJson?: string
annotationsDto: ChartAnnotationDto[]
argumentAxisJson?: string
argumentAxisDto: ChartArgumentAxisDto
commonAnnotationsSettingsJson?: string
commonAnnotationSettingsDto: ChartCommonAnnotationDto
commonAxisSettingsJson?: string
commonAxisSettingsDto: ChartCommonAxisDto
commonPaneSettingsJson?: string
commonPaneSettingsDto: ChartCommonPaneDto
commonSeriesSettingsJson?: string
commonSeriesSettingsDto: ChartCommonSeriesSettingsDto
crosshairJson?: string
crosshairDto: ChartCrosshairDto
exportJson?: string
exportDto: ChartExportDto
legendJson?: string
legendDto: ChartLegendDto
marginJson?: string
marginDto: ChartMarginDto
panesJson?: string
panesDto: ChartPanesDto[]
scrollBarJson?: string
scrollBarDto: ChartScrollBarDto
seriesJson?: string
seriesDto: ChartSeriesDto[]
sizeJson?: string
sizeDto: ChartSizeDto
titleJson?: string
titleDto: ChartTitleDto
tooltipJson?: string
tooltipDto: ChartTooltipDto
valueAxisJson?: string
valueAxisDto: ChartValueAxisDto[]
zoomAndPanJson?: string
zoomAndPanDto: ChartZoomAndPanDto
}
export interface GridOptionsEditDto extends GridOptionsDto, Record<string, any> {
editType: string
dataSourceCode?: string
keyFieldDbSourceType: any
tableName?: string
defaultFilter?: string
selectCommand?: string
selectCommandType: SelectCommandTypeEnum
selectFieldsDefaultValueJson?: string
selectFieldsDefaultValueDto: FieldsDefaultValueDto[]
deleteCommand?: string
deleteFieldsDefaultValueJson?: string
deleteFieldsDefaultValueDto: FieldsDefaultValueDto[]
insertCommand?: string
insertFieldsDefaultValueJson?: string
insertFieldsDefaultValueDto: FieldsDefaultValueDto[]
updateCommand?: string
updateFieldsDefaultValueJson?: string
updateFieldsDefaultValueDto: FieldsDefaultValueDto[]
formFieldsDefaultValueJson?: string
formFieldsDefaultValueDto: FieldsDefaultValueDto[]
widgetsJson?: string
widgetsDto: WidgetEditDto[]
extraFilterEditDto: ExtraFilterEditDto[]
}
export interface GridPagerOptionDto {
visible: boolean
showPageSizeSelector: boolean
showInfo: boolean
showNavigationButtons: boolean
allowedPageSizes?: string
infoText?: string
displayMode?: PagerDisplayMode
scrollingMode?: ScrollMode | 'virtual'
loadPanelEnabled?: boolean | 'auto'
loadPanelText?: string
}
export interface GroupPanelDto {
visible: boolean
autoExpandAll: boolean
}
export interface ListFormCustomizationDto extends AuditedEntityDto<string> {
listFormCode?: string
roleId?: string
userId?: string
filterName?: string
customizationType: ListFormCustomizationTypeEnum
customizationData?: string
}
export interface ListFormCustomizationForUserDto {
id?: string
listFormCode?: string
filterName?: string
customizationType: ListFormCustomizationTypeEnum
customizationData: string
}
export interface LookupDto {
dataSourceType: UiLookupDataSourceTypeEnum
valueExpr?: string
displayExpr?: string
cascadeRelationField?: string
cascadeParentFields?: string
cascadeFilterOperator?: ColumnCascadeFilterOperatorEnum
cascadeEmptyFields?: string
lookupQuery?: string
}
export interface PermissionCrudDto {
c?: string
r?: string
u?: string
d?: string
e?: string
i?: string
n?: string
}
export interface ListFormFieldPermissionDto {
deny?: boolean
c?: string
r?: string
u?: string
e?: boolean
i?: boolean
}
export interface SearchPanelDto {
visible: boolean
width: number
}
export interface SelectionDto {
mode?: SingleMultipleOrNone
allowSelectAll: boolean
selectAllMode?: SelectAllMode
showCheckBoxesMode?: SelectionColumnDisplayMode
}
export interface StateStoringDto {
enabled: boolean
type?: StateStoreType
storageKey?: string
savingTimeout: number
}
export interface ValidationRuleDto {
type: ColumnValidationTypeListEnum
message?: string
ignoreEmptyValue: boolean
reevaluate: boolean
comparisonType?: ColumnValidationComparisonTypeEnum
pattern?: string
max: Date | number
min: Date | number
trim: boolean
}
export interface SubFormDto {
tabTitle: string
tabType: SubFormTabTypeEnum
code: string
isRefresh: boolean
relation: SubFormRelationDto[]
tabMode: RowMode
searchParams: URLSearchParams
id?: string
}
export interface SubFormRelationDto {
parentFieldName: string
dbType : DbTypeEnum
childFieldName: string
}
export enum DataSourceTypeEnum {
Mssql = 1,
Postgresql = 2,
}
export enum SortDirectionEnum {
Asc = 'asc',
Desc = 'desc',
}
export enum FixedPositionEnum {
Left = 'left',
Right = 'right',
}
export enum SummaryTypeEnum {
None = 'none',
Count = 'count',
Sum = 'sum',
Average = 'avg',
Minimum = 'min',
Maximum = 'max',
}
export enum SingleMultipleOrNoneEnum {
Single = 'single',
Multiple = 'multiple',
None = 'none',
}
export enum ColumnRowTypeListOptions {
Data = 'data',
Detail = 'detail',
DetailAdaptive = 'detailAdaptive',
Filter = 'filter',
Group = 'group',
GroupFooter = 'groupFooter',
Header = 'header',
TotalFooter = 'totalFooter',
}
export enum SubFormTabTypeEnum {
List = 'List',
Tree = 'Tree',
Form = 'Form',
Chart = 'Chart',
Pivot = 'Pivot',
}
export enum PlatformEditorTypes {
dxTagBox = 'dxTagBox',
dxGridBox = 'dxGridBox',
}
export enum PivotSettingsAreaEnum {
Column = 'column',
Data = 'data',
Filter = 'filter',
Row = 'row',
}
export enum PivotSettingsGroupIntervalEnum {
None = '',
Day = 'day',
DayOfWeek = 'dayOfWeek',
Month = 'month',
Quarter = 'quarter',
Year = 'year',
}
export interface ListFormFieldPivotSettingsDto {
isPivot?: boolean
expanded?: boolean
sortOrder?: string
area?: string
format?: string
summaryType?: string
groupInterval?: string
wordWrapEnabled?: boolean
}
export enum ColumnSortDirectionEnum {
'None' = '',
'Asc' = 'asc',
'Desc' = 'desc',
}
export interface WidgetGroupDto {
colGap?: number
colSpan?: number
className?: string
items: WidgetEditDto[]
isActive: boolean
}
export interface WidgetEditDto {
colGap: number
colSpan: number
sqlQuery?: string
className?: string
title: string
value: string
valueClassName: string
color: string
icon: string
subTitle: string
onClick: string
isActive: boolean
}
export interface LayoutDto {
grid: boolean
card: boolean
pivot: boolean
tree: boolean
chart: boolean
gantt: boolean
defaultLayout: ListViewLayoutType
cardLayoutColumn: number
}
export interface ExtraFilterDto {
fieldName: string
caption: string
operator: string
defaultValue?: string
controlType: string
items?: ExtraFilterItemsDto[]
}
export interface ExtraFilterItemsDto {
key: string
value: string
}
export interface ExtraFilterEditDto extends ExtraFilterDto {
sqlQuery: string
}