@morozeckiy/dd-lib 0.6.4 → 0.7.35

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 (57) hide show
  1. package/assets/scss/common.scss +5 -0
  2. package/assets/scss/titles.scss +22 -0
  3. package/assets/scss/vars-dark.scss +5 -1
  4. package/assets/scss/vars-light.scss +3 -0
  5. package/esm2022/lib/common/lib-common-button.mjs +6 -3
  6. package/esm2022/lib/common/lib-common-input-text.mjs +28 -2
  7. package/esm2022/lib/core/dialog/modal-base/modal-base.component.mjs +3 -3
  8. package/esm2022/lib/core/directives/drop-down-position.directive.mjs +66 -0
  9. package/esm2022/lib/core/directives/fixed-position.directive.mjs +87 -0
  10. package/esm2022/lib/core/directives/list-keyboard-navigation.directive.mjs +57 -0
  11. package/esm2022/lib/core/directives/phone-mask.directive.mjs +34 -0
  12. package/esm2022/lib/core/directives/selectable-item.directive.mjs +29 -0
  13. package/esm2022/lib/core/index.mjs +6 -1
  14. package/esm2022/lib/lib-calendar/lib-calendar.component.mjs +3 -3
  15. package/esm2022/lib/lib-card/lib-card.component.mjs +3 -3
  16. package/esm2022/lib/lib-checkbox/lib-checkbox.component.mjs +7 -5
  17. package/esm2022/lib/lib-date-input/lib-date-input.component.mjs +117 -0
  18. package/esm2022/lib/lib-date-range/lib-date-range.component.mjs +13 -9
  19. package/esm2022/lib/lib-disclaimer/lib-disclaimer.component.mjs +26 -0
  20. package/esm2022/lib/lib-filter-button/lib-filter-button.component.mjs +1 -1
  21. package/esm2022/lib/lib-input/lib-input.component.mjs +5 -5
  22. package/esm2022/lib/lib-loader/lib-loader.component.mjs +2 -2
  23. package/esm2022/lib/lib-period/lib-period.component.mjs +6 -4
  24. package/esm2022/lib/lib-radio/lib-radio.component.mjs +7 -5
  25. package/esm2022/lib/lib-search-input/lib-search-input.component.mjs +48 -13
  26. package/esm2022/lib/lib-select/lib-select.component.mjs +127 -39
  27. package/esm2022/lib/lib-skeleton/lib-skeleton.component.mjs +3 -3
  28. package/esm2022/lib/lib-tabs-fragment/lib-tabs-fragment.component.mjs +12 -6
  29. package/esm2022/lib/lib-textarea/lib-textarea.component.mjs +6 -3
  30. package/esm2022/public-api.mjs +3 -1
  31. package/fesm2022/morozeckiy-dd-lib.mjs +908 -351
  32. package/fesm2022/morozeckiy-dd-lib.mjs.map +1 -1
  33. package/lib/common/lib-common-button.d.ts +2 -1
  34. package/lib/common/lib-common-input-text.d.ts +8 -3
  35. package/lib/core/directives/drop-down-position.directive.d.ts +17 -0
  36. package/lib/core/directives/fixed-position.directive.d.ts +21 -0
  37. package/lib/core/directives/list-keyboard-navigation.directive.d.ts +11 -0
  38. package/lib/core/directives/phone-mask.directive.d.ts +10 -0
  39. package/lib/core/directives/selectable-item.directive.d.ts +10 -0
  40. package/lib/core/index.d.ts +5 -0
  41. package/lib/core/services/validators.service.d.ts +2 -2
  42. package/lib/lib-card/lib-card.component.d.ts +1 -1
  43. package/lib/lib-checkbox/lib-checkbox.component.d.ts +3 -1
  44. package/lib/lib-date-input/lib-date-input.component.d.ts +29 -0
  45. package/lib/lib-date-range/lib-date-range.component.d.ts +3 -1
  46. package/lib/lib-disclaimer/lib-disclaimer.component.d.ts +10 -0
  47. package/lib/lib-input/lib-input.component.d.ts +2 -1
  48. package/lib/lib-period/lib-period.component.d.ts +3 -2
  49. package/lib/lib-radio/lib-radio.component.d.ts +3 -1
  50. package/lib/lib-search-input/lib-search-input.component.d.ts +11 -6
  51. package/lib/lib-select/lib-select.component.d.ts +17 -7
  52. package/lib/lib-tabs-fragment/lib-tabs-fragment.component.d.ts +4 -2
  53. package/lib/lib-textarea/lib-textarea.component.d.ts +2 -1
  54. package/morozeckiy-dd-lib-0.7.35.tgz +0 -0
  55. package/package.json +1 -1
  56. package/public-api.d.ts +2 -0
  57. package/morozeckiy-dd-lib-0.6.4.tgz +0 -0
@@ -113,6 +113,11 @@ html {
113
113
  }
114
114
  }
115
115
 
116
+ .half-width {
117
+ width: 50%;
118
+ }
119
+
120
+
116
121
  .full-width {
117
122
  width: 100%;
118
123
  }
@@ -139,6 +139,14 @@
139
139
  color: var(--light-black-color);
140
140
  }
141
141
 
142
+ .b1-title {
143
+ font-weight: 400;
144
+ font-size: 18px;
145
+ line-height: 28px;
146
+ cursor: default;
147
+ color: var(--font-light-black-color);
148
+ }
149
+
142
150
  .b2-title {
143
151
  font-size: 16px;
144
152
  font-weight: 500;
@@ -163,7 +171,14 @@
163
171
  line-height: 24px;
164
172
  text-align: left;
165
173
  cursor: default;
174
+ color: var(--font-light-black-color);
175
+ }
166
176
 
177
+ .b5-title {
178
+ font-weight: 500;
179
+ font-size: 14px;
180
+ line-height: 24px;
181
+ letter-spacing: 0;
167
182
  color: var(--font-light-black-color);
168
183
  }
169
184
 
@@ -182,6 +197,7 @@
182
197
  font-weight: 400;
183
198
  cursor: default;
184
199
  line-height: 18px;
200
+ color: var(--font-light-black-color);
185
201
  }
186
202
 
187
203
  .text-plain {
@@ -189,6 +205,7 @@
189
205
  font-weight: 400;
190
206
  cursor: default;
191
207
  line-height: 24px;
208
+ color: var(--font-light-black-color);
192
209
  }
193
210
 
194
211
  .small {
@@ -196,6 +213,7 @@
196
213
  font-weight: 400;
197
214
  line-height: 24px;
198
215
  letter-spacing: 0;
216
+ color: var(--font-light-black-color);
199
217
  }
200
218
 
201
219
  .font-regular {
@@ -224,6 +242,10 @@
224
242
  -webkit-box-orient: vertical;
225
243
  overflow: hidden;
226
244
 
245
+ &.line-2 {
246
+ -webkit-line-clamp: 2;
247
+ }
248
+
227
249
  &.line-3 {
228
250
  -webkit-line-clamp: 3;
229
251
  }
@@ -27,7 +27,7 @@
27
27
 
28
28
  //main
29
29
  --main-bgc: #121212;
30
- --main-layer: #1c2b20;
30
+ --main-layer: var(--dark-green-color);
31
31
  --main-card-color: #1a1a1a;
32
32
  --main-card-shadow: 0 14px 64px -4px #18274b0a, 0 8px 22px -6px #18274b0a;
33
33
  --shared-img-color: #ffffff;
@@ -91,6 +91,9 @@
91
91
  --claim-status-bgc-decided: #07b700;
92
92
  --claim-status-bgc-close: #ff3645;
93
93
 
94
+ //zabota
95
+ --zabota-banner-bgc: var(--dark-green-color);
96
+
94
97
  //district selector
95
98
  --district-color: var(--font-light-black-color);
96
99
 
@@ -109,6 +112,7 @@
109
112
  --light-black-color: #ffffff;
110
113
  --black-color: #D7D7D7;
111
114
  --dark-color: #2e193d;
115
+ --dark-green-color: #1c2b20;
112
116
  --dark-hover-color: #2C173C;
113
117
  --white-color: #1a1a1a;
114
118
  --gray-bgc: #d7d7d7;
@@ -91,6 +91,9 @@
91
91
  --claim-status-bgc-decided: #07b700;
92
92
  --claim-status-bgc-close: #ff3645;
93
93
 
94
+ //zabota
95
+ --zabota-banner-bgc: var(--light-green-color);
96
+
94
97
  //district selector
95
98
  --district-color: var(--font-light-black-color);
96
99
 
@@ -6,13 +6,14 @@ export class LibCommonButtonComponent {
6
6
  this.autofocus = false;
7
7
  this.btnColor = 'green';
8
8
  this.active = false;
9
+ this.activeNoBlock = true;
9
10
  this.disabled = false;
10
11
  this.showLoader = false;
11
12
  this.buttonType = 'button';
12
13
  this.clickEvent = new EventEmitter();
13
14
  }
14
15
  onClick(event) {
15
- if (this.disabled || this.showLoader || this.active) {
16
+ if (this.disabled || this.showLoader || (this.active && !this.activeNoBlock)) {
16
17
  event.stopPropagation();
17
18
  event.preventDefault();
18
19
  }
@@ -23,7 +24,7 @@ export class LibCommonButtonComponent {
23
24
  }
24
25
  }
25
26
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibCommonButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
26
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.2", type: LibCommonButtonComponent, selector: "ng-component", inputs: { width: "width", height: "height", size: "size", fontSize: "fontSize", autofocus: "autofocus", btnColor: "btnColor", active: "active", disabled: "disabled", showLoader: "showLoader", buttonType: "buttonType" }, outputs: { clickEvent: "clickEvent" }, viewQueries: [{ propertyName: "content", first: true, predicate: ["contentData"], descendants: true }, { propertyName: "button", first: true, predicate: ["btn"], descendants: true }], ngImport: i0, template: '', isInline: true }); }
27
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.2", type: LibCommonButtonComponent, selector: "ng-component", inputs: { width: "width", height: "height", size: "size", fontSize: "fontSize", autofocus: "autofocus", btnColor: "btnColor", active: "active", activeNoBlock: "activeNoBlock", disabled: "disabled", showLoader: "showLoader", buttonType: "buttonType" }, outputs: { clickEvent: "clickEvent" }, viewQueries: [{ propertyName: "content", first: true, predicate: ["contentData"], descendants: true }, { propertyName: "button", first: true, predicate: ["btn"], descendants: true }], ngImport: i0, template: '', isInline: true }); }
27
28
  }
28
29
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibCommonButtonComponent, decorators: [{
29
30
  type: Component,
@@ -44,6 +45,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
44
45
  type: Input
45
46
  }], active: [{
46
47
  type: Input
48
+ }], activeNoBlock: [{
49
+ type: Input
47
50
  }], disabled: [{
48
51
  type: Input
49
52
  }], showLoader: [{
@@ -59,4 +62,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
59
62
  }], clickEvent: [{
60
63
  type: Output
61
64
  }] } });
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLWNvbW1vbi1idXR0b24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZC1saWIvc3JjL2xpYi9jb21tb24vbGliLWNvbW1vbi1idXR0b24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSzlGLE1BQU0sT0FBZ0Isd0JBQXdCO0lBSDlDO1FBTWtCLFNBQUksR0FBcUIsRUFBRSxDQUFDO1FBRTVCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsYUFBUSxHQUF1RCxPQUFPLENBQUM7UUFDdkUsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUNmLGFBQVEsR0FBbUIsS0FBSyxDQUFDO1FBRWpDLGVBQVUsR0FBK0IsS0FBSyxDQUFDO1FBQy9DLGVBQVUsR0FBa0MsUUFBUSxDQUFDO1FBS3BELGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0tBWXhEO0lBVlEsT0FBTyxDQUFDLEtBQVk7UUFDekIsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3BELEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN4QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDekIsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sRUFBRSxHQUFHLFFBQVEsQ0FBQyxhQUE0QixDQUFDO1lBQ2pELEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUNiLENBQUM7SUFDSCxDQUFDOzhHQTNCbUIsd0JBQXdCO2tHQUF4Qix3QkFBd0IsK2VBRmxDLEVBQUU7OzJGQUVRLHdCQUF3QjtrQkFIN0MsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsRUFBRTtpQkFDYjs4QkFFaUIsS0FBSztzQkFBcEIsS0FBSztnQkFDVSxNQUFNO3NCQUFyQixLQUFLO2dCQUNVLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxTQUFTO3NCQUF4QixLQUFLO2dCQUNVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQ1UsTUFBTTtzQkFBckIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLO2dCQUVVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsVUFBVTtzQkFBekIsS0FBSztnQkFFOEMsT0FBTztzQkFBMUQsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUNDLE1BQU07c0JBQWpELFNBQVM7dUJBQUMsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFFbEIsVUFBVTtzQkFBMUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlOiAnJyxcclxufSlcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIExpYkNvbW1vbkJ1dHRvbkNvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgcHVibGljIHdpZHRoOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgcHVibGljIGhlaWdodDogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBzaXplOiAnbWQnIHwgJ2xnJyB8ICcnID0gJyc7XHJcbiAgQElucHV0KCkgcHVibGljIGZvbnRTaXplOiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBhdXRvZm9jdXMgPSBmYWxzZTtcclxuICBASW5wdXQoKSBwdWJsaWMgYnRuQ29sb3I6ICd3aGl0ZScgfCAnZ3JlZW4nIHwgJ3JlZCcgfCAndHJhbnNwYXJlbnQnIHwgJ2RhcmsnID0gJ2dyZWVuJztcclxuICBASW5wdXQoKSBwdWJsaWMgYWN0aXZlID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIGRpc2FibGVkOiBib29sZWFuIHwgbnVsbCA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBwdWJsaWMgc2hvd0xvYWRlcjogbnVsbCB8IGJvb2xlYW4gfCB1bmRlZmluZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBwdWJsaWMgYnV0dG9uVHlwZTogJ3N1Ym1pdCcgfCAncmVzZXQnIHwgJ2J1dHRvbicgPSAnYnV0dG9uJztcclxuXHJcbiAgQFZpZXdDaGlsZCgnY29udGVudERhdGEnLCB7IHN0YXRpYzogZmFsc2UgfSkgcHVibGljIGNvbnRlbnQ6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XHJcbiAgQFZpZXdDaGlsZCgnYnRuJywgeyBzdGF0aWM6IGZhbHNlIH0pIHB1YmxpYyBidXR0b246IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XHJcblxyXG4gIEBPdXRwdXQoKSBwdWJsaWMgY2xpY2tFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVsbD4oKTtcclxuXHJcbiAgcHVibGljIG9uQ2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLnNob3dMb2FkZXIgfHwgdGhpcy5hY3RpdmUpIHtcclxuICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNsaWNrRXZlbnQuZW1pdCgpO1xyXG4gICAgICBjb25zdCBlbCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgIGVsPy5ibHVyKCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLWNvbW1vbi1idXR0b24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZC1saWIvc3JjL2xpYi9jb21tb24vbGliLWNvbW1vbi1idXR0b24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSzlGLE1BQU0sT0FBZ0Isd0JBQXdCO0lBSDlDO1FBTWtCLFNBQUksR0FBcUIsRUFBRSxDQUFDO1FBRTVCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsYUFBUSxHQUF1RCxPQUFPLENBQUM7UUFDdkUsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUNmLGtCQUFhLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLGFBQVEsR0FBbUIsS0FBSyxDQUFDO1FBRWpDLGVBQVUsR0FBK0IsS0FBSyxDQUFDO1FBQy9DLGVBQVUsR0FBa0MsUUFBUSxDQUFDO1FBS3BELGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0tBWXhEO0lBVlMsT0FBTyxDQUFDLEtBQVk7UUFDMUIsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7WUFDN0UsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3hCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN6QixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDdkIsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDLGFBQTRCLENBQUM7WUFDakQsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDO1FBQ2IsQ0FBQztJQUNILENBQUM7OEdBNUJtQix3QkFBd0I7a0dBQXhCLHdCQUF3QiwrZ0JBRmxDLEVBQUU7OzJGQUVRLHdCQUF3QjtrQkFIN0MsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsRUFBRTtpQkFDYjs4QkFFaUIsS0FBSztzQkFBcEIsS0FBSztnQkFDVSxNQUFNO3NCQUFyQixLQUFLO2dCQUNVLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxTQUFTO3NCQUF4QixLQUFLO2dCQUNVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQ1UsTUFBTTtzQkFBckIsS0FBSztnQkFDVSxhQUFhO3NCQUE1QixLQUFLO2dCQUNVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBRVUsVUFBVTtzQkFBekIsS0FBSztnQkFDVSxVQUFVO3NCQUF6QixLQUFLO2dCQUU4QyxPQUFPO3NCQUExRCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ0MsTUFBTTtzQkFBakQsU0FBUzt1QkFBQyxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUVsQixVQUFVO3NCQUExQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGU6ICcnLFxyXG59KVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTGliQ29tbW9uQnV0dG9uQ29tcG9uZW50IHtcclxuICBASW5wdXQoKSBwdWJsaWMgd2lkdGg6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBwdWJsaWMgaGVpZ2h0OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgcHVibGljIHNpemU6ICdtZCcgfCAnbGcnIHwgJycgPSAnJztcclxuICBASW5wdXQoKSBwdWJsaWMgZm9udFNpemU6IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgcHVibGljIGF1dG9mb2N1cyA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBidG5Db2xvcjogJ3doaXRlJyB8ICdncmVlbicgfCAncmVkJyB8ICd0cmFuc3BhcmVudCcgfCAnZGFyaycgPSAnZ3JlZW4nO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBhY3RpdmUgPSBmYWxzZTtcclxuICBASW5wdXQoKSBwdWJsaWMgYWN0aXZlTm9CbG9jayA9IHRydWU7XHJcbiAgQElucHV0KCkgcHVibGljIGRpc2FibGVkOiBib29sZWFuIHwgbnVsbCA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBwdWJsaWMgc2hvd0xvYWRlcjogbnVsbCB8IGJvb2xlYW4gfCB1bmRlZmluZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBwdWJsaWMgYnV0dG9uVHlwZTogJ3N1Ym1pdCcgfCAncmVzZXQnIHwgJ2J1dHRvbicgPSAnYnV0dG9uJztcclxuXHJcbiAgQFZpZXdDaGlsZCgnY29udGVudERhdGEnLCB7IHN0YXRpYzogZmFsc2UgfSkgcHVibGljIGNvbnRlbnQ6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XHJcbiAgQFZpZXdDaGlsZCgnYnRuJywgeyBzdGF0aWM6IGZhbHNlIH0pIHB1YmxpYyBidXR0b246IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XHJcblxyXG4gIEBPdXRwdXQoKSBwdWJsaWMgY2xpY2tFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVsbD4oKTtcclxuXHJcbiAgIHB1YmxpYyBvbkNsaWNrKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5zaG93TG9hZGVyIHx8ICh0aGlzLmFjdGl2ZSAmJiAhdGhpcy5hY3RpdmVOb0Jsb2NrKSkge1xyXG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY2xpY2tFdmVudC5lbWl0KCk7XHJcbiAgICAgIGNvbnN0IGVsID0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcclxuICAgICAgZWw/LmJsdXIoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -1,5 +1,6 @@
1
1
  import { Component, EventEmitter, forwardRef, Input, Output, ViewChild, } from '@angular/core';
2
2
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import { ValidatorsService } from "../core";
3
4
  import * as i0 from "@angular/core";
4
5
  export class LibCommonInputTextComponent {
5
6
  get id() {
@@ -14,7 +15,6 @@ export class LibCommonInputTextComponent {
14
15
  this.uppercase = false;
15
16
  this.invalid = false;
16
17
  this.errorTexts = [];
17
- this.side = 'bottom';
18
18
  this.cleared = new EventEmitter();
19
19
  this.fetchEvent = new EventEmitter();
20
20
  this.focus = new EventEmitter();
@@ -23,10 +23,15 @@ export class LibCommonInputTextComponent {
23
23
  this.focused = false;
24
24
  this.touched = false;
25
25
  this.value = '';
26
+ this.dropdownStyle = { top: '100%', left: '0' };
26
27
  this.destroyed = false;
27
28
  this._ID = '';
28
29
  this.changeDetection = changeDetection;
29
30
  }
31
+ ngAfterViewChecked() {
32
+ this.changeDetection.markForCheck();
33
+ this.errorText = ValidatorsService.getErrorText(this.control?.errors);
34
+ }
30
35
  get invalidState() {
31
36
  return this.invalid || this.control ? this.control.invalid : false;
32
37
  }
@@ -44,6 +49,7 @@ export class LibCommonInputTextComponent {
44
49
  }
45
50
  notifyFocusEvent(e) {
46
51
  // this.focusManager.notifyFocusMayChanged(this, e.type === 'focus');
52
+ this.blur.emit(this.value);
47
53
  }
48
54
  handleBlur() {
49
55
  this.focused = false;
@@ -92,6 +98,26 @@ export class LibCommonInputTextComponent {
92
98
  }
93
99
  }
94
100
  commit(_value) { }
101
+ updateDropdownPosition(el, data, itemSize, dHeight) {
102
+ const rect = el.nativeElement.getBoundingClientRect();
103
+ const itemHeight = data?.length ? data?.length * itemSize : 0;
104
+ const dropdownHeight = ((itemHeight > 0) && (itemHeight > dHeight)) ? dHeight : itemHeight; // Примерная высота дропдауна
105
+ const spaceBelow = window.innerHeight - rect.bottom;
106
+ const spaceAbove = rect.top;
107
+ // Если достаточно места ниже, оставляем его там
108
+ if (spaceBelow >= dropdownHeight) {
109
+ this.dropdownStyle = { top: '100%', left: '0' };
110
+ }
111
+ // Если не хватает места ниже, но есть место выше
112
+ else if (spaceAbove >= dropdownHeight) {
113
+ const label = this.label ? 26 : 0;
114
+ this.dropdownStyle = { top: `-${dropdownHeight - label}px`, left: '0' };
115
+ }
116
+ // Если недостаточно места ни вверху, ни внизу
117
+ else {
118
+ this.dropdownStyle = { top: '100%', left: '0' };
119
+ }
120
+ }
95
121
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibCommonInputTextComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
96
122
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.2", type: LibCommonInputTextComponent, selector: "dd-lib-common-input", inputs: { name: "name", label: "label", formControlName: "formControlName", type: "type", contextClass: "contextClass", minlength: "minlength", min: "min", maxlength: "maxlength", max: "max", placeholder: "placeholder", autocomplete: "autocomplete", tabIndex: "tabIndex", readOnly: "readOnly", autofocus: "autofocus", fetchMode: "fetchMode", required: "required", disabled: "disabled", commitOnInput: "commitOnInput", clearable: "clearable", showSelfError: "showSelfError", uppercase: "uppercase", invalid: "invalid", errorTexts: "errorTexts", side: "side" }, outputs: { cleared: "cleared", fetchEvent: "fetchEvent", focus: "focus", blur: "blur", fullBlur: "fullBlur" }, providers: [
97
123
  {
@@ -182,4 +208,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
182
208
  }], fullBlur: [{
183
209
  type: Output
184
210
  }] } });
185
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLWNvbW1vbi1pbnB1dC10ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGQtbGliL3NyYy9saWIvY29tbW9uL2xpYi1jb21tb24taW5wdXQtdGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUVULFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFrQixpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDOztBQWFsRSxNQUFNLE9BQWdCLDJCQUEyQjtJQWlDL0MsSUFBVyxFQUFFO1FBQ1gsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ2xCLENBQUM7SUFZRCxZQUFzQixlQUFrQztRQTVCeEMsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGtCQUFhLEdBQUcsSUFBSSxDQUFDLENBQUMsbUNBQW1DO1FBQ3pELGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakIsa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFDckIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLGVBQVUsR0FBYSxFQUFFLENBQUM7UUFDM0IsU0FBSSxHQUFxQixRQUFRLENBQUM7UUFDaEMsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDbkMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDckMsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDaEMsU0FBSSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDL0IsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFTLENBQUM7UUFNL0MsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRWhCLFVBQUss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QUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLO2dCQUNVLGFBQWE7c0JBQTVCLEtBQUs7Z0JBQ1UsU0FBUztzQkFBeEIsS0FBSztnQkFDVSxhQUFhO3NCQUE1QixLQUFLO2dCQUNVLFNBQVM7c0JBQXhCLEtBQUs7Z0JBQ1UsT0FBTztzQkFBdEIsS0FBSztnQkFDVSxVQUFVO3NCQUF6QixLQUFLO2dCQUNTLElBQUk7c0JBQWxCLEtBQUs7Z0JBQ1csT0FBTztzQkFBdkIsTUFBTTtnQkFDVSxVQUFVO3NCQUExQixNQUFNO2dCQUNVLEtBQUs7c0JBQXJCLE1BQU07Z0JBQ1UsSUFBSTtzQkFBcEIsTUFBTTtnQkFDVSxRQUFRO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgZm9yd2FyZFJlZixcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0Fic3RyYWN0Q29udHJvbCwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZGQtbGliLWNvbW1vbi1pbnB1dCcsXHJcbiAgdGVtcGxhdGU6ICcnLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTGliQ29tbW9uSW5wdXRUZXh0Q29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBMaWJDb21tb25JbnB1dFRleHRDb21wb25lbnQge1xyXG4gIEBWaWV3Q2hpbGQoJ3NlYXJjaElucHV0JykgcHJvdGVjdGVkIGlucHV0U2VhcmNoRWxlbWVudDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PiB8IHVuZGVmaW5lZDtcclxuICBAVmlld0NoaWxkKCdpbnB1dCcpIHByb3RlY3RlZCBpbnB1dEVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4gfCB1bmRlZmluZWQ7XHJcbiAgQFZpZXdDaGlsZCgndGV4dGFyZWEnKSBwcm90ZWN0ZWQgdGV4dEFyZWFFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxUZXh0QXJlYUVsZW1lbnQ+IHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBuYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgcHVibGljIGxhYmVsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgcHVibGljIGZvcm1Db250cm9sTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB0eXBlOiAncGFzc3dvcmQnIHwgJ2VtYWlsJyB8ICdudW1iZXInIHwgJ3RleHQnIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjb250ZXh0Q2xhc3M6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBwdWJsaWMgbWlubGVuZ3RoOiBzdHJpbmcgfCBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgcHVibGljIG1pbjogc3RyaW5nIHwgbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBtYXhsZW5ndGg6IHN0cmluZyB8IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBwdWJsaWMgbWF4OiBzdHJpbmcgfCBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgcHVibGljIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBhdXRvY29tcGxldGU/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcHVibGljIHRhYkluZGV4Pzogc3RyaW5nIHwgbnVtYmVyO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyByZWFkT25seT86IGJvb2xlYW47XHJcbiAgQElucHV0KCkgcHVibGljIGF1dG9mb2N1cz86IGJvb2xlYW47XHJcbiAgQElucHV0KCkgcHVibGljIGZldGNoTW9kZT86IGJvb2xlYW47IC8vINGA0LDQsdC+0YLQsNC10YIgZmV0Y2hFdmVudCDQv9GA0Lgg0LrQu9C40LrQtVxyXG4gIEBJbnB1dCgpIHB1YmxpYyByZXF1aXJlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjb21taXRPbklucHV0ID0gdHJ1ZTsgLy8g0LrQvtC80LzQuNGC0LjRgtGMINC/0L4gaW5wdXQg0LjQu9C4INC/0L4gY2hhbmdlXHJcbiAgQElucHV0KCkgcHVibGljIGNsZWFyYWJsZSA9IHRydWU7XHJcbiAgQElucHV0KCkgcHVibGljIHNob3dTZWxmRXJyb3IgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB1cHBlcmNhc2UgPSBmYWxzZTtcclxuICBASW5wdXQoKSBwdWJsaWMgaW52YWxpZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBlcnJvclRleHRzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIEBJbnB1dCgpcHVibGljIHNpZGU6ICd0b3AnIHwgJ2JvdHRvbScgPSAnYm90dG9tJztcclxuICBAT3V0cHV0KCkgcHVibGljIGNsZWFyZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQE91dHB1dCgpIHB1YmxpYyBmZXRjaEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIHB1YmxpYyBmb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgYmx1ciA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgZnVsbEJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xyXG4gIHB1YmxpYyBnZXQgaWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fSUQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZXJyb3JUZXh0OiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgcHVibGljIGZvY3VzZWQgPSBmYWxzZTtcclxuICBwdWJsaWMgdG91Y2hlZCA9IGZhbHNlO1xyXG4gIHB1YmxpYyBjb250cm9sOiBBYnN0cmFjdENvbnRyb2wgfCB1bmRlZmluZWQgfCBudWxsO1xyXG4gIHB1YmxpYyB2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkID0gJyc7XHJcbiAgcHVibGljIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0b3JSZWY7XHJcbiAgcHJvdGVjdGVkIGRlc3Ryb3llZCA9IGZhbHNlO1xyXG4gIHByb3RlY3RlZCBvblRvdWNoZWRDYWxsYmFjazogKCgpID0+IHZvaWQpIHwgdW5kZWZpbmVkO1xyXG4gIHByaXZhdGUgX0lEID0gJyc7XHJcblxyXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgICB0aGlzLmNoYW5nZURldGVjdGlvbiA9IGNoYW5nZURldGVjdGlvbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgaW52YWxpZFN0YXRlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaW52YWxpZCB8fCB0aGlzLmNvbnRyb2wgPyB0aGlzLmNvbnRyb2whLmludmFsaWQgOiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2hvd0Vycm9yKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCF0aGlzLmNvbnRyb2wpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuaW52YWxpZDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCB7IGRpcnR5LCB0b3VjaGVkIH0gPSB0aGlzLmNvbnRyb2w7XHJcbiAgICByZXR1cm4gdGhpcy5pbnZhbGlkU3RhdGUgPyAoKGRpcnR5IHx8IHRvdWNoZWQpICYmICF0aGlzLmZvY3VzZWQpIDogZmFsc2U7XHJcbiAgfVxyXG4gIHB1YmxpYyBoYW5kbGVJbnB1dChfZTogRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmNvbW1pdE9uSW5wdXQpIHtcclxuICAgICAgdGhpcy5jb21taXQodGhpcy52YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgcHVibGljIG5vdGlmeUZvY3VzRXZlbnQoZTogRXZlbnQpOiB2b2lkIHtcclxuICAgIC8vIHRoaXMuZm9jdXNNYW5hZ2VyLm5vdGlmeUZvY3VzTWF5Q2hhbmdlZCh0aGlzLCBlLnR5cGUgPT09ICdmb2N1cycpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUJsdXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvY3VzZWQgPSBmYWxzZTtcclxuICAgIGlmICh0aGlzLm9uVG91Y2hlZENhbGxiYWNrKSB7XHJcbiAgICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2soKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmJsdXIuZW1pdCgpO1xyXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rpb24uZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUZvY3VzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb2N1c2VkID0gdGhpcy50b3VjaGVkID0gdHJ1ZTtcclxuICAgIGlmICh0aGlzLm9uVG91Y2hlZENhbGxiYWNrKSB7XHJcbiAgICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2soKTtcclxuICAgIH1cclxuICAgIHRoaXMuZm9jdXMuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJldHVybkZvY3VzKGU/OiBFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLmlucHV0RWxlbWVudCAmJlxyXG4gICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50ICYmXHJcbiAgICAgICghZSB8fCBlLnRhcmdldCAhPT0gdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudClcclxuICAgICkge1xyXG4gICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICAgIC8vIEhlbHBlclNlcnZpY2UucmVzZXRTZWxlY3Rpb24odGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbG9zZUZvY3VzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbnB1dEVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQuYmx1cigpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGZvcmNlQ2hhbmdlKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaW5wdXRFbGVtZW50KSB7XHJcbiAgICAgIC8vIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZGlzcGF0Y2hFdmVudChIZWxwZXJTZXJ2aWNlLmNyZWF0ZUV2ZW50KCdjaGFuZ2UnLCB0cnVlLCBmYWxzZSkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5jb21taXQgPSBmbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrID0gZm47XHJcbiAgfVxyXG5cclxuICAvLyBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgLy8gICBjb25zb2xlLmxvZyhpc0Rpc2FibGVkKVxyXG4gIC8vICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XHJcbiAgLy8gfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlQ2hhbmdlKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmNvbW1pdE9uSW5wdXQpIHtcclxuICAgICAgdGhpcy5jb21taXQodGhpcy52YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY29tbWl0KF92YWx1ZTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IHZvaWQge31cclxufVxyXG4iXX0=
211
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLWNvbW1vbi1pbnB1dC10ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGQtbGliL3NyYy9saWIvY29tbW9uL2xpYi1jb21tb24taW5wdXQtdGV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsU0FBUyxFQUVULFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFrQixpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLFNBQVMsQ0FBQzs7QUFhMUMsTUFBTSxPQUFnQiwyQkFBMkI7SUFpQy9DLElBQVcsRUFBRTtRQUNYLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNsQixDQUFDO0lBYUQsWUFBc0IsZUFBa0M7UUE3QnhDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixrQkFBYSxHQUFHLElBQUksQ0FBQyxDQUFDLG1DQUFtQztRQUN6RCxjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLGtCQUFhLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixlQUFVLEdBQWEsRUFBRSxDQUFDO1FBRXpCLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ25DLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3JDLFVBQUssR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ2hDLFNBQUksR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQy9CLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBUyxDQUFDO1FBTS9DLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUVoQixVQUFLLEdBQXVCLEVBQUUsQ0FBQztRQUUvQixrQkFBYSxHQUE4QixFQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBQyxDQUFDO1FBQ2pFLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFFcEIsUUFBRyxHQUFHLEVBQUUsQ0FBQztRQUdmLElBQUksQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFDO0lBQ3pDLENBQUM7SUFFTSxrQkFBa0I7UUFDdkIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQTtRQUNuQyxJQUFJLENBQUMsU0FBUyxHQUFHLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFBO0lBRXZFLENBQUM7SUFFRCxJQUFXLFlBQVk7UUFDckIsT0FBTyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDdEUsQ0FBQztJQUVELElBQVcsU0FBUztRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2xCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUN0QixDQUFDO1FBRUQsTUFBTSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQzNFLENBQUM7SUFDTSxXQUFXLENBQUMsRUFBUztRQUMxQixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQixDQUFDO0lBQ0gsQ0FBQztJQUdNLGdCQUFnQixDQUFDLENBQVE7UUFDOUIscUVBQXFFO1FBQ3JFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUM1QixDQUFDO0lBRU0sVUFBVTtRQUNmLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDM0IsQ0FBQztRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ25DLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDM0IsQ0FBQztRQUNELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVNLFdBQVcsQ0FBQyxDQUFTO1FBQzFCLElBQ0UsSUFBSSxDQUFDLFlBQVk7WUFDakIsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhO1lBQy9CLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxFQUNwRCxDQUFDO1lBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDeEMsaUVBQWlFO1FBQ25FLENBQUM7SUFDSCxDQUFDO0lBRU0sU0FBUztRQUNkLElBQUksQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLG1HQUFtRztRQUNyRyxDQUFDO0lBQ0gsQ0FBQztJQUVNLGdCQUFnQixDQUFDLEVBQU87UUFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVNLGlCQUFpQixDQUFDLEVBQU87UUFDOUIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsdURBQXVEO0lBQ3ZELDRCQUE0QjtJQUM1QixnQ0FBZ0M7SUFDaEMsSUFBSTtJQUVHLFlBQVk7UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQixDQUFDO0lBQ0gsQ0FBQztJQUVNLE1BQU0sQ0FBQyxNQUFpQyxJQUFTLENBQUM7SUFFbEQsc0JBQXNCLENBQUMsRUFBYyxFQUFFLElBQVcsRUFBRSxRQUFnQixFQUFFLE9BQWU7UUFDMUYsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ3RELE1BQU0sVUFBVSxHQUFHLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxNQUFNLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUQsTUFBTSxjQUFjLEdBQUcsQ0FBQyxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLDZCQUE2QjtRQUN6SCxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDcEQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUU1QixnREFBZ0Q7UUFDaEQsSUFBSSxVQUFVLElBQUksY0FBYyxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBQyxDQUFDO1FBQ2hELENBQUM7UUFDRCxpREFBaUQ7YUFDNUMsSUFBSSxVQUFVLElBQUksY0FBYyxFQUFFLENBQUM7WUFDdEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFDLEdBQUcsRUFBRSxJQUFJLGNBQWMsR0FBRyxLQUFLLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFDLENBQUM7UUFDeEUsQ0FBQztRQUNELDhDQUE4QzthQUN6QyxDQUFDO1lBQ0osSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBQyxDQUFDO1FBQ2hELENBQUM7SUFDSCxDQUFDOzhHQWxLbUIsMkJBQTJCO2tHQUEzQiwyQkFBMkIsNnNCQVJwQztZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsMkJBQTJCLENBQUM7Z0JBQzFELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRixtVUFQUyxFQUFFOzsyRkFTUSwyQkFBMkI7a0JBWGhELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsUUFBUSxFQUFFLEVBQUU7b0JBQ1osU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDRCQUE0QixDQUFDOzRCQUMxRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpQkFDRjtzRkFFcUMsa0JBQWtCO3NCQUFyRCxTQUFTO3VCQUFDLGFBQWE7Z0JBQ00sWUFBWTtzQkFBekMsU0FBUzt1QkFBQyxPQUFPO2dCQUNlLGVBQWU7c0JBQS9DLFNBQVM7dUJBQUMsVUFBVTtnQkFDTCxJQUFJO3NCQUFuQixLQUFLO2dCQUNVLEtBQUs7c0JBQXBCLEtBQUs7Z0JBQ1UsZUFBZTtzQkFBOUIsS0FBSztnQkFDVSxJQUFJO3NCQUFuQixLQUFLO2dCQUNVLFlBQVk7c0JBQTNCLEtBQUs7Z0JBQ1UsU0FBUztzQkFBeEIsS0FBSztnQkFDVSxHQUFHO3NCQUFsQixLQUFLO2dCQUNVLFNBQVM7c0JBQXhCLEtBQUs7Z0JBQ1UsR0FBRztzQkFBbEIsS0FBSztnQkFDVSxXQUFXO3NCQUExQixLQUFLO2dCQUNVLFlBQVk7c0JBQTNCLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLO2dCQUNVLFNBQVM7c0JBQXhCLEtBQUs7Z0JBQ1UsU0FBUztzQkFBeEIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLO2dCQUNVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQ1UsYUFBYTtzQkFBNUIsS0FBSztnQkFDVSxTQUFTO3NCQUF4QixLQUFLO2dCQUNVLGFBQWE7c0JBQTVCLEtBQUs7Z0JBQ1UsU0FBUztzQkFBeEIsS0FBSztnQkFDVSxPQUFPO3NCQUF0QixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsSUFBSTtzQkFBbkIsS0FBSztnQkFDVyxPQUFPO3NCQUF2QixNQUFNO2dCQUNVLFVBQVU7c0JBQTFCLE1BQU07Z0JBQ1UsS0FBSztzQkFBckIsTUFBTTtnQkFDVSxJQUFJO3NCQUFwQixNQUFNO2dCQUNVLFFBQVE7c0JBQXhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0NoZWNrZWQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgSW5wdXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtBYnN0cmFjdENvbnRyb2wsIE5HX1ZBTFVFX0FDQ0VTU09SfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7VmFsaWRhdG9yc1NlcnZpY2V9IGZyb20gXCIuLi9jb3JlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2RkLWxpYi1jb21tb24taW5wdXQnLFxyXG4gIHRlbXBsYXRlOiAnJyxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IExpYkNvbW1vbklucHV0VGV4dENvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTGliQ29tbW9uSW5wdXRUZXh0Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3Q2hlY2tlZCB7XHJcbiAgQFZpZXdDaGlsZCgnc2VhcmNoSW5wdXQnKSBwcm90ZWN0ZWQgaW5wdXRTZWFyY2hFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+IHwgdW5kZWZpbmVkO1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0JykgcHJvdGVjdGVkIGlucHV0RWxlbWVudDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PiB8IHVuZGVmaW5lZDtcclxuICBAVmlld0NoaWxkKCd0ZXh0YXJlYScpIHByb3RlY3RlZCB0ZXh0QXJlYUVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTFRleHRBcmVhRWxlbWVudD4gfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgcHVibGljIG5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBwdWJsaWMgbGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBwdWJsaWMgZm9ybUNvbnRyb2xOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgcHVibGljIHR5cGU6ICdwYXNzd29yZCcgfCAnZW1haWwnIHwgJ251bWJlcicgfCAndGV4dCcgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgcHVibGljIGNvbnRleHRDbGFzczogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBtaW5sZW5ndGg6IHN0cmluZyB8IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBwdWJsaWMgbWluOiBzdHJpbmcgfCBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgcHVibGljIG1heGxlbmd0aDogc3RyaW5nIHwgbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBtYXg6IHN0cmluZyB8IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBwdWJsaWMgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcHVibGljIGF1dG9jb21wbGV0ZT86IHN0cmluZztcclxuICBASW5wdXQoKSBwdWJsaWMgdGFiSW5kZXg/OiBzdHJpbmcgfCBudW1iZXI7XHJcbiAgQElucHV0KCkgcHVibGljIHJlYWRPbmx5PzogYm9vbGVhbjtcclxuICBASW5wdXQoKSBwdWJsaWMgYXV0b2ZvY3VzPzogYm9vbGVhbjtcclxuICBASW5wdXQoKSBwdWJsaWMgZmV0Y2hNb2RlPzogYm9vbGVhbjsgLy8g0YDQsNCx0L7RgtCw0LXRgiBmZXRjaEV2ZW50INC/0YDQuCDQutC70LjQutC1XHJcbiAgQElucHV0KCkgcHVibGljIHJlcXVpcmVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIGNvbW1pdE9uSW5wdXQgPSB0cnVlOyAvLyDQutC+0LzQvNC40YLQuNGC0Ywg0L/QviBpbnB1dCDQuNC70Lgg0L/QviBjaGFuZ2VcclxuICBASW5wdXQoKSBwdWJsaWMgY2xlYXJhYmxlID0gdHJ1ZTtcclxuICBASW5wdXQoKSBwdWJsaWMgc2hvd1NlbGZFcnJvciA9IHRydWU7XHJcbiAgQElucHV0KCkgcHVibGljIHVwcGVyY2FzZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpbnZhbGlkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIGVycm9yVGV4dHM6IHN0cmluZ1tdID0gW107XHJcbiAgQElucHV0KCkgcHVibGljIHNpZGU/OiAndG9wJyB8ICdib3R0b20nO1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgY2xlYXJlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBAT3V0cHV0KCkgcHVibGljIGZldGNoRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgcHVibGljIGZvY3VzID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIHB1YmxpYyBibHVyID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIHB1YmxpYyBmdWxsQmx1ciA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XHJcbiAgcHVibGljIGdldCBpZCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9JRDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBlcnJvclRleHQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBwdWJsaWMgZm9jdXNlZCA9IGZhbHNlO1xyXG4gIHB1YmxpYyB0b3VjaGVkID0gZmFsc2U7XHJcbiAgcHVibGljIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCB8IHVuZGVmaW5lZCB8IG51bGw7XHJcbiAgcHVibGljIHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQgPSAnJztcclxuICBwdWJsaWMgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3RvclJlZjtcclxuICBwdWJsaWMgZHJvcGRvd25TdHlsZTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt0b3A6ICcxMDAlJywgbGVmdDogJzAnfTtcclxuICBwcm90ZWN0ZWQgZGVzdHJveWVkID0gZmFsc2U7XHJcbiAgcHJvdGVjdGVkIG9uVG91Y2hlZENhbGxiYWNrOiAoKCkgPT4gdm9pZCkgfCB1bmRlZmluZWQ7XHJcbiAgcHJpdmF0ZSBfSUQgPSAnJztcclxuXHJcbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0aW9uID0gY2hhbmdlRGV0ZWN0aW9uO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nQWZ0ZXJWaWV3Q2hlY2tlZCAoKSB7XHJcbiAgICB0aGlzLmNoYW5nZURldGVjdGlvbi5tYXJrRm9yQ2hlY2soKVxyXG4gICAgdGhpcy5lcnJvclRleHQgPSBWYWxpZGF0b3JzU2VydmljZS5nZXRFcnJvclRleHQodGhpcy5jb250cm9sPy5lcnJvcnMpXHJcblxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBpbnZhbGlkU3RhdGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5pbnZhbGlkIHx8IHRoaXMuY29udHJvbCA/IHRoaXMuY29udHJvbCEuaW52YWxpZCA6IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBzaG93RXJyb3IoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXRoaXMuY29udHJvbCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5pbnZhbGlkO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHsgZGlydHksIHRvdWNoZWQgfSA9IHRoaXMuY29udHJvbDtcclxuICAgIHJldHVybiB0aGlzLmludmFsaWRTdGF0ZSA/ICgoZGlydHkgfHwgdG91Y2hlZCkgJiYgIXRoaXMuZm9jdXNlZCkgOiBmYWxzZTtcclxuICB9XHJcbiAgcHVibGljIGhhbmRsZUlucHV0KF9lOiBFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuY29tbWl0T25JbnB1dCkge1xyXG4gICAgICB0aGlzLmNvbW1pdCh0aGlzLnZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBwdWJsaWMgbm90aWZ5Rm9jdXNFdmVudChlOiBFdmVudCk6IHZvaWQge1xyXG4gICAgLy8gdGhpcy5mb2N1c01hbmFnZXIubm90aWZ5Rm9jdXNNYXlDaGFuZ2VkKHRoaXMsIGUudHlwZSA9PT0gJ2ZvY3VzJyk7XHJcbiAgICB0aGlzLmJsdXIuZW1pdCh0aGlzLnZhbHVlKVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUJsdXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvY3VzZWQgPSBmYWxzZTtcclxuICAgIGlmICh0aGlzLm9uVG91Y2hlZENhbGxiYWNrKSB7XHJcbiAgICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2soKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmJsdXIuZW1pdCgpO1xyXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rpb24uZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZUZvY3VzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb2N1c2VkID0gdGhpcy50b3VjaGVkID0gdHJ1ZTtcclxuICAgIGlmICh0aGlzLm9uVG91Y2hlZENhbGxiYWNrKSB7XHJcbiAgICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2soKTtcclxuICAgIH1cclxuICAgIHRoaXMuZm9jdXMuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJldHVybkZvY3VzKGU/OiBFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLmlucHV0RWxlbWVudCAmJlxyXG4gICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50ICYmXHJcbiAgICAgICghZSB8fCBlLnRhcmdldCAhPT0gdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudClcclxuICAgICkge1xyXG4gICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICAgIC8vIEhlbHBlclNlcnZpY2UucmVzZXRTZWxlY3Rpb24odGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbG9zZUZvY3VzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbnB1dEVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQuYmx1cigpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGZvcmNlQ2hhbmdlKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuaW5wdXRFbGVtZW50KSB7XHJcbiAgICAgIC8vIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZGlzcGF0Y2hFdmVudChIZWxwZXJTZXJ2aWNlLmNyZWF0ZUV2ZW50KCdjaGFuZ2UnLCB0cnVlLCBmYWxzZSkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5jb21taXQgPSBmbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrID0gZm47XHJcbiAgfVxyXG5cclxuICAvLyBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgLy8gICBjb25zb2xlLmxvZyhpc0Rpc2FibGVkKVxyXG4gIC8vICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XHJcbiAgLy8gfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlQ2hhbmdlKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmNvbW1pdE9uSW5wdXQpIHtcclxuICAgICAgdGhpcy5jb21taXQodGhpcy52YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY29tbWl0KF92YWx1ZTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IHZvaWQge31cclxuXHJcbiAgcHVibGljIHVwZGF0ZURyb3Bkb3duUG9zaXRpb24oZWw6IEVsZW1lbnRSZWYsIGRhdGE6IGFueVtdLCBpdGVtU2l6ZTogbnVtYmVyLCBkSGVpZ2h0OiBudW1iZXIpIHtcclxuICAgIGNvbnN0IHJlY3QgPSBlbC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgY29uc3QgaXRlbUhlaWdodCA9IGRhdGE/Lmxlbmd0aCA/IGRhdGE/Lmxlbmd0aCAqIGl0ZW1TaXplIDogMDtcclxuICAgIGNvbnN0IGRyb3Bkb3duSGVpZ2h0ID0gKChpdGVtSGVpZ2h0ID4gMCkgJiYgKGl0ZW1IZWlnaHQgPiBkSGVpZ2h0KSkgPyBkSGVpZ2h0IDogaXRlbUhlaWdodDsgLy8g0J/RgNC40LzQtdGA0L3QsNGPINCy0YvRgdC+0YLQsCDQtNGA0L7Qv9C00LDRg9C90LBcclxuICAgIGNvbnN0IHNwYWNlQmVsb3cgPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSByZWN0LmJvdHRvbTtcclxuICAgIGNvbnN0IHNwYWNlQWJvdmUgPSByZWN0LnRvcDtcclxuXHJcbiAgICAvLyDQldGB0LvQuCDQtNC+0YHRgtCw0YLQvtGH0L3QviDQvNC10YHRgtCwINC90LjQttC1LCDQvtGB0YLQsNCy0LvRj9C10Lwg0LXQs9C+INGC0LDQvFxyXG4gICAgaWYgKHNwYWNlQmVsb3cgPj0gZHJvcGRvd25IZWlnaHQpIHtcclxuICAgICAgdGhpcy5kcm9wZG93blN0eWxlID0ge3RvcDogJzEwMCUnLCBsZWZ0OiAnMCd9O1xyXG4gICAgfVxyXG4gICAgLy8g0JXRgdC70Lgg0L3QtSDRhdCy0LDRgtCw0LXRgiDQvNC10YHRgtCwINC90LjQttC1LCDQvdC+INC10YHRgtGMINC80LXRgdGC0L4g0LLRi9GI0LVcclxuICAgIGVsc2UgaWYgKHNwYWNlQWJvdmUgPj0gZHJvcGRvd25IZWlnaHQpIHtcclxuICAgICAgY29uc3QgbGFiZWwgPSB0aGlzLmxhYmVsID8gMjYgOiAwO1xyXG4gICAgICB0aGlzLmRyb3Bkb3duU3R5bGUgPSB7dG9wOiBgLSR7ZHJvcGRvd25IZWlnaHQgLSBsYWJlbH1weGAsIGxlZnQ6ICcwJ307XHJcbiAgICB9XHJcbiAgICAvLyDQldGB0LvQuCDQvdC10LTQvtGB0YLQsNGC0L7Rh9C90L4g0LzQtdGB0YLQsCDQvdC4INCy0LLQtdGA0YXRgywg0L3QuCDQstC90LjQt9GDXHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5kcm9wZG93blN0eWxlID0ge3RvcDogJzEwMCUnLCBsZWZ0OiAnMCd9O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -28,11 +28,11 @@ export class ModalBaseComponent {
28
28
  this.dialog.close();
29
29
  }
30
30
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: ModalBaseComponent, deps: [{ token: i1.ActivatedRoute }, { token: i1.Router }, { token: i2.DDDialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
31
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: ModalBaseComponent, isStandalone: true, selector: "dd-modal-base", inputs: { content: "content", component: "component", clearFragment: "clearFragment", borderMobile: "borderMobile", showLoader: "showLoader", showContentLoader: "showContentLoader" }, host: { listeners: { "document:keydown": "onKeydownComponent($event)" } }, ngImport: i0, template: "<div class=\"popup\" [class.border-mobile]=\"borderMobile\">\r\n @if (showContentLoader) {\r\n <div class=\"loader-modal\">\r\n <dd-lib-loader size=\"giant\"></dd-lib-loader>\r\n </div>\r\n } @else {\r\n <div (click)=\"close()\" class=\"popup__close\"></div>\r\n @if (content) {\r\n <div class=\"popup__content\">\r\n <ng-template [ngTemplateOutletContext]=\"{ data }\" [ngTemplateOutlet]=\"content\"></ng-template>\r\n </div>\r\n }\r\n @if (component) {\r\n <div class=\"popup__content\">\r\n <ng-template [ngComponentOutlet]=\"component\"></ng-template>\r\n </div>\r\n } @else {\r\n <ng-content></ng-content>\r\n }\r\n }\r\n\r\n @if (showLoader) {\r\n <div class=\"loader-modal\">\r\n <dd-lib-loader size=\"giant\"></dd-lib-loader>\r\n </div>\r\n }\r\n</div>\r\n", styles: [".popup{position:relative;max-width:var(--main-body-width);border-radius:24px;background:var(--white-color)}.popup .loader-modal{position:absolute;width:100%;height:100%;top:0;display:flex;align-items:center;justify-content:center;border-radius:24px;background:#251c2c33}@media screen and (max-width: 1320px){.popup{max-width:100%}}@media screen and (max-width: 480px){.popup{border-radius:0}}@media screen and (max-width: 480px){.popup.border-mobile{border-radius:24px}}.popup__close{position:absolute;top:24px;right:24px;width:20px;height:20px;background:url('data:image/svg+xml,<svg fill=\"none\" height=\"20\" viewBox=\"0 0 20 20\" width=\"20\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A <g clip-path=\"url(%23clip0_355_22081)\">%0D%0A <path d=\"M15 5L5 15\" stroke=\"%23A79BAD\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\"/>%0D%0A <path d=\"M5 5L15 15\" stroke=\"%23A79BAD\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\"/>%0D%0A </g>%0D%0A <defs>%0D%0A <clipPath id=\"clip0_355_22081\">%0D%0A <rect fill=\"white\" height=\"20\" width=\"20\"/>%0D%0A </clipPath>%0D%0A </defs>%0D%0A</svg>%0D%0A') no-repeat center;cursor:pointer}@media screen and (max-width: 480px){.popup__close{top:16px;right:16px}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "component", type: LibLoaderComponent, selector: "dd-lib-loader", inputs: ["color", "size"] }] }); }
31
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: ModalBaseComponent, isStandalone: true, selector: "dd-modal-base", inputs: { content: "content", component: "component", clearFragment: "clearFragment", borderMobile: "borderMobile", showLoader: "showLoader", showContentLoader: "showContentLoader" }, host: { listeners: { "document:keydown": "onKeydownComponent($event)" } }, ngImport: i0, template: "<div class=\"popup\" [class.border-mobile]=\"borderMobile\">\r\n @if (showContentLoader) {\r\n <div class=\"loader-modal\">\r\n <dd-lib-loader size=\"giant\"></dd-lib-loader>\r\n </div>\r\n } @else {\r\n <div (click)=\"close()\" class=\"popup__close\"></div>\r\n @if (content) {\r\n <div class=\"popup__content\">\r\n <ng-template [ngTemplateOutletContext]=\"{ data }\" [ngTemplateOutlet]=\"content\"></ng-template>\r\n </div>\r\n }\r\n @if (component) {\r\n <div class=\"popup__content\">\r\n <ng-template [ngComponentOutlet]=\"component\"></ng-template>\r\n </div>\r\n } @else {\r\n <ng-content></ng-content>\r\n }\r\n }\r\n\r\n @if (showLoader) {\r\n <div class=\"loader-modal\">\r\n <dd-lib-loader size=\"giant\"></dd-lib-loader>\r\n </div>\r\n }\r\n</div>\r\n", styles: [".popup{position:relative;max-width:var(--main-body-width);border-radius:24px;background:var(--white-color)}.popup .loader-modal{position:absolute;width:100%;height:100%;top:0;display:flex;align-items:center;justify-content:center;border-radius:24px;background:#251c2c33}@media screen and (max-width: 1320px){.popup{max-width:100%}}@media screen and (max-width: 480px){.popup{border-radius:0}}@media screen and (max-width: 480px){.popup.border-mobile{border-radius:24px}}.popup__close{z-index:1;position:absolute;top:24px;right:24px;width:20px;height:20px;background:url('data:image/svg+xml,<svg fill=\"none\" height=\"20\" viewBox=\"0 0 20 20\" width=\"20\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A <g clip-path=\"url(%23clip0_355_22081)\">%0D%0A <path d=\"M15 5L5 15\" stroke=\"%23A79BAD\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\"/>%0D%0A <path d=\"M5 5L15 15\" stroke=\"%23A79BAD\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\"/>%0D%0A </g>%0D%0A <defs>%0D%0A <clipPath id=\"clip0_355_22081\">%0D%0A <rect fill=\"white\" height=\"20\" width=\"20\"/>%0D%0A </clipPath>%0D%0A </defs>%0D%0A</svg>%0D%0A') no-repeat center;cursor:pointer}@media screen and (max-width: 480px){.popup__close{top:16px;right:16px}}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "component", type: LibLoaderComponent, selector: "dd-lib-loader", inputs: ["color", "size"] }] }); }
32
32
  }
33
33
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: ModalBaseComponent, decorators: [{
34
34
  type: Component,
35
- args: [{ selector: 'dd-modal-base', standalone: true, imports: [NgTemplateOutlet, NgComponentOutlet, LibLoaderComponent], template: "<div class=\"popup\" [class.border-mobile]=\"borderMobile\">\r\n @if (showContentLoader) {\r\n <div class=\"loader-modal\">\r\n <dd-lib-loader size=\"giant\"></dd-lib-loader>\r\n </div>\r\n } @else {\r\n <div (click)=\"close()\" class=\"popup__close\"></div>\r\n @if (content) {\r\n <div class=\"popup__content\">\r\n <ng-template [ngTemplateOutletContext]=\"{ data }\" [ngTemplateOutlet]=\"content\"></ng-template>\r\n </div>\r\n }\r\n @if (component) {\r\n <div class=\"popup__content\">\r\n <ng-template [ngComponentOutlet]=\"component\"></ng-template>\r\n </div>\r\n } @else {\r\n <ng-content></ng-content>\r\n }\r\n }\r\n\r\n @if (showLoader) {\r\n <div class=\"loader-modal\">\r\n <dd-lib-loader size=\"giant\"></dd-lib-loader>\r\n </div>\r\n }\r\n</div>\r\n", styles: [".popup{position:relative;max-width:var(--main-body-width);border-radius:24px;background:var(--white-color)}.popup .loader-modal{position:absolute;width:100%;height:100%;top:0;display:flex;align-items:center;justify-content:center;border-radius:24px;background:#251c2c33}@media screen and (max-width: 1320px){.popup{max-width:100%}}@media screen and (max-width: 480px){.popup{border-radius:0}}@media screen and (max-width: 480px){.popup.border-mobile{border-radius:24px}}.popup__close{position:absolute;top:24px;right:24px;width:20px;height:20px;background:url('data:image/svg+xml,<svg fill=\"none\" height=\"20\" viewBox=\"0 0 20 20\" width=\"20\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A <g clip-path=\"url(%23clip0_355_22081)\">%0D%0A <path d=\"M15 5L5 15\" stroke=\"%23A79BAD\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\"/>%0D%0A <path d=\"M5 5L15 15\" stroke=\"%23A79BAD\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\"/>%0D%0A </g>%0D%0A <defs>%0D%0A <clipPath id=\"clip0_355_22081\">%0D%0A <rect fill=\"white\" height=\"20\" width=\"20\"/>%0D%0A </clipPath>%0D%0A </defs>%0D%0A</svg>%0D%0A') no-repeat center;cursor:pointer}@media screen and (max-width: 480px){.popup__close{top:16px;right:16px}}\n"] }]
35
+ args: [{ selector: 'dd-modal-base', standalone: true, imports: [NgTemplateOutlet, NgComponentOutlet, LibLoaderComponent], template: "<div class=\"popup\" [class.border-mobile]=\"borderMobile\">\r\n @if (showContentLoader) {\r\n <div class=\"loader-modal\">\r\n <dd-lib-loader size=\"giant\"></dd-lib-loader>\r\n </div>\r\n } @else {\r\n <div (click)=\"close()\" class=\"popup__close\"></div>\r\n @if (content) {\r\n <div class=\"popup__content\">\r\n <ng-template [ngTemplateOutletContext]=\"{ data }\" [ngTemplateOutlet]=\"content\"></ng-template>\r\n </div>\r\n }\r\n @if (component) {\r\n <div class=\"popup__content\">\r\n <ng-template [ngComponentOutlet]=\"component\"></ng-template>\r\n </div>\r\n } @else {\r\n <ng-content></ng-content>\r\n }\r\n }\r\n\r\n @if (showLoader) {\r\n <div class=\"loader-modal\">\r\n <dd-lib-loader size=\"giant\"></dd-lib-loader>\r\n </div>\r\n }\r\n</div>\r\n", styles: [".popup{position:relative;max-width:var(--main-body-width);border-radius:24px;background:var(--white-color)}.popup .loader-modal{position:absolute;width:100%;height:100%;top:0;display:flex;align-items:center;justify-content:center;border-radius:24px;background:#251c2c33}@media screen and (max-width: 1320px){.popup{max-width:100%}}@media screen and (max-width: 480px){.popup{border-radius:0}}@media screen and (max-width: 480px){.popup.border-mobile{border-radius:24px}}.popup__close{z-index:1;position:absolute;top:24px;right:24px;width:20px;height:20px;background:url('data:image/svg+xml,<svg fill=\"none\" height=\"20\" viewBox=\"0 0 20 20\" width=\"20\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A <g clip-path=\"url(%23clip0_355_22081)\">%0D%0A <path d=\"M15 5L5 15\" stroke=\"%23A79BAD\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\"/>%0D%0A <path d=\"M5 5L15 15\" stroke=\"%23A79BAD\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\"/>%0D%0A </g>%0D%0A <defs>%0D%0A <clipPath id=\"clip0_355_22081\">%0D%0A <rect fill=\"white\" height=\"20\" width=\"20\"/>%0D%0A </clipPath>%0D%0A </defs>%0D%0A</svg>%0D%0A') no-repeat center;cursor:pointer}@media screen and (max-width: 480px){.popup__close{top:16px;right:16px}}\n"] }]
36
36
  }], ctorParameters: () => [{ type: i1.ActivatedRoute }, { type: i1.Router }, { type: i2.DDDialogRef }], propDecorators: { content: [{
37
37
  type: Input
38
38
  }], component: [{
@@ -49,4 +49,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
49
49
  type: HostListener,
50
50
  args: ['document:keydown', ['$event']]
51
51
  }] } });
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZC1saWIvc3JjL2xpYi9jb3JlL2RpYWxvZy9tb2RhbC1iYXNlL21vZGFsLWJhc2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGQtbGliL3NyYy9saWIvY29yZS9kaWFsb2cvbW9kYWwtYmFzZS9tb2RhbC1iYXNlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFDLGlCQUFpQixFQUFFLGdCQUFnQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFHcEUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMENBQTBDLENBQUM7Ozs7QUFTNUUsTUFBTSxPQUFPLGtCQUFrQjtJQVk3QixZQUNVLEtBQXFCLEVBQ3JCLE1BQWMsRUFDZCxNQUF1QztRQUZ2QyxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsV0FBTSxHQUFOLE1BQU0sQ0FBaUM7UUFaakMsa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFDckIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsZUFBVSxHQUErQixLQUFLLENBQUM7UUFDL0Msc0JBQWlCLEdBQStCLEtBQUssQ0FBQztRQW1CL0QsaUJBQVksR0FBRyxHQUFHLEVBQUU7WUFDekIsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUNyRyxDQUFDO1FBQ0gsQ0FBQyxDQUFDO0lBYkMsQ0FBQztJQUdHLGtCQUFrQixDQUFDLEtBQW9CO1FBQzVDLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUNsRCxJQUFJLENBQUMsT0FBUSxFQUFFLENBQUM7UUFDbEIsQ0FBQztJQUNILENBQUM7SUFRTSxLQUFLO1FBQ1YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN0QixDQUFDOzhHQWpDVSxrQkFBa0I7a0dBQWxCLGtCQUFrQiw0VUNiL0IsazFCQTJCQSwyekNEbEJZLGdCQUFnQixvSkFBRSxpQkFBaUIsb1BBQUUsa0JBQWtCOzsyRkFJdEQsa0JBQWtCO2tCQVA5QixTQUFTOytCQUNFLGVBQWUsY0FDYixJQUFJLFdBQ1AsQ0FBQyxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsQ0FBQztrSUFLbEQsT0FBTztzQkFBdEIsS0FBSztnQkFDVSxTQUFTO3NCQUF4QixLQUFLO2dCQUNVLGFBQWE7c0JBQTVCLEtBQUs7Z0JBQ1UsWUFBWTtzQkFBM0IsS0FBSztnQkFDVSxVQUFVO3NCQUF6QixLQUFLO2dCQUNVLGlCQUFpQjtzQkFBaEMsS0FBSztnQkFhQyxrQkFBa0I7c0JBRHhCLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBJbnB1dCwgVGVtcGxhdGVSZWYsIFR5cGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge05nQ29tcG9uZW50T3V0bGV0LCBOZ1RlbXBsYXRlT3V0bGV0fSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7REREaWFsb2dSZWZ9IGZyb20gXCIuLi9kaWFsb2ctcmVmXCI7XHJcbmltcG9ydCB7TGliTG9hZGVyQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vLi4vbGliLWxvYWRlci9saWItbG9hZGVyLmNvbXBvbmVudFwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdkZC1tb2RhbC1iYXNlJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtOZ1RlbXBsYXRlT3V0bGV0LCBOZ0NvbXBvbmVudE91dGxldCwgTGliTG9hZGVyQ29tcG9uZW50XSxcclxuICB0ZW1wbGF0ZVVybDogJy4vbW9kYWwtYmFzZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbW9kYWwtYmFzZS5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTW9kYWxCYXNlQ29tcG9uZW50IHtcclxuICBASW5wdXQoKSBwdWJsaWMgY29udGVudDogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBwdWJsaWMgY29tcG9uZW50OiBUeXBlPGFueT4gfCBudWxsIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjbGVhckZyYWdtZW50ID0gdHJ1ZTtcclxuICBASW5wdXQoKSBwdWJsaWMgYm9yZGVyTW9iaWxlID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIHNob3dMb2FkZXI6IG51bGwgfCBib29sZWFuIHwgdW5kZWZpbmVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIHNob3dDb250ZW50TG9hZGVyOiBudWxsIHwgYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgZGF0YTogYW55O1xyXG5cclxuICBwdWJsaWMgZGVzdHJveTogKCgpID0+IHt9KSB8IHVuZGVmaW5lZDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIGRpYWxvZzogREREaWFsb2dSZWY8TW9kYWxCYXNlQ29tcG9uZW50PixcclxuICApIHt9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24nLCBbJyRldmVudCddKVxyXG4gIHB1YmxpYyBvbktleWRvd25Db21wb25lbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnIHx8IGV2ZW50LmtleSA9PT0gJ0VzYycpIHtcclxuICAgICAgdGhpcy5kZXN0cm95ISgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFmdGVyRGVzdHJveSA9ICgpID0+IHtcclxuICAgIGlmICh0aGlzLmNsZWFyRnJhZ21lbnQpIHtcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW10sIHsgZnJhZ21lbnQ6IHVuZGVmaW5lZCwgcHJlc2VydmVGcmFnbWVudDogZmFsc2UsIHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kaWFsb2cuY2xvc2UoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInBvcHVwXCIgW2NsYXNzLmJvcmRlci1tb2JpbGVdPVwiYm9yZGVyTW9iaWxlXCI+XHJcbiAgQGlmIChzaG93Q29udGVudExvYWRlcikge1xyXG4gICAgPGRpdiBjbGFzcz1cImxvYWRlci1tb2RhbFwiPlxyXG4gICAgICA8ZGQtbGliLWxvYWRlciBzaXplPVwiZ2lhbnRcIj48L2RkLWxpYi1sb2FkZXI+XHJcbiAgICA8L2Rpdj5cclxuICB9IEBlbHNlIHtcclxuICAgIDxkaXYgKGNsaWNrKT1cImNsb3NlKClcIiBjbGFzcz1cInBvcHVwX19jbG9zZVwiPjwvZGl2PlxyXG4gICAgQGlmIChjb250ZW50KSB7XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJwb3B1cF9fY29udGVudFwiPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBkYXRhIH1cIiBbbmdUZW1wbGF0ZU91dGxldF09XCJjb250ZW50XCI+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPC9kaXY+XHJcbiAgICB9XHJcbiAgICBAaWYgKGNvbXBvbmVudCkge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwicG9wdXBfX2NvbnRlbnRcIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgW25nQ29tcG9uZW50T3V0bGV0XT1cImNvbXBvbmVudFwiPjwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpZiAoc2hvd0xvYWRlcikge1xyXG4gICAgPGRpdiBjbGFzcz1cImxvYWRlci1tb2RhbFwiPlxyXG4gICAgICA8ZGQtbGliLWxvYWRlciBzaXplPVwiZ2lhbnRcIj48L2RkLWxpYi1sb2FkZXI+XHJcbiAgICA8L2Rpdj5cclxuICB9XHJcbjwvZGl2PlxyXG4iXX0=
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZC1saWIvc3JjL2xpYi9jb3JlL2RpYWxvZy9tb2RhbC1iYXNlL21vZGFsLWJhc2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGQtbGliL3NyYy9saWIvY29yZS9kaWFsb2cvbW9kYWwtYmFzZS9tb2RhbC1iYXNlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFDLGlCQUFpQixFQUFFLGdCQUFnQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFHcEUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMENBQTBDLENBQUM7Ozs7QUFTNUUsTUFBTSxPQUFPLGtCQUFrQjtJQVk3QixZQUNVLEtBQXFCLEVBQ3JCLE1BQWMsRUFDZCxNQUF1QztRQUZ2QyxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsV0FBTSxHQUFOLE1BQU0sQ0FBaUM7UUFaakMsa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFDckIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsZUFBVSxHQUErQixLQUFLLENBQUM7UUFDL0Msc0JBQWlCLEdBQStCLEtBQUssQ0FBQztRQW1CL0QsaUJBQVksR0FBRyxHQUFHLEVBQUU7WUFDekIsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUNyRyxDQUFDO1FBQ0gsQ0FBQyxDQUFDO0lBYkMsQ0FBQztJQUdHLGtCQUFrQixDQUFDLEtBQW9CO1FBQzVDLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUNsRCxJQUFJLENBQUMsT0FBUSxFQUFFLENBQUM7UUFDbEIsQ0FBQztJQUNILENBQUM7SUFRTSxLQUFLO1FBQ1YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN0QixDQUFDOzhHQWpDVSxrQkFBa0I7a0dBQWxCLGtCQUFrQiw0VUNiL0IsazFCQTJCQSxxMENEbEJZLGdCQUFnQixvSkFBRSxpQkFBaUIsb1BBQUUsa0JBQWtCOzsyRkFJdEQsa0JBQWtCO2tCQVA5QixTQUFTOytCQUNFLGVBQWUsY0FDYixJQUFJLFdBQ1AsQ0FBQyxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsQ0FBQztrSUFLbEQsT0FBTztzQkFBdEIsS0FBSztnQkFDVSxTQUFTO3NCQUF4QixLQUFLO2dCQUNVLGFBQWE7c0JBQTVCLEtBQUs7Z0JBQ1UsWUFBWTtzQkFBM0IsS0FBSztnQkFDVSxVQUFVO3NCQUF6QixLQUFLO2dCQUNVLGlCQUFpQjtzQkFBaEMsS0FBSztnQkFhQyxrQkFBa0I7c0JBRHhCLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBJbnB1dCwgVGVtcGxhdGVSZWYsIFR5cGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge05nQ29tcG9uZW50T3V0bGV0LCBOZ1RlbXBsYXRlT3V0bGV0fSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7REREaWFsb2dSZWZ9IGZyb20gXCIuLi9kaWFsb2ctcmVmXCI7XHJcbmltcG9ydCB7TGliTG9hZGVyQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vLi4vbGliLWxvYWRlci9saWItbG9hZGVyLmNvbXBvbmVudFwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdkZC1tb2RhbC1iYXNlJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtOZ1RlbXBsYXRlT3V0bGV0LCBOZ0NvbXBvbmVudE91dGxldCwgTGliTG9hZGVyQ29tcG9uZW50XSxcclxuICB0ZW1wbGF0ZVVybDogJy4vbW9kYWwtYmFzZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbW9kYWwtYmFzZS5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTW9kYWxCYXNlQ29tcG9uZW50IHtcclxuICBASW5wdXQoKSBwdWJsaWMgY29udGVudDogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBwdWJsaWMgY29tcG9uZW50OiBUeXBlPGFueT4gfCBudWxsIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjbGVhckZyYWdtZW50ID0gdHJ1ZTtcclxuICBASW5wdXQoKSBwdWJsaWMgYm9yZGVyTW9iaWxlID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIHNob3dMb2FkZXI6IG51bGwgfCBib29sZWFuIHwgdW5kZWZpbmVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIHNob3dDb250ZW50TG9hZGVyOiBudWxsIHwgYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgZGF0YTogYW55O1xyXG5cclxuICBwdWJsaWMgZGVzdHJveTogKCgpID0+IHt9KSB8IHVuZGVmaW5lZDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIGRpYWxvZzogREREaWFsb2dSZWY8TW9kYWxCYXNlQ29tcG9uZW50PixcclxuICApIHt9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24nLCBbJyRldmVudCddKVxyXG4gIHB1YmxpYyBvbktleWRvd25Db21wb25lbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnIHx8IGV2ZW50LmtleSA9PT0gJ0VzYycpIHtcclxuICAgICAgdGhpcy5kZXN0cm95ISgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFmdGVyRGVzdHJveSA9ICgpID0+IHtcclxuICAgIGlmICh0aGlzLmNsZWFyRnJhZ21lbnQpIHtcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW10sIHsgZnJhZ21lbnQ6IHVuZGVmaW5lZCwgcHJlc2VydmVGcmFnbWVudDogZmFsc2UsIHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kaWFsb2cuY2xvc2UoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInBvcHVwXCIgW2NsYXNzLmJvcmRlci1tb2JpbGVdPVwiYm9yZGVyTW9iaWxlXCI+XHJcbiAgQGlmIChzaG93Q29udGVudExvYWRlcikge1xyXG4gICAgPGRpdiBjbGFzcz1cImxvYWRlci1tb2RhbFwiPlxyXG4gICAgICA8ZGQtbGliLWxvYWRlciBzaXplPVwiZ2lhbnRcIj48L2RkLWxpYi1sb2FkZXI+XHJcbiAgICA8L2Rpdj5cclxuICB9IEBlbHNlIHtcclxuICAgIDxkaXYgKGNsaWNrKT1cImNsb3NlKClcIiBjbGFzcz1cInBvcHVwX19jbG9zZVwiPjwvZGl2PlxyXG4gICAgQGlmIChjb250ZW50KSB7XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJwb3B1cF9fY29udGVudFwiPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBkYXRhIH1cIiBbbmdUZW1wbGF0ZU91dGxldF09XCJjb250ZW50XCI+PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPC9kaXY+XHJcbiAgICB9XHJcbiAgICBAaWYgKGNvbXBvbmVudCkge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwicG9wdXBfX2NvbnRlbnRcIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgW25nQ29tcG9uZW50T3V0bGV0XT1cImNvbXBvbmVudFwiPjwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpZiAoc2hvd0xvYWRlcikge1xyXG4gICAgPGRpdiBjbGFzcz1cImxvYWRlci1tb2RhbFwiPlxyXG4gICAgICA8ZGQtbGliLWxvYWRlciBzaXplPVwiZ2lhbnRcIj48L2RkLWxpYi1sb2FkZXI+XHJcbiAgICA8L2Rpdj5cclxuICB9XHJcbjwvZGl2PlxyXG4iXX0=
@@ -0,0 +1,66 @@
1
+ import { Directive, HostListener, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class DropDownPositionDirective {
4
+ constructor(el, rdr) {
5
+ this.el = el;
6
+ this.rdr = rdr;
7
+ this.dropdownId = 'dropdown';
8
+ }
9
+ onWindowScroll() {
10
+ if (this.isShownList && !this.side) {
11
+ this.updateDropdownPosition();
12
+ }
13
+ }
14
+ ngOnChanges() {
15
+ if (this.isShownList && !this.side) {
16
+ setTimeout(() => {
17
+ this.updateDropdownPosition();
18
+ });
19
+ }
20
+ }
21
+ updateDropdownPosition() {
22
+ const rect = this.el.nativeElement.getBoundingClientRect();
23
+ const dropdownHeight = this.itemsHeight && this.itemsHeight > this.dropdownHeight || !this.itemsHeight ? this.dropdownHeight : this.itemsHeight; // Примерная высота дропдауна
24
+ const spaceBelow = window.innerHeight - rect.bottom;
25
+ const spaceAbove = rect.top;
26
+ const dropdown = this.el.nativeElement.querySelector(`#${this.dropdownId}`);
27
+ // Если достаточно места ниже, оставляем его там
28
+ if (spaceBelow >= dropdownHeight) {
29
+ this.rdr.setStyle(dropdown, 'top', '100%');
30
+ }
31
+ // Если не хватает места ниже, но есть место выше
32
+ else if (spaceAbove >= dropdownHeight) {
33
+ this.rdr.setStyle(dropdown, 'top', `-${dropdownHeight}px`);
34
+ }
35
+ // Если недостаточно места ни вверху, ни внизу
36
+ else {
37
+ this.rdr.setStyle(dropdown, 'top', '100%');
38
+ }
39
+ }
40
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: DropDownPositionDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
41
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.2", type: DropDownPositionDirective, isStandalone: true, selector: "[ddDropDownPosition]", inputs: { side: "side", itemsHeight: "itemsHeight", dropdownHeight: "dropdownHeight", isShownList: "isShownList", dropdownId: "dropdownId" }, host: { listeners: { "window:resize": "onWindowScroll()", "window:scroll": "onWindowScroll()" } }, usesOnChanges: true, ngImport: i0 }); }
42
+ }
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: DropDownPositionDirective, decorators: [{
44
+ type: Directive,
45
+ args: [{
46
+ selector: '[ddDropDownPosition]',
47
+ standalone: true
48
+ }]
49
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { side: [{
50
+ type: Input
51
+ }], itemsHeight: [{
52
+ type: Input
53
+ }], dropdownHeight: [{
54
+ type: Input
55
+ }], isShownList: [{
56
+ type: Input
57
+ }], dropdownId: [{
58
+ type: Input
59
+ }], onWindowScroll: [{
60
+ type: HostListener,
61
+ args: ['window:resize']
62
+ }, {
63
+ type: HostListener,
64
+ args: ['window:scroll']
65
+ }] } });
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcC1kb3duLXBvc2l0aW9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RkLWxpYi9zcmMvbGliL2NvcmUvZGlyZWN0aXZlcy9kcm9wLWRvd24tcG9zaXRpb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBdUIsTUFBTSxlQUFlLENBQUM7O0FBTS9GLE1BQU0sT0FBTyx5QkFBeUI7SUFNcEMsWUFBcUIsRUFBYyxFQUFVLEdBQWM7UUFBdEMsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUFVLFFBQUcsR0FBSCxHQUFHLENBQVc7UUFEM0MsZUFBVSxHQUFHLFVBQVUsQ0FBQztJQUN1QixDQUFDO0lBSWhFLGNBQWM7UUFDWixJQUFJLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDaEMsQ0FBQztJQUNILENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNuQyxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQ2hDLENBQUMsQ0FBQyxDQUFBO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFTSxzQkFBc0I7UUFDM0IsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUMzRCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyw2QkFBNkI7UUFDOUssTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ3BELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDNUIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUE7UUFDM0UsZ0RBQWdEO1FBQ2hELElBQUksVUFBVSxJQUFJLGNBQWMsRUFBRSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUE7UUFDNUMsQ0FBQztRQUNELGlEQUFpRDthQUM1QyxJQUFJLFVBQVUsSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUN0QyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLElBQUksY0FBYyxJQUFJLENBQUMsQ0FBQTtRQUM1RCxDQUFDO1FBQ0QsOENBQThDO2FBQ3pDLENBQUM7WUFDSixJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFBO1FBQzVDLENBQUM7SUFDSCxDQUFDOzhHQTFDVSx5QkFBeUI7a0dBQXpCLHlCQUF5Qjs7MkZBQXpCLHlCQUF5QjtrQkFKckMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxVQUFVLEVBQUUsSUFBSTtpQkFDakI7dUdBRWlCLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ1UsV0FBVztzQkFBMUIsS0FBSztnQkFDVSxjQUFjO3NCQUE3QixLQUFLO2dCQUNVLFdBQVc7c0JBQTFCLEtBQUs7Z0JBQ1UsVUFBVTtzQkFBekIsS0FBSztnQkFLTixjQUFjO3NCQUZiLFlBQVk7dUJBQUMsZUFBZTs7c0JBQzVCLFlBQVk7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkNoYW5nZXMsIFJlbmRlcmVyMn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tkZERyb3BEb3duUG9zaXRpb25dJyxcclxuICBzdGFuZGFsb25lOiB0cnVlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEcm9wRG93blBvc2l0aW9uRGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoKSBwdWJsaWMgc2lkZT86ICd0b3AnIHwgJ2JvdHRvbSc7XHJcbiAgQElucHV0KCkgcHVibGljIGl0ZW1zSGVpZ2h0PzogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBkcm9wZG93bkhlaWdodCE6IG51bWJlcjtcclxuICBASW5wdXQoKSBwdWJsaWMgaXNTaG93bkxpc3Q/OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBkcm9wZG93bklkID0gJ2Ryb3Bkb3duJztcclxuICBjb25zdHJ1Y3RvciggcHJpdmF0ZSBlbDogRWxlbWVudFJlZiwgcHJpdmF0ZSByZHI6IFJlbmRlcmVyMikgeyB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpzY3JvbGwnKVxyXG4gIG9uV2luZG93U2Nyb2xsKCkge1xyXG4gICAgaWYgKHRoaXMuaXNTaG93bkxpc3QgJiYgIXRoaXMuc2lkZSkge1xyXG4gICAgICB0aGlzLnVwZGF0ZURyb3Bkb3duUG9zaXRpb24oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmlzU2hvd25MaXN0ICYmICF0aGlzLnNpZGUpIHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy51cGRhdGVEcm9wZG93blBvc2l0aW9uKCk7XHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdXBkYXRlRHJvcGRvd25Qb3NpdGlvbigpIHtcclxuICAgIGNvbnN0IHJlY3QgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICBjb25zdCBkcm9wZG93bkhlaWdodCA9IHRoaXMuaXRlbXNIZWlnaHQgJiYgdGhpcy5pdGVtc0hlaWdodCA+IHRoaXMuZHJvcGRvd25IZWlnaHQgfHwgIXRoaXMuaXRlbXNIZWlnaHQgPyB0aGlzLmRyb3Bkb3duSGVpZ2h0IDogdGhpcy5pdGVtc0hlaWdodDsgLy8g0J/RgNC40LzQtdGA0L3QsNGPINCy0YvRgdC+0YLQsCDQtNGA0L7Qv9C00LDRg9C90LBcclxuICAgIGNvbnN0IHNwYWNlQmVsb3cgPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSByZWN0LmJvdHRvbTtcclxuICAgIGNvbnN0IHNwYWNlQWJvdmUgPSByZWN0LnRvcDtcclxuICAgIGNvbnN0IGRyb3Bkb3duID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoYCMke3RoaXMuZHJvcGRvd25JZH1gKVxyXG4gICAgLy8g0JXRgdC70Lgg0LTQvtGB0YLQsNGC0L7Rh9C90L4g0LzQtdGB0YLQsCDQvdC40LbQtSwg0L7RgdGC0LDQstC70Y/QtdC8INC10LPQviDRgtCw0LxcclxuICAgIGlmIChzcGFjZUJlbG93ID49IGRyb3Bkb3duSGVpZ2h0KSB7XHJcbiAgICAgIHRoaXMucmRyLnNldFN0eWxlKGRyb3Bkb3duLCAndG9wJywgJzEwMCUnKVxyXG4gICAgfVxyXG4gICAgLy8g0JXRgdC70Lgg0L3QtSDRhdCy0LDRgtCw0LXRgiDQvNC10YHRgtCwINC90LjQttC1LCDQvdC+INC10YHRgtGMINC80LXRgdGC0L4g0LLRi9GI0LVcclxuICAgIGVsc2UgaWYgKHNwYWNlQWJvdmUgPj0gZHJvcGRvd25IZWlnaHQpIHtcclxuICAgICAgdGhpcy5yZHIuc2V0U3R5bGUoZHJvcGRvd24sICd0b3AnLCBgLSR7ZHJvcGRvd25IZWlnaHR9cHhgKVxyXG4gICAgfVxyXG4gICAgLy8g0JXRgdC70Lgg0L3QtdC00L7RgdGC0LDRgtC+0YfQvdC+INC80LXRgdGC0LAg0L3QuCDQstCy0LXRgNGF0YMsINC90Lgg0LLQvdC40LfRg1xyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMucmRyLnNldFN0eWxlKGRyb3Bkb3duLCAndG9wJywgJzEwMCUnKVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,87 @@
1
+ import { Directive, HostListener, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class FixedPositionDirective {
4
+ constructor(el, renderer) {
5
+ this.el = el;
6
+ this.renderer = renderer;
7
+ this.childName1 = 'input';
8
+ this.childName2 = 'list';
9
+ this.child1 = null;
10
+ this.child2 = null;
11
+ }
12
+ ngAfterViewInit() {
13
+ // id scroll-container надо задать обертке, которая имеет скролл и где будет скролящийся блок
14
+ const scrollContainer = document.getElementById('scroll-container');
15
+ if (scrollContainer) {
16
+ // Подписываемся на событие scroll чужеродного контейнера типа модалки и прочего узкого контента
17
+ this.scrollListener = this.renderer.listen(scrollContainer, 'scroll', () => this.onScroll());
18
+ }
19
+ this.parentElement = this.el.nativeElement;
20
+ this.child1 = this.parentElement.querySelector(`[data-child="${this.childName1}"]`);
21
+ this.child2 = this.parentElement.querySelector(`[data-child="${this.childName2}"]`);
22
+ if (this.child2) {
23
+ this.updateChild2Position();
24
+ }
25
+ }
26
+ ngAfterViewChecked() {
27
+ if (!this.child2) {
28
+ this.child2 = this.parentElement.querySelector(`[data-child="${this.childName2}"]`);
29
+ if (this.child2) {
30
+ this.updateChild2Position();
31
+ }
32
+ }
33
+ }
34
+ onScroll() {
35
+ if (this.child2) {
36
+ this.updateChild2Position();
37
+ }
38
+ }
39
+ updateChild2Position() {
40
+ if (this.child1 && this.child2) {
41
+ const child1Rect = this.child1.getBoundingClientRect();
42
+ this.renderer.setStyle(this.child2, 'width', `${child1Rect.width}px`);
43
+ // Вычисляем, где расположить ребенка-2
44
+ const shouldPositionAbove = this.shouldPositionAbove(child1Rect);
45
+ if (shouldPositionAbove) {
46
+ this.renderer.setStyle(this.child2, 'top', `${child1Rect.top - this.child2.offsetHeight}px`);
47
+ }
48
+ else {
49
+ // Располагаем ребенка-2 снизу ребенка-1
50
+ this.renderer.setStyle(this.child2, 'top', `${child1Rect.bottom}px`);
51
+ }
52
+ this.renderer.setStyle(this.child2, 'position', 'fixed');
53
+ this.renderer.setStyle(this.child2, 'left', `${child1Rect.left}px`);
54
+ }
55
+ }
56
+ shouldPositionAbove(child1Rect) {
57
+ if (!this.child2)
58
+ return false;
59
+ // Вычисляем, будет ли ребенок-2 виден, если его расположить снизу
60
+ const spaceBelow = window.innerHeight - child1Rect.bottom;
61
+ const child2Height = this.child2.offsetHeight;
62
+ return spaceBelow < child2Height;
63
+ }
64
+ ngOnDestroy() {
65
+ // Отписываемся от события при уничтожении директивы
66
+ if (this.scrollListener) {
67
+ this.scrollListener();
68
+ }
69
+ }
70
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: FixedPositionDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
71
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.2", type: FixedPositionDirective, isStandalone: true, selector: "[ddFixedPosition]", inputs: { childName1: "childName1", childName2: "childName2" }, host: { listeners: { "window:scroll": "onScroll()" } }, ngImport: i0 }); }
72
+ }
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: FixedPositionDirective, decorators: [{
74
+ type: Directive,
75
+ args: [{
76
+ selector: '[ddFixedPosition]',
77
+ standalone: true
78
+ }]
79
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { childName1: [{
80
+ type: Input
81
+ }], childName2: [{
82
+ type: Input
83
+ }], onScroll: [{
84
+ type: HostListener,
85
+ args: ['window:scroll']
86
+ }] } });
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4ZWQtcG9zaXRpb24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGQtbGliL3NyYy9saWIvY29yZS9kaXJlY3RpdmVzL2ZpeGVkLXBvc2l0aW9uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBR04sTUFBTSxlQUFlLENBQUM7O0FBTXZCLE1BQU0sT0FBTyxzQkFBc0I7SUFRakMsWUFBb0IsRUFBYyxFQUFVLFFBQW1CO1FBQTNDLE9BQUUsR0FBRixFQUFFLENBQVk7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBUC9DLGVBQVUsR0FBRyxPQUFPLENBQUE7UUFDcEIsZUFBVSxHQUFHLE1BQU0sQ0FBQTtRQUUzQixXQUFNLEdBQXVCLElBQUksQ0FBQztRQUNsQyxXQUFNLEdBQXVCLElBQUksQ0FBQztJQUd3QixDQUFDO0lBRW5FLGVBQWU7UUFDYiw2RkFBNkY7UUFDN0YsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3BFLElBQUksZUFBZSxFQUFFLENBQUM7WUFDcEIsZ0dBQWdHO1lBQ2hHLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQ3hDLGVBQWUsRUFDZixRQUFRLEVBQ1IsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUN0QixDQUFDO1FBQ0osQ0FBQztRQUNELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUM7UUFFM0MsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLENBQUM7UUFDcEYsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLENBQUM7UUFFcEYsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDOUIsQ0FBQztJQUNILENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLGdCQUFnQixJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsQ0FBQztZQUNwRixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDaEIsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDOUIsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBR00sUUFBUTtRQUNiLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQzlCLENBQUM7SUFDSCxDQUFDO0lBRU8sb0JBQW9CO1FBQzFCLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDL0IsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBRXZELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsVUFBVSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUM7WUFDdEUsdUNBQXVDO1lBQ3ZDLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBRWpFLElBQUksbUJBQW1CLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxVQUFVLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxJQUFJLENBQUMsQ0FBQztZQUMvRixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sd0NBQXdDO2dCQUN4QyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLFVBQVUsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDO1lBQ3ZFLENBQUM7WUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUN6RCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDO1FBQ3RFLENBQUM7SUFDSCxDQUFDO0lBRU8sbUJBQW1CLENBQUMsVUFBbUI7UUFDN0MsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFFL0Isa0VBQWtFO1FBQ2xFLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztRQUMxRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztRQUU5QyxPQUFPLFVBQVUsR0FBRyxZQUFZLENBQUM7SUFDbkMsQ0FBQztJQUVELFdBQVc7UUFDVCxvREFBb0Q7UUFDcEQsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3hCLENBQUM7SUFDSCxDQUFDOzhHQWxGVSxzQkFBc0I7a0dBQXRCLHNCQUFzQjs7MkZBQXRCLHNCQUFzQjtrQkFKbEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixVQUFVLEVBQUUsSUFBSTtpQkFDakI7dUdBRWlCLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsVUFBVTtzQkFBekIsS0FBSztnQkF1Q0MsUUFBUTtzQkFEZCxZQUFZO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0NoZWNrZWQsXHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBEaXJlY3RpdmUsXHJcbiAgRWxlbWVudFJlZixcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIFJlbmRlcmVyMlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbZGRGaXhlZFBvc2l0aW9uXScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRml4ZWRQb3NpdGlvbkRpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0NoZWNrZWQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgQElucHV0KCkgcHVibGljIGNoaWxkTmFtZTEgPSAnaW5wdXQnXHJcbiAgQElucHV0KCkgcHVibGljIGNoaWxkTmFtZTIgPSAnbGlzdCdcclxuICBwcml2YXRlIHBhcmVudEVsZW1lbnQhOiBIVE1MRWxlbWVudDtcclxuICBwcml2YXRlIGNoaWxkMTogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcclxuICBwcml2YXRlIGNoaWxkMjogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcclxuICBwcml2YXRlIHNjcm9sbExpc3RlbmVyITogKCkgPT4gdm9pZDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZiwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7fVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICAvLyBpZCBzY3JvbGwtY29udGFpbmVyINC90LDQtNC+INC30LDQtNCw0YLRjCDQvtCx0LXRgNGC0LrQtSwg0LrQvtGC0L7RgNCw0Y8g0LjQvNC10LXRgiDRgdC60YDQvtC70Lsg0Lgg0LPQtNC1INCx0YPQtNC10YIg0YHQutGA0L7Qu9GP0YnQuNC50YHRjyDQsdC70L7QulxyXG4gICAgY29uc3Qgc2Nyb2xsQ29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Njcm9sbC1jb250YWluZXInKTtcclxuICAgIGlmIChzY3JvbGxDb250YWluZXIpIHtcclxuICAgICAgLy8g0J/QvtC00L/QuNGB0YvQstCw0LXQvNGB0Y8g0L3QsCDRgdC+0LHRi9GC0LjQtSBzY3JvbGwg0YfRg9C20LXRgNC+0LTQvdC+0LPQviDQutC+0L3RgtC10LnQvdC10YDQsCDRgtC40L/QsCDQvNC+0LTQsNC70LrQuCDQuCDQv9GA0L7Rh9C10LPQviDRg9C30LrQvtCz0L4g0LrQvtC90YLQtdC90YLQsFxyXG4gICAgICB0aGlzLnNjcm9sbExpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oXHJcbiAgICAgICAgc2Nyb2xsQ29udGFpbmVyLFxyXG4gICAgICAgICdzY3JvbGwnLFxyXG4gICAgICAgICgpID0+IHRoaXMub25TY3JvbGwoKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgdGhpcy5wYXJlbnRFbGVtZW50ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xyXG5cclxuICAgIHRoaXMuY2hpbGQxID0gdGhpcy5wYXJlbnRFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWNoaWxkPVwiJHt0aGlzLmNoaWxkTmFtZTF9XCJdYCk7XHJcbiAgICB0aGlzLmNoaWxkMiA9IHRoaXMucGFyZW50RWxlbWVudC5xdWVyeVNlbGVjdG9yKGBbZGF0YS1jaGlsZD1cIiR7dGhpcy5jaGlsZE5hbWUyfVwiXWApO1xyXG5cclxuICAgIGlmICh0aGlzLmNoaWxkMikge1xyXG4gICAgICB0aGlzLnVwZGF0ZUNoaWxkMlBvc2l0aW9uKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XHJcbiAgICBpZiAoIXRoaXMuY2hpbGQyKSB7XHJcbiAgICAgIHRoaXMuY2hpbGQyID0gdGhpcy5wYXJlbnRFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoYFtkYXRhLWNoaWxkPVwiJHt0aGlzLmNoaWxkTmFtZTJ9XCJdYCk7XHJcbiAgICAgIGlmICh0aGlzLmNoaWxkMikge1xyXG4gICAgICAgIHRoaXMudXBkYXRlQ2hpbGQyUG9zaXRpb24oKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnNjcm9sbCcpXHJcbiAgcHVibGljIG9uU2Nyb2xsKCkge1xyXG4gICAgaWYgKHRoaXMuY2hpbGQyKSB7XHJcbiAgICAgIHRoaXMudXBkYXRlQ2hpbGQyUG9zaXRpb24oKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlQ2hpbGQyUG9zaXRpb24oKSB7XHJcbiAgICBpZiAodGhpcy5jaGlsZDEgJiYgdGhpcy5jaGlsZDIpIHtcclxuICAgICAgY29uc3QgY2hpbGQxUmVjdCA9IHRoaXMuY2hpbGQxLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG5cclxuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmNoaWxkMiwgJ3dpZHRoJywgYCR7Y2hpbGQxUmVjdC53aWR0aH1weGApO1xyXG4gICAgICAvLyDQktGL0YfQuNGB0LvRj9C10LwsINCz0LTQtSDRgNCw0YHQv9C+0LvQvtC20LjRgtGMINGA0LXQsdC10L3QutCwLTJcclxuICAgICAgY29uc3Qgc2hvdWxkUG9zaXRpb25BYm92ZSA9IHRoaXMuc2hvdWxkUG9zaXRpb25BYm92ZShjaGlsZDFSZWN0KTtcclxuXHJcbiAgICAgIGlmIChzaG91bGRQb3NpdGlvbkFib3ZlKSB7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmNoaWxkMiwgJ3RvcCcsIGAke2NoaWxkMVJlY3QudG9wIC0gdGhpcy5jaGlsZDIub2Zmc2V0SGVpZ2h0fXB4YCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8g0KDQsNGB0L/QvtC70LDQs9Cw0LXQvCDRgNC10LHQtdC90LrQsC0yINGB0L3QuNC30YMg0YDQtdCx0LXQvdC60LAtMVxyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5jaGlsZDIsICd0b3AnLCBgJHtjaGlsZDFSZWN0LmJvdHRvbX1weGApO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuY2hpbGQyLCAncG9zaXRpb24nLCAnZml4ZWQnKTtcclxuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmNoaWxkMiwgJ2xlZnQnLCBgJHtjaGlsZDFSZWN0LmxlZnR9cHhgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2hvdWxkUG9zaXRpb25BYm92ZShjaGlsZDFSZWN0OiBET01SZWN0KTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXRoaXMuY2hpbGQyKSByZXR1cm4gZmFsc2U7XHJcblxyXG4gICAgLy8g0JLRi9GH0LjRgdC70Y/QtdC8LCDQsdGD0LTQtdGCINC70Lgg0YDQtdCx0LXQvdC+0LotMiDQstC40LTQtdC9LCDQtdGB0LvQuCDQtdCz0L4g0YDQsNGB0L/QvtC70L7QttC40YLRjCDRgdC90LjQt9GDXHJcbiAgICBjb25zdCBzcGFjZUJlbG93ID0gd2luZG93LmlubmVySGVpZ2h0IC0gY2hpbGQxUmVjdC5ib3R0b207XHJcbiAgICBjb25zdCBjaGlsZDJIZWlnaHQgPSB0aGlzLmNoaWxkMi5vZmZzZXRIZWlnaHQ7XHJcblxyXG4gICAgcmV0dXJuIHNwYWNlQmVsb3cgPCBjaGlsZDJIZWlnaHQ7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIC8vINCe0YLQv9C40YHRi9Cy0LDQtdC80YHRjyDQvtGCINGB0L7QsdGL0YLQuNGPINC/0YDQuCDRg9C90LjRh9GC0L7QttC10L3QuNC4INC00LjRgNC10LrRgtC40LLRi1xyXG4gICAgaWYgKHRoaXMuc2Nyb2xsTGlzdGVuZXIpIHtcclxuICAgICAgdGhpcy5zY3JvbGxMaXN0ZW5lcigpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,57 @@
1
+ import { Directive, HostListener } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class ListKeyboardNavigationDirective {
4
+ constructor(el) {
5
+ this.el = el;
6
+ this.currentIndex = -1;
7
+ }
8
+ handleKeyboardEvent(event) {
9
+ const items = this.el.nativeElement.querySelectorAll('[ddSelectableItem]'); // Получаем все элементы списка
10
+ if (!items.length)
11
+ return;
12
+ switch (event.key) {
13
+ case 'ArrowDown':
14
+ this.moveFocus(items, 1);
15
+ event.preventDefault();
16
+ break;
17
+ case 'ArrowUp':
18
+ this.moveFocus(items, -1);
19
+ event.preventDefault();
20
+ break;
21
+ }
22
+ }
23
+ moveFocus(items, direction) {
24
+ if (this.currentIndex >= 0) {
25
+ const prevItem = items[this.currentIndex];
26
+ prevItem.classList.remove('key-down-active');
27
+ }
28
+ this.currentIndex += direction;
29
+ if (this.currentIndex < 0) {
30
+ this.currentIndex = items.length - 1;
31
+ }
32
+ else if (this.currentIndex >= items.length) {
33
+ this.currentIndex = 0;
34
+ }
35
+ const currentItem = items[this.currentIndex];
36
+ currentItem.classList.add('key-down-active');
37
+ currentItem.focus();
38
+ currentItem.scrollIntoView({
39
+ behavior: 'smooth',
40
+ block: 'nearest',
41
+ inline: 'start'
42
+ });
43
+ }
44
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: ListKeyboardNavigationDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
45
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.2", type: ListKeyboardNavigationDirective, isStandalone: true, selector: "[ddListKeyboardNavigation]", host: { listeners: { "document:keydown": "handleKeyboardEvent($event)" } }, ngImport: i0 }); }
46
+ }
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: ListKeyboardNavigationDirective, decorators: [{
48
+ type: Directive,
49
+ args: [{
50
+ selector: '[ddListKeyboardNavigation]',
51
+ standalone: true
52
+ }]
53
+ }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { handleKeyboardEvent: [{
54
+ type: HostListener,
55
+ args: ['document:keydown', ['$event']]
56
+ }] } });
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1rZXlib2FyZC1uYXZpZ2F0aW9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RkLWxpYi9zcmMvbGliL2NvcmUvZGlyZWN0aXZlcy9saXN0LWtleWJvYXJkLW5hdmlnYXRpb24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQWMsWUFBWSxFQUFDLE1BQU0sZUFBZSxDQUFDOztBQU1sRSxNQUFNLE9BQU8sK0JBQStCO0lBRzFDLFlBQW9CLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBRjFCLGlCQUFZLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFHMUIsQ0FBQztJQUdELG1CQUFtQixDQUFDLEtBQW9CO1FBQ3RDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQywrQkFBK0I7UUFDM0csSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNO1lBQUUsT0FBTztRQUUxQixRQUFRLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNsQixLQUFLLFdBQVc7Z0JBQ2QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3pCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDdkIsTUFBTTtZQUNSLEtBQUssU0FBUztnQkFDWixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMxQixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3ZCLE1BQU07UUFDVixDQUFDO0lBQ0gsQ0FBQztJQUVPLFNBQVMsQ0FBQyxLQUEwQixFQUFFLFNBQWlCO1FBQzdELElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUMzQixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBUSxDQUFDO1lBQ2pELFFBQVEsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDL0MsQ0FBQztRQUVELElBQUksQ0FBQyxZQUFZLElBQUksU0FBUyxDQUFDO1FBRS9CLElBQUksSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzdDLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDO1FBQ3hCLENBQUM7UUFFRCxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBUSxDQUFDO1FBQ3BELFdBQVcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDN0MsV0FBVyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRXBCLFdBQVcsQ0FBQyxjQUFjLENBQUM7WUFDekIsUUFBUSxFQUFFLFFBQVE7WUFDbEIsS0FBSyxFQUFFLFNBQVM7WUFDaEIsTUFBTSxFQUFFLE9BQU87U0FDaEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0E5Q1UsK0JBQStCO2tHQUEvQiwrQkFBK0I7OzJGQUEvQiwrQkFBK0I7a0JBSjNDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDRCQUE0QjtvQkFDdEMsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOytFQVFDLG1CQUFtQjtzQkFEbEIsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbZGRMaXN0S2V5Ym9hcmROYXZpZ2F0aW9uXScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTGlzdEtleWJvYXJkTmF2aWdhdGlvbkRpcmVjdGl2ZSB7XHJcbiAgcHJpdmF0ZSBjdXJyZW50SW5kZXggPSAtMTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZikge1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bicsIFsnJGV2ZW50J10pXHJcbiAgaGFuZGxlS2V5Ym9hcmRFdmVudChldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW2RkU2VsZWN0YWJsZUl0ZW1dJyk7IC8vINCf0L7Qu9GD0YfQsNC10Lwg0LLRgdC1INGN0LvQtdC80LXQvdGC0Ysg0YHQv9C40YHQutCwXHJcbiAgICBpZiAoIWl0ZW1zLmxlbmd0aCkgcmV0dXJuO1xyXG5cclxuICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XHJcbiAgICAgIGNhc2UgJ0Fycm93RG93bic6XHJcbiAgICAgICAgdGhpcy5tb3ZlRm9jdXMoaXRlbXMsIDEpO1xyXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0Fycm93VXAnOlxyXG4gICAgICAgIHRoaXMubW92ZUZvY3VzKGl0ZW1zLCAtMSk7XHJcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgbW92ZUZvY3VzKGl0ZW1zOiBOb2RlTGlzdE9mPEVsZW1lbnQ+LCBkaXJlY3Rpb246IG51bWJlcikge1xyXG4gICAgaWYgKHRoaXMuY3VycmVudEluZGV4ID49IDApIHtcclxuICAgICAgY29uc3QgcHJldkl0ZW0gPSBpdGVtc1t0aGlzLmN1cnJlbnRJbmRleF0gYXMgYW55O1xyXG4gICAgICBwcmV2SXRlbS5jbGFzc0xpc3QucmVtb3ZlKCdrZXktZG93bi1hY3RpdmUnKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmN1cnJlbnRJbmRleCArPSBkaXJlY3Rpb247XHJcblxyXG4gICAgaWYgKHRoaXMuY3VycmVudEluZGV4IDwgMCkge1xyXG4gICAgICB0aGlzLmN1cnJlbnRJbmRleCA9IGl0ZW1zLmxlbmd0aCAtIDE7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuY3VycmVudEluZGV4ID49IGl0ZW1zLmxlbmd0aCkge1xyXG4gICAgICB0aGlzLmN1cnJlbnRJbmRleCA9IDA7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgY3VycmVudEl0ZW0gPSBpdGVtc1t0aGlzLmN1cnJlbnRJbmRleF0gYXMgYW55O1xyXG4gICAgY3VycmVudEl0ZW0uY2xhc3NMaXN0LmFkZCgna2V5LWRvd24tYWN0aXZlJyk7XHJcbiAgICBjdXJyZW50SXRlbS5mb2N1cygpO1xyXG5cclxuICAgIGN1cnJlbnRJdGVtLnNjcm9sbEludG9WaWV3KHtcclxuICAgICAgYmVoYXZpb3I6ICdzbW9vdGgnLFxyXG4gICAgICBibG9jazogJ25lYXJlc3QnLFxyXG4gICAgICBpbmxpbmU6ICdzdGFydCdcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=