@porscheinformatik/clr-addons 21.6.0 → 21.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/porscheinformatik-clr-addons.mjs +371 -69
- package/fesm2022/porscheinformatik-clr-addons.mjs.map +1 -1
- package/package.json +1 -1
- package/styles/clr-addons-phs.css +56 -13
- package/styles/clr-addons-phs.css.map +1 -1
- package/styles/clr-addons-phs.min.css +1 -1
- package/styles/clr-addons-phs.min.css.map +1 -1
- package/types/porscheinformatik-clr-addons.d.ts +222 -36
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Component, NgModule, Injectable, EventEmitter, Output, Input, Directive, ViewChild, ContentChildren, TemplateRef, ViewChildren, HostBinding, ElementRef, Renderer2, forwardRef, DOCUMENT, Inject, ContentChild, Optional, input, ChangeDetectionStrategy, signal, computed, SkipSelf, inject, model, contentChild, linkedSignal, DestroyRef, contentChildren, effect, NgZone, viewChild, ViewContainerRef, afterRenderEffect, InjectionToken, isSignal, HostListener, LOCALE_ID, Self, Host,
|
|
2
|
+
import { Component, NgModule, Injectable, EventEmitter, Output, Input, Directive, ViewChild, ContentChildren, TemplateRef, ViewChildren, HostBinding, ElementRef, Renderer2, forwardRef, DOCUMENT, Inject, ContentChild, Optional, input, ChangeDetectionStrategy, signal, computed, SkipSelf, inject, model, contentChild, linkedSignal, DestroyRef, contentChildren, effect, NgZone, viewChild, output, ViewContainerRef, afterRenderEffect, InjectionToken, isSignal, HostListener, LOCALE_ID, Self, Host, ChangeDetectorRef, Injector, untracked, runInInjectionContext } from '@angular/core';
|
|
3
3
|
import * as i1 from '@angular/common';
|
|
4
4
|
import { CommonModule, NgComponentOutlet, NgTemplateOutlet, getLocaleDateFormat, FormatWidth, NgOptimizedImage, NgClass } from '@angular/common';
|
|
5
5
|
import * as i2 from '@clr/angular/icon';
|
|
@@ -15,13 +15,13 @@ import { RouterModule } from '@angular/router';
|
|
|
15
15
|
import { trigger, transition, style, animate, state } from '@angular/animations';
|
|
16
16
|
import * as i1$1 from '@clr/angular/forms/common';
|
|
17
17
|
import * as i2$2 from '@clr/angular/forms/radio';
|
|
18
|
-
import * as
|
|
19
|
-
import * as i2$
|
|
20
|
-
import * as i2$
|
|
18
|
+
import * as i2$3 from '@clr/angular/popover/dropdown';
|
|
19
|
+
import * as i2$4 from '@clr/angular/popover/common';
|
|
20
|
+
import * as i2$5 from '@clr/angular/emphasis/alert';
|
|
21
21
|
import { takeUntilDestroyed, toObservable, outputFromObservable, toSignal } from '@angular/core/rxjs-interop';
|
|
22
|
-
import * as i2$
|
|
22
|
+
import * as i2$6 from '@clr/angular/progress/spinner';
|
|
23
23
|
import * as i4 from '@clr/angular/forms/checkbox';
|
|
24
|
-
import * as i3$
|
|
24
|
+
import * as i3$1 from '@clr/angular/forms/input';
|
|
25
25
|
import * as i1$3 from '@angular/common/http';
|
|
26
26
|
import { CdkDropList, moveItemInArray } from '@angular/cdk/drag-drop';
|
|
27
27
|
import * as i4$1 from '@clr/angular/forms/datepicker';
|
|
@@ -1000,7 +1000,7 @@ class ClrFlowBar {
|
|
|
1000
1000
|
return this._steps.slice(index + 1, this._steps.length).find(step => step.enabled);
|
|
1001
1001
|
}
|
|
1002
1002
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ClrFlowBar, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1003
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: ClrFlowBar, isStandalone: false, selector: "clr-flow-bar", inputs: { _steps: ["clrSteps", "_steps"], _activeStep: ["clrActiveStep", "_activeStep"] }, outputs: { _activeStepChange: "clrActiveStepChange" }, host: { properties: { "class.flow-bar": "true" } }, ngImport: i0, template: "<div class=\"flow-bar-wrapper\">\n @for (step of _steps; track step; let index = $index; let last = $last) {\n <div class=\"flow-bar-step\" [class.active]=\"step === _activeStep\">\n <button\n class=\"btn btn-link flow-bar-btn\"\n [disabled]=\"!step.enabled\"\n [class.active]=\"step === _activeStep\"\n (click)=\"changeActiveStep(step)\"\n [attr.data-testid]=\"'flow-bar-step-' + (step.title | async)\"\n >\n {{index + 1}}. {{(step.title | async)}}\n </button>\n @if (!last) {\n <cds-icon shape=\"angle\" direction=\"right\"></cds-icon>\n }\n </div>\n }\n</div>\n<clr-dropdown class=\"flow-bar-dropdown clr-flex-fill\" data-testid=\"flow-bar-dropdown\">\n <button type=\"button\" class=\"btn btn-outline-primary\" clrDropdownTrigger data-testid=\"flow-bar-dropdown-trigger\">\n {{_steps.indexOf(_activeStep) + 1}}. {{_activeStep?.title | async}}\n <cds-icon shape=\"angle\" direction=\"down\"></cds-icon>\n </button>\n <clr-dropdown-menu>\n @for (step of _steps; track step; let index = $index; let last = $last) {\n <button\n clrDropdownItem\n type=\"button\"\n class=\"btn\"\n [disabled]=\"!step.enabled\"\n (click)=\"changeActiveStep(step)\"\n [attr.data-testid]=\"'flow-bar-dropdown-step-' + (step.title | async)\"\n >\n {{index + 1}}. {{step.title | async}}\n </button>\n }\n </clr-dropdown-menu>\n</clr-dropdown>\n", dependencies: [{ kind: "component", type: i2.ClrIcon, selector: "clr-icon, cds-icon", inputs: ["shape", "size", "direction", "flip", "solid", "status", "inverse", "badge"] }, { kind: "directive", type: i2.CdsIconCustomTag, selector: "cds-icon" }, { kind: "component", type:
|
|
1003
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: ClrFlowBar, isStandalone: false, selector: "clr-flow-bar", inputs: { _steps: ["clrSteps", "_steps"], _activeStep: ["clrActiveStep", "_activeStep"] }, outputs: { _activeStepChange: "clrActiveStepChange" }, host: { properties: { "class.flow-bar": "true" } }, ngImport: i0, template: "<div class=\"flow-bar-wrapper\">\n @for (step of _steps; track step; let index = $index; let last = $last) {\n <div class=\"flow-bar-step\" [class.active]=\"step === _activeStep\">\n <button\n class=\"btn btn-link flow-bar-btn\"\n [disabled]=\"!step.enabled\"\n [class.active]=\"step === _activeStep\"\n (click)=\"changeActiveStep(step)\"\n [attr.data-testid]=\"'flow-bar-step-' + (step.title | async)\"\n >\n {{index + 1}}. {{(step.title | async)}}\n </button>\n @if (!last) {\n <cds-icon shape=\"angle\" direction=\"right\"></cds-icon>\n }\n </div>\n }\n</div>\n<clr-dropdown class=\"flow-bar-dropdown clr-flex-fill\" data-testid=\"flow-bar-dropdown\">\n <button type=\"button\" class=\"btn btn-outline-primary\" clrDropdownTrigger data-testid=\"flow-bar-dropdown-trigger\">\n {{_steps.indexOf(_activeStep) + 1}}. {{_activeStep?.title | async}}\n <cds-icon shape=\"angle\" direction=\"down\"></cds-icon>\n </button>\n <clr-dropdown-menu>\n @for (step of _steps; track step; let index = $index; let last = $last) {\n <button\n clrDropdownItem\n type=\"button\"\n class=\"btn\"\n [disabled]=\"!step.enabled\"\n (click)=\"changeActiveStep(step)\"\n [attr.data-testid]=\"'flow-bar-dropdown-step-' + (step.title | async)\"\n >\n {{index + 1}}. {{step.title | async}}\n </button>\n }\n </clr-dropdown-menu>\n</clr-dropdown>\n", dependencies: [{ kind: "component", type: i2.ClrIcon, selector: "clr-icon, cds-icon", inputs: ["shape", "size", "direction", "flip", "solid", "status", "inverse", "badge"] }, { kind: "directive", type: i2.CdsIconCustomTag, selector: "cds-icon" }, { kind: "component", type: i2$3.ClrDropdown, selector: "clr-dropdown", inputs: ["clrCloseMenuOnItemClick"] }, { kind: "component", type: i2$3.ClrDropdownMenu, selector: "clr-dropdown-menu", inputs: ["clrPosition"] }, { kind: "directive", type: i2$3.ClrDropdownTrigger, selector: "[clrDropdownTrigger],[clrDropdownToggle]" }, { kind: "directive", type: i2$3.ClrDropdownItem, selector: "[clrDropdownItem]", inputs: ["clrDisabled", "id"] }, { kind: "directive", type: ClrDropdownOverflowDirective, selector: "clr-dropdown-menu", inputs: ["clrDropdownMenuMaxHeight", "clrDropdownMenuItemMinHeight", "clrMarginBottom"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] }); }
|
|
1004
1004
|
}
|
|
1005
1005
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ClrFlowBar, decorators: [{
|
|
1006
1006
|
type: Component,
|
|
@@ -1937,7 +1937,7 @@ class ClrMultilingualSelector {
|
|
|
1937
1937
|
</clr-dropdown-menu>
|
|
1938
1938
|
</clr-dropdown>
|
|
1939
1939
|
</div>
|
|
1940
|
-
`, isInline: true, dependencies: [{ kind: "component", type: i2.ClrIcon, selector: "clr-icon, cds-icon", inputs: ["shape", "size", "direction", "flip", "solid", "status", "inverse", "badge"] }, { kind: "directive", type: i2.CdsIconCustomTag, selector: "cds-icon" }, { kind: "component", type:
|
|
1940
|
+
`, isInline: true, dependencies: [{ kind: "component", type: i2.ClrIcon, selector: "clr-icon, cds-icon", inputs: ["shape", "size", "direction", "flip", "solid", "status", "inverse", "badge"] }, { kind: "directive", type: i2.CdsIconCustomTag, selector: "cds-icon" }, { kind: "component", type: i2$3.ClrDropdown, selector: "clr-dropdown", inputs: ["clrCloseMenuOnItemClick"] }, { kind: "component", type: i2$3.ClrDropdownMenu, selector: "clr-dropdown-menu", inputs: ["clrPosition"] }, { kind: "directive", type: i2$3.ClrDropdownTrigger, selector: "[clrDropdownTrigger],[clrDropdownToggle]" }, { kind: "directive", type: i2$3.ClrDropdownItem, selector: "[clrDropdownItem]", inputs: ["clrDisabled", "id"] }, { kind: "directive", type: i2$4.ClrIfOpen, selector: "[clrIfOpen]", inputs: ["clrIfOpen"], outputs: ["clrIfOpenChange"] }, { kind: "directive", type: ClrDropdownOverflowDirective, selector: "clr-dropdown-menu", inputs: ["clrDropdownMenuMaxHeight", "clrDropdownMenuItemMinHeight", "clrMarginBottom"] }, { kind: "pipe", type: i1.KeyValuePipe, name: "keyvalue" }] }); }
|
|
1941
1941
|
}
|
|
1942
1942
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ClrMultilingualSelector, decorators: [{
|
|
1943
1943
|
type: Component,
|
|
@@ -2285,7 +2285,7 @@ class ClrNotification {
|
|
|
2285
2285
|
zonedTimer(300, this.ngZone).subscribe(() => (this.state = { value: 'currentPosition', params: { absolute: this._translate } }));
|
|
2286
2286
|
}
|
|
2287
2287
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ClrNotification, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2288
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: ClrNotification, isStandalone: false, selector: "clr-notification", inputs: { timeout: "timeout", notificationType: "notificationType", dismissable: "dismissable", progressbar: "progressbar" }, outputs: { closed: "closed" }, host: { properties: { "class.notification": "true" } }, viewQueries: [{ propertyName: "clrAlert", first: true, predicate: ClrAlert, descendants: true, static: true }], ngImport: i0, template: "<div class=\"notification__wrapper\" data-testid=\"notification\" [@slideDown] [@move]=\"state\" [@fade]=\"state\">\n @if (progressbar && timeout > 0) {\n <div class=\"progress top\" [ngClass]=\"notificationType\" data-testid=\"notification-progress-container\">\n <progress class=\"progress\" [max]=\"timeout\" [value]=\"progressStatus\" data-testid=\"notification-progress\"></progress>\n </div>\n }\n <clr-alert\n data-testid=\"notification-alert\"\n [clrAlertType]=\"notificationType\"\n [clrAlertAppLevel]=\"true\"\n [clrAlertClosable]=\"dismissable\"\n (clrAlertClosedChange)=\"close()\"\n >\n <div class=\"alert-item\">\n <span class=\"alert-text\" data-testid=\"notification-message\">\n <ng-content select=\"[clr-notification-message]\"></ng-content>\n </span>\n </div>\n </clr-alert>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2$
|
|
2288
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: ClrNotification, isStandalone: false, selector: "clr-notification", inputs: { timeout: "timeout", notificationType: "notificationType", dismissable: "dismissable", progressbar: "progressbar" }, outputs: { closed: "closed" }, host: { properties: { "class.notification": "true" } }, viewQueries: [{ propertyName: "clrAlert", first: true, predicate: ClrAlert, descendants: true, static: true }], ngImport: i0, template: "<div class=\"notification__wrapper\" data-testid=\"notification\" [@slideDown] [@move]=\"state\" [@fade]=\"state\">\n @if (progressbar && timeout > 0) {\n <div class=\"progress top\" [ngClass]=\"notificationType\" data-testid=\"notification-progress-container\">\n <progress class=\"progress\" [max]=\"timeout\" [value]=\"progressStatus\" data-testid=\"notification-progress\"></progress>\n </div>\n }\n <clr-alert\n data-testid=\"notification-alert\"\n [clrAlertType]=\"notificationType\"\n [clrAlertAppLevel]=\"true\"\n [clrAlertClosable]=\"dismissable\"\n (clrAlertClosedChange)=\"close()\"\n >\n <div class=\"alert-item\">\n <span class=\"alert-text\" data-testid=\"notification-message\">\n <ng-content select=\"[clr-notification-message]\"></ng-content>\n </span>\n </div>\n </clr-alert>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2$5.ClrAlert, selector: "clr-alert", inputs: ["clrAlertSizeSmall", "clrAlertClosable", "clrAlertAppLevel", "clrCloseButtonAriaLabel", "clrAlertLightweight", "clrAlertType", "clrAlertIcon", "clrAlertClosed"], outputs: ["clrAlertClosedChange"] }, { kind: "directive", type: i2$5.ClrAlertText, selector: ".alert-text" }], animations: [
|
|
2289
2289
|
trigger('slideDown', [
|
|
2290
2290
|
transition(':enter', [
|
|
2291
2291
|
style({ transform: 'translateY(-200%)' }),
|
|
@@ -3180,7 +3180,7 @@ class ClrPagedSearchResultList {
|
|
|
3180
3180
|
this.pageSizeChange = new EventEmitter();
|
|
3181
3181
|
}
|
|
3182
3182
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ClrPagedSearchResultList, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3183
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: ClrPagedSearchResultList, isStandalone: false, selector: "clr-paged-search-result-list", inputs: { pageSize: ["clrPageSize", "pageSize"], pageSizeOptions: ["clrPageSizeOptions", "pageSizeOptions"], pageSizeLabel: ["clrPageSizeLabel", "pageSizeLabel"], currentPage: ["clrPage", "currentPage"], totalItems: ["clrTotalItems", "totalItems"], items: ["clrItems", "items"], clrPagerPosition: "clrPagerPosition" }, outputs: { pageChange: "clrPageChange", pageSizeChange: "clrPageSizeChange" }, queries: [{ propertyName: "itemTemplate", first: true, predicate: TemplateRef, descendants: true, static: true }], ngImport: i0, template: "@if (clrPagerPosition === 'top' || clrPagerPosition === 'both') {\n<div>\n <ng-container [ngTemplateOutlet]=\"pager\" [ngTemplateOutletContext]=\"{ $implicit: 'top' }\"></ng-container>\n</div>\n} @for (item of items; track item) {\n<ng-container [ngTemplateOutlet]=\"itemTemplate\" [ngTemplateOutletContext]=\"{item: item}\">\n @if (!itemTemplate) {\n <div>Item template input is undefined!</div>\n }\n</ng-container>\n} @if (clrPagerPosition === 'bottom' || clrPagerPosition === 'both') {\n<div>\n <ng-container [ngTemplateOutlet]=\"pager\" [ngTemplateOutletContext]=\"{ $implicit: 'bottom' }\"></ng-container>\n</div>\n}\n<ng-template #pager let-position>\n <div class=\"clr-row\" [attr.data-testid]=\"'paged-search-result-list-pager-row-' + (position)\">\n <div\n [class.pager-top]=\"position === 'top'\"\n [class.pager-bottom]=\"position === 'bottom'\"\n [attr.data-testid]=\"'paged-search-result-list-pager-container-' + (position)\"\n >\n <ng-container *ngTemplateOutlet=\"pageSizeDropdown\"></ng-container>\n <clr-pager\n [clrPage]=\"currentPage\"\n [clrPageSize]=\"pageSize\"\n [clrTotalItems]=\"totalItems\"\n (clrPageChange)=\"pageChange.emit($event)\"\n [attr.data-testid]=\"'paged-search-result-list-pager-' + (position)\"\n ></clr-pager>\n </div>\n </div>\n</ng-template>\n<ng-template #pageSizeDropdown>\n @if (pageSizeOptions?.length > 1) {\n <div>\n <clr-dropdown>\n <button\n type=\"button\"\n class=\"btn btn-link btn-no-capitalized\"\n clrDropdownTrigger\n data-testid=\"paged-search-result-list-page-size-trigger\"\n >\n <span class=\"options-text-button\" data-testid=\"paged-search-result-list-page-size-label\">\n {{ pageSizeLabel }}: {{ pageSize }}\n </span>\n <cds-icon class=\"options-icon-button\" shape=\"cog\"></cds-icon>\n <cds-icon shape=\"angle\" direction=\"down\"></cds-icon>\n </button>\n <clr-dropdown-menu\n class=\"spinner-in-front\"\n clrPosition=\"top-right\"\n data-testid=\"paged-search-result-list-page-size-menu\"\n >\n @for (sizeOption of pageSizeOptions; track sizeOption) {\n <button\n type=\"button\"\n clrDropdownItem\n (click)=\"pageSizeChange.emit(sizeOption)\"\n [attr.data-testid]=\"'paged-search-result-list-page-size-option-' + (sizeOption)\"\n >\n {{ sizeOption }}\n </button>\n }\n </clr-dropdown-menu>\n </clr-dropdown>\n </div>\n }\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ClrIcon, selector: "clr-icon, cds-icon", inputs: ["shape", "size", "direction", "flip", "solid", "status", "inverse", "badge"] }, { kind: "directive", type: i2.CdsIconCustomTag, selector: "cds-icon" }, { kind: "component", type:
|
|
3183
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: ClrPagedSearchResultList, isStandalone: false, selector: "clr-paged-search-result-list", inputs: { pageSize: ["clrPageSize", "pageSize"], pageSizeOptions: ["clrPageSizeOptions", "pageSizeOptions"], pageSizeLabel: ["clrPageSizeLabel", "pageSizeLabel"], currentPage: ["clrPage", "currentPage"], totalItems: ["clrTotalItems", "totalItems"], items: ["clrItems", "items"], clrPagerPosition: "clrPagerPosition" }, outputs: { pageChange: "clrPageChange", pageSizeChange: "clrPageSizeChange" }, queries: [{ propertyName: "itemTemplate", first: true, predicate: TemplateRef, descendants: true, static: true }], ngImport: i0, template: "@if (clrPagerPosition === 'top' || clrPagerPosition === 'both') {\n<div>\n <ng-container [ngTemplateOutlet]=\"pager\" [ngTemplateOutletContext]=\"{ $implicit: 'top' }\"></ng-container>\n</div>\n} @for (item of items; track item) {\n<ng-container [ngTemplateOutlet]=\"itemTemplate\" [ngTemplateOutletContext]=\"{item: item}\">\n @if (!itemTemplate) {\n <div>Item template input is undefined!</div>\n }\n</ng-container>\n} @if (clrPagerPosition === 'bottom' || clrPagerPosition === 'both') {\n<div>\n <ng-container [ngTemplateOutlet]=\"pager\" [ngTemplateOutletContext]=\"{ $implicit: 'bottom' }\"></ng-container>\n</div>\n}\n<ng-template #pager let-position>\n <div class=\"clr-row\" [attr.data-testid]=\"'paged-search-result-list-pager-row-' + (position)\">\n <div\n [class.pager-top]=\"position === 'top'\"\n [class.pager-bottom]=\"position === 'bottom'\"\n [attr.data-testid]=\"'paged-search-result-list-pager-container-' + (position)\"\n >\n <ng-container *ngTemplateOutlet=\"pageSizeDropdown\"></ng-container>\n <clr-pager\n [clrPage]=\"currentPage\"\n [clrPageSize]=\"pageSize\"\n [clrTotalItems]=\"totalItems\"\n (clrPageChange)=\"pageChange.emit($event)\"\n [attr.data-testid]=\"'paged-search-result-list-pager-' + (position)\"\n ></clr-pager>\n </div>\n </div>\n</ng-template>\n<ng-template #pageSizeDropdown>\n @if (pageSizeOptions?.length > 1) {\n <div>\n <clr-dropdown>\n <button\n type=\"button\"\n class=\"btn btn-link btn-no-capitalized\"\n clrDropdownTrigger\n data-testid=\"paged-search-result-list-page-size-trigger\"\n >\n <span class=\"options-text-button\" data-testid=\"paged-search-result-list-page-size-label\">\n {{ pageSizeLabel }}: {{ pageSize }}\n </span>\n <cds-icon class=\"options-icon-button\" shape=\"cog\"></cds-icon>\n <cds-icon shape=\"angle\" direction=\"down\"></cds-icon>\n </button>\n <clr-dropdown-menu\n class=\"spinner-in-front\"\n clrPosition=\"top-right\"\n data-testid=\"paged-search-result-list-page-size-menu\"\n >\n @for (sizeOption of pageSizeOptions; track sizeOption) {\n <button\n type=\"button\"\n clrDropdownItem\n (click)=\"pageSizeChange.emit(sizeOption)\"\n [attr.data-testid]=\"'paged-search-result-list-page-size-option-' + (sizeOption)\"\n >\n {{ sizeOption }}\n </button>\n }\n </clr-dropdown-menu>\n </clr-dropdown>\n </div>\n }\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ClrIcon, selector: "clr-icon, cds-icon", inputs: ["shape", "size", "direction", "flip", "solid", "status", "inverse", "badge"] }, { kind: "directive", type: i2.CdsIconCustomTag, selector: "cds-icon" }, { kind: "component", type: i2$3.ClrDropdown, selector: "clr-dropdown", inputs: ["clrCloseMenuOnItemClick"] }, { kind: "component", type: i2$3.ClrDropdownMenu, selector: "clr-dropdown-menu", inputs: ["clrPosition"] }, { kind: "directive", type: i2$3.ClrDropdownTrigger, selector: "[clrDropdownTrigger],[clrDropdownToggle]" }, { kind: "directive", type: i2$3.ClrDropdownItem, selector: "[clrDropdownItem]", inputs: ["clrDisabled", "id"] }, { kind: "component", type: ClrPager, selector: "clr-pager", inputs: ["clrPageSize", "clrTotalItems", "clrLast", "clrPage"], outputs: ["clrPageChange"] }] }); }
|
|
3184
3184
|
}
|
|
3185
3185
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ClrPagedSearchResultList, decorators: [{
|
|
3186
3186
|
type: Component,
|
|
@@ -3767,7 +3767,7 @@ class ClrTreetableActionOverflow {
|
|
|
3767
3767
|
</div>
|
|
3768
3768
|
</ng-container>
|
|
3769
3769
|
}
|
|
3770
|
-
`, isInline: true, dependencies: [{ kind: "component", type: i2.ClrIcon, selector: "clr-icon, cds-icon", inputs: ["shape", "size", "direction", "flip", "solid", "status", "inverse", "badge"] }, { kind: "directive", type: i2.CdsIconCustomTag, selector: "cds-icon" }, { kind: "directive", type: i2$
|
|
3770
|
+
`, isInline: true, dependencies: [{ kind: "component", type: i2.ClrIcon, selector: "clr-icon, cds-icon", inputs: ["shape", "size", "direction", "flip", "solid", "status", "inverse", "badge"] }, { kind: "directive", type: i2.CdsIconCustomTag, selector: "cds-icon" }, { kind: "directive", type: i2$4.ClrPopoverOrigin, selector: "[clrPopoverOrigin]" }, { kind: "directive", type: i2$4.ClrPopoverOpenCloseButton, selector: "[clrPopoverOpenCloseButton]", outputs: ["clrPopoverOpenCloseChange"] }, { kind: "directive", type: i2$4.ClrPopoverContent, selector: "[clrPopoverContent]", inputs: ["clrPopoverContent", "clrPopoverContentAt", "clrPopoverContentAvailablePositions", "clrPopoverContentType", "clrPopoverContentOutsideClickToClose", "clrPopoverContentScrollToClose", "clrPopoverContentOrigin"] }, { kind: "directive", type: i1$2.CdkTrapFocusModule_CdkTrapFocus, selector: "[cdkTrapFocus]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3771
3771
|
}
|
|
3772
3772
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ClrTreetableActionOverflow, decorators: [{
|
|
3773
3773
|
type: Component,
|
|
@@ -4439,14 +4439,21 @@ class TreetableDataStateService {
|
|
|
4439
4439
|
}
|
|
4440
4440
|
return this.filterTreeRecursively(treetableNodes, activeFilters);
|
|
4441
4441
|
}, ...(ngDevMode ? [{ debugName: "_filteredNodes" }] : /* istanbul ignore next */ []));
|
|
4442
|
-
this.displayedNodes = computed(() => {
|
|
4443
|
-
|
|
4444
|
-
|
|
4445
|
-
|
|
4446
|
-
|
|
4447
|
-
|
|
4448
|
-
|
|
4449
|
-
|
|
4442
|
+
this.displayedNodes = computed(() => this.applySort(this._filteredNodes()), ...(ngDevMode ? [{ debugName: "displayedNodes" }] : /* istanbul ignore next */ []));
|
|
4443
|
+
/**
|
|
4444
|
+
* All nodes of the data source, ignoring the active filters. The active sort is applied, so the
|
|
4445
|
+
* order matches the order of the displayed nodes.
|
|
4446
|
+
*/
|
|
4447
|
+
this.allNodes = computed(() => this.applySort(this._treetableNodes()), ...(ngDevMode ? [{ debugName: "allNodes" }] : /* istanbul ignore next */ []));
|
|
4448
|
+
/**
|
|
4449
|
+
* All items of the data source as a flat, depth-first list. Active filters are ignored, the
|
|
4450
|
+
* active sort is applied.
|
|
4451
|
+
*/
|
|
4452
|
+
this.allItems = computed(() => this.flatten(this.allNodes()), ...(ngDevMode ? [{ debugName: "allItems" }] : /* istanbul ignore next */ []));
|
|
4453
|
+
/**
|
|
4454
|
+
* All currently displayed items (filtered and sorted) as a flat, depth-first list.
|
|
4455
|
+
*/
|
|
4456
|
+
this.displayedItems = computed(() => this.flatten(this.displayedNodes()), ...(ngDevMode ? [{ debugName: "displayedItems" }] : /* istanbul ignore next */ []));
|
|
4450
4457
|
this.areAllNodesSelected = computed(() => this.displayedNodes().every(node => node.selected() === ClrTreetableSelectedState.SELECTED), ...(ngDevMode ? [{ debugName: "areAllNodesSelected" }] : /* istanbul ignore next */ []));
|
|
4451
4458
|
this.selectedNodes = computed(() => {
|
|
4452
4459
|
const result = [];
|
|
@@ -4541,6 +4548,26 @@ class TreetableDataStateService {
|
|
|
4541
4548
|
}
|
|
4542
4549
|
return result;
|
|
4543
4550
|
}
|
|
4551
|
+
/**
|
|
4552
|
+
* Applies the currently active sort to the given nodes. Returns them unchanged if no sort is active.
|
|
4553
|
+
*/
|
|
4554
|
+
applySort(nodes) {
|
|
4555
|
+
const { comparator } = this._sort.sortState();
|
|
4556
|
+
if (!comparator) {
|
|
4557
|
+
return nodes;
|
|
4558
|
+
}
|
|
4559
|
+
return this.sortTreeRecursively(nodes);
|
|
4560
|
+
}
|
|
4561
|
+
/**
|
|
4562
|
+
* Flattens the given nodes into a depth-first list of their values.
|
|
4563
|
+
*/
|
|
4564
|
+
flatten(nodes) {
|
|
4565
|
+
const result = [];
|
|
4566
|
+
this.traverseTreeNodes(nodes, (node) => {
|
|
4567
|
+
result.push(node.value);
|
|
4568
|
+
});
|
|
4569
|
+
return result;
|
|
4570
|
+
}
|
|
4544
4571
|
sortTreeRecursively(nodes) {
|
|
4545
4572
|
const sortedNodes = [...nodes].sort((nodeA, nodeB) => this._sort.compare(nodeA.value, nodeB.value));
|
|
4546
4573
|
return sortedNodes.map(node => {
|
|
@@ -4620,6 +4647,8 @@ class TreetableColumnStateService {
|
|
|
4620
4647
|
hidden: false,
|
|
4621
4648
|
initialHidden: false,
|
|
4622
4649
|
titleTemplateRef: options.titleTemplateRef,
|
|
4650
|
+
field: options.field,
|
|
4651
|
+
colType: options.colType ?? 'string',
|
|
4623
4652
|
},
|
|
4624
4653
|
}));
|
|
4625
4654
|
}
|
|
@@ -4734,6 +4763,8 @@ class ClrTreetable {
|
|
|
4734
4763
|
this.treetableId = `clr-treetable-${++treetableId}`;
|
|
4735
4764
|
this.selectAllId = `clr-tt-select-all${treetableId}`;
|
|
4736
4765
|
this._dataStateService = inject((TreetableDataStateService));
|
|
4766
|
+
this._columnStateService = inject(TreetableColumnStateService);
|
|
4767
|
+
this._filterStateService = inject((FilterStateService));
|
|
4737
4768
|
this._recursionService = inject((ClrTreetableRecursionService));
|
|
4738
4769
|
this._commonStringsService = inject(ClrCommonStringsService);
|
|
4739
4770
|
this.commonStrings = this._commonStringsService.keys;
|
|
@@ -4753,6 +4784,30 @@ class ClrTreetable {
|
|
|
4753
4784
|
this.showSelection = computed(() => this.selectionType() === SelectionType.Multi, ...(ngDevMode ? [{ debugName: "showSelection" }] : /* istanbul ignore next */ []));
|
|
4754
4785
|
this.areAllRowsSelected = computed(() => this._dataStateService.areAllNodesSelected(), ...(ngDevMode ? [{ debugName: "areAllRowsSelected" }] : /* istanbul ignore next */ []));
|
|
4755
4786
|
this.hasActionOverflow = computed(() => this._actionOverflow()?.length > 0, ...(ngDevMode ? [{ debugName: "hasActionOverflow" }] : /* istanbul ignore next */ []));
|
|
4787
|
+
/**
|
|
4788
|
+
* All items of the data source as a flat, depth-first list. Active filters are ignored, the
|
|
4789
|
+
* active sort is applied.
|
|
4790
|
+
*/
|
|
4791
|
+
this.allItems = this._dataStateService.allItems;
|
|
4792
|
+
/**
|
|
4793
|
+
* All currently displayed items (filtered and sorted) as a flat, depth-first list.
|
|
4794
|
+
*/
|
|
4795
|
+
this.displayedItems = this._dataStateService.displayedItems;
|
|
4796
|
+
/**
|
|
4797
|
+
* All currently selected items as a flat, depth-first list.
|
|
4798
|
+
*
|
|
4799
|
+
* Selection is tracked on the displayed nodes, so a selected item that is hidden by an active
|
|
4800
|
+
* filter is not part of this list.
|
|
4801
|
+
*/
|
|
4802
|
+
this.selectedItems = this._dataStateService.selectedNodes;
|
|
4803
|
+
/**
|
|
4804
|
+
* True as long as at least one filter of the treetable is active.
|
|
4805
|
+
*/
|
|
4806
|
+
this.hasActiveFilters = this._filterStateService.hasActiveFilters;
|
|
4807
|
+
/**
|
|
4808
|
+
* State of all currently visible (not hidden) columns, in render order.
|
|
4809
|
+
*/
|
|
4810
|
+
this.visibleColumnStates = this._columnStateService.visibleColumns;
|
|
4756
4811
|
effect(() => {
|
|
4757
4812
|
const selectedItems = this.clrTtSelected();
|
|
4758
4813
|
if (selectedItems) {
|
|
@@ -4773,7 +4828,7 @@ class ClrTreetable {
|
|
|
4773
4828
|
TreetableColumnStateService,
|
|
4774
4829
|
SortStateService,
|
|
4775
4830
|
FilterStateService,
|
|
4776
|
-
], queries: [{ propertyName: "_ttRows", predicate: ClrTreetableRow, descendants: true, isSignal: true }, { propertyName: "_actionOverflow", predicate: ClrTreetableActionOverflow, descendants: true, isSignal: true }], ngImport: i0, template: "<!--\n~ Copyright (c) 2018-2026 Porsche Informatik. All Rights Reserved.\n~ This software is released under MIT license.\n~ The full license information can be found in LICENSE in the root directory of this project.\n-->\n\n<div class=\"treetable\" data-testid=\"treetable\">\n <div class=\"treetable-grid\" role=\"grid\" data-testid=\"treetable-grid\">\n <div class=\"treetable-header\" role=\"rowgroup\" data-testid=\"treetable-header\" [class.hide-header]=\"clrHideHeader()\">\n @if (showSelection() && !empty()) {\n <div class=\"treetable-row-selection treetable-column\" role=\"columnheader\">\n <div class=\"clr-checkbox-wrapper\">\n <input\n type=\"checkbox\"\n data-testId=\"clrTtSelectAll\"\n [id]=\"selectAllId\"\n [checked]=\"areAllRowsSelected()\"\n (change)=\"toggleSelectAll()\"\n />\n <!-- Usage of class clr-col-null here prevents clr-col-* classes from being added when a treetable is wrapped inside clrForm -->\n <label [for]=\"selectAllId\" class=\"clr-control-label clr-col-null\" data-testid=\"treetable-select-all-label\">\n <span class=\"clr-sr-only\" data-testid=\"treetable-select-all-text\">{{ commonStrings.selectAll }}</span>\n </label>\n </div>\n </div>\n } @if (hasActionOverflow()) {\n <div class=\"treetable-row-actions treetable-column\" data-testid=\"treetable-action-header\"> </div>\n }\n <div class=\"treetable-row-scrollable\" data-testid=\"treetable-column-headers\">\n <ng-content select=\"clr-tt-column\" />\n </div>\n </div>\n\n <div class=\"treetable-body\" data-testid=\"treetable-body\">\n @if (isRecursionMode()) {\n <clr-tt-recursive-rows [children]=\"displayedNodes()\" />\n } @else {\n <ng-content select=\"clr-tt-row\" />\n } @if (empty() && !clrTtLoading()) {\n <ng-content select=\"clr-tt-placeholder\" />\n }\n </div>\n </div>\n\n <ng-content select=\"clr-tt-footer\"></ng-content>\n\n @if (clrTtLoading()) {\n <div class=\"treetable-spinner\" data-testid=\"treetable-loading\">\n <clr-spinner clrMedium data-testid=\"treetable-loading-spinner\" />\n </div>\n }\n</div>\n", dependencies: [{ kind: "directive", type: i1$1.ClrControlLabel, selector: "label", inputs: ["id", "for"] }, { kind: "component", type: i2$
|
|
4831
|
+
], queries: [{ propertyName: "_ttRows", predicate: ClrTreetableRow, descendants: true, isSignal: true }, { propertyName: "_actionOverflow", predicate: ClrTreetableActionOverflow, descendants: true, isSignal: true }], ngImport: i0, template: "<!--\n~ Copyright (c) 2018-2026 Porsche Informatik. All Rights Reserved.\n~ This software is released under MIT license.\n~ The full license information can be found in LICENSE in the root directory of this project.\n-->\n\n<div class=\"treetable\" data-testid=\"treetable\">\n <div class=\"treetable-grid\" role=\"grid\" data-testid=\"treetable-grid\">\n <div class=\"treetable-header\" role=\"rowgroup\" data-testid=\"treetable-header\" [class.hide-header]=\"clrHideHeader()\">\n @if (showSelection() && !empty()) {\n <div class=\"treetable-row-selection treetable-column\" role=\"columnheader\">\n <div class=\"clr-checkbox-wrapper\">\n <input\n type=\"checkbox\"\n data-testId=\"clrTtSelectAll\"\n [id]=\"selectAllId\"\n [checked]=\"areAllRowsSelected()\"\n (change)=\"toggleSelectAll()\"\n />\n <!-- Usage of class clr-col-null here prevents clr-col-* classes from being added when a treetable is wrapped inside clrForm -->\n <label [for]=\"selectAllId\" class=\"clr-control-label clr-col-null\" data-testid=\"treetable-select-all-label\">\n <span class=\"clr-sr-only\" data-testid=\"treetable-select-all-text\">{{ commonStrings.selectAll }}</span>\n </label>\n </div>\n </div>\n } @if (hasActionOverflow()) {\n <div class=\"treetable-row-actions treetable-column\" data-testid=\"treetable-action-header\"> </div>\n }\n <div class=\"treetable-row-scrollable\" data-testid=\"treetable-column-headers\">\n <ng-content select=\"clr-tt-column\" />\n </div>\n </div>\n\n <div class=\"treetable-body\" data-testid=\"treetable-body\">\n @if (isRecursionMode()) {\n <clr-tt-recursive-rows [children]=\"displayedNodes()\" />\n } @else {\n <ng-content select=\"clr-tt-row\" />\n } @if (empty() && !clrTtLoading()) {\n <ng-content select=\"clr-tt-placeholder\" />\n }\n </div>\n </div>\n\n <ng-content select=\"clr-tt-footer\"></ng-content>\n\n @if (clrTtLoading()) {\n <div class=\"treetable-spinner\" data-testid=\"treetable-loading\">\n <clr-spinner clrMedium data-testid=\"treetable-loading-spinner\" />\n </div>\n }\n</div>\n", dependencies: [{ kind: "directive", type: i1$1.ClrControlLabel, selector: "label", inputs: ["id", "for"] }, { kind: "component", type: i2$6.ClrSpinner, selector: "clr-spinner", inputs: ["clrInline", "clrInverse", "clrSmall", "clrMedium"] }, { kind: "component", type: ClrTreetableRecursiveRows, selector: "clr-tt-recursive-rows", inputs: ["parent", "children"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
4777
4832
|
}
|
|
4778
4833
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ClrTreetable, decorators: [{
|
|
4779
4834
|
type: Component,
|
|
@@ -5040,7 +5095,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImpo
|
|
|
5040
5095
|
let columnId = 0;
|
|
5041
5096
|
class ClrTreetableColumn {
|
|
5042
5097
|
ngOnInit() {
|
|
5043
|
-
this._columnState.register({
|
|
5098
|
+
this._columnState.register({
|
|
5099
|
+
id: this.columnId,
|
|
5100
|
+
titleTemplateRef: this._columnTitleRef(),
|
|
5101
|
+
field: this.clrTtField() ?? undefined,
|
|
5102
|
+
colType: this.clrTtColType(),
|
|
5103
|
+
});
|
|
5044
5104
|
}
|
|
5045
5105
|
ngAfterViewInit() {
|
|
5046
5106
|
// Only set a default testid if the consumer didn't already provide one.
|
|
@@ -5059,6 +5119,19 @@ class ClrTreetableColumn {
|
|
|
5059
5119
|
this._columnTitleRef = viewChild('columnTitle', { ...(ngDevMode ? { debugName: "_columnTitleRef" } : /* istanbul ignore next */ {}), read: TemplateRef });
|
|
5060
5120
|
this._columnState = inject(TreetableColumnStateService);
|
|
5061
5121
|
this._sort = inject((SortStateService));
|
|
5122
|
+
/**
|
|
5123
|
+
* Property path of the item rendered in this column, e.g. `name` or `address.city`.
|
|
5124
|
+
*
|
|
5125
|
+
* The treetable itself does not use this value for rendering. It is metadata consumed by features
|
|
5126
|
+
* that need to map a column to a raw data property, most notably `clr-export-treetable-button`.
|
|
5127
|
+
*/
|
|
5128
|
+
this.clrTtField = input(null, ...(ngDevMode ? [{ debugName: "clrTtField" }] : /* istanbul ignore next */ []));
|
|
5129
|
+
/**
|
|
5130
|
+
* Type of the values rendered in this column.
|
|
5131
|
+
*
|
|
5132
|
+
* It is only used as metadata for the export, where it determines the type of the written cells.
|
|
5133
|
+
*/
|
|
5134
|
+
this.clrTtColType = input('string', ...(ngDevMode ? [{ debugName: "clrTtColType" }] : /* istanbul ignore next */ []));
|
|
5062
5135
|
this.clrTtSortBy = input(null, ...(ngDevMode ? [{ debugName: "clrTtSortBy" }] : /* istanbul ignore next */ []));
|
|
5063
5136
|
this._internalSortOrder = computed(() => {
|
|
5064
5137
|
const sortState = this._sort.sortState();
|
|
@@ -5140,7 +5213,7 @@ class ClrTreetableColumn {
|
|
|
5140
5213
|
this._sort.toggle(comparator, reverse);
|
|
5141
5214
|
}
|
|
5142
5215
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ClrTreetableColumn, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5143
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: ClrTreetableColumn, isStandalone: false, selector: "clr-tt-column", inputs: { clrTtSortBy: { classPropertyName: "clrTtSortBy", publicName: "clrTtSortBy", isSignal: true, isRequired: false, transformFunction: null }, clrTtSortOrder: { classPropertyName: "clrTtSortOrder", publicName: "clrTtSortOrder", isSignal: true, isRequired: false, transformFunction: null }, clrTtColumnSize: { classPropertyName: "clrTtColumnSize", publicName: "clrTtColumnSize", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clrTtSortOrderChange: "clrTtSortOrderChange", clrTtColumnResize: "clrTtColumnResize" }, host: { attributes: { "role": "columnheader" }, properties: { "class.treetable-column": "true", "attr.aria-sort": "ariaSort()" } }, providers: [ClrPopoverService], viewQueries: [{ propertyName: "_columnTitleRef", first: true, predicate: ["columnTitle"], descendants: true, read: TemplateRef, isSignal: true }], ngImport: i0, template: `
|
|
5216
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: ClrTreetableColumn, isStandalone: false, selector: "clr-tt-column", inputs: { clrTtField: { classPropertyName: "clrTtField", publicName: "clrTtField", isSignal: true, isRequired: false, transformFunction: null }, clrTtColType: { classPropertyName: "clrTtColType", publicName: "clrTtColType", isSignal: true, isRequired: false, transformFunction: null }, clrTtSortBy: { classPropertyName: "clrTtSortBy", publicName: "clrTtSortBy", isSignal: true, isRequired: false, transformFunction: null }, clrTtSortOrder: { classPropertyName: "clrTtSortOrder", publicName: "clrTtSortOrder", isSignal: true, isRequired: false, transformFunction: null }, clrTtColumnSize: { classPropertyName: "clrTtColumnSize", publicName: "clrTtColumnSize", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clrTtSortOrderChange: "clrTtSortOrderChange", clrTtColumnResize: "clrTtColumnResize" }, host: { attributes: { "role": "columnheader" }, properties: { "class.treetable-column": "true", "attr.aria-sort": "ariaSort()", "attr.data-column-id": "columnId" } }, providers: [ClrPopoverService], viewQueries: [{ propertyName: "_columnTitleRef", first: true, predicate: ["columnTitle"], descendants: true, read: TemplateRef, isSignal: true }], ngImport: i0, template: `
|
|
5144
5217
|
@if (isSortable()) {
|
|
5145
5218
|
<button type="button" class="treetable-column-title" data-testId="clrTtSortButton" (click)="sort()">
|
|
5146
5219
|
<ng-container *ngTemplateOutlet="columnTitle" />
|
|
@@ -5205,12 +5278,251 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImpo
|
|
|
5205
5278
|
host: {
|
|
5206
5279
|
'[class.treetable-column]': 'true',
|
|
5207
5280
|
'[attr.aria-sort]': 'ariaSort()',
|
|
5281
|
+
'[attr.data-column-id]': 'columnId',
|
|
5208
5282
|
role: 'columnheader',
|
|
5209
5283
|
},
|
|
5210
5284
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
5211
5285
|
standalone: false,
|
|
5212
5286
|
}]
|
|
5213
|
-
}], ctorParameters: () => [], propDecorators: { _columnTitleRef: [{ type: i0.ViewChild, args: ['columnTitle', { ...{ read: TemplateRef }, isSignal: true }] }], clrTtSortBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "clrTtSortBy", required: false }] }], clrTtSortOrder: [{ type: i0.Input, args: [{ isSignal: true, alias: "clrTtSortOrder", required: false }] }], clrTtSortOrderChange: [{ type: i0.Output, args: ["clrTtSortOrderChange"] }], clrTtColumnSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "clrTtColumnSize", required: false }] }], clrTtColumnResize: [{ type: i0.Output, args: ["clrTtColumnResize"] }] } });
|
|
5287
|
+
}], ctorParameters: () => [], propDecorators: { _columnTitleRef: [{ type: i0.ViewChild, args: ['columnTitle', { ...{ read: TemplateRef }, isSignal: true }] }], clrTtField: [{ type: i0.Input, args: [{ isSignal: true, alias: "clrTtField", required: false }] }], clrTtColType: [{ type: i0.Input, args: [{ isSignal: true, alias: "clrTtColType", required: false }] }], clrTtSortBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "clrTtSortBy", required: false }] }], clrTtSortOrder: [{ type: i0.Input, args: [{ isSignal: true, alias: "clrTtSortOrder", required: false }] }], clrTtSortOrderChange: [{ type: i0.Output, args: ["clrTtSortOrderChange"] }], clrTtColumnSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "clrTtColumnSize", required: false }] }], clrTtColumnResize: [{ type: i0.Output, args: ["clrTtColumnResize"] }] } });
|
|
5288
|
+
|
|
5289
|
+
/**
|
|
5290
|
+
* Generic excel export service based on the optional `zipcelx` dependency.
|
|
5291
|
+
*
|
|
5292
|
+
* It is used as the shared writer for all export buttons of this library
|
|
5293
|
+
* (e.g. datagrid and treetable export).
|
|
5294
|
+
*/
|
|
5295
|
+
class ExportExcelService {
|
|
5296
|
+
constructor() {
|
|
5297
|
+
this.init();
|
|
5298
|
+
}
|
|
5299
|
+
async init() {
|
|
5300
|
+
try {
|
|
5301
|
+
this.zipcelx = await import('zipcelx');
|
|
5302
|
+
}
|
|
5303
|
+
catch (error) {
|
|
5304
|
+
console.warn('Optional feature requires `zipcelx`. Please install it: npm install zipcelx', error);
|
|
5305
|
+
}
|
|
5306
|
+
}
|
|
5307
|
+
/**
|
|
5308
|
+
* Writes the given headers and rows into an excel file and triggers the download.
|
|
5309
|
+
*
|
|
5310
|
+
* @param filename Name of the exported file (without extension).
|
|
5311
|
+
* @param headers The header row of the exported sheet.
|
|
5312
|
+
* @param rows The data rows of the exported sheet.
|
|
5313
|
+
*/
|
|
5314
|
+
exportToExcel(filename, headers, rows) {
|
|
5315
|
+
const config = {
|
|
5316
|
+
filename,
|
|
5317
|
+
sheet: {
|
|
5318
|
+
data: [headers, ...rows],
|
|
5319
|
+
},
|
|
5320
|
+
};
|
|
5321
|
+
this.zipcelx.default(config);
|
|
5322
|
+
}
|
|
5323
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ExportExcelService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
5324
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ExportExcelService, providedIn: 'root' }); }
|
|
5325
|
+
}
|
|
5326
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ExportExcelService, decorators: [{
|
|
5327
|
+
type: Injectable,
|
|
5328
|
+
args: [{ providedIn: 'root' }]
|
|
5329
|
+
}], ctorParameters: () => [] });
|
|
5330
|
+
|
|
5331
|
+
/**
|
|
5332
|
+
* The available export types of the export buttons.
|
|
5333
|
+
*/
|
|
5334
|
+
var ExportTypeEnum;
|
|
5335
|
+
(function (ExportTypeEnum) {
|
|
5336
|
+
/** All entries, ignoring active filters. */
|
|
5337
|
+
ExportTypeEnum["ALL"] = "ALL";
|
|
5338
|
+
/** Only the entries that pass the active filters. */
|
|
5339
|
+
ExportTypeEnum["FILTERED"] = "FILTERED";
|
|
5340
|
+
/** Only the currently selected entries. */
|
|
5341
|
+
ExportTypeEnum["SELECTED"] = "SELECTED";
|
|
5342
|
+
})(ExportTypeEnum || (ExportTypeEnum = {}));
|
|
5343
|
+
|
|
5344
|
+
/*
|
|
5345
|
+
* Copyright (c) 2018-2026 Porsche Informatik. All Rights Reserved.
|
|
5346
|
+
* This software is released under MIT license.
|
|
5347
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
5348
|
+
*/
|
|
5349
|
+
|
|
5350
|
+
/*
|
|
5351
|
+
* Copyright (c) 2018-2026 Porsche Informatik. All Rights Reserved.
|
|
5352
|
+
* This software is released under MIT license.
|
|
5353
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
5354
|
+
*/
|
|
5355
|
+
|
|
5356
|
+
/*
|
|
5357
|
+
* Copyright (c) 2018-2026 Porsche Informatik. All Rights Reserved.
|
|
5358
|
+
* This software is released under MIT license.
|
|
5359
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
5360
|
+
*/
|
|
5361
|
+
/**
|
|
5362
|
+
* Export button for the `clr-treetable`.
|
|
5363
|
+
*
|
|
5364
|
+
* The button is placed as a sibling of the treetable and receives the treetable instance and its
|
|
5365
|
+
* `ElementRef`. Column headers are read from the rendered treetable, cell values are resolved via
|
|
5366
|
+
* the `clrTtField` property path of the corresponding `clr-tt-column`.
|
|
5367
|
+
*
|
|
5368
|
+
* `clrTtField` is the opt-in for the export: only columns that declare it are exported. A column
|
|
5369
|
+
* without `clrTtField` is omitted entirely, header and values alike. Hidden columns are excluded as
|
|
5370
|
+
* well. The type of the exported cells is taken from `clrTtColType` (`string` by default).
|
|
5371
|
+
*
|
|
5372
|
+
* The button offers the same export types as the datagrid export button:
|
|
5373
|
+
* - `ALL`: all rows, ignoring active filters. The active sort is applied.
|
|
5374
|
+
* - `FILTERED`: the rows that pass the active filters. Only offered while a filter is active.
|
|
5375
|
+
* - `SELECTED`: the currently selected rows. Only offered while at least one row is selected.
|
|
5376
|
+
* Selection is tracked on the displayed rows, so a selected row that is hidden by a filter is not
|
|
5377
|
+
* part of the export.
|
|
5378
|
+
*
|
|
5379
|
+
* @example
|
|
5380
|
+
* <clr-export-treetable-button [treetable]="tt" [treetableRef]="ttRef" />
|
|
5381
|
+
* <clr-treetable #tt>...</clr-treetable>
|
|
5382
|
+
*/
|
|
5383
|
+
class ExportTreetableButtonComponent {
|
|
5384
|
+
constructor() {
|
|
5385
|
+
this._exportService = inject(ExportExcelService);
|
|
5386
|
+
/** The treetable instance to export. */
|
|
5387
|
+
this.treetable = input(...(ngDevMode ? [undefined, { debugName: "treetable" }] : /* istanbul ignore next */ []));
|
|
5388
|
+
/** The `ElementRef` of the same treetable, used to read the rendered column titles. */
|
|
5389
|
+
this.treetableRef = input(...(ngDevMode ? [undefined, { debugName: "treetableRef" }] : /* istanbul ignore next */ []));
|
|
5390
|
+
/** Restricts and/or relabels the offered export types. */
|
|
5391
|
+
this.exportTypesToShow = input(...(ngDevMode ? [undefined, { debugName: "exportTypesToShow" }] : /* istanbul ignore next */ []));
|
|
5392
|
+
/** If true, no file is written and `backendExport` is emitted instead. */
|
|
5393
|
+
this.isBackendExport = input(false, ...(ngDevMode ? [{ debugName: "isBackendExport" }] : /* istanbul ignore next */ []));
|
|
5394
|
+
/** File name of the exported file (without extension). */
|
|
5395
|
+
this.exportTitlePrefix = input('export-treetable', ...(ngDevMode ? [{ debugName: "exportTitlePrefix" }] : /* istanbul ignore next */ []));
|
|
5396
|
+
/** Horizontal alignment of the button. */
|
|
5397
|
+
this.exportButtonPosition = input('right', ...(ngDevMode ? [{ debugName: "exportButtonPosition" }] : /* istanbul ignore next */ []));
|
|
5398
|
+
/** Custom or translated label of the button. */
|
|
5399
|
+
this.exportButtonText = input('EXPORT', ...(ngDevMode ? [{ debugName: "exportButtonText" }] : /* istanbul ignore next */ []));
|
|
5400
|
+
/** Emitted instead of writing a file when `isBackendExport` is true. */
|
|
5401
|
+
this.backendExport = output();
|
|
5402
|
+
this.exportTypes = [
|
|
5403
|
+
{ type: ExportTypeEnum.ALL, value: 'All entries' },
|
|
5404
|
+
{ type: ExportTypeEnum.FILTERED, value: 'Filtered entries' },
|
|
5405
|
+
{ type: ExportTypeEnum.SELECTED, value: 'Selected entries' },
|
|
5406
|
+
];
|
|
5407
|
+
/**
|
|
5408
|
+
* The export types that are currently possible. `FILTERED` is only possible while at least one
|
|
5409
|
+
* filter is active, `SELECTED` only if at least one row is selected.
|
|
5410
|
+
*/
|
|
5411
|
+
this.possibleExportTypes = computed(() => {
|
|
5412
|
+
const treetable = this.treetable();
|
|
5413
|
+
const types = [ExportTypeEnum.ALL];
|
|
5414
|
+
if (treetable?.hasActiveFilters()) {
|
|
5415
|
+
types.push(ExportTypeEnum.FILTERED);
|
|
5416
|
+
}
|
|
5417
|
+
if (treetable?.selectedItems()?.length > 0) {
|
|
5418
|
+
types.push(ExportTypeEnum.SELECTED);
|
|
5419
|
+
}
|
|
5420
|
+
return types;
|
|
5421
|
+
}, ...(ngDevMode ? [{ debugName: "possibleExportTypes" }] : /* istanbul ignore next */ []));
|
|
5422
|
+
/**
|
|
5423
|
+
* The export types shown in the dropdown, restricted by `exportTypesToShow` and by the current
|
|
5424
|
+
* state of the treetable.
|
|
5425
|
+
*/
|
|
5426
|
+
this.exportTypesFiltered = computed(() => {
|
|
5427
|
+
let exportTypesToShowVal = this.exportTypesToShow();
|
|
5428
|
+
if (!exportTypesToShowVal || exportTypesToShowVal.length === 0) {
|
|
5429
|
+
exportTypesToShowVal = this.exportTypes;
|
|
5430
|
+
}
|
|
5431
|
+
return exportTypesToShowVal
|
|
5432
|
+
.filter(showType => this.possibleExportTypes().some(type => type === showType.type))
|
|
5433
|
+
.map(showType => ({
|
|
5434
|
+
type: showType.type,
|
|
5435
|
+
value: showType.value ?? this.exportTypes.find(type => type.type === showType.type)?.value,
|
|
5436
|
+
}));
|
|
5437
|
+
}, ...(ngDevMode ? [{ debugName: "exportTypesFiltered" }] : /* istanbul ignore next */ []));
|
|
5438
|
+
}
|
|
5439
|
+
onExport(type) {
|
|
5440
|
+
if (this.isBackendExport()) {
|
|
5441
|
+
this.backendExport.emit(type);
|
|
5442
|
+
}
|
|
5443
|
+
else {
|
|
5444
|
+
this.exportExcel(type);
|
|
5445
|
+
}
|
|
5446
|
+
}
|
|
5447
|
+
exportExcel(type) {
|
|
5448
|
+
const treetable = this.treetable();
|
|
5449
|
+
if (!treetable || !this.treetableRef()) {
|
|
5450
|
+
return;
|
|
5451
|
+
}
|
|
5452
|
+
const columnTitles = this.getColumnTitles();
|
|
5453
|
+
// `clrTtField` is the opt-in for the export: columns without it are omitted entirely.
|
|
5454
|
+
const exportColumns = treetable.visibleColumnStates().filter(column => !!column.field);
|
|
5455
|
+
if (exportColumns.length === 0) {
|
|
5456
|
+
console.warn('No columns declared for export. Add [clrTtField] to a treetable column that should be exported.');
|
|
5457
|
+
return;
|
|
5458
|
+
}
|
|
5459
|
+
const headerRow = exportColumns.map(column => ({
|
|
5460
|
+
value: columnTitles.get(column.id) ?? '',
|
|
5461
|
+
type: 'string',
|
|
5462
|
+
}));
|
|
5463
|
+
const dataRows = this.getRowsToExport(type).map(item => exportColumns.map(column => this.toCell(this.getValueByPath(item, column.field), column.colType)));
|
|
5464
|
+
this._exportService.exportToExcel(this.exportTitlePrefix(), headerRow, dataRows);
|
|
5465
|
+
}
|
|
5466
|
+
getRowsToExport(type) {
|
|
5467
|
+
switch (type) {
|
|
5468
|
+
case ExportTypeEnum.ALL:
|
|
5469
|
+
return this.treetable()?.allItems() ?? [];
|
|
5470
|
+
case ExportTypeEnum.FILTERED:
|
|
5471
|
+
return this.treetable()?.displayedItems() ?? [];
|
|
5472
|
+
case ExportTypeEnum.SELECTED:
|
|
5473
|
+
return this.treetable()?.selectedItems() ?? [];
|
|
5474
|
+
default:
|
|
5475
|
+
return [];
|
|
5476
|
+
}
|
|
5477
|
+
}
|
|
5478
|
+
/**
|
|
5479
|
+
* Reads the rendered column titles from the DOM and maps them by column id. Hidden columns are
|
|
5480
|
+
* skipped, because they are not part of the export either.
|
|
5481
|
+
*/
|
|
5482
|
+
getColumnTitles() {
|
|
5483
|
+
const nativeEl = this.treetableRef()?.nativeElement;
|
|
5484
|
+
const columnEls = nativeEl?.querySelectorAll(`clr-tt-column:not(${HIDDEN_COLUMN_CSS_CLASS})`) ?? [];
|
|
5485
|
+
const titles = new Map();
|
|
5486
|
+
columnEls.forEach(columnEl => {
|
|
5487
|
+
const columnId = columnEl.getAttribute('data-column-id');
|
|
5488
|
+
if (!columnId) {
|
|
5489
|
+
return;
|
|
5490
|
+
}
|
|
5491
|
+
titles.set(columnId, columnEl.querySelector('.treetable-column-title')?.textContent?.trim() ?? '');
|
|
5492
|
+
});
|
|
5493
|
+
return titles;
|
|
5494
|
+
}
|
|
5495
|
+
/**
|
|
5496
|
+
* Resolves a (possibly nested) property path like `address.city` on the given item.
|
|
5497
|
+
*/
|
|
5498
|
+
getValueByPath(item, path) {
|
|
5499
|
+
if (!path) {
|
|
5500
|
+
return undefined;
|
|
5501
|
+
}
|
|
5502
|
+
return path.split('.').reduce((current, segment) => current?.[segment], item);
|
|
5503
|
+
}
|
|
5504
|
+
/**
|
|
5505
|
+
* Maps a resolved value to an export cell.
|
|
5506
|
+
*
|
|
5507
|
+
* The cell type is taken from the `clrTtColType` of the column (`string` by default). A `number`
|
|
5508
|
+
* column falls back to `string` for values that are not a finite number, because an empty numeric
|
|
5509
|
+
* cell would result in an invalid excel file.
|
|
5510
|
+
*/
|
|
5511
|
+
toCell(value, colType = 'string') {
|
|
5512
|
+
const stringValue = value == null ? '' : String(value);
|
|
5513
|
+
const isNumber = colType === 'number' && stringValue.trim() !== '' && Number.isFinite(Number(stringValue));
|
|
5514
|
+
return {
|
|
5515
|
+
value: stringValue,
|
|
5516
|
+
type: isNumber ? 'number' : 'string',
|
|
5517
|
+
};
|
|
5518
|
+
}
|
|
5519
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ExportTreetableButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5520
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: ExportTreetableButtonComponent, isStandalone: false, selector: "clr-export-treetable-button", inputs: { treetable: { classPropertyName: "treetable", publicName: "treetable", isSignal: true, isRequired: false, transformFunction: null }, treetableRef: { classPropertyName: "treetableRef", publicName: "treetableRef", isSignal: true, isRequired: false, transformFunction: null }, exportTypesToShow: { classPropertyName: "exportTypesToShow", publicName: "exportTypesToShow", isSignal: true, isRequired: false, transformFunction: null }, isBackendExport: { classPropertyName: "isBackendExport", publicName: "isBackendExport", isSignal: true, isRequired: false, transformFunction: null }, exportTitlePrefix: { classPropertyName: "exportTitlePrefix", publicName: "exportTitlePrefix", isSignal: true, isRequired: false, transformFunction: null }, exportButtonPosition: { classPropertyName: "exportButtonPosition", publicName: "exportButtonPosition", isSignal: true, isRequired: false, transformFunction: null }, exportButtonText: { classPropertyName: "exportButtonText", publicName: "exportButtonText", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { backendExport: "backendExport" }, ngImport: i0, template: "<div\n [class]=\"{\n 'export-btn-right': exportButtonPosition() === 'right',\n 'export-btn-left': exportButtonPosition() === 'left',\n }\"\n>\n <clr-dropdown>\n <button class=\"btn btn-sm btn-outline\" clrDropdownTrigger type=\"button\" data-testid=\"clr-tt-export-trigger\">\n {{ exportButtonText() }}\n <cds-icon shape=\"angle\" direction=\"down\" size=\"12\"></cds-icon>\n </button>\n <clr-dropdown-menu *clrIfOpen clrPosition=\"bottom-right\">\n @for (exportType of exportTypesFiltered(); track exportType.type) {\n <button\n (click)=\"onExport(exportType.type)\"\n clrDropdownItem\n [attr.data-testid]=\"'clr-tt-export-' + exportType.type\"\n >\n {{ exportType.value }}\n </button>\n }\n </clr-dropdown-menu>\n </clr-dropdown>\n</div>\n", styles: [".export-btn-right{display:flex;justify-content:flex-end}.export-btn-left{display:flex;justify-content:flex-start}\n"], dependencies: [{ kind: "component", type: i2.ClrIcon, selector: "clr-icon, cds-icon", inputs: ["shape", "size", "direction", "flip", "solid", "status", "inverse", "badge"] }, { kind: "directive", type: i2.CdsIconCustomTag, selector: "cds-icon" }, { kind: "component", type: i2$3.ClrDropdown, selector: "clr-dropdown", inputs: ["clrCloseMenuOnItemClick"] }, { kind: "component", type: i2$3.ClrDropdownMenu, selector: "clr-dropdown-menu", inputs: ["clrPosition"] }, { kind: "directive", type: i2$3.ClrDropdownTrigger, selector: "[clrDropdownTrigger],[clrDropdownToggle]" }, { kind: "directive", type: i2$3.ClrDropdownItem, selector: "[clrDropdownItem]", inputs: ["clrDisabled", "id"] }, { kind: "directive", type: i2$4.ClrIfOpen, selector: "[clrIfOpen]", inputs: ["clrIfOpen"], outputs: ["clrIfOpenChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
5521
|
+
}
|
|
5522
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ExportTreetableButtonComponent, decorators: [{
|
|
5523
|
+
type: Component,
|
|
5524
|
+
args: [{ selector: 'clr-export-treetable-button', standalone: false, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n [class]=\"{\n 'export-btn-right': exportButtonPosition() === 'right',\n 'export-btn-left': exportButtonPosition() === 'left',\n }\"\n>\n <clr-dropdown>\n <button class=\"btn btn-sm btn-outline\" clrDropdownTrigger type=\"button\" data-testid=\"clr-tt-export-trigger\">\n {{ exportButtonText() }}\n <cds-icon shape=\"angle\" direction=\"down\" size=\"12\"></cds-icon>\n </button>\n <clr-dropdown-menu *clrIfOpen clrPosition=\"bottom-right\">\n @for (exportType of exportTypesFiltered(); track exportType.type) {\n <button\n (click)=\"onExport(exportType.type)\"\n clrDropdownItem\n [attr.data-testid]=\"'clr-tt-export-' + exportType.type\"\n >\n {{ exportType.value }}\n </button>\n }\n </clr-dropdown-menu>\n </clr-dropdown>\n</div>\n", styles: [".export-btn-right{display:flex;justify-content:flex-end}.export-btn-left{display:flex;justify-content:flex-start}\n"] }]
|
|
5525
|
+
}], propDecorators: { treetable: [{ type: i0.Input, args: [{ isSignal: true, alias: "treetable", required: false }] }], treetableRef: [{ type: i0.Input, args: [{ isSignal: true, alias: "treetableRef", required: false }] }], exportTypesToShow: [{ type: i0.Input, args: [{ isSignal: true, alias: "exportTypesToShow", required: false }] }], isBackendExport: [{ type: i0.Input, args: [{ isSignal: true, alias: "isBackendExport", required: false }] }], exportTitlePrefix: [{ type: i0.Input, args: [{ isSignal: true, alias: "exportTitlePrefix", required: false }] }], exportButtonPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "exportButtonPosition", required: false }] }], exportButtonText: [{ type: i0.Input, args: [{ isSignal: true, alias: "exportButtonText", required: false }] }], backendExport: [{ type: i0.Output, args: ["backendExport"] }] } });
|
|
5214
5526
|
|
|
5215
5527
|
let id = 0;
|
|
5216
5528
|
class ClrTreetableColumnManagerMenuComponent {
|
|
@@ -5315,7 +5627,7 @@ class ClrTreetableColumnManagerMenuComponent {
|
|
|
5315
5627
|
</button>
|
|
5316
5628
|
</div>
|
|
5317
5629
|
</div>
|
|
5318
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ClrIcon, selector: "clr-icon, cds-icon", inputs: ["shape", "size", "direction", "flip", "solid", "status", "inverse", "badge"] }, { kind: "directive", type: i2.CdsIconCustomTag, selector: "cds-icon" }, { kind: "directive", type: i1$1.ClrControlLabel, selector: "label", inputs: ["id", "for"] }, { kind: "directive", type: i4.ClrCheckbox, selector: "[clrCheckbox],[clrToggle]" }, { kind: "component", type: i4.ClrCheckboxWrapper, selector: "clr-checkbox-wrapper,clr-toggle-wrapper" }, { kind: "directive", type: i2$
|
|
5630
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ClrIcon, selector: "clr-icon, cds-icon", inputs: ["shape", "size", "direction", "flip", "solid", "status", "inverse", "badge"] }, { kind: "directive", type: i2.CdsIconCustomTag, selector: "cds-icon" }, { kind: "directive", type: i1$1.ClrControlLabel, selector: "label", inputs: ["id", "for"] }, { kind: "directive", type: i4.ClrCheckbox, selector: "[clrCheckbox],[clrToggle]" }, { kind: "component", type: i4.ClrCheckboxWrapper, selector: "clr-checkbox-wrapper,clr-toggle-wrapper" }, { kind: "directive", type: i2$4.ClrPopoverOrigin, selector: "[clrPopoverOrigin]" }, { kind: "directive", type: i2$4.ClrPopoverCloseButton, selector: "[clrPopoverCloseButton]", outputs: ["clrPopoverOnCloseChange"] }, { kind: "directive", type: i2$4.ClrPopoverOpenCloseButton, selector: "[clrPopoverOpenCloseButton]", outputs: ["clrPopoverOpenCloseChange"] }, { kind: "directive", type: i2$4.ClrPopoverContent, selector: "[clrPopoverContent]", inputs: ["clrPopoverContent", "clrPopoverContentAt", "clrPopoverContentAvailablePositions", "clrPopoverContentType", "clrPopoverContentOutsideClickToClose", "clrPopoverContentScrollToClose", "clrPopoverContentOrigin"] }, { kind: "directive", type: i3.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1$2.CdkTrapFocusModule_CdkTrapFocus, selector: "[cdkTrapFocus]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
5319
5631
|
}
|
|
5320
5632
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ClrTreetableColumnManagerMenuComponent, decorators: [{
|
|
5321
5633
|
type: Component,
|
|
@@ -5616,7 +5928,7 @@ class ClrTreetableFilter {
|
|
|
5616
5928
|
|
|
5617
5929
|
<ng-content></ng-content>
|
|
5618
5930
|
</div>
|
|
5619
|
-
`, isInline: true, dependencies: [{ kind: "component", type: i2.ClrIcon, selector: "clr-icon, cds-icon", inputs: ["shape", "size", "direction", "flip", "solid", "status", "inverse", "badge"] }, { kind: "directive", type: i2.CdsIconCustomTag, selector: "cds-icon" }, { kind: "directive", type: i2$
|
|
5931
|
+
`, isInline: true, dependencies: [{ kind: "component", type: i2.ClrIcon, selector: "clr-icon, cds-icon", inputs: ["shape", "size", "direction", "flip", "solid", "status", "inverse", "badge"] }, { kind: "directive", type: i2.CdsIconCustomTag, selector: "cds-icon" }, { kind: "directive", type: i2$4.ClrPopoverOrigin, selector: "[clrPopoverOrigin]" }, { kind: "directive", type: i2$4.ClrPopoverCloseButton, selector: "[clrPopoverCloseButton]", outputs: ["clrPopoverOnCloseChange"] }, { kind: "directive", type: i2$4.ClrPopoverOpenCloseButton, selector: "[clrPopoverOpenCloseButton]", outputs: ["clrPopoverOpenCloseChange"] }, { kind: "directive", type: i2$4.ClrPopoverContent, selector: "[clrPopoverContent]", inputs: ["clrPopoverContent", "clrPopoverContentAt", "clrPopoverContentAvailablePositions", "clrPopoverContentType", "clrPopoverContentOutsideClickToClose", "clrPopoverContentScrollToClose", "clrPopoverContentOrigin"] }, { kind: "directive", type: i1$2.CdkTrapFocusModule_CdkTrapFocus, selector: "[cdkTrapFocus]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
5620
5932
|
}
|
|
5621
5933
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ClrTreetableFilter, decorators: [{
|
|
5622
5934
|
type: Component,
|
|
@@ -6156,7 +6468,7 @@ class ClrTreetableStringFilter {
|
|
|
6156
6468
|
/>
|
|
6157
6469
|
</clr-input-container>
|
|
6158
6470
|
</clr-tt-filter>
|
|
6159
|
-
`, isInline: true, styles: [".btn-trash{position:absolute;top:15px;right:40px;padding:0}\n"], dependencies: [{ kind: "component", type: i2.ClrIcon, selector: "clr-icon, cds-icon", inputs: ["shape", "size", "direction", "flip", "solid", "status", "inverse", "badge"] }, { kind: "directive", type: i2.CdsIconCustomTag, selector: "cds-icon" }, { kind: "directive", type: i1$1.ClrControlLabel, selector: "label", inputs: ["id", "for"] }, { kind: "directive", type: i3$
|
|
6471
|
+
`, isInline: true, styles: [".btn-trash{position:absolute;top:15px;right:40px;padding:0}\n"], dependencies: [{ kind: "component", type: i2.ClrIcon, selector: "clr-icon, cds-icon", inputs: ["shape", "size", "direction", "flip", "solid", "status", "inverse", "badge"] }, { kind: "directive", type: i2.CdsIconCustomTag, selector: "cds-icon" }, { kind: "directive", type: i1$1.ClrControlLabel, selector: "label", inputs: ["id", "for"] }, { kind: "directive", type: i3$1.ClrInput, selector: "[clrInput]" }, { kind: "component", type: i3$1.ClrInputContainer, selector: "clr-input-container" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ClrTreetableFilter, selector: "clr-tt-filter", inputs: ["clrTtFilter"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
6160
6472
|
}
|
|
6161
6473
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ClrTreetableStringFilter, decorators: [{
|
|
6162
6474
|
type: Component,
|
|
@@ -6209,6 +6521,7 @@ const CLR_TREETABLE_DIRECTIVES = [
|
|
|
6209
6521
|
TreetableItemsDirective,
|
|
6210
6522
|
ClrTreetableFilter,
|
|
6211
6523
|
ClrTreetableStringFilter,
|
|
6524
|
+
ExportTreetableButtonComponent,
|
|
6212
6525
|
];
|
|
6213
6526
|
class ClrTreetableModule {
|
|
6214
6527
|
constructor() {
|
|
@@ -6229,7 +6542,8 @@ class ClrTreetableModule {
|
|
|
6229
6542
|
TreetableCellRenderer,
|
|
6230
6543
|
TreetableItemsDirective,
|
|
6231
6544
|
ClrTreetableFilter,
|
|
6232
|
-
ClrTreetableStringFilter,
|
|
6545
|
+
ClrTreetableStringFilter,
|
|
6546
|
+
ExportTreetableButtonComponent, ClrTreetableRecursiveRows,
|
|
6233
6547
|
ClrTreetableRowCheckbox,
|
|
6234
6548
|
ClrTreetableColumnManagerMenuComponent,
|
|
6235
6549
|
ClrTreetableColumnSeparator], imports: [CommonModule, ClarityModule, ReactiveFormsModule, FormsModule, CdkTrapFocusModule], exports: [ClrTreetable,
|
|
@@ -6246,7 +6560,8 @@ class ClrTreetableModule {
|
|
|
6246
6560
|
TreetableCellRenderer,
|
|
6247
6561
|
TreetableItemsDirective,
|
|
6248
6562
|
ClrTreetableFilter,
|
|
6249
|
-
ClrTreetableStringFilter
|
|
6563
|
+
ClrTreetableStringFilter,
|
|
6564
|
+
ExportTreetableButtonComponent] }); }
|
|
6250
6565
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ClrTreetableModule, imports: [CommonModule, ClarityModule, ReactiveFormsModule, FormsModule, CdkTrapFocusModule] }); }
|
|
6251
6566
|
}
|
|
6252
6567
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ClrTreetableModule, decorators: [{
|
|
@@ -6654,7 +6969,7 @@ class ClrHistory {
|
|
|
6654
6969
|
this.historyService.setHistoryPinned(this.username, !this.pinActivated);
|
|
6655
6970
|
}
|
|
6656
6971
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ClrHistory, deps: [{ token: ClrHistoryService }, { token: HISTORY_PROVIDER, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6657
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: ClrHistory, isStandalone: false, selector: "clr-history", inputs: { username: ["clrUsername", "username"], tenantId: ["clrTenantId", "tenantId"], context: ["clrContext", "context"], pinActive: ["clrPinActive", "pinActive"], dropdownHeader: ["clrDropdownHeader", "dropdownHeader"], dropdownPin: ["clrDropdownPin", "dropdownPin"], dropdownUnpin: ["clrDropdownUnpin", "dropdownUnpin"], domain: ["clrDomain", "domain"], position: ["clrPosition", "position"] }, host: { classAttribute: "clr-history" }, ngImport: i0, template: "<clr-dropdown>\n <button\n type=\"button\"\n class=\"btn btn-icon btn-outline-primary history-button\"\n clrDropdownTrigger\n data-testid=\"history-trigger\"\n >\n <cds-icon shape=\"history\" size=\"16\"></cds-icon>\n <cds-icon shape=\"angle\" direction=\"down\" size=\"12\"></cds-icon>\n </button>\n <clr-dropdown-menu [clrPosition]=\"position\" *clrIfOpen data-testid=\"history-menu\">\n <label class=\"dropdown-header\" aria-hidden=\"true\" data-testid=\"history-header\">{{ dropdownHeader }}</label>\n @for (history of historyElements$ | async; track history) {\n <button\n type=\"button\"\n clrDropdownItem\n (click)=\"select(history)\"\n [attr.data-testid]=\"'history-option-' + (history.title)\"\n >\n {{ history.title }}\n </button>\n } @if (pinActive) {\n <div class=\"dropdown-divider\" role=\"separator\" aria-hidden=\"true\"></div>\n }\n <button clrDropdownItem (click)=\"togglePinHistory()\" data-testid=\"history-pin-toggle\">\n @if (pinActive && !pinActivated) {\n <span data-testid=\"history-pin-label\">{{ dropdownPin }}</span>\n } @if (pinActive && pinActivated) {\n <span data-testid=\"history-unpin-label\">{{ dropdownUnpin }}</span>\n }\n </button>\n </clr-dropdown-menu>\n</clr-dropdown>\n", dependencies: [{ kind: "component", type: i2.ClrIcon, selector: "clr-icon, cds-icon", inputs: ["shape", "size", "direction", "flip", "solid", "status", "inverse", "badge"] }, { kind: "directive", type: i2.CdsIconCustomTag, selector: "cds-icon" }, { kind: "directive", type: i1$1.ClrControlLabel, selector: "label", inputs: ["id", "for"] }, { kind: "component", type:
|
|
6972
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: ClrHistory, isStandalone: false, selector: "clr-history", inputs: { username: ["clrUsername", "username"], tenantId: ["clrTenantId", "tenantId"], context: ["clrContext", "context"], pinActive: ["clrPinActive", "pinActive"], dropdownHeader: ["clrDropdownHeader", "dropdownHeader"], dropdownPin: ["clrDropdownPin", "dropdownPin"], dropdownUnpin: ["clrDropdownUnpin", "dropdownUnpin"], domain: ["clrDomain", "domain"], position: ["clrPosition", "position"] }, host: { classAttribute: "clr-history" }, ngImport: i0, template: "<clr-dropdown>\n <button\n type=\"button\"\n class=\"btn btn-icon btn-outline-primary history-button\"\n clrDropdownTrigger\n data-testid=\"history-trigger\"\n >\n <cds-icon shape=\"history\" size=\"16\"></cds-icon>\n <cds-icon shape=\"angle\" direction=\"down\" size=\"12\"></cds-icon>\n </button>\n <clr-dropdown-menu [clrPosition]=\"position\" *clrIfOpen data-testid=\"history-menu\">\n <label class=\"dropdown-header\" aria-hidden=\"true\" data-testid=\"history-header\">{{ dropdownHeader }}</label>\n @for (history of historyElements$ | async; track history) {\n <button\n type=\"button\"\n clrDropdownItem\n (click)=\"select(history)\"\n [attr.data-testid]=\"'history-option-' + (history.title)\"\n >\n {{ history.title }}\n </button>\n } @if (pinActive) {\n <div class=\"dropdown-divider\" role=\"separator\" aria-hidden=\"true\"></div>\n }\n <button clrDropdownItem (click)=\"togglePinHistory()\" data-testid=\"history-pin-toggle\">\n @if (pinActive && !pinActivated) {\n <span data-testid=\"history-pin-label\">{{ dropdownPin }}</span>\n } @if (pinActive && pinActivated) {\n <span data-testid=\"history-unpin-label\">{{ dropdownUnpin }}</span>\n }\n </button>\n </clr-dropdown-menu>\n</clr-dropdown>\n", dependencies: [{ kind: "component", type: i2.ClrIcon, selector: "clr-icon, cds-icon", inputs: ["shape", "size", "direction", "flip", "solid", "status", "inverse", "badge"] }, { kind: "directive", type: i2.CdsIconCustomTag, selector: "cds-icon" }, { kind: "directive", type: i1$1.ClrControlLabel, selector: "label", inputs: ["id", "for"] }, { kind: "component", type: i2$3.ClrDropdown, selector: "clr-dropdown", inputs: ["clrCloseMenuOnItemClick"] }, { kind: "component", type: i2$3.ClrDropdownMenu, selector: "clr-dropdown-menu", inputs: ["clrPosition"] }, { kind: "directive", type: i2$3.ClrDropdownTrigger, selector: "[clrDropdownTrigger],[clrDropdownToggle]" }, { kind: "directive", type: i2$3.ClrDropdownItem, selector: "[clrDropdownItem]", inputs: ["clrDisabled", "id"] }, { kind: "directive", type: i2$4.ClrIfOpen, selector: "[clrIfOpen]", inputs: ["clrIfOpen"], outputs: ["clrIfOpenChange"] }, { kind: "directive", type: ClrDropdownOverflowDirective, selector: "clr-dropdown-menu", inputs: ["clrDropdownMenuMaxHeight", "clrDropdownMenuItemMinHeight", "clrMarginBottom"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] }); }
|
|
6658
6973
|
}
|
|
6659
6974
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ClrHistory, decorators: [{
|
|
6660
6975
|
type: Component,
|
|
@@ -12642,7 +12957,7 @@ class LocationBarSearchComponent {
|
|
|
12642
12957
|
return `Type ${this.searchRequest?.minCharacters ?? this.MIN_CHARACTERS_DEFAULT}+ characters to search.`;
|
|
12643
12958
|
}
|
|
12644
12959
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: LocationBarSearchComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12645
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: LocationBarSearchComponent, isStandalone: false, selector: "clr-location-bar-search", inputs: { searchRequest: ["clrSearchRequest", "searchRequest"] }, outputs: { searchPerformed: "searchPerformed" }, viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"clr-col-md-12 search-wrapper\">\n <form clrForm>\n <clr-input-container class=\"input-container\">\n <label hidden></label>\n <input\n #searchInput\n class=\"clr-col-md-12\"\n clrInput\n clrSearch\n [placeholder]=\"searchRequest?.placeholder ?? ''\"\n type=\"text\"\n name=\"search\"\n (keydown.Space)=\"preventDropdownActions($event)\"\n [formControl]=\"searchControl\"\n data-testid=\"location-bar-search-input\"\n />\n @if (displayWarning) {\n <clr-control-helper class=\"min-text-warning\" data-testid=\"location-bar-search-min-warning\">{{\n searchRequest?.minCharacterText ?? getMinCharactersText()\n }}</clr-control-helper>\n }\n </clr-input-container>\n </form>\n</div>\n", styles: ["input::placeholder{font-size:.55rem}.search-wrapper{margin-bottom:.3rem}.input-container{margin-top:0}.min-text-warning{color:var(--cds-global-color-construction-800)}\n"], dependencies: [{ kind: "directive", type: i1$1.ClrControlLabel, selector: "label", inputs: ["id", "for"] }, { kind: "component", type: i1$1.ClrControlHelper, selector: "clr-control-helper" }, { kind: "directive", type: i1$1.ClrForm, selector: "[clrForm]", inputs: ["clrLabelSize"] }, { kind: "directive", type: i3$
|
|
12960
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: LocationBarSearchComponent, isStandalone: false, selector: "clr-location-bar-search", inputs: { searchRequest: ["clrSearchRequest", "searchRequest"] }, outputs: { searchPerformed: "searchPerformed" }, viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"clr-col-md-12 search-wrapper\">\n <form clrForm>\n <clr-input-container class=\"input-container\">\n <label hidden></label>\n <input\n #searchInput\n class=\"clr-col-md-12\"\n clrInput\n clrSearch\n [placeholder]=\"searchRequest?.placeholder ?? ''\"\n type=\"text\"\n name=\"search\"\n (keydown.Space)=\"preventDropdownActions($event)\"\n [formControl]=\"searchControl\"\n data-testid=\"location-bar-search-input\"\n />\n @if (displayWarning) {\n <clr-control-helper class=\"min-text-warning\" data-testid=\"location-bar-search-min-warning\">{{\n searchRequest?.minCharacterText ?? getMinCharactersText()\n }}</clr-control-helper>\n }\n </clr-input-container>\n </form>\n</div>\n", styles: ["input::placeholder{font-size:.55rem}.search-wrapper{margin-bottom:.3rem}.input-container{margin-top:0}.min-text-warning{color:var(--cds-global-color-construction-800)}\n"], dependencies: [{ kind: "directive", type: i1$1.ClrControlLabel, selector: "label", inputs: ["id", "for"] }, { kind: "component", type: i1$1.ClrControlHelper, selector: "clr-control-helper" }, { kind: "directive", type: i1$1.ClrForm, selector: "[clrForm]", inputs: ["clrLabelSize"] }, { kind: "directive", type: i3$1.ClrInput, selector: "[clrInput]" }, { kind: "component", type: i3$1.ClrInputContainer, selector: "clr-input-container" }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]):not([formArray]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: ClrAutocompleteOff, selector: "input:not([autocomplete])" }, { kind: "directive", type: ClrAddonsLabel, selector: "label" }, { kind: "directive", type: ClrSearchField, selector: "[clrSearch]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
12646
12961
|
}
|
|
12647
12962
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: LocationBarSearchComponent, decorators: [{
|
|
12648
12963
|
type: Component,
|
|
@@ -12768,7 +13083,7 @@ class LocationBarNodeComponent {
|
|
|
12768
13083
|
this.searchItemChanged.emit(searchedItem);
|
|
12769
13084
|
}
|
|
12770
13085
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: LocationBarNodeComponent, deps: [{ token: CONTENT_PROVIDER, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12771
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: LocationBarNodeComponent, isStandalone: false, selector: "clr-location-bar-node", inputs: { parentNode: "parentNode", searchResultItems: ["clrSearchResultItems", "searchResultItems"], searchRequest: ["clrSearchRequest", "searchRequest"] }, outputs: { selectionChanged: "selectionChanged", searchItemChanged: "searchItemChanged" }, host: { properties: { "class.location-bar-node": "true" } }, viewQueries: [{ propertyName: "locationBarSearch", first: true, predicate: ["locationBarSearch"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (parentNode) {\n @if (parentNode.getChildren()?.length > 0) {\n <ng-content></ng-content>\n }\n @if ((selectableChilds.length > 0 && !parentNode.getSelectedChild()) || selectableChilds.length > 1) {\n <clr-dropdown data-testid=\"location-bar-dropdown\">\n <button\n class=\"btn btn-link btn-sm\"\n (blur)=\"focus = false\"\n (focus)=\"focus = true\"\n (click)=\"resetSearch()\"\n clrDropdownTrigger\n data-testid=\"location-bar-dropdown-trigger\"\n >\n @if (parentNode.getSelectedChild(); as node) {\n <span\n (click)=\"resetSearch()\"\n class=\"text-truncate\"\n [class.locationbar-last-level]=\"!parentNode.getSelectedChild().getSelectedChild()\"\n title=\"{{ node.label }}\"\n [attr.data-testid]=\"'location-bar-selected-node-' + node.label\"\n >\n {{ node.label }}\n </span>\n <cds-icon shape=\"angle\" direction=\"down\" size=\"xs\" class=\"caret-icon\"></cds-icon>\n } @else {\n <cds-icon\n class=\"locationbar-unselected\"\n size=\"18\"\n [solid]=\"focus\"\n shape=\"tree-view\"\n data-testid=\"location-bar-unselected-icon\"\n ></cds-icon\n > ...\n }\n </button>\n <clr-dropdown-menu\n class=\"locationbar-clr-dropdown-menu\"\n [clrPosition]=\"'bottom-left'\"\n [clrDropdownMenuItemMinHeight]=\"'24px'\"\n *clrIfOpen\n >\n @if (searchRequest) {\n <clr-location-bar-search\n #locationBarSearch\n [clrSearchRequest]=\"searchRequest\"\n (searchPerformed)=\"onSearch($event)\"\n ></clr-location-bar-search>\n }\n @if (displaySearchResult()) {\n @if (searchResultItems.length !== 0) {\n @for (searchResultItem of searchResultItems; track searchResultItem; let index = $index) {\n <button\n type=\"button\"\n clrDropdownItem\n class=\"text-truncate\"\n (click)=\"onSearchItemChanged(searchResultItem)\"\n [attr.data-testid]=\"'location-bar-search-result-' + index\"\n >\n <ng-container\n *ngTemplateOutlet=\"searchRequest?.searchResultItemRef; context: { $implicit: searchResultItem }\"\n ></ng-container>\n </button>\n }\n } @else {\n <span class=\"locationbar-no-result-text\" data-testid=\"location-bar-no-results-text\">\n {{ searchRequest?.noResultsText ?? 'No search result found.' }}\n </span>\n }\n } @else {\n @for (item of selectableChilds; track item) {\n <button\n type=\"button\"\n clrDropdownItem\n class=\"text-truncate\"\n [class.locationbar-selected-child]=\"item.id === parentNode.getSelectedChild()?.id\"\n (click)=\"selectNode(item)\"\n title=\"{{ item.label }}\"\n [attr.data-testid]=\"'location-bar-child-' + item.label\"\n >\n {{ item.label }}\n </button>\n }\n }\n </clr-dropdown-menu>\n </clr-dropdown>\n } @else {\n @if (parentNode.getSelectedChild()) {\n @if (parentNode.getSelectedChild().selectable) {\n <button\n class=\"btn btn-link btn-sm locationbar-btn\"\n (click)=\"selectNode(parentNode.getSelectedChild())\"\n [class.locationbar-last-level]=\"!parentNode.getSelectedChild().getSelectedChild()\"\n title=\"{{ parentNode.getSelectedChild().label }}\"\n [attr.data-testid]=\"'location-bar-selected-button-' + parentNode.getSelectedChild().label\"\n >\n {{ parentNode.getSelectedChild().label }}\n </button>\n } @else {\n <span\n class=\"locationbar-unselectable-node text-truncate\"\n [class.locationbar-last-level]=\"!parentNode.getSelectedChild().getSelectedChild()\"\n title=\"{{ parentNode.getSelectedChild().label }}\"\n [attr.data-testid]=\"'location-bar-unselectable-node-' + parentNode.getSelectedChild().label\"\n >\n {{ parentNode.getSelectedChild().label }}\n </span>\n }\n }\n }\n @if (parentNode.getSelectedChild() && parentNode.getChildren().length > 0) {\n <clr-location-bar-node\n [parentNode]=\"parentNode.getSelectedChild()\"\n [clrSearchRequest]=\"searchRequest\"\n [clrSearchResultItems]=\"searchResultItems\"\n (selectionChanged)=\"onSelectionChanged($event)\"\n (searchItemChanged)=\"onSearchItemChanged(null)\"\n >\n <span data-testid=\"location-bar-separator\">/</span>\n </clr-location-bar-node>\n }\n}\n", dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ClrIcon, selector: "clr-icon, cds-icon", inputs: ["shape", "size", "direction", "flip", "solid", "status", "inverse", "badge"] }, { kind: "component", type:
|
|
13086
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: LocationBarNodeComponent, isStandalone: false, selector: "clr-location-bar-node", inputs: { parentNode: "parentNode", searchResultItems: ["clrSearchResultItems", "searchResultItems"], searchRequest: ["clrSearchRequest", "searchRequest"] }, outputs: { selectionChanged: "selectionChanged", searchItemChanged: "searchItemChanged" }, host: { properties: { "class.location-bar-node": "true" } }, viewQueries: [{ propertyName: "locationBarSearch", first: true, predicate: ["locationBarSearch"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (parentNode) {\n @if (parentNode.getChildren()?.length > 0) {\n <ng-content></ng-content>\n }\n @if ((selectableChilds.length > 0 && !parentNode.getSelectedChild()) || selectableChilds.length > 1) {\n <clr-dropdown data-testid=\"location-bar-dropdown\">\n <button\n class=\"btn btn-link btn-sm\"\n (blur)=\"focus = false\"\n (focus)=\"focus = true\"\n (click)=\"resetSearch()\"\n clrDropdownTrigger\n data-testid=\"location-bar-dropdown-trigger\"\n >\n @if (parentNode.getSelectedChild(); as node) {\n <span\n (click)=\"resetSearch()\"\n class=\"text-truncate\"\n [class.locationbar-last-level]=\"!parentNode.getSelectedChild().getSelectedChild()\"\n title=\"{{ node.label }}\"\n [attr.data-testid]=\"'location-bar-selected-node-' + node.label\"\n >\n {{ node.label }}\n </span>\n <cds-icon shape=\"angle\" direction=\"down\" size=\"xs\" class=\"caret-icon\"></cds-icon>\n } @else {\n <cds-icon\n class=\"locationbar-unselected\"\n size=\"18\"\n [solid]=\"focus\"\n shape=\"tree-view\"\n data-testid=\"location-bar-unselected-icon\"\n ></cds-icon\n > ...\n }\n </button>\n <clr-dropdown-menu\n class=\"locationbar-clr-dropdown-menu\"\n [clrPosition]=\"'bottom-left'\"\n [clrDropdownMenuItemMinHeight]=\"'24px'\"\n *clrIfOpen\n >\n @if (searchRequest) {\n <clr-location-bar-search\n #locationBarSearch\n [clrSearchRequest]=\"searchRequest\"\n (searchPerformed)=\"onSearch($event)\"\n ></clr-location-bar-search>\n }\n @if (displaySearchResult()) {\n @if (searchResultItems.length !== 0) {\n @for (searchResultItem of searchResultItems; track searchResultItem; let index = $index) {\n <button\n type=\"button\"\n clrDropdownItem\n class=\"text-truncate\"\n (click)=\"onSearchItemChanged(searchResultItem)\"\n [attr.data-testid]=\"'location-bar-search-result-' + index\"\n >\n <ng-container\n *ngTemplateOutlet=\"searchRequest?.searchResultItemRef; context: { $implicit: searchResultItem }\"\n ></ng-container>\n </button>\n }\n } @else {\n <span class=\"locationbar-no-result-text\" data-testid=\"location-bar-no-results-text\">\n {{ searchRequest?.noResultsText ?? 'No search result found.' }}\n </span>\n }\n } @else {\n @for (item of selectableChilds; track item) {\n <button\n type=\"button\"\n clrDropdownItem\n class=\"text-truncate\"\n [class.locationbar-selected-child]=\"item.id === parentNode.getSelectedChild()?.id\"\n (click)=\"selectNode(item)\"\n title=\"{{ item.label }}\"\n [attr.data-testid]=\"'location-bar-child-' + item.label\"\n >\n {{ item.label }}\n </button>\n }\n }\n </clr-dropdown-menu>\n </clr-dropdown>\n } @else {\n @if (parentNode.getSelectedChild()) {\n @if (parentNode.getSelectedChild().selectable) {\n <button\n class=\"btn btn-link btn-sm locationbar-btn\"\n (click)=\"selectNode(parentNode.getSelectedChild())\"\n [class.locationbar-last-level]=\"!parentNode.getSelectedChild().getSelectedChild()\"\n title=\"{{ parentNode.getSelectedChild().label }}\"\n [attr.data-testid]=\"'location-bar-selected-button-' + parentNode.getSelectedChild().label\"\n >\n {{ parentNode.getSelectedChild().label }}\n </button>\n } @else {\n <span\n class=\"locationbar-unselectable-node text-truncate\"\n [class.locationbar-last-level]=\"!parentNode.getSelectedChild().getSelectedChild()\"\n title=\"{{ parentNode.getSelectedChild().label }}\"\n [attr.data-testid]=\"'location-bar-unselectable-node-' + parentNode.getSelectedChild().label\"\n >\n {{ parentNode.getSelectedChild().label }}\n </span>\n }\n }\n }\n @if (parentNode.getSelectedChild() && parentNode.getChildren().length > 0) {\n <clr-location-bar-node\n [parentNode]=\"parentNode.getSelectedChild()\"\n [clrSearchRequest]=\"searchRequest\"\n [clrSearchResultItems]=\"searchResultItems\"\n (selectionChanged)=\"onSelectionChanged($event)\"\n (searchItemChanged)=\"onSearchItemChanged(null)\"\n >\n <span data-testid=\"location-bar-separator\">/</span>\n </clr-location-bar-node>\n }\n}\n", dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ClrIcon, selector: "clr-icon, cds-icon", inputs: ["shape", "size", "direction", "flip", "solid", "status", "inverse", "badge"] }, { kind: "component", type: i2$3.ClrDropdown, selector: "clr-dropdown", inputs: ["clrCloseMenuOnItemClick"] }, { kind: "component", type: i2$3.ClrDropdownMenu, selector: "clr-dropdown-menu", inputs: ["clrPosition"] }, { kind: "directive", type: i2$3.ClrDropdownTrigger, selector: "[clrDropdownTrigger],[clrDropdownToggle]" }, { kind: "directive", type: i2$3.ClrDropdownItem, selector: "[clrDropdownItem]", inputs: ["clrDisabled", "id"] }, { kind: "directive", type: i2$4.ClrIfOpen, selector: "[clrIfOpen]", inputs: ["clrIfOpen"], outputs: ["clrIfOpenChange"] }, { kind: "directive", type: ClrDropdownOverflowDirective, selector: "clr-dropdown-menu", inputs: ["clrDropdownMenuMaxHeight", "clrDropdownMenuItemMinHeight", "clrMarginBottom"] }, { kind: "directive", type: i2.CdsIconCustomTag, selector: "cds-icon" }, { kind: "component", type: LocationBarNodeComponent, selector: "clr-location-bar-node", inputs: ["parentNode", "clrSearchResultItems", "clrSearchRequest"], outputs: ["selectionChanged", "searchItemChanged"] }, { kind: "component", type: LocationBarSearchComponent, selector: "clr-location-bar-search", inputs: ["clrSearchRequest"], outputs: ["searchPerformed"] }] }); }
|
|
12772
13087
|
}
|
|
12773
13088
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: LocationBarNodeComponent, decorators: [{
|
|
12774
13089
|
type: Component,
|
|
@@ -15046,7 +15361,7 @@ class ClrTimepickerComponent {
|
|
|
15046
15361
|
this.inputElm.nativeElement.focus();
|
|
15047
15362
|
}
|
|
15048
15363
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ClrTimepickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
15049
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: ClrTimepickerComponent, isStandalone: false, selector: "clr-timepicker", inputs: { value: "value", activateSeconds: "activateSeconds" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "inputElm", first: true, predicate: ["inputElm"], descendants: true }], ngImport: i0, template: "<clr-input-container class=\"clr-input-time\">\n <label class=\"clr-control-label\"> </label>\n <input\n clrInput\n #inputElm\n [(ngModel)]=\"this.time\"\n type=\"time\"\n step=\"{{ activateSeconds ? 1 : 60 }}\"\n data-testid=\"timepicker-input\"\n />\n</clr-input-container>\n", styles: [".clr-input-time{margin-top:0}\n"], dependencies: [{ kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1$1.ClrControlLabel, selector: "label", inputs: ["id", "for"] }, { kind: "directive", type: i3$
|
|
15364
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: ClrTimepickerComponent, isStandalone: false, selector: "clr-timepicker", inputs: { value: "value", activateSeconds: "activateSeconds" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "inputElm", first: true, predicate: ["inputElm"], descendants: true }], ngImport: i0, template: "<clr-input-container class=\"clr-input-time\">\n <label class=\"clr-control-label\"> </label>\n <input\n clrInput\n #inputElm\n [(ngModel)]=\"this.time\"\n type=\"time\"\n step=\"{{ activateSeconds ? 1 : 60 }}\"\n data-testid=\"timepicker-input\"\n />\n</clr-input-container>\n", styles: [".clr-input-time{margin-top:0}\n"], dependencies: [{ kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1$1.ClrControlLabel, selector: "label", inputs: ["id", "for"] }, { kind: "directive", type: i3$1.ClrInput, selector: "[clrInput]" }, { kind: "component", type: i3$1.ClrInputContainer, selector: "clr-input-container" }] }); }
|
|
15050
15365
|
}
|
|
15051
15366
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ClrTimepickerComponent, decorators: [{
|
|
15052
15367
|
type: Component,
|
|
@@ -15284,7 +15599,7 @@ class ClrDaterangepickerContainerComponent extends ClrAbstractContainer {
|
|
|
15284
15599
|
});
|
|
15285
15600
|
}
|
|
15286
15601
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ClrDaterangepickerContainerComponent, deps: [{ token: i1$2.ClrPopoverService }, { token: i1$2.ClrCommonStringsService }, { token: i1$2.ClrLayout, optional: true }, { token: DaterangeControlStateService }, { token: DaterangeService }, { token: DaterangeParsingService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
15287
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: ClrDaterangepickerContainerComponent, isStandalone: false, selector: "clr-daterangepicker-container", inputs: { presets: "presets", presetsDateTime: "presetsDateTime", timeSelection: "timeSelection", activateSeconds: "activateSeconds", popoverPosition: ["clrPosition", "popoverPosition"], labelFrom: "labelFrom", labelTo: "labelTo" }, host: { properties: { "class": "this.classes" } }, providers: [ClrPopoverService, DaterangeControlStateService, DaterangeService, ControlIdService], queries: [{ propertyName: "daterangepickerDirective", first: true, predicate: ClrDaterangepickerDirective, descendants: true }], viewQueries: [{ propertyName: "datepickerComponents", predicate: ClrDatepickerComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"label\"></ng-content>\n@if (!this.labelComponent && this.addLayoutGrid) {\n <label></label>\n}\n<div\n [class.clr-col-12]=\"this.addLayoutGrid\"\n [class.clr-col-md-10]=\"this.addLayoutGrid\"\n [class.clr-error]=\"this.isInvalid\"\n class=\"clr-control-container\"\n>\n <div class=\"clr-input-wrapper\">\n <div\n [class.clr-focus]=\"this.focus\"\n class=\"custom-input-group clr-input-group\"\n [ngClass]=\"_timeSelection ? 'custom-input-group-time' : 'custom-input-group-date'\"\n >\n <ng-content select=\"[clrDaterangepicker]\"></ng-content>\n <button\n [attr.aria-label]=\"this.friendlyDaterange\"\n [disabled]=\"this.disabled\"\n [title]=\"this.friendlyDaterange\"\n class=\"clr-input-group-icon-action\"\n clrPopoverOpenCloseButton\n clrPopoverOrigin\n type=\"button\"\n data-testid=\"daterangepicker-toggle-button\"\n >\n <cds-icon shape=\"calendar\" status=\"info\"></cds-icon>\n </button>\n </div>\n @if (this.isInvalid) {\n <cds-icon aria-hidden=\"true\" class=\"clr-validate-icon\" shape=\"exclamation-circle\" status=\"danger\"></cds-icon>\n }\n @if (!this.isInvalid) {\n <cds-icon aria-hidden=\"true\" class=\"clr-validate-icon\" shape=\"check-circle\" status=\"success\"></cds-icon>\n }\n </div>\n @if (this.showHelper) {\n <ng-content select=\"clr-control-helper\"></ng-content>\n }\n @if (this.showInvalid) {\n <ng-content select=\"clr-control-error\"></ng-content>\n }\n @if (this.showValid) {\n <ng-content select=\"clr-control-success\"></ng-content>\n }\n\n <div\n *clrPopoverContent=\"this.open; at: this.popoverPosition; outsideClickToClose: true; scrollToClose: true\"\n class=\"clr-daterangepicker-container-popup datepicker\"\n data-testid=\"daterangepicker-popup\"\n >\n <button\n class=\"btn btn-sm btn-link close clr-smart-close-button btn-trash\"\n type=\"button\"\n (click)=\"daterangeService.updateSelectedDaterange(null)\"\n data-testid=\"daterangepicker-clear-button\"\n >\n <cds-icon shape=\"trash\"></cds-icon>\n </button>\n <button\n [attr.aria-label]=\"this.commonStrings.close\"\n class=\"btn btn-sm btn-link close\"\n clrPopoverCloseButton\n type=\"button\"\n data-testid=\"daterangepicker-close-button\"\n >\n <cds-icon [attr.title]=\"this.commonStrings.close\" aria-hidden=\"true\" shape=\"window-close\"></cds-icon>\n <span class=\"clr-sr-only\">{{ this.commonStrings.close }}</span>\n </button>\n <div class=\"clr-daterangepicker-container-popup-content\">\n <form [clrLayout]=\"'vertical'\" clrForm>\n <div class=\"datetime-container\">\n <clr-datepicker\n (valueChange)=\"this.onDateFromChange($event)\"\n [label]=\"this.labelFrom\"\n [maxDate]=\"this.maxDate\"\n [minDate]=\"this.minDate\"\n [value]=\"this.dateFrom\"\n class=\"clr-datepicker\"\n data-testid=\"daterangepicker-date-from\"\n >\n </clr-datepicker>\n @if (_timeSelection) {\n <clr-timepicker\n class=\"timepicker\"\n (valueChange)=\"this.onTimeFromChange($event)\"\n [value]=\"this.timeFrom\"\n [activateSeconds]=\"_activateSeconds\"\n data-testid=\"daterangepicker-time-from\"\n >\n </clr-timepicker>\n }\n </div>\n <div class=\"datetime-container datetime-container-to\">\n <clr-datepicker\n (valueChange)=\"this.onDateToChange($event)\"\n [label]=\"this.labelTo\"\n [maxDate]=\"this.maxDate\"\n [minDate]=\"this.minDate\"\n [value]=\"this.dateTo\"\n class=\"clr-datepicker\"\n data-testid=\"daterangepicker-date-to\"\n >\n </clr-datepicker>\n @if (_timeSelection) {\n <clr-timepicker\n class=\"timepicker\"\n (valueChange)=\"this.onTimeToChange($event)\"\n [value]=\"this.timeTo\"\n [activateSeconds]=\"_activateSeconds\"\n data-testid=\"daterangepicker-time-to\"\n >\n </clr-timepicker>\n }\n </div>\n </form>\n @if (this.presets?.length > 0) {\n <div class=\"clr-daterangepicker-container-popup-content-presets\">\n @for (preset of this.presets; track preset) {\n <button\n (click)=\"this.applyPreset(preset)\"\n class=\"btn btn-outline btn-sm btn-block\"\n type=\"button\"\n [attr.data-testid]=\"'daterangepicker-preset-' + preset.text\"\n >\n {{ preset.text }}\n </button>\n }\n </div>\n }\n @if (this.presetsDateTime?.length > 0) {\n <div class=\"clr-daterangepicker-container-popup-content-presets\">\n @for (preset of this.presetsDateTime; track preset) {\n <button\n (click)=\"this.applyPresetTime(preset)\"\n class=\"btn btn-outline btn-sm btn-block\"\n type=\"button\"\n [attr.data-testid]=\"'daterangepicker-time-preset-' + preset.text\"\n >\n {{ preset.text }}\n </button>\n }\n </div>\n }\n </div>\n </div>\n</div>\n", styles: [".clr-input-wrapper>.clr-input-group{max-width:fit-content;padding-right:1.5rem}.clr-input-wrapper>.clr-input-group ::ng-deep>.clr-input{width:100%;padding:0 .3rem}.clr-daterangepicker-container-popup.datepicker{padding:0;width:auto;height:auto;display:block}.clr-daterangepicker-container-popup.datepicker .clr-smart-close-button{min-width:1.2rem;padding:0;position:absolute;right:0;margin:5px}.clr-daterangepicker-container-popup.datepicker .btn-trash{padding-right:25px;margin:5px}.clr-daterangepicker-container-popup.datepicker .clr-daterangepicker-container-popup-content{padding:1rem;display:flex;flex-direction:row}.clr-daterangepicker-container-popup.datepicker .clr-daterangepicker-container-popup-content .clr-form ::ng-deep clr-datepicker:first-of-type ::ng-deep clr-date-container{margin-top:0}.clr-daterangepicker-container-popup.datepicker .clr-daterangepicker-container-popup-content .clr-daterangepicker-container-popup-content-presets{margin-left:.6rem;padding:.3rem}.clr-daterangepicker-container-popup.datepicker .clr-daterangepicker-container-popup-content .clr-daterangepicker-container-popup-content-presets .btn{margin-right:0}.datetime-container{display:flex;flex-direction:row;align-items:flex-start}.datetime-container-to{padding-top:1rem}.timepicker{padding-left:1rem}.timepicker clr-input-container{margin-top:.8rem}.custom-input-group{padding-right:0!important}.custom-input-group .clr-input-group-icon-action{margin-left:.5rem}.custom-input-group input{min-width:10rem!important;width:10rem!important}.custom-input-group-time{min-width:17rem!important}.custom-input-group-date{min-width:12rem!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]):not([formArray]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i1$2.ClrIcon, selector: "clr-icon, cds-icon", inputs: ["shape", "size", "direction", "flip", "solid", "status", "inverse", "badge"] }, { kind: "directive", type: i2.CdsIconCustomTag, selector: "cds-icon" }, { kind: "directive", type: i1$1.ClrControlLabel, selector: "label", inputs: ["id", "for"] }, { kind: "directive", type: i1$1.ClrForm, selector: "[clrForm]", inputs: ["clrLabelSize"] }, { kind: "directive", type: i1$1.ClrLayout, selector: "[clrForm][clrLayout]", inputs: ["clrLayout"] }, { kind: "directive", type: i2$3.ClrPopoverOrigin, selector: "[clrPopoverOrigin]" }, { kind: "directive", type: i2$3.ClrPopoverCloseButton, selector: "[clrPopoverCloseButton]", outputs: ["clrPopoverOnCloseChange"] }, { kind: "directive", type: i2$3.ClrPopoverOpenCloseButton, selector: "[clrPopoverOpenCloseButton]", outputs: ["clrPopoverOpenCloseChange"] }, { kind: "directive", type: i2$3.ClrPopoverContent, selector: "[clrPopoverContent]", inputs: ["clrPopoverContent", "clrPopoverContentAt", "clrPopoverContentAvailablePositions", "clrPopoverContentType", "clrPopoverContentOutsideClickToClose", "clrPopoverContentScrollToClose", "clrPopoverContentOrigin"] }, { kind: "component", type: ClrDatepickerComponent, selector: "clr-datepicker", inputs: ["value", "label", "minDate", "maxDate", "timeSelection"], outputs: ["valueChange"] }, { kind: "component", type: ClrTimepickerComponent, selector: "clr-timepicker", inputs: ["value", "activateSeconds"], outputs: ["valueChange"] }] }); }
|
|
15602
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: ClrDaterangepickerContainerComponent, isStandalone: false, selector: "clr-daterangepicker-container", inputs: { presets: "presets", presetsDateTime: "presetsDateTime", timeSelection: "timeSelection", activateSeconds: "activateSeconds", popoverPosition: ["clrPosition", "popoverPosition"], labelFrom: "labelFrom", labelTo: "labelTo" }, host: { properties: { "class": "this.classes" } }, providers: [ClrPopoverService, DaterangeControlStateService, DaterangeService, ControlIdService], queries: [{ propertyName: "daterangepickerDirective", first: true, predicate: ClrDaterangepickerDirective, descendants: true }], viewQueries: [{ propertyName: "datepickerComponents", predicate: ClrDatepickerComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"label\"></ng-content>\n@if (!this.labelComponent && this.addLayoutGrid) {\n <label></label>\n}\n<div\n [class.clr-col-12]=\"this.addLayoutGrid\"\n [class.clr-col-md-10]=\"this.addLayoutGrid\"\n [class.clr-error]=\"this.isInvalid\"\n class=\"clr-control-container\"\n>\n <div class=\"clr-input-wrapper\">\n <div\n [class.clr-focus]=\"this.focus\"\n class=\"custom-input-group clr-input-group\"\n [ngClass]=\"_timeSelection ? 'custom-input-group-time' : 'custom-input-group-date'\"\n >\n <ng-content select=\"[clrDaterangepicker]\"></ng-content>\n <button\n [attr.aria-label]=\"this.friendlyDaterange\"\n [disabled]=\"this.disabled\"\n [title]=\"this.friendlyDaterange\"\n class=\"clr-input-group-icon-action\"\n clrPopoverOpenCloseButton\n clrPopoverOrigin\n type=\"button\"\n data-testid=\"daterangepicker-toggle-button\"\n >\n <cds-icon shape=\"calendar\" status=\"info\"></cds-icon>\n </button>\n </div>\n @if (this.isInvalid) {\n <cds-icon aria-hidden=\"true\" class=\"clr-validate-icon\" shape=\"exclamation-circle\" status=\"danger\"></cds-icon>\n }\n @if (!this.isInvalid) {\n <cds-icon aria-hidden=\"true\" class=\"clr-validate-icon\" shape=\"check-circle\" status=\"success\"></cds-icon>\n }\n </div>\n @if (this.showHelper) {\n <ng-content select=\"clr-control-helper\"></ng-content>\n }\n @if (this.showInvalid) {\n <ng-content select=\"clr-control-error\"></ng-content>\n }\n @if (this.showValid) {\n <ng-content select=\"clr-control-success\"></ng-content>\n }\n\n <div\n *clrPopoverContent=\"this.open; at: this.popoverPosition; outsideClickToClose: true; scrollToClose: true\"\n class=\"clr-daterangepicker-container-popup datepicker\"\n data-testid=\"daterangepicker-popup\"\n >\n <button\n class=\"btn btn-sm btn-link close clr-smart-close-button btn-trash\"\n type=\"button\"\n (click)=\"daterangeService.updateSelectedDaterange(null)\"\n data-testid=\"daterangepicker-clear-button\"\n >\n <cds-icon shape=\"trash\"></cds-icon>\n </button>\n <button\n [attr.aria-label]=\"this.commonStrings.close\"\n class=\"btn btn-sm btn-link close\"\n clrPopoverCloseButton\n type=\"button\"\n data-testid=\"daterangepicker-close-button\"\n >\n <cds-icon [attr.title]=\"this.commonStrings.close\" aria-hidden=\"true\" shape=\"window-close\"></cds-icon>\n <span class=\"clr-sr-only\">{{ this.commonStrings.close }}</span>\n </button>\n <div class=\"clr-daterangepicker-container-popup-content\">\n <form [clrLayout]=\"'vertical'\" clrForm>\n <div class=\"datetime-container\">\n <clr-datepicker\n (valueChange)=\"this.onDateFromChange($event)\"\n [label]=\"this.labelFrom\"\n [maxDate]=\"this.maxDate\"\n [minDate]=\"this.minDate\"\n [value]=\"this.dateFrom\"\n class=\"clr-datepicker\"\n data-testid=\"daterangepicker-date-from\"\n >\n </clr-datepicker>\n @if (_timeSelection) {\n <clr-timepicker\n class=\"timepicker\"\n (valueChange)=\"this.onTimeFromChange($event)\"\n [value]=\"this.timeFrom\"\n [activateSeconds]=\"_activateSeconds\"\n data-testid=\"daterangepicker-time-from\"\n >\n </clr-timepicker>\n }\n </div>\n <div class=\"datetime-container datetime-container-to\">\n <clr-datepicker\n (valueChange)=\"this.onDateToChange($event)\"\n [label]=\"this.labelTo\"\n [maxDate]=\"this.maxDate\"\n [minDate]=\"this.minDate\"\n [value]=\"this.dateTo\"\n class=\"clr-datepicker\"\n data-testid=\"daterangepicker-date-to\"\n >\n </clr-datepicker>\n @if (_timeSelection) {\n <clr-timepicker\n class=\"timepicker\"\n (valueChange)=\"this.onTimeToChange($event)\"\n [value]=\"this.timeTo\"\n [activateSeconds]=\"_activateSeconds\"\n data-testid=\"daterangepicker-time-to\"\n >\n </clr-timepicker>\n }\n </div>\n </form>\n @if (this.presets?.length > 0) {\n <div class=\"clr-daterangepicker-container-popup-content-presets\">\n @for (preset of this.presets; track preset) {\n <button\n (click)=\"this.applyPreset(preset)\"\n class=\"btn btn-outline btn-sm btn-block\"\n type=\"button\"\n [attr.data-testid]=\"'daterangepicker-preset-' + preset.text\"\n >\n {{ preset.text }}\n </button>\n }\n </div>\n }\n @if (this.presetsDateTime?.length > 0) {\n <div class=\"clr-daterangepicker-container-popup-content-presets\">\n @for (preset of this.presetsDateTime; track preset) {\n <button\n (click)=\"this.applyPresetTime(preset)\"\n class=\"btn btn-outline btn-sm btn-block\"\n type=\"button\"\n [attr.data-testid]=\"'daterangepicker-time-preset-' + preset.text\"\n >\n {{ preset.text }}\n </button>\n }\n </div>\n }\n </div>\n </div>\n</div>\n", styles: [".clr-input-wrapper>.clr-input-group{max-width:fit-content;padding-right:1.5rem}.clr-input-wrapper>.clr-input-group ::ng-deep>.clr-input{width:100%;padding:0 .3rem}.clr-daterangepicker-container-popup.datepicker{padding:0;width:auto;height:auto;display:block}.clr-daterangepicker-container-popup.datepicker .clr-smart-close-button{min-width:1.2rem;padding:0;position:absolute;right:0;margin:5px}.clr-daterangepicker-container-popup.datepicker .btn-trash{padding-right:25px;margin:5px}.clr-daterangepicker-container-popup.datepicker .clr-daterangepicker-container-popup-content{padding:1rem;display:flex;flex-direction:row}.clr-daterangepicker-container-popup.datepicker .clr-daterangepicker-container-popup-content .clr-form ::ng-deep clr-datepicker:first-of-type ::ng-deep clr-date-container{margin-top:0}.clr-daterangepicker-container-popup.datepicker .clr-daterangepicker-container-popup-content .clr-daterangepicker-container-popup-content-presets{margin-left:.6rem;padding:.3rem}.clr-daterangepicker-container-popup.datepicker .clr-daterangepicker-container-popup-content .clr-daterangepicker-container-popup-content-presets .btn{margin-right:0}.datetime-container{display:flex;flex-direction:row;align-items:flex-start}.datetime-container-to{padding-top:1rem}.timepicker{padding-left:1rem}.timepicker clr-input-container{margin-top:.8rem}.custom-input-group{padding-right:0!important}.custom-input-group .clr-input-group-icon-action{margin-left:.5rem}.custom-input-group input{min-width:10rem!important;width:10rem!important}.custom-input-group-time{min-width:17rem!important}.custom-input-group-date{min-width:12rem!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]):not([formArray]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i1$2.ClrIcon, selector: "clr-icon, cds-icon", inputs: ["shape", "size", "direction", "flip", "solid", "status", "inverse", "badge"] }, { kind: "directive", type: i2.CdsIconCustomTag, selector: "cds-icon" }, { kind: "directive", type: i1$1.ClrControlLabel, selector: "label", inputs: ["id", "for"] }, { kind: "directive", type: i1$1.ClrForm, selector: "[clrForm]", inputs: ["clrLabelSize"] }, { kind: "directive", type: i1$1.ClrLayout, selector: "[clrForm][clrLayout]", inputs: ["clrLayout"] }, { kind: "directive", type: i2$4.ClrPopoverOrigin, selector: "[clrPopoverOrigin]" }, { kind: "directive", type: i2$4.ClrPopoverCloseButton, selector: "[clrPopoverCloseButton]", outputs: ["clrPopoverOnCloseChange"] }, { kind: "directive", type: i2$4.ClrPopoverOpenCloseButton, selector: "[clrPopoverOpenCloseButton]", outputs: ["clrPopoverOpenCloseChange"] }, { kind: "directive", type: i2$4.ClrPopoverContent, selector: "[clrPopoverContent]", inputs: ["clrPopoverContent", "clrPopoverContentAt", "clrPopoverContentAvailablePositions", "clrPopoverContentType", "clrPopoverContentOutsideClickToClose", "clrPopoverContentScrollToClose", "clrPopoverContentOrigin"] }, { kind: "component", type: ClrDatepickerComponent, selector: "clr-datepicker", inputs: ["value", "label", "minDate", "maxDate", "timeSelection"], outputs: ["valueChange"] }, { kind: "component", type: ClrTimepickerComponent, selector: "clr-timepicker", inputs: ["value", "activateSeconds"], outputs: ["valueChange"] }] }); }
|
|
15288
15603
|
}
|
|
15289
15604
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ClrDaterangepickerContainerComponent, decorators: [{
|
|
15290
15605
|
type: Component,
|
|
@@ -16979,40 +17294,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImpo
|
|
|
16979
17294
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
16980
17295
|
*/
|
|
16981
17296
|
|
|
16982
|
-
|
|
16983
|
-
|
|
16984
|
-
|
|
16985
|
-
|
|
16986
|
-
|
|
16987
|
-
|
|
16988
|
-
|
|
16989
|
-
class ExportDatagridService {
|
|
16990
|
-
constructor() {
|
|
16991
|
-
this.init();
|
|
16992
|
-
}
|
|
16993
|
-
async init() {
|
|
16994
|
-
try {
|
|
16995
|
-
this.zipcelx = await import('zipcelx');
|
|
16996
|
-
}
|
|
16997
|
-
catch (error) {
|
|
16998
|
-
console.warn('Optional feature requires `zipcelx`. Please install it: npm install zipcelx', error);
|
|
16999
|
-
}
|
|
17000
|
-
}
|
|
17001
|
-
exportToExcel(filename, headers, rows) {
|
|
17002
|
-
const config = {
|
|
17003
|
-
filename,
|
|
17004
|
-
sheet: {
|
|
17005
|
-
data: [headers, ...rows],
|
|
17006
|
-
},
|
|
17007
|
-
};
|
|
17008
|
-
this.zipcelx.default(config);
|
|
17009
|
-
}
|
|
17010
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ExportDatagridService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
17297
|
+
/**
|
|
17298
|
+
* Excel export service used by the datagrid export button.
|
|
17299
|
+
*
|
|
17300
|
+
* It is a thin alias of the shared {@link ExportExcelService}.
|
|
17301
|
+
*/
|
|
17302
|
+
class ExportDatagridService extends ExportExcelService {
|
|
17303
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ExportDatagridService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
17011
17304
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ExportDatagridService }); }
|
|
17012
17305
|
}
|
|
17013
17306
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ExportDatagridService, decorators: [{
|
|
17014
17307
|
type: Injectable
|
|
17015
|
-
}]
|
|
17308
|
+
}] });
|
|
17016
17309
|
|
|
17017
17310
|
class ExportDatagridButtonComponent {
|
|
17018
17311
|
constructor(exportService) {
|
|
@@ -17083,7 +17376,7 @@ class ExportDatagridButtonComponent {
|
|
|
17083
17376
|
const rowsToExport = this.getRowsToExport(type);
|
|
17084
17377
|
// Map data rows for visible columns only
|
|
17085
17378
|
const dataRows = rowsToExport.map(row => visibleColumns.map(col => ({
|
|
17086
|
-
value: String(row
|
|
17379
|
+
value: String(this.getValueByPath(row, col.field) ?? ''),
|
|
17087
17380
|
type: col.colType,
|
|
17088
17381
|
})));
|
|
17089
17382
|
this.exportService.exportToExcel(this.exportTitlePrefix(), headerRow, dataRows);
|
|
@@ -17124,6 +17417,15 @@ class ExportDatagridButtonComponent {
|
|
|
17124
17417
|
return [];
|
|
17125
17418
|
}
|
|
17126
17419
|
}
|
|
17420
|
+
/**
|
|
17421
|
+
* Resolves a (possibly nested) property path like `address.city` on the given item.
|
|
17422
|
+
*/
|
|
17423
|
+
getValueByPath(item, path) {
|
|
17424
|
+
if (!path) {
|
|
17425
|
+
return undefined;
|
|
17426
|
+
}
|
|
17427
|
+
return path.split('.').reduce((current, segment) => current?.[segment], item);
|
|
17428
|
+
}
|
|
17127
17429
|
getColumnsTitle() {
|
|
17128
17430
|
const nativeEl = this.datagridRef()?.nativeElement;
|
|
17129
17431
|
const headerEls = nativeEl?.querySelectorAll('clr-dg-column:not(.datagrid-hidden-column)') ?? [];
|
|
@@ -17137,7 +17439,7 @@ class ExportDatagridButtonComponent {
|
|
|
17137
17439
|
return columnTitles;
|
|
17138
17440
|
}
|
|
17139
17441
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ExportDatagridButtonComponent, deps: [{ token: ExportDatagridService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
17140
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: ExportDatagridButtonComponent, isStandalone: true, selector: "clr-export-datagrid-button", inputs: { datagrid: { classPropertyName: "datagrid", publicName: "datagrid", isSignal: true, isRequired: false, transformFunction: null }, datagridRef: { classPropertyName: "datagridRef", publicName: "datagridRef", isSignal: true, isRequired: false, transformFunction: null }, exportTypesToShow: { classPropertyName: "exportTypesToShow", publicName: "exportTypesToShow", isSignal: true, isRequired: false, transformFunction: null }, isBackendExport: { classPropertyName: "isBackendExport", publicName: "isBackendExport", isSignal: true, isRequired: false, transformFunction: null }, exportTitlePrefix: { classPropertyName: "exportTitlePrefix", publicName: "exportTitlePrefix", isSignal: true, isRequired: false, transformFunction: null }, exportButtonPosition: { classPropertyName: "exportButtonPosition", publicName: "exportButtonPosition", isSignal: true, isRequired: false, transformFunction: null }, exportButtonText: { classPropertyName: "exportButtonText", publicName: "exportButtonText", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { backendExport: "backendExport" }, ngImport: i0, template: "<div\n [ngClass]=\"{\n 'export-btn-right': exportButtonPosition() === 'right',\n 'export-btn-left': exportButtonPosition() === 'left'\n }\"\n>\n <clr-dropdown>\n <button class=\"btn btn-sm btn-outline\" clrDropdownTrigger type=\"button\">\n {{ exportButtonText() }}\n <cds-icon shape=\"angle\" direction=\"down\" size=\"12\"></cds-icon>\n </button>\n <clr-dropdown-menu *clrIfOpen clrPosition=\"bottom-right\">\n @for (exportType of exportTypesFiltered(); track exportType) {\n <button (click)=\"onExport(exportType.type)\" clrDropdownItem>\n {{ exportType.value }}\n </button>\n }\n </clr-dropdown-menu>\n </clr-dropdown>\n</div>\n", styles: [".export-btn-right{display:flex;justify-content:flex-end}.export-btn-left{display:flex;justify-content:flex-start}.custom-button-export{margin:0}\n"], dependencies: [{ kind: "ngmodule", type: ClarityModule }, { kind: "component", type: i2.ClrIcon, selector: "clr-icon, cds-icon", inputs: ["shape", "size", "direction", "flip", "solid", "status", "inverse", "badge"] }, { kind: "directive", type: i2.CdsIconCustomTag, selector: "cds-icon" }, { kind: "component", type:
|
|
17442
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: ExportDatagridButtonComponent, isStandalone: true, selector: "clr-export-datagrid-button", inputs: { datagrid: { classPropertyName: "datagrid", publicName: "datagrid", isSignal: true, isRequired: false, transformFunction: null }, datagridRef: { classPropertyName: "datagridRef", publicName: "datagridRef", isSignal: true, isRequired: false, transformFunction: null }, exportTypesToShow: { classPropertyName: "exportTypesToShow", publicName: "exportTypesToShow", isSignal: true, isRequired: false, transformFunction: null }, isBackendExport: { classPropertyName: "isBackendExport", publicName: "isBackendExport", isSignal: true, isRequired: false, transformFunction: null }, exportTitlePrefix: { classPropertyName: "exportTitlePrefix", publicName: "exportTitlePrefix", isSignal: true, isRequired: false, transformFunction: null }, exportButtonPosition: { classPropertyName: "exportButtonPosition", publicName: "exportButtonPosition", isSignal: true, isRequired: false, transformFunction: null }, exportButtonText: { classPropertyName: "exportButtonText", publicName: "exportButtonText", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { backendExport: "backendExport" }, ngImport: i0, template: "<div\n [ngClass]=\"{\n 'export-btn-right': exportButtonPosition() === 'right',\n 'export-btn-left': exportButtonPosition() === 'left'\n }\"\n>\n <clr-dropdown>\n <button class=\"btn btn-sm btn-outline\" clrDropdownTrigger type=\"button\">\n {{ exportButtonText() }}\n <cds-icon shape=\"angle\" direction=\"down\" size=\"12\"></cds-icon>\n </button>\n <clr-dropdown-menu *clrIfOpen clrPosition=\"bottom-right\">\n @for (exportType of exportTypesFiltered(); track exportType) {\n <button (click)=\"onExport(exportType.type)\" clrDropdownItem>\n {{ exportType.value }}\n </button>\n }\n </clr-dropdown-menu>\n </clr-dropdown>\n</div>\n", styles: [".export-btn-right{display:flex;justify-content:flex-end}.export-btn-left{display:flex;justify-content:flex-start}.custom-button-export{margin:0}\n"], dependencies: [{ kind: "ngmodule", type: ClarityModule }, { kind: "component", type: i2.ClrIcon, selector: "clr-icon, cds-icon", inputs: ["shape", "size", "direction", "flip", "solid", "status", "inverse", "badge"] }, { kind: "directive", type: i2.CdsIconCustomTag, selector: "cds-icon" }, { kind: "component", type: i2$3.ClrDropdown, selector: "clr-dropdown", inputs: ["clrCloseMenuOnItemClick"] }, { kind: "component", type: i2$3.ClrDropdownMenu, selector: "clr-dropdown-menu", inputs: ["clrPosition"] }, { kind: "directive", type: i2$3.ClrDropdownTrigger, selector: "[clrDropdownTrigger],[clrDropdownToggle]" }, { kind: "directive", type: i2$3.ClrDropdownItem, selector: "[clrDropdownItem]", inputs: ["clrDisabled", "id"] }, { kind: "directive", type: i2$4.ClrIfOpen, selector: "[clrIfOpen]", inputs: ["clrIfOpen"], outputs: ["clrIfOpenChange"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
|
|
17141
17443
|
}
|
|
17142
17444
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ExportDatagridButtonComponent, decorators: [{
|
|
17143
17445
|
type: Component,
|
|
@@ -17265,7 +17567,7 @@ class ClrCopyToClipboard {
|
|
|
17265
17567
|
});
|
|
17266
17568
|
}
|
|
17267
17569
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ClrCopyToClipboard, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
17268
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.22", type: ClrCopyToClipboard, isStandalone: true, selector: "clr-copy-to-clipboard", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, tooltipText: { classPropertyName: "tooltipText", publicName: "tooltipText", isSignal: true, isRequired: false, transformFunction: null }, hiddenUntilHovered: { classPropertyName: "hiddenUntilHovered", publicName: "hiddenUntilHovered", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.hidden-until-hovered": "hiddenUntilHovered()", "class.parent-hovered": "parentHovered" } }, ngImport: i0, template: "<clr-tooltip>\n <cds-icon\n clrTooltipTrigger\n class=\"copy-to-clipboard-icon\"\n data-testid=\"copy-to-clipboard-button\"\n [cdkCopyToClipboard]=\"trimmedValue()\"\n (cdkCopyToClipboardCopied)=\"onCopied($event)\"\n [shape]=\"showCopiedIcon ? 'success-standard' : 'copy-to-clipboard'\"\n [ngClass]=\"{ 'attribute-was-copied-color': showCopiedIcon }\"\n (click)=\"$event.stopPropagation()\"\n (keydown.enter)=\"$event.stopPropagation()\"\n (mousedown)=\"$event.preventDefault()\"\n ></cds-icon>\n <clr-tooltip-content\n class=\"clr-tooltip-fit-content\"\n data-testid=\"copy-to-clipboard-tooltip\"\n [clrSize]=\"tooltipSize\"\n [clrPosition]=\"tooltipPosition\"\n *clrIfOpen\n >{{ tooltipText() }}</clr-tooltip-content\n >\n</clr-tooltip>\n", styles: [":host,.tooltip{display:flex;align-items:center}.copy-to-clipboard-icon{cursor:pointer;color:var(--cds-alias-status-disabled-tint)!important}.copy-to-clipboard-icon:hover{color:var(--cds-alias-typography-link-color)!important}.attribute-was-copied-color{color:var(--cds-alias-status-success)!important}:host(.hidden-until-hovered){visibility:hidden;opacity:0;transition:opacity .15s ease,visibility .15s ease}:host(.hidden-until-hovered.parent-hovered),:host(.hidden-until-hovered:focus-within){visibility:visible;opacity:1}.copy-to-clipboard-parent{display:flex;flex-direction:row;align-items:center;gap:.25rem}\n"], dependencies: [{ kind: "directive", type: CdkCopyToClipboard, selector: "[cdkCopyToClipboard]", inputs: ["cdkCopyToClipboard", "cdkCopyToClipboardAttempts"], outputs: ["cdkCopyToClipboardCopied"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ClrIcon, selector: "clr-icon, cds-icon", inputs: ["shape", "size", "direction", "flip", "solid", "status", "inverse", "badge"] }, { kind: "ngmodule", type: ClrTooltipModule }, { kind: "component", type: i1$4.ClrTooltip, selector: "clr-tooltip" }, { kind: "directive", type: i1$4.ClrTooltipTrigger, selector: "[clrTooltipTrigger]" }, { kind: "component", type: i1$4.ClrTooltipContent, selector: "clr-tooltip-content", inputs: ["id", "clrPosition", "clrSize"] }, { kind: "directive", type: i2$
|
|
17570
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.22", type: ClrCopyToClipboard, isStandalone: true, selector: "clr-copy-to-clipboard", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, tooltipText: { classPropertyName: "tooltipText", publicName: "tooltipText", isSignal: true, isRequired: false, transformFunction: null }, hiddenUntilHovered: { classPropertyName: "hiddenUntilHovered", publicName: "hiddenUntilHovered", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.hidden-until-hovered": "hiddenUntilHovered()", "class.parent-hovered": "parentHovered" } }, ngImport: i0, template: "<clr-tooltip>\n <cds-icon\n clrTooltipTrigger\n class=\"copy-to-clipboard-icon\"\n data-testid=\"copy-to-clipboard-button\"\n [cdkCopyToClipboard]=\"trimmedValue()\"\n (cdkCopyToClipboardCopied)=\"onCopied($event)\"\n [shape]=\"showCopiedIcon ? 'success-standard' : 'copy-to-clipboard'\"\n [ngClass]=\"{ 'attribute-was-copied-color': showCopiedIcon }\"\n (click)=\"$event.stopPropagation()\"\n (keydown.enter)=\"$event.stopPropagation()\"\n (mousedown)=\"$event.preventDefault()\"\n ></cds-icon>\n <clr-tooltip-content\n class=\"clr-tooltip-fit-content\"\n data-testid=\"copy-to-clipboard-tooltip\"\n [clrSize]=\"tooltipSize\"\n [clrPosition]=\"tooltipPosition\"\n *clrIfOpen\n >{{ tooltipText() }}</clr-tooltip-content\n >\n</clr-tooltip>\n", styles: [":host,.tooltip{display:flex;align-items:center}.copy-to-clipboard-icon{cursor:pointer;color:var(--cds-alias-status-disabled-tint)!important}.copy-to-clipboard-icon:hover{color:var(--cds-alias-typography-link-color)!important}.attribute-was-copied-color{color:var(--cds-alias-status-success)!important}:host(.hidden-until-hovered){visibility:hidden;opacity:0;transition:opacity .15s ease,visibility .15s ease}:host(.hidden-until-hovered.parent-hovered),:host(.hidden-until-hovered:focus-within){visibility:visible;opacity:1}.copy-to-clipboard-parent{display:flex;flex-direction:row;align-items:center;gap:.25rem}\n"], dependencies: [{ kind: "directive", type: CdkCopyToClipboard, selector: "[cdkCopyToClipboard]", inputs: ["cdkCopyToClipboard", "cdkCopyToClipboardAttempts"], outputs: ["cdkCopyToClipboardCopied"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ClrIcon, selector: "clr-icon, cds-icon", inputs: ["shape", "size", "direction", "flip", "solid", "status", "inverse", "badge"] }, { kind: "ngmodule", type: ClrTooltipModule }, { kind: "component", type: i1$4.ClrTooltip, selector: "clr-tooltip" }, { kind: "directive", type: i1$4.ClrTooltipTrigger, selector: "[clrTooltipTrigger]" }, { kind: "component", type: i1$4.ClrTooltipContent, selector: "clr-tooltip-content", inputs: ["id", "clrPosition", "clrSize"] }, { kind: "directive", type: i2$4.ClrIfOpen, selector: "[clrIfOpen]", inputs: ["clrIfOpen"], outputs: ["clrIfOpenChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
17269
17571
|
}
|
|
17270
17572
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ClrCopyToClipboard, decorators: [{
|
|
17271
17573
|
type: Component,
|
|
@@ -17521,7 +17823,7 @@ class ClrSummaryItemValue {
|
|
|
17521
17823
|
return false;
|
|
17522
17824
|
}
|
|
17523
17825
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ClrSummaryItemValue, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
17524
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: ClrSummaryItemValue, isStandalone: true, selector: "clr-summary-item-value", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, clickable: { classPropertyName: "clickable", publicName: "clickable", isSignal: true, isRequired: false, transformFunction: null }, href: { classPropertyName: "href", publicName: "href", isSignal: true, isRequired: false, transformFunction: null }, target: { classPropertyName: "target", publicName: "target", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clicked: "clicked" }, host: { properties: { "class.has-icon": "this.hasIcon", "class.has-text": "this.hasText", "class.hidden": "this.isHidden" } }, providers: [provideAnimations()], viewQueries: [{ propertyName: "projectedContent", first: true, predicate: ["projectedContent"], descendants: true }, { propertyName: "valueElement", first: true, predicate: ["valueElement"], descendants: true }], ngImport: i0, template: "@if (icon() !== undefined && icon() !== null && icon() !== '') { @if (href()) { @if (tooltip()) {\n<clr-tooltip>\n <a\n clrTooltipTrigger\n class=\"value-icon-link\"\n [href]=\"href()\"\n [attr.target]=\"target() ?? null\"\n (click)=\"handleClick()\"\n data-testid=\"summary-item-value-icon-link\"\n >\n <cds-icon [shape]=\"icon()\" class=\"value-icon value-link\"></cds-icon>\n </a>\n <clr-tooltip-content\n [clrSize]=\"tooltipSize\"\n [clrPosition]=\"tooltipPosition\"\n *clrIfOpen\n data-testid=\"summary-item-value-icon-link-tooltip\"\n >\n {{ tooltip() }}</clr-tooltip-content\n >\n</clr-tooltip>\n} @else {\n<a\n class=\"value-icon-link\"\n [href]=\"href()\"\n [attr.target]=\"target() ?? null\"\n (click)=\"handleClick()\"\n data-testid=\"summary-item-value-icon-link-plain\"\n>\n <cds-icon [shape]=\"icon()\" class=\"value-icon value-link\"></cds-icon>\n</a>\n} } @else if (hasClickHandler) { @if (tooltip()) {\n<clr-tooltip>\n <cds-icon\n clrTooltipTrigger\n [shape]=\"icon()\"\n class=\"value-icon value-link\"\n tabindex=\"0\"\n (click)=\"handleClick()\"\n (keydown.enter)=\"handleClick()\"\n data-testid=\"summary-item-value-icon-action\"\n ></cds-icon>\n <clr-tooltip-content\n [clrSize]=\"tooltipSize\"\n [clrPosition]=\"tooltipPosition\"\n *clrIfOpen\n data-testid=\"summary-item-value-icon-action-tooltip\"\n >\n {{ tooltip() }}</clr-tooltip-content\n >\n</clr-tooltip>\n} @else {\n<cds-icon\n [shape]=\"icon()\"\n class=\"value-icon value-link\"\n tabindex=\"0\"\n (click)=\"handleClick()\"\n (keydown.enter)=\"handleClick()\"\n data-testid=\"summary-item-value-icon-action-plain\"\n></cds-icon>\n} } @else { @if (tooltip()) {\n<clr-tooltip>\n <cds-icon\n clrTooltipTrigger\n [shape]=\"icon()\"\n class=\"value-icon value-icon-neutral\"\n data-testid=\"summary-item-value-icon\"\n ></cds-icon>\n <clr-tooltip-content\n [clrSize]=\"tooltipSize\"\n [clrPosition]=\"tooltipPosition\"\n *clrIfOpen\n data-testid=\"summary-item-value-icon-tooltip\"\n >\n {{ tooltip() }}</clr-tooltip-content\n >\n</clr-tooltip>\n} @else {\n<cds-icon [shape]=\"icon()\" class=\"value-icon value-icon-neutral\" data-testid=\"summary-item-value-icon-plain\"></cds-icon>\n} } } @else if (value() !== undefined && value() !== null && value() !== '') { @if (href()) { @if (effectiveTooltip) {\n<clr-tooltip>\n <a\n #valueElement\n class=\"value value-link\"\n clrTooltipTrigger\n [href]=\"href()\"\n [attr.target]=\"target() ?? null\"\n (click)=\"handleClick()\"\n data-testid=\"summary-item-value-link\"\n >\n {{ value() }}\n </a>\n <clr-tooltip-content\n [clrSize]=\"tooltipSize\"\n [clrPosition]=\"tooltipPosition\"\n *clrIfOpen\n data-testid=\"summary-item-value-link-tooltip\"\n >\n {{ effectiveTooltip }}</clr-tooltip-content\n >\n</clr-tooltip>\n} @else {\n<a\n #valueElement\n class=\"value value-link\"\n [href]=\"href()\"\n [attr.target]=\"target() ?? null\"\n (click)=\"handleClick()\"\n data-testid=\"summary-item-value-link-plain\"\n>\n {{ value() }}\n</a>\n} } @else if (hasClickHandler) {\n<clr-tooltip>\n <span\n #valueElement\n class=\"value value-link\"\n clrTooltipTrigger\n (click)=\"handleClick()\"\n (keydown.enter)=\"handleClick()\"\n data-testid=\"summary-item-value-action\"\n >\n {{ value() }}\n </span>\n @if (effectiveTooltip) {\n <clr-tooltip-content\n [clrSize]=\"tooltipSize\"\n [clrPosition]=\"tooltipPosition\"\n *clrIfOpen\n data-testid=\"summary-item-value-action-tooltip\"\n >\n {{ effectiveTooltip }}</clr-tooltip-content\n >\n }\n</clr-tooltip>\n} @else if(effectiveTooltip) {\n<clr-tooltip>\n <span #valueElement class=\"value\" clrTooltipTrigger data-testid=\"summary-item-value\">{{ value() }}</span>\n <clr-tooltip-content\n [clrSize]=\"tooltipSize\"\n [clrPosition]=\"tooltipPosition\"\n *clrIfOpen\n data-testid=\"summary-item-value-tooltip\"\n >\n {{ effectiveTooltip }}</clr-tooltip-content\n >\n</clr-tooltip>\n} @else {\n<span #valueElement class=\"value\" data-testid=\"summary-item-value-plain\">{{ value() }}</span>\n} } @else {\n<span class=\"projected-wrapper\" #projectedContent data-testid=\"summary-item-value-projected\">\n <ng-content></ng-content>\n</span>\n}\n", styles: [":host{display:inline-flex;flex-direction:row;align-items:center;gap:.25rem;flex:0 1 auto;max-width:100%;min-width:0;overflow:visible}:host.hidden{display:none}:host(.has-icon){flex:0 0 auto;width:auto}.value,.value-link,.projected-wrapper,clr-tooltip [clrTooltipTrigger]{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block}cds-icon{flex-shrink:0}.value-icon-link{display:inline-flex;align-items:center;text-decoration:none;cursor:pointer}.value-icon-link cds-icon{color:var(--cds-alias-typography-link-color)}.value-icon-link:hover cds-icon,.value-icon-link:focus cds-icon{color:var(--cds-alias-typography-link-color-hover)}.value-icon-link:visited cds-icon{color:var(--cds-alias-typography-link-color-visited)}.value-icon{height:20px;width:20px}.value-icon-neutral{color:var(--cds-alias-status-neutral)}.value-link,.edit-link{color:var(--cds-alias-typography-link-color);text-decoration:underline;cursor:pointer}.value-link:visited,.edit-link:visited{color:var(--cds-alias-typography-link-color-visited)}.value-link:hover,.value-link:focus,.edit-link:hover,.edit-link:focus{color:var(--cds-alias-typography-link-color-hover);text-decoration:underline}.value{display:inline-block}clr-tooltip{display:inline-flex;flex:1 1 auto;min-width:0;overflow:visible}clr-tooltip [clrTooltipTrigger]{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}::ng-deep clr-tooltip-content{overflow-wrap:break-word;word-wrap:break-word;hyphens:auto}::ng-deep .tooltip-content{overflow-wrap:break-word;word-wrap:break-word;hyphens:auto}:host(.error){color:var(--cds-alias-status-danger)}:host(.error) cds-icon{color:var(--cds-alias-status-danger)!important}:host(.error) .value{color:var(--cds-alias-status-danger)}:host(.warning){color:var(--cds-alias-status-warning)}:host(.warning) cds-icon{color:var(--cds-alias-status-warning)!important}:host(.warning) .value{color:var(--cds-alias-status-warning)}\n"], dependencies: [{ kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type: ClarityModule }, { kind: "component", type: i2.ClrIcon, selector: "clr-icon, cds-icon", inputs: ["shape", "size", "direction", "flip", "solid", "status", "inverse", "badge"] }, { kind: "directive", type: i2.CdsIconCustomTag, selector: "cds-icon" }, { kind: "directive", type: i2$
|
|
17826
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: ClrSummaryItemValue, isStandalone: true, selector: "clr-summary-item-value", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, clickable: { classPropertyName: "clickable", publicName: "clickable", isSignal: true, isRequired: false, transformFunction: null }, href: { classPropertyName: "href", publicName: "href", isSignal: true, isRequired: false, transformFunction: null }, target: { classPropertyName: "target", publicName: "target", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clicked: "clicked" }, host: { properties: { "class.has-icon": "this.hasIcon", "class.has-text": "this.hasText", "class.hidden": "this.isHidden" } }, providers: [provideAnimations()], viewQueries: [{ propertyName: "projectedContent", first: true, predicate: ["projectedContent"], descendants: true }, { propertyName: "valueElement", first: true, predicate: ["valueElement"], descendants: true }], ngImport: i0, template: "@if (icon() !== undefined && icon() !== null && icon() !== '') { @if (href()) { @if (tooltip()) {\n<clr-tooltip>\n <a\n clrTooltipTrigger\n class=\"value-icon-link\"\n [href]=\"href()\"\n [attr.target]=\"target() ?? null\"\n (click)=\"handleClick()\"\n data-testid=\"summary-item-value-icon-link\"\n >\n <cds-icon [shape]=\"icon()\" class=\"value-icon value-link\"></cds-icon>\n </a>\n <clr-tooltip-content\n [clrSize]=\"tooltipSize\"\n [clrPosition]=\"tooltipPosition\"\n *clrIfOpen\n data-testid=\"summary-item-value-icon-link-tooltip\"\n >\n {{ tooltip() }}</clr-tooltip-content\n >\n</clr-tooltip>\n} @else {\n<a\n class=\"value-icon-link\"\n [href]=\"href()\"\n [attr.target]=\"target() ?? null\"\n (click)=\"handleClick()\"\n data-testid=\"summary-item-value-icon-link-plain\"\n>\n <cds-icon [shape]=\"icon()\" class=\"value-icon value-link\"></cds-icon>\n</a>\n} } @else if (hasClickHandler) { @if (tooltip()) {\n<clr-tooltip>\n <cds-icon\n clrTooltipTrigger\n [shape]=\"icon()\"\n class=\"value-icon value-link\"\n tabindex=\"0\"\n (click)=\"handleClick()\"\n (keydown.enter)=\"handleClick()\"\n data-testid=\"summary-item-value-icon-action\"\n ></cds-icon>\n <clr-tooltip-content\n [clrSize]=\"tooltipSize\"\n [clrPosition]=\"tooltipPosition\"\n *clrIfOpen\n data-testid=\"summary-item-value-icon-action-tooltip\"\n >\n {{ tooltip() }}</clr-tooltip-content\n >\n</clr-tooltip>\n} @else {\n<cds-icon\n [shape]=\"icon()\"\n class=\"value-icon value-link\"\n tabindex=\"0\"\n (click)=\"handleClick()\"\n (keydown.enter)=\"handleClick()\"\n data-testid=\"summary-item-value-icon-action-plain\"\n></cds-icon>\n} } @else { @if (tooltip()) {\n<clr-tooltip>\n <cds-icon\n clrTooltipTrigger\n [shape]=\"icon()\"\n class=\"value-icon value-icon-neutral\"\n data-testid=\"summary-item-value-icon\"\n ></cds-icon>\n <clr-tooltip-content\n [clrSize]=\"tooltipSize\"\n [clrPosition]=\"tooltipPosition\"\n *clrIfOpen\n data-testid=\"summary-item-value-icon-tooltip\"\n >\n {{ tooltip() }}</clr-tooltip-content\n >\n</clr-tooltip>\n} @else {\n<cds-icon [shape]=\"icon()\" class=\"value-icon value-icon-neutral\" data-testid=\"summary-item-value-icon-plain\"></cds-icon>\n} } } @else if (value() !== undefined && value() !== null && value() !== '') { @if (href()) { @if (effectiveTooltip) {\n<clr-tooltip>\n <a\n #valueElement\n class=\"value value-link\"\n clrTooltipTrigger\n [href]=\"href()\"\n [attr.target]=\"target() ?? null\"\n (click)=\"handleClick()\"\n data-testid=\"summary-item-value-link\"\n >\n {{ value() }}\n </a>\n <clr-tooltip-content\n [clrSize]=\"tooltipSize\"\n [clrPosition]=\"tooltipPosition\"\n *clrIfOpen\n data-testid=\"summary-item-value-link-tooltip\"\n >\n {{ effectiveTooltip }}</clr-tooltip-content\n >\n</clr-tooltip>\n} @else {\n<a\n #valueElement\n class=\"value value-link\"\n [href]=\"href()\"\n [attr.target]=\"target() ?? null\"\n (click)=\"handleClick()\"\n data-testid=\"summary-item-value-link-plain\"\n>\n {{ value() }}\n</a>\n} } @else if (hasClickHandler) {\n<clr-tooltip>\n <span\n #valueElement\n class=\"value value-link\"\n clrTooltipTrigger\n (click)=\"handleClick()\"\n (keydown.enter)=\"handleClick()\"\n data-testid=\"summary-item-value-action\"\n >\n {{ value() }}\n </span>\n @if (effectiveTooltip) {\n <clr-tooltip-content\n [clrSize]=\"tooltipSize\"\n [clrPosition]=\"tooltipPosition\"\n *clrIfOpen\n data-testid=\"summary-item-value-action-tooltip\"\n >\n {{ effectiveTooltip }}</clr-tooltip-content\n >\n }\n</clr-tooltip>\n} @else if(effectiveTooltip) {\n<clr-tooltip>\n <span #valueElement class=\"value\" clrTooltipTrigger data-testid=\"summary-item-value\">{{ value() }}</span>\n <clr-tooltip-content\n [clrSize]=\"tooltipSize\"\n [clrPosition]=\"tooltipPosition\"\n *clrIfOpen\n data-testid=\"summary-item-value-tooltip\"\n >\n {{ effectiveTooltip }}</clr-tooltip-content\n >\n</clr-tooltip>\n} @else {\n<span #valueElement class=\"value\" data-testid=\"summary-item-value-plain\">{{ value() }}</span>\n} } @else {\n<span class=\"projected-wrapper\" #projectedContent data-testid=\"summary-item-value-projected\">\n <ng-content></ng-content>\n</span>\n}\n", styles: [":host{display:inline-flex;flex-direction:row;align-items:center;gap:.25rem;flex:0 1 auto;max-width:100%;min-width:0;overflow:visible}:host.hidden{display:none}:host(.has-icon){flex:0 0 auto;width:auto}.value,.value-link,.projected-wrapper,clr-tooltip [clrTooltipTrigger]{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block}cds-icon{flex-shrink:0}.value-icon-link{display:inline-flex;align-items:center;text-decoration:none;cursor:pointer}.value-icon-link cds-icon{color:var(--cds-alias-typography-link-color)}.value-icon-link:hover cds-icon,.value-icon-link:focus cds-icon{color:var(--cds-alias-typography-link-color-hover)}.value-icon-link:visited cds-icon{color:var(--cds-alias-typography-link-color-visited)}.value-icon{height:20px;width:20px}.value-icon-neutral{color:var(--cds-alias-status-neutral)}.value-link,.edit-link{color:var(--cds-alias-typography-link-color);text-decoration:underline;cursor:pointer}.value-link:visited,.edit-link:visited{color:var(--cds-alias-typography-link-color-visited)}.value-link:hover,.value-link:focus,.edit-link:hover,.edit-link:focus{color:var(--cds-alias-typography-link-color-hover);text-decoration:underline}.value{display:inline-block}clr-tooltip{display:inline-flex;flex:1 1 auto;min-width:0;overflow:visible}clr-tooltip [clrTooltipTrigger]{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}::ng-deep clr-tooltip-content{overflow-wrap:break-word;word-wrap:break-word;hyphens:auto}::ng-deep .tooltip-content{overflow-wrap:break-word;word-wrap:break-word;hyphens:auto}:host(.error){color:var(--cds-alias-status-danger)}:host(.error) cds-icon{color:var(--cds-alias-status-danger)!important}:host(.error) .value{color:var(--cds-alias-status-danger)}:host(.warning){color:var(--cds-alias-status-warning)}:host(.warning) cds-icon{color:var(--cds-alias-status-warning)!important}:host(.warning) .value{color:var(--cds-alias-status-warning)}\n"], dependencies: [{ kind: "ngmodule", type: RouterModule }, { kind: "ngmodule", type: ClarityModule }, { kind: "component", type: i2.ClrIcon, selector: "clr-icon, cds-icon", inputs: ["shape", "size", "direction", "flip", "solid", "status", "inverse", "badge"] }, { kind: "directive", type: i2.CdsIconCustomTag, selector: "cds-icon" }, { kind: "directive", type: i2$4.ClrIfOpen, selector: "[clrIfOpen]", inputs: ["clrIfOpen"], outputs: ["clrIfOpenChange"] }, { kind: "component", type: i1$4.ClrTooltip, selector: "clr-tooltip" }, { kind: "directive", type: i1$4.ClrTooltipTrigger, selector: "[clrTooltipTrigger]" }, { kind: "component", type: i1$4.ClrTooltipContent, selector: "clr-tooltip-content", inputs: ["id", "clrPosition", "clrSize"] }] }); }
|
|
17525
17827
|
}
|
|
17526
17828
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ClrSummaryItemValue, decorators: [{
|
|
17527
17829
|
type: Component,
|
|
@@ -18147,7 +18449,7 @@ class ClrSummaryArea {
|
|
|
18147
18449
|
}
|
|
18148
18450
|
}
|
|
18149
18451
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ClrSummaryArea, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
18150
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: ClrSummaryArea, isStandalone: true, selector: "clr-summary-area", inputs: { rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: false, transformFunction: null }, localStorageKey: { classPropertyName: "localStorageKey", publicName: "localStorageKey", isSignal: true, isRequired: false, transformFunction: null }, error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null }, warning: { classPropertyName: "warning", publicName: "warning", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "window:resize": "onResize()" } }, queries: [{ propertyName: "items", predicate: ClrSummaryItem, descendants: true }], viewQueries: [{ propertyName: "panelsRef", first: true, predicate: ["panelsRef"], descendants: true, static: true }], ngImport: i0, template: "<div\n #panelsRef\n class=\"summary-area-panels\"\n data-testid=\"summary-area-panels\"\n [class.is-active]=\"!isCollapsed()\"\n [class.loading-active]=\"hasLoading\"\n [style.height]=\"panelHeight\"\n>\n <div\n class=\"summary-area-panel summary-area-panel--state\"\n data-testid=\"summary-area-state-panel\"\n [class.is-active]=\"!isCollapsed() && (hasLoading || hasError || hasWarning)\"\n [class.is-error]=\"hasError\"\n [class.is-warning]=\"hasWarning\"\n [style.--rows]=\"currentRows()\"\n [attr.aria-hidden]=\"isCollapsed() || !(hasLoading || hasError || hasWarning) ? 'true' : 'false'\"\n [attr.inert]=\"isCollapsed() || !(hasLoading || hasError || hasWarning) ? '' : null\"\n >\n <div class=\"summary-area-panel__body\">\n <div\n class=\"summary-area-loading\"\n data-testid=\"summary-area-loading\"\n [class.is-visible]=\"loadingVisible\"\n [attr.aria-hidden]=\"!hasLoading\"\n [style.height]=\"loadingPanelHeight\"\n >\n <clr-spinner [clrMedium]=\"true\" data-testid=\"summary-area-loading-spinner\"></clr-spinner>\n <span class=\"loading-text\" data-testid=\"summary-area-loading-text\">{{ loadingText }}</span>\n </div>\n @if (hasError) {\n <div class=\"summary-area-alert\" data-testid=\"summary-area-error-alert\">\n <clr-alert [clrAlertLightweight]=\"true\" [clrAlertType]=\"'danger'\" data-testid=\"summary-area-error\">\n <clr-alert-item>\n @if (errorLinkText && errorClick) {\n <span class=\"alert-text\" data-testid=\"summary-area-error-text\">{{ errorText }}</span>\n <span\n class=\"alert-action\"\n (click)=\"errorClick()\"\n (keydown.enter)=\"errorClick()\"\n data-testid=\"summary-area-error-action\"\n >{{ errorLinkText }}</span\n >\n } @else if (errorClick) {\n <span\n class=\"alert-action\"\n (click)=\"errorClick()\"\n (keydown.enter)=\"errorClick()\"\n data-testid=\"summary-area-error-text-action\"\n >{{ errorText }}</span\n >\n } @else {\n <span class=\"alert-text\" data-testid=\"summary-area-error-text-only\">{{ errorText }}</span>\n }\n </clr-alert-item>\n </clr-alert>\n </div>\n } @else if (hasWarning) {\n <div class=\"summary-area-alert\" data-testid=\"summary-area-warning-alert\">\n <clr-alert [clrAlertLightweight]=\"true\" [clrAlertType]=\"'warning'\" data-testid=\"summary-area-warning\">\n <clr-alert-item>\n @if (warningLinkText && warningClick) {\n <span class=\"alert-text\" data-testid=\"summary-area-warning-text\">{{ warningText }}</span>\n <span\n class=\"alert-action\"\n (click)=\"warningClick()\"\n (keydown.enter)=\"warningClick()\"\n data-testid=\"summary-area-warning-action\"\n >\n {{ warningLinkText }}\n </span>\n } @else if (warningClick) {\n <span\n class=\"alert-action\"\n (click)=\"warningClick()\"\n (keydown.enter)=\"warningClick()\"\n data-testid=\"summary-area-warning-text-action\"\n >{{ warningText }}</span\n >\n } @else {\n <span class=\"alert-text\" data-testid=\"summary-area-warning-text-only\">{{ warningText }}</span>\n }\n </clr-alert-item>\n </clr-alert>\n </div>\n }\n </div>\n </div>\n\n <div\n class=\"summary-area-panel summary-area-panel--grid\"\n data-testid=\"summary-area-grid-panel\"\n [class.is-active]=\"!isCollapsed() && !hasError && !hasWarning && !hasLoading\"\n [attr.aria-hidden]=\"isCollapsed() || hasError || hasWarning || hasLoading ? 'true' : 'false'\"\n [attr.inert]=\"isCollapsed() || hasError || hasWarning || hasLoading ? '' : null\"\n >\n <div class=\"summary-area-panel__body\">\n <div class=\"summary-area-container\">\n <div\n class=\"summary-grid\"\n [style.--columns]=\"currentColumns\"\n [style.--rows]=\"currentRows()\"\n data-testid=\"summary-area-grid\"\n >\n @for (item of visibleItems; track item) {\n <ng-container *ngTemplateOutlet=\"item.template\"></ng-container>\n }\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [".summary-area-container,.summary-area-alert{margin:0 24px 9px;max-width:100%;overflow-x:auto}.summary-grid{display:grid;grid-template-columns:repeat(var(--columns),minmax(0,320px));grid-template-rows:repeat(var(--rows),auto);grid-auto-flow:column;max-width:100%;column-gap:36px;row-gap:6px;padding:3px 0}.summary-item{max-width:320px;min-width:0;height:20px;overflow:visible;display:flex;flex-direction:column}clr-alert-item{display:flex;align-items:center;gap:.5rem;flex-wrap:nowrap}clr-alert-item .alert-text{flex:none;width:auto;white-space:nowrap;align-self:flex-start}clr-alert-item .alert-action{white-space:nowrap}.alert-action{color:var(--cds-alias-typography-link-color)!important;cursor:pointer}.alert-action:visited{color:var(--cds-alias-typography-link-color-visited)}.alert-action:hover,.alert-action:focus{color:var(--cds-alias-typography-link-color-hover)}clr-alert ::ng-deep>.alert-lightweight{padding-left:0;padding-right:0}.summary-area-panels{position:relative;height:0;opacity:0;transform-origin:top center;pointer-events:none;visibility:hidden;overflow:hidden;margin:0 0 9px;transition:height .3s cubic-bezier(.4,0,.2,1),opacity .4s ease-in-out,visibility .4s ease-in-out}.summary-area-panels.is-active{opacity:1;pointer-events:auto;visibility:visible;overflow:visible;transition:height .3s cubic-bezier(.4,0,.2,1),opacity .4s ease-in-out,visibility .4s ease-in-out}.summary-area-panels.loading-active{display:flex;align-items:center;justify-content:center;opacity:1;transition:opacity .4s ease-in-out}.summary-area-panel{transform-origin:top center;opacity:0;pointer-events:none;transition:opacity .4s ease-in-out;position:absolute;top:0;left:0;right:0}.summary-area-panel__body{will-change:opacity}.summary-area-panel.is-active{opacity:1;pointer-events:auto;position:relative;transition:opacity .4s ease-in-out}.summary-area-panel.is-active .summary-area-panel__body{overflow:visible}.summary-area-loading{display:flex;align-items:center;justify-content:center;gap:.75rem;margin:0 24px;padding:3px 0;opacity:0;transition:opacity 0s ease-in-out}.summary-area-loading.is-visible{opacity:1;transition:opacity .4s ease-in-out}.summary-area-loading .loading-text{color:var(--cds-alias-typography-color-300)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: ClarityModule }, { kind: "component", type: i2$
|
|
18452
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.22", type: ClrSummaryArea, isStandalone: true, selector: "clr-summary-area", inputs: { rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: false, transformFunction: null }, localStorageKey: { classPropertyName: "localStorageKey", publicName: "localStorageKey", isSignal: true, isRequired: false, transformFunction: null }, error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null }, warning: { classPropertyName: "warning", publicName: "warning", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "window:resize": "onResize()" } }, queries: [{ propertyName: "items", predicate: ClrSummaryItem, descendants: true }], viewQueries: [{ propertyName: "panelsRef", first: true, predicate: ["panelsRef"], descendants: true, static: true }], ngImport: i0, template: "<div\n #panelsRef\n class=\"summary-area-panels\"\n data-testid=\"summary-area-panels\"\n [class.is-active]=\"!isCollapsed()\"\n [class.loading-active]=\"hasLoading\"\n [style.height]=\"panelHeight\"\n>\n <div\n class=\"summary-area-panel summary-area-panel--state\"\n data-testid=\"summary-area-state-panel\"\n [class.is-active]=\"!isCollapsed() && (hasLoading || hasError || hasWarning)\"\n [class.is-error]=\"hasError\"\n [class.is-warning]=\"hasWarning\"\n [style.--rows]=\"currentRows()\"\n [attr.aria-hidden]=\"isCollapsed() || !(hasLoading || hasError || hasWarning) ? 'true' : 'false'\"\n [attr.inert]=\"isCollapsed() || !(hasLoading || hasError || hasWarning) ? '' : null\"\n >\n <div class=\"summary-area-panel__body\">\n <div\n class=\"summary-area-loading\"\n data-testid=\"summary-area-loading\"\n [class.is-visible]=\"loadingVisible\"\n [attr.aria-hidden]=\"!hasLoading\"\n [style.height]=\"loadingPanelHeight\"\n >\n <clr-spinner [clrMedium]=\"true\" data-testid=\"summary-area-loading-spinner\"></clr-spinner>\n <span class=\"loading-text\" data-testid=\"summary-area-loading-text\">{{ loadingText }}</span>\n </div>\n @if (hasError) {\n <div class=\"summary-area-alert\" data-testid=\"summary-area-error-alert\">\n <clr-alert [clrAlertLightweight]=\"true\" [clrAlertType]=\"'danger'\" data-testid=\"summary-area-error\">\n <clr-alert-item>\n @if (errorLinkText && errorClick) {\n <span class=\"alert-text\" data-testid=\"summary-area-error-text\">{{ errorText }}</span>\n <span\n class=\"alert-action\"\n (click)=\"errorClick()\"\n (keydown.enter)=\"errorClick()\"\n data-testid=\"summary-area-error-action\"\n >{{ errorLinkText }}</span\n >\n } @else if (errorClick) {\n <span\n class=\"alert-action\"\n (click)=\"errorClick()\"\n (keydown.enter)=\"errorClick()\"\n data-testid=\"summary-area-error-text-action\"\n >{{ errorText }}</span\n >\n } @else {\n <span class=\"alert-text\" data-testid=\"summary-area-error-text-only\">{{ errorText }}</span>\n }\n </clr-alert-item>\n </clr-alert>\n </div>\n } @else if (hasWarning) {\n <div class=\"summary-area-alert\" data-testid=\"summary-area-warning-alert\">\n <clr-alert [clrAlertLightweight]=\"true\" [clrAlertType]=\"'warning'\" data-testid=\"summary-area-warning\">\n <clr-alert-item>\n @if (warningLinkText && warningClick) {\n <span class=\"alert-text\" data-testid=\"summary-area-warning-text\">{{ warningText }}</span>\n <span\n class=\"alert-action\"\n (click)=\"warningClick()\"\n (keydown.enter)=\"warningClick()\"\n data-testid=\"summary-area-warning-action\"\n >\n {{ warningLinkText }}\n </span>\n } @else if (warningClick) {\n <span\n class=\"alert-action\"\n (click)=\"warningClick()\"\n (keydown.enter)=\"warningClick()\"\n data-testid=\"summary-area-warning-text-action\"\n >{{ warningText }}</span\n >\n } @else {\n <span class=\"alert-text\" data-testid=\"summary-area-warning-text-only\">{{ warningText }}</span>\n }\n </clr-alert-item>\n </clr-alert>\n </div>\n }\n </div>\n </div>\n\n <div\n class=\"summary-area-panel summary-area-panel--grid\"\n data-testid=\"summary-area-grid-panel\"\n [class.is-active]=\"!isCollapsed() && !hasError && !hasWarning && !hasLoading\"\n [attr.aria-hidden]=\"isCollapsed() || hasError || hasWarning || hasLoading ? 'true' : 'false'\"\n [attr.inert]=\"isCollapsed() || hasError || hasWarning || hasLoading ? '' : null\"\n >\n <div class=\"summary-area-panel__body\">\n <div class=\"summary-area-container\">\n <div\n class=\"summary-grid\"\n [style.--columns]=\"currentColumns\"\n [style.--rows]=\"currentRows()\"\n data-testid=\"summary-area-grid\"\n >\n @for (item of visibleItems; track item) {\n <ng-container *ngTemplateOutlet=\"item.template\"></ng-container>\n }\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [".summary-area-container,.summary-area-alert{margin:0 24px 9px;max-width:100%;overflow-x:auto}.summary-grid{display:grid;grid-template-columns:repeat(var(--columns),minmax(0,320px));grid-template-rows:repeat(var(--rows),auto);grid-auto-flow:column;max-width:100%;column-gap:36px;row-gap:6px;padding:3px 0}.summary-item{max-width:320px;min-width:0;height:20px;overflow:visible;display:flex;flex-direction:column}clr-alert-item{display:flex;align-items:center;gap:.5rem;flex-wrap:nowrap}clr-alert-item .alert-text{flex:none;width:auto;white-space:nowrap;align-self:flex-start}clr-alert-item .alert-action{white-space:nowrap}.alert-action{color:var(--cds-alias-typography-link-color)!important;cursor:pointer}.alert-action:visited{color:var(--cds-alias-typography-link-color-visited)}.alert-action:hover,.alert-action:focus{color:var(--cds-alias-typography-link-color-hover)}clr-alert ::ng-deep>.alert-lightweight{padding-left:0;padding-right:0}.summary-area-panels{position:relative;height:0;opacity:0;transform-origin:top center;pointer-events:none;visibility:hidden;overflow:hidden;margin:0 0 9px;transition:height .3s cubic-bezier(.4,0,.2,1),opacity .4s ease-in-out,visibility .4s ease-in-out}.summary-area-panels.is-active{opacity:1;pointer-events:auto;visibility:visible;overflow:visible;transition:height .3s cubic-bezier(.4,0,.2,1),opacity .4s ease-in-out,visibility .4s ease-in-out}.summary-area-panels.loading-active{display:flex;align-items:center;justify-content:center;opacity:1;transition:opacity .4s ease-in-out}.summary-area-panel{transform-origin:top center;opacity:0;pointer-events:none;transition:opacity .4s ease-in-out;position:absolute;top:0;left:0;right:0}.summary-area-panel__body{will-change:opacity}.summary-area-panel.is-active{opacity:1;pointer-events:auto;position:relative;transition:opacity .4s ease-in-out}.summary-area-panel.is-active .summary-area-panel__body{overflow:visible}.summary-area-loading{display:flex;align-items:center;justify-content:center;gap:.75rem;margin:0 24px;padding:3px 0;opacity:0;transition:opacity 0s ease-in-out}.summary-area-loading.is-visible{opacity:1;transition:opacity .4s ease-in-out}.summary-area-loading .loading-text{color:var(--cds-alias-typography-color-300)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: ClarityModule }, { kind: "component", type: i2$5.ClrAlert, selector: "clr-alert", inputs: ["clrAlertSizeSmall", "clrAlertClosable", "clrAlertAppLevel", "clrCloseButtonAriaLabel", "clrAlertLightweight", "clrAlertType", "clrAlertIcon", "clrAlertClosed"], outputs: ["clrAlertClosedChange"] }, { kind: "component", type: i2$5.ClrAlertItem, selector: "clr-alert-item" }, { kind: "directive", type: i2$5.ClrAlertText, selector: ".alert-text" }, { kind: "component", type: i2$6.ClrSpinner, selector: "clr-spinner", inputs: ["clrInline", "clrInverse", "clrSmall", "clrMedium"] }] }); }
|
|
18151
18453
|
}
|
|
18152
18454
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: ClrSummaryArea, decorators: [{
|
|
18153
18455
|
type: Component,
|
|
@@ -18234,5 +18536,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImpo
|
|
|
18234
18536
|
* Generated bundle index. Do not edit.
|
|
18235
18537
|
*/
|
|
18236
18538
|
|
|
18237
|
-
export { ACShape, AcceptanceDateShape, AcceptedBrands, AccessoryPartsShape, AudiBrandShape, AwardWinnerPremiumShape, BIG_ENDIAN, BlocksGroupForwardShape, BundleForwardShape, BusinessCustomersCommercialShape, BusinessCustomersPrivateShape, BusinessPartnerWithCar, CLR_BLANK_OPTION, CONTENT_PROVIDER, CalculatorForwardShape, CaliforniaServiceShape, CampaignOutdatedShape, CampaignShape, CarOffSite, CarOnSite, CircleFilled, CircleHalfFilled, CircleQuarterFilled, CircleThreeQuartersFilled, ClrActionPanel, ClrActionPanelContainer, ClrActionPanelContainerContent, ClrActionPanelContainerFooter, ClrActionPanelModule, ClrActiveNotification, ClrAddonsLabel, ClrAddonsModule, ClrAutocompleteOff, ClrAutocompleteOffModule, ClrBackButton, ClrBackButtonModule, ClrBrandAvatar, ClrBrandAvatarModule, ClrBreadcrumb, ClrBreadcrumbModule, ClrBreadcrumbService, ClrCollapseExpandSection, ClrCollapseExpandSectionModule, ClrContentPanel, ClrContentPanelContainer, ClrContentPanelContainerContent, ClrContentPanelContainerFooter, ClrContentPanelModule, ClrContentRef, ClrControlEnterSubmitDirective, ClrCopyToClipboard, ClrDataListPredefinedValidatorDirective, ClrDataListValidatorModule, ClrDataListValidators, ClrDatagridColumnReorderModule, ClrDatagridStatePersistenceModule, ClrDateFilterComponent, ClrDateFilterModule, ClrDateTimeContainer, ClrDateTimeModule, ClrDaterangeMaxValidator, ClrDaterangeMinValidator, ClrDaterangeOrderValidator, ClrDaterangeRequiredValidator, ClrDaterangepickerContainerComponent, ClrDaterangepickerDirective, ClrDaterangepickerModule, ClrDotPager, ClrDotPagerModule, ClrDropdownOverflowDirective, ClrDropdownOverflowModule, ClrEnumFilterComponent, ClrEnumFilterModule, ClrExportDatagridButtonModule, ClrFlowBar, ClrFlowBarModule, ClrFocusFirstInvalidFieldDirective, ClrFormModule, ClrGenericQuickList, ClrGenericQuickListModule, ClrHistory, ClrHistoryModule, ClrHistoryPinned, ClrHistoryService, ClrIconAvatar, ClrIconAvatarModule, ClrIfDaterangeErrorDirective, ClrIfWarning, ClrIfWarningModule, ClrImageCarousel, ClrImageGallery, ClrImageGalleryModule, ClrKeyboardNavAltMnemonicDirective, ClrKeyboardNavCtrlArrowDirective, ClrLetterAvatar, ClrLetterAvatarModule, ClrLocationBarModule, ClrMainNavGroup, ClrMainNavGroupItem, ClrMainNavGroupModule, ClrMaxNumeric, ClrMinNumeric, ClrMultilingualInput, ClrMultilingualInputValidators, ClrMultilingualModule, ClrMultilingualSelector, ClrMultilingualTextarea, ClrNotification, ClrNotificationModule, ClrNotificationRef, ClrNotificationService, ClrNumericField, ClrNumericFieldModule, ClrNumericFieldValidators, ClrPagedSearchResultList, ClrPagedSearchResultListModule, ClrPager, ClrPagerModule, ClrProgressSpinnerComponent, ClrProgressSpinnerModule, ClrQuickList, ClrQuickListModule, ClrReadonlyDirective, ClrReadonlyDirectiveModule, ClrRequiredAllMultilang, ClrRequiredOneMultilang, ClrSearchField, ClrSearchFieldModule, ClrSummaryArea, ClrSummaryAreaStateService, ClrSummaryAreaToggle, ClrSummaryItem, ClrSummaryItemValue, ClrTimeInput, ClrTreetable, ClrTreetableActionOverflow, ClrTreetableCell, ClrTreetableColumn, ClrTreetableFilter, ClrTreetableFooter, ClrTreetableHideableColumn, ClrTreetableModule, ClrTreetablePlaceholder, ClrTreetableRow, ClrTreetableSortOrder, ClrTreetableStringFilter, ClrTreetableTreeNode, ClrViewEditSection, ClrViewEditSectionModule, ColumnHiddenStatePersistenceDirective, CompletedByDateShape, CupraBrandShape, Customer, CustomerVip, CustomerVipCollection, CustomerWaiting, CustomerWaitingCollection, DATE, DELIMITER_REGEX, DWABrandShape, DatagridColumnReorderDirective, DatagridFieldDirective, DayModel, DeliveryDate, DieselShape, DollarBillForwardShape, DollarBillPartialShape, DynamicCellContentComponent, EnergyShape, ExportDatagridButtonComponent, ExportDatagridService, ExportTypeEnum, ExternalPartForwardShape, FirstRegistrationDate, GasCarsServiceShape, GasShape, HISTORY_NOTIFICATION_URL_PROVIDER, HISTORY_PROVIDER, HISTORY_TOKEN, HistoryProvider, InternalPartForwardShape, InvoiceReadyShape, InvoiceRecipient, InvoiceShape, ItemsForwardShape, ItemsReceiveShape, LITTLE_ENDIAN, LITTLE_ENDIAN_REGEX, LocationBarComponent, LocationBarContentProvider, LocationBarNode, LogoCommissionModule, LogoCommissionModuleFavIcon, LogoCommissionModuleNegative, LogoCommissionModuleNegativeFavIcon, LogoCostApproval, LogoCostApprovalFavIcon, LogoCostApprovalNegative, LogoCostApprovalNegativeFavIcon, LogoCostControlling, LogoCostControllingFavIcon, LogoCostControllingNegative, LogoCostControllingNegativeFavIcon, LogoDigitalServiceReception, LogoDigitalServiceReceptionFavIcon, LogoDigitalServiceReceptionNegative, LogoDigitalServiceReceptionNegativeFavIcon, LogoDocFlow, LogoDocFlowFavIcon, LogoDocFlowNegative, LogoDocFlowNegativeFavIcon, LogoDocScan, LogoDocScanFavIcon, LogoDocScanNegative, LogoDocScanNegativeFavIcon, LogoDocStore, LogoDocStoreFavIcon, LogoDocStoreNegative, LogoDocStoreNegativeFavIcon, LogoEBilling, LogoEBillingFavIcon, LogoEBillingNegative, LogoEBillingNegativeFavIcon, LogoEPayment, LogoEPaymentFavIcon, LogoEPaymentNegative, LogoEPaymentNegativeFavIcon, LogoMobilityPlanner, LogoMobilityPlannerFavIcon, LogoMobilityPlannerNegative, LogoMobilityPlannerNegativeFavIcon, LogoPartsMobile, LogoPartsMobileFavIcon, LogoPartsMobileNegative, LogoPartsMobileNegativeFavIcon, LogoSBO, LogoSBOFavIcon, LogoSBONegative, LogoSBONegativeFavIcon, LogoServiceCube, LogoServiceCubeFavIcon, LogoServiceCubeNegative, LogoServiceCubeNegativeFavIcon, LogoWCP, LogoWCPFavIcon, LogoWCPNegative, LogoWCPNegativeFavIcon, LogoWorkshopOrderTracker, LogoWorkshopOrderTrackerFavIcon, LogoWorkshopOrderTrackerNegative, LogoWorkshopOrderTrackerNegativeFavIcon, MIDDLE_ENDIAN, MIDDLE_ENDIAN_REGEX, MONTH, Mechanic, NewCarUtilityVehicleShape, NodeId, Number0, Number1, Number10, Number11, Number12, Number13, Number14, Number15, Number16, Number17, Number18, Number19, Number2, Number20, Number3, Number4, Number5, Number6, Number7, Number8, Number9, OrderShape, OrderStatusShape, PaintMaterialForwardShape, PaintMaterialShape, ParkingLocation, PartAvailabilityInfoShape, PartAvailabilityNoShape, PartAvailabilityUnknownShape, PartAvailabilityWarningShape, PartAvailabilityYesShape, PartIdenticalPredecessorShape, PartIdenticalShape, PartIdenticalSuccessorShape, PartIdenticalSuccpredecessorShape, PartNonStockForwardShape, PartPredecessorShape, PartSuccessorPredecessorShape, PartSuccessorShape, PartsChangelocation, PartsForwardShape, PartsInventory, PartsNonStockShape, PartsPicking, PartsPickingPlus, PartsReceiving, PartsShape, PlusServiceShape, PorscheBrandShape, PriceTypeSwitchShape, RepeatRepairCollection, RepeatRepairShape, ReplacementVehicleCollection, ReplacementVehicleShape, ReturnDateShape, SEPARATOR_TEXT_DEFAULT, SeatBrandShape, ServiceAdvisor, SkodaBrandShape, SortStateService, StatePersistenceKeyDirective, TRANSLATIONS, TaskAndAppointment, TextForward, TimeModel, TopcardShape, TouaregServiceShape, TreetableCellRenderer, TreetableDataStateService, TreetableHeaderRenderer, TreetableItemsDirective, TreetableMainRenderer, TreetableRowRenderer, USER_INPUT_REGEX, VWBrandShape, VWNBrandShape, VWShape, VehicleConversionShape, VinShape, VsfSearchShape, VsfSearchShape48, WCPShape, WrenchForward, YEAR, acceleration, accelerationIcon, acceptanceDateIcon, accessories, accessoriesIcon, accessoryPartsIcon, adblueAppIcon, adblue_app, add, addIcon, airConditionerIcon, air_conditioning, alert, alertFilledAppIcon, alertIcon, alertNotificationFilledAppIcon, alert_filled_app, alert_notification_filled_app, allIcons, ambientLightAppIcon, ambient_light_app, amplifier, amplifierIcon, appConnectAppIcon, app_connect_app, archive, archiveIcon, arrowDownIcon, arrowLeftAlignedAppIcon, arrowLeftIcon, arrowRightIcon, arrowSliderAppIcon, arrowUpIcon, arrow_down, arrow_left, arrow_left_aligned_app, arrow_right, arrow_slider_app, arrow_up, attachment, attachmentIcon, audiBrandIcon, authentPlugChargeAppIcon, authentQrAppIcon, authentRfidAppIcon, authentTouchidAppIcon, authent_plug_charge_app, authent_qr_app, authent_rfid_app, authent_touch_id_app, automaticTempAppIcon, automatic_temp_app, awardWinnerPremiumIcon, award_winner_premium, back, backIcon, battery, batteryIcon, batterySocChargingAppIcon, batterySocDepartureAppIcon, batterySocDestinationAppIcon, battery_soc_charging_app, battery_soc_departure_app, battery_soc_destination_app, bin, binIcon, blocksGroupForwardIcon, bluetooth, bluetoothIcon, bookmark, bookmarkFilledIcon, bookmarkIcon, bookmark_filled, brakeAppIcon, brake_app, brochure, brochureIcon, bulletpointAppIcon, bulletpoint_app, bundleForwardIcon, businessCustomersCommercialIcon, businessCustomersPrivateIcon, businessPartnerWithCarIcon, business_customers_commercial, business_customers_private, calc, calcIcon, calculatorForwardIcon, calendar, calendarCustomIcon, californiaServiceIcon, californiaSpecialistIcon, california_specialist, cameraScanIcon, camera_scan, campaignIcon, campaignOutdatedIcon, carDocumentsIcon, carErrorAppIcon, carInsuranceIcon, carOffSite, carOnSite, carPickupServiceIcon, carPlusIcon, carSettingsIcon, carVerifiedAppIcon, carWashIcon, carWheelAppIcon, car_documents, car_error_app, car_insurance, car_pickup_service, car_plus, car_settings, car_verified_app, car_wheel_app, carwash, certifiedRepairIcon, certifiedRetailerIcon, certified_repair, certified_retailer, challengeAppIcon, challenge_app, charging, chargingIcon, chargingPduAppIcon, chargingStationIcon, chargingTarifOverviewAppIcon, charging_pdu_app, charging_station, charging_tarif_overview_app, chat, chatAppIcon, chatIcon, chat_app, checkboxCheckedAppIcon, checkboxCheckedIcon, checkboxUncheckedAppIcon, checkboxUncheckedIcon, checkbox_checked, checkbox_checked_app, checkbox_unchecked, checkbox_unchecked_app, checkmark, checkmarkAppIcon, checkmarkFilledAppIcon, checkmarkIcon, checkmark_app, checkmark_filled_app, chevronDownIcon, chevronLeftAlignedappIcon, chevronLeftIcon, chevronRightAlignedappIcon, chevronRightIcon, chevronSmallLeftAlignedappIcon, chevronSmallRightAlignedappIcon, chevronUpIcon, chevron_down, chevron_left, chevron_left_alignedapp, chevron_right, chevron_right_alignedapp, chevron_small_left_alignedapp, chevron_small_right_alignedapp, chevron_up, circleFilledIcon, circleHalfFilledIcon, circleQuarterFilledIcon, circleThreeQuartersFilledIcon, city, cityIcon, clearAppIcon, clearRightAlignedappIcon, clear_app, clear_right_alignedapp, clock, clockIcon, close, closeAppIcon, closeCircleIcon, closeIcon, closeLeftAlignedappIcon, closeRightAlignedappIcon, close_app, close_circle, close_left_alignedapp, close_right_alignedapp, clrIconSVG, coffeeFilledAppIcon, coffee_filled_app, compassAppIcon, compass_app, completedByDateIcon, configuratorCommercialIcon, configuratorPrivateIcon, configurator_commercial, configurator_private, construction, constructionIcon, consumptionFuelFilledAppIcon, consumptionIcon, consumption_fuel, consumption_fuel_filled_app, contact, contactDealerFilledAppIcon, contactDealerIcon, contactIcon, contact_dealer, contact_dealer_filled_app, countryRoadIcon, country_road, craft, craftIcon, cupraBrandIcon, customerIcon, customerVipIcon, customerWaitingIcon, customersCenterIcon, customers_center, dataCopyAppIcon, dataExpiredIcon, dataFilledIcon, dataInputIcon, dataPlugAppIcon, dataSearchIcon, dataTimeExtensionIcon, data_copy_app, data_expired, data_filled, data_input, data_plug_app, data_search, data_time_extension, defaultSummaryAreaCollapsedKey, defogDefrostAutoAppIcon, defogDefrostIcon, defog_defrost, defog_defrost_auto_app, deliveryDateIcon, destinationAppIcon, destination_app, dieselIcon, direction, directionIcon, dischargingAppIcon, discharging_app, discountAppIcon, discount_app, discoveryAppIcon, discovery_app, dollarBillForwardIcon, dollarBillPartialIcon, download, downloadCustomIcon, dragIndicatorIcon, drag_indicator, driversAssistanceIcon, drivers_assistance, dropFilledAppIcon, drop_filled_app, dwaBrandIcon, eco, ecoIcon, edit, editIcon, editSmallRightAlignedAppIcon, edit_small_right_aligned_app, efficiency, efficiencyIcon, electricCarsIcon, electricCarsServiceIcon, electric_cars, electric_cars_service, electricity, electricityFilledAppIcon, electricityIcon, electricity_filled_app, emergency, emergencyIcon, emission, emissionIcon, energyIcon, engine, engineIcon, entertainment, entertainmentIcon, escapeHtml, escapeRegex, exportAppIcon, export_app, expressServiceIcon, express_service, exterior, exterior360Icon, exteriorIcon, exterior_360, externalPartForwardIcon, faq, faqIcon, fastForwardIcon, fast_forward, fax, faxIcon, filter, filterIcon, findACarIcon, findADealerIcon, find_a_car, find_a_dealer, firstRegistrationDateIcon, fleetServiceCommercialIcon, fleetServicePrivateIcon, fleet_service_commercial, fleet_service_private, folderFilledAppIcon, folder_filled_app, foodFilledAppIcon, food_filled_app, formatNumber, fullscreenEnterIcon, fullscreenExitIcon, fullscreen_enter, fullscreen_exit, gallery, galleryIcon, garageAppIcon, garage_app, gasAppIcon, gasCarsServiceIcon, gasIcon, gas_app, glassDamageAppIcon, glass_damage_app, gte, gteIcon, heart, heartFilledAppIcon, heartIcon, heart_filled_app, heightAppIcon, height_app, highwayRoadIcon, highway_road, history, historyIcon, homeAppIcon, homeEnergyAppIcon, homeFilledAppIcon, home_app, home_energy_app, home_filled_app, hornAppIcon, hornFilledAppIcon, horn_app, horn_filled_app, hybrid, hybridIcon, immediateChargingAppIcon, immediate_charging_app, info, infoFilledIcon, infoIcon, info_filled, inputHideIcon, inputShowIcon, input_hide, input_show, interior, interior360Icon, interiorIcon, interior_360, internalPartForwardIcon, internet, internetIcon, invitationAppIcon, invitation_app, invoiceIcon, invoiceReadyIcon, invoiceRecipientIcon, itemsForwardIcon, itemsRecieveIcon, jobportal, jobportalIcon, keyAppIcon, keyCardAppIcon, keyDigitalAppIcon, key_app, key_card_app, key_digital_app, keyboardAppIcon, keyboard_app, layerCollapseAppIcon, layerExpandAppIcon, layer_collapse_app, layer_expand_app, layersAppIcon, layers_app, legalTermsAndConditionsAppIcon, legal_terms_and_conditions_app, licencePlateAppIcon, licence_plate_app, lightAssistappIcon, light_assistapp, lightingAppIcon, lighting_app, linkExternAppIcon, link_extern_app, list, listIcon, loadingVolumeIcon, loading_volume, localBusinessIcon, local_business, locate, locateIcon, lock, lockIcon, lockOpenIcon, lock_open, login, loginIcon, logistic, logisticIcon, logoCommissionModuleFavIcon, logoCommissionModuleIcon, logoCommissionModuleNegativeFavIcon, logoCommissionModuleNegativeIcon, logoCostApprovalFavIcon, logoCostApprovalIcon, logoCostApprovalNegativeFavIcon, logoCostApprovalNegativeIcon, logoCrossControllingFavIcon, logoCrossControllingIcon, logoCrossControllingNegativeFavIcon, logoCrossControllingNegativeIcon, logoDigitalServiceReceptionFavIcon, logoDigitalServiceReceptionIcon, logoDigitalServiceReceptionNegativeFavIcon, logoDigitalServiceReceptionNegativeIcon, logoDocFlowFavIcon, logoDocFlowIcon, logoDocFlowNegativeFavIcon, logoDocFlowNegativeIcon, logoDocScanFavIcon, logoDocScanIcon, logoDocScanNegativeFavIcon, logoDocScanNegativeIcon, logoDocStoreFavIcon, logoDocStoreIcon, logoDocStoreNegativeFavIcon, logoDocStoreNegativeIcon, logoEBillingFavIcon, logoEBillingIcon, logoEBillingNegativeFavIcon, logoEBillingNegativeIcon, logoEPaymentFavIcon, logoEPaymentIcon, logoEPaymentNegativeFavIcon, logoEPaymentNegativeIcon, logoMobilityPlannerFavIcon, logoMobilityPlannerIcon, logoMobilityPlannerNegativeFavIcon, logoMobilityPlannerNegativeIcon, logoPartsMobileFavIcon, logoPartsMobileIcon, logoPartsMobileNegativeFavIcon, logoPartsMobileNegativeIcon, logoSBOFavIcon, logoSBOIcon, logoSBONegativeFavIcon, logoSBONegativeIcon, logoServiceCubeFavIcon, logoServiceCubeIcon, logoServiceCubeNegativeFavIcon, logoServiceCubeNegativeIcon, logoWCPFavIcon, logoWCPIcon, logoWCPNegativeFavIcon, logoWCPNegativeIcon, logoWorkshopOrderTrackerFavIcon, logoWorkshopOrderTrackerIcon, logoWorkshopOrderTrackerNegativeFavIcon, logoWorkshopOrderTrackerNegativeIcon, logout, logoutIcon, magnifier, magnifierIcon, magnifierMinusIcon, magnifierPlusIcon, magnifier_minus, magnifier_plus, mail, mailIcon, mailResendAppIcon, mail_resend_app, manual, manualIcon, map, mapIcon, mapToInternalTree, mechanicIcon, media, mediaIcon, menu, menuAppAppIcon, menuIcon, menu_app_app, microphoneAppIcon, microphone_app, mobile, mobileIcon, moreAppIcon, moreAppbarAppIcon, more_app, more_appbar_app, mot, motIcon, motability, motabilityIcon, navigate, navigateFilledAppIcon, navigateIcon, navigate_filled_app, newCarCommercialIcon, newCarPrivateFilledAppIcon, newCarPrivateIcon, newCarUtilityVehicleIcon, new_car_commercial, new_car_private, new_car_private_filled_app, nightServiceIcon, night_service, notification, notificationFilledIcon, notificationIcon, notification_filled, number0Icon, number10Icon, number11Icon, number12Icon, number13Icon, number14Icon, number15Icon, number16Icon, number17Icon, number18Icon, number19Icon, number1Icon, number20Icon, number2Icon, number3Icon, number4Icon, number5Icon, number6Icon, number7Icon, number8Icon, number9Icon, offers, offersFilledAppIcon, offersIcon, offers_filled_app, officeAppIcon, officeFilledAppIcon, office_app, office_filled_app, oilLevelIcon, oilLevelWarningIcon, oilTemperatureAppIcon, oil_level, oil_level_warning, oil_temperature_app, onCallDutyIcon, on_call_duty, openSatIcon, open_sat, orderIcon, orderStatusIcon, paintMaterialForwardIcon, paintMaterialIcon, paintShopIcon, paint_shop, paragraphAppIcon, paragraph_app, parkHeaterAppIcon, park_heater_app, parking, parkingFilledAppIcon, parkingGarageAppIcon, parkingIcon, parkingLocationIcon, parkingRouteAppIcon, parkingValetAppIcon, parking_filled_app, parking_garage_app, parking_route_app, parking_valet_app, partAvailabilityInfoIcon, partAvailabilityNoIcon, partAvailabilityUnknownIcon, partAvailabilityWarningIcon, partAvailabilityYesIcon, partIdenticalIcon, partIdenticalPredecessorIcon, partIdenticalSuccessorIcon, partIdenticalSuccpredecessorIcon, partPredecessorIcon, partSuccessorIcon, partSuccessorPredecessorIcon, partsChangelocationIcon, partsForwardIcon, partsIcon, partsInventoryIcon, partsNonStockForwardIcon, partsNonStockIcon, partsPickingIcon, partsPickingPlusIcon, partsReceivingIcon, pause, pauseIcon, payload, payloadIcon, paymentAppIcon, paymentCashAppIcon, paymentChargingCardAppIcon, paymentCreditcardAppIcon, paymentMachineAppIcon, payment_app, payment_cash_app, payment_charging_card_app, payment_creditcard_app, payment_machine_app, performance, performanceIcon, petrol, petrolIcon, phone, phoneIcon, pin, pinFilledAppIcon, pinGenericFilledAppIcon, pinIcon, pin_filled_app, pin_generic_filled_app, play, playIcon, plugCcsAppIcon, plugChademoAppIcon, plugChargeAppIcon, plugGenericAppIcon, plugSchukoAppIcon, plugType1AppIcon, plugType2AppIcon, plug_ccs_app, plug_chademo_app, plug_charge_app, plug_generic_app, plug_schuko_app, plug_type1_app, plug_type2_app, plusServiceIcon, porscheBrandIcon, power, powerIcon, powerTrainIcon, powertrain, preHeaterAppIcon, pre_heater_app, preciseLaneNavigationAppIcon, precise_lane_navigation_app, presentAppIcon, present_app, priceTypeSwitchIcon, printer, printerIcon, privacyAppIcon, privacy_app, profile, profileIcon, profileRegisterAppIcon, profileVerifiedIcon, profile_register_app, profile_verified, publicServiceIcon, publicTransportAppIcon, public_service, public_transport_app, qualifiedWorkshopIcon, qualified_workshop, questionnaireAppIcon, questionnaire_app, radio, radioButtonInselectedIcon, radioButtonSelectedForDefIcon, radioButtonSelectedIcon, radioIcon, radio_button_inselected, radio_button_selected, radio_button_selected_for_development, range, rangeIcon, reload, reloadIcon, remove, removeIcon, repeat, repeatIcon, repeatRepairIcon, replacementVehicleIcon, returnDateIcon, rewind, rewindIcon, roadsideAssistanceIcon, roadside_assistance, route, routeArrowAppIcon, routeIcon, route_arrow_app, routesHistoryAppIcon, routes_history_app, rss, rssIcon, safety, safetyIcon, save, saveAppIcon, saveIcon, save_app, seat, seatAirIcon, seatBrandIcon, seatIcon, seat_air, secretTipAppIcon, secretTipFilledAppIcon, secret_tip_app, secret_tip_filled_app, selected, selectedIcon, selectedPartnerNetworkAppIcon, selected_partner_network_app, sendToCarAppIcon, send_to_car_app, service, serviceAdvisorIcon, serviceBellIcon, serviceFilledAppIcon, serviceIcon, service_bell, service_filled_app, settings, settingsIcon, shareAndroidIcon, shareIosIcon, share_android, share_ios, shoppingCartFilledAppIcon, shoppingCartIcon, shopping_cart, shopping_cart_filled_app, shuffle, shuffleIcon, size, sizeIcon, skillAppIcon, skill_app, skipBackwardIcon, skipForwardIcon, skip_backward, skip_forward, skodaBrandIcon, softwareDownloadAppIcon, software_download_app, sortingAppIcon, sorting_app, sound, soundIcon, sparkles, sparklesIcon, standardEquipmentIcon, standard_equipment, starFilledIcon, starOutlineIcon, star_filled, star_outline, statisticAppIcon, statistic_app, stockLocatorCommercialIcon, stockLocatorPrivateIcon, stock_locator_commercial, stock_locator_private, stop, stopIcon, strip, switchPositionAppIcon, switch_position_app, syncAppIcon, sync_app, taskAndAppointmentIcon, taxiDealerIcon, taxi_dealer, technicalSpecificationIcon, technical_specification, temperatureAppIcon, temperature_app, testDriveIcon, test_drive, textForwardIcon, thumbsdownAppIcon, thumbsdownFilledAppIcon, thumbsdown_app, thumbsdown_filled_app, thumbsupAppIcon, thumbsupFilledAppIcon, thumbsup_app, thumbsup_filled_app, timeClimatisationAppIcon, timePreferredAppIcon, time_climatisation_app, time_preferred_app, timer, timerIcon, topcardIcon, touaregServiceIcon, transcriptDownloadIcon, transcript_download, transmissionAutomaticIcon, transmissionManualIcon, transmission_automatic, transmission_manual, tripAppIcon, tripLongAppIcon, tripPartedAppIcon, tripShortAppIcon, trip_app, trip_long_app, trip_parted_app, trip_short_app, turnSignalsIcon, turn_signals, unselected, unselectedIcon, updateRefreshAppIcon, update_refresh_app, upload, uploadAppIcon, uploadCustomIcon, upload_app, usedCarCommercialIcon, usedCarPrivateIcon, used_car_commercial, used_car_private, vehicleAmarokIcon, vehicleCaddyIcon, vehicleConversionIcon, vehicleCrafterIcon, vehicleHightIcon, vehicleIdBuzzIcon, vehicleMultivanIcon, vehicleTransporterIcon, vehicle_amarok, vehicle_caddy, vehicle_crafter, vehicle_hight, vehicle_idbuzz, vehicle_multivan, vehicle_transporter, videoChatIcon, video_chat, view360Icon, view_360, vinIcon, virtualRealityIcon, virtual_reality, voiceMessageAppIcon, voice_message_app, volkswagenAppIcon, volkswagenIcon, volkswagen_app, volumeMaximumIcon, volumeMediumIcon, volumeMuteIcon, volume_maximum, volume_medium, volume_mute, vsfSearch48Icon, vsfSearchIcon, vwBrandIcon, vwConnectLicenseAppIcon, vw_connect_license_app, vwnBrandIcon, walkingAppIcon, walkingFilledAppIcon, walking_app, walking_filled_app, wallbox, wallboxIcon, wcAppIcon, wc_app, wcpIcon, weAssistAppIcon, weChargeAppIcon, weDeliverAppIcon, weExperienceAppIcon, weParkAppIcon, weUpgradeAppIcon, we_assist_app, we_charge_app, we_deliver_app, we_experience_app, we_park_app, we_upgrade_app, weatherSunAppIcon, weather_sun_app, wheelToWheelIcon, wheel_to_wheel, windscreenWashIcon, windscreen_wash, wlanHotspotIcon, wlan_hotspot, wrenchForwardIcon };
|
|
18539
|
+
export { ACShape, AcceptanceDateShape, AcceptedBrands, AccessoryPartsShape, AudiBrandShape, AwardWinnerPremiumShape, BIG_ENDIAN, BlocksGroupForwardShape, BundleForwardShape, BusinessCustomersCommercialShape, BusinessCustomersPrivateShape, BusinessPartnerWithCar, CLR_BLANK_OPTION, CONTENT_PROVIDER, CalculatorForwardShape, CaliforniaServiceShape, CampaignOutdatedShape, CampaignShape, CarOffSite, CarOnSite, CircleFilled, CircleHalfFilled, CircleQuarterFilled, CircleThreeQuartersFilled, ClrActionPanel, ClrActionPanelContainer, ClrActionPanelContainerContent, ClrActionPanelContainerFooter, ClrActionPanelModule, ClrActiveNotification, ClrAddonsLabel, ClrAddonsModule, ClrAutocompleteOff, ClrAutocompleteOffModule, ClrBackButton, ClrBackButtonModule, ClrBrandAvatar, ClrBrandAvatarModule, ClrBreadcrumb, ClrBreadcrumbModule, ClrBreadcrumbService, ClrCollapseExpandSection, ClrCollapseExpandSectionModule, ClrContentPanel, ClrContentPanelContainer, ClrContentPanelContainerContent, ClrContentPanelContainerFooter, ClrContentPanelModule, ClrContentRef, ClrControlEnterSubmitDirective, ClrCopyToClipboard, ClrDataListPredefinedValidatorDirective, ClrDataListValidatorModule, ClrDataListValidators, ClrDatagridColumnReorderModule, ClrDatagridStatePersistenceModule, ClrDateFilterComponent, ClrDateFilterModule, ClrDateTimeContainer, ClrDateTimeModule, ClrDaterangeMaxValidator, ClrDaterangeMinValidator, ClrDaterangeOrderValidator, ClrDaterangeRequiredValidator, ClrDaterangepickerContainerComponent, ClrDaterangepickerDirective, ClrDaterangepickerModule, ClrDotPager, ClrDotPagerModule, ClrDropdownOverflowDirective, ClrDropdownOverflowModule, ClrEnumFilterComponent, ClrEnumFilterModule, ClrExportDatagridButtonModule, ClrFlowBar, ClrFlowBarModule, ClrFocusFirstInvalidFieldDirective, ClrFormModule, ClrGenericQuickList, ClrGenericQuickListModule, ClrHistory, ClrHistoryModule, ClrHistoryPinned, ClrHistoryService, ClrIconAvatar, ClrIconAvatarModule, ClrIfDaterangeErrorDirective, ClrIfWarning, ClrIfWarningModule, ClrImageCarousel, ClrImageGallery, ClrImageGalleryModule, ClrKeyboardNavAltMnemonicDirective, ClrKeyboardNavCtrlArrowDirective, ClrLetterAvatar, ClrLetterAvatarModule, ClrLocationBarModule, ClrMainNavGroup, ClrMainNavGroupItem, ClrMainNavGroupModule, ClrMaxNumeric, ClrMinNumeric, ClrMultilingualInput, ClrMultilingualInputValidators, ClrMultilingualModule, ClrMultilingualSelector, ClrMultilingualTextarea, ClrNotification, ClrNotificationModule, ClrNotificationRef, ClrNotificationService, ClrNumericField, ClrNumericFieldModule, ClrNumericFieldValidators, ClrPagedSearchResultList, ClrPagedSearchResultListModule, ClrPager, ClrPagerModule, ClrProgressSpinnerComponent, ClrProgressSpinnerModule, ClrQuickList, ClrQuickListModule, ClrReadonlyDirective, ClrReadonlyDirectiveModule, ClrRequiredAllMultilang, ClrRequiredOneMultilang, ClrSearchField, ClrSearchFieldModule, ClrSummaryArea, ClrSummaryAreaStateService, ClrSummaryAreaToggle, ClrSummaryItem, ClrSummaryItemValue, ClrTimeInput, ClrTreetable, ClrTreetableActionOverflow, ClrTreetableCell, ClrTreetableColumn, ClrTreetableFilter, ClrTreetableFooter, ClrTreetableHideableColumn, ClrTreetableModule, ClrTreetablePlaceholder, ClrTreetableRow, ClrTreetableSortOrder, ClrTreetableStringFilter, ClrTreetableTreeNode, ClrViewEditSection, ClrViewEditSectionModule, ColumnHiddenStatePersistenceDirective, CompletedByDateShape, CupraBrandShape, Customer, CustomerVip, CustomerVipCollection, CustomerWaiting, CustomerWaitingCollection, DATE, DELIMITER_REGEX, DWABrandShape, DatagridColumnReorderDirective, DatagridFieldDirective, DayModel, DeliveryDate, DieselShape, DollarBillForwardShape, DollarBillPartialShape, DynamicCellContentComponent, EnergyShape, ExportDatagridButtonComponent, ExportDatagridService, ExportExcelService, ExportTreetableButtonComponent, ExportTypeEnum, ExternalPartForwardShape, FirstRegistrationDate, GasCarsServiceShape, GasShape, HISTORY_NOTIFICATION_URL_PROVIDER, HISTORY_PROVIDER, HISTORY_TOKEN, HistoryProvider, InternalPartForwardShape, InvoiceReadyShape, InvoiceRecipient, InvoiceShape, ItemsForwardShape, ItemsReceiveShape, LITTLE_ENDIAN, LITTLE_ENDIAN_REGEX, LocationBarComponent, LocationBarContentProvider, LocationBarNode, LogoCommissionModule, LogoCommissionModuleFavIcon, LogoCommissionModuleNegative, LogoCommissionModuleNegativeFavIcon, LogoCostApproval, LogoCostApprovalFavIcon, LogoCostApprovalNegative, LogoCostApprovalNegativeFavIcon, LogoCostControlling, LogoCostControllingFavIcon, LogoCostControllingNegative, LogoCostControllingNegativeFavIcon, LogoDigitalServiceReception, LogoDigitalServiceReceptionFavIcon, LogoDigitalServiceReceptionNegative, LogoDigitalServiceReceptionNegativeFavIcon, LogoDocFlow, LogoDocFlowFavIcon, LogoDocFlowNegative, LogoDocFlowNegativeFavIcon, LogoDocScan, LogoDocScanFavIcon, LogoDocScanNegative, LogoDocScanNegativeFavIcon, LogoDocStore, LogoDocStoreFavIcon, LogoDocStoreNegative, LogoDocStoreNegativeFavIcon, LogoEBilling, LogoEBillingFavIcon, LogoEBillingNegative, LogoEBillingNegativeFavIcon, LogoEPayment, LogoEPaymentFavIcon, LogoEPaymentNegative, LogoEPaymentNegativeFavIcon, LogoMobilityPlanner, LogoMobilityPlannerFavIcon, LogoMobilityPlannerNegative, LogoMobilityPlannerNegativeFavIcon, LogoPartsMobile, LogoPartsMobileFavIcon, LogoPartsMobileNegative, LogoPartsMobileNegativeFavIcon, LogoSBO, LogoSBOFavIcon, LogoSBONegative, LogoSBONegativeFavIcon, LogoServiceCube, LogoServiceCubeFavIcon, LogoServiceCubeNegative, LogoServiceCubeNegativeFavIcon, LogoWCP, LogoWCPFavIcon, LogoWCPNegative, LogoWCPNegativeFavIcon, LogoWorkshopOrderTracker, LogoWorkshopOrderTrackerFavIcon, LogoWorkshopOrderTrackerNegative, LogoWorkshopOrderTrackerNegativeFavIcon, MIDDLE_ENDIAN, MIDDLE_ENDIAN_REGEX, MONTH, Mechanic, NewCarUtilityVehicleShape, NodeId, Number0, Number1, Number10, Number11, Number12, Number13, Number14, Number15, Number16, Number17, Number18, Number19, Number2, Number20, Number3, Number4, Number5, Number6, Number7, Number8, Number9, OrderShape, OrderStatusShape, PaintMaterialForwardShape, PaintMaterialShape, ParkingLocation, PartAvailabilityInfoShape, PartAvailabilityNoShape, PartAvailabilityUnknownShape, PartAvailabilityWarningShape, PartAvailabilityYesShape, PartIdenticalPredecessorShape, PartIdenticalShape, PartIdenticalSuccessorShape, PartIdenticalSuccpredecessorShape, PartNonStockForwardShape, PartPredecessorShape, PartSuccessorPredecessorShape, PartSuccessorShape, PartsChangelocation, PartsForwardShape, PartsInventory, PartsNonStockShape, PartsPicking, PartsPickingPlus, PartsReceiving, PartsShape, PlusServiceShape, PorscheBrandShape, PriceTypeSwitchShape, RepeatRepairCollection, RepeatRepairShape, ReplacementVehicleCollection, ReplacementVehicleShape, ReturnDateShape, SEPARATOR_TEXT_DEFAULT, SeatBrandShape, ServiceAdvisor, SkodaBrandShape, SortStateService, StatePersistenceKeyDirective, TRANSLATIONS, TaskAndAppointment, TextForward, TimeModel, TopcardShape, TouaregServiceShape, TreetableCellRenderer, TreetableDataStateService, TreetableHeaderRenderer, TreetableItemsDirective, TreetableMainRenderer, TreetableRowRenderer, USER_INPUT_REGEX, VWBrandShape, VWNBrandShape, VWShape, VehicleConversionShape, VinShape, VsfSearchShape, VsfSearchShape48, WCPShape, WrenchForward, YEAR, acceleration, accelerationIcon, acceptanceDateIcon, accessories, accessoriesIcon, accessoryPartsIcon, adblueAppIcon, adblue_app, add, addIcon, airConditionerIcon, air_conditioning, alert, alertFilledAppIcon, alertIcon, alertNotificationFilledAppIcon, alert_filled_app, alert_notification_filled_app, allIcons, ambientLightAppIcon, ambient_light_app, amplifier, amplifierIcon, appConnectAppIcon, app_connect_app, archive, archiveIcon, arrowDownIcon, arrowLeftAlignedAppIcon, arrowLeftIcon, arrowRightIcon, arrowSliderAppIcon, arrowUpIcon, arrow_down, arrow_left, arrow_left_aligned_app, arrow_right, arrow_slider_app, arrow_up, attachment, attachmentIcon, audiBrandIcon, authentPlugChargeAppIcon, authentQrAppIcon, authentRfidAppIcon, authentTouchidAppIcon, authent_plug_charge_app, authent_qr_app, authent_rfid_app, authent_touch_id_app, automaticTempAppIcon, automatic_temp_app, awardWinnerPremiumIcon, award_winner_premium, back, backIcon, battery, batteryIcon, batterySocChargingAppIcon, batterySocDepartureAppIcon, batterySocDestinationAppIcon, battery_soc_charging_app, battery_soc_departure_app, battery_soc_destination_app, bin, binIcon, blocksGroupForwardIcon, bluetooth, bluetoothIcon, bookmark, bookmarkFilledIcon, bookmarkIcon, bookmark_filled, brakeAppIcon, brake_app, brochure, brochureIcon, bulletpointAppIcon, bulletpoint_app, bundleForwardIcon, businessCustomersCommercialIcon, businessCustomersPrivateIcon, businessPartnerWithCarIcon, business_customers_commercial, business_customers_private, calc, calcIcon, calculatorForwardIcon, calendar, calendarCustomIcon, californiaServiceIcon, californiaSpecialistIcon, california_specialist, cameraScanIcon, camera_scan, campaignIcon, campaignOutdatedIcon, carDocumentsIcon, carErrorAppIcon, carInsuranceIcon, carOffSite, carOnSite, carPickupServiceIcon, carPlusIcon, carSettingsIcon, carVerifiedAppIcon, carWashIcon, carWheelAppIcon, car_documents, car_error_app, car_insurance, car_pickup_service, car_plus, car_settings, car_verified_app, car_wheel_app, carwash, certifiedRepairIcon, certifiedRetailerIcon, certified_repair, certified_retailer, challengeAppIcon, challenge_app, charging, chargingIcon, chargingPduAppIcon, chargingStationIcon, chargingTarifOverviewAppIcon, charging_pdu_app, charging_station, charging_tarif_overview_app, chat, chatAppIcon, chatIcon, chat_app, checkboxCheckedAppIcon, checkboxCheckedIcon, checkboxUncheckedAppIcon, checkboxUncheckedIcon, checkbox_checked, checkbox_checked_app, checkbox_unchecked, checkbox_unchecked_app, checkmark, checkmarkAppIcon, checkmarkFilledAppIcon, checkmarkIcon, checkmark_app, checkmark_filled_app, chevronDownIcon, chevronLeftAlignedappIcon, chevronLeftIcon, chevronRightAlignedappIcon, chevronRightIcon, chevronSmallLeftAlignedappIcon, chevronSmallRightAlignedappIcon, chevronUpIcon, chevron_down, chevron_left, chevron_left_alignedapp, chevron_right, chevron_right_alignedapp, chevron_small_left_alignedapp, chevron_small_right_alignedapp, chevron_up, circleFilledIcon, circleHalfFilledIcon, circleQuarterFilledIcon, circleThreeQuartersFilledIcon, city, cityIcon, clearAppIcon, clearRightAlignedappIcon, clear_app, clear_right_alignedapp, clock, clockIcon, close, closeAppIcon, closeCircleIcon, closeIcon, closeLeftAlignedappIcon, closeRightAlignedappIcon, close_app, close_circle, close_left_alignedapp, close_right_alignedapp, clrIconSVG, coffeeFilledAppIcon, coffee_filled_app, compassAppIcon, compass_app, completedByDateIcon, configuratorCommercialIcon, configuratorPrivateIcon, configurator_commercial, configurator_private, construction, constructionIcon, consumptionFuelFilledAppIcon, consumptionIcon, consumption_fuel, consumption_fuel_filled_app, contact, contactDealerFilledAppIcon, contactDealerIcon, contactIcon, contact_dealer, contact_dealer_filled_app, countryRoadIcon, country_road, craft, craftIcon, cupraBrandIcon, customerIcon, customerVipIcon, customerWaitingIcon, customersCenterIcon, customers_center, dataCopyAppIcon, dataExpiredIcon, dataFilledIcon, dataInputIcon, dataPlugAppIcon, dataSearchIcon, dataTimeExtensionIcon, data_copy_app, data_expired, data_filled, data_input, data_plug_app, data_search, data_time_extension, defaultSummaryAreaCollapsedKey, defogDefrostAutoAppIcon, defogDefrostIcon, defog_defrost, defog_defrost_auto_app, deliveryDateIcon, destinationAppIcon, destination_app, dieselIcon, direction, directionIcon, dischargingAppIcon, discharging_app, discountAppIcon, discount_app, discoveryAppIcon, discovery_app, dollarBillForwardIcon, dollarBillPartialIcon, download, downloadCustomIcon, dragIndicatorIcon, drag_indicator, driversAssistanceIcon, drivers_assistance, dropFilledAppIcon, drop_filled_app, dwaBrandIcon, eco, ecoIcon, edit, editIcon, editSmallRightAlignedAppIcon, edit_small_right_aligned_app, efficiency, efficiencyIcon, electricCarsIcon, electricCarsServiceIcon, electric_cars, electric_cars_service, electricity, electricityFilledAppIcon, electricityIcon, electricity_filled_app, emergency, emergencyIcon, emission, emissionIcon, energyIcon, engine, engineIcon, entertainment, entertainmentIcon, escapeHtml, escapeRegex, exportAppIcon, export_app, expressServiceIcon, express_service, exterior, exterior360Icon, exteriorIcon, exterior_360, externalPartForwardIcon, faq, faqIcon, fastForwardIcon, fast_forward, fax, faxIcon, filter, filterIcon, findACarIcon, findADealerIcon, find_a_car, find_a_dealer, firstRegistrationDateIcon, fleetServiceCommercialIcon, fleetServicePrivateIcon, fleet_service_commercial, fleet_service_private, folderFilledAppIcon, folder_filled_app, foodFilledAppIcon, food_filled_app, formatNumber, fullscreenEnterIcon, fullscreenExitIcon, fullscreen_enter, fullscreen_exit, gallery, galleryIcon, garageAppIcon, garage_app, gasAppIcon, gasCarsServiceIcon, gasIcon, gas_app, glassDamageAppIcon, glass_damage_app, gte, gteIcon, heart, heartFilledAppIcon, heartIcon, heart_filled_app, heightAppIcon, height_app, highwayRoadIcon, highway_road, history, historyIcon, homeAppIcon, homeEnergyAppIcon, homeFilledAppIcon, home_app, home_energy_app, home_filled_app, hornAppIcon, hornFilledAppIcon, horn_app, horn_filled_app, hybrid, hybridIcon, immediateChargingAppIcon, immediate_charging_app, info, infoFilledIcon, infoIcon, info_filled, inputHideIcon, inputShowIcon, input_hide, input_show, interior, interior360Icon, interiorIcon, interior_360, internalPartForwardIcon, internet, internetIcon, invitationAppIcon, invitation_app, invoiceIcon, invoiceReadyIcon, invoiceRecipientIcon, itemsForwardIcon, itemsRecieveIcon, jobportal, jobportalIcon, keyAppIcon, keyCardAppIcon, keyDigitalAppIcon, key_app, key_card_app, key_digital_app, keyboardAppIcon, keyboard_app, layerCollapseAppIcon, layerExpandAppIcon, layer_collapse_app, layer_expand_app, layersAppIcon, layers_app, legalTermsAndConditionsAppIcon, legal_terms_and_conditions_app, licencePlateAppIcon, licence_plate_app, lightAssistappIcon, light_assistapp, lightingAppIcon, lighting_app, linkExternAppIcon, link_extern_app, list, listIcon, loadingVolumeIcon, loading_volume, localBusinessIcon, local_business, locate, locateIcon, lock, lockIcon, lockOpenIcon, lock_open, login, loginIcon, logistic, logisticIcon, logoCommissionModuleFavIcon, logoCommissionModuleIcon, logoCommissionModuleNegativeFavIcon, logoCommissionModuleNegativeIcon, logoCostApprovalFavIcon, logoCostApprovalIcon, logoCostApprovalNegativeFavIcon, logoCostApprovalNegativeIcon, logoCrossControllingFavIcon, logoCrossControllingIcon, logoCrossControllingNegativeFavIcon, logoCrossControllingNegativeIcon, logoDigitalServiceReceptionFavIcon, logoDigitalServiceReceptionIcon, logoDigitalServiceReceptionNegativeFavIcon, logoDigitalServiceReceptionNegativeIcon, logoDocFlowFavIcon, logoDocFlowIcon, logoDocFlowNegativeFavIcon, logoDocFlowNegativeIcon, logoDocScanFavIcon, logoDocScanIcon, logoDocScanNegativeFavIcon, logoDocScanNegativeIcon, logoDocStoreFavIcon, logoDocStoreIcon, logoDocStoreNegativeFavIcon, logoDocStoreNegativeIcon, logoEBillingFavIcon, logoEBillingIcon, logoEBillingNegativeFavIcon, logoEBillingNegativeIcon, logoEPaymentFavIcon, logoEPaymentIcon, logoEPaymentNegativeFavIcon, logoEPaymentNegativeIcon, logoMobilityPlannerFavIcon, logoMobilityPlannerIcon, logoMobilityPlannerNegativeFavIcon, logoMobilityPlannerNegativeIcon, logoPartsMobileFavIcon, logoPartsMobileIcon, logoPartsMobileNegativeFavIcon, logoPartsMobileNegativeIcon, logoSBOFavIcon, logoSBOIcon, logoSBONegativeFavIcon, logoSBONegativeIcon, logoServiceCubeFavIcon, logoServiceCubeIcon, logoServiceCubeNegativeFavIcon, logoServiceCubeNegativeIcon, logoWCPFavIcon, logoWCPIcon, logoWCPNegativeFavIcon, logoWCPNegativeIcon, logoWorkshopOrderTrackerFavIcon, logoWorkshopOrderTrackerIcon, logoWorkshopOrderTrackerNegativeFavIcon, logoWorkshopOrderTrackerNegativeIcon, logout, logoutIcon, magnifier, magnifierIcon, magnifierMinusIcon, magnifierPlusIcon, magnifier_minus, magnifier_plus, mail, mailIcon, mailResendAppIcon, mail_resend_app, manual, manualIcon, map, mapIcon, mapToInternalTree, mechanicIcon, media, mediaIcon, menu, menuAppAppIcon, menuIcon, menu_app_app, microphoneAppIcon, microphone_app, mobile, mobileIcon, moreAppIcon, moreAppbarAppIcon, more_app, more_appbar_app, mot, motIcon, motability, motabilityIcon, navigate, navigateFilledAppIcon, navigateIcon, navigate_filled_app, newCarCommercialIcon, newCarPrivateFilledAppIcon, newCarPrivateIcon, newCarUtilityVehicleIcon, new_car_commercial, new_car_private, new_car_private_filled_app, nightServiceIcon, night_service, notification, notificationFilledIcon, notificationIcon, notification_filled, number0Icon, number10Icon, number11Icon, number12Icon, number13Icon, number14Icon, number15Icon, number16Icon, number17Icon, number18Icon, number19Icon, number1Icon, number20Icon, number2Icon, number3Icon, number4Icon, number5Icon, number6Icon, number7Icon, number8Icon, number9Icon, offers, offersFilledAppIcon, offersIcon, offers_filled_app, officeAppIcon, officeFilledAppIcon, office_app, office_filled_app, oilLevelIcon, oilLevelWarningIcon, oilTemperatureAppIcon, oil_level, oil_level_warning, oil_temperature_app, onCallDutyIcon, on_call_duty, openSatIcon, open_sat, orderIcon, orderStatusIcon, paintMaterialForwardIcon, paintMaterialIcon, paintShopIcon, paint_shop, paragraphAppIcon, paragraph_app, parkHeaterAppIcon, park_heater_app, parking, parkingFilledAppIcon, parkingGarageAppIcon, parkingIcon, parkingLocationIcon, parkingRouteAppIcon, parkingValetAppIcon, parking_filled_app, parking_garage_app, parking_route_app, parking_valet_app, partAvailabilityInfoIcon, partAvailabilityNoIcon, partAvailabilityUnknownIcon, partAvailabilityWarningIcon, partAvailabilityYesIcon, partIdenticalIcon, partIdenticalPredecessorIcon, partIdenticalSuccessorIcon, partIdenticalSuccpredecessorIcon, partPredecessorIcon, partSuccessorIcon, partSuccessorPredecessorIcon, partsChangelocationIcon, partsForwardIcon, partsIcon, partsInventoryIcon, partsNonStockForwardIcon, partsNonStockIcon, partsPickingIcon, partsPickingPlusIcon, partsReceivingIcon, pause, pauseIcon, payload, payloadIcon, paymentAppIcon, paymentCashAppIcon, paymentChargingCardAppIcon, paymentCreditcardAppIcon, paymentMachineAppIcon, payment_app, payment_cash_app, payment_charging_card_app, payment_creditcard_app, payment_machine_app, performance, performanceIcon, petrol, petrolIcon, phone, phoneIcon, pin, pinFilledAppIcon, pinGenericFilledAppIcon, pinIcon, pin_filled_app, pin_generic_filled_app, play, playIcon, plugCcsAppIcon, plugChademoAppIcon, plugChargeAppIcon, plugGenericAppIcon, plugSchukoAppIcon, plugType1AppIcon, plugType2AppIcon, plug_ccs_app, plug_chademo_app, plug_charge_app, plug_generic_app, plug_schuko_app, plug_type1_app, plug_type2_app, plusServiceIcon, porscheBrandIcon, power, powerIcon, powerTrainIcon, powertrain, preHeaterAppIcon, pre_heater_app, preciseLaneNavigationAppIcon, precise_lane_navigation_app, presentAppIcon, present_app, priceTypeSwitchIcon, printer, printerIcon, privacyAppIcon, privacy_app, profile, profileIcon, profileRegisterAppIcon, profileVerifiedIcon, profile_register_app, profile_verified, publicServiceIcon, publicTransportAppIcon, public_service, public_transport_app, qualifiedWorkshopIcon, qualified_workshop, questionnaireAppIcon, questionnaire_app, radio, radioButtonInselectedIcon, radioButtonSelectedForDefIcon, radioButtonSelectedIcon, radioIcon, radio_button_inselected, radio_button_selected, radio_button_selected_for_development, range, rangeIcon, reload, reloadIcon, remove, removeIcon, repeat, repeatIcon, repeatRepairIcon, replacementVehicleIcon, returnDateIcon, rewind, rewindIcon, roadsideAssistanceIcon, roadside_assistance, route, routeArrowAppIcon, routeIcon, route_arrow_app, routesHistoryAppIcon, routes_history_app, rss, rssIcon, safety, safetyIcon, save, saveAppIcon, saveIcon, save_app, seat, seatAirIcon, seatBrandIcon, seatIcon, seat_air, secretTipAppIcon, secretTipFilledAppIcon, secret_tip_app, secret_tip_filled_app, selected, selectedIcon, selectedPartnerNetworkAppIcon, selected_partner_network_app, sendToCarAppIcon, send_to_car_app, service, serviceAdvisorIcon, serviceBellIcon, serviceFilledAppIcon, serviceIcon, service_bell, service_filled_app, settings, settingsIcon, shareAndroidIcon, shareIosIcon, share_android, share_ios, shoppingCartFilledAppIcon, shoppingCartIcon, shopping_cart, shopping_cart_filled_app, shuffle, shuffleIcon, size, sizeIcon, skillAppIcon, skill_app, skipBackwardIcon, skipForwardIcon, skip_backward, skip_forward, skodaBrandIcon, softwareDownloadAppIcon, software_download_app, sortingAppIcon, sorting_app, sound, soundIcon, sparkles, sparklesIcon, standardEquipmentIcon, standard_equipment, starFilledIcon, starOutlineIcon, star_filled, star_outline, statisticAppIcon, statistic_app, stockLocatorCommercialIcon, stockLocatorPrivateIcon, stock_locator_commercial, stock_locator_private, stop, stopIcon, strip, switchPositionAppIcon, switch_position_app, syncAppIcon, sync_app, taskAndAppointmentIcon, taxiDealerIcon, taxi_dealer, technicalSpecificationIcon, technical_specification, temperatureAppIcon, temperature_app, testDriveIcon, test_drive, textForwardIcon, thumbsdownAppIcon, thumbsdownFilledAppIcon, thumbsdown_app, thumbsdown_filled_app, thumbsupAppIcon, thumbsupFilledAppIcon, thumbsup_app, thumbsup_filled_app, timeClimatisationAppIcon, timePreferredAppIcon, time_climatisation_app, time_preferred_app, timer, timerIcon, topcardIcon, touaregServiceIcon, transcriptDownloadIcon, transcript_download, transmissionAutomaticIcon, transmissionManualIcon, transmission_automatic, transmission_manual, tripAppIcon, tripLongAppIcon, tripPartedAppIcon, tripShortAppIcon, trip_app, trip_long_app, trip_parted_app, trip_short_app, turnSignalsIcon, turn_signals, unselected, unselectedIcon, updateRefreshAppIcon, update_refresh_app, upload, uploadAppIcon, uploadCustomIcon, upload_app, usedCarCommercialIcon, usedCarPrivateIcon, used_car_commercial, used_car_private, vehicleAmarokIcon, vehicleCaddyIcon, vehicleConversionIcon, vehicleCrafterIcon, vehicleHightIcon, vehicleIdBuzzIcon, vehicleMultivanIcon, vehicleTransporterIcon, vehicle_amarok, vehicle_caddy, vehicle_crafter, vehicle_hight, vehicle_idbuzz, vehicle_multivan, vehicle_transporter, videoChatIcon, video_chat, view360Icon, view_360, vinIcon, virtualRealityIcon, virtual_reality, voiceMessageAppIcon, voice_message_app, volkswagenAppIcon, volkswagenIcon, volkswagen_app, volumeMaximumIcon, volumeMediumIcon, volumeMuteIcon, volume_maximum, volume_medium, volume_mute, vsfSearch48Icon, vsfSearchIcon, vwBrandIcon, vwConnectLicenseAppIcon, vw_connect_license_app, vwnBrandIcon, walkingAppIcon, walkingFilledAppIcon, walking_app, walking_filled_app, wallbox, wallboxIcon, wcAppIcon, wc_app, wcpIcon, weAssistAppIcon, weChargeAppIcon, weDeliverAppIcon, weExperienceAppIcon, weParkAppIcon, weUpgradeAppIcon, we_assist_app, we_charge_app, we_deliver_app, we_experience_app, we_park_app, we_upgrade_app, weatherSunAppIcon, weather_sun_app, wheelToWheelIcon, wheel_to_wheel, windscreenWashIcon, windscreen_wash, wlanHotspotIcon, wlan_hotspot, wrenchForwardIcon };
|
|
18238
18540
|
//# sourceMappingURL=porscheinformatik-clr-addons.mjs.map
|