@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/fesm2020/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
|
/*
|
|
@@ -785,6 +787,7 @@ class ClrPopoverContent {
|
|
|
785
787
|
this.smartEventsService = smartEventsService;
|
|
786
788
|
this.smartOpenService = smartOpenService;
|
|
787
789
|
this.subscriptions = [];
|
|
790
|
+
this.removeClickListenerFn = null;
|
|
788
791
|
this.shouldRealign = false;
|
|
789
792
|
// Check-collector pattern:
|
|
790
793
|
// In order to get accurate content height/width values, we cannot calculate alignment offsets until
|
|
@@ -840,6 +843,10 @@ class ClrPopoverContent {
|
|
|
840
843
|
if (!this.view) {
|
|
841
844
|
return;
|
|
842
845
|
}
|
|
846
|
+
if (this.removeClickListenerFn) {
|
|
847
|
+
this.removeClickListenerFn();
|
|
848
|
+
this.removeClickListenerFn = null;
|
|
849
|
+
}
|
|
843
850
|
this.view.rootNodes.forEach(node => this.renderer.removeChild(this.document.body, node));
|
|
844
851
|
this.container.clear();
|
|
845
852
|
delete this.view;
|
|
@@ -854,16 +861,17 @@ class ClrPopoverContent {
|
|
|
854
861
|
addContent() {
|
|
855
862
|
// Create the view container
|
|
856
863
|
this.view = this.container.createEmbeddedView(this.template);
|
|
857
|
-
|
|
858
|
-
this.
|
|
864
|
+
const [rootNode] = this.view.rootNodes;
|
|
865
|
+
this.smartEventsService.contentRef = rootNode; // So we know where/what to set close focus on
|
|
866
|
+
this.renderer.addClass(rootNode, 'clr-popover-content');
|
|
859
867
|
// Reset to the begining of the document to be available for sizing/positioning calculations.
|
|
860
868
|
// If we add new content to the bottom it triggers changes in the layout that may lead to false anchor
|
|
861
869
|
// coordinates values.
|
|
862
|
-
this.renderer.setStyle(
|
|
863
|
-
this.renderer.setStyle(
|
|
870
|
+
this.renderer.setStyle(rootNode, 'top', '0px');
|
|
871
|
+
this.renderer.setStyle(rootNode, 'left', '0px');
|
|
864
872
|
// We need to hide it during the calculation phase, while it's not yet finally positioned.
|
|
865
|
-
this.renderer.setStyle(
|
|
866
|
-
this.renderer.listen(
|
|
873
|
+
this.renderer.setStyle(rootNode, 'opacity', '0');
|
|
874
|
+
this.removeClickListenerFn = this.renderer.listen(rootNode, 'click', event => {
|
|
867
875
|
this.smartOpenService.openEvent = event;
|
|
868
876
|
});
|
|
869
877
|
this.view.rootNodes.forEach(node => {
|
|
@@ -893,7 +901,7 @@ ClrPopoverContent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", vers
|
|
|
893
901
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrPopoverContent, decorators: [{
|
|
894
902
|
type: Directive,
|
|
895
903
|
args: [{ selector: '[clrPopoverContent]' }]
|
|
896
|
-
}], ctorParameters: function () { return [{ type:
|
|
904
|
+
}], ctorParameters: function () { return [{ type: Document, decorators: [{
|
|
897
905
|
type: Inject,
|
|
898
906
|
args: [DOCUMENT]
|
|
899
907
|
}] }, { type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: i0.Renderer2 }, { type: ClrPopoverPositionService }, { type: ClrPopoverEventsService }, { type: ClrPopoverToggleService }]; }, propDecorators: { open: [{
|
|
@@ -1229,7 +1237,7 @@ ClrButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13
|
|
|
1229
1237
|
<ng-content></ng-content>
|
|
1230
1238
|
</button>
|
|
1231
1239
|
</ng-template>
|
|
1232
|
-
`, isInline: true, directives: [{ type:
|
|
1240
|
+
`, isInline: true, directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
1233
1241
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrButton, decorators: [{
|
|
1234
1242
|
type: Component,
|
|
1235
1243
|
args: [{
|
|
@@ -1296,6 +1304,47 @@ const UNIQUE_ID_PROVIDER = {
|
|
|
1296
1304
|
useFactory: uniqueIdFactory,
|
|
1297
1305
|
};
|
|
1298
1306
|
|
|
1307
|
+
/*
|
|
1308
|
+
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
1309
|
+
* This software is released under MIT license.
|
|
1310
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
1311
|
+
*/
|
|
1312
|
+
/**
|
|
1313
|
+
* @description
|
|
1314
|
+
*
|
|
1315
|
+
* Developers should explicitly add this service to providers; it then can be injected
|
|
1316
|
+
* into a constructor and used as a notifier for the `takeUntil` operator. This eliminates
|
|
1317
|
+
* the need for boilerplates with subscriptions, and we don't need to implement the `OnDestroy`
|
|
1318
|
+
* interface and teardown subscriptions there.
|
|
1319
|
+
*
|
|
1320
|
+
* This can be used as follows:
|
|
1321
|
+
* ```ts
|
|
1322
|
+
* @Component({
|
|
1323
|
+
* selector: 'clr-button-group',
|
|
1324
|
+
* templateUrl: 'button-group.html',
|
|
1325
|
+
* providers: [ClrDestroyService],
|
|
1326
|
+
* })
|
|
1327
|
+
* export class ClrButtonGroup {
|
|
1328
|
+
* constructor(public buttonGroupNewService: ButtonInGroupService, private destroy$: ClrDestroyService) {}
|
|
1329
|
+
*
|
|
1330
|
+
* ngAfterContentInit() {
|
|
1331
|
+
* this.buttonGroupNewService.changes.pipe(takeUntil(this.destroy$)).subscribe(button => this.rearrangeButton(button));
|
|
1332
|
+
* }
|
|
1333
|
+
* }
|
|
1334
|
+
* ```
|
|
1335
|
+
*/
|
|
1336
|
+
class ClrDestroyService extends Subject {
|
|
1337
|
+
ngOnDestroy() {
|
|
1338
|
+
this.next();
|
|
1339
|
+
this.complete();
|
|
1340
|
+
}
|
|
1341
|
+
}
|
|
1342
|
+
ClrDestroyService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDestroyService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
1343
|
+
ClrDestroyService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDestroyService });
|
|
1344
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDestroyService, decorators: [{
|
|
1345
|
+
type: Injectable
|
|
1346
|
+
}] });
|
|
1347
|
+
|
|
1299
1348
|
/*
|
|
1300
1349
|
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
1301
1350
|
* This software is released under MIT license.
|
|
@@ -1523,11 +1572,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
1523
1572
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
1524
1573
|
*/
|
|
1525
1574
|
class ClrButtonGroup {
|
|
1526
|
-
constructor(buttonGroupNewService, toggleService, popoverId, commonStrings) {
|
|
1575
|
+
constructor(buttonGroupNewService, toggleService, popoverId, commonStrings, destroy$) {
|
|
1527
1576
|
this.buttonGroupNewService = buttonGroupNewService;
|
|
1528
1577
|
this.toggleService = toggleService;
|
|
1529
1578
|
this.popoverId = popoverId;
|
|
1530
1579
|
this.commonStrings = commonStrings;
|
|
1580
|
+
this.destroy$ = destroy$;
|
|
1531
1581
|
this.popoverPosition = ClrPopoverPositions['bottom-left'];
|
|
1532
1582
|
this.inlineButtons = [];
|
|
1533
1583
|
this.menuButtons = [];
|
|
@@ -1542,7 +1592,7 @@ class ClrButtonGroup {
|
|
|
1542
1592
|
*/
|
|
1543
1593
|
ngAfterContentInit() {
|
|
1544
1594
|
this.initializeButtons();
|
|
1545
|
-
this.buttonGroupNewService.changes.subscribe(button => this.rearrangeButton(button));
|
|
1595
|
+
this.buttonGroupNewService.changes.pipe(takeUntil(this.destroy$)).subscribe(button => this.rearrangeButton(button));
|
|
1546
1596
|
this.buttons.changes.subscribe(() => {
|
|
1547
1597
|
this.initializeButtons();
|
|
1548
1598
|
});
|
|
@@ -1612,14 +1662,15 @@ class ClrButtonGroup {
|
|
|
1612
1662
|
this.popoverPosition = ClrPopoverPositions[this._menuPosition];
|
|
1613
1663
|
}
|
|
1614
1664
|
}
|
|
1615
|
-
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 });
|
|
1665
|
+
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 });
|
|
1616
1666
|
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: [
|
|
1617
1667
|
ButtonInGroupService,
|
|
1618
1668
|
UNIQUE_ID_PROVIDER,
|
|
1619
1669
|
ClrPopoverToggleService,
|
|
1620
1670
|
ClrPopoverEventsService,
|
|
1621
1671
|
ClrPopoverPositionService,
|
|
1622
|
-
|
|
1672
|
+
ClrDestroyService,
|
|
1673
|
+
], 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"] }] });
|
|
1623
1674
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrButtonGroup, decorators: [{
|
|
1624
1675
|
type: Component,
|
|
1625
1676
|
args: [{ selector: 'clr-button-group', providers: [
|
|
@@ -1628,11 +1679,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
1628
1679
|
ClrPopoverToggleService,
|
|
1629
1680
|
ClrPopoverEventsService,
|
|
1630
1681
|
ClrPopoverPositionService,
|
|
1682
|
+
ClrDestroyService,
|
|
1631
1683
|
], 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" }]
|
|
1632
1684
|
}], ctorParameters: function () { return [{ type: ButtonInGroupService }, { type: ClrPopoverToggleService }, { type: undefined, decorators: [{
|
|
1633
1685
|
type: Inject,
|
|
1634
1686
|
args: [UNIQUE_ID]
|
|
1635
|
-
}] }, { type: ClrCommonStringsService }]; }, propDecorators: { buttons: [{
|
|
1687
|
+
}] }, { type: ClrCommonStringsService }, { type: ClrDestroyService }]; }, propDecorators: { buttons: [{
|
|
1636
1688
|
type: ContentChildren,
|
|
1637
1689
|
args: [ClrButton]
|
|
1638
1690
|
}], menuPosition: [{
|
|
@@ -1729,7 +1781,7 @@ ClrLoadingButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versi
|
|
|
1729
1781
|
<ng-content></ng-content>
|
|
1730
1782
|
</span>
|
|
1731
1783
|
</ng-container>
|
|
1732
|
-
`, isInline: true, directives: [{ type:
|
|
1784
|
+
`, isInline: true, directives: [{ type: i5.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i5.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], animations: [
|
|
1733
1785
|
trigger('defaultButton', [
|
|
1734
1786
|
transition(':enter', [style({ opacity: 0 }), animate('200ms 100ms ease-in', style({ opacity: 1 }))]),
|
|
1735
1787
|
// TODO: see if we can get leave animation to work before spinner's enter animation
|
|
@@ -2679,7 +2731,7 @@ ClrControlContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
|
|
|
2679
2731
|
<ng-content select="clr-control-error" *ngIf="showInvalid"></ng-content>
|
|
2680
2732
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
2681
2733
|
</div>
|
|
2682
|
-
`, isInline: true, directives: [{ type:
|
|
2734
|
+
`, 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" }] });
|
|
2683
2735
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrControlContainer, decorators: [{
|
|
2684
2736
|
type: Component,
|
|
2685
2737
|
args: [{
|
|
@@ -3055,7 +3107,7 @@ ClrCheckboxWrapper.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
|
|
|
3055
3107
|
<ng-content select="[clrCheckbox],[clrToggle]"></ng-content>
|
|
3056
3108
|
<ng-content select="label"></ng-content>
|
|
3057
3109
|
<label *ngIf="!label"></label>
|
|
3058
|
-
`, isInline: true, directives: [{ type:
|
|
3110
|
+
`, isInline: true, directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrLabel, selector: "label", inputs: ["for"] }] });
|
|
3059
3111
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrCheckboxWrapper, decorators: [{
|
|
3060
3112
|
type: Component,
|
|
3061
3113
|
args: [{
|
|
@@ -3181,7 +3233,7 @@ ClrCheckboxContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
3181
3233
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
3182
3234
|
</div>
|
|
3183
3235
|
</div>
|
|
3184
|
-
`, isInline: true, directives: [{ type:
|
|
3236
|
+
`, 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" }] });
|
|
3185
3237
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrCheckboxContainer, decorators: [{
|
|
3186
3238
|
type: Component,
|
|
3187
3239
|
args: [{
|
|
@@ -4911,7 +4963,7 @@ class ClrCalendar {
|
|
|
4911
4963
|
}
|
|
4912
4964
|
}
|
|
4913
4965
|
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 });
|
|
4914
|
-
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:
|
|
4966
|
+
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"] }] });
|
|
4915
4967
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrCalendar, decorators: [{
|
|
4916
4968
|
type: Component,
|
|
4917
4969
|
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" }]
|
|
@@ -4947,9 +4999,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
4947
4999
|
* This software is released under MIT license.
|
|
4948
5000
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
4949
5001
|
*/
|
|
5002
|
+
/**
|
|
5003
|
+
* TODO:
|
|
5004
|
+
* Using core functions like:
|
|
5005
|
+
* - pluckPixelValue
|
|
5006
|
+
* - getCssPropertyValue
|
|
5007
|
+
*
|
|
5008
|
+
* to get the value of the design token.
|
|
5009
|
+
*
|
|
5010
|
+
* Note: Memoization/Cache usage possible.
|
|
5011
|
+
*/
|
|
4950
5012
|
// iPad mini screen width
|
|
4951
5013
|
// http://stephen.io/mediaqueries/#iPadMini
|
|
4952
5014
|
const DATEPICKER_ENABLE_BREAKPOINT = 768;
|
|
5015
|
+
const SMALL_BREAKPOINT = 576;
|
|
5016
|
+
const MEDIUM_BREAKPOINT = 768;
|
|
5017
|
+
const LARGE_BREAKPOINT = 992;
|
|
5018
|
+
const EXTRA_LARGE_BREAKPOINT = 1200;
|
|
4953
5019
|
|
|
4954
5020
|
/*
|
|
4955
5021
|
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
@@ -5121,7 +5187,7 @@ ClrMonthpicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
|
|
|
5121
5187
|
>
|
|
5122
5188
|
{{ month }}
|
|
5123
5189
|
</button>
|
|
5124
|
-
`, isInline: true, directives: [{ type:
|
|
5190
|
+
`, isInline: true, directives: [{ type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
5125
5191
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrMonthpicker, decorators: [{
|
|
5126
5192
|
type: Component,
|
|
5127
5193
|
args: [{
|
|
@@ -5374,7 +5440,7 @@ ClrYearpicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
|
|
|
5374
5440
|
{{ year }}
|
|
5375
5441
|
</button>
|
|
5376
5442
|
</div>
|
|
5377
|
-
`, isInline: true, directives: [{ type: CdsIconCustomTag, selector: "cds-icon" }, { type:
|
|
5443
|
+
`, isInline: true, directives: [{ type: CdsIconCustomTag, selector: "cds-icon" }, { type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
5378
5444
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrYearpicker, decorators: [{
|
|
5379
5445
|
type: Component,
|
|
5380
5446
|
args: [{
|
|
@@ -5530,7 +5596,7 @@ class ClrDatepickerViewManager {
|
|
|
5530
5596
|
}
|
|
5531
5597
|
}
|
|
5532
5598
|
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 });
|
|
5533
|
-
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:
|
|
5599
|
+
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"] }] });
|
|
5534
5600
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDatepickerViewManager, decorators: [{
|
|
5535
5601
|
type: Component,
|
|
5536
5602
|
args: [{ selector: 'clr-datepicker-view-manager', providers: [DatepickerFocusService], host: {
|
|
@@ -5698,7 +5764,7 @@ ClrDateContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versi
|
|
|
5698
5764
|
<ng-content select="clr-control-error" *ngIf="showInvalid"></ng-content>
|
|
5699
5765
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
5700
5766
|
</div>
|
|
5701
|
-
`, isInline: true, components: [{ type: ClrDatepickerViewManager, selector: "clr-datepicker-view-manager" }], directives: [{ type:
|
|
5767
|
+
`, 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"] }] });
|
|
5702
5768
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDateContainer, decorators: [{
|
|
5703
5769
|
type: Component,
|
|
5704
5770
|
args: [{
|
|
@@ -6164,7 +6230,7 @@ ClrInputContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
6164
6230
|
<ng-content select="clr-control-error" *ngIf="showInvalid"></ng-content>
|
|
6165
6231
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
6166
6232
|
</div>
|
|
6167
|
-
`, isInline: true, directives: [{ type:
|
|
6233
|
+
`, 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" }] });
|
|
6168
6234
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrInputContainer, decorators: [{
|
|
6169
6235
|
type: Component,
|
|
6170
6236
|
args: [{
|
|
@@ -6338,7 +6404,7 @@ ClrPasswordContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
6338
6404
|
<ng-content select="clr-control-error" *ngIf="showInvalid"></ng-content>
|
|
6339
6405
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
6340
6406
|
</div>
|
|
6341
|
-
`, isInline: true, directives: [{ type:
|
|
6407
|
+
`, 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" }] });
|
|
6342
6408
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrPasswordContainer, decorators: [{
|
|
6343
6409
|
type: Component,
|
|
6344
6410
|
args: [{
|
|
@@ -6511,7 +6577,7 @@ ClrRadioWrapper.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
|
|
|
6511
6577
|
<ng-content select="[clrRadio]"></ng-content>
|
|
6512
6578
|
<ng-content select="label"></ng-content>
|
|
6513
6579
|
<label *ngIf="!label"></label>
|
|
6514
|
-
`, isInline: true, directives: [{ type:
|
|
6580
|
+
`, isInline: true, directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrLabel, selector: "label", inputs: ["for"] }] });
|
|
6515
6581
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrRadioWrapper, decorators: [{
|
|
6516
6582
|
type: Component,
|
|
6517
6583
|
args: [{
|
|
@@ -6616,7 +6682,7 @@ ClrRadioContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
6616
6682
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
6617
6683
|
</div>
|
|
6618
6684
|
</div>
|
|
6619
|
-
`, isInline: true, directives: [{ type:
|
|
6685
|
+
`, 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" }] });
|
|
6620
6686
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrRadioContainer, decorators: [{
|
|
6621
6687
|
type: Component,
|
|
6622
6688
|
args: [{
|
|
@@ -6740,7 +6806,7 @@ ClrSelectContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ver
|
|
|
6740
6806
|
<ng-content select="clr-control-error" *ngIf="showInvalid"></ng-content>
|
|
6741
6807
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
6742
6808
|
</div>
|
|
6743
|
-
`, isInline: true, directives: [{ type:
|
|
6809
|
+
`, 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" }] });
|
|
6744
6810
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrSelectContainer, decorators: [{
|
|
6745
6811
|
type: Component,
|
|
6746
6812
|
args: [{
|
|
@@ -6863,7 +6929,7 @@ ClrTextareaContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
6863
6929
|
<ng-content select="clr-control-error" *ngIf="showInvalid"></ng-content>
|
|
6864
6930
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
6865
6931
|
</div>
|
|
6866
|
-
`, isInline: true, directives: [{ type:
|
|
6932
|
+
`, 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" }] });
|
|
6867
6933
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrTextareaContainer, decorators: [{
|
|
6868
6934
|
type: Component,
|
|
6869
6935
|
args: [{
|
|
@@ -7011,7 +7077,7 @@ ClrRangeContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
7011
7077
|
<ng-content select="clr-control-error" *ngIf="showInvalid"></ng-content>
|
|
7012
7078
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
7013
7079
|
</div>
|
|
7014
|
-
`, isInline: true, directives: [{ type:
|
|
7080
|
+
`, 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" }] });
|
|
7015
7081
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrRangeContainer, decorators: [{
|
|
7016
7082
|
type: Component,
|
|
7017
7083
|
args: [{
|
|
@@ -7180,7 +7246,7 @@ ClrDatalistContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
7180
7246
|
<ng-content select="clr-control-error" *ngIf="showInvalid"></ng-content>
|
|
7181
7247
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
7182
7248
|
</div>
|
|
7183
|
-
`, isInline: true, directives: [{ type:
|
|
7249
|
+
`, 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" }] });
|
|
7184
7250
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDatalistContainer, decorators: [{
|
|
7185
7251
|
type: Component,
|
|
7186
7252
|
args: [{
|
|
@@ -7870,7 +7936,7 @@ class ClrOption {
|
|
|
7870
7936
|
}
|
|
7871
7937
|
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 });
|
|
7872
7938
|
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>
|
|
7873
|
-
<span *ngIf="selected" class="clr-sr-only"> {{ commonStrings.keys.comboboxSelected }} </span> `, isInline: true, directives: [{ type:
|
|
7939
|
+
<span *ngIf="selected" class="clr-sr-only"> {{ commonStrings.keys.comboboxSelected }} </span> `, isInline: true, directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
7874
7940
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrOption, decorators: [{
|
|
7875
7941
|
type: Component,
|
|
7876
7942
|
args: [{
|
|
@@ -8092,7 +8158,7 @@ ClrOptions.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "1
|
|
|
8092
8158
|
|
|
8093
8159
|
<!--Option Groups and Options will be projected here-->
|
|
8094
8160
|
<ng-content></ng-content>
|
|
8095
|
-
`, isInline: true, components: [{ type: ClrSpinner, selector: "clr-spinner", inputs: ["clrInline", "clrInverse", "clrSmall", "clrMedium"] }], directives: [{ type:
|
|
8161
|
+
`, isInline: true, components: [{ type: ClrSpinner, selector: "clr-spinner", inputs: ["clrInline", "clrInverse", "clrSmall", "clrMedium"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
8096
8162
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrOptions, decorators: [{
|
|
8097
8163
|
type: Component,
|
|
8098
8164
|
args: [{
|
|
@@ -8204,7 +8270,7 @@ ClrComboboxContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
8204
8270
|
<ng-content select="clr-control-error" *ngIf="showInvalid"></ng-content>
|
|
8205
8271
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
8206
8272
|
</div>
|
|
8207
|
-
`, isInline: true, directives: [{ type:
|
|
8273
|
+
`, 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" }] });
|
|
8208
8274
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrComboboxContainer, decorators: [{
|
|
8209
8275
|
type: Component,
|
|
8210
8276
|
args: [{
|
|
@@ -8936,9 +9002,6 @@ class ClrCombobox extends WrappedFormControl {
|
|
|
8936
9002
|
// the aria properties on the input element, not on the component.
|
|
8937
9003
|
this.el = this.textbox;
|
|
8938
9004
|
}
|
|
8939
|
-
ngOnDestroy() {
|
|
8940
|
-
this.subscriptions.forEach((sub) => sub.unsubscribe());
|
|
8941
|
-
}
|
|
8942
9005
|
}
|
|
8943
9006
|
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 });
|
|
8944
9007
|
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: [
|
|
@@ -8953,7 +9016,7 @@ ClrCombobox.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
|
8953
9016
|
ClrPopoverToggleService,
|
|
8954
9017
|
ClrPopoverEventsService,
|
|
8955
9018
|
ClrPopoverPositionService,
|
|
8956
|
-
], 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:
|
|
9019
|
+
], 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"] }] });
|
|
8957
9020
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrCombobox, decorators: [{
|
|
8958
9021
|
type: Component,
|
|
8959
9022
|
args: [{ selector: 'clr-combobox', providers: [
|
|
@@ -9536,13 +9599,13 @@ class DragEventListenerService {
|
|
|
9536
9599
|
};
|
|
9537
9600
|
// Initialize nested listeners' property with a new empty array;
|
|
9538
9601
|
this.nestedListeners = [];
|
|
9539
|
-
//
|
|
9540
|
-
this.nestedListeners.push(this.renderer.listen('document', 'selectstart', (selectEvent) => {
|
|
9541
|
-
selectEvent.preventDefault();
|
|
9542
|
-
selectEvent.stopImmediatePropagation();
|
|
9543
|
-
}));
|
|
9544
|
-
// Listen to mousemove/touchmove events outside of angular zone.
|
|
9602
|
+
// Listen to selectstart/mousemove/touchmove events outside of angular zone.
|
|
9545
9603
|
this.ngZone.runOutsideAngular(() => {
|
|
9604
|
+
// This is needed to disable selection during dragging (especially in EDGE/IE11).
|
|
9605
|
+
this.nestedListeners.push(this.renderer.listen('document', 'selectstart', (selectEvent) => {
|
|
9606
|
+
selectEvent.preventDefault();
|
|
9607
|
+
selectEvent.stopImmediatePropagation();
|
|
9608
|
+
}));
|
|
9546
9609
|
// During the drag start delay, pointer should stay within the boundary.
|
|
9547
9610
|
this.checkDragStartBoundary(moveOnEvent);
|
|
9548
9611
|
this.dragStartDelayTimeout = setTimeout(() => {
|
|
@@ -10429,11 +10492,12 @@ const FOCUS_ON_VIEW_INIT_PROVIDER = {
|
|
|
10429
10492
|
/* This directive is for guiding the document focus to the newly added content when its view is initialized
|
|
10430
10493
|
so that assistive technologies can read its content. */
|
|
10431
10494
|
class ClrFocusOnViewInit {
|
|
10432
|
-
constructor(el, platformId, focusOnViewInit, document, renderer) {
|
|
10495
|
+
constructor(el, platformId, focusOnViewInit, document, renderer, ngZone) {
|
|
10433
10496
|
this.el = el;
|
|
10434
10497
|
this.platformId = platformId;
|
|
10435
10498
|
this.focusOnViewInit = focusOnViewInit;
|
|
10436
10499
|
this.renderer = renderer;
|
|
10500
|
+
this.destroy$ = new Subject();
|
|
10437
10501
|
this.directFocus = true; // true if the element gets focused without need to set tabindex;
|
|
10438
10502
|
this._isEnabled = this.focusOnViewInit;
|
|
10439
10503
|
// Angular compiler doesn't understand the type Document
|
|
@@ -10441,13 +10505,15 @@ class ClrFocusOnViewInit {
|
|
|
10441
10505
|
// even though it understands the injection token DOCUMENT
|
|
10442
10506
|
// https://github.com/angular/angular/issues/20351
|
|
10443
10507
|
this.document = document;
|
|
10444
|
-
|
|
10445
|
-
|
|
10446
|
-
|
|
10447
|
-
|
|
10448
|
-
|
|
10449
|
-
|
|
10450
|
-
|
|
10508
|
+
ngZone.runOutsideAngular(() => fromEvent(el.nativeElement, 'focusout')
|
|
10509
|
+
.pipe(takeUntil(this.destroy$))
|
|
10510
|
+
.subscribe(() => {
|
|
10511
|
+
if (!this.directFocus) {
|
|
10512
|
+
// manually set attributes and styles should be removed
|
|
10513
|
+
this.renderer.removeAttribute(this.el.nativeElement, 'tabindex');
|
|
10514
|
+
this.renderer.setStyle(this.el.nativeElement, 'outline', null);
|
|
10515
|
+
}
|
|
10516
|
+
}));
|
|
10451
10517
|
}
|
|
10452
10518
|
set isEnabled(value) {
|
|
10453
10519
|
if (this.focusOnViewInit && typeof value === 'boolean') {
|
|
@@ -10457,6 +10523,9 @@ class ClrFocusOnViewInit {
|
|
|
10457
10523
|
ngAfterViewInit() {
|
|
10458
10524
|
this.focus();
|
|
10459
10525
|
}
|
|
10526
|
+
ngOnDestroy() {
|
|
10527
|
+
this.destroy$.next();
|
|
10528
|
+
}
|
|
10460
10529
|
focus() {
|
|
10461
10530
|
if (!isPlatformBrowser(this.platformId)) {
|
|
10462
10531
|
return;
|
|
@@ -10477,8 +10546,8 @@ class ClrFocusOnViewInit {
|
|
|
10477
10546
|
}
|
|
10478
10547
|
}
|
|
10479
10548
|
}
|
|
10480
|
-
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 });
|
|
10481
|
-
ClrFocusOnViewInit.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrFocusOnViewInit, selector: "[clrFocusOnViewInit]", inputs: { isEnabled: ["clrFocusOnViewInit", "isEnabled"] },
|
|
10549
|
+
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 });
|
|
10550
|
+
ClrFocusOnViewInit.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ClrFocusOnViewInit, selector: "[clrFocusOnViewInit]", inputs: { isEnabled: ["clrFocusOnViewInit", "isEnabled"] }, ngImport: i0 });
|
|
10482
10551
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrFocusOnViewInit, decorators: [{
|
|
10483
10552
|
type: Directive,
|
|
10484
10553
|
args: [{
|
|
@@ -10493,10 +10562,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
10493
10562
|
}] }, { type: undefined, decorators: [{
|
|
10494
10563
|
type: Inject,
|
|
10495
10564
|
args: [DOCUMENT]
|
|
10496
|
-
}] }, { type: i0.Renderer2 }]; }, propDecorators: {
|
|
10497
|
-
type: HostListener,
|
|
10498
|
-
args: ['focusout']
|
|
10499
|
-
}], isEnabled: [{
|
|
10565
|
+
}] }, { type: i0.Renderer2 }, { type: i0.NgZone }]; }, propDecorators: { isEnabled: [{
|
|
10500
10566
|
type: Input,
|
|
10501
10567
|
args: ['clrFocusOnViewInit']
|
|
10502
10568
|
}] } });
|
|
@@ -11175,11 +11241,12 @@ class DatagridStringFilterImpl {
|
|
|
11175
11241
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
11176
11242
|
*/
|
|
11177
11243
|
class DatagridStringFilter extends DatagridFilterRegistrar {
|
|
11178
|
-
constructor(filters, domAdapter, commonStrings, smartToggleService) {
|
|
11244
|
+
constructor(filters, domAdapter, commonStrings, smartToggleService, ngZone) {
|
|
11179
11245
|
super(filters);
|
|
11180
11246
|
this.domAdapter = domAdapter;
|
|
11181
11247
|
this.commonStrings = commonStrings;
|
|
11182
11248
|
this.smartToggleService = smartToggleService;
|
|
11249
|
+
this.ngZone = ngZone;
|
|
11183
11250
|
this.subs = [];
|
|
11184
11251
|
/**
|
|
11185
11252
|
* Indicates if the filter dropdown is open
|
|
@@ -11187,6 +11254,9 @@ class DatagridStringFilter extends DatagridFilterRegistrar {
|
|
|
11187
11254
|
this.open = false;
|
|
11188
11255
|
this.filterValueChange = new EventEmitter();
|
|
11189
11256
|
}
|
|
11257
|
+
get placeholderValue() {
|
|
11258
|
+
return this.placeholder || this.commonStrings.keys.filterItems;
|
|
11259
|
+
}
|
|
11190
11260
|
/**
|
|
11191
11261
|
* Customizable filter logic based on a search text
|
|
11192
11262
|
*/
|
|
@@ -11208,9 +11278,16 @@ class DatagridStringFilter extends DatagridFilterRegistrar {
|
|
|
11208
11278
|
ngAfterViewInit() {
|
|
11209
11279
|
this.subs.push(this.smartToggleService.openChange.subscribe(openChange => {
|
|
11210
11280
|
this.open = openChange;
|
|
11211
|
-
//
|
|
11212
|
-
|
|
11213
|
-
|
|
11281
|
+
// Note: this is being run outside of the Angular zone because `element.focus()` doesn't require
|
|
11282
|
+
// running change detection.
|
|
11283
|
+
this.ngZone.runOutsideAngular(() => {
|
|
11284
|
+
// The animation frame in used because when this executes, the input isn't displayed.
|
|
11285
|
+
// Note: `element.focus()` causes re-layout and this may lead to frame drop on slower devices.
|
|
11286
|
+
// `setTimeout` is a macrotask and macrotasks are executed within the current rendering frame.
|
|
11287
|
+
// Animation tasks are executed within the next rendering frame.
|
|
11288
|
+
requestAnimationFrame(() => {
|
|
11289
|
+
this.domAdapter.focus(this.input.nativeElement);
|
|
11290
|
+
});
|
|
11214
11291
|
});
|
|
11215
11292
|
}));
|
|
11216
11293
|
}
|
|
@@ -11239,8 +11316,8 @@ class DatagridStringFilter extends DatagridFilterRegistrar {
|
|
|
11239
11316
|
}
|
|
11240
11317
|
}
|
|
11241
11318
|
}
|
|
11242
|
-
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 });
|
|
11243
|
-
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: `
|
|
11319
|
+
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 });
|
|
11320
|
+
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: `
|
|
11244
11321
|
<clr-dg-filter [clrDgFilter]="registered" [(clrDgFilterOpen)]="open">
|
|
11245
11322
|
<input
|
|
11246
11323
|
#input
|
|
@@ -11248,8 +11325,8 @@ DatagridStringFilter.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
11248
11325
|
name="search"
|
|
11249
11326
|
[(ngModel)]="value"
|
|
11250
11327
|
class="clr-input"
|
|
11251
|
-
[attr.aria-label]="
|
|
11252
|
-
[placeholder]="
|
|
11328
|
+
[attr.aria-label]="placeholderValue"
|
|
11329
|
+
[placeholder]="placeholderValue"
|
|
11253
11330
|
/>
|
|
11254
11331
|
</clr-dg-filter>
|
|
11255
11332
|
`, 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"] }] });
|
|
@@ -11266,13 +11343,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
11266
11343
|
name="search"
|
|
11267
11344
|
[(ngModel)]="value"
|
|
11268
11345
|
class="clr-input"
|
|
11269
|
-
[attr.aria-label]="
|
|
11270
|
-
[placeholder]="
|
|
11346
|
+
[attr.aria-label]="placeholderValue"
|
|
11347
|
+
[placeholder]="placeholderValue"
|
|
11271
11348
|
/>
|
|
11272
11349
|
</clr-dg-filter>
|
|
11273
11350
|
`,
|
|
11274
11351
|
}]
|
|
11275
|
-
}], ctorParameters: function () { return [{ type: FiltersProvider }, { type: DomAdapter }, { type: ClrCommonStringsService }, { type: ClrPopoverToggleService }]; }, propDecorators: {
|
|
11352
|
+
}], ctorParameters: function () { return [{ type: FiltersProvider }, { type: DomAdapter }, { type: ClrCommonStringsService }, { type: ClrPopoverToggleService }, { type: i0.NgZone }]; }, propDecorators: { placeholder: [{
|
|
11353
|
+
type: Input,
|
|
11354
|
+
args: ['clrFilterPlaceholder']
|
|
11355
|
+
}], customStringFilter: [{
|
|
11276
11356
|
type: Input,
|
|
11277
11357
|
args: ['clrDgStringFilter']
|
|
11278
11358
|
}], input: [{
|
|
@@ -11413,11 +11493,12 @@ class DatagridNumericFilterImpl {
|
|
|
11413
11493
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
11414
11494
|
*/
|
|
11415
11495
|
class DatagridNumericFilter extends DatagridFilterRegistrar {
|
|
11416
|
-
constructor(filters, domAdapter, commonStrings, popoverToggleService) {
|
|
11496
|
+
constructor(filters, domAdapter, commonStrings, popoverToggleService, ngZone) {
|
|
11417
11497
|
super(filters);
|
|
11418
11498
|
this.domAdapter = domAdapter;
|
|
11419
11499
|
this.commonStrings = commonStrings;
|
|
11420
11500
|
this.popoverToggleService = popoverToggleService;
|
|
11501
|
+
this.ngZone = ngZone;
|
|
11421
11502
|
this.subscriptions = [];
|
|
11422
11503
|
/**
|
|
11423
11504
|
* Indicates if the filter dropdown is open
|
|
@@ -11426,10 +11507,17 @@ class DatagridNumericFilter extends DatagridFilterRegistrar {
|
|
|
11426
11507
|
this.filterValueChange = new EventEmitter();
|
|
11427
11508
|
}
|
|
11428
11509
|
ngOnDestroy() {
|
|
11510
|
+
super.ngOnDestroy();
|
|
11429
11511
|
this.subscriptions.forEach(sub => {
|
|
11430
11512
|
sub.unsubscribe();
|
|
11431
11513
|
});
|
|
11432
11514
|
}
|
|
11515
|
+
get maxPlaceholderValue() {
|
|
11516
|
+
return this.maxPlaceholder || this.commonStrings.keys.maxValue;
|
|
11517
|
+
}
|
|
11518
|
+
get minPlaceholderValue() {
|
|
11519
|
+
return this.minPlaceholder || this.commonStrings.keys.minValue;
|
|
11520
|
+
}
|
|
11433
11521
|
/**
|
|
11434
11522
|
* Customizable filter logic based on high and low values
|
|
11435
11523
|
*/
|
|
@@ -11451,9 +11539,16 @@ class DatagridNumericFilter extends DatagridFilterRegistrar {
|
|
|
11451
11539
|
ngAfterViewInit() {
|
|
11452
11540
|
this.subscriptions.push(this.popoverToggleService.openChange.subscribe(openChange => {
|
|
11453
11541
|
this.open = openChange;
|
|
11454
|
-
//
|
|
11455
|
-
|
|
11456
|
-
|
|
11542
|
+
// Note: this is being run outside of the Angular zone because `element.focus()` doesn't require
|
|
11543
|
+
// running change detection.
|
|
11544
|
+
this.ngZone.runOutsideAngular(() => {
|
|
11545
|
+
// The animation frame in used because when this executes, the input isn't displayed.
|
|
11546
|
+
// Note: `element.focus()` causes re-layout and this may lead to frame drop on slower devices.
|
|
11547
|
+
// `setTimeout` is a macrotask and macrotasks are executed within the current rendering frame.
|
|
11548
|
+
// Animation tasks are executed within the next rendering frame.
|
|
11549
|
+
requestAnimationFrame(() => {
|
|
11550
|
+
this.domAdapter.focus(this.input.nativeElement);
|
|
11551
|
+
});
|
|
11457
11552
|
});
|
|
11458
11553
|
}));
|
|
11459
11554
|
}
|
|
@@ -11524,8 +11619,8 @@ class DatagridNumericFilter extends DatagridFilterRegistrar {
|
|
|
11524
11619
|
}
|
|
11525
11620
|
}
|
|
11526
11621
|
}
|
|
11527
|
-
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 });
|
|
11528
|
-
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: `
|
|
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 }, { token: i0.NgZone }], 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: { 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: `
|
|
11529
11624
|
<clr-dg-filter [clrDgFilter]="registered" [(clrDgFilterOpen)]="open">
|
|
11530
11625
|
<input
|
|
11531
11626
|
class="datagrid-numeric-filter-input"
|
|
@@ -11533,8 +11628,8 @@ DatagridNumericFilter.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
11533
11628
|
type="number"
|
|
11534
11629
|
name="low"
|
|
11535
11630
|
[(ngModel)]="low"
|
|
11536
|
-
[placeholder]="
|
|
11537
|
-
[attr.aria-label]="
|
|
11631
|
+
[placeholder]="minPlaceholderValue"
|
|
11632
|
+
[attr.aria-label]="minPlaceholderValue"
|
|
11538
11633
|
/>
|
|
11539
11634
|
<span class="datagrid-filter-input-spacer"></span>
|
|
11540
11635
|
<input
|
|
@@ -11543,8 +11638,8 @@ DatagridNumericFilter.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
11543
11638
|
type="number"
|
|
11544
11639
|
name="high"
|
|
11545
11640
|
[(ngModel)]="high"
|
|
11546
|
-
[placeholder]="
|
|
11547
|
-
[attr.aria-label]="
|
|
11641
|
+
[placeholder]="maxPlaceholderValue"
|
|
11642
|
+
[attr.aria-label]="maxPlaceholderValue"
|
|
11548
11643
|
/>
|
|
11549
11644
|
</clr-dg-filter>
|
|
11550
11645
|
`, 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"] }] });
|
|
@@ -11561,8 +11656,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
11561
11656
|
type="number"
|
|
11562
11657
|
name="low"
|
|
11563
11658
|
[(ngModel)]="low"
|
|
11564
|
-
[placeholder]="
|
|
11565
|
-
[attr.aria-label]="
|
|
11659
|
+
[placeholder]="minPlaceholderValue"
|
|
11660
|
+
[attr.aria-label]="minPlaceholderValue"
|
|
11566
11661
|
/>
|
|
11567
11662
|
<span class="datagrid-filter-input-spacer"></span>
|
|
11568
11663
|
<input
|
|
@@ -11571,13 +11666,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
11571
11666
|
type="number"
|
|
11572
11667
|
name="high"
|
|
11573
11668
|
[(ngModel)]="high"
|
|
11574
|
-
[placeholder]="
|
|
11575
|
-
[attr.aria-label]="
|
|
11669
|
+
[placeholder]="maxPlaceholderValue"
|
|
11670
|
+
[attr.aria-label]="maxPlaceholderValue"
|
|
11576
11671
|
/>
|
|
11577
11672
|
</clr-dg-filter>
|
|
11578
11673
|
`,
|
|
11579
11674
|
}]
|
|
11580
|
-
}], ctorParameters: function () { return [{ type: FiltersProvider }, { type: DomAdapter }, { type: ClrCommonStringsService }, { type: ClrPopoverToggleService }]; }, propDecorators: {
|
|
11675
|
+
}], ctorParameters: function () { return [{ type: FiltersProvider }, { type: DomAdapter }, { type: ClrCommonStringsService }, { type: ClrPopoverToggleService }, { type: i0.NgZone }]; }, propDecorators: { maxPlaceholder: [{
|
|
11676
|
+
type: Input,
|
|
11677
|
+
args: ['clrFilterMaxPlaceholder']
|
|
11678
|
+
}], minPlaceholder: [{
|
|
11679
|
+
type: Input,
|
|
11680
|
+
args: ['clrFilterMinPlaceholder']
|
|
11681
|
+
}], customNumericFilter: [{
|
|
11581
11682
|
type: Input,
|
|
11582
11683
|
args: ['clrDgNumericFilter']
|
|
11583
11684
|
}], input: [{
|
|
@@ -12374,6 +12475,7 @@ class ClrDatagridColumn extends DatagridFilterRegistrar {
|
|
|
12374
12475
|
this.subscriptions.push(this.listenForDetailPaneChanges());
|
|
12375
12476
|
}
|
|
12376
12477
|
ngOnDestroy() {
|
|
12478
|
+
super.ngOnDestroy();
|
|
12377
12479
|
this.subscriptions.forEach(s => s.unsubscribe());
|
|
12378
12480
|
}
|
|
12379
12481
|
listenForDetailPaneChanges() {
|
|
@@ -12559,6 +12661,15 @@ class ClrDatagridColumn extends DatagridFilterRegistrar {
|
|
|
12559
12661
|
this.customFilter = true;
|
|
12560
12662
|
}
|
|
12561
12663
|
}
|
|
12664
|
+
get filterStringPlaceholderValue() {
|
|
12665
|
+
return this.filterStringPlaceholder || this.commonStrings.keys.filterItems;
|
|
12666
|
+
}
|
|
12667
|
+
get filterNumberMaxPlaceholderValue() {
|
|
12668
|
+
return this.filterNumberMaxPlaceholder || this.commonStrings.keys.maxValue;
|
|
12669
|
+
}
|
|
12670
|
+
get filterNumberMinPlaceholderValue() {
|
|
12671
|
+
return this.filterNumberMinPlaceholder || this.commonStrings.keys.minValue;
|
|
12672
|
+
}
|
|
12562
12673
|
set updateFilterValue(newValue) {
|
|
12563
12674
|
if (this.filter) {
|
|
12564
12675
|
if (this.filter instanceof DatagridStringFilterImpl) {
|
|
@@ -12610,7 +12721,7 @@ class ClrDatagridColumn extends DatagridFilterRegistrar {
|
|
|
12610
12721
|
}
|
|
12611
12722
|
}
|
|
12612
12723
|
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 });
|
|
12613
|
-
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: `
|
|
12724
|
+
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: `
|
|
12614
12725
|
<div class="datagrid-column-flex">
|
|
12615
12726
|
<button class="datagrid-column-title" *ngIf="sortable" (click)="sort()" type="button">
|
|
12616
12727
|
<ng-container *ngTemplateOutlet="columnTitle"></ng-container>
|
|
@@ -12627,12 +12738,15 @@ ClrDatagridColumn.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
12627
12738
|
|
|
12628
12739
|
<clr-dg-string-filter
|
|
12629
12740
|
*ngIf="field && !customFilter && colType == 'string'"
|
|
12741
|
+
[clrFilterPlaceholder]="filterStringPlaceholderValue"
|
|
12630
12742
|
[clrDgStringFilter]="registered"
|
|
12631
12743
|
[(clrFilterValue)]="filterValue"
|
|
12632
12744
|
></clr-dg-string-filter>
|
|
12633
12745
|
|
|
12634
12746
|
<clr-dg-numeric-filter
|
|
12635
12747
|
*ngIf="field && !customFilter && colType == 'number'"
|
|
12748
|
+
[clrFilterMaxPlaceholder]="filterMaxPlaceholderValue"
|
|
12749
|
+
[clrFilterMinPlaceholder]="filterMinPlaceholderValue"
|
|
12636
12750
|
[clrDgNumericFilter]="registered"
|
|
12637
12751
|
[(clrFilterValue)]="filterValue"
|
|
12638
12752
|
></clr-dg-numeric-filter>
|
|
@@ -12647,7 +12761,7 @@ ClrDatagridColumn.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
12647
12761
|
|
|
12648
12762
|
<clr-dg-column-separator *ngIf="showSeparator"></clr-dg-column-separator>
|
|
12649
12763
|
</div>
|
|
12650
|
-
`, 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:
|
|
12764
|
+
`, 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 });
|
|
12651
12765
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDatagridColumn, decorators: [{
|
|
12652
12766
|
type: Component,
|
|
12653
12767
|
args: [{
|
|
@@ -12669,12 +12783,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
12669
12783
|
|
|
12670
12784
|
<clr-dg-string-filter
|
|
12671
12785
|
*ngIf="field && !customFilter && colType == 'string'"
|
|
12786
|
+
[clrFilterPlaceholder]="filterStringPlaceholderValue"
|
|
12672
12787
|
[clrDgStringFilter]="registered"
|
|
12673
12788
|
[(clrFilterValue)]="filterValue"
|
|
12674
12789
|
></clr-dg-string-filter>
|
|
12675
12790
|
|
|
12676
12791
|
<clr-dg-numeric-filter
|
|
12677
12792
|
*ngIf="field && !customFilter && colType == 'number'"
|
|
12793
|
+
[clrFilterMaxPlaceholder]="filterMaxPlaceholderValue"
|
|
12794
|
+
[clrFilterMinPlaceholder]="filterMinPlaceholderValue"
|
|
12678
12795
|
[clrDgNumericFilter]="registered"
|
|
12679
12796
|
[(clrFilterValue)]="filterValue"
|
|
12680
12797
|
></clr-dg-numeric-filter>
|
|
@@ -12722,6 +12839,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
12722
12839
|
}], projectedFilter: [{
|
|
12723
12840
|
type: ContentChild,
|
|
12724
12841
|
args: [CustomFilter]
|
|
12842
|
+
}], filterStringPlaceholder: [{
|
|
12843
|
+
type: Input,
|
|
12844
|
+
args: ['clrFilterStringPlaceholder']
|
|
12845
|
+
}], filterNumberMaxPlaceholder: [{
|
|
12846
|
+
type: Input,
|
|
12847
|
+
args: ['clrFilterNumberMaxPlaceholder']
|
|
12848
|
+
}], filterNumberMinPlaceholder: [{
|
|
12849
|
+
type: Input,
|
|
12850
|
+
args: ['clrFilterNumberMinPlaceholder']
|
|
12725
12851
|
}], updateFilterValue: [{
|
|
12726
12852
|
type: Input,
|
|
12727
12853
|
args: ['clrFilterValue']
|
|
@@ -12978,7 +13104,7 @@ ClrDatagridPlaceholder.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
12978
13104
|
<div class="datagrid-placeholder-image" *ngIf="emptyDatagrid"></div>
|
|
12979
13105
|
<span role="gridcell"><ng-content *ngIf="emptyDatagrid"></ng-content></span>
|
|
12980
13106
|
</div>
|
|
12981
|
-
`, isInline: true, directives: [{ type:
|
|
13107
|
+
`, isInline: true, directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
12982
13108
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDatagridPlaceholder, decorators: [{
|
|
12983
13109
|
type: Component,
|
|
12984
13110
|
args: [{
|
|
@@ -13176,7 +13302,7 @@ ClrSignpost.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
|
13176
13302
|
</ng-container>
|
|
13177
13303
|
|
|
13178
13304
|
<ng-content></ng-content>
|
|
13179
|
-
`, isInline: true, directives: [{ type:
|
|
13305
|
+
`, isInline: true, directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: ClrSignpostTrigger, selector: "[clrSignpostTrigger]" }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
13180
13306
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrSignpost, decorators: [{
|
|
13181
13307
|
type: Component,
|
|
13182
13308
|
args: [{
|
|
@@ -13947,7 +14073,7 @@ ClrDatagridRow.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
|
|
|
13947
14073
|
DatagridIfExpandService,
|
|
13948
14074
|
{ provide: IfExpandService, useExisting: DatagridIfExpandService },
|
|
13949
14075
|
{ provide: LoadingListener, useExisting: DatagridIfExpandService },
|
|
13950
|
-
], 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:
|
|
14076
|
+
], 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" }] });
|
|
13951
14077
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDatagridRow, decorators: [{
|
|
13952
14078
|
type: Component,
|
|
13953
14079
|
args: [{ selector: 'clr-dg-row', host: {
|
|
@@ -14356,7 +14482,7 @@ ClrDatagrid.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
|
14356
14482
|
TableSizeService,
|
|
14357
14483
|
ColumnsService,
|
|
14358
14484
|
DisplayModeService,
|
|
14359
|
-
], 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:
|
|
14485
|
+
], 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"] }] });
|
|
14360
14486
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDatagrid, decorators: [{
|
|
14361
14487
|
type: Component,
|
|
14362
14488
|
args: [{ selector: 'clr-datagrid', providers: [
|
|
@@ -14798,7 +14924,9 @@ ClrDatagridColumnToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
|
|
|
14798
14924
|
>
|
|
14799
14925
|
<div class="switch-header">
|
|
14800
14926
|
<div class="clr-sr-only" tabindex="-1" #allSelected>{{ commonStrings.keys.allColumnsSelected }}</div>
|
|
14801
|
-
<ng-container *ngIf="!customToggleTitle">
|
|
14927
|
+
<ng-container *ngIf="!customToggleTitle">
|
|
14928
|
+
<h2>{{ commonStrings.keys.showColumns }}</h2>
|
|
14929
|
+
</ng-container>
|
|
14802
14930
|
<ng-content select="clr-dg-column-toggle-title"></ng-content>
|
|
14803
14931
|
<button
|
|
14804
14932
|
class="btn btn-sm btn-link toggle-switch-close-button"
|
|
@@ -14833,7 +14961,7 @@ ClrDatagridColumnToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
|
|
|
14833
14961
|
</clr-dg-column-toggle-button>
|
|
14834
14962
|
</div>
|
|
14835
14963
|
</div>
|
|
14836
|
-
`, 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:
|
|
14964
|
+
`, 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"] }] });
|
|
14837
14965
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDatagridColumnToggle, decorators: [{
|
|
14838
14966
|
type: Component,
|
|
14839
14967
|
args: [{
|
|
@@ -14862,7 +14990,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
14862
14990
|
>
|
|
14863
14991
|
<div class="switch-header">
|
|
14864
14992
|
<div class="clr-sr-only" tabindex="-1" #allSelected>{{ commonStrings.keys.allColumnsSelected }}</div>
|
|
14865
|
-
<ng-container *ngIf="!customToggleTitle">
|
|
14993
|
+
<ng-container *ngIf="!customToggleTitle">
|
|
14994
|
+
<h2>{{ commonStrings.keys.showColumns }}</h2>
|
|
14995
|
+
</ng-container>
|
|
14866
14996
|
<ng-content select="clr-dg-column-toggle-title"></ng-content>
|
|
14867
14997
|
<button
|
|
14868
14998
|
class="btn btn-sm btn-link toggle-switch-close-button"
|
|
@@ -15036,7 +15166,7 @@ ClrDatagridDetail.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
15036
15166
|
<ng-content></ng-content>
|
|
15037
15167
|
<div class="clr-sr-only">{{ commonStrings.keys.detailPaneEnd }}</div>
|
|
15038
15168
|
</div>
|
|
15039
|
-
`, isInline: true, directives: [{ type:
|
|
15169
|
+
`, isInline: true, directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: FocusTrapDirective, selector: "[clrFocusTrap]", inputs: ["clrFocusTrap"] }] });
|
|
15040
15170
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDatagridDetail, decorators: [{
|
|
15041
15171
|
type: Component,
|
|
15042
15172
|
args: [{
|
|
@@ -15507,6 +15637,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
15507
15637
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
15508
15638
|
*/
|
|
15509
15639
|
|
|
15640
|
+
/*
|
|
15641
|
+
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
15642
|
+
* This software is released under MIT license.
|
|
15643
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
15644
|
+
*/
|
|
15645
|
+
|
|
15510
15646
|
/*
|
|
15511
15647
|
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
15512
15648
|
* This software is released under MIT license.
|
|
@@ -15544,7 +15680,7 @@ ClrDatagridFooter.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
15544
15680
|
</div>
|
|
15545
15681
|
</ng-container>
|
|
15546
15682
|
<ng-content select="clr-dg-pagination"></ng-content>
|
|
15547
|
-
`, isInline: true, components: [{ type: ClrCheckboxWrapper, selector: "clr-checkbox-wrapper,clr-toggle-wrapper" }, { type: ClrDatagridColumnToggle, selector: "clr-dg-column-toggle" }], directives: [{ type:
|
|
15683
|
+
`, 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"] }] });
|
|
15548
15684
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDatagridFooter, decorators: [{
|
|
15549
15685
|
type: Component,
|
|
15550
15686
|
args: [{
|
|
@@ -15714,7 +15850,7 @@ ClrDatagridPageSize.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", ve
|
|
|
15714
15850
|
<option *ngFor="let option of pageSizeOptions" [ngValue]="option">{{ option }}</option>
|
|
15715
15851
|
</select>
|
|
15716
15852
|
</div>
|
|
15717
|
-
`, 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:
|
|
15853
|
+
`, 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"] }] });
|
|
15718
15854
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDatagridPageSize, decorators: [{
|
|
15719
15855
|
type: Component,
|
|
15720
15856
|
args: [{
|
|
@@ -15970,7 +16106,7 @@ ClrDatagridPagination.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
15970
16106
|
</button>
|
|
15971
16107
|
</div>
|
|
15972
16108
|
</ng-container>
|
|
15973
|
-
`, isInline: true, directives: [{ type:
|
|
16109
|
+
`, isInline: true, directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
15974
16110
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrDatagridPagination, decorators: [{
|
|
15975
16111
|
type: Component,
|
|
15976
16112
|
args: [{
|
|
@@ -16512,7 +16648,7 @@ const domAdapterFactory = (platformId) => {
|
|
|
16512
16648
|
// Fixes build error
|
|
16513
16649
|
// @dynamic (https://github.com/angular/angular/issues/19698#issuecomment-338340211)
|
|
16514
16650
|
class DatagridMainRenderer {
|
|
16515
|
-
constructor(organizer, items, page, domAdapter, el, renderer, detailService, tableSizeService, columnsService) {
|
|
16651
|
+
constructor(organizer, items, page, domAdapter, el, renderer, detailService, tableSizeService, columnsService, ngZone) {
|
|
16516
16652
|
this.organizer = organizer;
|
|
16517
16653
|
this.items = items;
|
|
16518
16654
|
this.page = page;
|
|
@@ -16522,6 +16658,7 @@ class DatagridMainRenderer {
|
|
|
16522
16658
|
this.detailService = detailService;
|
|
16523
16659
|
this.tableSizeService = tableSizeService;
|
|
16524
16660
|
this.columnsService = columnsService;
|
|
16661
|
+
this.ngZone = ngZone;
|
|
16525
16662
|
this._heightSet = false;
|
|
16526
16663
|
this.subscriptions = [];
|
|
16527
16664
|
/**
|
|
@@ -16561,8 +16698,10 @@ class DatagridMainRenderer {
|
|
|
16561
16698
|
this.stabilizeColumns();
|
|
16562
16699
|
}
|
|
16563
16700
|
if (this.shouldComputeHeight()) {
|
|
16564
|
-
|
|
16565
|
-
|
|
16701
|
+
this.ngZone.runOutsideAngular(() => {
|
|
16702
|
+
setTimeout(() => {
|
|
16703
|
+
this.computeDatagridHeight();
|
|
16704
|
+
});
|
|
16566
16705
|
});
|
|
16567
16706
|
}
|
|
16568
16707
|
}
|
|
@@ -16660,7 +16799,7 @@ class DatagridMainRenderer {
|
|
|
16660
16799
|
}
|
|
16661
16800
|
}
|
|
16662
16801
|
}
|
|
16663
|
-
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 });
|
|
16802
|
+
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 });
|
|
16664
16803
|
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 });
|
|
16665
16804
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: DatagridMainRenderer, decorators: [{
|
|
16666
16805
|
type: Directive,
|
|
@@ -16668,7 +16807,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
16668
16807
|
selector: 'clr-datagrid',
|
|
16669
16808
|
providers: [{ provide: DomAdapter, useFactory: domAdapterFactory, deps: [PLATFORM_ID] }],
|
|
16670
16809
|
}]
|
|
16671
|
-
}], 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: [{
|
|
16810
|
+
}], 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: [{
|
|
16672
16811
|
type: ContentChildren,
|
|
16673
16812
|
args: [DatagridHeaderRenderer]
|
|
16674
16813
|
}], rows: [{
|
|
@@ -17042,7 +17181,7 @@ ClrStackBlock.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
|
|
|
17042
17181
|
<ng-content select="clr-stack-block"></ng-content>
|
|
17043
17182
|
</div>
|
|
17044
17183
|
</clr-expandable-animation>
|
|
17045
|
-
`, isInline: true, styles: [":host{display:block}\n"], components: [{ type: ClrExpandableAnimation, selector: "clr-expandable-animation", inputs: ["clrExpandTrigger"] }], directives: [{ type:
|
|
17184
|
+
`, 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" }] });
|
|
17046
17185
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrStackBlock, decorators: [{
|
|
17047
17186
|
type: Component,
|
|
17048
17187
|
args: [{
|
|
@@ -17230,7 +17369,7 @@ ClrStackHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
|
|
|
17230
17369
|
<!-- End of undocumented experimental feature. -->
|
|
17231
17370
|
</span>
|
|
17232
17371
|
</h4>
|
|
17233
|
-
`, isInline: true, styles: [":host{display:block}\n"], directives: [{ type:
|
|
17372
|
+
`, isInline: true, styles: [":host{display:block}\n"], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
17234
17373
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrStackHeader, decorators: [{
|
|
17235
17374
|
type: Component,
|
|
17236
17375
|
args: [{
|
|
@@ -17276,14 +17415,22 @@ class StackControl {
|
|
|
17276
17415
|
this.modelChange = new EventEmitter(false);
|
|
17277
17416
|
// Make the ClrStackView editable, since it contains a StackControl
|
|
17278
17417
|
this.stackView.editable = true;
|
|
17279
|
-
this.stackView.editingChange.subscribe((editing) => {
|
|
17418
|
+
this.subscription = this.stackView.editingChange.subscribe((editing) => {
|
|
17280
17419
|
// Edit mode was closed
|
|
17281
17420
|
if (!editing) {
|
|
17282
17421
|
this.modelChange.emit(this.model);
|
|
17283
17422
|
}
|
|
17284
17423
|
});
|
|
17285
17424
|
}
|
|
17425
|
+
ngOnDestroy() {
|
|
17426
|
+
this.subscription.unsubscribe();
|
|
17427
|
+
}
|
|
17286
17428
|
}
|
|
17429
|
+
StackControl.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: StackControl, deps: [{ token: ClrStackView }], target: i0.ɵɵFactoryTarget.Directive });
|
|
17430
|
+
StackControl.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: StackControl, ngImport: i0 });
|
|
17431
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: StackControl, decorators: [{
|
|
17432
|
+
type: Directive
|
|
17433
|
+
}], ctorParameters: function () { return [{ type: ClrStackView }]; } });
|
|
17287
17434
|
|
|
17288
17435
|
/*
|
|
17289
17436
|
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
@@ -17301,7 +17448,7 @@ ClrStackInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
|
17301
17448
|
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: `
|
|
17302
17449
|
<span *ngIf="!stackView.editing">{{ model }}</span>
|
|
17303
17450
|
<input [type]="type" *ngIf="stackView.editing" [(ngModel)]="model" />
|
|
17304
|
-
`, isInline: true, directives: [{ type:
|
|
17451
|
+
`, 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"] }] });
|
|
17305
17452
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrStackInput, decorators: [{
|
|
17306
17453
|
type: Component,
|
|
17307
17454
|
args: [{
|
|
@@ -17334,7 +17481,7 @@ ClrStackSelect.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version
|
|
|
17334
17481
|
<ng-content></ng-content>
|
|
17335
17482
|
</select>
|
|
17336
17483
|
</div>
|
|
17337
|
-
`, isInline: true, directives: [{ type:
|
|
17484
|
+
`, 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"] }] });
|
|
17338
17485
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrStackSelect, decorators: [{
|
|
17339
17486
|
type: Component,
|
|
17340
17487
|
args: [{
|
|
@@ -17809,7 +17956,7 @@ RecursiveChildren.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
|
|
|
17809
17956
|
<ng-container *ngTemplateOutlet="featuresService.recursion.template; context: getContext(child)"></ng-container>
|
|
17810
17957
|
</ng-container>
|
|
17811
17958
|
</ng-container>
|
|
17812
|
-
`, isInline: true, directives: [{ type:
|
|
17959
|
+
`, 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"] }] });
|
|
17813
17960
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: RecursiveChildren, decorators: [{
|
|
17814
17961
|
type: Component,
|
|
17815
17962
|
args: [{
|
|
@@ -17951,9 +18098,11 @@ class ClrTreeNode {
|
|
|
17951
18098
|
}
|
|
17952
18099
|
}
|
|
17953
18100
|
focusTreeNode() {
|
|
17954
|
-
|
|
18101
|
+
const containerEl = this.contentContainer.nativeElement;
|
|
18102
|
+
if (isPlatformBrowser(this.platformId) && document.activeElement !== containerEl) {
|
|
17955
18103
|
this.setTabIndex(0);
|
|
17956
|
-
|
|
18104
|
+
containerEl.focus();
|
|
18105
|
+
containerEl.scrollIntoView({ block: 'nearest', inline: 'nearest' });
|
|
17957
18106
|
}
|
|
17958
18107
|
}
|
|
17959
18108
|
broadcastFocusOnContainer() {
|
|
@@ -17980,19 +18129,21 @@ class ClrTreeNode {
|
|
|
17980
18129
|
this.collapseOrFocusParent();
|
|
17981
18130
|
break;
|
|
17982
18131
|
case KeyCodes.Home:
|
|
18132
|
+
event.preventDefault();
|
|
17983
18133
|
this.focusManager.focusFirstVisibleNode();
|
|
17984
18134
|
break;
|
|
17985
18135
|
case KeyCodes.End:
|
|
18136
|
+
event.preventDefault();
|
|
17986
18137
|
this.focusManager.focusLastVisibleNode();
|
|
17987
18138
|
break;
|
|
17988
18139
|
case KeyCodes.Enter:
|
|
17989
|
-
this.
|
|
18140
|
+
this.toggleExpandOrTriggerDefault();
|
|
17990
18141
|
break;
|
|
17991
18142
|
case KeyCodes.Space:
|
|
17992
18143
|
case KeyCodes.Spacebar:
|
|
17993
18144
|
// to prevent scrolling on space key in this specific case
|
|
17994
18145
|
event.preventDefault();
|
|
17995
|
-
this.
|
|
18146
|
+
this.toggleExpandOrTriggerDefault();
|
|
17996
18147
|
break;
|
|
17997
18148
|
default:
|
|
17998
18149
|
break;
|
|
@@ -18001,9 +18152,9 @@ class ClrTreeNode {
|
|
|
18001
18152
|
get isParent() {
|
|
18002
18153
|
return this._model.children && this._model.children.length > 0;
|
|
18003
18154
|
}
|
|
18004
|
-
|
|
18155
|
+
toggleExpandOrTriggerDefault() {
|
|
18005
18156
|
if (this.isExpandable() && !this.isSelectable()) {
|
|
18006
|
-
this.
|
|
18157
|
+
this.expandService.expanded = !this.expanded;
|
|
18007
18158
|
}
|
|
18008
18159
|
else {
|
|
18009
18160
|
this.triggerDefaultAction();
|
|
@@ -18049,7 +18200,7 @@ ClrTreeNode.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "
|
|
|
18049
18200
|
TREE_FEATURES_PROVIDER,
|
|
18050
18201
|
IfExpandService,
|
|
18051
18202
|
{ provide: LoadingListener, useExisting: IfExpandService },
|
|
18052
|
-
], 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:
|
|
18203
|
+
], 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: [
|
|
18053
18204
|
trigger('toggleChildrenAnim', [
|
|
18054
18205
|
transition('collapsed => expanded', [style({ height: 0 }), animate(200, style({ height: '*' }))]),
|
|
18055
18206
|
transition('expanded => collapsed', [style({ height: '*' }), animate(200, style({ height: 0 }))]),
|
|
@@ -18159,7 +18310,7 @@ ClrTree.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0
|
|
|
18159
18310
|
*ngIf="featuresService.recursion"
|
|
18160
18311
|
[children]="featuresService.recursion.root"
|
|
18161
18312
|
></clr-recursive-children>
|
|
18162
|
-
`, isInline: true, components: [{ type: RecursiveChildren, selector: "clr-recursive-children", inputs: ["parent", "children"] }], directives: [{ type:
|
|
18313
|
+
`, isInline: true, components: [{ type: RecursiveChildren, selector: "clr-recursive-children", inputs: ["parent", "children"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
18163
18314
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrTree, decorators: [{
|
|
18164
18315
|
type: Component,
|
|
18165
18316
|
args: [{
|
|
@@ -18436,7 +18587,7 @@ class DropdownFocusHandler {
|
|
|
18436
18587
|
* If the dropdown was opened by clicking on the trigger, we automatically move to the first item
|
|
18437
18588
|
*/
|
|
18438
18589
|
moveToFirstItemWhenOpen() {
|
|
18439
|
-
this.toggleService.openChange.subscribe(open => {
|
|
18590
|
+
const subscription = this.toggleService.openChange.subscribe(open => {
|
|
18440
18591
|
if (open && this.toggleService.originalEvent) {
|
|
18441
18592
|
// Even if we properly waited for ngAfterViewInit, the container still wouldn't be attached to the DOM.
|
|
18442
18593
|
// So setTimeout is the only way to wait for the container to be ready to move focus to first item.
|
|
@@ -18451,12 +18602,13 @@ class DropdownFocusHandler {
|
|
|
18451
18602
|
});
|
|
18452
18603
|
}
|
|
18453
18604
|
});
|
|
18605
|
+
this._unlistenFuncs.push(() => subscription.unsubscribe());
|
|
18454
18606
|
}
|
|
18455
18607
|
/**
|
|
18456
18608
|
* Focus on the menu when it opens, and focus back on the root trigger when the whole dropdown becomes closed
|
|
18457
18609
|
*/
|
|
18458
18610
|
handleRootFocus() {
|
|
18459
|
-
this.toggleService.openChange.subscribe(open => {
|
|
18611
|
+
const subscription = this.toggleService.openChange.subscribe(open => {
|
|
18460
18612
|
if (!open) {
|
|
18461
18613
|
// We reset the state of the focus service both on initialization and when closing.
|
|
18462
18614
|
this.focusService.reset(this);
|
|
@@ -18467,6 +18619,7 @@ class DropdownFocusHandler {
|
|
|
18467
18619
|
}
|
|
18468
18620
|
this.focusBackOnTrigger = open;
|
|
18469
18621
|
});
|
|
18622
|
+
this._unlistenFuncs.push(() => subscription.unsubscribe());
|
|
18470
18623
|
}
|
|
18471
18624
|
get trigger() {
|
|
18472
18625
|
return this._trigger;
|
|
@@ -19084,6 +19237,7 @@ class AbstractPopover {
|
|
|
19084
19237
|
* a separate directive on the host. So let's do dirty but performant for now.
|
|
19085
19238
|
*/
|
|
19086
19239
|
this.closeOnOutsideClick = false;
|
|
19240
|
+
this.documentESCListener = null;
|
|
19087
19241
|
this.closeOnOutsideClickCallback = event => {
|
|
19088
19242
|
// The anchor element containing the click event origin means, the click wasn't triggered outside.
|
|
19089
19243
|
if (this.anchorElem.contains(event.target)) {
|
|
@@ -19094,6 +19248,8 @@ class AbstractPopover {
|
|
|
19094
19248
|
this.el = injector.get(ElementRef);
|
|
19095
19249
|
this.toggleService = injector.get(ClrPopoverToggleService);
|
|
19096
19250
|
this.renderer = injector.get(Renderer2);
|
|
19251
|
+
this.ngZone = injector.get(NgZone);
|
|
19252
|
+
this.ref = injector.get(ChangeDetectorRef);
|
|
19097
19253
|
// Default anchor is the parent host
|
|
19098
19254
|
this.anchorElem = parentHost.nativeElement;
|
|
19099
19255
|
this.popoverInstance = new Popover(this.el.nativeElement);
|
|
@@ -19143,20 +19299,26 @@ class AbstractPopover {
|
|
|
19143
19299
|
return this.toggleService.open ? false : true;
|
|
19144
19300
|
}
|
|
19145
19301
|
attachESCListener() {
|
|
19146
|
-
if (
|
|
19302
|
+
if (this.popoverOptions.ignoreGlobalESCListener) {
|
|
19303
|
+
return;
|
|
19304
|
+
}
|
|
19305
|
+
this.ngZone.runOutsideAngular(() => {
|
|
19147
19306
|
this.documentESCListener = this.renderer.listen('document', 'keydown', event => {
|
|
19148
19307
|
if (event && event.key) {
|
|
19149
19308
|
if (event.key === 'Escape' || event.key === 'Esc') {
|
|
19150
|
-
this.
|
|
19309
|
+
this.ngZone.run(() => {
|
|
19310
|
+
this.toggleService.open = false;
|
|
19311
|
+
this.ref.markForCheck();
|
|
19312
|
+
});
|
|
19151
19313
|
}
|
|
19152
19314
|
}
|
|
19153
19315
|
});
|
|
19154
|
-
}
|
|
19316
|
+
});
|
|
19155
19317
|
}
|
|
19156
19318
|
detachESCListener() {
|
|
19157
19319
|
if (this.documentESCListener) {
|
|
19158
19320
|
this.documentESCListener();
|
|
19159
|
-
|
|
19321
|
+
this.documentESCListener = null;
|
|
19160
19322
|
}
|
|
19161
19323
|
}
|
|
19162
19324
|
attachOutsideClickListener() {
|
|
@@ -19607,7 +19769,7 @@ class ClrAlert {
|
|
|
19607
19769
|
}
|
|
19608
19770
|
}
|
|
19609
19771
|
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 });
|
|
19610
|
-
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:
|
|
19772
|
+
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" }] });
|
|
19611
19773
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrAlert, decorators: [{
|
|
19612
19774
|
type: Component,
|
|
19613
19775
|
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" }]
|
|
@@ -19812,7 +19974,7 @@ class ClrAlerts {
|
|
|
19812
19974
|
}
|
|
19813
19975
|
}
|
|
19814
19976
|
ClrAlerts.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrAlerts, deps: [{ token: MultiAlertService }], target: i0.ɵɵFactoryTarget.Component });
|
|
19815
|
-
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:
|
|
19977
|
+
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"] }] });
|
|
19816
19978
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrAlerts, decorators: [{
|
|
19817
19979
|
type: Component,
|
|
19818
19980
|
args: [{ selector: 'clr-alerts', providers: [MultiAlertService], host: {
|
|
@@ -20124,6 +20286,11 @@ class ClrHeader {
|
|
|
20124
20286
|
this.initializeNavTriggers(navLevelList);
|
|
20125
20287
|
},
|
|
20126
20288
|
});
|
|
20289
|
+
this._subscription.add(this.responsiveNavService.navControl
|
|
20290
|
+
.pipe(filter(({ controlCode }) => controlCode === ResponsiveNavCodes.NAV_CLOSE || controlCode === ResponsiveNavCodes.NAV_CLOSE_ALL))
|
|
20291
|
+
.subscribe(() => {
|
|
20292
|
+
this.openNavLevel = null;
|
|
20293
|
+
}));
|
|
20127
20294
|
}
|
|
20128
20295
|
get responsiveNavCommonString() {
|
|
20129
20296
|
const myCommonStrings = this.commonStrings.keys;
|
|
@@ -20168,10 +20335,21 @@ class ClrHeader {
|
|
|
20168
20335
|
closeOpenNav() {
|
|
20169
20336
|
this.responsiveNavService.closeAllNavs();
|
|
20170
20337
|
}
|
|
20171
|
-
|
|
20338
|
+
/**
|
|
20339
|
+
* @deprecated Will be removed in with @clr/angular v15.0.0
|
|
20340
|
+
*
|
|
20341
|
+
* Use `openNav(navLevel)` instead to open the navigation and ResponsiveNavService to close it.
|
|
20342
|
+
*/
|
|
20172
20343
|
toggleNav(navLevel) {
|
|
20173
|
-
|
|
20174
|
-
|
|
20344
|
+
if (this.openNavLevel === navLevel) {
|
|
20345
|
+
this.responsiveNavService.sendControlMessage(ResponsiveNavCodes.NAV_CLOSE, navLevel);
|
|
20346
|
+
return;
|
|
20347
|
+
}
|
|
20348
|
+
this.openNav(navLevel);
|
|
20349
|
+
}
|
|
20350
|
+
openNav(navLevel) {
|
|
20351
|
+
this.openNavLevel = navLevel;
|
|
20352
|
+
this.responsiveNavService.sendControlMessage(ResponsiveNavCodes.NAV_OPEN, navLevel);
|
|
20175
20353
|
}
|
|
20176
20354
|
ngOnDestroy() {
|
|
20177
20355
|
this._subscription.unsubscribe();
|
|
@@ -20185,7 +20363,7 @@ ClrHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13
|
|
|
20185
20363
|
class="header-hamburger-trigger"
|
|
20186
20364
|
[attr.aria-label]="responsiveNavCommonString"
|
|
20187
20365
|
[attr.aria-expanded]="openNavLevel === 1 ? 'true' : 'false'"
|
|
20188
|
-
(click)="
|
|
20366
|
+
(click)="openNav(responsiveNavCodes.NAV_LEVEL_1)"
|
|
20189
20367
|
>
|
|
20190
20368
|
<span></span>
|
|
20191
20369
|
</button>
|
|
@@ -20196,12 +20374,12 @@ ClrHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13
|
|
|
20196
20374
|
class="header-overflow-trigger"
|
|
20197
20375
|
[attr.aria-label]="responsiveOverflowCommonString"
|
|
20198
20376
|
[attr.aria-expanded]="openNavLevel === 2 ? 'true' : 'false'"
|
|
20199
|
-
(click)="
|
|
20377
|
+
(click)="openNav(responsiveNavCodes.NAV_LEVEL_2)"
|
|
20200
20378
|
>
|
|
20201
20379
|
<span></span>
|
|
20202
20380
|
</button>
|
|
20203
20381
|
<div class="header-backdrop" (click)="closeOpenNav()"></div>
|
|
20204
|
-
`, isInline: true, directives: [{ type:
|
|
20382
|
+
`, isInline: true, directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
20205
20383
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrHeader, decorators: [{
|
|
20206
20384
|
type: Component,
|
|
20207
20385
|
args: [{
|
|
@@ -20213,7 +20391,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
20213
20391
|
class="header-hamburger-trigger"
|
|
20214
20392
|
[attr.aria-label]="responsiveNavCommonString"
|
|
20215
20393
|
[attr.aria-expanded]="openNavLevel === 1 ? 'true' : 'false'"
|
|
20216
|
-
(click)="
|
|
20394
|
+
(click)="openNav(responsiveNavCodes.NAV_LEVEL_1)"
|
|
20217
20395
|
>
|
|
20218
20396
|
<span></span>
|
|
20219
20397
|
</button>
|
|
@@ -20224,7 +20402,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
20224
20402
|
class="header-overflow-trigger"
|
|
20225
20403
|
[attr.aria-label]="responsiveOverflowCommonString"
|
|
20226
20404
|
[attr.aria-expanded]="openNavLevel === 2 ? 'true' : 'false'"
|
|
20227
|
-
(click)="
|
|
20405
|
+
(click)="openNav(responsiveNavCodes.NAV_LEVEL_2)"
|
|
20228
20406
|
>
|
|
20229
20407
|
<span></span>
|
|
20230
20408
|
</button>
|
|
@@ -20239,12 +20417,186 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
20239
20417
|
* This software is released under MIT license.
|
|
20240
20418
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
20241
20419
|
*/
|
|
20242
|
-
|
|
20243
|
-
|
|
20420
|
+
function refocusIfOutsideFocusTrapElement(focusedElement, focusTrapElement, elementToRefocus) {
|
|
20421
|
+
const focusTrapIsCurrent = FocusTrapTrackerService.getCurrent() === focusTrapElement;
|
|
20422
|
+
const elementToFocusIsOutsideFocusTrap = elementIsOutsideFocusTrapElement(focusedElement, focusTrapElement);
|
|
20423
|
+
if (focusTrapIsCurrent && elementToFocusIsOutsideFocusTrap) {
|
|
20424
|
+
elementToRefocus = elementToRefocus || focusTrapElement;
|
|
20425
|
+
elementToRefocus.focus();
|
|
20426
|
+
}
|
|
20427
|
+
else {
|
|
20428
|
+
focusedElement.focus();
|
|
20429
|
+
}
|
|
20430
|
+
}
|
|
20431
|
+
function elementIsOutsideFocusTrapElement(focusedElement, focusTrapElement) {
|
|
20432
|
+
if (focusedElement === focusTrapElement.topReboundElement ||
|
|
20433
|
+
focusedElement === focusTrapElement.bottomReboundElement) {
|
|
20434
|
+
return true;
|
|
20435
|
+
}
|
|
20436
|
+
const elementIsInFocusTrapLightDom = focusTrapElement.contains(focusedElement);
|
|
20437
|
+
if (elementIsInFocusTrapLightDom) {
|
|
20438
|
+
return false;
|
|
20439
|
+
}
|
|
20440
|
+
if (focusTrapElement !== null && focusTrapElement.contains(focusedElement)) {
|
|
20441
|
+
return false;
|
|
20442
|
+
}
|
|
20443
|
+
return true;
|
|
20444
|
+
}
|
|
20445
|
+
function createFocusTrapReboundElement(document) {
|
|
20446
|
+
const offScreenSpan = document.createElement('span');
|
|
20447
|
+
offScreenSpan.setAttribute('tabindex', '0');
|
|
20448
|
+
offScreenSpan.classList.add('offscreen-focus-rebounder');
|
|
20449
|
+
return offScreenSpan;
|
|
20450
|
+
}
|
|
20451
|
+
function addReboundElementsToFocusTrapElement(document, focusTrapElement) {
|
|
20452
|
+
if (focusTrapElement && !focusTrapElement.topReboundElement && !focusTrapElement.bottomReboundElement) {
|
|
20453
|
+
focusTrapElement.topReboundElement = createFocusTrapReboundElement(document);
|
|
20454
|
+
focusTrapElement.bottomReboundElement = createFocusTrapReboundElement(document);
|
|
20455
|
+
const parent = focusTrapElement.parentElement;
|
|
20456
|
+
const sibling = focusTrapElement.nextSibling;
|
|
20457
|
+
if (parent) {
|
|
20458
|
+
parent.insertBefore(focusTrapElement.topReboundElement, focusTrapElement);
|
|
20459
|
+
if (sibling) {
|
|
20460
|
+
parent.insertBefore(focusTrapElement.bottomReboundElement, sibling);
|
|
20461
|
+
}
|
|
20462
|
+
else {
|
|
20463
|
+
parent.appendChild(focusTrapElement.bottomReboundElement);
|
|
20464
|
+
}
|
|
20465
|
+
}
|
|
20466
|
+
}
|
|
20467
|
+
}
|
|
20468
|
+
function removeReboundElementsFromFocusTrapElement(focusTrapElement) {
|
|
20469
|
+
if (focusTrapElement) {
|
|
20470
|
+
const parent = focusTrapElement.parentElement;
|
|
20471
|
+
if (parent) {
|
|
20472
|
+
const topRebound = focusTrapElement.topReboundElement;
|
|
20473
|
+
const bottomRebound = focusTrapElement.bottomReboundElement;
|
|
20474
|
+
if (topRebound) {
|
|
20475
|
+
parent.removeChild(topRebound);
|
|
20476
|
+
}
|
|
20477
|
+
if (bottomRebound) {
|
|
20478
|
+
parent.removeChild(bottomRebound);
|
|
20479
|
+
}
|
|
20480
|
+
}
|
|
20481
|
+
// These are here to to make sure that we completely delete all traces of the removed DOM objects.
|
|
20482
|
+
delete focusTrapElement.topReboundElement;
|
|
20483
|
+
delete focusTrapElement.bottomReboundElement;
|
|
20484
|
+
}
|
|
20485
|
+
}
|
|
20486
|
+
// this helper exists to enable the focus trap class to handle vanilla html elements
|
|
20487
|
+
// it's primary concern is to keep TS happy.
|
|
20488
|
+
function castHtmlElementToFocusTrapElement(el) {
|
|
20489
|
+
return el;
|
|
20490
|
+
}
|
|
20491
|
+
class FocusTrap {
|
|
20492
|
+
constructor(renderer, injector, platformId, hostElement) {
|
|
20493
|
+
this.renderer = renderer;
|
|
20494
|
+
this.active = false;
|
|
20495
|
+
if (isPlatformBrowser(platformId)) {
|
|
20496
|
+
this._document = injector.get(DOCUMENT);
|
|
20497
|
+
}
|
|
20498
|
+
hostElement = castHtmlElementToFocusTrapElement(hostElement);
|
|
20499
|
+
if (!hostElement.focusTrapId) {
|
|
20500
|
+
hostElement.focusTrapId = createId();
|
|
20501
|
+
}
|
|
20502
|
+
this.focusTrapElement = hostElement;
|
|
20503
|
+
}
|
|
20504
|
+
enableFocusTrap() {
|
|
20505
|
+
const fte = this.focusTrapElement;
|
|
20506
|
+
const firstFocusElement = fte.querySelector('[cds-first-focus]');
|
|
20507
|
+
const activeEl = this._document.activeElement;
|
|
20508
|
+
if (FocusTrapTrackerService.getCurrent() === fte) {
|
|
20509
|
+
throw new Error('Focus trap is already enabled for this instance.');
|
|
20510
|
+
}
|
|
20511
|
+
this.firstFocusElement = firstFocusElement || this.focusTrapElement;
|
|
20512
|
+
addReboundElementsToFocusTrapElement(this._document, fte);
|
|
20513
|
+
if (!isFocusable(fte)) {
|
|
20514
|
+
fte.setAttribute('tabindex', '-1');
|
|
20515
|
+
}
|
|
20516
|
+
if (activeEl && isHTMLElement(activeEl)) {
|
|
20517
|
+
this.previousFocus = activeEl;
|
|
20518
|
+
}
|
|
20519
|
+
FocusTrapTrackerService.setCurrent(fte);
|
|
20520
|
+
// setTimeout here is required for Safari which may try to set focus on
|
|
20521
|
+
// element before it is visible...
|
|
20522
|
+
const focusTimer = setTimeout(() => {
|
|
20523
|
+
this.firstFocusElement.focus();
|
|
20524
|
+
clearTimeout(focusTimer);
|
|
20525
|
+
}, 10);
|
|
20526
|
+
this.onFocusInEvent = this.onFocusIn.bind(this);
|
|
20527
|
+
this.unlisten = this.renderer.listen(this._document, 'focusin', this.onFocusInEvent);
|
|
20528
|
+
this.active = true;
|
|
20529
|
+
}
|
|
20530
|
+
removeFocusTrap() {
|
|
20531
|
+
if (this.unlisten) {
|
|
20532
|
+
this.unlisten();
|
|
20533
|
+
}
|
|
20534
|
+
removeReboundElementsFromFocusTrapElement(this.focusTrapElement);
|
|
20535
|
+
this.renderer.removeAttribute(this.focusTrapElement, 'tabindex');
|
|
20536
|
+
FocusTrapTrackerService.activatePreviousCurrent();
|
|
20537
|
+
this.active = false;
|
|
20538
|
+
if (this.previousFocus) {
|
|
20539
|
+
this.previousFocus.focus();
|
|
20540
|
+
}
|
|
20541
|
+
}
|
|
20542
|
+
onFocusIn(event) {
|
|
20543
|
+
refocusIfOutsideFocusTrapElement(event.composedPath()[0], this.focusTrapElement, this.firstFocusElement);
|
|
20544
|
+
}
|
|
20545
|
+
}
|
|
20546
|
+
FocusTrap.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: FocusTrap, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable });
|
|
20547
|
+
FocusTrap.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: FocusTrap });
|
|
20548
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: FocusTrap, decorators: [{
|
|
20549
|
+
type: Injectable
|
|
20550
|
+
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.Injector }, { type: undefined }, { type: undefined }]; } });
|
|
20551
|
+
|
|
20552
|
+
/*
|
|
20553
|
+
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
20554
|
+
* This software is released under MIT license.
|
|
20555
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
20556
|
+
*/
|
|
20557
|
+
const createCdsCloseButton = (document, ariaLabel) => {
|
|
20558
|
+
const cdsCloseButton = document.createElement('cds-internal-close-button');
|
|
20559
|
+
cdsCloseButton.setAttribute('icon-size', '32');
|
|
20560
|
+
cdsCloseButton.setAttribute('aria-label', ariaLabel);
|
|
20561
|
+
cdsCloseButton.setAttribute('aria-hidden', 'true');
|
|
20562
|
+
cdsCloseButton.setAttribute('type', 'button');
|
|
20563
|
+
/**
|
|
20564
|
+
* The button is hidden by default based on our Desktop-first approach.
|
|
20565
|
+
*/
|
|
20566
|
+
cdsCloseButton.setAttribute('hidden', 'true');
|
|
20567
|
+
cdsCloseButton.className = 'clr-nav-close';
|
|
20568
|
+
return cdsCloseButton;
|
|
20569
|
+
};
|
|
20570
|
+
class ClrNavLevel extends FocusTrap {
|
|
20571
|
+
constructor(platformId, responsiveNavService, elementRef, renderer, injector) {
|
|
20572
|
+
super(renderer, injector, platformId, elementRef.nativeElement);
|
|
20244
20573
|
this.responsiveNavService = responsiveNavService;
|
|
20245
20574
|
this.elementRef = elementRef;
|
|
20575
|
+
this._isOpen = false;
|
|
20576
|
+
if (isPlatformBrowser(platformId)) {
|
|
20577
|
+
this._document = injector.get(DOCUMENT);
|
|
20578
|
+
}
|
|
20579
|
+
this._subscription = responsiveNavService.navControl
|
|
20580
|
+
.pipe(filter(x => x.navLevel === this.level), filter(({ controlCode }) => (controlCode === ResponsiveNavCodes.NAV_OPEN && !this.isOpen) ||
|
|
20581
|
+
(controlCode === ResponsiveNavCodes.NAV_CLOSE && this.isOpen)))
|
|
20582
|
+
.subscribe(({ controlCode }) => {
|
|
20583
|
+
if (controlCode === ResponsiveNavCodes.NAV_OPEN) {
|
|
20584
|
+
this.open();
|
|
20585
|
+
return;
|
|
20586
|
+
}
|
|
20587
|
+
this.close();
|
|
20588
|
+
});
|
|
20589
|
+
this._subscription.add(responsiveNavService.navControl
|
|
20590
|
+
.pipe(filter(({ controlCode }) => controlCode === ResponsiveNavCodes.NAV_CLOSE_ALL))
|
|
20591
|
+
.subscribe(() => this.close()));
|
|
20246
20592
|
}
|
|
20247
20593
|
ngOnInit() {
|
|
20594
|
+
if (!this.closeButtonAriaLabel) {
|
|
20595
|
+
this.closeButtonAriaLabel =
|
|
20596
|
+
this._level === ResponsiveNavCodes.NAV_LEVEL_1
|
|
20597
|
+
? commonStringsDefault.responsiveNavToggleClose
|
|
20598
|
+
: commonStringsDefault.responsiveNavOverflowClose;
|
|
20599
|
+
}
|
|
20248
20600
|
if (this.level !== ResponsiveNavCodes.NAV_LEVEL_1 && this.level !== ResponsiveNavCodes.NAV_LEVEL_2) {
|
|
20249
20601
|
console.error('Nav Level can only be 1 or 2');
|
|
20250
20602
|
return;
|
|
@@ -20252,6 +20604,20 @@ class ClrNavLevel {
|
|
|
20252
20604
|
this.responsiveNavService.registerNav(this.level);
|
|
20253
20605
|
this.addNavClass(this.level);
|
|
20254
20606
|
}
|
|
20607
|
+
ngAfterViewInit() {
|
|
20608
|
+
const closeButton = createCdsCloseButton(this._document, this.closeButtonAriaLabel);
|
|
20609
|
+
this.renderer.listen(closeButton, 'click', this.close.bind(this));
|
|
20610
|
+
this.renderer.insertBefore(this.elementRef.nativeElement, closeButton, this.elementRef.nativeElement.firstChild); // Adding the button at the top of the nav
|
|
20611
|
+
if (this._document.body.clientWidth < LARGE_BREAKPOINT) {
|
|
20612
|
+
/**
|
|
20613
|
+
* Close if the document body is smaller than the large breakpoint for example:
|
|
20614
|
+
* - Refreshing the page
|
|
20615
|
+
* - Browser window size is changed when opening the applicaiton
|
|
20616
|
+
* - Browser zoom is turned on and zoomed to a size that makes the document smaller than the large breakpoint
|
|
20617
|
+
*/
|
|
20618
|
+
this.close();
|
|
20619
|
+
}
|
|
20620
|
+
}
|
|
20255
20621
|
addNavClass(level) {
|
|
20256
20622
|
const navHostClassList = this.elementRef.nativeElement.classList;
|
|
20257
20623
|
if (level === ResponsiveNavCodes.NAV_LEVEL_1) {
|
|
@@ -20268,10 +20634,29 @@ class ClrNavLevel {
|
|
|
20268
20634
|
get responsiveNavCodes() {
|
|
20269
20635
|
return ResponsiveNavCodes;
|
|
20270
20636
|
}
|
|
20637
|
+
get isOpen() {
|
|
20638
|
+
return this._isOpen;
|
|
20639
|
+
}
|
|
20640
|
+
onResize(event) {
|
|
20641
|
+
const target = event.target;
|
|
20642
|
+
if (target.innerWidth < LARGE_BREAKPOINT && this.isOpen) {
|
|
20643
|
+
this.close();
|
|
20644
|
+
return;
|
|
20645
|
+
}
|
|
20646
|
+
this.showNavigation();
|
|
20647
|
+
}
|
|
20271
20648
|
open() {
|
|
20649
|
+
this._isOpen = true;
|
|
20650
|
+
this.showNavigation();
|
|
20651
|
+
this.enableFocusTrap();
|
|
20652
|
+
this.showCloseButton();
|
|
20272
20653
|
this.responsiveNavService.sendControlMessage(ResponsiveNavCodes.NAV_OPEN, this.level);
|
|
20273
20654
|
}
|
|
20274
20655
|
close() {
|
|
20656
|
+
this._isOpen = false;
|
|
20657
|
+
this.hideNavigation();
|
|
20658
|
+
this.removeFocusTrap();
|
|
20659
|
+
this.hideCloseButton();
|
|
20275
20660
|
this.responsiveNavService.sendControlMessage(ResponsiveNavCodes.NAV_CLOSE, this.level);
|
|
20276
20661
|
}
|
|
20277
20662
|
// TODO: Figure out whats the best way to do this. Possible methods
|
|
@@ -20294,18 +20679,44 @@ class ClrNavLevel {
|
|
|
20294
20679
|
current = current.parentNode;
|
|
20295
20680
|
}
|
|
20296
20681
|
}
|
|
20682
|
+
hideNavigation() {
|
|
20683
|
+
this.renderer.setAttribute(this.elementRef.nativeElement, 'aria-hidden', 'true');
|
|
20684
|
+
this.renderer.setAttribute(this.elementRef.nativeElement, 'hidden', 'true');
|
|
20685
|
+
}
|
|
20686
|
+
showNavigation() {
|
|
20687
|
+
this.renderer.setAttribute(this.elementRef.nativeElement, 'aria-hidden', 'false');
|
|
20688
|
+
this.renderer.removeAttribute(this.elementRef.nativeElement, 'hidden');
|
|
20689
|
+
}
|
|
20690
|
+
hideCloseButton() {
|
|
20691
|
+
this.renderer.setAttribute(this.elementRef.nativeElement, 'aria-hidden', 'true');
|
|
20692
|
+
this.renderer.setAttribute(this.elementRef.nativeElement.querySelector('.clr-nav-close'), 'hidden', 'true');
|
|
20693
|
+
}
|
|
20694
|
+
showCloseButton() {
|
|
20695
|
+
this.renderer.setAttribute(this.elementRef.nativeElement.querySelector('.clr-nav-close'), 'aria-hidden', 'false');
|
|
20696
|
+
this.renderer.removeAttribute(this.elementRef.nativeElement.querySelector('.clr-nav-close'), 'hidden');
|
|
20697
|
+
}
|
|
20297
20698
|
ngOnDestroy() {
|
|
20298
20699
|
this.responsiveNavService.unregisterNav(this.level);
|
|
20700
|
+
this._subscription.unsubscribe();
|
|
20299
20701
|
}
|
|
20300
20702
|
}
|
|
20301
|
-
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 });
|
|
20302
|
-
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 });
|
|
20703
|
+
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 });
|
|
20704
|
+
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 });
|
|
20303
20705
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrNavLevel, decorators: [{
|
|
20304
20706
|
type: Directive,
|
|
20305
20707
|
args: [{ selector: '[clr-nav-level]' }]
|
|
20306
|
-
}], ctorParameters: function () { return [{ type:
|
|
20708
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
20709
|
+
type: Inject,
|
|
20710
|
+
args: [PLATFORM_ID]
|
|
20711
|
+
}] }, { type: ResponsiveNavigationService }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.Injector }]; }, propDecorators: { _level: [{
|
|
20307
20712
|
type: Input,
|
|
20308
20713
|
args: ['clr-nav-level']
|
|
20714
|
+
}], closeButtonAriaLabel: [{
|
|
20715
|
+
type: Input,
|
|
20716
|
+
args: ['closeAriaLabel']
|
|
20717
|
+
}], onResize: [{
|
|
20718
|
+
type: HostListener,
|
|
20719
|
+
args: ['window:resize', ['$event']]
|
|
20309
20720
|
}], onMouseClick: [{
|
|
20310
20721
|
type: HostListener,
|
|
20311
20722
|
args: ['click', ['$event.target']]
|
|
@@ -20962,7 +21373,7 @@ ClrTabs.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0
|
|
|
20962
21373
|
</ng-container>
|
|
20963
21374
|
</ul>
|
|
20964
21375
|
<ng-container #tabContentViewContainer></ng-container>
|
|
20965
|
-
`, isInline: true, components: [{ type: ClrKeyFocus, selector: "[clrKeyFocus]", inputs: ["clrDirection", "clrFocusOnLoad", "clrKeyFocus"], outputs: ["clrFocusChange"] }, { type: ClrTabOverflowContent, selector: "clr-tab-overflow-content" }], directives: [{ type:
|
|
21376
|
+
`, 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" }] });
|
|
20966
21377
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrTabs, decorators: [{
|
|
20967
21378
|
type: Component,
|
|
20968
21379
|
args: [{
|
|
@@ -21242,7 +21653,7 @@ class ClrVerticalNav {
|
|
|
21242
21653
|
}
|
|
21243
21654
|
}
|
|
21244
21655
|
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 });
|
|
21245
|
-
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:
|
|
21656
|
+
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" }] });
|
|
21246
21657
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrVerticalNav, decorators: [{
|
|
21247
21658
|
type: Component,
|
|
21248
21659
|
args: [{ selector: 'clr-vertical-nav', providers: [VerticalNavService, VerticalNavIconService, VerticalNavGroupRegistrationService], host: {
|
|
@@ -21409,7 +21820,7 @@ class ClrVerticalNavGroup {
|
|
|
21409
21820
|
}
|
|
21410
21821
|
}
|
|
21411
21822
|
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 });
|
|
21412
|
-
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]=\"
|
|
21823
|
+
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: [
|
|
21413
21824
|
trigger('clrExpand', [
|
|
21414
21825
|
state(EXPANDED_STATE, style({ height: '*' })),
|
|
21415
21826
|
state(COLLAPSED_STATE, style({ height: 0, 'overflow-y': 'hidden', visibility: 'hidden' })),
|
|
@@ -21424,7 +21835,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
21424
21835
|
state(COLLAPSED_STATE, style({ height: 0, 'overflow-y': 'hidden', visibility: 'hidden' })),
|
|
21425
21836
|
transition(`${EXPANDED_STATE} <=> ${COLLAPSED_STATE}`, animate('0.2s ease-in-out')),
|
|
21426
21837
|
]),
|
|
21427
|
-
], 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]=\"
|
|
21838
|
+
], 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" }]
|
|
21428
21839
|
}], ctorParameters: function () { return [{ type: IfExpandService }, { type: VerticalNavGroupRegistrationService }, { type: VerticalNavGroupService }, { type: VerticalNavService }, { type: ClrCommonStringsService }]; }, propDecorators: { expanded: [{
|
|
21429
21840
|
type: HostBinding,
|
|
21430
21841
|
args: ['class.is-expanded']
|
|
@@ -21483,17 +21894,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
21483
21894
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
21484
21895
|
*/
|
|
21485
21896
|
class ClrVerticalNavLink {
|
|
21486
|
-
constructor(
|
|
21487
|
-
this.
|
|
21897
|
+
constructor(host, ref, navGroupService) {
|
|
21898
|
+
this.destroy$ = new Subject();
|
|
21899
|
+
// Note: since the `VerticalNavGroupService` is an optional provider, we'll setup the event
|
|
21900
|
+
// listener only when the `[clrVerticalLink]` is located within the `clr-vertical-nav-group`.
|
|
21901
|
+
navGroupService &&
|
|
21902
|
+
fromEvent(host.nativeElement, 'click')
|
|
21903
|
+
.pipe(takeUntil(this.destroy$))
|
|
21904
|
+
.subscribe(() => {
|
|
21905
|
+
navGroupService.expand();
|
|
21906
|
+
ref.markForCheck();
|
|
21907
|
+
});
|
|
21488
21908
|
}
|
|
21489
|
-
|
|
21490
|
-
|
|
21491
|
-
this._navGroupService.expand();
|
|
21492
|
-
}
|
|
21909
|
+
ngOnDestroy() {
|
|
21910
|
+
this.destroy$.next();
|
|
21493
21911
|
}
|
|
21494
21912
|
}
|
|
21495
|
-
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 });
|
|
21496
|
-
ClrVerticalNavLink.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrVerticalNavLink, selector: "[clrVerticalNavLink]", host: {
|
|
21913
|
+
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 });
|
|
21914
|
+
ClrVerticalNavLink.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ClrVerticalNavLink, selector: "[clrVerticalNavLink]", host: { classAttribute: "nav-link" }, ngImport: i0, template: `
|
|
21497
21915
|
<ng-content select="[clrVerticalNavIcon]"></ng-content>
|
|
21498
21916
|
<span class="nav-text">
|
|
21499
21917
|
<ng-content></ng-content>
|
|
@@ -21511,12 +21929,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
|
|
|
21511
21929
|
`,
|
|
21512
21930
|
host: { class: 'nav-link' },
|
|
21513
21931
|
}]
|
|
21514
|
-
}], ctorParameters: function () { return [{ type: VerticalNavGroupService, decorators: [{
|
|
21932
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: VerticalNavGroupService, decorators: [{
|
|
21515
21933
|
type: Optional
|
|
21516
|
-
}
|
|
21517
|
-
|
|
21518
|
-
|
|
21519
|
-
|
|
21934
|
+
}, {
|
|
21935
|
+
type: Inject,
|
|
21936
|
+
args: [VerticalNavGroupService]
|
|
21937
|
+
}] }]; } });
|
|
21520
21938
|
|
|
21521
21939
|
/*
|
|
21522
21940
|
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
@@ -21659,7 +22077,7 @@ class ClrModal {
|
|
|
21659
22077
|
}
|
|
21660
22078
|
}
|
|
21661
22079
|
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 });
|
|
21662
|
-
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:
|
|
22080
|
+
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: [
|
|
21663
22081
|
trigger('fadeDown', [
|
|
21664
22082
|
transition('* => false', [style({ opacity: 0, transform: 'translate(0, -25%)' }), animate('0.2s ease-in-out')]),
|
|
21665
22083
|
transition('false => *', [animate('0.2s ease-in-out', style({ opacity: 0, transform: 'translate(0, -25%)' }))]),
|
|
@@ -21752,7 +22170,8 @@ class ClrModalBody {
|
|
|
21752
22170
|
this.tabindex = '0';
|
|
21753
22171
|
this.unlisteners = [];
|
|
21754
22172
|
ngZone.runOutsideAngular(() => {
|
|
21755
|
-
new ResizeObserver(() => this.addOrRemoveTabIndex())
|
|
22173
|
+
this.observer = new ResizeObserver(() => this.addOrRemoveTabIndex());
|
|
22174
|
+
this.observer.observe(this.host.nativeElement);
|
|
21756
22175
|
this.unlisteners.push(this.renderer.listen(this.host.nativeElement, 'mouseup', () => {
|
|
21757
22176
|
// set the tabindex binding back when click is completed with mouseup
|
|
21758
22177
|
this.addOrRemoveTabIndex();
|
|
@@ -21767,6 +22186,8 @@ class ClrModalBody {
|
|
|
21767
22186
|
while (this.unlisteners.length) {
|
|
21768
22187
|
this.unlisteners.pop()();
|
|
21769
22188
|
}
|
|
22189
|
+
this.observer.disconnect();
|
|
22190
|
+
this.observer = null;
|
|
21770
22191
|
}
|
|
21771
22192
|
addTabIndex() {
|
|
21772
22193
|
this.renderer.setAttribute(this.host.nativeElement, 'tabindex', this.tabindex);
|
|
@@ -21931,6 +22352,7 @@ class ClrSignpostContent extends AbstractPopover {
|
|
|
21931
22352
|
this.popoverOptions.offsetX = setPosition.offsetX;
|
|
21932
22353
|
}
|
|
21933
22354
|
ngOnDestroy() {
|
|
22355
|
+
super.ngOnDestroy();
|
|
21934
22356
|
if (isPlatformBrowser(this.platformId) && this.el.nativeElement.contains(this.document.activeElement)) {
|
|
21935
22357
|
this.signpostFocusManager.focusTrigger();
|
|
21936
22358
|
}
|
|
@@ -24201,7 +24623,7 @@ ClrWizardStepnavItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", v
|
|
|
24201
24623
|
<span *ngIf="hasError" class="clr-sr-only">{{ commonStrings.keys.wizardStepError }}</span>
|
|
24202
24624
|
<span *ngIf="!hasError && isComplete" class="clr-sr-only">{{ commonStrings.keys.wizardStepSuccess }}</span>
|
|
24203
24625
|
</button>
|
|
24204
|
-
`, isInline: true, directives: [{ type:
|
|
24626
|
+
`, 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"] }] });
|
|
24205
24627
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrWizardStepnavItem, decorators: [{
|
|
24206
24628
|
type: Component,
|
|
24207
24629
|
args: [{
|
|
@@ -24269,7 +24691,7 @@ ClrWizardStepnav.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versi
|
|
|
24269
24691
|
{{ i + 1 }}
|
|
24270
24692
|
</div>
|
|
24271
24693
|
</div>
|
|
24272
|
-
`, isInline: true, components: [{ type: ClrWizardStepnavItem, selector: "[clr-wizard-stepnav-item]", inputs: ["page"] }], directives: [{ type:
|
|
24694
|
+
`, isInline: true, components: [{ type: ClrWizardStepnavItem, selector: "[clr-wizard-stepnav-item]", inputs: ["page"] }], directives: [{ type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
24273
24695
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrWizardStepnav, decorators: [{
|
|
24274
24696
|
type: Component,
|
|
24275
24697
|
args: [{
|
|
@@ -24688,7 +25110,7 @@ ClrWizard.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13
|
|
|
24688
25110
|
ButtonHubService,
|
|
24689
25111
|
HeaderActionService,
|
|
24690
25112
|
UNIQUE_ID_PROVIDER,
|
|
24691
|
-
], 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:
|
|
25113
|
+
], 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" }] });
|
|
24692
25114
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrWizard, decorators: [{
|
|
24693
25115
|
type: Component,
|
|
24694
25116
|
args: [{ selector: 'clr-wizard', providers: [
|
|
@@ -25265,7 +25687,7 @@ class ClrAccordionPanel {
|
|
|
25265
25687
|
}
|
|
25266
25688
|
}
|
|
25267
25689
|
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 });
|
|
25268
|
-
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:
|
|
25690
|
+
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 });
|
|
25269
25691
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrAccordionPanel, decorators: [{
|
|
25270
25692
|
type: Component,
|
|
25271
25693
|
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" }]
|
|
@@ -25697,7 +26119,7 @@ class ClrStepperPanel extends ClrAccordionPanel {
|
|
|
25697
26119
|
}
|
|
25698
26120
|
}
|
|
25699
26121
|
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 });
|
|
25700
|
-
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:
|
|
26122
|
+
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 });
|
|
25701
26123
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrStepperPanel, decorators: [{
|
|
25702
26124
|
type: Component,
|
|
25703
26125
|
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" }]
|
|
@@ -26010,7 +26432,7 @@ ClrProgressBar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version:
|
|
|
26010
26432
|
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: `
|
|
26011
26433
|
<progress [id]="id" [attr.max]="max" [attr.value]="value" [attr.data-displayval]="displayValue"></progress>
|
|
26012
26434
|
<span *ngIf="displayStringValue()">{{ displayValue }}</span>
|
|
26013
|
-
`, isInline: true, directives: [{ type:
|
|
26435
|
+
`, isInline: true, directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
26014
26436
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrProgressBar, decorators: [{
|
|
26015
26437
|
type: Component,
|
|
26016
26438
|
args: [{
|
|
@@ -26282,7 +26704,7 @@ ClrTimelineStep.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
|
|
|
26282
26704
|
<ng-template #processing>
|
|
26283
26705
|
<clr-spinner clrMedium [attr.aria-label]="iconAriaLabel"></clr-spinner>
|
|
26284
26706
|
</ng-template>
|
|
26285
|
-
`, isInline: true, components: [{ type: ClrSpinner, selector: "clr-spinner", inputs: ["clrInline", "clrInverse", "clrSmall", "clrMedium"] }], directives: [{ type:
|
|
26707
|
+
`, 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" }] });
|
|
26286
26708
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ClrTimelineStep, decorators: [{
|
|
26287
26709
|
type: Component,
|
|
26288
26710
|
args: [{
|
|
@@ -26757,5 +27179,5 @@ const CLR_MENU_POSITIONS = [
|
|
|
26757
27179
|
* Generated bundle index. Do not edit.
|
|
26758
27180
|
*/
|
|
26759
27181
|
|
|
26760
|
-
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 };
|
|
27182
|
+
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 };
|
|
26761
27183
|
//# sourceMappingURL=clr-angular.mjs.map
|