@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/fesm2015/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';
|
|
@@ -331,10 +331,10 @@ const commonStringsDefault = {
|
|
|
331
331
|
// Stack View
|
|
332
332
|
stackViewChanged: 'Value changed.',
|
|
333
333
|
// Responsive Nav
|
|
334
|
-
responsiveNavToggleOpen: '
|
|
335
|
-
responsiveNavToggleClose: '
|
|
336
|
-
responsiveNavOverflowOpen: '
|
|
337
|
-
responsiveNavOverflowClose: '
|
|
334
|
+
responsiveNavToggleOpen: 'Open navigation menu',
|
|
335
|
+
responsiveNavToggleClose: 'Close navigation menu',
|
|
336
|
+
responsiveNavOverflowOpen: 'Open navigation overflow menu',
|
|
337
|
+
responsiveNavOverflowClose: 'Close navigation overflow menu',
|
|
338
338
|
//Vertical Nav
|
|
339
339
|
verticalNavToggle: 'Toggle vertical navigation',
|
|
340
340
|
// Timeline steps
|
|
@@ -611,13 +611,16 @@ class ClrAccordionPanel {
|
|
|
611
611
|
}
|
|
612
612
|
}
|
|
613
613
|
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 });
|
|
614
|
-
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 });
|
|
614
|
+
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 });
|
|
615
615
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrAccordionPanel, decorators: [{
|
|
616
616
|
type: Component,
|
|
617
617
|
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" }]
|
|
618
618
|
}], ctorParameters: function () { return [{ type: ClrCommonStringsService }, { type: AccordionService }, { type: IfExpandService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { disabled: [{
|
|
619
619
|
type: Input,
|
|
620
620
|
args: ['clrAccordionPanelDisabled']
|
|
621
|
+
}, {
|
|
622
|
+
type: HostBinding,
|
|
623
|
+
args: ['class.clr-accordion-panel-disabled']
|
|
621
624
|
}], panelOpen: [{
|
|
622
625
|
type: Input,
|
|
623
626
|
args: ['clrAccordionPanelOpen']
|
|
@@ -4802,14 +4805,11 @@ class WrappedFormControl {
|
|
|
4802
4805
|
this.subscriptions = [];
|
|
4803
4806
|
this.renderer = renderer;
|
|
4804
4807
|
this.el = el;
|
|
4805
|
-
|
|
4806
|
-
this.ngControlService = injector.get(NgControlService);
|
|
4807
|
-
this.ifControlStateService = injector.get(IfControlStateService);
|
|
4808
|
-
this.controlClassService = injector.get(ControlClassService);
|
|
4809
|
-
this.markControlService = injector.get(MarkControlService);
|
|
4810
|
-
}
|
|
4811
|
-
catch (e) {
|
|
4812
|
-
// Swallow errors
|
|
4808
|
+
if (injector) {
|
|
4809
|
+
this.ngControlService = injector.get(NgControlService, null);
|
|
4810
|
+
this.ifControlStateService = injector.get(IfControlStateService, null);
|
|
4811
|
+
this.controlClassService = injector.get(ControlClassService, null);
|
|
4812
|
+
this.markControlService = injector.get(MarkControlService, null);
|
|
4813
4813
|
}
|
|
4814
4814
|
if (this.controlClassService) {
|
|
4815
4815
|
this.controlClassService.initControlClass(renderer, el.nativeElement);
|
|
@@ -4837,15 +4837,10 @@ class WrappedFormControl {
|
|
|
4837
4837
|
ngOnInit() {
|
|
4838
4838
|
this._containerInjector = new HostWrapper(this.wrapperType, this.vcr, this.index);
|
|
4839
4839
|
this.controlIdService = this._containerInjector.get(ControlIdService);
|
|
4840
|
-
|
|
4841
|
-
|
|
4842
|
-
|
|
4843
|
-
|
|
4844
|
-
/**
|
|
4845
|
-
* We suppress error, not all containers will provide `ContainerIdService` so
|
|
4846
|
-
* there could be exception that is not provided.
|
|
4847
|
-
*/
|
|
4848
|
-
}
|
|
4840
|
+
/**
|
|
4841
|
+
* not all containers will provide `ContainerIdService`
|
|
4842
|
+
*/
|
|
4843
|
+
this.containerIdService = this._containerInjector.get(ContainerIdService, null);
|
|
4849
4844
|
if (this._id) {
|
|
4850
4845
|
this.controlIdService.id = this._id;
|
|
4851
4846
|
}
|
|
@@ -7511,6 +7506,7 @@ ClrDatalistContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", v
|
|
|
7511
7506
|
<div class="clr-input-group" [class.clr-focus]="focus">
|
|
7512
7507
|
<ng-content select="[clrDatalistInput]"></ng-content>
|
|
7513
7508
|
<ng-content select="datalist"></ng-content>
|
|
7509
|
+
<cds-icon shape="angle" class="clr-datalist-caret" direction="down"></cds-icon>
|
|
7514
7510
|
</div>
|
|
7515
7511
|
<cds-icon
|
|
7516
7512
|
*ngIf="showInvalid"
|
|
@@ -7544,6 +7540,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
7544
7540
|
<div class="clr-input-group" [class.clr-focus]="focus">
|
|
7545
7541
|
<ng-content select="[clrDatalistInput]"></ng-content>
|
|
7546
7542
|
<ng-content select="datalist"></ng-content>
|
|
7543
|
+
<cds-icon shape="angle" class="clr-datalist-caret" direction="down"></cds-icon>
|
|
7547
7544
|
</div>
|
|
7548
7545
|
<cds-icon
|
|
7549
7546
|
*ngIf="showInvalid"
|
|
@@ -10424,7 +10421,10 @@ class ClrRangeContainer extends ClrAbstractContainer {
|
|
|
10424
10421
|
}
|
|
10425
10422
|
}
|
|
10426
10423
|
getRangeProgressFillWidth() {
|
|
10427
|
-
const input = this.
|
|
10424
|
+
const input = this.selectRangeElement();
|
|
10425
|
+
if (!input) {
|
|
10426
|
+
return this.lastRangeProgressFillWidth;
|
|
10427
|
+
}
|
|
10428
10428
|
const inputWidth = input.offsetWidth;
|
|
10429
10429
|
const inputMinValue = +input.min;
|
|
10430
10430
|
let inputMaxValue = +input.max;
|
|
@@ -10434,7 +10434,16 @@ class ClrRangeContainer extends ClrAbstractContainer {
|
|
|
10434
10434
|
const inputMiddle = (inputMinValue + inputMaxValue) / 2;
|
|
10435
10435
|
const inputValue = !!this.control && this.control.value !== undefined ? this.control.value : inputMiddle;
|
|
10436
10436
|
const valueAsPercent = ((inputValue - inputMinValue) * 100) / (inputMaxValue - inputMinValue);
|
|
10437
|
-
|
|
10437
|
+
this.lastRangeProgressFillWidth = (valueAsPercent * inputWidth) / 100 + 'px';
|
|
10438
|
+
return this.lastRangeProgressFillWidth;
|
|
10439
|
+
}
|
|
10440
|
+
selectRangeElement() {
|
|
10441
|
+
try {
|
|
10442
|
+
return this.renderer.selectRootElement('[clrRange]#' + this.idService.id);
|
|
10443
|
+
}
|
|
10444
|
+
catch (_a) {
|
|
10445
|
+
return undefined;
|
|
10446
|
+
}
|
|
10438
10447
|
}
|
|
10439
10448
|
}
|
|
10440
10449
|
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 });
|
|
@@ -13700,7 +13709,7 @@ class ClrSignpost {
|
|
|
13700
13709
|
ClrSignpost.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrSignpost, deps: [{ token: ClrCommonStringsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
13701
13710
|
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: `
|
|
13702
13711
|
<ng-container *ngIf="!useCustomTrigger">
|
|
13703
|
-
<button type="button" class="signpost-action btn btn-small btn-link" clrSignpostTrigger>
|
|
13712
|
+
<button type="button" class="signpost-action btn btn-small btn-icon btn-link" clrSignpostTrigger>
|
|
13704
13713
|
<cds-icon shape="info-circle" [attr.title]="commonStrings.keys.info"></cds-icon>
|
|
13705
13714
|
</button>
|
|
13706
13715
|
</ng-container>
|
|
@@ -13713,7 +13722,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
13713
13722
|
selector: 'clr-signpost',
|
|
13714
13723
|
template: `
|
|
13715
13724
|
<ng-container *ngIf="!useCustomTrigger">
|
|
13716
|
-
<button type="button" class="signpost-action btn btn-small btn-link" clrSignpostTrigger>
|
|
13725
|
+
<button type="button" class="signpost-action btn btn-small btn-icon btn-link" clrSignpostTrigger>
|
|
13717
13726
|
<cds-icon shape="info-circle" [attr.title]="commonStrings.keys.info"></cds-icon>
|
|
13718
13727
|
</button>
|
|
13719
13728
|
</ng-container>
|
|
@@ -16247,6 +16256,7 @@ class ClrDatagridPagination {
|
|
|
16247
16256
|
return this.page.size;
|
|
16248
16257
|
}
|
|
16249
16258
|
set pageSize(size) {
|
|
16259
|
+
// 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.
|
|
16250
16260
|
if (typeof size === 'number') {
|
|
16251
16261
|
this.page.size = size;
|
|
16252
16262
|
}
|
|
@@ -16258,6 +16268,7 @@ class ClrDatagridPagination {
|
|
|
16258
16268
|
return this.page.totalItems;
|
|
16259
16269
|
}
|
|
16260
16270
|
set totalItems(total) {
|
|
16271
|
+
// 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.
|
|
16261
16272
|
if (typeof total === 'number') {
|
|
16262
16273
|
this.page.totalItems = total;
|
|
16263
16274
|
}
|
|
@@ -16269,6 +16280,7 @@ class ClrDatagridPagination {
|
|
|
16269
16280
|
return this.page.last;
|
|
16270
16281
|
}
|
|
16271
16282
|
set lastPage(last) {
|
|
16283
|
+
// 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.
|
|
16272
16284
|
if (typeof last === 'number') {
|
|
16273
16285
|
this.page.last = last;
|
|
16274
16286
|
}
|
|
@@ -16280,6 +16292,7 @@ class ClrDatagridPagination {
|
|
|
16280
16292
|
return this.page.current;
|
|
16281
16293
|
}
|
|
16282
16294
|
set currentPage(page) {
|
|
16295
|
+
// 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.
|
|
16283
16296
|
if (typeof page === 'number') {
|
|
16284
16297
|
this.page.current = page;
|
|
16285
16298
|
}
|
|
@@ -17486,7 +17499,10 @@ class ClrStackBlock {
|
|
|
17486
17499
|
addChild() {
|
|
17487
17500
|
this.expandable = true;
|
|
17488
17501
|
}
|
|
17489
|
-
toggleExpand() {
|
|
17502
|
+
toggleExpand(event) {
|
|
17503
|
+
if (eventIsInputEvent(event)) {
|
|
17504
|
+
return;
|
|
17505
|
+
}
|
|
17490
17506
|
if (this.expandable) {
|
|
17491
17507
|
this.expanded = !this.expanded;
|
|
17492
17508
|
this.expandedChange.emit(this.expanded);
|
|
@@ -17495,6 +17511,12 @@ class ClrStackBlock {
|
|
|
17495
17511
|
getStackChildrenId() {
|
|
17496
17512
|
return this.expanded ? `clr-stack-children-${this.uniqueId}` : null;
|
|
17497
17513
|
}
|
|
17514
|
+
preventDefaultIfNotInputEvent(event) {
|
|
17515
|
+
if (eventIsInputEvent(event)) {
|
|
17516
|
+
return;
|
|
17517
|
+
}
|
|
17518
|
+
event.preventDefault();
|
|
17519
|
+
}
|
|
17498
17520
|
}
|
|
17499
17521
|
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 });
|
|
17500
17522
|
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: `
|
|
@@ -17502,10 +17524,10 @@ ClrStackBlock.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version:
|
|
|
17502
17524
|
from scrolling when a stack block is toggled via the space key. -->
|
|
17503
17525
|
<div
|
|
17504
17526
|
class="stack-block-label"
|
|
17505
|
-
(click)="toggleExpand()"
|
|
17506
|
-
(keyup.enter)="toggleExpand()"
|
|
17507
|
-
(keyup.space)="toggleExpand()"
|
|
17508
|
-
(keydown.space)="$event
|
|
17527
|
+
(click)="toggleExpand($event)"
|
|
17528
|
+
(keyup.enter)="toggleExpand($event)"
|
|
17529
|
+
(keyup.space)="toggleExpand($event)"
|
|
17530
|
+
(keydown.space)="preventDefaultIfNotInputEvent($event)"
|
|
17509
17531
|
(focus)="focused = true"
|
|
17510
17532
|
(blur)="focused = false"
|
|
17511
17533
|
[id]="uniqueId"
|
|
@@ -17545,10 +17567,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
17545
17567
|
from scrolling when a stack block is toggled via the space key. -->
|
|
17546
17568
|
<div
|
|
17547
17569
|
class="stack-block-label"
|
|
17548
|
-
(click)="toggleExpand()"
|
|
17549
|
-
(keyup.enter)="toggleExpand()"
|
|
17550
|
-
(keyup.space)="toggleExpand()"
|
|
17551
|
-
(keydown.space)="$event
|
|
17570
|
+
(click)="toggleExpand($event)"
|
|
17571
|
+
(keyup.enter)="toggleExpand($event)"
|
|
17572
|
+
(keyup.space)="toggleExpand($event)"
|
|
17573
|
+
(keydown.space)="preventDefaultIfNotInputEvent($event)"
|
|
17552
17574
|
(focus)="focused = true"
|
|
17553
17575
|
(blur)="focused = false"
|
|
17554
17576
|
[id]="uniqueId"
|
|
@@ -17622,6 +17644,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
17622
17644
|
type: HostBinding,
|
|
17623
17645
|
args: ['class.on-focus']
|
|
17624
17646
|
}] } });
|
|
17647
|
+
function eventIsInputEvent(event) {
|
|
17648
|
+
const targetElement = event === null || event === void 0 ? void 0 : event.target;
|
|
17649
|
+
return (targetElement === null || targetElement === void 0 ? void 0 : targetElement.tagName) === 'INPUT';
|
|
17650
|
+
}
|
|
17625
17651
|
|
|
17626
17652
|
/*
|
|
17627
17653
|
* Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.
|
|
@@ -20651,7 +20677,6 @@ ClrHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15
|
|
|
20651
20677
|
*ngIf="isNavLevel1OnPage"
|
|
20652
20678
|
class="header-hamburger-trigger"
|
|
20653
20679
|
[attr.aria-label]="responsiveNavCommonString"
|
|
20654
|
-
[attr.aria-expanded]="openNavLevel === 1 ? 'true' : 'false'"
|
|
20655
20680
|
(click)="openNav(responsiveNavCodes.NAV_LEVEL_1)"
|
|
20656
20681
|
>
|
|
20657
20682
|
<span></span>
|
|
@@ -20662,7 +20687,6 @@ ClrHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15
|
|
|
20662
20687
|
*ngIf="isNavLevel2OnPage"
|
|
20663
20688
|
class="header-overflow-trigger"
|
|
20664
20689
|
[attr.aria-label]="responsiveOverflowCommonString"
|
|
20665
|
-
[attr.aria-expanded]="openNavLevel === 2 ? 'true' : 'false'"
|
|
20666
20690
|
(click)="openNav(responsiveNavCodes.NAV_LEVEL_2)"
|
|
20667
20691
|
>
|
|
20668
20692
|
<span></span>
|
|
@@ -20679,7 +20703,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
20679
20703
|
*ngIf="isNavLevel1OnPage"
|
|
20680
20704
|
class="header-hamburger-trigger"
|
|
20681
20705
|
[attr.aria-label]="responsiveNavCommonString"
|
|
20682
|
-
[attr.aria-expanded]="openNavLevel === 1 ? 'true' : 'false'"
|
|
20683
20706
|
(click)="openNav(responsiveNavCodes.NAV_LEVEL_1)"
|
|
20684
20707
|
>
|
|
20685
20708
|
<span></span>
|
|
@@ -20690,7 +20713,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
20690
20713
|
*ngIf="isNavLevel2OnPage"
|
|
20691
20714
|
class="header-overflow-trigger"
|
|
20692
20715
|
[attr.aria-label]="responsiveOverflowCommonString"
|
|
20693
|
-
[attr.aria-expanded]="openNavLevel === 2 ? 'true' : 'false'"
|
|
20694
20716
|
(click)="openNav(responsiveNavCodes.NAV_LEVEL_2)"
|
|
20695
20717
|
>
|
|
20696
20718
|
<span></span>
|
|
@@ -21815,7 +21837,7 @@ class ClrVerticalNav {
|
|
|
21815
21837
|
}
|
|
21816
21838
|
}
|
|
21817
21839
|
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 });
|
|
21818
|
-
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
|
|
21840
|
+
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" }] });
|
|
21819
21841
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrVerticalNav, decorators: [{
|
|
21820
21842
|
type: Component,
|
|
21821
21843
|
args: [{ selector: 'clr-vertical-nav', providers: [VerticalNavService, VerticalNavIconService, VerticalNavGroupRegistrationService], host: {
|
|
@@ -21823,7 +21845,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
21823
21845
|
'[class.is-collapsed]': 'collapsed',
|
|
21824
21846
|
'[class.has-nav-groups]': 'hasNavGroups',
|
|
21825
21847
|
'[class.has-icons]': 'hasIcons',
|
|
21826
|
-
}, 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
|
|
21848
|
+
}, 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" }]
|
|
21827
21849
|
}], ctorParameters: function () { return [{ type: VerticalNavService }, { type: VerticalNavIconService }, { type: VerticalNavGroupRegistrationService }, { type: ClrCommonStringsService }]; }, propDecorators: { _collapsedChanged: [{
|
|
21828
21850
|
type: Output,
|
|
21829
21851
|
args: ['clrVerticalNavCollapsedChange']
|
|
@@ -21981,7 +22003,7 @@ class ClrVerticalNavGroup {
|
|
|
21981
22003
|
}
|
|
21982
22004
|
}
|
|
21983
22005
|
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 });
|
|
21984
|
-
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
|
|
22006
|
+
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: [
|
|
21985
22007
|
trigger('clrExpand', [
|
|
21986
22008
|
state(EXPANDED_STATE, style({ height: '*' })),
|
|
21987
22009
|
state(COLLAPSED_STATE, style({ height: 0, visibility: 'hidden' })),
|
|
@@ -21996,7 +22018,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
21996
22018
|
state(COLLAPSED_STATE, style({ height: 0, visibility: 'hidden' })),
|
|
21997
22019
|
transition(`${EXPANDED_STATE} <=> ${COLLAPSED_STATE}`, animate('0.2s ease-in-out')),
|
|
21998
22020
|
]),
|
|
21999
|
-
], 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
|
|
22021
|
+
], 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" }]
|
|
22000
22022
|
}], ctorParameters: function () { return [{ type: IfExpandService }, { type: VerticalNavGroupRegistrationService }, { type: VerticalNavGroupService }, { type: VerticalNavService }, { type: ClrCommonStringsService }]; }, propDecorators: { expandedChange: [{
|
|
22001
22023
|
type: Output,
|
|
22002
22024
|
args: ['clrVerticalNavGroupExpandedChange']
|