@clr/angular 17.3.0 → 17.3.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/clarity.api.md +38 -23
- package/data/datagrid/datagrid-action-overflow.d.ts +2 -3
- package/data/datagrid/datagrid-hideable-column.d.ts +0 -1
- package/data/datagrid/datagrid-items.d.ts +0 -1
- package/data/datagrid/datagrid-row.d.ts +0 -2
- package/data/datagrid/datagrid.d.ts +1 -3
- package/data/datagrid/providers/selection.d.ts +1 -2
- package/data/datagrid/providers/table-size.service.d.ts +1 -1
- package/data/datagrid/render/header-renderer.d.ts +0 -1
- package/data/datagrid/render/main-renderer.d.ts +4 -3
- package/data/tree-view/tree.d.ts +5 -1
- package/emphasis/alert/alert.d.ts +1 -1
- package/esm2020/accordion/stepper/stepper-panel.mjs +2 -4
- package/esm2020/data/datagrid/datagrid-action-overflow.mjs +8 -9
- package/esm2020/data/datagrid/datagrid-detail-registerer.mjs +3 -3
- package/esm2020/data/datagrid/datagrid-hideable-column.mjs +3 -4
- package/esm2020/data/datagrid/datagrid-if-detail.mjs +2 -2
- package/esm2020/data/datagrid/datagrid-items.mjs +2 -3
- package/esm2020/data/datagrid/datagrid-pagination.mjs +2 -2
- package/esm2020/data/datagrid/datagrid-row.mjs +4 -6
- package/esm2020/data/datagrid/datagrid-virtual-scroll.directive.mjs +5 -5
- package/esm2020/data/datagrid/datagrid.mjs +19 -21
- package/esm2020/data/datagrid/providers/selection.mjs +11 -12
- package/esm2020/data/datagrid/providers/table-size.service.mjs +1 -1
- package/esm2020/data/datagrid/render/header-renderer.mjs +2 -3
- package/esm2020/data/datagrid/render/main-renderer.mjs +26 -20
- package/esm2020/data/tree-view/recursive-children.mjs +3 -3
- package/esm2020/data/tree-view/tree-node.mjs +4 -4
- package/esm2020/data/tree-view/tree.mjs +24 -11
- package/esm2020/emphasis/alert/alert.mjs +1 -1
- package/esm2020/forms/combobox/combobox-container.mjs +1 -1
- package/esm2020/forms/combobox/combobox.mjs +2 -2
- package/esm2020/forms/combobox/option-items.directive.mjs +2 -3
- package/esm2020/forms/combobox/option.mjs +2 -2
- package/esm2020/forms/combobox/providers/combobox-focus-handler.service.mjs +1 -1
- package/esm2020/forms/common/abstract-container.mjs +3 -3
- package/esm2020/forms/common/control.mjs +1 -1
- package/esm2020/forms/common/if-control-state/abstract-if-state.mjs +3 -3
- package/esm2020/forms/common/if-control-state/if-control-state.service.mjs +2 -3
- package/esm2020/forms/common/label.mjs +1 -1
- package/esm2020/forms/common/wrapped-control.mjs +3 -3
- package/esm2020/forms/datalist/datalist-container.mjs +2 -3
- package/esm2020/forms/datalist/datalist-input.mjs +2 -2
- package/esm2020/forms/datepicker/calendar.mjs +1 -1
- package/esm2020/forms/datepicker/date-container.mjs +4 -5
- package/esm2020/forms/datepicker/providers/date-io.service.mjs +3 -4
- package/esm2020/forms/datepicker/providers/datepicker-enabled.service.mjs +2 -2
- package/esm2020/forms/datepicker/providers/datepicker-focus.service.mjs +1 -1
- package/esm2020/forms/input/input.mjs +1 -1
- package/esm2020/forms/password/password-container.mjs +2 -2
- package/esm2020/forms/password/password.mjs +3 -4
- package/esm2020/forms/radio/radio.mjs +1 -1
- package/esm2020/forms/range/range.mjs +1 -1
- package/esm2020/forms/select/select.mjs +1 -1
- package/esm2020/forms/textarea/textarea.mjs +1 -1
- package/esm2020/layout/main-container/main-container.mjs +1 -1
- package/esm2020/layout/nav/header.mjs +3 -3
- package/esm2020/layout/tabs/tab-link.directive.mjs +4 -6
- package/esm2020/layout/tabs/tabs.mjs +1 -1
- package/esm2020/layout/vertical-nav/vertical-nav-group.mjs +8 -9
- package/esm2020/layout/vertical-nav/vertical-nav-icon.mjs +2 -2
- package/esm2020/layout/vertical-nav/vertical-nav.mjs +2 -2
- package/esm2020/modal/index.mjs +2 -1
- package/esm2020/modal/modal-body.mjs +4 -4
- package/esm2020/modal/modal-configuration.service.mjs +4 -3
- package/esm2020/modal/modal.module.mjs +2 -4
- package/esm2020/popover/common/abstract-popover.mjs +1 -1
- package/esm2020/popover/dropdown/dropdown.mjs +3 -4
- package/esm2020/popover/dropdown/providers/dropdown-focus-handler.service.mjs +2 -2
- package/esm2020/popover/signpost/signpost-content.mjs +2 -3
- package/esm2020/popover/tooltip/tooltip-trigger.mjs +2 -3
- package/esm2020/utils/conditional/if-active.directive.mjs +2 -2
- package/esm2020/utils/conditional/if-expanded.directive.mjs +2 -2
- package/esm2020/utils/conditional/if-open.directive.mjs +2 -2
- package/esm2020/utils/focus/focus-on-view-init/focus-on-view-init.mjs +4 -4
- package/esm2020/utils/focus/key-focus/key-focus.mjs +1 -1
- package/esm2020/utils/i18n/common-strings.default.mjs +4 -1
- package/esm2020/utils/i18n/common-strings.interface.mjs +1 -1
- package/esm2020/utils/popover/popover-anchor.mjs +1 -1
- package/esm2020/utils/popover/popover-content.mjs +10 -4
- package/esm2020/utils/popover/popover-open-close-button.mjs +2 -2
- package/esm2020/wizard/providers/wizard-navigation.service.mjs +8 -8
- package/fesm2015/clr-angular.mjs +159 -153
- package/fesm2015/clr-angular.mjs.map +1 -1
- package/fesm2020/clr-angular.mjs +159 -153
- package/fesm2020/clr-angular.mjs.map +1 -1
- package/forms/combobox/combobox-container.d.ts +1 -1
- package/forms/combobox/option-items.directive.d.ts +0 -1
- package/forms/combobox/providers/combobox-focus-handler.service.d.ts +1 -1
- package/forms/common/control.d.ts +1 -1
- package/forms/common/if-control-state/if-control-state.service.d.ts +0 -1
- package/forms/common/label.d.ts +1 -1
- package/forms/common/wrapped-control.d.ts +3 -3
- package/forms/datalist/datalist-container.d.ts +0 -1
- package/forms/datepicker/calendar.d.ts +1 -1
- package/forms/datepicker/date-container.d.ts +1 -2
- package/forms/datepicker/providers/date-io.service.d.ts +1 -2
- package/forms/datepicker/providers/datepicker-focus.service.d.ts +1 -1
- package/forms/input/input.d.ts +1 -1
- package/forms/password/password.d.ts +0 -1
- package/forms/radio/radio.d.ts +1 -1
- package/forms/range/range.d.ts +1 -1
- package/forms/select/select.d.ts +1 -1
- package/forms/textarea/textarea.d.ts +1 -1
- package/layout/main-container/main-container.d.ts +1 -1
- package/layout/tabs/tab-link.directive.d.ts +0 -2
- package/layout/tabs/tabs.d.ts +1 -1
- package/layout/vertical-nav/vertical-nav-group.d.ts +1 -2
- package/modal/index.d.ts +1 -0
- package/package.json +2 -2
- package/popover/common/abstract-popover.d.ts +2 -2
- package/popover/dropdown/dropdown.d.ts +0 -1
- package/popover/signpost/signpost-content.d.ts +0 -1
- package/popover/tooltip/tooltip-trigger.d.ts +0 -1
- package/utils/focus/key-focus/key-focus.d.ts +1 -1
- package/utils/i18n/common-strings.interface.d.ts +2 -0
- package/utils/popover/popover-anchor.d.ts +1 -1
- package/utils/popover/popover-content.d.ts +1 -0
package/fesm2020/clr-angular.mjs
CHANGED
|
@@ -394,6 +394,9 @@ const commonStringsDefault = {
|
|
|
394
394
|
fileCount: '{COUNT} files',
|
|
395
395
|
clearFile: 'Clear {FILE}',
|
|
396
396
|
clearFiles: 'Clear {COUNT} files',
|
|
397
|
+
// Tree
|
|
398
|
+
selectedTreeNode: 'selected',
|
|
399
|
+
unselectedTreeNode: 'unselected',
|
|
397
400
|
};
|
|
398
401
|
|
|
399
402
|
/*
|
|
@@ -1178,9 +1181,7 @@ class ClrStepperPanel extends ClrAccordionPanel {
|
|
|
1178
1181
|
this.subscriptions.push(this.stepperService.activeStep
|
|
1179
1182
|
.pipe(filter(panelId => isPlatformBrowser(this.platformId) && panelId === this.id))
|
|
1180
1183
|
.subscribe(() => {
|
|
1181
|
-
|
|
1182
|
-
//before focusing on the next stepper panel header
|
|
1183
|
-
setTimeout(() => this.headerButton.nativeElement.focus(), 1500);
|
|
1184
|
+
this.headerButton.nativeElement.focus();
|
|
1184
1185
|
}));
|
|
1185
1186
|
}
|
|
1186
1187
|
triggerAllFormControlValidationIfError(panel) {
|
|
@@ -2229,6 +2230,7 @@ class ClrPopoverContent {
|
|
|
2229
2230
|
this.subscriptions = [];
|
|
2230
2231
|
this.removeClickListenerFn = null;
|
|
2231
2232
|
this.shouldRealign = false;
|
|
2233
|
+
this.previousContentHeight = null;
|
|
2232
2234
|
// Check-collector pattern:
|
|
2233
2235
|
// In order to get accurate content height/width values, we cannot calculate alignment offsets until
|
|
2234
2236
|
// after the projected content has stabilized.
|
|
@@ -2250,9 +2252,14 @@ class ClrPopoverContent {
|
|
|
2250
2252
|
this.smartEventsService.scrollToClose = !!scrollToClose;
|
|
2251
2253
|
}
|
|
2252
2254
|
ngAfterContentChecked() {
|
|
2253
|
-
if (this.smartOpenService.open && this.view
|
|
2254
|
-
|
|
2255
|
-
this.
|
|
2255
|
+
if (this.smartOpenService.open && this.view) {
|
|
2256
|
+
const rootNodeOffsetHeight = this.view.rootNodes[0].offsetHeight;
|
|
2257
|
+
if (this.shouldRealign ||
|
|
2258
|
+
(this.previousContentHeight !== null && this.previousContentHeight !== rootNodeOffsetHeight)) {
|
|
2259
|
+
// Channel content-check event through the check-collector
|
|
2260
|
+
this.previousContentHeight = rootNodeOffsetHeight;
|
|
2261
|
+
this.checkCollector.emit();
|
|
2262
|
+
}
|
|
2256
2263
|
}
|
|
2257
2264
|
}
|
|
2258
2265
|
ngAfterViewInit() {
|
|
@@ -2368,7 +2375,7 @@ class ClrPopoverOpenCloseButton {
|
|
|
2368
2375
|
this.smartOpenService = smartOpenService;
|
|
2369
2376
|
this.openCloseChange = new EventEmitter();
|
|
2370
2377
|
this.subscriptions = [];
|
|
2371
|
-
this.subscriptions.push(
|
|
2378
|
+
this.subscriptions.push(smartOpenService.openChange.subscribe(change => {
|
|
2372
2379
|
this.openCloseChange.next(change);
|
|
2373
2380
|
}));
|
|
2374
2381
|
}
|
|
@@ -3321,7 +3328,7 @@ class ClrIfActive {
|
|
|
3321
3328
|
this.activeChange = new EventEmitter(false);
|
|
3322
3329
|
this.wasActive = false;
|
|
3323
3330
|
this.checkAndUpdateView(ifActiveService.current);
|
|
3324
|
-
this.subscription =
|
|
3331
|
+
this.subscription = ifActiveService.currentChange.subscribe(newCurrentId => {
|
|
3325
3332
|
this.checkAndUpdateView(newCurrentId);
|
|
3326
3333
|
});
|
|
3327
3334
|
}
|
|
@@ -3411,7 +3418,7 @@ class ClrIfOpen {
|
|
|
3411
3418
|
* used with de-structured / de-sugared syntax.
|
|
3412
3419
|
*/
|
|
3413
3420
|
this.openChange = new EventEmitter(false);
|
|
3414
|
-
this.subscription =
|
|
3421
|
+
this.subscription = toggleService.openChange.subscribe(change => {
|
|
3415
3422
|
this.updateView(change);
|
|
3416
3423
|
this.openChange.emit(change);
|
|
3417
3424
|
});
|
|
@@ -3481,7 +3488,7 @@ class ClrIfExpanded {
|
|
|
3481
3488
|
this._subscriptions = [];
|
|
3482
3489
|
this._subscriptions.push(expand.expandChange.subscribe(() => {
|
|
3483
3490
|
this.updateView();
|
|
3484
|
-
this.expandedChange.emit(
|
|
3491
|
+
this.expandedChange.emit(expand.expanded);
|
|
3485
3492
|
}));
|
|
3486
3493
|
}
|
|
3487
3494
|
get expanded() {
|
|
@@ -3638,7 +3645,7 @@ class ClrFocusOnViewInit {
|
|
|
3638
3645
|
this.renderer = renderer;
|
|
3639
3646
|
this.directFocus = true; // true if the element gets focused without need to set tabindex;
|
|
3640
3647
|
this.destroy$ = new Subject();
|
|
3641
|
-
this._isEnabled =
|
|
3648
|
+
this._isEnabled = focusOnViewInit;
|
|
3642
3649
|
// Angular compiler doesn't understand the type Document
|
|
3643
3650
|
// when working out the metadata for injectable parameters,
|
|
3644
3651
|
// even though it understands the injection token DOCUMENT
|
|
@@ -3649,8 +3656,8 @@ class ClrFocusOnViewInit {
|
|
|
3649
3656
|
.subscribe(() => {
|
|
3650
3657
|
if (!this.directFocus) {
|
|
3651
3658
|
// manually set attributes and styles should be removed
|
|
3652
|
-
|
|
3653
|
-
|
|
3659
|
+
renderer.removeAttribute(el.nativeElement, 'tabindex');
|
|
3660
|
+
renderer.setStyle(el.nativeElement, 'outline', null);
|
|
3654
3661
|
}
|
|
3655
3662
|
}));
|
|
3656
3663
|
}
|
|
@@ -4500,12 +4507,11 @@ var CONTROL_STATE;
|
|
|
4500
4507
|
})(CONTROL_STATE || (CONTROL_STATE = {}));
|
|
4501
4508
|
class IfControlStateService {
|
|
4502
4509
|
constructor(ngControlService) {
|
|
4503
|
-
this.ngControlService = ngControlService;
|
|
4504
4510
|
this.subscriptions = [];
|
|
4505
4511
|
// Implement our own status changes observable, since Angular controls don't
|
|
4506
4512
|
this._statusChanges = new BehaviorSubject(CONTROL_STATE.NONE);
|
|
4507
4513
|
// Wait for the control to be available
|
|
4508
|
-
this.subscriptions.push(
|
|
4514
|
+
this.subscriptions.push(ngControlService.controlChanges.subscribe(control => {
|
|
4509
4515
|
if (control) {
|
|
4510
4516
|
this.control = control;
|
|
4511
4517
|
// Subscribe to the status change events, only after touched
|
|
@@ -4755,14 +4761,14 @@ class ClrAbstractContainer {
|
|
|
4755
4761
|
this.ngControlService = ngControlService;
|
|
4756
4762
|
this._dynamic = false;
|
|
4757
4763
|
this.subscriptions = [];
|
|
4758
|
-
this.subscriptions.push(
|
|
4764
|
+
this.subscriptions.push(ifControlStateService.statusChanges.subscribe((state) => {
|
|
4759
4765
|
this.state = state;
|
|
4760
4766
|
// Make sure everything is updated before dispatching the values for helpers
|
|
4761
4767
|
setTimeout(() => {
|
|
4762
4768
|
this.updateHelpers();
|
|
4763
4769
|
});
|
|
4764
4770
|
}));
|
|
4765
|
-
this.subscriptions.push(
|
|
4771
|
+
this.subscriptions.push(ngControlService.controlChanges.subscribe(control => {
|
|
4766
4772
|
this.control = control;
|
|
4767
4773
|
}));
|
|
4768
4774
|
}
|
|
@@ -5015,10 +5021,10 @@ class WrappedFormControl {
|
|
|
5015
5021
|
this.vcr = vcr;
|
|
5016
5022
|
this.wrapperType = wrapperType;
|
|
5017
5023
|
this.ngControl = ngControl;
|
|
5018
|
-
this.index = 0;
|
|
5019
|
-
this.subscriptions = [];
|
|
5020
5024
|
this.renderer = renderer;
|
|
5021
5025
|
this.el = el;
|
|
5026
|
+
this.index = 0;
|
|
5027
|
+
this.subscriptions = [];
|
|
5022
5028
|
if (injector) {
|
|
5023
5029
|
this.ngControlService = injector.get(NgControlService, null);
|
|
5024
5030
|
this.ifControlStateService = injector.get(IfControlStateService, null);
|
|
@@ -5239,12 +5245,12 @@ class AbstractIfState {
|
|
|
5239
5245
|
this.subscriptions = [];
|
|
5240
5246
|
this.displayedContent = false;
|
|
5241
5247
|
if (ngControlService) {
|
|
5242
|
-
this.subscriptions.push(
|
|
5248
|
+
this.subscriptions.push(ngControlService.controlChanges.subscribe(control => {
|
|
5243
5249
|
this.control = control;
|
|
5244
5250
|
}));
|
|
5245
5251
|
}
|
|
5246
5252
|
if (ifControlStateService) {
|
|
5247
|
-
this.subscriptions.push(
|
|
5253
|
+
this.subscriptions.push(ifControlStateService.statusChanges.subscribe((state) => {
|
|
5248
5254
|
this.handleState(state);
|
|
5249
5255
|
}));
|
|
5250
5256
|
}
|
|
@@ -6801,7 +6807,7 @@ class ClrOption {
|
|
|
6801
6807
|
this.optionSelectionService = optionSelectionService;
|
|
6802
6808
|
// A proxy with only the necessary data to be used for a11y and the focus handler service.
|
|
6803
6809
|
this.optionProxy = new OptionData(null, null);
|
|
6804
|
-
this.optionProxy.el =
|
|
6810
|
+
this.optionProxy.el = elRef.nativeElement;
|
|
6805
6811
|
}
|
|
6806
6812
|
get optionId() {
|
|
6807
6813
|
return this._id;
|
|
@@ -7065,7 +7071,7 @@ class ClrCombobox extends WrappedFormControl {
|
|
|
7065
7071
|
control.valueAccessor = this;
|
|
7066
7072
|
}
|
|
7067
7073
|
// default to SingleSelectComboboxModel, in case the optional input [ClrMulti] isn't used
|
|
7068
|
-
|
|
7074
|
+
optionSelectionService.selectionModel = new SingleSelectComboboxModel();
|
|
7069
7075
|
this.updateControlValue();
|
|
7070
7076
|
}
|
|
7071
7077
|
get multiSelect() {
|
|
@@ -7361,11 +7367,10 @@ class ClrOptionItems {
|
|
|
7361
7367
|
this.differs = differs;
|
|
7362
7368
|
this.optionService = optionService;
|
|
7363
7369
|
this.positionService = positionService;
|
|
7364
|
-
this.vcr = vcr;
|
|
7365
7370
|
this.subscriptions = [];
|
|
7366
7371
|
this.filter = '';
|
|
7367
7372
|
this.differ = null;
|
|
7368
|
-
this.iterableProxy = new NgForOf(
|
|
7373
|
+
this.iterableProxy = new NgForOf(vcr, template, differs);
|
|
7369
7374
|
this.subscriptions.push(optionService.inputChanged.subscribe(filter => {
|
|
7370
7375
|
this.filter = filter;
|
|
7371
7376
|
this.updateItems();
|
|
@@ -7745,10 +7750,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
7745
7750
|
class ClrDatalistContainer extends ClrAbstractContainer {
|
|
7746
7751
|
constructor(controlClassService, layoutService, ngControlService, focusService, ifControlStateService) {
|
|
7747
7752
|
super(ifControlStateService, layoutService, controlClassService, ngControlService);
|
|
7748
|
-
this.focusService = focusService;
|
|
7749
7753
|
this.ifControlStateService = ifControlStateService;
|
|
7750
7754
|
this.focus = false;
|
|
7751
|
-
this.subscriptions.push(
|
|
7755
|
+
this.subscriptions.push(focusService.focusChange.subscribe(state => (this.focus = state)));
|
|
7752
7756
|
}
|
|
7753
7757
|
}
|
|
7754
7758
|
ClrDatalistContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrDatalistContainer, deps: [{ token: ControlClassService }, { token: LayoutService, optional: true }, { token: NgControlService }, { token: FocusService }, { token: IfControlStateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -7852,7 +7856,7 @@ class ClrDatalistInput extends WrappedFormControl {
|
|
|
7852
7856
|
super(vcr, ClrDatalistContainer, injector, control, renderer, el);
|
|
7853
7857
|
this.focusService = focusService;
|
|
7854
7858
|
this.datalistIdService = datalistIdService;
|
|
7855
|
-
if (!
|
|
7859
|
+
if (!focusService) {
|
|
7856
7860
|
throw new Error('clrDatalist requires being wrapped in <clr-datalist-container>');
|
|
7857
7861
|
}
|
|
7858
7862
|
}
|
|
@@ -8626,8 +8630,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
8626
8630
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
8627
8631
|
*/
|
|
8628
8632
|
class DateIOService {
|
|
8629
|
-
constructor(
|
|
8630
|
-
this._localeHelperService = _localeHelperService;
|
|
8633
|
+
constructor(localeHelperService) {
|
|
8631
8634
|
this.disabledDates = {
|
|
8632
8635
|
// This is the default range. It approximates the beginning of time to the end of time.
|
|
8633
8636
|
// Unless a minDate or maxDate is set with the native HTML5 api the range is all dates
|
|
@@ -8638,7 +8641,7 @@ class DateIOService {
|
|
|
8638
8641
|
this.cldrLocaleDateFormat = DEFAULT_LOCALE_FORMAT;
|
|
8639
8642
|
this.localeDisplayFormat = LITTLE_ENDIAN;
|
|
8640
8643
|
this.delimiters = ['/', '/'];
|
|
8641
|
-
this.cldrLocaleDateFormat =
|
|
8644
|
+
this.cldrLocaleDateFormat = localeHelperService.localeDateFormat;
|
|
8642
8645
|
this.initializeLocaleDisplayFormat();
|
|
8643
8646
|
}
|
|
8644
8647
|
get placeholderText() {
|
|
@@ -9059,7 +9062,7 @@ class DatepickerEnabledService {
|
|
|
9059
9062
|
constructor(_document) {
|
|
9060
9063
|
this._document = _document;
|
|
9061
9064
|
this._isUserAgentMobile = false;
|
|
9062
|
-
if (
|
|
9065
|
+
if (_document) {
|
|
9063
9066
|
this._isUserAgentMobile = MOBILE_USERAGENT_REGEX.test(_document.defaultView.navigator.userAgent);
|
|
9064
9067
|
this._innerWidth = _document.defaultView.innerWidth;
|
|
9065
9068
|
}
|
|
@@ -9655,18 +9658,17 @@ class ClrDateContainer extends ClrAbstractContainer {
|
|
|
9655
9658
|
this.dateFormControlService = dateFormControlService;
|
|
9656
9659
|
this.dateIOService = dateIOService;
|
|
9657
9660
|
this.commonStrings = commonStrings;
|
|
9658
|
-
this.focusService = focusService;
|
|
9659
9661
|
this.viewManagerService = viewManagerService;
|
|
9660
9662
|
this.controlClassService = controlClassService;
|
|
9661
9663
|
this.layoutService = layoutService;
|
|
9662
9664
|
this.ngControlService = ngControlService;
|
|
9663
9665
|
this.ifControlStateService = ifControlStateService;
|
|
9664
9666
|
this.focus = false;
|
|
9665
|
-
this.subscriptions.push(
|
|
9667
|
+
this.subscriptions.push(focusService.focusChange.subscribe(state => {
|
|
9666
9668
|
this.focus = state;
|
|
9667
9669
|
}));
|
|
9668
|
-
this.subscriptions.push(
|
|
9669
|
-
|
|
9670
|
+
this.subscriptions.push(toggleService.openChange.subscribe(() => {
|
|
9671
|
+
dateFormControlService.markAsTouched();
|
|
9670
9672
|
}));
|
|
9671
9673
|
}
|
|
9672
9674
|
set clrPosition(position) {
|
|
@@ -10666,7 +10668,7 @@ class ClrPasswordContainer extends ClrAbstractContainer {
|
|
|
10666
10668
|
this.focus = false;
|
|
10667
10669
|
this._toggle = true;
|
|
10668
10670
|
/* The unsubscribe is handle inside the ClrAbstractContainer */
|
|
10669
|
-
this.subscriptions.push(
|
|
10671
|
+
this.subscriptions.push(focusService.focusChange.subscribe(state => {
|
|
10670
10672
|
this.focus = state;
|
|
10671
10673
|
}));
|
|
10672
10674
|
}
|
|
@@ -10816,12 +10818,11 @@ class ClrPassword extends WrappedFormControl {
|
|
|
10816
10818
|
constructor(vcr, injector, control, renderer, el, focusService, toggleService) {
|
|
10817
10819
|
super(vcr, ClrPasswordContainer, injector, control, renderer, el);
|
|
10818
10820
|
this.focusService = focusService;
|
|
10819
|
-
this.toggleService = toggleService;
|
|
10820
10821
|
this.index = 1;
|
|
10821
|
-
if (!
|
|
10822
|
+
if (!focusService) {
|
|
10822
10823
|
throw new Error('clrPassword requires being wrapped in <clr-password-container>');
|
|
10823
10824
|
}
|
|
10824
|
-
this.subscriptions.push(
|
|
10825
|
+
this.subscriptions.push(toggleService.subscribe(toggle => {
|
|
10825
10826
|
renderer.setProperty(el.nativeElement, 'type', toggle ? 'text' : 'password');
|
|
10826
10827
|
}));
|
|
10827
10828
|
}
|
|
@@ -14391,11 +14392,10 @@ class ClrDatagridItems {
|
|
|
14391
14392
|
this.template = template;
|
|
14392
14393
|
this.differs = differs;
|
|
14393
14394
|
this.items = items;
|
|
14394
|
-
this.vcr = vcr;
|
|
14395
14395
|
this.differ = null;
|
|
14396
14396
|
this.subscriptions = [];
|
|
14397
14397
|
items.smartenUp();
|
|
14398
|
-
this.iterableProxy = new NgForOf(
|
|
14398
|
+
this.iterableProxy = new NgForOf(vcr, template, differs);
|
|
14399
14399
|
this.subscriptions.push(items.change.subscribe(newItems => {
|
|
14400
14400
|
this.iterableProxy.ngForOf = newItems;
|
|
14401
14401
|
this.iterableProxy.ngDoCheck();
|
|
@@ -14891,9 +14891,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
14891
14891
|
*/
|
|
14892
14892
|
let nbSelection = 0;
|
|
14893
14893
|
class Selection {
|
|
14894
|
-
constructor(_items,
|
|
14894
|
+
constructor(_items, filters) {
|
|
14895
14895
|
this._items = _items;
|
|
14896
|
-
this._filters = _filters;
|
|
14897
14896
|
this.preserveSelection = false;
|
|
14898
14897
|
/**
|
|
14899
14898
|
* Shift key state, for use in range selection.
|
|
@@ -14914,13 +14913,13 @@ class Selection {
|
|
|
14914
14913
|
*/
|
|
14915
14914
|
this.subscriptions = [];
|
|
14916
14915
|
this.id = 'clr-dg-selection' + nbSelection++;
|
|
14917
|
-
this.subscriptions.push(
|
|
14916
|
+
this.subscriptions.push(filters.change.subscribe(() => {
|
|
14918
14917
|
if (!this._selectable || this.preserveSelection) {
|
|
14919
14918
|
return;
|
|
14920
14919
|
}
|
|
14921
14920
|
this.clearSelection();
|
|
14922
14921
|
}));
|
|
14923
|
-
this.subscriptions.push(
|
|
14922
|
+
this.subscriptions.push(_items.allChanges.subscribe(updatedItems => {
|
|
14924
14923
|
// Reset the lockedRefs;
|
|
14925
14924
|
const updateLockedRef = [];
|
|
14926
14925
|
switch (this.selectionType) {
|
|
@@ -14932,10 +14931,10 @@ class Selection {
|
|
|
14932
14931
|
let selectionUpdated = false;
|
|
14933
14932
|
// if the currentSingle has been set before data was loaded, we look up and save the ref from current data set
|
|
14934
14933
|
if (this.currentSingle && !this.prevSingleSelectionRef) {
|
|
14935
|
-
this.prevSingleSelectionRef =
|
|
14934
|
+
this.prevSingleSelectionRef = _items.trackBy(this.currentSingle);
|
|
14936
14935
|
}
|
|
14937
14936
|
updatedItems.forEach(item => {
|
|
14938
|
-
const ref =
|
|
14937
|
+
const ref = _items.trackBy(item);
|
|
14939
14938
|
// If one of the updated items is the previously selectedSingle, set it as the new one
|
|
14940
14939
|
if (this.prevSingleSelectionRef === ref) {
|
|
14941
14940
|
newSingle = item;
|
|
@@ -14949,7 +14948,7 @@ class Selection {
|
|
|
14949
14948
|
// Therefore, we should delete the currentSingle if it used to be defined but doesn't exist anymore.
|
|
14950
14949
|
// No explicit "delete" is required, since newSingle would be undefined at this point.
|
|
14951
14950
|
// Marking it as selectionUpdated here will set currentSingle to undefined below in the setTimeout.
|
|
14952
|
-
if (
|
|
14951
|
+
if (_items.smart && !newSingle) {
|
|
14953
14952
|
selectionUpdated = true;
|
|
14954
14953
|
}
|
|
14955
14954
|
// TODO: Discussed this with Eudes and this is fine for now.
|
|
@@ -14970,7 +14969,7 @@ class Selection {
|
|
|
14970
14969
|
if (this.current.length > 0 && this.prevSelectionRefs.length !== this.current.length) {
|
|
14971
14970
|
this.prevSelectionRefs = [];
|
|
14972
14971
|
this.current.forEach(item => {
|
|
14973
|
-
this.prevSelectionRefs.push(
|
|
14972
|
+
this.prevSelectionRefs.push(_items.trackBy(item));
|
|
14974
14973
|
});
|
|
14975
14974
|
}
|
|
14976
14975
|
// Duplicate loop, when the issue is issue#2342 is revisited keep in mind that
|
|
@@ -14979,7 +14978,7 @@ class Selection {
|
|
|
14979
14978
|
//
|
|
14980
14979
|
// The both loops below that goes over updatedItems could be combined into one.
|
|
14981
14980
|
updatedItems.forEach(item => {
|
|
14982
|
-
const ref =
|
|
14981
|
+
const ref = _items.trackBy(item);
|
|
14983
14982
|
if (this.lockedRefs.indexOf(ref) > -1) {
|
|
14984
14983
|
updateLockedRef.push(ref);
|
|
14985
14984
|
}
|
|
@@ -14989,7 +14988,7 @@ class Selection {
|
|
|
14989
14988
|
// the if statement below results in broken behavior.
|
|
14990
14989
|
if (leftOver.length > 0) {
|
|
14991
14990
|
updatedItems.forEach(item => {
|
|
14992
|
-
const ref =
|
|
14991
|
+
const ref = _items.trackBy(item);
|
|
14993
14992
|
// Look in current selected refs array if item is selected, and update actual value
|
|
14994
14993
|
const selectedIndex = this.prevSelectionRefs.indexOf(ref);
|
|
14995
14994
|
if (selectedIndex > -1) {
|
|
@@ -14999,7 +14998,7 @@ class Selection {
|
|
|
14999
14998
|
});
|
|
15000
14999
|
// Filter out any unmatched items if we're using smart datagrids where we expect all items to be
|
|
15001
15000
|
// present
|
|
15002
|
-
if (
|
|
15001
|
+
if (_items.smart) {
|
|
15003
15002
|
leftOver = leftOver.filter(selected => updatedItems.indexOf(selected) > -1);
|
|
15004
15003
|
if (this.current.length !== leftOver.length) {
|
|
15005
15004
|
selectionUpdated = true;
|
|
@@ -15317,8 +15316,6 @@ class ClrDatagridRow {
|
|
|
15317
15316
|
this.detailService = detailService;
|
|
15318
15317
|
this.displayMode = displayMode;
|
|
15319
15318
|
this.vcr = vcr;
|
|
15320
|
-
this.renderer = renderer;
|
|
15321
|
-
this.el = el;
|
|
15322
15319
|
this.commonStrings = commonStrings;
|
|
15323
15320
|
this.items = items;
|
|
15324
15321
|
this.document = document;
|
|
@@ -15346,17 +15343,17 @@ class ClrDatagridRow {
|
|
|
15346
15343
|
this.radioId = 'clr-dg-row-rd' + nbRow;
|
|
15347
15344
|
this.checkboxId = 'clr-dg-row-cb' + nbRow;
|
|
15348
15345
|
this.expandableId = expand.expandableId;
|
|
15349
|
-
this.subscriptions.push(combineLatest(
|
|
15346
|
+
this.subscriptions.push(combineLatest(expand.replace, expand.expandChange).subscribe(([expandReplaceValue, expandChangeValue]) => {
|
|
15350
15347
|
if (expandReplaceValue && expandChangeValue) {
|
|
15351
15348
|
// replaced and expanding
|
|
15352
15349
|
this.replaced = true;
|
|
15353
|
-
|
|
15350
|
+
renderer.addClass(el.nativeElement, 'datagrid-row-replaced');
|
|
15354
15351
|
}
|
|
15355
15352
|
else {
|
|
15356
15353
|
this.replaced = false;
|
|
15357
15354
|
// Handles these cases: not replaced and collapsing & replaced and
|
|
15358
15355
|
// collapsing and not replaced and expanding.
|
|
15359
|
-
|
|
15356
|
+
renderer.removeClass(el.nativeElement, 'datagrid-row-replaced');
|
|
15360
15357
|
}
|
|
15361
15358
|
}));
|
|
15362
15359
|
}
|
|
@@ -15896,7 +15893,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
15896
15893
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
15897
15894
|
*/
|
|
15898
15895
|
class ClrDatagrid {
|
|
15899
|
-
constructor(organizer, items, expandableRows, selection, rowActionService, stateProvider, displayMode, renderer, detailService, document, el, page, commonStrings,
|
|
15896
|
+
constructor(organizer, items, expandableRows, selection, rowActionService, stateProvider, displayMode, renderer, detailService, document, el, page, commonStrings, keyNavigation, zone) {
|
|
15900
15897
|
this.organizer = organizer;
|
|
15901
15898
|
this.items = items;
|
|
15902
15899
|
this.expandableRows = expandableRows;
|
|
@@ -15910,7 +15907,6 @@ class ClrDatagrid {
|
|
|
15910
15907
|
this.el = el;
|
|
15911
15908
|
this.page = page;
|
|
15912
15909
|
this.commonStrings = commonStrings;
|
|
15913
|
-
this.columnsService = columnsService;
|
|
15914
15910
|
this.keyNavigation = keyNavigation;
|
|
15915
15911
|
this.zone = zone;
|
|
15916
15912
|
this.clrDgSingleSelectionAriaLabel = this.commonStrings.keys.singleSelectionAriaLabel;
|
|
@@ -15932,7 +15928,7 @@ class ClrDatagrid {
|
|
|
15932
15928
|
this._subscriptions = [];
|
|
15933
15929
|
const datagridId = uniqueIdFactory();
|
|
15934
15930
|
this.selectAllId = 'clr-dg-select-all-' + datagridId;
|
|
15935
|
-
|
|
15931
|
+
detailService.id = datagridId;
|
|
15936
15932
|
}
|
|
15937
15933
|
/**
|
|
15938
15934
|
* Freezes the datagrid while data is loading
|
|
@@ -16154,7 +16150,7 @@ class ClrDatagrid {
|
|
|
16154
16150
|
this.items.refresh();
|
|
16155
16151
|
}
|
|
16156
16152
|
}
|
|
16157
|
-
ClrDatagrid.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrDatagrid, deps: [{ token: DatagridRenderOrganizer }, { token: Items }, { token: ExpandableRowsCount }, { token: Selection }, { token: RowActionService }, { token: StateProvider }, { token: DisplayModeService }, { token: i0.Renderer2 }, { token: DetailService }, { token: DOCUMENT }, { token: i0.ElementRef }, { token: Page }, { token: ClrCommonStringsService }, { token:
|
|
16153
|
+
ClrDatagrid.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrDatagrid, deps: [{ token: DatagridRenderOrganizer }, { token: Items }, { token: ExpandableRowsCount }, { token: Selection }, { token: RowActionService }, { token: StateProvider }, { token: DisplayModeService }, { token: i0.Renderer2 }, { token: DetailService }, { token: DOCUMENT }, { token: i0.ElementRef }, { token: Page }, { token: ClrCommonStringsService }, { token: KeyNavigationGridController }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
16158
16154
|
ClrDatagrid.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrDatagrid, selector: "clr-datagrid", inputs: { loadingMoreItems: ["clrLoadingMoreItems", "loadingMoreItems"], clrDgSingleSelectionAriaLabel: "clrDgSingleSelectionAriaLabel", clrDgSingleActionableAriaLabel: "clrDgSingleActionableAriaLabel", clrDetailExpandableAriaLabel: "clrDetailExpandableAriaLabel", clrDgDisablePageFocus: "clrDgDisablePageFocus", loading: ["clrDgLoading", "loading"], selected: ["clrDgSelected", "selected"], singleSelected: ["clrDgSingleSelected", "singleSelected"], clrDgPreserveSelection: "clrDgPreserveSelection", rowSelectionMode: ["clrDgRowSelection", "rowSelectionMode"], trackBy: ["clrDgItemsTrackBy", "trackBy"] }, outputs: { selectedChanged: "clrDgSelectedChange", singleSelectedChanged: "clrDgSingleSelectedChange", refresh: "clrDgRefresh" }, host: { properties: { "class.datagrid-host": "true", "class.datagrid-detail-open": "detailService.isOpen" } }, providers: [
|
|
16159
16155
|
Selection,
|
|
16160
16156
|
Sort,
|
|
@@ -16197,7 +16193,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
16197
16193
|
}], ctorParameters: function () { return [{ type: DatagridRenderOrganizer }, { type: Items }, { type: ExpandableRowsCount }, { type: Selection }, { type: RowActionService }, { type: StateProvider }, { type: DisplayModeService }, { type: i0.Renderer2 }, { type: DetailService }, { type: undefined, decorators: [{
|
|
16198
16194
|
type: Inject,
|
|
16199
16195
|
args: [DOCUMENT]
|
|
16200
|
-
}] }, { type: i0.ElementRef }, { type: Page }, { type: ClrCommonStringsService }, { type:
|
|
16196
|
+
}] }, { type: i0.ElementRef }, { type: Page }, { type: ClrCommonStringsService }, { type: KeyNavigationGridController }, { type: i0.NgZone }]; }, propDecorators: { loadingMoreItems: [{
|
|
16201
16197
|
type: Input,
|
|
16202
16198
|
args: ['clrLoadingMoreItems']
|
|
16203
16199
|
}], clrDgSingleSelectionAriaLabel: [{
|
|
@@ -16303,11 +16299,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
16303
16299
|
*/
|
|
16304
16300
|
let clrDgActionId = 0;
|
|
16305
16301
|
class ClrDatagridActionOverflow {
|
|
16306
|
-
constructor(rowActionService, commonStrings, platformId,
|
|
16302
|
+
constructor(rowActionService, commonStrings, platformId, smartToggleService) {
|
|
16307
16303
|
this.rowActionService = rowActionService;
|
|
16308
16304
|
this.commonStrings = commonStrings;
|
|
16309
16305
|
this.platformId = platformId;
|
|
16310
|
-
this.zone = zone;
|
|
16311
16306
|
this.smartToggleService = smartToggleService;
|
|
16312
16307
|
this.openChange = new EventEmitter(false);
|
|
16313
16308
|
this.popoverId = uniqueIdFactory();
|
|
@@ -16319,10 +16314,10 @@ class ClrDatagridActionOverflow {
|
|
|
16319
16314
|
};
|
|
16320
16315
|
this._open = false;
|
|
16321
16316
|
this.subscriptions = [];
|
|
16322
|
-
|
|
16323
|
-
this.subscriptions.push(
|
|
16317
|
+
rowActionService.register();
|
|
16318
|
+
this.subscriptions.push(smartToggleService.openChange.subscribe(openState => {
|
|
16324
16319
|
this.open = openState;
|
|
16325
|
-
}),
|
|
16320
|
+
}), smartToggleService.popoverVisible.subscribe(visible => {
|
|
16326
16321
|
if (visible) {
|
|
16327
16322
|
this.initializeFocus();
|
|
16328
16323
|
}
|
|
@@ -16359,7 +16354,7 @@ class ClrDatagridActionOverflow {
|
|
|
16359
16354
|
}
|
|
16360
16355
|
}
|
|
16361
16356
|
}
|
|
16362
|
-
ClrDatagridActionOverflow.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrDatagridActionOverflow, deps: [{ token: RowActionService }, { token: ClrCommonStringsService }, { token: PLATFORM_ID }, { token:
|
|
16357
|
+
ClrDatagridActionOverflow.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrDatagridActionOverflow, deps: [{ token: RowActionService }, { token: ClrCommonStringsService }, { token: PLATFORM_ID }, { token: ClrPopoverToggleService }], target: i0.ɵɵFactoryTarget.Component });
|
|
16363
16358
|
ClrDatagridActionOverflow.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrDatagridActionOverflow, selector: "clr-dg-action-overflow", inputs: { buttonLabel: ["clrDgActionOverflowButtonLabel", "buttonLabel"], open: ["clrDgActionOverflowOpen", "open"] }, outputs: { openChange: "clrDgActionOverflowOpenChange" }, viewQueries: [{ propertyName: "keyFocus", first: true, predicate: ClrKeyFocus, descendants: true }], hostDirectives: [{ directive: ClrPopoverHostDirective }], ngImport: i0, template: `
|
|
16364
16359
|
<button
|
|
16365
16360
|
tabindex="-1"
|
|
@@ -16429,7 +16424,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
16429
16424
|
}], ctorParameters: function () { return [{ type: RowActionService }, { type: ClrCommonStringsService }, { type: undefined, decorators: [{
|
|
16430
16425
|
type: Inject,
|
|
16431
16426
|
args: [PLATFORM_ID]
|
|
16432
|
-
}] }, { type:
|
|
16427
|
+
}] }, { type: ClrPopoverToggleService }]; }, propDecorators: { buttonLabel: [{
|
|
16433
16428
|
type: Input,
|
|
16434
16429
|
args: ['clrDgActionOverflowButtonLabel']
|
|
16435
16430
|
}], openChange: [{
|
|
@@ -16884,8 +16879,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
16884
16879
|
class DatagridDetailRegisterer {
|
|
16885
16880
|
constructor(expandableRowsCount) {
|
|
16886
16881
|
this.expandableRowsCount = expandableRowsCount;
|
|
16887
|
-
if (
|
|
16888
|
-
|
|
16882
|
+
if (expandableRowsCount) {
|
|
16883
|
+
expandableRowsCount.register();
|
|
16889
16884
|
}
|
|
16890
16885
|
}
|
|
16891
16886
|
ngOnDestroy() {
|
|
@@ -17012,13 +17007,12 @@ const COLUMN_STATE_PROVIDER = {
|
|
|
17012
17007
|
class ClrDatagridHideableColumn {
|
|
17013
17008
|
constructor(titleTemplateRef, viewContainerRef, columnsService, columnState) {
|
|
17014
17009
|
this.titleTemplateRef = titleTemplateRef;
|
|
17015
|
-
this.viewContainerRef = viewContainerRef;
|
|
17016
17010
|
this.columnsService = columnsService;
|
|
17017
17011
|
this.columnState = columnState;
|
|
17018
17012
|
this.hiddenChange = new EventEmitter();
|
|
17019
17013
|
this.subscriptions = [];
|
|
17020
|
-
|
|
17021
|
-
if (!
|
|
17014
|
+
viewContainerRef.createEmbeddedView(titleTemplateRef);
|
|
17015
|
+
if (!columnState) {
|
|
17022
17016
|
throw new Error('The *clrDgHideableColumn directive can only be used inside of a clr-dg-column component.');
|
|
17023
17017
|
}
|
|
17024
17018
|
}
|
|
@@ -17103,7 +17097,7 @@ class ClrIfDetail {
|
|
|
17103
17097
|
this.stateChange = new EventEmitter(null);
|
|
17104
17098
|
this.subscriptions = [];
|
|
17105
17099
|
this.skip = false; // This keeps us from resetting the input and calling the toggle twice
|
|
17106
|
-
|
|
17100
|
+
detailService.enabled = true;
|
|
17107
17101
|
}
|
|
17108
17102
|
set state(model) {
|
|
17109
17103
|
if (!this.skip) {
|
|
@@ -17241,7 +17235,7 @@ class ClrDatagridPagination {
|
|
|
17241
17235
|
this.commonStrings = commonStrings;
|
|
17242
17236
|
this.detailService = detailService;
|
|
17243
17237
|
this.currentChanged = new EventEmitter(false);
|
|
17244
|
-
|
|
17238
|
+
page.activated = true;
|
|
17245
17239
|
}
|
|
17246
17240
|
/**
|
|
17247
17241
|
* Page size
|
|
@@ -17726,10 +17720,10 @@ class ClrDatagridVirtualScrollDirective {
|
|
|
17726
17720
|
this.cdkVirtualForInputs = {
|
|
17727
17721
|
cdkVirtualForTrackBy: index => index,
|
|
17728
17722
|
};
|
|
17729
|
-
|
|
17730
|
-
|
|
17731
|
-
|
|
17732
|
-
this.datagridElementRef =
|
|
17723
|
+
items.smartenUp();
|
|
17724
|
+
datagrid.hasVirtualScroller = true;
|
|
17725
|
+
datagrid.detailService.preventFocusScroll = true;
|
|
17726
|
+
this.datagridElementRef = datagrid.el;
|
|
17733
17727
|
// default
|
|
17734
17728
|
this.cdkVirtualForTemplateCacheSize = 20;
|
|
17735
17729
|
this.mutationChanges.observe(this.datagridElementRef.nativeElement, {
|
|
@@ -17924,7 +17918,6 @@ class DatagridHeaderRenderer {
|
|
|
17924
17918
|
constructor(el, renderer, organizer, domAdapter, columnResizerService, columnsService, columnState) {
|
|
17925
17919
|
this.el = el;
|
|
17926
17920
|
this.renderer = renderer;
|
|
17927
|
-
this.organizer = organizer;
|
|
17928
17921
|
this.domAdapter = domAdapter;
|
|
17929
17922
|
this.columnResizerService = columnResizerService;
|
|
17930
17923
|
this.columnsService = columnsService;
|
|
@@ -17936,7 +17929,7 @@ class DatagridHeaderRenderer {
|
|
|
17936
17929
|
this.widthSet = false;
|
|
17937
17930
|
this.autoSet = false;
|
|
17938
17931
|
this.subscriptions = [];
|
|
17939
|
-
this.subscriptions.push(
|
|
17932
|
+
this.subscriptions.push(organizer.filterRenderSteps(DatagridRenderStep.CLEAR_WIDTHS).subscribe(() => this.clearWidth()));
|
|
17940
17933
|
}
|
|
17941
17934
|
ngOnDestroy() {
|
|
17942
17935
|
this.subscriptions.forEach(sub => sub.unsubscribe());
|
|
@@ -18082,14 +18075,13 @@ const domAdapterFactory = (platformId) => {
|
|
|
18082
18075
|
// Fixes build error
|
|
18083
18076
|
// @dynamic (https://github.com/angular/angular/issues/19698#issuecomment-338340211)
|
|
18084
18077
|
class DatagridMainRenderer {
|
|
18085
|
-
constructor(organizer, items, page,
|
|
18078
|
+
constructor(datagrid, organizer, items, page, el, renderer, detailService, tableSizeService, columnsService, ngZone, keyNavigation) {
|
|
18079
|
+
this.datagrid = datagrid;
|
|
18086
18080
|
this.organizer = organizer;
|
|
18087
18081
|
this.items = items;
|
|
18088
18082
|
this.page = page;
|
|
18089
|
-
this.domAdapter = domAdapter;
|
|
18090
18083
|
this.el = el;
|
|
18091
18084
|
this.renderer = renderer;
|
|
18092
|
-
this.detailService = detailService;
|
|
18093
18085
|
this.tableSizeService = tableSizeService;
|
|
18094
18086
|
this.columnsService = columnsService;
|
|
18095
18087
|
this.ngZone = ngZone;
|
|
@@ -18103,16 +18095,14 @@ class DatagridMainRenderer {
|
|
|
18103
18095
|
* 2) When rows are lazily loaded for the first time
|
|
18104
18096
|
*/
|
|
18105
18097
|
this.columnsSizesStable = false;
|
|
18106
|
-
this.subscriptions.push(this.
|
|
18107
|
-
|
|
18108
|
-
.subscribe(() => this.computeHeadersWidth()));
|
|
18109
|
-
this.subscriptions.push(this.page.sizeChange.subscribe(() => {
|
|
18098
|
+
this.subscriptions.push(organizer.filterRenderSteps(DatagridRenderStep.COMPUTE_COLUMN_WIDTHS).subscribe(() => this.computeHeadersWidth()));
|
|
18099
|
+
this.subscriptions.push(page.sizeChange.subscribe(() => {
|
|
18110
18100
|
if (this._heightSet) {
|
|
18111
18101
|
this.resetDatagridHeight();
|
|
18112
18102
|
}
|
|
18113
18103
|
}));
|
|
18114
|
-
this.subscriptions.push(
|
|
18115
|
-
this.subscriptions.push(
|
|
18104
|
+
this.subscriptions.push(detailService.stateChange.subscribe(state => this.toggleDetailPane(state)));
|
|
18105
|
+
this.subscriptions.push(items.change.subscribe(() => (this.shouldStabilizeColumns = true)));
|
|
18116
18106
|
}
|
|
18117
18107
|
ngOnInit() {
|
|
18118
18108
|
this.columnsService.columnsStateChange.subscribe(change => this.columnStateChanged(change));
|
|
@@ -18132,10 +18122,9 @@ class DatagridMainRenderer {
|
|
|
18132
18122
|
this.tableSizeService.table = this.el;
|
|
18133
18123
|
}
|
|
18134
18124
|
ngAfterViewChecked() {
|
|
18135
|
-
|
|
18136
|
-
|
|
18137
|
-
|
|
18138
|
-
}, 0);
|
|
18125
|
+
const datagridIsVisible = this.checkAndUpdateVisibility();
|
|
18126
|
+
if (this.shouldStabilizeColumns && datagridIsVisible) {
|
|
18127
|
+
this.stabilizeColumns();
|
|
18139
18128
|
}
|
|
18140
18129
|
if (this.shouldComputeHeight()) {
|
|
18141
18130
|
this.ngZone.runOutsideAngular(() => {
|
|
@@ -18286,8 +18275,18 @@ class DatagridMainRenderer {
|
|
|
18286
18275
|
this.columnsSizesStable = true;
|
|
18287
18276
|
}
|
|
18288
18277
|
}
|
|
18278
|
+
checkAndUpdateVisibility() {
|
|
18279
|
+
if (this.el.nativeElement.offsetParent) {
|
|
18280
|
+
this.datagrid.datagrid.nativeElement.style.visibility = 'visible';
|
|
18281
|
+
return true;
|
|
18282
|
+
}
|
|
18283
|
+
else {
|
|
18284
|
+
this.datagrid.datagrid.nativeElement.style.visibility = 'hidden';
|
|
18285
|
+
return false;
|
|
18286
|
+
}
|
|
18287
|
+
}
|
|
18289
18288
|
}
|
|
18290
|
-
DatagridMainRenderer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: DatagridMainRenderer, deps: [{ token:
|
|
18289
|
+
DatagridMainRenderer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: DatagridMainRenderer, deps: [{ token: ClrDatagrid }, { token: DatagridRenderOrganizer }, { token: Items }, { token: Page }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: DetailService }, { token: TableSizeService }, { token: ColumnsService }, { token: i0.NgZone }, { token: KeyNavigationGridController }], target: i0.ɵɵFactoryTarget.Directive });
|
|
18291
18290
|
DatagridMainRenderer.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.2", type: DatagridMainRenderer, selector: "clr-datagrid", providers: [{ provide: DomAdapter, useFactory: domAdapterFactory, deps: [PLATFORM_ID] }], queries: [{ propertyName: "headers", predicate: DatagridHeaderRenderer }, { propertyName: "rows", predicate: DatagridRowRenderer }], ngImport: i0 });
|
|
18292
18291
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: DatagridMainRenderer, decorators: [{
|
|
18293
18292
|
type: Directive,
|
|
@@ -18295,7 +18294,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
18295
18294
|
selector: 'clr-datagrid',
|
|
18296
18295
|
providers: [{ provide: DomAdapter, useFactory: domAdapterFactory, deps: [PLATFORM_ID] }],
|
|
18297
18296
|
}]
|
|
18298
|
-
}], ctorParameters: function () { return [{ type:
|
|
18297
|
+
}], ctorParameters: function () { return [{ type: ClrDatagrid }, { type: DatagridRenderOrganizer }, { type: Items }, { type: Page }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: DetailService }, { type: TableSizeService }, { type: ColumnsService }, { type: i0.NgZone }, { type: KeyNavigationGridController }]; }, propDecorators: { headers: [{
|
|
18299
18298
|
type: ContentChildren,
|
|
18300
18299
|
args: [DatagridHeaderRenderer]
|
|
18301
18300
|
}], rows: [{
|
|
@@ -18933,8 +18932,8 @@ class RecursiveChildren {
|
|
|
18933
18932
|
this.featuresService = featuresService;
|
|
18934
18933
|
this.expandService = expandService;
|
|
18935
18934
|
if (expandService) {
|
|
18936
|
-
this.subscription =
|
|
18937
|
-
if (!value && this.parent && !
|
|
18935
|
+
this.subscription = expandService.expandChange.subscribe(value => {
|
|
18936
|
+
if (!value && this.parent && !featuresService.eager && featuresService.recursion) {
|
|
18938
18937
|
// In the case of lazy-loading recursive trees, we clear the children on collapse.
|
|
18939
18938
|
// This is better in case they change between two user interaction, and that way
|
|
18940
18939
|
// the app itself can decide whether to cache them or not.
|
|
@@ -19548,7 +19547,7 @@ class ClrTreeNode {
|
|
|
19548
19547
|
this.typeAheadKeyBuffer = '';
|
|
19549
19548
|
this.typeAheadKeyEvent = new Subject();
|
|
19550
19549
|
this.subscriptions = [];
|
|
19551
|
-
if (
|
|
19550
|
+
if (featuresService.recursion) {
|
|
19552
19551
|
// I'm completely stuck, we have to hack into private properties until either
|
|
19553
19552
|
// https://github.com/angular/angular/issues/14935 or https://github.com/angular/angular/issues/15998
|
|
19554
19553
|
// are fixed
|
|
@@ -19789,7 +19788,7 @@ class ClrTreeNode {
|
|
|
19789
19788
|
}
|
|
19790
19789
|
}
|
|
19791
19790
|
ClrTreeNode.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrTreeNode, deps: [{ token: PLATFORM_ID }, { token: ClrTreeNode, optional: true, skipSelf: true }, { token: TreeFeaturesService }, { token: IfExpandService }, { token: ClrCommonStringsService }, { token: TreeFocusManagerService }, { token: i0.ElementRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
19792
|
-
ClrTreeNode.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrTreeNode, selector: "clr-tree-node", inputs: { expandable: ["clrExpandable", "expandable"], disabled: ["clrDisabled", "disabled"], selected: ["clrSelected", "selected"], expanded: ["clrExpanded", "expanded"], clrForTypeAhead: "clrForTypeAhead" }, outputs: { selectedChange: "clrSelectedChange", expandedChange: "clrExpandedChange" }, host: { properties: { "class.clr-tree-node": "true", "class.disabled": "this._model.disabled" } }, providers: [TREE_FEATURES_PROVIDER, IfExpandService, { provide: LoadingListener, useExisting: IfExpandService }], queries: [{ propertyName: "treeNodeLinkList", predicate: ClrTreeNodeLink }], viewQueries: [{ propertyName: "contentContainer", first: true, predicate: ["contentContainer"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<!--\n ~ Copyright (c) 2016-2024 Broadcom. All Rights Reserved.\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n<div\n #contentContainer\n role=\"treeitem\"\n class=\"clr-tree-node-content-container\"\n tabindex=\"-1\"\n [class.clr-form-control-disabled]=\"disabled\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-expanded]=\"isExpandable() ? expanded : null\"\n [attr.aria-selected]=\"ariaSelected\"\n (keydown)=\"onKeyDown($event)\"\n (focus)=\"broadcastFocusOnContainer()\"\n>\n <button\n *ngIf=\"isExpandable() && !isModelLoading && !expandService.loading\"\n aria-hidden=\"true\"\n type=\"button\"\n tabindex=\"-1\"\n class=\"clr-treenode-caret\"\n (click)=\"expandService.toggle();\"\n (focus)=\"focusTreeNode()\"\n [disabled]=\"disabled\"\n >\n <cds-icon\n class=\"clr-treenode-caret-icon\"\n shape=\"angle\"\n [attr.direction]=\"expandService.expanded ? 'down' : 'right'\"\n ></cds-icon>\n </button>\n <div class=\"clr-treenode-spinner-container\" *ngIf=\"expandService.loading || isModelLoading\">\n <span class=\"clr-treenode-spinner spinner\"></span>\n </div>\n <div class=\"clr-checkbox-wrapper clr-treenode-checkbox\" *ngIf=\"featuresService.selectable\">\n <input\n aria-hidden=\"true\"\n type=\"checkbox\"\n id=\"{{nodeId}}-check\"\n class=\"clr-checkbox\"\n [disabled]=\"disabled\"\n [checked]=\"_model.selected.value === STATES.SELECTED\"\n [indeterminate]=\"_model.selected.value === STATES.INDETERMINATE\"\n (change)=\"_model.toggleSelection(featuresService.eager)\"\n (focus)=\"focusTreeNode()\"\n tabindex=\"-1\"\n />\n <label for=\"{{nodeId}}-check\" class=\"clr-control-label\">\n <ng-container [ngTemplateOutlet]=\"treenodeContent\"></ng-container>\n </label>\n </div>\n <div\n class=\"clr-treenode-content\"\n [class.clr-treenode-text-only]=\"treeNodeContentTextOnly\"\n (mouseup)=\"focusTreeNode()\"\n *ngIf=\"!featuresService.selectable\"\n >\n <ng-container [ngTemplateOutlet]=\"treenodeContent\"></ng-container>\n </div>\n\n <ng-template #treenodeContent>\n <ng-content></ng-content>\n <div class=\"clr-sr-only\" *ngIf=\"featuresService.selectable || ariaSelected\">\n <span
|
|
19791
|
+
ClrTreeNode.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrTreeNode, selector: "clr-tree-node", inputs: { expandable: ["clrExpandable", "expandable"], disabled: ["clrDisabled", "disabled"], selected: ["clrSelected", "selected"], expanded: ["clrExpanded", "expanded"], clrForTypeAhead: "clrForTypeAhead" }, outputs: { selectedChange: "clrSelectedChange", expandedChange: "clrExpandedChange" }, host: { properties: { "class.clr-tree-node": "true", "class.disabled": "this._model.disabled" } }, providers: [TREE_FEATURES_PROVIDER, IfExpandService, { provide: LoadingListener, useExisting: IfExpandService }], queries: [{ propertyName: "treeNodeLinkList", predicate: ClrTreeNodeLink }], viewQueries: [{ propertyName: "contentContainer", first: true, predicate: ["contentContainer"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<!--\n ~ Copyright (c) 2016-2024 Broadcom. All Rights Reserved.\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n<div\n #contentContainer\n role=\"treeitem\"\n class=\"clr-tree-node-content-container\"\n tabindex=\"-1\"\n [class.clr-form-control-disabled]=\"disabled\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-expanded]=\"isExpandable() ? expanded : null\"\n [attr.aria-selected]=\"ariaSelected\"\n (keydown)=\"onKeyDown($event)\"\n (focus)=\"broadcastFocusOnContainer()\"\n>\n <button\n *ngIf=\"isExpandable() && !isModelLoading && !expandService.loading\"\n aria-hidden=\"true\"\n type=\"button\"\n tabindex=\"-1\"\n class=\"clr-treenode-caret\"\n (click)=\"expandService.toggle();\"\n (focus)=\"focusTreeNode()\"\n [disabled]=\"disabled\"\n >\n <cds-icon\n class=\"clr-treenode-caret-icon\"\n shape=\"angle\"\n [attr.direction]=\"expandService.expanded ? 'down' : 'right'\"\n ></cds-icon>\n </button>\n <div class=\"clr-treenode-spinner-container\" *ngIf=\"expandService.loading || isModelLoading\">\n <span class=\"clr-treenode-spinner spinner\"></span>\n </div>\n <div class=\"clr-checkbox-wrapper clr-treenode-checkbox\" *ngIf=\"featuresService.selectable\">\n <input\n aria-hidden=\"true\"\n type=\"checkbox\"\n id=\"{{nodeId}}-check\"\n class=\"clr-checkbox\"\n [disabled]=\"disabled\"\n [checked]=\"_model.selected.value === STATES.SELECTED\"\n [indeterminate]=\"_model.selected.value === STATES.INDETERMINATE\"\n (change)=\"_model.toggleSelection(featuresService.eager)\"\n (focus)=\"focusTreeNode()\"\n tabindex=\"-1\"\n />\n <label for=\"{{nodeId}}-check\" class=\"clr-control-label\">\n <ng-container [ngTemplateOutlet]=\"treenodeContent\"></ng-container>\n </label>\n </div>\n <div\n class=\"clr-treenode-content\"\n [class.clr-treenode-text-only]=\"treeNodeContentTextOnly\"\n (mouseup)=\"focusTreeNode()\"\n *ngIf=\"!featuresService.selectable\"\n >\n <ng-container [ngTemplateOutlet]=\"treenodeContent\"></ng-container>\n </div>\n\n <ng-template #treenodeContent>\n <ng-content></ng-content>\n <div class=\"clr-sr-only\" *ngIf=\"featuresService.selectable || ariaSelected\">\n <span> {{ariaSelected ? commonStrings.keys.selectedTreeNode : commonStrings.keys.unselectedTreeNode}}</span>\n </div>\n </ng-template>\n</div>\n<div\n class=\"clr-treenode-children\"\n [@toggleChildrenAnim]=\"expandService.expanded ? 'expanded' : 'collapsed'\"\n [attr.role]=\"isExpandable() && !featuresService.recursion ? 'group' : null\"\n>\n <ng-content select=\"clr-tree-node\"></ng-content>\n <ng-content select=\"[clrIfExpanded]\"></ng-content>\n <clr-recursive-children [parent]=\"_model\"></clr-recursive-children>\n</div>\n", dependencies: [{ 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: "component", type: RecursiveChildren, selector: "clr-recursive-children", inputs: ["parent", "children"] }], animations: [
|
|
19793
19792
|
trigger('toggleChildrenAnim', [
|
|
19794
19793
|
transition('collapsed => expanded', [style({ height: 0 }), animate(200, style({ height: '*' }))]),
|
|
19795
19794
|
transition('expanded => collapsed', [style({ height: '*' }), animate(200, style({ height: 0 }))]),
|
|
@@ -19809,7 +19808,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
19809
19808
|
], host: {
|
|
19810
19809
|
'[class.clr-tree-node]': 'true',
|
|
19811
19810
|
'[class.disabled]': 'this._model.disabled',
|
|
19812
|
-
}, template: "<!--\n ~ Copyright (c) 2016-2024 Broadcom. All Rights Reserved.\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n<div\n #contentContainer\n role=\"treeitem\"\n class=\"clr-tree-node-content-container\"\n tabindex=\"-1\"\n [class.clr-form-control-disabled]=\"disabled\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-expanded]=\"isExpandable() ? expanded : null\"\n [attr.aria-selected]=\"ariaSelected\"\n (keydown)=\"onKeyDown($event)\"\n (focus)=\"broadcastFocusOnContainer()\"\n>\n <button\n *ngIf=\"isExpandable() && !isModelLoading && !expandService.loading\"\n aria-hidden=\"true\"\n type=\"button\"\n tabindex=\"-1\"\n class=\"clr-treenode-caret\"\n (click)=\"expandService.toggle();\"\n (focus)=\"focusTreeNode()\"\n [disabled]=\"disabled\"\n >\n <cds-icon\n class=\"clr-treenode-caret-icon\"\n shape=\"angle\"\n [attr.direction]=\"expandService.expanded ? 'down' : 'right'\"\n ></cds-icon>\n </button>\n <div class=\"clr-treenode-spinner-container\" *ngIf=\"expandService.loading || isModelLoading\">\n <span class=\"clr-treenode-spinner spinner\"></span>\n </div>\n <div class=\"clr-checkbox-wrapper clr-treenode-checkbox\" *ngIf=\"featuresService.selectable\">\n <input\n aria-hidden=\"true\"\n type=\"checkbox\"\n id=\"{{nodeId}}-check\"\n class=\"clr-checkbox\"\n [disabled]=\"disabled\"\n [checked]=\"_model.selected.value === STATES.SELECTED\"\n [indeterminate]=\"_model.selected.value === STATES.INDETERMINATE\"\n (change)=\"_model.toggleSelection(featuresService.eager)\"\n (focus)=\"focusTreeNode()\"\n tabindex=\"-1\"\n />\n <label for=\"{{nodeId}}-check\" class=\"clr-control-label\">\n <ng-container [ngTemplateOutlet]=\"treenodeContent\"></ng-container>\n </label>\n </div>\n <div\n class=\"clr-treenode-content\"\n [class.clr-treenode-text-only]=\"treeNodeContentTextOnly\"\n (mouseup)=\"focusTreeNode()\"\n *ngIf=\"!featuresService.selectable\"\n >\n <ng-container [ngTemplateOutlet]=\"treenodeContent\"></ng-container>\n </div>\n\n <ng-template #treenodeContent>\n <ng-content></ng-content>\n <div class=\"clr-sr-only\" *ngIf=\"featuresService.selectable || ariaSelected\">\n <span
|
|
19811
|
+
}, template: "<!--\n ~ Copyright (c) 2016-2024 Broadcom. All Rights Reserved.\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n<div\n #contentContainer\n role=\"treeitem\"\n class=\"clr-tree-node-content-container\"\n tabindex=\"-1\"\n [class.clr-form-control-disabled]=\"disabled\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-expanded]=\"isExpandable() ? expanded : null\"\n [attr.aria-selected]=\"ariaSelected\"\n (keydown)=\"onKeyDown($event)\"\n (focus)=\"broadcastFocusOnContainer()\"\n>\n <button\n *ngIf=\"isExpandable() && !isModelLoading && !expandService.loading\"\n aria-hidden=\"true\"\n type=\"button\"\n tabindex=\"-1\"\n class=\"clr-treenode-caret\"\n (click)=\"expandService.toggle();\"\n (focus)=\"focusTreeNode()\"\n [disabled]=\"disabled\"\n >\n <cds-icon\n class=\"clr-treenode-caret-icon\"\n shape=\"angle\"\n [attr.direction]=\"expandService.expanded ? 'down' : 'right'\"\n ></cds-icon>\n </button>\n <div class=\"clr-treenode-spinner-container\" *ngIf=\"expandService.loading || isModelLoading\">\n <span class=\"clr-treenode-spinner spinner\"></span>\n </div>\n <div class=\"clr-checkbox-wrapper clr-treenode-checkbox\" *ngIf=\"featuresService.selectable\">\n <input\n aria-hidden=\"true\"\n type=\"checkbox\"\n id=\"{{nodeId}}-check\"\n class=\"clr-checkbox\"\n [disabled]=\"disabled\"\n [checked]=\"_model.selected.value === STATES.SELECTED\"\n [indeterminate]=\"_model.selected.value === STATES.INDETERMINATE\"\n (change)=\"_model.toggleSelection(featuresService.eager)\"\n (focus)=\"focusTreeNode()\"\n tabindex=\"-1\"\n />\n <label for=\"{{nodeId}}-check\" class=\"clr-control-label\">\n <ng-container [ngTemplateOutlet]=\"treenodeContent\"></ng-container>\n </label>\n </div>\n <div\n class=\"clr-treenode-content\"\n [class.clr-treenode-text-only]=\"treeNodeContentTextOnly\"\n (mouseup)=\"focusTreeNode()\"\n *ngIf=\"!featuresService.selectable\"\n >\n <ng-container [ngTemplateOutlet]=\"treenodeContent\"></ng-container>\n </div>\n\n <ng-template #treenodeContent>\n <ng-content></ng-content>\n <div class=\"clr-sr-only\" *ngIf=\"featuresService.selectable || ariaSelected\">\n <span> {{ariaSelected ? commonStrings.keys.selectedTreeNode : commonStrings.keys.unselectedTreeNode}}</span>\n </div>\n </ng-template>\n</div>\n<div\n class=\"clr-treenode-children\"\n [@toggleChildrenAnim]=\"expandService.expanded ? 'expanded' : 'collapsed'\"\n [attr.role]=\"isExpandable() && !featuresService.recursion ? 'group' : null\"\n>\n <ng-content select=\"clr-tree-node\"></ng-content>\n <ng-content select=\"[clrIfExpanded]\"></ng-content>\n <clr-recursive-children [parent]=\"_model\"></clr-recursive-children>\n</div>\n" }]
|
|
19813
19812
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
19814
19813
|
type: Inject,
|
|
19815
19814
|
args: [PLATFORM_ID]
|
|
@@ -19856,18 +19855,21 @@ function trimAndLowerCase(value) {
|
|
|
19856
19855
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
19857
19856
|
*/
|
|
19858
19857
|
class ClrTree {
|
|
19859
|
-
constructor(featuresService, focusManagerService,
|
|
19858
|
+
constructor(featuresService, focusManagerService, renderer, el, ngZone) {
|
|
19860
19859
|
this.featuresService = featuresService;
|
|
19861
19860
|
this.focusManagerService = focusManagerService;
|
|
19861
|
+
this.renderer = renderer;
|
|
19862
|
+
this.el = el;
|
|
19862
19863
|
this.subscriptions = [];
|
|
19863
|
-
|
|
19864
|
-
|
|
19864
|
+
this._isMultiSelectable = false;
|
|
19865
|
+
const subscription = ngZone.runOutsideAngular(() => fromEvent(el.nativeElement, 'focusin').subscribe((event) => {
|
|
19866
|
+
if (event.target === el.nativeElement) {
|
|
19865
19867
|
// After discussing with the team, I've made it so that when the tree receives focus, the first visible node will be focused.
|
|
19866
19868
|
// This will prevent from the page scrolling abruptly to the first selected node if it exist in a deeply nested tree.
|
|
19867
|
-
|
|
19869
|
+
focusManagerService.focusFirstVisibleNode();
|
|
19868
19870
|
// when the first child gets focus,
|
|
19869
19871
|
// tree should no longer have tabindex of 0.
|
|
19870
|
-
renderer.removeAttribute(nativeElement, 'tabindex');
|
|
19872
|
+
renderer.removeAttribute(el.nativeElement, 'tabindex');
|
|
19871
19873
|
}
|
|
19872
19874
|
}));
|
|
19873
19875
|
this.subscriptions.push(subscription);
|
|
@@ -19876,17 +19878,28 @@ class ClrTree {
|
|
|
19876
19878
|
this.featuresService.eager = !value;
|
|
19877
19879
|
}
|
|
19878
19880
|
get isMultiSelectable() {
|
|
19879
|
-
return this.
|
|
19881
|
+
return this._isMultiSelectable;
|
|
19880
19882
|
}
|
|
19881
19883
|
ngAfterContentInit() {
|
|
19882
19884
|
this.setRootNodes();
|
|
19883
19885
|
this.subscriptions.push(this.rootNodes.changes.subscribe(() => {
|
|
19886
|
+
this.setMultiSelectable();
|
|
19884
19887
|
this.setRootNodes();
|
|
19885
19888
|
}));
|
|
19886
19889
|
}
|
|
19887
19890
|
ngOnDestroy() {
|
|
19888
19891
|
this.subscriptions.forEach(sub => sub.unsubscribe());
|
|
19889
19892
|
}
|
|
19893
|
+
setMultiSelectable() {
|
|
19894
|
+
if (this.featuresService.selectable && this.rootNodes.length > 0) {
|
|
19895
|
+
this._isMultiSelectable = true;
|
|
19896
|
+
this.renderer.setAttribute(this.el.nativeElement, 'aria-multiselectable', 'true');
|
|
19897
|
+
}
|
|
19898
|
+
else {
|
|
19899
|
+
this._isMultiSelectable = false;
|
|
19900
|
+
this.renderer.removeAttribute(this.el.nativeElement, 'aria-multiselectable');
|
|
19901
|
+
}
|
|
19902
|
+
}
|
|
19890
19903
|
setRootNodes() {
|
|
19891
19904
|
// if node has no parent, it's a root node
|
|
19892
19905
|
// for recursive tree, this.rootNodes registers also nested children
|
|
@@ -19894,8 +19907,8 @@ class ClrTree {
|
|
|
19894
19907
|
this.focusManagerService.rootNodeModels = this.rootNodes.map(node => node._model).filter(node => !node.parent);
|
|
19895
19908
|
}
|
|
19896
19909
|
}
|
|
19897
|
-
ClrTree.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrTree, deps: [{ token: TreeFeaturesService }, { token: TreeFocusManagerService }, { token: i0.
|
|
19898
|
-
ClrTree.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrTree, selector: "clr-tree", inputs: { lazy: ["clrLazy", "lazy"] }, host: { attributes: { "tabindex": "0" }, properties: { "attr.role": "\"tree\""
|
|
19910
|
+
ClrTree.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrTree, deps: [{ token: TreeFeaturesService }, { token: TreeFocusManagerService }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
19911
|
+
ClrTree.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrTree, selector: "clr-tree", inputs: { lazy: ["clrLazy", "lazy"] }, host: { attributes: { "tabindex": "0" }, properties: { "attr.role": "\"tree\"" } }, providers: [TREE_FEATURES_PROVIDER, TreeFocusManagerService], queries: [{ propertyName: "rootNodes", predicate: ClrTreeNode }], ngImport: i0, template: `
|
|
19899
19912
|
<ng-content></ng-content>
|
|
19900
19913
|
<clr-recursive-children
|
|
19901
19914
|
*ngIf="featuresService.recursion"
|
|
@@ -19917,10 +19930,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
19917
19930
|
host: {
|
|
19918
19931
|
tabindex: '0',
|
|
19919
19932
|
'[attr.role]': '"tree"',
|
|
19920
|
-
'[attr.aria-multiselectable]': 'isMultiSelectable',
|
|
19921
19933
|
},
|
|
19922
19934
|
}]
|
|
19923
|
-
}], ctorParameters: function () { return [{ type: TreeFeaturesService }, { type: TreeFocusManagerService }, { type: i0.
|
|
19935
|
+
}], ctorParameters: function () { return [{ type: TreeFeaturesService }, { type: TreeFocusManagerService }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { rootNodes: [{
|
|
19924
19936
|
type: ContentChildren,
|
|
19925
19937
|
args: [ClrTreeNode]
|
|
19926
19938
|
}], lazy: [{
|
|
@@ -20007,7 +20019,7 @@ class DropdownFocusHandler {
|
|
|
20007
20019
|
this._unlistenFuncs = [];
|
|
20008
20020
|
this.resetChildren();
|
|
20009
20021
|
this.moveToFirstItemWhenOpen();
|
|
20010
|
-
if (!
|
|
20022
|
+
if (!parent) {
|
|
20011
20023
|
this.handleRootFocus();
|
|
20012
20024
|
}
|
|
20013
20025
|
}
|
|
@@ -20205,11 +20217,10 @@ class ClrDropdown {
|
|
|
20205
20217
|
this.parent = parent;
|
|
20206
20218
|
this.toggleService = toggleService;
|
|
20207
20219
|
this.focusHandler = focusHandler;
|
|
20208
|
-
this.cdr = cdr;
|
|
20209
20220
|
this.isMenuClosable = true;
|
|
20210
20221
|
this.subscriptions = [];
|
|
20211
|
-
this.subscriptions.push(dropdownService.changes.subscribe(value => (
|
|
20212
|
-
this.subscriptions.push(toggleService.openChange.subscribe(() =>
|
|
20222
|
+
this.subscriptions.push(dropdownService.changes.subscribe(value => (toggleService.open = value)));
|
|
20223
|
+
this.subscriptions.push(toggleService.openChange.subscribe(() => cdr.markForCheck()));
|
|
20213
20224
|
}
|
|
20214
20225
|
ngOnDestroy() {
|
|
20215
20226
|
this.subscriptions.forEach(sub => sub.unsubscribe());
|
|
@@ -21835,12 +21846,12 @@ class ClrHeader {
|
|
|
21835
21846
|
this.isNavLevel2OnPage = false;
|
|
21836
21847
|
this.openNavLevel = null;
|
|
21837
21848
|
this.responsiveNavCodes = ResponsiveNavCodes;
|
|
21838
|
-
this._subscription =
|
|
21849
|
+
this._subscription = responsiveNavService.registeredNavs.subscribe({
|
|
21839
21850
|
next: (navLevelList) => {
|
|
21840
21851
|
this.initializeNavTriggers(navLevelList);
|
|
21841
21852
|
},
|
|
21842
21853
|
});
|
|
21843
|
-
this._subscription.add(
|
|
21854
|
+
this._subscription.add(responsiveNavService.navControl
|
|
21844
21855
|
.pipe(filter(({ controlCode }) => controlCode === ResponsiveNavCodes.NAV_CLOSE || controlCode === ResponsiveNavCodes.NAV_CLOSE_ALL))
|
|
21845
21856
|
.subscribe(() => {
|
|
21846
21857
|
this.openNavLevel = null;
|
|
@@ -22457,8 +22468,6 @@ class ClrTabLink {
|
|
|
22457
22468
|
this.ifActiveService = ifActiveService;
|
|
22458
22469
|
this.id = id;
|
|
22459
22470
|
this.el = el;
|
|
22460
|
-
this.cfr = cfr;
|
|
22461
|
-
this.viewContainerRef = viewContainerRef;
|
|
22462
22471
|
this.tabsService = tabsService;
|
|
22463
22472
|
this.tabsId = tabsId;
|
|
22464
22473
|
if (!this.tabLinkId) {
|
|
@@ -22467,9 +22476,9 @@ class ClrTabLink {
|
|
|
22467
22476
|
// Tab links can be rendered in one of two places: in the main area or inside the overflow dropdown menu.
|
|
22468
22477
|
// Here, we create a container so that its template can be used to create embeddedView on the fly.
|
|
22469
22478
|
// See TabsService's renderView() method and how it's used in Tabs class for an example.
|
|
22470
|
-
const factory =
|
|
22471
|
-
this.templateRefContainer =
|
|
22472
|
-
[
|
|
22479
|
+
const factory = cfr.resolveComponentFactory(TemplateRefContainer);
|
|
22480
|
+
this.templateRefContainer = viewContainerRef.createComponent(factory, undefined, undefined, [
|
|
22481
|
+
[el.nativeElement],
|
|
22473
22482
|
]).instance;
|
|
22474
22483
|
}
|
|
22475
22484
|
get inOverflow() {
|
|
@@ -23051,7 +23060,7 @@ class ClrVerticalNav {
|
|
|
23051
23060
|
this._navGroupRegistrationService = _navGroupRegistrationService;
|
|
23052
23061
|
this.commonStrings = commonStrings;
|
|
23053
23062
|
this._collapsedChanged = new EventEmitter(true);
|
|
23054
|
-
this._sub =
|
|
23063
|
+
this._sub = _navService.collapsedChanged.subscribe(value => {
|
|
23055
23064
|
this._collapsedChanged.emit(value);
|
|
23056
23065
|
});
|
|
23057
23066
|
}
|
|
@@ -23139,27 +23148,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
23139
23148
|
const EXPANDED_STATE = 'expanded';
|
|
23140
23149
|
const COLLAPSED_STATE = 'collapsed';
|
|
23141
23150
|
class ClrVerticalNavGroup {
|
|
23142
|
-
constructor(_itemExpand, _navGroupRegistrationService,
|
|
23151
|
+
constructor(_itemExpand, _navGroupRegistrationService, navGroupService, _navService, commonStrings) {
|
|
23143
23152
|
this._itemExpand = _itemExpand;
|
|
23144
23153
|
this._navGroupRegistrationService = _navGroupRegistrationService;
|
|
23145
|
-
this._navGroupService = _navGroupService;
|
|
23146
23154
|
this._navService = _navService;
|
|
23147
23155
|
this.commonStrings = commonStrings;
|
|
23148
23156
|
this.expandedChange = new EventEmitter(true);
|
|
23149
23157
|
this.wasExpanded = false;
|
|
23150
23158
|
this._subscriptions = [];
|
|
23151
23159
|
this._expandAnimationState = COLLAPSED_STATE;
|
|
23152
|
-
|
|
23160
|
+
_navGroupRegistrationService.registerNavGroup();
|
|
23153
23161
|
// FIXME: This subscription handles a corner case
|
|
23154
23162
|
// Vertical Nav collapse requires the animation to run first and then
|
|
23155
23163
|
// remove the nodes from the DOM. If the user directly sets the input
|
|
23156
23164
|
// on the clrIfExpanded directive, we have no chance to run the animation
|
|
23157
23165
|
// and wait for it to complete. This subscription makes sure that the
|
|
23158
23166
|
// animation states are correct for that edge case.
|
|
23159
|
-
this._subscriptions.push(
|
|
23167
|
+
this._subscriptions.push(_itemExpand.expandChange.subscribe(value => {
|
|
23160
23168
|
if (value && this.expandAnimationState === COLLAPSED_STATE) {
|
|
23161
|
-
if (
|
|
23162
|
-
|
|
23169
|
+
if (_navService.collapsed) {
|
|
23170
|
+
_navService.collapsed = false;
|
|
23163
23171
|
}
|
|
23164
23172
|
this.expandAnimationState = EXPANDED_STATE;
|
|
23165
23173
|
}
|
|
@@ -23169,7 +23177,7 @@ class ClrVerticalNavGroup {
|
|
|
23169
23177
|
}));
|
|
23170
23178
|
// 1. If the nav is collapsing, close the open nav group + save its state
|
|
23171
23179
|
// 2. If the nav is expanding, expand the nav group if the previous state was expanded
|
|
23172
|
-
this._subscriptions.push(
|
|
23180
|
+
this._subscriptions.push(_navService.animateOnCollapsed.subscribe((goingToCollapse) => {
|
|
23173
23181
|
if (goingToCollapse && this.expanded) {
|
|
23174
23182
|
this.wasExpanded = true;
|
|
23175
23183
|
this.expandAnimationState = COLLAPSED_STATE;
|
|
@@ -23180,7 +23188,7 @@ class ClrVerticalNavGroup {
|
|
|
23180
23188
|
}
|
|
23181
23189
|
}));
|
|
23182
23190
|
// If a link is clicked, expand the nav group
|
|
23183
|
-
this._subscriptions.push(
|
|
23191
|
+
this._subscriptions.push(navGroupService.expandChange.subscribe((expand) => {
|
|
23184
23192
|
if (expand && !this.expanded) {
|
|
23185
23193
|
this.expandGroup();
|
|
23186
23194
|
}
|
|
@@ -23309,7 +23317,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
23309
23317
|
class ClrVerticalNavIcon {
|
|
23310
23318
|
constructor(_verticalNavIconService) {
|
|
23311
23319
|
this._verticalNavIconService = _verticalNavIconService;
|
|
23312
|
-
|
|
23320
|
+
_verticalNavIconService.registerIcon();
|
|
23313
23321
|
}
|
|
23314
23322
|
ngOnDestroy() {
|
|
23315
23323
|
this._verticalNavIconService.unregisterIcon();
|
|
@@ -23473,9 +23481,10 @@ class ClrModalConfigurationService {
|
|
|
23473
23481
|
}
|
|
23474
23482
|
}
|
|
23475
23483
|
ClrModalConfigurationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrModalConfigurationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
23476
|
-
ClrModalConfigurationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrModalConfigurationService });
|
|
23484
|
+
ClrModalConfigurationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrModalConfigurationService, providedIn: 'root' });
|
|
23477
23485
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrModalConfigurationService, decorators: [{
|
|
23478
|
-
type: Injectable
|
|
23486
|
+
type: Injectable,
|
|
23487
|
+
args: [{ providedIn: 'root' }]
|
|
23479
23488
|
}] });
|
|
23480
23489
|
|
|
23481
23490
|
/*
|
|
@@ -23657,11 +23666,11 @@ class ClrModalBody {
|
|
|
23657
23666
|
this.unlisteners = [];
|
|
23658
23667
|
ngZone.runOutsideAngular(() => {
|
|
23659
23668
|
this.observer = new ResizeObserver(() => this.addOrRemoveTabIndex());
|
|
23660
|
-
this.observer.observe(
|
|
23661
|
-
this.unlisteners.push(
|
|
23669
|
+
this.observer.observe(host.nativeElement);
|
|
23670
|
+
this.unlisteners.push(renderer.listen(host.nativeElement, 'mouseup', () => {
|
|
23662
23671
|
// set the tabindex binding back when click is completed with mouseup
|
|
23663
23672
|
this.addOrRemoveTabIndex();
|
|
23664
|
-
}),
|
|
23673
|
+
}), renderer.listen(host.nativeElement, 'mousedown', () => {
|
|
23665
23674
|
// tabindex = 0 binding should be removed
|
|
23666
23675
|
// so it won't be focused when click starts with mousedown
|
|
23667
23676
|
this.removeTabIndex();
|
|
@@ -23714,14 +23723,13 @@ class ClrModalModule {
|
|
|
23714
23723
|
}
|
|
23715
23724
|
ClrModalModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
23716
23725
|
ClrModalModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.2", ngImport: i0, type: ClrModalModule, declarations: [ClrModal, ClrModalBody], imports: [CommonModule, CdkTrapFocusModule, ClrIconModule], exports: [ClrModal, ClrModalBody, ClrIconModule] });
|
|
23717
|
-
ClrModalModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrModalModule,
|
|
23726
|
+
ClrModalModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrModalModule, imports: [CommonModule, CdkTrapFocusModule, ClrIconModule, ClrIconModule] });
|
|
23718
23727
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrModalModule, decorators: [{
|
|
23719
23728
|
type: NgModule,
|
|
23720
23729
|
args: [{
|
|
23721
23730
|
imports: [CommonModule, CdkTrapFocusModule, ClrIconModule],
|
|
23722
23731
|
declarations: [CLR_MODAL_DIRECTIVES],
|
|
23723
23732
|
exports: [CLR_MODAL_DIRECTIVES, ClrIconModule],
|
|
23724
|
-
providers: [ClrModalConfigurationService],
|
|
23725
23733
|
}]
|
|
23726
23734
|
}], ctorParameters: function () { return []; } });
|
|
23727
23735
|
|
|
@@ -23879,7 +23887,6 @@ class ClrSignpostContent extends AbstractPopover {
|
|
|
23879
23887
|
constructor(injector, parentHost, commonStrings, signpostIdService, signpostFocusManager, platformId, document) {
|
|
23880
23888
|
super(injector, parentHost);
|
|
23881
23889
|
this.commonStrings = commonStrings;
|
|
23882
|
-
this.signpostIdService = signpostIdService;
|
|
23883
23890
|
this.signpostFocusManager = signpostFocusManager;
|
|
23884
23891
|
this.platformId = platformId;
|
|
23885
23892
|
this.signpostContentId = uniqueIdFactory();
|
|
@@ -23889,7 +23896,7 @@ class ClrSignpostContent extends AbstractPopover {
|
|
|
23889
23896
|
// Defaults
|
|
23890
23897
|
this.position = 'right-middle';
|
|
23891
23898
|
this.closeOnOutsideClick = true;
|
|
23892
|
-
|
|
23899
|
+
signpostIdService.setId(this.signpostContentId);
|
|
23893
23900
|
this.document = document;
|
|
23894
23901
|
}
|
|
23895
23902
|
/*********
|
|
@@ -24274,11 +24281,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
24274
24281
|
class ClrTooltipTrigger {
|
|
24275
24282
|
constructor(toggleService, tooltipIdService, tooltipMouseService) {
|
|
24276
24283
|
this.toggleService = toggleService;
|
|
24277
|
-
this.tooltipIdService = tooltipIdService;
|
|
24278
24284
|
this.tooltipMouseService = tooltipMouseService;
|
|
24279
24285
|
this.subs = [];
|
|
24280
24286
|
// The aria-described by comes from the id of content. It
|
|
24281
|
-
this.subs.push(
|
|
24287
|
+
this.subs.push(tooltipIdService.id.subscribe(tooltipId => (this.ariaDescribedBy = tooltipId)));
|
|
24282
24288
|
}
|
|
24283
24289
|
ngOnDestroy() {
|
|
24284
24290
|
this.subs.forEach(sub => sub.unsubscribe());
|
|
@@ -25390,7 +25396,7 @@ class WizardNavigationService {
|
|
|
25390
25396
|
* @memberof WizardNavigationService
|
|
25391
25397
|
*/
|
|
25392
25398
|
this._cancelWizard = new Subject();
|
|
25393
|
-
this.previousButtonSubscription =
|
|
25399
|
+
this.previousButtonSubscription = buttonService.previousBtnClicked.subscribe(() => {
|
|
25394
25400
|
const currentPage = this.currentPage;
|
|
25395
25401
|
if (this.currentPageIsFirst || currentPage.previousStepDisabled) {
|
|
25396
25402
|
return;
|
|
@@ -25400,21 +25406,21 @@ class WizardNavigationService {
|
|
|
25400
25406
|
this.previous();
|
|
25401
25407
|
}
|
|
25402
25408
|
});
|
|
25403
|
-
this.nextButtonSubscription =
|
|
25409
|
+
this.nextButtonSubscription = buttonService.nextBtnClicked.subscribe(() => {
|
|
25404
25410
|
this.checkAndCommitCurrentPage('next');
|
|
25405
25411
|
});
|
|
25406
|
-
this.dangerButtonSubscription =
|
|
25412
|
+
this.dangerButtonSubscription = buttonService.dangerBtnClicked.subscribe(() => {
|
|
25407
25413
|
this.checkAndCommitCurrentPage('danger');
|
|
25408
25414
|
});
|
|
25409
|
-
this.finishButtonSubscription =
|
|
25415
|
+
this.finishButtonSubscription = buttonService.finishBtnClicked.subscribe(() => {
|
|
25410
25416
|
this.checkAndCommitCurrentPage('finish');
|
|
25411
25417
|
});
|
|
25412
|
-
this.customButtonSubscription =
|
|
25418
|
+
this.customButtonSubscription = buttonService.customBtnClicked.subscribe((type) => {
|
|
25413
25419
|
if (!this.wizardStopNavigation) {
|
|
25414
25420
|
this.currentPage.customButtonClicked.emit(type);
|
|
25415
25421
|
}
|
|
25416
25422
|
});
|
|
25417
|
-
this.cancelButtonSubscription =
|
|
25423
|
+
this.cancelButtonSubscription = buttonService.cancelBtnClicked.subscribe(() => {
|
|
25418
25424
|
if (this.wizardStopNavigation) {
|
|
25419
25425
|
return;
|
|
25420
25426
|
}
|
|
@@ -25425,7 +25431,7 @@ class WizardNavigationService {
|
|
|
25425
25431
|
this.cancel();
|
|
25426
25432
|
}
|
|
25427
25433
|
});
|
|
25428
|
-
this.pagesResetSubscription =
|
|
25434
|
+
this.pagesResetSubscription = pageCollection.pagesReset.subscribe(() => {
|
|
25429
25435
|
this.setFirstPageCurrent();
|
|
25430
25436
|
});
|
|
25431
25437
|
}
|
|
@@ -27976,5 +27982,5 @@ const CLR_MENU_POSITIONS = [
|
|
|
27976
27982
|
* Generated bundle index. Do not edit.
|
|
27977
27983
|
*/
|
|
27978
27984
|
|
|
27979
|
-
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_SIDEPANEL_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, ClrFileInput, ClrFileInputContainer, ClrFileInputModule, ClrFileInputValidator, ClrFileInputValueAccessor, 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, ClrSidePanel, ClrSidePanelModule, 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, ClrDatagridVirtualScrollDirective as ÇlrDatagridVirtualScrollDirective, DatagridWillyWonka as ÇlrDatagridWillyWonka, ExpandableOompaLoompa as ÇlrExpandableOompaLoompa, StepperOompaLoompa as ÇlrStepperOompaLoompa, StepperWillyWonka as ÇlrStepperWillyWonka, TabsWillyWonka as ÇlrTabsWillyWonka, WrappedCell as ÇlrWrappedCell, WrappedColumn as ÇlrWrappedColumn, WrappedRow as ÇlrWrappedRow };
|
|
27985
|
+
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_SIDEPANEL_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, ClrFileInput, ClrFileInputContainer, ClrFileInputModule, ClrFileInputValidator, ClrFileInputValueAccessor, 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, ClrModalConfigurationService, 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, ClrSidePanel, ClrSidePanelModule, 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, ClrDatagridVirtualScrollDirective as ÇlrDatagridVirtualScrollDirective, DatagridWillyWonka as ÇlrDatagridWillyWonka, ExpandableOompaLoompa as ÇlrExpandableOompaLoompa, StepperOompaLoompa as ÇlrStepperOompaLoompa, StepperWillyWonka as ÇlrStepperWillyWonka, TabsWillyWonka as ÇlrTabsWillyWonka, WrappedCell as ÇlrWrappedCell, WrappedColumn as ÇlrWrappedColumn, WrappedRow as ÇlrWrappedRow };
|
|
27980
27986
|
//# sourceMappingURL=clr-angular.mjs.map
|