@porscheinformatik/clr-addons 21.0.7 → 21.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/porscheinformatik-clr-addons.mjs +779 -148
- package/fesm2022/porscheinformatik-clr-addons.mjs.map +1 -1
- package/package.json +1 -1
- package/styles/clr-addons-phs.css +175 -21
- 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 +132 -38
|
@@ -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, output,
|
|
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, viewChild, ViewContainerRef, output, afterRenderEffect, InjectionToken, isSignal, HostListener, LOCALE_ID, Self, Host, ChangeDetectorRef, NgZone, 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';
|
|
@@ -7,9 +7,9 @@ import { ClarityIcons, arrowIcon, angleIcon, timesIcon, trashIcon, plusCircleIco
|
|
|
7
7
|
import * as i3 from '@angular/forms';
|
|
8
8
|
import { FormsModule, NG_VALIDATORS, NgControl, NG_VALUE_ACCESSOR, ReactiveFormsModule, FormControl, NgModel } from '@angular/forms';
|
|
9
9
|
import * as i1$2 from '@clr/angular';
|
|
10
|
-
import { ClarityModule, ClrFormsModule, ClrDropdown, ClrIcon, ClrForm, ClrAlert, ClrPopoverPosition, ClrPopoverService, ClrCommonStringsService, ClrDropdownModule, ClrDatagrid, ClrDatagridColumn, ClrDatagridSortOrder, DatagridPropertyComparator, ClrDatagridPagination, ClrDatagridFilter, ClrControlLabel, ClrControlHelper, ClrControlError, ClrControlSuccess, ClrDatepickerModule, ClrTooltipModule } from '@clr/angular';
|
|
11
|
-
import { Subject, BehaviorSubject, timer as timer$1, asyncScheduler, interval, map as map$1, distinctUntilChanged, shareReplay, combineLatest, skip, auditTime, fromEvent, take as take$1,
|
|
12
|
-
import { takeUntil, take, observeOn, filter as filter$1, debounceTime } from 'rxjs/operators';
|
|
10
|
+
import { ClarityModule, ClrFormsModule, ClrDropdown, ClrIcon, ClrForm, ClrAlert, ClrPopoverPosition, ClrPopoverService, ClrCommonStringsService, ClrPopoverType, ClrPopoverHostDirective, CdkTrapFocusModule, ClrDropdownModule, ClrDatagrid, ClrDatagridColumn, ClrDatagridSortOrder, DatagridPropertyComparator, ClrDatagridPagination, ClrDatagridFilter, ClrControlLabel, ClrControlHelper, ClrControlError, ClrControlSuccess, ClrDatepickerModule, ClrTooltipModule } from '@clr/angular';
|
|
11
|
+
import { Subject, BehaviorSubject, timer as timer$1, asyncScheduler, interval, map as map$1, distinctUntilChanged, shareReplay, combineLatest, skip, auditTime, tap, share, merge, fromEvent, first, take as take$1, debounceTime as debounceTime$1, of, switchMap, filter as filter$2, ReplaySubject, takeUntil as takeUntil$1, delay } from 'rxjs';
|
|
12
|
+
import { takeUntil, take, observeOn, filter as filter$1, skip as skip$1, debounceTime } from 'rxjs/operators';
|
|
13
13
|
import * as i2$1 from '@angular/router';
|
|
14
14
|
import { RouterModule } from '@angular/router';
|
|
15
15
|
import { trigger, transition, style, animate, state } from '@angular/animations';
|
|
@@ -20,10 +20,10 @@ import * as i2$3 from '@clr/angular/popover/common';
|
|
|
20
20
|
import * as i2$4 from '@clr/angular/emphasis/alert';
|
|
21
21
|
import { takeUntilDestroyed, toObservable, outputFromObservable, toSignal } from '@angular/core/rxjs-interop';
|
|
22
22
|
import * as i1$3 from '@clr/angular/progress/spinner';
|
|
23
|
+
import * as i4 from '@clr/angular/forms/checkbox';
|
|
23
24
|
import * as i3$2 from '@clr/angular/forms/input';
|
|
24
25
|
import * as i1$4 from '@angular/common/http';
|
|
25
26
|
import { CdkDropList, moveItemInArray } from '@angular/cdk/drag-drop';
|
|
26
|
-
import * as i4 from '@clr/angular/forms/checkbox';
|
|
27
27
|
import * as i4$1 from '@clr/angular/forms/datepicker';
|
|
28
28
|
import { CdkCopyToClipboard } from '@angular/cdk/clipboard';
|
|
29
29
|
import * as i1$5 from '@clr/angular/popover/tooltip';
|
|
@@ -3699,7 +3699,7 @@ class ClrTreetableActionOverflow {
|
|
|
3699
3699
|
</div>
|
|
3700
3700
|
</ng-container>
|
|
3701
3701
|
}
|
|
3702
|
-
`, 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$3.ClrPopoverOrigin, selector: "[clrPopoverOrigin]" }, { 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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3702
|
+
`, 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$3.ClrPopoverOrigin, selector: "[clrPopoverOrigin]" }, { 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: "directive", type: i1$2.CdkTrapFocusModule_CdkTrapFocus, selector: "[cdkTrapFocus]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3703
3703
|
}
|
|
3704
3704
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: ClrTreetableActionOverflow, decorators: [{
|
|
3705
3705
|
type: Component,
|
|
@@ -3925,11 +3925,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
3925
3925
|
}], propDecorators: { clrExpanded: [{ type: i0.Input, args: [{ isSignal: true, alias: "clrExpanded", required: false }] }, { type: i0.Output, args: ["clrExpandedChange"] }], clrExpandable: [{ type: i0.Input, args: [{ isSignal: true, alias: "clrExpandable", required: false }] }], clrClickable: [{ type: i0.Input, args: [{ isSignal: true, alias: "clrClickable", required: false }] }], clrTtItem: [{ type: i0.Input, args: [{ isSignal: true, alias: "clrTtItem", required: false }] }], _actionOverflow: [{ type: i0.ContentChild, args: [i0.forwardRef(() => ClrTreetableActionOverflow), { isSignal: true }] }] } });
|
|
3926
3926
|
|
|
3927
3927
|
/*
|
|
3928
|
-
* Copyright (c) 2018-
|
|
3928
|
+
* Copyright (c) 2018-2026 Porsche Informatik. All Rights Reserved.
|
|
3929
3929
|
* This software is released under MIT license.
|
|
3930
3930
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
3931
3931
|
*/
|
|
3932
|
-
class
|
|
3932
|
+
class SortStateService {
|
|
3933
3933
|
constructor() {
|
|
3934
3934
|
this._comparator = signal(null, ...(ngDevMode ? [{ debugName: "_comparator" }] : /* istanbul ignore next */ []));
|
|
3935
3935
|
this._reverse = signal(false, ...(ngDevMode ? [{ debugName: "_reverse" }] : /* istanbul ignore next */ []));
|
|
@@ -3970,10 +3970,10 @@ class Sort {
|
|
|
3970
3970
|
}
|
|
3971
3971
|
return (this._reverse() ? -1 : 1) * currentComparator.compare(a, b);
|
|
3972
3972
|
}
|
|
3973
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type:
|
|
3974
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type:
|
|
3973
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SortStateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3974
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SortStateService }); }
|
|
3975
3975
|
}
|
|
3976
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type:
|
|
3976
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: SortStateService, decorators: [{
|
|
3977
3977
|
type: Injectable
|
|
3978
3978
|
}] });
|
|
3979
3979
|
|
|
@@ -4186,7 +4186,7 @@ function areFiltersDistinct(prev, curr) {
|
|
|
4186
4186
|
}
|
|
4187
4187
|
|
|
4188
4188
|
/*
|
|
4189
|
-
* Copyright (c) 2018-
|
|
4189
|
+
* Copyright (c) 2018-2026 Porsche Informatik. All Rights Reserved.
|
|
4190
4190
|
* This software is released under MIT license.
|
|
4191
4191
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
4192
4192
|
*/
|
|
@@ -4204,7 +4204,7 @@ class RegisteredTreetableFilter {
|
|
|
4204
4204
|
this.unregister = unregister;
|
|
4205
4205
|
}
|
|
4206
4206
|
}
|
|
4207
|
-
class
|
|
4207
|
+
class FilterStateService {
|
|
4208
4208
|
constructor() {
|
|
4209
4209
|
this._destroyRef = inject(DestroyRef);
|
|
4210
4210
|
this.filterId = 0;
|
|
@@ -4269,10 +4269,10 @@ class Filters {
|
|
|
4269
4269
|
});
|
|
4270
4270
|
return registered;
|
|
4271
4271
|
}
|
|
4272
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type:
|
|
4273
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type:
|
|
4272
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: FilterStateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4273
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: FilterStateService }); }
|
|
4274
4274
|
}
|
|
4275
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type:
|
|
4275
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: FilterStateService, decorators: [{
|
|
4276
4276
|
type: Injectable
|
|
4277
4277
|
}], ctorParameters: () => [] });
|
|
4278
4278
|
|
|
@@ -4334,14 +4334,14 @@ function areTreetableStatesEqual(prev, curr) {
|
|
|
4334
4334
|
}
|
|
4335
4335
|
|
|
4336
4336
|
/*
|
|
4337
|
-
* Copyright (c) 2018-
|
|
4337
|
+
* Copyright (c) 2018-2026 Porsche Informatik. All Rights Reserved.
|
|
4338
4338
|
* This software is released under MIT license.
|
|
4339
4339
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
4340
4340
|
*/
|
|
4341
4341
|
class TreetableDataStateService {
|
|
4342
4342
|
constructor() {
|
|
4343
|
-
this._filters = inject((
|
|
4344
|
-
this._sort = inject((
|
|
4343
|
+
this._filters = inject((FilterStateService));
|
|
4344
|
+
this._sort = inject((SortStateService));
|
|
4345
4345
|
this._dataSource = signal(undefined, ...(ngDevMode ? [{ debugName: "_dataSource" }] : /* istanbul ignore next */ []));
|
|
4346
4346
|
this._stickyIndeterminate = signal(false, ...(ngDevMode ? [{ debugName: "_stickyIndeterminate" }] : /* istanbul ignore next */ []));
|
|
4347
4347
|
this._itemsExternallySelected = signal([], ...(ngDevMode ? [{ debugName: "_itemsExternallySelected" }] : /* istanbul ignore next */ []));
|
|
@@ -4489,8 +4489,164 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
4489
4489
|
type: Injectable
|
|
4490
4490
|
}], ctorParameters: () => [] });
|
|
4491
4491
|
|
|
4492
|
+
const TreetableColumnUpdate = {
|
|
4493
|
+
WIDTH: 'WIDTH',
|
|
4494
|
+
HIDDEN: 'HIDDEN',
|
|
4495
|
+
RESET_HIDDEN: 'RESET_HIDDEN',
|
|
4496
|
+
};
|
|
4497
|
+
class TreetableColumnStateService {
|
|
4498
|
+
constructor() {
|
|
4499
|
+
this._changeWidth$ = new Subject();
|
|
4500
|
+
this._changeHideable$ = new Subject();
|
|
4501
|
+
this._changeHiddenForAll$ = new Subject();
|
|
4502
|
+
this._changeHidden$ = new Subject();
|
|
4503
|
+
this._resetHidden$ = new Subject();
|
|
4504
|
+
this._columnState = signal({}, ...(ngDevMode ? [{ debugName: "_columnState" }] : /* istanbul ignore next */ []));
|
|
4505
|
+
this.columns = computed(() => Object.values(this._columnState()).sort((a, b) => a.columnIndex - b.columnIndex), ...(ngDevMode ? [{ debugName: "columns" }] : /* istanbul ignore next */ []));
|
|
4506
|
+
this.visibleColumns = computed(() => this.columns().filter(column => !column.hidden), ...(ngDevMode ? [{ debugName: "visibleColumns" }] : /* istanbul ignore next */ []));
|
|
4507
|
+
this.hideableColumns = computed(() => this.columns().filter(column => column.hideable), ...(ngDevMode ? [{ debugName: "hideableColumns" }] : /* istanbul ignore next */ []));
|
|
4508
|
+
this.hasHideableColumns = computed(() => this.hideableColumns()?.length > 0, ...(ngDevMode ? [{ debugName: "hasHideableColumns" }] : /* istanbul ignore next */ []));
|
|
4509
|
+
this._changeWidthAction$ = this._changeWidth$.pipe(tap(({ id, width }) => this.update(id, { width })), share());
|
|
4510
|
+
this._changeHideableAction$ = this._changeHideable$.pipe(tap(patch => {
|
|
4511
|
+
const current = this.getColumn(patch.id);
|
|
4512
|
+
if (current.hideable && !patch.hideable) {
|
|
4513
|
+
this.update(patch.id, { hideable: false, hidden: false, initialHidden: false });
|
|
4514
|
+
}
|
|
4515
|
+
if (!current.hideable && patch.hideable) {
|
|
4516
|
+
this.update(patch.id, { hideable: true, hidden: patch.hidden, initialHidden: patch.hidden });
|
|
4517
|
+
}
|
|
4518
|
+
this.update(patch.id, { hidden: patch.hidden });
|
|
4519
|
+
}), share());
|
|
4520
|
+
this._changeHiddenAction$ = this._changeHidden$.pipe(filter$1(change => this.getColumn(change.id)?.hideable), tap(change => this.update(change.id, { hidden: change.hidden })), share());
|
|
4521
|
+
this._changeHiddenForAllAction$ = this._changeHiddenForAll$.pipe(tap(change => {
|
|
4522
|
+
this._columnState.update(current => Object.fromEntries(Object.entries(current).map(([id, column]) => [
|
|
4523
|
+
id,
|
|
4524
|
+
{
|
|
4525
|
+
...column,
|
|
4526
|
+
hidden: change,
|
|
4527
|
+
},
|
|
4528
|
+
])));
|
|
4529
|
+
}), share());
|
|
4530
|
+
this._resetHiddenAction$ = this._resetHidden$.pipe(tap(() => {
|
|
4531
|
+
this._columnState.update(current => Object.fromEntries(Object.entries(current).map(([id, column]) => [
|
|
4532
|
+
id,
|
|
4533
|
+
column.hideable
|
|
4534
|
+
? {
|
|
4535
|
+
...column,
|
|
4536
|
+
hidden: column.initialHidden,
|
|
4537
|
+
}
|
|
4538
|
+
: column,
|
|
4539
|
+
])));
|
|
4540
|
+
}), share());
|
|
4541
|
+
this.changes$ = merge(this._changeWidthAction$.pipe(map$1(() => TreetableColumnUpdate.WIDTH)), this._changeHideableAction$.pipe(map$1(() => TreetableColumnUpdate.HIDDEN)), this._changeHiddenForAllAction$.pipe(map$1(() => TreetableColumnUpdate.HIDDEN)), this._changeHiddenAction$.pipe(map$1(() => TreetableColumnUpdate.HIDDEN)), this._resetHiddenAction$.pipe(map$1(() => TreetableColumnUpdate.HIDDEN)));
|
|
4542
|
+
this._changeWidthAction$.pipe(takeUntilDestroyed()).subscribe();
|
|
4543
|
+
this._changeHideableAction$.pipe(takeUntilDestroyed()).subscribe();
|
|
4544
|
+
this._changeHiddenForAllAction$.pipe(takeUntilDestroyed()).subscribe();
|
|
4545
|
+
this._changeHiddenAction$.pipe(takeUntilDestroyed()).subscribe();
|
|
4546
|
+
this._resetHiddenAction$.pipe(takeUntilDestroyed()).subscribe();
|
|
4547
|
+
}
|
|
4548
|
+
register(options) {
|
|
4549
|
+
this._columnState.update(current => ({
|
|
4550
|
+
...current,
|
|
4551
|
+
[options.id]: {
|
|
4552
|
+
id: options.id,
|
|
4553
|
+
columnIndex: Number.MAX_SAFE_INTEGER,
|
|
4554
|
+
hideable: false,
|
|
4555
|
+
hidden: false,
|
|
4556
|
+
initialHidden: false,
|
|
4557
|
+
titleTemplateRef: options.titleTemplateRef,
|
|
4558
|
+
},
|
|
4559
|
+
}));
|
|
4560
|
+
}
|
|
4561
|
+
registerHideable(columnId, options) {
|
|
4562
|
+
this._columnState.update(current => {
|
|
4563
|
+
const existing = current[columnId];
|
|
4564
|
+
if (!existing) {
|
|
4565
|
+
return current;
|
|
4566
|
+
}
|
|
4567
|
+
return {
|
|
4568
|
+
...current,
|
|
4569
|
+
[columnId]: {
|
|
4570
|
+
...existing,
|
|
4571
|
+
hideable: options.hideable,
|
|
4572
|
+
hidden: options.hidden,
|
|
4573
|
+
initialHidden: options.initialHidden ?? options.hidden,
|
|
4574
|
+
titleTemplateRef: options.titleTemplateRef,
|
|
4575
|
+
},
|
|
4576
|
+
};
|
|
4577
|
+
});
|
|
4578
|
+
}
|
|
4579
|
+
unregister(id) {
|
|
4580
|
+
this._columnState.update(current => {
|
|
4581
|
+
const next = { ...current };
|
|
4582
|
+
delete next[id];
|
|
4583
|
+
return next;
|
|
4584
|
+
});
|
|
4585
|
+
}
|
|
4586
|
+
initializeOrder(idsInRenderOrder) {
|
|
4587
|
+
this._columnState.update(current => {
|
|
4588
|
+
const next = { ...current };
|
|
4589
|
+
idsInRenderOrder.forEach((id, index) => {
|
|
4590
|
+
if (next[id]) {
|
|
4591
|
+
next[id] = {
|
|
4592
|
+
...next[id],
|
|
4593
|
+
columnIndex: index,
|
|
4594
|
+
};
|
|
4595
|
+
}
|
|
4596
|
+
});
|
|
4597
|
+
return next;
|
|
4598
|
+
});
|
|
4599
|
+
}
|
|
4600
|
+
changeWidth(id, width) {
|
|
4601
|
+
this._changeWidth$.next({ id, width });
|
|
4602
|
+
}
|
|
4603
|
+
changeHideable(id, hideable, hidden) {
|
|
4604
|
+
this._changeHideable$.next({ id, hideable, hidden: hidden ?? false });
|
|
4605
|
+
}
|
|
4606
|
+
changeHiddenForAll(hidden) {
|
|
4607
|
+
this._changeHiddenForAll$.next(hidden);
|
|
4608
|
+
}
|
|
4609
|
+
displayAllColumns() {
|
|
4610
|
+
this.changeHiddenForAll(false);
|
|
4611
|
+
}
|
|
4612
|
+
toggleHidden(id) {
|
|
4613
|
+
const current = this.getColumn(id);
|
|
4614
|
+
this._changeHidden$.next({ id, hidden: !current.hidden });
|
|
4615
|
+
}
|
|
4616
|
+
resetToInitialHidden() {
|
|
4617
|
+
this._resetHidden$.next();
|
|
4618
|
+
}
|
|
4619
|
+
getColumnState(id) {
|
|
4620
|
+
return toObservable(this._columnState).pipe(map$1(columns => columns[id]), distinctUntilChanged());
|
|
4621
|
+
}
|
|
4622
|
+
getColumn(id) {
|
|
4623
|
+
return this._columnState()[id];
|
|
4624
|
+
}
|
|
4625
|
+
update(id, patch) {
|
|
4626
|
+
this._columnState.update(current => {
|
|
4627
|
+
const existing = current[id];
|
|
4628
|
+
if (!existing) {
|
|
4629
|
+
return current;
|
|
4630
|
+
}
|
|
4631
|
+
return {
|
|
4632
|
+
...current,
|
|
4633
|
+
[id]: {
|
|
4634
|
+
...existing,
|
|
4635
|
+
...patch,
|
|
4636
|
+
id: existing.id,
|
|
4637
|
+
},
|
|
4638
|
+
};
|
|
4639
|
+
});
|
|
4640
|
+
}
|
|
4641
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: TreetableColumnStateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
4642
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: TreetableColumnStateService }); }
|
|
4643
|
+
}
|
|
4644
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: TreetableColumnStateService, decorators: [{
|
|
4645
|
+
type: Injectable
|
|
4646
|
+
}], ctorParameters: () => [] });
|
|
4647
|
+
|
|
4492
4648
|
/*
|
|
4493
|
-
* Copyright (c) 2018-
|
|
4649
|
+
* Copyright (c) 2018-2026 Porsche Informatik. All Rights Reserved.
|
|
4494
4650
|
* This software is released under MIT license.
|
|
4495
4651
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
4496
4652
|
*/
|
|
@@ -4528,11 +4684,23 @@ class ClrTreetable {
|
|
|
4528
4684
|
this._dataStateService.toggleSelectionForDisplayedNodes();
|
|
4529
4685
|
}
|
|
4530
4686
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: ClrTreetable, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4531
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: ClrTreetable, isStandalone: false, selector: "clr-treetable", inputs: { clrClickableRows: { classPropertyName: "clrClickableRows", publicName: "clrClickableRows", isSignal: true, isRequired: false, transformFunction: null }, clrHideHeader: { classPropertyName: "clrHideHeader", publicName: "clrHideHeader", isSignal: true, isRequired: false, transformFunction: null }, clrTtLoading: { classPropertyName: "clrTtLoading", publicName: "clrTtLoading", isSignal: true, isRequired: false, transformFunction: null }, clrTtSelected: { classPropertyName: "clrTtSelected", publicName: "clrTtSelected", isSignal: true, isRequired: false, transformFunction: null }, clrTtAutoParentSelection: { classPropertyName: "clrTtAutoParentSelection", publicName: "clrTtAutoParentSelection", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clrTtSelectedChange: "clrTtSelectedChange", clrTtRefresh: "clrTtRefresh" }, host: { properties: { "class.empty": "empty()", "class.treetable-host": "true" } }, providers: [
|
|
4687
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: ClrTreetable, isStandalone: false, selector: "clr-treetable", inputs: { clrClickableRows: { classPropertyName: "clrClickableRows", publicName: "clrClickableRows", isSignal: true, isRequired: false, transformFunction: null }, clrHideHeader: { classPropertyName: "clrHideHeader", publicName: "clrHideHeader", isSignal: true, isRequired: false, transformFunction: null }, clrTtLoading: { classPropertyName: "clrTtLoading", publicName: "clrTtLoading", isSignal: true, isRequired: false, transformFunction: null }, clrTtSelected: { classPropertyName: "clrTtSelected", publicName: "clrTtSelected", isSignal: true, isRequired: false, transformFunction: null }, clrTtAutoParentSelection: { classPropertyName: "clrTtAutoParentSelection", publicName: "clrTtAutoParentSelection", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clrTtSelectedChange: "clrTtSelectedChange", clrTtRefresh: "clrTtRefresh" }, host: { properties: { "class.empty": "empty()", "class.treetable-host": "true" } }, providers: [
|
|
4688
|
+
TREETABLE_RECURSION_SERVICE_PROVIDER,
|
|
4689
|
+
TreetableDataStateService,
|
|
4690
|
+
TreetableColumnStateService,
|
|
4691
|
+
SortStateService,
|
|
4692
|
+
FilterStateService,
|
|
4693
|
+
], 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\">\n <div class=\"treetable-grid\" role=\"grid\">\n <div class=\"treetable-header\" role=\"rowgroup\" [class.hide-header]=\"clrHideHeader()\">\n @if (showSelection() && !empty()) {\n <div class=\"clr-checkbox-wrapper treetable-row-selection treetable-column\" role=\"row\">\n <input\n type=\"checkbox\"\n data-testId=\"clrTtSelectAll\"\n [checked]=\"areAllRowsSelected()\"\n (change)=\"toggleSelectAll()\"\n />\n </div>\n } @if (hasActionOverflow()) {\n <div class=\"treetable-row-actions treetable-column\"> </div>\n }\n <div class=\"treetable-row-scrollable\" role=\"row\">\n <ng-content select=\"clr-tt-column\" />\n </div>\n </div>\n\n <div class=\"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\">\n <clr-spinner clrMedium />\n </div>\n }\n</div>\n", dependencies: [{ kind: "component", type: i1$3.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 }); }
|
|
4532
4694
|
}
|
|
4533
4695
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: ClrTreetable, decorators: [{
|
|
4534
4696
|
type: Component,
|
|
4535
|
-
args: [{ selector: 'clr-treetable', host: { '[class.empty]': 'empty()', '[class.treetable-host]': 'true' }, providers: [
|
|
4697
|
+
args: [{ selector: 'clr-treetable', host: { '[class.empty]': 'empty()', '[class.treetable-host]': 'true' }, providers: [
|
|
4698
|
+
TREETABLE_RECURSION_SERVICE_PROVIDER,
|
|
4699
|
+
TreetableDataStateService,
|
|
4700
|
+
TreetableColumnStateService,
|
|
4701
|
+
SortStateService,
|
|
4702
|
+
FilterStateService,
|
|
4703
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, 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\">\n <div class=\"treetable-grid\" role=\"grid\">\n <div class=\"treetable-header\" role=\"rowgroup\" [class.hide-header]=\"clrHideHeader()\">\n @if (showSelection() && !empty()) {\n <div class=\"clr-checkbox-wrapper treetable-row-selection treetable-column\" role=\"row\">\n <input\n type=\"checkbox\"\n data-testId=\"clrTtSelectAll\"\n [checked]=\"areAllRowsSelected()\"\n (change)=\"toggleSelectAll()\"\n />\n </div>\n } @if (hasActionOverflow()) {\n <div class=\"treetable-row-actions treetable-column\"> </div>\n }\n <div class=\"treetable-row-scrollable\" role=\"row\">\n <ng-content select=\"clr-tt-column\" />\n </div>\n </div>\n\n <div class=\"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\">\n <clr-spinner clrMedium />\n </div>\n }\n</div>\n" }]
|
|
4536
4704
|
}], ctorParameters: () => [], propDecorators: { clrClickableRows: [{ type: i0.Input, args: [{ isSignal: true, alias: "clrClickableRows", required: false }] }], clrHideHeader: [{ type: i0.Input, args: [{ isSignal: true, alias: "clrHideHeader", required: false }] }], clrTtLoading: [{ type: i0.Input, args: [{ isSignal: true, alias: "clrTtLoading", required: false }] }], clrTtSelected: [{ type: i0.Input, args: [{ isSignal: true, alias: "clrTtSelected", required: false }] }], clrTtAutoParentSelection: [{ type: i0.Input, args: [{ isSignal: true, alias: "clrTtAutoParentSelection", required: false }] }], clrTtSelectedChange: [{ type: i0.Output, args: ["clrTtSelectedChange"] }], clrTtRefresh: [{ type: i0.Output, args: ["clrTtRefresh"] }], _ttRows: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => ClrTreetableRow), { ...{ descendants: true }, isSignal: true }] }], _actionOverflow: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => ClrTreetableActionOverflow), { ...{ descendants: true }, isSignal: true }] }] } });
|
|
4537
4705
|
|
|
4538
4706
|
/*
|
|
@@ -4552,12 +4720,20 @@ var ClrTreetableSortOrder;
|
|
|
4552
4720
|
* This software is released under MIT license.
|
|
4553
4721
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
4554
4722
|
*/
|
|
4723
|
+
let columnId = 0;
|
|
4555
4724
|
class ClrTreetableColumn {
|
|
4725
|
+
ngOnInit() {
|
|
4726
|
+
this._columnState.register({ id: this.columnId, titleTemplateRef: this._columnTitleRef() });
|
|
4727
|
+
}
|
|
4728
|
+
ngOnDestroy() {
|
|
4729
|
+
this._columnState.unregister(this.columnId);
|
|
4730
|
+
}
|
|
4556
4731
|
constructor() {
|
|
4557
|
-
this.
|
|
4732
|
+
this.columnId = `clr-tt-col-${columnId++}`;
|
|
4733
|
+
this._columnTitleRef = viewChild('columnTitle', { ...(ngDevMode ? { debugName: "_columnTitleRef" } : /* istanbul ignore next */ {}), read: TemplateRef });
|
|
4734
|
+
this._columnState = inject(TreetableColumnStateService);
|
|
4735
|
+
this._sort = inject((SortStateService));
|
|
4558
4736
|
this.clrTtSortBy = input(null, ...(ngDevMode ? [{ debugName: "clrTtSortBy" }] : /* istanbul ignore next */ []));
|
|
4559
|
-
this.clrTtSortOrder = input(ClrTreetableSortOrder.UNSORTED, ...(ngDevMode ? [{ debugName: "clrTtSortOrder" }] : /* istanbul ignore next */ []));
|
|
4560
|
-
this.clrTtSortOrderChange = output();
|
|
4561
4737
|
this._internalSortOrder = computed(() => {
|
|
4562
4738
|
const sortState = this._sort.sortState();
|
|
4563
4739
|
const sortBy = this.clrTtSortBy();
|
|
@@ -4566,6 +4742,8 @@ class ClrTreetableColumn {
|
|
|
4566
4742
|
}
|
|
4567
4743
|
return sortState.reverse ? ClrTreetableSortOrder.DESC : ClrTreetableSortOrder.ASC;
|
|
4568
4744
|
}, ...(ngDevMode ? [{ debugName: "_internalSortOrder" }] : /* istanbul ignore next */ []));
|
|
4745
|
+
this.clrTtSortOrder = input(ClrTreetableSortOrder.UNSORTED, ...(ngDevMode ? [{ debugName: "clrTtSortOrder" }] : /* istanbul ignore next */ []));
|
|
4746
|
+
this.clrTtSortOrderChange = outputFromObservable(toObservable(this._internalSortOrder));
|
|
4569
4747
|
this.isSortable = computed(() => !!this.clrTtSortBy(), ...(ngDevMode ? [{ debugName: "isSortable" }] : /* istanbul ignore next */ []));
|
|
4570
4748
|
this.sortDirection = computed(() => {
|
|
4571
4749
|
const order = this._internalSortOrder();
|
|
@@ -4620,11 +4798,6 @@ class ClrTreetableColumn {
|
|
|
4620
4798
|
break;
|
|
4621
4799
|
}
|
|
4622
4800
|
});
|
|
4623
|
-
// Emit sort order changes of the column
|
|
4624
|
-
effect(() => {
|
|
4625
|
-
const internalSortOrder = this._internalSortOrder();
|
|
4626
|
-
this.clrTtSortOrderChange.emit(internalSortOrder);
|
|
4627
|
-
});
|
|
4628
4801
|
}
|
|
4629
4802
|
sort(reverse) {
|
|
4630
4803
|
const comparator = this.clrTtSortBy();
|
|
@@ -4634,7 +4807,7 @@ class ClrTreetableColumn {
|
|
|
4634
4807
|
this._sort.toggle(comparator, reverse);
|
|
4635
4808
|
}
|
|
4636
4809
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: ClrTreetableColumn, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4637
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", 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 } }, outputs: { clrTtSortOrderChange: "clrTtSortOrderChange" }, host: { attributes: { "role": "columnheader" }, properties: { "class.treetable-column": "true", "attr.aria-sort": "ariaSort()" } }, providers: [ClrPopoverService], ngImport: i0, template: `
|
|
4810
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", 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 } }, outputs: { clrTtSortOrderChange: "clrTtSortOrderChange" }, 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: `
|
|
4638
4811
|
@if (isSortable()) {
|
|
4639
4812
|
<button type="button" class="treetable-column-title" data-testId="clrTtSortButton" (click)="sort()">
|
|
4640
4813
|
<ng-container *ngTemplateOutlet="columnTitle" />
|
|
@@ -4700,7 +4873,341 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
4700
4873
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
4701
4874
|
standalone: false,
|
|
4702
4875
|
}]
|
|
4703
|
-
}], ctorParameters: () => [], propDecorators: { 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"] }] } });
|
|
4876
|
+
}], 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"] }] } });
|
|
4877
|
+
|
|
4878
|
+
let id = 0;
|
|
4879
|
+
class ClrTreetableColumnManagerMenuComponent {
|
|
4880
|
+
constructor() {
|
|
4881
|
+
this.popoverId = `clr-column-manager-menu-id-${id++}`;
|
|
4882
|
+
this._commonStringsService = inject(ClrCommonStringsService);
|
|
4883
|
+
this._popoverService = inject(ClrPopoverService);
|
|
4884
|
+
this._columnService = inject(TreetableColumnStateService);
|
|
4885
|
+
// Template constants
|
|
4886
|
+
this.popoverPosition = ClrPopoverPosition.TOP_LEFT;
|
|
4887
|
+
this.popoverType = ClrPopoverType.DROPDOWN;
|
|
4888
|
+
this.commonStrings = this._commonStringsService.keys;
|
|
4889
|
+
this.resetLabel = input.required(...(ngDevMode ? [{ debugName: "resetLabel" }] : /* istanbul ignore next */ []));
|
|
4890
|
+
this.open = toSignal(this._popoverService.openChange);
|
|
4891
|
+
this.hideableColumns = this._columnService.hideableColumns;
|
|
4892
|
+
this.hasOnlyOneVisibleColumn = computed(() => this._columnService.columns().length === this._columnService.hideableColumns().length &&
|
|
4893
|
+
this._columnService.visibleColumns().length === 1, ...(ngDevMode ? [{ debugName: "hasOnlyOneVisibleColumn" }] : /* istanbul ignore next */ []));
|
|
4894
|
+
this.areAllColumnsVisible = computed(() => this._columnService.visibleColumns().length === this._columnService.columns().length, ...(ngDevMode ? [{ debugName: "areAllColumnsVisible" }] : /* istanbul ignore next */ []));
|
|
4895
|
+
this.areAllColumnsReset = computed(() => this._columnService.hideableColumns().every(column => column.hidden === column.initialHidden), ...(ngDevMode ? [{ debugName: "areAllColumnsReset" }] : /* istanbul ignore next */ []));
|
|
4896
|
+
}
|
|
4897
|
+
toggleColumnState(id) {
|
|
4898
|
+
this._columnService.toggleHidden(id);
|
|
4899
|
+
}
|
|
4900
|
+
selectAll() {
|
|
4901
|
+
if (!this.areAllColumnsVisible()) {
|
|
4902
|
+
this._columnService.displayAllColumns();
|
|
4903
|
+
}
|
|
4904
|
+
}
|
|
4905
|
+
resetAllToInitial() {
|
|
4906
|
+
this._columnService.resetToInitialHidden();
|
|
4907
|
+
}
|
|
4908
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: ClrTreetableColumnManagerMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4909
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: ClrTreetableColumnManagerMenuComponent, isStandalone: false, selector: "clr-tt-column-manager-menu", inputs: { resetLabel: { classPropertyName: "resetLabel", publicName: "resetLabel", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "class.column-manager-menu": "true", "class.active": "open()" } }, hostDirectives: [{ directive: i1$2.ClrPopoverHostDirective }], ngImport: i0, template: `
|
|
4910
|
+
<button
|
|
4911
|
+
role="button"
|
|
4912
|
+
type="button"
|
|
4913
|
+
class="btn btn-sm column-manager-menu-open"
|
|
4914
|
+
clrPopoverOrigin
|
|
4915
|
+
clrPopoverOpenCloseButton
|
|
4916
|
+
[attr.aria-controls]="popoverId"
|
|
4917
|
+
[attr.aria-expanded]="open()"
|
|
4918
|
+
[attr.aria-haspopup]="'menu'"
|
|
4919
|
+
>
|
|
4920
|
+
{{ commonStrings.pickColumns }}
|
|
4921
|
+
</button>
|
|
4922
|
+
<div
|
|
4923
|
+
class="column-switch"
|
|
4924
|
+
role="dialog"
|
|
4925
|
+
[attr.aria-label]="commonStrings.showColumnsMenuDescription"
|
|
4926
|
+
[id]="popoverId"
|
|
4927
|
+
cdkTrapFocus
|
|
4928
|
+
cdkTrapFocusAutoCapture
|
|
4929
|
+
*clrPopoverContent="
|
|
4930
|
+
open();
|
|
4931
|
+
at: popoverPosition;
|
|
4932
|
+
type: popoverType;
|
|
4933
|
+
outsideClickToClose: true;
|
|
4934
|
+
scrollToClose: true
|
|
4935
|
+
"
|
|
4936
|
+
>
|
|
4937
|
+
<div class="switch-header">
|
|
4938
|
+
<div class="clr-sr-only" tabindex="-1" #allSelected>{{ commonStrings.allColumnsSelected }}</div>
|
|
4939
|
+
<h2>{{ commonStrings.showColumns }}</h2>
|
|
4940
|
+
<button
|
|
4941
|
+
class="btn btn-sm btn-link-neutral toggle-switch-close-button"
|
|
4942
|
+
clrPopoverCloseButton
|
|
4943
|
+
type="button"
|
|
4944
|
+
[attr.aria-label]="commonStrings.close"
|
|
4945
|
+
>
|
|
4946
|
+
<cds-icon shape="window-close" aria-hidden="true" [attr.title]="commonStrings.close"></cds-icon>
|
|
4947
|
+
<span class="clr-sr-only">{{ commonStrings.close }}</span>
|
|
4948
|
+
</button>
|
|
4949
|
+
</div>
|
|
4950
|
+
<ul class="switch-content list-unstyled">
|
|
4951
|
+
@for (column of hideableColumns(); track column.id) {
|
|
4952
|
+
<li>
|
|
4953
|
+
<clr-checkbox-wrapper>
|
|
4954
|
+
<input
|
|
4955
|
+
clrCheckbox
|
|
4956
|
+
type="checkbox"
|
|
4957
|
+
[disabled]="hasOnlyOneVisibleColumn() && !column.hidden"
|
|
4958
|
+
[ngModel]="!column.hidden"
|
|
4959
|
+
(ngModelChange)="toggleColumnState(column.id)"
|
|
4960
|
+
/>
|
|
4961
|
+
<label>
|
|
4962
|
+
<ng-template [ngTemplateOutlet]="column.titleTemplateRef"></ng-template>
|
|
4963
|
+
</label>
|
|
4964
|
+
</clr-checkbox-wrapper>
|
|
4965
|
+
</li>
|
|
4966
|
+
}
|
|
4967
|
+
</ul>
|
|
4968
|
+
<div class="switch-footer">
|
|
4969
|
+
<button
|
|
4970
|
+
type="button"
|
|
4971
|
+
class="btn btn-sm btn-link switch-button"
|
|
4972
|
+
[disabled]="areAllColumnsVisible()"
|
|
4973
|
+
(click)="selectAll()"
|
|
4974
|
+
>
|
|
4975
|
+
{{ commonStrings.selectAll }}
|
|
4976
|
+
</button>
|
|
4977
|
+
<button
|
|
4978
|
+
type="button"
|
|
4979
|
+
class="btn btn-sm btn-link switch-button"
|
|
4980
|
+
[disabled]="areAllColumnsReset()"
|
|
4981
|
+
(click)="resetAllToInitial()"
|
|
4982
|
+
>
|
|
4983
|
+
{{ resetLabel() }}
|
|
4984
|
+
</button>
|
|
4985
|
+
</div>
|
|
4986
|
+
</div>
|
|
4987
|
+
`, 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$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: "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 }); }
|
|
4988
|
+
}
|
|
4989
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: ClrTreetableColumnManagerMenuComponent, decorators: [{
|
|
4990
|
+
type: Component,
|
|
4991
|
+
args: [{
|
|
4992
|
+
selector: 'clr-tt-column-manager-menu',
|
|
4993
|
+
template: `
|
|
4994
|
+
<button
|
|
4995
|
+
role="button"
|
|
4996
|
+
type="button"
|
|
4997
|
+
class="btn btn-sm column-manager-menu-open"
|
|
4998
|
+
clrPopoverOrigin
|
|
4999
|
+
clrPopoverOpenCloseButton
|
|
5000
|
+
[attr.aria-controls]="popoverId"
|
|
5001
|
+
[attr.aria-expanded]="open()"
|
|
5002
|
+
[attr.aria-haspopup]="'menu'"
|
|
5003
|
+
>
|
|
5004
|
+
{{ commonStrings.pickColumns }}
|
|
5005
|
+
</button>
|
|
5006
|
+
<div
|
|
5007
|
+
class="column-switch"
|
|
5008
|
+
role="dialog"
|
|
5009
|
+
[attr.aria-label]="commonStrings.showColumnsMenuDescription"
|
|
5010
|
+
[id]="popoverId"
|
|
5011
|
+
cdkTrapFocus
|
|
5012
|
+
cdkTrapFocusAutoCapture
|
|
5013
|
+
*clrPopoverContent="
|
|
5014
|
+
open();
|
|
5015
|
+
at: popoverPosition;
|
|
5016
|
+
type: popoverType;
|
|
5017
|
+
outsideClickToClose: true;
|
|
5018
|
+
scrollToClose: true
|
|
5019
|
+
"
|
|
5020
|
+
>
|
|
5021
|
+
<div class="switch-header">
|
|
5022
|
+
<div class="clr-sr-only" tabindex="-1" #allSelected>{{ commonStrings.allColumnsSelected }}</div>
|
|
5023
|
+
<h2>{{ commonStrings.showColumns }}</h2>
|
|
5024
|
+
<button
|
|
5025
|
+
class="btn btn-sm btn-link-neutral toggle-switch-close-button"
|
|
5026
|
+
clrPopoverCloseButton
|
|
5027
|
+
type="button"
|
|
5028
|
+
[attr.aria-label]="commonStrings.close"
|
|
5029
|
+
>
|
|
5030
|
+
<cds-icon shape="window-close" aria-hidden="true" [attr.title]="commonStrings.close"></cds-icon>
|
|
5031
|
+
<span class="clr-sr-only">{{ commonStrings.close }}</span>
|
|
5032
|
+
</button>
|
|
5033
|
+
</div>
|
|
5034
|
+
<ul class="switch-content list-unstyled">
|
|
5035
|
+
@for (column of hideableColumns(); track column.id) {
|
|
5036
|
+
<li>
|
|
5037
|
+
<clr-checkbox-wrapper>
|
|
5038
|
+
<input
|
|
5039
|
+
clrCheckbox
|
|
5040
|
+
type="checkbox"
|
|
5041
|
+
[disabled]="hasOnlyOneVisibleColumn() && !column.hidden"
|
|
5042
|
+
[ngModel]="!column.hidden"
|
|
5043
|
+
(ngModelChange)="toggleColumnState(column.id)"
|
|
5044
|
+
/>
|
|
5045
|
+
<label>
|
|
5046
|
+
<ng-template [ngTemplateOutlet]="column.titleTemplateRef"></ng-template>
|
|
5047
|
+
</label>
|
|
5048
|
+
</clr-checkbox-wrapper>
|
|
5049
|
+
</li>
|
|
5050
|
+
}
|
|
5051
|
+
</ul>
|
|
5052
|
+
<div class="switch-footer">
|
|
5053
|
+
<button
|
|
5054
|
+
type="button"
|
|
5055
|
+
class="btn btn-sm btn-link switch-button"
|
|
5056
|
+
[disabled]="areAllColumnsVisible()"
|
|
5057
|
+
(click)="selectAll()"
|
|
5058
|
+
>
|
|
5059
|
+
{{ commonStrings.selectAll }}
|
|
5060
|
+
</button>
|
|
5061
|
+
<button
|
|
5062
|
+
type="button"
|
|
5063
|
+
class="btn btn-sm btn-link switch-button"
|
|
5064
|
+
[disabled]="areAllColumnsReset()"
|
|
5065
|
+
(click)="resetAllToInitial()"
|
|
5066
|
+
>
|
|
5067
|
+
{{ resetLabel() }}
|
|
5068
|
+
</button>
|
|
5069
|
+
</div>
|
|
5070
|
+
</div>
|
|
5071
|
+
`,
|
|
5072
|
+
host: {
|
|
5073
|
+
'[class.column-manager-menu]': 'true',
|
|
5074
|
+
'[class.active]': 'open()',
|
|
5075
|
+
},
|
|
5076
|
+
hostDirectives: [ClrPopoverHostDirective],
|
|
5077
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
5078
|
+
standalone: false,
|
|
5079
|
+
}]
|
|
5080
|
+
}], propDecorators: { resetLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "resetLabel", required: true }] }] } });
|
|
5081
|
+
|
|
5082
|
+
class ClrTreetableFooter {
|
|
5083
|
+
constructor() {
|
|
5084
|
+
this._commonStringsService = inject(ClrCommonStringsService);
|
|
5085
|
+
this._columnService = inject(TreetableColumnStateService);
|
|
5086
|
+
this._dataService = inject(TreetableDataStateService);
|
|
5087
|
+
this.commonStrings = this._commonStringsService.keys;
|
|
5088
|
+
this.clrResetLabel = input('RESET', ...(ngDevMode ? [{ debugName: "clrResetLabel" }] : /* istanbul ignore next */ []));
|
|
5089
|
+
this.hasHideableColumns = this._columnService.hasHideableColumns;
|
|
5090
|
+
this.selectedRows = this._dataService.selectedNodes;
|
|
5091
|
+
this.hasSelectedRows = computed(() => this.selectedRows()?.length > 0, ...(ngDevMode ? [{ debugName: "hasSelectedRows" }] : /* istanbul ignore next */ []));
|
|
5092
|
+
}
|
|
5093
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: ClrTreetableFooter, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5094
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.17", type: ClrTreetableFooter, isStandalone: false, selector: "clr-tt-footer", inputs: { clrResetLabel: { classPropertyName: "clrResetLabel", publicName: "clrResetLabel", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.treetable-footer": "true" } }, ngImport: i0, template: `
|
|
5095
|
+
@if (hasSelectedRows()) {
|
|
5096
|
+
<div class="clr-form-control-disabled">
|
|
5097
|
+
<clr-checkbox-wrapper class="treetable-footer-select">
|
|
5098
|
+
<input clrCheckbox type="checkbox" checked="checked" disabled />
|
|
5099
|
+
<label>{{ selectedRows().length }}</label>
|
|
5100
|
+
<span class="clr-sr-only">{{ commonStrings.selectedRows }}</span>
|
|
5101
|
+
</clr-checkbox-wrapper>
|
|
5102
|
+
</div>
|
|
5103
|
+
} @if (hasHideableColumns()) {
|
|
5104
|
+
<clr-tt-column-manager-menu [resetLabel]="clrResetLabel()" />
|
|
5105
|
+
}
|
|
5106
|
+
|
|
5107
|
+
<div class="treetable-footer-description">
|
|
5108
|
+
<ng-content />
|
|
5109
|
+
</div>
|
|
5110
|
+
`, isInline: true, dependencies: [{ 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: "component", type: ClrTreetableColumnManagerMenuComponent, selector: "clr-tt-column-manager-menu", inputs: ["resetLabel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
5111
|
+
}
|
|
5112
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: ClrTreetableFooter, decorators: [{
|
|
5113
|
+
type: Component,
|
|
5114
|
+
args: [{
|
|
5115
|
+
selector: 'clr-tt-footer',
|
|
5116
|
+
template: `
|
|
5117
|
+
@if (hasSelectedRows()) {
|
|
5118
|
+
<div class="clr-form-control-disabled">
|
|
5119
|
+
<clr-checkbox-wrapper class="treetable-footer-select">
|
|
5120
|
+
<input clrCheckbox type="checkbox" checked="checked" disabled />
|
|
5121
|
+
<label>{{ selectedRows().length }}</label>
|
|
5122
|
+
<span class="clr-sr-only">{{ commonStrings.selectedRows }}</span>
|
|
5123
|
+
</clr-checkbox-wrapper>
|
|
5124
|
+
</div>
|
|
5125
|
+
} @if (hasHideableColumns()) {
|
|
5126
|
+
<clr-tt-column-manager-menu [resetLabel]="clrResetLabel()" />
|
|
5127
|
+
}
|
|
5128
|
+
|
|
5129
|
+
<div class="treetable-footer-description">
|
|
5130
|
+
<ng-content />
|
|
5131
|
+
</div>
|
|
5132
|
+
`,
|
|
5133
|
+
host: {
|
|
5134
|
+
'[class.treetable-footer]': 'true',
|
|
5135
|
+
},
|
|
5136
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
5137
|
+
standalone: false,
|
|
5138
|
+
}]
|
|
5139
|
+
}], propDecorators: { clrResetLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "clrResetLabel", required: false }] }] } });
|
|
5140
|
+
|
|
5141
|
+
/*
|
|
5142
|
+
* Copyright (c) 2018-2026 Porsche Informatik. All Rights Reserved.
|
|
5143
|
+
* This software is released under MIT license.
|
|
5144
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
5145
|
+
*/
|
|
5146
|
+
/**
|
|
5147
|
+
* A structural directive meant to be used inside a clr-tt-column component.
|
|
5148
|
+
*
|
|
5149
|
+
* @example
|
|
5150
|
+
* <clr-tt-column>
|
|
5151
|
+
* <ng-container *clrTtHideableColumn="{ hidden: true }">
|
|
5152
|
+
* User ID
|
|
5153
|
+
* </ng-container>
|
|
5154
|
+
* </clr-tt-column>
|
|
5155
|
+
*
|
|
5156
|
+
* It sets up state and properties so that columns can be managed for hide/show
|
|
5157
|
+
* by a service and the column manager menu component.
|
|
5158
|
+
*
|
|
5159
|
+
* The structural directive captures its content as a TemplateRef (without ng-content),
|
|
5160
|
+
* which allows it to be safely instantiated in multiple places (header + menu).
|
|
5161
|
+
*/
|
|
5162
|
+
class ClrTreetableHideableColumn {
|
|
5163
|
+
constructor() {
|
|
5164
|
+
this._titleTemplateRef = inject(TemplateRef);
|
|
5165
|
+
this._viewContainerRef = inject(ViewContainerRef);
|
|
5166
|
+
this._columnState = inject(TreetableColumnStateService);
|
|
5167
|
+
this._column = inject(ClrTreetableColumn);
|
|
5168
|
+
this.clrTtHideableColumn = input('', ...(ngDevMode ? [{ debugName: "clrTtHideableColumn" }] : /* istanbul ignore next */ []));
|
|
5169
|
+
this.clrTtHiddenChange = output();
|
|
5170
|
+
this.resolvedHidden = computed(() => {
|
|
5171
|
+
const value = this.clrTtHideableColumn();
|
|
5172
|
+
if (typeof value === 'string') {
|
|
5173
|
+
return { hidden: false, initialHidden: false };
|
|
5174
|
+
}
|
|
5175
|
+
const hidden = value?.hidden ?? false;
|
|
5176
|
+
return { hidden: hidden, initialHidden: value?.initial ?? hidden };
|
|
5177
|
+
}, ...(ngDevMode ? [{ debugName: "resolvedHidden" }] : /* istanbul ignore next */ []));
|
|
5178
|
+
// Render the content in-place (inside the column header)
|
|
5179
|
+
this._viewContainerRef.createEmbeddedView(this._titleTemplateRef);
|
|
5180
|
+
// React to input changes after initial registration (skip the first emission handled by ngOnInit)
|
|
5181
|
+
toObservable(this.resolvedHidden)
|
|
5182
|
+
.pipe(skip$1(1), takeUntilDestroyed())
|
|
5183
|
+
.subscribe(value => {
|
|
5184
|
+
this._columnState.changeHideable(this._column.columnId, true, value.hidden);
|
|
5185
|
+
});
|
|
5186
|
+
}
|
|
5187
|
+
ngOnInit() {
|
|
5188
|
+
// Register the hideable state with the titleTemplateRef that does NOT contain <ng-content>
|
|
5189
|
+
const resolvedHidden = this.resolvedHidden();
|
|
5190
|
+
this._columnState.registerHideable(this._column.columnId, {
|
|
5191
|
+
hideable: true,
|
|
5192
|
+
hidden: resolvedHidden.hidden,
|
|
5193
|
+
initialHidden: resolvedHidden.initialHidden,
|
|
5194
|
+
titleTemplateRef: this._titleTemplateRef,
|
|
5195
|
+
});
|
|
5196
|
+
}
|
|
5197
|
+
ngOnDestroy() {
|
|
5198
|
+
// When the directive is destroyed, mark the column as non-hideable
|
|
5199
|
+
this._columnState.changeHideable(this._column.columnId, false, false);
|
|
5200
|
+
}
|
|
5201
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: ClrTreetableHideableColumn, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
5202
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.17", type: ClrTreetableHideableColumn, isStandalone: false, selector: "[clrTtHideableColumn]", inputs: { clrTtHideableColumn: { classPropertyName: "clrTtHideableColumn", publicName: "clrTtHideableColumn", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clrTtHiddenChange: "clrTtHiddenChange" }, ngImport: i0 }); }
|
|
5203
|
+
}
|
|
5204
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: ClrTreetableHideableColumn, decorators: [{
|
|
5205
|
+
type: Directive,
|
|
5206
|
+
args: [{
|
|
5207
|
+
selector: '[clrTtHideableColumn]',
|
|
5208
|
+
standalone: false,
|
|
5209
|
+
}]
|
|
5210
|
+
}], ctorParameters: () => [], propDecorators: { clrTtHideableColumn: [{ type: i0.Input, args: [{ isSignal: true, alias: "clrTtHideableColumn", required: false }] }], clrTtHiddenChange: [{ type: i0.Output, args: ["clrTtHiddenChange"] }] } });
|
|
4704
5211
|
|
|
4705
5212
|
/*
|
|
4706
5213
|
* Copyright (c) 2018-2026 Porsche Informatik. All Rights Reserved.
|
|
@@ -4709,14 +5216,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
4709
5216
|
*/
|
|
4710
5217
|
class ClrTreetableFilter {
|
|
4711
5218
|
constructor() {
|
|
4712
|
-
this.
|
|
4713
|
-
this.
|
|
4714
|
-
this.filterProvider = inject((
|
|
4715
|
-
//
|
|
4716
|
-
this.
|
|
5219
|
+
this._commonStringsService = inject(ClrCommonStringsService);
|
|
5220
|
+
this._popoverService = inject(ClrPopoverService);
|
|
5221
|
+
this.filterProvider = inject((FilterStateService));
|
|
5222
|
+
// Template constants
|
|
5223
|
+
this.popoverPosition = ClrPopoverPosition.BOTTOM_LEFT;
|
|
5224
|
+
this.commonStrings = this._commonStringsService.keys;
|
|
4717
5225
|
this.clrTtFilter = input.required(...(ngDevMode ? [{ debugName: "clrTtFilter" }] : /* istanbul ignore next */ []));
|
|
4718
5226
|
this.registered = signal(undefined, ...(ngDevMode ? [{ debugName: "registered" }] : /* istanbul ignore next */ []));
|
|
4719
|
-
this.open = toSignal(this.
|
|
5227
|
+
this.open = toSignal(this._popoverService.openChange);
|
|
4720
5228
|
this.active = computed(() => this.clrTtFilter()?.isActive(), ...(ngDevMode ? [{ debugName: "active" }] : /* istanbul ignore next */ []));
|
|
4721
5229
|
}
|
|
4722
5230
|
ngOnInit() {
|
|
@@ -4750,18 +5258,18 @@ class ClrTreetableFilter {
|
|
|
4750
5258
|
class="treetable-filter"
|
|
4751
5259
|
role="dialog"
|
|
4752
5260
|
cdkTrapFocus
|
|
4753
|
-
*clrPopoverContent="open(); at:
|
|
4754
|
-
[attr.aria-label]="
|
|
5261
|
+
*clrPopoverContent="open(); at: popoverPosition; outsideClickToClose: true; scrollToClose: true"
|
|
5262
|
+
[attr.aria-label]="commonStrings.datagridFilterDialogAriaLabel"
|
|
4755
5263
|
>
|
|
4756
5264
|
<div class="treetable-filter-close-wrapper">
|
|
4757
5265
|
<button type="button" class="close" clrPopoverCloseButton>
|
|
4758
|
-
<cds-icon shape="window-close" [attr.aria-label]="
|
|
5266
|
+
<cds-icon shape="window-close" [attr.aria-label]="commonStrings.close"></cds-icon>
|
|
4759
5267
|
</button>
|
|
4760
5268
|
</div>
|
|
4761
5269
|
|
|
4762
5270
|
<ng-content></ng-content>
|
|
4763
5271
|
</div>
|
|
4764
|
-
`, 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$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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
5272
|
+
`, 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$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: "directive", type: i1$2.CdkTrapFocusModule_CdkTrapFocus, selector: "[cdkTrapFocus]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
4765
5273
|
}
|
|
4766
5274
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: ClrTreetableFilter, decorators: [{
|
|
4767
5275
|
type: Component,
|
|
@@ -4789,12 +5297,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
4789
5297
|
class="treetable-filter"
|
|
4790
5298
|
role="dialog"
|
|
4791
5299
|
cdkTrapFocus
|
|
4792
|
-
*clrPopoverContent="open(); at:
|
|
4793
|
-
[attr.aria-label]="
|
|
5300
|
+
*clrPopoverContent="open(); at: popoverPosition; outsideClickToClose: true; scrollToClose: true"
|
|
5301
|
+
[attr.aria-label]="commonStrings.datagridFilterDialogAriaLabel"
|
|
4794
5302
|
>
|
|
4795
5303
|
<div class="treetable-filter-close-wrapper">
|
|
4796
5304
|
<button type="button" class="close" clrPopoverCloseButton>
|
|
4797
|
-
<cds-icon shape="window-close" [attr.aria-label]="
|
|
5305
|
+
<cds-icon shape="window-close" [attr.aria-label]="commonStrings.close"></cds-icon>
|
|
4798
5306
|
</button>
|
|
4799
5307
|
</div>
|
|
4800
5308
|
|
|
@@ -4859,28 +5367,42 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
4859
5367
|
}]
|
|
4860
5368
|
}] });
|
|
4861
5369
|
|
|
5370
|
+
/**
|
|
5371
|
+
* The CSS class to use to hide a column and its related cells in the treetable.
|
|
5372
|
+
*/
|
|
5373
|
+
const HIDDEN_COLUMN_CSS_CLASS = 'treetable-hidden-column';
|
|
5374
|
+
|
|
4862
5375
|
/*
|
|
4863
|
-
* Copyright (c) 2018-
|
|
5376
|
+
* Copyright (c) 2018-2026 Porsche Informatik. All Rights Reserved.
|
|
4864
5377
|
* This software is released under MIT license.
|
|
4865
5378
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
4866
5379
|
*/
|
|
4867
5380
|
class TreetableHeaderRenderer {
|
|
4868
|
-
constructor(
|
|
4869
|
-
this.
|
|
4870
|
-
this.renderer =
|
|
5381
|
+
constructor() {
|
|
5382
|
+
this.elementRef = inject(ElementRef);
|
|
5383
|
+
this.renderer = inject(Renderer2);
|
|
4871
5384
|
}
|
|
4872
5385
|
/**
|
|
4873
5386
|
* Returns the client width of the header cell.
|
|
4874
5387
|
*/
|
|
4875
5388
|
getWidth() {
|
|
4876
|
-
return this.
|
|
5389
|
+
return this.elementRef.nativeElement.clientWidth;
|
|
5390
|
+
}
|
|
5391
|
+
hide() {
|
|
5392
|
+
this.renderer.addClass(this.elementRef.nativeElement, HIDDEN_COLUMN_CSS_CLASS);
|
|
5393
|
+
}
|
|
5394
|
+
show() {
|
|
5395
|
+
const element = this.elementRef.nativeElement;
|
|
5396
|
+
if (element.classList.contains(HIDDEN_COLUMN_CSS_CLASS)) {
|
|
5397
|
+
this.renderer.removeClass(element, HIDDEN_COLUMN_CSS_CLASS);
|
|
5398
|
+
}
|
|
4877
5399
|
}
|
|
4878
5400
|
/**
|
|
4879
5401
|
* Returns all classes starting with 'clr-col'.
|
|
4880
5402
|
*/
|
|
4881
5403
|
getColumnClasses() {
|
|
4882
5404
|
const classes = [];
|
|
4883
|
-
this.
|
|
5405
|
+
this.elementRef.nativeElement.classList.forEach((className) => {
|
|
4884
5406
|
if (className.indexOf('clr-col') !== -1) {
|
|
4885
5407
|
classes.push(className);
|
|
4886
5408
|
}
|
|
@@ -4888,9 +5410,9 @@ class TreetableHeaderRenderer {
|
|
|
4888
5410
|
return classes;
|
|
4889
5411
|
}
|
|
4890
5412
|
setDefaultColumnClass() {
|
|
4891
|
-
this.renderer.addClass(this.
|
|
5413
|
+
this.renderer.addClass(this.elementRef.nativeElement, 'clr-col');
|
|
4892
5414
|
}
|
|
4893
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: TreetableHeaderRenderer, deps: [
|
|
5415
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: TreetableHeaderRenderer, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
4894
5416
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.17", type: TreetableHeaderRenderer, isStandalone: false, selector: "clr-tt-column", ngImport: i0 }); }
|
|
4895
5417
|
}
|
|
4896
5418
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: TreetableHeaderRenderer, decorators: [{
|
|
@@ -4899,27 +5421,36 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
4899
5421
|
selector: 'clr-tt-column',
|
|
4900
5422
|
standalone: false,
|
|
4901
5423
|
}]
|
|
4902
|
-
}]
|
|
5424
|
+
}] });
|
|
4903
5425
|
|
|
4904
5426
|
/*
|
|
4905
|
-
* Copyright (c) 2018-
|
|
5427
|
+
* Copyright (c) 2018-2026 Porsche Informatik. All Rights Reserved.
|
|
4906
5428
|
* This software is released under MIT license.
|
|
4907
5429
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
4908
5430
|
*/
|
|
4909
5431
|
class TreetableCellRenderer {
|
|
4910
|
-
constructor(
|
|
4911
|
-
this.
|
|
4912
|
-
this.renderer =
|
|
5432
|
+
constructor() {
|
|
5433
|
+
this.elementRef = inject(ElementRef);
|
|
5434
|
+
this.renderer = inject(Renderer2);
|
|
4913
5435
|
}
|
|
4914
5436
|
setColumnClasses(columnClasses) {
|
|
4915
5437
|
columnClasses.forEach((className) => {
|
|
4916
|
-
this.renderer.addClass(this.
|
|
5438
|
+
this.renderer.addClass(this.elementRef.nativeElement, className);
|
|
4917
5439
|
});
|
|
4918
5440
|
}
|
|
5441
|
+
hide() {
|
|
5442
|
+
this.renderer.addClass(this.elementRef.nativeElement, HIDDEN_COLUMN_CSS_CLASS);
|
|
5443
|
+
}
|
|
5444
|
+
show() {
|
|
5445
|
+
const element = this.elementRef.nativeElement;
|
|
5446
|
+
if (element.classList.contains(HIDDEN_COLUMN_CSS_CLASS)) {
|
|
5447
|
+
this.renderer.removeClass(element, HIDDEN_COLUMN_CSS_CLASS);
|
|
5448
|
+
}
|
|
5449
|
+
}
|
|
4919
5450
|
setMaxWidth(maxWidth) {
|
|
4920
|
-
this.renderer.setStyle(this.
|
|
5451
|
+
this.renderer.setStyle(this.elementRef.nativeElement, 'max-width', maxWidth + 'px');
|
|
4921
5452
|
}
|
|
4922
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: TreetableCellRenderer, deps: [
|
|
5453
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: TreetableCellRenderer, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
4923
5454
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.17", type: TreetableCellRenderer, isStandalone: false, selector: "clr-tt-cell", ngImport: i0 }); }
|
|
4924
5455
|
}
|
|
4925
5456
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: TreetableCellRenderer, decorators: [{
|
|
@@ -4928,16 +5459,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
4928
5459
|
selector: 'clr-tt-cell',
|
|
4929
5460
|
standalone: false,
|
|
4930
5461
|
}]
|
|
4931
|
-
}]
|
|
5462
|
+
}] });
|
|
4932
5463
|
|
|
4933
5464
|
/*
|
|
4934
|
-
* Copyright (c) 2018-
|
|
5465
|
+
* Copyright (c) 2018-2026 Porsche Informatik. All Rights Reserved.
|
|
4935
5466
|
* This software is released under MIT license.
|
|
4936
5467
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
4937
5468
|
*/
|
|
4938
5469
|
class TreetableRowRenderer {
|
|
5470
|
+
constructor() {
|
|
5471
|
+
this.cells = contentChildren(TreetableCellRenderer, ...(ngDevMode ? [{ debugName: "cells" }] : /* istanbul ignore next */ []));
|
|
5472
|
+
}
|
|
4939
5473
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: TreetableRowRenderer, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
4940
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "
|
|
5474
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "21.2.17", type: TreetableRowRenderer, isStandalone: false, selector: "clr-tt-row", queries: [{ propertyName: "cells", predicate: TreetableCellRenderer, isSignal: true }], ngImport: i0 }); }
|
|
4941
5475
|
}
|
|
4942
5476
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: TreetableRowRenderer, decorators: [{
|
|
4943
5477
|
type: Directive,
|
|
@@ -4945,93 +5479,176 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
4945
5479
|
selector: 'clr-tt-row',
|
|
4946
5480
|
standalone: false,
|
|
4947
5481
|
}]
|
|
4948
|
-
}], propDecorators: { cells: [{
|
|
4949
|
-
type: ContentChildren,
|
|
4950
|
-
args: [TreetableCellRenderer]
|
|
4951
|
-
}] } });
|
|
5482
|
+
}], propDecorators: { cells: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => TreetableCellRenderer), { isSignal: true }] }] } });
|
|
4952
5483
|
|
|
4953
5484
|
/*
|
|
4954
|
-
* Copyright (c) 2018-
|
|
5485
|
+
* Copyright (c) 2018-2026 Porsche Informatik. All Rights Reserved.
|
|
4955
5486
|
* This software is released under MIT license.
|
|
4956
5487
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
4957
5488
|
*/
|
|
4958
5489
|
class TreetableMainRenderer {
|
|
4959
5490
|
constructor() {
|
|
4960
|
-
this.
|
|
4961
|
-
|
|
4962
|
-
|
|
5491
|
+
this._columnState = inject(TreetableColumnStateService);
|
|
5492
|
+
this.headers = contentChildren(TreetableHeaderRenderer, ...(ngDevMode ? [{ debugName: "headers" }] : /* istanbul ignore next */ []));
|
|
5493
|
+
this.rows = contentChildren(TreetableRowRenderer, { ...(ngDevMode ? { debugName: "rows" } : /* istanbul ignore next */ {}), descendants: true });
|
|
5494
|
+
this.columns = contentChildren(ClrTreetableColumn, ...(ngDevMode ? [{ debugName: "columns" }] : /* istanbul ignore next */ []));
|
|
5495
|
+
this.rules = [
|
|
5496
|
+
this.createClassesRule(),
|
|
5497
|
+
this.createFirstColumnWidthRule(),
|
|
5498
|
+
this.createDisplayRule(),
|
|
5499
|
+
];
|
|
4963
5500
|
fromEvent(window, 'resize')
|
|
4964
|
-
.pipe(debounceTime(200))
|
|
4965
|
-
.subscribe(() => this.
|
|
4966
|
-
|
|
4967
|
-
|
|
4968
|
-
|
|
4969
|
-
|
|
5501
|
+
.pipe(debounceTime(200), takeUntilDestroyed())
|
|
5502
|
+
.subscribe(() => this.renderRuleByKey('first-column-width', this.headers(), this.rows()));
|
|
5503
|
+
afterRenderEffect(() => {
|
|
5504
|
+
const headers = this.headers();
|
|
5505
|
+
const rows = this.rows();
|
|
5506
|
+
if (headers.length > 0) {
|
|
5507
|
+
this.renderAllRules(headers, rows);
|
|
5508
|
+
}
|
|
4970
5509
|
});
|
|
4971
|
-
this.
|
|
4972
|
-
|
|
5510
|
+
this._columnState.changes$.pipe(takeUntilDestroyed()).subscribe(event => {
|
|
5511
|
+
const headers = this.headers();
|
|
5512
|
+
const rows = this.rows();
|
|
5513
|
+
switch (event) {
|
|
5514
|
+
case TreetableColumnUpdate.HIDDEN:
|
|
5515
|
+
this.renderRulesByKeys(['display', 'first-column-width'], headers, rows);
|
|
5516
|
+
break;
|
|
5517
|
+
case TreetableColumnUpdate.RESET_HIDDEN:
|
|
5518
|
+
this.renderAllRules(headers, rows); // resetHidden etc.
|
|
5519
|
+
break;
|
|
5520
|
+
case TreetableColumnUpdate.WIDTH:
|
|
5521
|
+
this.renderRuleByKey('first-column-width', headers, rows);
|
|
5522
|
+
break;
|
|
5523
|
+
default:
|
|
5524
|
+
this.renderAllRules(headers, rows);
|
|
5525
|
+
}
|
|
4973
5526
|
});
|
|
4974
|
-
|
|
4975
|
-
|
|
4976
|
-
|
|
4977
|
-
this.applyColumnClasses();
|
|
4978
|
-
setTimeout(() => {
|
|
4979
|
-
this.applyMaxWidth();
|
|
4980
|
-
}, 10);
|
|
4981
|
-
}
|
|
5527
|
+
toObservable(this.columns)
|
|
5528
|
+
.pipe(first())
|
|
5529
|
+
.subscribe(columns => this.initializeColumnOrder(columns));
|
|
4982
5530
|
}
|
|
4983
5531
|
/**
|
|
4984
|
-
*
|
|
5532
|
+
* Initializes the index order of the columns as they are rendered.
|
|
4985
5533
|
*/
|
|
4986
|
-
|
|
4987
|
-
|
|
4988
|
-
|
|
4989
|
-
|
|
4990
|
-
|
|
4991
|
-
|
|
4992
|
-
|
|
4993
|
-
|
|
4994
|
-
|
|
4995
|
-
|
|
4996
|
-
|
|
4997
|
-
|
|
4998
|
-
|
|
4999
|
-
|
|
5000
|
-
|
|
5001
|
-
|
|
5002
|
-
|
|
5003
|
-
|
|
5004
|
-
|
|
5005
|
-
|
|
5006
|
-
|
|
5007
|
-
|
|
5008
|
-
|
|
5009
|
-
|
|
5010
|
-
|
|
5011
|
-
|
|
5012
|
-
|
|
5013
|
-
|
|
5014
|
-
|
|
5015
|
-
|
|
5016
|
-
|
|
5017
|
-
|
|
5018
|
-
|
|
5019
|
-
|
|
5020
|
-
|
|
5021
|
-
|
|
5534
|
+
initializeColumnOrder(columns) {
|
|
5535
|
+
const idsInOrder = columns.map(column => column.columnId);
|
|
5536
|
+
this._columnState.initializeOrder(idsInOrder);
|
|
5537
|
+
}
|
|
5538
|
+
renderAllRules(headers, rows) {
|
|
5539
|
+
this.render(this.rules, headers, rows);
|
|
5540
|
+
}
|
|
5541
|
+
renderRuleByKey(key, headers, rows) {
|
|
5542
|
+
this.renderRulesByKeys([key], headers, rows);
|
|
5543
|
+
}
|
|
5544
|
+
renderRulesByKeys(keys, headers, rows) {
|
|
5545
|
+
const keySet = new Set(keys);
|
|
5546
|
+
const activeRules = this.rules.filter(rule => keySet.has(rule.key));
|
|
5547
|
+
this.render(activeRules, headers, rows);
|
|
5548
|
+
}
|
|
5549
|
+
render(activeRules, headers, rows) {
|
|
5550
|
+
const columnStates = this._columnState.columns();
|
|
5551
|
+
const statesByIdx = new Map(columnStates.map(state => [state.columnIndex, state]));
|
|
5552
|
+
const firstVisibleIndex = headers.findIndex((_, idx) => !statesByIdx.get(idx)?.hidden);
|
|
5553
|
+
const contexts = headers.map((header, idx) => ({
|
|
5554
|
+
index: idx,
|
|
5555
|
+
isFirstVisible: idx === firstVisibleIndex,
|
|
5556
|
+
header,
|
|
5557
|
+
state: statesByIdx.get(idx),
|
|
5558
|
+
}));
|
|
5559
|
+
const unstableLayoutRules = activeRules.filter(r => r.layoutPhase === 'unstable');
|
|
5560
|
+
const stableLayoutRules = activeRules.filter(r => r.layoutPhase === 'stable');
|
|
5561
|
+
// Phase 1: apply all DOM-mutating rules (classes, display)
|
|
5562
|
+
if (unstableLayoutRules.length) {
|
|
5563
|
+
this.applyRules(unstableLayoutRules, contexts, rows);
|
|
5564
|
+
}
|
|
5565
|
+
// Phase 2: stable - apply all DOM-reading rules (browser reflows on first read after mutations)
|
|
5566
|
+
if (stableLayoutRules.length) {
|
|
5567
|
+
this.applyRules(stableLayoutRules, contexts, rows);
|
|
5568
|
+
}
|
|
5569
|
+
}
|
|
5570
|
+
applyRules(activeRules, contexts, rows) {
|
|
5571
|
+
for (const ctx of contexts) {
|
|
5572
|
+
const preparedRules = activeRules
|
|
5573
|
+
.map(rule => ({ rule, data: rule.prepareData(ctx) }))
|
|
5574
|
+
.filter((x) => x.data !== null);
|
|
5575
|
+
if (ctx.header) {
|
|
5576
|
+
for (const { rule, data } of preparedRules) {
|
|
5577
|
+
rule.applyHeader?.(ctx.header, data, ctx);
|
|
5578
|
+
}
|
|
5022
5579
|
}
|
|
5023
|
-
|
|
5024
|
-
|
|
5580
|
+
for (const row of rows) {
|
|
5581
|
+
const cell = row.cells()[ctx.index];
|
|
5582
|
+
if (!cell) {
|
|
5583
|
+
continue;
|
|
5584
|
+
}
|
|
5585
|
+
for (const { rule, data } of preparedRules) {
|
|
5586
|
+
rule.applyCell?.(cell, data, ctx);
|
|
5587
|
+
}
|
|
5025
5588
|
}
|
|
5026
5589
|
}
|
|
5027
5590
|
}
|
|
5028
|
-
|
|
5029
|
-
|
|
5030
|
-
|
|
5031
|
-
|
|
5591
|
+
createClassesRule() {
|
|
5592
|
+
return {
|
|
5593
|
+
key: 'classes',
|
|
5594
|
+
layoutPhase: 'unstable',
|
|
5595
|
+
prepareData: ctx => {
|
|
5596
|
+
if (!ctx.header) {
|
|
5597
|
+
return null;
|
|
5598
|
+
}
|
|
5599
|
+
const classes = ctx.header.getColumnClasses();
|
|
5600
|
+
return { classes: classes.length ? classes : ['clr-col'], useDefault: classes.length === 0 };
|
|
5601
|
+
},
|
|
5602
|
+
applyHeader: (header, data) => {
|
|
5603
|
+
if (data.useDefault) {
|
|
5604
|
+
header.setDefaultColumnClass();
|
|
5605
|
+
}
|
|
5606
|
+
},
|
|
5607
|
+
applyCell: (cell, data) => {
|
|
5608
|
+
cell.setColumnClasses(data.classes);
|
|
5609
|
+
},
|
|
5610
|
+
};
|
|
5611
|
+
}
|
|
5612
|
+
createFirstColumnWidthRule() {
|
|
5613
|
+
return {
|
|
5614
|
+
key: 'first-column-width',
|
|
5615
|
+
layoutPhase: 'stable',
|
|
5616
|
+
prepareData: ctx => {
|
|
5617
|
+
if (!ctx.isFirstVisible || !ctx.header) {
|
|
5618
|
+
return null;
|
|
5619
|
+
}
|
|
5620
|
+
return { width: ctx.header.getWidth() };
|
|
5621
|
+
},
|
|
5622
|
+
applyCell: (cell, data) => {
|
|
5623
|
+
cell.setMaxWidth(data.width);
|
|
5624
|
+
},
|
|
5625
|
+
};
|
|
5626
|
+
}
|
|
5627
|
+
createDisplayRule() {
|
|
5628
|
+
return {
|
|
5629
|
+
key: 'display',
|
|
5630
|
+
layoutPhase: 'unstable',
|
|
5631
|
+
prepareData: ctx => ({ hidden: !!ctx.state?.hidden }),
|
|
5632
|
+
applyHeader: (header, data) => {
|
|
5633
|
+
if (data.hidden) {
|
|
5634
|
+
header.hide();
|
|
5635
|
+
}
|
|
5636
|
+
else {
|
|
5637
|
+
header.show();
|
|
5638
|
+
}
|
|
5639
|
+
},
|
|
5640
|
+
applyCell: (cell, data) => {
|
|
5641
|
+
if (data.hidden) {
|
|
5642
|
+
cell.hide();
|
|
5643
|
+
}
|
|
5644
|
+
else {
|
|
5645
|
+
cell.show();
|
|
5646
|
+
}
|
|
5647
|
+
},
|
|
5648
|
+
};
|
|
5032
5649
|
}
|
|
5033
5650
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: TreetableMainRenderer, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
5034
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "
|
|
5651
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "21.2.17", type: TreetableMainRenderer, isStandalone: false, selector: "clr-treetable", queries: [{ propertyName: "headers", predicate: TreetableHeaderRenderer, isSignal: true }, { propertyName: "rows", predicate: TreetableRowRenderer, descendants: true, isSignal: true }, { propertyName: "columns", predicate: ClrTreetableColumn, isSignal: true }], ngImport: i0 }); }
|
|
5035
5652
|
}
|
|
5036
5653
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: TreetableMainRenderer, decorators: [{
|
|
5037
5654
|
type: Directive,
|
|
@@ -5039,16 +5656,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
5039
5656
|
selector: 'clr-treetable',
|
|
5040
5657
|
standalone: false,
|
|
5041
5658
|
}]
|
|
5042
|
-
}], propDecorators: { headers: [{
|
|
5043
|
-
type: ContentChildren,
|
|
5044
|
-
args: [TreetableHeaderRenderer]
|
|
5045
|
-
}], rows: [{
|
|
5046
|
-
type: ContentChildren,
|
|
5047
|
-
args: [TreetableRowRenderer, { descendants: true }]
|
|
5048
|
-
}], columns: [{
|
|
5049
|
-
type: ContentChildren,
|
|
5050
|
-
args: [ClrTreetableColumn]
|
|
5051
|
-
}] } });
|
|
5659
|
+
}], ctorParameters: () => [], propDecorators: { headers: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => TreetableHeaderRenderer), { isSignal: true }] }], rows: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => TreetableRowRenderer), { ...{ descendants: true }, isSignal: true }] }], columns: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => ClrTreetableColumn), { isSignal: true }] }] } });
|
|
5052
5660
|
|
|
5053
5661
|
/*
|
|
5054
5662
|
* Copyright (c) 2018-2025 Porsche Informatik. All Rights Reserved.
|
|
@@ -5213,6 +5821,8 @@ const CLR_TREETABLE_DIRECTIVES = [
|
|
|
5213
5821
|
ClrTreetableRow,
|
|
5214
5822
|
ClrTreetableCell,
|
|
5215
5823
|
ClrTreetableColumn,
|
|
5824
|
+
ClrTreetableHideableColumn,
|
|
5825
|
+
ClrTreetableFooter,
|
|
5216
5826
|
ClrTreetablePlaceholder,
|
|
5217
5827
|
ClrTreetableActionOverflow,
|
|
5218
5828
|
TreetableMainRenderer,
|
|
@@ -5232,6 +5842,8 @@ class ClrTreetableModule {
|
|
|
5232
5842
|
ClrTreetableRow,
|
|
5233
5843
|
ClrTreetableCell,
|
|
5234
5844
|
ClrTreetableColumn,
|
|
5845
|
+
ClrTreetableHideableColumn,
|
|
5846
|
+
ClrTreetableFooter,
|
|
5235
5847
|
ClrTreetablePlaceholder,
|
|
5236
5848
|
ClrTreetableActionOverflow,
|
|
5237
5849
|
TreetableMainRenderer,
|
|
@@ -5240,10 +5852,14 @@ class ClrTreetableModule {
|
|
|
5240
5852
|
TreetableCellRenderer,
|
|
5241
5853
|
TreetableItemsDirective,
|
|
5242
5854
|
ClrTreetableFilter,
|
|
5243
|
-
ClrTreetableStringFilter, ClrTreetableRecursiveRows,
|
|
5855
|
+
ClrTreetableStringFilter, ClrTreetableRecursiveRows,
|
|
5856
|
+
ClrTreetableRowCheckbox,
|
|
5857
|
+
ClrTreetableColumnManagerMenuComponent], imports: [CommonModule, ClarityModule, ReactiveFormsModule, FormsModule, CdkTrapFocusModule], exports: [ClrTreetable,
|
|
5244
5858
|
ClrTreetableRow,
|
|
5245
5859
|
ClrTreetableCell,
|
|
5246
5860
|
ClrTreetableColumn,
|
|
5861
|
+
ClrTreetableHideableColumn,
|
|
5862
|
+
ClrTreetableFooter,
|
|
5247
5863
|
ClrTreetablePlaceholder,
|
|
5248
5864
|
ClrTreetableActionOverflow,
|
|
5249
5865
|
TreetableMainRenderer,
|
|
@@ -5253,13 +5869,18 @@ class ClrTreetableModule {
|
|
|
5253
5869
|
TreetableItemsDirective,
|
|
5254
5870
|
ClrTreetableFilter,
|
|
5255
5871
|
ClrTreetableStringFilter] }); }
|
|
5256
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: ClrTreetableModule, imports: [CommonModule, ClarityModule, ReactiveFormsModule, FormsModule] }); }
|
|
5872
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: ClrTreetableModule, imports: [CommonModule, ClarityModule, ReactiveFormsModule, FormsModule, CdkTrapFocusModule] }); }
|
|
5257
5873
|
}
|
|
5258
5874
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImport: i0, type: ClrTreetableModule, decorators: [{
|
|
5259
5875
|
type: NgModule,
|
|
5260
5876
|
args: [{
|
|
5261
|
-
imports: [CommonModule, ClarityModule, ReactiveFormsModule, FormsModule],
|
|
5262
|
-
declarations: [
|
|
5877
|
+
imports: [CommonModule, ClarityModule, ReactiveFormsModule, FormsModule, CdkTrapFocusModule],
|
|
5878
|
+
declarations: [
|
|
5879
|
+
CLR_TREETABLE_DIRECTIVES,
|
|
5880
|
+
ClrTreetableRecursiveRows,
|
|
5881
|
+
ClrTreetableRowCheckbox,
|
|
5882
|
+
ClrTreetableColumnManagerMenuComponent,
|
|
5883
|
+
],
|
|
5263
5884
|
exports: [CLR_TREETABLE_DIRECTIVES],
|
|
5264
5885
|
}]
|
|
5265
5886
|
}], ctorParameters: () => [] });
|
|
@@ -5283,7 +5904,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
5283
5904
|
*/
|
|
5284
5905
|
|
|
5285
5906
|
/*
|
|
5286
|
-
* Copyright (c) 2018-
|
|
5907
|
+
* Copyright (c) 2018-2026 Porsche Informatik. All Rights Reserved.
|
|
5287
5908
|
* This software is released under MIT license.
|
|
5288
5909
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
5289
5910
|
*/
|
|
@@ -6517,6 +7138,14 @@ const skip_forward = clrIconSVG('<g id="24px/skip forward"> <path id="Shape" fil
|
|
|
6517
7138
|
const software_download_app = clrIconSVG('<g id="24px/software download [APP]"> <path id="Shape" fill-rule="evenodd" clip-rule="evenodd" d="M18.761 7.1219C17.7695 4.29783 15.0831 2.33496 12 2.33496L11.7586 2.33895C7.99336 2.46356 4.96356 5.49336 4.83895 9.25865L4.83696 9.33896L4.58685 9.35519C2.48052 9.56259 0.834961 11.3391 0.834961 13.5C0.834961 15.8002 2.69969 17.665 4.99996 17.665H8.49996V16.335H4.99996L4.82726 16.3298C3.34195 16.2405 2.16496 15.0077 2.16496 13.5C2.16496 11.9342 3.43423 10.665 4.99996 10.665C5.1435 10.665 5.28547 10.6756 5.42517 10.6965L6.26447 10.8225L6.18603 9.97745L6.1702 9.74394L6.16496 9.49996C6.16496 6.27738 8.77738 3.66496 12 3.66496C14.7242 3.66496 17.0687 5.54737 17.6814 8.16377L17.793 8.64026L18.2811 8.67543L18.4792 8.69485C20.3794 8.9308 21.835 10.5535 21.835 12.5C21.835 14.618 20.118 16.335 18 16.335H15.5V17.665H18L18.2183 17.6604C20.9696 17.546 23.165 15.2794 23.165 12.5L23.1601 12.2751C23.0576 9.88836 21.3307 7.90559 19.0361 7.43915L18.853 7.40496L18.761 7.1219ZM12.66 19.45V13H11.34V19.45L10.15 18.14L9.15996 19.03L9.53257 19.4451C11.472 21.6028 11.6367 21.7229 11.9438 21.7296H12.0561C12.3167 21.7239 12.4747 21.6366 13.7013 20.2923L14.84 19.03L13.84 18.14L12.66 19.45Z" /> </g> ', '0 0 24 24');
|
|
6518
7139
|
const sorting_app = clrIconSVG('<g id="24px/sorting [APP]"> <path id="Shape" fill-rule="evenodd" clip-rule="evenodd" d="M2.77007 8.77004L1.82007 7.82004C4.96007 4.45004 6.39007 3.04004 6.96007 3.04004C7.53007 3.04004 8.96007 4.45004 12.1801 7.82004L11.2301 8.77004C10.8254 8.35271 10.4507 7.96537 10.1041 7.60707C9.35439 6.83207 8.73611 6.19292 8.23007 5.68004L7.68007 5.14004V20.04H6.36007V5.11004C6.25127 5.20675 6.13882 5.31807 6.0183 5.43738C5.93942 5.51546 5.85709 5.59697 5.77007 5.68004C4.99007 6.43004 4.01007 7.45004 2.77007 8.77004ZM21.2301 15.31L22.1801 16.26C19.0401 19.63 17.6101 21.04 17.0401 21.04C16.4701 21.04 15.0401 19.63 11.8201 16.26L12.7701 15.31C13.1747 15.7274 13.5494 16.1147 13.896 16.473C14.6457 17.248 15.264 17.8872 15.7701 18.4L16.3201 18.94V4.04004H17.6401V18.97C17.7489 18.8733 17.8613 18.762 17.9818 18.6427C18.0607 18.5646 18.143 18.4831 18.2301 18.4C19.0101 17.65 19.9901 16.63 21.2301 15.31Z" /> </g> ', '0 0 24 24');
|
|
6519
7140
|
const sound = clrIconSVG('<g id="24px/sound"> <path id="Shape" fill-rule="evenodd" clip-rule="evenodd" d="M13.3599 1.21002C15.0665 1.37858 16.59 2.35211 17.4599 3.83002C18.1999 5.21002 17.9999 7.63002 16.8799 11.22L15.6099 10.82C16.8599 6.85002 16.6699 5.17002 16.2899 4.45002C15.7749 3.56072 14.9123 2.92648 13.9099 2.70002V18.91C13.9188 20.7431 12.6468 22.3336 10.8566 22.7279C9.06647 23.1222 7.24395 22.2132 6.48196 20.546C5.71997 18.8788 6.22531 16.9058 7.69496 15.8102C9.1646 14.7146 11.1997 14.7937 12.5799 16V1.08002L13.3599 1.21002ZM7.4199 18.89C7.4199 20.3149 8.57501 21.47 9.9999 21.47C11.4225 21.4645 12.5744 20.3126 12.5799 18.89C12.5799 17.4651 11.4248 16.31 9.9999 16.31C8.57501 16.31 7.4199 17.4651 7.4199 18.89Z" /> </g> ', '0 0 24 24');
|
|
7141
|
+
const sparkles = clrIconSVG('<g id="36px/sparkles" transform="matrix(2.145977,0,0,1.979201,-9.797101,-5.151016)">\n' +
|
|
7142
|
+
' <g transform="matrix(0.583979,0,0,0.633187,0.601632,-0.765988)">\n' +
|
|
7143
|
+
' <path d="M21.151,10.108C21.151,12.187 21.828,14.944 23.859,16.975C25.89,19.006 28.647,19.683 30.726,19.683C28.647,19.683 25.89,20.36 23.859,22.392C21.828,24.423 21.151,27.179 21.151,29.259C21.151,27.179 20.473,24.423 18.442,22.392C16.411,20.36 13.655,19.683 11.575,19.683C13.655,19.683 16.411,19.006 18.442,16.975C20.473,14.944 21.151,12.187 21.151,10.108Z" style="fill:none;stroke:black;stroke-width:1.6px;"/>\n' +
|
|
7144
|
+
' </g>\n' +
|
|
7145
|
+
' <g transform="matrix(0.179686,0,0,0.194827,13.023949,12.059837)">\n' +
|
|
7146
|
+
' <path d="M21.151,10.108C21.151,12.187 21.828,14.944 23.859,16.975C25.89,19.006 28.647,19.683 30.726,19.683C28.647,19.683 25.89,20.36 23.859,22.392C21.828,24.423 21.151,27.179 21.151,29.259C21.151,27.179 20.473,24.423 18.442,22.392C16.411,20.36 13.655,19.683 11.575,19.683C13.655,19.683 16.411,19.006 18.442,16.975C20.473,14.944 21.151,12.187 21.151,10.108Z" style="fill:none;stroke:black;stroke-width:5.19px;"/>\n' +
|
|
7147
|
+
' </g>\n' +
|
|
7148
|
+
' </g>', '0 0 36 36');
|
|
6520
7149
|
const standard_equipment = clrIconSVG('<g id="24px/standard equipment"> <path id="Shape" fill-rule="evenodd" clip-rule="evenodd" d="M17.1562 3.15H18.2053C19.3996 3.15116 20.3677 4.11875 20.3695 5.3131V20.8239C20.3682 22.0186 19.4 22.9867 18.2054 22.988H5.86405C4.66938 22.9867 3.70122 22.0186 3.69995 20.8239V5.3132C3.7016 4.11883 4.66968 3.15116 5.86405 3.15H7.00105V2H17.1562V3.15ZM15.8262 3.33H8.33105V3.66C8.33116 4.21162 8.77834 4.65874 9.32995 4.6588H14.8274C15.379 4.6588 15.8262 4.21162 15.8262 3.66V3.33ZM19.0393 20.8238C19.0388 21.2842 18.6657 21.6574 18.2053 21.6578H5.86405C5.40363 21.6574 5.03049 21.2842 5.03005 20.8238V5.3131C5.03093 4.85302 5.40397 4.48043 5.86405 4.4801H7.15735C7.49727 5.38579 8.36218 5.98663 9.32955 5.9891H14.8274C15.7947 5.98659 16.6595 5.38576 16.9995 4.4801H18.2052C18.6652 4.48043 19.0383 4.85302 19.0392 5.3131V20.8238H19.0393ZM9.98135 16.6212L11.4854 17.8622L14.5334 14.8242L15.4724 15.7662L11.5694 19.6552L9.13535 17.6472L9.98135 16.6212ZM7.80405 8.351H16.8041V9.651H7.80405V8.351ZM16.8041 11.6512H7.80405V12.9512H16.8041V11.6512Z" /> </g> ', '0 0 24 24');
|
|
6521
7150
|
const star_outline = clrIconSVG('<g id="24px/star outline"> <path id="Shape" fill-rule="evenodd" clip-rule="evenodd" d="M12.0001 18.12L18.4201 22.62L19.4301 21.9L17.1201 14.45L23.3901 9.69001L23.0001 8.50001L15.2201 8.38001L12.6401 0.950012H11.3801L8.8701 8.34001L1.0001 8.50001L0.600098 9.67001L6.9001 14.35L4.6201 21.88L5.6201 22.62L12.0001 18.12ZM7.6701 13.37L2.9301 9.77001L8.8401 9.65001C9.36636 9.63682 9.82896 9.29785 10.0001 8.80001L12.0001 3.17001L14.0001 8.80001C14.1588 9.26895 14.5774 9.60149 15.0701 9.65001L21.0701 9.77001L16.3301 13.37C15.9094 13.6839 15.7297 14.2272 15.8801 14.73L17.6101 20.43L12.7201 17.03C12.2874 16.7287 11.7128 16.7287 11.2801 17.03L6.3901 20.43L8.1201 14.73C8.2705 14.2272 8.09075 13.6839 7.6701 13.37Z" /> </g> ', '0 0 24 24');
|
|
6522
7151
|
const statistic_app = clrIconSVG('<g id="24px/statistic [APP]"> <path id="Shape" d="M3.66496 3V20.335H6.83396L6.83496 12.5H8.16496L8.16396 20.335H11.334L11.335 8.5H12.665L12.664 20.335H15.834L15.835 14.5H17.165L17.164 20.335H22V21.665H2.33496V3H3.66496Z" /> </g> ', '0 0 24 24');
|
|
@@ -10694,6 +11323,7 @@ const skipForwardIcon = buildIconShapeTuple('skip-forward', skip_forward);
|
|
|
10694
11323
|
const softwareDownloadAppIcon = buildIconShapeTuple('software-download-app', software_download_app);
|
|
10695
11324
|
const sortingAppIcon = buildIconShapeTuple('sorting-app', sorting_app);
|
|
10696
11325
|
const soundIcon = buildIconShapeTuple('sound', sound);
|
|
11326
|
+
const sparklesIcon = buildIconShapeTuple('sparkles', sparkles);
|
|
10697
11327
|
const standardEquipmentIcon = buildIconShapeTuple('standard-equipment', standard_equipment);
|
|
10698
11328
|
const starOutlineIcon = buildIconShapeTuple('star-outline', star_outline);
|
|
10699
11329
|
const statisticAppIcon = buildIconShapeTuple('statistic-app', statistic_app);
|
|
@@ -11260,6 +11890,7 @@ const allIcons = [
|
|
|
11260
11890
|
softwareDownloadAppIcon,
|
|
11261
11891
|
sortingAppIcon,
|
|
11262
11892
|
soundIcon,
|
|
11893
|
+
sparklesIcon,
|
|
11263
11894
|
standardEquipmentIcon,
|
|
11264
11895
|
starOutlineIcon,
|
|
11265
11896
|
statisticAppIcon,
|
|
@@ -17202,5 +17833,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.17", ngImpo
|
|
|
17202
17833
|
* Generated bundle index. Do not edit.
|
|
17203
17834
|
*/
|
|
17204
17835
|
|
|
17205
|
-
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, 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, Sort, 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, 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 };
|
|
17836
|
+
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 };
|
|
17206
17837
|
//# sourceMappingURL=porscheinformatik-clr-addons.mjs.map
|