/// interface UI5SelectorDefIdentification { /** * For getUI5() the "ui5Id" - for checking, it will search all id patterns (ui5Id, ui5LocalId, domId, lumiraId) */ id?: string; /** * UI5 ID, including all parent IDs, but without a component ID */ ui5Id?: string; /** * UI5 ID maintained during creation in the ID field */ ui5LocalId?: string; /** * DOM ID of the root HTML element - should normally not be used */ domId?: string; /** * For Lumira Applications: Lumira Identifier */ lumriaId?: string; /** * true in case the item referes to a cloned item-list (e.g. item 1 in a list) */ idCloned?: boolean; /** * true in case the id is artifical (so no static id was defined). Do not use that element */ idGenerated?: boolean; /** * The absolute UI5 Identifier, including all information (getId()) */ ui5AbsoluteId?: string; } interface UI5BindingDefProperty { path: string; pathRelative: string; model: string; } interface UI5PropertyDefMetadata { [property: string]: string | number | boolean; } interface UI5LumiraProperty { [property: string]: string | number | boolean; } interface UI5BindingDefMetadata { [binding: string]: UI5BindingDefProperty; } interface UI5TableData { visibleDimensionsCol?: string[]; visibleDimensionsRow?: string[]; finalLength?: number; data: any[]; } interface ui5SACRelatedElementsData { filterOpenLink?: string; filterDeleteLink?: string; filterPopup?: string; titleControl?: string; } interface ui5SACFilterData { attribute: string; values: string[]; exclude: boolean; } interface ui5SACDataPointData { xValue: number; yValue: number; measures: string[]; dimensions: string[]; } interface ui5SACChartData { title: string; subTitle: string; type: string; dataLabelVisible: boolean; } interface UI5SACData { widgetId?: string; chart?: ui5SACChartData; filters?: ui5SACFilterData; relatedElements?: ui5SACRelatedElementsData; dataPoints?: ui5SACDataPointData[]; tableData?: any; } interface UI5SelectorCSSValues { [cssAttributeName: string]: string; } interface UI5SelectorCustomData { [customDataName: string]: string | boolean | number; } interface UI5SelectorChildrenCountDef { _all: number; [className: string]: number; } interface UI5BindingContextDefMetadata { [binding: string]: string; } interface UI5BindingContextData { [context: string]: any; } interface UI5SelectorDefInteractable { busy?: boolean; needsRerendering?: boolean; enabled?: boolean; visible?: boolean; blocked?: boolean; nonZeroSize?: boolean; interactable?: boolean; } interface UI5SelectorDefMetadata { elementName?: string | string[]; componentName?: string; /** * For Lumira Applications: Lumira Element Type */ lumiraType?: string; interactable?: UI5SelectorDefInteractable; } interface UI5SelectorChildrenDef { id: string; className: string; property?: UI5PropertyDefMetadata; } interface UI5TableSettings { insideATable?: boolean; tableRow?: number; tableCol?: number; } interface UI5AggregationRowInfoData { ui5Id: string; ui5AbsoluteId: string; } interface UI5AggregationInfoData { rows: UI5AggregationRowInfoData[]; filled: boolean; name: string; length: number; } interface UI5LabelInfoData { property: UI5PropertyDefMetadata; textBinding: string; } interface UI5DataResultBase { /** * Identification information, mostly related about ID (getId()) information */ identifier?: UI5SelectorDefIdentification; /** * Metadata-Information about the control itself */ metadata?: UI5SelectorDefMetadata; /** * Contains information about related aggregations - structure: * AGGREGATION_NAME { length: the length of the aggregation } * * Example: { items: { length: 3 }} */ aggregation?: UI5AggregationInfoData; /** * Contains information about related binding contexts - structure: * MODEL_NAME { DYNAMIC_VALUES_OF_THE_BINDING } * * Example: { undefined: { purchaseOrderId: '12345' }} */ context?: UI5BindingContextData; /** * Identical to "context", but not using any model-name, for better upgradeability * It is searching for local bindings and taking the model-name defined here.. * */ smartContext?: any; binding?: UI5BindingDefMetadata; bindingContext?: UI5BindingContextDefMetadata; property?: UI5PropertyDefMetadata; lumiraProperty?: UI5LumiraProperty; sac?: UI5SACData; /** * Assigned Style classes */ styleClass?: string[]; /** * Assigned CSS Values */ cssValues?: UI5SelectorCSSValues; customData?: UI5SelectorCustomData; /** * DOM position relative to the children of the direct parent */ positionInParent?: number; } export interface UI5DataResult extends UI5DataResultBase { /** * Bound in case the selected control is a tabular like control - contains the JSON formatted data */ tableData?: UI5TableData; parents?: UI5DataResultBase[]; itemdata?: UI5PropertyDefMetadata; label?: UI5LabelInfoData; /** * Information about the Children */ children?: UI5SelectorChildrenDef[]; /** * Amount of Children */ childrenCount?: UI5SelectorChildrenCountDef; /** * Set in case any parent is of type sap.m.Table, sap.ui.table.Table, sap.ui.table.TreeTable or sap.zen.crosstab.Crosstab */ tableSettings?: UI5TableSettings; /** * Can be returned by custom enhancement scripts (use fn function) */ enhancedData?: any; } export interface UI5SelectorDef extends Selector { getUI5(fn?: UI5DataCallback, fnCustomData?: string): Promise; } export declare type UI5DataCallback = (element: UI5SelectorDef) => any; export declare let UI5Selector: (timeout?: number) => UI5SelectorDef; export {};