@rt-tools/ui-kit-v2 0.18.0 → 0.19.1
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 +3 -2
- package/fesm2022/rt-tools-ui-kit-v2-accordion.mjs +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-accordion.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-action-bar.mjs +14 -8
- package/fesm2022/rt-tools-ui-kit-v2-action-bar.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-ai-run-status.mjs +97 -0
- package/fesm2022/rt-tools-ui-kit-v2-ai-run-status.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-aside.mjs +10 -3
- package/fesm2022/rt-tools-ui-kit-v2-aside.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-autocomplete.mjs +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-autocomplete.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-bar-list.mjs +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-bar-list.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-checkbox.mjs +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-checkbox.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-copy-value.mjs +81 -0
- package/fesm2022/rt-tools-ui-kit-v2-copy-value.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-core.mjs +99 -1
- package/fesm2022/rt-tools-ui-kit-v2-core.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-data-list.mjs +5 -5
- package/fesm2022/rt-tools-ui-kit-v2-data-list.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-data-table.mjs +16 -4
- package/fesm2022/rt-tools-ui-kit-v2-data-table.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-download-link.mjs +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-download-link.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-dynamic-selector.mjs +124 -25
- package/fesm2022/rt-tools-ui-kit-v2-dynamic-selector.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-empty-state.mjs +3 -3
- package/fesm2022/rt-tools-ui-kit-v2-empty-state.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-expansion-panel.mjs +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-expansion-panel.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-field.mjs +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-field.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-file-card.mjs +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-file-card.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-icon-button.mjs +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-icon-button.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-icon.mjs +64 -27
- package/fesm2022/rt-tools-ui-kit-v2-icon.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-input-number.mjs +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-input-number.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-input.mjs +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-input.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-menu.mjs +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-menu.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-message.mjs +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-message.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-multiselect.mjs +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-multiselect.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-notifications-bell.mjs +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-notifications-bell.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-page-header.mjs +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-page-header.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-prompt-suggestion.mjs +46 -0
- package/fesm2022/rt-tools-ui-kit-v2-prompt-suggestion.mjs.map +1 -0
- package/fesm2022/rt-tools-ui-kit-v2-rich-editor.mjs +336 -12
- package/fesm2022/rt-tools-ui-kit-v2-rich-editor.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-scroll-area.mjs +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-scroll-area.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-section-nav.mjs +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-section-nav.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-select.mjs +16 -2
- package/fesm2022/rt-tools-ui-kit-v2-select.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-side-menu.mjs +3 -3
- package/fesm2022/rt-tools-ui-kit-v2-side-menu.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-stat-tile.mjs +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-stat-tile.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-table.mjs +2 -2
- package/fesm2022/rt-tools-ui-kit-v2-table.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-tabs.mjs +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-tabs.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-tag.mjs +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-tag.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-thread-list.mjs +31 -5
- package/fesm2022/rt-tools-ui-kit-v2-thread-list.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-toast.mjs +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-toast.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-toggle-button-group.mjs +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-toggle-button-group.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-toggle-switch.mjs +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-toggle-switch.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2-toolbar.mjs +2 -2
- package/fesm2022/rt-tools-ui-kit-v2-toolbar.mjs.map +1 -1
- package/fesm2022/rt-tools-ui-kit-v2.mjs +3 -0
- package/fesm2022/rt-tools-ui-kit-v2.mjs.map +1 -1
- package/package.json +13 -1
- package/rt-tools-ui-kit-v2-0.19.1.tgz +0 -0
- package/src/assets/icons/sparkle.svg +9 -0
- package/src/assets/icons/thumb-down.svg +10 -0
- package/src/assets/icons/thumb-up.svg +9 -0
- package/src/assets/icons/trash-x.svg +7 -0
- package/src/assets/icons-material/sparkle.fill.svg +5 -0
- package/src/assets/icons-material/sparkle.svg +5 -0
- package/src/assets/icons-material/thumb-down.fill.svg +5 -0
- package/src/assets/icons-material/thumb-down.svg +5 -0
- package/src/assets/icons-material/thumb-up.fill.svg +5 -0
- package/src/assets/icons-material/thumb-up.svg +5 -0
- package/src/assets/icons-material/trash-x.fill.svg +5 -0
- package/src/assets/icons-material/trash-x.svg +5 -0
- package/src/lib/components/action-bar/CONTEXT.md +8 -2
- package/src/lib/components/action-bar/rt-action-bar-holder.component.scss +10 -7
- package/src/lib/components/action-bar/rt-action-bar.component.scss +82 -34
- package/src/lib/components/ai-run-status/CONTEXT.md +41 -0
- package/src/lib/components/ai-run-status/rt-ai-run-status.component.scss +158 -0
- package/src/lib/components/aside/CONTEXT.md +1 -0
- package/src/lib/components/aside/header/rt-aside-header.component.scss +27 -11
- package/src/lib/components/copy-value/CONTEXT.md +31 -0
- package/src/lib/components/copy-value/rt-copy-value.component.scss +39 -0
- package/src/lib/components/data-list/settings/rt-data-list-settings-aside.component.scss +5 -5
- package/src/lib/components/data-table/CONTEXT.md +5 -0
- package/src/lib/components/dynamic-selector/CONTEXT.md +18 -0
- package/src/lib/components/dynamic-selector/list/rt-dynamic-selector-list.component.scss +29 -1
- package/src/lib/components/dynamic-selector/popup/rt-dynamic-selector-popup.component.scss +84 -25
- package/src/lib/components/empty-state/CONTEXT.md +2 -1
- package/src/lib/components/empty-state/rt-empty-state.component.scss +4 -2
- package/src/lib/components/icon/CONTEXT.md +16 -12
- package/src/lib/components/icon/rt-icon.component.scss +13 -3
- package/src/lib/components/prompt-suggestion/CONTEXT.md +29 -0
- package/src/lib/components/prompt-suggestion/rt-prompt-suggestion.component.scss +58 -0
- package/src/lib/components/select/CONTEXT.md +2 -2
- package/src/lib/components/thread-list/CONTEXT.md +4 -0
- package/src/lib/components/thread-list/rt-thread-list.component.scss +29 -0
- package/src/lib/components/toolbar/CONTEXT.md +4 -0
- package/src/lib/components/toolbar/rt-toolbar.component.scss +7 -0
- package/src/rich-editor/lib/components/ai-chat/CONTEXT.md +58 -0
- package/src/rich-editor/lib/components/ai-chat/answer/rt-ai-chat-answer.component.scss +12 -0
- package/src/rich-editor/lib/components/ai-chat/rt-ai-chat.component.scss +222 -0
- package/src/rich-editor/lib/components/rich-editor/rt-rich-editor.component.scss +3 -0
- package/src/styles/_scrollbar.scss +9 -0
- package/styles/tokens.css +3 -0
- package/types/rt-tools-ui-kit-v2-action-bar.d.ts +11 -2
- package/types/rt-tools-ui-kit-v2-ai-run-status.d.ts +49 -0
- package/types/rt-tools-ui-kit-v2-aside.d.ts +9 -1
- package/types/rt-tools-ui-kit-v2-copy-value.d.ts +29 -0
- package/types/rt-tools-ui-kit-v2-core.d.ts +94 -54
- package/types/rt-tools-ui-kit-v2-data-table.d.ts +7 -0
- package/types/rt-tools-ui-kit-v2-dynamic-selector.d.ts +44 -5
- package/types/rt-tools-ui-kit-v2-icon.d.ts +12 -4
- package/types/rt-tools-ui-kit-v2-prompt-suggestion.d.ts +21 -0
- package/types/rt-tools-ui-kit-v2-rich-editor.d.ts +186 -2
- package/types/rt-tools-ui-kit-v2-select.d.ts +6 -0
- package/types/rt-tools-ui-kit-v2-thread-list.d.ts +15 -2
- package/types/rt-tools-ui-kit-v2.d.ts +3 -0
- package/rt-tools-ui-kit-v2-0.18.0.tgz +0 -0
|
@@ -430,7 +430,7 @@ class RtDataTableCellComponent {
|
|
|
430
430
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: RtDataTableCellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
431
431
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: RtDataTableCellComponent, isStandalone: true, selector: "rt-data-table-cell", inputs: { row: { classPropertyName: "row", publicName: "row", isSignal: true, isRequired: true, transformFunction: null }, column: { classPropertyName: "column", publicName: "column", isSignal: true, isRequired: true, transformFunction: null }, iconTemplate: { classPropertyName: "iconTemplate", publicName: "iconTemplate", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "hovered.set(false)" }, properties: { "style.width": "column().width", "style.min-width": "column().minWidth" }, classAttribute: "rt-data-table-cell" }, ngImport: i0, template: "<ng-container rtBlock=\"rt-data-table-cell\">\n <ng-template #iconTpl>\n @if (iconTemplate(); as template) {\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"iconContext()\" />\n } @else if (kitIcon(); as name) {\n <rt-icon size=\"lg\" [name]=\"name\" [fill]=\"icon()?.outlined !== true\" [style]=\"iconStyle()\" />\n } @else if (glyph(); as name) {\n <span rtElem=\"glyph\" aria-hidden=\"true\" qa-dataid=\"data-table-cell-glyph\" [rtMod]=\"glyphMods()\" [style]=\"iconStyle()\">\n {{ name }}\n </span>\n }\n </ng-template>\n\n @if (icon()?.placement === 'left') {\n <span rtElem=\"prefix\" qa-dataid=\"data-table-cell-prefix\"><ng-container [ngTemplateOutlet]=\"iconTpl\" /></span>\n }\n\n <div rtElem=\"title\" [rtMod]=\"titleMods()\">\n <div rtElem=\"text\" qa-dataid=\"data-table-cell-text\" [rtTooltip]=\"hint()\">{{ value() | emptyToDash }}</div>\n </div>\n\n @if (icon()?.placement === 'right') {\n <span rtElem=\"suffix\" qa-dataid=\"data-table-cell-suffix\"><ng-container [ngTemplateOutlet]=\"iconTpl\" /></span>\n }\n\n @if (copyable()) {\n <rt-icon-button\n rtElem=\"copy-button\"\n rtDataTableStopRowClick\n qa-dataid=\"data-table-cell-copy\"\n size=\"sm\"\n [rtMod]=\"copyMods()\"\n [icon]=\"copyIcon()\"\n [ariaLabel]=\"copyLabel()\"\n [tooltip]=\"narrow() ? '' : copyLabel()\"\n (clicked)=\"onCopy()\" />\n }\n</ng-container>\n", styles: ["@charset \"UTF-8\";@layer rt-kit.components{.rt-data-table-cell{--rt-data-table-cell-transition-duration: var(--rt-duration-fast);--rt-data-table-cell-glyph-size: var(--rt-size-6);position:relative;display:flex;width:100%;height:100%;align-items:center;gap:var(--rt-space-sm)}.rt-data-table-cell__glyph{display:inline-block;overflow:hidden;width:var(--rt-data-table-cell-glyph-size);font-family:Material Symbols Outlined,sans-serif;font-feature-settings:\"liga\";font-size:var(--rt-data-table-cell-glyph-size);font-style:normal;font-weight:var(--rt-font-weight-regular);letter-spacing:normal;line-height:1;text-transform:none;white-space:nowrap}.rt-data-table-cell__glyph--filled{font-variation-settings:\"FILL\" 1}.rt-data-table-cell__prefix,.rt-data-table-cell__suffix{display:inline-flex;min-width:fit-content;flex:0 0 auto}.rt-data-table-cell__title{display:table;width:100%;table-layout:fixed}.rt-data-table-cell__title--align--left{text-align:left}.rt-data-table-cell__title--align--center{text-align:center}.rt-data-table-cell__title--align--right{text-align:right}.rt-data-table-cell__text{overflow:hidden;width:100%;padding:var(--rt-space-sm) var(--rt-space-sm) var(--rt-space-sm) 0;text-overflow:ellipsis;white-space:nowrap}.rt-data-table-cell__copy-button{position:absolute;transition:visibility var(--rt-data-table-cell-transition-duration) linear;visibility:hidden}@media(hover:none){.rt-data-table-cell__copy-button{visibility:visible}}.rt-data-table-cell__copy-button{--rt-icon-button-color: var(--rt-list-copy-button-color)}.rt-data-table-cell__copy-button .rt-icon-button{--rt-icon-button-size-step: var(--rt-list-copy-button-size);--rt-icon-button-radius: var(--rt-list-copy-button-radius);--rt-icon-button-color-hover: var(--rt-color-text-primary);--rt-icon-button-color-bg-hover: var(--rt-list-copy-button-bg-hover);background-color:var(--rt-list-copy-button-bg)}.rt-data-table-cell__copy-button--position--left{left:var(--rt-space-xs)}.rt-data-table-cell__copy-button--position--right{right:var(--rt-space-xs)}.rt-data-table-cell__copy-button--complete{cursor:not-allowed}.rt-data-table-cell__copy-button--visible{visibility:visible}}\n"], dependencies: [{ kind: "component", type:
|
|
432
432
|
// components
|
|
433
|
-
RtIconButtonComponent, selector: "rt-icon-button", inputs: ["icon", "glyph", "ariaLabel", "variant", "iconColor", "iconFill", "size", "iconSize", "type", "tooltip", "tabIndex", "loading", "disabled", "active", "indicator"], outputs: ["clicked"] }, { kind: "component", type: RtIconComponent, selector: "rt-icon", inputs: ["name", "glyph", "size", "color", "fill", "spin", "rotate"] }, { kind: "directive", type:
|
|
433
|
+
RtIconButtonComponent, selector: "rt-icon-button", inputs: ["icon", "glyph", "ariaLabel", "variant", "iconColor", "iconFill", "size", "iconSize", "type", "tooltip", "tabIndex", "loading", "disabled", "active", "indicator"], outputs: ["clicked"] }, { kind: "component", type: RtIconComponent, selector: "rt-icon", inputs: ["name", "glyph", "glyphStrategy", "size", "color", "fill", "spin", "rotate"] }, { kind: "directive", type:
|
|
434
434
|
// directives
|
|
435
435
|
BlockDirective, selector: "[rtBlock]", inputs: ["rtMod"] }, { kind: "directive", type: ElemDirective, selector: "[rtElem]", inputs: ["rtMod"] }, { kind: "directive", type: ModDirective, selector: "[rtMod]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: RtDataTableStopRowClickDirective, selector: "[rtDataTableStopRowClick]" }, { kind: "directive", type: RtTooltipDirective, selector: "[rtTooltip]", inputs: ["rtTooltip", "rtTooltipPlacement", "rtTooltipWhenTruncated"], exportAs: ["rtTooltip"] }, { kind: "pipe", type:
|
|
436
436
|
// pipes
|
|
@@ -571,7 +571,7 @@ class RtDataTableHeaderCellComponent {
|
|
|
571
571
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: RtDataTableHeaderCellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
572
572
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: RtDataTableHeaderCellComponent, isStandalone: true, selector: "rt-data-table-header-cell", inputs: { headerModel: { classPropertyName: "headerModel", publicName: "headerModel", isSignal: true, isRequired: true, transformFunction: null }, sortModel: { classPropertyName: "sortModel", publicName: "sortModel", isSignal: true, isRequired: true, transformFunction: null }, currentSortModel: { classPropertyName: "currentSortModel", publicName: "currentSortModel", isSignal: true, isRequired: true, transformFunction: null }, column: { classPropertyName: "column", publicName: "column", isSignal: true, isRequired: false, transformFunction: null }, iconTemplate: { classPropertyName: "iconTemplate", publicName: "iconTemplate", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { sortChange: "sortChange" }, host: { listeners: { "click": "onClick()", "keydown.enter": "onKey($event)", "keydown.space": "onKey($event)" }, properties: { "style.text-align": "headerModel().align", "attr.tabindex": "sortable() ? 0 : null", "attr.role": "sortable() ? \"button\" : null" }, classAttribute: "rt-data-table-header-cell" }, ngImport: i0, template: "<ng-container rtBlock=\"rt-data-table-header-cell\">\n <ng-template #iconTpl>\n @if (iconTemplate(); as template) {\n <ng-container [ngTemplateOutlet]=\"template\" [ngTemplateOutletContext]=\"iconContext()\" />\n } @else if (kitIcon(); as name) {\n <rt-icon size=\"lg\" [name]=\"name\" [fill]=\"icon()?.outlined !== true\" />\n } @else if (glyph(); as name) {\n <span rtElem=\"glyph\" aria-hidden=\"true\" qa-dataid=\"data-table-header-glyph\" [rtMod]=\"glyphMods()\">{{ name }}</span>\n }\n </ng-template>\n\n <div rtElem=\"label\" [rtMod]=\"labelMods()\">\n @if (icon()?.placement === 'left') {\n <span rtElem=\"prefix\" qa-dataid=\"data-table-header-prefix\"><ng-container [ngTemplateOutlet]=\"iconTpl\" /></span>\n }\n\n <div\n rtElem=\"text\"\n qa-dataid=\"data-table-header-text\"\n [class]=\"[headerModel().className] | concatClasses\"\n [rtTooltip]=\"headerModel().tooltip ?? ''\">\n {{ headerModel().label }}\n </div>\n\n @if (icon()?.placement === 'right') {\n <span rtElem=\"suffix\" qa-dataid=\"data-table-header-suffix\"><ng-container [ngTemplateOutlet]=\"iconTpl\" /></span>\n }\n </div>\n\n @if (sortModel()) {\n <div rtElem=\"arrows\" qa-dataid=\"data-table-header-sort\" [rtMod]=\"arrowsMods()\">\n <div rtElem=\"arrow\" [rtMod]=\"descMods()\"></div>\n <div rtElem=\"arrow\" [rtMod]=\"ascMods()\"></div>\n </div>\n }\n</ng-container>\n", styles: ["@charset \"UTF-8\";@layer rt-kit.components{.rt-data-table-header-cell{--rt-data-table-header-cell-arrow-side: var(--rt-border-width-thick);--rt-data-table-header-cell-arrow-height: var(--rt-size-1);--rt-data-table-header-cell-focus-shadow: var(--rt-shadow-focus-ring);display:flex;align-items:center;justify-content:space-between;cursor:pointer}.rt-data-table-header-cell:hover .rt-data-table-header-cell__arrows,.rt-data-table-header-cell:focus-visible .rt-data-table-header-cell__arrows{visibility:visible}.rt-data-table-header-cell:focus-visible{box-shadow:var(--rt-data-table-header-cell-focus-shadow);outline:none}.rt-data-table-header-cell__label{display:flex;flex-grow:1;align-items:center;gap:var(--rt-space-sm)}.rt-data-table-header-cell__label--align--left{justify-content:flex-start}.rt-data-table-header-cell__label--align--center{justify-content:center}.rt-data-table-header-cell__label--align--right{justify-content:flex-end}.rt-data-table-header-cell__prefix,.rt-data-table-header-cell__suffix{display:inline-flex;min-width:fit-content}.rt-data-table-header-cell__glyph{display:inline-block;overflow:hidden;width:var(--rt-size-6);font-family:Material Symbols Outlined,sans-serif;font-feature-settings:\"liga\";font-size:var(--rt-size-6);font-style:normal;font-weight:var(--rt-font-weight-regular);letter-spacing:normal;line-height:1;text-transform:none;white-space:nowrap}.rt-data-table-header-cell__glyph--filled{font-variation-settings:\"FILL\" 1}.rt-data-table-header-cell__text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rt-data-table-header-cell__arrows{display:flex;flex-direction:column;align-items:center;justify-content:center;margin-left:var(--rt-space-md);visibility:hidden}.rt-data-table-header-cell__arrows--active{visibility:visible}.rt-data-table-header-cell__arrow{width:0;height:0;border-right:var(--rt-data-table-header-cell-arrow-side) solid transparent;border-bottom:var(--rt-data-table-header-cell-arrow-height) solid var(--rt-color-text-muted);border-left:var(--rt-data-table-header-cell-arrow-side) solid transparent}.rt-data-table-header-cell__arrow--second{margin-top:var(--rt-space-2xs);transform:scaleY(-1)}.rt-data-table-header-cell__arrow--active{border-bottom-color:var(--rt-color-text-primary)}}\n"], dependencies: [{ kind: "component", type:
|
|
573
573
|
// components
|
|
574
|
-
RtIconComponent, selector: "rt-icon", inputs: ["name", "glyph", "size", "color", "fill", "spin", "rotate"] }, { kind: "directive", type:
|
|
574
|
+
RtIconComponent, selector: "rt-icon", inputs: ["name", "glyph", "glyphStrategy", "size", "color", "fill", "spin", "rotate"] }, { kind: "directive", type:
|
|
575
575
|
// directives
|
|
576
576
|
BlockDirective, selector: "[rtBlock]", inputs: ["rtMod"] }, { kind: "directive", type: ElemDirective, selector: "[rtElem]", inputs: ["rtMod"] }, { kind: "directive", type: ModDirective, selector: "[rtMod]" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: RtTooltipDirective, selector: "[rtTooltip]", inputs: ["rtTooltip", "rtTooltipPlacement", "rtTooltipWhenTruncated"], exportAs: ["rtTooltip"] }, { kind: "pipe", type:
|
|
577
577
|
// pipes
|
|
@@ -699,6 +699,7 @@ function sameFilter(a, b) {
|
|
|
699
699
|
class RtDataTableFilterCellComponent {
|
|
700
700
|
constructor() {
|
|
701
701
|
this.#translate = inject(RT_KIT_TRANSLATOR);
|
|
702
|
+
this.#host = inject(ElementRef);
|
|
702
703
|
this.#titleCase = new TitleCasePipe();
|
|
703
704
|
/** Набранное, но ещё не зафиксированное значение текстового и числового поля. */
|
|
704
705
|
this.#draft = null;
|
|
@@ -761,6 +762,7 @@ class RtDataTableFilterCellComponent {
|
|
|
761
762
|
this.filterChange = output();
|
|
762
763
|
}
|
|
763
764
|
#translate;
|
|
765
|
+
#host;
|
|
764
766
|
#titleCase;
|
|
765
767
|
/** Набранное, но ещё не зафиксированное значение текстового и числового поля. */
|
|
766
768
|
#draft;
|
|
@@ -802,6 +804,16 @@ class RtDataTableFilterCellComponent {
|
|
|
802
804
|
}
|
|
803
805
|
this.currentFilter.set({ ...current, value: next });
|
|
804
806
|
}
|
|
807
|
+
/**
|
|
808
|
+
* Сброс крестиком переводит фокус в поле рядом.
|
|
809
|
+
*
|
|
810
|
+
* Без значения крестик выключается, и выключенная кнопка роняет фокус на `body`: человек с
|
|
811
|
+
* клавиатуры оказывается в начале страницы.
|
|
812
|
+
*/
|
|
813
|
+
onClear() {
|
|
814
|
+
this.onValueChange('');
|
|
815
|
+
this.#host.nativeElement.querySelector(`.${BEM_BLOCK$1}__field button, .${BEM_BLOCK$1}__field input`)?.focus();
|
|
816
|
+
}
|
|
805
817
|
onOperatorChange(operatorType) {
|
|
806
818
|
const current = this.currentFilter();
|
|
807
819
|
const filters = dataTableFiltersWithOperator(this.filterModel(), current, operatorType);
|
|
@@ -819,7 +831,7 @@ class RtDataTableFilterCellComponent {
|
|
|
819
831
|
return key ? translate(key) : this.#titleCase.transform(operator);
|
|
820
832
|
}
|
|
821
833
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: RtDataTableFilterCellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
822
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: RtDataTableFilterCellComponent, isStandalone: true, selector: "rt-data-table-filter-cell", inputs: { appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, filterProperty: { classPropertyName: "filterProperty", publicName: "filterProperty", isSignal: true, isRequired: true, transformFunction: null }, filterType: { classPropertyName: "filterType", publicName: "filterType", isSignal: true, isRequired: true, transformFunction: null }, filterModel: { classPropertyName: "filterModel", publicName: "filterModel", isSignal: true, isRequired: false, transformFunction: null }, defaultFilterOperator: { classPropertyName: "defaultFilterOperator", publicName: "defaultFilterOperator", isSignal: true, isRequired: false, transformFunction: null }, filterOperators: { classPropertyName: "filterOperators", publicName: "filterOperators", isSignal: true, isRequired: false, transformFunction: null }, filterSelectOptions: { classPropertyName: "filterSelectOptions", publicName: "filterSelectOptions", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { filterChange: "filterChange" }, host: { classAttribute: "rt-data-table-filter-cell" }, ngImport: i0, template: "<ng-container rtBlock=\"rt-data-table-filter-cell\">\n @if (filterOperators().length) {\n <rt-menu qa-dataid=\"data-table-filter-operator\" align=\"start\" [icon]=\"operatorIcon()\" [ariaLabel]=\"operatorLabel()\">\n @for (item of operatorItems(); track item.operator) {\n <rt-menu-item\n qa-dataid=\"data-table-filter-operator-item\"\n [icon]=\"item.icon\"\n [label]=\"item.label\"\n (selected)=\"onOperatorChange(item.operator)\" />\n }\n </rt-menu>\n }\n\n @switch (filterType()) {\n @case (filterTypes.TEXT) {\n <rt-input\n rtElem=\"field\"\n qa-dataid=\"data-table-filter-input\"\n size=\"sm\"\n [appearance]=\"appearance()\"\n [placeholder]=\"valuePlaceholder()\"\n [ngModel]=\"currentFilter().value\"\n [ngModelOptions]=\"{ standalone: true }\"\n (ngModelChange)=\"onDraft($event)\"\n (keydown.enter)=\"onCommit()\"\n (focusout)=\"onCommit()\" />\n }\n @case (filterTypes.NUMBER) {\n <rt-input-number\n rtElem=\"field\"\n qa-dataid=\"data-table-filter-number\"\n size=\"sm\"\n [appearance]=\"appearance()\"\n [placeholder]=\"valuePlaceholder()\"\n [ngModel]=\"number()\"\n [ngModelOptions]=\"{ standalone: true }\"\n (ngModelChange)=\"onNumberDraft($event)\"\n (keydown.enter)=\"onCommit()\"\n (focusout)=\"onCommit()\" />\n }\n @case (filterTypes.DATE) {\n <rt-icon-button\n qa-dataid=\"data-table-filter-clear\"\n icon=\"close\"\n [ariaLabel]=\"clearLabel()\"\n [tooltip]=\"clearLabel()\"\n [disabled]=\"!hasValue()\"\n (clicked)=\"
|
|
834
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: RtDataTableFilterCellComponent, isStandalone: true, selector: "rt-data-table-filter-cell", inputs: { appearance: { classPropertyName: "appearance", publicName: "appearance", isSignal: true, isRequired: false, transformFunction: null }, filterProperty: { classPropertyName: "filterProperty", publicName: "filterProperty", isSignal: true, isRequired: true, transformFunction: null }, filterType: { classPropertyName: "filterType", publicName: "filterType", isSignal: true, isRequired: true, transformFunction: null }, filterModel: { classPropertyName: "filterModel", publicName: "filterModel", isSignal: true, isRequired: false, transformFunction: null }, defaultFilterOperator: { classPropertyName: "defaultFilterOperator", publicName: "defaultFilterOperator", isSignal: true, isRequired: false, transformFunction: null }, filterOperators: { classPropertyName: "filterOperators", publicName: "filterOperators", isSignal: true, isRequired: false, transformFunction: null }, filterSelectOptions: { classPropertyName: "filterSelectOptions", publicName: "filterSelectOptions", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { filterChange: "filterChange" }, host: { classAttribute: "rt-data-table-filter-cell" }, ngImport: i0, template: "<ng-container rtBlock=\"rt-data-table-filter-cell\">\n @if (filterOperators().length) {\n <rt-menu qa-dataid=\"data-table-filter-operator\" align=\"start\" [icon]=\"operatorIcon()\" [ariaLabel]=\"operatorLabel()\">\n @for (item of operatorItems(); track item.operator) {\n <rt-menu-item\n qa-dataid=\"data-table-filter-operator-item\"\n [icon]=\"item.icon\"\n [label]=\"item.label\"\n (selected)=\"onOperatorChange(item.operator)\" />\n }\n </rt-menu>\n }\n\n @switch (filterType()) {\n @case (filterTypes.TEXT) {\n <rt-input\n rtElem=\"field\"\n qa-dataid=\"data-table-filter-input\"\n size=\"sm\"\n [appearance]=\"appearance()\"\n [placeholder]=\"valuePlaceholder()\"\n [ngModel]=\"currentFilter().value\"\n [ngModelOptions]=\"{ standalone: true }\"\n (ngModelChange)=\"onDraft($event)\"\n (keydown.enter)=\"onCommit()\"\n (focusout)=\"onCommit()\" />\n }\n @case (filterTypes.NUMBER) {\n <rt-input-number\n rtElem=\"field\"\n qa-dataid=\"data-table-filter-number\"\n size=\"sm\"\n [appearance]=\"appearance()\"\n [placeholder]=\"valuePlaceholder()\"\n [ngModel]=\"number()\"\n [ngModelOptions]=\"{ standalone: true }\"\n (ngModelChange)=\"onNumberDraft($event)\"\n (keydown.enter)=\"onCommit()\"\n (focusout)=\"onCommit()\" />\n }\n @case (filterTypes.DATE) {\n <rt-icon-button\n qa-dataid=\"data-table-filter-clear\"\n icon=\"close\"\n [ariaLabel]=\"clearLabel()\"\n [tooltip]=\"clearLabel()\"\n [disabled]=\"!hasValue()\"\n (clicked)=\"onClear()\" />\n\n <rt-date-picker\n rtElem=\"field\"\n qa-dataid=\"data-table-filter-date\"\n size=\"sm\"\n [appearance]=\"appearance()\"\n [clearable]=\"false\"\n [ngModel]=\"day()\"\n [ngModelOptions]=\"{ standalone: true }\"\n (ngModelChange)=\"onDayChange($event)\" />\n }\n @case (filterTypes.SELECT) {\n <rt-icon-button\n qa-dataid=\"data-table-filter-clear\"\n icon=\"close\"\n [ariaLabel]=\"clearLabel()\"\n [tooltip]=\"clearLabel()\"\n [disabled]=\"!hasValue()\"\n (clicked)=\"onClear()\" />\n\n <rt-select\n rtElem=\"field\"\n qa-dataid=\"data-table-filter-select\"\n size=\"sm\"\n [appearance]=\"appearance()\"\n [clearable]=\"false\"\n [options]=\"selectOptions()\"\n [placeholder]=\"selectPlaceholder()\"\n [ngModel]=\"currentFilter().value || null\"\n [ngModelOptions]=\"{ standalone: true }\"\n (selectionChange)=\"onValueChange($event)\" />\n }\n }\n</ng-container>\n", styles: ["@charset \"UTF-8\";@layer rt-kit.components{.rt-data-table-filter-cell{display:flex;width:100%;align-items:center;justify-content:flex-start;gap:var(--rt-space-sm)}.rt-data-table-filter-cell__field{--rt-input-height-sm: var(--rt-list-search-height);--rt-input-font-size: var(--rt-list-search-font-size);--rt-input-color-border: var(--rt-list-search-color-border);--rt-input-color-bg: var(--rt-list-search-color-bg);--rt-input-color-text-placeholder: var(--rt-list-search-color-placeholder);--rt-input-line-height: var(--rt-list-filter-line-height);min-width:0;flex-grow:1}.rt-data-table-filter-cell .rt-data-table-filter-cell__field{width:calc(180px + 2 * var(--rt-space-4))}.rt-data-table-filter-cell rt-icon-button{--rt-icon-button-color: var(--rt-list-table-icon-color)}.rt-data-table-filter-cell .rt-icon-button{--rt-icon-button-size-step: var(--rt-list-table-button-size);--rt-icon-button-radius: var(--rt-list-table-button-radius)}.rt-data-table-filter-cell .rt-icon-button__icon{min-width:var(--rt-list-table-icon-size);min-height:var(--rt-list-table-icon-size)}}\n"], dependencies: [{ kind: "component", type:
|
|
823
835
|
// components
|
|
824
836
|
RtDatePickerComponent, selector: "rt-date-picker", inputs: ["appearance", "type", "min", "max", "minuteStep"] }, { kind: "component", type: RtIconButtonComponent, selector: "rt-icon-button", inputs: ["icon", "glyph", "ariaLabel", "variant", "iconColor", "iconFill", "size", "iconSize", "type", "tooltip", "tabIndex", "loading", "disabled", "active", "indicator"], outputs: ["clicked"] }, { kind: "component", type: RtInputComponent, selector: "rt-input", inputs: ["appearance", "type", "placeholder", "iconLeft", "iconRight", "passwordToggle", "autocomplete"] }, { kind: "component", type: RtInputNumberComponent, selector: "rt-input-number", inputs: ["appearance", "iconLeft", "prefix", "placeholder", "min", "max", "minFractionDigits", "maxFractionDigits", "grouped"] }, { kind: "component", type: RtMenuComponent, selector: "rt-menu", inputs: ["icon", "ariaLabel", "align", "panelClass", "size", "disabled"], outputs: ["openedChange"] }, { kind: "component", type: RtMenuItemComponent, selector: "rt-menu-item", inputs: ["icon", "label", "danger", "success", "glyph", "fill", "current", "disabled", "confirmMessage", "confirmTitle", "confirmLabel", "confirmCancelLabel", "confirmTone", "link"], outputs: ["selected"] }, { kind: "component", type: RtSelectComponent, selector: "rt-select", inputs: ["appearance", "options", "placeholder", "iconLeft", "filter", "filterPlaceholder", "panelWidth", "panelMaxHeight"], outputs: ["selectionChange"] }, { kind: "directive", type:
|
|
825
837
|
// directives
|
|
@@ -840,7 +852,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImpor
|
|
|
840
852
|
BlockDirective,
|
|
841
853
|
ElemDirective,
|
|
842
854
|
FormsModule,
|
|
843
|
-
], host: { class: BEM_BLOCK$1 }, template: "<ng-container rtBlock=\"rt-data-table-filter-cell\">\n @if (filterOperators().length) {\n <rt-menu qa-dataid=\"data-table-filter-operator\" align=\"start\" [icon]=\"operatorIcon()\" [ariaLabel]=\"operatorLabel()\">\n @for (item of operatorItems(); track item.operator) {\n <rt-menu-item\n qa-dataid=\"data-table-filter-operator-item\"\n [icon]=\"item.icon\"\n [label]=\"item.label\"\n (selected)=\"onOperatorChange(item.operator)\" />\n }\n </rt-menu>\n }\n\n @switch (filterType()) {\n @case (filterTypes.TEXT) {\n <rt-input\n rtElem=\"field\"\n qa-dataid=\"data-table-filter-input\"\n size=\"sm\"\n [appearance]=\"appearance()\"\n [placeholder]=\"valuePlaceholder()\"\n [ngModel]=\"currentFilter().value\"\n [ngModelOptions]=\"{ standalone: true }\"\n (ngModelChange)=\"onDraft($event)\"\n (keydown.enter)=\"onCommit()\"\n (focusout)=\"onCommit()\" />\n }\n @case (filterTypes.NUMBER) {\n <rt-input-number\n rtElem=\"field\"\n qa-dataid=\"data-table-filter-number\"\n size=\"sm\"\n [appearance]=\"appearance()\"\n [placeholder]=\"valuePlaceholder()\"\n [ngModel]=\"number()\"\n [ngModelOptions]=\"{ standalone: true }\"\n (ngModelChange)=\"onNumberDraft($event)\"\n (keydown.enter)=\"onCommit()\"\n (focusout)=\"onCommit()\" />\n }\n @case (filterTypes.DATE) {\n <rt-icon-button\n qa-dataid=\"data-table-filter-clear\"\n icon=\"close\"\n [ariaLabel]=\"clearLabel()\"\n [tooltip]=\"clearLabel()\"\n [disabled]=\"!hasValue()\"\n (clicked)=\"
|
|
855
|
+
], host: { class: BEM_BLOCK$1 }, template: "<ng-container rtBlock=\"rt-data-table-filter-cell\">\n @if (filterOperators().length) {\n <rt-menu qa-dataid=\"data-table-filter-operator\" align=\"start\" [icon]=\"operatorIcon()\" [ariaLabel]=\"operatorLabel()\">\n @for (item of operatorItems(); track item.operator) {\n <rt-menu-item\n qa-dataid=\"data-table-filter-operator-item\"\n [icon]=\"item.icon\"\n [label]=\"item.label\"\n (selected)=\"onOperatorChange(item.operator)\" />\n }\n </rt-menu>\n }\n\n @switch (filterType()) {\n @case (filterTypes.TEXT) {\n <rt-input\n rtElem=\"field\"\n qa-dataid=\"data-table-filter-input\"\n size=\"sm\"\n [appearance]=\"appearance()\"\n [placeholder]=\"valuePlaceholder()\"\n [ngModel]=\"currentFilter().value\"\n [ngModelOptions]=\"{ standalone: true }\"\n (ngModelChange)=\"onDraft($event)\"\n (keydown.enter)=\"onCommit()\"\n (focusout)=\"onCommit()\" />\n }\n @case (filterTypes.NUMBER) {\n <rt-input-number\n rtElem=\"field\"\n qa-dataid=\"data-table-filter-number\"\n size=\"sm\"\n [appearance]=\"appearance()\"\n [placeholder]=\"valuePlaceholder()\"\n [ngModel]=\"number()\"\n [ngModelOptions]=\"{ standalone: true }\"\n (ngModelChange)=\"onNumberDraft($event)\"\n (keydown.enter)=\"onCommit()\"\n (focusout)=\"onCommit()\" />\n }\n @case (filterTypes.DATE) {\n <rt-icon-button\n qa-dataid=\"data-table-filter-clear\"\n icon=\"close\"\n [ariaLabel]=\"clearLabel()\"\n [tooltip]=\"clearLabel()\"\n [disabled]=\"!hasValue()\"\n (clicked)=\"onClear()\" />\n\n <rt-date-picker\n rtElem=\"field\"\n qa-dataid=\"data-table-filter-date\"\n size=\"sm\"\n [appearance]=\"appearance()\"\n [clearable]=\"false\"\n [ngModel]=\"day()\"\n [ngModelOptions]=\"{ standalone: true }\"\n (ngModelChange)=\"onDayChange($event)\" />\n }\n @case (filterTypes.SELECT) {\n <rt-icon-button\n qa-dataid=\"data-table-filter-clear\"\n icon=\"close\"\n [ariaLabel]=\"clearLabel()\"\n [tooltip]=\"clearLabel()\"\n [disabled]=\"!hasValue()\"\n (clicked)=\"onClear()\" />\n\n <rt-select\n rtElem=\"field\"\n qa-dataid=\"data-table-filter-select\"\n size=\"sm\"\n [appearance]=\"appearance()\"\n [clearable]=\"false\"\n [options]=\"selectOptions()\"\n [placeholder]=\"selectPlaceholder()\"\n [ngModel]=\"currentFilter().value || null\"\n [ngModelOptions]=\"{ standalone: true }\"\n (selectionChange)=\"onValueChange($event)\" />\n }\n }\n</ng-container>\n", styles: ["@charset \"UTF-8\";@layer rt-kit.components{.rt-data-table-filter-cell{display:flex;width:100%;align-items:center;justify-content:flex-start;gap:var(--rt-space-sm)}.rt-data-table-filter-cell__field{--rt-input-height-sm: var(--rt-list-search-height);--rt-input-font-size: var(--rt-list-search-font-size);--rt-input-color-border: var(--rt-list-search-color-border);--rt-input-color-bg: var(--rt-list-search-color-bg);--rt-input-color-text-placeholder: var(--rt-list-search-color-placeholder);--rt-input-line-height: var(--rt-list-filter-line-height);min-width:0;flex-grow:1}.rt-data-table-filter-cell .rt-data-table-filter-cell__field{width:calc(180px + 2 * var(--rt-space-4))}.rt-data-table-filter-cell rt-icon-button{--rt-icon-button-color: var(--rt-list-table-icon-color)}.rt-data-table-filter-cell .rt-icon-button{--rt-icon-button-size-step: var(--rt-list-table-button-size);--rt-icon-button-radius: var(--rt-list-table-button-radius)}.rt-data-table-filter-cell .rt-icon-button__icon{min-width:var(--rt-list-table-icon-size);min-height:var(--rt-list-table-icon-size)}}\n"] }]
|
|
844
856
|
}], propDecorators: { appearance: [{ type: i0.Input, args: [{ isSignal: true, alias: "appearance", required: false }] }], filterProperty: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterProperty", required: true }] }], filterType: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterType", required: true }] }], filterModel: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterModel", required: false }] }], defaultFilterOperator: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultFilterOperator", required: false }] }], filterOperators: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterOperators", required: false }] }], filterSelectOptions: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterSelectOptions", required: false }] }], filterChange: [{ type: i0.Output, args: ["filterChange"] }] } });
|
|
845
857
|
|
|
846
858
|
/**
|