@endge/utils 0.24.12 → 0.24.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/collection/RingBuffer.d.ts +12 -0
- package/dist/collection/collection.d.ts +51 -0
- package/dist/collection/collection.types.d.ts +35 -0
- package/dist/collection/indexed-collection.d.ts +140 -0
- package/dist/composable/useCookie.d.ts +1 -0
- package/dist/database/PayloadHttpClient.d.ts +13 -0
- package/dist/events/EventBus.d.ts +117 -0
- package/dist/events/Subscribable.d.ts +31 -0
- package/dist/execute/NamedExecutor.d.ts +39 -0
- package/dist/execute/delay-executor.d.ts +31 -0
- package/dist/index.d.ts +42 -1320
- package/dist/serialize/Serialize.d.ts +14 -0
- package/dist/serialize/decorators/json.d.ts +10 -0
- package/dist/serialize/decorators/jsonString.d.ts +1 -0
- package/dist/serialize/decorators/onDeserialized.d.ts +2 -0
- package/dist/serialize/decorators/script.d.ts +10 -0
- package/dist/serialize/decorators/typeMap.d.ts +55 -0
- package/dist/serialize/decorators/typeRecord.d.ts +59 -0
- package/dist/serialize/useStorageDebounced.d.ts +2 -0
- package/dist/shared/serialize/decorator.d.ts +15 -0
- package/dist/shared/serialize/parse.d.ts +3 -0
- package/dist/shared/types/getter-fn.d.ts +3 -0
- package/dist/shared/types/maybe.d.ts +2 -0
- package/dist/shared/utils/compare.d.ts +1 -0
- package/dist/shared/utils/generate.d.ts +2 -0
- package/dist/shared/utils/keyboard.d.ts +9 -0
- package/dist/shared/utils/text.d.ts +1 -0
- package/dist/shared/utils/time.d.ts +41 -0
- package/dist/tools/compare.d.ts +1 -0
- package/dist/tools/console.d.ts +4 -0
- package/dist/tools/debug.d.ts +2 -0
- package/dist/tools/generate.d.ts +1 -0
- package/dist/tools/geometry.d.ts +15 -0
- package/dist/tools/hotkeys.d.ts +56 -0
- package/dist/tools/keyboard.d.ts +21 -0
- package/dist/tools/logs.d.ts +176 -0
- package/dist/tools/reflect.d.ts +12 -0
- package/dist/tools/state.d.ts +1 -0
- package/dist/tools/system-clock.d.ts +14 -0
- package/dist/tools/text.d.ts +1 -0
- package/dist/tools/time.d.ts +1 -0
- package/dist/tools/tools.types.d.ts +101 -0
- package/dist/tooltip/TooltipRegistrator.d.ts +15 -0
- package/dist/tooltip/store.d.ts +29 -0
- package/dist/tooltip/tooltip.types.d.ts +10 -0
- package/dist/ui/tree.types.d.ts +7 -0
- package/dist/updates/SSEManager.d.ts +26 -0
- package/dist/updates/UPSMeter_Service.d.ts +8 -0
- package/package.json +6 -5
package/dist/index.d.ts
CHANGED
|
@@ -1,1320 +1,42 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
*
|
|
11
|
-
|
|
12
|
-
export
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
export
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
*
|
|
21
|
-
|
|
22
|
-
export
|
|
23
|
-
|
|
24
|
-
export
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
*
|
|
28
|
-
|
|
29
|
-
export
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
*
|
|
33
|
-
|
|
34
|
-
export
|
|
35
|
-
|
|
36
|
-
export
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
*
|
|
40
|
-
|
|
41
|
-
export
|
|
42
|
-
|
|
43
|
-
export declare function capitalize(val: unknown): string;
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Описывает ответственность Collection в архитектуре проекта.
|
|
47
|
-
*/
|
|
48
|
-
export declare class Collection<T extends CollectionEntity> extends Subscribable {
|
|
49
|
-
private items;
|
|
50
|
-
private indices;
|
|
51
|
-
private rootIds;
|
|
52
|
-
private bus;
|
|
53
|
-
/**
|
|
54
|
-
* Создает экземпляр Collection и подготавливает базовое состояние.
|
|
55
|
-
*/
|
|
56
|
-
constructor(initialItems?: Array<T>);
|
|
57
|
-
/**
|
|
58
|
-
* Выполняет действие add в рамках ответственности Collection.
|
|
59
|
-
*/
|
|
60
|
-
add(items: T | Array<T>): void;
|
|
61
|
-
/**
|
|
62
|
-
* Удаляет сущность из runtime-коллекции Collection.
|
|
63
|
-
*/
|
|
64
|
-
remove(arg: string | T | Array<string | T>): void;
|
|
65
|
-
/**
|
|
66
|
-
* Обновляет runtime-состояние Collection.
|
|
67
|
-
*/
|
|
68
|
-
update(itemOrItems: T | Array<T>): void;
|
|
69
|
-
/**
|
|
70
|
-
* Возвращает значение состояния Collection.
|
|
71
|
-
*/
|
|
72
|
-
get(arg: string | Partial<T>): T | undefined;
|
|
73
|
-
/**
|
|
74
|
-
* Создает runtime-сущность Collection.
|
|
75
|
-
*/
|
|
76
|
-
private createIndex;
|
|
77
|
-
/**
|
|
78
|
-
* Возвращает реактивный массив всех элементов.
|
|
79
|
-
*/
|
|
80
|
-
get all(): Array<T>;
|
|
81
|
-
/**
|
|
82
|
-
* Возвращает массив корневых элементов (без parentId).
|
|
83
|
-
*/
|
|
84
|
-
get allRoot(): Array<T>;
|
|
85
|
-
/**
|
|
86
|
-
* Обрабатывает входящее событие Collection.
|
|
87
|
-
*/
|
|
88
|
-
on<K extends keyof CollectionEvents<T>>(event: K, cb: (payload: CollectionEvents<T>[K]) => void): void;
|
|
89
|
-
/**
|
|
90
|
-
* Выполняет действие off в рамках ответственности Collection.
|
|
91
|
-
*/
|
|
92
|
-
off<K extends keyof CollectionEvents<T>>(event: K, cb: (payload: CollectionEvents<T>[K]) => void): void;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
export declare interface CollectionEntity {
|
|
96
|
-
id: string;
|
|
97
|
-
parentId?: string | null;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
export declare type CollectionEvents<T extends CollectionEntity> = {
|
|
101
|
-
[Events.Add]: Array<T>;
|
|
102
|
-
[Events.Remove]: Array<T>;
|
|
103
|
-
[Events.Update]: Array<T>;
|
|
104
|
-
[Events.IndexCreate]: keyof T;
|
|
105
|
-
};
|
|
106
|
-
|
|
107
|
-
export declare type CollectionOptions<T extends IndexCollectionEntity<ID>, ID = string | null> = {
|
|
108
|
-
sortFn: (a: T, b: T) => number;
|
|
109
|
-
filterFn: (item: T) => boolean;
|
|
110
|
-
indexEnabled: boolean;
|
|
111
|
-
filterIndexEnabled: boolean;
|
|
112
|
-
};
|
|
113
|
-
|
|
114
|
-
export declare function compareNumber(a: any, b: any): number;
|
|
115
|
-
|
|
116
|
-
/** Returns Error metadata as text without forwarding the Error object to Console. */
|
|
117
|
-
export declare function consoleErrorSummary(error: unknown): string;
|
|
118
|
-
|
|
119
|
-
/** Returns a bounded string without traversing or retaining the supplied value. */
|
|
120
|
-
export declare function consoleValueSummary(value: unknown): string;
|
|
121
|
-
|
|
122
|
-
/**
|
|
123
|
-
* Тип конструктора для класса.
|
|
124
|
-
* Используется, например, в DI-контейнерах или фабриках.
|
|
125
|
-
*/
|
|
126
|
-
export declare type Constructor<T = any> = new (...args: Array<any>) => T;
|
|
127
|
-
|
|
128
|
-
/**
|
|
129
|
-
* Утилитарный тип: или конструктор, или фабрика.
|
|
130
|
-
*/
|
|
131
|
-
export declare type ConstructorOrFactory<T, Args extends Array<any> = Array<any>> = (new (...args: Args) => T) | ((...args: Args) => T);
|
|
132
|
-
|
|
133
|
-
/**
|
|
134
|
-
* Универсальный вызов: конструктор или фабрика.
|
|
135
|
-
*/
|
|
136
|
-
export declare function createInstance<T, Args extends Array<any>>(source: ConstructorOrFactory<T, Args>, ...args: Args): T;
|
|
137
|
-
|
|
138
|
-
export declare interface DataPoint {
|
|
139
|
-
x: number;
|
|
140
|
-
y: number;
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
export declare interface DataRect {
|
|
144
|
-
x: number;
|
|
145
|
-
y: number;
|
|
146
|
-
width: number;
|
|
147
|
-
height: number;
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
export declare interface DataSize {
|
|
151
|
-
width: number;
|
|
152
|
-
height: number;
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
export declare interface DateRange {
|
|
156
|
-
start: Date;
|
|
157
|
-
end: Date;
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
/**
|
|
161
|
-
* Частичный рекурсивный тип.
|
|
162
|
-
* Делает все поля и вложенные поля необязательными.
|
|
163
|
-
*/
|
|
164
|
-
export declare type DeepPartial<T> = {
|
|
165
|
-
[P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];
|
|
166
|
-
};
|
|
167
|
-
|
|
168
|
-
/**
|
|
169
|
-
* Описывает ответственность DelayedExecutor в архитектуре проекта.
|
|
170
|
-
*/
|
|
171
|
-
export declare class DelayedExecutor<T extends Array<any> = []> {
|
|
172
|
-
private readonly fn;
|
|
173
|
-
private readonly firstExecuteImmediately;
|
|
174
|
-
private delayTimer;
|
|
175
|
-
private maxTimer;
|
|
176
|
-
private hasExecutedOnce;
|
|
177
|
-
private lastArgs;
|
|
178
|
-
/**
|
|
179
|
-
* Создает экземпляр DelayedExecutor и подготавливает базовое состояние.
|
|
180
|
-
*/
|
|
181
|
-
constructor(fn: (...args: T) => void, firstExecuteImmediately?: boolean);
|
|
182
|
-
/**
|
|
183
|
-
* Выполняет действие run в рамках ответственности DelayedExecutor.
|
|
184
|
-
*/
|
|
185
|
-
run(args: T, delayMs?: number, maxWaitMs?: number): void;
|
|
186
|
-
/**
|
|
187
|
-
* Принудительно завершает накопленные изменения DelayedExecutor.
|
|
188
|
-
*/
|
|
189
|
-
flush(): void;
|
|
190
|
-
/**
|
|
191
|
-
* Выполняет действие cancel в рамках ответственности DelayedExecutor.
|
|
192
|
-
*/
|
|
193
|
-
cancel(): void;
|
|
194
|
-
/**
|
|
195
|
-
* Очищает накопленное состояние DelayedExecutor.
|
|
196
|
-
*/
|
|
197
|
-
private clear;
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
export declare function DeserializeArrayField(field: string): PropertyDecorator;
|
|
201
|
-
|
|
202
|
-
export declare function DeserializeId(): PropertyDecorator;
|
|
203
|
-
|
|
204
|
-
/**
|
|
205
|
-
* Тип, обозначающий словарь значений.
|
|
206
|
-
*/
|
|
207
|
-
export declare type Dictionary<T = any> = Record<string, T>;
|
|
208
|
-
|
|
209
|
-
export declare function diffDuration(d1: Date, d2: Date): string;
|
|
210
|
-
|
|
211
|
-
export declare function diffDurationTable(d1: Date, d2: Date): string;
|
|
212
|
-
|
|
213
|
-
export declare const dt: (date: Date) => DateTime;
|
|
214
|
-
|
|
215
|
-
/**
|
|
216
|
-
* EventBus реализует паттерн подписки на события.
|
|
217
|
-
*
|
|
218
|
-
* Поддерживает:
|
|
219
|
-
* - Типизированные события через дженерик StaticEvents;
|
|
220
|
-
* - Кастомные (непредопределённые) события;
|
|
221
|
-
* - Подписку `on`, одноразовую подписку `once`, отписку `off`;
|
|
222
|
-
* - Эмит `emit`, проверку `hasListeners` и список активных событий `eventNames`.
|
|
223
|
-
*
|
|
224
|
-
* Пример использования:
|
|
225
|
-
*
|
|
226
|
-
* ```ts
|
|
227
|
-
* type Events = {
|
|
228
|
-
* userLogin: { id: string }
|
|
229
|
-
* error: { message: string }
|
|
230
|
-
* }
|
|
231
|
-
*
|
|
232
|
-
* const bus = new EventBus<Events>(['userLogin', 'error'])
|
|
233
|
-
*
|
|
234
|
-
* bus.on('userLogin', ({ id }) => console.logFrame(`Login: ${id}`))
|
|
235
|
-
* bus.once('error', ({ message }) => console.warn('One-time error:', message))
|
|
236
|
-
*
|
|
237
|
-
* bus.emit('userLogin', { id: 'u42' }) // Login: u42
|
|
238
|
-
* bus.emit('error', { message: 'fail' }) // One-time error: fail
|
|
239
|
-
* bus.emit('error', { message: 'fail again' }) // уже не сработает
|
|
240
|
-
*
|
|
241
|
-
* console.logFrame(bus.hasListeners('userLogin')) // true
|
|
242
|
-
* console.logFrame(bus.eventNames()) // ['userLogin']
|
|
243
|
-
* ```
|
|
244
|
-
*/
|
|
245
|
-
export declare class EventBus<StaticEvents extends Record<string, any>, CustomEventMap extends Record<string, any> = Record<string, any>> {
|
|
246
|
-
private listeners;
|
|
247
|
-
/**
|
|
248
|
-
* Создает экземпляр EventBus и подготавливает базовое состояние.
|
|
249
|
-
*/
|
|
250
|
-
constructor(predefinedEvents?: Array<keyof StaticEvents>);
|
|
251
|
-
/**
|
|
252
|
-
* Обрабатывает входящее событие EventBus.
|
|
253
|
-
*/
|
|
254
|
-
on<K extends keyof StaticEvents>(events: OneOrMany<K>, callback: EventCallback<StaticEvents[K]>): void;
|
|
255
|
-
/**
|
|
256
|
-
* Обрабатывает входящее событие EventBus.
|
|
257
|
-
*/
|
|
258
|
-
once<K extends keyof StaticEvents>(events: OneOrMany<K>, callback: EventCallback<StaticEvents[K]>): void;
|
|
259
|
-
/**
|
|
260
|
-
* Выполняет действие off в рамках ответственности EventBus.
|
|
261
|
-
*/
|
|
262
|
-
off<K extends keyof StaticEvents>(events: OneOrMany<K>, callback: EventCallback<StaticEvents[K]>): void;
|
|
263
|
-
/**
|
|
264
|
-
* Выполняет действие offAll в рамках ответственности EventBus.
|
|
265
|
-
*/
|
|
266
|
-
offAll(): void;
|
|
267
|
-
/**
|
|
268
|
-
* Публикует событие во внутренний event bus EventBus.
|
|
269
|
-
*/
|
|
270
|
-
emit<K extends keyof StaticEvents>(event: K, payload: StaticEvents[K]): void;
|
|
271
|
-
/**
|
|
272
|
-
* Обрабатывает входящее событие EventBus.
|
|
273
|
-
*/
|
|
274
|
-
onCustom<K extends keyof CustomEventMap>(events: OneOrMany<K>, callback: EventCallback<CustomEventMap[K]>): void;
|
|
275
|
-
/**
|
|
276
|
-
* Обрабатывает входящее событие EventBus.
|
|
277
|
-
*/
|
|
278
|
-
onceCustom<K extends keyof CustomEventMap>(events: OneOrMany<K>, callback: EventCallback<CustomEventMap[K]>): void;
|
|
279
|
-
/**
|
|
280
|
-
* Выполняет действие offCustom в рамках ответственности EventBus.
|
|
281
|
-
*/
|
|
282
|
-
offCustom<K extends keyof CustomEventMap>(events: OneOrMany<K>, callback: EventCallback<CustomEventMap[K]>): void;
|
|
283
|
-
/**
|
|
284
|
-
* Публикует событие во внутренний event bus EventBus.
|
|
285
|
-
*/
|
|
286
|
-
emitCustom<K extends keyof CustomEventMap>(event: K, payload: CustomEventMap[K]): void;
|
|
287
|
-
/**
|
|
288
|
-
* Обрабатывает входящее событие EventBus.
|
|
289
|
-
*/
|
|
290
|
-
private _on;
|
|
291
|
-
/**
|
|
292
|
-
* Обрабатывает входящее событие EventBus.
|
|
293
|
-
*/
|
|
294
|
-
private _once;
|
|
295
|
-
/**
|
|
296
|
-
* Выполняет внутренний шаг _off для EventBus.
|
|
297
|
-
*/
|
|
298
|
-
private _off;
|
|
299
|
-
/**
|
|
300
|
-
* Публикует событие во внутренний event bus EventBus.
|
|
301
|
-
*/
|
|
302
|
-
private _emit;
|
|
303
|
-
/**
|
|
304
|
-
* Выполняет действие hasListeners в рамках ответственности EventBus.
|
|
305
|
-
*/
|
|
306
|
-
hasListeners(event: string): boolean;
|
|
307
|
-
/**
|
|
308
|
-
* Выполняет действие eventNames в рамках ответственности EventBus.
|
|
309
|
-
*/
|
|
310
|
-
eventNames(): Array<string>;
|
|
311
|
-
/**
|
|
312
|
-
* Очищает накопленное состояние EventBus.
|
|
313
|
-
*/
|
|
314
|
-
clear(event?: string): void;
|
|
315
|
-
}
|
|
316
|
-
|
|
317
|
-
/**
|
|
318
|
-
* Тип колбэка для события.
|
|
319
|
-
* @template T Тип данных, передаваемых в событие.
|
|
320
|
-
*/
|
|
321
|
-
export declare type EventCallback<T = any> = (payload: T) => void;
|
|
322
|
-
|
|
323
|
-
export declare type EventList = Record<string, any>;
|
|
324
|
-
|
|
325
|
-
export declare enum Events {
|
|
326
|
-
Add = "add",
|
|
327
|
-
Remove = "remove",
|
|
328
|
-
Update = "update",
|
|
329
|
-
IndexCreate = "indexCreate"
|
|
330
|
-
}
|
|
331
|
-
|
|
332
|
-
export declare function extractTime(date: Date | string | object, isLocalTime?: boolean): string;
|
|
333
|
-
|
|
334
|
-
/**
|
|
335
|
-
* Тип с возможностью `null`, `undefined` или любого значения.
|
|
336
|
-
*/
|
|
337
|
-
export declare type Falsy = false | '' | 0 | null | undefined;
|
|
338
|
-
|
|
339
|
-
export declare function findMinMaxDates(dates: Set<Date>): {
|
|
340
|
-
minDate: Date;
|
|
341
|
-
maxDate: Date;
|
|
342
|
-
};
|
|
343
|
-
|
|
344
|
-
export declare function formatDatetime(date: Date, formatString?: string, options?: {}): string;
|
|
345
|
-
|
|
346
|
-
export declare function formatDatetimeTZ(date: Date | string | object, formatString?: string, options?: {}, isLocalTime?: boolean): string;
|
|
347
|
-
|
|
348
|
-
export declare function formatDatetimeTZSpecial(date?: Date | string | object | null, formatString?: string, options?: {}): string;
|
|
349
|
-
|
|
350
|
-
export declare function formatDateToMSK(date: any): string;
|
|
351
|
-
|
|
352
|
-
export declare const generateUUID: () => string;
|
|
353
|
-
|
|
354
|
-
export declare function GenericExpose(options: ExposeOptions): (target: object, propertyKey: string | symbol) => void;
|
|
355
|
-
|
|
356
|
-
export declare function getDateOnlyDiffFactor(d1: Date, d2: Date): {
|
|
357
|
-
variant: 'red' | 'blue';
|
|
358
|
-
value: string;
|
|
359
|
-
} | null;
|
|
360
|
-
|
|
361
|
-
export declare function getDayOfWeek(date: any): string;
|
|
362
|
-
|
|
363
|
-
/** Returns the shared document-scoped keyboard snapshot, installing one tracker lazily. */
|
|
364
|
-
export declare function getKeyboardStateSnapshot(target: Document): KeyboardStateSnapshot;
|
|
365
|
-
|
|
366
|
-
export declare function getOnDeserializedMethod<T>(instance: T): (() => void) | null;
|
|
367
|
-
|
|
368
|
-
export declare function getTimezoneOffsetMs(timezone: string): number;
|
|
369
|
-
|
|
370
|
-
export declare type GlobalEvents = {
|
|
371
|
-
notify: {
|
|
372
|
-
severity: 'success' | 'error' | 'info' | 'warn';
|
|
373
|
-
summary: string;
|
|
374
|
-
detail?: string;
|
|
375
|
-
life?: number;
|
|
376
|
-
};
|
|
377
|
-
};
|
|
378
|
-
|
|
379
|
-
export declare function globalState<T>(factory: () => T): () => T;
|
|
380
|
-
|
|
381
|
-
declare type HotkeyHandler = (event: KeyboardEvent) => void;
|
|
382
|
-
|
|
383
|
-
/**
|
|
384
|
-
* Управляет ресурсами и состоянием HotkeyManager.
|
|
385
|
-
*/
|
|
386
|
-
export declare class HotkeyManager {
|
|
387
|
-
private bindings;
|
|
388
|
-
private enabled;
|
|
389
|
-
private readonly target;
|
|
390
|
-
private readonly ignoreInput;
|
|
391
|
-
private readonly handleBound;
|
|
392
|
-
/**
|
|
393
|
-
* Создает экземпляр HotkeyManager и подготавливает базовое состояние.
|
|
394
|
-
*/
|
|
395
|
-
constructor(options?: HotkeyManagerOptions);
|
|
396
|
-
/**
|
|
397
|
-
* Выполняет внутренний шаг isIgnoredTarget для HotkeyManager.
|
|
398
|
-
*/
|
|
399
|
-
private isIgnoredTarget;
|
|
400
|
-
/**
|
|
401
|
-
* Нормализует входные данные HotkeyManager.
|
|
402
|
-
*/
|
|
403
|
-
private normalizeKey;
|
|
404
|
-
/**
|
|
405
|
-
* Обрабатывает runtime-событие HotkeyManager.
|
|
406
|
-
*/
|
|
407
|
-
private handle;
|
|
408
|
-
/**
|
|
409
|
-
* Обрабатывает входящее событие HotkeyManager.
|
|
410
|
-
*/
|
|
411
|
-
on(keys: string | Array<string>, handler: HotkeyHandler): void;
|
|
412
|
-
/**
|
|
413
|
-
* Выполняет действие off в рамках ответственности HotkeyManager.
|
|
414
|
-
*/
|
|
415
|
-
off(keys: string | Array<string>, handler: HotkeyHandler): void;
|
|
416
|
-
/**
|
|
417
|
-
* Очищает накопленное состояние HotkeyManager.
|
|
418
|
-
*/
|
|
419
|
-
clear(key?: string): void;
|
|
420
|
-
/**
|
|
421
|
-
* Выполняет действие enable в рамках ответственности HotkeyManager.
|
|
422
|
-
*/
|
|
423
|
-
enable(): void;
|
|
424
|
-
/**
|
|
425
|
-
* Выполняет действие disable в рамках ответственности HotkeyManager.
|
|
426
|
-
*/
|
|
427
|
-
disable(): void;
|
|
428
|
-
/**
|
|
429
|
-
* Освобождает runtime-ресурсы и подписки HotkeyManager.
|
|
430
|
-
*/
|
|
431
|
-
destroy(): void;
|
|
432
|
-
}
|
|
433
|
-
|
|
434
|
-
declare interface HotkeyManagerOptions {
|
|
435
|
-
ignoreInput?: boolean;
|
|
436
|
-
target?: EventTarget;
|
|
437
|
-
}
|
|
438
|
-
|
|
439
|
-
/**
|
|
440
|
-
* Тип, помечающий, что значение может быть `never` или `void`, и его можно проигнорировать.
|
|
441
|
-
*/
|
|
442
|
-
export declare type Ignored = never | void;
|
|
443
|
-
|
|
444
|
-
export declare function IgnoreToPlain(): PropertyDecorator;
|
|
445
|
-
|
|
446
|
-
export declare interface IndexCollectionEntity<ID = string | null> {
|
|
447
|
-
id: ID;
|
|
448
|
-
index: number;
|
|
449
|
-
filteredIndex: number;
|
|
450
|
-
}
|
|
451
|
-
|
|
452
|
-
/**
|
|
453
|
-
* Высокопроизводительная IndexedCollection
|
|
454
|
-
*
|
|
455
|
-
* Цели:
|
|
456
|
-
* - O(1) добавление, удаление и доступ по id
|
|
457
|
-
* - O(1) обновление membership фильтра (dense массив + swap-remove)
|
|
458
|
-
* - Ленивый sort, полный пересчет только по запросу
|
|
459
|
-
* - Инкрементальная поддержка filteredList (swap-remove) при включенном filterIndexEnabled
|
|
460
|
-
*
|
|
461
|
-
* Важно:
|
|
462
|
-
* - При sort list меняется порядок -> filteredList должен быть пересобран (иначе он останется в старом порядке).
|
|
463
|
-
* - При изменении filterFn можно пересобрать filteredList без пересортировки list.
|
|
464
|
-
*/
|
|
465
|
-
export declare class IndexedCollection<T extends IndexCollectionEntity<ID>, ID = string | null> {
|
|
466
|
-
private list;
|
|
467
|
-
private filteredList;
|
|
468
|
-
private map;
|
|
469
|
-
private indexById;
|
|
470
|
-
private dirtySort;
|
|
471
|
-
private dirtyFilter;
|
|
472
|
-
private sortFn?;
|
|
473
|
-
private filterFn?;
|
|
474
|
-
private indexEnabled;
|
|
475
|
-
private filterIndexEnabled;
|
|
476
|
-
/**
|
|
477
|
-
* Создает экземпляр IndexedCollection и подготавливает базовое состояние.
|
|
478
|
-
*/
|
|
479
|
-
constructor(opts?: Partial<CollectionOptions<T, ID>> | null);
|
|
480
|
-
/**
|
|
481
|
-
* Выполняет действие options в рамках ответственности IndexedCollection.
|
|
482
|
-
*/
|
|
483
|
-
options(opts: Partial<CollectionOptions<T, ID>>): this;
|
|
484
|
-
/**
|
|
485
|
-
* Выполняет действие markDirty в рамках ответственности IndexedCollection.
|
|
486
|
-
*/
|
|
487
|
-
markDirty(opts: {
|
|
488
|
-
filter?: boolean;
|
|
489
|
-
sort?: boolean;
|
|
490
|
-
}): void;
|
|
491
|
-
/**
|
|
492
|
-
* Выполняет действие ensure в рамках ответственности IndexedCollection.
|
|
493
|
-
*/
|
|
494
|
-
ensure(): void;
|
|
495
|
-
/**
|
|
496
|
-
* Выполняет действие ensureSorted в рамках ответственности IndexedCollection.
|
|
497
|
-
*/
|
|
498
|
-
ensureSorted(): void;
|
|
499
|
-
/**
|
|
500
|
-
* Выполняет действие ensureFiltered в рамках ответственности IndexedCollection.
|
|
501
|
-
*/
|
|
502
|
-
ensureFiltered(): void;
|
|
503
|
-
/**
|
|
504
|
-
* Выполняет действие add в рамках ответственности IndexedCollection.
|
|
505
|
-
*/
|
|
506
|
-
add(items: OneOrMany<T>): void;
|
|
507
|
-
/**
|
|
508
|
-
* Удаляет сущность из runtime-коллекции IndexedCollection.
|
|
509
|
-
*/
|
|
510
|
-
remove(ids: OneOrMany<ID>): void;
|
|
511
|
-
/**
|
|
512
|
-
* Вызывать после изменения полей элемента
|
|
513
|
-
* mayAffectFilter если изменились поля фильтра
|
|
514
|
-
* mayAffectSort если изменились поля сортировки
|
|
515
|
-
*/
|
|
516
|
-
touch(id: ID, opts?: {
|
|
517
|
-
mayAffectFilter?: boolean;
|
|
518
|
-
mayAffectSort?: boolean;
|
|
519
|
-
}): void;
|
|
520
|
-
/**
|
|
521
|
-
* Выполняет действие forEach в рамках ответственности IndexedCollection.
|
|
522
|
-
*/
|
|
523
|
-
forEach(callback: (item: T, index: number) => void): void;
|
|
524
|
-
/**
|
|
525
|
-
* Отсортированный и/или отфильтрованный список (в зависимости от включенных функций).
|
|
526
|
-
*/
|
|
527
|
-
all(): Array<T>;
|
|
528
|
-
/**
|
|
529
|
-
* Отсортированный полный список (без фильтра), если есть sortFn.
|
|
530
|
-
*/
|
|
531
|
-
unfiltered(): Array<T>;
|
|
532
|
-
/**
|
|
533
|
-
* Отсортированный и отфильтрованный список (если есть filterFn).
|
|
534
|
-
* Если filterFn нет — возвращается list.
|
|
535
|
-
*/
|
|
536
|
-
filtered(): Array<T>;
|
|
537
|
-
/**
|
|
538
|
-
* Выполняет действие pos в рамках ответственности IndexedCollection.
|
|
539
|
-
*/
|
|
540
|
-
pos(index: number): T | null;
|
|
541
|
-
/**
|
|
542
|
-
* Выполняет действие first в рамках ответственности IndexedCollection.
|
|
543
|
-
*/
|
|
544
|
-
first(): T | null;
|
|
545
|
-
/**
|
|
546
|
-
* Выполняет действие last в рамках ответственности IndexedCollection.
|
|
547
|
-
*/
|
|
548
|
-
last(): T | null;
|
|
549
|
-
/**
|
|
550
|
-
* Выполняет действие has в рамках ответственности IndexedCollection.
|
|
551
|
-
*/
|
|
552
|
-
has(id: ID): boolean;
|
|
553
|
-
/**
|
|
554
|
-
* Возвращает значение состояния IndexedCollection.
|
|
555
|
-
*/
|
|
556
|
-
get(id: ID): T | undefined;
|
|
557
|
-
/**
|
|
558
|
-
* Выполняет действие size в рамках ответственности IndexedCollection.
|
|
559
|
-
*/
|
|
560
|
-
size(): number;
|
|
561
|
-
/**
|
|
562
|
-
* Очищает накопленное состояние IndexedCollection.
|
|
563
|
-
*/
|
|
564
|
-
clear(): void;
|
|
565
|
-
/**
|
|
566
|
-
* Выполняет внутренний шаг rebuildFilteredFromScratch для IndexedCollection.
|
|
567
|
-
*/
|
|
568
|
-
private rebuildFilteredFromScratch;
|
|
569
|
-
/**
|
|
570
|
-
* Выполняет внутренний шаг addToFilteredIfPasses для IndexedCollection.
|
|
571
|
-
*/
|
|
572
|
-
private addToFilteredIfPasses;
|
|
573
|
-
/**
|
|
574
|
-
* Добавляет сущность в runtime-коллекцию IndexedCollection.
|
|
575
|
-
*/
|
|
576
|
-
private appendToFiltered;
|
|
577
|
-
/**
|
|
578
|
-
* Выполняет внутренний шаг refilterOneO1 для IndexedCollection.
|
|
579
|
-
*/
|
|
580
|
-
private refilterOneO1;
|
|
581
|
-
/**
|
|
582
|
-
* Удаляет сущность из runtime-коллекции IndexedCollection.
|
|
583
|
-
*/
|
|
584
|
-
private removeFromFilteredO1;
|
|
585
|
-
/**
|
|
586
|
-
* Удаляет сущность из runtime-коллекции IndexedCollection.
|
|
587
|
-
*/
|
|
588
|
-
private removeFromListO1;
|
|
589
|
-
}
|
|
590
|
-
|
|
591
|
-
export declare const IS_DEBUG: boolean;
|
|
592
|
-
|
|
593
|
-
export declare function isAfterOrEqual(dateA: Date, dateB: Date): boolean;
|
|
594
|
-
|
|
595
|
-
export declare function isAnyKeyComboActive(combos: KeyComboArray, event: KeyboardEvent): boolean;
|
|
596
|
-
|
|
597
|
-
/**
|
|
598
|
-
* Проверяет, является ли переданная функция конструктором.
|
|
599
|
-
*/
|
|
600
|
-
export declare function isConstructor<T extends new (...args: Array<any>) => any>(fn: any): fn is T;
|
|
601
|
-
|
|
602
|
-
export declare function isDateInRange(date: Date, validFrom: Date, validTo: Date): boolean;
|
|
603
|
-
|
|
604
|
-
export declare function isDateRangeOverlap(s1: Date, s2: Date, validFrom: Date, validTo: Date): boolean;
|
|
605
|
-
|
|
606
|
-
export declare interface ISerializable {
|
|
607
|
-
toPlain(): any;
|
|
608
|
-
toJson(): string;
|
|
609
|
-
}
|
|
610
|
-
|
|
611
|
-
export declare function isNullOrUndefined<T>(value: T | null | undefined): value is null | undefined;
|
|
612
|
-
|
|
613
|
-
/** Formats a DateTime as `HH:mm` in the configured IANA timezone or browser-local timezone. */
|
|
614
|
-
export declare function isoDateTimeToTimeInput(value: unknown, timezone?: unknown): string;
|
|
615
|
-
|
|
616
|
-
export declare function IsOptionalTransformed(validationOptions?: ValidationOptions): (object: object, propertyName: string) => void;
|
|
617
|
-
|
|
618
|
-
export declare function isoToDateInput(value: unknown): string;
|
|
619
|
-
|
|
620
|
-
export declare function isoToDateTimeLocalInput(value: unknown): string;
|
|
621
|
-
|
|
622
|
-
/**
|
|
623
|
-
* Декоратор для преобразования JSON-поля:
|
|
624
|
-
* - сериализует объект - строку
|
|
625
|
-
* - десериализует строку - объект
|
|
626
|
-
*
|
|
627
|
-
* Пример:
|
|
628
|
-
* @Json()
|
|
629
|
-
* collection: Record<string, any> = {}
|
|
630
|
-
*/
|
|
631
|
-
export declare function Json(): PropertyDecorator;
|
|
632
|
-
|
|
633
|
-
export declare function JsonString(): PropertyDecorator;
|
|
634
|
-
|
|
635
|
-
export declare type KeyboardStatePlatform = 'macos' | 'windows' | 'linux' | 'unknown';
|
|
636
|
-
|
|
637
|
-
export declare interface KeyboardStateSnapshot {
|
|
638
|
-
platform: KeyboardStatePlatform;
|
|
639
|
-
modifiers: {
|
|
640
|
-
ctrl: boolean;
|
|
641
|
-
shift: boolean;
|
|
642
|
-
alt: boolean;
|
|
643
|
-
meta: boolean;
|
|
644
|
-
mod: boolean;
|
|
645
|
-
altGraph: boolean;
|
|
646
|
-
};
|
|
647
|
-
held: {
|
|
648
|
-
key: string[];
|
|
649
|
-
code: string[];
|
|
650
|
-
};
|
|
651
|
-
}
|
|
652
|
-
|
|
653
|
-
export declare interface KeyCombo {
|
|
654
|
-
ctrl?: boolean;
|
|
655
|
-
alt?: boolean;
|
|
656
|
-
shift?: boolean;
|
|
657
|
-
meta?: boolean;
|
|
658
|
-
key: string;
|
|
659
|
-
}
|
|
660
|
-
|
|
661
|
-
export declare type KeyComboArray = Array<KeyCombo>;
|
|
662
|
-
|
|
663
|
-
/**
|
|
664
|
-
* Тип, возвращающий все ключи объекта, значения которых равны заданному типу.
|
|
665
|
-
*/
|
|
666
|
-
export declare type KeysWithType<T, U> = {
|
|
667
|
-
[K in keyof T]: T[K] extends U ? K : never;
|
|
668
|
-
}[keyof T];
|
|
669
|
-
|
|
670
|
-
/**
|
|
671
|
-
* Тип, обозначающий возможное отсутствие значения.
|
|
672
|
-
* Аналог Maybe<P> из функционального программирования.
|
|
673
|
-
*/
|
|
674
|
-
export declare type Maybe<T> = T | null | undefined;
|
|
675
|
-
|
|
676
|
-
/**
|
|
677
|
-
* Тип, объединяющий `P` или массив `P`.
|
|
678
|
-
*/
|
|
679
|
-
export declare type MaybeArray<T> = T | Array<T>;
|
|
680
|
-
|
|
681
|
-
/** Replaces only hours and minutes while preserving the DateTime calendar date in the selected timezone. */
|
|
682
|
-
export declare function mergeTimeIntoDateTime(value: unknown, time: unknown, timezone?: unknown): string | null;
|
|
683
|
-
|
|
684
|
-
/**
|
|
685
|
-
* Описывает ответственность NamedExecutor в архитектуре проекта.
|
|
686
|
-
*/
|
|
687
|
-
export declare class NamedExecutor {
|
|
688
|
-
private readonly config;
|
|
689
|
-
private delayTimers;
|
|
690
|
-
private maxTimers;
|
|
691
|
-
private callbacks;
|
|
692
|
-
private firstCallTime;
|
|
693
|
-
/**
|
|
694
|
-
* Создает экземпляр NamedExecutor и подготавливает базовое состояние.
|
|
695
|
-
*/
|
|
696
|
-
constructor(config: NamedExecutorConfig);
|
|
697
|
-
/**
|
|
698
|
-
* Выполняет действие run в рамках ответственности NamedExecutor.
|
|
699
|
-
*/
|
|
700
|
-
run(id: string, callback: () => void): void;
|
|
701
|
-
/**
|
|
702
|
-
* Принудительно завершает накопленные изменения NamedExecutor.
|
|
703
|
-
*/
|
|
704
|
-
flush(id: string): void;
|
|
705
|
-
/**
|
|
706
|
-
* Выполняет действие cancel в рамках ответственности NamedExecutor.
|
|
707
|
-
*/
|
|
708
|
-
cancel(id: string): void;
|
|
709
|
-
/**
|
|
710
|
-
* Принудительно завершает накопленные изменения NamedExecutor.
|
|
711
|
-
*/
|
|
712
|
-
flushAll(): void;
|
|
713
|
-
/**
|
|
714
|
-
* Очищает накопленное состояние NamedExecutor.
|
|
715
|
-
*/
|
|
716
|
-
private clear;
|
|
717
|
-
}
|
|
718
|
-
|
|
719
|
-
declare type NamedExecutorConfig = {
|
|
720
|
-
delayMs: number;
|
|
721
|
-
maxMs: number;
|
|
722
|
-
};
|
|
723
|
-
|
|
724
|
-
/**
|
|
725
|
-
* Тип, исключающий null и undefined.
|
|
726
|
-
*/
|
|
727
|
-
export declare type NonNullableStrict<T> = T extends null | undefined ? never : T;
|
|
728
|
-
|
|
729
|
-
/**
|
|
730
|
-
* Тип, обозначающий возможное значение null.
|
|
731
|
-
*/
|
|
732
|
-
export declare type Nullable<T> = T | null;
|
|
733
|
-
|
|
734
|
-
export declare function onDeserialized(): MethodDecorator;
|
|
735
|
-
|
|
736
|
-
/**
|
|
737
|
-
* Универсальный тип для одного или нескольких объектов.
|
|
738
|
-
*/
|
|
739
|
-
export declare type OneOrMany<T> = T | Array<T>;
|
|
740
|
-
|
|
741
|
-
/**
|
|
742
|
-
* Тип, позволяющий переопределить свойства в типе.
|
|
743
|
-
* Аналог расширения типов с заменой полей.
|
|
744
|
-
*/
|
|
745
|
-
export declare type Override<Base, Overrides> = Omit<Base, keyof Overrides> & Overrides;
|
|
746
|
-
|
|
747
|
-
export declare const parseDate: (isoString: string) => "" | Date;
|
|
748
|
-
|
|
749
|
-
export declare function parseDuration(duration: string): string;
|
|
750
|
-
|
|
751
|
-
/**
|
|
752
|
-
* Возвращает первую найденную IANA-таймзону с данным смещением (например, "+03:00").
|
|
753
|
-
*/
|
|
754
|
-
export declare function parseOffsetToTimezone(offsetStr: string): string | null;
|
|
755
|
-
|
|
756
|
-
/**
|
|
757
|
-
* Тип для глубокой частичной рекурсии.
|
|
758
|
-
*/
|
|
759
|
-
export declare type PartialDeep<T> = T extends (...args: Array<any>) => any ? T : T extends Array<infer U> ? Array<PartialDeep<U>> : T extends object ? {
|
|
760
|
-
[K in keyof T]?: PartialDeep<T[K]>;
|
|
761
|
-
} : T;
|
|
762
|
-
|
|
763
|
-
export declare interface PayloadClientOptions {
|
|
764
|
-
baseUrl: string;
|
|
765
|
-
}
|
|
766
|
-
|
|
767
|
-
export declare class PayloadHttpClient {
|
|
768
|
-
private readonly baseUrl;
|
|
769
|
-
constructor(opts: PayloadClientOptions);
|
|
770
|
-
private buildUrl;
|
|
771
|
-
private buildHeaders;
|
|
772
|
-
get<T>(path: string, query?: Record<string, unknown>, extraHeaders?: HeadersInit): Promise<T>;
|
|
773
|
-
post<T>(path: string, body?: unknown, extraHeaders?: HeadersInit): Promise<T>;
|
|
774
|
-
patch<T>(path: string, body?: unknown, extraHeaders?: HeadersInit): Promise<T>;
|
|
775
|
-
delete<T>(path: string, extraHeaders?: HeadersInit): Promise<T>;
|
|
776
|
-
}
|
|
777
|
-
|
|
778
|
-
export declare function profile<T>(label: string, fn: () => T): T;
|
|
779
|
-
|
|
780
|
-
export declare function randomString(length: number): string;
|
|
781
|
-
|
|
782
|
-
export declare interface ReadonlyIndexCollection<T extends IndexCollectionEntity<ID>, ID = string | null> {
|
|
783
|
-
get(id: ID): T | undefined;
|
|
784
|
-
all(): ReadonlyArray<T>;
|
|
785
|
-
size(): number;
|
|
786
|
-
unfiltered(): ReadonlyArray<T>;
|
|
787
|
-
has(id: ID): boolean;
|
|
788
|
-
forEach(callback: (item: T) => void): void;
|
|
789
|
-
}
|
|
790
|
-
|
|
791
|
-
export declare function removeTime(date?: Date): Date;
|
|
792
|
-
|
|
793
|
-
export declare class RingBuffer<T> {
|
|
794
|
-
private readonly _cap;
|
|
795
|
-
private readonly _buf;
|
|
796
|
-
private _head;
|
|
797
|
-
private _len;
|
|
798
|
-
constructor(capacity: number);
|
|
799
|
-
get capacity(): number;
|
|
800
|
-
get length(): number;
|
|
801
|
-
push(value: T): void;
|
|
802
|
-
clear(): void;
|
|
803
|
-
toArray(): Array<T>;
|
|
804
|
-
}
|
|
805
|
-
|
|
806
|
-
/**
|
|
807
|
-
* Декоратор для хранения текста скрипта:
|
|
808
|
-
* - сериализует как обычную строку
|
|
809
|
-
* - десериализует строку, очищая лишние пробелы
|
|
810
|
-
*
|
|
811
|
-
* Пример:
|
|
812
|
-
* @Script()
|
|
813
|
-
* code: string = ''
|
|
814
|
-
*/
|
|
815
|
-
export declare function Script(): PropertyDecorator;
|
|
816
|
-
|
|
817
|
-
/**
|
|
818
|
-
* Описывает ответственность Serialize в архитектуре проекта.
|
|
819
|
-
*/
|
|
820
|
-
export declare class Serialize {
|
|
821
|
-
/**
|
|
822
|
-
* Выполняет действие toPlain в рамках ответственности Serialize.
|
|
823
|
-
*/
|
|
824
|
-
static toPlain<T>(instance: T): any;
|
|
825
|
-
/**
|
|
826
|
-
* Выполняет действие fromJSON в рамках ответственности Serialize.
|
|
827
|
-
*/
|
|
828
|
-
static fromJSON<T>(cls: ClassConstructor<T>, json: any): T;
|
|
829
|
-
}
|
|
830
|
-
|
|
831
|
-
export declare function SerializeId(): PropertyDecorator;
|
|
832
|
-
|
|
833
|
-
export declare function SerializeIds(): PropertyDecorator;
|
|
834
|
-
|
|
835
|
-
export declare type SharedMaybe<T> = T | null | undefined;
|
|
836
|
-
|
|
837
|
-
export declare type Side = 'left' | 'right' | 'top' | 'bottom';
|
|
838
|
-
|
|
839
|
-
export declare class SSEManager {
|
|
840
|
-
private readonly _url;
|
|
841
|
-
private readonly _retryInterval;
|
|
842
|
-
private _abortController;
|
|
843
|
-
private _isConnected;
|
|
844
|
-
private _reconnectTimeout;
|
|
845
|
-
private readonly _options;
|
|
846
|
-
constructor(options: SSEManagerOptions);
|
|
847
|
-
start(): void;
|
|
848
|
-
stop(): void;
|
|
849
|
-
private _scheduleReconnect;
|
|
850
|
-
private _clearReconnect;
|
|
851
|
-
private _buildHeaders;
|
|
852
|
-
private _connect;
|
|
853
|
-
get isConnected(): boolean;
|
|
854
|
-
}
|
|
855
|
-
|
|
856
|
-
export declare interface SSEManagerOptions {
|
|
857
|
-
url: string;
|
|
858
|
-
retryInterval?: number;
|
|
859
|
-
headers?: Record<string, string>;
|
|
860
|
-
getToken?: () => string | undefined | Promise<string | undefined>;
|
|
861
|
-
onEvent: (data: any) => void;
|
|
862
|
-
onError?: (error: Error) => void;
|
|
863
|
-
onOpen?: () => void;
|
|
864
|
-
onClose?: () => void;
|
|
865
|
-
}
|
|
866
|
-
|
|
867
|
-
/**
|
|
868
|
-
* Структурированная запись лога.
|
|
869
|
-
*
|
|
870
|
-
* @example
|
|
871
|
-
* {
|
|
872
|
-
* timestamp: 1692826342203,
|
|
873
|
-
* level: 'info',
|
|
874
|
-
* message: 'Компонент успешно собран',
|
|
875
|
-
* context: ['components', 'DriverCard'],
|
|
876
|
-
* actions: [
|
|
877
|
-
* {
|
|
878
|
-
* icon: 'ti ti-eye',
|
|
879
|
-
* tooltip: 'Посмотреть компонент',
|
|
880
|
-
* handler: () => alert('Открываю DriverCard'),
|
|
881
|
-
* },
|
|
882
|
-
* ],
|
|
883
|
-
* }
|
|
884
|
-
*/
|
|
885
|
-
export declare interface StructuredLogEntry {
|
|
886
|
-
/** Время создания лога (timestamp в ms) */
|
|
887
|
-
timestamp: number;
|
|
888
|
-
/** Уровень лога: _debug, info, warn или error */
|
|
889
|
-
level: 'debug' | 'info' | 'warn' | 'error' | 'success';
|
|
890
|
-
/** Сообщение лога */
|
|
891
|
-
message: string;
|
|
892
|
-
/** Контекст (иерархия вложенности) */
|
|
893
|
-
context: Array<string>;
|
|
894
|
-
/** Дополнительные действия (например, кнопки для лога) */
|
|
895
|
-
actions?: Array<{
|
|
896
|
-
icon: string;
|
|
897
|
-
tooltip?: string;
|
|
898
|
-
handler: () => void;
|
|
899
|
-
}>;
|
|
900
|
-
}
|
|
901
|
-
|
|
902
|
-
/**
|
|
903
|
-
* Логгер с поддержкой:
|
|
904
|
-
* - Иерархического контекста (`context`, `start`, `end`).
|
|
905
|
-
* - Разных уровней (`_debug`, `info`, `warn`, `error`).
|
|
906
|
-
* - Action-кнопок для каждого лога.
|
|
907
|
-
* - Подписки на обновления (через `Subscribable`).
|
|
908
|
-
*
|
|
909
|
-
* @example
|
|
910
|
-
* const logger = new StructuredLogger()
|
|
911
|
-
*
|
|
912
|
-
* // Устанавливаем контекст
|
|
913
|
-
* logger.context('components', 'DriverCard')
|
|
914
|
-
*
|
|
915
|
-
* // Логируем сообщение
|
|
916
|
-
* logger.info('Компонент успешно собран')
|
|
917
|
-
*
|
|
918
|
-
* // Добавляем действие
|
|
919
|
-
* logger.warn('Предупреждение', [
|
|
920
|
-
* { icon: 'ti ti-alert', tooltip: 'Подробнее', handler: () => alert('Подробнее!') },
|
|
921
|
-
* ])
|
|
922
|
-
*
|
|
923
|
-
* // Используем вложенные уровни
|
|
924
|
-
* logger.start('attributes').info('Загрузка атрибутов')
|
|
925
|
-
* logger.end()
|
|
926
|
-
*
|
|
927
|
-
* // Получаем все логи
|
|
928
|
-
* const logs = logger.getLogs()
|
|
929
|
-
*/
|
|
930
|
-
export declare class StructuredLogger extends Subscribable {
|
|
931
|
-
/** Массив всех логов */
|
|
932
|
-
private logs;
|
|
933
|
-
/** Текущий контекст (иерархия) */
|
|
934
|
-
private currentContext;
|
|
935
|
-
private currentActions;
|
|
936
|
-
/**
|
|
937
|
-
* Устанавливает текущий контекст.
|
|
938
|
-
* Сбрасывает предыдущий контекст.
|
|
939
|
-
*
|
|
940
|
-
* @param context Массив строк или несколько строк с уровнями контекста.
|
|
941
|
-
* @returns _surface (для цепочки вызовов)
|
|
942
|
-
* @example
|
|
943
|
-
* logger.context('components', 'DriverCard')
|
|
944
|
-
*/
|
|
945
|
-
context(...context: Array<string>): this;
|
|
946
|
-
/**
|
|
947
|
-
* Добавляет дополнительный уровень контекста.
|
|
948
|
-
*
|
|
949
|
-
* @param context Новый уровень (например, 'attributes').
|
|
950
|
-
* @returns _surface (для цепочки вызовов)
|
|
951
|
-
* @example
|
|
952
|
-
* logger.start('attributes')
|
|
953
|
-
*/
|
|
954
|
-
start(context: string): this;
|
|
955
|
-
/**
|
|
956
|
-
* Убирает последний уровень контекста.
|
|
957
|
-
* При этом может сразу добавить финальный лог, связанный с этим контекстом.
|
|
958
|
-
*
|
|
959
|
-
* @param level Уровень лога (по умолчанию 'info')
|
|
960
|
-
* @param message Сообщение лога (опционально)
|
|
961
|
-
* @param actions Дополнительные действия (опционально)
|
|
962
|
-
* @example
|
|
963
|
-
* logger.end('info', 'Компиляция завершена', [...])
|
|
964
|
-
*/
|
|
965
|
-
end(level?: 'debug' | 'info' | 'warn' | 'error' | 'success', message?: string, actions?: StructuredLogEntry['actions']): this;
|
|
966
|
-
/**
|
|
967
|
-
* Добавляет экшены в текущий контекст (для следующего `end`)
|
|
968
|
-
* @param icon Иконка (например, "ti ti-check text-xl")
|
|
969
|
-
* @param tooltip Подсказка (опционально)
|
|
970
|
-
* @param handler Функция при клике (опционально)
|
|
971
|
-
* @example
|
|
972
|
-
* logger.action('ti ti-check', 'Все успешно', () => console.logFrame('Успешно!'))
|
|
973
|
-
*/
|
|
974
|
-
action(icon: string, tooltip?: string, handler?: () => void): this;
|
|
975
|
-
/**
|
|
976
|
-
* Внутренний метод для создания лога.
|
|
977
|
-
*
|
|
978
|
-
* @param level Уровень (_debug, info, warn, error)
|
|
979
|
-
* @param message Сообщение
|
|
980
|
-
* @param actions Дополнительные действия (иконки с обработчиками)
|
|
981
|
-
*/
|
|
982
|
-
private log;
|
|
983
|
-
/**
|
|
984
|
-
* Лог уровня _debug.
|
|
985
|
-
*
|
|
986
|
-
* @param message Сообщение
|
|
987
|
-
* @param actions Дополнительные действия (опционально)
|
|
988
|
-
* @example
|
|
989
|
-
* logger._debug('Загрузка данных')
|
|
990
|
-
*/
|
|
991
|
-
debug(message: string, actions?: StructuredLogEntry['actions']): void;
|
|
992
|
-
/**
|
|
993
|
-
* Лог уровня info.
|
|
994
|
-
*
|
|
995
|
-
* @param message Сообщение
|
|
996
|
-
* @param actions Дополнительные действия (опционально)
|
|
997
|
-
* @example
|
|
998
|
-
* logger.info('Загрузка завершена')
|
|
999
|
-
*/
|
|
1000
|
-
info(message: string, actions?: StructuredLogEntry['actions']): void;
|
|
1001
|
-
/**
|
|
1002
|
-
* Лог уровня warn.
|
|
1003
|
-
*
|
|
1004
|
-
* @param message Сообщение
|
|
1005
|
-
* @param actions Дополнительные действия (опционально)
|
|
1006
|
-
* @example
|
|
1007
|
-
* logger.warn('Низкий заряд батареи')
|
|
1008
|
-
*/
|
|
1009
|
-
warn(message: string, actions?: StructuredLogEntry['actions']): void;
|
|
1010
|
-
/**
|
|
1011
|
-
* Лог уровня error.
|
|
1012
|
-
*
|
|
1013
|
-
* @param message Сообщение
|
|
1014
|
-
* @param actions Дополнительные действия (опционально)
|
|
1015
|
-
* @example
|
|
1016
|
-
* logger.error('Ошибка загрузки', [
|
|
1017
|
-
* { icon: 'ti ti-refresh', tooltip: 'Повторить', handler: () => retry() },
|
|
1018
|
-
* ])
|
|
1019
|
-
*/
|
|
1020
|
-
error(message: string, actions?: StructuredLogEntry['actions']): void;
|
|
1021
|
-
/**
|
|
1022
|
-
* Лог уровня success.
|
|
1023
|
-
*
|
|
1024
|
-
* @param message Сообщение
|
|
1025
|
-
* @param actions Дополнительные действия (опционально)
|
|
1026
|
-
* @example
|
|
1027
|
-
* logger.success('Успешно', [
|
|
1028
|
-
* { icon: 'ti ti-refresh', tooltip: 'Повторить', handler: () => retry() },
|
|
1029
|
-
* ])
|
|
1030
|
-
*/
|
|
1031
|
-
success(message: string, actions?: StructuredLogEntry['actions']): void;
|
|
1032
|
-
/**
|
|
1033
|
-
* Получить все логи.
|
|
1034
|
-
*
|
|
1035
|
-
* @returns Массив логов
|
|
1036
|
-
*/
|
|
1037
|
-
getLogs(): Array<StructuredLogEntry>;
|
|
1038
|
-
/**
|
|
1039
|
-
* Очистить все логи (полностью).
|
|
1040
|
-
*/
|
|
1041
|
-
clear(): void;
|
|
1042
|
-
}
|
|
1043
|
-
|
|
1044
|
-
/**
|
|
1045
|
-
* Subscribable – базовый класс для реализации паттерна наблюдателя.
|
|
1046
|
-
* Предоставляет методы для подписки, отписки и уведомления слушателей.
|
|
1047
|
-
* Пример:
|
|
1048
|
-
* ```ts
|
|
1049
|
-
* { refObj: domain } = useSubscribableRef(BuildX.domain)
|
|
1050
|
-
* // domain будет реактивной переменной, которая тригерится при каждом внутреннем обновлении.
|
|
1051
|
-
* ```
|
|
1052
|
-
*/
|
|
1053
|
-
export declare class Subscribable {
|
|
1054
|
-
private subscribers;
|
|
1055
|
-
/**
|
|
1056
|
-
* Подписывается на обновления.
|
|
1057
|
-
* @param listener Функция, вызываемая при уведомлении.
|
|
1058
|
-
* @returns Функция для отписки.
|
|
1059
|
-
*/
|
|
1060
|
-
subscribe(listener: () => void): () => void;
|
|
1061
|
-
/**
|
|
1062
|
-
* Уведомляет всех подписчиков.
|
|
1063
|
-
*/
|
|
1064
|
-
notify(): void;
|
|
1065
|
-
}
|
|
1066
|
-
|
|
1067
|
-
/** Subscribes to the shared document-scoped keyboard state and immediately emits its snapshot. */
|
|
1068
|
-
export declare function subscribeKeyboardState(target: Document, listener: (snapshot: KeyboardStateSnapshot) => void): () => void;
|
|
1069
|
-
|
|
1070
|
-
export declare const SystemClock: {
|
|
1071
|
-
DateTime: typeof DateTime;
|
|
1072
|
-
toDateTime(jsDate: Date): DateTime;
|
|
1073
|
-
fromFormat(text: string, format: string, opts: any): DateTime;
|
|
1074
|
-
fromISO(text: string, opts?: any): DateTime | null;
|
|
1075
|
-
getNow(): DateTime;
|
|
1076
|
-
getNowUTC(): DateTime;
|
|
1077
|
-
getToday(): DateTime;
|
|
1078
|
-
getTime(format?: string): string;
|
|
1079
|
-
getUTCTime(format?: string): string;
|
|
1080
|
-
getZone(): Zone;
|
|
1081
|
-
};
|
|
1082
|
-
|
|
1083
|
-
export declare function timeToTimeInput(value: unknown): string;
|
|
1084
|
-
|
|
1085
|
-
export declare function toInstance<T>(ctor: ClassConstructor<T>, json: object): T;
|
|
1086
|
-
|
|
1087
|
-
export declare function toIsoZDate(value: string): string | null;
|
|
1088
|
-
|
|
1089
|
-
export declare function toIsoZDateTime(value: string): string | null;
|
|
1090
|
-
|
|
1091
|
-
export declare const TooltipAttribute = "x-collection-tooltip-id";
|
|
1092
|
-
|
|
1093
|
-
export declare interface TooltipInstance {
|
|
1094
|
-
id: string;
|
|
1095
|
-
content: string | (() => any);
|
|
1096
|
-
activator: string;
|
|
1097
|
-
visible: boolean;
|
|
1098
|
-
active?: boolean;
|
|
1099
|
-
position?: 'top' | 'bottom' | 'left' | 'right';
|
|
1100
|
-
maxWidth?: string | number;
|
|
1101
|
-
}
|
|
1102
|
-
|
|
1103
|
-
export declare function TooltipRegistrator(h: TooltipRenderFunction, props: TooltipRegistratorProps): any;
|
|
1104
|
-
|
|
1105
|
-
export declare interface TooltipRegistratorProps {
|
|
1106
|
-
id?: string;
|
|
1107
|
-
data?: unknown;
|
|
1108
|
-
template?: unknown;
|
|
1109
|
-
location?: unknown;
|
|
1110
|
-
disabled?: boolean;
|
|
1111
|
-
maxWidth?: string;
|
|
1112
|
-
customClass?: string;
|
|
1113
|
-
justifyClass?: string;
|
|
1114
|
-
slots?: {
|
|
1115
|
-
default?: () => any;
|
|
1116
|
-
};
|
|
1117
|
-
}
|
|
1118
|
-
|
|
1119
|
-
export declare type TooltipRenderFunction = (tag: string, props?: Record<string, unknown>, children?: any) => any;
|
|
1120
|
-
|
|
1121
|
-
export declare function toPlain<T>(obj: T): object;
|
|
1122
|
-
|
|
1123
|
-
export declare function toTimeHHMMSS(value: unknown): string | null;
|
|
1124
|
-
|
|
1125
|
-
export declare interface TreeViewNode {
|
|
1126
|
-
id: string;
|
|
1127
|
-
label: string;
|
|
1128
|
-
icon?: string;
|
|
1129
|
-
expanded?: boolean;
|
|
1130
|
-
children?: Array<TreeViewNode>;
|
|
1131
|
-
}
|
|
1132
|
-
|
|
1133
|
-
/**
|
|
1134
|
-
* Тип, исключающий falsy-значения.
|
|
1135
|
-
*/
|
|
1136
|
-
export declare type Truthy<T> = T extends Falsy ? never : T;
|
|
1137
|
-
|
|
1138
|
-
/**
|
|
1139
|
-
* Декоратор @TypeMap для автоматической сериализации и десериализации `Map<K, V>`.
|
|
1140
|
-
* Поддерживает два формата JSON:
|
|
1141
|
-
* 1. **Объект - `Map<K, V>`** (если `keyField` не указан)
|
|
1142
|
-
* 2. **Массив - `Map<K, V>`** (если указан `keyField`)
|
|
1143
|
-
*
|
|
1144
|
-
* @param valueType - Класс значений в `Map<K, V>`.
|
|
1145
|
-
* @param keyField - (необязательно) Поле, используемое как ключ (`name`, `id`, и т. д.).
|
|
1146
|
-
*
|
|
1147
|
-
* ## Пример использования (объект - `Map`)
|
|
1148
|
-
* ```typescript
|
|
1149
|
-
* export class ReflectDomain {
|
|
1150
|
-
* @TypeMap(RType) // JSON-объект { key: value } - Map<string, RType>
|
|
1151
|
-
* private types: Map<string, RType> = new Map()
|
|
1152
|
-
* }
|
|
1153
|
-
* ```
|
|
1154
|
-
* **JSON**
|
|
1155
|
-
* ```json
|
|
1156
|
-
* {
|
|
1157
|
-
* "types": {
|
|
1158
|
-
* "User": { "name": "User", "fields": {} },
|
|
1159
|
-
* "Company": { "name": "Company", "fields": {} }
|
|
1160
|
-
* }
|
|
1161
|
-
* }
|
|
1162
|
-
* ```
|
|
1163
|
-
* **Результат**
|
|
1164
|
-
* ```typescript
|
|
1165
|
-
* ReflectDomain.types // Map<string, RType>
|
|
1166
|
-
* ReflectDomain.getType('User') // RType('User')
|
|
1167
|
-
* ```
|
|
1168
|
-
*
|
|
1169
|
-
* ## Пример использования (массив - `Map`)
|
|
1170
|
-
* ```typescript
|
|
1171
|
-
* export class ReflectDomain {
|
|
1172
|
-
* @TypeMap(RType, 'name') // JSON-массив [{ name: value }, ...] - Map<string, RType>
|
|
1173
|
-
* private types: Map<string, RType> = new Map()
|
|
1174
|
-
* }
|
|
1175
|
-
* ```
|
|
1176
|
-
* **JSON**
|
|
1177
|
-
* ```json
|
|
1178
|
-
* {
|
|
1179
|
-
* "types": [
|
|
1180
|
-
* { "name": "User", "fields": {} },
|
|
1181
|
-
* { "name": "Company", "fields": {} }
|
|
1182
|
-
* ]
|
|
1183
|
-
* }
|
|
1184
|
-
* ```
|
|
1185
|
-
* **Результат**
|
|
1186
|
-
* ```typescript
|
|
1187
|
-
* ReflectDomain.types // Map<string, RType>
|
|
1188
|
-
* ReflectDomain.getType('User') // RType('User')
|
|
1189
|
-
* ```
|
|
1190
|
-
*/
|
|
1191
|
-
export declare function TypeMap<V>(valueType: ClassConstructor<V>, keyField?: keyof V): PropertyDecorator;
|
|
1192
|
-
|
|
1193
|
-
/**
|
|
1194
|
-
* Декоратор `@TypeRecord` для автоматической (де)сериализации полей типа `Record<string, V>`.
|
|
1195
|
-
* Работает аналогично `@Type(() => V)`, но для структур, где ключами являются строки (как у обычного объекта),
|
|
1196
|
-
* а значениями — экземпляры определённого класса.
|
|
1197
|
-
*
|
|
1198
|
-
* Используется с библиотекой `class-transformer`.
|
|
1199
|
-
*
|
|
1200
|
-
* @param valueType - Класс значений, содержащихся в `Record<string, V>`.
|
|
1201
|
-
*
|
|
1202
|
-
* @example
|
|
1203
|
-
* ```ts
|
|
1204
|
-
* import { Expose } from 'class-transformer'
|
|
1205
|
-
*
|
|
1206
|
-
* class RField {
|
|
1207
|
-
* @Expose()
|
|
1208
|
-
* name!: string
|
|
1209
|
-
* }
|
|
1210
|
-
*
|
|
1211
|
-
* class Component {
|
|
1212
|
-
* @Expose()
|
|
1213
|
-
* @TypeRecord(RField)
|
|
1214
|
-
* inputFields!: Record<string, RField>
|
|
1215
|
-
* }
|
|
1216
|
-
* ```
|
|
1217
|
-
*
|
|
1218
|
-
* ## Пример JSON:
|
|
1219
|
-
* ```json
|
|
1220
|
-
* {
|
|
1221
|
-
* "inputFields": {
|
|
1222
|
-
* "user": { "name": "user" },
|
|
1223
|
-
* "email": { "name": "email" }
|
|
1224
|
-
* }
|
|
1225
|
-
* }
|
|
1226
|
-
* ```
|
|
1227
|
-
* После `plainToInstance(Component, json)`:
|
|
1228
|
-
* ```ts
|
|
1229
|
-
* component.inputFields // Record<string, RField>
|
|
1230
|
-
* component.inputFields.user instanceof RField // true
|
|
1231
|
-
* ```
|
|
1232
|
-
*
|
|
1233
|
-
* ## Пример сериализации:
|
|
1234
|
-
* ```ts
|
|
1235
|
-
* const component = new Component()
|
|
1236
|
-
* component.inputFields = {
|
|
1237
|
-
* user: new RField("user"),
|
|
1238
|
-
* email: new RField("email"),
|
|
1239
|
-
* }
|
|
1240
|
-
*
|
|
1241
|
-
* const json = instanceToPlain(component)
|
|
1242
|
-
* // json = {
|
|
1243
|
-
* // inputFields: {
|
|
1244
|
-
* // user: { name: "user" },
|
|
1245
|
-
* // email: { name: "email" }
|
|
1246
|
-
* // }
|
|
1247
|
-
* // }
|
|
1248
|
-
* ```
|
|
1249
|
-
*/
|
|
1250
|
-
export declare function TypeRecord<V>(valueType: ClassConstructor<V>): PropertyDecorator;
|
|
1251
|
-
|
|
1252
|
-
/**
|
|
1253
|
-
* Тип, обозначающий возможное значение undefined.
|
|
1254
|
-
*/
|
|
1255
|
-
export declare type Undefinable<T> = T | undefined;
|
|
1256
|
-
|
|
1257
|
-
export declare class UPSMeter_Service {
|
|
1258
|
-
private _currentCount;
|
|
1259
|
-
private _lastResetTime;
|
|
1260
|
-
private _lastEventsPerSecond;
|
|
1261
|
-
count(): void;
|
|
1262
|
-
get rate(): number;
|
|
1263
|
-
reset(): void;
|
|
1264
|
-
}
|
|
1265
|
-
|
|
1266
|
-
export declare const useCookie: (name: any, _opts?: any) => Ref<string, string>;
|
|
1267
|
-
|
|
1268
|
-
export declare function useStorageDebounced<T>(key: string, initial: T, fromJSON?: (data: any) => T, toJSON?: (data: T) => any, delay?: number): Ref<T>;
|
|
1269
|
-
|
|
1270
|
-
/**
|
|
1271
|
-
* Ref – обёртка для значения, поддерживающая подписку на изменения.
|
|
1272
|
-
*/
|
|
1273
|
-
export declare const useSubscribableRef: <T extends Subscribable>(obj: T) => {
|
|
1274
|
-
refObj: Ref<T>;
|
|
1275
|
-
unsubscribe: () => void;
|
|
1276
|
-
};
|
|
1277
|
-
|
|
1278
|
-
export declare const useSubscribableRefAuto: <T extends Subscribable>(obj: T) => Ref<T>;
|
|
1279
|
-
|
|
1280
|
-
export declare const useTooltipStore: StoreDefinition<"tooltip", Pick<{
|
|
1281
|
-
tooltips: Record<string, TooltipInstance>;
|
|
1282
|
-
activeId: Ref<string | null, string | null>;
|
|
1283
|
-
registerTooltip: (tt: Omit<TooltipInstance, "visible">) => void;
|
|
1284
|
-
unregisterTooltip: (id: string) => void;
|
|
1285
|
-
showTooltip: (id: string) => void;
|
|
1286
|
-
hideTooltip: (id: string) => void;
|
|
1287
|
-
setActiveTooltipId: (id: string) => void;
|
|
1288
|
-
clearActiveTooltipId: () => void;
|
|
1289
|
-
}, "tooltips" | "activeId">, Pick<{
|
|
1290
|
-
tooltips: Record<string, TooltipInstance>;
|
|
1291
|
-
activeId: Ref<string | null, string | null>;
|
|
1292
|
-
registerTooltip: (tt: Omit<TooltipInstance, "visible">) => void;
|
|
1293
|
-
unregisterTooltip: (id: string) => void;
|
|
1294
|
-
showTooltip: (id: string) => void;
|
|
1295
|
-
hideTooltip: (id: string) => void;
|
|
1296
|
-
setActiveTooltipId: (id: string) => void;
|
|
1297
|
-
clearActiveTooltipId: () => void;
|
|
1298
|
-
}, never>, Pick<{
|
|
1299
|
-
tooltips: Record<string, TooltipInstance>;
|
|
1300
|
-
activeId: Ref<string | null, string | null>;
|
|
1301
|
-
registerTooltip: (tt: Omit<TooltipInstance, "visible">) => void;
|
|
1302
|
-
unregisterTooltip: (id: string) => void;
|
|
1303
|
-
showTooltip: (id: string) => void;
|
|
1304
|
-
hideTooltip: (id: string) => void;
|
|
1305
|
-
setActiveTooltipId: (id: string) => void;
|
|
1306
|
-
clearActiveTooltipId: () => void;
|
|
1307
|
-
}, "registerTooltip" | "unregisterTooltip" | "showTooltip" | "hideTooltip" | "setActiveTooltipId" | "clearActiveTooltipId">>;
|
|
1308
|
-
|
|
1309
|
-
/**
|
|
1310
|
-
* Тип, представляющий функцию без аргументов и без возвращаемого значения.
|
|
1311
|
-
*/
|
|
1312
|
-
export declare type VoidFn = () => void;
|
|
1313
|
-
|
|
1314
|
-
/**
|
|
1315
|
-
* Backward-compatible alias used by legacy packages.
|
|
1316
|
-
*/
|
|
1317
|
-
declare type VoidFunction_2 = VoidFn;
|
|
1318
|
-
export { VoidFunction_2 as VoidFunction }
|
|
1319
|
-
|
|
1320
|
-
export { }
|
|
1
|
+
export { useCookie } from './composable/useCookie';
|
|
2
|
+
export * from './collection/collection';
|
|
3
|
+
export * from './collection/indexed-collection';
|
|
4
|
+
export * from './collection/collection.types';
|
|
5
|
+
export * from './collection/RingBuffer';
|
|
6
|
+
export * from './events/EventBus';
|
|
7
|
+
export * from './events/Subscribable';
|
|
8
|
+
export * from './database/PayloadHttpClient';
|
|
9
|
+
export * from './execute/delay-executor';
|
|
10
|
+
export * from './execute/NamedExecutor';
|
|
11
|
+
export { toInstance, toPlain } from './shared/serialize/parse';
|
|
12
|
+
export * from './shared/serialize/decorator';
|
|
13
|
+
export { isNullOrUndefined } from './shared/types/maybe';
|
|
14
|
+
export type { Maybe as SharedMaybe } from './shared/types/maybe';
|
|
15
|
+
export * from './serialize/Serialize';
|
|
16
|
+
export * from './serialize/decorators/json';
|
|
17
|
+
export * from './serialize/decorators/jsonString';
|
|
18
|
+
export * from './serialize/decorators/onDeserialized';
|
|
19
|
+
export * from './serialize/decorators/script';
|
|
20
|
+
export * from './serialize/decorators/typeMap';
|
|
21
|
+
export * from './serialize/decorators/typeRecord';
|
|
22
|
+
export * from './serialize/useStorageDebounced';
|
|
23
|
+
export * from './tools/compare';
|
|
24
|
+
export * from './tools/console';
|
|
25
|
+
export * from './tools/debug';
|
|
26
|
+
export * from './tools/generate';
|
|
27
|
+
export * from './tools/geometry';
|
|
28
|
+
export * from './tools/hotkeys';
|
|
29
|
+
export * from './tools/keyboard';
|
|
30
|
+
export * from './tools/logs';
|
|
31
|
+
export * from './tools/reflect';
|
|
32
|
+
export * from './tools/state';
|
|
33
|
+
export * from './tools/system-clock';
|
|
34
|
+
export * from './tools/text';
|
|
35
|
+
export * from './tools/time';
|
|
36
|
+
export * from './tools/tools.types';
|
|
37
|
+
export * from './updates/SSEManager';
|
|
38
|
+
export * from './updates/UPSMeter_Service';
|
|
39
|
+
export * from './tooltip/store';
|
|
40
|
+
export * from './tooltip/TooltipRegistrator';
|
|
41
|
+
export * from './tooltip/tooltip.types';
|
|
42
|
+
export * from './ui/tree.types';
|