@clr/angular 15.7.0 → 15.9.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/clarity.api.md +11 -9
- package/data/datagrid/datagrid-pagination.d.ts +8 -8
- package/data/stack-view/stack-block.d.ts +2 -1
- package/esm2020/accordion/accordion-panel.mjs +6 -3
- package/esm2020/data/datagrid/datagrid-pagination.mjs +5 -1
- package/esm2020/data/stack-view/stack-block.mjs +23 -10
- package/esm2020/forms/common/wrapped-control.mjs +10 -18
- package/esm2020/forms/datalist/datalist-container.mjs +3 -1
- package/esm2020/forms/range/range-container.mjs +15 -3
- package/esm2020/layout/nav/header.mjs +1 -5
- package/esm2020/layout/vertical-nav/vertical-nav-group.mjs +3 -3
- package/esm2020/layout/vertical-nav/vertical-nav.mjs +3 -3
- package/esm2020/popover/signpost/signpost.mjs +3 -3
- package/esm2020/utils/i18n/common-strings.default.mjs +5 -5
- package/fesm2015/clr-angular.mjs +66 -44
- package/fesm2015/clr-angular.mjs.map +1 -1
- package/fesm2020/clr-angular.mjs +66 -44
- package/fesm2020/clr-angular.mjs.map +1 -1
- package/forms/range/range-container.d.ts +2 -0
- package/package.json +2 -2
package/fesm2020/clr-angular.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Directive, NgModule, Optional, Input, Injectable, Component, ChangeDetectionStrategy, EventEmitter, Output, ContentChildren, PLATFORM_ID, Inject, ViewChild,
|
|
2
|
+
import { Directive, NgModule, Optional, Input, Injectable, Component, ChangeDetectionStrategy, EventEmitter, HostBinding, Output, ContentChildren, PLATFORM_ID, Inject, ViewChild, HostListener, SkipSelf, Renderer2, InjectionToken, ElementRef, ContentChild, ComponentFactoryResolver, Self, Attribute, LOCALE_ID, ViewContainerRef, NgZone, ChangeDetectorRef, TemplateRef } from '@angular/core';
|
|
3
3
|
import * as i5 from '@angular/common';
|
|
4
4
|
import { CommonModule, isPlatformBrowser, DOCUMENT, NgForOf, getLocaleDayNames, FormStyle, TranslationWidth, getLocaleMonthNames, getLocaleFirstDayOfWeek, getLocaleDateFormat, FormatWidth } from '@angular/common';
|
|
5
5
|
import { ClarityIcons, angleIcon, exclamationCircleIcon, checkCircleIcon, ellipsisHorizontalIcon, windowCloseIcon, eventIcon, calendarIcon, eyeHideIcon, eyeIcon, ellipsisVerticalIcon, viewColumnsIcon, arrowIcon, timesIcon, stepForward2Icon, angleDoubleIcon, filterGridCircleIcon, filterGridIcon, infoCircleIcon, exclamationTriangleIcon, circleIcon, dotCircleIcon, errorStandardIcon, successStandardIcon } from '@cds/core/icon';
|
|
@@ -329,10 +329,10 @@ const commonStringsDefault = {
|
|
|
329
329
|
// Stack View
|
|
330
330
|
stackViewChanged: 'Value changed.',
|
|
331
331
|
// Responsive Nav
|
|
332
|
-
responsiveNavToggleOpen: '
|
|
333
|
-
responsiveNavToggleClose: '
|
|
334
|
-
responsiveNavOverflowOpen: '
|
|
335
|
-
responsiveNavOverflowClose: '
|
|
332
|
+
responsiveNavToggleOpen: 'Open navigation menu',
|
|
333
|
+
responsiveNavToggleClose: 'Close navigation menu',
|
|
334
|
+
responsiveNavOverflowOpen: 'Open navigation overflow menu',
|
|
335
|
+
responsiveNavOverflowClose: 'Close navigation overflow menu',
|
|
336
336
|
//Vertical Nav
|
|
337
337
|
verticalNavToggle: 'Toggle vertical navigation',
|
|
338
338
|
// Timeline steps
|
|
@@ -609,13 +609,16 @@ class ClrAccordionPanel {
|
|
|
609
609
|
}
|
|
610
610
|
}
|
|
611
611
|
ClrAccordionPanel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrAccordionPanel, deps: [{ token: ClrCommonStringsService }, { token: AccordionService }, { token: IfExpandService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
612
|
-
ClrAccordionPanel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", 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], queries: [{ propertyName: "accordionDescription", predicate: ClrAccordionDescription }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"panel | async; let panel\">\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\">{{panelNumber}}.</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 class=\"clr-accordion-content-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", dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: CdsIconCustomTag, selector: "cds-icon" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }], animations: panelAnimation, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
612
|
+
ClrAccordionPanel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrAccordionPanel, selector: "clr-accordion-panel", inputs: { disabled: ["clrAccordionPanelDisabled", "disabled"], panelOpen: ["clrAccordionPanelOpen", "panelOpen"] }, outputs: { panelOpenChange: "clrAccordionPanelOpenChange" }, host: { properties: { "class.clr-accordion-panel": "true", "class.clr-accordion-panel-disabled": "this.disabled" } }, providers: [IfExpandService], queries: [{ propertyName: "accordionDescription", predicate: ClrAccordionDescription }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"panel | async; let panel\">\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\">{{panelNumber}}.</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 class=\"clr-accordion-content-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", dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: CdsIconCustomTag, selector: "cds-icon" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }], animations: panelAnimation, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
613
613
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrAccordionPanel, decorators: [{
|
|
614
614
|
type: Component,
|
|
615
615
|
args: [{ selector: 'clr-accordion-panel', host: { '[class.clr-accordion-panel]': 'true' }, changeDetection: ChangeDetectionStrategy.OnPush, animations: panelAnimation, providers: [IfExpandService], template: "<ng-container *ngIf=\"panel | async; let panel\">\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\">{{panelNumber}}.</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 class=\"clr-accordion-content-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" }]
|
|
616
616
|
}], ctorParameters: function () { return [{ type: ClrCommonStringsService }, { type: AccordionService }, { type: IfExpandService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { disabled: [{
|
|
617
617
|
type: Input,
|
|
618
618
|
args: ['clrAccordionPanelDisabled']
|
|
619
|
+
}, {
|
|
620
|
+
type: HostBinding,
|
|
621
|
+
args: ['class.clr-accordion-panel-disabled']
|
|
619
622
|
}], panelOpen: [{
|
|
620
623
|
type: Input,
|
|
621
624
|
args: ['clrAccordionPanelOpen']
|
|
@@ -4783,14 +4786,11 @@ class WrappedFormControl {
|
|
|
4783
4786
|
this.subscriptions = [];
|
|
4784
4787
|
this.renderer = renderer;
|
|
4785
4788
|
this.el = el;
|
|
4786
|
-
|
|
4787
|
-
this.ngControlService = injector.get(NgControlService);
|
|
4788
|
-
this.ifControlStateService = injector.get(IfControlStateService);
|
|
4789
|
-
this.controlClassService = injector.get(ControlClassService);
|
|
4790
|
-
this.markControlService = injector.get(MarkControlService);
|
|
4791
|
-
}
|
|
4792
|
-
catch (e) {
|
|
4793
|
-
// Swallow errors
|
|
4789
|
+
if (injector) {
|
|
4790
|
+
this.ngControlService = injector.get(NgControlService, null);
|
|
4791
|
+
this.ifControlStateService = injector.get(IfControlStateService, null);
|
|
4792
|
+
this.controlClassService = injector.get(ControlClassService, null);
|
|
4793
|
+
this.markControlService = injector.get(MarkControlService, null);
|
|
4794
4794
|
}
|
|
4795
4795
|
if (this.controlClassService) {
|
|
4796
4796
|
this.controlClassService.initControlClass(renderer, el.nativeElement);
|
|
@@ -4818,15 +4818,10 @@ class WrappedFormControl {
|
|
|
4818
4818
|
ngOnInit() {
|
|
4819
4819
|
this._containerInjector = new HostWrapper(this.wrapperType, this.vcr, this.index);
|
|
4820
4820
|
this.controlIdService = this._containerInjector.get(ControlIdService);
|
|
4821
|
-
|
|
4822
|
-
|
|
4823
|
-
|
|
4824
|
-
|
|
4825
|
-
/**
|
|
4826
|
-
* We suppress error, not all containers will provide `ContainerIdService` so
|
|
4827
|
-
* there could be exception that is not provided.
|
|
4828
|
-
*/
|
|
4829
|
-
}
|
|
4821
|
+
/**
|
|
4822
|
+
* not all containers will provide `ContainerIdService`
|
|
4823
|
+
*/
|
|
4824
|
+
this.containerIdService = this._containerInjector.get(ContainerIdService, null);
|
|
4830
4825
|
if (this._id) {
|
|
4831
4826
|
this.controlIdService.id = this._id;
|
|
4832
4827
|
}
|
|
@@ -7462,6 +7457,7 @@ ClrDatalistContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", v
|
|
|
7462
7457
|
<div class="clr-input-group" [class.clr-focus]="focus">
|
|
7463
7458
|
<ng-content select="[clrDatalistInput]"></ng-content>
|
|
7464
7459
|
<ng-content select="datalist"></ng-content>
|
|
7460
|
+
<cds-icon shape="angle" class="clr-datalist-caret" direction="down"></cds-icon>
|
|
7465
7461
|
</div>
|
|
7466
7462
|
<cds-icon
|
|
7467
7463
|
*ngIf="showInvalid"
|
|
@@ -7495,6 +7491,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
7495
7491
|
<div class="clr-input-group" [class.clr-focus]="focus">
|
|
7496
7492
|
<ng-content select="[clrDatalistInput]"></ng-content>
|
|
7497
7493
|
<ng-content select="datalist"></ng-content>
|
|
7494
|
+
<cds-icon shape="angle" class="clr-datalist-caret" direction="down"></cds-icon>
|
|
7498
7495
|
</div>
|
|
7499
7496
|
<cds-icon
|
|
7500
7497
|
*ngIf="showInvalid"
|
|
@@ -10351,7 +10348,10 @@ class ClrRangeContainer extends ClrAbstractContainer {
|
|
|
10351
10348
|
}
|
|
10352
10349
|
}
|
|
10353
10350
|
getRangeProgressFillWidth() {
|
|
10354
|
-
const input = this.
|
|
10351
|
+
const input = this.selectRangeElement();
|
|
10352
|
+
if (!input) {
|
|
10353
|
+
return this.lastRangeProgressFillWidth;
|
|
10354
|
+
}
|
|
10355
10355
|
const inputWidth = input.offsetWidth;
|
|
10356
10356
|
const inputMinValue = +input.min;
|
|
10357
10357
|
let inputMaxValue = +input.max;
|
|
@@ -10361,7 +10361,16 @@ class ClrRangeContainer extends ClrAbstractContainer {
|
|
|
10361
10361
|
const inputMiddle = (inputMinValue + inputMaxValue) / 2;
|
|
10362
10362
|
const inputValue = !!this.control && this.control.value !== undefined ? this.control.value : inputMiddle;
|
|
10363
10363
|
const valueAsPercent = ((inputValue - inputMinValue) * 100) / (inputMaxValue - inputMinValue);
|
|
10364
|
-
|
|
10364
|
+
this.lastRangeProgressFillWidth = (valueAsPercent * inputWidth) / 100 + 'px';
|
|
10365
|
+
return this.lastRangeProgressFillWidth;
|
|
10366
|
+
}
|
|
10367
|
+
selectRangeElement() {
|
|
10368
|
+
try {
|
|
10369
|
+
return this.renderer.selectRootElement('[clrRange]#' + this.idService.id);
|
|
10370
|
+
}
|
|
10371
|
+
catch {
|
|
10372
|
+
return undefined;
|
|
10373
|
+
}
|
|
10365
10374
|
}
|
|
10366
10375
|
}
|
|
10367
10376
|
ClrRangeContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrRangeContainer, deps: [{ token: LayoutService, optional: true }, { token: ControlClassService }, { token: NgControlService }, { token: i0.Renderer2 }, { token: ControlIdService }, { token: IfControlStateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -13602,7 +13611,7 @@ class ClrSignpost {
|
|
|
13602
13611
|
ClrSignpost.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrSignpost, deps: [{ token: ClrCommonStringsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
13603
13612
|
ClrSignpost.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrSignpost, selector: "clr-signpost", host: { properties: { "class.signpost": "true" } }, providers: [SignpostFocusManager, SignpostIdService], queries: [{ propertyName: "customTrigger", first: true, predicate: ClrSignpostTrigger, descendants: true }], hostDirectives: [{ directive: ClrPopoverHostDirective }], ngImport: i0, template: `
|
|
13604
13613
|
<ng-container *ngIf="!useCustomTrigger">
|
|
13605
|
-
<button type="button" class="signpost-action btn btn-small btn-link" clrSignpostTrigger>
|
|
13614
|
+
<button type="button" class="signpost-action btn btn-small btn-icon btn-link" clrSignpostTrigger>
|
|
13606
13615
|
<cds-icon shape="info-circle" [attr.title]="commonStrings.keys.info"></cds-icon>
|
|
13607
13616
|
</button>
|
|
13608
13617
|
</ng-container>
|
|
@@ -13615,7 +13624,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
13615
13624
|
selector: 'clr-signpost',
|
|
13616
13625
|
template: `
|
|
13617
13626
|
<ng-container *ngIf="!useCustomTrigger">
|
|
13618
|
-
<button type="button" class="signpost-action btn btn-small btn-link" clrSignpostTrigger>
|
|
13627
|
+
<button type="button" class="signpost-action btn btn-small btn-icon btn-link" clrSignpostTrigger>
|
|
13619
13628
|
<cds-icon shape="info-circle" [attr.title]="commonStrings.keys.info"></cds-icon>
|
|
13620
13629
|
</button>
|
|
13621
13630
|
</ng-container>
|
|
@@ -16132,6 +16141,7 @@ class ClrDatagridPagination {
|
|
|
16132
16141
|
return this.page.size;
|
|
16133
16142
|
}
|
|
16134
16143
|
set pageSize(size) {
|
|
16144
|
+
// todo(v16): Remove this check. The property type used to be `string | number`. I kept this check to maintain the no-op if you pass a string.
|
|
16135
16145
|
if (typeof size === 'number') {
|
|
16136
16146
|
this.page.size = size;
|
|
16137
16147
|
}
|
|
@@ -16143,6 +16153,7 @@ class ClrDatagridPagination {
|
|
|
16143
16153
|
return this.page.totalItems;
|
|
16144
16154
|
}
|
|
16145
16155
|
set totalItems(total) {
|
|
16156
|
+
// todo(v16): Remove this check. The property type used to be `string | number`. I kept this check to maintain the no-op if you pass a string.
|
|
16146
16157
|
if (typeof total === 'number') {
|
|
16147
16158
|
this.page.totalItems = total;
|
|
16148
16159
|
}
|
|
@@ -16154,6 +16165,7 @@ class ClrDatagridPagination {
|
|
|
16154
16165
|
return this.page.last;
|
|
16155
16166
|
}
|
|
16156
16167
|
set lastPage(last) {
|
|
16168
|
+
// todo(v16): Remove this check. The property type used to be `string | number`. I kept this check to maintain the no-op if you pass a string.
|
|
16157
16169
|
if (typeof last === 'number') {
|
|
16158
16170
|
this.page.last = last;
|
|
16159
16171
|
}
|
|
@@ -16165,6 +16177,7 @@ class ClrDatagridPagination {
|
|
|
16165
16177
|
return this.page.current;
|
|
16166
16178
|
}
|
|
16167
16179
|
set currentPage(page) {
|
|
16180
|
+
// todo(v16): Remove this check. The property type used to be `string | number`. I kept this check to maintain the no-op if you pass a string.
|
|
16168
16181
|
if (typeof page === 'number') {
|
|
16169
16182
|
this.page.current = page;
|
|
16170
16183
|
}
|
|
@@ -17370,7 +17383,10 @@ class ClrStackBlock {
|
|
|
17370
17383
|
addChild() {
|
|
17371
17384
|
this.expandable = true;
|
|
17372
17385
|
}
|
|
17373
|
-
toggleExpand() {
|
|
17386
|
+
toggleExpand(event) {
|
|
17387
|
+
if (eventIsInputEvent(event)) {
|
|
17388
|
+
return;
|
|
17389
|
+
}
|
|
17374
17390
|
if (this.expandable) {
|
|
17375
17391
|
this.expanded = !this.expanded;
|
|
17376
17392
|
this.expandedChange.emit(this.expanded);
|
|
@@ -17379,6 +17395,12 @@ class ClrStackBlock {
|
|
|
17379
17395
|
getStackChildrenId() {
|
|
17380
17396
|
return this.expanded ? `clr-stack-children-${this.uniqueId}` : null;
|
|
17381
17397
|
}
|
|
17398
|
+
preventDefaultIfNotInputEvent(event) {
|
|
17399
|
+
if (eventIsInputEvent(event)) {
|
|
17400
|
+
return;
|
|
17401
|
+
}
|
|
17402
|
+
event.preventDefault();
|
|
17403
|
+
}
|
|
17382
17404
|
}
|
|
17383
17405
|
ClrStackBlock.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrStackBlock, deps: [{ token: ClrStackBlock, optional: true, skipSelf: true }, { token: ClrCommonStringsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
17384
17406
|
ClrStackBlock.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrStackBlock, selector: "clr-stack-block", inputs: { expanded: ["clrSbExpanded", "expanded"], expandable: ["clrSbExpandable", "expandable"], ariaLevel: ["clrStackViewLevel", "ariaLevel"], setChangedValue: ["clrSbNotifyChange", "setChangedValue"] }, outputs: { expandedChange: "clrSbExpandedChange" }, host: { properties: { "class.stack-block": "true", "attr.role": "\"heading\"", "attr.aria-level": "headingLevel", "class.stack-block-expanded": "this.expanded", "class.stack-block-expandable": "this.expandable", "class.stack-block-changed": "this.getChangedValue", "class.on-focus": "this.onStackLabelFocus" } }, queries: [{ propertyName: "stackBlockTitle", first: true, predicate: ClrStackViewLabel, descendants: true }], ngImport: i0, template: `
|
|
@@ -17386,10 +17408,10 @@ ClrStackBlock.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version:
|
|
|
17386
17408
|
from scrolling when a stack block is toggled via the space key. -->
|
|
17387
17409
|
<div
|
|
17388
17410
|
class="stack-block-label"
|
|
17389
|
-
(click)="toggleExpand()"
|
|
17390
|
-
(keyup.enter)="toggleExpand()"
|
|
17391
|
-
(keyup.space)="toggleExpand()"
|
|
17392
|
-
(keydown.space)="$event
|
|
17411
|
+
(click)="toggleExpand($event)"
|
|
17412
|
+
(keyup.enter)="toggleExpand($event)"
|
|
17413
|
+
(keyup.space)="toggleExpand($event)"
|
|
17414
|
+
(keydown.space)="preventDefaultIfNotInputEvent($event)"
|
|
17393
17415
|
(focus)="focused = true"
|
|
17394
17416
|
(blur)="focused = false"
|
|
17395
17417
|
[id]="uniqueId"
|
|
@@ -17429,10 +17451,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
17429
17451
|
from scrolling when a stack block is toggled via the space key. -->
|
|
17430
17452
|
<div
|
|
17431
17453
|
class="stack-block-label"
|
|
17432
|
-
(click)="toggleExpand()"
|
|
17433
|
-
(keyup.enter)="toggleExpand()"
|
|
17434
|
-
(keyup.space)="toggleExpand()"
|
|
17435
|
-
(keydown.space)="$event
|
|
17454
|
+
(click)="toggleExpand($event)"
|
|
17455
|
+
(keyup.enter)="toggleExpand($event)"
|
|
17456
|
+
(keyup.space)="toggleExpand($event)"
|
|
17457
|
+
(keydown.space)="preventDefaultIfNotInputEvent($event)"
|
|
17436
17458
|
(focus)="focused = true"
|
|
17437
17459
|
(blur)="focused = false"
|
|
17438
17460
|
[id]="uniqueId"
|
|
@@ -17504,6 +17526,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
17504
17526
|
type: HostBinding,
|
|
17505
17527
|
args: ['class.on-focus']
|
|
17506
17528
|
}] } });
|
|
17529
|
+
function eventIsInputEvent(event) {
|
|
17530
|
+
const targetElement = event?.target;
|
|
17531
|
+
return targetElement?.tagName === 'INPUT';
|
|
17532
|
+
}
|
|
17507
17533
|
|
|
17508
17534
|
/*
|
|
17509
17535
|
* Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.
|
|
@@ -20513,7 +20539,6 @@ ClrHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15
|
|
|
20513
20539
|
*ngIf="isNavLevel1OnPage"
|
|
20514
20540
|
class="header-hamburger-trigger"
|
|
20515
20541
|
[attr.aria-label]="responsiveNavCommonString"
|
|
20516
|
-
[attr.aria-expanded]="openNavLevel === 1 ? 'true' : 'false'"
|
|
20517
20542
|
(click)="openNav(responsiveNavCodes.NAV_LEVEL_1)"
|
|
20518
20543
|
>
|
|
20519
20544
|
<span></span>
|
|
@@ -20524,7 +20549,6 @@ ClrHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15
|
|
|
20524
20549
|
*ngIf="isNavLevel2OnPage"
|
|
20525
20550
|
class="header-overflow-trigger"
|
|
20526
20551
|
[attr.aria-label]="responsiveOverflowCommonString"
|
|
20527
|
-
[attr.aria-expanded]="openNavLevel === 2 ? 'true' : 'false'"
|
|
20528
20552
|
(click)="openNav(responsiveNavCodes.NAV_LEVEL_2)"
|
|
20529
20553
|
>
|
|
20530
20554
|
<span></span>
|
|
@@ -20541,7 +20565,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
20541
20565
|
*ngIf="isNavLevel1OnPage"
|
|
20542
20566
|
class="header-hamburger-trigger"
|
|
20543
20567
|
[attr.aria-label]="responsiveNavCommonString"
|
|
20544
|
-
[attr.aria-expanded]="openNavLevel === 1 ? 'true' : 'false'"
|
|
20545
20568
|
(click)="openNav(responsiveNavCodes.NAV_LEVEL_1)"
|
|
20546
20569
|
>
|
|
20547
20570
|
<span></span>
|
|
@@ -20552,7 +20575,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
20552
20575
|
*ngIf="isNavLevel2OnPage"
|
|
20553
20576
|
class="header-overflow-trigger"
|
|
20554
20577
|
[attr.aria-label]="responsiveOverflowCommonString"
|
|
20555
|
-
[attr.aria-expanded]="openNavLevel === 2 ? 'true' : 'false'"
|
|
20556
20578
|
(click)="openNav(responsiveNavCodes.NAV_LEVEL_2)"
|
|
20557
20579
|
>
|
|
20558
20580
|
<span></span>
|
|
@@ -21663,7 +21685,7 @@ class ClrVerticalNav {
|
|
|
21663
21685
|
}
|
|
21664
21686
|
}
|
|
21665
21687
|
ClrVerticalNav.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrVerticalNav, deps: [{ token: VerticalNavService }, { token: VerticalNavIconService }, { token: VerticalNavGroupRegistrationService }, { token: ClrCommonStringsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
21666
|
-
ClrVerticalNav.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", 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-2023 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
|
|
21688
|
+
ClrVerticalNav.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", 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-2023 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 ></cds-icon>\n</button>\n<div class=\"nav-content\">\n <ng-content></ng-content>\n <button\n type=\"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", dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
21667
21689
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrVerticalNav, decorators: [{
|
|
21668
21690
|
type: Component,
|
|
21669
21691
|
args: [{ selector: 'clr-vertical-nav', providers: [VerticalNavService, VerticalNavIconService, VerticalNavGroupRegistrationService], host: {
|
|
@@ -21671,7 +21693,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
21671
21693
|
'[class.is-collapsed]': 'collapsed',
|
|
21672
21694
|
'[class.has-nav-groups]': 'hasNavGroups',
|
|
21673
21695
|
'[class.has-icons]': 'hasIcons',
|
|
21674
|
-
}, template: "<!--\n ~ Copyright (c) 2016-2023 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
|
|
21696
|
+
}, template: "<!--\n ~ Copyright (c) 2016-2023 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 ></cds-icon>\n</button>\n<div class=\"nav-content\">\n <ng-content></ng-content>\n <button\n type=\"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" }]
|
|
21675
21697
|
}], ctorParameters: function () { return [{ type: VerticalNavService }, { type: VerticalNavIconService }, { type: VerticalNavGroupRegistrationService }, { type: ClrCommonStringsService }]; }, propDecorators: { _collapsedChanged: [{
|
|
21676
21698
|
type: Output,
|
|
21677
21699
|
args: ['clrVerticalNavCollapsedChange']
|
|
@@ -21829,7 +21851,7 @@ class ClrVerticalNavGroup {
|
|
|
21829
21851
|
}
|
|
21830
21852
|
}
|
|
21831
21853
|
ClrVerticalNavGroup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrVerticalNavGroup, deps: [{ token: IfExpandService }, { token: VerticalNavGroupRegistrationService }, { token: VerticalNavGroupService }, { token: VerticalNavService }, { token: ClrCommonStringsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
21832
|
-
ClrVerticalNavGroup.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrVerticalNavGroup, selector: "clr-vertical-nav-group", inputs: { userExpandedInput: ["clrVerticalNavGroupExpanded", "userExpandedInput"] }, outputs: { expandedChange: "clrVerticalNavGroupExpandedChange" }, host: { properties: { "class.is-expanded": "this.expanded" }, classAttribute: "nav-group" }, providers: [IfExpandService, VerticalNavGroupService], ngImport: i0, template: "<!--\n ~ Copyright (c) 2016-2023 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 class=\"nav-group-trigger\" type=\"button\" [attr.aria-expanded]=\"expanded\" (click)=\"toggleExpand()\">\n <ng-content select=\"[clrVerticalNavIcon]\"></ng-content>\n <div class=\"nav-group-text\">\n <ng-content></ng-content>\n </div>\n <cds-icon
|
|
21854
|
+
ClrVerticalNavGroup.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrVerticalNavGroup, selector: "clr-vertical-nav-group", inputs: { userExpandedInput: ["clrVerticalNavGroupExpanded", "userExpandedInput"] }, outputs: { expandedChange: "clrVerticalNavGroupExpandedChange" }, host: { properties: { "class.is-expanded": "this.expanded" }, classAttribute: "nav-group" }, providers: [IfExpandService, VerticalNavGroupService], ngImport: i0, template: "<!--\n ~ Copyright (c) 2016-2023 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 class=\"nav-group-trigger\" type=\"button\" [attr.aria-expanded]=\"expanded\" (click)=\"toggleExpand()\">\n <ng-content select=\"[clrVerticalNavIcon]\"></ng-content>\n <div class=\"nav-group-text\">\n <ng-content></ng-content>\n </div>\n <cds-icon shape=\"angle\" class=\"nav-group-trigger-icon\" [attr.direction]=\"expanded ? 'down' : 'right'\"></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", dependencies: [{ kind: "directive", type: CdsIconCustomTag, selector: "cds-icon" }], animations: [
|
|
21833
21855
|
trigger('clrExpand', [
|
|
21834
21856
|
state(EXPANDED_STATE, style({ height: '*' })),
|
|
21835
21857
|
state(COLLAPSED_STATE, style({ height: 0, visibility: 'hidden' })),
|
|
@@ -21844,7 +21866,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
21844
21866
|
state(COLLAPSED_STATE, style({ height: 0, visibility: 'hidden' })),
|
|
21845
21867
|
transition(`${EXPANDED_STATE} <=> ${COLLAPSED_STATE}`, animate('0.2s ease-in-out')),
|
|
21846
21868
|
]),
|
|
21847
|
-
], host: { class: 'nav-group' }, template: "<!--\n ~ Copyright (c) 2016-2023 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 class=\"nav-group-trigger\" type=\"button\" [attr.aria-expanded]=\"expanded\" (click)=\"toggleExpand()\">\n <ng-content select=\"[clrVerticalNavIcon]\"></ng-content>\n <div class=\"nav-group-text\">\n <ng-content></ng-content>\n </div>\n <cds-icon
|
|
21869
|
+
], host: { class: 'nav-group' }, template: "<!--\n ~ Copyright (c) 2016-2023 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 class=\"nav-group-trigger\" type=\"button\" [attr.aria-expanded]=\"expanded\" (click)=\"toggleExpand()\">\n <ng-content select=\"[clrVerticalNavIcon]\"></ng-content>\n <div class=\"nav-group-text\">\n <ng-content></ng-content>\n </div>\n <cds-icon shape=\"angle\" class=\"nav-group-trigger-icon\" [attr.direction]=\"expanded ? 'down' : 'right'\"></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" }]
|
|
21848
21870
|
}], ctorParameters: function () { return [{ type: IfExpandService }, { type: VerticalNavGroupRegistrationService }, { type: VerticalNavGroupService }, { type: VerticalNavService }, { type: ClrCommonStringsService }]; }, propDecorators: { expandedChange: [{
|
|
21849
21871
|
type: Output,
|
|
21850
21872
|
args: ['clrVerticalNavGroupExpandedChange']
|