@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/fesm2015/clr-angular.mjs
CHANGED
|
@@ -396,6 +396,9 @@ const commonStringsDefault = {
|
|
|
396
396
|
fileCount: '{COUNT} files',
|
|
397
397
|
clearFile: 'Clear {FILE}',
|
|
398
398
|
clearFiles: 'Clear {COUNT} files',
|
|
399
|
+
// Tree
|
|
400
|
+
selectedTreeNode: 'selected',
|
|
401
|
+
unselectedTreeNode: 'unselected',
|
|
399
402
|
};
|
|
400
403
|
|
|
401
404
|
/*
|
|
@@ -1182,9 +1185,7 @@ class ClrStepperPanel extends ClrAccordionPanel {
|
|
|
1182
1185
|
this.subscriptions.push(this.stepperService.activeStep
|
|
1183
1186
|
.pipe(filter(panelId => isPlatformBrowser(this.platformId) && panelId === this.id))
|
|
1184
1187
|
.subscribe(() => {
|
|
1185
|
-
|
|
1186
|
-
//before focusing on the next stepper panel header
|
|
1187
|
-
setTimeout(() => this.headerButton.nativeElement.focus(), 1500);
|
|
1188
|
+
this.headerButton.nativeElement.focus();
|
|
1188
1189
|
}));
|
|
1189
1190
|
}
|
|
1190
1191
|
triggerAllFormControlValidationIfError(panel) {
|
|
@@ -2234,6 +2235,7 @@ class ClrPopoverContent {
|
|
|
2234
2235
|
this.subscriptions = [];
|
|
2235
2236
|
this.removeClickListenerFn = null;
|
|
2236
2237
|
this.shouldRealign = false;
|
|
2238
|
+
this.previousContentHeight = null;
|
|
2237
2239
|
// Check-collector pattern:
|
|
2238
2240
|
// In order to get accurate content height/width values, we cannot calculate alignment offsets until
|
|
2239
2241
|
// after the projected content has stabilized.
|
|
@@ -2255,9 +2257,14 @@ class ClrPopoverContent {
|
|
|
2255
2257
|
this.smartEventsService.scrollToClose = !!scrollToClose;
|
|
2256
2258
|
}
|
|
2257
2259
|
ngAfterContentChecked() {
|
|
2258
|
-
if (this.smartOpenService.open && this.view
|
|
2259
|
-
|
|
2260
|
-
this.
|
|
2260
|
+
if (this.smartOpenService.open && this.view) {
|
|
2261
|
+
const rootNodeOffsetHeight = this.view.rootNodes[0].offsetHeight;
|
|
2262
|
+
if (this.shouldRealign ||
|
|
2263
|
+
(this.previousContentHeight !== null && this.previousContentHeight !== rootNodeOffsetHeight)) {
|
|
2264
|
+
// Channel content-check event through the check-collector
|
|
2265
|
+
this.previousContentHeight = rootNodeOffsetHeight;
|
|
2266
|
+
this.checkCollector.emit();
|
|
2267
|
+
}
|
|
2261
2268
|
}
|
|
2262
2269
|
}
|
|
2263
2270
|
ngAfterViewInit() {
|
|
@@ -2375,7 +2382,7 @@ class ClrPopoverOpenCloseButton {
|
|
|
2375
2382
|
this.smartOpenService = smartOpenService;
|
|
2376
2383
|
this.openCloseChange = new EventEmitter();
|
|
2377
2384
|
this.subscriptions = [];
|
|
2378
|
-
this.subscriptions.push(
|
|
2385
|
+
this.subscriptions.push(smartOpenService.openChange.subscribe(change => {
|
|
2379
2386
|
this.openCloseChange.next(change);
|
|
2380
2387
|
}));
|
|
2381
2388
|
}
|
|
@@ -3331,7 +3338,7 @@ class ClrIfActive {
|
|
|
3331
3338
|
this.activeChange = new EventEmitter(false);
|
|
3332
3339
|
this.wasActive = false;
|
|
3333
3340
|
this.checkAndUpdateView(ifActiveService.current);
|
|
3334
|
-
this.subscription =
|
|
3341
|
+
this.subscription = ifActiveService.currentChange.subscribe(newCurrentId => {
|
|
3335
3342
|
this.checkAndUpdateView(newCurrentId);
|
|
3336
3343
|
});
|
|
3337
3344
|
}
|
|
@@ -3423,7 +3430,7 @@ class ClrIfOpen {
|
|
|
3423
3430
|
* used with de-structured / de-sugared syntax.
|
|
3424
3431
|
*/
|
|
3425
3432
|
this.openChange = new EventEmitter(false);
|
|
3426
|
-
this.subscription =
|
|
3433
|
+
this.subscription = toggleService.openChange.subscribe(change => {
|
|
3427
3434
|
this.updateView(change);
|
|
3428
3435
|
this.openChange.emit(change);
|
|
3429
3436
|
});
|
|
@@ -3493,7 +3500,7 @@ class ClrIfExpanded {
|
|
|
3493
3500
|
this._subscriptions = [];
|
|
3494
3501
|
this._subscriptions.push(expand.expandChange.subscribe(() => {
|
|
3495
3502
|
this.updateView();
|
|
3496
|
-
this.expandedChange.emit(
|
|
3503
|
+
this.expandedChange.emit(expand.expanded);
|
|
3497
3504
|
}));
|
|
3498
3505
|
}
|
|
3499
3506
|
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
|
}
|
|
@@ -4510,12 +4517,11 @@ var CONTROL_STATE;
|
|
|
4510
4517
|
})(CONTROL_STATE || (CONTROL_STATE = {}));
|
|
4511
4518
|
class IfControlStateService {
|
|
4512
4519
|
constructor(ngControlService) {
|
|
4513
|
-
this.ngControlService = ngControlService;
|
|
4514
4520
|
this.subscriptions = [];
|
|
4515
4521
|
// Implement our own status changes observable, since Angular controls don't
|
|
4516
4522
|
this._statusChanges = new BehaviorSubject(CONTROL_STATE.NONE);
|
|
4517
4523
|
// Wait for the control to be available
|
|
4518
|
-
this.subscriptions.push(
|
|
4524
|
+
this.subscriptions.push(ngControlService.controlChanges.subscribe(control => {
|
|
4519
4525
|
if (control) {
|
|
4520
4526
|
this.control = control;
|
|
4521
4527
|
// Subscribe to the status change events, only after touched
|
|
@@ -4771,14 +4777,14 @@ class ClrAbstractContainer {
|
|
|
4771
4777
|
this.ngControlService = ngControlService;
|
|
4772
4778
|
this._dynamic = false;
|
|
4773
4779
|
this.subscriptions = [];
|
|
4774
|
-
this.subscriptions.push(
|
|
4780
|
+
this.subscriptions.push(ifControlStateService.statusChanges.subscribe((state) => {
|
|
4775
4781
|
this.state = state;
|
|
4776
4782
|
// Make sure everything is updated before dispatching the values for helpers
|
|
4777
4783
|
setTimeout(() => {
|
|
4778
4784
|
this.updateHelpers();
|
|
4779
4785
|
});
|
|
4780
4786
|
}));
|
|
4781
|
-
this.subscriptions.push(
|
|
4787
|
+
this.subscriptions.push(ngControlService.controlChanges.subscribe(control => {
|
|
4782
4788
|
this.control = control;
|
|
4783
4789
|
}));
|
|
4784
4790
|
}
|
|
@@ -5034,10 +5040,10 @@ class WrappedFormControl {
|
|
|
5034
5040
|
this.vcr = vcr;
|
|
5035
5041
|
this.wrapperType = wrapperType;
|
|
5036
5042
|
this.ngControl = ngControl;
|
|
5037
|
-
this.index = 0;
|
|
5038
|
-
this.subscriptions = [];
|
|
5039
5043
|
this.renderer = renderer;
|
|
5040
5044
|
this.el = el;
|
|
5045
|
+
this.index = 0;
|
|
5046
|
+
this.subscriptions = [];
|
|
5041
5047
|
if (injector) {
|
|
5042
5048
|
this.ngControlService = injector.get(NgControlService, null);
|
|
5043
5049
|
this.ifControlStateService = injector.get(IfControlStateService, null);
|
|
@@ -5261,12 +5267,12 @@ class AbstractIfState {
|
|
|
5261
5267
|
this.subscriptions = [];
|
|
5262
5268
|
this.displayedContent = false;
|
|
5263
5269
|
if (ngControlService) {
|
|
5264
|
-
this.subscriptions.push(
|
|
5270
|
+
this.subscriptions.push(ngControlService.controlChanges.subscribe(control => {
|
|
5265
5271
|
this.control = control;
|
|
5266
5272
|
}));
|
|
5267
5273
|
}
|
|
5268
5274
|
if (ifControlStateService) {
|
|
5269
|
-
this.subscriptions.push(
|
|
5275
|
+
this.subscriptions.push(ifControlStateService.statusChanges.subscribe((state) => {
|
|
5270
5276
|
this.handleState(state);
|
|
5271
5277
|
}));
|
|
5272
5278
|
}
|
|
@@ -6841,7 +6847,7 @@ class ClrOption {
|
|
|
6841
6847
|
this.optionSelectionService = optionSelectionService;
|
|
6842
6848
|
// A proxy with only the necessary data to be used for a11y and the focus handler service.
|
|
6843
6849
|
this.optionProxy = new OptionData(null, null);
|
|
6844
|
-
this.optionProxy.el =
|
|
6850
|
+
this.optionProxy.el = elRef.nativeElement;
|
|
6845
6851
|
}
|
|
6846
6852
|
get optionId() {
|
|
6847
6853
|
return this._id;
|
|
@@ -7107,7 +7113,7 @@ class ClrCombobox extends WrappedFormControl {
|
|
|
7107
7113
|
control.valueAccessor = this;
|
|
7108
7114
|
}
|
|
7109
7115
|
// default to SingleSelectComboboxModel, in case the optional input [ClrMulti] isn't used
|
|
7110
|
-
|
|
7116
|
+
optionSelectionService.selectionModel = new SingleSelectComboboxModel();
|
|
7111
7117
|
this.updateControlValue();
|
|
7112
7118
|
}
|
|
7113
7119
|
get multiSelect() {
|
|
@@ -7409,11 +7415,10 @@ class ClrOptionItems {
|
|
|
7409
7415
|
this.differs = differs;
|
|
7410
7416
|
this.optionService = optionService;
|
|
7411
7417
|
this.positionService = positionService;
|
|
7412
|
-
this.vcr = vcr;
|
|
7413
7418
|
this.subscriptions = [];
|
|
7414
7419
|
this.filter = '';
|
|
7415
7420
|
this.differ = null;
|
|
7416
|
-
this.iterableProxy = new NgForOf(
|
|
7421
|
+
this.iterableProxy = new NgForOf(vcr, template, differs);
|
|
7417
7422
|
this.subscriptions.push(optionService.inputChanged.subscribe(filter => {
|
|
7418
7423
|
this.filter = filter;
|
|
7419
7424
|
this.updateItems();
|
|
@@ -7797,10 +7802,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
7797
7802
|
class ClrDatalistContainer extends ClrAbstractContainer {
|
|
7798
7803
|
constructor(controlClassService, layoutService, ngControlService, focusService, ifControlStateService) {
|
|
7799
7804
|
super(ifControlStateService, layoutService, controlClassService, ngControlService);
|
|
7800
|
-
this.focusService = focusService;
|
|
7801
7805
|
this.ifControlStateService = ifControlStateService;
|
|
7802
7806
|
this.focus = false;
|
|
7803
|
-
this.subscriptions.push(
|
|
7807
|
+
this.subscriptions.push(focusService.focusChange.subscribe(state => (this.focus = state)));
|
|
7804
7808
|
}
|
|
7805
7809
|
}
|
|
7806
7810
|
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 });
|
|
@@ -7906,7 +7910,7 @@ class ClrDatalistInput extends WrappedFormControl {
|
|
|
7906
7910
|
super(vcr, ClrDatalistContainer, injector, control, renderer, el);
|
|
7907
7911
|
this.focusService = focusService;
|
|
7908
7912
|
this.datalistIdService = datalistIdService;
|
|
7909
|
-
if (!
|
|
7913
|
+
if (!focusService) {
|
|
7910
7914
|
throw new Error('clrDatalist requires being wrapped in <clr-datalist-container>');
|
|
7911
7915
|
}
|
|
7912
7916
|
}
|
|
@@ -8688,8 +8692,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
8688
8692
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
8689
8693
|
*/
|
|
8690
8694
|
class DateIOService {
|
|
8691
|
-
constructor(
|
|
8692
|
-
this._localeHelperService = _localeHelperService;
|
|
8695
|
+
constructor(localeHelperService) {
|
|
8693
8696
|
this.disabledDates = {
|
|
8694
8697
|
// This is the default range. It approximates the beginning of time to the end of time.
|
|
8695
8698
|
// Unless a minDate or maxDate is set with the native HTML5 api the range is all dates
|
|
@@ -8700,7 +8703,7 @@ class DateIOService {
|
|
|
8700
8703
|
this.cldrLocaleDateFormat = DEFAULT_LOCALE_FORMAT;
|
|
8701
8704
|
this.localeDisplayFormat = LITTLE_ENDIAN;
|
|
8702
8705
|
this.delimiters = ['/', '/'];
|
|
8703
|
-
this.cldrLocaleDateFormat =
|
|
8706
|
+
this.cldrLocaleDateFormat = localeHelperService.localeDateFormat;
|
|
8704
8707
|
this.initializeLocaleDisplayFormat();
|
|
8705
8708
|
}
|
|
8706
8709
|
get placeholderText() {
|
|
@@ -9121,7 +9124,7 @@ class DatepickerEnabledService {
|
|
|
9121
9124
|
constructor(_document) {
|
|
9122
9125
|
this._document = _document;
|
|
9123
9126
|
this._isUserAgentMobile = false;
|
|
9124
|
-
if (
|
|
9127
|
+
if (_document) {
|
|
9125
9128
|
this._isUserAgentMobile = MOBILE_USERAGENT_REGEX.test(_document.defaultView.navigator.userAgent);
|
|
9126
9129
|
this._innerWidth = _document.defaultView.innerWidth;
|
|
9127
9130
|
}
|
|
@@ -9719,18 +9722,17 @@ class ClrDateContainer extends ClrAbstractContainer {
|
|
|
9719
9722
|
this.dateFormControlService = dateFormControlService;
|
|
9720
9723
|
this.dateIOService = dateIOService;
|
|
9721
9724
|
this.commonStrings = commonStrings;
|
|
9722
|
-
this.focusService = focusService;
|
|
9723
9725
|
this.viewManagerService = viewManagerService;
|
|
9724
9726
|
this.controlClassService = controlClassService;
|
|
9725
9727
|
this.layoutService = layoutService;
|
|
9726
9728
|
this.ngControlService = ngControlService;
|
|
9727
9729
|
this.ifControlStateService = ifControlStateService;
|
|
9728
9730
|
this.focus = false;
|
|
9729
|
-
this.subscriptions.push(
|
|
9731
|
+
this.subscriptions.push(focusService.focusChange.subscribe(state => {
|
|
9730
9732
|
this.focus = state;
|
|
9731
9733
|
}));
|
|
9732
|
-
this.subscriptions.push(
|
|
9733
|
-
|
|
9734
|
+
this.subscriptions.push(toggleService.openChange.subscribe(() => {
|
|
9735
|
+
dateFormControlService.markAsTouched();
|
|
9734
9736
|
}));
|
|
9735
9737
|
}
|
|
9736
9738
|
set clrPosition(position) {
|
|
@@ -10739,7 +10741,7 @@ class ClrPasswordContainer extends ClrAbstractContainer {
|
|
|
10739
10741
|
this.focus = false;
|
|
10740
10742
|
this._toggle = true;
|
|
10741
10743
|
/* The unsubscribe is handle inside the ClrAbstractContainer */
|
|
10742
|
-
this.subscriptions.push(
|
|
10744
|
+
this.subscriptions.push(focusService.focusChange.subscribe(state => {
|
|
10743
10745
|
this.focus = state;
|
|
10744
10746
|
}));
|
|
10745
10747
|
}
|
|
@@ -10891,12 +10893,11 @@ class ClrPassword extends WrappedFormControl {
|
|
|
10891
10893
|
constructor(vcr, injector, control, renderer, el, focusService, toggleService) {
|
|
10892
10894
|
super(vcr, ClrPasswordContainer, injector, control, renderer, el);
|
|
10893
10895
|
this.focusService = focusService;
|
|
10894
|
-
this.toggleService = toggleService;
|
|
10895
10896
|
this.index = 1;
|
|
10896
|
-
if (!
|
|
10897
|
+
if (!focusService) {
|
|
10897
10898
|
throw new Error('clrPassword requires being wrapped in <clr-password-container>');
|
|
10898
10899
|
}
|
|
10899
|
-
this.subscriptions.push(
|
|
10900
|
+
this.subscriptions.push(toggleService.subscribe(toggle => {
|
|
10900
10901
|
renderer.setProperty(el.nativeElement, 'type', toggle ? 'text' : 'password');
|
|
10901
10902
|
}));
|
|
10902
10903
|
}
|
|
@@ -14503,11 +14504,10 @@ class ClrDatagridItems {
|
|
|
14503
14504
|
this.template = template;
|
|
14504
14505
|
this.differs = differs;
|
|
14505
14506
|
this.items = items;
|
|
14506
|
-
this.vcr = vcr;
|
|
14507
14507
|
this.differ = null;
|
|
14508
14508
|
this.subscriptions = [];
|
|
14509
14509
|
items.smartenUp();
|
|
14510
|
-
this.iterableProxy = new NgForOf(
|
|
14510
|
+
this.iterableProxy = new NgForOf(vcr, template, differs);
|
|
14511
14511
|
this.subscriptions.push(items.change.subscribe(newItems => {
|
|
14512
14512
|
this.iterableProxy.ngForOf = newItems;
|
|
14513
14513
|
this.iterableProxy.ngDoCheck();
|
|
@@ -15005,9 +15005,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
15005
15005
|
*/
|
|
15006
15006
|
let nbSelection = 0;
|
|
15007
15007
|
class Selection {
|
|
15008
|
-
constructor(_items,
|
|
15008
|
+
constructor(_items, filters) {
|
|
15009
15009
|
this._items = _items;
|
|
15010
|
-
this._filters = _filters;
|
|
15011
15010
|
this.preserveSelection = false;
|
|
15012
15011
|
/**
|
|
15013
15012
|
* Shift key state, for use in range selection.
|
|
@@ -15028,13 +15027,13 @@ class Selection {
|
|
|
15028
15027
|
*/
|
|
15029
15028
|
this.subscriptions = [];
|
|
15030
15029
|
this.id = 'clr-dg-selection' + nbSelection++;
|
|
15031
|
-
this.subscriptions.push(
|
|
15030
|
+
this.subscriptions.push(filters.change.subscribe(() => {
|
|
15032
15031
|
if (!this._selectable || this.preserveSelection) {
|
|
15033
15032
|
return;
|
|
15034
15033
|
}
|
|
15035
15034
|
this.clearSelection();
|
|
15036
15035
|
}));
|
|
15037
|
-
this.subscriptions.push(
|
|
15036
|
+
this.subscriptions.push(_items.allChanges.subscribe(updatedItems => {
|
|
15038
15037
|
// Reset the lockedRefs;
|
|
15039
15038
|
const updateLockedRef = [];
|
|
15040
15039
|
switch (this.selectionType) {
|
|
@@ -15046,10 +15045,10 @@ class Selection {
|
|
|
15046
15045
|
let selectionUpdated = false;
|
|
15047
15046
|
// if the currentSingle has been set before data was loaded, we look up and save the ref from current data set
|
|
15048
15047
|
if (this.currentSingle && !this.prevSingleSelectionRef) {
|
|
15049
|
-
this.prevSingleSelectionRef =
|
|
15048
|
+
this.prevSingleSelectionRef = _items.trackBy(this.currentSingle);
|
|
15050
15049
|
}
|
|
15051
15050
|
updatedItems.forEach(item => {
|
|
15052
|
-
const ref =
|
|
15051
|
+
const ref = _items.trackBy(item);
|
|
15053
15052
|
// If one of the updated items is the previously selectedSingle, set it as the new one
|
|
15054
15053
|
if (this.prevSingleSelectionRef === ref) {
|
|
15055
15054
|
newSingle = item;
|
|
@@ -15063,7 +15062,7 @@ class Selection {
|
|
|
15063
15062
|
// Therefore, we should delete the currentSingle if it used to be defined but doesn't exist anymore.
|
|
15064
15063
|
// No explicit "delete" is required, since newSingle would be undefined at this point.
|
|
15065
15064
|
// Marking it as selectionUpdated here will set currentSingle to undefined below in the setTimeout.
|
|
15066
|
-
if (
|
|
15065
|
+
if (_items.smart && !newSingle) {
|
|
15067
15066
|
selectionUpdated = true;
|
|
15068
15067
|
}
|
|
15069
15068
|
// TODO: Discussed this with Eudes and this is fine for now.
|
|
@@ -15084,7 +15083,7 @@ class Selection {
|
|
|
15084
15083
|
if (this.current.length > 0 && this.prevSelectionRefs.length !== this.current.length) {
|
|
15085
15084
|
this.prevSelectionRefs = [];
|
|
15086
15085
|
this.current.forEach(item => {
|
|
15087
|
-
this.prevSelectionRefs.push(
|
|
15086
|
+
this.prevSelectionRefs.push(_items.trackBy(item));
|
|
15088
15087
|
});
|
|
15089
15088
|
}
|
|
15090
15089
|
// Duplicate loop, when the issue is issue#2342 is revisited keep in mind that
|
|
@@ -15093,7 +15092,7 @@ class Selection {
|
|
|
15093
15092
|
//
|
|
15094
15093
|
// The both loops below that goes over updatedItems could be combined into one.
|
|
15095
15094
|
updatedItems.forEach(item => {
|
|
15096
|
-
const ref =
|
|
15095
|
+
const ref = _items.trackBy(item);
|
|
15097
15096
|
if (this.lockedRefs.indexOf(ref) > -1) {
|
|
15098
15097
|
updateLockedRef.push(ref);
|
|
15099
15098
|
}
|
|
@@ -15103,7 +15102,7 @@ class Selection {
|
|
|
15103
15102
|
// the if statement below results in broken behavior.
|
|
15104
15103
|
if (leftOver.length > 0) {
|
|
15105
15104
|
updatedItems.forEach(item => {
|
|
15106
|
-
const ref =
|
|
15105
|
+
const ref = _items.trackBy(item);
|
|
15107
15106
|
// Look in current selected refs array if item is selected, and update actual value
|
|
15108
15107
|
const selectedIndex = this.prevSelectionRefs.indexOf(ref);
|
|
15109
15108
|
if (selectedIndex > -1) {
|
|
@@ -15113,7 +15112,7 @@ class Selection {
|
|
|
15113
15112
|
});
|
|
15114
15113
|
// Filter out any unmatched items if we're using smart datagrids where we expect all items to be
|
|
15115
15114
|
// present
|
|
15116
|
-
if (
|
|
15115
|
+
if (_items.smart) {
|
|
15117
15116
|
leftOver = leftOver.filter(selected => updatedItems.indexOf(selected) > -1);
|
|
15118
15117
|
if (this.current.length !== leftOver.length) {
|
|
15119
15118
|
selectionUpdated = true;
|
|
@@ -15432,8 +15431,6 @@ class ClrDatagridRow {
|
|
|
15432
15431
|
this.detailService = detailService;
|
|
15433
15432
|
this.displayMode = displayMode;
|
|
15434
15433
|
this.vcr = vcr;
|
|
15435
|
-
this.renderer = renderer;
|
|
15436
|
-
this.el = el;
|
|
15437
15434
|
this.commonStrings = commonStrings;
|
|
15438
15435
|
this.items = items;
|
|
15439
15436
|
this.document = document;
|
|
@@ -15461,17 +15458,17 @@ class ClrDatagridRow {
|
|
|
15461
15458
|
this.radioId = 'clr-dg-row-rd' + nbRow;
|
|
15462
15459
|
this.checkboxId = 'clr-dg-row-cb' + nbRow;
|
|
15463
15460
|
this.expandableId = expand.expandableId;
|
|
15464
|
-
this.subscriptions.push(combineLatest(
|
|
15461
|
+
this.subscriptions.push(combineLatest(expand.replace, expand.expandChange).subscribe(([expandReplaceValue, expandChangeValue]) => {
|
|
15465
15462
|
if (expandReplaceValue && expandChangeValue) {
|
|
15466
15463
|
// replaced and expanding
|
|
15467
15464
|
this.replaced = true;
|
|
15468
|
-
|
|
15465
|
+
renderer.addClass(el.nativeElement, 'datagrid-row-replaced');
|
|
15469
15466
|
}
|
|
15470
15467
|
else {
|
|
15471
15468
|
this.replaced = false;
|
|
15472
15469
|
// Handles these cases: not replaced and collapsing & replaced and
|
|
15473
15470
|
// collapsing and not replaced and expanding.
|
|
15474
|
-
|
|
15471
|
+
renderer.removeClass(el.nativeElement, 'datagrid-row-replaced');
|
|
15475
15472
|
}
|
|
15476
15473
|
}));
|
|
15477
15474
|
}
|
|
@@ -16013,7 +16010,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
16013
16010
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
16014
16011
|
*/
|
|
16015
16012
|
class ClrDatagrid {
|
|
16016
|
-
constructor(organizer, items, expandableRows, selection, rowActionService, stateProvider, displayMode, renderer, detailService, document, el, page, commonStrings,
|
|
16013
|
+
constructor(organizer, items, expandableRows, selection, rowActionService, stateProvider, displayMode, renderer, detailService, document, el, page, commonStrings, keyNavigation, zone) {
|
|
16017
16014
|
this.organizer = organizer;
|
|
16018
16015
|
this.items = items;
|
|
16019
16016
|
this.expandableRows = expandableRows;
|
|
@@ -16027,7 +16024,6 @@ class ClrDatagrid {
|
|
|
16027
16024
|
this.el = el;
|
|
16028
16025
|
this.page = page;
|
|
16029
16026
|
this.commonStrings = commonStrings;
|
|
16030
|
-
this.columnsService = columnsService;
|
|
16031
16027
|
this.keyNavigation = keyNavigation;
|
|
16032
16028
|
this.zone = zone;
|
|
16033
16029
|
this.clrDgSingleSelectionAriaLabel = this.commonStrings.keys.singleSelectionAriaLabel;
|
|
@@ -16049,7 +16045,7 @@ class ClrDatagrid {
|
|
|
16049
16045
|
this._subscriptions = [];
|
|
16050
16046
|
const datagridId = uniqueIdFactory();
|
|
16051
16047
|
this.selectAllId = 'clr-dg-select-all-' + datagridId;
|
|
16052
|
-
|
|
16048
|
+
detailService.id = datagridId;
|
|
16053
16049
|
}
|
|
16054
16050
|
/**
|
|
16055
16051
|
* Freezes the datagrid while data is loading
|
|
@@ -16271,7 +16267,7 @@ class ClrDatagrid {
|
|
|
16271
16267
|
this.items.refresh();
|
|
16272
16268
|
}
|
|
16273
16269
|
}
|
|
16274
|
-
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:
|
|
16270
|
+
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 });
|
|
16275
16271
|
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: [
|
|
16276
16272
|
Selection,
|
|
16277
16273
|
Sort,
|
|
@@ -16315,7 +16311,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
16315
16311
|
return [{ type: DatagridRenderOrganizer }, { type: Items }, { type: ExpandableRowsCount }, { type: Selection }, { type: RowActionService }, { type: StateProvider }, { type: DisplayModeService }, { type: i0.Renderer2 }, { type: DetailService }, { type: undefined, decorators: [{
|
|
16316
16312
|
type: Inject,
|
|
16317
16313
|
args: [DOCUMENT]
|
|
16318
|
-
}] }, { type: i0.ElementRef }, { type: Page }, { type: ClrCommonStringsService }, { type:
|
|
16314
|
+
}] }, { type: i0.ElementRef }, { type: Page }, { type: ClrCommonStringsService }, { type: KeyNavigationGridController }, { type: i0.NgZone }];
|
|
16319
16315
|
}, propDecorators: { loadingMoreItems: [{
|
|
16320
16316
|
type: Input,
|
|
16321
16317
|
args: ['clrLoadingMoreItems']
|
|
@@ -16422,11 +16418,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
16422
16418
|
*/
|
|
16423
16419
|
let clrDgActionId = 0;
|
|
16424
16420
|
class ClrDatagridActionOverflow {
|
|
16425
|
-
constructor(rowActionService, commonStrings, platformId,
|
|
16421
|
+
constructor(rowActionService, commonStrings, platformId, smartToggleService) {
|
|
16426
16422
|
this.rowActionService = rowActionService;
|
|
16427
16423
|
this.commonStrings = commonStrings;
|
|
16428
16424
|
this.platformId = platformId;
|
|
16429
|
-
this.zone = zone;
|
|
16430
16425
|
this.smartToggleService = smartToggleService;
|
|
16431
16426
|
this.openChange = new EventEmitter(false);
|
|
16432
16427
|
this.popoverId = uniqueIdFactory();
|
|
@@ -16438,10 +16433,10 @@ class ClrDatagridActionOverflow {
|
|
|
16438
16433
|
};
|
|
16439
16434
|
this._open = false;
|
|
16440
16435
|
this.subscriptions = [];
|
|
16441
|
-
|
|
16442
|
-
this.subscriptions.push(
|
|
16436
|
+
rowActionService.register();
|
|
16437
|
+
this.subscriptions.push(smartToggleService.openChange.subscribe(openState => {
|
|
16443
16438
|
this.open = openState;
|
|
16444
|
-
}),
|
|
16439
|
+
}), smartToggleService.popoverVisible.subscribe(visible => {
|
|
16445
16440
|
if (visible) {
|
|
16446
16441
|
this.initializeFocus();
|
|
16447
16442
|
}
|
|
@@ -16478,7 +16473,7 @@ class ClrDatagridActionOverflow {
|
|
|
16478
16473
|
}
|
|
16479
16474
|
}
|
|
16480
16475
|
}
|
|
16481
|
-
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:
|
|
16476
|
+
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 });
|
|
16482
16477
|
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: `
|
|
16483
16478
|
<button
|
|
16484
16479
|
tabindex="-1"
|
|
@@ -16549,7 +16544,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
16549
16544
|
return [{ type: RowActionService }, { type: ClrCommonStringsService }, { type: undefined, decorators: [{
|
|
16550
16545
|
type: Inject,
|
|
16551
16546
|
args: [PLATFORM_ID]
|
|
16552
|
-
}] }, { type:
|
|
16547
|
+
}] }, { type: ClrPopoverToggleService }];
|
|
16553
16548
|
}, propDecorators: { buttonLabel: [{
|
|
16554
16549
|
type: Input,
|
|
16555
16550
|
args: ['clrDgActionOverflowButtonLabel']
|
|
@@ -17006,8 +17001,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
17006
17001
|
class DatagridDetailRegisterer {
|
|
17007
17002
|
constructor(expandableRowsCount) {
|
|
17008
17003
|
this.expandableRowsCount = expandableRowsCount;
|
|
17009
|
-
if (
|
|
17010
|
-
|
|
17004
|
+
if (expandableRowsCount) {
|
|
17005
|
+
expandableRowsCount.register();
|
|
17011
17006
|
}
|
|
17012
17007
|
}
|
|
17013
17008
|
ngOnDestroy() {
|
|
@@ -17136,13 +17131,12 @@ const COLUMN_STATE_PROVIDER = {
|
|
|
17136
17131
|
class ClrDatagridHideableColumn {
|
|
17137
17132
|
constructor(titleTemplateRef, viewContainerRef, columnsService, columnState) {
|
|
17138
17133
|
this.titleTemplateRef = titleTemplateRef;
|
|
17139
|
-
this.viewContainerRef = viewContainerRef;
|
|
17140
17134
|
this.columnsService = columnsService;
|
|
17141
17135
|
this.columnState = columnState;
|
|
17142
17136
|
this.hiddenChange = new EventEmitter();
|
|
17143
17137
|
this.subscriptions = [];
|
|
17144
|
-
|
|
17145
|
-
if (!
|
|
17138
|
+
viewContainerRef.createEmbeddedView(titleTemplateRef);
|
|
17139
|
+
if (!columnState) {
|
|
17146
17140
|
throw new Error('The *clrDgHideableColumn directive can only be used inside of a clr-dg-column component.');
|
|
17147
17141
|
}
|
|
17148
17142
|
}
|
|
@@ -17229,7 +17223,7 @@ class ClrIfDetail {
|
|
|
17229
17223
|
this.stateChange = new EventEmitter(null);
|
|
17230
17224
|
this.subscriptions = [];
|
|
17231
17225
|
this.skip = false; // This keeps us from resetting the input and calling the toggle twice
|
|
17232
|
-
|
|
17226
|
+
detailService.enabled = true;
|
|
17233
17227
|
}
|
|
17234
17228
|
set state(model) {
|
|
17235
17229
|
if (!this.skip) {
|
|
@@ -17367,7 +17361,7 @@ class ClrDatagridPagination {
|
|
|
17367
17361
|
this.commonStrings = commonStrings;
|
|
17368
17362
|
this.detailService = detailService;
|
|
17369
17363
|
this.currentChanged = new EventEmitter(false);
|
|
17370
|
-
|
|
17364
|
+
page.activated = true;
|
|
17371
17365
|
}
|
|
17372
17366
|
/**
|
|
17373
17367
|
* Page size
|
|
@@ -17852,10 +17846,10 @@ class ClrDatagridVirtualScrollDirective {
|
|
|
17852
17846
|
this.cdkVirtualForInputs = {
|
|
17853
17847
|
cdkVirtualForTrackBy: index => index,
|
|
17854
17848
|
};
|
|
17855
|
-
|
|
17856
|
-
|
|
17857
|
-
|
|
17858
|
-
this.datagridElementRef =
|
|
17849
|
+
items.smartenUp();
|
|
17850
|
+
datagrid.hasVirtualScroller = true;
|
|
17851
|
+
datagrid.detailService.preventFocusScroll = true;
|
|
17852
|
+
this.datagridElementRef = datagrid.el;
|
|
17859
17853
|
// default
|
|
17860
17854
|
this.cdkVirtualForTemplateCacheSize = 20;
|
|
17861
17855
|
this.mutationChanges.observe(this.datagridElementRef.nativeElement, {
|
|
@@ -18057,7 +18051,6 @@ class DatagridHeaderRenderer {
|
|
|
18057
18051
|
constructor(el, renderer, organizer, domAdapter, columnResizerService, columnsService, columnState) {
|
|
18058
18052
|
this.el = el;
|
|
18059
18053
|
this.renderer = renderer;
|
|
18060
|
-
this.organizer = organizer;
|
|
18061
18054
|
this.domAdapter = domAdapter;
|
|
18062
18055
|
this.columnResizerService = columnResizerService;
|
|
18063
18056
|
this.columnsService = columnsService;
|
|
@@ -18069,7 +18062,7 @@ class DatagridHeaderRenderer {
|
|
|
18069
18062
|
this.widthSet = false;
|
|
18070
18063
|
this.autoSet = false;
|
|
18071
18064
|
this.subscriptions = [];
|
|
18072
|
-
this.subscriptions.push(
|
|
18065
|
+
this.subscriptions.push(organizer.filterRenderSteps(DatagridRenderStep.CLEAR_WIDTHS).subscribe(() => this.clearWidth()));
|
|
18073
18066
|
}
|
|
18074
18067
|
ngOnDestroy() {
|
|
18075
18068
|
this.subscriptions.forEach(sub => sub.unsubscribe());
|
|
@@ -18217,14 +18210,13 @@ const domAdapterFactory = (platformId) => {
|
|
|
18217
18210
|
// Fixes build error
|
|
18218
18211
|
// @dynamic (https://github.com/angular/angular/issues/19698#issuecomment-338340211)
|
|
18219
18212
|
class DatagridMainRenderer {
|
|
18220
|
-
constructor(organizer, items, page,
|
|
18213
|
+
constructor(datagrid, organizer, items, page, el, renderer, detailService, tableSizeService, columnsService, ngZone, keyNavigation) {
|
|
18214
|
+
this.datagrid = datagrid;
|
|
18221
18215
|
this.organizer = organizer;
|
|
18222
18216
|
this.items = items;
|
|
18223
18217
|
this.page = page;
|
|
18224
|
-
this.domAdapter = domAdapter;
|
|
18225
18218
|
this.el = el;
|
|
18226
18219
|
this.renderer = renderer;
|
|
18227
|
-
this.detailService = detailService;
|
|
18228
18220
|
this.tableSizeService = tableSizeService;
|
|
18229
18221
|
this.columnsService = columnsService;
|
|
18230
18222
|
this.ngZone = ngZone;
|
|
@@ -18238,16 +18230,14 @@ class DatagridMainRenderer {
|
|
|
18238
18230
|
* 2) When rows are lazily loaded for the first time
|
|
18239
18231
|
*/
|
|
18240
18232
|
this.columnsSizesStable = false;
|
|
18241
|
-
this.subscriptions.push(this.
|
|
18242
|
-
|
|
18243
|
-
.subscribe(() => this.computeHeadersWidth()));
|
|
18244
|
-
this.subscriptions.push(this.page.sizeChange.subscribe(() => {
|
|
18233
|
+
this.subscriptions.push(organizer.filterRenderSteps(DatagridRenderStep.COMPUTE_COLUMN_WIDTHS).subscribe(() => this.computeHeadersWidth()));
|
|
18234
|
+
this.subscriptions.push(page.sizeChange.subscribe(() => {
|
|
18245
18235
|
if (this._heightSet) {
|
|
18246
18236
|
this.resetDatagridHeight();
|
|
18247
18237
|
}
|
|
18248
18238
|
}));
|
|
18249
|
-
this.subscriptions.push(
|
|
18250
|
-
this.subscriptions.push(
|
|
18239
|
+
this.subscriptions.push(detailService.stateChange.subscribe(state => this.toggleDetailPane(state)));
|
|
18240
|
+
this.subscriptions.push(items.change.subscribe(() => (this.shouldStabilizeColumns = true)));
|
|
18251
18241
|
}
|
|
18252
18242
|
ngOnInit() {
|
|
18253
18243
|
this.columnsService.columnsStateChange.subscribe(change => this.columnStateChanged(change));
|
|
@@ -18267,10 +18257,9 @@ class DatagridMainRenderer {
|
|
|
18267
18257
|
this.tableSizeService.table = this.el;
|
|
18268
18258
|
}
|
|
18269
18259
|
ngAfterViewChecked() {
|
|
18270
|
-
|
|
18271
|
-
|
|
18272
|
-
|
|
18273
|
-
}, 0);
|
|
18260
|
+
const datagridIsVisible = this.checkAndUpdateVisibility();
|
|
18261
|
+
if (this.shouldStabilizeColumns && datagridIsVisible) {
|
|
18262
|
+
this.stabilizeColumns();
|
|
18274
18263
|
}
|
|
18275
18264
|
if (this.shouldComputeHeight()) {
|
|
18276
18265
|
this.ngZone.runOutsideAngular(() => {
|
|
@@ -18421,8 +18410,18 @@ class DatagridMainRenderer {
|
|
|
18421
18410
|
this.columnsSizesStable = true;
|
|
18422
18411
|
}
|
|
18423
18412
|
}
|
|
18413
|
+
checkAndUpdateVisibility() {
|
|
18414
|
+
if (this.el.nativeElement.offsetParent) {
|
|
18415
|
+
this.datagrid.datagrid.nativeElement.style.visibility = 'visible';
|
|
18416
|
+
return true;
|
|
18417
|
+
}
|
|
18418
|
+
else {
|
|
18419
|
+
this.datagrid.datagrid.nativeElement.style.visibility = 'hidden';
|
|
18420
|
+
return false;
|
|
18421
|
+
}
|
|
18422
|
+
}
|
|
18424
18423
|
}
|
|
18425
|
-
DatagridMainRenderer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: DatagridMainRenderer, deps: [{ token:
|
|
18424
|
+
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 });
|
|
18426
18425
|
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 });
|
|
18427
18426
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: DatagridMainRenderer, decorators: [{
|
|
18428
18427
|
type: Directive,
|
|
@@ -18430,7 +18429,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
18430
18429
|
selector: 'clr-datagrid',
|
|
18431
18430
|
providers: [{ provide: DomAdapter, useFactory: domAdapterFactory, deps: [PLATFORM_ID] }],
|
|
18432
18431
|
}]
|
|
18433
|
-
}], ctorParameters: function () { return [{ type:
|
|
18432
|
+
}], 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: [{
|
|
18434
18433
|
type: ContentChildren,
|
|
18435
18434
|
args: [DatagridHeaderRenderer]
|
|
18436
18435
|
}], rows: [{
|
|
@@ -19072,8 +19071,8 @@ class RecursiveChildren {
|
|
|
19072
19071
|
this.featuresService = featuresService;
|
|
19073
19072
|
this.expandService = expandService;
|
|
19074
19073
|
if (expandService) {
|
|
19075
|
-
this.subscription =
|
|
19076
|
-
if (!value && this.parent && !
|
|
19074
|
+
this.subscription = expandService.expandChange.subscribe(value => {
|
|
19075
|
+
if (!value && this.parent && !featuresService.eager && featuresService.recursion) {
|
|
19077
19076
|
// In the case of lazy-loading recursive trees, we clear the children on collapse.
|
|
19078
19077
|
// This is better in case they change between two user interaction, and that way
|
|
19079
19078
|
// the app itself can decide whether to cache them or not.
|
|
@@ -19690,7 +19689,7 @@ class ClrTreeNode {
|
|
|
19690
19689
|
this.typeAheadKeyBuffer = '';
|
|
19691
19690
|
this.typeAheadKeyEvent = new Subject();
|
|
19692
19691
|
this.subscriptions = [];
|
|
19693
|
-
if (
|
|
19692
|
+
if (featuresService.recursion) {
|
|
19694
19693
|
// I'm completely stuck, we have to hack into private properties until either
|
|
19695
19694
|
// https://github.com/angular/angular/issues/14935 or https://github.com/angular/angular/issues/15998
|
|
19696
19695
|
// are fixed
|
|
@@ -19932,7 +19931,7 @@ class ClrTreeNode {
|
|
|
19932
19931
|
}
|
|
19933
19932
|
}
|
|
19934
19933
|
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 });
|
|
19935
|
-
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
|
|
19934
|
+
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: [
|
|
19936
19935
|
trigger('toggleChildrenAnim', [
|
|
19937
19936
|
transition('collapsed => expanded', [style({ height: 0 }), animate(200, style({ height: '*' }))]),
|
|
19938
19937
|
transition('expanded => collapsed', [style({ height: '*' }), animate(200, style({ height: 0 }))]),
|
|
@@ -19952,7 +19951,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
19952
19951
|
], host: {
|
|
19953
19952
|
'[class.clr-tree-node]': 'true',
|
|
19954
19953
|
'[class.disabled]': 'this._model.disabled',
|
|
19955
|
-
}, 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
|
|
19954
|
+
}, 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" }]
|
|
19956
19955
|
}], ctorParameters: function () {
|
|
19957
19956
|
return [{ type: undefined, decorators: [{
|
|
19958
19957
|
type: Inject,
|
|
@@ -20001,18 +20000,21 @@ function trimAndLowerCase(value) {
|
|
|
20001
20000
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
20002
20001
|
*/
|
|
20003
20002
|
class ClrTree {
|
|
20004
|
-
constructor(featuresService, focusManagerService,
|
|
20003
|
+
constructor(featuresService, focusManagerService, renderer, el, ngZone) {
|
|
20005
20004
|
this.featuresService = featuresService;
|
|
20006
20005
|
this.focusManagerService = focusManagerService;
|
|
20006
|
+
this.renderer = renderer;
|
|
20007
|
+
this.el = el;
|
|
20007
20008
|
this.subscriptions = [];
|
|
20008
|
-
|
|
20009
|
-
|
|
20009
|
+
this._isMultiSelectable = false;
|
|
20010
|
+
const subscription = ngZone.runOutsideAngular(() => fromEvent(el.nativeElement, 'focusin').subscribe((event) => {
|
|
20011
|
+
if (event.target === el.nativeElement) {
|
|
20010
20012
|
// After discussing with the team, I've made it so that when the tree receives focus, the first visible node will be focused.
|
|
20011
20013
|
// This will prevent from the page scrolling abruptly to the first selected node if it exist in a deeply nested tree.
|
|
20012
|
-
|
|
20014
|
+
focusManagerService.focusFirstVisibleNode();
|
|
20013
20015
|
// when the first child gets focus,
|
|
20014
20016
|
// tree should no longer have tabindex of 0.
|
|
20015
|
-
renderer.removeAttribute(nativeElement, 'tabindex');
|
|
20017
|
+
renderer.removeAttribute(el.nativeElement, 'tabindex');
|
|
20016
20018
|
}
|
|
20017
20019
|
}));
|
|
20018
20020
|
this.subscriptions.push(subscription);
|
|
@@ -20021,17 +20023,28 @@ class ClrTree {
|
|
|
20021
20023
|
this.featuresService.eager = !value;
|
|
20022
20024
|
}
|
|
20023
20025
|
get isMultiSelectable() {
|
|
20024
|
-
return this.
|
|
20026
|
+
return this._isMultiSelectable;
|
|
20025
20027
|
}
|
|
20026
20028
|
ngAfterContentInit() {
|
|
20027
20029
|
this.setRootNodes();
|
|
20028
20030
|
this.subscriptions.push(this.rootNodes.changes.subscribe(() => {
|
|
20031
|
+
this.setMultiSelectable();
|
|
20029
20032
|
this.setRootNodes();
|
|
20030
20033
|
}));
|
|
20031
20034
|
}
|
|
20032
20035
|
ngOnDestroy() {
|
|
20033
20036
|
this.subscriptions.forEach(sub => sub.unsubscribe());
|
|
20034
20037
|
}
|
|
20038
|
+
setMultiSelectable() {
|
|
20039
|
+
if (this.featuresService.selectable && this.rootNodes.length > 0) {
|
|
20040
|
+
this._isMultiSelectable = true;
|
|
20041
|
+
this.renderer.setAttribute(this.el.nativeElement, 'aria-multiselectable', 'true');
|
|
20042
|
+
}
|
|
20043
|
+
else {
|
|
20044
|
+
this._isMultiSelectable = false;
|
|
20045
|
+
this.renderer.removeAttribute(this.el.nativeElement, 'aria-multiselectable');
|
|
20046
|
+
}
|
|
20047
|
+
}
|
|
20035
20048
|
setRootNodes() {
|
|
20036
20049
|
// if node has no parent, it's a root node
|
|
20037
20050
|
// for recursive tree, this.rootNodes registers also nested children
|
|
@@ -20039,8 +20052,8 @@ class ClrTree {
|
|
|
20039
20052
|
this.focusManagerService.rootNodeModels = this.rootNodes.map(node => node._model).filter(node => !node.parent);
|
|
20040
20053
|
}
|
|
20041
20054
|
}
|
|
20042
|
-
ClrTree.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrTree, deps: [{ token: TreeFeaturesService }, { token: TreeFocusManagerService }, { token: i0.
|
|
20043
|
-
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\""
|
|
20055
|
+
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 });
|
|
20056
|
+
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: `
|
|
20044
20057
|
<ng-content></ng-content>
|
|
20045
20058
|
<clr-recursive-children
|
|
20046
20059
|
*ngIf="featuresService.recursion"
|
|
@@ -20062,10 +20075,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
20062
20075
|
host: {
|
|
20063
20076
|
tabindex: '0',
|
|
20064
20077
|
'[attr.role]': '"tree"',
|
|
20065
|
-
'[attr.aria-multiselectable]': 'isMultiSelectable',
|
|
20066
20078
|
},
|
|
20067
20079
|
}]
|
|
20068
|
-
}], ctorParameters: function () { return [{ type: TreeFeaturesService }, { type: TreeFocusManagerService }, { type: i0.
|
|
20080
|
+
}], ctorParameters: function () { return [{ type: TreeFeaturesService }, { type: TreeFocusManagerService }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { rootNodes: [{
|
|
20069
20081
|
type: ContentChildren,
|
|
20070
20082
|
args: [ClrTreeNode]
|
|
20071
20083
|
}], lazy: [{
|
|
@@ -20152,7 +20164,7 @@ class DropdownFocusHandler {
|
|
|
20152
20164
|
this._unlistenFuncs = [];
|
|
20153
20165
|
this.resetChildren();
|
|
20154
20166
|
this.moveToFirstItemWhenOpen();
|
|
20155
|
-
if (!
|
|
20167
|
+
if (!parent) {
|
|
20156
20168
|
this.handleRootFocus();
|
|
20157
20169
|
}
|
|
20158
20170
|
}
|
|
@@ -20352,11 +20364,10 @@ class ClrDropdown {
|
|
|
20352
20364
|
this.parent = parent;
|
|
20353
20365
|
this.toggleService = toggleService;
|
|
20354
20366
|
this.focusHandler = focusHandler;
|
|
20355
|
-
this.cdr = cdr;
|
|
20356
20367
|
this.isMenuClosable = true;
|
|
20357
20368
|
this.subscriptions = [];
|
|
20358
|
-
this.subscriptions.push(dropdownService.changes.subscribe(value => (
|
|
20359
|
-
this.subscriptions.push(toggleService.openChange.subscribe(() =>
|
|
20369
|
+
this.subscriptions.push(dropdownService.changes.subscribe(value => (toggleService.open = value)));
|
|
20370
|
+
this.subscriptions.push(toggleService.openChange.subscribe(() => cdr.markForCheck()));
|
|
20360
20371
|
}
|
|
20361
20372
|
ngOnDestroy() {
|
|
20362
20373
|
this.subscriptions.forEach(sub => sub.unsubscribe());
|
|
@@ -21995,12 +22006,12 @@ class ClrHeader {
|
|
|
21995
22006
|
this.isNavLevel2OnPage = false;
|
|
21996
22007
|
this.openNavLevel = null;
|
|
21997
22008
|
this.responsiveNavCodes = ResponsiveNavCodes;
|
|
21998
|
-
this._subscription =
|
|
22009
|
+
this._subscription = responsiveNavService.registeredNavs.subscribe({
|
|
21999
22010
|
next: (navLevelList) => {
|
|
22000
22011
|
this.initializeNavTriggers(navLevelList);
|
|
22001
22012
|
},
|
|
22002
22013
|
});
|
|
22003
|
-
this._subscription.add(
|
|
22014
|
+
this._subscription.add(responsiveNavService.navControl
|
|
22004
22015
|
.pipe(filter(({ controlCode }) => controlCode === ResponsiveNavCodes.NAV_CLOSE || controlCode === ResponsiveNavCodes.NAV_CLOSE_ALL))
|
|
22005
22016
|
.subscribe(() => {
|
|
22006
22017
|
this.openNavLevel = null;
|
|
@@ -22624,8 +22635,6 @@ class ClrTabLink {
|
|
|
22624
22635
|
this.ifActiveService = ifActiveService;
|
|
22625
22636
|
this.id = id;
|
|
22626
22637
|
this.el = el;
|
|
22627
|
-
this.cfr = cfr;
|
|
22628
|
-
this.viewContainerRef = viewContainerRef;
|
|
22629
22638
|
this.tabsService = tabsService;
|
|
22630
22639
|
this.tabsId = tabsId;
|
|
22631
22640
|
if (!this.tabLinkId) {
|
|
@@ -22634,9 +22643,9 @@ class ClrTabLink {
|
|
|
22634
22643
|
// Tab links can be rendered in one of two places: in the main area or inside the overflow dropdown menu.
|
|
22635
22644
|
// Here, we create a container so that its template can be used to create embeddedView on the fly.
|
|
22636
22645
|
// See TabsService's renderView() method and how it's used in Tabs class for an example.
|
|
22637
|
-
const factory =
|
|
22638
|
-
this.templateRefContainer =
|
|
22639
|
-
[
|
|
22646
|
+
const factory = cfr.resolveComponentFactory(TemplateRefContainer);
|
|
22647
|
+
this.templateRefContainer = viewContainerRef.createComponent(factory, undefined, undefined, [
|
|
22648
|
+
[el.nativeElement],
|
|
22640
22649
|
]).instance;
|
|
22641
22650
|
}
|
|
22642
22651
|
get inOverflow() {
|
|
@@ -23225,7 +23234,7 @@ class ClrVerticalNav {
|
|
|
23225
23234
|
this._navGroupRegistrationService = _navGroupRegistrationService;
|
|
23226
23235
|
this.commonStrings = commonStrings;
|
|
23227
23236
|
this._collapsedChanged = new EventEmitter(true);
|
|
23228
|
-
this._sub =
|
|
23237
|
+
this._sub = _navService.collapsedChanged.subscribe(value => {
|
|
23229
23238
|
this._collapsedChanged.emit(value);
|
|
23230
23239
|
});
|
|
23231
23240
|
}
|
|
@@ -23313,27 +23322,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
23313
23322
|
const EXPANDED_STATE = 'expanded';
|
|
23314
23323
|
const COLLAPSED_STATE = 'collapsed';
|
|
23315
23324
|
class ClrVerticalNavGroup {
|
|
23316
|
-
constructor(_itemExpand, _navGroupRegistrationService,
|
|
23325
|
+
constructor(_itemExpand, _navGroupRegistrationService, navGroupService, _navService, commonStrings) {
|
|
23317
23326
|
this._itemExpand = _itemExpand;
|
|
23318
23327
|
this._navGroupRegistrationService = _navGroupRegistrationService;
|
|
23319
|
-
this._navGroupService = _navGroupService;
|
|
23320
23328
|
this._navService = _navService;
|
|
23321
23329
|
this.commonStrings = commonStrings;
|
|
23322
23330
|
this.expandedChange = new EventEmitter(true);
|
|
23323
23331
|
this.wasExpanded = false;
|
|
23324
23332
|
this._subscriptions = [];
|
|
23325
23333
|
this._expandAnimationState = COLLAPSED_STATE;
|
|
23326
|
-
|
|
23334
|
+
_navGroupRegistrationService.registerNavGroup();
|
|
23327
23335
|
// FIXME: This subscription handles a corner case
|
|
23328
23336
|
// Vertical Nav collapse requires the animation to run first and then
|
|
23329
23337
|
// remove the nodes from the DOM. If the user directly sets the input
|
|
23330
23338
|
// on the clrIfExpanded directive, we have no chance to run the animation
|
|
23331
23339
|
// and wait for it to complete. This subscription makes sure that the
|
|
23332
23340
|
// animation states are correct for that edge case.
|
|
23333
|
-
this._subscriptions.push(
|
|
23341
|
+
this._subscriptions.push(_itemExpand.expandChange.subscribe(value => {
|
|
23334
23342
|
if (value && this.expandAnimationState === COLLAPSED_STATE) {
|
|
23335
|
-
if (
|
|
23336
|
-
|
|
23343
|
+
if (_navService.collapsed) {
|
|
23344
|
+
_navService.collapsed = false;
|
|
23337
23345
|
}
|
|
23338
23346
|
this.expandAnimationState = EXPANDED_STATE;
|
|
23339
23347
|
}
|
|
@@ -23343,7 +23351,7 @@ class ClrVerticalNavGroup {
|
|
|
23343
23351
|
}));
|
|
23344
23352
|
// 1. If the nav is collapsing, close the open nav group + save its state
|
|
23345
23353
|
// 2. If the nav is expanding, expand the nav group if the previous state was expanded
|
|
23346
|
-
this._subscriptions.push(
|
|
23354
|
+
this._subscriptions.push(_navService.animateOnCollapsed.subscribe((goingToCollapse) => {
|
|
23347
23355
|
if (goingToCollapse && this.expanded) {
|
|
23348
23356
|
this.wasExpanded = true;
|
|
23349
23357
|
this.expandAnimationState = COLLAPSED_STATE;
|
|
@@ -23354,7 +23362,7 @@ class ClrVerticalNavGroup {
|
|
|
23354
23362
|
}
|
|
23355
23363
|
}));
|
|
23356
23364
|
// If a link is clicked, expand the nav group
|
|
23357
|
-
this._subscriptions.push(
|
|
23365
|
+
this._subscriptions.push(navGroupService.expandChange.subscribe((expand) => {
|
|
23358
23366
|
if (expand && !this.expanded) {
|
|
23359
23367
|
this.expandGroup();
|
|
23360
23368
|
}
|
|
@@ -23483,7 +23491,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
23483
23491
|
class ClrVerticalNavIcon {
|
|
23484
23492
|
constructor(_verticalNavIconService) {
|
|
23485
23493
|
this._verticalNavIconService = _verticalNavIconService;
|
|
23486
|
-
|
|
23494
|
+
_verticalNavIconService.registerIcon();
|
|
23487
23495
|
}
|
|
23488
23496
|
ngOnDestroy() {
|
|
23489
23497
|
this._verticalNavIconService.unregisterIcon();
|
|
@@ -23651,9 +23659,10 @@ class ClrModalConfigurationService {
|
|
|
23651
23659
|
}
|
|
23652
23660
|
}
|
|
23653
23661
|
ClrModalConfigurationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrModalConfigurationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
23654
|
-
ClrModalConfigurationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrModalConfigurationService });
|
|
23662
|
+
ClrModalConfigurationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrModalConfigurationService, providedIn: 'root' });
|
|
23655
23663
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrModalConfigurationService, decorators: [{
|
|
23656
|
-
type: Injectable
|
|
23664
|
+
type: Injectable,
|
|
23665
|
+
args: [{ providedIn: 'root' }]
|
|
23657
23666
|
}] });
|
|
23658
23667
|
|
|
23659
23668
|
/*
|
|
@@ -23835,11 +23844,11 @@ class ClrModalBody {
|
|
|
23835
23844
|
this.unlisteners = [];
|
|
23836
23845
|
ngZone.runOutsideAngular(() => {
|
|
23837
23846
|
this.observer = new ResizeObserver(() => this.addOrRemoveTabIndex());
|
|
23838
|
-
this.observer.observe(
|
|
23839
|
-
this.unlisteners.push(
|
|
23847
|
+
this.observer.observe(host.nativeElement);
|
|
23848
|
+
this.unlisteners.push(renderer.listen(host.nativeElement, 'mouseup', () => {
|
|
23840
23849
|
// set the tabindex binding back when click is completed with mouseup
|
|
23841
23850
|
this.addOrRemoveTabIndex();
|
|
23842
|
-
}),
|
|
23851
|
+
}), renderer.listen(host.nativeElement, 'mousedown', () => {
|
|
23843
23852
|
// tabindex = 0 binding should be removed
|
|
23844
23853
|
// so it won't be focused when click starts with mousedown
|
|
23845
23854
|
this.removeTabIndex();
|
|
@@ -23892,14 +23901,13 @@ class ClrModalModule {
|
|
|
23892
23901
|
}
|
|
23893
23902
|
ClrModalModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
23894
23903
|
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] });
|
|
23895
|
-
ClrModalModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrModalModule,
|
|
23904
|
+
ClrModalModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrModalModule, imports: [CommonModule, CdkTrapFocusModule, ClrIconModule, ClrIconModule] });
|
|
23896
23905
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrModalModule, decorators: [{
|
|
23897
23906
|
type: NgModule,
|
|
23898
23907
|
args: [{
|
|
23899
23908
|
imports: [CommonModule, CdkTrapFocusModule, ClrIconModule],
|
|
23900
23909
|
declarations: [CLR_MODAL_DIRECTIVES],
|
|
23901
23910
|
exports: [CLR_MODAL_DIRECTIVES, ClrIconModule],
|
|
23902
|
-
providers: [ClrModalConfigurationService],
|
|
23903
23911
|
}]
|
|
23904
23912
|
}], ctorParameters: function () { return []; } });
|
|
23905
23913
|
|
|
@@ -24057,7 +24065,6 @@ class ClrSignpostContent extends AbstractPopover {
|
|
|
24057
24065
|
constructor(injector, parentHost, commonStrings, signpostIdService, signpostFocusManager, platformId, document) {
|
|
24058
24066
|
super(injector, parentHost);
|
|
24059
24067
|
this.commonStrings = commonStrings;
|
|
24060
|
-
this.signpostIdService = signpostIdService;
|
|
24061
24068
|
this.signpostFocusManager = signpostFocusManager;
|
|
24062
24069
|
this.platformId = platformId;
|
|
24063
24070
|
this.signpostContentId = uniqueIdFactory();
|
|
@@ -24067,7 +24074,7 @@ class ClrSignpostContent extends AbstractPopover {
|
|
|
24067
24074
|
// Defaults
|
|
24068
24075
|
this.position = 'right-middle';
|
|
24069
24076
|
this.closeOnOutsideClick = true;
|
|
24070
|
-
|
|
24077
|
+
signpostIdService.setId(this.signpostContentId);
|
|
24071
24078
|
this.document = document;
|
|
24072
24079
|
}
|
|
24073
24080
|
/*********
|
|
@@ -24456,11 +24463,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
24456
24463
|
class ClrTooltipTrigger {
|
|
24457
24464
|
constructor(toggleService, tooltipIdService, tooltipMouseService) {
|
|
24458
24465
|
this.toggleService = toggleService;
|
|
24459
|
-
this.tooltipIdService = tooltipIdService;
|
|
24460
24466
|
this.tooltipMouseService = tooltipMouseService;
|
|
24461
24467
|
this.subs = [];
|
|
24462
24468
|
// The aria-described by comes from the id of content. It
|
|
24463
|
-
this.subs.push(
|
|
24469
|
+
this.subs.push(tooltipIdService.id.subscribe(tooltipId => (this.ariaDescribedBy = tooltipId)));
|
|
24464
24470
|
}
|
|
24465
24471
|
ngOnDestroy() {
|
|
24466
24472
|
this.subs.forEach(sub => sub.unsubscribe());
|
|
@@ -25574,7 +25580,7 @@ class WizardNavigationService {
|
|
|
25574
25580
|
* @memberof WizardNavigationService
|
|
25575
25581
|
*/
|
|
25576
25582
|
this._cancelWizard = new Subject();
|
|
25577
|
-
this.previousButtonSubscription =
|
|
25583
|
+
this.previousButtonSubscription = buttonService.previousBtnClicked.subscribe(() => {
|
|
25578
25584
|
const currentPage = this.currentPage;
|
|
25579
25585
|
if (this.currentPageIsFirst || currentPage.previousStepDisabled) {
|
|
25580
25586
|
return;
|
|
@@ -25584,21 +25590,21 @@ class WizardNavigationService {
|
|
|
25584
25590
|
this.previous();
|
|
25585
25591
|
}
|
|
25586
25592
|
});
|
|
25587
|
-
this.nextButtonSubscription =
|
|
25593
|
+
this.nextButtonSubscription = buttonService.nextBtnClicked.subscribe(() => {
|
|
25588
25594
|
this.checkAndCommitCurrentPage('next');
|
|
25589
25595
|
});
|
|
25590
|
-
this.dangerButtonSubscription =
|
|
25596
|
+
this.dangerButtonSubscription = buttonService.dangerBtnClicked.subscribe(() => {
|
|
25591
25597
|
this.checkAndCommitCurrentPage('danger');
|
|
25592
25598
|
});
|
|
25593
|
-
this.finishButtonSubscription =
|
|
25599
|
+
this.finishButtonSubscription = buttonService.finishBtnClicked.subscribe(() => {
|
|
25594
25600
|
this.checkAndCommitCurrentPage('finish');
|
|
25595
25601
|
});
|
|
25596
|
-
this.customButtonSubscription =
|
|
25602
|
+
this.customButtonSubscription = buttonService.customBtnClicked.subscribe((type) => {
|
|
25597
25603
|
if (!this.wizardStopNavigation) {
|
|
25598
25604
|
this.currentPage.customButtonClicked.emit(type);
|
|
25599
25605
|
}
|
|
25600
25606
|
});
|
|
25601
|
-
this.cancelButtonSubscription =
|
|
25607
|
+
this.cancelButtonSubscription = buttonService.cancelBtnClicked.subscribe(() => {
|
|
25602
25608
|
if (this.wizardStopNavigation) {
|
|
25603
25609
|
return;
|
|
25604
25610
|
}
|
|
@@ -25609,7 +25615,7 @@ class WizardNavigationService {
|
|
|
25609
25615
|
this.cancel();
|
|
25610
25616
|
}
|
|
25611
25617
|
});
|
|
25612
|
-
this.pagesResetSubscription =
|
|
25618
|
+
this.pagesResetSubscription = pageCollection.pagesReset.subscribe(() => {
|
|
25613
25619
|
this.setFirstPageCurrent();
|
|
25614
25620
|
});
|
|
25615
25621
|
}
|
|
@@ -28123,5 +28129,5 @@ const CLR_MENU_POSITIONS = [
|
|
|
28123
28129
|
* Generated bundle index. Do not edit.
|
|
28124
28130
|
*/
|
|
28125
28131
|
|
|
28126
|
-
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 };
|
|
28132
|
+
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 };
|
|
28127
28133
|
//# sourceMappingURL=clr-angular.mjs.map
|