##// END OF EJS Templates
corrected tear down logic handling in observables. Added support for observable query results
corrected tear down logic handling in observables. Added support for observable query results

File last commit:

r109:4a375b9c654a default
r110:1a190b3a757d v1.4.0 default
Show More
index.d.ts
88 lines | 2.9 KiB | video/mp2t | TypeScriptLexer
// eslint-disable-next-line @typescript-eslint/triple-slash-reference
/// <reference path="./css-plugin.d.ts"/>
import { Rendition } from "./tsx/traits";
declare global {
namespace JSX {
type Ref<T> = ((value: T | undefined) => void);
type Element = Rendition;
interface DjxIntrinsicAttributes<E> {
/** alias for className */
class?: string;
/** specifies the name of the property in the widget where the the
* reference to the current object will be stored
*/
"data-dojo-attach-point"?: string;
/** specifies handlers map for the events */
"data-dojo-attach-event"?: string;
ref?: Ref<E>;
/** @deprecated */
[attr: string]: unknown;
}
// eslint-disable-next-line @typescript-eslint/no-empty-interface
interface DjxIntrinsicElements {
}
type RecursivePartial<T> = T extends string | number | boolean | null | undefined | ((...args: unknown[]) => unknown) ?
T :
{ [k in keyof T]?: RecursivePartial<T[k]> };
type MatchingMemberKeys<T, U> = {
[K in keyof T]: T[K] extends U ? K : never;
}[keyof T];
type NotMatchingMemberKeys<T, U> = {
[K in keyof T]: T[K] extends U ? never : K;
}[keyof T];
type ExtractMembers<T, U> = Pick<T, MatchingMemberKeys<T, U>>;
type ExcludeMembers<T, U> = Pick<T, NotMatchingMemberKeys<T, U>>;
type ElementAttrNames<E> = NotMatchingMemberKeys<E, (...args: unknown[]) => unknown>;
type ElementAttrType<E, K extends string | symbol> = K extends keyof E ? RecursivePartial<E[K]> : string;
type ElementAttrNamesBlacklist = "children" | "getRootNode" | keyof EventTarget;
/** This type extracts keys of the specified parameter E by the following rule:
* 1. skips all ElementAttrNamesBlacklist
* 2. skips all methods except with the signature of event handlers
*/
type AssignableElementAttrNames<E> = {
[K in keyof E]: K extends ElementAttrNamesBlacklist ? never :
((evt: Event) => unknown) extends E[K] ? K :
E[K] extends ((...args: unknown[]) => unknown) ? never :
K;
}[keyof E];
type LaxElement<E extends object> =
RecursivePartial<Pick<E, AssignableElementAttrNames<E>>> &
DjxIntrinsicAttributes<E>;
type LaxIntrinsicElementsMap = {
[tag in keyof HTMLElementTagNameMap]: LaxElement<HTMLElementTagNameMap[tag]>
} & DjxIntrinsicElements;
type IntrinsicElements = {
[tag in keyof LaxIntrinsicElementsMap]: LaxIntrinsicElementsMap[tag];
};
interface ElementChildrenAttribute {
children: unknown;
}
interface IntrinsicClassAttributes<T> {
ref?: Ref<T>;
children?: unknown;
}
}
}