@rt-tools/ui-kit-v2 0.40.0 → 0.42.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-calendar.mjs +4 -4
- package/fesm2022/rt-tools-ui-kit-v2-calendar.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-core.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-data-table.mjs +13 -5
- package/fesm2022/rt-tools-ui-kit-v2-data-table.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-date-picker.mjs +155 -100
- package/fesm2022/rt-tools-ui-kit-v2-date-picker.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-date-range.mjs +2 -2
- package/fesm2022/rt-tools-ui-kit-v2-date-range.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-rich-editor.mjs +51 -24
- package/fesm2022/rt-tools-ui-kit-v2-rich-editor.mjs.map +1 -1
- package/package.json +1 -1
- package/src/lib/components/calendar/CONTEXT.md +4 -2
- package/src/lib/components/calendar/rt-calendar.component.scss +29 -2
- package/src/lib/components/data-table/CONTEXT.md +5 -0
- package/src/lib/components/data-table/cell/rt-data-table-cell.component.scss +15 -0
- package/src/lib/components/data-table/stories/component/test-data-table-matrix.component.scss +10 -0
- package/src/lib/components/date-picker/CONTEXT.md +5 -0
- package/src/lib/components/date-picker/panel/CONTEXT.md +42 -0
- package/src/lib/components/date-picker/panel/rt-date-panel.component.scss +55 -2
- package/src/rich-editor/lib/components/chat/CONTEXT.md +13 -1
- package/src/rich-editor/lib/components/chat/rt-chat-messenger.scss +28 -14
- package/src/rich-editor/lib/components/chat/rt-chat.component.scss +21 -0
- package/types/rt-tools-ui-kit-v2-calendar.d.ts +13 -1
- package/types/rt-tools-ui-kit-v2-core.d.ts +7 -0
- package/types/rt-tools-ui-kit-v2-data-table.d.ts +11 -1
- package/types/rt-tools-ui-kit-v2-date-picker.d.ts +157 -5
- package/types/rt-tools-ui-kit-v2-rich-editor.d.ts +14 -1
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import { NumberInput } from "@angular/cdk/coercion";
|
|
1
|
+
import { BooleanInput, NumberInput } from "@angular/cdk/coercion";
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
-
import { ElementRef, InputSignal, InputSignalWithTransform, Signal, WritableSignal } from "@angular/core";
|
|
3
|
+
import { ElementRef, InputSignal, InputSignalWithTransform, OutputEmitterRef, Signal, WritableSignal } from "@angular/core";
|
|
4
4
|
import { IRtIcon, IRtInput, TRtKitLabelMap } from "@rt-tools/ui-kit-v2/core";
|
|
5
|
+
import { IRtCalendar } from "@rt-tools/ui-kit-v2/calendar";
|
|
6
|
+
import { IRtToggleButtonGroup } from "@rt-tools/ui-kit-v2/toggle-button-group";
|
|
5
7
|
import { RtFormControlBase } from "@rt-tools/ui-kit-v2/form-control";
|
|
6
8
|
import { RtPopoverDirective } from "@rt-tools/ui-kit-v2/popover";
|
|
7
9
|
import * as i1 from "@rt-tools/ui-kit-v2/radius";
|
|
8
|
-
import { IRtCalendar } from "@rt-tools/ui-kit-v2/calendar";
|
|
9
10
|
/** Контракт rt-date-picker. */
|
|
10
11
|
export declare namespace IRtDatePicker {
|
|
11
12
|
/** Тип значения: дата, время или дата со временем. */
|
|
@@ -70,6 +71,151 @@ export declare namespace IRtDatePicker {
|
|
|
70
71
|
max: string | null;
|
|
71
72
|
}
|
|
72
73
|
}
|
|
74
|
+
type TView = 'days' | 'months' | 'years';
|
|
75
|
+
type TTab = 'date' | 'time';
|
|
76
|
+
/**
|
|
77
|
+
* Панель выбора даты и времени: месяц с листанием, сетки месяцев и годов, колонки часов и минут,
|
|
78
|
+
* подвал с «Сегодня», «Сейчас», «Готово» или «Применить» — по типу значения. Её открывает
|
|
79
|
+
* rt-date-picker, а без текстового поля она стоит в поповере или в rt-bottom-sheet потребителя.
|
|
80
|
+
*
|
|
81
|
+
* Панель не пишет в форму: готовое значение уходит событием `picked`, просьба закрыться —
|
|
82
|
+
* `closed`. Черновик живёт, пока панель открыта, поэтому её создают заново на каждое открытие.
|
|
83
|
+
* Поверхности у панели нет: фон, рамку и тень даёт то, во что её положили.
|
|
84
|
+
* Вся арифметика дат — в `rt-date-panel.logic`.
|
|
85
|
+
*/
|
|
86
|
+
export declare class RtDatePanelComponent {
|
|
87
|
+
#private;
|
|
88
|
+
protected readonly t: Signal<TRtKitLabelMap>;
|
|
89
|
+
protected readonly weekdays: Signal<readonly string[]>;
|
|
90
|
+
protected readonly timeCells: Signal<readonly ElementRef<HTMLButtonElement>[]>;
|
|
91
|
+
protected readonly view: WritableSignal<TView>;
|
|
92
|
+
protected readonly tab: WritableSignal<TTab>;
|
|
93
|
+
protected readonly activeKey: WritableSignal<string | null>;
|
|
94
|
+
protected readonly today: Signal<string>;
|
|
95
|
+
protected readonly draftDay: WritableSignal<string | null>;
|
|
96
|
+
protected readonly draftTime: WritableSignal<string | null>;
|
|
97
|
+
protected readonly shownMonth: WritableSignal<string>;
|
|
98
|
+
protected readonly year: WritableSignal<number>;
|
|
99
|
+
protected readonly split: Signal<boolean>;
|
|
100
|
+
protected readonly showDate: Signal<boolean>;
|
|
101
|
+
protected readonly showTime: Signal<boolean>;
|
|
102
|
+
protected readonly months: Signal<IRtCalendar.Month[]>;
|
|
103
|
+
protected readonly canPrev: Signal<boolean>;
|
|
104
|
+
protected readonly canNext: Signal<boolean>;
|
|
105
|
+
protected readonly monthCells: Signal<IRtDatePicker.MonthCell[]>;
|
|
106
|
+
protected readonly canPrevYear: Signal<boolean>;
|
|
107
|
+
protected readonly canNextYear: Signal<boolean>;
|
|
108
|
+
/** Первый год блока, который показывает сетка годов. */
|
|
109
|
+
protected readonly yearStart: WritableSignal<number>;
|
|
110
|
+
protected readonly yearCells: Signal<IRtDatePicker.YearCell[]>;
|
|
111
|
+
protected readonly yearSpan: Signal<string>;
|
|
112
|
+
/** Выбранный год — год значения; текущий — год сегодняшнего дня. */
|
|
113
|
+
protected readonly chosenYear: Signal<string | null>;
|
|
114
|
+
protected readonly currentYear: Signal<string>;
|
|
115
|
+
protected readonly currentMonth: Signal<string>;
|
|
116
|
+
protected readonly canPrevYears: Signal<boolean>;
|
|
117
|
+
protected readonly canNextYears: Signal<boolean>;
|
|
118
|
+
protected readonly draftHour: Signal<number | null>;
|
|
119
|
+
protected readonly draftMinute: Signal<number | null>;
|
|
120
|
+
protected readonly columns: Signal<IRtDatePicker.TimeColumns>;
|
|
121
|
+
protected readonly todayOff: Signal<boolean>;
|
|
122
|
+
/** У даты в подвале только «Сегодня»: без неё пустая черта не рисуется. */
|
|
123
|
+
protected readonly hasFooter: Signal<boolean>;
|
|
124
|
+
/** Черновик собирается в значение и лежит в границах. */
|
|
125
|
+
protected readonly canApply: Signal<boolean>;
|
|
126
|
+
/** Черновик даты со временем текстом для подвала шторки: `15.03.2026, 09:30`; не собран — пусто. */
|
|
127
|
+
protected readonly draftText: Signal<string>;
|
|
128
|
+
protected readonly tabs: Signal<IRtToggleButtonGroup.Option<TTab>[]>;
|
|
129
|
+
/** Тип значения: дата, время или дата со временем. */
|
|
130
|
+
readonly type: InputSignal<IRtDatePicker.Type>;
|
|
131
|
+
/** Значение в форме нативного input'а: `YYYY-MM-DD`, `HH:mm`, `YYYY-MM-DDTHH:mm`; пустая строка — пусто. */
|
|
132
|
+
readonly value: InputSignal<string>;
|
|
133
|
+
/** Нижняя граница в форме значения; `null` — границы нет. */
|
|
134
|
+
readonly min: InputSignal<string | null>;
|
|
135
|
+
/** Верхняя граница в форме значения; `null` — границы нет. */
|
|
136
|
+
readonly max: InputSignal<string | null>;
|
|
137
|
+
/** Шаг колонки минут. */
|
|
138
|
+
readonly minuteStep: InputSignalWithTransform<number, NumberInput>;
|
|
139
|
+
/** Раскладка нижней шторки: дни под палец, у даты со временем — переключатель «Дата | Время». */
|
|
140
|
+
readonly sheet: InputSignalWithTransform<boolean, BooleanInput>;
|
|
141
|
+
/** Показывать ли «Сегодня» в подвале у типа `date`. Выключена — подвала у даты нет. */
|
|
142
|
+
readonly isTodayButtonShown: InputSignalWithTransform<boolean, BooleanInput>;
|
|
143
|
+
/**
|
|
144
|
+
* Момент, от которого считаются «сегодня» и «Сейчас». Без него панель читает часы сама; задаёт
|
|
145
|
+
* его витрина, чтобы кадр не менялся день ото дня.
|
|
146
|
+
*/
|
|
147
|
+
readonly now: InputSignal<Date | null>;
|
|
148
|
+
/** Готовое значение в форме `value`: панель просит его записать. */
|
|
149
|
+
readonly picked: OutputEmitterRef<string>;
|
|
150
|
+
/** Панель просит закрыть себя: после выбора, а также по Escape в днях. */
|
|
151
|
+
readonly closed: OutputEmitterRef<void>;
|
|
152
|
+
constructor();
|
|
153
|
+
protected pickDay(day: IRtCalendar.Day): void;
|
|
154
|
+
protected pickToday(): void;
|
|
155
|
+
protected pickNow(): void;
|
|
156
|
+
protected pickHour(hour: number): void;
|
|
157
|
+
protected pickMinute(minute: number): void;
|
|
158
|
+
protected onGridKey(event: IRtCalendar.GridKey): void;
|
|
159
|
+
protected page(delta: number): void;
|
|
160
|
+
protected openMonths(): void;
|
|
161
|
+
protected pageYear(delta: number): void;
|
|
162
|
+
protected pickMonth(cell: IRtDatePicker.MonthCell): void;
|
|
163
|
+
protected openYears(): void;
|
|
164
|
+
protected pageYears(delta: number): void;
|
|
165
|
+
protected pickYear(cell: IRtDatePicker.YearCell): void;
|
|
166
|
+
/** Escape в сетке годов или месяцев возвращает на вид назад; в днях закрывает панель. */
|
|
167
|
+
protected onEscape(): void;
|
|
168
|
+
/** «Готово» и «Применить»: черновик уходит значением, панель закрывается. */
|
|
169
|
+
protected apply(): void;
|
|
170
|
+
/** «Сбросить»: значение становится пустым, панель закрывается. */
|
|
171
|
+
protected reset(): void;
|
|
172
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RtDatePanelComponent, never>;
|
|
173
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RtDatePanelComponent, "rt-date-panel", never, {
|
|
174
|
+
"type": {
|
|
175
|
+
"alias": "type";
|
|
176
|
+
"required": true;
|
|
177
|
+
"isSignal": true;
|
|
178
|
+
};
|
|
179
|
+
"value": {
|
|
180
|
+
"alias": "value";
|
|
181
|
+
"required": false;
|
|
182
|
+
"isSignal": true;
|
|
183
|
+
};
|
|
184
|
+
"min": {
|
|
185
|
+
"alias": "min";
|
|
186
|
+
"required": false;
|
|
187
|
+
"isSignal": true;
|
|
188
|
+
};
|
|
189
|
+
"max": {
|
|
190
|
+
"alias": "max";
|
|
191
|
+
"required": false;
|
|
192
|
+
"isSignal": true;
|
|
193
|
+
};
|
|
194
|
+
"minuteStep": {
|
|
195
|
+
"alias": "minuteStep";
|
|
196
|
+
"required": false;
|
|
197
|
+
"isSignal": true;
|
|
198
|
+
};
|
|
199
|
+
"sheet": {
|
|
200
|
+
"alias": "sheet";
|
|
201
|
+
"required": false;
|
|
202
|
+
"isSignal": true;
|
|
203
|
+
};
|
|
204
|
+
"isTodayButtonShown": {
|
|
205
|
+
"alias": "isTodayButtonShown";
|
|
206
|
+
"required": false;
|
|
207
|
+
"isSignal": true;
|
|
208
|
+
};
|
|
209
|
+
"now": {
|
|
210
|
+
"alias": "now";
|
|
211
|
+
"required": false;
|
|
212
|
+
"isSignal": true;
|
|
213
|
+
};
|
|
214
|
+
}, {
|
|
215
|
+
"picked": "picked";
|
|
216
|
+
"closed": "closed";
|
|
217
|
+
}, never, never, true, never>;
|
|
218
|
+
}
|
|
73
219
|
/**
|
|
74
220
|
* Поле даты, времени или даты со временем со своей панелью кита, визуально и по токенам
|
|
75
221
|
* идентичное rt-input (host — box `--rt-input-*`, input — прозрачный `__field`). Кнопка в конце
|
|
@@ -186,7 +332,12 @@ export declare function rtDateAddMonths(month: string, delta: number): string;
|
|
|
186
332
|
export declare function rtDateCanPage(month: string, delta: number, min: string | null, max: string | null): boolean;
|
|
187
333
|
/** Месяц `YYYY-MM` для календаря: подпись по локали, пустые ячейки до первого дня, дни. */
|
|
188
334
|
export declare function rtDateMonth(month: string, ctx: IRtDatePicker.MonthContext): IRtCalendar.Month;
|
|
189
|
-
/**
|
|
335
|
+
/**
|
|
336
|
+
* Месяц панели даты: тот же месяц, что у поля, но сетка дописана днями соседних месяцев до полных
|
|
337
|
+
* недель, а дни за границей выбора зачёркнуты, как занятые.
|
|
338
|
+
*/
|
|
339
|
+
export declare function rtDatePanelMonth(month: string, ctx: IRtDatePicker.MonthContext): IRtCalendar.Month;
|
|
340
|
+
/** Короткие имена дней недели по локали, начиная с её первого дня, с заглавной буквы: «Пн», «Mon». */
|
|
190
341
|
export declare function rtDateWeekdays(locale: string): string[];
|
|
191
342
|
/** Двенадцать месяцев года для выбора месяца; месяц за границей выключен. */
|
|
192
343
|
export declare function rtDateMonths(year: number, locale: string, min: string | null, max: string | null): IRtDatePicker.MonthCell[];
|
|
@@ -218,4 +369,5 @@ export declare function rtDateShape(type: IRtDatePicker.Type, layout: IRtDatePic
|
|
|
218
369
|
* Читает набранный текст в значение ISO; `null` — текст не значение этого типа. Читается и
|
|
219
370
|
* порядок локали, и сама форма значения: вставленная `2026-08-01` тоже становится значением.
|
|
220
371
|
*/
|
|
221
|
-
export declare function rtDateParse(text: string, type: IRtDatePicker.Type, layout: IRtDatePicker.TextLayout): string | null;
|
|
372
|
+
export declare function rtDateParse(text: string, type: IRtDatePicker.Type, layout: IRtDatePicker.TextLayout): string | null;
|
|
373
|
+
export {};
|
|
@@ -146,6 +146,8 @@ export declare class RtMessageComposerComponent {
|
|
|
146
146
|
focus(): void;
|
|
147
147
|
/** Заменяет черновик и ставит курсор в конец; выбранные файлы остаются. */
|
|
148
148
|
setDraft(text: string): void;
|
|
149
|
+
/** Текст поля без разметки: форматирование читается как обычный текст, файлы сюда не входят. */
|
|
150
|
+
draftText(): string;
|
|
149
151
|
protected onKeydown(event: KeyboardEvent): void;
|
|
150
152
|
protected stop(): void;
|
|
151
153
|
protected openPicker(): void;
|
|
@@ -291,6 +293,13 @@ export declare namespace IRtChat {
|
|
|
291
293
|
delta?: IQuillDelta | null;
|
|
292
294
|
/** ISO-дата создания. */
|
|
293
295
|
createdAt: string;
|
|
296
|
+
/** Готовая подпись вместо времени `createdAt`. Подписи дней считаются от `createdAt` и так. */
|
|
297
|
+
dateLabel?: string;
|
|
298
|
+
/**
|
|
299
|
+
* Значок на месте значка статуса, размером как он. Статусы «не ушло» и «не доставлено»
|
|
300
|
+
* сильнее: их значок предупреждает об ошибке.
|
|
301
|
+
*/
|
|
302
|
+
dateIcon?: IRtIcon.Name;
|
|
294
303
|
/** URL вложения (если есть) — наличие включает карточку файла. */
|
|
295
304
|
fileUrl?: string | null;
|
|
296
305
|
/** Имя вложения для отображения в карточке. */
|
|
@@ -534,6 +543,10 @@ export declare class RtChatComponent {
|
|
|
534
543
|
* текст. Выбранные файлы остаются, сигнала набора нет, закрытое поле не меняется.
|
|
535
544
|
*/
|
|
536
545
|
setDraft(text: string): void;
|
|
546
|
+
/** Текст поля ответа в виде, который сейчас на экране. Файлы сюда не входят, поля нет — пустая строка. */
|
|
547
|
+
draftText(): string;
|
|
548
|
+
/** Файлы, выбранные к черновику. Вложений нет или нет поля — пустой список. */
|
|
549
|
+
draftFiles(): readonly File[];
|
|
537
550
|
protected onSubmit(): void;
|
|
538
551
|
protected onComposerKeydown(event: KeyboardEvent): void;
|
|
539
552
|
/** Релей submit'а от `rt-message-composer` (rich-режим) наружу как `send`. */
|
|
@@ -677,7 +690,7 @@ export declare class RtChatComponent {
|
|
|
677
690
|
"expandedChange": "expandedChange";
|
|
678
691
|
"deleteMessage": "deleteMessage";
|
|
679
692
|
"retryMessage": "retryMessage";
|
|
680
|
-
}, ["messageActions", "messageButtons"], ["[rtChatHeaderActions]", "[rtChatComposerTools]", "[rtChatFooter]"], true, never>;
|
|
693
|
+
}, ["messageActions", "messageButtons"], ["[rtChatHeaderActions]", "[rtChatComposerBar]", "[rtChatComposerTools]", "[rtChatFooter]"], true, never>;
|
|
681
694
|
}
|
|
682
695
|
/**
|
|
683
696
|
* Есть ли у реплики хотя бы одно доступное действие потребителя.
|