@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/fesm2015/clr-angular.mjs
CHANGED
|
@@ -225,19 +225,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
225
225
|
}]
|
|
226
226
|
}] });
|
|
227
227
|
|
|
228
|
-
/*
|
|
229
|
-
* Copyright (c) 2016-2024 Broadcom. All Rights Reserved.
|
|
230
|
-
* The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
|
|
231
|
-
* This software is released under MIT license.
|
|
232
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
233
|
-
*/
|
|
234
|
-
var AccordionStatus;
|
|
235
|
-
(function (AccordionStatus) {
|
|
236
|
-
AccordionStatus["Inactive"] = "inactive";
|
|
237
|
-
AccordionStatus["Error"] = "error";
|
|
238
|
-
AccordionStatus["Complete"] = "complete";
|
|
239
|
-
})(AccordionStatus || (AccordionStatus = {}));
|
|
240
|
-
|
|
241
228
|
/*
|
|
242
229
|
* Copyright (c) 2016-2024 Broadcom. All Rights Reserved.
|
|
243
230
|
* The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
|
|
@@ -330,6 +317,8 @@ const commonStringsDefault = {
|
|
|
330
317
|
datagridFilterDialogAriaLabel: 'Filter dialog',
|
|
331
318
|
columnSeparatorAriaLabel: 'Column resize handle',
|
|
332
319
|
columnSeparatorDescription: 'Use left or right key to resize the column',
|
|
320
|
+
fromLabel: 'From',
|
|
321
|
+
toLabel: 'To',
|
|
333
322
|
// Alert
|
|
334
323
|
alertCloseButtonAriaLabel: 'Close alert',
|
|
335
324
|
alertNextAlertAriaLabel: 'Next alert message, {CURRENT} of {COUNT}',
|
|
@@ -375,6 +364,7 @@ const commonStringsDefault = {
|
|
|
375
364
|
datagridExpandableRowContent: 'Expandable row content',
|
|
376
365
|
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`,
|
|
377
366
|
// Wizard
|
|
367
|
+
wizardStep: 'Step',
|
|
378
368
|
wizardStepSuccess: 'Completed',
|
|
379
369
|
wizardStepError: 'Error',
|
|
380
370
|
wizardStepnavAriaLabel: 'Step navigation',
|
|
@@ -396,6 +386,9 @@ const commonStringsDefault = {
|
|
|
396
386
|
fileCount: '{COUNT} files',
|
|
397
387
|
clearFile: 'Clear {FILE}',
|
|
398
388
|
clearFiles: 'Clear {COUNT} files',
|
|
389
|
+
// Tree
|
|
390
|
+
selectedTreeNode: 'selected',
|
|
391
|
+
unselectedTreeNode: 'unselected',
|
|
399
392
|
};
|
|
400
393
|
|
|
401
394
|
/*
|
|
@@ -443,6 +436,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
443
436
|
}]
|
|
444
437
|
}] });
|
|
445
438
|
|
|
439
|
+
/*
|
|
440
|
+
* Copyright (c) 2016-2024 Broadcom. All Rights Reserved.
|
|
441
|
+
* The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
|
|
442
|
+
* This software is released under MIT license.
|
|
443
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
444
|
+
*/
|
|
445
|
+
var AccordionStatus;
|
|
446
|
+
(function (AccordionStatus) {
|
|
447
|
+
AccordionStatus["Inactive"] = "inactive";
|
|
448
|
+
AccordionStatus["Error"] = "error";
|
|
449
|
+
AccordionStatus["Complete"] = "complete";
|
|
450
|
+
})(AccordionStatus || (AccordionStatus = {}));
|
|
451
|
+
|
|
446
452
|
/*
|
|
447
453
|
* Copyright (c) 2016-2024 Broadcom. All Rights Reserved.
|
|
448
454
|
* The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
|
|
@@ -572,8 +578,6 @@ class ClrAccordionPanel {
|
|
|
572
578
|
this.disabled = false;
|
|
573
579
|
this.panelOpen = false;
|
|
574
580
|
this.panelOpenChange = new EventEmitter();
|
|
575
|
-
this.AccordionStatus = AccordionStatus;
|
|
576
|
-
this.isAccordion = true;
|
|
577
581
|
this._id = uniqueIdFactory();
|
|
578
582
|
}
|
|
579
583
|
get id() {
|
|
@@ -649,10 +653,10 @@ class ClrAccordionPanel {
|
|
|
649
653
|
}
|
|
650
654
|
}
|
|
651
655
|
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 });
|
|
652
|
-
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]=\"
|
|
656
|
+
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 });
|
|
653
657
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrAccordionPanel, decorators: [{
|
|
654
658
|
type: Component,
|
|
655
|
-
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]=\"
|
|
659
|
+
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" }]
|
|
656
660
|
}], ctorParameters: function () { return [{ type: ClrCommonStringsService }, { type: AccordionService }, { type: IfExpandService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { disabled: [{
|
|
657
661
|
type: Input,
|
|
658
662
|
args: ['clrAccordionPanelDisabled']
|
|
@@ -972,6 +976,9 @@ class StepperModel extends AccordionModel {
|
|
|
972
976
|
this._panels[panelId].open = !this._panels[panelId].open;
|
|
973
977
|
}
|
|
974
978
|
}
|
|
979
|
+
navigateToPreviousPanel(currentPanelId) {
|
|
980
|
+
this.openPreviousPanel(this._panels[currentPanelId].id);
|
|
981
|
+
}
|
|
975
982
|
navigateToNextPanel(currentPanelId, currentPanelValid = true) {
|
|
976
983
|
if (currentPanelValid) {
|
|
977
984
|
this.completePanel(currentPanelId);
|
|
@@ -1015,6 +1022,9 @@ class StepperModel extends AccordionModel {
|
|
|
1015
1022
|
getNextPanel(currentPanelId) {
|
|
1016
1023
|
return this.panels.find(s => s.index === this._panels[currentPanelId].index + 1);
|
|
1017
1024
|
}
|
|
1025
|
+
getPreviousPanel(currentPanelId) {
|
|
1026
|
+
return this.panels.find(s => s.index === this._panels[currentPanelId].index - 1);
|
|
1027
|
+
}
|
|
1018
1028
|
resetAllFuturePanels(panelId) {
|
|
1019
1029
|
this.panels.filter(panel => panel.index >= this._panels[panelId].index).forEach(panel => this.resetPanel(panel.id));
|
|
1020
1030
|
}
|
|
@@ -1053,6 +1063,15 @@ class StepperModel extends AccordionModel {
|
|
|
1053
1063
|
this._panels[nextPanel.id].disabled = true;
|
|
1054
1064
|
}
|
|
1055
1065
|
}
|
|
1066
|
+
openPreviousPanel(currentPanelId) {
|
|
1067
|
+
const prevPanel = this.getPreviousPanel(currentPanelId);
|
|
1068
|
+
if (prevPanel) {
|
|
1069
|
+
this._panels[currentPanelId].open = false;
|
|
1070
|
+
this._panels[currentPanelId].disabled = false;
|
|
1071
|
+
this._panels[prevPanel.id].open = true;
|
|
1072
|
+
this._panels[prevPanel.id].disabled = true;
|
|
1073
|
+
}
|
|
1074
|
+
}
|
|
1056
1075
|
setPanelError(panelId) {
|
|
1057
1076
|
this.resetAllFuturePanels(panelId);
|
|
1058
1077
|
this._panels[panelId].open = true;
|
|
@@ -1099,6 +1118,11 @@ class StepperService extends AccordionService {
|
|
|
1099
1118
|
this.accordion.setPanelsWithErrors(ids);
|
|
1100
1119
|
this.emitUpdatedPanels();
|
|
1101
1120
|
}
|
|
1121
|
+
navigateToPreviousPanel(currentPanelId) {
|
|
1122
|
+
this.accordion.navigateToPreviousPanel(currentPanelId);
|
|
1123
|
+
this.updatePreviousStep(currentPanelId);
|
|
1124
|
+
this.emitUpdatedPanels();
|
|
1125
|
+
}
|
|
1102
1126
|
navigateToNextPanel(currentPanelId, currentPanelValid = true) {
|
|
1103
1127
|
this.accordion.navigateToNextPanel(currentPanelId, currentPanelValid);
|
|
1104
1128
|
this.updateNextStep(currentPanelId, currentPanelValid);
|
|
@@ -1117,6 +1141,12 @@ class StepperService extends AccordionService {
|
|
|
1117
1141
|
this._activeStepChanges.next(currentPanelId);
|
|
1118
1142
|
}
|
|
1119
1143
|
}
|
|
1144
|
+
updatePreviousStep(currentPanelId) {
|
|
1145
|
+
const prevPanel = this.accordion.getPreviousPanel(currentPanelId);
|
|
1146
|
+
if (prevPanel) {
|
|
1147
|
+
this._activeStepChanges.next(prevPanel.id);
|
|
1148
|
+
}
|
|
1149
|
+
}
|
|
1120
1150
|
getAllCompletedPanelChanges() {
|
|
1121
1151
|
return this._panelsChanges.pipe(map(() => this.accordion.allPanelsCompleted), distinctUntilChanged());
|
|
1122
1152
|
}
|
|
@@ -1141,7 +1171,7 @@ class ClrStepperPanel extends ClrAccordionPanel {
|
|
|
1141
1171
|
this.formGroupName = formGroupName;
|
|
1142
1172
|
this.ngModelGroup = ngModelGroup;
|
|
1143
1173
|
this.stepperService = stepperService;
|
|
1144
|
-
this.
|
|
1174
|
+
this.AccordionStatus = AccordionStatus;
|
|
1145
1175
|
this.subscriptions = [];
|
|
1146
1176
|
}
|
|
1147
1177
|
get id() {
|
|
@@ -1182,9 +1212,7 @@ class ClrStepperPanel extends ClrAccordionPanel {
|
|
|
1182
1212
|
this.subscriptions.push(this.stepperService.activeStep
|
|
1183
1213
|
.pipe(filter(panelId => isPlatformBrowser(this.platformId) && panelId === this.id))
|
|
1184
1214
|
.subscribe(() => {
|
|
1185
|
-
|
|
1186
|
-
//before focusing on the next stepper panel header
|
|
1187
|
-
setTimeout(() => this.headerButton.nativeElement.focus(), 1500);
|
|
1215
|
+
this.headerButton.nativeElement.focus();
|
|
1188
1216
|
}));
|
|
1189
1217
|
}
|
|
1190
1218
|
triggerAllFormControlValidationIfError(panel) {
|
|
@@ -1194,10 +1222,10 @@ class ClrStepperPanel extends ClrAccordionPanel {
|
|
|
1194
1222
|
}
|
|
1195
1223
|
}
|
|
1196
1224
|
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 });
|
|
1197
|
-
ClrStepperPanel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrStepperPanel, selector: "clr-stepper-panel", host: { properties: { "class.clr-
|
|
1225
|
+
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 });
|
|
1198
1226
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrStepperPanel, decorators: [{
|
|
1199
1227
|
type: Component,
|
|
1200
|
-
args: [{ selector: 'clr-stepper-panel', host: { '[class.clr-
|
|
1228
|
+
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" }]
|
|
1201
1229
|
}], ctorParameters: function () {
|
|
1202
1230
|
return [{ type: undefined, decorators: [{
|
|
1203
1231
|
type: Inject,
|
|
@@ -1221,6 +1249,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
1221
1249
|
var ClrStepButtonType;
|
|
1222
1250
|
(function (ClrStepButtonType) {
|
|
1223
1251
|
ClrStepButtonType["Next"] = "next";
|
|
1252
|
+
ClrStepButtonType["Previous"] = "previous";
|
|
1224
1253
|
ClrStepButtonType["Submit"] = "submit";
|
|
1225
1254
|
})(ClrStepButtonType || (ClrStepButtonType = {}));
|
|
1226
1255
|
class ClrStepButton {
|
|
@@ -1229,16 +1258,22 @@ class ClrStepButton {
|
|
|
1229
1258
|
this.stepperService = stepperService;
|
|
1230
1259
|
this.type = ClrStepButtonType.Next;
|
|
1231
1260
|
this.submitButton = false;
|
|
1261
|
+
this.previousButton = false;
|
|
1232
1262
|
}
|
|
1233
1263
|
ngOnInit() {
|
|
1234
1264
|
this.submitButton = this.type === ClrStepButtonType.Submit;
|
|
1265
|
+
this.previousButton = this.type === ClrStepButtonType.Previous;
|
|
1235
1266
|
}
|
|
1236
1267
|
navigateToNextPanel() {
|
|
1268
|
+
if (this.previousButton) {
|
|
1269
|
+
this.stepperService.navigateToPreviousPanel(this.clrStep.id);
|
|
1270
|
+
return;
|
|
1271
|
+
}
|
|
1237
1272
|
this.stepperService.navigateToNextPanel(this.clrStep.id, this.clrStep.formGroup.valid);
|
|
1238
1273
|
}
|
|
1239
1274
|
}
|
|
1240
1275
|
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 });
|
|
1241
|
-
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-
|
|
1276
|
+
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 });
|
|
1242
1277
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrStepButton, decorators: [{
|
|
1243
1278
|
type: Directive,
|
|
1244
1279
|
args: [{
|
|
@@ -1254,7 +1289,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
1254
1289
|
args: ['clrStepButton']
|
|
1255
1290
|
}], submitButton: [{
|
|
1256
1291
|
type: HostBinding,
|
|
1257
|
-
args: ['class.btn-
|
|
1292
|
+
args: ['class.btn-success']
|
|
1293
|
+
}], previousButton: [{
|
|
1294
|
+
type: HostBinding,
|
|
1295
|
+
args: ['class.btn-link']
|
|
1258
1296
|
}], navigateToNextPanel: [{
|
|
1259
1297
|
type: HostListener,
|
|
1260
1298
|
args: ['click']
|
|
@@ -2234,6 +2272,7 @@ class ClrPopoverContent {
|
|
|
2234
2272
|
this.subscriptions = [];
|
|
2235
2273
|
this.removeClickListenerFn = null;
|
|
2236
2274
|
this.shouldRealign = false;
|
|
2275
|
+
this.previousContentHeight = null;
|
|
2237
2276
|
// Check-collector pattern:
|
|
2238
2277
|
// In order to get accurate content height/width values, we cannot calculate alignment offsets until
|
|
2239
2278
|
// after the projected content has stabilized.
|
|
@@ -2255,9 +2294,14 @@ class ClrPopoverContent {
|
|
|
2255
2294
|
this.smartEventsService.scrollToClose = !!scrollToClose;
|
|
2256
2295
|
}
|
|
2257
2296
|
ngAfterContentChecked() {
|
|
2258
|
-
if (this.smartOpenService.open && this.view
|
|
2259
|
-
|
|
2260
|
-
this.
|
|
2297
|
+
if (this.smartOpenService.open && this.view) {
|
|
2298
|
+
const rootNodeOffsetHeight = this.view.rootNodes[0].offsetHeight;
|
|
2299
|
+
if (this.shouldRealign ||
|
|
2300
|
+
(this.previousContentHeight !== null && this.previousContentHeight !== rootNodeOffsetHeight)) {
|
|
2301
|
+
// Channel content-check event through the check-collector
|
|
2302
|
+
this.previousContentHeight = rootNodeOffsetHeight;
|
|
2303
|
+
this.checkCollector.emit();
|
|
2304
|
+
}
|
|
2261
2305
|
}
|
|
2262
2306
|
}
|
|
2263
2307
|
ngAfterViewInit() {
|
|
@@ -2375,7 +2419,7 @@ class ClrPopoverOpenCloseButton {
|
|
|
2375
2419
|
this.smartOpenService = smartOpenService;
|
|
2376
2420
|
this.openCloseChange = new EventEmitter();
|
|
2377
2421
|
this.subscriptions = [];
|
|
2378
|
-
this.subscriptions.push(
|
|
2422
|
+
this.subscriptions.push(smartOpenService.openChange.subscribe(change => {
|
|
2379
2423
|
this.openCloseChange.next(change);
|
|
2380
2424
|
}));
|
|
2381
2425
|
}
|
|
@@ -3331,7 +3375,7 @@ class ClrIfActive {
|
|
|
3331
3375
|
this.activeChange = new EventEmitter(false);
|
|
3332
3376
|
this.wasActive = false;
|
|
3333
3377
|
this.checkAndUpdateView(ifActiveService.current);
|
|
3334
|
-
this.subscription =
|
|
3378
|
+
this.subscription = ifActiveService.currentChange.subscribe(newCurrentId => {
|
|
3335
3379
|
this.checkAndUpdateView(newCurrentId);
|
|
3336
3380
|
});
|
|
3337
3381
|
}
|
|
@@ -3423,7 +3467,7 @@ class ClrIfOpen {
|
|
|
3423
3467
|
* used with de-structured / de-sugared syntax.
|
|
3424
3468
|
*/
|
|
3425
3469
|
this.openChange = new EventEmitter(false);
|
|
3426
|
-
this.subscription =
|
|
3470
|
+
this.subscription = toggleService.openChange.subscribe(change => {
|
|
3427
3471
|
this.updateView(change);
|
|
3428
3472
|
this.openChange.emit(change);
|
|
3429
3473
|
});
|
|
@@ -3493,7 +3537,7 @@ class ClrIfExpanded {
|
|
|
3493
3537
|
this._subscriptions = [];
|
|
3494
3538
|
this._subscriptions.push(expand.expandChange.subscribe(() => {
|
|
3495
3539
|
this.updateView();
|
|
3496
|
-
this.expandedChange.emit(
|
|
3540
|
+
this.expandedChange.emit(expand.expanded);
|
|
3497
3541
|
}));
|
|
3498
3542
|
}
|
|
3499
3543
|
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
|
}
|
|
@@ -4510,12 +4554,11 @@ var CONTROL_STATE;
|
|
|
4510
4554
|
})(CONTROL_STATE || (CONTROL_STATE = {}));
|
|
4511
4555
|
class IfControlStateService {
|
|
4512
4556
|
constructor(ngControlService) {
|
|
4513
|
-
this.ngControlService = ngControlService;
|
|
4514
4557
|
this.subscriptions = [];
|
|
4515
4558
|
// Implement our own status changes observable, since Angular controls don't
|
|
4516
4559
|
this._statusChanges = new BehaviorSubject(CONTROL_STATE.NONE);
|
|
4517
4560
|
// Wait for the control to be available
|
|
4518
|
-
this.subscriptions.push(
|
|
4561
|
+
this.subscriptions.push(ngControlService.controlChanges.subscribe(control => {
|
|
4519
4562
|
if (control) {
|
|
4520
4563
|
this.control = control;
|
|
4521
4564
|
// Subscribe to the status change events, only after touched
|
|
@@ -4771,14 +4814,14 @@ class ClrAbstractContainer {
|
|
|
4771
4814
|
this.ngControlService = ngControlService;
|
|
4772
4815
|
this._dynamic = false;
|
|
4773
4816
|
this.subscriptions = [];
|
|
4774
|
-
this.subscriptions.push(
|
|
4817
|
+
this.subscriptions.push(ifControlStateService.statusChanges.subscribe((state) => {
|
|
4775
4818
|
this.state = state;
|
|
4776
4819
|
// Make sure everything is updated before dispatching the values for helpers
|
|
4777
4820
|
setTimeout(() => {
|
|
4778
4821
|
this.updateHelpers();
|
|
4779
4822
|
});
|
|
4780
4823
|
}));
|
|
4781
|
-
this.subscriptions.push(
|
|
4824
|
+
this.subscriptions.push(ngControlService.controlChanges.subscribe(control => {
|
|
4782
4825
|
this.control = control;
|
|
4783
4826
|
}));
|
|
4784
4827
|
}
|
|
@@ -5034,10 +5077,10 @@ class WrappedFormControl {
|
|
|
5034
5077
|
this.vcr = vcr;
|
|
5035
5078
|
this.wrapperType = wrapperType;
|
|
5036
5079
|
this.ngControl = ngControl;
|
|
5037
|
-
this.index = 0;
|
|
5038
|
-
this.subscriptions = [];
|
|
5039
5080
|
this.renderer = renderer;
|
|
5040
5081
|
this.el = el;
|
|
5082
|
+
this.index = 0;
|
|
5083
|
+
this.subscriptions = [];
|
|
5041
5084
|
if (injector) {
|
|
5042
5085
|
this.ngControlService = injector.get(NgControlService, null);
|
|
5043
5086
|
this.ifControlStateService = injector.get(IfControlStateService, null);
|
|
@@ -5261,12 +5304,12 @@ class AbstractIfState {
|
|
|
5261
5304
|
this.subscriptions = [];
|
|
5262
5305
|
this.displayedContent = false;
|
|
5263
5306
|
if (ngControlService) {
|
|
5264
|
-
this.subscriptions.push(
|
|
5307
|
+
this.subscriptions.push(ngControlService.controlChanges.subscribe(control => {
|
|
5265
5308
|
this.control = control;
|
|
5266
5309
|
}));
|
|
5267
5310
|
}
|
|
5268
5311
|
if (ifControlStateService) {
|
|
5269
|
-
this.subscriptions.push(
|
|
5312
|
+
this.subscriptions.push(ifControlStateService.statusChanges.subscribe((state) => {
|
|
5270
5313
|
this.handleState(state);
|
|
5271
5314
|
}));
|
|
5272
5315
|
}
|
|
@@ -6841,7 +6884,7 @@ class ClrOption {
|
|
|
6841
6884
|
this.optionSelectionService = optionSelectionService;
|
|
6842
6885
|
// A proxy with only the necessary data to be used for a11y and the focus handler service.
|
|
6843
6886
|
this.optionProxy = new OptionData(null, null);
|
|
6844
|
-
this.optionProxy.el =
|
|
6887
|
+
this.optionProxy.el = elRef.nativeElement;
|
|
6845
6888
|
}
|
|
6846
6889
|
get optionId() {
|
|
6847
6890
|
return this._id;
|
|
@@ -7107,7 +7150,7 @@ class ClrCombobox extends WrappedFormControl {
|
|
|
7107
7150
|
control.valueAccessor = this;
|
|
7108
7151
|
}
|
|
7109
7152
|
// default to SingleSelectComboboxModel, in case the optional input [ClrMulti] isn't used
|
|
7110
|
-
|
|
7153
|
+
optionSelectionService.selectionModel = new SingleSelectComboboxModel();
|
|
7111
7154
|
this.updateControlValue();
|
|
7112
7155
|
}
|
|
7113
7156
|
get multiSelect() {
|
|
@@ -7409,11 +7452,10 @@ class ClrOptionItems {
|
|
|
7409
7452
|
this.differs = differs;
|
|
7410
7453
|
this.optionService = optionService;
|
|
7411
7454
|
this.positionService = positionService;
|
|
7412
|
-
this.vcr = vcr;
|
|
7413
7455
|
this.subscriptions = [];
|
|
7414
7456
|
this.filter = '';
|
|
7415
7457
|
this.differ = null;
|
|
7416
|
-
this.iterableProxy = new NgForOf(
|
|
7458
|
+
this.iterableProxy = new NgForOf(vcr, template, differs);
|
|
7417
7459
|
this.subscriptions.push(optionService.inputChanged.subscribe(filter => {
|
|
7418
7460
|
this.filter = filter;
|
|
7419
7461
|
this.updateItems();
|
|
@@ -7797,10 +7839,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
7797
7839
|
class ClrDatalistContainer extends ClrAbstractContainer {
|
|
7798
7840
|
constructor(controlClassService, layoutService, ngControlService, focusService, ifControlStateService) {
|
|
7799
7841
|
super(ifControlStateService, layoutService, controlClassService, ngControlService);
|
|
7800
|
-
this.focusService = focusService;
|
|
7801
7842
|
this.ifControlStateService = ifControlStateService;
|
|
7802
7843
|
this.focus = false;
|
|
7803
|
-
this.subscriptions.push(
|
|
7844
|
+
this.subscriptions.push(focusService.focusChange.subscribe(state => (this.focus = state)));
|
|
7804
7845
|
}
|
|
7805
7846
|
}
|
|
7806
7847
|
ClrDatalistContainer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrDatalistContainer, deps: [{ token: ControlClassService }, { token: LayoutService, optional: true }, { token: NgControlService }, { token: FocusService }, { token: IfControlStateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -7906,7 +7947,7 @@ class ClrDatalistInput extends WrappedFormControl {
|
|
|
7906
7947
|
super(vcr, ClrDatalistContainer, injector, control, renderer, el);
|
|
7907
7948
|
this.focusService = focusService;
|
|
7908
7949
|
this.datalistIdService = datalistIdService;
|
|
7909
|
-
if (!
|
|
7950
|
+
if (!focusService) {
|
|
7910
7951
|
throw new Error('clrDatalist requires being wrapped in <clr-datalist-container>');
|
|
7911
7952
|
}
|
|
7912
7953
|
}
|
|
@@ -8688,8 +8729,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
8688
8729
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
8689
8730
|
*/
|
|
8690
8731
|
class DateIOService {
|
|
8691
|
-
constructor(
|
|
8692
|
-
this._localeHelperService = _localeHelperService;
|
|
8732
|
+
constructor(localeHelperService) {
|
|
8693
8733
|
this.disabledDates = {
|
|
8694
8734
|
// This is the default range. It approximates the beginning of time to the end of time.
|
|
8695
8735
|
// Unless a minDate or maxDate is set with the native HTML5 api the range is all dates
|
|
@@ -8700,7 +8740,7 @@ class DateIOService {
|
|
|
8700
8740
|
this.cldrLocaleDateFormat = DEFAULT_LOCALE_FORMAT;
|
|
8701
8741
|
this.localeDisplayFormat = LITTLE_ENDIAN;
|
|
8702
8742
|
this.delimiters = ['/', '/'];
|
|
8703
|
-
this.cldrLocaleDateFormat =
|
|
8743
|
+
this.cldrLocaleDateFormat = localeHelperService.localeDateFormat;
|
|
8704
8744
|
this.initializeLocaleDisplayFormat();
|
|
8705
8745
|
}
|
|
8706
8746
|
get placeholderText() {
|
|
@@ -9121,7 +9161,7 @@ class DatepickerEnabledService {
|
|
|
9121
9161
|
constructor(_document) {
|
|
9122
9162
|
this._document = _document;
|
|
9123
9163
|
this._isUserAgentMobile = false;
|
|
9124
|
-
if (
|
|
9164
|
+
if (_document) {
|
|
9125
9165
|
this._isUserAgentMobile = MOBILE_USERAGENT_REGEX.test(_document.defaultView.navigator.userAgent);
|
|
9126
9166
|
this._innerWidth = _document.defaultView.innerWidth;
|
|
9127
9167
|
}
|
|
@@ -9719,18 +9759,17 @@ class ClrDateContainer extends ClrAbstractContainer {
|
|
|
9719
9759
|
this.dateFormControlService = dateFormControlService;
|
|
9720
9760
|
this.dateIOService = dateIOService;
|
|
9721
9761
|
this.commonStrings = commonStrings;
|
|
9722
|
-
this.focusService = focusService;
|
|
9723
9762
|
this.viewManagerService = viewManagerService;
|
|
9724
9763
|
this.controlClassService = controlClassService;
|
|
9725
9764
|
this.layoutService = layoutService;
|
|
9726
9765
|
this.ngControlService = ngControlService;
|
|
9727
9766
|
this.ifControlStateService = ifControlStateService;
|
|
9728
9767
|
this.focus = false;
|
|
9729
|
-
this.subscriptions.push(
|
|
9768
|
+
this.subscriptions.push(focusService.focusChange.subscribe(state => {
|
|
9730
9769
|
this.focus = state;
|
|
9731
9770
|
}));
|
|
9732
|
-
this.subscriptions.push(
|
|
9733
|
-
|
|
9771
|
+
this.subscriptions.push(toggleService.openChange.subscribe(() => {
|
|
9772
|
+
dateFormControlService.markAsTouched();
|
|
9734
9773
|
}));
|
|
9735
9774
|
}
|
|
9736
9775
|
set clrPosition(position) {
|
|
@@ -10739,7 +10778,7 @@ class ClrPasswordContainer extends ClrAbstractContainer {
|
|
|
10739
10778
|
this.focus = false;
|
|
10740
10779
|
this._toggle = true;
|
|
10741
10780
|
/* The unsubscribe is handle inside the ClrAbstractContainer */
|
|
10742
|
-
this.subscriptions.push(
|
|
10781
|
+
this.subscriptions.push(focusService.focusChange.subscribe(state => {
|
|
10743
10782
|
this.focus = state;
|
|
10744
10783
|
}));
|
|
10745
10784
|
}
|
|
@@ -10891,12 +10930,11 @@ class ClrPassword extends WrappedFormControl {
|
|
|
10891
10930
|
constructor(vcr, injector, control, renderer, el, focusService, toggleService) {
|
|
10892
10931
|
super(vcr, ClrPasswordContainer, injector, control, renderer, el);
|
|
10893
10932
|
this.focusService = focusService;
|
|
10894
|
-
this.toggleService = toggleService;
|
|
10895
10933
|
this.index = 1;
|
|
10896
|
-
if (!
|
|
10934
|
+
if (!focusService) {
|
|
10897
10935
|
throw new Error('clrPassword requires being wrapped in <clr-password-container>');
|
|
10898
10936
|
}
|
|
10899
|
-
this.subscriptions.push(
|
|
10937
|
+
this.subscriptions.push(toggleService.subscribe(toggle => {
|
|
10900
10938
|
renderer.setProperty(el.nativeElement, 'type', toggle ? 'text' : 'password');
|
|
10901
10939
|
}));
|
|
10902
10940
|
}
|
|
@@ -12808,6 +12846,12 @@ class DatagridNumericFilter extends DatagridFilterRegistrar {
|
|
|
12808
12846
|
get minPlaceholderValue() {
|
|
12809
12847
|
return this.minPlaceholder || this.commonStrings.keys.minValue;
|
|
12810
12848
|
}
|
|
12849
|
+
get fromLabelValue() {
|
|
12850
|
+
return this.fromLabel || this.commonStrings.keys.fromLabel;
|
|
12851
|
+
}
|
|
12852
|
+
get toLabelValue() {
|
|
12853
|
+
return this.toLabel || this.commonStrings.keys.toLabel;
|
|
12854
|
+
}
|
|
12811
12855
|
get low() {
|
|
12812
12856
|
if (typeof this.filter.low === 'number' && isFinite(this.filter.low)) {
|
|
12813
12857
|
return this.filter.low;
|
|
@@ -12870,31 +12914,40 @@ class DatagridNumericFilter extends DatagridFilterRegistrar {
|
|
|
12870
12914
|
}
|
|
12871
12915
|
}
|
|
12872
12916
|
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 });
|
|
12873
|
-
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: `
|
|
12917
|
+
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: `
|
|
12874
12918
|
<clr-dg-filter [clrDgFilter]="registered" [(clrDgFilterOpen)]="open">
|
|
12875
|
-
<
|
|
12876
|
-
class="
|
|
12877
|
-
|
|
12878
|
-
|
|
12879
|
-
|
|
12880
|
-
|
|
12881
|
-
|
|
12882
|
-
|
|
12883
|
-
|
|
12884
|
-
|
|
12885
|
-
|
|
12886
|
-
|
|
12887
|
-
|
|
12888
|
-
|
|
12889
|
-
|
|
12890
|
-
|
|
12891
|
-
|
|
12892
|
-
|
|
12893
|
-
|
|
12894
|
-
|
|
12895
|
-
|
|
12919
|
+
<div class="datagrid-numeric-filter-form">
|
|
12920
|
+
<div class="clr-form-control">
|
|
12921
|
+
<label class="clr-control-label">{{ fromLabelValue }}</label>
|
|
12922
|
+
<input
|
|
12923
|
+
clrInput
|
|
12924
|
+
class="datagrid-numeric-filter-input"
|
|
12925
|
+
#input_low
|
|
12926
|
+
type="number"
|
|
12927
|
+
autocomplete="off"
|
|
12928
|
+
name="low"
|
|
12929
|
+
[(ngModel)]="low"
|
|
12930
|
+
[placeholder]="minPlaceholderValue"
|
|
12931
|
+
[attr.aria-label]="minPlaceholderValue"
|
|
12932
|
+
/>
|
|
12933
|
+
</div>
|
|
12934
|
+
<div class="clr-form-control">
|
|
12935
|
+
<label class="clr-control-label">{{ toLabelValue }}</label>
|
|
12936
|
+
<input
|
|
12937
|
+
clrInput
|
|
12938
|
+
class="datagrid-numeric-filter-input"
|
|
12939
|
+
#input_high
|
|
12940
|
+
type="number"
|
|
12941
|
+
autocomplete="off"
|
|
12942
|
+
name="high"
|
|
12943
|
+
[(ngModel)]="high"
|
|
12944
|
+
[placeholder]="maxPlaceholderValue"
|
|
12945
|
+
[attr.aria-label]="maxPlaceholderValue"
|
|
12946
|
+
/>
|
|
12947
|
+
</div>
|
|
12948
|
+
</div>
|
|
12896
12949
|
</clr-dg-filter>
|
|
12897
|
-
`, 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"] }] });
|
|
12950
|
+
`, 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"] }] });
|
|
12898
12951
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: DatagridNumericFilter, decorators: [{
|
|
12899
12952
|
type: Component,
|
|
12900
12953
|
args: [{
|
|
@@ -12902,27 +12955,36 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
12902
12955
|
providers: [{ provide: CustomFilter, useExisting: DatagridNumericFilter }],
|
|
12903
12956
|
template: `
|
|
12904
12957
|
<clr-dg-filter [clrDgFilter]="registered" [(clrDgFilterOpen)]="open">
|
|
12905
|
-
<
|
|
12906
|
-
class="
|
|
12907
|
-
|
|
12908
|
-
|
|
12909
|
-
|
|
12910
|
-
|
|
12911
|
-
|
|
12912
|
-
|
|
12913
|
-
|
|
12914
|
-
|
|
12915
|
-
|
|
12916
|
-
|
|
12917
|
-
|
|
12918
|
-
|
|
12919
|
-
|
|
12920
|
-
|
|
12921
|
-
|
|
12922
|
-
|
|
12923
|
-
|
|
12924
|
-
|
|
12925
|
-
|
|
12958
|
+
<div class="datagrid-numeric-filter-form">
|
|
12959
|
+
<div class="clr-form-control">
|
|
12960
|
+
<label class="clr-control-label">{{ fromLabelValue }}</label>
|
|
12961
|
+
<input
|
|
12962
|
+
clrInput
|
|
12963
|
+
class="datagrid-numeric-filter-input"
|
|
12964
|
+
#input_low
|
|
12965
|
+
type="number"
|
|
12966
|
+
autocomplete="off"
|
|
12967
|
+
name="low"
|
|
12968
|
+
[(ngModel)]="low"
|
|
12969
|
+
[placeholder]="minPlaceholderValue"
|
|
12970
|
+
[attr.aria-label]="minPlaceholderValue"
|
|
12971
|
+
/>
|
|
12972
|
+
</div>
|
|
12973
|
+
<div class="clr-form-control">
|
|
12974
|
+
<label class="clr-control-label">{{ toLabelValue }}</label>
|
|
12975
|
+
<input
|
|
12976
|
+
clrInput
|
|
12977
|
+
class="datagrid-numeric-filter-input"
|
|
12978
|
+
#input_high
|
|
12979
|
+
type="number"
|
|
12980
|
+
autocomplete="off"
|
|
12981
|
+
name="high"
|
|
12982
|
+
[(ngModel)]="high"
|
|
12983
|
+
[placeholder]="maxPlaceholderValue"
|
|
12984
|
+
[attr.aria-label]="maxPlaceholderValue"
|
|
12985
|
+
/>
|
|
12986
|
+
</div>
|
|
12987
|
+
</div>
|
|
12926
12988
|
</clr-dg-filter>
|
|
12927
12989
|
`,
|
|
12928
12990
|
}]
|
|
@@ -12932,6 +12994,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
12932
12994
|
}], maxPlaceholder: [{
|
|
12933
12995
|
type: Input,
|
|
12934
12996
|
args: ['clrFilterMaxPlaceholder']
|
|
12997
|
+
}], fromLabel: [{
|
|
12998
|
+
type: Input,
|
|
12999
|
+
args: ['clrFilterFromLabel']
|
|
13000
|
+
}], toLabel: [{
|
|
13001
|
+
type: Input,
|
|
13002
|
+
args: ['clrFilterToLabel']
|
|
12935
13003
|
}], filterValueChange: [{
|
|
12936
13004
|
type: Output,
|
|
12937
13005
|
args: ['clrFilterValueChange']
|
|
@@ -13518,6 +13586,19 @@ var ClrDatagridSortOrder;
|
|
|
13518
13586
|
ClrDatagridSortOrder[ClrDatagridSortOrder["DESC"] = -1] = "DESC";
|
|
13519
13587
|
})(ClrDatagridSortOrder || (ClrDatagridSortOrder = {}));
|
|
13520
13588
|
|
|
13589
|
+
/*
|
|
13590
|
+
* Copyright (c) 2016-2024 Broadcom. All Rights Reserved.
|
|
13591
|
+
* The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
|
|
13592
|
+
* This software is released under MIT license.
|
|
13593
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
13594
|
+
*/
|
|
13595
|
+
// @TODO The top two are not used now, which is probably a performance drag that was broken along the way.
|
|
13596
|
+
// There was a previous pattern to hide everything to do computation then display, for Firefox, needs revisiting.
|
|
13597
|
+
const NO_LAYOUT_CLASS = 'datagrid-no-layout';
|
|
13598
|
+
const COMPUTE_WIDTH_CLASS = 'datagrid-computing-columns-width';
|
|
13599
|
+
const STRICT_WIDTH_CLASS = 'datagrid-fixed-width';
|
|
13600
|
+
const HIDDEN_COLUMN_CLASS = 'datagrid-hidden-column';
|
|
13601
|
+
|
|
13521
13602
|
/*
|
|
13522
13603
|
* Copyright (c) 2016-2024 Broadcom. All Rights Reserved.
|
|
13523
13604
|
* The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
|
|
@@ -13956,15 +14037,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
13956
14037
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
13957
14038
|
*/
|
|
13958
14039
|
class ClrDatagridColumn extends DatagridFilterRegistrar {
|
|
13959
|
-
constructor(_sort, filters, vcr, detailService, changeDetectorRef) {
|
|
14040
|
+
constructor(el, _sort, filters, vcr, detailService, changeDetectorRef) {
|
|
13960
14041
|
super(filters);
|
|
14042
|
+
this.el = el;
|
|
13961
14043
|
this._sort = _sort;
|
|
13962
14044
|
this.vcr = vcr;
|
|
13963
14045
|
this.detailService = detailService;
|
|
13964
14046
|
this.changeDetectorRef = changeDetectorRef;
|
|
13965
14047
|
this.sortOrderChange = new EventEmitter();
|
|
13966
14048
|
this.filterValueChange = new EventEmitter();
|
|
13967
|
-
this.showSeparator = true;
|
|
13968
14049
|
/**
|
|
13969
14050
|
* A custom filter for this column that can be provided in the projected content
|
|
13970
14051
|
*/
|
|
@@ -13983,9 +14064,20 @@ class ClrDatagridColumn extends DatagridFilterRegistrar {
|
|
|
13983
14064
|
* Subscription to the sort service changes
|
|
13984
14065
|
*/
|
|
13985
14066
|
this.subscriptions = [];
|
|
14067
|
+
this._showSeparator = true;
|
|
13986
14068
|
this.subscriptions.push(this.listenForSortingChanges());
|
|
13987
14069
|
this.subscriptions.push(this.listenForDetailPaneChanges());
|
|
13988
14070
|
}
|
|
14071
|
+
get isHidden() {
|
|
14072
|
+
return this.el.nativeElement.classList.contains(HIDDEN_COLUMN_CLASS);
|
|
14073
|
+
}
|
|
14074
|
+
get showSeparator() {
|
|
14075
|
+
return this._showSeparator;
|
|
14076
|
+
}
|
|
14077
|
+
set showSeparator(value) {
|
|
14078
|
+
this._showSeparator = value;
|
|
14079
|
+
this.changeDetectorRef.markForCheck();
|
|
14080
|
+
}
|
|
13989
14081
|
// TODO: We might want to make this an enum in the future
|
|
13990
14082
|
get colType() {
|
|
13991
14083
|
return this._colType;
|
|
@@ -14161,8 +14253,6 @@ class ClrDatagridColumn extends DatagridFilterRegistrar {
|
|
|
14161
14253
|
return this.detailService.stateChange.subscribe(state => {
|
|
14162
14254
|
if (this.showSeparator !== !state) {
|
|
14163
14255
|
this.showSeparator = !state;
|
|
14164
|
-
// Have to manually change because of OnPush
|
|
14165
|
-
this.changeDetectorRef.markForCheck();
|
|
14166
14256
|
}
|
|
14167
14257
|
});
|
|
14168
14258
|
}
|
|
@@ -14195,7 +14285,7 @@ class ClrDatagridColumn extends DatagridFilterRegistrar {
|
|
|
14195
14285
|
}
|
|
14196
14286
|
}
|
|
14197
14287
|
}
|
|
14198
|
-
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 });
|
|
14288
|
+
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 });
|
|
14199
14289
|
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: `
|
|
14200
14290
|
<div class="datagrid-column-flex">
|
|
14201
14291
|
<button class="datagrid-column-title" *ngIf="sortable" (click)="sort()" type="button">
|
|
@@ -14236,7 +14326,7 @@ ClrDatagridColumn.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", vers
|
|
|
14236
14326
|
|
|
14237
14327
|
<clr-dg-column-separator *ngIf="showSeparator"></clr-dg-column-separator>
|
|
14238
14328
|
</div>
|
|
14239
|
-
`, 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 });
|
|
14329
|
+
`, 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 });
|
|
14240
14330
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrDatagridColumn, decorators: [{
|
|
14241
14331
|
type: Component,
|
|
14242
14332
|
args: [{
|
|
@@ -14290,7 +14380,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
14290
14380
|
},
|
|
14291
14381
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
14292
14382
|
}]
|
|
14293
|
-
}], ctorParameters: function () { return [{ type: Sort }, { type: FiltersProvider }, { type: i0.ViewContainerRef }, { type: DetailService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { filterStringPlaceholder: [{
|
|
14383
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: Sort }, { type: FiltersProvider }, { type: i0.ViewContainerRef }, { type: DetailService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { filterStringPlaceholder: [{
|
|
14294
14384
|
type: Input,
|
|
14295
14385
|
args: ['clrFilterStringPlaceholder']
|
|
14296
14386
|
}], filterNumberMaxPlaceholder: [{
|
|
@@ -14503,11 +14593,10 @@ class ClrDatagridItems {
|
|
|
14503
14593
|
this.template = template;
|
|
14504
14594
|
this.differs = differs;
|
|
14505
14595
|
this.items = items;
|
|
14506
|
-
this.vcr = vcr;
|
|
14507
14596
|
this.differ = null;
|
|
14508
14597
|
this.subscriptions = [];
|
|
14509
14598
|
items.smartenUp();
|
|
14510
|
-
this.iterableProxy = new NgForOf(
|
|
14599
|
+
this.iterableProxy = new NgForOf(vcr, template, differs);
|
|
14511
14600
|
this.subscriptions.push(items.change.subscribe(newItems => {
|
|
14512
14601
|
this.iterableProxy.ngForOf = newItems;
|
|
14513
14602
|
this.iterableProxy.ngDoCheck();
|
|
@@ -15005,9 +15094,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
15005
15094
|
*/
|
|
15006
15095
|
let nbSelection = 0;
|
|
15007
15096
|
class Selection {
|
|
15008
|
-
constructor(_items,
|
|
15097
|
+
constructor(_items, filters) {
|
|
15009
15098
|
this._items = _items;
|
|
15010
|
-
this._filters = _filters;
|
|
15011
15099
|
this.preserveSelection = false;
|
|
15012
15100
|
/**
|
|
15013
15101
|
* Shift key state, for use in range selection.
|
|
@@ -15028,13 +15116,13 @@ class Selection {
|
|
|
15028
15116
|
*/
|
|
15029
15117
|
this.subscriptions = [];
|
|
15030
15118
|
this.id = 'clr-dg-selection' + nbSelection++;
|
|
15031
|
-
this.subscriptions.push(
|
|
15119
|
+
this.subscriptions.push(filters.change.subscribe(() => {
|
|
15032
15120
|
if (!this._selectable || this.preserveSelection) {
|
|
15033
15121
|
return;
|
|
15034
15122
|
}
|
|
15035
15123
|
this.clearSelection();
|
|
15036
15124
|
}));
|
|
15037
|
-
this.subscriptions.push(
|
|
15125
|
+
this.subscriptions.push(_items.allChanges.subscribe(updatedItems => {
|
|
15038
15126
|
// Reset the lockedRefs;
|
|
15039
15127
|
const updateLockedRef = [];
|
|
15040
15128
|
switch (this.selectionType) {
|
|
@@ -15046,10 +15134,10 @@ class Selection {
|
|
|
15046
15134
|
let selectionUpdated = false;
|
|
15047
15135
|
// if the currentSingle has been set before data was loaded, we look up and save the ref from current data set
|
|
15048
15136
|
if (this.currentSingle && !this.prevSingleSelectionRef) {
|
|
15049
|
-
this.prevSingleSelectionRef =
|
|
15137
|
+
this.prevSingleSelectionRef = _items.trackBy(this.currentSingle);
|
|
15050
15138
|
}
|
|
15051
15139
|
updatedItems.forEach(item => {
|
|
15052
|
-
const ref =
|
|
15140
|
+
const ref = _items.trackBy(item);
|
|
15053
15141
|
// If one of the updated items is the previously selectedSingle, set it as the new one
|
|
15054
15142
|
if (this.prevSingleSelectionRef === ref) {
|
|
15055
15143
|
newSingle = item;
|
|
@@ -15063,7 +15151,7 @@ class Selection {
|
|
|
15063
15151
|
// Therefore, we should delete the currentSingle if it used to be defined but doesn't exist anymore.
|
|
15064
15152
|
// No explicit "delete" is required, since newSingle would be undefined at this point.
|
|
15065
15153
|
// Marking it as selectionUpdated here will set currentSingle to undefined below in the setTimeout.
|
|
15066
|
-
if (
|
|
15154
|
+
if (_items.smart && !newSingle) {
|
|
15067
15155
|
selectionUpdated = true;
|
|
15068
15156
|
}
|
|
15069
15157
|
// TODO: Discussed this with Eudes and this is fine for now.
|
|
@@ -15084,7 +15172,7 @@ class Selection {
|
|
|
15084
15172
|
if (this.current.length > 0 && this.prevSelectionRefs.length !== this.current.length) {
|
|
15085
15173
|
this.prevSelectionRefs = [];
|
|
15086
15174
|
this.current.forEach(item => {
|
|
15087
|
-
this.prevSelectionRefs.push(
|
|
15175
|
+
this.prevSelectionRefs.push(_items.trackBy(item));
|
|
15088
15176
|
});
|
|
15089
15177
|
}
|
|
15090
15178
|
// Duplicate loop, when the issue is issue#2342 is revisited keep in mind that
|
|
@@ -15093,7 +15181,7 @@ class Selection {
|
|
|
15093
15181
|
//
|
|
15094
15182
|
// The both loops below that goes over updatedItems could be combined into one.
|
|
15095
15183
|
updatedItems.forEach(item => {
|
|
15096
|
-
const ref =
|
|
15184
|
+
const ref = _items.trackBy(item);
|
|
15097
15185
|
if (this.lockedRefs.indexOf(ref) > -1) {
|
|
15098
15186
|
updateLockedRef.push(ref);
|
|
15099
15187
|
}
|
|
@@ -15103,7 +15191,7 @@ class Selection {
|
|
|
15103
15191
|
// the if statement below results in broken behavior.
|
|
15104
15192
|
if (leftOver.length > 0) {
|
|
15105
15193
|
updatedItems.forEach(item => {
|
|
15106
|
-
const ref =
|
|
15194
|
+
const ref = _items.trackBy(item);
|
|
15107
15195
|
// Look in current selected refs array if item is selected, and update actual value
|
|
15108
15196
|
const selectedIndex = this.prevSelectionRefs.indexOf(ref);
|
|
15109
15197
|
if (selectedIndex > -1) {
|
|
@@ -15113,7 +15201,7 @@ class Selection {
|
|
|
15113
15201
|
});
|
|
15114
15202
|
// Filter out any unmatched items if we're using smart datagrids where we expect all items to be
|
|
15115
15203
|
// present
|
|
15116
|
-
if (
|
|
15204
|
+
if (_items.smart) {
|
|
15117
15205
|
leftOver = leftOver.filter(selected => updatedItems.indexOf(selected) > -1);
|
|
15118
15206
|
if (this.current.length !== leftOver.length) {
|
|
15119
15207
|
selectionUpdated = true;
|
|
@@ -15432,8 +15520,6 @@ class ClrDatagridRow {
|
|
|
15432
15520
|
this.detailService = detailService;
|
|
15433
15521
|
this.displayMode = displayMode;
|
|
15434
15522
|
this.vcr = vcr;
|
|
15435
|
-
this.renderer = renderer;
|
|
15436
|
-
this.el = el;
|
|
15437
15523
|
this.commonStrings = commonStrings;
|
|
15438
15524
|
this.items = items;
|
|
15439
15525
|
this.document = document;
|
|
@@ -15461,17 +15547,17 @@ class ClrDatagridRow {
|
|
|
15461
15547
|
this.radioId = 'clr-dg-row-rd' + nbRow;
|
|
15462
15548
|
this.checkboxId = 'clr-dg-row-cb' + nbRow;
|
|
15463
15549
|
this.expandableId = expand.expandableId;
|
|
15464
|
-
this.subscriptions.push(combineLatest(
|
|
15550
|
+
this.subscriptions.push(combineLatest(expand.replace, expand.expandChange).subscribe(([expandReplaceValue, expandChangeValue]) => {
|
|
15465
15551
|
if (expandReplaceValue && expandChangeValue) {
|
|
15466
15552
|
// replaced and expanding
|
|
15467
15553
|
this.replaced = true;
|
|
15468
|
-
|
|
15554
|
+
renderer.addClass(el.nativeElement, 'datagrid-row-replaced');
|
|
15469
15555
|
}
|
|
15470
15556
|
else {
|
|
15471
15557
|
this.replaced = false;
|
|
15472
15558
|
// Handles these cases: not replaced and collapsing & replaced and
|
|
15473
15559
|
// collapsing and not replaced and expanding.
|
|
15474
|
-
|
|
15560
|
+
renderer.removeClass(el.nativeElement, 'datagrid-row-replaced');
|
|
15475
15561
|
}
|
|
15476
15562
|
}));
|
|
15477
15563
|
}
|
|
@@ -15879,19 +15965,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
15879
15965
|
type: Injectable
|
|
15880
15966
|
}], ctorParameters: function () { return [{ type: FiltersProvider }, { type: Sort }, { type: Page }, { type: StateDebouncer }]; } });
|
|
15881
15967
|
|
|
15882
|
-
/*
|
|
15883
|
-
* Copyright (c) 2016-2024 Broadcom. All Rights Reserved.
|
|
15884
|
-
* The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
|
|
15885
|
-
* This software is released under MIT license.
|
|
15886
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
15887
|
-
*/
|
|
15888
|
-
// @TODO The top two are not used now, which is probably a performance drag that was broken along the way.
|
|
15889
|
-
// There was a previous pattern to hide everything to do computation then display, for Firefox, needs revisiting.
|
|
15890
|
-
const NO_LAYOUT_CLASS = 'datagrid-no-layout';
|
|
15891
|
-
const COMPUTE_WIDTH_CLASS = 'datagrid-computing-columns-width';
|
|
15892
|
-
const STRICT_WIDTH_CLASS = 'datagrid-fixed-width';
|
|
15893
|
-
const HIDDEN_COLUMN_CLASS = 'datagrid-hidden-column';
|
|
15894
|
-
|
|
15895
15968
|
/*
|
|
15896
15969
|
* Copyright (c) 2016-2024 Broadcom. All Rights Reserved.
|
|
15897
15970
|
* The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
|
|
@@ -16013,7 +16086,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
16013
16086
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
16014
16087
|
*/
|
|
16015
16088
|
class ClrDatagrid {
|
|
16016
|
-
constructor(organizer, items, expandableRows, selection, rowActionService, stateProvider, displayMode, renderer, detailService, document, el, page, commonStrings,
|
|
16089
|
+
constructor(organizer, items, expandableRows, selection, rowActionService, stateProvider, displayMode, renderer, detailService, document, el, page, commonStrings, keyNavigation, zone) {
|
|
16017
16090
|
this.organizer = organizer;
|
|
16018
16091
|
this.items = items;
|
|
16019
16092
|
this.expandableRows = expandableRows;
|
|
@@ -16027,7 +16100,6 @@ class ClrDatagrid {
|
|
|
16027
16100
|
this.el = el;
|
|
16028
16101
|
this.page = page;
|
|
16029
16102
|
this.commonStrings = commonStrings;
|
|
16030
|
-
this.columnsService = columnsService;
|
|
16031
16103
|
this.keyNavigation = keyNavigation;
|
|
16032
16104
|
this.zone = zone;
|
|
16033
16105
|
this.clrDgSingleSelectionAriaLabel = this.commonStrings.keys.singleSelectionAriaLabel;
|
|
@@ -16049,7 +16121,7 @@ class ClrDatagrid {
|
|
|
16049
16121
|
this._subscriptions = [];
|
|
16050
16122
|
const datagridId = uniqueIdFactory();
|
|
16051
16123
|
this.selectAllId = 'clr-dg-select-all-' + datagridId;
|
|
16052
|
-
|
|
16124
|
+
detailService.id = datagridId;
|
|
16053
16125
|
}
|
|
16054
16126
|
/**
|
|
16055
16127
|
* Freezes the datagrid while data is loading
|
|
@@ -16271,7 +16343,7 @@ class ClrDatagrid {
|
|
|
16271
16343
|
this.items.refresh();
|
|
16272
16344
|
}
|
|
16273
16345
|
}
|
|
16274
|
-
ClrDatagrid.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrDatagrid, deps: [{ token: DatagridRenderOrganizer }, { token: Items }, { token: ExpandableRowsCount }, { token: Selection }, { token: RowActionService }, { token: StateProvider }, { token: DisplayModeService }, { token: i0.Renderer2 }, { token: DetailService }, { token: DOCUMENT }, { token: i0.ElementRef }, { token: Page }, { token: ClrCommonStringsService }, { token:
|
|
16346
|
+
ClrDatagrid.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrDatagrid, deps: [{ token: DatagridRenderOrganizer }, { token: Items }, { token: ExpandableRowsCount }, { token: Selection }, { token: RowActionService }, { token: StateProvider }, { token: DisplayModeService }, { token: i0.Renderer2 }, { token: DetailService }, { token: DOCUMENT }, { token: i0.ElementRef }, { token: Page }, { token: ClrCommonStringsService }, { token: KeyNavigationGridController }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
16275
16347
|
ClrDatagrid.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrDatagrid, selector: "clr-datagrid", inputs: { loadingMoreItems: ["clrLoadingMoreItems", "loadingMoreItems"], clrDgSingleSelectionAriaLabel: "clrDgSingleSelectionAriaLabel", clrDgSingleActionableAriaLabel: "clrDgSingleActionableAriaLabel", clrDetailExpandableAriaLabel: "clrDetailExpandableAriaLabel", clrDgDisablePageFocus: "clrDgDisablePageFocus", loading: ["clrDgLoading", "loading"], selected: ["clrDgSelected", "selected"], singleSelected: ["clrDgSingleSelected", "singleSelected"], clrDgPreserveSelection: "clrDgPreserveSelection", rowSelectionMode: ["clrDgRowSelection", "rowSelectionMode"], trackBy: ["clrDgItemsTrackBy", "trackBy"] }, outputs: { selectedChanged: "clrDgSelectedChange", singleSelectedChanged: "clrDgSingleSelectedChange", refresh: "clrDgRefresh" }, host: { properties: { "class.datagrid-host": "true", "class.datagrid-detail-open": "detailService.isOpen" } }, providers: [
|
|
16276
16348
|
Selection,
|
|
16277
16349
|
Sort,
|
|
@@ -16315,7 +16387,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
16315
16387
|
return [{ type: DatagridRenderOrganizer }, { type: Items }, { type: ExpandableRowsCount }, { type: Selection }, { type: RowActionService }, { type: StateProvider }, { type: DisplayModeService }, { type: i0.Renderer2 }, { type: DetailService }, { type: undefined, decorators: [{
|
|
16316
16388
|
type: Inject,
|
|
16317
16389
|
args: [DOCUMENT]
|
|
16318
|
-
}] }, { type: i0.ElementRef }, { type: Page }, { type: ClrCommonStringsService }, { type:
|
|
16390
|
+
}] }, { type: i0.ElementRef }, { type: Page }, { type: ClrCommonStringsService }, { type: KeyNavigationGridController }, { type: i0.NgZone }];
|
|
16319
16391
|
}, propDecorators: { loadingMoreItems: [{
|
|
16320
16392
|
type: Input,
|
|
16321
16393
|
args: ['clrLoadingMoreItems']
|
|
@@ -16422,11 +16494,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
16422
16494
|
*/
|
|
16423
16495
|
let clrDgActionId = 0;
|
|
16424
16496
|
class ClrDatagridActionOverflow {
|
|
16425
|
-
constructor(rowActionService, commonStrings, platformId,
|
|
16497
|
+
constructor(rowActionService, commonStrings, platformId, smartToggleService) {
|
|
16426
16498
|
this.rowActionService = rowActionService;
|
|
16427
16499
|
this.commonStrings = commonStrings;
|
|
16428
16500
|
this.platformId = platformId;
|
|
16429
|
-
this.zone = zone;
|
|
16430
16501
|
this.smartToggleService = smartToggleService;
|
|
16431
16502
|
this.openChange = new EventEmitter(false);
|
|
16432
16503
|
this.popoverId = uniqueIdFactory();
|
|
@@ -16438,10 +16509,10 @@ class ClrDatagridActionOverflow {
|
|
|
16438
16509
|
};
|
|
16439
16510
|
this._open = false;
|
|
16440
16511
|
this.subscriptions = [];
|
|
16441
|
-
|
|
16442
|
-
this.subscriptions.push(
|
|
16512
|
+
rowActionService.register();
|
|
16513
|
+
this.subscriptions.push(smartToggleService.openChange.subscribe(openState => {
|
|
16443
16514
|
this.open = openState;
|
|
16444
|
-
}),
|
|
16515
|
+
}), smartToggleService.popoverVisible.subscribe(visible => {
|
|
16445
16516
|
if (visible) {
|
|
16446
16517
|
this.initializeFocus();
|
|
16447
16518
|
}
|
|
@@ -16478,7 +16549,7 @@ class ClrDatagridActionOverflow {
|
|
|
16478
16549
|
}
|
|
16479
16550
|
}
|
|
16480
16551
|
}
|
|
16481
|
-
ClrDatagridActionOverflow.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrDatagridActionOverflow, deps: [{ token: RowActionService }, { token: ClrCommonStringsService }, { token: PLATFORM_ID }, { token:
|
|
16552
|
+
ClrDatagridActionOverflow.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrDatagridActionOverflow, deps: [{ token: RowActionService }, { token: ClrCommonStringsService }, { token: PLATFORM_ID }, { token: ClrPopoverToggleService }], target: i0.ɵɵFactoryTarget.Component });
|
|
16482
16553
|
ClrDatagridActionOverflow.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrDatagridActionOverflow, selector: "clr-dg-action-overflow", inputs: { buttonLabel: ["clrDgActionOverflowButtonLabel", "buttonLabel"], open: ["clrDgActionOverflowOpen", "open"] }, outputs: { openChange: "clrDgActionOverflowOpenChange" }, viewQueries: [{ propertyName: "keyFocus", first: true, predicate: ClrKeyFocus, descendants: true }], hostDirectives: [{ directive: ClrPopoverHostDirective }], ngImport: i0, template: `
|
|
16483
16554
|
<button
|
|
16484
16555
|
tabindex="-1"
|
|
@@ -16549,7 +16620,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
16549
16620
|
return [{ type: RowActionService }, { type: ClrCommonStringsService }, { type: undefined, decorators: [{
|
|
16550
16621
|
type: Inject,
|
|
16551
16622
|
args: [PLATFORM_ID]
|
|
16552
|
-
}] }, { type:
|
|
16623
|
+
}] }, { type: ClrPopoverToggleService }];
|
|
16553
16624
|
}, propDecorators: { buttonLabel: [{
|
|
16554
16625
|
type: Input,
|
|
16555
16626
|
args: ['clrDgActionOverflowButtonLabel']
|
|
@@ -17006,8 +17077,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
17006
17077
|
class DatagridDetailRegisterer {
|
|
17007
17078
|
constructor(expandableRowsCount) {
|
|
17008
17079
|
this.expandableRowsCount = expandableRowsCount;
|
|
17009
|
-
if (
|
|
17010
|
-
|
|
17080
|
+
if (expandableRowsCount) {
|
|
17081
|
+
expandableRowsCount.register();
|
|
17011
17082
|
}
|
|
17012
17083
|
}
|
|
17013
17084
|
ngOnDestroy() {
|
|
@@ -17136,13 +17207,12 @@ const COLUMN_STATE_PROVIDER = {
|
|
|
17136
17207
|
class ClrDatagridHideableColumn {
|
|
17137
17208
|
constructor(titleTemplateRef, viewContainerRef, columnsService, columnState) {
|
|
17138
17209
|
this.titleTemplateRef = titleTemplateRef;
|
|
17139
|
-
this.viewContainerRef = viewContainerRef;
|
|
17140
17210
|
this.columnsService = columnsService;
|
|
17141
17211
|
this.columnState = columnState;
|
|
17142
17212
|
this.hiddenChange = new EventEmitter();
|
|
17143
17213
|
this.subscriptions = [];
|
|
17144
|
-
|
|
17145
|
-
if (!
|
|
17214
|
+
viewContainerRef.createEmbeddedView(titleTemplateRef);
|
|
17215
|
+
if (!columnState) {
|
|
17146
17216
|
throw new Error('The *clrDgHideableColumn directive can only be used inside of a clr-dg-column component.');
|
|
17147
17217
|
}
|
|
17148
17218
|
}
|
|
@@ -17229,7 +17299,7 @@ class ClrIfDetail {
|
|
|
17229
17299
|
this.stateChange = new EventEmitter(null);
|
|
17230
17300
|
this.subscriptions = [];
|
|
17231
17301
|
this.skip = false; // This keeps us from resetting the input and calling the toggle twice
|
|
17232
|
-
|
|
17302
|
+
detailService.enabled = true;
|
|
17233
17303
|
}
|
|
17234
17304
|
set state(model) {
|
|
17235
17305
|
if (!this.skip) {
|
|
@@ -17367,7 +17437,7 @@ class ClrDatagridPagination {
|
|
|
17367
17437
|
this.commonStrings = commonStrings;
|
|
17368
17438
|
this.detailService = detailService;
|
|
17369
17439
|
this.currentChanged = new EventEmitter(false);
|
|
17370
|
-
|
|
17440
|
+
page.activated = true;
|
|
17371
17441
|
}
|
|
17372
17442
|
/**
|
|
17373
17443
|
* Page size
|
|
@@ -17852,10 +17922,10 @@ class ClrDatagridVirtualScrollDirective {
|
|
|
17852
17922
|
this.cdkVirtualForInputs = {
|
|
17853
17923
|
cdkVirtualForTrackBy: index => index,
|
|
17854
17924
|
};
|
|
17855
|
-
|
|
17856
|
-
|
|
17857
|
-
|
|
17858
|
-
this.datagridElementRef =
|
|
17925
|
+
items.smartenUp();
|
|
17926
|
+
datagrid.hasVirtualScroller = true;
|
|
17927
|
+
datagrid.detailService.preventFocusScroll = true;
|
|
17928
|
+
this.datagridElementRef = datagrid.el;
|
|
17859
17929
|
// default
|
|
17860
17930
|
this.cdkVirtualForTemplateCacheSize = 20;
|
|
17861
17931
|
this.mutationChanges.observe(this.datagridElementRef.nativeElement, {
|
|
@@ -18057,7 +18127,6 @@ class DatagridHeaderRenderer {
|
|
|
18057
18127
|
constructor(el, renderer, organizer, domAdapter, columnResizerService, columnsService, columnState) {
|
|
18058
18128
|
this.el = el;
|
|
18059
18129
|
this.renderer = renderer;
|
|
18060
|
-
this.organizer = organizer;
|
|
18061
18130
|
this.domAdapter = domAdapter;
|
|
18062
18131
|
this.columnResizerService = columnResizerService;
|
|
18063
18132
|
this.columnsService = columnsService;
|
|
@@ -18069,7 +18138,7 @@ class DatagridHeaderRenderer {
|
|
|
18069
18138
|
this.widthSet = false;
|
|
18070
18139
|
this.autoSet = false;
|
|
18071
18140
|
this.subscriptions = [];
|
|
18072
|
-
this.subscriptions.push(
|
|
18141
|
+
this.subscriptions.push(organizer.filterRenderSteps(DatagridRenderStep.CLEAR_WIDTHS).subscribe(() => this.clearWidth()));
|
|
18073
18142
|
}
|
|
18074
18143
|
ngOnDestroy() {
|
|
18075
18144
|
this.subscriptions.forEach(sub => sub.unsubscribe());
|
|
@@ -18217,14 +18286,13 @@ const domAdapterFactory = (platformId) => {
|
|
|
18217
18286
|
// Fixes build error
|
|
18218
18287
|
// @dynamic (https://github.com/angular/angular/issues/19698#issuecomment-338340211)
|
|
18219
18288
|
class DatagridMainRenderer {
|
|
18220
|
-
constructor(organizer, items, page,
|
|
18289
|
+
constructor(datagrid, organizer, items, page, el, renderer, detailService, tableSizeService, columnsService, ngZone, keyNavigation) {
|
|
18290
|
+
this.datagrid = datagrid;
|
|
18221
18291
|
this.organizer = organizer;
|
|
18222
18292
|
this.items = items;
|
|
18223
18293
|
this.page = page;
|
|
18224
|
-
this.domAdapter = domAdapter;
|
|
18225
18294
|
this.el = el;
|
|
18226
18295
|
this.renderer = renderer;
|
|
18227
|
-
this.detailService = detailService;
|
|
18228
18296
|
this.tableSizeService = tableSizeService;
|
|
18229
18297
|
this.columnsService = columnsService;
|
|
18230
18298
|
this.ngZone = ngZone;
|
|
@@ -18238,16 +18306,14 @@ class DatagridMainRenderer {
|
|
|
18238
18306
|
* 2) When rows are lazily loaded for the first time
|
|
18239
18307
|
*/
|
|
18240
18308
|
this.columnsSizesStable = false;
|
|
18241
|
-
this.subscriptions.push(this.
|
|
18242
|
-
|
|
18243
|
-
.subscribe(() => this.computeHeadersWidth()));
|
|
18244
|
-
this.subscriptions.push(this.page.sizeChange.subscribe(() => {
|
|
18309
|
+
this.subscriptions.push(organizer.filterRenderSteps(DatagridRenderStep.COMPUTE_COLUMN_WIDTHS).subscribe(() => this.computeHeadersWidth()));
|
|
18310
|
+
this.subscriptions.push(page.sizeChange.subscribe(() => {
|
|
18245
18311
|
if (this._heightSet) {
|
|
18246
18312
|
this.resetDatagridHeight();
|
|
18247
18313
|
}
|
|
18248
18314
|
}));
|
|
18249
|
-
this.subscriptions.push(
|
|
18250
|
-
this.subscriptions.push(
|
|
18315
|
+
this.subscriptions.push(detailService.stateChange.subscribe(state => this.toggleDetailPane(state)));
|
|
18316
|
+
this.subscriptions.push(items.change.subscribe(() => (this.shouldStabilizeColumns = true)));
|
|
18251
18317
|
}
|
|
18252
18318
|
ngOnInit() {
|
|
18253
18319
|
this.columnsService.columnsStateChange.subscribe(change => this.columnStateChanged(change));
|
|
@@ -18267,10 +18333,9 @@ class DatagridMainRenderer {
|
|
|
18267
18333
|
this.tableSizeService.table = this.el;
|
|
18268
18334
|
}
|
|
18269
18335
|
ngAfterViewChecked() {
|
|
18270
|
-
|
|
18271
|
-
|
|
18272
|
-
|
|
18273
|
-
}, 0);
|
|
18336
|
+
const datagridIsVisible = this.checkAndUpdateVisibility();
|
|
18337
|
+
if (this.shouldStabilizeColumns && datagridIsVisible) {
|
|
18338
|
+
this.stabilizeColumns();
|
|
18274
18339
|
}
|
|
18275
18340
|
if (this.shouldComputeHeight()) {
|
|
18276
18341
|
this.ngZone.runOutsideAngular(() => {
|
|
@@ -18388,6 +18453,7 @@ class DatagridMainRenderer {
|
|
|
18388
18453
|
(_b = (_a = row.expandableRow) === null || _a === void 0 ? void 0 : _a.cells.get(columnIndex)) === null || _b === void 0 ? void 0 : _b.setHidden(state);
|
|
18389
18454
|
}
|
|
18390
18455
|
});
|
|
18456
|
+
this.updateColumnSeparatorsVisibility();
|
|
18391
18457
|
this.keyNavigation.resetKeyGrid();
|
|
18392
18458
|
break;
|
|
18393
18459
|
case DatagridColumnChanges.INITIALIZE:
|
|
@@ -18421,8 +18487,29 @@ class DatagridMainRenderer {
|
|
|
18421
18487
|
this.columnsSizesStable = true;
|
|
18422
18488
|
}
|
|
18423
18489
|
}
|
|
18490
|
+
checkAndUpdateVisibility() {
|
|
18491
|
+
if (this.el.nativeElement.offsetParent) {
|
|
18492
|
+
this.datagrid.datagrid.nativeElement.style.visibility = 'visible';
|
|
18493
|
+
return true;
|
|
18494
|
+
}
|
|
18495
|
+
else {
|
|
18496
|
+
this.datagrid.datagrid.nativeElement.style.visibility = 'hidden';
|
|
18497
|
+
return false;
|
|
18498
|
+
}
|
|
18499
|
+
}
|
|
18500
|
+
updateColumnSeparatorsVisibility() {
|
|
18501
|
+
const visibleColumns = this.datagrid.columns.filter(column => !column.isHidden);
|
|
18502
|
+
visibleColumns.forEach((column, index) => {
|
|
18503
|
+
if (index === visibleColumns.length - 1) {
|
|
18504
|
+
column.showSeparator = false;
|
|
18505
|
+
}
|
|
18506
|
+
else if (!column.showSeparator) {
|
|
18507
|
+
column.showSeparator = true;
|
|
18508
|
+
}
|
|
18509
|
+
});
|
|
18510
|
+
}
|
|
18424
18511
|
}
|
|
18425
|
-
DatagridMainRenderer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: DatagridMainRenderer, deps: [{ token:
|
|
18512
|
+
DatagridMainRenderer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: DatagridMainRenderer, deps: [{ token: ClrDatagrid }, { token: DatagridRenderOrganizer }, { token: Items }, { token: Page }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: DetailService }, { token: TableSizeService }, { token: ColumnsService }, { token: i0.NgZone }, { token: KeyNavigationGridController }], target: i0.ɵɵFactoryTarget.Directive });
|
|
18426
18513
|
DatagridMainRenderer.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.2", type: DatagridMainRenderer, selector: "clr-datagrid", providers: [{ provide: DomAdapter, useFactory: domAdapterFactory, deps: [PLATFORM_ID] }], queries: [{ propertyName: "headers", predicate: DatagridHeaderRenderer }, { propertyName: "rows", predicate: DatagridRowRenderer }], ngImport: i0 });
|
|
18427
18514
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: DatagridMainRenderer, decorators: [{
|
|
18428
18515
|
type: Directive,
|
|
@@ -18430,7 +18517,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
18430
18517
|
selector: 'clr-datagrid',
|
|
18431
18518
|
providers: [{ provide: DomAdapter, useFactory: domAdapterFactory, deps: [PLATFORM_ID] }],
|
|
18432
18519
|
}]
|
|
18433
|
-
}], ctorParameters: function () { return [{ type:
|
|
18520
|
+
}], ctorParameters: function () { return [{ type: ClrDatagrid }, { type: DatagridRenderOrganizer }, { type: Items }, { type: Page }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: DetailService }, { type: TableSizeService }, { type: ColumnsService }, { type: i0.NgZone }, { type: KeyNavigationGridController }]; }, propDecorators: { headers: [{
|
|
18434
18521
|
type: ContentChildren,
|
|
18435
18522
|
args: [DatagridHeaderRenderer]
|
|
18436
18523
|
}], rows: [{
|
|
@@ -19072,8 +19159,8 @@ class RecursiveChildren {
|
|
|
19072
19159
|
this.featuresService = featuresService;
|
|
19073
19160
|
this.expandService = expandService;
|
|
19074
19161
|
if (expandService) {
|
|
19075
|
-
this.subscription =
|
|
19076
|
-
if (!value && this.parent && !
|
|
19162
|
+
this.subscription = expandService.expandChange.subscribe(value => {
|
|
19163
|
+
if (!value && this.parent && !featuresService.eager && featuresService.recursion) {
|
|
19077
19164
|
// In the case of lazy-loading recursive trees, we clear the children on collapse.
|
|
19078
19165
|
// This is better in case they change between two user interaction, and that way
|
|
19079
19166
|
// the app itself can decide whether to cache them or not.
|
|
@@ -19690,7 +19777,7 @@ class ClrTreeNode {
|
|
|
19690
19777
|
this.typeAheadKeyBuffer = '';
|
|
19691
19778
|
this.typeAheadKeyEvent = new Subject();
|
|
19692
19779
|
this.subscriptions = [];
|
|
19693
|
-
if (
|
|
19780
|
+
if (featuresService.recursion) {
|
|
19694
19781
|
// I'm completely stuck, we have to hack into private properties until either
|
|
19695
19782
|
// https://github.com/angular/angular/issues/14935 or https://github.com/angular/angular/issues/15998
|
|
19696
19783
|
// are fixed
|
|
@@ -19932,7 +20019,7 @@ class ClrTreeNode {
|
|
|
19932
20019
|
}
|
|
19933
20020
|
}
|
|
19934
20021
|
ClrTreeNode.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrTreeNode, deps: [{ token: PLATFORM_ID }, { token: ClrTreeNode, optional: true, skipSelf: true }, { token: TreeFeaturesService }, { token: IfExpandService }, { token: ClrCommonStringsService }, { token: TreeFocusManagerService }, { token: i0.ElementRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
19935
|
-
ClrTreeNode.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrTreeNode, selector: "clr-tree-node", inputs: { expandable: ["clrExpandable", "expandable"], disabled: ["clrDisabled", "disabled"], selected: ["clrSelected", "selected"], expanded: ["clrExpanded", "expanded"], clrForTypeAhead: "clrForTypeAhead" }, outputs: { selectedChange: "clrSelectedChange", expandedChange: "clrExpandedChange" }, host: { properties: { "class.clr-tree-node": "true", "class.disabled": "this._model.disabled" } }, providers: [TREE_FEATURES_PROVIDER, IfExpandService, { provide: LoadingListener, useExisting: IfExpandService }], queries: [{ propertyName: "treeNodeLinkList", predicate: ClrTreeNodeLink }], viewQueries: [{ propertyName: "contentContainer", first: true, predicate: ["contentContainer"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<!--\n ~ Copyright (c) 2016-2024 Broadcom. All Rights Reserved.\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n<div\n #contentContainer\n role=\"treeitem\"\n class=\"clr-tree-node-content-container\"\n tabindex=\"-1\"\n [class.clr-form-control-disabled]=\"disabled\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-expanded]=\"isExpandable() ? expanded : null\"\n [attr.aria-selected]=\"ariaSelected\"\n (keydown)=\"onKeyDown($event)\"\n (focus)=\"broadcastFocusOnContainer()\"\n>\n <button\n *ngIf=\"isExpandable() && !isModelLoading && !expandService.loading\"\n aria-hidden=\"true\"\n type=\"button\"\n tabindex=\"-1\"\n class=\"clr-treenode-caret\"\n (click)=\"expandService.toggle();\"\n (focus)=\"focusTreeNode()\"\n [disabled]=\"disabled\"\n >\n <cds-icon\n class=\"clr-treenode-caret-icon\"\n shape=\"angle\"\n [attr.direction]=\"expandService.expanded ? 'down' : 'right'\"\n ></cds-icon>\n </button>\n <div class=\"clr-treenode-spinner-container\" *ngIf=\"expandService.loading || isModelLoading\">\n <span class=\"clr-treenode-spinner spinner\"></span>\n </div>\n <div class=\"clr-checkbox-wrapper clr-treenode-checkbox\" *ngIf=\"featuresService.selectable\">\n <input\n aria-hidden=\"true\"\n type=\"checkbox\"\n id=\"{{nodeId}}-check\"\n class=\"clr-checkbox\"\n [disabled]=\"disabled\"\n [checked]=\"_model.selected.value === STATES.SELECTED\"\n [indeterminate]=\"_model.selected.value === STATES.INDETERMINATE\"\n (change)=\"_model.toggleSelection(featuresService.eager)\"\n (focus)=\"focusTreeNode()\"\n tabindex=\"-1\"\n />\n <label for=\"{{nodeId}}-check\" class=\"clr-control-label\">\n <ng-container [ngTemplateOutlet]=\"treenodeContent\"></ng-container>\n </label>\n </div>\n <div\n class=\"clr-treenode-content\"\n [class.clr-treenode-text-only]=\"treeNodeContentTextOnly\"\n (mouseup)=\"focusTreeNode()\"\n *ngIf=\"!featuresService.selectable\"\n >\n <ng-container [ngTemplateOutlet]=\"treenodeContent\"></ng-container>\n </div>\n\n <ng-template #treenodeContent>\n <ng-content></ng-content>\n <div class=\"clr-sr-only\" *ngIf=\"featuresService.selectable || ariaSelected\">\n <span
|
|
20022
|
+
ClrTreeNode.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrTreeNode, selector: "clr-tree-node", inputs: { expandable: ["clrExpandable", "expandable"], disabled: ["clrDisabled", "disabled"], selected: ["clrSelected", "selected"], expanded: ["clrExpanded", "expanded"], clrForTypeAhead: "clrForTypeAhead" }, outputs: { selectedChange: "clrSelectedChange", expandedChange: "clrExpandedChange" }, host: { properties: { "class.clr-tree-node": "true", "class.disabled": "this._model.disabled" } }, providers: [TREE_FEATURES_PROVIDER, IfExpandService, { provide: LoadingListener, useExisting: IfExpandService }], queries: [{ propertyName: "treeNodeLinkList", predicate: ClrTreeNodeLink }], viewQueries: [{ propertyName: "contentContainer", first: true, predicate: ["contentContainer"], descendants: true, read: ElementRef, static: true }], ngImport: i0, template: "<!--\n ~ Copyright (c) 2016-2024 Broadcom. All Rights Reserved.\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n<div\n #contentContainer\n role=\"treeitem\"\n class=\"clr-tree-node-content-container\"\n tabindex=\"-1\"\n [class.clr-form-control-disabled]=\"disabled\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-expanded]=\"isExpandable() ? expanded : null\"\n [attr.aria-selected]=\"ariaSelected\"\n (keydown)=\"onKeyDown($event)\"\n (focus)=\"broadcastFocusOnContainer()\"\n>\n <button\n *ngIf=\"isExpandable() && !isModelLoading && !expandService.loading\"\n aria-hidden=\"true\"\n type=\"button\"\n tabindex=\"-1\"\n class=\"clr-treenode-caret\"\n (click)=\"expandService.toggle();\"\n (focus)=\"focusTreeNode()\"\n [disabled]=\"disabled\"\n >\n <cds-icon\n class=\"clr-treenode-caret-icon\"\n shape=\"angle\"\n [attr.direction]=\"expandService.expanded ? 'down' : 'right'\"\n ></cds-icon>\n </button>\n <div class=\"clr-treenode-spinner-container\" *ngIf=\"expandService.loading || isModelLoading\">\n <span class=\"clr-treenode-spinner spinner\"></span>\n </div>\n <div class=\"clr-checkbox-wrapper clr-treenode-checkbox\" *ngIf=\"featuresService.selectable\">\n <input\n aria-hidden=\"true\"\n type=\"checkbox\"\n id=\"{{nodeId}}-check\"\n class=\"clr-checkbox\"\n [disabled]=\"disabled\"\n [checked]=\"_model.selected.value === STATES.SELECTED\"\n [indeterminate]=\"_model.selected.value === STATES.INDETERMINATE\"\n (change)=\"_model.toggleSelection(featuresService.eager)\"\n (focus)=\"focusTreeNode()\"\n tabindex=\"-1\"\n />\n <label for=\"{{nodeId}}-check\" class=\"clr-control-label\">\n <ng-container [ngTemplateOutlet]=\"treenodeContent\"></ng-container>\n </label>\n </div>\n <div\n class=\"clr-treenode-content\"\n [class.clr-treenode-text-only]=\"treeNodeContentTextOnly\"\n (mouseup)=\"focusTreeNode()\"\n *ngIf=\"!featuresService.selectable\"\n >\n <ng-container [ngTemplateOutlet]=\"treenodeContent\"></ng-container>\n </div>\n\n <ng-template #treenodeContent>\n <ng-content></ng-content>\n <div class=\"clr-sr-only\" *ngIf=\"featuresService.selectable || ariaSelected\">\n <span> {{ariaSelected ? commonStrings.keys.selectedTreeNode : commonStrings.keys.unselectedTreeNode}}</span>\n </div>\n </ng-template>\n</div>\n<div\n class=\"clr-treenode-children\"\n [@toggleChildrenAnim]=\"expandService.expanded ? 'expanded' : 'collapsed'\"\n [attr.role]=\"isExpandable() && !featuresService.recursion ? 'group' : null\"\n>\n <ng-content select=\"clr-tree-node\"></ng-content>\n <ng-content select=\"[clrIfExpanded]\"></ng-content>\n <clr-recursive-children [parent]=\"_model\"></clr-recursive-children>\n</div>\n", dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: CdsIconCustomTag, selector: "cds-icon" }, { kind: "component", type: RecursiveChildren, selector: "clr-recursive-children", inputs: ["parent", "children"] }], animations: [
|
|
19936
20023
|
trigger('toggleChildrenAnim', [
|
|
19937
20024
|
transition('collapsed => expanded', [style({ height: 0 }), animate(200, style({ height: '*' }))]),
|
|
19938
20025
|
transition('expanded => collapsed', [style({ height: '*' }), animate(200, style({ height: 0 }))]),
|
|
@@ -19952,7 +20039,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
19952
20039
|
], host: {
|
|
19953
20040
|
'[class.clr-tree-node]': 'true',
|
|
19954
20041
|
'[class.disabled]': 'this._model.disabled',
|
|
19955
|
-
}, template: "<!--\n ~ Copyright (c) 2016-2024 Broadcom. All Rights Reserved.\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n<div\n #contentContainer\n role=\"treeitem\"\n class=\"clr-tree-node-content-container\"\n tabindex=\"-1\"\n [class.clr-form-control-disabled]=\"disabled\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-expanded]=\"isExpandable() ? expanded : null\"\n [attr.aria-selected]=\"ariaSelected\"\n (keydown)=\"onKeyDown($event)\"\n (focus)=\"broadcastFocusOnContainer()\"\n>\n <button\n *ngIf=\"isExpandable() && !isModelLoading && !expandService.loading\"\n aria-hidden=\"true\"\n type=\"button\"\n tabindex=\"-1\"\n class=\"clr-treenode-caret\"\n (click)=\"expandService.toggle();\"\n (focus)=\"focusTreeNode()\"\n [disabled]=\"disabled\"\n >\n <cds-icon\n class=\"clr-treenode-caret-icon\"\n shape=\"angle\"\n [attr.direction]=\"expandService.expanded ? 'down' : 'right'\"\n ></cds-icon>\n </button>\n <div class=\"clr-treenode-spinner-container\" *ngIf=\"expandService.loading || isModelLoading\">\n <span class=\"clr-treenode-spinner spinner\"></span>\n </div>\n <div class=\"clr-checkbox-wrapper clr-treenode-checkbox\" *ngIf=\"featuresService.selectable\">\n <input\n aria-hidden=\"true\"\n type=\"checkbox\"\n id=\"{{nodeId}}-check\"\n class=\"clr-checkbox\"\n [disabled]=\"disabled\"\n [checked]=\"_model.selected.value === STATES.SELECTED\"\n [indeterminate]=\"_model.selected.value === STATES.INDETERMINATE\"\n (change)=\"_model.toggleSelection(featuresService.eager)\"\n (focus)=\"focusTreeNode()\"\n tabindex=\"-1\"\n />\n <label for=\"{{nodeId}}-check\" class=\"clr-control-label\">\n <ng-container [ngTemplateOutlet]=\"treenodeContent\"></ng-container>\n </label>\n </div>\n <div\n class=\"clr-treenode-content\"\n [class.clr-treenode-text-only]=\"treeNodeContentTextOnly\"\n (mouseup)=\"focusTreeNode()\"\n *ngIf=\"!featuresService.selectable\"\n >\n <ng-container [ngTemplateOutlet]=\"treenodeContent\"></ng-container>\n </div>\n\n <ng-template #treenodeContent>\n <ng-content></ng-content>\n <div class=\"clr-sr-only\" *ngIf=\"featuresService.selectable || ariaSelected\">\n <span
|
|
20042
|
+
}, template: "<!--\n ~ Copyright (c) 2016-2024 Broadcom. All Rights Reserved.\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n<div\n #contentContainer\n role=\"treeitem\"\n class=\"clr-tree-node-content-container\"\n tabindex=\"-1\"\n [class.clr-form-control-disabled]=\"disabled\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-expanded]=\"isExpandable() ? expanded : null\"\n [attr.aria-selected]=\"ariaSelected\"\n (keydown)=\"onKeyDown($event)\"\n (focus)=\"broadcastFocusOnContainer()\"\n>\n <button\n *ngIf=\"isExpandable() && !isModelLoading && !expandService.loading\"\n aria-hidden=\"true\"\n type=\"button\"\n tabindex=\"-1\"\n class=\"clr-treenode-caret\"\n (click)=\"expandService.toggle();\"\n (focus)=\"focusTreeNode()\"\n [disabled]=\"disabled\"\n >\n <cds-icon\n class=\"clr-treenode-caret-icon\"\n shape=\"angle\"\n [attr.direction]=\"expandService.expanded ? 'down' : 'right'\"\n ></cds-icon>\n </button>\n <div class=\"clr-treenode-spinner-container\" *ngIf=\"expandService.loading || isModelLoading\">\n <span class=\"clr-treenode-spinner spinner\"></span>\n </div>\n <div class=\"clr-checkbox-wrapper clr-treenode-checkbox\" *ngIf=\"featuresService.selectable\">\n <input\n aria-hidden=\"true\"\n type=\"checkbox\"\n id=\"{{nodeId}}-check\"\n class=\"clr-checkbox\"\n [disabled]=\"disabled\"\n [checked]=\"_model.selected.value === STATES.SELECTED\"\n [indeterminate]=\"_model.selected.value === STATES.INDETERMINATE\"\n (change)=\"_model.toggleSelection(featuresService.eager)\"\n (focus)=\"focusTreeNode()\"\n tabindex=\"-1\"\n />\n <label for=\"{{nodeId}}-check\" class=\"clr-control-label\">\n <ng-container [ngTemplateOutlet]=\"treenodeContent\"></ng-container>\n </label>\n </div>\n <div\n class=\"clr-treenode-content\"\n [class.clr-treenode-text-only]=\"treeNodeContentTextOnly\"\n (mouseup)=\"focusTreeNode()\"\n *ngIf=\"!featuresService.selectable\"\n >\n <ng-container [ngTemplateOutlet]=\"treenodeContent\"></ng-container>\n </div>\n\n <ng-template #treenodeContent>\n <ng-content></ng-content>\n <div class=\"clr-sr-only\" *ngIf=\"featuresService.selectable || ariaSelected\">\n <span> {{ariaSelected ? commonStrings.keys.selectedTreeNode : commonStrings.keys.unselectedTreeNode}}</span>\n </div>\n </ng-template>\n</div>\n<div\n class=\"clr-treenode-children\"\n [@toggleChildrenAnim]=\"expandService.expanded ? 'expanded' : 'collapsed'\"\n [attr.role]=\"isExpandable() && !featuresService.recursion ? 'group' : null\"\n>\n <ng-content select=\"clr-tree-node\"></ng-content>\n <ng-content select=\"[clrIfExpanded]\"></ng-content>\n <clr-recursive-children [parent]=\"_model\"></clr-recursive-children>\n</div>\n" }]
|
|
19956
20043
|
}], ctorParameters: function () {
|
|
19957
20044
|
return [{ type: undefined, decorators: [{
|
|
19958
20045
|
type: Inject,
|
|
@@ -20001,18 +20088,21 @@ function trimAndLowerCase(value) {
|
|
|
20001
20088
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
20002
20089
|
*/
|
|
20003
20090
|
class ClrTree {
|
|
20004
|
-
constructor(featuresService, focusManagerService,
|
|
20091
|
+
constructor(featuresService, focusManagerService, renderer, el, ngZone) {
|
|
20005
20092
|
this.featuresService = featuresService;
|
|
20006
20093
|
this.focusManagerService = focusManagerService;
|
|
20094
|
+
this.renderer = renderer;
|
|
20095
|
+
this.el = el;
|
|
20007
20096
|
this.subscriptions = [];
|
|
20008
|
-
|
|
20009
|
-
|
|
20097
|
+
this._isMultiSelectable = false;
|
|
20098
|
+
const subscription = ngZone.runOutsideAngular(() => fromEvent(el.nativeElement, 'focusin').subscribe((event) => {
|
|
20099
|
+
if (event.target === el.nativeElement) {
|
|
20010
20100
|
// After discussing with the team, I've made it so that when the tree receives focus, the first visible node will be focused.
|
|
20011
20101
|
// This will prevent from the page scrolling abruptly to the first selected node if it exist in a deeply nested tree.
|
|
20012
|
-
|
|
20102
|
+
focusManagerService.focusFirstVisibleNode();
|
|
20013
20103
|
// when the first child gets focus,
|
|
20014
20104
|
// tree should no longer have tabindex of 0.
|
|
20015
|
-
renderer.removeAttribute(nativeElement, 'tabindex');
|
|
20105
|
+
renderer.removeAttribute(el.nativeElement, 'tabindex');
|
|
20016
20106
|
}
|
|
20017
20107
|
}));
|
|
20018
20108
|
this.subscriptions.push(subscription);
|
|
@@ -20021,17 +20111,28 @@ class ClrTree {
|
|
|
20021
20111
|
this.featuresService.eager = !value;
|
|
20022
20112
|
}
|
|
20023
20113
|
get isMultiSelectable() {
|
|
20024
|
-
return this.
|
|
20114
|
+
return this._isMultiSelectable;
|
|
20025
20115
|
}
|
|
20026
20116
|
ngAfterContentInit() {
|
|
20027
20117
|
this.setRootNodes();
|
|
20028
20118
|
this.subscriptions.push(this.rootNodes.changes.subscribe(() => {
|
|
20119
|
+
this.setMultiSelectable();
|
|
20029
20120
|
this.setRootNodes();
|
|
20030
20121
|
}));
|
|
20031
20122
|
}
|
|
20032
20123
|
ngOnDestroy() {
|
|
20033
20124
|
this.subscriptions.forEach(sub => sub.unsubscribe());
|
|
20034
20125
|
}
|
|
20126
|
+
setMultiSelectable() {
|
|
20127
|
+
if (this.featuresService.selectable && this.rootNodes.length > 0) {
|
|
20128
|
+
this._isMultiSelectable = true;
|
|
20129
|
+
this.renderer.setAttribute(this.el.nativeElement, 'aria-multiselectable', 'true');
|
|
20130
|
+
}
|
|
20131
|
+
else {
|
|
20132
|
+
this._isMultiSelectable = false;
|
|
20133
|
+
this.renderer.removeAttribute(this.el.nativeElement, 'aria-multiselectable');
|
|
20134
|
+
}
|
|
20135
|
+
}
|
|
20035
20136
|
setRootNodes() {
|
|
20036
20137
|
// if node has no parent, it's a root node
|
|
20037
20138
|
// for recursive tree, this.rootNodes registers also nested children
|
|
@@ -20039,8 +20140,8 @@ class ClrTree {
|
|
|
20039
20140
|
this.focusManagerService.rootNodeModels = this.rootNodes.map(node => node._model).filter(node => !node.parent);
|
|
20040
20141
|
}
|
|
20041
20142
|
}
|
|
20042
|
-
ClrTree.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrTree, deps: [{ token: TreeFeaturesService }, { token: TreeFocusManagerService }, { token: i0.
|
|
20043
|
-
ClrTree.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrTree, selector: "clr-tree", inputs: { lazy: ["clrLazy", "lazy"] }, host: { attributes: { "tabindex": "0" }, properties: { "attr.role": "\"tree\""
|
|
20143
|
+
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 });
|
|
20144
|
+
ClrTree.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.2", type: ClrTree, selector: "clr-tree", inputs: { lazy: ["clrLazy", "lazy"] }, host: { attributes: { "tabindex": "0" }, properties: { "attr.role": "\"tree\"" } }, providers: [TREE_FEATURES_PROVIDER, TreeFocusManagerService], queries: [{ propertyName: "rootNodes", predicate: ClrTreeNode }], ngImport: i0, template: `
|
|
20044
20145
|
<ng-content></ng-content>
|
|
20045
20146
|
<clr-recursive-children
|
|
20046
20147
|
*ngIf="featuresService.recursion"
|
|
@@ -20062,10 +20163,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
20062
20163
|
host: {
|
|
20063
20164
|
tabindex: '0',
|
|
20064
20165
|
'[attr.role]': '"tree"',
|
|
20065
|
-
'[attr.aria-multiselectable]': 'isMultiSelectable',
|
|
20066
20166
|
},
|
|
20067
20167
|
}]
|
|
20068
|
-
}], ctorParameters: function () { return [{ type: TreeFeaturesService }, { type: TreeFocusManagerService }, { type: i0.
|
|
20168
|
+
}], ctorParameters: function () { return [{ type: TreeFeaturesService }, { type: TreeFocusManagerService }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { rootNodes: [{
|
|
20069
20169
|
type: ContentChildren,
|
|
20070
20170
|
args: [ClrTreeNode]
|
|
20071
20171
|
}], lazy: [{
|
|
@@ -20152,7 +20252,7 @@ class DropdownFocusHandler {
|
|
|
20152
20252
|
this._unlistenFuncs = [];
|
|
20153
20253
|
this.resetChildren();
|
|
20154
20254
|
this.moveToFirstItemWhenOpen();
|
|
20155
|
-
if (!
|
|
20255
|
+
if (!parent) {
|
|
20156
20256
|
this.handleRootFocus();
|
|
20157
20257
|
}
|
|
20158
20258
|
}
|
|
@@ -20352,11 +20452,10 @@ class ClrDropdown {
|
|
|
20352
20452
|
this.parent = parent;
|
|
20353
20453
|
this.toggleService = toggleService;
|
|
20354
20454
|
this.focusHandler = focusHandler;
|
|
20355
|
-
this.cdr = cdr;
|
|
20356
20455
|
this.isMenuClosable = true;
|
|
20357
20456
|
this.subscriptions = [];
|
|
20358
|
-
this.subscriptions.push(dropdownService.changes.subscribe(value => (
|
|
20359
|
-
this.subscriptions.push(toggleService.openChange.subscribe(() =>
|
|
20457
|
+
this.subscriptions.push(dropdownService.changes.subscribe(value => (toggleService.open = value)));
|
|
20458
|
+
this.subscriptions.push(toggleService.openChange.subscribe(() => cdr.markForCheck()));
|
|
20360
20459
|
}
|
|
20361
20460
|
ngOnDestroy() {
|
|
20362
20461
|
this.subscriptions.forEach(sub => sub.unsubscribe());
|
|
@@ -21995,12 +22094,12 @@ class ClrHeader {
|
|
|
21995
22094
|
this.isNavLevel2OnPage = false;
|
|
21996
22095
|
this.openNavLevel = null;
|
|
21997
22096
|
this.responsiveNavCodes = ResponsiveNavCodes;
|
|
21998
|
-
this._subscription =
|
|
22097
|
+
this._subscription = responsiveNavService.registeredNavs.subscribe({
|
|
21999
22098
|
next: (navLevelList) => {
|
|
22000
22099
|
this.initializeNavTriggers(navLevelList);
|
|
22001
22100
|
},
|
|
22002
22101
|
});
|
|
22003
|
-
this._subscription.add(
|
|
22102
|
+
this._subscription.add(responsiveNavService.navControl
|
|
22004
22103
|
.pipe(filter(({ controlCode }) => controlCode === ResponsiveNavCodes.NAV_CLOSE || controlCode === ResponsiveNavCodes.NAV_CLOSE_ALL))
|
|
22005
22104
|
.subscribe(() => {
|
|
22006
22105
|
this.openNavLevel = null;
|
|
@@ -22134,15 +22233,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
22134
22233
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
22135
22234
|
*/
|
|
22136
22235
|
const createCloseButton = (document, ariaLabel) => {
|
|
22236
|
+
ClarityIcons.addIcons(timesIcon);
|
|
22137
22237
|
const closeButton = document.createElement('button');
|
|
22138
22238
|
closeButton.setAttribute('aria-label', ariaLabel);
|
|
22139
22239
|
closeButton.setAttribute('aria-hidden', 'true');
|
|
22140
22240
|
closeButton.innerHTML = `
|
|
22141
22241
|
<cds-icon
|
|
22142
22242
|
inner-offset="1"
|
|
22143
|
-
shape="
|
|
22243
|
+
shape="times"
|
|
22144
22244
|
size="32"
|
|
22145
|
-
|
|
22245
|
+
></cds-icon>
|
|
22146
22246
|
`;
|
|
22147
22247
|
/**
|
|
22148
22248
|
* The button is hidden by default based on our Desktop-first approach.
|
|
@@ -22624,8 +22724,6 @@ class ClrTabLink {
|
|
|
22624
22724
|
this.ifActiveService = ifActiveService;
|
|
22625
22725
|
this.id = id;
|
|
22626
22726
|
this.el = el;
|
|
22627
|
-
this.cfr = cfr;
|
|
22628
|
-
this.viewContainerRef = viewContainerRef;
|
|
22629
22727
|
this.tabsService = tabsService;
|
|
22630
22728
|
this.tabsId = tabsId;
|
|
22631
22729
|
if (!this.tabLinkId) {
|
|
@@ -22634,9 +22732,9 @@ class ClrTabLink {
|
|
|
22634
22732
|
// Tab links can be rendered in one of two places: in the main area or inside the overflow dropdown menu.
|
|
22635
22733
|
// Here, we create a container so that its template can be used to create embeddedView on the fly.
|
|
22636
22734
|
// See TabsService's renderView() method and how it's used in Tabs class for an example.
|
|
22637
|
-
const factory =
|
|
22638
|
-
this.templateRefContainer =
|
|
22639
|
-
[
|
|
22735
|
+
const factory = cfr.resolveComponentFactory(TemplateRefContainer);
|
|
22736
|
+
this.templateRefContainer = viewContainerRef.createComponent(factory, undefined, undefined, [
|
|
22737
|
+
[el.nativeElement],
|
|
22640
22738
|
]).instance;
|
|
22641
22739
|
}
|
|
22642
22740
|
get inOverflow() {
|
|
@@ -23225,7 +23323,7 @@ class ClrVerticalNav {
|
|
|
23225
23323
|
this._navGroupRegistrationService = _navGroupRegistrationService;
|
|
23226
23324
|
this.commonStrings = commonStrings;
|
|
23227
23325
|
this._collapsedChanged = new EventEmitter(true);
|
|
23228
|
-
this._sub =
|
|
23326
|
+
this._sub = _navService.collapsedChanged.subscribe(value => {
|
|
23229
23327
|
this._collapsedChanged.emit(value);
|
|
23230
23328
|
});
|
|
23231
23329
|
}
|
|
@@ -23313,27 +23411,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
23313
23411
|
const EXPANDED_STATE = 'expanded';
|
|
23314
23412
|
const COLLAPSED_STATE = 'collapsed';
|
|
23315
23413
|
class ClrVerticalNavGroup {
|
|
23316
|
-
constructor(_itemExpand, _navGroupRegistrationService,
|
|
23414
|
+
constructor(_itemExpand, _navGroupRegistrationService, navGroupService, _navService, commonStrings) {
|
|
23317
23415
|
this._itemExpand = _itemExpand;
|
|
23318
23416
|
this._navGroupRegistrationService = _navGroupRegistrationService;
|
|
23319
|
-
this._navGroupService = _navGroupService;
|
|
23320
23417
|
this._navService = _navService;
|
|
23321
23418
|
this.commonStrings = commonStrings;
|
|
23322
23419
|
this.expandedChange = new EventEmitter(true);
|
|
23323
23420
|
this.wasExpanded = false;
|
|
23324
23421
|
this._subscriptions = [];
|
|
23325
23422
|
this._expandAnimationState = COLLAPSED_STATE;
|
|
23326
|
-
|
|
23423
|
+
_navGroupRegistrationService.registerNavGroup();
|
|
23327
23424
|
// FIXME: This subscription handles a corner case
|
|
23328
23425
|
// Vertical Nav collapse requires the animation to run first and then
|
|
23329
23426
|
// remove the nodes from the DOM. If the user directly sets the input
|
|
23330
23427
|
// on the clrIfExpanded directive, we have no chance to run the animation
|
|
23331
23428
|
// and wait for it to complete. This subscription makes sure that the
|
|
23332
23429
|
// animation states are correct for that edge case.
|
|
23333
|
-
this._subscriptions.push(
|
|
23430
|
+
this._subscriptions.push(_itemExpand.expandChange.subscribe(value => {
|
|
23334
23431
|
if (value && this.expandAnimationState === COLLAPSED_STATE) {
|
|
23335
|
-
if (
|
|
23336
|
-
|
|
23432
|
+
if (_navService.collapsed) {
|
|
23433
|
+
_navService.collapsed = false;
|
|
23337
23434
|
}
|
|
23338
23435
|
this.expandAnimationState = EXPANDED_STATE;
|
|
23339
23436
|
}
|
|
@@ -23343,7 +23440,7 @@ class ClrVerticalNavGroup {
|
|
|
23343
23440
|
}));
|
|
23344
23441
|
// 1. If the nav is collapsing, close the open nav group + save its state
|
|
23345
23442
|
// 2. If the nav is expanding, expand the nav group if the previous state was expanded
|
|
23346
|
-
this._subscriptions.push(
|
|
23443
|
+
this._subscriptions.push(_navService.animateOnCollapsed.subscribe((goingToCollapse) => {
|
|
23347
23444
|
if (goingToCollapse && this.expanded) {
|
|
23348
23445
|
this.wasExpanded = true;
|
|
23349
23446
|
this.expandAnimationState = COLLAPSED_STATE;
|
|
@@ -23354,7 +23451,7 @@ class ClrVerticalNavGroup {
|
|
|
23354
23451
|
}
|
|
23355
23452
|
}));
|
|
23356
23453
|
// If a link is clicked, expand the nav group
|
|
23357
|
-
this._subscriptions.push(
|
|
23454
|
+
this._subscriptions.push(navGroupService.expandChange.subscribe((expand) => {
|
|
23358
23455
|
if (expand && !this.expanded) {
|
|
23359
23456
|
this.expandGroup();
|
|
23360
23457
|
}
|
|
@@ -23483,7 +23580,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
23483
23580
|
class ClrVerticalNavIcon {
|
|
23484
23581
|
constructor(_verticalNavIconService) {
|
|
23485
23582
|
this._verticalNavIconService = _verticalNavIconService;
|
|
23486
|
-
|
|
23583
|
+
_verticalNavIconService.registerIcon();
|
|
23487
23584
|
}
|
|
23488
23585
|
ngOnDestroy() {
|
|
23489
23586
|
this._verticalNavIconService.unregisterIcon();
|
|
@@ -23651,9 +23748,10 @@ class ClrModalConfigurationService {
|
|
|
23651
23748
|
}
|
|
23652
23749
|
}
|
|
23653
23750
|
ClrModalConfigurationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrModalConfigurationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
23654
|
-
ClrModalConfigurationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrModalConfigurationService });
|
|
23751
|
+
ClrModalConfigurationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrModalConfigurationService, providedIn: 'root' });
|
|
23655
23752
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrModalConfigurationService, decorators: [{
|
|
23656
|
-
type: Injectable
|
|
23753
|
+
type: Injectable,
|
|
23754
|
+
args: [{ providedIn: 'root' }]
|
|
23657
23755
|
}] });
|
|
23658
23756
|
|
|
23659
23757
|
/*
|
|
@@ -23835,11 +23933,11 @@ class ClrModalBody {
|
|
|
23835
23933
|
this.unlisteners = [];
|
|
23836
23934
|
ngZone.runOutsideAngular(() => {
|
|
23837
23935
|
this.observer = new ResizeObserver(() => this.addOrRemoveTabIndex());
|
|
23838
|
-
this.observer.observe(
|
|
23839
|
-
this.unlisteners.push(
|
|
23936
|
+
this.observer.observe(host.nativeElement);
|
|
23937
|
+
this.unlisteners.push(renderer.listen(host.nativeElement, 'mouseup', () => {
|
|
23840
23938
|
// set the tabindex binding back when click is completed with mouseup
|
|
23841
23939
|
this.addOrRemoveTabIndex();
|
|
23842
|
-
}),
|
|
23940
|
+
}), renderer.listen(host.nativeElement, 'mousedown', () => {
|
|
23843
23941
|
// tabindex = 0 binding should be removed
|
|
23844
23942
|
// so it won't be focused when click starts with mousedown
|
|
23845
23943
|
this.removeTabIndex();
|
|
@@ -23892,14 +23990,13 @@ class ClrModalModule {
|
|
|
23892
23990
|
}
|
|
23893
23991
|
ClrModalModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
23894
23992
|
ClrModalModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.2", ngImport: i0, type: ClrModalModule, declarations: [ClrModal, ClrModalBody], imports: [CommonModule, CdkTrapFocusModule, ClrIconModule], exports: [ClrModal, ClrModalBody, ClrIconModule] });
|
|
23895
|
-
ClrModalModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrModalModule,
|
|
23993
|
+
ClrModalModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrModalModule, imports: [CommonModule, CdkTrapFocusModule, ClrIconModule, ClrIconModule] });
|
|
23896
23994
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrModalModule, decorators: [{
|
|
23897
23995
|
type: NgModule,
|
|
23898
23996
|
args: [{
|
|
23899
23997
|
imports: [CommonModule, CdkTrapFocusModule, ClrIconModule],
|
|
23900
23998
|
declarations: [CLR_MODAL_DIRECTIVES],
|
|
23901
23999
|
exports: [CLR_MODAL_DIRECTIVES, ClrIconModule],
|
|
23902
|
-
providers: [ClrModalConfigurationService],
|
|
23903
24000
|
}]
|
|
23904
24001
|
}], ctorParameters: function () { return []; } });
|
|
23905
24002
|
|
|
@@ -24057,7 +24154,6 @@ class ClrSignpostContent extends AbstractPopover {
|
|
|
24057
24154
|
constructor(injector, parentHost, commonStrings, signpostIdService, signpostFocusManager, platformId, document) {
|
|
24058
24155
|
super(injector, parentHost);
|
|
24059
24156
|
this.commonStrings = commonStrings;
|
|
24060
|
-
this.signpostIdService = signpostIdService;
|
|
24061
24157
|
this.signpostFocusManager = signpostFocusManager;
|
|
24062
24158
|
this.platformId = platformId;
|
|
24063
24159
|
this.signpostContentId = uniqueIdFactory();
|
|
@@ -24067,7 +24163,7 @@ class ClrSignpostContent extends AbstractPopover {
|
|
|
24067
24163
|
// Defaults
|
|
24068
24164
|
this.position = 'right-middle';
|
|
24069
24165
|
this.closeOnOutsideClick = true;
|
|
24070
|
-
|
|
24166
|
+
signpostIdService.setId(this.signpostContentId);
|
|
24071
24167
|
this.document = document;
|
|
24072
24168
|
}
|
|
24073
24169
|
/*********
|
|
@@ -24456,11 +24552,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
24456
24552
|
class ClrTooltipTrigger {
|
|
24457
24553
|
constructor(toggleService, tooltipIdService, tooltipMouseService) {
|
|
24458
24554
|
this.toggleService = toggleService;
|
|
24459
|
-
this.tooltipIdService = tooltipIdService;
|
|
24460
24555
|
this.tooltipMouseService = tooltipMouseService;
|
|
24461
24556
|
this.subs = [];
|
|
24462
24557
|
// The aria-described by comes from the id of content. It
|
|
24463
|
-
this.subs.push(
|
|
24558
|
+
this.subs.push(tooltipIdService.id.subscribe(tooltipId => (this.ariaDescribedBy = tooltipId)));
|
|
24464
24559
|
}
|
|
24465
24560
|
ngOnDestroy() {
|
|
24466
24561
|
this.subs.forEach(sub => sub.unsubscribe());
|
|
@@ -25574,7 +25669,7 @@ class WizardNavigationService {
|
|
|
25574
25669
|
* @memberof WizardNavigationService
|
|
25575
25670
|
*/
|
|
25576
25671
|
this._cancelWizard = new Subject();
|
|
25577
|
-
this.previousButtonSubscription =
|
|
25672
|
+
this.previousButtonSubscription = buttonService.previousBtnClicked.subscribe(() => {
|
|
25578
25673
|
const currentPage = this.currentPage;
|
|
25579
25674
|
if (this.currentPageIsFirst || currentPage.previousStepDisabled) {
|
|
25580
25675
|
return;
|
|
@@ -25584,21 +25679,21 @@ class WizardNavigationService {
|
|
|
25584
25679
|
this.previous();
|
|
25585
25680
|
}
|
|
25586
25681
|
});
|
|
25587
|
-
this.nextButtonSubscription =
|
|
25682
|
+
this.nextButtonSubscription = buttonService.nextBtnClicked.subscribe(() => {
|
|
25588
25683
|
this.checkAndCommitCurrentPage('next');
|
|
25589
25684
|
});
|
|
25590
|
-
this.dangerButtonSubscription =
|
|
25685
|
+
this.dangerButtonSubscription = buttonService.dangerBtnClicked.subscribe(() => {
|
|
25591
25686
|
this.checkAndCommitCurrentPage('danger');
|
|
25592
25687
|
});
|
|
25593
|
-
this.finishButtonSubscription =
|
|
25688
|
+
this.finishButtonSubscription = buttonService.finishBtnClicked.subscribe(() => {
|
|
25594
25689
|
this.checkAndCommitCurrentPage('finish');
|
|
25595
25690
|
});
|
|
25596
|
-
this.customButtonSubscription =
|
|
25691
|
+
this.customButtonSubscription = buttonService.customBtnClicked.subscribe((type) => {
|
|
25597
25692
|
if (!this.wizardStopNavigation) {
|
|
25598
25693
|
this.currentPage.customButtonClicked.emit(type);
|
|
25599
25694
|
}
|
|
25600
25695
|
});
|
|
25601
|
-
this.cancelButtonSubscription =
|
|
25696
|
+
this.cancelButtonSubscription = buttonService.cancelBtnClicked.subscribe(() => {
|
|
25602
25697
|
if (this.wizardStopNavigation) {
|
|
25603
25698
|
return;
|
|
25604
25699
|
}
|
|
@@ -25609,7 +25704,7 @@ class WizardNavigationService {
|
|
|
25609
25704
|
this.cancel();
|
|
25610
25705
|
}
|
|
25611
25706
|
});
|
|
25612
|
-
this.pagesResetSubscription =
|
|
25707
|
+
this.pagesResetSubscription = pageCollection.pagesReset.subscribe(() => {
|
|
25613
25708
|
this.setFirstPageCurrent();
|
|
25614
25709
|
});
|
|
25615
25710
|
}
|
|
@@ -26947,16 +27042,23 @@ ClrWizardStepnavItem.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", v
|
|
|
26947
27042
|
[attr.disabled]="isDisabled ? '' : null"
|
|
26948
27043
|
>
|
|
26949
27044
|
<div class="clr-wizard-stepnav-link-icon">
|
|
26950
|
-
<cds-icon
|
|
26951
|
-
|
|
27045
|
+
<cds-icon
|
|
27046
|
+
*ngIf="hasError"
|
|
27047
|
+
shape="error-standard"
|
|
27048
|
+
[attr.aria-label]="commonStrings.keys.wizardStepError"
|
|
27049
|
+
></cds-icon>
|
|
27050
|
+
<cds-icon
|
|
27051
|
+
*ngIf="!hasError && isComplete"
|
|
27052
|
+
shape="success-standard"
|
|
27053
|
+
[attr.aria-label]="commonStrings.keys.wizardStepSuccess"
|
|
27054
|
+
></cds-icon>
|
|
26952
27055
|
</div>
|
|
26953
27056
|
|
|
27057
|
+
<span class="clr-sr-only">{{ commonStrings.keys.wizardStep }}</span>
|
|
26954
27058
|
<div class="clr-wizard-stepnav-link-page-number"><ng-content></ng-content></div>
|
|
26955
27059
|
<span class="clr-wizard-stepnav-link-title">
|
|
26956
27060
|
<ng-template [ngTemplateOutlet]="page.navTitle"></ng-template>
|
|
26957
27061
|
</span>
|
|
26958
|
-
<span *ngIf="hasError" class="clr-sr-only">{{ commonStrings.keys.wizardStepError }}</span>
|
|
26959
|
-
<span *ngIf="!hasError && isComplete" class="clr-sr-only">{{ commonStrings.keys.wizardStepSuccess }}</span>
|
|
26960
27062
|
</button>
|
|
26961
27063
|
`, 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" }] });
|
|
26962
27064
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImport: i0, type: ClrWizardStepnavItem, decorators: [{
|
|
@@ -26971,16 +27073,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.2", ngImpor
|
|
|
26971
27073
|
[attr.disabled]="isDisabled ? '' : null"
|
|
26972
27074
|
>
|
|
26973
27075
|
<div class="clr-wizard-stepnav-link-icon">
|
|
26974
|
-
<cds-icon
|
|
26975
|
-
|
|
27076
|
+
<cds-icon
|
|
27077
|
+
*ngIf="hasError"
|
|
27078
|
+
shape="error-standard"
|
|
27079
|
+
[attr.aria-label]="commonStrings.keys.wizardStepError"
|
|
27080
|
+
></cds-icon>
|
|
27081
|
+
<cds-icon
|
|
27082
|
+
*ngIf="!hasError && isComplete"
|
|
27083
|
+
shape="success-standard"
|
|
27084
|
+
[attr.aria-label]="commonStrings.keys.wizardStepSuccess"
|
|
27085
|
+
></cds-icon>
|
|
26976
27086
|
</div>
|
|
26977
27087
|
|
|
27088
|
+
<span class="clr-sr-only">{{ commonStrings.keys.wizardStep }}</span>
|
|
26978
27089
|
<div class="clr-wizard-stepnav-link-page-number"><ng-content></ng-content></div>
|
|
26979
27090
|
<span class="clr-wizard-stepnav-link-title">
|
|
26980
27091
|
<ng-template [ngTemplateOutlet]="page.navTitle"></ng-template>
|
|
26981
27092
|
</span>
|
|
26982
|
-
<span *ngIf="hasError" class="clr-sr-only">{{ commonStrings.keys.wizardStepError }}</span>
|
|
26983
|
-
<span *ngIf="!hasError && isComplete" class="clr-sr-only">{{ commonStrings.keys.wizardStepSuccess }}</span>
|
|
26984
27093
|
</button>
|
|
26985
27094
|
`,
|
|
26986
27095
|
host: {
|
|
@@ -28123,5 +28232,5 @@ const CLR_MENU_POSITIONS = [
|
|
|
28123
28232
|
* Generated bundle index. Do not edit.
|
|
28124
28233
|
*/
|
|
28125
28234
|
|
|
28126
|
-
export { CHANGE_KEYS, CLR_ALERT_DIRECTIVES, CLR_BUTTON_GROUP_DIRECTIVES, CLR_DATAGRID_DIRECTIVES, CLR_DATEPICKER_DIRECTIVES, CLR_DROPDOWN_DIRECTIVES, CLR_ICON_DIRECTIVES, CLR_LAYOUT_DIRECTIVES, CLR_LOADING_BUTTON_DIRECTIVES, CLR_LOADING_DIRECTIVES, CLR_MENU_POSITIONS, CLR_MODAL_DIRECTIVES, CLR_NAVIGATION_DIRECTIVES, CLR_PROGRESS_BAR_DIRECTIVES, CLR_SIDEPANEL_DIRECTIVES, CLR_SIGNPOST_DIRECTIVES, CLR_SPINNER_DIRECTIVES, CLR_STACK_VIEW_DIRECTIVES, CLR_TABS_DIRECTIVES, CLR_TOOLTIP_DIRECTIVES, CLR_TREE_VIEW_DIRECTIVES, CLR_VERTICAL_NAV_DIRECTIVES, CLR_WIZARD_DIRECTIVES, CONDITIONAL_DIRECTIVES, CUSTOM_BUTTON_TYPES, CdsIconCustomTag, ClarityModule, ClrAbstractContainer, ClrAccordion, ClrAccordionContent, ClrAccordionDescription, ClrAccordionModule, ClrAccordionPanel, ClrAccordionTitle, ClrAlert, ClrAlertItem, ClrAlertModule, ClrAlertText, ClrAlerts, ClrAlertsPager, ClrAlignment, ClrAriaCurrentLink, ClrAxis, ClrButton, ClrButtonGroup, ClrButtonGroupModule, ClrButtonModule, ClrCalendar, ClrCheckbox, ClrCheckboxContainer, ClrCheckboxModule, ClrCheckboxWrapper, ClrCombobox, ClrComboboxContainer, ClrComboboxModule, ClrCommonFormsModule, ClrCommonStringsService, ClrConditionalModule, ClrControl, ClrControlContainer, ClrControlError, ClrControlHelper, ClrControlSuccess, ClrDataModule, ClrDatagrid, ClrDatagridActionBar, ClrDatagridActionOverflow, ClrDatagridCell, ClrDatagridColumn, ClrDatagridColumnSeparator, ClrDatagridColumnToggle, ClrDatagridColumnToggleButton, ClrDatagridDetail, ClrDatagridDetailBody, ClrDatagridDetailHeader, ClrDatagridFilter, ClrDatagridFooter, ClrDatagridHideableColumn, ClrDatagridItems, ClrDatagridModule, ClrDatagridPageSize, ClrDatagridPagination, ClrDatagridPlaceholder, ClrDatagridRow, ClrDatagridRowDetail, ClrDatagridSortOrder, ClrDatalist, ClrDatalistContainer, ClrDatalistInput, ClrDatalistModule, ClrDateContainer, ClrDateInput, ClrDateInputValidator, ClrDatepickerModule, ClrDatepickerViewManager, ClrDay, ClrDaypicker, ClrDestroyService, ClrDropdown, ClrDropdownItem, ClrDropdownMenu, ClrDropdownModule, ClrDropdownTrigger, ClrEmphasisModule, ClrExpandableAnimation, ClrFileInput, ClrFileInputContainer, ClrFileInputModule, ClrFileInputValidator, ClrFileInputValueAccessor, ClrFocusOnViewInit, ClrFocusOnViewInitModule, ClrForm, ClrFormLayout, ClrFormsModule, ClrHeader, ClrIconCustomTag, ClrIconModule, ClrIfActive, ClrIfDetail, ClrIfError, ClrIfExpanded, ClrIfOpen, ClrIfSuccess, ClrInput, ClrInputContainer, ClrInputModule, ClrLabel, ClrLayout, ClrLayoutModule, ClrLoading, ClrLoadingButton, ClrLoadingButtonModule, ClrLoadingModule, ClrLoadingState, ClrMainContainer, ClrMainContainerModule, ClrModal, ClrModalBody, ClrModalModule, ClrMonthpicker, ClrNavLevel, ClrNavigationModule, ClrOption, ClrOptionItems, ClrOptionSelected, ClrOptions, ClrPassword, ClrPasswordContainer, ClrPasswordModule, ClrPopoverAnchor, ClrPopoverContent, ClrPopoverEventsService, ClrPopoverHostDirective, ClrPopoverModule, ClrPopoverPositionService, ClrPopoverToggleService, ClrProgressBar, ClrProgressBarModule, ClrRadio, ClrRadioContainer, ClrRadioModule, ClrRadioWrapper, ClrRange, ClrRangeContainer, ClrRangeModule, ClrRecursiveForOf, ClrSelect, ClrSelectContainer, ClrSelectModule, ClrSelectedState, ClrSide, ClrSidePanel, ClrSidePanelModule, ClrSignpost, ClrSignpostContent, ClrSignpostModule, ClrSignpostTrigger, ClrSpinner, ClrSpinnerModule, ClrStackBlock, ClrStackContentInput, ClrStackHeader, ClrStackView, ClrStackViewCustomTags, ClrStackViewLabel, ClrStackViewModule, ClrStandaloneCdkTrapFocus, ClrStepButton, ClrStepButtonType, ClrStepper, ClrStepperModule, ClrStepperPanel, ClrStopEscapePropagationDirective, ClrTab, ClrTabContent, ClrTabLink, ClrTabOverflowContent, ClrTabs, ClrTabsModule, ClrTextarea, ClrTextareaContainer, ClrTextareaModule, ClrTimeline, ClrTimelineLayout, ClrTimelineModule, ClrTimelineStep, ClrTimelineStepDescription, ClrTimelineStepHeader, ClrTimelineStepState, ClrTimelineStepTitle, ClrTooltip, ClrTooltipContent, ClrTooltipModule, ClrTooltipTrigger, ClrTree, ClrTreeNode, ClrTreeNodeLink, ClrTreeViewModule, ClrVerticalNav, ClrVerticalNavGroup, ClrVerticalNavGroupChildren, ClrVerticalNavIcon, ClrVerticalNavLink, ClrVerticalNavModule, ClrWizard, ClrWizardButton, ClrWizardHeaderAction, ClrWizardModule, ClrWizardPage, ClrWizardPageButtons, ClrWizardPageHeaderActions, ClrWizardPageNavTitle, ClrWizardPageTitle, ClrWizardStepnav, ClrWizardStepnavItem, ClrWizardTitle, ClrYearpicker, DEFAULT_BUTTON_TYPES, DatagridNumericFilter, DatagridPropertyComparator, DatagridPropertyNumericFilter, DatagridPropertyStringFilter, DatagridStringFilter, EXPANDABLE_ANIMATION_DIRECTIVES, FOCUS_ON_VIEW_INIT, FOCUS_ON_VIEW_INIT_DIRECTIVES, IS_TOGGLE, IS_TOGGLE_PROVIDER, LoadingListener, MainContainerWillyWonka, NavDetectionOompaLoompa, TOGGLE_SERVICE, TOGGLE_SERVICE_PROVIDER, ToggleServiceFactory, WrappedFormControl, collapse, commonStringsDefault, fade, fadeSlide, isToggleFactory, slide, AccordionOompaLoompa as ÇlrAccordionOompaLoompa, AccordionWillyWonka as ÇlrAccordionWillyWonka, ActionableOompaLoompa as ÇlrActionableOompaLoompa, ActiveOompaLoompa as ÇlrActiveOompaLoompa, ClrPopoverCloseButton as ÇlrClrPopoverCloseButton, ClrPopoverModuleNext as ÇlrClrPopoverModuleNext, ClrPopoverOpenCloseButton as ÇlrClrPopoverOpenCloseButton, DatagridCellRenderer as ÇlrDatagridCellRenderer, DatagridDetailRegisterer as ÇlrDatagridDetailRegisterer, DatagridHeaderRenderer as ÇlrDatagridHeaderRenderer, DatagridMainRenderer as ÇlrDatagridMainRenderer, DatagridRowRenderer as ÇlrDatagridRowRenderer, ClrDatagridSelectionCellDirective as ÇlrDatagridSelectionCellDirective, ClrDatagridVirtualScrollDirective as ÇlrDatagridVirtualScrollDirective, DatagridWillyWonka as ÇlrDatagridWillyWonka, ExpandableOompaLoompa as ÇlrExpandableOompaLoompa, StepperOompaLoompa as ÇlrStepperOompaLoompa, StepperWillyWonka as ÇlrStepperWillyWonka, TabsWillyWonka as ÇlrTabsWillyWonka, WrappedCell as ÇlrWrappedCell, WrappedColumn as ÇlrWrappedColumn, WrappedRow as ÇlrWrappedRow };
|
|
28235
|
+
export { CHANGE_KEYS, CLR_ALERT_DIRECTIVES, CLR_BUTTON_GROUP_DIRECTIVES, CLR_DATAGRID_DIRECTIVES, CLR_DATEPICKER_DIRECTIVES, CLR_DROPDOWN_DIRECTIVES, CLR_ICON_DIRECTIVES, CLR_LAYOUT_DIRECTIVES, CLR_LOADING_BUTTON_DIRECTIVES, CLR_LOADING_DIRECTIVES, CLR_MENU_POSITIONS, CLR_MODAL_DIRECTIVES, CLR_NAVIGATION_DIRECTIVES, CLR_PROGRESS_BAR_DIRECTIVES, CLR_SIDEPANEL_DIRECTIVES, CLR_SIGNPOST_DIRECTIVES, CLR_SPINNER_DIRECTIVES, CLR_STACK_VIEW_DIRECTIVES, CLR_TABS_DIRECTIVES, CLR_TOOLTIP_DIRECTIVES, CLR_TREE_VIEW_DIRECTIVES, CLR_VERTICAL_NAV_DIRECTIVES, CLR_WIZARD_DIRECTIVES, CONDITIONAL_DIRECTIVES, CUSTOM_BUTTON_TYPES, CdsIconCustomTag, ClarityModule, ClrAbstractContainer, ClrAccordion, ClrAccordionContent, ClrAccordionDescription, ClrAccordionModule, ClrAccordionPanel, ClrAccordionTitle, ClrAlert, ClrAlertItem, ClrAlertModule, ClrAlertText, ClrAlerts, ClrAlertsPager, ClrAlignment, ClrAriaCurrentLink, ClrAxis, ClrButton, ClrButtonGroup, ClrButtonGroupModule, ClrButtonModule, ClrCalendar, ClrCheckbox, ClrCheckboxContainer, ClrCheckboxModule, ClrCheckboxWrapper, ClrCombobox, ClrComboboxContainer, ClrComboboxModule, ClrCommonFormsModule, ClrCommonStringsService, ClrConditionalModule, ClrControl, ClrControlContainer, ClrControlError, ClrControlHelper, ClrControlSuccess, ClrDataModule, ClrDatagrid, ClrDatagridActionBar, ClrDatagridActionOverflow, ClrDatagridCell, ClrDatagridColumn, ClrDatagridColumnSeparator, ClrDatagridColumnToggle, ClrDatagridColumnToggleButton, ClrDatagridDetail, ClrDatagridDetailBody, ClrDatagridDetailHeader, ClrDatagridFilter, ClrDatagridFooter, ClrDatagridHideableColumn, ClrDatagridItems, ClrDatagridModule, ClrDatagridPageSize, ClrDatagridPagination, ClrDatagridPlaceholder, ClrDatagridRow, ClrDatagridRowDetail, ClrDatagridSortOrder, ClrDatalist, ClrDatalistContainer, ClrDatalistInput, ClrDatalistModule, ClrDateContainer, ClrDateInput, ClrDateInputValidator, ClrDatepickerModule, ClrDatepickerViewManager, ClrDay, ClrDaypicker, ClrDestroyService, ClrDropdown, ClrDropdownItem, ClrDropdownMenu, ClrDropdownModule, ClrDropdownTrigger, ClrEmphasisModule, ClrExpandableAnimation, ClrFileInput, ClrFileInputContainer, ClrFileInputModule, ClrFileInputValidator, ClrFileInputValueAccessor, ClrFocusOnViewInit, ClrFocusOnViewInitModule, ClrForm, ClrFormLayout, ClrFormsModule, ClrHeader, ClrIconCustomTag, ClrIconModule, ClrIfActive, ClrIfDetail, ClrIfError, ClrIfExpanded, ClrIfOpen, ClrIfSuccess, ClrInput, ClrInputContainer, ClrInputModule, ClrLabel, ClrLayout, ClrLayoutModule, ClrLoading, ClrLoadingButton, ClrLoadingButtonModule, ClrLoadingModule, ClrLoadingState, ClrMainContainer, ClrMainContainerModule, ClrModal, ClrModalBody, ClrModalConfigurationService, ClrModalModule, ClrMonthpicker, ClrNavLevel, ClrNavigationModule, ClrOption, ClrOptionItems, ClrOptionSelected, ClrOptions, ClrPassword, ClrPasswordContainer, ClrPasswordModule, ClrPopoverAnchor, ClrPopoverContent, ClrPopoverEventsService, ClrPopoverHostDirective, ClrPopoverModule, ClrPopoverPositionService, ClrPopoverToggleService, ClrProgressBar, ClrProgressBarModule, ClrRadio, ClrRadioContainer, ClrRadioModule, ClrRadioWrapper, ClrRange, ClrRangeContainer, ClrRangeModule, ClrRecursiveForOf, ClrSelect, ClrSelectContainer, ClrSelectModule, ClrSelectedState, ClrSide, ClrSidePanel, ClrSidePanelModule, ClrSignpost, ClrSignpostContent, ClrSignpostModule, ClrSignpostTrigger, ClrSpinner, ClrSpinnerModule, ClrStackBlock, ClrStackContentInput, ClrStackHeader, ClrStackView, ClrStackViewCustomTags, ClrStackViewLabel, ClrStackViewModule, ClrStandaloneCdkTrapFocus, ClrStepButton, ClrStepButtonType, ClrStepper, ClrStepperModule, ClrStepperPanel, ClrStopEscapePropagationDirective, ClrTab, ClrTabContent, ClrTabLink, ClrTabOverflowContent, ClrTabs, ClrTabsModule, ClrTextarea, ClrTextareaContainer, ClrTextareaModule, ClrTimeline, ClrTimelineLayout, ClrTimelineModule, ClrTimelineStep, ClrTimelineStepDescription, ClrTimelineStepHeader, ClrTimelineStepState, ClrTimelineStepTitle, ClrTooltip, ClrTooltipContent, ClrTooltipModule, ClrTooltipTrigger, ClrTree, ClrTreeNode, ClrTreeNodeLink, ClrTreeViewModule, ClrVerticalNav, ClrVerticalNavGroup, ClrVerticalNavGroupChildren, ClrVerticalNavIcon, ClrVerticalNavLink, ClrVerticalNavModule, ClrWizard, ClrWizardButton, ClrWizardHeaderAction, ClrWizardModule, ClrWizardPage, ClrWizardPageButtons, ClrWizardPageHeaderActions, ClrWizardPageNavTitle, ClrWizardPageTitle, ClrWizardStepnav, ClrWizardStepnavItem, ClrWizardTitle, ClrYearpicker, DEFAULT_BUTTON_TYPES, DatagridNumericFilter, DatagridPropertyComparator, DatagridPropertyNumericFilter, DatagridPropertyStringFilter, DatagridStringFilter, EXPANDABLE_ANIMATION_DIRECTIVES, FOCUS_ON_VIEW_INIT, FOCUS_ON_VIEW_INIT_DIRECTIVES, IS_TOGGLE, IS_TOGGLE_PROVIDER, LoadingListener, MainContainerWillyWonka, NavDetectionOompaLoompa, TOGGLE_SERVICE, TOGGLE_SERVICE_PROVIDER, ToggleServiceFactory, WrappedFormControl, collapse, commonStringsDefault, fade, fadeSlide, isToggleFactory, slide, AccordionOompaLoompa as ÇlrAccordionOompaLoompa, AccordionWillyWonka as ÇlrAccordionWillyWonka, ActionableOompaLoompa as ÇlrActionableOompaLoompa, ActiveOompaLoompa as ÇlrActiveOompaLoompa, ClrPopoverCloseButton as ÇlrClrPopoverCloseButton, ClrPopoverModuleNext as ÇlrClrPopoverModuleNext, ClrPopoverOpenCloseButton as ÇlrClrPopoverOpenCloseButton, DatagridCellRenderer as ÇlrDatagridCellRenderer, DatagridDetailRegisterer as ÇlrDatagridDetailRegisterer, DatagridHeaderRenderer as ÇlrDatagridHeaderRenderer, DatagridMainRenderer as ÇlrDatagridMainRenderer, DatagridRowRenderer as ÇlrDatagridRowRenderer, ClrDatagridSelectionCellDirective as ÇlrDatagridSelectionCellDirective, ClrDatagridVirtualScrollDirective as ÇlrDatagridVirtualScrollDirective, DatagridWillyWonka as ÇlrDatagridWillyWonka, ExpandableOompaLoompa as ÇlrExpandableOompaLoompa, StepperOompaLoompa as ÇlrStepperOompaLoompa, StepperWillyWonka as ÇlrStepperWillyWonka, TabsWillyWonka as ÇlrTabsWillyWonka, WrappedCell as ÇlrWrappedCell, WrappedColumn as ÇlrWrappedColumn, WrappedRow as ÇlrWrappedRow };
|
|
28127
28236
|
//# sourceMappingURL=clr-angular.mjs.map
|