@clr/angular 17.0.0-next.1 → 17.0.0-next.2
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/README.md +4 -0
- package/accordion/stepper/models/stepper.model.d.ts +2 -0
- package/accordion/stepper/providers/stepper.service.d.ts +2 -0
- package/clarity.api.md +57 -54
- package/data/datagrid/datagrid-if-expanded.service.d.ts +1 -1
- package/data/datagrid/datagrid.module.d.ts +36 -37
- package/data/datagrid/index.d.ts +0 -1
- package/data/datagrid/providers/items.d.ts +2 -11
- package/emphasis/alert/alert.d.ts +6 -2
- package/emphasis/alert/alert.module.d.ts +2 -1
- package/esm2020/accordion/accordion.mjs +3 -3
- package/esm2020/accordion/stepper/models/stepper.model.mjs +7 -1
- package/esm2020/accordion/stepper/providers/stepper.service.mjs +9 -1
- package/esm2020/accordion/stepper/stepper-panel.mjs +11 -6
- package/esm2020/button/button-group/button-group.mjs +9 -11
- package/esm2020/button/button-loading/loading-button.mjs +15 -5
- package/esm2020/data/datagrid/datagrid-column-toggle.mjs +3 -4
- package/esm2020/data/datagrid/datagrid-if-expanded.service.mjs +1 -1
- package/esm2020/data/datagrid/datagrid-items.mjs +1 -2
- package/esm2020/data/datagrid/datagrid.mjs +3 -5
- package/esm2020/data/datagrid/datagrid.module.mjs +1 -5
- package/esm2020/data/datagrid/index.mjs +1 -2
- package/esm2020/data/datagrid/providers/items.mjs +3 -21
- package/esm2020/data/datagrid/providers/selection.mjs +16 -22
- package/esm2020/emphasis/alert/alert-item.mjs +9 -3
- package/esm2020/emphasis/alert/alert.mjs +21 -10
- package/esm2020/emphasis/alert/alert.module.mjs +7 -6
- package/esm2020/emphasis/alert/alerts.mjs +3 -2
- package/esm2020/emphasis/alert/providers/icon-and-types.service.mjs +20 -5
- package/esm2020/emphasis/alert/utils/alert-types.mjs +2 -2
- package/esm2020/forms/combobox/option-items.directive.mjs +12 -6
- package/esm2020/forms/common/wrapped-control.mjs +29 -5
- package/esm2020/forms/datepicker/date-input.mjs +10 -1
- package/esm2020/forms/datepicker/providers/date-io.service.mjs +2 -2
- package/esm2020/forms/password/password-container.mjs +9 -3
- package/esm2020/popover/signpost/signpost-trigger.mjs +2 -1
- package/esm2020/progress/progress-bars/progress-bar.mjs +8 -26
- package/esm2020/utils/chocolate/willy-wonka.mjs +1 -1
- package/esm2020/utils/focus/key-focus/key-focus.mjs +2 -2
- package/esm2020/utils/i18n/common-strings.default.mjs +5 -3
- package/esm2020/utils/i18n/common-strings.interface.mjs +1 -1
- package/esm2020/utils/popover/providers/popover-position.service.mjs +11 -3
- package/esm2020/wizard/providers/button-hub.service.mjs +1 -1
- package/esm2020/wizard/providers/wizard-navigation.service.mjs +1 -1
- package/esm2020/wizard/wizard.mjs +2 -2
- package/fesm2015/clr-angular.mjs +210 -184
- package/fesm2015/clr-angular.mjs.map +1 -1
- package/fesm2020/clr-angular.mjs +208 -181
- package/fesm2020/clr-angular.mjs.map +1 -1
- package/forms/common/wrapped-control.d.ts +10 -3
- package/forms/datepicker/date-input.d.ts +1 -0
- package/forms/password/password-container.d.ts +2 -0
- package/package.json +3 -3
- package/progress/progress-bars/progress-bar.d.ts +2 -10
- package/utils/chocolate/willy-wonka.d.ts +1 -1
- package/utils/i18n/common-strings.interface.d.ts +8 -0
- package/wizard/providers/button-hub.service.d.ts +6 -6
- package/wizard/providers/wizard-navigation.service.d.ts +1 -1
- package/data/datagrid/datagrid-items-trackby.d.ts +0 -10
- package/esm2020/data/datagrid/datagrid-items-trackby.mjs +0 -43
package/fesm2020/clr-angular.mjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
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';
|
|
2
|
+
import { Directive, NgModule, Optional, Input, Injectable, Component, ChangeDetectionStrategy, EventEmitter, HostBinding, Output, ContentChildren, PLATFORM_ID, Inject, ViewChild, HostListener, SkipSelf, Renderer2, InjectionToken, ElementRef, ContentChild, ComponentFactoryResolver, KeyValueDiffers, 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
|
-
import { ClarityIcons, angleIcon, exclamationCircleIcon, checkCircleIcon, ellipsisHorizontalIcon, windowCloseIcon, eventIcon, calendarIcon, eyeHideIcon, eyeIcon, ellipsisVerticalIcon, viewColumnsIcon, arrowIcon, timesIcon, stepForward2Icon, angleDoubleIcon, filterGridCircleIcon, filterGridIcon,
|
|
6
|
-
import { map, tap, startWith, distinctUntilChanged,
|
|
5
|
+
import { ClarityIcons, angleIcon, exclamationCircleIcon, checkCircleIcon, ellipsisHorizontalIcon, windowCloseIcon, eventIcon, calendarIcon, eyeHideIcon, eyeIcon, ellipsisVerticalIcon, viewColumnsIcon, arrowIcon, timesIcon, stepForward2Icon, angleDoubleIcon, filterGridCircleIcon, filterGridIcon, errorStandardIcon, helpIcon, infoStandardIcon, noteIcon, successStandardIcon, warningStandardIcon, infoCircleIcon, circleIcon, dotCircleIcon } from '@cds/core/icon';
|
|
6
|
+
import { map, tap, startWith, distinctUntilChanged, filter, skipUntil, debounceTime, takeUntil, take, first, switchMap } from 'rxjs/operators';
|
|
7
7
|
import * as i3 from 'rxjs';
|
|
8
8
|
import { Subject, BehaviorSubject, Observable, fromEvent, isObservable, of, ReplaySubject, combineLatest, merge } from 'rxjs';
|
|
9
9
|
import { trigger, transition, style, animate, state, keyframes } from '@angular/animations';
|
|
@@ -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',
|
|
@@ -361,8 +363,8 @@ const commonStringsDefault = {
|
|
|
361
363
|
* Password Input
|
|
362
364
|
* Screen-reader text for the hide/show password field button
|
|
363
365
|
*/
|
|
364
|
-
passwordHide: 'Hide password',
|
|
365
|
-
passwordShow: 'Show password',
|
|
366
|
+
passwordHide: 'Hide password for {LABEL}',
|
|
367
|
+
passwordShow: 'Show password for {LABEL}',
|
|
366
368
|
/**
|
|
367
369
|
* Datagrid footer; sr-only text after the number of selected rows.
|
|
368
370
|
*/
|
|
@@ -666,7 +668,7 @@ class ClrAccordion {
|
|
|
666
668
|
}
|
|
667
669
|
}
|
|
668
670
|
ClrAccordion.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrAccordion, deps: [{ token: AccordionService }], target: i0.ɵɵFactoryTarget.Component });
|
|
669
|
-
ClrAccordion.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrAccordion, selector: "clr-accordion", inputs: { multiPanel: ["clrAccordionMultiPanel", "multiPanel"] }, host: { properties: { "class.clr-accordion": "true" } }, providers: [AccordionService], queries: [{ propertyName: "panels", predicate: ClrAccordionPanel
|
|
671
|
+
ClrAccordion.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrAccordion, selector: "clr-accordion", inputs: { multiPanel: ["clrAccordionMultiPanel", "multiPanel"] }, host: { properties: { "class.clr-accordion": "true" } }, providers: [AccordionService], queries: [{ propertyName: "panels", predicate: ClrAccordionPanel }], usesOnChanges: true, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
670
672
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrAccordion, decorators: [{
|
|
671
673
|
type: Component,
|
|
672
674
|
args: [{
|
|
@@ -681,7 +683,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
681
683
|
args: ['clrAccordionMultiPanel']
|
|
682
684
|
}], panels: [{
|
|
683
685
|
type: ContentChildren,
|
|
684
|
-
args: [ClrAccordionPanel
|
|
686
|
+
args: [ClrAccordionPanel]
|
|
685
687
|
}] } });
|
|
686
688
|
|
|
687
689
|
/*
|
|
@@ -945,6 +947,12 @@ class StepperModel extends AccordionModel {
|
|
|
945
947
|
}
|
|
946
948
|
});
|
|
947
949
|
}
|
|
950
|
+
setPanelValid(panelId) {
|
|
951
|
+
this._panels[panelId].status = AccordionStatus.Complete;
|
|
952
|
+
}
|
|
953
|
+
setPanelInvalid(panelId) {
|
|
954
|
+
this._panels[panelId].status = AccordionStatus.Error;
|
|
955
|
+
}
|
|
948
956
|
setPanelsWithErrors(ids) {
|
|
949
957
|
ids.forEach(id => this.setPanelError(id));
|
|
950
958
|
}
|
|
@@ -1028,6 +1036,14 @@ class StepperService extends AccordionService {
|
|
|
1028
1036
|
this.accordion.resetPanels();
|
|
1029
1037
|
this.emitUpdatedPanels();
|
|
1030
1038
|
}
|
|
1039
|
+
setPanelValid(panelId) {
|
|
1040
|
+
this.accordion.setPanelValid(panelId);
|
|
1041
|
+
this.emitUpdatedPanels();
|
|
1042
|
+
}
|
|
1043
|
+
setPanelInvalid(panelId) {
|
|
1044
|
+
this.accordion.setPanelInvalid(panelId);
|
|
1045
|
+
this.emitUpdatedPanels();
|
|
1046
|
+
}
|
|
1031
1047
|
setPanelsWithErrors(ids) {
|
|
1032
1048
|
this.accordion.setPanelsWithErrors(ids);
|
|
1033
1049
|
this.emitUpdatedPanels();
|
|
@@ -1090,11 +1106,16 @@ class ClrStepperPanel extends ClrAccordionPanel {
|
|
|
1090
1106
|
this.panel = this.panel.pipe(tap(panel => this.triggerAllFormControlValidationIfError(panel)));
|
|
1091
1107
|
this.stepperService.disablePanel(this.id, true);
|
|
1092
1108
|
this.listenToFocusChanges();
|
|
1109
|
+
// not all stepper panels are guaranteed to have a form (i.e. empty template-driven)
|
|
1093
1110
|
if (this.formGroup) {
|
|
1094
|
-
//
|
|
1095
|
-
this.
|
|
1096
|
-
|
|
1097
|
-
|
|
1111
|
+
// set panel status on form status change only after the form becomes invalid
|
|
1112
|
+
const invalidStatusTrigger = this.formGroup.statusChanges.pipe(filter(status => status === 'INVALID'));
|
|
1113
|
+
this.subscriptions.push(this.formGroup.statusChanges.pipe(skipUntil(invalidStatusTrigger), distinctUntilChanged()).subscribe(status => {
|
|
1114
|
+
if (status === 'VALID') {
|
|
1115
|
+
this.stepperService.setPanelValid(this.id);
|
|
1116
|
+
}
|
|
1117
|
+
else if (status === 'INVALID') {
|
|
1118
|
+
this.stepperService.setPanelInvalid(this.id);
|
|
1098
1119
|
}
|
|
1099
1120
|
}));
|
|
1100
1121
|
}
|
|
@@ -1940,12 +1961,12 @@ class ClrPopoverPositionService {
|
|
|
1940
1961
|
*
|
|
1941
1962
|
* Note, more than 3 viewport violations and there isn't anything we can do to help. Also when there are two
|
|
1942
1963
|
* violations, we can't help if the violations are TOP+BOTTOM || LEFT+RIGHT => There is no transformation we
|
|
1943
|
-
* can make to the
|
|
1964
|
+
* can make to the position that will help.
|
|
1944
1965
|
*
|
|
1945
1966
|
* Some examples:
|
|
1946
1967
|
* There is only one error and Primary axis is VERTICAL
|
|
1947
1968
|
* - this.handleVerticalAxisOneViolation has a switch that will use the error sum to apply the correct
|
|
1948
|
-
* transform to the
|
|
1969
|
+
* transform to the position based on the reduction of visibilityViolations.
|
|
1949
1970
|
*
|
|
1950
1971
|
* There are two errors and Primary axis is HORIZONTAL
|
|
1951
1972
|
* - handleHorizontalAxisTwoViolations has a switch that uses the error sum to apply both transforms needed to
|
|
@@ -1977,6 +1998,14 @@ class ClrPopoverPositionService {
|
|
|
1977
1998
|
if (this.currentContentCoords.top < 0) {
|
|
1978
1999
|
this.contentOffsets.yOffset += Math.abs(this.currentContentCoords.top);
|
|
1979
2000
|
}
|
|
2001
|
+
/**
|
|
2002
|
+
* This detects the condition where the popover is flipped because it would violate the bottom of the viewport, but flipping it results in the
|
|
2003
|
+
* popover rendering above the top of the body (y coordinate outside the body). In that event, it should be rendered within the body
|
|
2004
|
+
* as much as possible, so this logic sets the top of popover to render touching the top of the body.
|
|
2005
|
+
*/
|
|
2006
|
+
if (this.contentOffsets.yOffset + this.currentAnchorCoords.y < 0) {
|
|
2007
|
+
this.contentOffsets.yOffset = 0 - this.currentContentCoords.top;
|
|
2008
|
+
}
|
|
1980
2009
|
return this.contentOffsets;
|
|
1981
2010
|
}
|
|
1982
2011
|
handleVerticalAxisOneViolation(errorSum) {
|
|
@@ -3802,16 +3831,14 @@ class ClrButtonGroup {
|
|
|
3802
3831
|
this.menuButtons = tempInMenuButtons;
|
|
3803
3832
|
}
|
|
3804
3833
|
handleFocusOnMenuOpen() {
|
|
3805
|
-
|
|
3806
|
-
|
|
3807
|
-
|
|
3808
|
-
this.
|
|
3809
|
-
|
|
3810
|
-
|
|
3811
|
-
|
|
3812
|
-
|
|
3813
|
-
});
|
|
3814
|
-
}
|
|
3834
|
+
this.toggleService.popoverVisible.pipe(takeUntil(this.destroy$)).subscribe(visible => {
|
|
3835
|
+
if (visible) {
|
|
3836
|
+
this.focusHandler.initialize({
|
|
3837
|
+
menu: this.menu.nativeElement,
|
|
3838
|
+
menuToggle: this.menuToggle.nativeElement,
|
|
3839
|
+
});
|
|
3840
|
+
}
|
|
3841
|
+
});
|
|
3815
3842
|
}
|
|
3816
3843
|
}
|
|
3817
3844
|
ClrButtonGroup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrButtonGroup, deps: [{ token: ButtonInGroupService }, { token: ClrPopoverToggleService }, { token: ClrCommonStringsService }, { token: ClrDestroyService }, { token: ButtonGroupFocusHandler }], target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -3910,7 +3937,7 @@ class ClrLoadingButton {
|
|
|
3910
3937
|
}
|
|
3911
3938
|
ClrLoadingButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrLoadingButton, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
|
|
3912
3939
|
ClrLoadingButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrLoadingButton, selector: "button[clrLoading]", inputs: { disabled: "disabled" }, outputs: { clrLoadingChange: "clrLoadingChange" }, host: { properties: { "attr.disabled": "disabled? '' : null" } }, providers: [{ provide: LoadingListener, useExisting: ClrLoadingButton }], ngImport: i0, template: `
|
|
3913
|
-
<
|
|
3940
|
+
<span @parent [ngSwitch]="state">
|
|
3914
3941
|
<span *ngSwitchCase="buttonState.LOADING">
|
|
3915
3942
|
<span @spinner class="spinner spinner-inline"></span>
|
|
3916
3943
|
</span>
|
|
@@ -3924,8 +3951,13 @@ ClrLoadingButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", versi
|
|
|
3924
3951
|
<span *ngSwitchCase="buttonState.DEFAULT" @defaultButton>
|
|
3925
3952
|
<ng-content></ng-content>
|
|
3926
3953
|
</span>
|
|
3927
|
-
</
|
|
3954
|
+
</span>
|
|
3928
3955
|
`, isInline: true, dependencies: [{ kind: "directive", type: i5.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i5.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], animations: [
|
|
3956
|
+
trigger('parent', [
|
|
3957
|
+
// Skip :enter animation on first render.
|
|
3958
|
+
// The button text/content should only be faded when transitioning to or from a non-default state.
|
|
3959
|
+
transition(':enter', []),
|
|
3960
|
+
]),
|
|
3929
3961
|
trigger('defaultButton', [
|
|
3930
3962
|
transition(':enter', [style({ opacity: 0 }), animate('200ms 100ms ease-in', style({ opacity: 1 }))]),
|
|
3931
3963
|
// TODO: see if we can get leave animation to work before spinner's enter animation
|
|
@@ -3953,7 +3985,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
3953
3985
|
args: [{
|
|
3954
3986
|
selector: 'button[clrLoading]',
|
|
3955
3987
|
template: `
|
|
3956
|
-
<
|
|
3988
|
+
<span @parent [ngSwitch]="state">
|
|
3957
3989
|
<span *ngSwitchCase="buttonState.LOADING">
|
|
3958
3990
|
<span @spinner class="spinner spinner-inline"></span>
|
|
3959
3991
|
</span>
|
|
@@ -3967,10 +3999,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
3967
3999
|
<span *ngSwitchCase="buttonState.DEFAULT" @defaultButton>
|
|
3968
4000
|
<ng-content></ng-content>
|
|
3969
4001
|
</span>
|
|
3970
|
-
</
|
|
4002
|
+
</span>
|
|
3971
4003
|
`,
|
|
3972
4004
|
providers: [{ provide: LoadingListener, useExisting: ClrLoadingButton }],
|
|
3973
4005
|
animations: [
|
|
4006
|
+
trigger('parent', [
|
|
4007
|
+
// Skip :enter animation on first render.
|
|
4008
|
+
// The button text/content should only be faded when transitioning to or from a non-default state.
|
|
4009
|
+
transition(':enter', []),
|
|
4010
|
+
]),
|
|
3974
4011
|
trigger('defaultButton', [
|
|
3975
4012
|
transition(':enter', [style({ opacity: 0 }), animate('200ms 100ms ease-in', style({ opacity: 1 }))]),
|
|
3976
4013
|
// TODO: see if we can get leave animation to work before spinner's enter animation
|
|
@@ -4786,6 +4823,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
4786
4823
|
* This software is released under MIT license.
|
|
4787
4824
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
4788
4825
|
*/
|
|
4826
|
+
var CHANGE_KEYS;
|
|
4827
|
+
(function (CHANGE_KEYS) {
|
|
4828
|
+
CHANGE_KEYS["FORM"] = "form";
|
|
4829
|
+
CHANGE_KEYS["MODEL"] = "model";
|
|
4830
|
+
})(CHANGE_KEYS || (CHANGE_KEYS = {}));
|
|
4789
4831
|
class WrappedFormControl {
|
|
4790
4832
|
// I lost way too much time trying to make this work without injecting the ViewContainerRef and the Injector,
|
|
4791
4833
|
// I'm giving up. So we have to inject these two manually for now.
|
|
@@ -4802,6 +4844,7 @@ class WrappedFormControl {
|
|
|
4802
4844
|
this.ifControlStateService = injector.get(IfControlStateService, null);
|
|
4803
4845
|
this.controlClassService = injector.get(ControlClassService, null);
|
|
4804
4846
|
this.markControlService = injector.get(MarkControlService, null);
|
|
4847
|
+
this.differs = injector.get(KeyValueDiffers, null);
|
|
4805
4848
|
}
|
|
4806
4849
|
if (this.controlClassService) {
|
|
4807
4850
|
this.controlClassService.initControlClass(renderer, el.nativeElement);
|
|
@@ -4816,6 +4859,9 @@ class WrappedFormControl {
|
|
|
4816
4859
|
this.setAriaDescribedBy(state);
|
|
4817
4860
|
}));
|
|
4818
4861
|
}
|
|
4862
|
+
if (ngControl) {
|
|
4863
|
+
this.differ = this.differs.find(ngControl).create();
|
|
4864
|
+
}
|
|
4819
4865
|
}
|
|
4820
4866
|
get id() {
|
|
4821
4867
|
return this._id;
|
|
@@ -4839,10 +4885,23 @@ class WrappedFormControl {
|
|
|
4839
4885
|
else {
|
|
4840
4886
|
this._id = this.controlIdService.id;
|
|
4841
4887
|
}
|
|
4842
|
-
if (this.ngControlService) {
|
|
4888
|
+
if (this.ngControlService && this.ngControl) {
|
|
4843
4889
|
this.ngControlService.setControl(this.ngControl);
|
|
4844
4890
|
}
|
|
4845
4891
|
}
|
|
4892
|
+
ngDoCheck() {
|
|
4893
|
+
if (this.differ) {
|
|
4894
|
+
const changes = this.differ.diff(this.ngControl);
|
|
4895
|
+
if (changes) {
|
|
4896
|
+
changes.forEachChangedItem(change => {
|
|
4897
|
+
if ((change.key === CHANGE_KEYS.FORM || change.key === CHANGE_KEYS.MODEL) &&
|
|
4898
|
+
change.currentValue !== change.previousValue) {
|
|
4899
|
+
this.triggerValidation();
|
|
4900
|
+
}
|
|
4901
|
+
});
|
|
4902
|
+
}
|
|
4903
|
+
}
|
|
4904
|
+
}
|
|
4846
4905
|
ngOnDestroy() {
|
|
4847
4906
|
this.subscriptions.forEach(sub => sub.unsubscribe());
|
|
4848
4907
|
}
|
|
@@ -4864,8 +4923,10 @@ class WrappedFormControl {
|
|
|
4864
4923
|
}
|
|
4865
4924
|
}
|
|
4866
4925
|
markAsTouched() {
|
|
4867
|
-
this.ngControl
|
|
4868
|
-
|
|
4926
|
+
if (this.ngControl) {
|
|
4927
|
+
this.ngControl.control.markAsTouched();
|
|
4928
|
+
this.ngControl.control.updateValueAndValidity();
|
|
4929
|
+
}
|
|
4869
4930
|
}
|
|
4870
4931
|
setAriaDescribedBy(helpers) {
|
|
4871
4932
|
if (helpers.show) {
|
|
@@ -5739,7 +5800,7 @@ class ClrKeyFocus {
|
|
|
5739
5800
|
}
|
|
5740
5801
|
if (this.focusOnLoad) {
|
|
5741
5802
|
this.currentItem.focus();
|
|
5742
|
-
this.focusChange.
|
|
5803
|
+
this.focusChange.emit();
|
|
5743
5804
|
}
|
|
5744
5805
|
}
|
|
5745
5806
|
}
|
|
@@ -7115,25 +7176,24 @@ class ClrOptionItems {
|
|
|
7115
7176
|
if (!this._rawItems || this.filter === undefined || this.filter === null) {
|
|
7116
7177
|
return;
|
|
7117
7178
|
}
|
|
7179
|
+
const normalizedFilterValue = normalizeValue(this.filter);
|
|
7118
7180
|
if (this.optionService.showAllOptions) {
|
|
7119
7181
|
this.filteredItems = this._rawItems;
|
|
7120
7182
|
}
|
|
7121
7183
|
else if (this._filterField) {
|
|
7122
7184
|
this.filteredItems = this._rawItems.filter(item => {
|
|
7123
7185
|
const objValue = item[this._filterField];
|
|
7124
|
-
return objValue ? objValue
|
|
7186
|
+
return objValue ? normalizeValue(objValue).includes(normalizedFilterValue) : false;
|
|
7125
7187
|
});
|
|
7126
7188
|
}
|
|
7127
7189
|
else {
|
|
7128
7190
|
// Filter by all item object values
|
|
7129
7191
|
this.filteredItems = this._rawItems.filter(item => {
|
|
7130
7192
|
if (typeof item !== 'object') {
|
|
7131
|
-
return item
|
|
7193
|
+
return normalizeValue(item).includes(normalizedFilterValue);
|
|
7132
7194
|
}
|
|
7133
7195
|
const objValues = Object.values(item).filter(value => {
|
|
7134
|
-
return value !== null && value !== undefined
|
|
7135
|
-
? value.toString().toLowerCase().indexOf(this.filter.toString().toLowerCase()) > -1
|
|
7136
|
-
: false;
|
|
7196
|
+
return value !== null && value !== undefined ? normalizeValue(value).includes(normalizedFilterValue) : false;
|
|
7137
7197
|
});
|
|
7138
7198
|
return objValues.length > 0;
|
|
7139
7199
|
});
|
|
@@ -7158,6 +7218,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
7158
7218
|
type: Input,
|
|
7159
7219
|
args: ['clrOptionItemsField']
|
|
7160
7220
|
}] } });
|
|
7221
|
+
function normalizeValue(value) {
|
|
7222
|
+
return value
|
|
7223
|
+
.toString()
|
|
7224
|
+
.normalize('NFD')
|
|
7225
|
+
.replace(/\p{Diacritic}/gu, '')
|
|
7226
|
+
.toLowerCase();
|
|
7227
|
+
}
|
|
7161
7228
|
|
|
7162
7229
|
/*
|
|
7163
7230
|
* Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.
|
|
@@ -8367,7 +8434,7 @@ class DateIOService {
|
|
|
8367
8434
|
return '';
|
|
8368
8435
|
}
|
|
8369
8436
|
getDateValueFromDateString(date) {
|
|
8370
|
-
if (!date) {
|
|
8437
|
+
if (!date || typeof date !== 'string') {
|
|
8371
8438
|
return null;
|
|
8372
8439
|
}
|
|
8373
8440
|
const dateParts = date.match(USER_INPUT_REGEX);
|
|
@@ -9573,9 +9640,11 @@ class ClrDateInput extends WrappedFormControl {
|
|
|
9573
9640
|
}
|
|
9574
9641
|
set min(dateString) {
|
|
9575
9642
|
this.dateIOService.setMinDate(dateString);
|
|
9643
|
+
this.triggerControlValidation();
|
|
9576
9644
|
}
|
|
9577
9645
|
set max(dateString) {
|
|
9578
9646
|
this.dateIOService.setMaxDate(dateString);
|
|
9647
|
+
this.triggerControlValidation();
|
|
9579
9648
|
}
|
|
9580
9649
|
get disabled() {
|
|
9581
9650
|
if (this.dateFormControlService) {
|
|
@@ -9640,6 +9709,13 @@ class ClrDateInput extends WrappedFormControl {
|
|
|
9640
9709
|
this.focusService.focused = focus;
|
|
9641
9710
|
}
|
|
9642
9711
|
}
|
|
9712
|
+
triggerControlValidation() {
|
|
9713
|
+
if (this.datepickerHasFormControl()) {
|
|
9714
|
+
// Set `emitEvent` to false to prevent unnecessary value change event. Status change event will be emitted by `setErrors` below.
|
|
9715
|
+
this.control.control?.updateValueAndValidity({ emitEvent: false });
|
|
9716
|
+
this.control.control?.setErrors(this.control.control.errors);
|
|
9717
|
+
}
|
|
9718
|
+
}
|
|
9643
9719
|
populateServicesFromContainerComponent() {
|
|
9644
9720
|
if (!this.container) {
|
|
9645
9721
|
this.dateIOService = this.getProviderFromContainer(DateIOService);
|
|
@@ -9945,6 +10021,12 @@ class ClrPasswordContainer extends ClrAbstractContainer {
|
|
|
9945
10021
|
this.show = !this.show;
|
|
9946
10022
|
this.toggleService.next(this.show);
|
|
9947
10023
|
}
|
|
10024
|
+
showPasswordText(label) {
|
|
10025
|
+
return this.commonStrings.parse(this.commonStrings.keys.passwordShow, { LABEL: label });
|
|
10026
|
+
}
|
|
10027
|
+
hidePasswordText(label) {
|
|
10028
|
+
return this.commonStrings.parse(this.commonStrings.keys.passwordHide, { LABEL: label });
|
|
10029
|
+
}
|
|
9948
10030
|
}
|
|
9949
10031
|
ClrPasswordContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrPasswordContainer, deps: [{ token: IfControlStateService }, { token: LayoutService, optional: true }, { token: ControlClassService }, { token: NgControlService }, { token: FocusService }, { token: TOGGLE_SERVICE }, { token: ClrCommonStringsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
9950
10032
|
ClrPasswordContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrPasswordContainer, selector: "clr-password-container", inputs: { clrToggle: "clrToggle" }, host: { properties: { "class.clr-form-control": "true", "class.clr-form-control-disabled": "control?.disabled", "class.clr-row": "addGrid()" } }, providers: [
|
|
@@ -9970,7 +10052,7 @@ ClrPasswordContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", v
|
|
|
9970
10052
|
>
|
|
9971
10053
|
<cds-icon class="clr-password-eye-icon" [attr.shape]="show ? 'eye-hide' : 'eye'"></cds-icon>
|
|
9972
10054
|
<span class="clr-sr-only">
|
|
9973
|
-
{{ show ?
|
|
10055
|
+
{{ show ? hidePasswordText(label?.labelText) : showPasswordText(label?.labelText) }}
|
|
9974
10056
|
</span>
|
|
9975
10057
|
</button>
|
|
9976
10058
|
</div>
|
|
@@ -10014,7 +10096,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
10014
10096
|
>
|
|
10015
10097
|
<cds-icon class="clr-password-eye-icon" [attr.shape]="show ? 'eye-hide' : 'eye'"></cds-icon>
|
|
10016
10098
|
<span class="clr-sr-only">
|
|
10017
|
-
{{ show ?
|
|
10099
|
+
{{ show ? hidePasswordText(label?.labelText) : showPasswordText(label?.labelText) }}
|
|
10018
10100
|
</span>
|
|
10019
10101
|
</button>
|
|
10020
10102
|
</div>
|
|
@@ -13194,11 +13276,9 @@ class Items {
|
|
|
13194
13276
|
this._change = new Subject();
|
|
13195
13277
|
this._allChanges = new Subject();
|
|
13196
13278
|
/**
|
|
13197
|
-
* Tracking function to identify objects.
|
|
13198
|
-
*
|
|
13199
|
-
* @deprecated in v15 and scheduled for removal in v17 (CDE-71)
|
|
13279
|
+
* Tracking function to identify objects.
|
|
13200
13280
|
*/
|
|
13201
|
-
this.
|
|
13281
|
+
this.trackBy = item => item;
|
|
13202
13282
|
}
|
|
13203
13283
|
get smart() {
|
|
13204
13284
|
return this._smart;
|
|
@@ -13275,22 +13355,6 @@ class Items {
|
|
|
13275
13355
|
this._filterItems();
|
|
13276
13356
|
}
|
|
13277
13357
|
}
|
|
13278
|
-
canTrackBy() {
|
|
13279
|
-
// all items are needed unless `datagridTrackBy` is set because `iteratorTrackBy` requires the item's index
|
|
13280
|
-
return !!this.datagridTrackBy || Array.isArray(this.all);
|
|
13281
|
-
}
|
|
13282
|
-
trackBy(item, index) {
|
|
13283
|
-
if (this.datagridTrackBy) {
|
|
13284
|
-
return this.datagridTrackBy(item);
|
|
13285
|
-
}
|
|
13286
|
-
else if (Array.isArray(this.all)) {
|
|
13287
|
-
index = index ?? this.all.indexOf(item);
|
|
13288
|
-
return this.iteratorTrackBy(index, item);
|
|
13289
|
-
}
|
|
13290
|
-
else {
|
|
13291
|
-
throw new Error('improper call to Items#trackBy');
|
|
13292
|
-
}
|
|
13293
|
-
}
|
|
13294
13358
|
emitChange() {
|
|
13295
13359
|
this._change.next(this.displayed);
|
|
13296
13360
|
}
|
|
@@ -13373,7 +13437,6 @@ class ClrDatagridItems {
|
|
|
13373
13437
|
this._rawItems = items ? items : []; // local copy for ngOnChange diffing
|
|
13374
13438
|
}
|
|
13375
13439
|
set trackBy(value) {
|
|
13376
|
-
this.items.iteratorTrackBy = value;
|
|
13377
13440
|
this.iterableProxy.ngForTrackBy = value;
|
|
13378
13441
|
}
|
|
13379
13442
|
/**
|
|
@@ -13517,6 +13580,7 @@ class ClrSignpostTrigger {
|
|
|
13517
13580
|
this.signpostIdService = signpostIdService;
|
|
13518
13581
|
this.signpostFocusManager = signpostFocusManager;
|
|
13519
13582
|
this.platformId = platformId;
|
|
13583
|
+
this.ariaExpanded = false;
|
|
13520
13584
|
this.subscriptions = [];
|
|
13521
13585
|
this.document = document;
|
|
13522
13586
|
}
|
|
@@ -13888,12 +13952,10 @@ class Selection {
|
|
|
13888
13952
|
let selectionUpdated = false;
|
|
13889
13953
|
// if the currentSingle has been set before data was loaded, we look up and save the ref from current data set
|
|
13890
13954
|
if (this.currentSingle && !this.prevSingleSelectionRef) {
|
|
13891
|
-
|
|
13892
|
-
this.prevSingleSelectionRef = this._items.trackBy(this.currentSingle);
|
|
13893
|
-
}
|
|
13955
|
+
this.prevSingleSelectionRef = this._items.trackBy(this.currentSingle);
|
|
13894
13956
|
}
|
|
13895
|
-
updatedItems.forEach(
|
|
13896
|
-
const ref = this._items.trackBy(item
|
|
13957
|
+
updatedItems.forEach(item => {
|
|
13958
|
+
const ref = this._items.trackBy(item);
|
|
13897
13959
|
// If one of the updated items is the previously selectedSingle, set it as the new one
|
|
13898
13960
|
if (this.prevSingleSelectionRef === ref) {
|
|
13899
13961
|
newSingle = item;
|
|
@@ -13926,20 +13988,18 @@ class Selection {
|
|
|
13926
13988
|
let selectionUpdated = false;
|
|
13927
13989
|
// if the current has been set before data was loaded, we look up and save the ref from current data set
|
|
13928
13990
|
if (this.current.length > 0 && this.prevSelectionRefs.length !== this.current.length) {
|
|
13929
|
-
|
|
13930
|
-
|
|
13931
|
-
this.
|
|
13932
|
-
|
|
13933
|
-
});
|
|
13934
|
-
}
|
|
13991
|
+
this.prevSelectionRefs = [];
|
|
13992
|
+
this.current.forEach(item => {
|
|
13993
|
+
this.prevSelectionRefs.push(this._items.trackBy(item));
|
|
13994
|
+
});
|
|
13935
13995
|
}
|
|
13936
13996
|
// Duplicate loop, when the issue is issue#2342 is revisited keep in mind that
|
|
13937
13997
|
// we need to go over every updated item and check to see if there are valid to be
|
|
13938
13998
|
// locked or not and update it. When only add items that are found in the lockedRefs back.
|
|
13939
13999
|
//
|
|
13940
14000
|
// The both loops below that goes over updatedItems could be combined into one.
|
|
13941
|
-
updatedItems.forEach(
|
|
13942
|
-
const ref = this._items.trackBy(item
|
|
14001
|
+
updatedItems.forEach(item => {
|
|
14002
|
+
const ref = this._items.trackBy(item);
|
|
13943
14003
|
if (this.lockedRefs.indexOf(ref) > -1) {
|
|
13944
14004
|
updateLockedRef.push(ref);
|
|
13945
14005
|
}
|
|
@@ -13948,8 +14008,8 @@ class Selection {
|
|
|
13948
14008
|
// currently, the selection is cleared when filter is applied, so the logic inside
|
|
13949
14009
|
// the if statement below results in broken behavior.
|
|
13950
14010
|
if (leftOver.length > 0) {
|
|
13951
|
-
updatedItems.forEach(
|
|
13952
|
-
const ref = this._items.trackBy(item
|
|
14011
|
+
updatedItems.forEach(item => {
|
|
14012
|
+
const ref = this._items.trackBy(item);
|
|
13953
14013
|
// Look in current selected refs array if item is selected, and update actual value
|
|
13954
14014
|
const selectedIndex = this.prevSelectionRefs.indexOf(ref);
|
|
13955
14015
|
if (selectedIndex > -1) {
|
|
@@ -14015,7 +14075,7 @@ class Selection {
|
|
|
14015
14075
|
return;
|
|
14016
14076
|
}
|
|
14017
14077
|
this._currentSingle = value;
|
|
14018
|
-
if (
|
|
14078
|
+
if (value) {
|
|
14019
14079
|
this.prevSingleSelectionRef = this._items.trackBy(value);
|
|
14020
14080
|
}
|
|
14021
14081
|
this.emitChange();
|
|
@@ -14161,10 +14221,8 @@ class Selection {
|
|
|
14161
14221
|
*/
|
|
14162
14222
|
selectItem(item) {
|
|
14163
14223
|
this.current = this.current.concat(item);
|
|
14164
|
-
|
|
14165
|
-
|
|
14166
|
-
this.prevSelectionRefs.push(this._items.trackBy(item));
|
|
14167
|
-
}
|
|
14224
|
+
// Push selected ref onto array
|
|
14225
|
+
this.prevSelectionRefs.push(this._items.trackBy(item));
|
|
14168
14226
|
}
|
|
14169
14227
|
/**
|
|
14170
14228
|
* Deselects an item
|
|
@@ -14182,7 +14240,7 @@ class Selection {
|
|
|
14182
14240
|
* Make sure that it could be locked
|
|
14183
14241
|
*/
|
|
14184
14242
|
canItBeLocked() {
|
|
14185
|
-
return this._selectionType !== SelectionType.None
|
|
14243
|
+
return this._selectionType !== SelectionType.None;
|
|
14186
14244
|
}
|
|
14187
14245
|
emitChange() {
|
|
14188
14246
|
if (this._selectionType === SelectionType.Single) {
|
|
@@ -14964,7 +15022,7 @@ class ClrDatagrid {
|
|
|
14964
15022
|
this.selection.rowSelectionMode = value;
|
|
14965
15023
|
}
|
|
14966
15024
|
set trackBy(value) {
|
|
14967
|
-
this.items.
|
|
15025
|
+
this.items.trackBy = value;
|
|
14968
15026
|
}
|
|
14969
15027
|
/**
|
|
14970
15028
|
* Indicates if all currently displayed items are selected
|
|
@@ -15006,9 +15064,7 @@ class ClrDatagrid {
|
|
|
15006
15064
|
});
|
|
15007
15065
|
// Try to update only when there is something cached and its open.
|
|
15008
15066
|
if (this.detailService.state && this.detailService.isOpen) {
|
|
15009
|
-
const row = this.items.
|
|
15010
|
-
? this.rows.find(row => this.items.trackBy(row.item) === this.items.trackBy(this.detailService.state))
|
|
15011
|
-
: undefined;
|
|
15067
|
+
const row = this.rows.find(row => this.items.trackBy(row.item) === this.items.trackBy(this.detailService.state));
|
|
15012
15068
|
/**
|
|
15013
15069
|
* Reopen updated row or close it
|
|
15014
15070
|
*/
|
|
@@ -15391,45 +15447,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
15391
15447
|
*/
|
|
15392
15448
|
const columnToggleTrackByFn = index => index;
|
|
15393
15449
|
|
|
15394
|
-
/*
|
|
15395
|
-
* Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.
|
|
15396
|
-
* This software is released under MIT license.
|
|
15397
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
15398
|
-
*/
|
|
15399
|
-
class ClrDatagridItemsTrackBy {
|
|
15400
|
-
constructor(_items) {
|
|
15401
|
-
this._items = _items;
|
|
15402
|
-
}
|
|
15403
|
-
set trackBy(value) {
|
|
15404
|
-
/**
|
|
15405
|
-
* This is a workaround to prevent the items `trackBy` function from
|
|
15406
|
-
* being replaced when the "manage columns" button is clicked. This is
|
|
15407
|
-
* not a complete solution. If there is another `ngForTrackBy` function
|
|
15408
|
-
* within the datagrid in application code, it could sill replace the
|
|
15409
|
-
* items `trackBy` function whether it is the row iterator or not.
|
|
15410
|
-
*/
|
|
15411
|
-
if (value === columnToggleTrackByFn) {
|
|
15412
|
-
return;
|
|
15413
|
-
}
|
|
15414
|
-
if (this._items) {
|
|
15415
|
-
this._items.iteratorTrackBy = value;
|
|
15416
|
-
}
|
|
15417
|
-
}
|
|
15418
|
-
}
|
|
15419
|
-
ClrDatagridItemsTrackBy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrDatagridItemsTrackBy, deps: [{ token: Items, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
15420
|
-
ClrDatagridItemsTrackBy.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.2", type: ClrDatagridItemsTrackBy, selector: "[ngForTrackBy]", inputs: { trackBy: ["ngForTrackBy", "trackBy"] }, ngImport: i0 });
|
|
15421
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrDatagridItemsTrackBy, decorators: [{
|
|
15422
|
-
type: Directive,
|
|
15423
|
-
args: [{
|
|
15424
|
-
selector: '[ngForTrackBy]',
|
|
15425
|
-
}]
|
|
15426
|
-
}], ctorParameters: function () { return [{ type: Items, decorators: [{
|
|
15427
|
-
type: Optional
|
|
15428
|
-
}] }]; }, propDecorators: { trackBy: [{
|
|
15429
|
-
type: Input,
|
|
15430
|
-
args: ['ngForTrackBy']
|
|
15431
|
-
}] } });
|
|
15432
|
-
|
|
15433
15450
|
/*
|
|
15434
15451
|
* Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.
|
|
15435
15452
|
* This software is released under MIT license.
|
|
@@ -15598,7 +15615,7 @@ ClrDatagridColumnToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
|
|
|
15598
15615
|
<clr-dg-column-toggle-button (clrAllSelected)="allColumnsSelected()"></clr-dg-column-toggle-button>
|
|
15599
15616
|
</div>
|
|
15600
15617
|
</div>
|
|
15601
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: CdkTrapFocusModule_CdkTrapFocus, selector: "[cdkTrapFocus]" }, { 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: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { 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: "directive", type: ClrPopoverAnchor, selector: "[clrPopoverAnchor]" }, { kind: "directive", type: ClrPopoverCloseButton, selector: "[clrPopoverCloseButton]", outputs: ["clrPopoverOnCloseChange"] }, { kind: "directive", type: ClrPopoverOpenCloseButton, selector: "[clrPopoverOpenCloseButton]", outputs: ["clrPopoverOpenCloseChange"] }, { kind: "directive", type: ClrPopoverContent, selector: "[clrPopoverContent]", inputs: ["clrPopoverContent", "clrPopoverContentAt", "clrPopoverContentOutsideClickToClose", "clrPopoverContentScrollToClose"] }, { kind: "
|
|
15618
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: CdkTrapFocusModule_CdkTrapFocus, selector: "[cdkTrapFocus]" }, { 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: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { 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: "directive", type: ClrPopoverAnchor, selector: "[clrPopoverAnchor]" }, { kind: "directive", type: ClrPopoverCloseButton, selector: "[clrPopoverCloseButton]", outputs: ["clrPopoverOnCloseChange"] }, { kind: "directive", type: ClrPopoverOpenCloseButton, selector: "[clrPopoverOpenCloseButton]", outputs: ["clrPopoverOpenCloseChange"] }, { kind: "directive", type: ClrPopoverContent, selector: "[clrPopoverContent]", inputs: ["clrPopoverContent", "clrPopoverContentAt", "clrPopoverContentOutsideClickToClose", "clrPopoverContentScrollToClose"] }, { kind: "component", type: ClrDatagridColumnToggleButton, selector: "clr-dg-column-toggle-button", outputs: ["clrAllSelected"] }] });
|
|
15602
15619
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrDatagridColumnToggle, decorators: [{
|
|
15603
15620
|
type: Component,
|
|
15604
15621
|
args: [{
|
|
@@ -17115,7 +17132,6 @@ const CLR_DATAGRID_DIRECTIVES = [
|
|
|
17115
17132
|
ClrDatagridFooter,
|
|
17116
17133
|
ClrDatagridHideableColumn,
|
|
17117
17134
|
ClrDatagridItems,
|
|
17118
|
-
ClrDatagridItemsTrackBy,
|
|
17119
17135
|
ClrDatagridPageSize,
|
|
17120
17136
|
ClrDatagridPagination,
|
|
17121
17137
|
ClrDatagridPlaceholder,
|
|
@@ -17162,7 +17178,6 @@ ClrDatagridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", versi
|
|
|
17162
17178
|
ClrDatagridFooter,
|
|
17163
17179
|
ClrDatagridHideableColumn,
|
|
17164
17180
|
ClrDatagridItems,
|
|
17165
|
-
ClrDatagridItemsTrackBy,
|
|
17166
17181
|
ClrDatagridPageSize,
|
|
17167
17182
|
ClrDatagridPagination,
|
|
17168
17183
|
ClrDatagridPlaceholder,
|
|
@@ -17212,7 +17227,6 @@ ClrDatagridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", versi
|
|
|
17212
17227
|
ClrDatagridFooter,
|
|
17213
17228
|
ClrDatagridHideableColumn,
|
|
17214
17229
|
ClrDatagridItems,
|
|
17215
|
-
ClrDatagridItemsTrackBy,
|
|
17216
17230
|
ClrDatagridPageSize,
|
|
17217
17231
|
ClrDatagridPagination,
|
|
17218
17232
|
ClrDatagridPlaceholder,
|
|
@@ -19667,13 +19681,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
19667
19681
|
}]
|
|
19668
19682
|
}] });
|
|
19669
19683
|
|
|
19684
|
+
/*
|
|
19685
|
+
* Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.
|
|
19686
|
+
* This software is released under MIT license.
|
|
19687
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
19688
|
+
*/
|
|
19689
|
+
|
|
19670
19690
|
/*
|
|
19671
19691
|
* Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.
|
|
19672
19692
|
* This software is released under MIT license.
|
|
19673
19693
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
19674
19694
|
*/
|
|
19675
19695
|
// @TODO Make this an enum
|
|
19676
|
-
const ALERT_TYPES = ['info', 'warning', 'danger', 'success'];
|
|
19696
|
+
const ALERT_TYPES = ['info', 'warning', 'danger', 'success', 'neutral', 'unknown', 'loading'];
|
|
19677
19697
|
|
|
19678
19698
|
/*
|
|
19679
19699
|
* Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.
|
|
@@ -19683,7 +19703,7 @@ const ALERT_TYPES = ['info', 'warning', 'danger', 'success'];
|
|
|
19683
19703
|
class AlertIconAndTypesService {
|
|
19684
19704
|
constructor(commonStrings) {
|
|
19685
19705
|
this.commonStrings = commonStrings;
|
|
19686
|
-
this.defaultIconShape = 'info-
|
|
19706
|
+
this.defaultIconShape = 'info-standard';
|
|
19687
19707
|
this._alertIconShape = '';
|
|
19688
19708
|
this._alertType = 'info';
|
|
19689
19709
|
}
|
|
@@ -19716,20 +19736,35 @@ class AlertIconAndTypesService {
|
|
|
19716
19736
|
const returnObj = { shape: '', cssClass: '', title: '' };
|
|
19717
19737
|
switch (type) {
|
|
19718
19738
|
case 'warning':
|
|
19719
|
-
returnObj.shape = '
|
|
19739
|
+
returnObj.shape = 'warning-standard';
|
|
19720
19740
|
returnObj.cssClass = 'alert-warning';
|
|
19721
19741
|
returnObj.title = this.commonStrings.keys.warning;
|
|
19722
19742
|
break;
|
|
19723
19743
|
case 'danger':
|
|
19724
|
-
returnObj.shape = '
|
|
19744
|
+
returnObj.shape = 'error-standard';
|
|
19725
19745
|
returnObj.cssClass = 'alert-danger';
|
|
19726
19746
|
returnObj.title = this.commonStrings.keys.danger;
|
|
19727
19747
|
break;
|
|
19728
19748
|
case 'success':
|
|
19729
|
-
returnObj.shape = '
|
|
19749
|
+
returnObj.shape = 'success-standard';
|
|
19730
19750
|
returnObj.cssClass = 'alert-success';
|
|
19731
19751
|
returnObj.title = this.commonStrings.keys.success;
|
|
19732
19752
|
break;
|
|
19753
|
+
case 'neutral':
|
|
19754
|
+
returnObj.shape = 'note';
|
|
19755
|
+
returnObj.cssClass = 'alert-neutral';
|
|
19756
|
+
returnObj.title = this.commonStrings.keys.neutral;
|
|
19757
|
+
break;
|
|
19758
|
+
case 'unknown':
|
|
19759
|
+
returnObj.shape = 'help';
|
|
19760
|
+
returnObj.cssClass = 'alert-neutral';
|
|
19761
|
+
returnObj.title = this.commonStrings.keys.unknown;
|
|
19762
|
+
break;
|
|
19763
|
+
case 'loading':
|
|
19764
|
+
returnObj.shape = 'loading';
|
|
19765
|
+
returnObj.cssClass = 'alert-neutral';
|
|
19766
|
+
returnObj.title = this.commonStrings.keys.unknown;
|
|
19767
|
+
break;
|
|
19733
19768
|
default:
|
|
19734
19769
|
returnObj.shape = this.defaultIconShape;
|
|
19735
19770
|
returnObj.cssClass = 'alert-info';
|
|
@@ -19851,7 +19886,6 @@ class ClrAlert {
|
|
|
19851
19886
|
this.commonStrings = commonStrings;
|
|
19852
19887
|
this.renderer = renderer;
|
|
19853
19888
|
this.hostElement = hostElement;
|
|
19854
|
-
this.isLight = false;
|
|
19855
19889
|
this.isSmall = false;
|
|
19856
19890
|
this.closable = true;
|
|
19857
19891
|
this.isAppLevel = false;
|
|
@@ -19859,12 +19893,21 @@ class ClrAlert {
|
|
|
19859
19893
|
this._closedChanged = new EventEmitter(false);
|
|
19860
19894
|
this._closed = false;
|
|
19861
19895
|
this.subscriptions = [];
|
|
19896
|
+
this._isLightweight = false;
|
|
19897
|
+
}
|
|
19898
|
+
get isLightweight() {
|
|
19899
|
+
return this._isLightweight;
|
|
19900
|
+
}
|
|
19901
|
+
set isLightweight(val) {
|
|
19902
|
+
this._isLightweight = val;
|
|
19903
|
+
this.configAlertType(this._origAlertType);
|
|
19862
19904
|
}
|
|
19863
19905
|
get alertType() {
|
|
19864
19906
|
return this.iconService.alertType;
|
|
19865
19907
|
}
|
|
19866
19908
|
set alertType(val) {
|
|
19867
|
-
this.
|
|
19909
|
+
this._origAlertType = val;
|
|
19910
|
+
this.configAlertType(val);
|
|
19868
19911
|
}
|
|
19869
19912
|
set alertIconShape(value) {
|
|
19870
19913
|
this.iconService.alertIconShape = value;
|
|
@@ -19906,6 +19949,9 @@ class ClrAlert {
|
|
|
19906
19949
|
ngOnDestroy() {
|
|
19907
19950
|
this.subscriptions.forEach(sub => sub.unsubscribe());
|
|
19908
19951
|
}
|
|
19952
|
+
configAlertType(val) {
|
|
19953
|
+
this.iconService.alertType = val;
|
|
19954
|
+
}
|
|
19909
19955
|
open() {
|
|
19910
19956
|
this._closed = false;
|
|
19911
19957
|
if (this.multiAlertService) {
|
|
@@ -19919,23 +19965,20 @@ class ClrAlert {
|
|
|
19919
19965
|
}
|
|
19920
19966
|
const isCurrentAlert = this.multiAlertService?.currentAlert === this;
|
|
19921
19967
|
this._closed = true;
|
|
19922
|
-
if (this.multiAlertService) {
|
|
19968
|
+
if (this.multiAlertService?.activeAlerts) {
|
|
19923
19969
|
this.multiAlertService.close(isCurrentAlert);
|
|
19924
19970
|
}
|
|
19925
19971
|
this._closedChanged.emit(true);
|
|
19926
19972
|
}
|
|
19927
19973
|
}
|
|
19928
19974
|
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 });
|
|
19929
|
-
ClrAlert.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrAlert, selector: "clr-alert", inputs: {
|
|
19975
|
+
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" }] });
|
|
19930
19976
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrAlert, decorators: [{
|
|
19931
19977
|
type: Component,
|
|
19932
|
-
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]=\"
|
|
19978
|
+
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" }]
|
|
19933
19979
|
}], ctorParameters: function () { return [{ type: AlertIconAndTypesService }, { type: i0.ChangeDetectorRef }, { type: MultiAlertService, decorators: [{
|
|
19934
19980
|
type: Optional
|
|
19935
|
-
}] }, { type: ClrCommonStringsService }, { type: i0.Renderer2 }, { type: i0.ElementRef }]; }, propDecorators: {
|
|
19936
|
-
type: Input,
|
|
19937
|
-
args: ['clrAlertLightweight']
|
|
19938
|
-
}], isSmall: [{
|
|
19981
|
+
}] }, { type: ClrCommonStringsService }, { type: i0.Renderer2 }, { type: i0.ElementRef }]; }, propDecorators: { isSmall: [{
|
|
19939
19982
|
type: Input,
|
|
19940
19983
|
args: ['clrAlertSizeSmall']
|
|
19941
19984
|
}], closable: [{
|
|
@@ -19949,6 +19992,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
19949
19992
|
}], _closedChanged: [{
|
|
19950
19993
|
type: Output,
|
|
19951
19994
|
args: ['clrAlertClosedChange']
|
|
19995
|
+
}], isLightweight: [{
|
|
19996
|
+
type: Input,
|
|
19997
|
+
args: ['clrAlertLightweight']
|
|
19952
19998
|
}], alertType: [{
|
|
19953
19999
|
type: Input,
|
|
19954
20000
|
args: ['clrAlertType']
|
|
@@ -19973,24 +20019,28 @@ class ClrAlertItem {
|
|
|
19973
20019
|
ClrAlertItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrAlertItem, deps: [{ token: AlertIconAndTypesService }], target: i0.ɵɵFactoryTarget.Component });
|
|
19974
20020
|
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: `
|
|
19975
20021
|
<div class="alert-icon-wrapper">
|
|
20022
|
+
<clr-spinner class="alert-spinner" clrInline *ngIf="iconService.alertIconShape === 'loading'"></clr-spinner>
|
|
19976
20023
|
<cds-icon
|
|
19977
20024
|
class="alert-icon"
|
|
19978
20025
|
role="img"
|
|
20026
|
+
*ngIf="iconService.alertIconShape !== 'loading'"
|
|
19979
20027
|
[attr.shape]="iconService.alertIconShape"
|
|
19980
20028
|
[attr.aria-label]="iconService.alertIconTitle"
|
|
19981
20029
|
></cds-icon>
|
|
19982
20030
|
</div>
|
|
19983
20031
|
<ng-content></ng-content>
|
|
19984
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: CdsIconCustomTag, selector: "cds-icon" }] });
|
|
20032
|
+
`, 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"] }] });
|
|
19985
20033
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrAlertItem, decorators: [{
|
|
19986
20034
|
type: Component,
|
|
19987
20035
|
args: [{
|
|
19988
20036
|
selector: 'clr-alert-item',
|
|
19989
20037
|
template: `
|
|
19990
20038
|
<div class="alert-icon-wrapper">
|
|
20039
|
+
<clr-spinner class="alert-spinner" clrInline *ngIf="iconService.alertIconShape === 'loading'"></clr-spinner>
|
|
19991
20040
|
<cds-icon
|
|
19992
20041
|
class="alert-icon"
|
|
19993
20042
|
role="img"
|
|
20043
|
+
*ngIf="iconService.alertIconShape !== 'loading'"
|
|
19994
20044
|
[attr.shape]="iconService.alertIconShape"
|
|
19995
20045
|
[attr.aria-label]="iconService.alertIconTitle"
|
|
19996
20046
|
></cds-icon>
|
|
@@ -20168,7 +20218,7 @@ class ClrAlerts {
|
|
|
20168
20218
|
}
|
|
20169
20219
|
}
|
|
20170
20220
|
ClrAlerts.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrAlerts, deps: [{ token: MultiAlertService }], target: i0.ɵɵFactoryTarget.Component });
|
|
20171
|
-
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"] }] });
|
|
20221
|
+
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"] }] });
|
|
20172
20222
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrAlerts, decorators: [{
|
|
20173
20223
|
type: Component,
|
|
20174
20224
|
args: [{ selector: 'clr-alerts', providers: [MultiAlertService], host: {
|
|
@@ -20177,6 +20227,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
20177
20227
|
'[class.alert-info]': "this.currentAlertType == 'info'",
|
|
20178
20228
|
'[class.alert-success]': "this.currentAlertType == 'success'",
|
|
20179
20229
|
'[class.alert-warning]': "this.currentAlertType == 'warning'",
|
|
20230
|
+
'[class.alert-neutral]': "this.currentAlertType == 'neutral'",
|
|
20180
20231
|
}, 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"] }]
|
|
20181
20232
|
}], ctorParameters: function () { return [{ type: MultiAlertService }]; }, propDecorators: { currentAlertChange: [{
|
|
20182
20233
|
type: Output,
|
|
@@ -20203,16 +20254,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
20203
20254
|
const CLR_ALERT_DIRECTIVES = [ClrAlert, ClrAlertItem, ClrAlerts, ClrAlertsPager, ClrAlertText];
|
|
20204
20255
|
class ClrAlertModule {
|
|
20205
20256
|
constructor() {
|
|
20206
|
-
ClarityIcons.addIcons(
|
|
20257
|
+
ClarityIcons.addIcons(errorStandardIcon, helpIcon, infoStandardIcon, noteIcon, successStandardIcon, warningStandardIcon, windowCloseIcon);
|
|
20207
20258
|
}
|
|
20208
20259
|
}
|
|
20209
20260
|
ClrAlertModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrAlertModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
20210
|
-
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] });
|
|
20211
|
-
ClrAlertModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrAlertModule, imports: [CommonModule, ClrIconModule, ClrDropdownModule] });
|
|
20261
|
+
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] });
|
|
20262
|
+
ClrAlertModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrAlertModule, imports: [CommonModule, ClrIconModule, ClrDropdownModule, ClrSpinnerModule] });
|
|
20212
20263
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrAlertModule, decorators: [{
|
|
20213
20264
|
type: NgModule,
|
|
20214
20265
|
args: [{
|
|
20215
|
-
imports: [CommonModule, ClrIconModule, ClrDropdownModule],
|
|
20266
|
+
imports: [CommonModule, ClrIconModule, ClrDropdownModule, ClrSpinnerModule],
|
|
20216
20267
|
declarations: [CLR_ALERT_DIRECTIVES],
|
|
20217
20268
|
exports: [CLR_ALERT_DIRECTIVES],
|
|
20218
20269
|
}]
|
|
@@ -22861,26 +22912,14 @@ class ClrProgressBar {
|
|
|
22861
22912
|
get loopClass() {
|
|
22862
22913
|
return this._loop;
|
|
22863
22914
|
}
|
|
22864
|
-
/** @deprecated since 2.0, remove in 4.0 */
|
|
22865
|
-
set clrWarning(value) {
|
|
22866
|
-
this._warning = isBooleanAttributeSet(value);
|
|
22867
|
-
}
|
|
22868
22915
|
get warningClass() {
|
|
22869
|
-
return this.
|
|
22870
|
-
}
|
|
22871
|
-
/** @deprecated since 2.0, remove in 4.0 */
|
|
22872
|
-
set clrSuccess(value) {
|
|
22873
|
-
this._success = isBooleanAttributeSet(value);
|
|
22916
|
+
return this.color === 'warning';
|
|
22874
22917
|
}
|
|
22875
22918
|
get successClass() {
|
|
22876
|
-
return this.
|
|
22877
|
-
}
|
|
22878
|
-
/** @deprecated since 2.0, remove in 4.0 */
|
|
22879
|
-
set clrDanger(value) {
|
|
22880
|
-
this._danger = isBooleanAttributeSet(value);
|
|
22919
|
+
return this.color === 'success';
|
|
22881
22920
|
}
|
|
22882
22921
|
get dangerClass() {
|
|
22883
|
-
return this.
|
|
22922
|
+
return this.color === 'danger';
|
|
22884
22923
|
}
|
|
22885
22924
|
set clrFlash(value) {
|
|
22886
22925
|
this._flash = isBooleanAttributeSet(value);
|
|
@@ -22913,7 +22952,7 @@ class ClrProgressBar {
|
|
|
22913
22952
|
}
|
|
22914
22953
|
}
|
|
22915
22954
|
ClrProgressBar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrProgressBar, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
22916
|
-
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",
|
|
22955
|
+
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: `
|
|
22917
22956
|
<progress [id]="id" [attr.max]="max" [attr.value]="value" [attr.data-displayval]="displayValue"></progress>
|
|
22918
22957
|
<span *ngIf="displayStringValue()">{{ displayValue }}</span>
|
|
22919
22958
|
`, isInline: true, dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
@@ -22932,6 +22971,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
22932
22971
|
}], displayval: [{
|
|
22933
22972
|
type: Input,
|
|
22934
22973
|
args: ['clrDisplayval']
|
|
22974
|
+
}], color: [{
|
|
22975
|
+
type: Input,
|
|
22976
|
+
args: ['clrColor']
|
|
22935
22977
|
}], value: [{
|
|
22936
22978
|
type: Input,
|
|
22937
22979
|
args: ['clrValue']
|
|
@@ -22967,21 +23009,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
22967
23009
|
}], loopClass: [{
|
|
22968
23010
|
type: HostBinding,
|
|
22969
23011
|
args: ['class.loop']
|
|
22970
|
-
}], clrWarning: [{
|
|
22971
|
-
type: Input,
|
|
22972
|
-
args: ['clrWarning']
|
|
22973
23012
|
}], warningClass: [{
|
|
22974
23013
|
type: HostBinding,
|
|
22975
23014
|
args: ['class.warning']
|
|
22976
|
-
}], clrSuccess: [{
|
|
22977
|
-
type: Input,
|
|
22978
|
-
args: ['clrSuccess']
|
|
22979
23015
|
}], successClass: [{
|
|
22980
23016
|
type: HostBinding,
|
|
22981
23017
|
args: ['class.success']
|
|
22982
|
-
}], clrDanger: [{
|
|
22983
|
-
type: Input,
|
|
22984
|
-
args: ['clrDanger']
|
|
22985
23018
|
}], dangerClass: [{
|
|
22986
23019
|
type: HostBinding,
|
|
22987
23020
|
args: ['class.danger']
|
|
@@ -25640,7 +25673,7 @@ class ClrWizard {
|
|
|
25640
25673
|
*/
|
|
25641
25674
|
reset() {
|
|
25642
25675
|
this.pageCollection.reset();
|
|
25643
|
-
this.onReset.
|
|
25676
|
+
this.onReset.emit();
|
|
25644
25677
|
}
|
|
25645
25678
|
listenForNextPageChanges() {
|
|
25646
25679
|
return this.navService.movedToNextPage.pipe(filter(() => isPlatformBrowser(this.platformId))).subscribe(() => {
|
|
@@ -26350,15 +26383,9 @@ const CLR_MENU_POSITIONS = [
|
|
|
26350
26383
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26351
26384
|
*/
|
|
26352
26385
|
|
|
26353
|
-
/*
|
|
26354
|
-
* Copyright (c) 2016-2023 VMware, Inc. All Rights Reserved.
|
|
26355
|
-
* This software is released under MIT license.
|
|
26356
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26357
|
-
*/
|
|
26358
|
-
|
|
26359
26386
|
/**
|
|
26360
26387
|
* Generated bundle index. Do not edit.
|
|
26361
26388
|
*/
|
|
26362
26389
|
|
|
26363
|
-
export { CLR_ALERT_DIRECTIVES, CLR_BUTTON_GROUP_DIRECTIVES, CLR_DATAGRID_DIRECTIVES, CLR_DATEPICKER_DIRECTIVES, CLR_DROPDOWN_DIRECTIVES, CLR_ICON_DIRECTIVES, CLR_LAYOUT_DIRECTIVES, CLR_LOADING_BUTTON_DIRECTIVES, CLR_LOADING_DIRECTIVES, CLR_MENU_POSITIONS, CLR_MODAL_DIRECTIVES, CLR_NAVIGATION_DIRECTIVES, CLR_PROGRESS_BAR_DIRECTIVES, CLR_SIGNPOST_DIRECTIVES, CLR_SPINNER_DIRECTIVES, CLR_STACK_VIEW_DIRECTIVES, CLR_TABS_DIRECTIVES, CLR_TOOLTIP_DIRECTIVES, CLR_TREE_VIEW_DIRECTIVES, CLR_VERTICAL_NAV_DIRECTIVES, CLR_WIZARD_DIRECTIVES, CONDITIONAL_DIRECTIVES, CUSTOM_BUTTON_TYPES, CdsIconCustomTag, ClarityModule, ClrAbstractContainer, ClrAccordion, ClrAccordionContent, ClrAccordionDescription, ClrAccordionModule, ClrAccordionPanel, ClrAccordionTitle, ClrAlert, ClrAlertItem, ClrAlertModule, ClrAlertText, ClrAlerts, ClrAlertsPager, ClrAlignment, ClrAriaCurrentLink, ClrAxis, ClrButton, ClrButtonGroup, ClrButtonGroupModule, ClrButtonModule, ClrCalendar, ClrCheckbox, ClrCheckboxContainer, ClrCheckboxModule, ClrCheckboxWrapper, ClrCombobox, ClrComboboxContainer, ClrComboboxModule, ClrCommonFormsModule, ClrCommonStringsService, ClrConditionalModule, ClrControl, ClrControlContainer, ClrControlError, ClrControlHelper, ClrControlSuccess, ClrDataModule, ClrDatagrid, ClrDatagridActionBar, ClrDatagridActionOverflow, ClrDatagridCell, ClrDatagridColumn, ClrDatagridColumnSeparator, ClrDatagridColumnToggle, ClrDatagridColumnToggleButton, ClrDatagridDetail, ClrDatagridDetailBody, ClrDatagridDetailHeader, ClrDatagridFilter, ClrDatagridFooter, ClrDatagridHideableColumn, ClrDatagridItems,
|
|
26390
|
+
export { CHANGE_KEYS, CLR_ALERT_DIRECTIVES, CLR_BUTTON_GROUP_DIRECTIVES, CLR_DATAGRID_DIRECTIVES, CLR_DATEPICKER_DIRECTIVES, CLR_DROPDOWN_DIRECTIVES, CLR_ICON_DIRECTIVES, CLR_LAYOUT_DIRECTIVES, CLR_LOADING_BUTTON_DIRECTIVES, CLR_LOADING_DIRECTIVES, CLR_MENU_POSITIONS, CLR_MODAL_DIRECTIVES, CLR_NAVIGATION_DIRECTIVES, CLR_PROGRESS_BAR_DIRECTIVES, CLR_SIGNPOST_DIRECTIVES, CLR_SPINNER_DIRECTIVES, CLR_STACK_VIEW_DIRECTIVES, CLR_TABS_DIRECTIVES, CLR_TOOLTIP_DIRECTIVES, CLR_TREE_VIEW_DIRECTIVES, CLR_VERTICAL_NAV_DIRECTIVES, CLR_WIZARD_DIRECTIVES, CONDITIONAL_DIRECTIVES, CUSTOM_BUTTON_TYPES, CdsIconCustomTag, ClarityModule, ClrAbstractContainer, ClrAccordion, ClrAccordionContent, ClrAccordionDescription, ClrAccordionModule, ClrAccordionPanel, ClrAccordionTitle, ClrAlert, ClrAlertItem, ClrAlertModule, ClrAlertText, ClrAlerts, ClrAlertsPager, ClrAlignment, ClrAriaCurrentLink, ClrAxis, ClrButton, ClrButtonGroup, ClrButtonGroupModule, ClrButtonModule, ClrCalendar, ClrCheckbox, ClrCheckboxContainer, ClrCheckboxModule, ClrCheckboxWrapper, ClrCombobox, ClrComboboxContainer, ClrComboboxModule, ClrCommonFormsModule, ClrCommonStringsService, ClrConditionalModule, ClrControl, ClrControlContainer, ClrControlError, ClrControlHelper, ClrControlSuccess, ClrDataModule, ClrDatagrid, ClrDatagridActionBar, ClrDatagridActionOverflow, ClrDatagridCell, ClrDatagridColumn, ClrDatagridColumnSeparator, ClrDatagridColumnToggle, ClrDatagridColumnToggleButton, ClrDatagridDetail, ClrDatagridDetailBody, ClrDatagridDetailHeader, ClrDatagridFilter, ClrDatagridFooter, ClrDatagridHideableColumn, ClrDatagridItems, ClrDatagridModule, ClrDatagridPageSize, ClrDatagridPagination, ClrDatagridPlaceholder, ClrDatagridRow, ClrDatagridRowDetail, ClrDatagridSortOrder, ClrDatalist, ClrDatalistContainer, ClrDatalistInput, ClrDatalistModule, ClrDateContainer, ClrDateInput, ClrDateInputValidator, ClrDatepickerModule, ClrDatepickerViewManager, ClrDay, ClrDaypicker, ClrDestroyService, ClrDropdown, ClrDropdownItem, ClrDropdownMenu, ClrDropdownModule, ClrDropdownTrigger, ClrEmphasisModule, ClrExpandableAnimation, ClrFocusOnViewInit, ClrFocusOnViewInitModule, ClrForm, ClrFormLayout, ClrFormsModule, ClrHeader, ClrIconCustomTag, ClrIconModule, ClrIfActive, ClrIfDetail, ClrIfError, ClrIfExpanded, ClrIfOpen, ClrIfSuccess, ClrInput, ClrInputContainer, ClrInputModule, ClrLabel, ClrLayout, ClrLayoutModule, ClrLoading, ClrLoadingButton, ClrLoadingButtonModule, ClrLoadingModule, ClrLoadingState, ClrMainContainer, ClrMainContainerModule, ClrModal, ClrModalBody, ClrModalModule, ClrMonthpicker, ClrNavLevel, ClrNavigationModule, ClrOption, ClrOptionItems, ClrOptionSelected, ClrOptions, ClrPassword, ClrPasswordContainer, ClrPasswordModule, ClrPopoverAnchor, ClrPopoverContent, ClrPopoverEventsService, ClrPopoverHostDirective, ClrPopoverModule, ClrPopoverPositionService, ClrPopoverToggleService, ClrProgressBar, ClrProgressBarModule, ClrRadio, ClrRadioContainer, ClrRadioModule, ClrRadioWrapper, ClrRange, ClrRangeContainer, ClrRangeModule, ClrRecursiveForOf, ClrSelect, ClrSelectContainer, ClrSelectModule, ClrSelectedState, ClrSide, ClrSignpost, ClrSignpostContent, ClrSignpostModule, ClrSignpostTrigger, ClrSpinner, ClrSpinnerModule, ClrStackBlock, ClrStackContentInput, ClrStackHeader, ClrStackView, ClrStackViewCustomTags, ClrStackViewLabel, ClrStackViewModule, ClrStandaloneCdkTrapFocus, ClrStepButton, ClrStepButtonType, ClrStepper, ClrStepperModule, ClrStepperPanel, ClrStopEscapePropagationDirective, ClrTab, ClrTabContent, ClrTabLink, ClrTabOverflowContent, ClrTabs, ClrTabsModule, ClrTextarea, ClrTextareaContainer, ClrTextareaModule, ClrTimeline, ClrTimelineLayout, ClrTimelineModule, ClrTimelineStep, ClrTimelineStepDescription, ClrTimelineStepHeader, ClrTimelineStepState, ClrTimelineStepTitle, ClrTooltip, ClrTooltipContent, ClrTooltipModule, ClrTooltipTrigger, ClrTree, ClrTreeNode, ClrTreeNodeLink, ClrTreeViewModule, ClrVerticalNav, ClrVerticalNavGroup, ClrVerticalNavGroupChildren, ClrVerticalNavIcon, ClrVerticalNavLink, ClrVerticalNavModule, ClrWizard, ClrWizardButton, ClrWizardHeaderAction, ClrWizardModule, ClrWizardPage, ClrWizardPageButtons, ClrWizardPageHeaderActions, ClrWizardPageNavTitle, ClrWizardPageTitle, ClrWizardStepnav, ClrWizardStepnavItem, ClrWizardTitle, ClrYearpicker, DEFAULT_BUTTON_TYPES, DatagridNumericFilter, DatagridPropertyComparator, DatagridPropertyNumericFilter, DatagridPropertyStringFilter, DatagridStringFilter, EXPANDABLE_ANIMATION_DIRECTIVES, FOCUS_ON_VIEW_INIT, FOCUS_ON_VIEW_INIT_DIRECTIVES, IS_TOGGLE, IS_TOGGLE_PROVIDER, LoadingListener, MainContainerWillyWonka, NavDetectionOompaLoompa, TOGGLE_SERVICE, TOGGLE_SERVICE_PROVIDER, ToggleServiceFactory, WrappedFormControl, collapse, commonStringsDefault, fade, fadeSlide, isToggleFactory, slide, AccordionOompaLoompa as ÇlrAccordionOompaLoompa, AccordionWillyWonka as ÇlrAccordionWillyWonka, ActionableOompaLoompa as ÇlrActionableOompaLoompa, ActiveOompaLoompa as ÇlrActiveOompaLoompa, ClrPopoverCloseButton as ÇlrClrPopoverCloseButton, ClrPopoverModuleNext as ÇlrClrPopoverModuleNext, ClrPopoverOpenCloseButton as ÇlrClrPopoverOpenCloseButton, DatagridCellRenderer as ÇlrDatagridCellRenderer, DatagridDetailRegisterer as ÇlrDatagridDetailRegisterer, DatagridHeaderRenderer as ÇlrDatagridHeaderRenderer, DatagridMainRenderer as ÇlrDatagridMainRenderer, DatagridRowRenderer as ÇlrDatagridRowRenderer, ClrDatagridSelectionCellDirective as ÇlrDatagridSelectionCellDirective, DatagridWillyWonka as ÇlrDatagridWillyWonka, ExpandableOompaLoompa as ÇlrExpandableOompaLoompa, StepperOompaLoompa as ÇlrStepperOompaLoompa, StepperWillyWonka as ÇlrStepperWillyWonka, TabsWillyWonka as ÇlrTabsWillyWonka, WrappedCell as ÇlrWrappedCell, WrappedColumn as ÇlrWrappedColumn, WrappedRow as ÇlrWrappedRow };
|
|
26364
26391
|
//# sourceMappingURL=clr-angular.mjs.map
|