@clr/angular 13.0.0 → 13.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/button/button-loading/loading-button.mjs +6 -3
- package/esm2020/popover/common/abstract-popover.mjs +16 -36
- package/esm2020/utils/i18n/common-strings.default.mjs +5 -2
- package/esm2020/utils/i18n/common-strings.interface.mjs +1 -1
- package/esm2020/wizard/wizard-stepnav-item.mjs +14 -8
- package/fesm2015/clr-angular.mjs +601 -610
- package/fesm2015/clr-angular.mjs.map +1 -1
- package/fesm2020/clr-angular.mjs +607 -616
- package/fesm2020/clr-angular.mjs.map +1 -1
- package/package.json +2 -2
- package/popover/common/abstract-popover.d.ts +1 -6
- package/utils/i18n/common-strings.interface.d.ts +8 -0
- package/wizard/wizard-stepnav-item.d.ts +3 -1
package/fesm2020/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';
|
|
@@ -1234,7 +1234,7 @@ ClrButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13
|
|
|
1234
1234
|
<ng-content></ng-content>
|
|
1235
1235
|
</button>
|
|
1236
1236
|
</ng-template>
|
|
1237
|
-
`, isInline: true, directives: [{ type:
|
|
1237
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
1238
1238
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrButton, decorators: [{
|
|
1239
1239
|
type: Component,
|
|
1240
1240
|
args: [{
|
|
@@ -1371,7 +1371,7 @@ ClrPopoverPositions['left-bottom'] = {
|
|
|
1371
1371
|
};
|
|
1372
1372
|
|
|
1373
1373
|
/*
|
|
1374
|
-
* Copyright (c) 2016-
|
|
1374
|
+
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
1375
1375
|
* This software is released under MIT license.
|
|
1376
1376
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
1377
1377
|
*/
|
|
@@ -1457,6 +1457,9 @@ const commonStringsDefault = {
|
|
|
1457
1457
|
dategridExpandableEndOf: 'End of',
|
|
1458
1458
|
dategridExpandableRowContent: 'Expandable row content',
|
|
1459
1459
|
dategridExpandableRowsHelperText: `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`,
|
|
1460
|
+
// Wizard
|
|
1461
|
+
wizardStepSuccess: 'Completed',
|
|
1462
|
+
wizardStepError: 'Error',
|
|
1460
1463
|
};
|
|
1461
1464
|
|
|
1462
1465
|
/*
|
|
@@ -1605,7 +1608,7 @@ ClrButtonGroup.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
|
|
|
1605
1608
|
ClrPopoverToggleService,
|
|
1606
1609
|
ClrPopoverEventsService,
|
|
1607
1610
|
ClrPopoverPositionService,
|
|
1608
|
-
], 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:
|
|
1611
|
+
], 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"] }] });
|
|
1609
1612
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrButtonGroup, decorators: [{
|
|
1610
1613
|
type: Component,
|
|
1611
1614
|
args: [{ selector: 'clr-button-group', providers: [
|
|
@@ -1647,10 +1650,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
1647
1650
|
}] });
|
|
1648
1651
|
|
|
1649
1652
|
/*
|
|
1650
|
-
* Copyright (c) 2016-
|
|
1653
|
+
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
1651
1654
|
* This software is released under MIT license.
|
|
1652
1655
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
1653
1656
|
*/
|
|
1657
|
+
// minimum width to fit loading spinner
|
|
1658
|
+
const MIN_BUTTON_WIDTH = 42;
|
|
1654
1659
|
class ClrLoadingButton {
|
|
1655
1660
|
constructor(el, renderer) {
|
|
1656
1661
|
this.el = el;
|
|
@@ -1691,7 +1696,8 @@ class ClrLoadingButton {
|
|
|
1691
1696
|
setExplicitButtonWidth() {
|
|
1692
1697
|
if (this.el.nativeElement && this.el.nativeElement.getBoundingClientRect) {
|
|
1693
1698
|
const boundingClientRect = this.el.nativeElement.getBoundingClientRect();
|
|
1694
|
-
|
|
1699
|
+
const width = Math.max(MIN_BUTTON_WIDTH, boundingClientRect.width);
|
|
1700
|
+
this.renderer.setStyle(this.el.nativeElement, 'width', `${width}px`);
|
|
1695
1701
|
}
|
|
1696
1702
|
}
|
|
1697
1703
|
}
|
|
@@ -1712,7 +1718,7 @@ ClrLoadingButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versi
|
|
|
1712
1718
|
<ng-content></ng-content>
|
|
1713
1719
|
</span>
|
|
1714
1720
|
</ng-container>
|
|
1715
|
-
`, isInline: true, directives: [{ type:
|
|
1721
|
+
`, isInline: true, directives: [{ type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], animations: [
|
|
1716
1722
|
trigger('defaultButton', [
|
|
1717
1723
|
transition(':enter', [style({ opacity: 0 }), animate('200ms 100ms ease-in', style({ opacity: 1 }))]),
|
|
1718
1724
|
// TODO: see if we can get leave animation to work before spinner's enter animation
|
|
@@ -2657,7 +2663,7 @@ ClrControlContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
|
|
|
2657
2663
|
<ng-content select="clr-control-error" *ngIf="showInvalid"></ng-content>
|
|
2658
2664
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
2659
2665
|
</div>
|
|
2660
|
-
`, isInline: true, directives: [{ type:
|
|
2666
|
+
`, 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" }] });
|
|
2661
2667
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrControlContainer, decorators: [{
|
|
2662
2668
|
type: Component,
|
|
2663
2669
|
args: [{
|
|
@@ -3033,7 +3039,7 @@ ClrCheckboxWrapper.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
|
|
|
3033
3039
|
<ng-content select="[clrCheckbox],[clrToggle]"></ng-content>
|
|
3034
3040
|
<ng-content select="label"></ng-content>
|
|
3035
3041
|
<label *ngIf="!label"></label>
|
|
3036
|
-
`, isInline: true, directives: [{ type:
|
|
3042
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrLabel, selector: "label", inputs: ["for"] }] });
|
|
3037
3043
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrCheckboxWrapper, decorators: [{
|
|
3038
3044
|
type: Component,
|
|
3039
3045
|
args: [{
|
|
@@ -3049,7 +3055,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
3049
3055
|
},
|
|
3050
3056
|
providers: [ControlIdService, IS_TOGGLE_PROVIDER],
|
|
3051
3057
|
}]
|
|
3052
|
-
}], ctorParameters: function () { return [{ type: i3
|
|
3058
|
+
}], ctorParameters: function () { return [{ type: i3.BehaviorSubject, decorators: [{
|
|
3053
3059
|
type: Inject,
|
|
3054
3060
|
args: [IS_TOGGLE]
|
|
3055
3061
|
}] }]; }, propDecorators: { label: [{
|
|
@@ -3159,7 +3165,7 @@ ClrCheckboxContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
3159
3165
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
3160
3166
|
</div>
|
|
3161
3167
|
</div>
|
|
3162
|
-
`, isInline: true, directives: [{ type:
|
|
3168
|
+
`, 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" }] });
|
|
3163
3169
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrCheckboxContainer, decorators: [{
|
|
3164
3170
|
type: Component,
|
|
3165
3171
|
args: [{
|
|
@@ -4887,7 +4893,7 @@ class ClrCalendar {
|
|
|
4887
4893
|
}
|
|
4888
4894
|
}
|
|
4889
4895
|
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 });
|
|
4890
|
-
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:
|
|
4896
|
+
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"] }] });
|
|
4891
4897
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrCalendar, decorators: [{
|
|
4892
4898
|
type: Component,
|
|
4893
4899
|
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" }]
|
|
@@ -5097,7 +5103,7 @@ ClrMonthpicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
|
|
|
5097
5103
|
>
|
|
5098
5104
|
{{ month }}
|
|
5099
5105
|
</button>
|
|
5100
|
-
`, isInline: true, directives: [{ type:
|
|
5106
|
+
`, isInline: true, directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
5101
5107
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrMonthpicker, decorators: [{
|
|
5102
5108
|
type: Component,
|
|
5103
5109
|
args: [{
|
|
@@ -5350,7 +5356,7 @@ ClrYearpicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
|
|
|
5350
5356
|
{{ year }}
|
|
5351
5357
|
</button>
|
|
5352
5358
|
</div>
|
|
5353
|
-
`, isInline: true, directives: [{ type: CdsIconCustomTag, selector: "cds-icon" }, { type:
|
|
5359
|
+
`, isInline: true, directives: [{ type: CdsIconCustomTag, selector: "cds-icon" }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
5354
5360
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrYearpicker, decorators: [{
|
|
5355
5361
|
type: Component,
|
|
5356
5362
|
args: [{
|
|
@@ -5505,7 +5511,7 @@ class ClrDatepickerViewManager {
|
|
|
5505
5511
|
}
|
|
5506
5512
|
}
|
|
5507
5513
|
ClrDatepickerViewManager.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDatepickerViewManager, deps: [{ token: ViewManagerService }], target: i0.ɵɵFactoryTarget.Component });
|
|
5508
|
-
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:
|
|
5514
|
+
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"] }] });
|
|
5509
5515
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDatepickerViewManager, decorators: [{
|
|
5510
5516
|
type: Component,
|
|
5511
5517
|
args: [{ selector: 'clr-datepicker-view-manager', providers: [DatepickerFocusService], host: {
|
|
@@ -5644,7 +5650,7 @@ ClrDateContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versi
|
|
|
5644
5650
|
<ng-content select="clr-control-error" *ngIf="showInvalid"></ng-content>
|
|
5645
5651
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
5646
5652
|
</div>
|
|
5647
|
-
`, isInline: true, components: [{ type: ClrDatepickerViewManager, selector: "clr-datepicker-view-manager" }], directives: [{ type:
|
|
5653
|
+
`, 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"] }] });
|
|
5648
5654
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDateContainer, decorators: [{
|
|
5649
5655
|
type: Component,
|
|
5650
5656
|
args: [{
|
|
@@ -6112,7 +6118,7 @@ ClrInputContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
6112
6118
|
<ng-content select="clr-control-error" *ngIf="showInvalid"></ng-content>
|
|
6113
6119
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
6114
6120
|
</div>
|
|
6115
|
-
`, isInline: true, directives: [{ type:
|
|
6121
|
+
`, 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" }] });
|
|
6116
6122
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrInputContainer, decorators: [{
|
|
6117
6123
|
type: Component,
|
|
6118
6124
|
args: [{
|
|
@@ -6283,7 +6289,7 @@ ClrPasswordContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
6283
6289
|
<ng-content select="clr-control-error" *ngIf="showInvalid"></ng-content>
|
|
6284
6290
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
6285
6291
|
</div>
|
|
6286
|
-
`, isInline: true, directives: [{ type:
|
|
6292
|
+
`, 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" }] });
|
|
6287
6293
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrPasswordContainer, decorators: [{
|
|
6288
6294
|
type: Component,
|
|
6289
6295
|
args: [{
|
|
@@ -6345,7 +6351,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
6345
6351
|
}]
|
|
6346
6352
|
}], ctorParameters: function () { return [{ type: IfControlStateService }, { type: LayoutService, decorators: [{
|
|
6347
6353
|
type: Optional
|
|
6348
|
-
}] }, { type: ControlClassService }, { type: NgControlService }, { type: FocusService$1 }, { type: i3
|
|
6354
|
+
}] }, { type: ControlClassService }, { type: NgControlService }, { type: FocusService$1 }, { type: i3.BehaviorSubject, decorators: [{
|
|
6349
6355
|
type: Inject,
|
|
6350
6356
|
args: [TOGGLE_SERVICE]
|
|
6351
6357
|
}] }, { type: ClrCommonStringsService }]; }, propDecorators: { clrToggle: [{
|
|
@@ -6394,7 +6400,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
6394
6400
|
type: Optional
|
|
6395
6401
|
}] }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: FocusService$1, decorators: [{
|
|
6396
6402
|
type: Optional
|
|
6397
|
-
}] }, { type: i3
|
|
6403
|
+
}] }, { type: i3.BehaviorSubject, decorators: [{
|
|
6398
6404
|
type: Optional
|
|
6399
6405
|
}, {
|
|
6400
6406
|
type: Inject,
|
|
@@ -6453,7 +6459,7 @@ ClrRadioWrapper.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
|
|
|
6453
6459
|
<ng-content select="[clrRadio]"></ng-content>
|
|
6454
6460
|
<ng-content select="label"></ng-content>
|
|
6455
6461
|
<label *ngIf="!label"></label>
|
|
6456
|
-
`, isInline: true, directives: [{ type:
|
|
6462
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrLabel, selector: "label", inputs: ["for"] }] });
|
|
6457
6463
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrRadioWrapper, decorators: [{
|
|
6458
6464
|
type: Component,
|
|
6459
6465
|
args: [{
|
|
@@ -6558,7 +6564,7 @@ ClrRadioContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
6558
6564
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
6559
6565
|
</div>
|
|
6560
6566
|
</div>
|
|
6561
|
-
`, isInline: true, directives: [{ type:
|
|
6567
|
+
`, 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" }] });
|
|
6562
6568
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrRadioContainer, decorators: [{
|
|
6563
6569
|
type: Component,
|
|
6564
6570
|
args: [{
|
|
@@ -6682,7 +6688,7 @@ ClrSelectContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
|
|
|
6682
6688
|
<ng-content select="clr-control-error" *ngIf="showInvalid"></ng-content>
|
|
6683
6689
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
6684
6690
|
</div>
|
|
6685
|
-
`, isInline: true, directives: [{ type:
|
|
6691
|
+
`, 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" }] });
|
|
6686
6692
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrSelectContainer, decorators: [{
|
|
6687
6693
|
type: Component,
|
|
6688
6694
|
args: [{
|
|
@@ -6805,7 +6811,7 @@ ClrTextareaContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
6805
6811
|
<ng-content select="clr-control-error" *ngIf="showInvalid"></ng-content>
|
|
6806
6812
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
6807
6813
|
</div>
|
|
6808
|
-
`, isInline: true, directives: [{ type:
|
|
6814
|
+
`, 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" }] });
|
|
6809
6815
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrTextareaContainer, decorators: [{
|
|
6810
6816
|
type: Component,
|
|
6811
6817
|
args: [{
|
|
@@ -6953,7 +6959,7 @@ ClrRangeContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
6953
6959
|
<ng-content select="clr-control-error" *ngIf="showInvalid"></ng-content>
|
|
6954
6960
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
6955
6961
|
</div>
|
|
6956
|
-
`, isInline: true, directives: [{ type:
|
|
6962
|
+
`, 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" }] });
|
|
6957
6963
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrRangeContainer, decorators: [{
|
|
6958
6964
|
type: Component,
|
|
6959
6965
|
args: [{
|
|
@@ -7122,7 +7128,7 @@ ClrDatalistContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
7122
7128
|
<ng-content select="clr-control-error" *ngIf="showInvalid"></ng-content>
|
|
7123
7129
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
7124
7130
|
</div>
|
|
7125
|
-
`, isInline: true, directives: [{ type:
|
|
7131
|
+
`, 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" }] });
|
|
7126
7132
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDatalistContainer, decorators: [{
|
|
7127
7133
|
type: Component,
|
|
7128
7134
|
args: [{
|
|
@@ -7812,7 +7818,7 @@ class ClrOption {
|
|
|
7812
7818
|
}
|
|
7813
7819
|
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 });
|
|
7814
7820
|
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>
|
|
7815
|
-
<span *ngIf="selected" class="clr-sr-only"> {{ commonStrings.keys.comboboxSelected }} </span> `, isInline: true, directives: [{ type:
|
|
7821
|
+
<span *ngIf="selected" class="clr-sr-only"> {{ commonStrings.keys.comboboxSelected }} </span> `, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
7816
7822
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrOption, decorators: [{
|
|
7817
7823
|
type: Component,
|
|
7818
7824
|
args: [{
|
|
@@ -8034,7 +8040,7 @@ ClrOptions.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "1
|
|
|
8034
8040
|
|
|
8035
8041
|
<!--Option Groups and Options will be projected here-->
|
|
8036
8042
|
<ng-content></ng-content>
|
|
8037
|
-
`, isInline: true, components: [{ type: ClrSpinner, selector: "clr-spinner", inputs: ["clrInline", "clrInverse", "clrSmall", "clrMedium"] }], directives: [{ type:
|
|
8043
|
+
`, isInline: true, components: [{ type: ClrSpinner, selector: "clr-spinner", inputs: ["clrInline", "clrInverse", "clrSmall", "clrMedium"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
8038
8044
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrOptions, decorators: [{
|
|
8039
8045
|
type: Component,
|
|
8040
8046
|
args: [{
|
|
@@ -8146,7 +8152,7 @@ ClrComboboxContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
8146
8152
|
<ng-content select="clr-control-error" *ngIf="showInvalid"></ng-content>
|
|
8147
8153
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
8148
8154
|
</div>
|
|
8149
|
-
`, isInline: true, directives: [{ type:
|
|
8155
|
+
`, 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" }] });
|
|
8150
8156
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrComboboxContainer, decorators: [{
|
|
8151
8157
|
type: Component,
|
|
8152
8158
|
args: [{
|
|
@@ -8895,7 +8901,7 @@ ClrCombobox.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
|
8895
8901
|
ClrPopoverToggleService,
|
|
8896
8902
|
ClrPopoverEventsService,
|
|
8897
8903
|
ClrPopoverPositionService,
|
|
8898
|
-
], 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:
|
|
8904
|
+
], 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"] }] });
|
|
8899
8905
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrCombobox, decorators: [{
|
|
8900
8906
|
type: Component,
|
|
8901
8907
|
args: [{ selector: 'clr-combobox', providers: [
|
|
@@ -12557,7 +12563,7 @@ ClrDatagridColumn.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
12557
12563
|
|
|
12558
12564
|
<clr-dg-column-separator *ngIf="showSeparator"></clr-dg-column-separator>
|
|
12559
12565
|
</div>
|
|
12560
|
-
`, 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:
|
|
12566
|
+
`, 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 });
|
|
12561
12567
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDatagridColumn, decorators: [{
|
|
12562
12568
|
type: Component,
|
|
12563
12569
|
args: [{
|
|
@@ -12888,7 +12894,7 @@ ClrDatagridPlaceholder.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
12888
12894
|
<div class="datagrid-placeholder-image" *ngIf="emptyDatagrid"></div>
|
|
12889
12895
|
<span role="gridcell"><ng-content *ngIf="emptyDatagrid"></ng-content></span>
|
|
12890
12896
|
</div>
|
|
12891
|
-
`, isInline: true, directives: [{ type:
|
|
12897
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
12892
12898
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDatagridPlaceholder, decorators: [{
|
|
12893
12899
|
type: Component,
|
|
12894
12900
|
args: [{
|
|
@@ -13087,7 +13093,7 @@ ClrSignpost.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
|
13087
13093
|
</ng-container>
|
|
13088
13094
|
|
|
13089
13095
|
<ng-content></ng-content>
|
|
13090
|
-
`, isInline: true, directives: [{ type:
|
|
13096
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrSignpostTrigger, selector: "[clrSignpostTrigger]" }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
13091
13097
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrSignpost, decorators: [{
|
|
13092
13098
|
type: Component,
|
|
13093
13099
|
args: [{
|
|
@@ -13851,7 +13857,7 @@ ClrDatagridRow.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
|
|
|
13851
13857
|
DatagridIfExpandService,
|
|
13852
13858
|
{ provide: IfExpandService, useExisting: DatagridIfExpandService },
|
|
13853
13859
|
{ provide: LoadingListener, useExisting: DatagridIfExpandService },
|
|
13854
|
-
], 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:
|
|
13860
|
+
], 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" }] });
|
|
13855
13861
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDatagridRow, decorators: [{
|
|
13856
13862
|
type: Component,
|
|
13857
13863
|
args: [{ selector: 'clr-dg-row', host: {
|
|
@@ -14258,7 +14264,7 @@ ClrDatagrid.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
|
14258
14264
|
TableSizeService,
|
|
14259
14265
|
ColumnsService,
|
|
14260
14266
|
DisplayModeService,
|
|
14261
|
-
], 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:
|
|
14267
|
+
], 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"] }] });
|
|
14262
14268
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDatagrid, decorators: [{
|
|
14263
14269
|
type: Component,
|
|
14264
14270
|
args: [{ selector: 'clr-datagrid', providers: [
|
|
@@ -14729,7 +14735,7 @@ ClrDatagridColumnToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
|
|
|
14729
14735
|
</clr-dg-column-toggle-button>
|
|
14730
14736
|
</div>
|
|
14731
14737
|
</div>
|
|
14732
|
-
`, 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:
|
|
14738
|
+
`, 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"] }] });
|
|
14733
14739
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDatagridColumnToggle, decorators: [{
|
|
14734
14740
|
type: Component,
|
|
14735
14741
|
args: [{
|
|
@@ -14931,7 +14937,7 @@ ClrDatagridDetail.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
14931
14937
|
<ng-content></ng-content>
|
|
14932
14938
|
<div class="clr-sr-only">{{ commonStrings.keys.detailPaneEnd }}</div>
|
|
14933
14939
|
</div>
|
|
14934
|
-
`, isInline: true, directives: [{ type:
|
|
14940
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: FocusTrapDirective, selector: "[clrFocusTrap]", inputs: ["clrFocusTrap"] }] });
|
|
14935
14941
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDatagridDetail, decorators: [{
|
|
14936
14942
|
type: Component,
|
|
14937
14943
|
args: [{
|
|
@@ -15088,7 +15094,7 @@ ClrDatagridFooter.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
15088
15094
|
</div>
|
|
15089
15095
|
</ng-container>
|
|
15090
15096
|
<ng-content select="clr-dg-pagination"></ng-content>
|
|
15091
|
-
`, isInline: true, components: [{ type: ClrCheckboxWrapper, selector: "clr-checkbox-wrapper,clr-toggle-wrapper" }, { type: ClrDatagridColumnToggle, selector: "clr-dg-column-toggle" }], directives: [{ type:
|
|
15097
|
+
`, 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"] }] });
|
|
15092
15098
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDatagridFooter, decorators: [{
|
|
15093
15099
|
type: Component,
|
|
15094
15100
|
args: [{
|
|
@@ -15218,7 +15224,7 @@ ClrDatagridHideableColumn.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.
|
|
|
15218
15224
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDatagridHideableColumn, decorators: [{
|
|
15219
15225
|
type: Directive,
|
|
15220
15226
|
args: [{ selector: '[clrDgHideableColumn]' }]
|
|
15221
|
-
}], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: ColumnsService }, { type: i3
|
|
15227
|
+
}], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: ColumnsService }, { type: i3.BehaviorSubject, decorators: [{
|
|
15222
15228
|
type: Optional
|
|
15223
15229
|
}, {
|
|
15224
15230
|
type: Inject,
|
|
@@ -15257,7 +15263,7 @@ ClrDatagridPageSize.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
|
|
|
15257
15263
|
<option *ngFor="let option of pageSizeOptions" [ngValue]="option">{{ option }}</option>
|
|
15258
15264
|
</select>
|
|
15259
15265
|
</div>
|
|
15260
|
-
`, 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:
|
|
15266
|
+
`, 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"] }] });
|
|
15261
15267
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDatagridPageSize, decorators: [{
|
|
15262
15268
|
type: Component,
|
|
15263
15269
|
args: [{
|
|
@@ -15507,7 +15513,7 @@ ClrDatagridPagination.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
15507
15513
|
</button>
|
|
15508
15514
|
</div>
|
|
15509
15515
|
</ng-container>
|
|
15510
|
-
`, isInline: true, directives: [{ type:
|
|
15516
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
15511
15517
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDatagridPagination, decorators: [{
|
|
15512
15518
|
type: Component,
|
|
15513
15519
|
args: [{
|
|
@@ -15910,7 +15916,7 @@ DatagridHeaderRenderer.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0",
|
|
|
15910
15916
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: DatagridHeaderRenderer, decorators: [{
|
|
15911
15917
|
type: Directive,
|
|
15912
15918
|
args: [{ selector: 'clr-dg-column', providers: [ColumnResizerService, COLUMN_STATE_PROVIDER] }]
|
|
15913
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: DatagridRenderOrganizer }, { type: DomAdapter }, { type: ColumnResizerService }, { type: ColumnsService }, { type: i3
|
|
15919
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: DatagridRenderOrganizer }, { type: DomAdapter }, { type: ColumnResizerService }, { type: ColumnsService }, { type: i3.BehaviorSubject, decorators: [{
|
|
15914
15920
|
type: Inject,
|
|
15915
15921
|
args: [COLUMN_STATE]
|
|
15916
15922
|
}] }]; }, propDecorators: { resizeEmitter: [{
|
|
@@ -16500,7 +16506,7 @@ ClrStackBlock.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
|
|
|
16500
16506
|
<ng-content select="clr-stack-block"></ng-content>
|
|
16501
16507
|
</div>
|
|
16502
16508
|
</clr-expandable-animation>
|
|
16503
|
-
`, isInline: true, styles: [":host{display:block}\n"], components: [{ type: ClrExpandableAnimation, selector: "clr-expandable-animation", inputs: ["clrExpandTrigger"] }], directives: [{ type:
|
|
16509
|
+
`, 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" }] });
|
|
16504
16510
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrStackBlock, decorators: [{
|
|
16505
16511
|
type: Component,
|
|
16506
16512
|
args: [{
|
|
@@ -16678,7 +16684,7 @@ ClrStackHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
|
|
|
16678
16684
|
<!-- End of undocumented experimental feature. -->
|
|
16679
16685
|
</span>
|
|
16680
16686
|
</h4>
|
|
16681
|
-
`, isInline: true, styles: [":host{display:block}\n"], directives: [{ type:
|
|
16687
|
+
`, isInline: true, styles: [":host{display:block}\n"], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
16682
16688
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrStackHeader, decorators: [{
|
|
16683
16689
|
type: Component,
|
|
16684
16690
|
args: [{
|
|
@@ -16749,7 +16755,7 @@ ClrStackInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
|
16749
16755
|
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: `
|
|
16750
16756
|
<span *ngIf="!stackView.editing">{{ model }}</span>
|
|
16751
16757
|
<input [type]="type" *ngIf="stackView.editing" [(ngModel)]="model" />
|
|
16752
|
-
`, isInline: true, directives: [{ type:
|
|
16758
|
+
`, 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"] }] });
|
|
16753
16759
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrStackInput, decorators: [{
|
|
16754
16760
|
type: Component,
|
|
16755
16761
|
args: [{
|
|
@@ -16782,7 +16788,7 @@ ClrStackSelect.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
|
|
|
16782
16788
|
<ng-content></ng-content>
|
|
16783
16789
|
</select>
|
|
16784
16790
|
</div>
|
|
16785
|
-
`, isInline: true, directives: [{ type:
|
|
16791
|
+
`, 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"] }] });
|
|
16786
16792
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrStackSelect, decorators: [{
|
|
16787
16793
|
type: Component,
|
|
16788
16794
|
args: [{
|
|
@@ -17268,7 +17274,7 @@ RecursiveChildren.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
17268
17274
|
<ng-container *ngTemplateOutlet="featuresService.recursion.template; context: getContext(child)"></ng-container>
|
|
17269
17275
|
</ng-container>
|
|
17270
17276
|
</ng-container>
|
|
17271
|
-
`, isInline: true, directives: [{ type:
|
|
17277
|
+
`, 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"] }] });
|
|
17272
17278
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: RecursiveChildren, decorators: [{
|
|
17273
17279
|
type: Component,
|
|
17274
17280
|
args: [{
|
|
@@ -17493,7 +17499,7 @@ ClrTreeNode.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
|
17493
17499
|
TREE_FEATURES_PROVIDER,
|
|
17494
17500
|
IfExpandService,
|
|
17495
17501
|
{ provide: LoadingListener, useExisting: IfExpandService },
|
|
17496
|
-
], 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:
|
|
17502
|
+
], 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: [
|
|
17497
17503
|
trigger('toggleChildrenAnim', [
|
|
17498
17504
|
transition('collapsed => expanded', [style({ height: 0 }), animate(200, style({ height: '*' }))]),
|
|
17499
17505
|
transition('expanded => collapsed', [style({ height: '*' }), animate(200, style({ height: 0 }))]),
|
|
@@ -17604,7 +17610,7 @@ ClrTree.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0
|
|
|
17604
17610
|
*ngIf="featuresService.recursion"
|
|
17605
17611
|
[children]="featuresService.recursion.root"
|
|
17606
17612
|
></clr-recursive-children>
|
|
17607
|
-
`, isInline: true, components: [{ type: RecursiveChildren, selector: "clr-recursive-children", inputs: ["parent", "children"] }], directives: [{ type:
|
|
17613
|
+
`, isInline: true, components: [{ type: RecursiveChildren, selector: "clr-recursive-children", inputs: ["parent", "children"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
17608
17614
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrTree, decorators: [{
|
|
17609
17615
|
type: Component,
|
|
17610
17616
|
args: [{
|
|
@@ -18514,7 +18520,7 @@ class Popover {
|
|
|
18514
18520
|
}
|
|
18515
18521
|
|
|
18516
18522
|
/*
|
|
18517
|
-
* Copyright (c) 2016-
|
|
18523
|
+
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
18518
18524
|
* This software is released under MIT license.
|
|
18519
18525
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
18520
18526
|
*/
|
|
@@ -18523,13 +18529,19 @@ class AbstractPopover {
|
|
|
18523
18529
|
constructor(injector, parentHost) {
|
|
18524
18530
|
this.parentHost = parentHost;
|
|
18525
18531
|
this.updateAnchor = false;
|
|
18526
|
-
this.recentlyOpened = false;
|
|
18527
18532
|
this.popoverOptions = {};
|
|
18528
18533
|
/*
|
|
18529
18534
|
* Until https://github.com/angular/angular/issues/8785 is supported, we don't have any way to instantiate
|
|
18530
18535
|
* a separate directive on the host. So let's do dirty but performant for now.
|
|
18531
18536
|
*/
|
|
18532
18537
|
this.closeOnOutsideClick = false;
|
|
18538
|
+
this.closeOnOutsideClickCallback = event => {
|
|
18539
|
+
// The anchor element containing the click event origin means, the click wasn't triggered outside.
|
|
18540
|
+
if (this.anchorElem.contains(event.target)) {
|
|
18541
|
+
return;
|
|
18542
|
+
}
|
|
18543
|
+
this.toggleService.open = false;
|
|
18544
|
+
};
|
|
18533
18545
|
this.el = injector.get(ElementRef);
|
|
18534
18546
|
this.toggleService = injector.get(ClrPopoverToggleService);
|
|
18535
18547
|
this.renderer = injector.get(Renderer2);
|
|
@@ -18540,7 +18552,6 @@ class AbstractPopover {
|
|
|
18540
18552
|
if (change) {
|
|
18541
18553
|
this.anchor();
|
|
18542
18554
|
this.attachESCListener();
|
|
18543
|
-
this.setRecentlyOpened();
|
|
18544
18555
|
}
|
|
18545
18556
|
else {
|
|
18546
18557
|
this.release();
|
|
@@ -18550,13 +18561,10 @@ class AbstractPopover {
|
|
|
18550
18561
|
if (this.toggleService.open) {
|
|
18551
18562
|
this.anchor();
|
|
18552
18563
|
this.attachESCListener();
|
|
18553
|
-
this.setRecentlyOpened();
|
|
18554
18564
|
}
|
|
18555
18565
|
}
|
|
18556
18566
|
anchor() {
|
|
18557
18567
|
this.updateAnchor = true;
|
|
18558
|
-
// Ugh
|
|
18559
|
-
this.ignore = this.toggleService.originalEvent;
|
|
18560
18568
|
}
|
|
18561
18569
|
release() {
|
|
18562
18570
|
this.detachOutsideClickListener();
|
|
@@ -18603,43 +18611,21 @@ class AbstractPopover {
|
|
|
18603
18611
|
}
|
|
18604
18612
|
}
|
|
18605
18613
|
attachOutsideClickListener() {
|
|
18606
|
-
if (this.closeOnOutsideClick) {
|
|
18607
|
-
|
|
18608
|
-
|
|
18609
|
-
this
|
|
18614
|
+
if (this.closeOnOutsideClick && this.toggleService.open) {
|
|
18615
|
+
if (document && document.addEventListener) {
|
|
18616
|
+
// To listen outside click, the listener should catch the event during the capturing phase.
|
|
18617
|
+
// We have to do this ugly document check as Renderer2.listen doesn't allow passive/useCapture listen.
|
|
18618
|
+
document.addEventListener('click', this.closeOnOutsideClickCallback, true);
|
|
18610
18619
|
}
|
|
18611
|
-
this.documentClickListener = this.renderer.listen('document', 'click', event => {
|
|
18612
|
-
if (event === this.ignore || this.recentlyOpened) {
|
|
18613
|
-
delete this.ignore;
|
|
18614
|
-
}
|
|
18615
|
-
else {
|
|
18616
|
-
this.toggleService.open = false;
|
|
18617
|
-
}
|
|
18618
|
-
});
|
|
18619
18620
|
}
|
|
18620
18621
|
}
|
|
18621
18622
|
detachOutsideClickListener() {
|
|
18622
18623
|
if (this.closeOnOutsideClick) {
|
|
18623
|
-
if (
|
|
18624
|
-
this.
|
|
18625
|
-
delete this.hostClickListener;
|
|
18626
|
-
}
|
|
18627
|
-
if (this.ignoredElementClickListener) {
|
|
18628
|
-
this.ignoredElementClickListener();
|
|
18629
|
-
delete this.ignoredElementClickListener;
|
|
18630
|
-
}
|
|
18631
|
-
if (this.documentClickListener) {
|
|
18632
|
-
this.documentClickListener();
|
|
18633
|
-
delete this.documentClickListener;
|
|
18624
|
+
if (document && document.removeEventListener) {
|
|
18625
|
+
document.removeEventListener('click', this.closeOnOutsideClickCallback, true);
|
|
18634
18626
|
}
|
|
18635
18627
|
}
|
|
18636
18628
|
}
|
|
18637
|
-
setRecentlyOpened() {
|
|
18638
|
-
this.recentlyOpened = true;
|
|
18639
|
-
setTimeout(() => {
|
|
18640
|
-
this.recentlyOpened = false;
|
|
18641
|
-
});
|
|
18642
|
-
}
|
|
18643
18629
|
}
|
|
18644
18630
|
AbstractPopover.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: AbstractPopover, deps: [{ token: i0.Injector }, { token: i0.ElementRef, skipSelf: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
18645
18631
|
AbstractPopover.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0", type: AbstractPopover, host: { properties: { "class.is-off-screen": "this.isOffScreen" } }, ngImport: i0 });
|
|
@@ -19072,7 +19058,7 @@ class ClrAlert {
|
|
|
19072
19058
|
}
|
|
19073
19059
|
}
|
|
19074
19060
|
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 });
|
|
19075
|
-
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:
|
|
19061
|
+
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" }] });
|
|
19076
19062
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrAlert, decorators: [{
|
|
19077
19063
|
type: Component,
|
|
19078
19064
|
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" }]
|
|
@@ -19275,7 +19261,7 @@ class ClrAlerts {
|
|
|
19275
19261
|
}
|
|
19276
19262
|
}
|
|
19277
19263
|
ClrAlerts.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrAlerts, deps: [{ token: MultiAlertService }], target: i0.ɵɵFactoryTarget.Component });
|
|
19278
|
-
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:
|
|
19264
|
+
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"] }] });
|
|
19279
19265
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrAlerts, decorators: [{
|
|
19280
19266
|
type: Component,
|
|
19281
19267
|
args: [{ selector: 'clr-alerts', providers: [MultiAlertService], host: {
|
|
@@ -19648,7 +19634,7 @@ ClrHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13
|
|
|
19648
19634
|
<span></span>
|
|
19649
19635
|
</button>
|
|
19650
19636
|
<div class="header-backdrop" (click)="closeOpenNav()"></div>
|
|
19651
|
-
`, isInline: true, directives: [{ type:
|
|
19637
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
19652
19638
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrHeader, decorators: [{
|
|
19653
19639
|
type: Component,
|
|
19654
19640
|
args: [{
|
|
@@ -20409,7 +20395,7 @@ ClrTabs.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0
|
|
|
20409
20395
|
</ng-container>
|
|
20410
20396
|
</ul>
|
|
20411
20397
|
<ng-container #tabContentViewContainer></ng-container>
|
|
20412
|
-
`, isInline: true, components: [{ type: ClrKeyFocus, selector: "[clrKeyFocus]", inputs: ["clrDirection", "clrFocusOnLoad", "clrKeyFocus"], outputs: ["clrFocusChange"] }, { type: ClrTabOverflowContent, selector: "clr-tab-overflow-content" }], directives: [{ type:
|
|
20398
|
+
`, 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" }] });
|
|
20413
20399
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrTabs, decorators: [{
|
|
20414
20400
|
type: Component,
|
|
20415
20401
|
args: [{
|
|
@@ -20689,7 +20675,7 @@ class ClrVerticalNav {
|
|
|
20689
20675
|
}
|
|
20690
20676
|
}
|
|
20691
20677
|
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 });
|
|
20692
|
-
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:
|
|
20678
|
+
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" }] });
|
|
20693
20679
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrVerticalNav, decorators: [{
|
|
20694
20680
|
type: Component,
|
|
20695
20681
|
args: [{ selector: 'clr-vertical-nav', providers: [VerticalNavService, VerticalNavIconService, VerticalNavGroupRegistrationService], host: {
|
|
@@ -21101,7 +21087,7 @@ class ClrModal {
|
|
|
21101
21087
|
}
|
|
21102
21088
|
}
|
|
21103
21089
|
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 });
|
|
21104
|
-
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:
|
|
21090
|
+
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: [
|
|
21105
21091
|
trigger('fadeDown', [
|
|
21106
21092
|
transition('* => false', [style({ opacity: 0, transform: 'translate(0, -25%)' }), animate('0.2s ease-in-out')]),
|
|
21107
21093
|
transition('false => *', [animate('0.2s ease-in-out', style({ opacity: 0, transform: 'translate(0, -25%)' }))]),
|
|
@@ -23570,176 +23556,520 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
23570
23556
|
* This software is released under MIT license.
|
|
23571
23557
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
23572
23558
|
*/
|
|
23573
|
-
|
|
23574
|
-
|
|
23575
|
-
|
|
23576
|
-
|
|
23559
|
+
const defaultAnimationTiming = '0.2s ease-in-out';
|
|
23560
|
+
|
|
23561
|
+
/*
|
|
23562
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
23563
|
+
* This software is released under MIT license.
|
|
23564
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
23565
|
+
*/
|
|
23566
|
+
function collapse() {
|
|
23567
|
+
'use strict';
|
|
23568
|
+
return [
|
|
23569
|
+
state('true', style({ height: 0, 'overflow-y': 'hidden' })),
|
|
23570
|
+
transition('true => false', [animate(defaultAnimationTiming, style({ height: '*', 'overflow-y': 'hidden' }))]),
|
|
23571
|
+
transition('false => true', [style({ height: '*', 'overflow-y': 'hidden' }), animate(defaultAnimationTiming)]),
|
|
23572
|
+
];
|
|
23573
|
+
}
|
|
23574
|
+
|
|
23575
|
+
/*
|
|
23576
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
23577
|
+
* This software is released under MIT license.
|
|
23578
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
23579
|
+
*/
|
|
23580
|
+
|
|
23581
|
+
/*
|
|
23582
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
23583
|
+
* This software is released under MIT license.
|
|
23584
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
23585
|
+
*/
|
|
23586
|
+
function fade(opacity = 1) {
|
|
23587
|
+
return [
|
|
23588
|
+
transition('void => *', [style({ opacity: 0 }), animate(defaultAnimationTiming, style({ opacity: opacity }))]),
|
|
23589
|
+
transition('* => void', [animate(defaultAnimationTiming, style({ opacity: 0 }))]),
|
|
23590
|
+
];
|
|
23591
|
+
}
|
|
23592
|
+
|
|
23593
|
+
/*
|
|
23594
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
23595
|
+
* This software is released under MIT license.
|
|
23596
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
23597
|
+
*/
|
|
23598
|
+
|
|
23599
|
+
/*
|
|
23600
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
23601
|
+
* This software is released under MIT license.
|
|
23602
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
23603
|
+
*/
|
|
23604
|
+
function fadeSlide(direction) {
|
|
23605
|
+
let transform = null;
|
|
23606
|
+
if (direction === 'up') {
|
|
23607
|
+
transform = 'translate(0, 25%)';
|
|
23577
23608
|
}
|
|
23578
|
-
|
|
23579
|
-
|
|
23580
|
-
throw new Error('Wizard stepnav item is not associated with a wizard page.');
|
|
23581
|
-
}
|
|
23609
|
+
else if (direction === 'down') {
|
|
23610
|
+
transform = 'translate(0, -25%)';
|
|
23582
23611
|
}
|
|
23583
|
-
|
|
23584
|
-
|
|
23585
|
-
return this.pageCollection.getStepItemIdForPage(this.page);
|
|
23612
|
+
else if (direction === 'left') {
|
|
23613
|
+
transform = 'translate(25%, 0)';
|
|
23586
23614
|
}
|
|
23587
|
-
|
|
23588
|
-
|
|
23615
|
+
else if (direction === 'right') {
|
|
23616
|
+
transform = 'translate(-25%, 0)';
|
|
23589
23617
|
}
|
|
23590
|
-
|
|
23591
|
-
|
|
23592
|
-
return this.page.disabled || this.navService.wizardStopNavigation || this.navService.wizardDisableStepnav;
|
|
23618
|
+
else {
|
|
23619
|
+
throw new Error('Unknown direction ' + direction + ' for slide animation.');
|
|
23593
23620
|
}
|
|
23594
|
-
|
|
23595
|
-
|
|
23596
|
-
|
|
23621
|
+
return [
|
|
23622
|
+
transition('void => *', [style({ opacity: 0, transform: transform }), animate(defaultAnimationTiming)]),
|
|
23623
|
+
transition('* => void', [animate(defaultAnimationTiming, style({ opacity: 0, transform: transform }))]),
|
|
23624
|
+
];
|
|
23625
|
+
}
|
|
23626
|
+
|
|
23627
|
+
/*
|
|
23628
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
23629
|
+
* This software is released under MIT license.
|
|
23630
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
23631
|
+
*/
|
|
23632
|
+
|
|
23633
|
+
/*
|
|
23634
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
23635
|
+
* This software is released under MIT license.
|
|
23636
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
23637
|
+
*/
|
|
23638
|
+
function slide(direction) {
|
|
23639
|
+
let transform = null;
|
|
23640
|
+
if (direction === 'up') {
|
|
23641
|
+
transform = 'translate(0, 25%)';
|
|
23597
23642
|
}
|
|
23598
|
-
|
|
23599
|
-
|
|
23600
|
-
return this.page.completed;
|
|
23643
|
+
else if (direction === 'down') {
|
|
23644
|
+
transform = 'translate(0, -25%)';
|
|
23601
23645
|
}
|
|
23602
|
-
|
|
23603
|
-
|
|
23604
|
-
return this.page.hasError && this.isComplete;
|
|
23646
|
+
else if (direction === 'left') {
|
|
23647
|
+
transform = 'translate(25%, 0)';
|
|
23605
23648
|
}
|
|
23606
|
-
|
|
23607
|
-
|
|
23608
|
-
return this.pageCollection.previousPageIsCompleted(this.page);
|
|
23649
|
+
else if (direction === 'right') {
|
|
23650
|
+
transform = 'translate(-25%, 0)';
|
|
23609
23651
|
}
|
|
23610
|
-
|
|
23611
|
-
|
|
23612
|
-
// if we click on our own stepnav or a disabled stepnav, we don't want to do anything
|
|
23613
|
-
if (this.isDisabled || this.isCurrent) {
|
|
23614
|
-
return;
|
|
23615
|
-
}
|
|
23616
|
-
this.navService.goTo(this.page);
|
|
23652
|
+
else {
|
|
23653
|
+
throw new Error('Unknown direction ' + direction + ' for slide animation.');
|
|
23617
23654
|
}
|
|
23655
|
+
return [
|
|
23656
|
+
transition('void => *', [style({ transform: transform }), animate(defaultAnimationTiming)]),
|
|
23657
|
+
transition('* => void', [animate(defaultAnimationTiming, style({ transform: transform }))]),
|
|
23658
|
+
];
|
|
23618
23659
|
}
|
|
23619
|
-
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 });
|
|
23620
|
-
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: `
|
|
23621
|
-
<button
|
|
23622
|
-
type="button"
|
|
23623
|
-
class="btn btn-link clr-wizard-stepnav-link"
|
|
23624
|
-
(click)="click()"
|
|
23625
|
-
[attr.disabled]="isDisabled ? '' : null"
|
|
23626
|
-
>
|
|
23627
|
-
<span class="clr-wizard-stepnav-link-suffix">
|
|
23628
|
-
<cds-icon
|
|
23629
|
-
shape="error-standard"
|
|
23630
|
-
status="danger"
|
|
23631
|
-
class="clr-wizard-stepnav-item-error-icon"
|
|
23632
|
-
*ngIf="hasError"
|
|
23633
|
-
></cds-icon>
|
|
23634
|
-
<ng-content *ngIf="!hasError"></ng-content>
|
|
23635
|
-
</span>
|
|
23636
|
-
<span class="clr-wizard-stepnav-link-title">
|
|
23637
|
-
<ng-template [ngTemplateOutlet]="page.navTitle"></ng-template>
|
|
23638
|
-
</span>
|
|
23639
|
-
</button>
|
|
23640
|
-
`, 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"] }] });
|
|
23641
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrWizardStepnavItem, decorators: [{
|
|
23642
|
-
type: Component,
|
|
23643
|
-
args: [{
|
|
23644
|
-
selector: '[clr-wizard-stepnav-item]',
|
|
23645
|
-
template: `
|
|
23646
|
-
<button
|
|
23647
|
-
type="button"
|
|
23648
|
-
class="btn btn-link clr-wizard-stepnav-link"
|
|
23649
|
-
(click)="click()"
|
|
23650
|
-
[attr.disabled]="isDisabled ? '' : null"
|
|
23651
|
-
>
|
|
23652
|
-
<span class="clr-wizard-stepnav-link-suffix">
|
|
23653
|
-
<cds-icon
|
|
23654
|
-
shape="error-standard"
|
|
23655
|
-
status="danger"
|
|
23656
|
-
class="clr-wizard-stepnav-item-error-icon"
|
|
23657
|
-
*ngIf="hasError"
|
|
23658
|
-
></cds-icon>
|
|
23659
|
-
<ng-content *ngIf="!hasError"></ng-content>
|
|
23660
|
-
</span>
|
|
23661
|
-
<span class="clr-wizard-stepnav-link-title">
|
|
23662
|
-
<ng-template [ngTemplateOutlet]="page.navTitle"></ng-template>
|
|
23663
|
-
</span>
|
|
23664
|
-
</button>
|
|
23665
|
-
`,
|
|
23666
|
-
host: {
|
|
23667
|
-
'[id]': 'id',
|
|
23668
|
-
'[attr.aria-current]': 'stepAriaCurrent',
|
|
23669
|
-
'[attr.aria-controls]': 'id',
|
|
23670
|
-
'[class.clr-nav-link]': 'true',
|
|
23671
|
-
'[class.nav-item]': 'true',
|
|
23672
|
-
'[class.active]': 'isCurrent',
|
|
23673
|
-
'[class.disabled]': 'isDisabled',
|
|
23674
|
-
'[class.no-click]': '!canNavigate',
|
|
23675
|
-
'[class.complete]': 'isComplete',
|
|
23676
|
-
'[class.error]': 'hasError',
|
|
23677
|
-
},
|
|
23678
|
-
}]
|
|
23679
|
-
}], ctorParameters: function () { return [{ type: WizardNavigationService }, { type: PageCollectionService }]; }, propDecorators: { page: [{
|
|
23680
|
-
type: Input,
|
|
23681
|
-
args: ['page']
|
|
23682
|
-
}] } });
|
|
23683
23660
|
|
|
23684
23661
|
/*
|
|
23685
23662
|
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
23686
23663
|
* This software is released under MIT license.
|
|
23687
23664
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
23688
23665
|
*/
|
|
23689
|
-
class ClrWizardStepnav {
|
|
23690
|
-
constructor(pageService) {
|
|
23691
|
-
this.pageService = pageService;
|
|
23692
|
-
}
|
|
23693
|
-
}
|
|
23694
|
-
ClrWizardStepnav.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrWizardStepnav, deps: [{ token: PageCollectionService }], target: i0.ɵɵFactoryTarget.Component });
|
|
23695
|
-
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: `
|
|
23696
|
-
<div class="clr-wizard-stepnav-list">
|
|
23697
|
-
<div
|
|
23698
|
-
*ngFor="let page of pageService.pages; let i = index"
|
|
23699
|
-
clr-wizard-stepnav-item
|
|
23700
|
-
[page]="page"
|
|
23701
|
-
class="clr-wizard-stepnav-item"
|
|
23702
|
-
>
|
|
23703
|
-
{{ i + 1 }}
|
|
23704
|
-
</div>
|
|
23705
|
-
</div>
|
|
23706
|
-
`, isInline: true, components: [{ type: ClrWizardStepnavItem, selector: "[clr-wizard-stepnav-item]", inputs: ["page"] }], directives: [{ type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
23707
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrWizardStepnav, decorators: [{
|
|
23708
|
-
type: Component,
|
|
23709
|
-
args: [{
|
|
23710
|
-
selector: 'clr-wizard-stepnav',
|
|
23711
|
-
template: `
|
|
23712
|
-
<div class="clr-wizard-stepnav-list">
|
|
23713
|
-
<div
|
|
23714
|
-
*ngFor="let page of pageService.pages; let i = index"
|
|
23715
|
-
clr-wizard-stepnav-item
|
|
23716
|
-
[page]="page"
|
|
23717
|
-
class="clr-wizard-stepnav-item"
|
|
23718
|
-
>
|
|
23719
|
-
{{ i + 1 }}
|
|
23720
|
-
</div>
|
|
23721
|
-
</div>
|
|
23722
|
-
`,
|
|
23723
|
-
host: { class: 'clr-wizard-stepnav' },
|
|
23724
|
-
}]
|
|
23725
|
-
}], ctorParameters: function () { return [{ type: PageCollectionService }]; } });
|
|
23726
23666
|
|
|
23727
23667
|
/*
|
|
23728
23668
|
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
23729
23669
|
* This software is released under MIT license.
|
|
23730
23670
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
23731
23671
|
*/
|
|
23732
|
-
|
|
23733
|
-
|
|
23734
|
-
|
|
23735
|
-
|
|
23736
|
-
|
|
23737
|
-
|
|
23738
|
-
|
|
23739
|
-
|
|
23740
|
-
|
|
23741
|
-
|
|
23742
|
-
|
|
23672
|
+
|
|
23673
|
+
/*
|
|
23674
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
23675
|
+
* This software is released under MIT license.
|
|
23676
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
23677
|
+
*/
|
|
23678
|
+
|
|
23679
|
+
/*
|
|
23680
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
23681
|
+
* This software is released under MIT license.
|
|
23682
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
23683
|
+
*/
|
|
23684
|
+
|
|
23685
|
+
/*
|
|
23686
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
23687
|
+
* This software is released under MIT license.
|
|
23688
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
23689
|
+
*/
|
|
23690
|
+
|
|
23691
|
+
/*
|
|
23692
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
23693
|
+
* This software is released under MIT license.
|
|
23694
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
23695
|
+
*/
|
|
23696
|
+
var ClrAriaLivePoliteness;
|
|
23697
|
+
(function (ClrAriaLivePoliteness) {
|
|
23698
|
+
ClrAriaLivePoliteness["off"] = "off";
|
|
23699
|
+
ClrAriaLivePoliteness["polite"] = "polite";
|
|
23700
|
+
ClrAriaLivePoliteness["assertive"] = "assertive";
|
|
23701
|
+
})(ClrAriaLivePoliteness || (ClrAriaLivePoliteness = {}));
|
|
23702
|
+
/**
|
|
23703
|
+
* Time in milliseconds before inserting the content into the container
|
|
23704
|
+
*/
|
|
23705
|
+
const ARIA_LIVE_TICK = 100;
|
|
23706
|
+
/**
|
|
23707
|
+
* @deprecated
|
|
23708
|
+
*
|
|
23709
|
+
* -- ClrAriaLiveService is deprecated in 5.0 to be removed in 6.0 --
|
|
23710
|
+
* Please consider using the LiveAnnouncer in the Angular Material CDK
|
|
23711
|
+
* if your project needs this functionality.
|
|
23712
|
+
* More info: https://material.angular.io/cdk/a11y/overview#example-1
|
|
23713
|
+
*
|
|
23714
|
+
* This service handle `aria-live` accessibility attribute. The issue is that you need
|
|
23715
|
+
* to have the DOM Element with attribute `aria-live` before you could insert content
|
|
23716
|
+
* and SR (Screen Reader) pick the change and announce it.
|
|
23717
|
+
*
|
|
23718
|
+
* ```typescript
|
|
23719
|
+
* import { ClrAriaLiveService } from 'src/clr-angular/utils/a11y/aria-live.service';
|
|
23720
|
+
*
|
|
23721
|
+
* @Component({
|
|
23722
|
+
* selector: 'clr-demo-component',
|
|
23723
|
+
* providers: [ClrAriaLiveService],
|
|
23724
|
+
* template: `
|
|
23725
|
+
* <ng-content></ng-content>
|
|
23726
|
+
* `,
|
|
23727
|
+
* })
|
|
23728
|
+
* export class DemoComponent {
|
|
23729
|
+
* constructor(ariaLiveService: ClrAriaLiveService) {}
|
|
23730
|
+
*
|
|
23731
|
+
* public actionThatWillTriggerChange() {
|
|
23732
|
+
* this.ariaLiveService.announce('message that I want to announce to SR');
|
|
23733
|
+
* }
|
|
23734
|
+
* }
|
|
23735
|
+
* ```
|
|
23736
|
+
*
|
|
23737
|
+
*/
|
|
23738
|
+
class ClrAriaLiveService {
|
|
23739
|
+
constructor(ngZone, _document, platformId) {
|
|
23740
|
+
this.ngZone = ngZone;
|
|
23741
|
+
this.platformId = platformId;
|
|
23742
|
+
this._id = `clr-aria-live-element-${uniqueIdFactory()}`;
|
|
23743
|
+
this.document = _document;
|
|
23744
|
+
}
|
|
23745
|
+
/**
|
|
23746
|
+
* get access to the internal HTML `id` that gonna be used for the AriaLive container.
|
|
23747
|
+
* @return ID of the DOM Element as string.
|
|
23748
|
+
*/
|
|
23749
|
+
get id() {
|
|
23750
|
+
return this._id;
|
|
23751
|
+
}
|
|
23752
|
+
/**
|
|
23753
|
+
* Append text content inside the AriaLive Container. This method will check if the
|
|
23754
|
+
* DOM Element is existing if not it will create one for us and the will apply the text.
|
|
23755
|
+
*
|
|
23756
|
+
* ```typescript
|
|
23757
|
+
* this.ariaLiveService.announce(this.el.nativeElement);
|
|
23758
|
+
* // or
|
|
23759
|
+
* this.ariaLiveService.announce('Message to announce to SR');
|
|
23760
|
+
* ```
|
|
23761
|
+
*
|
|
23762
|
+
* @remark
|
|
23763
|
+
* When second argument is `AriaLivePoliteness.off` we won't create aria container or update it.
|
|
23764
|
+
* The reason for that is that we don't want to do additional work if the SR will ignore it.
|
|
23765
|
+
*
|
|
23766
|
+
* @param message - This could be simple string or HTMLElement
|
|
23767
|
+
* @param politeness - 'polite', 'assertive' or 'off'
|
|
23768
|
+
*/
|
|
23769
|
+
announce(message, politeness = ClrAriaLivePoliteness.polite) {
|
|
23770
|
+
if (politeness === ClrAriaLivePoliteness.off) {
|
|
23771
|
+
return;
|
|
23772
|
+
}
|
|
23773
|
+
if (!this.ariaLiveElement && isPlatformBrowser(this.platformId)) {
|
|
23774
|
+
this.ariaLiveElement = this.createContainer();
|
|
23775
|
+
}
|
|
23776
|
+
message = typeof message !== 'string' && isPlatformBrowser(this.platformId) ? message.textContent : message;
|
|
23777
|
+
// when there is no message do NOTHING!
|
|
23778
|
+
if (!message) {
|
|
23779
|
+
return;
|
|
23780
|
+
}
|
|
23781
|
+
this.ariaLiveElement.setAttribute('aria-live', politeness);
|
|
23782
|
+
// This 100ms timeout is necessary for some browser + screen-reader combinations:
|
|
23783
|
+
// - Both JAWS and NVDA over IE11 will not announce anything without a non-zero timeout.
|
|
23784
|
+
// - With Chrome and IE11 with NVDA or JAWS, a repeated (identical) message won't be read a
|
|
23785
|
+
// second time without clearing and then using a non-zero delay.
|
|
23786
|
+
// (using JAWS 17 at time of this writing).
|
|
23787
|
+
this.ngZone.runOutsideAngular(() => {
|
|
23788
|
+
// This clearTimeout will stop all older messages from announcing
|
|
23789
|
+
// in the case where the messages are comming too fast we gonna try to append only
|
|
23790
|
+
// the last one. That's what the SR will try to do anyway.
|
|
23791
|
+
clearTimeout(this.previousTimeout);
|
|
23792
|
+
this.previousTimeout = setTimeout(() => {
|
|
23793
|
+
this.ariaLiveElement.textContent = message;
|
|
23794
|
+
}, ARIA_LIVE_TICK);
|
|
23795
|
+
});
|
|
23796
|
+
}
|
|
23797
|
+
/**
|
|
23798
|
+
* onDestroy life cycle - must stop all active setTimeouts and remove the AriaLive
|
|
23799
|
+
* container from the document.
|
|
23800
|
+
*/
|
|
23801
|
+
ngOnDestroy() {
|
|
23802
|
+
clearTimeout(this.previousTimeout);
|
|
23803
|
+
if (isPlatformBrowser(this.platformId) && this.ariaLiveElement) {
|
|
23804
|
+
this.document.body.removeChild(this.ariaLiveElement);
|
|
23805
|
+
this.ariaLiveElement = null;
|
|
23806
|
+
}
|
|
23807
|
+
}
|
|
23808
|
+
/**
|
|
23809
|
+
* Create AriaLive DOM element as a last child of the document.
|
|
23810
|
+
* After the element is created, we gonna apply Clarity class to hide it from
|
|
23811
|
+
* the screen and set the `aria-live` politness.
|
|
23812
|
+
*
|
|
23813
|
+
* `clr-sr-only` is the CSS class that is used to hide the element from the screen.
|
|
23814
|
+
*
|
|
23815
|
+
* @remark
|
|
23816
|
+
* Calling this method multiple times will create multiple DOM Elements, that
|
|
23817
|
+
* won't be tracked and will be GC after the service is destroyed.
|
|
23818
|
+
*
|
|
23819
|
+
* @return AriaLive container as HTMLElement
|
|
23820
|
+
*
|
|
23821
|
+
*/
|
|
23822
|
+
createContainer() {
|
|
23823
|
+
const ariaLiveElement = this.document.createElement('div');
|
|
23824
|
+
ariaLiveElement.setAttribute('id', this.id);
|
|
23825
|
+
// Use clarity screen reader class to hide the dom element
|
|
23826
|
+
// and fix the scrollbar shake
|
|
23827
|
+
ariaLiveElement.classList.add('clr-sr-only');
|
|
23828
|
+
ariaLiveElement.setAttribute('aria-atomic', 'true');
|
|
23829
|
+
ariaLiveElement.setAttribute('aria-live', ClrAriaLivePoliteness.polite);
|
|
23830
|
+
this.document.body.appendChild(ariaLiveElement);
|
|
23831
|
+
return ariaLiveElement;
|
|
23832
|
+
}
|
|
23833
|
+
}
|
|
23834
|
+
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 });
|
|
23835
|
+
ClrAriaLiveService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrAriaLiveService, providedIn: 'root' });
|
|
23836
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrAriaLiveService, decorators: [{
|
|
23837
|
+
type: Injectable,
|
|
23838
|
+
args: [{
|
|
23839
|
+
providedIn: 'root',
|
|
23840
|
+
}]
|
|
23841
|
+
}], ctorParameters: function () { return [{ type: i0.NgZone }, { type: undefined, decorators: [{
|
|
23842
|
+
type: Inject,
|
|
23843
|
+
args: [DOCUMENT]
|
|
23844
|
+
}] }, { type: undefined, decorators: [{
|
|
23845
|
+
type: Inject,
|
|
23846
|
+
args: [PLATFORM_ID]
|
|
23847
|
+
}] }]; } });
|
|
23848
|
+
|
|
23849
|
+
/*
|
|
23850
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
23851
|
+
* This software is released under MIT license.
|
|
23852
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
23853
|
+
*/
|
|
23854
|
+
|
|
23855
|
+
/*
|
|
23856
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
23857
|
+
* This software is released under MIT license.
|
|
23858
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
23859
|
+
*/
|
|
23860
|
+
|
|
23861
|
+
/*
|
|
23862
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
23863
|
+
* This software is released under MIT license.
|
|
23864
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
23865
|
+
*
|
|
23866
|
+
*/
|
|
23867
|
+
|
|
23868
|
+
/*
|
|
23869
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
23870
|
+
* This software is released under MIT license.
|
|
23871
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
23872
|
+
*
|
|
23873
|
+
*/
|
|
23874
|
+
|
|
23875
|
+
/*
|
|
23876
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
23877
|
+
* This software is released under MIT license.
|
|
23878
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
23879
|
+
*/
|
|
23880
|
+
|
|
23881
|
+
/*
|
|
23882
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
23883
|
+
* This software is released under MIT license.
|
|
23884
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
23885
|
+
*/
|
|
23886
|
+
|
|
23887
|
+
/*
|
|
23888
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
23889
|
+
* This software is released under MIT license.
|
|
23890
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
23891
|
+
*/
|
|
23892
|
+
|
|
23893
|
+
/*
|
|
23894
|
+
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
23895
|
+
* This software is released under MIT license.
|
|
23896
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
23897
|
+
*/
|
|
23898
|
+
class ClrWizardStepnavItem {
|
|
23899
|
+
constructor(navService, pageCollection, commonStrings) {
|
|
23900
|
+
this.navService = navService;
|
|
23901
|
+
this.pageCollection = pageCollection;
|
|
23902
|
+
this.commonStrings = commonStrings;
|
|
23903
|
+
}
|
|
23904
|
+
pageGuard() {
|
|
23905
|
+
if (!this.page) {
|
|
23906
|
+
throw new Error('Wizard stepnav item is not associated with a wizard page.');
|
|
23907
|
+
}
|
|
23908
|
+
}
|
|
23909
|
+
get id() {
|
|
23910
|
+
this.pageGuard();
|
|
23911
|
+
return this.pageCollection.getStepItemIdForPage(this.page);
|
|
23912
|
+
}
|
|
23913
|
+
get stepAriaCurrent() {
|
|
23914
|
+
return this.isCurrent && 'step';
|
|
23915
|
+
}
|
|
23916
|
+
get isDisabled() {
|
|
23917
|
+
this.pageGuard();
|
|
23918
|
+
return this.page.disabled || this.navService.wizardStopNavigation || this.navService.wizardDisableStepnav;
|
|
23919
|
+
}
|
|
23920
|
+
get isCurrent() {
|
|
23921
|
+
this.pageGuard();
|
|
23922
|
+
return this.page.current;
|
|
23923
|
+
}
|
|
23924
|
+
get isComplete() {
|
|
23925
|
+
this.pageGuard();
|
|
23926
|
+
return this.page.completed;
|
|
23927
|
+
}
|
|
23928
|
+
get hasError() {
|
|
23929
|
+
this.pageGuard();
|
|
23930
|
+
return this.page.hasError && this.isComplete;
|
|
23931
|
+
}
|
|
23932
|
+
get canNavigate() {
|
|
23933
|
+
this.pageGuard();
|
|
23934
|
+
return this.pageCollection.previousPageIsCompleted(this.page);
|
|
23935
|
+
}
|
|
23936
|
+
click() {
|
|
23937
|
+
this.pageGuard();
|
|
23938
|
+
// if we click on our own stepnav or a disabled stepnav, we don't want to do anything
|
|
23939
|
+
if (this.isDisabled || this.isCurrent) {
|
|
23940
|
+
return;
|
|
23941
|
+
}
|
|
23942
|
+
this.navService.goTo(this.page);
|
|
23943
|
+
}
|
|
23944
|
+
}
|
|
23945
|
+
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 });
|
|
23946
|
+
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: `
|
|
23947
|
+
<button
|
|
23948
|
+
type="button"
|
|
23949
|
+
class="btn btn-link clr-wizard-stepnav-link"
|
|
23950
|
+
(click)="click()"
|
|
23951
|
+
[attr.disabled]="isDisabled ? '' : null"
|
|
23952
|
+
>
|
|
23953
|
+
<span class="clr-wizard-stepnav-link-suffix">
|
|
23954
|
+
<cds-icon
|
|
23955
|
+
shape="error-standard"
|
|
23956
|
+
status="danger"
|
|
23957
|
+
class="clr-wizard-stepnav-item-error-icon"
|
|
23958
|
+
*ngIf="hasError"
|
|
23959
|
+
></cds-icon>
|
|
23960
|
+
<ng-content *ngIf="!hasError"></ng-content>
|
|
23961
|
+
</span>
|
|
23962
|
+
<span class="clr-wizard-stepnav-link-title">
|
|
23963
|
+
<ng-template [ngTemplateOutlet]="page.navTitle"></ng-template>
|
|
23964
|
+
</span>
|
|
23965
|
+
<span *ngIf="hasError" class="clr-sr-only">{{ commonStrings.keys.wizardStepError }}</span>
|
|
23966
|
+
<span *ngIf="!hasError && isComplete" class="clr-sr-only">{{ commonStrings.keys.wizardStepSuccess }}</span>
|
|
23967
|
+
</button>
|
|
23968
|
+
`, 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"] }] });
|
|
23969
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrWizardStepnavItem, decorators: [{
|
|
23970
|
+
type: Component,
|
|
23971
|
+
args: [{
|
|
23972
|
+
selector: '[clr-wizard-stepnav-item]',
|
|
23973
|
+
template: `
|
|
23974
|
+
<button
|
|
23975
|
+
type="button"
|
|
23976
|
+
class="btn btn-link clr-wizard-stepnav-link"
|
|
23977
|
+
(click)="click()"
|
|
23978
|
+
[attr.disabled]="isDisabled ? '' : null"
|
|
23979
|
+
>
|
|
23980
|
+
<span class="clr-wizard-stepnav-link-suffix">
|
|
23981
|
+
<cds-icon
|
|
23982
|
+
shape="error-standard"
|
|
23983
|
+
status="danger"
|
|
23984
|
+
class="clr-wizard-stepnav-item-error-icon"
|
|
23985
|
+
*ngIf="hasError"
|
|
23986
|
+
></cds-icon>
|
|
23987
|
+
<ng-content *ngIf="!hasError"></ng-content>
|
|
23988
|
+
</span>
|
|
23989
|
+
<span class="clr-wizard-stepnav-link-title">
|
|
23990
|
+
<ng-template [ngTemplateOutlet]="page.navTitle"></ng-template>
|
|
23991
|
+
</span>
|
|
23992
|
+
<span *ngIf="hasError" class="clr-sr-only">{{ commonStrings.keys.wizardStepError }}</span>
|
|
23993
|
+
<span *ngIf="!hasError && isComplete" class="clr-sr-only">{{ commonStrings.keys.wizardStepSuccess }}</span>
|
|
23994
|
+
</button>
|
|
23995
|
+
`,
|
|
23996
|
+
host: {
|
|
23997
|
+
'[id]': 'id',
|
|
23998
|
+
'[attr.aria-current]': 'stepAriaCurrent',
|
|
23999
|
+
'[attr.aria-controls]': 'id',
|
|
24000
|
+
'[class.clr-nav-link]': 'true',
|
|
24001
|
+
'[class.nav-item]': 'true',
|
|
24002
|
+
'[class.active]': 'isCurrent',
|
|
24003
|
+
'[class.disabled]': 'isDisabled',
|
|
24004
|
+
'[class.no-click]': '!canNavigate',
|
|
24005
|
+
'[class.complete]': 'isComplete',
|
|
24006
|
+
'[class.error]': 'hasError',
|
|
24007
|
+
},
|
|
24008
|
+
}]
|
|
24009
|
+
}], ctorParameters: function () { return [{ type: WizardNavigationService }, { type: PageCollectionService }, { type: ClrCommonStringsService }]; }, propDecorators: { page: [{
|
|
24010
|
+
type: Input,
|
|
24011
|
+
args: ['page']
|
|
24012
|
+
}] } });
|
|
24013
|
+
|
|
24014
|
+
/*
|
|
24015
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
24016
|
+
* This software is released under MIT license.
|
|
24017
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
24018
|
+
*/
|
|
24019
|
+
class ClrWizardStepnav {
|
|
24020
|
+
constructor(pageService) {
|
|
24021
|
+
this.pageService = pageService;
|
|
24022
|
+
}
|
|
24023
|
+
}
|
|
24024
|
+
ClrWizardStepnav.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrWizardStepnav, deps: [{ token: PageCollectionService }], target: i0.ɵɵFactoryTarget.Component });
|
|
24025
|
+
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: `
|
|
24026
|
+
<div class="clr-wizard-stepnav-list">
|
|
24027
|
+
<div
|
|
24028
|
+
*ngFor="let page of pageService.pages; let i = index"
|
|
24029
|
+
clr-wizard-stepnav-item
|
|
24030
|
+
[page]="page"
|
|
24031
|
+
class="clr-wizard-stepnav-item"
|
|
24032
|
+
>
|
|
24033
|
+
{{ i + 1 }}
|
|
24034
|
+
</div>
|
|
24035
|
+
</div>
|
|
24036
|
+
`, isInline: true, components: [{ type: ClrWizardStepnavItem, selector: "[clr-wizard-stepnav-item]", inputs: ["page"] }], directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
24037
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrWizardStepnav, decorators: [{
|
|
24038
|
+
type: Component,
|
|
24039
|
+
args: [{
|
|
24040
|
+
selector: 'clr-wizard-stepnav',
|
|
24041
|
+
template: `
|
|
24042
|
+
<div class="clr-wizard-stepnav-list">
|
|
24043
|
+
<div
|
|
24044
|
+
*ngFor="let page of pageService.pages; let i = index"
|
|
24045
|
+
clr-wizard-stepnav-item
|
|
24046
|
+
[page]="page"
|
|
24047
|
+
class="clr-wizard-stepnav-item"
|
|
24048
|
+
>
|
|
24049
|
+
{{ i + 1 }}
|
|
24050
|
+
</div>
|
|
24051
|
+
</div>
|
|
24052
|
+
`,
|
|
24053
|
+
host: { class: 'clr-wizard-stepnav' },
|
|
24054
|
+
}]
|
|
24055
|
+
}], ctorParameters: function () { return [{ type: PageCollectionService }]; } });
|
|
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
|
+
class ClrWizard {
|
|
24063
|
+
constructor(platformId, navService, pageCollection, buttonService, headerActionService, elementRef, differs) {
|
|
24064
|
+
this.platformId = platformId;
|
|
24065
|
+
this.navService = navService;
|
|
24066
|
+
this.pageCollection = pageCollection;
|
|
24067
|
+
this.buttonService = buttonService;
|
|
24068
|
+
this.headerActionService = headerActionService;
|
|
24069
|
+
this.elementRef = elementRef;
|
|
24070
|
+
/**
|
|
24071
|
+
* Set the modal size of the wizard. Set using `[clrWizardSize]` input.
|
|
24072
|
+
*/
|
|
23743
24073
|
this.size = 'xl';
|
|
23744
24074
|
/**
|
|
23745
24075
|
* Tells the modal part of the wizard whether it should have a close "X"
|
|
@@ -24109,7 +24439,7 @@ class ClrWizard {
|
|
|
24109
24439
|
}
|
|
24110
24440
|
}
|
|
24111
24441
|
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 });
|
|
24112
|
-
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:
|
|
24442
|
+
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" }] });
|
|
24113
24443
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrWizard, decorators: [{
|
|
24114
24444
|
type: Component,
|
|
24115
24445
|
args: [{ selector: 'clr-wizard', providers: [WizardNavigationService, PageCollectionService, ButtonHubService, HeaderActionService], host: {
|
|
@@ -24445,13 +24775,6 @@ var AccordionStatus;
|
|
|
24445
24775
|
AccordionStatus["Complete"] = "complete";
|
|
24446
24776
|
})(AccordionStatus || (AccordionStatus = {}));
|
|
24447
24777
|
|
|
24448
|
-
/*
|
|
24449
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
24450
|
-
* This software is released under MIT license.
|
|
24451
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
24452
|
-
*/
|
|
24453
|
-
const defaultAnimationTiming = '0.2s ease-in-out';
|
|
24454
|
-
|
|
24455
24778
|
/*
|
|
24456
24779
|
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
24457
24780
|
* This software is released under MIT license.
|
|
@@ -24684,7 +25007,7 @@ class ClrAccordionPanel {
|
|
|
24684
25007
|
}
|
|
24685
25008
|
}
|
|
24686
25009
|
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 });
|
|
24687
|
-
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 role=\"group\" [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:
|
|
25010
|
+
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 role=\"group\" [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 });
|
|
24688
25011
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrAccordionPanel, decorators: [{
|
|
24689
25012
|
type: Component,
|
|
24690
25013
|
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 role=\"group\" [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" }]
|
|
@@ -25116,7 +25439,7 @@ class ClrStepperPanel extends ClrAccordionPanel {
|
|
|
25116
25439
|
}
|
|
25117
25440
|
}
|
|
25118
25441
|
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 });
|
|
25119
|
-
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 role=\"group\" [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:
|
|
25442
|
+
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 role=\"group\" [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 });
|
|
25120
25443
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrStepperPanel, decorators: [{
|
|
25121
25444
|
type: Component,
|
|
25122
25445
|
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 role=\"group\" [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" }]
|
|
@@ -25429,7 +25752,7 @@ ClrProgressBar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version:
|
|
|
25429
25752
|
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: `
|
|
25430
25753
|
<progress [id]="id" [attr.max]="max" [attr.value]="value" [attr.data-displayval]="displayValue"></progress>
|
|
25431
25754
|
<span *ngIf="displayStringValue()">{{ displayValue }}</span>
|
|
25432
|
-
`, isInline: true, directives: [{ type:
|
|
25755
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
25433
25756
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrProgressBar, decorators: [{
|
|
25434
25757
|
type: Component,
|
|
25435
25758
|
args: [{
|
|
@@ -25707,7 +26030,7 @@ ClrTimelineStep.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
|
|
|
25707
26030
|
<ng-template #processing>
|
|
25708
26031
|
<clr-spinner clrMedium [attr.aria-label]="iconAriaLabel"></clr-spinner>
|
|
25709
26032
|
</ng-template>
|
|
25710
|
-
`, isInline: true, components: [{ type: ClrSpinner, selector: "clr-spinner", inputs: ["clrInline", "clrInverse", "clrSmall", "clrMedium"] }], directives: [{ type:
|
|
26033
|
+
`, 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" }] });
|
|
25711
26034
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrTimelineStep, decorators: [{
|
|
25712
26035
|
type: Component,
|
|
25713
26036
|
args: [{
|
|
@@ -25867,150 +26190,30 @@ ClarityModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version:
|
|
|
25867
26190
|
ClrTimelineModule] });
|
|
25868
26191
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClarityModule, decorators: [{
|
|
25869
26192
|
type: NgModule,
|
|
25870
|
-
args: [{
|
|
25871
|
-
exports: [
|
|
25872
|
-
ClrEmphasisModule,
|
|
25873
|
-
ClrDataModule,
|
|
25874
|
-
ClrIconModule,
|
|
25875
|
-
ClrModalModule,
|
|
25876
|
-
ClrLoadingModule,
|
|
25877
|
-
ClrConditionalModule,
|
|
25878
|
-
ClrFocusTrapModule,
|
|
25879
|
-
ClrFocusOnViewInitModule,
|
|
25880
|
-
ClrButtonModule,
|
|
25881
|
-
ClrFormsModule,
|
|
25882
|
-
ClrLayoutModule,
|
|
25883
|
-
ClrPopoverModule,
|
|
25884
|
-
ClrWizardModule,
|
|
25885
|
-
ClrDragAndDropModule,
|
|
25886
|
-
ClrStepperModule,
|
|
25887
|
-
ClrSpinnerModule,
|
|
25888
|
-
ClrProgressBarModule,
|
|
25889
|
-
ClrPopoverModuleNext,
|
|
25890
|
-
ClrTimelineModule,
|
|
25891
|
-
],
|
|
25892
|
-
}]
|
|
25893
|
-
}] });
|
|
25894
|
-
|
|
25895
|
-
/*
|
|
25896
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
25897
|
-
* This software is released under MIT license.
|
|
25898
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
25899
|
-
*/
|
|
25900
|
-
|
|
25901
|
-
/*
|
|
25902
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
25903
|
-
* This software is released under MIT license.
|
|
25904
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
25905
|
-
*/
|
|
25906
|
-
|
|
25907
|
-
/*
|
|
25908
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
25909
|
-
* This software is released under MIT license.
|
|
25910
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
25911
|
-
*/
|
|
25912
|
-
|
|
25913
|
-
/*
|
|
25914
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
25915
|
-
* This software is released under MIT license.
|
|
25916
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
25917
|
-
*/
|
|
25918
|
-
|
|
25919
|
-
/*
|
|
25920
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
25921
|
-
* This software is released under MIT license.
|
|
25922
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
25923
|
-
*/
|
|
25924
|
-
|
|
25925
|
-
/*
|
|
25926
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
25927
|
-
* This software is released under MIT license.
|
|
25928
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
25929
|
-
*/
|
|
25930
|
-
|
|
25931
|
-
/*
|
|
25932
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
25933
|
-
* This software is released under MIT license.
|
|
25934
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
25935
|
-
*/
|
|
25936
|
-
|
|
25937
|
-
/*
|
|
25938
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
25939
|
-
* This software is released under MIT license.
|
|
25940
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
25941
|
-
*/
|
|
25942
|
-
|
|
25943
|
-
/*
|
|
25944
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
25945
|
-
* This software is released under MIT license.
|
|
25946
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
25947
|
-
*/
|
|
25948
|
-
|
|
25949
|
-
/*
|
|
25950
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
25951
|
-
* This software is released under MIT license.
|
|
25952
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
25953
|
-
*/
|
|
25954
|
-
|
|
25955
|
-
/*
|
|
25956
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
25957
|
-
* This software is released under MIT license.
|
|
25958
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
25959
|
-
*/
|
|
25960
|
-
|
|
25961
|
-
/*
|
|
25962
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
25963
|
-
* This software is released under MIT license.
|
|
25964
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
25965
|
-
*/
|
|
25966
|
-
|
|
25967
|
-
/*
|
|
25968
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
25969
|
-
* This software is released under MIT license.
|
|
25970
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
25971
|
-
*/
|
|
25972
|
-
|
|
25973
|
-
/*
|
|
25974
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
25975
|
-
* This software is released under MIT license.
|
|
25976
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
25977
|
-
*/
|
|
25978
|
-
|
|
25979
|
-
/*
|
|
25980
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
25981
|
-
* This software is released under MIT license.
|
|
25982
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
25983
|
-
*/
|
|
25984
|
-
|
|
25985
|
-
/*
|
|
25986
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
25987
|
-
* This software is released under MIT license.
|
|
25988
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
25989
|
-
*/
|
|
25990
|
-
|
|
25991
|
-
/*
|
|
25992
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
25993
|
-
* This software is released under MIT license.
|
|
25994
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
25995
|
-
*/
|
|
25996
|
-
|
|
25997
|
-
/*
|
|
25998
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
25999
|
-
* This software is released under MIT license.
|
|
26000
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26001
|
-
*/
|
|
26002
|
-
|
|
26003
|
-
/*
|
|
26004
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
26005
|
-
* This software is released under MIT license.
|
|
26006
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26007
|
-
*/
|
|
26008
|
-
|
|
26009
|
-
/*
|
|
26010
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
26011
|
-
* This software is released under MIT license.
|
|
26012
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26013
|
-
*/
|
|
26193
|
+
args: [{
|
|
26194
|
+
exports: [
|
|
26195
|
+
ClrEmphasisModule,
|
|
26196
|
+
ClrDataModule,
|
|
26197
|
+
ClrIconModule,
|
|
26198
|
+
ClrModalModule,
|
|
26199
|
+
ClrLoadingModule,
|
|
26200
|
+
ClrConditionalModule,
|
|
26201
|
+
ClrFocusTrapModule,
|
|
26202
|
+
ClrFocusOnViewInitModule,
|
|
26203
|
+
ClrButtonModule,
|
|
26204
|
+
ClrFormsModule,
|
|
26205
|
+
ClrLayoutModule,
|
|
26206
|
+
ClrPopoverModule,
|
|
26207
|
+
ClrWizardModule,
|
|
26208
|
+
ClrDragAndDropModule,
|
|
26209
|
+
ClrStepperModule,
|
|
26210
|
+
ClrSpinnerModule,
|
|
26211
|
+
ClrProgressBarModule,
|
|
26212
|
+
ClrPopoverModuleNext,
|
|
26213
|
+
ClrTimelineModule,
|
|
26214
|
+
],
|
|
26215
|
+
}]
|
|
26216
|
+
}] });
|
|
26014
26217
|
|
|
26015
26218
|
/*
|
|
26016
26219
|
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
@@ -26071,16 +26274,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
26071
26274
|
* This software is released under MIT license.
|
|
26072
26275
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26073
26276
|
*/
|
|
26074
|
-
const CLR_MENU_POSITIONS = [
|
|
26075
|
-
'bottom-left',
|
|
26076
|
-
'bottom-right',
|
|
26077
|
-
'top-left',
|
|
26078
|
-
'top-right',
|
|
26079
|
-
'left-bottom',
|
|
26080
|
-
'left-top',
|
|
26081
|
-
'right-bottom',
|
|
26082
|
-
'right-top',
|
|
26083
|
-
];
|
|
26084
26277
|
|
|
26085
26278
|
/*
|
|
26086
26279
|
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
@@ -26111,14 +26304,6 @@ const CLR_MENU_POSITIONS = [
|
|
|
26111
26304
|
* This software is released under MIT license.
|
|
26112
26305
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26113
26306
|
*/
|
|
26114
|
-
function collapse() {
|
|
26115
|
-
'use strict';
|
|
26116
|
-
return [
|
|
26117
|
-
state('true', style({ height: 0, 'overflow-y': 'hidden' })),
|
|
26118
|
-
transition('true => false', [animate(defaultAnimationTiming, style({ height: '*', 'overflow-y': 'hidden' }))]),
|
|
26119
|
-
transition('false => true', [style({ height: '*', 'overflow-y': 'hidden' }), animate(defaultAnimationTiming)]),
|
|
26120
|
-
];
|
|
26121
|
-
}
|
|
26122
26307
|
|
|
26123
26308
|
/*
|
|
26124
26309
|
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
@@ -26131,12 +26316,6 @@ function collapse() {
|
|
|
26131
26316
|
* This software is released under MIT license.
|
|
26132
26317
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26133
26318
|
*/
|
|
26134
|
-
function fade(opacity = 1) {
|
|
26135
|
-
return [
|
|
26136
|
-
transition('void => *', [style({ opacity: 0 }), animate(defaultAnimationTiming, style({ opacity: opacity }))]),
|
|
26137
|
-
transition('* => void', [animate(defaultAnimationTiming, style({ opacity: 0 }))]),
|
|
26138
|
-
];
|
|
26139
|
-
}
|
|
26140
26319
|
|
|
26141
26320
|
/*
|
|
26142
26321
|
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
@@ -26149,28 +26328,6 @@ function fade(opacity = 1) {
|
|
|
26149
26328
|
* This software is released under MIT license.
|
|
26150
26329
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26151
26330
|
*/
|
|
26152
|
-
function fadeSlide(direction) {
|
|
26153
|
-
let transform = null;
|
|
26154
|
-
if (direction === 'up') {
|
|
26155
|
-
transform = 'translate(0, 25%)';
|
|
26156
|
-
}
|
|
26157
|
-
else if (direction === 'down') {
|
|
26158
|
-
transform = 'translate(0, -25%)';
|
|
26159
|
-
}
|
|
26160
|
-
else if (direction === 'left') {
|
|
26161
|
-
transform = 'translate(25%, 0)';
|
|
26162
|
-
}
|
|
26163
|
-
else if (direction === 'right') {
|
|
26164
|
-
transform = 'translate(-25%, 0)';
|
|
26165
|
-
}
|
|
26166
|
-
else {
|
|
26167
|
-
throw new Error('Unknown direction ' + direction + ' for slide animation.');
|
|
26168
|
-
}
|
|
26169
|
-
return [
|
|
26170
|
-
transition('void => *', [style({ opacity: 0, transform: transform }), animate(defaultAnimationTiming)]),
|
|
26171
|
-
transition('* => void', [animate(defaultAnimationTiming, style({ opacity: 0, transform: transform }))]),
|
|
26172
|
-
];
|
|
26173
|
-
}
|
|
26174
26331
|
|
|
26175
26332
|
/*
|
|
26176
26333
|
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
@@ -26183,28 +26340,6 @@ function fadeSlide(direction) {
|
|
|
26183
26340
|
* This software is released under MIT license.
|
|
26184
26341
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26185
26342
|
*/
|
|
26186
|
-
function slide(direction) {
|
|
26187
|
-
let transform = null;
|
|
26188
|
-
if (direction === 'up') {
|
|
26189
|
-
transform = 'translate(0, 25%)';
|
|
26190
|
-
}
|
|
26191
|
-
else if (direction === 'down') {
|
|
26192
|
-
transform = 'translate(0, -25%)';
|
|
26193
|
-
}
|
|
26194
|
-
else if (direction === 'left') {
|
|
26195
|
-
transform = 'translate(25%, 0)';
|
|
26196
|
-
}
|
|
26197
|
-
else if (direction === 'right') {
|
|
26198
|
-
transform = 'translate(-25%, 0)';
|
|
26199
|
-
}
|
|
26200
|
-
else {
|
|
26201
|
-
throw new Error('Unknown direction ' + direction + ' for slide animation.');
|
|
26202
|
-
}
|
|
26203
|
-
return [
|
|
26204
|
-
transition('void => *', [style({ transform: transform }), animate(defaultAnimationTiming)]),
|
|
26205
|
-
transition('* => void', [animate(defaultAnimationTiming, style({ transform: transform }))]),
|
|
26206
|
-
];
|
|
26207
|
-
}
|
|
26208
26343
|
|
|
26209
26344
|
/*
|
|
26210
26345
|
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
@@ -26241,158 +26376,6 @@ function slide(direction) {
|
|
|
26241
26376
|
* This software is released under MIT license.
|
|
26242
26377
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26243
26378
|
*/
|
|
26244
|
-
var ClrAriaLivePoliteness;
|
|
26245
|
-
(function (ClrAriaLivePoliteness) {
|
|
26246
|
-
ClrAriaLivePoliteness["off"] = "off";
|
|
26247
|
-
ClrAriaLivePoliteness["polite"] = "polite";
|
|
26248
|
-
ClrAriaLivePoliteness["assertive"] = "assertive";
|
|
26249
|
-
})(ClrAriaLivePoliteness || (ClrAriaLivePoliteness = {}));
|
|
26250
|
-
/**
|
|
26251
|
-
* Time in milliseconds before inserting the content into the container
|
|
26252
|
-
*/
|
|
26253
|
-
const ARIA_LIVE_TICK = 100;
|
|
26254
|
-
/**
|
|
26255
|
-
* @deprecated
|
|
26256
|
-
*
|
|
26257
|
-
* -- ClrAriaLiveService is deprecated in 5.0 to be removed in 6.0 --
|
|
26258
|
-
* Please consider using the LiveAnnouncer in the Angular Material CDK
|
|
26259
|
-
* if your project needs this functionality.
|
|
26260
|
-
* More info: https://material.angular.io/cdk/a11y/overview#example-1
|
|
26261
|
-
*
|
|
26262
|
-
* This service handle `aria-live` accessibility attribute. The issue is that you need
|
|
26263
|
-
* to have the DOM Element with attribute `aria-live` before you could insert content
|
|
26264
|
-
* and SR (Screen Reader) pick the change and announce it.
|
|
26265
|
-
*
|
|
26266
|
-
* ```typescript
|
|
26267
|
-
* import { ClrAriaLiveService } from 'src/clr-angular/utils/a11y/aria-live.service';
|
|
26268
|
-
*
|
|
26269
|
-
* @Component({
|
|
26270
|
-
* selector: 'clr-demo-component',
|
|
26271
|
-
* providers: [ClrAriaLiveService],
|
|
26272
|
-
* template: `
|
|
26273
|
-
* <ng-content></ng-content>
|
|
26274
|
-
* `,
|
|
26275
|
-
* })
|
|
26276
|
-
* export class DemoComponent {
|
|
26277
|
-
* constructor(ariaLiveService: ClrAriaLiveService) {}
|
|
26278
|
-
*
|
|
26279
|
-
* public actionThatWillTriggerChange() {
|
|
26280
|
-
* this.ariaLiveService.announce('message that I want to announce to SR');
|
|
26281
|
-
* }
|
|
26282
|
-
* }
|
|
26283
|
-
* ```
|
|
26284
|
-
*
|
|
26285
|
-
*/
|
|
26286
|
-
class ClrAriaLiveService {
|
|
26287
|
-
constructor(ngZone, _document, platformId) {
|
|
26288
|
-
this.ngZone = ngZone;
|
|
26289
|
-
this.platformId = platformId;
|
|
26290
|
-
this._id = `clr-aria-live-element-${uniqueIdFactory()}`;
|
|
26291
|
-
this.document = _document;
|
|
26292
|
-
}
|
|
26293
|
-
/**
|
|
26294
|
-
* get access to the internal HTML `id` that gonna be used for the AriaLive container.
|
|
26295
|
-
* @return ID of the DOM Element as string.
|
|
26296
|
-
*/
|
|
26297
|
-
get id() {
|
|
26298
|
-
return this._id;
|
|
26299
|
-
}
|
|
26300
|
-
/**
|
|
26301
|
-
* Append text content inside the AriaLive Container. This method will check if the
|
|
26302
|
-
* DOM Element is existing if not it will create one for us and the will apply the text.
|
|
26303
|
-
*
|
|
26304
|
-
* ```typescript
|
|
26305
|
-
* this.ariaLiveService.announce(this.el.nativeElement);
|
|
26306
|
-
* // or
|
|
26307
|
-
* this.ariaLiveService.announce('Message to announce to SR');
|
|
26308
|
-
* ```
|
|
26309
|
-
*
|
|
26310
|
-
* @remark
|
|
26311
|
-
* When second argument is `AriaLivePoliteness.off` we won't create aria container or update it.
|
|
26312
|
-
* The reason for that is that we don't want to do additional work if the SR will ignore it.
|
|
26313
|
-
*
|
|
26314
|
-
* @param message - This could be simple string or HTMLElement
|
|
26315
|
-
* @param politeness - 'polite', 'assertive' or 'off'
|
|
26316
|
-
*/
|
|
26317
|
-
announce(message, politeness = ClrAriaLivePoliteness.polite) {
|
|
26318
|
-
if (politeness === ClrAriaLivePoliteness.off) {
|
|
26319
|
-
return;
|
|
26320
|
-
}
|
|
26321
|
-
if (!this.ariaLiveElement && isPlatformBrowser(this.platformId)) {
|
|
26322
|
-
this.ariaLiveElement = this.createContainer();
|
|
26323
|
-
}
|
|
26324
|
-
message = typeof message !== 'string' && isPlatformBrowser(this.platformId) ? message.textContent : message;
|
|
26325
|
-
// when there is no message do NOTHING!
|
|
26326
|
-
if (!message) {
|
|
26327
|
-
return;
|
|
26328
|
-
}
|
|
26329
|
-
this.ariaLiveElement.setAttribute('aria-live', politeness);
|
|
26330
|
-
// This 100ms timeout is necessary for some browser + screen-reader combinations:
|
|
26331
|
-
// - Both JAWS and NVDA over IE11 will not announce anything without a non-zero timeout.
|
|
26332
|
-
// - With Chrome and IE11 with NVDA or JAWS, a repeated (identical) message won't be read a
|
|
26333
|
-
// second time without clearing and then using a non-zero delay.
|
|
26334
|
-
// (using JAWS 17 at time of this writing).
|
|
26335
|
-
this.ngZone.runOutsideAngular(() => {
|
|
26336
|
-
// This clearTimeout will stop all older messages from announcing
|
|
26337
|
-
// in the case where the messages are comming too fast we gonna try to append only
|
|
26338
|
-
// the last one. That's what the SR will try to do anyway.
|
|
26339
|
-
clearTimeout(this.previousTimeout);
|
|
26340
|
-
this.previousTimeout = setTimeout(() => {
|
|
26341
|
-
this.ariaLiveElement.textContent = message;
|
|
26342
|
-
}, ARIA_LIVE_TICK);
|
|
26343
|
-
});
|
|
26344
|
-
}
|
|
26345
|
-
/**
|
|
26346
|
-
* onDestroy life cycle - must stop all active setTimeouts and remove the AriaLive
|
|
26347
|
-
* container from the document.
|
|
26348
|
-
*/
|
|
26349
|
-
ngOnDestroy() {
|
|
26350
|
-
clearTimeout(this.previousTimeout);
|
|
26351
|
-
if (isPlatformBrowser(this.platformId) && this.ariaLiveElement) {
|
|
26352
|
-
this.document.body.removeChild(this.ariaLiveElement);
|
|
26353
|
-
this.ariaLiveElement = null;
|
|
26354
|
-
}
|
|
26355
|
-
}
|
|
26356
|
-
/**
|
|
26357
|
-
* Create AriaLive DOM element as a last child of the document.
|
|
26358
|
-
* After the element is created, we gonna apply Clarity class to hide it from
|
|
26359
|
-
* the screen and set the `aria-live` politness.
|
|
26360
|
-
*
|
|
26361
|
-
* `clr-sr-only` is the CSS class that is used to hide the element from the screen.
|
|
26362
|
-
*
|
|
26363
|
-
* @remark
|
|
26364
|
-
* Calling this method multiple times will create multiple DOM Elements, that
|
|
26365
|
-
* won't be tracked and will be GC after the service is destroyed.
|
|
26366
|
-
*
|
|
26367
|
-
* @return AriaLive container as HTMLElement
|
|
26368
|
-
*
|
|
26369
|
-
*/
|
|
26370
|
-
createContainer() {
|
|
26371
|
-
const ariaLiveElement = this.document.createElement('div');
|
|
26372
|
-
ariaLiveElement.setAttribute('id', this.id);
|
|
26373
|
-
// Use clarity screen reader class to hide the dom element
|
|
26374
|
-
// and fix the scrollbar shake
|
|
26375
|
-
ariaLiveElement.classList.add('clr-sr-only');
|
|
26376
|
-
ariaLiveElement.setAttribute('aria-atomic', 'true');
|
|
26377
|
-
ariaLiveElement.setAttribute('aria-live', ClrAriaLivePoliteness.polite);
|
|
26378
|
-
this.document.body.appendChild(ariaLiveElement);
|
|
26379
|
-
return ariaLiveElement;
|
|
26380
|
-
}
|
|
26381
|
-
}
|
|
26382
|
-
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 });
|
|
26383
|
-
ClrAriaLiveService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrAriaLiveService, providedIn: 'root' });
|
|
26384
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrAriaLiveService, decorators: [{
|
|
26385
|
-
type: Injectable,
|
|
26386
|
-
args: [{
|
|
26387
|
-
providedIn: 'root',
|
|
26388
|
-
}]
|
|
26389
|
-
}], ctorParameters: function () { return [{ type: i0.NgZone }, { type: undefined, decorators: [{
|
|
26390
|
-
type: Inject,
|
|
26391
|
-
args: [DOCUMENT]
|
|
26392
|
-
}] }, { type: undefined, decorators: [{
|
|
26393
|
-
type: Inject,
|
|
26394
|
-
args: [PLATFORM_ID]
|
|
26395
|
-
}] }]; } });
|
|
26396
26379
|
|
|
26397
26380
|
/*
|
|
26398
26381
|
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
@@ -26410,14 +26393,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
26410
26393
|
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
26411
26394
|
* This software is released under MIT license.
|
|
26412
26395
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26413
|
-
*
|
|
26414
26396
|
*/
|
|
26397
|
+
const CLR_MENU_POSITIONS = [
|
|
26398
|
+
'bottom-left',
|
|
26399
|
+
'bottom-right',
|
|
26400
|
+
'top-left',
|
|
26401
|
+
'top-right',
|
|
26402
|
+
'left-bottom',
|
|
26403
|
+
'left-top',
|
|
26404
|
+
'right-bottom',
|
|
26405
|
+
'right-top',
|
|
26406
|
+
];
|
|
26415
26407
|
|
|
26416
26408
|
/*
|
|
26417
26409
|
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
26418
26410
|
* This software is released under MIT license.
|
|
26419
26411
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26420
|
-
*
|
|
26421
26412
|
*/
|
|
26422
26413
|
|
|
26423
26414
|
/*
|