@clr/angular 13.0.3 → 13.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/button/button-group/button-group.d.ts +5 -3
- package/clarity.api.md +72 -22
- package/data/datagrid/built-in/filters/datagrid-numeric-filter.d.ts +11 -3
- package/data/datagrid/built-in/filters/datagrid-string-filter.d.ts +9 -3
- package/data/datagrid/datagrid-column.d.ts +10 -1
- package/data/datagrid/render/main-renderer.d.ts +3 -2
- package/data/stack-view/stack-control.d.ts +7 -2
- package/data/tree-view/tree-node.d.ts +1 -1
- package/esm2020/accordion/stepper/models/stepper.model.mjs +1 -1
- package/esm2020/accordion/stepper/providers/stepper.service.mjs +1 -1
- package/esm2020/accordion/stepper/stepper-panel.mjs +1 -1
- package/esm2020/button/button-group/button-group.mjs +17 -11
- package/esm2020/data/datagrid/built-in/filters/datagrid-numeric-filter.mjs +37 -16
- package/esm2020/data/datagrid/built-in/filters/datagrid-string-filter.mjs +27 -13
- package/esm2020/data/datagrid/datagrid-column-toggle.mjs +7 -3
- package/esm2020/data/datagrid/datagrid-column.mjs +28 -3
- package/esm2020/data/datagrid/datagrid-filter.mjs +1 -1
- package/esm2020/data/datagrid/datagrid-if-expanded.service.mjs +1 -1
- package/esm2020/data/datagrid/render/main-renderer.mjs +9 -6
- package/esm2020/data/stack-view/stack-control.mjs +13 -3
- package/esm2020/data/stack-view/stack-input.mjs +1 -1
- package/esm2020/data/stack-view/stack-select.mjs +1 -1
- package/esm2020/data/tree-view/models/declarative-tree-node.model.mjs +1 -1
- package/esm2020/data/tree-view/models/recursive-tree-node.model.mjs +1 -1
- package/esm2020/data/tree-view/tree-node.mjs +11 -7
- package/esm2020/forms/checkbox/checkbox-container.mjs +1 -1
- package/esm2020/forms/checkbox/checkbox.mjs +1 -1
- package/esm2020/forms/combobox/combobox-container.mjs +1 -1
- package/esm2020/forms/combobox/combobox.mjs +1 -4
- package/esm2020/forms/combobox/model/pseudo-focus.model.mjs +1 -1
- package/esm2020/forms/common/control.mjs +1 -1
- package/esm2020/forms/common/error.mjs +1 -1
- package/esm2020/forms/common/helper.mjs +1 -1
- package/esm2020/forms/common/if-control-state/if-error.mjs +1 -1
- package/esm2020/forms/common/if-control-state/if-success.mjs +1 -1
- package/esm2020/forms/common/success.mjs +1 -1
- package/esm2020/forms/datalist/datalist-container.mjs +1 -1
- package/esm2020/forms/datalist/datalist-input.mjs +1 -1
- package/esm2020/forms/datepicker/date-container.mjs +1 -1
- package/esm2020/forms/datepicker/date-input.mjs +1 -1
- package/esm2020/forms/input/input.mjs +1 -1
- package/esm2020/forms/password/password.mjs +1 -1
- package/esm2020/forms/radio/radio-container.mjs +1 -1
- package/esm2020/forms/range/range-container.mjs +1 -1
- package/esm2020/forms/select/select-container.mjs +1 -1
- package/esm2020/forms/select/select.mjs +1 -1
- package/esm2020/forms/textarea/textarea.mjs +1 -1
- package/esm2020/layout/nav/header.mjs +25 -8
- package/esm2020/layout/nav/nav-level.mjs +109 -7
- package/esm2020/layout/vertical-nav/vertical-nav-group.mjs +3 -3
- package/esm2020/layout/vertical-nav/vertical-nav-link.mjs +25 -15
- package/esm2020/modal/modal-body.mjs +5 -2
- package/esm2020/popover/common/abstract-popover.mjs +15 -6
- package/esm2020/popover/dropdown/dropdown-menu.mjs +1 -1
- package/esm2020/popover/dropdown/providers/dropdown-focus-handler.service.mjs +5 -3
- package/esm2020/popover/signpost/signpost-content.mjs +2 -1
- package/esm2020/utils/breakpoints/breakpoints.mjs +15 -1
- package/esm2020/utils/destroy/destroy.service.mjs +44 -0
- package/esm2020/utils/destroy/index.mjs +7 -0
- package/esm2020/utils/drag-and-drop/providers/drag-event-listener.service.mjs +7 -7
- package/esm2020/utils/focus/focus-on-view-init/focus-on-view-init.mjs +21 -16
- package/esm2020/utils/focus/key-focus/roving-tabindex.mjs +1 -1
- package/esm2020/utils/focus-trap/focus-trap.mjs +141 -0
- package/esm2020/utils/index.mjs +2 -1
- package/esm2020/utils/popover/popover-content.mjs +14 -8
- package/fesm2015/clr-angular.mjs +591 -167
- package/fesm2015/clr-angular.mjs.map +1 -1
- package/fesm2020/clr-angular.mjs +588 -166
- package/fesm2020/clr-angular.mjs.map +1 -1
- package/forms/combobox/combobox.d.ts +0 -1
- package/layout/nav/header.d.ts +6 -0
- package/layout/nav/nav-level.d.ts +16 -4
- package/layout/vertical-nav/vertical-nav-link.d.ts +6 -5
- package/modal/modal-body.d.ts +1 -0
- package/package.json +4 -4
- package/popover/common/abstract-popover.d.ts +3 -1
- package/popover/dropdown/providers/dropdown-focus-handler.service.d.ts +2 -2
- package/utils/breakpoints/breakpoints.d.ts +14 -0
- package/utils/destroy/destroy.service.d.ts +32 -0
- package/utils/destroy/index.d.ts +1 -0
- package/utils/focus/focus-on-view-init/focus-on-view-init.d.ts +5 -4
- package/utils/focus-trap/focus-trap.d.ts +29 -0
- package/utils/index.d.ts +1 -0
- package/utils/popover/popover-content.d.ts +2 -1
package/fesm2015/clr-angular.mjs
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
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';
|
|
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, NgZone, ChangeDetectorRef, 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 i5 from '@angular/common';
|
|
5
5
|
import { CommonModule, DOCUMENT, isPlatformBrowser, getLocaleDayNames, FormStyle, TranslationWidth, getLocaleMonthNames, getLocaleFirstDayOfWeek, getLocaleDateFormat, FormatWidth, NgForOf } from '@angular/common';
|
|
6
|
-
import { filter, debounceTime, first, startWith, switchMap, take, map, tap, distinctUntilChanged, pairwise } from 'rxjs/operators';
|
|
6
|
+
import { filter, debounceTime, takeUntil, first, startWith, switchMap, take, map, tap, distinctUntilChanged, pairwise } from 'rxjs/operators';
|
|
7
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';
|
|
11
11
|
import { FormsModule, SelectMultipleControlValueAccessor, FormControl, FormGroup } from '@angular/forms';
|
|
12
|
+
import { FocusTrapTrackerService, createId, isFocusable, isHTMLElement } from '@cds/core/internal';
|
|
13
|
+
import '@cds/core/internal-components/close-button/register.js';
|
|
12
14
|
import '@cds/core/icon/register';
|
|
13
15
|
|
|
14
16
|
/*
|
|
@@ -780,6 +782,7 @@ class ClrPopoverContent {
|
|
|
780
782
|
this.smartEventsService = smartEventsService;
|
|
781
783
|
this.smartOpenService = smartOpenService;
|
|
782
784
|
this.subscriptions = [];
|
|
785
|
+
this.removeClickListenerFn = null;
|
|
783
786
|
this.shouldRealign = false;
|
|
784
787
|
// Check-collector pattern:
|
|
785
788
|
// In order to get accurate content height/width values, we cannot calculate alignment offsets until
|
|
@@ -835,6 +838,10 @@ class ClrPopoverContent {
|
|
|
835
838
|
if (!this.view) {
|
|
836
839
|
return;
|
|
837
840
|
}
|
|
841
|
+
if (this.removeClickListenerFn) {
|
|
842
|
+
this.removeClickListenerFn();
|
|
843
|
+
this.removeClickListenerFn = null;
|
|
844
|
+
}
|
|
838
845
|
this.view.rootNodes.forEach(node => this.renderer.removeChild(this.document.body, node));
|
|
839
846
|
this.container.clear();
|
|
840
847
|
delete this.view;
|
|
@@ -849,16 +856,17 @@ class ClrPopoverContent {
|
|
|
849
856
|
addContent() {
|
|
850
857
|
// Create the view container
|
|
851
858
|
this.view = this.container.createEmbeddedView(this.template);
|
|
852
|
-
|
|
853
|
-
this.
|
|
859
|
+
const [rootNode] = this.view.rootNodes;
|
|
860
|
+
this.smartEventsService.contentRef = rootNode; // So we know where/what to set close focus on
|
|
861
|
+
this.renderer.addClass(rootNode, 'clr-popover-content');
|
|
854
862
|
// Reset to the begining of the document to be available for sizing/positioning calculations.
|
|
855
863
|
// If we add new content to the bottom it triggers changes in the layout that may lead to false anchor
|
|
856
864
|
// coordinates values.
|
|
857
|
-
this.renderer.setStyle(
|
|
858
|
-
this.renderer.setStyle(
|
|
865
|
+
this.renderer.setStyle(rootNode, 'top', '0px');
|
|
866
|
+
this.renderer.setStyle(rootNode, 'left', '0px');
|
|
859
867
|
// We need to hide it during the calculation phase, while it's not yet finally positioned.
|
|
860
|
-
this.renderer.setStyle(
|
|
861
|
-
this.renderer.listen(
|
|
868
|
+
this.renderer.setStyle(rootNode, 'opacity', '0');
|
|
869
|
+
this.removeClickListenerFn = this.renderer.listen(rootNode, 'click', event => {
|
|
862
870
|
this.smartOpenService.openEvent = event;
|
|
863
871
|
});
|
|
864
872
|
this.view.rootNodes.forEach(node => {
|
|
@@ -889,7 +897,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
889
897
|
type: Directive,
|
|
890
898
|
args: [{ selector: '[clrPopoverContent]' }]
|
|
891
899
|
}], ctorParameters: function () {
|
|
892
|
-
return [{ type:
|
|
900
|
+
return [{ type: Document, decorators: [{
|
|
893
901
|
type: Inject,
|
|
894
902
|
args: [DOCUMENT]
|
|
895
903
|
}] }, { type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: i0.Renderer2 }, { type: ClrPopoverPositionService }, { type: ClrPopoverEventsService }, { type: ClrPopoverToggleService }];
|
|
@@ -1228,7 +1236,7 @@ ClrButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13
|
|
|
1228
1236
|
<ng-content></ng-content>
|
|
1229
1237
|
</button>
|
|
1230
1238
|
</ng-template>
|
|
1231
|
-
`, isInline: true, directives: [{ type:
|
|
1239
|
+
`, isInline: true, directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
1232
1240
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrButton, decorators: [{
|
|
1233
1241
|
type: Component,
|
|
1234
1242
|
args: [{
|
|
@@ -1297,6 +1305,47 @@ const UNIQUE_ID_PROVIDER = {
|
|
|
1297
1305
|
useFactory: uniqueIdFactory,
|
|
1298
1306
|
};
|
|
1299
1307
|
|
|
1308
|
+
/*
|
|
1309
|
+
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
1310
|
+
* This software is released under MIT license.
|
|
1311
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
1312
|
+
*/
|
|
1313
|
+
/**
|
|
1314
|
+
* @description
|
|
1315
|
+
*
|
|
1316
|
+
* Developers should explicitly add this service to providers; it then can be injected
|
|
1317
|
+
* into a constructor and used as a notifier for the `takeUntil` operator. This eliminates
|
|
1318
|
+
* the need for boilerplates with subscriptions, and we don't need to implement the `OnDestroy`
|
|
1319
|
+
* interface and teardown subscriptions there.
|
|
1320
|
+
*
|
|
1321
|
+
* This can be used as follows:
|
|
1322
|
+
* ```ts
|
|
1323
|
+
* @Component({
|
|
1324
|
+
* selector: 'clr-button-group',
|
|
1325
|
+
* templateUrl: 'button-group.html',
|
|
1326
|
+
* providers: [ClrDestroyService],
|
|
1327
|
+
* })
|
|
1328
|
+
* export class ClrButtonGroup {
|
|
1329
|
+
* constructor(public buttonGroupNewService: ButtonInGroupService, private destroy$: ClrDestroyService) {}
|
|
1330
|
+
*
|
|
1331
|
+
* ngAfterContentInit() {
|
|
1332
|
+
* this.buttonGroupNewService.changes.pipe(takeUntil(this.destroy$)).subscribe(button => this.rearrangeButton(button));
|
|
1333
|
+
* }
|
|
1334
|
+
* }
|
|
1335
|
+
* ```
|
|
1336
|
+
*/
|
|
1337
|
+
class ClrDestroyService extends Subject {
|
|
1338
|
+
ngOnDestroy() {
|
|
1339
|
+
this.next();
|
|
1340
|
+
this.complete();
|
|
1341
|
+
}
|
|
1342
|
+
}
|
|
1343
|
+
ClrDestroyService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDestroyService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
1344
|
+
ClrDestroyService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDestroyService });
|
|
1345
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDestroyService, decorators: [{
|
|
1346
|
+
type: Injectable
|
|
1347
|
+
}] });
|
|
1348
|
+
|
|
1300
1349
|
/*
|
|
1301
1350
|
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
1302
1351
|
* This software is released under MIT license.
|
|
@@ -1524,11 +1573,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
1524
1573
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
1525
1574
|
*/
|
|
1526
1575
|
class ClrButtonGroup {
|
|
1527
|
-
constructor(buttonGroupNewService, toggleService, popoverId, commonStrings) {
|
|
1576
|
+
constructor(buttonGroupNewService, toggleService, popoverId, commonStrings, destroy$) {
|
|
1528
1577
|
this.buttonGroupNewService = buttonGroupNewService;
|
|
1529
1578
|
this.toggleService = toggleService;
|
|
1530
1579
|
this.popoverId = popoverId;
|
|
1531
1580
|
this.commonStrings = commonStrings;
|
|
1581
|
+
this.destroy$ = destroy$;
|
|
1532
1582
|
this.popoverPosition = ClrPopoverPositions['bottom-left'];
|
|
1533
1583
|
this.inlineButtons = [];
|
|
1534
1584
|
this.menuButtons = [];
|
|
@@ -1543,7 +1593,7 @@ class ClrButtonGroup {
|
|
|
1543
1593
|
*/
|
|
1544
1594
|
ngAfterContentInit() {
|
|
1545
1595
|
this.initializeButtons();
|
|
1546
|
-
this.buttonGroupNewService.changes.subscribe(button => this.rearrangeButton(button));
|
|
1596
|
+
this.buttonGroupNewService.changes.pipe(takeUntil(this.destroy$)).subscribe(button => this.rearrangeButton(button));
|
|
1547
1597
|
this.buttons.changes.subscribe(() => {
|
|
1548
1598
|
this.initializeButtons();
|
|
1549
1599
|
});
|
|
@@ -1613,14 +1663,15 @@ class ClrButtonGroup {
|
|
|
1613
1663
|
this.popoverPosition = ClrPopoverPositions[this._menuPosition];
|
|
1614
1664
|
}
|
|
1615
1665
|
}
|
|
1616
|
-
ClrButtonGroup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrButtonGroup, deps: [{ token: ButtonInGroupService }, { token: ClrPopoverToggleService }, { token: UNIQUE_ID }, { token: ClrCommonStringsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1666
|
+
ClrButtonGroup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrButtonGroup, deps: [{ token: ButtonInGroupService }, { token: ClrPopoverToggleService }, { token: UNIQUE_ID }, { token: ClrCommonStringsService }, { token: ClrDestroyService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1617
1667
|
ClrButtonGroup.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrButtonGroup, selector: "clr-button-group", inputs: { menuPosition: ["clrMenuPosition", "menuPosition"] }, host: { properties: { "class.btn-group": "true" } }, providers: [
|
|
1618
1668
|
ButtonInGroupService,
|
|
1619
1669
|
UNIQUE_ID_PROVIDER,
|
|
1620
1670
|
ClrPopoverToggleService,
|
|
1621
1671
|
ClrPopoverEventsService,
|
|
1622
1672
|
ClrPopoverPositionService,
|
|
1623
|
-
|
|
1673
|
+
ClrDestroyService,
|
|
1674
|
+
], 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: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.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"] }] });
|
|
1624
1675
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrButtonGroup, decorators: [{
|
|
1625
1676
|
type: Component,
|
|
1626
1677
|
args: [{ selector: 'clr-button-group', providers: [
|
|
@@ -1629,12 +1680,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
1629
1680
|
ClrPopoverToggleService,
|
|
1630
1681
|
ClrPopoverEventsService,
|
|
1631
1682
|
ClrPopoverPositionService,
|
|
1683
|
+
ClrDestroyService,
|
|
1632
1684
|
], host: { '[class.btn-group]': 'true' }, 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" }]
|
|
1633
1685
|
}], ctorParameters: function () {
|
|
1634
1686
|
return [{ type: ButtonInGroupService }, { type: ClrPopoverToggleService }, { type: undefined, decorators: [{
|
|
1635
1687
|
type: Inject,
|
|
1636
1688
|
args: [UNIQUE_ID]
|
|
1637
|
-
}] }, { type: ClrCommonStringsService }];
|
|
1689
|
+
}] }, { type: ClrCommonStringsService }, { type: ClrDestroyService }];
|
|
1638
1690
|
}, propDecorators: { buttons: [{
|
|
1639
1691
|
type: ContentChildren,
|
|
1640
1692
|
args: [ClrButton]
|
|
@@ -1732,7 +1784,7 @@ ClrLoadingButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versi
|
|
|
1732
1784
|
<ng-content></ng-content>
|
|
1733
1785
|
</span>
|
|
1734
1786
|
</ng-container>
|
|
1735
|
-
`, isInline: true, directives: [{ type:
|
|
1787
|
+
`, isInline: true, directives: [{ type: i5.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i5.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], animations: [
|
|
1736
1788
|
trigger('defaultButton', [
|
|
1737
1789
|
transition(':enter', [style({ opacity: 0 }), animate('200ms 100ms ease-in', style({ opacity: 1 }))]),
|
|
1738
1790
|
// TODO: see if we can get leave animation to work before spinner's enter animation
|
|
@@ -2696,7 +2748,7 @@ ClrControlContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
|
|
|
2696
2748
|
<ng-content select="clr-control-error" *ngIf="showInvalid"></ng-content>
|
|
2697
2749
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
2698
2750
|
</div>
|
|
2699
|
-
`, isInline: true, directives: [{ type:
|
|
2751
|
+
`, isInline: true, directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrLabel, selector: "label", inputs: ["for"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
2700
2752
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrControlContainer, decorators: [{
|
|
2701
2753
|
type: Component,
|
|
2702
2754
|
args: [{
|
|
@@ -3080,7 +3132,7 @@ ClrCheckboxWrapper.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
|
|
|
3080
3132
|
<ng-content select="[clrCheckbox],[clrToggle]"></ng-content>
|
|
3081
3133
|
<ng-content select="label"></ng-content>
|
|
3082
3134
|
<label *ngIf="!label"></label>
|
|
3083
|
-
`, isInline: true, directives: [{ type:
|
|
3135
|
+
`, isInline: true, directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrLabel, selector: "label", inputs: ["for"] }] });
|
|
3084
3136
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrCheckboxWrapper, decorators: [{
|
|
3085
3137
|
type: Component,
|
|
3086
3138
|
args: [{
|
|
@@ -3210,7 +3262,7 @@ ClrCheckboxContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
3210
3262
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
3211
3263
|
</div>
|
|
3212
3264
|
</div>
|
|
3213
|
-
`, isInline: true, directives: [{ type:
|
|
3265
|
+
`, isInline: true, directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrLabel, selector: "label", inputs: ["for"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
3214
3266
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrCheckboxContainer, decorators: [{
|
|
3215
3267
|
type: Component,
|
|
3216
3268
|
args: [{
|
|
@@ -4952,7 +5004,7 @@ class ClrCalendar {
|
|
|
4952
5004
|
}
|
|
4953
5005
|
}
|
|
4954
5006
|
ClrCalendar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrCalendar, deps: [{ token: LocaleHelperService }, { token: DateNavigationService }, { token: DatepickerFocusService }, { token: DateIOService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
4955
|
-
ClrCalendar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", 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:
|
|
5007
|
+
ClrCalendar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", 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: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
4956
5008
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrCalendar, decorators: [{
|
|
4957
5009
|
type: Component,
|
|
4958
5010
|
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" }]
|
|
@@ -4988,9 +5040,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
4988
5040
|
* This software is released under MIT license.
|
|
4989
5041
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
4990
5042
|
*/
|
|
5043
|
+
/**
|
|
5044
|
+
* TODO:
|
|
5045
|
+
* Using core functions like:
|
|
5046
|
+
* - pluckPixelValue
|
|
5047
|
+
* - getCssPropertyValue
|
|
5048
|
+
*
|
|
5049
|
+
* to get the value of the design token.
|
|
5050
|
+
*
|
|
5051
|
+
* Note: Memoization/Cache usage possible.
|
|
5052
|
+
*/
|
|
4991
5053
|
// iPad mini screen width
|
|
4992
5054
|
// http://stephen.io/mediaqueries/#iPadMini
|
|
4993
5055
|
const DATEPICKER_ENABLE_BREAKPOINT = 768;
|
|
5056
|
+
const SMALL_BREAKPOINT = 576;
|
|
5057
|
+
const MEDIUM_BREAKPOINT = 768;
|
|
5058
|
+
const LARGE_BREAKPOINT = 992;
|
|
5059
|
+
const EXTRA_LARGE_BREAKPOINT = 1200;
|
|
4994
5060
|
|
|
4995
5061
|
/*
|
|
4996
5062
|
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
@@ -5164,7 +5230,7 @@ ClrMonthpicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
|
|
|
5164
5230
|
>
|
|
5165
5231
|
{{ month }}
|
|
5166
5232
|
</button>
|
|
5167
|
-
`, isInline: true, directives: [{ type:
|
|
5233
|
+
`, isInline: true, directives: [{ type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
5168
5234
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrMonthpicker, decorators: [{
|
|
5169
5235
|
type: Component,
|
|
5170
5236
|
args: [{
|
|
@@ -5417,7 +5483,7 @@ ClrYearpicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
|
|
|
5417
5483
|
{{ year }}
|
|
5418
5484
|
</button>
|
|
5419
5485
|
</div>
|
|
5420
|
-
`, isInline: true, directives: [{ type: CdsIconCustomTag, selector: "cds-icon" }, { type:
|
|
5486
|
+
`, isInline: true, directives: [{ type: CdsIconCustomTag, selector: "cds-icon" }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
5421
5487
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrYearpicker, decorators: [{
|
|
5422
5488
|
type: Component,
|
|
5423
5489
|
args: [{
|
|
@@ -5573,7 +5639,7 @@ class ClrDatepickerViewManager {
|
|
|
5573
5639
|
}
|
|
5574
5640
|
}
|
|
5575
5641
|
ClrDatepickerViewManager.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDatepickerViewManager, deps: [{ token: ClrCommonStringsService }, { token: ViewManagerService }], target: i0.ɵɵFactoryTarget.Component });
|
|
5576
|
-
ClrDatepickerViewManager.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrDatepickerViewManager, selector: "clr-datepicker-view-manager", host: { attributes: { "role": "dialog" }, properties: { "class.datepicker": "true", "attr.aria-modal": "true", "attr.aria-label": "commonStrings.keys.datepickerDialogLabel" } }, 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:
|
|
5642
|
+
ClrDatepickerViewManager.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrDatepickerViewManager, selector: "clr-datepicker-view-manager", host: { attributes: { "role": "dialog" }, properties: { "class.datepicker": "true", "attr.aria-modal": "true", "attr.aria-label": "commonStrings.keys.datepickerDialogLabel" } }, 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: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
5577
5643
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDatepickerViewManager, decorators: [{
|
|
5578
5644
|
type: Component,
|
|
5579
5645
|
args: [{ selector: 'clr-datepicker-view-manager', providers: [DatepickerFocusService], host: {
|
|
@@ -5741,7 +5807,7 @@ ClrDateContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versi
|
|
|
5741
5807
|
<ng-content select="clr-control-error" *ngIf="showInvalid"></ng-content>
|
|
5742
5808
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
5743
5809
|
</div>
|
|
5744
|
-
`, isInline: true, components: [{ type: ClrDatepickerViewManager, selector: "clr-datepicker-view-manager" }], directives: [{ type:
|
|
5810
|
+
`, isInline: true, components: [{ type: ClrDatepickerViewManager, selector: "clr-datepicker-view-manager" }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrLabel, selector: "label", inputs: ["for"] }, { type: i5.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"] }] });
|
|
5745
5811
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDateContainer, decorators: [{
|
|
5746
5812
|
type: Component,
|
|
5747
5813
|
args: [{
|
|
@@ -6211,7 +6277,7 @@ ClrInputContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
6211
6277
|
<ng-content select="clr-control-error" *ngIf="showInvalid"></ng-content>
|
|
6212
6278
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
6213
6279
|
</div>
|
|
6214
|
-
`, isInline: true, directives: [{ type:
|
|
6280
|
+
`, isInline: true, directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrLabel, selector: "label", inputs: ["for"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
6215
6281
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrInputContainer, decorators: [{
|
|
6216
6282
|
type: Component,
|
|
6217
6283
|
args: [{
|
|
@@ -6387,7 +6453,7 @@ ClrPasswordContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
6387
6453
|
<ng-content select="clr-control-error" *ngIf="showInvalid"></ng-content>
|
|
6388
6454
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
6389
6455
|
</div>
|
|
6390
|
-
`, isInline: true, directives: [{ type:
|
|
6456
|
+
`, isInline: true, directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrLabel, selector: "label", inputs: ["for"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
6391
6457
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrPasswordContainer, decorators: [{
|
|
6392
6458
|
type: Component,
|
|
6393
6459
|
args: [{
|
|
@@ -6564,7 +6630,7 @@ ClrRadioWrapper.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
|
|
|
6564
6630
|
<ng-content select="[clrRadio]"></ng-content>
|
|
6565
6631
|
<ng-content select="label"></ng-content>
|
|
6566
6632
|
<label *ngIf="!label"></label>
|
|
6567
|
-
`, isInline: true, directives: [{ type:
|
|
6633
|
+
`, isInline: true, directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrLabel, selector: "label", inputs: ["for"] }] });
|
|
6568
6634
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrRadioWrapper, decorators: [{
|
|
6569
6635
|
type: Component,
|
|
6570
6636
|
args: [{
|
|
@@ -6671,7 +6737,7 @@ ClrRadioContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
6671
6737
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
6672
6738
|
</div>
|
|
6673
6739
|
</div>
|
|
6674
|
-
`, isInline: true, directives: [{ type:
|
|
6740
|
+
`, isInline: true, directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrLabel, selector: "label", inputs: ["for"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
6675
6741
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrRadioContainer, decorators: [{
|
|
6676
6742
|
type: Component,
|
|
6677
6743
|
args: [{
|
|
@@ -6797,7 +6863,7 @@ ClrSelectContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
|
|
|
6797
6863
|
<ng-content select="clr-control-error" *ngIf="showInvalid"></ng-content>
|
|
6798
6864
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
6799
6865
|
</div>
|
|
6800
|
-
`, isInline: true, directives: [{ type:
|
|
6866
|
+
`, isInline: true, directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrLabel, selector: "label", inputs: ["for"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
6801
6867
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrSelectContainer, decorators: [{
|
|
6802
6868
|
type: Component,
|
|
6803
6869
|
args: [{
|
|
@@ -6924,7 +6990,7 @@ ClrTextareaContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
6924
6990
|
<ng-content select="clr-control-error" *ngIf="showInvalid"></ng-content>
|
|
6925
6991
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
6926
6992
|
</div>
|
|
6927
|
-
`, isInline: true, directives: [{ type:
|
|
6993
|
+
`, isInline: true, directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrLabel, selector: "label", inputs: ["for"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
6928
6994
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrTextareaContainer, decorators: [{
|
|
6929
6995
|
type: Component,
|
|
6930
6996
|
args: [{
|
|
@@ -7074,7 +7140,7 @@ ClrRangeContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
7074
7140
|
<ng-content select="clr-control-error" *ngIf="showInvalid"></ng-content>
|
|
7075
7141
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
7076
7142
|
</div>
|
|
7077
|
-
`, isInline: true, directives: [{ type:
|
|
7143
|
+
`, isInline: true, directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrLabel, selector: "label", inputs: ["for"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
7078
7144
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrRangeContainer, decorators: [{
|
|
7079
7145
|
type: Component,
|
|
7080
7146
|
args: [{
|
|
@@ -7247,7 +7313,7 @@ ClrDatalistContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
7247
7313
|
<ng-content select="clr-control-error" *ngIf="showInvalid"></ng-content>
|
|
7248
7314
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
7249
7315
|
</div>
|
|
7250
|
-
`, isInline: true, directives: [{ type:
|
|
7316
|
+
`, isInline: true, directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrLabel, selector: "label", inputs: ["for"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
7251
7317
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDatalistContainer, decorators: [{
|
|
7252
7318
|
type: Component,
|
|
7253
7319
|
args: [{
|
|
@@ -7945,7 +8011,7 @@ class ClrOption {
|
|
|
7945
8011
|
}
|
|
7946
8012
|
ClrOption.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrOption, deps: [{ token: i0.ElementRef }, { token: ClrCommonStringsService }, { token: ComboboxFocusHandler }, { token: OptionSelectionService }, { token: UNIQUE_ID }], target: i0.ɵɵFactoryTarget.Component });
|
|
7947
8013
|
ClrOption.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", 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>
|
|
7948
|
-
<span *ngIf="selected" class="clr-sr-only"> {{ commonStrings.keys.comboboxSelected }} </span> `, isInline: true, directives: [{ type:
|
|
8014
|
+
<span *ngIf="selected" class="clr-sr-only"> {{ commonStrings.keys.comboboxSelected }} </span> `, isInline: true, directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
7949
8015
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrOption, decorators: [{
|
|
7950
8016
|
type: Component,
|
|
7951
8017
|
args: [{
|
|
@@ -8169,7 +8235,7 @@ ClrOptions.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "1
|
|
|
8169
8235
|
|
|
8170
8236
|
<!--Option Groups and Options will be projected here-->
|
|
8171
8237
|
<ng-content></ng-content>
|
|
8172
|
-
`, isInline: true, components: [{ type: ClrSpinner, selector: "clr-spinner", inputs: ["clrInline", "clrInverse", "clrSmall", "clrMedium"] }], directives: [{ type:
|
|
8238
|
+
`, isInline: true, components: [{ type: ClrSpinner, selector: "clr-spinner", inputs: ["clrInline", "clrInverse", "clrSmall", "clrMedium"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
8173
8239
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrOptions, decorators: [{
|
|
8174
8240
|
type: Component,
|
|
8175
8241
|
args: [{
|
|
@@ -8283,7 +8349,7 @@ ClrComboboxContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
8283
8349
|
<ng-content select="clr-control-error" *ngIf="showInvalid"></ng-content>
|
|
8284
8350
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
8285
8351
|
</div>
|
|
8286
|
-
`, isInline: true, directives: [{ type:
|
|
8352
|
+
`, isInline: true, directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrLabel, selector: "label", inputs: ["for"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
8287
8353
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrComboboxContainer, decorators: [{
|
|
8288
8354
|
type: Component,
|
|
8289
8355
|
args: [{
|
|
@@ -9019,9 +9085,6 @@ class ClrCombobox extends WrappedFormControl {
|
|
|
9019
9085
|
// the aria properties on the input element, not on the component.
|
|
9020
9086
|
this.el = this.textbox;
|
|
9021
9087
|
}
|
|
9022
|
-
ngOnDestroy() {
|
|
9023
|
-
this.subscriptions.forEach((sub) => sub.unsubscribe());
|
|
9024
|
-
}
|
|
9025
9088
|
}
|
|
9026
9089
|
ClrCombobox.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrCombobox, deps: [{ token: i0.ViewContainerRef }, { token: i0.Injector }, { token: i1.NgControl, optional: true, self: true }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: OptionSelectionService }, { token: ClrCommonStringsService }, { token: ClrPopoverToggleService }, { token: ClrPopoverPositionService }, { token: IfControlStateService, optional: true }, { token: ComboboxContainerService, optional: true }, { token: PLATFORM_ID }, { token: AriaService }, { token: ComboboxFocusHandler }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
9027
9090
|
ClrCombobox.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrCombobox, selector: "clr-combobox", inputs: { placeholder: "placeholder", multiSelect: ["clrMulti", "multiSelect"] }, outputs: { clrInputChange: "clrInputChange", clrOpenChange: "clrOpenChange", clrSelectionChange: "clrSelectionChange" }, host: { listeners: { "keydown": "onKeyUp($event)" }, properties: { "class.aria-required": "true", "class.clr-combobox": "true", "class.clr-combobox-disabled": "control?.disabled" } }, providers: [
|
|
@@ -9036,7 +9099,7 @@ ClrCombobox.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
|
9036
9099
|
ClrPopoverToggleService,
|
|
9037
9100
|
ClrPopoverEventsService,
|
|
9038
9101
|
ClrPopoverPositionService,
|
|
9039
|
-
], 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:
|
|
9102
|
+
], 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: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: ClrKeyFocusItem, selector: "[clrKeyFocusItem]" }, { type: i5.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"] }] });
|
|
9040
9103
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrCombobox, decorators: [{
|
|
9041
9104
|
type: Component,
|
|
9042
9105
|
args: [{ selector: 'clr-combobox', providers: [
|
|
@@ -9621,13 +9684,13 @@ class DragEventListenerService {
|
|
|
9621
9684
|
};
|
|
9622
9685
|
// Initialize nested listeners' property with a new empty array;
|
|
9623
9686
|
this.nestedListeners = [];
|
|
9624
|
-
//
|
|
9625
|
-
this.nestedListeners.push(this.renderer.listen('document', 'selectstart', (selectEvent) => {
|
|
9626
|
-
selectEvent.preventDefault();
|
|
9627
|
-
selectEvent.stopImmediatePropagation();
|
|
9628
|
-
}));
|
|
9629
|
-
// Listen to mousemove/touchmove events outside of angular zone.
|
|
9687
|
+
// Listen to selectstart/mousemove/touchmove events outside of angular zone.
|
|
9630
9688
|
this.ngZone.runOutsideAngular(() => {
|
|
9689
|
+
// This is needed to disable selection during dragging (especially in EDGE/IE11).
|
|
9690
|
+
this.nestedListeners.push(this.renderer.listen('document', 'selectstart', (selectEvent) => {
|
|
9691
|
+
selectEvent.preventDefault();
|
|
9692
|
+
selectEvent.stopImmediatePropagation();
|
|
9693
|
+
}));
|
|
9631
9694
|
// During the drag start delay, pointer should stay within the boundary.
|
|
9632
9695
|
this.checkDragStartBoundary(moveOnEvent);
|
|
9633
9696
|
this.dragStartDelayTimeout = setTimeout(() => {
|
|
@@ -10520,11 +10583,12 @@ const FOCUS_ON_VIEW_INIT_PROVIDER = {
|
|
|
10520
10583
|
/* This directive is for guiding the document focus to the newly added content when its view is initialized
|
|
10521
10584
|
so that assistive technologies can read its content. */
|
|
10522
10585
|
class ClrFocusOnViewInit {
|
|
10523
|
-
constructor(el, platformId, focusOnViewInit, document, renderer) {
|
|
10586
|
+
constructor(el, platformId, focusOnViewInit, document, renderer, ngZone) {
|
|
10524
10587
|
this.el = el;
|
|
10525
10588
|
this.platformId = platformId;
|
|
10526
10589
|
this.focusOnViewInit = focusOnViewInit;
|
|
10527
10590
|
this.renderer = renderer;
|
|
10591
|
+
this.destroy$ = new Subject();
|
|
10528
10592
|
this.directFocus = true; // true if the element gets focused without need to set tabindex;
|
|
10529
10593
|
this._isEnabled = this.focusOnViewInit;
|
|
10530
10594
|
// Angular compiler doesn't understand the type Document
|
|
@@ -10532,13 +10596,15 @@ class ClrFocusOnViewInit {
|
|
|
10532
10596
|
// even though it understands the injection token DOCUMENT
|
|
10533
10597
|
// https://github.com/angular/angular/issues/20351
|
|
10534
10598
|
this.document = document;
|
|
10535
|
-
|
|
10536
|
-
|
|
10537
|
-
|
|
10538
|
-
|
|
10539
|
-
|
|
10540
|
-
|
|
10541
|
-
|
|
10599
|
+
ngZone.runOutsideAngular(() => fromEvent(el.nativeElement, 'focusout')
|
|
10600
|
+
.pipe(takeUntil(this.destroy$))
|
|
10601
|
+
.subscribe(() => {
|
|
10602
|
+
if (!this.directFocus) {
|
|
10603
|
+
// manually set attributes and styles should be removed
|
|
10604
|
+
this.renderer.removeAttribute(this.el.nativeElement, 'tabindex');
|
|
10605
|
+
this.renderer.setStyle(this.el.nativeElement, 'outline', null);
|
|
10606
|
+
}
|
|
10607
|
+
}));
|
|
10542
10608
|
}
|
|
10543
10609
|
set isEnabled(value) {
|
|
10544
10610
|
if (this.focusOnViewInit && typeof value === 'boolean') {
|
|
@@ -10548,6 +10614,9 @@ class ClrFocusOnViewInit {
|
|
|
10548
10614
|
ngAfterViewInit() {
|
|
10549
10615
|
this.focus();
|
|
10550
10616
|
}
|
|
10617
|
+
ngOnDestroy() {
|
|
10618
|
+
this.destroy$.next();
|
|
10619
|
+
}
|
|
10551
10620
|
focus() {
|
|
10552
10621
|
if (!isPlatformBrowser(this.platformId)) {
|
|
10553
10622
|
return;
|
|
@@ -10568,8 +10637,8 @@ class ClrFocusOnViewInit {
|
|
|
10568
10637
|
}
|
|
10569
10638
|
}
|
|
10570
10639
|
}
|
|
10571
|
-
ClrFocusOnViewInit.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrFocusOnViewInit, deps: [{ token: i0.ElementRef }, { token: PLATFORM_ID }, { token: FOCUS_ON_VIEW_INIT }, { token: DOCUMENT }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
|
|
10572
|
-
ClrFocusOnViewInit.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrFocusOnViewInit, selector: "[clrFocusOnViewInit]", inputs: { isEnabled: ["clrFocusOnViewInit", "isEnabled"] },
|
|
10640
|
+
ClrFocusOnViewInit.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrFocusOnViewInit, deps: [{ token: i0.ElementRef }, { token: PLATFORM_ID }, { token: FOCUS_ON_VIEW_INIT }, { token: DOCUMENT }, { token: i0.Renderer2 }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
|
|
10641
|
+
ClrFocusOnViewInit.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrFocusOnViewInit, selector: "[clrFocusOnViewInit]", inputs: { isEnabled: ["clrFocusOnViewInit", "isEnabled"] }, ngImport: i0 });
|
|
10573
10642
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrFocusOnViewInit, decorators: [{
|
|
10574
10643
|
type: Directive,
|
|
10575
10644
|
args: [{
|
|
@@ -10585,11 +10654,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
10585
10654
|
}] }, { type: undefined, decorators: [{
|
|
10586
10655
|
type: Inject,
|
|
10587
10656
|
args: [DOCUMENT]
|
|
10588
|
-
}] }, { type: i0.Renderer2 }];
|
|
10589
|
-
}, propDecorators: {
|
|
10590
|
-
type: HostListener,
|
|
10591
|
-
args: ['focusout']
|
|
10592
|
-
}], isEnabled: [{
|
|
10657
|
+
}] }, { type: i0.Renderer2 }, { type: i0.NgZone }];
|
|
10658
|
+
}, propDecorators: { isEnabled: [{
|
|
10593
10659
|
type: Input,
|
|
10594
10660
|
args: ['clrFocusOnViewInit']
|
|
10595
10661
|
}] } });
|
|
@@ -11270,11 +11336,12 @@ class DatagridStringFilterImpl {
|
|
|
11270
11336
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
11271
11337
|
*/
|
|
11272
11338
|
class DatagridStringFilter extends DatagridFilterRegistrar {
|
|
11273
|
-
constructor(filters, domAdapter, commonStrings, smartToggleService) {
|
|
11339
|
+
constructor(filters, domAdapter, commonStrings, smartToggleService, ngZone) {
|
|
11274
11340
|
super(filters);
|
|
11275
11341
|
this.domAdapter = domAdapter;
|
|
11276
11342
|
this.commonStrings = commonStrings;
|
|
11277
11343
|
this.smartToggleService = smartToggleService;
|
|
11344
|
+
this.ngZone = ngZone;
|
|
11278
11345
|
this.subs = [];
|
|
11279
11346
|
/**
|
|
11280
11347
|
* Indicates if the filter dropdown is open
|
|
@@ -11282,6 +11349,9 @@ class DatagridStringFilter extends DatagridFilterRegistrar {
|
|
|
11282
11349
|
this.open = false;
|
|
11283
11350
|
this.filterValueChange = new EventEmitter();
|
|
11284
11351
|
}
|
|
11352
|
+
get placeholderValue() {
|
|
11353
|
+
return this.placeholder || this.commonStrings.keys.filterItems;
|
|
11354
|
+
}
|
|
11285
11355
|
/**
|
|
11286
11356
|
* Customizable filter logic based on a search text
|
|
11287
11357
|
*/
|
|
@@ -11303,9 +11373,16 @@ class DatagridStringFilter extends DatagridFilterRegistrar {
|
|
|
11303
11373
|
ngAfterViewInit() {
|
|
11304
11374
|
this.subs.push(this.smartToggleService.openChange.subscribe(openChange => {
|
|
11305
11375
|
this.open = openChange;
|
|
11306
|
-
//
|
|
11307
|
-
|
|
11308
|
-
|
|
11376
|
+
// Note: this is being run outside of the Angular zone because `element.focus()` doesn't require
|
|
11377
|
+
// running change detection.
|
|
11378
|
+
this.ngZone.runOutsideAngular(() => {
|
|
11379
|
+
// The animation frame in used because when this executes, the input isn't displayed.
|
|
11380
|
+
// Note: `element.focus()` causes re-layout and this may lead to frame drop on slower devices.
|
|
11381
|
+
// `setTimeout` is a macrotask and macrotasks are executed within the current rendering frame.
|
|
11382
|
+
// Animation tasks are executed within the next rendering frame.
|
|
11383
|
+
requestAnimationFrame(() => {
|
|
11384
|
+
this.domAdapter.focus(this.input.nativeElement);
|
|
11385
|
+
});
|
|
11309
11386
|
});
|
|
11310
11387
|
}));
|
|
11311
11388
|
}
|
|
@@ -11334,8 +11411,8 @@ class DatagridStringFilter extends DatagridFilterRegistrar {
|
|
|
11334
11411
|
}
|
|
11335
11412
|
}
|
|
11336
11413
|
}
|
|
11337
|
-
DatagridStringFilter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: DatagridStringFilter, deps: [{ token: FiltersProvider }, { token: DomAdapter }, { token: ClrCommonStringsService }, { token: ClrPopoverToggleService }], target: i0.ɵɵFactoryTarget.Component });
|
|
11338
|
-
DatagridStringFilter.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: DatagridStringFilter, selector: "clr-dg-string-filter", inputs: { customStringFilter: ["clrDgStringFilter", "customStringFilter"], value: ["clrFilterValue", "value"] }, outputs: { filterValueChange: "clrFilterValueChange" }, providers: [{ provide: CustomFilter, useExisting: DatagridStringFilter }], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "filterContainer", first: true, predicate: ClrDatagridFilter, descendants: true }], usesInheritance: true, ngImport: i0, template: `
|
|
11414
|
+
DatagridStringFilter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: DatagridStringFilter, deps: [{ token: FiltersProvider }, { token: DomAdapter }, { token: ClrCommonStringsService }, { token: ClrPopoverToggleService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
11415
|
+
DatagridStringFilter.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: DatagridStringFilter, selector: "clr-dg-string-filter", inputs: { placeholder: ["clrFilterPlaceholder", "placeholder"], customStringFilter: ["clrDgStringFilter", "customStringFilter"], value: ["clrFilterValue", "value"] }, outputs: { filterValueChange: "clrFilterValueChange" }, providers: [{ provide: CustomFilter, useExisting: DatagridStringFilter }], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "filterContainer", first: true, predicate: ClrDatagridFilter, descendants: true }], usesInheritance: true, ngImport: i0, template: `
|
|
11339
11416
|
<clr-dg-filter [clrDgFilter]="registered" [(clrDgFilterOpen)]="open">
|
|
11340
11417
|
<input
|
|
11341
11418
|
#input
|
|
@@ -11343,8 +11420,8 @@ DatagridStringFilter.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
11343
11420
|
name="search"
|
|
11344
11421
|
[(ngModel)]="value"
|
|
11345
11422
|
class="clr-input"
|
|
11346
|
-
[attr.aria-label]="
|
|
11347
|
-
[placeholder]="
|
|
11423
|
+
[attr.aria-label]="placeholderValue"
|
|
11424
|
+
[placeholder]="placeholderValue"
|
|
11348
11425
|
/>
|
|
11349
11426
|
</clr-dg-filter>
|
|
11350
11427
|
`, isInline: true, components: [{ type: ClrDatagridFilter, selector: "clr-dg-filter", inputs: ["clrDgFilterOpen", "clrDgFilter"], outputs: ["clrDgFilterOpenChange"] }], directives: [{ type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
|
|
@@ -11361,13 +11438,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
11361
11438
|
name="search"
|
|
11362
11439
|
[(ngModel)]="value"
|
|
11363
11440
|
class="clr-input"
|
|
11364
|
-
[attr.aria-label]="
|
|
11365
|
-
[placeholder]="
|
|
11441
|
+
[attr.aria-label]="placeholderValue"
|
|
11442
|
+
[placeholder]="placeholderValue"
|
|
11366
11443
|
/>
|
|
11367
11444
|
</clr-dg-filter>
|
|
11368
11445
|
`,
|
|
11369
11446
|
}]
|
|
11370
|
-
}], ctorParameters: function () { return [{ type: FiltersProvider }, { type: DomAdapter }, { type: ClrCommonStringsService }, { type: ClrPopoverToggleService }]; }, propDecorators: {
|
|
11447
|
+
}], ctorParameters: function () { return [{ type: FiltersProvider }, { type: DomAdapter }, { type: ClrCommonStringsService }, { type: ClrPopoverToggleService }, { type: i0.NgZone }]; }, propDecorators: { placeholder: [{
|
|
11448
|
+
type: Input,
|
|
11449
|
+
args: ['clrFilterPlaceholder']
|
|
11450
|
+
}], customStringFilter: [{
|
|
11371
11451
|
type: Input,
|
|
11372
11452
|
args: ['clrDgStringFilter']
|
|
11373
11453
|
}], input: [{
|
|
@@ -11508,11 +11588,12 @@ class DatagridNumericFilterImpl {
|
|
|
11508
11588
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
11509
11589
|
*/
|
|
11510
11590
|
class DatagridNumericFilter extends DatagridFilterRegistrar {
|
|
11511
|
-
constructor(filters, domAdapter, commonStrings, popoverToggleService) {
|
|
11591
|
+
constructor(filters, domAdapter, commonStrings, popoverToggleService, ngZone) {
|
|
11512
11592
|
super(filters);
|
|
11513
11593
|
this.domAdapter = domAdapter;
|
|
11514
11594
|
this.commonStrings = commonStrings;
|
|
11515
11595
|
this.popoverToggleService = popoverToggleService;
|
|
11596
|
+
this.ngZone = ngZone;
|
|
11516
11597
|
this.subscriptions = [];
|
|
11517
11598
|
/**
|
|
11518
11599
|
* Indicates if the filter dropdown is open
|
|
@@ -11521,10 +11602,17 @@ class DatagridNumericFilter extends DatagridFilterRegistrar {
|
|
|
11521
11602
|
this.filterValueChange = new EventEmitter();
|
|
11522
11603
|
}
|
|
11523
11604
|
ngOnDestroy() {
|
|
11605
|
+
super.ngOnDestroy();
|
|
11524
11606
|
this.subscriptions.forEach(sub => {
|
|
11525
11607
|
sub.unsubscribe();
|
|
11526
11608
|
});
|
|
11527
11609
|
}
|
|
11610
|
+
get maxPlaceholderValue() {
|
|
11611
|
+
return this.maxPlaceholder || this.commonStrings.keys.maxValue;
|
|
11612
|
+
}
|
|
11613
|
+
get minPlaceholderValue() {
|
|
11614
|
+
return this.minPlaceholder || this.commonStrings.keys.minValue;
|
|
11615
|
+
}
|
|
11528
11616
|
/**
|
|
11529
11617
|
* Customizable filter logic based on high and low values
|
|
11530
11618
|
*/
|
|
@@ -11546,9 +11634,16 @@ class DatagridNumericFilter extends DatagridFilterRegistrar {
|
|
|
11546
11634
|
ngAfterViewInit() {
|
|
11547
11635
|
this.subscriptions.push(this.popoverToggleService.openChange.subscribe(openChange => {
|
|
11548
11636
|
this.open = openChange;
|
|
11549
|
-
//
|
|
11550
|
-
|
|
11551
|
-
|
|
11637
|
+
// Note: this is being run outside of the Angular zone because `element.focus()` doesn't require
|
|
11638
|
+
// running change detection.
|
|
11639
|
+
this.ngZone.runOutsideAngular(() => {
|
|
11640
|
+
// The animation frame in used because when this executes, the input isn't displayed.
|
|
11641
|
+
// Note: `element.focus()` causes re-layout and this may lead to frame drop on slower devices.
|
|
11642
|
+
// `setTimeout` is a macrotask and macrotasks are executed within the current rendering frame.
|
|
11643
|
+
// Animation tasks are executed within the next rendering frame.
|
|
11644
|
+
requestAnimationFrame(() => {
|
|
11645
|
+
this.domAdapter.focus(this.input.nativeElement);
|
|
11646
|
+
});
|
|
11552
11647
|
});
|
|
11553
11648
|
}));
|
|
11554
11649
|
}
|
|
@@ -11619,8 +11714,8 @@ class DatagridNumericFilter extends DatagridFilterRegistrar {
|
|
|
11619
11714
|
}
|
|
11620
11715
|
}
|
|
11621
11716
|
}
|
|
11622
|
-
DatagridNumericFilter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: DatagridNumericFilter, deps: [{ token: FiltersProvider }, { token: DomAdapter }, { token: ClrCommonStringsService }, { token: ClrPopoverToggleService }], target: i0.ɵɵFactoryTarget.Component });
|
|
11623
|
-
DatagridNumericFilter.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: DatagridNumericFilter, selector: "clr-dg-numeric-filter", inputs: { customNumericFilter: ["clrDgNumericFilter", "customNumericFilter"], value: ["clrFilterValue", "value"] }, outputs: { filterValueChange: "clrFilterValueChange" }, providers: [{ provide: CustomFilter, useExisting: DatagridNumericFilter }], viewQueries: [{ propertyName: "input", first: true, predicate: ["input_low"], descendants: true }, { propertyName: "filterContainer", first: true, predicate: ClrDatagridFilter, descendants: true }], usesInheritance: true, ngImport: i0, template: `
|
|
11717
|
+
DatagridNumericFilter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: DatagridNumericFilter, deps: [{ token: FiltersProvider }, { token: DomAdapter }, { token: ClrCommonStringsService }, { token: ClrPopoverToggleService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
11718
|
+
DatagridNumericFilter.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: DatagridNumericFilter, selector: "clr-dg-numeric-filter", inputs: { maxPlaceholder: ["clrFilterMaxPlaceholder", "maxPlaceholder"], minPlaceholder: ["clrFilterMinPlaceholder", "minPlaceholder"], customNumericFilter: ["clrDgNumericFilter", "customNumericFilter"], value: ["clrFilterValue", "value"] }, outputs: { filterValueChange: "clrFilterValueChange" }, providers: [{ provide: CustomFilter, useExisting: DatagridNumericFilter }], viewQueries: [{ propertyName: "input", first: true, predicate: ["input_low"], descendants: true }, { propertyName: "filterContainer", first: true, predicate: ClrDatagridFilter, descendants: true }], usesInheritance: true, ngImport: i0, template: `
|
|
11624
11719
|
<clr-dg-filter [clrDgFilter]="registered" [(clrDgFilterOpen)]="open">
|
|
11625
11720
|
<input
|
|
11626
11721
|
class="datagrid-numeric-filter-input"
|
|
@@ -11628,8 +11723,8 @@ DatagridNumericFilter.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
11628
11723
|
type="number"
|
|
11629
11724
|
name="low"
|
|
11630
11725
|
[(ngModel)]="low"
|
|
11631
|
-
[placeholder]="
|
|
11632
|
-
[attr.aria-label]="
|
|
11726
|
+
[placeholder]="minPlaceholderValue"
|
|
11727
|
+
[attr.aria-label]="minPlaceholderValue"
|
|
11633
11728
|
/>
|
|
11634
11729
|
<span class="datagrid-filter-input-spacer"></span>
|
|
11635
11730
|
<input
|
|
@@ -11638,8 +11733,8 @@ DatagridNumericFilter.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
11638
11733
|
type="number"
|
|
11639
11734
|
name="high"
|
|
11640
11735
|
[(ngModel)]="high"
|
|
11641
|
-
[placeholder]="
|
|
11642
|
-
[attr.aria-label]="
|
|
11736
|
+
[placeholder]="maxPlaceholderValue"
|
|
11737
|
+
[attr.aria-label]="maxPlaceholderValue"
|
|
11643
11738
|
/>
|
|
11644
11739
|
</clr-dg-filter>
|
|
11645
11740
|
`, isInline: true, components: [{ type: ClrDatagridFilter, selector: "clr-dg-filter", inputs: ["clrDgFilterOpen", "clrDgFilter"], outputs: ["clrDgFilterOpenChange"] }], directives: [{ type: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { 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"] }] });
|
|
@@ -11656,8 +11751,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
11656
11751
|
type="number"
|
|
11657
11752
|
name="low"
|
|
11658
11753
|
[(ngModel)]="low"
|
|
11659
|
-
[placeholder]="
|
|
11660
|
-
[attr.aria-label]="
|
|
11754
|
+
[placeholder]="minPlaceholderValue"
|
|
11755
|
+
[attr.aria-label]="minPlaceholderValue"
|
|
11661
11756
|
/>
|
|
11662
11757
|
<span class="datagrid-filter-input-spacer"></span>
|
|
11663
11758
|
<input
|
|
@@ -11666,13 +11761,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
11666
11761
|
type="number"
|
|
11667
11762
|
name="high"
|
|
11668
11763
|
[(ngModel)]="high"
|
|
11669
|
-
[placeholder]="
|
|
11670
|
-
[attr.aria-label]="
|
|
11764
|
+
[placeholder]="maxPlaceholderValue"
|
|
11765
|
+
[attr.aria-label]="maxPlaceholderValue"
|
|
11671
11766
|
/>
|
|
11672
11767
|
</clr-dg-filter>
|
|
11673
11768
|
`,
|
|
11674
11769
|
}]
|
|
11675
|
-
}], ctorParameters: function () { return [{ type: FiltersProvider }, { type: DomAdapter }, { type: ClrCommonStringsService }, { type: ClrPopoverToggleService }]; }, propDecorators: {
|
|
11770
|
+
}], ctorParameters: function () { return [{ type: FiltersProvider }, { type: DomAdapter }, { type: ClrCommonStringsService }, { type: ClrPopoverToggleService }, { type: i0.NgZone }]; }, propDecorators: { maxPlaceholder: [{
|
|
11771
|
+
type: Input,
|
|
11772
|
+
args: ['clrFilterMaxPlaceholder']
|
|
11773
|
+
}], minPlaceholder: [{
|
|
11774
|
+
type: Input,
|
|
11775
|
+
args: ['clrFilterMinPlaceholder']
|
|
11776
|
+
}], customNumericFilter: [{
|
|
11676
11777
|
type: Input,
|
|
11677
11778
|
args: ['clrDgNumericFilter']
|
|
11678
11779
|
}], input: [{
|
|
@@ -12477,6 +12578,7 @@ class ClrDatagridColumn extends DatagridFilterRegistrar {
|
|
|
12477
12578
|
this.subscriptions.push(this.listenForDetailPaneChanges());
|
|
12478
12579
|
}
|
|
12479
12580
|
ngOnDestroy() {
|
|
12581
|
+
super.ngOnDestroy();
|
|
12480
12582
|
this.subscriptions.forEach(s => s.unsubscribe());
|
|
12481
12583
|
}
|
|
12482
12584
|
listenForDetailPaneChanges() {
|
|
@@ -12662,6 +12764,15 @@ class ClrDatagridColumn extends DatagridFilterRegistrar {
|
|
|
12662
12764
|
this.customFilter = true;
|
|
12663
12765
|
}
|
|
12664
12766
|
}
|
|
12767
|
+
get filterStringPlaceholderValue() {
|
|
12768
|
+
return this.filterStringPlaceholder || this.commonStrings.keys.filterItems;
|
|
12769
|
+
}
|
|
12770
|
+
get filterNumberMaxPlaceholderValue() {
|
|
12771
|
+
return this.filterNumberMaxPlaceholder || this.commonStrings.keys.maxValue;
|
|
12772
|
+
}
|
|
12773
|
+
get filterNumberMinPlaceholderValue() {
|
|
12774
|
+
return this.filterNumberMinPlaceholder || this.commonStrings.keys.minValue;
|
|
12775
|
+
}
|
|
12665
12776
|
set updateFilterValue(newValue) {
|
|
12666
12777
|
if (this.filter) {
|
|
12667
12778
|
if (this.filter instanceof DatagridStringFilterImpl) {
|
|
@@ -12713,7 +12824,7 @@ class ClrDatagridColumn extends DatagridFilterRegistrar {
|
|
|
12713
12824
|
}
|
|
12714
12825
|
}
|
|
12715
12826
|
ClrDatagridColumn.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDatagridColumn, deps: [{ token: Sort }, { token: FiltersProvider }, { token: i0.ViewContainerRef }, { token: DetailService }, { token: i0.ChangeDetectorRef }, { token: ClrCommonStringsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
12716
|
-
ClrDatagridColumn.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrDatagridColumn, selector: "clr-dg-column", inputs: { colType: ["clrDgColType", "colType"], field: ["clrDgField", "field"], sortBy: ["clrDgSortBy", "sortBy"], sorted: ["clrDgSorted", "sorted"], sortOrder: ["clrDgSortOrder", "sortOrder"], updateFilterValue: ["clrFilterValue", "updateFilterValue"] }, outputs: { sortedChange: "clrDgSortedChange", sortOrderChange: "clrDgSortOrderChange", filterValueChange: "clrFilterValueChange" }, host: { attributes: { "role": "columnheader" }, properties: { "class.datagrid-column": "true", "attr.aria-sort": "ariaSort" } }, providers: [ClrPopoverPositionService, ClrPopoverEventsService, ClrPopoverToggleService], queries: [{ propertyName: "projectedFilter", first: true, predicate: CustomFilter, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
|
|
12827
|
+
ClrDatagridColumn.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrDatagridColumn, selector: "clr-dg-column", inputs: { colType: ["clrDgColType", "colType"], field: ["clrDgField", "field"], sortBy: ["clrDgSortBy", "sortBy"], sorted: ["clrDgSorted", "sorted"], sortOrder: ["clrDgSortOrder", "sortOrder"], filterStringPlaceholder: ["clrFilterStringPlaceholder", "filterStringPlaceholder"], filterNumberMaxPlaceholder: ["clrFilterNumberMaxPlaceholder", "filterNumberMaxPlaceholder"], filterNumberMinPlaceholder: ["clrFilterNumberMinPlaceholder", "filterNumberMinPlaceholder"], updateFilterValue: ["clrFilterValue", "updateFilterValue"] }, outputs: { sortedChange: "clrDgSortedChange", sortOrderChange: "clrDgSortOrderChange", filterValueChange: "clrFilterValueChange" }, host: { attributes: { "role": "columnheader" }, properties: { "class.datagrid-column": "true", "attr.aria-sort": "ariaSort" } }, providers: [ClrPopoverPositionService, ClrPopoverEventsService, ClrPopoverToggleService], queries: [{ propertyName: "projectedFilter", first: true, predicate: CustomFilter, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
|
|
12717
12828
|
<div class="datagrid-column-flex">
|
|
12718
12829
|
<button class="datagrid-column-title" *ngIf="sortable" (click)="sort()" type="button">
|
|
12719
12830
|
<ng-container *ngTemplateOutlet="columnTitle"></ng-container>
|
|
@@ -12730,12 +12841,15 @@ ClrDatagridColumn.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
12730
12841
|
|
|
12731
12842
|
<clr-dg-string-filter
|
|
12732
12843
|
*ngIf="field && !customFilter && colType == 'string'"
|
|
12844
|
+
[clrFilterPlaceholder]="filterStringPlaceholderValue"
|
|
12733
12845
|
[clrDgStringFilter]="registered"
|
|
12734
12846
|
[(clrFilterValue)]="filterValue"
|
|
12735
12847
|
></clr-dg-string-filter>
|
|
12736
12848
|
|
|
12737
12849
|
<clr-dg-numeric-filter
|
|
12738
12850
|
*ngIf="field && !customFilter && colType == 'number'"
|
|
12851
|
+
[clrFilterMaxPlaceholder]="filterMaxPlaceholderValue"
|
|
12852
|
+
[clrFilterMinPlaceholder]="filterMinPlaceholderValue"
|
|
12739
12853
|
[clrDgNumericFilter]="registered"
|
|
12740
12854
|
[(clrFilterValue)]="filterValue"
|
|
12741
12855
|
></clr-dg-numeric-filter>
|
|
@@ -12750,7 +12864,7 @@ ClrDatagridColumn.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
12750
12864
|
|
|
12751
12865
|
<clr-dg-column-separator *ngIf="showSeparator"></clr-dg-column-separator>
|
|
12752
12866
|
</div>
|
|
12753
|
-
`, 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:
|
|
12867
|
+
`, isInline: true, components: [{ type: DatagridStringFilter, selector: "clr-dg-string-filter", inputs: ["clrFilterPlaceholder", "clrDgStringFilter", "clrFilterValue"], outputs: ["clrFilterValueChange"] }, { type: DatagridNumericFilter, selector: "clr-dg-numeric-filter", inputs: ["clrFilterMaxPlaceholder", "clrFilterMinPlaceholder", "clrDgNumericFilter", "clrFilterValue"], outputs: ["clrFilterValueChange"] }, { type: ClrDatagridColumnSeparator, selector: "clr-dg-column-separator" }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: CdsIconCustomTag, selector: "cds-icon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
12754
12868
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDatagridColumn, decorators: [{
|
|
12755
12869
|
type: Component,
|
|
12756
12870
|
args: [{
|
|
@@ -12772,12 +12886,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
12772
12886
|
|
|
12773
12887
|
<clr-dg-string-filter
|
|
12774
12888
|
*ngIf="field && !customFilter && colType == 'string'"
|
|
12889
|
+
[clrFilterPlaceholder]="filterStringPlaceholderValue"
|
|
12775
12890
|
[clrDgStringFilter]="registered"
|
|
12776
12891
|
[(clrFilterValue)]="filterValue"
|
|
12777
12892
|
></clr-dg-string-filter>
|
|
12778
12893
|
|
|
12779
12894
|
<clr-dg-numeric-filter
|
|
12780
12895
|
*ngIf="field && !customFilter && colType == 'number'"
|
|
12896
|
+
[clrFilterMaxPlaceholder]="filterMaxPlaceholderValue"
|
|
12897
|
+
[clrFilterMinPlaceholder]="filterMinPlaceholderValue"
|
|
12781
12898
|
[clrDgNumericFilter]="registered"
|
|
12782
12899
|
[(clrFilterValue)]="filterValue"
|
|
12783
12900
|
></clr-dg-numeric-filter>
|
|
@@ -12825,6 +12942,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
12825
12942
|
}], projectedFilter: [{
|
|
12826
12943
|
type: ContentChild,
|
|
12827
12944
|
args: [CustomFilter]
|
|
12945
|
+
}], filterStringPlaceholder: [{
|
|
12946
|
+
type: Input,
|
|
12947
|
+
args: ['clrFilterStringPlaceholder']
|
|
12948
|
+
}], filterNumberMaxPlaceholder: [{
|
|
12949
|
+
type: Input,
|
|
12950
|
+
args: ['clrFilterNumberMaxPlaceholder']
|
|
12951
|
+
}], filterNumberMinPlaceholder: [{
|
|
12952
|
+
type: Input,
|
|
12953
|
+
args: ['clrFilterNumberMinPlaceholder']
|
|
12828
12954
|
}], updateFilterValue: [{
|
|
12829
12955
|
type: Input,
|
|
12830
12956
|
args: ['clrFilterValue']
|
|
@@ -13081,7 +13207,7 @@ ClrDatagridPlaceholder.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
13081
13207
|
<div class="datagrid-placeholder-image" *ngIf="emptyDatagrid"></div>
|
|
13082
13208
|
<span role="gridcell"><ng-content *ngIf="emptyDatagrid"></ng-content></span>
|
|
13083
13209
|
</div>
|
|
13084
|
-
`, isInline: true, directives: [{ type:
|
|
13210
|
+
`, isInline: true, directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
13085
13211
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDatagridPlaceholder, decorators: [{
|
|
13086
13212
|
type: Component,
|
|
13087
13213
|
args: [{
|
|
@@ -13281,7 +13407,7 @@ ClrSignpost.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
|
13281
13407
|
</ng-container>
|
|
13282
13408
|
|
|
13283
13409
|
<ng-content></ng-content>
|
|
13284
|
-
`, isInline: true, directives: [{ type:
|
|
13410
|
+
`, isInline: true, directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrSignpostTrigger, selector: "[clrSignpostTrigger]" }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
13285
13411
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrSignpost, decorators: [{
|
|
13286
13412
|
type: Component,
|
|
13287
13413
|
args: [{
|
|
@@ -14052,7 +14178,7 @@ ClrDatagridRow.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
|
|
|
14052
14178
|
DatagridIfExpandService,
|
|
14053
14179
|
{ provide: IfExpandService, useExisting: DatagridIfExpandService },
|
|
14054
14180
|
{ provide: LoadingListener, useExisting: DatagridIfExpandService },
|
|
14055
|
-
], 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]=\"clrDgRowAriaLabel\"\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]=\"clrDgRowAriaLabel\"\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.isRowOpen(item) ? 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:
|
|
14181
|
+
], 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]=\"clrDgRowAriaLabel\"\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]=\"clrDgRowAriaLabel\"\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.isRowOpen(item) ? 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: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrLabel, selector: "label", inputs: ["for"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i5.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" }] });
|
|
14056
14182
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDatagridRow, decorators: [{
|
|
14057
14183
|
type: Component,
|
|
14058
14184
|
args: [{ selector: 'clr-dg-row', host: {
|
|
@@ -14461,7 +14587,7 @@ ClrDatagrid.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
|
14461
14587
|
TableSizeService,
|
|
14462
14588
|
ColumnsService,
|
|
14463
14589
|
DisplayModeService,
|
|
14464
|
-
], 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:
|
|
14590
|
+
], 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: i5.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"] }] });
|
|
14465
14591
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDatagrid, decorators: [{
|
|
14466
14592
|
type: Component,
|
|
14467
14593
|
args: [{ selector: 'clr-datagrid', providers: [
|
|
@@ -14909,7 +15035,9 @@ ClrDatagridColumnToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
|
|
|
14909
15035
|
>
|
|
14910
15036
|
<div class="switch-header">
|
|
14911
15037
|
<div class="clr-sr-only" tabindex="-1" #allSelected>{{ commonStrings.keys.allColumnsSelected }}</div>
|
|
14912
|
-
<ng-container *ngIf="!customToggleTitle">
|
|
15038
|
+
<ng-container *ngIf="!customToggleTitle">
|
|
15039
|
+
<h2>{{ commonStrings.keys.showColumns }}</h2>
|
|
15040
|
+
</ng-container>
|
|
14913
15041
|
<ng-content select="clr-dg-column-toggle-title"></ng-content>
|
|
14914
15042
|
<button
|
|
14915
15043
|
class="btn btn-sm btn-link toggle-switch-close-button"
|
|
@@ -14944,7 +15072,7 @@ ClrDatagridColumnToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
|
|
|
14944
15072
|
</clr-dg-column-toggle-button>
|
|
14945
15073
|
</div>
|
|
14946
15074
|
</div>
|
|
14947
|
-
`, 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:
|
|
15075
|
+
`, 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: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrPopoverCloseButton, selector: "[clrPopoverCloseButton]", outputs: ["clrPopoverOnCloseChange"] }, { type: i5.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: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
|
|
14948
15076
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDatagridColumnToggle, decorators: [{
|
|
14949
15077
|
type: Component,
|
|
14950
15078
|
args: [{
|
|
@@ -14973,7 +15101,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
14973
15101
|
>
|
|
14974
15102
|
<div class="switch-header">
|
|
14975
15103
|
<div class="clr-sr-only" tabindex="-1" #allSelected>{{ commonStrings.keys.allColumnsSelected }}</div>
|
|
14976
|
-
<ng-container *ngIf="!customToggleTitle">
|
|
15104
|
+
<ng-container *ngIf="!customToggleTitle">
|
|
15105
|
+
<h2>{{ commonStrings.keys.showColumns }}</h2>
|
|
15106
|
+
</ng-container>
|
|
14977
15107
|
<ng-content select="clr-dg-column-toggle-title"></ng-content>
|
|
14978
15108
|
<button
|
|
14979
15109
|
class="btn btn-sm btn-link toggle-switch-close-button"
|
|
@@ -15151,7 +15281,7 @@ ClrDatagridDetail.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
15151
15281
|
<ng-content></ng-content>
|
|
15152
15282
|
<div class="clr-sr-only">{{ commonStrings.keys.detailPaneEnd }}</div>
|
|
15153
15283
|
</div>
|
|
15154
|
-
`, isInline: true, directives: [{ type:
|
|
15284
|
+
`, isInline: true, directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: FocusTrapDirective, selector: "[clrFocusTrap]", inputs: ["clrFocusTrap"] }] });
|
|
15155
15285
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDatagridDetail, decorators: [{
|
|
15156
15286
|
type: Component,
|
|
15157
15287
|
args: [{
|
|
@@ -15606,6 +15736,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
15606
15736
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
15607
15737
|
*/
|
|
15608
15738
|
|
|
15739
|
+
/*
|
|
15740
|
+
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
15741
|
+
* This software is released under MIT license.
|
|
15742
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
15743
|
+
*/
|
|
15744
|
+
|
|
15609
15745
|
/*
|
|
15610
15746
|
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
15611
15747
|
* This software is released under MIT license.
|
|
@@ -15643,7 +15779,7 @@ ClrDatagridFooter.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
15643
15779
|
</div>
|
|
15644
15780
|
</ng-container>
|
|
15645
15781
|
<ng-content select="clr-dg-pagination"></ng-content>
|
|
15646
|
-
`, isInline: true, components: [{ type: ClrCheckboxWrapper, selector: "clr-checkbox-wrapper,clr-toggle-wrapper" }, { type: ClrDatagridColumnToggle, selector: "clr-dg-column-toggle" }], directives: [{ type:
|
|
15782
|
+
`, isInline: true, components: [{ type: ClrCheckboxWrapper, selector: "clr-checkbox-wrapper,clr-toggle-wrapper" }, { type: ClrDatagridColumnToggle, selector: "clr-dg-column-toggle" }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrCheckbox, selector: "[clrCheckbox],[clrToggle]" }, { type: ClrLabel, selector: "label", inputs: ["for"] }] });
|
|
15647
15783
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDatagridFooter, decorators: [{
|
|
15648
15784
|
type: Component,
|
|
15649
15785
|
args: [{
|
|
@@ -15815,7 +15951,7 @@ ClrDatagridPageSize.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
|
|
|
15815
15951
|
<option *ngFor="let option of pageSizeOptions" [ngValue]="option">{{ option }}</option>
|
|
15816
15952
|
</select>
|
|
15817
15953
|
</div>
|
|
15818
|
-
`, 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:
|
|
15954
|
+
`, 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: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }] });
|
|
15819
15955
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDatagridPageSize, decorators: [{
|
|
15820
15956
|
type: Component,
|
|
15821
15957
|
args: [{
|
|
@@ -16071,7 +16207,7 @@ ClrDatagridPagination.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
16071
16207
|
</button>
|
|
16072
16208
|
</div>
|
|
16073
16209
|
</ng-container>
|
|
16074
|
-
`, isInline: true, directives: [{ type:
|
|
16210
|
+
`, isInline: true, directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
16075
16211
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDatagridPagination, decorators: [{
|
|
16076
16212
|
type: Component,
|
|
16077
16213
|
args: [{
|
|
@@ -16615,7 +16751,7 @@ const domAdapterFactory = (platformId) => {
|
|
|
16615
16751
|
// Fixes build error
|
|
16616
16752
|
// @dynamic (https://github.com/angular/angular/issues/19698#issuecomment-338340211)
|
|
16617
16753
|
class DatagridMainRenderer {
|
|
16618
|
-
constructor(organizer, items, page, domAdapter, el, renderer, detailService, tableSizeService, columnsService) {
|
|
16754
|
+
constructor(organizer, items, page, domAdapter, el, renderer, detailService, tableSizeService, columnsService, ngZone) {
|
|
16619
16755
|
this.organizer = organizer;
|
|
16620
16756
|
this.items = items;
|
|
16621
16757
|
this.page = page;
|
|
@@ -16625,6 +16761,7 @@ class DatagridMainRenderer {
|
|
|
16625
16761
|
this.detailService = detailService;
|
|
16626
16762
|
this.tableSizeService = tableSizeService;
|
|
16627
16763
|
this.columnsService = columnsService;
|
|
16764
|
+
this.ngZone = ngZone;
|
|
16628
16765
|
this._heightSet = false;
|
|
16629
16766
|
this.subscriptions = [];
|
|
16630
16767
|
/**
|
|
@@ -16664,8 +16801,10 @@ class DatagridMainRenderer {
|
|
|
16664
16801
|
this.stabilizeColumns();
|
|
16665
16802
|
}
|
|
16666
16803
|
if (this.shouldComputeHeight()) {
|
|
16667
|
-
|
|
16668
|
-
|
|
16804
|
+
this.ngZone.runOutsideAngular(() => {
|
|
16805
|
+
setTimeout(() => {
|
|
16806
|
+
this.computeDatagridHeight();
|
|
16807
|
+
});
|
|
16669
16808
|
});
|
|
16670
16809
|
}
|
|
16671
16810
|
}
|
|
@@ -16760,7 +16899,7 @@ class DatagridMainRenderer {
|
|
|
16760
16899
|
}
|
|
16761
16900
|
}
|
|
16762
16901
|
}
|
|
16763
|
-
DatagridMainRenderer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: DatagridMainRenderer, deps: [{ token: DatagridRenderOrganizer }, { token: Items }, { token: Page }, { token: DomAdapter }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: DetailService }, { token: TableSizeService }, { token: ColumnsService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
16902
|
+
DatagridMainRenderer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: DatagridMainRenderer, deps: [{ token: DatagridRenderOrganizer }, { token: Items }, { token: Page }, { token: DomAdapter }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: DetailService }, { token: TableSizeService }, { token: ColumnsService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
|
|
16764
16903
|
DatagridMainRenderer.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: DatagridMainRenderer, selector: "clr-datagrid", providers: [{ provide: DomAdapter, useFactory: domAdapterFactory, deps: [PLATFORM_ID] }], queries: [{ propertyName: "headers", predicate: DatagridHeaderRenderer }, { propertyName: "rows", predicate: DatagridRowRenderer, descendants: true }], ngImport: i0 });
|
|
16765
16904
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: DatagridMainRenderer, decorators: [{
|
|
16766
16905
|
type: Directive,
|
|
@@ -16768,7 +16907,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
16768
16907
|
selector: 'clr-datagrid',
|
|
16769
16908
|
providers: [{ provide: DomAdapter, useFactory: domAdapterFactory, deps: [PLATFORM_ID] }],
|
|
16770
16909
|
}]
|
|
16771
|
-
}], ctorParameters: function () { return [{ type: DatagridRenderOrganizer }, { type: Items }, { type: Page }, { type: DomAdapter }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: DetailService }, { type: TableSizeService }, { type: ColumnsService }]; }, propDecorators: { headers: [{
|
|
16910
|
+
}], ctorParameters: function () { return [{ type: DatagridRenderOrganizer }, { type: Items }, { type: Page }, { type: DomAdapter }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: DetailService }, { type: TableSizeService }, { type: ColumnsService }, { type: i0.NgZone }]; }, propDecorators: { headers: [{
|
|
16772
16911
|
type: ContentChildren,
|
|
16773
16912
|
args: [DatagridHeaderRenderer]
|
|
16774
16913
|
}], rows: [{
|
|
@@ -17146,7 +17285,7 @@ ClrStackBlock.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
|
|
|
17146
17285
|
<ng-content select="clr-stack-block"></ng-content>
|
|
17147
17286
|
</div>
|
|
17148
17287
|
</clr-expandable-animation>
|
|
17149
|
-
`, isInline: true, styles: [":host{display:block}\n"], components: [{ type: ClrExpandableAnimation, selector: "clr-expandable-animation", inputs: ["clrExpandTrigger"] }], directives: [{ type:
|
|
17288
|
+
`, isInline: true, styles: [":host{display:block}\n"], components: [{ type: ClrExpandableAnimation, selector: "clr-expandable-animation", inputs: ["clrExpandTrigger"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
17150
17289
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrStackBlock, decorators: [{
|
|
17151
17290
|
type: Component,
|
|
17152
17291
|
args: [{
|
|
@@ -17336,7 +17475,7 @@ ClrStackHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
|
|
|
17336
17475
|
<!-- End of undocumented experimental feature. -->
|
|
17337
17476
|
</span>
|
|
17338
17477
|
</h4>
|
|
17339
|
-
`, isInline: true, styles: [":host{display:block}\n"], directives: [{ type:
|
|
17478
|
+
`, isInline: true, styles: [":host{display:block}\n"], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
17340
17479
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrStackHeader, decorators: [{
|
|
17341
17480
|
type: Component,
|
|
17342
17481
|
args: [{
|
|
@@ -17382,14 +17521,22 @@ class StackControl {
|
|
|
17382
17521
|
this.modelChange = new EventEmitter(false);
|
|
17383
17522
|
// Make the ClrStackView editable, since it contains a StackControl
|
|
17384
17523
|
this.stackView.editable = true;
|
|
17385
|
-
this.stackView.editingChange.subscribe((editing) => {
|
|
17524
|
+
this.subscription = this.stackView.editingChange.subscribe((editing) => {
|
|
17386
17525
|
// Edit mode was closed
|
|
17387
17526
|
if (!editing) {
|
|
17388
17527
|
this.modelChange.emit(this.model);
|
|
17389
17528
|
}
|
|
17390
17529
|
});
|
|
17391
17530
|
}
|
|
17531
|
+
ngOnDestroy() {
|
|
17532
|
+
this.subscription.unsubscribe();
|
|
17533
|
+
}
|
|
17392
17534
|
}
|
|
17535
|
+
StackControl.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: StackControl, deps: [{ token: ClrStackView }], target: i0.ɵɵFactoryTarget.Directive });
|
|
17536
|
+
StackControl.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: StackControl, ngImport: i0 });
|
|
17537
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: StackControl, decorators: [{
|
|
17538
|
+
type: Directive
|
|
17539
|
+
}], ctorParameters: function () { return [{ type: ClrStackView }]; } });
|
|
17393
17540
|
|
|
17394
17541
|
/*
|
|
17395
17542
|
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
@@ -17407,7 +17554,7 @@ ClrStackInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
|
17407
17554
|
ClrStackInput.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrStackInput, selector: "clr-stack-input", inputs: { model: ["clrModel", "model"], type: "type" }, outputs: { modelChange: "clrModelChange" }, usesInheritance: true, ngImport: i0, template: `
|
|
17408
17555
|
<span *ngIf="!stackView.editing">{{ model }}</span>
|
|
17409
17556
|
<input [type]="type" *ngIf="stackView.editing" [(ngModel)]="model" />
|
|
17410
|
-
`, isInline: true, directives: [{ type:
|
|
17557
|
+
`, isInline: true, directives: [{ type: i5.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"] }] });
|
|
17411
17558
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrStackInput, decorators: [{
|
|
17412
17559
|
type: Component,
|
|
17413
17560
|
args: [{
|
|
@@ -17440,7 +17587,7 @@ ClrStackSelect.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
|
|
|
17440
17587
|
<ng-content></ng-content>
|
|
17441
17588
|
</select>
|
|
17442
17589
|
</div>
|
|
17443
|
-
`, isInline: true, directives: [{ type:
|
|
17590
|
+
`, isInline: true, directives: [{ type: i5.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"] }] });
|
|
17444
17591
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrStackSelect, decorators: [{
|
|
17445
17592
|
type: Component,
|
|
17446
17593
|
args: [{
|
|
@@ -17917,7 +18064,7 @@ RecursiveChildren.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
17917
18064
|
<ng-container *ngTemplateOutlet="featuresService.recursion.template; context: getContext(child)"></ng-container>
|
|
17918
18065
|
</ng-container>
|
|
17919
18066
|
</ng-container>
|
|
17920
|
-
`, isInline: true, directives: [{ type:
|
|
18067
|
+
`, isInline: true, directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
|
|
17921
18068
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: RecursiveChildren, decorators: [{
|
|
17922
18069
|
type: Component,
|
|
17923
18070
|
args: [{
|
|
@@ -18061,9 +18208,11 @@ class ClrTreeNode {
|
|
|
18061
18208
|
}
|
|
18062
18209
|
}
|
|
18063
18210
|
focusTreeNode() {
|
|
18064
|
-
|
|
18211
|
+
const containerEl = this.contentContainer.nativeElement;
|
|
18212
|
+
if (isPlatformBrowser(this.platformId) && document.activeElement !== containerEl) {
|
|
18065
18213
|
this.setTabIndex(0);
|
|
18066
|
-
|
|
18214
|
+
containerEl.focus();
|
|
18215
|
+
containerEl.scrollIntoView({ block: 'nearest', inline: 'nearest' });
|
|
18067
18216
|
}
|
|
18068
18217
|
}
|
|
18069
18218
|
broadcastFocusOnContainer() {
|
|
@@ -18090,19 +18239,21 @@ class ClrTreeNode {
|
|
|
18090
18239
|
this.collapseOrFocusParent();
|
|
18091
18240
|
break;
|
|
18092
18241
|
case KeyCodes.Home:
|
|
18242
|
+
event.preventDefault();
|
|
18093
18243
|
this.focusManager.focusFirstVisibleNode();
|
|
18094
18244
|
break;
|
|
18095
18245
|
case KeyCodes.End:
|
|
18246
|
+
event.preventDefault();
|
|
18096
18247
|
this.focusManager.focusLastVisibleNode();
|
|
18097
18248
|
break;
|
|
18098
18249
|
case KeyCodes.Enter:
|
|
18099
|
-
this.
|
|
18250
|
+
this.toggleExpandOrTriggerDefault();
|
|
18100
18251
|
break;
|
|
18101
18252
|
case KeyCodes.Space:
|
|
18102
18253
|
case KeyCodes.Spacebar:
|
|
18103
18254
|
// to prevent scrolling on space key in this specific case
|
|
18104
18255
|
event.preventDefault();
|
|
18105
|
-
this.
|
|
18256
|
+
this.toggleExpandOrTriggerDefault();
|
|
18106
18257
|
break;
|
|
18107
18258
|
default:
|
|
18108
18259
|
break;
|
|
@@ -18111,9 +18262,9 @@ class ClrTreeNode {
|
|
|
18111
18262
|
get isParent() {
|
|
18112
18263
|
return this._model.children && this._model.children.length > 0;
|
|
18113
18264
|
}
|
|
18114
|
-
|
|
18265
|
+
toggleExpandOrTriggerDefault() {
|
|
18115
18266
|
if (this.isExpandable() && !this.isSelectable()) {
|
|
18116
|
-
this.
|
|
18267
|
+
this.expandService.expanded = !this.expanded;
|
|
18117
18268
|
}
|
|
18118
18269
|
else {
|
|
18119
18270
|
this.triggerDefaultAction();
|
|
@@ -18159,7 +18310,7 @@ ClrTreeNode.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
|
18159
18310
|
TREE_FEATURES_PROVIDER,
|
|
18160
18311
|
IfExpandService,
|
|
18161
18312
|
{ provide: LoadingListener, useExisting: IfExpandService },
|
|
18162
|
-
], 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:
|
|
18313
|
+
], 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: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: CdsIconCustomTag, selector: "cds-icon" }], animations: [
|
|
18163
18314
|
trigger('toggleChildrenAnim', [
|
|
18164
18315
|
transition('collapsed => expanded', [style({ height: 0 }), animate(200, style({ height: '*' }))]),
|
|
18165
18316
|
transition('expanded => collapsed', [style({ height: '*' }), animate(200, style({ height: 0 }))]),
|
|
@@ -18271,7 +18422,7 @@ ClrTree.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0
|
|
|
18271
18422
|
*ngIf="featuresService.recursion"
|
|
18272
18423
|
[children]="featuresService.recursion.root"
|
|
18273
18424
|
></clr-recursive-children>
|
|
18274
|
-
`, isInline: true, components: [{ type: RecursiveChildren, selector: "clr-recursive-children", inputs: ["parent", "children"] }], directives: [{ type:
|
|
18425
|
+
`, isInline: true, components: [{ type: RecursiveChildren, selector: "clr-recursive-children", inputs: ["parent", "children"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
18275
18426
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrTree, decorators: [{
|
|
18276
18427
|
type: Component,
|
|
18277
18428
|
args: [{
|
|
@@ -18548,7 +18699,7 @@ class DropdownFocusHandler {
|
|
|
18548
18699
|
* If the dropdown was opened by clicking on the trigger, we automatically move to the first item
|
|
18549
18700
|
*/
|
|
18550
18701
|
moveToFirstItemWhenOpen() {
|
|
18551
|
-
this.toggleService.openChange.subscribe(open => {
|
|
18702
|
+
const subscription = this.toggleService.openChange.subscribe(open => {
|
|
18552
18703
|
if (open && this.toggleService.originalEvent) {
|
|
18553
18704
|
// Even if we properly waited for ngAfterViewInit, the container still wouldn't be attached to the DOM.
|
|
18554
18705
|
// So setTimeout is the only way to wait for the container to be ready to move focus to first item.
|
|
@@ -18563,12 +18714,13 @@ class DropdownFocusHandler {
|
|
|
18563
18714
|
});
|
|
18564
18715
|
}
|
|
18565
18716
|
});
|
|
18717
|
+
this._unlistenFuncs.push(() => subscription.unsubscribe());
|
|
18566
18718
|
}
|
|
18567
18719
|
/**
|
|
18568
18720
|
* Focus on the menu when it opens, and focus back on the root trigger when the whole dropdown becomes closed
|
|
18569
18721
|
*/
|
|
18570
18722
|
handleRootFocus() {
|
|
18571
|
-
this.toggleService.openChange.subscribe(open => {
|
|
18723
|
+
const subscription = this.toggleService.openChange.subscribe(open => {
|
|
18572
18724
|
if (!open) {
|
|
18573
18725
|
// We reset the state of the focus service both on initialization and when closing.
|
|
18574
18726
|
this.focusService.reset(this);
|
|
@@ -18579,6 +18731,7 @@ class DropdownFocusHandler {
|
|
|
18579
18731
|
}
|
|
18580
18732
|
this.focusBackOnTrigger = open;
|
|
18581
18733
|
});
|
|
18734
|
+
this._unlistenFuncs.push(() => subscription.unsubscribe());
|
|
18582
18735
|
}
|
|
18583
18736
|
get trigger() {
|
|
18584
18737
|
return this._trigger;
|
|
@@ -19202,6 +19355,7 @@ class AbstractPopover {
|
|
|
19202
19355
|
* a separate directive on the host. So let's do dirty but performant for now.
|
|
19203
19356
|
*/
|
|
19204
19357
|
this.closeOnOutsideClick = false;
|
|
19358
|
+
this.documentESCListener = null;
|
|
19205
19359
|
this.closeOnOutsideClickCallback = event => {
|
|
19206
19360
|
// The anchor element containing the click event origin means, the click wasn't triggered outside.
|
|
19207
19361
|
if (this.anchorElem.contains(event.target)) {
|
|
@@ -19212,6 +19366,8 @@ class AbstractPopover {
|
|
|
19212
19366
|
this.el = injector.get(ElementRef);
|
|
19213
19367
|
this.toggleService = injector.get(ClrPopoverToggleService);
|
|
19214
19368
|
this.renderer = injector.get(Renderer2);
|
|
19369
|
+
this.ngZone = injector.get(NgZone);
|
|
19370
|
+
this.ref = injector.get(ChangeDetectorRef);
|
|
19215
19371
|
// Default anchor is the parent host
|
|
19216
19372
|
this.anchorElem = parentHost.nativeElement;
|
|
19217
19373
|
this.popoverInstance = new Popover(this.el.nativeElement);
|
|
@@ -19261,20 +19417,26 @@ class AbstractPopover {
|
|
|
19261
19417
|
return this.toggleService.open ? false : true;
|
|
19262
19418
|
}
|
|
19263
19419
|
attachESCListener() {
|
|
19264
|
-
if (
|
|
19420
|
+
if (this.popoverOptions.ignoreGlobalESCListener) {
|
|
19421
|
+
return;
|
|
19422
|
+
}
|
|
19423
|
+
this.ngZone.runOutsideAngular(() => {
|
|
19265
19424
|
this.documentESCListener = this.renderer.listen('document', 'keydown', event => {
|
|
19266
19425
|
if (event && event.key) {
|
|
19267
19426
|
if (event.key === 'Escape' || event.key === 'Esc') {
|
|
19268
|
-
this.
|
|
19427
|
+
this.ngZone.run(() => {
|
|
19428
|
+
this.toggleService.open = false;
|
|
19429
|
+
this.ref.markForCheck();
|
|
19430
|
+
});
|
|
19269
19431
|
}
|
|
19270
19432
|
}
|
|
19271
19433
|
});
|
|
19272
|
-
}
|
|
19434
|
+
});
|
|
19273
19435
|
}
|
|
19274
19436
|
detachESCListener() {
|
|
19275
19437
|
if (this.documentESCListener) {
|
|
19276
19438
|
this.documentESCListener();
|
|
19277
|
-
|
|
19439
|
+
this.documentESCListener = null;
|
|
19278
19440
|
}
|
|
19279
19441
|
}
|
|
19280
19442
|
attachOutsideClickListener() {
|
|
@@ -19730,7 +19892,7 @@ class ClrAlert {
|
|
|
19730
19892
|
}
|
|
19731
19893
|
}
|
|
19732
19894
|
ClrAlert.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrAlert, deps: [{ token: AlertIconAndTypesService }, { token: i0.ChangeDetectorRef }, { token: MultiAlertService, optional: true }, { token: ClrCommonStringsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
19733
|
-
ClrAlert.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", 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:
|
|
19895
|
+
ClrAlert.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", 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: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
19734
19896
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrAlert, decorators: [{
|
|
19735
19897
|
type: Component,
|
|
19736
19898
|
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" }]
|
|
@@ -19937,7 +20099,7 @@ class ClrAlerts {
|
|
|
19937
20099
|
}
|
|
19938
20100
|
}
|
|
19939
20101
|
ClrAlerts.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrAlerts, deps: [{ token: MultiAlertService }], target: i0.ɵɵFactoryTarget.Component });
|
|
19940
|
-
ClrAlerts.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", 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:
|
|
20102
|
+
ClrAlerts.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", 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: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
19941
20103
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrAlerts, decorators: [{
|
|
19942
20104
|
type: Component,
|
|
19943
20105
|
args: [{ selector: 'clr-alerts', providers: [MultiAlertService], host: {
|
|
@@ -20251,6 +20413,11 @@ class ClrHeader {
|
|
|
20251
20413
|
this.initializeNavTriggers(navLevelList);
|
|
20252
20414
|
},
|
|
20253
20415
|
});
|
|
20416
|
+
this._subscription.add(this.responsiveNavService.navControl
|
|
20417
|
+
.pipe(filter(({ controlCode }) => controlCode === ResponsiveNavCodes.NAV_CLOSE || controlCode === ResponsiveNavCodes.NAV_CLOSE_ALL))
|
|
20418
|
+
.subscribe(() => {
|
|
20419
|
+
this.openNavLevel = null;
|
|
20420
|
+
}));
|
|
20254
20421
|
}
|
|
20255
20422
|
get responsiveNavCommonString() {
|
|
20256
20423
|
const myCommonStrings = this.commonStrings.keys;
|
|
@@ -20295,10 +20462,21 @@ class ClrHeader {
|
|
|
20295
20462
|
closeOpenNav() {
|
|
20296
20463
|
this.responsiveNavService.closeAllNavs();
|
|
20297
20464
|
}
|
|
20298
|
-
|
|
20465
|
+
/**
|
|
20466
|
+
* @deprecated Will be removed in with @clr/angular v15.0.0
|
|
20467
|
+
*
|
|
20468
|
+
* Use `openNav(navLevel)` instead to open the navigation and ResponsiveNavService to close it.
|
|
20469
|
+
*/
|
|
20299
20470
|
toggleNav(navLevel) {
|
|
20300
|
-
|
|
20301
|
-
|
|
20471
|
+
if (this.openNavLevel === navLevel) {
|
|
20472
|
+
this.responsiveNavService.sendControlMessage(ResponsiveNavCodes.NAV_CLOSE, navLevel);
|
|
20473
|
+
return;
|
|
20474
|
+
}
|
|
20475
|
+
this.openNav(navLevel);
|
|
20476
|
+
}
|
|
20477
|
+
openNav(navLevel) {
|
|
20478
|
+
this.openNavLevel = navLevel;
|
|
20479
|
+
this.responsiveNavService.sendControlMessage(ResponsiveNavCodes.NAV_OPEN, navLevel);
|
|
20302
20480
|
}
|
|
20303
20481
|
ngOnDestroy() {
|
|
20304
20482
|
this._subscription.unsubscribe();
|
|
@@ -20312,7 +20490,7 @@ ClrHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13
|
|
|
20312
20490
|
class="header-hamburger-trigger"
|
|
20313
20491
|
[attr.aria-label]="responsiveNavCommonString"
|
|
20314
20492
|
[attr.aria-expanded]="openNavLevel === 1 ? 'true' : 'false'"
|
|
20315
|
-
(click)="
|
|
20493
|
+
(click)="openNav(responsiveNavCodes.NAV_LEVEL_1)"
|
|
20316
20494
|
>
|
|
20317
20495
|
<span></span>
|
|
20318
20496
|
</button>
|
|
@@ -20323,12 +20501,12 @@ ClrHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13
|
|
|
20323
20501
|
class="header-overflow-trigger"
|
|
20324
20502
|
[attr.aria-label]="responsiveOverflowCommonString"
|
|
20325
20503
|
[attr.aria-expanded]="openNavLevel === 2 ? 'true' : 'false'"
|
|
20326
|
-
(click)="
|
|
20504
|
+
(click)="openNav(responsiveNavCodes.NAV_LEVEL_2)"
|
|
20327
20505
|
>
|
|
20328
20506
|
<span></span>
|
|
20329
20507
|
</button>
|
|
20330
20508
|
<div class="header-backdrop" (click)="closeOpenNav()"></div>
|
|
20331
|
-
`, isInline: true, directives: [{ type:
|
|
20509
|
+
`, isInline: true, directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
20332
20510
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrHeader, decorators: [{
|
|
20333
20511
|
type: Component,
|
|
20334
20512
|
args: [{
|
|
@@ -20340,7 +20518,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
20340
20518
|
class="header-hamburger-trigger"
|
|
20341
20519
|
[attr.aria-label]="responsiveNavCommonString"
|
|
20342
20520
|
[attr.aria-expanded]="openNavLevel === 1 ? 'true' : 'false'"
|
|
20343
|
-
(click)="
|
|
20521
|
+
(click)="openNav(responsiveNavCodes.NAV_LEVEL_1)"
|
|
20344
20522
|
>
|
|
20345
20523
|
<span></span>
|
|
20346
20524
|
</button>
|
|
@@ -20351,7 +20529,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
20351
20529
|
class="header-overflow-trigger"
|
|
20352
20530
|
[attr.aria-label]="responsiveOverflowCommonString"
|
|
20353
20531
|
[attr.aria-expanded]="openNavLevel === 2 ? 'true' : 'false'"
|
|
20354
|
-
(click)="
|
|
20532
|
+
(click)="openNav(responsiveNavCodes.NAV_LEVEL_2)"
|
|
20355
20533
|
>
|
|
20356
20534
|
<span></span>
|
|
20357
20535
|
</button>
|
|
@@ -20366,12 +20544,186 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
20366
20544
|
* This software is released under MIT license.
|
|
20367
20545
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
20368
20546
|
*/
|
|
20369
|
-
|
|
20370
|
-
|
|
20547
|
+
function refocusIfOutsideFocusTrapElement(focusedElement, focusTrapElement, elementToRefocus) {
|
|
20548
|
+
const focusTrapIsCurrent = FocusTrapTrackerService.getCurrent() === focusTrapElement;
|
|
20549
|
+
const elementToFocusIsOutsideFocusTrap = elementIsOutsideFocusTrapElement(focusedElement, focusTrapElement);
|
|
20550
|
+
if (focusTrapIsCurrent && elementToFocusIsOutsideFocusTrap) {
|
|
20551
|
+
elementToRefocus = elementToRefocus || focusTrapElement;
|
|
20552
|
+
elementToRefocus.focus();
|
|
20553
|
+
}
|
|
20554
|
+
else {
|
|
20555
|
+
focusedElement.focus();
|
|
20556
|
+
}
|
|
20557
|
+
}
|
|
20558
|
+
function elementIsOutsideFocusTrapElement(focusedElement, focusTrapElement) {
|
|
20559
|
+
if (focusedElement === focusTrapElement.topReboundElement ||
|
|
20560
|
+
focusedElement === focusTrapElement.bottomReboundElement) {
|
|
20561
|
+
return true;
|
|
20562
|
+
}
|
|
20563
|
+
const elementIsInFocusTrapLightDom = focusTrapElement.contains(focusedElement);
|
|
20564
|
+
if (elementIsInFocusTrapLightDom) {
|
|
20565
|
+
return false;
|
|
20566
|
+
}
|
|
20567
|
+
if (focusTrapElement !== null && focusTrapElement.contains(focusedElement)) {
|
|
20568
|
+
return false;
|
|
20569
|
+
}
|
|
20570
|
+
return true;
|
|
20571
|
+
}
|
|
20572
|
+
function createFocusTrapReboundElement(document) {
|
|
20573
|
+
const offScreenSpan = document.createElement('span');
|
|
20574
|
+
offScreenSpan.setAttribute('tabindex', '0');
|
|
20575
|
+
offScreenSpan.classList.add('offscreen-focus-rebounder');
|
|
20576
|
+
return offScreenSpan;
|
|
20577
|
+
}
|
|
20578
|
+
function addReboundElementsToFocusTrapElement(document, focusTrapElement) {
|
|
20579
|
+
if (focusTrapElement && !focusTrapElement.topReboundElement && !focusTrapElement.bottomReboundElement) {
|
|
20580
|
+
focusTrapElement.topReboundElement = createFocusTrapReboundElement(document);
|
|
20581
|
+
focusTrapElement.bottomReboundElement = createFocusTrapReboundElement(document);
|
|
20582
|
+
const parent = focusTrapElement.parentElement;
|
|
20583
|
+
const sibling = focusTrapElement.nextSibling;
|
|
20584
|
+
if (parent) {
|
|
20585
|
+
parent.insertBefore(focusTrapElement.topReboundElement, focusTrapElement);
|
|
20586
|
+
if (sibling) {
|
|
20587
|
+
parent.insertBefore(focusTrapElement.bottomReboundElement, sibling);
|
|
20588
|
+
}
|
|
20589
|
+
else {
|
|
20590
|
+
parent.appendChild(focusTrapElement.bottomReboundElement);
|
|
20591
|
+
}
|
|
20592
|
+
}
|
|
20593
|
+
}
|
|
20594
|
+
}
|
|
20595
|
+
function removeReboundElementsFromFocusTrapElement(focusTrapElement) {
|
|
20596
|
+
if (focusTrapElement) {
|
|
20597
|
+
const parent = focusTrapElement.parentElement;
|
|
20598
|
+
if (parent) {
|
|
20599
|
+
const topRebound = focusTrapElement.topReboundElement;
|
|
20600
|
+
const bottomRebound = focusTrapElement.bottomReboundElement;
|
|
20601
|
+
if (topRebound) {
|
|
20602
|
+
parent.removeChild(topRebound);
|
|
20603
|
+
}
|
|
20604
|
+
if (bottomRebound) {
|
|
20605
|
+
parent.removeChild(bottomRebound);
|
|
20606
|
+
}
|
|
20607
|
+
}
|
|
20608
|
+
// These are here to to make sure that we completely delete all traces of the removed DOM objects.
|
|
20609
|
+
delete focusTrapElement.topReboundElement;
|
|
20610
|
+
delete focusTrapElement.bottomReboundElement;
|
|
20611
|
+
}
|
|
20612
|
+
}
|
|
20613
|
+
// this helper exists to enable the focus trap class to handle vanilla html elements
|
|
20614
|
+
// it's primary concern is to keep TS happy.
|
|
20615
|
+
function castHtmlElementToFocusTrapElement(el) {
|
|
20616
|
+
return el;
|
|
20617
|
+
}
|
|
20618
|
+
class FocusTrap {
|
|
20619
|
+
constructor(renderer, injector, platformId, hostElement) {
|
|
20620
|
+
this.renderer = renderer;
|
|
20621
|
+
this.active = false;
|
|
20622
|
+
if (isPlatformBrowser(platformId)) {
|
|
20623
|
+
this._document = injector.get(DOCUMENT);
|
|
20624
|
+
}
|
|
20625
|
+
hostElement = castHtmlElementToFocusTrapElement(hostElement);
|
|
20626
|
+
if (!hostElement.focusTrapId) {
|
|
20627
|
+
hostElement.focusTrapId = createId();
|
|
20628
|
+
}
|
|
20629
|
+
this.focusTrapElement = hostElement;
|
|
20630
|
+
}
|
|
20631
|
+
enableFocusTrap() {
|
|
20632
|
+
const fte = this.focusTrapElement;
|
|
20633
|
+
const firstFocusElement = fte.querySelector('[cds-first-focus]');
|
|
20634
|
+
const activeEl = this._document.activeElement;
|
|
20635
|
+
if (FocusTrapTrackerService.getCurrent() === fte) {
|
|
20636
|
+
throw new Error('Focus trap is already enabled for this instance.');
|
|
20637
|
+
}
|
|
20638
|
+
this.firstFocusElement = firstFocusElement || this.focusTrapElement;
|
|
20639
|
+
addReboundElementsToFocusTrapElement(this._document, fte);
|
|
20640
|
+
if (!isFocusable(fte)) {
|
|
20641
|
+
fte.setAttribute('tabindex', '-1');
|
|
20642
|
+
}
|
|
20643
|
+
if (activeEl && isHTMLElement(activeEl)) {
|
|
20644
|
+
this.previousFocus = activeEl;
|
|
20645
|
+
}
|
|
20646
|
+
FocusTrapTrackerService.setCurrent(fte);
|
|
20647
|
+
// setTimeout here is required for Safari which may try to set focus on
|
|
20648
|
+
// element before it is visible...
|
|
20649
|
+
const focusTimer = setTimeout(() => {
|
|
20650
|
+
this.firstFocusElement.focus();
|
|
20651
|
+
clearTimeout(focusTimer);
|
|
20652
|
+
}, 10);
|
|
20653
|
+
this.onFocusInEvent = this.onFocusIn.bind(this);
|
|
20654
|
+
this.unlisten = this.renderer.listen(this._document, 'focusin', this.onFocusInEvent);
|
|
20655
|
+
this.active = true;
|
|
20656
|
+
}
|
|
20657
|
+
removeFocusTrap() {
|
|
20658
|
+
if (this.unlisten) {
|
|
20659
|
+
this.unlisten();
|
|
20660
|
+
}
|
|
20661
|
+
removeReboundElementsFromFocusTrapElement(this.focusTrapElement);
|
|
20662
|
+
this.renderer.removeAttribute(this.focusTrapElement, 'tabindex');
|
|
20663
|
+
FocusTrapTrackerService.activatePreviousCurrent();
|
|
20664
|
+
this.active = false;
|
|
20665
|
+
if (this.previousFocus) {
|
|
20666
|
+
this.previousFocus.focus();
|
|
20667
|
+
}
|
|
20668
|
+
}
|
|
20669
|
+
onFocusIn(event) {
|
|
20670
|
+
refocusIfOutsideFocusTrapElement(event.composedPath()[0], this.focusTrapElement, this.firstFocusElement);
|
|
20671
|
+
}
|
|
20672
|
+
}
|
|
20673
|
+
FocusTrap.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: FocusTrap, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable });
|
|
20674
|
+
FocusTrap.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: FocusTrap });
|
|
20675
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: FocusTrap, decorators: [{
|
|
20676
|
+
type: Injectable
|
|
20677
|
+
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.Injector }, { type: undefined }, { type: undefined }]; } });
|
|
20678
|
+
|
|
20679
|
+
/*
|
|
20680
|
+
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
20681
|
+
* This software is released under MIT license.
|
|
20682
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
20683
|
+
*/
|
|
20684
|
+
const createCdsCloseButton = (document, ariaLabel) => {
|
|
20685
|
+
const cdsCloseButton = document.createElement('cds-internal-close-button');
|
|
20686
|
+
cdsCloseButton.setAttribute('icon-size', '32');
|
|
20687
|
+
cdsCloseButton.setAttribute('aria-label', ariaLabel);
|
|
20688
|
+
cdsCloseButton.setAttribute('aria-hidden', 'true');
|
|
20689
|
+
cdsCloseButton.setAttribute('type', 'button');
|
|
20690
|
+
/**
|
|
20691
|
+
* The button is hidden by default based on our Desktop-first approach.
|
|
20692
|
+
*/
|
|
20693
|
+
cdsCloseButton.setAttribute('hidden', 'true');
|
|
20694
|
+
cdsCloseButton.className = 'clr-nav-close';
|
|
20695
|
+
return cdsCloseButton;
|
|
20696
|
+
};
|
|
20697
|
+
class ClrNavLevel extends FocusTrap {
|
|
20698
|
+
constructor(platformId, responsiveNavService, elementRef, renderer, injector) {
|
|
20699
|
+
super(renderer, injector, platformId, elementRef.nativeElement);
|
|
20371
20700
|
this.responsiveNavService = responsiveNavService;
|
|
20372
20701
|
this.elementRef = elementRef;
|
|
20702
|
+
this._isOpen = false;
|
|
20703
|
+
if (isPlatformBrowser(platformId)) {
|
|
20704
|
+
this._document = injector.get(DOCUMENT);
|
|
20705
|
+
}
|
|
20706
|
+
this._subscription = responsiveNavService.navControl
|
|
20707
|
+
.pipe(filter(x => x.navLevel === this.level), filter(({ controlCode }) => (controlCode === ResponsiveNavCodes.NAV_OPEN && !this.isOpen) ||
|
|
20708
|
+
(controlCode === ResponsiveNavCodes.NAV_CLOSE && this.isOpen)))
|
|
20709
|
+
.subscribe(({ controlCode }) => {
|
|
20710
|
+
if (controlCode === ResponsiveNavCodes.NAV_OPEN) {
|
|
20711
|
+
this.open();
|
|
20712
|
+
return;
|
|
20713
|
+
}
|
|
20714
|
+
this.close();
|
|
20715
|
+
});
|
|
20716
|
+
this._subscription.add(responsiveNavService.navControl
|
|
20717
|
+
.pipe(filter(({ controlCode }) => controlCode === ResponsiveNavCodes.NAV_CLOSE_ALL))
|
|
20718
|
+
.subscribe(() => this.close()));
|
|
20373
20719
|
}
|
|
20374
20720
|
ngOnInit() {
|
|
20721
|
+
if (!this.closeButtonAriaLabel) {
|
|
20722
|
+
this.closeButtonAriaLabel =
|
|
20723
|
+
this._level === ResponsiveNavCodes.NAV_LEVEL_1
|
|
20724
|
+
? commonStringsDefault.responsiveNavToggleClose
|
|
20725
|
+
: commonStringsDefault.responsiveNavOverflowClose;
|
|
20726
|
+
}
|
|
20375
20727
|
if (this.level !== ResponsiveNavCodes.NAV_LEVEL_1 && this.level !== ResponsiveNavCodes.NAV_LEVEL_2) {
|
|
20376
20728
|
console.error('Nav Level can only be 1 or 2');
|
|
20377
20729
|
return;
|
|
@@ -20379,6 +20731,20 @@ class ClrNavLevel {
|
|
|
20379
20731
|
this.responsiveNavService.registerNav(this.level);
|
|
20380
20732
|
this.addNavClass(this.level);
|
|
20381
20733
|
}
|
|
20734
|
+
ngAfterViewInit() {
|
|
20735
|
+
const closeButton = createCdsCloseButton(this._document, this.closeButtonAriaLabel);
|
|
20736
|
+
this.renderer.listen(closeButton, 'click', this.close.bind(this));
|
|
20737
|
+
this.renderer.insertBefore(this.elementRef.nativeElement, closeButton, this.elementRef.nativeElement.firstChild); // Adding the button at the top of the nav
|
|
20738
|
+
if (this._document.body.clientWidth < LARGE_BREAKPOINT) {
|
|
20739
|
+
/**
|
|
20740
|
+
* Close if the document body is smaller than the large breakpoint for example:
|
|
20741
|
+
* - Refreshing the page
|
|
20742
|
+
* - Browser window size is changed when opening the applicaiton
|
|
20743
|
+
* - Browser zoom is turned on and zoomed to a size that makes the document smaller than the large breakpoint
|
|
20744
|
+
*/
|
|
20745
|
+
this.close();
|
|
20746
|
+
}
|
|
20747
|
+
}
|
|
20382
20748
|
addNavClass(level) {
|
|
20383
20749
|
const navHostClassList = this.elementRef.nativeElement.classList;
|
|
20384
20750
|
if (level === ResponsiveNavCodes.NAV_LEVEL_1) {
|
|
@@ -20395,10 +20761,29 @@ class ClrNavLevel {
|
|
|
20395
20761
|
get responsiveNavCodes() {
|
|
20396
20762
|
return ResponsiveNavCodes;
|
|
20397
20763
|
}
|
|
20764
|
+
get isOpen() {
|
|
20765
|
+
return this._isOpen;
|
|
20766
|
+
}
|
|
20767
|
+
onResize(event) {
|
|
20768
|
+
const target = event.target;
|
|
20769
|
+
if (target.innerWidth < LARGE_BREAKPOINT && this.isOpen) {
|
|
20770
|
+
this.close();
|
|
20771
|
+
return;
|
|
20772
|
+
}
|
|
20773
|
+
this.showNavigation();
|
|
20774
|
+
}
|
|
20398
20775
|
open() {
|
|
20776
|
+
this._isOpen = true;
|
|
20777
|
+
this.showNavigation();
|
|
20778
|
+
this.enableFocusTrap();
|
|
20779
|
+
this.showCloseButton();
|
|
20399
20780
|
this.responsiveNavService.sendControlMessage(ResponsiveNavCodes.NAV_OPEN, this.level);
|
|
20400
20781
|
}
|
|
20401
20782
|
close() {
|
|
20783
|
+
this._isOpen = false;
|
|
20784
|
+
this.hideNavigation();
|
|
20785
|
+
this.removeFocusTrap();
|
|
20786
|
+
this.hideCloseButton();
|
|
20402
20787
|
this.responsiveNavService.sendControlMessage(ResponsiveNavCodes.NAV_CLOSE, this.level);
|
|
20403
20788
|
}
|
|
20404
20789
|
// TODO: Figure out whats the best way to do this. Possible methods
|
|
@@ -20421,18 +20806,46 @@ class ClrNavLevel {
|
|
|
20421
20806
|
current = current.parentNode;
|
|
20422
20807
|
}
|
|
20423
20808
|
}
|
|
20809
|
+
hideNavigation() {
|
|
20810
|
+
this.renderer.setAttribute(this.elementRef.nativeElement, 'aria-hidden', 'true');
|
|
20811
|
+
this.renderer.setAttribute(this.elementRef.nativeElement, 'hidden', 'true');
|
|
20812
|
+
}
|
|
20813
|
+
showNavigation() {
|
|
20814
|
+
this.renderer.setAttribute(this.elementRef.nativeElement, 'aria-hidden', 'false');
|
|
20815
|
+
this.renderer.removeAttribute(this.elementRef.nativeElement, 'hidden');
|
|
20816
|
+
}
|
|
20817
|
+
hideCloseButton() {
|
|
20818
|
+
this.renderer.setAttribute(this.elementRef.nativeElement, 'aria-hidden', 'true');
|
|
20819
|
+
this.renderer.setAttribute(this.elementRef.nativeElement.querySelector('.clr-nav-close'), 'hidden', 'true');
|
|
20820
|
+
}
|
|
20821
|
+
showCloseButton() {
|
|
20822
|
+
this.renderer.setAttribute(this.elementRef.nativeElement.querySelector('.clr-nav-close'), 'aria-hidden', 'false');
|
|
20823
|
+
this.renderer.removeAttribute(this.elementRef.nativeElement.querySelector('.clr-nav-close'), 'hidden');
|
|
20824
|
+
}
|
|
20424
20825
|
ngOnDestroy() {
|
|
20425
20826
|
this.responsiveNavService.unregisterNav(this.level);
|
|
20827
|
+
this._subscription.unsubscribe();
|
|
20426
20828
|
}
|
|
20427
20829
|
}
|
|
20428
|
-
ClrNavLevel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrNavLevel, deps: [{ token: ResponsiveNavigationService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
20429
|
-
ClrNavLevel.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrNavLevel, selector: "[clr-nav-level]", inputs: { _level: ["clr-nav-level", "_level"] }, host: { listeners: { "click": "onMouseClick($event.target)" } }, ngImport: i0 });
|
|
20830
|
+
ClrNavLevel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrNavLevel, deps: [{ token: PLATFORM_ID }, { token: ResponsiveNavigationService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive });
|
|
20831
|
+
ClrNavLevel.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrNavLevel, selector: "[clr-nav-level]", inputs: { _level: ["clr-nav-level", "_level"], closeButtonAriaLabel: ["closeAriaLabel", "closeButtonAriaLabel"] }, host: { listeners: { "window:resize": "onResize($event)", "click": "onMouseClick($event.target)" } }, usesInheritance: true, ngImport: i0 });
|
|
20430
20832
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrNavLevel, decorators: [{
|
|
20431
20833
|
type: Directive,
|
|
20432
20834
|
args: [{ selector: '[clr-nav-level]' }]
|
|
20433
|
-
}], ctorParameters: function () {
|
|
20835
|
+
}], ctorParameters: function () {
|
|
20836
|
+
return [{ type: undefined, decorators: [{
|
|
20837
|
+
type: Inject,
|
|
20838
|
+
args: [PLATFORM_ID]
|
|
20839
|
+
}] }, { type: ResponsiveNavigationService }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.Injector }];
|
|
20840
|
+
}, propDecorators: { _level: [{
|
|
20434
20841
|
type: Input,
|
|
20435
20842
|
args: ['clr-nav-level']
|
|
20843
|
+
}], closeButtonAriaLabel: [{
|
|
20844
|
+
type: Input,
|
|
20845
|
+
args: ['closeAriaLabel']
|
|
20846
|
+
}], onResize: [{
|
|
20847
|
+
type: HostListener,
|
|
20848
|
+
args: ['window:resize', ['$event']]
|
|
20436
20849
|
}], onMouseClick: [{
|
|
20437
20850
|
type: HostListener,
|
|
20438
20851
|
args: ['click', ['$event.target']]
|
|
@@ -21097,7 +21510,7 @@ ClrTabs.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0
|
|
|
21097
21510
|
</ng-container>
|
|
21098
21511
|
</ul>
|
|
21099
21512
|
<ng-container #tabContentViewContainer></ng-container>
|
|
21100
|
-
`, isInline: true, components: [{ type: ClrKeyFocus, selector: "[clrKeyFocus]", inputs: ["clrDirection", "clrFocusOnLoad", "clrKeyFocus"], outputs: ["clrFocusChange"] }, { type: ClrTabOverflowContent, selector: "clr-tab-overflow-content" }], directives: [{ type:
|
|
21513
|
+
`, isInline: true, components: [{ type: ClrKeyFocus, selector: "[clrKeyFocus]", inputs: ["clrDirection", "clrFocusOnLoad", "clrKeyFocus"], outputs: ["clrFocusChange"] }, { type: ClrTabOverflowContent, selector: "clr-tab-overflow-content" }], directives: [{ type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
21101
21514
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrTabs, decorators: [{
|
|
21102
21515
|
type: Component,
|
|
21103
21516
|
args: [{
|
|
@@ -21379,7 +21792,7 @@ class ClrVerticalNav {
|
|
|
21379
21792
|
}
|
|
21380
21793
|
}
|
|
21381
21794
|
ClrVerticalNav.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrVerticalNav, deps: [{ token: VerticalNavService }, { token: VerticalNavIconService }, { token: VerticalNavGroupRegistrationService }, { token: ClrCommonStringsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
21382
|
-
ClrVerticalNav.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", 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:
|
|
21795
|
+
ClrVerticalNav.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", 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: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
21383
21796
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrVerticalNav, decorators: [{
|
|
21384
21797
|
type: Component,
|
|
21385
21798
|
args: [{ selector: 'clr-vertical-nav', providers: [VerticalNavService, VerticalNavIconService, VerticalNavGroupRegistrationService], host: {
|
|
@@ -21546,7 +21959,7 @@ class ClrVerticalNavGroup {
|
|
|
21546
21959
|
}
|
|
21547
21960
|
}
|
|
21548
21961
|
ClrVerticalNavGroup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrVerticalNavGroup, deps: [{ token: IfExpandService }, { token: VerticalNavGroupRegistrationService }, { token: VerticalNavGroupService }, { token: VerticalNavService }, { token: ClrCommonStringsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
21549
|
-
ClrVerticalNavGroup.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrVerticalNavGroup, selector: "clr-vertical-nav-group", inputs: { groupLabel: ["clrVerticalNavGroupLabel", "groupLabel"], userExpandedInput: ["clrVerticalNavGroupExpanded", "userExpandedInput"] }, outputs: { expandedChange: "clrVerticalNavGroupExpandedChange" }, host: { properties: { "class.is-expanded": "this.expanded" }, classAttribute: "nav-group" }, providers: [IfExpandService, VerticalNavGroupService], ngImport: i0, template: "<!--\n ~ Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n<div class=\"nav-group-content\">\n <ng-content select=\"[clrVerticalNavLink]\"></ng-content>\n <button\n class=\"nav-group-trigger\"\n type=\"button\"\n [attr.aria-expanded]=\"expanded\"\n [attr.aria-label]=\"groupLabel\"\n (click)=\"toggleExpand()\"\n >\n <ng-content select=\"[clrVerticalNavIcon]\"></ng-content>\n <div class=\"nav-group-text\">\n <ng-content></ng-content>\n </div>\n <cds-icon\n shape=\"angle\"\n class=\"nav-group-trigger-icon\"\n [attr.direction]=\"
|
|
21962
|
+
ClrVerticalNavGroup.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrVerticalNavGroup, selector: "clr-vertical-nav-group", inputs: { groupLabel: ["clrVerticalNavGroupLabel", "groupLabel"], userExpandedInput: ["clrVerticalNavGroupExpanded", "userExpandedInput"] }, outputs: { expandedChange: "clrVerticalNavGroupExpandedChange" }, host: { properties: { "class.is-expanded": "this.expanded" }, classAttribute: "nav-group" }, providers: [IfExpandService, VerticalNavGroupService], ngImport: i0, template: "<!--\n ~ Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n<div class=\"nav-group-content\">\n <ng-content select=\"[clrVerticalNavLink]\"></ng-content>\n <button\n class=\"nav-group-trigger\"\n type=\"button\"\n [attr.aria-expanded]=\"expanded\"\n [attr.aria-label]=\"groupLabel\"\n (click)=\"toggleExpand()\"\n >\n <ng-content select=\"[clrVerticalNavIcon]\"></ng-content>\n <div class=\"nav-group-text\">\n <ng-content></ng-content>\n </div>\n <cds-icon\n shape=\"angle\"\n class=\"nav-group-trigger-icon\"\n [attr.direction]=\"expanded ? 'down' : 'right'\"\n [attr.title]=\"expanded ? commonStrings.keys.collapse : commonStrings.keys.expand\"\n >\n </cds-icon>\n </button>\n</div>\n<!--TODO: This animation needs to be added to the clr-vertical-nav-group-children component-->\n<div class=\"nav-group-children\" [@clrExpand]=\"expandAnimationState\" (@clrExpand.done)=\"expandAnimationDone($event)\">\n <ng-content select=\"[clrIfExpanded], clr-vertical-nav-group-children\"></ng-content>\n</div>\n", directives: [{ type: CdsIconCustomTag, selector: "cds-icon" }], animations: [
|
|
21550
21963
|
trigger('clrExpand', [
|
|
21551
21964
|
state(EXPANDED_STATE, style({ height: '*' })),
|
|
21552
21965
|
state(COLLAPSED_STATE, style({ height: 0, 'overflow-y': 'hidden', visibility: 'hidden' })),
|
|
@@ -21561,7 +21974,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
21561
21974
|
state(COLLAPSED_STATE, style({ height: 0, 'overflow-y': 'hidden', visibility: 'hidden' })),
|
|
21562
21975
|
transition(`${EXPANDED_STATE} <=> ${COLLAPSED_STATE}`, animate('0.2s ease-in-out')),
|
|
21563
21976
|
]),
|
|
21564
|
-
], host: { class: 'nav-group' }, template: "<!--\n ~ Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n<div class=\"nav-group-content\">\n <ng-content select=\"[clrVerticalNavLink]\"></ng-content>\n <button\n class=\"nav-group-trigger\"\n type=\"button\"\n [attr.aria-expanded]=\"expanded\"\n [attr.aria-label]=\"groupLabel\"\n (click)=\"toggleExpand()\"\n >\n <ng-content select=\"[clrVerticalNavIcon]\"></ng-content>\n <div class=\"nav-group-text\">\n <ng-content></ng-content>\n </div>\n <cds-icon\n shape=\"angle\"\n class=\"nav-group-trigger-icon\"\n [attr.direction]=\"
|
|
21977
|
+
], host: { class: 'nav-group' }, template: "<!--\n ~ Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n<div class=\"nav-group-content\">\n <ng-content select=\"[clrVerticalNavLink]\"></ng-content>\n <button\n class=\"nav-group-trigger\"\n type=\"button\"\n [attr.aria-expanded]=\"expanded\"\n [attr.aria-label]=\"groupLabel\"\n (click)=\"toggleExpand()\"\n >\n <ng-content select=\"[clrVerticalNavIcon]\"></ng-content>\n <div class=\"nav-group-text\">\n <ng-content></ng-content>\n </div>\n <cds-icon\n shape=\"angle\"\n class=\"nav-group-trigger-icon\"\n [attr.direction]=\"expanded ? 'down' : 'right'\"\n [attr.title]=\"expanded ? commonStrings.keys.collapse : commonStrings.keys.expand\"\n >\n </cds-icon>\n </button>\n</div>\n<!--TODO: This animation needs to be added to the clr-vertical-nav-group-children component-->\n<div class=\"nav-group-children\" [@clrExpand]=\"expandAnimationState\" (@clrExpand.done)=\"expandAnimationDone($event)\">\n <ng-content select=\"[clrIfExpanded], clr-vertical-nav-group-children\"></ng-content>\n</div>\n" }]
|
|
21565
21978
|
}], ctorParameters: function () { return [{ type: IfExpandService }, { type: VerticalNavGroupRegistrationService }, { type: VerticalNavGroupService }, { type: VerticalNavService }, { type: ClrCommonStringsService }]; }, propDecorators: { expanded: [{
|
|
21566
21979
|
type: HostBinding,
|
|
21567
21980
|
args: ['class.is-expanded']
|
|
@@ -21620,17 +22033,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
21620
22033
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
21621
22034
|
*/
|
|
21622
22035
|
class ClrVerticalNavLink {
|
|
21623
|
-
constructor(
|
|
21624
|
-
this.
|
|
22036
|
+
constructor(host, ref, navGroupService) {
|
|
22037
|
+
this.destroy$ = new Subject();
|
|
22038
|
+
// Note: since the `VerticalNavGroupService` is an optional provider, we'll setup the event
|
|
22039
|
+
// listener only when the `[clrVerticalLink]` is located within the `clr-vertical-nav-group`.
|
|
22040
|
+
navGroupService &&
|
|
22041
|
+
fromEvent(host.nativeElement, 'click')
|
|
22042
|
+
.pipe(takeUntil(this.destroy$))
|
|
22043
|
+
.subscribe(() => {
|
|
22044
|
+
navGroupService.expand();
|
|
22045
|
+
ref.markForCheck();
|
|
22046
|
+
});
|
|
21625
22047
|
}
|
|
21626
|
-
|
|
21627
|
-
|
|
21628
|
-
this._navGroupService.expand();
|
|
21629
|
-
}
|
|
22048
|
+
ngOnDestroy() {
|
|
22049
|
+
this.destroy$.next();
|
|
21630
22050
|
}
|
|
21631
22051
|
}
|
|
21632
|
-
ClrVerticalNavLink.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrVerticalNavLink, deps: [{ token: VerticalNavGroupService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
21633
|
-
ClrVerticalNavLink.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrVerticalNavLink, selector: "[clrVerticalNavLink]", host: {
|
|
22052
|
+
ClrVerticalNavLink.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrVerticalNavLink, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: VerticalNavGroupService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
22053
|
+
ClrVerticalNavLink.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrVerticalNavLink, selector: "[clrVerticalNavLink]", host: { classAttribute: "nav-link" }, ngImport: i0, template: `
|
|
21634
22054
|
<ng-content select="[clrVerticalNavIcon]"></ng-content>
|
|
21635
22055
|
<span class="nav-text">
|
|
21636
22056
|
<ng-content></ng-content>
|
|
@@ -21649,13 +22069,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
21649
22069
|
host: { class: 'nav-link' },
|
|
21650
22070
|
}]
|
|
21651
22071
|
}], ctorParameters: function () {
|
|
21652
|
-
return [{ type: VerticalNavGroupService, decorators: [{
|
|
22072
|
+
return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: VerticalNavGroupService, decorators: [{
|
|
21653
22073
|
type: Optional
|
|
22074
|
+
}, {
|
|
22075
|
+
type: Inject,
|
|
22076
|
+
args: [VerticalNavGroupService]
|
|
21654
22077
|
}] }];
|
|
21655
|
-
}
|
|
21656
|
-
type: HostListener,
|
|
21657
|
-
args: ['click']
|
|
21658
|
-
}] } });
|
|
22078
|
+
} });
|
|
21659
22079
|
|
|
21660
22080
|
/*
|
|
21661
22081
|
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
@@ -21800,7 +22220,7 @@ class ClrModal {
|
|
|
21800
22220
|
}
|
|
21801
22221
|
}
|
|
21802
22222
|
ClrModal.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrModal, deps: [{ token: ScrollingService }, { token: ClrCommonStringsService }, { token: UNIQUE_ID }], target: i0.ɵɵFactoryTarget.Component });
|
|
21803
|
-
ClrModal.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", 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"], labelledBy: ["clrModalLabelledById", "labelledBy"] }, 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]=\"labelledBy\"\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:
|
|
22223
|
+
ClrModal.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", 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"], labelledBy: ["clrModalLabelledById", "labelledBy"] }, 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]=\"labelledBy\"\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: i5.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: [
|
|
21804
22224
|
trigger('fadeDown', [
|
|
21805
22225
|
transition('* => false', [style({ opacity: 0, transform: 'translate(0, -25%)' }), animate('0.2s ease-in-out')]),
|
|
21806
22226
|
transition('false => *', [animate('0.2s ease-in-out', style({ opacity: 0, transform: 'translate(0, -25%)' }))]),
|
|
@@ -21895,7 +22315,8 @@ class ClrModalBody {
|
|
|
21895
22315
|
this.tabindex = '0';
|
|
21896
22316
|
this.unlisteners = [];
|
|
21897
22317
|
ngZone.runOutsideAngular(() => {
|
|
21898
|
-
new ResizeObserver(() => this.addOrRemoveTabIndex())
|
|
22318
|
+
this.observer = new ResizeObserver(() => this.addOrRemoveTabIndex());
|
|
22319
|
+
this.observer.observe(this.host.nativeElement);
|
|
21899
22320
|
this.unlisteners.push(this.renderer.listen(this.host.nativeElement, 'mouseup', () => {
|
|
21900
22321
|
// set the tabindex binding back when click is completed with mouseup
|
|
21901
22322
|
this.addOrRemoveTabIndex();
|
|
@@ -21910,6 +22331,8 @@ class ClrModalBody {
|
|
|
21910
22331
|
while (this.unlisteners.length) {
|
|
21911
22332
|
this.unlisteners.pop()();
|
|
21912
22333
|
}
|
|
22334
|
+
this.observer.disconnect();
|
|
22335
|
+
this.observer = null;
|
|
21913
22336
|
}
|
|
21914
22337
|
addTabIndex() {
|
|
21915
22338
|
this.renderer.setAttribute(this.host.nativeElement, 'tabindex', this.tabindex);
|
|
@@ -22074,6 +22497,7 @@ class ClrSignpostContent extends AbstractPopover {
|
|
|
22074
22497
|
this.popoverOptions.offsetX = setPosition.offsetX;
|
|
22075
22498
|
}
|
|
22076
22499
|
ngOnDestroy() {
|
|
22500
|
+
super.ngOnDestroy();
|
|
22077
22501
|
if (isPlatformBrowser(this.platformId) && this.el.nativeElement.contains(this.document.activeElement)) {
|
|
22078
22502
|
this.signpostFocusManager.focusTrigger();
|
|
22079
22503
|
}
|
|
@@ -24348,7 +24772,7 @@ ClrWizardStepnavItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
24348
24772
|
<span *ngIf="hasError" class="clr-sr-only">{{ commonStrings.keys.wizardStepError }}</span>
|
|
24349
24773
|
<span *ngIf="!hasError && isComplete" class="clr-sr-only">{{ commonStrings.keys.wizardStepSuccess }}</span>
|
|
24350
24774
|
</button>
|
|
24351
|
-
`, isInline: true, directives: [{ type:
|
|
24775
|
+
`, isInline: true, directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: CdsIconCustomTag, selector: "cds-icon" }, { type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
|
|
24352
24776
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrWizardStepnavItem, decorators: [{
|
|
24353
24777
|
type: Component,
|
|
24354
24778
|
args: [{
|
|
@@ -24416,7 +24840,7 @@ ClrWizardStepnav.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versi
|
|
|
24416
24840
|
{{ i + 1 }}
|
|
24417
24841
|
</div>
|
|
24418
24842
|
</div>
|
|
24419
|
-
`, isInline: true, components: [{ type: ClrWizardStepnavItem, selector: "[clr-wizard-stepnav-item]", inputs: ["page"] }], directives: [{ type:
|
|
24843
|
+
`, isInline: true, components: [{ type: ClrWizardStepnavItem, selector: "[clr-wizard-stepnav-item]", inputs: ["page"] }], directives: [{ type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
24420
24844
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrWizardStepnav, decorators: [{
|
|
24421
24845
|
type: Component,
|
|
24422
24846
|
args: [{
|
|
@@ -24838,7 +25262,7 @@ ClrWizard.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13
|
|
|
24838
25262
|
ButtonHubService,
|
|
24839
25263
|
HeaderActionService,
|
|
24840
25264
|
UNIQUE_ID_PROVIDER,
|
|
24841
|
-
], 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-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<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 [clrModalLabelledById]=\"wizardId\"\n>\n <nav class=\"modal-nav clr-wizard-stepnav-wrapper\">\n <h1 class=\"clr-wizard-title\" id=\"{{wizardId}}\"><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", "clrModalLabelledById"], outputs: ["clrModalOpenChange", "clrModalAlternateClose"] }, { type: ClrWizardStepnav, selector: "clr-wizard-stepnav" }], directives: [{ type:
|
|
25265
|
+
], 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-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<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 [clrModalLabelledById]=\"wizardId\"\n>\n <nav class=\"modal-nav clr-wizard-stepnav-wrapper\">\n <h1 class=\"clr-wizard-title\" id=\"{{wizardId}}\"><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", "clrModalLabelledById"], outputs: ["clrModalOpenChange", "clrModalAlternateClose"] }, { type: ClrWizardStepnav, selector: "clr-wizard-stepnav" }], directives: [{ type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrModalBody, selector: ".modal-body" }] });
|
|
24842
25266
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrWizard, decorators: [{
|
|
24843
25267
|
type: Component,
|
|
24844
25268
|
args: [{ selector: 'clr-wizard', providers: [
|
|
@@ -25417,7 +25841,7 @@ class ClrAccordionPanel {
|
|
|
25417
25841
|
}
|
|
25418
25842
|
}
|
|
25419
25843
|
ClrAccordionPanel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrAccordionPanel, deps: [{ token: ClrCommonStringsService }, { token: AccordionService }, { token: IfExpandService }, { token: UNIQUE_ID }], target: i0.ɵɵFactoryTarget.Component });
|
|
25420
|
-
ClrAccordionPanel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrAccordionPanel, selector: "clr-accordion-panel", inputs: { disabled: ["clrAccordionPanelDisabled", "disabled"], panelOpen: ["clrAccordionPanelOpen", "panelOpen"] }, outputs: { panelOpenChange: "clrAccordionPanelOpenChange" }, host: { properties: { "class.clr-accordion-panel": "true" } }, providers: [IfExpandService, UNIQUE_ID_PROVIDER], queries: [{ propertyName: "accordionDescription", predicate: ClrAccordionDescription }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"panel | async; let panel\">\n <div *ngIf=\"panel.status !== AccordionStatus.Inactive\" aria-live=\"assertive\" class=\"clr-sr-only\">\n <ng-container *ngIf=\"panel.status === AccordionStatus.Error\">{{commonStrings.keys.danger}}</ng-container>\n </div>\n\n <div [ngClass]=\"getPanelStateClasses(panel)\">\n <div class=\"clr-accordion-header\">\n <button\n type=\"button\"\n class=\"clr-accordion-header-button\"\n (click)=\"togglePanel()\"\n [id]=\"getAccordionHeaderId(panel.templateId)\"\n [disabled]=\"isAccordion && panel.disabled\"\n [attr.aria-disabled]=\"!isAccordion && panel.disabled\"\n [attr.aria-controls]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-expanded]=\"panel.open\"\n [class.clr-accordion-header-has-description]=\"(accordionDescription.changes | async)?.length || accordionDescription.length\"\n #headerButton\n >\n <span class=\"clr-sr-only\">\n <ng-container *ngIf=\"panel.status === AccordionStatus.Error\">{{commonStrings.keys.danger}}</ng-container>\n <ng-container *ngIf=\"panel.status === AccordionStatus.Complete\">{{commonStrings.keys.success}}</ng-container>\n </span>\n <span class=\"clr-accordion-status\">\n <cds-icon shape=\"angle\" direction=\"right\" class=\"clr-accordion-angle\"></cds-icon>\n <span class=\"clr-accordion-number\"></span>\n <cds-icon status=\"danger\" shape=\"exclamation-circle\" class=\"clr-accordion-error-icon\"></cds-icon>\n <cds-icon status=\"success\" shape=\"check-circle\" class=\"clr-accordion-complete-icon\"></cds-icon>\n </span>\n <ng-content select=\"clr-accordion-title, clr-step-title\"></ng-content>\n <ng-content select=\"clr-accordion-description, clr-step-description\"></ng-content>\n </button>\n </div>\n <div\n @skipInitialRender\n role=\"region\"\n [id]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-hidden]=\"!panel.open\"\n [attr.aria-labelledby]=\"getAccordionHeaderId(panel.templateId)\"\n >\n <div\n *ngIf=\"panel.open\"\n @toggle\n (@toggle.done)=\"collapsePanelOnAnimationDone(panel)\"\n class=\"clr-accordion-content\"\n >\n <div class=\"clr-accordion-inner-content\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n </div>\n</ng-container>\n", directives: [{ type:
|
|
25844
|
+
ClrAccordionPanel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrAccordionPanel, selector: "clr-accordion-panel", inputs: { disabled: ["clrAccordionPanelDisabled", "disabled"], panelOpen: ["clrAccordionPanelOpen", "panelOpen"] }, outputs: { panelOpenChange: "clrAccordionPanelOpenChange" }, host: { properties: { "class.clr-accordion-panel": "true" } }, providers: [IfExpandService, UNIQUE_ID_PROVIDER], queries: [{ propertyName: "accordionDescription", predicate: ClrAccordionDescription }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"panel | async; let panel\">\n <div *ngIf=\"panel.status !== AccordionStatus.Inactive\" aria-live=\"assertive\" class=\"clr-sr-only\">\n <ng-container *ngIf=\"panel.status === AccordionStatus.Error\">{{commonStrings.keys.danger}}</ng-container>\n </div>\n\n <div [ngClass]=\"getPanelStateClasses(panel)\">\n <div class=\"clr-accordion-header\">\n <button\n type=\"button\"\n class=\"clr-accordion-header-button\"\n (click)=\"togglePanel()\"\n [id]=\"getAccordionHeaderId(panel.templateId)\"\n [disabled]=\"isAccordion && panel.disabled\"\n [attr.aria-disabled]=\"!isAccordion && panel.disabled\"\n [attr.aria-controls]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-expanded]=\"panel.open\"\n [class.clr-accordion-header-has-description]=\"(accordionDescription.changes | async)?.length || accordionDescription.length\"\n #headerButton\n >\n <span class=\"clr-sr-only\">\n <ng-container *ngIf=\"panel.status === AccordionStatus.Error\">{{commonStrings.keys.danger}}</ng-container>\n <ng-container *ngIf=\"panel.status === AccordionStatus.Complete\">{{commonStrings.keys.success}}</ng-container>\n </span>\n <span class=\"clr-accordion-status\">\n <cds-icon shape=\"angle\" direction=\"right\" class=\"clr-accordion-angle\"></cds-icon>\n <span class=\"clr-accordion-number\"></span>\n <cds-icon status=\"danger\" shape=\"exclamation-circle\" class=\"clr-accordion-error-icon\"></cds-icon>\n <cds-icon status=\"success\" shape=\"check-circle\" class=\"clr-accordion-complete-icon\"></cds-icon>\n </span>\n <ng-content select=\"clr-accordion-title, clr-step-title\"></ng-content>\n <ng-content select=\"clr-accordion-description, clr-step-description\"></ng-content>\n </button>\n </div>\n <div\n @skipInitialRender\n role=\"region\"\n [id]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-hidden]=\"!panel.open\"\n [attr.aria-labelledby]=\"getAccordionHeaderId(panel.templateId)\"\n >\n <div\n *ngIf=\"panel.open\"\n @toggle\n (@toggle.done)=\"collapsePanelOnAnimationDone(panel)\"\n class=\"clr-accordion-content\"\n >\n <div class=\"clr-accordion-inner-content\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n </div>\n</ng-container>\n", directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: CdsIconCustomTag, selector: "cds-icon" }], pipes: { "async": i5.AsyncPipe }, animations: panelAnimation, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
25421
25845
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrAccordionPanel, decorators: [{
|
|
25422
25846
|
type: Component,
|
|
25423
25847
|
args: [{ selector: 'clr-accordion-panel', host: { '[class.clr-accordion-panel]': 'true' }, changeDetection: ChangeDetectionStrategy.OnPush, animations: panelAnimation, providers: [IfExpandService, UNIQUE_ID_PROVIDER], template: "<ng-container *ngIf=\"panel | async; let panel\">\n <div *ngIf=\"panel.status !== AccordionStatus.Inactive\" aria-live=\"assertive\" class=\"clr-sr-only\">\n <ng-container *ngIf=\"panel.status === AccordionStatus.Error\">{{commonStrings.keys.danger}}</ng-container>\n </div>\n\n <div [ngClass]=\"getPanelStateClasses(panel)\">\n <div class=\"clr-accordion-header\">\n <button\n type=\"button\"\n class=\"clr-accordion-header-button\"\n (click)=\"togglePanel()\"\n [id]=\"getAccordionHeaderId(panel.templateId)\"\n [disabled]=\"isAccordion && panel.disabled\"\n [attr.aria-disabled]=\"!isAccordion && panel.disabled\"\n [attr.aria-controls]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-expanded]=\"panel.open\"\n [class.clr-accordion-header-has-description]=\"(accordionDescription.changes | async)?.length || accordionDescription.length\"\n #headerButton\n >\n <span class=\"clr-sr-only\">\n <ng-container *ngIf=\"panel.status === AccordionStatus.Error\">{{commonStrings.keys.danger}}</ng-container>\n <ng-container *ngIf=\"panel.status === AccordionStatus.Complete\">{{commonStrings.keys.success}}</ng-container>\n </span>\n <span class=\"clr-accordion-status\">\n <cds-icon shape=\"angle\" direction=\"right\" class=\"clr-accordion-angle\"></cds-icon>\n <span class=\"clr-accordion-number\"></span>\n <cds-icon status=\"danger\" shape=\"exclamation-circle\" class=\"clr-accordion-error-icon\"></cds-icon>\n <cds-icon status=\"success\" shape=\"check-circle\" class=\"clr-accordion-complete-icon\"></cds-icon>\n </span>\n <ng-content select=\"clr-accordion-title, clr-step-title\"></ng-content>\n <ng-content select=\"clr-accordion-description, clr-step-description\"></ng-content>\n </button>\n </div>\n <div\n @skipInitialRender\n role=\"region\"\n [id]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-hidden]=\"!panel.open\"\n [attr.aria-labelledby]=\"getAccordionHeaderId(panel.templateId)\"\n >\n <div\n *ngIf=\"panel.open\"\n @toggle\n (@toggle.done)=\"collapsePanelOnAnimationDone(panel)\"\n class=\"clr-accordion-content\"\n >\n <div class=\"clr-accordion-inner-content\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n </div>\n</ng-container>\n" }]
|
|
@@ -25853,7 +26277,7 @@ class ClrStepperPanel extends ClrAccordionPanel {
|
|
|
25853
26277
|
}
|
|
25854
26278
|
}
|
|
25855
26279
|
ClrStepperPanel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", 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 });
|
|
25856
|
-
ClrStepperPanel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrStepperPanel, selector: "clr-stepper-panel", host: { properties: { "class.clr-accordion-panel": "true" } }, providers: [IfExpandService, UNIQUE_ID_PROVIDER], viewQueries: [{ propertyName: "headerButton", first: true, predicate: ["headerButton"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"panel | async; let panel\">\n <div *ngIf=\"panel.status !== AccordionStatus.Inactive\" aria-live=\"assertive\" class=\"clr-sr-only\">\n <ng-container *ngIf=\"panel.status === AccordionStatus.Error\">{{commonStrings.keys.danger}}</ng-container>\n </div>\n\n <div [ngClass]=\"getPanelStateClasses(panel)\">\n <div class=\"clr-accordion-header\">\n <button\n type=\"button\"\n class=\"clr-accordion-header-button\"\n (click)=\"togglePanel()\"\n [id]=\"getAccordionHeaderId(panel.templateId)\"\n [disabled]=\"isAccordion && panel.disabled\"\n [attr.aria-disabled]=\"!isAccordion && panel.disabled\"\n [attr.aria-controls]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-expanded]=\"panel.open\"\n [class.clr-accordion-header-has-description]=\"(accordionDescription.changes | async)?.length || accordionDescription.length\"\n #headerButton\n >\n <span class=\"clr-sr-only\">\n <ng-container *ngIf=\"panel.status === AccordionStatus.Error\">{{commonStrings.keys.danger}}</ng-container>\n <ng-container *ngIf=\"panel.status === AccordionStatus.Complete\">{{commonStrings.keys.success}}</ng-container>\n </span>\n <span class=\"clr-accordion-status\">\n <cds-icon shape=\"angle\" direction=\"right\" class=\"clr-accordion-angle\"></cds-icon>\n <span class=\"clr-accordion-number\"></span>\n <cds-icon status=\"danger\" shape=\"exclamation-circle\" class=\"clr-accordion-error-icon\"></cds-icon>\n <cds-icon status=\"success\" shape=\"check-circle\" class=\"clr-accordion-complete-icon\"></cds-icon>\n </span>\n <ng-content select=\"clr-accordion-title, clr-step-title\"></ng-content>\n <ng-content select=\"clr-accordion-description, clr-step-description\"></ng-content>\n </button>\n </div>\n <div\n @skipInitialRender\n role=\"region\"\n [id]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-hidden]=\"!panel.open\"\n [attr.aria-labelledby]=\"getAccordionHeaderId(panel.templateId)\"\n >\n <div\n *ngIf=\"panel.open\"\n @toggle\n (@toggle.done)=\"collapsePanelOnAnimationDone(panel)\"\n class=\"clr-accordion-content\"\n >\n <div class=\"clr-accordion-inner-content\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n </div>\n</ng-container>\n", directives: [{ type:
|
|
26280
|
+
ClrStepperPanel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrStepperPanel, selector: "clr-stepper-panel", host: { properties: { "class.clr-accordion-panel": "true" } }, providers: [IfExpandService, UNIQUE_ID_PROVIDER], viewQueries: [{ propertyName: "headerButton", first: true, predicate: ["headerButton"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"panel | async; let panel\">\n <div *ngIf=\"panel.status !== AccordionStatus.Inactive\" aria-live=\"assertive\" class=\"clr-sr-only\">\n <ng-container *ngIf=\"panel.status === AccordionStatus.Error\">{{commonStrings.keys.danger}}</ng-container>\n </div>\n\n <div [ngClass]=\"getPanelStateClasses(panel)\">\n <div class=\"clr-accordion-header\">\n <button\n type=\"button\"\n class=\"clr-accordion-header-button\"\n (click)=\"togglePanel()\"\n [id]=\"getAccordionHeaderId(panel.templateId)\"\n [disabled]=\"isAccordion && panel.disabled\"\n [attr.aria-disabled]=\"!isAccordion && panel.disabled\"\n [attr.aria-controls]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-expanded]=\"panel.open\"\n [class.clr-accordion-header-has-description]=\"(accordionDescription.changes | async)?.length || accordionDescription.length\"\n #headerButton\n >\n <span class=\"clr-sr-only\">\n <ng-container *ngIf=\"panel.status === AccordionStatus.Error\">{{commonStrings.keys.danger}}</ng-container>\n <ng-container *ngIf=\"panel.status === AccordionStatus.Complete\">{{commonStrings.keys.success}}</ng-container>\n </span>\n <span class=\"clr-accordion-status\">\n <cds-icon shape=\"angle\" direction=\"right\" class=\"clr-accordion-angle\"></cds-icon>\n <span class=\"clr-accordion-number\"></span>\n <cds-icon status=\"danger\" shape=\"exclamation-circle\" class=\"clr-accordion-error-icon\"></cds-icon>\n <cds-icon status=\"success\" shape=\"check-circle\" class=\"clr-accordion-complete-icon\"></cds-icon>\n </span>\n <ng-content select=\"clr-accordion-title, clr-step-title\"></ng-content>\n <ng-content select=\"clr-accordion-description, clr-step-description\"></ng-content>\n </button>\n </div>\n <div\n @skipInitialRender\n role=\"region\"\n [id]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-hidden]=\"!panel.open\"\n [attr.aria-labelledby]=\"getAccordionHeaderId(panel.templateId)\"\n >\n <div\n *ngIf=\"panel.open\"\n @toggle\n (@toggle.done)=\"collapsePanelOnAnimationDone(panel)\"\n class=\"clr-accordion-content\"\n >\n <div class=\"clr-accordion-inner-content\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n </div>\n</ng-container>\n", directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: CdsIconCustomTag, selector: "cds-icon" }], pipes: { "async": i5.AsyncPipe }, animations: stepAnimation, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
25857
26281
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrStepperPanel, decorators: [{
|
|
25858
26282
|
type: Component,
|
|
25859
26283
|
args: [{ selector: 'clr-stepper-panel', host: { '[class.clr-accordion-panel]': 'true' }, changeDetection: ChangeDetectionStrategy.OnPush, animations: stepAnimation, providers: [IfExpandService, UNIQUE_ID_PROVIDER], template: "<ng-container *ngIf=\"panel | async; let panel\">\n <div *ngIf=\"panel.status !== AccordionStatus.Inactive\" aria-live=\"assertive\" class=\"clr-sr-only\">\n <ng-container *ngIf=\"panel.status === AccordionStatus.Error\">{{commonStrings.keys.danger}}</ng-container>\n </div>\n\n <div [ngClass]=\"getPanelStateClasses(panel)\">\n <div class=\"clr-accordion-header\">\n <button\n type=\"button\"\n class=\"clr-accordion-header-button\"\n (click)=\"togglePanel()\"\n [id]=\"getAccordionHeaderId(panel.templateId)\"\n [disabled]=\"isAccordion && panel.disabled\"\n [attr.aria-disabled]=\"!isAccordion && panel.disabled\"\n [attr.aria-controls]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-expanded]=\"panel.open\"\n [class.clr-accordion-header-has-description]=\"(accordionDescription.changes | async)?.length || accordionDescription.length\"\n #headerButton\n >\n <span class=\"clr-sr-only\">\n <ng-container *ngIf=\"panel.status === AccordionStatus.Error\">{{commonStrings.keys.danger}}</ng-container>\n <ng-container *ngIf=\"panel.status === AccordionStatus.Complete\">{{commonStrings.keys.success}}</ng-container>\n </span>\n <span class=\"clr-accordion-status\">\n <cds-icon shape=\"angle\" direction=\"right\" class=\"clr-accordion-angle\"></cds-icon>\n <span class=\"clr-accordion-number\"></span>\n <cds-icon status=\"danger\" shape=\"exclamation-circle\" class=\"clr-accordion-error-icon\"></cds-icon>\n <cds-icon status=\"success\" shape=\"check-circle\" class=\"clr-accordion-complete-icon\"></cds-icon>\n </span>\n <ng-content select=\"clr-accordion-title, clr-step-title\"></ng-content>\n <ng-content select=\"clr-accordion-description, clr-step-description\"></ng-content>\n </button>\n </div>\n <div\n @skipInitialRender\n role=\"region\"\n [id]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-hidden]=\"!panel.open\"\n [attr.aria-labelledby]=\"getAccordionHeaderId(panel.templateId)\"\n >\n <div\n *ngIf=\"panel.open\"\n @toggle\n (@toggle.done)=\"collapsePanelOnAnimationDone(panel)\"\n class=\"clr-accordion-content\"\n >\n <div class=\"clr-accordion-inner-content\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n </div>\n</ng-container>\n" }]
|
|
@@ -26172,7 +26596,7 @@ ClrProgressBar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version:
|
|
|
26172
26596
|
ClrProgressBar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", 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: `
|
|
26173
26597
|
<progress [id]="id" [attr.max]="max" [attr.value]="value" [attr.data-displayval]="displayValue"></progress>
|
|
26174
26598
|
<span *ngIf="displayStringValue()">{{ displayValue }}</span>
|
|
26175
|
-
`, isInline: true, directives: [{ type:
|
|
26599
|
+
`, isInline: true, directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
26176
26600
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrProgressBar, decorators: [{
|
|
26177
26601
|
type: Component,
|
|
26178
26602
|
args: [{
|
|
@@ -26444,7 +26868,7 @@ ClrTimelineStep.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
|
|
|
26444
26868
|
<ng-template #processing>
|
|
26445
26869
|
<clr-spinner clrMedium [attr.aria-label]="iconAriaLabel"></clr-spinner>
|
|
26446
26870
|
</ng-template>
|
|
26447
|
-
`, isInline: true, components: [{ type: ClrSpinner, selector: "clr-spinner", inputs: ["clrInline", "clrInverse", "clrSmall", "clrMedium"] }], directives: [{ type:
|
|
26871
|
+
`, isInline: true, components: [{ type: ClrSpinner, selector: "clr-spinner", inputs: ["clrInline", "clrInverse", "clrSmall", "clrMedium"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
26448
26872
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrTimelineStep, decorators: [{
|
|
26449
26873
|
type: Component,
|
|
26450
26874
|
args: [{
|
|
@@ -26891,5 +27315,5 @@ const CLR_MENU_POSITIONS = [
|
|
|
26891
27315
|
* Generated bundle index. Do not edit.
|
|
26892
27316
|
*/
|
|
26893
27317
|
|
|
26894
|
-
export { CLR_ALERT_DIRECTIVES, CLR_BUTTON_GROUP_DIRECTIVES, CLR_DATAGRID_DIRECTIVES, CLR_DATEPICKER_DIRECTIVES, CLR_DRAG_AND_DROP_DIRECTIVES, CLR_DROPDOWN_DIRECTIVES, CLR_ICON_DIRECTIVES, CLR_LAYOUT_DIRECTIVES, CLR_LOADING_BUTTON_DIRECTIVES, CLR_LOADING_DIRECTIVES, CLR_MENU_POSITIONS, CLR_MODAL_DIRECTIVES, CLR_NAVIGATION_DIRECTIVES, CLR_PROGRESS_BAR_DIRECTIVES, CLR_SIGNPOST_DIRECTIVES, CLR_SPINNER_DIRECTIVES, CLR_STACK_VIEW_DIRECTIVES, CLR_TABS_DIRECTIVES, CLR_TOOLTIP_DIRECTIVES, CLR_TREE_VIEW_DIRECTIVES, CLR_VERTICAL_NAV_DIRECTIVES, CLR_WIZARD_DIRECTIVES, CONDITIONAL_DIRECTIVES, CUSTOM_BUTTON_TYPES, CdsIconCustomTag, ClarityModule, ClrAbstractContainer, ClrAccordion, ClrAccordionContent, ClrAccordionDescription, ClrAccordionModule, ClrAccordionPanel, ClrAccordionTitle, ClrAlert, ClrAlertItem, ClrAlertModule, ClrAlertText, ClrAlerts, ClrAlertsPager, ClrAlignment, ClrAriaLivePoliteness, ClrAriaLiveService, ClrAxis, ClrButton, ClrButtonGroup, ClrButtonGroupModule, ClrButtonModule, ClrCalendar, ClrCheckbox, ClrCheckboxContainer, ClrCheckboxModule, ClrCheckboxWrapper, ClrCombobox, ClrComboboxContainer, ClrComboboxModule, ClrCommonFormsModule, ClrCommonStringsService, ClrConditionalModule, ClrControl, ClrControlContainer, ClrControlError, ClrControlHelper, ClrControlSuccess, ClrDataModule, ClrDatagrid, ClrDatagridActionBar, ClrDatagridActionOverflow, ClrDatagridCell, ClrDatagridColumn, ClrDatagridColumnSeparator, ClrDatagridColumnToggle, ClrDatagridColumnToggleButton, ClrDatagridColumnToggleTitle, ClrDatagridDetail, ClrDatagridDetailBody, ClrDatagridDetailHeader, ClrDatagridFilter, ClrDatagridFooter, ClrDatagridHideableColumn, ClrDatagridItems, ClrDatagridItemsTrackBy, ClrDatagridModule, ClrDatagridPageSize, ClrDatagridPagination, ClrDatagridPlaceholder, ClrDatagridRow, ClrDatagridRowDetail, ClrDatagridSortOrder, ClrDatalist, ClrDatalistContainer, ClrDatalistInput, ClrDatalistModule, ClrDateContainer, ClrDateInput, ClrDatepickerModule, ClrDatepickerViewManager, ClrDay, ClrDaypicker, ClrDragAndDropModule, ClrDragEvent, ClrDragHandle, ClrDraggable, ClrDraggableGhost, ClrDropdown, ClrDropdownItem, ClrDropdownMenu, ClrDropdownModule, ClrDropdownTrigger, ClrDroppable, ClrEmphasisModule, ClrExpandableAnimation, ClrFocusOnViewInit, ClrFocusOnViewInitModule, ClrForm, ClrFormLayout, ClrFormsModule, ClrHeader, ClrIconCustomTag, ClrIconModule, ClrIfActive, ClrIfDetail, ClrIfDragged, ClrIfError, ClrIfExpanded, ClrIfOpen, ClrIfSuccess, ClrInput, ClrInputContainer, ClrInputModule, ClrLabel, ClrLayout, ClrLayoutModule, ClrLoading, ClrLoadingButton, ClrLoadingButtonModule, ClrLoadingModule, ClrLoadingState, ClrMainContainer, ClrMainContainerModule, ClrModal, ClrModalBody, ClrModalModule, ClrMonthpicker, ClrNavLevel, ClrNavigationModule, ClrOption, ClrOptionItems, ClrOptionSelected, ClrOptions, ClrPassword, ClrPasswordContainer, ClrPasswordModule, ClrPopoverAnchor, ClrPopoverContent, ClrPopoverEventsService, ClrPopoverModule, ClrPopoverPositionService, ClrPopoverToggleService, ClrProgressBar, ClrProgressBarModule, ClrRadio, ClrRadioContainer, ClrRadioModule, ClrRadioWrapper, ClrRange, ClrRangeContainer, ClrRangeModule, ClrRecursiveForOf, ClrSelect, ClrSelectContainer, ClrSelectModule, ClrSelectedState, ClrSide, ClrSignpost, ClrSignpostContent, ClrSignpostModule, ClrSignpostTrigger, ClrSpinner, ClrSpinnerModule, ClrStackBlock, ClrStackContentInput, ClrStackHeader, ClrStackInput, ClrStackSelect, ClrStackView, ClrStackViewCustomTags, ClrStackViewLabel, ClrStackViewModule, ClrStepButton, ClrStepButtonType, ClrStepper, ClrStepperModule, ClrStepperPanel, ClrTab, ClrTabContent, ClrTabLink, ClrTabOverflowContent, ClrTabs, ClrTabsModule, ClrTextarea, ClrTextareaContainer, ClrTextareaModule, ClrTimeline, ClrTimelineLayout, ClrTimelineModule, ClrTimelineStep, ClrTimelineStepDescription, ClrTimelineStepHeader, ClrTimelineStepState, ClrTimelineStepTitle, ClrTooltip, ClrTooltipContent, ClrTooltipModule, ClrTooltipTrigger, ClrTree, ClrTreeNode, ClrTreeNodeLink, ClrTreeViewModule, ClrVerticalNav, ClrVerticalNavGroup, ClrVerticalNavGroupChildren, ClrVerticalNavIcon, ClrVerticalNavLink, ClrVerticalNavModule, ClrWizard, ClrWizardButton, ClrWizardCustomTags, ClrWizardHeaderAction, ClrWizardModule, ClrWizardPage, ClrWizardPageButtons, ClrWizardPageHeaderActions, ClrWizardPageNavTitle, ClrWizardPageTitle, ClrWizardStepnav, ClrWizardStepnavItem, ClrYearpicker, DEFAULT_BUTTON_TYPES, DatagridNumericFilter, DatagridPropertyComparator, DatagridPropertyNumericFilter, DatagridPropertyStringFilter, DatagridStringFilter, EXPANDABLE_ANIMATION_DIRECTIVES, FOCUS_ON_VIEW_INIT, FOCUS_ON_VIEW_INIT_DIRECTIVES, IS_TOGGLE, IS_TOGGLE_PROVIDER, LoadingListener, MainContainerWillyWonka, NavDetectionOompaLoompa, TOGGLE_SERVICE, TOGGLE_SERVICE_PROVIDER, ToggleServiceFactory, WrappedFormControl, collapse, commonStringsDefault, fade, fadeSlide, isToggleFactory, slide, AccordionOompaLoompa as ÇlrAccordionOompaLoompa, AccordionWillyWonka as ÇlrAccordionWillyWonka, ActionableOompaLoompa as ÇlrActionableOompaLoompa, ActiveOompaLoompa as ÇlrActiveOompaLoompa, ClrFocusTrapModule as ÇlrClrFocusTrapModule, ClrPopoverCloseButton as ÇlrClrPopoverCloseButton, ClrPopoverModuleNext as ÇlrClrPopoverModuleNext, ClrPopoverOpenCloseButton as ÇlrClrPopoverOpenCloseButton, DatagridCellRenderer as ÇlrDatagridCellRenderer, DatagridDetailRegisterer as ÇlrDatagridDetailRegisterer, DatagridHeaderRenderer as ÇlrDatagridHeaderRenderer, DatagridMainRenderer as ÇlrDatagridMainRenderer, DatagridRowRenderer as ÇlrDatagridRowRenderer, DatagridWillyWonka as ÇlrDatagridWillyWonka, ExpandableOompaLoompa as ÇlrExpandableOompaLoompa, FocusTrapDirective as ÇlrFocusTrapDirective, FocusTrapTracker as ÇlrFocusTrapTracker, StepperOompaLoompa as ÇlrStepperOompaLoompa, StepperWillyWonka as ÇlrStepperWillyWonka, TabsWillyWonka as ÇlrTabsWillyWonka, WrappedCell as ÇlrWrappedCell, WrappedColumn as ÇlrWrappedColumn, WrappedRow as ÇlrWrappedRow };
|
|
27318
|
+
export { CLR_ALERT_DIRECTIVES, CLR_BUTTON_GROUP_DIRECTIVES, CLR_DATAGRID_DIRECTIVES, CLR_DATEPICKER_DIRECTIVES, CLR_DRAG_AND_DROP_DIRECTIVES, CLR_DROPDOWN_DIRECTIVES, CLR_ICON_DIRECTIVES, CLR_LAYOUT_DIRECTIVES, CLR_LOADING_BUTTON_DIRECTIVES, CLR_LOADING_DIRECTIVES, CLR_MENU_POSITIONS, CLR_MODAL_DIRECTIVES, CLR_NAVIGATION_DIRECTIVES, CLR_PROGRESS_BAR_DIRECTIVES, CLR_SIGNPOST_DIRECTIVES, CLR_SPINNER_DIRECTIVES, CLR_STACK_VIEW_DIRECTIVES, CLR_TABS_DIRECTIVES, CLR_TOOLTIP_DIRECTIVES, CLR_TREE_VIEW_DIRECTIVES, CLR_VERTICAL_NAV_DIRECTIVES, CLR_WIZARD_DIRECTIVES, CONDITIONAL_DIRECTIVES, CUSTOM_BUTTON_TYPES, CdsIconCustomTag, ClarityModule, ClrAbstractContainer, ClrAccordion, ClrAccordionContent, ClrAccordionDescription, ClrAccordionModule, ClrAccordionPanel, ClrAccordionTitle, ClrAlert, ClrAlertItem, ClrAlertModule, ClrAlertText, ClrAlerts, ClrAlertsPager, ClrAlignment, ClrAriaLivePoliteness, ClrAriaLiveService, ClrAxis, ClrButton, ClrButtonGroup, ClrButtonGroupModule, ClrButtonModule, ClrCalendar, ClrCheckbox, ClrCheckboxContainer, ClrCheckboxModule, ClrCheckboxWrapper, ClrCombobox, ClrComboboxContainer, ClrComboboxModule, ClrCommonFormsModule, ClrCommonStringsService, ClrConditionalModule, ClrControl, ClrControlContainer, ClrControlError, ClrControlHelper, ClrControlSuccess, ClrDataModule, ClrDatagrid, ClrDatagridActionBar, ClrDatagridActionOverflow, ClrDatagridCell, ClrDatagridColumn, ClrDatagridColumnSeparator, ClrDatagridColumnToggle, ClrDatagridColumnToggleButton, ClrDatagridColumnToggleTitle, ClrDatagridDetail, ClrDatagridDetailBody, ClrDatagridDetailHeader, ClrDatagridFilter, ClrDatagridFooter, ClrDatagridHideableColumn, ClrDatagridItems, ClrDatagridItemsTrackBy, ClrDatagridModule, ClrDatagridPageSize, ClrDatagridPagination, ClrDatagridPlaceholder, ClrDatagridRow, ClrDatagridRowDetail, ClrDatagridSortOrder, ClrDatalist, ClrDatalistContainer, ClrDatalistInput, ClrDatalistModule, ClrDateContainer, ClrDateInput, ClrDatepickerModule, ClrDatepickerViewManager, ClrDay, ClrDaypicker, ClrDestroyService, ClrDragAndDropModule, ClrDragEvent, ClrDragHandle, ClrDraggable, ClrDraggableGhost, ClrDropdown, ClrDropdownItem, ClrDropdownMenu, ClrDropdownModule, ClrDropdownTrigger, ClrDroppable, ClrEmphasisModule, ClrExpandableAnimation, ClrFocusOnViewInit, ClrFocusOnViewInitModule, ClrForm, ClrFormLayout, ClrFormsModule, ClrHeader, ClrIconCustomTag, ClrIconModule, ClrIfActive, ClrIfDetail, ClrIfDragged, ClrIfError, ClrIfExpanded, ClrIfOpen, ClrIfSuccess, ClrInput, ClrInputContainer, ClrInputModule, ClrLabel, ClrLayout, ClrLayoutModule, ClrLoading, ClrLoadingButton, ClrLoadingButtonModule, ClrLoadingModule, ClrLoadingState, ClrMainContainer, ClrMainContainerModule, ClrModal, ClrModalBody, ClrModalModule, ClrMonthpicker, ClrNavLevel, ClrNavigationModule, ClrOption, ClrOptionItems, ClrOptionSelected, ClrOptions, ClrPassword, ClrPasswordContainer, ClrPasswordModule, ClrPopoverAnchor, ClrPopoverContent, ClrPopoverEventsService, ClrPopoverModule, ClrPopoverPositionService, ClrPopoverToggleService, ClrProgressBar, ClrProgressBarModule, ClrRadio, ClrRadioContainer, ClrRadioModule, ClrRadioWrapper, ClrRange, ClrRangeContainer, ClrRangeModule, ClrRecursiveForOf, ClrSelect, ClrSelectContainer, ClrSelectModule, ClrSelectedState, ClrSide, ClrSignpost, ClrSignpostContent, ClrSignpostModule, ClrSignpostTrigger, ClrSpinner, ClrSpinnerModule, ClrStackBlock, ClrStackContentInput, ClrStackHeader, ClrStackInput, ClrStackSelect, ClrStackView, ClrStackViewCustomTags, ClrStackViewLabel, ClrStackViewModule, ClrStepButton, ClrStepButtonType, ClrStepper, ClrStepperModule, ClrStepperPanel, ClrTab, ClrTabContent, ClrTabLink, ClrTabOverflowContent, ClrTabs, ClrTabsModule, ClrTextarea, ClrTextareaContainer, ClrTextareaModule, ClrTimeline, ClrTimelineLayout, ClrTimelineModule, ClrTimelineStep, ClrTimelineStepDescription, ClrTimelineStepHeader, ClrTimelineStepState, ClrTimelineStepTitle, ClrTooltip, ClrTooltipContent, ClrTooltipModule, ClrTooltipTrigger, ClrTree, ClrTreeNode, ClrTreeNodeLink, ClrTreeViewModule, ClrVerticalNav, ClrVerticalNavGroup, ClrVerticalNavGroupChildren, ClrVerticalNavIcon, ClrVerticalNavLink, ClrVerticalNavModule, ClrWizard, ClrWizardButton, ClrWizardCustomTags, ClrWizardHeaderAction, ClrWizardModule, ClrWizardPage, ClrWizardPageButtons, ClrWizardPageHeaderActions, ClrWizardPageNavTitle, ClrWizardPageTitle, ClrWizardStepnav, ClrWizardStepnavItem, ClrYearpicker, DEFAULT_BUTTON_TYPES, DatagridNumericFilter, DatagridPropertyComparator, DatagridPropertyNumericFilter, DatagridPropertyStringFilter, DatagridStringFilter, EXPANDABLE_ANIMATION_DIRECTIVES, FOCUS_ON_VIEW_INIT, FOCUS_ON_VIEW_INIT_DIRECTIVES, IS_TOGGLE, IS_TOGGLE_PROVIDER, LoadingListener, MainContainerWillyWonka, NavDetectionOompaLoompa, TOGGLE_SERVICE, TOGGLE_SERVICE_PROVIDER, ToggleServiceFactory, WrappedFormControl, collapse, commonStringsDefault, fade, fadeSlide, isToggleFactory, slide, AccordionOompaLoompa as ÇlrAccordionOompaLoompa, AccordionWillyWonka as ÇlrAccordionWillyWonka, ActionableOompaLoompa as ÇlrActionableOompaLoompa, ActiveOompaLoompa as ÇlrActiveOompaLoompa, ClrFocusTrapModule as ÇlrClrFocusTrapModule, ClrPopoverCloseButton as ÇlrClrPopoverCloseButton, ClrPopoverModuleNext as ÇlrClrPopoverModuleNext, ClrPopoverOpenCloseButton as ÇlrClrPopoverOpenCloseButton, DatagridCellRenderer as ÇlrDatagridCellRenderer, DatagridDetailRegisterer as ÇlrDatagridDetailRegisterer, DatagridHeaderRenderer as ÇlrDatagridHeaderRenderer, DatagridMainRenderer as ÇlrDatagridMainRenderer, DatagridRowRenderer as ÇlrDatagridRowRenderer, DatagridWillyWonka as ÇlrDatagridWillyWonka, ExpandableOompaLoompa as ÇlrExpandableOompaLoompa, FocusTrapDirective as ÇlrFocusTrapDirective, FocusTrapTracker as ÇlrFocusTrapTracker, StepperOompaLoompa as ÇlrStepperOompaLoompa, StepperWillyWonka as ÇlrStepperWillyWonka, TabsWillyWonka as ÇlrTabsWillyWonka, WrappedCell as ÇlrWrappedCell, WrappedColumn as ÇlrWrappedColumn, WrappedRow as ÇlrWrappedRow };
|
|
26895
27319
|
//# sourceMappingURL=clr-angular.mjs.map
|