@clr/angular 15.0.0-beta.2 → 15.0.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/clarity.api.md +158 -489
- package/clr-angular.module.d.ts +12 -15
- package/data/datagrid/datagrid-column.d.ts +1 -22
- package/data/datagrid/datagrid-pagination.d.ts +2 -2
- package/data/datagrid/datagrid.module.d.ts +13 -13
- package/data/stack-view/index.d.ts +0 -2
- package/data/stack-view/stack-block.d.ts +1 -17
- package/data/stack-view/stack-view.d.ts +1 -11
- package/data/stack-view/stack-view.module.d.ts +5 -7
- package/data/tree-view/tree-node.d.ts +6 -6
- package/esm2020/accordion/accordion-panel.mjs +3 -3
- package/esm2020/accordion/stepper/stepper-panel.mjs +3 -3
- package/esm2020/clr-angular.module.mjs +1 -13
- package/esm2020/data/datagrid/datagrid-action-overflow.mjs +10 -10
- package/esm2020/data/datagrid/datagrid-column-separator.mjs +16 -15
- package/esm2020/data/datagrid/datagrid-column-toggle.mjs +14 -14
- package/esm2020/data/datagrid/datagrid-column.mjs +2 -48
- package/esm2020/data/datagrid/datagrid-detail.mjs +8 -6
- package/esm2020/data/datagrid/datagrid-filter.mjs +10 -10
- package/esm2020/data/datagrid/datagrid-pagination.mjs +10 -5
- package/esm2020/data/datagrid/datagrid-row-detail.mjs +7 -8
- package/esm2020/data/datagrid/datagrid.module.mjs +9 -9
- package/esm2020/data/stack-view/index.mjs +1 -3
- package/esm2020/data/stack-view/stack-block.mjs +2 -8
- package/esm2020/data/stack-view/stack-header.mjs +2 -23
- package/esm2020/data/stack-view/stack-view.mjs +4 -28
- package/esm2020/data/stack-view/stack-view.module.mjs +3 -23
- package/esm2020/data/tree-view/tree-node.mjs +30 -26
- package/esm2020/forms/datepicker/date-container.mjs +9 -9
- package/esm2020/forms/datepicker/datepicker.module.mjs +5 -5
- package/esm2020/layout/nav/nav-level.mjs +23 -10
- package/esm2020/layout/vertical-nav/vertical-nav-group.mjs +3 -7
- package/esm2020/modal/modal.mjs +8 -19
- package/esm2020/modal/modal.module.mjs +5 -5
- package/esm2020/popover/dropdown/dropdown-item.mjs +30 -33
- package/esm2020/utils/cdk/cdk-drag.module.mjs +37 -0
- package/esm2020/utils/cdk/cdk-trap-focus.module.mjs +37 -0
- package/esm2020/utils/i18n/common-strings.default.mjs +1 -2
- package/esm2020/utils/i18n/common-strings.interface.mjs +1 -1
- package/esm2020/utils/index.mjs +1 -5
- package/esm2020/wizard/wizard.mjs +6 -30
- package/fesm2015/clr-angular.mjs +252 -1981
- package/fesm2015/clr-angular.mjs.map +1 -1
- package/fesm2020/clr-angular.mjs +299 -2024
- package/fesm2020/clr-angular.mjs.map +1 -1
- package/forms/datepicker/datepicker.module.d.ts +6 -6
- package/layout/nav/nav-level.d.ts +12 -4
- package/layout/vertical-nav/vertical-nav-group.d.ts +1 -2
- package/modal/modal.d.ts +1 -4
- package/modal/modal.module.d.ts +3 -3
- package/package.json +2 -1
- package/popover/dropdown/dropdown-item.d.ts +7 -13
- package/src/utils/popover/README.md +1 -1
- package/utils/cdk/cdk-drag.module.d.ts +17 -0
- package/utils/cdk/cdk-trap-focus.module.d.ts +17 -0
- package/utils/i18n/common-strings.interface.d.ts +0 -17
- package/utils/index.d.ts +0 -4
- package/wizard/wizard.d.ts +2 -13
- package/data/stack-view/stack-control.d.ts +0 -16
- package/data/stack-view/stack-input.d.ts +0 -10
- package/data/stack-view/stack-select.d.ts +0 -9
- package/esm2020/data/stack-view/stack-control.mjs +0 -34
- package/esm2020/data/stack-view/stack-input.mjs +0 -42
- package/esm2020/data/stack-view/stack-select.mjs +0 -48
- package/esm2020/utils/a11y/aria-live.service.mjs +0 -163
- package/esm2020/utils/a11y/index.mjs +0 -7
- package/esm2020/utils/drag-and-drop/drag-and-drop.module.mjs +0 -42
- package/esm2020/utils/drag-and-drop/drag-event.mjs +0 -16
- package/esm2020/utils/drag-and-drop/drag-handle.mjs +0 -35
- package/esm2020/utils/drag-and-drop/draggable/draggable.mjs +0 -135
- package/esm2020/utils/drag-and-drop/draggable-ghost.mjs +0 -124
- package/esm2020/utils/drag-and-drop/droppable/droppable.mjs +0 -222
- package/esm2020/utils/drag-and-drop/if-dragged.mjs +0 -47
- package/esm2020/utils/drag-and-drop/index.mjs +0 -14
- package/esm2020/utils/drag-and-drop/interfaces/drag-event.interface.mjs +0 -15
- package/esm2020/utils/drag-and-drop/interfaces/drop-tolerance.interface.mjs +0 -7
- package/esm2020/utils/drag-and-drop/providers/drag-and-drop-event-bus.service.mjs +0 -54
- package/esm2020/utils/drag-and-drop/providers/drag-event-listener.service.mjs +0 -179
- package/esm2020/utils/drag-and-drop/providers/drag-handle-registrar.service.mjs +0 -60
- package/esm2020/utils/drag-and-drop/providers/draggable-snapshot.service.mjs +0 -38
- package/esm2020/utils/drag-and-drop/providers/global-drag-mode.service.mjs +0 -26
- package/esm2020/utils/focus-trap/focus-trap-config.interface.mjs +0 -7
- package/esm2020/utils/focus-trap/focus-trap-tracker.service.mjs +0 -32
- package/esm2020/utils/focus-trap/focus-trap.directive.mjs +0 -158
- package/esm2020/utils/focus-trap/focus-trap.mjs +0 -141
- package/esm2020/utils/focus-trap/focus-trap.module.mjs +0 -24
- package/esm2020/utils/focus-trap/index.mjs +0 -9
- package/esm2020/utils/for-type-ahead/for-type-ahead.mjs +0 -54
- package/esm2020/utils/for-type-ahead/for-type-ahead.module.mjs +0 -23
- package/esm2020/utils/for-type-ahead/for-type-ahead.service.mjs +0 -29
- package/esm2020/utils/for-type-ahead/index.mjs +0 -8
- package/utils/a11y/aria-live.service.d.ts +0 -93
- package/utils/a11y/index.d.ts +0 -1
- package/utils/drag-and-drop/drag-and-drop.module.d.ts +0 -14
- package/utils/drag-and-drop/drag-event.d.ts +0 -8
- package/utils/drag-and-drop/drag-handle.d.ts +0 -11
- package/utils/drag-and-drop/draggable/draggable.d.ts +0 -36
- package/utils/drag-and-drop/draggable-ghost.d.ts +0 -30
- package/utils/drag-and-drop/droppable/droppable.d.ts +0 -42
- package/utils/drag-and-drop/if-dragged.d.ts +0 -13
- package/utils/drag-and-drop/index.d.ts +0 -8
- package/utils/drag-and-drop/interfaces/drag-event.interface.d.ts +0 -22
- package/utils/drag-and-drop/interfaces/drop-tolerance.interface.d.ts +0 -6
- package/utils/drag-and-drop/providers/drag-and-drop-event-bus.service.d.ts +0 -16
- package/utils/drag-and-drop/providers/drag-event-listener.service.d.ts +0 -39
- package/utils/drag-and-drop/providers/drag-handle-registrar.service.d.ts +0 -18
- package/utils/drag-and-drop/providers/draggable-snapshot.service.d.ts +0 -16
- package/utils/drag-and-drop/providers/global-drag-mode.service.d.ts +0 -10
- package/utils/focus-trap/focus-trap-config.interface.d.ts +0 -3
- package/utils/focus-trap/focus-trap-tracker.service.d.ts +0 -12
- package/utils/focus-trap/focus-trap.d.ts +0 -29
- package/utils/focus-trap/focus-trap.directive.d.ts +0 -38
- package/utils/focus-trap/focus-trap.module.d.ts +0 -10
- package/utils/focus-trap/index.d.ts +0 -3
- package/utils/for-type-ahead/for-type-ahead.d.ts +0 -15
- package/utils/for-type-ahead/for-type-ahead.module.d.ts +0 -8
- package/utils/for-type-ahead/for-type-ahead.service.d.ts +0 -11
- package/utils/for-type-ahead/index.d.ts +0 -2
package/fesm2020/clr-angular.mjs
CHANGED
|
@@ -9,8 +9,9 @@ import { Subject, BehaviorSubject, Observable, fromEvent, isObservable, of, Repl
|
|
|
9
9
|
import { trigger, transition, style, animate, keyframes, state } from '@angular/animations';
|
|
10
10
|
import * as i1 from '@angular/forms';
|
|
11
11
|
import { FormControl, FormGroup, FormsModule, NG_VALIDATORS, SelectMultipleControlValueAccessor } from '@angular/forms';
|
|
12
|
+
import { CdkTrapFocus } from '@angular/cdk/a11y';
|
|
13
|
+
import { CdkDrag } from '@angular/cdk/drag-drop';
|
|
12
14
|
import * as i1$1 from '@angular/router';
|
|
13
|
-
import { FocusTrapTrackerService, createId, isFocusable, isHTMLElement } from '@cds/core/internal';
|
|
14
15
|
import '@cds/core/internal-components/close-button/register.js';
|
|
15
16
|
import '@cds/core/icon/register';
|
|
16
17
|
|
|
@@ -332,7 +333,6 @@ const commonStringsDefault = {
|
|
|
332
333
|
responsiveNavOverflowOpen: 'Navigation overflow menu',
|
|
333
334
|
responsiveNavOverflowClose: 'Navigation overflow menu',
|
|
334
335
|
//Vertical Nav
|
|
335
|
-
verticalNavGroupToggle: 'Toggle vertical navigation group',
|
|
336
336
|
verticalNavToggle: 'Toggle vertical navigation',
|
|
337
337
|
// Timeline steps
|
|
338
338
|
timelineStepNotStarted: 'Not started',
|
|
@@ -596,10 +596,10 @@ class ClrAccordionPanel {
|
|
|
596
596
|
}
|
|
597
597
|
}
|
|
598
598
|
ClrAccordionPanel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrAccordionPanel, deps: [{ token: ClrCommonStringsService }, { token: AccordionService }, { token: IfExpandService }], target: i0.ɵɵFactoryTarget.Component });
|
|
599
|
-
ClrAccordionPanel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.2", type: ClrAccordionPanel, selector: "clr-accordion-panel", inputs: { disabled: ["clrAccordionPanelDisabled", "disabled"], panelOpen: ["clrAccordionPanelOpen", "panelOpen"] }, outputs: { panelOpenChange: "clrAccordionPanelOpenChange" }, host: { properties: { "class.clr-accordion-panel": "true" } }, providers: [IfExpandService], queries: [{ propertyName: "accordionDescription", predicate: ClrAccordionDescription }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"panel | async; let panel\">\n <div
|
|
599
|
+
ClrAccordionPanel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.2", type: ClrAccordionPanel, selector: "clr-accordion-panel", inputs: { disabled: ["clrAccordionPanelDisabled", "disabled"], panelOpen: ["clrAccordionPanelOpen", "panelOpen"] }, outputs: { panelOpenChange: "clrAccordionPanelOpenChange" }, host: { properties: { "class.clr-accordion-panel": "true" } }, 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]=\"isAccordion && panel.disabled\"\n [attr.aria-disabled]=\"!isAccordion && 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-sr-only\">\n <ng-container *ngIf=\"panel.status === AccordionStatus.Error\">{{commonStrings.keys.danger}}</ng-container>\n <ng-container *ngIf=\"panel.status === AccordionStatus.Complete\">{{commonStrings.keys.success}}</ng-container>\n </span>\n <span class=\"clr-accordion-status\">\n <cds-icon shape=\"angle\" direction=\"right\" class=\"clr-accordion-angle\"></cds-icon>\n <span class=\"clr-accordion-number\"></span>\n <cds-icon status=\"danger\" shape=\"exclamation-circle\" class=\"clr-accordion-error-icon\"></cds-icon>\n <cds-icon status=\"success\" shape=\"check-circle\" class=\"clr-accordion-complete-icon\"></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 [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 });
|
|
600
600
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrAccordionPanel, decorators: [{
|
|
601
601
|
type: Component,
|
|
602
|
-
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
|
|
602
|
+
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]=\"isAccordion && panel.disabled\"\n [attr.aria-disabled]=\"!isAccordion && 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-sr-only\">\n <ng-container *ngIf=\"panel.status === AccordionStatus.Error\">{{commonStrings.keys.danger}}</ng-container>\n <ng-container *ngIf=\"panel.status === AccordionStatus.Complete\">{{commonStrings.keys.success}}</ng-container>\n </span>\n <span class=\"clr-accordion-status\">\n <cds-icon shape=\"angle\" direction=\"right\" class=\"clr-accordion-angle\"></cds-icon>\n <span class=\"clr-accordion-number\"></span>\n <cds-icon status=\"danger\" shape=\"exclamation-circle\" class=\"clr-accordion-error-icon\"></cds-icon>\n <cds-icon status=\"success\" shape=\"check-circle\" class=\"clr-accordion-complete-icon\"></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 [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" }]
|
|
603
603
|
}], ctorParameters: function () { return [{ type: ClrCommonStringsService }, { type: AccordionService }, { type: IfExpandService }]; }, propDecorators: { disabled: [{
|
|
604
604
|
type: Input,
|
|
605
605
|
args: ['clrAccordionPanelDisabled']
|
|
@@ -1091,10 +1091,10 @@ class ClrStepperPanel extends ClrAccordionPanel {
|
|
|
1091
1091
|
}
|
|
1092
1092
|
}
|
|
1093
1093
|
ClrStepperPanel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.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 }], target: i0.ɵɵFactoryTarget.Component });
|
|
1094
|
-
ClrStepperPanel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.2", type: ClrStepperPanel, selector: "clr-stepper-panel", host: { properties: { "class.clr-accordion-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
|
|
1094
|
+
ClrStepperPanel.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.2", type: ClrStepperPanel, selector: "clr-stepper-panel", host: { properties: { "class.clr-accordion-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\">\n <button\n type=\"button\"\n class=\"clr-accordion-header-button\"\n (click)=\"togglePanel()\"\n [id]=\"getAccordionHeaderId(panel.templateId)\"\n [disabled]=\"isAccordion && panel.disabled\"\n [attr.aria-disabled]=\"!isAccordion && 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-sr-only\">\n <ng-container *ngIf=\"panel.status === AccordionStatus.Error\">{{commonStrings.keys.danger}}</ng-container>\n <ng-container *ngIf=\"panel.status === AccordionStatus.Complete\">{{commonStrings.keys.success}}</ng-container>\n </span>\n <span class=\"clr-accordion-status\">\n <cds-icon shape=\"angle\" direction=\"right\" class=\"clr-accordion-angle\"></cds-icon>\n <span class=\"clr-accordion-number\"></span>\n <cds-icon status=\"danger\" shape=\"exclamation-circle\" class=\"clr-accordion-error-icon\"></cds-icon>\n <cds-icon status=\"success\" shape=\"check-circle\" class=\"clr-accordion-complete-icon\"></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 [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 });
|
|
1095
1095
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrStepperPanel, decorators: [{
|
|
1096
1096
|
type: Component,
|
|
1097
|
-
args: [{ selector: 'clr-stepper-panel', host: { '[class.clr-accordion-panel]': 'true' }, changeDetection: ChangeDetectionStrategy.OnPush, animations: stepAnimation, providers: [IfExpandService], template: "<ng-container *ngIf=\"panel | async; let panel\">\n <div
|
|
1097
|
+
args: [{ selector: 'clr-stepper-panel', host: { '[class.clr-accordion-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\">\n <button\n type=\"button\"\n class=\"clr-accordion-header-button\"\n (click)=\"togglePanel()\"\n [id]=\"getAccordionHeaderId(panel.templateId)\"\n [disabled]=\"isAccordion && panel.disabled\"\n [attr.aria-disabled]=\"!isAccordion && 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-sr-only\">\n <ng-container *ngIf=\"panel.status === AccordionStatus.Error\">{{commonStrings.keys.danger}}</ng-container>\n <ng-container *ngIf=\"panel.status === AccordionStatus.Complete\">{{commonStrings.keys.success}}</ng-container>\n </span>\n <span class=\"clr-accordion-status\">\n <cds-icon shape=\"angle\" direction=\"right\" class=\"clr-accordion-angle\"></cds-icon>\n <span class=\"clr-accordion-number\"></span>\n <cds-icon status=\"danger\" shape=\"exclamation-circle\" class=\"clr-accordion-error-icon\"></cds-icon>\n <cds-icon status=\"success\" shape=\"check-circle\" class=\"clr-accordion-complete-icon\"></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 [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" }]
|
|
1098
1098
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
1099
1099
|
type: Inject,
|
|
1100
1100
|
args: [PLATFORM_ID]
|
|
@@ -6985,202 +6985,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImpor
|
|
|
6985
6985
|
* This software is released under MIT license.
|
|
6986
6986
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
6987
6987
|
*/
|
|
6988
|
-
|
|
6989
|
-
|
|
6990
|
-
this._previousFocusTraps = [];
|
|
6991
|
-
}
|
|
6992
|
-
get current() {
|
|
6993
|
-
return this._current;
|
|
6994
|
-
}
|
|
6995
|
-
set current(value) {
|
|
6996
|
-
this._previousFocusTraps.push(this._current);
|
|
6997
|
-
this._current = value;
|
|
6998
|
-
}
|
|
6999
|
-
get nbFocusTrappers() {
|
|
7000
|
-
return this._previousFocusTraps.length;
|
|
7001
|
-
}
|
|
7002
|
-
activatePreviousTrapper() {
|
|
7003
|
-
this._current = this._previousFocusTraps.pop();
|
|
7004
|
-
}
|
|
7005
|
-
}
|
|
7006
|
-
FocusTrapTracker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: FocusTrapTracker, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
7007
|
-
FocusTrapTracker.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: FocusTrapTracker, providedIn: 'root' });
|
|
7008
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: FocusTrapTracker, decorators: [{
|
|
7009
|
-
type: Injectable,
|
|
7010
|
-
args: [{ providedIn: 'root' }]
|
|
7011
|
-
}] });
|
|
7012
|
-
|
|
7013
|
-
/*
|
|
7014
|
-
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
7015
|
-
* This software is released under MIT license.
|
|
7016
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
6988
|
+
/**
|
|
6989
|
+
* This is just a copy of CdkTrapFocus so it can be used independent of the rest of the A11yModule.
|
|
7017
6990
|
*/
|
|
7018
|
-
|
|
7019
|
-
class FocusTrapDirective {
|
|
7020
|
-
constructor(el, injector, focusTrapsTracker, renderer, platformId) {
|
|
7021
|
-
this.el = el;
|
|
7022
|
-
this.injector = injector;
|
|
7023
|
-
this.focusTrapsTracker = focusTrapsTracker;
|
|
7024
|
-
this.renderer = renderer;
|
|
7025
|
-
this.platformId = platformId;
|
|
7026
|
-
this.localFocusEscaped = false;
|
|
7027
|
-
this._config = {
|
|
7028
|
-
strict: true,
|
|
7029
|
-
};
|
|
7030
|
-
this.document = this.injector.get(DOCUMENT);
|
|
7031
|
-
this.focusTrapsTracker.current = this;
|
|
7032
|
-
}
|
|
7033
|
-
set config(config) {
|
|
7034
|
-
this._config = Object.assign(this._config, config === '' ? {} : config);
|
|
7035
|
-
}
|
|
7036
|
-
onFocusIn(event) {
|
|
7037
|
-
const nativeElement = this.el.nativeElement;
|
|
7038
|
-
if (this.focusTrapsTracker.current !== this ||
|
|
7039
|
-
!isPlatformBrowser(this.platformId) ||
|
|
7040
|
-
this.localFocusEscaped ||
|
|
7041
|
-
nativeElement.contains(event.target)) {
|
|
7042
|
-
return;
|
|
7043
|
-
}
|
|
7044
|
-
if (event.target === this.topReboundEl && nativeElement.contains(event.relatedTarget)) {
|
|
7045
|
-
this.focusLastFocusable();
|
|
7046
|
-
// if it fails to focus element inside the trap, focus the trap element.
|
|
7047
|
-
this.focusTrapElIfOutside();
|
|
7048
|
-
}
|
|
7049
|
-
else if (event.target === this.bottomReboundEl && nativeElement.contains(event.relatedTarget)) {
|
|
7050
|
-
this.focusFirstFocusable();
|
|
7051
|
-
// if it fails to focus element inside the trap, focus the trap element.
|
|
7052
|
-
this.focusTrapElIfOutside();
|
|
7053
|
-
}
|
|
7054
|
-
else {
|
|
7055
|
-
this._config.strict ? this.el.nativeElement.focus() : (this.localFocusEscaped = true);
|
|
7056
|
-
}
|
|
7057
|
-
}
|
|
7058
|
-
createFocusableOffScreenEl() {
|
|
7059
|
-
// Not using Renderer2's createElement method because that leads to DOM leakage.
|
|
7060
|
-
// https://github.com/angular/angular/issues/26954
|
|
7061
|
-
const offScreenSpan = this.document.createElement('span');
|
|
7062
|
-
this.renderer.setAttribute(offScreenSpan, 'tabindex', '0');
|
|
7063
|
-
this.renderer.addClass(offScreenSpan, 'offscreen-focus-rebounder');
|
|
7064
|
-
return offScreenSpan;
|
|
7065
|
-
}
|
|
7066
|
-
addReboundEls() {
|
|
7067
|
-
if (isPlatformBrowser(this.platformId)) {
|
|
7068
|
-
this.topReboundEl = this.createFocusableOffScreenEl();
|
|
7069
|
-
this.bottomReboundEl = this.createFocusableOffScreenEl();
|
|
7070
|
-
const hostElement = this.el.nativeElement;
|
|
7071
|
-
// Add reboundBeforeTrapEl right outside of host element
|
|
7072
|
-
this.renderer.insertBefore(hostElement.parentElement, this.topReboundEl, hostElement);
|
|
7073
|
-
// Add reboundAfterTrapEl right after host element
|
|
7074
|
-
if (hostElement.nextSibling) {
|
|
7075
|
-
this.renderer.insertBefore(hostElement.parentNode, this.bottomReboundEl, hostElement.nextSibling);
|
|
7076
|
-
}
|
|
7077
|
-
else {
|
|
7078
|
-
this.renderer.appendChild(hostElement.parentNode, this.bottomReboundEl);
|
|
7079
|
-
}
|
|
7080
|
-
}
|
|
7081
|
-
}
|
|
7082
|
-
removeReboundEls() {
|
|
7083
|
-
if (isPlatformBrowser(this.platformId) && this.topReboundEl && this.bottomReboundEl) {
|
|
7084
|
-
this.parentElement.removeChild(this.topReboundEl);
|
|
7085
|
-
this.parentElement.removeChild(this.bottomReboundEl);
|
|
7086
|
-
// These are here to to make sure that
|
|
7087
|
-
// we completely delete all traces of the removed DOM objects.
|
|
7088
|
-
delete this.topReboundEl;
|
|
7089
|
-
delete this.bottomReboundEl;
|
|
7090
|
-
}
|
|
7091
|
-
}
|
|
7092
|
-
setPreviousFocus() {
|
|
7093
|
-
if (this.previousActiveElement && this.previousActiveElement.focus) {
|
|
7094
|
-
this.previousActiveElement.focus();
|
|
7095
|
-
}
|
|
7096
|
-
}
|
|
7097
|
-
ngOnInit() {
|
|
7098
|
-
if (isPlatformBrowser(this.platformId)) {
|
|
7099
|
-
this.renderer.setAttribute(this.el.nativeElement, 'tabindex', '-1');
|
|
7100
|
-
this.el.nativeElement.focus();
|
|
7101
|
-
}
|
|
7102
|
-
}
|
|
7103
|
-
ngAfterViewInit() {
|
|
7104
|
-
if (isPlatformBrowser(this.platformId)) {
|
|
7105
|
-
this.previousActiveElement = this.document.activeElement;
|
|
7106
|
-
this.parentElement = this.el.nativeElement.parentElement;
|
|
7107
|
-
}
|
|
7108
|
-
this.addReboundEls();
|
|
7109
|
-
}
|
|
7110
|
-
get potentiallyFocusableEls() {
|
|
7111
|
-
return [...this.el.nativeElement.querySelectorAll(FOCUSABLES)];
|
|
7112
|
-
}
|
|
7113
|
-
focusFirstFocusable() {
|
|
7114
|
-
for (let i = 0; i < this.potentiallyFocusableEls.length; i++) {
|
|
7115
|
-
this.firstFocusableEl = this.focusElement(this.potentiallyFocusableEls[i]);
|
|
7116
|
-
if (this.firstFocusableEl) {
|
|
7117
|
-
break;
|
|
7118
|
-
}
|
|
7119
|
-
}
|
|
7120
|
-
}
|
|
7121
|
-
focusLastFocusable() {
|
|
7122
|
-
for (let i = this.potentiallyFocusableEls.length - 1; i >= 0; i--) {
|
|
7123
|
-
this.lastFocusableEl = this.focusElement(this.potentiallyFocusableEls[i]);
|
|
7124
|
-
if (this.lastFocusableEl) {
|
|
7125
|
-
break;
|
|
7126
|
-
}
|
|
7127
|
-
}
|
|
7128
|
-
}
|
|
7129
|
-
focusTrapElIfOutside() {
|
|
7130
|
-
if (!this.el.nativeElement.contains(document.activeElement)) {
|
|
7131
|
-
this.el.nativeElement.focus();
|
|
7132
|
-
}
|
|
7133
|
-
}
|
|
7134
|
-
focusElement(el) {
|
|
7135
|
-
if (el && el.focus) {
|
|
7136
|
-
el.focus();
|
|
7137
|
-
if (document.activeElement === el) {
|
|
7138
|
-
return el;
|
|
7139
|
-
}
|
|
7140
|
-
}
|
|
7141
|
-
return null;
|
|
7142
|
-
}
|
|
7143
|
-
ngOnDestroy() {
|
|
7144
|
-
this.removeReboundEls();
|
|
7145
|
-
this.setPreviousFocus();
|
|
7146
|
-
this.focusTrapsTracker.activatePreviousTrapper();
|
|
7147
|
-
}
|
|
6991
|
+
class CdkTrapFocusModule_CdkTrapFocus extends CdkTrapFocus {
|
|
7148
6992
|
}
|
|
7149
|
-
|
|
7150
|
-
|
|
7151
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type:
|
|
6993
|
+
CdkTrapFocusModule_CdkTrapFocus.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: CdkTrapFocusModule_CdkTrapFocus, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
6994
|
+
CdkTrapFocusModule_CdkTrapFocus.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.2", type: CdkTrapFocusModule_CdkTrapFocus, selector: "[cdkTrapFocus]", usesInheritance: true, ngImport: i0 });
|
|
6995
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: CdkTrapFocusModule_CdkTrapFocus, decorators: [{
|
|
7152
6996
|
type: Directive,
|
|
7153
6997
|
args: [{
|
|
7154
|
-
selector: '[
|
|
6998
|
+
selector: '[cdkTrapFocus]',
|
|
7155
6999
|
}]
|
|
7156
|
-
}]
|
|
7157
|
-
|
|
7158
|
-
|
|
7159
|
-
}] }]; }, propDecorators: { config: [{
|
|
7160
|
-
type: Input,
|
|
7161
|
-
args: ['clrFocusTrap']
|
|
7162
|
-
}], onFocusIn: [{
|
|
7163
|
-
type: HostListener,
|
|
7164
|
-
args: ['document:focusin', ['$event']]
|
|
7165
|
-
}] } });
|
|
7166
|
-
|
|
7167
|
-
/*
|
|
7168
|
-
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
7169
|
-
* This software is released under MIT license.
|
|
7170
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
7000
|
+
}] });
|
|
7001
|
+
/**
|
|
7002
|
+
* This module allows us to avoid importing all of A11yModule which results in a smaller application bundle.
|
|
7171
7003
|
*/
|
|
7172
|
-
|
|
7173
|
-
class ClrFocusTrapModule {
|
|
7004
|
+
class CdkTrapFocusModule {
|
|
7174
7005
|
}
|
|
7175
|
-
|
|
7176
|
-
|
|
7177
|
-
|
|
7178
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type:
|
|
7006
|
+
CdkTrapFocusModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: CdkTrapFocusModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
7007
|
+
CdkTrapFocusModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.2", ngImport: i0, type: CdkTrapFocusModule, declarations: [CdkTrapFocusModule_CdkTrapFocus], exports: [CdkTrapFocusModule_CdkTrapFocus] });
|
|
7008
|
+
CdkTrapFocusModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: CdkTrapFocusModule });
|
|
7009
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: CdkTrapFocusModule, decorators: [{
|
|
7179
7010
|
type: NgModule,
|
|
7180
7011
|
args: [{
|
|
7181
|
-
|
|
7182
|
-
|
|
7183
|
-
exports: [FOCUS_TRAP_DIRECTIVES],
|
|
7012
|
+
declarations: [CdkTrapFocusModule_CdkTrapFocus],
|
|
7013
|
+
exports: [CdkTrapFocusModule_CdkTrapFocus],
|
|
7184
7014
|
}]
|
|
7185
7015
|
}] });
|
|
7186
7016
|
|
|
@@ -8965,7 +8795,7 @@ ClrDateContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", versi
|
|
|
8965
8795
|
</button>
|
|
8966
8796
|
<clr-datepicker-view-manager
|
|
8967
8797
|
*clrPopoverContent="open; at: popoverPosition; outsideClickToClose: true; scrollToClose: true"
|
|
8968
|
-
|
|
8798
|
+
cdkTrapFocus
|
|
8969
8799
|
></clr-datepicker-view-manager>
|
|
8970
8800
|
</div>
|
|
8971
8801
|
<cds-icon
|
|
@@ -8987,7 +8817,7 @@ ClrDateContainer.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", versi
|
|
|
8987
8817
|
<ng-content select="clr-control-error" *ngIf="showInvalid"></ng-content>
|
|
8988
8818
|
<ng-content select="clr-control-success" *ngIf="showValid"></ng-content>
|
|
8989
8819
|
</div>
|
|
8990
|
-
`, isInline: true, 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: ClrPopoverAnchor, selector: "[clrPopoverAnchor]" }, { kind: "directive", type: ClrPopoverOpenCloseButton, selector: "[clrPopoverOpenCloseButton]", outputs: ["clrPopoverOpenCloseChange"] }, { kind: "directive", type: ClrPopoverContent, selector: "[clrPopoverContent]", inputs: ["clrPopoverContent", "clrPopoverContentAt", "clrPopoverContentOutsideClickToClose", "clrPopoverContentScrollToClose"] }, { kind: "directive", type: CdsIconCustomTag, selector: "cds-icon" }, { kind: "directive", type:
|
|
8820
|
+
`, isInline: true, 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: CdkTrapFocusModule_CdkTrapFocus, selector: "[cdkTrapFocus]" }, { kind: "directive", type: ClrPopoverAnchor, selector: "[clrPopoverAnchor]" }, { kind: "directive", type: ClrPopoverOpenCloseButton, selector: "[clrPopoverOpenCloseButton]", outputs: ["clrPopoverOpenCloseChange"] }, { kind: "directive", type: ClrPopoverContent, selector: "[clrPopoverContent]", inputs: ["clrPopoverContent", "clrPopoverContentAt", "clrPopoverContentOutsideClickToClose", "clrPopoverContentScrollToClose"] }, { kind: "directive", type: CdsIconCustomTag, selector: "cds-icon" }, { kind: "directive", type: ClrLabel, selector: "label", inputs: ["for"] }, { kind: "component", type: ClrDatepickerViewManager, selector: "clr-datepicker-view-manager" }] });
|
|
8991
8821
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrDateContainer, decorators: [{
|
|
8992
8822
|
type: Component,
|
|
8993
8823
|
args: [{
|
|
@@ -9011,7 +8841,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImpor
|
|
|
9011
8841
|
</button>
|
|
9012
8842
|
<clr-datepicker-view-manager
|
|
9013
8843
|
*clrPopoverContent="open; at: popoverPosition; outsideClickToClose: true; scrollToClose: true"
|
|
9014
|
-
|
|
8844
|
+
cdkTrapFocus
|
|
9015
8845
|
></clr-datepicker-view-manager>
|
|
9016
8846
|
</div>
|
|
9017
8847
|
<cds-icon
|
|
@@ -9401,11 +9231,11 @@ ClrDatepickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", ver
|
|
|
9401
9231
|
ClrYearpicker,
|
|
9402
9232
|
ClrDaypicker,
|
|
9403
9233
|
ClrCalendar], imports: [CommonModule,
|
|
9234
|
+
CdkTrapFocusModule,
|
|
9404
9235
|
ClrHostWrappingModule,
|
|
9405
9236
|
ClrConditionalModule,
|
|
9406
9237
|
ClrPopoverModuleNext,
|
|
9407
9238
|
ClrIconModule,
|
|
9408
|
-
ClrFocusTrapModule,
|
|
9409
9239
|
ClrCommonFormsModule], exports: [ClrDay,
|
|
9410
9240
|
ClrDateContainer,
|
|
9411
9241
|
ClrDateInput,
|
|
@@ -9416,22 +9246,22 @@ ClrDatepickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", ver
|
|
|
9416
9246
|
ClrDaypicker,
|
|
9417
9247
|
ClrCalendar] });
|
|
9418
9248
|
ClrDatepickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrDatepickerModule, imports: [CommonModule,
|
|
9249
|
+
CdkTrapFocusModule,
|
|
9419
9250
|
ClrHostWrappingModule,
|
|
9420
9251
|
ClrConditionalModule,
|
|
9421
9252
|
ClrPopoverModuleNext,
|
|
9422
9253
|
ClrIconModule,
|
|
9423
|
-
ClrFocusTrapModule,
|
|
9424
9254
|
ClrCommonFormsModule] });
|
|
9425
9255
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrDatepickerModule, decorators: [{
|
|
9426
9256
|
type: NgModule,
|
|
9427
9257
|
args: [{
|
|
9428
9258
|
imports: [
|
|
9429
9259
|
CommonModule,
|
|
9260
|
+
CdkTrapFocusModule,
|
|
9430
9261
|
ClrHostWrappingModule,
|
|
9431
9262
|
ClrConditionalModule,
|
|
9432
9263
|
ClrPopoverModuleNext,
|
|
9433
9264
|
ClrIconModule,
|
|
9434
|
-
ClrFocusTrapModule,
|
|
9435
9265
|
ClrCommonFormsModule,
|
|
9436
9266
|
],
|
|
9437
9267
|
declarations: [CLR_DATEPICKER_DIRECTIVES],
|
|
@@ -10399,972 +10229,45 @@ class ClrExpandableAnimation {
|
|
|
10399
10229
|
this.startHeight = 0;
|
|
10400
10230
|
}
|
|
10401
10231
|
get expandAnimation() {
|
|
10402
|
-
return { value: this.clrExpandTrigger, params: { startHeight: this.startHeight } };
|
|
10403
|
-
}
|
|
10404
|
-
animationDone() {
|
|
10405
|
-
// A "safe" auto-update of the height ensuring basic OOTB user experience .
|
|
10406
|
-
// Prone to small jumps in initial animation height if data was changed in the meantime, window was resized, etc.
|
|
10407
|
-
// For optimal behavior call manually updateStartHeight() from the parent component before initiating the update.
|
|
10408
|
-
this.updateStartHeight();
|
|
10409
|
-
}
|
|
10410
|
-
updateStartHeight() {
|
|
10411
|
-
this.startHeight = this.domAdapter.computedHeight(this.element.nativeElement) || 0;
|
|
10412
|
-
}
|
|
10413
|
-
}
|
|
10414
|
-
ClrExpandableAnimation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrExpandableAnimation, deps: [{ token: i0.ElementRef }, { token: DomAdapter }], target: i0.ɵɵFactoryTarget.Component });
|
|
10415
|
-
ClrExpandableAnimation.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.2", type: ClrExpandableAnimation, selector: "clr-expandable-animation", inputs: { clrExpandTrigger: "clrExpandTrigger" }, host: { listeners: { "@expandAnimation.done": "animationDone()" }, properties: { "@expandAnimation": "this.expandAnimation" } }, providers: [DomAdapter], ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, styles: [":host{display:block}\n"], animations: [
|
|
10416
|
-
trigger('expandAnimation', [
|
|
10417
|
-
transition('true <=> false', [
|
|
10418
|
-
style({ height: '{{startHeight}}px', overflow: 'hidden' }),
|
|
10419
|
-
animate('0.2s ease-in-out', style({ height: '*' })),
|
|
10420
|
-
]),
|
|
10421
|
-
]),
|
|
10422
|
-
] });
|
|
10423
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrExpandableAnimation, decorators: [{
|
|
10424
|
-
type: Component,
|
|
10425
|
-
args: [{ selector: 'clr-expandable-animation', template: `<ng-content></ng-content>`, animations: [
|
|
10426
|
-
trigger('expandAnimation', [
|
|
10427
|
-
transition('true <=> false', [
|
|
10428
|
-
style({ height: '{{startHeight}}px', overflow: 'hidden' }),
|
|
10429
|
-
animate('0.2s ease-in-out', style({ height: '*' })),
|
|
10430
|
-
]),
|
|
10431
|
-
]),
|
|
10432
|
-
], providers: [DomAdapter], styles: [":host{display:block}\n"] }]
|
|
10433
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: DomAdapter }]; }, propDecorators: { clrExpandTrigger: [{
|
|
10434
|
-
type: Input
|
|
10435
|
-
}], expandAnimation: [{
|
|
10436
|
-
type: HostBinding,
|
|
10437
|
-
args: ['@expandAnimation']
|
|
10438
|
-
}], animationDone: [{
|
|
10439
|
-
type: HostListener,
|
|
10440
|
-
args: ['@expandAnimation.done']
|
|
10441
|
-
}] } });
|
|
10442
|
-
|
|
10443
|
-
/*
|
|
10444
|
-
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
10445
|
-
* This software is released under MIT license.
|
|
10446
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
10447
|
-
*/
|
|
10448
|
-
const EXPANDABLE_ANIMATION_DIRECTIVES = [ClrExpandableAnimation];
|
|
10449
|
-
|
|
10450
|
-
/*
|
|
10451
|
-
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
10452
|
-
* This software is released under MIT license.
|
|
10453
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
10454
|
-
*/
|
|
10455
|
-
class ClrExpandableAnimationModule {
|
|
10456
|
-
}
|
|
10457
|
-
ClrExpandableAnimationModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrExpandableAnimationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
10458
|
-
ClrExpandableAnimationModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.2", ngImport: i0, type: ClrExpandableAnimationModule, declarations: [ClrExpandableAnimation], imports: [CommonModule], exports: [ClrExpandableAnimation] });
|
|
10459
|
-
ClrExpandableAnimationModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrExpandableAnimationModule, imports: [CommonModule] });
|
|
10460
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrExpandableAnimationModule, decorators: [{
|
|
10461
|
-
type: NgModule,
|
|
10462
|
-
args: [{
|
|
10463
|
-
imports: [CommonModule],
|
|
10464
|
-
declarations: [EXPANDABLE_ANIMATION_DIRECTIVES],
|
|
10465
|
-
exports: [EXPANDABLE_ANIMATION_DIRECTIVES],
|
|
10466
|
-
}]
|
|
10467
|
-
}] });
|
|
10468
|
-
|
|
10469
|
-
/*
|
|
10470
|
-
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
10471
|
-
* This software is released under MIT license.
|
|
10472
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
10473
|
-
*/
|
|
10474
|
-
var DragEventType;
|
|
10475
|
-
(function (DragEventType) {
|
|
10476
|
-
DragEventType[DragEventType["DRAG_START"] = 0] = "DRAG_START";
|
|
10477
|
-
DragEventType[DragEventType["DRAG_MOVE"] = 1] = "DRAG_MOVE";
|
|
10478
|
-
DragEventType[DragEventType["DRAG_END"] = 2] = "DRAG_END";
|
|
10479
|
-
DragEventType[DragEventType["DRAG_ENTER"] = 3] = "DRAG_ENTER";
|
|
10480
|
-
DragEventType[DragEventType["DRAG_LEAVE"] = 4] = "DRAG_LEAVE";
|
|
10481
|
-
DragEventType[DragEventType["DROP"] = 5] = "DROP";
|
|
10482
|
-
})(DragEventType || (DragEventType = {}));
|
|
10483
|
-
|
|
10484
|
-
/*
|
|
10485
|
-
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
10486
|
-
* This software is released under MIT license.
|
|
10487
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
10488
|
-
*/
|
|
10489
|
-
class DragAndDropEventBusService {
|
|
10490
|
-
constructor() {
|
|
10491
|
-
this.dragStart = new Subject();
|
|
10492
|
-
this.dragMove = new Subject();
|
|
10493
|
-
this.dragEnd = new Subject();
|
|
10494
|
-
this.drop = new Subject();
|
|
10495
|
-
}
|
|
10496
|
-
get dragStarted() {
|
|
10497
|
-
return this.dragStart.asObservable();
|
|
10498
|
-
}
|
|
10499
|
-
get dragMoved() {
|
|
10500
|
-
return this.dragMove.asObservable();
|
|
10501
|
-
}
|
|
10502
|
-
get dragEnded() {
|
|
10503
|
-
return this.dragEnd.asObservable();
|
|
10504
|
-
}
|
|
10505
|
-
get dropped() {
|
|
10506
|
-
return this.drop.asObservable();
|
|
10507
|
-
}
|
|
10508
|
-
broadcast(event) {
|
|
10509
|
-
switch (event.type) {
|
|
10510
|
-
case DragEventType.DRAG_START:
|
|
10511
|
-
this.dragStart.next(event);
|
|
10512
|
-
break;
|
|
10513
|
-
case DragEventType.DRAG_MOVE:
|
|
10514
|
-
this.dragMove.next(event);
|
|
10515
|
-
break;
|
|
10516
|
-
case DragEventType.DRAG_END:
|
|
10517
|
-
this.dragEnd.next(event);
|
|
10518
|
-
break;
|
|
10519
|
-
case DragEventType.DROP:
|
|
10520
|
-
this.drop.next(event);
|
|
10521
|
-
break;
|
|
10522
|
-
default:
|
|
10523
|
-
break;
|
|
10524
|
-
}
|
|
10525
|
-
}
|
|
10526
|
-
}
|
|
10527
|
-
DragAndDropEventBusService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: DragAndDropEventBusService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
10528
|
-
DragAndDropEventBusService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: DragAndDropEventBusService, providedIn: 'root' });
|
|
10529
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: DragAndDropEventBusService, decorators: [{
|
|
10530
|
-
type: Injectable,
|
|
10531
|
-
args: [{ providedIn: 'root' }]
|
|
10532
|
-
}] });
|
|
10533
|
-
|
|
10534
|
-
/*
|
|
10535
|
-
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
10536
|
-
* This software is released under MIT license.
|
|
10537
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
10538
|
-
*/
|
|
10539
|
-
class DragEventListenerService {
|
|
10540
|
-
constructor(ngZone, renderer, eventBus) {
|
|
10541
|
-
this.ngZone = ngZone;
|
|
10542
|
-
this.renderer = renderer;
|
|
10543
|
-
this.eventBus = eventBus;
|
|
10544
|
-
// contains listeners for the starting events such as mousedown and touchstart
|
|
10545
|
-
this.listeners = [];
|
|
10546
|
-
this.dragStart = new Subject();
|
|
10547
|
-
this.dragMove = new Subject();
|
|
10548
|
-
this.dragEnd = new Subject();
|
|
10549
|
-
this.hasDragStarted = false;
|
|
10550
|
-
this.dragStartDelay = 0;
|
|
10551
|
-
}
|
|
10552
|
-
get dragStarted() {
|
|
10553
|
-
return this.dragStart.asObservable();
|
|
10554
|
-
}
|
|
10555
|
-
get dragMoved() {
|
|
10556
|
-
return this.dragMove.asObservable();
|
|
10557
|
-
}
|
|
10558
|
-
get dragEnded() {
|
|
10559
|
-
return this.dragEnd.asObservable();
|
|
10560
|
-
}
|
|
10561
|
-
get dragStartPosition() {
|
|
10562
|
-
return this.initialPosition;
|
|
10563
|
-
}
|
|
10564
|
-
attachDragListeners(draggableEl) {
|
|
10565
|
-
this.draggableEl = draggableEl;
|
|
10566
|
-
this.listeners.push(this.customDragEvent(this.draggableEl, 'mousedown', 'mousemove', 'mouseup'));
|
|
10567
|
-
this.listeners.push(this.customDragEvent(this.draggableEl, 'touchstart', 'touchmove', 'touchend'));
|
|
10568
|
-
}
|
|
10569
|
-
detachDragListeners() {
|
|
10570
|
-
if (this.listeners) {
|
|
10571
|
-
this.listeners.map(event => event());
|
|
10572
|
-
}
|
|
10573
|
-
// In most cases, once users start dragging with mousedown/touchstart events,
|
|
10574
|
-
// they will end dragging at one point with mouseup/touchend.
|
|
10575
|
-
// However, there might be a few cases where mousedown/touchstart events get registered,
|
|
10576
|
-
// but the draggable element gets removed before user ends dragging.
|
|
10577
|
-
// In that case, we need to remove the attached listeners that happened during the mousedown/touchstart events.
|
|
10578
|
-
if (this.nestedListeners) {
|
|
10579
|
-
this.nestedListeners.map(event => event());
|
|
10580
|
-
}
|
|
10581
|
-
if (this.checkDragStartBoundaryListener) {
|
|
10582
|
-
this.checkDragStartBoundaryListener();
|
|
10583
|
-
}
|
|
10584
|
-
}
|
|
10585
|
-
getNativeEventObject(event) {
|
|
10586
|
-
if (Object.prototype.hasOwnProperty.call(event, 'changedTouches')) {
|
|
10587
|
-
return event.changedTouches[0];
|
|
10588
|
-
}
|
|
10589
|
-
else {
|
|
10590
|
-
return event;
|
|
10591
|
-
}
|
|
10592
|
-
}
|
|
10593
|
-
customDragEvent(element, startOnEvent, moveOnEvent, endOnEvent) {
|
|
10594
|
-
return this.renderer.listen(element, startOnEvent, (startEvent) => {
|
|
10595
|
-
// save the initial point to initialPosition
|
|
10596
|
-
// this will be used to calculate how far the draggable has been dragged from its initial position
|
|
10597
|
-
this.initialPosition = {
|
|
10598
|
-
pageX: this.getNativeEventObject(startEvent).pageX,
|
|
10599
|
-
pageY: this.getNativeEventObject(startEvent).pageY,
|
|
10600
|
-
};
|
|
10601
|
-
// Initialize nested listeners' property with a new empty array;
|
|
10602
|
-
this.nestedListeners = [];
|
|
10603
|
-
// Listen to selectstart/mousemove/touchmove events outside of angular zone.
|
|
10604
|
-
this.ngZone.runOutsideAngular(() => {
|
|
10605
|
-
// This is needed to disable selection during dragging (especially in EDGE/IE11).
|
|
10606
|
-
this.nestedListeners.push(this.renderer.listen('document', 'selectstart', (selectEvent) => {
|
|
10607
|
-
selectEvent.preventDefault();
|
|
10608
|
-
selectEvent.stopImmediatePropagation();
|
|
10609
|
-
}));
|
|
10610
|
-
// During the drag start delay, pointer should stay within the boundary.
|
|
10611
|
-
this.checkDragStartBoundary(moveOnEvent);
|
|
10612
|
-
this.dragStartDelayTimeout = setTimeout(() => {
|
|
10613
|
-
if (this.checkDragStartBoundaryListener) {
|
|
10614
|
-
this.checkDragStartBoundaryListener();
|
|
10615
|
-
}
|
|
10616
|
-
this.hasDragStarted = true;
|
|
10617
|
-
// Fire "dragstart"
|
|
10618
|
-
this.broadcast(startEvent, DragEventType.DRAG_START);
|
|
10619
|
-
this.nestedListeners.push(this.renderer.listen('document', moveOnEvent, (moveEvent) => {
|
|
10620
|
-
// Event.stopImmediatePropagation() is needed here to prevent nested draggables from getting dragged
|
|
10621
|
-
// altogether. We shouldn't use Event.stopPropagation() here as we are listening to the events
|
|
10622
|
-
// on the global element level.
|
|
10623
|
-
// With Event.stopImmediatePropagation(), it registers the events sent from the inner most draggable
|
|
10624
|
-
// first. Then immediately after that, it stops listening to the same type of events on the same
|
|
10625
|
-
// element. So this will help us to not register the same events that would come from the parent
|
|
10626
|
-
// level draggables eventually.
|
|
10627
|
-
moveEvent.stopImmediatePropagation();
|
|
10628
|
-
if (this.hasDragStarted) {
|
|
10629
|
-
// Fire "dragmove"
|
|
10630
|
-
this.broadcast(moveEvent, DragEventType.DRAG_MOVE);
|
|
10631
|
-
}
|
|
10632
|
-
}));
|
|
10633
|
-
}, this.dragStartDelay);
|
|
10634
|
-
});
|
|
10635
|
-
// Listen to mouseup/touchend events.
|
|
10636
|
-
this.nestedListeners.push(this.renderer.listen('document', endOnEvent, (endEvent) => {
|
|
10637
|
-
if (this.hasDragStarted) {
|
|
10638
|
-
// Fire "dragend" only if dragstart is registered
|
|
10639
|
-
this.hasDragStarted = false;
|
|
10640
|
-
this.broadcast(endEvent, DragEventType.DRAG_END);
|
|
10641
|
-
}
|
|
10642
|
-
clearTimeout(this.dragStartDelayTimeout);
|
|
10643
|
-
// We must remove the the nested listeners every time drag completes.
|
|
10644
|
-
this.nestedListeners.map(event => event());
|
|
10645
|
-
// We must remove the event listener from checkDragStartBoundary
|
|
10646
|
-
if (this.checkDragStartBoundaryListener) {
|
|
10647
|
-
this.checkDragStartBoundaryListener();
|
|
10648
|
-
}
|
|
10649
|
-
}));
|
|
10650
|
-
});
|
|
10651
|
-
}
|
|
10652
|
-
checkDragStartBoundary(eventType) {
|
|
10653
|
-
this.checkDragStartBoundaryListener = this.renderer.listen('document', eventType, (moveEvent) => {
|
|
10654
|
-
const deltaX = Math.abs(this.getNativeEventObject(moveEvent).pageX - this.initialPosition.pageX);
|
|
10655
|
-
const deltaY = Math.abs(this.getNativeEventObject(moveEvent).pageY - this.initialPosition.pageY);
|
|
10656
|
-
// If pointer move delta exceeds horizontal or vertical threshold,
|
|
10657
|
-
// we should cancel drag initiation.
|
|
10658
|
-
if (deltaX > 1 || deltaY > 1) {
|
|
10659
|
-
clearTimeout(this.dragStartDelayTimeout);
|
|
10660
|
-
if (this.checkDragStartBoundaryListener) {
|
|
10661
|
-
this.checkDragStartBoundaryListener();
|
|
10662
|
-
}
|
|
10663
|
-
}
|
|
10664
|
-
});
|
|
10665
|
-
}
|
|
10666
|
-
broadcast(event, eventType) {
|
|
10667
|
-
const dragEvent = this.generateDragEvent(event, eventType);
|
|
10668
|
-
switch (dragEvent.type) {
|
|
10669
|
-
case DragEventType.DRAG_START:
|
|
10670
|
-
this.dragStart.next(dragEvent);
|
|
10671
|
-
break;
|
|
10672
|
-
case DragEventType.DRAG_MOVE:
|
|
10673
|
-
this.dragMove.next(dragEvent);
|
|
10674
|
-
break;
|
|
10675
|
-
case DragEventType.DRAG_END:
|
|
10676
|
-
this.dragEnd.next(dragEvent);
|
|
10677
|
-
break;
|
|
10678
|
-
default:
|
|
10679
|
-
break;
|
|
10680
|
-
}
|
|
10681
|
-
// The following properties are set after they are broadcasted to the DraggableGhost component.
|
|
10682
|
-
dragEvent.ghostElement = this.ghostElement;
|
|
10683
|
-
dragEvent.dropPointPosition = this.dropPointPosition;
|
|
10684
|
-
this.eventBus.broadcast(dragEvent);
|
|
10685
|
-
}
|
|
10686
|
-
generateDragEvent(event, eventType) {
|
|
10687
|
-
const nativeEvent = this.getNativeEventObject(event);
|
|
10688
|
-
return {
|
|
10689
|
-
type: eventType,
|
|
10690
|
-
dragPosition: {
|
|
10691
|
-
pageX: nativeEvent.pageX,
|
|
10692
|
-
pageY: nativeEvent.pageY,
|
|
10693
|
-
moveX: nativeEvent.pageX - this.initialPosition.pageX,
|
|
10694
|
-
moveY: nativeEvent.pageY - this.initialPosition.pageY,
|
|
10695
|
-
},
|
|
10696
|
-
group: this.group,
|
|
10697
|
-
dragDataTransfer: this.dragDataTransfer,
|
|
10698
|
-
ghostElement: this.ghostElement,
|
|
10699
|
-
};
|
|
10700
|
-
}
|
|
10701
|
-
}
|
|
10702
|
-
DragEventListenerService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: DragEventListenerService, deps: [{ token: i0.NgZone }, { token: i0.Renderer2 }, { token: DragAndDropEventBusService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
10703
|
-
DragEventListenerService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: DragEventListenerService });
|
|
10704
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: DragEventListenerService, decorators: [{
|
|
10705
|
-
type: Injectable
|
|
10706
|
-
}], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.Renderer2 }, { type: DragAndDropEventBusService }]; } });
|
|
10707
|
-
|
|
10708
|
-
/*
|
|
10709
|
-
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
10710
|
-
* This software is released under MIT license.
|
|
10711
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
10712
|
-
*/
|
|
10713
|
-
// This provider registers the drag handle element.
|
|
10714
|
-
// When it registers a element as a drag handle, it attaches that element to the listeners from ClrDragEventListener.
|
|
10715
|
-
// Also, it adds the "drag-handle" css class to the registered element through Renderer.
|
|
10716
|
-
class DragHandleRegistrarService {
|
|
10717
|
-
constructor(dragEventListener, renderer) {
|
|
10718
|
-
this.dragEventListener = dragEventListener;
|
|
10719
|
-
this.renderer = renderer;
|
|
10720
|
-
}
|
|
10721
|
-
get defaultHandleEl() {
|
|
10722
|
-
return this._defaultHandleEl;
|
|
10723
|
-
}
|
|
10724
|
-
set defaultHandleEl(el) {
|
|
10725
|
-
this._defaultHandleEl = el; // defaultHandleEl will be usually the clrDraggable element.
|
|
10726
|
-
// If the customHandleEl has been registered,
|
|
10727
|
-
// don't make the defaultHandleEl the drag handle yet until the customHandleEl is unregistered.
|
|
10728
|
-
if (!this._customHandleEl) {
|
|
10729
|
-
this.makeElementHandle(this._defaultHandleEl);
|
|
10730
|
-
}
|
|
10731
|
-
}
|
|
10732
|
-
makeElementHandle(el) {
|
|
10733
|
-
if (this._defaultHandleEl && this._defaultHandleEl !== el) {
|
|
10734
|
-
// Before making an element the custom handle element,
|
|
10735
|
-
// we should remove the existing drag-handle class from the draggable element.
|
|
10736
|
-
this.renderer.removeClass(this._defaultHandleEl, 'drag-handle');
|
|
10737
|
-
}
|
|
10738
|
-
this.dragEventListener.attachDragListeners(el);
|
|
10739
|
-
this.renderer.addClass(el, 'drag-handle');
|
|
10740
|
-
}
|
|
10741
|
-
get customHandleEl() {
|
|
10742
|
-
return this._customHandleEl;
|
|
10743
|
-
}
|
|
10744
|
-
registerCustomHandle(el) {
|
|
10745
|
-
this.dragEventListener.detachDragListeners(); // removes the existing listeners
|
|
10746
|
-
this._customHandleEl = el;
|
|
10747
|
-
this.makeElementHandle(this._customHandleEl);
|
|
10748
|
-
}
|
|
10749
|
-
unregisterCustomHandle() {
|
|
10750
|
-
this.dragEventListener.detachDragListeners(); // removes the existing listeners
|
|
10751
|
-
this.renderer.removeClass(this._customHandleEl, 'drag-handle');
|
|
10752
|
-
delete this._customHandleEl;
|
|
10753
|
-
// if default handle is set, make that handle
|
|
10754
|
-
if (this._defaultHandleEl) {
|
|
10755
|
-
this.makeElementHandle(this._defaultHandleEl);
|
|
10756
|
-
}
|
|
10757
|
-
}
|
|
10758
|
-
}
|
|
10759
|
-
DragHandleRegistrarService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: DragHandleRegistrarService, deps: [{ token: DragEventListenerService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
10760
|
-
DragHandleRegistrarService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: DragHandleRegistrarService });
|
|
10761
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: DragHandleRegistrarService, decorators: [{
|
|
10762
|
-
type: Injectable
|
|
10763
|
-
}], ctorParameters: function () { return [{ type: DragEventListenerService }, { type: i0.Renderer2 }]; } });
|
|
10764
|
-
|
|
10765
|
-
/*
|
|
10766
|
-
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
10767
|
-
* This software is released under MIT license.
|
|
10768
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
10769
|
-
*/
|
|
10770
|
-
class ClrDragHandle {
|
|
10771
|
-
constructor(el, dragHandleRegistrar) {
|
|
10772
|
-
this.el = el;
|
|
10773
|
-
this.dragHandleRegistrar = dragHandleRegistrar;
|
|
10774
|
-
if (!this.dragHandleRegistrar) {
|
|
10775
|
-
// ClrDragHandleRegistrar is provided in ClrDraggable so we expect it to be present here
|
|
10776
|
-
// as clrDragHandle is required to be used only inside of a clrDraggable directive.
|
|
10777
|
-
throw new Error('The clrDragHandle directive can only be used inside of a clrDraggable directive.');
|
|
10778
|
-
}
|
|
10779
|
-
this.dragHandleRegistrar.registerCustomHandle(this.el.nativeElement);
|
|
10780
|
-
}
|
|
10781
|
-
ngOnDestroy() {
|
|
10782
|
-
this.dragHandleRegistrar.unregisterCustomHandle();
|
|
10783
|
-
}
|
|
10784
|
-
}
|
|
10785
|
-
ClrDragHandle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrDragHandle, deps: [{ token: i0.ElementRef }, { token: DragHandleRegistrarService, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
10786
|
-
ClrDragHandle.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.2", type: ClrDragHandle, selector: "[clrDragHandle]", host: { properties: { "class.drag-handle": "true" } }, ngImport: i0 });
|
|
10787
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrDragHandle, decorators: [{
|
|
10788
|
-
type: Directive,
|
|
10789
|
-
args: [{
|
|
10790
|
-
selector: '[clrDragHandle]',
|
|
10791
|
-
host: { '[class.drag-handle]': 'true' },
|
|
10792
|
-
}]
|
|
10793
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: DragHandleRegistrarService, decorators: [{
|
|
10794
|
-
type: Optional
|
|
10795
|
-
}] }]; } });
|
|
10796
|
-
|
|
10797
|
-
/*
|
|
10798
|
-
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
10799
|
-
* This software is released under MIT license.
|
|
10800
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
10801
|
-
*/
|
|
10802
|
-
// This service is used to capture the state of clrDraggable element
|
|
10803
|
-
// at a certain event and passes it to clrDraggableGhost component.
|
|
10804
|
-
class DraggableSnapshotService {
|
|
10805
|
-
constructor(domAdapter) {
|
|
10806
|
-
this.domAdapter = domAdapter;
|
|
10807
|
-
}
|
|
10808
|
-
capture(el, event) {
|
|
10809
|
-
this.draggableElClientRect = this.domAdapter.clientRect(el);
|
|
10810
|
-
this.snapshotDragEvent = event;
|
|
10811
|
-
}
|
|
10812
|
-
discard() {
|
|
10813
|
-
delete this.draggableElClientRect;
|
|
10814
|
-
delete this.snapshotDragEvent;
|
|
10815
|
-
}
|
|
10816
|
-
get hasDraggableState() {
|
|
10817
|
-
return !!this.snapshotDragEvent && !!this.draggableElClientRect;
|
|
10818
|
-
}
|
|
10819
|
-
get clientRect() {
|
|
10820
|
-
return this.draggableElClientRect;
|
|
10821
|
-
}
|
|
10822
|
-
get dragEvent() {
|
|
10823
|
-
return this.snapshotDragEvent;
|
|
10824
|
-
}
|
|
10825
|
-
}
|
|
10826
|
-
DraggableSnapshotService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: DraggableSnapshotService, deps: [{ token: DomAdapter }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
10827
|
-
DraggableSnapshotService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: DraggableSnapshotService });
|
|
10828
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: DraggableSnapshotService, decorators: [{
|
|
10829
|
-
type: Injectable
|
|
10830
|
-
}], ctorParameters: function () { return [{ type: DomAdapter }]; } });
|
|
10831
|
-
|
|
10832
|
-
/*
|
|
10833
|
-
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
10834
|
-
* This software is released under MIT license.
|
|
10835
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
10836
|
-
*/
|
|
10837
|
-
class ClrDraggableGhost {
|
|
10838
|
-
constructor(el, dragEventListener, draggableSnapshot, renderer, ngZone) {
|
|
10839
|
-
this.el = el;
|
|
10840
|
-
this.dragEventListener = dragEventListener;
|
|
10841
|
-
this.draggableSnapshot = draggableSnapshot;
|
|
10842
|
-
this.renderer = renderer;
|
|
10843
|
-
this.ngZone = ngZone;
|
|
10844
|
-
this.subscriptions = [];
|
|
10845
|
-
this.leaveAnimConfig = { value: 0, params: { top: '0px', left: '0px' } };
|
|
10846
|
-
if (!this.dragEventListener || !this.draggableSnapshot) {
|
|
10847
|
-
throw new Error('The clr-draggable-ghost component can only be used inside of a clrDraggable directive.');
|
|
10848
|
-
}
|
|
10849
|
-
this.draggableGhostEl = this.el.nativeElement;
|
|
10850
|
-
// Need to use Renderer2 as it runs outside of NgZone
|
|
10851
|
-
this.renderer.addClass(this.draggableGhostEl, 'draggable-ghost');
|
|
10852
|
-
// Register the ghost element in DragEventListener to pass in a ClrDragEvent.
|
|
10853
|
-
this.dragEventListener.ghostElement = this.draggableGhostEl;
|
|
10854
|
-
// Default ghost size gets the size of ClrDraggable element.
|
|
10855
|
-
this.setDefaultGhostSize(this.draggableGhostEl);
|
|
10856
|
-
const offset = {
|
|
10857
|
-
top: this.draggableSnapshot.hasDraggableState
|
|
10858
|
-
? this.draggableSnapshot.dragEvent.dragPosition.pageY - this.draggableSnapshot.clientRect.top
|
|
10859
|
-
: 0,
|
|
10860
|
-
left: this.draggableSnapshot.hasDraggableState
|
|
10861
|
-
? this.draggableSnapshot.dragEvent.dragPosition.pageX - this.draggableSnapshot.clientRect.left
|
|
10862
|
-
: 0,
|
|
10863
|
-
};
|
|
10864
|
-
let isAnimationConfigured = false;
|
|
10865
|
-
this.subscriptions.push(this.dragEventListener.dragMoved.subscribe((event) => {
|
|
10866
|
-
// On the first drag move event, we configure the animation as it's dependent on the first drag event.
|
|
10867
|
-
if (!isAnimationConfigured) {
|
|
10868
|
-
if (this.draggableSnapshot.hasDraggableState) {
|
|
10869
|
-
this.animateToOnLeave(`${this.draggableSnapshot.clientRect.top}px`, `${this.draggableSnapshot.clientRect.left}px`);
|
|
10870
|
-
}
|
|
10871
|
-
else {
|
|
10872
|
-
this.animateToOnLeave(`${this.dragEventListener.dragStartPosition.pageY}px`, `${this.dragEventListener.dragStartPosition.pageY}px`);
|
|
10873
|
-
}
|
|
10874
|
-
isAnimationConfigured = true;
|
|
10875
|
-
}
|
|
10876
|
-
// Position the draggable ghost.
|
|
10877
|
-
const topLeftPosition = this.findTopLeftPosition(event.dragPosition, offset);
|
|
10878
|
-
this.setPositionStyle(this.draggableGhostEl, topLeftPosition.pageX, topLeftPosition.pageY);
|
|
10879
|
-
this.dragEventListener.dropPointPosition = this.findDropPointPosition(topLeftPosition);
|
|
10880
|
-
}));
|
|
10881
|
-
}
|
|
10882
|
-
setDefaultGhostSize(el) {
|
|
10883
|
-
if (this.draggableSnapshot.hasDraggableState) {
|
|
10884
|
-
this.setSizeStyle(el, this.draggableSnapshot.clientRect.width, this.draggableSnapshot.clientRect.height);
|
|
10885
|
-
}
|
|
10886
|
-
}
|
|
10887
|
-
animateToOnLeave(top, left) {
|
|
10888
|
-
this.ngZone.run(() => {
|
|
10889
|
-
this.leaveAnimConfig = { value: 0, params: { top: top, left: left } };
|
|
10890
|
-
});
|
|
10891
|
-
}
|
|
10892
|
-
findTopLeftPosition(dragPosition, offset) {
|
|
10893
|
-
return { pageX: dragPosition.pageX - offset.left, pageY: dragPosition.pageY - offset.top };
|
|
10894
|
-
}
|
|
10895
|
-
findDropPointPosition(topLeftPosition) {
|
|
10896
|
-
if (this.draggableSnapshot.hasDraggableState) {
|
|
10897
|
-
return {
|
|
10898
|
-
pageX: topLeftPosition.pageX + this.draggableSnapshot.clientRect.width / 2,
|
|
10899
|
-
pageY: topLeftPosition.pageY + this.draggableSnapshot.clientRect.height / 2,
|
|
10900
|
-
};
|
|
10901
|
-
}
|
|
10902
|
-
else {
|
|
10903
|
-
return topLeftPosition;
|
|
10904
|
-
}
|
|
10905
|
-
}
|
|
10906
|
-
setSizeStyle(el, width, height) {
|
|
10907
|
-
this.renderer.setStyle(el, 'width', `${width}px`);
|
|
10908
|
-
this.renderer.setStyle(el, 'height', `${height}px`);
|
|
10909
|
-
}
|
|
10910
|
-
setPositionStyle(el, left, top) {
|
|
10911
|
-
this.renderer.setStyle(el, 'left', `${left}px`);
|
|
10912
|
-
this.renderer.setStyle(el, 'top', `${top}px`);
|
|
10913
|
-
this.renderer.setStyle(el, 'visibility', 'visible');
|
|
10914
|
-
}
|
|
10915
|
-
ngOnDestroy() {
|
|
10916
|
-
this.subscriptions.forEach((sub) => sub.unsubscribe());
|
|
10917
|
-
}
|
|
10918
|
-
}
|
|
10919
|
-
ClrDraggableGhost.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrDraggableGhost, deps: [{ token: i0.ElementRef }, { token: DragEventListenerService, optional: true }, { token: DraggableSnapshotService, optional: true }, { token: i0.Renderer2 }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
10920
|
-
ClrDraggableGhost.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.2", type: ClrDraggableGhost, selector: "clr-draggable-ghost", host: { properties: { "@leaveAnimation": "this.leaveAnimConfig" } }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, animations: [
|
|
10921
|
-
trigger('leaveAnimation', [
|
|
10922
|
-
transition(':leave', [
|
|
10923
|
-
style({ left: '*', top: '*' }),
|
|
10924
|
-
animate('0.2s ease-in-out', style({ top: '{{top}}', left: '{{left}}' })),
|
|
10925
|
-
]),
|
|
10926
|
-
]),
|
|
10927
|
-
] });
|
|
10928
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrDraggableGhost, decorators: [{
|
|
10929
|
-
type: Component,
|
|
10930
|
-
args: [{
|
|
10931
|
-
selector: 'clr-draggable-ghost',
|
|
10932
|
-
template: `<ng-content></ng-content>`,
|
|
10933
|
-
animations: [
|
|
10934
|
-
trigger('leaveAnimation', [
|
|
10935
|
-
transition(':leave', [
|
|
10936
|
-
style({ left: '*', top: '*' }),
|
|
10937
|
-
animate('0.2s ease-in-out', style({ top: '{{top}}', left: '{{left}}' })),
|
|
10938
|
-
]),
|
|
10939
|
-
]),
|
|
10940
|
-
],
|
|
10941
|
-
}]
|
|
10942
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: DragEventListenerService, decorators: [{
|
|
10943
|
-
type: Optional
|
|
10944
|
-
}] }, { type: DraggableSnapshotService, decorators: [{
|
|
10945
|
-
type: Optional
|
|
10946
|
-
}] }, { type: i0.Renderer2 }, { type: i0.NgZone }]; }, propDecorators: { leaveAnimConfig: [{
|
|
10947
|
-
type: HostBinding,
|
|
10948
|
-
args: ['@leaveAnimation']
|
|
10949
|
-
}] } });
|
|
10950
|
-
|
|
10951
|
-
/*
|
|
10952
|
-
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
10953
|
-
* This software is released under MIT license.
|
|
10954
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
10955
|
-
*/
|
|
10956
|
-
// This class is used to convert an internal event
|
|
10957
|
-
// to an external event to be emitted.
|
|
10958
|
-
class ClrDragEvent {
|
|
10959
|
-
constructor(dragEvent) {
|
|
10960
|
-
this.dragPosition = dragEvent.dragPosition;
|
|
10961
|
-
this.group = dragEvent.group;
|
|
10962
|
-
this.dragDataTransfer = dragEvent.dragDataTransfer;
|
|
10963
|
-
this.dropPointPosition = dragEvent.dropPointPosition;
|
|
10964
|
-
}
|
|
10965
|
-
}
|
|
10966
|
-
|
|
10967
|
-
/*
|
|
10968
|
-
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
10969
|
-
* This software is released under MIT license.
|
|
10970
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
10971
|
-
*/
|
|
10972
|
-
// This structural directive will be used mainly together with `clr-draggable-ghost` directive inside of clrDraggable
|
|
10973
|
-
// directive. The directive is responsible for instantiating `clr-draggable-ghost` directive only during dragging so
|
|
10974
|
-
// that Angular Change Detection is prevented from running if a component or directive is placed inside of the
|
|
10975
|
-
// `clr-draggable-ghost` directive.
|
|
10976
|
-
class ClrIfDragged {
|
|
10977
|
-
constructor(template, container, dragEventListener) {
|
|
10978
|
-
this.template = template;
|
|
10979
|
-
this.container = container;
|
|
10980
|
-
this.dragEventListener = dragEventListener;
|
|
10981
|
-
this.subscriptions = [];
|
|
10982
|
-
if (!this.dragEventListener || !this.container) {
|
|
10983
|
-
throw new Error('The *clrIfDragged directive can only be used inside of a clrDraggable directive.');
|
|
10984
|
-
}
|
|
10985
|
-
this.subscriptions.push(this.dragEventListener.dragStarted.subscribe(() => {
|
|
10986
|
-
this.container.createEmbeddedView(this.template);
|
|
10987
|
-
}));
|
|
10988
|
-
this.subscriptions.push(this.dragEventListener.dragEnded.subscribe(() => {
|
|
10989
|
-
this.container.clear();
|
|
10990
|
-
}));
|
|
10991
|
-
}
|
|
10992
|
-
ngOnDestroy() {
|
|
10993
|
-
this.subscriptions.forEach((sub) => sub.unsubscribe());
|
|
10994
|
-
}
|
|
10995
|
-
}
|
|
10996
|
-
ClrIfDragged.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrIfDragged, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef, optional: true, skipSelf: true }, { token: DragEventListenerService, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
10997
|
-
ClrIfDragged.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.2", type: ClrIfDragged, selector: "[clrIfDragged]", ngImport: i0 });
|
|
10998
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrIfDragged, decorators: [{
|
|
10999
|
-
type: Directive,
|
|
11000
|
-
args: [{
|
|
11001
|
-
selector: '[clrIfDragged]',
|
|
11002
|
-
}]
|
|
11003
|
-
}], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef, decorators: [{
|
|
11004
|
-
type: Optional
|
|
11005
|
-
}, {
|
|
11006
|
-
type: SkipSelf
|
|
11007
|
-
}] }, { type: DragEventListenerService, decorators: [{
|
|
11008
|
-
type: Optional
|
|
11009
|
-
}] }]; } });
|
|
11010
|
-
|
|
11011
|
-
/*
|
|
11012
|
-
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
11013
|
-
* This software is released under MIT license.
|
|
11014
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
11015
|
-
*/
|
|
11016
|
-
// This service class adds and removes the "in-drag" class to the document body element
|
|
11017
|
-
// through its public enter() and exit() methods.
|
|
11018
|
-
class GlobalDragModeService {
|
|
11019
|
-
constructor(renderer) {
|
|
11020
|
-
this.renderer = renderer;
|
|
11021
|
-
}
|
|
11022
|
-
enter() {
|
|
11023
|
-
this.renderer.addClass(document.body, 'in-drag');
|
|
11024
|
-
}
|
|
11025
|
-
exit() {
|
|
11026
|
-
this.renderer.removeClass(document.body, 'in-drag');
|
|
11027
|
-
}
|
|
11028
|
-
}
|
|
11029
|
-
GlobalDragModeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: GlobalDragModeService, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
11030
|
-
GlobalDragModeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: GlobalDragModeService });
|
|
11031
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: GlobalDragModeService, decorators: [{
|
|
11032
|
-
type: Injectable
|
|
11033
|
-
}], ctorParameters: function () { return [{ type: i0.Renderer2 }]; } });
|
|
11034
|
-
|
|
11035
|
-
/*
|
|
11036
|
-
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
11037
|
-
* This software is released under MIT license.
|
|
11038
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
11039
|
-
*/
|
|
11040
|
-
class ClrDraggable {
|
|
11041
|
-
constructor(el, dragEventListener, dragHandleRegistrar, viewContainerRef, cfr, injector, draggableSnapshot, globalDragMode) {
|
|
11042
|
-
this.el = el;
|
|
11043
|
-
this.dragEventListener = dragEventListener;
|
|
11044
|
-
this.dragHandleRegistrar = dragHandleRegistrar;
|
|
11045
|
-
this.viewContainerRef = viewContainerRef;
|
|
11046
|
-
this.cfr = cfr;
|
|
11047
|
-
this.injector = injector;
|
|
11048
|
-
this.draggableSnapshot = draggableSnapshot;
|
|
11049
|
-
this.globalDragMode = globalDragMode;
|
|
11050
|
-
this.subscriptions = [];
|
|
11051
|
-
this.dragOn = false;
|
|
11052
|
-
this.dragStartEmitter = new EventEmitter();
|
|
11053
|
-
this.dragMoveEmitter = new EventEmitter();
|
|
11054
|
-
this.dragEndEmitter = new EventEmitter();
|
|
11055
|
-
this.draggableEl = this.el.nativeElement;
|
|
11056
|
-
this.componentFactory = this.cfr.resolveComponentFactory(ClrDraggableGhost);
|
|
11057
|
-
}
|
|
11058
|
-
set dataTransfer(value) {
|
|
11059
|
-
this.dragEventListener.dragDataTransfer = value;
|
|
11060
|
-
}
|
|
11061
|
-
set group(value) {
|
|
11062
|
-
this.dragEventListener.group = value;
|
|
11063
|
-
}
|
|
11064
|
-
set dragStartDelay(value) {
|
|
11065
|
-
if (typeof value === 'number') {
|
|
11066
|
-
this.dragEventListener.dragStartDelay = value;
|
|
11067
|
-
}
|
|
11068
|
-
else if (typeof value === 'string') {
|
|
11069
|
-
this.dragEventListener.dragStartDelay = parseInt(value, 10) || 0;
|
|
11070
|
-
}
|
|
11071
|
-
}
|
|
11072
|
-
createDefaultGhost(event) {
|
|
11073
|
-
this.draggableSnapshot.capture(this.draggableEl, event);
|
|
11074
|
-
// NOTE: The default ghost element will appear
|
|
11075
|
-
// next to the clrDraggable in the DOM as a sibling element.
|
|
11076
|
-
this.viewContainerRef.createComponent(this.componentFactory, 0, this.injector, [
|
|
11077
|
-
[this.draggableEl.cloneNode(true)],
|
|
11078
|
-
]);
|
|
11079
|
-
}
|
|
11080
|
-
destroyDefaultGhost() {
|
|
11081
|
-
this.viewContainerRef.clear();
|
|
11082
|
-
this.draggableSnapshot.discard();
|
|
11083
|
-
}
|
|
11084
|
-
ngAfterContentInit() {
|
|
11085
|
-
this.dragHandleRegistrar.defaultHandleEl = this.draggableEl;
|
|
11086
|
-
this.subscriptions.push(this.dragEventListener.dragStarted.subscribe((event) => {
|
|
11087
|
-
this.globalDragMode.enter();
|
|
11088
|
-
this.dragOn = true;
|
|
11089
|
-
if (!this.customGhost) {
|
|
11090
|
-
this.createDefaultGhost(event);
|
|
11091
|
-
}
|
|
11092
|
-
this.dragStartEmitter.emit(new ClrDragEvent(event));
|
|
11093
|
-
}));
|
|
11094
|
-
this.subscriptions.push(this.dragEventListener.dragMoved.subscribe((event) => {
|
|
11095
|
-
this.dragMoveEmitter.emit(new ClrDragEvent(event));
|
|
11096
|
-
}));
|
|
11097
|
-
this.subscriptions.push(this.dragEventListener.dragEnded.subscribe((event) => {
|
|
11098
|
-
this.globalDragMode.exit();
|
|
11099
|
-
this.dragOn = false;
|
|
11100
|
-
if (!this.customGhost) {
|
|
11101
|
-
this.destroyDefaultGhost();
|
|
11102
|
-
}
|
|
11103
|
-
this.dragEndEmitter.emit(new ClrDragEvent(event));
|
|
11104
|
-
}));
|
|
11105
|
-
}
|
|
11106
|
-
ngOnDestroy() {
|
|
11107
|
-
this.subscriptions.forEach((sub) => sub.unsubscribe());
|
|
11108
|
-
this.dragEventListener.detachDragListeners();
|
|
11109
|
-
}
|
|
11110
|
-
}
|
|
11111
|
-
ClrDraggable.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrDraggable, deps: [{ token: i0.ElementRef }, { token: DragEventListenerService }, { token: DragHandleRegistrarService }, { token: i0.ViewContainerRef }, { token: i0.ComponentFactoryResolver }, { token: i0.Injector }, { token: DraggableSnapshotService }, { token: GlobalDragModeService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
11112
|
-
ClrDraggable.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.2", type: ClrDraggable, selector: "[clrDraggable]", inputs: { dataTransfer: ["clrDraggable", "dataTransfer"], group: ["clrGroup", "group"], dragStartDelay: ["clrDragStartDelay", "dragStartDelay"] }, outputs: { dragStartEmitter: "clrDragStart", dragMoveEmitter: "clrDragMove", dragEndEmitter: "clrDragEnd" }, host: { properties: { "class.draggable": "true", "class.being-dragged": "dragOn" } }, providers: [
|
|
11113
|
-
DragEventListenerService,
|
|
11114
|
-
DragHandleRegistrarService,
|
|
11115
|
-
DraggableSnapshotService,
|
|
11116
|
-
GlobalDragModeService,
|
|
11117
|
-
DomAdapter,
|
|
11118
|
-
], queries: [{ propertyName: "customGhost", first: true, predicate: ClrIfDragged, descendants: true }], ngImport: i0 });
|
|
11119
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrDraggable, decorators: [{
|
|
11120
|
-
type: Directive,
|
|
11121
|
-
args: [{
|
|
11122
|
-
selector: '[clrDraggable]',
|
|
11123
|
-
providers: [
|
|
11124
|
-
DragEventListenerService,
|
|
11125
|
-
DragHandleRegistrarService,
|
|
11126
|
-
DraggableSnapshotService,
|
|
11127
|
-
GlobalDragModeService,
|
|
11128
|
-
DomAdapter,
|
|
11129
|
-
],
|
|
11130
|
-
host: { '[class.draggable]': 'true', '[class.being-dragged]': 'dragOn' },
|
|
11131
|
-
}]
|
|
11132
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: DragEventListenerService }, { type: DragHandleRegistrarService }, { type: i0.ViewContainerRef }, { type: i0.ComponentFactoryResolver }, { type: i0.Injector }, { type: DraggableSnapshotService }, { type: GlobalDragModeService }]; }, propDecorators: { customGhost: [{
|
|
11133
|
-
type: ContentChild,
|
|
11134
|
-
args: [ClrIfDragged]
|
|
11135
|
-
}], dataTransfer: [{
|
|
11136
|
-
type: Input,
|
|
11137
|
-
args: ['clrDraggable']
|
|
11138
|
-
}], group: [{
|
|
11139
|
-
type: Input,
|
|
11140
|
-
args: ['clrGroup']
|
|
11141
|
-
}], dragStartDelay: [{
|
|
11142
|
-
type: Input,
|
|
11143
|
-
args: ['clrDragStartDelay']
|
|
11144
|
-
}], dragStartEmitter: [{
|
|
11145
|
-
type: Output,
|
|
11146
|
-
args: ['clrDragStart']
|
|
11147
|
-
}], dragMoveEmitter: [{
|
|
11148
|
-
type: Output,
|
|
11149
|
-
args: ['clrDragMove']
|
|
11150
|
-
}], dragEndEmitter: [{
|
|
11151
|
-
type: Output,
|
|
11152
|
-
args: ['clrDragEnd']
|
|
11153
|
-
}] } });
|
|
11154
|
-
|
|
11155
|
-
/*
|
|
11156
|
-
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
11157
|
-
* This software is released under MIT license.
|
|
11158
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
11159
|
-
*/
|
|
11160
|
-
class ClrDroppable {
|
|
11161
|
-
constructor(el, eventBus, domAdapter, renderer) {
|
|
11162
|
-
this.el = el;
|
|
11163
|
-
this.eventBus = eventBus;
|
|
11164
|
-
this.domAdapter = domAdapter;
|
|
11165
|
-
this.renderer = renderer;
|
|
11166
|
-
this.isDraggableMatch = false;
|
|
11167
|
-
this._isDraggableOver = false;
|
|
11168
|
-
this._dropTolerance = { top: 0, right: 0, bottom: 0, left: 0 };
|
|
11169
|
-
this.dragStartEmitter = new EventEmitter();
|
|
11170
|
-
this.dragMoveEmitter = new EventEmitter();
|
|
11171
|
-
this.dragEndEmitter = new EventEmitter();
|
|
11172
|
-
this.dragLeaveEmitter = new EventEmitter();
|
|
11173
|
-
this.dragEnterEmitter = new EventEmitter();
|
|
11174
|
-
this.dropEmitter = new EventEmitter();
|
|
11175
|
-
this.droppableEl = this.el.nativeElement;
|
|
11176
|
-
}
|
|
11177
|
-
set isDraggableOver(value) {
|
|
11178
|
-
// We need to add/remove this draggable-over class via Renderer2
|
|
11179
|
-
// because isDraggableOver is set outside of NgZone.
|
|
11180
|
-
if (value) {
|
|
11181
|
-
this.renderer.addClass(this.droppableEl, 'draggable-over');
|
|
11182
|
-
}
|
|
11183
|
-
else {
|
|
11184
|
-
this.renderer.removeClass(this.droppableEl, 'draggable-over');
|
|
11185
|
-
}
|
|
11186
|
-
this._isDraggableOver = value;
|
|
11187
|
-
}
|
|
11188
|
-
set group(value) {
|
|
11189
|
-
this._group = value;
|
|
11190
|
-
}
|
|
11191
|
-
dropToleranceGenerator(top = 0, right = top, bottom = top, left = right) {
|
|
11192
|
-
return { top, right, bottom, left };
|
|
11193
|
-
}
|
|
11194
|
-
set dropTolerance(value) {
|
|
11195
|
-
// If user provides an object here and wants to manipulate/update properties individually,
|
|
11196
|
-
// the object must be immutable as we generate new object based user's given object.
|
|
11197
|
-
if (typeof value === 'number') {
|
|
11198
|
-
this._dropTolerance = this.dropToleranceGenerator(value);
|
|
11199
|
-
}
|
|
11200
|
-
else if (typeof value === 'string') {
|
|
11201
|
-
const toleranceValues = value
|
|
11202
|
-
.trim()
|
|
11203
|
-
.split(/\s+/)
|
|
11204
|
-
.map(tolerance => parseInt(tolerance, 10));
|
|
11205
|
-
this._dropTolerance = this.dropToleranceGenerator(...toleranceValues);
|
|
11206
|
-
}
|
|
11207
|
-
else if (value) {
|
|
11208
|
-
// The value could be passed in as {left: 20, top: 30 }
|
|
11209
|
-
// In this case, the rest of the direction properties should be 0.
|
|
11210
|
-
// That's why we initialize properties with 0 first, then override with user's given value.
|
|
11211
|
-
this._dropTolerance = { ...this.dropToleranceGenerator(0), ...value };
|
|
11212
|
-
}
|
|
11213
|
-
}
|
|
11214
|
-
unsubscribeFrom(subscription) {
|
|
11215
|
-
if (subscription) {
|
|
11216
|
-
subscription.unsubscribe();
|
|
11217
|
-
}
|
|
11218
|
-
}
|
|
11219
|
-
checkGroupMatch(draggableGroup) {
|
|
11220
|
-
// Both Draggable and Droppable have clrGroup input.
|
|
11221
|
-
// The clrGroup input can be both a string key or array of string keys in Draggable and Droppable.
|
|
11222
|
-
// It's not match if Draggable has no defined value assigned to clrGroup, but Droppable has a defined clrGroup.
|
|
11223
|
-
if (!draggableGroup && this._group) {
|
|
11224
|
-
return false;
|
|
11225
|
-
}
|
|
11226
|
-
// The same is true the other way round.
|
|
11227
|
-
if (!this._group && draggableGroup) {
|
|
11228
|
-
return false;
|
|
11229
|
-
}
|
|
11230
|
-
// It's match if both Draggable and Droppable have no assigned value for clrGroup.
|
|
11231
|
-
if (!this._group && !draggableGroup) {
|
|
11232
|
-
return true;
|
|
11233
|
-
}
|
|
11234
|
-
// It's match if both Draggable and Droppable have simple string keys that are matching.
|
|
11235
|
-
// It's match if Draggable's simple clrGroup key is matching with one of the clrGroup keys of Droppable. The
|
|
11236
|
-
// same is true the other way round.
|
|
11237
|
-
// it's match if one of the clrGroup keys of Droppable is matching with one of the clrGroup keys of Draggable.
|
|
11238
|
-
if (typeof draggableGroup === 'string') {
|
|
11239
|
-
if (typeof this._group === 'string') {
|
|
11240
|
-
return this._group === draggableGroup;
|
|
11241
|
-
}
|
|
11242
|
-
else {
|
|
11243
|
-
return this._group.indexOf(draggableGroup) > -1;
|
|
11244
|
-
}
|
|
11245
|
-
}
|
|
11246
|
-
else {
|
|
11247
|
-
if (typeof this._group === 'string') {
|
|
11248
|
-
return draggableGroup.indexOf(this._group) > -1;
|
|
11249
|
-
}
|
|
11250
|
-
else {
|
|
11251
|
-
return this._group.some(groupKey => draggableGroup.indexOf(groupKey) > -1);
|
|
11252
|
-
}
|
|
11253
|
-
}
|
|
11254
|
-
}
|
|
11255
|
-
isInDropArea(point) {
|
|
11256
|
-
if (!point) {
|
|
11257
|
-
return false;
|
|
11258
|
-
}
|
|
11259
|
-
if (!this.clientRect) {
|
|
11260
|
-
this.clientRect = this.domAdapter.clientRect(this.droppableEl);
|
|
11261
|
-
}
|
|
11262
|
-
if (point.pageX >= this.clientRect.left - this._dropTolerance.left &&
|
|
11263
|
-
point.pageX <= this.clientRect.right + this._dropTolerance.right &&
|
|
11264
|
-
point.pageY >= this.clientRect.top - this._dropTolerance.top &&
|
|
11265
|
-
point.pageY <= this.clientRect.bottom + this._dropTolerance.bottom) {
|
|
11266
|
-
return true;
|
|
11267
|
-
}
|
|
11268
|
-
else {
|
|
11269
|
-
return false;
|
|
11270
|
-
}
|
|
11271
|
-
}
|
|
11272
|
-
onDragStart(dragStartEvent) {
|
|
11273
|
-
// Check draggable and droppable have a matching group key.
|
|
11274
|
-
this.isDraggableMatch = this.checkGroupMatch(dragStartEvent.group);
|
|
11275
|
-
// Subscribe to dragMoved and dragEnded only if draggable and droppable have a matching group key.
|
|
11276
|
-
if (this.isDraggableMatch) {
|
|
11277
|
-
this.dragStartEmitter.emit(new ClrDragEvent(dragStartEvent));
|
|
11278
|
-
this.dragMoveSubscription = this.eventBus.dragMoved.subscribe((dragMoveEvent) => {
|
|
11279
|
-
this.onDragMove(dragMoveEvent);
|
|
11280
|
-
});
|
|
11281
|
-
this.dragEndSubscription = this.eventBus.dragEnded.subscribe((dragEndEvent) => {
|
|
11282
|
-
this.onDragEnd(dragEndEvent);
|
|
11283
|
-
});
|
|
11284
|
-
}
|
|
11285
|
-
}
|
|
11286
|
-
onDragMove(dragMoveEvent) {
|
|
11287
|
-
const isInDropArea = this.isInDropArea(dragMoveEvent.dropPointPosition);
|
|
11288
|
-
if (!this._isDraggableOver && isInDropArea) {
|
|
11289
|
-
this.isDraggableOver = true;
|
|
11290
|
-
const dragEnterEvent = { ...dragMoveEvent, type: DragEventType.DRAG_ENTER };
|
|
11291
|
-
this.eventBus.broadcast(dragEnterEvent);
|
|
11292
|
-
this.dragEnterEmitter.emit(new ClrDragEvent(dragEnterEvent));
|
|
11293
|
-
}
|
|
11294
|
-
else if (this._isDraggableOver && !isInDropArea) {
|
|
11295
|
-
this.isDraggableOver = false;
|
|
11296
|
-
const dragLeaveEvent = { ...dragMoveEvent, type: DragEventType.DRAG_LEAVE };
|
|
11297
|
-
this.eventBus.broadcast(dragLeaveEvent);
|
|
11298
|
-
this.dragLeaveEmitter.emit(new ClrDragEvent(dragLeaveEvent));
|
|
11299
|
-
}
|
|
11300
|
-
this.dragMoveEmitter.emit(new ClrDragEvent(dragMoveEvent));
|
|
11301
|
-
}
|
|
11302
|
-
onDragEnd(dragEndEvent) {
|
|
11303
|
-
if (this._isDraggableOver) {
|
|
11304
|
-
if (dragEndEvent.ghostElement) {
|
|
11305
|
-
// By this point, the draggable ghost component is destroyed,
|
|
11306
|
-
// but the element would be active until its animation completes.
|
|
11307
|
-
// As such, once the ghost is dropped over, we will give it "dropped" class.
|
|
11308
|
-
// This process cannot be done in the ghost component
|
|
11309
|
-
// because any subscription to the drop event is ineffective or invalid
|
|
11310
|
-
// as the component had been already destroyed.
|
|
11311
|
-
this.renderer.addClass(dragEndEvent.ghostElement, 'dropped');
|
|
11312
|
-
}
|
|
11313
|
-
const dropEvent = { ...dragEndEvent, type: DragEventType.DROP };
|
|
11314
|
-
this.eventBus.broadcast(dropEvent);
|
|
11315
|
-
this.dropEmitter.emit(new ClrDragEvent(dropEvent));
|
|
11316
|
-
this.isDraggableOver = false;
|
|
11317
|
-
}
|
|
11318
|
-
this.dragEndEmitter.emit(new ClrDragEvent(dragEndEvent));
|
|
11319
|
-
this.unsubscribeFrom(this.dragMoveSubscription);
|
|
11320
|
-
this.unsubscribeFrom(this.dragEndSubscription);
|
|
11321
|
-
this.isDraggableMatch = false;
|
|
11322
|
-
delete this.clientRect;
|
|
10232
|
+
return { value: this.clrExpandTrigger, params: { startHeight: this.startHeight } };
|
|
11323
10233
|
}
|
|
11324
|
-
|
|
11325
|
-
|
|
11326
|
-
|
|
11327
|
-
|
|
10234
|
+
animationDone() {
|
|
10235
|
+
// A "safe" auto-update of the height ensuring basic OOTB user experience .
|
|
10236
|
+
// Prone to small jumps in initial animation height if data was changed in the meantime, window was resized, etc.
|
|
10237
|
+
// For optimal behavior call manually updateStartHeight() from the parent component before initiating the update.
|
|
10238
|
+
this.updateStartHeight();
|
|
11328
10239
|
}
|
|
11329
|
-
|
|
11330
|
-
this.
|
|
11331
|
-
this.unsubscribeFrom(this.dragMoveSubscription);
|
|
11332
|
-
this.unsubscribeFrom(this.dragEndSubscription);
|
|
10240
|
+
updateStartHeight() {
|
|
10241
|
+
this.startHeight = this.domAdapter.computedHeight(this.element.nativeElement) || 0;
|
|
11333
10242
|
}
|
|
11334
10243
|
}
|
|
11335
|
-
|
|
11336
|
-
|
|
11337
|
-
|
|
11338
|
-
|
|
11339
|
-
|
|
11340
|
-
|
|
11341
|
-
|
|
11342
|
-
|
|
11343
|
-
|
|
11344
|
-
|
|
11345
|
-
|
|
11346
|
-
|
|
11347
|
-
|
|
11348
|
-
|
|
11349
|
-
|
|
11350
|
-
|
|
11351
|
-
|
|
11352
|
-
|
|
11353
|
-
|
|
11354
|
-
|
|
11355
|
-
|
|
11356
|
-
}],
|
|
11357
|
-
type:
|
|
11358
|
-
args: ['
|
|
11359
|
-
}],
|
|
11360
|
-
type:
|
|
11361
|
-
args: ['
|
|
11362
|
-
}], dragEnterEmitter: [{
|
|
11363
|
-
type: Output,
|
|
11364
|
-
args: ['clrDragEnter']
|
|
11365
|
-
}], dropEmitter: [{
|
|
11366
|
-
type: Output,
|
|
11367
|
-
args: ['clrDrop']
|
|
10244
|
+
ClrExpandableAnimation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrExpandableAnimation, deps: [{ token: i0.ElementRef }, { token: DomAdapter }], target: i0.ɵɵFactoryTarget.Component });
|
|
10245
|
+
ClrExpandableAnimation.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.2", type: ClrExpandableAnimation, selector: "clr-expandable-animation", inputs: { clrExpandTrigger: "clrExpandTrigger" }, host: { listeners: { "@expandAnimation.done": "animationDone()" }, properties: { "@expandAnimation": "this.expandAnimation" } }, providers: [DomAdapter], ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, styles: [":host{display:block}\n"], animations: [
|
|
10246
|
+
trigger('expandAnimation', [
|
|
10247
|
+
transition('true <=> false', [
|
|
10248
|
+
style({ height: '{{startHeight}}px', overflow: 'hidden' }),
|
|
10249
|
+
animate('0.2s ease-in-out', style({ height: '*' })),
|
|
10250
|
+
]),
|
|
10251
|
+
]),
|
|
10252
|
+
] });
|
|
10253
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrExpandableAnimation, decorators: [{
|
|
10254
|
+
type: Component,
|
|
10255
|
+
args: [{ selector: 'clr-expandable-animation', template: `<ng-content></ng-content>`, animations: [
|
|
10256
|
+
trigger('expandAnimation', [
|
|
10257
|
+
transition('true <=> false', [
|
|
10258
|
+
style({ height: '{{startHeight}}px', overflow: 'hidden' }),
|
|
10259
|
+
animate('0.2s ease-in-out', style({ height: '*' })),
|
|
10260
|
+
]),
|
|
10261
|
+
]),
|
|
10262
|
+
], providers: [DomAdapter], styles: [":host{display:block}\n"] }]
|
|
10263
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: DomAdapter }]; }, propDecorators: { clrExpandTrigger: [{
|
|
10264
|
+
type: Input
|
|
10265
|
+
}], expandAnimation: [{
|
|
10266
|
+
type: HostBinding,
|
|
10267
|
+
args: ['@expandAnimation']
|
|
10268
|
+
}], animationDone: [{
|
|
10269
|
+
type: HostListener,
|
|
10270
|
+
args: ['@expandAnimation.done']
|
|
11368
10271
|
}] } });
|
|
11369
10272
|
|
|
11370
10273
|
/*
|
|
@@ -11372,32 +10275,58 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImpor
|
|
|
11372
10275
|
* This software is released under MIT license.
|
|
11373
10276
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
11374
10277
|
*/
|
|
11375
|
-
const
|
|
11376
|
-
|
|
11377
|
-
|
|
11378
|
-
|
|
11379
|
-
|
|
11380
|
-
|
|
11381
|
-
|
|
11382
|
-
class
|
|
11383
|
-
}
|
|
11384
|
-
|
|
11385
|
-
|
|
11386
|
-
|
|
11387
|
-
|
|
11388
|
-
ClrDragHandle,
|
|
11389
|
-
ClrDraggableGhost], imports: [CommonModule], exports: [ClrDraggable,
|
|
11390
|
-
ClrDroppable,
|
|
11391
|
-
ClrIfDragged,
|
|
11392
|
-
ClrDragHandle,
|
|
11393
|
-
ClrDraggableGhost] });
|
|
11394
|
-
ClrDragAndDropModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrDragAndDropModule, imports: [CommonModule] });
|
|
11395
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrDragAndDropModule, decorators: [{
|
|
10278
|
+
const EXPANDABLE_ANIMATION_DIRECTIVES = [ClrExpandableAnimation];
|
|
10279
|
+
|
|
10280
|
+
/*
|
|
10281
|
+
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
10282
|
+
* This software is released under MIT license.
|
|
10283
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
10284
|
+
*/
|
|
10285
|
+
class ClrExpandableAnimationModule {
|
|
10286
|
+
}
|
|
10287
|
+
ClrExpandableAnimationModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrExpandableAnimationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
10288
|
+
ClrExpandableAnimationModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.2", ngImport: i0, type: ClrExpandableAnimationModule, declarations: [ClrExpandableAnimation], imports: [CommonModule], exports: [ClrExpandableAnimation] });
|
|
10289
|
+
ClrExpandableAnimationModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrExpandableAnimationModule, imports: [CommonModule] });
|
|
10290
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrExpandableAnimationModule, decorators: [{
|
|
11396
10291
|
type: NgModule,
|
|
11397
10292
|
args: [{
|
|
11398
10293
|
imports: [CommonModule],
|
|
11399
|
-
declarations: [
|
|
11400
|
-
exports: [
|
|
10294
|
+
declarations: [EXPANDABLE_ANIMATION_DIRECTIVES],
|
|
10295
|
+
exports: [EXPANDABLE_ANIMATION_DIRECTIVES],
|
|
10296
|
+
}]
|
|
10297
|
+
}] });
|
|
10298
|
+
|
|
10299
|
+
/*
|
|
10300
|
+
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
10301
|
+
* This software is released under MIT license.
|
|
10302
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
10303
|
+
*/
|
|
10304
|
+
/**
|
|
10305
|
+
* This is just a copy of CdkDrag so it can be used independent of the rest of the CdkDragDropModule.
|
|
10306
|
+
*/
|
|
10307
|
+
class CdkDragModule_CdkDrag extends CdkDrag {
|
|
10308
|
+
}
|
|
10309
|
+
CdkDragModule_CdkDrag.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: CdkDragModule_CdkDrag, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
10310
|
+
CdkDragModule_CdkDrag.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.2", type: CdkDragModule_CdkDrag, selector: "[cdkDrag]", usesInheritance: true, ngImport: i0 });
|
|
10311
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: CdkDragModule_CdkDrag, decorators: [{
|
|
10312
|
+
type: Directive,
|
|
10313
|
+
args: [{
|
|
10314
|
+
selector: '[cdkDrag]',
|
|
10315
|
+
}]
|
|
10316
|
+
}] });
|
|
10317
|
+
/**
|
|
10318
|
+
* This module allows us to avoid importing all of CdkDragDropModule which results in a smaller application bundle.
|
|
10319
|
+
*/
|
|
10320
|
+
class CdkDragModule {
|
|
10321
|
+
}
|
|
10322
|
+
CdkDragModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: CdkDragModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
10323
|
+
CdkDragModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.2", ngImport: i0, type: CdkDragModule, declarations: [CdkDragModule_CdkDrag], exports: [CdkDragModule_CdkDrag] });
|
|
10324
|
+
CdkDragModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: CdkDragModule });
|
|
10325
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: CdkDragModule, decorators: [{
|
|
10326
|
+
type: NgModule,
|
|
10327
|
+
args: [{
|
|
10328
|
+
declarations: [CdkDragModule_CdkDrag],
|
|
10329
|
+
exports: [CdkDragModule_CdkDrag],
|
|
11401
10330
|
}]
|
|
11402
10331
|
}] });
|
|
11403
10332
|
|
|
@@ -12054,7 +10983,7 @@ ClrDatagridFilter.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", vers
|
|
|
12054
10983
|
<div
|
|
12055
10984
|
class="datagrid-filter"
|
|
12056
10985
|
[id]="popoverId"
|
|
12057
|
-
|
|
10986
|
+
cdkTrapFocus
|
|
12058
10987
|
*clrPopoverContent="open; at: smartPosition; outsideClickToClose: true; scrollToClose: true"
|
|
12059
10988
|
role="dialog"
|
|
12060
10989
|
[attr.aria-label]="commonStrings.keys.datagridFilterDialogAriaLabel"
|
|
@@ -12067,7 +10996,7 @@ ClrDatagridFilter.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", vers
|
|
|
12067
10996
|
|
|
12068
10997
|
<ng-content></ng-content>
|
|
12069
10998
|
</div>
|
|
12070
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: CdsIconCustomTag, selector: "cds-icon" }, { kind: "directive", type: ClrPopoverAnchor, selector: "[clrPopoverAnchor]" }, { kind: "directive", type: ClrPopoverCloseButton, selector: "[clrPopoverCloseButton]", outputs: ["clrPopoverOnCloseChange"] }, { kind: "directive", type: ClrPopoverOpenCloseButton, selector: "[clrPopoverOpenCloseButton]", outputs: ["clrPopoverOpenCloseChange"] }, { kind: "directive", type: ClrPopoverContent, selector: "[clrPopoverContent]", inputs: ["clrPopoverContent", "clrPopoverContentAt", "clrPopoverContentOutsideClickToClose", "clrPopoverContentScrollToClose"] }
|
|
10999
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: CdkTrapFocusModule_CdkTrapFocus, selector: "[cdkTrapFocus]" }, { kind: "directive", type: CdsIconCustomTag, selector: "cds-icon" }, { kind: "directive", type: ClrPopoverAnchor, selector: "[clrPopoverAnchor]" }, { kind: "directive", type: ClrPopoverCloseButton, selector: "[clrPopoverCloseButton]", outputs: ["clrPopoverOnCloseChange"] }, { kind: "directive", type: ClrPopoverOpenCloseButton, selector: "[clrPopoverOpenCloseButton]", outputs: ["clrPopoverOpenCloseChange"] }, { kind: "directive", type: ClrPopoverContent, selector: "[clrPopoverContent]", inputs: ["clrPopoverContent", "clrPopoverContentAt", "clrPopoverContentOutsideClickToClose", "clrPopoverContentScrollToClose"] }] });
|
|
12071
11000
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrDatagridFilter, decorators: [{
|
|
12072
11001
|
type: Component,
|
|
12073
11002
|
args: [{
|
|
@@ -12097,7 +11026,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImpor
|
|
|
12097
11026
|
<div
|
|
12098
11027
|
class="datagrid-filter"
|
|
12099
11028
|
[id]="popoverId"
|
|
12100
|
-
|
|
11029
|
+
cdkTrapFocus
|
|
12101
11030
|
*clrPopoverContent="open; at: smartPosition; outsideClickToClose: true; scrollToClose: true"
|
|
12102
11031
|
role="dialog"
|
|
12103
11032
|
[attr.aria-label]="commonStrings.keys.datagridFilterDialogAriaLabel"
|
|
@@ -13252,8 +12181,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImpor
|
|
|
13252
12181
|
// Default resize length on each keyboard move event
|
|
13253
12182
|
const KEYBOARD_RESIZE_LENGTH = 12;
|
|
13254
12183
|
class ClrDatagridColumnSeparator {
|
|
13255
|
-
// Every column draggable separator should have its own unique ID
|
|
13256
|
-
// in order to not conflict with other draggables/droppables.
|
|
13257
12184
|
constructor(columnResizerService, renderer, ngZone, tableSizeService, commonString, document) {
|
|
13258
12185
|
this.columnResizerService = columnResizerService;
|
|
13259
12186
|
this.renderer = renderer;
|
|
@@ -13301,6 +12228,7 @@ class ClrDatagridColumnSeparator {
|
|
|
13301
12228
|
this.columnResizerService.endResize();
|
|
13302
12229
|
this.renderer.setStyle(this.resizeTrackerEl, 'display', 'none');
|
|
13303
12230
|
this.renderer.setStyle(this.resizeTrackerEl, 'transform', `translateX(0px)`);
|
|
12231
|
+
this.renderer.setStyle(this.columnHandleEl, 'transform', `translateX(0px)`);
|
|
13304
12232
|
this.renderer.setStyle(this.document.body, 'cursor', 'auto');
|
|
13305
12233
|
}
|
|
13306
12234
|
showTrackerOnFirstKeyDown(event) {
|
|
@@ -13312,9 +12240,11 @@ class ClrDatagridColumnSeparator {
|
|
|
13312
12240
|
}
|
|
13313
12241
|
moveTrackerOnKeyDown(event) {
|
|
13314
12242
|
if (this.isArrowLeftKeyEvent(event)) {
|
|
12243
|
+
event.stopPropagation();
|
|
13315
12244
|
this.moveTracker(this.columnResizerService.resizedBy - KEYBOARD_RESIZE_LENGTH);
|
|
13316
12245
|
}
|
|
13317
12246
|
else if (this.isArrowRightKeyEvent(event)) {
|
|
12247
|
+
event.stopPropagation();
|
|
13318
12248
|
this.moveTracker(this.columnResizerService.resizedBy + KEYBOARD_RESIZE_LENGTH);
|
|
13319
12249
|
}
|
|
13320
12250
|
}
|
|
@@ -13354,18 +12284,18 @@ ClrDatagridColumnSeparator.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0
|
|
|
13354
12284
|
class="datagrid-column-handle"
|
|
13355
12285
|
[attr.aria-label]="commonString.keys.columnSeparatorAriaLabel"
|
|
13356
12286
|
[attr.aria-describedby]="descriptionId"
|
|
13357
|
-
|
|
13358
|
-
|
|
13359
|
-
(
|
|
13360
|
-
(
|
|
13361
|
-
(
|
|
12287
|
+
cdkDrag
|
|
12288
|
+
cdkDragLockAxis="x"
|
|
12289
|
+
(cdkDragStarted)="showTracker()"
|
|
12290
|
+
(cdkDragMoved)="moveTracker($event.distance.x)"
|
|
12291
|
+
(cdkDragEnded)="hideTracker(); $event.source._dragRef.reset()"
|
|
13362
12292
|
#columnHandle
|
|
13363
12293
|
></button>
|
|
13364
12294
|
<span class="clr-sr-only" [attr.id]="descriptionId">
|
|
13365
12295
|
{{ commonString.keys.columnSeparatorDescription }}
|
|
13366
12296
|
</span>
|
|
13367
12297
|
<div class="datagrid-column-resize-tracker" #resizeTracker></div>
|
|
13368
|
-
`, isInline: true, dependencies: [{ kind: "directive", type:
|
|
12298
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: CdkDragModule_CdkDrag, selector: "[cdkDrag]" }] });
|
|
13369
12299
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrDatagridColumnSeparator, decorators: [{
|
|
13370
12300
|
type: Component,
|
|
13371
12301
|
args: [{
|
|
@@ -13376,11 +12306,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImpor
|
|
|
13376
12306
|
class="datagrid-column-handle"
|
|
13377
12307
|
[attr.aria-label]="commonString.keys.columnSeparatorAriaLabel"
|
|
13378
12308
|
[attr.aria-describedby]="descriptionId"
|
|
13379
|
-
|
|
13380
|
-
|
|
13381
|
-
(
|
|
13382
|
-
(
|
|
13383
|
-
(
|
|
12309
|
+
cdkDrag
|
|
12310
|
+
cdkDragLockAxis="x"
|
|
12311
|
+
(cdkDragStarted)="showTracker()"
|
|
12312
|
+
(cdkDragMoved)="moveTracker($event.distance.x)"
|
|
12313
|
+
(cdkDragEnded)="hideTracker(); $event.source._dragRef.reset()"
|
|
13384
12314
|
#columnHandle
|
|
13385
12315
|
></button>
|
|
13386
12316
|
<span class="clr-sr-only" [attr.id]="descriptionId">
|
|
@@ -13427,18 +12357,6 @@ class ClrDatagridColumn extends DatagridFilterRegistrar {
|
|
|
13427
12357
|
* via the [clrDgColType] input by setting it to 'string' or 'number'.
|
|
13428
12358
|
*/
|
|
13429
12359
|
this._colType = 'string';
|
|
13430
|
-
// deprecated: to be removed - START
|
|
13431
|
-
/**
|
|
13432
|
-
* Indicates if the column is currently sorted
|
|
13433
|
-
*
|
|
13434
|
-
* @deprecated This will be removed soon, in favor of the sortOrder mechanism
|
|
13435
|
-
*/
|
|
13436
|
-
this._sorted = false;
|
|
13437
|
-
/**
|
|
13438
|
-
* @deprecated This will be removed soon, in favor of the sortOrder mechanism
|
|
13439
|
-
*/
|
|
13440
|
-
this.sortedChange = new EventEmitter();
|
|
13441
|
-
// deprecated: to be removed - END
|
|
13442
12360
|
/**
|
|
13443
12361
|
* Indicates how the column is currently sorted
|
|
13444
12362
|
*/
|
|
@@ -13474,16 +12392,8 @@ class ClrDatagridColumn extends DatagridFilterRegistrar {
|
|
|
13474
12392
|
if (this.sortOrder !== ClrDatagridSortOrder.UNSORTED && sort.comparator !== this._sortBy) {
|
|
13475
12393
|
this._sortOrder = ClrDatagridSortOrder.UNSORTED;
|
|
13476
12394
|
this.sortOrderChange.emit(this._sortOrder);
|
|
13477
|
-
// removes the sortIcon when column becomes unsorted
|
|
13478
|
-
this.sortIcon = null;
|
|
13479
12395
|
this._sortDirection = null;
|
|
13480
12396
|
}
|
|
13481
|
-
// deprecated: to be removed - START
|
|
13482
|
-
if (this.sorted && sort.comparator !== this._sortBy) {
|
|
13483
|
-
this._sorted = false;
|
|
13484
|
-
this.sortedChange.emit(false);
|
|
13485
|
-
}
|
|
13486
|
-
// deprecated: to be removed - END
|
|
13487
12397
|
});
|
|
13488
12398
|
}
|
|
13489
12399
|
get colType() {
|
|
@@ -13560,21 +12470,6 @@ class ClrDatagridColumn extends DatagridFilterRegistrar {
|
|
|
13560
12470
|
get sortable() {
|
|
13561
12471
|
return !!this._sortBy;
|
|
13562
12472
|
}
|
|
13563
|
-
get sorted() {
|
|
13564
|
-
return this._sorted;
|
|
13565
|
-
}
|
|
13566
|
-
/**
|
|
13567
|
-
* @deprecated This will be removed soon, in favor of the sortOrder mechanism
|
|
13568
|
-
*/
|
|
13569
|
-
set sorted(value) {
|
|
13570
|
-
if (!value && this.sorted) {
|
|
13571
|
-
this._sorted = false;
|
|
13572
|
-
this._sort.clear();
|
|
13573
|
-
}
|
|
13574
|
-
else if (value && !this.sorted) {
|
|
13575
|
-
this.sort();
|
|
13576
|
-
}
|
|
13577
|
-
}
|
|
13578
12473
|
get sortOrder() {
|
|
13579
12474
|
return this._sortOrder;
|
|
13580
12475
|
}
|
|
@@ -13626,12 +12521,7 @@ class ClrDatagridColumn extends DatagridFilterRegistrar {
|
|
|
13626
12521
|
this._sortOrder = this._sort.reverse ? ClrDatagridSortOrder.DESC : ClrDatagridSortOrder.ASC;
|
|
13627
12522
|
// Sets the correct icon for current sort order
|
|
13628
12523
|
this._sortDirection = this._sortOrder === ClrDatagridSortOrder.DESC ? 'down' : 'up';
|
|
13629
|
-
this.sortIcon = this._sortOrder === ClrDatagridSortOrder.DESC ? 'arrow down' : 'arrow'; // Backward compatibility
|
|
13630
12524
|
this.sortOrderChange.emit(this._sortOrder);
|
|
13631
|
-
// deprecated: to be removed - START
|
|
13632
|
-
this._sorted = true;
|
|
13633
|
-
this.sortedChange.emit(true);
|
|
13634
|
-
// deprecated: to be removed - END
|
|
13635
12525
|
}
|
|
13636
12526
|
set projectedFilter(custom) {
|
|
13637
12527
|
if (custom) {
|
|
@@ -13699,7 +12589,7 @@ class ClrDatagridColumn extends DatagridFilterRegistrar {
|
|
|
13699
12589
|
}
|
|
13700
12590
|
}
|
|
13701
12591
|
ClrDatagridColumn.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrDatagridColumn, deps: [{ token: Sort }, { token: FiltersProvider }, { token: i0.ViewContainerRef }, { token: DetailService }, { token: i0.ChangeDetectorRef }, { token: ClrCommonStringsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
13702
|
-
ClrDatagridColumn.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.2", type: ClrDatagridColumn, selector: "clr-dg-column", inputs: { colType: ["clrDgColType", "colType"], field: ["clrDgField", "field"], sortBy: ["clrDgSortBy", "sortBy"],
|
|
12592
|
+
ClrDatagridColumn.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.2", type: ClrDatagridColumn, selector: "clr-dg-column", inputs: { colType: ["clrDgColType", "colType"], field: ["clrDgField", "field"], sortBy: ["clrDgSortBy", "sortBy"], sortOrder: ["clrDgSortOrder", "sortOrder"], filterStringPlaceholder: ["clrFilterStringPlaceholder", "filterStringPlaceholder"], filterNumberMaxPlaceholder: ["clrFilterNumberMaxPlaceholder", "filterNumberMaxPlaceholder"], filterNumberMinPlaceholder: ["clrFilterNumberMinPlaceholder", "filterNumberMinPlaceholder"], updateFilterValue: ["clrFilterValue", "updateFilterValue"] }, outputs: { sortOrderChange: "clrDgSortOrderChange", filterValueChange: "clrFilterValueChange" }, host: { attributes: { "role": "columnheader" }, properties: { "class.datagrid-column": "true", "attr.aria-sort": "ariaSort" } }, providers: [ClrPopoverPositionService, ClrPopoverEventsService, ClrPopoverToggleService], queries: [{ propertyName: "projectedFilter", first: true, predicate: CustomFilter, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `
|
|
13703
12593
|
<div class="datagrid-column-flex">
|
|
13704
12594
|
<button class="datagrid-column-title" *ngIf="sortable" (click)="sort()" type="button">
|
|
13705
12595
|
<ng-container *ngTemplateOutlet="columnTitle"></ng-container>
|
|
@@ -13802,12 +12692,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImpor
|
|
|
13802
12692
|
}], sortBy: [{
|
|
13803
12693
|
type: Input,
|
|
13804
12694
|
args: ['clrDgSortBy']
|
|
13805
|
-
}], sorted: [{
|
|
13806
|
-
type: Input,
|
|
13807
|
-
args: ['clrDgSorted']
|
|
13808
|
-
}], sortedChange: [{
|
|
13809
|
-
type: Output,
|
|
13810
|
-
args: ['clrDgSortedChange']
|
|
13811
12695
|
}], sortOrder: [{
|
|
13812
12696
|
type: Input,
|
|
13813
12697
|
args: ['clrDgSortOrder']
|
|
@@ -15909,13 +14793,13 @@ ClrDatagridActionOverflow.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.
|
|
|
15909
14793
|
[attr.aria-hidden]="!open"
|
|
15910
14794
|
[attr.id]="popoverId"
|
|
15911
14795
|
clrKeyFocus
|
|
15912
|
-
|
|
14796
|
+
cdkTrapFocus
|
|
15913
14797
|
(click)="closeOverflowContent($event)"
|
|
15914
14798
|
*clrPopoverContent="open; at: smartPosition; outsideClickToClose: true; scrollToClose: true"
|
|
15915
14799
|
>
|
|
15916
14800
|
<ng-content></ng-content>
|
|
15917
14801
|
</div>
|
|
15918
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: CdsIconCustomTag, selector: "cds-icon" }, { kind: "directive", type: ClrPopoverAnchor, selector: "[clrPopoverAnchor]" }, { kind: "directive", type: ClrPopoverOpenCloseButton, selector: "[clrPopoverOpenCloseButton]", outputs: ["clrPopoverOpenCloseChange"] }, { kind: "directive", type: ClrPopoverContent, selector: "[clrPopoverContent]", inputs: ["clrPopoverContent", "clrPopoverContentAt", "clrPopoverContentOutsideClickToClose", "clrPopoverContentScrollToClose"] }, { kind: "component", type: ClrKeyFocus, selector: "[clrKeyFocus]", inputs: ["clrDirection", "clrFocusOnLoad", "clrKeyFocus"], outputs: ["clrFocusChange"] }
|
|
14802
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: CdkTrapFocusModule_CdkTrapFocus, selector: "[cdkTrapFocus]" }, { kind: "directive", type: CdsIconCustomTag, selector: "cds-icon" }, { kind: "directive", type: ClrPopoverAnchor, selector: "[clrPopoverAnchor]" }, { kind: "directive", type: ClrPopoverOpenCloseButton, selector: "[clrPopoverOpenCloseButton]", outputs: ["clrPopoverOpenCloseChange"] }, { kind: "directive", type: ClrPopoverContent, selector: "[clrPopoverContent]", inputs: ["clrPopoverContent", "clrPopoverContentAt", "clrPopoverContentOutsideClickToClose", "clrPopoverContentScrollToClose"] }, { kind: "component", type: ClrKeyFocus, selector: "[clrKeyFocus]", inputs: ["clrDirection", "clrFocusOnLoad", "clrKeyFocus"], outputs: ["clrFocusChange"] }] });
|
|
15919
14803
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrDatagridActionOverflow, decorators: [{
|
|
15920
14804
|
type: Component,
|
|
15921
14805
|
args: [{
|
|
@@ -15943,7 +14827,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImpor
|
|
|
15943
14827
|
[attr.aria-hidden]="!open"
|
|
15944
14828
|
[attr.id]="popoverId"
|
|
15945
14829
|
clrKeyFocus
|
|
15946
|
-
|
|
14830
|
+
cdkTrapFocus
|
|
15947
14831
|
(click)="closeOverflowContent($event)"
|
|
15948
14832
|
*clrPopoverContent="open; at: smartPosition; outsideClickToClose: true; scrollToClose: true"
|
|
15949
14833
|
>
|
|
@@ -16147,7 +15031,7 @@ ClrDatagridColumnToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
|
|
|
16147
15031
|
role="dialog"
|
|
16148
15032
|
[attr.aria-label]="commonStrings.keys.showColumnsMenuDescription"
|
|
16149
15033
|
[id]="popoverId"
|
|
16150
|
-
|
|
15034
|
+
cdkTrapFocus
|
|
16151
15035
|
*clrPopoverContent="openState; at: smartPosition; outsideClickToClose: true; scrollToClose: true"
|
|
16152
15036
|
>
|
|
16153
15037
|
<div class="switch-header">
|
|
@@ -16189,7 +15073,7 @@ ClrDatagridColumnToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
|
|
|
16189
15073
|
</clr-dg-column-toggle-button>
|
|
16190
15074
|
</div>
|
|
16191
15075
|
</div>
|
|
16192
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { 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: "directive", type: ClrLabel, selector: "label", inputs: ["for"] }, { kind: "directive", type: ClrCheckbox, selector: "[clrCheckbox],[clrToggle]" }, { kind: "component", type: ClrCheckboxWrapper, selector: "clr-checkbox-wrapper,clr-toggle-wrapper" }, { kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ClrPopoverAnchor, selector: "[clrPopoverAnchor]" }, { kind: "directive", type: ClrPopoverCloseButton, selector: "[clrPopoverCloseButton]", outputs: ["clrPopoverOnCloseChange"] }, { kind: "directive", type: ClrPopoverOpenCloseButton, selector: "[clrPopoverOpenCloseButton]", outputs: ["clrPopoverOpenCloseChange"] }, { kind: "directive", type: ClrPopoverContent, selector: "[clrPopoverContent]", inputs: ["clrPopoverContent", "clrPopoverContentAt", "clrPopoverContentOutsideClickToClose", "clrPopoverContentScrollToClose"] }, { kind: "directive", type:
|
|
15076
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { 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: CdkTrapFocusModule_CdkTrapFocus, selector: "[cdkTrapFocus]" }, { kind: "directive", type: CdsIconCustomTag, selector: "cds-icon" }, { kind: "directive", type: ClrLabel, selector: "label", inputs: ["for"] }, { kind: "directive", type: ClrCheckbox, selector: "[clrCheckbox],[clrToggle]" }, { kind: "component", type: ClrCheckboxWrapper, selector: "clr-checkbox-wrapper,clr-toggle-wrapper" }, { kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ClrPopoverAnchor, selector: "[clrPopoverAnchor]" }, { kind: "directive", type: ClrPopoverCloseButton, selector: "[clrPopoverCloseButton]", outputs: ["clrPopoverOnCloseChange"] }, { kind: "directive", type: ClrPopoverOpenCloseButton, selector: "[clrPopoverOpenCloseButton]", outputs: ["clrPopoverOpenCloseChange"] }, { kind: "directive", type: ClrPopoverContent, selector: "[clrPopoverContent]", inputs: ["clrPopoverContent", "clrPopoverContentAt", "clrPopoverContentOutsideClickToClose", "clrPopoverContentScrollToClose"] }, { kind: "directive", type: ClrDatagridItemsTrackBy, selector: "[ngForTrackBy]", inputs: ["ngForTrackBy"] }, { kind: "component", type: ClrDatagridColumnToggleButton, selector: "clr-dg-column-toggle-button", outputs: ["clrAllSelected"] }] });
|
|
16193
15077
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrDatagridColumnToggle, decorators: [{
|
|
16194
15078
|
type: Component,
|
|
16195
15079
|
args: [{
|
|
@@ -16212,7 +15096,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImpor
|
|
|
16212
15096
|
role="dialog"
|
|
16213
15097
|
[attr.aria-label]="commonStrings.keys.showColumnsMenuDescription"
|
|
16214
15098
|
[id]="popoverId"
|
|
16215
|
-
|
|
15099
|
+
cdkTrapFocus
|
|
16216
15100
|
*clrPopoverContent="openState; at: smartPosition; outsideClickToClose: true; scrollToClose: true"
|
|
16217
15101
|
>
|
|
16218
15102
|
<div class="switch-header">
|
|
@@ -16341,7 +15225,8 @@ class ClrDatagridDetail {
|
|
|
16341
15225
|
ClrDatagridDetail.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrDatagridDetail, deps: [{ token: DetailService }, { token: ClrCommonStringsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
16342
15226
|
ClrDatagridDetail.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.2", type: ClrDatagridDetail, selector: "clr-dg-detail", host: { listeners: { "document:keyup.esc": "closeCheck()" }, properties: { "class.datagrid-detail-pane": "true" } }, queries: [{ propertyName: "header", first: true, predicate: ClrDatagridDetailHeader, descendants: true }], ngImport: i0, template: `
|
|
16343
15227
|
<div
|
|
16344
|
-
|
|
15228
|
+
cdkTrapFocus
|
|
15229
|
+
[cdkTrapFocusAutoCapture]="true"
|
|
16345
15230
|
class="datagrid-detail-pane-content"
|
|
16346
15231
|
*ngIf="detailService.isOpen"
|
|
16347
15232
|
role="dialog"
|
|
@@ -16353,7 +15238,7 @@ ClrDatagridDetail.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", vers
|
|
|
16353
15238
|
<ng-content></ng-content>
|
|
16354
15239
|
<div class="clr-sr-only">{{ commonStrings.keys.detailPaneEnd }}</div>
|
|
16355
15240
|
</div>
|
|
16356
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type:
|
|
15241
|
+
`, isInline: true, dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: CdkTrapFocusModule_CdkTrapFocus, selector: "[cdkTrapFocus]" }] });
|
|
16357
15242
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrDatagridDetail, decorators: [{
|
|
16358
15243
|
type: Component,
|
|
16359
15244
|
args: [{
|
|
@@ -16361,11 +15246,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImpor
|
|
|
16361
15246
|
host: {
|
|
16362
15247
|
'[class.datagrid-detail-pane]': 'true',
|
|
16363
15248
|
},
|
|
16364
|
-
// We put the *ngIf on the
|
|
15249
|
+
// We put the *ngIf on the cdkTrapFocus so it doesn't always exist on the page
|
|
16365
15250
|
// have to test for presence of header for aria-describedby because it was causing unit tests to crash
|
|
16366
15251
|
template: `
|
|
16367
15252
|
<div
|
|
16368
|
-
|
|
15253
|
+
cdkTrapFocus
|
|
15254
|
+
[cdkTrapFocusAutoCapture]="true"
|
|
16369
15255
|
class="datagrid-detail-pane-content"
|
|
16370
15256
|
*ngIf="detailService.isOpen"
|
|
16371
15257
|
role="dialog"
|
|
@@ -16491,256 +15377,28 @@ function fade(opacity = 1) {
|
|
|
16491
15377
|
* This software is released under MIT license.
|
|
16492
15378
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
16493
15379
|
*/
|
|
16494
|
-
function fadeSlide(direction) {
|
|
16495
|
-
let transform = null;
|
|
16496
|
-
if (direction === 'up') {
|
|
16497
|
-
transform = 'translate(0, 25%)';
|
|
16498
|
-
}
|
|
16499
|
-
else if (direction === 'down') {
|
|
16500
|
-
transform = 'translate(0, -25%)';
|
|
16501
|
-
}
|
|
16502
|
-
else if (direction === 'left') {
|
|
16503
|
-
transform = 'translate(25%, 0)';
|
|
16504
|
-
}
|
|
16505
|
-
else if (direction === 'right') {
|
|
16506
|
-
transform = 'translate(-25%, 0)';
|
|
16507
|
-
}
|
|
16508
|
-
else {
|
|
16509
|
-
throw new Error('Unknown direction ' + direction + ' for slide animation.');
|
|
16510
|
-
}
|
|
16511
|
-
return [
|
|
16512
|
-
transition('void => *', [style({ opacity: 0, transform: transform }), animate(defaultAnimationTiming)]),
|
|
16513
|
-
transition('* => void', [animate(defaultAnimationTiming, style({ opacity: 0, transform: transform }))]),
|
|
16514
|
-
];
|
|
16515
|
-
}
|
|
16516
|
-
|
|
16517
|
-
/*
|
|
16518
|
-
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
16519
|
-
* This software is released under MIT license.
|
|
16520
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
16521
|
-
*/
|
|
16522
|
-
|
|
16523
|
-
/*
|
|
16524
|
-
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
16525
|
-
* This software is released under MIT license.
|
|
16526
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
16527
|
-
*/
|
|
16528
|
-
function slide(direction) {
|
|
16529
|
-
let transform = null;
|
|
16530
|
-
if (direction === 'up') {
|
|
16531
|
-
transform = 'translate(0, 25%)';
|
|
16532
|
-
}
|
|
16533
|
-
else if (direction === 'down') {
|
|
16534
|
-
transform = 'translate(0, -25%)';
|
|
16535
|
-
}
|
|
16536
|
-
else if (direction === 'left') {
|
|
16537
|
-
transform = 'translate(25%, 0)';
|
|
16538
|
-
}
|
|
16539
|
-
else if (direction === 'right') {
|
|
16540
|
-
transform = 'translate(-25%, 0)';
|
|
16541
|
-
}
|
|
16542
|
-
else {
|
|
16543
|
-
throw new Error('Unknown direction ' + direction + ' for slide animation.');
|
|
16544
|
-
}
|
|
16545
|
-
return [
|
|
16546
|
-
transition('void => *', [style({ transform: transform }), animate(defaultAnimationTiming)]),
|
|
16547
|
-
transition('* => void', [animate(defaultAnimationTiming, style({ transform: transform }))]),
|
|
16548
|
-
];
|
|
16549
|
-
}
|
|
16550
|
-
|
|
16551
|
-
/*
|
|
16552
|
-
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
16553
|
-
* This software is released under MIT license.
|
|
16554
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
16555
|
-
*/
|
|
16556
|
-
|
|
16557
|
-
/*
|
|
16558
|
-
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
16559
|
-
* This software is released under MIT license.
|
|
16560
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
16561
|
-
*/
|
|
16562
|
-
|
|
16563
|
-
/*
|
|
16564
|
-
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
16565
|
-
* This software is released under MIT license.
|
|
16566
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
16567
|
-
*/
|
|
16568
|
-
|
|
16569
|
-
/*
|
|
16570
|
-
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
16571
|
-
* This software is released under MIT license.
|
|
16572
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
16573
|
-
*/
|
|
16574
|
-
|
|
16575
|
-
/*
|
|
16576
|
-
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
16577
|
-
* This software is released under MIT license.
|
|
16578
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
16579
|
-
*/
|
|
16580
|
-
|
|
16581
|
-
/*
|
|
16582
|
-
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
16583
|
-
* This software is released under MIT license.
|
|
16584
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
16585
|
-
*/
|
|
16586
|
-
|
|
16587
|
-
/*
|
|
16588
|
-
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
16589
|
-
* This software is released under MIT license.
|
|
16590
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
16591
|
-
*/
|
|
16592
|
-
var ClrAriaLivePoliteness;
|
|
16593
|
-
(function (ClrAriaLivePoliteness) {
|
|
16594
|
-
ClrAriaLivePoliteness["off"] = "off";
|
|
16595
|
-
ClrAriaLivePoliteness["polite"] = "polite";
|
|
16596
|
-
ClrAriaLivePoliteness["assertive"] = "assertive";
|
|
16597
|
-
})(ClrAriaLivePoliteness || (ClrAriaLivePoliteness = {}));
|
|
16598
|
-
/**
|
|
16599
|
-
* Time in milliseconds before inserting the content into the container
|
|
16600
|
-
*/
|
|
16601
|
-
const ARIA_LIVE_TICK = 100;
|
|
16602
|
-
/**
|
|
16603
|
-
* @deprecated
|
|
16604
|
-
*
|
|
16605
|
-
* -- ClrAriaLiveService is deprecated in 5.0 to be removed in 6.0 --
|
|
16606
|
-
* Please consider using the LiveAnnouncer in the Angular Material CDK
|
|
16607
|
-
* if your project needs this functionality.
|
|
16608
|
-
* More info: https://material.angular.io/cdk/a11y/overview#example-1
|
|
16609
|
-
*
|
|
16610
|
-
* This service handle `aria-live` accessibility attribute. The issue is that you need
|
|
16611
|
-
* to have the DOM Element with attribute `aria-live` before you could insert content
|
|
16612
|
-
* and SR (Screen Reader) pick the change and announce it.
|
|
16613
|
-
*
|
|
16614
|
-
* ```typescript
|
|
16615
|
-
* import { ClrAriaLiveService } from 'src/clr-angular/utils/a11y/aria-live.service';
|
|
16616
|
-
*
|
|
16617
|
-
* @Component({
|
|
16618
|
-
* selector: 'clr-demo-component',
|
|
16619
|
-
* providers: [ClrAriaLiveService],
|
|
16620
|
-
* template: `
|
|
16621
|
-
* <ng-content></ng-content>
|
|
16622
|
-
* `,
|
|
16623
|
-
* })
|
|
16624
|
-
* export class DemoComponent {
|
|
16625
|
-
* constructor(ariaLiveService: ClrAriaLiveService) {}
|
|
16626
|
-
*
|
|
16627
|
-
* public actionThatWillTriggerChange() {
|
|
16628
|
-
* this.ariaLiveService.announce('message that I want to announce to SR');
|
|
16629
|
-
* }
|
|
16630
|
-
* }
|
|
16631
|
-
* ```
|
|
16632
|
-
*
|
|
16633
|
-
*/
|
|
16634
|
-
class ClrAriaLiveService {
|
|
16635
|
-
constructor(ngZone, _document, platformId) {
|
|
16636
|
-
this.ngZone = ngZone;
|
|
16637
|
-
this.platformId = platformId;
|
|
16638
|
-
this._id = `clr-aria-live-element-${uniqueIdFactory()}`;
|
|
16639
|
-
this.document = _document;
|
|
16640
|
-
}
|
|
16641
|
-
/**
|
|
16642
|
-
* get access to the internal HTML `id` that gonna be used for the AriaLive container.
|
|
16643
|
-
* @return ID of the DOM Element as string.
|
|
16644
|
-
*/
|
|
16645
|
-
get id() {
|
|
16646
|
-
return this._id;
|
|
16647
|
-
}
|
|
16648
|
-
/**
|
|
16649
|
-
* Append text content inside the AriaLive Container. This method will check if the
|
|
16650
|
-
* DOM Element is existing if not it will create one for us and the will apply the text.
|
|
16651
|
-
*
|
|
16652
|
-
* ```typescript
|
|
16653
|
-
* this.ariaLiveService.announce(this.el.nativeElement);
|
|
16654
|
-
* // or
|
|
16655
|
-
* this.ariaLiveService.announce('Message to announce to SR');
|
|
16656
|
-
* ```
|
|
16657
|
-
*
|
|
16658
|
-
* @remark
|
|
16659
|
-
* When second argument is `AriaLivePoliteness.off` we won't create aria container or update it.
|
|
16660
|
-
* The reason for that is that we don't want to do additional work if the SR will ignore it.
|
|
16661
|
-
*
|
|
16662
|
-
* @param message - This could be simple string or HTMLElement
|
|
16663
|
-
* @param politeness - 'polite', 'assertive' or 'off'
|
|
16664
|
-
*/
|
|
16665
|
-
announce(message, politeness = ClrAriaLivePoliteness.polite) {
|
|
16666
|
-
if (politeness === ClrAriaLivePoliteness.off) {
|
|
16667
|
-
return;
|
|
16668
|
-
}
|
|
16669
|
-
if (!this.ariaLiveElement && isPlatformBrowser(this.platformId)) {
|
|
16670
|
-
this.ariaLiveElement = this.createContainer();
|
|
16671
|
-
}
|
|
16672
|
-
message = typeof message !== 'string' && isPlatformBrowser(this.platformId) ? message.textContent : message;
|
|
16673
|
-
// when there is no message do NOTHING!
|
|
16674
|
-
if (!message) {
|
|
16675
|
-
return;
|
|
16676
|
-
}
|
|
16677
|
-
this.ariaLiveElement.setAttribute('aria-live', politeness);
|
|
16678
|
-
// This 100ms timeout is necessary for some browser + screen-reader combinations:
|
|
16679
|
-
// - Both JAWS and NVDA over IE11 will not announce anything without a non-zero timeout.
|
|
16680
|
-
// - With Chrome and IE11 with NVDA or JAWS, a repeated (identical) message won't be read a
|
|
16681
|
-
// second time without clearing and then using a non-zero delay.
|
|
16682
|
-
// (using JAWS 17 at time of this writing).
|
|
16683
|
-
this.ngZone.runOutsideAngular(() => {
|
|
16684
|
-
// This clearTimeout will stop all older messages from announcing
|
|
16685
|
-
// in the case where the messages are comming too fast we gonna try to append only
|
|
16686
|
-
// the last one. That's what the SR will try to do anyway.
|
|
16687
|
-
clearTimeout(this.previousTimeout);
|
|
16688
|
-
this.previousTimeout = setTimeout(() => {
|
|
16689
|
-
this.ariaLiveElement.textContent = message;
|
|
16690
|
-
}, ARIA_LIVE_TICK);
|
|
16691
|
-
});
|
|
16692
|
-
}
|
|
16693
|
-
/**
|
|
16694
|
-
* onDestroy life cycle - must stop all active setTimeouts and remove the AriaLive
|
|
16695
|
-
* container from the document.
|
|
16696
|
-
*/
|
|
16697
|
-
ngOnDestroy() {
|
|
16698
|
-
clearTimeout(this.previousTimeout);
|
|
16699
|
-
if (isPlatformBrowser(this.platformId) && this.ariaLiveElement) {
|
|
16700
|
-
this.document.body.removeChild(this.ariaLiveElement);
|
|
16701
|
-
this.ariaLiveElement = null;
|
|
16702
|
-
}
|
|
16703
|
-
}
|
|
16704
|
-
/**
|
|
16705
|
-
* Create AriaLive DOM element as a last child of the document.
|
|
16706
|
-
* After the element is created, we gonna apply Clarity class to hide it from
|
|
16707
|
-
* the screen and set the `aria-live` politness.
|
|
16708
|
-
*
|
|
16709
|
-
* `clr-sr-only` is the CSS class that is used to hide the element from the screen.
|
|
16710
|
-
*
|
|
16711
|
-
* @remark
|
|
16712
|
-
* Calling this method multiple times will create multiple DOM Elements, that
|
|
16713
|
-
* won't be tracked and will be GC after the service is destroyed.
|
|
16714
|
-
*
|
|
16715
|
-
* @return AriaLive container as HTMLElement
|
|
16716
|
-
*
|
|
16717
|
-
*/
|
|
16718
|
-
createContainer() {
|
|
16719
|
-
const ariaLiveElement = this.document.createElement('div');
|
|
16720
|
-
ariaLiveElement.setAttribute('id', this.id);
|
|
16721
|
-
// Use clarity screen reader class to hide the dom element
|
|
16722
|
-
// and fix the scrollbar shake
|
|
16723
|
-
ariaLiveElement.classList.add('clr-sr-only');
|
|
16724
|
-
ariaLiveElement.setAttribute('aria-atomic', 'true');
|
|
16725
|
-
ariaLiveElement.setAttribute('aria-live', ClrAriaLivePoliteness.polite);
|
|
16726
|
-
this.document.body.appendChild(ariaLiveElement);
|
|
16727
|
-
return ariaLiveElement;
|
|
16728
|
-
}
|
|
16729
|
-
}
|
|
16730
|
-
ClrAriaLiveService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrAriaLiveService, deps: [{ token: i0.NgZone }, { token: DOCUMENT }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
16731
|
-
ClrAriaLiveService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrAriaLiveService, providedIn: 'root' });
|
|
16732
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrAriaLiveService, decorators: [{
|
|
16733
|
-
type: Injectable,
|
|
16734
|
-
args: [{
|
|
16735
|
-
providedIn: 'root',
|
|
16736
|
-
}]
|
|
16737
|
-
}], ctorParameters: function () { return [{ type: i0.NgZone }, { type: undefined, decorators: [{
|
|
16738
|
-
type: Inject,
|
|
16739
|
-
args: [DOCUMENT]
|
|
16740
|
-
}] }, { type: undefined, decorators: [{
|
|
16741
|
-
type: Inject,
|
|
16742
|
-
args: [PLATFORM_ID]
|
|
16743
|
-
}] }]; } });
|
|
15380
|
+
function fadeSlide(direction) {
|
|
15381
|
+
let transform = null;
|
|
15382
|
+
if (direction === 'up') {
|
|
15383
|
+
transform = 'translate(0, 25%)';
|
|
15384
|
+
}
|
|
15385
|
+
else if (direction === 'down') {
|
|
15386
|
+
transform = 'translate(0, -25%)';
|
|
15387
|
+
}
|
|
15388
|
+
else if (direction === 'left') {
|
|
15389
|
+
transform = 'translate(25%, 0)';
|
|
15390
|
+
}
|
|
15391
|
+
else if (direction === 'right') {
|
|
15392
|
+
transform = 'translate(-25%, 0)';
|
|
15393
|
+
}
|
|
15394
|
+
else {
|
|
15395
|
+
throw new Error('Unknown direction ' + direction + ' for slide animation.');
|
|
15396
|
+
}
|
|
15397
|
+
return [
|
|
15398
|
+
transition('void => *', [style({ opacity: 0, transform: transform }), animate(defaultAnimationTiming)]),
|
|
15399
|
+
transition('* => void', [animate(defaultAnimationTiming, style({ opacity: 0, transform: transform }))]),
|
|
15400
|
+
];
|
|
15401
|
+
}
|
|
16744
15402
|
|
|
16745
15403
|
/*
|
|
16746
15404
|
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
@@ -16753,6 +15411,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImpor
|
|
|
16753
15411
|
* This software is released under MIT license.
|
|
16754
15412
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
16755
15413
|
*/
|
|
15414
|
+
function slide(direction) {
|
|
15415
|
+
let transform = null;
|
|
15416
|
+
if (direction === 'up') {
|
|
15417
|
+
transform = 'translate(0, 25%)';
|
|
15418
|
+
}
|
|
15419
|
+
else if (direction === 'down') {
|
|
15420
|
+
transform = 'translate(0, -25%)';
|
|
15421
|
+
}
|
|
15422
|
+
else if (direction === 'left') {
|
|
15423
|
+
transform = 'translate(25%, 0)';
|
|
15424
|
+
}
|
|
15425
|
+
else if (direction === 'right') {
|
|
15426
|
+
transform = 'translate(-25%, 0)';
|
|
15427
|
+
}
|
|
15428
|
+
else {
|
|
15429
|
+
throw new Error('Unknown direction ' + direction + ' for slide animation.');
|
|
15430
|
+
}
|
|
15431
|
+
return [
|
|
15432
|
+
transition('void => *', [style({ transform: transform }), animate(defaultAnimationTiming)]),
|
|
15433
|
+
transition('* => void', [animate(defaultAnimationTiming, style({ transform: transform }))]),
|
|
15434
|
+
];
|
|
15435
|
+
}
|
|
16756
15436
|
|
|
16757
15437
|
/*
|
|
16758
15438
|
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
@@ -16795,95 +15475,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImpor
|
|
|
16795
15475
|
* This software is released under MIT license.
|
|
16796
15476
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
16797
15477
|
*/
|
|
16798
|
-
class ForTypeAheadProvider {
|
|
16799
|
-
constructor() {
|
|
16800
|
-
this._textContentChange = new Subject();
|
|
16801
|
-
}
|
|
16802
|
-
get textContentChange() {
|
|
16803
|
-
return this._textContentChange.asObservable();
|
|
16804
|
-
}
|
|
16805
|
-
get textContent() {
|
|
16806
|
-
return this._textContent;
|
|
16807
|
-
}
|
|
16808
|
-
set textContent(value) {
|
|
16809
|
-
this._textContent = value;
|
|
16810
|
-
this._textContentChange.next(value);
|
|
16811
|
-
}
|
|
16812
|
-
}
|
|
16813
|
-
ForTypeAheadProvider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ForTypeAheadProvider, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
16814
|
-
ForTypeAheadProvider.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ForTypeAheadProvider });
|
|
16815
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ForTypeAheadProvider, decorators: [{
|
|
16816
|
-
type: Injectable
|
|
16817
|
-
}] });
|
|
16818
15478
|
|
|
16819
15479
|
/*
|
|
16820
15480
|
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
16821
15481
|
* This software is released under MIT license.
|
|
16822
15482
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
16823
15483
|
*/
|
|
16824
|
-
// The purpose of this directive is to provide the text content of its host element
|
|
16825
|
-
// or text content that's passed to its input.
|
|
16826
|
-
// This directive must stay optional. So do not embed this directive in a component module by default.
|
|
16827
|
-
// If users need to use this directive, they should import its module on their side.
|
|
16828
|
-
class ClrForTypeAhead {
|
|
16829
|
-
constructor(el, forTypeAheadProvider) {
|
|
16830
|
-
this.el = el;
|
|
16831
|
-
this.forTypeAheadProvider = forTypeAheadProvider;
|
|
16832
|
-
}
|
|
16833
|
-
trimAndLowerCase(value) {
|
|
16834
|
-
return value.toLocaleLowerCase().trim();
|
|
16835
|
-
}
|
|
16836
|
-
get content() {
|
|
16837
|
-
return this._content;
|
|
16838
|
-
}
|
|
16839
|
-
set content(value) {
|
|
16840
|
-
if (value) {
|
|
16841
|
-
this._content = this.trimAndLowerCase(value);
|
|
16842
|
-
this.forTypeAheadProvider.textContent = this._content;
|
|
16843
|
-
}
|
|
16844
|
-
else {
|
|
16845
|
-
this._content = this.trimAndLowerCase(this.el.nativeElement.textContent);
|
|
16846
|
-
this.forTypeAheadProvider.textContent = this._content;
|
|
16847
|
-
}
|
|
16848
|
-
}
|
|
16849
|
-
ngOnInit() {
|
|
16850
|
-
if (!this._content) {
|
|
16851
|
-
this._content = this.trimAndLowerCase(this.el.nativeElement.textContent);
|
|
16852
|
-
this.forTypeAheadProvider.textContent = this._content;
|
|
16853
|
-
}
|
|
16854
|
-
}
|
|
16855
|
-
}
|
|
16856
|
-
ClrForTypeAhead.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrForTypeAhead, deps: [{ token: i0.ElementRef }, { token: ForTypeAheadProvider }], target: i0.ɵɵFactoryTarget.Directive });
|
|
16857
|
-
ClrForTypeAhead.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.2", type: ClrForTypeAhead, selector: "[clrForTypeAhead]", inputs: { content: ["clrForTypeAhead", "content"] }, providers: [ForTypeAheadProvider], ngImport: i0 });
|
|
16858
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrForTypeAhead, decorators: [{
|
|
16859
|
-
type: Directive,
|
|
16860
|
-
args: [{
|
|
16861
|
-
providers: [ForTypeAheadProvider],
|
|
16862
|
-
selector: '[clrForTypeAhead]',
|
|
16863
|
-
}]
|
|
16864
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: ForTypeAheadProvider }]; }, propDecorators: { content: [{
|
|
16865
|
-
type: Input,
|
|
16866
|
-
args: ['clrForTypeAhead']
|
|
16867
|
-
}] } });
|
|
16868
15484
|
|
|
16869
15485
|
/*
|
|
16870
15486
|
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
16871
15487
|
* This software is released under MIT license.
|
|
16872
15488
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
16873
15489
|
*/
|
|
16874
|
-
class ClrForTypeAheadModule {
|
|
16875
|
-
}
|
|
16876
|
-
ClrForTypeAheadModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrForTypeAheadModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
16877
|
-
ClrForTypeAheadModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.2", ngImport: i0, type: ClrForTypeAheadModule, declarations: [ClrForTypeAhead], imports: [CommonModule], exports: [ClrForTypeAhead] });
|
|
16878
|
-
ClrForTypeAheadModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrForTypeAheadModule, imports: [CommonModule] });
|
|
16879
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrForTypeAheadModule, decorators: [{
|
|
16880
|
-
type: NgModule,
|
|
16881
|
-
args: [{
|
|
16882
|
-
imports: [CommonModule],
|
|
16883
|
-
declarations: [ClrForTypeAhead],
|
|
16884
|
-
exports: [ClrForTypeAhead],
|
|
16885
|
-
}]
|
|
16886
|
-
}] });
|
|
16887
15490
|
|
|
16888
15491
|
/*
|
|
16889
15492
|
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
@@ -17314,9 +15917,14 @@ class ClrDatagridPagination {
|
|
|
17314
15917
|
}
|
|
17315
15918
|
return middlePages;
|
|
17316
15919
|
}
|
|
15920
|
+
verifyCurrentPage(event) {
|
|
15921
|
+
const parsed = parseInt(event.target.value, 10);
|
|
15922
|
+
if (parsed !== this.page.current) {
|
|
15923
|
+
event.target.value = this.page.current;
|
|
15924
|
+
}
|
|
15925
|
+
}
|
|
17317
15926
|
/**
|
|
17318
|
-
* We only update the pagination's current page on
|
|
17319
|
-
* when they press enter.
|
|
15927
|
+
* We only update the pagination's current page on enter.
|
|
17320
15928
|
*/
|
|
17321
15929
|
updateCurrentPage(event) {
|
|
17322
15930
|
const parsed = parseInt(event.target.value, 10);
|
|
@@ -17377,7 +15985,7 @@ ClrDatagridPagination.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0",
|
|
|
17377
15985
|
[size]="page.last.toString().length"
|
|
17378
15986
|
[value]="page.current"
|
|
17379
15987
|
(keydown.enter)="updateCurrentPage($event)"
|
|
17380
|
-
(blur)="
|
|
15988
|
+
(blur)="verifyCurrentPage($event)"
|
|
17381
15989
|
[attr.aria-label]="commonStrings.keys.currentPage"
|
|
17382
15990
|
/>
|
|
17383
15991
|
<ng-template #readOnly>
|
|
@@ -17477,7 +16085,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImpor
|
|
|
17477
16085
|
[size]="page.last.toString().length"
|
|
17478
16086
|
[value]="page.current"
|
|
17479
16087
|
(keydown.enter)="updateCurrentPage($event)"
|
|
17480
|
-
(blur)="
|
|
16088
|
+
(blur)="verifyCurrentPage($event)"
|
|
17481
16089
|
[attr.aria-label]="commonStrings.keys.currentPage"
|
|
17482
16090
|
/>
|
|
17483
16091
|
<ng-template #readOnly>
|
|
@@ -17598,20 +16206,20 @@ class ClrDatagridRowDetail {
|
|
|
17598
16206
|
}
|
|
17599
16207
|
get beginningOfExpandableContentAriaText() {
|
|
17600
16208
|
return (this._beginningOfExpandableContentAriaText ||
|
|
17601
|
-
`${this.commonStrings.keys.
|
|
17602
|
-
${this.commonStrings.keys.
|
|
16209
|
+
`${this.commonStrings.keys.datagridExpandableBeginningOf}
|
|
16210
|
+
${this.commonStrings.keys.datagridExpandableRowContent}`);
|
|
17603
16211
|
}
|
|
17604
16212
|
get endOfExpandableContentAriaText() {
|
|
17605
16213
|
return (this._endOfExpandableContentAriaText ||
|
|
17606
|
-
`${this.commonStrings.keys.
|
|
17607
|
-
${this.commonStrings.keys.
|
|
16214
|
+
`${this.commonStrings.keys.datagridExpandableEndOf}
|
|
16215
|
+
${this.commonStrings.keys.datagridExpandableRowContent}`);
|
|
17608
16216
|
}
|
|
17609
16217
|
}
|
|
17610
16218
|
ClrDatagridRowDetail.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrDatagridRowDetail, deps: [{ token: Selection }, { token: RowActionService }, { token: DatagridIfExpandService }, { token: ExpandableRowsCount }, { token: ClrCommonStringsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
17611
16219
|
ClrDatagridRowDetail.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.2", type: ClrDatagridRowDetail, selector: "clr-dg-row-detail", inputs: { replace: ["clrDgReplace", "replace"], _beginningOfExpandableContentAriaText: ["clrRowDetailBeginningAriaText", "_beginningOfExpandableContentAriaText"], _endOfExpandableContentAriaText: ["clrRowDetailEndAriaText", "_endOfExpandableContentAriaText"] }, host: { attributes: { "role": "gridcell" }, properties: { "class.datagrid-row-flex": "true", "class.datagrid-row-detail": "true", "class.datagrid-container": "cells.length === 0", "attr.id": "expand.expandableId" } }, queries: [{ propertyName: "cells", predicate: ClrDatagridCell }], ngImport: i0, template: `
|
|
17612
16220
|
<div class="clr-sr-only">
|
|
17613
16221
|
{{ beginningOfExpandableContentAriaText }}
|
|
17614
|
-
{{ commonStrings.keys.
|
|
16222
|
+
{{ commonStrings.keys.datagridExpandableRowsHelperText }}
|
|
17615
16223
|
</div>
|
|
17616
16224
|
<ng-content></ng-content>
|
|
17617
16225
|
<div class="clr-sr-only">{{ endOfExpandableContentAriaText }}</div>
|
|
@@ -17620,11 +16228,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImpor
|
|
|
17620
16228
|
type: Component,
|
|
17621
16229
|
args: [{
|
|
17622
16230
|
selector: 'clr-dg-row-detail',
|
|
17623
|
-
// TODO: @deprecated - dategrid* keys are deprecated. Remove in v14.
|
|
17624
16231
|
template: `
|
|
17625
16232
|
<div class="clr-sr-only">
|
|
17626
16233
|
{{ beginningOfExpandableContentAriaText }}
|
|
17627
|
-
{{ commonStrings.keys.
|
|
16234
|
+
{{ commonStrings.keys.datagridExpandableRowsHelperText }}
|
|
17628
16235
|
</div>
|
|
17629
16236
|
<ng-content></ng-content>
|
|
17630
16237
|
<div class="clr-sr-only">{{ endOfExpandableContentAriaText }}</div>
|
|
@@ -18246,6 +16853,8 @@ ClrDatagridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", versi
|
|
|
18246
16853
|
// Built-in shortcuts
|
|
18247
16854
|
DatagridStringFilter,
|
|
18248
16855
|
DatagridNumericFilter], imports: [CommonModule,
|
|
16856
|
+
CdkDragModule,
|
|
16857
|
+
CdkTrapFocusModule,
|
|
18249
16858
|
ClrIconModule,
|
|
18250
16859
|
ClrFormsModule,
|
|
18251
16860
|
FormsModule,
|
|
@@ -18253,11 +16862,9 @@ ClrDatagridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", versi
|
|
|
18253
16862
|
ClrConditionalModule,
|
|
18254
16863
|
ClrOutsideClickModule,
|
|
18255
16864
|
ClrExpandableAnimationModule,
|
|
18256
|
-
ClrDragAndDropModule,
|
|
18257
16865
|
ClrSpinnerModule,
|
|
18258
16866
|
ClrPopoverModuleNext,
|
|
18259
16867
|
ClrKeyFocusModule,
|
|
18260
|
-
ClrFocusTrapModule,
|
|
18261
16868
|
ClrFocusOnViewInitModule], exports: [
|
|
18262
16869
|
// Core
|
|
18263
16870
|
ClrDatagrid,
|
|
@@ -18300,6 +16907,8 @@ ClrDatagridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", versi
|
|
|
18300
16907
|
DatagridStringFilter,
|
|
18301
16908
|
DatagridNumericFilter] });
|
|
18302
16909
|
ClrDatagridModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrDatagridModule, imports: [CommonModule,
|
|
16910
|
+
CdkDragModule,
|
|
16911
|
+
CdkTrapFocusModule,
|
|
18303
16912
|
ClrIconModule,
|
|
18304
16913
|
ClrFormsModule,
|
|
18305
16914
|
FormsModule,
|
|
@@ -18307,17 +16916,17 @@ ClrDatagridModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", versi
|
|
|
18307
16916
|
ClrConditionalModule,
|
|
18308
16917
|
ClrOutsideClickModule,
|
|
18309
16918
|
ClrExpandableAnimationModule,
|
|
18310
|
-
ClrDragAndDropModule,
|
|
18311
16919
|
ClrSpinnerModule,
|
|
18312
16920
|
ClrPopoverModuleNext,
|
|
18313
16921
|
ClrKeyFocusModule,
|
|
18314
|
-
ClrFocusTrapModule,
|
|
18315
16922
|
ClrFocusOnViewInitModule] });
|
|
18316
16923
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrDatagridModule, decorators: [{
|
|
18317
16924
|
type: NgModule,
|
|
18318
16925
|
args: [{
|
|
18319
16926
|
imports: [
|
|
18320
16927
|
CommonModule,
|
|
16928
|
+
CdkDragModule,
|
|
16929
|
+
CdkTrapFocusModule,
|
|
18321
16930
|
ClrIconModule,
|
|
18322
16931
|
ClrFormsModule,
|
|
18323
16932
|
FormsModule,
|
|
@@ -18325,11 +16934,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImpor
|
|
|
18325
16934
|
ClrConditionalModule,
|
|
18326
16935
|
ClrOutsideClickModule,
|
|
18327
16936
|
ClrExpandableAnimationModule,
|
|
18328
|
-
ClrDragAndDropModule,
|
|
18329
16937
|
ClrSpinnerModule,
|
|
18330
16938
|
ClrPopoverModuleNext,
|
|
18331
16939
|
ClrKeyFocusModule,
|
|
18332
|
-
ClrFocusTrapModule,
|
|
18333
16940
|
ClrFocusOnViewInitModule,
|
|
18334
16941
|
],
|
|
18335
16942
|
declarations: [CLR_DATAGRID_DIRECTIVES],
|
|
@@ -18478,7 +17085,7 @@ class ClrStackBlock {
|
|
|
18478
17085
|
}
|
|
18479
17086
|
}
|
|
18480
17087
|
ClrStackBlock.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrStackBlock, deps: [{ token: ClrStackBlock, optional: true, skipSelf: true }, { token: ClrCommonStringsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
18481
|
-
ClrStackBlock.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.2", type: ClrStackBlock, selector: "clr-stack-block", inputs: { expanded: ["clrSbExpanded", "expanded"], expandable: ["clrSbExpandable", "expandable"], setChangedValue: ["clrSbNotifyChange", "setChangedValue"], ariaLevel: ["clrStackViewLevel", "ariaLevel"]
|
|
17088
|
+
ClrStackBlock.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.2", type: ClrStackBlock, selector: "clr-stack-block", inputs: { expanded: ["clrSbExpanded", "expanded"], expandable: ["clrSbExpandable", "expandable"], setChangedValue: ["clrSbNotifyChange", "setChangedValue"], ariaLevel: ["clrStackViewLevel", "ariaLevel"] }, outputs: { expandedChange: "clrSbExpandedChange" }, host: { properties: { "class.stack-block": "true", "attr.role": "\"heading\"", "attr.aria-level": "headingLevel", "class.stack-block-expanded": "this.expanded", "class.stack-block-expandable": "this.expandable", "class.stack-block-changed": "this.getChangedValue", "class.on-focus": "this.onStackLabelFocus" } }, queries: [{ propertyName: "stackBlockTitle", first: true, predicate: ClrStackViewLabel, descendants: true }], ngImport: i0, template: `
|
|
18482
17089
|
<!-- The 'preventDefault' for the space keydown event prevents the page
|
|
18483
17090
|
from scrolling when a stack block is toggled via the space key. -->
|
|
18484
17091
|
<div
|
|
@@ -18597,12 +17204,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImpor
|
|
|
18597
17204
|
}], ariaLevel: [{
|
|
18598
17205
|
type: Input,
|
|
18599
17206
|
args: ['clrStackViewLevel']
|
|
18600
|
-
}], ariaSetsize: [{
|
|
18601
|
-
type: Input,
|
|
18602
|
-
args: ['clrStackViewSetsize']
|
|
18603
|
-
}], ariaPosinset: [{
|
|
18604
|
-
type: Input,
|
|
18605
|
-
args: ['clrStackViewPosinset']
|
|
18606
17207
|
}], onStackLabelFocus: [{
|
|
18607
17208
|
type: HostBinding,
|
|
18608
17209
|
args: ['class.on-focus']
|
|
@@ -18637,30 +17238,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImpor
|
|
|
18637
17238
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
18638
17239
|
*/
|
|
18639
17240
|
class ClrStackView {
|
|
18640
|
-
constructor() {
|
|
18641
|
-
/**
|
|
18642
|
-
* Undocumented experimental feature: inline editing.
|
|
18643
|
-
*/
|
|
18644
|
-
this.editable = false;
|
|
18645
|
-
this.save = new EventEmitter(false);
|
|
18646
|
-
this._editMode = false;
|
|
18647
|
-
this.editingChange = new EventEmitter(false);
|
|
18648
|
-
}
|
|
18649
|
-
get editing() {
|
|
18650
|
-
return this.editable && this._editMode;
|
|
18651
|
-
}
|
|
18652
|
-
set editing(value) {
|
|
18653
|
-
if (this.editable) {
|
|
18654
|
-
this._editMode = value;
|
|
18655
|
-
this.editingChange.emit(value);
|
|
18656
|
-
if (!value) {
|
|
18657
|
-
this.save.emit(null);
|
|
18658
|
-
}
|
|
18659
|
-
}
|
|
18660
|
-
}
|
|
18661
17241
|
}
|
|
18662
17242
|
ClrStackView.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrStackView, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
18663
|
-
ClrStackView.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.2", type: ClrStackView, selector: "clr-stack-view",
|
|
17243
|
+
ClrStackView.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.2", type: ClrStackView, selector: "clr-stack-view", ngImport: i0, template: `
|
|
18664
17244
|
<ng-content select="clr-stack-header"></ng-content>
|
|
18665
17245
|
<div class="stack-view"><ng-content></ng-content></div>
|
|
18666
17246
|
`, isInline: true, styles: [":host{display:block}\n"] });
|
|
@@ -18670,10 +17250,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImpor
|
|
|
18670
17250
|
<ng-content select="clr-stack-header"></ng-content>
|
|
18671
17251
|
<div class="stack-view"><ng-content></ng-content></div>
|
|
18672
17252
|
`, styles: [":host{display:block}\n"] }]
|
|
18673
|
-
}]
|
|
18674
|
-
type: Output,
|
|
18675
|
-
args: ['clrStackSave']
|
|
18676
|
-
}] } });
|
|
17253
|
+
}] });
|
|
18677
17254
|
|
|
18678
17255
|
/*
|
|
18679
17256
|
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
@@ -18692,19 +17269,9 @@ ClrStackHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version
|
|
|
18692
17269
|
|
|
18693
17270
|
<span class="stack-actions">
|
|
18694
17271
|
<ng-content select=".stack-action"></ng-content>
|
|
18695
|
-
<!-- Undocumented experimental feature: inline editing. -->
|
|
18696
|
-
<button
|
|
18697
|
-
*ngIf="stackView.editable"
|
|
18698
|
-
class="stack-action btn btn-sm btn-link"
|
|
18699
|
-
(click)="stackView.editing = !stackView.editing"
|
|
18700
|
-
type="button"
|
|
18701
|
-
>
|
|
18702
|
-
Edit
|
|
18703
|
-
</button>
|
|
18704
|
-
<!-- End of undocumented experimental feature. -->
|
|
18705
17272
|
</span>
|
|
18706
17273
|
</div>
|
|
18707
|
-
`, isInline: true, styles: [":host{display:block}\n"]
|
|
17274
|
+
`, isInline: true, styles: [":host{display:block}\n"] });
|
|
18708
17275
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrStackHeader, decorators: [{
|
|
18709
17276
|
type: Component,
|
|
18710
17277
|
args: [{ selector: 'clr-stack-header', template: `
|
|
@@ -18713,116 +17280,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImpor
|
|
|
18713
17280
|
|
|
18714
17281
|
<span class="stack-actions">
|
|
18715
17282
|
<ng-content select=".stack-action"></ng-content>
|
|
18716
|
-
<!-- Undocumented experimental feature: inline editing. -->
|
|
18717
|
-
<button
|
|
18718
|
-
*ngIf="stackView.editable"
|
|
18719
|
-
class="stack-action btn btn-sm btn-link"
|
|
18720
|
-
(click)="stackView.editing = !stackView.editing"
|
|
18721
|
-
type="button"
|
|
18722
|
-
>
|
|
18723
|
-
Edit
|
|
18724
|
-
</button>
|
|
18725
|
-
<!-- End of undocumented experimental feature. -->
|
|
18726
17283
|
</span>
|
|
18727
17284
|
</div>
|
|
18728
17285
|
`, styles: [":host{display:block}\n"] }]
|
|
18729
17286
|
}], ctorParameters: function () { return [{ type: ClrStackView }]; } });
|
|
18730
17287
|
|
|
18731
|
-
/*
|
|
18732
|
-
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
18733
|
-
* This software is released under MIT license.
|
|
18734
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
18735
|
-
*/
|
|
18736
|
-
class StackControl {
|
|
18737
|
-
constructor(stackView) {
|
|
18738
|
-
this.stackView = stackView;
|
|
18739
|
-
this.modelChange = new EventEmitter(false);
|
|
18740
|
-
// Make the ClrStackView editable, since it contains a StackControl
|
|
18741
|
-
this.stackView.editable = true;
|
|
18742
|
-
this.subscription = this.stackView.editingChange.subscribe((editing) => {
|
|
18743
|
-
// Edit mode was closed
|
|
18744
|
-
if (!editing) {
|
|
18745
|
-
this.modelChange.emit(this.model);
|
|
18746
|
-
}
|
|
18747
|
-
});
|
|
18748
|
-
}
|
|
18749
|
-
ngOnDestroy() {
|
|
18750
|
-
this.subscription.unsubscribe();
|
|
18751
|
-
}
|
|
18752
|
-
}
|
|
18753
|
-
StackControl.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: StackControl, deps: [{ token: ClrStackView }], target: i0.ɵɵFactoryTarget.Directive });
|
|
18754
|
-
StackControl.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.2", type: StackControl, ngImport: i0 });
|
|
18755
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: StackControl, decorators: [{
|
|
18756
|
-
type: Directive
|
|
18757
|
-
}], ctorParameters: function () { return [{ type: ClrStackView }]; } });
|
|
18758
|
-
|
|
18759
|
-
/*
|
|
18760
|
-
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
18761
|
-
* This software is released under MIT license.
|
|
18762
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
18763
|
-
*/
|
|
18764
|
-
class ClrStackInput extends StackControl {
|
|
18765
|
-
constructor(stackView) {
|
|
18766
|
-
super(stackView);
|
|
18767
|
-
this.stackView = stackView;
|
|
18768
|
-
this.type = 'text';
|
|
18769
|
-
}
|
|
18770
|
-
}
|
|
18771
|
-
ClrStackInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrStackInput, deps: [{ token: ClrStackView }], target: i0.ɵɵFactoryTarget.Component });
|
|
18772
|
-
ClrStackInput.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.2", type: ClrStackInput, selector: "clr-stack-input", inputs: { model: ["clrModel", "model"], type: "type" }, outputs: { modelChange: "clrModelChange" }, usesInheritance: true, ngImport: i0, template: `
|
|
18773
|
-
<span *ngIf="!stackView.editing">{{ model }}</span>
|
|
18774
|
-
<input [type]="type" *ngIf="stackView.editing" [(ngModel)]="model" />
|
|
18775
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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.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"] }] });
|
|
18776
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrStackInput, decorators: [{
|
|
18777
|
-
type: Component,
|
|
18778
|
-
args: [{
|
|
18779
|
-
selector: 'clr-stack-input',
|
|
18780
|
-
inputs: ['model: clrModel', 'type'],
|
|
18781
|
-
outputs: ['modelChange: clrModelChange'],
|
|
18782
|
-
template: `
|
|
18783
|
-
<span *ngIf="!stackView.editing">{{ model }}</span>
|
|
18784
|
-
<input [type]="type" *ngIf="stackView.editing" [(ngModel)]="model" />
|
|
18785
|
-
`,
|
|
18786
|
-
}]
|
|
18787
|
-
}], ctorParameters: function () { return [{ type: ClrStackView }]; } });
|
|
18788
|
-
|
|
18789
|
-
/*
|
|
18790
|
-
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
18791
|
-
* This software is released under MIT license.
|
|
18792
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
18793
|
-
*/
|
|
18794
|
-
class ClrStackSelect extends StackControl {
|
|
18795
|
-
constructor(stackView) {
|
|
18796
|
-
super(stackView);
|
|
18797
|
-
this.stackView = stackView;
|
|
18798
|
-
}
|
|
18799
|
-
}
|
|
18800
|
-
ClrStackSelect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrStackSelect, deps: [{ token: ClrStackView }], target: i0.ɵɵFactoryTarget.Component });
|
|
18801
|
-
ClrStackSelect.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.2", type: ClrStackSelect, selector: "clr-stack-select", inputs: { model: ["clrModel", "model"] }, outputs: { modelChange: "clrModelChange" }, usesInheritance: true, ngImport: i0, template: `
|
|
18802
|
-
<span *ngIf="!stackView.editing">{{ model }}</span>
|
|
18803
|
-
<div class="select" *ngIf="stackView.editing">
|
|
18804
|
-
<select [(ngModel)]="model">
|
|
18805
|
-
<ng-content></ng-content>
|
|
18806
|
-
</select>
|
|
18807
|
-
</div>
|
|
18808
|
-
`, isInline: true, dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { 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"] }] });
|
|
18809
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrStackSelect, decorators: [{
|
|
18810
|
-
type: Component,
|
|
18811
|
-
args: [{
|
|
18812
|
-
selector: 'clr-stack-select',
|
|
18813
|
-
inputs: ['model: clrModel'],
|
|
18814
|
-
outputs: ['modelChange: clrModelChange'],
|
|
18815
|
-
template: `
|
|
18816
|
-
<span *ngIf="!stackView.editing">{{ model }}</span>
|
|
18817
|
-
<div class="select" *ngIf="stackView.editing">
|
|
18818
|
-
<select [(ngModel)]="model">
|
|
18819
|
-
<ng-content></ng-content>
|
|
18820
|
-
</select>
|
|
18821
|
-
</div>
|
|
18822
|
-
`,
|
|
18823
|
-
}]
|
|
18824
|
-
}], ctorParameters: function () { return [{ type: ClrStackView }]; } });
|
|
18825
|
-
|
|
18826
17288
|
/*
|
|
18827
17289
|
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
18828
17290
|
* This software is released under MIT license.
|
|
@@ -18835,14 +17297,6 @@ const CLR_STACK_VIEW_DIRECTIVES = [
|
|
|
18835
17297
|
ClrStackContentInput,
|
|
18836
17298
|
ClrStackViewLabel,
|
|
18837
17299
|
ClrStackViewCustomTags,
|
|
18838
|
-
/**
|
|
18839
|
-
* Undocumented experimental feature: inline editing.
|
|
18840
|
-
*/
|
|
18841
|
-
ClrStackInput,
|
|
18842
|
-
ClrStackSelect,
|
|
18843
|
-
/**
|
|
18844
|
-
* End of undocumented experimental feature.
|
|
18845
|
-
*/
|
|
18846
17300
|
];
|
|
18847
17301
|
class ClrStackViewModule {
|
|
18848
17302
|
constructor() {
|
|
@@ -18855,22 +17309,12 @@ ClrStackViewModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", vers
|
|
|
18855
17309
|
ClrStackBlock,
|
|
18856
17310
|
ClrStackContentInput,
|
|
18857
17311
|
ClrStackViewLabel,
|
|
18858
|
-
ClrStackViewCustomTags,
|
|
18859
|
-
/**
|
|
18860
|
-
* Undocumented experimental feature: inline editing.
|
|
18861
|
-
*/
|
|
18862
|
-
ClrStackInput,
|
|
18863
|
-
ClrStackSelect], imports: [CommonModule, FormsModule, ClrIconModule, ClrExpandableAnimationModule], exports: [ClrStackView,
|
|
17312
|
+
ClrStackViewCustomTags], imports: [CommonModule, FormsModule, ClrIconModule, ClrExpandableAnimationModule], exports: [ClrStackView,
|
|
18864
17313
|
ClrStackHeader,
|
|
18865
17314
|
ClrStackBlock,
|
|
18866
17315
|
ClrStackContentInput,
|
|
18867
17316
|
ClrStackViewLabel,
|
|
18868
|
-
ClrStackViewCustomTags
|
|
18869
|
-
/**
|
|
18870
|
-
* Undocumented experimental feature: inline editing.
|
|
18871
|
-
*/
|
|
18872
|
-
ClrStackInput,
|
|
18873
|
-
ClrStackSelect] });
|
|
17317
|
+
ClrStackViewCustomTags] });
|
|
18874
17318
|
ClrStackViewModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrStackViewModule, imports: [CommonModule, FormsModule, ClrIconModule, ClrExpandableAnimationModule] });
|
|
18875
17319
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrStackViewModule, decorators: [{
|
|
18876
17320
|
type: NgModule,
|
|
@@ -19495,13 +17939,13 @@ const LVIEW_CONTEXT_INDEX = 8;
|
|
|
19495
17939
|
// then those keys are sent together in one request.
|
|
19496
17940
|
const TREE_TYPE_AHEAD_TIMEOUT = 200;
|
|
19497
17941
|
class ClrTreeNode {
|
|
19498
|
-
constructor(platformId, parent,
|
|
17942
|
+
constructor(platformId, parent, featuresService, expandService, commonStrings, focusManager, elementRef, injector) {
|
|
19499
17943
|
this.platformId = platformId;
|
|
19500
|
-
this.forTypeAheadProvider = forTypeAheadProvider;
|
|
19501
17944
|
this.featuresService = featuresService;
|
|
19502
17945
|
this.expandService = expandService;
|
|
19503
17946
|
this.commonStrings = commonStrings;
|
|
19504
17947
|
this.focusManager = focusManager;
|
|
17948
|
+
this.elementRef = elementRef;
|
|
19505
17949
|
this.STATES = ClrSelectedState;
|
|
19506
17950
|
this.skipEmitChange = false;
|
|
19507
17951
|
this.isModelLoading = false;
|
|
@@ -19580,6 +18024,9 @@ class ClrTreeNode {
|
|
|
19580
18024
|
set expanded(value) {
|
|
19581
18025
|
this.expandService.expanded = value;
|
|
19582
18026
|
}
|
|
18027
|
+
set clrForTypeAhead(value) {
|
|
18028
|
+
this._model.textContent = trimAndLowerCase(value || this.elementRef.nativeElement.textContent);
|
|
18029
|
+
}
|
|
19583
18030
|
ngOnInit() {
|
|
19584
18031
|
this._model.expanded = this.expanded;
|
|
19585
18032
|
this.subscriptions.push(this._model.selected.pipe(filter(() => !this.skipEmitChange)).subscribe(value => {
|
|
@@ -19599,14 +18046,14 @@ class ClrTreeNode {
|
|
|
19599
18046
|
this.subscriptions.push(this._model.loading$.pipe(debounceTime(0)).subscribe(isLoading => (this.isModelLoading = isLoading)));
|
|
19600
18047
|
}
|
|
19601
18048
|
ngAfterContentInit() {
|
|
19602
|
-
if (this.
|
|
19603
|
-
this._model.textContent = this.
|
|
19604
|
-
this.subscriptions.push(this.typeAheadKeyEvent.pipe(debounceTime(TREE_TYPE_AHEAD_TIMEOUT)).subscribe((bufferedKeys) => {
|
|
19605
|
-
this.focusManager.focusNodeStartsWith(bufferedKeys, this._model);
|
|
19606
|
-
// reset once bufferedKeys are used
|
|
19607
|
-
this.typeAheadKeyBuffer = '';
|
|
19608
|
-
}));
|
|
18049
|
+
if (!this._model.textContent) {
|
|
18050
|
+
this._model.textContent = trimAndLowerCase(this.elementRef.nativeElement.textContent);
|
|
19609
18051
|
}
|
|
18052
|
+
this.subscriptions.push(this.typeAheadKeyEvent.pipe(debounceTime(TREE_TYPE_AHEAD_TIMEOUT)).subscribe((bufferedKeys) => {
|
|
18053
|
+
this.focusManager.focusNodeStartsWith(bufferedKeys, this._model);
|
|
18054
|
+
// reset once bufferedKeys are used
|
|
18055
|
+
this.typeAheadKeyBuffer = '';
|
|
18056
|
+
}));
|
|
19610
18057
|
}
|
|
19611
18058
|
ngOnDestroy() {
|
|
19612
18059
|
this._model.destroy();
|
|
@@ -19728,8 +18175,8 @@ class ClrTreeNode {
|
|
|
19728
18175
|
}
|
|
19729
18176
|
}
|
|
19730
18177
|
}
|
|
19731
|
-
ClrTreeNode.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrTreeNode, deps: [{ token: PLATFORM_ID }, { token: ClrTreeNode, optional: true, skipSelf: true }, { token:
|
|
19732
|
-
ClrTreeNode.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.2", type: ClrTreeNode, selector: "clr-tree-node", inputs: { selected: ["clrSelected", "selected"], expandable: ["clrExpandable", "expandable"], expanded: ["clrExpanded", "expanded"] }, outputs: { selectedChange: "clrSelectedChange", expandedChange: "clrExpandedChange" }, host: { properties: { "class.clr-tree-node": "true" } }, 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-2021 VMware, Inc. All Rights Reserved.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n<div\n #contentContainer\n role=\"treeitem\"\n class=\"clr-tree-node-content-container\"\n tabindex=\"-1\"\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 >\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 [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\"></label>\n </div>\n <div class=\"clr-treenode-content\" (mousedown)=\"focusTreeNode()\">\n <ng-content></ng-content>\n <div class=\"clr-sr-only\" *ngIf=\"featuresService.selectable || ariaSelected\">\n <span *ngIf=\"ariaSelected\"> selected</span>\n <span *ngIf=\"!ariaSelected\"> unselected</span>\n </div>\n </div>\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: CdsIconCustomTag, selector: "cds-icon" }, { kind: "component", type: RecursiveChildren, selector: "clr-recursive-children", inputs: ["parent", "children"] }], animations: [
|
|
18178
|
+
ClrTreeNode.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.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 });
|
|
18179
|
+
ClrTreeNode.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.2", type: ClrTreeNode, selector: "clr-tree-node", inputs: { selected: ["clrSelected", "selected"], expandable: ["clrExpandable", "expandable"], expanded: ["clrExpanded", "expanded"], clrForTypeAhead: "clrForTypeAhead" }, outputs: { selectedChange: "clrSelectedChange", expandedChange: "clrExpandedChange" }, host: { properties: { "class.clr-tree-node": "true" } }, 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-2021 VMware, Inc. All Rights Reserved.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n<div\n #contentContainer\n role=\"treeitem\"\n class=\"clr-tree-node-content-container\"\n tabindex=\"-1\"\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 >\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 [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\"></label>\n </div>\n <div class=\"clr-treenode-content\" (mousedown)=\"focusTreeNode()\">\n <ng-content></ng-content>\n <div class=\"clr-sr-only\" *ngIf=\"featuresService.selectable || ariaSelected\">\n <span *ngIf=\"ariaSelected\"> selected</span>\n <span *ngIf=\"!ariaSelected\"> unselected</span>\n </div>\n </div>\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: CdsIconCustomTag, selector: "cds-icon" }, { kind: "component", type: RecursiveChildren, selector: "clr-recursive-children", inputs: ["parent", "children"] }], animations: [
|
|
19733
18180
|
trigger('toggleChildrenAnim', [
|
|
19734
18181
|
transition('collapsed => expanded', [style({ height: 0 }), animate(200, style({ height: '*' }))]),
|
|
19735
18182
|
transition('expanded => collapsed', [style({ height: '*' }), animate(200, style({ height: 0 }))]),
|
|
@@ -19756,11 +18203,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImpor
|
|
|
19756
18203
|
type: Optional
|
|
19757
18204
|
}, {
|
|
19758
18205
|
type: SkipSelf
|
|
19759
|
-
}] }, { type:
|
|
19760
|
-
type: Optional
|
|
19761
|
-
}, {
|
|
19762
|
-
type: Self
|
|
19763
|
-
}] }, { type: TreeFeaturesService }, { type: IfExpandService }, { type: ClrCommonStringsService }, { type: TreeFocusManagerService }, { type: i0.Injector }]; }, propDecorators: { selected: [{
|
|
18206
|
+
}] }, { type: TreeFeaturesService }, { type: IfExpandService }, { type: ClrCommonStringsService }, { type: TreeFocusManagerService }, { type: i0.ElementRef }, { type: i0.Injector }]; }, propDecorators: { selected: [{
|
|
19764
18207
|
type: Input,
|
|
19765
18208
|
args: ['clrSelected']
|
|
19766
18209
|
}], selectedChange: [{
|
|
@@ -19772,6 +18215,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImpor
|
|
|
19772
18215
|
}], expanded: [{
|
|
19773
18216
|
type: Input,
|
|
19774
18217
|
args: ['clrExpanded']
|
|
18218
|
+
}], clrForTypeAhead: [{
|
|
18219
|
+
type: Input,
|
|
18220
|
+
args: ['clrForTypeAhead']
|
|
19775
18221
|
}], expandedChange: [{
|
|
19776
18222
|
type: Output,
|
|
19777
18223
|
args: ['clrExpandedChange']
|
|
@@ -19782,6 +18228,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImpor
|
|
|
19782
18228
|
type: ContentChildren,
|
|
19783
18229
|
args: [ClrTreeNodeLink, { descendants: false }]
|
|
19784
18230
|
}] } });
|
|
18231
|
+
function trimAndLowerCase(value) {
|
|
18232
|
+
return value.toLocaleLowerCase().trim();
|
|
18233
|
+
}
|
|
19785
18234
|
|
|
19786
18235
|
/*
|
|
19787
18236
|
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
@@ -20264,13 +18713,10 @@ const BASIC_FOCUSABLE_ITEM_PROVIDER = [
|
|
|
20264
18713
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
20265
18714
|
*/
|
|
20266
18715
|
class ClrDropdownItem {
|
|
20267
|
-
constructor(dropdown,
|
|
18716
|
+
constructor(dropdown, _dropdownService, focusableItem) {
|
|
20268
18717
|
this.dropdown = dropdown;
|
|
20269
|
-
this.el = el;
|
|
20270
18718
|
this._dropdownService = _dropdownService;
|
|
20271
|
-
this.renderer = renderer;
|
|
20272
18719
|
this.focusableItem = focusableItem;
|
|
20273
|
-
this.setByDeprecatedDisabled = false;
|
|
20274
18720
|
}
|
|
20275
18721
|
set disabled(value) {
|
|
20276
18722
|
// Empty string attribute evaluates to false but should disable the item, so we need to add a special case for it.
|
|
@@ -20279,17 +18725,6 @@ class ClrDropdownItem {
|
|
|
20279
18725
|
get disabled() {
|
|
20280
18726
|
return this.focusableItem.disabled;
|
|
20281
18727
|
}
|
|
20282
|
-
/*
|
|
20283
|
-
* @deprecated since 3.0, remove in 4.0. the presence of this attribute makes it not-focusable in IE11. Use [clrDisabled] input instead.
|
|
20284
|
-
*/
|
|
20285
|
-
set disabledDeprecated(value) {
|
|
20286
|
-
// Empty string attribute evaluates to false but should disable the item, so we need to add a special case for it.
|
|
20287
|
-
this.focusableItem.disabled = !!value || value === '';
|
|
20288
|
-
this.setByDeprecatedDisabled = true;
|
|
20289
|
-
}
|
|
20290
|
-
get disabledDeprecated() {
|
|
20291
|
-
return this.focusableItem.disabled;
|
|
20292
|
-
}
|
|
20293
18728
|
/**
|
|
20294
18729
|
* Let you overwrite the focusable auto increment id.
|
|
20295
18730
|
*/
|
|
@@ -20299,22 +18734,28 @@ class ClrDropdownItem {
|
|
|
20299
18734
|
get dropdownItemId() {
|
|
20300
18735
|
return this.focusableItem.id;
|
|
20301
18736
|
}
|
|
20302
|
-
ngAfterViewInit() {
|
|
20303
|
-
this.unlisten = this.renderer.listen(this.el.nativeElement, 'click', () => this.onDropdownItemClick());
|
|
20304
|
-
}
|
|
20305
18737
|
onDropdownItemClick() {
|
|
20306
|
-
|
|
20307
|
-
|
|
20308
|
-
|
|
18738
|
+
// Ensure that the dropdown is closed after custom dropdown item click event handlers have run.
|
|
18739
|
+
setTimeout(() => {
|
|
18740
|
+
if (this.dropdown.isMenuClosable && !this.disabled) {
|
|
18741
|
+
this._dropdownService.closeMenus();
|
|
18742
|
+
}
|
|
18743
|
+
});
|
|
20309
18744
|
}
|
|
20310
|
-
|
|
20311
|
-
|
|
20312
|
-
|
|
18745
|
+
onSpaceKeydown($event) {
|
|
18746
|
+
this.stopImmediatePropagationIfDisabled($event);
|
|
18747
|
+
}
|
|
18748
|
+
onEnterKeydown($event) {
|
|
18749
|
+
this.stopImmediatePropagationIfDisabled($event);
|
|
18750
|
+
}
|
|
18751
|
+
stopImmediatePropagationIfDisabled($event) {
|
|
18752
|
+
if (this.disabled) {
|
|
18753
|
+
$event.stopImmediatePropagation();
|
|
20313
18754
|
}
|
|
20314
18755
|
}
|
|
20315
18756
|
}
|
|
20316
|
-
ClrDropdownItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrDropdownItem, deps: [{ token: ClrDropdown }, { token:
|
|
20317
|
-
ClrDropdownItem.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.2", type: ClrDropdownItem, selector: "[clrDropdownItem]", inputs: { disabled: ["clrDisabled", "disabled"],
|
|
18757
|
+
ClrDropdownItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrDropdownItem, deps: [{ token: ClrDropdown }, { token: RootDropdownService }, { token: FocusableItem }], target: i0.ɵɵFactoryTarget.Directive });
|
|
18758
|
+
ClrDropdownItem.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.2", type: ClrDropdownItem, selector: "[clrDropdownItem]", inputs: { disabled: ["clrDisabled", "disabled"], dropdownItemId: ["id", "dropdownItemId"] }, host: { listeners: { "click": "onDropdownItemClick()", "keydown.space": "onSpaceKeydown($event)", "keydown.enter": "onEnterKeydown($event)" }, properties: { "class.disabled": "disabled", "class.dropdown-item": "true", "attr.role": "\"menuitem\"", "attr.aria-disabled": "disabled", "attr.id": "dropdownItemId" } }, providers: [BASIC_FOCUSABLE_ITEM_PROVIDER], ngImport: i0 });
|
|
20318
18759
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrDropdownItem, decorators: [{
|
|
20319
18760
|
type: Directive,
|
|
20320
18761
|
args: [{
|
|
@@ -20324,20 +18765,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImpor
|
|
|
20324
18765
|
'[class.dropdown-item]': 'true',
|
|
20325
18766
|
'[attr.role]': '"menuitem"',
|
|
20326
18767
|
'[attr.aria-disabled]': 'disabled',
|
|
20327
|
-
'[attr.disabled]': "(disabled && setByDeprecatedDisabled)? '' : null",
|
|
20328
18768
|
'[attr.id]': 'dropdownItemId',
|
|
20329
18769
|
},
|
|
20330
18770
|
providers: [BASIC_FOCUSABLE_ITEM_PROVIDER],
|
|
20331
18771
|
}]
|
|
20332
|
-
}], ctorParameters: function () { return [{ type: ClrDropdown }, { type:
|
|
18772
|
+
}], ctorParameters: function () { return [{ type: ClrDropdown }, { type: RootDropdownService }, { type: FocusableItem }]; }, propDecorators: { disabled: [{
|
|
20333
18773
|
type: Input,
|
|
20334
18774
|
args: ['clrDisabled']
|
|
20335
|
-
}], disabledDeprecated: [{
|
|
20336
|
-
type: Input,
|
|
20337
|
-
args: ['disabled']
|
|
20338
18775
|
}], dropdownItemId: [{
|
|
20339
18776
|
type: Input,
|
|
20340
18777
|
args: ['id']
|
|
18778
|
+
}], onDropdownItemClick: [{
|
|
18779
|
+
type: HostListener,
|
|
18780
|
+
args: ['click']
|
|
18781
|
+
}], onSpaceKeydown: [{
|
|
18782
|
+
type: HostListener,
|
|
18783
|
+
args: ['keydown.space', ['$event']]
|
|
18784
|
+
}], onEnterKeydown: [{
|
|
18785
|
+
type: HostListener,
|
|
18786
|
+
args: ['keydown.enter', ['$event']]
|
|
20341
18787
|
}] } });
|
|
20342
18788
|
|
|
20343
18789
|
/*
|
|
@@ -21833,143 +20279,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImpor
|
|
|
21833
20279
|
}]
|
|
21834
20280
|
}], ctorParameters: function () { return [{ type: ResponsiveNavigationService }, { type: ClrCommonStringsService }]; } });
|
|
21835
20281
|
|
|
21836
|
-
/*
|
|
21837
|
-
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
21838
|
-
* This software is released under MIT license.
|
|
21839
|
-
* The full license information can be found in LICENSE in the root directory of this project.
|
|
21840
|
-
*/
|
|
21841
|
-
function refocusIfOutsideFocusTrapElement(focusedElement, focusTrapElement, elementToRefocus) {
|
|
21842
|
-
const focusTrapIsCurrent = FocusTrapTrackerService.getCurrent() === focusTrapElement;
|
|
21843
|
-
const elementToFocusIsOutsideFocusTrap = elementIsOutsideFocusTrapElement(focusedElement, focusTrapElement);
|
|
21844
|
-
if (focusTrapIsCurrent && elementToFocusIsOutsideFocusTrap) {
|
|
21845
|
-
elementToRefocus = elementToRefocus || focusTrapElement;
|
|
21846
|
-
elementToRefocus.focus();
|
|
21847
|
-
}
|
|
21848
|
-
else {
|
|
21849
|
-
focusedElement.focus();
|
|
21850
|
-
}
|
|
21851
|
-
}
|
|
21852
|
-
function elementIsOutsideFocusTrapElement(focusedElement, focusTrapElement) {
|
|
21853
|
-
if (focusedElement === focusTrapElement.topReboundElement ||
|
|
21854
|
-
focusedElement === focusTrapElement.bottomReboundElement) {
|
|
21855
|
-
return true;
|
|
21856
|
-
}
|
|
21857
|
-
const elementIsInFocusTrapLightDom = focusTrapElement.contains(focusedElement);
|
|
21858
|
-
if (elementIsInFocusTrapLightDom) {
|
|
21859
|
-
return false;
|
|
21860
|
-
}
|
|
21861
|
-
if (focusTrapElement !== null && focusTrapElement.contains(focusedElement)) {
|
|
21862
|
-
return false;
|
|
21863
|
-
}
|
|
21864
|
-
return true;
|
|
21865
|
-
}
|
|
21866
|
-
function createFocusTrapReboundElement(document) {
|
|
21867
|
-
const offScreenSpan = document.createElement('span');
|
|
21868
|
-
offScreenSpan.setAttribute('tabindex', '0');
|
|
21869
|
-
offScreenSpan.classList.add('offscreen-focus-rebounder');
|
|
21870
|
-
return offScreenSpan;
|
|
21871
|
-
}
|
|
21872
|
-
function addReboundElementsToFocusTrapElement(document, focusTrapElement) {
|
|
21873
|
-
if (focusTrapElement && !focusTrapElement.topReboundElement && !focusTrapElement.bottomReboundElement) {
|
|
21874
|
-
focusTrapElement.topReboundElement = createFocusTrapReboundElement(document);
|
|
21875
|
-
focusTrapElement.bottomReboundElement = createFocusTrapReboundElement(document);
|
|
21876
|
-
const parent = focusTrapElement.parentElement;
|
|
21877
|
-
const sibling = focusTrapElement.nextSibling;
|
|
21878
|
-
if (parent) {
|
|
21879
|
-
parent.insertBefore(focusTrapElement.topReboundElement, focusTrapElement);
|
|
21880
|
-
if (sibling) {
|
|
21881
|
-
parent.insertBefore(focusTrapElement.bottomReboundElement, sibling);
|
|
21882
|
-
}
|
|
21883
|
-
else {
|
|
21884
|
-
parent.appendChild(focusTrapElement.bottomReboundElement);
|
|
21885
|
-
}
|
|
21886
|
-
}
|
|
21887
|
-
}
|
|
21888
|
-
}
|
|
21889
|
-
function removeReboundElementsFromFocusTrapElement(focusTrapElement) {
|
|
21890
|
-
if (focusTrapElement) {
|
|
21891
|
-
const parent = focusTrapElement.parentElement;
|
|
21892
|
-
if (parent) {
|
|
21893
|
-
const topRebound = focusTrapElement.topReboundElement;
|
|
21894
|
-
const bottomRebound = focusTrapElement.bottomReboundElement;
|
|
21895
|
-
if (topRebound) {
|
|
21896
|
-
parent.removeChild(topRebound);
|
|
21897
|
-
}
|
|
21898
|
-
if (bottomRebound) {
|
|
21899
|
-
parent.removeChild(bottomRebound);
|
|
21900
|
-
}
|
|
21901
|
-
}
|
|
21902
|
-
// These are here to to make sure that we completely delete all traces of the removed DOM objects.
|
|
21903
|
-
delete focusTrapElement.topReboundElement;
|
|
21904
|
-
delete focusTrapElement.bottomReboundElement;
|
|
21905
|
-
}
|
|
21906
|
-
}
|
|
21907
|
-
// this helper exists to enable the focus trap class to handle vanilla html elements
|
|
21908
|
-
// it's primary concern is to keep TS happy.
|
|
21909
|
-
function castHtmlElementToFocusTrapElement(el) {
|
|
21910
|
-
return el;
|
|
21911
|
-
}
|
|
21912
|
-
class FocusTrap {
|
|
21913
|
-
constructor(renderer, injector, platformId, hostElement) {
|
|
21914
|
-
this.renderer = renderer;
|
|
21915
|
-
this.active = false;
|
|
21916
|
-
if (isPlatformBrowser(platformId)) {
|
|
21917
|
-
this._document = injector.get(DOCUMENT);
|
|
21918
|
-
}
|
|
21919
|
-
hostElement = castHtmlElementToFocusTrapElement(hostElement);
|
|
21920
|
-
if (!hostElement.focusTrapId) {
|
|
21921
|
-
hostElement.focusTrapId = createId();
|
|
21922
|
-
}
|
|
21923
|
-
this.focusTrapElement = hostElement;
|
|
21924
|
-
}
|
|
21925
|
-
enableFocusTrap() {
|
|
21926
|
-
const fte = this.focusTrapElement;
|
|
21927
|
-
const firstFocusElement = fte.querySelector('[cds-first-focus]');
|
|
21928
|
-
const activeEl = this._document.activeElement;
|
|
21929
|
-
if (FocusTrapTrackerService.getCurrent() === fte) {
|
|
21930
|
-
throw new Error('Focus trap is already enabled for this instance.');
|
|
21931
|
-
}
|
|
21932
|
-
this.firstFocusElement = firstFocusElement || this.focusTrapElement;
|
|
21933
|
-
addReboundElementsToFocusTrapElement(this._document, fte);
|
|
21934
|
-
if (!isFocusable(fte)) {
|
|
21935
|
-
fte.setAttribute('tabindex', '-1');
|
|
21936
|
-
}
|
|
21937
|
-
if (activeEl && isHTMLElement(activeEl)) {
|
|
21938
|
-
this.previousFocus = activeEl;
|
|
21939
|
-
}
|
|
21940
|
-
FocusTrapTrackerService.setCurrent(fte);
|
|
21941
|
-
// setTimeout here is required for Safari which may try to set focus on
|
|
21942
|
-
// element before it is visible...
|
|
21943
|
-
const focusTimer = setTimeout(() => {
|
|
21944
|
-
this.firstFocusElement.focus();
|
|
21945
|
-
clearTimeout(focusTimer);
|
|
21946
|
-
}, 10);
|
|
21947
|
-
this.onFocusInEvent = this.onFocusIn.bind(this);
|
|
21948
|
-
this.unlisten = this.renderer.listen(this._document, 'focusin', this.onFocusInEvent);
|
|
21949
|
-
this.active = true;
|
|
21950
|
-
}
|
|
21951
|
-
removeFocusTrap() {
|
|
21952
|
-
if (this.unlisten) {
|
|
21953
|
-
this.unlisten();
|
|
21954
|
-
}
|
|
21955
|
-
removeReboundElementsFromFocusTrapElement(this.focusTrapElement);
|
|
21956
|
-
this.renderer.removeAttribute(this.focusTrapElement, 'tabindex');
|
|
21957
|
-
FocusTrapTrackerService.activatePreviousCurrent();
|
|
21958
|
-
this.active = false;
|
|
21959
|
-
if (this.previousFocus) {
|
|
21960
|
-
this.previousFocus.focus();
|
|
21961
|
-
}
|
|
21962
|
-
}
|
|
21963
|
-
onFocusIn(event) {
|
|
21964
|
-
refocusIfOutsideFocusTrapElement(event.composedPath()[0], this.focusTrapElement, this.firstFocusElement);
|
|
21965
|
-
}
|
|
21966
|
-
}
|
|
21967
|
-
FocusTrap.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: FocusTrap, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable });
|
|
21968
|
-
FocusTrap.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: FocusTrap });
|
|
21969
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: FocusTrap, decorators: [{
|
|
21970
|
-
type: Injectable
|
|
21971
|
-
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.Injector }, { type: undefined }, { type: undefined }]; } });
|
|
21972
|
-
|
|
21973
20282
|
/*
|
|
21974
20283
|
* Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.
|
|
21975
20284
|
* This software is released under MIT license.
|
|
@@ -21988,11 +20297,22 @@ const createCdsCloseButton = (document, ariaLabel) => {
|
|
|
21988
20297
|
cdsCloseButton.className = 'clr-nav-close';
|
|
21989
20298
|
return cdsCloseButton;
|
|
21990
20299
|
};
|
|
21991
|
-
class
|
|
21992
|
-
|
|
21993
|
-
|
|
20300
|
+
class StandaloneCdkTrapFocus extends CdkTrapFocus {
|
|
20301
|
+
}
|
|
20302
|
+
StandaloneCdkTrapFocus.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: StandaloneCdkTrapFocus, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
20303
|
+
StandaloneCdkTrapFocus.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.2", type: StandaloneCdkTrapFocus, isStandalone: true, usesInheritance: true, ngImport: i0 });
|
|
20304
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: StandaloneCdkTrapFocus, decorators: [{
|
|
20305
|
+
type: Directive,
|
|
20306
|
+
args: [{
|
|
20307
|
+
standalone: true,
|
|
20308
|
+
}]
|
|
20309
|
+
}] });
|
|
20310
|
+
class ClrNavLevel {
|
|
20311
|
+
constructor(platformId, cdkTrapFocus, responsiveNavService, elementRef, renderer, injector) {
|
|
20312
|
+
this.cdkTrapFocus = cdkTrapFocus;
|
|
21994
20313
|
this.responsiveNavService = responsiveNavService;
|
|
21995
20314
|
this.elementRef = elementRef;
|
|
20315
|
+
this.renderer = renderer;
|
|
21996
20316
|
this._isOpen = false;
|
|
21997
20317
|
if (isPlatformBrowser(platformId)) {
|
|
21998
20318
|
this._document = injector.get(DOCUMENT);
|
|
@@ -22012,6 +20332,7 @@ class ClrNavLevel extends FocusTrap {
|
|
|
22012
20332
|
.subscribe(() => this.close()));
|
|
22013
20333
|
}
|
|
22014
20334
|
ngOnInit() {
|
|
20335
|
+
this.cdkTrapFocus.enabled = false;
|
|
22015
20336
|
if (!this.closeButtonAriaLabel) {
|
|
22016
20337
|
this.closeButtonAriaLabel =
|
|
22017
20338
|
this._level === ResponsiveNavCodes.NAV_LEVEL_1
|
|
@@ -22069,14 +20390,14 @@ class ClrNavLevel extends FocusTrap {
|
|
|
22069
20390
|
open() {
|
|
22070
20391
|
this._isOpen = true;
|
|
22071
20392
|
this.showNavigation();
|
|
22072
|
-
this.
|
|
20393
|
+
this.cdkTrapFocus.enabled = true;
|
|
22073
20394
|
this.showCloseButton();
|
|
22074
20395
|
this.responsiveNavService.sendControlMessage(ResponsiveNavCodes.NAV_OPEN, this.level);
|
|
22075
20396
|
}
|
|
22076
20397
|
close() {
|
|
22077
20398
|
this._isOpen = false;
|
|
22078
20399
|
this.hideNavigation();
|
|
22079
|
-
this.
|
|
20400
|
+
this.cdkTrapFocus.enabled = false;
|
|
22080
20401
|
this.hideCloseButton();
|
|
22081
20402
|
this.responsiveNavService.sendControlMessage(ResponsiveNavCodes.NAV_CLOSE, this.level);
|
|
22082
20403
|
}
|
|
@@ -22121,17 +20442,18 @@ class ClrNavLevel extends FocusTrap {
|
|
|
22121
20442
|
this._subscription.unsubscribe();
|
|
22122
20443
|
}
|
|
22123
20444
|
}
|
|
22124
|
-
ClrNavLevel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrNavLevel, deps: [{ token: PLATFORM_ID }, { token: ResponsiveNavigationService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive });
|
|
22125
|
-
ClrNavLevel.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.2", type: ClrNavLevel, selector: "[clr-nav-level]", inputs: { _level: ["clr-nav-level", "_level"], closeButtonAriaLabel: ["closeAriaLabel", "closeButtonAriaLabel"] }, host: { listeners: { "window:resize": "onResize($event)", "click": "onMouseClick($event.target)" } },
|
|
20445
|
+
ClrNavLevel.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrNavLevel, deps: [{ token: PLATFORM_ID }, { token: StandaloneCdkTrapFocus }, { token: ResponsiveNavigationService }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive });
|
|
20446
|
+
ClrNavLevel.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.2", type: ClrNavLevel, selector: "[clr-nav-level]", inputs: { _level: ["clr-nav-level", "_level"], closeButtonAriaLabel: ["closeAriaLabel", "closeButtonAriaLabel"] }, host: { listeners: { "window:resize": "onResize($event)", "click": "onMouseClick($event.target)" } }, hostDirectives: [{ directive: StandaloneCdkTrapFocus }], ngImport: i0 });
|
|
22126
20447
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrNavLevel, decorators: [{
|
|
22127
20448
|
type: Directive,
|
|
22128
20449
|
args: [{
|
|
22129
20450
|
selector: '[clr-nav-level]',
|
|
20451
|
+
hostDirectives: [StandaloneCdkTrapFocus],
|
|
22130
20452
|
}]
|
|
22131
20453
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
22132
20454
|
type: Inject,
|
|
22133
20455
|
args: [PLATFORM_ID]
|
|
22134
|
-
}] }, { type: ResponsiveNavigationService }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.Injector }]; }, propDecorators: { _level: [{
|
|
20456
|
+
}] }, { type: StandaloneCdkTrapFocus }, { type: ResponsiveNavigationService }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.Injector }]; }, propDecorators: { _level: [{
|
|
22135
20457
|
type: Input,
|
|
22136
20458
|
args: ['clr-nav-level']
|
|
22137
20459
|
}], closeButtonAriaLabel: [{
|
|
@@ -23123,7 +21445,6 @@ class ClrVerticalNavGroup {
|
|
|
23123
21445
|
this._navService = _navService;
|
|
23124
21446
|
this.commonStrings = commonStrings;
|
|
23125
21447
|
this.wasExpanded = false;
|
|
23126
|
-
this.groupLabel = this.commonStrings.keys.verticalNavGroupToggle;
|
|
23127
21448
|
this.expandedChange = new EventEmitter(true);
|
|
23128
21449
|
this._subscriptions = [];
|
|
23129
21450
|
this._expandAnimationState = COLLAPSED_STATE;
|
|
@@ -23233,7 +21554,7 @@ class ClrVerticalNavGroup {
|
|
|
23233
21554
|
}
|
|
23234
21555
|
}
|
|
23235
21556
|
ClrVerticalNavGroup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrVerticalNavGroup, deps: [{ token: IfExpandService }, { token: VerticalNavGroupRegistrationService }, { token: VerticalNavGroupService }, { token: VerticalNavService }, { token: ClrCommonStringsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
23236
|
-
ClrVerticalNavGroup.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.2", type: ClrVerticalNavGroup, selector: "clr-vertical-nav-group", inputs: {
|
|
21557
|
+
ClrVerticalNavGroup.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.2", type: ClrVerticalNavGroup, selector: "clr-vertical-nav-group", inputs: { userExpandedInput: ["clrVerticalNavGroupExpanded", "userExpandedInput"] }, outputs: { expandedChange: "clrVerticalNavGroupExpandedChange" }, host: { properties: { "class.is-expanded": "this.expanded" }, classAttribute: "nav-group" }, providers: [IfExpandService, VerticalNavGroupService], ngImport: i0, template: "<!--\n ~ Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n<div class=\"nav-group-content\">\n <ng-content select=\"[clrVerticalNavLink]\"></ng-content>\n <button class=\"nav-group-trigger\" type=\"button\" [attr.aria-expanded]=\"expanded\" (click)=\"toggleExpand()\">\n <ng-content select=\"[clrVerticalNavIcon]\"></ng-content>\n <div class=\"nav-group-text\">\n <ng-content></ng-content>\n </div>\n <cds-icon\n shape=\"angle\"\n class=\"nav-group-trigger-icon\"\n [attr.direction]=\"expanded ? 'down' : 'right'\"\n [attr.title]=\"expanded ? commonStrings.keys.collapse : commonStrings.keys.expand\"\n ></cds-icon>\n </button>\n</div>\n<!--TODO: This animation needs to be added to the clr-vertical-nav-group-children component-->\n<div class=\"nav-group-children\" [@clrExpand]=\"expandAnimationState\" (@clrExpand.done)=\"expandAnimationDone($event)\">\n <ng-content select=\"[clrIfExpanded], clr-vertical-nav-group-children\"></ng-content>\n</div>\n", dependencies: [{ kind: "directive", type: CdsIconCustomTag, selector: "cds-icon" }], animations: [
|
|
23237
21558
|
trigger('clrExpand', [
|
|
23238
21559
|
state(EXPANDED_STATE, style({ height: '*' })),
|
|
23239
21560
|
state(COLLAPSED_STATE, style({ height: 0, visibility: 'hidden' })),
|
|
@@ -23248,13 +21569,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImpor
|
|
|
23248
21569
|
state(COLLAPSED_STATE, style({ height: 0, visibility: 'hidden' })),
|
|
23249
21570
|
transition(`${EXPANDED_STATE} <=> ${COLLAPSED_STATE}`, animate('0.2s ease-in-out')),
|
|
23250
21571
|
]),
|
|
23251
|
-
], host: { class: 'nav-group' }, template: "<!--\n ~ Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n<div class=\"nav-group-content\">\n <ng-content select=\"[clrVerticalNavLink]\"></ng-content>\n <button
|
|
21572
|
+
], host: { class: 'nav-group' }, template: "<!--\n ~ Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n<div class=\"nav-group-content\">\n <ng-content select=\"[clrVerticalNavLink]\"></ng-content>\n <button class=\"nav-group-trigger\" type=\"button\" [attr.aria-expanded]=\"expanded\" (click)=\"toggleExpand()\">\n <ng-content select=\"[clrVerticalNavIcon]\"></ng-content>\n <div class=\"nav-group-text\">\n <ng-content></ng-content>\n </div>\n <cds-icon\n shape=\"angle\"\n class=\"nav-group-trigger-icon\"\n [attr.direction]=\"expanded ? 'down' : 'right'\"\n [attr.title]=\"expanded ? commonStrings.keys.collapse : commonStrings.keys.expand\"\n ></cds-icon>\n </button>\n</div>\n<!--TODO: This animation needs to be added to the clr-vertical-nav-group-children component-->\n<div class=\"nav-group-children\" [@clrExpand]=\"expandAnimationState\" (@clrExpand.done)=\"expandAnimationDone($event)\">\n <ng-content select=\"[clrIfExpanded], clr-vertical-nav-group-children\"></ng-content>\n</div>\n" }]
|
|
23252
21573
|
}], ctorParameters: function () { return [{ type: IfExpandService }, { type: VerticalNavGroupRegistrationService }, { type: VerticalNavGroupService }, { type: VerticalNavService }, { type: ClrCommonStringsService }]; }, propDecorators: { expanded: [{
|
|
23253
21574
|
type: HostBinding,
|
|
23254
21575
|
args: ['class.is-expanded']
|
|
23255
|
-
}], groupLabel: [{
|
|
23256
|
-
type: Input,
|
|
23257
|
-
args: ['clrVerticalNavGroupLabel']
|
|
23258
21576
|
}], userExpandedInput: [{
|
|
23259
21577
|
type: Input,
|
|
23260
21578
|
args: ['clrVerticalNavGroupExpanded']
|
|
@@ -23449,15 +21767,13 @@ class ClrModal {
|
|
|
23449
21767
|
this.closeButtonAriaLabel = this.commonStrings.keys.close;
|
|
23450
21768
|
this.staticBackdrop = true;
|
|
23451
21769
|
this.skipAnimation = 'false';
|
|
23452
|
-
// presently this is only used by wizards
|
|
23453
|
-
this.bypassScrollService = false;
|
|
23454
21770
|
this.stopClose = false;
|
|
23455
21771
|
this.altClose = new EventEmitter(false);
|
|
23456
21772
|
this.labelledBy = this.modalId;
|
|
23457
21773
|
}
|
|
23458
21774
|
// Detect when _open is set to true and set no-scrolling to true
|
|
23459
21775
|
ngOnChanges(changes) {
|
|
23460
|
-
if (
|
|
21776
|
+
if (changes && Object.prototype.hasOwnProperty.call(changes, '_open')) {
|
|
23461
21777
|
if (changes._open.currentValue) {
|
|
23462
21778
|
this._scrollingService.stopScrolling();
|
|
23463
21779
|
}
|
|
@@ -23485,8 +21801,6 @@ class ClrModal {
|
|
|
23485
21801
|
return;
|
|
23486
21802
|
}
|
|
23487
21803
|
this._open = false;
|
|
23488
|
-
// SPECME
|
|
23489
|
-
this.focusTrap.setPreviousFocus(); // Handles moving focus back to the element that had it before.
|
|
23490
21804
|
}
|
|
23491
21805
|
fadeDone(e) {
|
|
23492
21806
|
if (e.toState === 'void') {
|
|
@@ -23496,7 +21810,7 @@ class ClrModal {
|
|
|
23496
21810
|
}
|
|
23497
21811
|
}
|
|
23498
21812
|
ClrModal.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrModal, deps: [{ token: ScrollingService }, { token: ClrCommonStringsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
23499
|
-
ClrModal.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.2", type: ClrModal, selector: "clr-modal", inputs: { _open: ["clrModalOpen", "_open"], closable: ["clrModalClosable", "closable"], closeButtonAriaLabel: ["clrModalCloseButtonAriaLabel", "closeButtonAriaLabel"], size: ["clrModalSize", "size"], staticBackdrop: ["clrModalStaticBackdrop", "staticBackdrop"], skipAnimation: ["clrModalSkipAnimation", "skipAnimation"],
|
|
21813
|
+
ClrModal.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.2", type: ClrModal, selector: "clr-modal", inputs: { _open: ["clrModalOpen", "_open"], closable: ["clrModalClosable", "closable"], closeButtonAriaLabel: ["clrModalCloseButtonAriaLabel", "closeButtonAriaLabel"], size: ["clrModalSize", "size"], staticBackdrop: ["clrModalStaticBackdrop", "staticBackdrop"], skipAnimation: ["clrModalSkipAnimation", "skipAnimation"], stopClose: ["clrModalPreventClose", "stopClose"], labelledBy: ["clrModalLabelledById", "labelledBy"] }, outputs: { _openChanged: "clrModalOpenChange", altClose: "clrModalAlternateClose" }, host: { listeners: { "body:keyup.escape": "close()" }, properties: { "class.open": "this._open" } }, usesOnChanges: true, ngImport: i0, template: "<!--\n ~ Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n<div cdkTrapFocus class=\"modal\" *ngIf=\"_open\">\n <!--fixme: revisit when ngClass works with exit animation-->\n <div\n [@fadeDown]=\"skipAnimation\"\n (@fadeDown.done)=\"fadeDone($event)\"\n class=\"modal-dialog\"\n [class.modal-sm]=\"size == 'sm'\"\n [class.modal-lg]=\"size == 'lg'\"\n [class.modal-xl]=\"size == 'xl'\"\n role=\"dialog\"\n aria-modal=\"true\"\n [attr.aria-hidden]=\"!_open\"\n [attr.aria-labelledby]=\"labelledBy\"\n >\n <div class=\"clr-sr-only\">{{commonStrings.keys.modalContentStart}}</div>\n <div class=\"modal-content-wrapper\">\n <!-- only used in wizards -->\n <ng-content select=\".modal-nav\"></ng-content>\n\n <div class=\"modal-content\">\n <div class=\"modal-header--accessible\">\n <div class=\"modal-title-wrapper\" id=\"{{modalId}}\" clrFocusOnViewInit>\n <ng-content select=\".modal-title\"></ng-content>\n </div>\n <button\n type=\"button\"\n [attr.aria-label]=\"closeButtonAriaLabel || commonStrings.keys.close\"\n class=\"close\"\n *ngIf=\"closable\"\n (click)=\"close()\"\n >\n <cds-icon shape=\"window-close\"></cds-icon>\n </button>\n </div>\n <div class=\"modal-body-wrapper\">\n <ng-content select=\".modal-body\"></ng-content>\n </div>\n <ng-content select=\".modal-footer\"></ng-content>\n </div>\n </div>\n <div class=\"clr-sr-only\">{{commonStrings.keys.modalContentEnd}}</div>\n </div>\n\n <div [@fade] class=\"modal-backdrop\" aria-hidden=\"true\" (click)=\"staticBackdrop || close()\"></div>\n</div>\n", styles: [":host{display:none}:host.open{display:inline}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: CdkTrapFocusModule_CdkTrapFocus, selector: "[cdkTrapFocus]" }, { kind: "directive", type: CdsIconCustomTag, selector: "cds-icon" }, { kind: "directive", type: ClrFocusOnViewInit, selector: "[clrFocusOnViewInit]", inputs: ["clrFocusOnViewInit"] }], viewProviders: [ScrollingService], animations: [
|
|
23500
21814
|
trigger('fadeDown', [
|
|
23501
21815
|
transition('* => false', [style({ opacity: 0, transform: 'translate(0, -25%)' }), animate('0.2s ease-in-out')]),
|
|
23502
21816
|
transition('false => *', [animate('0.2s ease-in-out', style({ opacity: 0, transform: 'translate(0, -25%)' }))]),
|
|
@@ -23517,11 +21831,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImpor
|
|
|
23517
21831
|
transition('void => *', [style({ opacity: 0 }), animate('0.2s ease-in-out', style({ opacity: 0.85 }))]),
|
|
23518
21832
|
transition('* => void', [animate('0.2s ease-in-out', style({ opacity: 0 }))]),
|
|
23519
21833
|
]),
|
|
23520
|
-
], template: "<!--\n ~ Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n<div
|
|
23521
|
-
}], ctorParameters: function () { return [{ type: ScrollingService }, { type: ClrCommonStringsService }]; }, propDecorators: {
|
|
23522
|
-
type: ViewChild,
|
|
23523
|
-
args: [FocusTrapDirective]
|
|
23524
|
-
}], _open: [{
|
|
21834
|
+
], template: "<!--\n ~ Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n<div cdkTrapFocus class=\"modal\" *ngIf=\"_open\">\n <!--fixme: revisit when ngClass works with exit animation-->\n <div\n [@fadeDown]=\"skipAnimation\"\n (@fadeDown.done)=\"fadeDone($event)\"\n class=\"modal-dialog\"\n [class.modal-sm]=\"size == 'sm'\"\n [class.modal-lg]=\"size == 'lg'\"\n [class.modal-xl]=\"size == 'xl'\"\n role=\"dialog\"\n aria-modal=\"true\"\n [attr.aria-hidden]=\"!_open\"\n [attr.aria-labelledby]=\"labelledBy\"\n >\n <div class=\"clr-sr-only\">{{commonStrings.keys.modalContentStart}}</div>\n <div class=\"modal-content-wrapper\">\n <!-- only used in wizards -->\n <ng-content select=\".modal-nav\"></ng-content>\n\n <div class=\"modal-content\">\n <div class=\"modal-header--accessible\">\n <div class=\"modal-title-wrapper\" id=\"{{modalId}}\" clrFocusOnViewInit>\n <ng-content select=\".modal-title\"></ng-content>\n </div>\n <button\n type=\"button\"\n [attr.aria-label]=\"closeButtonAriaLabel || commonStrings.keys.close\"\n class=\"close\"\n *ngIf=\"closable\"\n (click)=\"close()\"\n >\n <cds-icon shape=\"window-close\"></cds-icon>\n </button>\n </div>\n <div class=\"modal-body-wrapper\">\n <ng-content select=\".modal-body\"></ng-content>\n </div>\n <ng-content select=\".modal-footer\"></ng-content>\n </div>\n </div>\n <div class=\"clr-sr-only\">{{commonStrings.keys.modalContentEnd}}</div>\n </div>\n\n <div [@fade] class=\"modal-backdrop\" aria-hidden=\"true\" (click)=\"staticBackdrop || close()\"></div>\n</div>\n", styles: [":host{display:none}:host.open{display:inline}\n"] }]
|
|
21835
|
+
}], ctorParameters: function () { return [{ type: ScrollingService }, { type: ClrCommonStringsService }]; }, propDecorators: { _open: [{
|
|
23525
21836
|
type: HostBinding,
|
|
23526
21837
|
args: ['class.open']
|
|
23527
21838
|
}, {
|
|
@@ -23545,9 +21856,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImpor
|
|
|
23545
21856
|
}], skipAnimation: [{
|
|
23546
21857
|
type: Input,
|
|
23547
21858
|
args: ['clrModalSkipAnimation']
|
|
23548
|
-
}], bypassScrollService: [{
|
|
23549
|
-
type: Input,
|
|
23550
|
-
args: ['clrModalOverrideScrollService']
|
|
23551
21859
|
}], stopClose: [{
|
|
23552
21860
|
type: Input,
|
|
23553
21861
|
args: ['clrModalPreventClose']
|
|
@@ -23636,12 +21944,12 @@ class ClrModalModule {
|
|
|
23636
21944
|
}
|
|
23637
21945
|
}
|
|
23638
21946
|
ClrModalModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
23639
|
-
ClrModalModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.2", ngImport: i0, type: ClrModalModule, declarations: [ClrModal, ClrModalBody], imports: [CommonModule,
|
|
23640
|
-
ClrModalModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrModalModule, imports: [CommonModule,
|
|
21947
|
+
ClrModalModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.2", ngImport: i0, type: ClrModalModule, declarations: [ClrModal, ClrModalBody], imports: [CommonModule, CdkTrapFocusModule, ClrIconModule, ClrFocusOnViewInitModule], exports: [ClrModal, ClrModalBody, ClrIconModule, ClrFocusOnViewInitModule] });
|
|
21948
|
+
ClrModalModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrModalModule, imports: [CommonModule, CdkTrapFocusModule, ClrIconModule, ClrFocusOnViewInitModule, ClrIconModule, ClrFocusOnViewInitModule] });
|
|
23641
21949
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrModalModule, decorators: [{
|
|
23642
21950
|
type: NgModule,
|
|
23643
21951
|
args: [{
|
|
23644
|
-
imports: [CommonModule,
|
|
21952
|
+
imports: [CommonModule, CdkTrapFocusModule, ClrIconModule, ClrFocusOnViewInitModule],
|
|
23645
21953
|
declarations: [CLR_MODAL_DIRECTIVES],
|
|
23646
21954
|
exports: [CLR_MODAL_DIRECTIVES, ClrIconModule, ClrFocusOnViewInitModule],
|
|
23647
21955
|
}]
|
|
@@ -26605,13 +24913,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImpor
|
|
|
26605
24913
|
* The full license information can be found in LICENSE in the root directory of this project.
|
|
26606
24914
|
*/
|
|
26607
24915
|
class ClrWizard {
|
|
26608
|
-
constructor(platformId, navService, pageCollection, buttonService, headerActionService,
|
|
24916
|
+
constructor(platformId, navService, pageCollection, buttonService, headerActionService, differs) {
|
|
26609
24917
|
this.platformId = platformId;
|
|
26610
24918
|
this.navService = navService;
|
|
26611
24919
|
this.pageCollection = pageCollection;
|
|
26612
24920
|
this.buttonService = buttonService;
|
|
26613
24921
|
this.headerActionService = headerActionService;
|
|
26614
|
-
this.elementRef = elementRef;
|
|
26615
24922
|
/**
|
|
26616
24923
|
* Set the modal size of the wizard. Set using `[clrWizardSize]` input.
|
|
26617
24924
|
*/
|
|
@@ -26627,13 +24934,6 @@ class ClrWizard {
|
|
|
26627
24934
|
this._stopCancel = false;
|
|
26628
24935
|
this._stopNavigation = false;
|
|
26629
24936
|
this._disableStepnav = false;
|
|
26630
|
-
/**
|
|
26631
|
-
* Used to communicate to the underlying modal that animations are not
|
|
26632
|
-
* wanted. Primary use is for the display of static/inline wizards.
|
|
26633
|
-
* Set using `[clrWizardPreventModalAnimation]` input.
|
|
26634
|
-
*/
|
|
26635
|
-
/** @deprecated since 3.0, input should be removed in 4.0 because is only related to inline wizards */
|
|
26636
|
-
this._stopModalAnimations = false;
|
|
26637
24937
|
/**
|
|
26638
24938
|
* Emits when the wizard is opened or closed.
|
|
26639
24939
|
* Listen via `(clrWizardOpenChange)` event.
|
|
@@ -26754,9 +25054,6 @@ class ClrWizard {
|
|
|
26754
25054
|
get disableStepnav() {
|
|
26755
25055
|
return this._disableStepnav;
|
|
26756
25056
|
}
|
|
26757
|
-
get stopModalAnimations() {
|
|
26758
|
-
return this._stopModalAnimations ? 'true' : 'false';
|
|
26759
|
-
}
|
|
26760
25057
|
get currentPage() {
|
|
26761
25058
|
return this.navService.currentPage;
|
|
26762
25059
|
}
|
|
@@ -26769,13 +25066,9 @@ class ClrWizard {
|
|
|
26769
25066
|
get isFirst() {
|
|
26770
25067
|
return this.navService.currentPageIsFirst;
|
|
26771
25068
|
}
|
|
26772
|
-
get isStatic() {
|
|
26773
|
-
return this.elementRef.nativeElement.classList.contains('clr-wizard--inline');
|
|
26774
|
-
}
|
|
26775
25069
|
ngAfterContentInit() {
|
|
26776
25070
|
this.pageCollection.pages = this.pages;
|
|
26777
25071
|
this.headerActionService.wizardHeaderActions = this.headerActions;
|
|
26778
|
-
this.initializeButtons();
|
|
26779
25072
|
}
|
|
26780
25073
|
ngDoCheck() {
|
|
26781
25074
|
this.updateNavOnPageChanges();
|
|
@@ -26977,12 +25270,6 @@ class ClrWizard {
|
|
|
26977
25270
|
changes.forEachRemovedItem(() => this.navService.updateNavigation());
|
|
26978
25271
|
}
|
|
26979
25272
|
}
|
|
26980
|
-
initializeButtons() {
|
|
26981
|
-
// Only trigger buttons ready if default is open (inlined)
|
|
26982
|
-
if (this._open) {
|
|
26983
|
-
this.buttonService.buttonsReady = true;
|
|
26984
|
-
}
|
|
26985
|
-
}
|
|
26986
25273
|
emitWizardFinished() {
|
|
26987
25274
|
if (!this.stopNext) {
|
|
26988
25275
|
this.forceFinish();
|
|
@@ -26990,8 +25277,8 @@ class ClrWizard {
|
|
|
26990
25277
|
this.wizardFinished.emit();
|
|
26991
25278
|
}
|
|
26992
25279
|
}
|
|
26993
|
-
ClrWizard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrWizard, deps: [{ token: PLATFORM_ID }, { token: WizardNavigationService }, { token: PageCollectionService }, { token: ButtonHubService }, { token: HeaderActionService }, { token: i0.
|
|
26994
|
-
ClrWizard.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.2", type: ClrWizard, selector: "clr-wizard", inputs: { size: ["clrWizardSize", "size"], closable: ["clrWizardClosable", "closable"], forceForward: ["clrWizardForceForwardNavigation", "forceForward"], clrWizardOpen: "clrWizardOpen", stopNext: ["clrWizardPreventDefaultNext", "stopNext"], stopCancel: ["clrWizardPreventDefaultCancel", "stopCancel"], stopNavigation: ["clrWizardPreventNavigation", "stopNavigation"], disableStepnav: ["clrWizardDisableStepnav", "disableStepnav"]
|
|
25280
|
+
ClrWizard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrWizard, deps: [{ token: PLATFORM_ID }, { token: WizardNavigationService }, { token: PageCollectionService }, { token: ButtonHubService }, { token: HeaderActionService }, { token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Component });
|
|
25281
|
+
ClrWizard.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.2", type: ClrWizard, selector: "clr-wizard", inputs: { size: ["clrWizardSize", "size"], closable: ["clrWizardClosable", "closable"], forceForward: ["clrWizardForceForwardNavigation", "forceForward"], clrWizardOpen: "clrWizardOpen", stopNext: ["clrWizardPreventDefaultNext", "stopNext"], stopCancel: ["clrWizardPreventDefaultCancel", "stopCancel"], stopNavigation: ["clrWizardPreventNavigation", "stopNavigation"], disableStepnav: ["clrWizardDisableStepnav", "disableStepnav"] }, outputs: { _openChanged: "clrWizardOpenChange", onCancel: "clrWizardOnCancel", wizardFinished: "clrWizardOnFinish", onReset: "clrWizardOnReset", currentPageChanged: "clrWizardCurrentPageChanged", onMoveNext: "clrWizardOnNext", onMovePrevious: "clrWizardOnPrevious" }, host: { properties: { "class.clr-wizard": "true", "class.wizard-md": "size == 'md'", "class.wizard-lg": "size == 'lg'", "class.wizard-xl": "size == 'xl'", "class.lastPage": "navService.currentPageIsLast" } }, providers: [WizardNavigationService, PageCollectionService, ButtonHubService, HeaderActionService], queries: [{ propertyName: "pages", predicate: ClrWizardPage, descendants: true }, { propertyName: "headerActions", predicate: ClrWizardHeaderAction }], viewQueries: [{ propertyName: "wizardTitle", first: true, predicate: ["wizardTitle"], descendants: true }], ngImport: i0, template: "<!--\n ~ Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n<clr-modal\n [clrModalOpen]=\"_open\"\n [clrModalSize]=\"size\"\n [clrModalClosable]=\"closable\"\n [clrModalStaticBackdrop]=\"true\"\n [clrModalPreventClose]=\"true\"\n (clrModalAlternateClose)=\"modalCancel()\"\n [clrModalLabelledById]=\"wizardId\"\n>\n <nav class=\"modal-nav clr-wizard-stepnav-wrapper\">\n <h1 class=\"clr-wizard-title\" id=\"{{wizardId}}\"><ng-content select=\"clr-wizard-title\"></ng-content></h1>\n <clr-wizard-stepnav></clr-wizard-stepnav>\n </nav>\n\n <h2 class=\"modal-title\">\n <span tabindex=\"-1\" #wizardTitle class=\"modal-title-text\">\n <ng-template [ngTemplateOutlet]=\"navService.currentPageTitle\"></ng-template>\n </span>\n\n <div class=\"modal-header-actions-wrapper\" *ngIf=\"headerActionService.displayHeaderActionsWrapper\">\n <div *ngIf=\"headerActionService.showWizardHeaderActions\">\n <ng-content select=\"clr-wizard-header-action\"></ng-content>\n </div>\n <div *ngIf=\"headerActionService.currentPageHasHeaderActions\">\n <ng-template [ngTemplateOutlet]=\"navService.currentPage.headerActions\"></ng-template>\n </div>\n </div>\n </h2>\n\n <div class=\"modal-body\">\n <main clr-wizard-pages-wrapper class=\"clr-wizard-content\">\n <ng-content></ng-content>\n </main>\n </div>\n <div class=\"modal-footer clr-wizard-footer\">\n <div class=\"clr-wizard-footer-buttons\">\n <div\n *ngIf=\"navService.currentPage && !navService.currentPage.hasButtons\"\n class=\"clr-wizard-footer-buttons-wrapper\"\n >\n <ng-content select=\"clr-wizard-button\"></ng-content>\n </div>\n <div\n *ngIf=\"navService.currentPage && navService.currentPage.hasButtons\"\n class=\"clr-wizard-footer-buttons-wrapper\"\n >\n <ng-template [ngTemplateOutlet]=\"navService.currentPage.buttons\"></ng-template>\n </div>\n </div>\n </div>\n</clr-modal>\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: "component", type: ClrModal, selector: "clr-modal", inputs: ["clrModalOpen", "clrModalClosable", "clrModalCloseButtonAriaLabel", "clrModalSize", "clrModalStaticBackdrop", "clrModalSkipAnimation", "clrModalPreventClose", "clrModalLabelledById"], outputs: ["clrModalOpenChange", "clrModalAlternateClose"] }, { kind: "directive", type: ClrModalBody, selector: ".modal-body" }, { kind: "component", type: ClrWizardStepnav, selector: "clr-wizard-stepnav" }] });
|
|
26995
25282
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: ClrWizard, decorators: [{
|
|
26996
25283
|
type: Component,
|
|
26997
25284
|
args: [{ selector: 'clr-wizard', providers: [WizardNavigationService, PageCollectionService, ButtonHubService, HeaderActionService], host: {
|
|
@@ -27000,11 +25287,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImpor
|
|
|
27000
25287
|
'[class.wizard-lg]': "size == 'lg'",
|
|
27001
25288
|
'[class.wizard-xl]': "size == 'xl'",
|
|
27002
25289
|
'[class.lastPage]': 'navService.currentPageIsLast',
|
|
27003
|
-
}, template: "<!--\n ~ Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n<clr-modal\n [clrModalOpen]=\"_open\"\n [clrModalSize]=\"size\"\n [clrModalClosable]=\"closable\"\n [clrModalStaticBackdrop]=\"true\"\n [
|
|
25290
|
+
}, template: "<!--\n ~ Copyright (c) 2016-2022 VMware, Inc. All Rights Reserved.\n ~ This software is released under MIT license.\n ~ The full license information can be found in LICENSE in the root directory of this project.\n -->\n\n<clr-modal\n [clrModalOpen]=\"_open\"\n [clrModalSize]=\"size\"\n [clrModalClosable]=\"closable\"\n [clrModalStaticBackdrop]=\"true\"\n [clrModalPreventClose]=\"true\"\n (clrModalAlternateClose)=\"modalCancel()\"\n [clrModalLabelledById]=\"wizardId\"\n>\n <nav class=\"modal-nav clr-wizard-stepnav-wrapper\">\n <h1 class=\"clr-wizard-title\" id=\"{{wizardId}}\"><ng-content select=\"clr-wizard-title\"></ng-content></h1>\n <clr-wizard-stepnav></clr-wizard-stepnav>\n </nav>\n\n <h2 class=\"modal-title\">\n <span tabindex=\"-1\" #wizardTitle class=\"modal-title-text\">\n <ng-template [ngTemplateOutlet]=\"navService.currentPageTitle\"></ng-template>\n </span>\n\n <div class=\"modal-header-actions-wrapper\" *ngIf=\"headerActionService.displayHeaderActionsWrapper\">\n <div *ngIf=\"headerActionService.showWizardHeaderActions\">\n <ng-content select=\"clr-wizard-header-action\"></ng-content>\n </div>\n <div *ngIf=\"headerActionService.currentPageHasHeaderActions\">\n <ng-template [ngTemplateOutlet]=\"navService.currentPage.headerActions\"></ng-template>\n </div>\n </div>\n </h2>\n\n <div class=\"modal-body\">\n <main clr-wizard-pages-wrapper class=\"clr-wizard-content\">\n <ng-content></ng-content>\n </main>\n </div>\n <div class=\"modal-footer clr-wizard-footer\">\n <div class=\"clr-wizard-footer-buttons\">\n <div\n *ngIf=\"navService.currentPage && !navService.currentPage.hasButtons\"\n class=\"clr-wizard-footer-buttons-wrapper\"\n >\n <ng-content select=\"clr-wizard-button\"></ng-content>\n </div>\n <div\n *ngIf=\"navService.currentPage && navService.currentPage.hasButtons\"\n class=\"clr-wizard-footer-buttons-wrapper\"\n >\n <ng-template [ngTemplateOutlet]=\"navService.currentPage.buttons\"></ng-template>\n </div>\n </div>\n </div>\n</clr-modal>\n" }]
|
|
27004
25291
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
27005
25292
|
type: Inject,
|
|
27006
25293
|
args: [PLATFORM_ID]
|
|
27007
|
-
}] }, { type: WizardNavigationService }, { type: PageCollectionService }, { type: ButtonHubService }, { type: HeaderActionService }, { type: i0.
|
|
25294
|
+
}] }, { type: WizardNavigationService }, { type: PageCollectionService }, { type: ButtonHubService }, { type: HeaderActionService }, { type: i0.IterableDiffers }]; }, propDecorators: { size: [{
|
|
27008
25295
|
type: Input,
|
|
27009
25296
|
args: ['clrWizardSize']
|
|
27010
25297
|
}], closable: [{
|
|
@@ -27028,9 +25315,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImpor
|
|
|
27028
25315
|
}], disableStepnav: [{
|
|
27029
25316
|
type: Input,
|
|
27030
25317
|
args: ['clrWizardDisableStepnav']
|
|
27031
|
-
}], _stopModalAnimations: [{
|
|
27032
|
-
type: Input,
|
|
27033
|
-
args: ['clrWizardPreventModalAnimation']
|
|
27034
25318
|
}], _openChanged: [{
|
|
27035
25319
|
type: Output,
|
|
27036
25320
|
args: ['clrWizardOpenChange']
|
|
@@ -27331,15 +25615,12 @@ ClarityModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version:
|
|
|
27331
25615
|
ClrModalModule,
|
|
27332
25616
|
ClrLoadingModule,
|
|
27333
25617
|
ClrConditionalModule,
|
|
27334
|
-
ClrFocusTrapModule,
|
|
27335
25618
|
ClrFocusOnViewInitModule,
|
|
27336
|
-
ClrForTypeAheadModule,
|
|
27337
25619
|
ClrButtonModule,
|
|
27338
25620
|
ClrFormsModule,
|
|
27339
25621
|
ClrLayoutModule,
|
|
27340
25622
|
ClrPopoverModule,
|
|
27341
25623
|
ClrWizardModule,
|
|
27342
|
-
ClrDragAndDropModule,
|
|
27343
25624
|
ClrStepperModule,
|
|
27344
25625
|
ClrSpinnerModule,
|
|
27345
25626
|
ClrProgressBarModule,
|
|
@@ -27351,15 +25632,12 @@ ClarityModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version:
|
|
|
27351
25632
|
ClrModalModule,
|
|
27352
25633
|
ClrLoadingModule,
|
|
27353
25634
|
ClrConditionalModule,
|
|
27354
|
-
ClrFocusTrapModule,
|
|
27355
25635
|
ClrFocusOnViewInitModule,
|
|
27356
|
-
ClrForTypeAheadModule,
|
|
27357
25636
|
ClrButtonModule,
|
|
27358
25637
|
ClrFormsModule,
|
|
27359
25638
|
ClrLayoutModule,
|
|
27360
25639
|
ClrPopoverModule,
|
|
27361
25640
|
ClrWizardModule,
|
|
27362
|
-
ClrDragAndDropModule,
|
|
27363
25641
|
ClrStepperModule,
|
|
27364
25642
|
ClrSpinnerModule,
|
|
27365
25643
|
ClrProgressBarModule,
|
|
@@ -27375,15 +25653,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImpor
|
|
|
27375
25653
|
ClrModalModule,
|
|
27376
25654
|
ClrLoadingModule,
|
|
27377
25655
|
ClrConditionalModule,
|
|
27378
|
-
ClrFocusTrapModule,
|
|
27379
25656
|
ClrFocusOnViewInitModule,
|
|
27380
|
-
ClrForTypeAheadModule,
|
|
27381
25657
|
ClrButtonModule,
|
|
27382
25658
|
ClrFormsModule,
|
|
27383
25659
|
ClrLayoutModule,
|
|
27384
25660
|
ClrPopoverModule,
|
|
27385
25661
|
ClrWizardModule,
|
|
27386
|
-
ClrDragAndDropModule,
|
|
27387
25662
|
ClrStepperModule,
|
|
27388
25663
|
ClrSpinnerModule,
|
|
27389
25664
|
ClrProgressBarModule,
|
|
@@ -27683,5 +25958,5 @@ const CLR_MENU_POSITIONS = [
|
|
|
27683
25958
|
* Generated bundle index. Do not edit.
|
|
27684
25959
|
*/
|
|
27685
25960
|
|
|
27686
|
-
export { CLR_ALERT_DIRECTIVES, CLR_BUTTON_GROUP_DIRECTIVES, CLR_DATAGRID_DIRECTIVES, CLR_DATEPICKER_DIRECTIVES,
|
|
25961
|
+
export { CLR_ALERT_DIRECTIVES, CLR_BUTTON_GROUP_DIRECTIVES, CLR_DATAGRID_DIRECTIVES, CLR_DATEPICKER_DIRECTIVES, CLR_DROPDOWN_DIRECTIVES, CLR_ICON_DIRECTIVES, CLR_LAYOUT_DIRECTIVES, CLR_LOADING_BUTTON_DIRECTIVES, CLR_LOADING_DIRECTIVES, CLR_MENU_POSITIONS, CLR_MODAL_DIRECTIVES, CLR_NAVIGATION_DIRECTIVES, CLR_PROGRESS_BAR_DIRECTIVES, CLR_SIGNPOST_DIRECTIVES, CLR_SPINNER_DIRECTIVES, CLR_STACK_VIEW_DIRECTIVES, CLR_TABS_DIRECTIVES, CLR_TOOLTIP_DIRECTIVES, CLR_TREE_VIEW_DIRECTIVES, CLR_VERTICAL_NAV_DIRECTIVES, CLR_WIZARD_DIRECTIVES, CONDITIONAL_DIRECTIVES, CUSTOM_BUTTON_TYPES, CdsIconCustomTag, ClarityModule, ClrAbstractContainer, ClrAccordion, ClrAccordionContent, ClrAccordionDescription, ClrAccordionModule, ClrAccordionPanel, ClrAccordionTitle, ClrAlert, ClrAlertItem, ClrAlertModule, ClrAlertText, ClrAlerts, ClrAlertsPager, ClrAlignment, ClrAriaCurrentLink, ClrAxis, ClrButton, ClrButtonGroup, ClrButtonGroupModule, ClrButtonModule, ClrCalendar, ClrCheckbox, ClrCheckboxContainer, ClrCheckboxModule, ClrCheckboxWrapper, ClrCombobox, ClrComboboxContainer, ClrComboboxModule, ClrCommonFormsModule, ClrCommonStringsService, ClrConditionalModule, ClrControl, ClrControlContainer, ClrControlError, ClrControlHelper, ClrControlSuccess, ClrDataModule, ClrDatagrid, ClrDatagridActionBar, ClrDatagridActionOverflow, ClrDatagridCell, ClrDatagridColumn, ClrDatagridColumnSeparator, ClrDatagridColumnToggle, ClrDatagridColumnToggleButton, ClrDatagridColumnToggleTitle, ClrDatagridDetail, ClrDatagridDetailBody, ClrDatagridDetailHeader, ClrDatagridFilter, ClrDatagridFooter, ClrDatagridHideableColumn, ClrDatagridItems, ClrDatagridItemsTrackBy, ClrDatagridModule, ClrDatagridPageSize, ClrDatagridPagination, ClrDatagridPlaceholder, ClrDatagridRow, ClrDatagridRowDetail, ClrDatagridSortOrder, ClrDatalist, ClrDatalistContainer, ClrDatalistInput, ClrDatalistModule, ClrDateContainer, ClrDateInput, ClrDateInputValidator, ClrDatepickerModule, ClrDatepickerViewManager, ClrDay, ClrDaypicker, ClrDestroyService, ClrDropdown, ClrDropdownItem, ClrDropdownMenu, ClrDropdownModule, ClrDropdownTrigger, ClrEmphasisModule, ClrExpandableAnimation, ClrFocusOnViewInit, ClrFocusOnViewInitModule, ClrForm, ClrFormLayout, ClrFormsModule, ClrHeader, ClrIconCustomTag, ClrIconModule, ClrIfActive, ClrIfDetail, ClrIfError, ClrIfExpanded, ClrIfOpen, ClrIfSuccess, ClrInput, ClrInputContainer, ClrInputModule, ClrLabel, ClrLayout, ClrLayoutModule, ClrLoading, ClrLoadingButton, ClrLoadingButtonModule, ClrLoadingModule, ClrLoadingState, ClrMainContainer, ClrMainContainerModule, ClrModal, ClrModalBody, ClrModalModule, ClrMonthpicker, ClrNavLevel, ClrNavigationModule, ClrOption, ClrOptionItems, ClrOptionSelected, ClrOptions, ClrPassword, ClrPasswordContainer, ClrPasswordModule, ClrPopoverAnchor, ClrPopoverContent, ClrPopoverEventsService, ClrPopoverModule, ClrPopoverPositionService, ClrPopoverToggleService, ClrProgressBar, ClrProgressBarModule, ClrRadio, ClrRadioContainer, ClrRadioModule, ClrRadioWrapper, ClrRange, ClrRangeContainer, ClrRangeModule, ClrRecursiveForOf, ClrSelect, ClrSelectContainer, ClrSelectModule, ClrSelectedState, ClrSide, ClrSignpost, ClrSignpostContent, ClrSignpostModule, ClrSignpostTrigger, ClrSpinner, ClrSpinnerModule, ClrStackBlock, ClrStackContentInput, ClrStackHeader, ClrStackView, ClrStackViewCustomTags, ClrStackViewLabel, ClrStackViewModule, ClrStepButton, ClrStepButtonType, ClrStepper, ClrStepperModule, ClrStepperPanel, 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, ClrWizardCustomTags, ClrWizardHeaderAction, ClrWizardModule, ClrWizardPage, ClrWizardPageButtons, ClrWizardPageHeaderActions, ClrWizardPageNavTitle, ClrWizardPageTitle, ClrWizardStepnav, ClrWizardStepnavItem, 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, DatagridWillyWonka as ÇlrDatagridWillyWonka, ExpandableOompaLoompa as ÇlrExpandableOompaLoompa, StepperOompaLoompa as ÇlrStepperOompaLoompa, StepperWillyWonka as ÇlrStepperWillyWonka, TabsWillyWonka as ÇlrTabsWillyWonka, WrappedCell as ÇlrWrappedCell, WrappedColumn as ÇlrWrappedColumn, WrappedRow as ÇlrWrappedRow };
|
|
27687
25962
|
//# sourceMappingURL=clr-angular.mjs.map
|