export type GxgFormItemsArray = (HTMLGxgComboBoxItemElement | HTMLGxgFormCheckboxElement | HTMLGxgFormRadioElement)[] | null; export type ObjectBaseData = { id: string; name: string; }; export type GxOption = { id: string; label?: string; name?: string; value?: string; type?: string; disabled?: boolean; checked?: boolean; selected?: boolean; icon?: string; iconName?: string; iconColor?: string; }; export type ImportCategoryData = { id: string; name: string; icon: string; items: ImportItemData[]; }; export type ImportItemData = { id: string; name: string; }; export type ImportItemResultData = { id: string; name: string; status: "warning" | "error" | "success"; messages?: string[]; }; export type Position = "above" | "end" | "below" | "start"; export type LabelPosition = "inline-start" | "block-start" | "none"; export type FormElementValidation = { key: string; message: string; hasError: boolean; }; export type FormSubmitResult = { success: boolean; fieldErrors: FormElementValidation[]; }; export type ConnectionResultData = { success: boolean; fieldErrors: FormElementValidation[]; }; export type ObjectType = { id: string; name: string; icon?: string; }; export type ContextMenuInfo = { selection: string[]; clientX: number; clientY: number; }; export type ItemsCheckedState = { itemsChecked: string[]; itemsUnchecked: string[]; }; export type ItemsCheckedResult = { itemsToCheck: string[]; itemsToUncheck: string[]; }; export type ResultState = "info" | "success" | "warning" | "error"; export type EntityData = { id: string; name: string; iconSrc?: string; }; export type GxServerAuthenticationType = "genexus" | "local"; /** * Useful to filtering the keys of an object by pattern matching the keys. For * example, all GeneXus IDE UI controls: * * @example * ```ts * type GeneXusIdeUIControlsTagName = FilterKeys< * HTMLElementTagNameMap, * `gx-ide-${string}` * > * ``` */ export type FilterKeys = { [K in keyof T]: K extends U ? K : never; }[keyof T]; export type GeneXusIdeUIControlsTagName = FilterKeys;