simpo-component-library 3.6.101 → 3.6.103

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 (111) hide show
  1. package/esm2022/lib/directive/alignment.directive.mjs +23 -0
  2. package/esm2022/lib/directive/button-directive.directive.mjs +19 -3
  3. package/esm2022/lib/directive/height.directive.mjs +29 -0
  4. package/esm2022/lib/directive/image-editor.directive.mjs +21 -4
  5. package/esm2022/lib/directive/set-dynamic-background.directive.mjs +66 -0
  6. package/esm2022/lib/directive/spacing-around.directive.mjs +37 -3
  7. package/esm2022/lib/directive/spacing.directive.mjs +29 -0
  8. package/esm2022/lib/directive/translate-onhover.directive.mjs +47 -0
  9. package/esm2022/lib/ecommerce/sections/authentication-required/authentication-required.component.mjs +1 -1
  10. package/esm2022/lib/ecommerce/sections/cart/cart.component.mjs +10 -5
  11. package/esm2022/lib/ecommerce/sections/category-product/category-product.component.mjs +2 -2
  12. package/esm2022/lib/ecommerce/sections/featured-category/featured-category.component.mjs +6 -4
  13. package/esm2022/lib/ecommerce/sections/featured-category/featured-category.modal.mjs +1 -1
  14. package/esm2022/lib/ecommerce/sections/featured-category/featured-collection.component.mjs +6 -4
  15. package/esm2022/lib/ecommerce/sections/featured-products/featured-products.component.mjs +24 -7
  16. package/esm2022/lib/ecommerce/sections/featured-products/featured-products.modal.mjs +1 -1
  17. package/esm2022/lib/ecommerce/sections/new-collection/new-collection.component.mjs +146 -0
  18. package/esm2022/lib/ecommerce/sections/new-collection/new-collection.modal.mjs +2 -0
  19. package/esm2022/lib/ecommerce/sections/product-category-list/product-category-list.component.mjs +2 -2
  20. package/esm2022/lib/ecommerce/sections/product-list/product-list.component.mjs +27 -5
  21. package/esm2022/lib/ecommerce/sections/small-product-listing/small-product-listing.component.mjs +25 -3
  22. package/esm2022/lib/ecommerce/styles/Collection.modal.mjs +5 -3
  23. package/esm2022/lib/elements/below-image-card/below-image-card.component.mjs +12 -4
  24. package/esm2022/lib/elements/covering-image-card/covering-image-card.component.mjs +3 -3
  25. package/esm2022/lib/elements/editor-service.service.mjs +19 -1
  26. package/esm2022/lib/elements/image-editor/image-editor.component.mjs +147 -15
  27. package/esm2022/lib/elements/pricing-s1/pricing-s1.component.mjs +6 -4
  28. package/esm2022/lib/elements/simpo-button/simpo-button.component.mjs +3 -3
  29. package/esm2022/lib/elements/top-of-image-card/top-of-image-card.component.mjs +3 -3
  30. package/esm2022/lib/sections/add-new-section/add-new-section.component.mjs +2 -2
  31. package/esm2022/lib/sections/appointment-form/appointment-form.component.mjs +6 -4
  32. package/esm2022/lib/sections/banner-grid-section/banner-grid-section.component.mjs +41 -6
  33. package/esm2022/lib/sections/banner-section/banner-section.component.mjs +4 -4
  34. package/esm2022/lib/sections/carousel-banner/carousel-banner.component.mjs +3 -3
  35. package/esm2022/lib/sections/choose-us-section/choose-us-section.component.mjs +1 -1
  36. package/esm2022/lib/sections/contact-us/contact-us.component.mjs +2 -2
  37. package/esm2022/lib/sections/faq-section/faq-section.component.mjs +3 -3
  38. package/esm2022/lib/sections/features-section/features-section.component.mjs +6 -4
  39. package/esm2022/lib/sections/header-section/header-section.component.mjs +15 -3
  40. package/esm2022/lib/sections/header-text/header-text.component.mjs +3 -3
  41. package/esm2022/lib/sections/image-carousel-section/image-carousel-section.component.mjs +12 -5
  42. package/esm2022/lib/sections/image-grid-section/image-grid-section.component.mjs +18 -3
  43. package/esm2022/lib/sections/image-grid-section/image-grid-section.model.mjs +1 -1
  44. package/esm2022/lib/sections/logo-gallery/logo-gallery.component.mjs +3 -3
  45. package/esm2022/lib/sections/logo-showcase/logo-showcase.component.mjs +9 -3
  46. package/esm2022/lib/sections/logo-showcase/logo-showcase.modal.mjs +1 -1
  47. package/esm2022/lib/sections/new-services/new-services.component.mjs +2 -2
  48. package/esm2022/lib/sections/new-testimonials/new-testimonials.component.mjs +2 -2
  49. package/esm2022/lib/sections/pricing-section/pricing-section.component.mjs +3 -3
  50. package/esm2022/lib/sections/pricing-section/pricing-section.modal.mjs +1 -1
  51. package/esm2022/lib/sections/process-modern/process-modern.component.mjs +12 -4
  52. package/esm2022/lib/sections/process-section/process-section.component.mjs +3 -3
  53. package/esm2022/lib/sections/service-section/service-section.component.mjs +1 -1
  54. package/esm2022/lib/sections/service-section/service-section.model.mjs +1 -1
  55. package/esm2022/lib/sections/usp-video-section/usp-video-section.component.mjs +2 -2
  56. package/esm2022/lib/sections/video-section/video-section.component.mjs +1 -1
  57. package/esm2022/lib/services/rest.service.mjs +20 -20
  58. package/esm2022/lib/styles/style.model.mjs +1 -1
  59. package/esm2022/lib/styles/types.mjs +1 -1
  60. package/esm2022/public-api.mjs +6 -1
  61. package/fesm2022/simpo-component-library.mjs +894 -232
  62. package/fesm2022/simpo-component-library.mjs.map +1 -1
  63. package/lib/components/input-fields/input-fields.component.d.ts +1 -1
  64. package/lib/directive/alignment.directive.d.ts +11 -0
  65. package/lib/directive/background-directive.d.ts +1 -1
  66. package/lib/directive/button-directive.directive.d.ts +3 -1
  67. package/lib/directive/color.directive.d.ts +1 -1
  68. package/lib/directive/height.directive.d.ts +11 -0
  69. package/lib/directive/image-editor.directive.d.ts +6 -1
  70. package/lib/directive/set-dynamic-background.directive.d.ts +14 -0
  71. package/lib/directive/spacing-around.directive.d.ts +7 -2
  72. package/lib/directive/spacing.directive.d.ts +12 -0
  73. package/lib/directive/translate-onhover.directive.d.ts +11 -0
  74. package/lib/ecommerce/sections/authentication-required/authentication-required.component.d.ts +1 -1
  75. package/lib/ecommerce/sections/cart/cart.component.d.ts +2 -0
  76. package/lib/ecommerce/sections/featured-category/featured-category.modal.d.ts +2 -0
  77. package/lib/ecommerce/sections/featured-products/featured-products.component.d.ts +2 -1
  78. package/lib/ecommerce/sections/featured-products/featured-products.modal.d.ts +6 -2
  79. package/lib/ecommerce/sections/new-collection/new-collection.component.d.ts +36 -0
  80. package/lib/ecommerce/sections/new-collection/new-collection.modal.d.ts +23 -0
  81. package/lib/ecommerce/sections/product-list/product-list.component.d.ts +3 -0
  82. package/lib/ecommerce/sections/small-product-listing/small-product-listing.component.d.ts +5 -1
  83. package/lib/ecommerce/styles/Collection.modal.d.ts +1 -0
  84. package/lib/elements/editor-service.service.d.ts +2 -0
  85. package/lib/elements/image-editor/image-editor.component.d.ts +29 -3
  86. package/lib/elements/link-editor/link-editor.component.d.ts +1 -1
  87. package/lib/sections/banner-carousel/banner-carousel.component.d.ts +2 -2
  88. package/lib/sections/banner-grid-section/banner-grid-section.component.d.ts +7 -1
  89. package/lib/sections/carousel-banner/carousel-banner.component.d.ts +1 -1
  90. package/lib/sections/contact-us/contact-us.component.d.ts +1 -1
  91. package/lib/sections/header-section/header-section.component.d.ts +1 -0
  92. package/lib/sections/image-carousel-section/image-carousel-section.component.d.ts +2 -1
  93. package/lib/sections/image-grid-section/image-grid-section.component.d.ts +4 -0
  94. package/lib/sections/image-grid-section/image-grid-section.model.d.ts +2 -1
  95. package/lib/sections/image-section/image-section.component.d.ts +2 -2
  96. package/lib/sections/logo-showcase/logo-showcase.component.d.ts +4 -2
  97. package/lib/sections/logo-showcase/logo-showcase.modal.d.ts +11 -2
  98. package/lib/sections/moving-text/moving-text.component.d.ts +1 -1
  99. package/lib/sections/new-testimonials/new-testimonials.component.d.ts +1 -1
  100. package/lib/sections/pricing-section/pricing-section.component.d.ts +1 -1
  101. package/lib/sections/pricing-section/pricing-section.modal.d.ts +1 -0
  102. package/lib/sections/process-modern/process-modern.component.d.ts +2 -0
  103. package/lib/sections/service-section/service-section.model.d.ts +2 -0
  104. package/lib/services/rest.service.d.ts +1 -3
  105. package/lib/styles/style.model.d.ts +2 -0
  106. package/lib/styles/types.d.ts +2 -0
  107. package/package.json +1 -1
  108. package/public-api.d.ts +5 -0
  109. package/simpo-component-library-3.6.103.tgz +0 -0
  110. package/src/lib/styles/global-styles.css +13 -1
  111. package/simpo-component-library-3.6.101.tgz +0 -0
@@ -0,0 +1,23 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class AlignmentDirective {
4
+ constructor(el) {
5
+ this.el = el;
6
+ }
7
+ ngOnChanges() {
8
+ this.el.nativeElement.style.setProperty('text-align', this.alignment);
9
+ }
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: AlignmentDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
11
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.4", type: AlignmentDirective, isStandalone: true, selector: "[simpoAlignment]", inputs: { alignment: ["simpoAlignment", "alignment"] }, usesOnChanges: true, ngImport: i0 }); }
12
+ }
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: AlignmentDirective, decorators: [{
14
+ type: Directive,
15
+ args: [{
16
+ selector: '[simpoAlignment]',
17
+ standalone: true,
18
+ }]
19
+ }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { alignment: [{
20
+ type: Input,
21
+ args: ['simpoAlignment']
22
+ }] } });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxpZ25tZW50LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvZGlyZWN0aXZlL2FsaWdubWVudC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDOztBQVVoRixNQUFNLE9BQU8sa0JBQWtCO0lBRzdCLFlBQW9CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO0lBQUcsQ0FBQztJQUV0QyxXQUFXO1FBQ1QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7OEdBUFUsa0JBQWtCO2tHQUFsQixrQkFBa0I7OzJGQUFsQixrQkFBa0I7a0JBSjlCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOytFQUUwQixTQUFTO3NCQUFqQyxLQUFLO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFsaWduQ29udGVudCwgYXBwbHlTcGFjaW5nIH0gZnJvbSAnLi4vc3R5bGVzL2luZGV4JztcclxuaW1wb3J0IHsgU3BhY2luZ01vZGVsIH0gZnJvbSAnLi4vc3R5bGVzL3N0eWxlLm1vZGVsJztcclxuaW1wb3J0IHsgRXZlbnRzU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2V2ZW50cy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQUxJR04gfSBmcm9tICcuLi9zdHlsZXMvdHlwZXMnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbc2ltcG9BbGlnbm1lbnRdJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWxpZ25tZW50RGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoJ3NpbXBvQWxpZ25tZW50JykgYWxpZ25tZW50PzogQUxJR047XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYpIHt9XHJcblxyXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCd0ZXh0LWFsaWduJywgdGhpcy5hbGlnbm1lbnQpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
@@ -1,4 +1,4 @@
1
- import { Directive, Input } from '@angular/core';
1
+ import { Directive, HostListener, Input } from '@angular/core';
2
2
  import { GradientDirection } from '../styles/index';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "../services/events.service";
@@ -123,8 +123,18 @@ export class ButtonDirectiveDirective {
123
123
  }
124
124
  }
125
125
  }
126
+ onHover() {
127
+ if (this.buttonStyle?.type === 'Solid') {
128
+ this.el.nativeElement.style.setProperty('box-shadow', 'rgba(50, 50, 93, 0.25) 0px 13px 27px -5px, rgba(0, 0, 0, 0.3) 0px 8px 16px -8px');
129
+ this.el.nativeElement.style.setProperty('transform', 'translateY(-3px)');
130
+ }
131
+ }
132
+ onLeave() {
133
+ this.el.nativeElement.style.setProperty('box-shadow', 'none');
134
+ this.el.nativeElement.style.setProperty('transform', 'unset');
135
+ }
126
136
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ButtonDirectiveDirective, deps: [{ token: i0.ElementRef }, { token: i1.EventsService }], target: i0.ɵɵFactoryTarget.Directive }); }
127
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.4", type: ButtonDirectiveDirective, isStandalone: true, selector: "[simpoButtonDirective]", inputs: { buttonStyle: "buttonStyle", color: "color", scrollValue: "scrollValue", backgroundInfo: "backgroundInfo" }, usesOnChanges: true, ngImport: i0 }); }
137
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.4", type: ButtonDirectiveDirective, isStandalone: true, selector: "[simpoButtonDirective]", inputs: { buttonStyle: "buttonStyle", color: "color", scrollValue: "scrollValue", backgroundInfo: "backgroundInfo" }, host: { listeners: { "mouseenter": "onHover()", "mouseleave": "onLeave()" } }, usesOnChanges: true, ngImport: i0 }); }
128
138
  }
129
139
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ButtonDirectiveDirective, decorators: [{
130
140
  type: Directive,
@@ -140,5 +150,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImpor
140
150
  type: Input
141
151
  }], backgroundInfo: [{
142
152
  type: Input
153
+ }], onHover: [{
154
+ type: HostListener,
155
+ args: ['mouseenter']
156
+ }], onLeave: [{
157
+ type: HostListener,
158
+ args: ['mouseleave']
143
159
  }] } });
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLWRpcmVjdGl2ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2RpcmVjdGl2ZS9idXR0b24tZGlyZWN0aXZlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFLdkYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQU1wRCxNQUFNLE9BQU8sd0JBQXdCO0lBTW5DLFlBQW9CLEVBQWMsRUFDeEIsWUFBMkI7UUFEakIsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUN4QixpQkFBWSxHQUFaLFlBQVksQ0FBZTtRQUo1QixnQkFBVyxHQUFZLENBQUMsQ0FBQztRQUtoQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQTtJQUMvQixDQUFDO0lBR0QsV0FBVztRQUNULElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLHVCQUF1QixFQUFFLFdBQVcsRUFBRSxDQUFBO0lBQzdDLENBQUM7SUFFRCx1QkFBdUI7UUFDckIsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDOUQsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzFDLENBQUM7SUFDSCxDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQXVCLEVBQUUsY0FBZ0M7UUFDdkUsSUFBSSxLQUFLLEVBQUUsSUFBSSxLQUFNLE9BQXVCLEVBQUUsQ0FBQztZQUM3QyxJQUFJLGNBQWMsRUFBRSxvQkFBb0IsS0FBTSxVQUE4QixFQUFFLENBQUM7Z0JBQzdFLE1BQU0sU0FBUyxHQUFHLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxpQkFBOEQsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDN0ksTUFBTSxhQUFhLEdBQUcsU0FBUyxJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsbUJBQW1CLFNBQVMsSUFBSSxjQUFjLENBQUMsV0FBVyxJQUFJLGNBQWMsQ0FBQyxvQkFBb0IsR0FBRyxDQUFDLENBQUM7b0JBQ2hLLG1CQUFtQixjQUFjLENBQUMsV0FBVyxJQUFJLGNBQWMsQ0FBQyxvQkFBb0IsR0FBRyxDQUFDO2dCQUMxRixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxhQUFhLENBQUMsQ0FBQztnQkFDckUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLElBQUksU0FBUyxDQUFDLENBQUMsQ0FBQztnQkFDaEcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQzFELE9BQU87WUFDVCxDQUFDO1lBRUQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsY0FBYyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQ25GLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxFQUFFLFdBQVcsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQzlHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLGFBQWEsY0FBYyxFQUFFLFdBQVcsR0FBRyxDQUFDLENBQUM7UUFDakcsQ0FBQzthQUNJLElBQUksS0FBSyxFQUFFLElBQUksS0FBTSxNQUFzQixFQUFFLENBQUM7WUFDakQsSUFBSSxjQUFjLEVBQUUsb0JBQW9CLEtBQU0sVUFBOEIsRUFBRSxDQUFDO2dCQUM3RSxNQUFNLFNBQVMsR0FBRyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsaUJBQThELElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzdJLE1BQU0sYUFBYSxHQUFHLFNBQVMsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixTQUFTLElBQUksY0FBYyxDQUFDLFdBQVcsSUFBSSxjQUFjLENBQUMsb0JBQW9CLEdBQUcsQ0FBQyxDQUFDO29CQUNoSyxtQkFBbUIsY0FBYyxDQUFDLFdBQVcsSUFBSSxjQUFjLENBQUMsb0JBQW9CLEdBQUcsQ0FBQztnQkFDMUYsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLENBQUM7Z0JBQ3JFLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQ25FLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMseUJBQXlCLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQzNFLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQyxDQUFDO2dCQUNoRSxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUM7Z0JBQ3hFLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO29CQUNyQixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUE7b0JBQ3ZFLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQyxDQUFDO29CQUNyRSxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsV0FBVyxDQUFDLENBQUM7Z0JBQ2hGLENBQUM7Z0JBQ0QsT0FBTztZQUNULENBQUM7WUFDRCxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUE7WUFDdkUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLENBQUM7WUFDckUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsY0FBYyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQzlFLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNyQixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUE7Z0JBQ3ZFLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQyxDQUFDO2dCQUNyRSxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFDaEYsQ0FBQztRQUNILENBQUM7YUFDSSxDQUFDO1lBQ0osSUFBSSxjQUFjLEVBQUUsb0JBQW9CLEtBQU0sVUFBOEIsRUFBRSxDQUFDO2dCQUM3RSxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxhQUFhLGNBQWMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO2dCQUM1RixNQUFNLFNBQVMsR0FBRyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsaUJBQThELElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQy9JLE1BQU0sYUFBYSxHQUFHLFNBQVMsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixTQUFTLElBQUksY0FBYyxDQUFDLFdBQVcsSUFBSSxjQUFjLENBQUMsb0JBQW9CLEdBQUcsQ0FBQyxDQUFDO29CQUNoSyxtQkFBbUIsY0FBYyxDQUFDLFdBQVcsSUFBSSxjQUFjLENBQUMsb0JBQW9CLEdBQUcsQ0FBQztnQkFDMUYsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLENBQUM7Z0JBQ3JFLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQ25FLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMseUJBQXlCLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQzNFLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQyxDQUFDO2dCQUNoRSxPQUFPO1lBQ1QsQ0FBQztZQUNELElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLGFBQWEsY0FBYyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7WUFDOUYsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLENBQUM7WUFDckUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsY0FBYyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQzlFLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNyQixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxhQUFhLENBQUMsQ0FBQztnQkFDckUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLEVBQUUsV0FBVyxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUM7Z0JBQzlHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLGFBQWEsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLEVBQUUsV0FBVyxJQUFJLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNqSSxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxLQUF1QjtRQUN0QyxJQUFJLEtBQUssRUFBRSxLQUFLLEtBQU0sT0FBd0IsRUFBRSxDQUFDO1lBQy9DLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsZUFBZSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ25FLENBQUM7YUFBTSxJQUFJLEtBQUssRUFBRSxLQUFLLEtBQU0sT0FBd0IsRUFBRSxDQUFDO1lBQ3RELElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2xFLENBQUM7YUFDSSxDQUFDO1lBQ0osSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDbEUsQ0FBQztJQUNILENBQUM7SUFFRCxZQUFZLENBQUMsT0FBZTtRQUMxQixJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ1osTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDLENBQUMsa0NBQWtDO1lBQ3pELE1BQU0sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM1QyxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDNUMsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzVDLE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUM7WUFFeEQsT0FBTyxVQUFVLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUN4RCxDQUFDO1FBQ0QsT0FBTyxVQUFVLENBQUE7SUFDbkIsQ0FBQztJQUdELHNCQUFzQjtRQUNwQixJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyx1QkFBdUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUM5RixJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNoRSxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPLEVBQUUsS0FBdUIsRUFBRSxjQUErQjtRQUVqRixJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNwQyxJQUFJLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztnQkFDaEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsY0FBYyxDQUFDLENBQUM7WUFDOUMsQ0FBQztZQUNELElBQUksS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDO2dCQUNqQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDL0IsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDOzhHQXZJVSx3QkFBd0I7a0dBQXhCLHdCQUF3Qjs7MkZBQXhCLHdCQUF3QjtrQkFKcEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsd0JBQXdCO29CQUNsQyxVQUFVLEVBQUUsSUFBSTtpQkFDakI7MkdBRVUsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEV2ZW50c1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9ldmVudHMuc2VydmljZSc7XHJcbmltcG9ydCB7IEJhY2tncm91bmRNb2RlbCwgQnV0dG9uU3R5bGVNb2RlbCB9IGZyb20gJy4uL3N0eWxlcy9zdHlsZS5tb2RlbCc7XHJcbmltcG9ydCB7IEJBQ0tHUk9VTkRfVFlQRSwgQlVUVE9OX1NIQVBFLCBCVVRUT05fVFlQRSB9IGZyb20gJy4uL3N0eWxlcy90eXBlcyc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBHcmFkaWVudERpcmVjdGlvbiB9IGZyb20gJy4uL3N0eWxlcy9pbmRleCc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tzaW1wb0J1dHRvbkRpcmVjdGl2ZV0nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIEJ1dHRvbkRpcmVjdGl2ZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCkgYnV0dG9uU3R5bGU/OiBCdXR0b25TdHlsZU1vZGVsO1xyXG4gIEBJbnB1dCgpIGNvbG9yPzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNjcm9sbFZhbHVlPzogbnVtYmVyID0gMDtcclxuICBASW5wdXQoKSBiYWNrZ3JvdW5kSW5mbz86IEJhY2tncm91bmRNb2RlbDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZixcclxuICAgIHByaXZhdGUgZXZlbnRTZXJ2aWNlOiBFdmVudHNTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLmJ1dHRvblN0eWxlQ2hhbmdlQ2hlY2soKVxyXG4gIH1cclxuXHJcblxyXG4gIG5nT25DaGFuZ2VzKCkge1xyXG4gICAgdGhpcy5hcHBseUJ1dHRvblN0eWxlQ2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLmJ1dHRvblN0eWxlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpXHJcbiAgfVxyXG5cclxuICBhcHBseUJ1dHRvblN0eWxlQ2hhbmdlcygpIHtcclxuICAgIGlmICh0aGlzLmJ1dHRvblN0eWxlPy50eXBlKSB7XHJcbiAgICAgIHRoaXMuYXBwbHlCdXR0b25UeXBlKHRoaXMuYnV0dG9uU3R5bGUsIHRoaXMuYmFja2dyb3VuZEluZm8pO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuYnV0dG9uU3R5bGU/LnNoYXBlKSB7XHJcbiAgICAgIHRoaXMuYXBwbHlCdXR0b25TaGFwZSh0aGlzLmJ1dHRvblN0eWxlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFwcGx5QnV0dG9uVHlwZShzdHlsZTogQnV0dG9uU3R5bGVNb2RlbCwgYmFja2dyb3VuZEluZm8/OiBCYWNrZ3JvdW5kTW9kZWwpIHtcclxuICAgIGlmIChzdHlsZT8udHlwZSA9PT0gKCdTb2xpZCcgYXMgQlVUVE9OX1RZUEUpKSB7XHJcbiAgICAgIGlmIChiYWNrZ3JvdW5kSW5mbz8uYWNjZW50QmFja2dyb3VuZFR5cGUgPT09ICgnR3JhZGllbnQnIGFzIEJBQ0tHUk9VTkRfVFlQRSkpIHtcclxuICAgICAgICBjb25zdCBkaXJlY3Rpb24gPSBHcmFkaWVudERpcmVjdGlvbltiYWNrZ3JvdW5kSW5mby5ncmFkaWVudERpcmVjdGlvbiBhcyB1bmtub3duIGFzIGtleW9mIHR5cGVvZiBHcmFkaWVudERpcmVjdGlvbiB8fCBHcmFkaWVudERpcmVjdGlvbi5ET1dOXTtcclxuICAgICAgICBjb25zdCBncmFkaWVudENvbG9yID0gZGlyZWN0aW9uICE9IEdyYWRpZW50RGlyZWN0aW9uLkRPV04gPyBgbGluZWFyLWdyYWRpZW50KCR7ZGlyZWN0aW9ufSwke2JhY2tncm91bmRJbmZvLmFjY2VudENvbG9yfSwke2JhY2tncm91bmRJbmZvLnNlY29uZGFyeUFjY2VudENvbG9yfSlgIDpcclxuICAgICAgICAgIGBsaW5lYXItZ3JhZGllbnQoJHtiYWNrZ3JvdW5kSW5mby5hY2NlbnRDb2xvcn0sJHtiYWNrZ3JvdW5kSW5mby5zZWNvbmRhcnlBY2NlbnRDb2xvcn0pYDtcclxuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ2JhY2tncm91bmQnLCBncmFkaWVudENvbG9yKTtcclxuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ2NvbG9yJywgdGhpcy5nZXRUZXh0Q29sb3IoZ3JhZGllbnRDb2xvciB8fCAnI2ZmZmZmZicpKTtcclxuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ2JvcmRlcicsIGBub25lYCk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ2JhY2tncm91bmQnLCBiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3IpO1xyXG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ2NvbG9yJywgdGhpcy5nZXRUZXh0Q29sb3IoYmFja2dyb3VuZEluZm8/LmFjY2VudENvbG9yIHx8ICcjZmZmZmZmJykpO1xyXG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ2JvcmRlcicsIGAycHggc29saWQgJHtiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3J9IGApO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoc3R5bGU/LnR5cGUgPT09ICgnVGV4dCcgYXMgQlVUVE9OX1RZUEUpKSB7XHJcbiAgICAgIGlmIChiYWNrZ3JvdW5kSW5mbz8uYWNjZW50QmFja2dyb3VuZFR5cGUgPT09ICgnR3JhZGllbnQnIGFzIEJBQ0tHUk9VTkRfVFlQRSkpIHtcclxuICAgICAgICBjb25zdCBkaXJlY3Rpb24gPSBHcmFkaWVudERpcmVjdGlvbltiYWNrZ3JvdW5kSW5mby5ncmFkaWVudERpcmVjdGlvbiBhcyB1bmtub3duIGFzIGtleW9mIHR5cGVvZiBHcmFkaWVudERpcmVjdGlvbiB8fCBHcmFkaWVudERpcmVjdGlvbi5ET1dOXTtcclxuICAgICAgICBjb25zdCBncmFkaWVudENvbG9yID0gZGlyZWN0aW9uICE9IEdyYWRpZW50RGlyZWN0aW9uLkRPV04gPyBgbGluZWFyLWdyYWRpZW50KCR7ZGlyZWN0aW9ufSwke2JhY2tncm91bmRJbmZvLmFjY2VudENvbG9yfSwke2JhY2tncm91bmRJbmZvLnNlY29uZGFyeUFjY2VudENvbG9yfSlgIDpcclxuICAgICAgICAgIGBsaW5lYXItZ3JhZGllbnQoJHtiYWNrZ3JvdW5kSW5mby5hY2NlbnRDb2xvcn0sJHtiYWNrZ3JvdW5kSW5mby5zZWNvbmRhcnlBY2NlbnRDb2xvcn0pYDtcclxuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ2JhY2tncm91bmQnLCBncmFkaWVudENvbG9yKTtcclxuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ2JhY2tncm91bmQtY2xpcCcsICd0ZXh0Jyk7XHJcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctd2Via2l0LWJhY2tncm91bmQtY2xpcCcsICd0ZXh0Jyk7XHJcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCdjb2xvcicsICd0cmFuc3BhcmVudCcpO1xyXG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnYm9yZGVyJywgJ3Vuc2V0JywgJ2ltcG9ydGFudCcpO1xyXG4gICAgICAgIGlmICh0aGlzLnNjcm9sbFZhbHVlKSB7XHJcbiAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ2JvcmRlcicsICd1bnNldCcsICdpbXBvcnRhbnQnKVxyXG4gICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCdiYWNrZ3JvdW5kJywgJ3RyYW5zcGFyZW50Jyk7XHJcbiAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ2NvbG9yJywgYmFja2dyb3VuZEluZm8/LmFjY2VudENvbG9yKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnYm9yZGVyJywgJ3Vuc2V0JywgJ2ltcG9ydGFudCcpXHJcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnYmFja2dyb3VuZCcsICd0cmFuc3BhcmVudCcpO1xyXG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ2NvbG9yJywgYmFja2dyb3VuZEluZm8/LmFjY2VudENvbG9yKTtcclxuICAgICAgaWYgKHRoaXMuc2Nyb2xsVmFsdWUpIHtcclxuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ2JvcmRlcicsICd1bnNldCcsICdpbXBvcnRhbnQnKVxyXG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnYmFja2dyb3VuZCcsICd0cmFuc3BhcmVudCcpO1xyXG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnY29sb3InLCBiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3IpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgaWYgKGJhY2tncm91bmRJbmZvPy5hY2NlbnRCYWNrZ3JvdW5kVHlwZSA9PT0gKCdHcmFkaWVudCcgYXMgQkFDS0dST1VORF9UWVBFKSkge1xyXG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnYm9yZGVyJywgYDJweCBzb2xpZCAke2JhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvcn1gKTtcclxuICAgICAgICAgIGNvbnN0IGRpcmVjdGlvbiA9IEdyYWRpZW50RGlyZWN0aW9uW2JhY2tncm91bmRJbmZvLmdyYWRpZW50RGlyZWN0aW9uIGFzIHVua25vd24gYXMga2V5b2YgdHlwZW9mIEdyYWRpZW50RGlyZWN0aW9uIHx8IEdyYWRpZW50RGlyZWN0aW9uLkRPV05dO1xyXG4gICAgICAgIGNvbnN0IGdyYWRpZW50Q29sb3IgPSBkaXJlY3Rpb24gIT0gR3JhZGllbnREaXJlY3Rpb24uRE9XTiA/IGBsaW5lYXItZ3JhZGllbnQoJHtkaXJlY3Rpb259LCR7YmFja2dyb3VuZEluZm8uYWNjZW50Q29sb3J9LCR7YmFja2dyb3VuZEluZm8uc2Vjb25kYXJ5QWNjZW50Q29sb3J9KWAgOlxyXG4gICAgICAgICAgYGxpbmVhci1ncmFkaWVudCgke2JhY2tncm91bmRJbmZvLmFjY2VudENvbG9yfSwke2JhY2tncm91bmRJbmZvLnNlY29uZGFyeUFjY2VudENvbG9yfSlgO1xyXG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnYmFja2dyb3VuZCcsIGdyYWRpZW50Q29sb3IpO1xyXG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnYmFja2dyb3VuZC1jbGlwJywgJ3RleHQnKTtcclxuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJy13ZWJraXQtYmFja2dyb3VuZC1jbGlwJywgJ3RleHQnKTtcclxuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ2NvbG9yJywgJ3RyYW5zcGFyZW50Jyk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnYm9yZGVyJywgYDJweCBzb2xpZCAke2JhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvcn1gKTtcclxuICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCdiYWNrZ3JvdW5kJywgJ3RyYW5zcGFyZW50Jyk7XHJcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnY29sb3InLCBiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3IpO1xyXG4gICAgICBpZiAodGhpcy5zY3JvbGxWYWx1ZSkge1xyXG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnYmFja2dyb3VuZCcsIFwidHJhbnNwYXJlbnRcIik7XHJcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCdjb2xvcicsIHRoaXMuZ2V0VGV4dENvbG9yKGJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvciB8fCAnI2ZmZmZmZicpKTtcclxuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ2JvcmRlcicsIGAycHggc29saWQgJHt0aGlzLmdldFRleHRDb2xvcihiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3IgfHwgJyNmZmZmZmYnKX0gYCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFwcGx5QnV0dG9uU2hhcGUoc3R5bGU6IEJ1dHRvblN0eWxlTW9kZWwpIHtcclxuICAgIGlmIChzdHlsZT8uc2hhcGUgPT09ICgnUm91bmQnIGFzIEJVVFRPTl9TSEFQRSkpIHtcclxuICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCdib3JkZXItcmFkaXVzJywgJzk5cHgnKTtcclxuICAgIH0gZWxzZSBpZiAoc3R5bGU/LnNoYXBlID09PSAoJ0N1cnZlJyBhcyBCVVRUT05fU0hBUEUpKSB7XHJcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnYm9yZGVyLXJhZGl1cycsICc3cHgnKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ2JvcmRlci1yYWRpdXMnLCAnMHB4Jyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRUZXh0Q29sb3IoYmdDb2xvcjogc3RyaW5nKSB7XHJcbiAgICBpZiAoYmdDb2xvcikge1xyXG4gICAgICBjb25zdCB0aHJlc2hvbGQgPSAxMzA7IC8vIEFkanVzdCB0aGlzIHRocmVzaG9sZCBhcyBuZWVkZWRcclxuICAgICAgY29uc3QgciA9IHBhcnNlSW50KGJnQ29sb3Iuc2xpY2UoMSwgMyksIDE2KTtcclxuICAgICAgY29uc3QgZyA9IHBhcnNlSW50KGJnQ29sb3Iuc2xpY2UoMywgNSksIDE2KTtcclxuICAgICAgY29uc3QgYiA9IHBhcnNlSW50KGJnQ29sb3Iuc2xpY2UoNSwgNyksIDE2KTtcclxuICAgICAgY29uc3QgYnJpZ2h0bmVzcyA9IChyICogMjk5ICsgZyAqIDU4NyArIGIgKiAxMTQpIC8gMTAwMDtcclxuXHJcbiAgICAgIHJldHVybiBicmlnaHRuZXNzID4gdGhyZXNob2xkID8gJyMwMDAwMDAnIDogJyNmZmZmZmYnO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIFwiI2ZmZmZmZjtcIlxyXG4gIH1cclxuXHJcbiAgYnV0dG9uU3R5bGVTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XHJcbiAgYnV0dG9uU3R5bGVDaGFuZ2VDaGVjaygpIHtcclxuICAgIHRoaXMuYnV0dG9uU3R5bGVTdWJzY3JpcHRpb24gPSB0aGlzLmV2ZW50U2VydmljZS5idXR0b25TdHlsZUNoYW5nZUNoZWNrcy5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMuY2hhbmdlQnV0dG9uU3R5bGUocmVzLmlkLCByZXMuc3R5bGUsIHJlcy5iYWNrZ3JvdW5kSW5mbyk7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgY2hhbmdlQnV0dG9uU3R5bGUoaWQ6IGFueSwgc3R5bGU6IEJ1dHRvblN0eWxlTW9kZWwsIGJhY2tncm91bmRJbmZvOiBCYWNrZ3JvdW5kTW9kZWwpIHtcclxuXHJcbiAgICBpZiAodGhpcy5lbC5uYXRpdmVFbGVtZW50LmlkID09PSBpZCkge1xyXG4gICAgICBpZiAoc3R5bGU/LnR5cGUpIHtcclxuICAgICAgICB0aGlzLmFwcGx5QnV0dG9uVHlwZShzdHlsZSwgYmFja2dyb3VuZEluZm8pO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChzdHlsZT8uc2hhcGUpIHtcclxuICAgICAgICB0aGlzLmFwcGx5QnV0dG9uU2hhcGUoc3R5bGUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLWRpcmVjdGl2ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2RpcmVjdGl2ZS9idXR0b24tZGlyZWN0aXZlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQTRCLE1BQU0sZUFBZSxDQUFDO0FBS3JHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFNcEQsTUFBTSxPQUFPLHdCQUF3QjtJQU1uQyxZQUFvQixFQUFjLEVBQ3hCLFlBQTJCO1FBRGpCLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDeEIsaUJBQVksR0FBWixZQUFZLENBQWU7UUFKNUIsZ0JBQVcsR0FBWSxDQUFDLENBQUM7UUFLaEMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUE7SUFDL0IsQ0FBQztJQUdELFdBQVc7UUFDVCxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyx1QkFBdUIsRUFBRSxXQUFXLEVBQUUsQ0FBQTtJQUM3QyxDQUFDO0lBRUQsdUJBQXVCO1FBQ3JCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzlELENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMxQyxDQUFDO0lBQ0gsQ0FBQztJQUNELGVBQWUsQ0FBQyxLQUF1QixFQUFFLGNBQWdDO1FBQ3ZFLElBQUksS0FBSyxFQUFFLElB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SztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBbUlzQixPQUFPO3NCQUFsQyxZQUFZO3VCQUFDLFlBQVk7Z0JBT0UsT0FBTztzQkFBbEMsWUFBWTt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRXZlbnRzU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2V2ZW50cy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQmFja2dyb3VuZE1vZGVsLCBCdXR0b25TdHlsZU1vZGVsIH0gZnJvbSAnLi4vc3R5bGVzL3N0eWxlLm1vZGVsJztcclxuaW1wb3J0IHsgQkFDS0dST1VORF9UWVBFLCBCVVRUT05fU0hBUEUsIEJVVFRPTl9UWVBFIH0gZnJvbSAnLi4vc3R5bGVzL3R5cGVzJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEdyYWRpZW50RGlyZWN0aW9uIH0gZnJvbSAnLi4vc3R5bGVzL2luZGV4JztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW3NpbXBvQnV0dG9uRGlyZWN0aXZlXScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQnV0dG9uRGlyZWN0aXZlRGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoKSBidXR0b25TdHlsZT86IEJ1dHRvblN0eWxlTW9kZWw7XHJcbiAgQElucHV0KCkgY29sb3I/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc2Nyb2xsVmFsdWU/OiBudW1iZXIgPSAwO1xyXG4gIEBJbnB1dCgpIGJhY2tncm91bmRJbmZvPzogQmFja2dyb3VuZE1vZGVsO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSBldmVudFNlcnZpY2U6IEV2ZW50c1NlcnZpY2UpIHtcclxuICAgIHRoaXMuYnV0dG9uU3R5bGVDaGFuZ2VDaGVjaygpXHJcbiAgfVxyXG5cclxuXHJcbiAgbmdPbkNoYW5nZXMoKSB7XHJcbiAgICB0aGlzLmFwcGx5QnV0dG9uU3R5bGVDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuYnV0dG9uU3R5bGVTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKClcclxuICB9XHJcblxyXG4gIGFwcGx5QnV0dG9uU3R5bGVDaGFuZ2VzKCkge1xyXG4gICAgaWYgKHRoaXMuYnV0dG9uU3R5bGU/LnR5cGUpIHtcclxuICAgICAgdGhpcy5hcHBseUJ1dHRvblR5cGUodGhpcy5idXR0b25TdHlsZSwgdGhpcy5iYWNrZ3JvdW5kSW5mbyk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5idXR0b25TdHlsZT8uc2hhcGUpIHtcclxuICAgICAgdGhpcy5hcHBseUJ1dHRvblNoYXBlKHRoaXMuYnV0dG9uU3R5bGUpO1xyXG4gICAgfVxyXG4gIH1cclxuICBhcHBseUJ1dHRvblR5cGUoc3R5bGU6IEJ1dHRvblN0eWxlTW9kZWwsIGJhY2tncm91bmRJbmZvPzogQmFja2dyb3VuZE1vZGVsKSB7XHJcbiAgICBpZiAoc3R5bGU/LnR5cGUgPT09ICgnU29saWQnIGFzIEJVVFRPTl9UWVBFKSkge1xyXG4gICAgICBpZiAoYmFja2dyb3VuZEluZm8/LmFjY2VudEJhY2tncm91bmRUeXBlID09PSAoJ0dyYWRpZW50JyBhcyBCQUNLR1JPVU5EX1RZUEUpKSB7XHJcbiAgICAgICAgY29uc3QgZGlyZWN0aW9uID0gR3JhZGllbnREaXJlY3Rpb25bYmFja2dyb3VuZEluZm8uZ3JhZGllbnREaXJlY3Rpb24gYXMgdW5rbm93biBhcyBrZXlvZiB0eXBlb2YgR3JhZGllbnREaXJlY3Rpb24gfHwgR3JhZGllbnREaXJlY3Rpb24uRE9XTl07XHJcbiAgICAgICAgY29uc3QgZ3JhZGllbnRDb2xvciA9IGRpcmVjdGlvbiAhPSBHcmFkaWVudERpcmVjdGlvbi5ET1dOID8gYGxpbmVhci1ncmFkaWVudCgke2RpcmVjdGlvbn0sJHtiYWNrZ3JvdW5kSW5mby5hY2NlbnRDb2xvcn0sJHtiYWNrZ3JvdW5kSW5mby5zZWNvbmRhcnlBY2NlbnRDb2xvcn0pYCA6XHJcbiAgICAgICAgICBgbGluZWFyLWdyYWRpZW50KCR7YmFja2dyb3VuZEluZm8uYWNjZW50Q29sb3J9LCR7YmFja2dyb3VuZEluZm8uc2Vjb25kYXJ5QWNjZW50Q29sb3J9KWA7XHJcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCdiYWNrZ3JvdW5kJywgZ3JhZGllbnRDb2xvcik7XHJcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCdjb2xvcicsIHRoaXMuZ2V0VGV4dENvbG9yKGdyYWRpZW50Q29sb3IgfHwgJyNmZmZmZmYnKSk7XHJcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCdib3JkZXInLCBgbm9uZWApO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCdiYWNrZ3JvdW5kJywgYmFja2dyb3VuZEluZm8/LmFjY2VudENvbG9yKTtcclxuICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCdjb2xvcicsIHRoaXMuZ2V0VGV4dENvbG9yKGJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvciB8fCAnI2ZmZmZmZicpKTtcclxuICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCdib3JkZXInLCBgMnB4IHNvbGlkICR7YmFja2dyb3VuZEluZm8/LmFjY2VudENvbG9yfSBgKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHN0eWxlPy50eXBlID09PSAoJ1RleHQnIGFzIEJVVFRPTl9UWVBFKSkge1xyXG4gICAgICBpZiAoYmFja2dyb3VuZEluZm8/LmFjY2VudEJhY2tncm91bmRUeXBlID09PSAoJ0dyYWRpZW50JyBhcyBCQUNLR1JPVU5EX1RZUEUpKSB7XHJcbiAgICAgICAgY29uc3QgZGlyZWN0aW9uID0gR3JhZGllbnREaXJlY3Rpb25bYmFja2dyb3VuZEluZm8uZ3JhZGllbnREaXJlY3Rpb24gYXMgdW5rbm93biBhcyBrZXlvZiB0eXBlb2YgR3JhZGllbnREaXJlY3Rpb24gfHwgR3JhZGllbnREaXJlY3Rpb24uRE9XTl07XHJcbiAgICAgICAgY29uc3QgZ3JhZGllbnRDb2xvciA9IGRpcmVjdGlvbiAhPSBHcmFkaWVudERpcmVjdGlvbi5ET1dOID8gYGxpbmVhci1ncmFkaWVudCgke2RpcmVjdGlvbn0sJHtiYWNrZ3JvdW5kSW5mby5hY2NlbnRDb2xvcn0sJHtiYWNrZ3JvdW5kSW5mby5zZWNvbmRhcnlBY2NlbnRDb2xvcn0pYCA6XHJcbiAgICAgICAgICBgbGluZWFyLWdyYWRpZW50KCR7YmFja2dyb3VuZEluZm8uYWNjZW50Q29sb3J9LCR7YmFja2dyb3VuZEluZm8uc2Vjb25kYXJ5QWNjZW50Q29sb3J9KWA7XHJcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCdiYWNrZ3JvdW5kJywgZ3JhZGllbnRDb2xvcik7XHJcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCdiYWNrZ3JvdW5kLWNsaXAnLCAndGV4dCcpO1xyXG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXAnLCAndGV4dCcpO1xyXG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnY29sb3InLCAndHJhbnNwYXJlbnQnKTtcclxuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ2JvcmRlcicsICd1bnNldCcsICdpbXBvcnRhbnQnKTtcclxuICAgICAgICBpZiAodGhpcy5zY3JvbGxWYWx1ZSkge1xyXG4gICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCdib3JkZXInLCAndW5zZXQnLCAnaW1wb3J0YW50JylcclxuICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnYmFja2dyb3VuZCcsICd0cmFuc3BhcmVudCcpO1xyXG4gICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCdjb2xvcicsIGJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ2JvcmRlcicsICd1bnNldCcsICdpbXBvcnRhbnQnKVxyXG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ2JhY2tncm91bmQnLCAndHJhbnNwYXJlbnQnKTtcclxuICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCdjb2xvcicsIGJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvcik7XHJcbiAgICAgIGlmICh0aGlzLnNjcm9sbFZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCdib3JkZXInLCAndW5zZXQnLCAnaW1wb3J0YW50JylcclxuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ2JhY2tncm91bmQnLCAndHJhbnNwYXJlbnQnKTtcclxuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ2NvbG9yJywgYmFja2dyb3VuZEluZm8/LmFjY2VudENvbG9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGlmIChiYWNrZ3JvdW5kSW5mbz8uYWNjZW50QmFja2dyb3VuZFR5cGUgPT09ICgnR3JhZGllbnQnIGFzIEJBQ0tHUk9VTkRfVFlQRSkpIHtcclxuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ2JvcmRlcicsIGAycHggc29saWQgJHtiYWNrZ3JvdW5kSW5mbz8uYWNjZW50Q29sb3J9YCk7XHJcbiAgICAgICAgY29uc3QgZGlyZWN0aW9uID0gR3JhZGllbnREaXJlY3Rpb25bYmFja2dyb3VuZEluZm8uZ3JhZGllbnREaXJlY3Rpb24gYXMgdW5rbm93biBhcyBrZXlvZiB0eXBlb2YgR3JhZGllbnREaXJlY3Rpb24gfHwgR3JhZGllbnREaXJlY3Rpb24uRE9XTl07XHJcbiAgICAgICAgY29uc3QgZ3JhZGllbnRDb2xvciA9IGRpcmVjdGlvbiAhPSBHcmFkaWVudERpcmVjdGlvbi5ET1dOID8gYGxpbmVhci1ncmFkaWVudCgke2RpcmVjdGlvbn0sJHtiYWNrZ3JvdW5kSW5mby5hY2NlbnRDb2xvcn0sJHtiYWNrZ3JvdW5kSW5mby5zZWNvbmRhcnlBY2NlbnRDb2xvcn0pYCA6XHJcbiAgICAgICAgICBgbGluZWFyLWdyYWRpZW50KCR7YmFja2dyb3VuZEluZm8uYWNjZW50Q29sb3J9LCR7YmFja2dyb3VuZEluZm8uc2Vjb25kYXJ5QWNjZW50Q29sb3J9KWA7XHJcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCdiYWNrZ3JvdW5kJywgZ3JhZGllbnRDb2xvcik7XHJcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCdiYWNrZ3JvdW5kLWNsaXAnLCAndGV4dCcpO1xyXG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXAnLCAndGV4dCcpO1xyXG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnY29sb3InLCAndHJhbnNwYXJlbnQnKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCdib3JkZXInLCBgMnB4IHNvbGlkICR7YmFja2dyb3VuZEluZm8/LmFjY2VudENvbG9yfWApO1xyXG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ2JhY2tncm91bmQnLCAndHJhbnNwYXJlbnQnKTtcclxuICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCdjb2xvcicsIGJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvcik7XHJcbiAgICAgIGlmICh0aGlzLnNjcm9sbFZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCdiYWNrZ3JvdW5kJywgXCJ0cmFuc3BhcmVudFwiKTtcclxuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ2NvbG9yJywgdGhpcy5nZXRUZXh0Q29sb3IoYmFja2dyb3VuZEluZm8/LmFjY2VudENvbG9yIHx8ICcjZmZmZmZmJykpO1xyXG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnYm9yZGVyJywgYDJweCBzb2xpZCAke3RoaXMuZ2V0VGV4dENvbG9yKGJhY2tncm91bmRJbmZvPy5hY2NlbnRDb2xvciB8fCAnI2ZmZmZmZicpfSBgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYXBwbHlCdXR0b25TaGFwZShzdHlsZTogQnV0dG9uU3R5bGVNb2RlbCkge1xyXG4gICAgaWYgKHN0eWxlPy5zaGFwZSA9PT0gKCdSb3VuZCcgYXMgQlVUVE9OX1NIQVBFKSkge1xyXG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ2JvcmRlci1yYWRpdXMnLCAnOTlweCcpO1xyXG4gICAgfSBlbHNlIGlmIChzdHlsZT8uc2hhcGUgPT09ICgnQ3VydmUnIGFzIEJVVFRPTl9TSEFQRSkpIHtcclxuICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCdib3JkZXItcmFkaXVzJywgJzdweCcpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnYm9yZGVyLXJhZGl1cycsICcwcHgnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFRleHRDb2xvcihiZ0NvbG9yOiBzdHJpbmcpIHtcclxuICAgIGlmIChiZ0NvbG9yKSB7XHJcbiAgICAgIGNvbnN0IHRocmVzaG9sZCA9IDEzMDsgLy8gQWRqdXN0IHRoaXMgdGhyZXNob2xkIGFzIG5lZWRlZFxyXG4gICAgICBjb25zdCByID0gcGFyc2VJbnQoYmdDb2xvci5zbGljZSgxLCAzKSwgMTYpO1xyXG4gICAgICBjb25zdCBnID0gcGFyc2VJbnQoYmdDb2xvci5zbGljZSgzLCA1KSwgMTYpO1xyXG4gICAgICBjb25zdCBiID0gcGFyc2VJbnQoYmdDb2xvci5zbGljZSg1LCA3KSwgMTYpO1xyXG4gICAgICBjb25zdCBicmlnaHRuZXNzID0gKHIgKiAyOTkgKyBnICogNTg3ICsgYiAqIDExNCkgLyAxMDAwO1xyXG5cclxuICAgICAgcmV0dXJuIGJyaWdodG5lc3MgPiB0aHJlc2hvbGQgPyAnIzAwMDAwMCcgOiAnI2ZmZmZmZic7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gXCIjZmZmZmZmO1wiXHJcbiAgfVxyXG5cclxuICBidXR0b25TdHlsZVN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcclxuICBidXR0b25TdHlsZUNoYW5nZUNoZWNrKCkge1xyXG4gICAgdGhpcy5idXR0b25TdHlsZVN1YnNjcmlwdGlvbiA9IHRoaXMuZXZlbnRTZXJ2aWNlLmJ1dHRvblN0eWxlQ2hhbmdlQ2hlY2tzLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgdGhpcy5jaGFuZ2VCdXR0b25TdHlsZShyZXMuaWQsIHJlcy5zdHlsZSwgcmVzLmJhY2tncm91bmRJbmZvKTtcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBjaGFuZ2VCdXR0b25TdHlsZShpZDogYW55LCBzdHlsZTogQnV0dG9uU3R5bGVNb2RlbCwgYmFja2dyb3VuZEluZm86IEJhY2tncm91bmRNb2RlbCkge1xyXG5cclxuICAgIGlmICh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuaWQgPT09IGlkKSB7XHJcbiAgICAgIGlmIChzdHlsZT8udHlwZSkge1xyXG4gICAgICAgIHRoaXMuYXBwbHlCdXR0b25UeXBlKHN0eWxlLCBiYWNrZ3JvdW5kSW5mbyk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHN0eWxlPy5zaGFwZSkge1xyXG4gICAgICAgIHRoaXMuYXBwbHlCdXR0b25TaGFwZShzdHlsZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgQEhvc3RMaXN0ZW5lcignbW91c2VlbnRlcicpIG9uSG92ZXIoKSB7XHJcbiAgICBpZiAodGhpcy5idXR0b25TdHlsZT8udHlwZSA9PT0gKCdTb2xpZCcgYXMgQlVUVE9OX1RZUEUpKSB7XHJcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnYm94LXNoYWRvdycsICdyZ2JhKDUwLCA1MCwgOTMsIDAuMjUpIDBweCAxM3B4IDI3cHggLTVweCwgcmdiYSgwLCAwLCAwLCAwLjMpIDBweCA4cHggMTZweCAtOHB4Jyk7XHJcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgndHJhbnNmb3JtJywgJ3RyYW5zbGF0ZVkoLTNweCknKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlbGVhdmUnKSBvbkxlYXZlKCkge1xyXG4gICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCdib3gtc2hhZG93JywgJ25vbmUnKTtcclxuICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgndHJhbnNmb3JtJywgJ3Vuc2V0Jyk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,29 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import { fitContent, fitScreen } from '../styles/index';
3
+ import * as i0 from "@angular/core";
4
+ export class HeightDirective {
5
+ constructor(el) {
6
+ this.el = el;
7
+ }
8
+ ngOnChanges() {
9
+ if (this.fit === 'content') {
10
+ fitContent(this.el.nativeElement);
11
+ }
12
+ else if (this.fit === 'screen') {
13
+ fitScreen(this.el.nativeElement);
14
+ }
15
+ }
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: HeightDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
17
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.4", type: HeightDirective, isStandalone: true, selector: "[simpoHeight]", inputs: { fit: ["simpoHeight", "fit"] }, usesOnChanges: true, ngImport: i0 }); }
18
+ }
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: HeightDirective, decorators: [{
20
+ type: Directive,
21
+ args: [{
22
+ selector: '[simpoHeight]',
23
+ standalone: true,
24
+ }]
25
+ }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { fit: [{
26
+ type: Input,
27
+ args: ['simpoHeight']
28
+ }] } });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVpZ2h0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvZGlyZWN0aXZlL2hlaWdodC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRWhGLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBTXhELE1BQU0sT0FBTyxlQUFlO0lBRzFCLFlBQW9CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO0lBQUcsQ0FBQztJQUV0QyxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsR0FBRyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzNCLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3BDLENBQUM7YUFBTSxJQUFHLElBQUksQ0FBQyxHQUFHLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDaEMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDbkMsQ0FBQztJQUNILENBQUM7OEdBWFUsZUFBZTtrR0FBZixlQUFlOzsyRkFBZixlQUFlO2tCQUozQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO29CQUN6QixVQUFVLEVBQUUsSUFBSTtpQkFDakI7K0VBRXVCLEdBQUc7c0JBQXhCLEtBQUs7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7ICBGSVQgfSBmcm9tICcuLi9zdHlsZXMvdHlwZXMnO1xyXG5pbXBvcnQgeyBmaXRDb250ZW50LCBmaXRTY3JlZW4gfSBmcm9tICcuLi9zdHlsZXMvaW5kZXgnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbc2ltcG9IZWlnaHRdJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSGVpZ2h0RGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoJ3NpbXBvSGVpZ2h0JykgZml0PzogRklUO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmKSB7fVxyXG5cclxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmZpdCA9PT0gJ2NvbnRlbnQnKSB7XHJcbiAgICAgIGZpdENvbnRlbnQodGhpcy5lbC5uYXRpdmVFbGVtZW50KTtcclxuICAgIH0gZWxzZSBpZih0aGlzLmZpdCA9PT0gJ3NjcmVlbicpIHtcclxuICAgICAgZml0U2NyZWVuKHRoaXMuZWwubmF0aXZlRWxlbWVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
@@ -3,10 +3,14 @@ import { ImageEditorComponent } from '../elements/image-editor/image-editor.comp
3
3
  import { debounceTime, fromEvent, filter } from 'rxjs';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "@angular/material/dialog";
6
+ import * as i2 from "../services/events.service";
7
+ import * as i3 from "@angular/router";
6
8
  export class ImageEditorDirective {
7
- constructor(el, matDialog) {
9
+ constructor(el, matDialog, _eventService, router) {
8
10
  this.el = el;
9
11
  this.matDialog = matDialog;
12
+ this._eventService = _eventService;
13
+ this.router = router;
10
14
  this.appImageEditor = false;
11
15
  this.HIGHLIGHT_BORDER = '3px solid #283E90';
12
16
  }
@@ -14,6 +18,9 @@ export class ImageEditorDirective {
14
18
  if (this.appImageEditor) {
15
19
  this.setupEventListeners();
16
20
  }
21
+ else {
22
+ this.redirectTo();
23
+ }
17
24
  }
18
25
  ngOnChanges() {
19
26
  this.cleanup();
@@ -68,7 +75,17 @@ export class ImageEditorDirective {
68
75
  ngOnDestroy() {
69
76
  this.cleanup();
70
77
  }
71
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ImageEditorDirective, deps: [{ token: i0.ElementRef }, { token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Directive }); }
78
+ redirectTo() {
79
+ this.el.nativeElement.style.cursor = 'pointer';
80
+ if (!this.imageData?.content?.redirectionUrl)
81
+ return;
82
+ this.clickSub = fromEvent(this.el.nativeElement, 'click')
83
+ .pipe(debounceTime(100))
84
+ .subscribe(() => {
85
+ this._eventService.buttonRedirection.emit({ data: this.imageData?.content });
86
+ });
87
+ }
88
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ImageEditorDirective, deps: [{ token: i0.ElementRef }, { token: i1.MatDialog }, { token: i2.EventsService }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Directive }); }
72
89
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.4", type: ImageEditorDirective, isStandalone: true, selector: "img[appImageEditor]", inputs: { appImageEditor: "appImageEditor", imageData: "imageData", sectionId: "sectionId" }, usesOnChanges: true, ngImport: i0 }); }
73
90
  }
74
91
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: ImageEditorDirective, decorators: [{
@@ -77,11 +94,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImpor
77
94
  selector: 'img[appImageEditor]',
78
95
  standalone: true
79
96
  }]
80
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.MatDialog }], propDecorators: { appImageEditor: [{
97
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.MatDialog }, { type: i2.EventsService }, { type: i3.Router }], propDecorators: { appImageEditor: [{
81
98
  type: Input
82
99
  }], imageData: [{
83
100
  type: Input
84
101
  }], sectionId: [{
85
102
  type: Input
86
103
  }] } });
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvZGlyZWN0aXZlL2ltYWdlLWVkaXRvci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBaUMsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2hGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFnQixNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7OztBQU1yRSxNQUFNLE9BQU8sb0JBQW9CO0lBVS9CLFlBQW9CLEVBQWMsRUFBVSxTQUFvQjtRQUE1QyxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQVUsY0FBUyxHQUFULFNBQVMsQ0FBVztRQVR2RCxtQkFBYyxHQUFZLEtBQUssQ0FBQztRQU94QixxQkFBZ0IsR0FBRyxtQkFBbUIsQ0FBQztJQUVZLENBQUM7SUFFckUsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzdCLENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNmLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzdCLENBQUM7SUFDSCxDQUFDO0lBRU8sbUJBQW1CO1FBQ3pCLElBQUksQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQzthQUNoRSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3ZCLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJ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IE9uRGVzdHJveSwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSW1hZ2UgfSBmcm9tICcuLi9zdHlsZXMvc3R5bGUubW9kZWwnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBJbWFnZUVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4uL2VsZW1lbnRzL2ltYWdlLWVkaXRvci9pbWFnZS1lZGl0b3IuY29tcG9uZW50JztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmcm9tRXZlbnQsIFN1YnNjcmlwdGlvbiwgZmlsdGVyIH0gZnJvbSAncnhqcyc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ2ltZ1thcHBJbWFnZUVkaXRvcl0nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIEltYWdlRWRpdG9yRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBJbnB1dCgpIGFwcEltYWdlRWRpdG9yOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgaW1hZ2VEYXRhPzogSW1hZ2U7XHJcbiAgQElucHV0KCkgc2VjdGlvbklkPzogc3RyaW5nO1xyXG5cclxuICBwcml2YXRlIG1vdXNlRW50ZXJTdWI/OiBTdWJzY3JpcHRpb247XHJcbiAgcHJpdmF0ZSBtb3VzZUxlYXZlU3ViPzogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgY2xpY2tTdWI/OiBTdWJzY3JpcHRpb247XHJcbiAgcHJpdmF0ZSByZWFkb25seSBISUdITElHSFRfQk9SREVSID0gJzNweCBzb2xpZCAjMjgzRTkwJztcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZiwgcHJpdmF0ZSBtYXREaWFsb2c6IE1hdERpYWxvZykgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKHRoaXMuYXBwSW1hZ2VFZGl0b3IpIHtcclxuICAgICAgdGhpcy5zZXR1cEV2ZW50TGlzdGVuZXJzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcygpIHtcclxuICAgIHRoaXMuY2xlYW51cCgpO1xyXG4gICAgaWYgKHRoaXMuYXBwSW1hZ2VFZGl0b3IpIHtcclxuICAgICAgdGhpcy5zZXR1cEV2ZW50TGlzdGVuZXJzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldHVwRXZlbnRMaXN0ZW5lcnMoKSB7XHJcbiAgICB0aGlzLm1vdXNlRW50ZXJTdWIgPSBmcm9tRXZlbnQodGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnbW91c2VlbnRlcicpXHJcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSgxMDApKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuYm94U2l6aW5nID0gJ2JvcmRlci1ib3gnO1xyXG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5vdXRsaW5lID0gdGhpcy5ISUdITElHSFRfQk9SREVSO1xyXG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5jdXJzb3IgPSAncG9pbnRlcic7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHRoaXMubW91c2VMZWF2ZVN1YiA9IGZyb21FdmVudCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICdtb3VzZWxlYXZlJylcclxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDEwMCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5ib3JkZXIgPSAnJztcclxuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUub3V0bGluZSA9ICcnO1xyXG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5ib3JkZXJDb2xvciA9ICd0cmFuc3BhcmVudCc7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHRoaXMuY2xpY2tTdWIgPSBmcm9tRXZlbnQodGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnY2xpY2snKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBmaWx0ZXIoKCkgPT4gIXRoaXMubWF0RGlhbG9nLm9wZW5EaWFsb2dzLmxlbmd0aClcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLm1hdERpYWxvZy5vcGVuKEltYWdlRWRpdG9yQ29tcG9uZW50LCB7XHJcbiAgICAgICAgICBwYW5lbENsYXNzOiAnbGluay1lZGl0b3InLFxyXG4gICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICBpbWFnZURhdGE6IHRoaXMuaW1hZ2VEYXRhLFxyXG4gICAgICAgICAgICBzZWN0aW9uSWQ6IHRoaXMuc2VjdGlvbklkXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjbGVhbnVwKCkge1xyXG4gICAgaWYgKHRoaXMubW91c2VFbnRlclN1Yikge1xyXG4gICAgICB0aGlzLm1vdXNlRW50ZXJTdWIudW5zdWJzY3JpYmUoKTtcclxuICAgICAgdGhpcy5tb3VzZUVudGVyU3ViID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLm1vdXNlTGVhdmVTdWIpIHtcclxuICAgICAgdGhpcy5tb3VzZUxlYXZlU3ViLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgIHRoaXMubW91c2VMZWF2ZVN1YiA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5jbGlja1N1Yikge1xyXG4gICAgICB0aGlzLmNsaWNrU3ViLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgIHRoaXMuY2xpY2tTdWIgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gUmVzZXQgc3R5bGVzIHdoZW4gY2xlYW5pbmcgdXBcclxuICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5ib3JkZXIgPSAnJztcclxuICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5jdXJzb3IgPSAnJztcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5jbGVhbnVwKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvZGlyZWN0aXZlL2ltYWdlLWVkaXRvci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBaUMsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2hGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFnQixNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7O0FBUXJFLE1BQU0sT0FBTyxvQkFBb0I7SUFVL0IsWUFBb0IsRUFBYyxFQUFVLFNBQW9CLEVBQVUsYUFBNEIsRUFBVSxNQUFjO1FBQTFHLE9BQUUsR0FBRixFQUFFLENBQVk7UUFBVSxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQVUsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBVHJILG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBT3hCLHFCQUFnQixHQUFHLG1CQUFtQixDQUFDO0lBRTBFLENBQUM7SUFFbkksUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzdCLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3BCLENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNmLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzdCLENBQUM7SUFDSCxDQUFDO0lBRU8sbUJBQW1CO1FBQ3pCLElBQUksQ0FBQyxhQUFhLEdBQUcs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LEVBQUUsY0FBYztZQUMxQyxPQUFPO1FBQ1QsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDO2FBQ3RELElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDdkIsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUMvRSxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBNUZVLG9CQUFvQjtrR0FBcEIsb0JBQW9COzsyRkFBcEIsb0JBQW9CO2tCQUpoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjt3SkFFVSxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgT25Jbml0LCBPbkRlc3Ryb3ksIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEltYWdlIH0gZnJvbSAnLi4vc3R5bGVzL3N0eWxlLm1vZGVsJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgSW1hZ2VFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuLi9lbGVtZW50cy9pbWFnZS1lZGl0b3IvaW1hZ2UtZWRpdG9yLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZnJvbUV2ZW50LCBTdWJzY3JpcHRpb24sIGZpbHRlciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBFdmVudHNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZXZlbnRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdpbWdbYXBwSW1hZ2VFZGl0b3JdJyxcclxuICBzdGFuZGFsb25lOiB0cnVlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbWFnZUVkaXRvckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBASW5wdXQoKSBhcHBJbWFnZUVkaXRvcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGltYWdlRGF0YT86IEltYWdlO1xyXG4gIEBJbnB1dCgpIHNlY3Rpb25JZD86IHN0cmluZztcclxuXHJcbiAgcHJpdmF0ZSBtb3VzZUVudGVyU3ViPzogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgbW91c2VMZWF2ZVN1Yj86IFN1YnNjcmlwdGlvbjtcclxuICBwcml2YXRlIGNsaWNrU3ViPzogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgSElHSExJR0hUX0JPUkRFUiA9ICczcHggc29saWQgIzI4M0U5MCc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsIHByaXZhdGUgbWF0RGlhbG9nOiBNYXREaWFsb2csIHByaXZhdGUgX2V2ZW50U2VydmljZTogRXZlbnRzU2VydmljZSwgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKHRoaXMuYXBwSW1hZ2VFZGl0b3IpIHtcclxuICAgICAgdGhpcy5zZXR1cEV2ZW50TGlzdGVuZXJzKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnJlZGlyZWN0VG8oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKCkge1xyXG4gICAgdGhpcy5jbGVhbnVwKCk7XHJcbiAgICBpZiAodGhpcy5hcHBJbWFnZUVkaXRvcikge1xyXG4gICAgICB0aGlzLnNldHVwRXZlbnRMaXN0ZW5lcnMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0dXBFdmVudExpc3RlbmVycygpIHtcclxuICAgIHRoaXMubW91c2VFbnRlclN1YiA9IGZyb21FdmVudCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICdtb3VzZWVudGVyJylcclxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDEwMCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5ib3hTaXppbmcgPSAnYm9yZGVyLWJveCc7XHJcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLm91dGxpbmUgPSB0aGlzLkhJR0hMSUdIVF9CT1JERVI7XHJcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLmN1cnNvciA9ICdwb2ludGVyJztcclxuICAgICAgfSk7XHJcblxyXG4gICAgdGhpcy5tb3VzZUxlYXZlU3ViID0gZnJvbUV2ZW50KHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ21vdXNlbGVhdmUnKVxyXG4gICAgICAucGlwZShkZWJvdW5jZVRpbWUoMTAwKSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLmJvcmRlciA9ICcnO1xyXG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5vdXRsaW5lID0gJyc7XHJcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLmJvcmRlckNvbG9yID0gJ3RyYW5zcGFyZW50JztcclxuICAgICAgfSk7XHJcblxyXG4gICAgdGhpcy5jbGlja1N1YiA9IGZyb21FdmVudCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICdjbGljaycpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIGZpbHRlcigoKSA9PiAhdGhpcy5tYXREaWFsb2cub3BlbkRpYWxvZ3MubGVuZ3RoKVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMubWF0RGlhbG9nLm9wZW4oSW1hZ2VFZGl0b3JDb21wb25lbnQsIHtcclxuICAgICAgICAgIHBhbmVsQ2xhc3M6ICdsaW5rLWVkaXRvcicsXHJcbiAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgIGltYWdlRGF0YTogdGhpcy5pbWFnZURhdGEsXHJcbiAgICAgICAgICAgIHNlY3Rpb25JZDogdGhpcy5zZWN0aW9uSWRcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNsZWFudXAoKSB7XHJcbiAgICBpZiAodGhpcy5tb3VzZUVudGVyU3ViKSB7XHJcbiAgICAgIHRoaXMubW91c2VFbnRlclN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgICB0aGlzLm1vdXNlRW50ZXJTdWIgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMubW91c2VMZWF2ZVN1Yikge1xyXG4gICAgICB0aGlzLm1vdXNlTGVhdmVTdWIudW5zdWJzY3JpYmUoKTtcclxuICAgICAgdGhpcy5tb3VzZUxlYXZlU3ViID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmNsaWNrU3ViKSB7XHJcbiAgICAgIHRoaXMuY2xpY2tTdWIudW5zdWJzY3JpYmUoKTtcclxuICAgICAgdGhpcy5jbGlja1N1YiA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICAvLyBSZXNldCBzdHlsZXMgd2hlbiBjbGVhbmluZyB1cFxyXG4gICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLmJvcmRlciA9ICcnO1xyXG4gICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLmN1cnNvciA9ICcnO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLmNsZWFudXAoKTtcclxuICB9XHJcbiAgcmVkaXJlY3RUbygpIHtcclxuICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5jdXJzb3IgPSAncG9pbnRlcic7XHJcbiAgICBpZiAoIXRoaXMuaW1hZ2VEYXRhPy5jb250ZW50Py5yZWRpcmVjdGlvblVybClcclxuICAgICAgcmV0dXJuO1xyXG4gICAgdGhpcy5jbGlja1N1YiA9IGZyb21FdmVudCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICdjbGljaycpXHJcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSgxMDApKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLl9ldmVudFNlcnZpY2UuYnV0dG9uUmVkaXJlY3Rpb24uZW1pdCh7IGRhdGE6IHRoaXMuaW1hZ2VEYXRhPy5jb250ZW50IH0pO1xyXG4gICAgICB9KTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,66 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class SetDynamicBackgroundDirective {
4
+ constructor(el) {
5
+ this.el = el;
6
+ this.backgroundColor = '';
7
+ this.showBackground = false;
8
+ }
9
+ ngOnChanges() {
10
+ if (this.showBackground == true) {
11
+ const backgroundColor = this.getContrastingColor(this.backgroundColor);
12
+ this.el.nativeElement.style.backgroundColor = backgroundColor;
13
+ this.el.nativeElement.style.setProperty('padding', '0.5rem');
14
+ // this.el.nativeElement.style.setProperty('border-radius', '17px');
15
+ this.el.nativeElement.style.setProperty('border', `2px solid ${this.backgroundColor}`);
16
+ }
17
+ else {
18
+ this.el.nativeElement.style.backgroundColor = 'transparent';
19
+ this.el.nativeElement.style.setProperty('padding', '0');
20
+ this.el.nativeElement.style.setProperty('border-radius', '0');
21
+ this.el.nativeElement.style.setProperty('border', 'none');
22
+ }
23
+ }
24
+ getContrastingColor(bgColor) {
25
+ const color = bgColor.replace('#', '');
26
+ const r = parseInt(color.substr(0, 2), 16);
27
+ const g = parseInt(color.substr(2, 2), 16);
28
+ const b = parseInt(color.substr(4, 2), 16);
29
+ const brightness = (r * 299 + g * 587 + b * 114) / 1000;
30
+ const isDark = brightness < 128;
31
+ if (isDark) {
32
+ return this.lightenColor(r, g, b, 0.04);
33
+ }
34
+ else {
35
+ return this.darkenColor(r, g, b, 0.08);
36
+ }
37
+ }
38
+ lightenColor(r, g, b, factor) {
39
+ const newR = Math.min(255, Math.round(r + (255 - r) * factor));
40
+ const newG = Math.min(255, Math.round(g + (255 - g) * factor));
41
+ const newB = Math.min(255, Math.round(b + (255 - b) * factor));
42
+ return `rgb(${newR}, ${newG}, ${newB})`;
43
+ }
44
+ darkenColor(r, g, b, factor) {
45
+ const newR = Math.max(0, Math.round(r * (1 - factor)));
46
+ const newG = Math.max(0, Math.round(g * (1 - factor)));
47
+ const newB = Math.max(0, Math.round(b * (1 - factor)));
48
+ return `rgb(${newR}, ${newG}, ${newB})`;
49
+ }
50
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: SetDynamicBackgroundDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
51
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.4", type: SetDynamicBackgroundDirective, isStandalone: true, selector: "[simpoSetDynamicBackground]", inputs: { backgroundColor: "backgroundColor", showBackground: ["simpoSetDynamicBackground", "showBackground"] }, usesOnChanges: true, ngImport: i0 }); }
52
+ }
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: SetDynamicBackgroundDirective, decorators: [{
54
+ type: Directive,
55
+ args: [{
56
+ selector: '[simpoSetDynamicBackground]',
57
+ standalone: true
58
+ }]
59
+ }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { backgroundColor: [{
60
+ type: Input,
61
+ args: ['backgroundColor']
62
+ }], showBackground: [{
63
+ type: Input,
64
+ args: ['simpoSetDynamicBackground']
65
+ }] } });
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0LWR5bmFtaWMtYmFja2dyb3VuZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2RpcmVjdGl2ZS9zZXQtZHluYW1pYy1iYWNrZ3JvdW5kLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNN0QsTUFBTSxPQUFPLDZCQUE2QjtJQUt4QyxZQUFvQixFQUFjO1FBQWQsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUhSLG9CQUFlLEdBQVcsRUFBRSxDQUFDO1FBQ25CLG1CQUFjLEdBQVksS0FBSyxDQUFDO0lBRTlCLENBQUM7SUFFdkMsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNoQyxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ3ZFLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFDO1lBQzlELElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQzdELG9FQUFvRTtZQUNwRSxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxhQUFhLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBQ3pGLENBQUM7YUFBSSxDQUFDO1lBQ0osSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLGVBQWUsR0FBRyxhQUFhLENBQUM7WUFDNUQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDeEQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxlQUFlLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDOUQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDNUQsQ0FBQztJQUNILENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxPQUFlO1FBQ3pDLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMzQyxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDM0MsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRTNDLE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUM7UUFFeEQsTUFBTSxNQUFNLEdBQUcsVUFBVSxHQUFHLEdBQUcsQ0FBQztRQUVoQyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gsT0FBUSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFBO1FBQzFDLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3pDLENBQUM7SUFDSCxDQUFDO0lBSUQsWUFBWSxDQUFDLENBQVMsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLE1BQWM7UUFDMUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUMvRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQy9ELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFFL0QsT0FBTyxPQUFPLElBQUksS0FBSyxJQUFJLEtBQUssSUFBSSxHQUFHLENBQUM7SUFDMUMsQ0FBQztJQUVELFdBQVcsQ0FBQyxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVMsRUFBRSxNQUFjO1FBQ3pELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2RCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXZELE9BQU8sT0FBTyxJQUFJLEtBQUssSUFBSSxLQUFLLElBQUksR0FBRyxDQUFDO0lBQzFDLENBQUM7OEdBdkRVLDZCQUE2QjtrR0FBN0IsNkJBQTZCOzsyRkFBN0IsNkJBQTZCO2tCQUp6QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw2QkFBNkI7b0JBQ3ZDLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjsrRUFHMkIsZUFBZTtzQkFBeEMsS0FBSzt1QkFBQyxpQkFBaUI7Z0JBQ1ksY0FBYztzQkFBakQsS0FBSzt1QkFBQywyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tzaW1wb1NldER5bmFtaWNCYWNrZ3JvdW5kXScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2V0RHluYW1pY0JhY2tncm91bmREaXJlY3RpdmUge1xyXG5cclxuICBASW5wdXQoJ2JhY2tncm91bmRDb2xvcicpIGJhY2tncm91bmRDb2xvcjogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCdzaW1wb1NldER5bmFtaWNCYWNrZ3JvdW5kJykgc2hvd0JhY2tncm91bmQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZikgeyB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKCkge1xyXG4gICAgaWYgKHRoaXMuc2hvd0JhY2tncm91bmQgPT0gdHJ1ZSkge1xyXG4gICAgICBjb25zdCBiYWNrZ3JvdW5kQ29sb3IgPSB0aGlzLmdldENvbnRyYXN0aW5nQ29sb3IodGhpcy5iYWNrZ3JvdW5kQ29sb3IpO1xyXG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gYmFja2dyb3VuZENvbG9yO1xyXG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ3BhZGRpbmcnLCAnMC41cmVtJyk7XHJcbiAgICAgIC8vIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnYm9yZGVyLXJhZGl1cycsICcxN3B4Jyk7XHJcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgnYm9yZGVyJywgYDJweCBzb2xpZCAke3RoaXMuYmFja2dyb3VuZENvbG9yfWApO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSAndHJhbnNwYXJlbnQnO1xyXG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ3BhZGRpbmcnLCAnMCcpO1xyXG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ2JvcmRlci1yYWRpdXMnLCAnMCcpO1xyXG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoJ2JvcmRlcicsICdub25lJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldENvbnRyYXN0aW5nQ29sb3IoYmdDb2xvcjogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGNvbG9yID0gYmdDb2xvci5yZXBsYWNlKCcjJywgJycpO1xyXG4gICAgY29uc3QgciA9IHBhcnNlSW50KGNvbG9yLnN1YnN0cigwLCAyKSwgMTYpO1xyXG4gICAgY29uc3QgZyA9IHBhcnNlSW50KGNvbG9yLnN1YnN0cigyLCAyKSwgMTYpO1xyXG4gICAgY29uc3QgYiA9IHBhcnNlSW50KGNvbG9yLnN1YnN0cig0LCAyKSwgMTYpO1xyXG5cclxuICAgIGNvbnN0IGJyaWdodG5lc3MgPSAociAqIDI5OSArIGcgKiA1ODcgKyBiICogMTE0KSAvIDEwMDA7XHJcblxyXG4gICAgY29uc3QgaXNEYXJrID0gYnJpZ2h0bmVzcyA8IDEyODtcclxuXHJcbiAgICBpZiAoaXNEYXJrKSB7XHJcbiAgICAgIHJldHVybiAgdGhpcy5saWdodGVuQ29sb3IociwgZywgYiwgMC4wNClcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmRhcmtlbkNvbG9yKHIsIGcsIGIsIDAuMDgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG5cclxuICBsaWdodGVuQ29sb3IocjogbnVtYmVyLCBnOiBudW1iZXIsIGI6IG51bWJlciwgZmFjdG9yOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgbmV3UiA9IE1hdGgubWluKDI1NSwgTWF0aC5yb3VuZChyICsgKDI1NSAtIHIpICogZmFjdG9yKSk7XHJcbiAgICBjb25zdCBuZXdHID0gTWF0aC5taW4oMjU1LCBNYXRoLnJvdW5kKGcgKyAoMjU1IC0gZykgKiBmYWN0b3IpKTtcclxuICAgIGNvbnN0IG5ld0IgPSBNYXRoLm1pbigyNTUsIE1hdGgucm91bmQoYiArICgyNTUgLSBiKSAqIGZhY3RvcikpO1xyXG5cclxuICAgIHJldHVybiBgcmdiKCR7bmV3Un0sICR7bmV3R30sICR7bmV3Qn0pYDtcclxuICB9XHJcblxyXG4gIGRhcmtlbkNvbG9yKHI6IG51bWJlciwgZzogbnVtYmVyLCBiOiBudW1iZXIsIGZhY3RvcjogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IG5ld1IgPSBNYXRoLm1heCgwLCBNYXRoLnJvdW5kKHIgKiAoMSAtIGZhY3RvcikpKTtcclxuICAgIGNvbnN0IG5ld0cgPSBNYXRoLm1heCgwLCBNYXRoLnJvdW5kKGcgKiAoMSAtIGZhY3RvcikpKTtcclxuICAgIGNvbnN0IG5ld0IgPSBNYXRoLm1heCgwLCBNYXRoLnJvdW5kKGIgKiAoMSAtIGZhY3RvcikpKTtcclxuXHJcbiAgICByZXR1cm4gYHJnYigke25ld1J9LCAke25ld0d9LCAke25ld0J9KWA7XHJcbiAgfVxyXG5cclxuXHJcbn1cclxuIl19
@@ -8,6 +8,7 @@ export class SpacingAroundDirective {
8
8
  this.eventService = eventService;
9
9
  }
10
10
  ngOnChanges() {
11
+ this.childDiv = this.el.nativeElement.querySelector('div:first-child');
11
12
  this.changeAroundSpacing();
12
13
  }
13
14
  ngOnDestroy() {
@@ -39,7 +40,7 @@ export class SpacingAroundDirective {
39
40
  else {
40
41
  this.el.nativeElement.style.setProperty("padding-left", SPACINGALIGN[this.layout?.spacingAround]);
41
42
  this.el.nativeElement.style.setProperty("padding-right", SPACINGALIGN[this.layout?.spacingAround]);
42
- if (this.layout?.spacingAround && this.layout?.spacingAround != 'none' && this.layout?.spacingAround != 'remove') {
43
+ if (this.layout?.spacingAround && this.layout?.spacingAround != 'none') {
43
44
  this.el.nativeElement.style.setProperty("padding-top", '1rem');
44
45
  this.el.nativeElement.style.setProperty("padding-bottom", '1rem');
45
46
  }
@@ -48,6 +49,10 @@ export class SpacingAroundDirective {
48
49
  this.el.nativeElement.style.setProperty("padding-right", SPACINGALIGN[this.layout?.spacingAround]);
49
50
  }
50
51
  }
52
+ this.childDiv?.style.setProperty("border", this.getBorderColor(this.backgroundInfo?.color || '#ffffff'));
53
+ if (this.layout?.spacingAround && this.layout?.spacingAround == 'none') {
54
+ this.childDiv?.style.setProperty("border", 'unset');
55
+ }
51
56
  }
52
57
  positionLayoutChangeCheck() {
53
58
  this.positionLayoutSubscription = this.eventService.postionLayoutChangeChecks.subscribe((res) => {
@@ -57,8 +62,34 @@ export class SpacingAroundDirective {
57
62
  }
58
63
  });
59
64
  }
65
+ getBorderColor(bgColor) {
66
+ const color = bgColor.replace('#', '');
67
+ const r = parseInt(color.substr(0, 2), 16);
68
+ const g = parseInt(color.substr(2, 2), 16);
69
+ const b = parseInt(color.substr(4, 2), 16);
70
+ const brightness = (r * 299 + g * 587 + b * 114) / 1000;
71
+ const isDark = brightness < 128;
72
+ if (isDark) {
73
+ return this.lightenColor(r, g, b, 0.50);
74
+ }
75
+ else {
76
+ return this.darkenColor(r, g, b, 0.15);
77
+ }
78
+ }
79
+ lightenColor(r, g, b, factor) {
80
+ const newR = Math.min(255, Math.round(r + (255 - r) * factor));
81
+ const newG = Math.min(255, Math.round(g + (255 - g) * factor));
82
+ const newB = Math.min(255, Math.round(b + (255 - b) * factor));
83
+ return `2px solid rgb(${newR}, ${newG}, ${newB})`;
84
+ }
85
+ darkenColor(r, g, b, factor) {
86
+ const newR = Math.max(0, Math.round(r * (1 - factor)));
87
+ const newG = Math.max(0, Math.round(g * (1 - factor)));
88
+ const newB = Math.max(0, Math.round(b * (1 - factor)));
89
+ return `2px solid rgb(${newR}, ${newG}, ${newB})`;
90
+ }
60
91
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: SpacingAroundDirective, deps: [{ token: i0.ElementRef }, { token: i1.EventsService }], target: i0.ɵɵFactoryTarget.Directive }); }
61
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.4", type: SpacingAroundDirective, isStandalone: true, selector: "[spacingAround]", inputs: { layout: ["spacingAround", "layout"] }, usesOnChanges: true, ngImport: i0 }); }
92
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.4", type: SpacingAroundDirective, isStandalone: true, selector: "[spacingAround]", inputs: { layout: ["spacingAround", "layout"], backgroundInfo: "backgroundInfo" }, usesOnChanges: true, ngImport: i0 }); }
62
93
  }
63
94
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: SpacingAroundDirective, decorators: [{
64
95
  type: Directive,
@@ -69,5 +100,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImpor
69
100
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.EventsService }], propDecorators: { layout: [{
70
101
  type: Input,
71
102
  args: ['spacingAround']
103
+ }], backgroundInfo: [{
104
+ type: Input,
105
+ args: ['backgroundInfo']
72
106
  }] } });
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BhY2luZy1hcm91bmQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9kaXJlY3RpdmUvc3BhY2luZy1hcm91bmQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxXQUFXLENBQUM7OztBQVV6QyxNQUFNLE9BQU8sc0JBQXNCO0lBS2pDLFlBQW9CLEVBQWMsRUFDeEIsWUFBMkI7UUFEakIsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUN4QixpQkFBWSxHQUFaLFlBQVksQ0FBZTtJQUNqQyxDQUFDO0lBRUwsV0FBVztRQUNULElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBRyxJQUFJLENBQUMsMEJBQTBCLEVBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDaEQsQ0FBQztJQUNILENBQUM7SUFFRCxtQkFBbUI7UUFDakIsSUFBSSxNQUFNLENBQUMsVUFBVSxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQzdCLElBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxhQUFhLElBQUksTUFBTSxFQUFDLENBQUM7Z0JBQ3ZDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsY0FBYyxFQUFFLFFBQVEsQ0FBQyxDQUFDO2dCQUNsRSxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDbkUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUs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QVMsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQ25HLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDeEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDO2dCQUN2QixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUM3QixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDOzhHQTlEVSxzQkFBc0I7a0dBQXRCLHNCQUFzQjs7MkZBQXRCLHNCQUFzQjtrQkFKbEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixVQUFVLEVBQUUsSUFBSTtpQkFDakI7MkdBR3lCLE1BQU07c0JBQTdCLEtBQUs7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU1BBQ0lOR0FMSUdOIH0gZnJvbSAnLi4vc3R5bGVzJztcclxuaW1wb3J0IHsgTGF5T3V0TW9kZWwgfSBmcm9tICcuLi9zdHlsZXMvc3R5bGUubW9kZWwnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRXZlbnRzU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2V2ZW50cy5zZXJ2aWNlJztcclxuXHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tzcGFjaW5nQXJvdW5kXScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3BhY2luZ0Fyb3VuZERpcmVjdGl2ZSB7XHJcblxyXG4gIEBJbnB1dCgnc3BhY2luZ0Fyb3VuZCcpIGxheW91dD86IExheU91dE1vZGVsO1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZixcclxuICAgIHByaXZhdGUgZXZlbnRTZXJ2aWNlOiBFdmVudHNTZXJ2aWNlXHJcbiAgKSB7IH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoKSB7XHJcbiAgICB0aGlzLmNoYW5nZUFyb3VuZFNwYWNpbmcoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCl7XHJcbiAgICBpZih0aGlzLnBvc2l0aW9uTGF5b3V0U3Vic2NyaXB0aW9uKXtcclxuICAgICAgdGhpcy5wb3NpdGlvbkxheW91dFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2hhbmdlQXJvdW5kU3BhY2luZygpIHtcclxuICAgIGlmICh3aW5kb3cuaW5uZXJXaWR0aCA8PSA0NzUpIHtcclxuICAgICAgaWYodGhpcy5sYXlvdXQ/LnNwYWNpbmdBcm91bmQgIT0gJ25vbmUnKXtcclxuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoXCJwYWRkaW5nLWxlZnRcIiwgJzAuOHJlbScpO1xyXG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShcInBhZGRpbmctcmlnaHRcIiwgJzAuOHJlbScpO1xyXG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShcInBhZGRpbmctdG9wXCIsICcwLjhyZW0nKTtcclxuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoXCJwYWRkaW5nLWJvdHRvbVwiLCAnMC44cmVtJyk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZXtcclxuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoXCJwYWRkaW5nLWxlZnRcIiwgJzByZW0nKTtcclxuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoXCJwYWRkaW5nLXJpZ2h0XCIsICcwcmVtJyk7XHJcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFwicGFkZGluZy10b3BcIiwgJzByZW0nKTtcclxuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoXCJwYWRkaW5nLWJvdHRvbVwiLCAnMHJlbScpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh3aW5kb3cuaW5uZXJXaWR0aCA+IDQ3NSAmJiB3aW5kb3cuaW5uZXJXaWR0aCA8PSAxMDI0KSB7XHJcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShcInBhZGRpbmctbGVmdFwiLCBTUEFDSU5HQUxJR04uc21hbGwpO1xyXG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoXCJwYWRkaW5nLXJpZ2h0XCIsIFNQQUNJTkdBTElHTi5zbWFsbCk7XHJcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShcInBhZGRpbmctdG9wXCIsICcwLjhyZW0nKTtcclxuICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFwicGFkZGluZy1ib3R0b21cIiwgJzAuOHJlbScpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShcInBhZGRpbmctbGVmdFwiLCBTUEFDSU5HQUxJR05bdGhpcy5sYXlvdXQ/LnNwYWNpbmdBcm91bmQgYXMga2V5b2YgdHlwZW9mIFNQQUNJTkdBTElHTl0pO1xyXG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoXCJwYWRkaW5nLXJpZ2h0XCIsIFNQQUNJTkdBTElHTlt0aGlzLmxheW91dD8uc3BhY2luZ0Fyb3VuZCBhcyBrZXlvZiB0eXBlb2YgU1BBQ0lOR0FMSUdOXSk7XHJcbiAgICAgIGlmKHRoaXMubGF5b3V0Py5zcGFjaW5nQXJvdW5kICYmIHRoaXMubGF5b3V0Py5zcGFjaW5nQXJvdW5kICE9ICdub25lJyAmJiB0aGlzLmxheW91dD8uc3BhY2luZ0Fyb3VuZCAhPSAncmVtb3ZlJykge1xyXG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShcInBhZGRpbmctdG9wXCIsICcxcmVtJyk7XHJcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFwicGFkZGluZy1ib3R0b21cIiwgJzFyZW0nKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoXCJwYWRkaW5nLWxlZnRcIiwgU1BBQ0lOR0FMSUdOW3RoaXMubGF5b3V0Py5zcGFjaW5nQXJvdW5kIGFzIGtleW9mIHR5cGVvZiBTUEFDSU5HQUxJR05dKTtcclxuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoXCJwYWRkaW5nLXJpZ2h0XCIsIFNQQUNJTkdBTElHTlt0aGlzLmxheW91dD8uc3BhY2luZ0Fyb3VuZCBhcyBrZXlvZiB0eXBlb2YgU1BBQ0lOR0FMSUdOXSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwb3NpdGlvbkxheW91dFN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcclxuICBwb3NpdGlvbkxheW91dENoYW5nZUNoZWNrKCkge1xyXG4gICAgdGhpcy5wb3NpdGlvbkxheW91dFN1YnNjcmlwdGlvbiA9IHRoaXMuZXZlbnRTZXJ2aWNlLnBvc3Rpb25MYXlvdXRDaGFuZ2VDaGVja3Muc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5lbC5uYXRpdmVFbGVtZW50LmlkID09PSByZXMuaWQpIHtcclxuICAgICAgICB0aGlzLmxheW91dCA9IHJlcy5kYXRhO1xyXG4gICAgICAgIHRoaXMuY2hhbmdlQXJvdW5kU3BhY2luZygpO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcblxyXG59XHJcbiJdfQ==
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BhY2luZy1hcm91bmQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9kaXJlY3RpdmUvc3BhY2luZy1hcm91bmQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxXQUFXLENBQUM7OztBQVV6QyxNQUFNLE9BQU8sc0JBQXNCO0lBTWpDLFlBQW9CLEVBQWMsRUFDeEIsWUFBMkI7UUFEakIsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUN4QixpQkFBWSxHQUFaLFlBQVksQ0FBZTtJQUNqQyxDQUFDO0lBRUwsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNoRCxDQUFDO0lBQ0gsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixJQUFJLE1BQU0sQ0FBQyxVQUFVLElBQUksR0FBRyxFQUFFLENBQUM7WUFDN0IsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLGFBQWEsSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFDekMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQ2xFLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsZUFBZSxFQUFF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QUMsQ0FBUyxFQUFFLENBQVMsRUFBRSxDQUFTLEVBQUUsTUFBYztRQUN6RCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV2RCxPQUFPLGlCQUFpQixJQUFJLEtBQUssSUFBSSxLQUFLLElBQUksR0FBRyxDQUFDO0lBQ3BELENBQUM7OEdBckdVLHNCQUFzQjtrR0FBdEIsc0JBQXNCOzsyRkFBdEIsc0JBQXNCO2tCQUpsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjsyR0FHeUIsTUFBTTtzQkFBN0IsS0FBSzt1QkFBQyxlQUFlO2dCQUNHLGNBQWM7c0JBQXRDLEtBQUs7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTUEFDSU5HQUxJR04gfSBmcm9tICcuLi9zdHlsZXMnO1xyXG5pbXBvcnQgeyBCYWNrZ3JvdW5kTW9kZWwsIExheU91dE1vZGVsIH0gZnJvbSAnLi4vc3R5bGVzL3N0eWxlLm1vZGVsJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEV2ZW50c1NlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9ldmVudHMuc2VydmljZSc7XHJcblxyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbc3BhY2luZ0Fyb3VuZF0nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIFNwYWNpbmdBcm91bmREaXJlY3RpdmUge1xyXG5cclxuICBASW5wdXQoJ3NwYWNpbmdBcm91bmQnKSBsYXlvdXQ/OiBMYXlPdXRNb2RlbDtcclxuICBASW5wdXQoJ2JhY2tncm91bmRJbmZvJykgYmFja2dyb3VuZEluZm8/OiBCYWNrZ3JvdW5kTW9kZWw7XHJcblxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSBldmVudFNlcnZpY2U6IEV2ZW50c1NlcnZpY2VcclxuICApIHsgfVxyXG4gIHByaXZhdGUgY2hpbGREaXY/OiBIVE1MRWxlbWVudDtcclxuICBuZ09uQ2hhbmdlcygpIHtcclxuICAgIHRoaXMuY2hpbGREaXYgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignZGl2OmZpcnN0LWNoaWxkJyk7XHJcbiAgICB0aGlzLmNoYW5nZUFyb3VuZFNwYWNpbmcoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgaWYgKHRoaXMucG9zaXRpb25MYXlvdXRTdWJzY3JpcHRpb24pIHtcclxuICAgICAgdGhpcy5wb3NpdGlvbkxheW91dFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2hhbmdlQXJvdW5kU3BhY2luZygpIHtcclxuICAgIGlmICh3aW5kb3cuaW5uZXJXaWR0aCA8PSA0NzUpIHtcclxuICAgICAgaWYgKHRoaXMubGF5b3V0Py5zcGFjaW5nQXJvdW5kICE9ICdub25lJykge1xyXG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShcInBhZGRpbmctbGVmdFwiLCAnMC44cmVtJyk7XHJcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFwicGFkZGluZy1yaWdodFwiLCAnMC44cmVtJyk7XHJcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFwicGFkZGluZy10b3BcIiwgJzAuOHJlbScpO1xyXG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShcInBhZGRpbmctYm90dG9tXCIsICcwLjhyZW0nKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoXCJwYWRkaW5nLWxlZnRcIiwgJzByZW0nKTtcclxuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoXCJwYWRkaW5nLXJpZ2h0XCIsICcwcmVtJyk7XHJcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFwicGFkZGluZy10b3BcIiwgJzByZW0nKTtcclxuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoXCJwYWRkaW5nLWJvdHRvbVwiLCAnMHJlbScpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh3aW5kb3cuaW5uZXJXaWR0aCA+IDQ3NSAmJiB3aW5kb3cuaW5uZXJXaWR0aCA8PSAxMDI0KSB7XHJcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShcInBhZGRpbmctbGVmdFwiLCBTUEFDSU5HQUxJR04uc21hbGwpO1xyXG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoXCJwYWRkaW5nLXJpZ2h0XCIsIFNQQUNJTkdBTElHTi5zbWFsbCk7XHJcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShcInBhZGRpbmctdG9wXCIsICcwLjhyZW0nKTtcclxuICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFwicGFkZGluZy1ib3R0b21cIiwgJzAuOHJlbScpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShcInBhZGRpbmctbGVmdFwiLCBTUEFDSU5HQUxJR05bdGhpcy5sYXlvdXQ/LnNwYWNpbmdBcm91bmQgYXMga2V5b2YgdHlwZW9mIFNQQUNJTkdBTElHTl0pO1xyXG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoXCJwYWRkaW5nLXJpZ2h0XCIsIFNQQUNJTkdBTElHTlt0aGlzLmxheW91dD8uc3BhY2luZ0Fyb3VuZCBhcyBrZXlvZiB0eXBlb2YgU1BBQ0lOR0FMSUdOXSk7XHJcbiAgICAgIGlmICh0aGlzLmxheW91dD8uc3BhY2luZ0Fyb3VuZCAmJiB0aGlzLmxheW91dD8uc3BhY2luZ0Fyb3VuZCAhPSAnbm9uZScpIHtcclxuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoXCJwYWRkaW5nLXRvcFwiLCAnMXJlbScpO1xyXG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShcInBhZGRpbmctYm90dG9tXCIsICcxcmVtJyk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFwicGFkZGluZy1sZWZ0XCIsIFNQQUNJTkdBTElHTlt0aGlzLmxheW91dD8uc3BhY2luZ0Fyb3VuZCBhcyBrZXlvZiB0eXBlb2YgU1BBQ0lOR0FMSUdOXSk7XHJcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFwicGFkZGluZy1yaWdodFwiLCBTUEFDSU5HQUxJR05bdGhpcy5sYXlvdXQ/LnNwYWNpbmdBcm91bmQgYXMga2V5b2YgdHlwZW9mIFNQQUNJTkdBTElHTl0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG4gICAgdGhpcy5jaGlsZERpdj8uc3R5bGUuc2V0UHJvcGVydHkoXCJib3JkZXJcIiwgdGhpcy5nZXRCb3JkZXJDb2xvcih0aGlzLmJhY2tncm91bmRJbmZvPy5jb2xvciB8fCAnI2ZmZmZmZicpKTtcclxuICAgIGlmKCB0aGlzLmxheW91dD8uc3BhY2luZ0Fyb3VuZCAmJiB0aGlzLmxheW91dD8uc3BhY2luZ0Fyb3VuZCA9PSAnbm9uZScpIHtcclxuICAgICAgdGhpcy5jaGlsZERpdj8uc3R5bGUuc2V0UHJvcGVydHkoXCJib3JkZXJcIiwgJ3Vuc2V0Jyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwb3NpdGlvbkxheW91dFN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcclxuICBwb3NpdGlvbkxheW91dENoYW5nZUNoZWNrKCkge1xyXG4gICAgdGhpcy5wb3NpdGlvbkxheW91dFN1YnNjcmlwdGlvbiA9IHRoaXMuZXZlbnRTZXJ2aWNlLnBvc3Rpb25MYXlvdXRDaGFuZ2VDaGVja3Muc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5lbC5uYXRpdmVFbGVtZW50LmlkID09PSByZXMuaWQpIHtcclxuICAgICAgICB0aGlzLmxheW91dCA9IHJlcy5kYXRhO1xyXG4gICAgICAgIHRoaXMuY2hhbmdlQXJvdW5kU3BhY2luZygpO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgZ2V0Qm9yZGVyQ29sb3IoYmdDb2xvcjogc3RyaW5nKSA6IHN0cmluZyB7XHJcbiAgIGNvbnN0IGNvbG9yID0gYmdDb2xvci5yZXBsYWNlKCcjJywgJycpO1xyXG4gICAgY29uc3QgciA9IHBhcnNlSW50KGNvbG9yLnN1YnN0cigwLCAyKSwgMTYpO1xyXG4gICAgY29uc3QgZyA9IHBhcnNlSW50KGNvbG9yLnN1YnN0cigyLCAyKSwgMTYpO1xyXG4gICAgY29uc3QgYiA9IHBhcnNlSW50KGNvbG9yLnN1YnN0cig0LCAyKSwgMTYpO1xyXG5cclxuICAgIGNvbnN0IGJyaWdodG5lc3MgPSAociAqIDI5OSArIGcgKiA1ODcgKyBiICogMTE0KSAvIDEwMDA7XHJcblxyXG4gICAgY29uc3QgaXNEYXJrID0gYnJpZ2h0bmVzcyA8IDEyODtcclxuXHJcbiAgICBpZiAoaXNEYXJrKSB7XHJcbiAgICAgIHJldHVybiAgdGhpcy5saWdodGVuQ29sb3IociwgZywgYiwgMC41MCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5kYXJrZW5Db2xvcihyLCBnLCBiLCAwLjE1KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGxpZ2h0ZW5Db2xvcihyOiBudW1iZXIsIGc6IG51bWJlciwgYjogbnVtYmVyLCBmYWN0b3I6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBjb25zdCBuZXdSID0gTWF0aC5taW4oMjU1LCBNYXRoLnJvdW5kKHIgKyAoMjU1IC0gcikgKiBmYWN0b3IpKTtcclxuICAgIGNvbnN0IG5ld0cgPSBNYXRoLm1pbigyNTUsIE1hdGgucm91bmQoZyArICgyNTUgLSBnKSAqIGZhY3RvcikpO1xyXG4gICAgY29uc3QgbmV3QiA9IE1hdGgubWluKDI1NSwgTWF0aC5yb3VuZChiICsgKDI1NSAtIGIpICogZmFjdG9yKSk7XHJcblxyXG4gICAgcmV0dXJuIGAycHggc29saWQgcmdiKCR7bmV3Un0sICR7bmV3R30sICR7bmV3Qn0pYDtcclxuICB9XHJcblxyXG4gIGRhcmtlbkNvbG9yKHI6IG51bWJlciwgZzogbnVtYmVyLCBiOiBudW1iZXIsIGZhY3RvcjogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IG5ld1IgPSBNYXRoLm1heCgwLCBNYXRoLnJvdW5kKHIgKiAoMSAtIGZhY3RvcikpKTtcclxuICAgIGNvbnN0IG5ld0cgPSBNYXRoLm1heCgwLCBNYXRoLnJvdW5kKGcgKiAoMSAtIGZhY3RvcikpKTtcclxuICAgIGNvbnN0IG5ld0IgPSBNYXRoLm1heCgwLCBNYXRoLnJvdW5kKGIgKiAoMSAtIGZhY3RvcikpKTtcclxuXHJcbiAgICByZXR1cm4gYDJweCBzb2xpZCByZ2IoJHtuZXdSfSwgJHtuZXdHfSwgJHtuZXdCfSlgO1xyXG4gIH1cclxuXHJcblxyXG59XHJcbiJdfQ==
@@ -0,0 +1,29 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import { applySpacing } from '../styles/index';
3
+ import * as i0 from "@angular/core";
4
+ export class SpacingDirective {
5
+ constructor(el) {
6
+ this.el = el;
7
+ }
8
+ ngOnChanges() {
9
+ this.applySpacing();
10
+ }
11
+ applySpacing() {
12
+ if (this.spacing) {
13
+ applySpacing(this.el.nativeElement, this.spacing);
14
+ }
15
+ }
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: SpacingDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
17
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.4", type: SpacingDirective, isStandalone: true, selector: "[simpoSpacing]", inputs: { spacing: ["simpoSpacing", "spacing"] }, usesOnChanges: true, ngImport: i0 }); }
18
+ }
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: SpacingDirective, decorators: [{
20
+ type: Directive,
21
+ args: [{
22
+ selector: '[simpoSpacing]',
23
+ standalone: true,
24
+ }]
25
+ }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { spacing: [{
26
+ type: Input,
27
+ args: ['simpoSpacing']
28
+ }] } });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BhY2luZy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2RpcmVjdGl2ZS9zcGFjaW5nLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQVEvQyxNQUFNLE9BQU8sZ0JBQWdCO0lBRzNCLFlBQW9CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO0lBQUcsQ0FBQztJQUV0QyxXQUFXO1FBQ1QsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFTyxZQUFZO1FBQ2xCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pCLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEQsQ0FBQztJQUNILENBQUM7OEdBYlUsZ0JBQWdCO2tHQUFoQixnQkFBZ0I7OzJGQUFoQixnQkFBZ0I7a0JBSjVCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOytFQUV3QixPQUFPO3NCQUE3QixLQUFLO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBhcHBseVNwYWNpbmcgfSBmcm9tICcuLi9zdHlsZXMvaW5kZXgnO1xyXG5pbXBvcnQgeyBTcGFjaW5nTW9kZWwgfSBmcm9tICcuLi9zdHlsZXMvc3R5bGUubW9kZWwnO1xyXG5pbXBvcnQgeyBFdmVudHNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZXZlbnRzLnNlcnZpY2UnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbc2ltcG9TcGFjaW5nXScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNwYWNpbmdEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG4gIEBJbnB1dCgnc2ltcG9TcGFjaW5nJykgc3BhY2luZz86IFNwYWNpbmdNb2RlbDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZikge31cclxuXHJcbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmFwcGx5U3BhY2luZygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhcHBseVNwYWNpbmcoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zcGFjaW5nKSB7XHJcbiAgICAgIGFwcGx5U3BhY2luZyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIHRoaXMuc3BhY2luZyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,47 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class TranslateOnhoverDirective {
4
+ constructor(el) {
5
+ this.el = el;
6
+ this.setTranslate();
7
+ }
8
+ ngOnChanges() {
9
+ this.setTranslate();
10
+ }
11
+ setTranslate() {
12
+ if (this.translateOnHover == true) {
13
+ this.el.nativeElement.style.setProperty("transition", "transform 0.3s ease-in-out");
14
+ this.el.nativeElement.addEventListener('mouseover', () => {
15
+ this.el.nativeElement.style.position = 'relative';
16
+ this.el.nativeElement.style.zIndex = '101';
17
+ this.el.nativeElement.style.transform = 'translateY(-20px)';
18
+ });
19
+ this.el.nativeElement.addEventListener('mouseout', () => {
20
+ this.el.nativeElement.style.position = 'relative';
21
+ this.el.nativeElement.style.zIndex = '100';
22
+ this.el.nativeElement.style.transform = 'translateY(0)';
23
+ });
24
+ }
25
+ else {
26
+ this.el.nativeElement.style.setProperty("transition", "none");
27
+ this.el.nativeElement.addEventListener('mouseover', () => {
28
+ this.el.nativeElement.style.position = 'relative';
29
+ this.el.nativeElement.style.zIndex = '100';
30
+ this.el.nativeElement.style.transform = 'translateY(0px)';
31
+ });
32
+ }
33
+ }
34
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: TranslateOnhoverDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
35
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.4", type: TranslateOnhoverDirective, isStandalone: true, selector: "[simpoTranslateOnhover]", inputs: { translateOnHover: ["simpoTranslateOnhover", "translateOnHover"] }, usesOnChanges: true, ngImport: i0 }); }
36
+ }
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: TranslateOnhoverDirective, decorators: [{
38
+ type: Directive,
39
+ args: [{
40
+ selector: '[simpoTranslateOnhover]',
41
+ standalone: true
42
+ }]
43
+ }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { translateOnHover: [{
44
+ type: Input,
45
+ args: ['simpoTranslateOnhover']
46
+ }] } });
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLW9uaG92ZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9kaXJlY3RpdmUvdHJhbnNsYXRlLW9uaG92ZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU03RCxNQUFNLE9BQU8seUJBQXlCO0lBSXBDLFlBQW9CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQ2hDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksSUFBSSxDQUFDLGdCQUFnQixJQUFJLElBQUksRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLDRCQUE0QixDQUFDLENBQUM7WUFDcEYsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLEdBQUcsRUFBRTtnQkFDdkQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7Z0JBQ2xELElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFBO2dCQUMxQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLG1CQUFtQixDQUFDO1lBQzlELENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxFQUFFLEdBQUcsRUFBRTtnQkFDdEQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7Z0JBQ2xELElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFBO2dCQUMxQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLGVBQWUsQ0FBQztZQUMxRCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDOUQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLEdBQUcsRUFBRTtnQkFDdkQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7Z0JBQ2xELElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFBO2dCQUMxQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLGlCQUFpQixDQUFDO1lBQzVELENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7OEdBakNVLHlCQUF5QjtrR0FBekIseUJBQXlCOzsyRkFBekIseUJBQXlCO2tCQUpyQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjsrRUFHaUMsZ0JBQWdCO3NCQUEvQyxLQUFLO3VCQUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW3NpbXBvVHJhbnNsYXRlT25ob3Zlcl0nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zbGF0ZU9uaG92ZXJEaXJlY3RpdmUge1xyXG5cclxuICBASW5wdXQoJ3NpbXBvVHJhbnNsYXRlT25ob3ZlcicpIHRyYW5zbGF0ZU9uSG92ZXI/OiBib29sZWFuO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmKSB7XHJcbiAgICB0aGlzLnNldFRyYW5zbGF0ZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoKSB7XHJcbiAgICB0aGlzLnNldFRyYW5zbGF0ZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0VHJhbnNsYXRlKCkge1xyXG4gICAgaWYgKHRoaXMudHJhbnNsYXRlT25Ib3ZlciA9PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShcInRyYW5zaXRpb25cIiwgXCJ0cmFuc2Zvcm0gMC4zcyBlYXNlLWluLW91dFwiKTtcclxuICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlb3ZlcicsICgpID0+IHtcclxuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUucG9zaXRpb24gPSAncmVsYXRpdmUnO1xyXG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS56SW5kZXggPSAnMTAxJ1xyXG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS50cmFuc2Zvcm0gPSAndHJhbnNsYXRlWSgtMjBweCknO1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlb3V0JywgKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5wb3NpdGlvbiA9ICdyZWxhdGl2ZSc7XHJcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnpJbmRleCA9ICcxMDAnXHJcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnRyYW5zZm9ybSA9ICd0cmFuc2xhdGVZKDApJztcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoXCJ0cmFuc2l0aW9uXCIsIFwibm9uZVwiKTtcclxuICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlb3ZlcicsICgpID0+IHtcclxuICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUucG9zaXRpb24gPSAncmVsYXRpdmUnO1xyXG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS56SW5kZXggPSAnMTAwJ1xyXG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS50cmFuc2Zvcm0gPSAndHJhbnNsYXRlWSgwcHgpJztcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==