@indice/ng-components 0.2.113 → 0.2.116

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 (83) hide show
  1. package/bundles/indice-ng-components.umd.js +3725 -0
  2. package/bundles/indice-ng-components.umd.js.map +1 -0
  3. package/{esm2020/indice-ng-components.mjs → esm2015/indice-ng-components.js} +0 -0
  4. package/{esm2020/lib/controls/avatar-initials/avatar-initials.component.mjs → esm2015/lib/controls/avatar-initials/avatar-initials.component.js} +8 -5
  5. package/esm2015/lib/controls/collapsible-panel/collapsible-panel.component.js +23 -0
  6. package/esm2015/lib/controls/date-picker/date-picker.component.js +269 -0
  7. package/esm2015/lib/controls/drop-down-menu/drop-down-menu.component.js +72 -0
  8. package/{esm2020/lib/controls/kpi-tile/kpi-tile.component.mjs → esm2015/lib/controls/kpi-tile/kpi-tile.component.js} +8 -5
  9. package/{esm2020/lib/controls/list-view/list-column.component.mjs → esm2015/lib/controls/list-view/list-column.component.js} +3 -3
  10. package/{esm2020/lib/controls/list-view/list-details-section.component.mjs → esm2015/lib/controls/list-view/list-details-section.component.js} +3 -3
  11. package/{esm2020/lib/controls/list-view/list-tile.component.mjs → esm2015/lib/controls/list-view/list-tile.component.js} +3 -3
  12. package/esm2015/lib/controls/list-view/list-view-empty-state.component.js +32 -0
  13. package/esm2015/lib/controls/list-view/list-view.component.js +186 -0
  14. package/{esm2020/lib/controls/pager/pager.component.mjs → esm2015/lib/controls/pager/pager.component.js} +8 -5
  15. package/esm2015/lib/controls/side-pane/side-pane.component.js +76 -0
  16. package/esm2015/lib/controls/skeleton-loader/skeleton-loader.component.js +29 -0
  17. package/{esm2020/lib/controls/toaster/toaster-container.component.mjs → esm2015/lib/controls/toaster/toaster-container.component.js} +8 -5
  18. package/esm2015/lib/controls/toaster/toaster.component.js +34 -0
  19. package/{esm2020/lib/controls/toggle/toggle.component.mjs → esm2015/lib/controls/toggle/toggle.component.js} +10 -6
  20. package/{esm2020/lib/directives/click-outside.directive.mjs → esm2015/lib/directives/click-outside.directive.js} +3 -3
  21. package/{esm2020/lib/directives/dynamic-component-host.directive.mjs → esm2015/lib/directives/dynamic-component-host.directive.js} +3 -3
  22. package/esm2015/lib/helpers/base-list.component.js +182 -0
  23. package/{esm2020/lib/icons.mjs → esm2015/lib/icons.js} +0 -0
  24. package/{esm2020/lib/layouts/shell/shell-footer/shell-footer.component.mjs → esm2015/lib/layouts/shell/shell-footer/shell-footer.component.js} +8 -5
  25. package/esm2015/lib/layouts/shell/shell-header/shell-header.component.js +118 -0
  26. package/esm2015/lib/layouts/shell/shell-layout/shell-layout.component.js +106 -0
  27. package/esm2015/lib/layouts/views/form-layout/form-layout.component.js +85 -0
  28. package/esm2015/lib/layouts/views/model-view-layout/model-view-layout.component.js +55 -0
  29. package/{esm2020/lib/layouts/views/side-view-layout/side-view-layout.component.mjs → esm2015/lib/layouts/views/side-view-layout/side-view-layout.component.js} +8 -5
  30. package/esm2015/lib/layouts/views/view-layout/view-layout.component.js +110 -0
  31. package/{esm2020/lib/ng-components.module.mjs → esm2015/lib/ng-components.module.js} +4 -4
  32. package/{esm2020/lib/pages/auth/auth-callback/auth-callback.component.mjs → esm2015/lib/pages/auth/auth-callback/auth-callback.component.js} +10 -6
  33. package/{esm2020/lib/pages/auth/auth-renew/auth-renew.component.mjs → esm2015/lib/pages/auth/auth-renew/auth-renew.component.js} +3 -3
  34. package/{esm2020/lib/pages/auth/logged-out/logged-out.component.mjs → esm2015/lib/pages/auth/logged-out/logged-out.component.js} +9 -5
  35. package/esm2015/lib/pages/http-status/error/error.component.js +20 -0
  36. package/esm2015/lib/pages/http-status/page-not-found/page-not-found.component.js +18 -0
  37. package/esm2015/lib/pages/http-status/unauthorized/unauthorized.component.js +17 -0
  38. package/{esm2020/lib/pipes/address.pipe.mjs → esm2015/lib/pipes/address.pipe.js} +3 -3
  39. package/{esm2020/lib/pipes/duration-format.pipe.mjs → esm2015/lib/pipes/duration-format.pipe.js} +3 -3
  40. package/{esm2020/lib/services/component-loader/component-loader-options.class.mjs → esm2015/lib/services/component-loader/component-loader-options.class.js} +0 -0
  41. package/esm2015/lib/services/component-loader/component-loader.class.js +192 -0
  42. package/{esm2020/lib/services/component-loader/component-loader.factory.mjs → esm2015/lib/services/component-loader/component-loader.factory.js} +3 -3
  43. package/{esm2020/lib/services/component-loader/content-ref.class.mjs → esm2015/lib/services/component-loader/content-ref.class.js} +0 -0
  44. package/{esm2020/lib/services/modal-service/modal-backdrop-component.mjs → esm2015/lib/services/modal-service/modal-backdrop-component.js} +5 -5
  45. package/esm2015/lib/services/modal-service/modal-container-component.js +128 -0
  46. package/esm2015/lib/services/modal-service/modal-options.class.js +35 -0
  47. package/esm2015/lib/services/modal-service/modal-service.js +220 -0
  48. package/{esm2020/lib/services/modal-service/modal-styles.class.mjs → esm2015/lib/services/modal-service/modal-styles.class.js} +0 -0
  49. package/{esm2020/lib/services/modal-service/modal.class.mjs → esm2015/lib/services/modal-service/modal.class.js} +3 -3
  50. package/{esm2020/lib/services/toaster.service.mjs → esm2015/lib/services/toaster.service.js} +3 -3
  51. package/{esm2020/lib/tokens.mjs → esm2015/lib/tokens.js} +0 -0
  52. package/{esm2020/lib/types.mjs → esm2015/lib/types.js} +0 -0
  53. package/esm2015/public-api.js +52 -0
  54. package/{fesm2020/indice-ng-components.mjs → fesm2015/indice-ng-components.js} +305 -202
  55. package/fesm2015/indice-ng-components.js.map +1 -0
  56. package/lib/ng-components.module.d.ts +1 -4
  57. package/lib/services/modal-service/modal-options.class.d.ts +2 -1
  58. package/package.json +6 -19
  59. package/esm2020/lib/controls/collapsible-panel/collapsible-panel.component.mjs +0 -20
  60. package/esm2020/lib/controls/date-picker/date-picker.component.mjs +0 -260
  61. package/esm2020/lib/controls/drop-down-menu/drop-down-menu.component.mjs +0 -68
  62. package/esm2020/lib/controls/list-view/list-view-empty-state.component.mjs +0 -29
  63. package/esm2020/lib/controls/list-view/list-view.component.mjs +0 -184
  64. package/esm2020/lib/controls/side-pane/side-pane.component.mjs +0 -72
  65. package/esm2020/lib/controls/skeleton-loader/skeleton-loader.component.mjs +0 -25
  66. package/esm2020/lib/controls/toaster/toaster.component.mjs +0 -31
  67. package/esm2020/lib/helpers/base-list.component.mjs +0 -181
  68. package/esm2020/lib/layouts/shell/shell-header/shell-header.component.mjs +0 -113
  69. package/esm2020/lib/layouts/shell/shell-layout/shell-layout.component.mjs +0 -101
  70. package/esm2020/lib/layouts/views/form-layout/form-layout.component.mjs +0 -80
  71. package/esm2020/lib/layouts/views/model-view-layout/model-view-layout.component.mjs +0 -51
  72. package/esm2020/lib/layouts/views/view-layout/view-layout.component.mjs +0 -104
  73. package/esm2020/lib/pages/http-status/error/error.component.mjs +0 -17
  74. package/esm2020/lib/pages/http-status/page-not-found/page-not-found.component.mjs +0 -15
  75. package/esm2020/lib/pages/http-status/unauthorized/unauthorized.component.mjs +0 -14
  76. package/esm2020/lib/services/component-loader/component-loader.class.mjs +0 -188
  77. package/esm2020/lib/services/modal-service/modal-container-component.mjs +0 -126
  78. package/esm2020/lib/services/modal-service/modal-options.class.mjs +0 -34
  79. package/esm2020/lib/services/modal-service/modal-service.mjs +0 -219
  80. package/esm2020/public-api.mjs +0 -54
  81. package/fesm2015/indice-ng-components.mjs +0 -3129
  82. package/fesm2015/indice-ng-components.mjs.map +0 -1
  83. package/fesm2020/indice-ng-components.mjs.map +0 -1
@@ -23,9 +23,9 @@ export class ComponentLoaderFactory {
23
23
  return new ComponentLoader(viewContainerRef, this.componentFactoryResolver, this.applicationRef, this.injector);
24
24
  }
25
25
  }
26
- ComponentLoaderFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ComponentLoaderFactory, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.Injector }, { token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Injectable });
27
- ComponentLoaderFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ComponentLoaderFactory, providedIn: 'root' });
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ComponentLoaderFactory, decorators: [{
26
+ ComponentLoaderFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ComponentLoaderFactory, deps: [{ token: i0.ComponentFactoryResolver }, { token: i0.Injector }, { token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Injectable });
27
+ ComponentLoaderFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ComponentLoaderFactory, providedIn: 'root' });
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ComponentLoaderFactory, decorators: [{
29
29
  type: Injectable,
30
30
  args: [{ providedIn: 'root' }]
31
31
  }], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: i0.Injector }, { type: i0.ApplicationRef }]; } });
@@ -22,15 +22,15 @@ export class ModalBackdropComponent {
22
22
  }
23
23
  hide() {
24
24
  this.renderer.removeClass(this.element.nativeElement, cssClassNames.show);
25
- setTimeout(() => this.backdropLoader?.hide(), this.animationsEnabled ? animationTime.backdrop : 0);
25
+ setTimeout(() => { var _a; return (_a = this.backdropLoader) === null || _a === void 0 ? void 0 : _a.hide(); }, this.animationsEnabled ? animationTime.backdrop : 0);
26
26
  }
27
27
  reflow(element) {
28
28
  ((bs) => bs)(element.offsetHeight);
29
29
  }
30
30
  }
31
- ModalBackdropComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ModalBackdropComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
32
- ModalBackdropComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: ModalBackdropComponent, selector: "lib-modal-backdrop", host: { classAttribute: "modal-backdrop" }, ngImport: i0, template: '', isInline: true, encapsulation: i0.ViewEncapsulation.None });
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ModalBackdropComponent, decorators: [{
31
+ ModalBackdropComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ModalBackdropComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
32
+ ModalBackdropComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.1", type: ModalBackdropComponent, selector: "lib-modal-backdrop", host: { classAttribute: "modal-backdrop" }, ngImport: i0, template: '', isInline: true, encapsulation: i0.ViewEncapsulation.None });
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ModalBackdropComponent, decorators: [{
34
34
  type: Component,
35
35
  args: [{
36
36
  selector: 'lib-modal-backdrop',
@@ -41,4 +41,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImpor
41
41
  },
42
42
  }]
43
43
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; } });
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtYmFja2Ryb3AtY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL3NlcnZpY2VzL21vZGFsLXNlcnZpY2UvbW9kYWwtYmFja2Ryb3AtY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWlDLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVGLE9BQU8sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBRXBFOzs7OztHQUtHO0FBU0gsTUFBTSxPQUFPLHNCQUFzQjtJQUdqQyxZQUFvQixPQUFtQixFQUFVLFFBQW1CO1FBQWhELFlBQU8sR0FBUCxPQUFPLENBQVk7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBRjVELHNCQUFpQixHQUFHLEtBQUssQ0FBQztJQUVxQyxDQUFDO0lBRXhFLFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMxQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdkUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ3pDO1FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFTSxJQUFJO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksRUFBRSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckcsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFZO1FBQ2pCLENBQUMsQ0FBQyxFQUFPLEVBQVEsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNoRCxDQUFDOzttSEFwQlUsc0JBQXNCO3VHQUF0QixzQkFBc0Isc0dBTHZCLEVBQUU7MkZBS0Qsc0JBQXNCO2tCQVJsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxRQUFRLEVBQUUsRUFBRTtvQkFDWixJQUFJLEVBQUU7d0JBQ0osS0FBSyxFQUFFLGFBQWEsQ0FBQyxRQUFRO3FCQUM5QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25Jbml0LCBSZW5kZXJlcjIsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudExvYWRlciB9IGZyb20gJy4uL2NvbXBvbmVudC1sb2FkZXIvY29tcG9uZW50LWxvYWRlci5jbGFzcyc7XHJcbmltcG9ydCB7IGFuaW1hdGlvblRpbWUsIGNzc0NsYXNzTmFtZXMgfSBmcm9tICcuL21vZGFsLXN0eWxlcy5jbGFzcyc7XHJcblxyXG4vKipcclxuICogQmFja2dyb3VuZCBsYXllciBmb3IgbW9kYWxzLlxyXG4gKiBPdmVycmlkZSBjbGFzcyBuYW1lIHRvIHRoZW1lIGl0LlxyXG4gKiBAc2VlIHtAbGluayBjc3NDbGFzc05hbWVzfVxyXG4gKiBAaW50ZXJuYWxcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLW1vZGFsLWJhY2tkcm9wJyxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIHRlbXBsYXRlOiAnJyxcclxuICBob3N0OiB7XHJcbiAgICBjbGFzczogY3NzQ2xhc3NOYW1lcy5iYWNrZHJvcCxcclxuICB9LFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTW9kYWxCYWNrZHJvcENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcHJpdmF0ZSBhbmltYXRpb25zRW5hYmxlZCA9IGZhbHNlO1xyXG4gIHByaXZhdGUgYmFja2Ryb3BMb2FkZXI6IENvbXBvbmVudExvYWRlcjxNb2RhbEJhY2tkcm9wQ29tcG9uZW50PiB8IHVuZGVmaW5lZDtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWYsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5hbmltYXRpb25zRW5hYmxlZCkge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCBjc3NDbGFzc05hbWVzLmZhZGUpO1xyXG4gICAgICB0aGlzLnJlZmxvdyh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCBjc3NDbGFzc05hbWVzLnNob3cpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhpZGUoKSB7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCBjc3NDbGFzc05hbWVzLnNob3cpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmJhY2tkcm9wTG9hZGVyPy5oaWRlKCksIHRoaXMuYW5pbWF0aW9uc0VuYWJsZWQgPyBhbmltYXRpb25UaW1lLmJhY2tkcm9wIDogMCk7XHJcbiAgfVxyXG5cclxuICByZWZsb3coZWxlbWVudDogYW55KTogdm9pZCB7XHJcbiAgICAoKGJzOiBhbnkpOiB2b2lkID0+IGJzKShlbGVtZW50Lm9mZnNldEhlaWdodCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtYmFja2Ryb3AtY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL3NlcnZpY2VzL21vZGFsLXNlcnZpY2UvbW9kYWwtYmFja2Ryb3AtY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWlDLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVGLE9BQU8sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBRXBFOzs7OztHQUtHO0FBU0gsTUFBTSxPQUFPLHNCQUFzQjtJQUdqQyxZQUFvQixPQUFtQixFQUFVLFFBQW1CO1FBQWhELFlBQU8sR0FBUCxPQUFPLENBQVk7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBRjVELHNCQUFpQixHQUFHLEtBQUssQ0FBQztJQUVxQyxDQUFDO0lBRXhFLFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUMxQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdkUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ3pDO1FBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFTSxJQUFJO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsV0FBQyxPQUFBLE1BQUEsSUFBSSxDQUFDLGNBQWMsMENBQUUsSUFBSSxFQUFFLENBQUEsRUFBQSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckcsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFZO1FBQ2pCLENBQUMsQ0FBQyxFQUFPLEVBQVEsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNoRCxDQUFDOzttSEFwQlUsc0JBQXNCO3VHQUF0QixzQkFBc0Isc0dBTHZCLEVBQUU7MkZBS0Qsc0JBQXNCO2tCQVJsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxRQUFRLEVBQUUsRUFBRTtvQkFDWixJQUFJLEVBQUU7d0JBQ0osS0FBSyxFQUFFLGFBQWEsQ0FBQyxRQUFRO3FCQUM5QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25Jbml0LCBSZW5kZXJlcjIsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbXBvbmVudExvYWRlciB9IGZyb20gJy4uL2NvbXBvbmVudC1sb2FkZXIvY29tcG9uZW50LWxvYWRlci5jbGFzcyc7XHJcbmltcG9ydCB7IGFuaW1hdGlvblRpbWUsIGNzc0NsYXNzTmFtZXMgfSBmcm9tICcuL21vZGFsLXN0eWxlcy5jbGFzcyc7XHJcblxyXG4vKipcclxuICogQmFja2dyb3VuZCBsYXllciBmb3IgbW9kYWxzLlxyXG4gKiBPdmVycmlkZSBjbGFzcyBuYW1lIHRvIHRoZW1lIGl0LlxyXG4gKiBAc2VlIHtAbGluayBjc3NDbGFzc05hbWVzfVxyXG4gKiBAaW50ZXJuYWxcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLW1vZGFsLWJhY2tkcm9wJyxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIHRlbXBsYXRlOiAnJyxcclxuICBob3N0OiB7XHJcbiAgICBjbGFzczogY3NzQ2xhc3NOYW1lcy5iYWNrZHJvcCxcclxuICB9LFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTW9kYWxCYWNrZHJvcENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcHJpdmF0ZSBhbmltYXRpb25zRW5hYmxlZCA9IGZhbHNlO1xyXG4gIHByaXZhdGUgYmFja2Ryb3BMb2FkZXI6IENvbXBvbmVudExvYWRlcjxNb2RhbEJhY2tkcm9wQ29tcG9uZW50PiB8IHVuZGVmaW5lZDtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWYsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5hbmltYXRpb25zRW5hYmxlZCkge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCBjc3NDbGFzc05hbWVzLmZhZGUpO1xyXG4gICAgICB0aGlzLnJlZmxvdyh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCBjc3NDbGFzc05hbWVzLnNob3cpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhpZGUoKSB7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCBjc3NDbGFzc05hbWVzLnNob3cpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmJhY2tkcm9wTG9hZGVyPy5oaWRlKCksIHRoaXMuYW5pbWF0aW9uc0VuYWJsZWQgPyBhbmltYXRpb25UaW1lLmJhY2tkcm9wIDogMCk7XHJcbiAgfVxyXG5cclxuICByZWZsb3coZWxlbWVudDogYW55KTogdm9pZCB7XHJcbiAgICAoKGJzOiBhbnkpOiB2b2lkID0+IGJzKShlbGVtZW50Lm9mZnNldEhlaWdodCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,128 @@
1
+ import { Component, HostListener } from '@angular/core';
2
+ import { animationTime, cssClassNames } from './modal-styles.class';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "./modal-options.class";
5
+ /**
6
+ * Modal container component.
7
+ * @remarks
8
+ * All dynamic content `TemplateRef` or `Component` case will be drawn inside this.
9
+ * You can override css classes to theme it {@link cssClassNames}
10
+ * @internal
11
+ */
12
+ export class ModalContainerComponent {
13
+ constructor(options, _element, renderer) {
14
+ this._element = _element;
15
+ this.renderer = renderer;
16
+ this.isShown = false;
17
+ this.animationsEnabled = false;
18
+ this.isModalHiding = false;
19
+ this.clickStartedInContent = false;
20
+ this.config = Object.assign({}, options);
21
+ }
22
+ ngOnInit() {
23
+ if (this.animationsEnabled) {
24
+ this.renderer.addClass(this._element.nativeElement, cssClassNames.fade);
25
+ }
26
+ this.renderer.setStyle(this._element.nativeElement, 'display', 'block');
27
+ setTimeout(() => {
28
+ this.isShown = true;
29
+ this.renderer.addClass(this._element.nativeElement, cssClassNames.show);
30
+ }, this.animationsEnabled ? animationTime.backdrop : 0);
31
+ if (this._element.nativeElement) {
32
+ this._element.nativeElement.focus();
33
+ }
34
+ }
35
+ onClickStarted(event) {
36
+ this.clickStartedInContent = event.target !== this._element.nativeElement;
37
+ }
38
+ onClickStop(event) {
39
+ const clickedInBackdrop = event.target === this._element.nativeElement && !this.clickStartedInContent;
40
+ if (this.config.ignoreBackdropClick || this.config.backdrop === 'static' || !clickedInBackdrop) {
41
+ this.clickStartedInContent = false;
42
+ return;
43
+ }
44
+ this.hide();
45
+ }
46
+ onPopState() {
47
+ this.hide();
48
+ }
49
+ onEsc(event) {
50
+ var _a;
51
+ if (!this.isShown) {
52
+ return;
53
+ }
54
+ if (event.keyCode === 27 || event.key === 'Escape' || event.key === 'Esc') {
55
+ event.preventDefault();
56
+ }
57
+ if (this.config.keyboard && this.config.id === ((_a = this.modalService) === null || _a === void 0 ? void 0 : _a.getActiveModal().config.id)) {
58
+ this.hide();
59
+ }
60
+ }
61
+ ngOnDestroy() {
62
+ if (this.isShown) {
63
+ this._hide();
64
+ }
65
+ }
66
+ hide(result) {
67
+ if (this.isModalHiding || !this.isShown) {
68
+ return;
69
+ }
70
+ if (this.config.closeInterceptor) {
71
+ this.config.closeInterceptor().then(() => this._hide(), () => undefined);
72
+ return;
73
+ }
74
+ this._hide(result);
75
+ }
76
+ _hide(result) {
77
+ this.isModalHiding = true;
78
+ this.renderer.removeClass(this._element.nativeElement, cssClassNames.show);
79
+ setTimeout(() => {
80
+ var _a;
81
+ this.isShown = false;
82
+ (_a = this.modalService) === null || _a === void 0 ? void 0 : _a.hide(this.config.id, result);
83
+ this.isModalHiding = false;
84
+ }, this.animationsEnabled ? animationTime.modal : 0);
85
+ }
86
+ }
87
+ ModalContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ModalContainerComponent, deps: [{ token: i1.ModalOptions }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
88
+ ModalContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.0.1", type: ModalContainerComponent, selector: "lib-modal-container", host: { attributes: { "role": "dialog", "tabindex": "-1" }, listeners: { "mousedown": "onClickStarted($event)", "click": "onClickStop($event)", "window:popstate": "onPopState()", "window:keydown.esc": "onEsc($event)" }, properties: { "attr.aria-modal": "true", "attr.aria-labelledby": "config.ariaLabelledBy", "attr.aria-describedby": "config.ariaDescribedby" }, classAttribute: "modal" }, ngImport: i0, template: `
89
+ <div [class]="'modal-dialog' + (config.class ? ' ' + config.class : '')" role="document" focusTrap>
90
+ <div class="modal-content">
91
+ <ng-content></ng-content>
92
+ </div>
93
+ </div>
94
+ `, isInline: true });
95
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ModalContainerComponent, decorators: [{
96
+ type: Component,
97
+ args: [{
98
+ selector: 'lib-modal-container',
99
+ template: `
100
+ <div [class]="'modal-dialog' + (config.class ? ' ' + config.class : '')" role="document" focusTrap>
101
+ <div class="modal-content">
102
+ <ng-content></ng-content>
103
+ </div>
104
+ </div>
105
+ `,
106
+ host: {
107
+ class: 'modal',
108
+ role: 'dialog',
109
+ tabindex: '-1',
110
+ '[attr.aria-modal]': 'true',
111
+ '[attr.aria-labelledby]': 'config.ariaLabelledBy',
112
+ '[attr.aria-describedby]': 'config.ariaDescribedby',
113
+ },
114
+ }]
115
+ }], ctorParameters: function () { return [{ type: i1.ModalOptions }, { type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { onClickStarted: [{
116
+ type: HostListener,
117
+ args: ['mousedown', ['$event']]
118
+ }], onClickStop: [{
119
+ type: HostListener,
120
+ args: ['click', ['$event']]
121
+ }], onPopState: [{
122
+ type: HostListener,
123
+ args: ['window:popstate']
124
+ }], onEsc: [{
125
+ type: HostListener,
126
+ args: ['window:keydown.esc', ['$event']]
127
+ }] } });
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtY29udGFpbmVyLWNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9zZXJ2aWNlcy9tb2RhbC1zZXJ2aWNlL21vZGFsLWNvbnRhaW5lci1jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQWdDLE1BQU0sZUFBZSxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7OztBQUlwRTs7Ozs7O0dBTUc7QUFtQkgsTUFBTSxPQUFPLHVCQUF1QjtJQVFsQyxZQUFZLE9BQXFCLEVBQVksUUFBb0IsRUFBVSxRQUFtQjtRQUFqRCxhQUFRLEdBQVIsUUFBUSxDQUFZO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUp0RixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUMxQixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QiwwQkFBcUIsR0FBRyxLQUFLLENBQUM7UUFFcEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQzFCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN6RTtRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN4RSxVQUFVLENBQ1IsR0FBRyxFQUFFO1lBQ0gsSUFBSSxDQUFD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QixNQUFBLElBQUksQ0FBQyxZQUFZLDBDQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNoRCxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUM3QixDQUFDLEVBQ0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ2pELENBQUM7SUFDSixDQUFDOztvSEE3RlUsdUJBQXVCO3dHQUF2Qix1QkFBdUIsaWNBaEJ4Qjs7Ozs7O0dBTVQ7MkZBVVUsdUJBQXVCO2tCQWxCbkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUscUJBQXFCO29CQUMvQixRQUFRLEVBQUU7Ozs7OztHQU1UO29CQUNELElBQUksRUFBRTt3QkFDSixLQUFLLEVBQUUsT0FBTzt3QkFDZCxJQUFJLEVBQUUsUUFBUTt3QkFDZCxRQUFRLEVBQUUsSUFBSTt3QkFDZCxtQkFBbUIsRUFBRSxNQUFNO3dCQUMzQix3QkFBd0IsRUFBRSx1QkFBdUI7d0JBQ2pELHlCQUF5QixFQUFFLHdCQUF3QjtxQkFDcEQ7aUJBQ0Y7b0pBK0JDLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBTXJDLFdBQVc7c0JBRFYsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBV2pDLFVBQVU7c0JBRFQsWUFBWTt1QkFBQyxpQkFBaUI7Z0JBTS9CLEtBQUs7c0JBREosWUFBWTt1QkFBQyxvQkFBb0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBPbkRlc3Ryb3ksIE9uSW5pdCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGFuaW1hdGlvblRpbWUsIGNzc0NsYXNzTmFtZXMgfSBmcm9tICcuL21vZGFsLXN0eWxlcy5jbGFzcyc7XHJcbmltcG9ydCB7IE1vZGFsT3B0aW9ucyB9IGZyb20gJy4vbW9kYWwtb3B0aW9ucy5jbGFzcyc7XHJcbmltcG9ydCB7IE1vZGFsU2VydmljZSB9IGZyb20gJy4vbW9kYWwtc2VydmljZSc7XHJcblxyXG4vKipcclxuICogTW9kYWwgY29udGFpbmVyIGNvbXBvbmVudC5cclxuICogQHJlbWFya3NcclxuICogQWxsIGR5bmFtaWMgY29udGVudCBgVGVtcGxhdGVSZWZgIG9yIGBDb21wb25lbnRgIGNhc2Ugd2lsbCBiZSBkcmF3biBpbnNpZGUgdGhpcy5cclxuICogWW91IGNhbiBvdmVycmlkZSBjc3MgY2xhc3NlcyB0byB0aGVtZSBpdCB7QGxpbmsgY3NzQ2xhc3NOYW1lc31cclxuICogQGludGVybmFsXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1tb2RhbC1jb250YWluZXInLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IFtjbGFzc109XCInbW9kYWwtZGlhbG9nJyArIChjb25maWcuY2xhc3MgPyAnICcgKyBjb25maWcuY2xhc3MgOiAnJylcIiByb2xlPVwiZG9jdW1lbnRcIiBmb2N1c1RyYXA+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1jb250ZW50XCI+XHJcbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIGAsXHJcbiAgaG9zdDoge1xyXG4gICAgY2xhc3M6ICdtb2RhbCcsXHJcbiAgICByb2xlOiAnZGlhbG9nJyxcclxuICAgIHRhYmluZGV4OiAnLTEnLFxyXG4gICAgJ1thdHRyLmFyaWEtbW9kYWxdJzogJ3RydWUnLFxyXG4gICAgJ1thdHRyLmFyaWEtbGFiZWxsZWRieV0nOiAnY29uZmlnLmFyaWFMYWJlbGxlZEJ5JyxcclxuICAgICdbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XSc6ICdjb25maWcuYXJpYURlc2NyaWJlZGJ5JyxcclxuICB9LFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTW9kYWxDb250YWluZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcHVibGljIGxldmVsPzogbnVtYmVyO1xyXG4gIHB1YmxpYyBjb25maWc6IE1vZGFsT3B0aW9ucztcclxuICBwdWJsaWMgbW9kYWxTZXJ2aWNlPzogTW9kYWxTZXJ2aWNlO1xyXG4gIHByaXZhdGUgaXNTaG93biA9IGZhbHNlO1xyXG4gIHByaXZhdGUgYW5pbWF0aW9uc0VuYWJsZWQgPSBmYWxzZTtcclxuICBwcml2YXRlIGlzTW9kYWxIaWRpbmcgPSBmYWxzZTtcclxuICBwcml2YXRlIGNsaWNrU3RhcnRlZEluQ29udGVudCA9IGZhbHNlO1xyXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IE1vZGFsT3B0aW9ucywgcHJvdGVjdGVkIF9lbGVtZW50OiBFbGVtZW50UmVmLCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHtcclxuICAgIHRoaXMuY29uZmlnID0gT2JqZWN0LmFzc2lnbih7fSwgb3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmFuaW1hdGlvbnNFbmFibGVkKSB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5fZWxlbWVudC5uYXRpdmVFbGVtZW50LCBjc3NDbGFzc05hbWVzLmZhZGUpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdkaXNwbGF5JywgJ2Jsb2NrJyk7XHJcbiAgICBzZXRUaW1lb3V0KFxyXG4gICAgICAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc1Nob3duID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudCwgY3NzQ2xhc3NOYW1lcy5zaG93KTtcclxuICAgICAgfSxcclxuICAgICAgdGhpcy5hbmltYXRpb25zRW5hYmxlZCA/IGFuaW1hdGlvblRpbWUuYmFja2Ryb3AgOiAwXHJcbiAgICApO1xyXG4gICAgaWYgKHRoaXMuX2VsZW1lbnQubmF0aXZlRWxlbWVudCkge1xyXG4gICAgICB0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlZG93bicsIFsnJGV2ZW50J10pXHJcbiAgb25DbGlja1N0YXJ0ZWQoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuY2xpY2tTdGFydGVkSW5Db250ZW50ID0gZXZlbnQudGFyZ2V0ICE9PSB0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXHJcbiAgb25DbGlja1N0b3AoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IGNsaWNrZWRJbkJhY2tkcm9wID0gZXZlbnQudGFyZ2V0ID09PSB0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQgJiYgIXRoaXMuY2xpY2tTdGFydGVkSW5Db250ZW50O1xyXG4gICAgaWYgKHRoaXMuY29uZmlnLmlnbm9yZUJhY2tkcm9wQ2xpY2sgfHwgdGhpcy5jb25maWcuYmFja2Ryb3AgPT09ICdzdGF0aWMnIHx8ICFjbGlja2VkSW5CYWNrZHJvcCkge1xyXG4gICAgICB0aGlzLmNsaWNrU3RhcnRlZEluQ29udGVudCA9IGZhbHNlO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLmhpZGUoKTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpwb3BzdGF0ZScpXHJcbiAgb25Qb3BTdGF0ZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuaGlkZSgpO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OmtleWRvd24uZXNjJywgWyckZXZlbnQnXSlcclxuICBvbkVzYyhldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmlzU2hvd24pIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IDI3IHx8IGV2ZW50LmtleSA9PT0gJ0VzY2FwZScgfHwgZXZlbnQua2V5ID09PSAnRXNjJykge1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuY29uZmlnLmtleWJvYXJkICYmIHRoaXMuY29uZmlnLmlkID09PSB0aGlzLm1vZGFsU2VydmljZT8uZ2V0QWN0aXZlTW9kYWwoKS5jb25maWcuaWQpIHtcclxuICAgICAgdGhpcy5oaWRlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmlzU2hvd24pIHtcclxuICAgICAgdGhpcy5faGlkZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGlkZShyZXN1bHQ/OiBhbnkpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmlzTW9kYWxIaWRpbmcgfHwgIXRoaXMuaXNTaG93bikge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5jb25maWcuY2xvc2VJbnRlcmNlcHRvcikge1xyXG4gICAgICB0aGlzLmNvbmZpZy5jbG9zZUludGVyY2VwdG9yKCkudGhlbihcclxuICAgICAgICAoKSA9PiB0aGlzLl9oaWRlKCksXHJcbiAgICAgICAgKCkgPT4gdW5kZWZpbmVkXHJcbiAgICAgICk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuX2hpZGUocmVzdWx0KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2hpZGUocmVzdWx0PzogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLmlzTW9kYWxIaWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIGNzc0NsYXNzTmFtZXMuc2hvdyk7XHJcbiAgICBzZXRUaW1lb3V0KFxyXG4gICAgICAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc1Nob3duID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2U/LmhpZGUodGhpcy5jb25maWcuaWQsIHJlc3VsdCk7XHJcbiAgICAgICAgdGhpcy5pc01vZGFsSGlkaW5nID0gZmFsc2U7XHJcbiAgICAgIH0sXHJcbiAgICAgIHRoaXMuYW5pbWF0aW9uc0VuYWJsZWQgPyBhbmltYXRpb25UaW1lLm1vZGFsIDogMFxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,35 @@
1
+ import { Injectable, InjectionToken } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Modals option can be passed to a specific modal from {@link ModalService.show} or
5
+ * set globbaly using the injection token {@link MODAL_CONFIG_DEFAULT_OVERRIDE}.
6
+ * @remarks
7
+ * Modal specific options are merged with global options.
8
+ * @see {@link modalConfigDefaults} for defaults.
9
+ * @public
10
+ */
11
+ export class ModalOptions {
12
+ }
13
+ ModalOptions.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ModalOptions, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
14
+ ModalOptions.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ModalOptions });
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ModalOptions, decorators: [{
16
+ type: Injectable
17
+ }] });
18
+ /**
19
+ * Default option values.
20
+ */
21
+ export const modalConfigDefaults = {
22
+ backdrop: true,
23
+ keyboard: true,
24
+ show: false,
25
+ ignoreBackdropClick: false,
26
+ class: '',
27
+ animated: true,
28
+ initialState: {},
29
+ closeInterceptor: void 0,
30
+ };
31
+ /**
32
+ * Use this injection token to set global options.
33
+ */
34
+ export const MODAL_CONFIG_DEFAULT_OVERRIDE = new InjectionToken('override-default-config');
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtb3B0aW9ucy5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9zZXJ2aWNlcy9tb2RhbC1zZXJ2aWNlL21vZGFsLW9wdGlvbnMuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQWtCLE1BQU0sZUFBZSxDQUFDOztBQUUzRTs7Ozs7OztHQU9HO0FBRUgsTUFBTSxPQUFPLFlBQVk7O3lHQUFaLFlBQVk7NkdBQVosWUFBWTsyRkFBWixZQUFZO2tCQUR4QixVQUFVOztBQTJEWDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFpQjtJQUMvQyxRQUFRLEVBQUUsSUFBSTtJQUNkLFFBQVEsRUFBRSxJQUFJO0lBQ2QsSUFBSSxFQUFFLEtBQUs7SUFDWCxtQkFBbUIsRUFBRSxLQUFLO0lBQzFCLEtBQUssRUFBRSxFQUFFO0lBQ1QsUUFBUSxFQUFFLElBQUk7SUFDZCxZQUFZLEVBQUUsRUFBRTtJQUNoQixnQkFBZ0IsRUFBRSxLQUFLLENBQUM7Q0FDekIsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQWlDLElBQUksY0FBYyxDQUFlLHlCQUF5QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgU3RhdGljUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbi8qKlxyXG4gKiBNb2RhbHMgb3B0aW9uIGNhbiBiZSBwYXNzZWQgdG8gYSBzcGVjaWZpYyBtb2RhbCBmcm9tIHtAbGluayBNb2RhbFNlcnZpY2Uuc2hvd30gb3JcclxuICogc2V0IGdsb2JiYWx5IHVzaW5nIHRoZSBpbmplY3Rpb24gdG9rZW4ge0BsaW5rIE1PREFMX0NPTkZJR19ERUZBVUxUX09WRVJSSURFfS5cclxuICogQHJlbWFya3NcclxuICogTW9kYWwgc3BlY2lmaWMgb3B0aW9ucyBhcmUgbWVyZ2VkIHdpdGggZ2xvYmFsIG9wdGlvbnMuXHJcbiAqIEBzZWUge0BsaW5rIG1vZGFsQ29uZmlnRGVmYXVsdHN9IGZvciBkZWZhdWx0cy5cclxuICogQHB1YmxpY1xyXG4gKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgTW9kYWxPcHRpb25zPFQgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4ge1xyXG4gIC8qKlxyXG4gICAqICBJZCBmb3Igb3BlbmVkIG1vZGFsLiBJZiBub3Qgc2V0IGEgcmFuZG9tIG9uZSBpcyBnZW5lcmF0ZWQuXHJcbiAgICovXHJcbiAgaWQ/OiBudW1iZXIgfCBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogSWYgc3RhdGljIGlzIHNldCB0aGUgbW9kYWwgd2lsbCBub3QgY2xvc2Ugd2hlbiBjbGlja2luZyBvdXRzaWRlIG9mIG1vZGFsLlxyXG4gICAqIEByZW1hcmtzXHJcbiAgICogS2V5Ym9hcmQgZXZlbnQgKGVzY2FwZSBrZXkpIHN0aWxscyBhcHBsaWVzLiBJZiB5b3UgbXVzdCBnZXQgYSByZXN1bHQgdGhlbiBhbHNvIHNldCBrZXlib2FyZCB0byBmYWxzZS5cclxuICAgKi9cclxuICBiYWNrZHJvcD86IGJvb2xlYW4gfCAnc3RhdGljJztcclxuICAvKipcclxuICAgKiBDbG9zZXMgdGhlIG1vZGFsIHdoZW4gZXNjYXBlIGtleSBpcyBwcmVzc2VkLlxyXG4gICAqL1xyXG4gIGtleWJvYXJkPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBTaG93cyB0aGUgbW9kYWwgd2hlbiBpbml0aWFsaXplZC5cclxuICAgKi9cclxuICBzaG93PzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBJZ25vcmUgdGhlIGJhY2tkcm9wIGNsaWNrLiBQcmV0dHkgbXVjaCB0aGUgc2FtZSBhcyBiYWNrZHJvcCBzdGF0aWMuXHJcbiAgICovXHJcbiAgaWdub3JlQmFja2Ryb3BDbGljaz86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQ3NzIGNsYXNzIGZvciBvcGVuZWQgbW9kYWwuXHJcbiAgICovXHJcbiAgY2xhc3M/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogVG9nZ2xlIGFuaW1hdGlvbi5cclxuICAgKi9cclxuICBhbmltYXRlZD86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogTW9kYWwgaW5pdGlhbCBkYXRhLlxyXG4gICAqIEByZW1hcmtzXHJcbiAgICogVGhpcyBkYXRhIG11c3QgYmUga25vd24gcHJvcGVydGllcyBvZiBjb250ZW50IGNvbXBvbmVudC5cclxuICAgKi9cclxuICBpbml0aWFsU3RhdGU/OiBQYXJ0aWFsPFQ+O1xyXG4gIC8qKlxyXG4gICAqIEZ1bmN0aW9uIHRvIGludGVyY2VwdCB0aGUgY2xvc3VyZS5cclxuICAgKiBAcmVtYXJrc1xyXG4gICAqIFlvdSBjYW4gdXNlIHRvIGNhdGNoIHRoZSBjbG9zZSBldmVudCBhbmQgZXZlbiBwcmV2ZW50IGl0IGZyb20gY2xvc2luZy5cclxuICAgKi9cclxuICBjbG9zZUludGVyY2VwdG9yPzogQ2xvc2VJbnRlcmNlcHRvckZuO1xyXG4gIC8qKlxyXG4gICAqIE1vZGFsIHN0YXRpYyBwcm92aWRlcnMuXHJcbiAgICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9hbmd1bGFyLmlvL2d1aWRlL2dsb3NzYXJ5I2RpLXRva2VuIHwgSW5qZWN0aW9uIFRva2VufVxyXG4gICAqL1xyXG4gIHByb3ZpZGVycz86IFN0YXRpY1Byb3ZpZGVyW107XHJcbiAgLyoqXHJcbiAgICogYXJpYS1sYWJlbGxlZGJ5IGF0dHJpYnV0ZSB2YWx1ZSB0byBzZXQgb24gdGhlIG1vZGFsIHdpbmRvdy5cclxuICAgKi9cclxuICBhcmlhTGFiZWxsZWRCeT86IHN0cmluZztcclxuICAvKipcclxuICAgKiBhcmlhLWRlc2NyaWJlZGJ5IGF0dHJpYnV0ZSB2YWx1ZSB0byBzZXQgb24gdGhlIG1vZGFsIHdpbmRvdy5cclxuICAgKi9cclxuICBhcmlhRGVzY3JpYmVkYnk/OiBzdHJpbmc7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBEZWZhdWx0IG9wdGlvbiB2YWx1ZXMuXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgbW9kYWxDb25maWdEZWZhdWx0czogTW9kYWxPcHRpb25zID0ge1xyXG4gIGJhY2tkcm9wOiB0cnVlLFxyXG4gIGtleWJvYXJkOiB0cnVlLFxyXG4gIHNob3c6IGZhbHNlLFxyXG4gIGlnbm9yZUJhY2tkcm9wQ2xpY2s6IGZhbHNlLFxyXG4gIGNsYXNzOiAnJyxcclxuICBhbmltYXRlZDogdHJ1ZSxcclxuICBpbml0aWFsU3RhdGU6IHt9LFxyXG4gIGNsb3NlSW50ZXJjZXB0b3I6IHZvaWQgMCxcclxufTtcclxuXHJcbi8qKlxyXG4gKiBVc2UgdGhpcyBpbmplY3Rpb24gdG9rZW4gdG8gc2V0IGdsb2JhbCBvcHRpb25zLlxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IE1PREFMX0NPTkZJR19ERUZBVUxUX09WRVJSSURFOiBJbmplY3Rpb25Ub2tlbjxNb2RhbE9wdGlvbnM+ID0gbmV3IEluamVjdGlvblRva2VuPE1vZGFsT3B0aW9ucz4oJ292ZXJyaWRlLWRlZmF1bHQtY29uZmlnJyk7XHJcblxyXG4vKipcclxuICogQ2xvc2UgaW50ZXJjZXB0b3IgcHJvbWlzZS5cclxuICovXHJcbmV4cG9ydCB0eXBlIENsb3NlSW50ZXJjZXB0b3JGbiA9ICgpID0+IFByb21pc2U8dm9pZD47XHJcbiJdfQ==
@@ -0,0 +1,220 @@
1
+ import { DOCUMENT } from '@angular/common';
2
+ import { Inject, Injectable, Optional } from '@angular/core';
3
+ import { Subject } from 'rxjs';
4
+ import { animationTime, cssClassNames } from './modal-styles.class';
5
+ import { ModalBackdropComponent } from './modal-backdrop-component';
6
+ import { ModalContainerComponent } from './modal-container-component';
7
+ import { modalConfigDefaults, ModalOptions, MODAL_CONFIG_DEFAULT_OVERRIDE } from './modal-options.class';
8
+ import { Modal } from './modal.class';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "../component-loader/component-loader.factory";
11
+ import * as i2 from "./modal-options.class";
12
+ /**
13
+ * A service for using modals.
14
+ *
15
+ * @public
16
+ */
17
+ export class ModalService {
18
+ constructor(clf, rendererFactory, document, modalDefaultOption) {
19
+ this.clf = clf;
20
+ this.document = document;
21
+ this.onBeforeShow = new Subject();
22
+ this.onShown = new Subject();
23
+ this.onBeforeHide = new Subject();
24
+ this.onHidden = new Subject();
25
+ this.loaders = [];
26
+ this.modalsCount = 0;
27
+ this.initialPadding = '0px';
28
+ this.backdropLoader = this.clf.createLoader();
29
+ this.defaultConfig = Object.assign(Object.assign({}, modalConfigDefaults), modalDefaultOption);
30
+ this.renderer = rendererFactory.createRenderer(null, null);
31
+ }
32
+ ngOnDestroy() {
33
+ this.loaders.forEach((loader) => { var _a; return (_a = loader.instance) === null || _a === void 0 ? void 0 : _a.hide(); });
34
+ }
35
+ /**
36
+ * Opens a new modal.
37
+ *
38
+ * @param content - `Component` or `TemplateRef` type.
39
+ * @param config - Specific {@link ModalOptions | options} for this modal. Global and specific options are merged.
40
+ * @returns An instance of {@link Modal}
41
+ */
42
+ show(content, config) {
43
+ this.modalsCount++;
44
+ const combinedConfig = Object.assign(Object.assign({}, this.defaultConfig), config);
45
+ combinedConfig.id = (config === null || config === void 0 ? void 0 : config.id) || new Date().getUTCMilliseconds();
46
+ this.createLoaders();
47
+ this.addBodyPadding();
48
+ if (this.modalsCount === 1) {
49
+ this.renderer.addClass(this.document.body, cssClassNames.modalOpen);
50
+ }
51
+ this.showBackdrop(combinedConfig);
52
+ return this.showModal(content, combinedConfig);
53
+ }
54
+ /**
55
+ * Hide an active modal.
56
+ * @param id - Id of modal to hide. If not provided all active modals are hidden.
57
+ * @param result - A result to be sent to observers.
58
+ */
59
+ hide(id, result) {
60
+ if (this.modalsCount === 1 || id == null) {
61
+ this.hideBackdrop();
62
+ this.revertScrollbar();
63
+ this.renderer.removeClass(this.document.body, cssClassNames.modalOpen);
64
+ }
65
+ this.modalsCount = this.modalsCount >= 1 && id != null ? this.modalsCount - 1 : 0;
66
+ setTimeout(() => {
67
+ this.hideModal(id, result);
68
+ this.removeLoaders(id);
69
+ },
70
+ //Bug
71
+ //Should use combined config but for the moment is not possible to pass it this parameter.
72
+ //If config is an instance variable then every newly opened modal will override the config
73
+ //resulting in opened modals to get a new configuration
74
+ this.defaultConfig.animated ? animationTime.backdrop : 0);
75
+ }
76
+ getActiveModal() {
77
+ return this.loaders[this.modalsCount - 1].instance;
78
+ }
79
+ showModal(content, combinedConfig) {
80
+ var _a;
81
+ const modalLoader = this.loaders[this.loaders.length - 1];
82
+ if (combinedConfig && combinedConfig.providers) {
83
+ combinedConfig.providers.forEach((provider) => modalLoader.provide(provider));
84
+ }
85
+ const modal = new Modal();
86
+ const modalContainerRef = modalLoader
87
+ .provide({ provide: ModalOptions, useValue: combinedConfig })
88
+ .provide({ provide: Modal, useValue: modal })
89
+ .attach(ModalContainerComponent)
90
+ .to('body');
91
+ modal.setClass = (newClass) => {
92
+ if (modalContainerRef.instance) {
93
+ modalContainerRef.instance.config.class = newClass;
94
+ }
95
+ };
96
+ modal.onBeforeHide = new Subject();
97
+ modal.onHidden = new Subject();
98
+ this.copyEvent(modalLoader.onBeforeHide, modal.onBeforeHide);
99
+ this.copyEvent(modalLoader.onHidden, modal.onHidden);
100
+ modalContainerRef.show({
101
+ content,
102
+ animationsEnabled: combinedConfig.animated,
103
+ initialState: combinedConfig.initialState,
104
+ modalService: this,
105
+ id: combinedConfig.id,
106
+ });
107
+ if (modalContainerRef.instance) {
108
+ modalContainerRef.instance.level = this.modalsCount;
109
+ modal.content = modalLoader.getInnerComponent();
110
+ modal.id = (_a = modalContainerRef.instance.config) === null || _a === void 0 ? void 0 : _a.id;
111
+ modal.hide = (res) => { var _a; return (_a = modalContainerRef.instance) === null || _a === void 0 ? void 0 : _a.hide(res); };
112
+ }
113
+ return modal;
114
+ }
115
+ hideModal(id, result) {
116
+ if (id != null) {
117
+ const indexToRemove = this.loaders.findIndex((loader) => { var _a; return ((_a = loader.instance) === null || _a === void 0 ? void 0 : _a.config.id) === id; });
118
+ const modalLoader = this.loaders[indexToRemove];
119
+ if (modalLoader) {
120
+ modalLoader.hide(id, result);
121
+ }
122
+ }
123
+ else {
124
+ this.loaders.forEach((loader) => {
125
+ if (loader.instance) {
126
+ loader.hide(loader.instance.config.id);
127
+ }
128
+ });
129
+ }
130
+ }
131
+ showBackdrop(combinedConfig) {
132
+ const isBackdropEnabled = combinedConfig.backdrop === true || combinedConfig.backdrop === 'static';
133
+ const isBackdropInDOM = this.backdropRef != null;
134
+ if (isBackdropEnabled && !isBackdropInDOM) {
135
+ this.backdropLoader
136
+ .attach(ModalBackdropComponent)
137
+ .to('body')
138
+ .show({ animationsEnabled: combinedConfig.animated, backdropLoader: this.backdropLoader });
139
+ this.backdropRef = this.backdropLoader.componentRef;
140
+ }
141
+ }
142
+ hideBackdrop() {
143
+ if (!this.backdropRef) {
144
+ return;
145
+ }
146
+ this.backdropRef.instance.hide();
147
+ this.backdropRef = void 0;
148
+ }
149
+ removeLoaders(id) {
150
+ if (id != null) {
151
+ const indexToRemove = this.loaders.findIndex((loader) => { var _a; return ((_a = loader.instance) === null || _a === void 0 ? void 0 : _a.config.id) === id; });
152
+ if (indexToRemove >= 0) {
153
+ this.loaders.splice(indexToRemove, 1);
154
+ this.loaders.forEach((loader, i) => {
155
+ if (loader.instance) {
156
+ loader.instance.level = i + 1;
157
+ }
158
+ });
159
+ }
160
+ }
161
+ else {
162
+ this.loaders.splice(0, this.loaders.length);
163
+ }
164
+ }
165
+ addBodyPadding() {
166
+ if (this.modalsCount === 1) {
167
+ const width = this.getScrollbarWidth();
168
+ if (this.isScrollBarPresent(width)) {
169
+ this.initialPadding = this.document.body.style.paddingRight;
170
+ const actualPadding = parseFloat(window.getComputedStyle(this.document.body).paddingRight);
171
+ this.document.body.style.paddingRight = `${actualPadding + width}px`;
172
+ }
173
+ }
174
+ }
175
+ revertScrollbar() {
176
+ this.document.body.style.paddingRight = this.initialPadding;
177
+ }
178
+ getScrollbarWidth() {
179
+ const measurer = this.document.createElement('div');
180
+ measurer.className = 'modal-scrollbar-measure';
181
+ const body = this.document.body;
182
+ body.appendChild(measurer);
183
+ const width = measurer.getBoundingClientRect().width - measurer.clientWidth;
184
+ body.removeChild(measurer);
185
+ return width;
186
+ }
187
+ isScrollBarPresent(scrollbarWidth) {
188
+ const rect = this.document.body.getBoundingClientRect();
189
+ const bodyToViewportGap = window.innerWidth - (rect.left + rect.right);
190
+ const uncertainty = 0.1 * scrollbarWidth;
191
+ return bodyToViewportGap >= scrollbarWidth - uncertainty;
192
+ }
193
+ createLoaders() {
194
+ const loader = this.clf.createLoader();
195
+ this.copyEvent(loader.onBeforeShow, this.onBeforeShow);
196
+ this.copyEvent(loader.onShown, this.onShown);
197
+ this.copyEvent(loader.onBeforeHide, this.onBeforeHide);
198
+ this.copyEvent(loader.onHidden, this.onHidden);
199
+ this.loaders.push(loader);
200
+ }
201
+ copyEvent(from, to) {
202
+ from.subscribe((data) => {
203
+ to.next(data);
204
+ });
205
+ }
206
+ }
207
+ ModalService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ModalService, deps: [{ token: i1.ComponentLoaderFactory }, { token: i0.RendererFactory2 }, { token: DOCUMENT }, { token: MODAL_CONFIG_DEFAULT_OVERRIDE, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
208
+ ModalService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ModalService });
209
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ModalService, decorators: [{
210
+ type: Injectable
211
+ }], ctorParameters: function () { return [{ type: i1.ComponentLoaderFactory }, { type: i0.RendererFactory2 }, { type: undefined, decorators: [{
212
+ type: Inject,
213
+ args: [DOCUMENT]
214
+ }] }, { type: i2.ModalOptions, decorators: [{
215
+ type: Optional
216
+ }, {
217
+ type: Inject,
218
+ args: [MODAL_CONFIG_DEFAULT_OVERRIDE]
219
+ }] }]; } });
220
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9zZXJ2aWNlcy9tb2RhbC1zZXJ2aWNlL21vZGFsLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBZ0IsTUFBTSxFQUFFLFVBQVUsRUFBYSxRQUFRLEVBQTRDLE1BQU0sZUFBZSxDQUFDO0FBQ2hJLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFL0IsT0FBTyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxFQUFFLDZCQUE2QixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekcsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQUd0Qzs7OztHQUlHO0FBRUgsTUFBTSxPQUFPLFlBQVk7SUFhdkIsWUFDVSxHQUEyQixFQUNuQyxlQUFpQyxFQUNQLFFBQWEsRUFDWSxrQkFBZ0M7UUFIM0UsUUFBRyxHQUFILEdBQUcsQ0FBd0I7UUFFVCxhQUFRLEdBQVIsUUFBUSxDQUFLO1FBZmpDLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUM3QixZQUFPLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUN4QixpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDN0IsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFLekIsWUFBTyxHQUErQyxFQUFFLENBQUM7UUFFekQsZ0JB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LENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVPLFNBQVMsQ0FBQyxJQUFzQixFQUFFLEVBQW9CO1FBQzVELElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN0QixFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7eUdBMU5VLFlBQVksd0ZBZ0JiLFFBQVEsYUFDSSw2QkFBNkI7NkdBakJ4QyxZQUFZOzJGQUFaLFlBQVk7a0JBRHhCLFVBQVU7OzBCQWlCTixNQUFNOzJCQUFDLFFBQVE7OzBCQUNmLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnRSZWYsIEluamVjdCwgSW5qZWN0YWJsZSwgT25EZXN0cm95LCBPcHRpb25hbCwgUmVuZGVyZXIyLCBSZW5kZXJlckZhY3RvcnkyLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENvbXBvbmVudExvYWRlciB9IGZyb20gJy4uL2NvbXBvbmVudC1sb2FkZXIvY29tcG9uZW50LWxvYWRlci5jbGFzcyc7XHJcbmltcG9ydCB7IGFuaW1hdGlvblRpbWUsIGNzc0NsYXNzTmFtZXMgfSBmcm9tICcuL21vZGFsLXN0eWxlcy5jbGFzcyc7XHJcbmltcG9ydCB7IE1vZGFsQmFja2Ryb3BDb21wb25lbnQgfSBmcm9tICcuL21vZGFsLWJhY2tkcm9wLWNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1vZGFsQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi9tb2RhbC1jb250YWluZXItY29tcG9uZW50JztcclxuaW1wb3J0IHsgbW9kYWxDb25maWdEZWZhdWx0cywgTW9kYWxPcHRpb25zLCBNT0RBTF9DT05GSUdfREVGQVVMVF9PVkVSUklERSB9IGZyb20gJy4vbW9kYWwtb3B0aW9ucy5jbGFzcyc7XHJcbmltcG9ydCB7IE1vZGFsIH0gZnJvbSAnLi9tb2RhbC5jbGFzcyc7XHJcbmltcG9ydCB7IENvbXBvbmVudExvYWRlckZhY3RvcnkgfSBmcm9tICcuLi9jb21wb25lbnQtbG9hZGVyL2NvbXBvbmVudC1sb2FkZXIuZmFjdG9yeSc7XHJcblxyXG4vKipcclxuICogQSBzZXJ2aWNlIGZvciB1c2luZyBtb2RhbHMuXHJcbiAqXHJcbiAqIEBwdWJsaWNcclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIE1vZGFsU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSBvbkJlZm9yZVNob3cgPSBuZXcgU3ViamVjdCgpO1xyXG4gIHByaXZhdGUgb25TaG93biA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgcHJpdmF0ZSBvbkJlZm9yZUhpZGUgPSBuZXcgU3ViamVjdCgpO1xyXG4gIHByaXZhdGUgb25IaWRkZW4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBwcml2YXRlIGJhY2tkcm9wUmVmPzogQ29tcG9uZW50UmVmPE1vZGFsQmFja2Ryb3BDb21wb25lbnQ+O1xyXG4gIHByaXZhdGUgZGVmYXVsdENvbmZpZzogTW9kYWxPcHRpb25zO1xyXG4gIHByaXZhdGUgYmFja2Ryb3BMb2FkZXI6IENvbXBvbmVudExvYWRlcjxNb2RhbEJhY2tkcm9wQ29tcG9uZW50PjtcclxuICBwcml2YXRlIGxvYWRlcnM6IENvbXBvbmVudExvYWRlcjxNb2RhbENvbnRhaW5lckNvbXBvbmVudD5bXSA9IFtdO1xyXG4gIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMjtcclxuICBwcml2YXRlIG1vZGFsc0NvdW50ID0gMDtcclxuICBwcml2YXRlIGluaXRpYWxQYWRkaW5nID0gJzBweCc7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNsZjogQ29tcG9uZW50TG9hZGVyRmFjdG9yeSxcclxuICAgIHJlbmRlcmVyRmFjdG9yeTogUmVuZGVyZXJGYWN0b3J5MixcclxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IGFueSxcclxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTU9EQUxfQ09ORklHX0RFRkFVTFRfT1ZFUlJJREUpIG1vZGFsRGVmYXVsdE9wdGlvbjogTW9kYWxPcHRpb25zXHJcbiAgKSB7XHJcbiAgICB0aGlzLmJhY2tkcm9wTG9hZGVyID0gdGhpcy5jbGYuY3JlYXRlTG9hZGVyPE1vZGFsQmFja2Ryb3BDb21wb25lbnQ+KCk7XHJcbiAgICB0aGlzLmRlZmF1bHRDb25maWcgPSB7IC4uLm1vZGFsQ29uZmlnRGVmYXVsdHMsIC4uLm1vZGFsRGVmYXVsdE9wdGlvbiB9O1xyXG4gICAgdGhpcy5yZW5kZXJlciA9IHJlbmRlcmVyRmFjdG9yeS5jcmVhdGVSZW5kZXJlcihudWxsLCBudWxsKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5sb2FkZXJzLmZvckVhY2goKGxvYWRlcikgPT4gbG9hZGVyLmluc3RhbmNlPy5oaWRlKCkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT3BlbnMgYSBuZXcgbW9kYWwuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gY29udGVudCAtIGBDb21wb25lbnRgIG9yIGBUZW1wbGF0ZVJlZmAgdHlwZS5cclxuICAgKiBAcGFyYW0gY29uZmlnIC0gU3BlY2lmaWMge0BsaW5rIE1vZGFsT3B0aW9ucyB8IG9wdGlvbnN9ICBmb3IgdGhpcyBtb2RhbC4gR2xvYmFsIGFuZCBzcGVjaWZpYyBvcHRpb25zIGFyZSBtZXJnZWQuXHJcbiAgICogQHJldHVybnMgQW4gaW5zdGFuY2Ugb2Yge0BsaW5rIE1vZGFsfVxyXG4gICAqL1xyXG4gIHB1YmxpYyBzaG93PFQ+KGNvbnRlbnQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4gfCB7IG5ldyAoLi4uYXJnczogYW55W10pOiBUIH0sIGNvbmZpZz86IE1vZGFsT3B0aW9uczxUPikge1xyXG4gICAgdGhpcy5tb2RhbHNDb3VudCsrO1xyXG4gICAgY29uc3QgY29tYmluZWRDb25maWcgPSB7IC4uLnRoaXMuZGVmYXVsdENvbmZpZywgLi4uY29uZmlnIH07XHJcbiAgICBjb21iaW5lZENvbmZpZy5pZCA9IGNvbmZpZz8uaWQgfHwgbmV3IERhdGUoKS5nZXRVVENNaWxsaXNlY29uZHMoKTtcclxuICAgIHRoaXMuY3JlYXRlTG9hZGVycygpO1xyXG5cclxuICAgIHRoaXMuYWRkQm9keVBhZGRpbmcoKTtcclxuICAgIGlmICh0aGlzLm1vZGFsc0NvdW50ID09PSAxKSB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5kb2N1bWVudC5ib2R5LCBjc3NDbGFzc05hbWVzLm1vZGFsT3Blbik7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNob3dCYWNrZHJvcChjb21iaW5lZENvbmZpZyk7XHJcbiAgICByZXR1cm4gdGhpcy5zaG93TW9kYWw8VD4oY29udGVudCwgY29tYmluZWRDb25maWcpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGlkZSBhbiBhY3RpdmUgbW9kYWwuXHJcbiAgICogQHBhcmFtIGlkIC0gSWQgb2YgbW9kYWwgdG8gaGlkZS4gSWYgbm90IHByb3ZpZGVkIGFsbCBhY3RpdmUgbW9kYWxzIGFyZSBoaWRkZW4uXHJcbiAgICogQHBhcmFtIHJlc3VsdCAtIEEgcmVzdWx0IHRvIGJlIHNlbnQgdG8gb2JzZXJ2ZXJzLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBoaWRlKGlkPzogbnVtYmVyIHwgc3RyaW5nLCByZXN1bHQ/OiBhbnkpIHtcclxuICAgIGlmICh0aGlzLm1vZGFsc0NvdW50ID09PSAxIHx8IGlkID09IG51bGwpIHtcclxuICAgICAgdGhpcy5oaWRlQmFja2Ryb3AoKTtcclxuICAgICAgdGhpcy5yZXZlcnRTY3JvbGxiYXIoKTtcclxuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmRvY3VtZW50LmJvZHksIGNzc0NsYXNzTmFtZXMubW9kYWxPcGVuKTtcclxuICAgIH1cclxuICAgIHRoaXMubW9kYWxzQ291bnQgPSB0aGlzLm1vZGFsc0NvdW50ID49IDEgJiYgaWQgIT0gbnVsbCA/IHRoaXMubW9kYWxzQ291bnQgLSAxIDogMDtcclxuICAgIHNldFRpbWVvdXQoXHJcbiAgICAgICgpID0+IHtcclxuICAgICAgICB0aGlzLmhpZGVNb2RhbChpZCwgcmVzdWx0KTtcclxuICAgICAgICB0aGlzLnJlbW92ZUxvYWRlcnMoaWQpO1xyXG4gICAgICB9LFxyXG4gICAgICAvL0J1Z1xyXG4gICAgICAvL1Nob3VsZCB1c2UgY29tYmluZWQgY29uZmlnIGJ1dCBmb3IgdGhlIG1vbWVudCBpcyBub3QgcG9zc2libGUgdG8gcGFzcyBpdCB0aGlzIHBhcmFtZXRlci5cclxuICAgICAgLy9JZiBjb25maWcgaXMgYW4gaW5zdGFuY2UgdmFyaWFibGUgdGhlbiBldmVyeSBuZXdseSBvcGVuZWQgbW9kYWwgd2lsbCBvdmVycmlkZSB0aGUgY29uZmlnXHJcbiAgICAgIC8vcmVzdWx0aW5nIGluIG9wZW5lZCBtb2RhbHMgdG8gZ2V0IGEgbmV3IGNvbmZpZ3VyYXRpb25cclxuICAgICAgdGhpcy5kZWZhdWx0Q29uZmlnLmFuaW1hdGVkID8gYW5pbWF0aW9uVGltZS5iYWNrZHJvcCA6IDBcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0QWN0aXZlTW9kYWwoKTogTW9kYWxDb250YWluZXJDb21wb25lbnQge1xyXG4gICAgcmV0dXJuIHRoaXMubG9hZGVyc1t0aGlzLm1vZGFsc0NvdW50IC0gMV0uaW5zdGFuY2UgYXMgTW9kYWxDb250YWluZXJDb21wb25lbnQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNob3dNb2RhbDxUPihjb250ZW50OiBhbnksIGNvbWJpbmVkQ29uZmlnOiBNb2RhbE9wdGlvbnMpOiBNb2RhbDxUPiB7XHJcbiAgICBjb25zdCBtb2RhbExvYWRlciA9IHRoaXMubG9hZGVyc1t0aGlzLmxvYWRlcnMubGVuZ3RoIC0gMV07XHJcbiAgICBpZiAoY29tYmluZWRDb25maWcgJiYgY29tYmluZWRDb25maWcucHJvdmlkZXJzKSB7XHJcbiAgICAgIGNvbWJpbmVkQ29uZmlnLnByb3ZpZGVycy5mb3JFYWNoKChwcm92aWRlcikgPT4gbW9kYWxMb2FkZXIucHJvdmlkZShwcm92aWRlcikpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG1vZGFsID0gbmV3IE1vZGFsPGFueT4oKTtcclxuICAgIGNvbnN0IG1vZGFsQ29udGFpbmVyUmVmID0gbW9kYWxMb2FkZXJcclxuICAgICAgLnByb3ZpZGUoeyBwcm92aWRlOiBNb2RhbE9wdGlvbnMsIHVzZVZhbHVlOiBjb21iaW5lZENvbmZpZyB9KVxyXG4gICAgICAucHJvdmlkZSh7IHByb3ZpZGU6IE1vZGFsLCB1c2VWYWx1ZTogbW9kYWwgfSlcclxuICAgICAgLmF0dGFjaChNb2RhbENvbnRhaW5lckNvbXBvbmVudClcclxuICAgICAgLnRvKCdib2R5Jyk7XHJcblxyXG4gICAgbW9kYWwuc2V0Q2xhc3MgPSAobmV3Q2xhc3M6IHN0cmluZykgPT4ge1xyXG4gICAgICBpZiAobW9kYWxDb250YWluZXJSZWYuaW5zdGFuY2UpIHtcclxuICAgICAgICBtb2RhbENvbnRhaW5lclJlZi5pbnN0YW5jZS5jb25maWcuY2xhc3MgPSBuZXdDbGFzcztcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICBtb2RhbC5vbkJlZm9yZUhpZGUgPSBuZXcgU3ViamVjdCgpO1xyXG4gICAgbW9kYWwub25IaWRkZW4gPSBuZXcgU3ViamVjdCgpO1xyXG4gICAgdGhpcy5jb3B5RXZlbnQobW9kYWxMb2FkZXIub25CZWZvcmVIaWRlLCBtb2RhbC5vbkJlZm9yZUhpZGUpO1xyXG4gICAgdGhpcy5jb3B5RXZlbnQobW9kYWxMb2FkZXIub25IaWRkZW4sIG1vZGFsLm9uSGlkZGVuKTtcclxuICAgIG1vZGFsQ29udGFpbmVyUmVmLnNob3coe1xyXG4gICAgICBjb250ZW50LFxyXG4gICAgICBhbmltYXRpb25zRW5hYmxlZDogY29tYmluZWRDb25maWcuYW5pbWF0ZWQsXHJcbiAgICAgIGluaXRpYWxTdGF0ZTogY29tYmluZWRDb25maWcuaW5pdGlhbFN0YXRlLFxyXG4gICAgICBtb2RhbFNlcnZpY2U6IHRoaXMsXHJcbiAgICAgIGlkOiBjb21iaW5lZENvbmZpZy5pZCxcclxuICAgIH0pO1xyXG5cclxuICAgIGlmIChtb2RhbENvbnRhaW5lclJlZi5pbnN0YW5jZSkge1xyXG4gICAgICBtb2RhbENvbnRhaW5lclJlZi5pbnN0YW5jZS5sZXZlbCA9IHRoaXMubW9kYWxzQ291bnQ7XHJcbiAgICAgIG1vZGFsLmNvbnRlbnQgPSBtb2RhbExvYWRlci5nZXRJbm5lckNvbXBvbmVudCgpO1xyXG4gICAgICBtb2RhbC5pZCA9IG1vZGFsQ29udGFpbmVyUmVmLmluc3RhbmNlLmNvbmZpZz8uaWQ7XHJcbiAgICAgIG1vZGFsLmhpZGUgPSAocmVzKSA9PiBtb2RhbENvbnRhaW5lclJlZi5pbnN0YW5jZT8uaGlkZShyZXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBtb2RhbDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGlkZU1vZGFsKGlkPzogbnVtYmVyIHwgc3RyaW5nLCByZXN1bHQ/OiBhbnkpOiB2b2lkIHtcclxuICAgIGlmIChpZCAhPSBudWxsKSB7XHJcbiAgICAgIGNvbnN0IGluZGV4VG9SZW1vdmUgPSB0aGlzLmxvYWRlcnMuZmluZEluZGV4KChsb2FkZXIpID0+IGxvYWRlci5pbnN0YW5jZT8uY29uZmlnLmlkID09PSBpZCk7XHJcbiAgICAgIGNvbnN0IG1vZGFsTG9hZGVyID0gdGhpcy5sb2FkZXJzW2luZGV4VG9SZW1vdmVdO1xyXG4gICAgICBpZiAobW9kYWxMb2FkZXIpIHtcclxuICAgICAgICBtb2RhbExvYWRlci5oaWRlKGlkLCByZXN1bHQpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmxvYWRlcnMuZm9yRWFjaCgobG9hZGVyOiBDb21wb25lbnRMb2FkZXI8TW9kYWxDb250YWluZXJDb21wb25lbnQ+KSA9PiB7XHJcbiAgICAgICAgaWYgKGxvYWRlci5pbnN0YW5jZSkge1xyXG4gICAgICAgICAgbG9hZGVyLmhpZGUobG9hZGVyLmluc3RhbmNlLmNvbmZpZy5pZCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2hvd0JhY2tkcm9wKGNvbWJpbmVkQ29uZmlnOiBNb2RhbE9wdGlvbnMpOiB2b2lkIHtcclxuICAgIGNvbnN0IGlzQmFja2Ryb3BFbmFibGVkID0gY29tYmluZWRDb25maWcuYmFja2Ryb3AgPT09IHRydWUgfHwgY29tYmluZWRDb25maWcuYmFja2Ryb3AgPT09ICdzdGF0aWMnO1xyXG4gICAgY29uc3QgaXNCYWNrZHJvcEluRE9NID0gdGhpcy5iYWNrZHJvcFJlZiAhPSBudWxsO1xyXG4gICAgaWYgKGlzQmFja2Ryb3BFbmFibGVkICYmICFpc0JhY2tkcm9wSW5ET00pIHtcclxuICAgICAgdGhpcy5iYWNrZHJvcExvYWRlclxyXG4gICAgICAgIC5hdHRhY2goTW9kYWxCYWNrZHJvcENvbXBvbmVudClcclxuICAgICAgICAudG8oJ2JvZHknKVxyXG4gICAgICAgIC5zaG93KHsgYW5pbWF0aW9uc0VuYWJsZWQ6IGNvbWJpbmVkQ29uZmlnLmFuaW1hdGVkLCBiYWNrZHJvcExvYWRlcjogdGhpcy5iYWNrZHJvcExvYWRlciB9KTtcclxuICAgICAgdGhpcy5iYWNrZHJvcFJlZiA9IHRoaXMuYmFja2Ryb3BMb2FkZXIuY29tcG9uZW50UmVmO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoaWRlQmFja2Ryb3AoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuYmFja2Ryb3BSZWYpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5iYWNrZHJvcFJlZi5pbnN0YW5jZS5oaWRlKCk7XHJcbiAgICB0aGlzLmJhY2tkcm9wUmVmID0gdm9pZCAwO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZW1vdmVMb2FkZXJzKGlkPzogbnVtYmVyIHwgc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAoaWQgIT0gbnVsbCkge1xyXG4gICAgICBjb25zdCBpbmRleFRvUmVtb3ZlID0gdGhpcy5sb2FkZXJzLmZpbmRJbmRleCgobG9hZGVyKSA9PiBsb2FkZXIuaW5zdGFuY2U/LmNvbmZpZy5pZCA9PT0gaWQpO1xyXG4gICAgICBpZiAoaW5kZXhUb1JlbW92ZSA+PSAwKSB7XHJcbiAgICAgICAgdGhpcy5sb2FkZXJzLnNwbGljZShpbmRleFRvUmVtb3ZlLCAxKTtcclxuICAgICAgICB0aGlzLmxvYWRlcnMuZm9yRWFjaCgobG9hZGVyOiBDb21wb25lbnRMb2FkZXI8TW9kYWxDb250YWluZXJDb21wb25lbnQ+LCBpOiBudW1iZXIpID0+IHtcclxuICAgICAgICAgIGlmIChsb2FkZXIuaW5zdGFuY2UpIHtcclxuICAgICAgICAgICAgbG9hZGVyLmluc3RhbmNlLmxldmVsID0gaSArIDE7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubG9hZGVycy5zcGxpY2UoMCwgdGhpcy5sb2FkZXJzLmxlbmd0aCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFkZEJvZHlQYWRkaW5nKCkge1xyXG4gICAgaWYgKHRoaXMubW9kYWxzQ291bnQgPT09IDEpIHtcclxuICAgICAgY29uc3Qgd2lkdGggPSB0aGlzLmdldFNjcm9sbGJhcldpZHRoKCk7XHJcbiAgICAgIGlmICh0aGlzLmlzU2Nyb2xsQmFyUHJlc2VudCh3aWR0aCkpIHtcclxuICAgICAgICB0aGlzLmluaXRpYWxQYWRkaW5nID0gdGhpcy5kb2N1bWVudC5ib2R5LnN0eWxlLnBhZGRpbmdSaWdodDtcclxuICAgICAgICBjb25zdCBhY3R1YWxQYWRkaW5nID0gcGFyc2VGbG9hdCh3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmRvY3VtZW50LmJvZHkpLnBhZGRpbmdSaWdodCk7XHJcbiAgICAgICAgdGhpcy5kb2N1bWVudC5ib2R5LnN0eWxlLnBhZGRpbmdSaWdodCA9IGAke2FjdHVhbFBhZGRpbmcgKyB3aWR0aH1weGA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmV2ZXJ0U2Nyb2xsYmFyKCkge1xyXG4gICAgdGhpcy5kb2N1bWVudC5ib2R5LnN0eWxlLnBhZGRpbmdSaWdodCA9IHRoaXMuaW5pdGlhbFBhZGRpbmc7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFNjcm9sbGJhcldpZHRoKCk6IG51bWJlciB7XHJcbiAgICBjb25zdCBtZWFzdXJlciA9IHRoaXMuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICBtZWFzdXJlci5jbGFzc05hbWUgPSAnbW9kYWwtc2Nyb2xsYmFyLW1lYXN1cmUnO1xyXG5cclxuICAgIGNvbnN0IGJvZHkgPSB0aGlzLmRvY3VtZW50LmJvZHk7XHJcbiAgICBib2R5LmFwcGVuZENoaWxkKG1lYXN1cmVyKTtcclxuICAgIGNvbnN0IHdpZHRoID0gbWVhc3VyZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggLSBtZWFzdXJlci5jbGllbnRXaWR0aDtcclxuICAgIGJvZHkucmVtb3ZlQ2hpbGQobWVhc3VyZXIpO1xyXG5cclxuICAgIHJldHVybiB3aWR0aDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNTY3JvbGxCYXJQcmVzZW50KHNjcm9sbGJhcldpZHRoOiBudW1iZXIpIHtcclxuICAgIGNvbnN0IHJlY3QgPSB0aGlzLmRvY3VtZW50LmJvZHkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICBjb25zdCBib2R5VG9WaWV3cG9ydEdhcCA9IHdpbmRvdy5pbm5lcldpZHRoIC0gKHJlY3QubGVmdCArIHJlY3QucmlnaHQpO1xyXG4gICAgY29uc3QgdW5jZXJ0YWludHkgPSAwLjEgKiBzY3JvbGxiYXJXaWR0aDtcclxuICAgIHJldHVybiBib2R5VG9WaWV3cG9ydEdhcCA+PSBzY3JvbGxiYXJXaWR0aCAtIHVuY2VydGFpbnR5O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVMb2FkZXJzKCk6IHZvaWQge1xyXG4gICAgY29uc3QgbG9hZGVyID0gdGhpcy5jbGYuY3JlYXRlTG9hZGVyPE1vZGFsQ29udGFpbmVyQ29tcG9uZW50PigpO1xyXG4gICAgdGhpcy5jb3B5RXZlbnQobG9hZGVyLm9uQmVmb3JlU2hvdywgdGhpcy5vbkJlZm9yZVNob3cpO1xyXG4gICAgdGhpcy5jb3B5RXZlbnQobG9hZGVyLm9uU2hvd24sIHRoaXMub25TaG93bik7XHJcbiAgICB0aGlzLmNvcHlFdmVudChsb2FkZXIub25CZWZvcmVIaWRlLCB0aGlzLm9uQmVmb3JlSGlkZSk7XHJcbiAgICB0aGlzLmNvcHlFdmVudChsb2FkZXIub25IaWRkZW4sIHRoaXMub25IaWRkZW4pO1xyXG4gICAgdGhpcy5sb2FkZXJzLnB1c2gobG9hZGVyKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY29weUV2ZW50KGZyb206IFN1YmplY3Q8dW5rbm93bj4sIHRvOiBTdWJqZWN0PHVua25vd24+KSB7XHJcbiAgICBmcm9tLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xyXG4gICAgICB0by5uZXh0KGRhdGEpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -19,9 +19,9 @@ export class Modal {
19
19
  this.setClass = () => void 0;
20
20
  }
21
21
  }
22
- Modal.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: Modal, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
23
- Modal.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: Modal });
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: Modal, decorators: [{
22
+ Modal.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: Modal, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
23
+ Modal.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: Modal });
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: Modal, decorators: [{
25
25
  type: Injectable
26
26
  }] });
27
27
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb21wb25lbnRzL3NyYy9saWIvc2VydmljZXMvbW9kYWwtc2VydmljZS9tb2RhbC5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUczQzs7Ozs7R0FLRztBQUVILE1BQU0sT0FBTyxLQUFLO0lBRGxCO1FBMEJFOzs7V0FHRztRQUNILFNBQUksR0FBMkIsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUM7O1dBRUc7UUFDSCxhQUFRLEdBQStCLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ3JEOztrR0FsQ1ksS0FBSztzR0FBTCxLQUFLOzJGQUFMLEtBQUs7a0JBRGpCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuXHJcbi8qKlxyXG4gKiBNb2RhbCBjbGFzcy5cclxuICogQHJlbWFya3NcclxuICogVGhpcyBpcyByZXR1cm5lZCBmcm9tIHtAbGluayBNb2RhbFNlcnZpY2Uuc2hvd30uXHJcbiAqIEBwdWJsaWNcclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIE1vZGFsPFQgPSBhbnk+IHtcclxuICAvKipcclxuICAgKiBFdmVudCB0aGF0IGlzIGZpcmVkIHdoZW4gdGhlIG1vZGFsIGJlaGluZCB0aGUgcmVmIHN0YXJ0cyBoaWRpbmcuXHJcbiAgICogQHJldHVybnNcclxuICAgKiBNb2RhbCBjb21wb25lbnQgaW5zdGFuY2UuXHJcbiAgICovXHJcbiAgb25CZWZvcmVIaWRlPzogU3ViamVjdDx1bmtub3duPjtcclxuICAvKipcclxuICAgKiBFdmVudCB0aGF0IGlzIGZpcmVkIHdoZW4gdGhlIG1vZGFsIGJlaGluZCB0aGUgcmVmIGZpbmlzaGVzIGhpZGluZy5cclxuICAgKiBAcmV0dXJuc1xyXG4gICAqIEFuIG9iamVjdCBjb250YWluaW5nIHRoZSBpZCBvZiB0aGUgY2xvc2VkIG1vZGFsIGFuZCByZXN1bHQuXHJcbiAgICovXHJcbiAgb25IaWRkZW4/OiBTdWJqZWN0PHVua25vd24+O1xyXG4gIC8qKlxyXG4gICAqICBJZCBvZiB0aGlzIG1vZGFsLlxyXG4gICAqL1xyXG4gIGlkPzogbnVtYmVyIHwgc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAgKiBSZWZlcmVuY2UgdG8gYSBjb21wb25lbnQgaW5zaWRlIHRoZSBtb2RhbC4gTnVsbCBpZiBtb2RhbCdzIGJlZW4gY3JlYXRlZCB3aXRoIFRlbXBsYXRlUmVmLlxyXG4gICAqIEByZW1hcmtzXHJcbiAgICogWW91IGNhbiB1c2UgdGhpcyB0byBkbyBuYXN0eSBzdHVmZiB3aXRoIG9wZW5lZCBtb2RhbCBpbnN0YW5jZS5cclxuICAgKi9cclxuICBjb250ZW50PzogVDtcclxuXHJcbiAgLyoqXHJcbiAgICogSGlkZXMgdGhlIG1vZGFsXHJcbiAgICogQHBhcmFtIHJlc3VsdCAtIEEgcmVzdWx0IHRvIHRoZSBvYnNlcnZlcnMuXHJcbiAgICovXHJcbiAgaGlkZTogKHJlc3VsdD86IGFueSkgPT4gdm9pZCA9ICgpID0+IHZvaWQgMDtcclxuICAvKipcclxuICAgKiBTZXRzIG5ldyBjbGFzcyB0byBtb2RhbCB3aW5kb3cuXHJcbiAgICovXHJcbiAgc2V0Q2xhc3M6IChuZXdDbGFzczogc3RyaW5nKSA9PiB2b2lkID0gKCkgPT4gdm9pZCAwO1xyXG59XHJcbiJdfQ==
@@ -13,9 +13,9 @@ export class ToasterService {
13
13
  this.subject.next({ type, title, body, delay });
14
14
  }
15
15
  }
16
- ToasterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ToasterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
17
- ToasterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ToasterService, providedIn: 'root' });
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: ToasterService, decorators: [{
16
+ ToasterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ToasterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
17
+ ToasterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ToasterService, providedIn: 'root' });
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.0.1", ngImport: i0, type: ToasterService, decorators: [{
19
19
  type: Injectable,
20
20
  args: [{
21
21
  providedIn: 'root'
File without changes
@@ -0,0 +1,52 @@
1
+ // Public API Surface of @indice/ng-components
2
+ // directives
3
+ export * from './lib/directives/click-outside.directive';
4
+ // controls
5
+ export * from './lib/controls/drop-down-menu/drop-down-menu.component';
6
+ export * from './lib/controls/pager/pager.component';
7
+ export * from './lib/controls/list-view/list-view.component';
8
+ export * from './lib/controls/list-view/list-column.component';
9
+ export * from './lib/controls/list-view/list-tile.component';
10
+ export * from './lib/controls/list-view/list-details-section.component';
11
+ export * from './lib/controls/list-view/list-view-empty-state.component';
12
+ export * from './lib/controls/skeleton-loader/skeleton-loader.component';
13
+ export * from './lib/controls/collapsible-panel/collapsible-panel.component';
14
+ export * from './lib/controls/kpi-tile/kpi-tile.component';
15
+ export * from './lib/controls/date-picker/date-picker.component';
16
+ export * from './lib/controls/toaster/toaster-container.component';
17
+ export * from './lib/controls/toaster/toaster.component';
18
+ export * from './lib/controls/avatar-initials/avatar-initials.component';
19
+ export * from './lib/controls/toggle/toggle.component';
20
+ export * from './lib/controls/side-pane/side-pane.component';
21
+ // shell layout
22
+ export * from './lib/layouts/shell/shell-layout/shell-layout.component';
23
+ export * from './lib/layouts/shell/shell-header/shell-header.component';
24
+ export * from './lib/layouts/shell/shell-footer/shell-footer.component';
25
+ // view layouts
26
+ export * from './lib/layouts/views/view-layout/view-layout.component';
27
+ export * from './lib/layouts/views/model-view-layout/model-view-layout.component';
28
+ export * from './lib/layouts/views/side-view-layout/side-view-layout.component';
29
+ export * from './lib/layouts/views/form-layout/form-layout.component';
30
+ // pages
31
+ export * from './lib/pages/auth/auth-callback/auth-callback.component';
32
+ export * from './lib/pages/auth/auth-renew/auth-renew.component';
33
+ export * from './lib/pages/auth/logged-out/logged-out.component';
34
+ export * from './lib/pages/http-status/error/error.component';
35
+ export * from './lib/pages/http-status/page-not-found/page-not-found.component';
36
+ export * from './lib/pages/http-status/unauthorized/unauthorized.component';
37
+ // pipes
38
+ export * from './lib/pipes/address.pipe';
39
+ export * from './lib/pipes/duration-format.pipe';
40
+ // common stuff (tokens, types, helper classes)
41
+ export * from './lib/tokens';
42
+ export * from './lib/types';
43
+ export * from './lib/icons';
44
+ export * from './lib/helpers/base-list.component';
45
+ // services
46
+ export * from './lib/services/component-loader/component-loader.factory';
47
+ export * from './lib/services/modal-service/modal-service';
48
+ export { ModalOptions, MODAL_CONFIG_DEFAULT_OVERRIDE } from './lib/services/modal-service/modal-options.class';
49
+ export * from './lib/services/modal-service/modal.class';
50
+ export * from './lib/services/toaster.service';
51
+ export * from './lib/ng-components.module';
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsOENBQThDO0FBQzlDLGFBQWE7QUFDYixjQUFjLDBDQUEwQyxDQUFDO0FBRXpELFdBQVc7QUFDWCxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLGdEQUFnRCxDQUFDO0FBQy9ELGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyx5REFBeUQsQ0FBQztBQUN4RSxjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLGNBQWMsMERBQTBELENBQUM7QUFDekUsY0FBYyw4REFBOEQsQ0FBQztBQUM3RSxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYyxvREFBb0QsQ0FBQztBQUNuRSxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsMERBQTBELENBQUM7QUFDekUsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLDhDQUE4QyxDQUFDO0FBRTdELGVBQWU7QUFDZixjQUFjLHlEQUF5RCxDQUFDO0FBQ3hFLGNBQWMseURBQXlELENBQUM7QUFDeEUsY0FBYyx5REFBeUQsQ0FBQztBQUV4RSxlQUFlO0FBQ2YsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLG1FQUFtRSxDQUFDO0FBQ2xGLGNBQWMsaUVBQWlFLENBQUM7QUFDaEYsY0FBYyx1REFBdUQsQ0FBQztBQUV0RSxRQUFRO0FBQ1IsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsa0RBQWtELENBQUM7QUFDakUsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLGlFQUFpRSxDQUFDO0FBQ2hGLGNBQWMsNkRBQTZELENBQUM7QUFFNUUsUUFBUTtBQUNSLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxrQ0FBa0MsQ0FBQztBQUVqRCwrQ0FBK0M7QUFDL0MsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxtQ0FBbUMsQ0FBQztBQUVsRCxXQUFXO0FBQ1gsY0FBYywwREFBMEQsQ0FBQztBQUN6RSxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQUUsNkJBQTZCLEVBQXNCLE1BQU0sa0RBQWtELENBQUM7QUFDbkksY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLGdDQUFnQyxDQUFDO0FBRS9DLGNBQWMsNEJBQTRCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgQGluZGljZS9uZy1jb21wb25lbnRzXHJcbi8vIGRpcmVjdGl2ZXNcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9jbGljay1vdXRzaWRlLmRpcmVjdGl2ZSc7XHJcblxyXG4vLyBjb250cm9sc1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb250cm9scy9kcm9wLWRvd24tbWVudS9kcm9wLWRvd24tbWVudS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb250cm9scy9wYWdlci9wYWdlci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb250cm9scy9saXN0LXZpZXcvbGlzdC12aWV3LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbnRyb2xzL2xpc3Qtdmlldy9saXN0LWNvbHVtbi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb250cm9scy9saXN0LXZpZXcvbGlzdC10aWxlLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbnRyb2xzL2xpc3Qtdmlldy9saXN0LWRldGFpbHMtc2VjdGlvbi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb250cm9scy9saXN0LXZpZXcvbGlzdC12aWV3LWVtcHR5LXN0YXRlLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbnRyb2xzL3NrZWxldG9uLWxvYWRlci9za2VsZXRvbi1sb2FkZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29udHJvbHMvY29sbGFwc2libGUtcGFuZWwvY29sbGFwc2libGUtcGFuZWwuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29udHJvbHMva3BpLXRpbGUva3BpLXRpbGUuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29udHJvbHMvZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29udHJvbHMvdG9hc3Rlci90b2FzdGVyLWNvbnRhaW5lci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb250cm9scy90b2FzdGVyL3RvYXN0ZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29udHJvbHMvYXZhdGFyLWluaXRpYWxzL2F2YXRhci1pbml0aWFscy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb250cm9scy90b2dnbGUvdG9nZ2xlLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbnRyb2xzL3NpZGUtcGFuZS9zaWRlLXBhbmUuY29tcG9uZW50JztcclxuXHJcbi8vIHNoZWxsIGxheW91dFxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9sYXlvdXRzL3NoZWxsL3NoZWxsLWxheW91dC9zaGVsbC1sYXlvdXQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbGF5b3V0cy9zaGVsbC9zaGVsbC1oZWFkZXIvc2hlbGwtaGVhZGVyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2xheW91dHMvc2hlbGwvc2hlbGwtZm9vdGVyL3NoZWxsLWZvb3Rlci5jb21wb25lbnQnO1xyXG5cclxuLy8gdmlldyBsYXlvdXRzXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2xheW91dHMvdmlld3Mvdmlldy1sYXlvdXQvdmlldy1sYXlvdXQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbGF5b3V0cy92aWV3cy9tb2RlbC12aWV3LWxheW91dC9tb2RlbC12aWV3LWxheW91dC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9sYXlvdXRzL3ZpZXdzL3NpZGUtdmlldy1sYXlvdXQvc2lkZS12aWV3LWxheW91dC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9sYXlvdXRzL3ZpZXdzL2Zvcm0tbGF5b3V0L2Zvcm0tbGF5b3V0LmNvbXBvbmVudCc7XHJcblxyXG4vLyBwYWdlc1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9wYWdlcy9hdXRoL2F1dGgtY2FsbGJhY2svYXV0aC1jYWxsYmFjay5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9wYWdlcy9hdXRoL2F1dGgtcmVuZXcvYXV0aC1yZW5ldy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9wYWdlcy9hdXRoL2xvZ2dlZC1vdXQvbG9nZ2VkLW91dC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9wYWdlcy9odHRwLXN0YXR1cy9lcnJvci9lcnJvci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9wYWdlcy9odHRwLXN0YXR1cy9wYWdlLW5vdC1mb3VuZC9wYWdlLW5vdC1mb3VuZC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9wYWdlcy9odHRwLXN0YXR1cy91bmF1dGhvcml6ZWQvdW5hdXRob3JpemVkLmNvbXBvbmVudCc7XHJcblxyXG4vLyBwaXBlc1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9waXBlcy9hZGRyZXNzLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9waXBlcy9kdXJhdGlvbi1mb3JtYXQucGlwZSc7XHJcblxyXG4vLyBjb21tb24gc3R1ZmYgKHRva2VucywgdHlwZXMsIGhlbHBlciBjbGFzc2VzKVxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90b2tlbnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90eXBlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ljb25zJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvaGVscGVycy9iYXNlLWxpc3QuY29tcG9uZW50JztcclxuXHJcbi8vIHNlcnZpY2VzXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2NvbXBvbmVudC1sb2FkZXIvY29tcG9uZW50LWxvYWRlci5mYWN0b3J5JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvbW9kYWwtc2VydmljZS9tb2RhbC1zZXJ2aWNlJztcclxuZXhwb3J0IHsgTW9kYWxPcHRpb25zLCBNT0RBTF9DT05GSUdfREVGQVVMVF9PVkVSUklERSwgQ2xvc2VJbnRlcmNlcHRvckZuIH0gZnJvbSAnLi9saWIvc2VydmljZXMvbW9kYWwtc2VydmljZS9tb2RhbC1vcHRpb25zLmNsYXNzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvbW9kYWwtc2VydmljZS9tb2RhbC5jbGFzcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3RvYXN0ZXIuc2VydmljZSc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9uZy1jb21wb25lbnRzLm1vZHVsZSc7XHJcbiJdfQ==