@porscheinformatik/clr-addons 18.1.9 → 18.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/clr-addons.module.d.ts +2 -1
- package/datagrid/datagrid-state-persistence/datagrid-state-persistence-model.interface.d.ts +1 -0
- package/datagrid/datagrid-state-persistence/state-persistence-key.directive.d.ts +12 -2
- package/datagrid/datagrid-state-persistence/state-persistence-options.interface.d.ts +1 -0
- package/esm2022/clr-addons.module.mjs +7 -3
- package/esm2022/datagrid/datagrid-state-persistence/datagrid-state-persistence-model.interface.mjs +1 -1
- package/esm2022/datagrid/datagrid-state-persistence/state-persistence-key.directive.mjs +67 -8
- package/esm2022/datagrid/datagrid-state-persistence/state-persistence-options.interface.mjs +1 -1
- package/esm2022/index.mjs +2 -1
- package/esm2022/numericfield/numeric-field.mjs +6 -98
- package/esm2022/readonly/index.mjs +8 -0
- package/esm2022/readonly/readonly.directive.mjs +149 -0
- package/esm2022/readonly/readonly.module.mjs +16 -0
- package/esm2022/util/index.mjs +2 -1
- package/esm2022/util/numeric.format.util.mjs +99 -0
- package/fesm2022/clr-addons.mjs +360 -128
- package/fesm2022/clr-addons.mjs.map +1 -1
- package/index.d.ts +1 -0
- package/numericfield/numeric-field.d.ts +0 -3
- package/package.json +1 -1
- package/readonly/index.d.ts +2 -0
- package/readonly/readonly.directive.d.ts +31 -0
- package/readonly/readonly.module.d.ts +7 -0
- package/styles/clr-addons-phs.css +14 -0
- 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/util/index.d.ts +1 -0
- package/util/numeric.format.util.d.ts +2 -0
package/fesm2022/clr-addons.mjs
CHANGED
|
@@ -4,9 +4,9 @@ import * as i1 from '@angular/common';
|
|
|
4
4
|
import { CommonModule, DOCUMENT, getLocaleDateFormat, FormatWidth } from '@angular/common';
|
|
5
5
|
import { ClarityIcons, arrowIcon, angleIcon, timesIcon, trashIcon, plusCircleIcon, exclamationCircleIcon, searchIcon, ellipsisVerticalIcon, pencilIcon, historyIcon, treeViewIcon, organizationIcon, calendarIcon, checkCircleIcon, windowCloseIcon, exclamationTriangleIcon } from '@cds/core/icon';
|
|
6
6
|
import * as i2 from '@clr/angular';
|
|
7
|
-
import { ClarityModule, ClrFormsModule, ClrDropdown, ClrForm, ClrAlert, ClrAxis, ClrSide, ClrAlignment, ClrPopoverToggleService, ClrPopoverEventsService, ClrPopoverPositionService, ClrIconModule, ClrDropdownModule, ClrDatagridSortOrder, DatagridPropertyComparator, ClrDatagridPagination, ClrDatagridFilter, ClrDateContainer, ClrLabel, ClrControlHelper, ClrControlError, ClrControlSuccess, ClrDatepickerModule } from '@clr/angular';
|
|
7
|
+
import { ClarityModule, ClrFormsModule, ClrDropdown, ClrForm, ClrAlert, ClrAxis, ClrSide, ClrAlignment, ClrPopoverToggleService, ClrPopoverEventsService, ClrPopoverPositionService, ClrIconModule, ClrDropdownModule, ClrDatagridSortOrder, DatagridPropertyComparator, ClrDatagridPagination, ClrDatagridFilter, ClrDatagridColumn, ClrDateContainer, ClrLabel, ClrControlHelper, ClrControlError, ClrControlSuccess, ClrDatepickerModule } from '@clr/angular';
|
|
8
8
|
import * as i3$1 from '@angular/forms';
|
|
9
|
-
import { FormsModule, NG_VALIDATORS, NgControl, NG_VALUE_ACCESSOR, FormControl, ReactiveFormsModule } from '@angular/forms';
|
|
9
|
+
import { FormsModule, NG_VALIDATORS, NgControl, NG_VALUE_ACCESSOR, FormControl, ReactiveFormsModule, NgModel } from '@angular/forms';
|
|
10
10
|
import { Subject, BehaviorSubject, timer, asyncScheduler, interval, takeUntil as takeUntil$1, of, ReplaySubject, delay } from 'rxjs';
|
|
11
11
|
import { takeUntil, take, observeOn } from 'rxjs/operators';
|
|
12
12
|
import * as i3 from '@angular/router';
|
|
@@ -2294,7 +2294,132 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
|
|
|
2294
2294
|
*/
|
|
2295
2295
|
|
|
2296
2296
|
/*
|
|
2297
|
-
* Copyright (c) 2018
|
|
2297
|
+
* Copyright (c) 2018 Porsche Informatik. All Rights Reserved.
|
|
2298
|
+
* This software is released under MIT license.
|
|
2299
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
2300
|
+
*/
|
|
2301
|
+
const entityMap = new Map([
|
|
2302
|
+
['&', '&'],
|
|
2303
|
+
['<', '<'],
|
|
2304
|
+
['>', '>'],
|
|
2305
|
+
['"', '"'],
|
|
2306
|
+
["'", '''],
|
|
2307
|
+
['/', '/'],
|
|
2308
|
+
]);
|
|
2309
|
+
function escapeHtml(source) {
|
|
2310
|
+
return source.replace(/[&<>"'/]/g, s => entityMap.get(s));
|
|
2311
|
+
}
|
|
2312
|
+
function escapeRegex(s) {
|
|
2313
|
+
return String(s).replace(/[\\^$*+?.()|[\]{}]/g, '\\$&');
|
|
2314
|
+
}
|
|
2315
|
+
|
|
2316
|
+
const NEGATIVE$1 = '-';
|
|
2317
|
+
const NUMBERS$1 = new Set(['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']);
|
|
2318
|
+
function formatNumber(value, finalFormatting, decimalSeparator, groupingSeparator, decimalPlaces, autofillDecimals) {
|
|
2319
|
+
let result = strip(value, finalFormatting, decimalSeparator, groupingSeparator, decimalPlaces);
|
|
2320
|
+
/* add grouping separator */
|
|
2321
|
+
const decimalIndex = result.indexOf(decimalSeparator);
|
|
2322
|
+
const isNegative = result[0] === NEGATIVE$1;
|
|
2323
|
+
let i = decimalIndex > -1 ? decimalIndex : result.length;
|
|
2324
|
+
while (i > (isNegative ? 4 : 3)) {
|
|
2325
|
+
i -= 3;
|
|
2326
|
+
result = result.substring(0, i) + groupingSeparator + result.substring(i, result.length);
|
|
2327
|
+
}
|
|
2328
|
+
if (finalFormatting) {
|
|
2329
|
+
if (decimalPlaces > 0 && !!result) {
|
|
2330
|
+
/* autofill decimal places */
|
|
2331
|
+
let actualDecimalIndex = result.indexOf(decimalSeparator);
|
|
2332
|
+
if (autofillDecimals) {
|
|
2333
|
+
if (actualDecimalIndex === -1) {
|
|
2334
|
+
actualDecimalIndex = result.length;
|
|
2335
|
+
result += decimalSeparator;
|
|
2336
|
+
}
|
|
2337
|
+
result = addMissingLeadingZero(result, actualDecimalIndex);
|
|
2338
|
+
actualDecimalIndex = result.indexOf(decimalSeparator);
|
|
2339
|
+
const actualDecimalPlaces = result.length - actualDecimalIndex - 1;
|
|
2340
|
+
for (let j = 0; j < decimalPlaces - actualDecimalPlaces; j++) {
|
|
2341
|
+
result += '0';
|
|
2342
|
+
}
|
|
2343
|
+
}
|
|
2344
|
+
else {
|
|
2345
|
+
result = addMissingLeadingZero(result, actualDecimalIndex);
|
|
2346
|
+
}
|
|
2347
|
+
}
|
|
2348
|
+
}
|
|
2349
|
+
return result;
|
|
2350
|
+
}
|
|
2351
|
+
function addMissingLeadingZero(result, actualDecimalIndex) {
|
|
2352
|
+
const isNegative = result[0] === NEGATIVE$1;
|
|
2353
|
+
/* autoadd a zero before decimal separator, when it's missing */
|
|
2354
|
+
if (actualDecimalIndex === 0) {
|
|
2355
|
+
result = '0' + result;
|
|
2356
|
+
}
|
|
2357
|
+
/* autoadd a zero before decimal separator, when it's missing, for negative values */
|
|
2358
|
+
if (actualDecimalIndex === 1 && isNegative) {
|
|
2359
|
+
result = result[0] + '0' + result.substring(1, result.length);
|
|
2360
|
+
}
|
|
2361
|
+
return result;
|
|
2362
|
+
}
|
|
2363
|
+
function strip(value, removeLeadingZeros = false, decimalSeparator, groupingSeparator, decimalPlaces) {
|
|
2364
|
+
const allowedKeys = new Set(NUMBERS$1);
|
|
2365
|
+
allowedKeys.add(NEGATIVE$1);
|
|
2366
|
+
allowedKeys.add(decimalSeparator);
|
|
2367
|
+
let result = '';
|
|
2368
|
+
let indexDecimalSep = -1;
|
|
2369
|
+
let j = -1;
|
|
2370
|
+
let ignoredChars = 0;
|
|
2371
|
+
for (const char of value) {
|
|
2372
|
+
j++;
|
|
2373
|
+
if (allowedKeys.has(char)) {
|
|
2374
|
+
if (char === decimalSeparator) {
|
|
2375
|
+
if (decimalPlaces === 0) {
|
|
2376
|
+
/* dismiss content after a decimal separator, when no places allowed */
|
|
2377
|
+
break;
|
|
2378
|
+
}
|
|
2379
|
+
else if (indexDecimalSep > -1) {
|
|
2380
|
+
/* ignore subsequent decimal separators */
|
|
2381
|
+
continue;
|
|
2382
|
+
}
|
|
2383
|
+
indexDecimalSep = j;
|
|
2384
|
+
}
|
|
2385
|
+
if (char === '0' && removeLeadingZeros) {
|
|
2386
|
+
/* remove leading zero only if it's not the only zero in the 'value' string */
|
|
2387
|
+
if ((result.length === 0 && j + 1 !== value.length) || result === NEGATIVE$1) {
|
|
2388
|
+
ignoredChars++;
|
|
2389
|
+
continue;
|
|
2390
|
+
}
|
|
2391
|
+
}
|
|
2392
|
+
if (char === NEGATIVE$1 && j > 0) {
|
|
2393
|
+
/* dismiss content after a negative sign not on first position */
|
|
2394
|
+
break;
|
|
2395
|
+
}
|
|
2396
|
+
if (indexDecimalSep > -1 && result.length + ignoredChars > indexDecimalSep + decimalPlaces) {
|
|
2397
|
+
/* dismiss content after maximum decimal places reached */
|
|
2398
|
+
break;
|
|
2399
|
+
}
|
|
2400
|
+
result += char;
|
|
2401
|
+
}
|
|
2402
|
+
else if (char === groupingSeparator) {
|
|
2403
|
+
if (indexDecimalSep === -1) {
|
|
2404
|
+
ignoredChars++;
|
|
2405
|
+
}
|
|
2406
|
+
}
|
|
2407
|
+
else {
|
|
2408
|
+
/* dismiss content after a invalid character */
|
|
2409
|
+
break;
|
|
2410
|
+
}
|
|
2411
|
+
}
|
|
2412
|
+
return result;
|
|
2413
|
+
}
|
|
2414
|
+
|
|
2415
|
+
/*
|
|
2416
|
+
* Copyright (c) 2018 Porsche Informatik. All Rights Reserved.
|
|
2417
|
+
* This software is released under MIT license.
|
|
2418
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
2419
|
+
*/
|
|
2420
|
+
|
|
2421
|
+
/*
|
|
2422
|
+
* Copyright (c) 2018-2024 Porsche Informatik. All Rights Reserved.
|
|
2298
2423
|
* This software is released under MIT license.
|
|
2299
2424
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
2300
2425
|
*/
|
|
@@ -2429,114 +2554,21 @@ class ClrNumericField {
|
|
|
2429
2554
|
this.injectUnitSymbol();
|
|
2430
2555
|
}
|
|
2431
2556
|
handleInputChanged() {
|
|
2432
|
-
this.updateInput(
|
|
2557
|
+
this.updateInput(formatNumber(this._numericValue.toString().replace(new RegExp('[.]', 'g'), this.decimalSeparator), true, this.decimalSeparator, this.groupingSeparator, this.decimalPlaces, this.autofillDecimals), true);
|
|
2433
2558
|
}
|
|
2434
2559
|
formatInput(element, finalFormatting) {
|
|
2435
2560
|
const cursorPos = element.selectionStart;
|
|
2436
2561
|
const length = element.value.length;
|
|
2437
2562
|
const setCursor = this.displayValue !== element.value;
|
|
2438
|
-
this.updateInput(
|
|
2563
|
+
this.updateInput(formatNumber(element.value, finalFormatting, this.decimalSeparator, this.groupingSeparator, this.decimalPlaces, this.autofillDecimals), false);
|
|
2439
2564
|
if (setCursor) {
|
|
2440
2565
|
element.selectionStart = element.selectionEnd = Math.max(cursorPos + element.value.length - length, 0);
|
|
2441
2566
|
}
|
|
2442
2567
|
}
|
|
2443
|
-
formatNumber(value, finalFormatting) {
|
|
2444
|
-
let result = this.strip(value, finalFormatting);
|
|
2445
|
-
/* add grouping separator */
|
|
2446
|
-
const decimalIndex = result.indexOf(this.decimalSeparator);
|
|
2447
|
-
const isNegative = result[0] === NEGATIVE;
|
|
2448
|
-
let i = decimalIndex > -1 ? decimalIndex : result.length;
|
|
2449
|
-
while (i > (isNegative ? 4 : 3)) {
|
|
2450
|
-
i -= 3;
|
|
2451
|
-
result = result.substring(0, i) + this.groupingSeparator + result.substring(i, result.length);
|
|
2452
|
-
}
|
|
2453
|
-
if (finalFormatting) {
|
|
2454
|
-
if (this.decimalPlaces > 0 && !!result) {
|
|
2455
|
-
/* autofill decimal places */
|
|
2456
|
-
let actualDecimalIndex = result.indexOf(this.decimalSeparator);
|
|
2457
|
-
if (this.autofillDecimals) {
|
|
2458
|
-
if (actualDecimalIndex === -1) {
|
|
2459
|
-
actualDecimalIndex = result.length;
|
|
2460
|
-
result += this.decimalSeparator;
|
|
2461
|
-
}
|
|
2462
|
-
result = this.addMissingLeadingZero(result, actualDecimalIndex);
|
|
2463
|
-
actualDecimalIndex = result.indexOf(this.decimalSeparator);
|
|
2464
|
-
const actualDecimalPlaces = result.length - actualDecimalIndex - 1;
|
|
2465
|
-
for (let j = 0; j < this.decimalPlaces - actualDecimalPlaces; j++) {
|
|
2466
|
-
result += '0';
|
|
2467
|
-
}
|
|
2468
|
-
}
|
|
2469
|
-
else {
|
|
2470
|
-
result = this.addMissingLeadingZero(result, actualDecimalIndex);
|
|
2471
|
-
}
|
|
2472
|
-
}
|
|
2473
|
-
}
|
|
2474
|
-
return result;
|
|
2475
|
-
}
|
|
2476
|
-
addMissingLeadingZero(result, actualDecimalIndex) {
|
|
2477
|
-
const isNegative = result[0] === NEGATIVE;
|
|
2478
|
-
/* autoadd a zero before decimal separator, when it's missing */
|
|
2479
|
-
if (actualDecimalIndex === 0) {
|
|
2480
|
-
result = '0' + result;
|
|
2481
|
-
}
|
|
2482
|
-
/* autoadd a zero before decimal separator, when it's missing, for negative values */
|
|
2483
|
-
if (actualDecimalIndex === 1 && isNegative) {
|
|
2484
|
-
result = result[0] + '0' + result.substring(1, result.length);
|
|
2485
|
-
}
|
|
2486
|
-
return result;
|
|
2487
|
-
}
|
|
2488
|
-
strip(value, removeLeadingZeros = false) {
|
|
2489
|
-
let result = '';
|
|
2490
|
-
let indexDecimalSep = -1;
|
|
2491
|
-
let j = -1;
|
|
2492
|
-
let ignoredChars = 0;
|
|
2493
|
-
for (const char of value) {
|
|
2494
|
-
j++;
|
|
2495
|
-
if (this.allowedKeys.has(char)) {
|
|
2496
|
-
if (char === this.decimalSeparator) {
|
|
2497
|
-
if (this.decimalPlaces === 0) {
|
|
2498
|
-
/* dismiss content after a decimal separator, when no places allowed */
|
|
2499
|
-
break;
|
|
2500
|
-
}
|
|
2501
|
-
else if (indexDecimalSep > -1) {
|
|
2502
|
-
/* ignore subsequent decimal separators */
|
|
2503
|
-
continue;
|
|
2504
|
-
}
|
|
2505
|
-
indexDecimalSep = j;
|
|
2506
|
-
}
|
|
2507
|
-
if (char === '0' && removeLeadingZeros) {
|
|
2508
|
-
/* remove leading zero only if it's not the only zero in the 'value' string */
|
|
2509
|
-
if ((result.length === 0 && j + 1 !== value.length) || result === NEGATIVE) {
|
|
2510
|
-
ignoredChars++;
|
|
2511
|
-
continue;
|
|
2512
|
-
}
|
|
2513
|
-
}
|
|
2514
|
-
if (char === NEGATIVE && j > 0) {
|
|
2515
|
-
/* dismiss content after a negative sign not on first position */
|
|
2516
|
-
break;
|
|
2517
|
-
}
|
|
2518
|
-
if (indexDecimalSep > -1 && result.length + ignoredChars > indexDecimalSep + this.decimalPlaces) {
|
|
2519
|
-
/* dismiss content after maximum decimal places reached */
|
|
2520
|
-
break;
|
|
2521
|
-
}
|
|
2522
|
-
result += char;
|
|
2523
|
-
}
|
|
2524
|
-
else if (char === this.groupingSeparator) {
|
|
2525
|
-
if (indexDecimalSep === -1) {
|
|
2526
|
-
ignoredChars++;
|
|
2527
|
-
}
|
|
2528
|
-
}
|
|
2529
|
-
else {
|
|
2530
|
-
/* dismiss content after a invalid character */
|
|
2531
|
-
break;
|
|
2532
|
-
}
|
|
2533
|
-
}
|
|
2534
|
-
return result;
|
|
2535
|
-
}
|
|
2536
2568
|
updateInput(value, updateAsync) {
|
|
2537
2569
|
this.displayValue = value;
|
|
2538
2570
|
this.inputEl.nativeElement.value = value;
|
|
2539
|
-
this._numericValue = parseFloat(
|
|
2571
|
+
this._numericValue = parseFloat(strip(value, false, this.decimalSeparator, this.groupingSeparator, this.decimalPlaces).replace(this.decimalSeparator, '.'));
|
|
2540
2572
|
if (this._numericValue !== this.roundOrTruncate(this.originalValue)) {
|
|
2541
2573
|
this.originalValue = this._numericValue;
|
|
2542
2574
|
if (updateAsync) {
|
|
@@ -5932,6 +5964,10 @@ class StatePersistenceKeyDirective {
|
|
|
5932
5964
|
this.initFilter(volatileDataState);
|
|
5933
5965
|
this.initSorting(localStorageState);
|
|
5934
5966
|
this.initDatagridPersister();
|
|
5967
|
+
const columnWidthPersistenceEnabled = this.options.persistColumnWidths ?? false;
|
|
5968
|
+
if (columnWidthPersistenceEnabled) {
|
|
5969
|
+
this.initColumnWidths(localStorageState);
|
|
5970
|
+
}
|
|
5935
5971
|
const paginationPersistenceEnabled = this.options.persistPagination ?? true;
|
|
5936
5972
|
if (this.pagination?.page && paginationPersistenceEnabled) {
|
|
5937
5973
|
this.initPageSizePersister(localStorageState);
|
|
@@ -5954,7 +5990,7 @@ class StatePersistenceKeyDirective {
|
|
|
5954
5990
|
this.pagination.page.sizeChange.pipe(takeUntil(this.destroy$)).subscribe(pageSize => {
|
|
5955
5991
|
const state = this.getLocalStorageState();
|
|
5956
5992
|
state.pageSize = pageSize;
|
|
5957
|
-
|
|
5993
|
+
this.saveLocalStorageState(state);
|
|
5958
5994
|
});
|
|
5959
5995
|
/* init page size of datagrid if already persisted in local storage */
|
|
5960
5996
|
if (savedState.pageSize) {
|
|
@@ -6000,6 +6036,20 @@ class StatePersistenceKeyDirective {
|
|
|
6000
6036
|
});
|
|
6001
6037
|
}
|
|
6002
6038
|
}
|
|
6039
|
+
initColumnWidths(savedState) {
|
|
6040
|
+
const columnWidthsByField = savedState?.columns
|
|
6041
|
+
? Object.fromEntries(Object.entries(savedState.columns).map(([key, value]) => [key, value.width]))
|
|
6042
|
+
: undefined;
|
|
6043
|
+
if (this.gridColumns && this.gridColumnRefs && columnWidthsByField !== undefined) {
|
|
6044
|
+
for (let i = 0; i < this.gridColumns.length; i++) {
|
|
6045
|
+
const col = this.gridColumns.get(i);
|
|
6046
|
+
const el = this.gridColumnRefs.get(i)?.nativeElement;
|
|
6047
|
+
if ((col?.field && columnWidthsByField[col.field]) || el) {
|
|
6048
|
+
el.style.width = columnWidthsByField[col.field];
|
|
6049
|
+
}
|
|
6050
|
+
}
|
|
6051
|
+
}
|
|
6052
|
+
}
|
|
6003
6053
|
initDatagridPersister() {
|
|
6004
6054
|
// delay is needed, as onDestroy the filters emit empty values.
|
|
6005
6055
|
// So delay it to the end of the current cycle, so the directive is also destroyed before it gets the next values
|
|
@@ -6015,6 +6065,9 @@ class StatePersistenceKeyDirective {
|
|
|
6015
6065
|
persistFiltersAndCurrentPage(dgState) {
|
|
6016
6066
|
const filterPersistenceEnabled = this.options.persistFilters ?? true;
|
|
6017
6067
|
const paginationPersistenceEnabled = this.options.persistPagination ?? true;
|
|
6068
|
+
if (!filterPersistenceEnabled && !paginationPersistenceEnabled) {
|
|
6069
|
+
return;
|
|
6070
|
+
}
|
|
6018
6071
|
const state = this.getVolatileDataState();
|
|
6019
6072
|
state.columns = state.columns || {};
|
|
6020
6073
|
if (paginationPersistenceEnabled) {
|
|
@@ -6030,7 +6083,7 @@ class StatePersistenceKeyDirective {
|
|
|
6030
6083
|
}
|
|
6031
6084
|
});
|
|
6032
6085
|
}
|
|
6033
|
-
|
|
6086
|
+
this.saveVolatileDataState(state);
|
|
6034
6087
|
}
|
|
6035
6088
|
persistSorting(dgState) {
|
|
6036
6089
|
const sortPersistenceEnabled = this.options.persistSort ?? true;
|
|
@@ -6038,7 +6091,23 @@ class StatePersistenceKeyDirective {
|
|
|
6038
6091
|
const state = this.getLocalStorageState();
|
|
6039
6092
|
state.sortBy = this.getSortProperty(dgState.sort?.by);
|
|
6040
6093
|
state.sortReverse = dgState.sort?.reverse;
|
|
6041
|
-
|
|
6094
|
+
this.saveLocalStorageState(state);
|
|
6095
|
+
}
|
|
6096
|
+
}
|
|
6097
|
+
persistColumnWidths() {
|
|
6098
|
+
const columnWidthPersistenceEnabled = this.options?.persistColumnWidths ?? false;
|
|
6099
|
+
if (columnWidthPersistenceEnabled) {
|
|
6100
|
+
const state = this.getLocalStorageState();
|
|
6101
|
+
state.columns = state.columns || {};
|
|
6102
|
+
for (let i = 0; i < this.gridColumns.length; i++) {
|
|
6103
|
+
const col = this.gridColumns.get(i);
|
|
6104
|
+
const el = this.gridColumnRefs.get(i)?.nativeElement;
|
|
6105
|
+
if (el?.style?.width && el.style.width !== '0px' && col?.field) {
|
|
6106
|
+
state.columns[col.field] ||= {};
|
|
6107
|
+
state.columns[col.field].width = el.style.width;
|
|
6108
|
+
}
|
|
6109
|
+
}
|
|
6110
|
+
this.saveLocalStorageState(state);
|
|
6042
6111
|
}
|
|
6043
6112
|
}
|
|
6044
6113
|
/**
|
|
@@ -6068,11 +6137,23 @@ class StatePersistenceKeyDirective {
|
|
|
6068
6137
|
* Gets the state of volatile data. This can be influenced by clrUseLocalStoreOnly.
|
|
6069
6138
|
*/
|
|
6070
6139
|
getVolatileDataState() {
|
|
6071
|
-
return JSON.parse(
|
|
6140
|
+
return JSON.parse(this.getStorageBasedOnInputFlag().getItem(this.options.key)) || {};
|
|
6072
6141
|
}
|
|
6073
6142
|
getLocalStorageState() {
|
|
6074
6143
|
return JSON.parse(localStorage.getItem(this.options.key)) || {};
|
|
6075
6144
|
}
|
|
6145
|
+
/**
|
|
6146
|
+
* Save the state of volatile data. This can be influenced by clrUseLocalStoreOnly.
|
|
6147
|
+
*/
|
|
6148
|
+
saveVolatileDataState(state) {
|
|
6149
|
+
this.getStorageBasedOnInputFlag().setItem(this.options.key, JSON.stringify(state));
|
|
6150
|
+
}
|
|
6151
|
+
saveLocalStorageState(state) {
|
|
6152
|
+
localStorage.setItem(this.options.key, JSON.stringify(state));
|
|
6153
|
+
}
|
|
6154
|
+
getStorageBasedOnInputFlag() {
|
|
6155
|
+
return this.useLocalStoreOnly ? localStorage : sessionStorage;
|
|
6156
|
+
}
|
|
6076
6157
|
/**
|
|
6077
6158
|
* As a date is serialized as string, but not deserialized as date
|
|
6078
6159
|
* we need to add some meta information to do that manually later
|
|
@@ -6118,11 +6199,12 @@ class StatePersistenceKeyDirective {
|
|
|
6118
6199
|
return undefined;
|
|
6119
6200
|
}
|
|
6120
6201
|
ngOnDestroy() {
|
|
6202
|
+
this.persistColumnWidths();
|
|
6121
6203
|
this.destroy$.next();
|
|
6122
6204
|
this.destroy$.complete();
|
|
6123
6205
|
}
|
|
6124
6206
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: StatePersistenceKeyDirective, deps: [{ token: i2.ClrDatagrid }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
6125
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.5", type: StatePersistenceKeyDirective, selector: "[clrStatePersistenceKey]", inputs: { options: ["clrStatePersistenceKey", "options"], useLocalStoreOnly: ["clrUseLocalStoreOnly", "useLocalStoreOnly"], paginationDescription: ["clrPaginationDescription", "paginationDescription"] }, queries: [{ propertyName: "pagination", first: true, predicate: ClrDatagridPagination, descendants: true }, { propertyName: "paginationElem", first: true, predicate: ClrDatagridPagination, descendants: true, read: ElementRef }, { propertyName: "customFilters", predicate: ClrDatagridFilter, descendants: true }], ngImport: i0 }); }
|
|
6207
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.5", type: StatePersistenceKeyDirective, selector: "[clrStatePersistenceKey]", inputs: { options: ["clrStatePersistenceKey", "options"], useLocalStoreOnly: ["clrUseLocalStoreOnly", "useLocalStoreOnly"], paginationDescription: ["clrPaginationDescription", "paginationDescription"] }, host: { listeners: { "window:beforeunload": "persistColumnWidths()" } }, queries: [{ propertyName: "pagination", first: true, predicate: ClrDatagridPagination, descendants: true }, { propertyName: "paginationElem", first: true, predicate: ClrDatagridPagination, descendants: true, read: ElementRef }, { propertyName: "customFilters", predicate: ClrDatagridFilter, descendants: true }, { propertyName: "gridColumnRefs", predicate: ClrDatagridColumn, read: ElementRef }, { propertyName: "gridColumns", predicate: ClrDatagridColumn }], ngImport: i0 }); }
|
|
6126
6208
|
}
|
|
6127
6209
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: StatePersistenceKeyDirective, decorators: [{
|
|
6128
6210
|
type: Directive,
|
|
@@ -6147,6 +6229,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
|
|
|
6147
6229
|
}], customFilters: [{
|
|
6148
6230
|
type: ContentChildren,
|
|
6149
6231
|
args: [ClrDatagridFilter, { descendants: true }]
|
|
6232
|
+
}], gridColumnRefs: [{
|
|
6233
|
+
type: ContentChildren,
|
|
6234
|
+
args: [ClrDatagridColumn, { read: ElementRef }]
|
|
6235
|
+
}], gridColumns: [{
|
|
6236
|
+
type: ContentChildren,
|
|
6237
|
+
args: [ClrDatagridColumn]
|
|
6238
|
+
}], persistColumnWidths: [{
|
|
6239
|
+
type: HostListener,
|
|
6240
|
+
args: ['window:beforeunload']
|
|
6150
6241
|
}] } });
|
|
6151
6242
|
|
|
6152
6243
|
class ColumnHiddenStatePersistenceDirective {
|
|
@@ -8841,6 +8932,164 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
|
|
|
8841
8932
|
}]
|
|
8842
8933
|
}] });
|
|
8843
8934
|
|
|
8935
|
+
class ClrReadonlyDirective {
|
|
8936
|
+
constructor(elementRef, renderer, injector) {
|
|
8937
|
+
this.elementRef = elementRef;
|
|
8938
|
+
this.renderer = renderer;
|
|
8939
|
+
this.injector = injector;
|
|
8940
|
+
this.isMultiSelect = false;
|
|
8941
|
+
this.unitPosition = 'right';
|
|
8942
|
+
this.property = null;
|
|
8943
|
+
this.clrReadOnly = true;
|
|
8944
|
+
this.unit = '';
|
|
8945
|
+
this.decimalPlaces = 2;
|
|
8946
|
+
this.roundValue = false;
|
|
8947
|
+
this.autofillDecimals = false;
|
|
8948
|
+
this.decimalSeparator = ',';
|
|
8949
|
+
this.groupingSeparator = '.';
|
|
8950
|
+
this.isInitialized = false;
|
|
8951
|
+
}
|
|
8952
|
+
ngOnInit() {
|
|
8953
|
+
const ngControl = this.injector.get(NgControl, null);
|
|
8954
|
+
if (this.clrReadOnly) {
|
|
8955
|
+
this.renderAsSpan(ngControl);
|
|
8956
|
+
}
|
|
8957
|
+
}
|
|
8958
|
+
ngOnChanges() {
|
|
8959
|
+
if (this.isInitialized) {
|
|
8960
|
+
const ngControl = this.injector.get(NgControl, null);
|
|
8961
|
+
if (this.clrReadOnly) {
|
|
8962
|
+
this.renderAsSpan(ngControl);
|
|
8963
|
+
}
|
|
8964
|
+
else {
|
|
8965
|
+
this.resetReadonly();
|
|
8966
|
+
}
|
|
8967
|
+
}
|
|
8968
|
+
}
|
|
8969
|
+
ngAfterViewInit() {
|
|
8970
|
+
this.isInitialized = true;
|
|
8971
|
+
}
|
|
8972
|
+
resetReadonly() {
|
|
8973
|
+
const parentElement = this.elementRef.nativeElement.parentElement;
|
|
8974
|
+
this.renderer.removeClass(parentElement, 'clr-readonly-parent');
|
|
8975
|
+
const spanElement = this.elementRef.nativeElement.parentElement.querySelector('span.clr-readonly');
|
|
8976
|
+
if (spanElement != null) {
|
|
8977
|
+
this.renderer.removeChild(parentElement, spanElement);
|
|
8978
|
+
}
|
|
8979
|
+
}
|
|
8980
|
+
renderAsSpan(ngControl) {
|
|
8981
|
+
const parentElement = this.elementRef.nativeElement.parentElement;
|
|
8982
|
+
if (!parentElement) {
|
|
8983
|
+
return;
|
|
8984
|
+
}
|
|
8985
|
+
// Create a new span element to display the readonly value.
|
|
8986
|
+
const span = this.renderer.createElement('span');
|
|
8987
|
+
const formattedValue = this.formatControlValue(ngControl);
|
|
8988
|
+
const textNode = this.renderer.createText(formattedValue);
|
|
8989
|
+
// Add text and classes to the span element.
|
|
8990
|
+
this.renderer.appendChild(span, textNode);
|
|
8991
|
+
this.renderer.setAttribute(span, 'class', 'clr-readonly');
|
|
8992
|
+
this.renderer.addClass(parentElement, 'clr-readonly-parent');
|
|
8993
|
+
this.renderer.appendChild(parentElement, span);
|
|
8994
|
+
}
|
|
8995
|
+
determineControlType() {
|
|
8996
|
+
if (this.elementRef.nativeElement.attributes['clrnumeric']) {
|
|
8997
|
+
return 'numeric';
|
|
8998
|
+
}
|
|
8999
|
+
else if (this.elementRef.nativeElement.tagName.toLowerCase() === 'select') {
|
|
9000
|
+
return 'select';
|
|
9001
|
+
}
|
|
9002
|
+
else {
|
|
9003
|
+
return '';
|
|
9004
|
+
}
|
|
9005
|
+
}
|
|
9006
|
+
formatControlValue(ngControl) {
|
|
9007
|
+
const controlType = this.determineControlType();
|
|
9008
|
+
const controlValue = ngControl instanceof NgModel ? ngControl.model : ngControl.control?.value;
|
|
9009
|
+
if (controlValue == null || controlValue === '') {
|
|
9010
|
+
return '';
|
|
9011
|
+
}
|
|
9012
|
+
if (controlType === 'numeric') {
|
|
9013
|
+
return this.formatNumericValue(controlValue);
|
|
9014
|
+
}
|
|
9015
|
+
else if (this.isMultiSelect) {
|
|
9016
|
+
return this.formatMultiSelectValue(controlValue);
|
|
9017
|
+
}
|
|
9018
|
+
else if (controlType === 'select') {
|
|
9019
|
+
return this.formatListValue(controlValue);
|
|
9020
|
+
}
|
|
9021
|
+
return controlValue ?? '';
|
|
9022
|
+
}
|
|
9023
|
+
formatNumericValue(controlValue) {
|
|
9024
|
+
const result = formatNumber(controlValue + '', true, this.decimalSeparator, this.groupingSeparator, this.decimalPlaces, this.autofillDecimals);
|
|
9025
|
+
return this.unitPosition === 'left' ? `${this.unit} ${result}` : `${result} ${this.unit}`;
|
|
9026
|
+
}
|
|
9027
|
+
formatMultiSelectValue(controlValue) {
|
|
9028
|
+
return controlValue.map((item) => item[this.property]).join(', ');
|
|
9029
|
+
}
|
|
9030
|
+
formatListValue(controlValue) {
|
|
9031
|
+
const options = this.elementRef.nativeElement.querySelectorAll('option');
|
|
9032
|
+
const matchingOption = Array.from(options).find(option => option.value === controlValue);
|
|
9033
|
+
if (matchingOption) {
|
|
9034
|
+
return matchingOption.innerHTML;
|
|
9035
|
+
}
|
|
9036
|
+
else {
|
|
9037
|
+
return '';
|
|
9038
|
+
}
|
|
9039
|
+
}
|
|
9040
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrReadonlyDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
9041
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.5", type: ClrReadonlyDirective, selector: "[clrReadonly]", inputs: { isMultiSelect: ["clrMulti", "isMultiSelect"], unitPosition: ["clrUnitPosition", "unitPosition"], property: ["clrReadOnlyProperty", "property"], clrReadOnly: ["clrReadonly", "clrReadOnly"], unit: ["clrUnit", "unit"], decimalPlaces: ["clrDecimalPlaces", "decimalPlaces"], roundValue: ["clrRoundDisplayValue", "roundValue"], autofillDecimals: ["clrAutofillDecimals", "autofillDecimals"], decimalSeparator: ["clrDecimalSep", "decimalSeparator"], groupingSeparator: ["clrGroupingSep", "groupingSeparator"] }, usesOnChanges: true, ngImport: i0 }); }
|
|
9042
|
+
}
|
|
9043
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrReadonlyDirective, decorators: [{
|
|
9044
|
+
type: Directive,
|
|
9045
|
+
args: [{
|
|
9046
|
+
selector: '[clrReadonly]',
|
|
9047
|
+
}]
|
|
9048
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.Injector }], propDecorators: { isMultiSelect: [{
|
|
9049
|
+
type: Input,
|
|
9050
|
+
args: ['clrMulti']
|
|
9051
|
+
}], unitPosition: [{
|
|
9052
|
+
type: Input,
|
|
9053
|
+
args: ['clrUnitPosition']
|
|
9054
|
+
}], property: [{
|
|
9055
|
+
type: Input,
|
|
9056
|
+
args: ['clrReadOnlyProperty']
|
|
9057
|
+
}], clrReadOnly: [{
|
|
9058
|
+
type: Input,
|
|
9059
|
+
args: ['clrReadonly']
|
|
9060
|
+
}], unit: [{
|
|
9061
|
+
type: Input,
|
|
9062
|
+
args: ['clrUnit']
|
|
9063
|
+
}], decimalPlaces: [{
|
|
9064
|
+
type: Input,
|
|
9065
|
+
args: ['clrDecimalPlaces']
|
|
9066
|
+
}], roundValue: [{
|
|
9067
|
+
type: Input,
|
|
9068
|
+
args: ['clrRoundDisplayValue']
|
|
9069
|
+
}], autofillDecimals: [{
|
|
9070
|
+
type: Input,
|
|
9071
|
+
args: ['clrAutofillDecimals']
|
|
9072
|
+
}], decimalSeparator: [{
|
|
9073
|
+
type: Input,
|
|
9074
|
+
args: ['clrDecimalSep']
|
|
9075
|
+
}], groupingSeparator: [{
|
|
9076
|
+
type: Input,
|
|
9077
|
+
args: ['clrGroupingSep']
|
|
9078
|
+
}] } });
|
|
9079
|
+
|
|
9080
|
+
class ClrReadonlyDirectiveModule {
|
|
9081
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrReadonlyDirectiveModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
9082
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.5", ngImport: i0, type: ClrReadonlyDirectiveModule, declarations: [ClrReadonlyDirective], exports: [ClrReadonlyDirective] }); }
|
|
9083
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrReadonlyDirectiveModule }); }
|
|
9084
|
+
}
|
|
9085
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrReadonlyDirectiveModule, decorators: [{
|
|
9086
|
+
type: NgModule,
|
|
9087
|
+
args: [{
|
|
9088
|
+
declarations: [ClrReadonlyDirective],
|
|
9089
|
+
exports: [ClrReadonlyDirective],
|
|
9090
|
+
}]
|
|
9091
|
+
}] });
|
|
9092
|
+
|
|
8844
9093
|
/*
|
|
8845
9094
|
* Copyright (c) 2018-2024 Porsche Informatik. All Rights Reserved.
|
|
8846
9095
|
* This software is released under MIT license.
|
|
@@ -8880,7 +9129,8 @@ class ClrAddonsModule {
|
|
|
8880
9129
|
ClrDateFilterModule,
|
|
8881
9130
|
ClrDaterangepickerModule,
|
|
8882
9131
|
ClrIfWarningModule,
|
|
8883
|
-
ClrActionPanelModule
|
|
9132
|
+
ClrActionPanelModule,
|
|
9133
|
+
ClrReadonlyDirectiveModule] }); }
|
|
8884
9134
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrAddonsModule, imports: [ClrViewEditSectionModule,
|
|
8885
9135
|
ClrPagerModule,
|
|
8886
9136
|
ClrDotPagerModule,
|
|
@@ -8913,7 +9163,8 @@ class ClrAddonsModule {
|
|
|
8913
9163
|
ClrDateFilterModule,
|
|
8914
9164
|
ClrDaterangepickerModule,
|
|
8915
9165
|
ClrIfWarningModule,
|
|
8916
|
-
ClrActionPanelModule
|
|
9166
|
+
ClrActionPanelModule,
|
|
9167
|
+
ClrReadonlyDirectiveModule] }); }
|
|
8917
9168
|
}
|
|
8918
9169
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ClrAddonsModule, decorators: [{
|
|
8919
9170
|
type: NgModule,
|
|
@@ -8952,32 +9203,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
|
|
|
8952
9203
|
ClrDaterangepickerModule,
|
|
8953
9204
|
ClrIfWarningModule,
|
|
8954
9205
|
ClrActionPanelModule,
|
|
9206
|
+
ClrReadonlyDirectiveModule,
|
|
8955
9207
|
],
|
|
8956
9208
|
}]
|
|
8957
9209
|
}] });
|
|
8958
9210
|
|
|
8959
9211
|
/*
|
|
8960
|
-
* Copyright (c) 2018 Porsche Informatik. All Rights Reserved.
|
|
8961
|
-
* This software is released under MIT license.
|
|
8962
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
8963
|
-
*/
|
|
8964
|
-
const entityMap = new Map([
|
|
8965
|
-
['&', '&'],
|
|
8966
|
-
['<', '<'],
|
|
8967
|
-
['>', '>'],
|
|
8968
|
-
['"', '"'],
|
|
8969
|
-
["'", '''],
|
|
8970
|
-
['/', '/'],
|
|
8971
|
-
]);
|
|
8972
|
-
function escapeHtml(source) {
|
|
8973
|
-
return source.replace(/[&<>"'/]/g, s => entityMap.get(s));
|
|
8974
|
-
}
|
|
8975
|
-
function escapeRegex(s) {
|
|
8976
|
-
return String(s).replace(/[\\^$*+?.()|[\]{}]/g, '\\$&');
|
|
8977
|
-
}
|
|
8978
|
-
|
|
8979
|
-
/*
|
|
8980
|
-
* Copyright (c) 2018 Porsche Informatik. All Rights Reserved.
|
|
9212
|
+
* Copyright (c) 2018-2024 Porsche Informatik. All Rights Reserved.
|
|
8981
9213
|
* This software is released under MIT license.
|
|
8982
9214
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
8983
9215
|
*/
|
|
@@ -8992,5 +9224,5 @@ function escapeRegex(s) {
|
|
|
8992
9224
|
* Generated bundle index. Do not edit.
|
|
8993
9225
|
*/
|
|
8994
9226
|
|
|
8995
|
-
export { ACShape, AcceptanceDateShape, AcceptedBrands, AccessoriesShape, AccessoryPartsShape, AudiBrandShape, AwardWinnerPremiumShape, BIG_ENDIAN, BlocksGroupForwardShape, BrochureShape, BundleForwardShape, BusinessCustomersCommercialShape, BusinessCustomersPrivateShape, BusinessPartnerWithCar, CLR_BLANK_OPTION, CONTENT_PROVIDER, CalculatorForwardShape, CaliforniaServiceShape, CaliforniaSpecialistShape, CampaignOutdatedShape, CampaignShape, CarOffSite, CarOnSite, CarPickupServiceShape, CarWashShape, CertifiedRepairShape, CertifiedRetailerShape, ClrActionPanel, ClrActionPanelContainer, ClrActionPanelContainerContent, ClrActionPanelContainerFooter, ClrActionPanelModule, ClrActiveNotification, ClrAddonsIconShapes, ClrAddonsLabel, ClrAddonsModule, ClrAutocompleteOff, ClrAutocompleteOffModule, ClrBackButton, ClrBackButtonModule, ClrBrandAvatar, ClrBrandAvatarModule, ClrBreadcrumb, ClrBreadcrumbModule, ClrBreadcrumbService, ClrCollapseExpandSection, ClrCollapseExpandSectionModule, ClrContentPanel, ClrContentPanelContainer, ClrContentPanelContainerContent, ClrContentPanelContainerFooter, ClrContentPanelModule, ClrContentRef, ClrDataListPredefinedValidatorDirective, ClrDataListValidatorModule, ClrDataListValidators, ClrDatagridStatePersistenceModule, ClrDateFilterComponent, ClrDateFilterModule, ClrDateTimeContainer, ClrDateTimeModule, ClrDaterangeMaxValidator, ClrDaterangeMinValidator, ClrDaterangeOrderValidator, ClrDaterangeRequiredValidator, ClrDaterangepickerContainerComponent, ClrDaterangepickerDirective, ClrDaterangepickerModule, ClrDotPager, ClrDotPagerModule, ClrDropdownOverflowDirective, ClrDropdownOverflowModule, ClrEnumFilterComponent, ClrEnumFilterModule, ClrFlowBar, ClrFlowBarModule, ClrFormModule, ClrGenericQuickList, ClrGenericQuickListModule, ClrHistory, ClrHistoryModule, ClrHistoryPinned, ClrHistoryService, ClrIfDaterangeErrorDirective, ClrIfWarning, ClrIfWarningModule, 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, ClrRequiredAllMultilang, ClrRequiredOneMultilang, ClrSearchField, ClrSearchFieldModule, ClrTimeInput, ClrTreetable, ClrTreetableActionOverflow, ClrTreetableCell, ClrTreetableColumn, ClrTreetableModule, ClrTreetablePlaceholder, ClrTreetableRow, ClrViewEditSection, ClrViewEditSectionModule, ColumnHiddenStatePersistenceDirective, CompletedByDateShape, ConfiguratorCommercialShape, ConfiguratorPrivateShape, ConsumptionShape, ContactDealerShape, CupraBrandShape, CustomersCenterShape, DATE, DELIMITER_REGEX, DWABrandShape, DatagridFieldDirective, DayModel, DieselShape, DollarBillForwardShape, DollarBillPartialShape, DriversAssistanceShape, EfficiencyShape, ElectricCarsServiceShape, ElectricCarsShape, ElectricityShape, EmissionShape, EnergyShape, EngineShape, ExpressServiceShape, ExteriorShape, ExternalPartForwardShape, FindACarShape, FleetServiceCommercialShape, FleetServicePrivateShape, GasCarsServiceShape, GasShape, HISTORY_NOTIFICATION_URL_PROVIDER, HISTORY_PROVIDER, HistoryProvider, HybridShape, InternalPartForwardShape, InvoiceReadyShape, InvoiceShape, ItemsForwardShape, ItemsReceiveShape, LITTLE_ENDIAN, LITTLE_ENDIAN_REGEX, LoadingVolumeShape, LocateShape, LocationBarComponent, LocationBarContentProvider, LocationBarNode, MIDDLE_ENDIAN, MIDDLE_ENDIAN_REGEX, MONTH, NewCarCommercialShape, NewCarPrivateShape, NewCarUtilityVehicleShape, NightServiceShape, NodeId, OffersShape, OnCallDutyShape, OpenSatShape, PaintMaterialForwardShape, PaintMaterialShape, PaintShopShape, ParkingLocation, PartNonStockForwardShape, PartsForwardShape, PartsNonStockShape, PartsShape, PayloadShape, PerformanceShape, PetrolShape, PlusServiceShape, PopoverPositions, PorscheBrandShape, PowerShape, PowerTrainShape, PriceTypeSwitchShape, QualifiedWorkshopShape, RepeatRepairShape, ReturnDateShape, RoadsideAssistanceShape, RouteShape, SEPARATOR_TEXT_DEFAULT, SeatAirShape, SeatBrandShape, SeatShape, ServiceBellShape, ServiceShape, SizeShape, SkodaBrandShape, StatePersistenceKeyDirective, StockLocatorCommercialShape, StockLocatorPrivateShape, TRANSLATIONS, TaskAndAppointment, TaxiDealerShape, TextForward, TimeModel, TopcardShape, TouaregServiceShape, TransmissionAutomaticShape, TransmissionManualShape, TreetableCellRenderer, TreetableHeaderRenderer, TreetableMainRenderer, TreetableRowRenderer, USER_INPUT_REGEX, UsedCarCommercialShape, UsedCarPrivateShape, VWBrandShape, VWNBrandShape, VWShape, VehicleConversionShape, View360Shape, VinShape, VirtualRealityShape, VsfSearchShape, WCPShape, WheelToWheelShape, WindscreenWashShape, WrenchForward, YEAR, acceptanceDateIcon, accessoriesIcon, accessoryPartsIcon, airConditionerIcon, allIcons, audiBrandIcon, awardWinnerPremiumIcon, blocksGroupForwardIcon, brochureIcon, bundleForwardIcon, businessCustomersCommercialIcon, businessCustomersPrivateIcon, businessPartnerWithCarIcon, calculatorForwardIcon, californiaServiceIcon, californiaSpecialistIcon, campaignIcon, campaignOutdatedIcon, carOffSite, carOnSite, carPickupServiceIcon, carWashIcon, certifiedRepairIcon, certifiedRetailerIcon, clrIconSVG, completedByDateIcon, configuratorCommercialIcon, configuratorPrivateIcon, consumptionIcon, contactDealerIcon, cupraBrandIcon, customersCenterIcon, dieselIcon, dollarBillForwardIcon, dollarBillPartialIcon, driversAssistanceIcon, dwaBrandIcon, efficiencyIcon, electricCarsIcon, electricCarsServiceIcon, electricityIcon, emissionIcon, energyIcon, engineIcon, escapeHtml, escapeRegex, expressServiceIcon, exteriorIcon, externalPartForwardIcon, findACarIcon, fleetServiceCommercialIcon, fleetServicePrivateIcon, gasCarsServiceIcon, gasIcon, hybridIcon, internalPartForwardIcon, invoiceIcon, invoiceReadyIcon, itemsForwardIcon, itemsRecieveIcon, loadingVolumeIcon, locateIcon, newCarCommercialIcon, newCarPrivateIcon, newCarUtilityVehicleIcon, nightServiceIcon, offersIcon, onCallDutyIcon, openSatIcon, paintMaterialForwardIcon, paintMaterialIcon, paintShopIcon, parkingLocationIcon, partsForwardIcon, partsIcon, partsNonStockForwardIcon, partsNonStockIcon, payloadIcon, performanceIcon, petrolIcon, plusServiceIcon, porscheBrandIcon, powerIcon, powerTrainIcon, priceTypeSwitchIcon, qualifiedWorkshopIcon, repeatRepairIcon, returnDateIcon, roadsideAssistanceIcon, routeIcon, seatAirIcon, seatBrandIcon, seatIcon, serviceBellIcon, serviceIcon, sizeIcon, skodaBrandIcon, stockLocatorCommercialIcon, stockLocatorPrivateIcon, taskAndAppointmentIcon, taxiDealerIcon, textForwardIcon, topcardIcon, touaregServiceIcon, transmissionAutomaticIcon, transmissionManualIcon, usedCarCommercialIcon, usedCarPrivateIcon, vehicleConversionIcon, view360Icon, vinIcon, virtualRealityIcon, volkswagenIcon, vsfSearchIcon, vwBrandIcon, vwnBrandIcon, wcpIcon, wheelToWheelIcon, windscreenWashIcon, wrenchForwardIcon };
|
|
9227
|
+
export { ACShape, AcceptanceDateShape, AcceptedBrands, AccessoriesShape, AccessoryPartsShape, AudiBrandShape, AwardWinnerPremiumShape, BIG_ENDIAN, BlocksGroupForwardShape, BrochureShape, BundleForwardShape, BusinessCustomersCommercialShape, BusinessCustomersPrivateShape, BusinessPartnerWithCar, CLR_BLANK_OPTION, CONTENT_PROVIDER, CalculatorForwardShape, CaliforniaServiceShape, CaliforniaSpecialistShape, CampaignOutdatedShape, CampaignShape, CarOffSite, CarOnSite, CarPickupServiceShape, CarWashShape, CertifiedRepairShape, CertifiedRetailerShape, ClrActionPanel, ClrActionPanelContainer, ClrActionPanelContainerContent, ClrActionPanelContainerFooter, ClrActionPanelModule, ClrActiveNotification, ClrAddonsIconShapes, ClrAddonsLabel, ClrAddonsModule, ClrAutocompleteOff, ClrAutocompleteOffModule, ClrBackButton, ClrBackButtonModule, ClrBrandAvatar, ClrBrandAvatarModule, ClrBreadcrumb, ClrBreadcrumbModule, ClrBreadcrumbService, ClrCollapseExpandSection, ClrCollapseExpandSectionModule, ClrContentPanel, ClrContentPanelContainer, ClrContentPanelContainerContent, ClrContentPanelContainerFooter, ClrContentPanelModule, ClrContentRef, ClrDataListPredefinedValidatorDirective, ClrDataListValidatorModule, ClrDataListValidators, ClrDatagridStatePersistenceModule, ClrDateFilterComponent, ClrDateFilterModule, ClrDateTimeContainer, ClrDateTimeModule, ClrDaterangeMaxValidator, ClrDaterangeMinValidator, ClrDaterangeOrderValidator, ClrDaterangeRequiredValidator, ClrDaterangepickerContainerComponent, ClrDaterangepickerDirective, ClrDaterangepickerModule, ClrDotPager, ClrDotPagerModule, ClrDropdownOverflowDirective, ClrDropdownOverflowModule, ClrEnumFilterComponent, ClrEnumFilterModule, ClrFlowBar, ClrFlowBarModule, ClrFormModule, ClrGenericQuickList, ClrGenericQuickListModule, ClrHistory, ClrHistoryModule, ClrHistoryPinned, ClrHistoryService, ClrIfDaterangeErrorDirective, ClrIfWarning, ClrIfWarningModule, 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, ClrTimeInput, ClrTreetable, ClrTreetableActionOverflow, ClrTreetableCell, ClrTreetableColumn, ClrTreetableModule, ClrTreetablePlaceholder, ClrTreetableRow, ClrViewEditSection, ClrViewEditSectionModule, ColumnHiddenStatePersistenceDirective, CompletedByDateShape, ConfiguratorCommercialShape, ConfiguratorPrivateShape, ConsumptionShape, ContactDealerShape, CupraBrandShape, CustomersCenterShape, DATE, DELIMITER_REGEX, DWABrandShape, DatagridFieldDirective, DayModel, DieselShape, DollarBillForwardShape, DollarBillPartialShape, DriversAssistanceShape, EfficiencyShape, ElectricCarsServiceShape, ElectricCarsShape, ElectricityShape, EmissionShape, EnergyShape, EngineShape, ExpressServiceShape, ExteriorShape, ExternalPartForwardShape, FindACarShape, FleetServiceCommercialShape, FleetServicePrivateShape, GasCarsServiceShape, GasShape, HISTORY_NOTIFICATION_URL_PROVIDER, HISTORY_PROVIDER, HistoryProvider, HybridShape, InternalPartForwardShape, InvoiceReadyShape, InvoiceShape, ItemsForwardShape, ItemsReceiveShape, LITTLE_ENDIAN, LITTLE_ENDIAN_REGEX, LoadingVolumeShape, LocateShape, LocationBarComponent, LocationBarContentProvider, LocationBarNode, MIDDLE_ENDIAN, MIDDLE_ENDIAN_REGEX, MONTH, NewCarCommercialShape, NewCarPrivateShape, NewCarUtilityVehicleShape, NightServiceShape, NodeId, OffersShape, OnCallDutyShape, OpenSatShape, PaintMaterialForwardShape, PaintMaterialShape, PaintShopShape, ParkingLocation, PartNonStockForwardShape, PartsForwardShape, PartsNonStockShape, PartsShape, PayloadShape, PerformanceShape, PetrolShape, PlusServiceShape, PopoverPositions, PorscheBrandShape, PowerShape, PowerTrainShape, PriceTypeSwitchShape, QualifiedWorkshopShape, RepeatRepairShape, ReturnDateShape, RoadsideAssistanceShape, RouteShape, SEPARATOR_TEXT_DEFAULT, SeatAirShape, SeatBrandShape, SeatShape, ServiceBellShape, ServiceShape, SizeShape, SkodaBrandShape, StatePersistenceKeyDirective, StockLocatorCommercialShape, StockLocatorPrivateShape, TRANSLATIONS, TaskAndAppointment, TaxiDealerShape, TextForward, TimeModel, TopcardShape, TouaregServiceShape, TransmissionAutomaticShape, TransmissionManualShape, TreetableCellRenderer, TreetableHeaderRenderer, TreetableMainRenderer, TreetableRowRenderer, USER_INPUT_REGEX, UsedCarCommercialShape, UsedCarPrivateShape, VWBrandShape, VWNBrandShape, VWShape, VehicleConversionShape, View360Shape, VinShape, VirtualRealityShape, VsfSearchShape, WCPShape, WheelToWheelShape, WindscreenWashShape, WrenchForward, YEAR, acceptanceDateIcon, accessoriesIcon, accessoryPartsIcon, airConditionerIcon, allIcons, audiBrandIcon, awardWinnerPremiumIcon, blocksGroupForwardIcon, brochureIcon, bundleForwardIcon, businessCustomersCommercialIcon, businessCustomersPrivateIcon, businessPartnerWithCarIcon, calculatorForwardIcon, californiaServiceIcon, californiaSpecialistIcon, campaignIcon, campaignOutdatedIcon, carOffSite, carOnSite, carPickupServiceIcon, carWashIcon, certifiedRepairIcon, certifiedRetailerIcon, clrIconSVG, completedByDateIcon, configuratorCommercialIcon, configuratorPrivateIcon, consumptionIcon, contactDealerIcon, cupraBrandIcon, customersCenterIcon, dieselIcon, dollarBillForwardIcon, dollarBillPartialIcon, driversAssistanceIcon, dwaBrandIcon, efficiencyIcon, electricCarsIcon, electricCarsServiceIcon, electricityIcon, emissionIcon, energyIcon, engineIcon, escapeHtml, escapeRegex, expressServiceIcon, exteriorIcon, externalPartForwardIcon, findACarIcon, fleetServiceCommercialIcon, fleetServicePrivateIcon, formatNumber, gasCarsServiceIcon, gasIcon, hybridIcon, internalPartForwardIcon, invoiceIcon, invoiceReadyIcon, itemsForwardIcon, itemsRecieveIcon, loadingVolumeIcon, locateIcon, newCarCommercialIcon, newCarPrivateIcon, newCarUtilityVehicleIcon, nightServiceIcon, offersIcon, onCallDutyIcon, openSatIcon, paintMaterialForwardIcon, paintMaterialIcon, paintShopIcon, parkingLocationIcon, partsForwardIcon, partsIcon, partsNonStockForwardIcon, partsNonStockIcon, payloadIcon, performanceIcon, petrolIcon, plusServiceIcon, porscheBrandIcon, powerIcon, powerTrainIcon, priceTypeSwitchIcon, qualifiedWorkshopIcon, repeatRepairIcon, returnDateIcon, roadsideAssistanceIcon, routeIcon, seatAirIcon, seatBrandIcon, seatIcon, serviceBellIcon, serviceIcon, sizeIcon, skodaBrandIcon, stockLocatorCommercialIcon, stockLocatorPrivateIcon, strip, taskAndAppointmentIcon, taxiDealerIcon, textForwardIcon, topcardIcon, touaregServiceIcon, transmissionAutomaticIcon, transmissionManualIcon, usedCarCommercialIcon, usedCarPrivateIcon, vehicleConversionIcon, view360Icon, vinIcon, virtualRealityIcon, volkswagenIcon, vsfSearchIcon, vwBrandIcon, vwnBrandIcon, wcpIcon, wheelToWheelIcon, windscreenWashIcon, wrenchForwardIcon };
|
|
8996
9228
|
//# sourceMappingURL=clr-addons.mjs.map
|