import { XPositionReference } from '../Enums/XPositionReference'; import { IAvailableContainer } from '../Interfaces/IAvailableContainer'; import { IConfiguration } from '../Interfaces/IConfiguration'; import { IContainerModel } from '../Interfaces/IContainerModel'; import IProperties from '../Interfaces/IProperties'; /// CONTAINER DEFAULTS /// export const SHOW_TEXT = true; export const DEFAULTCHILDTYPE_ALLOW_CYCLIC = false; export const DEFAULTCHILDTYPE_MAX_DEPTH = 10; /// DIMENSIONS DEFAULTS /// export const SHOW_PARENT_DIMENSION = true; export const SHOW_CHILDREN_DIMENSIONS = false; export const SHOW_DIMENSIONS_PER_DEPTH = true; export const DIMENSION_MARGIN = 50; export const NOTCHES_LENGTH = 4; /// EDITOR DEFAULTS /// export const ENABLE_SHORTCUTS = true; export const MAX_HISTORY = 200; export const APPLY_BEHAVIORS_ON_CHILDREN = true; export const DEFAULT_CONFIG: IConfiguration = { AvailableContainers: [ { Type: 'Container', Width: 75, Height: 100, Style: { fillOpacity: 0, stroke: 'green' } } ], AvailableSymbols: [], MainContainer: { Type: 'Container', Width: 2000, Height: 100, Style: { fillOpacity: 0, stroke: 'black' } } }; export const DEFAULT_MAINCONTAINER_PROPS: IProperties = { id: 'main', parentId: 'null', displayedText: 'main', x: 0, y: 0, minWidth: 1, width: Number(DEFAULT_CONFIG.MainContainer.Width), height: Number(DEFAULT_CONFIG.MainContainer.Height), isRigidBody: false, isAnchor: false, XPositionReference: XPositionReference.Left, style: { stroke: 'black', fillOpacity: 0 } }; export const GetDefaultContainerProps = ( type: string, typeCount: number, parent: IContainerModel, x: number, y: number, containerConfig: IAvailableContainer ): IProperties => ({ id: `${type}-${typeCount}`, parentId: parent.properties.id, displayedText: `${type}-${typeCount}`, x, y, width: containerConfig.Width ?? containerConfig.MinWidth ?? parent.properties.width, height: containerConfig.Height ?? parent.properties.height, isRigidBody: false, // set this to true to replicate Florian's project isAnchor: false, XPositionReference: containerConfig.XPositionReference ?? XPositionReference.Left, minWidth: containerConfig.MinWidth ?? 1, customSVG: containerConfig.CustomSVG, style: structuredClone(containerConfig.Style), userData: structuredClone(containerConfig.UserData) });