@clr/angular 13.0.0-next.0 → 13.0.2
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/emphasis/alert/alert.d.ts +2 -1
- package/emphasis/alert/providers/multi-alert.service.d.ts +2 -1
- package/esm2020/accordion/accordion-panel.mjs +3 -3
- package/esm2020/accordion/models/accordion.model.mjs +4 -3
- package/esm2020/accordion/stepper/stepper-panel.mjs +3 -3
- package/esm2020/button/button-loading/loading-button.mjs +6 -3
- package/esm2020/data/datagrid/built-in/filters/datagrid-string-filter.mjs +3 -1
- package/esm2020/data/datagrid/datagrid-row-detail.mjs +11 -6
- package/esm2020/data/tree-view/tree-node.mjs +3 -4
- package/esm2020/emphasis/alert/alert-item.mjs +6 -4
- package/esm2020/emphasis/alert/alert.mjs +17 -5
- package/esm2020/emphasis/alert/providers/multi-alert.service.mjs +23 -6
- package/esm2020/forms/password/password-container.mjs +8 -2
- package/esm2020/layout/nav/header.mjs +24 -14
- package/esm2020/layout/vertical-nav/vertical-nav-group.mjs +8 -4
- package/esm2020/modal/modal-body.mjs +27 -10
- package/esm2020/modal/modal.mjs +3 -3
- package/esm2020/popover/common/abstract-popover.mjs +16 -27
- package/esm2020/utils/i18n/common-strings.default.mjs +20 -6
- package/esm2020/utils/i18n/common-strings.interface.mjs +1 -1
- package/esm2020/wizard/providers/wizard-navigation.service.mjs +2 -2
- package/esm2020/wizard/wizard-page.mjs +2 -2
- package/esm2020/wizard/wizard-stepnav-item.mjs +14 -8
- package/esm2020/wizard/wizard.mjs +9 -3
- package/fesm2015/clr-angular.mjs +714 -619
- package/fesm2015/clr-angular.mjs.map +1 -1
- package/fesm2020/clr-angular.mjs +718 -625
- package/fesm2020/clr-angular.mjs.map +1 -1
- package/forms/password/password-container.d.ts +1 -1
- package/layout/nav/header.d.ts +2 -0
- package/layout/vertical-nav/vertical-nav-group.d.ts +2 -1
- package/modal/modal-body.d.ts +6 -1
- package/package.json +2 -2
- package/popover/common/abstract-popover.d.ts +1 -4
- package/utils/i18n/common-strings.interface.d.ts +34 -0
- package/wizard/wizard-stepnav-item.d.ts +3 -1
package/fesm2015/clr-angular.mjs
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Directive, NgModule, Injectable, Inject, PLATFORM_ID, EventEmitter, Input, Output, HostListener, Optional, Component, SkipSelf, ViewChild, InjectionToken, ContentChildren, ComponentFactoryResolver, ElementRef, HostBinding, ContentChild, Self, Attribute, LOCALE_ID, Renderer2, ChangeDetectionStrategy, ViewContainerRef, TemplateRef } from '@angular/core';
|
|
3
3
|
import { ClarityIcons, ellipsisHorizontalIcon, exclamationCircleIcon, checkCircleIcon, angleIcon, eventIcon, calendarIcon, eyeHideIcon, eyeIcon, windowCloseIcon, ellipsisVerticalIcon, viewColumnsIcon, arrowIcon, timesIcon, stepForward2Icon, angleDoubleIcon, filterGridCircleIcon, filterGridIcon, infoCircleIcon, exclamationTriangleIcon, errorStandardIcon, circleIcon, dotCircleIcon, successStandardIcon } from '@cds/core/icon';
|
|
4
|
-
import * as
|
|
4
|
+
import * as i4 from '@angular/common';
|
|
5
5
|
import { CommonModule, DOCUMENT, isPlatformBrowser, getLocaleDayNames, FormStyle, TranslationWidth, getLocaleMonthNames, getLocaleFirstDayOfWeek, getLocaleDateFormat, FormatWidth, NgForOf } from '@angular/common';
|
|
6
6
|
import { filter, debounceTime, first, switchMap, take, map, startWith, tap, distinctUntilChanged, pairwise } from 'rxjs/operators';
|
|
7
|
-
import * as i3
|
|
7
|
+
import * as i3 from 'rxjs';
|
|
8
8
|
import { Subject, fromEvent, BehaviorSubject, of, ReplaySubject, isObservable, combineLatest, Observable } from 'rxjs';
|
|
9
9
|
import { trigger, transition, style, animate, keyframes, state } from '@angular/animations';
|
|
10
10
|
import * as i1 from '@angular/forms';
|
|
@@ -1233,7 +1233,7 @@ ClrButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13
|
|
|
1233
1233
|
<ng-content></ng-content>
|
|
1234
1234
|
</button>
|
|
1235
1235
|
</ng-template>
|
|
1236
|
-
`, isInline: true, directives: [{ type:
|
|
1236
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
1237
1237
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrButton, decorators: [{
|
|
1238
1238
|
type: Component,
|
|
1239
1239
|
args: [{
|
|
@@ -1372,7 +1372,7 @@ ClrPopoverPositions['left-bottom'] = {
|
|
|
1372
1372
|
};
|
|
1373
1373
|
|
|
1374
1374
|
/*
|
|
1375
|
-
* Copyright (c) 2016-
|
|
1375
|
+
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
1376
1376
|
* This software is released under MIT license.
|
|
1377
1377
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
1378
1378
|
*/
|
|
@@ -1437,6 +1437,11 @@ const commonStringsDefault = {
|
|
|
1437
1437
|
datepickerSelectYearText: 'Select year, the current year is {CALENDAR_YEAR}',
|
|
1438
1438
|
// Stack View
|
|
1439
1439
|
stackViewChanged: 'Value changed.',
|
|
1440
|
+
// Responsive Nav
|
|
1441
|
+
responsiveNavToggleOpen: 'Open navigation menu',
|
|
1442
|
+
responsiveNavToggleClose: 'Close navigation menu',
|
|
1443
|
+
responsiveNavOverflowOpen: 'Open navigation overflow menu',
|
|
1444
|
+
responsiveNavOverflowClose: 'Close navigation overflow menu',
|
|
1440
1445
|
//Vertical Nav
|
|
1441
1446
|
verticalNavGroupToggle: 'Toggle vertical navigation group',
|
|
1442
1447
|
verticalNavToggle: 'Toggle vertical navigation',
|
|
@@ -1454,10 +1459,19 @@ const commonStringsDefault = {
|
|
|
1454
1459
|
comboboxNoResults: 'No results',
|
|
1455
1460
|
comboboxOpen: 'Show options',
|
|
1456
1461
|
// Datagrid expandable rows
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
1462
|
+
datagridExpandableBeginningOf: 'Beginning of',
|
|
1463
|
+
datagridExpandableEndOf: 'End of',
|
|
1464
|
+
datagridExpandableRowContent: 'Expandable row content',
|
|
1465
|
+
datagridExpandableRowsHelperText: `Screen reader table commands may not work for viewing expanded content, please use your screen reader's browse mode to read the content exposed by this button`,
|
|
1466
|
+
// Wizard
|
|
1467
|
+
wizardStepSuccess: 'Completed',
|
|
1468
|
+
wizardStepError: 'Error',
|
|
1469
|
+
/**
|
|
1470
|
+
* Password Input
|
|
1471
|
+
* Screen-reader text for the hide/show password field button
|
|
1472
|
+
*/
|
|
1473
|
+
passwordHide: 'Hide password',
|
|
1474
|
+
passwordShow: 'Show password',
|
|
1461
1475
|
};
|
|
1462
1476
|
|
|
1463
1477
|
/*
|
|
@@ -1606,7 +1620,7 @@ ClrButtonGroup.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
|
|
|
1606
1620
|
ClrPopoverToggleService,
|
|
1607
1621
|
ClrPopoverEventsService,
|
|
1608
1622
|
ClrPopoverPositionService,
|
|
1609
|
-
], queries: [{ propertyName: "buttons", predicate: ClrButton }], ngImport: i0, template: "<!--\n ~ Copyright (c) 2016-2021 VMware, Inc. 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<ng-container *ngFor=\"let inlineButton of inlineButtons\">\n <ng-template [ngTemplateOutlet]=\"inlineButton.templateRef\"></ng-template>\n</ng-container>\n<ng-container *ngIf=\"menuButtons.length > 0\">\n <div class=\"btn-group-overflow open\" [ngClass]=\"menuPosition\" #anchor>\n <button\n class=\"btn dropdown-toggle\"\n clrPopoverAnchor\n clrPopoverOpenCloseButton\n [attr.aria-controls]=\"popoverId\"\n [attr.aria-expanded]=\"open\"\n [attr.aria-label]=\"commonStrings.keys.rowActions\"\n >\n <cds-icon shape=\"ellipsis-horizontal\" [attr.title]=\"commonStrings.keys.more\"></cds-icon>\n </button>\n <div\n role=\"menu\"\n class=\"dropdown-menu clr-button-group-menu\"\n [id]=\"popoverId\"\n [attr.id]=\"popoverId\"\n [attr.aria-hidden]=\"!open\"\n *clrPopoverContent=\"open at popoverPosition; outsideClickToClose: true; scrollToClose: true\"\n >\n <ng-template [ngTemplateOutlet]=\"ref\"></ng-template>\n </div>\n </div>\n</ng-container>\n<ng-template #ref>\n <ng-container *ngFor=\"let menuButton of menuButtons\">\n <ng-template [ngTemplateOutlet]=\"menuButton.templateRef\"></ng-template>\n </ng-container>\n</ng-template>\n", directives: [{ type:
|
|
1623
|
+
], queries: [{ propertyName: "buttons", predicate: ClrButton }], ngImport: i0, template: "<!--\n ~ Copyright (c) 2016-2021 VMware, Inc. 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<ng-container *ngFor=\"let inlineButton of inlineButtons\">\n <ng-template [ngTemplateOutlet]=\"inlineButton.templateRef\"></ng-template>\n</ng-container>\n<ng-container *ngIf=\"menuButtons.length > 0\">\n <div class=\"btn-group-overflow open\" [ngClass]=\"menuPosition\" #anchor>\n <button\n class=\"btn dropdown-toggle\"\n clrPopoverAnchor\n clrPopoverOpenCloseButton\n [attr.aria-controls]=\"popoverId\"\n [attr.aria-expanded]=\"open\"\n [attr.aria-label]=\"commonStrings.keys.rowActions\"\n >\n <cds-icon shape=\"ellipsis-horizontal\" [attr.title]=\"commonStrings.keys.more\"></cds-icon>\n </button>\n <div\n role=\"menu\"\n class=\"dropdown-menu clr-button-group-menu\"\n [id]=\"popoverId\"\n [attr.id]=\"popoverId\"\n [attr.aria-hidden]=\"!open\"\n *clrPopoverContent=\"open at popoverPosition; outsideClickToClose: true; scrollToClose: true\"\n >\n <ng-template [ngTemplateOutlet]=\"ref\"></ng-template>\n </div>\n </div>\n</ng-container>\n<ng-template #ref>\n <ng-container *ngFor=\"let menuButton of menuButtons\">\n <ng-template [ngTemplateOutlet]=\"menuButton.templateRef\"></ng-template>\n </ng-container>\n</ng-template>\n", directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: ClrPopoverAnchor, selector: "[clrPopoverAnchor]" }, { type: ClrPopoverOpenCloseButton, selector: "[clrPopoverOpenCloseButton]", outputs: ["clrPopoverOpenCloseChange"] }, { type: CdsIconCustomTag, selector: "cds-icon" }, { type: ClrPopoverContent, selector: "[clrPopoverContent]", inputs: ["clrPopoverContent", "clrPopoverContentAt", "clrPopoverContentOutsideClickToClose", "clrPopoverContentScrollToClose"] }] });
|
|
1610
1624
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrButtonGroup, decorators: [{
|
|
1611
1625
|
type: Component,
|
|
1612
1626
|
args: [{ selector: 'clr-button-group', providers: [
|
|
@@ -1650,10 +1664,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
1650
1664
|
}] });
|
|
1651
1665
|
|
|
1652
1666
|
/*
|
|
1653
|
-
* Copyright (c) 2016-
|
|
1667
|
+
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
1654
1668
|
* This software is released under MIT license.
|
|
1655
1669
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
1656
1670
|
*/
|
|
1671
|
+
// minimum width to fit loading spinner
|
|
1672
|
+
const MIN_BUTTON_WIDTH = 42;
|
|
1657
1673
|
class ClrLoadingButton {
|
|
1658
1674
|
constructor(el, renderer) {
|
|
1659
1675
|
this.el = el;
|
|
@@ -1694,7 +1710,8 @@ class ClrLoadingButton {
|
|
|
1694
1710
|
setExplicitButtonWidth() {
|
|
1695
1711
|
if (this.el.nativeElement && this.el.nativeElement.getBoundingClientRect) {
|
|
1696
1712
|
const boundingClientRect = this.el.nativeElement.getBoundingClientRect();
|
|
1697
|
-
|
|
1713
|
+
const width = Math.max(MIN_BUTTON_WIDTH, boundingClientRect.width);
|
|
1714
|
+
this.renderer.setStyle(this.el.nativeElement, 'width', `${width}px`);
|
|
1698
1715
|
}
|
|
1699
1716
|
}
|
|
1700
1717
|
}
|
|
@@ -1715,7 +1732,7 @@ ClrLoadingButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versi
|
|
|
1715
1732
|
<ng-content></ng-content>
|
|
1716
1733
|
</span>
|
|
1717
1734
|
</ng-container>
|
|
1718
|
-
`, isInline: true, directives: [{ type:
|
|
1735
|
+
`, isInline: true, directives: [{ type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], animations: [
|
|
1719
1736
|
trigger('defaultButton', [
|
|
1720
1737
|
transition(':enter', [style({ opacity: 0 }), animate('200ms 100ms ease-in', style({ opacity: 1 }))]),
|
|
1721
1738
|
// TODO: see if we can get leave animation to work before spinner's enter animation
|
|
@@ -2674,7 +2691,7 @@ ClrControlContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
|
|
|
2674
2691
|
<ng-content select="clr-control-error" *ngIf="showInvalid"></ng-content>
|
|
2675
2692
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
2676
2693
|
</div>
|
|
2677
|
-
`, isInline: true, directives: [{ type:
|
|
2694
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrLabel, selector: "label", inputs: ["for"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
2678
2695
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrControlContainer, decorators: [{
|
|
2679
2696
|
type: Component,
|
|
2680
2697
|
args: [{
|
|
@@ -3058,7 +3075,7 @@ ClrCheckboxWrapper.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
|
|
|
3058
3075
|
<ng-content select="[clrCheckbox],[clrToggle]"></ng-content>
|
|
3059
3076
|
<ng-content select="label"></ng-content>
|
|
3060
3077
|
<label *ngIf="!label"></label>
|
|
3061
|
-
`, isInline: true, directives: [{ type:
|
|
3078
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrLabel, selector: "label", inputs: ["for"] }] });
|
|
3062
3079
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrCheckboxWrapper, decorators: [{
|
|
3063
3080
|
type: Component,
|
|
3064
3081
|
args: [{
|
|
@@ -3075,7 +3092,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
3075
3092
|
providers: [ControlIdService, IS_TOGGLE_PROVIDER],
|
|
3076
3093
|
}]
|
|
3077
3094
|
}], ctorParameters: function () {
|
|
3078
|
-
return [{ type: i3
|
|
3095
|
+
return [{ type: i3.BehaviorSubject, decorators: [{
|
|
3079
3096
|
type: Inject,
|
|
3080
3097
|
args: [IS_TOGGLE]
|
|
3081
3098
|
}] }];
|
|
@@ -3188,7 +3205,7 @@ ClrCheckboxContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
3188
3205
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
3189
3206
|
</div>
|
|
3190
3207
|
</div>
|
|
3191
|
-
`, isInline: true, directives: [{ type:
|
|
3208
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrLabel, selector: "label", inputs: ["for"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
3192
3209
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrCheckboxContainer, decorators: [{
|
|
3193
3210
|
type: Component,
|
|
3194
3211
|
args: [{
|
|
@@ -4928,7 +4945,7 @@ class ClrCalendar {
|
|
|
4928
4945
|
}
|
|
4929
4946
|
}
|
|
4930
4947
|
ClrCalendar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrCalendar, deps: [{ token: LocaleHelperService }, { token: DateNavigationService }, { token: DatepickerFocusService }, { token: DateIOService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
4931
|
-
ClrCalendar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: ClrCalendar, selector: "clr-calendar", host: { listeners: { "keydown": "onKeyDown($event)" } }, ngImport: i0, template: "<table class=\"calendar-table\">\n <tr class=\"calendar-row weekdays\">\n <td *ngFor=\"let day of localeDays\" class=\"calendar-cell weekday\" role=\"heading\" [attr.aria-label]=\"day.day\">\n {{day.narrow}}\n </td>\n </tr>\n <tr class=\"calendar-row\" *ngFor=\"let row of calendarViewModel.calendarView\">\n <td *ngFor=\"let dayView of row\" class=\"calendar-cell\">\n <clr-day [clrDayView]=\"dayView\"></clr-day>\n </td>\n </tr>\n</table>\n", components: [{ type: ClrDay, selector: "clr-day", inputs: ["clrDayView"] }], directives: [{ type:
|
|
4948
|
+
ClrCalendar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: ClrCalendar, selector: "clr-calendar", host: { listeners: { "keydown": "onKeyDown($event)" } }, ngImport: i0, template: "<table class=\"calendar-table\">\n <tr class=\"calendar-row weekdays\">\n <td *ngFor=\"let day of localeDays\" class=\"calendar-cell weekday\" role=\"heading\" [attr.aria-label]=\"day.day\">\n {{day.narrow}}\n </td>\n </tr>\n <tr class=\"calendar-row\" *ngFor=\"let row of calendarViewModel.calendarView\">\n <td *ngFor=\"let dayView of row\" class=\"calendar-cell\">\n <clr-day [clrDayView]=\"dayView\"></clr-day>\n </td>\n </tr>\n</table>\n", components: [{ type: ClrDay, selector: "clr-day", inputs: ["clrDayView"] }], directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
4932
4949
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrCalendar, decorators: [{
|
|
4933
4950
|
type: Component,
|
|
4934
4951
|
args: [{ selector: 'clr-calendar', template: "<table class=\"calendar-table\">\n <tr class=\"calendar-row weekdays\">\n <td *ngFor=\"let day of localeDays\" class=\"calendar-cell weekday\" role=\"heading\" [attr.aria-label]=\"day.day\">\n {{day.narrow}}\n </td>\n </tr>\n <tr class=\"calendar-row\" *ngFor=\"let row of calendarViewModel.calendarView\">\n <td *ngFor=\"let dayView of row\" class=\"calendar-cell\">\n <clr-day [clrDayView]=\"dayView\"></clr-day>\n </td>\n </tr>\n</table>\n" }]
|
|
@@ -5140,7 +5157,7 @@ ClrMonthpicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
|
|
|
5140
5157
|
>
|
|
5141
5158
|
{{ month }}
|
|
5142
5159
|
</button>
|
|
5143
|
-
`, isInline: true, directives: [{ type:
|
|
5160
|
+
`, isInline: true, directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
5144
5161
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrMonthpicker, decorators: [{
|
|
5145
5162
|
type: Component,
|
|
5146
5163
|
args: [{
|
|
@@ -5393,7 +5410,7 @@ ClrYearpicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
|
|
|
5393
5410
|
{{ year }}
|
|
5394
5411
|
</button>
|
|
5395
5412
|
</div>
|
|
5396
|
-
`, isInline: true, directives: [{ type: CdsIconCustomTag, selector: "cds-icon" }, { type:
|
|
5413
|
+
`, isInline: true, directives: [{ type: CdsIconCustomTag, selector: "cds-icon" }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
5397
5414
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrYearpicker, decorators: [{
|
|
5398
5415
|
type: Component,
|
|
5399
5416
|
args: [{
|
|
@@ -5548,7 +5565,7 @@ class ClrDatepickerViewManager {
|
|
|
5548
5565
|
}
|
|
5549
5566
|
}
|
|
5550
5567
|
ClrDatepickerViewManager.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDatepickerViewManager, deps: [{ token: ViewManagerService }], target: i0.ɵɵFactoryTarget.Component });
|
|
5551
|
-
ClrDatepickerViewManager.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: ClrDatepickerViewManager, selector: "clr-datepicker-view-manager", host: { properties: { "class.datepicker": "true", "attr.aria-modal": "true" } }, providers: [DatepickerFocusService], ngImport: i0, template: "<!--\n* Copyright (c) 2016-2021 VMware, Inc. 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<clr-monthpicker *ngIf=\"isMonthView\"></clr-monthpicker>\n<clr-yearpicker *ngIf=\"isYearView\"></clr-yearpicker>\n<clr-daypicker *ngIf=\"isDayView\"></clr-daypicker>\n", components: [{ type: ClrMonthpicker, selector: "clr-monthpicker" }, { type: ClrYearpicker, selector: "clr-yearpicker" }, { type: ClrDaypicker, selector: "clr-daypicker" }], directives: [{ type:
|
|
5568
|
+
ClrDatepickerViewManager.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: ClrDatepickerViewManager, selector: "clr-datepicker-view-manager", host: { properties: { "class.datepicker": "true", "attr.aria-modal": "true" } }, providers: [DatepickerFocusService], ngImport: i0, template: "<!--\n* Copyright (c) 2016-2021 VMware, Inc. 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<clr-monthpicker *ngIf=\"isMonthView\"></clr-monthpicker>\n<clr-yearpicker *ngIf=\"isYearView\"></clr-yearpicker>\n<clr-daypicker *ngIf=\"isDayView\"></clr-daypicker>\n", components: [{ type: ClrMonthpicker, selector: "clr-monthpicker" }, { type: ClrYearpicker, selector: "clr-yearpicker" }, { type: ClrDaypicker, selector: "clr-daypicker" }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
5552
5569
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDatepickerViewManager, decorators: [{
|
|
5553
5570
|
type: Component,
|
|
5554
5571
|
args: [{ selector: 'clr-datepicker-view-manager', providers: [DatepickerFocusService], host: {
|
|
@@ -5687,7 +5704,7 @@ ClrDateContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versi
|
|
|
5687
5704
|
<ng-content select="clr-control-error" *ngIf="showInvalid"></ng-content>
|
|
5688
5705
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
5689
5706
|
</div>
|
|
5690
|
-
`, isInline: true, components: [{ type: ClrDatepickerViewManager, selector: "clr-datepicker-view-manager" }], directives: [{ type:
|
|
5707
|
+
`, isInline: true, components: [{ type: ClrDatepickerViewManager, selector: "clr-datepicker-view-manager" }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrLabel, selector: "label", inputs: ["for"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: ClrPopoverAnchor, selector: "[clrPopoverAnchor]" }, { type: ClrPopoverOpenCloseButton, selector: "[clrPopoverOpenCloseButton]", outputs: ["clrPopoverOpenCloseChange"] }, { type: CdsIconCustomTag, selector: "cds-icon" }, { type: ClrPopoverContent, selector: "[clrPopoverContent]", inputs: ["clrPopoverContent", "clrPopoverContentAt", "clrPopoverContentOutsideClickToClose", "clrPopoverContentScrollToClose"] }, { type: FocusTrapDirective, selector: "[clrFocusTrap]", inputs: ["clrFocusTrap"] }] });
|
|
5691
5708
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDateContainer, decorators: [{
|
|
5692
5709
|
type: Component,
|
|
5693
5710
|
args: [{
|
|
@@ -6159,7 +6176,7 @@ ClrInputContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
6159
6176
|
<ng-content select="clr-control-error" *ngIf="showInvalid"></ng-content>
|
|
6160
6177
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
6161
6178
|
</div>
|
|
6162
|
-
`, isInline: true, directives: [{ type:
|
|
6179
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrLabel, selector: "label", inputs: ["for"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
6163
6180
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrInputContainer, decorators: [{
|
|
6164
6181
|
type: Component,
|
|
6165
6182
|
args: [{
|
|
@@ -6247,7 +6264,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
6247
6264
|
}], ctorParameters: function () { return []; } });
|
|
6248
6265
|
|
|
6249
6266
|
/**
|
|
6250
|
-
* Copyright (c) 2016-
|
|
6267
|
+
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
6251
6268
|
* This software is released under MIT license.
|
|
6252
6269
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
6253
6270
|
*/
|
|
@@ -6311,6 +6328,9 @@ ClrPasswordContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
6311
6328
|
[attr.shape]="show ? 'eye-hide' : 'eye'"
|
|
6312
6329
|
[attr.title]="show ? commonStrings.keys.hide : commonStrings.keys.show"
|
|
6313
6330
|
></cds-icon>
|
|
6331
|
+
<span class="clr-sr-only">{{
|
|
6332
|
+
show ? commonStrings.keys.passwordHide : commonStrings.keys.passwordShow
|
|
6333
|
+
}}</span>
|
|
6314
6334
|
</button>
|
|
6315
6335
|
</div>
|
|
6316
6336
|
<cds-icon
|
|
@@ -6332,7 +6352,7 @@ ClrPasswordContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
6332
6352
|
<ng-content select="clr-control-error" *ngIf="showInvalid"></ng-content>
|
|
6333
6353
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
6334
6354
|
</div>
|
|
6335
|
-
`, isInline: true, directives: [{ type:
|
|
6355
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrLabel, selector: "label", inputs: ["for"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
6336
6356
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrPasswordContainer, decorators: [{
|
|
6337
6357
|
type: Component,
|
|
6338
6358
|
args: [{
|
|
@@ -6356,6 +6376,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
6356
6376
|
[attr.shape]="show ? 'eye-hide' : 'eye'"
|
|
6357
6377
|
[attr.title]="show ? commonStrings.keys.hide : commonStrings.keys.show"
|
|
6358
6378
|
></cds-icon>
|
|
6379
|
+
<span class="clr-sr-only">{{
|
|
6380
|
+
show ? commonStrings.keys.passwordHide : commonStrings.keys.passwordShow
|
|
6381
|
+
}}</span>
|
|
6359
6382
|
</button>
|
|
6360
6383
|
</div>
|
|
6361
6384
|
<cds-icon
|
|
@@ -6395,7 +6418,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
6395
6418
|
}], ctorParameters: function () {
|
|
6396
6419
|
return [{ type: IfControlStateService }, { type: LayoutService, decorators: [{
|
|
6397
6420
|
type: Optional
|
|
6398
|
-
}] }, { type: ControlClassService }, { type: NgControlService }, { type: FocusService$1 }, { type: i3
|
|
6421
|
+
}] }, { type: ControlClassService }, { type: NgControlService }, { type: FocusService$1 }, { type: i3.BehaviorSubject, decorators: [{
|
|
6399
6422
|
type: Inject,
|
|
6400
6423
|
args: [TOGGLE_SERVICE]
|
|
6401
6424
|
}] }, { type: ClrCommonStringsService }];
|
|
@@ -6446,7 +6469,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
6446
6469
|
type: Optional
|
|
6447
6470
|
}] }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: FocusService$1, decorators: [{
|
|
6448
6471
|
type: Optional
|
|
6449
|
-
}] }, { type: i3
|
|
6472
|
+
}] }, { type: i3.BehaviorSubject, decorators: [{
|
|
6450
6473
|
type: Optional
|
|
6451
6474
|
}, {
|
|
6452
6475
|
type: Inject,
|
|
@@ -6506,7 +6529,7 @@ ClrRadioWrapper.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
|
|
|
6506
6529
|
<ng-content select="[clrRadio]"></ng-content>
|
|
6507
6530
|
<ng-content select="label"></ng-content>
|
|
6508
6531
|
<label *ngIf="!label"></label>
|
|
6509
|
-
`, isInline: true, directives: [{ type:
|
|
6532
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrLabel, selector: "label", inputs: ["for"] }] });
|
|
6510
6533
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrRadioWrapper, decorators: [{
|
|
6511
6534
|
type: Component,
|
|
6512
6535
|
args: [{
|
|
@@ -6613,7 +6636,7 @@ ClrRadioContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
6613
6636
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
6614
6637
|
</div>
|
|
6615
6638
|
</div>
|
|
6616
|
-
`, isInline: true, directives: [{ type:
|
|
6639
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrLabel, selector: "label", inputs: ["for"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
6617
6640
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrRadioContainer, decorators: [{
|
|
6618
6641
|
type: Component,
|
|
6619
6642
|
args: [{
|
|
@@ -6739,7 +6762,7 @@ ClrSelectContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
|
|
|
6739
6762
|
<ng-content select="clr-control-error" *ngIf="showInvalid"></ng-content>
|
|
6740
6763
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
6741
6764
|
</div>
|
|
6742
|
-
`, isInline: true, directives: [{ type:
|
|
6765
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrLabel, selector: "label", inputs: ["for"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
6743
6766
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrSelectContainer, decorators: [{
|
|
6744
6767
|
type: Component,
|
|
6745
6768
|
args: [{
|
|
@@ -6866,7 +6889,7 @@ ClrTextareaContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
6866
6889
|
<ng-content select="clr-control-error" *ngIf="showInvalid"></ng-content>
|
|
6867
6890
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
6868
6891
|
</div>
|
|
6869
|
-
`, isInline: true, directives: [{ type:
|
|
6892
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrLabel, selector: "label", inputs: ["for"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
6870
6893
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrTextareaContainer, decorators: [{
|
|
6871
6894
|
type: Component,
|
|
6872
6895
|
args: [{
|
|
@@ -7016,7 +7039,7 @@ ClrRangeContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
7016
7039
|
<ng-content select="clr-control-error" *ngIf="showInvalid"></ng-content>
|
|
7017
7040
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
7018
7041
|
</div>
|
|
7019
|
-
`, isInline: true, directives: [{ type:
|
|
7042
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrLabel, selector: "label", inputs: ["for"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
7020
7043
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrRangeContainer, decorators: [{
|
|
7021
7044
|
type: Component,
|
|
7022
7045
|
args: [{
|
|
@@ -7189,7 +7212,7 @@ ClrDatalistContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
7189
7212
|
<ng-content select="clr-control-error" *ngIf="showInvalid"></ng-content>
|
|
7190
7213
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
7191
7214
|
</div>
|
|
7192
|
-
`, isInline: true, directives: [{ type:
|
|
7215
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrLabel, selector: "label", inputs: ["for"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
7193
7216
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDatalistContainer, decorators: [{
|
|
7194
7217
|
type: Component,
|
|
7195
7218
|
args: [{
|
|
@@ -7887,7 +7910,7 @@ class ClrOption {
|
|
|
7887
7910
|
}
|
|
7888
7911
|
ClrOption.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrOption, deps: [{ token: i0.ElementRef }, { token: ClrCommonStringsService }, { token: ComboboxFocusHandler }, { token: OptionSelectionService }, { token: UNIQUE_ID }], target: i0.ɵɵFactoryTarget.Component });
|
|
7889
7912
|
ClrOption.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: ClrOption, selector: "clr-option", inputs: { optionId: ["id", "optionId"], value: ["clrValue", "value"] }, host: { listeners: { "click": "onClick()" }, properties: { "class.clr-combobox-option": "true", "attr.role": "\"option\"", "attr.tabindex": "-1", "attr.id": "optionId", "class.active": "this.selected", "class.clr-focus": "this.focusClass" } }, providers: [UNIQUE_ID_PROVIDER], ngImport: i0, template: `<ng-content></ng-content>
|
|
7890
|
-
<span *ngIf="selected" class="clr-sr-only"> {{ commonStrings.keys.comboboxSelected }} </span> `, isInline: true, directives: [{ type:
|
|
7913
|
+
<span *ngIf="selected" class="clr-sr-only"> {{ commonStrings.keys.comboboxSelected }} </span> `, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
7891
7914
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrOption, decorators: [{
|
|
7892
7915
|
type: Component,
|
|
7893
7916
|
args: [{
|
|
@@ -8111,7 +8134,7 @@ ClrOptions.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "1
|
|
|
8111
8134
|
|
|
8112
8135
|
<!--Option Groups and Options will be projected here-->
|
|
8113
8136
|
<ng-content></ng-content>
|
|
8114
|
-
`, isInline: true, components: [{ type: ClrSpinner, selector: "clr-spinner", inputs: ["clrInline", "clrInverse", "clrSmall", "clrMedium"] }], directives: [{ type:
|
|
8137
|
+
`, isInline: true, components: [{ type: ClrSpinner, selector: "clr-spinner", inputs: ["clrInline", "clrInverse", "clrSmall", "clrMedium"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
8115
8138
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrOptions, decorators: [{
|
|
8116
8139
|
type: Component,
|
|
8117
8140
|
args: [{
|
|
@@ -8225,7 +8248,7 @@ ClrComboboxContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
8225
8248
|
<ng-content select="clr-control-error" *ngIf="showInvalid"></ng-content>
|
|
8226
8249
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
8227
8250
|
</div>
|
|
8228
|
-
`, isInline: true, directives: [{ type:
|
|
8251
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrLabel, selector: "label", inputs: ["for"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
8229
8252
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrComboboxContainer, decorators: [{
|
|
8230
8253
|
type: Component,
|
|
8231
8254
|
args: [{
|
|
@@ -8978,7 +9001,7 @@ ClrCombobox.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
|
8978
9001
|
ClrPopoverToggleService,
|
|
8979
9002
|
ClrPopoverEventsService,
|
|
8980
9003
|
ClrPopoverPositionService,
|
|
8981
|
-
], queries: [{ propertyName: "optionSelected", first: true, predicate: ClrOptionSelected, descendants: true }], viewQueries: [{ propertyName: "textbox", first: true, predicate: ["textboxInput"], descendants: true }, { propertyName: "trigger", first: true, predicate: ["trigger"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<!--\n* Copyright (c) 2016-2021 VMware, Inc. 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<!-- The (click) handler is needed to auto-focus on input field which can not currently occupy the whole\n width of the component, after being wrapped to a new line -->\n<div\n class=\"clr-combobox-wrapper\"\n clrPopoverAnchor\n (click)=\"focusInput()\"\n [class.multi]=\"multiSelect\"\n [class.invalid]=\"invalid\"\n>\n <span\n *ngIf=\"multiSelect && optionSelectionService.selectionModel.model\"\n role=\"grid\"\n clrRovingTabindex\n [clrRovingTabindexDisabled]=\"control?.disabled\"\n clrDirection=\"both\"\n [attr.aria-label]=\"getSelectionAriaLabel()\"\n [attr.aria-disabled]=\"control?.disabled? true: null\"\n >\n <span *ngFor=\"let item of multiSelectModel; let i = index\" class=\"label label-combobox-pill\" role=\"row\">\n <span role=\"gridcell\">\n <span class=\"clr-combobox-pill-content\" clrKeyFocusItem>\n <ng-container\n *ngIf=\"optionSelected\"\n [ngTemplateOutlet]=\"optionSelected.template\"\n [ngTemplateOutletContext]=\"{$implicit: optionSelectionService.selectionModel.model[i]}\"\n >\n </ng-container>\n </span>\n </span>\n <span role=\"gridcell\">\n <button\n clrKeyFocusItem\n type=\"button\"\n class=\"clr-combobox-remove-btn\"\n [disabled]=\"control?.disabled? true: null\"\n [attr.aria-label]=\"commonStrings.keys.comboboxDelete + ' ' + optionSelectionService.selectionModel.toString(displayField, i)\"\n (click)=\"unselect(item)\"\n >\n <cds-icon shape=\"window-close\" size=\"12\"></cds-icon>\n </button>\n </span>\n </span>\n </span>\n\n <span class=\"clr-combobox-input-wrapper\">\n <input\n #textboxInput\n type=\"text\"\n [id]=\"inputId()\"\n role=\"combobox\"\n class=\"clr-input clr-combobox-input\"\n [(ngModel)]=\"searchText\"\n (blur)=\"onBlur()\"\n (focus)=\"onFocus()\"\n [attr.aria-expanded]=\"openState\"\n [attr.aria-owns]=\"ariaOwns\"\n aria-haspopup=\"listbox\"\n aria-autocomplete=\"list\"\n autocomplete=\"off\"\n [attr.aria-invalid]=\"control?.invalid? true: null\"\n [disabled]=\"control?.disabled? true: null\"\n [attr.aria-activedescendant]=\"getActiveDescendant()\"\n [attr.placeholder]=\"placeholder\"\n aria-multiline=\"false\"\n />\n </span>\n\n <!-- No click handler, as it uses the handler on the .clr-combobox-wrapper -->\n <button\n clrPopoverOpenCloseButton\n #trigger\n type=\"button\"\n class=\"clr-combobox-trigger\"\n tabindex=\"-1\"\n [disabled]=\"control?.disabled || null\"\n [attr.aria-label]=\"commonStrings.keys.comboboxOpen\"\n >\n <cds-icon shape=\"angle\" direction=\"down\" size=\"12\"></cds-icon>\n </button>\n\n <div class=\"clr-focus-indicator\" [class.clr-focus]=\"focused\"></div>\n</div>\n\n<!-- Both close handlers are handled manually due to issues in Edge browser.\n Additionally 'outsideClickToClose' has complex handling that's necessary\n to be manual due to the component architecture -->\n<div role=\"dialog\" *clrPopoverContent=\"openState at smartPosition; outsideClickToClose: false; scrollToClose: false\">\n <ng-content></ng-content>\n</div>\n", components: [{ type: ClrRovingTabindex, selector: "[clrRovingTabindex]", inputs: ["clrRovingTabindex", "clrRovingTabindexDisabled"] }], directives: [{ type: ClrPopoverAnchor, selector: "[clrPopoverAnchor]" }, { type:
|
|
9004
|
+
], queries: [{ propertyName: "optionSelected", first: true, predicate: ClrOptionSelected, descendants: true }], viewQueries: [{ propertyName: "textbox", first: true, predicate: ["textboxInput"], descendants: true }, { propertyName: "trigger", first: true, predicate: ["trigger"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<!--\n* Copyright (c) 2016-2021 VMware, Inc. 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<!-- The (click) handler is needed to auto-focus on input field which can not currently occupy the whole\n width of the component, after being wrapped to a new line -->\n<div\n class=\"clr-combobox-wrapper\"\n clrPopoverAnchor\n (click)=\"focusInput()\"\n [class.multi]=\"multiSelect\"\n [class.invalid]=\"invalid\"\n>\n <span\n *ngIf=\"multiSelect && optionSelectionService.selectionModel.model\"\n role=\"grid\"\n clrRovingTabindex\n [clrRovingTabindexDisabled]=\"control?.disabled\"\n clrDirection=\"both\"\n [attr.aria-label]=\"getSelectionAriaLabel()\"\n [attr.aria-disabled]=\"control?.disabled? true: null\"\n >\n <span *ngFor=\"let item of multiSelectModel; let i = index\" class=\"label label-combobox-pill\" role=\"row\">\n <span role=\"gridcell\">\n <span class=\"clr-combobox-pill-content\" clrKeyFocusItem>\n <ng-container\n *ngIf=\"optionSelected\"\n [ngTemplateOutlet]=\"optionSelected.template\"\n [ngTemplateOutletContext]=\"{$implicit: optionSelectionService.selectionModel.model[i]}\"\n >\n </ng-container>\n </span>\n </span>\n <span role=\"gridcell\">\n <button\n clrKeyFocusItem\n type=\"button\"\n class=\"clr-combobox-remove-btn\"\n [disabled]=\"control?.disabled? true: null\"\n [attr.aria-label]=\"commonStrings.keys.comboboxDelete + ' ' + optionSelectionService.selectionModel.toString(displayField, i)\"\n (click)=\"unselect(item)\"\n >\n <cds-icon shape=\"window-close\" size=\"12\"></cds-icon>\n </button>\n </span>\n </span>\n </span>\n\n <span class=\"clr-combobox-input-wrapper\">\n <input\n #textboxInput\n type=\"text\"\n [id]=\"inputId()\"\n role=\"combobox\"\n class=\"clr-input clr-combobox-input\"\n [(ngModel)]=\"searchText\"\n (blur)=\"onBlur()\"\n (focus)=\"onFocus()\"\n [attr.aria-expanded]=\"openState\"\n [attr.aria-owns]=\"ariaOwns\"\n aria-haspopup=\"listbox\"\n aria-autocomplete=\"list\"\n autocomplete=\"off\"\n [attr.aria-invalid]=\"control?.invalid? true: null\"\n [disabled]=\"control?.disabled? true: null\"\n [attr.aria-activedescendant]=\"getActiveDescendant()\"\n [attr.placeholder]=\"placeholder\"\n aria-multiline=\"false\"\n />\n </span>\n\n <!-- No click handler, as it uses the handler on the .clr-combobox-wrapper -->\n <button\n clrPopoverOpenCloseButton\n #trigger\n type=\"button\"\n class=\"clr-combobox-trigger\"\n tabindex=\"-1\"\n [disabled]=\"control?.disabled || null\"\n [attr.aria-label]=\"commonStrings.keys.comboboxOpen\"\n >\n <cds-icon shape=\"angle\" direction=\"down\" size=\"12\"></cds-icon>\n </button>\n\n <div class=\"clr-focus-indicator\" [class.clr-focus]=\"focused\"></div>\n</div>\n\n<!-- Both close handlers are handled manually due to issues in Edge browser.\n Additionally 'outsideClickToClose' has complex handling that's necessary\n to be manual due to the component architecture -->\n<div role=\"dialog\" *clrPopoverContent=\"openState at smartPosition; outsideClickToClose: false; scrollToClose: false\">\n <ng-content></ng-content>\n</div>\n", components: [{ type: ClrRovingTabindex, selector: "[clrRovingTabindex]", inputs: ["clrRovingTabindex", "clrRovingTabindexDisabled"] }], directives: [{ type: ClrPopoverAnchor, selector: "[clrPopoverAnchor]" }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: ClrKeyFocusItem, selector: "[clrKeyFocusItem]" }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: CdsIconCustomTag, selector: "cds-icon" }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: ClrPopoverOpenCloseButton, selector: "[clrPopoverOpenCloseButton]", outputs: ["clrPopoverOpenCloseChange"] }, { type: ClrPopoverContent, selector: "[clrPopoverContent]", inputs: ["clrPopoverContent", "clrPopoverContentAt", "clrPopoverContentOutsideClickToClose", "clrPopoverContentScrollToClose"] }] });
|
|
8982
9005
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrCombobox, decorators: [{
|
|
8983
9006
|
type: Component,
|
|
8984
9007
|
args: [{ selector: 'clr-combobox', providers: [
|
|
@@ -11266,6 +11289,7 @@ DatagridStringFilter.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
11266
11289
|
[(ngModel)]="value"
|
|
11267
11290
|
class="clr-input"
|
|
11268
11291
|
[attr.aria-label]="commonStrings.keys.filterItems"
|
|
11292
|
+
[placeholder]="commonStrings.keys.filterItems"
|
|
11269
11293
|
/>
|
|
11270
11294
|
</clr-dg-filter>
|
|
11271
11295
|
`, isInline: true, components: [{ type: ClrDatagridFilter, selector: "clr-dg-filter", inputs: ["clrDgFilterOpen", "clrDgFilter"], outputs: ["clrDgFilterOpenChange"] }], directives: [{ type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
|
|
@@ -11283,6 +11307,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
11283
11307
|
[(ngModel)]="value"
|
|
11284
11308
|
class="clr-input"
|
|
11285
11309
|
[attr.aria-label]="commonStrings.keys.filterItems"
|
|
11310
|
+
[placeholder]="commonStrings.keys.filterItems"
|
|
11286
11311
|
/>
|
|
11287
11312
|
</clr-dg-filter>
|
|
11288
11313
|
`,
|
|
@@ -12660,7 +12685,7 @@ ClrDatagridColumn.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
12660
12685
|
|
|
12661
12686
|
<clr-dg-column-separator *ngIf="showSeparator"></clr-dg-column-separator>
|
|
12662
12687
|
</div>
|
|
12663
|
-
`, isInline: true, components: [{ type: DatagridStringFilter, selector: "clr-dg-string-filter", inputs: ["clrDgStringFilter", "clrFilterValue"], outputs: ["clrFilterValueChange"] }, { type: DatagridNumericFilter, selector: "clr-dg-numeric-filter", inputs: ["clrDgNumericFilter", "clrFilterValue"], outputs: ["clrFilterValueChange"] }, { type: ClrDatagridColumnSeparator, selector: "clr-dg-column-separator" }], directives: [{ type:
|
|
12688
|
+
`, isInline: true, components: [{ type: DatagridStringFilter, selector: "clr-dg-string-filter", inputs: ["clrDgStringFilter", "clrFilterValue"], outputs: ["clrFilterValueChange"] }, { type: DatagridNumericFilter, selector: "clr-dg-numeric-filter", inputs: ["clrDgNumericFilter", "clrFilterValue"], outputs: ["clrFilterValueChange"] }, { type: ClrDatagridColumnSeparator, selector: "clr-dg-column-separator" }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: CdsIconCustomTag, selector: "cds-icon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
12664
12689
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDatagridColumn, decorators: [{
|
|
12665
12690
|
type: Component,
|
|
12666
12691
|
args: [{
|
|
@@ -12991,7 +13016,7 @@ ClrDatagridPlaceholder.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
12991
13016
|
<div class="datagrid-placeholder-image" *ngIf="emptyDatagrid"></div>
|
|
12992
13017
|
<span role="gridcell"><ng-content *ngIf="emptyDatagrid"></ng-content></span>
|
|
12993
13018
|
</div>
|
|
12994
|
-
`, isInline: true, directives: [{ type:
|
|
13019
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
12995
13020
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDatagridPlaceholder, decorators: [{
|
|
12996
13021
|
type: Component,
|
|
12997
13022
|
args: [{
|
|
@@ -13192,7 +13217,7 @@ ClrSignpost.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
|
13192
13217
|
</ng-container>
|
|
13193
13218
|
|
|
13194
13219
|
<ng-content></ng-content>
|
|
13195
|
-
`, isInline: true, directives: [{ type:
|
|
13220
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrSignpostTrigger, selector: "[clrSignpostTrigger]" }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
13196
13221
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrSignpost, decorators: [{
|
|
13197
13222
|
type: Component,
|
|
13198
13223
|
args: [{
|
|
@@ -13956,7 +13981,7 @@ ClrDatagridRow.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
|
|
|
13956
13981
|
DatagridIfExpandService,
|
|
13957
13982
|
{ provide: IfExpandService, useExisting: DatagridIfExpandService },
|
|
13958
13983
|
{ provide: LoadingListener, useExisting: DatagridIfExpandService },
|
|
13959
|
-
], queries: [{ propertyName: "dgCells", predicate: ClrDatagridCell }], viewQueries: [{ propertyName: "expandAnimation", first: true, predicate: ClrExpandableAnimation, descendants: true }, { propertyName: "detailButton", first: true, predicate: ["detailButton"], descendants: true }, { propertyName: "_stickyCells", first: true, predicate: ["stickyCells"], descendants: true, read: ViewContainerRef }, { propertyName: "_scrollableCells", first: true, predicate: ["scrollableCells"], descendants: true, read: ViewContainerRef }, { propertyName: "_calculatedCells", first: true, predicate: ["calculatedCells"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<!--\n We need to wrap the #rowContent in label element if we are in rowSelectionMode.\n Clicking of that wrapper label will equate to clicking on the whole row, which triggers the checkbox to toggle.\n-->\n<label class=\"datagrid-row-clickable\" *ngIf=\"selection.rowSelectionMode\">\n <clr-expandable-animation [clrExpandTrigger]=\"expandAnimationTrigger\" *ngIf=\"expand.expandable\">\n <ng-template [ngTemplateOutlet]=\"rowContent\"></ng-template>\n </clr-expandable-animation>\n <ng-template [ngTemplateOutlet]=\"rowContent\" *ngIf=\"!expand.expandable\"></ng-template>\n</label>\n\n<clr-expandable-animation\n *ngIf=\"!selection.rowSelectionMode && expand.expandable\"\n [clrExpandTrigger]=\"expandAnimationTrigger\"\n>\n <ng-template [ngTemplateOutlet]=\"rowContent\"></ng-template>\n</clr-expandable-animation>\n\n<ng-template *ngIf=\"!selection.rowSelectionMode && !expand.expandable\" [ngTemplateOutlet]=\"rowContent\"></ng-template>\n\n<!--\n We need the \"project into template\" hacks because we need this in 2 different places\n depending on whether the details replace the row or not.\n-->\n<ng-template #detail>\n <ng-content select=\"clr-dg-row-detail\"></ng-content>\n</ng-template>\n\n<ng-template #rowContent>\n <div\n role=\"row\"\n [id]=\"id\"\n class=\"datagrid-row-master datagrid-row-flex\"\n [class.datagrid-row-detail-open]=\"detailService.isRowOpen(item)\"\n >\n <div class=\"datagrid-row-sticky\">\n <!-- Sticky elements here -->\n <ng-container #stickyCells>\n <div\n *ngIf=\"selection.selectionType === SELECTION_TYPE.Multi\"\n class=\"datagrid-select datagrid-fixed-column datagrid-cell\"\n [ngClass]=\"{ 'clr-form-control-disabled': !clrDgSelectable }\"\n role=\"gridcell\"\n >\n <div class=\"clr-checkbox-wrapper\">\n <input\n type=\"checkbox\"\n [ngModel]=\"selected\"\n (ngModelChange)=\"toggle($event)\"\n [id]=\"checkboxId\"\n [attr.disabled]=\"clrDgSelectable ? null : true\"\n [attr.aria-disabled]=\"clrDgSelectable ? null : true\"\n [attr.aria-label]=\"commonStrings.keys.select\"\n />\n <!-- Usage of class clr-col-null here prevents clr-col-* classes from being added when a datagrid is wrapped inside clrForm -->\n <label [for]=\"checkboxId\" class=\"clr-control-label clr-col-null\">\n <span class=\"clr-sr-only\">{{commonStrings.keys.select}}</span>\n </label>\n </div>\n </div>\n <div\n *ngIf=\"selection.selectionType === SELECTION_TYPE.Single\"\n class=\"datagrid-select datagrid-fixed-column datagrid-cell\"\n role=\"gridcell\"\n [ngClass]=\"{ 'clr-form-control-disabled': !clrDgSelectable }\"\n >\n <!-- TODO: it would be better if in addition to the generic \"Select\" label, we could add aria-labelledby\n to label the radio by the first cell in the row (typically an id or name).\n It's pretty easy to label it with the whole row since we already have an id for it, but in most\n cases the row is far too long to serve as a label, the screenreader reads every single cell content. -->\n <input\n type=\"radio\"\n clrRadio\n [id]=\"radioId\"\n [name]=\"selection.id + '-radio'\"\n [value]=\"item\"\n [(ngModel)]=\"selection.currentSingle\"\n [checked]=\"selection.currentSingle === item\"\n [attr.disabled]=\"clrDgSelectable ? null : true\"\n [attr.aria-disabled]=\"clrDgSelectable ? null : true\"\n [attr.aria-label]=\"commonStrings.keys.select\"\n />\n </div>\n <div\n *ngIf=\"rowActionService.hasActionableRow\"\n class=\"datagrid-row-actions datagrid-fixed-column datagrid-cell\"\n role=\"gridcell\"\n >\n <ng-content select=\"clr-dg-action-overflow\"></ng-content>\n </div>\n <div\n *ngIf=\"globalExpandable.hasExpandableRow\"\n class=\"datagrid-expandable-caret datagrid-fixed-column datagrid-cell\"\n role=\"gridcell\"\n >\n <ng-container *ngIf=\"expand.expandable\">\n <button\n *ngIf=\"!expand.loading\"\n (click)=\"toggleExpand()\"\n type=\"button\"\n class=\"datagrid-expandable-caret-button\"\n [attr.aria-expanded]=\"expand.expanded\"\n [attr.aria-label]=\"expand.expanded ? clrDgDetailCloseLabel : clrDgDetailOpenLabel\"\n [attr.aria-controls]=\"expandableId\"\n >\n <cds-icon\n shape=\"angle\"\n class=\"datagrid-expandable-caret-icon\"\n [attr.direction]=\"expand.expanded ? 'down' : 'right'\"\n [attr.title]=\"expand.expanded ? commonStrings.keys.collapse : commonStrings.keys.expand\"\n ></cds-icon>\n </button>\n <clr-spinner *ngIf=\"expand.loading\" clrSmall>{{ commonStrings.keys.loading }}</clr-spinner>\n </ng-container>\n </div>\n <div *ngIf=\"detailService.enabled\" class=\"datagrid-detail-caret datagrid-fixed-column datagrid-cell\">\n <button\n (click)=\"detailService.toggle(item, detailButton)\"\n type=\"button\"\n #detailButton\n class=\"datagrid-detail-caret-button\"\n [class.is-open]=\"detailService.isRowOpen(item)\"\n [attr.aria-label]=\"detailService.isOpen ? clrDgDetailCloseLabel : clrDgDetailOpenLabel\"\n [attr.aria-expanded]=\"detailService.isOpen\"\n [attr.aria-controls]=\"detailService.id\"\n aria-haspopup=\"dialog\"\n >\n <cds-icon\n shape=\"angle-double\"\n [attr.direction]=\"detailService.isRowOpen(item) ? 'left' : 'right'\"\n class=\"datagrid-detail-caret-icon\"\n [attr.title]=\"detailService.isRowOpen(item) ? commonStrings.keys.close: commonStrings.keys.open\"\n ></cds-icon>\n </button>\n </div>\n </ng-container>\n <!-- placeholder for projecting other sticky cells as pinned-->\n </div>\n <div class=\"datagrid-row-scrollable\" [ngClass]=\"{'is-replaced': replaced && expanded}\">\n <div class=\"datagrid-scrolling-cells\">\n <ng-content select=\"clr-dg-cell\"></ng-content>\n <ng-container #scrollableCells></ng-container>\n </div>\n <!-- details here when replace, re-visit when sticky container is used for pinned cells -->\n <ng-template *ngIf=\"replaced && !expand.loading\" [ngTemplateOutlet]=\"detail\"></ng-template>\n <ng-template *ngIf=\"!replaced && !expand.loading\" [ngTemplateOutlet]=\"detail\"></ng-template>\n </div>\n </div>\n</ng-template>\n\n<ng-container #calculatedCells></ng-container>\n", components: [{ type: ClrExpandableAnimation, selector: "clr-expandable-animation", inputs: ["clrExpandTrigger"] }, { type: ClrSpinner, selector: "clr-spinner", inputs: ["clrInline", "clrInverse", "clrSmall", "clrMedium"] }], directives: [{ type:
|
|
13984
|
+
], queries: [{ propertyName: "dgCells", predicate: ClrDatagridCell }], viewQueries: [{ propertyName: "expandAnimation", first: true, predicate: ClrExpandableAnimation, descendants: true }, { propertyName: "detailButton", first: true, predicate: ["detailButton"], descendants: true }, { propertyName: "_stickyCells", first: true, predicate: ["stickyCells"], descendants: true, read: ViewContainerRef }, { propertyName: "_scrollableCells", first: true, predicate: ["scrollableCells"], descendants: true, read: ViewContainerRef }, { propertyName: "_calculatedCells", first: true, predicate: ["calculatedCells"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<!--\n We need to wrap the #rowContent in label element if we are in rowSelectionMode.\n Clicking of that wrapper label will equate to clicking on the whole row, which triggers the checkbox to toggle.\n-->\n<label class=\"datagrid-row-clickable\" *ngIf=\"selection.rowSelectionMode\">\n <clr-expandable-animation [clrExpandTrigger]=\"expandAnimationTrigger\" *ngIf=\"expand.expandable\">\n <ng-template [ngTemplateOutlet]=\"rowContent\"></ng-template>\n </clr-expandable-animation>\n <ng-template [ngTemplateOutlet]=\"rowContent\" *ngIf=\"!expand.expandable\"></ng-template>\n</label>\n\n<clr-expandable-animation\n *ngIf=\"!selection.rowSelectionMode && expand.expandable\"\n [clrExpandTrigger]=\"expandAnimationTrigger\"\n>\n <ng-template [ngTemplateOutlet]=\"rowContent\"></ng-template>\n</clr-expandable-animation>\n\n<ng-template *ngIf=\"!selection.rowSelectionMode && !expand.expandable\" [ngTemplateOutlet]=\"rowContent\"></ng-template>\n\n<!--\n We need the \"project into template\" hacks because we need this in 2 different places\n depending on whether the details replace the row or not.\n-->\n<ng-template #detail>\n <ng-content select=\"clr-dg-row-detail\"></ng-content>\n</ng-template>\n\n<ng-template #rowContent>\n <div\n role=\"row\"\n [id]=\"id\"\n class=\"datagrid-row-master datagrid-row-flex\"\n [class.datagrid-row-detail-open]=\"detailService.isRowOpen(item)\"\n >\n <div class=\"datagrid-row-sticky\">\n <!-- Sticky elements here -->\n <ng-container #stickyCells>\n <div\n *ngIf=\"selection.selectionType === SELECTION_TYPE.Multi\"\n class=\"datagrid-select datagrid-fixed-column datagrid-cell\"\n [ngClass]=\"{ 'clr-form-control-disabled': !clrDgSelectable }\"\n role=\"gridcell\"\n >\n <div class=\"clr-checkbox-wrapper\">\n <input\n type=\"checkbox\"\n [ngModel]=\"selected\"\n (ngModelChange)=\"toggle($event)\"\n [id]=\"checkboxId\"\n [attr.disabled]=\"clrDgSelectable ? null : true\"\n [attr.aria-disabled]=\"clrDgSelectable ? null : true\"\n [attr.aria-label]=\"commonStrings.keys.select\"\n />\n <!-- Usage of class clr-col-null here prevents clr-col-* classes from being added when a datagrid is wrapped inside clrForm -->\n <label [for]=\"checkboxId\" class=\"clr-control-label clr-col-null\">\n <span class=\"clr-sr-only\">{{commonStrings.keys.select}}</span>\n </label>\n </div>\n </div>\n <div\n *ngIf=\"selection.selectionType === SELECTION_TYPE.Single\"\n class=\"datagrid-select datagrid-fixed-column datagrid-cell\"\n role=\"gridcell\"\n [ngClass]=\"{ 'clr-form-control-disabled': !clrDgSelectable }\"\n >\n <!-- TODO: it would be better if in addition to the generic \"Select\" label, we could add aria-labelledby\n to label the radio by the first cell in the row (typically an id or name).\n It's pretty easy to label it with the whole row since we already have an id for it, but in most\n cases the row is far too long to serve as a label, the screenreader reads every single cell content. -->\n <input\n type=\"radio\"\n clrRadio\n [id]=\"radioId\"\n [name]=\"selection.id + '-radio'\"\n [value]=\"item\"\n [(ngModel)]=\"selection.currentSingle\"\n [checked]=\"selection.currentSingle === item\"\n [attr.disabled]=\"clrDgSelectable ? null : true\"\n [attr.aria-disabled]=\"clrDgSelectable ? null : true\"\n [attr.aria-label]=\"commonStrings.keys.select\"\n />\n </div>\n <div\n *ngIf=\"rowActionService.hasActionableRow\"\n class=\"datagrid-row-actions datagrid-fixed-column datagrid-cell\"\n role=\"gridcell\"\n >\n <ng-content select=\"clr-dg-action-overflow\"></ng-content>\n </div>\n <div\n *ngIf=\"globalExpandable.hasExpandableRow\"\n class=\"datagrid-expandable-caret datagrid-fixed-column datagrid-cell\"\n role=\"gridcell\"\n >\n <ng-container *ngIf=\"expand.expandable\">\n <button\n *ngIf=\"!expand.loading\"\n (click)=\"toggleExpand()\"\n type=\"button\"\n class=\"datagrid-expandable-caret-button\"\n [attr.aria-expanded]=\"expand.expanded\"\n [attr.aria-label]=\"expand.expanded ? clrDgDetailCloseLabel : clrDgDetailOpenLabel\"\n [attr.aria-controls]=\"expandableId\"\n >\n <cds-icon\n shape=\"angle\"\n class=\"datagrid-expandable-caret-icon\"\n [attr.direction]=\"expand.expanded ? 'down' : 'right'\"\n [attr.title]=\"expand.expanded ? commonStrings.keys.collapse : commonStrings.keys.expand\"\n ></cds-icon>\n </button>\n <clr-spinner *ngIf=\"expand.loading\" clrSmall>{{ commonStrings.keys.loading }}</clr-spinner>\n </ng-container>\n </div>\n <div *ngIf=\"detailService.enabled\" class=\"datagrid-detail-caret datagrid-fixed-column datagrid-cell\">\n <button\n (click)=\"detailService.toggle(item, detailButton)\"\n type=\"button\"\n #detailButton\n class=\"datagrid-detail-caret-button\"\n [class.is-open]=\"detailService.isRowOpen(item)\"\n [attr.aria-label]=\"detailService.isOpen ? clrDgDetailCloseLabel : clrDgDetailOpenLabel\"\n [attr.aria-expanded]=\"detailService.isOpen\"\n [attr.aria-controls]=\"detailService.id\"\n aria-haspopup=\"dialog\"\n >\n <cds-icon\n shape=\"angle-double\"\n [attr.direction]=\"detailService.isRowOpen(item) ? 'left' : 'right'\"\n class=\"datagrid-detail-caret-icon\"\n [attr.title]=\"detailService.isRowOpen(item) ? commonStrings.keys.close: commonStrings.keys.open\"\n ></cds-icon>\n </button>\n </div>\n </ng-container>\n <!-- placeholder for projecting other sticky cells as pinned-->\n </div>\n <div class=\"datagrid-row-scrollable\" [ngClass]=\"{'is-replaced': replaced && expanded}\">\n <div class=\"datagrid-scrolling-cells\">\n <ng-content select=\"clr-dg-cell\"></ng-content>\n <ng-container #scrollableCells></ng-container>\n </div>\n <!-- details here when replace, re-visit when sticky container is used for pinned cells -->\n <ng-template *ngIf=\"replaced && !expand.loading\" [ngTemplateOutlet]=\"detail\"></ng-template>\n <ng-template *ngIf=\"!replaced && !expand.loading\" [ngTemplateOutlet]=\"detail\"></ng-template>\n </div>\n </div>\n</ng-template>\n\n<ng-container #calculatedCells></ng-container>\n", components: [{ type: ClrExpandableAnimation, selector: "clr-expandable-animation", inputs: ["clrExpandTrigger"] }, { type: ClrSpinner, selector: "clr-spinner", inputs: ["clrInline", "clrInverse", "clrSmall", "clrMedium"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrLabel, selector: "label", inputs: ["for"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i1.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: ClrRadio, selector: "[clrRadio]" }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
13960
13985
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDatagridRow, decorators: [{
|
|
13961
13986
|
type: Component,
|
|
13962
13987
|
args: [{ selector: 'clr-dg-row', host: {
|
|
@@ -14363,7 +14388,7 @@ ClrDatagrid.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
|
14363
14388
|
TableSizeService,
|
|
14364
14389
|
ColumnsService,
|
|
14365
14390
|
DisplayModeService,
|
|
14366
|
-
], queries: [{ propertyName: "iterator", first: true, predicate: ClrDatagridItems, descendants: true }, { propertyName: "placeholder", first: true, predicate: ClrDatagridPlaceholder, descendants: true }, { propertyName: "columns", predicate: ClrDatagridColumn }, { propertyName: "rows", predicate: ClrDatagridRow }], viewQueries: [{ propertyName: "scrollableColumns", first: true, predicate: ["scrollableColumns"], descendants: true, read: ViewContainerRef }, { propertyName: "datagridTable", first: true, predicate: ["datagridTable"], descendants: true, read: ElementRef }, { propertyName: "_projectedDisplayColumns", first: true, predicate: ["projectedDisplayColumns"], descendants: true, read: ViewContainerRef }, { propertyName: "_projectedCalculationColumns", first: true, predicate: ["projectedCalculationColumns"], descendants: true, read: ViewContainerRef }, { propertyName: "_displayedRows", first: true, predicate: ["displayedRows"], descendants: true, read: ViewContainerRef }, { propertyName: "_calculationRows", first: true, predicate: ["calculationRows"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<!--\n ~ Copyright (c) 2016-2021 VMware, Inc. 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<ng-content select=\"clr-dg-action-bar\"></ng-content>\n<div class=\"datagrid-outer-wrapper\">\n <div class=\"datagrid-inner-wrapper\">\n <div class=\"datagrid\" #datagrid [attr.aria-hidden]=\"detailService.isOpen ? true : null\">\n <div class=\"datagrid-table-wrapper\">\n <div role=\"grid\" class=\"datagrid-table\" tabindex=\"-1\" #datagridTable>\n <div role=\"rowgroup\" class=\"datagrid-header\">\n <div role=\"row\" class=\"datagrid-row\">\n <div class=\"datagrid-row-master datagrid-row-flex\">\n <div class=\"datagrid-row-sticky\">\n <!--header for datagrid where you can select multiple rows -->\n <div\n role=\"columnheader\"\n class=\"datagrid-column datagrid-select datagrid-fixed-column\"\n *ngIf=\"selection.selectionType === SELECTION_TYPE.Multi\"\n >\n <div class=\"clr-checkbox-wrapper\">\n <input\n type=\"checkbox\"\n [id]=\"selectAllId\"\n [(ngModel)]=\"allSelected\"\n [attr.aria-label]=\"commonStrings.keys.selectAll\"\n />\n <!-- Usage of class clr-col-null here prevents clr-col-* classes from being added when a datagrid is wrapped inside clrForm -->\n <label [for]=\"selectAllId\" class=\"clr-control-label clr-col-null\">\n <span class=\"clr-sr-only\">{{commonStrings.keys.selectAll}}</span>\n </label>\n </div>\n\n <div class=\"datagrid-column-separator\"></div>\n </div>\n <!-- header for datagrid where you can select one row only -->\n <div\n role=\"columnheader\"\n class=\"datagrid-column datagrid-select datagrid-fixed-column\"\n *ngIf=\"selection.selectionType === SELECTION_TYPE.Single\"\n [attr.aria-label]=\"clrDgSingleSelectionAriaLabel\"\n >\n <div class=\"datagrid-column-separator\"></div>\n </div>\n <!-- header for single row action; only displayType if we have at least one actionable row in datagrid -->\n <div\n role=\"columnheader\"\n class=\"datagrid-column datagrid-row-actions datagrid-fixed-column\"\n *ngIf=\"rowActionService.hasActionableRow\"\n [attr.aria-label]=\"clrDgSingleActionableAriaLabel\"\n >\n <div class=\"datagrid-column-separator\"></div>\n </div>\n <!-- header for carets; only displayType if we have at least one expandable row in datagrid -->\n <div\n role=\"columnheader\"\n class=\"datagrid-column datagrid-expandable-caret datagrid-fixed-column\"\n *ngIf=\"expandableRows.hasExpandableRow || detailService.enabled\"\n [attr.aria-label]=\"clrDetailExpandableAriaLabel\"\n >\n <div class=\"datagrid-column-separator\"></div>\n </div>\n </div>\n <div class=\"datagrid-row-scrollable\">\n <ng-container #projectedDisplayColumns></ng-container>\n </div>\n </div>\n </div>\n </div>\n <ng-container #displayedRows></ng-container>\n <!-- Custom placeholder overrides the default empty one -->\n <ng-content select=\"clr-dg-placeholder\"></ng-content>\n <clr-dg-placeholder *ngIf=\"!placeholder\"></clr-dg-placeholder>\n </div>\n </div>\n </div>\n <ng-content select=\"clr-dg-footer\"></ng-content>\n <div class=\"datagrid-spinner\" *ngIf=\"loading\">\n <clr-spinner clrMedium>Loading</clr-spinner>\n </div>\n </div>\n <ng-content select=\"[clrIfDetail],clr-dg-detail\"></ng-content>\n</div>\n\n<div class=\"datagrid-calculation-table\">\n <div class=\"datagrid-calculation-header\">\n <ng-container #projectedCalculationColumns></ng-container>\n </div>\n <ng-container #calculationRows></ng-container>\n</div>\n", components: [{ type: ClrDatagridPlaceholder, selector: "clr-dg-placeholder" }, { type: ClrSpinner, selector: "clr-spinner", inputs: ["clrInline", "clrInverse", "clrSmall", "clrMedium"] }], directives: [{ type:
|
|
14391
|
+
], queries: [{ propertyName: "iterator", first: true, predicate: ClrDatagridItems, descendants: true }, { propertyName: "placeholder", first: true, predicate: ClrDatagridPlaceholder, descendants: true }, { propertyName: "columns", predicate: ClrDatagridColumn }, { propertyName: "rows", predicate: ClrDatagridRow }], viewQueries: [{ propertyName: "scrollableColumns", first: true, predicate: ["scrollableColumns"], descendants: true, read: ViewContainerRef }, { propertyName: "datagridTable", first: true, predicate: ["datagridTable"], descendants: true, read: ElementRef }, { propertyName: "_projectedDisplayColumns", first: true, predicate: ["projectedDisplayColumns"], descendants: true, read: ViewContainerRef }, { propertyName: "_projectedCalculationColumns", first: true, predicate: ["projectedCalculationColumns"], descendants: true, read: ViewContainerRef }, { propertyName: "_displayedRows", first: true, predicate: ["displayedRows"], descendants: true, read: ViewContainerRef }, { propertyName: "_calculationRows", first: true, predicate: ["calculationRows"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<!--\n ~ Copyright (c) 2016-2021 VMware, Inc. 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<ng-content select=\"clr-dg-action-bar\"></ng-content>\n<div class=\"datagrid-outer-wrapper\">\n <div class=\"datagrid-inner-wrapper\">\n <div class=\"datagrid\" #datagrid [attr.aria-hidden]=\"detailService.isOpen ? true : null\">\n <div class=\"datagrid-table-wrapper\">\n <div role=\"grid\" class=\"datagrid-table\" tabindex=\"-1\" #datagridTable>\n <div role=\"rowgroup\" class=\"datagrid-header\">\n <div role=\"row\" class=\"datagrid-row\">\n <div class=\"datagrid-row-master datagrid-row-flex\">\n <div class=\"datagrid-row-sticky\">\n <!--header for datagrid where you can select multiple rows -->\n <div\n role=\"columnheader\"\n class=\"datagrid-column datagrid-select datagrid-fixed-column\"\n *ngIf=\"selection.selectionType === SELECTION_TYPE.Multi\"\n >\n <div class=\"clr-checkbox-wrapper\">\n <input\n type=\"checkbox\"\n [id]=\"selectAllId\"\n [(ngModel)]=\"allSelected\"\n [attr.aria-label]=\"commonStrings.keys.selectAll\"\n />\n <!-- Usage of class clr-col-null here prevents clr-col-* classes from being added when a datagrid is wrapped inside clrForm -->\n <label [for]=\"selectAllId\" class=\"clr-control-label clr-col-null\">\n <span class=\"clr-sr-only\">{{commonStrings.keys.selectAll}}</span>\n </label>\n </div>\n\n <div class=\"datagrid-column-separator\"></div>\n </div>\n <!-- header for datagrid where you can select one row only -->\n <div\n role=\"columnheader\"\n class=\"datagrid-column datagrid-select datagrid-fixed-column\"\n *ngIf=\"selection.selectionType === SELECTION_TYPE.Single\"\n [attr.aria-label]=\"clrDgSingleSelectionAriaLabel\"\n >\n <div class=\"datagrid-column-separator\"></div>\n </div>\n <!-- header for single row action; only displayType if we have at least one actionable row in datagrid -->\n <div\n role=\"columnheader\"\n class=\"datagrid-column datagrid-row-actions datagrid-fixed-column\"\n *ngIf=\"rowActionService.hasActionableRow\"\n [attr.aria-label]=\"clrDgSingleActionableAriaLabel\"\n >\n <div class=\"datagrid-column-separator\"></div>\n </div>\n <!-- header for carets; only displayType if we have at least one expandable row in datagrid -->\n <div\n role=\"columnheader\"\n class=\"datagrid-column datagrid-expandable-caret datagrid-fixed-column\"\n *ngIf=\"expandableRows.hasExpandableRow || detailService.enabled\"\n [attr.aria-label]=\"clrDetailExpandableAriaLabel\"\n >\n <div class=\"datagrid-column-separator\"></div>\n </div>\n </div>\n <div class=\"datagrid-row-scrollable\">\n <ng-container #projectedDisplayColumns></ng-container>\n </div>\n </div>\n </div>\n </div>\n <ng-container #displayedRows></ng-container>\n <!-- Custom placeholder overrides the default empty one -->\n <ng-content select=\"clr-dg-placeholder\"></ng-content>\n <clr-dg-placeholder *ngIf=\"!placeholder\"></clr-dg-placeholder>\n </div>\n </div>\n </div>\n <ng-content select=\"clr-dg-footer\"></ng-content>\n <div class=\"datagrid-spinner\" *ngIf=\"loading\">\n <clr-spinner clrMedium>Loading</clr-spinner>\n </div>\n </div>\n <ng-content select=\"[clrIfDetail],clr-dg-detail\"></ng-content>\n</div>\n\n<div class=\"datagrid-calculation-table\">\n <div class=\"datagrid-calculation-header\">\n <ng-container #projectedCalculationColumns></ng-container>\n </div>\n <ng-container #calculationRows></ng-container>\n</div>\n", components: [{ type: ClrDatagridPlaceholder, selector: "clr-dg-placeholder" }, { type: ClrSpinner, selector: "clr-spinner", inputs: ["clrInline", "clrInverse", "clrSmall", "clrMedium"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: ClrLabel, selector: "label", inputs: ["for"] }] });
|
|
14367
14392
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDatagrid, decorators: [{
|
|
14368
14393
|
type: Component,
|
|
14369
14394
|
args: [{ selector: 'clr-datagrid', providers: [
|
|
@@ -14840,7 +14865,7 @@ ClrDatagridColumnToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
|
|
|
14840
14865
|
</clr-dg-column-toggle-button>
|
|
14841
14866
|
</div>
|
|
14842
14867
|
</div>
|
|
14843
|
-
`, isInline: true, components: [{ type: ClrCheckboxWrapper, selector: "clr-checkbox-wrapper,clr-toggle-wrapper" }, { type: ClrDatagridColumnToggleButton, selector: "clr-dg-column-toggle-button", outputs: ["clrAllSelected"] }], directives: [{ type: ClrPopoverAnchor, selector: "[clrPopoverAnchor]" }, { type: ClrPopoverOpenCloseButton, selector: "[clrPopoverOpenCloseButton]", outputs: ["clrPopoverOpenCloseChange"] }, { type: CdsIconCustomTag, selector: "cds-icon" }, { type: ClrPopoverContent, selector: "[clrPopoverContent]", inputs: ["clrPopoverContent", "clrPopoverContentAt", "clrPopoverContentOutsideClickToClose", "clrPopoverContentScrollToClose"] }, { type: FocusTrapDirective, selector: "[clrFocusTrap]", inputs: ["clrFocusTrap"] }, { type:
|
|
14868
|
+
`, isInline: true, components: [{ type: ClrCheckboxWrapper, selector: "clr-checkbox-wrapper,clr-toggle-wrapper" }, { type: ClrDatagridColumnToggleButton, selector: "clr-dg-column-toggle-button", outputs: ["clrAllSelected"] }], directives: [{ type: ClrPopoverAnchor, selector: "[clrPopoverAnchor]" }, { type: ClrPopoverOpenCloseButton, selector: "[clrPopoverOpenCloseButton]", outputs: ["clrPopoverOpenCloseChange"] }, { type: CdsIconCustomTag, selector: "cds-icon" }, { type: ClrPopoverContent, selector: "[clrPopoverContent]", inputs: ["clrPopoverContent", "clrPopoverContentAt", "clrPopoverContentOutsideClickToClose", "clrPopoverContentScrollToClose"] }, { type: FocusTrapDirective, selector: "[clrFocusTrap]", inputs: ["clrFocusTrap"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrPopoverCloseButton, selector: "[clrPopoverCloseButton]", outputs: ["clrPopoverOnCloseChange"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: ClrDatagridItemsTrackBy, selector: "[ngForTrackBy]", inputs: ["ngForTrackBy"] }, { type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: ClrCheckbox, selector: "[clrCheckbox],[clrToggle]" }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: ClrLabel, selector: "label", inputs: ["for"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
|
|
14844
14869
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDatagridColumnToggle, decorators: [{
|
|
14845
14870
|
type: Component,
|
|
14846
14871
|
args: [{
|
|
@@ -15046,7 +15071,7 @@ ClrDatagridDetail.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
15046
15071
|
<ng-content></ng-content>
|
|
15047
15072
|
<div class="clr-sr-only">{{ commonStrings.keys.detailPaneEnd }}</div>
|
|
15048
15073
|
</div>
|
|
15049
|
-
`, isInline: true, directives: [{ type:
|
|
15074
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: FocusTrapDirective, selector: "[clrFocusTrap]", inputs: ["clrFocusTrap"] }] });
|
|
15050
15075
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDatagridDetail, decorators: [{
|
|
15051
15076
|
type: Component,
|
|
15052
15077
|
args: [{
|
|
@@ -15203,7 +15228,7 @@ ClrDatagridFooter.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
15203
15228
|
</div>
|
|
15204
15229
|
</ng-container>
|
|
15205
15230
|
<ng-content select="clr-dg-pagination"></ng-content>
|
|
15206
|
-
`, isInline: true, components: [{ type: ClrCheckboxWrapper, selector: "clr-checkbox-wrapper,clr-toggle-wrapper" }, { type: ClrDatagridColumnToggle, selector: "clr-dg-column-toggle" }], directives: [{ type:
|
|
15231
|
+
`, isInline: true, components: [{ type: ClrCheckboxWrapper, selector: "clr-checkbox-wrapper,clr-toggle-wrapper" }, { type: ClrDatagridColumnToggle, selector: "clr-dg-column-toggle" }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrCheckbox, selector: "[clrCheckbox],[clrToggle]" }, { type: ClrLabel, selector: "label", inputs: ["for"] }] });
|
|
15207
15232
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDatagridFooter, decorators: [{
|
|
15208
15233
|
type: Component,
|
|
15209
15234
|
args: [{
|
|
@@ -15334,7 +15359,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
15334
15359
|
type: Directive,
|
|
15335
15360
|
args: [{ selector: '[clrDgHideableColumn]' }]
|
|
15336
15361
|
}], ctorParameters: function () {
|
|
15337
|
-
return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: ColumnsService }, { type: i3
|
|
15362
|
+
return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: ColumnsService }, { type: i3.BehaviorSubject, decorators: [{
|
|
15338
15363
|
type: Optional
|
|
15339
15364
|
}, {
|
|
15340
15365
|
type: Inject,
|
|
@@ -15374,7 +15399,7 @@ ClrDatagridPageSize.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
|
|
|
15374
15399
|
<option *ngFor="let option of pageSizeOptions" [ngValue]="option">{{ option }}</option>
|
|
15375
15400
|
</select>
|
|
15376
15401
|
</div>
|
|
15377
|
-
`, isInline: true, directives: [{ type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type:
|
|
15402
|
+
`, isInline: true, directives: [{ type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }] });
|
|
15378
15403
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDatagridPageSize, decorators: [{
|
|
15379
15404
|
type: Component,
|
|
15380
15405
|
args: [{
|
|
@@ -15624,7 +15649,7 @@ ClrDatagridPagination.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
15624
15649
|
</button>
|
|
15625
15650
|
</div>
|
|
15626
15651
|
</ng-container>
|
|
15627
|
-
`, isInline: true, directives: [{ type:
|
|
15652
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
15628
15653
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDatagridPagination, decorators: [{
|
|
15629
15654
|
type: Component,
|
|
15630
15655
|
args: [{
|
|
@@ -15748,7 +15773,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
15748
15773
|
}] } });
|
|
15749
15774
|
|
|
15750
15775
|
/*
|
|
15751
|
-
* Copyright (c) 2016-
|
|
15776
|
+
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
15752
15777
|
* This software is released under MIT license.
|
|
15753
15778
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
15754
15779
|
*/
|
|
@@ -15781,17 +15806,20 @@ class ClrDatagridRowDetail {
|
|
|
15781
15806
|
}
|
|
15782
15807
|
get beginningOfExpandableContentAriaText() {
|
|
15783
15808
|
return (this._beginningOfExpandableContentAriaText ||
|
|
15784
|
-
`${this.commonStrings.keys.dategridExpandableBeginningOf
|
|
15809
|
+
`${this.commonStrings.keys.dategridExpandableBeginningOf || this.commonStrings.keys.datagridExpandableBeginningOf}
|
|
15810
|
+
${this.commonStrings.keys.dategridExpandableRowContent || this.commonStrings.keys.datagridExpandableRowContent}`);
|
|
15785
15811
|
}
|
|
15786
15812
|
get endOfExpandableContentAriaText() {
|
|
15787
15813
|
return (this._endOfExpandableContentAriaText ||
|
|
15788
|
-
`${this.commonStrings.keys.dategridExpandableEndOf
|
|
15814
|
+
`${this.commonStrings.keys.dategridExpandableEndOf || this.commonStrings.keys.datagridExpandableEndOf}
|
|
15815
|
+
${this.commonStrings.keys.dategridExpandableRowContent || this.commonStrings.keys.datagridExpandableRowContent}`);
|
|
15789
15816
|
}
|
|
15790
15817
|
}
|
|
15791
15818
|
ClrDatagridRowDetail.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDatagridRowDetail, deps: [{ token: Selection }, { token: RowActionService }, { token: DatagridIfExpandService }, { token: ExpandableRowsCount }, { token: ClrCommonStringsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
15792
15819
|
ClrDatagridRowDetail.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: ClrDatagridRowDetail, selector: "clr-dg-row-detail", inputs: { replace: ["clrDgReplace", "replace"], _beginningOfExpandableContentAriaText: ["clrRowDetailBeginningAriaText", "_beginningOfExpandableContentAriaText"], _endOfExpandableContentAriaText: ["clrRowDetailEndAriaText", "_endOfExpandableContentAriaText"] }, host: { properties: { "class.datagrid-row-flex": "true", "class.datagrid-row-detail": "true", "class.datagrid-container": "cells.length === 0", "attr.id": "expand.expandableId" } }, queries: [{ propertyName: "cells", predicate: ClrDatagridCell }], ngImport: i0, template: `
|
|
15793
15820
|
<div class="clr-sr-only">
|
|
15794
|
-
{{ beginningOfExpandableContentAriaText }}
|
|
15821
|
+
{{ beginningOfExpandableContentAriaText }}
|
|
15822
|
+
{{ commonStrings.keys.dategridExpandableRowsHelperText || commonStrings.keys.datagridExpandableRowsHelperText }}
|
|
15795
15823
|
</div>
|
|
15796
15824
|
<ng-content></ng-content>
|
|
15797
15825
|
<div class="clr-sr-only">{{ endOfExpandableContentAriaText }}</div>
|
|
@@ -15800,9 +15828,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
15800
15828
|
type: Component,
|
|
15801
15829
|
args: [{
|
|
15802
15830
|
selector: 'clr-dg-row-detail',
|
|
15831
|
+
// TODO: @deprecated - dategrid* keys are deprecated. Remove in v14.
|
|
15803
15832
|
template: `
|
|
15804
15833
|
<div class="clr-sr-only">
|
|
15805
|
-
{{ beginningOfExpandableContentAriaText }}
|
|
15834
|
+
{{ beginningOfExpandableContentAriaText }}
|
|
15835
|
+
{{ commonStrings.keys.dategridExpandableRowsHelperText || commonStrings.keys.datagridExpandableRowsHelperText }}
|
|
15806
15836
|
</div>
|
|
15807
15837
|
<ng-content></ng-content>
|
|
15808
15838
|
<div class="clr-sr-only">{{ endOfExpandableContentAriaText }}</div>
|
|
@@ -16028,7 +16058,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
16028
16058
|
type: Directive,
|
|
16029
16059
|
args: [{ selector: 'clr-dg-column', providers: [ColumnResizerService, COLUMN_STATE_PROVIDER] }]
|
|
16030
16060
|
}], ctorParameters: function () {
|
|
16031
|
-
return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: DatagridRenderOrganizer }, { type: DomAdapter }, { type: ColumnResizerService }, { type: ColumnsService }, { type: i3
|
|
16061
|
+
return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: DatagridRenderOrganizer }, { type: DomAdapter }, { type: ColumnResizerService }, { type: ColumnsService }, { type: i3.BehaviorSubject, decorators: [{
|
|
16032
16062
|
type: Inject,
|
|
16033
16063
|
args: [COLUMN_STATE]
|
|
16034
16064
|
}] }];
|
|
@@ -16618,7 +16648,7 @@ ClrStackBlock.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
|
|
|
16618
16648
|
<ng-content select="clr-stack-block"></ng-content>
|
|
16619
16649
|
</div>
|
|
16620
16650
|
</clr-expandable-animation>
|
|
16621
|
-
`, isInline: true, styles: [":host{display:block}\n"], components: [{ type: ClrExpandableAnimation, selector: "clr-expandable-animation", inputs: ["clrExpandTrigger"] }], directives: [{ type:
|
|
16651
|
+
`, isInline: true, styles: [":host{display:block}\n"], components: [{ type: ClrExpandableAnimation, selector: "clr-expandable-animation", inputs: ["clrExpandTrigger"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
16622
16652
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrStackBlock, decorators: [{
|
|
16623
16653
|
type: Component,
|
|
16624
16654
|
args: [{
|
|
@@ -16798,7 +16828,7 @@ ClrStackHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
|
|
|
16798
16828
|
<!-- End of undocumented experimental feature. -->
|
|
16799
16829
|
</span>
|
|
16800
16830
|
</h4>
|
|
16801
|
-
`, isInline: true, styles: [":host{display:block}\n"], directives: [{ type:
|
|
16831
|
+
`, isInline: true, styles: [":host{display:block}\n"], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
16802
16832
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrStackHeader, decorators: [{
|
|
16803
16833
|
type: Component,
|
|
16804
16834
|
args: [{
|
|
@@ -16869,7 +16899,7 @@ ClrStackInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
|
16869
16899
|
ClrStackInput.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: ClrStackInput, selector: "clr-stack-input", inputs: { model: ["clrModel", "model"], type: "type" }, outputs: { modelChange: "clrModelChange" }, usesInheritance: true, ngImport: i0, template: `
|
|
16870
16900
|
<span *ngIf="!stackView.editing">{{ model }}</span>
|
|
16871
16901
|
<input [type]="type" *ngIf="stackView.editing" [(ngModel)]="model" />
|
|
16872
|
-
`, isInline: true, directives: [{ type:
|
|
16902
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
|
|
16873
16903
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrStackInput, decorators: [{
|
|
16874
16904
|
type: Component,
|
|
16875
16905
|
args: [{
|
|
@@ -16902,7 +16932,7 @@ ClrStackSelect.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
|
|
|
16902
16932
|
<ng-content></ng-content>
|
|
16903
16933
|
</select>
|
|
16904
16934
|
</div>
|
|
16905
|
-
`, isInline: true, directives: [{ type:
|
|
16935
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
|
|
16906
16936
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrStackSelect, decorators: [{
|
|
16907
16937
|
type: Component,
|
|
16908
16938
|
args: [{
|
|
@@ -17390,7 +17420,7 @@ RecursiveChildren.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
17390
17420
|
<ng-container *ngTemplateOutlet="featuresService.recursion.template; context: getContext(child)"></ng-container>
|
|
17391
17421
|
</ng-container>
|
|
17392
17422
|
</ng-container>
|
|
17393
|
-
`, isInline: true, directives: [{ type:
|
|
17423
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
|
|
17394
17424
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: RecursiveChildren, decorators: [{
|
|
17395
17425
|
type: Component,
|
|
17396
17426
|
args: [{
|
|
@@ -17419,7 +17449,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
17419
17449
|
}] } });
|
|
17420
17450
|
|
|
17421
17451
|
/*
|
|
17422
|
-
* Copyright (c) 2016-
|
|
17452
|
+
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
17423
17453
|
* This software is released under MIT license.
|
|
17424
17454
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
17425
17455
|
*/
|
|
@@ -17612,12 +17642,12 @@ class ClrTreeNode {
|
|
|
17612
17642
|
}
|
|
17613
17643
|
}
|
|
17614
17644
|
ClrTreeNode.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrTreeNode, deps: [{ token: UNIQUE_ID }, { token: PLATFORM_ID }, { token: ClrTreeNode, optional: true, skipSelf: true }, { token: TreeFeaturesService }, { token: IfExpandService }, { token: ClrCommonStringsService }, { token: TreeFocusManagerService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
17615
|
-
ClrTreeNode.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: ClrTreeNode, selector: "clr-tree-node", inputs: { selected: ["clrSelected", "selected"], expandable: ["clrExpandable", "expandable"], expanded: ["clrExpanded", "expanded"] }, outputs: { selectedChange: "clrSelectedChange", expandedChange: "clrExpandedChange" }, host: { properties: { "
|
|
17645
|
+
ClrTreeNode.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: ClrTreeNode, selector: "clr-tree-node", inputs: { selected: ["clrSelected", "selected"], expandable: ["clrExpandable", "expandable"], expanded: ["clrExpanded", "expanded"] }, outputs: { selectedChange: "clrSelectedChange", expandedChange: "clrExpandedChange" }, host: { properties: { "class.clr-tree-node": "true" } }, providers: [
|
|
17616
17646
|
UNIQUE_ID_PROVIDER,
|
|
17617
17647
|
TREE_FEATURES_PROVIDER,
|
|
17618
17648
|
IfExpandService,
|
|
17619
17649
|
{ provide: LoadingListener, useExisting: IfExpandService },
|
|
17620
|
-
], queries: [{ propertyName: "treeNodeLinkList", predicate: ClrTreeNodeLink }], viewQueries: [{ propertyName: "contentContainer", first: true, predicate: ["contentContainer"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<!--\n ~ Copyright (c) 2016-2021 VMware, Inc. 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\n #contentContainer\n role=\"treeitem\"\n class=\"clr-tree-node-content-container\"\n tabindex=\"-1\"\n [attr.aria-expanded]=\"isExpandable() ? expanded : null\"\n [attr.aria-selected]=\"ariaSelected\"\n (keydown)=\"onKeyDown($event)\"\n (focus)=\"broadcastFocusOnContainer()\"\n>\n <button\n *ngIf=\"isExpandable() && !isModelLoading && !expandService.loading\"\n aria-hidden=\"true\"\n type=\"button\"\n tabindex=\"-1\"\n class=\"clr-treenode-caret\"\n (click)=\"expandService.toggle();\"\n (focus)=\"focusTreeNode()\"\n >\n <cds-icon\n class=\"clr-treenode-caret-icon\"\n shape=\"angle\"\n [attr.direction]=\"expandService.expanded ? 'down' : 'right'\"\n ></cds-icon>\n </button>\n <div class=\"clr-treenode-spinner-container\" *ngIf=\"expandService.loading || isModelLoading\">\n <span class=\"clr-treenode-spinner spinner\"></span>\n </div>\n <div class=\"clr-checkbox-wrapper clr-treenode-checkbox\" *ngIf=\"featuresService.selectable\">\n <input\n aria-hidden=\"true\"\n type=\"checkbox\"\n id=\"{{nodeId}}-check\"\n class=\"clr-checkbox\"\n [checked]=\"_model.selected.value === STATES.SELECTED\"\n [indeterminate]=\"_model.selected.value === STATES.INDETERMINATE\"\n (change)=\"_model.toggleSelection(featuresService.eager)\"\n (focus)=\"focusTreeNode()\"\n tabindex=\"-1\"\n />\n <label for=\"{{nodeId}}-check\" class=\"clr-control-label\"></label>\n </div>\n <div class=\"clr-treenode-content\" (mousedown)=\"focusTreeNode()\">\n <ng-content></ng-content>\n <div class=\"clr-sr-only\" *ngIf=\"featuresService.selectable\">\n <span *ngIf=\"ariaSelected\"> selected </span>\n <span *ngIf=\"!ariaSelected\"> unselected </span>\n </div>\n </div>\n</div>\n<div\n class=\"clr-treenode-children\"\n [@toggleChildrenAnim]=\"expandService.expanded ? 'expanded' : 'collapsed'\"\n [attr.role]=\"isExpandable() && !featuresService.recursion ? 'group' : null\"\n>\n <ng-content select=\"clr-tree-node\"></ng-content>\n <ng-content select=\"[clrIfExpanded]\"></ng-content>\n <clr-recursive-children [parent]=\"_model\"></clr-recursive-children>\n</div>\n", components: [{ type: RecursiveChildren, selector: "clr-recursive-children", inputs: ["parent", "children"] }], directives: [{ type:
|
|
17650
|
+
], queries: [{ propertyName: "treeNodeLinkList", predicate: ClrTreeNodeLink }], viewQueries: [{ propertyName: "contentContainer", first: true, predicate: ["contentContainer"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<!--\n ~ Copyright (c) 2016-2021 VMware, Inc. 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\n #contentContainer\n role=\"treeitem\"\n class=\"clr-tree-node-content-container\"\n tabindex=\"-1\"\n [attr.aria-expanded]=\"isExpandable() ? expanded : null\"\n [attr.aria-selected]=\"ariaSelected\"\n (keydown)=\"onKeyDown($event)\"\n (focus)=\"broadcastFocusOnContainer()\"\n>\n <button\n *ngIf=\"isExpandable() && !isModelLoading && !expandService.loading\"\n aria-hidden=\"true\"\n type=\"button\"\n tabindex=\"-1\"\n class=\"clr-treenode-caret\"\n (click)=\"expandService.toggle();\"\n (focus)=\"focusTreeNode()\"\n >\n <cds-icon\n class=\"clr-treenode-caret-icon\"\n shape=\"angle\"\n [attr.direction]=\"expandService.expanded ? 'down' : 'right'\"\n ></cds-icon>\n </button>\n <div class=\"clr-treenode-spinner-container\" *ngIf=\"expandService.loading || isModelLoading\">\n <span class=\"clr-treenode-spinner spinner\"></span>\n </div>\n <div class=\"clr-checkbox-wrapper clr-treenode-checkbox\" *ngIf=\"featuresService.selectable\">\n <input\n aria-hidden=\"true\"\n type=\"checkbox\"\n id=\"{{nodeId}}-check\"\n class=\"clr-checkbox\"\n [checked]=\"_model.selected.value === STATES.SELECTED\"\n [indeterminate]=\"_model.selected.value === STATES.INDETERMINATE\"\n (change)=\"_model.toggleSelection(featuresService.eager)\"\n (focus)=\"focusTreeNode()\"\n tabindex=\"-1\"\n />\n <label for=\"{{nodeId}}-check\" class=\"clr-control-label\"></label>\n </div>\n <div class=\"clr-treenode-content\" (mousedown)=\"focusTreeNode()\">\n <ng-content></ng-content>\n <div class=\"clr-sr-only\" *ngIf=\"featuresService.selectable\">\n <span *ngIf=\"ariaSelected\"> selected </span>\n <span *ngIf=\"!ariaSelected\"> unselected </span>\n </div>\n </div>\n</div>\n<div\n class=\"clr-treenode-children\"\n [@toggleChildrenAnim]=\"expandService.expanded ? 'expanded' : 'collapsed'\"\n [attr.role]=\"isExpandable() && !featuresService.recursion ? 'group' : null\"\n>\n <ng-content select=\"clr-tree-node\"></ng-content>\n <ng-content select=\"[clrIfExpanded]\"></ng-content>\n <clr-recursive-children [parent]=\"_model\"></clr-recursive-children>\n</div>\n", components: [{ type: RecursiveChildren, selector: "clr-recursive-children", inputs: ["parent", "children"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: CdsIconCustomTag, selector: "cds-icon" }], animations: [
|
|
17621
17651
|
trigger('toggleChildrenAnim', [
|
|
17622
17652
|
transition('collapsed => expanded', [style({ height: 0 }), animate(200, style({ height: '*' }))]),
|
|
17623
17653
|
transition('expanded => collapsed', [style({ height: '*' }), animate(200, style({ height: 0 }))]),
|
|
@@ -17640,7 +17670,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
17640
17670
|
state('collapsed', style({ height: 0 })),
|
|
17641
17671
|
]),
|
|
17642
17672
|
], host: {
|
|
17643
|
-
'[attr.role]': '"treeitem"',
|
|
17644
17673
|
'[class.clr-tree-node]': 'true',
|
|
17645
17674
|
}, template: "<!--\n ~ Copyright (c) 2016-2021 VMware, Inc. 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\n #contentContainer\n role=\"treeitem\"\n class=\"clr-tree-node-content-container\"\n tabindex=\"-1\"\n [attr.aria-expanded]=\"isExpandable() ? expanded : null\"\n [attr.aria-selected]=\"ariaSelected\"\n (keydown)=\"onKeyDown($event)\"\n (focus)=\"broadcastFocusOnContainer()\"\n>\n <button\n *ngIf=\"isExpandable() && !isModelLoading && !expandService.loading\"\n aria-hidden=\"true\"\n type=\"button\"\n tabindex=\"-1\"\n class=\"clr-treenode-caret\"\n (click)=\"expandService.toggle();\"\n (focus)=\"focusTreeNode()\"\n >\n <cds-icon\n class=\"clr-treenode-caret-icon\"\n shape=\"angle\"\n [attr.direction]=\"expandService.expanded ? 'down' : 'right'\"\n ></cds-icon>\n </button>\n <div class=\"clr-treenode-spinner-container\" *ngIf=\"expandService.loading || isModelLoading\">\n <span class=\"clr-treenode-spinner spinner\"></span>\n </div>\n <div class=\"clr-checkbox-wrapper clr-treenode-checkbox\" *ngIf=\"featuresService.selectable\">\n <input\n aria-hidden=\"true\"\n type=\"checkbox\"\n id=\"{{nodeId}}-check\"\n class=\"clr-checkbox\"\n [checked]=\"_model.selected.value === STATES.SELECTED\"\n [indeterminate]=\"_model.selected.value === STATES.INDETERMINATE\"\n (change)=\"_model.toggleSelection(featuresService.eager)\"\n (focus)=\"focusTreeNode()\"\n tabindex=\"-1\"\n />\n <label for=\"{{nodeId}}-check\" class=\"clr-control-label\"></label>\n </div>\n <div class=\"clr-treenode-content\" (mousedown)=\"focusTreeNode()\">\n <ng-content></ng-content>\n <div class=\"clr-sr-only\" *ngIf=\"featuresService.selectable\">\n <span *ngIf=\"ariaSelected\"> selected </span>\n <span *ngIf=\"!ariaSelected\"> unselected </span>\n </div>\n </div>\n</div>\n<div\n class=\"clr-treenode-children\"\n [@toggleChildrenAnim]=\"expandService.expanded ? 'expanded' : 'collapsed'\"\n [attr.role]=\"isExpandable() && !featuresService.recursion ? 'group' : null\"\n>\n <ng-content select=\"clr-tree-node\"></ng-content>\n <ng-content select=\"[clrIfExpanded]\"></ng-content>\n <clr-recursive-children [parent]=\"_model\"></clr-recursive-children>\n</div>\n" }]
|
|
17646
17675
|
}], ctorParameters: function () {
|
|
@@ -17730,7 +17759,7 @@ ClrTree.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0
|
|
|
17730
17759
|
*ngIf="featuresService.recursion"
|
|
17731
17760
|
[children]="featuresService.recursion.root"
|
|
17732
17761
|
></clr-recursive-children>
|
|
17733
|
-
`, isInline: true, components: [{ type: RecursiveChildren, selector: "clr-recursive-children", inputs: ["parent", "children"] }], directives: [{ type:
|
|
17762
|
+
`, isInline: true, components: [{ type: RecursiveChildren, selector: "clr-recursive-children", inputs: ["parent", "children"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
17734
17763
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrTree, decorators: [{
|
|
17735
17764
|
type: Component,
|
|
17736
17765
|
args: [{
|
|
@@ -18646,7 +18675,7 @@ class Popover {
|
|
|
18646
18675
|
}
|
|
18647
18676
|
|
|
18648
18677
|
/*
|
|
18649
|
-
* Copyright (c) 2016-
|
|
18678
|
+
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
18650
18679
|
* This software is released under MIT license.
|
|
18651
18680
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
18652
18681
|
*/
|
|
@@ -18661,6 +18690,13 @@ class AbstractPopover {
|
|
|
18661
18690
|
* a separate directive on the host. So let's do dirty but performant for now.
|
|
18662
18691
|
*/
|
|
18663
18692
|
this.closeOnOutsideClick = false;
|
|
18693
|
+
this.closeOnOutsideClickCallback = event => {
|
|
18694
|
+
// The anchor element containing the click event origin means, the click wasn't triggered outside.
|
|
18695
|
+
if (this.anchorElem.contains(event.target)) {
|
|
18696
|
+
return;
|
|
18697
|
+
}
|
|
18698
|
+
this.toggleService.open = false;
|
|
18699
|
+
};
|
|
18664
18700
|
this.el = injector.get(ElementRef);
|
|
18665
18701
|
this.toggleService = injector.get(ClrPopoverToggleService);
|
|
18666
18702
|
this.renderer = injector.get(Renderer2);
|
|
@@ -18684,8 +18720,6 @@ class AbstractPopover {
|
|
|
18684
18720
|
}
|
|
18685
18721
|
anchor() {
|
|
18686
18722
|
this.updateAnchor = true;
|
|
18687
|
-
// Ugh
|
|
18688
|
-
this.ignore = this.toggleService.originalEvent;
|
|
18689
18723
|
}
|
|
18690
18724
|
release() {
|
|
18691
18725
|
this.detachOutsideClickListener();
|
|
@@ -18732,34 +18766,18 @@ class AbstractPopover {
|
|
|
18732
18766
|
}
|
|
18733
18767
|
}
|
|
18734
18768
|
attachOutsideClickListener() {
|
|
18735
|
-
if (this.closeOnOutsideClick) {
|
|
18736
|
-
|
|
18737
|
-
|
|
18738
|
-
this
|
|
18769
|
+
if (this.closeOnOutsideClick && this.toggleService.open) {
|
|
18770
|
+
if (document && document.addEventListener) {
|
|
18771
|
+
// To listen outside click, the listener should catch the event during the capturing phase.
|
|
18772
|
+
// We have to do this ugly document check as Renderer2.listen doesn't allow passive/useCapture listen.
|
|
18773
|
+
document.addEventListener('click', this.closeOnOutsideClickCallback, true);
|
|
18739
18774
|
}
|
|
18740
|
-
this.documentClickListener = this.renderer.listen('document', 'click', event => {
|
|
18741
|
-
if (event === this.ignore) {
|
|
18742
|
-
delete this.ignore;
|
|
18743
|
-
}
|
|
18744
|
-
else {
|
|
18745
|
-
this.toggleService.open = false;
|
|
18746
|
-
}
|
|
18747
|
-
});
|
|
18748
18775
|
}
|
|
18749
18776
|
}
|
|
18750
18777
|
detachOutsideClickListener() {
|
|
18751
18778
|
if (this.closeOnOutsideClick) {
|
|
18752
|
-
if (
|
|
18753
|
-
this.
|
|
18754
|
-
delete this.hostClickListener;
|
|
18755
|
-
}
|
|
18756
|
-
if (this.ignoredElementClickListener) {
|
|
18757
|
-
this.ignoredElementClickListener();
|
|
18758
|
-
delete this.ignoredElementClickListener;
|
|
18759
|
-
}
|
|
18760
|
-
if (this.documentClickListener) {
|
|
18761
|
-
this.documentClickListener();
|
|
18762
|
-
delete this.documentClickListener;
|
|
18779
|
+
if (document && document.removeEventListener) {
|
|
18780
|
+
document.removeEventListener('click', this.closeOnOutsideClickCallback, true);
|
|
18763
18781
|
}
|
|
18764
18782
|
}
|
|
18765
18783
|
}
|
|
@@ -19028,7 +19046,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
19028
19046
|
}], ctorParameters: function () { return [{ type: ClrCommonStringsService }]; } });
|
|
19029
19047
|
|
|
19030
19048
|
/*
|
|
19031
|
-
* Copyright (c) 2016-
|
|
19049
|
+
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
19032
19050
|
* This software is released under MIT license.
|
|
19033
19051
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
19034
19052
|
*/
|
|
@@ -19080,16 +19098,33 @@ class MultiAlertService {
|
|
|
19080
19098
|
});
|
|
19081
19099
|
}
|
|
19082
19100
|
next() {
|
|
19083
|
-
this.
|
|
19101
|
+
this._current = this.current === this.activeAlerts.length - 1 ? 0 : this.current + 1;
|
|
19102
|
+
this._change.next(this._current);
|
|
19084
19103
|
}
|
|
19085
19104
|
previous() {
|
|
19086
19105
|
if (this.activeAlerts.length === 0) {
|
|
19087
19106
|
return;
|
|
19088
19107
|
}
|
|
19089
|
-
this.
|
|
19108
|
+
this._current = this.current === 0 ? this.activeAlerts.length - 1 : this.current - 1;
|
|
19109
|
+
this._change.next(this._current);
|
|
19090
19110
|
}
|
|
19091
|
-
|
|
19092
|
-
this.
|
|
19111
|
+
open() {
|
|
19112
|
+
if (this.activeAlerts.length === 0) {
|
|
19113
|
+
return;
|
|
19114
|
+
}
|
|
19115
|
+
if (!this.currentAlert) {
|
|
19116
|
+
this._current = 0;
|
|
19117
|
+
}
|
|
19118
|
+
this._change.next(this._current);
|
|
19119
|
+
}
|
|
19120
|
+
close(isCurrentAlert) {
|
|
19121
|
+
if (this.activeAlerts.length === 0) {
|
|
19122
|
+
return;
|
|
19123
|
+
}
|
|
19124
|
+
if (isCurrentAlert) {
|
|
19125
|
+
this._current = Math.max(0, this.current - 1);
|
|
19126
|
+
}
|
|
19127
|
+
this._change.next(this._current);
|
|
19093
19128
|
}
|
|
19094
19129
|
destroy() {
|
|
19095
19130
|
if (this.subscription) {
|
|
@@ -19104,7 +19139,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
19104
19139
|
}] });
|
|
19105
19140
|
|
|
19106
19141
|
/*
|
|
19107
|
-
* Copyright (c) 2016-
|
|
19142
|
+
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
19108
19143
|
* This software is released under MIT license.
|
|
19109
19144
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
19110
19145
|
*/
|
|
@@ -19133,6 +19168,14 @@ class ClrAlert {
|
|
|
19133
19168
|
ngOnDestroy() {
|
|
19134
19169
|
this.subscriptions.forEach(sub => sub.unsubscribe());
|
|
19135
19170
|
}
|
|
19171
|
+
set closed(value) {
|
|
19172
|
+
if (value && !this._closed) {
|
|
19173
|
+
this.close();
|
|
19174
|
+
}
|
|
19175
|
+
else if (!value && this._closed) {
|
|
19176
|
+
this.open();
|
|
19177
|
+
}
|
|
19178
|
+
}
|
|
19136
19179
|
set alertType(val) {
|
|
19137
19180
|
this.iconService.alertType = val;
|
|
19138
19181
|
}
|
|
@@ -19155,22 +19198,27 @@ class ClrAlert {
|
|
|
19155
19198
|
return this._hidden;
|
|
19156
19199
|
}
|
|
19157
19200
|
close() {
|
|
19201
|
+
var _a;
|
|
19158
19202
|
if (!this.closable) {
|
|
19159
19203
|
return;
|
|
19160
19204
|
}
|
|
19205
|
+
const isCurrentAlert = ((_a = this.multiAlertService) === null || _a === void 0 ? void 0 : _a.currentAlert) === this;
|
|
19161
19206
|
this._closed = true;
|
|
19162
19207
|
if (this.multiAlertService) {
|
|
19163
|
-
this.multiAlertService.close();
|
|
19208
|
+
this.multiAlertService.close(isCurrentAlert);
|
|
19164
19209
|
}
|
|
19165
19210
|
this._closedChanged.emit(true);
|
|
19166
19211
|
}
|
|
19167
19212
|
open() {
|
|
19168
19213
|
this._closed = false;
|
|
19214
|
+
if (this.multiAlertService) {
|
|
19215
|
+
this.multiAlertService.open();
|
|
19216
|
+
}
|
|
19169
19217
|
this._closedChanged.emit(false);
|
|
19170
19218
|
}
|
|
19171
19219
|
}
|
|
19172
19220
|
ClrAlert.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrAlert, deps: [{ token: AlertIconAndTypesService }, { token: i0.ChangeDetectorRef }, { token: MultiAlertService, optional: true }, { token: ClrCommonStringsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
19173
|
-
ClrAlert.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: ClrAlert, selector: "clr-alert", inputs: { isSmall: ["clrAlertSizeSmall", "isSmall"], closable: ["clrAlertClosable", "closable"], isAppLevel: ["clrAlertAppLevel", "isAppLevel"], clrCloseButtonAriaLabel: "clrCloseButtonAriaLabel",
|
|
19221
|
+
ClrAlert.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: ClrAlert, selector: "clr-alert", inputs: { isSmall: ["clrAlertSizeSmall", "isSmall"], closable: ["clrAlertClosable", "closable"], isAppLevel: ["clrAlertAppLevel", "isAppLevel"], clrCloseButtonAriaLabel: "clrCloseButtonAriaLabel", closed: ["clrAlertClosed", "closed"], alertType: ["clrAlertType", "alertType"], alertIconShape: ["clrAlertIcon", "alertIconShape"] }, outputs: { _closedChanged: "clrAlertClosedChange" }, providers: [AlertIconAndTypesService], ngImport: i0, template: "<!--\n ~ Copyright (c) 2016-2021 VMware, Inc. 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\n *ngIf=\"!_closed\"\n class=\"alert\"\n [ngClass]=\"alertClass\"\n [class.alert-hidden]=\"hidden\"\n [class.alert-sm]=\"isSmall\"\n [class.alert-app-level]=\"isAppLevel\"\n>\n <div class=\"alert-items\">\n <ng-content></ng-content>\n </div>\n <button type=\"button\" class=\"close\" *ngIf=\"closable\" (click)=\"close()\" [attr.aria-label]=\"clrCloseButtonAriaLabel\">\n <cds-icon shape=\"window-close\"></cds-icon>\n </button>\n</div>\n", styles: [":host{display:block}\n"], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
19174
19222
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrAlert, decorators: [{
|
|
19175
19223
|
type: Component,
|
|
19176
19224
|
args: [{ selector: 'clr-alert', providers: [AlertIconAndTypesService], styles: [':host { display: block; }'], template: "<!--\n ~ Copyright (c) 2016-2021 VMware, Inc. 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\n *ngIf=\"!_closed\"\n class=\"alert\"\n [ngClass]=\"alertClass\"\n [class.alert-hidden]=\"hidden\"\n [class.alert-sm]=\"isSmall\"\n [class.alert-app-level]=\"isAppLevel\"\n>\n <div class=\"alert-items\">\n <ng-content></ng-content>\n </div>\n <button type=\"button\" class=\"close\" *ngIf=\"closable\" (click)=\"close()\" [attr.aria-label]=\"clrCloseButtonAriaLabel\">\n <cds-icon shape=\"window-close\"></cds-icon>\n </button>\n</div>\n" }]
|
|
@@ -19189,7 +19237,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
19189
19237
|
args: ['clrAlertAppLevel']
|
|
19190
19238
|
}], clrCloseButtonAriaLabel: [{
|
|
19191
19239
|
type: Input
|
|
19192
|
-
}],
|
|
19240
|
+
}], closed: [{
|
|
19193
19241
|
type: Input,
|
|
19194
19242
|
args: ['clrAlertClosed']
|
|
19195
19243
|
}], _closedChanged: [{
|
|
@@ -19204,7 +19252,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
19204
19252
|
}] } });
|
|
19205
19253
|
|
|
19206
19254
|
/*
|
|
19207
|
-
* Copyright (c) 2016-
|
|
19255
|
+
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
19208
19256
|
* This software is released under MIT license.
|
|
19209
19257
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
19210
19258
|
*/
|
|
@@ -19218,8 +19266,9 @@ ClrAlertItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
|
|
|
19218
19266
|
<div class="alert-icon-wrapper">
|
|
19219
19267
|
<cds-icon
|
|
19220
19268
|
class="alert-icon"
|
|
19269
|
+
role="img"
|
|
19221
19270
|
[attr.shape]="iconService.alertIconShape"
|
|
19222
|
-
[attr.
|
|
19271
|
+
[attr.aria-label]="iconService.alertIconTitle"
|
|
19223
19272
|
></cds-icon>
|
|
19224
19273
|
</div>
|
|
19225
19274
|
<ng-content></ng-content>
|
|
@@ -19232,8 +19281,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
19232
19281
|
<div class="alert-icon-wrapper">
|
|
19233
19282
|
<cds-icon
|
|
19234
19283
|
class="alert-icon"
|
|
19284
|
+
role="img"
|
|
19235
19285
|
[attr.shape]="iconService.alertIconShape"
|
|
19236
|
-
[attr.
|
|
19286
|
+
[attr.aria-label]="iconService.alertIconTitle"
|
|
19237
19287
|
></cds-icon>
|
|
19238
19288
|
</div>
|
|
19239
19289
|
<ng-content></ng-content>
|
|
@@ -19375,7 +19425,7 @@ class ClrAlerts {
|
|
|
19375
19425
|
}
|
|
19376
19426
|
}
|
|
19377
19427
|
ClrAlerts.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrAlerts, deps: [{ token: MultiAlertService }], target: i0.ɵɵFactoryTarget.Component });
|
|
19378
|
-
ClrAlerts.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: ClrAlerts, selector: "clr-alerts", inputs: { _inputCurrentIndex: ["clrCurrentAlertIndex", "_inputCurrentIndex"], currentAlert: ["clrCurrentAlert", "currentAlert"] }, outputs: { currentAlertIndexChange: "clrCurrentAlertIndexChange", currentAlertChange: "clrCurrentAlertChange" }, host: { properties: { "class.alerts": "true", "class.alert-danger": "this.currentAlertType == 'danger'", "class.alert-info": "this.currentAlertType == 'info'", "class.alert-success": "this.currentAlertType == 'success'", "class.alert-warning": "this.currentAlertType == 'warning'" } }, providers: [MultiAlertService], queries: [{ propertyName: "allAlerts", predicate: ClrAlert }], ngImport: i0, template: "<!--\n ~ Copyright (c) 2016-2021 VMware, Inc. 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<clr-alerts-pager *ngIf=\"multiAlertService.count > 1\" [clrCurrentAlertIndex]=\"currentAlertIndex\"> </clr-alerts-pager>\n<ng-content select=\"clr-alert\"></ng-content>\n", styles: [":host{display:block}\n"], components: [{ type: ClrAlertsPager, selector: "clr-alerts-pager", inputs: ["clrCurrentAlert", "clrCurrentAlertIndex"], outputs: ["clrCurrentAlertChange", "clrCurrentAlertIndexChange"] }], directives: [{ type:
|
|
19428
|
+
ClrAlerts.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: ClrAlerts, selector: "clr-alerts", inputs: { _inputCurrentIndex: ["clrCurrentAlertIndex", "_inputCurrentIndex"], currentAlert: ["clrCurrentAlert", "currentAlert"] }, outputs: { currentAlertIndexChange: "clrCurrentAlertIndexChange", currentAlertChange: "clrCurrentAlertChange" }, host: { properties: { "class.alerts": "true", "class.alert-danger": "this.currentAlertType == 'danger'", "class.alert-info": "this.currentAlertType == 'info'", "class.alert-success": "this.currentAlertType == 'success'", "class.alert-warning": "this.currentAlertType == 'warning'" } }, providers: [MultiAlertService], queries: [{ propertyName: "allAlerts", predicate: ClrAlert }], ngImport: i0, template: "<!--\n ~ Copyright (c) 2016-2021 VMware, Inc. 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<clr-alerts-pager *ngIf=\"multiAlertService.count > 1\" [clrCurrentAlertIndex]=\"currentAlertIndex\"> </clr-alerts-pager>\n<ng-content select=\"clr-alert\"></ng-content>\n", styles: [":host{display:block}\n"], components: [{ type: ClrAlertsPager, selector: "clr-alerts-pager", inputs: ["clrCurrentAlert", "clrCurrentAlertIndex"], outputs: ["clrCurrentAlertChange", "clrCurrentAlertIndexChange"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
19379
19429
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrAlerts, decorators: [{
|
|
19380
19430
|
type: Component,
|
|
19381
19431
|
args: [{ selector: 'clr-alerts', providers: [MultiAlertService], host: {
|
|
@@ -19672,7 +19722,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
19672
19722
|
} });
|
|
19673
19723
|
|
|
19674
19724
|
/*
|
|
19675
|
-
* Copyright (c) 2016-
|
|
19725
|
+
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
19676
19726
|
* This software is released under MIT license.
|
|
19677
19727
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
19678
19728
|
*/
|
|
@@ -19690,6 +19740,24 @@ class ClrHeader {
|
|
|
19690
19740
|
},
|
|
19691
19741
|
});
|
|
19692
19742
|
}
|
|
19743
|
+
get responsiveNavCommonString() {
|
|
19744
|
+
const myCommonStrings = this.commonStrings.keys;
|
|
19745
|
+
if (this.openNavLevel !== this.responsiveNavCodes.NAV_LEVEL_1) {
|
|
19746
|
+
return myCommonStrings.responsiveNavToggleOpen;
|
|
19747
|
+
}
|
|
19748
|
+
else {
|
|
19749
|
+
return myCommonStrings.responsiveNavToggleClose;
|
|
19750
|
+
}
|
|
19751
|
+
}
|
|
19752
|
+
get responsiveOverflowCommonString() {
|
|
19753
|
+
const myCommonStrings = this.commonStrings.keys;
|
|
19754
|
+
if (this.openNavLevel !== this.responsiveNavCodes.NAV_LEVEL_2) {
|
|
19755
|
+
return myCommonStrings.responsiveNavOverflowOpen;
|
|
19756
|
+
}
|
|
19757
|
+
else {
|
|
19758
|
+
return myCommonStrings.responsiveNavOverflowClose;
|
|
19759
|
+
}
|
|
19760
|
+
}
|
|
19693
19761
|
// reset triggers. handles cases when an application has different nav levels on different pages.
|
|
19694
19762
|
resetNavTriggers() {
|
|
19695
19763
|
this.isNavLevel1OnPage = false;
|
|
@@ -19730,9 +19798,7 @@ ClrHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13
|
|
|
19730
19798
|
type="button"
|
|
19731
19799
|
*ngIf="isNavLevel1OnPage"
|
|
19732
19800
|
class="header-hamburger-trigger"
|
|
19733
|
-
[attr.aria-label]="
|
|
19734
|
-
openNavLevel !== responsiveNavCodes.NAV_LEVEL_1 ? commonStrings.keys.open : commonStrings.keys.close
|
|
19735
|
-
"
|
|
19801
|
+
[attr.aria-label]="responsiveNavCommonString"
|
|
19736
19802
|
(click)="toggleNav(responsiveNavCodes.NAV_LEVEL_1)"
|
|
19737
19803
|
>
|
|
19738
19804
|
<span></span>
|
|
@@ -19742,15 +19808,13 @@ ClrHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13
|
|
|
19742
19808
|
type="button"
|
|
19743
19809
|
*ngIf="isNavLevel2OnPage"
|
|
19744
19810
|
class="header-overflow-trigger"
|
|
19745
|
-
[attr.aria-label]="
|
|
19746
|
-
openNavLevel !== responsiveNavCodes.NAV_LEVEL_2 ? commonStrings.keys.open : commonStrings.keys.close
|
|
19747
|
-
"
|
|
19811
|
+
[attr.aria-label]="responsiveOverflowCommonString"
|
|
19748
19812
|
(click)="toggleNav(responsiveNavCodes.NAV_LEVEL_2)"
|
|
19749
19813
|
>
|
|
19750
19814
|
<span></span>
|
|
19751
19815
|
</button>
|
|
19752
19816
|
<div class="header-backdrop" (click)="closeOpenNav()"></div>
|
|
19753
|
-
`, isInline: true, directives: [{ type:
|
|
19817
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
19754
19818
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrHeader, decorators: [{
|
|
19755
19819
|
type: Component,
|
|
19756
19820
|
args: [{
|
|
@@ -19760,9 +19824,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
19760
19824
|
type="button"
|
|
19761
19825
|
*ngIf="isNavLevel1OnPage"
|
|
19762
19826
|
class="header-hamburger-trigger"
|
|
19763
|
-
[attr.aria-label]="
|
|
19764
|
-
openNavLevel !== responsiveNavCodes.NAV_LEVEL_1 ? commonStrings.keys.open : commonStrings.keys.close
|
|
19765
|
-
"
|
|
19827
|
+
[attr.aria-label]="responsiveNavCommonString"
|
|
19766
19828
|
(click)="toggleNav(responsiveNavCodes.NAV_LEVEL_1)"
|
|
19767
19829
|
>
|
|
19768
19830
|
<span></span>
|
|
@@ -19772,9 +19834,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
19772
19834
|
type="button"
|
|
19773
19835
|
*ngIf="isNavLevel2OnPage"
|
|
19774
19836
|
class="header-overflow-trigger"
|
|
19775
|
-
[attr.aria-label]="
|
|
19776
|
-
openNavLevel !== responsiveNavCodes.NAV_LEVEL_2 ? commonStrings.keys.open : commonStrings.keys.close
|
|
19777
|
-
"
|
|
19837
|
+
[attr.aria-label]="responsiveOverflowCommonString"
|
|
19778
19838
|
(click)="toggleNav(responsiveNavCodes.NAV_LEVEL_2)"
|
|
19779
19839
|
>
|
|
19780
19840
|
<span></span>
|
|
@@ -20519,7 +20579,7 @@ ClrTabs.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0
|
|
|
20519
20579
|
</ng-container>
|
|
20520
20580
|
</ul>
|
|
20521
20581
|
<ng-container #tabContentViewContainer></ng-container>
|
|
20522
|
-
`, isInline: true, components: [{ type: ClrKeyFocus, selector: "[clrKeyFocus]", inputs: ["clrDirection", "clrFocusOnLoad", "clrKeyFocus"], outputs: ["clrFocusChange"] }, { type: ClrTabOverflowContent, selector: "clr-tab-overflow-content" }], directives: [{ type:
|
|
20582
|
+
`, isInline: true, components: [{ type: ClrKeyFocus, selector: "[clrKeyFocus]", inputs: ["clrDirection", "clrFocusOnLoad", "clrKeyFocus"], outputs: ["clrFocusChange"] }, { type: ClrTabOverflowContent, selector: "clr-tab-overflow-content" }], directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
20523
20583
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrTabs, decorators: [{
|
|
20524
20584
|
type: Component,
|
|
20525
20585
|
args: [{
|
|
@@ -20801,7 +20861,7 @@ class ClrVerticalNav {
|
|
|
20801
20861
|
}
|
|
20802
20862
|
}
|
|
20803
20863
|
ClrVerticalNav.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrVerticalNav, deps: [{ token: VerticalNavService }, { token: VerticalNavIconService }, { token: VerticalNavGroupRegistrationService }, { token: ClrCommonStringsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
20804
|
-
ClrVerticalNav.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: ClrVerticalNav, selector: "clr-vertical-nav", inputs: { collapsible: ["clrVerticalNavCollapsible", "collapsible"], collapsed: ["clrVerticalNavCollapsed", "collapsed"] }, outputs: { _collapsedChanged: "clrVerticalNavCollapsedChange" }, host: { properties: { "class.is-collapsed": "collapsed", "class.has-nav-groups": "hasNavGroups", "class.has-icons": "hasIcons" }, classAttribute: "clr-vertical-nav" }, providers: [VerticalNavService, VerticalNavIconService, VerticalNavGroupRegistrationService], ngImport: i0, template: "<!--\n ~ Copyright (c) 2016-2021 VMware, Inc. 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<button\n type=\"button\"\n class=\"nav-trigger\"\n [class.on-collapse]=\"collapsed\"\n [attr.aria-expanded]=\"ariaExpanded\"\n [attr.aria-label]=\"commonStrings.keys.verticalNavToggle\"\n (click)=\"toggleByButton()\"\n *ngIf=\"collapsible\"\n>\n <cds-icon\n shape=\"angle-double\"\n class=\"nav-trigger-icon\"\n [attr.direction]=\"(this.collapsed) ? 'right' : 'left'\"\n [attr.title]=\"(this.collapsed) ? commonStrings.keys.expand : commonStrings.keys.collapse\"\n ></cds-icon>\n</button>\n<!-- Click handler on .nav-content is bad but required :-( -->\n<div class=\"nav-content\">\n <ng-content></ng-content>\n <button\n (click)=\"collapsed = false\"\n class=\"nav-btn\"\n aria-hidden=\"true\"\n tabindex=\"-1\"\n [attr.aria-label]=\"commonStrings.keys.verticalNavToggle\"\n *ngIf=\"collapsible && collapsed\"\n ></button>\n</div>\n", directives: [{ type:
|
|
20864
|
+
ClrVerticalNav.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: ClrVerticalNav, selector: "clr-vertical-nav", inputs: { collapsible: ["clrVerticalNavCollapsible", "collapsible"], collapsed: ["clrVerticalNavCollapsed", "collapsed"] }, outputs: { _collapsedChanged: "clrVerticalNavCollapsedChange" }, host: { properties: { "class.is-collapsed": "collapsed", "class.has-nav-groups": "hasNavGroups", "class.has-icons": "hasIcons" }, classAttribute: "clr-vertical-nav" }, providers: [VerticalNavService, VerticalNavIconService, VerticalNavGroupRegistrationService], ngImport: i0, template: "<!--\n ~ Copyright (c) 2016-2021 VMware, Inc. 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<button\n type=\"button\"\n class=\"nav-trigger\"\n [class.on-collapse]=\"collapsed\"\n [attr.aria-expanded]=\"ariaExpanded\"\n [attr.aria-label]=\"commonStrings.keys.verticalNavToggle\"\n (click)=\"toggleByButton()\"\n *ngIf=\"collapsible\"\n>\n <cds-icon\n shape=\"angle-double\"\n class=\"nav-trigger-icon\"\n [attr.direction]=\"(this.collapsed) ? 'right' : 'left'\"\n [attr.title]=\"(this.collapsed) ? commonStrings.keys.expand : commonStrings.keys.collapse\"\n ></cds-icon>\n</button>\n<!-- Click handler on .nav-content is bad but required :-( -->\n<div class=\"nav-content\">\n <ng-content></ng-content>\n <button\n (click)=\"collapsed = false\"\n class=\"nav-btn\"\n aria-hidden=\"true\"\n tabindex=\"-1\"\n [attr.aria-label]=\"commonStrings.keys.verticalNavToggle\"\n *ngIf=\"collapsible && collapsed\"\n ></button>\n</div>\n", directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
20805
20865
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrVerticalNav, decorators: [{
|
|
20806
20866
|
type: Component,
|
|
20807
20867
|
args: [{ selector: 'clr-vertical-nav', providers: [VerticalNavService, VerticalNavIconService, VerticalNavGroupRegistrationService], host: {
|
|
@@ -20844,7 +20904,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
20844
20904
|
}] });
|
|
20845
20905
|
|
|
20846
20906
|
/*
|
|
20847
|
-
* Copyright (c) 2016-
|
|
20907
|
+
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
20848
20908
|
* This software is released under MIT license.
|
|
20849
20909
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
20850
20910
|
*/
|
|
@@ -20858,6 +20918,7 @@ class ClrVerticalNavGroup {
|
|
|
20858
20918
|
this._navService = _navService;
|
|
20859
20919
|
this.commonStrings = commonStrings;
|
|
20860
20920
|
this.wasExpanded = false;
|
|
20921
|
+
this.groupLabel = this.commonStrings.keys.verticalNavGroupToggle;
|
|
20861
20922
|
this.expandedChange = new EventEmitter(true);
|
|
20862
20923
|
this._subscriptions = [];
|
|
20863
20924
|
this._expandAnimationState = COLLAPSED_STATE;
|
|
@@ -20967,7 +21028,7 @@ class ClrVerticalNavGroup {
|
|
|
20967
21028
|
}
|
|
20968
21029
|
}
|
|
20969
21030
|
ClrVerticalNavGroup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrVerticalNavGroup, deps: [{ token: IfExpandService }, { token: VerticalNavGroupRegistrationService }, { token: VerticalNavGroupService }, { token: VerticalNavService }, { token: ClrCommonStringsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
20970
|
-
ClrVerticalNavGroup.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: ClrVerticalNavGroup, selector: "clr-vertical-nav-group", inputs: { userExpandedInput: ["clrVerticalNavGroupExpanded", "userExpandedInput"] }, outputs: { expandedChange: "clrVerticalNavGroupExpandedChange" }, host: { properties: { "class.is-expanded": "this.expanded" }, classAttribute: "nav-group" }, providers: [IfExpandService, VerticalNavGroupService], ngImport: i0, template: "<!--\n ~ Copyright (c) 2016-
|
|
21031
|
+
ClrVerticalNavGroup.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: ClrVerticalNavGroup, selector: "clr-vertical-nav-group", inputs: { groupLabel: ["clrVerticalNavGroupLabel", "groupLabel"], userExpandedInput: ["clrVerticalNavGroupExpanded", "userExpandedInput"] }, outputs: { expandedChange: "clrVerticalNavGroupExpandedChange" }, host: { properties: { "class.is-expanded": "this.expanded" }, classAttribute: "nav-group" }, providers: [IfExpandService, VerticalNavGroupService], ngImport: i0, template: "<!--\n ~ Copyright (c) 2016-2022 VMware, Inc. 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=\"nav-group-content\">\n <ng-content select=\"[clrVerticalNavLink]\"></ng-content>\n <button\n class=\"nav-group-trigger\"\n type=\"button\"\n [attr.aria-expanded]=\"expanded\"\n [attr.aria-label]=\"groupLabel\"\n (click)=\"toggleExpand()\"\n >\n <ng-content select=\"[clrVerticalNavIcon]\"></ng-content>\n <div class=\"nav-group-text\">\n <ng-content></ng-content>\n </div>\n <cds-icon\n shape=\"angle\"\n class=\"nav-group-trigger-icon\"\n [attr.direction]=\"(this.expanded) ? 'down' : 'right'\"\n [attr.title]=\"(this.expanded) ? commonStrings.keys.collapse : commonStrings.keys.expand\"\n >\n </cds-icon>\n </button>\n</div>\n<!--TODO: This animation needs to be added to the clr-vertical-nav-group-children component-->\n<div class=\"nav-group-children\" [@clrExpand]=\"expandAnimationState\" (@clrExpand.done)=\"expandAnimationDone($event)\">\n <ng-content select=\"[clrIfExpanded], clr-vertical-nav-group-children\"></ng-content>\n</div>\n", directives: [{ type: CdsIconCustomTag, selector: "cds-icon" }], animations: [
|
|
20971
21032
|
trigger('clrExpand', [
|
|
20972
21033
|
state(EXPANDED_STATE, style({ height: '*' })),
|
|
20973
21034
|
state(COLLAPSED_STATE, style({ height: 0, 'overflow-y': 'hidden', visibility: 'hidden' })),
|
|
@@ -20982,10 +21043,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
20982
21043
|
state(COLLAPSED_STATE, style({ height: 0, 'overflow-y': 'hidden', visibility: 'hidden' })),
|
|
20983
21044
|
transition(`${EXPANDED_STATE} <=> ${COLLAPSED_STATE}`, animate('0.2s ease-in-out')),
|
|
20984
21045
|
]),
|
|
20985
|
-
], host: { class: 'nav-group' }, template: "<!--\n ~ Copyright (c) 2016-
|
|
21046
|
+
], host: { class: 'nav-group' }, template: "<!--\n ~ Copyright (c) 2016-2022 VMware, Inc. 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=\"nav-group-content\">\n <ng-content select=\"[clrVerticalNavLink]\"></ng-content>\n <button\n class=\"nav-group-trigger\"\n type=\"button\"\n [attr.aria-expanded]=\"expanded\"\n [attr.aria-label]=\"groupLabel\"\n (click)=\"toggleExpand()\"\n >\n <ng-content select=\"[clrVerticalNavIcon]\"></ng-content>\n <div class=\"nav-group-text\">\n <ng-content></ng-content>\n </div>\n <cds-icon\n shape=\"angle\"\n class=\"nav-group-trigger-icon\"\n [attr.direction]=\"(this.expanded) ? 'down' : 'right'\"\n [attr.title]=\"(this.expanded) ? commonStrings.keys.collapse : commonStrings.keys.expand\"\n >\n </cds-icon>\n </button>\n</div>\n<!--TODO: This animation needs to be added to the clr-vertical-nav-group-children component-->\n<div class=\"nav-group-children\" [@clrExpand]=\"expandAnimationState\" (@clrExpand.done)=\"expandAnimationDone($event)\">\n <ng-content select=\"[clrIfExpanded], clr-vertical-nav-group-children\"></ng-content>\n</div>\n" }]
|
|
20986
21047
|
}], ctorParameters: function () { return [{ type: IfExpandService }, { type: VerticalNavGroupRegistrationService }, { type: VerticalNavGroupService }, { type: VerticalNavService }, { type: ClrCommonStringsService }]; }, propDecorators: { expanded: [{
|
|
20987
21048
|
type: HostBinding,
|
|
20988
21049
|
args: ['class.is-expanded']
|
|
21050
|
+
}], groupLabel: [{
|
|
21051
|
+
type: Input,
|
|
21052
|
+
args: ['clrVerticalNavGroupLabel']
|
|
20989
21053
|
}], userExpandedInput: [{
|
|
20990
21054
|
type: Input,
|
|
20991
21055
|
args: ['clrVerticalNavGroupExpanded']
|
|
@@ -21217,7 +21281,7 @@ class ClrModal {
|
|
|
21217
21281
|
}
|
|
21218
21282
|
}
|
|
21219
21283
|
ClrModal.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrModal, deps: [{ token: ScrollingService }, { token: ClrCommonStringsService }, { token: UNIQUE_ID }], target: i0.ɵɵFactoryTarget.Component });
|
|
21220
|
-
ClrModal.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: ClrModal, selector: "clr-modal", inputs: { _open: ["clrModalOpen", "_open"], closable: ["clrModalClosable", "closable"], size: ["clrModalSize", "size"], staticBackdrop: ["clrModalStaticBackdrop", "staticBackdrop"], skipAnimation: ["clrModalSkipAnimation", "skipAnimation"], bypassScrollService: ["clrModalOverrideScrollService", "bypassScrollService"], stopClose: ["clrModalPreventClose", "stopClose"] }, outputs: { _openChanged: "clrModalOpenChange", altClose: "clrModalAlternateClose" }, host: { listeners: { "body:keyup.escape": "close()" }, properties: { "class.open": "this._open" } }, providers: [UNIQUE_ID_PROVIDER], viewQueries: [{ propertyName: "focusTrap", first: true, predicate: FocusTrapDirective, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<!--\n ~ Copyright (c) 2016-
|
|
21284
|
+
ClrModal.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: ClrModal, selector: "clr-modal", inputs: { _open: ["clrModalOpen", "_open"], closable: ["clrModalClosable", "closable"], size: ["clrModalSize", "size"], staticBackdrop: ["clrModalStaticBackdrop", "staticBackdrop"], skipAnimation: ["clrModalSkipAnimation", "skipAnimation"], bypassScrollService: ["clrModalOverrideScrollService", "bypassScrollService"], stopClose: ["clrModalPreventClose", "stopClose"] }, outputs: { _openChanged: "clrModalOpenChange", altClose: "clrModalAlternateClose" }, host: { listeners: { "body:keyup.escape": "close()" }, properties: { "class.open": "this._open" } }, providers: [UNIQUE_ID_PROVIDER], viewQueries: [{ propertyName: "focusTrap", first: true, predicate: FocusTrapDirective, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<!--\n ~ Copyright (c) 2016-2022 VMware, Inc. 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 clrFocusTrap class=\"modal\" *ngIf=\"_open\">\n <!--fixme: revisit when ngClass works with exit animation-->\n <div\n [@fadeDown]=\"skipAnimation\"\n (@fadeDown.done)=\"fadeDone($event)\"\n class=\"modal-dialog\"\n [class.modal-sm]=\"size == 'sm'\"\n [class.modal-lg]=\"size == 'lg'\"\n [class.modal-xl]=\"size == 'xl'\"\n role=\"dialog\"\n aria-modal=\"true\"\n [attr.aria-hidden]=\"!_open\"\n [attr.aria-labelledby]=\"modalId\"\n >\n <div class=\"clr-sr-only\">{{commonStrings.keys.modalContentStart}}</div>\n <div class=\"modal-content-wrapper\">\n <!-- only used in wizards -->\n <ng-content select=\".modal-nav\"></ng-content>\n\n <div class=\"modal-content\">\n <div class=\"modal-header--accessible\">\n <div class=\"modal-title-wrapper\" id=\"{{modalId}}\" clrFocusOnViewInit>\n <ng-content select=\".modal-title\"></ng-content>\n </div>\n <button\n type=\"button\"\n [attr.aria-label]=\"commonStrings.keys.close\"\n class=\"close\"\n *ngIf=\"closable\"\n (click)=\"close()\"\n >\n <cds-icon shape=\"window-close\"></cds-icon>\n </button>\n </div>\n <div class=\"modal-body-wrapper\">\n <ng-content select=\".modal-body\"></ng-content>\n </div>\n <ng-content select=\".modal-footer\"></ng-content>\n </div>\n </div>\n <div class=\"clr-sr-only\">{{commonStrings.keys.modalContentEnd}}</div>\n </div>\n\n <div [@fade] class=\"modal-backdrop\" aria-hidden=\"true\" (click)=\"staticBackdrop || close()\"></div>\n</div>\n", styles: [":host{display:none}:host.open{display:inline}\n"], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: FocusTrapDirective, selector: "[clrFocusTrap]", inputs: ["clrFocusTrap"] }, { type: ClrFocusOnViewInit, selector: "[clrFocusOnViewInit]", inputs: ["clrFocusOnViewInit"] }, { type: CdsIconCustomTag, selector: "cds-icon" }], viewProviders: [ScrollingService], animations: [
|
|
21221
21285
|
trigger('fadeDown', [
|
|
21222
21286
|
transition('* => false', [style({ opacity: 0, transform: 'translate(0, -25%)' }), animate('0.2s ease-in-out')]),
|
|
21223
21287
|
transition('false => *', [animate('0.2s ease-in-out', style({ opacity: 0, transform: 'translate(0, -25%)' }))]),
|
|
@@ -21247,7 +21311,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
21247
21311
|
transition('void => *', [style({ opacity: 0 }), animate('0.2s ease-in-out', style({ opacity: 0.85 }))]),
|
|
21248
21312
|
transition('* => void', [animate('0.2s ease-in-out', style({ opacity: 0 }))]),
|
|
21249
21313
|
]),
|
|
21250
|
-
], providers: [UNIQUE_ID_PROVIDER], template: "<!--\n ~ Copyright (c) 2016-
|
|
21314
|
+
], providers: [UNIQUE_ID_PROVIDER], template: "<!--\n ~ Copyright (c) 2016-2022 VMware, Inc. 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 clrFocusTrap class=\"modal\" *ngIf=\"_open\">\n <!--fixme: revisit when ngClass works with exit animation-->\n <div\n [@fadeDown]=\"skipAnimation\"\n (@fadeDown.done)=\"fadeDone($event)\"\n class=\"modal-dialog\"\n [class.modal-sm]=\"size == 'sm'\"\n [class.modal-lg]=\"size == 'lg'\"\n [class.modal-xl]=\"size == 'xl'\"\n role=\"dialog\"\n aria-modal=\"true\"\n [attr.aria-hidden]=\"!_open\"\n [attr.aria-labelledby]=\"modalId\"\n >\n <div class=\"clr-sr-only\">{{commonStrings.keys.modalContentStart}}</div>\n <div class=\"modal-content-wrapper\">\n <!-- only used in wizards -->\n <ng-content select=\".modal-nav\"></ng-content>\n\n <div class=\"modal-content\">\n <div class=\"modal-header--accessible\">\n <div class=\"modal-title-wrapper\" id=\"{{modalId}}\" clrFocusOnViewInit>\n <ng-content select=\".modal-title\"></ng-content>\n </div>\n <button\n type=\"button\"\n [attr.aria-label]=\"commonStrings.keys.close\"\n class=\"close\"\n *ngIf=\"closable\"\n (click)=\"close()\"\n >\n <cds-icon shape=\"window-close\"></cds-icon>\n </button>\n </div>\n <div class=\"modal-body-wrapper\">\n <ng-content select=\".modal-body\"></ng-content>\n </div>\n <ng-content select=\".modal-footer\"></ng-content>\n </div>\n </div>\n <div class=\"clr-sr-only\">{{commonStrings.keys.modalContentEnd}}</div>\n </div>\n\n <div [@fade] class=\"modal-backdrop\" aria-hidden=\"true\" (click)=\"staticBackdrop || close()\"></div>\n</div>\n" }]
|
|
21251
21315
|
}], ctorParameters: function () {
|
|
21252
21316
|
return [{ type: ScrollingService }, { type: ClrCommonStringsService }, { type: undefined, decorators: [{
|
|
21253
21317
|
type: Inject,
|
|
@@ -21292,7 +21356,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
21292
21356
|
}] } });
|
|
21293
21357
|
|
|
21294
21358
|
/*
|
|
21295
|
-
* Copyright (c) 2016-
|
|
21359
|
+
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
21296
21360
|
* This software is released under MIT license.
|
|
21297
21361
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
21298
21362
|
*/
|
|
@@ -21303,18 +21367,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
21303
21367
|
* the overflow scroll being focused.
|
|
21304
21368
|
*/
|
|
21305
21369
|
class ClrModalBody {
|
|
21306
|
-
constructor(
|
|
21370
|
+
constructor(renderer, host, ngZone) {
|
|
21371
|
+
this.renderer = renderer;
|
|
21372
|
+
this.host = host;
|
|
21307
21373
|
this.tabindex = '0';
|
|
21308
21374
|
this.unlisteners = [];
|
|
21309
|
-
renderer.setAttribute(host.nativeElement, 'tabindex', this.tabindex);
|
|
21310
21375
|
ngZone.runOutsideAngular(() => {
|
|
21311
|
-
this.
|
|
21376
|
+
new ResizeObserver(() => this.addOrRemoveTabIndex()).observe(this.host.nativeElement);
|
|
21377
|
+
this.unlisteners.push(this.renderer.listen(this.host.nativeElement, 'mouseup', () => {
|
|
21312
21378
|
// set the tabindex binding back when click is completed with mouseup
|
|
21313
|
-
|
|
21314
|
-
}), renderer.listen(host.nativeElement, 'mousedown', () => {
|
|
21379
|
+
this.addOrRemoveTabIndex();
|
|
21380
|
+
}), this.renderer.listen(this.host.nativeElement, 'mousedown', () => {
|
|
21315
21381
|
// tabindex = 0 binding should be removed
|
|
21316
21382
|
// so it won't be focused when click starts with mousedown
|
|
21317
|
-
|
|
21383
|
+
this.removeTabIndex();
|
|
21318
21384
|
}));
|
|
21319
21385
|
});
|
|
21320
21386
|
}
|
|
@@ -21323,13 +21389,28 @@ class ClrModalBody {
|
|
|
21323
21389
|
this.unlisteners.pop()();
|
|
21324
21390
|
}
|
|
21325
21391
|
}
|
|
21392
|
+
addTabIndex() {
|
|
21393
|
+
this.renderer.setAttribute(this.host.nativeElement, 'tabindex', this.tabindex);
|
|
21394
|
+
}
|
|
21395
|
+
removeTabIndex() {
|
|
21396
|
+
this.renderer.removeAttribute(this.host.nativeElement, 'tabindex');
|
|
21397
|
+
}
|
|
21398
|
+
addOrRemoveTabIndex() {
|
|
21399
|
+
const modalBody = this.host.nativeElement.parentElement;
|
|
21400
|
+
if (modalBody.clientHeight < modalBody.scrollHeight) {
|
|
21401
|
+
this.addTabIndex();
|
|
21402
|
+
}
|
|
21403
|
+
else {
|
|
21404
|
+
this.removeTabIndex();
|
|
21405
|
+
}
|
|
21406
|
+
}
|
|
21326
21407
|
}
|
|
21327
|
-
ClrModalBody.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrModalBody, deps: [{ token: i0.
|
|
21408
|
+
ClrModalBody.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrModalBody, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
|
|
21328
21409
|
ClrModalBody.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0", type: ClrModalBody, selector: ".modal-body", ngImport: i0 });
|
|
21329
21410
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrModalBody, decorators: [{
|
|
21330
21411
|
type: Directive,
|
|
21331
21412
|
args: [{ selector: '.modal-body' }]
|
|
21332
|
-
}], ctorParameters: function () { return [{ type: i0.
|
|
21413
|
+
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
|
|
21333
21414
|
|
|
21334
21415
|
/*
|
|
21335
21416
|
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
@@ -22254,7 +22335,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
22254
22335
|
}] });
|
|
22255
22336
|
|
|
22256
22337
|
/*
|
|
22257
|
-
* Copyright (c) 2016-
|
|
22338
|
+
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
22258
22339
|
* This software is released under MIT license.
|
|
22259
22340
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
22260
22341
|
*/
|
|
@@ -22999,7 +23080,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
22999
23080
|
}], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });
|
|
23000
23081
|
|
|
23001
23082
|
/*
|
|
23002
|
-
* Copyright (c) 2016-
|
|
23083
|
+
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
23003
23084
|
* This software is released under MIT license.
|
|
23004
23085
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
23005
23086
|
*/
|
|
@@ -23675,129 +23756,468 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
23675
23756
|
* This software is released under MIT license.
|
|
23676
23757
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
23677
23758
|
*/
|
|
23678
|
-
|
|
23679
|
-
|
|
23680
|
-
|
|
23681
|
-
|
|
23759
|
+
const defaultAnimationTiming = '0.2s ease-in-out';
|
|
23760
|
+
|
|
23761
|
+
/*
|
|
23762
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
23763
|
+
* This software is released under MIT license.
|
|
23764
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
23765
|
+
*/
|
|
23766
|
+
function collapse() {
|
|
23767
|
+
'use strict';
|
|
23768
|
+
return [
|
|
23769
|
+
state('true', style({ height: 0, 'overflow-y': 'hidden' })),
|
|
23770
|
+
transition('true => false', [animate(defaultAnimationTiming, style({ height: '*', 'overflow-y': 'hidden' }))]),
|
|
23771
|
+
transition('false => true', [style({ height: '*', 'overflow-y': 'hidden' }), animate(defaultAnimationTiming)]),
|
|
23772
|
+
];
|
|
23773
|
+
}
|
|
23774
|
+
|
|
23775
|
+
/*
|
|
23776
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
23777
|
+
* This software is released under MIT license.
|
|
23778
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
23779
|
+
*/
|
|
23780
|
+
|
|
23781
|
+
/*
|
|
23782
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
23783
|
+
* This software is released under MIT license.
|
|
23784
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
23785
|
+
*/
|
|
23786
|
+
function fade(opacity = 1) {
|
|
23787
|
+
return [
|
|
23788
|
+
transition('void => *', [style({ opacity: 0 }), animate(defaultAnimationTiming, style({ opacity: opacity }))]),
|
|
23789
|
+
transition('* => void', [animate(defaultAnimationTiming, style({ opacity: 0 }))]),
|
|
23790
|
+
];
|
|
23791
|
+
}
|
|
23792
|
+
|
|
23793
|
+
/*
|
|
23794
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
23795
|
+
* This software is released under MIT license.
|
|
23796
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
23797
|
+
*/
|
|
23798
|
+
|
|
23799
|
+
/*
|
|
23800
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
23801
|
+
* This software is released under MIT license.
|
|
23802
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
23803
|
+
*/
|
|
23804
|
+
function fadeSlide(direction) {
|
|
23805
|
+
let transform = null;
|
|
23806
|
+
if (direction === 'up') {
|
|
23807
|
+
transform = 'translate(0, 25%)';
|
|
23682
23808
|
}
|
|
23683
|
-
|
|
23684
|
-
|
|
23685
|
-
throw new Error('Wizard stepnav item is not associated with a wizard page.');
|
|
23686
|
-
}
|
|
23809
|
+
else if (direction === 'down') {
|
|
23810
|
+
transform = 'translate(0, -25%)';
|
|
23687
23811
|
}
|
|
23688
|
-
|
|
23689
|
-
|
|
23690
|
-
return this.pageCollection.getStepItemIdForPage(this.page);
|
|
23812
|
+
else if (direction === 'left') {
|
|
23813
|
+
transform = 'translate(25%, 0)';
|
|
23691
23814
|
}
|
|
23692
|
-
|
|
23693
|
-
|
|
23815
|
+
else if (direction === 'right') {
|
|
23816
|
+
transform = 'translate(-25%, 0)';
|
|
23694
23817
|
}
|
|
23695
|
-
|
|
23696
|
-
|
|
23697
|
-
return this.page.disabled || this.navService.wizardStopNavigation || this.navService.wizardDisableStepnav;
|
|
23818
|
+
else {
|
|
23819
|
+
throw new Error('Unknown direction ' + direction + ' for slide animation.');
|
|
23698
23820
|
}
|
|
23699
|
-
|
|
23700
|
-
|
|
23701
|
-
|
|
23821
|
+
return [
|
|
23822
|
+
transition('void => *', [style({ opacity: 0, transform: transform }), animate(defaultAnimationTiming)]),
|
|
23823
|
+
transition('* => void', [animate(defaultAnimationTiming, style({ opacity: 0, transform: transform }))]),
|
|
23824
|
+
];
|
|
23825
|
+
}
|
|
23826
|
+
|
|
23827
|
+
/*
|
|
23828
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
23829
|
+
* This software is released under MIT license.
|
|
23830
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
23831
|
+
*/
|
|
23832
|
+
|
|
23833
|
+
/*
|
|
23834
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
23835
|
+
* This software is released under MIT license.
|
|
23836
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
23837
|
+
*/
|
|
23838
|
+
function slide(direction) {
|
|
23839
|
+
let transform = null;
|
|
23840
|
+
if (direction === 'up') {
|
|
23841
|
+
transform = 'translate(0, 25%)';
|
|
23702
23842
|
}
|
|
23703
|
-
|
|
23704
|
-
|
|
23705
|
-
return this.page.completed;
|
|
23843
|
+
else if (direction === 'down') {
|
|
23844
|
+
transform = 'translate(0, -25%)';
|
|
23706
23845
|
}
|
|
23707
|
-
|
|
23708
|
-
|
|
23709
|
-
return this.page.hasError && this.isComplete;
|
|
23846
|
+
else if (direction === 'left') {
|
|
23847
|
+
transform = 'translate(25%, 0)';
|
|
23710
23848
|
}
|
|
23711
|
-
|
|
23712
|
-
|
|
23713
|
-
return this.pageCollection.previousPageIsCompleted(this.page);
|
|
23849
|
+
else if (direction === 'right') {
|
|
23850
|
+
transform = 'translate(-25%, 0)';
|
|
23714
23851
|
}
|
|
23715
|
-
|
|
23716
|
-
|
|
23717
|
-
// if we click on our own stepnav or a disabled stepnav, we don't want to do anything
|
|
23718
|
-
if (this.isDisabled || this.isCurrent) {
|
|
23719
|
-
return;
|
|
23720
|
-
}
|
|
23721
|
-
this.navService.goTo(this.page);
|
|
23852
|
+
else {
|
|
23853
|
+
throw new Error('Unknown direction ' + direction + ' for slide animation.');
|
|
23722
23854
|
}
|
|
23855
|
+
return [
|
|
23856
|
+
transition('void => *', [style({ transform: transform }), animate(defaultAnimationTiming)]),
|
|
23857
|
+
transition('* => void', [animate(defaultAnimationTiming, style({ transform: transform }))]),
|
|
23858
|
+
];
|
|
23723
23859
|
}
|
|
23724
|
-
ClrWizardStepnavItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrWizardStepnavItem, deps: [{ token: WizardNavigationService }, { token: PageCollectionService }], target: i0.ɵɵFactoryTarget.Component });
|
|
23725
|
-
ClrWizardStepnavItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: ClrWizardStepnavItem, selector: "[clr-wizard-stepnav-item]", inputs: { page: "page" }, host: { properties: { "id": "id", "attr.aria-current": "stepAriaCurrent", "attr.aria-controls": "id", "class.clr-nav-link": "true", "class.nav-item": "true", "class.active": "isCurrent", "class.disabled": "isDisabled", "class.no-click": "!canNavigate", "class.complete": "isComplete", "class.error": "hasError" } }, ngImport: i0, template: `
|
|
23726
|
-
<button
|
|
23727
|
-
type="button"
|
|
23728
|
-
class="btn btn-link clr-wizard-stepnav-link"
|
|
23729
|
-
(click)="click()"
|
|
23730
|
-
[attr.disabled]="isDisabled ? '' : null"
|
|
23731
|
-
>
|
|
23732
|
-
<span class="clr-wizard-stepnav-link-suffix">
|
|
23733
|
-
<cds-icon
|
|
23734
|
-
shape="error-standard"
|
|
23735
|
-
status="danger"
|
|
23736
|
-
class="clr-wizard-stepnav-item-error-icon"
|
|
23737
|
-
*ngIf="hasError"
|
|
23738
|
-
></cds-icon>
|
|
23739
|
-
<ng-content *ngIf="!hasError"></ng-content>
|
|
23740
|
-
</span>
|
|
23741
|
-
<span class="clr-wizard-stepnav-link-title">
|
|
23742
|
-
<ng-template [ngTemplateOutlet]="page.navTitle"></ng-template>
|
|
23743
|
-
</span>
|
|
23744
|
-
</button>
|
|
23745
|
-
`, isInline: true, directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: CdsIconCustomTag, selector: "cds-icon" }, { type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
|
|
23746
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrWizardStepnavItem, decorators: [{
|
|
23747
|
-
type: Component,
|
|
23748
|
-
args: [{
|
|
23749
|
-
selector: '[clr-wizard-stepnav-item]',
|
|
23750
|
-
template: `
|
|
23751
|
-
<button
|
|
23752
|
-
type="button"
|
|
23753
|
-
class="btn btn-link clr-wizard-stepnav-link"
|
|
23754
|
-
(click)="click()"
|
|
23755
|
-
[attr.disabled]="isDisabled ? '' : null"
|
|
23756
|
-
>
|
|
23757
|
-
<span class="clr-wizard-stepnav-link-suffix">
|
|
23758
|
-
<cds-icon
|
|
23759
|
-
shape="error-standard"
|
|
23760
|
-
status="danger"
|
|
23761
|
-
class="clr-wizard-stepnav-item-error-icon"
|
|
23762
|
-
*ngIf="hasError"
|
|
23763
|
-
></cds-icon>
|
|
23764
|
-
<ng-content *ngIf="!hasError"></ng-content>
|
|
23765
|
-
</span>
|
|
23766
|
-
<span class="clr-wizard-stepnav-link-title">
|
|
23767
|
-
<ng-template [ngTemplateOutlet]="page.navTitle"></ng-template>
|
|
23768
|
-
</span>
|
|
23769
|
-
</button>
|
|
23770
|
-
`,
|
|
23771
|
-
host: {
|
|
23772
|
-
'[id]': 'id',
|
|
23773
|
-
'[attr.aria-current]': 'stepAriaCurrent',
|
|
23774
|
-
'[attr.aria-controls]': 'id',
|
|
23775
|
-
'[class.clr-nav-link]': 'true',
|
|
23776
|
-
'[class.nav-item]': 'true',
|
|
23777
|
-
'[class.active]': 'isCurrent',
|
|
23778
|
-
'[class.disabled]': 'isDisabled',
|
|
23779
|
-
'[class.no-click]': '!canNavigate',
|
|
23780
|
-
'[class.complete]': 'isComplete',
|
|
23781
|
-
'[class.error]': 'hasError',
|
|
23782
|
-
},
|
|
23783
|
-
}]
|
|
23784
|
-
}], ctorParameters: function () { return [{ type: WizardNavigationService }, { type: PageCollectionService }]; }, propDecorators: { page: [{
|
|
23785
|
-
type: Input,
|
|
23786
|
-
args: ['page']
|
|
23787
|
-
}] } });
|
|
23788
23860
|
|
|
23789
23861
|
/*
|
|
23790
23862
|
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
23791
23863
|
* This software is released under MIT license.
|
|
23792
23864
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
23793
23865
|
*/
|
|
23794
|
-
|
|
23795
|
-
|
|
23796
|
-
|
|
23797
|
-
|
|
23798
|
-
|
|
23799
|
-
|
|
23800
|
-
|
|
23866
|
+
|
|
23867
|
+
/*
|
|
23868
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
23869
|
+
* This software is released under MIT license.
|
|
23870
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
23871
|
+
*/
|
|
23872
|
+
|
|
23873
|
+
/*
|
|
23874
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
23875
|
+
* This software is released under MIT license.
|
|
23876
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
23877
|
+
*/
|
|
23878
|
+
|
|
23879
|
+
/*
|
|
23880
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
23881
|
+
* This software is released under MIT license.
|
|
23882
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
23883
|
+
*/
|
|
23884
|
+
|
|
23885
|
+
/*
|
|
23886
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
23887
|
+
* This software is released under MIT license.
|
|
23888
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
23889
|
+
*/
|
|
23890
|
+
|
|
23891
|
+
/*
|
|
23892
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
23893
|
+
* This software is released under MIT license.
|
|
23894
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
23895
|
+
*/
|
|
23896
|
+
var ClrAriaLivePoliteness;
|
|
23897
|
+
(function (ClrAriaLivePoliteness) {
|
|
23898
|
+
ClrAriaLivePoliteness["off"] = "off";
|
|
23899
|
+
ClrAriaLivePoliteness["polite"] = "polite";
|
|
23900
|
+
ClrAriaLivePoliteness["assertive"] = "assertive";
|
|
23901
|
+
})(ClrAriaLivePoliteness || (ClrAriaLivePoliteness = {}));
|
|
23902
|
+
/**
|
|
23903
|
+
* Time in milliseconds before inserting the content into the container
|
|
23904
|
+
*/
|
|
23905
|
+
const ARIA_LIVE_TICK = 100;
|
|
23906
|
+
/**
|
|
23907
|
+
* @deprecated
|
|
23908
|
+
*
|
|
23909
|
+
* -- ClrAriaLiveService is deprecated in 5.0 to be removed in 6.0 --
|
|
23910
|
+
* Please consider using the LiveAnnouncer in the Angular Material CDK
|
|
23911
|
+
* if your project needs this functionality.
|
|
23912
|
+
* More info: https://material.angular.io/cdk/a11y/overview#example-1
|
|
23913
|
+
*
|
|
23914
|
+
* This service handle `aria-live` accessibility attribute. The issue is that you need
|
|
23915
|
+
* to have the DOM Element with attribute `aria-live` before you could insert content
|
|
23916
|
+
* and SR (Screen Reader) pick the change and announce it.
|
|
23917
|
+
*
|
|
23918
|
+
* ```typescript
|
|
23919
|
+
* import { ClrAriaLiveService } from 'src/clr-angular/utils/a11y/aria-live.service';
|
|
23920
|
+
*
|
|
23921
|
+
* @Component({
|
|
23922
|
+
* selector: 'clr-demo-component',
|
|
23923
|
+
* providers: [ClrAriaLiveService],
|
|
23924
|
+
* template: `
|
|
23925
|
+
* <ng-content></ng-content>
|
|
23926
|
+
* `,
|
|
23927
|
+
* })
|
|
23928
|
+
* export class DemoComponent {
|
|
23929
|
+
* constructor(ariaLiveService: ClrAriaLiveService) {}
|
|
23930
|
+
*
|
|
23931
|
+
* public actionThatWillTriggerChange() {
|
|
23932
|
+
* this.ariaLiveService.announce('message that I want to announce to SR');
|
|
23933
|
+
* }
|
|
23934
|
+
* }
|
|
23935
|
+
* ```
|
|
23936
|
+
*
|
|
23937
|
+
*/
|
|
23938
|
+
class ClrAriaLiveService {
|
|
23939
|
+
constructor(ngZone, _document, platformId) {
|
|
23940
|
+
this.ngZone = ngZone;
|
|
23941
|
+
this.platformId = platformId;
|
|
23942
|
+
this._id = `clr-aria-live-element-${uniqueIdFactory()}`;
|
|
23943
|
+
this.document = _document;
|
|
23944
|
+
}
|
|
23945
|
+
/**
|
|
23946
|
+
* get access to the internal HTML `id` that gonna be used for the AriaLive container.
|
|
23947
|
+
* @return ID of the DOM Element as string.
|
|
23948
|
+
*/
|
|
23949
|
+
get id() {
|
|
23950
|
+
return this._id;
|
|
23951
|
+
}
|
|
23952
|
+
/**
|
|
23953
|
+
* Append text content inside the AriaLive Container. This method will check if the
|
|
23954
|
+
* DOM Element is existing if not it will create one for us and the will apply the text.
|
|
23955
|
+
*
|
|
23956
|
+
* ```typescript
|
|
23957
|
+
* this.ariaLiveService.announce(this.el.nativeElement);
|
|
23958
|
+
* // or
|
|
23959
|
+
* this.ariaLiveService.announce('Message to announce to SR');
|
|
23960
|
+
* ```
|
|
23961
|
+
*
|
|
23962
|
+
* @remark
|
|
23963
|
+
* When second argument is `AriaLivePoliteness.off` we won't create aria container or update it.
|
|
23964
|
+
* The reason for that is that we don't want to do additional work if the SR will ignore it.
|
|
23965
|
+
*
|
|
23966
|
+
* @param message - This could be simple string or HTMLElement
|
|
23967
|
+
* @param politeness - 'polite', 'assertive' or 'off'
|
|
23968
|
+
*/
|
|
23969
|
+
announce(message, politeness = ClrAriaLivePoliteness.polite) {
|
|
23970
|
+
if (politeness === ClrAriaLivePoliteness.off) {
|
|
23971
|
+
return;
|
|
23972
|
+
}
|
|
23973
|
+
if (!this.ariaLiveElement && isPlatformBrowser(this.platformId)) {
|
|
23974
|
+
this.ariaLiveElement = this.createContainer();
|
|
23975
|
+
}
|
|
23976
|
+
message = typeof message !== 'string' && isPlatformBrowser(this.platformId) ? message.textContent : message;
|
|
23977
|
+
// when there is no message do NOTHING!
|
|
23978
|
+
if (!message) {
|
|
23979
|
+
return;
|
|
23980
|
+
}
|
|
23981
|
+
this.ariaLiveElement.setAttribute('aria-live', politeness);
|
|
23982
|
+
// This 100ms timeout is necessary for some browser + screen-reader combinations:
|
|
23983
|
+
// - Both JAWS and NVDA over IE11 will not announce anything without a non-zero timeout.
|
|
23984
|
+
// - With Chrome and IE11 with NVDA or JAWS, a repeated (identical) message won't be read a
|
|
23985
|
+
// second time without clearing and then using a non-zero delay.
|
|
23986
|
+
// (using JAWS 17 at time of this writing).
|
|
23987
|
+
this.ngZone.runOutsideAngular(() => {
|
|
23988
|
+
// This clearTimeout will stop all older messages from announcing
|
|
23989
|
+
// in the case where the messages are comming too fast we gonna try to append only
|
|
23990
|
+
// the last one. That's what the SR will try to do anyway.
|
|
23991
|
+
clearTimeout(this.previousTimeout);
|
|
23992
|
+
this.previousTimeout = setTimeout(() => {
|
|
23993
|
+
this.ariaLiveElement.textContent = message;
|
|
23994
|
+
}, ARIA_LIVE_TICK);
|
|
23995
|
+
});
|
|
23996
|
+
}
|
|
23997
|
+
/**
|
|
23998
|
+
* onDestroy life cycle - must stop all active setTimeouts and remove the AriaLive
|
|
23999
|
+
* container from the document.
|
|
24000
|
+
*/
|
|
24001
|
+
ngOnDestroy() {
|
|
24002
|
+
clearTimeout(this.previousTimeout);
|
|
24003
|
+
if (isPlatformBrowser(this.platformId) && this.ariaLiveElement) {
|
|
24004
|
+
this.document.body.removeChild(this.ariaLiveElement);
|
|
24005
|
+
this.ariaLiveElement = null;
|
|
24006
|
+
}
|
|
24007
|
+
}
|
|
24008
|
+
/**
|
|
24009
|
+
* Create AriaLive DOM element as a last child of the document.
|
|
24010
|
+
* After the element is created, we gonna apply Clarity class to hide it from
|
|
24011
|
+
* the screen and set the `aria-live` politness.
|
|
24012
|
+
*
|
|
24013
|
+
* `clr-sr-only` is the CSS class that is used to hide the element from the screen.
|
|
24014
|
+
*
|
|
24015
|
+
* @remark
|
|
24016
|
+
* Calling this method multiple times will create multiple DOM Elements, that
|
|
24017
|
+
* won't be tracked and will be GC after the service is destroyed.
|
|
24018
|
+
*
|
|
24019
|
+
* @return AriaLive container as HTMLElement
|
|
24020
|
+
*
|
|
24021
|
+
*/
|
|
24022
|
+
createContainer() {
|
|
24023
|
+
const ariaLiveElement = this.document.createElement('div');
|
|
24024
|
+
ariaLiveElement.setAttribute('id', this.id);
|
|
24025
|
+
// Use clarity screen reader class to hide the dom element
|
|
24026
|
+
// and fix the scrollbar shake
|
|
24027
|
+
ariaLiveElement.classList.add('clr-sr-only');
|
|
24028
|
+
ariaLiveElement.setAttribute('aria-atomic', 'true');
|
|
24029
|
+
ariaLiveElement.setAttribute('aria-live', ClrAriaLivePoliteness.polite);
|
|
24030
|
+
this.document.body.appendChild(ariaLiveElement);
|
|
24031
|
+
return ariaLiveElement;
|
|
24032
|
+
}
|
|
24033
|
+
}
|
|
24034
|
+
ClrAriaLiveService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrAriaLiveService, deps: [{ token: i0.NgZone }, { token: DOCUMENT }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
24035
|
+
ClrAriaLiveService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrAriaLiveService, providedIn: 'root' });
|
|
24036
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrAriaLiveService, decorators: [{
|
|
24037
|
+
type: Injectable,
|
|
24038
|
+
args: [{
|
|
24039
|
+
providedIn: 'root',
|
|
24040
|
+
}]
|
|
24041
|
+
}], ctorParameters: function () {
|
|
24042
|
+
return [{ type: i0.NgZone }, { type: undefined, decorators: [{
|
|
24043
|
+
type: Inject,
|
|
24044
|
+
args: [DOCUMENT]
|
|
24045
|
+
}] }, { type: undefined, decorators: [{
|
|
24046
|
+
type: Inject,
|
|
24047
|
+
args: [PLATFORM_ID]
|
|
24048
|
+
}] }];
|
|
24049
|
+
} });
|
|
24050
|
+
|
|
24051
|
+
/*
|
|
24052
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
24053
|
+
* This software is released under MIT license.
|
|
24054
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
24055
|
+
*/
|
|
24056
|
+
|
|
24057
|
+
/*
|
|
24058
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
24059
|
+
* This software is released under MIT license.
|
|
24060
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
24061
|
+
*/
|
|
24062
|
+
|
|
24063
|
+
/*
|
|
24064
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
24065
|
+
* This software is released under MIT license.
|
|
24066
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
24067
|
+
*
|
|
24068
|
+
*/
|
|
24069
|
+
|
|
24070
|
+
/*
|
|
24071
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
24072
|
+
* This software is released under MIT license.
|
|
24073
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
24074
|
+
*/
|
|
24075
|
+
|
|
24076
|
+
/*
|
|
24077
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
24078
|
+
* This software is released under MIT license.
|
|
24079
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
24080
|
+
*/
|
|
24081
|
+
|
|
24082
|
+
/*
|
|
24083
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
24084
|
+
* This software is released under MIT license.
|
|
24085
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
24086
|
+
*/
|
|
24087
|
+
|
|
24088
|
+
/*
|
|
24089
|
+
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
24090
|
+
* This software is released under MIT license.
|
|
24091
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
24092
|
+
*/
|
|
24093
|
+
class ClrWizardStepnavItem {
|
|
24094
|
+
constructor(navService, pageCollection, commonStrings) {
|
|
24095
|
+
this.navService = navService;
|
|
24096
|
+
this.pageCollection = pageCollection;
|
|
24097
|
+
this.commonStrings = commonStrings;
|
|
24098
|
+
}
|
|
24099
|
+
pageGuard() {
|
|
24100
|
+
if (!this.page) {
|
|
24101
|
+
throw new Error('Wizard stepnav item is not associated with a wizard page.');
|
|
24102
|
+
}
|
|
24103
|
+
}
|
|
24104
|
+
get id() {
|
|
24105
|
+
this.pageGuard();
|
|
24106
|
+
return this.pageCollection.getStepItemIdForPage(this.page);
|
|
24107
|
+
}
|
|
24108
|
+
get stepAriaCurrent() {
|
|
24109
|
+
return this.isCurrent && 'step';
|
|
24110
|
+
}
|
|
24111
|
+
get isDisabled() {
|
|
24112
|
+
this.pageGuard();
|
|
24113
|
+
return this.page.disabled || this.navService.wizardStopNavigation || this.navService.wizardDisableStepnav;
|
|
24114
|
+
}
|
|
24115
|
+
get isCurrent() {
|
|
24116
|
+
this.pageGuard();
|
|
24117
|
+
return this.page.current;
|
|
24118
|
+
}
|
|
24119
|
+
get isComplete() {
|
|
24120
|
+
this.pageGuard();
|
|
24121
|
+
return this.page.completed;
|
|
24122
|
+
}
|
|
24123
|
+
get hasError() {
|
|
24124
|
+
this.pageGuard();
|
|
24125
|
+
return this.page.hasError && this.isComplete;
|
|
24126
|
+
}
|
|
24127
|
+
get canNavigate() {
|
|
24128
|
+
this.pageGuard();
|
|
24129
|
+
return this.pageCollection.previousPageIsCompleted(this.page);
|
|
24130
|
+
}
|
|
24131
|
+
click() {
|
|
24132
|
+
this.pageGuard();
|
|
24133
|
+
// if we click on our own stepnav or a disabled stepnav, we don't want to do anything
|
|
24134
|
+
if (this.isDisabled || this.isCurrent) {
|
|
24135
|
+
return;
|
|
24136
|
+
}
|
|
24137
|
+
this.navService.goTo(this.page);
|
|
24138
|
+
}
|
|
24139
|
+
}
|
|
24140
|
+
ClrWizardStepnavItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrWizardStepnavItem, deps: [{ token: WizardNavigationService }, { token: PageCollectionService }, { token: ClrCommonStringsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
24141
|
+
ClrWizardStepnavItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: ClrWizardStepnavItem, selector: "[clr-wizard-stepnav-item]", inputs: { page: "page" }, host: { properties: { "id": "id", "attr.aria-current": "stepAriaCurrent", "attr.aria-controls": "id", "class.clr-nav-link": "true", "class.nav-item": "true", "class.active": "isCurrent", "class.disabled": "isDisabled", "class.no-click": "!canNavigate", "class.complete": "isComplete", "class.error": "hasError" } }, ngImport: i0, template: `
|
|
24142
|
+
<button
|
|
24143
|
+
type="button"
|
|
24144
|
+
class="btn btn-link clr-wizard-stepnav-link"
|
|
24145
|
+
(click)="click()"
|
|
24146
|
+
[attr.disabled]="isDisabled ? '' : null"
|
|
24147
|
+
>
|
|
24148
|
+
<span class="clr-wizard-stepnav-link-suffix">
|
|
24149
|
+
<cds-icon
|
|
24150
|
+
shape="error-standard"
|
|
24151
|
+
status="danger"
|
|
24152
|
+
class="clr-wizard-stepnav-item-error-icon"
|
|
24153
|
+
*ngIf="hasError"
|
|
24154
|
+
></cds-icon>
|
|
24155
|
+
<ng-content *ngIf="!hasError"></ng-content>
|
|
24156
|
+
</span>
|
|
24157
|
+
<span class="clr-wizard-stepnav-link-title">
|
|
24158
|
+
<ng-template [ngTemplateOutlet]="page.navTitle"></ng-template>
|
|
24159
|
+
</span>
|
|
24160
|
+
<span *ngIf="hasError" class="clr-sr-only">{{ commonStrings.keys.wizardStepError }}</span>
|
|
24161
|
+
<span *ngIf="!hasError && isComplete" class="clr-sr-only">{{ commonStrings.keys.wizardStepSuccess }}</span>
|
|
24162
|
+
</button>
|
|
24163
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: CdsIconCustomTag, selector: "cds-icon" }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
|
|
24164
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrWizardStepnavItem, decorators: [{
|
|
24165
|
+
type: Component,
|
|
24166
|
+
args: [{
|
|
24167
|
+
selector: '[clr-wizard-stepnav-item]',
|
|
24168
|
+
template: `
|
|
24169
|
+
<button
|
|
24170
|
+
type="button"
|
|
24171
|
+
class="btn btn-link clr-wizard-stepnav-link"
|
|
24172
|
+
(click)="click()"
|
|
24173
|
+
[attr.disabled]="isDisabled ? '' : null"
|
|
24174
|
+
>
|
|
24175
|
+
<span class="clr-wizard-stepnav-link-suffix">
|
|
24176
|
+
<cds-icon
|
|
24177
|
+
shape="error-standard"
|
|
24178
|
+
status="danger"
|
|
24179
|
+
class="clr-wizard-stepnav-item-error-icon"
|
|
24180
|
+
*ngIf="hasError"
|
|
24181
|
+
></cds-icon>
|
|
24182
|
+
<ng-content *ngIf="!hasError"></ng-content>
|
|
24183
|
+
</span>
|
|
24184
|
+
<span class="clr-wizard-stepnav-link-title">
|
|
24185
|
+
<ng-template [ngTemplateOutlet]="page.navTitle"></ng-template>
|
|
24186
|
+
</span>
|
|
24187
|
+
<span *ngIf="hasError" class="clr-sr-only">{{ commonStrings.keys.wizardStepError }}</span>
|
|
24188
|
+
<span *ngIf="!hasError && isComplete" class="clr-sr-only">{{ commonStrings.keys.wizardStepSuccess }}</span>
|
|
24189
|
+
</button>
|
|
24190
|
+
`,
|
|
24191
|
+
host: {
|
|
24192
|
+
'[id]': 'id',
|
|
24193
|
+
'[attr.aria-current]': 'stepAriaCurrent',
|
|
24194
|
+
'[attr.aria-controls]': 'id',
|
|
24195
|
+
'[class.clr-nav-link]': 'true',
|
|
24196
|
+
'[class.nav-item]': 'true',
|
|
24197
|
+
'[class.active]': 'isCurrent',
|
|
24198
|
+
'[class.disabled]': 'isDisabled',
|
|
24199
|
+
'[class.no-click]': '!canNavigate',
|
|
24200
|
+
'[class.complete]': 'isComplete',
|
|
24201
|
+
'[class.error]': 'hasError',
|
|
24202
|
+
},
|
|
24203
|
+
}]
|
|
24204
|
+
}], ctorParameters: function () { return [{ type: WizardNavigationService }, { type: PageCollectionService }, { type: ClrCommonStringsService }]; }, propDecorators: { page: [{
|
|
24205
|
+
type: Input,
|
|
24206
|
+
args: ['page']
|
|
24207
|
+
}] } });
|
|
24208
|
+
|
|
24209
|
+
/*
|
|
24210
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
24211
|
+
* This software is released under MIT license.
|
|
24212
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
24213
|
+
*/
|
|
24214
|
+
class ClrWizardStepnav {
|
|
24215
|
+
constructor(pageService) {
|
|
24216
|
+
this.pageService = pageService;
|
|
24217
|
+
}
|
|
24218
|
+
}
|
|
24219
|
+
ClrWizardStepnav.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrWizardStepnav, deps: [{ token: PageCollectionService }], target: i0.ɵɵFactoryTarget.Component });
|
|
24220
|
+
ClrWizardStepnav.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: ClrWizardStepnav, selector: "clr-wizard-stepnav", host: { classAttribute: "clr-wizard-stepnav" }, ngImport: i0, template: `
|
|
23801
24221
|
<div class="clr-wizard-stepnav-list">
|
|
23802
24222
|
<div
|
|
23803
24223
|
*ngFor="let page of pageService.pages; let i = index"
|
|
@@ -23808,7 +24228,7 @@ ClrWizardStepnav.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versi
|
|
|
23808
24228
|
{{ i + 1 }}
|
|
23809
24229
|
</div>
|
|
23810
24230
|
</div>
|
|
23811
|
-
`, isInline: true, components: [{ type: ClrWizardStepnavItem, selector: "[clr-wizard-stepnav-item]", inputs: ["page"] }], directives: [{ type:
|
|
24231
|
+
`, isInline: true, components: [{ type: ClrWizardStepnavItem, selector: "[clr-wizard-stepnav-item]", inputs: ["page"] }], directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
23812
24232
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrWizardStepnav, decorators: [{
|
|
23813
24233
|
type: Component,
|
|
23814
24234
|
args: [{
|
|
@@ -23830,7 +24250,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
23830
24250
|
}], ctorParameters: function () { return [{ type: PageCollectionService }]; } });
|
|
23831
24251
|
|
|
23832
24252
|
/*
|
|
23833
|
-
* Copyright (c) 2016-
|
|
24253
|
+
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
23834
24254
|
* This software is released under MIT license.
|
|
23835
24255
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
23836
24256
|
*/
|
|
@@ -24191,7 +24611,14 @@ class ClrWizard {
|
|
|
24191
24611
|
return this.navService.wizardFinished.subscribe(() => this.emitWizardFinished());
|
|
24192
24612
|
}
|
|
24193
24613
|
listenForPageChanges() {
|
|
24194
|
-
return this.navService.currentPageChanged.subscribe(() =>
|
|
24614
|
+
return this.navService.currentPageChanged.subscribe(() => {
|
|
24615
|
+
var _a;
|
|
24616
|
+
// Added to address VPAT-749:
|
|
24617
|
+
// When clicking on a wizard tab, focus should move to that
|
|
24618
|
+
// tabs content to make the wizard more accessible.
|
|
24619
|
+
(_a = this.wizardTitle) === null || _a === void 0 ? void 0 : _a.nativeElement.focus();
|
|
24620
|
+
this.currentPageChanged.emit();
|
|
24621
|
+
});
|
|
24195
24622
|
}
|
|
24196
24623
|
updateNavOnPageChanges() {
|
|
24197
24624
|
const changes = this.differ.diff(this.pages);
|
|
@@ -24214,7 +24641,7 @@ class ClrWizard {
|
|
|
24214
24641
|
}
|
|
24215
24642
|
}
|
|
24216
24643
|
ClrWizard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrWizard, deps: [{ token: PLATFORM_ID }, { token: WizardNavigationService }, { token: PageCollectionService }, { token: ButtonHubService }, { token: HeaderActionService }, { token: i0.ElementRef }, { token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Component });
|
|
24217
|
-
ClrWizard.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: ClrWizard, selector: "clr-wizard", inputs: { size: ["clrWizardSize", "size"], closable: ["clrWizardClosable", "closable"], forceForward: ["clrWizardForceForwardNavigation", "forceForward"], clrWizardOpen: "clrWizardOpen", stopNext: ["clrWizardPreventDefaultNext", "stopNext"], stopCancel: ["clrWizardPreventDefaultCancel", "stopCancel"], stopNavigation: ["clrWizardPreventNavigation", "stopNavigation"], disableStepnav: ["clrWizardDisableStepnav", "disableStepnav"], _stopModalAnimations: ["clrWizardPreventModalAnimation", "_stopModalAnimations"] }, outputs: { _openChanged: "clrWizardOpenChange", onCancel: "clrWizardOnCancel", wizardFinished: "clrWizardOnFinish", onReset: "clrWizardOnReset", currentPageChanged: "clrWizardCurrentPageChanged", onMoveNext: "clrWizardOnNext", onMovePrevious: "clrWizardOnPrevious" }, host: { properties: { "class.clr-wizard": "true", "class.wizard-md": "size == 'md'", "class.wizard-lg": "size == 'lg'", "class.wizard-xl": "size == 'xl'", "class.lastPage": "navService.currentPageIsLast" } }, providers: [WizardNavigationService, PageCollectionService, ButtonHubService, HeaderActionService], queries: [{ propertyName: "pages", predicate: ClrWizardPage, descendants: true }, { propertyName: "headerActions", predicate: ClrWizardHeaderAction }], viewQueries: [{ propertyName: "wizardTitle", first: true, predicate: ["wizardTitle"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright (c) 2016-2021 VMware, Inc. 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<clr-modal\n [clrModalOpen]=\"_open\"\n [clrModalSize]=\"size\"\n [clrModalClosable]=\"closable\"\n [clrModalStaticBackdrop]=\"true\"\n [clrModalSkipAnimation]=\"stopModalAnimations\"\n [clrModalOverrideScrollService]=\"isStatic\"\n [clrModalPreventClose]=\"true\"\n (clrModalAlternateClose)=\"modalCancel()\"\n>\n <nav class=\"modal-nav clr-wizard-stepnav-wrapper\">\n <h1 class=\"clr-wizard-title\"><ng-content select=\"clr-wizard-title\"></ng-content></h1>\n <clr-wizard-stepnav></clr-wizard-stepnav>\n </nav>\n\n <h2 class=\"modal-title\">\n <span tabindex=\"-1\" #wizardTitle class=\"modal-title-text\">\n <ng-template [ngTemplateOutlet]=\"navService.currentPageTitle\"></ng-template>\n </span>\n\n <div class=\"modal-header-actions-wrapper\" *ngIf=\"headerActionService.displayHeaderActionsWrapper\">\n <div *ngIf=\"headerActionService.showWizardHeaderActions\">\n <ng-content select=\"clr-wizard-header-action\"></ng-content>\n </div>\n <div *ngIf=\"headerActionService.currentPageHasHeaderActions\">\n <ng-template [ngTemplateOutlet]=\"navService.currentPage.headerActions\"></ng-template>\n </div>\n </div>\n </h2>\n\n <div class=\"modal-body\">\n <main clr-wizard-pages-wrapper class=\"clr-wizard-content\">\n <ng-content></ng-content>\n </main>\n </div>\n <div class=\"modal-footer clr-wizard-footer\">\n <div class=\"clr-wizard-footer-buttons\">\n <div\n *ngIf=\"navService.currentPage && !navService.currentPage.hasButtons\"\n class=\"clr-wizard-footer-buttons-wrapper\"\n >\n <ng-content select=\"clr-wizard-button\"></ng-content>\n </div>\n <div\n *ngIf=\"navService.currentPage && navService.currentPage.hasButtons\"\n class=\"clr-wizard-footer-buttons-wrapper\"\n >\n <ng-template [ngTemplateOutlet]=\"navService.currentPage.buttons\"></ng-template>\n </div>\n </div>\n </div>\n</clr-modal>\n", components: [{ type: ClrModal, selector: "clr-modal", inputs: ["clrModalOpen", "clrModalClosable", "clrModalSize", "clrModalStaticBackdrop", "clrModalSkipAnimation", "clrModalOverrideScrollService", "clrModalPreventClose"], outputs: ["clrModalOpenChange", "clrModalAlternateClose"] }, { type: ClrWizardStepnav, selector: "clr-wizard-stepnav" }], directives: [{ type:
|
|
24644
|
+
ClrWizard.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: ClrWizard, selector: "clr-wizard", inputs: { size: ["clrWizardSize", "size"], closable: ["clrWizardClosable", "closable"], forceForward: ["clrWizardForceForwardNavigation", "forceForward"], clrWizardOpen: "clrWizardOpen", stopNext: ["clrWizardPreventDefaultNext", "stopNext"], stopCancel: ["clrWizardPreventDefaultCancel", "stopCancel"], stopNavigation: ["clrWizardPreventNavigation", "stopNavigation"], disableStepnav: ["clrWizardDisableStepnav", "disableStepnav"], _stopModalAnimations: ["clrWizardPreventModalAnimation", "_stopModalAnimations"] }, outputs: { _openChanged: "clrWizardOpenChange", onCancel: "clrWizardOnCancel", wizardFinished: "clrWizardOnFinish", onReset: "clrWizardOnReset", currentPageChanged: "clrWizardCurrentPageChanged", onMoveNext: "clrWizardOnNext", onMovePrevious: "clrWizardOnPrevious" }, host: { properties: { "class.clr-wizard": "true", "class.wizard-md": "size == 'md'", "class.wizard-lg": "size == 'lg'", "class.wizard-xl": "size == 'xl'", "class.lastPage": "navService.currentPageIsLast" } }, providers: [WizardNavigationService, PageCollectionService, ButtonHubService, HeaderActionService], queries: [{ propertyName: "pages", predicate: ClrWizardPage, descendants: true }, { propertyName: "headerActions", predicate: ClrWizardHeaderAction }], viewQueries: [{ propertyName: "wizardTitle", first: true, predicate: ["wizardTitle"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright (c) 2016-2021 VMware, Inc. 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<clr-modal\n [clrModalOpen]=\"_open\"\n [clrModalSize]=\"size\"\n [clrModalClosable]=\"closable\"\n [clrModalStaticBackdrop]=\"true\"\n [clrModalSkipAnimation]=\"stopModalAnimations\"\n [clrModalOverrideScrollService]=\"isStatic\"\n [clrModalPreventClose]=\"true\"\n (clrModalAlternateClose)=\"modalCancel()\"\n>\n <nav class=\"modal-nav clr-wizard-stepnav-wrapper\">\n <h1 class=\"clr-wizard-title\"><ng-content select=\"clr-wizard-title\"></ng-content></h1>\n <clr-wizard-stepnav></clr-wizard-stepnav>\n </nav>\n\n <h2 class=\"modal-title\">\n <span tabindex=\"-1\" #wizardTitle class=\"modal-title-text\">\n <ng-template [ngTemplateOutlet]=\"navService.currentPageTitle\"></ng-template>\n </span>\n\n <div class=\"modal-header-actions-wrapper\" *ngIf=\"headerActionService.displayHeaderActionsWrapper\">\n <div *ngIf=\"headerActionService.showWizardHeaderActions\">\n <ng-content select=\"clr-wizard-header-action\"></ng-content>\n </div>\n <div *ngIf=\"headerActionService.currentPageHasHeaderActions\">\n <ng-template [ngTemplateOutlet]=\"navService.currentPage.headerActions\"></ng-template>\n </div>\n </div>\n </h2>\n\n <div class=\"modal-body\">\n <main clr-wizard-pages-wrapper class=\"clr-wizard-content\">\n <ng-content></ng-content>\n </main>\n </div>\n <div class=\"modal-footer clr-wizard-footer\">\n <div class=\"clr-wizard-footer-buttons\">\n <div\n *ngIf=\"navService.currentPage && !navService.currentPage.hasButtons\"\n class=\"clr-wizard-footer-buttons-wrapper\"\n >\n <ng-content select=\"clr-wizard-button\"></ng-content>\n </div>\n <div\n *ngIf=\"navService.currentPage && navService.currentPage.hasButtons\"\n class=\"clr-wizard-footer-buttons-wrapper\"\n >\n <ng-template [ngTemplateOutlet]=\"navService.currentPage.buttons\"></ng-template>\n </div>\n </div>\n </div>\n</clr-modal>\n", components: [{ type: ClrModal, selector: "clr-modal", inputs: ["clrModalOpen", "clrModalClosable", "clrModalSize", "clrModalStaticBackdrop", "clrModalSkipAnimation", "clrModalOverrideScrollService", "clrModalPreventClose"], outputs: ["clrModalOpenChange", "clrModalAlternateClose"] }, { type: ClrWizardStepnav, selector: "clr-wizard-stepnav" }], directives: [{ type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrModalBody, selector: ".modal-body" }] });
|
|
24218
24645
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrWizard, decorators: [{
|
|
24219
24646
|
type: Component,
|
|
24220
24647
|
args: [{ selector: 'clr-wizard', providers: [WizardNavigationService, PageCollectionService, ButtonHubService, HeaderActionService], host: {
|
|
@@ -24552,13 +24979,6 @@ var AccordionStatus;
|
|
|
24552
24979
|
AccordionStatus["Complete"] = "complete";
|
|
24553
24980
|
})(AccordionStatus || (AccordionStatus = {}));
|
|
24554
24981
|
|
|
24555
|
-
/*
|
|
24556
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
24557
|
-
* This software is released under MIT license.
|
|
24558
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
24559
|
-
*/
|
|
24560
|
-
const defaultAnimationTiming = '0.2s ease-in-out';
|
|
24561
|
-
|
|
24562
24982
|
/*
|
|
24563
24983
|
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
24564
24984
|
* This software is released under MIT license.
|
|
@@ -24656,10 +25076,11 @@ class AccordionModel {
|
|
|
24656
25076
|
}
|
|
24657
25077
|
togglePanel(panelId, open) {
|
|
24658
25078
|
const panelIsOpen = this._panels[panelId].open;
|
|
24659
|
-
|
|
25079
|
+
const newOpenState = open !== undefined ? open : !panelIsOpen;
|
|
25080
|
+
if (newOpenState && this.strategy === AccordionStrategy.Default) {
|
|
24660
25081
|
this.closeAllPanels();
|
|
24661
25082
|
}
|
|
24662
|
-
this._panels[panelId].open =
|
|
25083
|
+
this._panels[panelId].open = newOpenState;
|
|
24663
25084
|
}
|
|
24664
25085
|
disablePanel(panelId, disabled) {
|
|
24665
25086
|
this._panels[panelId].disabled = disabled;
|
|
@@ -24790,10 +25211,10 @@ class ClrAccordionPanel {
|
|
|
24790
25211
|
}
|
|
24791
25212
|
}
|
|
24792
25213
|
ClrAccordionPanel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrAccordionPanel, deps: [{ token: ClrCommonStringsService }, { token: AccordionService }, { token: IfExpandService }, { token: UNIQUE_ID }], target: i0.ɵɵFactoryTarget.Component });
|
|
24793
|
-
ClrAccordionPanel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: ClrAccordionPanel, selector: "clr-accordion-panel", inputs: { disabled: ["clrAccordionPanelDisabled", "disabled"], panelOpen: ["clrAccordionPanelOpen", "panelOpen"] }, outputs: { panelOpenChange: "clrAccordionPanelOpenChange" }, host: { properties: { "class.clr-accordion-panel": "true" } }, providers: [IfExpandService, UNIQUE_ID_PROVIDER], queries: [{ propertyName: "accordionDescription", predicate: ClrAccordionDescription }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"panel | async; let panel\">\n <div *ngIf=\"panel.status !== AccordionStatus.Inactive\" aria-live=\"assertive\" class=\"clr-sr-only\">\n <ng-container *ngIf=\"panel.status === AccordionStatus.Error\">{{commonStrings.keys.danger}}</ng-container>\n </div>\n\n <div
|
|
25214
|
+
ClrAccordionPanel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: ClrAccordionPanel, selector: "clr-accordion-panel", inputs: { disabled: ["clrAccordionPanelDisabled", "disabled"], panelOpen: ["clrAccordionPanelOpen", "panelOpen"] }, outputs: { panelOpenChange: "clrAccordionPanelOpenChange" }, host: { properties: { "class.clr-accordion-panel": "true" } }, providers: [IfExpandService, UNIQUE_ID_PROVIDER], queries: [{ propertyName: "accordionDescription", predicate: ClrAccordionDescription }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"panel | async; let panel\">\n <div *ngIf=\"panel.status !== AccordionStatus.Inactive\" aria-live=\"assertive\" class=\"clr-sr-only\">\n <ng-container *ngIf=\"panel.status === AccordionStatus.Error\">{{commonStrings.keys.danger}}</ng-container>\n </div>\n\n <div [ngClass]=\"getPanelStateClasses(panel)\">\n <div class=\"clr-accordion-header\">\n <button\n type=\"button\"\n class=\"clr-accordion-header-button\"\n (click)=\"togglePanel()\"\n [id]=\"getAccordionHeaderId(panel.templateId)\"\n [disabled]=\"isAccordion && panel.disabled\"\n [attr.aria-disabled]=\"!isAccordion && panel.disabled\"\n [attr.aria-controls]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-expanded]=\"panel.open\"\n [class.clr-accordion-header-has-description]=\"(accordionDescription.changes | async)?.length || accordionDescription.length\"\n #headerButton\n >\n <span class=\"clr-sr-only\">\n <ng-container *ngIf=\"panel.status === AccordionStatus.Error\">{{commonStrings.keys.danger}}</ng-container>\n <ng-container *ngIf=\"panel.status === AccordionStatus.Complete\">{{commonStrings.keys.success}}</ng-container>\n </span>\n <span class=\"clr-accordion-status\">\n <cds-icon shape=\"angle\" direction=\"right\" class=\"clr-accordion-angle\"></cds-icon>\n <span class=\"clr-accordion-number\"></span>\n <cds-icon status=\"danger\" shape=\"exclamation-circle\" class=\"clr-accordion-error-icon\"></cds-icon>\n <cds-icon status=\"success\" shape=\"check-circle\" class=\"clr-accordion-complete-icon\"></cds-icon>\n </span>\n <ng-content select=\"clr-accordion-title, clr-step-title\"></ng-content>\n <ng-content select=\"clr-accordion-description, clr-step-description\"></ng-content>\n </button>\n </div>\n <div\n @skipInitialRender\n role=\"region\"\n [id]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-hidden]=\"!panel.open\"\n [attr.aria-labelledby]=\"getAccordionHeaderId(panel.templateId)\"\n >\n <div\n *ngIf=\"panel.open\"\n @toggle\n (@toggle.done)=\"collapsePanelOnAnimationDone(panel)\"\n class=\"clr-accordion-content\"\n >\n <div class=\"clr-accordion-inner-content\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n </div>\n</ng-container>\n", directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: CdsIconCustomTag, selector: "cds-icon" }], pipes: { "async": i4.AsyncPipe }, animations: panelAnimation, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
24794
25215
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrAccordionPanel, decorators: [{
|
|
24795
25216
|
type: Component,
|
|
24796
|
-
args: [{ selector: 'clr-accordion-panel', host: { '[class.clr-accordion-panel]': 'true' }, changeDetection: ChangeDetectionStrategy.OnPush, animations: panelAnimation, providers: [IfExpandService, UNIQUE_ID_PROVIDER], template: "<ng-container *ngIf=\"panel | async; let panel\">\n <div *ngIf=\"panel.status !== AccordionStatus.Inactive\" aria-live=\"assertive\" class=\"clr-sr-only\">\n <ng-container *ngIf=\"panel.status === AccordionStatus.Error\">{{commonStrings.keys.danger}}</ng-container>\n </div>\n\n <div
|
|
25217
|
+
args: [{ selector: 'clr-accordion-panel', host: { '[class.clr-accordion-panel]': 'true' }, changeDetection: ChangeDetectionStrategy.OnPush, animations: panelAnimation, providers: [IfExpandService, UNIQUE_ID_PROVIDER], template: "<ng-container *ngIf=\"panel | async; let panel\">\n <div *ngIf=\"panel.status !== AccordionStatus.Inactive\" aria-live=\"assertive\" class=\"clr-sr-only\">\n <ng-container *ngIf=\"panel.status === AccordionStatus.Error\">{{commonStrings.keys.danger}}</ng-container>\n </div>\n\n <div [ngClass]=\"getPanelStateClasses(panel)\">\n <div class=\"clr-accordion-header\">\n <button\n type=\"button\"\n class=\"clr-accordion-header-button\"\n (click)=\"togglePanel()\"\n [id]=\"getAccordionHeaderId(panel.templateId)\"\n [disabled]=\"isAccordion && panel.disabled\"\n [attr.aria-disabled]=\"!isAccordion && panel.disabled\"\n [attr.aria-controls]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-expanded]=\"panel.open\"\n [class.clr-accordion-header-has-description]=\"(accordionDescription.changes | async)?.length || accordionDescription.length\"\n #headerButton\n >\n <span class=\"clr-sr-only\">\n <ng-container *ngIf=\"panel.status === AccordionStatus.Error\">{{commonStrings.keys.danger}}</ng-container>\n <ng-container *ngIf=\"panel.status === AccordionStatus.Complete\">{{commonStrings.keys.success}}</ng-container>\n </span>\n <span class=\"clr-accordion-status\">\n <cds-icon shape=\"angle\" direction=\"right\" class=\"clr-accordion-angle\"></cds-icon>\n <span class=\"clr-accordion-number\"></span>\n <cds-icon status=\"danger\" shape=\"exclamation-circle\" class=\"clr-accordion-error-icon\"></cds-icon>\n <cds-icon status=\"success\" shape=\"check-circle\" class=\"clr-accordion-complete-icon\"></cds-icon>\n </span>\n <ng-content select=\"clr-accordion-title, clr-step-title\"></ng-content>\n <ng-content select=\"clr-accordion-description, clr-step-description\"></ng-content>\n </button>\n </div>\n <div\n @skipInitialRender\n role=\"region\"\n [id]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-hidden]=\"!panel.open\"\n [attr.aria-labelledby]=\"getAccordionHeaderId(panel.templateId)\"\n >\n <div\n *ngIf=\"panel.open\"\n @toggle\n (@toggle.done)=\"collapsePanelOnAnimationDone(panel)\"\n class=\"clr-accordion-content\"\n >\n <div class=\"clr-accordion-inner-content\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n </div>\n</ng-container>\n" }]
|
|
24797
25218
|
}], ctorParameters: function () {
|
|
24798
25219
|
return [{ type: ClrCommonStringsService }, { type: AccordionService }, { type: IfExpandService }, { type: undefined, decorators: [{
|
|
24799
25220
|
type: Inject,
|
|
@@ -25226,10 +25647,10 @@ class ClrStepperPanel extends ClrAccordionPanel {
|
|
|
25226
25647
|
}
|
|
25227
25648
|
}
|
|
25228
25649
|
ClrStepperPanel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrStepperPanel, deps: [{ token: PLATFORM_ID }, { token: ClrCommonStringsService }, { token: i1.FormGroupName, optional: true }, { token: i1.NgModelGroup, optional: true }, { token: StepperService }, { token: IfExpandService }, { token: UNIQUE_ID }], target: i0.ɵɵFactoryTarget.Component });
|
|
25229
|
-
ClrStepperPanel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: ClrStepperPanel, selector: "clr-stepper-panel", host: { properties: { "class.clr-accordion-panel": "true" } }, providers: [IfExpandService, UNIQUE_ID_PROVIDER], viewQueries: [{ propertyName: "headerButton", first: true, predicate: ["headerButton"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"panel | async; let panel\">\n <div *ngIf=\"panel.status !== AccordionStatus.Inactive\" aria-live=\"assertive\" class=\"clr-sr-only\">\n <ng-container *ngIf=\"panel.status === AccordionStatus.Error\">{{commonStrings.keys.danger}}</ng-container>\n </div>\n\n <div
|
|
25650
|
+
ClrStepperPanel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: ClrStepperPanel, selector: "clr-stepper-panel", host: { properties: { "class.clr-accordion-panel": "true" } }, providers: [IfExpandService, UNIQUE_ID_PROVIDER], viewQueries: [{ propertyName: "headerButton", first: true, predicate: ["headerButton"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"panel | async; let panel\">\n <div *ngIf=\"panel.status !== AccordionStatus.Inactive\" aria-live=\"assertive\" class=\"clr-sr-only\">\n <ng-container *ngIf=\"panel.status === AccordionStatus.Error\">{{commonStrings.keys.danger}}</ng-container>\n </div>\n\n <div [ngClass]=\"getPanelStateClasses(panel)\">\n <div class=\"clr-accordion-header\">\n <button\n type=\"button\"\n class=\"clr-accordion-header-button\"\n (click)=\"togglePanel()\"\n [id]=\"getAccordionHeaderId(panel.templateId)\"\n [disabled]=\"isAccordion && panel.disabled\"\n [attr.aria-disabled]=\"!isAccordion && panel.disabled\"\n [attr.aria-controls]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-expanded]=\"panel.open\"\n [class.clr-accordion-header-has-description]=\"(accordionDescription.changes | async)?.length || accordionDescription.length\"\n #headerButton\n >\n <span class=\"clr-sr-only\">\n <ng-container *ngIf=\"panel.status === AccordionStatus.Error\">{{commonStrings.keys.danger}}</ng-container>\n <ng-container *ngIf=\"panel.status === AccordionStatus.Complete\">{{commonStrings.keys.success}}</ng-container>\n </span>\n <span class=\"clr-accordion-status\">\n <cds-icon shape=\"angle\" direction=\"right\" class=\"clr-accordion-angle\"></cds-icon>\n <span class=\"clr-accordion-number\"></span>\n <cds-icon status=\"danger\" shape=\"exclamation-circle\" class=\"clr-accordion-error-icon\"></cds-icon>\n <cds-icon status=\"success\" shape=\"check-circle\" class=\"clr-accordion-complete-icon\"></cds-icon>\n </span>\n <ng-content select=\"clr-accordion-title, clr-step-title\"></ng-content>\n <ng-content select=\"clr-accordion-description, clr-step-description\"></ng-content>\n </button>\n </div>\n <div\n @skipInitialRender\n role=\"region\"\n [id]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-hidden]=\"!panel.open\"\n [attr.aria-labelledby]=\"getAccordionHeaderId(panel.templateId)\"\n >\n <div\n *ngIf=\"panel.open\"\n @toggle\n (@toggle.done)=\"collapsePanelOnAnimationDone(panel)\"\n class=\"clr-accordion-content\"\n >\n <div class=\"clr-accordion-inner-content\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n </div>\n</ng-container>\n", directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: CdsIconCustomTag, selector: "cds-icon" }], pipes: { "async": i4.AsyncPipe }, animations: stepAnimation, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
25230
25651
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrStepperPanel, decorators: [{
|
|
25231
25652
|
type: Component,
|
|
25232
|
-
args: [{ selector: 'clr-stepper-panel', host: { '[class.clr-accordion-panel]': 'true' }, changeDetection: ChangeDetectionStrategy.OnPush, animations: stepAnimation, providers: [IfExpandService, UNIQUE_ID_PROVIDER], template: "<ng-container *ngIf=\"panel | async; let panel\">\n <div *ngIf=\"panel.status !== AccordionStatus.Inactive\" aria-live=\"assertive\" class=\"clr-sr-only\">\n <ng-container *ngIf=\"panel.status === AccordionStatus.Error\">{{commonStrings.keys.danger}}</ng-container>\n </div>\n\n <div
|
|
25653
|
+
args: [{ selector: 'clr-stepper-panel', host: { '[class.clr-accordion-panel]': 'true' }, changeDetection: ChangeDetectionStrategy.OnPush, animations: stepAnimation, providers: [IfExpandService, UNIQUE_ID_PROVIDER], template: "<ng-container *ngIf=\"panel | async; let panel\">\n <div *ngIf=\"panel.status !== AccordionStatus.Inactive\" aria-live=\"assertive\" class=\"clr-sr-only\">\n <ng-container *ngIf=\"panel.status === AccordionStatus.Error\">{{commonStrings.keys.danger}}</ng-container>\n </div>\n\n <div [ngClass]=\"getPanelStateClasses(panel)\">\n <div class=\"clr-accordion-header\">\n <button\n type=\"button\"\n class=\"clr-accordion-header-button\"\n (click)=\"togglePanel()\"\n [id]=\"getAccordionHeaderId(panel.templateId)\"\n [disabled]=\"isAccordion && panel.disabled\"\n [attr.aria-disabled]=\"!isAccordion && panel.disabled\"\n [attr.aria-controls]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-expanded]=\"panel.open\"\n [class.clr-accordion-header-has-description]=\"(accordionDescription.changes | async)?.length || accordionDescription.length\"\n #headerButton\n >\n <span class=\"clr-sr-only\">\n <ng-container *ngIf=\"panel.status === AccordionStatus.Error\">{{commonStrings.keys.danger}}</ng-container>\n <ng-container *ngIf=\"panel.status === AccordionStatus.Complete\">{{commonStrings.keys.success}}</ng-container>\n </span>\n <span class=\"clr-accordion-status\">\n <cds-icon shape=\"angle\" direction=\"right\" class=\"clr-accordion-angle\"></cds-icon>\n <span class=\"clr-accordion-number\"></span>\n <cds-icon status=\"danger\" shape=\"exclamation-circle\" class=\"clr-accordion-error-icon\"></cds-icon>\n <cds-icon status=\"success\" shape=\"check-circle\" class=\"clr-accordion-complete-icon\"></cds-icon>\n </span>\n <ng-content select=\"clr-accordion-title, clr-step-title\"></ng-content>\n <ng-content select=\"clr-accordion-description, clr-step-description\"></ng-content>\n </button>\n </div>\n <div\n @skipInitialRender\n role=\"region\"\n [id]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-hidden]=\"!panel.open\"\n [attr.aria-labelledby]=\"getAccordionHeaderId(panel.templateId)\"\n >\n <div\n *ngIf=\"panel.open\"\n @toggle\n (@toggle.done)=\"collapsePanelOnAnimationDone(panel)\"\n class=\"clr-accordion-content\"\n >\n <div class=\"clr-accordion-inner-content\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n </div>\n</ng-container>\n" }]
|
|
25233
25654
|
}], ctorParameters: function () {
|
|
25234
25655
|
return [{ type: undefined, decorators: [{
|
|
25235
25656
|
type: Inject,
|
|
@@ -25545,7 +25966,7 @@ ClrProgressBar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version:
|
|
|
25545
25966
|
ClrProgressBar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: ClrProgressBar, selector: "clr-progress-bar", inputs: { id: "id", max: ["clrMax", "max"], displayval: ["clrDisplayval", "displayval"], value: ["clrValue", "value"], clrLabeled: "clrLabeled", clrFade: "clrFade", clrLoop: "clrLoop", clrSuccess: "clrSuccess", clrDanger: "clrDanger", clrFlash: "clrFlash", clrFlashDanger: "clrFlashDanger" }, host: { properties: { "attr.id": "this.externalId", "class.progress": "this.progressClass", "class.labeled": "this.labeledClass", "class.progress-fade": "this.fadeClass", "class.loop": "this.loopClass", "class.success": "this.successClass", "class.danger": "this.dangerClass", "class.flash": "this.flashClass", "class.flash-danger": "this.flashDangerClass" } }, ngImport: i0, template: `
|
|
25546
25967
|
<progress [id]="id" [attr.max]="max" [attr.value]="value" [attr.data-displayval]="displayValue"></progress>
|
|
25547
25968
|
<span *ngIf="displayStringValue()">{{ displayValue }}</span>
|
|
25548
|
-
`, isInline: true, directives: [{ type:
|
|
25969
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
25549
25970
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrProgressBar, decorators: [{
|
|
25550
25971
|
type: Component,
|
|
25551
25972
|
args: [{
|
|
@@ -25823,7 +26244,7 @@ ClrTimelineStep.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
|
|
|
25823
26244
|
<ng-template #processing>
|
|
25824
26245
|
<clr-spinner clrMedium [attr.aria-label]="iconAriaLabel"></clr-spinner>
|
|
25825
26246
|
</ng-template>
|
|
25826
|
-
`, isInline: true, components: [{ type: ClrSpinner, selector: "clr-spinner", inputs: ["clrInline", "clrInverse", "clrSmall", "clrMedium"] }], directives: [{ type:
|
|
26247
|
+
`, isInline: true, components: [{ type: ClrSpinner, selector: "clr-spinner", inputs: ["clrInline", "clrInverse", "clrSmall", "clrMedium"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
25827
26248
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrTimelineStep, decorators: [{
|
|
25828
26249
|
type: Component,
|
|
25829
26250
|
args: [{
|
|
@@ -25986,143 +26407,29 @@ ClarityModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version:
|
|
|
25986
26407
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClarityModule, decorators: [{
|
|
25987
26408
|
type: NgModule,
|
|
25988
26409
|
args: [{
|
|
25989
|
-
exports: [
|
|
25990
|
-
ClrEmphasisModule,
|
|
25991
|
-
ClrDataModule,
|
|
25992
|
-
ClrIconModule,
|
|
25993
|
-
ClrModalModule,
|
|
25994
|
-
ClrLoadingModule,
|
|
25995
|
-
ClrConditionalModule,
|
|
25996
|
-
ClrFocusTrapModule,
|
|
25997
|
-
ClrFocusOnViewInitModule,
|
|
25998
|
-
ClrButtonModule,
|
|
25999
|
-
ClrFormsModule,
|
|
26000
|
-
ClrLayoutModule,
|
|
26001
|
-
ClrPopoverModule,
|
|
26002
|
-
ClrWizardModule,
|
|
26003
|
-
ClrDragAndDropModule,
|
|
26004
|
-
ClrStepperModule,
|
|
26005
|
-
ClrSpinnerModule,
|
|
26006
|
-
ClrProgressBarModule,
|
|
26007
|
-
ClrPopoverModuleNext,
|
|
26008
|
-
ClrTimelineModule,
|
|
26009
|
-
],
|
|
26010
|
-
}]
|
|
26011
|
-
}] });
|
|
26012
|
-
|
|
26013
|
-
/*
|
|
26014
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
26015
|
-
* This software is released under MIT license.
|
|
26016
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26017
|
-
*/
|
|
26018
|
-
|
|
26019
|
-
/*
|
|
26020
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
26021
|
-
* This software is released under MIT license.
|
|
26022
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26023
|
-
*/
|
|
26024
|
-
|
|
26025
|
-
/*
|
|
26026
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
26027
|
-
* This software is released under MIT license.
|
|
26028
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26029
|
-
*/
|
|
26030
|
-
|
|
26031
|
-
/*
|
|
26032
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
26033
|
-
* This software is released under MIT license.
|
|
26034
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26035
|
-
*/
|
|
26036
|
-
|
|
26037
|
-
/*
|
|
26038
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
26039
|
-
* This software is released under MIT license.
|
|
26040
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26041
|
-
*/
|
|
26042
|
-
|
|
26043
|
-
/*
|
|
26044
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
26045
|
-
* This software is released under MIT license.
|
|
26046
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26047
|
-
*/
|
|
26048
|
-
|
|
26049
|
-
/*
|
|
26050
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
26051
|
-
* This software is released under MIT license.
|
|
26052
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26053
|
-
*/
|
|
26054
|
-
|
|
26055
|
-
/*
|
|
26056
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
26057
|
-
* This software is released under MIT license.
|
|
26058
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26059
|
-
*/
|
|
26060
|
-
|
|
26061
|
-
/*
|
|
26062
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
26063
|
-
* This software is released under MIT license.
|
|
26064
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26065
|
-
*/
|
|
26066
|
-
|
|
26067
|
-
/*
|
|
26068
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
26069
|
-
* This software is released under MIT license.
|
|
26070
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26071
|
-
*/
|
|
26072
|
-
|
|
26073
|
-
/*
|
|
26074
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
26075
|
-
* This software is released under MIT license.
|
|
26076
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26077
|
-
*/
|
|
26078
|
-
|
|
26079
|
-
/*
|
|
26080
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
26081
|
-
* This software is released under MIT license.
|
|
26082
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26083
|
-
*/
|
|
26084
|
-
|
|
26085
|
-
/*
|
|
26086
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
26087
|
-
* This software is released under MIT license.
|
|
26088
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26089
|
-
*/
|
|
26090
|
-
|
|
26091
|
-
/*
|
|
26092
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
26093
|
-
* This software is released under MIT license.
|
|
26094
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26095
|
-
*/
|
|
26096
|
-
|
|
26097
|
-
/*
|
|
26098
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
26099
|
-
* This software is released under MIT license.
|
|
26100
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26101
|
-
*/
|
|
26102
|
-
|
|
26103
|
-
/*
|
|
26104
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
26105
|
-
* This software is released under MIT license.
|
|
26106
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26107
|
-
*/
|
|
26108
|
-
|
|
26109
|
-
/*
|
|
26110
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
26111
|
-
* This software is released under MIT license.
|
|
26112
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26113
|
-
*/
|
|
26114
|
-
|
|
26115
|
-
/*
|
|
26116
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
26117
|
-
* This software is released under MIT license.
|
|
26118
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26119
|
-
*/
|
|
26120
|
-
|
|
26121
|
-
/*
|
|
26122
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
26123
|
-
* This software is released under MIT license.
|
|
26124
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26125
|
-
*/
|
|
26410
|
+
exports: [
|
|
26411
|
+
ClrEmphasisModule,
|
|
26412
|
+
ClrDataModule,
|
|
26413
|
+
ClrIconModule,
|
|
26414
|
+
ClrModalModule,
|
|
26415
|
+
ClrLoadingModule,
|
|
26416
|
+
ClrConditionalModule,
|
|
26417
|
+
ClrFocusTrapModule,
|
|
26418
|
+
ClrFocusOnViewInitModule,
|
|
26419
|
+
ClrButtonModule,
|
|
26420
|
+
ClrFormsModule,
|
|
26421
|
+
ClrLayoutModule,
|
|
26422
|
+
ClrPopoverModule,
|
|
26423
|
+
ClrWizardModule,
|
|
26424
|
+
ClrDragAndDropModule,
|
|
26425
|
+
ClrStepperModule,
|
|
26426
|
+
ClrSpinnerModule,
|
|
26427
|
+
ClrProgressBarModule,
|
|
26428
|
+
ClrPopoverModuleNext,
|
|
26429
|
+
ClrTimelineModule,
|
|
26430
|
+
],
|
|
26431
|
+
}]
|
|
26432
|
+
}] });
|
|
26126
26433
|
|
|
26127
26434
|
/*
|
|
26128
26435
|
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
@@ -26189,16 +26496,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
26189
26496
|
* This software is released under MIT license.
|
|
26190
26497
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26191
26498
|
*/
|
|
26192
|
-
const CLR_MENU_POSITIONS = [
|
|
26193
|
-
'bottom-left',
|
|
26194
|
-
'bottom-right',
|
|
26195
|
-
'top-left',
|
|
26196
|
-
'top-right',
|
|
26197
|
-
'left-bottom',
|
|
26198
|
-
'left-top',
|
|
26199
|
-
'right-bottom',
|
|
26200
|
-
'right-top',
|
|
26201
|
-
];
|
|
26202
26499
|
|
|
26203
26500
|
/*
|
|
26204
26501
|
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
@@ -26229,14 +26526,6 @@ const CLR_MENU_POSITIONS = [
|
|
|
26229
26526
|
* This software is released under MIT license.
|
|
26230
26527
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26231
26528
|
*/
|
|
26232
|
-
function collapse() {
|
|
26233
|
-
'use strict';
|
|
26234
|
-
return [
|
|
26235
|
-
state('true', style({ height: 0, 'overflow-y': 'hidden' })),
|
|
26236
|
-
transition('true => false', [animate(defaultAnimationTiming, style({ height: '*', 'overflow-y': 'hidden' }))]),
|
|
26237
|
-
transition('false => true', [style({ height: '*', 'overflow-y': 'hidden' }), animate(defaultAnimationTiming)]),
|
|
26238
|
-
];
|
|
26239
|
-
}
|
|
26240
26529
|
|
|
26241
26530
|
/*
|
|
26242
26531
|
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
@@ -26249,12 +26538,6 @@ function collapse() {
|
|
|
26249
26538
|
* This software is released under MIT license.
|
|
26250
26539
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26251
26540
|
*/
|
|
26252
|
-
function fade(opacity = 1) {
|
|
26253
|
-
return [
|
|
26254
|
-
transition('void => *', [style({ opacity: 0 }), animate(defaultAnimationTiming, style({ opacity: opacity }))]),
|
|
26255
|
-
transition('* => void', [animate(defaultAnimationTiming, style({ opacity: 0 }))]),
|
|
26256
|
-
];
|
|
26257
|
-
}
|
|
26258
26541
|
|
|
26259
26542
|
/*
|
|
26260
26543
|
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
@@ -26267,28 +26550,6 @@ function fade(opacity = 1) {
|
|
|
26267
26550
|
* This software is released under MIT license.
|
|
26268
26551
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26269
26552
|
*/
|
|
26270
|
-
function fadeSlide(direction) {
|
|
26271
|
-
let transform = null;
|
|
26272
|
-
if (direction === 'up') {
|
|
26273
|
-
transform = 'translate(0, 25%)';
|
|
26274
|
-
}
|
|
26275
|
-
else if (direction === 'down') {
|
|
26276
|
-
transform = 'translate(0, -25%)';
|
|
26277
|
-
}
|
|
26278
|
-
else if (direction === 'left') {
|
|
26279
|
-
transform = 'translate(25%, 0)';
|
|
26280
|
-
}
|
|
26281
|
-
else if (direction === 'right') {
|
|
26282
|
-
transform = 'translate(-25%, 0)';
|
|
26283
|
-
}
|
|
26284
|
-
else {
|
|
26285
|
-
throw new Error('Unknown direction ' + direction + ' for slide animation.');
|
|
26286
|
-
}
|
|
26287
|
-
return [
|
|
26288
|
-
transition('void => *', [style({ opacity: 0, transform: transform }), animate(defaultAnimationTiming)]),
|
|
26289
|
-
transition('* => void', [animate(defaultAnimationTiming, style({ opacity: 0, transform: transform }))]),
|
|
26290
|
-
];
|
|
26291
|
-
}
|
|
26292
26553
|
|
|
26293
26554
|
/*
|
|
26294
26555
|
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
@@ -26301,28 +26562,6 @@ function fadeSlide(direction) {
|
|
|
26301
26562
|
* This software is released under MIT license.
|
|
26302
26563
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26303
26564
|
*/
|
|
26304
|
-
function slide(direction) {
|
|
26305
|
-
let transform = null;
|
|
26306
|
-
if (direction === 'up') {
|
|
26307
|
-
transform = 'translate(0, 25%)';
|
|
26308
|
-
}
|
|
26309
|
-
else if (direction === 'down') {
|
|
26310
|
-
transform = 'translate(0, -25%)';
|
|
26311
|
-
}
|
|
26312
|
-
else if (direction === 'left') {
|
|
26313
|
-
transform = 'translate(25%, 0)';
|
|
26314
|
-
}
|
|
26315
|
-
else if (direction === 'right') {
|
|
26316
|
-
transform = 'translate(-25%, 0)';
|
|
26317
|
-
}
|
|
26318
|
-
else {
|
|
26319
|
-
throw new Error('Unknown direction ' + direction + ' for slide animation.');
|
|
26320
|
-
}
|
|
26321
|
-
return [
|
|
26322
|
-
transition('void => *', [style({ transform: transform }), animate(defaultAnimationTiming)]),
|
|
26323
|
-
transition('* => void', [animate(defaultAnimationTiming, style({ transform: transform }))]),
|
|
26324
|
-
];
|
|
26325
|
-
}
|
|
26326
26565
|
|
|
26327
26566
|
/*
|
|
26328
26567
|
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
@@ -26359,160 +26598,6 @@ function slide(direction) {
|
|
|
26359
26598
|
* This software is released under MIT license.
|
|
26360
26599
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26361
26600
|
*/
|
|
26362
|
-
var ClrAriaLivePoliteness;
|
|
26363
|
-
(function (ClrAriaLivePoliteness) {
|
|
26364
|
-
ClrAriaLivePoliteness["off"] = "off";
|
|
26365
|
-
ClrAriaLivePoliteness["polite"] = "polite";
|
|
26366
|
-
ClrAriaLivePoliteness["assertive"] = "assertive";
|
|
26367
|
-
})(ClrAriaLivePoliteness || (ClrAriaLivePoliteness = {}));
|
|
26368
|
-
/**
|
|
26369
|
-
* Time in milliseconds before inserting the content into the container
|
|
26370
|
-
*/
|
|
26371
|
-
const ARIA_LIVE_TICK = 100;
|
|
26372
|
-
/**
|
|
26373
|
-
* @deprecated
|
|
26374
|
-
*
|
|
26375
|
-
* -- ClrAriaLiveService is deprecated in 5.0 to be removed in 6.0 --
|
|
26376
|
-
* Please consider using the LiveAnnouncer in the Angular Material CDK
|
|
26377
|
-
* if your project needs this functionality.
|
|
26378
|
-
* More info: https://material.angular.io/cdk/a11y/overview#example-1
|
|
26379
|
-
*
|
|
26380
|
-
* This service handle `aria-live` accessibility attribute. The issue is that you need
|
|
26381
|
-
* to have the DOM Element with attribute `aria-live` before you could insert content
|
|
26382
|
-
* and SR (Screen Reader) pick the change and announce it.
|
|
26383
|
-
*
|
|
26384
|
-
* ```typescript
|
|
26385
|
-
* import { ClrAriaLiveService } from 'src/clr-angular/utils/a11y/aria-live.service';
|
|
26386
|
-
*
|
|
26387
|
-
* @Component({
|
|
26388
|
-
* selector: 'clr-demo-component',
|
|
26389
|
-
* providers: [ClrAriaLiveService],
|
|
26390
|
-
* template: `
|
|
26391
|
-
* <ng-content></ng-content>
|
|
26392
|
-
* `,
|
|
26393
|
-
* })
|
|
26394
|
-
* export class DemoComponent {
|
|
26395
|
-
* constructor(ariaLiveService: ClrAriaLiveService) {}
|
|
26396
|
-
*
|
|
26397
|
-
* public actionThatWillTriggerChange() {
|
|
26398
|
-
* this.ariaLiveService.announce('message that I want to announce to SR');
|
|
26399
|
-
* }
|
|
26400
|
-
* }
|
|
26401
|
-
* ```
|
|
26402
|
-
*
|
|
26403
|
-
*/
|
|
26404
|
-
class ClrAriaLiveService {
|
|
26405
|
-
constructor(ngZone, _document, platformId) {
|
|
26406
|
-
this.ngZone = ngZone;
|
|
26407
|
-
this.platformId = platformId;
|
|
26408
|
-
this._id = `clr-aria-live-element-${uniqueIdFactory()}`;
|
|
26409
|
-
this.document = _document;
|
|
26410
|
-
}
|
|
26411
|
-
/**
|
|
26412
|
-
* get access to the internal HTML `id` that gonna be used for the AriaLive container.
|
|
26413
|
-
* @return ID of the DOM Element as string.
|
|
26414
|
-
*/
|
|
26415
|
-
get id() {
|
|
26416
|
-
return this._id;
|
|
26417
|
-
}
|
|
26418
|
-
/**
|
|
26419
|
-
* Append text content inside the AriaLive Container. This method will check if the
|
|
26420
|
-
* DOM Element is existing if not it will create one for us and the will apply the text.
|
|
26421
|
-
*
|
|
26422
|
-
* ```typescript
|
|
26423
|
-
* this.ariaLiveService.announce(this.el.nativeElement);
|
|
26424
|
-
* // or
|
|
26425
|
-
* this.ariaLiveService.announce('Message to announce to SR');
|
|
26426
|
-
* ```
|
|
26427
|
-
*
|
|
26428
|
-
* @remark
|
|
26429
|
-
* When second argument is `AriaLivePoliteness.off` we won't create aria container or update it.
|
|
26430
|
-
* The reason for that is that we don't want to do additional work if the SR will ignore it.
|
|
26431
|
-
*
|
|
26432
|
-
* @param message - This could be simple string or HTMLElement
|
|
26433
|
-
* @param politeness - 'polite', 'assertive' or 'off'
|
|
26434
|
-
*/
|
|
26435
|
-
announce(message, politeness = ClrAriaLivePoliteness.polite) {
|
|
26436
|
-
if (politeness === ClrAriaLivePoliteness.off) {
|
|
26437
|
-
return;
|
|
26438
|
-
}
|
|
26439
|
-
if (!this.ariaLiveElement && isPlatformBrowser(this.platformId)) {
|
|
26440
|
-
this.ariaLiveElement = this.createContainer();
|
|
26441
|
-
}
|
|
26442
|
-
message = typeof message !== 'string' && isPlatformBrowser(this.platformId) ? message.textContent : message;
|
|
26443
|
-
// when there is no message do NOTHING!
|
|
26444
|
-
if (!message) {
|
|
26445
|
-
return;
|
|
26446
|
-
}
|
|
26447
|
-
this.ariaLiveElement.setAttribute('aria-live', politeness);
|
|
26448
|
-
// This 100ms timeout is necessary for some browser + screen-reader combinations:
|
|
26449
|
-
// - Both JAWS and NVDA over IE11 will not announce anything without a non-zero timeout.
|
|
26450
|
-
// - With Chrome and IE11 with NVDA or JAWS, a repeated (identical) message won't be read a
|
|
26451
|
-
// second time without clearing and then using a non-zero delay.
|
|
26452
|
-
// (using JAWS 17 at time of this writing).
|
|
26453
|
-
this.ngZone.runOutsideAngular(() => {
|
|
26454
|
-
// This clearTimeout will stop all older messages from announcing
|
|
26455
|
-
// in the case where the messages are comming too fast we gonna try to append only
|
|
26456
|
-
// the last one. That's what the SR will try to do anyway.
|
|
26457
|
-
clearTimeout(this.previousTimeout);
|
|
26458
|
-
this.previousTimeout = setTimeout(() => {
|
|
26459
|
-
this.ariaLiveElement.textContent = message;
|
|
26460
|
-
}, ARIA_LIVE_TICK);
|
|
26461
|
-
});
|
|
26462
|
-
}
|
|
26463
|
-
/**
|
|
26464
|
-
* onDestroy life cycle - must stop all active setTimeouts and remove the AriaLive
|
|
26465
|
-
* container from the document.
|
|
26466
|
-
*/
|
|
26467
|
-
ngOnDestroy() {
|
|
26468
|
-
clearTimeout(this.previousTimeout);
|
|
26469
|
-
if (isPlatformBrowser(this.platformId) && this.ariaLiveElement) {
|
|
26470
|
-
this.document.body.removeChild(this.ariaLiveElement);
|
|
26471
|
-
this.ariaLiveElement = null;
|
|
26472
|
-
}
|
|
26473
|
-
}
|
|
26474
|
-
/**
|
|
26475
|
-
* Create AriaLive DOM element as a last child of the document.
|
|
26476
|
-
* After the element is created, we gonna apply Clarity class to hide it from
|
|
26477
|
-
* the screen and set the `aria-live` politness.
|
|
26478
|
-
*
|
|
26479
|
-
* `clr-sr-only` is the CSS class that is used to hide the element from the screen.
|
|
26480
|
-
*
|
|
26481
|
-
* @remark
|
|
26482
|
-
* Calling this method multiple times will create multiple DOM Elements, that
|
|
26483
|
-
* won't be tracked and will be GC after the service is destroyed.
|
|
26484
|
-
*
|
|
26485
|
-
* @return AriaLive container as HTMLElement
|
|
26486
|
-
*
|
|
26487
|
-
*/
|
|
26488
|
-
createContainer() {
|
|
26489
|
-
const ariaLiveElement = this.document.createElement('div');
|
|
26490
|
-
ariaLiveElement.setAttribute('id', this.id);
|
|
26491
|
-
// Use clarity screen reader class to hide the dom element
|
|
26492
|
-
// and fix the scrollbar shake
|
|
26493
|
-
ariaLiveElement.classList.add('clr-sr-only');
|
|
26494
|
-
ariaLiveElement.setAttribute('aria-atomic', 'true');
|
|
26495
|
-
ariaLiveElement.setAttribute('aria-live', ClrAriaLivePoliteness.polite);
|
|
26496
|
-
this.document.body.appendChild(ariaLiveElement);
|
|
26497
|
-
return ariaLiveElement;
|
|
26498
|
-
}
|
|
26499
|
-
}
|
|
26500
|
-
ClrAriaLiveService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrAriaLiveService, deps: [{ token: i0.NgZone }, { token: DOCUMENT }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
26501
|
-
ClrAriaLiveService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrAriaLiveService, providedIn: 'root' });
|
|
26502
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrAriaLiveService, decorators: [{
|
|
26503
|
-
type: Injectable,
|
|
26504
|
-
args: [{
|
|
26505
|
-
providedIn: 'root',
|
|
26506
|
-
}]
|
|
26507
|
-
}], ctorParameters: function () {
|
|
26508
|
-
return [{ type: i0.NgZone }, { type: undefined, decorators: [{
|
|
26509
|
-
type: Inject,
|
|
26510
|
-
args: [DOCUMENT]
|
|
26511
|
-
}] }, { type: undefined, decorators: [{
|
|
26512
|
-
type: Inject,
|
|
26513
|
-
args: [PLATFORM_ID]
|
|
26514
|
-
}] }];
|
|
26515
|
-
} });
|
|
26516
26601
|
|
|
26517
26602
|
/*
|
|
26518
26603
|
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
@@ -26525,12 +26610,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
26525
26610
|
* This software is released under MIT license.
|
|
26526
26611
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26527
26612
|
*/
|
|
26613
|
+
const CLR_MENU_POSITIONS = [
|
|
26614
|
+
'bottom-left',
|
|
26615
|
+
'bottom-right',
|
|
26616
|
+
'top-left',
|
|
26617
|
+
'top-right',
|
|
26618
|
+
'left-bottom',
|
|
26619
|
+
'left-top',
|
|
26620
|
+
'right-bottom',
|
|
26621
|
+
'right-top',
|
|
26622
|
+
];
|
|
26528
26623
|
|
|
26529
26624
|
/*
|
|
26530
26625
|
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
26531
26626
|
* This software is released under MIT license.
|
|
26532
26627
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26533
|
-
*
|
|
26534
26628
|
*/
|
|
26535
26629
|
|
|
26536
26630
|
/*
|
|
@@ -26604,3 +26698,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
26604
26698
|
*/
|
|
26605
26699
|
|
|
26606
26700
|
export { CLR_ALERT_DIRECTIVES, CLR_BUTTON_GROUP_DIRECTIVES, CLR_DATAGRID_DIRECTIVES, CLR_DATEPICKER_DIRECTIVES, CLR_DRAG_AND_DROP_DIRECTIVES, CLR_DROPDOWN_DIRECTIVES, CLR_ICON_DIRECTIVES, CLR_LAYOUT_DIRECTIVES, CLR_LOADING_BUTTON_DIRECTIVES, CLR_LOADING_DIRECTIVES, CLR_MENU_POSITIONS, CLR_MODAL_DIRECTIVES, CLR_NAVIGATION_DIRECTIVES, CLR_PROGRESS_BAR_DIRECTIVES, CLR_SIGNPOST_DIRECTIVES, CLR_SPINNER_DIRECTIVES, CLR_STACK_VIEW_DIRECTIVES, CLR_TABS_DIRECTIVES, CLR_TOOLTIP_DIRECTIVES, CLR_TREE_VIEW_DIRECTIVES, CLR_VERTICAL_NAV_DIRECTIVES, CLR_WIZARD_DIRECTIVES, CONDITIONAL_DIRECTIVES, CUSTOM_BUTTON_TYPES, CdsIconCustomTag, ClarityModule, ClrAbstractContainer, ClrAccordion, ClrAccordionContent, ClrAccordionDescription, ClrAccordionModule, ClrAccordionPanel, ClrAccordionTitle, ClrAlert, ClrAlertItem, ClrAlertModule, ClrAlertText, ClrAlerts, ClrAlertsPager, ClrAlignment, ClrAriaLivePoliteness, ClrAriaLiveService, ClrAxis, ClrButton, ClrButtonGroup, ClrButtonGroupModule, ClrButtonModule, ClrCalendar, ClrCheckbox, ClrCheckboxContainer, ClrCheckboxModule, ClrCheckboxWrapper, ClrCombobox, ClrComboboxContainer, ClrComboboxModule, ClrCommonFormsModule, ClrCommonStringsService, ClrConditionalModule, ClrControl, ClrControlContainer, ClrControlError, ClrControlHelper, ClrControlSuccess, ClrDataModule, ClrDatagrid, ClrDatagridActionBar, ClrDatagridActionOverflow, ClrDatagridCell, ClrDatagridColumn, ClrDatagridColumnSeparator, ClrDatagridColumnToggle, ClrDatagridColumnToggleButton, ClrDatagridColumnToggleTitle, ClrDatagridDetail, ClrDatagridDetailBody, ClrDatagridDetailHeader, ClrDatagridFilter, ClrDatagridFooter, ClrDatagridHideableColumn, ClrDatagridItems, ClrDatagridItemsTrackBy, ClrDatagridModule, ClrDatagridPageSize, ClrDatagridPagination, ClrDatagridPlaceholder, ClrDatagridRow, ClrDatagridRowDetail, ClrDatagridSortOrder, ClrDatalist, ClrDatalistContainer, ClrDatalistInput, ClrDatalistModule, ClrDateContainer, ClrDateInput, ClrDatepickerModule, ClrDatepickerViewManager, ClrDay, ClrDaypicker, ClrDragAndDropModule, ClrDragEvent, ClrDragHandle, ClrDraggable, ClrDraggableGhost, ClrDropdown, ClrDropdownItem, ClrDropdownMenu, ClrDropdownModule, ClrDropdownTrigger, ClrDroppable, ClrEmphasisModule, ClrExpandableAnimation, ClrFocusOnViewInit, ClrFocusOnViewInitModule, ClrForm, ClrFormLayout, ClrFormsModule, ClrHeader, ClrIconCustomTag, ClrIconModule, ClrIfActive, ClrIfDetail, ClrIfDragged, ClrIfError, ClrIfExpanded, ClrIfOpen, ClrIfSuccess, ClrInput, ClrInputContainer, ClrInputModule, ClrLabel, ClrLayout, ClrLayoutModule, ClrLoading, ClrLoadingButton, ClrLoadingButtonModule, ClrLoadingModule, ClrLoadingState, ClrMainContainer, ClrMainContainerModule, ClrModal, ClrModalBody, ClrModalModule, ClrMonthpicker, ClrNavLevel, ClrNavigationModule, ClrOption, ClrOptionItems, ClrOptionSelected, ClrOptions, ClrPassword, ClrPasswordContainer, ClrPasswordModule, ClrPopoverAnchor, ClrPopoverContent, ClrPopoverEventsService, ClrPopoverModule, ClrPopoverPositionService, ClrPopoverToggleService, ClrProgressBar, ClrProgressBarModule, ClrRadio, ClrRadioContainer, ClrRadioModule, ClrRadioWrapper, ClrRange, ClrRangeContainer, ClrRangeModule, ClrRecursiveForOf, ClrSelect, ClrSelectContainer, ClrSelectModule, ClrSelectedState, ClrSide, ClrSignpost, ClrSignpostContent, ClrSignpostModule, ClrSignpostTrigger, ClrSpinner, ClrSpinnerModule, ClrStackBlock, ClrStackContentInput, ClrStackHeader, ClrStackInput, ClrStackSelect, ClrStackView, ClrStackViewCustomTags, ClrStackViewModule, ClrStepButton, ClrStepButtonType, ClrStepper, ClrStepperModule, ClrStepperPanel, ClrTab, ClrTabContent, ClrTabLink, ClrTabOverflowContent, ClrTabs, ClrTabsModule, ClrTextarea, ClrTextareaContainer, ClrTextareaModule, ClrTimeline, ClrTimelineLayout, ClrTimelineModule, ClrTimelineStep, ClrTimelineStepDescription, ClrTimelineStepHeader, ClrTimelineStepState, ClrTimelineStepTitle, ClrTooltip, ClrTooltipContent, ClrTooltipModule, ClrTooltipTrigger, ClrTree, ClrTreeNode, ClrTreeNodeLink, ClrTreeViewModule, ClrVerticalNav, ClrVerticalNavGroup, ClrVerticalNavGroupChildren, ClrVerticalNavIcon, ClrVerticalNavLink, ClrVerticalNavModule, ClrWizard, ClrWizardButton, ClrWizardCustomTags, ClrWizardHeaderAction, ClrWizardModule, ClrWizardPage, ClrWizardPageButtons, ClrWizardPageHeaderActions, ClrWizardPageNavTitle, ClrWizardPageTitle, ClrWizardStepnav, ClrWizardStepnavItem, ClrYearpicker, DEFAULT_BUTTON_TYPES, DatagridNumericFilter, DatagridPropertyComparator, DatagridPropertyNumericFilter, DatagridPropertyStringFilter, DatagridStringFilter, EXPANDABLE_ANIMATION_DIRECTIVES, FOCUS_ON_VIEW_INIT, FOCUS_ON_VIEW_INIT_DIRECTIVES, IS_TOGGLE, IS_TOGGLE_PROVIDER, LoadingListener, MainContainerWillyWonka, NavDetectionOompaLoompa, TOGGLE_SERVICE, TOGGLE_SERVICE_PROVIDER, ToggleServiceFactory, WrappedFormControl, collapse, commonStringsDefault, fade, fadeSlide, isToggleFactory, slide, AccordionOompaLoompa as ÇlrAccordionOompaLoompa, AccordionWillyWonka as ÇlrAccordionWillyWonka, ActionableOompaLoompa as ÇlrActionableOompaLoompa, ActiveOompaLoompa as ÇlrActiveOompaLoompa, ClrFocusTrapModule as ÇlrClrFocusTrapModule, ClrPopoverCloseButton as ÇlrClrPopoverCloseButton, ClrPopoverModuleNext as ÇlrClrPopoverModuleNext, ClrPopoverOpenCloseButton as ÇlrClrPopoverOpenCloseButton, DatagridCellRenderer as ÇlrDatagridCellRenderer, DatagridDetailRegisterer as ÇlrDatagridDetailRegisterer, DatagridHeaderRenderer as ÇlrDatagridHeaderRenderer, DatagridMainRenderer as ÇlrDatagridMainRenderer, DatagridRowRenderer as ÇlrDatagridRowRenderer, DatagridWillyWonka as ÇlrDatagridWillyWonka, ExpandableOompaLoompa as ÇlrExpandableOompaLoompa, FocusTrapDirective as ÇlrFocusTrapDirective, FocusTrapTracker as ÇlrFocusTrapTracker, StepperOompaLoompa as ÇlrStepperOompaLoompa, StepperWillyWonka as ÇlrStepperWillyWonka, TabsWillyWonka as ÇlrTabsWillyWonka, WrappedCell as ÇlrWrappedCell, WrappedColumn as ÇlrWrappedColumn, WrappedRow as ÇlrWrappedRow };
|
|
26701
|
+
//# sourceMappingURL=clr-angular.mjs.map
|