import { EventEmitter } from "../../stencil-public-runtime"; import { EntityData } from "../../common/types"; import { ActionListModel } from "@genexus/chameleon-controls-library"; export declare class GxIdeNewObject { #private; el: HTMLGxIdeNewObjectElement; /** * Description of the new object */ description: string; /** * Name of the new object */ name: string; nameValidationErrorMessage: string; selectedCategory: TypeCategoryData | null; selectedType: TypeData | null; typeCategoriesActionListModel: ActionListModel; typesActionListModel: ActionListModel; selectedTypeMap: Map; /** * Allows you to define the type selected by default when instantiating the dialog. * Represented by the type identifier. */ readonly defaultTypeId: string; /** * Default value for the Module/Folder field. */ readonly defaultParent: EntityData; /** * If true it displays the component title on the header */ readonly displayTitle = false; /** * Callback invoked when user wants to cancel object creation */ readonly cancelCallback: CancelCallback; /** * Callback invoked when user wants to confirm object creation */ readonly createCallback: CreateCallback; /** * Applies a shadow all around */ readonly shadow = false; /** * Array containing category list and its corresponding types */ typeCategories: TypeCategoryData[]; typeCategoriesChanged(newValue: TypeCategoryData[]): void; /** * Current value for Module/Folder */ readonly parent: EntityData; /** * Callback invoked when the action is executed on the Module/Folder filter * (button '...'). It returns the information of the selected object (id and * name) or 'undefined' if it was canceled. */ readonly selectModuleCallback: SelectModuleCallback; /** * Callback invoked when you must validate a name. Returns an error message or * 'undefined' if the name is not valid. */ readonly validateNameCallback: ValidateNameCallback; /** * Callback to suggest name and description based on the given type. * Returns the suggested data or undefined if not applicable. */ readonly suggestCallback?: SuggestCallback; /** * This event emits the 'cancel' event */ cancel: EventEmitter; /** * This event emm=its the data needed to create a new object */ create: EventEmitter; /** * This event is triggered after a validation of the object name is made. * Returns 'undefined' if it's valid, otherwise an error message. */ validateName: EventEmitter; connectedCallback(): void; componentWillLoad(): Promise; componentDidLoad(): void; /** * Suspends or reactivates the shortcuts */ suspendShortcuts(suspendShortcuts: boolean): Promise; render(): any; } export interface NewObjectData { typeId: string; name: string; description: string | undefined; moduleId: string; } export type ValidateNameCallback = (name: string) => Promise; export type SelectModuleCallback = () => Promise; export type CreateCallback = (data: NewObjectData) => Promise; export type CancelCallback = () => Promise; export type TypeCategoryData = { id: string; name: string; icon: string; types: TypeData[]; }; export type TypeData = { id: string; name: string; icon: string; hasModule: boolean; hasFolder: boolean; description: string; }; export type SuggestData = { name: string | undefined; description: string | undefined; }; export type SuggestCallback = (typeId: string) => Promise;