devextreme
Version:
HTML5 JavaScript Component Suite for Responsive Web Development
129 lines (114 loc) • 7.67 kB
TypeScript
/**
* DevExtreme (core/index.d.ts)
* Version: 24.2.6
* Build date: Mon Mar 17 2025
*
* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
* Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
*/
/**
* @deprecated Attention! This type is for internal purposes only. If you used it previously, please submit a ticket to our {@link https://supportcenter.devexpress.com/ticket/create Support Center}. We will check if there is an alternative solution.
*/
type KeyOf<T> = T extends never ? never : keyof T;
/**
* @deprecated Attention! This type is for internal purposes only. If you used it previously, please submit a ticket to our {@link https://supportcenter.devexpress.com/ticket/create Support Center}. We will check if there is an alternative solution.
*/
type KeysOf<T1, T2, T3, T4, T5, T6, T7, T8> =
KeyOf<T1> | KeyOf<T2> | KeyOf<T3> | KeyOf<T4> | KeyOf<T5> | KeyOf<T6> | KeyOf<T7> | KeyOf<T8>;
/**
* @deprecated Attention! This type is for internal purposes only. If you used it previously, please submit a ticket to our {@link https://supportcenter.devexpress.com/ticket/create Support Center}. We will check if there is an alternative solution.
*/
type Seal<T, K extends keyof any> = T & {
[P in Exclude<K, keyof T>]?: never;
};
// Exact props check, see https://github.com/Microsoft/TypeScript/issues/12936
/**
* @deprecated Attention! This type is for internal purposes only. If you used it previously, please submit a ticket to our {@link https://supportcenter.devexpress.com/ticket/create Support Center}. We will check if there is an alternative solution.
*/
export type Xor<T1, T2 = never, T3 = never, T4 = never, T5 = never, T6 = never, T7 = never, T8 = never, T9 = never> =
| Seal<T1, KeysOf<T2, T3, T4, T5, T6, T7, T8, T9>>
| Seal<T2, KeysOf<T1, T3, T4, T5, T6, T7, T8, T9>>
| Seal<T3, KeysOf<T1, T2, T4, T5, T6, T7, T8, T9>>
| Seal<T4, KeysOf<T1, T2, T3, T5, T6, T7, T8, T9>>
| Seal<T5, KeysOf<T1, T2, T3, T4, T6, T7, T8, T9>>
| Seal<T6, KeysOf<T1, T2, T3, T4, T5, T7, T8, T9>>
| Seal<T7, KeysOf<T1, T2, T3, T4, T5, T6, T8, T9>>
| Seal<T8, KeysOf<T1, T2, T3, T4, T5, T6, T7, T9>>
| Seal<T9, KeysOf<T1, T2, T3, T4, T5, T6, T7, T8>>;
/**
* @deprecated Attention! This type is for internal purposes only. If you used it previously, please submit a ticket to our {@link https://supportcenter.devexpress.com/ticket/create Support Center}. We will check if there is an alternative solution.
*/
export type Scalar = undefined | null | string | String | number | Number | bigint | BigInteger | boolean | Boolean | Date | Function | Symbol | Array<unknown>;
/**
* @deprecated Attention! This type is for internal purposes only. If you used it previously, please submit a ticket to our {@link https://supportcenter.devexpress.com/ticket/create Support Center}. We will check if there is an alternative solution.
*/
export type DeepPartial<T> = T | (T extends Scalar ? T : {
[P in keyof T]?: DeepPartial<T[P]>;
});
/**
* @deprecated Attention! This type is for internal purposes only. If you used it previously, please submit a ticket to our {@link https://supportcenter.devexpress.com/ticket/create Support Center}. We will check if there is an alternative solution.
*/
type ItemType<T> = T extends (infer TItem)[] ? TItem : T;
/**
* @deprecated Attention! This type is for internal purposes only. If you used it previously, please submit a ticket to our {@link https://supportcenter.devexpress.com/ticket/create Support Center}. We will check if there is an alternative solution.
*/
type Property<T, TPropName extends string> = T extends Partial<Record<TPropName, infer TValue>> ? TValue : never;
/**
* @deprecated Attention! This type is for internal purposes only. If you used it previously, please submit a ticket to our {@link https://supportcenter.devexpress.com/ticket/create Support Center}. We will check if there is an alternative solution.
*/
type OwnPropertyType<T, TPropName extends string> = Property<ItemType<T>, TPropName>;
/**
* @deprecated Attention! This type is for internal purposes only. If you used it previously, please submit a ticket to our {@link https://supportcenter.devexpress.com/ticket/create Support Center}. We will check if there is an alternative solution.
*/
export type PropertyType<T, TProp extends string> =
TProp extends `${infer TOwnProp}.${infer TNestedProps}`
? PropertyType<OwnPropertyType<T, TOwnProp>, TNestedProps>
: OwnPropertyType<T, TProp>;
/**
* @deprecated Attention! This type is for internal purposes only. If you used it previously, please submit a ticket to our {@link https://supportcenter.devexpress.com/ticket/create Support Center}. We will check if there is an alternative solution.
*/
export type OmitInternal<T> = Omit<T, `${'_' | '$'}${any}`>;
/**
* IncrementalCounter[1]=2, IncrementalCounter[2]=3, IncrementalCounter[3]=4, ...
*/
/**
* @deprecated Attention! This type is for internal purposes only. If you used it previously, please submit a ticket to our {@link https://supportcenter.devexpress.com/ticket/create Support Center}. We will check if there is an alternative solution.
*/
type IncrementalCounter = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20];
/**
* Returns the number of union elements or unknown if it is too large.
*/
/**
* @deprecated Attention! This type is for internal purposes only. If you used it previously, please submit a ticket to our {@link https://supportcenter.devexpress.com/ticket/create Support Center}. We will check if there is an alternative solution.
*/
type UnionLength<T extends string> = UnionLengthInner<T, 1>;
/**
* @deprecated Attention! This type is for internal purposes only. If you used it previously, please submit a ticket to our {@link https://supportcenter.devexpress.com/ticket/create Support Center}. We will check if there is an alternative solution.
*/
type UnionLengthInner<T extends string, C extends number> = C extends undefined ? unknown : {
[K in T]: Exclude<T, K> extends never ? C : UnionLengthInner<Exclude<T, K>, IncrementalCounter[C]>
}[T];
/**
* @deprecated Attention! This type is for internal purposes only. If you used it previously, please submit a ticket to our {@link https://supportcenter.devexpress.com/ticket/create Support Center}. We will check if there is an alternative solution.
*/
type PermutedUnionLength = 1 | 2 | 3 | 4 | 5 | 6 | 7;
/**
* Returns {@link https://en.wikipedia.org/wiki/Permutation permutations} from a string tuple.
* If union contains more than 7 elements, returns string.
*/
/**
* @deprecated Attention! This type is for internal purposes only. If you used it previously, please submit a ticket to our {@link https://supportcenter.devexpress.com/ticket/create Support Center}. We will check if there is an alternative solution.
*/
export type Permutations<T extends string> = UnionLength<T> extends PermutedUnionLength ? {
[K in T]: Exclude<T, K> extends never ? K : `${Permutations<Exclude<T, K>>} ${K}`
}[T] : string;
/**
* Returns all possible {@link https://en.wikipedia.org/wiki/Permutation#k-permutations_of_n k-permutations} (k = [1...n])
* If union contains more than 7 elements, returns string.
*/
/**
* @deprecated Attention! This type is for internal purposes only. If you used it previously, please submit a ticket to our {@link https://supportcenter.devexpress.com/ticket/create Support Center}. We will check if there is an alternative solution.
*/
export type AllPermutations<T extends string> = UnionLength<T> extends PermutedUnionLength ? {
[K in T]: Permutations<T> | AllPermutations<Exclude<T, K>>
}[T] : string;