ngx-sfc-common 0.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 (114) hide show
  1. package/README.md +460 -0
  2. package/esm2020/lib/components/button/button-type.enum.mjs +9 -0
  3. package/esm2020/lib/components/button/button.component.mjs +38 -0
  4. package/esm2020/lib/components/checkmark/checkmark.component.mjs +27 -0
  5. package/esm2020/lib/components/delimeter/delimeter.component.mjs +11 -0
  6. package/esm2020/lib/components/dots/dots.component.mjs +30 -0
  7. package/esm2020/lib/components/hamburger/hamburger.component.mjs +24 -0
  8. package/esm2020/lib/components/index.mjs +20 -0
  9. package/esm2020/lib/components/loader/bounce/bounce-loader.component.mjs +13 -0
  10. package/esm2020/lib/components/loader/circle/circle-loader-type.enum.mjs +6 -0
  11. package/esm2020/lib/components/loader/circle/circle-loader.component.mjs +20 -0
  12. package/esm2020/lib/components/loader/loader-base.component.mjs +51 -0
  13. package/esm2020/lib/components/loader/loader.constants.mjs +6 -0
  14. package/esm2020/lib/components/loader/loader.event.mjs +2 -0
  15. package/esm2020/lib/components/loader/service/loader.service.mjs +76 -0
  16. package/esm2020/lib/components/modal/directive/modal-open-on-click.directive.mjs +50 -0
  17. package/esm2020/lib/components/modal/footer/default/default-modal-footer.component.mjs +48 -0
  18. package/esm2020/lib/components/modal/footer/default/default-modal-footer.model.mjs +2 -0
  19. package/esm2020/lib/components/modal/header/default/default-modal-header.component.mjs +31 -0
  20. package/esm2020/lib/components/modal/header/default/default-modal-header.model.mjs +2 -0
  21. package/esm2020/lib/components/modal/modal-template.enum.mjs +7 -0
  22. package/esm2020/lib/components/modal/modal.component.mjs +107 -0
  23. package/esm2020/lib/components/modal/service/modal.service.mjs +26 -0
  24. package/esm2020/lib/components/toggle-switcher/toggle-switcher.component.mjs +31 -0
  25. package/esm2020/lib/components/toggle-switcher/toggle-switcher.model.mjs +2 -0
  26. package/esm2020/lib/components/tooltip/tooltip-type.enum.mjs +6 -0
  27. package/esm2020/lib/components/tooltip/tooltip.component.mjs +69 -0
  28. package/esm2020/lib/constants/common.constants.mjs +6 -0
  29. package/esm2020/lib/constants/date-time.constants.mjs +8 -0
  30. package/esm2020/lib/constants/index.mjs +4 -0
  31. package/esm2020/lib/constants/ui.constants.mjs +16 -0
  32. package/esm2020/lib/directives/click-outside/click-outside.directive.mjs +65 -0
  33. package/esm2020/lib/directives/click-outside/click-outside.event.mjs +2 -0
  34. package/esm2020/lib/directives/component-size/component-size.directive.mjs +46 -0
  35. package/esm2020/lib/directives/index.mjs +7 -0
  36. package/esm2020/lib/directives/mouse-down/mouse-down.directive.mjs +37 -0
  37. package/esm2020/lib/directives/show-hide-element/show-hide-element.directive.mjs +42 -0
  38. package/esm2020/lib/directives/template-reference/template-reference.directive.mjs +21 -0
  39. package/esm2020/lib/directives/throw-element-on-hover/throw-element-on-hover.directive.mjs +38 -0
  40. package/esm2020/lib/enums/common.enums.mjs +69 -0
  41. package/esm2020/lib/enums/index.mjs +2 -0
  42. package/esm2020/lib/ngx-sfc-common.module.mjs +135 -0
  43. package/esm2020/lib/services/document-ref.service.mjs +70 -0
  44. package/esm2020/lib/services/index.mjs +4 -0
  45. package/esm2020/lib/services/resize.service.mjs +42 -0
  46. package/esm2020/lib/services/window-ref.service.mjs +70 -0
  47. package/esm2020/lib/utils/collections.utils.mjs +244 -0
  48. package/esm2020/lib/utils/common.utils.mjs +86 -0
  49. package/esm2020/lib/utils/date-time.utils.mjs +208 -0
  50. package/esm2020/lib/utils/file.utils.mjs +52 -0
  51. package/esm2020/lib/utils/index.mjs +7 -0
  52. package/esm2020/lib/utils/string.utils.mjs +31 -0
  53. package/esm2020/lib/utils/ui.utils.mjs +39 -0
  54. package/esm2020/ngx-sfc-common.mjs +5 -0
  55. package/esm2020/public-api.mjs +11 -0
  56. package/fesm2015/ngx-sfc-common.mjs +1908 -0
  57. package/fesm2015/ngx-sfc-common.mjs.map +1 -0
  58. package/fesm2020/ngx-sfc-common.mjs +1900 -0
  59. package/fesm2020/ngx-sfc-common.mjs.map +1 -0
  60. package/lib/components/button/button-type.enum.d.ts +7 -0
  61. package/lib/components/button/button.component.d.ts +13 -0
  62. package/lib/components/checkmark/checkmark.component.d.ts +8 -0
  63. package/lib/components/delimeter/delimeter.component.d.ts +5 -0
  64. package/lib/components/dots/dots.component.d.ts +9 -0
  65. package/lib/components/hamburger/hamburger.component.d.ts +7 -0
  66. package/lib/components/index.d.ts +21 -0
  67. package/lib/components/loader/bounce/bounce-loader.component.d.ts +6 -0
  68. package/lib/components/loader/circle/circle-loader-type.enum.d.ts +4 -0
  69. package/lib/components/loader/circle/circle-loader.component.d.ts +8 -0
  70. package/lib/components/loader/loader-base.component.d.ts +27 -0
  71. package/lib/components/loader/loader.constants.d.ts +5 -0
  72. package/lib/components/loader/loader.event.d.ts +4 -0
  73. package/lib/components/loader/service/loader.service.d.ts +33 -0
  74. package/lib/components/modal/directive/modal-open-on-click.directive.d.ts +17 -0
  75. package/lib/components/modal/footer/default/default-modal-footer.component.d.ts +19 -0
  76. package/lib/components/modal/footer/default/default-modal-footer.model.d.ts +6 -0
  77. package/lib/components/modal/header/default/default-modal-header.component.d.ts +14 -0
  78. package/lib/components/modal/header/default/default-modal-header.model.d.ts +5 -0
  79. package/lib/components/modal/modal-template.enum.d.ts +5 -0
  80. package/lib/components/modal/modal.component.d.ts +25 -0
  81. package/lib/components/modal/service/modal.service.d.ts +12 -0
  82. package/lib/components/toggle-switcher/toggle-switcher.component.d.ts +11 -0
  83. package/lib/components/toggle-switcher/toggle-switcher.model.d.ts +4 -0
  84. package/lib/components/tooltip/tooltip-type.enum.d.ts +4 -0
  85. package/lib/components/tooltip/tooltip.component.d.ts +22 -0
  86. package/lib/constants/common.constants.d.ts +5 -0
  87. package/lib/constants/date-time.constants.d.ts +7 -0
  88. package/lib/constants/index.d.ts +3 -0
  89. package/lib/constants/ui.constants.d.ts +15 -0
  90. package/lib/directives/click-outside/click-outside.directive.d.ts +23 -0
  91. package/lib/directives/click-outside/click-outside.event.d.ts +4 -0
  92. package/lib/directives/component-size/component-size.directive.d.ts +13 -0
  93. package/lib/directives/index.d.ts +7 -0
  94. package/lib/directives/mouse-down/mouse-down.directive.d.ts +12 -0
  95. package/lib/directives/show-hide-element/show-hide-element.directive.d.ts +13 -0
  96. package/lib/directives/template-reference/template-reference.directive.d.ts +9 -0
  97. package/lib/directives/throw-element-on-hover/throw-element-on-hover.directive.d.ts +13 -0
  98. package/lib/enums/common.enums.d.ts +61 -0
  99. package/lib/enums/index.d.ts +1 -0
  100. package/lib/ngx-sfc-common.module.d.ts +27 -0
  101. package/lib/services/document-ref.service.d.ts +43 -0
  102. package/lib/services/index.d.ts +3 -0
  103. package/lib/services/resize.service.d.ts +32 -0
  104. package/lib/services/window-ref.service.d.ts +43 -0
  105. package/lib/utils/collections.utils.d.ts +135 -0
  106. package/lib/utils/common.utils.d.ts +50 -0
  107. package/lib/utils/date-time.utils.d.ts +131 -0
  108. package/lib/utils/file.utils.d.ts +25 -0
  109. package/lib/utils/index.d.ts +6 -0
  110. package/lib/utils/string.utils.d.ts +19 -0
  111. package/lib/utils/ui.utils.d.ts +24 -0
  112. package/ngx-sfc-common.d.ts +5 -0
  113. package/package.json +53 -0
  114. package/public-api.d.ts +7 -0
@@ -0,0 +1,20 @@
1
+ export { ButtonComponent } from './button/button.component';
2
+ export { ButtonType } from './button/button-type.enum';
3
+ export { TooltipComponent } from './tooltip/tooltip.component';
4
+ export { TooltipType } from './tooltip/tooltip-type.enum';
5
+ export { DelimeterComponent } from './delimeter/delimeter.component';
6
+ export { BounceLoaderComponent } from './loader/bounce/bounce-loader.component';
7
+ export { CircleLoaderComponent } from './loader/circle/circle-loader.component';
8
+ export { CircleLoaderType } from './loader/circle/circle-loader-type.enum';
9
+ export { LoaderService } from './loader/service/loader.service';
10
+ export { ModalComponent } from './modal/modal.component';
11
+ export { ModalOpenOnClickDirective } from './modal/directive/modal-open-on-click.directive';
12
+ export { ModalService } from './modal/service/modal.service';
13
+ export { DefaultModalHeaderComponent } from './modal/header/default/default-modal-header.component';
14
+ export { DefaultModalFooterComponent } from './modal/footer/default/default-modal-footer.component';
15
+ export { ModalTemplate } from './modal/modal-template.enum';
16
+ export { HamburgerComponent } from './hamburger/hamburger.component';
17
+ export { DotsComponent } from './dots/dots.component';
18
+ export { ToggleSwitcherComponent } from './toggle-switcher/toggle-switcher.component';
19
+ export { CheckmarkComponent } from './checkmark/checkmark.component';
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2ZjLWNvbW1vbi9zcmMvbGliL2NvbXBvbmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDckUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRWhFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUM1RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDN0QsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDcEcsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDcEcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUV0RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5leHBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcclxuZXhwb3J0IHsgQnV0dG9uVHlwZSB9IGZyb20gJy4vYnV0dG9uL2J1dHRvbi10eXBlLmVudW0nO1xyXG5leHBvcnQgeyBUb29sdGlwQ29tcG9uZW50IH0gZnJvbSAnLi90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50JztcclxuZXhwb3J0IHsgVG9vbHRpcFR5cGUgfSBmcm9tICcuL3Rvb2x0aXAvdG9vbHRpcC10eXBlLmVudW0nO1xyXG5leHBvcnQgeyBEZWxpbWV0ZXJDb21wb25lbnQgfSBmcm9tICcuL2RlbGltZXRlci9kZWxpbWV0ZXIuY29tcG9uZW50JztcclxuZXhwb3J0IHsgQm91bmNlTG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9sb2FkZXIvYm91bmNlL2JvdW5jZS1sb2FkZXIuY29tcG9uZW50JztcclxuZXhwb3J0IHsgQ2lyY2xlTG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9sb2FkZXIvY2lyY2xlL2NpcmNsZS1sb2FkZXIuY29tcG9uZW50JztcclxuZXhwb3J0IHsgQ2lyY2xlTG9hZGVyVHlwZSB9IGZyb20gJy4vbG9hZGVyL2NpcmNsZS9jaXJjbGUtbG9hZGVyLXR5cGUuZW51bSc7XHJcbmV4cG9ydCB7IExvYWRlclNlcnZpY2UgfSBmcm9tICcuL2xvYWRlci9zZXJ2aWNlL2xvYWRlci5zZXJ2aWNlJztcclxuZXhwb3J0IHsgSUxvYWRlckV2ZW50IH0gZnJvbSAnLi9sb2FkZXIvbG9hZGVyLmV2ZW50JztcclxuZXhwb3J0IHsgTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL21vZGFsL21vZGFsLmNvbXBvbmVudCc7XHJcbmV4cG9ydCB7IE1vZGFsT3Blbk9uQ2xpY2tEaXJlY3RpdmUgfSBmcm9tICcuL21vZGFsL2RpcmVjdGl2ZS9tb2RhbC1vcGVuLW9uLWNsaWNrLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCB7IE1vZGFsU2VydmljZSB9IGZyb20gJy4vbW9kYWwvc2VydmljZS9tb2RhbC5zZXJ2aWNlJztcclxuZXhwb3J0IHsgRGVmYXVsdE1vZGFsSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9tb2RhbC9oZWFkZXIvZGVmYXVsdC9kZWZhdWx0LW1vZGFsLWhlYWRlci5jb21wb25lbnQnO1xyXG5leHBvcnQgeyBEZWZhdWx0TW9kYWxGb290ZXJDb21wb25lbnQgfSBmcm9tICcuL21vZGFsL2Zvb3Rlci9kZWZhdWx0L2RlZmF1bHQtbW9kYWwtZm9vdGVyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCB7IE1vZGFsVGVtcGxhdGUgfSBmcm9tICcuL21vZGFsL21vZGFsLXRlbXBsYXRlLmVudW0nO1xyXG5leHBvcnQgeyBIYW1idXJnZXJDb21wb25lbnQgfSBmcm9tICcuL2hhbWJ1cmdlci9oYW1idXJnZXIuY29tcG9uZW50JztcclxuZXhwb3J0IHsgRG90c0NvbXBvbmVudCB9IGZyb20gJy4vZG90cy9kb3RzLmNvbXBvbmVudCc7XHJcbmV4cG9ydCB7IFRvZ2dsZVN3aXRjaGVyQ29tcG9uZW50IH0gZnJvbSAnLi90b2dnbGUtc3dpdGNoZXIvdG9nZ2xlLXN3aXRjaGVyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCB7IElUb2dnbGVTd2l0Y2hlck1vZGVsIH0gZnJvbSAnLi90b2dnbGUtc3dpdGNoZXIvdG9nZ2xlLXN3aXRjaGVyLm1vZGVsJztcclxuZXhwb3J0IHsgQ2hlY2ttYXJrQ29tcG9uZW50IH0gZnJvbSAnLi9jaGVja21hcmsvY2hlY2ttYXJrLmNvbXBvbmVudCc7XHJcbiJdfQ==
@@ -0,0 +1,13 @@
1
+ import { Component } from '@angular/core';
2
+ import { LoaderBaseComponent } from '../loader-base.component';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ export class BounceLoaderComponent extends LoaderBaseComponent {
6
+ }
7
+ BounceLoaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: BounceLoaderComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
8
+ BounceLoaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: BounceLoaderComponent, selector: "sfc-bounce-loader", usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"show$ | async\" class=\"preloader\" [ngClass]=\"preLoaderClasses\">\r\n <div class=\"spinner\">\r\n <div class=\"bounce\"></div>\r\n <div class=\"bounce\"></div>\r\n <div class=\"bounce\"></div>\r\n </div>\r\n</div>", styles: [".preloader{position:relative;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center}.preloader.background{opacity:.7}:host-context(.sfc-default-theme) .preloader.background{background-color:#fff}:host-context(.sfc-dark-theme) .preloader.background{background-color:#656d78}.preloader.global{z-index:9999;position:fixed}.preloader.local{z-index:9998;position:absolute}\n", ".spinner{text-align:center}.spinner .bounce{border-radius:100%;display:inline-block;animation:bounce-delay 1.4s infinite ease-in-out both;width:1em;height:1em}:host-context(.sfc-default-theme) .spinner .bounce{background-color:#545e61}:host-context(.sfc-dark-theme) .spinner .bounce{background-color:#fff}.spinner .bounce:nth-child(1){animation-delay:-.32s}.spinner .bounce:nth-child(2){animation-delay:-.16s}@keyframes bounce-delay{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "async": i1.AsyncPipe } });
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: BounceLoaderComponent, decorators: [{
10
+ type: Component,
11
+ args: [{ selector: 'sfc-bounce-loader', template: "<div *ngIf=\"show$ | async\" class=\"preloader\" [ngClass]=\"preLoaderClasses\">\r\n <div class=\"spinner\">\r\n <div class=\"bounce\"></div>\r\n <div class=\"bounce\"></div>\r\n <div class=\"bounce\"></div>\r\n </div>\r\n</div>", styles: [".preloader{position:relative;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center}.preloader.background{opacity:.7}:host-context(.sfc-default-theme) .preloader.background{background-color:#fff}:host-context(.sfc-dark-theme) .preloader.background{background-color:#656d78}.preloader.global{z-index:9999;position:fixed}.preloader.local{z-index:9998;position:absolute}\n", ".spinner{text-align:center}.spinner .bounce{border-radius:100%;display:inline-block;animation:bounce-delay 1.4s infinite ease-in-out both;width:1em;height:1em}:host-context(.sfc-default-theme) .spinner .bounce{background-color:#545e61}:host-context(.sfc-dark-theme) .spinner .bounce{background-color:#fff}.spinner .bounce:nth-child(1){animation-delay:-.32s}.spinner .bounce:nth-child(2){animation-delay:-.16s}@keyframes bounce-delay{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}\n"] }]
12
+ }] });
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm91bmNlLWxvYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2ZjLWNvbW1vbi9zcmMvbGliL2NvbXBvbmVudHMvbG9hZGVyL2JvdW5jZS9ib3VuY2UtbG9hZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zZmMtY29tbW9uL3NyYy9saWIvY29tcG9uZW50cy9sb2FkZXIvYm91bmNlL2JvdW5jZS1sb2FkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBTy9ELE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxtQkFBbUI7O2tIQUFqRCxxQkFBcUI7c0dBQXJCLHFCQUFxQixnRkNSbEMsaVFBTU07MkZERU8scUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBMb2FkZXJCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vbG9hZGVyLWJhc2UuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2ZjLWJvdW5jZS1sb2FkZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9ib3VuY2UtbG9hZGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi4vc3R5bGVzL2xvYWRlci1iYXNlLmNvbXBvbmVudC5zY3NzJywgJy4vYm91bmNlLWxvYWRlci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCb3VuY2VMb2FkZXJDb21wb25lbnQgZXh0ZW5kcyBMb2FkZXJCYXNlQ29tcG9uZW50IHtcclxufVxyXG4iLCI8ZGl2ICpuZ0lmPVwic2hvdyQgfCBhc3luY1wiIGNsYXNzPVwicHJlbG9hZGVyXCIgW25nQ2xhc3NdPVwicHJlTG9hZGVyQ2xhc3Nlc1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cInNwaW5uZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYm91bmNlXCI+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJvdW5jZVwiPjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJib3VuY2VcIj48L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
@@ -0,0 +1,6 @@
1
+ export var CircleLoaderType;
2
+ (function (CircleLoaderType) {
3
+ CircleLoaderType["Default"] = "default";
4
+ CircleLoaderType["Fading"] = "fading";
5
+ })(CircleLoaderType || (CircleLoaderType = {}));
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2lyY2xlLWxvYWRlci10eXBlLmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2ZjLWNvbW1vbi9zcmMvbGliL2NvbXBvbmVudHMvbG9hZGVyL2NpcmNsZS9jaXJjbGUtbG9hZGVyLXR5cGUuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxnQkFHWDtBQUhELFdBQVksZ0JBQWdCO0lBQ3hCLHVDQUFtQixDQUFBO0lBQ25CLHFDQUFpQixDQUFBO0FBQ3JCLENBQUMsRUFIVyxnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBRzNCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gQ2lyY2xlTG9hZGVyVHlwZSB7XHJcbiAgICBEZWZhdWx0ID0gJ2RlZmF1bHQnLFxyXG4gICAgRmFkaW5nID0gJ2ZhZGluZydcclxufSJdfQ==
@@ -0,0 +1,20 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { LoaderBaseComponent } from '../loader-base.component';
3
+ import { CircleLoaderType } from './circle-loader-type.enum';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ export class CircleLoaderComponent extends LoaderBaseComponent {
7
+ constructor() {
8
+ super(...arguments);
9
+ this.type = CircleLoaderType.Default;
10
+ }
11
+ }
12
+ CircleLoaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: CircleLoaderComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
13
+ CircleLoaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: CircleLoaderComponent, selector: "sfc-circle-loader", inputs: { type: "type" }, usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"show$ | async\" class=\"preloader\" [ngClass]=\"preLoaderClasses\">\r\n <div class=\"circles-container\" [ngClass]=\"type\">\r\n <div class=\"circle1\"></div>\r\n <div class=\"circle2\"></div>\r\n <div class=\"circle3\"></div>\r\n <div class=\"circle4\"></div>\r\n <div class=\"circle5\"></div>\r\n <div class=\"circle6\"></div>\r\n <div class=\"circle7\"></div>\r\n <div class=\"circle8\"></div>\r\n <div class=\"circle9\"></div>\r\n <div class=\"circle10\"></div>\r\n <div class=\"circle11\"></div>\r\n <div class=\"circle12\"></div>\r\n </div>\r\n</div>", styles: [".preloader{position:relative;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center}.preloader.background{opacity:.7}:host-context(.sfc-default-theme) .preloader.background{background-color:#fff}:host-context(.sfc-dark-theme) .preloader.background{background-color:#656d78}.preloader.global{z-index:9999;position:fixed}.preloader.local{z-index:9998;position:absolute}\n", ".circles-container{position:relative;width:2.5em;height:2.5em}.circles-container div{width:100%;height:100%;position:absolute;left:0;top:0}.circles-container div:before{content:\"\";display:block;margin:0 auto;width:15%;height:15%;border-radius:100%;animation:bounce-delay 1.2s infinite ease-in-out both}:host-context(.sfc-default-theme) .circles-container div:before{background-color:#545e61}:host-context(.sfc-dark-theme) .circles-container div:before{background-color:#fff}.circles-container.fading div:before{animation-name:circle-fade-delay}.circles-container .circle2{transform:rotate(30deg)}.circles-container .circle2:before{animation-delay:-1.1s}.circles-container .circle3{transform:rotate(60deg)}.circles-container .circle3:before{animation-delay:-1s}.circles-container .circle4{transform:rotate(90deg)}.circles-container .circle4:before{animation-delay:-.9s}.circles-container .circle5{transform:rotate(120deg)}.circles-container .circle5:before{animation-delay:-.8s}.circles-container .circle6{transform:rotate(150deg)}.circles-container .circle6:before{animation-delay:-.7s}.circles-container .circle7{transform:rotate(180deg)}.circles-container .circle7:before{animation-delay:-.6s}.circles-container .circle8{transform:rotate(210deg)}.circles-container .circle8:before{animation-delay:-.5s}.circles-container .circle9{transform:rotate(240deg)}.circles-container .circle9:before{animation-delay:-.4s}.circles-container .circle10{transform:rotate(270deg)}.circles-container .circle10:before{animation-delay:-.3s}.circles-container .circle11{transform:rotate(300deg)}.circles-container .circle11:before{animation-delay:-.2s}.circles-container .circle12{transform:rotate(330deg)}.circles-container .circle12:before{animation-delay:-.1s}@keyframes bounce-delay{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}@keyframes circle-fade-delay{0%,39%,to{opacity:0}40%{opacity:1}}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "async": i1.AsyncPipe } });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: CircleLoaderComponent, decorators: [{
15
+ type: Component,
16
+ args: [{ selector: 'sfc-circle-loader', template: "<div *ngIf=\"show$ | async\" class=\"preloader\" [ngClass]=\"preLoaderClasses\">\r\n <div class=\"circles-container\" [ngClass]=\"type\">\r\n <div class=\"circle1\"></div>\r\n <div class=\"circle2\"></div>\r\n <div class=\"circle3\"></div>\r\n <div class=\"circle4\"></div>\r\n <div class=\"circle5\"></div>\r\n <div class=\"circle6\"></div>\r\n <div class=\"circle7\"></div>\r\n <div class=\"circle8\"></div>\r\n <div class=\"circle9\"></div>\r\n <div class=\"circle10\"></div>\r\n <div class=\"circle11\"></div>\r\n <div class=\"circle12\"></div>\r\n </div>\r\n</div>", styles: [".preloader{position:relative;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center}.preloader.background{opacity:.7}:host-context(.sfc-default-theme) .preloader.background{background-color:#fff}:host-context(.sfc-dark-theme) .preloader.background{background-color:#656d78}.preloader.global{z-index:9999;position:fixed}.preloader.local{z-index:9998;position:absolute}\n", ".circles-container{position:relative;width:2.5em;height:2.5em}.circles-container div{width:100%;height:100%;position:absolute;left:0;top:0}.circles-container div:before{content:\"\";display:block;margin:0 auto;width:15%;height:15%;border-radius:100%;animation:bounce-delay 1.2s infinite ease-in-out both}:host-context(.sfc-default-theme) .circles-container div:before{background-color:#545e61}:host-context(.sfc-dark-theme) .circles-container div:before{background-color:#fff}.circles-container.fading div:before{animation-name:circle-fade-delay}.circles-container .circle2{transform:rotate(30deg)}.circles-container .circle2:before{animation-delay:-1.1s}.circles-container .circle3{transform:rotate(60deg)}.circles-container .circle3:before{animation-delay:-1s}.circles-container .circle4{transform:rotate(90deg)}.circles-container .circle4:before{animation-delay:-.9s}.circles-container .circle5{transform:rotate(120deg)}.circles-container .circle5:before{animation-delay:-.8s}.circles-container .circle6{transform:rotate(150deg)}.circles-container .circle6:before{animation-delay:-.7s}.circles-container .circle7{transform:rotate(180deg)}.circles-container .circle7:before{animation-delay:-.6s}.circles-container .circle8{transform:rotate(210deg)}.circles-container .circle8:before{animation-delay:-.5s}.circles-container .circle9{transform:rotate(240deg)}.circles-container .circle9:before{animation-delay:-.4s}.circles-container .circle10{transform:rotate(270deg)}.circles-container .circle10:before{animation-delay:-.3s}.circles-container .circle11{transform:rotate(300deg)}.circles-container .circle11:before{animation-delay:-.2s}.circles-container .circle12{transform:rotate(330deg)}.circles-container .circle12:before{animation-delay:-.1s}@keyframes bounce-delay{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}@keyframes circle-fade-delay{0%,39%,to{opacity:0}40%{opacity:1}}\n"] }]
17
+ }], propDecorators: { type: [{
18
+ type: Input
19
+ }] } });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2lyY2xlLWxvYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2ZjLWNvbW1vbi9zcmMvbGliL2NvbXBvbmVudHMvbG9hZGVyL2NpcmNsZS9jaXJjbGUtbG9hZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zZmMtY29tbW9uL3NyYy9saWIvY29tcG9uZW50cy9sb2FkZXIvY2lyY2xlL2NpcmNsZS1sb2FkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7OztBQU83RCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsbUJBQW1CO0lBTDlEOztRQVFFLFNBQUksR0FBcUIsZ0JBQWdCLENBQUMsT0FBTyxDQUFDO0tBQ25EOztrSEFKWSxxQkFBcUI7c0dBQXJCLHFCQUFxQiwwR0NUbEMscXBCQWVNOzJGRE5PLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxtQkFBbUI7OEJBTzdCLElBQUk7c0JBREgsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTG9hZGVyQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2xvYWRlci1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENpcmNsZUxvYWRlclR5cGUgfSBmcm9tICcuL2NpcmNsZS1sb2FkZXItdHlwZS5lbnVtJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2ZjLWNpcmNsZS1sb2FkZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jaXJjbGUtbG9hZGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi4vc3R5bGVzL2xvYWRlci1iYXNlLmNvbXBvbmVudC5zY3NzJywgJy4vY2lyY2xlLWxvYWRlci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDaXJjbGVMb2FkZXJDb21wb25lbnQgZXh0ZW5kcyBMb2FkZXJCYXNlQ29tcG9uZW50IHtcclxuICBcclxuICBASW5wdXQoKVxyXG4gIHR5cGU6IENpcmNsZUxvYWRlclR5cGUgPSBDaXJjbGVMb2FkZXJUeXBlLkRlZmF1bHQ7XHJcbn1cclxuIiwiPGRpdiAqbmdJZj1cInNob3ckIHwgYXN5bmNcIiBjbGFzcz1cInByZWxvYWRlclwiIFtuZ0NsYXNzXT1cInByZUxvYWRlckNsYXNzZXNcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjaXJjbGVzLWNvbnRhaW5lclwiIFtuZ0NsYXNzXT1cInR5cGVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2lyY2xlMVwiPjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjaXJjbGUyXCI+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNpcmNsZTNcIj48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2lyY2xlNFwiPjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjaXJjbGU1XCI+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNpcmNsZTZcIj48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2lyY2xlN1wiPjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjaXJjbGU4XCI+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNpcmNsZTlcIj48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2lyY2xlMTBcIj48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2lyY2xlMTFcIj48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2lyY2xlMTJcIj48L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
@@ -0,0 +1,51 @@
1
+ import { Directive, Input } from "@angular/core";
2
+ import { EMPTY, map } from "rxjs";
3
+ import { UIClass } from "../../enums";
4
+ import { LoaderConstants } from "./loader.constants";
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "./service/loader.service";
7
+ export class LoaderBaseComponent {
8
+ constructor(loaderService) {
9
+ this.loaderService = loaderService;
10
+ this.UIClass = UIClass;
11
+ /**
12
+ * Loader identificator (global by default)
13
+ */
14
+ this.id = LoaderConstants.GLOBAL_LOADER_ID;
15
+ /**
16
+ * Is start on init (loader register with show = True)
17
+ */
18
+ this.start = false;
19
+ /**
20
+ * Loader when active(show) has background(low opacity)
21
+ */
22
+ this.background = true;
23
+ this.show$ = EMPTY;
24
+ }
25
+ ngOnInit() {
26
+ // register new loader
27
+ this.show$ = this.loaderService.register({ id: this.id, status: this.start })
28
+ .pipe(map((event) => this.id === event.id && event.status));
29
+ }
30
+ get preLoaderClasses() {
31
+ let classes = {};
32
+ if (this.id === LoaderConstants.GLOBAL_LOADER_ID)
33
+ classes[LoaderConstants.GLOBAL_LOADER_ID] = true;
34
+ else
35
+ classes[LoaderConstants.LOCAL_LOADER_ID] = true;
36
+ classes[LoaderConstants.CSS_CLASS_BACKGROUND] = this.background;
37
+ return classes;
38
+ }
39
+ }
40
+ LoaderBaseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: LoaderBaseComponent, deps: [{ token: i1.LoaderService }], target: i0.ɵɵFactoryTarget.Directive });
41
+ LoaderBaseComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.6", type: LoaderBaseComponent, inputs: { id: "id", start: "start", background: "background" }, ngImport: i0 });
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: LoaderBaseComponent, decorators: [{
43
+ type: Directive
44
+ }], ctorParameters: function () { return [{ type: i1.LoaderService }]; }, propDecorators: { id: [{
45
+ type: Input
46
+ }], start: [{
47
+ type: Input
48
+ }], background: [{
49
+ type: Input
50
+ }] } });
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLWJhc2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNmYy1jb21tb24vc3JjL2xpYi9jb21wb25lbnRzL2xvYWRlci9sb2FkZXItYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN0QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7OztBQUtyRCxNQUFNLE9BQWdCLG1CQUFtQjtJQXNCckMsWUFBc0IsYUFBNEI7UUFBNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFwQmxELFlBQU8sR0FBRyxPQUFPLENBQUM7UUFFbEI7O1VBRUU7UUFFRixPQUFFLEdBQVcsZUFBZSxDQUFDLGdCQUFnQixDQUFDO1FBRTlDOztXQUVHO1FBRUgsVUFBSyxHQUFZLEtBQUssQ0FBQztRQUV2Qjs7V0FFRztRQUVILGVBQVUsR0FBWSxJQUFJLENBQUM7UUFLcEIsVUFBSyxHQUF3QixLQUFLLENBQUM7SUFGMUMsQ0FBQztJQUlNLFFBQVE7UUFDWCxzQkFBc0I7UUFDdEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDeEUsSUFBSSxDQUNELEdBQUcsQ0FBQyxDQUFDLEtBQW1CLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssS0FBSyxDQUFDLEVBQUUsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQ3JFLENBQUM7SUFDVixDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDaEIsSUFBSSxPQUFPLEdBQVEsRUFBRSxDQUFDO1FBRXRCLElBQUksSUFBSSxDQUFDLEVBQUUsS0FBSyxlQUFlLENBQUMsZ0JBQWdCO1lBQzVDLE9BQU8sQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxJQUFJLENBQUM7O1lBRWpELE9BQU8sQ0FBQyxlQUFlLENBQUMsZUFBZSxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBRXBELE9BQU8sQ0FBQyxlQUFlLENBQUMsb0JBQW9CLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBRWhFLE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7O2dIQTlDaUIsbUJBQW1CO29HQUFuQixtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkFEeEMsU0FBUztvR0FTTixFQUFFO3NCQURELEtBQUs7Z0JBT04sS0FBSztzQkFESixLQUFLO2dCQU9OLFVBQVU7c0JBRFQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEVNUFRZLCBtYXAsIE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBVSUNsYXNzIH0gZnJvbSBcIi4uLy4uL2VudW1zXCI7XHJcbmltcG9ydCB7IExvYWRlckNvbnN0YW50cyB9IGZyb20gXCIuL2xvYWRlci5jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgSUxvYWRlckV2ZW50IH0gZnJvbSBcIi4vbG9hZGVyLmV2ZW50XCI7XHJcbmltcG9ydCB7IExvYWRlclNlcnZpY2UgfSBmcm9tIFwiLi9zZXJ2aWNlL2xvYWRlci5zZXJ2aWNlXCI7XHJcblxyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIExvYWRlckJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICAgIFVJQ2xhc3MgPSBVSUNsYXNzO1xyXG5cclxuICAgIC8qKlxyXG4gICAgKiBMb2FkZXIgaWRlbnRpZmljYXRvciAoZ2xvYmFsIGJ5IGRlZmF1bHQpXHJcbiAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIGlkOiBzdHJpbmcgPSBMb2FkZXJDb25zdGFudHMuR0xPQkFMX0xPQURFUl9JRDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIElzIHN0YXJ0IG9uIGluaXQgKGxvYWRlciByZWdpc3RlciB3aXRoIHNob3cgPSBUcnVlKVxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgc3RhcnQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIExvYWRlciB3aGVuIGFjdGl2ZShzaG93KSBoYXMgYmFja2dyb3VuZChsb3cgb3BhY2l0eSlcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIGJhY2tncm91bmQ6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBsb2FkZXJTZXJ2aWNlOiBMb2FkZXJTZXJ2aWNlKSB7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNob3ckOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gRU1QVFk7XHJcblxyXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIC8vIHJlZ2lzdGVyIG5ldyBsb2FkZXJcclxuICAgICAgICB0aGlzLnNob3ckID0gdGhpcy5sb2FkZXJTZXJ2aWNlLnJlZ2lzdGVyKHsgaWQ6IHRoaXMuaWQsIHN0YXR1czogdGhpcy5zdGFydCB9KVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcCgoZXZlbnQ6IElMb2FkZXJFdmVudCkgPT4gdGhpcy5pZCA9PT0gZXZlbnQuaWQgJiYgZXZlbnQuc3RhdHVzKVxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBwcmVMb2FkZXJDbGFzc2VzKCkge1xyXG4gICAgICAgIGxldCBjbGFzc2VzOiBhbnkgPSB7fTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuaWQgPT09IExvYWRlckNvbnN0YW50cy5HTE9CQUxfTE9BREVSX0lEKVxyXG4gICAgICAgICAgICBjbGFzc2VzW0xvYWRlckNvbnN0YW50cy5HTE9CQUxfTE9BREVSX0lEXSA9IHRydWU7XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICBjbGFzc2VzW0xvYWRlckNvbnN0YW50cy5MT0NBTF9MT0FERVJfSURdID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgY2xhc3Nlc1tMb2FkZXJDb25zdGFudHMuQ1NTX0NMQVNTX0JBQ0tHUk9VTkRdID0gdGhpcy5iYWNrZ3JvdW5kO1xyXG5cclxuICAgICAgICByZXR1cm4gY2xhc3NlcztcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,6 @@
1
+ export class LoaderConstants {
2
+ }
3
+ LoaderConstants.GLOBAL_LOADER_ID = 'global';
4
+ LoaderConstants.LOCAL_LOADER_ID = 'local';
5
+ LoaderConstants.CSS_CLASS_BACKGROUND = 'background';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLmNvbnN0YW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zZmMtY29tbW9uL3NyYy9saWIvY29tcG9uZW50cy9sb2FkZXIvbG9hZGVyLmNvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sZUFBZTs7QUFDakIsZ0NBQWdCLEdBQUcsUUFBUSxDQUFDO0FBQzVCLCtCQUFlLEdBQUcsT0FBTyxDQUFDO0FBQzFCLG9DQUFvQixHQUFHLFlBQVksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBMb2FkZXJDb25zdGFudHMge1xyXG4gICAgc3RhdGljIEdMT0JBTF9MT0FERVJfSUQgPSAnZ2xvYmFsJztcclxuICAgIHN0YXRpYyBMT0NBTF9MT0FERVJfSUQgPSAnbG9jYWwnO1xyXG4gICAgc3RhdGljIENTU19DTEFTU19CQUNLR1JPVU5EID0gJ2JhY2tncm91bmQnO1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLmV2ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNmYy1jb21tb24vc3JjL2xpYi9jb21wb25lbnRzL2xvYWRlci9sb2FkZXIuZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSUxvYWRlckV2ZW50IHtcclxuICAgIGlkOiBzdHJpbmc7XHJcbiAgICBzdGF0dXM6IGJvb2xlYW47XHJcbn0iXX0=
@@ -0,0 +1,76 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { BehaviorSubject, distinctUntilChanged, filter, map } from 'rxjs';
3
+ import { addItem, any, firstOrDefault, hasObjectItem, isDefined, nameof, removeItem, updateItem } from '../../../utils';
4
+ import { LoaderConstants } from '../loader.constants';
5
+ import * as i0 from "@angular/core";
6
+ export class LoaderService {
7
+ constructor() {
8
+ this.loaderSubject = new BehaviorSubject([]);
9
+ this.loaders$ = this.loaderSubject
10
+ .asObservable()
11
+ .pipe(filter(loaders => any(loaders)), distinctUntilChanged());
12
+ }
13
+ /**
14
+ * Show loader by Id
15
+ * @param id Loader Id
16
+ * @param register If true register loader and show it
17
+ */
18
+ show(id = LoaderConstants.GLOBAL_LOADER_ID, register = false) {
19
+ return this.setLoaderStatus(id, true, register);
20
+ }
21
+ /**
22
+ * Hide loader
23
+ * @param id Loader Id
24
+ */
25
+ hide(id = LoaderConstants.GLOBAL_LOADER_ID) {
26
+ this.setLoaderStatus(id, false);
27
+ }
28
+ /**
29
+ * Register loader for next use
30
+ * @param event Loader event
31
+ * @returns Registred loade observable
32
+ */
33
+ register(event) {
34
+ const loaders = this.loaderSubject.getValue();
35
+ if (addItem(loaders, event, () => hasObjectItem(loaders, nameof('id'), event.id))) {
36
+ this.loaderSubject.next(loaders);
37
+ }
38
+ return this.selectLoaderById(event.id);
39
+ }
40
+ /**
41
+ * Remove loader
42
+ * @param id Loader Id
43
+ */
44
+ remove(id = LoaderConstants.GLOBAL_LOADER_ID) {
45
+ const loaders = this.loaderSubject.getValue();
46
+ if (removeItem(loaders, loader => loader.id == id)) {
47
+ this.loaderSubject.next(loaders);
48
+ }
49
+ }
50
+ selectLoaderById(id) {
51
+ return this.loaders$
52
+ .pipe(map(loaders => loaders.find(loader => loader.id == id)), distinctUntilChanged());
53
+ }
54
+ setLoaderStatus(id, status, register = false) {
55
+ const loaders = this.loaderSubject.getValue(), ILoaderEvent = { id, status }, loader = firstOrDefault(loaders, (loader) => loader.id == id);
56
+ if (isDefined(loader) && loader?.status == status)
57
+ return this.selectLoaderById(id);
58
+ const updatedLoaders = updateItem(loaders, (loader) => loader.id == id, ILoaderEvent);
59
+ if (isDefined(updatedLoaders)) {
60
+ this.loaderSubject.next(updatedLoaders);
61
+ }
62
+ if (register) {
63
+ return this.register(ILoaderEvent);
64
+ }
65
+ return null;
66
+ }
67
+ }
68
+ LoaderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: LoaderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
69
+ LoaderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: LoaderService, providedIn: 'root' });
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: LoaderService, decorators: [{
71
+ type: Injectable,
72
+ args: [{
73
+ providedIn: 'root'
74
+ }]
75
+ }] });
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2ZjLWNvbW1vbi9zcmMvbGliL2NvbXBvbmVudHMvbG9hZGVyL3NlcnZpY2UvbG9hZGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDdEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4SCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBTXRELE1BQU0sT0FBTyxhQUFhO0lBSDFCO1FBS1Usa0JBQWEsR0FBb0MsSUFBSSxlQUFlLENBQWlCLEVBQUUsQ0FBQyxDQUFDO1FBRXpGLGFBQVEsR0FBK0IsSUFBSSxDQUFDLGFBQWE7YUFDOUQsWUFBWSxFQUFFO2FBQ2QsSUFBSSxDQUNILE1BQU0sQ0FBaUIsT0FBTyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsRUFDL0Msb0JBQW9CLEVBQUUsQ0FDdkIsQ0FBQztLQTZFTDtJQTNFQzs7OztPQUlHO0lBQ0ksSUFBSSxDQUFDLEtBQWEsZUFBZSxDQUFDLGdCQUFnQixFQUFFLFdBQW9CLEtBQUs7UUFFbEYsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVEOzs7T0FHRztJQUNJLElBQUksQ0FBQyxLQUFhLGVBQWUsQ0FBQyxnQkFBZ0I7UUFDdkQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxRQUFRLENBQUMsS0FBbUI7UUFFakMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUU5QyxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUN4QixHQUFHLEVBQUUsQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBZSxJQUFJLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRTtZQUNyRSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNsQztRQUVELE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLEtBQWEsZUFBZSxDQUFDLGdCQUFnQjtRQUN6RCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRTlDLElBQUksVUFBVSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUU7WUFDbEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDbEM7SUFDSCxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsRUFBVTtRQUNqQyxPQUFPLElBQUksQ0FBQyxRQUFRO2FBQ2pCLElBQUksQ0FDSCxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQWlCLENBQUMsRUFDdkUsb0JBQW9CLEVBQUUsQ0FDdkIsQ0FBQztJQUNOLENBQUM7SUFFTyxlQUFlLENBQUMsRUFBVSxFQUFFLE1BQWUsRUFBRSxXQUFvQixLQUFLO1FBQzVFLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLEVBQzNDLFlBQVksR0FBaUIsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEVBQzNDLE1BQU0sR0FBRyxjQUFjLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRWhFLElBQUksU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU0sRUFBRSxNQUFNLElBQUksTUFBTTtZQUMvQyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVuQyxNQUFNLGNBQWMsR0FBRyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUV0RixJQUFJLFNBQVMsQ0FBQyxjQUFjLENBQUMsRUFBRTtZQUM3QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxjQUFnQyxDQUFDLENBQUM7U0FDM0Q7UUFFRCxJQUFJLFFBQVEsRUFBRTtZQUNaLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUNwQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzs7MEdBckZVLGFBQWE7OEdBQWIsYUFBYSxjQUZaLE1BQU07MkZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGFkZEl0ZW0sIGFueSwgZmlyc3RPckRlZmF1bHQsIGhhc09iamVjdEl0ZW0sIGlzRGVmaW5lZCwgbmFtZW9mLCByZW1vdmVJdGVtLCB1cGRhdGVJdGVtIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMnO1xyXG5pbXBvcnQgeyBMb2FkZXJDb25zdGFudHMgfSBmcm9tICcuLi9sb2FkZXIuY29uc3RhbnRzJztcclxuaW1wb3J0IHsgSUxvYWRlckV2ZW50IH0gZnJvbSAnLi4vbG9hZGVyLmV2ZW50JztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIExvYWRlclNlcnZpY2Uge1xyXG5cclxuICBwcml2YXRlIGxvYWRlclN1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxJTG9hZGVyRXZlbnRbXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElMb2FkZXJFdmVudFtdPihbXSk7XHJcblxyXG4gIHByaXZhdGUgbG9hZGVycyQ6IE9ic2VydmFibGU8SUxvYWRlckV2ZW50W10+ID0gdGhpcy5sb2FkZXJTdWJqZWN0XHJcbiAgICAuYXNPYnNlcnZhYmxlKClcclxuICAgIC5waXBlKFxyXG4gICAgICBmaWx0ZXI8SUxvYWRlckV2ZW50W10+KGxvYWRlcnMgPT4gYW55KGxvYWRlcnMpKSxcclxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKVxyXG4gICAgKTtcclxuXHJcbiAgLyoqXHJcbiAgICogU2hvdyBsb2FkZXIgYnkgSWRcclxuICAgKiBAcGFyYW0gaWQgTG9hZGVyIElkXHJcbiAgICogQHBhcmFtIHJlZ2lzdGVyIElmIHRydWUgcmVnaXN0ZXIgbG9hZGVyIGFuZCBzaG93IGl0XHJcbiAgICovXHJcbiAgcHVibGljIHNob3coaWQ6IHN0cmluZyA9IExvYWRlckNvbnN0YW50cy5HTE9CQUxfTE9BREVSX0lELCByZWdpc3RlcjogYm9vbGVhbiA9IGZhbHNlKVxyXG4gICAgOiBPYnNlcnZhYmxlPElMb2FkZXJFdmVudD4gfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLnNldExvYWRlclN0YXR1cyhpZCwgdHJ1ZSwgcmVnaXN0ZXIpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSGlkZSBsb2FkZXJcclxuICAgKiBAcGFyYW0gaWQgTG9hZGVyIElkXHJcbiAgICovXHJcbiAgcHVibGljIGhpZGUoaWQ6IHN0cmluZyA9IExvYWRlckNvbnN0YW50cy5HTE9CQUxfTE9BREVSX0lEKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldExvYWRlclN0YXR1cyhpZCwgZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVnaXN0ZXIgbG9hZGVyIGZvciBuZXh0IHVzZVxyXG4gICAqIEBwYXJhbSBldmVudCBMb2FkZXIgZXZlbnRcclxuICAgKiBAcmV0dXJucyBSZWdpc3RyZWQgbG9hZGUgb2JzZXJ2YWJsZVxyXG4gICAqL1xyXG4gIHB1YmxpYyByZWdpc3RlcihldmVudDogSUxvYWRlckV2ZW50KTogT2JzZXJ2YWJsZTxJTG9hZGVyRXZlbnQ+IHtcclxuXHJcbiAgICBjb25zdCBsb2FkZXJzID0gdGhpcy5sb2FkZXJTdWJqZWN0LmdldFZhbHVlKCk7XHJcblxyXG4gICAgaWYgKGFkZEl0ZW0obG9hZGVycywgZXZlbnQsXHJcbiAgICAgICgpID0+IGhhc09iamVjdEl0ZW0obG9hZGVycywgbmFtZW9mPElMb2FkZXJFdmVudD4oJ2lkJyksIGV2ZW50LmlkKSkpIHtcclxuICAgICAgdGhpcy5sb2FkZXJTdWJqZWN0Lm5leHQobG9hZGVycyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0TG9hZGVyQnlJZChldmVudC5pZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZW1vdmUgbG9hZGVyXHJcbiAgICogQHBhcmFtIGlkIExvYWRlciBJZFxyXG4gICAqL1xyXG4gIHB1YmxpYyByZW1vdmUoaWQ6IHN0cmluZyA9IExvYWRlckNvbnN0YW50cy5HTE9CQUxfTE9BREVSX0lEKTogdm9pZCB7XHJcbiAgICBjb25zdCBsb2FkZXJzID0gdGhpcy5sb2FkZXJTdWJqZWN0LmdldFZhbHVlKCk7XHJcblxyXG4gICAgaWYgKHJlbW92ZUl0ZW0obG9hZGVycywgbG9hZGVyID0+IGxvYWRlci5pZCA9PSBpZCkpIHtcclxuICAgICAgdGhpcy5sb2FkZXJTdWJqZWN0Lm5leHQobG9hZGVycyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNlbGVjdExvYWRlckJ5SWQoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8SUxvYWRlckV2ZW50PiB7XHJcbiAgICByZXR1cm4gdGhpcy5sb2FkZXJzJFxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAobG9hZGVycyA9PiBsb2FkZXJzLmZpbmQobG9hZGVyID0+IGxvYWRlci5pZCA9PSBpZCkgYXMgSUxvYWRlckV2ZW50KSxcclxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldExvYWRlclN0YXR1cyhpZDogc3RyaW5nLCBzdGF0dXM6IGJvb2xlYW4sIHJlZ2lzdGVyOiBib29sZWFuID0gZmFsc2UpOiBPYnNlcnZhYmxlPElMb2FkZXJFdmVudD4gfCBudWxsIHtcclxuICAgIGNvbnN0IGxvYWRlcnMgPSB0aGlzLmxvYWRlclN1YmplY3QuZ2V0VmFsdWUoKSxcclxuICAgICAgSUxvYWRlckV2ZW50OiBJTG9hZGVyRXZlbnQgPSB7IGlkLCBzdGF0dXMgfSxcclxuICAgICAgbG9hZGVyID0gZmlyc3RPckRlZmF1bHQobG9hZGVycywgKGxvYWRlcikgPT4gbG9hZGVyLmlkID09IGlkKTtcclxuXHJcbiAgICBpZiAoaXNEZWZpbmVkKGxvYWRlcikgJiYgbG9hZGVyPy5zdGF0dXMgPT0gc3RhdHVzKVxyXG4gICAgICByZXR1cm4gdGhpcy5zZWxlY3RMb2FkZXJCeUlkKGlkKTtcclxuXHJcbiAgICBjb25zdCB1cGRhdGVkTG9hZGVycyA9IHVwZGF0ZUl0ZW0obG9hZGVycywgKGxvYWRlcikgPT4gbG9hZGVyLmlkID09IGlkLCBJTG9hZGVyRXZlbnQpO1xyXG5cclxuICAgIGlmIChpc0RlZmluZWQodXBkYXRlZExvYWRlcnMpKSB7XHJcbiAgICAgIHRoaXMubG9hZGVyU3ViamVjdC5uZXh0KHVwZGF0ZWRMb2FkZXJzIGFzIElMb2FkZXJFdmVudFtdKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAocmVnaXN0ZXIpIHtcclxuICAgICAgcmV0dXJuIHRoaXMucmVnaXN0ZXIoSUxvYWRlckV2ZW50KTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,50 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import { isDefined } from '../../../utils';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../service/modal.service";
5
+ export class ModalOpenOnClickDirective {
6
+ constructor(templateRef, viewContainer, modalService) {
7
+ this.templateRef = templateRef;
8
+ this.viewContainer = viewContainer;
9
+ this.modalService = modalService;
10
+ this.clickHandler = ((event) => {
11
+ this.viewContainer.clear();
12
+ this.viewContainer.createEmbeddedView(this.templateRef);
13
+ this.modalService.open(event.currentTarget);
14
+ }).bind(this);
15
+ this.elements = [];
16
+ }
17
+ set modalOpenOnClick(elements) {
18
+ if (!isDefined(elements))
19
+ return;
20
+ if (elements instanceof HTMLElement)
21
+ this.elements = [elements];
22
+ else
23
+ this.elements = elements;
24
+ this.elements.forEach(el => {
25
+ el.addEventListener('click', this.clickHandler);
26
+ });
27
+ }
28
+ ngOnInit() {
29
+ this._closeSubscription = this.modalService.close$
30
+ .subscribe(() => {
31
+ this.viewContainer.clear();
32
+ });
33
+ }
34
+ ngOnDestroy() {
35
+ this._closeSubscription?.unsubscribe();
36
+ this.elements.forEach(el => el.removeEventListener('click', this.clickHandler));
37
+ }
38
+ }
39
+ ModalOpenOnClickDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ModalOpenOnClickDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: i1.ModalService }], target: i0.ɵɵFactoryTarget.Directive });
40
+ ModalOpenOnClickDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.6", type: ModalOpenOnClickDirective, selector: "[sfcModalOpenOnClick]", inputs: { modalOpenOnClick: ["sfcModalOpenOnClick", "modalOpenOnClick"] }, ngImport: i0 });
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ModalOpenOnClickDirective, decorators: [{
42
+ type: Directive,
43
+ args: [{
44
+ selector: '[sfcModalOpenOnClick]'
45
+ }]
46
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: i1.ModalService }]; }, propDecorators: { modalOpenOnClick: [{
47
+ type: Input,
48
+ args: ['sfcModalOpenOnClick']
49
+ }] } });
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtb3Blbi1vbi1jbGljay5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2ZjLWNvbW1vbi9zcmMvbGliL2NvbXBvbmVudHMvbW9kYWwvZGlyZWN0aXZlL21vZGFsLW9wZW4tb24tY2xpY2suZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFvRCxNQUFNLGVBQWUsQ0FBQztBQUVuRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQU0zQyxNQUFNLE9BQU8seUJBQXlCO0lBMkJwQyxZQUNVLFdBQTZCLEVBQzdCLGFBQStCLEVBQy9CLFlBQTBCO1FBRjFCLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUM3QixrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFDL0IsaUJBQVksR0FBWixZQUFZLENBQWM7UUFiNUIsaUJBQVksR0FBRyxDQUFDLENBQUMsS0FBaUIsRUFBUSxFQUFFO1lBQ2xELElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDeEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzlDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVOLGFBQVEsR0FBa0IsRUFBRSxDQUFDO0lBUXJDLENBQUM7SUE3QkQsSUFDSSxnQkFBZ0IsQ0FBQyxRQUFxQztRQUN4RCxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQztZQUN0QixPQUFPO1FBRVQsSUFBSSxRQUFRLFlBQVksV0FBVztZQUNqQyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7O1lBRTNCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBRTNCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQ3pCLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2xELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQWtCRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTTthQUMvQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUNsRixDQUFDOztzSEEzQ1UseUJBQXlCOzBHQUF6Qix5QkFBeUI7MkZBQXpCLHlCQUF5QjtrQkFIckMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsdUJBQXVCO2lCQUNsQzs0SkFJSyxnQkFBZ0I7c0JBRG5CLEtBQUs7dUJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBpc0RlZmluZWQgfSBmcm9tICcuLi8uLi8uLi91dGlscyc7XHJcbmltcG9ydCB7IE1vZGFsU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2UvbW9kYWwuc2VydmljZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tzZmNNb2RhbE9wZW5PbkNsaWNrXSdcclxufSlcclxuZXhwb3J0IGNsYXNzIE1vZGFsT3Blbk9uQ2xpY2tEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gIEBJbnB1dCgnc2ZjTW9kYWxPcGVuT25DbGljaycpXHJcbiAgc2V0IG1vZGFsT3Blbk9uQ2xpY2soZWxlbWVudHM6IEhUTUxFbGVtZW50IHwgSFRNTEVsZW1lbnRbXSkge1xyXG4gICAgaWYgKCFpc0RlZmluZWQoZWxlbWVudHMpKVxyXG4gICAgICByZXR1cm47XHJcblxyXG4gICAgaWYgKGVsZW1lbnRzIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpXHJcbiAgICAgIHRoaXMuZWxlbWVudHMgPSBbZWxlbWVudHNdO1xyXG4gICAgZWxzZVxyXG4gICAgICB0aGlzLmVsZW1lbnRzID0gZWxlbWVudHM7XHJcblxyXG4gICAgdGhpcy5lbGVtZW50cy5mb3JFYWNoKGVsID0+IHtcclxuICAgICAgZWwuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLmNsaWNrSGFuZGxlcik7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2xpY2tIYW5kbGVyID0gKChldmVudDogTW91c2VFdmVudCk6IHZvaWQgPT4ge1xyXG4gICAgdGhpcy52aWV3Q29udGFpbmVyLmNsZWFyKCk7XHJcbiAgICB0aGlzLnZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMudGVtcGxhdGVSZWYpO1xyXG4gICAgdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihldmVudC5jdXJyZW50VGFyZ2V0KTtcclxuICB9KS5iaW5kKHRoaXMpO1xyXG5cclxuICBwcml2YXRlIGVsZW1lbnRzOiBIVE1MRWxlbWVudFtdID0gW107XHJcblxyXG4gIHByaXZhdGUgX2Nsb3NlU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4sXHJcbiAgICBwcml2YXRlIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICBwcml2YXRlIG1vZGFsU2VydmljZTogTW9kYWxTZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2Nsb3NlU3Vic2NyaXB0aW9uID0gdGhpcy5tb2RhbFNlcnZpY2UuY2xvc2UkXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMudmlld0NvbnRhaW5lci5jbGVhcigpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fY2xvc2VTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLmVsZW1lbnRzLmZvckVhY2goZWwgPT4gZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLmNsaWNrSGFuZGxlcikpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,48 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { isDefined } from '../../../../utils';
3
+ import { ButtonType } from '../../../button/button-type.enum';
4
+ import { ComponentSize } from '../../../../enums';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../../service/modal.service";
7
+ import * as i2 from "../../../button/button.component";
8
+ import * as i3 from "@angular/common";
9
+ import * as i4 from "../../../../directives/component-size/component-size.directive";
10
+ export class DefaultModalFooterComponent {
11
+ constructor(modalService) {
12
+ this.modalService = modalService;
13
+ this.DEFAULT_MODAL_FOOTER_MODEL = {
14
+ cancelButton: true,
15
+ applyButton: true
16
+ };
17
+ this.BUTTON_CUSTOM_SIZE = 0.9;
18
+ this.ComponentSize = ComponentSize;
19
+ this.ButtonType = ButtonType;
20
+ }
21
+ ngOnInit() {
22
+ if (!isDefined(this.model)) {
23
+ this.model = this.DEFAULT_MODAL_FOOTER_MODEL;
24
+ }
25
+ }
26
+ onButtonClick(isCancelButton = false) {
27
+ if (isCancelButton) {
28
+ if (this.model?.onCancel) {
29
+ return this.model?.onCancel();
30
+ }
31
+ }
32
+ else {
33
+ if (this.model?.onApply) {
34
+ return this.model?.onApply();
35
+ }
36
+ }
37
+ this.modalService.close();
38
+ }
39
+ }
40
+ DefaultModalFooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: DefaultModalFooterComponent, deps: [{ token: i1.ModalService }], target: i0.ɵɵFactoryTarget.Component });
41
+ DefaultModalFooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: DefaultModalFooterComponent, selector: "sfc-default-modal-footer", inputs: { model: "model" }, ngImport: i0, template: "<div class=\"container\">\r\n <sfc-button *ngIf=\"model?.applyButton\" [sfcComponentSize] [customSize]=\"BUTTON_CUSTOM_SIZE\" text=\"Ok\"\r\n [types]=\"[ButtonType.Rounded]\" (click)=\"onButtonClick()\">\r\n </sfc-button>\r\n <sfc-button *ngIf=\"model?.cancelButton\" [sfcComponentSize] [customSize]=\"BUTTON_CUSTOM_SIZE\" text=\"Cancel\"\r\n [types]=\"[ButtonType.Rounded]\" (click)=\"onButtonClick(true)\">\r\n </sfc-button>\r\n</div>", styles: [":host{display:inline-flex;width:100%}:host .container{display:flex;justify-content:center;align-items:center;width:100%}:host .container sfc-button:first-child{padding-right:.3em}:host .container sfc-button:nth-child(2){padding-left:.3em}:host .container ::ng-deep sfc-button .button.rounded{width:5em}:host .container ::ng-deep sfc-button .button:not(:hover){color:#545e61!important;border-color:#545e61!important}\n"], components: [{ type: i2.ButtonComponent, selector: "sfc-button", inputs: ["text", "iconBefore", "iconAfter", "disabled", "types"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.ComponentSizeDirective, selector: "[sfcComponentSize]", inputs: ["sfcComponentSize", "customSize"] }] });
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: DefaultModalFooterComponent, decorators: [{
43
+ type: Component,
44
+ args: [{ selector: 'sfc-default-modal-footer', template: "<div class=\"container\">\r\n <sfc-button *ngIf=\"model?.applyButton\" [sfcComponentSize] [customSize]=\"BUTTON_CUSTOM_SIZE\" text=\"Ok\"\r\n [types]=\"[ButtonType.Rounded]\" (click)=\"onButtonClick()\">\r\n </sfc-button>\r\n <sfc-button *ngIf=\"model?.cancelButton\" [sfcComponentSize] [customSize]=\"BUTTON_CUSTOM_SIZE\" text=\"Cancel\"\r\n [types]=\"[ButtonType.Rounded]\" (click)=\"onButtonClick(true)\">\r\n </sfc-button>\r\n</div>", styles: [":host{display:inline-flex;width:100%}:host .container{display:flex;justify-content:center;align-items:center;width:100%}:host .container sfc-button:first-child{padding-right:.3em}:host .container sfc-button:nth-child(2){padding-left:.3em}:host .container ::ng-deep sfc-button .button.rounded{width:5em}:host .container ::ng-deep sfc-button .button:not(:hover){color:#545e61!important;border-color:#545e61!important}\n"] }]
45
+ }], ctorParameters: function () { return [{ type: i1.ModalService }]; }, propDecorators: { model: [{
46
+ type: Input
47
+ }] } });
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1tb2RhbC1mb290ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNmYy1jb21tb24vc3JjL2xpYi9jb21wb25lbnRzL21vZGFsL2Zvb3Rlci9kZWZhdWx0L2RlZmF1bHQtbW9kYWwtZm9vdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zZmMtY29tbW9uL3NyYy9saWIvY29tcG9uZW50cy9tb2RhbC9mb290ZXIvZGVmYXVsdC9kZWZhdWx0LW1vZGFsLWZvb3Rlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUV6RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDOUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7O0FBUWxELE1BQU0sT0FBTywyQkFBMkI7SUFldEMsWUFBb0IsWUFBMEI7UUFBMUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFiN0IsK0JBQTBCLEdBQTZCO1lBQ3RFLFlBQVksRUFBRSxJQUFJO1lBQ2xCLFdBQVcsRUFBRSxJQUFJO1NBQ2xCLENBQUE7UUFFUSx1QkFBa0IsR0FBRyxHQUFHLENBQUM7UUFFbEMsa0JBQWEsR0FBRyxhQUFhLENBQUM7UUFDOUIsZUFBVSxHQUFHLFVBQVUsQ0FBQztJQUswQixDQUFDO0lBRW5ELFFBQVE7UUFDTixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMxQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQywwQkFBMEIsQ0FBQztTQUM5QztJQUNILENBQUM7SUFFRCxhQUFhLENBQUMsaUJBQTBCLEtBQUs7UUFDM0MsSUFBSSxjQUFjLEVBQUU7WUFDbEIsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRTtnQkFDeEIsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxDQUFDO2FBQy9CO1NBQ0Y7YUFBTTtZQUNMLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUU7Z0JBQ3ZCLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQzthQUM5QjtTQUNGO1FBRUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM1QixDQUFDOzt3SEFuQ1UsMkJBQTJCOzRHQUEzQiwyQkFBMkIsNEZDWnhDLGdkQU9NOzJGREtPLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSwwQkFBMEI7bUdBaUJwQyxLQUFLO3NCQURKLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSURlZmF1bHRNb2RhbEZvb3Rlck1vZGVsIH0gZnJvbSAnLi9kZWZhdWx0LW1vZGFsLWZvb3Rlci5tb2RlbCc7XHJcbmltcG9ydCB7IGlzRGVmaW5lZCB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzJztcclxuaW1wb3J0IHsgQnV0dG9uVHlwZSB9IGZyb20gJy4uLy4uLy4uL2J1dHRvbi9idXR0b24tdHlwZS5lbnVtJztcclxuaW1wb3J0IHsgQ29tcG9uZW50U2l6ZSB9IGZyb20gJy4uLy4uLy4uLy4uL2VudW1zJztcclxuaW1wb3J0IHsgTW9kYWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS9tb2RhbC5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2ZjLWRlZmF1bHQtbW9kYWwtZm9vdGVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGVmYXVsdC1tb2RhbC1mb290ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RlZmF1bHQtbW9kYWwtZm9vdGVyLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIERlZmF1bHRNb2RhbEZvb3RlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgREVGQVVMVF9NT0RBTF9GT09URVJfTU9ERUw6IElEZWZhdWx0TW9kYWxGb290ZXJNb2RlbCA9IHtcclxuICAgIGNhbmNlbEJ1dHRvbjogdHJ1ZSxcclxuICAgIGFwcGx5QnV0dG9uOiB0cnVlXHJcbiAgfVxyXG5cclxuICByZWFkb25seSBCVVRUT05fQ1VTVE9NX1NJWkUgPSAwLjk7XHJcblxyXG4gIENvbXBvbmVudFNpemUgPSBDb21wb25lbnRTaXplO1xyXG4gIEJ1dHRvblR5cGUgPSBCdXR0b25UeXBlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIG1vZGVsPzogSURlZmF1bHRNb2RhbEZvb3Rlck1vZGVsO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1vZGFsU2VydmljZTogTW9kYWxTZXJ2aWNlKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAoIWlzRGVmaW5lZCh0aGlzLm1vZGVsKSkge1xyXG4gICAgICB0aGlzLm1vZGVsID0gdGhpcy5ERUZBVUxUX01PREFMX0ZPT1RFUl9NT0RFTDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQnV0dG9uQ2xpY2soaXNDYW5jZWxCdXR0b246IGJvb2xlYW4gPSBmYWxzZSkge1xyXG4gICAgaWYgKGlzQ2FuY2VsQnV0dG9uKSB7XHJcbiAgICAgIGlmICh0aGlzLm1vZGVsPy5vbkNhbmNlbCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm1vZGVsPy5vbkNhbmNlbCgpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5tb2RlbD8ub25BcHBseSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm1vZGVsPy5vbkFwcGx5KCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLm1vZGFsU2VydmljZS5jbG9zZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XHJcbiAgICA8c2ZjLWJ1dHRvbiAqbmdJZj1cIm1vZGVsPy5hcHBseUJ1dHRvblwiIFtzZmNDb21wb25lbnRTaXplXSBbY3VzdG9tU2l6ZV09XCJCVVRUT05fQ1VTVE9NX1NJWkVcIiB0ZXh0PVwiT2tcIlxyXG4gICAgICAgIFt0eXBlc109XCJbQnV0dG9uVHlwZS5Sb3VuZGVkXVwiIChjbGljayk9XCJvbkJ1dHRvbkNsaWNrKClcIj5cclxuICAgIDwvc2ZjLWJ1dHRvbj5cclxuICAgIDxzZmMtYnV0dG9uICpuZ0lmPVwibW9kZWw/LmNhbmNlbEJ1dHRvblwiIFtzZmNDb21wb25lbnRTaXplXSBbY3VzdG9tU2l6ZV09XCJCVVRUT05fQ1VTVE9NX1NJWkVcIiB0ZXh0PVwiQ2FuY2VsXCJcclxuICAgICAgICBbdHlwZXNdPVwiW0J1dHRvblR5cGUuUm91bmRlZF1cIiAoY2xpY2spPVwib25CdXR0b25DbGljayh0cnVlKVwiPlxyXG4gICAgPC9zZmMtYnV0dG9uPlxyXG48L2Rpdj4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1tb2RhbC1mb290ZXIubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2ZjLWNvbW1vbi9zcmMvbGliL2NvbXBvbmVudHMvbW9kYWwvZm9vdGVyL2RlZmF1bHQvZGVmYXVsdC1tb2RhbC1mb290ZXIubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSURlZmF1bHRNb2RhbEZvb3Rlck1vZGVsIHtcclxuICAgIGNhbmNlbEJ1dHRvbj86IGJvb2xlYW47XHJcbiAgICBhcHBseUJ1dHRvbj86IGJvb2xlYW47XHJcbiAgICBvbkNhbmNlbD86ICgpID0+IHZvaWQ7XHJcbiAgICBvbkFwcGx5PzogKCkgPT4gdm9pZDtcclxufSJdfQ==
@@ -0,0 +1,31 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { isDefined } from '../../../../utils';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../service/modal.service";
5
+ import * as i2 from "@angular/common";
6
+ export class DefaultModalHeaderComponent {
7
+ constructor(modalService) {
8
+ this.modalService = modalService;
9
+ this.DEFAULT_MODAL_HEADER_MODEL = {
10
+ icon: 'fa fa-window-restore',
11
+ showCloseIcon: true,
12
+ text: 'Modal'
13
+ };
14
+ }
15
+ ngOnInit() {
16
+ if (!isDefined(this.model))
17
+ this.model = this.DEFAULT_MODAL_HEADER_MODEL;
18
+ }
19
+ onClose() {
20
+ this.modalService.close();
21
+ }
22
+ }
23
+ DefaultModalHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: DefaultModalHeaderComponent, deps: [{ token: i1.ModalService }], target: i0.ɵɵFactoryTarget.Component });
24
+ DefaultModalHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: DefaultModalHeaderComponent, selector: "sfc-default-modal-header", inputs: { model: "model" }, ngImport: i0, template: "<div class=\"container\">\r\n <i *ngIf=\"model?.icon\" class=\"icon\" class=\"{{model?.icon}}\"></i>\r\n <span *ngIf=\"model?.text\" class=\"label\">{{model?.text}}</span>\r\n <span *ngIf=\"model?.showCloseIcon\" class=\"close\" (click)=\"onClose()\">\r\n <i class=\"fa fa-times\"></i>\r\n </span>\r\n</div>", styles: [":host{display:inline-flex;width:100%}:host .container{display:flex;align-items:flex-start;width:100%;justify-content:space-between}:host .container i{font-size:1em}:host .container .icon{padding-right:.7em}:host .container .label{font-size:1.2em;font-weight:700;-webkit-user-select:none;user-select:none;padding:0 .7em}:host .container .close{color:#545e61;cursor:pointer;display:flex;padding-left:.7em}:host .container .close:hover{color:#2bbbad}\n"], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: DefaultModalHeaderComponent, decorators: [{
26
+ type: Component,
27
+ args: [{ selector: 'sfc-default-modal-header', template: "<div class=\"container\">\r\n <i *ngIf=\"model?.icon\" class=\"icon\" class=\"{{model?.icon}}\"></i>\r\n <span *ngIf=\"model?.text\" class=\"label\">{{model?.text}}</span>\r\n <span *ngIf=\"model?.showCloseIcon\" class=\"close\" (click)=\"onClose()\">\r\n <i class=\"fa fa-times\"></i>\r\n </span>\r\n</div>", styles: [":host{display:inline-flex;width:100%}:host .container{display:flex;align-items:flex-start;width:100%;justify-content:space-between}:host .container i{font-size:1em}:host .container .icon{padding-right:.7em}:host .container .label{font-size:1.2em;font-weight:700;-webkit-user-select:none;user-select:none;padding:0 .7em}:host .container .close{color:#545e61;cursor:pointer;display:flex;padding-left:.7em}:host .container .close:hover{color:#2bbbad}\n"] }]
28
+ }], ctorParameters: function () { return [{ type: i1.ModalService }]; }, propDecorators: { model: [{
29
+ type: Input
30
+ }] } });
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1tb2RhbC1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNmYy1jb21tb24vc3JjL2xpYi9jb21wb25lbnRzL21vZGFsL2hlYWRlci9kZWZhdWx0L2RlZmF1bHQtbW9kYWwtaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zZmMtY29tbW9uL3NyYy9saWIvY29tcG9uZW50cy9tb2RhbC9oZWFkZXIvZGVmYXVsdC9kZWZhdWx0LW1vZGFsLWhlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUV6RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7QUFROUMsTUFBTSxPQUFPLDJCQUEyQjtJQVd0QyxZQUFvQixZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQVQ3QiwrQkFBMEIsR0FBNkI7WUFDdEUsSUFBSSxFQUFFLHNCQUFzQjtZQUM1QixhQUFhLEVBQUUsSUFBSTtZQUNuQixJQUFJLEVBQUUsT0FBTztTQUNkLENBQUE7SUFLaUQsQ0FBQztJQUVuRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixDQUFDO0lBQ2pELENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM1QixDQUFDOzt3SEFwQlUsMkJBQTJCOzRHQUEzQiwyQkFBMkIsNEZDVnhDLHdVQU1NOzJGRElPLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSwwQkFBMEI7bUdBYXBDLEtBQUs7c0JBREosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJRGVmYXVsdE1vZGFsSGVhZGVyTW9kZWwgfSBmcm9tICcuL2RlZmF1bHQtbW9kYWwtaGVhZGVyLm1vZGVsJztcclxuaW1wb3J0IHsgaXNEZWZpbmVkIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMnO1xyXG5pbXBvcnQgeyBNb2RhbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL21vZGFsLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzZmMtZGVmYXVsdC1tb2RhbC1oZWFkZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kZWZhdWx0LW1vZGFsLWhlYWRlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZGVmYXVsdC1tb2RhbC1oZWFkZXIuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGVmYXVsdE1vZGFsSGVhZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBERUZBVUxUX01PREFMX0hFQURFUl9NT0RFTDogSURlZmF1bHRNb2RhbEhlYWRlck1vZGVsID0ge1xyXG4gICAgaWNvbjogJ2ZhIGZhLXdpbmRvdy1yZXN0b3JlJyxcclxuICAgIHNob3dDbG9zZUljb246IHRydWUsXHJcbiAgICB0ZXh0OiAnTW9kYWwnXHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIG1vZGVsPzogSURlZmF1bHRNb2RhbEhlYWRlck1vZGVsO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1vZGFsU2VydmljZTogTW9kYWxTZXJ2aWNlKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAoIWlzRGVmaW5lZCh0aGlzLm1vZGVsKSlcclxuICAgICAgdGhpcy5tb2RlbCA9IHRoaXMuREVGQVVMVF9NT0RBTF9IRUFERVJfTU9ERUw7XHJcbiAgfVxyXG5cclxuICBvbkNsb3NlKCkge1xyXG4gICAgdGhpcy5tb2RhbFNlcnZpY2UuY2xvc2UoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG4gICAgPGkgKm5nSWY9XCJtb2RlbD8uaWNvblwiIGNsYXNzPVwiaWNvblwiIGNsYXNzPVwie3ttb2RlbD8uaWNvbn19XCI+PC9pPlxyXG4gICAgPHNwYW4gKm5nSWY9XCJtb2RlbD8udGV4dFwiIGNsYXNzPVwibGFiZWxcIj57e21vZGVsPy50ZXh0fX08L3NwYW4+XHJcbiAgICA8c3BhbiAqbmdJZj1cIm1vZGVsPy5zaG93Q2xvc2VJY29uXCIgY2xhc3M9XCJjbG9zZVwiIChjbGljayk9XCJvbkNsb3NlKClcIj5cclxuICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXRpbWVzXCI+PC9pPlxyXG4gICAgPC9zcGFuPlxyXG48L2Rpdj4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1tb2RhbC1oZWFkZXIubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc2ZjLWNvbW1vbi9zcmMvbGliL2NvbXBvbmVudHMvbW9kYWwvaGVhZGVyL2RlZmF1bHQvZGVmYXVsdC1tb2RhbC1oZWFkZXIubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSURlZmF1bHRNb2RhbEhlYWRlck1vZGVsIHtcclxuICAgIHRleHQ/OiBzdHJpbmc7XHJcbiAgICBpY29uPzogc3RyaW5nO1xyXG4gICAgc2hvd0Nsb3NlSWNvbj86IGJvb2xlYW47XHJcbn0iXX0=
@@ -0,0 +1,7 @@
1
+ export var ModalTemplate;
2
+ (function (ModalTemplate) {
3
+ ModalTemplate["Body"] = "body";
4
+ ModalTemplate["Header"] = "header";
5
+ ModalTemplate["Footer"] = "footer";
6
+ })(ModalTemplate || (ModalTemplate = {}));
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtdGVtcGxhdGUuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zZmMtY29tbW9uL3NyYy9saWIvY29tcG9uZW50cy9tb2RhbC9tb2RhbC10ZW1wbGF0ZS5lbnVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLGFBSVg7QUFKRCxXQUFZLGFBQWE7SUFDckIsOEJBQWEsQ0FBQTtJQUNiLGtDQUFpQixDQUFBO0lBQ2pCLGtDQUFpQixDQUFBO0FBQ3JCLENBQUMsRUFKVyxhQUFhLEtBQWIsYUFBYSxRQUl4QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIE1vZGFsVGVtcGxhdGUge1xyXG4gICAgQm9keSA9ICdib2R5JyxcclxuICAgIEhlYWRlciA9ICdoZWFkZXInLFxyXG4gICAgRm9vdGVyID0gJ2Zvb3RlcidcclxufSJdfQ==
@@ -0,0 +1,107 @@
1
+ import { animate, animateChild, group, query, state, style, transition, trigger } from '@angular/animations';
2
+ import { Component, ContentChildren, HostListener, Input } from '@angular/core';
3
+ import { TemplateReferenceDirective } from '../../directives';
4
+ import { firstOrDefault, isDefined } from '../../utils';
5
+ import { ModalTemplate } from './modal-template.enum';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "./service/modal.service";
8
+ import * as i2 from "./header/default/default-modal-header.component";
9
+ import * as i3 from "./footer/default/default-modal-footer.component";
10
+ import * as i4 from "@angular/common";
11
+ export class ModalComponent {
12
+ constructor(modalService) {
13
+ this.modalService = modalService;
14
+ this.ModalTemplate = ModalTemplate;
15
+ // End Defaults
16
+ this.hideOnEsc = true;
17
+ this.hideOnClickOutside = true;
18
+ }
19
+ onEscapeKeyDownHandler() {
20
+ if (this.hideOnEsc)
21
+ this.close();
22
+ }
23
+ getTemplate(template) {
24
+ if (!isDefined(this.templates))
25
+ return null;
26
+ const templateRef = firstOrDefault(this.templates?.toArray(), t => t.templateName == template);
27
+ return isDefined(templateRef) ? templateRef?.template : null;
28
+ }
29
+ isShowDefault(template) {
30
+ return !isDefined(this.getTemplate(template))
31
+ && (template == ModalTemplate.Header
32
+ ? !isDefined(this.header)
33
+ : !isDefined(this.footer));
34
+ }
35
+ close() {
36
+ this.modalService.close();
37
+ }
38
+ }
39
+ ModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ModalComponent, deps: [{ token: i1.ModalService }], target: i0.ɵɵFactoryTarget.Component });
40
+ ModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.6", type: ModalComponent, selector: "sfc-modal", inputs: { body: "body", header: "header", footer: "footer", defaultHeaderModel: "defaultHeaderModel", defaultFooterModel: "defaultFooterModel", hideOnEsc: "hideOnEsc", hideOnClickOutside: "hideOnClickOutside" }, host: { listeners: { "document:keydown.escape": "onEscapeKeyDownHandler()" } }, queries: [{ propertyName: "templates", predicate: TemplateReferenceDirective, read: TemplateReferenceDirective }], ngImport: i0, template: "<div class=\"overlay\" [@hideOverlay] (click)=\"hideOnClickOutside && close()\">\r\n <div class=\"content\" [@hideContent] (click)=\"$event.stopPropagation()\">\r\n\r\n <div class=\"header\">\r\n\r\n <ng-container *ngIf=\"header;else headerTemplate\">\r\n <ng-container *ngTemplateOutlet=\"header;\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-template #headerTemplate>\r\n <ng-container *ngTemplateOutlet=\"getTemplate(ModalTemplate.Header)\">\r\n </ng-container>\r\n </ng-template>\r\n\r\n <ng-container *ngIf=\"isShowDefault(ModalTemplate.Header)\">\r\n <sfc-default-modal-header [model]=\"defaultHeaderModel\">\r\n </sfc-default-modal-header>\r\n </ng-container>\r\n\r\n </div>\r\n\r\n <div class=\"body\">\r\n\r\n <ng-container *ngIf=\"body;else bodyTemplate\">\r\n <ng-container *ngTemplateOutlet=\"body;\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-template #bodyTemplate>\r\n <ng-container #bodyTemplate *ngTemplateOutlet=\"getTemplate(ModalTemplate.Body)\">\r\n </ng-container>\r\n </ng-template>\r\n\r\n </div>\r\n\r\n <div class=\"footer\">\r\n\r\n <ng-container *ngIf=\"footer;else footerTemplate\">\r\n <ng-container *ngTemplateOutlet=\"footer;\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-template #footerTemplate>\r\n <ng-container *ngTemplateOutlet=\"getTemplate(ModalTemplate.Footer)\">\r\n </ng-container>\r\n </ng-template>\r\n\r\n <ng-container *ngIf=\"isShowDefault(ModalTemplate.Footer)\">\r\n <sfc-default-modal-footer [model]=\"defaultFooterModel\">\r\n </sfc-default-modal-footer>\r\n </ng-container>\r\n\r\n </div>\r\n </div>\r\n</div>", styles: [".overlay{display:flex;align-items:center;justify-content:center;position:fixed;top:0;left:0;width:100%;height:100%;z-index:9999;background-color:#0009;-webkit-backface-visibility:visible;backface-visibility:visible;animation:expand-overlay .4s cubic-bezier(.55,0,.1,1)}@keyframes expand-overlay{0%{visibility:hidden;opacity:0}}.overlay .content{display:flex;align-items:center;position:relative;padding:.7em;margin:auto;background-color:#f5f7fa;max-width:calc(100% - 3em);max-height:calc(100% - 3em);border-radius:3px;overflow-y:auto;box-shadow:0 .125em .625em #0003;transform:scale(1);flex-direction:column;animation:expand-modal .4s cubic-bezier(.55,0,.1,1)}@keyframes expand-modal{0%{visibility:hidden;opacity:0;transform:scale(1.2)}}.overlay .content>div{width:100%;flex:0 0 auto;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:#545e61;flex-direction:row;display:flex;justify-content:center}\n"], components: [{ type: i2.DefaultModalHeaderComponent, selector: "sfc-default-modal-header", inputs: ["model"] }, { type: i3.DefaultModalFooterComponent, selector: "sfc-default-modal-footer", inputs: ["model"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], animations: [
41
+ trigger('hideOverlay', [
42
+ state('initial', style({ opacity: 1, visibility: 'visible' })),
43
+ state('void', style({ opacity: 0, visibility: 'hidden' })),
44
+ transition('* => void', [
45
+ group([
46
+ query(':self', [
47
+ animate('400ms cubic-bezier(.55, 0, .1, 1)', style({
48
+ opacity: 0,
49
+ visibility: 'hidden'
50
+ }))
51
+ ]),
52
+ query('@hideContent', [animateChild()])
53
+ ])
54
+ ])
55
+ ]),
56
+ trigger('hideContent', [
57
+ state('initial', style({ opacity: 1, visibility: 'visible', transform: 'scale(1)' })),
58
+ state('void', style({ opacity: 0, visibility: 'hidden', transform: 'scale(1.2)' })),
59
+ transition('* => void', animate('400ms cubic-bezier(.55, 0, .1, 1)'))
60
+ ])
61
+ ] });
62
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: ModalComponent, decorators: [{
63
+ type: Component,
64
+ args: [{ selector: 'sfc-modal', animations: [
65
+ trigger('hideOverlay', [
66
+ state('initial', style({ opacity: 1, visibility: 'visible' })),
67
+ state('void', style({ opacity: 0, visibility: 'hidden' })),
68
+ transition('* => void', [
69
+ group([
70
+ query(':self', [
71
+ animate('400ms cubic-bezier(.55, 0, .1, 1)', style({
72
+ opacity: 0,
73
+ visibility: 'hidden'
74
+ }))
75
+ ]),
76
+ query('@hideContent', [animateChild()])
77
+ ])
78
+ ])
79
+ ]),
80
+ trigger('hideContent', [
81
+ state('initial', style({ opacity: 1, visibility: 'visible', transform: 'scale(1)' })),
82
+ state('void', style({ opacity: 0, visibility: 'hidden', transform: 'scale(1.2)' })),
83
+ transition('* => void', animate('400ms cubic-bezier(.55, 0, .1, 1)'))
84
+ ])
85
+ ], template: "<div class=\"overlay\" [@hideOverlay] (click)=\"hideOnClickOutside && close()\">\r\n <div class=\"content\" [@hideContent] (click)=\"$event.stopPropagation()\">\r\n\r\n <div class=\"header\">\r\n\r\n <ng-container *ngIf=\"header;else headerTemplate\">\r\n <ng-container *ngTemplateOutlet=\"header;\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-template #headerTemplate>\r\n <ng-container *ngTemplateOutlet=\"getTemplate(ModalTemplate.Header)\">\r\n </ng-container>\r\n </ng-template>\r\n\r\n <ng-container *ngIf=\"isShowDefault(ModalTemplate.Header)\">\r\n <sfc-default-modal-header [model]=\"defaultHeaderModel\">\r\n </sfc-default-modal-header>\r\n </ng-container>\r\n\r\n </div>\r\n\r\n <div class=\"body\">\r\n\r\n <ng-container *ngIf=\"body;else bodyTemplate\">\r\n <ng-container *ngTemplateOutlet=\"body;\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-template #bodyTemplate>\r\n <ng-container #bodyTemplate *ngTemplateOutlet=\"getTemplate(ModalTemplate.Body)\">\r\n </ng-container>\r\n </ng-template>\r\n\r\n </div>\r\n\r\n <div class=\"footer\">\r\n\r\n <ng-container *ngIf=\"footer;else footerTemplate\">\r\n <ng-container *ngTemplateOutlet=\"footer;\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-template #footerTemplate>\r\n <ng-container *ngTemplateOutlet=\"getTemplate(ModalTemplate.Footer)\">\r\n </ng-container>\r\n </ng-template>\r\n\r\n <ng-container *ngIf=\"isShowDefault(ModalTemplate.Footer)\">\r\n <sfc-default-modal-footer [model]=\"defaultFooterModel\">\r\n </sfc-default-modal-footer>\r\n </ng-container>\r\n\r\n </div>\r\n </div>\r\n</div>", styles: [".overlay{display:flex;align-items:center;justify-content:center;position:fixed;top:0;left:0;width:100%;height:100%;z-index:9999;background-color:#0009;-webkit-backface-visibility:visible;backface-visibility:visible;animation:expand-overlay .4s cubic-bezier(.55,0,.1,1)}@keyframes expand-overlay{0%{visibility:hidden;opacity:0}}.overlay .content{display:flex;align-items:center;position:relative;padding:.7em;margin:auto;background-color:#f5f7fa;max-width:calc(100% - 3em);max-height:calc(100% - 3em);border-radius:3px;overflow-y:auto;box-shadow:0 .125em .625em #0003;transform:scale(1);flex-direction:column;animation:expand-modal .4s cubic-bezier(.55,0,.1,1)}@keyframes expand-modal{0%{visibility:hidden;opacity:0;transform:scale(1.2)}}.overlay .content>div{width:100%;flex:0 0 auto;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:#545e61;flex-direction:row;display:flex;justify-content:center}\n"] }]
86
+ }], ctorParameters: function () { return [{ type: i1.ModalService }]; }, propDecorators: { body: [{
87
+ type: Input
88
+ }], header: [{
89
+ type: Input
90
+ }], footer: [{
91
+ type: Input
92
+ }], defaultHeaderModel: [{
93
+ type: Input
94
+ }], defaultFooterModel: [{
95
+ type: Input
96
+ }], hideOnEsc: [{
97
+ type: Input
98
+ }], hideOnClickOutside: [{
99
+ type: Input
100
+ }], onEscapeKeyDownHandler: [{
101
+ type: HostListener,
102
+ args: ['document:keydown.escape']
103
+ }], templates: [{
104
+ type: ContentChildren,
105
+ args: [TemplateReferenceDirective, { read: TemplateReferenceDirective }]
106
+ }] } });
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNmYy1jb21tb24vc3JjL2xpYi9jb21wb25lbnRzL21vZGFsL21vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zZmMtY29tbW9uL3NyYy9saWIvY29tcG9uZW50cy9tb2RhbC9tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUNuQyxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQ3BDLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUNILFNBQVMsRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFFbEQsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFHeEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7QUErQnRELE1BQU0sT0FBTyxjQUFjO0lBMEN2QixZQUFvQixZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQXhDOUMsa0JBQWEsR0FBRyxhQUFhLENBQUM7UUF1QjlCLGVBQWU7UUFHZixjQUFTLEdBQVksSUFBSSxDQUFDO1FBRzFCLHVCQUFrQixHQUFZLElBQUksQ0FBQztJQVdlLENBQUM7SUFSbkQsc0JBQXNCO1FBQ2xCLElBQUksSUFBSSxDQUFDLFNBQVM7WUFDZCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQU9ELFdBQVcsQ0FBQyxRQUF1QjtRQUMvQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDMUIsT0FBTyxJQUFJLENBQUM7UUFFaEIsTUFBTSxXQUFXLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLEVBQ3hELENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksSUFBSSxRQUFRLENBQUMsQ0FBQztRQUVyQyxPQUFPLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLFFBQTRCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNyRixDQUFDO0lBRUQsYUFBYSxDQUFDLFFBQXVCO1FBQ2pDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztlQUN0QyxDQUFDLFFBQVEsSUFBSSxhQUFhLENBQUMsTUFBTTtnQkFDaEMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7Z0JBQ3pCLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsS0FBSztRQUNELElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDOUIsQ0FBQzs7MkdBL0RRLGNBQWM7K0ZBQWQsY0FBYywrV0F1Q04sMEJBQTBCLFFBQVUsMEJBQTBCLDZCQ2xGbkYsNDhEQW9ETSx3MUNEakNVO1FBQ1IsT0FBTyxDQUFDLGFBQWEsRUFBRTtZQUNuQixLQUFLLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7WUFDOUQsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBRTFELFVBQVUsQ0FBQyxXQUFXLEVBQUU7Z0JBQ3BCLEtBQUssQ0FBQztvQkFDRixLQUFLLENBQUMsT0FBTyxFQUFFO3dCQUNYLE9BQU8sQ0FBQyxtQ0FBbUMsRUFBRSxLQUFLLENBQUM7NEJBQy9DLE9BQU8sRUFBRSxDQUFDOzRCQUNWLFVBQVUsRUFBRSxRQUFRO3lCQUN2QixDQUFDLENBQUM7cUJBQ04sQ0FBQztvQkFDRixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztpQkFDMUMsQ0FBQzthQUNMLENBQUM7U0FDTCxDQUFDO1FBQ0YsT0FBTyxDQUFDLGFBQWEsRUFBRTtZQUNuQixLQUFLLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztZQUNyRixLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQztZQUNuRixVQUFVLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO1NBQ3hFLENBQUM7S0FDTDsyRkFFUSxjQUFjO2tCQTVCMUIsU0FBUzsrQkFDSSxXQUFXLGNBR1Q7d0JBQ1IsT0FBTyxDQUFDLGFBQWEsRUFBRTs0QkFDbkIsS0FBSyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDOzRCQUM5RCxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7NEJBRTFELFVBQVUsQ0FBQyxXQUFXLEVBQUU7Z0NBQ3BCLEtBQUssQ0FBQztvQ0FDRixLQUFLLENBQUMsT0FBTyxFQUFFO3dDQUNYLE9BQU8sQ0FBQyxtQ0FBbUMsRUFBRSxLQUFLLENBQUM7NENBQy9DLE9BQU8sRUFBRSxDQUFDOzRDQUNWLFVBQVUsRUFBRSxRQUFRO3lDQUN2QixDQUFDLENBQUM7cUNBQ04sQ0FBQztvQ0FDRixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztpQ0FDMUMsQ0FBQzs2QkFDTCxDQUFDO3lCQUNMLENBQUM7d0JBQ0YsT0FBTyxDQUFDLGFBQWEsRUFBRTs0QkFDbkIsS0FBSyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7NEJBQ3JGLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDOzRCQUNuRixVQUFVLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO3lCQUN4RSxDQUFDO3FCQUNMO21HQVNELElBQUk7c0JBREgsS0FBSztnQkFJTixNQUFNO3NCQURMLEtBQUs7Z0JBSU4sTUFBTTtzQkFETCxLQUFLO2dCQVFOLGtCQUFrQjtzQkFEakIsS0FBSztnQkFJTixrQkFBa0I7c0JBRGpCLEtBQUs7Z0JBTU4sU0FBUztzQkFEUixLQUFLO2dCQUlOLGtCQUFrQjtzQkFEakIsS0FBSztnQkFJTixzQkFBc0I7c0JBRHJCLFlBQVk7dUJBQUMseUJBQXlCO2dCQU8vQixTQUFTO3NCQURoQixlQUFlO3VCQUFDLDBCQUEwQixFQUFFLEVBQUUsSUFBSSxFQUFFLDBCQUEwQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIGFuaW1hdGUsIGFuaW1hdGVDaGlsZCwgZ3JvdXAsIHF1ZXJ5LFxyXG4gICAgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyXHJcbn0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7XHJcbiAgICBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgSG9zdExpc3RlbmVyLCBJbnB1dCxcclxuICAgIFF1ZXJ5TGlzdCwgVGVtcGxhdGVSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVGVtcGxhdGVSZWZlcmVuY2VEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzJztcclxuaW1wb3J0IHsgZmlyc3RPckRlZmF1bHQsIGlzRGVmaW5lZCB9IGZyb20gJy4uLy4uL3V0aWxzJztcclxuaW1wb3J0IHsgSURlZmF1bHRNb2RhbEZvb3Rlck1vZGVsIH0gZnJvbSAnLi9mb290ZXIvZGVmYXVsdC9kZWZhdWx0LW1vZGFsLWZvb3Rlci5tb2RlbCc7XHJcbmltcG9ydCB7IElEZWZhdWx0TW9kYWxIZWFkZXJNb2RlbCB9IGZyb20gJy4vaGVhZGVyL2RlZmF1bHQvZGVmYXVsdC1tb2RhbC1oZWFkZXIubW9kZWwnO1xyXG5pbXBvcnQgeyBNb2RhbFRlbXBsYXRlIH0gZnJvbSAnLi9tb2RhbC10ZW1wbGF0ZS5lbnVtJztcclxuaW1wb3J0IHsgTW9kYWxTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlL21vZGFsLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3NmYy1tb2RhbCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vbW9kYWwuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGFuaW1hdGlvbnM6IFtcclxuICAgICAgICB0cmlnZ2VyKCdoaWRlT3ZlcmxheScsIFtcclxuICAgICAgICAgICAgc3RhdGUoJ2luaXRpYWwnLCBzdHlsZSh7IG9wYWNpdHk6IDEsIHZpc2liaWxpdHk6ICd2aXNpYmxlJyB9KSksXHJcbiAgICAgICAgICAgIHN0YXRlKCd2b2lkJywgc3R5bGUoeyBvcGFjaXR5OiAwLCB2aXNpYmlsaXR5OiAnaGlkZGVuJyB9KSksXHJcblxyXG4gICAgICAgICAgICB0cmFuc2l0aW9uKCcqID0+IHZvaWQnLCBbXHJcbiAgICAgICAgICAgICAgICBncm91cChbXHJcbiAgICAgICAgICAgICAgICAgICAgcXVlcnkoJzpzZWxmJywgW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBhbmltYXRlKCc0MDBtcyBjdWJpYy1iZXppZXIoLjU1LCAwLCAuMSwgMSknLCBzdHlsZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlzaWJpbGl0eTogJ2hpZGRlbidcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSkpXHJcbiAgICAgICAgICAgICAgICAgICAgXSksXHJcbiAgICAgICAgICAgICAgICAgICAgcXVlcnkoJ0BoaWRlQ29udGVudCcsIFthbmltYXRlQ2hpbGQoKV0pXHJcbiAgICAgICAgICAgICAgICBdKVxyXG4gICAgICAgICAgICBdKVxyXG4gICAgICAgIF0pLFxyXG4gICAgICAgIHRyaWdnZXIoJ2hpZGVDb250ZW50JywgW1xyXG4gICAgICAgICAgICBzdGF0ZSgnaW5pdGlhbCcsIHN0eWxlKHsgb3BhY2l0eTogMSwgdmlzaWJpbGl0eTogJ3Zpc2libGUnLCB0cmFuc2Zvcm06ICdzY2FsZSgxKScgfSkpLFxyXG4gICAgICAgICAgICBzdGF0ZSgndm9pZCcsIHN0eWxlKHsgb3BhY2l0eTogMCwgdmlzaWJpbGl0eTogJ2hpZGRlbicsIHRyYW5zZm9ybTogJ3NjYWxlKDEuMiknIH0pKSxcclxuICAgICAgICAgICAgdHJhbnNpdGlvbignKiA9PiB2b2lkJywgYW5pbWF0ZSgnNDAwbXMgY3ViaWMtYmV6aWVyKC41NSwgMCwgLjEsIDEpJykpXHJcbiAgICAgICAgXSlcclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIE1vZGFsQ29tcG9uZW50IHtcclxuXHJcbiAgICBNb2RhbFRlbXBsYXRlID0gTW9kYWxUZW1wbGF0ZTtcclxuXHJcbiAgICAvLyBUZW1wbGF0ZSByZWZlcmVuY2VzIFxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBib2R5PzogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgaGVhZGVyPzogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZm9vdGVyPzogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgICAvLyBFbmQgVGVtcGxhdGUgcmVmZXJlbmNlcyAgICAgICAgXHJcblxyXG4gICAgLy8gRGVmYXVsdHNcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgZGVmYXVsdEhlYWRlck1vZGVsPzogSURlZmF1bHRNb2RhbEhlYWRlck1vZGVsO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBkZWZhdWx0Rm9vdGVyTW9kZWw/OiBJRGVmYXVsdE1vZGFsRm9vdGVyTW9kZWw7XHJcblxyXG4gICAgLy8gRW5kIERlZmF1bHRzXHJcblxyXG4gICAgQElucHV0KClcclxuICAgIGhpZGVPbkVzYzogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIGhpZGVPbkNsaWNrT3V0c2lkZTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bi5lc2NhcGUnKVxyXG4gICAgb25Fc2NhcGVLZXlEb3duSGFuZGxlcigpIHtcclxuICAgICAgICBpZiAodGhpcy5oaWRlT25Fc2MpXHJcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBAQ29udGVudENoaWxkcmVuKFRlbXBsYXRlUmVmZXJlbmNlRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmZXJlbmNlRGlyZWN0aXZlIH0pXHJcbiAgICBwcml2YXRlIHRlbXBsYXRlczogUXVlcnlMaXN0PFRlbXBsYXRlUmVmZXJlbmNlRGlyZWN0aXZlPiB8IHVuZGVmaW5lZDtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1vZGFsU2VydmljZTogTW9kYWxTZXJ2aWNlKSB7IH1cclxuXHJcbiAgICBnZXRUZW1wbGF0ZSh0ZW1wbGF0ZTogTW9kYWxUZW1wbGF0ZSk6IFRlbXBsYXRlUmVmPGFueT4gfCBudWxsIHtcclxuICAgICAgICBpZiAoIWlzRGVmaW5lZCh0aGlzLnRlbXBsYXRlcykpXHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG5cclxuICAgICAgICBjb25zdCB0ZW1wbGF0ZVJlZiA9IGZpcnN0T3JEZWZhdWx0KHRoaXMudGVtcGxhdGVzPy50b0FycmF5KCksXHJcbiAgICAgICAgICAgIHQgPT4gdC50ZW1wbGF0ZU5hbWUgPT0gdGVtcGxhdGUpO1xyXG5cclxuICAgICAgICByZXR1cm4gaXNEZWZpbmVkKHRlbXBsYXRlUmVmKSA/IHRlbXBsYXRlUmVmPy50ZW1wbGF0ZSBhcyBUZW1wbGF0ZVJlZjxhbnk+IDogbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBpc1Nob3dEZWZhdWx0KHRlbXBsYXRlOiBNb2RhbFRlbXBsYXRlKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICFpc0RlZmluZWQodGhpcy5nZXRUZW1wbGF0ZSh0ZW1wbGF0ZSkpXHJcbiAgICAgICAgICAgICYmICh0ZW1wbGF0ZSA9PSBNb2RhbFRlbXBsYXRlLkhlYWRlclxyXG4gICAgICAgICAgICAgICAgPyAhaXNEZWZpbmVkKHRoaXMuaGVhZGVyKVxyXG4gICAgICAgICAgICAgICAgOiAhaXNEZWZpbmVkKHRoaXMuZm9vdGVyKSk7XHJcbiAgICB9XHJcblxyXG4gICAgY2xvc2UoKSB7XHJcbiAgICAgICAgdGhpcy5tb2RhbFNlcnZpY2UuY2xvc2UoKTtcclxuICAgIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwib3ZlcmxheVwiIFtAaGlkZU92ZXJsYXldIChjbGljayk9XCJoaWRlT25DbGlja091dHNpZGUgJiYgY2xvc2UoKVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIiBbQGhpZGVDb250ZW50XSAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXJcIj5cclxuXHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoZWFkZXI7ZWxzZSBoZWFkZXJUZW1wbGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImhlYWRlcjtcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2hlYWRlclRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImdldFRlbXBsYXRlKE1vZGFsVGVtcGxhdGUuSGVhZGVyKVwiPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNTaG93RGVmYXVsdChNb2RhbFRlbXBsYXRlLkhlYWRlcilcIj5cclxuICAgICAgICAgICAgICAgIDxzZmMtZGVmYXVsdC1tb2RhbC1oZWFkZXIgW21vZGVsXT1cImRlZmF1bHRIZWFkZXJNb2RlbFwiPlxyXG4gICAgICAgICAgICAgICAgPC9zZmMtZGVmYXVsdC1tb2RhbC1oZWFkZXI+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJvZHlcIj5cclxuXHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJib2R5O2Vsc2UgYm9keVRlbXBsYXRlXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYm9keTtcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2JvZHlUZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgI2JvZHlUZW1wbGF0ZSAqbmdUZW1wbGF0ZU91dGxldD1cImdldFRlbXBsYXRlKE1vZGFsVGVtcGxhdGUuQm9keSlcIj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvb3RlclwiPlxyXG5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZvb3RlcjtlbHNlIGZvb3RlclRlbXBsYXRlXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZm9vdGVyO1wiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZm9vdGVyVGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZ2V0VGVtcGxhdGUoTW9kYWxUZW1wbGF0ZS5Gb290ZXIpXCI+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1Nob3dEZWZhdWx0KE1vZGFsVGVtcGxhdGUuRm9vdGVyKVwiPlxyXG4gICAgICAgICAgICAgICAgPHNmYy1kZWZhdWx0LW1vZGFsLWZvb3RlciBbbW9kZWxdPVwiZGVmYXVsdEZvb3Rlck1vZGVsXCI+XHJcbiAgICAgICAgICAgICAgICA8L3NmYy1kZWZhdWx0LW1vZGFsLWZvb3Rlcj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==