@rt-tools/ui-kit-v2 0.23.3 → 0.24.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-accordion.mjs +142 -71
- package/fesm2022/rt-tools-ui-kit-v2-accordion.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-action-bar.mjs +467 -231
- package/fesm2022/rt-tools-ui-kit-v2-action-bar.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-ai-run-status.mjs +260 -91
- package/fesm2022/rt-tools-ui-kit-v2-ai-run-status.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-aside-section.mjs +80 -46
- package/fesm2022/rt-tools-ui-kit-v2-aside-section.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-aside.mjs +984 -697
- package/fesm2022/rt-tools-ui-kit-v2-aside.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-autocomplete.mjs +452 -210
- package/fesm2022/rt-tools-ui-kit-v2-autocomplete.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-bar-list.mjs +143 -52
- package/fesm2022/rt-tools-ui-kit-v2-bar-list.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-bottom-sheet.mjs +158 -83
- package/fesm2022/rt-tools-ui-kit-v2-bottom-sheet.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-breadcrumbs.mjs +335 -0
- package/fesm2022/rt-tools-ui-kit-v2-breadcrumbs.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-button.mjs +437 -363
- package/fesm2022/rt-tools-ui-kit-v2-button.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-calendar.mjs +430 -149
- package/fesm2022/rt-tools-ui-kit-v2-calendar.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-card.mjs +155 -71
- package/fesm2022/rt-tools-ui-kit-v2-card.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-carousel.mjs +155 -0
- package/fesm2022/rt-tools-ui-kit-v2-carousel.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-checkbox.mjs +215 -110
- package/fesm2022/rt-tools-ui-kit-v2-checkbox.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-collapsible-text.mjs +158 -75
- package/fesm2022/rt-tools-ui-kit-v2-collapsible-text.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-color-palette.mjs +769 -0
- package/fesm2022/rt-tools-ui-kit-v2-color-palette.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-confirm-popover.mjs +462 -253
- package/fesm2022/rt-tools-ui-kit-v2-confirm-popover.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-container.mjs +1276 -1316
- package/fesm2022/rt-tools-ui-kit-v2-container.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-copy-value.mjs +185 -80
- package/fesm2022/rt-tools-ui-kit-v2-copy-value.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-core.mjs +2321 -2619
- package/fesm2022/rt-tools-ui-kit-v2-core.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-counter-row.mjs +100 -44
- package/fesm2022/rt-tools-ui-kit-v2-counter-row.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-counter.mjs +290 -155
- package/fesm2022/rt-tools-ui-kit-v2-counter.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-data-list.mjs +2097 -858
- package/fesm2022/rt-tools-ui-kit-v2-data-list.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-data-table.mjs +2247 -1176
- package/fesm2022/rt-tools-ui-kit-v2-data-table.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-date-picker.mjs +1043 -705
- package/fesm2022/rt-tools-ui-kit-v2-date-picker.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-date-range.mjs +810 -525
- package/fesm2022/rt-tools-ui-kit-v2-date-range.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-delta-view.mjs +158 -138
- package/fesm2022/rt-tools-ui-kit-v2-delta-view.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-detail-list.mjs +177 -67
- package/fesm2022/rt-tools-ui-kit-v2-detail-list.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-dialog.mjs +550 -477
- package/fesm2022/rt-tools-ui-kit-v2-dialog.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-dot-field.mjs +185 -168
- package/fesm2022/rt-tools-ui-kit-v2-dot-field.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-download-link.mjs +116 -43
- package/fesm2022/rt-tools-ui-kit-v2-download-link.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-draggable-tree.mjs +585 -0
- package/fesm2022/rt-tools-ui-kit-v2-draggable-tree.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-dynamic-list.mjs +755 -259
- package/fesm2022/rt-tools-ui-kit-v2-dynamic-list.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-dynamic-selector.mjs +3266 -1115
- package/fesm2022/rt-tools-ui-kit-v2-dynamic-selector.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-empty-state.mjs +190 -55
- package/fesm2022/rt-tools-ui-kit-v2-empty-state.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-expansion-panel.mjs +283 -103
- package/fesm2022/rt-tools-ui-kit-v2-expansion-panel.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-field.mjs +393 -177
- package/fesm2022/rt-tools-ui-kit-v2-field.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-file-card.mjs +399 -207
- package/fesm2022/rt-tools-ui-kit-v2-file-card.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-file-drop.mjs +288 -212
- package/fesm2022/rt-tools-ui-kit-v2-file-drop.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-file-input.mjs +262 -116
- package/fesm2022/rt-tools-ui-kit-v2-file-input.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-file-list.mjs +57 -31
- package/fesm2022/rt-tools-ui-kit-v2-file-list.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-filter-control.mjs +258 -90
- package/fesm2022/rt-tools-ui-kit-v2-filter-control.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-form-control.mjs +249 -215
- package/fesm2022/rt-tools-ui-kit-v2-form-control.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-header.mjs +199 -71
- package/fesm2022/rt-tools-ui-kit-v2-header.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-hybrid-tree-selector.mjs +231 -0
- package/fesm2022/rt-tools-ui-kit-v2-hybrid-tree-selector.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-hybrid-tree.mjs +336 -0
- package/fesm2022/rt-tools-ui-kit-v2-hybrid-tree.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-icon-button.mjs +451 -162
- package/fesm2022/rt-tools-ui-kit-v2-icon-button.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-icon.mjs +931 -686
- package/fesm2022/rt-tools-ui-kit-v2-icon.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-image-cropper.mjs +664 -491
- package/fesm2022/rt-tools-ui-kit-v2-image-cropper.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-image-upload.mjs +574 -222
- package/fesm2022/rt-tools-ui-kit-v2-image-upload.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-info-item.mjs +150 -36
- package/fesm2022/rt-tools-ui-kit-v2-info-item.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-inline-edit.mjs +606 -0
- package/fesm2022/rt-tools-ui-kit-v2-inline-edit.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-input-number.mjs +461 -355
- package/fesm2022/rt-tools-ui-kit-v2-input-number.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-input.mjs +338 -143
- package/fesm2022/rt-tools-ui-kit-v2-input.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-live-badge.mjs +135 -48
- package/fesm2022/rt-tools-ui-kit-v2-live-badge.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-logo.mjs +166 -92
- package/fesm2022/rt-tools-ui-kit-v2-logo.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-markdown-text.mjs +118 -56
- package/fesm2022/rt-tools-ui-kit-v2-markdown-text.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-menu.mjs +1054 -527
- package/fesm2022/rt-tools-ui-kit-v2-menu.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-message.mjs +230 -104
- package/fesm2022/rt-tools-ui-kit-v2-message.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-money-list.mjs +210 -70
- package/fesm2022/rt-tools-ui-kit-v2-money-list.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-multiselect.mjs +532 -311
- package/fesm2022/rt-tools-ui-kit-v2-multiselect.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-night-grid.mjs +125 -50
- package/fesm2022/rt-tools-ui-kit-v2-night-grid.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-note.mjs +73 -43
- package/fesm2022/rt-tools-ui-kit-v2-note.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-notifications-bell.mjs +161 -53
- package/fesm2022/rt-tools-ui-kit-v2-notifications-bell.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-page-header.mjs +491 -310
- package/fesm2022/rt-tools-ui-kit-v2-page-header.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-pagination.mjs +374 -174
- package/fesm2022/rt-tools-ui-kit-v2-pagination.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-photo-viewer.mjs +202 -159
- package/fesm2022/rt-tools-ui-kit-v2-photo-viewer.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-popover.mjs +438 -309
- package/fesm2022/rt-tools-ui-kit-v2-popover.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-profile-menu.mjs +295 -0
- package/fesm2022/rt-tools-ui-kit-v2-profile-menu.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-prompt-suggestion.mjs +135 -45
- package/fesm2022/rt-tools-ui-kit-v2-prompt-suggestion.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-radio-button.mjs +293 -171
- package/fesm2022/rt-tools-ui-kit-v2-radio-button.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-radius.mjs +62 -55
- package/fesm2022/rt-tools-ui-kit-v2-radius.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-rich-editor.mjs +3379 -1466
- package/fesm2022/rt-tools-ui-kit-v2-rich-editor.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-ripple.mjs +114 -116
- package/fesm2022/rt-tools-ui-kit-v2-ripple.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-scroll-area.mjs +406 -299
- package/fesm2022/rt-tools-ui-kit-v2-scroll-area.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-section-nav.mjs +137 -36
- package/fesm2022/rt-tools-ui-kit-v2-section-nav.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-select.mjs +687 -468
- package/fesm2022/rt-tools-ui-kit-v2-select.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-side-menu.mjs +2195 -1569
- package/fesm2022/rt-tools-ui-kit-v2-side-menu.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-skeleton-wrapper.mjs +187 -48
- package/fesm2022/rt-tools-ui-kit-v2-skeleton-wrapper.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-skeleton.mjs +242 -122
- package/fesm2022/rt-tools-ui-kit-v2-skeleton.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-speed-menu.mjs +439 -0
- package/fesm2022/rt-tools-ui-kit-v2-speed-menu.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-spinner.mjs +218 -69
- package/fesm2022/rt-tools-ui-kit-v2-spinner.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-split-button.mjs +292 -91
- package/fesm2022/rt-tools-ui-kit-v2-split-button.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-stat-tile.mjs +225 -138
- package/fesm2022/rt-tools-ui-kit-v2-stat-tile.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-stepper.mjs +150 -116
- package/fesm2022/rt-tools-ui-kit-v2-stepper.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-table.mjs +2462 -1583
- package/fesm2022/rt-tools-ui-kit-v2-table.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-tabs.mjs +647 -346
- package/fesm2022/rt-tools-ui-kit-v2-tabs.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-tag.mjs +335 -121
- package/fesm2022/rt-tools-ui-kit-v2-tag.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-textarea.mjs +217 -84
- package/fesm2022/rt-tools-ui-kit-v2-textarea.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-theme-toggle.mjs +151 -72
- package/fesm2022/rt-tools-ui-kit-v2-theme-toggle.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-thread-list.mjs +697 -226
- package/fesm2022/rt-tools-ui-kit-v2-thread-list.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-timeline.mjs +92 -38
- package/fesm2022/rt-tools-ui-kit-v2-timeline.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-toast.mjs +752 -338
- package/fesm2022/rt-tools-ui-kit-v2-toast.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-toggle-button-group.mjs +310 -129
- package/fesm2022/rt-tools-ui-kit-v2-toggle-button-group.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-toggle-switch.mjs +286 -158
- package/fesm2022/rt-tools-ui-kit-v2-toggle-switch.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-toolbar.mjs +270 -134
- package/fesm2022/rt-tools-ui-kit-v2-toolbar.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-tooltip.mjs +322 -202
- package/fesm2022/rt-tools-ui-kit-v2-tooltip.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-tree-selector.mjs +908 -0
- package/fesm2022/rt-tools-ui-kit-v2-tree-selector.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-tree.mjs +785 -0
- package/fesm2022/rt-tools-ui-kit-v2-tree.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-welcome-dialog.mjs +118 -63
- package/fesm2022/rt-tools-ui-kit-v2-welcome-dialog.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-workspace-details.mjs +783 -262
- package/fesm2022/rt-tools-ui-kit-v2-workspace-details.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-workspace.mjs +633 -294
- package/fesm2022/rt-tools-ui-kit-v2-workspace.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2.mjs +100 -103
- package/package.json +45 -1
- package/src/assets/icons/collapse-all.svg +9 -0
- package/src/assets/icons/expand-all.svg +9 -0
- package/src/assets/icons-material/collapse-all.fill.svg +5 -0
- package/src/assets/icons-material/collapse-all.svg +5 -0
- package/src/assets/icons-material/expand-all.fill.svg +5 -0
- package/src/assets/icons-material/expand-all.svg +5 -0
- package/src/assets/icons-material/undo.fill.svg +5 -0
- package/src/assets/icons-material/undo.svg +5 -0
- package/src/lib/components/bottom-sheet/CONTEXT.md +20 -2
- package/src/lib/components/bottom-sheet/rt-bottom-sheet.component.scss +36 -1
- package/src/lib/components/breadcrumbs/CONTEXT.md +37 -0
- package/src/lib/components/breadcrumbs/rt-breadcrumbs.component.scss +205 -0
- package/src/lib/components/carousel/CONTEXT.md +42 -0
- package/src/lib/components/carousel/rt-carousel.component.scss +117 -0
- package/src/lib/components/checkbox/CONTEXT.md +3 -0
- package/src/lib/components/checkbox/rt-checkbox.component.scss +9 -3
- package/src/lib/components/color-palette/CONTEXT.md +49 -0
- package/src/lib/components/color-palette/picker/rt-color-picker.component.scss +161 -0
- package/src/lib/components/color-palette/rt-color-palette.component.scss +132 -0
- package/src/lib/components/draggable-tree/CONTEXT.md +54 -0
- package/src/lib/components/draggable-tree/rt-draggable-tree.component.scss +219 -0
- package/src/lib/components/hybrid-tree/CONTEXT.md +31 -0
- package/src/lib/components/hybrid-tree-selector/CONTEXT.md +25 -0
- package/src/lib/components/icon-button/CONTEXT.md +3 -0
- package/src/lib/components/inline-edit/CONTEXT.md +41 -0
- package/src/lib/components/inline-edit/rt-inline-edit.component.scss +274 -0
- package/src/lib/components/popover/CONTEXT.md +3 -0
- package/src/lib/components/profile-menu/CONTEXT.md +32 -0
- package/src/lib/components/profile-menu/rt-profile-menu.component.scss +104 -0
- package/src/lib/components/speed-menu/CONTEXT.md +34 -0
- package/src/lib/components/speed-menu/rt-speed-menu.component.scss +118 -0
- package/src/lib/components/tag/rt-tag.component.scss +12 -0
- package/src/lib/components/thread-list/CONTEXT.md +1 -0
- package/src/lib/components/thread-list/rt-thread-list.component.scss +2 -1
- package/src/lib/components/toolbar/CONTEXT.md +9 -4
- package/src/lib/components/toolbar/rt-toolbar.component.scss +10 -2
- package/src/lib/components/tooltip/CONTEXT.md +8 -1
- package/src/lib/components/tree/CONTEXT.md +66 -0
- package/src/lib/components/tree/rt-tree.component.scss +313 -0
- package/src/lib/components/tree-selector/CONTEXT.md +47 -0
- package/src/lib/components/tree-selector/rt-tree-selector.component.scss +121 -0
- package/src/styles/_primitives.scss +4 -0
- package/src/styles/_semantic.scss +5 -0
- package/styles/tokens.css +43 -0
- package/types/rt-tools-ui-kit-v2-accordion.d.ts +31 -24
- package/types/rt-tools-ui-kit-v2-action-bar.d.ts +112 -91
- package/types/rt-tools-ui-kit-v2-ai-run-status.d.ts +64 -40
- package/types/rt-tools-ui-kit-v2-aside-section.d.ts +13 -10
- package/types/rt-tools-ui-kit-v2-aside.d.ts +268 -206
- package/types/rt-tools-ui-kit-v2-autocomplete.d.ts +102 -61
- package/types/rt-tools-ui-kit-v2-bar-list.d.ts +39 -27
- package/types/rt-tools-ui-kit-v2-bottom-sheet.d.ts +31 -20
- package/types/rt-tools-ui-kit-v2-breadcrumbs.d.ts +89 -0
- package/types/rt-tools-ui-kit-v2-button.d.ts +119 -59
- package/types/rt-tools-ui-kit-v2-calendar.d.ts +151 -86
- package/types/rt-tools-ui-kit-v2-card.d.ts +42 -21
- package/types/rt-tools-ui-kit-v2-carousel.d.ts +76 -0
- package/types/rt-tools-ui-kit-v2-checkbox.d.ts +48 -24
- package/types/rt-tools-ui-kit-v2-collapsible-text.d.ts +28 -20
- package/types/rt-tools-ui-kit-v2-color-palette.d.ts +208 -0
- package/types/rt-tools-ui-kit-v2-confirm-popover.d.ts +104 -47
- package/types/rt-tools-ui-kit-v2-container.d.ts +278 -221
- package/types/rt-tools-ui-kit-v2-copy-value.d.ts +39 -24
- package/types/rt-tools-ui-kit-v2-core.d.ts +862 -865
- package/types/rt-tools-ui-kit-v2-counter-row.d.ts +20 -12
- package/types/rt-tools-ui-kit-v2-counter.d.ts +70 -38
- package/types/rt-tools-ui-kit-v2-data-list.d.ts +429 -264
- package/types/rt-tools-ui-kit-v2-data-table.d.ts +500 -351
- package/types/rt-tools-ui-kit-v2-date-picker.d.ts +164 -138
- package/types/rt-tools-ui-kit-v2-date-range.d.ts +102 -84
- package/types/rt-tools-ui-kit-v2-delta-view.d.ts +16 -13
- package/types/rt-tools-ui-kit-v2-detail-list.d.ts +23 -16
- package/types/rt-tools-ui-kit-v2-dialog.d.ts +130 -101
- package/types/rt-tools-ui-kit-v2-dot-field.d.ts +10 -13
- package/types/rt-tools-ui-kit-v2-download-link.d.ts +22 -17
- package/types/rt-tools-ui-kit-v2-draggable-tree.d.ts +132 -0
- package/types/rt-tools-ui-kit-v2-dynamic-list.d.ts +185 -96
- package/types/rt-tools-ui-kit-v2-dynamic-selector.d.ts +904 -404
- package/types/rt-tools-ui-kit-v2-empty-state.d.ts +48 -19
- package/types/rt-tools-ui-kit-v2-expansion-panel.d.ts +67 -39
- package/types/rt-tools-ui-kit-v2-field.d.ts +90 -49
- package/types/rt-tools-ui-kit-v2-file-card.d.ts +115 -75
- package/types/rt-tools-ui-kit-v2-file-drop.d.ts +75 -48
- package/types/rt-tools-ui-kit-v2-file-input.d.ts +53 -36
- package/types/rt-tools-ui-kit-v2-file-list.d.ts +5 -8
- package/types/rt-tools-ui-kit-v2-filter-control.d.ts +83 -49
- package/types/rt-tools-ui-kit-v2-form-control.d.ts +102 -74
- package/types/rt-tools-ui-kit-v2-header.d.ts +40 -22
- package/types/rt-tools-ui-kit-v2-hybrid-tree-selector.d.ts +14 -0
- package/types/rt-tools-ui-kit-v2-hybrid-tree.d.ts +72 -0
- package/types/rt-tools-ui-kit-v2-icon-button.d.ts +190 -90
- package/types/rt-tools-ui-kit-v2-icon.d.ts +160 -129
- package/types/rt-tools-ui-kit-v2-image-cropper.d.ts +151 -111
- package/types/rt-tools-ui-kit-v2-image-upload.d.ts +159 -85
- package/types/rt-tools-ui-kit-v2-info-item.d.ts +26 -13
- package/types/rt-tools-ui-kit-v2-inline-edit.d.ts +194 -0
- package/types/rt-tools-ui-kit-v2-input-number.d.ts +102 -53
- package/types/rt-tools-ui-kit-v2-input.d.ts +82 -43
- package/types/rt-tools-ui-kit-v2-live-badge.d.ts +30 -17
- package/types/rt-tools-ui-kit-v2-logo.d.ts +49 -32
- package/types/rt-tools-ui-kit-v2-markdown-text.d.ts +26 -17
- package/types/rt-tools-ui-kit-v2-menu.d.ts +272 -155
- package/types/rt-tools-ui-kit-v2-message.d.ts +59 -33
- package/types/rt-tools-ui-kit-v2-money-list.d.ts +36 -18
- package/types/rt-tools-ui-kit-v2-multiselect.d.ts +114 -80
- package/types/rt-tools-ui-kit-v2-night-grid.d.ts +34 -25
- package/types/rt-tools-ui-kit-v2-note.d.ts +12 -9
- package/types/rt-tools-ui-kit-v2-notifications-bell.d.ts +37 -16
- package/types/rt-tools-ui-kit-v2-page-header.d.ts +218 -150
- package/types/rt-tools-ui-kit-v2-pagination.d.ts +99 -63
- package/types/rt-tools-ui-kit-v2-photo-viewer.d.ts +61 -66
- package/types/rt-tools-ui-kit-v2-popover.d.ts +116 -55
- package/types/rt-tools-ui-kit-v2-profile-menu.d.ts +103 -0
- package/types/rt-tools-ui-kit-v2-prompt-suggestion.d.ts +26 -16
- package/types/rt-tools-ui-kit-v2-radio-button.d.ts +85 -43
- package/types/rt-tools-ui-kit-v2-radius.d.ts +18 -15
- package/types/rt-tools-ui-kit-v2-rich-editor.d.ts +931 -590
- package/types/rt-tools-ui-kit-v2-ripple.d.ts +28 -25
- package/types/rt-tools-ui-kit-v2-scroll-area.d.ts +60 -58
- package/types/rt-tools-ui-kit-v2-section-nav.d.ts +32 -22
- package/types/rt-tools-ui-kit-v2-select.d.ts +182 -139
- package/types/rt-tools-ui-kit-v2-side-menu.d.ts +452 -349
- package/types/rt-tools-ui-kit-v2-skeleton-wrapper.d.ts +53 -20
- package/types/rt-tools-ui-kit-v2-skeleton.d.ts +55 -26
- package/types/rt-tools-ui-kit-v2-speed-menu.d.ts +131 -0
- package/types/rt-tools-ui-kit-v2-spinner.d.ts +56 -28
- package/types/rt-tools-ui-kit-v2-split-button.d.ts +96 -55
- package/types/rt-tools-ui-kit-v2-stat-tile.d.ts +88 -60
- package/types/rt-tools-ui-kit-v2-stepper.d.ts +50 -37
- package/types/rt-tools-ui-kit-v2-table.d.ts +631 -480
- package/types/rt-tools-ui-kit-v2-tabs.d.ts +198 -113
- package/types/rt-tools-ui-kit-v2-tag.d.ts +106 -53
- package/types/rt-tools-ui-kit-v2-textarea.d.ts +48 -25
- package/types/rt-tools-ui-kit-v2-theme-toggle.d.ts +28 -26
- package/types/rt-tools-ui-kit-v2-thread-list.d.ts +154 -94
- package/types/rt-tools-ui-kit-v2-timeline.d.ts +30 -28
- package/types/rt-tools-ui-kit-v2-toast.d.ts +174 -98
- package/types/rt-tools-ui-kit-v2-toggle-button-group.d.ts +132 -86
- package/types/rt-tools-ui-kit-v2-toggle-switch.d.ts +88 -50
- package/types/rt-tools-ui-kit-v2-toolbar.d.ts +30 -27
- package/types/rt-tools-ui-kit-v2-tooltip.d.ts +65 -41
- package/types/rt-tools-ui-kit-v2-tree-selector.d.ts +257 -0
- package/types/rt-tools-ui-kit-v2-tree.d.ts +282 -0
- package/types/rt-tools-ui-kit-v2-welcome-dialog.d.ts +21 -24
- package/types/rt-tools-ui-kit-v2-workspace-details.d.ts +195 -124
- package/types/rt-tools-ui-kit-v2-workspace.d.ts +122 -79
- package/types/rt-tools-ui-kit-v2.d.ts +100 -90
- package/fesm2022/rt-tools-ui-kit-v2.mjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rt-tools-ui-kit-v2-tree.mjs","names":[],"sources":["../../../projects/ui-kit-v2/src/lib/components/tree/rt-tree.directives.ts","../../../projects/ui-kit-v2/src/lib/components/tree/rt-tree.logic.ts","../../../projects/ui-kit-v2/src/lib/components/tree/rt-tree.component.ts","../../../projects/ui-kit-v2/src/lib/components/tree/rt-tree.component.html"],"sourcesContent":["import { inject, Directive, TemplateRef } from '@angular/core';\n\nimport { IRtTree } from './rt-tree.model';\n\n/**\n * Разметка приложения в конце каждой строки `rt-tree`. Узел строки приходит в контексте как\n * `$implicit`: дерево не заводит вход под каждый такой элемент.\n */\n@Directive({ selector: 'ng-template[rtTreeNodeEnd]' })\nexport class RtTreeNodeEndDirective<TValue> {\n public readonly templateRef: TemplateRef<IRtTree.NodeContext<TValue>> = inject<TemplateRef<IRtTree.NodeContext<TValue>>>(TemplateRef);\n}\n\n/**\n * Разметка приложения под подписью строки, в одной линии с метками узла. Узел строки приходит в\n * контексте как `$implicit`.\n */\n@Directive({ selector: 'ng-template[rtTreeNodeMeta]' })\nexport class RtTreeNodeMetaDirective<TValue> {\n public readonly templateRef: TemplateRef<IRtTree.NodeContext<TValue>> = inject<TemplateRef<IRtTree.NodeContext<TValue>>>(TemplateRef);\n}\n","import { rtTreeBranchState, rtTreeLeaves } from '@rt-tools/ui-kit-v2/select';\nimport { splitTitleByWords } from '@rt-tools/ui-kit-v2/side-menu';\nimport { IRtSideMenu } from '@rt-tools/ui-kit-v2/side-menu';\nimport { IRtTree } from './rt-tree.model';\n\n/**\n * Расчёт выбора `rt-tree` — чистые функции над неизменяемыми узлами.\n *\n * Строки, листья и отметки ветвей считает модуль дерева выбора из списка: здесь только то, чего у\n * выбора из списка нет — режим отметок, выключенный каскад и «выбрать всё». Узлы не меняются\n * никогда: каждая функция отвечает новым массивом выбора.\n */\n\ntype TNode<TValue> = IRtTree.Node<TValue>;\n\nfunction isBranch<TValue>(node: TNode<TValue>): boolean {\n return (node.children ?? []).length > 0;\n}\n\nfunction without<TValue>(value: ReadonlyArray<TValue>, drop: ReadonlyArray<TValue>): ReadonlyArray<TValue> {\n return value.filter((item: TValue): boolean => !drop.includes(item));\n}\n\nfunction withAll<TValue>(value: ReadonlyArray<TValue>, add: ReadonlyArray<TValue>): ReadonlyArray<TValue> {\n return [...value, ...add.filter((item: TValue): boolean => !value.includes(item))];\n}\n\n/**\n * Отметка строки. В каскаде ветка отмечена по своим листьям; без каскада и у листа — по тому,\n * лежит ли в выборе сам узел.\n */\nexport function rtTreeMark<TValue>(node: TNode<TValue>, value: ReadonlyArray<TValue>, cascade: boolean): IRtTree.Mark {\n if (cascade && isBranch(node)) {\n return rtTreeBranchState(node, value);\n }\n return value.includes(node.value) ? 'all' : 'none';\n}\n\n/**\n * Выбор после клика по узлу. Выключенный узел выбор не меняет. Одиночный режим держит один узел и\n * не снимает его повторным кликом. В каскаде ветка добавляет свои включённые листья или снимает\n * их, когда выбраны все; выключенные листья остаются как были.\n */\nexport function rtTreeChoose<TValue>(\n node: TNode<TValue>,\n value: ReadonlyArray<TValue>,\n mode: IRtTree.Mode,\n cascade: boolean\n): ReadonlyArray<TValue> {\n if (node.disabled || mode === 'none') {\n return value;\n }\n if (mode === 'single') {\n return [node.value];\n }\n if (cascade && isBranch(node)) {\n const leaves: ReadonlyArray<TValue> = rtTreeLeaves(node);\n return rtTreeBranchState(node, value) === 'all' ? without(value, leaves) : withAll(value, leaves);\n }\n return value.includes(node.value) ? without(value, [node.value]) : withAll(value, [node.value]);\n}\n\n/**\n * Включённые листья видимых строк. Раскрытая ветка отдаёт листья своими строками ниже, свёрнутая —\n * всеми листьями под собой: они видимы через неё.\n */\nexport function rtTreeVisibleLeaves<TValue>(rows: ReadonlyArray<IRtTree.Row<TValue>>): ReadonlyArray<TValue> {\n return rows.flatMap((row: IRtTree.Row<TValue>): ReadonlyArray<TValue> => (row.branch && row.open ? [] : rtTreeLeaves(row.option)));\n}\n\n/** Отметка «выбрать всё» по включённым листьям видимых строк. */\nexport function rtTreeSelectAllMark<TValue>(rows: ReadonlyArray<IRtTree.Row<TValue>>, value: ReadonlyArray<TValue>): IRtTree.Mark {\n const leaves: ReadonlyArray<TValue> = rtTreeVisibleLeaves(rows);\n const count: number = leaves.filter((leaf: TValue): boolean => value.includes(leaf)).length;\n if (count === 0) {\n return 'none';\n }\n return count === leaves.length ? 'all' : 'some';\n}\n\n/**\n * Выбор после клика по «выбрать всё»: включённые листья видимых строк добавляются, а когда выбраны\n * все — снимаются. Выключенные листья `rtTreeLeaves` не отдаёт, поэтому их состояние не меняется.\n */\nexport function rtTreeSelectAll<TValue>(rows: ReadonlyArray<IRtTree.Row<TValue>>, value: ReadonlyArray<TValue>): ReadonlyArray<TValue> {\n const leaves: ReadonlyArray<TValue> = rtTreeVisibleLeaves(rows);\n return rtTreeSelectAllMark(rows, value) === 'all' ? without(value, leaves) : withAll(value, leaves);\n}\n\n/**\n * Подпись, описание и метки узла, разрезанные по каждому слову запроса тем же резом, что у поиска\n * меню: приложение делит поиск по пробелам, и найденное слово видно там, где оно нашлось.\n */\nexport function rtTreeLabelParts<TValue>(node: TNode<TValue>, term: string): IRtTree.LabelParts {\n return {\n label: splitTitleByWords(node.label, term),\n description: splitTitleByWords(node.description ?? '', term),\n badges: (node.badges ?? []).map((badge: IRtTree.Badge): ReadonlyArray<IRtSideMenu.TitlePart> =>\n splitTitleByWords(badge.text, term)\n ),\n };\n}\n\n/** Значения узла и всех его потомков. */\nfunction covered<TValue>(node: TNode<TValue>): ReadonlyArray<TValue> {\n return [node.value, ...(node.children ?? []).flatMap((child: TNode<TValue>): ReadonlyArray<TValue> => covered(child))];\n}\n\n/** Значения выключенных узлов дерева: их состояние не меняет ни одно действие. */\nfunction disabledValues<TValue>(nodes: ReadonlyArray<TNode<TValue>>): ReadonlyArray<TValue> {\n return nodes.flatMap((node: TNode<TValue>): ReadonlyArray<TValue> => [\n ...(node.disabled ? [node.value] : []),\n ...disabledValues(node.children ?? []),\n ]);\n}\n\n/** Что остаётся от выбора перед кликом без Ctrl и Cmd: то, что покрывает сам узел, и выключенные узлы. */\nexport function rtTreeAloneBase<TValue>(\n nodes: ReadonlyArray<TNode<TValue>>,\n node: TNode<TValue>,\n value: ReadonlyArray<TValue>\n): ReadonlyArray<TValue> {\n const keep: ReadonlyArray<TValue> = [...covered(node), ...disabledValues(nodes)];\n return value.filter((item: TValue): boolean => keep.includes(item));\n}\n\n/**\n * Выбор после клика без Ctrl и Cmd в режиме, где клик выбирает один узел. Из выбора остаётся только\n * то, что покрывает сам узел, и выключенные узлы; дальше клик работает как обычно — поэтому\n * повторный клик по единственному выбранному снимает его.\n */\nexport function rtTreeChooseAlone<TValue>(\n nodes: ReadonlyArray<TNode<TValue>>,\n node: TNode<TValue>,\n value: ReadonlyArray<TValue>,\n cascade: boolean\n): ReadonlyArray<TValue> {\n if (node.disabled) {\n return value;\n }\n return rtTreeChoose(node, rtTreeAloneBase(nodes, node, value), 'multiple', cascade);\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n booleanAttribute,\n computed,\n contentChild,\n inject,\n input,\n model,\n output,\n signal,\n ChangeDetectionStrategy,\n Component,\n InputSignal,\n InputSignalWithTransform,\n ModelSignal,\n OutputEmitterRef,\n Signal,\n TemplateRef,\n ViewEncapsulation,\n WritableSignal,\n} from '@angular/core';\n\nimport { FormsModule } from '@angular/forms';\n\nimport { BlockDirective, ElemDirective, ModDirective } from '@rt-tools/core';\n\nimport { IRtIcon, RT_KIT_LABELS, TRtKitLabelMap } from '@rt-tools/ui-kit-v2/core';\nimport { RtCheckboxComponent } from '@rt-tools/ui-kit-v2/checkbox';\nimport { RtIconComponent } from '@rt-tools/ui-kit-v2/icon';\nimport { RtRadioButtonComponent } from '@rt-tools/ui-kit-v2/radio-button';\nimport { RtTagComponent } from '@rt-tools/ui-kit-v2/tag';\nimport { RtTooltipDirective } from '@rt-tools/ui-kit-v2/tooltip';\nimport { rtTreeOpenFor, rtTreeRows, rtTreeSideKey, rtTreeToggle } from '@rt-tools/ui-kit-v2/select';\nimport { IRtSelect } from '@rt-tools/ui-kit-v2/select';\nimport { RtTreeNodeEndDirective, RtTreeNodeMetaDirective } from './rt-tree.directives';\nimport { rtTreeChoose, rtTreeChooseAlone, rtTreeLabelParts, rtTreeMark, rtTreeSelectAll, rtTreeSelectAllMark } from './rt-tree.logic';\nimport { IRtTree } from './rt-tree.model';\n\nconst BEM_BLOCK: string = 'rt-tree';\n\n/** Видимая строка с тем, что разметке нужно о ней знать. */\ninterface IRtTreeView<TValue> {\n readonly row: IRtTree.Row<TValue>;\n readonly mark: IRtTree.Mark;\n /** Рисуется ли у строки флажок или радио: у групп без отметок его нет. */\n readonly marked: boolean;\n /** Радио вместо флажка. */\n readonly radio: boolean;\n /** Строка выключена: свой `disabled` у узла или выключено всё дерево. */\n readonly disabled: boolean;\n /** Число выбранного под группой в конце строки; `null` — числа нет. */\n readonly count: number | null;\n readonly parts: IRtTree.LabelParts;\n readonly highlighted: boolean;\n}\n\n/**\n * Дерево выбора, стоящее на странице само по себе.\n *\n * Строки, листья, отметки ветвей, отбор по слову и боковые стрелки считает модуль дерева выбора\n * из списка — тот же, что у `rt-select` и `rt-multiselect`. Выбор живёт в `value`; узлы не\n * меняются. Раскрытые ветки и подсвеченная строка — состояние самого дерева.\n *\n * Клавиатура идёт через `handleKeydown`: его зовёт и само дерево с фокуса на себе, и приложение\n * со своего поля поиска. Ответ — взята ли клавиша: чужую дерево не трогает.\n */\n@Component({\n selector: 'rt-tree',\n templateUrl: './rt-tree.component.html',\n styleUrl: './rt-tree.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n NgTemplateOutlet,\n FormsModule,\n RtCheckboxComponent,\n RtIconComponent,\n RtRadioButtonComponent,\n RtTagComponent,\n RtTooltipDirective,\n BlockDirective,\n ElemDirective,\n ModDirective,\n ],\n host: {\n class: BEM_BLOCK,\n role: 'tree',\n '[attr.tabindex]': 'disabled() ? -1 : 0',\n '[attr.aria-disabled]': 'disabled() || null',\n '[attr.aria-label]': 'ariaLabel()',\n '[attr.aria-multiselectable]': \"mode() === 'multiple'\",\n '(keydown)': 'handleKeydown($event)',\n },\n})\nexport class RtTreeComponent<TValue> {\n readonly #open: WritableSignal<ReadonlySet<TValue> | null> = signal<ReadonlySet<TValue> | null>(null);\n readonly #highlighted: WritableSignal<TValue | null> = signal<TValue | null>(null);\n\n protected readonly t: Signal<TRtKitLabelMap> = inject(RT_KIT_LABELS);\n\n protected readonly nodeEnd: Signal<RtTreeNodeEndDirective<TValue> | undefined> = contentChild(RtTreeNodeEndDirective);\n\n protected readonly nodeMeta: Signal<RtTreeNodeMetaDirective<TValue> | undefined> = contentChild(RtTreeNodeMetaDirective);\n\n /** Разметка в конце строки: вход раньше директивы — обёртка вроде селектора отдаёт её входом. */\n protected readonly endTemplate: Signal<TemplateRef<IRtTree.NodeContext<TValue>> | null> = computed(\n (): TemplateRef<IRtTree.NodeContext<TValue>> | null => this.nodeEndTemplate() ?? this.nodeEnd()?.templateRef ?? null\n );\n\n /** Разметка под подписью: вход раньше директивы. */\n protected readonly metaTemplate: Signal<TemplateRef<IRtTree.NodeContext<TValue>> | null> = computed(\n (): TemplateRef<IRtTree.NodeContext<TValue>> | null => this.nodeMetaTemplate() ?? this.nodeMeta()?.templateRef ?? null\n );\n\n /** Раскрытые ветки: до первого действия человека — ветки над выбранным. */\n protected readonly openBranches: Signal<ReadonlySet<TValue>> = computed(\n (): ReadonlySet<TValue> => this.#open() ?? rtTreeOpenFor(this.nodes(), this.value())\n );\n\n protected readonly rows: Signal<ReadonlyArray<IRtTree.Row<TValue>>> = computed((): ReadonlyArray<IRtTree.Row<TValue>> =>\n rtTreeRows(this.nodes(), this.openBranches(), this.filter() ? this.searchTerm() : '')\n );\n\n protected readonly views: Signal<ReadonlyArray<IRtTreeView<TValue>>> = computed((): ReadonlyArray<IRtTreeView<TValue>> => {\n const value: ReadonlyArray<TValue> = this.value();\n const cascade: boolean = this.cascade();\n const term: string = this.searchTerm();\n const highlighted: TValue | null = this.#highlighted();\n const mode: IRtTree.Mode = this.mode();\n const branchMarks: boolean = this.branchMarks();\n const treeDisabled: boolean = this.disabled();\n return this.rows().map((row: IRtTree.Row<TValue>): IRtTreeView<TValue> => {\n const marked: boolean = mode !== 'none' && (branchMarks || !row.branch);\n const state: IRtTree.RowState = this.rowState(row, value, cascade);\n return {\n row,\n marked,\n mark: state.mark,\n radio: state.radio,\n disabled: treeDisabled || !!row.option.disabled,\n count: marked ? null : state.count,\n parts: rtTreeLabelParts(row.option, term),\n highlighted: row.option.value === highlighted,\n };\n });\n });\n\n protected readonly selectAllMark: Signal<IRtTree.Mark> = computed((): IRtTree.Mark => this.selectAllMarkOf(this.rows(), this.value()));\n\n protected readonly isSelectAllShown: Signal<boolean> = computed(\n (): boolean => this.showSelectAll() && this.cascade() && this.mode() === 'multiple' && this.rows().length > 0\n );\n\n /** Отметка «выбрать всё» встаёт над отметкой первой строки; у строки без отметки — над стрелкой. */\n protected readonly isSelectAllUnderMark: Signal<boolean> = computed((): boolean => this.views()[0]?.marked ?? false);\n\n /** Первая строка — лист: там, где у листа нет места под стрелку, его нет и у «выбрать всё». */\n protected readonly isSelectAllOverLeaf: Signal<boolean> = computed((): boolean => this.views()[0]?.row.branch === false);\n\n protected readonly emptyText: Signal<string> = computed((): string =>\n this.nodes().length > 0 ? this.t().uiNothingFound : this.t().uiNoOptions\n );\n\n public readonly nodes: InputSignal<ReadonlyArray<IRtTree.Node<TValue>>> = input.required<ReadonlyArray<IRtTree.Node<TValue>>>();\n public readonly value: ModelSignal<ReadonlyArray<TValue>> = model<ReadonlyArray<TValue>>([]);\n public readonly mode: InputSignal<IRtTree.Mode> = input<IRtTree.Mode>('multiple');\n public readonly cascade: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(true, { transform: booleanAttribute });\n public readonly searchTerm: InputSignal<string> = input<string>('');\n public readonly showSelectAll: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n transform: booleanAttribute,\n });\n public readonly ariaLabel: InputSignal<string | null> = input<string | null>(null);\n\n /** Отметки у групп. Без них клик, пробел и Enter по группе раскрывают и сворачивают её. */\n public readonly branchMarks: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(true, {\n transform: booleanAttribute,\n });\n\n /** Клик без Ctrl и Cmd выбирает узел один; с Ctrl или Cmd добавляет к выбору. Только для флажков. */\n public readonly exclusive: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n transform: booleanAttribute,\n });\n\n /** Скрывает ли слово поиска строки. Без отбора строки отбирает приложение, а слово только отмечено. */\n public readonly filter: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(true, {\n transform: booleanAttribute,\n });\n\n /** Выключенное дерево не меняет выбор ни кликом, ни клавишей, ни «выбрать всё»; ветки раскрываются стрелкой. */\n /** Значок кита над подписью пустого дерева. Без него пустое дерево — одна подпись. */\n public readonly emptyIcon: InputSignal<IRtIcon.Name | null> = input<IRtIcon.Name | null>(null);\n\n /**\n * Разметка в конце каждой строки, отданная входом. Нужна компоненту, который оборачивает дерево и\n * не может положить в него директиву `rtTreeNodeEnd`; вход сильнее директивы.\n */\n public readonly nodeEndTemplate: InputSignal<TemplateRef<IRtTree.NodeContext<TValue>> | null> = input<TemplateRef<\n IRtTree.NodeContext<TValue>\n > | null>(null);\n\n /** Разметка под подписью каждой строки, отданная входом; вход сильнее директивы `rtTreeNodeMeta`. */\n public readonly nodeMetaTemplate: InputSignal<TemplateRef<IRtTree.NodeContext<TValue>> | null> = input<TemplateRef<\n IRtTree.NodeContext<TValue>\n > | null>(null);\n\n public readonly disabled: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n transform: booleanAttribute,\n });\n\n public readonly picked: OutputEmitterRef<IRtTree.Node<TValue>> = output<IRtTree.Node<TValue>>();\n\n /**\n * Клавиша для дерева. Отвечает, взята ли она: не взятая идёт дальше нетронутой, поэтому\n * приложение может отдавать сюда каждую клавишу своего поля поиска.\n */\n public handleKeydown(event: KeyboardEvent): boolean {\n if (this.disabled()) {\n return false;\n }\n const taken: boolean = this.#takeKey(event.key, event.ctrlKey || event.metaKey);\n if (taken) {\n event.preventDefault();\n event.stopPropagation();\n }\n return taken;\n }\n\n public expandAll(): void {\n const all: Set<TValue> = new Set<TValue>();\n this.#collectBranches(this.nodes(), all);\n this.#open.set(all);\n }\n\n public collapseAll(): void {\n this.#open.set(new Set<TValue>());\n }\n\n public clearHighlight(): void {\n this.#highlighted.set(null);\n }\n\n protected onRowClick(row: IRtTree.Row<TValue>, event: MouseEvent): void {\n if (this.disabled()) {\n return;\n }\n this.#highlighted.set(row.option.value);\n if (row.option.disabled) {\n return;\n }\n if (this.#opensOnly(row)) {\n this.#toggleOrPick(row);\n return;\n }\n this.#choose(this.nextChoice(row.option, event.ctrlKey || event.metaKey));\n }\n\n protected onToggleClick(event: Event, value: TValue): void {\n event.stopPropagation();\n this.#toggle(value);\n }\n\n protected onSelectAll(): void {\n if (this.disabled()) {\n return;\n }\n this.#choose(this.selectAllChoice(this.rows(), this.value()));\n }\n\n /**\n * Отметка строки, её вид и число выбранного под ней. Дерево числа не рисует; наследник со своими\n * правилами выбора считает всё это по ним.\n */\n protected rowState(row: IRtTree.Row<TValue>, value: ReadonlyArray<TValue>, cascade: boolean): IRtTree.RowState {\n return { mark: rtTreeMark(row.option, value, cascade), radio: this.mode() === 'single', count: null };\n }\n\n protected selectAllMarkOf(rows: ReadonlyArray<IRtTree.Row<TValue>>, value: ReadonlyArray<TValue>): IRtTree.Mark {\n return rtTreeSelectAllMark(rows, value);\n }\n\n protected selectAllChoice(rows: ReadonlyArray<IRtTree.Row<TValue>>, value: ReadonlyArray<TValue>): ReadonlyArray<TValue> {\n return rtTreeSelectAll(rows, value);\n }\n\n /** Выбор после действия над узлом: в исключающем режиме без Ctrl и Cmd узел остаётся один. */\n protected nextChoice(node: IRtTree.Node<TValue>, additive: boolean): ReadonlyArray<TValue> {\n if (this.exclusive() && this.mode() === 'multiple' && !additive) {\n return rtTreeChooseAlone(this.nodes(), node, this.value(), this.cascade());\n }\n return rtTreeChoose(node, this.value(), this.mode(), this.cascade());\n }\n\n /** Строка, клик по которой ничего не отмечает: режим без отметок или группа без флажка. */\n #opensOnly(row: IRtTree.Row<TValue>): boolean {\n return this.mode() === 'none' || (row.branch && !this.branchMarks());\n }\n\n #toggleOrPick(row: IRtTree.Row<TValue>): void {\n if (row.branch) {\n this.#toggle(row.option.value);\n } else {\n this.picked.emit(row.option);\n }\n }\n\n #collectBranches(list: ReadonlyArray<IRtTree.Node<TValue>>, into: Set<TValue>): void {\n list.forEach((node: IRtTree.Node<TValue>): void => {\n if ((node.children ?? []).length > 0) {\n into.add(node.value);\n this.#collectBranches(node.children ?? [], into);\n }\n });\n }\n\n /**\n * Меняет выбор, не трогая раскрытие. Пока ветки никто не раскрывал руками, раскрытие считается из\n * выбора, и без этой фиксации отметка ветки сворачивала или раскрывала её саму.\n */\n #choose(next: ReadonlyArray<TValue>): void {\n this.#open.set(this.openBranches());\n this.value.set(next);\n }\n\n #toggle(value: TValue): void {\n this.#open.set(rtTreeToggle(this.openBranches(), value));\n }\n\n #highlightedIndex(): number {\n const highlighted: TValue | null = this.#highlighted();\n return this.rows().findIndex((row: IRtTree.Row<TValue>): boolean => row.option.value === highlighted);\n }\n\n #takeKey(key: string, additive: boolean): boolean {\n const rows: ReadonlyArray<IRtTree.Row<TValue>> = this.rows();\n const index: number = this.#highlightedIndex();\n if (key === 'ArrowDown' || key === 'ArrowUp') {\n return this.#move(rows, index, key === 'ArrowDown' ? 1 : -1);\n }\n if (index < 0) {\n return false;\n }\n if (key === 'ArrowRight' || key === 'ArrowLeft') {\n this.#side(rows, index, key);\n return true;\n }\n if (key === ' ') {\n this.#space(rows[index], additive);\n return true;\n }\n if (key === 'Enter') {\n this.#enter(rows[index], additive);\n return true;\n }\n return false;\n }\n\n #move(rows: ReadonlyArray<IRtTree.Row<TValue>>, index: number, step: number): boolean {\n if (rows.length === 0) {\n return false;\n }\n const next: number = index < 0 ? 0 : Math.min(rows.length - 1, Math.max(0, index + step));\n this.#highlighted.set(rows[next].option.value);\n return true;\n }\n\n #side(rows: ReadonlyArray<IRtTree.Row<TValue>>, index: number, key: string): void {\n const answer: IRtSelect.SideKeyAnswer<TValue> = rtTreeSideKey(rows, index, key);\n if (answer.toggle !== null) {\n this.#toggle(answer.toggle);\n }\n this.#highlighted.set(rows[answer.index].option.value);\n }\n\n #space(row: IRtTree.Row<TValue>, additive: boolean): void {\n if (this.#opensOnly(row) && row.branch) {\n this.#toggle(row.option.value);\n return;\n }\n if (!row.option.disabled && this.mode() !== 'none') {\n this.#choose(this.nextChoice(row.option, additive));\n }\n }\n\n #enter(row: IRtTree.Row<TValue>, additive: boolean): void {\n if (this.#opensOnly(row) && row.branch) {\n this.#toggle(row.option.value);\n return;\n }\n if (row.option.disabled) {\n return;\n }\n if (this.mode() !== 'none') {\n this.#choose(this.nextChoice(row.option, additive));\n }\n this.picked.emit(row.option);\n }\n}\n","<ng-container rtBlock=\"rt-tree\">\n <!--\n Строки выбираются мышью через (click); клавиатура — на самом дереве (handleKeydown), строки\n по отдельности фокус не берут: подсветка — третье состояние рядом с фокусом и выбором.\n -->\n <!-- eslint-disable @angular-eslint/template/click-events-have-key-events, @angular-eslint/template/interactive-supports-focus -->\n @if (isSelectAllShown()) {\n <div\n rtElem=\"select-all\"\n qa-dataid=\"tree-select-all\"\n role=\"presentation\"\n [rtMod]=\"{ disabled: disabled(), 'over-leaf': isSelectAllOverLeaf() }\"\n (click)=\"onSelectAll()\">\n @if (isSelectAllUnderMark()) {\n <span rtElem=\"toggle-space\"></span>\n }\n <rt-checkbox\n rtElem=\"check\"\n inert\n [disabled]=\"disabled()\"\n [indeterminate]=\"selectAllMark() === 'some'\"\n [ngModel]=\"selectAllMark() === 'all'\"\n [ngModelOptions]=\"{ standalone: true }\" />\n <span rtElem=\"label\">{{ t().uiSelectAll }}</span>\n </div>\n }\n\n @for (view of views(); track view.row.option.value) {\n <div\n rtElem=\"row\"\n qa-dataid=\"tree-row\"\n role=\"treeitem\"\n [attr.data-value]=\"view.row.option.value\"\n [attr.aria-level]=\"view.row.level + 1\"\n [attr.aria-expanded]=\"view.row.branch ? view.row.open : null\"\n [attr.aria-selected]=\"view.marked ? view.mark === 'all' : null\"\n [attr.aria-disabled]=\"view.disabled\"\n [style.--rt-tree-level]=\"view.row.level\"\n [rtMod]=\"{ highlighted: view.highlighted, disabled: view.disabled, chosen: view.mark === 'all' }\"\n (click)=\"onRowClick(view.row, $event)\">\n @if (view.row.branch) {\n <button\n rtElem=\"toggle\"\n qa-dataid=\"tree-row-toggle\"\n type=\"button\"\n tabindex=\"-1\"\n [attr.aria-label]=\"view.row.open ? t().uiCollapse : t().uiExpand\"\n (click)=\"onToggleClick($event, view.row.option.value)\">\n <rt-icon size=\"sm\" color=\"muted\" [name]=\"view.row.open ? 'chevron-down' : 'chevron-right'\" />\n </button>\n } @else {\n <span rtElem=\"toggle-space\"></span>\n }\n\n @if (view.marked && !view.radio) {\n <rt-checkbox\n rtElem=\"check\"\n qa-dataid=\"tree-row-checkbox\"\n inert\n [disabled]=\"view.disabled\"\n [indeterminate]=\"view.mark === 'some'\"\n [ngModel]=\"view.mark === 'all'\"\n [ngModelOptions]=\"{ standalone: true }\" />\n } @else if (view.marked) {\n <rt-radio-button\n rtElem=\"check\"\n qa-dataid=\"tree-row-radio\"\n inert\n [value]=\"view.row.option.value\"\n [checked]=\"view.mark === 'all'\"\n [disabled]=\"view.disabled\" />\n }\n\n <span rtElem=\"text\">\n <span rtElem=\"label\" qa-dataid=\"tree-row-label\" rtTooltipWhenTruncated [rtTooltip]=\"view.row.option.label\">\n @for (part of view.parts.label; track $index) {\n <span rtElem=\"part\" [rtMod]=\"{ match: part.matched }\">{{ part.text }}</span>\n }\n </span>\n @if (view.parts.description.length > 0) {\n <span\n rtElem=\"description\"\n qa-dataid=\"tree-row-description\"\n rtTooltipWhenTruncated\n [rtTooltip]=\"view.row.option.description\">\n @for (part of view.parts.description; track $index) {\n <span rtElem=\"part\" [rtMod]=\"{ match: part.matched }\">{{ part.text }}</span>\n }\n </span>\n }\n @if (view.row.option.badges?.length || metaTemplate()) {\n <span rtElem=\"meta\" qa-dataid=\"tree-row-meta\">\n @for (badge of view.row.option.badges; track $index) {\n <rt-tag size=\"sm\" [value]=\"badge.text\" [severity]=\"badge.severity ?? 'neutral'\" [highlight]=\"searchTerm()\" />\n }\n @if (metaTemplate(); as meta) {\n <ng-container [ngTemplateOutlet]=\"meta\" [ngTemplateOutletContext]=\"{ $implicit: view.row.option }\" />\n }\n </span>\n }\n </span>\n\n @if (view.count) {\n <span rtElem=\"count\" qa-dataid=\"tree-row-count\">{{ view.count }}</span>\n }\n\n @if (endTemplate(); as end) {\n <span rtElem=\"end\" qa-dataid=\"tree-row-end\">\n <ng-container [ngTemplateOutlet]=\"end\" [ngTemplateOutletContext]=\"{ $implicit: view.row.option }\" />\n </span>\n }\n </div>\n } @empty {\n <div rtElem=\"empty\" qa-dataid=\"tree-empty\" [rtMod]=\"{ 'with-icon': !!emptyIcon() }\">\n @if (emptyIcon(); as icon) {\n <rt-icon rtElem=\"empty-icon\" qa-dataid=\"tree-empty-icon\" size=\"lg\" [name]=\"icon\" />\n }\n {{ emptyText() }}\n </div>\n }\n</ng-container>\n"],"mappings":"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"}
|
|
@@ -1,64 +1,119 @@
|
|
|
1
|
-
import * as i0 from
|
|
2
|
-
import {
|
|
3
|
-
import { BlockDirective, ElemDirective } from
|
|
4
|
-
import {
|
|
5
|
-
import { RtButtonDirective } from
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
*/
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import { ChangeDetectionStrategy, Component, ViewEncapsulation, computed, inject } from "@angular/core";
|
|
3
|
+
import { BlockDirective, ElemDirective } from "@rt-tools/core";
|
|
4
|
+
import { RT_KIT_LABELS, rtKitLabel } from "@rt-tools/ui-kit-v2/core";
|
|
5
|
+
import { RtButtonDirective } from "@rt-tools/ui-kit-v2/button";
|
|
6
|
+
import { RT_DIALOG_DATA, RtDialogComponent, RtDialogRef } from "@rt-tools/ui-kit-v2/dialog";
|
|
7
|
+
const BEM_BLOCK = "rt-welcome-dialog";
|
|
8
|
+
const DEFAULT_CTA_KEY = "uiContinue";
|
|
9
|
+
var RtWelcomeDialogComponent = class RtWelcomeDialogComponent {
|
|
10
|
+
#dialogRef;
|
|
11
|
+
#data;
|
|
12
|
+
#defaultCtaLabel;
|
|
13
|
+
constructor() {
|
|
14
|
+
this.#dialogRef = inject(RtDialogRef);
|
|
15
|
+
this.#data = inject(RT_DIALOG_DATA, { optional: true });
|
|
16
|
+
this.#defaultCtaLabel = rtKitLabel(DEFAULT_CTA_KEY);
|
|
17
|
+
this.t = inject(RT_KIT_LABELS);
|
|
18
|
+
this.ctaLabel = computed(() => this.#data?.ctaLabel || this.#defaultCtaLabel(), ...ngDevMode ? [{ debugName: "ctaLabel" }] : /* istanbul ignore next */ []);
|
|
19
|
+
const parts = (this.#data?.message ?? "").split(/\n{2,}/).map((part) => part.trim()).filter((part) => part.length > 0);
|
|
20
|
+
this.title = parts[0] ?? "";
|
|
21
|
+
this.paragraphs = parts.slice(1);
|
|
22
|
+
}
|
|
23
|
+
onClose() {
|
|
24
|
+
this.#dialogRef.close();
|
|
25
|
+
}
|
|
26
|
+
static {
|
|
27
|
+
this.ɵfac = i0.ɵɵngDeclareFactory({
|
|
28
|
+
minVersion: "12.0.0",
|
|
29
|
+
version: "22.2.2",
|
|
30
|
+
ngImport: i0,
|
|
31
|
+
type: RtWelcomeDialogComponent,
|
|
32
|
+
deps: [],
|
|
33
|
+
target: i0.ɵɵFactoryTarget.Component
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
static {
|
|
37
|
+
this.ɵcmp = i0.ɵɵngDeclareComponent({
|
|
38
|
+
minVersion: "17.0.0",
|
|
39
|
+
version: "22.2.2",
|
|
40
|
+
type: RtWelcomeDialogComponent,
|
|
41
|
+
isStandalone: true,
|
|
42
|
+
selector: "rt-welcome-dialog",
|
|
43
|
+
host: { classAttribute: "rt-welcome-dialog" },
|
|
44
|
+
ngImport: i0,
|
|
45
|
+
template: "<rt-dialog width=\"335px\" [ariaLabel]=\"t().uiWelcomeAria\">\n <div rtBlock=\"rt-welcome-dialog\">\n <div rtElem=\"text\">\n @if (title) {\n <h2 rtElem=\"title\" qa-dataid=\"welcome-dialog-title\">{{ title }}</h2>\n }\n @for (paragraph of paragraphs; track $index) {\n <p rtElem=\"description\" qa-dataid=\"welcome-dialog-description\">{{ paragraph }}</p>\n }\n </div>\n <!-- rtButton-директива рендерит label через Renderer2 в afterNextRender —\n статического child-контента в template нет намеренно. -->\n <!-- eslint-disable-next-line @angular-eslint/template/elements-content -->\n <button\n rtButton\n rtElem=\"cta\"\n qa-dataid=\"welcome-dialog-cta\"\n type=\"button\"\n theme=\"primary\"\n appearance=\"filled\"\n [label]=\"ctaLabel()\"\n (click)=\"onClose()\"></button>\n </div>\n</rt-dialog>\n",
|
|
46
|
+
styles: ["@charset \"UTF-8\";@layer rt-kit.components{rt-welcome-dialog{display:contents}rt-welcome-dialog .rt-welcome-dialog{display:flex;flex-direction:column;padding:var(--rt-space-16) var(--rt-space-5);gap:var(--rt-space-5)}rt-welcome-dialog .rt-welcome-dialog__text{display:flex;flex-direction:column;gap:var(--rt-space-2);text-align:center}rt-welcome-dialog .rt-welcome-dialog__title{margin:0;color:var(--rt-color-text-primary);font-family:var(--rt-font-family-sans);font-size:var(--rt-text-md);font-weight:var(--rt-font-weight-bold);line-height:var(--rt-leading-snug)}rt-welcome-dialog .rt-welcome-dialog__description{margin:0;color:var(--rt-color-text-primary);font-family:var(--rt-font-family-sans);font-size:var(--rt-text-xs);font-weight:var(--rt-font-weight-regular);line-height:var(--rt-leading-snug);white-space:pre-line}rt-welcome-dialog .rt-welcome-dialog__cta{--rt-btn-font-size: 14px;width:100%;letter-spacing:0}}\n"],
|
|
47
|
+
dependencies: [
|
|
48
|
+
{
|
|
49
|
+
kind: "directive",
|
|
50
|
+
type: RtButtonDirective,
|
|
51
|
+
selector: "button[rtButton], a[rtButton]",
|
|
52
|
+
inputs: [
|
|
53
|
+
"label",
|
|
54
|
+
"icon",
|
|
55
|
+
"iconPos",
|
|
56
|
+
"theme",
|
|
57
|
+
"appearance",
|
|
58
|
+
"size",
|
|
59
|
+
"loading",
|
|
60
|
+
"loadingIcon",
|
|
61
|
+
"loadingLabel",
|
|
62
|
+
"pressed"
|
|
63
|
+
]
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
kind: "component",
|
|
67
|
+
type: RtDialogComponent,
|
|
68
|
+
selector: "rt-dialog",
|
|
69
|
+
inputs: [
|
|
70
|
+
"size",
|
|
71
|
+
"width",
|
|
72
|
+
"ariaLabel"
|
|
73
|
+
]
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
kind: "directive",
|
|
77
|
+
type: BlockDirective,
|
|
78
|
+
selector: "[rtBlock]",
|
|
79
|
+
inputs: ["rtMod"]
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
kind: "directive",
|
|
83
|
+
type: ElemDirective,
|
|
84
|
+
selector: "[rtElem]",
|
|
85
|
+
inputs: ["rtMod"]
|
|
86
|
+
}
|
|
87
|
+
],
|
|
88
|
+
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
89
|
+
encapsulation: i0.ViewEncapsulation.None
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
i0.ɵɵngDeclareClassMetadata({
|
|
94
|
+
minVersion: "12.0.0",
|
|
95
|
+
version: "22.2.2",
|
|
96
|
+
ngImport: i0,
|
|
97
|
+
type: RtWelcomeDialogComponent,
|
|
98
|
+
decorators: [{
|
|
99
|
+
type: Component,
|
|
100
|
+
args: [{
|
|
101
|
+
selector: "rt-welcome-dialog",
|
|
102
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
103
|
+
encapsulation: ViewEncapsulation.None,
|
|
104
|
+
imports: [
|
|
105
|
+
RtButtonDirective,
|
|
106
|
+
RtDialogComponent,
|
|
107
|
+
BlockDirective,
|
|
108
|
+
ElemDirective
|
|
109
|
+
],
|
|
110
|
+
host: { class: BEM_BLOCK },
|
|
111
|
+
template: "<rt-dialog width=\"335px\" [ariaLabel]=\"t().uiWelcomeAria\">\n <div rtBlock=\"rt-welcome-dialog\">\n <div rtElem=\"text\">\n @if (title) {\n <h2 rtElem=\"title\" qa-dataid=\"welcome-dialog-title\">{{ title }}</h2>\n }\n @for (paragraph of paragraphs; track $index) {\n <p rtElem=\"description\" qa-dataid=\"welcome-dialog-description\">{{ paragraph }}</p>\n }\n </div>\n <!-- rtButton-директива рендерит label через Renderer2 в afterNextRender —\n статического child-контента в template нет намеренно. -->\n <!-- eslint-disable-next-line @angular-eslint/template/elements-content -->\n <button\n rtButton\n rtElem=\"cta\"\n qa-dataid=\"welcome-dialog-cta\"\n type=\"button\"\n theme=\"primary\"\n appearance=\"filled\"\n [label]=\"ctaLabel()\"\n (click)=\"onClose()\"></button>\n </div>\n</rt-dialog>\n",
|
|
112
|
+
styles: ["@charset \"UTF-8\";@layer rt-kit.components{rt-welcome-dialog{display:contents}rt-welcome-dialog .rt-welcome-dialog{display:flex;flex-direction:column;padding:var(--rt-space-16) var(--rt-space-5);gap:var(--rt-space-5)}rt-welcome-dialog .rt-welcome-dialog__text{display:flex;flex-direction:column;gap:var(--rt-space-2);text-align:center}rt-welcome-dialog .rt-welcome-dialog__title{margin:0;color:var(--rt-color-text-primary);font-family:var(--rt-font-family-sans);font-size:var(--rt-text-md);font-weight:var(--rt-font-weight-bold);line-height:var(--rt-leading-snug)}rt-welcome-dialog .rt-welcome-dialog__description{margin:0;color:var(--rt-color-text-primary);font-family:var(--rt-font-family-sans);font-size:var(--rt-text-xs);font-weight:var(--rt-font-weight-regular);line-height:var(--rt-leading-snug);white-space:pre-line}rt-welcome-dialog .rt-welcome-dialog__cta{--rt-btn-font-size: 14px;width:100%;letter-spacing:0}}\n"]
|
|
113
|
+
}]
|
|
114
|
+
}],
|
|
115
|
+
ctorParameters: () => []
|
|
116
|
+
});
|
|
63
117
|
export { RtWelcomeDialogComponent };
|
|
64
|
-
|
|
118
|
+
|
|
119
|
+
//# sourceMappingURL=rt-tools-ui-kit-v2-welcome-dialog.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rt-tools-ui-kit-v2-welcome-dialog.mjs","sources":["../../../projects/ui-kit-v2/src/lib/components/welcome-dialog/rt-welcome-dialog.component.ts","../../../projects/ui-kit-v2/src/lib/components/welcome-dialog/rt-welcome-dialog.component.html"
|
|
1
|
+
{"version":3,"file":"rt-tools-ui-kit-v2-welcome-dialog.mjs","names":[],"sources":["../../../projects/ui-kit-v2/src/lib/components/welcome-dialog/rt-welcome-dialog.component.ts","../../../projects/ui-kit-v2/src/lib/components/welcome-dialog/rt-welcome-dialog.component.html"],"sourcesContent":["import { computed, inject, ChangeDetectionStrategy, Component, Signal, ViewEncapsulation } from '@angular/core';\n\nimport { BlockDirective, ElemDirective } from '@rt-tools/core';\n\nimport { RT_KIT_LABELS, TRtKitLabelKey, TRtKitLabelMap, rtKitLabel } from '@rt-tools/ui-kit-v2/core';\nimport { RtButtonDirective } from '@rt-tools/ui-kit-v2/button';\nimport { RtDialogRef } from '@rt-tools/ui-kit-v2/dialog';\nimport { RtDialogComponent } from '@rt-tools/ui-kit-v2/dialog';\nimport { RT_DIALOG_DATA } from '@rt-tools/ui-kit-v2/dialog';\n\nconst BEM_BLOCK: string = 'rt-welcome-dialog';\n\n/** Ключ подписи CTA по умолчанию: язык известен только после старта приложения */\nconst DEFAULT_CTA_KEY: TRtKitLabelKey = 'uiContinue';\n\nexport namespace IRtWelcomeDialog {\n /** Payload модалки: настраиваемый текст приветствия + подпись CTA-кнопки. */\n export interface Data {\n message: string;\n ctaLabel?: string;\n }\n}\n\n/**\n * Welcome-модалка первого входа: показывает настраиваемый текст приветствия роли.\n * Открывается программно через `RtDialogService.open(RtWelcomeDialogComponent, { data })`.\n *\n * Текст приходит многострочным: первый абзац (до пустой строки) рендерится\n * заголовком, остальные — параграфами описания. Без `rt-dialog-header` —\n * единственное действие закрытия — CTA-кнопка.\n */\n@Component({\n selector: 'rt-welcome-dialog',\n templateUrl: './rt-welcome-dialog.component.html',\n styleUrl: './rt-welcome-dialog.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n // standalone components / directives\n RtButtonDirective,\n RtDialogComponent,\n BlockDirective,\n ElemDirective,\n ],\n host: {\n class: BEM_BLOCK,\n },\n})\nexport class RtWelcomeDialogComponent {\n readonly #dialogRef: RtDialogRef = inject(RtDialogRef);\n readonly #data: IRtWelcomeDialog.Data | null = inject<IRtWelcomeDialog.Data | null>(RT_DIALOG_DATA, { optional: true });\n\n readonly #defaultCtaLabel: Signal<string> = rtKitLabel(DEFAULT_CTA_KEY);\n\n protected readonly t: Signal<TRtKitLabelMap> = inject(RT_KIT_LABELS);\n\n protected readonly title: string;\n\n protected readonly paragraphs: string[];\n\n /** Своя подпись важнее умолчания: роль знает, куда ведёт кнопка */\n protected readonly ctaLabel: Signal<string> = computed((): string => this.#data?.ctaLabel || this.#defaultCtaLabel());\n\n constructor() {\n const parts: string[] = (this.#data?.message ?? '')\n .split(/\\n{2,}/)\n .map((part: string): string => part.trim())\n .filter((part: string): boolean => part.length > 0);\n this.title = parts[0] ?? '';\n this.paragraphs = parts.slice(1);\n }\n\n protected onClose(): void {\n this.#dialogRef.close();\n }\n}\n","<rt-dialog width=\"335px\" [ariaLabel]=\"t().uiWelcomeAria\">\n <div rtBlock=\"rt-welcome-dialog\">\n <div rtElem=\"text\">\n @if (title) {\n <h2 rtElem=\"title\" qa-dataid=\"welcome-dialog-title\">{{ title }}</h2>\n }\n @for (paragraph of paragraphs; track $index) {\n <p rtElem=\"description\" qa-dataid=\"welcome-dialog-description\">{{ paragraph }}</p>\n }\n </div>\n <!-- rtButton-директива рендерит label через Renderer2 в afterNextRender —\n статического child-контента в template нет намеренно. -->\n <!-- eslint-disable-next-line @angular-eslint/template/elements-content -->\n <button\n rtButton\n rtElem=\"cta\"\n qa-dataid=\"welcome-dialog-cta\"\n type=\"button\"\n theme=\"primary\"\n appearance=\"filled\"\n [label]=\"ctaLabel()\"\n (click)=\"onClose()\"></button>\n </div>\n</rt-dialog>\n"],"mappings":";;;;;;AAUA,MAAM,YAAoB;AAG1B,MAAM,kBAAkC;AAmCxC,IAAa,2BAAb,MAAa,yBAAwB;CACxB;CACA;CAEA;CAWT,cAAA;EAdS,KAAA,aAA0B,OAAO,WAAW;EAC5C,KAAA,QAAsC,OAAqC,gBAAgB,EAAE,UAAU,KAAI,CAAE;EAE7G,KAAA,mBAAmC,WAAW,eAAe;EAEnD,KAAA,IAA4B,OAAO,aAAa;EAOhD,KAAA,WAA2B,eAAuB,KAAK,OAAO,YAAY,KAAK,iBAAgB,GAAG,GAAA,YAAA,CAAA,EAAA,WAAA,WAAA,CAAA,+BAAA,CAAA,CAAA;EAGjH,MAAM,SAAmB,KAAK,OAAO,WAAW,GAAA,CAC3C,MAAM,QAAQ,CAAC,CACf,KAAK,SAAyB,KAAK,KAAI,CAAE,CAAC,CAC1C,QAAQ,SAA0B,KAAK,SAAS,CAAC;EACtD,KAAK,QAAQ,MAAM,MAAM;EACzB,KAAK,aAAa,MAAM,MAAM,CAAC;CACnC;CAEU,UAAO;EACb,KAAK,WAAW,MAAK;CACzB;CA1BS;EAAA,KAAA,OAAA,GAAA,mBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAwB,MAAA,CAAA;GAAA,QAAA,GAAA,gBAAA;EAAA,CAAA;CAAA;CAAxB;EAAA,KAAA,OAAA,GAAA,qBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,MAAA;GAAwB,cAAA;GAAA,UAAA;GAAA,MAAA,EAAA,gBAAA,oBAAA;GAAA,UAAA;GAAA,UChDrC;GAwBA,QAAA,CAAA,45BAAA;GAAA,cAAA;IAAA;KAAA,MAAA;KAAA,MDeQ;KAAiB,UAAA;KAAA,QAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;KAAA;IAAA;IAAA;KAAA,MAAA;KAAA,MACjB;KAAiB,UAAA;KAAA,QAAA;MAAA;MAAA;MAAA;KAAA;IAAA;IAAA;KAAA,MAAA;KAAA,MACjB;KAAc,UAAA;KAAA,QAAA,CAAA,OAAA;IAAA;IAAA;KAAA,MAAA;KAAA,MACd;KAAa,UAAA;KAAA,QAAA,CAAA,OAAA;IAAA;GAAA;GAAA,iBAAA,GAAA,wBAAA;GAAA,eAAA,GAAA,kBAAA;EAAA,CAAA;CAAA;;AAMR,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAwB,YAAA,CAAA;EAjBpC,MAAA;EACa,MAAA,CAAA;GAAA,UAAA;GAAmB,iBAGZ,wBAAwB;GAAM,eAChC,kBAAkB;GAAI,SAC5B;IAEL;IACA;IACA;IACA;GACH;GAAA,MACK,EACF,OAAO,UACV;GAAA,UAAA;GAAA,QAAA,CAAA,45BAAA;EAAA,CAAA"}
|