@clr/angular 16.3.0 → 17.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/accordion/accordion-panel.d.ts +0 -12
- package/accordion/accordion.d.ts +0 -3
- package/clarity.api.md +38 -39
- package/emphasis/alert/alert.d.ts +6 -2
- package/emphasis/alert/alert.module.d.ts +2 -1
- package/esm2020/accordion/accordion-panel.mjs +1 -13
- package/esm2020/accordion/accordion.mjs +1 -4
- package/esm2020/data/datagrid/datagrid-row.mjs +3 -3
- package/esm2020/data/datagrid/utils/key-navigation-grid.controller.mjs +2 -2
- package/esm2020/data/tree-view/tree-node.mjs +1 -1
- package/esm2020/emphasis/alert/alert-item.mjs +9 -3
- package/esm2020/emphasis/alert/alert.mjs +24 -9
- package/esm2020/emphasis/alert/alert.module.mjs +5 -4
- package/esm2020/emphasis/alert/alerts.mjs +3 -2
- package/esm2020/emphasis/alert/providers/icon-and-types.service.mjs +16 -1
- package/esm2020/emphasis/alert/utils/alert-types.mjs +2 -2
- package/esm2020/forms/common/abstract-container.mjs +20 -18
- package/esm2020/forms/common/error.mjs +3 -2
- package/esm2020/forms/common/success.mjs +3 -2
- package/esm2020/forms/common/wrapped-control.mjs +4 -6
- package/esm2020/forms/password/password-container.mjs +3 -3
- package/esm2020/modal/modal.mjs +3 -8
- package/esm2020/progress/progress-bars/progress-bar.mjs +8 -26
- package/esm2020/utils/i18n/common-strings.default.mjs +3 -1
- package/esm2020/utils/i18n/common-strings.interface.mjs +1 -1
- package/esm2020/wizard/wizard.mjs +6 -29
- package/fesm2015/clr-angular.mjs +102 -125
- package/fesm2015/clr-angular.mjs.map +1 -1
- package/fesm2020/clr-angular.mjs +102 -124
- package/fesm2020/clr-angular.mjs.map +1 -1
- package/forms/common/abstract-container.d.ts +4 -6
- package/forms/common/wrapped-control.d.ts +1 -1
- package/modal/modal.d.ts +1 -2
- package/package.json +6 -6
- package/progress/progress-bars/progress-bar.d.ts +2 -10
- package/utils/i18n/common-strings.interface.d.ts +8 -0
- package/wizard/wizard.d.ts +2 -12
package/fesm2020/clr-angular.mjs
CHANGED
|
@@ -279,6 +279,8 @@ const commonStringsDefault = {
|
|
|
279
279
|
success: 'Success',
|
|
280
280
|
warning: 'Warning',
|
|
281
281
|
danger: 'Error',
|
|
282
|
+
neutral: 'Neutral',
|
|
283
|
+
unknown: 'Unknown',
|
|
282
284
|
rowActions: 'Available actions',
|
|
283
285
|
pickColumns: 'Manage Columns',
|
|
284
286
|
showColumns: 'Show Columns',
|
|
@@ -535,17 +537,8 @@ class ClrAccordionPanel {
|
|
|
535
537
|
this.accordionService = accordionService;
|
|
536
538
|
this.ifExpandService = ifExpandService;
|
|
537
539
|
this.cdr = cdr;
|
|
538
|
-
/**
|
|
539
|
-
* Whether the panel is disabled.
|
|
540
|
-
*/
|
|
541
540
|
this.disabled = false;
|
|
542
|
-
/**
|
|
543
|
-
* Whether the panel is open.
|
|
544
|
-
*/
|
|
545
541
|
this.panelOpen = false;
|
|
546
|
-
/**
|
|
547
|
-
* Event that is emitted when the panel is opened or closed. The boolean emitted indicates the current state.
|
|
548
|
-
*/
|
|
549
542
|
this.panelOpenChange = new EventEmitter();
|
|
550
543
|
this.AccordionStatus = AccordionStatus;
|
|
551
544
|
this.isAccordion = true;
|
|
@@ -574,9 +567,6 @@ class ClrAccordionPanel {
|
|
|
574
567
|
this.accordionService.disablePanel(this.id, changes.disabled.currentValue);
|
|
575
568
|
}
|
|
576
569
|
}
|
|
577
|
-
/**
|
|
578
|
-
* Toggles this panel open or closed.
|
|
579
|
-
*/
|
|
580
570
|
togglePanel() {
|
|
581
571
|
this.accordionService.togglePanel(this.id);
|
|
582
572
|
}
|
|
@@ -650,9 +640,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
650
640
|
class ClrAccordion {
|
|
651
641
|
constructor(accordionService) {
|
|
652
642
|
this.accordionService = accordionService;
|
|
653
|
-
/**
|
|
654
|
-
* Whether the accordion supports multiple panels opened at the same time.
|
|
655
|
-
*/
|
|
656
643
|
this.multiPanel = false;
|
|
657
644
|
this.subscriptions = [];
|
|
658
645
|
}
|
|
@@ -4218,7 +4205,7 @@ class ClrControlError extends ClrAbstractControl {
|
|
|
4218
4205
|
}
|
|
4219
4206
|
}
|
|
4220
4207
|
ClrControlError.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrControlError, deps: [{ token: ControlIdService, optional: true }, { token: ContainerIdService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
4221
|
-
ClrControlError.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrControlError, selector: "clr-control-error", host: { properties: { "class.clr-subtext": "true", "attr.id": "id" } }, usesInheritance: true, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true });
|
|
4208
|
+
ClrControlError.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrControlError, selector: "clr-control-error", host: { properties: { "class.clr-subtext": "true", "class.error": "true", "attr.id": "id" } }, usesInheritance: true, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true });
|
|
4222
4209
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrControlError, decorators: [{
|
|
4223
4210
|
type: Component,
|
|
4224
4211
|
args: [{
|
|
@@ -4226,6 +4213,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
4226
4213
|
template: `<ng-content></ng-content>`,
|
|
4227
4214
|
host: {
|
|
4228
4215
|
'[class.clr-subtext]': 'true',
|
|
4216
|
+
'[class.error]': 'true',
|
|
4229
4217
|
'[attr.id]': 'id',
|
|
4230
4218
|
},
|
|
4231
4219
|
}]
|
|
@@ -4480,7 +4468,7 @@ class ClrControlSuccess extends ClrAbstractControl {
|
|
|
4480
4468
|
}
|
|
4481
4469
|
}
|
|
4482
4470
|
ClrControlSuccess.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrControlSuccess, deps: [{ token: ControlIdService, optional: true }, { token: ContainerIdService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
4483
|
-
ClrControlSuccess.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrControlSuccess, selector: "clr-control-success", host: { properties: { "class.clr-subtext": "true", "attr.id": "id" } }, usesInheritance: true, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true });
|
|
4471
|
+
ClrControlSuccess.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrControlSuccess, selector: "clr-control-success", host: { properties: { "class.clr-subtext": "true", "class.success": "true", "attr.id": "id" } }, usesInheritance: true, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true });
|
|
4484
4472
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrControlSuccess, decorators: [{
|
|
4485
4473
|
type: Component,
|
|
4486
4474
|
args: [{
|
|
@@ -4488,6 +4476,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
4488
4476
|
template: `<ng-content></ng-content>`,
|
|
4489
4477
|
host: {
|
|
4490
4478
|
'[class.clr-subtext]': 'true',
|
|
4479
|
+
'[class.success]': 'true',
|
|
4491
4480
|
'[attr.id]': 'id',
|
|
4492
4481
|
},
|
|
4493
4482
|
}]
|
|
@@ -4568,25 +4557,27 @@ class ClrAbstractContainer {
|
|
|
4568
4557
|
}
|
|
4569
4558
|
/**
|
|
4570
4559
|
* @NOTE
|
|
4571
|
-
* Helper control is a bit different than the others, it must be visible
|
|
4572
|
-
* -
|
|
4573
|
-
*
|
|
4574
|
-
*
|
|
4575
|
-
* For example user implement only Error control then if CONTROL_STATE is VALID then helper
|
|
4576
|
-
* control must be visible.
|
|
4560
|
+
* Helper control is a bit different than the others, it must be always visible:
|
|
4561
|
+
* - Labels and instructions must always accompany forms and are persistent.
|
|
4562
|
+
* - The recommendation here is to always have helper text or anything instructions visible.
|
|
4563
|
+
* - The expectation is to have error text + helper text in the errored state. this way all users will have the helper text information always available.
|
|
4577
4564
|
*/
|
|
4578
4565
|
get showHelper() {
|
|
4579
|
-
|
|
4580
|
-
|
|
4581
|
-
|
|
4582
|
-
|
|
4583
|
-
|
|
4584
|
-
|
|
4585
|
-
|
|
4586
|
-
|
|
4587
|
-
|
|
4588
|
-
|
|
4589
|
-
|
|
4566
|
+
/**
|
|
4567
|
+
* @NOTE
|
|
4568
|
+
* Saving the previous version in case something is changed. We'll return always true so we can be flexible
|
|
4569
|
+
* and keep the condition per components.
|
|
4570
|
+
*
|
|
4571
|
+
* return (
|
|
4572
|
+
* Helper Component exist and the state of the form is NONE (not touched)
|
|
4573
|
+
* (!!this.controlHelperComponent && (!this.touched || this.state === CONTROL_STATE.NONE)) ||
|
|
4574
|
+
* or there is no success component but the state of the form is VALID - show helper information
|
|
4575
|
+
* (!!this.controlSuccessComponent === false && this.state === CONTROL_STATE.VALID) ||
|
|
4576
|
+
* or there is no error component but the state of the form is INVALID - show helper information
|
|
4577
|
+
* (!!this.controlErrorComponent === false && this.state === CONTROL_STATE.INVALID)
|
|
4578
|
+
* );
|
|
4579
|
+
*/
|
|
4580
|
+
return Boolean(this.controlHelperComponent);
|
|
4590
4581
|
}
|
|
4591
4582
|
get showValid() {
|
|
4592
4583
|
return this.touched && this.state === CONTROL_STATE.VALID && !!this.controlSuccessComponent;
|
|
@@ -4859,7 +4850,7 @@ class WrappedFormControl {
|
|
|
4859
4850
|
else {
|
|
4860
4851
|
this._id = this.controlIdService.id;
|
|
4861
4852
|
}
|
|
4862
|
-
if (this.ngControlService
|
|
4853
|
+
if (this.ngControlService) {
|
|
4863
4854
|
this.ngControlService.setControl(this.ngControl);
|
|
4864
4855
|
}
|
|
4865
4856
|
}
|
|
@@ -4897,10 +4888,8 @@ class WrappedFormControl {
|
|
|
4897
4888
|
}
|
|
4898
4889
|
}
|
|
4899
4890
|
markAsTouched() {
|
|
4900
|
-
|
|
4901
|
-
|
|
4902
|
-
this.ngControl.control.updateValueAndValidity();
|
|
4903
|
-
}
|
|
4891
|
+
this.ngControl.control.markAsTouched();
|
|
4892
|
+
this.ngControl.control.updateValueAndValidity();
|
|
4904
4893
|
}
|
|
4905
4894
|
setAriaDescribedBy(helpers) {
|
|
4906
4895
|
if (helpers.show) {
|
|
@@ -10003,7 +9992,7 @@ ClrPasswordContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", v
|
|
|
10003
9992
|
class="clr-input-group-icon-action"
|
|
10004
9993
|
type="button"
|
|
10005
9994
|
>
|
|
10006
|
-
<cds-icon
|
|
9995
|
+
<cds-icon class="clr-password-eye-icon" [attr.shape]="show ? 'eye-hide' : 'eye'"></cds-icon>
|
|
10007
9996
|
<span class="clr-sr-only">
|
|
10008
9997
|
{{ show ? commonStrings.keys.passwordHide : commonStrings.keys.passwordShow }}
|
|
10009
9998
|
</span>
|
|
@@ -10047,7 +10036,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
10047
10036
|
class="clr-input-group-icon-action"
|
|
10048
10037
|
type="button"
|
|
10049
10038
|
>
|
|
10050
|
-
<cds-icon
|
|
10039
|
+
<cds-icon class="clr-password-eye-icon" [attr.shape]="show ? 'eye-hide' : 'eye'"></cds-icon>
|
|
10051
10040
|
<span class="clr-sr-only">
|
|
10052
10041
|
{{ show ? commonStrings.keys.passwordHide : commonStrings.keys.passwordShow }}
|
|
10053
10042
|
</span>
|
|
@@ -14549,7 +14538,7 @@ ClrDatagridRow.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version
|
|
|
14549
14538
|
DatagridIfExpandService,
|
|
14550
14539
|
{ provide: IfExpandService, useExisting: DatagridIfExpandService },
|
|
14551
14540
|
{ provide: LoadingListener, useExisting: DatagridIfExpandService },
|
|
14552
|
-
], 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<div\n class=\"datagrid-row-clickable\"\n *ngIf=\"selection.rowSelectionMode\"\n (mousedown)=\"clearRanges($event)\"\n (click)=\"selectRow(!selected, $event)\"\n>\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</div>\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 <clr-checkbox-wrapper>\n <input\n type=\"checkbox\"\n clrCheckbox\n [ngModel]=\"selected\"\n (ngModelChange)=\"toggle($event)\"\n [id]=\"checkboxId\"\n [disabled]=\"clrDgSelectable ? null : true\"\n [attr.aria-disabled]=\"clrDgSelectable ? null : true\"\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\" (click)=\"clearRanges($event)\">\n <span class=\"clr-sr-only\">{{clrDgRowSelectionLabel || commonStrings.keys.select}}</span>\n </label>\n </clr-checkbox-wrapper>\n </div>\n <div\n *ngIf=\"selection.selectionType === SELECTION_TYPE.Single\"\n class=\"datagrid-select datagrid-fixed-column datagrid-cell\"\n [ngClass]=\"{ 'clr-form-control-disabled': !clrDgSelectable }\"\n role=\"gridcell\"\n >\n <clr-radio-wrapper>\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 [disabled]=\"clrDgSelectable ? null : true\"\n [attr.aria-disabled]=\"clrDgSelectable ? null : true\"\n />\n <label class=\"clr-control-label clr-col-null\" [for]=\"radioId\">\n <span class=\"clr-sr-only\">{{ clrDgRowSelectionLabel || commonStrings.keys.select }}</span>\n </label>\n </clr-radio-wrapper>\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
|
|
14541
|
+
], 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<div\n class=\"datagrid-row-clickable\"\n *ngIf=\"selection.rowSelectionMode\"\n (mousedown)=\"clearRanges($event)\"\n (click)=\"selectRow(!selected, $event)\"\n>\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</div>\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 <clr-checkbox-wrapper>\n <input\n type=\"checkbox\"\n clrCheckbox\n [ngModel]=\"selected\"\n (ngModelChange)=\"toggle($event)\"\n [id]=\"checkboxId\"\n [disabled]=\"clrDgSelectable ? null : true\"\n [attr.aria-disabled]=\"clrDgSelectable ? null : true\"\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\" (click)=\"clearRanges($event)\">\n <span class=\"clr-sr-only\">{{clrDgRowSelectionLabel || commonStrings.keys.select}}</span>\n </label>\n </clr-checkbox-wrapper>\n </div>\n <div\n *ngIf=\"selection.selectionType === SELECTION_TYPE.Single\"\n class=\"datagrid-select datagrid-fixed-column datagrid-cell\"\n [ngClass]=\"{ 'clr-form-control-disabled': !clrDgSelectable }\"\n role=\"gridcell\"\n >\n <clr-radio-wrapper>\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 [disabled]=\"clrDgSelectable ? null : true\"\n [attr.aria-disabled]=\"clrDgSelectable ? null : true\"\n />\n <label class=\"clr-control-label clr-col-null\" [for]=\"radioId\">\n <span class=\"clr-sr-only\">{{ clrDgRowSelectionLabel || commonStrings.keys.select }}</span>\n </label>\n </clr-radio-wrapper>\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", 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: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: CdsIconCustomTag, selector: "cds-icon" }, { kind: "directive", type: ClrLabel, selector: "label", inputs: ["for"] }, { kind: "directive", type: ClrCheckbox, selector: "[clrCheckbox],[clrToggle]" }, { kind: "component", type: ClrCheckboxWrapper, selector: "clr-checkbox-wrapper,clr-toggle-wrapper" }, { kind: "directive", type: ClrRadio, selector: "[clrRadio]" }, { kind: "component", type: ClrRadioWrapper, selector: "clr-radio-wrapper" }, { kind: "directive", 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]" }, { kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ClrExpandableAnimation, selector: "clr-expandable-animation", inputs: ["clrExpandTrigger"] }, { kind: "component", type: ClrSpinner, selector: "clr-spinner", inputs: ["clrInline", "clrInverse", "clrSmall", "clrMedium"] }, { kind: "directive", type: ClrDatagridSelectionCellDirective, selector: ".datagrid-select" }] });
|
|
14553
14542
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrDatagridRow, decorators: [{
|
|
14554
14543
|
type: Component,
|
|
14555
14544
|
args: [{ selector: 'clr-dg-row', host: {
|
|
@@ -14561,7 +14550,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
14561
14550
|
DatagridIfExpandService,
|
|
14562
14551
|
{ provide: IfExpandService, useExisting: DatagridIfExpandService },
|
|
14563
14552
|
{ provide: LoadingListener, useExisting: DatagridIfExpandService },
|
|
14564
|
-
], 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<div\n class=\"datagrid-row-clickable\"\n *ngIf=\"selection.rowSelectionMode\"\n (mousedown)=\"clearRanges($event)\"\n (click)=\"selectRow(!selected, $event)\"\n>\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</div>\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 <clr-checkbox-wrapper>\n <input\n type=\"checkbox\"\n clrCheckbox\n [ngModel]=\"selected\"\n (ngModelChange)=\"toggle($event)\"\n [id]=\"checkboxId\"\n [disabled]=\"clrDgSelectable ? null : true\"\n [attr.aria-disabled]=\"clrDgSelectable ? null : true\"\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\" (click)=\"clearRanges($event)\">\n <span class=\"clr-sr-only\">{{clrDgRowSelectionLabel || commonStrings.keys.select}}</span>\n </label>\n </clr-checkbox-wrapper>\n </div>\n <div\n *ngIf=\"selection.selectionType === SELECTION_TYPE.Single\"\n class=\"datagrid-select datagrid-fixed-column datagrid-cell\"\n [ngClass]=\"{ 'clr-form-control-disabled': !clrDgSelectable }\"\n role=\"gridcell\"\n >\n <clr-radio-wrapper>\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 [disabled]=\"clrDgSelectable ? null : true\"\n [attr.aria-disabled]=\"clrDgSelectable ? null : true\"\n />\n <label class=\"clr-control-label clr-col-null\" [for]=\"radioId\">\n <span class=\"clr-sr-only\">{{ clrDgRowSelectionLabel || commonStrings.keys.select }}</span>\n </label>\n </clr-radio-wrapper>\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
|
|
14553
|
+
], 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<div\n class=\"datagrid-row-clickable\"\n *ngIf=\"selection.rowSelectionMode\"\n (mousedown)=\"clearRanges($event)\"\n (click)=\"selectRow(!selected, $event)\"\n>\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</div>\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 <clr-checkbox-wrapper>\n <input\n type=\"checkbox\"\n clrCheckbox\n [ngModel]=\"selected\"\n (ngModelChange)=\"toggle($event)\"\n [id]=\"checkboxId\"\n [disabled]=\"clrDgSelectable ? null : true\"\n [attr.aria-disabled]=\"clrDgSelectable ? null : true\"\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\" (click)=\"clearRanges($event)\">\n <span class=\"clr-sr-only\">{{clrDgRowSelectionLabel || commonStrings.keys.select}}</span>\n </label>\n </clr-checkbox-wrapper>\n </div>\n <div\n *ngIf=\"selection.selectionType === SELECTION_TYPE.Single\"\n class=\"datagrid-select datagrid-fixed-column datagrid-cell\"\n [ngClass]=\"{ 'clr-form-control-disabled': !clrDgSelectable }\"\n role=\"gridcell\"\n >\n <clr-radio-wrapper>\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 [disabled]=\"clrDgSelectable ? null : true\"\n [attr.aria-disabled]=\"clrDgSelectable ? null : true\"\n />\n <label class=\"clr-control-label clr-col-null\" [for]=\"radioId\">\n <span class=\"clr-sr-only\">{{ clrDgRowSelectionLabel || commonStrings.keys.select }}</span>\n </label>\n </clr-radio-wrapper>\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" }]
|
|
14565
14554
|
}], ctorParameters: function () { return [{ type: Selection }, { type: RowActionService }, { type: ExpandableRowsCount }, { type: DatagridIfExpandService }, { type: DetailService }, { type: DisplayModeService }, { type: i0.ViewContainerRef }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: ClrCommonStringsService }, { type: Items }, { type: undefined, decorators: [{
|
|
14566
14555
|
type: Inject,
|
|
14567
14556
|
args: [DOCUMENT]
|
|
@@ -14867,7 +14856,7 @@ class KeyNavigationGridController {
|
|
|
14867
14856
|
const dir = this.host.dir;
|
|
14868
14857
|
const inlineStart = dir === 'rtl' ? 'ArrowRight' : 'ArrowLeft';
|
|
14869
14858
|
const inlineEnd = dir === 'rtl' ? 'ArrowLeft' : 'ArrowRight';
|
|
14870
|
-
const itemsPerPage =
|
|
14859
|
+
const itemsPerPage = this.rows.length || 0;
|
|
14871
14860
|
if (e.code === 'ArrowUp' && y !== 0) {
|
|
14872
14861
|
y = y - 1;
|
|
14873
14862
|
}
|
|
@@ -19702,13 +19691,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
19702
19691
|
}]
|
|
19703
19692
|
}] });
|
|
19704
19693
|
|
|
19694
|
+
/*
|
|
19695
|
+
* Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.
|
|
19696
|
+
* This software is released under MIT license.
|
|
19697
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
19698
|
+
*/
|
|
19699
|
+
|
|
19705
19700
|
/*
|
|
19706
19701
|
* Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.
|
|
19707
19702
|
* This software is released under MIT license.
|
|
19708
19703
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
19709
19704
|
*/
|
|
19710
19705
|
// @TODO Make this an enum
|
|
19711
|
-
const ALERT_TYPES = ['info', 'warning', 'danger', 'success'];
|
|
19706
|
+
const ALERT_TYPES = ['info', 'warning', 'danger', 'success', 'neutral', 'unknown', 'loading'];
|
|
19712
19707
|
|
|
19713
19708
|
/*
|
|
19714
19709
|
* Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.
|
|
@@ -19765,6 +19760,21 @@ class AlertIconAndTypesService {
|
|
|
19765
19760
|
returnObj.cssClass = 'alert-success';
|
|
19766
19761
|
returnObj.title = this.commonStrings.keys.success;
|
|
19767
19762
|
break;
|
|
19763
|
+
case 'neutral':
|
|
19764
|
+
returnObj.shape = 'note-edit';
|
|
19765
|
+
returnObj.cssClass = 'alert-neutral';
|
|
19766
|
+
returnObj.title = this.commonStrings.keys.neutral;
|
|
19767
|
+
break;
|
|
19768
|
+
case 'unknown':
|
|
19769
|
+
returnObj.shape = 'help';
|
|
19770
|
+
returnObj.cssClass = 'alert-neutral';
|
|
19771
|
+
returnObj.title = this.commonStrings.keys.unknown;
|
|
19772
|
+
break;
|
|
19773
|
+
case 'loading':
|
|
19774
|
+
returnObj.shape = 'loading';
|
|
19775
|
+
returnObj.cssClass = 'alert-neutral';
|
|
19776
|
+
returnObj.title = this.commonStrings.keys.unknown;
|
|
19777
|
+
break;
|
|
19768
19778
|
default:
|
|
19769
19779
|
returnObj.shape = this.defaultIconShape;
|
|
19770
19780
|
returnObj.cssClass = 'alert-info';
|
|
@@ -19886,7 +19896,6 @@ class ClrAlert {
|
|
|
19886
19896
|
this.commonStrings = commonStrings;
|
|
19887
19897
|
this.renderer = renderer;
|
|
19888
19898
|
this.hostElement = hostElement;
|
|
19889
|
-
this.isLight = false;
|
|
19890
19899
|
this.isSmall = false;
|
|
19891
19900
|
this.closable = true;
|
|
19892
19901
|
this.isAppLevel = false;
|
|
@@ -19894,12 +19903,21 @@ class ClrAlert {
|
|
|
19894
19903
|
this._closedChanged = new EventEmitter(false);
|
|
19895
19904
|
this._closed = false;
|
|
19896
19905
|
this.subscriptions = [];
|
|
19906
|
+
this._isLightweight = false;
|
|
19907
|
+
}
|
|
19908
|
+
get isLightweight() {
|
|
19909
|
+
return this._isLightweight;
|
|
19910
|
+
}
|
|
19911
|
+
set isLightweight(val) {
|
|
19912
|
+
this._isLightweight = val;
|
|
19913
|
+
this.configAlertType(this._origAlertType);
|
|
19897
19914
|
}
|
|
19898
19915
|
get alertType() {
|
|
19899
19916
|
return this.iconService.alertType;
|
|
19900
19917
|
}
|
|
19901
19918
|
set alertType(val) {
|
|
19902
|
-
this.
|
|
19919
|
+
this._origAlertType = val;
|
|
19920
|
+
this.configAlertType(val);
|
|
19903
19921
|
}
|
|
19904
19922
|
set alertIconShape(value) {
|
|
19905
19923
|
this.iconService.alertIconShape = value;
|
|
@@ -19941,6 +19959,13 @@ class ClrAlert {
|
|
|
19941
19959
|
ngOnDestroy() {
|
|
19942
19960
|
this.subscriptions.forEach(sub => sub.unsubscribe());
|
|
19943
19961
|
}
|
|
19962
|
+
configAlertType(val) {
|
|
19963
|
+
let innerVal = val;
|
|
19964
|
+
if (!this._isLightweight && (innerVal === 'loading' || innerVal === 'unknown')) {
|
|
19965
|
+
innerVal = 'info';
|
|
19966
|
+
}
|
|
19967
|
+
this.iconService.alertType = innerVal;
|
|
19968
|
+
}
|
|
19944
19969
|
open() {
|
|
19945
19970
|
this._closed = false;
|
|
19946
19971
|
if (this.multiAlertService) {
|
|
@@ -19961,16 +19986,13 @@ class ClrAlert {
|
|
|
19961
19986
|
}
|
|
19962
19987
|
}
|
|
19963
19988
|
ClrAlert.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrAlert, deps: [{ token: AlertIconAndTypesService }, { token: i0.ChangeDetectorRef }, { token: MultiAlertService, optional: true }, { token: ClrCommonStringsService }, { token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
19964
|
-
ClrAlert.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrAlert, selector: "clr-alert", inputs: {
|
|
19989
|
+
ClrAlert.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrAlert, selector: "clr-alert", inputs: { isSmall: ["clrAlertSizeSmall", "isSmall"], closable: ["clrAlertClosable", "closable"], isAppLevel: ["clrAlertAppLevel", "isAppLevel"], clrCloseButtonAriaLabel: "clrCloseButtonAriaLabel", isLightweight: ["clrAlertLightweight", "isLightweight"], alertType: ["clrAlertType", "alertType"], alertIconShape: ["clrAlertIcon", "alertIconShape"], closed: ["clrAlertClosed", "closed"] }, outputs: { _closedChanged: "clrAlertClosedChange" }, providers: [AlertIconAndTypesService], 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\n *ngIf=\"!_closed\"\n class=\"alert\"\n [ngClass]=\"alertClass\"\n [class.alert-sm]=\"isSmall\"\n [class.alert-lightweight]=\"isLightweight\"\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", 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" }] });
|
|
19965
19990
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrAlert, decorators: [{
|
|
19966
19991
|
type: Component,
|
|
19967
|
-
args: [{ selector: 'clr-alert', providers: [AlertIconAndTypesService], 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\n *ngIf=\"!_closed\"\n class=\"alert\"\n [ngClass]=\"alertClass\"\n [class.alert-sm]=\"isSmall\"\n [class.alert-lightweight]=\"
|
|
19992
|
+
args: [{ selector: 'clr-alert', providers: [AlertIconAndTypesService], 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\n *ngIf=\"!_closed\"\n class=\"alert\"\n [ngClass]=\"alertClass\"\n [class.alert-sm]=\"isSmall\"\n [class.alert-lightweight]=\"isLightweight\"\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" }]
|
|
19968
19993
|
}], ctorParameters: function () { return [{ type: AlertIconAndTypesService }, { type: i0.ChangeDetectorRef }, { type: MultiAlertService, decorators: [{
|
|
19969
19994
|
type: Optional
|
|
19970
|
-
}] }, { type: ClrCommonStringsService }, { type: i0.Renderer2 }, { type: i0.ElementRef }]; }, propDecorators: {
|
|
19971
|
-
type: Input,
|
|
19972
|
-
args: ['clrAlertLightweight']
|
|
19973
|
-
}], isSmall: [{
|
|
19995
|
+
}] }, { type: ClrCommonStringsService }, { type: i0.Renderer2 }, { type: i0.ElementRef }]; }, propDecorators: { isSmall: [{
|
|
19974
19996
|
type: Input,
|
|
19975
19997
|
args: ['clrAlertSizeSmall']
|
|
19976
19998
|
}], closable: [{
|
|
@@ -19984,6 +20006,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
19984
20006
|
}], _closedChanged: [{
|
|
19985
20007
|
type: Output,
|
|
19986
20008
|
args: ['clrAlertClosedChange']
|
|
20009
|
+
}], isLightweight: [{
|
|
20010
|
+
type: Input,
|
|
20011
|
+
args: ['clrAlertLightweight']
|
|
19987
20012
|
}], alertType: [{
|
|
19988
20013
|
type: Input,
|
|
19989
20014
|
args: ['clrAlertType']
|
|
@@ -20008,24 +20033,28 @@ class ClrAlertItem {
|
|
|
20008
20033
|
ClrAlertItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrAlertItem, deps: [{ token: AlertIconAndTypesService }], target: i0.ɵɵFactoryTarget.Component });
|
|
20009
20034
|
ClrAlertItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrAlertItem, selector: "clr-alert-item", host: { classAttribute: "alert-item" }, ngImport: i0, template: `
|
|
20010
20035
|
<div class="alert-icon-wrapper">
|
|
20036
|
+
<clr-spinner class="alert-spinner" clrInline *ngIf="iconService.alertIconShape === 'loading'"></clr-spinner>
|
|
20011
20037
|
<cds-icon
|
|
20012
20038
|
class="alert-icon"
|
|
20013
20039
|
role="img"
|
|
20040
|
+
*ngIf="iconService.alertIconShape !== 'loading'"
|
|
20014
20041
|
[attr.shape]="iconService.alertIconShape"
|
|
20015
20042
|
[attr.aria-label]="iconService.alertIconTitle"
|
|
20016
20043
|
></cds-icon>
|
|
20017
20044
|
</div>
|
|
20018
20045
|
<ng-content></ng-content>
|
|
20019
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
20046
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: CdsIconCustomTag, selector: "cds-icon" }, { kind: "component", type: ClrSpinner, selector: "clr-spinner", inputs: ["clrInline", "clrInverse", "clrSmall", "clrMedium"] }] });
|
|
20020
20047
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrAlertItem, decorators: [{
|
|
20021
20048
|
type: Component,
|
|
20022
20049
|
args: [{
|
|
20023
20050
|
selector: 'clr-alert-item',
|
|
20024
20051
|
template: `
|
|
20025
20052
|
<div class="alert-icon-wrapper">
|
|
20053
|
+
<clr-spinner class="alert-spinner" clrInline *ngIf="iconService.alertIconShape === 'loading'"></clr-spinner>
|
|
20026
20054
|
<cds-icon
|
|
20027
20055
|
class="alert-icon"
|
|
20028
20056
|
role="img"
|
|
20057
|
+
*ngIf="iconService.alertIconShape !== 'loading'"
|
|
20029
20058
|
[attr.shape]="iconService.alertIconShape"
|
|
20030
20059
|
[attr.aria-label]="iconService.alertIconTitle"
|
|
20031
20060
|
></cds-icon>
|
|
@@ -20203,7 +20232,7 @@ class ClrAlerts {
|
|
|
20203
20232
|
}
|
|
20204
20233
|
}
|
|
20205
20234
|
ClrAlerts.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrAlerts, deps: [{ token: MultiAlertService }], target: i0.ɵɵFactoryTarget.Component });
|
|
20206
|
-
ClrAlerts.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrAlerts, selector: "clr-alerts", inputs: { _inputCurrentIndex: ["clrCurrentAlertIndex", "_inputCurrentIndex"], currentAlert: ["clrCurrentAlert", "currentAlert"] }, outputs: { currentAlertChange: "clrCurrentAlertChange", currentAlertIndexChange: "clrCurrentAlertIndexChange" }, 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-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<div class=\"alerts-wrapper\">\n <clr-alerts-pager *ngIf=\"multiAlertService.count > 1\" [clrCurrentAlertIndex]=\"currentAlertIndex\"></clr-alerts-pager>\n <ng-content select=\"clr-alert\"></ng-content>\n</div>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ClrAlertsPager, selector: "clr-alerts-pager", inputs: ["clrCurrentAlert", "clrCurrentAlertIndex"], outputs: ["clrCurrentAlertChange", "clrCurrentAlertIndexChange"] }] });
|
|
20235
|
+
ClrAlerts.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrAlerts, selector: "clr-alerts", inputs: { _inputCurrentIndex: ["clrCurrentAlertIndex", "_inputCurrentIndex"], currentAlert: ["clrCurrentAlert", "currentAlert"] }, outputs: { currentAlertChange: "clrCurrentAlertChange", currentAlertIndexChange: "clrCurrentAlertIndexChange" }, 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'", "class.alert-neutral": "this.currentAlertType == 'neutral'" } }, providers: [MultiAlertService], queries: [{ propertyName: "allAlerts", predicate: ClrAlert }], 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<div class=\"alerts-wrapper\">\n <clr-alerts-pager *ngIf=\"multiAlertService.count > 1\" [clrCurrentAlertIndex]=\"currentAlertIndex\"></clr-alerts-pager>\n <ng-content select=\"clr-alert\"></ng-content>\n</div>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ClrAlertsPager, selector: "clr-alerts-pager", inputs: ["clrCurrentAlert", "clrCurrentAlertIndex"], outputs: ["clrCurrentAlertChange", "clrCurrentAlertIndexChange"] }] });
|
|
20207
20236
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrAlerts, decorators: [{
|
|
20208
20237
|
type: Component,
|
|
20209
20238
|
args: [{ selector: 'clr-alerts', providers: [MultiAlertService], host: {
|
|
@@ -20212,6 +20241,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
20212
20241
|
'[class.alert-info]': "this.currentAlertType == 'info'",
|
|
20213
20242
|
'[class.alert-success]': "this.currentAlertType == 'success'",
|
|
20214
20243
|
'[class.alert-warning]': "this.currentAlertType == 'warning'",
|
|
20244
|
+
'[class.alert-neutral]': "this.currentAlertType == 'neutral'",
|
|
20215
20245
|
}, 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<div class=\"alerts-wrapper\">\n <clr-alerts-pager *ngIf=\"multiAlertService.count > 1\" [clrCurrentAlertIndex]=\"currentAlertIndex\"></clr-alerts-pager>\n <ng-content select=\"clr-alert\"></ng-content>\n</div>\n", styles: [":host{display:block}\n"] }]
|
|
20216
20246
|
}], ctorParameters: function () { return [{ type: MultiAlertService }]; }, propDecorators: { currentAlertChange: [{
|
|
20217
20247
|
type: Output,
|
|
@@ -20242,12 +20272,12 @@ class ClrAlertModule {
|
|
|
20242
20272
|
}
|
|
20243
20273
|
}
|
|
20244
20274
|
ClrAlertModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrAlertModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
20245
|
-
ClrAlertModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.2", ngImport: i0, type: ClrAlertModule, declarations: [ClrAlert, ClrAlertItem, ClrAlerts, ClrAlertsPager, ClrAlertText], imports: [CommonModule, ClrIconModule, ClrDropdownModule], exports: [ClrAlert, ClrAlertItem, ClrAlerts, ClrAlertsPager, ClrAlertText] });
|
|
20246
|
-
ClrAlertModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrAlertModule, imports: [CommonModule, ClrIconModule, ClrDropdownModule] });
|
|
20275
|
+
ClrAlertModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.2", ngImport: i0, type: ClrAlertModule, declarations: [ClrAlert, ClrAlertItem, ClrAlerts, ClrAlertsPager, ClrAlertText], imports: [CommonModule, ClrIconModule, ClrDropdownModule, ClrSpinnerModule], exports: [ClrAlert, ClrAlertItem, ClrAlerts, ClrAlertsPager, ClrAlertText] });
|
|
20276
|
+
ClrAlertModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrAlertModule, imports: [CommonModule, ClrIconModule, ClrDropdownModule, ClrSpinnerModule] });
|
|
20247
20277
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrAlertModule, decorators: [{
|
|
20248
20278
|
type: NgModule,
|
|
20249
20279
|
args: [{
|
|
20250
|
-
imports: [CommonModule, ClrIconModule, ClrDropdownModule],
|
|
20280
|
+
imports: [CommonModule, ClrIconModule, ClrDropdownModule, ClrSpinnerModule],
|
|
20251
20281
|
declarations: [CLR_ALERT_DIRECTIVES],
|
|
20252
20282
|
exports: [CLR_ALERT_DIRECTIVES],
|
|
20253
20283
|
}]
|
|
@@ -22140,12 +22170,10 @@ class ClrModal {
|
|
|
22140
22170
|
this.stopClose = false;
|
|
22141
22171
|
this.altClose = new EventEmitter(false);
|
|
22142
22172
|
this.labelledBy = this.modalId;
|
|
22143
|
-
// presently this is only used by inline wizards
|
|
22144
|
-
this.bypassScrollService = false;
|
|
22145
22173
|
}
|
|
22146
22174
|
// Detect when _open is set to true and set no-scrolling to true
|
|
22147
22175
|
ngOnChanges(changes) {
|
|
22148
|
-
if (
|
|
22176
|
+
if (changes && Object.prototype.hasOwnProperty.call(changes, '_open')) {
|
|
22149
22177
|
if (changes._open.currentValue) {
|
|
22150
22178
|
this._scrollingService.stopScrolling();
|
|
22151
22179
|
this.modalStackService.trackModalOpen(this);
|
|
@@ -22185,7 +22213,7 @@ class ClrModal {
|
|
|
22185
22213
|
}
|
|
22186
22214
|
}
|
|
22187
22215
|
ClrModal.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrModal, deps: [{ token: ScrollingService }, { token: ClrCommonStringsService }, { token: ModalStackService }], target: i0.ɵɵFactoryTarget.Component });
|
|
22188
|
-
ClrModal.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrModal, selector: "clr-modal", inputs: { _open: ["clrModalOpen", "_open"], closable: ["clrModalClosable", "closable"], closeButtonAriaLabel: ["clrModalCloseButtonAriaLabel", "closeButtonAriaLabel"], size: ["clrModalSize", "size"], staticBackdrop: ["clrModalStaticBackdrop", "staticBackdrop"], skipAnimation: ["clrModalSkipAnimation", "skipAnimation"], stopClose: ["clrModalPreventClose", "stopClose"], labelledBy: ["clrModalLabelledById", "labelledBy"]
|
|
22216
|
+
ClrModal.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrModal, selector: "clr-modal", inputs: { _open: ["clrModalOpen", "_open"], closable: ["clrModalClosable", "closable"], closeButtonAriaLabel: ["clrModalCloseButtonAriaLabel", "closeButtonAriaLabel"], size: ["clrModalSize", "size"], staticBackdrop: ["clrModalStaticBackdrop", "staticBackdrop"], skipAnimation: ["clrModalSkipAnimation", "skipAnimation"], stopClose: ["clrModalPreventClose", "stopClose"], labelledBy: ["clrModalLabelledById", "labelledBy"] }, outputs: { _openChanged: "clrModalOpenChange", altClose: "clrModalAlternateClose" }, host: { properties: { "class.open": "this._open" } }, usesOnChanges: true, 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=\"modal\" *ngIf=\"_open\">\n <!--fixme: revisit when ngClass works with exit animation-->\n <div\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"true\"\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}}\" cdkFocusInitial tabindex=\"-1\">\n <ng-content select=\".modal-title\"></ng-content>\n </div>\n <button\n type=\"button\"\n [attr.aria-label]=\"closeButtonAriaLabel || 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"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: CdkTrapFocusModule_CdkTrapFocus, selector: "[cdkTrapFocus]" }, { kind: "directive", type: CdsIconCustomTag, selector: "cds-icon" }], viewProviders: [ScrollingService], animations: [
|
|
22189
22217
|
trigger('fadeDown', [
|
|
22190
22218
|
transition('* => false', [style({ opacity: 0, transform: 'translate(0, -25%)' }), animate('0.2s ease-in-out')]),
|
|
22191
22219
|
transition('false => *', [animate('0.2s ease-in-out', style({ opacity: 0, transform: 'translate(0, -25%)' }))]),
|
|
@@ -22240,9 +22268,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
22240
22268
|
}], labelledBy: [{
|
|
22241
22269
|
type: Input,
|
|
22242
22270
|
args: ['clrModalLabelledById']
|
|
22243
|
-
}], bypassScrollService: [{
|
|
22244
|
-
type: Input,
|
|
22245
|
-
args: ['clrModalOverrideScrollService']
|
|
22246
22271
|
}] } });
|
|
22247
22272
|
|
|
22248
22273
|
/*
|
|
@@ -22901,26 +22926,14 @@ class ClrProgressBar {
|
|
|
22901
22926
|
get loopClass() {
|
|
22902
22927
|
return this._loop;
|
|
22903
22928
|
}
|
|
22904
|
-
/** @deprecated since 2.0, remove in 4.0 */
|
|
22905
|
-
set clrWarning(value) {
|
|
22906
|
-
this._warning = isBooleanAttributeSet(value);
|
|
22907
|
-
}
|
|
22908
22929
|
get warningClass() {
|
|
22909
|
-
return this.
|
|
22910
|
-
}
|
|
22911
|
-
/** @deprecated since 2.0, remove in 4.0 */
|
|
22912
|
-
set clrSuccess(value) {
|
|
22913
|
-
this._success = isBooleanAttributeSet(value);
|
|
22930
|
+
return this.color === 'warning';
|
|
22914
22931
|
}
|
|
22915
22932
|
get successClass() {
|
|
22916
|
-
return this.
|
|
22917
|
-
}
|
|
22918
|
-
/** @deprecated since 2.0, remove in 4.0 */
|
|
22919
|
-
set clrDanger(value) {
|
|
22920
|
-
this._danger = isBooleanAttributeSet(value);
|
|
22933
|
+
return this.color === 'success';
|
|
22921
22934
|
}
|
|
22922
22935
|
get dangerClass() {
|
|
22923
|
-
return this.
|
|
22936
|
+
return this.color === 'danger';
|
|
22924
22937
|
}
|
|
22925
22938
|
set clrFlash(value) {
|
|
22926
22939
|
this._flash = isBooleanAttributeSet(value);
|
|
@@ -22953,7 +22966,7 @@ class ClrProgressBar {
|
|
|
22953
22966
|
}
|
|
22954
22967
|
}
|
|
22955
22968
|
ClrProgressBar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrProgressBar, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
22956
|
-
ClrProgressBar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrProgressBar, selector: "clr-progress-bar", inputs: { max: ["clrMax", "max"], displayval: ["clrDisplayval", "displayval"], value: ["clrValue", "value"], id: "id", clrCompact: "clrCompact", clrLabeled: "clrLabeled", clrFade: "clrFade", clrLoop: "clrLoop",
|
|
22969
|
+
ClrProgressBar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrProgressBar, selector: "clr-progress-bar", inputs: { max: ["clrMax", "max"], displayval: ["clrDisplayval", "displayval"], color: ["clrColor", "color"], value: ["clrValue", "value"], id: "id", clrCompact: "clrCompact", clrLabeled: "clrLabeled", clrFade: "clrFade", clrLoop: "clrLoop", clrFlash: "clrFlash", clrFlashDanger: "clrFlashDanger" }, host: { properties: { "attr.id": "this.externalId", "class.progress": "this.progressClass", "class.compact": "this.compactClass", "class.labeled": "this.labeledClass", "class.progress-fade": "this.fadeClass", "class.loop": "this.loopClass", "class.warning": "this.warningClass", "class.success": "this.successClass", "class.danger": "this.dangerClass", "class.flash": "this.flashClass", "class.flash-danger": "this.flashDangerClass" } }, ngImport: i0, template: `
|
|
22957
22970
|
<progress [id]="id" [attr.max]="max" [attr.value]="value" [attr.data-displayval]="displayValue"></progress>
|
|
22958
22971
|
<span *ngIf="displayStringValue()">{{ displayValue }}</span>
|
|
22959
22972
|
`, isInline: true, dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
@@ -22972,6 +22985,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
22972
22985
|
}], displayval: [{
|
|
22973
22986
|
type: Input,
|
|
22974
22987
|
args: ['clrDisplayval']
|
|
22988
|
+
}], color: [{
|
|
22989
|
+
type: Input,
|
|
22990
|
+
args: ['clrColor']
|
|
22975
22991
|
}], value: [{
|
|
22976
22992
|
type: Input,
|
|
22977
22993
|
args: ['clrValue']
|
|
@@ -23007,21 +23023,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
23007
23023
|
}], loopClass: [{
|
|
23008
23024
|
type: HostBinding,
|
|
23009
23025
|
args: ['class.loop']
|
|
23010
|
-
}], clrWarning: [{
|
|
23011
|
-
type: Input,
|
|
23012
|
-
args: ['clrWarning']
|
|
23013
23026
|
}], warningClass: [{
|
|
23014
23027
|
type: HostBinding,
|
|
23015
23028
|
args: ['class.warning']
|
|
23016
|
-
}], clrSuccess: [{
|
|
23017
|
-
type: Input,
|
|
23018
|
-
args: ['clrSuccess']
|
|
23019
23029
|
}], successClass: [{
|
|
23020
23030
|
type: HostBinding,
|
|
23021
23031
|
args: ['class.success']
|
|
23022
|
-
}], clrDanger: [{
|
|
23023
|
-
type: Input,
|
|
23024
|
-
args: ['clrDanger']
|
|
23025
23032
|
}], dangerClass: [{
|
|
23026
23033
|
type: HostBinding,
|
|
23027
23034
|
args: ['class.danger']
|
|
@@ -25354,14 +25361,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
25354
25361
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
25355
25362
|
*/
|
|
25356
25363
|
class ClrWizard {
|
|
25357
|
-
constructor(platformId, commonStrings, navService, pageCollection, buttonService, headerActionService,
|
|
25364
|
+
constructor(platformId, commonStrings, navService, pageCollection, buttonService, headerActionService, differs) {
|
|
25358
25365
|
this.platformId = platformId;
|
|
25359
25366
|
this.commonStrings = commonStrings;
|
|
25360
25367
|
this.navService = navService;
|
|
25361
25368
|
this.pageCollection = pageCollection;
|
|
25362
25369
|
this.buttonService = buttonService;
|
|
25363
25370
|
this.headerActionService = headerActionService;
|
|
25364
|
-
this.elementRef = elementRef;
|
|
25365
25371
|
/**
|
|
25366
25372
|
* Set the aria-label for the stepnav section of the wizard. Set using `[clrWizardStepnavAriaLabel]` input.
|
|
25367
25373
|
*/
|
|
@@ -25375,12 +25381,6 @@ class ClrWizard {
|
|
|
25375
25381
|
* in the top right corner. Set using `[clrWizardClosable]` input.
|
|
25376
25382
|
*/
|
|
25377
25383
|
this.closable = true;
|
|
25378
|
-
/**
|
|
25379
|
-
* Used to communicate to the underlying modal that animations are not
|
|
25380
|
-
* wanted. Primary use is for the display of static/inline wizards.
|
|
25381
|
-
* Set using `[clrWizardPreventModalAnimation]` input.
|
|
25382
|
-
*/
|
|
25383
|
-
this._stopModalAnimations = false;
|
|
25384
25384
|
/**
|
|
25385
25385
|
* Emits when the wizard is opened or closed.
|
|
25386
25386
|
* Listen via `(clrWizardOpenChange)` event.
|
|
@@ -25519,16 +25519,9 @@ class ClrWizard {
|
|
|
25519
25519
|
get isFirst() {
|
|
25520
25520
|
return this.navService.currentPageIsFirst;
|
|
25521
25521
|
}
|
|
25522
|
-
get isInline() {
|
|
25523
|
-
return this.elementRef.nativeElement.classList.contains('clr-wizard--inline');
|
|
25524
|
-
}
|
|
25525
|
-
get stopModalAnimations() {
|
|
25526
|
-
return this._stopModalAnimations ? 'true' : 'false';
|
|
25527
|
-
}
|
|
25528
25522
|
ngAfterContentInit() {
|
|
25529
25523
|
this.pageCollection.pages = this.pages;
|
|
25530
25524
|
this.headerActionService.wizardHeaderActions = this.headerActions;
|
|
25531
|
-
this.initializeButtons();
|
|
25532
25525
|
}
|
|
25533
25526
|
ngDoCheck() {
|
|
25534
25527
|
this.updateNavOnPageChanges();
|
|
@@ -25730,12 +25723,6 @@ class ClrWizard {
|
|
|
25730
25723
|
changes.forEachRemovedItem(() => this.navService.updateNavigation());
|
|
25731
25724
|
}
|
|
25732
25725
|
}
|
|
25733
|
-
initializeButtons() {
|
|
25734
|
-
// Only trigger buttons ready if default is open (inlined)
|
|
25735
|
-
if (this._open) {
|
|
25736
|
-
this.buttonService.buttonsReady = true;
|
|
25737
|
-
}
|
|
25738
|
-
}
|
|
25739
25726
|
emitWizardFinished() {
|
|
25740
25727
|
if (!this.stopNext) {
|
|
25741
25728
|
this.forceFinish();
|
|
@@ -25743,8 +25730,8 @@ class ClrWizard {
|
|
|
25743
25730
|
this.wizardFinished.emit();
|
|
25744
25731
|
}
|
|
25745
25732
|
}
|
|
25746
|
-
ClrWizard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrWizard, deps: [{ token: PLATFORM_ID }, { token: ClrCommonStringsService }, { token: WizardNavigationService }, { token: PageCollectionService }, { token: ButtonHubService }, { token: HeaderActionService }, { token: i0.
|
|
25747
|
-
ClrWizard.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrWizard, selector: "clr-wizard", inputs: { stepnavAriaLabel: ["clrWizardStepnavAriaLabel", "stepnavAriaLabel"], size: ["clrWizardSize", "size"], closable: ["clrWizardClosable", "closable"],
|
|
25733
|
+
ClrWizard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrWizard, deps: [{ token: PLATFORM_ID }, { token: ClrCommonStringsService }, { token: WizardNavigationService }, { token: PageCollectionService }, { token: ButtonHubService }, { token: HeaderActionService }, { token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Component });
|
|
25734
|
+
ClrWizard.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrWizard, selector: "clr-wizard", inputs: { stepnavAriaLabel: ["clrWizardStepnavAriaLabel", "stepnavAriaLabel"], size: ["clrWizardSize", "size"], closable: ["clrWizardClosable", "closable"], forceForward: ["clrWizardForceForwardNavigation", "forceForward"], clrWizardOpen: "clrWizardOpen", stopNext: ["clrWizardPreventDefaultNext", "stopNext"], stopCancel: ["clrWizardPreventDefaultCancel", "stopCancel"], stopNavigation: ["clrWizardPreventNavigation", "stopNavigation"], disableStepnav: ["clrWizardDisableStepnav", "disableStepnav"] }, outputs: { _openChanged: "clrWizardOpenChange", onCancel: "clrWizardOnCancel", wizardFinished: "clrWizardOnFinish", onReset: "clrWizardOnReset", currentPageChanged: "clrWizardCurrentPageChanged", onMoveNext: "clrWizardOnNext", onMovePrevious: "clrWizardOnPrevious" }, host: { properties: { "class.clr-wizard": "true", "class.wizard-md": "size == 'md'", "class.wizard-lg": "size == 'lg'", "class.wizard-xl": "size == 'xl'", "class.lastPage": "navService.currentPageIsLast" } }, providers: [WizardNavigationService, PageCollectionService, ButtonHubService, HeaderActionService], queries: [{ propertyName: "wizardTitle", first: true, predicate: ClrWizardTitle, descendants: true }, { propertyName: "pages", predicate: ClrWizardPage, descendants: true }, { propertyName: "headerActions", predicate: ClrWizardHeaderAction }], viewQueries: [{ propertyName: "pageTitle", first: true, predicate: ["pageTitle"], descendants: true }], 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<clr-modal\n [clrModalOpen]=\"_open\"\n [clrModalSize]=\"size\"\n [clrModalClosable]=\"closable\"\n [clrModalStaticBackdrop]=\"true\"\n [clrModalPreventClose]=\"true\"\n (clrModalAlternateClose)=\"modalCancel()\"\n [clrModalLabelledById]=\"wizardId\"\n>\n <div class=\"modal-nav clr-wizard-stepnav-wrapper\" role=\"region\" [attr.aria-label]=\"stepnavAriaLabel\">\n <div class=\"clr-wizard-title\" id=\"{{wizardId}}\" role=\"heading\" [attr.aria-level]=\"wizardTitle.headingLevel || 1\">\n <ng-content select=\"clr-wizard-title\"></ng-content>\n </div>\n <clr-wizard-stepnav></clr-wizard-stepnav>\n </div>\n\n <div class=\"modal-title\" role=\"heading\" [attr.aria-level]=\"navService.currentPage.pageTitle.headingLevel || 2\">\n <span tabindex=\"-1\" #pageTitle 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 </div>\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", dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ClrModal, selector: "clr-modal", inputs: ["clrModalOpen", "clrModalClosable", "clrModalCloseButtonAriaLabel", "clrModalSize", "clrModalStaticBackdrop", "clrModalSkipAnimation", "clrModalPreventClose", "clrModalLabelledById"], outputs: ["clrModalOpenChange", "clrModalAlternateClose"] }, { kind: "directive", type: ClrModalBody, selector: ".modal-body" }, { kind: "component", type: ClrWizardStepnav, selector: "clr-wizard-stepnav" }] });
|
|
25748
25735
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrWizard, decorators: [{
|
|
25749
25736
|
type: Component,
|
|
25750
25737
|
args: [{ selector: 'clr-wizard', providers: [WizardNavigationService, PageCollectionService, ButtonHubService, HeaderActionService], host: {
|
|
@@ -25753,11 +25740,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
25753
25740
|
'[class.wizard-lg]': "size == 'lg'",
|
|
25754
25741
|
'[class.wizard-xl]': "size == 'xl'",
|
|
25755
25742
|
'[class.lastPage]': 'navService.currentPageIsLast',
|
|
25756
|
-
}, 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<clr-modal\n [clrModalOpen]=\"_open\"\n [clrModalSize]=\"size\"\n [clrModalClosable]=\"closable\"\n [clrModalStaticBackdrop]=\"true\"\n [
|
|
25743
|
+
}, 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<clr-modal\n [clrModalOpen]=\"_open\"\n [clrModalSize]=\"size\"\n [clrModalClosable]=\"closable\"\n [clrModalStaticBackdrop]=\"true\"\n [clrModalPreventClose]=\"true\"\n (clrModalAlternateClose)=\"modalCancel()\"\n [clrModalLabelledById]=\"wizardId\"\n>\n <div class=\"modal-nav clr-wizard-stepnav-wrapper\" role=\"region\" [attr.aria-label]=\"stepnavAriaLabel\">\n <div class=\"clr-wizard-title\" id=\"{{wizardId}}\" role=\"heading\" [attr.aria-level]=\"wizardTitle.headingLevel || 1\">\n <ng-content select=\"clr-wizard-title\"></ng-content>\n </div>\n <clr-wizard-stepnav></clr-wizard-stepnav>\n </div>\n\n <div class=\"modal-title\" role=\"heading\" [attr.aria-level]=\"navService.currentPage.pageTitle.headingLevel || 2\">\n <span tabindex=\"-1\" #pageTitle 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 </div>\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" }]
|
|
25757
25744
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
25758
25745
|
type: Inject,
|
|
25759
25746
|
args: [PLATFORM_ID]
|
|
25760
|
-
}] }, { type: ClrCommonStringsService }, { type: WizardNavigationService }, { type: PageCollectionService }, { type: ButtonHubService }, { type: HeaderActionService }, { type: i0.
|
|
25747
|
+
}] }, { type: ClrCommonStringsService }, { type: WizardNavigationService }, { type: PageCollectionService }, { type: ButtonHubService }, { type: HeaderActionService }, { type: i0.IterableDiffers }]; }, propDecorators: { stepnavAriaLabel: [{
|
|
25761
25748
|
type: Input,
|
|
25762
25749
|
args: ['clrWizardStepnavAriaLabel']
|
|
25763
25750
|
}], size: [{
|
|
@@ -25766,9 +25753,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
25766
25753
|
}], closable: [{
|
|
25767
25754
|
type: Input,
|
|
25768
25755
|
args: ['clrWizardClosable']
|
|
25769
|
-
}], _stopModalAnimations: [{
|
|
25770
|
-
type: Input,
|
|
25771
|
-
args: ['clrWizardPreventModalAnimation']
|
|
25772
25756
|
}], _openChanged: [{
|
|
25773
25757
|
type: Output,
|
|
25774
25758
|
args: ['clrWizardOpenChange']
|
|
@@ -26413,12 +26397,6 @@ const CLR_MENU_POSITIONS = [
|
|
|
26413
26397
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26414
26398
|
*/
|
|
26415
26399
|
|
|
26416
|
-
/*
|
|
26417
|
-
* Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.
|
|
26418
|
-
* This software is released under MIT license.
|
|
26419
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26420
|
-
*/
|
|
26421
|
-
|
|
26422
26400
|
/**
|
|
26423
26401
|
* Generated bundle index. Do not edit.
|
|
26424
26402
|
*/
|