@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/fesm2015/clr-angular.mjs
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Directive, NgModule, Injectable, Inject, PLATFORM_ID, EventEmitter, Input, Output, HostListener, Optional, Component, SkipSelf, ViewChild, InjectionToken, ContentChildren, ComponentFactoryResolver, ElementRef, HostBinding, ContentChild, Self, Attribute, LOCALE_ID, Renderer2, ChangeDetectionStrategy, ViewContainerRef, TemplateRef } from '@angular/core';
|
|
3
3
|
import { ClarityIcons, ellipsisHorizontalIcon, exclamationCircleIcon, checkCircleIcon, angleIcon, eventIcon, calendarIcon, eyeHideIcon, eyeIcon, windowCloseIcon, ellipsisVerticalIcon, viewColumnsIcon, arrowIcon, timesIcon, stepForward2Icon, angleDoubleIcon, filterGridCircleIcon, filterGridIcon, infoCircleIcon, exclamationTriangleIcon, errorStandardIcon, circleIcon, dotCircleIcon, successStandardIcon } from '@cds/core/icon';
|
|
4
|
-
import * as
|
|
4
|
+
import * as i4 from '@angular/common';
|
|
5
5
|
import { CommonModule, DOCUMENT, isPlatformBrowser, getLocaleDayNames, FormStyle, TranslationWidth, getLocaleMonthNames, getLocaleFirstDayOfWeek, getLocaleDateFormat, FormatWidth, NgForOf } from '@angular/common';
|
|
6
6
|
import { filter, debounceTime, first, switchMap, take, map, startWith, tap, distinctUntilChanged, pairwise } from 'rxjs/operators';
|
|
7
|
-
import * as i3
|
|
7
|
+
import * as i3 from 'rxjs';
|
|
8
8
|
import { Subject, fromEvent, BehaviorSubject, of, ReplaySubject, isObservable, combineLatest, Observable } from 'rxjs';
|
|
9
9
|
import { trigger, transition, style, animate, keyframes, state } from '@angular/animations';
|
|
10
10
|
import * as i1 from '@angular/forms';
|
|
@@ -1233,7 +1233,7 @@ ClrButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13
|
|
|
1233
1233
|
<ng-content></ng-content>
|
|
1234
1234
|
</button>
|
|
1235
1235
|
</ng-template>
|
|
1236
|
-
`, isInline: true, directives: [{ type:
|
|
1236
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
1237
1237
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrButton, decorators: [{
|
|
1238
1238
|
type: Component,
|
|
1239
1239
|
args: [{
|
|
@@ -1372,7 +1372,7 @@ ClrPopoverPositions['left-bottom'] = {
|
|
|
1372
1372
|
};
|
|
1373
1373
|
|
|
1374
1374
|
/*
|
|
1375
|
-
* Copyright (c) 2016-
|
|
1375
|
+
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
1376
1376
|
* This software is released under MIT license.
|
|
1377
1377
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
1378
1378
|
*/
|
|
@@ -1458,6 +1458,9 @@ const commonStringsDefault = {
|
|
|
1458
1458
|
dategridExpandableEndOf: 'End of',
|
|
1459
1459
|
dategridExpandableRowContent: 'Expandable row content',
|
|
1460
1460
|
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`,
|
|
1461
|
+
// Wizard
|
|
1462
|
+
wizardStepSuccess: 'Completed',
|
|
1463
|
+
wizardStepError: 'Error',
|
|
1461
1464
|
};
|
|
1462
1465
|
|
|
1463
1466
|
/*
|
|
@@ -1606,7 +1609,7 @@ ClrButtonGroup.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
|
|
|
1606
1609
|
ClrPopoverToggleService,
|
|
1607
1610
|
ClrPopoverEventsService,
|
|
1608
1611
|
ClrPopoverPositionService,
|
|
1609
|
-
], queries: [{ propertyName: "buttons", predicate: ClrButton }], ngImport: i0, template: "<!--\n ~ Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n<ng-container *ngFor=\"let inlineButton of inlineButtons\">\n <ng-template [ngTemplateOutlet]=\"inlineButton.templateRef\"></ng-template>\n</ng-container>\n<ng-container *ngIf=\"menuButtons.length > 0\">\n <div class=\"btn-group-overflow open\" [ngClass]=\"menuPosition\" #anchor>\n <button\n class=\"btn dropdown-toggle\"\n clrPopoverAnchor\n clrPopoverOpenCloseButton\n [attr.aria-controls]=\"popoverId\"\n [attr.aria-expanded]=\"open\"\n [attr.aria-label]=\"commonStrings.keys.rowActions\"\n >\n <cds-icon shape=\"ellipsis-horizontal\" [attr.title]=\"commonStrings.keys.more\"></cds-icon>\n </button>\n <div\n role=\"menu\"\n class=\"dropdown-menu clr-button-group-menu\"\n [id]=\"popoverId\"\n [attr.id]=\"popoverId\"\n [attr.aria-hidden]=\"!open\"\n *clrPopoverContent=\"open at popoverPosition; outsideClickToClose: true; scrollToClose: true\"\n >\n <ng-template [ngTemplateOutlet]=\"ref\"></ng-template>\n </div>\n </div>\n</ng-container>\n<ng-template #ref>\n <ng-container *ngFor=\"let menuButton of menuButtons\">\n <ng-template [ngTemplateOutlet]=\"menuButton.templateRef\"></ng-template>\n </ng-container>\n</ng-template>\n", directives: [{ type:
|
|
1612
|
+
], queries: [{ propertyName: "buttons", predicate: ClrButton }], ngImport: i0, template: "<!--\n ~ Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n<ng-container *ngFor=\"let inlineButton of inlineButtons\">\n <ng-template [ngTemplateOutlet]=\"inlineButton.templateRef\"></ng-template>\n</ng-container>\n<ng-container *ngIf=\"menuButtons.length > 0\">\n <div class=\"btn-group-overflow open\" [ngClass]=\"menuPosition\" #anchor>\n <button\n class=\"btn dropdown-toggle\"\n clrPopoverAnchor\n clrPopoverOpenCloseButton\n [attr.aria-controls]=\"popoverId\"\n [attr.aria-expanded]=\"open\"\n [attr.aria-label]=\"commonStrings.keys.rowActions\"\n >\n <cds-icon shape=\"ellipsis-horizontal\" [attr.title]=\"commonStrings.keys.more\"></cds-icon>\n </button>\n <div\n role=\"menu\"\n class=\"dropdown-menu clr-button-group-menu\"\n [id]=\"popoverId\"\n [attr.id]=\"popoverId\"\n [attr.aria-hidden]=\"!open\"\n *clrPopoverContent=\"open at popoverPosition; outsideClickToClose: true; scrollToClose: true\"\n >\n <ng-template [ngTemplateOutlet]=\"ref\"></ng-template>\n </div>\n </div>\n</ng-container>\n<ng-template #ref>\n <ng-container *ngFor=\"let menuButton of menuButtons\">\n <ng-template [ngTemplateOutlet]=\"menuButton.templateRef\"></ng-template>\n </ng-container>\n</ng-template>\n", directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: ClrPopoverAnchor, selector: "[clrPopoverAnchor]" }, { type: ClrPopoverOpenCloseButton, selector: "[clrPopoverOpenCloseButton]", outputs: ["clrPopoverOpenCloseChange"] }, { type: CdsIconCustomTag, selector: "cds-icon" }, { type: ClrPopoverContent, selector: "[clrPopoverContent]", inputs: ["clrPopoverContent", "clrPopoverContentAt", "clrPopoverContentOutsideClickToClose", "clrPopoverContentScrollToClose"] }] });
|
|
1610
1613
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrButtonGroup, decorators: [{
|
|
1611
1614
|
type: Component,
|
|
1612
1615
|
args: [{ selector: 'clr-button-group', providers: [
|
|
@@ -1650,10 +1653,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
1650
1653
|
}] });
|
|
1651
1654
|
|
|
1652
1655
|
/*
|
|
1653
|
-
* Copyright (c) 2016-
|
|
1656
|
+
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
1654
1657
|
* This software is released under MIT license.
|
|
1655
1658
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
1656
1659
|
*/
|
|
1660
|
+
// minimum width to fit loading spinner
|
|
1661
|
+
const MIN_BUTTON_WIDTH = 42;
|
|
1657
1662
|
class ClrLoadingButton {
|
|
1658
1663
|
constructor(el, renderer) {
|
|
1659
1664
|
this.el = el;
|
|
@@ -1694,7 +1699,8 @@ class ClrLoadingButton {
|
|
|
1694
1699
|
setExplicitButtonWidth() {
|
|
1695
1700
|
if (this.el.nativeElement && this.el.nativeElement.getBoundingClientRect) {
|
|
1696
1701
|
const boundingClientRect = this.el.nativeElement.getBoundingClientRect();
|
|
1697
|
-
|
|
1702
|
+
const width = Math.max(MIN_BUTTON_WIDTH, boundingClientRect.width);
|
|
1703
|
+
this.renderer.setStyle(this.el.nativeElement, 'width', `${width}px`);
|
|
1698
1704
|
}
|
|
1699
1705
|
}
|
|
1700
1706
|
}
|
|
@@ -1715,7 +1721,7 @@ ClrLoadingButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versi
|
|
|
1715
1721
|
<ng-content></ng-content>
|
|
1716
1722
|
</span>
|
|
1717
1723
|
</ng-container>
|
|
1718
|
-
`, isInline: true, directives: [{ type:
|
|
1724
|
+
`, isInline: true, directives: [{ type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], animations: [
|
|
1719
1725
|
trigger('defaultButton', [
|
|
1720
1726
|
transition(':enter', [style({ opacity: 0 }), animate('200ms 100ms ease-in', style({ opacity: 1 }))]),
|
|
1721
1727
|
// TODO: see if we can get leave animation to work before spinner's enter animation
|
|
@@ -2674,7 +2680,7 @@ ClrControlContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
|
|
|
2674
2680
|
<ng-content select="clr-control-error" *ngIf="showInvalid"></ng-content>
|
|
2675
2681
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
2676
2682
|
</div>
|
|
2677
|
-
`, isInline: true, directives: [{ type:
|
|
2683
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrLabel, selector: "label", inputs: ["for"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
2678
2684
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrControlContainer, decorators: [{
|
|
2679
2685
|
type: Component,
|
|
2680
2686
|
args: [{
|
|
@@ -3058,7 +3064,7 @@ ClrCheckboxWrapper.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
|
|
|
3058
3064
|
<ng-content select="[clrCheckbox],[clrToggle]"></ng-content>
|
|
3059
3065
|
<ng-content select="label"></ng-content>
|
|
3060
3066
|
<label *ngIf="!label"></label>
|
|
3061
|
-
`, isInline: true, directives: [{ type:
|
|
3067
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrLabel, selector: "label", inputs: ["for"] }] });
|
|
3062
3068
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrCheckboxWrapper, decorators: [{
|
|
3063
3069
|
type: Component,
|
|
3064
3070
|
args: [{
|
|
@@ -3075,7 +3081,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
3075
3081
|
providers: [ControlIdService, IS_TOGGLE_PROVIDER],
|
|
3076
3082
|
}]
|
|
3077
3083
|
}], ctorParameters: function () {
|
|
3078
|
-
return [{ type: i3
|
|
3084
|
+
return [{ type: i3.BehaviorSubject, decorators: [{
|
|
3079
3085
|
type: Inject,
|
|
3080
3086
|
args: [IS_TOGGLE]
|
|
3081
3087
|
}] }];
|
|
@@ -3188,7 +3194,7 @@ ClrCheckboxContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
3188
3194
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
3189
3195
|
</div>
|
|
3190
3196
|
</div>
|
|
3191
|
-
`, isInline: true, directives: [{ type:
|
|
3197
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrLabel, selector: "label", inputs: ["for"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
3192
3198
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrCheckboxContainer, decorators: [{
|
|
3193
3199
|
type: Component,
|
|
3194
3200
|
args: [{
|
|
@@ -4928,7 +4934,7 @@ class ClrCalendar {
|
|
|
4928
4934
|
}
|
|
4929
4935
|
}
|
|
4930
4936
|
ClrCalendar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrCalendar, deps: [{ token: LocaleHelperService }, { token: DateNavigationService }, { token: DatepickerFocusService }, { token: DateIOService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
4931
|
-
ClrCalendar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: ClrCalendar, selector: "clr-calendar", host: { listeners: { "keydown": "onKeyDown($event)" } }, ngImport: i0, template: "<table class=\"calendar-table\">\n <tr class=\"calendar-row weekdays\">\n <td *ngFor=\"let day of localeDays\" class=\"calendar-cell weekday\" role=\"heading\" [attr.aria-label]=\"day.day\">\n {{day.narrow}}\n </td>\n </tr>\n <tr class=\"calendar-row\" *ngFor=\"let row of calendarViewModel.calendarView\">\n <td *ngFor=\"let dayView of row\" class=\"calendar-cell\">\n <clr-day [clrDayView]=\"dayView\"></clr-day>\n </td>\n </tr>\n</table>\n", components: [{ type: ClrDay, selector: "clr-day", inputs: ["clrDayView"] }], directives: [{ type:
|
|
4937
|
+
ClrCalendar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: ClrCalendar, selector: "clr-calendar", host: { listeners: { "keydown": "onKeyDown($event)" } }, ngImport: i0, template: "<table class=\"calendar-table\">\n <tr class=\"calendar-row weekdays\">\n <td *ngFor=\"let day of localeDays\" class=\"calendar-cell weekday\" role=\"heading\" [attr.aria-label]=\"day.day\">\n {{day.narrow}}\n </td>\n </tr>\n <tr class=\"calendar-row\" *ngFor=\"let row of calendarViewModel.calendarView\">\n <td *ngFor=\"let dayView of row\" class=\"calendar-cell\">\n <clr-day [clrDayView]=\"dayView\"></clr-day>\n </td>\n </tr>\n</table>\n", components: [{ type: ClrDay, selector: "clr-day", inputs: ["clrDayView"] }], directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
4932
4938
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrCalendar, decorators: [{
|
|
4933
4939
|
type: Component,
|
|
4934
4940
|
args: [{ selector: 'clr-calendar', template: "<table class=\"calendar-table\">\n <tr class=\"calendar-row weekdays\">\n <td *ngFor=\"let day of localeDays\" class=\"calendar-cell weekday\" role=\"heading\" [attr.aria-label]=\"day.day\">\n {{day.narrow}}\n </td>\n </tr>\n <tr class=\"calendar-row\" *ngFor=\"let row of calendarViewModel.calendarView\">\n <td *ngFor=\"let dayView of row\" class=\"calendar-cell\">\n <clr-day [clrDayView]=\"dayView\"></clr-day>\n </td>\n </tr>\n</table>\n" }]
|
|
@@ -5140,7 +5146,7 @@ ClrMonthpicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
|
|
|
5140
5146
|
>
|
|
5141
5147
|
{{ month }}
|
|
5142
5148
|
</button>
|
|
5143
|
-
`, isInline: true, directives: [{ type:
|
|
5149
|
+
`, isInline: true, directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
5144
5150
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrMonthpicker, decorators: [{
|
|
5145
5151
|
type: Component,
|
|
5146
5152
|
args: [{
|
|
@@ -5393,7 +5399,7 @@ ClrYearpicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
|
|
|
5393
5399
|
{{ year }}
|
|
5394
5400
|
</button>
|
|
5395
5401
|
</div>
|
|
5396
|
-
`, isInline: true, directives: [{ type: CdsIconCustomTag, selector: "cds-icon" }, { type:
|
|
5402
|
+
`, isInline: true, directives: [{ type: CdsIconCustomTag, selector: "cds-icon" }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
5397
5403
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrYearpicker, decorators: [{
|
|
5398
5404
|
type: Component,
|
|
5399
5405
|
args: [{
|
|
@@ -5548,7 +5554,7 @@ class ClrDatepickerViewManager {
|
|
|
5548
5554
|
}
|
|
5549
5555
|
}
|
|
5550
5556
|
ClrDatepickerViewManager.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDatepickerViewManager, deps: [{ token: ViewManagerService }], target: i0.ɵɵFactoryTarget.Component });
|
|
5551
|
-
ClrDatepickerViewManager.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: ClrDatepickerViewManager, selector: "clr-datepicker-view-manager", host: { properties: { "class.datepicker": "true", "attr.aria-modal": "true" } }, providers: [DatepickerFocusService], ngImport: i0, template: "<!--\n* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.\n* This software is released under MIT license.\n* The full license information can be found in LICENSE in the root directory of this project.\n-->\n\n<clr-monthpicker *ngIf=\"isMonthView\"></clr-monthpicker>\n<clr-yearpicker *ngIf=\"isYearView\"></clr-yearpicker>\n<clr-daypicker *ngIf=\"isDayView\"></clr-daypicker>\n", components: [{ type: ClrMonthpicker, selector: "clr-monthpicker" }, { type: ClrYearpicker, selector: "clr-yearpicker" }, { type: ClrDaypicker, selector: "clr-daypicker" }], directives: [{ type:
|
|
5557
|
+
ClrDatepickerViewManager.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: ClrDatepickerViewManager, selector: "clr-datepicker-view-manager", host: { properties: { "class.datepicker": "true", "attr.aria-modal": "true" } }, providers: [DatepickerFocusService], ngImport: i0, template: "<!--\n* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.\n* This software is released under MIT license.\n* The full license information can be found in LICENSE in the root directory of this project.\n-->\n\n<clr-monthpicker *ngIf=\"isMonthView\"></clr-monthpicker>\n<clr-yearpicker *ngIf=\"isYearView\"></clr-yearpicker>\n<clr-daypicker *ngIf=\"isDayView\"></clr-daypicker>\n", components: [{ type: ClrMonthpicker, selector: "clr-monthpicker" }, { type: ClrYearpicker, selector: "clr-yearpicker" }, { type: ClrDaypicker, selector: "clr-daypicker" }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
5552
5558
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDatepickerViewManager, decorators: [{
|
|
5553
5559
|
type: Component,
|
|
5554
5560
|
args: [{ selector: 'clr-datepicker-view-manager', providers: [DatepickerFocusService], host: {
|
|
@@ -5687,7 +5693,7 @@ ClrDateContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versi
|
|
|
5687
5693
|
<ng-content select="clr-control-error" *ngIf="showInvalid"></ng-content>
|
|
5688
5694
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
5689
5695
|
</div>
|
|
5690
|
-
`, isInline: true, components: [{ type: ClrDatepickerViewManager, selector: "clr-datepicker-view-manager" }], directives: [{ type:
|
|
5696
|
+
`, isInline: true, components: [{ type: ClrDatepickerViewManager, selector: "clr-datepicker-view-manager" }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrLabel, selector: "label", inputs: ["for"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: ClrPopoverAnchor, selector: "[clrPopoverAnchor]" }, { type: ClrPopoverOpenCloseButton, selector: "[clrPopoverOpenCloseButton]", outputs: ["clrPopoverOpenCloseChange"] }, { type: CdsIconCustomTag, selector: "cds-icon" }, { type: ClrPopoverContent, selector: "[clrPopoverContent]", inputs: ["clrPopoverContent", "clrPopoverContentAt", "clrPopoverContentOutsideClickToClose", "clrPopoverContentScrollToClose"] }, { type: FocusTrapDirective, selector: "[clrFocusTrap]", inputs: ["clrFocusTrap"] }] });
|
|
5691
5697
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDateContainer, decorators: [{
|
|
5692
5698
|
type: Component,
|
|
5693
5699
|
args: [{
|
|
@@ -6159,7 +6165,7 @@ ClrInputContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
6159
6165
|
<ng-content select="clr-control-error" *ngIf="showInvalid"></ng-content>
|
|
6160
6166
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
6161
6167
|
</div>
|
|
6162
|
-
`, isInline: true, directives: [{ type:
|
|
6168
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrLabel, selector: "label", inputs: ["for"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
6163
6169
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrInputContainer, decorators: [{
|
|
6164
6170
|
type: Component,
|
|
6165
6171
|
args: [{
|
|
@@ -6332,7 +6338,7 @@ ClrPasswordContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
6332
6338
|
<ng-content select="clr-control-error" *ngIf="showInvalid"></ng-content>
|
|
6333
6339
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
6334
6340
|
</div>
|
|
6335
|
-
`, isInline: true, directives: [{ type:
|
|
6341
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrLabel, selector: "label", inputs: ["for"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
6336
6342
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrPasswordContainer, decorators: [{
|
|
6337
6343
|
type: Component,
|
|
6338
6344
|
args: [{
|
|
@@ -6395,7 +6401,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
6395
6401
|
}], ctorParameters: function () {
|
|
6396
6402
|
return [{ type: IfControlStateService }, { type: LayoutService, decorators: [{
|
|
6397
6403
|
type: Optional
|
|
6398
|
-
}] }, { type: ControlClassService }, { type: NgControlService }, { type: FocusService$1 }, { type: i3
|
|
6404
|
+
}] }, { type: ControlClassService }, { type: NgControlService }, { type: FocusService$1 }, { type: i3.BehaviorSubject, decorators: [{
|
|
6399
6405
|
type: Inject,
|
|
6400
6406
|
args: [TOGGLE_SERVICE]
|
|
6401
6407
|
}] }, { type: ClrCommonStringsService }];
|
|
@@ -6446,7 +6452,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
6446
6452
|
type: Optional
|
|
6447
6453
|
}] }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: FocusService$1, decorators: [{
|
|
6448
6454
|
type: Optional
|
|
6449
|
-
}] }, { type: i3
|
|
6455
|
+
}] }, { type: i3.BehaviorSubject, decorators: [{
|
|
6450
6456
|
type: Optional
|
|
6451
6457
|
}, {
|
|
6452
6458
|
type: Inject,
|
|
@@ -6506,7 +6512,7 @@ ClrRadioWrapper.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
|
|
|
6506
6512
|
<ng-content select="[clrRadio]"></ng-content>
|
|
6507
6513
|
<ng-content select="label"></ng-content>
|
|
6508
6514
|
<label *ngIf="!label"></label>
|
|
6509
|
-
`, isInline: true, directives: [{ type:
|
|
6515
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrLabel, selector: "label", inputs: ["for"] }] });
|
|
6510
6516
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrRadioWrapper, decorators: [{
|
|
6511
6517
|
type: Component,
|
|
6512
6518
|
args: [{
|
|
@@ -6613,7 +6619,7 @@ ClrRadioContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
6613
6619
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
6614
6620
|
</div>
|
|
6615
6621
|
</div>
|
|
6616
|
-
`, isInline: true, directives: [{ type:
|
|
6622
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrLabel, selector: "label", inputs: ["for"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
6617
6623
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrRadioContainer, decorators: [{
|
|
6618
6624
|
type: Component,
|
|
6619
6625
|
args: [{
|
|
@@ -6739,7 +6745,7 @@ ClrSelectContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
|
|
|
6739
6745
|
<ng-content select="clr-control-error" *ngIf="showInvalid"></ng-content>
|
|
6740
6746
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
6741
6747
|
</div>
|
|
6742
|
-
`, isInline: true, directives: [{ type:
|
|
6748
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrLabel, selector: "label", inputs: ["for"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
6743
6749
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrSelectContainer, decorators: [{
|
|
6744
6750
|
type: Component,
|
|
6745
6751
|
args: [{
|
|
@@ -6866,7 +6872,7 @@ ClrTextareaContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
6866
6872
|
<ng-content select="clr-control-error" *ngIf="showInvalid"></ng-content>
|
|
6867
6873
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
6868
6874
|
</div>
|
|
6869
|
-
`, isInline: true, directives: [{ type:
|
|
6875
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrLabel, selector: "label", inputs: ["for"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
6870
6876
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrTextareaContainer, decorators: [{
|
|
6871
6877
|
type: Component,
|
|
6872
6878
|
args: [{
|
|
@@ -7016,7 +7022,7 @@ ClrRangeContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
7016
7022
|
<ng-content select="clr-control-error" *ngIf="showInvalid"></ng-content>
|
|
7017
7023
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
7018
7024
|
</div>
|
|
7019
|
-
`, isInline: true, directives: [{ type:
|
|
7025
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrLabel, selector: "label", inputs: ["for"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
7020
7026
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrRangeContainer, decorators: [{
|
|
7021
7027
|
type: Component,
|
|
7022
7028
|
args: [{
|
|
@@ -7189,7 +7195,7 @@ ClrDatalistContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
7189
7195
|
<ng-content select="clr-control-error" *ngIf="showInvalid"></ng-content>
|
|
7190
7196
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
7191
7197
|
</div>
|
|
7192
|
-
`, isInline: true, directives: [{ type:
|
|
7198
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrLabel, selector: "label", inputs: ["for"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
7193
7199
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDatalistContainer, decorators: [{
|
|
7194
7200
|
type: Component,
|
|
7195
7201
|
args: [{
|
|
@@ -7887,7 +7893,7 @@ class ClrOption {
|
|
|
7887
7893
|
}
|
|
7888
7894
|
ClrOption.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrOption, deps: [{ token: i0.ElementRef }, { token: ClrCommonStringsService }, { token: ComboboxFocusHandler }, { token: OptionSelectionService }, { token: UNIQUE_ID }], target: i0.ɵɵFactoryTarget.Component });
|
|
7889
7895
|
ClrOption.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: ClrOption, selector: "clr-option", inputs: { optionId: ["id", "optionId"], value: ["clrValue", "value"] }, host: { listeners: { "click": "onClick()" }, properties: { "class.clr-combobox-option": "true", "attr.role": "\"option\"", "attr.tabindex": "-1", "attr.id": "optionId", "class.active": "this.selected", "class.clr-focus": "this.focusClass" } }, providers: [UNIQUE_ID_PROVIDER], ngImport: i0, template: `<ng-content></ng-content>
|
|
7890
|
-
<span *ngIf="selected" class="clr-sr-only"> {{ commonStrings.keys.comboboxSelected }} </span> `, isInline: true, directives: [{ type:
|
|
7896
|
+
<span *ngIf="selected" class="clr-sr-only"> {{ commonStrings.keys.comboboxSelected }} </span> `, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
7891
7897
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrOption, decorators: [{
|
|
7892
7898
|
type: Component,
|
|
7893
7899
|
args: [{
|
|
@@ -8111,7 +8117,7 @@ ClrOptions.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "1
|
|
|
8111
8117
|
|
|
8112
8118
|
<!--Option Groups and Options will be projected here-->
|
|
8113
8119
|
<ng-content></ng-content>
|
|
8114
|
-
`, isInline: true, components: [{ type: ClrSpinner, selector: "clr-spinner", inputs: ["clrInline", "clrInverse", "clrSmall", "clrMedium"] }], directives: [{ type:
|
|
8120
|
+
`, isInline: true, components: [{ type: ClrSpinner, selector: "clr-spinner", inputs: ["clrInline", "clrInverse", "clrSmall", "clrMedium"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
8115
8121
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrOptions, decorators: [{
|
|
8116
8122
|
type: Component,
|
|
8117
8123
|
args: [{
|
|
@@ -8225,7 +8231,7 @@ ClrComboboxContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
8225
8231
|
<ng-content select="clr-control-error" *ngIf="showInvalid"></ng-content>
|
|
8226
8232
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
8227
8233
|
</div>
|
|
8228
|
-
`, isInline: true, directives: [{ type:
|
|
8234
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrLabel, selector: "label", inputs: ["for"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
8229
8235
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrComboboxContainer, decorators: [{
|
|
8230
8236
|
type: Component,
|
|
8231
8237
|
args: [{
|
|
@@ -8978,7 +8984,7 @@ ClrCombobox.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
|
8978
8984
|
ClrPopoverToggleService,
|
|
8979
8985
|
ClrPopoverEventsService,
|
|
8980
8986
|
ClrPopoverPositionService,
|
|
8981
|
-
], queries: [{ propertyName: "optionSelected", first: true, predicate: ClrOptionSelected, descendants: true }], viewQueries: [{ propertyName: "textbox", first: true, predicate: ["textboxInput"], descendants: true }, { propertyName: "trigger", first: true, predicate: ["trigger"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<!--\n* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.\n* This software is released under MIT license.\n* The full license information can be found in LICENSE in the root directory of this project.\n-->\n\n<!-- The (click) handler is needed to auto-focus on input field which can not currently occupy the whole\n width of the component, after being wrapped to a new line -->\n<div\n class=\"clr-combobox-wrapper\"\n clrPopoverAnchor\n (click)=\"focusInput()\"\n [class.multi]=\"multiSelect\"\n [class.invalid]=\"invalid\"\n>\n <span\n *ngIf=\"multiSelect && optionSelectionService.selectionModel.model\"\n role=\"grid\"\n clrRovingTabindex\n [clrRovingTabindexDisabled]=\"control?.disabled\"\n clrDirection=\"both\"\n [attr.aria-label]=\"getSelectionAriaLabel()\"\n [attr.aria-disabled]=\"control?.disabled? true: null\"\n >\n <span *ngFor=\"let item of multiSelectModel; let i = index\" class=\"label label-combobox-pill\" role=\"row\">\n <span role=\"gridcell\">\n <span class=\"clr-combobox-pill-content\" clrKeyFocusItem>\n <ng-container\n *ngIf=\"optionSelected\"\n [ngTemplateOutlet]=\"optionSelected.template\"\n [ngTemplateOutletContext]=\"{$implicit: optionSelectionService.selectionModel.model[i]}\"\n >\n </ng-container>\n </span>\n </span>\n <span role=\"gridcell\">\n <button\n clrKeyFocusItem\n type=\"button\"\n class=\"clr-combobox-remove-btn\"\n [disabled]=\"control?.disabled? true: null\"\n [attr.aria-label]=\"commonStrings.keys.comboboxDelete + ' ' + optionSelectionService.selectionModel.toString(displayField, i)\"\n (click)=\"unselect(item)\"\n >\n <cds-icon shape=\"window-close\" size=\"12\"></cds-icon>\n </button>\n </span>\n </span>\n </span>\n\n <span class=\"clr-combobox-input-wrapper\">\n <input\n #textboxInput\n type=\"text\"\n [id]=\"inputId()\"\n role=\"combobox\"\n class=\"clr-input clr-combobox-input\"\n [(ngModel)]=\"searchText\"\n (blur)=\"onBlur()\"\n (focus)=\"onFocus()\"\n [attr.aria-expanded]=\"openState\"\n [attr.aria-owns]=\"ariaOwns\"\n aria-haspopup=\"listbox\"\n aria-autocomplete=\"list\"\n autocomplete=\"off\"\n [attr.aria-invalid]=\"control?.invalid? true: null\"\n [disabled]=\"control?.disabled? true: null\"\n [attr.aria-activedescendant]=\"getActiveDescendant()\"\n [attr.placeholder]=\"placeholder\"\n aria-multiline=\"false\"\n />\n </span>\n\n <!-- No click handler, as it uses the handler on the .clr-combobox-wrapper -->\n <button\n clrPopoverOpenCloseButton\n #trigger\n type=\"button\"\n class=\"clr-combobox-trigger\"\n tabindex=\"-1\"\n [disabled]=\"control?.disabled || null\"\n [attr.aria-label]=\"commonStrings.keys.comboboxOpen\"\n >\n <cds-icon shape=\"angle\" direction=\"down\" size=\"12\"></cds-icon>\n </button>\n\n <div class=\"clr-focus-indicator\" [class.clr-focus]=\"focused\"></div>\n</div>\n\n<!-- Both close handlers are handled manually due to issues in Edge browser.\n Additionally 'outsideClickToClose' has complex handling that's necessary\n to be manual due to the component architecture -->\n<div role=\"dialog\" *clrPopoverContent=\"openState at smartPosition; outsideClickToClose: false; scrollToClose: false\">\n <ng-content></ng-content>\n</div>\n", components: [{ type: ClrRovingTabindex, selector: "[clrRovingTabindex]", inputs: ["clrRovingTabindex", "clrRovingTabindexDisabled"] }], directives: [{ type: ClrPopoverAnchor, selector: "[clrPopoverAnchor]" }, { type:
|
|
8987
|
+
], queries: [{ propertyName: "optionSelected", first: true, predicate: ClrOptionSelected, descendants: true }], viewQueries: [{ propertyName: "textbox", first: true, predicate: ["textboxInput"], descendants: true }, { propertyName: "trigger", first: true, predicate: ["trigger"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<!--\n* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.\n* This software is released under MIT license.\n* The full license information can be found in LICENSE in the root directory of this project.\n-->\n\n<!-- The (click) handler is needed to auto-focus on input field which can not currently occupy the whole\n width of the component, after being wrapped to a new line -->\n<div\n class=\"clr-combobox-wrapper\"\n clrPopoverAnchor\n (click)=\"focusInput()\"\n [class.multi]=\"multiSelect\"\n [class.invalid]=\"invalid\"\n>\n <span\n *ngIf=\"multiSelect && optionSelectionService.selectionModel.model\"\n role=\"grid\"\n clrRovingTabindex\n [clrRovingTabindexDisabled]=\"control?.disabled\"\n clrDirection=\"both\"\n [attr.aria-label]=\"getSelectionAriaLabel()\"\n [attr.aria-disabled]=\"control?.disabled? true: null\"\n >\n <span *ngFor=\"let item of multiSelectModel; let i = index\" class=\"label label-combobox-pill\" role=\"row\">\n <span role=\"gridcell\">\n <span class=\"clr-combobox-pill-content\" clrKeyFocusItem>\n <ng-container\n *ngIf=\"optionSelected\"\n [ngTemplateOutlet]=\"optionSelected.template\"\n [ngTemplateOutletContext]=\"{$implicit: optionSelectionService.selectionModel.model[i]}\"\n >\n </ng-container>\n </span>\n </span>\n <span role=\"gridcell\">\n <button\n clrKeyFocusItem\n type=\"button\"\n class=\"clr-combobox-remove-btn\"\n [disabled]=\"control?.disabled? true: null\"\n [attr.aria-label]=\"commonStrings.keys.comboboxDelete + ' ' + optionSelectionService.selectionModel.toString(displayField, i)\"\n (click)=\"unselect(item)\"\n >\n <cds-icon shape=\"window-close\" size=\"12\"></cds-icon>\n </button>\n </span>\n </span>\n </span>\n\n <span class=\"clr-combobox-input-wrapper\">\n <input\n #textboxInput\n type=\"text\"\n [id]=\"inputId()\"\n role=\"combobox\"\n class=\"clr-input clr-combobox-input\"\n [(ngModel)]=\"searchText\"\n (blur)=\"onBlur()\"\n (focus)=\"onFocus()\"\n [attr.aria-expanded]=\"openState\"\n [attr.aria-owns]=\"ariaOwns\"\n aria-haspopup=\"listbox\"\n aria-autocomplete=\"list\"\n autocomplete=\"off\"\n [attr.aria-invalid]=\"control?.invalid? true: null\"\n [disabled]=\"control?.disabled? true: null\"\n [attr.aria-activedescendant]=\"getActiveDescendant()\"\n [attr.placeholder]=\"placeholder\"\n aria-multiline=\"false\"\n />\n </span>\n\n <!-- No click handler, as it uses the handler on the .clr-combobox-wrapper -->\n <button\n clrPopoverOpenCloseButton\n #trigger\n type=\"button\"\n class=\"clr-combobox-trigger\"\n tabindex=\"-1\"\n [disabled]=\"control?.disabled || null\"\n [attr.aria-label]=\"commonStrings.keys.comboboxOpen\"\n >\n <cds-icon shape=\"angle\" direction=\"down\" size=\"12\"></cds-icon>\n </button>\n\n <div class=\"clr-focus-indicator\" [class.clr-focus]=\"focused\"></div>\n</div>\n\n<!-- Both close handlers are handled manually due to issues in Edge browser.\n Additionally 'outsideClickToClose' has complex handling that's necessary\n to be manual due to the component architecture -->\n<div role=\"dialog\" *clrPopoverContent=\"openState at smartPosition; outsideClickToClose: false; scrollToClose: false\">\n <ng-content></ng-content>\n</div>\n", components: [{ type: ClrRovingTabindex, selector: "[clrRovingTabindex]", inputs: ["clrRovingTabindex", "clrRovingTabindexDisabled"] }], directives: [{ type: ClrPopoverAnchor, selector: "[clrPopoverAnchor]" }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: ClrKeyFocusItem, selector: "[clrKeyFocusItem]" }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: CdsIconCustomTag, selector: "cds-icon" }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: ClrPopoverOpenCloseButton, selector: "[clrPopoverOpenCloseButton]", outputs: ["clrPopoverOpenCloseChange"] }, { type: ClrPopoverContent, selector: "[clrPopoverContent]", inputs: ["clrPopoverContent", "clrPopoverContentAt", "clrPopoverContentOutsideClickToClose", "clrPopoverContentScrollToClose"] }] });
|
|
8982
8988
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrCombobox, decorators: [{
|
|
8983
8989
|
type: Component,
|
|
8984
8990
|
args: [{ selector: 'clr-combobox', providers: [
|
|
@@ -12660,7 +12666,7 @@ ClrDatagridColumn.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
12660
12666
|
|
|
12661
12667
|
<clr-dg-column-separator *ngIf="showSeparator"></clr-dg-column-separator>
|
|
12662
12668
|
</div>
|
|
12663
|
-
`, isInline: true, components: [{ type: DatagridStringFilter, selector: "clr-dg-string-filter", inputs: ["clrDgStringFilter", "clrFilterValue"], outputs: ["clrFilterValueChange"] }, { type: DatagridNumericFilter, selector: "clr-dg-numeric-filter", inputs: ["clrDgNumericFilter", "clrFilterValue"], outputs: ["clrFilterValueChange"] }, { type: ClrDatagridColumnSeparator, selector: "clr-dg-column-separator" }], directives: [{ type:
|
|
12669
|
+
`, isInline: true, components: [{ type: DatagridStringFilter, selector: "clr-dg-string-filter", inputs: ["clrDgStringFilter", "clrFilterValue"], outputs: ["clrFilterValueChange"] }, { type: DatagridNumericFilter, selector: "clr-dg-numeric-filter", inputs: ["clrDgNumericFilter", "clrFilterValue"], outputs: ["clrFilterValueChange"] }, { type: ClrDatagridColumnSeparator, selector: "clr-dg-column-separator" }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: CdsIconCustomTag, selector: "cds-icon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
12664
12670
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDatagridColumn, decorators: [{
|
|
12665
12671
|
type: Component,
|
|
12666
12672
|
args: [{
|
|
@@ -12991,7 +12997,7 @@ ClrDatagridPlaceholder.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
12991
12997
|
<div class="datagrid-placeholder-image" *ngIf="emptyDatagrid"></div>
|
|
12992
12998
|
<span role="gridcell"><ng-content *ngIf="emptyDatagrid"></ng-content></span>
|
|
12993
12999
|
</div>
|
|
12994
|
-
`, isInline: true, directives: [{ type:
|
|
13000
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
12995
13001
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDatagridPlaceholder, decorators: [{
|
|
12996
13002
|
type: Component,
|
|
12997
13003
|
args: [{
|
|
@@ -13192,7 +13198,7 @@ ClrSignpost.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
|
13192
13198
|
</ng-container>
|
|
13193
13199
|
|
|
13194
13200
|
<ng-content></ng-content>
|
|
13195
|
-
`, isInline: true, directives: [{ type:
|
|
13201
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrSignpostTrigger, selector: "[clrSignpostTrigger]" }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
13196
13202
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrSignpost, decorators: [{
|
|
13197
13203
|
type: Component,
|
|
13198
13204
|
args: [{
|
|
@@ -13956,7 +13962,7 @@ ClrDatagridRow.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
|
|
|
13956
13962
|
DatagridIfExpandService,
|
|
13957
13963
|
{ provide: IfExpandService, useExisting: DatagridIfExpandService },
|
|
13958
13964
|
{ provide: LoadingListener, useExisting: DatagridIfExpandService },
|
|
13959
|
-
], queries: [{ propertyName: "dgCells", predicate: ClrDatagridCell }], viewQueries: [{ propertyName: "expandAnimation", first: true, predicate: ClrExpandableAnimation, descendants: true }, { propertyName: "detailButton", first: true, predicate: ["detailButton"], descendants: true }, { propertyName: "_stickyCells", first: true, predicate: ["stickyCells"], descendants: true, read: ViewContainerRef }, { propertyName: "_scrollableCells", first: true, predicate: ["scrollableCells"], descendants: true, read: ViewContainerRef }, { propertyName: "_calculatedCells", first: true, predicate: ["calculatedCells"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<!--\n We need to wrap the #rowContent in label element if we are in rowSelectionMode.\n Clicking of that wrapper label will equate to clicking on the whole row, which triggers the checkbox to toggle.\n-->\n<label class=\"datagrid-row-clickable\" *ngIf=\"selection.rowSelectionMode\">\n <clr-expandable-animation [clrExpandTrigger]=\"expandAnimationTrigger\" *ngIf=\"expand.expandable\">\n <ng-template [ngTemplateOutlet]=\"rowContent\"></ng-template>\n </clr-expandable-animation>\n <ng-template [ngTemplateOutlet]=\"rowContent\" *ngIf=\"!expand.expandable\"></ng-template>\n</label>\n\n<clr-expandable-animation\n *ngIf=\"!selection.rowSelectionMode && expand.expandable\"\n [clrExpandTrigger]=\"expandAnimationTrigger\"\n>\n <ng-template [ngTemplateOutlet]=\"rowContent\"></ng-template>\n</clr-expandable-animation>\n\n<ng-template *ngIf=\"!selection.rowSelectionMode && !expand.expandable\" [ngTemplateOutlet]=\"rowContent\"></ng-template>\n\n<!--\n We need the \"project into template\" hacks because we need this in 2 different places\n depending on whether the details replace the row or not.\n-->\n<ng-template #detail>\n <ng-content select=\"clr-dg-row-detail\"></ng-content>\n</ng-template>\n\n<ng-template #rowContent>\n <div\n role=\"row\"\n [id]=\"id\"\n class=\"datagrid-row-master datagrid-row-flex\"\n [class.datagrid-row-detail-open]=\"detailService.isRowOpen(item)\"\n >\n <div class=\"datagrid-row-sticky\">\n <!-- Sticky elements here -->\n <ng-container #stickyCells>\n <div\n *ngIf=\"selection.selectionType === SELECTION_TYPE.Multi\"\n class=\"datagrid-select datagrid-fixed-column datagrid-cell\"\n [ngClass]=\"{ 'clr-form-control-disabled': !clrDgSelectable }\"\n role=\"gridcell\"\n >\n <div class=\"clr-checkbox-wrapper\">\n <input\n type=\"checkbox\"\n [ngModel]=\"selected\"\n (ngModelChange)=\"toggle($event)\"\n [id]=\"checkboxId\"\n [attr.disabled]=\"clrDgSelectable ? null : true\"\n [attr.aria-disabled]=\"clrDgSelectable ? null : true\"\n [attr.aria-label]=\"commonStrings.keys.select\"\n />\n <!-- Usage of class clr-col-null here prevents clr-col-* classes from being added when a datagrid is wrapped inside clrForm -->\n <label [for]=\"checkboxId\" class=\"clr-control-label clr-col-null\">\n <span class=\"clr-sr-only\">{{commonStrings.keys.select}}</span>\n </label>\n </div>\n </div>\n <div\n *ngIf=\"selection.selectionType === SELECTION_TYPE.Single\"\n class=\"datagrid-select datagrid-fixed-column datagrid-cell\"\n role=\"gridcell\"\n [ngClass]=\"{ 'clr-form-control-disabled': !clrDgSelectable }\"\n >\n <!-- TODO: it would be better if in addition to the generic \"Select\" label, we could add aria-labelledby\n to label the radio by the first cell in the row (typically an id or name).\n It's pretty easy to label it with the whole row since we already have an id for it, but in most\n cases the row is far too long to serve as a label, the screenreader reads every single cell content. -->\n <input\n type=\"radio\"\n clrRadio\n [id]=\"radioId\"\n [name]=\"selection.id + '-radio'\"\n [value]=\"item\"\n [(ngModel)]=\"selection.currentSingle\"\n [checked]=\"selection.currentSingle === item\"\n [attr.disabled]=\"clrDgSelectable ? null : true\"\n [attr.aria-disabled]=\"clrDgSelectable ? null : true\"\n [attr.aria-label]=\"commonStrings.keys.select\"\n />\n </div>\n <div\n *ngIf=\"rowActionService.hasActionableRow\"\n class=\"datagrid-row-actions datagrid-fixed-column datagrid-cell\"\n role=\"gridcell\"\n >\n <ng-content select=\"clr-dg-action-overflow\"></ng-content>\n </div>\n <div\n *ngIf=\"globalExpandable.hasExpandableRow\"\n class=\"datagrid-expandable-caret datagrid-fixed-column datagrid-cell\"\n role=\"gridcell\"\n >\n <ng-container *ngIf=\"expand.expandable\">\n <button\n *ngIf=\"!expand.loading\"\n (click)=\"toggleExpand()\"\n type=\"button\"\n class=\"datagrid-expandable-caret-button\"\n [attr.aria-expanded]=\"expand.expanded\"\n [attr.aria-label]=\"expand.expanded ? clrDgDetailCloseLabel : clrDgDetailOpenLabel\"\n [attr.aria-controls]=\"expandableId\"\n >\n <cds-icon\n shape=\"angle\"\n class=\"datagrid-expandable-caret-icon\"\n [attr.direction]=\"expand.expanded ? 'down' : 'right'\"\n [attr.title]=\"expand.expanded ? commonStrings.keys.collapse : commonStrings.keys.expand\"\n ></cds-icon>\n </button>\n <clr-spinner *ngIf=\"expand.loading\" clrSmall>{{ commonStrings.keys.loading }}</clr-spinner>\n </ng-container>\n </div>\n <div *ngIf=\"detailService.enabled\" class=\"datagrid-detail-caret datagrid-fixed-column datagrid-cell\">\n <button\n (click)=\"detailService.toggle(item, detailButton)\"\n type=\"button\"\n #detailButton\n class=\"datagrid-detail-caret-button\"\n [class.is-open]=\"detailService.isRowOpen(item)\"\n [attr.aria-label]=\"detailService.isOpen ? clrDgDetailCloseLabel : clrDgDetailOpenLabel\"\n [attr.aria-expanded]=\"detailService.isOpen\"\n [attr.aria-controls]=\"detailService.id\"\n aria-haspopup=\"dialog\"\n >\n <cds-icon\n shape=\"angle-double\"\n [attr.direction]=\"detailService.isRowOpen(item) ? 'left' : 'right'\"\n class=\"datagrid-detail-caret-icon\"\n [attr.title]=\"detailService.isRowOpen(item) ? commonStrings.keys.close: commonStrings.keys.open\"\n ></cds-icon>\n </button>\n </div>\n </ng-container>\n <!-- placeholder for projecting other sticky cells as pinned-->\n </div>\n <div class=\"datagrid-row-scrollable\" [ngClass]=\"{'is-replaced': replaced && expanded}\">\n <div class=\"datagrid-scrolling-cells\">\n <ng-content select=\"clr-dg-cell\"></ng-content>\n <ng-container #scrollableCells></ng-container>\n </div>\n <!-- details here when replace, re-visit when sticky container is used for pinned cells -->\n <ng-template *ngIf=\"replaced && !expand.loading\" [ngTemplateOutlet]=\"detail\"></ng-template>\n <ng-template *ngIf=\"!replaced && !expand.loading\" [ngTemplateOutlet]=\"detail\"></ng-template>\n </div>\n </div>\n</ng-template>\n\n<ng-container #calculatedCells></ng-container>\n", components: [{ type: ClrExpandableAnimation, selector: "clr-expandable-animation", inputs: ["clrExpandTrigger"] }, { type: ClrSpinner, selector: "clr-spinner", inputs: ["clrInline", "clrInverse", "clrSmall", "clrMedium"] }], directives: [{ type:
|
|
13965
|
+
], queries: [{ propertyName: "dgCells", predicate: ClrDatagridCell }], viewQueries: [{ propertyName: "expandAnimation", first: true, predicate: ClrExpandableAnimation, descendants: true }, { propertyName: "detailButton", first: true, predicate: ["detailButton"], descendants: true }, { propertyName: "_stickyCells", first: true, predicate: ["stickyCells"], descendants: true, read: ViewContainerRef }, { propertyName: "_scrollableCells", first: true, predicate: ["scrollableCells"], descendants: true, read: ViewContainerRef }, { propertyName: "_calculatedCells", first: true, predicate: ["calculatedCells"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<!--\n We need to wrap the #rowContent in label element if we are in rowSelectionMode.\n Clicking of that wrapper label will equate to clicking on the whole row, which triggers the checkbox to toggle.\n-->\n<label class=\"datagrid-row-clickable\" *ngIf=\"selection.rowSelectionMode\">\n <clr-expandable-animation [clrExpandTrigger]=\"expandAnimationTrigger\" *ngIf=\"expand.expandable\">\n <ng-template [ngTemplateOutlet]=\"rowContent\"></ng-template>\n </clr-expandable-animation>\n <ng-template [ngTemplateOutlet]=\"rowContent\" *ngIf=\"!expand.expandable\"></ng-template>\n</label>\n\n<clr-expandable-animation\n *ngIf=\"!selection.rowSelectionMode && expand.expandable\"\n [clrExpandTrigger]=\"expandAnimationTrigger\"\n>\n <ng-template [ngTemplateOutlet]=\"rowContent\"></ng-template>\n</clr-expandable-animation>\n\n<ng-template *ngIf=\"!selection.rowSelectionMode && !expand.expandable\" [ngTemplateOutlet]=\"rowContent\"></ng-template>\n\n<!--\n We need the \"project into template\" hacks because we need this in 2 different places\n depending on whether the details replace the row or not.\n-->\n<ng-template #detail>\n <ng-content select=\"clr-dg-row-detail\"></ng-content>\n</ng-template>\n\n<ng-template #rowContent>\n <div\n role=\"row\"\n [id]=\"id\"\n class=\"datagrid-row-master datagrid-row-flex\"\n [class.datagrid-row-detail-open]=\"detailService.isRowOpen(item)\"\n >\n <div class=\"datagrid-row-sticky\">\n <!-- Sticky elements here -->\n <ng-container #stickyCells>\n <div\n *ngIf=\"selection.selectionType === SELECTION_TYPE.Multi\"\n class=\"datagrid-select datagrid-fixed-column datagrid-cell\"\n [ngClass]=\"{ 'clr-form-control-disabled': !clrDgSelectable }\"\n role=\"gridcell\"\n >\n <div class=\"clr-checkbox-wrapper\">\n <input\n type=\"checkbox\"\n [ngModel]=\"selected\"\n (ngModelChange)=\"toggle($event)\"\n [id]=\"checkboxId\"\n [attr.disabled]=\"clrDgSelectable ? null : true\"\n [attr.aria-disabled]=\"clrDgSelectable ? null : true\"\n [attr.aria-label]=\"commonStrings.keys.select\"\n />\n <!-- Usage of class clr-col-null here prevents clr-col-* classes from being added when a datagrid is wrapped inside clrForm -->\n <label [for]=\"checkboxId\" class=\"clr-control-label clr-col-null\">\n <span class=\"clr-sr-only\">{{commonStrings.keys.select}}</span>\n </label>\n </div>\n </div>\n <div\n *ngIf=\"selection.selectionType === SELECTION_TYPE.Single\"\n class=\"datagrid-select datagrid-fixed-column datagrid-cell\"\n role=\"gridcell\"\n [ngClass]=\"{ 'clr-form-control-disabled': !clrDgSelectable }\"\n >\n <!-- TODO: it would be better if in addition to the generic \"Select\" label, we could add aria-labelledby\n to label the radio by the first cell in the row (typically an id or name).\n It's pretty easy to label it with the whole row since we already have an id for it, but in most\n cases the row is far too long to serve as a label, the screenreader reads every single cell content. -->\n <input\n type=\"radio\"\n clrRadio\n [id]=\"radioId\"\n [name]=\"selection.id + '-radio'\"\n [value]=\"item\"\n [(ngModel)]=\"selection.currentSingle\"\n [checked]=\"selection.currentSingle === item\"\n [attr.disabled]=\"clrDgSelectable ? null : true\"\n [attr.aria-disabled]=\"clrDgSelectable ? null : true\"\n [attr.aria-label]=\"commonStrings.keys.select\"\n />\n </div>\n <div\n *ngIf=\"rowActionService.hasActionableRow\"\n class=\"datagrid-row-actions datagrid-fixed-column datagrid-cell\"\n role=\"gridcell\"\n >\n <ng-content select=\"clr-dg-action-overflow\"></ng-content>\n </div>\n <div\n *ngIf=\"globalExpandable.hasExpandableRow\"\n class=\"datagrid-expandable-caret datagrid-fixed-column datagrid-cell\"\n role=\"gridcell\"\n >\n <ng-container *ngIf=\"expand.expandable\">\n <button\n *ngIf=\"!expand.loading\"\n (click)=\"toggleExpand()\"\n type=\"button\"\n class=\"datagrid-expandable-caret-button\"\n [attr.aria-expanded]=\"expand.expanded\"\n [attr.aria-label]=\"expand.expanded ? clrDgDetailCloseLabel : clrDgDetailOpenLabel\"\n [attr.aria-controls]=\"expandableId\"\n >\n <cds-icon\n shape=\"angle\"\n class=\"datagrid-expandable-caret-icon\"\n [attr.direction]=\"expand.expanded ? 'down' : 'right'\"\n [attr.title]=\"expand.expanded ? commonStrings.keys.collapse : commonStrings.keys.expand\"\n ></cds-icon>\n </button>\n <clr-spinner *ngIf=\"expand.loading\" clrSmall>{{ commonStrings.keys.loading }}</clr-spinner>\n </ng-container>\n </div>\n <div *ngIf=\"detailService.enabled\" class=\"datagrid-detail-caret datagrid-fixed-column datagrid-cell\">\n <button\n (click)=\"detailService.toggle(item, detailButton)\"\n type=\"button\"\n #detailButton\n class=\"datagrid-detail-caret-button\"\n [class.is-open]=\"detailService.isRowOpen(item)\"\n [attr.aria-label]=\"detailService.isOpen ? clrDgDetailCloseLabel : clrDgDetailOpenLabel\"\n [attr.aria-expanded]=\"detailService.isOpen\"\n [attr.aria-controls]=\"detailService.id\"\n aria-haspopup=\"dialog\"\n >\n <cds-icon\n shape=\"angle-double\"\n [attr.direction]=\"detailService.isRowOpen(item) ? 'left' : 'right'\"\n class=\"datagrid-detail-caret-icon\"\n [attr.title]=\"detailService.isRowOpen(item) ? commonStrings.keys.close: commonStrings.keys.open\"\n ></cds-icon>\n </button>\n </div>\n </ng-container>\n <!-- placeholder for projecting other sticky cells as pinned-->\n </div>\n <div class=\"datagrid-row-scrollable\" [ngClass]=\"{'is-replaced': replaced && expanded}\">\n <div class=\"datagrid-scrolling-cells\">\n <ng-content select=\"clr-dg-cell\"></ng-content>\n <ng-container #scrollableCells></ng-container>\n </div>\n <!-- details here when replace, re-visit when sticky container is used for pinned cells -->\n <ng-template *ngIf=\"replaced && !expand.loading\" [ngTemplateOutlet]=\"detail\"></ng-template>\n <ng-template *ngIf=\"!replaced && !expand.loading\" [ngTemplateOutlet]=\"detail\"></ng-template>\n </div>\n </div>\n</ng-template>\n\n<ng-container #calculatedCells></ng-container>\n", components: [{ type: ClrExpandableAnimation, selector: "clr-expandable-animation", inputs: ["clrExpandTrigger"] }, { type: ClrSpinner, selector: "clr-spinner", inputs: ["clrInline", "clrInverse", "clrSmall", "clrMedium"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrLabel, selector: "label", inputs: ["for"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i1.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: ClrRadio, selector: "[clrRadio]" }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
13960
13966
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDatagridRow, decorators: [{
|
|
13961
13967
|
type: Component,
|
|
13962
13968
|
args: [{ selector: 'clr-dg-row', host: {
|
|
@@ -14363,7 +14369,7 @@ ClrDatagrid.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
|
14363
14369
|
TableSizeService,
|
|
14364
14370
|
ColumnsService,
|
|
14365
14371
|
DisplayModeService,
|
|
14366
|
-
], queries: [{ propertyName: "iterator", first: true, predicate: ClrDatagridItems, descendants: true }, { propertyName: "placeholder", first: true, predicate: ClrDatagridPlaceholder, descendants: true }, { propertyName: "columns", predicate: ClrDatagridColumn }, { propertyName: "rows", predicate: ClrDatagridRow }], viewQueries: [{ propertyName: "scrollableColumns", first: true, predicate: ["scrollableColumns"], descendants: true, read: ViewContainerRef }, { propertyName: "datagridTable", first: true, predicate: ["datagridTable"], descendants: true, read: ElementRef }, { propertyName: "_projectedDisplayColumns", first: true, predicate: ["projectedDisplayColumns"], descendants: true, read: ViewContainerRef }, { propertyName: "_projectedCalculationColumns", first: true, predicate: ["projectedCalculationColumns"], descendants: true, read: ViewContainerRef }, { propertyName: "_displayedRows", first: true, predicate: ["displayedRows"], descendants: true, read: ViewContainerRef }, { propertyName: "_calculationRows", first: true, predicate: ["calculationRows"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<!--\n ~ Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n<ng-content select=\"clr-dg-action-bar\"></ng-content>\n<div class=\"datagrid-outer-wrapper\">\n <div class=\"datagrid-inner-wrapper\">\n <div class=\"datagrid\" #datagrid [attr.aria-hidden]=\"detailService.isOpen ? true : null\">\n <div class=\"datagrid-table-wrapper\">\n <div role=\"grid\" class=\"datagrid-table\" tabindex=\"-1\" #datagridTable>\n <div role=\"rowgroup\" class=\"datagrid-header\">\n <div role=\"row\" class=\"datagrid-row\">\n <div class=\"datagrid-row-master datagrid-row-flex\">\n <div class=\"datagrid-row-sticky\">\n <!--header for datagrid where you can select multiple rows -->\n <div\n role=\"columnheader\"\n class=\"datagrid-column datagrid-select datagrid-fixed-column\"\n *ngIf=\"selection.selectionType === SELECTION_TYPE.Multi\"\n >\n <div class=\"clr-checkbox-wrapper\">\n <input\n type=\"checkbox\"\n [id]=\"selectAllId\"\n [(ngModel)]=\"allSelected\"\n [attr.aria-label]=\"commonStrings.keys.selectAll\"\n />\n <!-- Usage of class clr-col-null here prevents clr-col-* classes from being added when a datagrid is wrapped inside clrForm -->\n <label [for]=\"selectAllId\" class=\"clr-control-label clr-col-null\">\n <span class=\"clr-sr-only\">{{commonStrings.keys.selectAll}}</span>\n </label>\n </div>\n\n <div class=\"datagrid-column-separator\"></div>\n </div>\n <!-- header for datagrid where you can select one row only -->\n <div\n role=\"columnheader\"\n class=\"datagrid-column datagrid-select datagrid-fixed-column\"\n *ngIf=\"selection.selectionType === SELECTION_TYPE.Single\"\n [attr.aria-label]=\"clrDgSingleSelectionAriaLabel\"\n >\n <div class=\"datagrid-column-separator\"></div>\n </div>\n <!-- header for single row action; only displayType if we have at least one actionable row in datagrid -->\n <div\n role=\"columnheader\"\n class=\"datagrid-column datagrid-row-actions datagrid-fixed-column\"\n *ngIf=\"rowActionService.hasActionableRow\"\n [attr.aria-label]=\"clrDgSingleActionableAriaLabel\"\n >\n <div class=\"datagrid-column-separator\"></div>\n </div>\n <!-- header for carets; only displayType if we have at least one expandable row in datagrid -->\n <div\n role=\"columnheader\"\n class=\"datagrid-column datagrid-expandable-caret datagrid-fixed-column\"\n *ngIf=\"expandableRows.hasExpandableRow || detailService.enabled\"\n [attr.aria-label]=\"clrDetailExpandableAriaLabel\"\n >\n <div class=\"datagrid-column-separator\"></div>\n </div>\n </div>\n <div class=\"datagrid-row-scrollable\">\n <ng-container #projectedDisplayColumns></ng-container>\n </div>\n </div>\n </div>\n </div>\n <ng-container #displayedRows></ng-container>\n <!-- Custom placeholder overrides the default empty one -->\n <ng-content select=\"clr-dg-placeholder\"></ng-content>\n <clr-dg-placeholder *ngIf=\"!placeholder\"></clr-dg-placeholder>\n </div>\n </div>\n </div>\n <ng-content select=\"clr-dg-footer\"></ng-content>\n <div class=\"datagrid-spinner\" *ngIf=\"loading\">\n <clr-spinner clrMedium>Loading</clr-spinner>\n </div>\n </div>\n <ng-content select=\"[clrIfDetail],clr-dg-detail\"></ng-content>\n</div>\n\n<div class=\"datagrid-calculation-table\">\n <div class=\"datagrid-calculation-header\">\n <ng-container #projectedCalculationColumns></ng-container>\n </div>\n <ng-container #calculationRows></ng-container>\n</div>\n", components: [{ type: ClrDatagridPlaceholder, selector: "clr-dg-placeholder" }, { type: ClrSpinner, selector: "clr-spinner", inputs: ["clrInline", "clrInverse", "clrSmall", "clrMedium"] }], directives: [{ type:
|
|
14372
|
+
], queries: [{ propertyName: "iterator", first: true, predicate: ClrDatagridItems, descendants: true }, { propertyName: "placeholder", first: true, predicate: ClrDatagridPlaceholder, descendants: true }, { propertyName: "columns", predicate: ClrDatagridColumn }, { propertyName: "rows", predicate: ClrDatagridRow }], viewQueries: [{ propertyName: "scrollableColumns", first: true, predicate: ["scrollableColumns"], descendants: true, read: ViewContainerRef }, { propertyName: "datagridTable", first: true, predicate: ["datagridTable"], descendants: true, read: ElementRef }, { propertyName: "_projectedDisplayColumns", first: true, predicate: ["projectedDisplayColumns"], descendants: true, read: ViewContainerRef }, { propertyName: "_projectedCalculationColumns", first: true, predicate: ["projectedCalculationColumns"], descendants: true, read: ViewContainerRef }, { propertyName: "_displayedRows", first: true, predicate: ["displayedRows"], descendants: true, read: ViewContainerRef }, { propertyName: "_calculationRows", first: true, predicate: ["calculationRows"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<!--\n ~ Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n<ng-content select=\"clr-dg-action-bar\"></ng-content>\n<div class=\"datagrid-outer-wrapper\">\n <div class=\"datagrid-inner-wrapper\">\n <div class=\"datagrid\" #datagrid [attr.aria-hidden]=\"detailService.isOpen ? true : null\">\n <div class=\"datagrid-table-wrapper\">\n <div role=\"grid\" class=\"datagrid-table\" tabindex=\"-1\" #datagridTable>\n <div role=\"rowgroup\" class=\"datagrid-header\">\n <div role=\"row\" class=\"datagrid-row\">\n <div class=\"datagrid-row-master datagrid-row-flex\">\n <div class=\"datagrid-row-sticky\">\n <!--header for datagrid where you can select multiple rows -->\n <div\n role=\"columnheader\"\n class=\"datagrid-column datagrid-select datagrid-fixed-column\"\n *ngIf=\"selection.selectionType === SELECTION_TYPE.Multi\"\n >\n <div class=\"clr-checkbox-wrapper\">\n <input\n type=\"checkbox\"\n [id]=\"selectAllId\"\n [(ngModel)]=\"allSelected\"\n [attr.aria-label]=\"commonStrings.keys.selectAll\"\n />\n <!-- Usage of class clr-col-null here prevents clr-col-* classes from being added when a datagrid is wrapped inside clrForm -->\n <label [for]=\"selectAllId\" class=\"clr-control-label clr-col-null\">\n <span class=\"clr-sr-only\">{{commonStrings.keys.selectAll}}</span>\n </label>\n </div>\n\n <div class=\"datagrid-column-separator\"></div>\n </div>\n <!-- header for datagrid where you can select one row only -->\n <div\n role=\"columnheader\"\n class=\"datagrid-column datagrid-select datagrid-fixed-column\"\n *ngIf=\"selection.selectionType === SELECTION_TYPE.Single\"\n [attr.aria-label]=\"clrDgSingleSelectionAriaLabel\"\n >\n <div class=\"datagrid-column-separator\"></div>\n </div>\n <!-- header for single row action; only displayType if we have at least one actionable row in datagrid -->\n <div\n role=\"columnheader\"\n class=\"datagrid-column datagrid-row-actions datagrid-fixed-column\"\n *ngIf=\"rowActionService.hasActionableRow\"\n [attr.aria-label]=\"clrDgSingleActionableAriaLabel\"\n >\n <div class=\"datagrid-column-separator\"></div>\n </div>\n <!-- header for carets; only displayType if we have at least one expandable row in datagrid -->\n <div\n role=\"columnheader\"\n class=\"datagrid-column datagrid-expandable-caret datagrid-fixed-column\"\n *ngIf=\"expandableRows.hasExpandableRow || detailService.enabled\"\n [attr.aria-label]=\"clrDetailExpandableAriaLabel\"\n >\n <div class=\"datagrid-column-separator\"></div>\n </div>\n </div>\n <div class=\"datagrid-row-scrollable\">\n <ng-container #projectedDisplayColumns></ng-container>\n </div>\n </div>\n </div>\n </div>\n <ng-container #displayedRows></ng-container>\n <!-- Custom placeholder overrides the default empty one -->\n <ng-content select=\"clr-dg-placeholder\"></ng-content>\n <clr-dg-placeholder *ngIf=\"!placeholder\"></clr-dg-placeholder>\n </div>\n </div>\n </div>\n <ng-content select=\"clr-dg-footer\"></ng-content>\n <div class=\"datagrid-spinner\" *ngIf=\"loading\">\n <clr-spinner clrMedium>Loading</clr-spinner>\n </div>\n </div>\n <ng-content select=\"[clrIfDetail],clr-dg-detail\"></ng-content>\n</div>\n\n<div class=\"datagrid-calculation-table\">\n <div class=\"datagrid-calculation-header\">\n <ng-container #projectedCalculationColumns></ng-container>\n </div>\n <ng-container #calculationRows></ng-container>\n</div>\n", components: [{ type: ClrDatagridPlaceholder, selector: "clr-dg-placeholder" }, { type: ClrSpinner, selector: "clr-spinner", inputs: ["clrInline", "clrInverse", "clrSmall", "clrMedium"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: ClrLabel, selector: "label", inputs: ["for"] }] });
|
|
14367
14373
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDatagrid, decorators: [{
|
|
14368
14374
|
type: Component,
|
|
14369
14375
|
args: [{ selector: 'clr-datagrid', providers: [
|
|
@@ -14840,7 +14846,7 @@ ClrDatagridColumnToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
|
|
|
14840
14846
|
</clr-dg-column-toggle-button>
|
|
14841
14847
|
</div>
|
|
14842
14848
|
</div>
|
|
14843
|
-
`, isInline: true, components: [{ type: ClrCheckboxWrapper, selector: "clr-checkbox-wrapper,clr-toggle-wrapper" }, { type: ClrDatagridColumnToggleButton, selector: "clr-dg-column-toggle-button", outputs: ["clrAllSelected"] }], directives: [{ type: ClrPopoverAnchor, selector: "[clrPopoverAnchor]" }, { type: ClrPopoverOpenCloseButton, selector: "[clrPopoverOpenCloseButton]", outputs: ["clrPopoverOpenCloseChange"] }, { type: CdsIconCustomTag, selector: "cds-icon" }, { type: ClrPopoverContent, selector: "[clrPopoverContent]", inputs: ["clrPopoverContent", "clrPopoverContentAt", "clrPopoverContentOutsideClickToClose", "clrPopoverContentScrollToClose"] }, { type: FocusTrapDirective, selector: "[clrFocusTrap]", inputs: ["clrFocusTrap"] }, { type:
|
|
14849
|
+
`, isInline: true, components: [{ type: ClrCheckboxWrapper, selector: "clr-checkbox-wrapper,clr-toggle-wrapper" }, { type: ClrDatagridColumnToggleButton, selector: "clr-dg-column-toggle-button", outputs: ["clrAllSelected"] }], directives: [{ type: ClrPopoverAnchor, selector: "[clrPopoverAnchor]" }, { type: ClrPopoverOpenCloseButton, selector: "[clrPopoverOpenCloseButton]", outputs: ["clrPopoverOpenCloseChange"] }, { type: CdsIconCustomTag, selector: "cds-icon" }, { type: ClrPopoverContent, selector: "[clrPopoverContent]", inputs: ["clrPopoverContent", "clrPopoverContentAt", "clrPopoverContentOutsideClickToClose", "clrPopoverContentScrollToClose"] }, { type: FocusTrapDirective, selector: "[clrFocusTrap]", inputs: ["clrFocusTrap"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrPopoverCloseButton, selector: "[clrPopoverCloseButton]", outputs: ["clrPopoverOnCloseChange"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: ClrDatagridItemsTrackBy, selector: "[ngForTrackBy]", inputs: ["ngForTrackBy"] }, { type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { type: ClrCheckbox, selector: "[clrCheckbox],[clrToggle]" }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: ClrLabel, selector: "label", inputs: ["for"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
|
|
14844
14850
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDatagridColumnToggle, decorators: [{
|
|
14845
14851
|
type: Component,
|
|
14846
14852
|
args: [{
|
|
@@ -15046,7 +15052,7 @@ ClrDatagridDetail.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
15046
15052
|
<ng-content></ng-content>
|
|
15047
15053
|
<div class="clr-sr-only">{{ commonStrings.keys.detailPaneEnd }}</div>
|
|
15048
15054
|
</div>
|
|
15049
|
-
`, isInline: true, directives: [{ type:
|
|
15055
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: FocusTrapDirective, selector: "[clrFocusTrap]", inputs: ["clrFocusTrap"] }] });
|
|
15050
15056
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDatagridDetail, decorators: [{
|
|
15051
15057
|
type: Component,
|
|
15052
15058
|
args: [{
|
|
@@ -15203,7 +15209,7 @@ ClrDatagridFooter.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
15203
15209
|
</div>
|
|
15204
15210
|
</ng-container>
|
|
15205
15211
|
<ng-content select="clr-dg-pagination"></ng-content>
|
|
15206
|
-
`, isInline: true, components: [{ type: ClrCheckboxWrapper, selector: "clr-checkbox-wrapper,clr-toggle-wrapper" }, { type: ClrDatagridColumnToggle, selector: "clr-dg-column-toggle" }], directives: [{ type:
|
|
15212
|
+
`, isInline: true, components: [{ type: ClrCheckboxWrapper, selector: "clr-checkbox-wrapper,clr-toggle-wrapper" }, { type: ClrDatagridColumnToggle, selector: "clr-dg-column-toggle" }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrCheckbox, selector: "[clrCheckbox],[clrToggle]" }, { type: ClrLabel, selector: "label", inputs: ["for"] }] });
|
|
15207
15213
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDatagridFooter, decorators: [{
|
|
15208
15214
|
type: Component,
|
|
15209
15215
|
args: [{
|
|
@@ -15334,7 +15340,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
15334
15340
|
type: Directive,
|
|
15335
15341
|
args: [{ selector: '[clrDgHideableColumn]' }]
|
|
15336
15342
|
}], ctorParameters: function () {
|
|
15337
|
-
return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: ColumnsService }, { type: i3
|
|
15343
|
+
return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: ColumnsService }, { type: i3.BehaviorSubject, decorators: [{
|
|
15338
15344
|
type: Optional
|
|
15339
15345
|
}, {
|
|
15340
15346
|
type: Inject,
|
|
@@ -15374,7 +15380,7 @@ ClrDatagridPageSize.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
|
|
|
15374
15380
|
<option *ngFor="let option of pageSizeOptions" [ngValue]="option">{{ option }}</option>
|
|
15375
15381
|
</select>
|
|
15376
15382
|
</div>
|
|
15377
|
-
`, isInline: true, directives: [{ type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type:
|
|
15383
|
+
`, isInline: true, directives: [{ type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }] });
|
|
15378
15384
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDatagridPageSize, decorators: [{
|
|
15379
15385
|
type: Component,
|
|
15380
15386
|
args: [{
|
|
@@ -15624,7 +15630,7 @@ ClrDatagridPagination.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
15624
15630
|
</button>
|
|
15625
15631
|
</div>
|
|
15626
15632
|
</ng-container>
|
|
15627
|
-
`, isInline: true, directives: [{ type:
|
|
15633
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
15628
15634
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDatagridPagination, decorators: [{
|
|
15629
15635
|
type: Component,
|
|
15630
15636
|
args: [{
|
|
@@ -16028,7 +16034,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
16028
16034
|
type: Directive,
|
|
16029
16035
|
args: [{ selector: 'clr-dg-column', providers: [ColumnResizerService, COLUMN_STATE_PROVIDER] }]
|
|
16030
16036
|
}], ctorParameters: function () {
|
|
16031
|
-
return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: DatagridRenderOrganizer }, { type: DomAdapter }, { type: ColumnResizerService }, { type: ColumnsService }, { type: i3
|
|
16037
|
+
return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: DatagridRenderOrganizer }, { type: DomAdapter }, { type: ColumnResizerService }, { type: ColumnsService }, { type: i3.BehaviorSubject, decorators: [{
|
|
16032
16038
|
type: Inject,
|
|
16033
16039
|
args: [COLUMN_STATE]
|
|
16034
16040
|
}] }];
|
|
@@ -16618,7 +16624,7 @@ ClrStackBlock.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
|
|
|
16618
16624
|
<ng-content select="clr-stack-block"></ng-content>
|
|
16619
16625
|
</div>
|
|
16620
16626
|
</clr-expandable-animation>
|
|
16621
|
-
`, isInline: true, styles: [":host{display:block}\n"], components: [{ type: ClrExpandableAnimation, selector: "clr-expandable-animation", inputs: ["clrExpandTrigger"] }], directives: [{ type:
|
|
16627
|
+
`, isInline: true, styles: [":host{display:block}\n"], components: [{ type: ClrExpandableAnimation, selector: "clr-expandable-animation", inputs: ["clrExpandTrigger"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
16622
16628
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrStackBlock, decorators: [{
|
|
16623
16629
|
type: Component,
|
|
16624
16630
|
args: [{
|
|
@@ -16798,7 +16804,7 @@ ClrStackHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
|
|
|
16798
16804
|
<!-- End of undocumented experimental feature. -->
|
|
16799
16805
|
</span>
|
|
16800
16806
|
</h4>
|
|
16801
|
-
`, isInline: true, styles: [":host{display:block}\n"], directives: [{ type:
|
|
16807
|
+
`, isInline: true, styles: [":host{display:block}\n"], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
16802
16808
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrStackHeader, decorators: [{
|
|
16803
16809
|
type: Component,
|
|
16804
16810
|
args: [{
|
|
@@ -16869,7 +16875,7 @@ ClrStackInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
|
16869
16875
|
ClrStackInput.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: ClrStackInput, selector: "clr-stack-input", inputs: { model: ["clrModel", "model"], type: "type" }, outputs: { modelChange: "clrModelChange" }, usesInheritance: true, ngImport: i0, template: `
|
|
16870
16876
|
<span *ngIf="!stackView.editing">{{ model }}</span>
|
|
16871
16877
|
<input [type]="type" *ngIf="stackView.editing" [(ngModel)]="model" />
|
|
16872
|
-
`, isInline: true, directives: [{ type:
|
|
16878
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
|
|
16873
16879
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrStackInput, decorators: [{
|
|
16874
16880
|
type: Component,
|
|
16875
16881
|
args: [{
|
|
@@ -16902,7 +16908,7 @@ ClrStackSelect.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
|
|
|
16902
16908
|
<ng-content></ng-content>
|
|
16903
16909
|
</select>
|
|
16904
16910
|
</div>
|
|
16905
|
-
`, isInline: true, directives: [{ type:
|
|
16911
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
|
|
16906
16912
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrStackSelect, decorators: [{
|
|
16907
16913
|
type: Component,
|
|
16908
16914
|
args: [{
|
|
@@ -17390,7 +17396,7 @@ RecursiveChildren.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
17390
17396
|
<ng-container *ngTemplateOutlet="featuresService.recursion.template; context: getContext(child)"></ng-container>
|
|
17391
17397
|
</ng-container>
|
|
17392
17398
|
</ng-container>
|
|
17393
|
-
`, isInline: true, directives: [{ type:
|
|
17399
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
|
|
17394
17400
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: RecursiveChildren, decorators: [{
|
|
17395
17401
|
type: Component,
|
|
17396
17402
|
args: [{
|
|
@@ -17617,7 +17623,7 @@ ClrTreeNode.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
|
17617
17623
|
TREE_FEATURES_PROVIDER,
|
|
17618
17624
|
IfExpandService,
|
|
17619
17625
|
{ provide: LoadingListener, useExisting: IfExpandService },
|
|
17620
|
-
], queries: [{ propertyName: "treeNodeLinkList", predicate: ClrTreeNodeLink }], viewQueries: [{ propertyName: "contentContainer", first: true, predicate: ["contentContainer"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<!--\n ~ Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n<div\n #contentContainer\n role=\"treeitem\"\n class=\"clr-tree-node-content-container\"\n tabindex=\"-1\"\n [attr.aria-expanded]=\"isExpandable() ? expanded : null\"\n [attr.aria-selected]=\"ariaSelected\"\n (keydown)=\"onKeyDown($event)\"\n (focus)=\"broadcastFocusOnContainer()\"\n>\n <button\n *ngIf=\"isExpandable() && !isModelLoading && !expandService.loading\"\n aria-hidden=\"true\"\n type=\"button\"\n tabindex=\"-1\"\n class=\"clr-treenode-caret\"\n (click)=\"expandService.toggle();\"\n (focus)=\"focusTreeNode()\"\n >\n <cds-icon\n class=\"clr-treenode-caret-icon\"\n shape=\"angle\"\n [attr.direction]=\"expandService.expanded ? 'down' : 'right'\"\n ></cds-icon>\n </button>\n <div class=\"clr-treenode-spinner-container\" *ngIf=\"expandService.loading || isModelLoading\">\n <span class=\"clr-treenode-spinner spinner\"></span>\n </div>\n <div class=\"clr-checkbox-wrapper clr-treenode-checkbox\" *ngIf=\"featuresService.selectable\">\n <input\n aria-hidden=\"true\"\n type=\"checkbox\"\n id=\"{{nodeId}}-check\"\n class=\"clr-checkbox\"\n [checked]=\"_model.selected.value === STATES.SELECTED\"\n [indeterminate]=\"_model.selected.value === STATES.INDETERMINATE\"\n (change)=\"_model.toggleSelection(featuresService.eager)\"\n (focus)=\"focusTreeNode()\"\n tabindex=\"-1\"\n />\n <label for=\"{{nodeId}}-check\" class=\"clr-control-label\"></label>\n </div>\n <div class=\"clr-treenode-content\" (mousedown)=\"focusTreeNode()\">\n <ng-content></ng-content>\n <div class=\"clr-sr-only\" *ngIf=\"featuresService.selectable\">\n <span *ngIf=\"ariaSelected\"> selected </span>\n <span *ngIf=\"!ariaSelected\"> unselected </span>\n </div>\n </div>\n</div>\n<div\n class=\"clr-treenode-children\"\n [@toggleChildrenAnim]=\"expandService.expanded ? 'expanded' : 'collapsed'\"\n [attr.role]=\"isExpandable() && !featuresService.recursion ? 'group' : null\"\n>\n <ng-content select=\"clr-tree-node\"></ng-content>\n <ng-content select=\"[clrIfExpanded]\"></ng-content>\n <clr-recursive-children [parent]=\"_model\"></clr-recursive-children>\n</div>\n", components: [{ type: RecursiveChildren, selector: "clr-recursive-children", inputs: ["parent", "children"] }], directives: [{ type:
|
|
17626
|
+
], queries: [{ propertyName: "treeNodeLinkList", predicate: ClrTreeNodeLink }], viewQueries: [{ propertyName: "contentContainer", first: true, predicate: ["contentContainer"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<!--\n ~ Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n<div\n #contentContainer\n role=\"treeitem\"\n class=\"clr-tree-node-content-container\"\n tabindex=\"-1\"\n [attr.aria-expanded]=\"isExpandable() ? expanded : null\"\n [attr.aria-selected]=\"ariaSelected\"\n (keydown)=\"onKeyDown($event)\"\n (focus)=\"broadcastFocusOnContainer()\"\n>\n <button\n *ngIf=\"isExpandable() && !isModelLoading && !expandService.loading\"\n aria-hidden=\"true\"\n type=\"button\"\n tabindex=\"-1\"\n class=\"clr-treenode-caret\"\n (click)=\"expandService.toggle();\"\n (focus)=\"focusTreeNode()\"\n >\n <cds-icon\n class=\"clr-treenode-caret-icon\"\n shape=\"angle\"\n [attr.direction]=\"expandService.expanded ? 'down' : 'right'\"\n ></cds-icon>\n </button>\n <div class=\"clr-treenode-spinner-container\" *ngIf=\"expandService.loading || isModelLoading\">\n <span class=\"clr-treenode-spinner spinner\"></span>\n </div>\n <div class=\"clr-checkbox-wrapper clr-treenode-checkbox\" *ngIf=\"featuresService.selectable\">\n <input\n aria-hidden=\"true\"\n type=\"checkbox\"\n id=\"{{nodeId}}-check\"\n class=\"clr-checkbox\"\n [checked]=\"_model.selected.value === STATES.SELECTED\"\n [indeterminate]=\"_model.selected.value === STATES.INDETERMINATE\"\n (change)=\"_model.toggleSelection(featuresService.eager)\"\n (focus)=\"focusTreeNode()\"\n tabindex=\"-1\"\n />\n <label for=\"{{nodeId}}-check\" class=\"clr-control-label\"></label>\n </div>\n <div class=\"clr-treenode-content\" (mousedown)=\"focusTreeNode()\">\n <ng-content></ng-content>\n <div class=\"clr-sr-only\" *ngIf=\"featuresService.selectable\">\n <span *ngIf=\"ariaSelected\"> selected </span>\n <span *ngIf=\"!ariaSelected\"> unselected </span>\n </div>\n </div>\n</div>\n<div\n class=\"clr-treenode-children\"\n [@toggleChildrenAnim]=\"expandService.expanded ? 'expanded' : 'collapsed'\"\n [attr.role]=\"isExpandable() && !featuresService.recursion ? 'group' : null\"\n>\n <ng-content select=\"clr-tree-node\"></ng-content>\n <ng-content select=\"[clrIfExpanded]\"></ng-content>\n <clr-recursive-children [parent]=\"_model\"></clr-recursive-children>\n</div>\n", components: [{ type: RecursiveChildren, selector: "clr-recursive-children", inputs: ["parent", "children"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: CdsIconCustomTag, selector: "cds-icon" }], animations: [
|
|
17621
17627
|
trigger('toggleChildrenAnim', [
|
|
17622
17628
|
transition('collapsed => expanded', [style({ height: 0 }), animate(200, style({ height: '*' }))]),
|
|
17623
17629
|
transition('expanded => collapsed', [style({ height: '*' }), animate(200, style({ height: 0 }))]),
|
|
@@ -17730,7 +17736,7 @@ ClrTree.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0
|
|
|
17730
17736
|
*ngIf="featuresService.recursion"
|
|
17731
17737
|
[children]="featuresService.recursion.root"
|
|
17732
17738
|
></clr-recursive-children>
|
|
17733
|
-
`, isInline: true, components: [{ type: RecursiveChildren, selector: "clr-recursive-children", inputs: ["parent", "children"] }], directives: [{ type:
|
|
17739
|
+
`, isInline: true, components: [{ type: RecursiveChildren, selector: "clr-recursive-children", inputs: ["parent", "children"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
17734
17740
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrTree, decorators: [{
|
|
17735
17741
|
type: Component,
|
|
17736
17742
|
args: [{
|
|
@@ -18646,7 +18652,7 @@ class Popover {
|
|
|
18646
18652
|
}
|
|
18647
18653
|
|
|
18648
18654
|
/*
|
|
18649
|
-
* Copyright (c) 2016-
|
|
18655
|
+
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
18650
18656
|
* This software is released under MIT license.
|
|
18651
18657
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
18652
18658
|
*/
|
|
@@ -18655,13 +18661,19 @@ class AbstractPopover {
|
|
|
18655
18661
|
constructor(injector, parentHost) {
|
|
18656
18662
|
this.parentHost = parentHost;
|
|
18657
18663
|
this.updateAnchor = false;
|
|
18658
|
-
this.recentlyOpened = false;
|
|
18659
18664
|
this.popoverOptions = {};
|
|
18660
18665
|
/*
|
|
18661
18666
|
* Until https://github.com/angular/angular/issues/8785 is supported, we don't have any way to instantiate
|
|
18662
18667
|
* a separate directive on the host. So let's do dirty but performant for now.
|
|
18663
18668
|
*/
|
|
18664
18669
|
this.closeOnOutsideClick = false;
|
|
18670
|
+
this.closeOnOutsideClickCallback = event => {
|
|
18671
|
+
// The anchor element containing the click event origin means, the click wasn't triggered outside.
|
|
18672
|
+
if (this.anchorElem.contains(event.target)) {
|
|
18673
|
+
return;
|
|
18674
|
+
}
|
|
18675
|
+
this.toggleService.open = false;
|
|
18676
|
+
};
|
|
18665
18677
|
this.el = injector.get(ElementRef);
|
|
18666
18678
|
this.toggleService = injector.get(ClrPopoverToggleService);
|
|
18667
18679
|
this.renderer = injector.get(Renderer2);
|
|
@@ -18672,7 +18684,6 @@ class AbstractPopover {
|
|
|
18672
18684
|
if (change) {
|
|
18673
18685
|
this.anchor();
|
|
18674
18686
|
this.attachESCListener();
|
|
18675
|
-
this.setRecentlyOpened();
|
|
18676
18687
|
}
|
|
18677
18688
|
else {
|
|
18678
18689
|
this.release();
|
|
@@ -18682,13 +18693,10 @@ class AbstractPopover {
|
|
|
18682
18693
|
if (this.toggleService.open) {
|
|
18683
18694
|
this.anchor();
|
|
18684
18695
|
this.attachESCListener();
|
|
18685
|
-
this.setRecentlyOpened();
|
|
18686
18696
|
}
|
|
18687
18697
|
}
|
|
18688
18698
|
anchor() {
|
|
18689
18699
|
this.updateAnchor = true;
|
|
18690
|
-
// Ugh
|
|
18691
|
-
this.ignore = this.toggleService.originalEvent;
|
|
18692
18700
|
}
|
|
18693
18701
|
release() {
|
|
18694
18702
|
this.detachOutsideClickListener();
|
|
@@ -18735,43 +18743,21 @@ class AbstractPopover {
|
|
|
18735
18743
|
}
|
|
18736
18744
|
}
|
|
18737
18745
|
attachOutsideClickListener() {
|
|
18738
|
-
if (this.closeOnOutsideClick) {
|
|
18739
|
-
|
|
18740
|
-
|
|
18741
|
-
this
|
|
18746
|
+
if (this.closeOnOutsideClick && this.toggleService.open) {
|
|
18747
|
+
if (document && document.addEventListener) {
|
|
18748
|
+
// To listen outside click, the listener should catch the event during the capturing phase.
|
|
18749
|
+
// We have to do this ugly document check as Renderer2.listen doesn't allow passive/useCapture listen.
|
|
18750
|
+
document.addEventListener('click', this.closeOnOutsideClickCallback, true);
|
|
18742
18751
|
}
|
|
18743
|
-
this.documentClickListener = this.renderer.listen('document', 'click', event => {
|
|
18744
|
-
if (event === this.ignore || this.recentlyOpened) {
|
|
18745
|
-
delete this.ignore;
|
|
18746
|
-
}
|
|
18747
|
-
else {
|
|
18748
|
-
this.toggleService.open = false;
|
|
18749
|
-
}
|
|
18750
|
-
});
|
|
18751
18752
|
}
|
|
18752
18753
|
}
|
|
18753
18754
|
detachOutsideClickListener() {
|
|
18754
18755
|
if (this.closeOnOutsideClick) {
|
|
18755
|
-
if (
|
|
18756
|
-
this.
|
|
18757
|
-
delete this.hostClickListener;
|
|
18758
|
-
}
|
|
18759
|
-
if (this.ignoredElementClickListener) {
|
|
18760
|
-
this.ignoredElementClickListener();
|
|
18761
|
-
delete this.ignoredElementClickListener;
|
|
18762
|
-
}
|
|
18763
|
-
if (this.documentClickListener) {
|
|
18764
|
-
this.documentClickListener();
|
|
18765
|
-
delete this.documentClickListener;
|
|
18756
|
+
if (document && document.removeEventListener) {
|
|
18757
|
+
document.removeEventListener('click', this.closeOnOutsideClickCallback, true);
|
|
18766
18758
|
}
|
|
18767
18759
|
}
|
|
18768
18760
|
}
|
|
18769
|
-
setRecentlyOpened() {
|
|
18770
|
-
this.recentlyOpened = true;
|
|
18771
|
-
setTimeout(() => {
|
|
18772
|
-
this.recentlyOpened = false;
|
|
18773
|
-
});
|
|
18774
|
-
}
|
|
18775
18761
|
}
|
|
18776
18762
|
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 });
|
|
18777
18763
|
AbstractPopover.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0", type: AbstractPopover, host: { properties: { "class.is-off-screen": "this.isOffScreen" } }, ngImport: i0 });
|
|
@@ -19209,7 +19195,7 @@ class ClrAlert {
|
|
|
19209
19195
|
}
|
|
19210
19196
|
}
|
|
19211
19197
|
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 });
|
|
19212
|
-
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:
|
|
19198
|
+
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" }] });
|
|
19213
19199
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrAlert, decorators: [{
|
|
19214
19200
|
type: Component,
|
|
19215
19201
|
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" }]
|
|
@@ -19414,7 +19400,7 @@ class ClrAlerts {
|
|
|
19414
19400
|
}
|
|
19415
19401
|
}
|
|
19416
19402
|
ClrAlerts.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrAlerts, deps: [{ token: MultiAlertService }], target: i0.ɵɵFactoryTarget.Component });
|
|
19417
|
-
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:
|
|
19403
|
+
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"] }] });
|
|
19418
19404
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrAlerts, decorators: [{
|
|
19419
19405
|
type: Component,
|
|
19420
19406
|
args: [{ selector: 'clr-alerts', providers: [MultiAlertService], host: {
|
|
@@ -19789,7 +19775,7 @@ ClrHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13
|
|
|
19789
19775
|
<span></span>
|
|
19790
19776
|
</button>
|
|
19791
19777
|
<div class="header-backdrop" (click)="closeOpenNav()"></div>
|
|
19792
|
-
`, isInline: true, directives: [{ type:
|
|
19778
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
19793
19779
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrHeader, decorators: [{
|
|
19794
19780
|
type: Component,
|
|
19795
19781
|
args: [{
|
|
@@ -20558,7 +20544,7 @@ ClrTabs.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0
|
|
|
20558
20544
|
</ng-container>
|
|
20559
20545
|
</ul>
|
|
20560
20546
|
<ng-container #tabContentViewContainer></ng-container>
|
|
20561
|
-
`, isInline: true, components: [{ type: ClrKeyFocus, selector: "[clrKeyFocus]", inputs: ["clrDirection", "clrFocusOnLoad", "clrKeyFocus"], outputs: ["clrFocusChange"] }, { type: ClrTabOverflowContent, selector: "clr-tab-overflow-content" }], directives: [{ type:
|
|
20547
|
+
`, 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" }] });
|
|
20562
20548
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrTabs, decorators: [{
|
|
20563
20549
|
type: Component,
|
|
20564
20550
|
args: [{
|
|
@@ -20840,7 +20826,7 @@ class ClrVerticalNav {
|
|
|
20840
20826
|
}
|
|
20841
20827
|
}
|
|
20842
20828
|
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 });
|
|
20843
|
-
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:
|
|
20829
|
+
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" }] });
|
|
20844
20830
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrVerticalNav, decorators: [{
|
|
20845
20831
|
type: Component,
|
|
20846
20832
|
args: [{ selector: 'clr-vertical-nav', providers: [VerticalNavService, VerticalNavIconService, VerticalNavGroupRegistrationService], host: {
|
|
@@ -21256,7 +21242,7 @@ class ClrModal {
|
|
|
21256
21242
|
}
|
|
21257
21243
|
}
|
|
21258
21244
|
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 });
|
|
21259
|
-
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:
|
|
21245
|
+
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: [
|
|
21260
21246
|
trigger('fadeDown', [
|
|
21261
21247
|
transition('* => false', [style({ opacity: 0, transform: 'translate(0, -25%)' }), animate('0.2s ease-in-out')]),
|
|
21262
21248
|
transition('false => *', [animate('0.2s ease-in-out', style({ opacity: 0, transform: 'translate(0, -25%)' }))]),
|
|
@@ -23731,176 +23717,515 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
23731
23717
|
* This software is released under MIT license.
|
|
23732
23718
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
23733
23719
|
*/
|
|
23734
|
-
|
|
23735
|
-
|
|
23736
|
-
|
|
23737
|
-
|
|
23720
|
+
const defaultAnimationTiming = '0.2s ease-in-out';
|
|
23721
|
+
|
|
23722
|
+
/*
|
|
23723
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
23724
|
+
* This software is released under MIT license.
|
|
23725
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
23726
|
+
*/
|
|
23727
|
+
function collapse() {
|
|
23728
|
+
'use strict';
|
|
23729
|
+
return [
|
|
23730
|
+
state('true', style({ height: 0, 'overflow-y': 'hidden' })),
|
|
23731
|
+
transition('true => false', [animate(defaultAnimationTiming, style({ height: '*', 'overflow-y': 'hidden' }))]),
|
|
23732
|
+
transition('false => true', [style({ height: '*', 'overflow-y': 'hidden' }), animate(defaultAnimationTiming)]),
|
|
23733
|
+
];
|
|
23734
|
+
}
|
|
23735
|
+
|
|
23736
|
+
/*
|
|
23737
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
23738
|
+
* This software is released under MIT license.
|
|
23739
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
23740
|
+
*/
|
|
23741
|
+
|
|
23742
|
+
/*
|
|
23743
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
23744
|
+
* This software is released under MIT license.
|
|
23745
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
23746
|
+
*/
|
|
23747
|
+
function fade(opacity = 1) {
|
|
23748
|
+
return [
|
|
23749
|
+
transition('void => *', [style({ opacity: 0 }), animate(defaultAnimationTiming, style({ opacity: opacity }))]),
|
|
23750
|
+
transition('* => void', [animate(defaultAnimationTiming, style({ opacity: 0 }))]),
|
|
23751
|
+
];
|
|
23752
|
+
}
|
|
23753
|
+
|
|
23754
|
+
/*
|
|
23755
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
23756
|
+
* This software is released under MIT license.
|
|
23757
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
23758
|
+
*/
|
|
23759
|
+
|
|
23760
|
+
/*
|
|
23761
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
23762
|
+
* This software is released under MIT license.
|
|
23763
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
23764
|
+
*/
|
|
23765
|
+
function fadeSlide(direction) {
|
|
23766
|
+
let transform = null;
|
|
23767
|
+
if (direction === 'up') {
|
|
23768
|
+
transform = 'translate(0, 25%)';
|
|
23738
23769
|
}
|
|
23739
|
-
|
|
23740
|
-
|
|
23741
|
-
throw new Error('Wizard stepnav item is not associated with a wizard page.');
|
|
23742
|
-
}
|
|
23770
|
+
else if (direction === 'down') {
|
|
23771
|
+
transform = 'translate(0, -25%)';
|
|
23743
23772
|
}
|
|
23744
|
-
|
|
23745
|
-
|
|
23746
|
-
return this.pageCollection.getStepItemIdForPage(this.page);
|
|
23773
|
+
else if (direction === 'left') {
|
|
23774
|
+
transform = 'translate(25%, 0)';
|
|
23747
23775
|
}
|
|
23748
|
-
|
|
23749
|
-
|
|
23776
|
+
else if (direction === 'right') {
|
|
23777
|
+
transform = 'translate(-25%, 0)';
|
|
23750
23778
|
}
|
|
23751
|
-
|
|
23752
|
-
|
|
23753
|
-
return this.page.disabled || this.navService.wizardStopNavigation || this.navService.wizardDisableStepnav;
|
|
23779
|
+
else {
|
|
23780
|
+
throw new Error('Unknown direction ' + direction + ' for slide animation.');
|
|
23754
23781
|
}
|
|
23755
|
-
|
|
23756
|
-
|
|
23757
|
-
|
|
23782
|
+
return [
|
|
23783
|
+
transition('void => *', [style({ opacity: 0, transform: transform }), animate(defaultAnimationTiming)]),
|
|
23784
|
+
transition('* => void', [animate(defaultAnimationTiming, style({ opacity: 0, transform: transform }))]),
|
|
23785
|
+
];
|
|
23786
|
+
}
|
|
23787
|
+
|
|
23788
|
+
/*
|
|
23789
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
23790
|
+
* This software is released under MIT license.
|
|
23791
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
23792
|
+
*/
|
|
23793
|
+
|
|
23794
|
+
/*
|
|
23795
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
23796
|
+
* This software is released under MIT license.
|
|
23797
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
23798
|
+
*/
|
|
23799
|
+
function slide(direction) {
|
|
23800
|
+
let transform = null;
|
|
23801
|
+
if (direction === 'up') {
|
|
23802
|
+
transform = 'translate(0, 25%)';
|
|
23758
23803
|
}
|
|
23759
|
-
|
|
23760
|
-
|
|
23761
|
-
return this.page.completed;
|
|
23804
|
+
else if (direction === 'down') {
|
|
23805
|
+
transform = 'translate(0, -25%)';
|
|
23762
23806
|
}
|
|
23763
|
-
|
|
23764
|
-
|
|
23765
|
-
return this.page.hasError && this.isComplete;
|
|
23807
|
+
else if (direction === 'left') {
|
|
23808
|
+
transform = 'translate(25%, 0)';
|
|
23766
23809
|
}
|
|
23767
|
-
|
|
23768
|
-
|
|
23769
|
-
return this.pageCollection.previousPageIsCompleted(this.page);
|
|
23810
|
+
else if (direction === 'right') {
|
|
23811
|
+
transform = 'translate(-25%, 0)';
|
|
23770
23812
|
}
|
|
23771
|
-
|
|
23772
|
-
|
|
23773
|
-
// if we click on our own stepnav or a disabled stepnav, we don't want to do anything
|
|
23774
|
-
if (this.isDisabled || this.isCurrent) {
|
|
23775
|
-
return;
|
|
23776
|
-
}
|
|
23777
|
-
this.navService.goTo(this.page);
|
|
23813
|
+
else {
|
|
23814
|
+
throw new Error('Unknown direction ' + direction + ' for slide animation.');
|
|
23778
23815
|
}
|
|
23816
|
+
return [
|
|
23817
|
+
transition('void => *', [style({ transform: transform }), animate(defaultAnimationTiming)]),
|
|
23818
|
+
transition('* => void', [animate(defaultAnimationTiming, style({ transform: transform }))]),
|
|
23819
|
+
];
|
|
23779
23820
|
}
|
|
23780
|
-
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 });
|
|
23781
|
-
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: `
|
|
23782
|
-
<button
|
|
23783
|
-
type="button"
|
|
23784
|
-
class="btn btn-link clr-wizard-stepnav-link"
|
|
23785
|
-
(click)="click()"
|
|
23786
|
-
[attr.disabled]="isDisabled ? '' : null"
|
|
23787
|
-
>
|
|
23788
|
-
<span class="clr-wizard-stepnav-link-suffix">
|
|
23789
|
-
<cds-icon
|
|
23790
|
-
shape="error-standard"
|
|
23791
|
-
status="danger"
|
|
23792
|
-
class="clr-wizard-stepnav-item-error-icon"
|
|
23793
|
-
*ngIf="hasError"
|
|
23794
|
-
></cds-icon>
|
|
23795
|
-
<ng-content *ngIf="!hasError"></ng-content>
|
|
23796
|
-
</span>
|
|
23797
|
-
<span class="clr-wizard-stepnav-link-title">
|
|
23798
|
-
<ng-template [ngTemplateOutlet]="page.navTitle"></ng-template>
|
|
23799
|
-
</span>
|
|
23800
|
-
</button>
|
|
23801
|
-
`, 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"] }] });
|
|
23802
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrWizardStepnavItem, decorators: [{
|
|
23803
|
-
type: Component,
|
|
23804
|
-
args: [{
|
|
23805
|
-
selector: '[clr-wizard-stepnav-item]',
|
|
23806
|
-
template: `
|
|
23807
|
-
<button
|
|
23808
|
-
type="button"
|
|
23809
|
-
class="btn btn-link clr-wizard-stepnav-link"
|
|
23810
|
-
(click)="click()"
|
|
23811
|
-
[attr.disabled]="isDisabled ? '' : null"
|
|
23812
|
-
>
|
|
23813
|
-
<span class="clr-wizard-stepnav-link-suffix">
|
|
23814
|
-
<cds-icon
|
|
23815
|
-
shape="error-standard"
|
|
23816
|
-
status="danger"
|
|
23817
|
-
class="clr-wizard-stepnav-item-error-icon"
|
|
23818
|
-
*ngIf="hasError"
|
|
23819
|
-
></cds-icon>
|
|
23820
|
-
<ng-content *ngIf="!hasError"></ng-content>
|
|
23821
|
-
</span>
|
|
23822
|
-
<span class="clr-wizard-stepnav-link-title">
|
|
23823
|
-
<ng-template [ngTemplateOutlet]="page.navTitle"></ng-template>
|
|
23824
|
-
</span>
|
|
23825
|
-
</button>
|
|
23826
|
-
`,
|
|
23827
|
-
host: {
|
|
23828
|
-
'[id]': 'id',
|
|
23829
|
-
'[attr.aria-current]': 'stepAriaCurrent',
|
|
23830
|
-
'[attr.aria-controls]': 'id',
|
|
23831
|
-
'[class.clr-nav-link]': 'true',
|
|
23832
|
-
'[class.nav-item]': 'true',
|
|
23833
|
-
'[class.active]': 'isCurrent',
|
|
23834
|
-
'[class.disabled]': 'isDisabled',
|
|
23835
|
-
'[class.no-click]': '!canNavigate',
|
|
23836
|
-
'[class.complete]': 'isComplete',
|
|
23837
|
-
'[class.error]': 'hasError',
|
|
23838
|
-
},
|
|
23839
|
-
}]
|
|
23840
|
-
}], ctorParameters: function () { return [{ type: WizardNavigationService }, { type: PageCollectionService }]; }, propDecorators: { page: [{
|
|
23841
|
-
type: Input,
|
|
23842
|
-
args: ['page']
|
|
23843
|
-
}] } });
|
|
23844
23821
|
|
|
23845
23822
|
/*
|
|
23846
23823
|
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
23847
23824
|
* This software is released under MIT license.
|
|
23848
23825
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
23849
23826
|
*/
|
|
23850
|
-
class ClrWizardStepnav {
|
|
23851
|
-
constructor(pageService) {
|
|
23852
|
-
this.pageService = pageService;
|
|
23853
|
-
}
|
|
23854
|
-
}
|
|
23855
|
-
ClrWizardStepnav.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrWizardStepnav, deps: [{ token: PageCollectionService }], target: i0.ɵɵFactoryTarget.Component });
|
|
23856
|
-
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: `
|
|
23857
|
-
<div class="clr-wizard-stepnav-list">
|
|
23858
|
-
<div
|
|
23859
|
-
*ngFor="let page of pageService.pages; let i = index"
|
|
23860
|
-
clr-wizard-stepnav-item
|
|
23861
|
-
[page]="page"
|
|
23862
|
-
class="clr-wizard-stepnav-item"
|
|
23863
|
-
>
|
|
23864
|
-
{{ i + 1 }}
|
|
23865
|
-
</div>
|
|
23866
|
-
</div>
|
|
23867
|
-
`, isInline: true, components: [{ type: ClrWizardStepnavItem, selector: "[clr-wizard-stepnav-item]", inputs: ["page"] }], directives: [{ type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
23868
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrWizardStepnav, decorators: [{
|
|
23869
|
-
type: Component,
|
|
23870
|
-
args: [{
|
|
23871
|
-
selector: 'clr-wizard-stepnav',
|
|
23872
|
-
template: `
|
|
23873
|
-
<div class="clr-wizard-stepnav-list">
|
|
23874
|
-
<div
|
|
23875
|
-
*ngFor="let page of pageService.pages; let i = index"
|
|
23876
|
-
clr-wizard-stepnav-item
|
|
23877
|
-
[page]="page"
|
|
23878
|
-
class="clr-wizard-stepnav-item"
|
|
23879
|
-
>
|
|
23880
|
-
{{ i + 1 }}
|
|
23881
|
-
</div>
|
|
23882
|
-
</div>
|
|
23883
|
-
`,
|
|
23884
|
-
host: { class: 'clr-wizard-stepnav' },
|
|
23885
|
-
}]
|
|
23886
|
-
}], ctorParameters: function () { return [{ type: PageCollectionService }]; } });
|
|
23887
23827
|
|
|
23888
23828
|
/*
|
|
23889
23829
|
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
23890
23830
|
* This software is released under MIT license.
|
|
23891
23831
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
23892
23832
|
*/
|
|
23893
|
-
|
|
23894
|
-
|
|
23895
|
-
|
|
23896
|
-
|
|
23897
|
-
|
|
23898
|
-
|
|
23899
|
-
|
|
23900
|
-
|
|
23901
|
-
|
|
23902
|
-
|
|
23903
|
-
|
|
23833
|
+
|
|
23834
|
+
/*
|
|
23835
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
23836
|
+
* This software is released under MIT license.
|
|
23837
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
23838
|
+
*/
|
|
23839
|
+
|
|
23840
|
+
/*
|
|
23841
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
23842
|
+
* This software is released under MIT license.
|
|
23843
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
23844
|
+
*/
|
|
23845
|
+
|
|
23846
|
+
/*
|
|
23847
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
23848
|
+
* This software is released under MIT license.
|
|
23849
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
23850
|
+
*/
|
|
23851
|
+
|
|
23852
|
+
/*
|
|
23853
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
23854
|
+
* This software is released under MIT license.
|
|
23855
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
23856
|
+
*/
|
|
23857
|
+
var ClrAriaLivePoliteness;
|
|
23858
|
+
(function (ClrAriaLivePoliteness) {
|
|
23859
|
+
ClrAriaLivePoliteness["off"] = "off";
|
|
23860
|
+
ClrAriaLivePoliteness["polite"] = "polite";
|
|
23861
|
+
ClrAriaLivePoliteness["assertive"] = "assertive";
|
|
23862
|
+
})(ClrAriaLivePoliteness || (ClrAriaLivePoliteness = {}));
|
|
23863
|
+
/**
|
|
23864
|
+
* Time in milliseconds before inserting the content into the container
|
|
23865
|
+
*/
|
|
23866
|
+
const ARIA_LIVE_TICK = 100;
|
|
23867
|
+
/**
|
|
23868
|
+
* @deprecated
|
|
23869
|
+
*
|
|
23870
|
+
* -- ClrAriaLiveService is deprecated in 5.0 to be removed in 6.0 --
|
|
23871
|
+
* Please consider using the LiveAnnouncer in the Angular Material CDK
|
|
23872
|
+
* if your project needs this functionality.
|
|
23873
|
+
* More info: https://material.angular.io/cdk/a11y/overview#example-1
|
|
23874
|
+
*
|
|
23875
|
+
* This service handle `aria-live` accessibility attribute. The issue is that you need
|
|
23876
|
+
* to have the DOM Element with attribute `aria-live` before you could insert content
|
|
23877
|
+
* and SR (Screen Reader) pick the change and announce it.
|
|
23878
|
+
*
|
|
23879
|
+
* ```typescript
|
|
23880
|
+
* import { ClrAriaLiveService } from 'src/clr-angular/utils/a11y/aria-live.service';
|
|
23881
|
+
*
|
|
23882
|
+
* @Component({
|
|
23883
|
+
* selector: 'clr-demo-component',
|
|
23884
|
+
* providers: [ClrAriaLiveService],
|
|
23885
|
+
* template: `
|
|
23886
|
+
* <ng-content></ng-content>
|
|
23887
|
+
* `,
|
|
23888
|
+
* })
|
|
23889
|
+
* export class DemoComponent {
|
|
23890
|
+
* constructor(ariaLiveService: ClrAriaLiveService) {}
|
|
23891
|
+
*
|
|
23892
|
+
* public actionThatWillTriggerChange() {
|
|
23893
|
+
* this.ariaLiveService.announce('message that I want to announce to SR');
|
|
23894
|
+
* }
|
|
23895
|
+
* }
|
|
23896
|
+
* ```
|
|
23897
|
+
*
|
|
23898
|
+
*/
|
|
23899
|
+
class ClrAriaLiveService {
|
|
23900
|
+
constructor(ngZone, _document, platformId) {
|
|
23901
|
+
this.ngZone = ngZone;
|
|
23902
|
+
this.platformId = platformId;
|
|
23903
|
+
this._id = `clr-aria-live-element-${uniqueIdFactory()}`;
|
|
23904
|
+
this.document = _document;
|
|
23905
|
+
}
|
|
23906
|
+
/**
|
|
23907
|
+
* get access to the internal HTML `id` that gonna be used for the AriaLive container.
|
|
23908
|
+
* @return ID of the DOM Element as string.
|
|
23909
|
+
*/
|
|
23910
|
+
get id() {
|
|
23911
|
+
return this._id;
|
|
23912
|
+
}
|
|
23913
|
+
/**
|
|
23914
|
+
* Append text content inside the AriaLive Container. This method will check if the
|
|
23915
|
+
* DOM Element is existing if not it will create one for us and the will apply the text.
|
|
23916
|
+
*
|
|
23917
|
+
* ```typescript
|
|
23918
|
+
* this.ariaLiveService.announce(this.el.nativeElement);
|
|
23919
|
+
* // or
|
|
23920
|
+
* this.ariaLiveService.announce('Message to announce to SR');
|
|
23921
|
+
* ```
|
|
23922
|
+
*
|
|
23923
|
+
* @remark
|
|
23924
|
+
* When second argument is `AriaLivePoliteness.off` we won't create aria container or update it.
|
|
23925
|
+
* The reason for that is that we don't want to do additional work if the SR will ignore it.
|
|
23926
|
+
*
|
|
23927
|
+
* @param message - This could be simple string or HTMLElement
|
|
23928
|
+
* @param politeness - 'polite', 'assertive' or 'off'
|
|
23929
|
+
*/
|
|
23930
|
+
announce(message, politeness = ClrAriaLivePoliteness.polite) {
|
|
23931
|
+
if (politeness === ClrAriaLivePoliteness.off) {
|
|
23932
|
+
return;
|
|
23933
|
+
}
|
|
23934
|
+
if (!this.ariaLiveElement && isPlatformBrowser(this.platformId)) {
|
|
23935
|
+
this.ariaLiveElement = this.createContainer();
|
|
23936
|
+
}
|
|
23937
|
+
message = typeof message !== 'string' && isPlatformBrowser(this.platformId) ? message.textContent : message;
|
|
23938
|
+
// when there is no message do NOTHING!
|
|
23939
|
+
if (!message) {
|
|
23940
|
+
return;
|
|
23941
|
+
}
|
|
23942
|
+
this.ariaLiveElement.setAttribute('aria-live', politeness);
|
|
23943
|
+
// This 100ms timeout is necessary for some browser + screen-reader combinations:
|
|
23944
|
+
// - Both JAWS and NVDA over IE11 will not announce anything without a non-zero timeout.
|
|
23945
|
+
// - With Chrome and IE11 with NVDA or JAWS, a repeated (identical) message won't be read a
|
|
23946
|
+
// second time without clearing and then using a non-zero delay.
|
|
23947
|
+
// (using JAWS 17 at time of this writing).
|
|
23948
|
+
this.ngZone.runOutsideAngular(() => {
|
|
23949
|
+
// This clearTimeout will stop all older messages from announcing
|
|
23950
|
+
// in the case where the messages are comming too fast we gonna try to append only
|
|
23951
|
+
// the last one. That's what the SR will try to do anyway.
|
|
23952
|
+
clearTimeout(this.previousTimeout);
|
|
23953
|
+
this.previousTimeout = setTimeout(() => {
|
|
23954
|
+
this.ariaLiveElement.textContent = message;
|
|
23955
|
+
}, ARIA_LIVE_TICK);
|
|
23956
|
+
});
|
|
23957
|
+
}
|
|
23958
|
+
/**
|
|
23959
|
+
* onDestroy life cycle - must stop all active setTimeouts and remove the AriaLive
|
|
23960
|
+
* container from the document.
|
|
23961
|
+
*/
|
|
23962
|
+
ngOnDestroy() {
|
|
23963
|
+
clearTimeout(this.previousTimeout);
|
|
23964
|
+
if (isPlatformBrowser(this.platformId) && this.ariaLiveElement) {
|
|
23965
|
+
this.document.body.removeChild(this.ariaLiveElement);
|
|
23966
|
+
this.ariaLiveElement = null;
|
|
23967
|
+
}
|
|
23968
|
+
}
|
|
23969
|
+
/**
|
|
23970
|
+
* Create AriaLive DOM element as a last child of the document.
|
|
23971
|
+
* After the element is created, we gonna apply Clarity class to hide it from
|
|
23972
|
+
* the screen and set the `aria-live` politness.
|
|
23973
|
+
*
|
|
23974
|
+
* `clr-sr-only` is the CSS class that is used to hide the element from the screen.
|
|
23975
|
+
*
|
|
23976
|
+
* @remark
|
|
23977
|
+
* Calling this method multiple times will create multiple DOM Elements, that
|
|
23978
|
+
* won't be tracked and will be GC after the service is destroyed.
|
|
23979
|
+
*
|
|
23980
|
+
* @return AriaLive container as HTMLElement
|
|
23981
|
+
*
|
|
23982
|
+
*/
|
|
23983
|
+
createContainer() {
|
|
23984
|
+
const ariaLiveElement = this.document.createElement('div');
|
|
23985
|
+
ariaLiveElement.setAttribute('id', this.id);
|
|
23986
|
+
// Use clarity screen reader class to hide the dom element
|
|
23987
|
+
// and fix the scrollbar shake
|
|
23988
|
+
ariaLiveElement.classList.add('clr-sr-only');
|
|
23989
|
+
ariaLiveElement.setAttribute('aria-atomic', 'true');
|
|
23990
|
+
ariaLiveElement.setAttribute('aria-live', ClrAriaLivePoliteness.polite);
|
|
23991
|
+
this.document.body.appendChild(ariaLiveElement);
|
|
23992
|
+
return ariaLiveElement;
|
|
23993
|
+
}
|
|
23994
|
+
}
|
|
23995
|
+
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 });
|
|
23996
|
+
ClrAriaLiveService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrAriaLiveService, providedIn: 'root' });
|
|
23997
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrAriaLiveService, decorators: [{
|
|
23998
|
+
type: Injectable,
|
|
23999
|
+
args: [{
|
|
24000
|
+
providedIn: 'root',
|
|
24001
|
+
}]
|
|
24002
|
+
}], ctorParameters: function () {
|
|
24003
|
+
return [{ type: i0.NgZone }, { type: undefined, decorators: [{
|
|
24004
|
+
type: Inject,
|
|
24005
|
+
args: [DOCUMENT]
|
|
24006
|
+
}] }, { type: undefined, decorators: [{
|
|
24007
|
+
type: Inject,
|
|
24008
|
+
args: [PLATFORM_ID]
|
|
24009
|
+
}] }];
|
|
24010
|
+
} });
|
|
24011
|
+
|
|
24012
|
+
/*
|
|
24013
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
24014
|
+
* This software is released under MIT license.
|
|
24015
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
24016
|
+
*/
|
|
24017
|
+
|
|
24018
|
+
/*
|
|
24019
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
24020
|
+
* This software is released under MIT license.
|
|
24021
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
24022
|
+
*/
|
|
24023
|
+
|
|
24024
|
+
/*
|
|
24025
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
24026
|
+
* This software is released under MIT license.
|
|
24027
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
24028
|
+
*
|
|
24029
|
+
*/
|
|
24030
|
+
|
|
24031
|
+
/*
|
|
24032
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
24033
|
+
* This software is released under MIT license.
|
|
24034
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
24035
|
+
*/
|
|
24036
|
+
|
|
24037
|
+
/*
|
|
24038
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
24039
|
+
* This software is released under MIT license.
|
|
24040
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
24041
|
+
*/
|
|
24042
|
+
|
|
24043
|
+
/*
|
|
24044
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
24045
|
+
* This software is released under MIT license.
|
|
24046
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
24047
|
+
*/
|
|
24048
|
+
|
|
24049
|
+
/*
|
|
24050
|
+
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
24051
|
+
* This software is released under MIT license.
|
|
24052
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
24053
|
+
*/
|
|
24054
|
+
class ClrWizardStepnavItem {
|
|
24055
|
+
constructor(navService, pageCollection, commonStrings) {
|
|
24056
|
+
this.navService = navService;
|
|
24057
|
+
this.pageCollection = pageCollection;
|
|
24058
|
+
this.commonStrings = commonStrings;
|
|
24059
|
+
}
|
|
24060
|
+
pageGuard() {
|
|
24061
|
+
if (!this.page) {
|
|
24062
|
+
throw new Error('Wizard stepnav item is not associated with a wizard page.');
|
|
24063
|
+
}
|
|
24064
|
+
}
|
|
24065
|
+
get id() {
|
|
24066
|
+
this.pageGuard();
|
|
24067
|
+
return this.pageCollection.getStepItemIdForPage(this.page);
|
|
24068
|
+
}
|
|
24069
|
+
get stepAriaCurrent() {
|
|
24070
|
+
return this.isCurrent && 'step';
|
|
24071
|
+
}
|
|
24072
|
+
get isDisabled() {
|
|
24073
|
+
this.pageGuard();
|
|
24074
|
+
return this.page.disabled || this.navService.wizardStopNavigation || this.navService.wizardDisableStepnav;
|
|
24075
|
+
}
|
|
24076
|
+
get isCurrent() {
|
|
24077
|
+
this.pageGuard();
|
|
24078
|
+
return this.page.current;
|
|
24079
|
+
}
|
|
24080
|
+
get isComplete() {
|
|
24081
|
+
this.pageGuard();
|
|
24082
|
+
return this.page.completed;
|
|
24083
|
+
}
|
|
24084
|
+
get hasError() {
|
|
24085
|
+
this.pageGuard();
|
|
24086
|
+
return this.page.hasError && this.isComplete;
|
|
24087
|
+
}
|
|
24088
|
+
get canNavigate() {
|
|
24089
|
+
this.pageGuard();
|
|
24090
|
+
return this.pageCollection.previousPageIsCompleted(this.page);
|
|
24091
|
+
}
|
|
24092
|
+
click() {
|
|
24093
|
+
this.pageGuard();
|
|
24094
|
+
// if we click on our own stepnav or a disabled stepnav, we don't want to do anything
|
|
24095
|
+
if (this.isDisabled || this.isCurrent) {
|
|
24096
|
+
return;
|
|
24097
|
+
}
|
|
24098
|
+
this.navService.goTo(this.page);
|
|
24099
|
+
}
|
|
24100
|
+
}
|
|
24101
|
+
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 });
|
|
24102
|
+
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: `
|
|
24103
|
+
<button
|
|
24104
|
+
type="button"
|
|
24105
|
+
class="btn btn-link clr-wizard-stepnav-link"
|
|
24106
|
+
(click)="click()"
|
|
24107
|
+
[attr.disabled]="isDisabled ? '' : null"
|
|
24108
|
+
>
|
|
24109
|
+
<span class="clr-wizard-stepnav-link-suffix">
|
|
24110
|
+
<cds-icon
|
|
24111
|
+
shape="error-standard"
|
|
24112
|
+
status="danger"
|
|
24113
|
+
class="clr-wizard-stepnav-item-error-icon"
|
|
24114
|
+
*ngIf="hasError"
|
|
24115
|
+
></cds-icon>
|
|
24116
|
+
<ng-content *ngIf="!hasError"></ng-content>
|
|
24117
|
+
</span>
|
|
24118
|
+
<span class="clr-wizard-stepnav-link-title">
|
|
24119
|
+
<ng-template [ngTemplateOutlet]="page.navTitle"></ng-template>
|
|
24120
|
+
</span>
|
|
24121
|
+
<span *ngIf="hasError" class="clr-sr-only">{{ commonStrings.keys.wizardStepError }}</span>
|
|
24122
|
+
<span *ngIf="!hasError && isComplete" class="clr-sr-only">{{ commonStrings.keys.wizardStepSuccess }}</span>
|
|
24123
|
+
</button>
|
|
24124
|
+
`, 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"] }] });
|
|
24125
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrWizardStepnavItem, decorators: [{
|
|
24126
|
+
type: Component,
|
|
24127
|
+
args: [{
|
|
24128
|
+
selector: '[clr-wizard-stepnav-item]',
|
|
24129
|
+
template: `
|
|
24130
|
+
<button
|
|
24131
|
+
type="button"
|
|
24132
|
+
class="btn btn-link clr-wizard-stepnav-link"
|
|
24133
|
+
(click)="click()"
|
|
24134
|
+
[attr.disabled]="isDisabled ? '' : null"
|
|
24135
|
+
>
|
|
24136
|
+
<span class="clr-wizard-stepnav-link-suffix">
|
|
24137
|
+
<cds-icon
|
|
24138
|
+
shape="error-standard"
|
|
24139
|
+
status="danger"
|
|
24140
|
+
class="clr-wizard-stepnav-item-error-icon"
|
|
24141
|
+
*ngIf="hasError"
|
|
24142
|
+
></cds-icon>
|
|
24143
|
+
<ng-content *ngIf="!hasError"></ng-content>
|
|
24144
|
+
</span>
|
|
24145
|
+
<span class="clr-wizard-stepnav-link-title">
|
|
24146
|
+
<ng-template [ngTemplateOutlet]="page.navTitle"></ng-template>
|
|
24147
|
+
</span>
|
|
24148
|
+
<span *ngIf="hasError" class="clr-sr-only">{{ commonStrings.keys.wizardStepError }}</span>
|
|
24149
|
+
<span *ngIf="!hasError && isComplete" class="clr-sr-only">{{ commonStrings.keys.wizardStepSuccess }}</span>
|
|
24150
|
+
</button>
|
|
24151
|
+
`,
|
|
24152
|
+
host: {
|
|
24153
|
+
'[id]': 'id',
|
|
24154
|
+
'[attr.aria-current]': 'stepAriaCurrent',
|
|
24155
|
+
'[attr.aria-controls]': 'id',
|
|
24156
|
+
'[class.clr-nav-link]': 'true',
|
|
24157
|
+
'[class.nav-item]': 'true',
|
|
24158
|
+
'[class.active]': 'isCurrent',
|
|
24159
|
+
'[class.disabled]': 'isDisabled',
|
|
24160
|
+
'[class.no-click]': '!canNavigate',
|
|
24161
|
+
'[class.complete]': 'isComplete',
|
|
24162
|
+
'[class.error]': 'hasError',
|
|
24163
|
+
},
|
|
24164
|
+
}]
|
|
24165
|
+
}], ctorParameters: function () { return [{ type: WizardNavigationService }, { type: PageCollectionService }, { type: ClrCommonStringsService }]; }, propDecorators: { page: [{
|
|
24166
|
+
type: Input,
|
|
24167
|
+
args: ['page']
|
|
24168
|
+
}] } });
|
|
24169
|
+
|
|
24170
|
+
/*
|
|
24171
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
24172
|
+
* This software is released under MIT license.
|
|
24173
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
24174
|
+
*/
|
|
24175
|
+
class ClrWizardStepnav {
|
|
24176
|
+
constructor(pageService) {
|
|
24177
|
+
this.pageService = pageService;
|
|
24178
|
+
}
|
|
24179
|
+
}
|
|
24180
|
+
ClrWizardStepnav.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrWizardStepnav, deps: [{ token: PageCollectionService }], target: i0.ɵɵFactoryTarget.Component });
|
|
24181
|
+
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: `
|
|
24182
|
+
<div class="clr-wizard-stepnav-list">
|
|
24183
|
+
<div
|
|
24184
|
+
*ngFor="let page of pageService.pages; let i = index"
|
|
24185
|
+
clr-wizard-stepnav-item
|
|
24186
|
+
[page]="page"
|
|
24187
|
+
class="clr-wizard-stepnav-item"
|
|
24188
|
+
>
|
|
24189
|
+
{{ i + 1 }}
|
|
24190
|
+
</div>
|
|
24191
|
+
</div>
|
|
24192
|
+
`, isInline: true, components: [{ type: ClrWizardStepnavItem, selector: "[clr-wizard-stepnav-item]", inputs: ["page"] }], directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
24193
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrWizardStepnav, decorators: [{
|
|
24194
|
+
type: Component,
|
|
24195
|
+
args: [{
|
|
24196
|
+
selector: 'clr-wizard-stepnav',
|
|
24197
|
+
template: `
|
|
24198
|
+
<div class="clr-wizard-stepnav-list">
|
|
24199
|
+
<div
|
|
24200
|
+
*ngFor="let page of pageService.pages; let i = index"
|
|
24201
|
+
clr-wizard-stepnav-item
|
|
24202
|
+
[page]="page"
|
|
24203
|
+
class="clr-wizard-stepnav-item"
|
|
24204
|
+
>
|
|
24205
|
+
{{ i + 1 }}
|
|
24206
|
+
</div>
|
|
24207
|
+
</div>
|
|
24208
|
+
`,
|
|
24209
|
+
host: { class: 'clr-wizard-stepnav' },
|
|
24210
|
+
}]
|
|
24211
|
+
}], ctorParameters: function () { return [{ type: PageCollectionService }]; } });
|
|
24212
|
+
|
|
24213
|
+
/*
|
|
24214
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
24215
|
+
* This software is released under MIT license.
|
|
24216
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
24217
|
+
*/
|
|
24218
|
+
class ClrWizard {
|
|
24219
|
+
constructor(platformId, navService, pageCollection, buttonService, headerActionService, elementRef, differs) {
|
|
24220
|
+
this.platformId = platformId;
|
|
24221
|
+
this.navService = navService;
|
|
24222
|
+
this.pageCollection = pageCollection;
|
|
24223
|
+
this.buttonService = buttonService;
|
|
24224
|
+
this.headerActionService = headerActionService;
|
|
24225
|
+
this.elementRef = elementRef;
|
|
24226
|
+
/**
|
|
24227
|
+
* Set the modal size of the wizard. Set using `[clrWizardSize]` input.
|
|
24228
|
+
*/
|
|
23904
24229
|
this.size = 'xl';
|
|
23905
24230
|
/**
|
|
23906
24231
|
* Tells the modal part of the wizard whether it should have a close "X"
|
|
@@ -24270,7 +24595,7 @@ class ClrWizard {
|
|
|
24270
24595
|
}
|
|
24271
24596
|
}
|
|
24272
24597
|
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 });
|
|
24273
|
-
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:
|
|
24598
|
+
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" }] });
|
|
24274
24599
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrWizard, decorators: [{
|
|
24275
24600
|
type: Component,
|
|
24276
24601
|
args: [{ selector: 'clr-wizard', providers: [WizardNavigationService, PageCollectionService, ButtonHubService, HeaderActionService], host: {
|
|
@@ -24608,13 +24933,6 @@ var AccordionStatus;
|
|
|
24608
24933
|
AccordionStatus["Complete"] = "complete";
|
|
24609
24934
|
})(AccordionStatus || (AccordionStatus = {}));
|
|
24610
24935
|
|
|
24611
|
-
/*
|
|
24612
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
24613
|
-
* This software is released under MIT license.
|
|
24614
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
24615
|
-
*/
|
|
24616
|
-
const defaultAnimationTiming = '0.2s ease-in-out';
|
|
24617
|
-
|
|
24618
24936
|
/*
|
|
24619
24937
|
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
24620
24938
|
* This software is released under MIT license.
|
|
@@ -24847,7 +25165,7 @@ class ClrAccordionPanel {
|
|
|
24847
25165
|
}
|
|
24848
25166
|
}
|
|
24849
25167
|
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 });
|
|
24850
|
-
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:
|
|
25168
|
+
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 });
|
|
24851
25169
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrAccordionPanel, decorators: [{
|
|
24852
25170
|
type: Component,
|
|
24853
25171
|
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" }]
|
|
@@ -25283,7 +25601,7 @@ class ClrStepperPanel extends ClrAccordionPanel {
|
|
|
25283
25601
|
}
|
|
25284
25602
|
}
|
|
25285
25603
|
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 });
|
|
25286
|
-
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:
|
|
25604
|
+
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 });
|
|
25287
25605
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrStepperPanel, decorators: [{
|
|
25288
25606
|
type: Component,
|
|
25289
25607
|
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" }]
|
|
@@ -25602,7 +25920,7 @@ ClrProgressBar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version:
|
|
|
25602
25920
|
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: `
|
|
25603
25921
|
<progress [id]="id" [attr.max]="max" [attr.value]="value" [attr.data-displayval]="displayValue"></progress>
|
|
25604
25922
|
<span *ngIf="displayStringValue()">{{ displayValue }}</span>
|
|
25605
|
-
`, isInline: true, directives: [{ type:
|
|
25923
|
+
`, isInline: true, directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
25606
25924
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrProgressBar, decorators: [{
|
|
25607
25925
|
type: Component,
|
|
25608
25926
|
args: [{
|
|
@@ -25880,7 +26198,7 @@ ClrTimelineStep.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
|
|
|
25880
26198
|
<ng-template #processing>
|
|
25881
26199
|
<clr-spinner clrMedium [attr.aria-label]="iconAriaLabel"></clr-spinner>
|
|
25882
26200
|
</ng-template>
|
|
25883
|
-
`, isInline: true, components: [{ type: ClrSpinner, selector: "clr-spinner", inputs: ["clrInline", "clrInverse", "clrSmall", "clrMedium"] }], directives: [{ type:
|
|
26201
|
+
`, 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" }] });
|
|
25884
26202
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrTimelineStep, decorators: [{
|
|
25885
26203
|
type: Component,
|
|
25886
26204
|
args: [{
|
|
@@ -26043,143 +26361,29 @@ ClarityModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version:
|
|
|
26043
26361
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClarityModule, decorators: [{
|
|
26044
26362
|
type: NgModule,
|
|
26045
26363
|
args: [{
|
|
26046
|
-
exports: [
|
|
26047
|
-
ClrEmphasisModule,
|
|
26048
|
-
ClrDataModule,
|
|
26049
|
-
ClrIconModule,
|
|
26050
|
-
ClrModalModule,
|
|
26051
|
-
ClrLoadingModule,
|
|
26052
|
-
ClrConditionalModule,
|
|
26053
|
-
ClrFocusTrapModule,
|
|
26054
|
-
ClrFocusOnViewInitModule,
|
|
26055
|
-
ClrButtonModule,
|
|
26056
|
-
ClrFormsModule,
|
|
26057
|
-
ClrLayoutModule,
|
|
26058
|
-
ClrPopoverModule,
|
|
26059
|
-
ClrWizardModule,
|
|
26060
|
-
ClrDragAndDropModule,
|
|
26061
|
-
ClrStepperModule,
|
|
26062
|
-
ClrSpinnerModule,
|
|
26063
|
-
ClrProgressBarModule,
|
|
26064
|
-
ClrPopoverModuleNext,
|
|
26065
|
-
ClrTimelineModule,
|
|
26066
|
-
],
|
|
26067
|
-
}]
|
|
26068
|
-
}] });
|
|
26069
|
-
|
|
26070
|
-
/*
|
|
26071
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
26072
|
-
* This software is released under MIT license.
|
|
26073
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26074
|
-
*/
|
|
26075
|
-
|
|
26076
|
-
/*
|
|
26077
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
26078
|
-
* This software is released under MIT license.
|
|
26079
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26080
|
-
*/
|
|
26081
|
-
|
|
26082
|
-
/*
|
|
26083
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
26084
|
-
* This software is released under MIT license.
|
|
26085
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26086
|
-
*/
|
|
26087
|
-
|
|
26088
|
-
/*
|
|
26089
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
26090
|
-
* This software is released under MIT license.
|
|
26091
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26092
|
-
*/
|
|
26093
|
-
|
|
26094
|
-
/*
|
|
26095
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
26096
|
-
* This software is released under MIT license.
|
|
26097
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26098
|
-
*/
|
|
26099
|
-
|
|
26100
|
-
/*
|
|
26101
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
26102
|
-
* This software is released under MIT license.
|
|
26103
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26104
|
-
*/
|
|
26105
|
-
|
|
26106
|
-
/*
|
|
26107
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
26108
|
-
* This software is released under MIT license.
|
|
26109
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26110
|
-
*/
|
|
26111
|
-
|
|
26112
|
-
/*
|
|
26113
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
26114
|
-
* This software is released under MIT license.
|
|
26115
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26116
|
-
*/
|
|
26117
|
-
|
|
26118
|
-
/*
|
|
26119
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
26120
|
-
* This software is released under MIT license.
|
|
26121
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26122
|
-
*/
|
|
26123
|
-
|
|
26124
|
-
/*
|
|
26125
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
26126
|
-
* This software is released under MIT license.
|
|
26127
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26128
|
-
*/
|
|
26129
|
-
|
|
26130
|
-
/*
|
|
26131
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
26132
|
-
* This software is released under MIT license.
|
|
26133
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26134
|
-
*/
|
|
26135
|
-
|
|
26136
|
-
/*
|
|
26137
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
26138
|
-
* This software is released under MIT license.
|
|
26139
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26140
|
-
*/
|
|
26141
|
-
|
|
26142
|
-
/*
|
|
26143
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
26144
|
-
* This software is released under MIT license.
|
|
26145
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26146
|
-
*/
|
|
26147
|
-
|
|
26148
|
-
/*
|
|
26149
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
26150
|
-
* This software is released under MIT license.
|
|
26151
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26152
|
-
*/
|
|
26153
|
-
|
|
26154
|
-
/*
|
|
26155
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
26156
|
-
* This software is released under MIT license.
|
|
26157
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26158
|
-
*/
|
|
26159
|
-
|
|
26160
|
-
/*
|
|
26161
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
26162
|
-
* This software is released under MIT license.
|
|
26163
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26164
|
-
*/
|
|
26165
|
-
|
|
26166
|
-
/*
|
|
26167
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
26168
|
-
* This software is released under MIT license.
|
|
26169
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26170
|
-
*/
|
|
26171
|
-
|
|
26172
|
-
/*
|
|
26173
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
26174
|
-
* This software is released under MIT license.
|
|
26175
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26176
|
-
*/
|
|
26177
|
-
|
|
26178
|
-
/*
|
|
26179
|
-
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
26180
|
-
* This software is released under MIT license.
|
|
26181
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26182
|
-
*/
|
|
26364
|
+
exports: [
|
|
26365
|
+
ClrEmphasisModule,
|
|
26366
|
+
ClrDataModule,
|
|
26367
|
+
ClrIconModule,
|
|
26368
|
+
ClrModalModule,
|
|
26369
|
+
ClrLoadingModule,
|
|
26370
|
+
ClrConditionalModule,
|
|
26371
|
+
ClrFocusTrapModule,
|
|
26372
|
+
ClrFocusOnViewInitModule,
|
|
26373
|
+
ClrButtonModule,
|
|
26374
|
+
ClrFormsModule,
|
|
26375
|
+
ClrLayoutModule,
|
|
26376
|
+
ClrPopoverModule,
|
|
26377
|
+
ClrWizardModule,
|
|
26378
|
+
ClrDragAndDropModule,
|
|
26379
|
+
ClrStepperModule,
|
|
26380
|
+
ClrSpinnerModule,
|
|
26381
|
+
ClrProgressBarModule,
|
|
26382
|
+
ClrPopoverModuleNext,
|
|
26383
|
+
ClrTimelineModule,
|
|
26384
|
+
],
|
|
26385
|
+
}]
|
|
26386
|
+
}] });
|
|
26183
26387
|
|
|
26184
26388
|
/*
|
|
26185
26389
|
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
@@ -26246,16 +26450,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
26246
26450
|
* This software is released under MIT license.
|
|
26247
26451
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26248
26452
|
*/
|
|
26249
|
-
const CLR_MENU_POSITIONS = [
|
|
26250
|
-
'bottom-left',
|
|
26251
|
-
'bottom-right',
|
|
26252
|
-
'top-left',
|
|
26253
|
-
'top-right',
|
|
26254
|
-
'left-bottom',
|
|
26255
|
-
'left-top',
|
|
26256
|
-
'right-bottom',
|
|
26257
|
-
'right-top',
|
|
26258
|
-
];
|
|
26259
26453
|
|
|
26260
26454
|
/*
|
|
26261
26455
|
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
@@ -26286,14 +26480,6 @@ const CLR_MENU_POSITIONS = [
|
|
|
26286
26480
|
* This software is released under MIT license.
|
|
26287
26481
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26288
26482
|
*/
|
|
26289
|
-
function collapse() {
|
|
26290
|
-
'use strict';
|
|
26291
|
-
return [
|
|
26292
|
-
state('true', style({ height: 0, 'overflow-y': 'hidden' })),
|
|
26293
|
-
transition('true => false', [animate(defaultAnimationTiming, style({ height: '*', 'overflow-y': 'hidden' }))]),
|
|
26294
|
-
transition('false => true', [style({ height: '*', 'overflow-y': 'hidden' }), animate(defaultAnimationTiming)]),
|
|
26295
|
-
];
|
|
26296
|
-
}
|
|
26297
26483
|
|
|
26298
26484
|
/*
|
|
26299
26485
|
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
@@ -26306,12 +26492,6 @@ function collapse() {
|
|
|
26306
26492
|
* This software is released under MIT license.
|
|
26307
26493
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26308
26494
|
*/
|
|
26309
|
-
function fade(opacity = 1) {
|
|
26310
|
-
return [
|
|
26311
|
-
transition('void => *', [style({ opacity: 0 }), animate(defaultAnimationTiming, style({ opacity: opacity }))]),
|
|
26312
|
-
transition('* => void', [animate(defaultAnimationTiming, style({ opacity: 0 }))]),
|
|
26313
|
-
];
|
|
26314
|
-
}
|
|
26315
26495
|
|
|
26316
26496
|
/*
|
|
26317
26497
|
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
@@ -26324,28 +26504,6 @@ function fade(opacity = 1) {
|
|
|
26324
26504
|
* This software is released under MIT license.
|
|
26325
26505
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26326
26506
|
*/
|
|
26327
|
-
function fadeSlide(direction) {
|
|
26328
|
-
let transform = null;
|
|
26329
|
-
if (direction === 'up') {
|
|
26330
|
-
transform = 'translate(0, 25%)';
|
|
26331
|
-
}
|
|
26332
|
-
else if (direction === 'down') {
|
|
26333
|
-
transform = 'translate(0, -25%)';
|
|
26334
|
-
}
|
|
26335
|
-
else if (direction === 'left') {
|
|
26336
|
-
transform = 'translate(25%, 0)';
|
|
26337
|
-
}
|
|
26338
|
-
else if (direction === 'right') {
|
|
26339
|
-
transform = 'translate(-25%, 0)';
|
|
26340
|
-
}
|
|
26341
|
-
else {
|
|
26342
|
-
throw new Error('Unknown direction ' + direction + ' for slide animation.');
|
|
26343
|
-
}
|
|
26344
|
-
return [
|
|
26345
|
-
transition('void => *', [style({ opacity: 0, transform: transform }), animate(defaultAnimationTiming)]),
|
|
26346
|
-
transition('* => void', [animate(defaultAnimationTiming, style({ opacity: 0, transform: transform }))]),
|
|
26347
|
-
];
|
|
26348
|
-
}
|
|
26349
26507
|
|
|
26350
26508
|
/*
|
|
26351
26509
|
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
@@ -26358,28 +26516,6 @@ function fadeSlide(direction) {
|
|
|
26358
26516
|
* This software is released under MIT license.
|
|
26359
26517
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26360
26518
|
*/
|
|
26361
|
-
function slide(direction) {
|
|
26362
|
-
let transform = null;
|
|
26363
|
-
if (direction === 'up') {
|
|
26364
|
-
transform = 'translate(0, 25%)';
|
|
26365
|
-
}
|
|
26366
|
-
else if (direction === 'down') {
|
|
26367
|
-
transform = 'translate(0, -25%)';
|
|
26368
|
-
}
|
|
26369
|
-
else if (direction === 'left') {
|
|
26370
|
-
transform = 'translate(25%, 0)';
|
|
26371
|
-
}
|
|
26372
|
-
else if (direction === 'right') {
|
|
26373
|
-
transform = 'translate(-25%, 0)';
|
|
26374
|
-
}
|
|
26375
|
-
else {
|
|
26376
|
-
throw new Error('Unknown direction ' + direction + ' for slide animation.');
|
|
26377
|
-
}
|
|
26378
|
-
return [
|
|
26379
|
-
transition('void => *', [style({ transform: transform }), animate(defaultAnimationTiming)]),
|
|
26380
|
-
transition('* => void', [animate(defaultAnimationTiming, style({ transform: transform }))]),
|
|
26381
|
-
];
|
|
26382
|
-
}
|
|
26383
26519
|
|
|
26384
26520
|
/*
|
|
26385
26521
|
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
@@ -26416,160 +26552,6 @@ function slide(direction) {
|
|
|
26416
26552
|
* This software is released under MIT license.
|
|
26417
26553
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26418
26554
|
*/
|
|
26419
|
-
var ClrAriaLivePoliteness;
|
|
26420
|
-
(function (ClrAriaLivePoliteness) {
|
|
26421
|
-
ClrAriaLivePoliteness["off"] = "off";
|
|
26422
|
-
ClrAriaLivePoliteness["polite"] = "polite";
|
|
26423
|
-
ClrAriaLivePoliteness["assertive"] = "assertive";
|
|
26424
|
-
})(ClrAriaLivePoliteness || (ClrAriaLivePoliteness = {}));
|
|
26425
|
-
/**
|
|
26426
|
-
* Time in milliseconds before inserting the content into the container
|
|
26427
|
-
*/
|
|
26428
|
-
const ARIA_LIVE_TICK = 100;
|
|
26429
|
-
/**
|
|
26430
|
-
* @deprecated
|
|
26431
|
-
*
|
|
26432
|
-
* -- ClrAriaLiveService is deprecated in 5.0 to be removed in 6.0 --
|
|
26433
|
-
* Please consider using the LiveAnnouncer in the Angular Material CDK
|
|
26434
|
-
* if your project needs this functionality.
|
|
26435
|
-
* More info: https://material.angular.io/cdk/a11y/overview#example-1
|
|
26436
|
-
*
|
|
26437
|
-
* This service handle `aria-live` accessibility attribute. The issue is that you need
|
|
26438
|
-
* to have the DOM Element with attribute `aria-live` before you could insert content
|
|
26439
|
-
* and SR (Screen Reader) pick the change and announce it.
|
|
26440
|
-
*
|
|
26441
|
-
* ```typescript
|
|
26442
|
-
* import { ClrAriaLiveService } from 'src/clr-angular/utils/a11y/aria-live.service';
|
|
26443
|
-
*
|
|
26444
|
-
* @Component({
|
|
26445
|
-
* selector: 'clr-demo-component',
|
|
26446
|
-
* providers: [ClrAriaLiveService],
|
|
26447
|
-
* template: `
|
|
26448
|
-
* <ng-content></ng-content>
|
|
26449
|
-
* `,
|
|
26450
|
-
* })
|
|
26451
|
-
* export class DemoComponent {
|
|
26452
|
-
* constructor(ariaLiveService: ClrAriaLiveService) {}
|
|
26453
|
-
*
|
|
26454
|
-
* public actionThatWillTriggerChange() {
|
|
26455
|
-
* this.ariaLiveService.announce('message that I want to announce to SR');
|
|
26456
|
-
* }
|
|
26457
|
-
* }
|
|
26458
|
-
* ```
|
|
26459
|
-
*
|
|
26460
|
-
*/
|
|
26461
|
-
class ClrAriaLiveService {
|
|
26462
|
-
constructor(ngZone, _document, platformId) {
|
|
26463
|
-
this.ngZone = ngZone;
|
|
26464
|
-
this.platformId = platformId;
|
|
26465
|
-
this._id = `clr-aria-live-element-${uniqueIdFactory()}`;
|
|
26466
|
-
this.document = _document;
|
|
26467
|
-
}
|
|
26468
|
-
/**
|
|
26469
|
-
* get access to the internal HTML `id` that gonna be used for the AriaLive container.
|
|
26470
|
-
* @return ID of the DOM Element as string.
|
|
26471
|
-
*/
|
|
26472
|
-
get id() {
|
|
26473
|
-
return this._id;
|
|
26474
|
-
}
|
|
26475
|
-
/**
|
|
26476
|
-
* Append text content inside the AriaLive Container. This method will check if the
|
|
26477
|
-
* DOM Element is existing if not it will create one for us and the will apply the text.
|
|
26478
|
-
*
|
|
26479
|
-
* ```typescript
|
|
26480
|
-
* this.ariaLiveService.announce(this.el.nativeElement);
|
|
26481
|
-
* // or
|
|
26482
|
-
* this.ariaLiveService.announce('Message to announce to SR');
|
|
26483
|
-
* ```
|
|
26484
|
-
*
|
|
26485
|
-
* @remark
|
|
26486
|
-
* When second argument is `AriaLivePoliteness.off` we won't create aria container or update it.
|
|
26487
|
-
* The reason for that is that we don't want to do additional work if the SR will ignore it.
|
|
26488
|
-
*
|
|
26489
|
-
* @param message - This could be simple string or HTMLElement
|
|
26490
|
-
* @param politeness - 'polite', 'assertive' or 'off'
|
|
26491
|
-
*/
|
|
26492
|
-
announce(message, politeness = ClrAriaLivePoliteness.polite) {
|
|
26493
|
-
if (politeness === ClrAriaLivePoliteness.off) {
|
|
26494
|
-
return;
|
|
26495
|
-
}
|
|
26496
|
-
if (!this.ariaLiveElement && isPlatformBrowser(this.platformId)) {
|
|
26497
|
-
this.ariaLiveElement = this.createContainer();
|
|
26498
|
-
}
|
|
26499
|
-
message = typeof message !== 'string' && isPlatformBrowser(this.platformId) ? message.textContent : message;
|
|
26500
|
-
// when there is no message do NOTHING!
|
|
26501
|
-
if (!message) {
|
|
26502
|
-
return;
|
|
26503
|
-
}
|
|
26504
|
-
this.ariaLiveElement.setAttribute('aria-live', politeness);
|
|
26505
|
-
// This 100ms timeout is necessary for some browser + screen-reader combinations:
|
|
26506
|
-
// - Both JAWS and NVDA over IE11 will not announce anything without a non-zero timeout.
|
|
26507
|
-
// - With Chrome and IE11 with NVDA or JAWS, a repeated (identical) message won't be read a
|
|
26508
|
-
// second time without clearing and then using a non-zero delay.
|
|
26509
|
-
// (using JAWS 17 at time of this writing).
|
|
26510
|
-
this.ngZone.runOutsideAngular(() => {
|
|
26511
|
-
// This clearTimeout will stop all older messages from announcing
|
|
26512
|
-
// in the case where the messages are comming too fast we gonna try to append only
|
|
26513
|
-
// the last one. That's what the SR will try to do anyway.
|
|
26514
|
-
clearTimeout(this.previousTimeout);
|
|
26515
|
-
this.previousTimeout = setTimeout(() => {
|
|
26516
|
-
this.ariaLiveElement.textContent = message;
|
|
26517
|
-
}, ARIA_LIVE_TICK);
|
|
26518
|
-
});
|
|
26519
|
-
}
|
|
26520
|
-
/**
|
|
26521
|
-
* onDestroy life cycle - must stop all active setTimeouts and remove the AriaLive
|
|
26522
|
-
* container from the document.
|
|
26523
|
-
*/
|
|
26524
|
-
ngOnDestroy() {
|
|
26525
|
-
clearTimeout(this.previousTimeout);
|
|
26526
|
-
if (isPlatformBrowser(this.platformId) && this.ariaLiveElement) {
|
|
26527
|
-
this.document.body.removeChild(this.ariaLiveElement);
|
|
26528
|
-
this.ariaLiveElement = null;
|
|
26529
|
-
}
|
|
26530
|
-
}
|
|
26531
|
-
/**
|
|
26532
|
-
* Create AriaLive DOM element as a last child of the document.
|
|
26533
|
-
* After the element is created, we gonna apply Clarity class to hide it from
|
|
26534
|
-
* the screen and set the `aria-live` politness.
|
|
26535
|
-
*
|
|
26536
|
-
* `clr-sr-only` is the CSS class that is used to hide the element from the screen.
|
|
26537
|
-
*
|
|
26538
|
-
* @remark
|
|
26539
|
-
* Calling this method multiple times will create multiple DOM Elements, that
|
|
26540
|
-
* won't be tracked and will be GC after the service is destroyed.
|
|
26541
|
-
*
|
|
26542
|
-
* @return AriaLive container as HTMLElement
|
|
26543
|
-
*
|
|
26544
|
-
*/
|
|
26545
|
-
createContainer() {
|
|
26546
|
-
const ariaLiveElement = this.document.createElement('div');
|
|
26547
|
-
ariaLiveElement.setAttribute('id', this.id);
|
|
26548
|
-
// Use clarity screen reader class to hide the dom element
|
|
26549
|
-
// and fix the scrollbar shake
|
|
26550
|
-
ariaLiveElement.classList.add('clr-sr-only');
|
|
26551
|
-
ariaLiveElement.setAttribute('aria-atomic', 'true');
|
|
26552
|
-
ariaLiveElement.setAttribute('aria-live', ClrAriaLivePoliteness.polite);
|
|
26553
|
-
this.document.body.appendChild(ariaLiveElement);
|
|
26554
|
-
return ariaLiveElement;
|
|
26555
|
-
}
|
|
26556
|
-
}
|
|
26557
|
-
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 });
|
|
26558
|
-
ClrAriaLiveService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrAriaLiveService, providedIn: 'root' });
|
|
26559
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrAriaLiveService, decorators: [{
|
|
26560
|
-
type: Injectable,
|
|
26561
|
-
args: [{
|
|
26562
|
-
providedIn: 'root',
|
|
26563
|
-
}]
|
|
26564
|
-
}], ctorParameters: function () {
|
|
26565
|
-
return [{ type: i0.NgZone }, { type: undefined, decorators: [{
|
|
26566
|
-
type: Inject,
|
|
26567
|
-
args: [DOCUMENT]
|
|
26568
|
-
}] }, { type: undefined, decorators: [{
|
|
26569
|
-
type: Inject,
|
|
26570
|
-
args: [PLATFORM_ID]
|
|
26571
|
-
}] }];
|
|
26572
|
-
} });
|
|
26573
26555
|
|
|
26574
26556
|
/*
|
|
26575
26557
|
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
@@ -26582,12 +26564,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
|
|
|
26582
26564
|
* This software is released under MIT license.
|
|
26583
26565
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26584
26566
|
*/
|
|
26567
|
+
const CLR_MENU_POSITIONS = [
|
|
26568
|
+
'bottom-left',
|
|
26569
|
+
'bottom-right',
|
|
26570
|
+
'top-left',
|
|
26571
|
+
'top-right',
|
|
26572
|
+
'left-bottom',
|
|
26573
|
+
'left-top',
|
|
26574
|
+
'right-bottom',
|
|
26575
|
+
'right-top',
|
|
26576
|
+
];
|
|
26585
26577
|
|
|
26586
26578
|
/*
|
|
26587
26579
|
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
26588
26580
|
* This software is released under MIT license.
|
|
26589
26581
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26590
|
-
*
|
|
26591
26582
|
*/
|
|
26592
26583
|
|
|
26593
26584
|
/*
|