@design-factory/design-factory 18.1.1 → 19.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. package/README.md +4 -4
  2. package/design-factory-initial-branding.css +1 -1
  3. package/design-factory.css +1 -1
  4. package/fesm2022/design-factory.mjs +748 -921
  5. package/fesm2022/design-factory.mjs.map +1 -1
  6. package/lib/angular/accessibility/components/skip-links-container/skip-links-container.component.d.ts +3 -9
  7. package/lib/angular/accessibility/directives/skip-link.directive.d.ts +3 -9
  8. package/lib/angular/card/manage-card-selection.directive.d.ts +5 -5
  9. package/lib/angular/datepicker/datepicker-range.directive.d.ts +5 -6
  10. package/lib/angular/datepicker/datepicker.module.d.ts +3 -5
  11. package/lib/angular/inputs/icon/inputicon.directive.d.ts +5 -6
  12. package/lib/angular/mediaqueries/ifMedia.directive.d.ts +8 -9
  13. package/lib/angular/modal/modal.service.d.ts +4 -0
  14. package/lib/angular/progressbar/progressbar.component.d.ts +18 -28
  15. package/lib/angular/progressindicator/default/default-spinner.component.d.ts +4 -4
  16. package/lib/angular/progressindicator/progressindicator-backdrop.component.d.ts +4 -4
  17. package/lib/angular/progressindicator/progressindicator-container.component.d.ts +5 -7
  18. package/lib/angular/progressindicator/progressindicator.directive.d.ts +9 -11
  19. package/lib/angular/selects/events/manage-badge-events.directive.d.ts +4 -5
  20. package/lib/angular/selects/option-highlight.directive.d.ts +7 -12
  21. package/lib/angular/sidenav/dfSideNavCollapse.d.ts +16 -18
  22. package/lib/angular/sidenav/excludeTrap.directive.d.ts +9 -10
  23. package/lib/angular/sidenav/sidenav.component.d.ts +7 -8
  24. package/lib/angular/sidenav/sidenavlist.component.d.ts +8 -8
  25. package/lib/angular/slider/direction/sliderdirection.directive.d.ts +5 -7
  26. package/lib/angular/slider/lib/slider-element.directive.d.ts +2 -1
  27. package/lib/angular/slider/lib/slider-handle.directive.d.ts +1 -1
  28. package/lib/angular/slider/lib/slider-label.directive.d.ts +1 -1
  29. package/lib/angular/slider/lib/slider.component.d.ts +1 -1
  30. package/lib/angular/slider/lib/tooltip-wrapper.component.d.ts +1 -1
  31. package/lib/angular/slider/slider.module.d.ts +1 -1
  32. package/lib/angular/stepper/stepper.component.d.ts +7 -8
  33. package/lib/angular/utils/titleTruncate.directive.d.ts +2 -3
  34. package/lib/angular/waves-of-progress/waves.directive.d.ts +4 -3
  35. package/lib/index.d.ts +0 -1
  36. package/package.json +16 -16
  37. package/schematics/ng-add/index.js +1 -1
  38. package/styles/scss/agnosui/_variables.scss +9 -3
  39. package/styles/scss/bootstrap/_variables.scss +54 -12
  40. package/styles/scss/components/accordion/_accordion.scss +67 -6
  41. package/styles/scss/components/accordion/_accordion.variables.scss +2 -0
  42. package/styles/scss/components/alert/_alert.scss +3 -2
  43. package/styles/scss/components/badge/_badge.scss +13 -3
  44. package/styles/scss/components/badge/_badge.variables.scss +1 -0
  45. package/styles/scss/components/button/_button.scss +5 -0
  46. package/styles/scss/components/form/_form.scss +8 -0
  47. package/styles/scss/components/sidenav/_sidenav.scss +5 -2
  48. package/styles/scss/components/toggle/_toggle.scss +1 -0
  49. package/styles/scss/df-styles-namespace.scss +3 -1
  50. package/styles/scss/df-styles.scss +3 -1
  51. package/styles/scss/themes/brand2023/_variables.scss +80 -28
  52. package/esm2022/design-factory.mjs +0 -5
  53. package/esm2022/environment.mjs +0 -5
  54. package/esm2022/index.mjs +0 -5
  55. package/esm2022/lib/angular/accessibility/accessibility.module.mjs +0 -19
  56. package/esm2022/lib/angular/accessibility/components/skip-links-container/skip-links-container.component.mjs +0 -32
  57. package/esm2022/lib/angular/accessibility/directives/skip-link.directive.mjs +0 -64
  58. package/esm2022/lib/angular/alert/alert.module.mjs +0 -17
  59. package/esm2022/lib/angular/animation/ngbTransition.mjs +0 -76
  60. package/esm2022/lib/angular/animation/util.mjs +0 -30
  61. package/esm2022/lib/angular/card/card-advanced.module.mjs +0 -17
  62. package/esm2022/lib/angular/card/manage-card-selection.directive.mjs +0 -47
  63. package/esm2022/lib/angular/datepicker/closedatepicker.directive.mjs +0 -38
  64. package/esm2022/lib/angular/datepicker/datepicker-keyboard-nav.service.mjs +0 -39
  65. package/esm2022/lib/angular/datepicker/datepicker-range.directive.mjs +0 -101
  66. package/esm2022/lib/angular/datepicker/datepicker-range.service.mjs +0 -97
  67. package/esm2022/lib/angular/datepicker/datepicker.module.mjs +0 -42
  68. package/esm2022/lib/angular/df.module.mjs +0 -102
  69. package/esm2022/lib/angular/footer/footer.module.mjs +0 -17
  70. package/esm2022/lib/angular/icon/amadeus-icon.mjs +0 -79
  71. package/esm2022/lib/angular/icon/icon.module.mjs +0 -17
  72. package/esm2022/lib/angular/icon/insert/insert-icon.directive.mjs +0 -47
  73. package/esm2022/lib/angular/icon/insert/insert-icon.module.mjs +0 -17
  74. package/esm2022/lib/angular/inputs/click/trigger-click.directive.mjs +0 -28
  75. package/esm2022/lib/angular/inputs/icon/inputicon.directive.mjs +0 -95
  76. package/esm2022/lib/angular/inputs/input-advanced.module.mjs +0 -19
  77. package/esm2022/lib/angular/mediaqueries/ifMedia.directive.mjs +0 -52
  78. package/esm2022/lib/angular/mediaqueries/media.module.mjs +0 -17
  79. package/esm2022/lib/angular/mediaqueries/media.service.mjs +0 -46
  80. package/esm2022/lib/angular/mediaqueries/mediaUtils.service.mjs +0 -185
  81. package/esm2022/lib/angular/modal/modal.service.mjs +0 -36
  82. package/esm2022/lib/angular/popover/config/popover.config.mjs +0 -15
  83. package/esm2022/lib/angular/popover/popover.module.mjs +0 -17
  84. package/esm2022/lib/angular/progressbar/progressbar.component.mjs +0 -156
  85. package/esm2022/lib/angular/progressbar/progressbar.module.mjs +0 -18
  86. package/esm2022/lib/angular/progressindicator/default/default-spinner.component.mjs +0 -23
  87. package/esm2022/lib/angular/progressindicator/progressindicator-backdrop.component.mjs +0 -29
  88. package/esm2022/lib/angular/progressindicator/progressindicator-config.mjs +0 -25
  89. package/esm2022/lib/angular/progressindicator/progressindicator-container.component.mjs +0 -52
  90. package/esm2022/lib/angular/progressindicator/progressindicator-ref.mjs +0 -8
  91. package/esm2022/lib/angular/progressindicator/progressindicator.directive.mjs +0 -39
  92. package/esm2022/lib/angular/progressindicator/progressindicator.module.mjs +0 -45
  93. package/esm2022/lib/angular/progressindicator/progressindicator.service.mjs +0 -170
  94. package/esm2022/lib/angular/right-to-left/directionDetection.service.mjs +0 -32
  95. package/esm2022/lib/angular/selects/events/manage-badge-events.directive.mjs +0 -65
  96. package/esm2022/lib/angular/selects/nav/manage-nav-select.directive.mjs +0 -108
  97. package/esm2022/lib/angular/selects/option-highlight.directive.mjs +0 -59
  98. package/esm2022/lib/angular/selects/select.model.mjs +0 -2
  99. package/esm2022/lib/angular/selects/select.module.mjs +0 -22
  100. package/esm2022/lib/angular/sidenav/dfSideNavAnimation.mjs +0 -73
  101. package/esm2022/lib/angular/sidenav/dfSideNavCollapse.mjs +0 -94
  102. package/esm2022/lib/angular/sidenav/dfSideNavCollapse.module.mjs +0 -18
  103. package/esm2022/lib/angular/sidenav/dfSideNavCollapse.service.mjs +0 -37
  104. package/esm2022/lib/angular/sidenav/dfSideNavCollapseConfig.mjs +0 -27
  105. package/esm2022/lib/angular/sidenav/excludeTrap.directive.mjs +0 -55
  106. package/esm2022/lib/angular/sidenav/manage-sidenav.directive.mjs +0 -26
  107. package/esm2022/lib/angular/sidenav/sidenav-config.mjs +0 -25
  108. package/esm2022/lib/angular/sidenav/sidenav.component.mjs +0 -86
  109. package/esm2022/lib/angular/sidenav/sidenav.module.mjs +0 -52
  110. package/esm2022/lib/angular/sidenav/sidenav.service.mjs +0 -316
  111. package/esm2022/lib/angular/sidenav/sidenavlist.component.mjs +0 -59
  112. package/esm2022/lib/angular/slider/direction/sliderdirection.directive.mjs +0 -36
  113. package/esm2022/lib/angular/slider/lib/change-context.mjs +0 -3
  114. package/esm2022/lib/angular/slider/lib/compatibility-helper.mjs +0 -15
  115. package/esm2022/lib/angular/slider/lib/event-listener-helper.mjs +0 -77
  116. package/esm2022/lib/angular/slider/lib/event-listener.mjs +0 -3
  117. package/esm2022/lib/angular/slider/lib/math-helper.mjs +0 -15
  118. package/esm2022/lib/angular/slider/lib/options.mjs +0 -123
  119. package/esm2022/lib/angular/slider/lib/pointer-type.mjs +0 -9
  120. package/esm2022/lib/angular/slider/lib/slider-element.directive.mjs +0 -190
  121. package/esm2022/lib/angular/slider/lib/slider-handle.directive.mjs +0 -65
  122. package/esm2022/lib/angular/slider/lib/slider-label.directive.mjs +0 -41
  123. package/esm2022/lib/angular/slider/lib/slider.component.mjs +0 -1998
  124. package/esm2022/lib/angular/slider/lib/tooltip-wrapper.component.mjs +0 -23
  125. package/esm2022/lib/angular/slider/lib/value-helper.mjs +0 -50
  126. package/esm2022/lib/angular/slider/slider.module.mjs +0 -37
  127. package/esm2022/lib/angular/stepper/stepper.component.mjs +0 -65
  128. package/esm2022/lib/angular/stepper/stepper.directive.mjs +0 -174
  129. package/esm2022/lib/angular/stepper/stepper.module.mjs +0 -17
  130. package/esm2022/lib/angular/stepper/stepper.service.mjs +0 -213
  131. package/esm2022/lib/angular/toast/toast.module.mjs +0 -17
  132. package/esm2022/lib/angular/tooltip/tooltip.module.mjs +0 -18
  133. package/esm2022/lib/angular/tooltip/truncate/tooltipTruncate.directive.mjs +0 -31
  134. package/esm2022/lib/angular/utils/html-element-helper.mjs +0 -8
  135. package/esm2022/lib/angular/utils/scrollbar.service.mjs +0 -79
  136. package/esm2022/lib/angular/utils/titleTruncate.directive.mjs +0 -39
  137. package/esm2022/lib/angular/waves-of-progress/waves.directive.mjs +0 -86
  138. package/esm2022/lib/angular/waves-of-progress/waves.module.mjs +0 -16
  139. package/esm2022/lib/index.mjs +0 -93
  140. 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3NpbmRpY2F0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1mYWN0b3J5L3NyYy9saWIvYW5ndWxhci9wcm9ncmVzc2luZGljYXRvci9wcm9ncmVzc2luZGljYXRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxVQUFVLEVBR1YsTUFBTSxFQUlOLFlBQVksRUFFWixXQUFXLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzlGLE9BQU8sRUFFTCxpQ0FBaUMsRUFDakMscUNBQXFDLEVBQ3RDLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDaEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDakUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7OztBQWE5RSxNQUFNLE9BQU8sMEJBQTBCO0lBV3JDLFlBQ3FDLFFBQWtCLEVBQ3BDLGVBQWlDLEVBQ2pDLHdCQUFrRCxFQUNsRCxNQUFzQixFQUN0QixRQUFrQixFQUNsQixTQUFvQjtRQUxGLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDcEMsb0JBQWUsR0FBZixlQUFlLENBQWtCO1FBQ2pDLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDbEQsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFDdEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBZnRCLGVBQVUsR0FBRywyQkFBMkIsQ0FBQztRQUMxRCx3RUFBd0U7UUFDdkQsd0JBQW1CLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNyRCx1QkFBa0IsR0FBRyxDQUFDLGVBQWUsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1FBQzNELDZCQUF3QixHQUFHLENBQUMsY0FBYyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBQzVFLGlDQUE0QixHQUFHLENBQUMsbUJBQW1CLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFFbEUsb0JBQWUsR0FBNkIsRUFBRSxDQUFDO1FBVTlELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxJQUFJLENBQUksT0FBc0MsRUFBRSxPQUFvQztRQUNsRixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ2xCLE1BQU0sSUFBSSxLQUFLLENBQ2IsZ0VBQWdFLE9BQU8sRUFBRSxTQUFTO2dCQUNoRixNQUFNLDZCQUE2QixDQUN0QyxDQUFDO1FBQ0osQ0FBQztRQUVELDJCQUEyQjtRQUMzQixNQUFNLFdBQVcsR0FDZixPQUFPLEVBQUUsUUFBUSxLQUFLLEtBQUs7WUFDekIsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQ2xCLG9DQUFvQyxFQUNwQyxJQUFJLENBQUMsd0JBQXdCLEVBQzdCLFNBQVMsRUFDVCxZQUFZLENBQ2I7WUFDSCxDQUFDLENBQUMsU0FBUyxDQUFDO1FBRWhCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUN6RixNQUFNLGVBQWUsR0FBd0QsSUFBSSxDQUFDLGVBQWUsQ0FDL0YscUNBQXFDLEVBQ3JDLElBQUksQ0FBQyx3QkFBd0IsRUFDN0IsVUFBVSxFQUNWLFlBQVksQ0FDYixDQUFDO1FBRUYsTUFBTSxtQkFBbUIsR0FBbUIsRUFBRSxDQUFDO1FBRS9DLHVDQUF1QztRQUN2QyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzlELG1CQUFtQixDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDNUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQzNELENBQUMsQ0FBQyxDQUFDO1FBRUgsZ0RBQWdEO1FBQ2hELElBQUksWUFBWSxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDeEMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3ZELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM1RCxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFFcEUsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtnQkFDNUIsa0JBQWtCLEVBQUUsQ0FBQztnQkFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ2pFLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELElBQUksbUJBQW1CLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ25DLGVBQWUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUM3QixtQkFBbUIsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUU7b0JBQ3RDLFNBQVMsRUFBRSxDQUFDO2dCQUNkLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsNEVBQTRFO1FBQzVFLElBQUksT0FBTyxZQUFZLHFDQUFxQyxFQUFFLENBQUM7WUFDN0QsT0FBTyxHQUFHO2dCQUNSLEdBQUcsT0FBTztnQkFDVixRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVE7YUFDM0IsQ0FBQztRQUNKLENBQUM7UUFFRCwwQ0FBMEM7UUFDMUMsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsWUFBWSxDQUNmLFdBQVcsRUFDWCxJQUFJLENBQUMsa0JBQWtCLEVBQ3ZCLEVBQUUsR0FBRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQ3RFLENBQUM7UUFDSixDQUFDO1FBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRXRFLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxzQkFBc0IsQ0FBQyxlQUFlLEVBQUUsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ2xHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDaEQsT0FBTyxvQkFBb0IsQ0FBQztJQUM5QixDQUFDO0lBRUQsS0FBSyxDQUFDLG9CQUE0QztRQUNoRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3pFLElBQUksYUFBYSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDdkIsTUFBTSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDOUMsTUFBTSxhQUFhLEdBQUksb0JBQThELENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzNGLElBQUksYUFBYSxJQUFJLGFBQWEsWUFBWSxZQUFZLEVBQUUsQ0FBQztvQkFDM0QsYUFBYSxDQUFDLE9BQU8sRUFBRSxDQUFDO29CQUN2QixvQkFBOEQsQ0FBQyxHQUFHLENBQUMsR0FBRyxTQUFTLENBQUM7Z0JBQ25GLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNoRCxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sSUFBSSxLQUFLLENBQ2IsdUdBQXVHLENBQ3hHLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ssWUFBWSxDQUFDLFFBQWtCLEVBQUUsT0FBb0M7UUFDM0UsSUFBSSxPQUFPLEVBQUUsU0FBUyxZQUFZLFdBQVcsRUFBRSxDQUFDO1lBQzlDLE9BQU8sT0FBTyxDQUFDLFNBQVMsQ0FBQztRQUMzQixDQUFDO1FBQ0QsT0FBTyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztJQUN4RixDQUFDO0lBRU8sVUFBVSxDQUNoQixPQUFzQyxFQUN0QyxHQUE2QixFQUM3QixTQUFzQjtRQUV0QixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDYixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMseUJBQXlCLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDOUQsQ0FBQzthQUFNLElBQUksT0FBTyxZQUFZLGlDQUFpQyxFQUFFLENBQUM7WUFDaEUsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyx5QkFBeUIsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUNwRSxJQUFJLENBQUMsWUFBWSxDQUNmLE1BQU0sRUFDTixJQUFJLENBQUMsd0JBQXdCLEVBQzdCLEVBQUUsR0FBRyxPQUFPLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxTQUFTLEtBQUssSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FDL0UsQ0FBQztZQUNGLE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUM7YUFBTSxJQUFJLE9BQU8sWUFBWSxxQ0FBcUMsRUFBRSxDQUFDO1lBQ3BFLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsc0JBQXNCLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDakUsSUFBSSxDQUFDLFlBQVksQ0FDZixNQUFNLEVBQ04sSUFBSSxDQUFDLDRCQUE0QixFQUNqQyxFQUFFLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxDQUN6RCxDQUFDO1lBQ0YsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQzthQUFNLElBQUksT0FBTyxZQUFZLFdBQVcsRUFBRSxDQUFDO1lBQzFDLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxFQUFPLENBQUMsQ0FBQztZQUNwRCxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNoQyxPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDNUMsQ0FBQztJQUNILENBQUM7SUFFTyxlQUFlLENBQ3JCLE9BQWdCLEVBQ2hCLEdBQTZCLEVBQzdCLG9CQUF1RSxFQUN2RSxTQUF1QjtRQUV2QixNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEQsSUFBSSxNQUF1QixDQUFDO1FBQzVCLElBQUksb0JBQW9CLEVBQUUsQ0FBQztZQUN6QixJQUFJLG9CQUFvQixZQUFZLFlBQVksRUFBRSxDQUFDO2dCQUNqRCxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzdGLENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUM5RSxDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUMsQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4QyxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2QsU0FBUyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU8sWUFBWSxDQUNsQixNQUF1QixFQUN2QixnQkFBMEIsRUFDMUIsT0FBaUU7UUFFakUsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUM7WUFDaEMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBYyxFQUFFLEVBQUU7Z0JBQzFDLE1BQU0sV0FBVyxHQUFJLE9BQXNDLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3BFLElBQUksV0FBVyxLQUFLLElBQUksSUFBSSxXQUFXLEtBQUssU0FBUyxFQUFFLENBQUM7b0JBQ3JELE9BQWlELENBQUMsTUFBTSxDQUFDLEdBQUcsV0FBVyxDQUFDO2dCQUMzRSxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQzs4R0F2TVUsMEJBQTBCLGtCQVkzQixRQUFRO2tIQVpQLDBCQUEwQixjQUZ6QixNQUFNOzsyRkFFUCwwQkFBMEI7a0JBSHRDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFhSSxNQUFNOzJCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gIEluamVjdGFibGUsXG4gIFJlbmRlcmVyRmFjdG9yeTIsXG4gIFJlbmRlcmVyMixcbiAgSW5qZWN0LFxuICBBcHBsaWNhdGlvblJlZixcbiAgSW5qZWN0b3IsXG4gIEVtYmVkZGVkVmlld1JlZixcbiAgQ29tcG9uZW50UmVmLFxuICBUeXBlLFxuICBUZW1wbGF0ZVJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERmUHJvZ3Jlc3NJbmRpY2F0b3JDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuL3Byb2dyZXNzaW5kaWNhdG9yLWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGZQcm9ncmVzc0luZGljYXRvckJhY2tkcm9wQ29tcG9uZW50IH0gZnJvbSAnLi9wcm9ncmVzc2luZGljYXRvci1iYWNrZHJvcC5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgRGZQcm9ncmVzc0luZGljYXRvck9wdGlvbnMsXG4gIERmUHJvZ3Jlc3NJbmRpY2F0b3JDb250ZW50U3Bpbm5lcixcbiAgRGZQcm9ncmVzc0luZGljYXRvckNvbnRlbnRQcm9ncmVzc0JhclxufSBmcm9tICcuL3Byb2dyZXNzaW5kaWNhdG9yLWNvbmZpZyc7XG5pbXBvcnQgeyBEZkRlZmF1bHRTcGlubmVyQ29tcG9uZW50IH0gZnJvbSAnLi9kZWZhdWx0L2RlZmF1bHQtc3Bpbm5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGZQcm9ncmVzc0luZGljYXRvclJlZiB9IGZyb20gJy4vcHJvZ3Jlc3NpbmRpY2F0b3ItcmVmJztcbmltcG9ydCB7IERmUHJvZ3Jlc3NiYXJDb21wb25lbnQgfSBmcm9tICcuLi9wcm9ncmVzc2Jhci9wcm9ncmVzc2Jhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2Nyb2xsQmFyIH0gZnJvbSAnLi4vdXRpbHMvc2Nyb2xsYmFyLnNlcnZpY2UnO1xuXG5leHBvcnQgdHlwZSBEZlByb2dyZXNzSW5kaWNhdG9yQ29udGVudDxUPiA9XG4gIHwgdW5kZWZpbmVkXG4gIHwgVGVtcGxhdGVSZWY8VD5cbiAgfCBUeXBlPFQ+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=