@design-factory/design-factory 18.1.1 → 19.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/design-factory-initial-branding.css +1 -1
- package/design-factory.css +1 -1
- package/fesm2022/design-factory.mjs +748 -921
- package/fesm2022/design-factory.mjs.map +1 -1
- package/lib/angular/accessibility/components/skip-links-container/skip-links-container.component.d.ts +3 -9
- package/lib/angular/accessibility/directives/skip-link.directive.d.ts +3 -9
- package/lib/angular/card/manage-card-selection.directive.d.ts +5 -5
- package/lib/angular/datepicker/datepicker-range.directive.d.ts +5 -6
- package/lib/angular/datepicker/datepicker.module.d.ts +3 -5
- package/lib/angular/inputs/icon/inputicon.directive.d.ts +5 -6
- package/lib/angular/mediaqueries/ifMedia.directive.d.ts +8 -9
- package/lib/angular/modal/modal.service.d.ts +4 -0
- package/lib/angular/progressbar/progressbar.component.d.ts +18 -28
- package/lib/angular/progressindicator/default/default-spinner.component.d.ts +4 -4
- package/lib/angular/progressindicator/progressindicator-backdrop.component.d.ts +4 -4
- package/lib/angular/progressindicator/progressindicator-container.component.d.ts +5 -7
- package/lib/angular/progressindicator/progressindicator.directive.d.ts +9 -11
- package/lib/angular/selects/events/manage-badge-events.directive.d.ts +4 -5
- package/lib/angular/selects/option-highlight.directive.d.ts +7 -12
- package/lib/angular/sidenav/dfSideNavCollapse.d.ts +16 -18
- package/lib/angular/sidenav/excludeTrap.directive.d.ts +9 -10
- package/lib/angular/sidenav/sidenav.component.d.ts +7 -8
- package/lib/angular/sidenav/sidenavlist.component.d.ts +8 -8
- package/lib/angular/slider/direction/sliderdirection.directive.d.ts +5 -7
- package/lib/angular/slider/lib/slider-element.directive.d.ts +2 -1
- package/lib/angular/slider/lib/slider-handle.directive.d.ts +1 -1
- package/lib/angular/slider/lib/slider-label.directive.d.ts +1 -1
- package/lib/angular/slider/lib/slider.component.d.ts +1 -1
- package/lib/angular/slider/lib/tooltip-wrapper.component.d.ts +1 -1
- package/lib/angular/slider/slider.module.d.ts +1 -1
- package/lib/angular/stepper/stepper.component.d.ts +7 -8
- package/lib/angular/utils/titleTruncate.directive.d.ts +2 -3
- package/lib/angular/waves-of-progress/waves.directive.d.ts +4 -3
- package/lib/index.d.ts +0 -1
- package/package.json +14 -16
- package/schematics/ng-add/index.js +1 -1
- package/styles/scss/agnosui/_variables.scss +9 -3
- package/styles/scss/bootstrap/_variables.scss +54 -12
- package/styles/scss/components/accordion/_accordion.scss +67 -6
- package/styles/scss/components/accordion/_accordion.variables.scss +2 -0
- package/styles/scss/components/alert/_alert.scss +3 -2
- package/styles/scss/components/badge/_badge.scss +13 -3
- package/styles/scss/components/badge/_badge.variables.scss +1 -0
- package/styles/scss/components/button/_button.scss +5 -0
- package/styles/scss/components/form/_form.scss +4 -0
- package/styles/scss/components/sidenav/_sidenav.scss +5 -2
- package/styles/scss/df-styles-namespace.scss +3 -1
- package/styles/scss/df-styles.scss +3 -1
- package/styles/scss/themes/brand2023/_variables.scss +80 -28
- package/esm2022/design-factory.mjs +0 -5
- package/esm2022/environment.mjs +0 -5
- package/esm2022/index.mjs +0 -5
- package/esm2022/lib/angular/accessibility/accessibility.module.mjs +0 -19
- package/esm2022/lib/angular/accessibility/components/skip-links-container/skip-links-container.component.mjs +0 -32
- package/esm2022/lib/angular/accessibility/directives/skip-link.directive.mjs +0 -64
- package/esm2022/lib/angular/alert/alert.module.mjs +0 -17
- package/esm2022/lib/angular/animation/ngbTransition.mjs +0 -76
- package/esm2022/lib/angular/animation/util.mjs +0 -30
- package/esm2022/lib/angular/card/card-advanced.module.mjs +0 -17
- package/esm2022/lib/angular/card/manage-card-selection.directive.mjs +0 -47
- package/esm2022/lib/angular/datepicker/closedatepicker.directive.mjs +0 -38
- package/esm2022/lib/angular/datepicker/datepicker-keyboard-nav.service.mjs +0 -39
- package/esm2022/lib/angular/datepicker/datepicker-range.directive.mjs +0 -101
- package/esm2022/lib/angular/datepicker/datepicker-range.service.mjs +0 -97
- package/esm2022/lib/angular/datepicker/datepicker.module.mjs +0 -42
- package/esm2022/lib/angular/df.module.mjs +0 -102
- package/esm2022/lib/angular/footer/footer.module.mjs +0 -17
- package/esm2022/lib/angular/icon/amadeus-icon.mjs +0 -79
- package/esm2022/lib/angular/icon/icon.module.mjs +0 -17
- package/esm2022/lib/angular/icon/insert/insert-icon.directive.mjs +0 -47
- package/esm2022/lib/angular/icon/insert/insert-icon.module.mjs +0 -17
- package/esm2022/lib/angular/inputs/click/trigger-click.directive.mjs +0 -28
- package/esm2022/lib/angular/inputs/icon/inputicon.directive.mjs +0 -95
- package/esm2022/lib/angular/inputs/input-advanced.module.mjs +0 -19
- package/esm2022/lib/angular/mediaqueries/ifMedia.directive.mjs +0 -52
- package/esm2022/lib/angular/mediaqueries/media.module.mjs +0 -17
- package/esm2022/lib/angular/mediaqueries/media.service.mjs +0 -46
- package/esm2022/lib/angular/mediaqueries/mediaUtils.service.mjs +0 -185
- package/esm2022/lib/angular/modal/modal.service.mjs +0 -36
- package/esm2022/lib/angular/popover/config/popover.config.mjs +0 -15
- package/esm2022/lib/angular/popover/popover.module.mjs +0 -17
- package/esm2022/lib/angular/progressbar/progressbar.component.mjs +0 -156
- package/esm2022/lib/angular/progressbar/progressbar.module.mjs +0 -18
- package/esm2022/lib/angular/progressindicator/default/default-spinner.component.mjs +0 -23
- package/esm2022/lib/angular/progressindicator/progressindicator-backdrop.component.mjs +0 -29
- package/esm2022/lib/angular/progressindicator/progressindicator-config.mjs +0 -25
- package/esm2022/lib/angular/progressindicator/progressindicator-container.component.mjs +0 -52
- package/esm2022/lib/angular/progressindicator/progressindicator-ref.mjs +0 -8
- package/esm2022/lib/angular/progressindicator/progressindicator.directive.mjs +0 -39
- package/esm2022/lib/angular/progressindicator/progressindicator.module.mjs +0 -45
- package/esm2022/lib/angular/progressindicator/progressindicator.service.mjs +0 -170
- package/esm2022/lib/angular/right-to-left/directionDetection.service.mjs +0 -32
- package/esm2022/lib/angular/selects/events/manage-badge-events.directive.mjs +0 -65
- package/esm2022/lib/angular/selects/nav/manage-nav-select.directive.mjs +0 -108
- package/esm2022/lib/angular/selects/option-highlight.directive.mjs +0 -59
- package/esm2022/lib/angular/selects/select.model.mjs +0 -2
- package/esm2022/lib/angular/selects/select.module.mjs +0 -22
- package/esm2022/lib/angular/sidenav/dfSideNavAnimation.mjs +0 -73
- package/esm2022/lib/angular/sidenav/dfSideNavCollapse.mjs +0 -94
- package/esm2022/lib/angular/sidenav/dfSideNavCollapse.module.mjs +0 -18
- package/esm2022/lib/angular/sidenav/dfSideNavCollapse.service.mjs +0 -37
- package/esm2022/lib/angular/sidenav/dfSideNavCollapseConfig.mjs +0 -27
- package/esm2022/lib/angular/sidenav/excludeTrap.directive.mjs +0 -55
- package/esm2022/lib/angular/sidenav/manage-sidenav.directive.mjs +0 -26
- package/esm2022/lib/angular/sidenav/sidenav-config.mjs +0 -25
- package/esm2022/lib/angular/sidenav/sidenav.component.mjs +0 -86
- package/esm2022/lib/angular/sidenav/sidenav.module.mjs +0 -52
- package/esm2022/lib/angular/sidenav/sidenav.service.mjs +0 -316
- package/esm2022/lib/angular/sidenav/sidenavlist.component.mjs +0 -59
- package/esm2022/lib/angular/slider/direction/sliderdirection.directive.mjs +0 -36
- package/esm2022/lib/angular/slider/lib/change-context.mjs +0 -3
- package/esm2022/lib/angular/slider/lib/compatibility-helper.mjs +0 -15
- package/esm2022/lib/angular/slider/lib/event-listener-helper.mjs +0 -77
- package/esm2022/lib/angular/slider/lib/event-listener.mjs +0 -3
- package/esm2022/lib/angular/slider/lib/math-helper.mjs +0 -15
- package/esm2022/lib/angular/slider/lib/options.mjs +0 -123
- package/esm2022/lib/angular/slider/lib/pointer-type.mjs +0 -9
- package/esm2022/lib/angular/slider/lib/slider-element.directive.mjs +0 -190
- package/esm2022/lib/angular/slider/lib/slider-handle.directive.mjs +0 -65
- package/esm2022/lib/angular/slider/lib/slider-label.directive.mjs +0 -41
- package/esm2022/lib/angular/slider/lib/slider.component.mjs +0 -1998
- package/esm2022/lib/angular/slider/lib/tooltip-wrapper.component.mjs +0 -23
- package/esm2022/lib/angular/slider/lib/value-helper.mjs +0 -50
- package/esm2022/lib/angular/slider/slider.module.mjs +0 -37
- package/esm2022/lib/angular/stepper/stepper.component.mjs +0 -65
- package/esm2022/lib/angular/stepper/stepper.directive.mjs +0 -174
- package/esm2022/lib/angular/stepper/stepper.module.mjs +0 -17
- package/esm2022/lib/angular/stepper/stepper.service.mjs +0 -213
- package/esm2022/lib/angular/toast/toast.module.mjs +0 -17
- package/esm2022/lib/angular/tooltip/tooltip.module.mjs +0 -18
- package/esm2022/lib/angular/tooltip/truncate/tooltipTruncate.directive.mjs +0 -31
- package/esm2022/lib/angular/utils/html-element-helper.mjs +0 -8
- package/esm2022/lib/angular/utils/scrollbar.service.mjs +0 -79
- package/esm2022/lib/angular/utils/titleTruncate.directive.mjs +0 -39
- package/esm2022/lib/angular/waves-of-progress/waves.directive.mjs +0 -86
- package/esm2022/lib/angular/waves-of-progress/waves.module.mjs +0 -16
- package/esm2022/lib/index.mjs +0 -93
- package/lib/angular/datepicker/closedatepicker.directive.d.ts +0 -10
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';
|
|
2
|
-
import { DfProgressIndicatorContentPosition } from './progressindicator-config';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class DfProgressIndicatorContainerComponent {
|
|
5
|
-
constructor() {
|
|
6
|
-
this.DEFAULT_CLASS_POSITION = 'df-progressindicator-centered';
|
|
7
|
-
this.positionClass = this.DEFAULT_CLASS_POSITION;
|
|
8
|
-
}
|
|
9
|
-
get classes() {
|
|
10
|
-
return `df-progressindicator-container ${this.containerClass || ''} ${this.positionClass}`;
|
|
11
|
-
}
|
|
12
|
-
set position(newPosition) {
|
|
13
|
-
switch (newPosition) {
|
|
14
|
-
case DfProgressIndicatorContentPosition.TOP:
|
|
15
|
-
this.positionClass = 'df-progressindicator-top';
|
|
16
|
-
break;
|
|
17
|
-
case DfProgressIndicatorContentPosition.BOTTOM:
|
|
18
|
-
this.positionClass = 'df-progressindicator-bottom';
|
|
19
|
-
break;
|
|
20
|
-
default:
|
|
21
|
-
this.positionClass = this.DEFAULT_CLASS_POSITION;
|
|
22
|
-
}
|
|
23
|
-
this._position = newPosition;
|
|
24
|
-
}
|
|
25
|
-
get position() {
|
|
26
|
-
return this._position;
|
|
27
|
-
}
|
|
28
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DfProgressIndicatorContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
29
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: DfProgressIndicatorContainerComponent, isStandalone: true, selector: "df-progressindicator-container", inputs: { containerClass: "containerClass", position: "position" }, host: { properties: { "class": "this.classes" } }, ngImport: i0, template: `
|
|
30
|
-
<ng-content></ng-content>
|
|
31
|
-
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
32
|
-
}
|
|
33
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DfProgressIndicatorContainerComponent, decorators: [{
|
|
34
|
-
type: Component,
|
|
35
|
-
args: [{
|
|
36
|
-
selector: 'df-progressindicator-container',
|
|
37
|
-
encapsulation: ViewEncapsulation.None,
|
|
38
|
-
template: `
|
|
39
|
-
<ng-content></ng-content>
|
|
40
|
-
`,
|
|
41
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
42
|
-
standalone: true
|
|
43
|
-
}]
|
|
44
|
-
}], propDecorators: { classes: [{
|
|
45
|
-
type: HostBinding,
|
|
46
|
-
args: ['class']
|
|
47
|
-
}], containerClass: [{
|
|
48
|
-
type: Input
|
|
49
|
-
}], position: [{
|
|
50
|
-
type: Input
|
|
51
|
-
}] } });
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3NpbmRpY2F0b3ItY29udGFpbmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1mYWN0b3J5L3NyYy9saWIvYW5ndWxhci9wcm9ncmVzc2luZGljYXRvci9wcm9ncmVzc2luZGljYXRvci1jb250YWluZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFXaEYsTUFBTSxPQUFPLHFDQUFxQztJQVRsRDtRQVVtQiwyQkFBc0IsR0FBRywrQkFBK0IsQ0FBQztRQXdCMUUsa0JBQWEsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUM7S0FDN0M7SUF4QkMsSUFBMEIsT0FBTztRQUMvQixPQUFPLGtDQUFrQyxJQUFJLENBQUMsY0FBYyxJQUFJLEVBQUUsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDN0YsQ0FBQztJQUdELElBQWEsUUFBUSxDQUFDLFdBQTJEO1FBQy9FLFFBQVEsV0FBVyxFQUFFLENBQUM7WUFDcEIsS0FBSyxrQ0FBa0MsQ0FBQyxHQUFHO2dCQUN6QyxJQUFJLENBQUMsYUFBYSxHQUFHLDBCQUEwQixDQUFDO2dCQUNoRCxNQUFNO1lBQ1IsS0FBSyxrQ0FBa0MsQ0FBQyxNQUFNO2dCQUM1QyxJQUFJLENBQUMsYUFBYSxHQUFHLDZCQUE2QixDQUFDO2dCQUNuRCxNQUFNO1lBQ1I7Z0JBQ0UsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUM7UUFDckQsQ0FBQztRQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDO0lBQy9CLENBQUM7SUFDRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQzs4R0F0QlUscUNBQXFDO2tHQUFyQyxxQ0FBcUMsaU5BTnRDOztHQUVUOzsyRkFJVSxxQ0FBcUM7a0JBVGpELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdDQUFnQztvQkFDMUMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLFFBQVEsRUFBRTs7R0FFVDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzhCQUcyQixPQUFPO3NCQUFoQyxXQUFXO3VCQUFDLE9BQU87Z0JBSVgsY0FBYztzQkFBdEIsS0FBSztnQkFDTyxRQUFRO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGZQcm9ncmVzc0luZGljYXRvckNvbnRlbnRQb3NpdGlvbiB9IGZyb20gJy4vcHJvZ3Jlc3NpbmRpY2F0b3ItY29uZmlnJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGYtcHJvZ3Jlc3NpbmRpY2F0b3ItY29udGFpbmVyJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIGAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIERmUHJvZ3Jlc3NJbmRpY2F0b3JDb250YWluZXJDb21wb25lbnQge1xuICBwcml2YXRlIHJlYWRvbmx5IERFRkFVTFRfQ0xBU1NfUE9TSVRJT04gPSAnZGYtcHJvZ3Jlc3NpbmRpY2F0b3ItY2VudGVyZWQnO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgZ2V0IGNsYXNzZXMoKSB7XG4gICAgcmV0dXJuIGBkZi1wcm9ncmVzc2luZGljYXRvci1jb250YWluZXIgJHt0aGlzLmNvbnRhaW5lckNsYXNzIHx8ICcnfSAke3RoaXMucG9zaXRpb25DbGFzc31gO1xuICB9XG5cbiAgQElucHV0KCkgY29udGFpbmVyQ2xhc3M/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNldCBwb3NpdGlvbihuZXdQb3NpdGlvbjogRGZQcm9ncmVzc0luZGljYXRvckNvbnRlbnRQb3NpdGlvbiB8IHVuZGVmaW5lZCkge1xuICAgIHN3aXRjaCAobmV3UG9zaXRpb24pIHtcbiAgICAgIGNhc2UgRGZQcm9ncmVzc0luZGljYXRvckNvbnRlbnRQb3NpdGlvbi5UT1A6XG4gICAgICAgIHRoaXMucG9zaXRpb25DbGFzcyA9ICdkZi1wcm9ncmVzc2luZGljYXRvci10b3AnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRGZQcm9ncmVzc0luZGljYXRvckNvbnRlbnRQb3NpdGlvbi5CT1RUT006XG4gICAgICAgIHRoaXMucG9zaXRpb25DbGFzcyA9ICdkZi1wcm9ncmVzc2luZGljYXRvci1ib3R0b20nO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRoaXMucG9zaXRpb25DbGFzcyA9IHRoaXMuREVGQVVMVF9DTEFTU19QT1NJVElPTjtcbiAgICB9XG4gICAgdGhpcy5fcG9zaXRpb24gPSBuZXdQb3NpdGlvbjtcbiAgfVxuICBnZXQgcG9zaXRpb24oKTogRGZQcm9ncmVzc0luZGljYXRvckNvbnRlbnRQb3NpdGlvbiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX3Bvc2l0aW9uO1xuICB9XG4gIHByaXZhdGUgX3Bvc2l0aW9uPzogRGZQcm9ncmVzc0luZGljYXRvckNvbnRlbnRQb3NpdGlvbjtcblxuICBwb3NpdGlvbkNsYXNzID0gdGhpcy5ERUZBVUxUX0NMQVNTX1BPU0lUSU9OO1xufVxuIl19
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export class DfProgressIndicatorRef {
|
|
2
|
-
constructor(containerRef, contentRef, backdropRef) {
|
|
3
|
-
this.containerRef = containerRef;
|
|
4
|
-
this.contentRef = contentRef;
|
|
5
|
-
this.backdropRef = backdropRef;
|
|
6
|
-
}
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3NpbmRpY2F0b3ItcmVmLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWZhY3Rvcnkvc3JjL2xpYi9hbmd1bGFyL3Byb2dyZXNzaW5kaWNhdG9yL3Byb2dyZXNzaW5kaWNhdG9yLXJlZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLFlBQ1MsWUFBaUUsRUFDakUsVUFBNEQsRUFDNUQsV0FBZ0U7UUFGaEUsaUJBQVksR0FBWixZQUFZLENBQXFEO1FBQ2pFLGVBQVUsR0FBVixVQUFVLENBQWtEO1FBQzVELGdCQUFXLEdBQVgsV0FBVyxDQUFxRDtJQUN0RSxDQUFDO0NBQ0wiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRSZWYsIEVtYmVkZGVkVmlld1JlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGZQcm9ncmVzc0luZGljYXRvckJhY2tkcm9wQ29tcG9uZW50IH0gZnJvbSAnLi9wcm9ncmVzc2luZGljYXRvci1iYWNrZHJvcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGZQcm9ncmVzc0luZGljYXRvckNvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vcHJvZ3Jlc3NpbmRpY2F0b3ItY29udGFpbmVyLmNvbXBvbmVudCc7XG5cbmV4cG9ydCBjbGFzcyBEZlByb2dyZXNzSW5kaWNhdG9yUmVmIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGNvbnRhaW5lclJlZjogQ29tcG9uZW50UmVmPERmUHJvZ3Jlc3NJbmRpY2F0b3JDb250YWluZXJDb21wb25lbnQ+LFxuICAgIHB1YmxpYyBjb250ZW50UmVmOiBDb21wb25lbnRSZWY8dW5rbm93bj4gfCBFbWJlZGRlZFZpZXdSZWY8dW5rbm93bj4sXG4gICAgcHVibGljIGJhY2tkcm9wUmVmPzogQ29tcG9uZW50UmVmPERmUHJvZ3Jlc3NJbmRpY2F0b3JCYWNrZHJvcENvbXBvbmVudD5cbiAgKSB7fVxufVxuIl19
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { Directive, Input } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "./progressindicator.service";
|
|
4
|
-
export class DfProgressIndicatorDirective {
|
|
5
|
-
constructor(elementRef, progressService) {
|
|
6
|
-
this.elementRef = elementRef;
|
|
7
|
-
this.progressService = progressService;
|
|
8
|
-
}
|
|
9
|
-
ngOnChanges(changes) {
|
|
10
|
-
if (changes['dfProgressIndicator']) {
|
|
11
|
-
const isProgressing = this.dfProgressIndicator;
|
|
12
|
-
if (isProgressing) {
|
|
13
|
-
const config = {
|
|
14
|
-
...this.dfProgressIndicatorConfig?.options,
|
|
15
|
-
container: this.elementRef.nativeElement
|
|
16
|
-
};
|
|
17
|
-
this.progressIndicatorRef = this.progressService.open(this.dfProgressIndicatorConfig?.content, config);
|
|
18
|
-
}
|
|
19
|
-
else if (!isProgressing && this.progressIndicatorRef) {
|
|
20
|
-
this.progressService.close(this.progressIndicatorRef);
|
|
21
|
-
this.progressIndicatorRef = undefined;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DfProgressIndicatorDirective, deps: [{ token: i0.ElementRef }, { token: i1.DfProgressIndicatorService }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
26
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.7", type: DfProgressIndicatorDirective, isStandalone: true, selector: "[dfProgressIndicator]", inputs: { dfProgressIndicator: "dfProgressIndicator", dfProgressIndicatorConfig: "dfProgressIndicatorConfig" }, usesOnChanges: true, ngImport: i0 }); }
|
|
27
|
-
}
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DfProgressIndicatorDirective, decorators: [{
|
|
29
|
-
type: Directive,
|
|
30
|
-
args: [{
|
|
31
|
-
selector: '[dfProgressIndicator]',
|
|
32
|
-
standalone: true
|
|
33
|
-
}]
|
|
34
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.DfProgressIndicatorService }], propDecorators: { dfProgressIndicator: [{
|
|
35
|
-
type: Input
|
|
36
|
-
}], dfProgressIndicatorConfig: [{
|
|
37
|
-
type: Input
|
|
38
|
-
}] } });
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3NpbmRpY2F0b3IuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWZhY3Rvcnkvc3JjL2xpYi9hbmd1bGFyL3Byb2dyZXNzaW5kaWNhdG9yL3Byb2dyZXNzaW5kaWNhdG9yLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBNEIsTUFBTSxlQUFlLENBQUM7OztBQVN2RixNQUFNLE9BQU8sNEJBQTRCO0lBU3ZDLFlBQTZCLFVBQXNCLEVBQW1CLGVBQTJDO1FBQXBGLGVBQVUsR0FBVixVQUFVLENBQVk7UUFBbUIsb0JBQWUsR0FBZixlQUFlLENBQTRCO0lBQUcsQ0FBQztJQUVySCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUFDO1lBQ25DLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztZQUMvQyxJQUFJLGFBQWEsRUFBRSxDQUFDO2dCQUNsQixNQUFNLE1BQU0sR0FBK0I7b0JBQ3pDLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixFQUFFLE9BQU87b0JBQzFDLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWE7aUJBQ3pDLENBQUM7Z0JBQ0YsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDekcsQ0FBQztpQkFBTSxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO2dCQUN2RCxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztnQkFDdEQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLFNBQVMsQ0FBQztZQUN4QyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7OEdBekJVLDRCQUE0QjtrR0FBNUIsNEJBQTRCOzsyRkFBNUIsNEJBQTRCO2tCQUp4QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjt3SEFFVSxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0cseUJBQXlCO3NCQUFqQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEZlByb2dyZXNzSW5kaWNhdG9yU2VydmljZSwgRGZQcm9ncmVzc0luZGljYXRvckNvbnRlbnQgfSBmcm9tICcuL3Byb2dyZXNzaW5kaWNhdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGZQcm9ncmVzc0luZGljYXRvck9wdGlvbnMgfSBmcm9tICcuL3Byb2dyZXNzaW5kaWNhdG9yLWNvbmZpZyc7XG5pbXBvcnQgeyBEZlByb2dyZXNzSW5kaWNhdG9yUmVmIH0gZnJvbSAnLi9wcm9ncmVzc2luZGljYXRvci1yZWYnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZGZQcm9ncmVzc0luZGljYXRvcl0nLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIERmUHJvZ3Jlc3NJbmRpY2F0b3JEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBkZlByb2dyZXNzSW5kaWNhdG9yITogYm9vbGVhbjtcbiAgQElucHV0KCkgZGZQcm9ncmVzc0luZGljYXRvckNvbmZpZz86IHtcbiAgICBjb250ZW50PzogRGZQcm9ncmVzc0luZGljYXRvckNvbnRlbnQ8dW5rbm93bj47XG4gICAgb3B0aW9uczogRGZQcm9ncmVzc0luZGljYXRvck9wdGlvbnM7XG4gIH07XG5cbiAgcHJpdmF0ZSBwcm9ncmVzc0luZGljYXRvclJlZjogRGZQcm9ncmVzc0luZGljYXRvclJlZiB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgcmVhZG9ubHkgcHJvZ3Jlc3NTZXJ2aWNlOiBEZlByb2dyZXNzSW5kaWNhdG9yU2VydmljZSkge31cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2RmUHJvZ3Jlc3NJbmRpY2F0b3InXSkge1xuICAgICAgY29uc3QgaXNQcm9ncmVzc2luZyA9IHRoaXMuZGZQcm9ncmVzc0luZGljYXRvcjtcbiAgICAgIGlmIChpc1Byb2dyZXNzaW5nKSB7XG4gICAgICAgIGNvbnN0IGNvbmZpZzogRGZQcm9ncmVzc0luZGljYXRvck9wdGlvbnMgPSB7XG4gICAgICAgICAgLi4udGhpcy5kZlByb2dyZXNzSW5kaWNhdG9yQ29uZmlnPy5vcHRpb25zLFxuICAgICAgICAgIGNvbnRhaW5lcjogdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5wcm9ncmVzc0luZGljYXRvclJlZiA9IHRoaXMucHJvZ3Jlc3NTZXJ2aWNlLm9wZW4odGhpcy5kZlByb2dyZXNzSW5kaWNhdG9yQ29uZmlnPy5jb250ZW50LCBjb25maWcpO1xuICAgICAgfSBlbHNlIGlmICghaXNQcm9ncmVzc2luZyAmJiB0aGlzLnByb2dyZXNzSW5kaWNhdG9yUmVmKSB7XG4gICAgICAgIHRoaXMucHJvZ3Jlc3NTZXJ2aWNlLmNsb3NlKHRoaXMucHJvZ3Jlc3NJbmRpY2F0b3JSZWYpO1xuICAgICAgICB0aGlzLnByb2dyZXNzSW5kaWNhdG9yUmVmID0gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { DfProgressbarModule } from '../progressbar/progressbar.module';
|
|
3
|
-
import { DfProgressIndicatorContainerComponent } from './progressindicator-container.component';
|
|
4
|
-
import { DfDefaultSpinnerComponent } from './default/default-spinner.component';
|
|
5
|
-
import { DfProgressIndicatorBackdropComponent } from './progressindicator-backdrop.component';
|
|
6
|
-
import { DfProgressIndicatorDirective } from './progressindicator.directive';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
export { DfProgressIndicatorContainerComponent } from './progressindicator-container.component';
|
|
9
|
-
export { DfDefaultSpinnerComponent } from './default/default-spinner.component';
|
|
10
|
-
export { DfProgressIndicatorBackdropComponent } from './progressindicator-backdrop.component';
|
|
11
|
-
export { DfProgressIndicatorDirective } from './progressindicator.directive';
|
|
12
|
-
export class DfProgressIndicatorModule {
|
|
13
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DfProgressIndicatorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
14
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.7", ngImport: i0, type: DfProgressIndicatorModule, imports: [DfDefaultSpinnerComponent,
|
|
15
|
-
DfProgressbarModule,
|
|
16
|
-
DfProgressIndicatorBackdropComponent,
|
|
17
|
-
DfProgressIndicatorContainerComponent,
|
|
18
|
-
DfProgressIndicatorDirective], exports: [DfProgressbarModule,
|
|
19
|
-
DfProgressIndicatorContainerComponent,
|
|
20
|
-
DfProgressIndicatorDirective,
|
|
21
|
-
DfProgressIndicatorBackdropComponent,
|
|
22
|
-
DfDefaultSpinnerComponent] }); }
|
|
23
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DfProgressIndicatorModule, imports: [DfDefaultSpinnerComponent,
|
|
24
|
-
DfProgressbarModule, DfProgressbarModule] }); }
|
|
25
|
-
}
|
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DfProgressIndicatorModule, decorators: [{
|
|
27
|
-
type: NgModule,
|
|
28
|
-
args: [{
|
|
29
|
-
imports: [
|
|
30
|
-
DfDefaultSpinnerComponent,
|
|
31
|
-
DfProgressbarModule,
|
|
32
|
-
DfProgressIndicatorBackdropComponent,
|
|
33
|
-
DfProgressIndicatorContainerComponent,
|
|
34
|
-
DfProgressIndicatorDirective
|
|
35
|
-
],
|
|
36
|
-
exports: [
|
|
37
|
-
DfProgressbarModule,
|
|
38
|
-
DfProgressIndicatorContainerComponent,
|
|
39
|
-
DfProgressIndicatorDirective,
|
|
40
|
-
DfProgressIndicatorBackdropComponent,
|
|
41
|
-
DfDefaultSpinnerComponent
|
|
42
|
-
]
|
|
43
|
-
}]
|
|
44
|
-
}] });
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3NpbmRpY2F0b3IubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWZhY3Rvcnkvc3JjL2xpYi9hbmd1bGFyL3Byb2dyZXNzaW5kaWNhdG9yL3Byb2dyZXNzaW5kaWNhdG9yLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2hHLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzlGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLCtCQUErQixDQUFDOztBQUU3RSxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM5RixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQWtCN0UsTUFBTSxPQUFPLHlCQUF5Qjs4R0FBekIseUJBQXlCOytHQUF6Qix5QkFBeUIsWUFkbEMseUJBQXlCO1lBQ3pCLG1CQUFtQjtZQUNuQixvQ0FBb0M7WUFDcEMscUNBQXFDO1lBQ3JDLDRCQUE0QixhQUc1QixtQkFBbUI7WUFDbkIscUNBQXFDO1lBQ3JDLDRCQUE0QjtZQUM1QixvQ0FBb0M7WUFDcEMseUJBQXlCOytHQUdoQix5QkFBeUIsWUFkbEMseUJBQXlCO1lBQ3pCLG1CQUFtQixFQU1uQixtQkFBbUI7OzJGQU9WLHlCQUF5QjtrQkFoQnJDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLHlCQUF5Qjt3QkFDekIsbUJBQW1CO3dCQUNuQixvQ0FBb0M7d0JBQ3BDLHFDQUFxQzt3QkFDckMsNEJBQTRCO3FCQUM3QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsbUJBQW1CO3dCQUNuQixxQ0FBcUM7d0JBQ3JDLDRCQUE0Qjt3QkFDNUIsb0NBQW9DO3dCQUNwQyx5QkFBeUI7cUJBQzFCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERmUHJvZ3Jlc3NiYXJNb2R1bGUgfSBmcm9tICcuLi9wcm9ncmVzc2Jhci9wcm9ncmVzc2Jhci5tb2R1bGUnO1xuaW1wb3J0IHsgRGZQcm9ncmVzc0luZGljYXRvckNvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vcHJvZ3Jlc3NpbmRpY2F0b3ItY29udGFpbmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEZkRlZmF1bHRTcGlubmVyQ29tcG9uZW50IH0gZnJvbSAnLi9kZWZhdWx0L2RlZmF1bHQtc3Bpbm5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGZQcm9ncmVzc0luZGljYXRvckJhY2tkcm9wQ29tcG9uZW50IH0gZnJvbSAnLi9wcm9ncmVzc2luZGljYXRvci1iYWNrZHJvcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGZQcm9ncmVzc0luZGljYXRvckRpcmVjdGl2ZSB9IGZyb20gJy4vcHJvZ3Jlc3NpbmRpY2F0b3IuZGlyZWN0aXZlJztcblxuZXhwb3J0IHsgRGZQcm9ncmVzc0luZGljYXRvckNvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4vcHJvZ3Jlc3NpbmRpY2F0b3ItY29udGFpbmVyLmNvbXBvbmVudCc7XG5leHBvcnQgeyBEZkRlZmF1bHRTcGlubmVyQ29tcG9uZW50IH0gZnJvbSAnLi9kZWZhdWx0L2RlZmF1bHQtc3Bpbm5lci5jb21wb25lbnQnO1xuZXhwb3J0IHsgRGZQcm9ncmVzc0luZGljYXRvckJhY2tkcm9wQ29tcG9uZW50IH0gZnJvbSAnLi9wcm9ncmVzc2luZGljYXRvci1iYWNrZHJvcC5jb21wb25lbnQnO1xuZXhwb3J0IHsgRGZQcm9ncmVzc0luZGljYXRvckRpcmVjdGl2ZSB9IGZyb20gJy4vcHJvZ3Jlc3NpbmRpY2F0b3IuZGlyZWN0aXZlJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIERmRGVmYXVsdFNwaW5uZXJDb21wb25lbnQsXG4gICAgRGZQcm9ncmVzc2Jhck1vZHVsZSxcbiAgICBEZlByb2dyZXNzSW5kaWNhdG9yQmFja2Ryb3BDb21wb25lbnQsXG4gICAgRGZQcm9ncmVzc0luZGljYXRvckNvbnRhaW5lckNvbXBvbmVudCxcbiAgICBEZlByb2dyZXNzSW5kaWNhdG9yRGlyZWN0aXZlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBEZlByb2dyZXNzYmFyTW9kdWxlLFxuICAgIERmUHJvZ3Jlc3NJbmRpY2F0b3JDb250YWluZXJDb21wb25lbnQsXG4gICAgRGZQcm9ncmVzc0luZGljYXRvckRpcmVjdGl2ZSxcbiAgICBEZlByb2dyZXNzSW5kaWNhdG9yQmFja2Ryb3BDb21wb25lbnQsXG4gICAgRGZEZWZhdWx0U3Bpbm5lckNvbXBvbmVudFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIERmUHJvZ3Jlc3NJbmRpY2F0b3JNb2R1bGUge31cbiJdfQ==
|
|
@@ -1,170 +0,0 @@
|
|
|
1
|
-
import { Injectable, Inject, ComponentRef, TemplateRef } from '@angular/core';
|
|
2
|
-
import { DOCUMENT } from '@angular/common';
|
|
3
|
-
import { DfProgressIndicatorContainerComponent } from './progressindicator-container.component';
|
|
4
|
-
import { DfProgressIndicatorBackdropComponent } from './progressindicator-backdrop.component';
|
|
5
|
-
import { DfProgressIndicatorContentSpinner, DfProgressIndicatorContentProgressBar } from './progressindicator-config';
|
|
6
|
-
import { DfDefaultSpinnerComponent } from './default/default-spinner.component';
|
|
7
|
-
import { DfProgressIndicatorRef } from './progressindicator-ref';
|
|
8
|
-
import { DfProgressbarComponent } from '../progressbar/progressbar.component';
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
import * as i1 from "../utils/scrollbar.service";
|
|
11
|
-
export class DfProgressIndicatorService {
|
|
12
|
-
constructor(document, rendererFactory, componentFactoryResolver, appRef, injector, scrollbar) {
|
|
13
|
-
this.document = document;
|
|
14
|
-
this.rendererFactory = rendererFactory;
|
|
15
|
-
this.componentFactoryResolver = componentFactoryResolver;
|
|
16
|
-
this.appRef = appRef;
|
|
17
|
-
this.injector = injector;
|
|
18
|
-
this.scrollbar = scrollbar;
|
|
19
|
-
this.BODY_CLASS = 'df-progressindicator-open';
|
|
20
|
-
// TODO - Remove it when https://github.com/angular/angular/issues/22567
|
|
21
|
-
this.containerAttributes = ['containerClass', 'position'];
|
|
22
|
-
this.backdropAttributes = ['backdropClass', 'isGlobalBackdrop'];
|
|
23
|
-
this.defaultSpinnerAttributes = ['contentClass', 'ariaLabel', 'isGlobalSpinner'];
|
|
24
|
-
this.defaultProgressBarAttributes = ['infiniteAnimation', 'ariaLabel'];
|
|
25
|
-
this.activeInstances = [];
|
|
26
|
-
this.renderer = this.rendererFactory.createRenderer(null, null);
|
|
27
|
-
}
|
|
28
|
-
open(content, options) {
|
|
29
|
-
const containerElt = this.getContainer(this.document, options);
|
|
30
|
-
if (!containerElt) {
|
|
31
|
-
throw new Error(`[Design Factory] The specified progress indicator container "${options?.container ||
|
|
32
|
-
'body'}" was not found in the DOM.`);
|
|
33
|
-
}
|
|
34
|
-
// Create needed components
|
|
35
|
-
const backdropRef = options?.backdrop !== false
|
|
36
|
-
? this.createComponent(DfProgressIndicatorBackdropComponent, this.componentFactoryResolver, undefined, containerElt)
|
|
37
|
-
: undefined;
|
|
38
|
-
const contentRef = this.getContent(content, this.componentFactoryResolver, containerElt);
|
|
39
|
-
const containerCmpRef = this.createComponent(DfProgressIndicatorContainerComponent, this.componentFactoryResolver, contentRef, containerElt);
|
|
40
|
-
const onDestroyOperations = [];
|
|
41
|
-
// Add aria attributes on the container
|
|
42
|
-
this.renderer.setAttribute(containerElt, 'aria-busy', 'true');
|
|
43
|
-
onDestroyOperations.push(() => {
|
|
44
|
-
this.renderer.removeAttribute(containerElt, 'aria-busy');
|
|
45
|
-
});
|
|
46
|
-
// Override some styles if body is the container
|
|
47
|
-
if (containerElt === this.document.body) {
|
|
48
|
-
const scrollCompensation = this.scrollbar.compensate();
|
|
49
|
-
this.renderer.addClass(this.document.body, this.BODY_CLASS);
|
|
50
|
-
this.renderer.setAttribute(this.document.body, 'aria-busy', 'true');
|
|
51
|
-
onDestroyOperations.push(() => {
|
|
52
|
-
scrollCompensation();
|
|
53
|
-
this.renderer.removeClass(this.document.body, this.BODY_CLASS);
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
if (onDestroyOperations.length > 0) {
|
|
57
|
-
containerCmpRef.onDestroy(() => {
|
|
58
|
-
onDestroyOperations.forEach(operation => {
|
|
59
|
-
operation();
|
|
60
|
-
});
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
// Force override of position in case of the use of a progress bar component
|
|
64
|
-
if (content instanceof DfProgressIndicatorContentProgressBar) {
|
|
65
|
-
options = {
|
|
66
|
-
...options,
|
|
67
|
-
position: content.position
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
// Apply options to the created components
|
|
71
|
-
if (backdropRef) {
|
|
72
|
-
this.applyOptions(backdropRef, this.backdropAttributes, { ...options, isGlobalBackdrop: containerElt === this.document.body });
|
|
73
|
-
}
|
|
74
|
-
this.applyOptions(containerCmpRef, this.containerAttributes, options);
|
|
75
|
-
const progressIndicatorRef = new DfProgressIndicatorRef(containerCmpRef, contentRef, backdropRef);
|
|
76
|
-
this.activeInstances.push(progressIndicatorRef);
|
|
77
|
-
return progressIndicatorRef;
|
|
78
|
-
}
|
|
79
|
-
close(progressIndicatorRef) {
|
|
80
|
-
const instanceIndex = this.activeInstances.indexOf(progressIndicatorRef);
|
|
81
|
-
if (instanceIndex > -1) {
|
|
82
|
-
Object.keys(progressIndicatorRef).forEach(key => {
|
|
83
|
-
const propertyValue = progressIndicatorRef[key];
|
|
84
|
-
if (propertyValue && propertyValue instanceof ComponentRef) {
|
|
85
|
-
propertyValue.destroy();
|
|
86
|
-
progressIndicatorRef[key] = undefined;
|
|
87
|
-
}
|
|
88
|
-
});
|
|
89
|
-
this.activeInstances.splice(instanceIndex, 1);
|
|
90
|
-
}
|
|
91
|
-
else {
|
|
92
|
-
throw new Error('[Design Factory] The specified progress indicator reference is no longer active and cannot be closed.');
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Retrieve container according to the desired options.
|
|
97
|
-
*/
|
|
98
|
-
getContainer(document, options) {
|
|
99
|
-
if (options?.container instanceof HTMLElement) {
|
|
100
|
-
return options.container;
|
|
101
|
-
}
|
|
102
|
-
return options?.container ? document.querySelector(options.container) : document.body;
|
|
103
|
-
}
|
|
104
|
-
getContent(content, cfr, container) {
|
|
105
|
-
if (!content) {
|
|
106
|
-
return this.createComponent(DfDefaultSpinnerComponent, cfr);
|
|
107
|
-
}
|
|
108
|
-
else if (content instanceof DfProgressIndicatorContentSpinner) {
|
|
109
|
-
const cmpRef = this.createComponent(DfDefaultSpinnerComponent, cfr);
|
|
110
|
-
this.applyOptions(cmpRef, this.defaultSpinnerAttributes, { ...content.spinnerInput, isGlobalSpinner: container === this.document.body });
|
|
111
|
-
return cmpRef;
|
|
112
|
-
}
|
|
113
|
-
else if (content instanceof DfProgressIndicatorContentProgressBar) {
|
|
114
|
-
const cmpRef = this.createComponent(DfProgressbarComponent, cfr);
|
|
115
|
-
this.applyOptions(cmpRef, this.defaultProgressBarAttributes, { ...content.progressBarInput, infiniteAnimation: true });
|
|
116
|
-
return cmpRef;
|
|
117
|
-
}
|
|
118
|
-
else if (content instanceof TemplateRef) {
|
|
119
|
-
const viewRef = content.createEmbeddedView({});
|
|
120
|
-
this.appRef.attachView(viewRef);
|
|
121
|
-
return viewRef;
|
|
122
|
-
}
|
|
123
|
-
else {
|
|
124
|
-
return this.createComponent(content, cfr);
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
createComponent(cmpType, cfr, childrenProjectables, container) {
|
|
128
|
-
const cmpFactory = cfr.resolveComponentFactory(cmpType);
|
|
129
|
-
let cmpRef;
|
|
130
|
-
if (childrenProjectables) {
|
|
131
|
-
if (childrenProjectables instanceof ComponentRef) {
|
|
132
|
-
cmpRef = cmpFactory.create(this.injector, [[childrenProjectables.location.nativeElement]]);
|
|
133
|
-
}
|
|
134
|
-
else {
|
|
135
|
-
cmpRef = cmpFactory.create(this.injector, [childrenProjectables.rootNodes]);
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
else {
|
|
139
|
-
cmpRef = cmpFactory.create(this.injector);
|
|
140
|
-
}
|
|
141
|
-
this.appRef.attachView(cmpRef.hostView);
|
|
142
|
-
if (container) {
|
|
143
|
-
container.appendChild(cmpRef.location.nativeElement);
|
|
144
|
-
}
|
|
145
|
-
return cmpRef;
|
|
146
|
-
}
|
|
147
|
-
applyOptions(cmpRef, availableOptions, options) {
|
|
148
|
-
if (options) {
|
|
149
|
-
const cmpInst = cmpRef.instance;
|
|
150
|
-
availableOptions.forEach((option) => {
|
|
151
|
-
const optionValue = options[option];
|
|
152
|
-
if (optionValue !== null && optionValue !== undefined) {
|
|
153
|
-
cmpInst[option] = optionValue;
|
|
154
|
-
}
|
|
155
|
-
});
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DfProgressIndicatorService, deps: [{ token: DOCUMENT }, { token: i0.RendererFactory2 }, { token: i0.ComponentFactoryResolver }, { token: i0.ApplicationRef }, { token: i0.Injector }, { token: i1.ScrollBar }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
159
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DfProgressIndicatorService, providedIn: 'root' }); }
|
|
160
|
-
}
|
|
161
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DfProgressIndicatorService, decorators: [{
|
|
162
|
-
type: Injectable,
|
|
163
|
-
args: [{
|
|
164
|
-
providedIn: 'root'
|
|
165
|
-
}]
|
|
166
|
-
}], ctorParameters: () => [{ type: Document, decorators: [{
|
|
167
|
-
type: Inject,
|
|
168
|
-
args: [DOCUMENT]
|
|
169
|
-
}] }, { type: i0.RendererFactory2 }, { type: i0.ComponentFactoryResolver }, { type: i0.ApplicationRef }, { type: i0.Injector }, { type: i1.ScrollBar }] });
|
|
170
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3NpbmRpY2F0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1mYWN0b3J5L3NyYy9saWIvYW5ndWxhci9wcm9ncmVzc2luZGljYXRvci9wcm9ncmVzc2luZGljYXRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxVQUFVLEVBR1YsTUFBTSxFQUlOLFlBQVksRUFFWixXQUFXLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzlGLE9BQU8sRUFFTCxpQ0FBaUMsRUFDakMscUNBQXFDLEVBQ3RDLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDaEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDakUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7OztBQWE5RSxNQUFNLE9BQU8sMEJBQTBCO0lBV3JDLFlBQ3FDLFFBQWtCLEVBQ3BDLGVBQWlDLEVBQ2pDLHdCQUFrRCxFQUNsRCxNQUFzQixFQUN0QixRQUFrQixFQUNsQixTQUFvQjtRQUxGLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDcEMsb0JBQWUsR0FBZixlQUFlLENBQWtCO1FBQ2pDLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDbEQsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFDdEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBZnRCLGVBQVUsR0FBRywyQkFBMkIsQ0FB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QVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gIEluamVjdGFibGUsXG4gIFJlbmRlcmVyRmFjdG9yeTIsXG4gIFJlbmRlcmVyMixcbiAgSW5qZWN0LFxuICBBcHBsaWNhdGlvblJlZixcbiAgSW5qZWN0b3IsXG4gIEVtYmVkZGVkVmlld1JlZixcbiAgQ29tcG9uZW50UmVmLFxuICBUeXBlLFxuICBUZW1wbGF0ZVJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERmUHJvZ3Jlc3NJbmRpY2F0b3JDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuL3Byb2dyZXNzaW5kaWNhdG9yLWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGZQcm9ncmVzc0luZGljYXRvckJhY2tkcm9wQ29tcG9uZW50IH0gZnJvbSAnLi9wcm9ncmVzc2luZGljYXRvci1iYWNrZHJvcC5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgRGZQcm9ncmVzc0luZGljYXRvck9wdGlvbnMsXG4gIERmUHJvZ3Jlc3NJbmRpY2F0b3JDb250ZW50U3Bpbm5lcixcbiAgRGZQcm9ncmVzc0luZGljYXRvckNvbnRlbnRQcm9ncmVzc0JhclxufSBmcm9tICcuL3Byb2dyZXNzaW5kaWNhdG9yLWNvbmZpZyc7XG5pbXBvcnQgeyBEZkRlZmF1bHRTcGlubmVyQ29tcG9uZW50IH0gZnJvbSAnLi9kZWZhdWx0L2RlZmF1bHQtc3Bpbm5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGZQcm9ncmVzc0luZGljYXRvclJlZiB9IGZyb20gJy4vcHJvZ3Jlc3NpbmRpY2F0b3ItcmVmJztcbmltcG9ydCB7IERmUHJvZ3Jlc3NiYXJDb21wb25lbnQgfSBmcm9tICcuLi9wcm9ncmVzc2Jhci9wcm9ncmVzc2Jhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2Nyb2xsQmFyIH0gZnJvbSAnLi4vdXRpbHMvc2Nyb2xsYmFyLnNlcnZpY2UnO1xuXG5leHBvcnQgdHlwZSBEZlByb2dyZXNzSW5kaWNhdG9yQ29udGVudDxUPiA9XG4gIHwgdW5kZWZpbmVkXG4gIHwgVGVtcGxhdGVSZWY8VD5cbiAgfCBUeXBlPFQ+XG4gIHwgRGZQcm9ncmVzc0luZGljYXRvckNvbnRlbnRTcGlubmVyXG4gIHwgRGZQcm9ncmVzc0luZGljYXRvckNvbnRlbnRQcm9ncmVzc0JhcjtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgRGZQcm9ncmVzc0luZGljYXRvclNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyOiBSZW5kZXJlcjI7XG4gIHByaXZhdGUgcmVhZG9ubHkgQk9EWV9DTEFTUyA9ICdkZi1wcm9ncmVzc2luZGljYXRvci1vcGVuJztcbiAgLy8gVE9ETyAtIFJlbW92ZSBpdCB3aGVuIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzIyNTY3XG4gIHByaXZhdGUgcmVhZG9ubHkgY29udGFpbmVyQXR0cmlidXRlcyA9IFsnY29udGFpbmVyQ2xhc3MnLCAncG9zaXRpb24nXTtcbiAgcHJpdmF0ZSByZWFkb25seSBiYWNrZHJvcEF0dHJpYnV0ZXMgPSBbJ2JhY2tkcm9wQ2xhc3MnLCAnaXNHbG9iYWxCYWNrZHJvcCddO1xuICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRTcGlubmVyQXR0cmlidXRlcyA9IFsnY29udGVudENsYXNzJywgJ2FyaWFMYWJlbCcsICdpc0dsb2JhbFNwaW5uZXInXTtcbiAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0UHJvZ3Jlc3NCYXJBdHRyaWJ1dGVzID0gWydpbmZpbml0ZUFuaW1hdGlvbicsICdhcmlhTGFiZWwnXTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGFjdGl2ZUluc3RhbmNlczogRGZQcm9ncmVzc0luZGljYXRvclJlZltdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudDogRG9jdW1lbnQsXG4gICAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlckZhY3Rvcnk6IFJlbmRlcmVyRmFjdG9yeTIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFwcFJlZjogQXBwbGljYXRpb25SZWYsXG4gICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzY3JvbGxiYXI6IFNjcm9sbEJhclxuICApIHtcbiAgICB0aGlzLnJlbmRlcmVyID0gdGhpcy5yZW5kZXJlckZhY3RvcnkuY3JlYXRlUmVuZGVyZXIobnVsbCwgbnVsbCk7XG4gIH1cblxuICBvcGVuPFQ+KGNvbnRlbnQ6IERmUHJvZ3Jlc3NJbmRpY2F0b3JDb250ZW50PFQ+LCBvcHRpb25zPzogRGZQcm9ncmVzc0luZGljYXRvck9wdGlvbnMpOiBEZlByb2dyZXNzSW5kaWNhdG9yUmVmIHtcbiAgICBjb25zdCBjb250YWluZXJFbHQgPSB0aGlzLmdldENvbnRhaW5lcih0aGlzLmRvY3VtZW50LCBvcHRpb25zKTtcbiAgICBpZiAoIWNvbnRhaW5lckVsdCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgW0Rlc2lnbiBGYWN0b3J5XSBUaGUgc3BlY2lmaWVkIHByb2dyZXNzIGluZGljYXRvciBjb250YWluZXIgXCIke29wdGlvbnM/LmNvbnRhaW5lciB8fFxuICAgICAgICAgICdib2R5J31cIiB3YXMgbm90IGZvdW5kIGluIHRoZSBET00uYFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgbmVlZGVkIGNvbXBvbmVudHNcbiAgICBjb25zdCBiYWNrZHJvcFJlZjogQ29tcG9uZW50UmVmPERmUHJvZ3Jlc3NJbmRpY2F0b3JCYWNrZHJvcENvbXBvbmVudD4gfCB1bmRlZmluZWQgPVxuICAgICAgb3B0aW9ucz8uYmFja2Ryb3AgIT09IGZhbHNlXG4gICAgICAgID8gdGhpcy5jcmVhdGVDb21wb25lbnQoXG4gICAgICAgICAgICBEZlByb2dyZXNzSW5kaWNhdG9yQmFja2Ryb3BDb21wb25lbnQsXG4gICAgICAgICAgICB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGNvbnRhaW5lckVsdFxuICAgICAgICAgIClcbiAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCBjb250ZW50UmVmID0gdGhpcy5nZXRDb250ZW50KGNvbnRlbnQsIHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBjb250YWluZXJFbHQpO1xuICAgIGNvbnN0IGNvbnRhaW5lckNtcFJlZjogQ29tcG9uZW50UmVmPERmUHJvZ3Jlc3NJbmRpY2F0b3JDb250YWluZXJDb21wb25lbnQ+ID0gdGhpcy5jcmVhdGVDb21wb25lbnQoXG4gICAgICBEZlByb2dyZXNzSW5kaWNhdG9yQ29udGFpbmVyQ29tcG9uZW50LFxuICAgICAgdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgICBjb250ZW50UmVmLFxuICAgICAgY29udGFpbmVyRWx0XG4gICAgKTtcblxuICAgIGNvbnN0IG9uRGVzdHJveU9wZXJhdGlvbnM6ICgoKSA9PiB2b2lkKVtdID0gW107XG5cbiAgICAvLyBBZGQgYXJpYSBhdHRyaWJ1dGVzIG9uIHRoZSBjb250YWluZXJcbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShjb250YWluZXJFbHQsICdhcmlhLWJ1c3knLCAndHJ1ZScpO1xuICAgIG9uRGVzdHJveU9wZXJhdGlvbnMucHVzaCgoKSA9PiB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZShjb250YWluZXJFbHQsICdhcmlhLWJ1c3knKTtcbiAgICB9KTtcblxuICAgIC8vIE92ZXJyaWRlIHNvbWUgc3R5bGVzIGlmIGJvZHkgaXMgdGhlIGNvbnRhaW5lclxuICAgIGlmIChjb250YWluZXJFbHQgPT09IHRoaXMuZG9jdW1lbnQuYm9keSkge1xuICAgICAgY29uc3Qgc2Nyb2xsQ29tcGVuc2F0aW9uID0gdGhpcy5zY3JvbGxiYXIuY29tcGVuc2F0ZSgpO1xuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmRvY3VtZW50LmJvZHksIHRoaXMuQk9EWV9DTEFTUyk7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmRvY3VtZW50LmJvZHksICdhcmlhLWJ1c3knLCAndHJ1ZScpO1xuXG4gICAgICBvbkRlc3Ryb3lPcGVyYXRpb25zLnB1c2goKCkgPT4ge1xuICAgICAgICBzY3JvbGxDb21wZW5zYXRpb24oKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmRvY3VtZW50LmJvZHksIHRoaXMuQk9EWV9DTEFTUyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAob25EZXN0cm95T3BlcmF0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICBjb250YWluZXJDbXBSZWYub25EZXN0cm95KCgpID0+IHtcbiAgICAgICAgb25EZXN0cm95T3BlcmF0aW9ucy5mb3JFYWNoKG9wZXJhdGlvbiA9PiB7XG4gICAgICAgICAgb3BlcmF0aW9uKCk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gRm9yY2Ugb3ZlcnJpZGUgb2YgcG9zaXRpb24gaW4gY2FzZSBvZiB0aGUgdXNlIG9mIGEgcHJvZ3Jlc3MgYmFyIGNvbXBvbmVudFxuICAgIGlmIChjb250ZW50IGluc3RhbmNlb2YgRGZQcm9ncmVzc0luZGljYXRvckNvbnRlbnRQcm9ncmVzc0Jhcikge1xuICAgICAgb3B0aW9ucyA9IHtcbiAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgcG9zaXRpb246IGNvbnRlbnQucG9zaXRpb25cbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gQXBwbHkgb3B0aW9ucyB0byB0aGUgY3JlYXRlZCBjb21wb25lbnRzXG4gICAgaWYgKGJhY2tkcm9wUmVmKSB7XG4gICAgICB0aGlzLmFwcGx5T3B0aW9ucyhcbiAgICAgICAgYmFja2Ryb3BSZWYsXG4gICAgICAgIHRoaXMuYmFja2Ryb3BBdHRyaWJ1dGVzLFxuICAgICAgICB7IC4uLm9wdGlvbnMsIGlzR2xvYmFsQmFja2Ryb3A6IGNvbnRhaW5lckVsdCA9PT0gdGhpcy5kb2N1bWVudC5ib2R5IH1cbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuYXBwbHlPcHRpb25zKGNvbnRhaW5lckNtcFJlZiwgdGhpcy5jb250YWluZXJBdHRyaWJ1dGVzLCBvcHRpb25zKTtcblxuICAgIGNvbnN0IHByb2dyZXNzSW5kaWNhdG9yUmVmID0gbmV3IERmUHJvZ3Jlc3NJbmRpY2F0b3JSZWYoY29udGFpbmVyQ21wUmVmLCBjb250ZW50UmVmLCBiYWNrZHJvcFJlZik7XG4gICAgdGhpcy5hY3RpdmVJbnN0YW5jZXMucHVzaChwcm9ncmVzc0luZGljYXRvclJlZik7XG4gICAgcmV0dXJuIHByb2dyZXNzSW5kaWNhdG9yUmVmO1xuICB9XG5cbiAgY2xvc2UocHJvZ3Jlc3NJbmRpY2F0b3JSZWY6IERmUHJvZ3Jlc3NJbmRpY2F0b3JSZWYpOiB2b2lkIHtcbiAgICBjb25zdCBpbnN0YW5jZUluZGV4ID0gdGhpcy5hY3RpdmVJbnN0YW5jZXMuaW5kZXhPZihwcm9ncmVzc0luZGljYXRvclJlZik7XG4gICAgaWYgKGluc3RhbmNlSW5kZXggPiAtMSkge1xuICAgICAgT2JqZWN0LmtleXMocHJvZ3Jlc3NJbmRpY2F0b3JSZWYpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgY29uc3QgcHJvcGVydHlWYWx1ZSA9IChwcm9ncmVzc0luZGljYXRvclJlZiBhcyB1bmtub3duIGFzIHsgW2tleTogc3RyaW5nXTogdW5rbm93biB9KVtrZXldO1xuICAgICAgICBpZiAocHJvcGVydHlWYWx1ZSAmJiBwcm9wZXJ0eVZhbHVlIGluc3RhbmNlb2YgQ29tcG9uZW50UmVmKSB7XG4gICAgICAgICAgcHJvcGVydHlWYWx1ZS5kZXN0cm95KCk7XG4gICAgICAgICAgKHByb2dyZXNzSW5kaWNhdG9yUmVmIGFzIHVua25vd24gYXMgeyBba2V5OiBzdHJpbmddOiB1bmtub3duIH0pW2tleV0gPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgdGhpcy5hY3RpdmVJbnN0YW5jZXMuc3BsaWNlKGluc3RhbmNlSW5kZXgsIDEpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdbRGVzaWduIEZhY3RvcnldIFRoZSBzcGVjaWZpZWQgcHJvZ3Jlc3MgaW5kaWNhdG9yIHJlZmVyZW5jZSBpcyBubyBsb25nZXIgYWN0aXZlIGFuZCBjYW5ub3QgYmUgY2xvc2VkLidcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlIGNvbnRhaW5lciBhY2NvcmRpbmcgdG8gdGhlIGRlc2lyZWQgb3B0aW9ucy5cbiAgICovXG4gIHByaXZhdGUgZ2V0Q29udGFpbmVyKGRvY3VtZW50OiBEb2N1bWVudCwgb3B0aW9ucz86IERmUHJvZ3Jlc3NJbmRpY2F0b3JPcHRpb25zKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICBpZiAob3B0aW9ucz8uY29udGFpbmVyIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgIHJldHVybiBvcHRpb25zLmNvbnRhaW5lcjtcbiAgICB9XG4gICAgcmV0dXJuIG9wdGlvbnM/LmNvbnRhaW5lciA/IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Iob3B0aW9ucy5jb250YWluZXIpIDogZG9jdW1lbnQuYm9keTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29udGVudDxUPihcbiAgICBjb250ZW50OiBEZlByb2dyZXNzSW5kaWNhdG9yQ29udGVudDxUPixcbiAgICBjZnI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBjb250YWluZXI6IEhUTUxFbGVtZW50XG4gICk6IENvbXBvbmVudFJlZjxhbnk+IHwgRW1iZWRkZWRWaWV3UmVmPGFueT4ge1xuICAgIGlmICghY29udGVudCkge1xuICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlQ29tcG9uZW50KERmRGVmYXVsdFNwaW5uZXJDb21wb25lbnQsIGNmcik7XG4gICAgfSBlbHNlIGlmIChjb250ZW50IGluc3RhbmNlb2YgRGZQcm9ncmVzc0luZGljYXRvckNvbnRlbnRTcGlubmVyKSB7XG4gICAgICBjb25zdCBjbXBSZWYgPSB0aGlzLmNyZWF0ZUNvbXBvbmVudChEZkRlZmF1bHRTcGlubmVyQ29tcG9uZW50LCBjZnIpO1xuICAgICAgdGhpcy5hcHBseU9wdGlvbnMoXG4gICAgICAgIGNtcFJlZixcbiAgICAgICAgdGhpcy5kZWZhdWx0U3Bpbm5lckF0dHJpYnV0ZXMsXG4gICAgICAgIHsgLi4uY29udGVudC5zcGlubmVySW5wdXQsIGlzR2xvYmFsU3Bpbm5lcjogY29udGFpbmVyID09PSB0aGlzLmRvY3VtZW50LmJvZHkgfVxuICAgICAgKTtcbiAgICAgIHJldHVybiBjbXBSZWY7XG4gICAgfSBlbHNlIGlmIChjb250ZW50IGluc3RhbmNlb2YgRGZQcm9ncmVzc0luZGljYXRvckNvbnRlbnRQcm9ncmVzc0Jhcikge1xuICAgICAgY29uc3QgY21wUmVmID0gdGhpcy5jcmVhdGVDb21wb25lbnQoRGZQcm9ncmVzc2JhckNvbXBvbmVudCwgY2ZyKTtcbiAgICAgIHRoaXMuYXBwbHlPcHRpb25zKFxuICAgICAgICBjbXBSZWYsXG4gICAgICAgIHRoaXMuZGVmYXVsdFByb2dyZXNzQmFyQXR0cmlidXRlcyxcbiAgICAgICAgeyAuLi5jb250ZW50LnByb2dyZXNzQmFySW5wdXQsIGluZmluaXRlQW5pbWF0aW9uOiB0cnVlIH1cbiAgICAgICk7XG4gICAgICByZXR1cm4gY21wUmVmO1xuICAgIH0gZWxzZSBpZiAoY29udGVudCBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKSB7XG4gICAgICBjb25zdCB2aWV3UmVmID0gY29udGVudC5jcmVhdGVFbWJlZGRlZFZpZXcoe30gYXMgVCk7XG4gICAgICB0aGlzLmFwcFJlZi5hdHRhY2hWaWV3KHZpZXdSZWYpO1xuICAgICAgcmV0dXJuIHZpZXdSZWY7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUNvbXBvbmVudChjb250ZW50LCBjZnIpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQ29tcG9uZW50PFQ+KFxuICAgIGNtcFR5cGU6IFR5cGU8VD4sXG4gICAgY2ZyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgY2hpbGRyZW5Qcm9qZWN0YWJsZXM/OiBDb21wb25lbnRSZWY8dW5rbm93bj4gfCBFbWJlZGRlZFZpZXdSZWY8dW5rbm93bj4sXG4gICAgY29udGFpbmVyPzogSFRNTEVsZW1lbnRcbiAgKTogQ29tcG9uZW50UmVmPFQ+IHtcbiAgICBjb25zdCBjbXBGYWN0b3J5ID0gY2ZyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGNtcFR5cGUpO1xuICAgIGxldCBjbXBSZWY6IENvbXBvbmVudFJlZjxUPjtcbiAgICBpZiAoY2hpbGRyZW5Qcm9qZWN0YWJsZXMpIHtcbiAgICAgIGlmIChjaGlsZHJlblByb2plY3RhYmxlcyBpbnN0YW5jZW9mIENvbXBvbmVudFJlZikge1xuICAgICAgICBjbXBSZWYgPSBjbXBGYWN0b3J5LmNyZWF0ZSh0aGlzLmluamVjdG9yLCBbW2NoaWxkcmVuUHJvamVjdGFibGVzLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnRdXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjbXBSZWYgPSBjbXBGYWN0b3J5LmNyZWF0ZSh0aGlzLmluamVjdG9yLCBbY2hpbGRyZW5Qcm9qZWN0YWJsZXMucm9vdE5vZGVzXSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNtcFJlZiA9IGNtcEZhY3RvcnkuY3JlYXRlKHRoaXMuaW5qZWN0b3IpO1xuICAgIH1cbiAgICB0aGlzLmFwcFJlZi5hdHRhY2hWaWV3KGNtcFJlZi5ob3N0Vmlldyk7XG4gICAgaWYgKGNvbnRhaW5lcikge1xuICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGNtcFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG4gICAgcmV0dXJuIGNtcFJlZjtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlPcHRpb25zPFQ+KFxuICAgIGNtcFJlZjogQ29tcG9uZW50UmVmPFQ+LFxuICAgIGF2YWlsYWJsZU9wdGlvbnM6IHN0cmluZ1tdLFxuICAgIG9wdGlvbnM/OiBEZlByb2dyZXNzSW5kaWNhdG9yT3B0aW9ucyB8IHsgW2tleTogc3RyaW5nXTogdW5rbm93biB9XG4gICk6IHZvaWQge1xuICAgIGlmIChvcHRpb25zKSB7XG4gICAgICBjb25zdCBjbXBJbnN0ID0gY21wUmVmLmluc3RhbmNlO1xuICAgICAgYXZhaWxhYmxlT3B0aW9ucy5mb3JFYWNoKChvcHRpb246IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCBvcHRpb25WYWx1ZSA9IChvcHRpb25zIGFzIHsgW2tleTogc3RyaW5nXTogdW5rbm93biB9KVtvcHRpb25dO1xuICAgICAgICBpZiAob3B0aW9uVmFsdWUgIT09IG51bGwgJiYgb3B0aW9uVmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIChjbXBJbnN0IGFzIHVua25vd24gYXMgeyBba2V5OiBzdHJpbmddOiB1bmtub3duIH0pW29wdGlvbl0gPSBvcHRpb25WYWx1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export var RightToLeftDirectionEnum;
|
|
4
|
-
(function (RightToLeftDirectionEnum) {
|
|
5
|
-
RightToLeftDirectionEnum["LeftToRight"] = "ltr";
|
|
6
|
-
RightToLeftDirectionEnum["RightToLeft"] = "rtl";
|
|
7
|
-
RightToLeftDirectionEnum["Auto"] = "auto";
|
|
8
|
-
})(RightToLeftDirectionEnum || (RightToLeftDirectionEnum = {}));
|
|
9
|
-
export class DfDirectionDetectionService {
|
|
10
|
-
getPageDirection(element) {
|
|
11
|
-
let curElement = element.nativeElement;
|
|
12
|
-
while (curElement !== null) {
|
|
13
|
-
if (curElement.getAttribute('dir') === RightToLeftDirectionEnum.RightToLeft) {
|
|
14
|
-
return RightToLeftDirectionEnum.RightToLeft;
|
|
15
|
-
}
|
|
16
|
-
else if (curElement.getAttribute('dir') === RightToLeftDirectionEnum.LeftToRight) {
|
|
17
|
-
return RightToLeftDirectionEnum.LeftToRight;
|
|
18
|
-
}
|
|
19
|
-
curElement = curElement.parentElement;
|
|
20
|
-
}
|
|
21
|
-
return RightToLeftDirectionEnum.LeftToRight;
|
|
22
|
-
}
|
|
23
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DfDirectionDetectionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
24
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DfDirectionDetectionService, providedIn: 'root' }); }
|
|
25
|
-
}
|
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DfDirectionDetectionService, decorators: [{
|
|
27
|
-
type: Injectable,
|
|
28
|
-
args: [{
|
|
29
|
-
providedIn: 'root'
|
|
30
|
-
}]
|
|
31
|
-
}] });
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9uRGV0ZWN0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tZmFjdG9yeS9zcmMvbGliL2FuZ3VsYXIvcmlnaHQtdG8tbGVmdC9kaXJlY3Rpb25EZXRlY3Rpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFjLE1BQU0sZUFBZSxDQUFDOztBQUV2RCxNQUFNLENBQU4sSUFBWSx3QkFJWDtBQUpELFdBQVksd0JBQXdCO0lBQ2xDLCtDQUFtQixDQUFBO0lBQ25CLCtDQUFtQixDQUFBO0lBQ25CLHlDQUFhLENBQUE7QUFDZixDQUFDLEVBSlcsd0JBQXdCLEtBQXhCLHdCQUF3QixRQUluQztBQUtELE1BQU0sT0FBTywyQkFBMkI7SUFDdEMsZ0JBQWdCLENBQUMsT0FBbUI7UUFDbEMsSUFBSSxVQUFVLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQztRQUN2QyxPQUFPLFVBQVUsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUMzQixJQUFJLFVBQVUsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEtBQUssd0JBQXdCLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQzVFLE9BQU8sd0JBQXdCLENBQUMsV0FBVyxDQUFDO1lBQzlDLENBQUM7aUJBQU0sSUFBSSxVQUFVLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxLQUFLLHdCQUF3QixDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNuRixPQUFPLHdCQUF3QixDQUFDLFdBQVcsQ0FBQztZQUM5QyxDQUFDO1lBQ0QsVUFBVSxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUM7UUFDeEMsQ0FBQztRQUNELE9BQU8sd0JBQXdCLENBQUMsV0FBVyxDQUFDO0lBQzlDLENBQUM7OEdBWlUsMkJBQTJCO2tIQUEzQiwyQkFBMkIsY0FGMUIsTUFBTTs7MkZBRVAsMkJBQTJCO2tCQUh2QyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGVudW0gUmlnaHRUb0xlZnREaXJlY3Rpb25FbnVtIHtcbiAgTGVmdFRvUmlnaHQgPSAnbHRyJyxcbiAgUmlnaHRUb0xlZnQgPSAncnRsJyxcbiAgQXV0byA9ICdhdXRvJ1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBEZkRpcmVjdGlvbkRldGVjdGlvblNlcnZpY2Uge1xuICBnZXRQYWdlRGlyZWN0aW9uKGVsZW1lbnQ6IEVsZW1lbnRSZWYpOiBzdHJpbmcge1xuICAgIGxldCBjdXJFbGVtZW50ID0gZWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgIHdoaWxlIChjdXJFbGVtZW50ICE9PSBudWxsKSB7XG4gICAgICBpZiAoY3VyRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2RpcicpID09PSBSaWdodFRvTGVmdERpcmVjdGlvbkVudW0uUmlnaHRUb0xlZnQpIHtcbiAgICAgICAgcmV0dXJuIFJpZ2h0VG9MZWZ0RGlyZWN0aW9uRW51bS5SaWdodFRvTGVmdDtcbiAgICAgIH0gZWxzZSBpZiAoY3VyRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2RpcicpID09PSBSaWdodFRvTGVmdERpcmVjdGlvbkVudW0uTGVmdFRvUmlnaHQpIHtcbiAgICAgICAgcmV0dXJuIFJpZ2h0VG9MZWZ0RGlyZWN0aW9uRW51bS5MZWZ0VG9SaWdodDtcbiAgICAgIH1cbiAgICAgIGN1ckVsZW1lbnQgPSBjdXJFbGVtZW50LnBhcmVudEVsZW1lbnQ7XG4gICAgfVxuICAgIHJldHVybiBSaWdodFRvTGVmdERpcmVjdGlvbkVudW0uTGVmdFRvUmlnaHQ7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import { DF_SELECT_CLASS } from '../select.model';
|
|
2
|
-
import { Directive, HostListener, Input, HostBinding } from '@angular/core';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
// Put to avoid opening of the select after removal. See why in file:
|
|
5
|
-
// https://github.com/ng-select/ng-select/blob/57c6671a972d23beddcca2b6acc9418544c17a2e/src/ng-select/ng-select.component.ts#L307
|
|
6
|
-
const NG_SELECT_CLASS_IDENTIFIER = 'ng-value-icon';
|
|
7
|
-
export class DfManageBadgeEventsDirective {
|
|
8
|
-
constructor(renderer, element) {
|
|
9
|
-
this.renderer = renderer;
|
|
10
|
-
this.element = element;
|
|
11
|
-
this.tabindex = '-1';
|
|
12
|
-
this.renderer.addClass(this.element.nativeElement, DF_SELECT_CLASS);
|
|
13
|
-
this.renderer.addClass(this.element.nativeElement, NG_SELECT_CLASS_IDENTIFIER);
|
|
14
|
-
}
|
|
15
|
-
ngAfterViewInit() {
|
|
16
|
-
const childs = this.element.nativeElement.children;
|
|
17
|
-
const map = Array.from(childs);
|
|
18
|
-
map.forEach((element) => {
|
|
19
|
-
this.renderer.addClass(element, NG_SELECT_CLASS_IDENTIFIER);
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
handleKeyDownBackspace(event) {
|
|
23
|
-
this.dfManageBadgeEventsSelect[0](this.dfManageBadgeEventsSelect[1]);
|
|
24
|
-
event.stopPropagation();
|
|
25
|
-
}
|
|
26
|
-
handleClick(event) {
|
|
27
|
-
this.dfManageBadgeEventsSelect[0](this.dfManageBadgeEventsSelect[1]);
|
|
28
|
-
event.stopPropagation();
|
|
29
|
-
}
|
|
30
|
-
handleKeyDownEnter(event) {
|
|
31
|
-
this.dfManageBadgeEventsSelect[0](this.dfManageBadgeEventsSelect[1]);
|
|
32
|
-
event.stopPropagation();
|
|
33
|
-
}
|
|
34
|
-
handleKeyDownDelete(event) {
|
|
35
|
-
this.dfManageBadgeEventsSelect[0](this.dfManageBadgeEventsSelect[1]);
|
|
36
|
-
event.stopPropagation();
|
|
37
|
-
}
|
|
38
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DfManageBadgeEventsDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
39
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.7", type: DfManageBadgeEventsDirective, isStandalone: true, selector: "[dfManageBadgeEventsSelect]", inputs: { dfManageBadgeEventsSelect: "dfManageBadgeEventsSelect" }, host: { listeners: { "keydown.Backspace": "handleKeyDownBackspace($event)", "click": "handleClick($event)", "keydown.Enter": "handleKeyDownEnter($event)", "keydown.Delete": "handleKeyDownDelete($event)" }, properties: { "attr.tabindex": "this.tabindex" } }, ngImport: i0 }); }
|
|
40
|
-
}
|
|
41
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DfManageBadgeEventsDirective, decorators: [{
|
|
42
|
-
type: Directive,
|
|
43
|
-
args: [{
|
|
44
|
-
selector: '[dfManageBadgeEventsSelect]',
|
|
45
|
-
standalone: true
|
|
46
|
-
}]
|
|
47
|
-
}], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }], propDecorators: { dfManageBadgeEventsSelect: [{
|
|
48
|
-
type: Input
|
|
49
|
-
}], tabindex: [{
|
|
50
|
-
type: HostBinding,
|
|
51
|
-
args: ['attr.tabindex']
|
|
52
|
-
}], handleKeyDownBackspace: [{
|
|
53
|
-
type: HostListener,
|
|
54
|
-
args: ['keydown.Backspace', ['$event']]
|
|
55
|
-
}], handleClick: [{
|
|
56
|
-
type: HostListener,
|
|
57
|
-
args: ['click', ['$event']]
|
|
58
|
-
}], handleKeyDownEnter: [{
|
|
59
|
-
type: HostListener,
|
|
60
|
-
args: ['keydown.Enter', ['$event']]
|
|
61
|
-
}], handleKeyDownDelete: [{
|
|
62
|
-
type: HostListener,
|
|
63
|
-
args: ['keydown.Delete', ['$event']]
|
|
64
|
-
}] } });
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlLWJhZGdlLWV2ZW50cy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tZmFjdG9yeS9zcmMvbGliL2FuZ3VsYXIvc2VsZWN0cy9ldmVudHMvbWFuYWdlLWJhZGdlLWV2ZW50cy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQTRCLE1BQU0sZUFBZSxDQUFDOztBQUVsSCxxRUFBcUU7QUFDckUsaUlBQWlJO0FBQ2pJLE1BQU0sMEJBQTBCLEdBQUcsZUFBZSxDQUFDO0FBTW5ELE1BQU0sT0FBTyw0QkFBNEI7SUFLdkMsWUFBNkIsUUFBbUIsRUFBbUIsT0FBbUI7UUFBekQsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUFtQixZQUFPLEdBQVAsT0FBTyxDQUFZO1FBRnhELGFBQVEsR0FBRyxJQUFJLENBQUM7UUFHNUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDcEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsMEJBQTBCLENBQUMsQ0FBQztJQUNqRixDQUFDO0lBRUQsZUFBZTtRQUNiLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQztRQUNuRCxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9CLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUN0QixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsMEJBQTBCLENBQUMsQ0FBQztRQUM5RCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFOEMsc0JBQXNCLENBQUMsS0FBVTtRQUM5RSxJQUFJLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckUsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFa0MsV0FBVyxDQUFDLEtBQVU7UUFDdkQsSUFBSSxDQUFDLHlCQUF5QixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JFLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRTBDLGtCQUFrQixDQUFDLEtBQVU7UUFDdEUsSUFBSSxDQUFDLHlCQUF5QixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JFLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRTJDLG1CQUFtQixDQUFDLEtBQVU7UUFDeEUsSUFBSSxDQUFDLHlCQUF5QixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JFLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMxQixDQUFDOzhHQXBDVSw0QkFBNEI7a0dBQTVCLDRCQUE0Qjs7MkZBQTVCLDRCQUE0QjtrQkFKeEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsNkJBQTZCO29CQUN2QyxVQUFVLEVBQUUsSUFBSTtpQkFDakI7dUdBR0MseUJBQXlCO3NCQUR4QixLQUFLO2dCQUV3QixRQUFRO3NCQUFyQyxXQUFXO3VCQUFDLGVBQWU7Z0JBZW1CLHNCQUFzQjtzQkFBcEUsWUFBWTt1QkFBQyxtQkFBbUIsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFLVixXQUFXO3NCQUE3QyxZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFLVSxrQkFBa0I7c0JBQTVELFlBQVk7dUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQUtHLG1CQUFtQjtzQkFBOUQsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERGX1NFTEVDVF9DTEFTUyB9IGZyb20gJy4uL3NlbGVjdC5tb2RlbCc7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIEhvc3RCaW5kaW5nLCBSZW5kZXJlcjIsIEFmdGVyVmlld0luaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLy8gUHV0IHRvIGF2b2lkIG9wZW5pbmcgb2YgdGhlIHNlbGVjdCBhZnRlciByZW1vdmFsLiBTZWUgd2h5IGluIGZpbGU6XG4vLyBodHRwczovL2dpdGh1Yi5jb20vbmctc2VsZWN0L25nLXNlbGVjdC9ibG9iLzU3YzY2NzFhOTcyZDIzYmVkZGNjYTJiNmFjYzk0MTg1NDRjMTdhMmUvc3JjL25nLXNlbGVjdC9uZy1zZWxlY3QuY29tcG9uZW50LnRzI0wzMDdcbmNvbnN0IE5HX1NFTEVDVF9DTEFTU19JREVOVElGSUVSID0gJ25nLXZhbHVlLWljb24nO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZGZNYW5hZ2VCYWRnZUV2ZW50c1NlbGVjdF0nLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIERmTWFuYWdlQmFkZ2VFdmVudHNEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KClcbiAgZGZNYW5hZ2VCYWRnZUV2ZW50c1NlbGVjdCE6IFsoYXJnOiBhbnkpID0+IHZvaWQsIGFueV07XG4gIEBIb3N0QmluZGluZygnYXR0ci50YWJpbmRleCcpIHRhYmluZGV4ID0gJy0xJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyOiBSZW5kZXJlcjIsIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudDogRWxlbWVudFJlZikge1xuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIERGX1NFTEVDVF9DTEFTUyk7XG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgTkdfU0VMRUNUX0NMQVNTX0lERU5USUZJRVIpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIGNvbnN0IGNoaWxkcyA9IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmNoaWxkcmVuO1xuICAgIGNvbnN0IG1hcCA9IEFycmF5LmZyb20oY2hpbGRzKTtcbiAgICBtYXAuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhlbGVtZW50LCBOR19TRUxFQ1RfQ0xBU1NfSURFTlRJRklFUik7XG4gICAgfSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLkJhY2tzcGFjZScsIFsnJGV2ZW50J10pIGhhbmRsZUtleURvd25CYWNrc3BhY2UoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuZGZNYW5hZ2VCYWRnZUV2ZW50c1NlbGVjdFswXSh0aGlzLmRmTWFuYWdlQmFkZ2VFdmVudHNTZWxlY3RbMV0pO1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKSBoYW5kbGVDbGljayhldmVudDogYW55KSB7XG4gICAgdGhpcy5kZk1hbmFnZUJhZGdlRXZlbnRzU2VsZWN0WzBdKHRoaXMuZGZNYW5hZ2VCYWRnZUV2ZW50c1NlbGVjdFsxXSk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLkVudGVyJywgWyckZXZlbnQnXSkgaGFuZGxlS2V5RG93bkVudGVyKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmRmTWFuYWdlQmFkZ2VFdmVudHNTZWxlY3RbMF0odGhpcy5kZk1hbmFnZUJhZGdlRXZlbnRzU2VsZWN0WzFdKTtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uRGVsZXRlJywgWyckZXZlbnQnXSkgaGFuZGxlS2V5RG93bkRlbGV0ZShldmVudDogYW55KSB7XG4gICAgdGhpcy5kZk1hbmFnZUJhZGdlRXZlbnRzU2VsZWN0WzBdKHRoaXMuZGZNYW5hZ2VCYWRnZUV2ZW50c1NlbGVjdFsxXSk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
import { Directive, Host, HostListener } from '@angular/core';
|
|
2
|
-
import { RightToLeftDirectionEnum } from '../../right-to-left/directionDetection.service';
|
|
3
|
-
import { DF_SELECT_CLASS } from '../select.model';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "@ng-select/ng-select";
|
|
6
|
-
import * as i2 from "../../right-to-left/directionDetection.service";
|
|
7
|
-
export class DfManageNavSelectDirective {
|
|
8
|
-
constructor(select, element, rtlDirectionService, renderer) {
|
|
9
|
-
this.select = select;
|
|
10
|
-
this.element = element;
|
|
11
|
-
this.rtlDirectionService = rtlDirectionService;
|
|
12
|
-
this.renderer = renderer;
|
|
13
|
-
}
|
|
14
|
-
ngOnInit() {
|
|
15
|
-
this.direction = this.rtlDirectionService.getPageDirection(this.element);
|
|
16
|
-
}
|
|
17
|
-
handleKeyDown(event) {
|
|
18
|
-
if (this.direction === RightToLeftDirectionEnum.LeftToRight) {
|
|
19
|
-
this.arrowLeftInnerHandler(event);
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
this.arrowRightInnerHandler(event);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
handleKeyDownBackspace(event) {
|
|
26
|
-
// Clear on backspace is already handled by ng select when clearable is true
|
|
27
|
-
if (!this.select.clearable && !this.select.searchTerm) {
|
|
28
|
-
const listBadge = this.element.nativeElement.querySelectorAll(`.${DF_SELECT_CLASS}`);
|
|
29
|
-
if (listBadge.length > 0) {
|
|
30
|
-
listBadge[listBadge.length - 1].click();
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
handleKeyDownRight(event) {
|
|
35
|
-
if (this.direction === RightToLeftDirectionEnum.LeftToRight) {
|
|
36
|
-
this.arrowRightInnerHandler(event);
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
this.arrowLeftInnerHandler(event);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
arrowRightInnerHandler(event) {
|
|
43
|
-
const listBadge = this.element.nativeElement.querySelectorAll(`.${DF_SELECT_CLASS}`);
|
|
44
|
-
const currentPos = Array.prototype.indexOf.call(listBadge, document.activeElement);
|
|
45
|
-
// Test if the focus is in the list (otherwise it is in the input and we do nothing)
|
|
46
|
-
if (currentPos !== -1) {
|
|
47
|
-
if (currentPos === listBadge.length - 1) {
|
|
48
|
-
this.select.focus();
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
(listBadge[currentPos + 1] || document.activeElement).focus();
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
else if (event.target.selectionStart === event.target.selectionEnd &&
|
|
55
|
-
event.target.nodeName === 'INPUT' &&
|
|
56
|
-
event.target.selectionStart === event.target.value.length) {
|
|
57
|
-
const clearEl = this.element.nativeElement.querySelector('.ng-clear-wrapper') ||
|
|
58
|
-
this.element.nativeElement.querySelector('.ng-clear');
|
|
59
|
-
if (clearEl) {
|
|
60
|
-
// Event if it can be added multiple time it is not an issue I think.
|
|
61
|
-
this.renderer.listen(clearEl, 'keydown.Enter', (e) => {
|
|
62
|
-
e.stopPropagation(); // kill the event to forbid default ng-select behavior (open the dropdown)
|
|
63
|
-
this.select.handleClearClick();
|
|
64
|
-
});
|
|
65
|
-
clearEl.setAttribute('tabindex', '1'); // To be able to focus the element in chrome
|
|
66
|
-
clearEl.focus();
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
arrowLeftInnerHandler(event) {
|
|
71
|
-
const listBadge = this.element.nativeElement.querySelectorAll(`.${DF_SELECT_CLASS}`);
|
|
72
|
-
if (event.target.selectionStart === event.target.selectionEnd &&
|
|
73
|
-
event.target.selectionStart === 0 &&
|
|
74
|
-
event.target.nodeName === 'INPUT') {
|
|
75
|
-
if (listBadge.length > 0) {
|
|
76
|
-
listBadge[listBadge.length - 1].focus();
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
else if (event.target.classList.contains('ng-clear-wrapper') || event.target.classList.contains('ng-clear')) {
|
|
80
|
-
this.select.focus();
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
83
|
-
const currentPos = Array.prototype.indexOf.call(listBadge, document.activeElement);
|
|
84
|
-
(listBadge[currentPos - 1] || document.activeElement).focus();
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DfManageNavSelectDirective, deps: [{ token: i1.NgSelectComponent, host: true }, { token: i0.ElementRef }, { token: i2.DfDirectionDetectionService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
88
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.7", type: DfManageNavSelectDirective, isStandalone: true, selector: "[dfManageNavSelect]", host: { listeners: { "keydown.arrowLeft": "handleKeyDown($event)", "keydown.Backspace": "handleKeyDownBackspace($event)", "keydown.arrowRight": "handleKeyDownRight($event)" } }, ngImport: i0 }); }
|
|
89
|
-
}
|
|
90
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: DfManageNavSelectDirective, decorators: [{
|
|
91
|
-
type: Directive,
|
|
92
|
-
args: [{
|
|
93
|
-
selector: '[dfManageNavSelect]',
|
|
94
|
-
standalone: true
|
|
95
|
-
}]
|
|
96
|
-
}], ctorParameters: () => [{ type: i1.NgSelectComponent, decorators: [{
|
|
97
|
-
type: Host
|
|
98
|
-
}] }, { type: i0.ElementRef }, { type: i2.DfDirectionDetectionService }, { type: i0.Renderer2 }], propDecorators: { handleKeyDown: [{
|
|
99
|
-
type: HostListener,
|
|
100
|
-
args: ['keydown.arrowLeft', ['$event']]
|
|
101
|
-
}], handleKeyDownBackspace: [{
|
|
102
|
-
type: HostListener,
|
|
103
|
-
args: ['keydown.Backspace', ['$event']]
|
|
104
|
-
}], handleKeyDownRight: [{
|
|
105
|
-
type: HostListener,
|
|
106
|
-
args: ['keydown.arrowRight', ['$event']]
|
|
107
|
-
}] } });
|
|
108
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlLW5hdi1zZWxlY3QuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWZhY3Rvcnkvc3JjL2xpYi9hbmd1bGFyL3NlbGVjdHMvbmF2L21hbmFnZS1uYXYtc2VsZWN0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBYyxZQUFZLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRTdGLE9BQU8sRUFBK0Isd0JBQXdCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN2SCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFNbEQsTUFBTSxPQUFPLDBCQUEwQjtJQUdyQyxZQUMyQixNQUF5QixFQUNqQyxPQUFtQixFQUNuQixtQkFBZ0QsRUFDaEQsUUFBbUI7UUFIWCxXQUFNLEdBQU4sTUFBTSxDQUFtQjtRQUNqQyxZQUFPLEdBQVAsT0FBTyxDQUFZO1FBQ25CLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBNkI7UUFDaEQsYUFBUSxHQUFSLFFBQVEsQ0FBVztJQUNuQyxDQUFDO0lBRUosUUFBUTtRQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBR0QsYUFBYSxDQUFDLEtBQVU7UUFDdEIsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLHdCQUF3QixDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzVELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQyxDQUFDO0lBQ0gsQ0FBQztJQUU4QyxzQkFBc0IsQ0FBQyxLQUFVO1FBQzlF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QUFtQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVc3QyxrQkFBa0I7c0JBRGpCLFlBQVk7dUJBQUMsb0JBQW9CLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEhvc3QsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgT25Jbml0LCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnQG5nLXNlbGVjdC9uZy1zZWxlY3QnO1xuaW1wb3J0IHsgRGZEaXJlY3Rpb25EZXRlY3Rpb25TZXJ2aWNlLCBSaWdodFRvTGVmdERpcmVjdGlvbkVudW0gfSBmcm9tICcuLi8uLi9yaWdodC10by1sZWZ0L2RpcmVjdGlvbkRldGVjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IERGX1NFTEVDVF9DTEFTUyB9IGZyb20gJy4uL3NlbGVjdC5tb2RlbCc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tkZk1hbmFnZU5hdlNlbGVjdF0nLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIERmTWFuYWdlTmF2U2VsZWN0RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJpdmF0ZSBkaXJlY3Rpb24hOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEhvc3QoKSBwcml2YXRlIHJlYWRvbmx5IHNlbGVjdDogTmdTZWxlY3RDb21wb25lbnQsXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50OiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcnRsRGlyZWN0aW9uU2VydmljZTogRGZEaXJlY3Rpb25EZXRlY3Rpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXI6IFJlbmRlcmVyMlxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5kaXJlY3Rpb24gPSB0aGlzLnJ0bERpcmVjdGlvblNlcnZpY2UuZ2V0UGFnZURpcmVjdGlvbih0aGlzLmVsZW1lbnQpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5hcnJvd0xlZnQnLCBbJyRldmVudCddKVxuICBoYW5kbGVLZXlEb3duKGV2ZW50OiBhbnkpIHtcbiAgICBpZiAodGhpcy5kaXJlY3Rpb24gPT09IFJpZ2h0VG9MZWZ0RGlyZWN0aW9uRW51bS5MZWZ0VG9SaWdodCkge1xuICAgICAgdGhpcy5hcnJvd0xlZnRJbm5lckhhbmRsZXIoZXZlbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFycm93UmlnaHRJbm5lckhhbmRsZXIoZXZlbnQpO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uQmFja3NwYWNlJywgWyckZXZlbnQnXSkgaGFuZGxlS2V5RG93bkJhY2tzcGFjZShldmVudDogYW55KSB7XG4gICAgLy8gQ2xlYXIgb24gYmFja3NwYWNlIGlzIGFscmVhZHkgaGFuZGxlZCBieSBuZyBzZWxlY3Qgd2hlbiBjbGVhcmFibGUgaXMgdHJ1ZVxuICAgIGlmICghdGhpcy5zZWxlY3QuY2xlYXJhYmxlICYmICF0aGlzLnNlbGVjdC5zZWFyY2hUZXJtKSB7XG4gICAgICBjb25zdCBsaXN0QmFkZ2UgPSB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKGAuJHtERl9TRUxFQ1RfQ0xBU1N9YCk7XG4gICAgICBpZiAobGlzdEJhZGdlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgbGlzdEJhZGdlW2xpc3RCYWRnZS5sZW5ndGggLSAxXS5jbGljaygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYXJyb3dSaWdodCcsIFsnJGV2ZW50J10pXG4gIGhhbmRsZUtleURvd25SaWdodChldmVudDogYW55KSB7XG4gICAgaWYgKHRoaXMuZGlyZWN0aW9uID09PSBSaWdodFRvTGVmdERpcmVjdGlvbkVudW0uTGVmdFRvUmlnaHQpIHtcbiAgICAgIHRoaXMuYXJyb3dSaWdodElubmVySGFuZGxlcihldmVudCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYXJyb3dMZWZ0SW5uZXJIYW5kbGVyKGV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBhcnJvd1JpZ2h0SW5uZXJIYW5kbGVyKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBsaXN0QmFkZ2UgPSB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKGAuJHtERl9TRUxFQ1RfQ0xBU1N9YCk7XG4gICAgY29uc3QgY3VycmVudFBvcyA9IEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwobGlzdEJhZGdlLCBkb2N1bWVudC5hY3RpdmVFbGVtZW50KTtcbiAgICAvLyBUZXN0IGlmIHRoZSBmb2N1cyBpcyBpbiB0aGUgbGlzdCAob3RoZXJ3aXNlIGl0IGlzIGluIHRoZSBpbnB1dCBhbmQgd2UgZG8gbm90aGluZylcbiAgICBpZiAoY3VycmVudFBvcyAhPT0gLTEpIHtcbiAgICAgIGlmIChjdXJyZW50UG9zID09PSBsaXN0QmFkZ2UubGVuZ3RoIC0gMSkge1xuICAgICAgICB0aGlzLnNlbGVjdC5mb2N1cygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgKGxpc3RCYWRnZVtjdXJyZW50UG9zICsgMV0gfHwgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkuZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKFxuICAgICAgZXZlbnQudGFyZ2V0LnNlbGVjdGlvblN0YXJ0ID09PSBldmVudC50YXJnZXQuc2VsZWN0aW9uRW5kICYmXG4gICAgICBldmVudC50YXJnZXQubm9kZU5hbWUgPT09ICdJTlBVVCcgJiZcbiAgICAgIGV2ZW50LnRhcmdldC5zZWxlY3Rpb25TdGFydCA9PT0gZXZlbnQudGFyZ2V0LnZhbHVlLmxlbmd0aFxuICAgICkge1xuICAgICAgY29uc3QgY2xlYXJFbCA9XG4gICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5uZy1jbGVhci13cmFwcGVyJykgfHxcbiAgICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLm5nLWNsZWFyJyk7XG4gICAgICBpZiAoY2xlYXJFbCkge1xuICAgICAgICAvLyBFdmVudCBpZiBpdCBjYW4gYmUgYWRkZWQgbXVsdGlwbGUgdGltZSBpdCBpcyBub3QgYW4gaXNzdWUgSSB0aGluay5cbiAgICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4oY2xlYXJFbCwgJ2tleWRvd24uRW50ZXInLCAoZSkgPT4ge1xuICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7IC8vIGtpbGwgdGhlIGV2ZW50IHRvIGZvcmJpZCBkZWZhdWx0IG5nLXNlbGVjdCBiZWhhdmlvciAob3BlbiB0aGUgZHJvcGRvd24pXG4gICAgICAgICAgdGhpcy5zZWxlY3QuaGFuZGxlQ2xlYXJDbGljaygpO1xuICAgICAgICB9KTtcbiAgICAgICAgY2xlYXJFbC5zZXRBdHRyaWJ1dGUoJ3RhYmluZGV4JywgJzEnKTsgLy8gVG8gYmUgYWJsZSB0byBmb2N1cyB0aGUgZWxlbWVudCBpbiBjaHJvbWVcbiAgICAgICAgY2xlYXJFbC5mb2N1cygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGFycm93TGVmdElubmVySGFuZGxlcihldmVudDogYW55KSB7XG4gICAgY29uc3QgbGlzdEJhZGdlID0gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbChgLiR7REZfU0VMRUNUX0NMQVNTfWApO1xuICAgIGlmIChcbiAgICAgIGV2ZW50LnRhcmdldC5zZWxlY3Rpb25TdGFydCA9PT0gZXZlbnQudGFyZ2V0LnNlbGVjdGlvbkVuZCAmJlxuICAgICAgZXZlbnQudGFyZ2V0LnNlbGVjdGlvblN0YXJ0ID09PSAwICYmXG4gICAgICBldmVudC50YXJnZXQubm9kZU5hbWUgPT09ICdJTlBVVCdcbiAgICApIHtcbiAgICAgIGlmIChsaXN0QmFkZ2UubGVuZ3RoID4gMCkge1xuICAgICAgICBsaXN0QmFkZ2VbbGlzdEJhZGdlLmxlbmd0aCAtIDFdLmZvY3VzKCk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChldmVudC50YXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKCduZy1jbGVhci13cmFwcGVyJykgfHwgZXZlbnQudGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucygnbmctY2xlYXInKSkge1xuICAgICAgdGhpcy5zZWxlY3QuZm9jdXMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgY3VycmVudFBvcyA9IEFycmF5LnByb3RvdHlwZS5pbmRleE9mLmNhbGwobGlzdEJhZGdlLCBkb2N1bWVudC5hY3RpdmVFbGVtZW50KTtcbiAgICAgIChsaXN0QmFkZ2VbY3VycmVudFBvcyAtIDFdIHx8IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpLmZvY3VzKCk7XG4gICAgfVxuICB9XG59XG4iXX0=
|