@rt-tools/ui-kit-v2 0.16.0 → 0.18.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/README.md +25 -0
- package/fesm2022/rt-tools-ui-kit-v2-accordion.mjs +79 -0
- package/fesm2022/rt-tools-ui-kit-v2-accordion.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-action-bar.mjs +227 -0
- package/fesm2022/rt-tools-ui-kit-v2-action-bar.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-aside-section.mjs +47 -0
- package/fesm2022/rt-tools-ui-kit-v2-aside-section.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-aside.mjs +702 -0
- package/fesm2022/rt-tools-ui-kit-v2-aside.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-autocomplete.mjs +214 -0
- package/fesm2022/rt-tools-ui-kit-v2-autocomplete.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-bar-list.mjs +53 -0
- package/fesm2022/rt-tools-ui-kit-v2-bar-list.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-bottom-sheet.mjs +88 -0
- package/fesm2022/rt-tools-ui-kit-v2-bottom-sheet.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-button.mjs +365 -0
- package/fesm2022/rt-tools-ui-kit-v2-button.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-calendar.mjs +152 -0
- package/fesm2022/rt-tools-ui-kit-v2-calendar.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-card.mjs +72 -0
- package/fesm2022/rt-tools-ui-kit-v2-card.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-checkbox.mjs +111 -0
- package/fesm2022/rt-tools-ui-kit-v2-checkbox.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-collapsible-text.mjs +76 -0
- package/fesm2022/rt-tools-ui-kit-v2-collapsible-text.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-confirm-popover.mjs +255 -0
- package/fesm2022/rt-tools-ui-kit-v2-confirm-popover.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-container.mjs +1326 -0
- package/fesm2022/rt-tools-ui-kit-v2-container.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-core.mjs +2590 -0
- package/fesm2022/rt-tools-ui-kit-v2-core.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-counter-row.mjs +45 -0
- package/fesm2022/rt-tools-ui-kit-v2-counter-row.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-counter.mjs +158 -0
- package/fesm2022/rt-tools-ui-kit-v2-counter.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-data-list.mjs +894 -0
- package/fesm2022/rt-tools-ui-kit-v2-data-list.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-data-table.mjs +1217 -0
- package/fesm2022/rt-tools-ui-kit-v2-data-table.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-date-picker.mjs +779 -0
- package/fesm2022/rt-tools-ui-kit-v2-date-picker.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-date-range.mjs +573 -0
- package/fesm2022/rt-tools-ui-kit-v2-date-range.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-delta-view.mjs +141 -0
- package/fesm2022/rt-tools-ui-kit-v2-delta-view.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-detail-list.mjs +68 -0
- package/fesm2022/rt-tools-ui-kit-v2-detail-list.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-dialog.mjs +478 -0
- package/fesm2022/rt-tools-ui-kit-v2-dialog.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-dot-field.mjs +183 -0
- package/fesm2022/rt-tools-ui-kit-v2-dot-field.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-download-link.mjs +44 -0
- package/fesm2022/rt-tools-ui-kit-v2-download-link.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-dynamic-list.mjs +260 -0
- package/fesm2022/rt-tools-ui-kit-v2-dynamic-list.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-dynamic-selector.mjs +937 -0
- package/fesm2022/rt-tools-ui-kit-v2-dynamic-selector.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-empty-state.mjs +56 -0
- package/fesm2022/rt-tools-ui-kit-v2-empty-state.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-expansion-panel.mjs +107 -0
- package/fesm2022/rt-tools-ui-kit-v2-expansion-panel.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-field.mjs +183 -0
- package/fesm2022/rt-tools-ui-kit-v2-field.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-file-card.mjs +219 -0
- package/fesm2022/rt-tools-ui-kit-v2-file-card.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-file-drop.mjs +214 -0
- package/fesm2022/rt-tools-ui-kit-v2-file-drop.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-file-input.mjs +117 -0
- package/fesm2022/rt-tools-ui-kit-v2-file-input.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-file-list.mjs +32 -0
- package/fesm2022/rt-tools-ui-kit-v2-file-list.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-filter-control.mjs +91 -0
- package/fesm2022/rt-tools-ui-kit-v2-filter-control.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-form-control.mjs +220 -0
- package/fesm2022/rt-tools-ui-kit-v2-form-control.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-header.mjs +72 -0
- package/fesm2022/rt-tools-ui-kit-v2-header.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-icon-button.mjs +163 -0
- package/fesm2022/rt-tools-ui-kit-v2-icon-button.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-icon.mjs +674 -0
- package/fesm2022/rt-tools-ui-kit-v2-icon.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-image-cropper.mjs +540 -0
- package/fesm2022/rt-tools-ui-kit-v2-image-cropper.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-image-upload.mjs +227 -0
- package/fesm2022/rt-tools-ui-kit-v2-image-upload.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-info-item.mjs +37 -0
- package/fesm2022/rt-tools-ui-kit-v2-info-item.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-input-number.mjs +361 -0
- package/fesm2022/rt-tools-ui-kit-v2-input-number.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-input.mjs +143 -0
- package/fesm2022/rt-tools-ui-kit-v2-input.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-live-badge.mjs +49 -0
- package/fesm2022/rt-tools-ui-kit-v2-live-badge.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-logo.mjs +97 -0
- package/fesm2022/rt-tools-ui-kit-v2-logo.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-markdown-text.mjs +57 -0
- package/fesm2022/rt-tools-ui-kit-v2-markdown-text.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-menu.mjs +537 -0
- package/fesm2022/rt-tools-ui-kit-v2-menu.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-message.mjs +105 -0
- package/fesm2022/rt-tools-ui-kit-v2-message.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-money-list.mjs +71 -0
- package/fesm2022/rt-tools-ui-kit-v2-money-list.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-multiselect.mjs +315 -0
- package/fesm2022/rt-tools-ui-kit-v2-multiselect.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-night-grid.mjs +51 -0
- package/fesm2022/rt-tools-ui-kit-v2-night-grid.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-note.mjs +44 -0
- package/fesm2022/rt-tools-ui-kit-v2-note.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-notifications-bell.mjs +54 -0
- package/fesm2022/rt-tools-ui-kit-v2-notifications-bell.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-page-header.mjs +339 -0
- package/fesm2022/rt-tools-ui-kit-v2-page-header.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-pagination.mjs +187 -0
- package/fesm2022/rt-tools-ui-kit-v2-pagination.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-photo-viewer.mjs +170 -0
- package/fesm2022/rt-tools-ui-kit-v2-photo-viewer.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-popover.mjs +312 -0
- package/fesm2022/rt-tools-ui-kit-v2-popover.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-radio-button.mjs +174 -0
- package/fesm2022/rt-tools-ui-kit-v2-radio-button.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-radius.mjs +56 -0
- package/fesm2022/rt-tools-ui-kit-v2-radius.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-rich-editor.mjs +96 -41
- package/fesm2022/rt-tools-ui-kit-v2-rich-editor.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-ripple.mjs +118 -0
- package/fesm2022/rt-tools-ui-kit-v2-ripple.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-scroll-area.mjs +290 -0
- package/fesm2022/rt-tools-ui-kit-v2-scroll-area.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-section-nav.mjs +37 -0
- package/fesm2022/rt-tools-ui-kit-v2-section-nav.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-select.mjs +495 -0
- package/fesm2022/rt-tools-ui-kit-v2-select.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-side-menu.mjs +1493 -0
- package/fesm2022/rt-tools-ui-kit-v2-side-menu.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-skeleton-wrapper.mjs +49 -0
- package/fesm2022/rt-tools-ui-kit-v2-skeleton-wrapper.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-skeleton.mjs +123 -0
- package/fesm2022/rt-tools-ui-kit-v2-skeleton.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-spinner.mjs +70 -0
- package/fesm2022/rt-tools-ui-kit-v2-spinner.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-split-button.mjs +92 -0
- package/fesm2022/rt-tools-ui-kit-v2-split-button.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-stat-tile.mjs +147 -0
- package/fesm2022/rt-tools-ui-kit-v2-stat-tile.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-stepper.mjs +117 -0
- package/fesm2022/rt-tools-ui-kit-v2-stepper.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-table.mjs +1636 -0
- package/fesm2022/rt-tools-ui-kit-v2-table.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-tabs.mjs +350 -0
- package/fesm2022/rt-tools-ui-kit-v2-tabs.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-tag.mjs +122 -0
- package/fesm2022/rt-tools-ui-kit-v2-tag.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-textarea.mjs +85 -0
- package/fesm2022/rt-tools-ui-kit-v2-textarea.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-theme-toggle.mjs +73 -0
- package/fesm2022/rt-tools-ui-kit-v2-theme-toggle.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-thread-list.mjs +196 -0
- package/fesm2022/rt-tools-ui-kit-v2-thread-list.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-timeline.mjs +39 -0
- package/fesm2022/rt-tools-ui-kit-v2-timeline.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-toast.mjs +338 -0
- package/fesm2022/rt-tools-ui-kit-v2-toast.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-toggle-button-group.mjs +132 -0
- package/fesm2022/rt-tools-ui-kit-v2-toggle-button-group.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-toggle-switch.mjs +162 -0
- package/fesm2022/rt-tools-ui-kit-v2-toggle-switch.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-toolbar.mjs +135 -0
- package/fesm2022/rt-tools-ui-kit-v2-toolbar.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-tooltip.mjs +214 -0
- package/fesm2022/rt-tools-ui-kit-v2-tooltip.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-welcome-dialog.mjs +64 -0
- package/fesm2022/rt-tools-ui-kit-v2-welcome-dialog.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-workspace-details.mjs +263 -0
- package/fesm2022/rt-tools-ui-kit-v2-workspace-details.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-workspace.mjs +296 -0
- package/fesm2022/rt-tools-ui-kit-v2-workspace.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2.mjs +91 -23164
- package/fesm2022/rt-tools-ui-kit-v2.mjs.map +1 -1
- package/package.json +349 -1
- package/rt-tools-ui-kit-v2-0.18.0.tgz +0 -0
- package/src/lib/components/action-bar/CONTEXT.md +5 -0
- package/src/lib/components/action-bar/rt-action-bar.component.scss +30 -16
- package/src/lib/components/aside/CONTEXT.md +9 -1
- package/src/lib/components/aside/footer/rt-aside-footer.component.scss +7 -8
- package/src/lib/components/aside/header/rt-aside-header.component.scss +16 -1
- package/src/lib/components/aside/rt-aside.component.scss +17 -1
- package/src/lib/components/button/CONTEXT.md +12 -11
- package/src/lib/components/button/rt-button.directive.scss +36 -0
- package/src/lib/components/data-list/settings/rt-data-list-settings-aside.component.scss +2 -2
- package/src/lib/components/data-table/cell/rt-data-table-cell.component.scss +1 -1
- package/src/lib/components/data-table/filter-cell/rt-data-table-filter-cell.component.scss +1 -1
- package/src/lib/components/data-table/rt-data-table.component.scss +1 -1
- package/src/lib/components/dialog/CONTEXT.md +9 -0
- package/src/lib/components/dialog/content/rt-dialog-content.component.scss +20 -0
- package/src/lib/components/dialog/footer/rt-dialog-footer.component.scss +18 -2
- package/src/lib/components/dialog/header/rt-dialog-header.component.scss +21 -3
- package/src/lib/components/dialog/rt-dialog.component.scss +9 -3
- package/src/lib/components/dot-field/CONTEXT.md +31 -0
- package/src/lib/components/dot-field/rt-dot-field.component.scss +20 -0
- package/src/lib/components/dot-field/stories/component/CONTEXT.md +14 -0
- package/src/lib/components/dot-field/stories/component/test-dot-field.component.scss +31 -0
- package/src/lib/components/dynamic-selector/CONTEXT.md +6 -0
- package/src/lib/components/field/CONTEXT.md +18 -2
- package/src/lib/components/header/CONTEXT.md +2 -2
- package/src/lib/components/icon/CONTEXT.md +11 -7
- package/src/lib/components/icon/rt-icon.component.scss +47 -0
- package/src/lib/components/icon-button/CONTEXT.md +27 -20
- package/src/lib/components/icon-button/rt-icon-button.component.scss +51 -25
- package/src/lib/components/image-upload/CONTEXT.md +20 -15
- package/src/lib/components/image-upload/rt-image-upload.component.scss +14 -2
- package/src/lib/components/pagination/rt-pagination.component.scss +1 -1
- package/src/lib/components/scroll-area/CONTEXT.md +2 -0
- package/src/lib/components/scroll-area/rt-scroll-area.component.scss +20 -3
- package/src/lib/components/select/rt-select.component.scss +4 -0
- package/src/lib/components/side-menu/CONTEXT.md +7 -2
- package/src/lib/components/spinner/CONTEXT.md +15 -8
- package/src/lib/components/spinner/rt-spinner.component.scss +108 -9
- package/src/lib/components/tag/rt-tag.component.scss +43 -23
- package/src/lib/components/toast/CONTEXT.md +8 -0
- package/src/lib/components/toast/rt-toast.component.scss +74 -15
- package/src/lib/components/toast/rt-toaster.component.scss +5 -1
- package/src/lib/components/toggle-button-group/rt-toggle-button-group.component.scss +35 -37
- package/src/lib/components/toggle-switch/CONTEXT.md +11 -3
- package/src/lib/components/toggle-switch/rt-toggle-switch.component.scss +53 -14
- package/src/lib/components/toolbar/rt-toolbar.component.scss +15 -4
- package/src/lib/components/tooltip/CONTEXT.md +5 -5
- package/src/rich-editor/lib/components/chat/CONTEXT.md +7 -2
- package/src/rich-editor/lib/components/chat/rt-chat.component.scss +25 -0
- package/src/styles/_semantic.scss +1 -1
- package/styles/tokens.css +43 -8
- package/types/rt-tools-ui-kit-v2-accordion.d.ts +30 -0
- package/types/rt-tools-ui-kit-v2-action-bar.d.ts +140 -0
- package/types/rt-tools-ui-kit-v2-aside-section.d.ts +25 -0
- package/types/rt-tools-ui-kit-v2-aside.d.ts +436 -0
- package/types/rt-tools-ui-kit-v2-autocomplete.d.ts +78 -0
- package/types/rt-tools-ui-kit-v2-bar-list.d.ts +41 -0
- package/types/rt-tools-ui-kit-v2-bottom-sheet.d.ts +20 -0
- package/types/rt-tools-ui-kit-v2-button.d.ts +76 -0
- package/types/rt-tools-ui-kit-v2-calendar.d.ts +96 -0
- package/types/rt-tools-ui-kit-v2-card.d.ts +38 -0
- package/types/rt-tools-ui-kit-v2-checkbox.d.ts +46 -0
- package/types/rt-tools-ui-kit-v2-collapsible-text.d.ts +20 -0
- package/types/rt-tools-ui-kit-v2-confirm-popover.d.ts +85 -0
- package/types/rt-tools-ui-kit-v2-container.d.ts +425 -0
- package/types/rt-tools-ui-kit-v2-core.d.ts +1222 -0
- package/types/rt-tools-ui-kit-v2-counter-row.d.ts +22 -0
- package/types/rt-tools-ui-kit-v2-counter.d.ts +70 -0
- package/types/rt-tools-ui-kit-v2-data-list.d.ts +334 -0
- package/types/rt-tools-ui-kit-v2-data-table.d.ts +494 -0
- package/types/rt-tools-ui-kit-v2-date-picker.d.ts +181 -0
- package/types/rt-tools-ui-kit-v2-date-range.d.ts +98 -0
- package/types/rt-tools-ui-kit-v2-delta-view.d.ts +20 -0
- package/types/rt-tools-ui-kit-v2-detail-list.d.ts +33 -0
- package/types/rt-tools-ui-kit-v2-dialog.d.ts +287 -0
- package/types/rt-tools-ui-kit-v2-dot-field.d.ts +17 -0
- package/types/rt-tools-ui-kit-v2-download-link.d.ts +17 -0
- package/types/rt-tools-ui-kit-v2-dynamic-list.d.ts +139 -0
- package/types/rt-tools-ui-kit-v2-dynamic-selector.d.ts +384 -0
- package/types/rt-tools-ui-kit-v2-empty-state.d.ts +29 -0
- package/types/rt-tools-ui-kit-v2-expansion-panel.d.ts +57 -0
- package/types/rt-tools-ui-kit-v2-field.d.ts +82 -0
- package/types/rt-tools-ui-kit-v2-file-card.d.ts +114 -0
- package/types/rt-tools-ui-kit-v2-file-drop.d.ts +75 -0
- package/types/rt-tools-ui-kit-v2-file-input.d.ts +48 -0
- package/types/rt-tools-ui-kit-v2-file-list.d.ts +13 -0
- package/types/rt-tools-ui-kit-v2-filter-control.d.ts +72 -0
- package/types/rt-tools-ui-kit-v2-form-control.d.ts +74 -0
- package/types/rt-tools-ui-kit-v2-header.d.ts +40 -0
- package/types/rt-tools-ui-kit-v2-icon-button.d.ts +113 -0
- package/types/rt-tools-ui-kit-v2-icon.d.ts +238 -0
- package/types/rt-tools-ui-kit-v2-image-cropper.d.ts +168 -0
- package/types/rt-tools-ui-kit-v2-image-upload.d.ts +102 -0
- package/types/rt-tools-ui-kit-v2-info-item.d.ts +13 -0
- package/types/rt-tools-ui-kit-v2-input-number.d.ts +67 -0
- package/types/rt-tools-ui-kit-v2-input.d.ts +54 -0
- package/types/rt-tools-ui-kit-v2-live-badge.d.ts +23 -0
- package/types/rt-tools-ui-kit-v2-logo.d.ts +58 -0
- package/types/rt-tools-ui-kit-v2-markdown-text.d.ts +30 -0
- package/types/rt-tools-ui-kit-v2-menu.d.ts +217 -0
- package/types/rt-tools-ui-kit-v2-message.d.ts +56 -0
- package/types/rt-tools-ui-kit-v2-money-list.d.ts +34 -0
- package/types/rt-tools-ui-kit-v2-multiselect.d.ts +93 -0
- package/types/rt-tools-ui-kit-v2-night-grid.d.ts +39 -0
- package/types/rt-tools-ui-kit-v2-note.d.ts +21 -0
- package/types/rt-tools-ui-kit-v2-notifications-bell.d.ts +23 -0
- package/types/rt-tools-ui-kit-v2-page-header.d.ts +173 -0
- package/types/rt-tools-ui-kit-v2-pagination.d.ts +64 -0
- package/types/rt-tools-ui-kit-v2-photo-viewer.d.ts +98 -0
- package/types/rt-tools-ui-kit-v2-popover.d.ts +79 -0
- package/types/rt-tools-ui-kit-v2-radio-button.d.ts +61 -0
- package/types/rt-tools-ui-kit-v2-radius.d.ts +37 -0
- package/types/rt-tools-ui-kit-v2-rich-editor.d.ts +16 -20
- package/types/rt-tools-ui-kit-v2-ripple.d.ts +39 -0
- package/types/rt-tools-ui-kit-v2-scroll-area.d.ts +91 -0
- package/types/rt-tools-ui-kit-v2-section-nav.d.ts +23 -0
- package/types/rt-tools-ui-kit-v2-select.d.ts +215 -0
- package/types/rt-tools-ui-kit-v2-side-menu.d.ts +483 -0
- package/types/rt-tools-ui-kit-v2-skeleton-wrapper.d.ts +32 -0
- package/types/rt-tools-ui-kit-v2-skeleton.d.ts +41 -0
- package/types/rt-tools-ui-kit-v2-spinner.d.ts +56 -0
- package/types/rt-tools-ui-kit-v2-split-button.d.ts +72 -0
- package/types/rt-tools-ui-kit-v2-stat-tile.d.ts +81 -0
- package/types/rt-tools-ui-kit-v2-stepper.d.ts +51 -0
- package/types/rt-tools-ui-kit-v2-table.d.ts +739 -0
- package/types/rt-tools-ui-kit-v2-tabs.d.ts +153 -0
- package/types/rt-tools-ui-kit-v2-tag.d.ts +70 -0
- package/types/rt-tools-ui-kit-v2-textarea.d.ts +36 -0
- package/types/rt-tools-ui-kit-v2-theme-toggle.d.ts +43 -0
- package/types/rt-tools-ui-kit-v2-thread-list.d.ts +111 -0
- package/types/rt-tools-ui-kit-v2-timeline.d.ts +35 -0
- package/types/rt-tools-ui-kit-v2-toast.d.ts +103 -0
- package/types/rt-tools-ui-kit-v2-toggle-button-group.d.ts +109 -0
- package/types/rt-tools-ui-kit-v2-toggle-switch.d.ts +85 -0
- package/types/rt-tools-ui-kit-v2-toolbar.d.ts +66 -0
- package/types/rt-tools-ui-kit-v2-tooltip.d.ts +74 -0
- package/types/rt-tools-ui-kit-v2-welcome-dialog.d.ts +33 -0
- package/types/rt-tools-ui-kit-v2-workspace-details.d.ts +128 -0
- package/types/rt-tools-ui-kit-v2-workspace.d.ts +84 -0
- package/types/rt-tools-ui-kit-v2.d.ts +87 -9290
- package/rt-tools-ui-kit-v2-0.16.0.tgz +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rt-tools-ui-kit-v2-data-list.mjs","sources":["../../../projects/ui-kit-v2/src/lib/components/data-list/rt-data-list-toolbar.directive.ts","../../../projects/ui-kit-v2/src/lib/components/data-list/toolbar/rt-data-list-toolbar.component.ts","../../../projects/ui-kit-v2/src/lib/components/data-list/toolbar/rt-data-list-toolbar.component.html","../../../projects/ui-kit-v2/src/lib/components/data-list/rt-data-list-pagination.logic.ts","../../../projects/ui-kit-v2/src/lib/components/data-list/rt-data-list-settings.logic.ts","../../../projects/ui-kit-v2/src/lib/components/data-list/settings/rt-data-list-settings-aside.component.ts","../../../projects/ui-kit-v2/src/lib/components/data-list/settings/rt-data-list-settings-aside.component.html","../../../projects/ui-kit-v2/src/lib/components/data-list/rt-data-list-selection.logic.ts","../../../projects/ui-kit-v2/src/lib/components/data-list/rt-data-list.directive.ts","../../../projects/ui-kit-v2/src/lib/components/data-list/rt-data-list-scrollbar.logic.ts","../../../projects/ui-kit-v2/src/lib/components/data-list/rt-data-list.component.ts","../../../projects/ui-kit-v2/src/lib/components/data-list/rt-data-list.component.html","../../../projects/ui-kit-v2/src/lib/components/data-list/rt-data-list-selectors.directive.ts","../../../projects/ui-kit-v2/src/lib/components/data-list/rt-tools-ui-kit-v2-data-list.ts"],"sourcesContent":["import { Directive } from '@angular/core';\n\n/** Селекторы приложения в панели действий: они стоят рядом с «отметить все». */\n@Directive({\n selector: '[rtDataListToolbarSelectors]',\n})\nexport class RtDataListToolbarSelectorsDirective {}\n\n/** Действия приложения в панели: они стоят перед кнопками кита и отделены от них чертой. */\n@Directive({\n selector: '[rtDataListToolbarActions]',\n})\nexport class RtDataListToolbarActionsDirective {}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n DestroyRef,\n effect,\n inject,\n input,\n InputSignal,\n InputSignalWithTransform,\n output,\n OutputEmitterRef,\n signal,\n Signal,\n TemplateRef,\n untracked,\n ViewEncapsulation,\n WritableSignal,\n} from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Observable, timer } from 'rxjs';\nimport { debounce, filter, map, tap } from 'rxjs/operators';\nimport { IRtInput } from '@rt-tools/ui-kit-v2/core';\n\nimport { BlockDirective, ElemDirective, ModDirective } from '@rt-tools/core';\nimport { TNullable } from '@rt-tools/utils';\n\nimport { rtKitLabel } from '@rt-tools/ui-kit-v2/core';\nimport { RtCheckboxComponent } from '@rt-tools/ui-kit-v2/checkbox';\nimport { dataTableIconName } from '@rt-tools/ui-kit-v2/data-table';\nimport { RtIconButtonComponent } from '@rt-tools/ui-kit-v2/icon-button';\nimport { IRtIcon } from '@rt-tools/ui-kit-v2/core';\nimport { RtInputComponent } from '@rt-tools/ui-kit-v2/input';\nimport { RtToolbarComponent, RtToolbarLeftDirective, RtToolbarRightDirective } from '@rt-tools/ui-kit-v2/toolbar';\nimport { RtDataListToolbarActionsDirective, RtDataListToolbarSelectorsDirective } from '../rt-data-list-toolbar.directive';\n\nconst BEM_BLOCK: string = 'rt-data-list-toolbar';\n\n/** Набранное уходит приложению через эту задержку; очистка поля уходит сразу. */\nconst SEARCH_DELAY_MS: number = 500;\n\n/** Значок кнопки — по имени первого кита: перечень соответствий кита даёт ему рисунок. */\nfunction iconOf(glyph: string, fallback: IRtIcon.Name): IRtIcon.Name {\n return dataTableIconName(glyph) ?? fallback;\n}\n\n/**\n * Панель действий списка `rt-data-list` — панель первого кита без Material.\n *\n * Слева — «отметить все» либо счётчик отмеченных и селекторы приложения, справа — действия\n * приложения, снятие отбора, обновление, настройка колонок и поиск. Своего состояния панель не\n * ведёт: обо всём, кроме набранного в поиске, она просит приложение.\n */\n@Component({\n selector: 'rt-data-list-toolbar',\n templateUrl: './rt-data-list-toolbar.component.html',\n styleUrl: './rt-data-list-toolbar.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n // components\n RtCheckboxComponent,\n RtIconButtonComponent,\n RtInputComponent,\n RtToolbarComponent,\n\n // directives\n BlockDirective,\n ElemDirective,\n FormsModule,\n ModDirective,\n NgTemplateOutlet,\n ReactiveFormsModule,\n RtToolbarLeftDirective,\n RtToolbarRightDirective,\n ],\n host: { class: BEM_BLOCK },\n})\nexport class RtDataListToolbarComponent {\n readonly #destroyRef: DestroyRef = inject(DestroyRef);\n\n /**\n * Последнее, что знают и приложение, и поле: отправленное приложению или поставленное им самим.\n * Одно и то же дважды не спрашивается, а поставленное приложением не возвращается ему эхом.\n */\n #lastSearch: string = '';\n\n protected readonly clearFiltersLabel: Signal<string> = rtKitLabel('dataListClearFilters');\n protected readonly refreshLabel: Signal<string> = rtKitLabel('dataListRefresh');\n protected readonly tableConfigLabel: Signal<string> = rtKitLabel('dataListTableConfig');\n protected readonly searchPlaceholder: Signal<string> = rtKitLabel('dataListSearchPlaceholder');\n protected readonly selectAllLabel: Signal<string> = rtKitLabel('dataListSelectAll');\n\n protected readonly selectedLabel: Signal<string> = rtKitLabel(\n 'dataListSelected',\n computed(() => ({ count: this.selectedEntitiesCount() }))\n );\n\n protected readonly clearFiltersIcon: IRtIcon.Name = iconOf('block', 'ban');\n protected readonly refreshIcon: IRtIcon.Name = iconOf('sync', 'sync');\n protected readonly tableConfigIcon: IRtIcon.Name = iconOf('view_column', 'table');\n protected readonly searchIcon: IRtIcon.Name = iconOf('search', 'search');\n\n /** Набранное в поиске: поле — не сигнал, и без этой записи пересчёта по нему не будет. */\n readonly #searchText: WritableSignal<string> = signal('');\n\n /** В поле уже набирали — тогда на заглушке оно остаётся видимым и пустым. */\n readonly #isSearchTouched: WritableSignal<boolean> = signal(false);\n\n /**\n * Поле поиска видно, пока есть строки, а на заглушке — только когда поиск был: в поле что-то\n * набирали или приложение само поставило непустой поиск, не нашедший строк.\n */\n protected readonly isSearchShown: Signal<boolean> = computed(\n () => !this.isPlaceholderShown() || !!this.#searchText() || this.#isSearchTouched() || !!this.searchTerm()?.trim()\n );\n\n protected readonly hasSelectors: Signal<boolean> = computed(() => this.isMultiSelect() || !!this.toolbarSelectorsTpl());\n\n /** Вид поля поиска: `outline` — рамка со всех сторон, `fill` — залитое поле с чертой снизу. */\n public readonly searchAppearance: InputSignal<IRtInput.Appearance> = input<IRtInput.Appearance>('outline');\n\n public readonly isFiltersShown: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n transform: booleanAttribute,\n });\n\n /** Условий отбора нет — снимать нечего, и кнопка недоступна. */\n public readonly isFiltersEmpty: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(true, {\n transform: booleanAttribute,\n });\n\n public readonly isRefreshButtonShown: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(true, {\n transform: booleanAttribute,\n });\n\n public readonly isTableConfigButtonShown: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(true, {\n transform: booleanAttribute,\n });\n\n public readonly isPlaceholderShown: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n transform: booleanAttribute,\n });\n\n /** Контурные значки кнопок полосы — очистки отбора, обновления и настройки колонок, как у первого кита. */\n public readonly isToolbarActionsIconsOutlined: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(true, {\n transform: booleanAttribute,\n });\n\n /** Поиск приложения: поле следует за ним при каждой смене, а не только при первом рисовании. */\n public readonly searchTerm: InputSignal<TNullable<string>> = input<TNullable<string>>('');\n\n public readonly searchChange: OutputEmitterRef<string> = output<string>();\n public readonly refreshAction: OutputEmitterRef<void> = output<void>();\n public readonly clearFiltersAction: OutputEmitterRef<void> = output<void>();\n public readonly openConfigAction: OutputEmitterRef<void> = output<void>();\n\n public readonly toolbarSelectorsTpl: Signal<TNullable<TemplateRef<unknown>>> = contentChild(RtDataListToolbarSelectorsDirective, {\n read: TemplateRef,\n });\n\n public readonly toolbarActionsTpl: Signal<TNullable<TemplateRef<unknown>>> = contentChild(RtDataListToolbarActionsDirective, {\n read: TemplateRef,\n });\n\n /** Состояние выбора; его ставит директива выбора списка. */\n public readonly isMultiSelect: WritableSignal<boolean> = signal(false);\n public readonly isSelectAllSelectorShown: WritableSignal<boolean> = signal(true);\n public readonly isSelectAllSelectorDisabled: WritableSignal<boolean> = signal(false);\n public readonly isAllEntitiesSelected: WritableSignal<boolean> = signal(false);\n public readonly isAllEntitiesIndeterminate: WritableSignal<boolean> = signal(false);\n public readonly selectedEntitiesCount: WritableSignal<number> = signal(0);\n\n public readonly searchControl: FormControl<TNullable<string>> = new FormControl<TNullable<string>>(null);\n\n constructor() {\n /* Поиск приложения ставится в поле, только когда он отличается от последнего, что панель\n отправила или поставила сама. Эхо отправленного — даже запоздалое, когда человек уже\n дописал дальше, — поле не трогает: иначе оно стирало бы набранное и сбивало каретку. */\n effect(() => {\n const term: string = this.searchTerm() ?? '';\n\n untracked(() => {\n if (term.trim() === this.#lastSearch) {\n return;\n }\n\n this.#lastSearch = term.trim();\n this.searchControl.setValue(term, { emitEvent: false });\n this.#searchText.set(term);\n });\n });\n\n /* Набранное уходит приложению, когда человек перестал печатать; пустое — сразу, иначе\n очистка поля ждала бы полсекунды. Одно и то же дважды не спрашивается. */\n this.searchControl.valueChanges\n .pipe(\n tap((value: TNullable<string>) => {\n this.#searchText.set(value ?? '');\n this.#isSearchTouched.set(true);\n }),\n debounce((value: TNullable<string>): Observable<number> => timer(value ? SEARCH_DELAY_MS : 0)),\n map((value: TNullable<string>) => (value ?? '').trim()),\n // Набранное, которое приложение успело заменить своим поиском, уже не в поле.\n filter((value: string) => value === (this.searchControl.value ?? '').trim()),\n filter((value: string) => value !== this.#lastSearch),\n takeUntilDestroyed(this.#destroyRef)\n )\n .subscribe((value: string) => {\n this.#lastSearch = value;\n this.searchChange.emit(value);\n });\n }\n\n /** Отметить все записи; метод ставит директива выбора списка. */\n public onToggleAllEntities: (checked: boolean) => void = (): void => undefined;\n\n protected onRefresh(): void {\n this.refreshAction.emit();\n }\n\n protected onClearFilters(): void {\n this.clearFiltersAction.emit();\n }\n\n protected onOpenConfig(): void {\n this.openConfigAction.emit();\n }\n}\n","<ng-container rtBlock=\"rt-data-list-toolbar\">\n <rt-toolbar>\n @if (hasSelectors() && !isPlaceholderShown()) {\n <ng-container *rtToolbarLeft>\n <div rtElem=\"selectors\">\n @if (isMultiSelect()) {\n @if (isSelectAllSelectorShown()) {\n <rt-checkbox\n qa-dataid=\"data-list-select-all\"\n [ariaLabel]=\"selectAllLabel()\"\n [disabled]=\"isSelectAllSelectorDisabled()\"\n [indeterminate]=\"isAllEntitiesIndeterminate() && !isAllEntitiesSelected()\"\n [ngModel]=\"isAllEntitiesSelected()\"\n [ngModelOptions]=\"{ standalone: true }\"\n (ngModelChange)=\"onToggleAllEntities($event)\">\n {{ selectAllLabel() }}\n </rt-checkbox>\n } @else {\n <span rtElem=\"counter\" qa-dataid=\"data-list-selected-count\">{{ selectedLabel() }}</span>\n }\n }\n\n @if (toolbarSelectorsTpl(); as selectors) {\n <ng-container [ngTemplateOutlet]=\"selectors\" />\n }\n </div>\n </ng-container>\n }\n\n <ng-container *rtToolbarRight>\n <div rtElem=\"right\">\n <div rtElem=\"actions\">\n @if (toolbarActionsTpl(); as actions) {\n <ng-container [ngTemplateOutlet]=\"actions\" />\n\n <span rtElem=\"divider\"></span>\n }\n\n @if (isFiltersShown()) {\n <rt-icon-button\n qa-dataid=\"data-list-clear-filters\"\n variant=\"ghost\"\n [iconFill]=\"!isToolbarActionsIconsOutlined()\"\n [icon]=\"clearFiltersIcon\"\n [ariaLabel]=\"clearFiltersLabel()\"\n [tooltip]=\"clearFiltersLabel()\"\n [disabled]=\"isFiltersEmpty()\"\n (clicked)=\"onClearFilters()\" />\n }\n\n @if (isRefreshButtonShown()) {\n <rt-icon-button\n qa-dataid=\"data-list-refresh\"\n variant=\"ghost\"\n [iconFill]=\"!isToolbarActionsIconsOutlined()\"\n [icon]=\"refreshIcon\"\n [ariaLabel]=\"refreshLabel()\"\n [tooltip]=\"refreshLabel()\"\n (clicked)=\"onRefresh()\" />\n }\n\n @if (isTableConfigButtonShown()) {\n <rt-icon-button\n qa-dataid=\"data-list-table-config\"\n variant=\"ghost\"\n [iconFill]=\"!isToolbarActionsIconsOutlined()\"\n [icon]=\"tableConfigIcon\"\n [ariaLabel]=\"tableConfigLabel()\"\n [tooltip]=\"tableConfigLabel()\"\n (clicked)=\"onOpenConfig()\" />\n }\n </div>\n\n @if (isSearchShown()) {\n <div rtElem=\"search\">\n <rt-input\n qa-dataid=\"data-list-search\"\n size=\"sm\"\n [appearance]=\"searchAppearance()\"\n [iconLeft]=\"searchIcon\"\n [placeholder]=\"searchPlaceholder()\"\n [ariaLabel]=\"searchPlaceholder()\"\n [formControl]=\"searchControl\" />\n </div>\n }\n </div>\n </ng-container>\n </rt-toolbar>\n</ng-container>\n","import { IPageModel } from '@rt-tools/utils';\n\n/** Размеры страницы, которые предлагает первый кит. */\nexport const DATA_LIST_PAGE_SIZES: ReadonlyArray<number> = [10, 20, 40, 50];\n\n/** Страниц всего при этом размере страницы. */\nexport function dataListPageCount(totalCount: number, pageSize: number): number {\n return pageSize > 0 ? Math.ceil(totalCount / pageSize) : 0;\n}\n\n/**\n * Предлагаемые размеры страницы: размер годится, пока его половина не больше числа записей.\n * Нынешний размер предлагается всегда — иначе список показывал бы размер, которого нет в списке.\n */\nexport function dataListPageSizes(page: IPageModel): number[] {\n return DATA_LIST_PAGE_SIZES.filter((size: number) => size / 2 <= page.totalCount || size === page.pageSize);\n}\n\n/**\n * Новая страница при смене размера: человек остаётся на том же расстоянии от конца списка —\n * приём первого кита.\n */\nexport function dataListPageAfterSizeChange(page: IPageModel, pageSize: number): Partial<IPageModel> {\n const nextTotal: number = dataListPageCount(page.totalCount, pageSize);\n const previousTotal: number = dataListPageCount(page.totalCount, page.pageSize);\n const correction: number = Math.floor(((previousTotal - page.pageNumber) * page.pageSize) / pageSize);\n\n return { pageNumber: nextTotal - correction, pageSize };\n}\n","import { TitleCasePipe } from '@angular/common';\n\nimport { BreakStringPipe } from '@rt-tools/core';\n\nimport { IRtDataTable } from '@rt-tools/ui-kit-v2/core';\nimport { IRtTable } from '@rt-tools/ui-kit-v2/table';\n\nconst breakString: BreakStringPipe = new BreakStringPipe();\nconst titleCase: TitleCasePipe = new TitleCasePipe();\n\n/**\n * Колонки — в пункты готового редактора списка колонок кита. Подпись берётся так же, как её\n * берёт первый кит: имя для настроек, а без него — имя свойства, разбитое по словам и с\n * заглавных: `userIcon` → «User Icon».\n */\nexport function dataListSettingItems<ENTITY_TYPE>(columns: ReadonlyArray<IRtDataTable.Column<ENTITY_TYPE>>): IRtTable.ColumnSettingItem[] {\n return columns.map((column: IRtDataTable.Column<ENTITY_TYPE>): IRtTable.ColumnSettingItem => {\n const propName: string = String(column.propName);\n const isNamed: boolean = !!column.displayName?.length && column.displayName !== propName;\n\n return {\n key: propName,\n label: isNamed ? String(column.displayName) : titleCase.transform(breakString.transform(propName)),\n hidden: !!column.hidden,\n };\n });\n}\n\n/** Обратно: порядок и видимость из пунктов редактора — в описания колонок. */\nexport function dataListColumnsFromItems<ENTITY_TYPE>(\n columns: ReadonlyArray<IRtDataTable.Column<ENTITY_TYPE>>,\n items: ReadonlyArray<IRtTable.ColumnSettingItem>\n): Array<IRtDataTable.Column<ENTITY_TYPE>> {\n const byKey: Map<string, IRtDataTable.Column<ENTITY_TYPE>> = new Map(\n columns.map((column: IRtDataTable.Column<ENTITY_TYPE>) => [String(column.propName), column])\n );\n\n return items.flatMap((item: IRtTable.ColumnSettingItem, index: number): Array<IRtDataTable.Column<ENTITY_TYPE>> => {\n const column: IRtDataTable.Column<ENTITY_TYPE> | undefined = byKey.get(item.key);\n\n return column ? [{ ...column, hidden: item.hidden, orderIndex: index }] : [];\n });\n}\n\n/** Слепок настройки: порядок колонок, их видимость и два признака полос прокрутки. */\nfunction dataListSettingsShape<ENTITY_TYPE>(config: IRtDataTable.Config.Data<ENTITY_TYPE>): string {\n return JSON.stringify([\n config.isVerticalScrollbarShown,\n config.isHorizontalScrollbarShown,\n config.columns.map((column: IRtDataTable.Column<ENTITY_TYPE>) => [String(column.propName), !!column.hidden]),\n ]);\n}\n\n/** В панели что-то изменилось: порядок колонок, их видимость или признаки полос прокрутки. */\nexport function dataListSettingsChanged<ENTITY_TYPE>(\n saved: IRtDataTable.Config.Data<ENTITY_TYPE>,\n current: IRtDataTable.Config.Data<ENTITY_TYPE>\n): boolean {\n return dataListSettingsShape(saved) !== dataListSettingsShape(current);\n}\n\n/**\n * Колонка перетащена на новое место — новый порядок пунктов. Индексы — по всему списку, как их\n * отдаёт перетаскивание; место, совпавшее со старым, возвращает тот же список.\n */\nexport function dataListMoveItem(\n items: ReadonlyArray<IRtTable.ColumnSettingItem>,\n from: number,\n to: number\n): ReadonlyArray<IRtTable.ColumnSettingItem> {\n if (from === to || !items[from]) {\n return items;\n }\n const next: IRtTable.ColumnSettingItem[] = [...items];\n const moved: IRtTable.ColumnSettingItem = next.splice(from, 1)[0];\n\n next.splice(Math.min(Math.max(to, 0), next.length), 0, moved);\n\n return next;\n}\n\n/** Видимость колонки переключена кнопкой-глазом. Закреплённую колонку кнопка не трогает. */\nexport function dataListToggleHidden(\n items: ReadonlyArray<IRtTable.ColumnSettingItem>,\n key: string\n): ReadonlyArray<IRtTable.ColumnSettingItem> {\n return items.map((item: IRtTable.ColumnSettingItem) =>\n item.key === key && item.locked !== true ? { ...item, hidden: !item.hidden } : item\n );\n}\n","import { CdkDrag, CdkDragDrop, CdkDragHandle, CdkDropList } from '@angular/cdk/drag-drop';\nimport {\n afterNextRender,\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n inject,\n Signal,\n signal,\n ViewEncapsulation,\n WritableSignal,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport { BlockDirective, ElemDirective, ModDirective } from '@rt-tools/core';\n\nimport { rtKitLabel } from '@rt-tools/ui-kit-v2/core';\nimport { RtAsideRef } from '@rt-tools/ui-kit-v2/aside';\nimport { RT_ASIDE_DATA } from '@rt-tools/ui-kit-v2/aside';\nimport { RtAsideComponent } from '@rt-tools/ui-kit-v2/aside';\nimport { RtAsideFooterComponent } from '@rt-tools/ui-kit-v2/aside';\nimport { RtAsideHeaderComponent } from '@rt-tools/ui-kit-v2/aside';\nimport { RtButtonDirective } from '@rt-tools/ui-kit-v2/button';\nimport { IRtDataTable, RT_PRESET_MATERIAL_CLASS } from '@rt-tools/ui-kit-v2/core';\nimport { RtIconButtonComponent } from '@rt-tools/ui-kit-v2/icon-button';\nimport { RtIconComponent } from '@rt-tools/ui-kit-v2/icon';\nimport { IRtTable } from '@rt-tools/ui-kit-v2/table';\nimport { RtToggleSwitchComponent } from '@rt-tools/ui-kit-v2/toggle-switch';\nimport {\n dataListColumnsFromItems,\n dataListMoveItem,\n dataListSettingItems,\n dataListSettingsChanged,\n dataListToggleHidden,\n} from '../rt-data-list-settings.logic';\n\nconst BEM_BLOCK: string = 'rt-data-list-settings-aside';\n\n/**\n * Панель настройки колонок списка `rt-data-list` — панель первого кита без Material.\n *\n * Панель поднимает служба боковых панелей кита; настройку она получает её же данными и отдаёт\n * обратно закрытием. Сам список колонок рисует готовый редактор кита — перетаскивание и глаз у\n * него уже есть. Сохранение недоступно, пока в панели ничего не изменилось; отмена не меняет\n * ничего.\n */\n@Component({\n selector: 'rt-data-list-settings-aside',\n templateUrl: './rt-data-list-settings-aside.component.html',\n styleUrl: './rt-data-list-settings-aside.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n // components\n RtAsideComponent,\n RtAsideFooterComponent,\n RtAsideHeaderComponent,\n RtIconButtonComponent,\n RtIconComponent,\n RtToggleSwitchComponent,\n\n // directives\n BlockDirective,\n CdkDrag,\n CdkDragHandle,\n CdkDropList,\n ElemDirective,\n FormsModule,\n ModDirective,\n RtButtonDirective,\n ],\n host: { class: BEM_BLOCK },\n})\nexport class RtDataListSettingsAsideComponent<ENTITY_TYPE = Record<string, unknown>> {\n readonly #host: ElementRef<HTMLElement> = inject<ElementRef<HTMLElement>>(ElementRef);\n readonly #asideRef: RtAsideRef<IRtDataTable.Config.Data<ENTITY_TYPE>> =\n inject<RtAsideRef<IRtDataTable.Config.Data<ENTITY_TYPE>>>(RtAsideRef);\n\n /** Настройка, с которой панель открыли: с ней же сверяется, изменилось ли что-нибудь. */\n readonly #saved: IRtDataTable.Config.Data<ENTITY_TYPE> = inject(RT_ASIDE_DATA) as IRtDataTable.Config.Data<ENTITY_TYPE>;\n\n protected readonly title: Signal<string> = rtKitLabel('dataListSettingsTitle');\n protected readonly hint: Signal<string> = rtKitLabel('dataListSettingsHint');\n protected readonly verticalLabel: Signal<string> = rtKitLabel('dataListVerticalScrollbar');\n protected readonly horizontalLabel: Signal<string> = rtKitLabel('dataListHorizontalScrollbar');\n protected readonly saveLabel: Signal<string> = rtKitLabel('uiSave');\n protected readonly cancelLabel: Signal<string> = rtKitLabel('uiDiscardChanges');\n protected readonly dragLabel: Signal<string> = rtKitLabel('uiDragColumn');\n protected readonly showColumnLabel: Signal<string> = rtKitLabel('uiShowColumn');\n protected readonly hideColumnLabel: Signal<string> = rtKitLabel('uiHideColumn');\n protected readonly showLabel: Signal<string> = rtKitLabel('uiShow');\n protected readonly hideLabel: Signal<string> = rtKitLabel('uiHide');\n\n protected readonly items: WritableSignal<ReadonlyArray<IRtTable.ColumnSettingItem>> = signal(dataListSettingItems(this.#saved.columns));\n\n protected readonly isVerticalScrollbarShown: WritableSignal<boolean> = signal(this.#saved.isVerticalScrollbarShown);\n protected readonly isHorizontalScrollbarShown: WritableSignal<boolean> = signal(this.#saved.isHorizontalScrollbarShown);\n\n protected readonly config: Signal<IRtDataTable.Config.Data<ENTITY_TYPE>> = computed(() => ({\n isVerticalScrollbarShown: this.isVerticalScrollbarShown(),\n isHorizontalScrollbarShown: this.isHorizontalScrollbarShown(),\n columns: dataListColumnsFromItems(this.#saved.columns, this.items()),\n }));\n\n /**\n * Класс тянутой плашки. Её наложение переносит в конец страницы, вне панели, и вид первого\n * кита, который панель получила классом набора на наложении, туда не доходит: плашка несёт\n * класс на себе. Предок с классом известен только после первой отрисовки.\n */\n protected readonly dragPreviewClass: WritableSignal<string> = signal('');\n\n protected readonly isChanged: Signal<boolean> = computed(() => dataListSettingsChanged(this.#saved, this.config()));\n\n constructor() {\n afterNextRender((): void => {\n if (this.#host.nativeElement.closest(`.${RT_PRESET_MATERIAL_CLASS}`) !== null) {\n this.dragPreviewClass.set(RT_PRESET_MATERIAL_CLASS);\n }\n });\n }\n\n protected onDrop(event: CdkDragDrop<unknown>): void {\n this.items.set(dataListMoveItem(this.items(), event.previousIndex, event.currentIndex));\n }\n\n protected onToggleHidden(key: string): void {\n this.items.set(dataListToggleHidden(this.items(), key));\n }\n\n protected onSave(): void {\n this.#asideRef.close(this.config());\n }\n\n protected onCancel(): void {\n this.#asideRef.close();\n }\n}\n","<rt-aside size=\"md\" [ariaLabel]=\"title()\">\n <!-- Подпись стоит в шапке под заголовком, как у панели первого кита. -->\n <rt-aside-header [title]=\"title()\" [subtitle]=\"hint()\" />\n\n <ng-container rtBlock=\"rt-data-list-settings-aside\">\n <div rtElem=\"switches\">\n <div rtElem=\"switch-row\">\n <rt-toggle-switch\n qa-dataid=\"data-list-settings-vertical\"\n [ariaLabel]=\"verticalLabel()\"\n [ngModel]=\"isVerticalScrollbarShown()\"\n [ngModelOptions]=\"{ standalone: true }\"\n (ngModelChange)=\"isVerticalScrollbarShown.set($event)\" />\n <span rtElem=\"switch-label\" qa-dataid=\"data-list-settings-vertical-label\" [rtMod]=\"{ on: isVerticalScrollbarShown() }\">\n {{ verticalLabel() }}\n </span>\n </div>\n\n <div rtElem=\"switch-row\">\n <rt-toggle-switch\n qa-dataid=\"data-list-settings-horizontal\"\n [ariaLabel]=\"horizontalLabel()\"\n [ngModel]=\"isHorizontalScrollbarShown()\"\n [ngModelOptions]=\"{ standalone: true }\"\n (ngModelChange)=\"isHorizontalScrollbarShown.set($event)\" />\n <span rtElem=\"switch-label\" qa-dataid=\"data-list-settings-horizontal-label\" [rtMod]=\"{ on: isHorizontalScrollbarShown() }\">\n {{ horizontalLabel() }}\n </span>\n </div>\n </div>\n\n <!-- Колонки — плашками первого кита: ручка ✥ и черта, имя, черта и глаз. Общая панель\n колонок кита рисует вид второго кита, и её рисует его собственная таблица. -->\n <ul rtElem=\"columns\" qa-dataid=\"data-list-settings-columns\" cdkDropList (cdkDropListDropped)=\"onDrop($event)\">\n @for (item of items(); track item.key) {\n <li\n rtElem=\"column\"\n qa-dataid=\"data-list-settings-column\"\n cdkDrag\n [cdkDragPreviewClass]=\"dragPreviewClass()\"\n [attr.data-key]=\"item.key\"\n [rtMod]=\"{ hidden: item.hidden, locked: item.locked === true }\"\n [cdkDragDisabled]=\"item.locked === true\">\n <button\n rtElem=\"handle\"\n qa-dataid=\"data-list-settings-drag\"\n type=\"button\"\n cdkDragHandle\n [disabled]=\"item.locked === true\"\n [attr.aria-label]=\"dragLabel()\">\n <rt-icon name=\"arrows\" size=\"sm\" />\n </button>\n\n <span rtElem=\"column-label\" qa-dataid=\"data-list-settings-column-label\">{{ item.label }}</span>\n\n <rt-icon-button\n rtElem=\"toggle\"\n qa-dataid=\"data-list-settings-toggle\"\n variant=\"ghost\"\n [icon]=\"item.hidden ? 'eye-slash' : 'eye'\"\n [ariaLabel]=\"item.hidden ? showColumnLabel() : hideColumnLabel()\"\n [tooltip]=\"item.hidden ? showLabel() : hideLabel()\"\n [disabled]=\"item.locked === true\"\n (clicked)=\"onToggleHidden(item.key)\" />\n </li>\n }\n </ul>\n </ng-container>\n\n <!-- Блок стоит над подвалом, чтобы кнопка сохранения взяла свой элемент: подпись прописными,\n как в подвале первого кита. -->\n <ng-container rtBlock=\"rt-data-list-settings-aside\" ngProjectAs=\"rt-aside-footer\">\n <rt-aside-footer>\n <!-- Подпись кнопке рисует директива кита, поэтому тело пустое. -->\n <button\n rtButton\n asideDismiss\n type=\"button\"\n appearance=\"text\"\n qa-dataid=\"data-list-settings-cancel\"\n [label]=\"cancelLabel()\"\n (click)=\"onCancel()\">\n <!-- empty: label is drawn by the directive -->\n </button>\n\n <button\n rtButton\n rtElem=\"save\"\n asidePrimary\n type=\"button\"\n qa-dataid=\"data-list-settings-save\"\n [label]=\"saveLabel()\"\n [disabled]=\"!isChanged()\"\n (click)=\"onSave()\">\n <!-- empty: label is drawn by the directive -->\n </button>\n </rt-aside-footer>\n </ng-container>\n</rt-aside>\n","import { dataTableWithEntity, dataTableWithoutPageEntities, dataTableWithPageEntities } from '@rt-tools/ui-kit-v2/data-table';\n\n/** Отметки и исключения после смены страницы: пришедшие строки отмечаются, кроме исключённых. */\nexport function dataListSelectedAfterPage<ENTITY_TYPE, KEY extends keyof ENTITY_TYPE>(\n selected: ReadonlyArray<ENTITY_TYPE>,\n page: ReadonlyArray<ENTITY_TYPE>,\n excluded: ReadonlyArray<ENTITY_TYPE>,\n keyExp: KEY\n): ENTITY_TYPE[] {\n const excludedKeys: Array<ENTITY_TYPE[KEY]> = excluded.map((entity: ENTITY_TYPE) => entity[keyExp]);\n\n return dataTableWithPageEntities(selected, page, keyExp).filter((entity: ENTITY_TYPE) => !excludedKeys.includes(entity[keyExp]));\n}\n\n/** Исключения после отметки или снятия одной записи под «отметить все». */\nexport function dataListExcludedAfterEntity<ENTITY_TYPE, KEY extends keyof ENTITY_TYPE>(\n excluded: ReadonlyArray<ENTITY_TYPE>,\n entity: ENTITY_TYPE,\n checked: boolean,\n keyExp: KEY\n): ENTITY_TYPE[] {\n return dataTableWithEntity(excluded, entity, !checked, keyExp);\n}\n\n/** Исключения после отметки всей страницы под «отметить все»: её записи уходят из исключений. */\nexport function dataListExcludedAfterPageMarked<ENTITY_TYPE, KEY extends keyof ENTITY_TYPE>(\n excluded: ReadonlyArray<ENTITY_TYPE>,\n page: ReadonlyArray<ENTITY_TYPE>,\n keyExp: KEY\n): ENTITY_TYPE[] {\n return dataTableWithoutPageEntities(excluded, page, keyExp);\n}\n\n/** Исключения после снятия всей страницы под «отметить все»: её записи становятся исключениями. */\nexport function dataListExcludedAfterPageUnmarked<ENTITY_TYPE, KEY extends keyof ENTITY_TYPE>(\n excluded: ReadonlyArray<ENTITY_TYPE>,\n page: ReadonlyArray<ENTITY_TYPE>,\n keyExp: KEY\n): ENTITY_TYPE[] {\n return dataTableWithPageEntities(excluded, page, keyExp);\n}\n","import { Directive, input, InputSignal, TemplateRef } from '@angular/core';\n\n/** Шаблоны пользовательских ячеек списка: они уезжают в его таблицу. */\n@Directive({\n selector: '[rtDataListCustomCells]',\n})\nexport class RtDataListCustomCellsDirective<ENTITY_TYPE> {\n public readonly cellsTemplates: InputSignal<{\n [K in keyof ENTITY_TYPE]?: TemplateRef<{ $implicit: ENTITY_TYPE }>;\n }> = input.required({ alias: 'rtDataListCustomCells' });\n}\n\n/** Пункты меню строки списка. */\n@Directive({\n selector: '[rtDataListRowActions]',\n})\nexport class RtDataListRowActionsDirective {}\n\n/** Действия строки рядом с кнопкой меню. */\n@Directive({\n selector: '[rtDataListAdditionalRowActions]',\n})\nexport class RtDataListAdditionalRowActionsDirective {}\n","/**\n * Стандартные свойства полосы прокрутки таблицы по выбору человека. Пусто — таблица берёт тихую\n * полосу основы кита.\n *\n * Основа кита ставит `scrollbar-width` и `scrollbar-color` своим узлам, а Chrome при заданном\n * стандартном свойстве не читает `::-webkit-scrollbar` вовсе: нулевой размер оттуда полосу не\n * прятал. Обе скрытые полосы прячет `scrollbar-width: none` в любом браузере. Одну из двух\n * стандартные свойства не прячут — они про обе оси сразу, поэтому тогда они сбрасываются в `auto`,\n * и размер каждой оси задаёт `::-webkit-scrollbar`.\n */\nexport interface IRtDataListScrollbarStandard {\n readonly width: string | null;\n readonly color: string | null;\n}\n\nexport function dataListScrollbarStandard(isVerticalShown: boolean, isHorizontalShown: boolean): IRtDataListScrollbarStandard {\n if (isVerticalShown && isHorizontalShown) {\n return { width: null, color: null };\n }\n\n if (!isVerticalShown && !isHorizontalShown) {\n return { width: 'none', color: null };\n }\n\n return { width: 'auto', color: 'auto' };\n}\n","import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n DestroyRef,\n effect,\n inject,\n input,\n InputSignal,\n InputSignalWithTransform,\n output,\n OutputEmitterRef,\n Signal,\n TemplateRef,\n viewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { DOCUMENT, NgTemplateOutlet } from '@angular/common';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Observable, Subject } from 'rxjs';\nimport { exhaustMap, filter } from 'rxjs/operators';\nimport { IRtKitConfig } from '@rt-tools/ui-kit-v2/core';\nimport { rtKitDefault } from '@rt-tools/ui-kit-v2/core';\nimport { IRtInput } from '@rt-tools/ui-kit-v2/core';\n\nimport { BlockDirective, ElemDirective } from '@rt-tools/core';\nimport { IPageModel, ISortModel, TNullable, transformArrayInput } from '@rt-tools/utils';\n\nimport { rtKitLabel } from '@rt-tools/ui-kit-v2/core';\nimport { RtAsideService } from '@rt-tools/ui-kit-v2/aside';\nimport { RtDataTableComponent } from '@rt-tools/ui-kit-v2/data-table';\nimport { RtDataTableConfigService } from '@rt-tools/ui-kit-v2/data-table';\nimport { RtDataTableIconDirective } from '@rt-tools/ui-kit-v2/data-table';\nimport {\n RtDataTableAdditionalRowActionsDirective,\n RtDataTableCustomCellsDirective,\n RtDataTableRowActionsDirective,\n} from '@rt-tools/ui-kit-v2/data-table';\nimport { IRtDataTable, RT_DATA_TABLE_PRESET_FROM_HOST, RT_PRESET_MATERIAL_CLASS, TRtDataTableFilters } from '@rt-tools/ui-kit-v2/core';\nimport { RtEmptyStateComponent } from '@rt-tools/ui-kit-v2/empty-state';\nimport { RtSpinnerComponent } from '@rt-tools/ui-kit-v2/spinner';\nimport { RtPaginationComponent } from '@rt-tools/ui-kit-v2/pagination';\nimport { dataListPageAfterSizeChange, dataListPageSizes } from './rt-data-list-pagination.logic';\nimport { RtDataListSettingsAsideComponent } from './settings/rt-data-list-settings-aside.component';\nimport { RtDataListToolbarComponent } from './toolbar/rt-data-list-toolbar.component';\nimport {\n RtDataListAdditionalRowActionsDirective,\n RtDataListCustomCellsDirective,\n RtDataListRowActionsDirective,\n} from './rt-data-list.directive';\nimport { dataListScrollbarStandard, IRtDataListScrollbarStandard } from './rt-data-list-scrollbar.logic';\nimport { RtDataListToolbarActionsDirective, RtDataListToolbarSelectorsDirective } from './rt-data-list-toolbar.directive';\n\nconst BEM_BLOCK: string = 'rt-data-list';\n\n/** Показанная полоса прокрутки — ступень размеров кита, та же, что в основе его полос. */\nconst SCROLLBAR_SIZE: string = 'var(--rt-size-3)';\n\n/** Скрытая полоса — нулевой размер: прокрутка остаётся, видно её не будет. */\nconst SCROLLBAR_HIDDEN: string = '0';\n\n/** Свойства полос прокрутки, которые список ставит на корень страницы и снимает, уходя. */\nconst SCROLLBAR_PROPERTIES: ReadonlyArray<string> = [\n '--rt-data-table-scrollbar-vertical-width',\n '--rt-data-table-scrollbar-horizontal-height',\n '--rt-data-table-scrollbar-width',\n '--rt-data-table-scrollbar-color',\n];\n\n/** Сколько живых списков держат полосы на корне каждой страницы: снимает их только последний. */\nconst SCROLLBAR_HOLDERS: WeakMap<HTMLElement, number> = new WeakMap<HTMLElement, number>();\n\n/**\n * Список записей первого кита во втором: панель действий, таблица, полоса страниц, заглушка\n * пустого списка и вид загрузки.\n *\n * Своего состояния список не ведёт вовсе: страницу, порядок, условия отбора и поиск он просит у\n * приложения. Службу настроек колонок объявляет и наполняет само приложение — список её только\n * читает и пишет в неё сохранённое панелью, которую поднимает службой боковых панелей кита.\n */\n@Component({\n selector: 'rt-data-list',\n templateUrl: './rt-data-list.component.html',\n styleUrl: './rt-data-list.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n // components\n RtPaginationComponent,\n RtDataListToolbarComponent,\n RtDataTableComponent,\n RtEmptyStateComponent,\n RtSpinnerComponent,\n\n // directives\n BlockDirective,\n ElemDirective,\n NgTemplateOutlet,\n RtDataListToolbarActionsDirective,\n RtDataListToolbarSelectorsDirective,\n RtDataTableAdditionalRowActionsDirective,\n RtDataTableCustomCellsDirective,\n RtDataTableIconDirective,\n RtDataTableRowActionsDirective,\n ],\n host: { class: BEM_BLOCK, '[class.rt-preset-material]': \"look() === 'material'\" },\n providers: [{ provide: RT_DATA_TABLE_PRESET_FROM_HOST, useValue: true }],\n})\nexport class RtDataListComponent<\n ENTITY_TYPE extends Record<string, unknown>,\n SORT_PROPERTY extends Extract<keyof ENTITY_TYPE, string>,\n KEY extends Extract<keyof ENTITY_TYPE, string>,\n> {\n readonly #destroyRef: DestroyRef = inject(DestroyRef);\n readonly #asideService: RtAsideService = inject(RtAsideService);\n\n /* Вид считается из настроек при объявлении входа: вход в разметке по-прежнему перебивает всё. */\n readonly #look: IRtDataTable.Look = rtKitDefault(\n 'dataTable',\n (it: IRtKitConfig.DataTable): IRtDataTable.Look | undefined => it.look,\n 'material'\n );\n readonly #appearance: IRtInput.Appearance = rtKitDefault(\n 'dataList',\n (it: IRtKitConfig.DataList): IRtInput.Appearance | undefined => it.appearance,\n 'fill'\n );\n readonly #filterAppearance: IRtInput.Appearance = rtKitDefault(\n 'dataList',\n (it: IRtKitConfig.DataList): IRtInput.Appearance | undefined => it.filterAppearance,\n 'outline'\n );\n readonly #configService: RtDataTableConfigService<ENTITY_TYPE> = inject(RtDataTableConfigService);\n readonly #pageRoot: HTMLElement = inject(DOCUMENT).documentElement;\n\n /**\n * Нажатия на «настроить колонки». Панель открывается объявленным потоком, а `exhaustMap`\n * держит одну открытую: второе нажатие при открытой панели открывать нечего — приём первого\n * кита, там иначе настройку сохраняла та панель, что закрылась последней.\n */\n readonly #openSettingsSource: Subject<void> = new Subject<void>();\n\n protected readonly placeholderLabel: Signal<string> = rtKitLabel('dataListPlaceholder');\n\n /** Заглушку показывают, когда нет ни строк, ни условий отбора. */\n protected readonly isPlaceholderShown: Signal<boolean> = computed(() => !this.entities().length && !this.filterModel().length);\n\n protected readonly isFiltersEmpty: Signal<boolean> = computed(() => !this.filterModel().length);\n\n /** Размеры страницы, которые предлагает полоса: те же, что у первого кита. */\n protected readonly pageSizes: Signal<number[]> = computed(() => dataListPageSizes(this.pageModel()));\n\n /**\n * Вид семьи. Материальный набор стоит на самом узле, а не на странице: семья выглядит как первый\n * кит, где бы её ни поставили, и соседи на странице своего вида не теряют.\n */\n public readonly look: InputSignal<IRtDataTable.Look> = input<IRtDataTable.Look>(this.#look);\n\n /** Вид поля поиска, как `appearance` списка первого кита; умолчание берётся из настроек кита. */\n public readonly appearance: InputSignal<IRtInput.Appearance> = input<IRtInput.Appearance>(this.#appearance);\n\n /**\n * Вид полей отбора: `outline` — рамка со всех сторон, `fill` — залитое поле с чертой снизу. От\n * `appearance` он не зависит: у первого кита поля отбора обведены, какой бы ни был поиск.\n */\n public readonly filterAppearance: InputSignal<IRtInput.Appearance> = input<IRtInput.Appearance>(this.#filterAppearance);\n\n /** Контурные значки кнопок полосы: очистки отбора, обновления и настройки колонок, как у первого кита. */\n public readonly isToolbarActionsIconsOutlined: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(true, {\n transform: booleanAttribute,\n });\n\n public readonly tableConfigStorageKey: InputSignal<string> = input.required<string>();\n\n public readonly entities: InputSignalWithTransform<ENTITY_TYPE[], ENTITY_TYPE[] | null | undefined> = input.required<\n ENTITY_TYPE[],\n ENTITY_TYPE[] | null | undefined\n >({ transform: transformArrayInput });\n\n public readonly pageModel: InputSignal<IPageModel> = input.required<IPageModel>();\n public readonly currentSortModel: InputSignal<TNullable<ISortModel<SORT_PROPERTY>>> =\n input.required<TNullable<ISortModel<SORT_PROPERTY>>>();\n\n public readonly searchTerm: InputSignal<TNullable<string>> = input<TNullable<string>>('');\n\n /** Условия отбора: их ключ — имя свойства колонки, а не ключ записи, как и у таблицы. */\n public readonly filterModel: InputSignalWithTransform<TRtDataTableFilters<ENTITY_TYPE>, TNullable<TRtDataTableFilters<ENTITY_TYPE>>> =\n input<TRtDataTableFilters<ENTITY_TYPE>, TNullable<TRtDataTableFilters<ENTITY_TYPE>>>([], { transform: transformArrayInput });\n\n public readonly keyExp: InputSignal<NonNullable<KEY>> = input('id' as NonNullable<KEY>);\n\n /** Первая загрузка: вместо списка крутилка. */\n public readonly loading: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, { transform: booleanAttribute });\n\n /** Дозагрузка: строки остаются, а поверх них крутилка с подложкой. */\n public readonly fetching: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, { transform: booleanAttribute });\n\n public readonly isTableRowsClickable: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n transform: booleanAttribute,\n });\n\n public readonly isFiltersShown: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n transform: booleanAttribute,\n });\n\n public readonly isRefreshButtonShown: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(true, {\n transform: booleanAttribute,\n });\n\n public readonly isTableConfigButtonShown: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(true, {\n transform: booleanAttribute,\n });\n\n /**\n * Признак полосы страниц: выключенный убирает полосу из разметки, включённый оставляет её\n * правилам самой полосы. Первый кит признак принимал и никуда не передавал.\n */\n public readonly isPaginationShown: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(true, {\n transform: booleanAttribute,\n });\n\n public readonly sortChange: OutputEmitterRef<ISortModel<SORT_PROPERTY>> = output<ISortModel<SORT_PROPERTY>>();\n public readonly filterChange: OutputEmitterRef<TRtDataTableFilters<ENTITY_TYPE>> = output<TRtDataTableFilters<ENTITY_TYPE>>();\n public readonly pageModelChange: OutputEmitterRef<Partial<IPageModel>> = output<Partial<IPageModel>>();\n public readonly searchChange: OutputEmitterRef<string> = output<string>();\n public readonly refresh: OutputEmitterRef<void> = output<void>();\n public readonly clearFiltersAction: OutputEmitterRef<void> = output<void>();\n public readonly rowClick: OutputEmitterRef<{ row: ENTITY_TYPE; event: MouseEvent }> = output<{ row: ENTITY_TYPE; event: MouseEvent }>();\n public readonly rowDoubleClick: OutputEmitterRef<ENTITY_TYPE> = output<ENTITY_TYPE>();\n\n public readonly toolbarSelectorsTpl: Signal<TNullable<TemplateRef<unknown>>> = contentChild(RtDataListToolbarSelectorsDirective, {\n read: TemplateRef,\n });\n\n public readonly toolbarActionsTpl: Signal<TNullable<TemplateRef<unknown>>> = contentChild(RtDataListToolbarActionsDirective, {\n read: TemplateRef,\n });\n\n public readonly customCellsTpl: Signal<TNullable<RtDataListCustomCellsDirective<ENTITY_TYPE>>> =\n contentChild(RtDataListCustomCellsDirective);\n\n public readonly rowActionsTpl: Signal<TNullable<TemplateRef<{ $implicit: ENTITY_TYPE }>>> = contentChild(\n RtDataListRowActionsDirective,\n { read: TemplateRef }\n );\n\n public readonly additionalRowActionsTpl: Signal<TNullable<TemplateRef<{ $implicit: ENTITY_TYPE }>>> = contentChild(\n RtDataListAdditionalRowActionsDirective,\n { read: TemplateRef }\n );\n\n /**\n * Шаблон значка приложения — он уезжает в таблицу списка.\n *\n * Родовой тип здесь по умолчанию, а не тип записи списка, и это не упрощение: шаблон-посредник\n * внутри разметки объявлен той же директивой, а родового довода разметка ей не даёт — она\n * ставит его по умолчанию. Объявленное здесь по типу записи расходится с ним, и сборка\n * библиотеки отказывает на выводе шаблона. Приложение своего значка не теряет: его собственный\n * шаблон объявлен той же директивой и тем же умолчанием.\n */\n public readonly iconTpl: Signal<TNullable<RtDataTableIconDirective>> = contentChild(RtDataTableIconDirective);\n\n /** Панель действий и таблица: их состояние ставит директива выбора списка. */\n public readonly toolbarRef: Signal<TNullable<RtDataListToolbarComponent>> = viewChild(RtDataListToolbarComponent);\n\n public readonly tableRef: Signal<TNullable<RtDataTableComponent<ENTITY_TYPE, SORT_PROPERTY, KEY>>> =\n viewChild<RtDataTableComponent<ENTITY_TYPE, SORT_PROPERTY, KEY>>(RtDataTableComponent);\n\n constructor() {\n /* Размер полос прокрутки ставится на корень страницы, а не на список: приём первого\n кита — выбор, сохранённый одним списком, достаётся каждому списку страницы. Скрытая\n полоса — это нулевой размер, а не запрет прокрутки: содержимое по-прежнему ездит. */\n effect(() => {\n const config: IRtDataTable.Config.Data<ENTITY_TYPE> = this.#configService.tableConfig();\n\n this.#pageRoot.style.setProperty(\n '--rt-data-table-scrollbar-vertical-width',\n config.isVerticalScrollbarShown ? SCROLLBAR_SIZE : SCROLLBAR_HIDDEN\n );\n this.#pageRoot.style.setProperty(\n '--rt-data-table-scrollbar-horizontal-height',\n config.isHorizontalScrollbarShown ? SCROLLBAR_SIZE : SCROLLBAR_HIDDEN\n );\n\n const standard: IRtDataListScrollbarStandard = dataListScrollbarStandard(\n config.isVerticalScrollbarShown,\n config.isHorizontalScrollbarShown\n );\n\n this.#setOrRemove('--rt-data-table-scrollbar-width', standard.width);\n this.#setOrRemove('--rt-data-table-scrollbar-color', standard.color);\n });\n\n /* Последний ушедший список уносит выбор с корня: иначе полосы, скрытые настройкой списка,\n оставались бы скрытыми у каждой таблицы страницы и после него. Пока на странице живёт\n другой список, свойства остаются — они общие для всех списков страницы. */\n SCROLLBAR_HOLDERS.set(this.#pageRoot, (SCROLLBAR_HOLDERS.get(this.#pageRoot) ?? 0) + 1);\n this.#destroyRef.onDestroy((): void => {\n const left: number = (SCROLLBAR_HOLDERS.get(this.#pageRoot) ?? 1) - 1;\n\n SCROLLBAR_HOLDERS.set(this.#pageRoot, left);\n if (left > 0) {\n return;\n }\n SCROLLBAR_PROPERTIES.forEach((property: string): void => {\n this.#pageRoot.style.removeProperty(property);\n });\n });\n\n this.#openSettingsSource\n .pipe(\n exhaustMap((): Observable<IRtDataTable.Config.Data<ENTITY_TYPE> | undefined> =>\n this.#asideService\n .open<\n RtDataListSettingsAsideComponent<ENTITY_TYPE>,\n IRtDataTable.Config.Data<ENTITY_TYPE>,\n IRtDataTable.Config.Data<ENTITY_TYPE> | undefined\n >(RtDataListSettingsAsideComponent, {\n data: this.#configService.tableConfig(),\n position: 'right',\n // Панель и подложка под ней живут поверх страницы, вне списка, и вид списка\n // до них сам не доходит: класс набора они получают от того, кто их открыл.\n panelClass: this.look() === 'material' ? RT_PRESET_MATERIAL_CLASS : [],\n backdropClass:\n this.look() === 'material' ? ['rt-aside-backdrop', RT_PRESET_MATERIAL_CLASS] : 'rt-aside-backdrop',\n })\n .afterClosed()\n ),\n filter(Boolean),\n takeUntilDestroyed(this.#destroyRef)\n )\n .subscribe((config: IRtDataTable.Config.Data<ENTITY_TYPE>) => {\n this.#configService.updateConfig(this.tableConfigStorageKey(), config);\n });\n }\n\n protected onOpenSettings(): void {\n this.#openSettingsSource.next();\n }\n\n protected onSortChange(sortModel: ISortModel<SORT_PROPERTY>): void {\n this.sortChange.emit(sortModel);\n }\n\n protected onFilterChange(filterModel: TRtDataTableFilters<ENTITY_TYPE>): void {\n this.filterChange.emit(filterModel);\n }\n\n protected onPageNumber(pageNumber: number): void {\n this.pageModelChange.emit({ pageNumber });\n }\n\n /** Новый размер страницы: человек остаётся на том же расстоянии от конца списка, как в первом ките. */\n protected onPageSize(pageSize: number): void {\n this.pageModelChange.emit(dataListPageAfterSizeChange(this.pageModel(), pageSize));\n }\n\n protected onSearchChange(search: string): void {\n this.searchChange.emit(search);\n }\n\n protected onRefresh(): void {\n this.refresh.emit();\n }\n\n protected onClearFilters(): void {\n this.clearFiltersAction.emit();\n }\n\n protected onRowClick(event: { row: ENTITY_TYPE; event: MouseEvent }): void {\n this.rowClick.emit(event);\n }\n\n protected onRowDoubleClick(row: ENTITY_TYPE): void {\n this.rowDoubleClick.emit(row);\n }\n\n #setOrRemove(property: string, value: string | null): void {\n if (value === null) {\n this.#pageRoot.style.removeProperty(property);\n return;\n }\n\n this.#pageRoot.style.setProperty(property, value);\n }\n}\n","@if (loading()) {\n <div rtBlock=\"rt-data-list\" rtElem=\"loading\" qa-dataid=\"data-list-loading\">\n <rt-spinner />\n </div>\n} @else {\n <ng-container rtBlock=\"rt-data-list\">\n @if (fetching()) {\n <div rtElem=\"fetching\" qa-dataid=\"data-list-fetching\">\n <rt-spinner />\n </div>\n }\n\n <rt-data-list-toolbar\n [isFiltersShown]=\"isFiltersShown()\"\n [isFiltersEmpty]=\"isFiltersEmpty()\"\n [isRefreshButtonShown]=\"isRefreshButtonShown()\"\n [isTableConfigButtonShown]=\"isTableConfigButtonShown()\"\n [isPlaceholderShown]=\"isPlaceholderShown()\"\n [searchTerm]=\"searchTerm()\"\n [searchAppearance]=\"appearance()\"\n [isToolbarActionsIconsOutlined]=\"isToolbarActionsIconsOutlined()\"\n (searchChange)=\"onSearchChange($event)\"\n (refreshAction)=\"onRefresh()\"\n (clearFiltersAction)=\"onClearFilters()\"\n (openConfigAction)=\"onOpenSettings()\">\n @if (toolbarSelectorsTpl(); as selectors) {\n <ng-container *rtDataListToolbarSelectors>\n <ng-container [ngTemplateOutlet]=\"selectors\" />\n </ng-container>\n }\n\n @if (toolbarActionsTpl(); as actions) {\n <ng-container *rtDataListToolbarActions>\n <ng-container [ngTemplateOutlet]=\"actions\" />\n </ng-container>\n }\n </rt-data-list-toolbar>\n\n @if (isPlaceholderShown()) {\n <div rtElem=\"placeholder\" qa-dataid=\"data-list-placeholder\">\n <rt-empty-state icon=\"search\" [title]=\"placeholderLabel()\" />\n </div>\n } @else {\n <div rtElem=\"content\">\n <rt-data-table\n [look]=\"look()\"\n [keyExp]=\"keyExp()\"\n [entities]=\"entities()\"\n [currentSortModel]=\"currentSortModel()\"\n [filterModel]=\"filterModel()\"\n [isFiltersShown]=\"isFiltersShown()\"\n [isTableRowsClickable]=\"isTableRowsClickable()\"\n [filterAppearance]=\"filterAppearance()\"\n (sortChange)=\"onSortChange($event)\"\n (filterChange)=\"onFilterChange($event)\"\n (rowClick)=\"onRowClick($event)\"\n (rowDoubleClick)=\"onRowDoubleClick($event)\">\n @if (customCellsTpl(); as cells) {\n <ng-container [rtDataTableCustomCells]=\"cells.cellsTemplates()\" />\n }\n\n @if (rowActionsTpl(); as actions) {\n <ng-template rtDataTableRowActions let-row>\n <ng-container [ngTemplateOutlet]=\"actions\" [ngTemplateOutletContext]=\"{ $implicit: row }\" />\n </ng-template>\n }\n\n @if (additionalRowActionsTpl(); as additional) {\n <ng-template rtDataTableAdditionalRowActions let-row>\n <ng-container [ngTemplateOutlet]=\"additional\" [ngTemplateOutletContext]=\"{ $implicit: row }\" />\n </ng-template>\n }\n\n @if (iconTpl(); as icon) {\n <ng-template rtDataTableIcon let-name let-column=\"column\" let-row=\"row\">\n <ng-container\n [ngTemplateOutlet]=\"icon.template\"\n [ngTemplateOutletContext]=\"{ $implicit: name, column: column, row: row }\" />\n </ng-template>\n }\n </rt-data-table>\n </div>\n\n @if (isPaginationShown()) {\n <rt-pagination\n [pageModel]=\"pageModel()\"\n [perPageOptions]=\"pageSizes()\"\n [numbering]=\"look() === 'material' ? 'seven' : 'neighbours'\"\n [prevIcon]=\"look() === 'material' ? 'arrow-left' : 'chevron-left'\"\n [nextIcon]=\"look() === 'material' ? 'arrow-right' : 'chevron-right'\"\n (pageChange)=\"onPageNumber($event)\"\n (perPageChange)=\"onPageSize($event)\" />\n }\n }\n </ng-container>\n}\n","import {\n booleanAttribute,\n computed,\n DestroyRef,\n Directive,\n effect,\n inject,\n Injector,\n input,\n InputSignalWithTransform,\n OnInit,\n Signal,\n signal,\n WritableSignal,\n} from '@angular/core';\nimport { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';\nimport { filter, switchMap, take } from 'rxjs/operators';\n\nimport { transformArrayInput, TNullable } from '@rt-tools/utils';\n\nimport { RtDataTableComponent } from '@rt-tools/ui-kit-v2/data-table';\nimport {\n dataTableAllOnPage,\n dataTableAnyOnPage,\n dataTableKeysOf,\n dataTablePresetEntities,\n dataTableWithEntity,\n dataTableWithoutPageEntities,\n dataTableWithPageEntities,\n} from '@rt-tools/ui-kit-v2/data-table';\nimport { RtDataListComponent } from './rt-data-list.component';\nimport { RtDataListToolbarComponent } from './toolbar/rt-data-list-toolbar.component';\nimport {\n dataListExcludedAfterEntity,\n dataListExcludedAfterPageMarked,\n dataListExcludedAfterPageUnmarked,\n dataListSelectedAfterPage,\n} from './rt-data-list-selection.logic';\n\n/**\n * Выбор записей списка `rt-data-list` — выбор первого кита вместе с «отметить все».\n *\n * «Отметить все» в разведённом виде отмечает и те страницы, которые ещё не приходили: пришедшая\n * страница отмечается сама, а снятая запись уходит в исключения и приходит неотмеченной каждый\n * раз. Приложение читает и отмеченные записи, и исключения — действие над всеми записями оно\n * отправляет как «все, кроме этих».\n */\n@Directive({\n selector: 'rt-data-list[rtDataListSelectors]',\n})\nexport class RtDataListSelectorsDirective<\n ENTITY_TYPE extends Record<string, unknown>,\n SORT_PROPERTY extends Extract<keyof ENTITY_TYPE, string>,\n KEY extends Extract<keyof ENTITY_TYPE, string>,\n> implements OnInit {\n readonly #destroyRef: DestroyRef = inject(DestroyRef);\n readonly #injector: Injector = inject(Injector);\n readonly #list: RtDataListComponent<ENTITY_TYPE, SORT_PROPERTY, KEY> =\n inject<RtDataListComponent<ENTITY_TYPE, SORT_PROPERTY, KEY>>(RtDataListComponent);\n\n readonly #selectedEntities: WritableSignal<ENTITY_TYPE[]> = signal([]);\n readonly #excludedEntities: WritableSignal<ENTITY_TYPE[]> = signal([]);\n readonly #isAllEntitiesSelected: WritableSignal<boolean> = signal(false);\n readonly #isPageEntitiesSelected: WritableSignal<boolean> = signal(false);\n readonly #isPageEntitiesIndeterminate: WritableSignal<boolean> = signal(false);\n readonly #isAcrossPagesEnabled: WritableSignal<boolean> = signal(false);\n\n public readonly isMultiSelect: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(true, {\n transform: booleanAttribute,\n });\n\n /** «Отметить все» отмечает и не пришедшие страницы; приложение может это выключить. */\n public readonly isMultiSelectExtendedMod: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(true, {\n transform: booleanAttribute,\n });\n\n public readonly isSelectAllSelectorShown: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(true, {\n transform: booleanAttribute,\n });\n\n public readonly isSelectorsColumnDisabled: InputSignalWithTransform<boolean, unknown> = input<boolean, unknown>(false, {\n transform: booleanAttribute,\n });\n\n public readonly selectedEntitiesKeys: InputSignalWithTransform<ENTITY_TYPE[KEY][], ENTITY_TYPE[KEY][] | null | undefined> = input<\n ENTITY_TYPE[KEY][],\n ENTITY_TYPE[KEY][] | null | undefined\n >([], { transform: transformArrayInput });\n\n public readonly selectedEntities: Signal<ENTITY_TYPE[]> = this.#selectedEntities.asReadonly();\n public readonly excludedEntities: Signal<ENTITY_TYPE[]> = this.#excludedEntities.asReadonly();\n\n public readonly selectedEntitiesIds: Signal<ENTITY_TYPE[KEY][]> = computed(() =>\n dataTableKeysOf(this.selectedEntities(), this.#keyExp())\n );\n\n public readonly excludedEntitiesIds: Signal<ENTITY_TYPE[KEY][]> = computed(() =>\n dataTableKeysOf(this.excludedEntities(), this.#keyExp())\n );\n\n public readonly isAllEntitiesSelected: Signal<boolean> = this.#isAllEntitiesSelected.asReadonly();\n public readonly isPageEntitiesSelected: Signal<boolean> = this.#isPageEntitiesSelected.asReadonly();\n public readonly isPageEntitiesIndeterminate: Signal<boolean> = this.#isPageEntitiesIndeterminate.asReadonly();\n\n /** Отмечены все записи, включая не пришедшие страницы. */\n public readonly isAcrossPagesEnabled: Signal<boolean> = this.#isAcrossPagesEnabled.asReadonly();\n\n /** Тот же признак под именем первого кита: приложение, читавшее его там, переезжает без правок. */\n public readonly isMultiSelectExtendedModEnabled: Signal<boolean> = this.isAcrossPagesEnabled;\n\n constructor() {\n /* Отметки ведёт директива, а рисуют их панель действий и таблица списка. */\n effect(() => {\n const table: TNullable<RtDataTableComponent<ENTITY_TYPE, SORT_PROPERTY, KEY>> = this.#list.tableRef();\n\n if (table) {\n table.isSelectorsColumnShown.set(true);\n table.isMultiSelect.set(this.isMultiSelect());\n table.isSelectorsColumnDisabled.set(this.isSelectorsColumnDisabled());\n table.selectedEntitiesIds.set(this.selectedEntitiesIds());\n table.isPageEntitiesSelected.set(this.isPageEntitiesSelected());\n table.isPageEntitiesIndeterminate.set(this.isPageEntitiesIndeterminate());\n table.onToggleEntity = (entity: ENTITY_TYPE, checked: boolean): void => this.toggleEntity(entity, checked);\n table.onTogglePageEntities = (checked: boolean): void => this.togglePageEntities(checked);\n }\n });\n\n effect(() => {\n const toolbar: TNullable<RtDataListToolbarComponent> = this.#list.toolbarRef();\n\n if (toolbar) {\n toolbar.isMultiSelect.set(this.isMultiSelect());\n toolbar.isSelectAllSelectorShown.set(this.isSelectAllSelectorShown());\n toolbar.isSelectAllSelectorDisabled.set(this.isSelectorsColumnDisabled());\n toolbar.isAllEntitiesSelected.set(this.isAllEntitiesSelected());\n toolbar.isAllEntitiesIndeterminate.set(!!this.selectedEntities().length);\n toolbar.selectedEntitiesCount.set(this.selectedEntities().length);\n toolbar.onToggleAllEntities = (checked: boolean): void => this.toggleAllEntities(checked);\n }\n });\n }\n\n public ngOnInit(): void {\n /* Пришла страница: под «отметить все» её строки отмечаются сами, кроме исключённых. */\n toObservable(this.#list.entities, { injector: this.#injector })\n .pipe(takeUntilDestroyed(this.#destroyRef))\n .subscribe((page: ENTITY_TYPE[]) => {\n if (this.isAcrossPagesEnabled()) {\n this.#selectedEntities.update((selected: ENTITY_TYPE[]) =>\n dataListSelectedAfterPage(selected, page, this.excludedEntities(), this.#keyExp())\n );\n this.#isAllEntitiesSelected.set(!this.excludedEntities().length);\n }\n\n this.setExistingEntitiesState();\n });\n\n /* Отметки, названные заранее, ставятся один раз: к первым непустым строкам. */\n toObservable(this.#list.entities, { injector: this.#injector })\n .pipe(\n filter((entities: ENTITY_TYPE[]) => !!entities.length),\n take(1),\n switchMap(() =>\n toObservable(this.selectedEntitiesKeys, { injector: this.#injector }).pipe(\n filter((keys: ENTITY_TYPE[KEY][]) => !!keys.length),\n take(1)\n )\n ),\n takeUntilDestroyed(this.#destroyRef)\n )\n .subscribe(() => {\n this.#selectedEntities.set(dataTablePresetEntities(this.#list.entities(), this.selectedEntitiesKeys(), this.#keyExp()));\n this.setExistingEntitiesState();\n });\n }\n\n /** «Отметить все»: отмечает все пришедшие строки, а в разведённом виде — и будущие страницы. */\n public toggleAllEntities(checked: boolean): void {\n /* «Отметить все», поставленное заново, начинает с чистого листа: исключения прошлого\n раза иначе приходили бы неотмеченными и под новым «все». */\n if (checked) {\n this.#excludedEntities.set([]);\n }\n\n this.#isAllEntitiesSelected.set(checked);\n\n if (this.isMultiSelectExtendedMod()) {\n this.#isAcrossPagesEnabled.set(checked);\n }\n\n this.#selectedEntities.set(checked ? [...this.#list.entities()] : []);\n this.#isPageEntitiesSelected.set(checked);\n this.#isPageEntitiesIndeterminate.set(checked);\n }\n\n /** Отметить или снять все строки показанной страницы. */\n public togglePageEntities(checked: boolean): void {\n const page: ENTITY_TYPE[] = this.#list.entities();\n\n this.#isPageEntitiesSelected.set(checked);\n this.#selectedEntities.update((selected: ENTITY_TYPE[]) =>\n checked\n ? dataTableWithPageEntities(selected, page, this.#keyExp())\n : dataTableWithoutPageEntities(selected, page, this.#keyExp())\n );\n\n if (this.isAcrossPagesEnabled()) {\n this.#excludedEntities.update((excluded: ENTITY_TYPE[]) =>\n checked\n ? dataListExcludedAfterPageMarked(excluded, page, this.#keyExp())\n : dataListExcludedAfterPageUnmarked(excluded, page, this.#keyExp())\n );\n }\n\n this.#isAllEntitiesSelected.set(this.isAcrossPagesEnabled() && checked && !this.excludedEntities().length);\n this.#isPageEntitiesIndeterminate.set(dataTableAnyOnPage(page, this.selectedEntitiesIds(), this.#keyExp()));\n }\n\n /** Отметить или снять одну запись; под «отметить все» снятая уходит в исключения. */\n public toggleEntity(entity: ENTITY_TYPE, checked: boolean): void {\n if (!this.isMultiSelect()) {\n this.#selectedEntities.set([entity]);\n\n return;\n }\n\n this.#selectedEntities.update((selected: ENTITY_TYPE[]) => dataTableWithEntity(selected, entity, checked, this.#keyExp()));\n\n if (this.isAcrossPagesEnabled()) {\n this.#excludedEntities.update((excluded: ENTITY_TYPE[]) =>\n dataListExcludedAfterEntity(excluded, entity, checked, this.#keyExp())\n );\n this.#isAllEntitiesSelected.set(!this.excludedEntities().length);\n } else if (!checked) {\n this.#isAllEntitiesSelected.set(false);\n } else {\n // Отметка записи без «отметить все» этого признака не касается.\n }\n\n this.#updatePageState();\n }\n\n /** Снять все отметки; исключения остаются до отдельной просьбы приложения. */\n public clearSelectedList(): void {\n this.#selectedEntities.set([]);\n this.#isPageEntitiesSelected.set(false);\n this.#isPageEntitiesIndeterminate.set(false);\n this.#isAllEntitiesSelected.set(false);\n this.#isAcrossPagesEnabled.set(false);\n }\n\n /** Очистить исключения. */\n public clearExcludedList(): void {\n this.#excludedEntities.set([]);\n }\n\n /** Пересчитать флажок страницы по показанным строкам. */\n public setExistingEntitiesState(): void {\n const page: ENTITY_TYPE[] = this.#list.entities();\n const keys: ENTITY_TYPE[KEY][] = this.selectedEntitiesIds();\n\n this.#isPageEntitiesSelected.set(dataTableAllOnPage(page, keys, this.#keyExp()));\n this.#isPageEntitiesIndeterminate.set(dataTableAnyOnPage(page, keys, this.#keyExp()));\n }\n\n #updatePageState(): void {\n const page: ENTITY_TYPE[] = this.#list.entities();\n const keys: ENTITY_TYPE[KEY][] = this.selectedEntitiesIds();\n\n if (keys.length) {\n this.#isPageEntitiesSelected.set(dataTableAllOnPage(page, keys, this.#keyExp()));\n this.#isPageEntitiesIndeterminate.set(true);\n } else {\n this.#isPageEntitiesSelected.set(false);\n this.#isPageEntitiesIndeterminate.set(dataTableAnyOnPage(page, keys, this.#keyExp()));\n }\n }\n\n #keyExp(): KEY {\n return this.#list.keyExp();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["BEM_BLOCK"],"mappings":"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"}
|