@rt-tools/ui-kit-v2 0.42.0 → 0.43.0
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/fesm2022/rt-tools-ui-kit-v2-core.mjs +22 -0
- package/fesm2022/rt-tools-ui-kit-v2-core.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-page-header.mjs +1778 -18
- package/fesm2022/rt-tools-ui-kit-v2-page-header.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-rich-editor.mjs +19 -5
- package/fesm2022/rt-tools-ui-kit-v2-rich-editor.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-stepper.mjs +34 -11
- package/fesm2022/rt-tools-ui-kit-v2-stepper.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-tabs.mjs +725 -47
- package/fesm2022/rt-tools-ui-kit-v2-tabs.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-workspace-details.mjs +6 -0
- package/fesm2022/rt-tools-ui-kit-v2-workspace-details.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-workspace.mjs +217 -6
- package/fesm2022/rt-tools-ui-kit-v2-workspace.mjs.map +1 -1
- package/package.json +1 -1
- package/src/lib/components/page-header/CONTEXT.md +35 -1
- package/src/lib/components/page-header/bar/rt-page-bar.component.scss +161 -0
- package/src/lib/components/page-header/rail/rt-page-actions.component.scss +115 -0
- package/src/lib/components/page-header/rail/rt-page-phone-menu.component.scss +129 -0
- package/src/lib/components/page-header/rail/rt-page-rail.component.scss +281 -0
- package/src/lib/components/page-header/rail/rt-page-user.component.scss +76 -0
- package/src/lib/components/page-header/rt-page-header.component.scss +5 -0
- package/src/lib/components/page-header/stories/component/test-page-header-vertical.component.scss +72 -0
- package/src/lib/components/page-header/stories/component/test-page-table.component.scss +81 -0
- package/src/lib/components/page-header/user/rt-page-header-user.component.scss +6 -0
- package/src/lib/components/stepper/CONTEXT.md +34 -2
- package/src/lib/components/stepper/rt-stepper.component.scss +62 -43
- package/src/lib/components/tabs/CONTEXT.md +30 -1
- package/src/lib/components/tabs/rt-tabs-arrows.scss +140 -0
- package/src/lib/components/tabs/rt-tabs-more-menu.scss +126 -0
- package/src/lib/components/tabs/rt-tabs-more.component.scss +29 -0
- package/src/lib/components/tabs/rt-tabs.component.scss +18 -61
- package/src/lib/components/workspace/CONTEXT.md +11 -1
- package/src/lib/components/workspace/rt-workspace.component.scss +51 -3
- package/src/rich-editor/lib/components/chat/CONTEXT.md +11 -1
- package/src/rich-editor/lib/components/chat/rt-chat-messenger.scss +9 -3
- package/src/rich-editor/lib/components/chat/rt-chat-translation.scss +92 -0
- package/types/rt-tools-ui-kit-v2-core.d.ts +9 -1
- package/types/rt-tools-ui-kit-v2-page-header.d.ts +202 -2
- package/types/rt-tools-ui-kit-v2-rich-editor.d.ts +23 -0
- package/types/rt-tools-ui-kit-v2-stepper.d.ts +20 -6
- package/types/rt-tools-ui-kit-v2-tabs.d.ts +120 -1
- package/types/rt-tools-ui-kit-v2-workspace.d.ts +33 -1
|
@@ -3,7 +3,10 @@ import * as i0 from "@angular/core";
|
|
|
3
3
|
import { ElementRef, InputSignal, InputSignalWithTransform, OutputEmitterRef, Signal, TemplateRef, WritableSignal } from "@angular/core";
|
|
4
4
|
import { IRtIcon, TRtKitLabelMap, TRtKitTranslator } from "@rt-tools/ui-kit-v2/core";
|
|
5
5
|
import { RtPopoverDirective } from "@rt-tools/ui-kit-v2/popover";
|
|
6
|
+
import { ConnectedPosition } from "@angular/cdk/overlay";
|
|
6
7
|
export declare namespace IRtPageHeader {
|
|
8
|
+
/** Вид шапки: разделы в ряд или рейкой по левому краю окна. */
|
|
9
|
+
type Layout = 'horizontal' | 'vertical';
|
|
7
10
|
/**
|
|
8
11
|
* Описание пункта верхней навигации — раздела первого уровня или пункта
|
|
9
12
|
* панели второго.
|
|
@@ -29,6 +32,8 @@ export declare namespace IRtPageHeader {
|
|
|
29
32
|
* У раздела с панелью точка горит и от признака любого пункта внутри.
|
|
30
33
|
*/
|
|
31
34
|
readonly unread?: boolean;
|
|
35
|
+
/** Кнопка подвала рейки включена: например, открыт ассистент. У разделов поле не читается. */
|
|
36
|
+
readonly active?: boolean;
|
|
32
37
|
/** Панель второго уровня: колонка → группа → пункт. */
|
|
33
38
|
readonly columns?: ReadonlyArray<Column>;
|
|
34
39
|
/**
|
|
@@ -193,7 +198,7 @@ export declare class RtPageHeaderComponent {
|
|
|
193
198
|
protected readonly mobileNavPopoverRef: Signal<RtPopoverDirective | undefined>;
|
|
194
199
|
/** Кнопка «ещё» сжатой полосы открывает ту же панель, что и бургер, своим поповером. */
|
|
195
200
|
protected readonly compactNavPopoverRef: Signal<RtPopoverDirective | undefined>;
|
|
196
|
-
/** Сжатое состояние: шапка
|
|
201
|
+
/** Сжатое состояние: шапка липкая, прилипла к верху и стоит в горизонтальном виде — у рейки его нет. */
|
|
197
202
|
protected readonly compact: Signal<boolean>;
|
|
198
203
|
/** Разделы в кругах сжатой полосы: первые с иконкой, число — по входу. */
|
|
199
204
|
protected readonly compactSections: Signal<ReadonlyArray<IRtPageHeaderView.Section>>;
|
|
@@ -227,6 +232,7 @@ export declare class RtPageHeaderComponent {
|
|
|
227
232
|
*/
|
|
228
233
|
protected readonly expandedSectionIds: WritableSignal<ReadonlySet<string>>;
|
|
229
234
|
protected readonly EntryKind: typeof ERtPageHeaderEntry;
|
|
235
|
+
protected readonly isVertical: Signal<boolean>;
|
|
230
236
|
readonly items: InputSignal<ReadonlyArray<IRtPageHeader.Item>>;
|
|
231
237
|
readonly user: InputSignal<IRtPageHeader.User | null>;
|
|
232
238
|
readonly userTitle: InputSignal<string>;
|
|
@@ -240,6 +246,12 @@ export declare class RtPageHeaderComponent {
|
|
|
240
246
|
readonly stickyCompact: InputSignalWithTransform<boolean, BooleanInput>;
|
|
241
247
|
/** Сколько разделов с иконкой показывать кругами в сжатой полосе; остальные — под «ещё». */
|
|
242
248
|
readonly compactVisibleCount: InputSignalWithTransform<number, NumberInput>;
|
|
249
|
+
/** Вид шапки: разделы в ряд (`horizontal`) или рейкой по левому краю окна (`vertical`). */
|
|
250
|
+
readonly layout: InputSignal<IRtPageHeader.Layout>;
|
|
251
|
+
/** Кнопки подвала рейки: ассистент, уведомления. Нажатие приходит в `itemClick`. */
|
|
252
|
+
readonly railActions: InputSignal<ReadonlyArray<IRtPageHeader.Item>>;
|
|
253
|
+
/** Подвал рейки: вид с вкладками его убирает и ставит те же кнопки в ряд с вкладками. */
|
|
254
|
+
readonly railFoot: InputSignalWithTransform<boolean, BooleanInput>;
|
|
243
255
|
/** Своё имя навигации важнее умолчания */
|
|
244
256
|
readonly navAriaLabel: Signal<string>;
|
|
245
257
|
readonly itemClick: OutputEmitterRef<string>;
|
|
@@ -292,9 +304,197 @@ export declare class RtPageHeaderComponent {
|
|
|
292
304
|
"required": false;
|
|
293
305
|
"isSignal": true;
|
|
294
306
|
};
|
|
307
|
+
"layout": {
|
|
308
|
+
"alias": "layout";
|
|
309
|
+
"required": false;
|
|
310
|
+
"isSignal": true;
|
|
311
|
+
};
|
|
312
|
+
"railActions": {
|
|
313
|
+
"alias": "railActions";
|
|
314
|
+
"required": false;
|
|
315
|
+
"isSignal": true;
|
|
316
|
+
};
|
|
317
|
+
"railFoot": {
|
|
318
|
+
"alias": "railFoot";
|
|
319
|
+
"required": false;
|
|
320
|
+
"isSignal": true;
|
|
321
|
+
};
|
|
322
|
+
}, {
|
|
323
|
+
"itemClick": "itemClick";
|
|
324
|
+
"userClick": "userClick";
|
|
325
|
+
}, never, ["[rtRailLogo]", "[rtRailPage]", "[rtCompactLeft]", "[rtCompactCenter]", "[rtCompactRight]", "[rtHeaderBell]"], true, never>;
|
|
326
|
+
}
|
|
327
|
+
/**
|
|
328
|
+
* Кнопки вокруг страницы: ассистент, уведомления и профиль. Одна часть на три места: столбец в
|
|
329
|
+
* подвале рейки, строка шапки телефона и ряд вкладок. Состав задаёт приложение.
|
|
330
|
+
*/
|
|
331
|
+
export declare class RtPageActionsComponent {
|
|
332
|
+
readonly items: InputSignal<ReadonlyArray<IRtPageHeader.Item>>;
|
|
333
|
+
readonly user: InputSignal<IRtPageHeader.User | null>;
|
|
334
|
+
readonly userMenu: InputSignal<TemplateRef<unknown> | null>;
|
|
335
|
+
/** Где стоят кнопки: в подвале рейки или в ряду вкладок. */
|
|
336
|
+
readonly placement: InputSignal<'rail' | 'bar'>;
|
|
337
|
+
readonly itemClick: OutputEmitterRef<string>;
|
|
338
|
+
readonly userClick: OutputEmitterRef<void>;
|
|
339
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RtPageActionsComponent, never>;
|
|
340
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RtPageActionsComponent, "rt-page-actions", never, {
|
|
341
|
+
"items": {
|
|
342
|
+
"alias": "items";
|
|
343
|
+
"required": false;
|
|
344
|
+
"isSignal": true;
|
|
345
|
+
};
|
|
346
|
+
"user": {
|
|
347
|
+
"alias": "user";
|
|
348
|
+
"required": false;
|
|
349
|
+
"isSignal": true;
|
|
350
|
+
};
|
|
351
|
+
"userMenu": {
|
|
352
|
+
"alias": "userMenu";
|
|
353
|
+
"required": false;
|
|
354
|
+
"isSignal": true;
|
|
355
|
+
};
|
|
356
|
+
"placement": {
|
|
357
|
+
"alias": "placement";
|
|
358
|
+
"required": false;
|
|
359
|
+
"isSignal": true;
|
|
360
|
+
};
|
|
295
361
|
}, {
|
|
296
362
|
"itemClick": "itemClick";
|
|
297
363
|
"userClick": "userClick";
|
|
298
|
-
}, never,
|
|
364
|
+
}, never, never, true, never>;
|
|
365
|
+
}
|
|
366
|
+
/** Аватар профиля: стоит в подвале рейки и в ряду с вкладками. Меню задаёт приложение. */
|
|
367
|
+
export declare class RtPageUserComponent {
|
|
368
|
+
protected readonly letter: Signal<string>;
|
|
369
|
+
protected readonly positions: Signal<readonly ConnectedPosition[] | null>;
|
|
370
|
+
readonly user: InputSignal<IRtPageHeader.User>;
|
|
371
|
+
readonly userMenu: InputSignal<TemplateRef<unknown> | null>;
|
|
372
|
+
/** Откуда открывается меню: из рейки вправо-вверх или вниз под аватаром. */
|
|
373
|
+
readonly placement: InputSignal<'rail' | 'bar'>;
|
|
374
|
+
readonly userClick: OutputEmitterRef<void>;
|
|
375
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RtPageUserComponent, never>;
|
|
376
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RtPageUserComponent, "rt-page-user", never, {
|
|
377
|
+
"user": {
|
|
378
|
+
"alias": "user";
|
|
379
|
+
"required": true;
|
|
380
|
+
"isSignal": true;
|
|
381
|
+
};
|
|
382
|
+
"userMenu": {
|
|
383
|
+
"alias": "userMenu";
|
|
384
|
+
"required": false;
|
|
385
|
+
"isSignal": true;
|
|
386
|
+
};
|
|
387
|
+
"placement": {
|
|
388
|
+
"alias": "placement";
|
|
389
|
+
"required": false;
|
|
390
|
+
"isSignal": true;
|
|
391
|
+
};
|
|
392
|
+
}, {
|
|
393
|
+
"userClick": "userClick";
|
|
394
|
+
}, never, never, true, never>;
|
|
395
|
+
}
|
|
396
|
+
/** Отбор страницы. Шаблон один, а встаёт он в ряд, под кнопку «Ещё отборы» или в шторку телефона. */
|
|
397
|
+
export declare class RtPageBarFilterDirective {
|
|
398
|
+
readonly templateRef: TemplateRef<unknown>;
|
|
399
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RtPageBarFilterDirective, never>;
|
|
400
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RtPageBarFilterDirective, "[rtPageBarFilter]", never, {}, {}, never, never, true, never>;
|
|
401
|
+
}
|
|
402
|
+
/** Поиск страницы: поле занимает свободное место ряда, а на телефоне встаёт в шторку над отборами. */
|
|
403
|
+
export declare class RtPageBarSearchDirective {
|
|
404
|
+
readonly templateRef: TemplateRef<unknown>;
|
|
405
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RtPageBarSearchDirective, never>;
|
|
406
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RtPageBarSearchDirective, "[rtPageBarSearch]", never, {}, {}, never, never, true, never>;
|
|
407
|
+
}
|
|
408
|
+
/**
|
|
409
|
+
* Ширины, по которым считается раскладка. Ширины отбора и кнопки «Ещё отборы» стоят и в стилях
|
|
410
|
+
* шапки; их равенство держит тест `rt-page-bar.logic.spec.ts`, разойтись молча им не дадут.
|
|
411
|
+
* Промежуток — шаг `--rt-space-3`, минимум поиска есть только здесь: в стилях поиск гибкий.
|
|
412
|
+
*/
|
|
413
|
+
declare const RT_PAGE_BAR_SIZES: Readonly<{
|
|
414
|
+
gap: number;
|
|
415
|
+
filterOneRow: number;
|
|
416
|
+
filterTwoRows: number;
|
|
417
|
+
searchMin: number;
|
|
418
|
+
more: number;
|
|
419
|
+
}>;
|
|
420
|
+
declare namespace IRtPageBarFit {
|
|
421
|
+
type Mode = 'one' | 'two' | 'narrow';
|
|
422
|
+
interface Input {
|
|
423
|
+
/** Ширина самой шапки: на странице, суженной ассистентом, она меньше окна. */
|
|
424
|
+
readonly width: number;
|
|
425
|
+
readonly titleWidth: number;
|
|
426
|
+
readonly actionsWidth: number;
|
|
427
|
+
readonly filterCount: number;
|
|
428
|
+
readonly hasSearch: boolean;
|
|
429
|
+
}
|
|
430
|
+
interface Result {
|
|
431
|
+
readonly mode: Mode;
|
|
432
|
+
/** Сколько отборов стоит в ряду; остальные лежат под кнопкой «Ещё отборы». */
|
|
433
|
+
readonly rowFilters: number;
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
/** Ширина панели действий: кнопки по 32 с промежутком 8. */
|
|
437
|
+
declare function actionsWidthOf(count: number): number;
|
|
438
|
+
/**
|
|
439
|
+
* Сколько строк нужно шапке и сколько отборов в них встаёт. Третьей строки нет: что не встало во
|
|
440
|
+
* вторую, уходит под кнопку. Ширина без замера (скрытая шапка) оставляет одну строку.
|
|
441
|
+
*/
|
|
442
|
+
declare function pageBarFit(input: IRtPageBarFit.Input): IRtPageBarFit.Result;
|
|
443
|
+
export declare namespace IRtPageBar {
|
|
444
|
+
/** Действие страницы: кнопка с иконкой в ряду, строка меню в узком виде. */
|
|
445
|
+
interface Action {
|
|
446
|
+
readonly id: string;
|
|
447
|
+
readonly label: string;
|
|
448
|
+
readonly icon: IRtIcon.Name;
|
|
449
|
+
readonly disabled?: boolean;
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
/**
|
|
453
|
+
* Компактная шапка страницы: одна строка 56 или две строки 104. Вид считается по ширине самой
|
|
454
|
+
* шапки, а не окна: страница, суженная ассистентом, уводит отборы так же, как телефон. Шапка
|
|
455
|
+
* отдельная часть: страница без неё остаётся со своим заголовком.
|
|
456
|
+
*/
|
|
457
|
+
export declare class RtPageBarComponent {
|
|
458
|
+
#private;
|
|
459
|
+
protected readonly t: Signal<TRtKitLabelMap>;
|
|
460
|
+
protected readonly titleRef: Signal<ElementRef<HTMLElement> | undefined>;
|
|
461
|
+
protected readonly filters: Signal<ReadonlyArray<RtPageBarFilterDirective>>;
|
|
462
|
+
protected readonly search: Signal<RtPageBarSearchDirective | undefined>;
|
|
463
|
+
protected readonly mode: Signal<IRtPageBarFit.Mode>;
|
|
464
|
+
protected readonly isNarrow: Signal<boolean>;
|
|
465
|
+
protected readonly rowFilters: Signal<ReadonlyArray<RtPageBarFilterDirective>>;
|
|
466
|
+
protected readonly moreFilters: Signal<ReadonlyArray<RtPageBarFilterDirective>>;
|
|
467
|
+
/** Шторка отборов узкого вида: смена вида её закрывает, и при возврате в узкий она не открывается сама. */
|
|
468
|
+
protected readonly sheetOpen: WritableSignal<boolean>;
|
|
469
|
+
readonly pageTitle: InputSignal<string>;
|
|
470
|
+
readonly actions: InputSignal<ReadonlyArray<IRtPageBar.Action>>;
|
|
471
|
+
/** Отборы применены: на кнопке отборов узкого вида горит точка. */
|
|
472
|
+
readonly filtersActive: InputSignalWithTransform<boolean, BooleanInput>;
|
|
473
|
+
readonly actionClick: OutputEmitterRef<string>;
|
|
474
|
+
/** Нажата «Применить» в шторке отборов узкого вида. */
|
|
475
|
+
readonly filtersApply: OutputEmitterRef<void>;
|
|
476
|
+
constructor();
|
|
477
|
+
protected onApply(): void;
|
|
478
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RtPageBarComponent, never>;
|
|
479
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RtPageBarComponent, "rt-page-bar", never, {
|
|
480
|
+
"pageTitle": {
|
|
481
|
+
"alias": "pageTitle";
|
|
482
|
+
"required": true;
|
|
483
|
+
"isSignal": true;
|
|
484
|
+
};
|
|
485
|
+
"actions": {
|
|
486
|
+
"alias": "actions";
|
|
487
|
+
"required": false;
|
|
488
|
+
"isSignal": true;
|
|
489
|
+
};
|
|
490
|
+
"filtersActive": {
|
|
491
|
+
"alias": "filtersActive";
|
|
492
|
+
"required": false;
|
|
493
|
+
"isSignal": true;
|
|
494
|
+
};
|
|
495
|
+
}, {
|
|
496
|
+
"actionClick": "actionClick";
|
|
497
|
+
"filtersApply": "filtersApply";
|
|
498
|
+
}, ["filters", "search"], never, true, never>;
|
|
299
499
|
}
|
|
300
500
|
export {};
|
|
@@ -295,6 +295,26 @@ export declare namespace IRtChat {
|
|
|
295
295
|
createdAt: string;
|
|
296
296
|
/** Готовая подпись вместо времени `createdAt`. Подписи дней считаются от `createdAt` и так. */
|
|
297
297
|
dateLabel?: string;
|
|
298
|
+
/**
|
|
299
|
+
* Подпись перевода перед временем: «Переведено», «Без перевода», «Оригинал». Текст даёт
|
|
300
|
+
* приложение, кит ставит его в строку времени через точку.
|
|
301
|
+
*/
|
|
302
|
+
translationLabel?: string | null;
|
|
303
|
+
/**
|
|
304
|
+
* Реплика показана в оригинале, и перевод можно вернуть: под текстом встаёт кнопка «Показать
|
|
305
|
+
* перевод». Нажатие уходит событием `showTranslation`, текст реплики меняет приложение.
|
|
306
|
+
*/
|
|
307
|
+
canShowTranslation?: boolean;
|
|
308
|
+
/**
|
|
309
|
+
* Перевод реплики загружается: перед кнопкой «Показать перевод» крутится спиннер, кнопка
|
|
310
|
+
* приглушена и не нажимается. Без `canShowTranslation` ничего не меняет.
|
|
311
|
+
*/
|
|
312
|
+
translationLoading?: boolean;
|
|
313
|
+
/**
|
|
314
|
+
* Перевод не пришёл: текст ошибки от приложения встаёт строкой над кнопкой «Показать перевод»,
|
|
315
|
+
* кнопка повторяет запрос. Без `canShowTranslation` ничего не меняет.
|
|
316
|
+
*/
|
|
317
|
+
translationError?: string | null;
|
|
298
318
|
/**
|
|
299
319
|
* Значок на месте значка статуса, размером как он. Статусы «не ушло» и «не доставлено»
|
|
300
320
|
* сильнее: их значок предупреждает об ошибке.
|
|
@@ -530,6 +550,8 @@ export declare class RtChatComponent {
|
|
|
530
550
|
readonly deleteMessage: OutputEmitterRef<IRtChat.Message>;
|
|
531
551
|
/** Повторная отправка своего сообщения со статусом `failed`. */
|
|
532
552
|
readonly retryMessage: OutputEmitterRef<IRtChat.Message>;
|
|
553
|
+
/** Нажата кнопка «Показать перевод» под репликой: текст реплики меняет приложение. */
|
|
554
|
+
readonly showTranslation: OutputEmitterRef<IRtChat.Message>;
|
|
533
555
|
/**
|
|
534
556
|
* Есть ли у реплики действия потребителя — гейт кнопки «…» у неё.
|
|
535
557
|
*
|
|
@@ -690,6 +712,7 @@ export declare class RtChatComponent {
|
|
|
690
712
|
"expandedChange": "expandedChange";
|
|
691
713
|
"deleteMessage": "deleteMessage";
|
|
692
714
|
"retryMessage": "retryMessage";
|
|
715
|
+
"showTranslation": "showTranslation";
|
|
693
716
|
}, ["messageActions", "messageButtons"], ["[rtChatHeaderActions]", "[rtChatComposerBar]", "[rtChatComposerTools]", "[rtChatFooter]"], true, never>;
|
|
694
717
|
}
|
|
695
718
|
/**
|
|
@@ -11,6 +11,12 @@ export declare namespace IRtStepper {
|
|
|
11
11
|
type Orientation = 'horizontal' | 'vertical';
|
|
12
12
|
/** Состояние шага в вертикальном списке; `neutral` — у всех шагов, когда текущего нет. */
|
|
13
13
|
type StepState = 'complete' | 'current' | 'upcoming' | 'neutral';
|
|
14
|
+
/** Отрезок полосы под подписью текущего шага: начало и ширина в процентах, выравнивание в нём. */
|
|
15
|
+
interface LabelSegment {
|
|
16
|
+
readonly start: number;
|
|
17
|
+
readonly size: number;
|
|
18
|
+
readonly anchor: 'start' | 'center' | 'end';
|
|
19
|
+
}
|
|
14
20
|
/** Обстановка шаблона подписи: шаг и его номер с нуля. */
|
|
15
21
|
interface LabelContext {
|
|
16
22
|
readonly $implicit: Step;
|
|
@@ -47,8 +53,11 @@ interface IStepItem {
|
|
|
47
53
|
* текущего шага. Шаги задаются через input `steps` (массив `IRtStepper.Step`
|
|
48
54
|
* со связкой label + description), активный шаг — через `currentIndex`.
|
|
49
55
|
*
|
|
50
|
-
* Активная точка увеличена и подсвечивается янтарным; над ней
|
|
51
|
-
* текущего шага (тоже
|
|
56
|
+
* Активная точка увеличена и подсвечивается янтарным; над ней стоит подпись
|
|
57
|
+
* текущего шага (тоже янтарная): по центру над точкой, на крайних шагах у края
|
|
58
|
+
* полосы, у среднего шага возле края — тоже у ближнего края. За полосу подпись не
|
|
59
|
+
* выходит, длинная переносится. Полоса тянется по ширине места, шагов сколько угодно;
|
|
60
|
+
* отступ точек от краёв задаёт приложение свойством `--rt-stepper-inset`.
|
|
52
61
|
* Пройденные точки и заполненная часть полосы — progress-цвет; будущие точки
|
|
53
62
|
* и трек — приглушённый цвет (в dark-теме оба ухода от яркого синего). Под
|
|
54
63
|
* полосой — описание текущего шага, многоабзацное (`\n\n`). Сам список названий
|
|
@@ -79,11 +88,16 @@ export declare class RtStepperComponent {
|
|
|
79
88
|
*/
|
|
80
89
|
protected readonly items: Signal<readonly IStepItem[]>;
|
|
81
90
|
/**
|
|
82
|
-
*
|
|
83
|
-
*
|
|
84
|
-
*
|
|
91
|
+
* Отрезок полосы под подписью текущего шага: подпись центрирована над точкой и не выходит за
|
|
92
|
+
* полосу, на первом шаге прижата к началу, на последнем к концу. Средний шаг, у которого над
|
|
93
|
+
* точкой меньше половины полосы, прижимается к ближнему краю. Считает чистая функция рядом.
|
|
94
|
+
*/
|
|
95
|
+
protected readonly labelSegment: Signal<IRtStepper.LabelSegment>;
|
|
96
|
+
/**
|
|
97
|
+
* Состояние каждой точки по зажатому номеру — тому же, что у подписи и заполнения: при номере
|
|
98
|
+
* за пределами набора текущей становится последняя точка, а не ни одна.
|
|
85
99
|
*/
|
|
86
|
-
protected readonly
|
|
100
|
+
protected readonly points: Signal<readonly IRtStepper.StepState[]>;
|
|
87
101
|
/** Абзацы описания текущего шага: бэк отдаёт плоскую строку, делим по `\n\n`. */
|
|
88
102
|
protected readonly descriptionParagraphs: Signal<readonly string[]>;
|
|
89
103
|
readonly steps: InputSignal<readonly IRtStepper.Step[]>;
|
|
@@ -17,12 +17,57 @@ export declare namespace IRtTabs {
|
|
|
17
17
|
* переводят фокус, а открывают Enter и Space.
|
|
18
18
|
*/
|
|
19
19
|
type Activation = 'auto' | 'manual';
|
|
20
|
+
/** Что делать, когда вкладки не встают: прокручивать полосу (`scroll`) или уносить лишние в меню (`more`). */
|
|
21
|
+
type Overflow = 'scroll' | 'more';
|
|
22
|
+
/** У каких вкладок ряда виден крестик. */
|
|
23
|
+
type CloseOn = 'all' | 'selected';
|
|
24
|
+
/** Контекст шаблона меню вкладки: id вкладки, на которой нажали правую кнопку. */
|
|
25
|
+
interface ContextMenuContext {
|
|
26
|
+
readonly $implicit: Id;
|
|
27
|
+
}
|
|
28
|
+
/** Что нужно ряду от полосы. Тип вкладки — параметр: директива сама читает эту модель. */
|
|
29
|
+
interface MoreRowDeps<TAB> {
|
|
30
|
+
readonly enabled: Signal<boolean>;
|
|
31
|
+
readonly visible: Signal<readonly TAB[]>;
|
|
32
|
+
readonly selectedId: Signal<Id | null>;
|
|
33
|
+
readonly limit: Signal<number>;
|
|
34
|
+
}
|
|
35
|
+
/** Вкладка ряда с замеренной шириной: вход подбора ряда в режиме «Ещё». */
|
|
36
|
+
interface MoreSlot {
|
|
37
|
+
readonly id: Id;
|
|
38
|
+
readonly width: number;
|
|
39
|
+
readonly pinned: boolean;
|
|
40
|
+
}
|
|
41
|
+
/** Замеры полосы: всё, из чего подбирается ряд. */
|
|
42
|
+
interface MoreFit {
|
|
43
|
+
readonly slots: ReadonlyArray<MoreSlot>;
|
|
44
|
+
readonly selectedId: Id | null;
|
|
45
|
+
readonly moreWidth: number;
|
|
46
|
+
readonly available: number;
|
|
47
|
+
/** Сколько вкладок вместе с закреплёнными может стоять в ряду; без значения — сколько влезет. */
|
|
48
|
+
readonly limit?: number;
|
|
49
|
+
}
|
|
50
|
+
/** Видимость стрелок прокрутки у краёв полосы. */
|
|
51
|
+
interface RestShown {
|
|
52
|
+
readonly before: boolean;
|
|
53
|
+
readonly after: boolean;
|
|
54
|
+
}
|
|
55
|
+
/** Раскладка: ряд в порядке показа и вкладки меню в порядке объявления. */
|
|
56
|
+
interface MoreLayout {
|
|
57
|
+
readonly row: ReadonlyArray<Id>;
|
|
58
|
+
readonly more: ReadonlyArray<Id>;
|
|
59
|
+
}
|
|
20
60
|
/**
|
|
21
61
|
* Где стоят стрелки прокрутки переполненной полосы: `overlay` — поверх вкладок, только в ту
|
|
22
62
|
* сторону, куда можно прокрутить; `inline` — обе в своих местах по краям, полоса между ними уже,
|
|
23
63
|
* стрелка в сторону, куда прокручивать некуда, неактивна.
|
|
24
64
|
*/
|
|
25
65
|
type ScrollArrows = 'overlay' | 'inline';
|
|
66
|
+
/**
|
|
67
|
+
* Вид стрелки прокрутки: `block` — квадрат во всю высоту полосы, базовый вид вкладок;
|
|
68
|
+
* `compact` — кнопка 24 со скруглением и тенью, под которой текст крайней вкладки гаснет.
|
|
69
|
+
*/
|
|
70
|
+
type ArrowLook = 'block' | 'compact';
|
|
26
71
|
/**
|
|
27
72
|
* На сколько сдвигает полосу одно нажатие на стрелку: `fixed` — на 80 px, как прежде; `page` —
|
|
28
73
|
* на видимую ширину, `third` — на её треть, как у Material.
|
|
@@ -105,6 +150,10 @@ export declare class RtTabDirective {
|
|
|
105
150
|
readonly tooltip: InputSignal<string>;
|
|
106
151
|
/** Вкладку можно закрыть: крестик в шапке и клавиша Delete поднимают `tabClose` у `rt-tabs`. */
|
|
107
152
|
readonly closable: InputSignalWithTransform<boolean, BooleanInput>;
|
|
153
|
+
/** Закреплённая вкладка: в режиме «Ещё» стоит первой и в меню не уходит. */
|
|
154
|
+
readonly pinned: InputSignalWithTransform<boolean, BooleanInput>;
|
|
155
|
+
/** Пункты меню вкладки по правой кнопке. Нет шаблона — у вкладки остаётся меню браузера. */
|
|
156
|
+
readonly contextMenu: InputSignal<TemplateRef<IRtTabs.ContextMenuContext> | null>;
|
|
108
157
|
/** Подсказка крестика закрываемой вкладки. Пусто — подсказки нет. */
|
|
109
158
|
readonly closeTooltip: InputSignal<string>;
|
|
110
159
|
/** Сторона подсказки крестика. Не задана — сторона подсказки по умолчанию. */
|
|
@@ -132,6 +181,8 @@ export declare class RtTabDirective {
|
|
|
132
181
|
* Крестик — отдельная кнопка, и без имени диктор назвал бы её просто «кнопка».
|
|
133
182
|
*/
|
|
134
183
|
readonly closeLabel: Signal<string>;
|
|
184
|
+
/** Какая иконка рисуется: своя, а у закреплённой без своей — кнопка закрепления. */
|
|
185
|
+
readonly shownIcon: Signal<IRtIcon.Name | null>;
|
|
135
186
|
/** У вкладки есть иконка — по имени кита или по значку Material. */
|
|
136
187
|
readonly hasIcon: Signal<boolean>;
|
|
137
188
|
/** Бейдж стоит над иконкой: попросили `overlay`, бейдж есть и есть над чем стоять. */
|
|
@@ -225,6 +276,16 @@ export declare class RtTabDirective {
|
|
|
225
276
|
"required": false;
|
|
226
277
|
"isSignal": true;
|
|
227
278
|
};
|
|
279
|
+
"pinned": {
|
|
280
|
+
"alias": "pinned";
|
|
281
|
+
"required": false;
|
|
282
|
+
"isSignal": true;
|
|
283
|
+
};
|
|
284
|
+
"contextMenu": {
|
|
285
|
+
"alias": "contextMenu";
|
|
286
|
+
"required": false;
|
|
287
|
+
"isSignal": true;
|
|
288
|
+
};
|
|
228
289
|
"closeTooltip": {
|
|
229
290
|
"alias": "closeTooltip";
|
|
230
291
|
"required": false;
|
|
@@ -242,6 +303,8 @@ export declare class RtTabDirective {
|
|
|
242
303
|
* `ease-in-out` и `cubic-bezier(…)`. Непонятное значение читается как `ease-out`.
|
|
243
304
|
*/
|
|
244
305
|
declare function rtTabsEasing(value: string): (progress: number) => number;
|
|
306
|
+
/** Какие стрелки прокрутки видны у полосы: есть куда прокручивать назад и вперёд. */
|
|
307
|
+
declare function rtTabsRestShown(list: HTMLElement): IRtTabs.RestShown;
|
|
245
308
|
/** Куда прокрутить полосу нажатием на стрелку: на шаг `step` от `from`, не дальше края. */
|
|
246
309
|
declare function rtTabsPageTarget(list: HTMLElement, from: number, back: boolean, step: IRtTabs.ScrollStep): number;
|
|
247
310
|
/**
|
|
@@ -261,6 +324,8 @@ declare class RtTabsScroller {
|
|
|
261
324
|
constructor(win: Window | null, host: HTMLElement, list: () => ElementRef<HTMLElement> | undefined);
|
|
262
325
|
/** Положение, от которого считать следующий шаг: цель идущей прокрутки или текущее. */
|
|
263
326
|
from(): number;
|
|
327
|
+
/** Ставит полосу на цель: сразу (`instant`) или плавно. `null` — вкладка уже видна целиком. */
|
|
328
|
+
place(target: number | null, instant: boolean): void;
|
|
264
329
|
/** Прокручивает полосу к `left`; новая прокрутка заменяет идущую. */
|
|
265
330
|
to(left: number): void;
|
|
266
331
|
/**
|
|
@@ -312,6 +377,26 @@ export declare class RtTabsControlDirective {
|
|
|
312
377
|
};
|
|
313
378
|
}, {}, never, never, true, never>;
|
|
314
379
|
}
|
|
380
|
+
/** Сколько вкладок по умолчанию стоит в ряду режима «Ещё». */
|
|
381
|
+
declare const RT_TABS_MORE_LIMIT: number;
|
|
382
|
+
/** Модификатор полосы на время замера: растянутые вкладки сжимаются до своего содержимого. */
|
|
383
|
+
declare const RT_TABS_MEASURE_CLASS: string;
|
|
384
|
+
/**
|
|
385
|
+
* Ряд вкладок в режиме «Ещё»: замеряет полосу, отдаёт решение чистой функции и держит раскладку.
|
|
386
|
+
* Вкладка из меню остаётся в разметке, только скрытая: её ширину ряд читает при каждом пересчёте.
|
|
387
|
+
*/
|
|
388
|
+
declare class RtTabsMoreRow {
|
|
389
|
+
#private;
|
|
390
|
+
/** Вкладки меню. */
|
|
391
|
+
readonly ids: Signal<ReadonlySet<IRtTabs.Id>>;
|
|
392
|
+
/** Место вкладки в ряду: порядок показа расходится с порядком объявления. */
|
|
393
|
+
readonly order: Signal<ReadonlyMap<IRtTabs.Id, number>>;
|
|
394
|
+
/** Вкладки меню в порядке объявления. */
|
|
395
|
+
readonly moreTabs: Signal<readonly RtTabDirective[]>;
|
|
396
|
+
/** Вкладки ряда в порядке показа: по ним ходят клавиши, и за ними едет полоса выбранной. */
|
|
397
|
+
readonly rowTabs: Signal<readonly RtTabDirective[]>;
|
|
398
|
+
constructor(win: Window | null, list: Signal<ElementRef<HTMLElement> | undefined>, deps: IRtTabs.MoreRowDeps<RtTabDirective>);
|
|
399
|
+
}
|
|
315
400
|
/** Признак, по которому пользователь просит обходиться без движения. */
|
|
316
401
|
declare const RT_TABS_REDUCED_MOTION: string;
|
|
317
402
|
/** Куда сдвигается содержимое: к вкладке правее (`forward`) или левее (`backward`). */
|
|
@@ -457,11 +542,13 @@ export declare class RtTabsComponent {
|
|
|
457
542
|
* асинхронную загрузку/смену набора вкладок.
|
|
458
543
|
*/
|
|
459
544
|
protected readonly selectedId: Signal<IRtTabs.Id | null>;
|
|
545
|
+
/** Режим «Ещё» работает только в горизонтальной полосе. */
|
|
546
|
+
protected readonly moreMode: Signal<boolean>;
|
|
460
547
|
/** Активная вкладка целиком (для рендера панели). */
|
|
461
548
|
protected readonly activeTab: Signal<RtTabDirective | null>;
|
|
462
549
|
/**
|
|
463
550
|
* Вкладка в таб-порядке: та, на которую стрелками перевели фокус в ручном режиме, иначе
|
|
464
|
-
* активная. Фокус на вкладке, которой больше
|
|
551
|
+
* активная. Фокус на вкладке, которой больше нет, которая отключилась или ушла в меню, не держится.
|
|
465
552
|
*/
|
|
466
553
|
protected readonly focusId: Signal<IRtTabs.Id | null>;
|
|
467
554
|
/** Видны ли стрелки прокрутки слева/справа (только горизонтальная полоса). */
|
|
@@ -472,6 +559,8 @@ export declare class RtTabsComponent {
|
|
|
472
559
|
protected readonly tabListRef: Signal<ElementRef<HTMLElement> | undefined>;
|
|
473
560
|
/** Смена панелей: прежняя уходит в сторону, обратную переходу, новая въезжает следом. */
|
|
474
561
|
protected readonly panels: RtTabsPanels;
|
|
562
|
+
/** Ряд и меню режима «Ещё». */
|
|
563
|
+
protected readonly more: RtTabsMoreRow;
|
|
475
564
|
/** Полоса выбранной вкладки: одна на всю полосу, переезжает при смене выбора. */
|
|
476
565
|
protected readonly ink: RtTabsInk;
|
|
477
566
|
/** Контролируемый активный id. `null` — компонент сам выбирает первую вкладку. */
|
|
@@ -482,6 +571,8 @@ export declare class RtTabsComponent {
|
|
|
482
571
|
readonly stretch: InputSignalWithTransform<boolean, BooleanInput>;
|
|
483
572
|
/** Плотные вкладки: отступ 8 по бокам, чтобы в узкую панель влезло больше вкладок */
|
|
484
573
|
readonly dense: InputSignalWithTransform<boolean, BooleanInput>;
|
|
574
|
+
/** У каких вкладок ряда виден крестик. Строки меню «Ещё» его показывают всегда. */
|
|
575
|
+
readonly closeOn: InputSignal<IRtTabs.CloseOn>;
|
|
485
576
|
/** Скроллить область контента при переполнении. */
|
|
486
577
|
readonly contentScrollable: InputSignalWithTransform<boolean, BooleanInput>;
|
|
487
578
|
/**
|
|
@@ -497,8 +588,14 @@ export declare class RtTabsComponent {
|
|
|
497
588
|
readonly preserveContent: InputSignalWithTransform<boolean, BooleanInput>;
|
|
498
589
|
/** Стрелки и Home/End открывают вкладку сразу (`auto`) или только переводят фокус (`manual`). */
|
|
499
590
|
readonly activation: InputSignal<IRtTabs.Activation>;
|
|
591
|
+
/** Вкладки не встают: полоса прокручивается (`scroll`) или лишние уходят в меню «Ещё» (`more`). */
|
|
592
|
+
readonly overflow: InputSignal<IRtTabs.Overflow>;
|
|
593
|
+
/** Предел вкладок в ряду «Ещё» вместе с закреплёнными; выбранная из меню встаёт на место последней. */
|
|
594
|
+
readonly moreLimit: InputSignalWithTransform<number, unknown>;
|
|
500
595
|
/** Стрелки прокрутки поверх вкладок (`overlay`) или в своих местах по краям полосы (`inline`). */
|
|
501
596
|
readonly scrollArrows: InputSignal<IRtTabs.ScrollArrows>;
|
|
597
|
+
/** Вид стрелки: квадрат во всю высоту полосы (`block`) или компактная кнопка 24 (`compact`). */
|
|
598
|
+
readonly arrowLook: InputSignal<IRtTabs.ArrowLook>;
|
|
502
599
|
/** Шаг нажатия на стрелку: 80 px (`fixed`), видимая ширина полосы (`page`) или её треть (`third`), как у Material. */
|
|
503
600
|
readonly scrollStep: InputSignal<IRtTabs.ScrollStep>;
|
|
504
601
|
/**
|
|
@@ -519,6 +616,8 @@ export declare class RtTabsComponent {
|
|
|
519
616
|
protected selectTab(id: IRtTabs.Id): void;
|
|
520
617
|
/** Крестик: нажатие не выбирает вкладку; фокус с крестика после закрытия уходит на вкладку, не на страницу. */
|
|
521
618
|
protected onCloseClick(event: MouseEvent, tab: RtTabDirective): void;
|
|
619
|
+
/** Крестик строки меню: фокус остаётся на месте, выбор не меняется. */
|
|
620
|
+
protected onMoreClose(tab: RtTabDirective): void;
|
|
522
621
|
/**
|
|
523
622
|
* Навигация по вкладкам с клавиатуры. Шаг считается от вкладки в фокусе: в ручном режиме она
|
|
524
623
|
* не совпадает с активной. Enter и Space ловит сама кнопка — они дают click и выбор.
|
|
@@ -552,6 +651,11 @@ export declare class RtTabsComponent {
|
|
|
552
651
|
"required": false;
|
|
553
652
|
"isSignal": true;
|
|
554
653
|
};
|
|
654
|
+
"closeOn": {
|
|
655
|
+
"alias": "closeOn";
|
|
656
|
+
"required": false;
|
|
657
|
+
"isSignal": true;
|
|
658
|
+
};
|
|
555
659
|
"contentScrollable": {
|
|
556
660
|
"alias": "contentScrollable";
|
|
557
661
|
"required": false;
|
|
@@ -572,11 +676,26 @@ export declare class RtTabsComponent {
|
|
|
572
676
|
"required": false;
|
|
573
677
|
"isSignal": true;
|
|
574
678
|
};
|
|
679
|
+
"overflow": {
|
|
680
|
+
"alias": "overflow";
|
|
681
|
+
"required": false;
|
|
682
|
+
"isSignal": true;
|
|
683
|
+
};
|
|
684
|
+
"moreLimit": {
|
|
685
|
+
"alias": "moreLimit";
|
|
686
|
+
"required": false;
|
|
687
|
+
"isSignal": true;
|
|
688
|
+
};
|
|
575
689
|
"scrollArrows": {
|
|
576
690
|
"alias": "scrollArrows";
|
|
577
691
|
"required": false;
|
|
578
692
|
"isSignal": true;
|
|
579
693
|
};
|
|
694
|
+
"arrowLook": {
|
|
695
|
+
"alias": "arrowLook";
|
|
696
|
+
"required": false;
|
|
697
|
+
"isSignal": true;
|
|
698
|
+
};
|
|
580
699
|
"scrollStep": {
|
|
581
700
|
"alias": "scrollStep";
|
|
582
701
|
"required": false;
|
|
@@ -7,6 +7,8 @@ export declare namespace IRtWorkspace {
|
|
|
7
7
|
interface PanelApi {
|
|
8
8
|
asideCollapsed: Signal<boolean>;
|
|
9
9
|
asideOpen: Signal<boolean>;
|
|
10
|
+
/** Панель сведений открывается поверх окна боковой панелью с затемнением */
|
|
11
|
+
asideOverlay: Signal<boolean>;
|
|
10
12
|
toggleAsideCollapsed(): void;
|
|
11
13
|
openAside(): void;
|
|
12
14
|
closeAside(): void;
|
|
@@ -15,6 +17,12 @@ export declare namespace IRtWorkspace {
|
|
|
15
17
|
interface SlotContext {
|
|
16
18
|
$implicit: PanelApi;
|
|
17
19
|
}
|
|
20
|
+
/** Что получает панель сведений, открытая поверх окна */
|
|
21
|
+
interface AsideOverlayData {
|
|
22
|
+
template: TemplateRef<SlotContext>;
|
|
23
|
+
context: SlotContext;
|
|
24
|
+
width: number;
|
|
25
|
+
}
|
|
18
26
|
interface PersistedState {
|
|
19
27
|
listWidth: number;
|
|
20
28
|
asideWidth: number;
|
|
@@ -43,6 +51,8 @@ export declare class RtWorkspaceAsideDirective {
|
|
|
43
51
|
static ɵfac: i0.ɵɵFactoryDeclaration<RtWorkspaceAsideDirective, never>;
|
|
44
52
|
static ɵdir: i0.ɵɵDirectiveDeclaration<RtWorkspaceAsideDirective, "[rtWorkspaceAside]", never, {}, {}, never, never, true, never>;
|
|
45
53
|
}
|
|
54
|
+
/** Что принимает вход порога: число, строка атрибута или `null` */
|
|
55
|
+
type TBreakpointInput = number | string | null;
|
|
46
56
|
export declare class RtWorkspaceComponent implements IRtWorkspace.PanelApi {
|
|
47
57
|
#private;
|
|
48
58
|
protected readonly t: Signal<TRtKitLabelMap>;
|
|
@@ -51,6 +61,8 @@ export declare class RtWorkspaceComponent implements IRtWorkspace.PanelApi {
|
|
|
51
61
|
protected readonly asideSlot: Signal<RtWorkspaceAsideDirective | undefined>;
|
|
52
62
|
protected readonly resizing: Signal<boolean>;
|
|
53
63
|
protected readonly slotContext: IRtWorkspace.SlotContext;
|
|
64
|
+
/** Одна колонка по порогу из входа; без входа вид держат стили, и здесь всегда `false` */
|
|
65
|
+
protected readonly singleColumn: Signal<boolean>;
|
|
54
66
|
readonly storageKey: InputSignal<string | null>;
|
|
55
67
|
readonly hasActive: InputSignalWithTransform<boolean, BooleanInput>;
|
|
56
68
|
/** Колонки стоят отдельными карточками с зазором, без линий между ними */
|
|
@@ -62,7 +74,16 @@ export declare class RtWorkspaceComponent implements IRtWorkspace.PanelApi {
|
|
|
62
74
|
readonly asideMaxWidth: InputSignalWithTransform<number, number | string>;
|
|
63
75
|
readonly asideDefaultWidth: InputSignalWithTransform<number, number | string>;
|
|
64
76
|
readonly centerMinWidth: InputSignalWithTransform<number, number | string>;
|
|
77
|
+
/**
|
|
78
|
+
* Порог одной колонки, пиксели места страницы. Без входа порог держат стили: 768. С входом
|
|
79
|
+
* выше порога список и середина стоят рядом, а панель сведений, которой не хватает места
|
|
80
|
+
* третьей колонкой, открывается поверх окна. Порог выше 1080 смысла не имеет.
|
|
81
|
+
*/
|
|
82
|
+
readonly singleColumnBreakpoint: InputSignalWithTransform<number | null, TBreakpointInput>;
|
|
83
|
+
/** Ширина панели сведений, открытой поверх окна */
|
|
84
|
+
readonly asideOverlayWidth: InputSignalWithTransform<number, number | string>;
|
|
65
85
|
readonly backClicked: OutputEmitterRef<void>;
|
|
86
|
+
readonly asideOverlay: Signal<boolean>;
|
|
66
87
|
readonly listWidth: Signal<number>;
|
|
67
88
|
readonly asideWidth: Signal<number>;
|
|
68
89
|
readonly asideCollapsed: Signal<boolean>;
|
|
@@ -128,7 +149,18 @@ export declare class RtWorkspaceComponent implements IRtWorkspace.PanelApi {
|
|
|
128
149
|
"required": false;
|
|
129
150
|
"isSignal": true;
|
|
130
151
|
};
|
|
152
|
+
"singleColumnBreakpoint": {
|
|
153
|
+
"alias": "singleColumnBreakpoint";
|
|
154
|
+
"required": false;
|
|
155
|
+
"isSignal": true;
|
|
156
|
+
};
|
|
157
|
+
"asideOverlayWidth": {
|
|
158
|
+
"alias": "asideOverlayWidth";
|
|
159
|
+
"required": false;
|
|
160
|
+
"isSignal": true;
|
|
161
|
+
};
|
|
131
162
|
}, {
|
|
132
163
|
"backClicked": "backClicked";
|
|
133
164
|
}, ["listSlot", "centerSlot", "asideSlot"], never, true, never>;
|
|
134
|
-
}
|
|
165
|
+
}
|
|
166
|
+
export {};
|