@clr/angular 17.3.0 → 17.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/accordion/accordion-panel.d.ts +0 -3
- package/accordion/stepper/models/stepper.model.d.ts +3 -0
- package/accordion/stepper/providers/stepper.service.d.ts +2 -0
- package/accordion/stepper/step-button.d.ts +2 -0
- package/accordion/stepper/stepper-panel.d.ts +3 -2
- package/clarity.api.md +64 -35
- package/data/datagrid/built-in/filters/datagrid-numeric-filter.d.ts +5 -1
- package/data/datagrid/datagrid-action-overflow.d.ts +2 -3
- package/data/datagrid/datagrid-column.d.ts +7 -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 +5 -3
- package/data/tree-view/tree.d.ts +5 -1
- package/emphasis/alert/alert.d.ts +1 -1
- package/esm2020/accordion/accordion-panel.mjs +3 -6
- package/esm2020/accordion/stepper/models/stepper.model.mjs +16 -1
- package/esm2020/accordion/stepper/providers/stepper.service.mjs +12 -1
- package/esm2020/accordion/stepper/step-button.mjs +13 -3
- package/esm2020/accordion/stepper/stepper-panel.mjs +5 -7
- package/esm2020/data/datagrid/built-in/filters/datagrid-numeric-filter.mjs +79 -47
- package/esm2020/data/datagrid/datagrid-action-overflow.mjs +8 -9
- package/esm2020/data/datagrid/datagrid-column.mjs +18 -8
- 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 +38 -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/nav/nav-level.mjs +5 -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 +7 -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/esm2020/wizard/wizard-stepnav-item.mjs +23 -9
- package/fesm2015/clr-angular.mjs +358 -249
- package/fesm2015/clr-angular.mjs.map +1 -1
- package/fesm2020/clr-angular.mjs +358 -249
- 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 +14 -0
- package/utils/popover/popover-anchor.d.ts +1 -1
- package/utils/popover/popover-content.d.ts +1 -0
package/fesm2020/clr-angular.mjs
CHANGED
|
@@ -223,19 +223,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
223
223
|
}]
|
|
224
224
|
}] });
|
|
225
225
|
|
|
226
|
-
/*
|
|
227
|
-
* Copyright (c) 2016-2024 Broadcom. All Rights Reserved.
|
|
228
|
-
* The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
|
|
229
|
-
* This software is released under MIT license.
|
|
230
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
231
|
-
*/
|
|
232
|
-
var AccordionStatus;
|
|
233
|
-
(function (AccordionStatus) {
|
|
234
|
-
AccordionStatus["Inactive"] = "inactive";
|
|
235
|
-
AccordionStatus["Error"] = "error";
|
|
236
|
-
AccordionStatus["Complete"] = "complete";
|
|
237
|
-
})(AccordionStatus || (AccordionStatus = {}));
|
|
238
|
-
|
|
239
226
|
/*
|
|
240
227
|
* Copyright (c) 2016-2024 Broadcom. All Rights Reserved.
|
|
241
228
|
* The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
|
|
@@ -328,6 +315,8 @@ const commonStringsDefault = {
|
|
|
328
315
|
datagridFilterDialogAriaLabel: 'Filter dialog',
|
|
329
316
|
columnSeparatorAriaLabel: 'Column resize handle',
|
|
330
317
|
columnSeparatorDescription: 'Use left or right key to resize the column',
|
|
318
|
+
fromLabel: 'From',
|
|
319
|
+
toLabel: 'To',
|
|
331
320
|
// Alert
|
|
332
321
|
alertCloseButtonAriaLabel: 'Close alert',
|
|
333
322
|
alertNextAlertAriaLabel: 'Next alert message, {CURRENT} of {COUNT}',
|
|
@@ -373,6 +362,7 @@ const commonStringsDefault = {
|
|
|
373
362
|
datagridExpandableRowContent: 'Expandable row content',
|
|
374
363
|
datagridExpandableRowsHelperText: `Screen reader table commands may not work for viewing expanded content, please use your screen reader's browse mode to read the content exposed by this button`,
|
|
375
364
|
// Wizard
|
|
365
|
+
wizardStep: 'Step',
|
|
376
366
|
wizardStepSuccess: 'Completed',
|
|
377
367
|
wizardStepError: 'Error',
|
|
378
368
|
wizardStepnavAriaLabel: 'Step navigation',
|
|
@@ -394,6 +384,9 @@ const commonStringsDefault = {
|
|
|
394
384
|
fileCount: '{COUNT} files',
|
|
395
385
|
clearFile: 'Clear {FILE}',
|
|
396
386
|
clearFiles: 'Clear {COUNT} files',
|
|
387
|
+
// Tree
|
|
388
|
+
selectedTreeNode: 'selected',
|
|
389
|
+
unselectedTreeNode: 'unselected',
|
|
397
390
|
};
|
|
398
391
|
|
|
399
392
|
/*
|
|
@@ -441,6 +434,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
441
434
|
}]
|
|
442
435
|
}] });
|
|
443
436
|
|
|
437
|
+
/*
|
|
438
|
+
* Copyright (c) 2016-2024 Broadcom. All Rights Reserved.
|
|
439
|
+
* The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
|
|
440
|
+
* This software is released under MIT license.
|
|
441
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
442
|
+
*/
|
|
443
|
+
var AccordionStatus;
|
|
444
|
+
(function (AccordionStatus) {
|
|
445
|
+
AccordionStatus["Inactive"] = "inactive";
|
|
446
|
+
AccordionStatus["Error"] = "error";
|
|
447
|
+
AccordionStatus["Complete"] = "complete";
|
|
448
|
+
})(AccordionStatus || (AccordionStatus = {}));
|
|
449
|
+
|
|
444
450
|
/*
|
|
445
451
|
* Copyright (c) 2016-2024 Broadcom. All Rights Reserved.
|
|
446
452
|
* The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
|
|
@@ -570,8 +576,6 @@ class ClrAccordionPanel {
|
|
|
570
576
|
this.disabled = false;
|
|
571
577
|
this.panelOpen = false;
|
|
572
578
|
this.panelOpenChange = new EventEmitter();
|
|
573
|
-
this.AccordionStatus = AccordionStatus;
|
|
574
|
-
this.isAccordion = true;
|
|
575
579
|
this._id = uniqueIdFactory();
|
|
576
580
|
}
|
|
577
581
|
get id() {
|
|
@@ -647,10 +651,10 @@ class ClrAccordionPanel {
|
|
|
647
651
|
}
|
|
648
652
|
}
|
|
649
653
|
ClrAccordionPanel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrAccordionPanel, deps: [{ token: ClrCommonStringsService }, { token: AccordionService }, { token: IfExpandService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
650
|
-
ClrAccordionPanel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrAccordionPanel, selector: "clr-accordion-panel", inputs: { disabled: ["clrAccordionPanelDisabled", "disabled"], panelOpen: ["clrAccordionPanelOpen", "panelOpen"] }, outputs: { panelOpenChange: "clrAccordionPanelOpenChange" }, host: { properties: { "class.clr-accordion-panel": "true", "class.clr-accordion-panel-disabled": "this.disabled" } }, providers: [IfExpandService], queries: [{ propertyName: "accordionDescription", predicate: ClrAccordionDescription }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"panel | async; let panel\">\n <div [ngClass]=\"getPanelStateClasses(panel)\">\n <div class=\"clr-accordion-header\">\n <button\n type=\"button\"\n class=\"clr-accordion-header-button\"\n (click)=\"togglePanel()\"\n [id]=\"getAccordionHeaderId(panel.templateId)\"\n [disabled]=\"
|
|
654
|
+
ClrAccordionPanel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrAccordionPanel, selector: "clr-accordion-panel", inputs: { disabled: ["clrAccordionPanelDisabled", "disabled"], panelOpen: ["clrAccordionPanelOpen", "panelOpen"] }, outputs: { panelOpenChange: "clrAccordionPanelOpenChange" }, host: { properties: { "class.clr-accordion-panel": "true", "class.clr-accordion-panel-disabled": "this.disabled" } }, providers: [IfExpandService], queries: [{ propertyName: "accordionDescription", predicate: ClrAccordionDescription }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"panel | async; let panel\">\n <div [ngClass]=\"getPanelStateClasses(panel)\">\n <div class=\"clr-accordion-header\">\n <button\n type=\"button\"\n class=\"clr-accordion-header-button\"\n (click)=\"togglePanel()\"\n [id]=\"getAccordionHeaderId(panel.templateId)\"\n [disabled]=\"panel.disabled\"\n [attr.aria-controls]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-expanded]=\"panel.open\"\n [class.clr-accordion-header-has-description]=\"(accordionDescription.changes | async)?.length || accordionDescription.length\"\n #headerButton\n >\n <span class=\"clr-accordion-status\">\n <cds-icon shape=\"angle\" direction=\"right\" class=\"clr-accordion-angle\"></cds-icon>\n </span>\n <ng-content select=\"clr-accordion-title, clr-step-title\"></ng-content>\n <ng-content select=\"clr-accordion-description, clr-step-description\"></ng-content>\n </button>\n </div>\n <div\n @skipInitialRender\n role=\"region\"\n class=\"clr-accordion-content-region\"\n [id]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-hidden]=\"!panel.open\"\n [attr.aria-labelledby]=\"getAccordionHeaderId(panel.templateId)\"\n >\n <div\n *ngIf=\"panel.open\"\n @toggle\n (@toggle.done)=\"collapsePanelOnAnimationDone(panel)\"\n class=\"clr-accordion-content\"\n >\n <div class=\"clr-accordion-inner-content\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n </div>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: CdsIconCustomTag, selector: "cds-icon" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }], animations: panelAnimation, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
651
655
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrAccordionPanel, decorators: [{
|
|
652
656
|
type: Component,
|
|
653
|
-
args: [{ selector: 'clr-accordion-panel', host: { '[class.clr-accordion-panel]': 'true' }, changeDetection: ChangeDetectionStrategy.OnPush, animations: panelAnimation, providers: [IfExpandService], template: "<ng-container *ngIf=\"panel | async; let panel\">\n <div [ngClass]=\"getPanelStateClasses(panel)\">\n <div class=\"clr-accordion-header\">\n <button\n type=\"button\"\n class=\"clr-accordion-header-button\"\n (click)=\"togglePanel()\"\n [id]=\"getAccordionHeaderId(panel.templateId)\"\n [disabled]=\"
|
|
657
|
+
args: [{ selector: 'clr-accordion-panel', host: { '[class.clr-accordion-panel]': 'true' }, changeDetection: ChangeDetectionStrategy.OnPush, animations: panelAnimation, providers: [IfExpandService], template: "<ng-container *ngIf=\"panel | async; let panel\">\n <div [ngClass]=\"getPanelStateClasses(panel)\">\n <div class=\"clr-accordion-header\">\n <button\n type=\"button\"\n class=\"clr-accordion-header-button\"\n (click)=\"togglePanel()\"\n [id]=\"getAccordionHeaderId(panel.templateId)\"\n [disabled]=\"panel.disabled\"\n [attr.aria-controls]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-expanded]=\"panel.open\"\n [class.clr-accordion-header-has-description]=\"(accordionDescription.changes | async)?.length || accordionDescription.length\"\n #headerButton\n >\n <span class=\"clr-accordion-status\">\n <cds-icon shape=\"angle\" direction=\"right\" class=\"clr-accordion-angle\"></cds-icon>\n </span>\n <ng-content select=\"clr-accordion-title, clr-step-title\"></ng-content>\n <ng-content select=\"clr-accordion-description, clr-step-description\"></ng-content>\n </button>\n </div>\n <div\n @skipInitialRender\n role=\"region\"\n class=\"clr-accordion-content-region\"\n [id]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-hidden]=\"!panel.open\"\n [attr.aria-labelledby]=\"getAccordionHeaderId(panel.templateId)\"\n >\n <div\n *ngIf=\"panel.open\"\n @toggle\n (@toggle.done)=\"collapsePanelOnAnimationDone(panel)\"\n class=\"clr-accordion-content\"\n >\n <div class=\"clr-accordion-inner-content\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n </div>\n</ng-container>\n" }]
|
|
654
658
|
}], ctorParameters: function () { return [{ type: ClrCommonStringsService }, { type: AccordionService }, { type: IfExpandService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { disabled: [{
|
|
655
659
|
type: Input,
|
|
656
660
|
args: ['clrAccordionPanelDisabled']
|
|
@@ -968,6 +972,9 @@ class StepperModel extends AccordionModel {
|
|
|
968
972
|
this._panels[panelId].open = !this._panels[panelId].open;
|
|
969
973
|
}
|
|
970
974
|
}
|
|
975
|
+
navigateToPreviousPanel(currentPanelId) {
|
|
976
|
+
this.openPreviousPanel(this._panels[currentPanelId].id);
|
|
977
|
+
}
|
|
971
978
|
navigateToNextPanel(currentPanelId, currentPanelValid = true) {
|
|
972
979
|
if (currentPanelValid) {
|
|
973
980
|
this.completePanel(currentPanelId);
|
|
@@ -1011,6 +1018,9 @@ class StepperModel extends AccordionModel {
|
|
|
1011
1018
|
getNextPanel(currentPanelId) {
|
|
1012
1019
|
return this.panels.find(s => s.index === this._panels[currentPanelId].index + 1);
|
|
1013
1020
|
}
|
|
1021
|
+
getPreviousPanel(currentPanelId) {
|
|
1022
|
+
return this.panels.find(s => s.index === this._panels[currentPanelId].index - 1);
|
|
1023
|
+
}
|
|
1014
1024
|
resetAllFuturePanels(panelId) {
|
|
1015
1025
|
this.panels.filter(panel => panel.index >= this._panels[panelId].index).forEach(panel => this.resetPanel(panel.id));
|
|
1016
1026
|
}
|
|
@@ -1049,6 +1059,15 @@ class StepperModel extends AccordionModel {
|
|
|
1049
1059
|
this._panels[nextPanel.id].disabled = true;
|
|
1050
1060
|
}
|
|
1051
1061
|
}
|
|
1062
|
+
openPreviousPanel(currentPanelId) {
|
|
1063
|
+
const prevPanel = this.getPreviousPanel(currentPanelId);
|
|
1064
|
+
if (prevPanel) {
|
|
1065
|
+
this._panels[currentPanelId].open = false;
|
|
1066
|
+
this._panels[currentPanelId].disabled = false;
|
|
1067
|
+
this._panels[prevPanel.id].open = true;
|
|
1068
|
+
this._panels[prevPanel.id].disabled = true;
|
|
1069
|
+
}
|
|
1070
|
+
}
|
|
1052
1071
|
setPanelError(panelId) {
|
|
1053
1072
|
this.resetAllFuturePanels(panelId);
|
|
1054
1073
|
this._panels[panelId].open = true;
|
|
@@ -1095,6 +1114,11 @@ class StepperService extends AccordionService {
|
|
|
1095
1114
|
this.accordion.setPanelsWithErrors(ids);
|
|
1096
1115
|
this.emitUpdatedPanels();
|
|
1097
1116
|
}
|
|
1117
|
+
navigateToPreviousPanel(currentPanelId) {
|
|
1118
|
+
this.accordion.navigateToPreviousPanel(currentPanelId);
|
|
1119
|
+
this.updatePreviousStep(currentPanelId);
|
|
1120
|
+
this.emitUpdatedPanels();
|
|
1121
|
+
}
|
|
1098
1122
|
navigateToNextPanel(currentPanelId, currentPanelValid = true) {
|
|
1099
1123
|
this.accordion.navigateToNextPanel(currentPanelId, currentPanelValid);
|
|
1100
1124
|
this.updateNextStep(currentPanelId, currentPanelValid);
|
|
@@ -1113,6 +1137,12 @@ class StepperService extends AccordionService {
|
|
|
1113
1137
|
this._activeStepChanges.next(currentPanelId);
|
|
1114
1138
|
}
|
|
1115
1139
|
}
|
|
1140
|
+
updatePreviousStep(currentPanelId) {
|
|
1141
|
+
const prevPanel = this.accordion.getPreviousPanel(currentPanelId);
|
|
1142
|
+
if (prevPanel) {
|
|
1143
|
+
this._activeStepChanges.next(prevPanel.id);
|
|
1144
|
+
}
|
|
1145
|
+
}
|
|
1116
1146
|
getAllCompletedPanelChanges() {
|
|
1117
1147
|
return this._panelsChanges.pipe(map(() => this.accordion.allPanelsCompleted), distinctUntilChanged());
|
|
1118
1148
|
}
|
|
@@ -1137,7 +1167,7 @@ class ClrStepperPanel extends ClrAccordionPanel {
|
|
|
1137
1167
|
this.formGroupName = formGroupName;
|
|
1138
1168
|
this.ngModelGroup = ngModelGroup;
|
|
1139
1169
|
this.stepperService = stepperService;
|
|
1140
|
-
this.
|
|
1170
|
+
this.AccordionStatus = AccordionStatus;
|
|
1141
1171
|
this.subscriptions = [];
|
|
1142
1172
|
}
|
|
1143
1173
|
get id() {
|
|
@@ -1178,9 +1208,7 @@ class ClrStepperPanel extends ClrAccordionPanel {
|
|
|
1178
1208
|
this.subscriptions.push(this.stepperService.activeStep
|
|
1179
1209
|
.pipe(filter(panelId => isPlatformBrowser(this.platformId) && panelId === this.id))
|
|
1180
1210
|
.subscribe(() => {
|
|
1181
|
-
|
|
1182
|
-
//before focusing on the next stepper panel header
|
|
1183
|
-
setTimeout(() => this.headerButton.nativeElement.focus(), 1500);
|
|
1211
|
+
this.headerButton.nativeElement.focus();
|
|
1184
1212
|
}));
|
|
1185
1213
|
}
|
|
1186
1214
|
triggerAllFormControlValidationIfError(panel) {
|
|
@@ -1190,10 +1218,10 @@ class ClrStepperPanel extends ClrAccordionPanel {
|
|
|
1190
1218
|
}
|
|
1191
1219
|
}
|
|
1192
1220
|
ClrStepperPanel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrStepperPanel, deps: [{ token: PLATFORM_ID }, { token: ClrCommonStringsService }, { token: i1.FormGroupName, optional: true }, { token: i1.NgModelGroup, optional: true }, { token: StepperService }, { token: IfExpandService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
1193
|
-
ClrStepperPanel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrStepperPanel, selector: "clr-stepper-panel", host: { properties: { "class.clr-
|
|
1221
|
+
ClrStepperPanel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrStepperPanel, selector: "clr-stepper-panel", host: { properties: { "class.clr-stepper-panel": "true" } }, providers: [IfExpandService], viewQueries: [{ propertyName: "headerButton", first: true, predicate: ["headerButton"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"panel | async; let panel\">\n <div [ngClass]=\"getPanelStateClasses(panel)\">\n <div class=\"clr-accordion-header clr-stepper-header\">\n <button\n type=\"button\"\n class=\"clr-accordion-header-button\"\n (click)=\"togglePanel()\"\n [id]=\"getAccordionHeaderId(panel.templateId)\"\n [attr.aria-disabled]=\"panel.disabled\"\n [attr.aria-controls]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-expanded]=\"panel.open\"\n [class.clr-accordion-header-has-description]=\"(accordionDescription.changes | async)?.length || accordionDescription.length\"\n #headerButton\n >\n <span class=\"clr-step-status\">\n <cds-icon shape=\"angle\" direction=\"right\" class=\"clr-accordion-angle clr-step-angle\"></cds-icon>\n <cds-icon\n status=\"danger\"\n *ngIf=\"panel.status === AccordionStatus.Error\"\n shape=\"exclamation-circle\"\n class=\"clr-step-error-icon\"\n ></cds-icon>\n <cds-icon\n status=\"success\"\n *ngIf=\"panel.status === AccordionStatus.Complete\"\n shape=\"check-circle\"\n class=\"clr-step-complete-icon\"\n ></cds-icon>\n </span>\n <span class=\"clr-step-title-wrapper\">\n <span class=\"clr-step-number\">{{panelNumber}}.</span>\n <ng-content select=\"clr-step-title\"></ng-content>\n </span>\n <ng-content select=\"clr-step-description\"></ng-content>\n </button>\n <div class=\"clr-sr-only\" role=\"status\">\n <ng-container *ngIf=\"panel.status === AccordionStatus.Error\"> {{ stepErrorText(panelNumber)}} </ng-container>\n <ng-container *ngIf=\"panel.status === AccordionStatus.Complete\">\n {{ stepCompleteText(panelNumber)}}\n </ng-container>\n </div>\n </div>\n <div\n @skipInitialRender\n role=\"region\"\n class=\"clr-accordion-content-region\"\n [id]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-hidden]=\"!panel.open\"\n [attr.aria-labelledby]=\"getAccordionHeaderId(panel.templateId)\"\n >\n <div\n *ngIf=\"panel.open\"\n @toggle\n (@toggle.done)=\"collapsePanelOnAnimationDone(panel)\"\n class=\"clr-accordion-content\"\n >\n <div class=\"clr-accordion-inner-content\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n </div>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: CdsIconCustomTag, selector: "cds-icon" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }], animations: stepAnimation, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1194
1222
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrStepperPanel, decorators: [{
|
|
1195
1223
|
type: Component,
|
|
1196
|
-
args: [{ selector: 'clr-stepper-panel', host: { '[class.clr-
|
|
1224
|
+
args: [{ selector: 'clr-stepper-panel', host: { '[class.clr-stepper-panel]': 'true' }, changeDetection: ChangeDetectionStrategy.OnPush, animations: stepAnimation, providers: [IfExpandService], template: "<ng-container *ngIf=\"panel | async; let panel\">\n <div [ngClass]=\"getPanelStateClasses(panel)\">\n <div class=\"clr-accordion-header clr-stepper-header\">\n <button\n type=\"button\"\n class=\"clr-accordion-header-button\"\n (click)=\"togglePanel()\"\n [id]=\"getAccordionHeaderId(panel.templateId)\"\n [attr.aria-disabled]=\"panel.disabled\"\n [attr.aria-controls]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-expanded]=\"panel.open\"\n [class.clr-accordion-header-has-description]=\"(accordionDescription.changes | async)?.length || accordionDescription.length\"\n #headerButton\n >\n <span class=\"clr-step-status\">\n <cds-icon shape=\"angle\" direction=\"right\" class=\"clr-accordion-angle clr-step-angle\"></cds-icon>\n <cds-icon\n status=\"danger\"\n *ngIf=\"panel.status === AccordionStatus.Error\"\n shape=\"exclamation-circle\"\n class=\"clr-step-error-icon\"\n ></cds-icon>\n <cds-icon\n status=\"success\"\n *ngIf=\"panel.status === AccordionStatus.Complete\"\n shape=\"check-circle\"\n class=\"clr-step-complete-icon\"\n ></cds-icon>\n </span>\n <span class=\"clr-step-title-wrapper\">\n <span class=\"clr-step-number\">{{panelNumber}}.</span>\n <ng-content select=\"clr-step-title\"></ng-content>\n </span>\n <ng-content select=\"clr-step-description\"></ng-content>\n </button>\n <div class=\"clr-sr-only\" role=\"status\">\n <ng-container *ngIf=\"panel.status === AccordionStatus.Error\"> {{ stepErrorText(panelNumber)}} </ng-container>\n <ng-container *ngIf=\"panel.status === AccordionStatus.Complete\">\n {{ stepCompleteText(panelNumber)}}\n </ng-container>\n </div>\n </div>\n <div\n @skipInitialRender\n role=\"region\"\n class=\"clr-accordion-content-region\"\n [id]=\"getAccordionContentId(panel.templateId)\"\n [attr.aria-hidden]=\"!panel.open\"\n [attr.aria-labelledby]=\"getAccordionHeaderId(panel.templateId)\"\n >\n <div\n *ngIf=\"panel.open\"\n @toggle\n (@toggle.done)=\"collapsePanelOnAnimationDone(panel)\"\n class=\"clr-accordion-content\"\n >\n <div class=\"clr-accordion-inner-content\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n </div>\n</ng-container>\n" }]
|
|
1197
1225
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
1198
1226
|
type: Inject,
|
|
1199
1227
|
args: [PLATFORM_ID]
|
|
@@ -1215,6 +1243,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
1215
1243
|
var ClrStepButtonType;
|
|
1216
1244
|
(function (ClrStepButtonType) {
|
|
1217
1245
|
ClrStepButtonType["Next"] = "next";
|
|
1246
|
+
ClrStepButtonType["Previous"] = "previous";
|
|
1218
1247
|
ClrStepButtonType["Submit"] = "submit";
|
|
1219
1248
|
})(ClrStepButtonType || (ClrStepButtonType = {}));
|
|
1220
1249
|
class ClrStepButton {
|
|
@@ -1223,16 +1252,22 @@ class ClrStepButton {
|
|
|
1223
1252
|
this.stepperService = stepperService;
|
|
1224
1253
|
this.type = ClrStepButtonType.Next;
|
|
1225
1254
|
this.submitButton = false;
|
|
1255
|
+
this.previousButton = false;
|
|
1226
1256
|
}
|
|
1227
1257
|
ngOnInit() {
|
|
1228
1258
|
this.submitButton = this.type === ClrStepButtonType.Submit;
|
|
1259
|
+
this.previousButton = this.type === ClrStepButtonType.Previous;
|
|
1229
1260
|
}
|
|
1230
1261
|
navigateToNextPanel() {
|
|
1262
|
+
if (this.previousButton) {
|
|
1263
|
+
this.stepperService.navigateToPreviousPanel(this.clrStep.id);
|
|
1264
|
+
return;
|
|
1265
|
+
}
|
|
1231
1266
|
this.stepperService.navigateToNextPanel(this.clrStep.id, this.clrStep.formGroup.valid);
|
|
1232
1267
|
}
|
|
1233
1268
|
}
|
|
1234
1269
|
ClrStepButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrStepButton, deps: [{ token: ClrStepperPanel }, { token: StepperService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
1235
|
-
ClrStepButton.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.2", type: ClrStepButton, selector: "[clrStepButton]", inputs: { type: ["clrStepButton", "type"] }, host: { listeners: { "click": "navigateToNextPanel()" }, properties: { "class.clr-step-button": "true", "class.btn": "true", "type": "'button'", "class.btn-
|
|
1270
|
+
ClrStepButton.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.2", type: ClrStepButton, selector: "[clrStepButton]", inputs: { type: ["clrStepButton", "type"] }, host: { listeners: { "click": "navigateToNextPanel()" }, properties: { "class.clr-step-button": "true", "class.btn": "true", "type": "'button'", "class.btn-success": "this.submitButton", "class.btn-link": "this.previousButton" } }, ngImport: i0 });
|
|
1236
1271
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrStepButton, decorators: [{
|
|
1237
1272
|
type: Directive,
|
|
1238
1273
|
args: [{
|
|
@@ -1248,7 +1283,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
1248
1283
|
args: ['clrStepButton']
|
|
1249
1284
|
}], submitButton: [{
|
|
1250
1285
|
type: HostBinding,
|
|
1251
|
-
args: ['class.btn-
|
|
1286
|
+
args: ['class.btn-success']
|
|
1287
|
+
}], previousButton: [{
|
|
1288
|
+
type: HostBinding,
|
|
1289
|
+
args: ['class.btn-link']
|
|
1252
1290
|
}], navigateToNextPanel: [{
|
|
1253
1291
|
type: HostListener,
|
|
1254
1292
|
args: ['click']
|
|
@@ -2229,6 +2267,7 @@ class ClrPopoverContent {
|
|
|
2229
2267
|
this.subscriptions = [];
|
|
2230
2268
|
this.removeClickListenerFn = null;
|
|
2231
2269
|
this.shouldRealign = false;
|
|
2270
|
+
this.previousContentHeight = null;
|
|
2232
2271
|
// Check-collector pattern:
|
|
2233
2272
|
// In order to get accurate content height/width values, we cannot calculate alignment offsets until
|
|
2234
2273
|
// after the projected content has stabilized.
|
|
@@ -2250,9 +2289,14 @@ class ClrPopoverContent {
|
|
|
2250
2289
|
this.smartEventsService.scrollToClose = !!scrollToClose;
|
|
2251
2290
|
}
|
|
2252
2291
|
ngAfterContentChecked() {
|
|
2253
|
-
if (this.smartOpenService.open && this.view
|
|
2254
|
-
|
|
2255
|
-
this.
|
|
2292
|
+
if (this.smartOpenService.open && this.view) {
|
|
2293
|
+
const rootNodeOffsetHeight = this.view.rootNodes[0].offsetHeight;
|
|
2294
|
+
if (this.shouldRealign ||
|
|
2295
|
+
(this.previousContentHeight !== null && this.previousContentHeight !== rootNodeOffsetHeight)) {
|
|
2296
|
+
// Channel content-check event through the check-collector
|
|
2297
|
+
this.previousContentHeight = rootNodeOffsetHeight;
|
|
2298
|
+
this.checkCollector.emit();
|
|
2299
|
+
}
|
|
2256
2300
|
}
|
|
2257
2301
|
}
|
|
2258
2302
|
ngAfterViewInit() {
|
|
@@ -2368,7 +2412,7 @@ class ClrPopoverOpenCloseButton {
|
|
|
2368
2412
|
this.smartOpenService = smartOpenService;
|
|
2369
2413
|
this.openCloseChange = new EventEmitter();
|
|
2370
2414
|
this.subscriptions = [];
|
|
2371
|
-
this.subscriptions.push(
|
|
2415
|
+
this.subscriptions.push(smartOpenService.openChange.subscribe(change => {
|
|
2372
2416
|
this.openCloseChange.next(change);
|
|
2373
2417
|
}));
|
|
2374
2418
|
}
|
|
@@ -3321,7 +3365,7 @@ class ClrIfActive {
|
|
|
3321
3365
|
this.activeChange = new EventEmitter(false);
|
|
3322
3366
|
this.wasActive = false;
|
|
3323
3367
|
this.checkAndUpdateView(ifActiveService.current);
|
|
3324
|
-
this.subscription =
|
|
3368
|
+
this.subscription = ifActiveService.currentChange.subscribe(newCurrentId => {
|
|
3325
3369
|
this.checkAndUpdateView(newCurrentId);
|
|
3326
3370
|
});
|
|
3327
3371
|
}
|
|
@@ -3411,7 +3455,7 @@ class ClrIfOpen {
|
|
|
3411
3455
|
* used with de-structured / de-sugared syntax.
|
|
3412
3456
|
*/
|
|
3413
3457
|
this.openChange = new EventEmitter(false);
|
|
3414
|
-
this.subscription =
|
|
3458
|
+
this.subscription = toggleService.openChange.subscribe(change => {
|
|
3415
3459
|
this.updateView(change);
|
|
3416
3460
|
this.openChange.emit(change);
|
|
3417
3461
|
});
|
|
@@ -3481,7 +3525,7 @@ class ClrIfExpanded {
|
|
|
3481
3525
|
this._subscriptions = [];
|
|
3482
3526
|
this._subscriptions.push(expand.expandChange.subscribe(() => {
|
|
3483
3527
|
this.updateView();
|
|
3484
|
-
this.expandedChange.emit(
|
|
3528
|
+
this.expandedChange.emit(expand.expanded);
|
|
3485
3529
|
}));
|
|
3486
3530
|
}
|
|
3487
3531
|
get expanded() {
|
|
@@ -3638,7 +3682,7 @@ class ClrFocusOnViewInit {
|
|
|
3638
3682
|
this.renderer = renderer;
|
|
3639
3683
|
this.directFocus = true; // true if the element gets focused without need to set tabindex;
|
|
3640
3684
|
this.destroy$ = new Subject();
|
|
3641
|
-
this._isEnabled =
|
|
3685
|
+
this._isEnabled = focusOnViewInit;
|
|
3642
3686
|
// Angular compiler doesn't understand the type Document
|
|
3643
3687
|
// when working out the metadata for injectable parameters,
|
|
3644
3688
|
// even though it understands the injection token DOCUMENT
|
|
@@ -3649,8 +3693,8 @@ class ClrFocusOnViewInit {
|
|
|
3649
3693
|
.subscribe(() => {
|
|
3650
3694
|
if (!this.directFocus) {
|
|
3651
3695
|
// manually set attributes and styles should be removed
|
|
3652
|
-
|
|
3653
|
-
|
|
3696
|
+
renderer.removeAttribute(el.nativeElement, 'tabindex');
|
|
3697
|
+
renderer.setStyle(el.nativeElement, 'outline', null);
|
|
3654
3698
|
}
|
|
3655
3699
|
}));
|
|
3656
3700
|
}
|
|
@@ -4500,12 +4544,11 @@ var CONTROL_STATE;
|
|
|
4500
4544
|
})(CONTROL_STATE || (CONTROL_STATE = {}));
|
|
4501
4545
|
class IfControlStateService {
|
|
4502
4546
|
constructor(ngControlService) {
|
|
4503
|
-
this.ngControlService = ngControlService;
|
|
4504
4547
|
this.subscriptions = [];
|
|
4505
4548
|
// Implement our own status changes observable, since Angular controls don't
|
|
4506
4549
|
this._statusChanges = new BehaviorSubject(CONTROL_STATE.NONE);
|
|
4507
4550
|
// Wait for the control to be available
|
|
4508
|
-
this.subscriptions.push(
|
|
4551
|
+
this.subscriptions.push(ngControlService.controlChanges.subscribe(control => {
|
|
4509
4552
|
if (control) {
|
|
4510
4553
|
this.control = control;
|
|
4511
4554
|
// Subscribe to the status change events, only after touched
|
|
@@ -4755,14 +4798,14 @@ class ClrAbstractContainer {
|
|
|
4755
4798
|
this.ngControlService = ngControlService;
|
|
4756
4799
|
this._dynamic = false;
|
|
4757
4800
|
this.subscriptions = [];
|
|
4758
|
-
this.subscriptions.push(
|
|
4801
|
+
this.subscriptions.push(ifControlStateService.statusChanges.subscribe((state) => {
|
|
4759
4802
|
this.state = state;
|
|
4760
4803
|
// Make sure everything is updated before dispatching the values for helpers
|
|
4761
4804
|
setTimeout(() => {
|
|
4762
4805
|
this.updateHelpers();
|
|
4763
4806
|
});
|
|
4764
4807
|
}));
|
|
4765
|
-
this.subscriptions.push(
|
|
4808
|
+
this.subscriptions.push(ngControlService.controlChanges.subscribe(control => {
|
|
4766
4809
|
this.control = control;
|
|
4767
4810
|
}));
|
|
4768
4811
|
}
|
|
@@ -5015,10 +5058,10 @@ class WrappedFormControl {
|
|
|
5015
5058
|
this.vcr = vcr;
|
|
5016
5059
|
this.wrapperType = wrapperType;
|
|
5017
5060
|
this.ngControl = ngControl;
|
|
5018
|
-
this.index = 0;
|
|
5019
|
-
this.subscriptions = [];
|
|
5020
5061
|
this.renderer = renderer;
|
|
5021
5062
|
this.el = el;
|
|
5063
|
+
this.index = 0;
|
|
5064
|
+
this.subscriptions = [];
|
|
5022
5065
|
if (injector) {
|
|
5023
5066
|
this.ngControlService = injector.get(NgControlService, null);
|
|
5024
5067
|
this.ifControlStateService = injector.get(IfControlStateService, null);
|
|
@@ -5239,12 +5282,12 @@ class AbstractIfState {
|
|
|
5239
5282
|
this.subscriptions = [];
|
|
5240
5283
|
this.displayedContent = false;
|
|
5241
5284
|
if (ngControlService) {
|
|
5242
|
-
this.subscriptions.push(
|
|
5285
|
+
this.subscriptions.push(ngControlService.controlChanges.subscribe(control => {
|
|
5243
5286
|
this.control = control;
|
|
5244
5287
|
}));
|
|
5245
5288
|
}
|
|
5246
5289
|
if (ifControlStateService) {
|
|
5247
|
-
this.subscriptions.push(
|
|
5290
|
+
this.subscriptions.push(ifControlStateService.statusChanges.subscribe((state) => {
|
|
5248
5291
|
this.handleState(state);
|
|
5249
5292
|
}));
|
|
5250
5293
|
}
|
|
@@ -6801,7 +6844,7 @@ class ClrOption {
|
|
|
6801
6844
|
this.optionSelectionService = optionSelectionService;
|
|
6802
6845
|
// A proxy with only the necessary data to be used for a11y and the focus handler service.
|
|
6803
6846
|
this.optionProxy = new OptionData(null, null);
|
|
6804
|
-
this.optionProxy.el =
|
|
6847
|
+
this.optionProxy.el = elRef.nativeElement;
|
|
6805
6848
|
}
|
|
6806
6849
|
get optionId() {
|
|
6807
6850
|
return this._id;
|
|
@@ -7065,7 +7108,7 @@ class ClrCombobox extends WrappedFormControl {
|
|
|
7065
7108
|
control.valueAccessor = this;
|
|
7066
7109
|
}
|
|
7067
7110
|
// default to SingleSelectComboboxModel, in case the optional input [ClrMulti] isn't used
|
|
7068
|
-
|
|
7111
|
+
optionSelectionService.selectionModel = new SingleSelectComboboxModel();
|
|
7069
7112
|
this.updateControlValue();
|
|
7070
7113
|
}
|
|
7071
7114
|
get multiSelect() {
|
|
@@ -7361,11 +7404,10 @@ class ClrOptionItems {
|
|
|
7361
7404
|
this.differs = differs;
|
|
7362
7405
|
this.optionService = optionService;
|
|
7363
7406
|
this.positionService = positionService;
|
|
7364
|
-
this.vcr = vcr;
|
|
7365
7407
|
this.subscriptions = [];
|
|
7366
7408
|
this.filter = '';
|
|
7367
7409
|
this.differ = null;
|
|
7368
|
-
this.iterableProxy = new NgForOf(
|
|
7410
|
+
this.iterableProxy = new NgForOf(vcr, template, differs);
|
|
7369
7411
|
this.subscriptions.push(optionService.inputChanged.subscribe(filter => {
|
|
7370
7412
|
this.filter = filter;
|
|
7371
7413
|
this.updateItems();
|
|
@@ -7745,10 +7787,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
7745
7787
|
class ClrDatalistContainer extends ClrAbstractContainer {
|
|
7746
7788
|
constructor(controlClassService, layoutService, ngControlService, focusService, ifControlStateService) {
|
|
7747
7789
|
super(ifControlStateService, layoutService, controlClassService, ngControlService);
|
|
7748
|
-
this.focusService = focusService;
|
|
7749
7790
|
this.ifControlStateService = ifControlStateService;
|
|
7750
7791
|
this.focus = false;
|
|
7751
|
-
this.subscriptions.push(
|
|
7792
|
+
this.subscriptions.push(focusService.focusChange.subscribe(state => (this.focus = state)));
|
|
7752
7793
|
}
|
|
7753
7794
|
}
|
|
7754
7795
|
ClrDatalistContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrDatalistContainer, deps: [{ token: ControlClassService }, { token: LayoutService, optional: true }, { token: NgControlService }, { token: FocusService }, { token: IfControlStateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -7852,7 +7893,7 @@ class ClrDatalistInput extends WrappedFormControl {
|
|
|
7852
7893
|
super(vcr, ClrDatalistContainer, injector, control, renderer, el);
|
|
7853
7894
|
this.focusService = focusService;
|
|
7854
7895
|
this.datalistIdService = datalistIdService;
|
|
7855
|
-
if (!
|
|
7896
|
+
if (!focusService) {
|
|
7856
7897
|
throw new Error('clrDatalist requires being wrapped in <clr-datalist-container>');
|
|
7857
7898
|
}
|
|
7858
7899
|
}
|
|
@@ -8626,8 +8667,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
8626
8667
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
8627
8668
|
*/
|
|
8628
8669
|
class DateIOService {
|
|
8629
|
-
constructor(
|
|
8630
|
-
this._localeHelperService = _localeHelperService;
|
|
8670
|
+
constructor(localeHelperService) {
|
|
8631
8671
|
this.disabledDates = {
|
|
8632
8672
|
// This is the default range. It approximates the beginning of time to the end of time.
|
|
8633
8673
|
// Unless a minDate or maxDate is set with the native HTML5 api the range is all dates
|
|
@@ -8638,7 +8678,7 @@ class DateIOService {
|
|
|
8638
8678
|
this.cldrLocaleDateFormat = DEFAULT_LOCALE_FORMAT;
|
|
8639
8679
|
this.localeDisplayFormat = LITTLE_ENDIAN;
|
|
8640
8680
|
this.delimiters = ['/', '/'];
|
|
8641
|
-
this.cldrLocaleDateFormat =
|
|
8681
|
+
this.cldrLocaleDateFormat = localeHelperService.localeDateFormat;
|
|
8642
8682
|
this.initializeLocaleDisplayFormat();
|
|
8643
8683
|
}
|
|
8644
8684
|
get placeholderText() {
|
|
@@ -9059,7 +9099,7 @@ class DatepickerEnabledService {
|
|
|
9059
9099
|
constructor(_document) {
|
|
9060
9100
|
this._document = _document;
|
|
9061
9101
|
this._isUserAgentMobile = false;
|
|
9062
|
-
if (
|
|
9102
|
+
if (_document) {
|
|
9063
9103
|
this._isUserAgentMobile = MOBILE_USERAGENT_REGEX.test(_document.defaultView.navigator.userAgent);
|
|
9064
9104
|
this._innerWidth = _document.defaultView.innerWidth;
|
|
9065
9105
|
}
|
|
@@ -9655,18 +9695,17 @@ class ClrDateContainer extends ClrAbstractContainer {
|
|
|
9655
9695
|
this.dateFormControlService = dateFormControlService;
|
|
9656
9696
|
this.dateIOService = dateIOService;
|
|
9657
9697
|
this.commonStrings = commonStrings;
|
|
9658
|
-
this.focusService = focusService;
|
|
9659
9698
|
this.viewManagerService = viewManagerService;
|
|
9660
9699
|
this.controlClassService = controlClassService;
|
|
9661
9700
|
this.layoutService = layoutService;
|
|
9662
9701
|
this.ngControlService = ngControlService;
|
|
9663
9702
|
this.ifControlStateService = ifControlStateService;
|
|
9664
9703
|
this.focus = false;
|
|
9665
|
-
this.subscriptions.push(
|
|
9704
|
+
this.subscriptions.push(focusService.focusChange.subscribe(state => {
|
|
9666
9705
|
this.focus = state;
|
|
9667
9706
|
}));
|
|
9668
|
-
this.subscriptions.push(
|
|
9669
|
-
|
|
9707
|
+
this.subscriptions.push(toggleService.openChange.subscribe(() => {
|
|
9708
|
+
dateFormControlService.markAsTouched();
|
|
9670
9709
|
}));
|
|
9671
9710
|
}
|
|
9672
9711
|
set clrPosition(position) {
|
|
@@ -10666,7 +10705,7 @@ class ClrPasswordContainer extends ClrAbstractContainer {
|
|
|
10666
10705
|
this.focus = false;
|
|
10667
10706
|
this._toggle = true;
|
|
10668
10707
|
/* The unsubscribe is handle inside the ClrAbstractContainer */
|
|
10669
|
-
this.subscriptions.push(
|
|
10708
|
+
this.subscriptions.push(focusService.focusChange.subscribe(state => {
|
|
10670
10709
|
this.focus = state;
|
|
10671
10710
|
}));
|
|
10672
10711
|
}
|
|
@@ -10816,12 +10855,11 @@ class ClrPassword extends WrappedFormControl {
|
|
|
10816
10855
|
constructor(vcr, injector, control, renderer, el, focusService, toggleService) {
|
|
10817
10856
|
super(vcr, ClrPasswordContainer, injector, control, renderer, el);
|
|
10818
10857
|
this.focusService = focusService;
|
|
10819
|
-
this.toggleService = toggleService;
|
|
10820
10858
|
this.index = 1;
|
|
10821
|
-
if (!
|
|
10859
|
+
if (!focusService) {
|
|
10822
10860
|
throw new Error('clrPassword requires being wrapped in <clr-password-container>');
|
|
10823
10861
|
}
|
|
10824
|
-
this.subscriptions.push(
|
|
10862
|
+
this.subscriptions.push(toggleService.subscribe(toggle => {
|
|
10825
10863
|
renderer.setProperty(el.nativeElement, 'type', toggle ? 'text' : 'password');
|
|
10826
10864
|
}));
|
|
10827
10865
|
}
|
|
@@ -12706,6 +12744,12 @@ class DatagridNumericFilter extends DatagridFilterRegistrar {
|
|
|
12706
12744
|
get minPlaceholderValue() {
|
|
12707
12745
|
return this.minPlaceholder || this.commonStrings.keys.minValue;
|
|
12708
12746
|
}
|
|
12747
|
+
get fromLabelValue() {
|
|
12748
|
+
return this.fromLabel || this.commonStrings.keys.fromLabel;
|
|
12749
|
+
}
|
|
12750
|
+
get toLabelValue() {
|
|
12751
|
+
return this.toLabel || this.commonStrings.keys.toLabel;
|
|
12752
|
+
}
|
|
12709
12753
|
get low() {
|
|
12710
12754
|
if (typeof this.filter.low === 'number' && isFinite(this.filter.low)) {
|
|
12711
12755
|
return this.filter.low;
|
|
@@ -12768,31 +12812,40 @@ class DatagridNumericFilter extends DatagridFilterRegistrar {
|
|
|
12768
12812
|
}
|
|
12769
12813
|
}
|
|
12770
12814
|
DatagridNumericFilter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: DatagridNumericFilter, deps: [{ token: FiltersProvider }, { token: DomAdapter }, { token: ClrCommonStringsService }, { token: ClrPopoverToggleService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
12771
|
-
DatagridNumericFilter.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: DatagridNumericFilter, selector: "clr-dg-numeric-filter", inputs: { minPlaceholder: ["clrFilterMinPlaceholder", "minPlaceholder"], maxPlaceholder: ["clrFilterMaxPlaceholder", "maxPlaceholder"], value: ["clrFilterValue", "value"], customNumericFilter: ["clrDgNumericFilter", "customNumericFilter"] }, outputs: { filterValueChange: "clrFilterValueChange" }, providers: [{ provide: CustomFilter, useExisting: DatagridNumericFilter }], viewQueries: [{ propertyName: "input", first: true, predicate: ["input_low"], descendants: true }, { propertyName: "filterContainer", first: true, predicate: ClrDatagridFilter, descendants: true }], usesInheritance: true, ngImport: i0, template: `
|
|
12815
|
+
DatagridNumericFilter.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: DatagridNumericFilter, selector: "clr-dg-numeric-filter", inputs: { minPlaceholder: ["clrFilterMinPlaceholder", "minPlaceholder"], maxPlaceholder: ["clrFilterMaxPlaceholder", "maxPlaceholder"], fromLabel: ["clrFilterFromLabel", "fromLabel"], toLabel: ["clrFilterToLabel", "toLabel"], value: ["clrFilterValue", "value"], customNumericFilter: ["clrDgNumericFilter", "customNumericFilter"] }, outputs: { filterValueChange: "clrFilterValueChange" }, providers: [{ provide: CustomFilter, useExisting: DatagridNumericFilter }], viewQueries: [{ propertyName: "input", first: true, predicate: ["input_low"], descendants: true }, { propertyName: "filterContainer", first: true, predicate: ClrDatagridFilter, descendants: true }], usesInheritance: true, ngImport: i0, template: `
|
|
12772
12816
|
<clr-dg-filter [clrDgFilter]="registered" [(clrDgFilterOpen)]="open">
|
|
12773
|
-
<
|
|
12774
|
-
class="
|
|
12775
|
-
|
|
12776
|
-
|
|
12777
|
-
|
|
12778
|
-
|
|
12779
|
-
|
|
12780
|
-
|
|
12781
|
-
|
|
12782
|
-
|
|
12783
|
-
|
|
12784
|
-
|
|
12785
|
-
|
|
12786
|
-
|
|
12787
|
-
|
|
12788
|
-
|
|
12789
|
-
|
|
12790
|
-
|
|
12791
|
-
|
|
12792
|
-
|
|
12793
|
-
|
|
12817
|
+
<div class="datagrid-numeric-filter-form">
|
|
12818
|
+
<div class="clr-form-control">
|
|
12819
|
+
<label class="clr-control-label">{{ fromLabelValue }}</label>
|
|
12820
|
+
<input
|
|
12821
|
+
clrInput
|
|
12822
|
+
class="datagrid-numeric-filter-input"
|
|
12823
|
+
#input_low
|
|
12824
|
+
type="number"
|
|
12825
|
+
autocomplete="off"
|
|
12826
|
+
name="low"
|
|
12827
|
+
[(ngModel)]="low"
|
|
12828
|
+
[placeholder]="minPlaceholderValue"
|
|
12829
|
+
[attr.aria-label]="minPlaceholderValue"
|
|
12830
|
+
/>
|
|
12831
|
+
</div>
|
|
12832
|
+
<div class="clr-form-control">
|
|
12833
|
+
<label class="clr-control-label">{{ toLabelValue }}</label>
|
|
12834
|
+
<input
|
|
12835
|
+
clrInput
|
|
12836
|
+
class="datagrid-numeric-filter-input"
|
|
12837
|
+
#input_high
|
|
12838
|
+
type="number"
|
|
12839
|
+
autocomplete="off"
|
|
12840
|
+
name="high"
|
|
12841
|
+
[(ngModel)]="high"
|
|
12842
|
+
[placeholder]="maxPlaceholderValue"
|
|
12843
|
+
[attr.aria-label]="maxPlaceholderValue"
|
|
12844
|
+
/>
|
|
12845
|
+
</div>
|
|
12846
|
+
</div>
|
|
12794
12847
|
</clr-dg-filter>
|
|
12795
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ClrDatagridFilter, selector: "clr-dg-filter", inputs: ["clrDgFilterOpen", "clrDgFilter"], outputs: ["clrDgFilterOpenChange"] }] });
|
|
12848
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: ClrLabel, selector: "label", inputs: ["for"] }, { kind: "directive", type: ClrInput, selector: "[clrInput]" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ClrDatagridFilter, selector: "clr-dg-filter", inputs: ["clrDgFilterOpen", "clrDgFilter"], outputs: ["clrDgFilterOpenChange"] }] });
|
|
12796
12849
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: DatagridNumericFilter, decorators: [{
|
|
12797
12850
|
type: Component,
|
|
12798
12851
|
args: [{
|
|
@@ -12800,27 +12853,36 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
12800
12853
|
providers: [{ provide: CustomFilter, useExisting: DatagridNumericFilter }],
|
|
12801
12854
|
template: `
|
|
12802
12855
|
<clr-dg-filter [clrDgFilter]="registered" [(clrDgFilterOpen)]="open">
|
|
12803
|
-
<
|
|
12804
|
-
class="
|
|
12805
|
-
|
|
12806
|
-
|
|
12807
|
-
|
|
12808
|
-
|
|
12809
|
-
|
|
12810
|
-
|
|
12811
|
-
|
|
12812
|
-
|
|
12813
|
-
|
|
12814
|
-
|
|
12815
|
-
|
|
12816
|
-
|
|
12817
|
-
|
|
12818
|
-
|
|
12819
|
-
|
|
12820
|
-
|
|
12821
|
-
|
|
12822
|
-
|
|
12823
|
-
|
|
12856
|
+
<div class="datagrid-numeric-filter-form">
|
|
12857
|
+
<div class="clr-form-control">
|
|
12858
|
+
<label class="clr-control-label">{{ fromLabelValue }}</label>
|
|
12859
|
+
<input
|
|
12860
|
+
clrInput
|
|
12861
|
+
class="datagrid-numeric-filter-input"
|
|
12862
|
+
#input_low
|
|
12863
|
+
type="number"
|
|
12864
|
+
autocomplete="off"
|
|
12865
|
+
name="low"
|
|
12866
|
+
[(ngModel)]="low"
|
|
12867
|
+
[placeholder]="minPlaceholderValue"
|
|
12868
|
+
[attr.aria-label]="minPlaceholderValue"
|
|
12869
|
+
/>
|
|
12870
|
+
</div>
|
|
12871
|
+
<div class="clr-form-control">
|
|
12872
|
+
<label class="clr-control-label">{{ toLabelValue }}</label>
|
|
12873
|
+
<input
|
|
12874
|
+
clrInput
|
|
12875
|
+
class="datagrid-numeric-filter-input"
|
|
12876
|
+
#input_high
|
|
12877
|
+
type="number"
|
|
12878
|
+
autocomplete="off"
|
|
12879
|
+
name="high"
|
|
12880
|
+
[(ngModel)]="high"
|
|
12881
|
+
[placeholder]="maxPlaceholderValue"
|
|
12882
|
+
[attr.aria-label]="maxPlaceholderValue"
|
|
12883
|
+
/>
|
|
12884
|
+
</div>
|
|
12885
|
+
</div>
|
|
12824
12886
|
</clr-dg-filter>
|
|
12825
12887
|
`,
|
|
12826
12888
|
}]
|
|
@@ -12830,6 +12892,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
12830
12892
|
}], maxPlaceholder: [{
|
|
12831
12893
|
type: Input,
|
|
12832
12894
|
args: ['clrFilterMaxPlaceholder']
|
|
12895
|
+
}], fromLabel: [{
|
|
12896
|
+
type: Input,
|
|
12897
|
+
args: ['clrFilterFromLabel']
|
|
12898
|
+
}], toLabel: [{
|
|
12899
|
+
type: Input,
|
|
12900
|
+
args: ['clrFilterToLabel']
|
|
12833
12901
|
}], filterValueChange: [{
|
|
12834
12902
|
type: Output,
|
|
12835
12903
|
args: ['clrFilterValueChange']
|
|
@@ -13410,6 +13478,19 @@ var ClrDatagridSortOrder;
|
|
|
13410
13478
|
ClrDatagridSortOrder[ClrDatagridSortOrder["DESC"] = -1] = "DESC";
|
|
13411
13479
|
})(ClrDatagridSortOrder || (ClrDatagridSortOrder = {}));
|
|
13412
13480
|
|
|
13481
|
+
/*
|
|
13482
|
+
* Copyright (c) 2016-2024 Broadcom. All Rights Reserved.
|
|
13483
|
+
* The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
|
|
13484
|
+
* This software is released under MIT license.
|
|
13485
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
13486
|
+
*/
|
|
13487
|
+
// @TODO The top two are not used now, which is probably a performance drag that was broken along the way.
|
|
13488
|
+
// There was a previous pattern to hide everything to do computation then display, for Firefox, needs revisiting.
|
|
13489
|
+
const NO_LAYOUT_CLASS = 'datagrid-no-layout';
|
|
13490
|
+
const COMPUTE_WIDTH_CLASS = 'datagrid-computing-columns-width';
|
|
13491
|
+
const STRICT_WIDTH_CLASS = 'datagrid-fixed-width';
|
|
13492
|
+
const HIDDEN_COLUMN_CLASS = 'datagrid-hidden-column';
|
|
13493
|
+
|
|
13413
13494
|
/*
|
|
13414
13495
|
* Copyright (c) 2016-2024 Broadcom. All Rights Reserved.
|
|
13415
13496
|
* The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
|
|
@@ -13844,15 +13925,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
13844
13925
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
13845
13926
|
*/
|
|
13846
13927
|
class ClrDatagridColumn extends DatagridFilterRegistrar {
|
|
13847
|
-
constructor(_sort, filters, vcr, detailService, changeDetectorRef) {
|
|
13928
|
+
constructor(el, _sort, filters, vcr, detailService, changeDetectorRef) {
|
|
13848
13929
|
super(filters);
|
|
13930
|
+
this.el = el;
|
|
13849
13931
|
this._sort = _sort;
|
|
13850
13932
|
this.vcr = vcr;
|
|
13851
13933
|
this.detailService = detailService;
|
|
13852
13934
|
this.changeDetectorRef = changeDetectorRef;
|
|
13853
13935
|
this.sortOrderChange = new EventEmitter();
|
|
13854
13936
|
this.filterValueChange = new EventEmitter();
|
|
13855
|
-
this.showSeparator = true;
|
|
13856
13937
|
/**
|
|
13857
13938
|
* A custom filter for this column that can be provided in the projected content
|
|
13858
13939
|
*/
|
|
@@ -13871,9 +13952,20 @@ class ClrDatagridColumn extends DatagridFilterRegistrar {
|
|
|
13871
13952
|
* Subscription to the sort service changes
|
|
13872
13953
|
*/
|
|
13873
13954
|
this.subscriptions = [];
|
|
13955
|
+
this._showSeparator = true;
|
|
13874
13956
|
this.subscriptions.push(this.listenForSortingChanges());
|
|
13875
13957
|
this.subscriptions.push(this.listenForDetailPaneChanges());
|
|
13876
13958
|
}
|
|
13959
|
+
get isHidden() {
|
|
13960
|
+
return this.el.nativeElement.classList.contains(HIDDEN_COLUMN_CLASS);
|
|
13961
|
+
}
|
|
13962
|
+
get showSeparator() {
|
|
13963
|
+
return this._showSeparator;
|
|
13964
|
+
}
|
|
13965
|
+
set showSeparator(value) {
|
|
13966
|
+
this._showSeparator = value;
|
|
13967
|
+
this.changeDetectorRef.markForCheck();
|
|
13968
|
+
}
|
|
13877
13969
|
// TODO: We might want to make this an enum in the future
|
|
13878
13970
|
get colType() {
|
|
13879
13971
|
return this._colType;
|
|
@@ -14049,8 +14141,6 @@ class ClrDatagridColumn extends DatagridFilterRegistrar {
|
|
|
14049
14141
|
return this.detailService.stateChange.subscribe(state => {
|
|
14050
14142
|
if (this.showSeparator !== !state) {
|
|
14051
14143
|
this.showSeparator = !state;
|
|
14052
|
-
// Have to manually change because of OnPush
|
|
14053
|
-
this.changeDetectorRef.markForCheck();
|
|
14054
14144
|
}
|
|
14055
14145
|
});
|
|
14056
14146
|
}
|
|
@@ -14083,7 +14173,7 @@ class ClrDatagridColumn extends DatagridFilterRegistrar {
|
|
|
14083
14173
|
}
|
|
14084
14174
|
}
|
|
14085
14175
|
}
|
|
14086
|
-
ClrDatagridColumn.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrDatagridColumn, deps: [{ token: Sort }, { token: FiltersProvider }, { token: i0.ViewContainerRef }, { token: DetailService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
14176
|
+
ClrDatagridColumn.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrDatagridColumn, deps: [{ token: i0.ElementRef }, { token: Sort }, { token: FiltersProvider }, { token: i0.ViewContainerRef }, { token: DetailService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
14087
14177
|
ClrDatagridColumn.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrDatagridColumn, selector: "clr-dg-column", inputs: { filterStringPlaceholder: ["clrFilterStringPlaceholder", "filterStringPlaceholder"], filterNumberMaxPlaceholder: ["clrFilterNumberMaxPlaceholder", "filterNumberMaxPlaceholder"], filterNumberMinPlaceholder: ["clrFilterNumberMinPlaceholder", "filterNumberMinPlaceholder"], colType: ["clrDgColType", "colType"], field: ["clrDgField", "field"], sortBy: ["clrDgSortBy", "sortBy"], sortOrder: ["clrDgSortOrder", "sortOrder"], updateFilterValue: ["clrFilterValue", "updateFilterValue"] }, outputs: { sortOrderChange: "clrDgSortOrderChange", filterValueChange: "clrFilterValueChange" }, host: { attributes: { "role": "columnheader" }, properties: { "class.datagrid-column": "true", "attr.aria-sort": "ariaSort" } }, queries: [{ propertyName: "projectedFilter", first: true, predicate: CustomFilter, descendants: true }], usesInheritance: true, usesOnChanges: true, hostDirectives: [{ directive: ClrPopoverHostDirective }], ngImport: i0, template: `
|
|
14088
14178
|
<div class="datagrid-column-flex">
|
|
14089
14179
|
<button class="datagrid-column-title" *ngIf="sortable" (click)="sort()" type="button">
|
|
@@ -14124,7 +14214,7 @@ ClrDatagridColumn.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", vers
|
|
|
14124
14214
|
|
|
14125
14215
|
<clr-dg-column-separator *ngIf="showSeparator"></clr-dg-column-separator>
|
|
14126
14216
|
</div>
|
|
14127
|
-
`, isInline: true, 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: ClrDatagridColumnSeparator, selector: "clr-dg-column-separator" }, { kind: "component", type: DatagridNumericFilter, selector: "clr-dg-numeric-filter", inputs: ["clrFilterMinPlaceholder", "clrFilterMaxPlaceholder", "clrFilterValue", "clrDgNumericFilter"], outputs: ["clrFilterValueChange"] }, { kind: "component", type: DatagridStringFilter, selector: "clr-dg-string-filter", inputs: ["clrFilterPlaceholder", "clrDgStringFilter", "clrFilterValue"], outputs: ["clrFilterValueChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
14217
|
+
`, isInline: true, 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: ClrDatagridColumnSeparator, selector: "clr-dg-column-separator" }, { kind: "component", type: DatagridNumericFilter, selector: "clr-dg-numeric-filter", inputs: ["clrFilterMinPlaceholder", "clrFilterMaxPlaceholder", "clrFilterFromLabel", "clrFilterToLabel", "clrFilterValue", "clrDgNumericFilter"], outputs: ["clrFilterValueChange"] }, { kind: "component", type: DatagridStringFilter, selector: "clr-dg-string-filter", inputs: ["clrFilterPlaceholder", "clrDgStringFilter", "clrFilterValue"], outputs: ["clrFilterValueChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
14128
14218
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrDatagridColumn, decorators: [{
|
|
14129
14219
|
type: Component,
|
|
14130
14220
|
args: [{
|
|
@@ -14178,7 +14268,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
14178
14268
|
},
|
|
14179
14269
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
14180
14270
|
}]
|
|
14181
|
-
}], ctorParameters: function () { return [{ type: Sort }, { type: FiltersProvider }, { type: i0.ViewContainerRef }, { type: DetailService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { filterStringPlaceholder: [{
|
|
14271
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: Sort }, { type: FiltersProvider }, { type: i0.ViewContainerRef }, { type: DetailService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { filterStringPlaceholder: [{
|
|
14182
14272
|
type: Input,
|
|
14183
14273
|
args: ['clrFilterStringPlaceholder']
|
|
14184
14274
|
}], filterNumberMaxPlaceholder: [{
|
|
@@ -14391,11 +14481,10 @@ class ClrDatagridItems {
|
|
|
14391
14481
|
this.template = template;
|
|
14392
14482
|
this.differs = differs;
|
|
14393
14483
|
this.items = items;
|
|
14394
|
-
this.vcr = vcr;
|
|
14395
14484
|
this.differ = null;
|
|
14396
14485
|
this.subscriptions = [];
|
|
14397
14486
|
items.smartenUp();
|
|
14398
|
-
this.iterableProxy = new NgForOf(
|
|
14487
|
+
this.iterableProxy = new NgForOf(vcr, template, differs);
|
|
14399
14488
|
this.subscriptions.push(items.change.subscribe(newItems => {
|
|
14400
14489
|
this.iterableProxy.ngForOf = newItems;
|
|
14401
14490
|
this.iterableProxy.ngDoCheck();
|
|
@@ -14891,9 +14980,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
14891
14980
|
*/
|
|
14892
14981
|
let nbSelection = 0;
|
|
14893
14982
|
class Selection {
|
|
14894
|
-
constructor(_items,
|
|
14983
|
+
constructor(_items, filters) {
|
|
14895
14984
|
this._items = _items;
|
|
14896
|
-
this._filters = _filters;
|
|
14897
14985
|
this.preserveSelection = false;
|
|
14898
14986
|
/**
|
|
14899
14987
|
* Shift key state, for use in range selection.
|
|
@@ -14914,13 +15002,13 @@ class Selection {
|
|
|
14914
15002
|
*/
|
|
14915
15003
|
this.subscriptions = [];
|
|
14916
15004
|
this.id = 'clr-dg-selection' + nbSelection++;
|
|
14917
|
-
this.subscriptions.push(
|
|
15005
|
+
this.subscriptions.push(filters.change.subscribe(() => {
|
|
14918
15006
|
if (!this._selectable || this.preserveSelection) {
|
|
14919
15007
|
return;
|
|
14920
15008
|
}
|
|
14921
15009
|
this.clearSelection();
|
|
14922
15010
|
}));
|
|
14923
|
-
this.subscriptions.push(
|
|
15011
|
+
this.subscriptions.push(_items.allChanges.subscribe(updatedItems => {
|
|
14924
15012
|
// Reset the lockedRefs;
|
|
14925
15013
|
const updateLockedRef = [];
|
|
14926
15014
|
switch (this.selectionType) {
|
|
@@ -14932,10 +15020,10 @@ class Selection {
|
|
|
14932
15020
|
let selectionUpdated = false;
|
|
14933
15021
|
// if the currentSingle has been set before data was loaded, we look up and save the ref from current data set
|
|
14934
15022
|
if (this.currentSingle && !this.prevSingleSelectionRef) {
|
|
14935
|
-
this.prevSingleSelectionRef =
|
|
15023
|
+
this.prevSingleSelectionRef = _items.trackBy(this.currentSingle);
|
|
14936
15024
|
}
|
|
14937
15025
|
updatedItems.forEach(item => {
|
|
14938
|
-
const ref =
|
|
15026
|
+
const ref = _items.trackBy(item);
|
|
14939
15027
|
// If one of the updated items is the previously selectedSingle, set it as the new one
|
|
14940
15028
|
if (this.prevSingleSelectionRef === ref) {
|
|
14941
15029
|
newSingle = item;
|
|
@@ -14949,7 +15037,7 @@ class Selection {
|
|
|
14949
15037
|
// Therefore, we should delete the currentSingle if it used to be defined but doesn't exist anymore.
|
|
14950
15038
|
// No explicit "delete" is required, since newSingle would be undefined at this point.
|
|
14951
15039
|
// Marking it as selectionUpdated here will set currentSingle to undefined below in the setTimeout.
|
|
14952
|
-
if (
|
|
15040
|
+
if (_items.smart && !newSingle) {
|
|
14953
15041
|
selectionUpdated = true;
|
|
14954
15042
|
}
|
|
14955
15043
|
// TODO: Discussed this with Eudes and this is fine for now.
|
|
@@ -14970,7 +15058,7 @@ class Selection {
|
|
|
14970
15058
|
if (this.current.length > 0 && this.prevSelectionRefs.length !== this.current.length) {
|
|
14971
15059
|
this.prevSelectionRefs = [];
|
|
14972
15060
|
this.current.forEach(item => {
|
|
14973
|
-
this.prevSelectionRefs.push(
|
|
15061
|
+
this.prevSelectionRefs.push(_items.trackBy(item));
|
|
14974
15062
|
});
|
|
14975
15063
|
}
|
|
14976
15064
|
// Duplicate loop, when the issue is issue#2342 is revisited keep in mind that
|
|
@@ -14979,7 +15067,7 @@ class Selection {
|
|
|
14979
15067
|
//
|
|
14980
15068
|
// The both loops below that goes over updatedItems could be combined into one.
|
|
14981
15069
|
updatedItems.forEach(item => {
|
|
14982
|
-
const ref =
|
|
15070
|
+
const ref = _items.trackBy(item);
|
|
14983
15071
|
if (this.lockedRefs.indexOf(ref) > -1) {
|
|
14984
15072
|
updateLockedRef.push(ref);
|
|
14985
15073
|
}
|
|
@@ -14989,7 +15077,7 @@ class Selection {
|
|
|
14989
15077
|
// the if statement below results in broken behavior.
|
|
14990
15078
|
if (leftOver.length > 0) {
|
|
14991
15079
|
updatedItems.forEach(item => {
|
|
14992
|
-
const ref =
|
|
15080
|
+
const ref = _items.trackBy(item);
|
|
14993
15081
|
// Look in current selected refs array if item is selected, and update actual value
|
|
14994
15082
|
const selectedIndex = this.prevSelectionRefs.indexOf(ref);
|
|
14995
15083
|
if (selectedIndex > -1) {
|
|
@@ -14999,7 +15087,7 @@ class Selection {
|
|
|
14999
15087
|
});
|
|
15000
15088
|
// Filter out any unmatched items if we're using smart datagrids where we expect all items to be
|
|
15001
15089
|
// present
|
|
15002
|
-
if (
|
|
15090
|
+
if (_items.smart) {
|
|
15003
15091
|
leftOver = leftOver.filter(selected => updatedItems.indexOf(selected) > -1);
|
|
15004
15092
|
if (this.current.length !== leftOver.length) {
|
|
15005
15093
|
selectionUpdated = true;
|
|
@@ -15317,8 +15405,6 @@ class ClrDatagridRow {
|
|
|
15317
15405
|
this.detailService = detailService;
|
|
15318
15406
|
this.displayMode = displayMode;
|
|
15319
15407
|
this.vcr = vcr;
|
|
15320
|
-
this.renderer = renderer;
|
|
15321
|
-
this.el = el;
|
|
15322
15408
|
this.commonStrings = commonStrings;
|
|
15323
15409
|
this.items = items;
|
|
15324
15410
|
this.document = document;
|
|
@@ -15346,17 +15432,17 @@ class ClrDatagridRow {
|
|
|
15346
15432
|
this.radioId = 'clr-dg-row-rd' + nbRow;
|
|
15347
15433
|
this.checkboxId = 'clr-dg-row-cb' + nbRow;
|
|
15348
15434
|
this.expandableId = expand.expandableId;
|
|
15349
|
-
this.subscriptions.push(combineLatest(
|
|
15435
|
+
this.subscriptions.push(combineLatest(expand.replace, expand.expandChange).subscribe(([expandReplaceValue, expandChangeValue]) => {
|
|
15350
15436
|
if (expandReplaceValue && expandChangeValue) {
|
|
15351
15437
|
// replaced and expanding
|
|
15352
15438
|
this.replaced = true;
|
|
15353
|
-
|
|
15439
|
+
renderer.addClass(el.nativeElement, 'datagrid-row-replaced');
|
|
15354
15440
|
}
|
|
15355
15441
|
else {
|
|
15356
15442
|
this.replaced = false;
|
|
15357
15443
|
// Handles these cases: not replaced and collapsing & replaced and
|
|
15358
15444
|
// collapsing and not replaced and expanding.
|
|
15359
|
-
|
|
15445
|
+
renderer.removeClass(el.nativeElement, 'datagrid-row-replaced');
|
|
15360
15446
|
}
|
|
15361
15447
|
}));
|
|
15362
15448
|
}
|
|
@@ -15762,19 +15848,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
15762
15848
|
type: Injectable
|
|
15763
15849
|
}], ctorParameters: function () { return [{ type: FiltersProvider }, { type: Sort }, { type: Page }, { type: StateDebouncer }]; } });
|
|
15764
15850
|
|
|
15765
|
-
/*
|
|
15766
|
-
* Copyright (c) 2016-2024 Broadcom. All Rights Reserved.
|
|
15767
|
-
* The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
|
|
15768
|
-
* This software is released under MIT license.
|
|
15769
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
15770
|
-
*/
|
|
15771
|
-
// @TODO The top two are not used now, which is probably a performance drag that was broken along the way.
|
|
15772
|
-
// There was a previous pattern to hide everything to do computation then display, for Firefox, needs revisiting.
|
|
15773
|
-
const NO_LAYOUT_CLASS = 'datagrid-no-layout';
|
|
15774
|
-
const COMPUTE_WIDTH_CLASS = 'datagrid-computing-columns-width';
|
|
15775
|
-
const STRICT_WIDTH_CLASS = 'datagrid-fixed-width';
|
|
15776
|
-
const HIDDEN_COLUMN_CLASS = 'datagrid-hidden-column';
|
|
15777
|
-
|
|
15778
15851
|
/*
|
|
15779
15852
|
* Copyright (c) 2016-2024 Broadcom. All Rights Reserved.
|
|
15780
15853
|
* The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
|
|
@@ -15896,7 +15969,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
15896
15969
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
15897
15970
|
*/
|
|
15898
15971
|
class ClrDatagrid {
|
|
15899
|
-
constructor(organizer, items, expandableRows, selection, rowActionService, stateProvider, displayMode, renderer, detailService, document, el, page, commonStrings,
|
|
15972
|
+
constructor(organizer, items, expandableRows, selection, rowActionService, stateProvider, displayMode, renderer, detailService, document, el, page, commonStrings, keyNavigation, zone) {
|
|
15900
15973
|
this.organizer = organizer;
|
|
15901
15974
|
this.items = items;
|
|
15902
15975
|
this.expandableRows = expandableRows;
|
|
@@ -15910,7 +15983,6 @@ class ClrDatagrid {
|
|
|
15910
15983
|
this.el = el;
|
|
15911
15984
|
this.page = page;
|
|
15912
15985
|
this.commonStrings = commonStrings;
|
|
15913
|
-
this.columnsService = columnsService;
|
|
15914
15986
|
this.keyNavigation = keyNavigation;
|
|
15915
15987
|
this.zone = zone;
|
|
15916
15988
|
this.clrDgSingleSelectionAriaLabel = this.commonStrings.keys.singleSelectionAriaLabel;
|
|
@@ -15932,7 +16004,7 @@ class ClrDatagrid {
|
|
|
15932
16004
|
this._subscriptions = [];
|
|
15933
16005
|
const datagridId = uniqueIdFactory();
|
|
15934
16006
|
this.selectAllId = 'clr-dg-select-all-' + datagridId;
|
|
15935
|
-
|
|
16007
|
+
detailService.id = datagridId;
|
|
15936
16008
|
}
|
|
15937
16009
|
/**
|
|
15938
16010
|
* Freezes the datagrid while data is loading
|
|
@@ -16154,7 +16226,7 @@ class ClrDatagrid {
|
|
|
16154
16226
|
this.items.refresh();
|
|
16155
16227
|
}
|
|
16156
16228
|
}
|
|
16157
|
-
ClrDatagrid.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrDatagrid, deps: [{ token: DatagridRenderOrganizer }, { token: Items }, { token: ExpandableRowsCount }, { token: Selection }, { token: RowActionService }, { token: StateProvider }, { token: DisplayModeService }, { token: i0.Renderer2 }, { token: DetailService }, { token: DOCUMENT }, { token: i0.ElementRef }, { token: Page }, { token: ClrCommonStringsService }, { token:
|
|
16229
|
+
ClrDatagrid.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrDatagrid, deps: [{ token: DatagridRenderOrganizer }, { token: Items }, { token: ExpandableRowsCount }, { token: Selection }, { token: RowActionService }, { token: StateProvider }, { token: DisplayModeService }, { token: i0.Renderer2 }, { token: DetailService }, { token: DOCUMENT }, { token: i0.ElementRef }, { token: Page }, { token: ClrCommonStringsService }, { token: KeyNavigationGridController }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
16158
16230
|
ClrDatagrid.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrDatagrid, selector: "clr-datagrid", inputs: { loadingMoreItems: ["clrLoadingMoreItems", "loadingMoreItems"], clrDgSingleSelectionAriaLabel: "clrDgSingleSelectionAriaLabel", clrDgSingleActionableAriaLabel: "clrDgSingleActionableAriaLabel", clrDetailExpandableAriaLabel: "clrDetailExpandableAriaLabel", clrDgDisablePageFocus: "clrDgDisablePageFocus", loading: ["clrDgLoading", "loading"], selected: ["clrDgSelected", "selected"], singleSelected: ["clrDgSingleSelected", "singleSelected"], clrDgPreserveSelection: "clrDgPreserveSelection", rowSelectionMode: ["clrDgRowSelection", "rowSelectionMode"], trackBy: ["clrDgItemsTrackBy", "trackBy"] }, outputs: { selectedChanged: "clrDgSelectedChange", singleSelectedChanged: "clrDgSingleSelectedChange", refresh: "clrDgRefresh" }, host: { properties: { "class.datagrid-host": "true", "class.datagrid-detail-open": "detailService.isOpen" } }, providers: [
|
|
16159
16231
|
Selection,
|
|
16160
16232
|
Sort,
|
|
@@ -16197,7 +16269,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
16197
16269
|
}], ctorParameters: function () { return [{ type: DatagridRenderOrganizer }, { type: Items }, { type: ExpandableRowsCount }, { type: Selection }, { type: RowActionService }, { type: StateProvider }, { type: DisplayModeService }, { type: i0.Renderer2 }, { type: DetailService }, { type: undefined, decorators: [{
|
|
16198
16270
|
type: Inject,
|
|
16199
16271
|
args: [DOCUMENT]
|
|
16200
|
-
}] }, { type: i0.ElementRef }, { type: Page }, { type: ClrCommonStringsService }, { type:
|
|
16272
|
+
}] }, { type: i0.ElementRef }, { type: Page }, { type: ClrCommonStringsService }, { type: KeyNavigationGridController }, { type: i0.NgZone }]; }, propDecorators: { loadingMoreItems: [{
|
|
16201
16273
|
type: Input,
|
|
16202
16274
|
args: ['clrLoadingMoreItems']
|
|
16203
16275
|
}], clrDgSingleSelectionAriaLabel: [{
|
|
@@ -16303,11 +16375,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
16303
16375
|
*/
|
|
16304
16376
|
let clrDgActionId = 0;
|
|
16305
16377
|
class ClrDatagridActionOverflow {
|
|
16306
|
-
constructor(rowActionService, commonStrings, platformId,
|
|
16378
|
+
constructor(rowActionService, commonStrings, platformId, smartToggleService) {
|
|
16307
16379
|
this.rowActionService = rowActionService;
|
|
16308
16380
|
this.commonStrings = commonStrings;
|
|
16309
16381
|
this.platformId = platformId;
|
|
16310
|
-
this.zone = zone;
|
|
16311
16382
|
this.smartToggleService = smartToggleService;
|
|
16312
16383
|
this.openChange = new EventEmitter(false);
|
|
16313
16384
|
this.popoverId = uniqueIdFactory();
|
|
@@ -16319,10 +16390,10 @@ class ClrDatagridActionOverflow {
|
|
|
16319
16390
|
};
|
|
16320
16391
|
this._open = false;
|
|
16321
16392
|
this.subscriptions = [];
|
|
16322
|
-
|
|
16323
|
-
this.subscriptions.push(
|
|
16393
|
+
rowActionService.register();
|
|
16394
|
+
this.subscriptions.push(smartToggleService.openChange.subscribe(openState => {
|
|
16324
16395
|
this.open = openState;
|
|
16325
|
-
}),
|
|
16396
|
+
}), smartToggleService.popoverVisible.subscribe(visible => {
|
|
16326
16397
|
if (visible) {
|
|
16327
16398
|
this.initializeFocus();
|
|
16328
16399
|
}
|
|
@@ -16359,7 +16430,7 @@ class ClrDatagridActionOverflow {
|
|
|
16359
16430
|
}
|
|
16360
16431
|
}
|
|
16361
16432
|
}
|
|
16362
|
-
ClrDatagridActionOverflow.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrDatagridActionOverflow, deps: [{ token: RowActionService }, { token: ClrCommonStringsService }, { token: PLATFORM_ID }, { token:
|
|
16433
|
+
ClrDatagridActionOverflow.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrDatagridActionOverflow, deps: [{ token: RowActionService }, { token: ClrCommonStringsService }, { token: PLATFORM_ID }, { token: ClrPopoverToggleService }], target: i0.ɵɵFactoryTarget.Component });
|
|
16363
16434
|
ClrDatagridActionOverflow.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrDatagridActionOverflow, selector: "clr-dg-action-overflow", inputs: { buttonLabel: ["clrDgActionOverflowButtonLabel", "buttonLabel"], open: ["clrDgActionOverflowOpen", "open"] }, outputs: { openChange: "clrDgActionOverflowOpenChange" }, viewQueries: [{ propertyName: "keyFocus", first: true, predicate: ClrKeyFocus, descendants: true }], hostDirectives: [{ directive: ClrPopoverHostDirective }], ngImport: i0, template: `
|
|
16364
16435
|
<button
|
|
16365
16436
|
tabindex="-1"
|
|
@@ -16429,7 +16500,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
16429
16500
|
}], ctorParameters: function () { return [{ type: RowActionService }, { type: ClrCommonStringsService }, { type: undefined, decorators: [{
|
|
16430
16501
|
type: Inject,
|
|
16431
16502
|
args: [PLATFORM_ID]
|
|
16432
|
-
}] }, { type:
|
|
16503
|
+
}] }, { type: ClrPopoverToggleService }]; }, propDecorators: { buttonLabel: [{
|
|
16433
16504
|
type: Input,
|
|
16434
16505
|
args: ['clrDgActionOverflowButtonLabel']
|
|
16435
16506
|
}], openChange: [{
|
|
@@ -16884,8 +16955,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
16884
16955
|
class DatagridDetailRegisterer {
|
|
16885
16956
|
constructor(expandableRowsCount) {
|
|
16886
16957
|
this.expandableRowsCount = expandableRowsCount;
|
|
16887
|
-
if (
|
|
16888
|
-
|
|
16958
|
+
if (expandableRowsCount) {
|
|
16959
|
+
expandableRowsCount.register();
|
|
16889
16960
|
}
|
|
16890
16961
|
}
|
|
16891
16962
|
ngOnDestroy() {
|
|
@@ -17012,13 +17083,12 @@ const COLUMN_STATE_PROVIDER = {
|
|
|
17012
17083
|
class ClrDatagridHideableColumn {
|
|
17013
17084
|
constructor(titleTemplateRef, viewContainerRef, columnsService, columnState) {
|
|
17014
17085
|
this.titleTemplateRef = titleTemplateRef;
|
|
17015
|
-
this.viewContainerRef = viewContainerRef;
|
|
17016
17086
|
this.columnsService = columnsService;
|
|
17017
17087
|
this.columnState = columnState;
|
|
17018
17088
|
this.hiddenChange = new EventEmitter();
|
|
17019
17089
|
this.subscriptions = [];
|
|
17020
|
-
|
|
17021
|
-
if (!
|
|
17090
|
+
viewContainerRef.createEmbeddedView(titleTemplateRef);
|
|
17091
|
+
if (!columnState) {
|
|
17022
17092
|
throw new Error('The *clrDgHideableColumn directive can only be used inside of a clr-dg-column component.');
|
|
17023
17093
|
}
|
|
17024
17094
|
}
|
|
@@ -17103,7 +17173,7 @@ class ClrIfDetail {
|
|
|
17103
17173
|
this.stateChange = new EventEmitter(null);
|
|
17104
17174
|
this.subscriptions = [];
|
|
17105
17175
|
this.skip = false; // This keeps us from resetting the input and calling the toggle twice
|
|
17106
|
-
|
|
17176
|
+
detailService.enabled = true;
|
|
17107
17177
|
}
|
|
17108
17178
|
set state(model) {
|
|
17109
17179
|
if (!this.skip) {
|
|
@@ -17241,7 +17311,7 @@ class ClrDatagridPagination {
|
|
|
17241
17311
|
this.commonStrings = commonStrings;
|
|
17242
17312
|
this.detailService = detailService;
|
|
17243
17313
|
this.currentChanged = new EventEmitter(false);
|
|
17244
|
-
|
|
17314
|
+
page.activated = true;
|
|
17245
17315
|
}
|
|
17246
17316
|
/**
|
|
17247
17317
|
* Page size
|
|
@@ -17726,10 +17796,10 @@ class ClrDatagridVirtualScrollDirective {
|
|
|
17726
17796
|
this.cdkVirtualForInputs = {
|
|
17727
17797
|
cdkVirtualForTrackBy: index => index,
|
|
17728
17798
|
};
|
|
17729
|
-
|
|
17730
|
-
|
|
17731
|
-
|
|
17732
|
-
this.datagridElementRef =
|
|
17799
|
+
items.smartenUp();
|
|
17800
|
+
datagrid.hasVirtualScroller = true;
|
|
17801
|
+
datagrid.detailService.preventFocusScroll = true;
|
|
17802
|
+
this.datagridElementRef = datagrid.el;
|
|
17733
17803
|
// default
|
|
17734
17804
|
this.cdkVirtualForTemplateCacheSize = 20;
|
|
17735
17805
|
this.mutationChanges.observe(this.datagridElementRef.nativeElement, {
|
|
@@ -17924,7 +17994,6 @@ class DatagridHeaderRenderer {
|
|
|
17924
17994
|
constructor(el, renderer, organizer, domAdapter, columnResizerService, columnsService, columnState) {
|
|
17925
17995
|
this.el = el;
|
|
17926
17996
|
this.renderer = renderer;
|
|
17927
|
-
this.organizer = organizer;
|
|
17928
17997
|
this.domAdapter = domAdapter;
|
|
17929
17998
|
this.columnResizerService = columnResizerService;
|
|
17930
17999
|
this.columnsService = columnsService;
|
|
@@ -17936,7 +18005,7 @@ class DatagridHeaderRenderer {
|
|
|
17936
18005
|
this.widthSet = false;
|
|
17937
18006
|
this.autoSet = false;
|
|
17938
18007
|
this.subscriptions = [];
|
|
17939
|
-
this.subscriptions.push(
|
|
18008
|
+
this.subscriptions.push(organizer.filterRenderSteps(DatagridRenderStep.CLEAR_WIDTHS).subscribe(() => this.clearWidth()));
|
|
17940
18009
|
}
|
|
17941
18010
|
ngOnDestroy() {
|
|
17942
18011
|
this.subscriptions.forEach(sub => sub.unsubscribe());
|
|
@@ -18082,14 +18151,13 @@ const domAdapterFactory = (platformId) => {
|
|
|
18082
18151
|
// Fixes build error
|
|
18083
18152
|
// @dynamic (https://github.com/angular/angular/issues/19698#issuecomment-338340211)
|
|
18084
18153
|
class DatagridMainRenderer {
|
|
18085
|
-
constructor(organizer, items, page,
|
|
18154
|
+
constructor(datagrid, organizer, items, page, el, renderer, detailService, tableSizeService, columnsService, ngZone, keyNavigation) {
|
|
18155
|
+
this.datagrid = datagrid;
|
|
18086
18156
|
this.organizer = organizer;
|
|
18087
18157
|
this.items = items;
|
|
18088
18158
|
this.page = page;
|
|
18089
|
-
this.domAdapter = domAdapter;
|
|
18090
18159
|
this.el = el;
|
|
18091
18160
|
this.renderer = renderer;
|
|
18092
|
-
this.detailService = detailService;
|
|
18093
18161
|
this.tableSizeService = tableSizeService;
|
|
18094
18162
|
this.columnsService = columnsService;
|
|
18095
18163
|
this.ngZone = ngZone;
|
|
@@ -18103,16 +18171,14 @@ class DatagridMainRenderer {
|
|
|
18103
18171
|
* 2) When rows are lazily loaded for the first time
|
|
18104
18172
|
*/
|
|
18105
18173
|
this.columnsSizesStable = false;
|
|
18106
|
-
this.subscriptions.push(this.
|
|
18107
|
-
|
|
18108
|
-
.subscribe(() => this.computeHeadersWidth()));
|
|
18109
|
-
this.subscriptions.push(this.page.sizeChange.subscribe(() => {
|
|
18174
|
+
this.subscriptions.push(organizer.filterRenderSteps(DatagridRenderStep.COMPUTE_COLUMN_WIDTHS).subscribe(() => this.computeHeadersWidth()));
|
|
18175
|
+
this.subscriptions.push(page.sizeChange.subscribe(() => {
|
|
18110
18176
|
if (this._heightSet) {
|
|
18111
18177
|
this.resetDatagridHeight();
|
|
18112
18178
|
}
|
|
18113
18179
|
}));
|
|
18114
|
-
this.subscriptions.push(
|
|
18115
|
-
this.subscriptions.push(
|
|
18180
|
+
this.subscriptions.push(detailService.stateChange.subscribe(state => this.toggleDetailPane(state)));
|
|
18181
|
+
this.subscriptions.push(items.change.subscribe(() => (this.shouldStabilizeColumns = true)));
|
|
18116
18182
|
}
|
|
18117
18183
|
ngOnInit() {
|
|
18118
18184
|
this.columnsService.columnsStateChange.subscribe(change => this.columnStateChanged(change));
|
|
@@ -18132,10 +18198,9 @@ class DatagridMainRenderer {
|
|
|
18132
18198
|
this.tableSizeService.table = this.el;
|
|
18133
18199
|
}
|
|
18134
18200
|
ngAfterViewChecked() {
|
|
18135
|
-
|
|
18136
|
-
|
|
18137
|
-
|
|
18138
|
-
}, 0);
|
|
18201
|
+
const datagridIsVisible = this.checkAndUpdateVisibility();
|
|
18202
|
+
if (this.shouldStabilizeColumns && datagridIsVisible) {
|
|
18203
|
+
this.stabilizeColumns();
|
|
18139
18204
|
}
|
|
18140
18205
|
if (this.shouldComputeHeight()) {
|
|
18141
18206
|
this.ngZone.runOutsideAngular(() => {
|
|
@@ -18254,6 +18319,7 @@ class DatagridMainRenderer {
|
|
|
18254
18319
|
row.expandableRow?.cells.get(columnIndex)?.setHidden(state);
|
|
18255
18320
|
}
|
|
18256
18321
|
});
|
|
18322
|
+
this.updateColumnSeparatorsVisibility();
|
|
18257
18323
|
this.keyNavigation.resetKeyGrid();
|
|
18258
18324
|
break;
|
|
18259
18325
|
case DatagridColumnChanges.INITIALIZE:
|
|
@@ -18286,8 +18352,29 @@ class DatagridMainRenderer {
|
|
|
18286
18352
|
this.columnsSizesStable = true;
|
|
18287
18353
|
}
|
|
18288
18354
|
}
|
|
18355
|
+
checkAndUpdateVisibility() {
|
|
18356
|
+
if (this.el.nativeElement.offsetParent) {
|
|
18357
|
+
this.datagrid.datagrid.nativeElement.style.visibility = 'visible';
|
|
18358
|
+
return true;
|
|
18359
|
+
}
|
|
18360
|
+
else {
|
|
18361
|
+
this.datagrid.datagrid.nativeElement.style.visibility = 'hidden';
|
|
18362
|
+
return false;
|
|
18363
|
+
}
|
|
18364
|
+
}
|
|
18365
|
+
updateColumnSeparatorsVisibility() {
|
|
18366
|
+
const visibleColumns = this.datagrid.columns.filter(column => !column.isHidden);
|
|
18367
|
+
visibleColumns.forEach((column, index) => {
|
|
18368
|
+
if (index === visibleColumns.length - 1) {
|
|
18369
|
+
column.showSeparator = false;
|
|
18370
|
+
}
|
|
18371
|
+
else if (!column.showSeparator) {
|
|
18372
|
+
column.showSeparator = true;
|
|
18373
|
+
}
|
|
18374
|
+
});
|
|
18375
|
+
}
|
|
18289
18376
|
}
|
|
18290
|
-
DatagridMainRenderer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: DatagridMainRenderer, deps: [{ token:
|
|
18377
|
+
DatagridMainRenderer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: DatagridMainRenderer, deps: [{ token: ClrDatagrid }, { token: DatagridRenderOrganizer }, { token: Items }, { token: Page }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: DetailService }, { token: TableSizeService }, { token: ColumnsService }, { token: i0.NgZone }, { token: KeyNavigationGridController }], target: i0.ɵɵFactoryTarget.Directive });
|
|
18291
18378
|
DatagridMainRenderer.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.2", type: DatagridMainRenderer, selector: "clr-datagrid", providers: [{ provide: DomAdapter, useFactory: domAdapterFactory, deps: [PLATFORM_ID] }], queries: [{ propertyName: "headers", predicate: DatagridHeaderRenderer }, { propertyName: "rows", predicate: DatagridRowRenderer }], ngImport: i0 });
|
|
18292
18379
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: DatagridMainRenderer, decorators: [{
|
|
18293
18380
|
type: Directive,
|
|
@@ -18295,7 +18382,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
18295
18382
|
selector: 'clr-datagrid',
|
|
18296
18383
|
providers: [{ provide: DomAdapter, useFactory: domAdapterFactory, deps: [PLATFORM_ID] }],
|
|
18297
18384
|
}]
|
|
18298
|
-
}], ctorParameters: function () { return [{ type:
|
|
18385
|
+
}], ctorParameters: function () { return [{ type: ClrDatagrid }, { type: DatagridRenderOrganizer }, { type: Items }, { type: Page }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: DetailService }, { type: TableSizeService }, { type: ColumnsService }, { type: i0.NgZone }, { type: KeyNavigationGridController }]; }, propDecorators: { headers: [{
|
|
18299
18386
|
type: ContentChildren,
|
|
18300
18387
|
args: [DatagridHeaderRenderer]
|
|
18301
18388
|
}], rows: [{
|
|
@@ -18933,8 +19020,8 @@ class RecursiveChildren {
|
|
|
18933
19020
|
this.featuresService = featuresService;
|
|
18934
19021
|
this.expandService = expandService;
|
|
18935
19022
|
if (expandService) {
|
|
18936
|
-
this.subscription =
|
|
18937
|
-
if (!value && this.parent && !
|
|
19023
|
+
this.subscription = expandService.expandChange.subscribe(value => {
|
|
19024
|
+
if (!value && this.parent && !featuresService.eager && featuresService.recursion) {
|
|
18938
19025
|
// In the case of lazy-loading recursive trees, we clear the children on collapse.
|
|
18939
19026
|
// This is better in case they change between two user interaction, and that way
|
|
18940
19027
|
// the app itself can decide whether to cache them or not.
|
|
@@ -19548,7 +19635,7 @@ class ClrTreeNode {
|
|
|
19548
19635
|
this.typeAheadKeyBuffer = '';
|
|
19549
19636
|
this.typeAheadKeyEvent = new Subject();
|
|
19550
19637
|
this.subscriptions = [];
|
|
19551
|
-
if (
|
|
19638
|
+
if (featuresService.recursion) {
|
|
19552
19639
|
// I'm completely stuck, we have to hack into private properties until either
|
|
19553
19640
|
// https://github.com/angular/angular/issues/14935 or https://github.com/angular/angular/issues/15998
|
|
19554
19641
|
// are fixed
|
|
@@ -19789,7 +19876,7 @@ class ClrTreeNode {
|
|
|
19789
19876
|
}
|
|
19790
19877
|
}
|
|
19791
19878
|
ClrTreeNode.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrTreeNode, deps: [{ token: PLATFORM_ID }, { token: ClrTreeNode, optional: true, skipSelf: true }, { token: TreeFeaturesService }, { token: IfExpandService }, { token: ClrCommonStringsService }, { token: TreeFocusManagerService }, { token: i0.ElementRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
19792
|
-
ClrTreeNode.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrTreeNode, selector: "clr-tree-node", inputs: { expandable: ["clrExpandable", "expandable"], disabled: ["clrDisabled", "disabled"], selected: ["clrSelected", "selected"], expanded: ["clrExpanded", "expanded"], clrForTypeAhead: "clrForTypeAhead" }, outputs: { selectedChange: "clrSelectedChange", expandedChange: "clrExpandedChange" }, host: { properties: { "class.clr-tree-node": "true", "class.disabled": "this._model.disabled" } }, providers: [TREE_FEATURES_PROVIDER, IfExpandService, { provide: LoadingListener, useExisting: IfExpandService }], queries: [{ propertyName: "treeNodeLinkList", predicate: ClrTreeNodeLink }], viewQueries: [{ propertyName: "contentContainer", first: true, predicate: ["contentContainer"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<!--\n ~ Copyright (c) 2016-2024 Broadcom. All Rights Reserved.\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n<div\n #contentContainer\n role=\"treeitem\"\n class=\"clr-tree-node-content-container\"\n tabindex=\"-1\"\n [class.clr-form-control-disabled]=\"disabled\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-expanded]=\"isExpandable() ? expanded : null\"\n [attr.aria-selected]=\"ariaSelected\"\n (keydown)=\"onKeyDown($event)\"\n (focus)=\"broadcastFocusOnContainer()\"\n>\n <button\n *ngIf=\"isExpandable() && !isModelLoading && !expandService.loading\"\n aria-hidden=\"true\"\n type=\"button\"\n tabindex=\"-1\"\n class=\"clr-treenode-caret\"\n (click)=\"expandService.toggle();\"\n (focus)=\"focusTreeNode()\"\n [disabled]=\"disabled\"\n >\n <cds-icon\n class=\"clr-treenode-caret-icon\"\n shape=\"angle\"\n [attr.direction]=\"expandService.expanded ? 'down' : 'right'\"\n ></cds-icon>\n </button>\n <div class=\"clr-treenode-spinner-container\" *ngIf=\"expandService.loading || isModelLoading\">\n <span class=\"clr-treenode-spinner spinner\"></span>\n </div>\n <div class=\"clr-checkbox-wrapper clr-treenode-checkbox\" *ngIf=\"featuresService.selectable\">\n <input\n aria-hidden=\"true\"\n type=\"checkbox\"\n id=\"{{nodeId}}-check\"\n class=\"clr-checkbox\"\n [disabled]=\"disabled\"\n [checked]=\"_model.selected.value === STATES.SELECTED\"\n [indeterminate]=\"_model.selected.value === STATES.INDETERMINATE\"\n (change)=\"_model.toggleSelection(featuresService.eager)\"\n (focus)=\"focusTreeNode()\"\n tabindex=\"-1\"\n />\n <label for=\"{{nodeId}}-check\" class=\"clr-control-label\">\n <ng-container [ngTemplateOutlet]=\"treenodeContent\"></ng-container>\n </label>\n </div>\n <div\n class=\"clr-treenode-content\"\n [class.clr-treenode-text-only]=\"treeNodeContentTextOnly\"\n (mouseup)=\"focusTreeNode()\"\n *ngIf=\"!featuresService.selectable\"\n >\n <ng-container [ngTemplateOutlet]=\"treenodeContent\"></ng-container>\n </div>\n\n <ng-template #treenodeContent>\n <ng-content></ng-content>\n <div class=\"clr-sr-only\" *ngIf=\"featuresService.selectable || ariaSelected\">\n <span
|
|
19879
|
+
ClrTreeNode.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrTreeNode, selector: "clr-tree-node", inputs: { expandable: ["clrExpandable", "expandable"], disabled: ["clrDisabled", "disabled"], selected: ["clrSelected", "selected"], expanded: ["clrExpanded", "expanded"], clrForTypeAhead: "clrForTypeAhead" }, outputs: { selectedChange: "clrSelectedChange", expandedChange: "clrExpandedChange" }, host: { properties: { "class.clr-tree-node": "true", "class.disabled": "this._model.disabled" } }, providers: [TREE_FEATURES_PROVIDER, IfExpandService, { provide: LoadingListener, useExisting: IfExpandService }], queries: [{ propertyName: "treeNodeLinkList", predicate: ClrTreeNodeLink }], viewQueries: [{ propertyName: "contentContainer", first: true, predicate: ["contentContainer"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<!--\n ~ Copyright (c) 2016-2024 Broadcom. All Rights Reserved.\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n<div\n #contentContainer\n role=\"treeitem\"\n class=\"clr-tree-node-content-container\"\n tabindex=\"-1\"\n [class.clr-form-control-disabled]=\"disabled\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-expanded]=\"isExpandable() ? expanded : null\"\n [attr.aria-selected]=\"ariaSelected\"\n (keydown)=\"onKeyDown($event)\"\n (focus)=\"broadcastFocusOnContainer()\"\n>\n <button\n *ngIf=\"isExpandable() && !isModelLoading && !expandService.loading\"\n aria-hidden=\"true\"\n type=\"button\"\n tabindex=\"-1\"\n class=\"clr-treenode-caret\"\n (click)=\"expandService.toggle();\"\n (focus)=\"focusTreeNode()\"\n [disabled]=\"disabled\"\n >\n <cds-icon\n class=\"clr-treenode-caret-icon\"\n shape=\"angle\"\n [attr.direction]=\"expandService.expanded ? 'down' : 'right'\"\n ></cds-icon>\n </button>\n <div class=\"clr-treenode-spinner-container\" *ngIf=\"expandService.loading || isModelLoading\">\n <span class=\"clr-treenode-spinner spinner\"></span>\n </div>\n <div class=\"clr-checkbox-wrapper clr-treenode-checkbox\" *ngIf=\"featuresService.selectable\">\n <input\n aria-hidden=\"true\"\n type=\"checkbox\"\n id=\"{{nodeId}}-check\"\n class=\"clr-checkbox\"\n [disabled]=\"disabled\"\n [checked]=\"_model.selected.value === STATES.SELECTED\"\n [indeterminate]=\"_model.selected.value === STATES.INDETERMINATE\"\n (change)=\"_model.toggleSelection(featuresService.eager)\"\n (focus)=\"focusTreeNode()\"\n tabindex=\"-1\"\n />\n <label for=\"{{nodeId}}-check\" class=\"clr-control-label\">\n <ng-container [ngTemplateOutlet]=\"treenodeContent\"></ng-container>\n </label>\n </div>\n <div\n class=\"clr-treenode-content\"\n [class.clr-treenode-text-only]=\"treeNodeContentTextOnly\"\n (mouseup)=\"focusTreeNode()\"\n *ngIf=\"!featuresService.selectable\"\n >\n <ng-container [ngTemplateOutlet]=\"treenodeContent\"></ng-container>\n </div>\n\n <ng-template #treenodeContent>\n <ng-content></ng-content>\n <div class=\"clr-sr-only\" *ngIf=\"featuresService.selectable || ariaSelected\">\n <span> {{ariaSelected ? commonStrings.keys.selectedTreeNode : commonStrings.keys.unselectedTreeNode}}</span>\n </div>\n </ng-template>\n</div>\n<div\n class=\"clr-treenode-children\"\n [@toggleChildrenAnim]=\"expandService.expanded ? 'expanded' : 'collapsed'\"\n [attr.role]=\"isExpandable() && !featuresService.recursion ? 'group' : null\"\n>\n <ng-content select=\"clr-tree-node\"></ng-content>\n <ng-content select=\"[clrIfExpanded]\"></ng-content>\n <clr-recursive-children [parent]=\"_model\"></clr-recursive-children>\n</div>\n", dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: CdsIconCustomTag, selector: "cds-icon" }, { kind: "component", type: RecursiveChildren, selector: "clr-recursive-children", inputs: ["parent", "children"] }], animations: [
|
|
19793
19880
|
trigger('toggleChildrenAnim', [
|
|
19794
19881
|
transition('collapsed => expanded', [style({ height: 0 }), animate(200, style({ height: '*' }))]),
|
|
19795
19882
|
transition('expanded => collapsed', [style({ height: '*' }), animate(200, style({ height: 0 }))]),
|
|
@@ -19809,7 +19896,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
19809
19896
|
], host: {
|
|
19810
19897
|
'[class.clr-tree-node]': 'true',
|
|
19811
19898
|
'[class.disabled]': 'this._model.disabled',
|
|
19812
|
-
}, template: "<!--\n ~ Copyright (c) 2016-2024 Broadcom. All Rights Reserved.\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n<div\n #contentContainer\n role=\"treeitem\"\n class=\"clr-tree-node-content-container\"\n tabindex=\"-1\"\n [class.clr-form-control-disabled]=\"disabled\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-expanded]=\"isExpandable() ? expanded : null\"\n [attr.aria-selected]=\"ariaSelected\"\n (keydown)=\"onKeyDown($event)\"\n (focus)=\"broadcastFocusOnContainer()\"\n>\n <button\n *ngIf=\"isExpandable() && !isModelLoading && !expandService.loading\"\n aria-hidden=\"true\"\n type=\"button\"\n tabindex=\"-1\"\n class=\"clr-treenode-caret\"\n (click)=\"expandService.toggle();\"\n (focus)=\"focusTreeNode()\"\n [disabled]=\"disabled\"\n >\n <cds-icon\n class=\"clr-treenode-caret-icon\"\n shape=\"angle\"\n [attr.direction]=\"expandService.expanded ? 'down' : 'right'\"\n ></cds-icon>\n </button>\n <div class=\"clr-treenode-spinner-container\" *ngIf=\"expandService.loading || isModelLoading\">\n <span class=\"clr-treenode-spinner spinner\"></span>\n </div>\n <div class=\"clr-checkbox-wrapper clr-treenode-checkbox\" *ngIf=\"featuresService.selectable\">\n <input\n aria-hidden=\"true\"\n type=\"checkbox\"\n id=\"{{nodeId}}-check\"\n class=\"clr-checkbox\"\n [disabled]=\"disabled\"\n [checked]=\"_model.selected.value === STATES.SELECTED\"\n [indeterminate]=\"_model.selected.value === STATES.INDETERMINATE\"\n (change)=\"_model.toggleSelection(featuresService.eager)\"\n (focus)=\"focusTreeNode()\"\n tabindex=\"-1\"\n />\n <label for=\"{{nodeId}}-check\" class=\"clr-control-label\">\n <ng-container [ngTemplateOutlet]=\"treenodeContent\"></ng-container>\n </label>\n </div>\n <div\n class=\"clr-treenode-content\"\n [class.clr-treenode-text-only]=\"treeNodeContentTextOnly\"\n (mouseup)=\"focusTreeNode()\"\n *ngIf=\"!featuresService.selectable\"\n >\n <ng-container [ngTemplateOutlet]=\"treenodeContent\"></ng-container>\n </div>\n\n <ng-template #treenodeContent>\n <ng-content></ng-content>\n <div class=\"clr-sr-only\" *ngIf=\"featuresService.selectable || ariaSelected\">\n <span
|
|
19899
|
+
}, template: "<!--\n ~ Copyright (c) 2016-2024 Broadcom. All Rights Reserved.\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n<div\n #contentContainer\n role=\"treeitem\"\n class=\"clr-tree-node-content-container\"\n tabindex=\"-1\"\n [class.clr-form-control-disabled]=\"disabled\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-expanded]=\"isExpandable() ? expanded : null\"\n [attr.aria-selected]=\"ariaSelected\"\n (keydown)=\"onKeyDown($event)\"\n (focus)=\"broadcastFocusOnContainer()\"\n>\n <button\n *ngIf=\"isExpandable() && !isModelLoading && !expandService.loading\"\n aria-hidden=\"true\"\n type=\"button\"\n tabindex=\"-1\"\n class=\"clr-treenode-caret\"\n (click)=\"expandService.toggle();\"\n (focus)=\"focusTreeNode()\"\n [disabled]=\"disabled\"\n >\n <cds-icon\n class=\"clr-treenode-caret-icon\"\n shape=\"angle\"\n [attr.direction]=\"expandService.expanded ? 'down' : 'right'\"\n ></cds-icon>\n </button>\n <div class=\"clr-treenode-spinner-container\" *ngIf=\"expandService.loading || isModelLoading\">\n <span class=\"clr-treenode-spinner spinner\"></span>\n </div>\n <div class=\"clr-checkbox-wrapper clr-treenode-checkbox\" *ngIf=\"featuresService.selectable\">\n <input\n aria-hidden=\"true\"\n type=\"checkbox\"\n id=\"{{nodeId}}-check\"\n class=\"clr-checkbox\"\n [disabled]=\"disabled\"\n [checked]=\"_model.selected.value === STATES.SELECTED\"\n [indeterminate]=\"_model.selected.value === STATES.INDETERMINATE\"\n (change)=\"_model.toggleSelection(featuresService.eager)\"\n (focus)=\"focusTreeNode()\"\n tabindex=\"-1\"\n />\n <label for=\"{{nodeId}}-check\" class=\"clr-control-label\">\n <ng-container [ngTemplateOutlet]=\"treenodeContent\"></ng-container>\n </label>\n </div>\n <div\n class=\"clr-treenode-content\"\n [class.clr-treenode-text-only]=\"treeNodeContentTextOnly\"\n (mouseup)=\"focusTreeNode()\"\n *ngIf=\"!featuresService.selectable\"\n >\n <ng-container [ngTemplateOutlet]=\"treenodeContent\"></ng-container>\n </div>\n\n <ng-template #treenodeContent>\n <ng-content></ng-content>\n <div class=\"clr-sr-only\" *ngIf=\"featuresService.selectable || ariaSelected\">\n <span> {{ariaSelected ? commonStrings.keys.selectedTreeNode : commonStrings.keys.unselectedTreeNode}}</span>\n </div>\n </ng-template>\n</div>\n<div\n class=\"clr-treenode-children\"\n [@toggleChildrenAnim]=\"expandService.expanded ? 'expanded' : 'collapsed'\"\n [attr.role]=\"isExpandable() && !featuresService.recursion ? 'group' : null\"\n>\n <ng-content select=\"clr-tree-node\"></ng-content>\n <ng-content select=\"[clrIfExpanded]\"></ng-content>\n <clr-recursive-children [parent]=\"_model\"></clr-recursive-children>\n</div>\n" }]
|
|
19813
19900
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
19814
19901
|
type: Inject,
|
|
19815
19902
|
args: [PLATFORM_ID]
|
|
@@ -19856,18 +19943,21 @@ function trimAndLowerCase(value) {
|
|
|
19856
19943
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
19857
19944
|
*/
|
|
19858
19945
|
class ClrTree {
|
|
19859
|
-
constructor(featuresService, focusManagerService,
|
|
19946
|
+
constructor(featuresService, focusManagerService, renderer, el, ngZone) {
|
|
19860
19947
|
this.featuresService = featuresService;
|
|
19861
19948
|
this.focusManagerService = focusManagerService;
|
|
19949
|
+
this.renderer = renderer;
|
|
19950
|
+
this.el = el;
|
|
19862
19951
|
this.subscriptions = [];
|
|
19863
|
-
|
|
19864
|
-
|
|
19952
|
+
this._isMultiSelectable = false;
|
|
19953
|
+
const subscription = ngZone.runOutsideAngular(() => fromEvent(el.nativeElement, 'focusin').subscribe((event) => {
|
|
19954
|
+
if (event.target === el.nativeElement) {
|
|
19865
19955
|
// After discussing with the team, I've made it so that when the tree receives focus, the first visible node will be focused.
|
|
19866
19956
|
// This will prevent from the page scrolling abruptly to the first selected node if it exist in a deeply nested tree.
|
|
19867
|
-
|
|
19957
|
+
focusManagerService.focusFirstVisibleNode();
|
|
19868
19958
|
// when the first child gets focus,
|
|
19869
19959
|
// tree should no longer have tabindex of 0.
|
|
19870
|
-
renderer.removeAttribute(nativeElement, 'tabindex');
|
|
19960
|
+
renderer.removeAttribute(el.nativeElement, 'tabindex');
|
|
19871
19961
|
}
|
|
19872
19962
|
}));
|
|
19873
19963
|
this.subscriptions.push(subscription);
|
|
@@ -19876,17 +19966,28 @@ class ClrTree {
|
|
|
19876
19966
|
this.featuresService.eager = !value;
|
|
19877
19967
|
}
|
|
19878
19968
|
get isMultiSelectable() {
|
|
19879
|
-
return this.
|
|
19969
|
+
return this._isMultiSelectable;
|
|
19880
19970
|
}
|
|
19881
19971
|
ngAfterContentInit() {
|
|
19882
19972
|
this.setRootNodes();
|
|
19883
19973
|
this.subscriptions.push(this.rootNodes.changes.subscribe(() => {
|
|
19974
|
+
this.setMultiSelectable();
|
|
19884
19975
|
this.setRootNodes();
|
|
19885
19976
|
}));
|
|
19886
19977
|
}
|
|
19887
19978
|
ngOnDestroy() {
|
|
19888
19979
|
this.subscriptions.forEach(sub => sub.unsubscribe());
|
|
19889
19980
|
}
|
|
19981
|
+
setMultiSelectable() {
|
|
19982
|
+
if (this.featuresService.selectable && this.rootNodes.length > 0) {
|
|
19983
|
+
this._isMultiSelectable = true;
|
|
19984
|
+
this.renderer.setAttribute(this.el.nativeElement, 'aria-multiselectable', 'true');
|
|
19985
|
+
}
|
|
19986
|
+
else {
|
|
19987
|
+
this._isMultiSelectable = false;
|
|
19988
|
+
this.renderer.removeAttribute(this.el.nativeElement, 'aria-multiselectable');
|
|
19989
|
+
}
|
|
19990
|
+
}
|
|
19890
19991
|
setRootNodes() {
|
|
19891
19992
|
// if node has no parent, it's a root node
|
|
19892
19993
|
// for recursive tree, this.rootNodes registers also nested children
|
|
@@ -19894,8 +19995,8 @@ class ClrTree {
|
|
|
19894
19995
|
this.focusManagerService.rootNodeModels = this.rootNodes.map(node => node._model).filter(node => !node.parent);
|
|
19895
19996
|
}
|
|
19896
19997
|
}
|
|
19897
|
-
ClrTree.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrTree, deps: [{ token: TreeFeaturesService }, { token: TreeFocusManagerService }, { token: i0.
|
|
19898
|
-
ClrTree.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrTree, selector: "clr-tree", inputs: { lazy: ["clrLazy", "lazy"] }, host: { attributes: { "tabindex": "0" }, properties: { "attr.role": "\"tree\""
|
|
19998
|
+
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 });
|
|
19999
|
+
ClrTree.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrTree, selector: "clr-tree", inputs: { lazy: ["clrLazy", "lazy"] }, host: { attributes: { "tabindex": "0" }, properties: { "attr.role": "\"tree\"" } }, providers: [TREE_FEATURES_PROVIDER, TreeFocusManagerService], queries: [{ propertyName: "rootNodes", predicate: ClrTreeNode }], ngImport: i0, template: `
|
|
19899
20000
|
<ng-content></ng-content>
|
|
19900
20001
|
<clr-recursive-children
|
|
19901
20002
|
*ngIf="featuresService.recursion"
|
|
@@ -19917,10 +20018,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
19917
20018
|
host: {
|
|
19918
20019
|
tabindex: '0',
|
|
19919
20020
|
'[attr.role]': '"tree"',
|
|
19920
|
-
'[attr.aria-multiselectable]': 'isMultiSelectable',
|
|
19921
20021
|
},
|
|
19922
20022
|
}]
|
|
19923
|
-
}], ctorParameters: function () { return [{ type: TreeFeaturesService }, { type: TreeFocusManagerService }, { type: i0.
|
|
20023
|
+
}], ctorParameters: function () { return [{ type: TreeFeaturesService }, { type: TreeFocusManagerService }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { rootNodes: [{
|
|
19924
20024
|
type: ContentChildren,
|
|
19925
20025
|
args: [ClrTreeNode]
|
|
19926
20026
|
}], lazy: [{
|
|
@@ -20007,7 +20107,7 @@ class DropdownFocusHandler {
|
|
|
20007
20107
|
this._unlistenFuncs = [];
|
|
20008
20108
|
this.resetChildren();
|
|
20009
20109
|
this.moveToFirstItemWhenOpen();
|
|
20010
|
-
if (!
|
|
20110
|
+
if (!parent) {
|
|
20011
20111
|
this.handleRootFocus();
|
|
20012
20112
|
}
|
|
20013
20113
|
}
|
|
@@ -20205,11 +20305,10 @@ class ClrDropdown {
|
|
|
20205
20305
|
this.parent = parent;
|
|
20206
20306
|
this.toggleService = toggleService;
|
|
20207
20307
|
this.focusHandler = focusHandler;
|
|
20208
|
-
this.cdr = cdr;
|
|
20209
20308
|
this.isMenuClosable = true;
|
|
20210
20309
|
this.subscriptions = [];
|
|
20211
|
-
this.subscriptions.push(dropdownService.changes.subscribe(value => (
|
|
20212
|
-
this.subscriptions.push(toggleService.openChange.subscribe(() =>
|
|
20310
|
+
this.subscriptions.push(dropdownService.changes.subscribe(value => (toggleService.open = value)));
|
|
20311
|
+
this.subscriptions.push(toggleService.openChange.subscribe(() => cdr.markForCheck()));
|
|
20213
20312
|
}
|
|
20214
20313
|
ngOnDestroy() {
|
|
20215
20314
|
this.subscriptions.forEach(sub => sub.unsubscribe());
|
|
@@ -21835,12 +21934,12 @@ class ClrHeader {
|
|
|
21835
21934
|
this.isNavLevel2OnPage = false;
|
|
21836
21935
|
this.openNavLevel = null;
|
|
21837
21936
|
this.responsiveNavCodes = ResponsiveNavCodes;
|
|
21838
|
-
this._subscription =
|
|
21937
|
+
this._subscription = responsiveNavService.registeredNavs.subscribe({
|
|
21839
21938
|
next: (navLevelList) => {
|
|
21840
21939
|
this.initializeNavTriggers(navLevelList);
|
|
21841
21940
|
},
|
|
21842
21941
|
});
|
|
21843
|
-
this._subscription.add(
|
|
21942
|
+
this._subscription.add(responsiveNavService.navControl
|
|
21844
21943
|
.pipe(filter(({ controlCode }) => controlCode === ResponsiveNavCodes.NAV_CLOSE || controlCode === ResponsiveNavCodes.NAV_CLOSE_ALL))
|
|
21845
21944
|
.subscribe(() => {
|
|
21846
21945
|
this.openNavLevel = null;
|
|
@@ -21974,15 +22073,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
21974
22073
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
21975
22074
|
*/
|
|
21976
22075
|
const createCloseButton = (document, ariaLabel) => {
|
|
22076
|
+
ClarityIcons.addIcons(timesIcon);
|
|
21977
22077
|
const closeButton = document.createElement('button');
|
|
21978
22078
|
closeButton.setAttribute('aria-label', ariaLabel);
|
|
21979
22079
|
closeButton.setAttribute('aria-hidden', 'true');
|
|
21980
22080
|
closeButton.innerHTML = `
|
|
21981
22081
|
<cds-icon
|
|
21982
22082
|
inner-offset="1"
|
|
21983
|
-
shape="
|
|
22083
|
+
shape="times"
|
|
21984
22084
|
size="32"
|
|
21985
|
-
|
|
22085
|
+
></cds-icon>
|
|
21986
22086
|
`;
|
|
21987
22087
|
/**
|
|
21988
22088
|
* The button is hidden by default based on our Desktop-first approach.
|
|
@@ -22457,8 +22557,6 @@ class ClrTabLink {
|
|
|
22457
22557
|
this.ifActiveService = ifActiveService;
|
|
22458
22558
|
this.id = id;
|
|
22459
22559
|
this.el = el;
|
|
22460
|
-
this.cfr = cfr;
|
|
22461
|
-
this.viewContainerRef = viewContainerRef;
|
|
22462
22560
|
this.tabsService = tabsService;
|
|
22463
22561
|
this.tabsId = tabsId;
|
|
22464
22562
|
if (!this.tabLinkId) {
|
|
@@ -22467,9 +22565,9 @@ class ClrTabLink {
|
|
|
22467
22565
|
// Tab links can be rendered in one of two places: in the main area or inside the overflow dropdown menu.
|
|
22468
22566
|
// Here, we create a container so that its template can be used to create embeddedView on the fly.
|
|
22469
22567
|
// See TabsService's renderView() method and how it's used in Tabs class for an example.
|
|
22470
|
-
const factory =
|
|
22471
|
-
this.templateRefContainer =
|
|
22472
|
-
[
|
|
22568
|
+
const factory = cfr.resolveComponentFactory(TemplateRefContainer);
|
|
22569
|
+
this.templateRefContainer = viewContainerRef.createComponent(factory, undefined, undefined, [
|
|
22570
|
+
[el.nativeElement],
|
|
22473
22571
|
]).instance;
|
|
22474
22572
|
}
|
|
22475
22573
|
get inOverflow() {
|
|
@@ -23051,7 +23149,7 @@ class ClrVerticalNav {
|
|
|
23051
23149
|
this._navGroupRegistrationService = _navGroupRegistrationService;
|
|
23052
23150
|
this.commonStrings = commonStrings;
|
|
23053
23151
|
this._collapsedChanged = new EventEmitter(true);
|
|
23054
|
-
this._sub =
|
|
23152
|
+
this._sub = _navService.collapsedChanged.subscribe(value => {
|
|
23055
23153
|
this._collapsedChanged.emit(value);
|
|
23056
23154
|
});
|
|
23057
23155
|
}
|
|
@@ -23139,27 +23237,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
23139
23237
|
const EXPANDED_STATE = 'expanded';
|
|
23140
23238
|
const COLLAPSED_STATE = 'collapsed';
|
|
23141
23239
|
class ClrVerticalNavGroup {
|
|
23142
|
-
constructor(_itemExpand, _navGroupRegistrationService,
|
|
23240
|
+
constructor(_itemExpand, _navGroupRegistrationService, navGroupService, _navService, commonStrings) {
|
|
23143
23241
|
this._itemExpand = _itemExpand;
|
|
23144
23242
|
this._navGroupRegistrationService = _navGroupRegistrationService;
|
|
23145
|
-
this._navGroupService = _navGroupService;
|
|
23146
23243
|
this._navService = _navService;
|
|
23147
23244
|
this.commonStrings = commonStrings;
|
|
23148
23245
|
this.expandedChange = new EventEmitter(true);
|
|
23149
23246
|
this.wasExpanded = false;
|
|
23150
23247
|
this._subscriptions = [];
|
|
23151
23248
|
this._expandAnimationState = COLLAPSED_STATE;
|
|
23152
|
-
|
|
23249
|
+
_navGroupRegistrationService.registerNavGroup();
|
|
23153
23250
|
// FIXME: This subscription handles a corner case
|
|
23154
23251
|
// Vertical Nav collapse requires the animation to run first and then
|
|
23155
23252
|
// remove the nodes from the DOM. If the user directly sets the input
|
|
23156
23253
|
// on the clrIfExpanded directive, we have no chance to run the animation
|
|
23157
23254
|
// and wait for it to complete. This subscription makes sure that the
|
|
23158
23255
|
// animation states are correct for that edge case.
|
|
23159
|
-
this._subscriptions.push(
|
|
23256
|
+
this._subscriptions.push(_itemExpand.expandChange.subscribe(value => {
|
|
23160
23257
|
if (value && this.expandAnimationState === COLLAPSED_STATE) {
|
|
23161
|
-
if (
|
|
23162
|
-
|
|
23258
|
+
if (_navService.collapsed) {
|
|
23259
|
+
_navService.collapsed = false;
|
|
23163
23260
|
}
|
|
23164
23261
|
this.expandAnimationState = EXPANDED_STATE;
|
|
23165
23262
|
}
|
|
@@ -23169,7 +23266,7 @@ class ClrVerticalNavGroup {
|
|
|
23169
23266
|
}));
|
|
23170
23267
|
// 1. If the nav is collapsing, close the open nav group + save its state
|
|
23171
23268
|
// 2. If the nav is expanding, expand the nav group if the previous state was expanded
|
|
23172
|
-
this._subscriptions.push(
|
|
23269
|
+
this._subscriptions.push(_navService.animateOnCollapsed.subscribe((goingToCollapse) => {
|
|
23173
23270
|
if (goingToCollapse && this.expanded) {
|
|
23174
23271
|
this.wasExpanded = true;
|
|
23175
23272
|
this.expandAnimationState = COLLAPSED_STATE;
|
|
@@ -23180,7 +23277,7 @@ class ClrVerticalNavGroup {
|
|
|
23180
23277
|
}
|
|
23181
23278
|
}));
|
|
23182
23279
|
// If a link is clicked, expand the nav group
|
|
23183
|
-
this._subscriptions.push(
|
|
23280
|
+
this._subscriptions.push(navGroupService.expandChange.subscribe((expand) => {
|
|
23184
23281
|
if (expand && !this.expanded) {
|
|
23185
23282
|
this.expandGroup();
|
|
23186
23283
|
}
|
|
@@ -23309,7 +23406,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
23309
23406
|
class ClrVerticalNavIcon {
|
|
23310
23407
|
constructor(_verticalNavIconService) {
|
|
23311
23408
|
this._verticalNavIconService = _verticalNavIconService;
|
|
23312
|
-
|
|
23409
|
+
_verticalNavIconService.registerIcon();
|
|
23313
23410
|
}
|
|
23314
23411
|
ngOnDestroy() {
|
|
23315
23412
|
this._verticalNavIconService.unregisterIcon();
|
|
@@ -23473,9 +23570,10 @@ class ClrModalConfigurationService {
|
|
|
23473
23570
|
}
|
|
23474
23571
|
}
|
|
23475
23572
|
ClrModalConfigurationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrModalConfigurationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
23476
|
-
ClrModalConfigurationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrModalConfigurationService });
|
|
23573
|
+
ClrModalConfigurationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrModalConfigurationService, providedIn: 'root' });
|
|
23477
23574
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrModalConfigurationService, decorators: [{
|
|
23478
|
-
type: Injectable
|
|
23575
|
+
type: Injectable,
|
|
23576
|
+
args: [{ providedIn: 'root' }]
|
|
23479
23577
|
}] });
|
|
23480
23578
|
|
|
23481
23579
|
/*
|
|
@@ -23657,11 +23755,11 @@ class ClrModalBody {
|
|
|
23657
23755
|
this.unlisteners = [];
|
|
23658
23756
|
ngZone.runOutsideAngular(() => {
|
|
23659
23757
|
this.observer = new ResizeObserver(() => this.addOrRemoveTabIndex());
|
|
23660
|
-
this.observer.observe(
|
|
23661
|
-
this.unlisteners.push(
|
|
23758
|
+
this.observer.observe(host.nativeElement);
|
|
23759
|
+
this.unlisteners.push(renderer.listen(host.nativeElement, 'mouseup', () => {
|
|
23662
23760
|
// set the tabindex binding back when click is completed with mouseup
|
|
23663
23761
|
this.addOrRemoveTabIndex();
|
|
23664
|
-
}),
|
|
23762
|
+
}), renderer.listen(host.nativeElement, 'mousedown', () => {
|
|
23665
23763
|
// tabindex = 0 binding should be removed
|
|
23666
23764
|
// so it won't be focused when click starts with mousedown
|
|
23667
23765
|
this.removeTabIndex();
|
|
@@ -23714,14 +23812,13 @@ class ClrModalModule {
|
|
|
23714
23812
|
}
|
|
23715
23813
|
ClrModalModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
23716
23814
|
ClrModalModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.2", ngImport: i0, type: ClrModalModule, declarations: [ClrModal, ClrModalBody], imports: [CommonModule, CdkTrapFocusModule, ClrIconModule], exports: [ClrModal, ClrModalBody, ClrIconModule] });
|
|
23717
|
-
ClrModalModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrModalModule,
|
|
23815
|
+
ClrModalModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrModalModule, imports: [CommonModule, CdkTrapFocusModule, ClrIconModule, ClrIconModule] });
|
|
23718
23816
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrModalModule, decorators: [{
|
|
23719
23817
|
type: NgModule,
|
|
23720
23818
|
args: [{
|
|
23721
23819
|
imports: [CommonModule, CdkTrapFocusModule, ClrIconModule],
|
|
23722
23820
|
declarations: [CLR_MODAL_DIRECTIVES],
|
|
23723
23821
|
exports: [CLR_MODAL_DIRECTIVES, ClrIconModule],
|
|
23724
|
-
providers: [ClrModalConfigurationService],
|
|
23725
23822
|
}]
|
|
23726
23823
|
}], ctorParameters: function () { return []; } });
|
|
23727
23824
|
|
|
@@ -23879,7 +23976,6 @@ class ClrSignpostContent extends AbstractPopover {
|
|
|
23879
23976
|
constructor(injector, parentHost, commonStrings, signpostIdService, signpostFocusManager, platformId, document) {
|
|
23880
23977
|
super(injector, parentHost);
|
|
23881
23978
|
this.commonStrings = commonStrings;
|
|
23882
|
-
this.signpostIdService = signpostIdService;
|
|
23883
23979
|
this.signpostFocusManager = signpostFocusManager;
|
|
23884
23980
|
this.platformId = platformId;
|
|
23885
23981
|
this.signpostContentId = uniqueIdFactory();
|
|
@@ -23889,7 +23985,7 @@ class ClrSignpostContent extends AbstractPopover {
|
|
|
23889
23985
|
// Defaults
|
|
23890
23986
|
this.position = 'right-middle';
|
|
23891
23987
|
this.closeOnOutsideClick = true;
|
|
23892
|
-
|
|
23988
|
+
signpostIdService.setId(this.signpostContentId);
|
|
23893
23989
|
this.document = document;
|
|
23894
23990
|
}
|
|
23895
23991
|
/*********
|
|
@@ -24274,11 +24370,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
24274
24370
|
class ClrTooltipTrigger {
|
|
24275
24371
|
constructor(toggleService, tooltipIdService, tooltipMouseService) {
|
|
24276
24372
|
this.toggleService = toggleService;
|
|
24277
|
-
this.tooltipIdService = tooltipIdService;
|
|
24278
24373
|
this.tooltipMouseService = tooltipMouseService;
|
|
24279
24374
|
this.subs = [];
|
|
24280
24375
|
// The aria-described by comes from the id of content. It
|
|
24281
|
-
this.subs.push(
|
|
24376
|
+
this.subs.push(tooltipIdService.id.subscribe(tooltipId => (this.ariaDescribedBy = tooltipId)));
|
|
24282
24377
|
}
|
|
24283
24378
|
ngOnDestroy() {
|
|
24284
24379
|
this.subs.forEach(sub => sub.unsubscribe());
|
|
@@ -25390,7 +25485,7 @@ class WizardNavigationService {
|
|
|
25390
25485
|
* @memberof WizardNavigationService
|
|
25391
25486
|
*/
|
|
25392
25487
|
this._cancelWizard = new Subject();
|
|
25393
|
-
this.previousButtonSubscription =
|
|
25488
|
+
this.previousButtonSubscription = buttonService.previousBtnClicked.subscribe(() => {
|
|
25394
25489
|
const currentPage = this.currentPage;
|
|
25395
25490
|
if (this.currentPageIsFirst || currentPage.previousStepDisabled) {
|
|
25396
25491
|
return;
|
|
@@ -25400,21 +25495,21 @@ class WizardNavigationService {
|
|
|
25400
25495
|
this.previous();
|
|
25401
25496
|
}
|
|
25402
25497
|
});
|
|
25403
|
-
this.nextButtonSubscription =
|
|
25498
|
+
this.nextButtonSubscription = buttonService.nextBtnClicked.subscribe(() => {
|
|
25404
25499
|
this.checkAndCommitCurrentPage('next');
|
|
25405
25500
|
});
|
|
25406
|
-
this.dangerButtonSubscription =
|
|
25501
|
+
this.dangerButtonSubscription = buttonService.dangerBtnClicked.subscribe(() => {
|
|
25407
25502
|
this.checkAndCommitCurrentPage('danger');
|
|
25408
25503
|
});
|
|
25409
|
-
this.finishButtonSubscription =
|
|
25504
|
+
this.finishButtonSubscription = buttonService.finishBtnClicked.subscribe(() => {
|
|
25410
25505
|
this.checkAndCommitCurrentPage('finish');
|
|
25411
25506
|
});
|
|
25412
|
-
this.customButtonSubscription =
|
|
25507
|
+
this.customButtonSubscription = buttonService.customBtnClicked.subscribe((type) => {
|
|
25413
25508
|
if (!this.wizardStopNavigation) {
|
|
25414
25509
|
this.currentPage.customButtonClicked.emit(type);
|
|
25415
25510
|
}
|
|
25416
25511
|
});
|
|
25417
|
-
this.cancelButtonSubscription =
|
|
25512
|
+
this.cancelButtonSubscription = buttonService.cancelBtnClicked.subscribe(() => {
|
|
25418
25513
|
if (this.wizardStopNavigation) {
|
|
25419
25514
|
return;
|
|
25420
25515
|
}
|
|
@@ -25425,7 +25520,7 @@ class WizardNavigationService {
|
|
|
25425
25520
|
this.cancel();
|
|
25426
25521
|
}
|
|
25427
25522
|
});
|
|
25428
|
-
this.pagesResetSubscription =
|
|
25523
|
+
this.pagesResetSubscription = pageCollection.pagesReset.subscribe(() => {
|
|
25429
25524
|
this.setFirstPageCurrent();
|
|
25430
25525
|
});
|
|
25431
25526
|
}
|
|
@@ -26763,16 +26858,23 @@ ClrWizardStepnavItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", v
|
|
|
26763
26858
|
[attr.disabled]="isDisabled ? '' : null"
|
|
26764
26859
|
>
|
|
26765
26860
|
<div class="clr-wizard-stepnav-link-icon">
|
|
26766
|
-
<cds-icon
|
|
26767
|
-
|
|
26861
|
+
<cds-icon
|
|
26862
|
+
*ngIf="hasError"
|
|
26863
|
+
shape="error-standard"
|
|
26864
|
+
[attr.aria-label]="commonStrings.keys.wizardStepError"
|
|
26865
|
+
></cds-icon>
|
|
26866
|
+
<cds-icon
|
|
26867
|
+
*ngIf="!hasError && isComplete"
|
|
26868
|
+
shape="success-standard"
|
|
26869
|
+
[attr.aria-label]="commonStrings.keys.wizardStepSuccess"
|
|
26870
|
+
></cds-icon>
|
|
26768
26871
|
</div>
|
|
26769
26872
|
|
|
26873
|
+
<span class="clr-sr-only">{{ commonStrings.keys.wizardStep }}</span>
|
|
26770
26874
|
<div class="clr-wizard-stepnav-link-page-number"><ng-content></ng-content></div>
|
|
26771
26875
|
<span class="clr-wizard-stepnav-link-title">
|
|
26772
26876
|
<ng-template [ngTemplateOutlet]="page.navTitle"></ng-template>
|
|
26773
26877
|
</span>
|
|
26774
|
-
<span *ngIf="hasError" class="clr-sr-only">{{ commonStrings.keys.wizardStepError }}</span>
|
|
26775
|
-
<span *ngIf="!hasError && isComplete" class="clr-sr-only">{{ commonStrings.keys.wizardStepSuccess }}</span>
|
|
26776
26878
|
</button>
|
|
26777
26879
|
`, isInline: true, 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" }] });
|
|
26778
26880
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrWizardStepnavItem, decorators: [{
|
|
@@ -26787,16 +26889,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
26787
26889
|
[attr.disabled]="isDisabled ? '' : null"
|
|
26788
26890
|
>
|
|
26789
26891
|
<div class="clr-wizard-stepnav-link-icon">
|
|
26790
|
-
<cds-icon
|
|
26791
|
-
|
|
26892
|
+
<cds-icon
|
|
26893
|
+
*ngIf="hasError"
|
|
26894
|
+
shape="error-standard"
|
|
26895
|
+
[attr.aria-label]="commonStrings.keys.wizardStepError"
|
|
26896
|
+
></cds-icon>
|
|
26897
|
+
<cds-icon
|
|
26898
|
+
*ngIf="!hasError && isComplete"
|
|
26899
|
+
shape="success-standard"
|
|
26900
|
+
[attr.aria-label]="commonStrings.keys.wizardStepSuccess"
|
|
26901
|
+
></cds-icon>
|
|
26792
26902
|
</div>
|
|
26793
26903
|
|
|
26904
|
+
<span class="clr-sr-only">{{ commonStrings.keys.wizardStep }}</span>
|
|
26794
26905
|
<div class="clr-wizard-stepnav-link-page-number"><ng-content></ng-content></div>
|
|
26795
26906
|
<span class="clr-wizard-stepnav-link-title">
|
|
26796
26907
|
<ng-template [ngTemplateOutlet]="page.navTitle"></ng-template>
|
|
26797
26908
|
</span>
|
|
26798
|
-
<span *ngIf="hasError" class="clr-sr-only">{{ commonStrings.keys.wizardStepError }}</span>
|
|
26799
|
-
<span *ngIf="!hasError && isComplete" class="clr-sr-only">{{ commonStrings.keys.wizardStepSuccess }}</span>
|
|
26800
26909
|
</button>
|
|
26801
26910
|
`,
|
|
26802
26911
|
host: {
|
|
@@ -27976,5 +28085,5 @@ const CLR_MENU_POSITIONS = [
|
|
|
27976
28085
|
* Generated bundle index. Do not edit.
|
|
27977
28086
|
*/
|
|
27978
28087
|
|
|
27979
|
-
export { CHANGE_KEYS, CLR_ALERT_DIRECTIVES, CLR_BUTTON_GROUP_DIRECTIVES, CLR_DATAGRID_DIRECTIVES, CLR_DATEPICKER_DIRECTIVES, CLR_DROPDOWN_DIRECTIVES, CLR_ICON_DIRECTIVES, CLR_LAYOUT_DIRECTIVES, CLR_LOADING_BUTTON_DIRECTIVES, CLR_LOADING_DIRECTIVES, CLR_MENU_POSITIONS, CLR_MODAL_DIRECTIVES, CLR_NAVIGATION_DIRECTIVES, CLR_PROGRESS_BAR_DIRECTIVES, CLR_SIDEPANEL_DIRECTIVES, CLR_SIGNPOST_DIRECTIVES, CLR_SPINNER_DIRECTIVES, CLR_STACK_VIEW_DIRECTIVES, CLR_TABS_DIRECTIVES, CLR_TOOLTIP_DIRECTIVES, CLR_TREE_VIEW_DIRECTIVES, CLR_VERTICAL_NAV_DIRECTIVES, CLR_WIZARD_DIRECTIVES, CONDITIONAL_DIRECTIVES, CUSTOM_BUTTON_TYPES, CdsIconCustomTag, ClarityModule, ClrAbstractContainer, ClrAccordion, ClrAccordionContent, ClrAccordionDescription, ClrAccordionModule, ClrAccordionPanel, ClrAccordionTitle, ClrAlert, ClrAlertItem, ClrAlertModule, ClrAlertText, ClrAlerts, ClrAlertsPager, ClrAlignment, ClrAriaCurrentLink, ClrAxis, ClrButton, ClrButtonGroup, ClrButtonGroupModule, ClrButtonModule, ClrCalendar, ClrCheckbox, ClrCheckboxContainer, ClrCheckboxModule, ClrCheckboxWrapper, ClrCombobox, ClrComboboxContainer, ClrComboboxModule, ClrCommonFormsModule, ClrCommonStringsService, ClrConditionalModule, ClrControl, ClrControlContainer, ClrControlError, ClrControlHelper, ClrControlSuccess, ClrDataModule, ClrDatagrid, ClrDatagridActionBar, ClrDatagridActionOverflow, ClrDatagridCell, ClrDatagridColumn, ClrDatagridColumnSeparator, ClrDatagridColumnToggle, ClrDatagridColumnToggleButton, ClrDatagridDetail, ClrDatagridDetailBody, ClrDatagridDetailHeader, ClrDatagridFilter, ClrDatagridFooter, ClrDatagridHideableColumn, ClrDatagridItems, ClrDatagridModule, ClrDatagridPageSize, ClrDatagridPagination, ClrDatagridPlaceholder, ClrDatagridRow, ClrDatagridRowDetail, ClrDatagridSortOrder, ClrDatalist, ClrDatalistContainer, ClrDatalistInput, ClrDatalistModule, ClrDateContainer, ClrDateInput, ClrDateInputValidator, ClrDatepickerModule, ClrDatepickerViewManager, ClrDay, ClrDaypicker, ClrDestroyService, ClrDropdown, ClrDropdownItem, ClrDropdownMenu, ClrDropdownModule, ClrDropdownTrigger, ClrEmphasisModule, ClrExpandableAnimation, ClrFileInput, ClrFileInputContainer, ClrFileInputModule, ClrFileInputValidator, ClrFileInputValueAccessor, ClrFocusOnViewInit, ClrFocusOnViewInitModule, ClrForm, ClrFormLayout, ClrFormsModule, ClrHeader, ClrIconCustomTag, ClrIconModule, ClrIfActive, ClrIfDetail, ClrIfError, ClrIfExpanded, ClrIfOpen, ClrIfSuccess, ClrInput, ClrInputContainer, ClrInputModule, ClrLabel, ClrLayout, ClrLayoutModule, ClrLoading, ClrLoadingButton, ClrLoadingButtonModule, ClrLoadingModule, ClrLoadingState, ClrMainContainer, ClrMainContainerModule, ClrModal, ClrModalBody, ClrModalModule, ClrMonthpicker, ClrNavLevel, ClrNavigationModule, ClrOption, ClrOptionItems, ClrOptionSelected, ClrOptions, ClrPassword, ClrPasswordContainer, ClrPasswordModule, ClrPopoverAnchor, ClrPopoverContent, ClrPopoverEventsService, ClrPopoverHostDirective, ClrPopoverModule, ClrPopoverPositionService, ClrPopoverToggleService, ClrProgressBar, ClrProgressBarModule, ClrRadio, ClrRadioContainer, ClrRadioModule, ClrRadioWrapper, ClrRange, ClrRangeContainer, ClrRangeModule, ClrRecursiveForOf, ClrSelect, ClrSelectContainer, ClrSelectModule, ClrSelectedState, ClrSide, ClrSidePanel, ClrSidePanelModule, ClrSignpost, ClrSignpostContent, ClrSignpostModule, ClrSignpostTrigger, ClrSpinner, ClrSpinnerModule, ClrStackBlock, ClrStackContentInput, ClrStackHeader, ClrStackView, ClrStackViewCustomTags, ClrStackViewLabel, ClrStackViewModule, ClrStandaloneCdkTrapFocus, ClrStepButton, ClrStepButtonType, ClrStepper, ClrStepperModule, ClrStepperPanel, ClrStopEscapePropagationDirective, ClrTab, ClrTabContent, ClrTabLink, ClrTabOverflowContent, ClrTabs, ClrTabsModule, ClrTextarea, ClrTextareaContainer, ClrTextareaModule, ClrTimeline, ClrTimelineLayout, ClrTimelineModule, ClrTimelineStep, ClrTimelineStepDescription, ClrTimelineStepHeader, ClrTimelineStepState, ClrTimelineStepTitle, ClrTooltip, ClrTooltipContent, ClrTooltipModule, ClrTooltipTrigger, ClrTree, ClrTreeNode, ClrTreeNodeLink, ClrTreeViewModule, ClrVerticalNav, ClrVerticalNavGroup, ClrVerticalNavGroupChildren, ClrVerticalNavIcon, ClrVerticalNavLink, ClrVerticalNavModule, ClrWizard, ClrWizardButton, ClrWizardHeaderAction, ClrWizardModule, ClrWizardPage, ClrWizardPageButtons, ClrWizardPageHeaderActions, ClrWizardPageNavTitle, ClrWizardPageTitle, ClrWizardStepnav, ClrWizardStepnavItem, ClrWizardTitle, ClrYearpicker, DEFAULT_BUTTON_TYPES, DatagridNumericFilter, DatagridPropertyComparator, DatagridPropertyNumericFilter, DatagridPropertyStringFilter, DatagridStringFilter, EXPANDABLE_ANIMATION_DIRECTIVES, FOCUS_ON_VIEW_INIT, FOCUS_ON_VIEW_INIT_DIRECTIVES, IS_TOGGLE, IS_TOGGLE_PROVIDER, LoadingListener, MainContainerWillyWonka, NavDetectionOompaLoompa, TOGGLE_SERVICE, TOGGLE_SERVICE_PROVIDER, ToggleServiceFactory, WrappedFormControl, collapse, commonStringsDefault, fade, fadeSlide, isToggleFactory, slide, AccordionOompaLoompa as ÇlrAccordionOompaLoompa, AccordionWillyWonka as ÇlrAccordionWillyWonka, ActionableOompaLoompa as ÇlrActionableOompaLoompa, ActiveOompaLoompa as ÇlrActiveOompaLoompa, ClrPopoverCloseButton as ÇlrClrPopoverCloseButton, ClrPopoverModuleNext as ÇlrClrPopoverModuleNext, ClrPopoverOpenCloseButton as ÇlrClrPopoverOpenCloseButton, DatagridCellRenderer as ÇlrDatagridCellRenderer, DatagridDetailRegisterer as ÇlrDatagridDetailRegisterer, DatagridHeaderRenderer as ÇlrDatagridHeaderRenderer, DatagridMainRenderer as ÇlrDatagridMainRenderer, DatagridRowRenderer as ÇlrDatagridRowRenderer, ClrDatagridSelectionCellDirective as ÇlrDatagridSelectionCellDirective, ClrDatagridVirtualScrollDirective as ÇlrDatagridVirtualScrollDirective, DatagridWillyWonka as ÇlrDatagridWillyWonka, ExpandableOompaLoompa as ÇlrExpandableOompaLoompa, StepperOompaLoompa as ÇlrStepperOompaLoompa, StepperWillyWonka as ÇlrStepperWillyWonka, TabsWillyWonka as ÇlrTabsWillyWonka, WrappedCell as ÇlrWrappedCell, WrappedColumn as ÇlrWrappedColumn, WrappedRow as ÇlrWrappedRow };
|
|
28088
|
+
export { CHANGE_KEYS, CLR_ALERT_DIRECTIVES, CLR_BUTTON_GROUP_DIRECTIVES, CLR_DATAGRID_DIRECTIVES, CLR_DATEPICKER_DIRECTIVES, CLR_DROPDOWN_DIRECTIVES, CLR_ICON_DIRECTIVES, CLR_LAYOUT_DIRECTIVES, CLR_LOADING_BUTTON_DIRECTIVES, CLR_LOADING_DIRECTIVES, CLR_MENU_POSITIONS, CLR_MODAL_DIRECTIVES, CLR_NAVIGATION_DIRECTIVES, CLR_PROGRESS_BAR_DIRECTIVES, CLR_SIDEPANEL_DIRECTIVES, CLR_SIGNPOST_DIRECTIVES, CLR_SPINNER_DIRECTIVES, CLR_STACK_VIEW_DIRECTIVES, CLR_TABS_DIRECTIVES, CLR_TOOLTIP_DIRECTIVES, CLR_TREE_VIEW_DIRECTIVES, CLR_VERTICAL_NAV_DIRECTIVES, CLR_WIZARD_DIRECTIVES, CONDITIONAL_DIRECTIVES, CUSTOM_BUTTON_TYPES, CdsIconCustomTag, ClarityModule, ClrAbstractContainer, ClrAccordion, ClrAccordionContent, ClrAccordionDescription, ClrAccordionModule, ClrAccordionPanel, ClrAccordionTitle, ClrAlert, ClrAlertItem, ClrAlertModule, ClrAlertText, ClrAlerts, ClrAlertsPager, ClrAlignment, ClrAriaCurrentLink, ClrAxis, ClrButton, ClrButtonGroup, ClrButtonGroupModule, ClrButtonModule, ClrCalendar, ClrCheckbox, ClrCheckboxContainer, ClrCheckboxModule, ClrCheckboxWrapper, ClrCombobox, ClrComboboxContainer, ClrComboboxModule, ClrCommonFormsModule, ClrCommonStringsService, ClrConditionalModule, ClrControl, ClrControlContainer, ClrControlError, ClrControlHelper, ClrControlSuccess, ClrDataModule, ClrDatagrid, ClrDatagridActionBar, ClrDatagridActionOverflow, ClrDatagridCell, ClrDatagridColumn, ClrDatagridColumnSeparator, ClrDatagridColumnToggle, ClrDatagridColumnToggleButton, ClrDatagridDetail, ClrDatagridDetailBody, ClrDatagridDetailHeader, ClrDatagridFilter, ClrDatagridFooter, ClrDatagridHideableColumn, ClrDatagridItems, ClrDatagridModule, ClrDatagridPageSize, ClrDatagridPagination, ClrDatagridPlaceholder, ClrDatagridRow, ClrDatagridRowDetail, ClrDatagridSortOrder, ClrDatalist, ClrDatalistContainer, ClrDatalistInput, ClrDatalistModule, ClrDateContainer, ClrDateInput, ClrDateInputValidator, ClrDatepickerModule, ClrDatepickerViewManager, ClrDay, ClrDaypicker, ClrDestroyService, ClrDropdown, ClrDropdownItem, ClrDropdownMenu, ClrDropdownModule, ClrDropdownTrigger, ClrEmphasisModule, ClrExpandableAnimation, ClrFileInput, ClrFileInputContainer, ClrFileInputModule, ClrFileInputValidator, ClrFileInputValueAccessor, ClrFocusOnViewInit, ClrFocusOnViewInitModule, ClrForm, ClrFormLayout, ClrFormsModule, ClrHeader, ClrIconCustomTag, ClrIconModule, ClrIfActive, ClrIfDetail, ClrIfError, ClrIfExpanded, ClrIfOpen, ClrIfSuccess, ClrInput, ClrInputContainer, ClrInputModule, ClrLabel, ClrLayout, ClrLayoutModule, ClrLoading, ClrLoadingButton, ClrLoadingButtonModule, ClrLoadingModule, ClrLoadingState, ClrMainContainer, ClrMainContainerModule, ClrModal, ClrModalBody, ClrModalConfigurationService, ClrModalModule, ClrMonthpicker, ClrNavLevel, ClrNavigationModule, ClrOption, ClrOptionItems, ClrOptionSelected, ClrOptions, ClrPassword, ClrPasswordContainer, ClrPasswordModule, ClrPopoverAnchor, ClrPopoverContent, ClrPopoverEventsService, ClrPopoverHostDirective, ClrPopoverModule, ClrPopoverPositionService, ClrPopoverToggleService, ClrProgressBar, ClrProgressBarModule, ClrRadio, ClrRadioContainer, ClrRadioModule, ClrRadioWrapper, ClrRange, ClrRangeContainer, ClrRangeModule, ClrRecursiveForOf, ClrSelect, ClrSelectContainer, ClrSelectModule, ClrSelectedState, ClrSide, ClrSidePanel, ClrSidePanelModule, ClrSignpost, ClrSignpostContent, ClrSignpostModule, ClrSignpostTrigger, ClrSpinner, ClrSpinnerModule, ClrStackBlock, ClrStackContentInput, ClrStackHeader, ClrStackView, ClrStackViewCustomTags, ClrStackViewLabel, ClrStackViewModule, ClrStandaloneCdkTrapFocus, ClrStepButton, ClrStepButtonType, ClrStepper, ClrStepperModule, ClrStepperPanel, ClrStopEscapePropagationDirective, ClrTab, ClrTabContent, ClrTabLink, ClrTabOverflowContent, ClrTabs, ClrTabsModule, ClrTextarea, ClrTextareaContainer, ClrTextareaModule, ClrTimeline, ClrTimelineLayout, ClrTimelineModule, ClrTimelineStep, ClrTimelineStepDescription, ClrTimelineStepHeader, ClrTimelineStepState, ClrTimelineStepTitle, ClrTooltip, ClrTooltipContent, ClrTooltipModule, ClrTooltipTrigger, ClrTree, ClrTreeNode, ClrTreeNodeLink, ClrTreeViewModule, ClrVerticalNav, ClrVerticalNavGroup, ClrVerticalNavGroupChildren, ClrVerticalNavIcon, ClrVerticalNavLink, ClrVerticalNavModule, ClrWizard, ClrWizardButton, ClrWizardHeaderAction, ClrWizardModule, ClrWizardPage, ClrWizardPageButtons, ClrWizardPageHeaderActions, ClrWizardPageNavTitle, ClrWizardPageTitle, ClrWizardStepnav, ClrWizardStepnavItem, ClrWizardTitle, ClrYearpicker, DEFAULT_BUTTON_TYPES, DatagridNumericFilter, DatagridPropertyComparator, DatagridPropertyNumericFilter, DatagridPropertyStringFilter, DatagridStringFilter, EXPANDABLE_ANIMATION_DIRECTIVES, FOCUS_ON_VIEW_INIT, FOCUS_ON_VIEW_INIT_DIRECTIVES, IS_TOGGLE, IS_TOGGLE_PROVIDER, LoadingListener, MainContainerWillyWonka, NavDetectionOompaLoompa, TOGGLE_SERVICE, TOGGLE_SERVICE_PROVIDER, ToggleServiceFactory, WrappedFormControl, collapse, commonStringsDefault, fade, fadeSlide, isToggleFactory, slide, AccordionOompaLoompa as ÇlrAccordionOompaLoompa, AccordionWillyWonka as ÇlrAccordionWillyWonka, ActionableOompaLoompa as ÇlrActionableOompaLoompa, ActiveOompaLoompa as ÇlrActiveOompaLoompa, ClrPopoverCloseButton as ÇlrClrPopoverCloseButton, ClrPopoverModuleNext as ÇlrClrPopoverModuleNext, ClrPopoverOpenCloseButton as ÇlrClrPopoverOpenCloseButton, DatagridCellRenderer as ÇlrDatagridCellRenderer, DatagridDetailRegisterer as ÇlrDatagridDetailRegisterer, DatagridHeaderRenderer as ÇlrDatagridHeaderRenderer, DatagridMainRenderer as ÇlrDatagridMainRenderer, DatagridRowRenderer as ÇlrDatagridRowRenderer, ClrDatagridSelectionCellDirective as ÇlrDatagridSelectionCellDirective, ClrDatagridVirtualScrollDirective as ÇlrDatagridVirtualScrollDirective, DatagridWillyWonka as ÇlrDatagridWillyWonka, ExpandableOompaLoompa as ÇlrExpandableOompaLoompa, StepperOompaLoompa as ÇlrStepperOompaLoompa, StepperWillyWonka as ÇlrStepperWillyWonka, TabsWillyWonka as ÇlrTabsWillyWonka, WrappedCell as ÇlrWrappedCell, WrappedColumn as ÇlrWrappedColumn, WrappedRow as ÇlrWrappedRow };
|
|
27980
28089
|
//# sourceMappingURL=clr-angular.mjs.map
|