/** * @license * Copyright (c) 2014, 2023, Oracle and/or its affiliates. * Licensed under The Universal Permissive License (UPL), Version 1.0 * as shown at https://oss.oracle.com/licenses/upl/ * @ignore */ import './oj-requirejs-plugins'; export namespace oj { let revision: string; let version: string; } export interface baseComponent extends JetElement { translations: object | null; addEventListener>(type: T, listener: (this: HTMLElement, ev: baseComponentEventMap[T]) => any, options?: (boolean | AddEventListenerOptions)): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: (boolean | AddEventListenerOptions)): void; getProperty(property: T): baseComponent[T]; getProperty(property: string): any; setProperty(property: T, value: baseComponentSettableProperties[T]): void; setProperty(property: T, value: JetSetPropertyType): void; setProperties(properties: baseComponentSettablePropertiesLenient): void; refresh(): void; } export namespace baseComponent { // tslint:disable-next-line interface-over-type-literal type translationsChanged = JetElementCustomEvent["translations"]>; } export interface baseComponentEventMap extends HTMLElementEventMap { 'translationsChanged': JetElementCustomEvent["translations"]>; } export interface baseComponentSettableProperties extends JetSettableProperties { translations: object | null; } export interface baseComponentSettablePropertiesLenient extends Partial { [key: string]: any; } export interface GenericSetter { set(propertyName: K, propertyValue: SP[K]): void; unset(propertyName: keyof SP): void; } export interface JetElement extends HTMLElement, GenericSetter { set(propertyName: K, propertyValue: SP[K]): void; unset(propertyName: keyof SP): void; addEventListener(type: T, listener: (this: HTMLElement, ev: HTMLElementEventMap[T]) => any, options?: (boolean | AddEventListenerOptions)): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: (boolean | AddEventListenerOptions)): void; getProperty(property: T): JetElement[T]; getProperty(property: string): any; setProperty(property: T, value: JetSettableProperties[T]): void; setProperty(property: T, value: JetSetPropertyType): void; setProperties(properties: JetSettableProperties): void; } export interface JetElementCustomEvent extends CustomEvent<{ value: V; previousValue: V; updatedFrom: 'external' | 'internal'; subproperty: { path: string; value: any; previousValue: any; [key: string]: any; }; [key: string]: any; }> { } export interface JetElementCustomEventStrict extends CustomEvent<{ value: V; previousValue: V; updatedFrom: 'external' | 'internal'; subproperty: { path: string; value: any; previousValue: any; }; }> { } // This interfaces is empty but required to keep the component chain intact. Avoid lint-rule // tslint:disable-next-line no-empty-interface export interface JetSettableProperties { } export type JetSetPropertyType = K extends keyof U ? U[K] : any;