@morozeckiy/dd-lib 0.7.0 → 0.7.36

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 +88 -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 +7 -5
  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 +2 -1
  31. package/fesm2022/morozeckiy-dd-lib.mjs +807 -352
  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 +3 -1
  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.36.tgz +0 -0
  55. package/package.json +1 -1
  56. package/public-api.d.ts +1 -0
  57. package/morozeckiy-dd-lib-0.7.0.tgz +0 -0
@@ -0,0 +1,34 @@
1
+ import { Directive, HostListener } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/forms";
4
+ export class PhoneMaskDirective {
5
+ constructor(control) {
6
+ this.control = control;
7
+ }
8
+ onFocus() {
9
+ if (!this.control.control?.value) {
10
+ this.control.control?.setValue('+7');
11
+ }
12
+ }
13
+ onBlur() {
14
+ if (this.control.control?.value === '+7') {
15
+ this.control.control?.setValue('');
16
+ }
17
+ }
18
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: PhoneMaskDirective, deps: [{ token: i1.NgControl }], target: i0.ɵɵFactoryTarget.Directive }); }
19
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.2", type: PhoneMaskDirective, isStandalone: true, selector: "[ddPhoneMask]", host: { listeners: { "focus": "onFocus()", "blur": "onBlur()" } }, ngImport: i0 }); }
20
+ }
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: PhoneMaskDirective, decorators: [{
22
+ type: Directive,
23
+ args: [{
24
+ selector: '[ddPhoneMask]',
25
+ standalone: true,
26
+ }]
27
+ }], ctorParameters: () => [{ type: i1.NgControl }], propDecorators: { onFocus: [{
28
+ type: HostListener,
29
+ args: ['focus']
30
+ }], onBlur: [{
31
+ type: HostListener,
32
+ args: ['blur']
33
+ }] } });
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUtbWFzay5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZC1saWIvc3JjL2xpYi9jb3JlL2RpcmVjdGl2ZXMvcGhvbmUtbWFzay5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUMsTUFBTSxlQUFlLENBQUM7OztBQU90RCxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLFlBQW9CLE9BQWtCO1FBQWxCLFlBQU8sR0FBUCxPQUFPLENBQVc7SUFDdEMsQ0FBQztJQUdNLE9BQU87UUFDWixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7SUFDSCxDQUFDO0lBR00sTUFBTTtRQUNYLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsS0FBSyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNyQyxDQUFDO0lBQ0gsQ0FBQzs4R0FoQlUsa0JBQWtCO2tHQUFsQixrQkFBa0I7OzJGQUFsQixrQkFBa0I7a0JBSjlCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs4RUFNUSxPQUFPO3NCQURiLFlBQVk7dUJBQUMsT0FBTztnQkFRZCxNQUFNO3NCQURaLFlBQVk7dUJBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBIb3N0TGlzdGVuZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge05nQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbZGRQaG9uZU1hc2tdJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGhvbmVNYXNrRGlyZWN0aXZlIHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbnRyb2w6IE5nQ29udHJvbCkge1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignZm9jdXMnKVxyXG4gIHB1YmxpYyBvbkZvY3VzKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmNvbnRyb2wuY29udHJvbD8udmFsdWUpIHtcclxuICAgICAgdGhpcy5jb250cm9sLmNvbnRyb2w/LnNldFZhbHVlKCcrNycpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignYmx1cicpXHJcbiAgcHVibGljIG9uQmx1cigpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmNvbnRyb2wuY29udHJvbD8udmFsdWUgPT09ICcrNycpIHtcclxuICAgICAgdGhpcy5jb250cm9sLmNvbnRyb2w/LnNldFZhbHVlKCcnKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,29 @@
1
+ import { Directive, EventEmitter, HostListener, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class SelectableItemDirective {
4
+ constructor(el) {
5
+ this.el = el;
6
+ this.itemSelected = new EventEmitter();
7
+ }
8
+ onEnter(event) {
9
+ if (this.el.nativeElement.classList.contains('key-down-active')) {
10
+ event.preventDefault();
11
+ this.itemSelected.emit();
12
+ }
13
+ }
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: SelectableItemDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
15
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.2", type: SelectableItemDirective, isStandalone: true, selector: "[ddSelectableItem]", outputs: { itemSelected: "itemSelected" }, host: { listeners: { "document:keyup.enter": "onEnter($event)" } }, ngImport: i0 }); }
16
+ }
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: SelectableItemDirective, decorators: [{
18
+ type: Directive,
19
+ args: [{
20
+ selector: '[ddSelectableItem]',
21
+ standalone: true
22
+ }]
23
+ }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { itemSelected: [{
24
+ type: Output
25
+ }], onEnter: [{
26
+ type: HostListener,
27
+ args: ['document:keyup.enter', ['$event']]
28
+ }] } });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0YWJsZS1pdGVtLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RkLWxpYi9zcmMvbGliL2NvcmUvZGlyZWN0aXZlcy9zZWxlY3RhYmxlLWl0ZW0uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQWMsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBTXhGLE1BQU0sT0FBTyx1QkFBdUI7SUFJbEMsWUFBb0IsRUFBYztRQUFkLE9BQUUsR0FBRixFQUFFLENBQVk7UUFGeEIsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBR2xELENBQUM7SUFHRCxPQUFPLENBQUMsS0FBb0I7UUFDMUIsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQztZQUNoRSxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMzQixDQUFDO0lBQ0gsQ0FBQzs4R0FiVSx1QkFBdUI7a0dBQXZCLHVCQUF1Qjs7MkZBQXZCLHVCQUF1QjtrQkFKbkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixVQUFVLEVBQUUsSUFBSTtpQkFDakI7K0VBR1csWUFBWTtzQkFBckIsTUFBTTtnQkFNUCxPQUFPO3NCQUROLFlBQVk7dUJBQUMsc0JBQXNCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tkZFNlbGVjdGFibGVJdGVtXScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VsZWN0YWJsZUl0ZW1EaXJlY3RpdmUge1xyXG5cclxuICBAT3V0cHV0KCkgaXRlbVNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmKSB7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXl1cC5lbnRlcicsIFsnJGV2ZW50J10pXHJcbiAgb25FbnRlcihldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgaWYgKHRoaXMuZWwubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ2tleS1kb3duLWFjdGl2ZScpKSB7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIHRoaXMuaXRlbVNlbGVjdGVkLmVtaXQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxufVxyXG4iXX0=
@@ -21,6 +21,11 @@ export * from './directives/resize-textarea.directive';
21
21
  export * from './tooltip/tooltip.directive';
22
22
  export * from './tooltip/tooltip.component';
23
23
  export * from './directives/triangle.directive';
24
+ export * from './directives/drop-down-position.directive';
25
+ export * from './directives/phone-mask.directive';
26
+ export * from './directives/list-keyboard-navigation.directive';
27
+ export * from './directives/selectable-item.directive';
28
+ export * from './directives/fixed-position.directive';
24
29
  export * from './toast/index';
25
30
  // dialog
26
31
  export * from './dialog/dialog.service';
@@ -29,4 +34,4 @@ export * from './dialog/dialog-ref';
29
34
  export * from './dialog/modal-base/modal-common.component';
30
35
  export * from './dialog/modal-base/modal-base.component';
31
36
  // map
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZC1saWIvc3JjL2xpYi9jb3JlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFdBQVc7QUFDWCxjQUFjLHNDQUFzQyxDQUFBO0FBQ3BELGNBQWMseUJBQXlCLENBQUE7QUFDdkMsY0FBYyw4QkFBOEIsQ0FBQTtBQUM1QyxjQUFjLDRCQUE0QixDQUFBO0FBQzFDLGNBQWMsaUNBQWlDLENBQUE7QUFDL0MsY0FBYywrQkFBK0IsQ0FBQTtBQUM3QyxjQUFjLDRCQUE0QixDQUFBO0FBQzFDLFFBQVE7QUFDUixjQUFjLHFCQUFxQixDQUFBO0FBQ25DLGNBQWMsd0JBQXdCLENBQUE7QUFDdEMsY0FBYyxtQkFBbUIsQ0FBQTtBQUNqQyxjQUFjLHNCQUFzQixDQUFBO0FBQ3BDLGNBQWMsMEJBQTBCLENBQUE7QUFFeEMsYUFBYTtBQUNiLGNBQWUsb0NBQW9DLENBQUE7QUFDbkQsY0FBZSxnQ0FBZ0MsQ0FBQTtBQUMvQyxjQUFlLG1DQUFtQyxDQUFBO0FBQ2xELGNBQWUsc0NBQXNDLENBQUE7QUFDckQsY0FBZSx3Q0FBd0MsQ0FBQTtBQUN2RCxjQUFjLDZCQUE2QixDQUFBO0FBQzNDLGNBQWMsNkJBQTZCLENBQUE7QUFDM0MsY0FBYyxpQ0FBaUMsQ0FBQTtBQUUvQyxjQUFjLGVBQWUsQ0FBQTtBQUM3QixTQUFTO0FBQ1QsY0FBYyx5QkFBeUIsQ0FBQTtBQUN2QyxjQUFjLHdCQUF3QixDQUFBO0FBQ3RDLGNBQWMscUJBQXFCLENBQUE7QUFDbkMsY0FBYyw0Q0FBNEMsQ0FBQTtBQUMxRCxjQUFjLDBDQUEwQyxDQUFBO0FBRXhELE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzZXJ2aWNlc1xyXG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL3RoZW1lLWNvbnN0cnVjdG9yLnNlcnZpY2UnXHJcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvZGF0ZS5zZXJ2aWNlJ1xyXG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL3N2Zy1pY29ucy5zZXJ2aWNlJ1xyXG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2Rlc3Ryb3kuc2VydmljZSdcclxuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9pbnRlcmNlcHRvcnMuc2VydmljZSdcclxuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy92YWxpZGF0b3JzLnNlcnZpY2UnXHJcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvZmV0Y2hlci5zZXJ2aWNlJ1xyXG4vLyBwaXBlc1xyXG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL2ZpbHRlci5waXBlJ1xyXG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL2hpZ2hsaWdodC5waXBlJ1xyXG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL3NhZmUucGlwZSdcclxuZXhwb3J0ICogZnJvbSAnLi9waXBlcy9yZXZlcnNlLnBpcGUnXHJcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvZmlsdGVyLXRhYnMucGlwZSdcclxuXHJcbi8vIGRpcmVjdGl2ZXNcclxuZXhwb3J0ICogZnJvbSAgJy4vZGlyZWN0aXZlcy9hdXRvLWhlaWdodC5kaXJlY3RpdmUnXHJcbmV4cG9ydCAqIGZyb20gICcuL2RpcmVjdGl2ZXMvY291bnRlci5kaXJlY3RpdmUnXHJcbmV4cG9ydCAqIGZyb20gICcuL2RpcmVjdGl2ZXMvZGVjbGVuc2lvbi5kaXJlY3RpdmUnXHJcbmV4cG9ydCAqIGZyb20gICcuL2RpcmVjdGl2ZXMvY2xpY2stb3V0c2lkZS5kaXJlY3RpdmUnXHJcbmV4cG9ydCAqIGZyb20gICcuL2RpcmVjdGl2ZXMvcmVzaXplLXRleHRhcmVhLmRpcmVjdGl2ZSdcclxuZXhwb3J0ICogZnJvbSAnLi90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlJ1xyXG5leHBvcnQgKiBmcm9tICcuL3Rvb2x0aXAvdG9vbHRpcC5jb21wb25lbnQnXHJcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy90cmlhbmdsZS5kaXJlY3RpdmUnXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL3RvYXN0L2luZGV4J1xyXG4vLyBkaWFsb2dcclxuZXhwb3J0ICogZnJvbSAnLi9kaWFsb2cvZGlhbG9nLnNlcnZpY2UnXHJcbmV4cG9ydCAqIGZyb20gJy4vZGlhbG9nL2RpYWxvZy1jb25maWcnXHJcbmV4cG9ydCAqIGZyb20gJy4vZGlhbG9nL2RpYWxvZy1yZWYnXHJcbmV4cG9ydCAqIGZyb20gJy4vZGlhbG9nL21vZGFsLWJhc2UvbW9kYWwtY29tbW9uLmNvbXBvbmVudCdcclxuZXhwb3J0ICogZnJvbSAnLi9kaWFsb2cvbW9kYWwtYmFzZS9tb2RhbC1iYXNlLmNvbXBvbmVudCdcclxuXHJcbi8vIG1hcFxyXG4iXX0=
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZC1saWIvc3JjL2xpYi9jb3JlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFdBQVc7QUFDWCxjQUFjLHNDQUFzQyxDQUFBO0FBQ3BELGNBQWMseUJBQXlCLENBQUE7QUFDdkMsY0FBYyw4QkFBOEIsQ0FBQTtBQUM1QyxjQUFjLDRCQUE0QixDQUFBO0FBQzFDLGNBQWMsaUNBQWlDLENBQUE7QUFDL0MsY0FBYywrQkFBK0IsQ0FBQTtBQUM3QyxjQUFjLDRCQUE0QixDQUFBO0FBQzFDLFFBQVE7QUFDUixjQUFjLHFCQUFxQixDQUFBO0FBQ25DLGNBQWMsd0JBQXdCLENBQUE7QUFDdEMsY0FBYyxtQkFBbUIsQ0FBQTtBQUNqQyxjQUFjLHNCQUFzQixDQUFBO0FBQ3BDLGNBQWMsMEJBQTBCLENBQUE7QUFFeEMsYUFBYTtBQUNiLGNBQWUsb0NBQW9DLENBQUE7QUFDbkQsY0FBZSxnQ0FBZ0MsQ0FBQTtBQUMvQyxjQUFlLG1DQUFtQyxDQUFBO0FBQ2xELGNBQWUsc0NBQXNDLENBQUE7QUFDckQsY0FBZSx3Q0FBd0MsQ0FBQTtBQUN2RCxjQUFjLDZCQUE2QixDQUFBO0FBQzNDLGNBQWMsNkJBQTZCLENBQUE7QUFDM0MsY0FBYyxpQ0FBaUMsQ0FBQTtBQUMvQyxjQUFjLDJDQUEyQyxDQUFBO0FBQ3pELGNBQWMsbUNBQW1DLENBQUE7QUFDakQsY0FBYyxpREFBaUQsQ0FBQTtBQUMvRCxjQUFjLHdDQUF3QyxDQUFBO0FBQ3RELGNBQWMsdUNBQXVDLENBQUE7QUFFckQsY0FBYyxlQUFlLENBQUE7QUFDN0IsU0FBUztBQUNULGNBQWMseUJBQXlCLENBQUE7QUFDdkMsY0FBYyx3QkFBd0IsQ0FBQTtBQUN0QyxjQUFjLHFCQUFxQixDQUFBO0FBQ25DLGNBQWMsNENBQTRDLENBQUE7QUFDMUQsY0FBYywwQ0FBMEMsQ0FBQTtBQUV4RCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLy8gc2VydmljZXNcclxuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy90aGVtZS1jb25zdHJ1Y3Rvci5zZXJ2aWNlJ1xyXG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2RhdGUuc2VydmljZSdcclxuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9zdmctaWNvbnMuc2VydmljZSdcclxuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9kZXN0cm95LnNlcnZpY2UnXHJcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvaW50ZXJjZXB0b3JzLnNlcnZpY2UnXHJcbmV4cG9ydCAqIGZyb20gJy4vc2VydmljZXMvdmFsaWRhdG9ycy5zZXJ2aWNlJ1xyXG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2ZldGNoZXIuc2VydmljZSdcclxuLy8gcGlwZXNcclxuZXhwb3J0ICogZnJvbSAnLi9waXBlcy9maWx0ZXIucGlwZSdcclxuZXhwb3J0ICogZnJvbSAnLi9waXBlcy9oaWdobGlnaHQucGlwZSdcclxuZXhwb3J0ICogZnJvbSAnLi9waXBlcy9zYWZlLnBpcGUnXHJcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMvcmV2ZXJzZS5waXBlJ1xyXG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL2ZpbHRlci10YWJzLnBpcGUnXHJcblxyXG4vLyBkaXJlY3RpdmVzXHJcbmV4cG9ydCAqIGZyb20gICcuL2RpcmVjdGl2ZXMvYXV0by1oZWlnaHQuZGlyZWN0aXZlJ1xyXG5leHBvcnQgKiBmcm9tICAnLi9kaXJlY3RpdmVzL2NvdW50ZXIuZGlyZWN0aXZlJ1xyXG5leHBvcnQgKiBmcm9tICAnLi9kaXJlY3RpdmVzL2RlY2xlbnNpb24uZGlyZWN0aXZlJ1xyXG5leHBvcnQgKiBmcm9tICAnLi9kaXJlY3RpdmVzL2NsaWNrLW91dHNpZGUuZGlyZWN0aXZlJ1xyXG5leHBvcnQgKiBmcm9tICAnLi9kaXJlY3RpdmVzL3Jlc2l6ZS10ZXh0YXJlYS5kaXJlY3RpdmUnXHJcbmV4cG9ydCAqIGZyb20gJy4vdG9vbHRpcC90b29sdGlwLmRpcmVjdGl2ZSdcclxuZXhwb3J0ICogZnJvbSAnLi90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50J1xyXG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvdHJpYW5nbGUuZGlyZWN0aXZlJ1xyXG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvZHJvcC1kb3duLXBvc2l0aW9uLmRpcmVjdGl2ZSdcclxuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL3Bob25lLW1hc2suZGlyZWN0aXZlJ1xyXG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvbGlzdC1rZXlib2FyZC1uYXZpZ2F0aW9uLmRpcmVjdGl2ZSdcclxuZXhwb3J0ICogZnJvbSAnLi9kaXJlY3RpdmVzL3NlbGVjdGFibGUtaXRlbS5kaXJlY3RpdmUnXHJcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9maXhlZC1wb3NpdGlvbi5kaXJlY3RpdmUnXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL3RvYXN0L2luZGV4J1xyXG4vLyBkaWFsb2dcclxuZXhwb3J0ICogZnJvbSAnLi9kaWFsb2cvZGlhbG9nLnNlcnZpY2UnXHJcbmV4cG9ydCAqIGZyb20gJy4vZGlhbG9nL2RpYWxvZy1jb25maWcnXHJcbmV4cG9ydCAqIGZyb20gJy4vZGlhbG9nL2RpYWxvZy1yZWYnXHJcbmV4cG9ydCAqIGZyb20gJy4vZGlhbG9nL21vZGFsLWJhc2UvbW9kYWwtY29tbW9uLmNvbXBvbmVudCdcclxuZXhwb3J0ICogZnJvbSAnLi9kaWFsb2cvbW9kYWwtYmFzZS9tb2RhbC1iYXNlLmNvbXBvbmVudCdcclxuXHJcbi8vIG1hcFxyXG4iXX0=
@@ -266,7 +266,7 @@ export class LibCalendarComponent {
266
266
  useExisting: forwardRef(() => LibCalendarComponent),
267
267
  multi: true,
268
268
  },
269
- ], ngImport: i0, template: "@if (mode === 'icon') {\r\n<div class=\"pos-relative d-flex align-center\">\r\n @if (dateValue) {\r\n <span class=\"mr-12 green\">{{ dateValue | date: 'dd.MM.yyyy' }}</span>\r\n }\r\n <dd-lib-svg-icon class=\"cup\" (click)=\"showCalendar = !showCalendar\" icon=\"calendar\"></dd-lib-svg-icon>\r\n @if (dateValue) {\r\n <dd-lib-svg-icon class=\"cup\" (click)=\"canselDate()\" icon=\"clear\"></dd-lib-svg-icon>\r\n } @if (showCalendar) {\r\n <div class=\"calendar-abs-wrapper\">\r\n <ng-template [ngTemplateOutlet]=\"calendar\"></ng-template>\r\n </div>\r\n }\r\n</div>\r\n} @if (mode === 'full') {\r\n<ng-template [ngTemplateOutlet]=\"calendar\"></ng-template>\r\n}\r\n\r\n<ng-template #calendar>\r\n <dd-lib-card class=\"calendar-block\" type=\"small\">\r\n <div class=\"calendar-block__header\">\r\n <div class=\"calendar-block__header_arrow\">\r\n <dd-lib-svg-icon (click)=\"changeMonth(-1)\" icon=\"left_chevron\"></dd-lib-svg-icon>\r\n </div>\r\n <div class=\"calendar-block__header_year\">{{ getMonth() + ' ' + year }}</div>\r\n <div class=\"calendar-block__header_arrow\">\r\n <dd-lib-svg-icon (click)=\"changeMonth(1)\" icon=\"right_chevron\"></dd-lib-svg-icon>\r\n </div>\r\n </div>\r\n <div class=\"calendar-block__week\">\r\n @for (day of week; track day) {\r\n <div class=\"calendar-block__week_day\">{{ day }}</div>\r\n }\r\n </div>\r\n <div class=\"calendar-block__days\">\r\n @for (day of daysInMonth?.prevDays; track day) {\r\n <div class=\"calendar-block__days_day hide\">{{ day }}</div>\r\n } @for (day of daysInMonth?.days; track day) {\r\n <div\r\n (click)=\"selectDay(day)\"\r\n [class.active]=\"checkActiveDay(day)\"\r\n\r\n [class.current]=\"\r\n dateNow.getDate() === day && dateNow.getMonth() === month && dateNow.getFullYear() === year\r\n \"\r\n [class.hide]=\"checkHideDay(day)\"\r\n class=\"calendar-block__days_day normal\">\r\n {{ day }}\r\n </div>\r\n } @for (day of daysInMonth?.lastDays; track day) {\r\n <div class=\"calendar-block__days_day hide\">{{ day }}</div>\r\n }\r\n </div>\r\n @if(needTime) {\r\n <div class=\"calendar-block__time\">\r\n <div class=\"d-flex justify-between\">\r\n <div class=\"text-plain\">\u0412\u0440\u0435\u043C\u044F</div>\r\n <div class=\"d-flex\">\r\n <input [(ngModel)]=\"hours\" class=\"calendar-block__time-input\"\r\n type=\"text\"\r\n [ddMaxNum]=\"maxHours\"\r\n [curVal]=\"hours\"\r\n [disabled]=\"!dateValue\"\r\n [regExp]=\"true\"\r\n ddBanSymbol=\"^\\d+$\"\r\n max=\"23\"\r\n maxlength=\"2\"\r\n pattern=\"^\\d+$\">\r\n <span class=\"second-dot\">:</span>\r\n <input [(ngModel)]=\"minutes\" class=\"calendar-block__time-input\"\r\n [ddMaxNum]=\"maxMinutes\"\r\n [curVal]=\"minutes\"\r\n [disabled]=\"!dateValue\"\r\n [regExp]=\"true\"\r\n ddBanSymbol=\"^\\d+$\"\r\n max=\"59\"\r\n maxlength=\"2\"\r\n pattern=\"^\\d+$\"\r\n type=\"text\">\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n <div class=\"calendar-block__footer\">\r\n <dd-lib-button (click)=\"canselDate()\" [btnColor]=\"'transparent'\" class=\"calendar-block__footer_btn\"\r\n >\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C\r\n </dd-lib-button>\r\n <dd-lib-button (click)=\"selectDate()\"\r\n [disabled]=\"(!dateValue && !rangeMode) || (rangeMode && (!dateStart || !dateEnd))\"\r\n class=\"calendar-block__footer_btn\"\r\n >\u0412\u044B\u0431\u0440\u0430\u0442\u044C\r\n </dd-lib-button>\r\n </div>\r\n </dd-lib-card>\r\n</ng-template>\r\n", styles: [":host{display:block;-webkit-user-select:none;user-select:none}.calendar-block{z-index:1100;display:block}@media screen and (max-width: 840px){.calendar-block{height:100%}}.calendar-block__time{padding:22px 0;margin:22px 0;border-top:1px solid var(--gray-color-200);border-bottom:1px solid var(--gray-color-200)}.calendar-block__time-input{width:56px;height:36px;border-radius:12px;border:1px solid var(--primary-gray-color);text-align:center}.calendar-block__time .second-dot{margin:auto 8px;animation:blink 1s step-end infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.calendar-block__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;color:var(--calendar-gray-color);font-size:14px;font-weight:400;line-height:24px}.calendar-block__header_arrow{cursor:pointer}.calendar-block__week{display:grid;grid-template-columns:repeat(7,1fr);gap:14px;justify-items:center;color:var(--primary-green-color);font-size:10px;font-weight:400;line-height:12px;letter-spacing:1.5px;margin-bottom:22px}.calendar-block__week_day{display:flex;align-items:center;justify-content:space-around}.calendar-block__days{display:grid;grid-template-columns:repeat(7,1fr);gap:14px;justify-items:center;margin-bottom:22px}.calendar-block__days_day{cursor:pointer;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:29px;color:var(--light-black-color)}.calendar-block__days_day.current{border:1px solid var(--primary-green-color)}.calendar-block__days_day.active,.calendar-block__days_day.normal:hover{background-color:var(--primary-green-color);color:var(--white-color)}.calendar-block__days_day.hide{pointer-events:none;cursor:default;color:var(--calendar-gray-hide-color)}.calendar-block__footer{display:flex;align-items:center;justify-content:space-between}.calendar-abs-wrapper{position:absolute;box-shadow:var(--main-card-shadow);top:0;right:0;z-index:1111}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}\n"], dependencies: [{ kind: "component", type: LibCardComponent, selector: "dd-lib-card", inputs: ["type", "footerBtn", "sHeight", "skeleton", "parentLvlForSkeleton", "plugs", "borderRadius"], outputs: ["cardBtnEvent"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i2.DatePipe, name: "date" }, { kind: "component", type: LibButtonComponent, selector: "dd-lib-button", inputs: ["noPadding", "loaderColor"] }, { kind: "component", type: LibSvgIconComponent, selector: "dd-lib-svg-icon", inputs: ["width", "height", "color", "icon"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i3.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: BanSymbolDirective, selector: "[ddBanSymbol]", inputs: ["ddBanSymbol", "regExp"] }, { kind: "directive", type: MaxNumDirective, selector: "[ddMaxNum]", inputs: ["ddMaxNum", "curVal"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
269
+ ], ngImport: i0, template: "@if (mode === 'icon') {\r\n<div class=\"pos-relative d-flex align-center\">\r\n @if (dateValue) {\r\n <span class=\"mr-12 green\">{{ dateValue | date: 'dd.MM.yyyy' }}</span>\r\n }\r\n <dd-lib-svg-icon class=\"cup\" (click)=\"showCalendar = !showCalendar\" icon=\"calendar\"></dd-lib-svg-icon>\r\n @if (dateValue) {\r\n <dd-lib-svg-icon class=\"cup\" (click)=\"canselDate()\" icon=\"clear\"></dd-lib-svg-icon>\r\n } @if (showCalendar) {\r\n <div class=\"calendar-abs-wrapper\">\r\n <ng-template [ngTemplateOutlet]=\"calendar\"></ng-template>\r\n </div>\r\n }\r\n</div>\r\n} @if (mode === 'full') {\r\n<ng-template [ngTemplateOutlet]=\"calendar\"></ng-template>\r\n}\r\n\r\n<ng-template #calendar>\r\n <dd-lib-card class=\"calendar-block\" type=\"small\">\r\n <div class=\"full-width\">\r\n <div class=\"calendar-block__header\">\r\n <div class=\"calendar-block__header_arrow\">\r\n <dd-lib-svg-icon (click)=\"changeMonth(-1)\" icon=\"left_chevron\"></dd-lib-svg-icon>\r\n </div>\r\n <div class=\"calendar-block__header_year\">{{ getMonth() + ' ' + year }}</div>\r\n <div class=\"calendar-block__header_arrow\">\r\n <dd-lib-svg-icon (click)=\"changeMonth(1)\" icon=\"right_chevron\"></dd-lib-svg-icon>\r\n </div>\r\n </div>\r\n <div class=\"calendar-block__week\">\r\n @for (day of week; track day) {\r\n <div class=\"calendar-block__week_day\">{{ day }}</div>\r\n }\r\n </div>\r\n <div class=\"calendar-block__days\">\r\n @for (day of daysInMonth?.prevDays; track day) {\r\n <div class=\"calendar-block__days_day hide\">{{ day }}</div>\r\n } @for (day of daysInMonth?.days; track day) {\r\n <div\r\n (click)=\"selectDay(day)\"\r\n [class.active]=\"checkActiveDay(day)\"\r\n\r\n [class.current]=\"\r\n dateNow.getDate() === day && dateNow.getMonth() === month && dateNow.getFullYear() === year\r\n \"\r\n [class.hide]=\"checkHideDay(day)\"\r\n class=\"calendar-block__days_day normal\">\r\n {{ day }}\r\n </div>\r\n } @for (day of daysInMonth?.lastDays; track day) {\r\n <div class=\"calendar-block__days_day hide\">{{ day }}</div>\r\n }\r\n </div>\r\n @if(needTime) {\r\n <div class=\"calendar-block__time\">\r\n <div class=\"d-flex justify-between\">\r\n <div class=\"text-plain\">\u0412\u0440\u0435\u043C\u044F</div>\r\n <div class=\"d-flex\">\r\n <input [(ngModel)]=\"hours\" class=\"calendar-block__time-input\"\r\n type=\"text\"\r\n [ddMaxNum]=\"maxHours\"\r\n [curVal]=\"hours\"\r\n [disabled]=\"!dateValue\"\r\n [regExp]=\"true\"\r\n ddBanSymbol=\"^\\d+$\"\r\n max=\"23\"\r\n maxlength=\"2\"\r\n pattern=\"^\\d+$\">\r\n <span class=\"second-dot\">:</span>\r\n <input [(ngModel)]=\"minutes\" class=\"calendar-block__time-input\"\r\n [ddMaxNum]=\"maxMinutes\"\r\n [curVal]=\"minutes\"\r\n [disabled]=\"!dateValue\"\r\n [regExp]=\"true\"\r\n ddBanSymbol=\"^\\d+$\"\r\n max=\"59\"\r\n maxlength=\"2\"\r\n pattern=\"^\\d+$\"\r\n type=\"text\">\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n <div class=\"calendar-block__footer\">\r\n <dd-lib-button (click)=\"canselDate()\" [btnColor]=\"'transparent'\" class=\"calendar-block__footer_btn\"\r\n >\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C\r\n </dd-lib-button>\r\n <dd-lib-button (click)=\"selectDate()\"\r\n [disabled]=\"(!dateValue && !rangeMode) || (rangeMode && (!dateStart || !dateEnd))\"\r\n class=\"calendar-block__footer_btn\"\r\n >\u0412\u044B\u0431\u0440\u0430\u0442\u044C\r\n </dd-lib-button>\r\n </div>\r\n </div>\r\n </dd-lib-card>\r\n</ng-template>\r\n", styles: [":host{display:block;-webkit-user-select:none;user-select:none}.calendar-block{z-index:1100;display:block}@media screen and (max-width: 840px){.calendar-block{height:100%}}.calendar-block__time{padding:22px 0;margin:22px 0;border-top:1px solid var(--gray-color-200);border-bottom:1px solid var(--gray-color-200)}.calendar-block__time-input{width:56px;height:36px;border-radius:12px;border:1px solid var(--primary-gray-color);text-align:center}.calendar-block__time .second-dot{margin:auto 8px;animation:blink 1s step-end infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.calendar-block__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;color:var(--calendar-gray-color);font-size:14px;font-weight:400;line-height:24px}.calendar-block__header_arrow{cursor:pointer}.calendar-block__week{display:grid;grid-template-columns:repeat(7,1fr);gap:14px;justify-items:center;color:var(--primary-green-color);font-size:10px;font-weight:400;line-height:12px;letter-spacing:1.5px;margin-bottom:22px}.calendar-block__week_day{display:flex;align-items:center;justify-content:space-around}.calendar-block__days{display:grid;grid-template-columns:repeat(7,1fr);gap:14px;justify-items:center;margin-bottom:22px}.calendar-block__days_day{cursor:pointer;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:29px;color:var(--light-black-color)}.calendar-block__days_day.current{border:1px solid var(--primary-green-color)}.calendar-block__days_day.active,.calendar-block__days_day.normal:hover{background-color:var(--primary-green-color);color:var(--white-color)}.calendar-block__days_day.hide{pointer-events:none;cursor:default;color:var(--calendar-gray-hide-color)}.calendar-block__footer{display:flex;align-items:center;justify-content:space-between}.calendar-abs-wrapper{position:absolute;box-shadow:var(--main-card-shadow);top:0;right:0;z-index:1111}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}\n"], dependencies: [{ kind: "component", type: LibCardComponent, selector: "dd-lib-card", inputs: ["type", "footerBtn", "sHeight", "skeleton", "parentLvlForSkeleton", "plugs", "borderRadius"], outputs: ["cardBtnEvent"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i2.DatePipe, name: "date" }, { kind: "component", type: LibButtonComponent, selector: "dd-lib-button", inputs: ["noPadding", "loaderColor"] }, { kind: "component", type: LibSvgIconComponent, selector: "dd-lib-svg-icon", inputs: ["width", "height", "color", "icon"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i3.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: BanSymbolDirective, selector: "[ddBanSymbol]", inputs: ["ddBanSymbol", "regExp"] }, { kind: "directive", type: MaxNumDirective, selector: "[ddMaxNum]", inputs: ["ddMaxNum", "curVal"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
270
270
  }
271
271
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibCalendarComponent, decorators: [{
272
272
  type: Component,
@@ -287,7 +287,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
287
287
  useExisting: forwardRef(() => LibCalendarComponent),
288
288
  multi: true,
289
289
  },
290
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (mode === 'icon') {\r\n<div class=\"pos-relative d-flex align-center\">\r\n @if (dateValue) {\r\n <span class=\"mr-12 green\">{{ dateValue | date: 'dd.MM.yyyy' }}</span>\r\n }\r\n <dd-lib-svg-icon class=\"cup\" (click)=\"showCalendar = !showCalendar\" icon=\"calendar\"></dd-lib-svg-icon>\r\n @if (dateValue) {\r\n <dd-lib-svg-icon class=\"cup\" (click)=\"canselDate()\" icon=\"clear\"></dd-lib-svg-icon>\r\n } @if (showCalendar) {\r\n <div class=\"calendar-abs-wrapper\">\r\n <ng-template [ngTemplateOutlet]=\"calendar\"></ng-template>\r\n </div>\r\n }\r\n</div>\r\n} @if (mode === 'full') {\r\n<ng-template [ngTemplateOutlet]=\"calendar\"></ng-template>\r\n}\r\n\r\n<ng-template #calendar>\r\n <dd-lib-card class=\"calendar-block\" type=\"small\">\r\n <div class=\"calendar-block__header\">\r\n <div class=\"calendar-block__header_arrow\">\r\n <dd-lib-svg-icon (click)=\"changeMonth(-1)\" icon=\"left_chevron\"></dd-lib-svg-icon>\r\n </div>\r\n <div class=\"calendar-block__header_year\">{{ getMonth() + ' ' + year }}</div>\r\n <div class=\"calendar-block__header_arrow\">\r\n <dd-lib-svg-icon (click)=\"changeMonth(1)\" icon=\"right_chevron\"></dd-lib-svg-icon>\r\n </div>\r\n </div>\r\n <div class=\"calendar-block__week\">\r\n @for (day of week; track day) {\r\n <div class=\"calendar-block__week_day\">{{ day }}</div>\r\n }\r\n </div>\r\n <div class=\"calendar-block__days\">\r\n @for (day of daysInMonth?.prevDays; track day) {\r\n <div class=\"calendar-block__days_day hide\">{{ day }}</div>\r\n } @for (day of daysInMonth?.days; track day) {\r\n <div\r\n (click)=\"selectDay(day)\"\r\n [class.active]=\"checkActiveDay(day)\"\r\n\r\n [class.current]=\"\r\n dateNow.getDate() === day && dateNow.getMonth() === month && dateNow.getFullYear() === year\r\n \"\r\n [class.hide]=\"checkHideDay(day)\"\r\n class=\"calendar-block__days_day normal\">\r\n {{ day }}\r\n </div>\r\n } @for (day of daysInMonth?.lastDays; track day) {\r\n <div class=\"calendar-block__days_day hide\">{{ day }}</div>\r\n }\r\n </div>\r\n @if(needTime) {\r\n <div class=\"calendar-block__time\">\r\n <div class=\"d-flex justify-between\">\r\n <div class=\"text-plain\">\u0412\u0440\u0435\u043C\u044F</div>\r\n <div class=\"d-flex\">\r\n <input [(ngModel)]=\"hours\" class=\"calendar-block__time-input\"\r\n type=\"text\"\r\n [ddMaxNum]=\"maxHours\"\r\n [curVal]=\"hours\"\r\n [disabled]=\"!dateValue\"\r\n [regExp]=\"true\"\r\n ddBanSymbol=\"^\\d+$\"\r\n max=\"23\"\r\n maxlength=\"2\"\r\n pattern=\"^\\d+$\">\r\n <span class=\"second-dot\">:</span>\r\n <input [(ngModel)]=\"minutes\" class=\"calendar-block__time-input\"\r\n [ddMaxNum]=\"maxMinutes\"\r\n [curVal]=\"minutes\"\r\n [disabled]=\"!dateValue\"\r\n [regExp]=\"true\"\r\n ddBanSymbol=\"^\\d+$\"\r\n max=\"59\"\r\n maxlength=\"2\"\r\n pattern=\"^\\d+$\"\r\n type=\"text\">\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n <div class=\"calendar-block__footer\">\r\n <dd-lib-button (click)=\"canselDate()\" [btnColor]=\"'transparent'\" class=\"calendar-block__footer_btn\"\r\n >\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C\r\n </dd-lib-button>\r\n <dd-lib-button (click)=\"selectDate()\"\r\n [disabled]=\"(!dateValue && !rangeMode) || (rangeMode && (!dateStart || !dateEnd))\"\r\n class=\"calendar-block__footer_btn\"\r\n >\u0412\u044B\u0431\u0440\u0430\u0442\u044C\r\n </dd-lib-button>\r\n </div>\r\n </dd-lib-card>\r\n</ng-template>\r\n", styles: [":host{display:block;-webkit-user-select:none;user-select:none}.calendar-block{z-index:1100;display:block}@media screen and (max-width: 840px){.calendar-block{height:100%}}.calendar-block__time{padding:22px 0;margin:22px 0;border-top:1px solid var(--gray-color-200);border-bottom:1px solid var(--gray-color-200)}.calendar-block__time-input{width:56px;height:36px;border-radius:12px;border:1px solid var(--primary-gray-color);text-align:center}.calendar-block__time .second-dot{margin:auto 8px;animation:blink 1s step-end infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.calendar-block__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;color:var(--calendar-gray-color);font-size:14px;font-weight:400;line-height:24px}.calendar-block__header_arrow{cursor:pointer}.calendar-block__week{display:grid;grid-template-columns:repeat(7,1fr);gap:14px;justify-items:center;color:var(--primary-green-color);font-size:10px;font-weight:400;line-height:12px;letter-spacing:1.5px;margin-bottom:22px}.calendar-block__week_day{display:flex;align-items:center;justify-content:space-around}.calendar-block__days{display:grid;grid-template-columns:repeat(7,1fr);gap:14px;justify-items:center;margin-bottom:22px}.calendar-block__days_day{cursor:pointer;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:29px;color:var(--light-black-color)}.calendar-block__days_day.current{border:1px solid var(--primary-green-color)}.calendar-block__days_day.active,.calendar-block__days_day.normal:hover{background-color:var(--primary-green-color);color:var(--white-color)}.calendar-block__days_day.hide{pointer-events:none;cursor:default;color:var(--calendar-gray-hide-color)}.calendar-block__footer{display:flex;align-items:center;justify-content:space-between}.calendar-abs-wrapper{position:absolute;box-shadow:var(--main-card-shadow);top:0;right:0;z-index:1111}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}\n"] }]
290
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (mode === 'icon') {\r\n<div class=\"pos-relative d-flex align-center\">\r\n @if (dateValue) {\r\n <span class=\"mr-12 green\">{{ dateValue | date: 'dd.MM.yyyy' }}</span>\r\n }\r\n <dd-lib-svg-icon class=\"cup\" (click)=\"showCalendar = !showCalendar\" icon=\"calendar\"></dd-lib-svg-icon>\r\n @if (dateValue) {\r\n <dd-lib-svg-icon class=\"cup\" (click)=\"canselDate()\" icon=\"clear\"></dd-lib-svg-icon>\r\n } @if (showCalendar) {\r\n <div class=\"calendar-abs-wrapper\">\r\n <ng-template [ngTemplateOutlet]=\"calendar\"></ng-template>\r\n </div>\r\n }\r\n</div>\r\n} @if (mode === 'full') {\r\n<ng-template [ngTemplateOutlet]=\"calendar\"></ng-template>\r\n}\r\n\r\n<ng-template #calendar>\r\n <dd-lib-card class=\"calendar-block\" type=\"small\">\r\n <div class=\"full-width\">\r\n <div class=\"calendar-block__header\">\r\n <div class=\"calendar-block__header_arrow\">\r\n <dd-lib-svg-icon (click)=\"changeMonth(-1)\" icon=\"left_chevron\"></dd-lib-svg-icon>\r\n </div>\r\n <div class=\"calendar-block__header_year\">{{ getMonth() + ' ' + year }}</div>\r\n <div class=\"calendar-block__header_arrow\">\r\n <dd-lib-svg-icon (click)=\"changeMonth(1)\" icon=\"right_chevron\"></dd-lib-svg-icon>\r\n </div>\r\n </div>\r\n <div class=\"calendar-block__week\">\r\n @for (day of week; track day) {\r\n <div class=\"calendar-block__week_day\">{{ day }}</div>\r\n }\r\n </div>\r\n <div class=\"calendar-block__days\">\r\n @for (day of daysInMonth?.prevDays; track day) {\r\n <div class=\"calendar-block__days_day hide\">{{ day }}</div>\r\n } @for (day of daysInMonth?.days; track day) {\r\n <div\r\n (click)=\"selectDay(day)\"\r\n [class.active]=\"checkActiveDay(day)\"\r\n\r\n [class.current]=\"\r\n dateNow.getDate() === day && dateNow.getMonth() === month && dateNow.getFullYear() === year\r\n \"\r\n [class.hide]=\"checkHideDay(day)\"\r\n class=\"calendar-block__days_day normal\">\r\n {{ day }}\r\n </div>\r\n } @for (day of daysInMonth?.lastDays; track day) {\r\n <div class=\"calendar-block__days_day hide\">{{ day }}</div>\r\n }\r\n </div>\r\n @if(needTime) {\r\n <div class=\"calendar-block__time\">\r\n <div class=\"d-flex justify-between\">\r\n <div class=\"text-plain\">\u0412\u0440\u0435\u043C\u044F</div>\r\n <div class=\"d-flex\">\r\n <input [(ngModel)]=\"hours\" class=\"calendar-block__time-input\"\r\n type=\"text\"\r\n [ddMaxNum]=\"maxHours\"\r\n [curVal]=\"hours\"\r\n [disabled]=\"!dateValue\"\r\n [regExp]=\"true\"\r\n ddBanSymbol=\"^\\d+$\"\r\n max=\"23\"\r\n maxlength=\"2\"\r\n pattern=\"^\\d+$\">\r\n <span class=\"second-dot\">:</span>\r\n <input [(ngModel)]=\"minutes\" class=\"calendar-block__time-input\"\r\n [ddMaxNum]=\"maxMinutes\"\r\n [curVal]=\"minutes\"\r\n [disabled]=\"!dateValue\"\r\n [regExp]=\"true\"\r\n ddBanSymbol=\"^\\d+$\"\r\n max=\"59\"\r\n maxlength=\"2\"\r\n pattern=\"^\\d+$\"\r\n type=\"text\">\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n <div class=\"calendar-block__footer\">\r\n <dd-lib-button (click)=\"canselDate()\" [btnColor]=\"'transparent'\" class=\"calendar-block__footer_btn\"\r\n >\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C\r\n </dd-lib-button>\r\n <dd-lib-button (click)=\"selectDate()\"\r\n [disabled]=\"(!dateValue && !rangeMode) || (rangeMode && (!dateStart || !dateEnd))\"\r\n class=\"calendar-block__footer_btn\"\r\n >\u0412\u044B\u0431\u0440\u0430\u0442\u044C\r\n </dd-lib-button>\r\n </div>\r\n </div>\r\n </dd-lib-card>\r\n</ng-template>\r\n", styles: [":host{display:block;-webkit-user-select:none;user-select:none}.calendar-block{z-index:1100;display:block}@media screen and (max-width: 840px){.calendar-block{height:100%}}.calendar-block__time{padding:22px 0;margin:22px 0;border-top:1px solid var(--gray-color-200);border-bottom:1px solid var(--gray-color-200)}.calendar-block__time-input{width:56px;height:36px;border-radius:12px;border:1px solid var(--primary-gray-color);text-align:center}.calendar-block__time .second-dot{margin:auto 8px;animation:blink 1s step-end infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.calendar-block__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;color:var(--calendar-gray-color);font-size:14px;font-weight:400;line-height:24px}.calendar-block__header_arrow{cursor:pointer}.calendar-block__week{display:grid;grid-template-columns:repeat(7,1fr);gap:14px;justify-items:center;color:var(--primary-green-color);font-size:10px;font-weight:400;line-height:12px;letter-spacing:1.5px;margin-bottom:22px}.calendar-block__week_day{display:flex;align-items:center;justify-content:space-around}.calendar-block__days{display:grid;grid-template-columns:repeat(7,1fr);gap:14px;justify-items:center;margin-bottom:22px}.calendar-block__days_day{cursor:pointer;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:29px;color:var(--light-black-color)}.calendar-block__days_day.current{border:1px solid var(--primary-green-color)}.calendar-block__days_day.active,.calendar-block__days_day.normal:hover{background-color:var(--primary-green-color);color:var(--white-color)}.calendar-block__days_day.hide{pointer-events:none;cursor:default;color:var(--calendar-gray-hide-color)}.calendar-block__footer{display:flex;align-items:center;justify-content:space-between}.calendar-abs-wrapper{position:absolute;box-shadow:var(--main-card-shadow);top:0;right:0;z-index:1111}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}\n"] }]
291
291
  }], ctorParameters: () => [{ type: i1.DateService }], propDecorators: { type: [{
292
292
  type: Input
293
293
  }], formatDate: [{
@@ -313,4 +313,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
313
313
  }], minDate: [{
314
314
  type: Input
315
315
  }] } });
316
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLWNhbGVuZGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RkLWxpYi9zcmMvbGliL2xpYi1jYWxlbmRhci9saWItY2FsZW5kYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGQtbGliL3NyYy9saWIvbGliLWNhbGVuZGFyL2xpYi1jYWxlbmRhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFVLE1BQU0sR0FBRSxNQUFNLGVBQWUsQ0FBQztBQUNuSCxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQUMxRixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUMsWUFBWSxFQUFFLGdCQUFnQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDL0QsT0FBTyxFQUF1QixXQUFXLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUN0RSxPQUFPLEVBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFFbEQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFFM0UsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDM0UsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHNDQUFzQyxDQUFDOzs7OztBQUVyRSxNQUFNLE1BQU0sR0FBRztJQUNiLFFBQVE7SUFDUixTQUFTO0lBQ1QsTUFBTTtJQUNOLFFB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MUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLENBQUM7NEJBQ25ELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGLG1CQUdnQix1QkFBdUIsQ0FBQyxNQUFNO2dGQUcvQixJQUFJO3NCQUFuQixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsVUFBVTtzQkFBekIsS0FBSztnQkFDVSxTQUFTO3NCQUF4QixLQUFLO2dCQUNVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQ1UsVUFBVTtzQkFBekIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLO2dCQUNVLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ1csUUFBUTtzQkFBeEIsTUFBTTtnQkFDVSxVQUFVO3NCQUExQixNQUFNO2dCQUVJLE9BQU87c0JBRGpCLEtBQUs7Z0JBZ0JLLE9BQU87c0JBRGpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7TGliRmlsdGVyQnV0dG9uQ29tcG9uZW50fSBmcm9tICcuLi9saWItZmlsdGVyLWJ1dHRvbi9saWItZmlsdGVyLWJ1dHRvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQge0xpYkNhcmRDb21wb25lbnR9IGZyb20gJy4uL2xpYi1jYXJkL2xpYi1jYXJkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7TGliUmFkaW9Db21wb25lbnR9IGZyb20gJy4uL2xpYi1yYWRpby9saWItcmFkaW8uY29tcG9uZW50JztcclxuaW1wb3J0IHtDb21tb25Nb2R1bGUsIE5nT3B0aW1pemVkSW1hZ2V9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7Q29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge0xpYkJ1dHRvbkNvbXBvbmVudH0gZnJvbSAnLi4vbGliLWJ1dHRvbi9saWItYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7aXNBZnRlciwgaXNCZWZvcmUsIHBhcnNlfSBmcm9tICdkYXRlLWZucyc7XHJcbmltcG9ydCB7RGF0ZVNlcnZpY2UsIElEYXlzSW5Nb250aH0gZnJvbSBcIi4uL2NvcmVcIjtcclxuaW1wb3J0IHtMaWJTdmdJY29uQ29tcG9uZW50fSBmcm9tIFwiLi4vbGliLXN2Zy1pY29uL2xpYi1zdmctaWNvbi5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtzd2l0Y2hNYXB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQge0JhblN5bWJvbERpcmVjdGl2ZX0gZnJvbSBcIi4uL2NvcmUvZGlyZWN0aXZlcy9iYW4tc3ltYm9sLmRpcmVjdGl2ZVwiO1xyXG5pbXBvcnQge01heE51bURpcmVjdGl2ZX0gZnJvbSBcIi4uL2NvcmUvZGlyZWN0aXZlcy9tYXgtbnVtLmRpcmVjdGl2ZVwiO1xyXG5cclxuY29uc3QgTW9udGhzID0gW1xyXG4gICfQr9C90LLQsNGA0YwnLFxyXG4gICfQpNC10LLRgNCw0LvRjCcsXHJcbiAgJ9Cc0LDRgNGCJyxcclxuICAn0JDQv9GA0LXQu9GMJyxcclxuICAn0JzQsNC5JyxcclxuICAn0JjRjtC90YwnLFxyXG4gICfQmNGO0LvRjCcsXHJcbiAgJ9CQ0LLQs9GD0YHRgicsXHJcbiAgJ9Ch0LXQvdGC0Y/QsdGA0YwnLFxyXG4gICfQntC60YLRj9Cx0YDRjCcsXHJcbiAgJ9Cd0L7Rj9Cx0YDRjCcsXHJcbiAgJ9CU0LXQutCw0LHRgNGMJyxcclxuXTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSURhdGVQZXJpb2Qge1xyXG4gIHN0YXJ0OiBEYXRlIHwgdW5kZWZpbmVkO1xyXG4gIGVuZDogRGF0ZSB8IHVuZGVmaW5lZDtcclxufVxyXG5cclxuLyoqXHJcbiDQrdGC0L7RgiDQutC+0LzQv9C+0L3QtdC90YIg0LjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPINC00LvRjyDQvtGC0L7QsdGA0LDQttC10L3QuNGPINC60LDQu9C10L3QtNCw0YDRjyDRgSDQstC+0LfQvNC+0LbQvdC+0YHRgtGM0Y4g0LLRi9Cx0L7RgNCwINC00LDRgtGLLlxyXG4g0J3QuNC20LUg0L/RgNC40LLQtdC00LXQvdC+INC+0L/QuNGB0LDQvdC40LUg0YHQstC+0LnRgdGC0LIg0Lgg0LzQtdGC0L7QtNC+0LIg0LTQsNC90L3QvtCz0L4g0LrQvtC80L/QvtC90LXQvdGC0LA6XHJcblxyXG4g0KHQstC+0LnRgdGC0LLQsDpcclxuIC0gQElucHV0KCkgcHVibGljIHR5cGU6ICdzdHJpbmcnIHwgJ251bWJlcicgfCAnZGF0ZScgPSAnc3RyaW5nJzsgLSDRgtC40L8g0LTQsNC90L3Ri9GFINC00LvRjyDQstGL0LHQvtGA0LAg0LTQsNGC0YsuXHJcbiAtIEBJbnB1dCgpIHB1YmxpYyBmb3JtYXQgPSAnZGQuTU0ueXl5eSBISDptbSc7IC0g0YTQvtGA0LzQsNGCINC+0YLQvtCx0YDQsNC20LXQvdC40Y8g0LTQsNGC0YsuXHJcbiAtIEBJbnB1dCgpIHB1YmxpYyBtYXhEYXRlID0gbmV3IERhdGUoKTsgLSDQvNCw0LrRgdC40LzQsNC70YzQvdCw0Y8g0LTQsNGC0LAsINC60L7RgtC+0YDRg9GOINC80L7QttC90L4g0LLRi9Cx0YDQsNGC0YwuXHJcbiAtIEBPdXRwdXQoKSBwdWJsaWMgZW1pdERhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPGRhdGUgfCB1bmRlZmluZWQ+KCk7IC0g0YHQvtCx0YvRgtC40LUsINGB0YDQsNCx0LDRgtGL0LLQsNGO0YnQtdC1INC/0YDQuCDQstGL0LHQvtGA0LUg0LTQsNGC0YsuXHJcbiAtIHB1YmxpYyBkYXRlVmFsdWU6IERhdGUgfCB1bmRlZmluZWQ7IC0g0LLRi9Cx0YDQsNC90L3QsNGPINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtdC8INC00LDRgtCwLlxyXG4gLSBwdWJsaWMgbW9udGhzID0gTW9udGhzOyAtINC80LDRgdGB0LjQsiDRgSDQvdCw0LfQstCw0L3QuNGP0LzQuCDQvNC10YHRj9GG0LXQsi5cclxuIC0gcHVibGljIHdlZWsgPSBbJ9Cf0J0nLCAn0JLQoicsICfQodCgJywgJ9Cn0KInLCAn0J/QoicsICfQodCRJywgJ9CS0KEnXTsgLSDQvNCw0YHRgdC40LIg0YEg0L3QsNC30LLQsNC90LjRj9C80Lgg0LTQvdC10Lkg0L3QtdC00LXQu9C4LlxyXG4gLSBwdWJsaWMgeWVhciA9IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKTsgLSDRgtC10LrRg9GJ0LjQuSDQs9C+0LQuXHJcbiAtIHB1YmxpYyBtb250aCA9IG5ldyBEYXRlKCkuZ2V0TW9udGgoKTsgLSDRgtC10LrRg9GJ0LjQuSDQvNC10YHRj9GGLlxyXG4gLSBwdWJsaWMgZGF5ID0gbmV3IERhdGUoKS5nZXREYXkoKTsgLSDRgtC10LrRg9GJ0LjQuSDQtNC10L3RjCDQvdC10LTQtdC70LguXHJcbiAtIHB1YmxpYyBkYXlzSW5Nb250aDogSURheXNJbk1vbnRoOyAtINC60L7Qu9C40YfQtdGB0YLQstC+INC00L3QtdC5INCyINGC0LXQutGD0YnQtdC8INC80LXRgdGP0YbQtS5cclxuIC0gcHVibGljIGN1cnJlbnREYXRlID0gbmV3IERhdGUoKTsgLSDRgtC10LrRg9GJ0LDRjyDQstGL0LHRgNCw0L3QvdCw0Y8g0LTQsNGC0LAuXHJcbiAtIHB1YmxpYyBkYXRlTm93ID0gbmV3IERhdGUoKTsgLSDRgtC10LrRg9GJ0LDRjyDQtNCw0YLQsC5cclxuIC0gcHVibGljIG9uVG91Y2hlZENhbGxiYWNrOiAoKSA9PiB2b2lkOyAtINGE0YPQvdC60YbQuNGPINC+0LHRgNCw0YLQvdC+0LPQviDQstGL0LfQvtCy0LAg0L/RgNC4INC60LDRgdCw0L3QuNC4LlxyXG5cclxuINCc0LXRgtC+0LTRizpcclxuIC0gcHVibGljIHByb3BhZ2F0ZUNoYW5nZShfdmFsdWU6IERhdGUpOiB2b2lkIHt9IC0g0LzQtdGC0L7QtCDQtNC70Y8g0L7QsdC90L7QstC70LXQvdC40Y8g0LfQvdCw0YfQtdC90LjRjyDQstGL0LHRgNCw0L3QvdC+0Lkg0LTQsNGC0YsuXHJcbiAtIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHt9IC0g0LzQtdGC0L7QtCDQttC40LfQvdC10L3QvdC+0LPQviDRhtC40LrQu9CwINC60L7QvNC/0L7QvdC10L3RgtCwLCDQstGL0LfRi9Cy0LDQtdC80YvQuSDQv9GA0Lgg0LjQvdC40YbQuNCw0LvQuNC30LDRhtC40LguXHJcbiAtIHB1YmxpYyBzZXREYXlJbk1vbnRoKCk6IHZvaWQge30gLSDQvNC10YLQvtC0INC00LvRjyDRg9GB0YLQsNC90L7QstC60Lgg0LrQvtC70LjRh9C10YHRgtCy0LAg0LTQvdC10Lkg0LIg0YLQtdC60YPRidC10Lwg0LzQtdGB0Y/RhtC1LlxyXG4gLSBwdWJsaWMgY2hhbmdlTW9udGgobnVtYmVyOiBudW1iZXIpOiB2b2lkIHt9IC0g0LzQtdGC0L7QtCDQtNC70Y8g0LjQt9C80LXQvdC10L3QuNGPINC80LXRgdGP0YbQsCDQsiDQutCw0LvQtdC90LTQsNGA0LUuXHJcbiAtIHB1YmxpYyBnZXRNb250aCgpOiBzdHJpbmcge30gLSDQvNC10YLQvtC0INC00LvRjyDQv9C+0LvRg9GH0LXQvdC40Y8g0L3QsNC30LLQsNC90LjRjyDRgtC10LrRg9GJ0LXQs9C+INC80LXRgdGP0YbQsC5cclxuIC0gcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge30gLSDQvNC10YLQvtC0INC00LvRjyDRgNC10LPQuNGB0YLRgNCw0YbQuNC4INGE0YPQvdC60YbQuNC4INC+0LHRgNCw0YLQvdC+0LPQviDQstGL0LfQvtCy0LAg0L/RgNC4INC40LfQvNC10L3QtdC90LjQuCDQt9C90LDRh9C10L3QuNGPLlxyXG4gLSBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge30gLSDQvNC10YLQvtC0INC00LvRjyDRgNC10LPQuNGB0YLRgNCw0YbQuNC4INGE0YPQvdC60YbQuNC4INC+0LHRgNCw0YLQvdC+0LPQviDQstGL0LfQvtCy0LAg0L/RgNC4INC60LDRgdCw0L3QuNC4LlxyXG4gLSBwdWJsaWMgd3JpdGVWYWx1ZSh2YWw6IERhdGUpOiB2b2lkIHt9IC0g0LzQtdGC0L7QtCDQtNC70Y8g0YPRgdGC0LDQvdC+0LLQutC4INC30L3QsNGH0LXQvdC40Y8g0LTQsNGC0YsuXHJcbiAtIHB1YmxpYyBzZWxlY3REYXkoZGF5OiBudW1iZXIpOiB2b2lkIHt9IC0g0LzQtdGC0L7QtCDQtNC70Y8g0LLRi9Cx0L7RgNCwINC60L7QvdC60YDQtdGC0L3QvtCz0L4g0LTQvdGPINCyINC60LDQu9C10L3QtNCw0YDQtS5cclxuIC0gcHVibGljIHNlbGVjdERhdGUoKTogdm9pZCB7fSAtINC80LXRgtC+0LQg0LTQu9GPINCy0YvQsdC+0YDQsCDQtNCw0YLRiyDQuCDQv9C10YDQtdC00LDRh9C4INC30L3QsNGH0LXQvdC40Y8g0YfQtdGA0LXQtyBwcm9wYWdhdGVDaGFuZ2Ug0LggZW1pdERhdGUuXHJcbiAtIHB1YmxpYyBjaGVja0hpZGVEYXkoZGF5OiBudW1iZXIpOiBib29sZWFuIHt9IC0g0LzQtdGC0L7QtCDQtNC70Y8g0L/RgNC+0LLQtdGA0LrQuCDRgdC60YDRi9GC0LjRjyDQvtC/0YDQtdC00LXQu9C10L3QvdC+0LPQviDQtNC90Y8g0LIg0LrQsNC70LXQvdC00LDRgNC1LlxyXG4gLSBwdWJsaWMgY2Fuc2VsRGF0ZSgpOiB2b2lkIHt9IC0g0LzQtdGC0L7QtCDQtNC70Y8g0L7RgtC80LXQvdGLINCy0YvQsdGA0LDQvdC90L7QuSDQtNCw0YLRiyDQuCDRgdCx0YDQvtGB0LAg0LfQvdCw0YfQtdC90LjQuS5cclxuICoqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2RkLWxpYi1jYWxlbmRhcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBMaWJGaWx0ZXJCdXR0b25Db21wb25lbnQsXHJcbiAgICBMaWJDYXJkQ29tcG9uZW50LFxyXG4gICAgTGliUmFkaW9Db21wb25lbnQsXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBMaWJCdXR0b25Db21wb25lbnQsXHJcbiAgICBOZ09wdGltaXplZEltYWdlLFxyXG4gICAgTGliU3ZnSWNvbkNvbXBvbmVudCxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgQmFuU3ltYm9sRGlyZWN0aXZlLFxyXG4gICAgTWF4TnVtRGlyZWN0aXZlXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IExpYkNhbGVuZGFyQ29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2xpYi1jYWxlbmRhci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2xpYi1jYWxlbmRhci5jb21wb25lbnQuc2NzcycsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMaWJDYWxlbmRhckNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQge1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB0eXBlOiAnc3RyaW5nJyB8ICdudW1iZXInIHwgJ2RhdGUnID0gJ3N0cmluZyc7XHJcbiAgQElucHV0KCkgcHVibGljIGZvcm1hdERhdGUgPSAnZGQuTU0ueXl5eSc7XHJcbiAgQElucHV0KCkgcHVibGljIGZvcm1hdFRpbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBwdWJsaWMgcmFuZ2VNb2RlID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIG1heEhvdXJzID0gMjM7XHJcbiAgQElucHV0KCkgcHVibGljIG1heE1pbnV0ZXMgPSA1OTtcclxuICBASW5wdXQoKSBwdWJsaWMgbmVlZFRpbWUgPSBmYWxzZTtcclxuICBASW5wdXQoKSBwdWJsaWMgbW9kZTogJ2ljb24nIHwgJ2Z1bGwnID0gJ2Z1bGwnO1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgZW1pdERhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGUgfCB1bmRlZmluZWQ+KCk7XHJcbiAgQE91dHB1dCgpIHB1YmxpYyBlbWl0UGVyaW9kID0gbmV3IEV2ZW50RW1pdHRlcjxJRGF0ZVBlcmlvZCB8IHVuZGVmaW5lZD4oKTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgbWF4RGF0ZShkYXRlOiBhbnkpIHtcclxuICAgIGlmIChkYXRlID09PSAnY3VycmVudCcpIHtcclxuICAgICAgdGhpcy5fbWF4RGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBkYXRlID09PSAnb2JqZWN0Jykge1xyXG4gICAgICB0aGlzLl9tYXhEYXRlID0gZGF0ZTtcclxuICAgIH0gZWxzZSBpZiAodHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgIHRoaXMuX21heERhdGUgPSBwYXJzZShcclxuICAgICAgICBkYXRlLFxyXG4gICAgICAgIGAke3RoaXMuZm9ybWF0RGF0ZX0ke3RoaXMuZm9ybWF0VGltZSA/ICcgJyArIHRoaXMuZm9ybWF0VGltZSA6ICcnfWAsXHJcbiAgICAgICAgbmV3IERhdGUoKSxcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBtaW5EYXRlKGRhdGU6IGFueSkge1xyXG4gICAgaWYgKGRhdGUgPT09ICdjdXJyZW50Jykge1xyXG4gICAgICB0aGlzLl9taW5EYXRlID0gbmV3IERhdGUoKTtcclxuICAgIH0gZWxzZSBpZiAoZGF0ZSA9PT0gJ3llYXInKSB7XHJcbiAgICAgIHRoaXMuX21pbkRhdGUgPSBuZXcgRGF0ZShuZXcgRGF0ZSgpLnNldEZ1bGxZZWFyKG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKSAtIDEpKTtcclxuICAgIH0gZWxzZSBpZiAoZGF0ZSA9PT0gJ21vbnRoJykge1xyXG4gICAgICB0aGlzLl9taW5EYXRlID0gbmV3IERhdGUobmV3IERhdGUoKS5zZXRNb250aChuZXcgRGF0ZSgpLmdldE1vbnRoKCkgLSAxKSk7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBkYXRlID09PSAnb2JqZWN0Jykge1xyXG4gICAgICB0aGlzLl9taW5EYXRlID0gZGF0ZTtcclxuICAgIH0gZWxzZSBpZiAodHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgIHRoaXMuX21pbkRhdGUgPSBwYXJzZShcclxuICAgICAgICBkYXRlLFxyXG4gICAgICAgIGAke3RoaXMuZm9ybWF0RGF0ZX0ke3RoaXMuZm9ybWF0VGltZSA/ICcgJyArIHRoaXMuZm9ybWF0VGltZSA6ICcnfWAsXHJcbiAgICAgICAgbmV3IERhdGUoKSxcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX21heERhdGU6IERhdGUgfCB1bmRlZmluZWQ7XHJcbiAgcHJpdmF0ZSBfbWluRGF0ZTogRGF0ZSB8IHVuZGVmaW5lZDtcclxuICBwdWJsaWMgZGF0ZVZhbHVlOiBEYXRlIHwgdW5kZWZpbmVkO1xyXG4gIHB1YmxpYyBkYXRlU3RhcnQ6IERhdGUgfCB1bmRlZmluZWQ7XHJcbiAgcHVibGljIGRhdGVFbmQ6IERhdGUgfCB1bmRlZmluZWQ7XHJcbiAgcHVibGljIG1vbnRocyA9IE1vbnRocztcclxuICBwdWJsaWMgd2VlayA9IFsn0J/QnScsICfQktCiJywgJ9Ch0KAnLCAn0KfQoicsICfQn9CiJywgJ9Ch0JEnLCAn0JLQoSddO1xyXG4gIHB1YmxpYyB5ZWFyID0gbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpO1xyXG4gIHB1YmxpYyBtb250aCA9IG5ldyBEYXRlKCkuZ2V0TW9udGgoKTtcclxuICBwdWJsaWMgZGF5ID0gbmV3IERhdGUoKS5nZXREYXkoKTtcclxuICBwdWJsaWMgZGF5c0luTW9udGg6IElEYXlzSW5Nb250aCB8IHVuZGVmaW5lZDtcclxuICAvLyBtaW5EYXRlID0gc2V0TWluRGF0ZSgpO1xyXG4gIHB1YmxpYyBjdXJyZW50RGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgcHVibGljIGRhdGVOb3cgPSBuZXcgRGF0ZSgpO1xyXG4gIHB1YmxpYyBvblRvdWNoZWRDYWxsYmFjazogKCgpID0+IHZvaWQpIHwgdW5kZWZpbmVkO1xyXG4gIHB1YmxpYyBzaG93Q2FsZW5kYXI6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgcHVibGljIGhvdXJzID0gJzAwJ1xyXG4gIHB1YmxpYyBtaW51dGVzID0gJzAwJ1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0ZVNlcnZpY2U6IERhdGVTZXJ2aWNlKSB7fVxyXG5cclxuICBwdWJsaWMgcHJvcGFnYXRlQ2hhbmdlKF92YWx1ZTogRGF0ZSB8IElEYXRlUGVyaW9kKTogdm9pZCB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldERheUluTW9udGgoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXREYXlJbk1vbnRoKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kYXlzSW5Nb250aCA9IHRoaXMuZGF0ZVNlcnZpY2UuZ2V0RGF5c0luTW9udGgodGhpcy5tb250aCwgdGhpcy55ZWFyKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjaGFuZ2VNb250aChudW1iZXI6IG51bWJlcik6IHZvaWQge1xyXG4gICAgY29uc3QgdGVtcCA9IG5ldyBEYXRlKHRoaXMuY3VycmVudERhdGUpO1xyXG4gICAgdGVtcC5zZXRNb250aCh0ZW1wLmdldE1vbnRoKCkgKyBudW1iZXIpO1xyXG4gICAgdGhpcy5tb250aCA9IHRlbXAuZ2V0TW9udGgoKTtcclxuICAgIHRoaXMueWVhciA9IHRlbXAuZ2V0RnVsbFllYXIoKTtcclxuICAgIHRoaXMuY3VycmVudERhdGUgPSB0ZW1wO1xyXG4gICAgdGhpcy5zZXREYXlJbk1vbnRoKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0TW9udGgoKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLmN1cnJlbnREYXRlICYmICEodGhpcy5kYXRlVmFsdWUgfHwgdGhpcy5kYXRlU3RhcnQpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLm1vbnRoc1t0aGlzLmN1cnJlbnREYXRlLmdldE1vbnRoKCldO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMubW9udGhzW3RoaXMubW9udGhdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrID0gZm47XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWw6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucmFuZ2VNb2RlKSB7XHJcbiAgICAgIHRoaXMuZGF0ZVN0YXJ0ID0gdmFsPy5zdGFydDtcclxuICAgICAgdGhpcy5kYXRlRW5kID0gdmFsPy5lbmQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRhdGVWYWx1ZSA9IHZhbDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmRhdGVWYWx1ZSB8fCB0aGlzLmRhdGVTdGFydCkge1xyXG4gICAgICB0aGlzLnNob3dDdXJyZW5TZWxlY3REYXkodGhpcy5kYXRlVmFsdWUgfHwgdGhpcy5kYXRlU3RhcnQhKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dDdXJyZW5TZWxlY3REYXkoZGF0ZTogRGF0ZSk6IHZvaWQge1xyXG4gICAgdGhpcy5kYXkgPSBkYXRlLmdldERhdGUoKVxyXG4gICAgdGhpcy5tb250aCA9IGRhdGUuZ2V0TW9udGgoKVxyXG4gICAgdGhpcy55ZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpXHJcbiAgICB0aGlzLmN1cnJlbnREYXRlID0gbmV3IERhdGUodGhpcy5kYXRlVmFsdWUgfHwgdGhpcy5kYXRlU3RhcnQhKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZWxlY3REYXkoZGF5OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5jaGVja0hpZGVEYXkoZGF5KSkge1xyXG4gICAgICBpZiAodGhpcy5yYW5nZU1vZGUpIHtcclxuICAgICAgICBpZiAoIXRoaXMuZGF0ZVN0YXJ0KSB7XHJcbiAgICAgICAgICB0aGlzLmRhdGVTdGFydCA9IG5ldyBEYXRlKHRoaXMueWVhciwgdGhpcy5tb250aCwgZGF5KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc3QgZURhdGUgPSBuZXcgRGF0ZSh0aGlzLnllYXIsIHRoaXMubW9udGgsIGRheSk7XHJcbiAgICAgICAgICBpZiAodGhpcy5kYXRlU3RhcnQgPiBlRGF0ZSkge1xyXG4gICAgICAgICAgICB0aGlzLmRhdGVFbmQgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgIHRoaXMuZGF0ZVN0YXJ0ID0gZURhdGU7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmRhdGVFbmQgPSBlRGF0ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5kYXRlVmFsdWUgPSBuZXcgRGF0ZSh0aGlzLnllYXIsIHRoaXMubW9udGgsIGRheSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZWxlY3REYXRlKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucmFuZ2VNb2RlKSB7XHJcbiAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHtzdGFydDogdGhpcy5kYXRlU3RhcnQhLCBlbmQ6IHRoaXMuZGF0ZUVuZCF9KTtcclxuICAgICAgdGhpcy5lbWl0UGVyaW9kLmVtaXQoe3N0YXJ0OiB0aGlzLmRhdGVTdGFydCEsIGVuZDogdGhpcy5kYXRlRW5kIX0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMubmVlZFRpbWUpIHtcclxuICAgICAgICB0aGlzLmRhdGVWYWx1ZT8uc2V0SG91cnMoK3RoaXMuaG91cnMsICt0aGlzLm1pbnV0ZXMpXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy5kYXRlVmFsdWUgYXMgRGF0ZSk7XHJcbiAgICAgIHRoaXMuZW1pdERhdGUuZW1pdCh0aGlzLmRhdGVWYWx1ZSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNob3dDYWxlbmRhciA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNoZWNrSGlkZURheShkYXk6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgbGV0IG1vcmVEYXkgPSBmYWxzZTtcclxuICAgICAgbGV0IG1vcmVNb250aCA9IGZhbHNlO1xyXG4gICAgICBsZXQgbW9yZVllYXIgPSBmYWxzZTtcclxuICAgIGNvbnN0IGxlc3NEYXkgPSBmYWxzZTtcclxuICAgICAgY29uc3QgbGVzc01vbnRoID0gZmFsc2U7XHJcbiAgICAgIGNvbnN0IGxlc3NZZWFyID0gZmFsc2U7XHJcbiAgICBpZiAodGhpcy5fbWF4RGF0ZSkge1xyXG4gICAgICBjb25zdCBbbWF4WWVhciwgbWF4TW9udGgsIG1heERheV0gPSBbXHJcbiAgICAgICAgdGhpcy5fbWF4RGF0ZS5nZXRGdWxsWWVhcigpLFxyXG4gICAgICAgIHRoaXMuX21heERhdGUuZ2V0TW9udGgoKSxcclxuICAgICAgICB0aGlzLl9tYXhEYXRlLmdldERhdGUoKSxcclxuICAgICAgXTtcclxuICAgICAgbW9yZURheSA9IHRoaXMueWVhciA+PSBtYXhZZWFyICYmIHRoaXMubW9udGggPj0gbWF4TW9udGggJiYgZGF5ID4gbWF4RGF5O1xyXG4gICAgICBtb3JlTW9udGggPSB0aGlzLnllYXIgPj0gbWF4WWVhciAmJiB0aGlzLm1vbnRoID4gbWF4TW9udGg7XHJcbiAgICAgIG1vcmVZZWFyID0gdGhpcy55ZWFyID4gbWF4WWVhcjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLl9taW5EYXRlKSB7XHJcbiAgICAgIGNvbnN0IFttaW5ZZWFyLCBtaW5Nb250aCwgbWluRGF5XSA9IFtcclxuICAgICAgICB0aGlzLl9taW5EYXRlLmdldEZ1bGxZZWFyKCksXHJcbiAgICAgICAgdGhpcy5fbWluRGF0ZS5nZXRNb250aCgpLFxyXG4gICAgICAgIHRoaXMuX21pbkRhdGUuZ2V0RGF0ZSgpLFxyXG4gICAgICBdO1xyXG4gICAgICBtb3JlRGF5ID0gdGhpcy55ZWFyIDw9IG1pblllYXIgJiYgdGhpcy5tb250aCA8PSBtaW5Nb250aCAmJiBkYXkgPCBtaW5EYXk7XHJcbiAgICAgIG1vcmVNb250aCA9IHRoaXMueWVhciA8PSBtaW5ZZWFyICYmIHRoaXMubW9udGggPCBtaW5Nb250aDtcclxuICAgICAgbW9yZVllYXIgPSB0aGlzLnllYXIgPCBtaW5ZZWFyO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG1vcmVEYXkgfHwgbW9yZU1vbnRoIHx8IG1vcmVZZWFyIHx8IGxlc3NEYXkgfHwgbGVzc01vbnRoIHx8IGxlc3NZZWFyO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNhbnNlbERhdGUoKTogdm9pZCB7XHJcbiAgICB0aGlzLmVtaXREYXRlLmVtaXQoKTtcclxuICAgIHRoaXMuZW1pdFBlcmlvZC5lbWl0KCk7XHJcbiAgICB0aGlzLmRhdGVWYWx1ZSA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuZGF0ZVN0YXJ0ID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5kYXRlRW5kID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5zaG93Q2FsZW5kYXIgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIGNoZWNrQWN0aXZlRGF5KGRheTogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy5yYW5nZU1vZGUpIHtcclxuICAgICAgY29uc3Qgc0RheSA9IHRoaXMuZGF0ZVN0YXJ0Py5nZXREYXRlKClcclxuICAgICAgY29uc3QgZURheSA9IHRoaXMuZGF0ZUVuZD8uZ2V0RGF0ZSgpXHJcbiAgICAgIGNvbnN0IHNNb250aCA9IHRoaXMuZGF0ZVN0YXJ0Py5nZXRNb250aCgpXHJcbiAgICAgIGNvbnN0IGVNb250aCA9IHRoaXMuZGF0ZUVuZD8uZ2V0TW9udGgoKVxyXG4gICAgICBjb25zdCBzWWVhciA9IHRoaXMuZGF0ZVN0YXJ0Py5nZXRGdWxsWWVhcigpXHJcbiAgICAgIGNvbnN0IGVZZWFyID0gdGhpcy5kYXRlRW5kPy5nZXRGdWxsWWVhcigpXHJcbiAgICAgIGNvbnN0IHN0YXJ0RGF5ID0gc0RheSA9PT0gZGF5ICYmIHNNb250aCA9PT0gdGhpcy5tb250aCAmJiBzWWVhciA9PT0gdGhpcy55ZWFyO1xyXG4gICAgICBjb25zdCBlbmREYXkgPSBlRGF5ID09PSBkYXkgJiYgZU1vbnRoID09PSB0aGlzLm1vbnRoICYmIGVZZWFyID09PSB0aGlzLnllYXI7XHJcbiAgICAgIGlmICh0aGlzLmRhdGVTdGFydCAmJiB0aGlzLmRhdGVFbmQpIHtcclxuICAgICAgICBjb25zdCBjaGVja2VkRGF0ZSA9IG5ldyBEYXRlKHRoaXMueWVhciwgdGhpcy5tb250aCwgZGF5KVxyXG5cclxuICAgICAgICBjb25zdCBhZnRlciA9IGlzQWZ0ZXIodGhpcy5kYXRlRW5kLCBjaGVja2VkRGF0ZSlcclxuICAgICAgICBjb25zdCBiZWZvcmUgPSBpc0JlZm9yZSh0aGlzLmRhdGVTdGFydCwgY2hlY2tlZERhdGUpXHJcbiAgICAgICAgcmV0dXJuIGFmdGVyICYmIGJlZm9yZSB8fCBzdGFydERheSB8fCBlbmREYXk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHN0YXJ0RGF5IHx8IGVuZERheTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZGF0ZVZhbHVlPy5nZXREYXRlKCkgPT09IGRheVxyXG4gICAgICAgICYmIHRoaXMuZGF0ZVZhbHVlPy5nZXRNb250aCgpID09PSB0aGlzLm1vbnRoXHJcbiAgICAgICAgJiYgdGhpcy5kYXRlVmFsdWU/LmdldEZ1bGxZZWFyKCkgPT09IHRoaXMueWVhcjtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiQGlmIChtb2RlID09PSAnaWNvbicpIHtcclxuPGRpdiBjbGFzcz1cInBvcy1yZWxhdGl2ZSBkLWZsZXggYWxpZ24tY2VudGVyXCI+XHJcbiAgQGlmIChkYXRlVmFsdWUpIHtcclxuICA8c3BhbiBjbGFzcz1cIm1yLTEyIGdyZWVuXCI+e3sgZGF0ZVZhbHVlIHwgZGF0ZTogJ2RkLk1NLnl5eXknIH19PC9zcGFuPlxyXG4gIH1cclxuICA8ZGQtbGliLXN2Zy1pY29uIGNsYXNzPVwiY3VwXCIgKGNsaWNrKT1cInNob3dDYWxlbmRhciA9ICFzaG93Q2FsZW5kYXJcIiBpY29uPVwiY2FsZW5kYXJcIj48L2RkLWxpYi1zdmctaWNvbj5cclxuICBAaWYgKGRhdGVWYWx1ZSkge1xyXG4gICAgPGRkLWxpYi1zdmctaWNvbiBjbGFzcz1cImN1cFwiIChjbGljayk9XCJjYW5zZWxEYXRlKClcIiBpY29uPVwiY2xlYXJcIj48L2RkLWxpYi1zdmctaWNvbj5cclxuICB9IEBpZiAoc2hvd0NhbGVuZGFyKSB7XHJcbiAgPGRpdiBjbGFzcz1cImNhbGVuZGFyLWFicy13cmFwcGVyXCI+XHJcbiAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiY2FsZW5kYXJcIj48L25nLXRlbXBsYXRlPlxyXG4gIDwvZGl2PlxyXG4gIH1cclxuPC9kaXY+XHJcbn0gQGlmIChtb2RlID09PSAnZnVsbCcpIHtcclxuPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNhbGVuZGFyXCI+PC9uZy10ZW1wbGF0ZT5cclxufVxyXG5cclxuPG5nLXRlbXBsYXRlICNjYWxlbmRhcj5cclxuICA8ZGQtbGliLWNhcmQgY2xhc3M9XCJjYWxlbmRhci1ibG9ja1wiIHR5cGU9XCJzbWFsbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyLWJsb2NrX19oZWFkZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyLWJsb2NrX19oZWFkZXJfYXJyb3dcIj5cclxuICAgICAgICA8ZGQtbGliLXN2Zy1pY29uIChjbGljayk9XCJjaGFuZ2VNb250aCgtMSlcIiBpY29uPVwibGVmdF9jaGV2cm9uXCI+PC9kZC1saWItc3ZnLWljb24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2FsZW5kYXItYmxvY2tfX2hlYWRlcl95ZWFyXCI+e3sgZ2V0TW9udGgoKSArICcgJyArIHllYXIgfX08L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyLWJsb2NrX19oZWFkZXJfYXJyb3dcIj5cclxuICAgICAgICA8ZGQtbGliLXN2Zy1pY29uIChjbGljayk9XCJjaGFuZ2VNb250aCgxKVwiIGljb249XCJyaWdodF9jaGV2cm9uXCI+PC9kZC1saWItc3ZnLWljb24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FsZW5kYXItYmxvY2tfX3dlZWtcIj5cclxuICAgICAgQGZvciAoZGF5IG9mIHdlZWs7IHRyYWNrIGRheSkge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2FsZW5kYXItYmxvY2tfX3dlZWtfZGF5XCI+e3sgZGF5IH19PC9kaXY+XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyLWJsb2NrX19kYXlzXCI+XHJcbiAgICAgIEBmb3IgKGRheSBvZiBkYXlzSW5Nb250aD8ucHJldkRheXM7IHRyYWNrIGRheSkge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2FsZW5kYXItYmxvY2tfX2RheXNfZGF5IGhpZGVcIj57eyBkYXkgfX08L2Rpdj5cclxuICAgICAgfSBAZm9yIChkYXkgb2YgZGF5c0luTW9udGg/LmRheXM7IHRyYWNrIGRheSkge1xyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgKGNsaWNrKT1cInNlbGVjdERheShkYXkpXCJcclxuICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImNoZWNrQWN0aXZlRGF5KGRheSlcIlxyXG5cclxuICAgICAgICBbY2xhc3MuY3VycmVudF09XCJcclxuICAgICAgICAgIGRhdGVOb3cuZ2V0RGF0ZSgpID09PSBkYXkgJiYgZGF0ZU5vdy5nZXRNb250aCgpID09PSBtb250aCAmJiBkYXRlTm93LmdldEZ1bGxZZWFyKCkgPT09IHllYXJcclxuICAgICAgICBcIlxyXG4gICAgICAgIFtjbGFzcy5oaWRlXT1cImNoZWNrSGlkZURheShkYXkpXCJcclxuICAgICAgICBjbGFzcz1cImNhbGVuZGFyLWJsb2NrX19kYXlzX2RheSBub3JtYWxcIj5cclxuICAgICAgICB7eyBkYXkgfX1cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIH0gQGZvciAoZGF5IG9mIGRheXNJbk1vbnRoPy5sYXN0RGF5czsgdHJhY2sgZGF5KSB7XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjYWxlbmRhci1ibG9ja19fZGF5c19kYXkgaGlkZVwiPnt7IGRheSB9fTwvZGl2PlxyXG4gICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICAgIEBpZihuZWVkVGltZSkge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2FsZW5kYXItYmxvY2tfX3RpbWVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktYmV0d2VlblwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtcGxhaW5cIj7QktGA0LXQvNGPPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XHJcbiAgICAgICAgICAgIDxpbnB1dCBbKG5nTW9kZWwpXT1cImhvdXJzXCIgY2xhc3M9XCJjYWxlbmRhci1ibG9ja19fdGltZS1pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICBbZGRNYXhOdW1dPVwibWF4SG91cnNcIlxyXG4gICAgICAgICAgICAgICAgICAgW2N1clZhbF09XCJob3Vyc1wiXHJcbiAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWRhdGVWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICBbcmVnRXhwXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgZGRCYW5TeW1ib2w9XCJeXFxkKyRcIlxyXG4gICAgICAgICAgICAgICAgICAgbWF4PVwiMjNcIlxyXG4gICAgICAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMlwiXHJcbiAgICAgICAgICAgICAgICAgICBwYXR0ZXJuPVwiXlxcZCskXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2Vjb25kLWRvdFwiPjo8L3NwYW4+XHJcbiAgICAgICAgICAgIDxpbnB1dCBbKG5nTW9kZWwpXT1cIm1pbnV0ZXNcIiBjbGFzcz1cImNhbGVuZGFyLWJsb2NrX190aW1lLWlucHV0XCJcclxuICAgICAgICAgICAgICAgICAgIFtkZE1heE51bV09XCJtYXhNaW51dGVzXCJcclxuICAgICAgICAgICAgICAgICAgIFtjdXJWYWxdPVwibWludXRlc1wiXHJcbiAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWRhdGVWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICBbcmVnRXhwXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgZGRCYW5TeW1ib2w9XCJeXFxkKyRcIlxyXG4gICAgICAgICAgICAgICAgICAgbWF4PVwiNTlcIlxyXG4gICAgICAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMlwiXHJcbiAgICAgICAgICAgICAgICAgICBwYXR0ZXJuPVwiXlxcZCskXCJcclxuICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICB9XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FsZW5kYXItYmxvY2tfX2Zvb3RlclwiPlxyXG4gICAgICA8ZGQtbGliLWJ1dHRvbiAoY2xpY2spPVwiY2Fuc2VsRGF0ZSgpXCIgW2J0bkNvbG9yXT1cIid0cmFuc3BhcmVudCdcIiBjbGFzcz1cImNhbGVuZGFyLWJsb2NrX19mb290ZXJfYnRuXCJcclxuICAgICAgICA+0J7RgtC80LXQvdC40YLRjFxyXG4gICAgICA8L2RkLWxpYi1idXR0b24+XHJcbiAgICAgIDxkZC1saWItYnV0dG9uIChjbGljayk9XCJzZWxlY3REYXRlKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiKCFkYXRlVmFsdWUgJiYgIXJhbmdlTW9kZSkgfHwgKHJhbmdlTW9kZSAmJiAoIWRhdGVTdGFydCB8fCAhZGF0ZUVuZCkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjYWxlbmRhci1ibG9ja19fZm9vdGVyX2J0blwiXHJcbiAgICAgICAgPtCS0YvQsdGA0LDRgtGMXHJcbiAgICAgIDwvZGQtbGliLWJ1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGQtbGliLWNhcmQ+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
316
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLWNhbGVuZGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RkLWxpYi9zcmMvbGliL2xpYi1jYWxlbmRhci9saWItY2FsZW5kYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGQtbGliL3NyYy9saWIvbGliLWNhbGVuZGFyL2xpYi1jYWxlbmRhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFVLE1BQU0sR0FBRSxNQUFNLGVBQWUsQ0FBQztBQUNuSCxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQUMxRixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuRSxPQUFPLEVBQUMsWUFBWSxFQUFFLGdCQUFnQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDL0QsT0FBTyxFQUF1QixXQUFXLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUN0RSxPQUFPLEVBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFFbEQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFFM0UsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDM0UsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHNDQUFzQyxDQUFDOzs7OztBQUVyRSxNQUFNLE1BQU0sR0FBRztJQUNiLFFBQVE7SUFDUixTQUFTO0lBQ1QsTUFBTTtJQUNOLFFB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MUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLENBQUM7NEJBQ25ELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGLG1CQUdnQix1QkFBdUIsQ0FBQyxNQUFNO2dGQUcvQixJQUFJO3NCQUFuQixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsVUFBVTtzQkFBekIsS0FBSztnQkFDVSxTQUFTO3NCQUF4QixLQUFLO2dCQUNVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQ1UsVUFBVTtzQkFBekIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLO2dCQUNVLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ1csUUFBUTtzQkFBeEIsTUFBTTtnQkFDVSxVQUFVO3NCQUExQixNQUFNO2dCQUVJLE9BQU87c0JBRGpCLEtBQUs7Z0JBZ0JLLE9BQU87c0JBRGpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7TGliRmlsdGVyQnV0dG9uQ29tcG9uZW50fSBmcm9tICcuLi9saWItZmlsdGVyLWJ1dHRvbi9saWItZmlsdGVyLWJ1dHRvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQge0xpYkNhcmRDb21wb25lbnR9IGZyb20gJy4uL2xpYi1jYXJkL2xpYi1jYXJkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7TGliUmFkaW9Db21wb25lbnR9IGZyb20gJy4uL2xpYi1yYWRpby9saWItcmFkaW8uY29tcG9uZW50JztcclxuaW1wb3J0IHtDb21tb25Nb2R1bGUsIE5nT3B0aW1pemVkSW1hZ2V9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7Q29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge0xpYkJ1dHRvbkNvbXBvbmVudH0gZnJvbSAnLi4vbGliLWJ1dHRvbi9saWItYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7aXNBZnRlciwgaXNCZWZvcmUsIHBhcnNlfSBmcm9tICdkYXRlLWZucyc7XHJcbmltcG9ydCB7RGF0ZVNlcnZpY2UsIElEYXlzSW5Nb250aH0gZnJvbSBcIi4uL2NvcmVcIjtcclxuaW1wb3J0IHtMaWJTdmdJY29uQ29tcG9uZW50fSBmcm9tIFwiLi4vbGliLXN2Zy1pY29uL2xpYi1zdmctaWNvbi5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtzd2l0Y2hNYXB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQge0JhblN5bWJvbERpcmVjdGl2ZX0gZnJvbSBcIi4uL2NvcmUvZGlyZWN0aXZlcy9iYW4tc3ltYm9sLmRpcmVjdGl2ZVwiO1xyXG5pbXBvcnQge01heE51bURpcmVjdGl2ZX0gZnJvbSBcIi4uL2NvcmUvZGlyZWN0aXZlcy9tYXgtbnVtLmRpcmVjdGl2ZVwiO1xyXG5cclxuY29uc3QgTW9udGhzID0gW1xyXG4gICfQr9C90LLQsNGA0YwnLFxyXG4gICfQpNC10LLRgNCw0LvRjCcsXHJcbiAgJ9Cc0LDRgNGCJyxcclxuICAn0JDQv9GA0LXQu9GMJyxcclxuICAn0JzQsNC5JyxcclxuICAn0JjRjtC90YwnLFxyXG4gICfQmNGO0LvRjCcsXHJcbiAgJ9CQ0LLQs9GD0YHRgicsXHJcbiAgJ9Ch0LXQvdGC0Y/QsdGA0YwnLFxyXG4gICfQntC60YLRj9Cx0YDRjCcsXHJcbiAgJ9Cd0L7Rj9Cx0YDRjCcsXHJcbiAgJ9CU0LXQutCw0LHRgNGMJyxcclxuXTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSURhdGVQZXJpb2Qge1xyXG4gIHN0YXJ0OiBEYXRlIHwgdW5kZWZpbmVkO1xyXG4gIGVuZDogRGF0ZSB8IHVuZGVmaW5lZDtcclxufVxyXG5cclxuLyoqXHJcbiDQrdGC0L7RgiDQutC+0LzQv9C+0L3QtdC90YIg0LjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPINC00LvRjyDQvtGC0L7QsdGA0LDQttC10L3QuNGPINC60LDQu9C10L3QtNCw0YDRjyDRgSDQstC+0LfQvNC+0LbQvdC+0YHRgtGM0Y4g0LLRi9Cx0L7RgNCwINC00LDRgtGLLlxyXG4g0J3QuNC20LUg0L/RgNC40LLQtdC00LXQvdC+INC+0L/QuNGB0LDQvdC40LUg0YHQstC+0LnRgdGC0LIg0Lgg0LzQtdGC0L7QtNC+0LIg0LTQsNC90L3QvtCz0L4g0LrQvtC80L/QvtC90LXQvdGC0LA6XHJcblxyXG4g0KHQstC+0LnRgdGC0LLQsDpcclxuIC0gQElucHV0KCkgcHVibGljIHR5cGU6ICdzdHJpbmcnIHwgJ251bWJlcicgfCAnZGF0ZScgPSAnc3RyaW5nJzsgLSDRgtC40L8g0LTQsNC90L3Ri9GFINC00LvRjyDQstGL0LHQvtGA0LAg0LTQsNGC0YsuXHJcbiAtIEBJbnB1dCgpIHB1YmxpYyBmb3JtYXQgPSAnZGQuTU0ueXl5eSBISDptbSc7IC0g0YTQvtGA0LzQsNGCINC+0YLQvtCx0YDQsNC20LXQvdC40Y8g0LTQsNGC0YsuXHJcbiAtIEBJbnB1dCgpIHB1YmxpYyBtYXhEYXRlID0gbmV3IERhdGUoKTsgLSDQvNCw0LrRgdC40LzQsNC70YzQvdCw0Y8g0LTQsNGC0LAsINC60L7RgtC+0YDRg9GOINC80L7QttC90L4g0LLRi9Cx0YDQsNGC0YwuXHJcbiAtIEBPdXRwdXQoKSBwdWJsaWMgZW1pdERhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPGRhdGUgfCB1bmRlZmluZWQ+KCk7IC0g0YHQvtCx0YvRgtC40LUsINGB0YDQsNCx0LDRgtGL0LLQsNGO0YnQtdC1INC/0YDQuCDQstGL0LHQvtGA0LUg0LTQsNGC0YsuXHJcbiAtIHB1YmxpYyBkYXRlVmFsdWU6IERhdGUgfCB1bmRlZmluZWQ7IC0g0LLRi9Cx0YDQsNC90L3QsNGPINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtdC8INC00LDRgtCwLlxyXG4gLSBwdWJsaWMgbW9udGhzID0gTW9udGhzOyAtINC80LDRgdGB0LjQsiDRgSDQvdCw0LfQstCw0L3QuNGP0LzQuCDQvNC10YHRj9GG0LXQsi5cclxuIC0gcHVibGljIHdlZWsgPSBbJ9Cf0J0nLCAn0JLQoicsICfQodCgJywgJ9Cn0KInLCAn0J/QoicsICfQodCRJywgJ9CS0KEnXTsgLSDQvNCw0YHRgdC40LIg0YEg0L3QsNC30LLQsNC90LjRj9C80Lgg0LTQvdC10Lkg0L3QtdC00LXQu9C4LlxyXG4gLSBwdWJsaWMgeWVhciA9IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKTsgLSDRgtC10LrRg9GJ0LjQuSDQs9C+0LQuXHJcbiAtIHB1YmxpYyBtb250aCA9IG5ldyBEYXRlKCkuZ2V0TW9udGgoKTsgLSDRgtC10LrRg9GJ0LjQuSDQvNC10YHRj9GGLlxyXG4gLSBwdWJsaWMgZGF5ID0gbmV3IERhdGUoKS5nZXREYXkoKTsgLSDRgtC10LrRg9GJ0LjQuSDQtNC10L3RjCDQvdC10LTQtdC70LguXHJcbiAtIHB1YmxpYyBkYXlzSW5Nb250aDogSURheXNJbk1vbnRoOyAtINC60L7Qu9C40YfQtdGB0YLQstC+INC00L3QtdC5INCyINGC0LXQutGD0YnQtdC8INC80LXRgdGP0YbQtS5cclxuIC0gcHVibGljIGN1cnJlbnREYXRlID0gbmV3IERhdGUoKTsgLSDRgtC10LrRg9GJ0LDRjyDQstGL0LHRgNCw0L3QvdCw0Y8g0LTQsNGC0LAuXHJcbiAtIHB1YmxpYyBkYXRlTm93ID0gbmV3IERhdGUoKTsgLSDRgtC10LrRg9GJ0LDRjyDQtNCw0YLQsC5cclxuIC0gcHVibGljIG9uVG91Y2hlZENhbGxiYWNrOiAoKSA9PiB2b2lkOyAtINGE0YPQvdC60YbQuNGPINC+0LHRgNCw0YLQvdC+0LPQviDQstGL0LfQvtCy0LAg0L/RgNC4INC60LDRgdCw0L3QuNC4LlxyXG5cclxuINCc0LXRgtC+0LTRizpcclxuIC0gcHVibGljIHByb3BhZ2F0ZUNoYW5nZShfdmFsdWU6IERhdGUpOiB2b2lkIHt9IC0g0LzQtdGC0L7QtCDQtNC70Y8g0L7QsdC90L7QstC70LXQvdC40Y8g0LfQvdCw0YfQtdC90LjRjyDQstGL0LHRgNCw0L3QvdC+0Lkg0LTQsNGC0YsuXHJcbiAtIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHt9IC0g0LzQtdGC0L7QtCDQttC40LfQvdC10L3QvdC+0LPQviDRhtC40LrQu9CwINC60L7QvNC/0L7QvdC10L3RgtCwLCDQstGL0LfRi9Cy0LDQtdC80YvQuSDQv9GA0Lgg0LjQvdC40YbQuNCw0LvQuNC30LDRhtC40LguXHJcbiAtIHB1YmxpYyBzZXREYXlJbk1vbnRoKCk6IHZvaWQge30gLSDQvNC10YLQvtC0INC00LvRjyDRg9GB0YLQsNC90L7QstC60Lgg0LrQvtC70LjRh9C10YHRgtCy0LAg0LTQvdC10Lkg0LIg0YLQtdC60YPRidC10Lwg0LzQtdGB0Y/RhtC1LlxyXG4gLSBwdWJsaWMgY2hhbmdlTW9udGgobnVtYmVyOiBudW1iZXIpOiB2b2lkIHt9IC0g0LzQtdGC0L7QtCDQtNC70Y8g0LjQt9C80LXQvdC10L3QuNGPINC80LXRgdGP0YbQsCDQsiDQutCw0LvQtdC90LTQsNGA0LUuXHJcbiAtIHB1YmxpYyBnZXRNb250aCgpOiBzdHJpbmcge30gLSDQvNC10YLQvtC0INC00LvRjyDQv9C+0LvRg9GH0LXQvdC40Y8g0L3QsNC30LLQsNC90LjRjyDRgtC10LrRg9GJ0LXQs9C+INC80LXRgdGP0YbQsC5cclxuIC0gcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge30gLSDQvNC10YLQvtC0INC00LvRjyDRgNC10LPQuNGB0YLRgNCw0YbQuNC4INGE0YPQvdC60YbQuNC4INC+0LHRgNCw0YLQvdC+0LPQviDQstGL0LfQvtCy0LAg0L/RgNC4INC40LfQvNC10L3QtdC90LjQuCDQt9C90LDRh9C10L3QuNGPLlxyXG4gLSBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge30gLSDQvNC10YLQvtC0INC00LvRjyDRgNC10LPQuNGB0YLRgNCw0YbQuNC4INGE0YPQvdC60YbQuNC4INC+0LHRgNCw0YLQvdC+0LPQviDQstGL0LfQvtCy0LAg0L/RgNC4INC60LDRgdCw0L3QuNC4LlxyXG4gLSBwdWJsaWMgd3JpdGVWYWx1ZSh2YWw6IERhdGUpOiB2b2lkIHt9IC0g0LzQtdGC0L7QtCDQtNC70Y8g0YPRgdGC0LDQvdC+0LLQutC4INC30L3QsNGH0LXQvdC40Y8g0LTQsNGC0YsuXHJcbiAtIHB1YmxpYyBzZWxlY3REYXkoZGF5OiBudW1iZXIpOiB2b2lkIHt9IC0g0LzQtdGC0L7QtCDQtNC70Y8g0LLRi9Cx0L7RgNCwINC60L7QvdC60YDQtdGC0L3QvtCz0L4g0LTQvdGPINCyINC60LDQu9C10L3QtNCw0YDQtS5cclxuIC0gcHVibGljIHNlbGVjdERhdGUoKTogdm9pZCB7fSAtINC80LXRgtC+0LQg0LTQu9GPINCy0YvQsdC+0YDQsCDQtNCw0YLRiyDQuCDQv9C10YDQtdC00LDRh9C4INC30L3QsNGH0LXQvdC40Y8g0YfQtdGA0LXQtyBwcm9wYWdhdGVDaGFuZ2Ug0LggZW1pdERhdGUuXHJcbiAtIHB1YmxpYyBjaGVja0hpZGVEYXkoZGF5OiBudW1iZXIpOiBib29sZWFuIHt9IC0g0LzQtdGC0L7QtCDQtNC70Y8g0L/RgNC+0LLQtdGA0LrQuCDRgdC60YDRi9GC0LjRjyDQvtC/0YDQtdC00LXQu9C10L3QvdC+0LPQviDQtNC90Y8g0LIg0LrQsNC70LXQvdC00LDRgNC1LlxyXG4gLSBwdWJsaWMgY2Fuc2VsRGF0ZSgpOiB2b2lkIHt9IC0g0LzQtdGC0L7QtCDQtNC70Y8g0L7RgtC80LXQvdGLINCy0YvQsdGA0LDQvdC90L7QuSDQtNCw0YLRiyDQuCDRgdCx0YDQvtGB0LAg0LfQvdCw0YfQtdC90LjQuS5cclxuICoqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2RkLWxpYi1jYWxlbmRhcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBMaWJGaWx0ZXJCdXR0b25Db21wb25lbnQsXHJcbiAgICBMaWJDYXJkQ29tcG9uZW50LFxyXG4gICAgTGliUmFkaW9Db21wb25lbnQsXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBMaWJCdXR0b25Db21wb25lbnQsXHJcbiAgICBOZ09wdGltaXplZEltYWdlLFxyXG4gICAgTGliU3ZnSWNvbkNvbXBvbmVudCxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgQmFuU3ltYm9sRGlyZWN0aXZlLFxyXG4gICAgTWF4TnVtRGlyZWN0aXZlXHJcbiAgXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IExpYkNhbGVuZGFyQ29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2xpYi1jYWxlbmRhci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2xpYi1jYWxlbmRhci5jb21wb25lbnQuc2NzcycsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMaWJDYWxlbmRhckNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQge1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB0eXBlOiAnc3RyaW5nJyB8ICdudW1iZXInIHwgJ2RhdGUnID0gJ3N0cmluZyc7XHJcbiAgQElucHV0KCkgcHVibGljIGZvcm1hdERhdGUgPSAnZGQuTU0ueXl5eSc7XHJcbiAgQElucHV0KCkgcHVibGljIGZvcm1hdFRpbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBwdWJsaWMgcmFuZ2VNb2RlID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIG1heEhvdXJzID0gMjM7XHJcbiAgQElucHV0KCkgcHVibGljIG1heE1pbnV0ZXMgPSA1OTtcclxuICBASW5wdXQoKSBwdWJsaWMgbmVlZFRpbWUgPSBmYWxzZTtcclxuICBASW5wdXQoKSBwdWJsaWMgbW9kZTogJ2ljb24nIHwgJ2Z1bGwnID0gJ2Z1bGwnO1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgZW1pdERhdGUgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGUgfCB1bmRlZmluZWQ+KCk7XHJcbiAgQE91dHB1dCgpIHB1YmxpYyBlbWl0UGVyaW9kID0gbmV3IEV2ZW50RW1pdHRlcjxJRGF0ZVBlcmlvZCB8IHVuZGVmaW5lZD4oKTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgbWF4RGF0ZShkYXRlOiBhbnkpIHtcclxuICAgIGlmIChkYXRlID09PSAnY3VycmVudCcpIHtcclxuICAgICAgdGhpcy5fbWF4RGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBkYXRlID09PSAnb2JqZWN0Jykge1xyXG4gICAgICB0aGlzLl9tYXhEYXRlID0gZGF0ZTtcclxuICAgIH0gZWxzZSBpZiAodHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgIHRoaXMuX21heERhdGUgPSBwYXJzZShcclxuICAgICAgICBkYXRlLFxyXG4gICAgICAgIGAke3RoaXMuZm9ybWF0RGF0ZX0ke3RoaXMuZm9ybWF0VGltZSA/ICcgJyArIHRoaXMuZm9ybWF0VGltZSA6ICcnfWAsXHJcbiAgICAgICAgbmV3IERhdGUoKSxcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBtaW5EYXRlKGRhdGU6IGFueSkge1xyXG4gICAgaWYgKGRhdGUgPT09ICdjdXJyZW50Jykge1xyXG4gICAgICB0aGlzLl9taW5EYXRlID0gbmV3IERhdGUoKTtcclxuICAgIH0gZWxzZSBpZiAoZGF0ZSA9PT0gJ3llYXInKSB7XHJcbiAgICAgIHRoaXMuX21pbkRhdGUgPSBuZXcgRGF0ZShuZXcgRGF0ZSgpLnNldEZ1bGxZZWFyKG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKSAtIDEpKTtcclxuICAgIH0gZWxzZSBpZiAoZGF0ZSA9PT0gJ21vbnRoJykge1xyXG4gICAgICB0aGlzLl9taW5EYXRlID0gbmV3IERhdGUobmV3IERhdGUoKS5zZXRNb250aChuZXcgRGF0ZSgpLmdldE1vbnRoKCkgLSAxKSk7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBkYXRlID09PSAnb2JqZWN0Jykge1xyXG4gICAgICB0aGlzLl9taW5EYXRlID0gZGF0ZTtcclxuICAgIH0gZWxzZSBpZiAodHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgIHRoaXMuX21pbkRhdGUgPSBwYXJzZShcclxuICAgICAgICBkYXRlLFxyXG4gICAgICAgIGAke3RoaXMuZm9ybWF0RGF0ZX0ke3RoaXMuZm9ybWF0VGltZSA/ICcgJyArIHRoaXMuZm9ybWF0VGltZSA6ICcnfWAsXHJcbiAgICAgICAgbmV3IERhdGUoKSxcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX21heERhdGU6IERhdGUgfCB1bmRlZmluZWQ7XHJcbiAgcHJpdmF0ZSBfbWluRGF0ZTogRGF0ZSB8IHVuZGVmaW5lZDtcclxuICBwdWJsaWMgZGF0ZVZhbHVlOiBEYXRlIHwgdW5kZWZpbmVkO1xyXG4gIHB1YmxpYyBkYXRlU3RhcnQ6IERhdGUgfCB1bmRlZmluZWQ7XHJcbiAgcHVibGljIGRhdGVFbmQ6IERhdGUgfCB1bmRlZmluZWQ7XHJcbiAgcHVibGljIG1vbnRocyA9IE1vbnRocztcclxuICBwdWJsaWMgd2VlayA9IFsn0J/QnScsICfQktCiJywgJ9Ch0KAnLCAn0KfQoicsICfQn9CiJywgJ9Ch0JEnLCAn0JLQoSddO1xyXG4gIHB1YmxpYyB5ZWFyID0gbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpO1xyXG4gIHB1YmxpYyBtb250aCA9IG5ldyBEYXRlKCkuZ2V0TW9udGgoKTtcclxuICBwdWJsaWMgZGF5ID0gbmV3IERhdGUoKS5nZXREYXkoKTtcclxuICBwdWJsaWMgZGF5c0luTW9udGg6IElEYXlzSW5Nb250aCB8IHVuZGVmaW5lZDtcclxuICAvLyBtaW5EYXRlID0gc2V0TWluRGF0ZSgpO1xyXG4gIHB1YmxpYyBjdXJyZW50RGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgcHVibGljIGRhdGVOb3cgPSBuZXcgRGF0ZSgpO1xyXG4gIHB1YmxpYyBvblRvdWNoZWRDYWxsYmFjazogKCgpID0+IHZvaWQpIHwgdW5kZWZpbmVkO1xyXG4gIHB1YmxpYyBzaG93Q2FsZW5kYXI6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgcHVibGljIGhvdXJzID0gJzAwJ1xyXG4gIHB1YmxpYyBtaW51dGVzID0gJzAwJ1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0ZVNlcnZpY2U6IERhdGVTZXJ2aWNlKSB7fVxyXG5cclxuICBwdWJsaWMgcHJvcGFnYXRlQ2hhbmdlKF92YWx1ZTogRGF0ZSB8IElEYXRlUGVyaW9kKTogdm9pZCB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldERheUluTW9udGgoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXREYXlJbk1vbnRoKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kYXlzSW5Nb250aCA9IHRoaXMuZGF0ZVNlcnZpY2UuZ2V0RGF5c0luTW9udGgodGhpcy5tb250aCwgdGhpcy55ZWFyKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjaGFuZ2VNb250aChudW1iZXI6IG51bWJlcik6IHZvaWQge1xyXG4gICAgY29uc3QgdGVtcCA9IG5ldyBEYXRlKHRoaXMuY3VycmVudERhdGUpO1xyXG4gICAgdGVtcC5zZXRNb250aCh0ZW1wLmdldE1vbnRoKCkgKyBudW1iZXIpO1xyXG4gICAgdGhpcy5tb250aCA9IHRlbXAuZ2V0TW9udGgoKTtcclxuICAgIHRoaXMueWVhciA9IHRlbXAuZ2V0RnVsbFllYXIoKTtcclxuICAgIHRoaXMuY3VycmVudERhdGUgPSB0ZW1wO1xyXG4gICAgdGhpcy5zZXREYXlJbk1vbnRoKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0TW9udGgoKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLmN1cnJlbnREYXRlICYmICEodGhpcy5kYXRlVmFsdWUgfHwgdGhpcy5kYXRlU3RhcnQpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLm1vbnRoc1t0aGlzLmN1cnJlbnREYXRlLmdldE1vbnRoKCldO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMubW9udGhzW3RoaXMubW9udGhdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrID0gZm47XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWw6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucmFuZ2VNb2RlKSB7XHJcbiAgICAgIHRoaXMuZGF0ZVN0YXJ0ID0gdmFsPy5zdGFydDtcclxuICAgICAgdGhpcy5kYXRlRW5kID0gdmFsPy5lbmQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRhdGVWYWx1ZSA9IHZhbDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmRhdGVWYWx1ZSB8fCB0aGlzLmRhdGVTdGFydCkge1xyXG4gICAgICB0aGlzLnNob3dDdXJyZW5TZWxlY3REYXkodGhpcy5kYXRlVmFsdWUgfHwgdGhpcy5kYXRlU3RhcnQhKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dDdXJyZW5TZWxlY3REYXkoZGF0ZTogRGF0ZSk6IHZvaWQge1xyXG4gICAgdGhpcy5kYXkgPSBkYXRlLmdldERhdGUoKVxyXG4gICAgdGhpcy5tb250aCA9IGRhdGUuZ2V0TW9udGgoKVxyXG4gICAgdGhpcy55ZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpXHJcbiAgICB0aGlzLmN1cnJlbnREYXRlID0gbmV3IERhdGUodGhpcy5kYXRlVmFsdWUgfHwgdGhpcy5kYXRlU3RhcnQhKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZWxlY3REYXkoZGF5OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5jaGVja0hpZGVEYXkoZGF5KSkge1xyXG4gICAgICBpZiAodGhpcy5yYW5nZU1vZGUpIHtcclxuICAgICAgICBpZiAoIXRoaXMuZGF0ZVN0YXJ0KSB7XHJcbiAgICAgICAgICB0aGlzLmRhdGVTdGFydCA9IG5ldyBEYXRlKHRoaXMueWVhciwgdGhpcy5tb250aCwgZGF5KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29uc3QgZURhdGUgPSBuZXcgRGF0ZSh0aGlzLnllYXIsIHRoaXMubW9udGgsIGRheSk7XHJcbiAgICAgICAgICBpZiAodGhpcy5kYXRlU3RhcnQgPiBlRGF0ZSkge1xyXG4gICAgICAgICAgICB0aGlzLmRhdGVFbmQgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgIHRoaXMuZGF0ZVN0YXJ0ID0gZURhdGU7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmRhdGVFbmQgPSBlRGF0ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5kYXRlVmFsdWUgPSBuZXcgRGF0ZSh0aGlzLnllYXIsIHRoaXMubW9udGgsIGRheSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZWxlY3REYXRlKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucmFuZ2VNb2RlKSB7XHJcbiAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHtzdGFydDogdGhpcy5kYXRlU3RhcnQhLCBlbmQ6IHRoaXMuZGF0ZUVuZCF9KTtcclxuICAgICAgdGhpcy5lbWl0UGVyaW9kLmVtaXQoe3N0YXJ0OiB0aGlzLmRhdGVTdGFydCEsIGVuZDogdGhpcy5kYXRlRW5kIX0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMubmVlZFRpbWUpIHtcclxuICAgICAgICB0aGlzLmRhdGVWYWx1ZT8uc2V0SG91cnMoK3RoaXMuaG91cnMsICt0aGlzLm1pbnV0ZXMpXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UodGhpcy5kYXRlVmFsdWUgYXMgRGF0ZSk7XHJcbiAgICAgIHRoaXMuZW1pdERhdGUuZW1pdCh0aGlzLmRhdGVWYWx1ZSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNob3dDYWxlbmRhciA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNoZWNrSGlkZURheShkYXk6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgbGV0IG1vcmVEYXkgPSBmYWxzZTtcclxuICAgICAgbGV0IG1vcmVNb250aCA9IGZhbHNlO1xyXG4gICAgICBsZXQgbW9yZVllYXIgPSBmYWxzZTtcclxuICAgIGNvbnN0IGxlc3NEYXkgPSBmYWxzZTtcclxuICAgICAgY29uc3QgbGVzc01vbnRoID0gZmFsc2U7XHJcbiAgICAgIGNvbnN0IGxlc3NZZWFyID0gZmFsc2U7XHJcbiAgICBpZiAodGhpcy5fbWF4RGF0ZSkge1xyXG4gICAgICBjb25zdCBbbWF4WWVhciwgbWF4TW9udGgsIG1heERheV0gPSBbXHJcbiAgICAgICAgdGhpcy5fbWF4RGF0ZS5nZXRGdWxsWWVhcigpLFxyXG4gICAgICAgIHRoaXMuX21heERhdGUuZ2V0TW9udGgoKSxcclxuICAgICAgICB0aGlzLl9tYXhEYXRlLmdldERhdGUoKSxcclxuICAgICAgXTtcclxuICAgICAgbW9yZURheSA9IHRoaXMueWVhciA+PSBtYXhZZWFyICYmIHRoaXMubW9udGggPj0gbWF4TW9udGggJiYgZGF5ID4gbWF4RGF5O1xyXG4gICAgICBtb3JlTW9udGggPSB0aGlzLnllYXIgPj0gbWF4WWVhciAmJiB0aGlzLm1vbnRoID4gbWF4TW9udGg7XHJcbiAgICAgIG1vcmVZZWFyID0gdGhpcy55ZWFyID4gbWF4WWVhcjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLl9taW5EYXRlKSB7XHJcbiAgICAgIGNvbnN0IFttaW5ZZWFyLCBtaW5Nb250aCwgbWluRGF5XSA9IFtcclxuICAgICAgICB0aGlzLl9taW5EYXRlLmdldEZ1bGxZZWFyKCksXHJcbiAgICAgICAgdGhpcy5fbWluRGF0ZS5nZXRNb250aCgpLFxyXG4gICAgICAgIHRoaXMuX21pbkRhdGUuZ2V0RGF0ZSgpLFxyXG4gICAgICBdO1xyXG4gICAgICBtb3JlRGF5ID0gdGhpcy55ZWFyIDw9IG1pblllYXIgJiYgdGhpcy5tb250aCA8PSBtaW5Nb250aCAmJiBkYXkgPCBtaW5EYXk7XHJcbiAgICAgIG1vcmVNb250aCA9IHRoaXMueWVhciA8PSBtaW5ZZWFyICYmIHRoaXMubW9udGggPCBtaW5Nb250aDtcclxuICAgICAgbW9yZVllYXIgPSB0aGlzLnllYXIgPCBtaW5ZZWFyO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG1vcmVEYXkgfHwgbW9yZU1vbnRoIHx8IG1vcmVZZWFyIHx8IGxlc3NEYXkgfHwgbGVzc01vbnRoIHx8IGxlc3NZZWFyO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNhbnNlbERhdGUoKTogdm9pZCB7XHJcbiAgICB0aGlzLmVtaXREYXRlLmVtaXQoKTtcclxuICAgIHRoaXMuZW1pdFBlcmlvZC5lbWl0KCk7XHJcbiAgICB0aGlzLmRhdGVWYWx1ZSA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuZGF0ZVN0YXJ0ID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5kYXRlRW5kID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5zaG93Q2FsZW5kYXIgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIGNoZWNrQWN0aXZlRGF5KGRheTogbnVtYmVyKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy5yYW5nZU1vZGUpIHtcclxuICAgICAgY29uc3Qgc0RheSA9IHRoaXMuZGF0ZVN0YXJ0Py5nZXREYXRlKClcclxuICAgICAgY29uc3QgZURheSA9IHRoaXMuZGF0ZUVuZD8uZ2V0RGF0ZSgpXHJcbiAgICAgIGNvbnN0IHNNb250aCA9IHRoaXMuZGF0ZVN0YXJ0Py5nZXRNb250aCgpXHJcbiAgICAgIGNvbnN0IGVNb250aCA9IHRoaXMuZGF0ZUVuZD8uZ2V0TW9udGgoKVxyXG4gICAgICBjb25zdCBzWWVhciA9IHRoaXMuZGF0ZVN0YXJ0Py5nZXRGdWxsWWVhcigpXHJcbiAgICAgIGNvbnN0IGVZZWFyID0gdGhpcy5kYXRlRW5kPy5nZXRGdWxsWWVhcigpXHJcbiAgICAgIGNvbnN0IHN0YXJ0RGF5ID0gc0RheSA9PT0gZGF5ICYmIHNNb250aCA9PT0gdGhpcy5tb250aCAmJiBzWWVhciA9PT0gdGhpcy55ZWFyO1xyXG4gICAgICBjb25zdCBlbmREYXkgPSBlRGF5ID09PSBkYXkgJiYgZU1vbnRoID09PSB0aGlzLm1vbnRoICYmIGVZZWFyID09PSB0aGlzLnllYXI7XHJcbiAgICAgIGlmICh0aGlzLmRhdGVTdGFydCAmJiB0aGlzLmRhdGVFbmQpIHtcclxuICAgICAgICBjb25zdCBjaGVja2VkRGF0ZSA9IG5ldyBEYXRlKHRoaXMueWVhciwgdGhpcy5tb250aCwgZGF5KVxyXG5cclxuICAgICAgICBjb25zdCBhZnRlciA9IGlzQWZ0ZXIodGhpcy5kYXRlRW5kLCBjaGVja2VkRGF0ZSlcclxuICAgICAgICBjb25zdCBiZWZvcmUgPSBpc0JlZm9yZSh0aGlzLmRhdGVTdGFydCwgY2hlY2tlZERhdGUpXHJcbiAgICAgICAgcmV0dXJuIGFmdGVyICYmIGJlZm9yZSB8fCBzdGFydERheSB8fCBlbmREYXk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHN0YXJ0RGF5IHx8IGVuZERheTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZGF0ZVZhbHVlPy5nZXREYXRlKCkgPT09IGRheVxyXG4gICAgICAgICYmIHRoaXMuZGF0ZVZhbHVlPy5nZXRNb250aCgpID09PSB0aGlzLm1vbnRoXHJcbiAgICAgICAgJiYgdGhpcy5kYXRlVmFsdWU/LmdldEZ1bGxZZWFyKCkgPT09IHRoaXMueWVhcjtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiQGlmIChtb2RlID09PSAnaWNvbicpIHtcclxuPGRpdiBjbGFzcz1cInBvcy1yZWxhdGl2ZSBkLWZsZXggYWxpZ24tY2VudGVyXCI+XHJcbiAgQGlmIChkYXRlVmFsdWUpIHtcclxuICA8c3BhbiBjbGFzcz1cIm1yLTEyIGdyZWVuXCI+e3sgZGF0ZVZhbHVlIHwgZGF0ZTogJ2RkLk1NLnl5eXknIH19PC9zcGFuPlxyXG4gIH1cclxuICA8ZGQtbGliLXN2Zy1pY29uIGNsYXNzPVwiY3VwXCIgKGNsaWNrKT1cInNob3dDYWxlbmRhciA9ICFzaG93Q2FsZW5kYXJcIiBpY29uPVwiY2FsZW5kYXJcIj48L2RkLWxpYi1zdmctaWNvbj5cclxuICBAaWYgKGRhdGVWYWx1ZSkge1xyXG4gICAgPGRkLWxpYi1zdmctaWNvbiBjbGFzcz1cImN1cFwiIChjbGljayk9XCJjYW5zZWxEYXRlKClcIiBpY29uPVwiY2xlYXJcIj48L2RkLWxpYi1zdmctaWNvbj5cclxuICB9IEBpZiAoc2hvd0NhbGVuZGFyKSB7XHJcbiAgPGRpdiBjbGFzcz1cImNhbGVuZGFyLWFicy13cmFwcGVyXCI+XHJcbiAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiY2FsZW5kYXJcIj48L25nLXRlbXBsYXRlPlxyXG4gIDwvZGl2PlxyXG4gIH1cclxuPC9kaXY+XHJcbn0gQGlmIChtb2RlID09PSAnZnVsbCcpIHtcclxuPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNhbGVuZGFyXCI+PC9uZy10ZW1wbGF0ZT5cclxufVxyXG5cclxuPG5nLXRlbXBsYXRlICNjYWxlbmRhcj5cclxuICA8ZGQtbGliLWNhcmQgY2xhc3M9XCJjYWxlbmRhci1ibG9ja1wiIHR5cGU9XCJzbWFsbFwiPlxyXG4gICA8ZGl2IGNsYXNzPVwiZnVsbC13aWR0aFwiPlxyXG4gICAgIDxkaXYgY2xhc3M9XCJjYWxlbmRhci1ibG9ja19faGVhZGVyXCI+XHJcbiAgICAgICA8ZGl2IGNsYXNzPVwiY2FsZW5kYXItYmxvY2tfX2hlYWRlcl9hcnJvd1wiPlxyXG4gICAgICAgICA8ZGQtbGliLXN2Zy1pY29uIChjbGljayk9XCJjaGFuZ2VNb250aCgtMSlcIiBpY29uPVwibGVmdF9jaGV2cm9uXCI+PC9kZC1saWItc3ZnLWljb24+XHJcbiAgICAgICA8L2Rpdj5cclxuICAgICAgIDxkaXYgY2xhc3M9XCJjYWxlbmRhci1ibG9ja19faGVhZGVyX3llYXJcIj57eyBnZXRNb250aCgpICsgJyAnICsgeWVhciB9fTwvZGl2PlxyXG4gICAgICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyLWJsb2NrX19oZWFkZXJfYXJyb3dcIj5cclxuICAgICAgICAgPGRkLWxpYi1zdmctaWNvbiAoY2xpY2spPVwiY2hhbmdlTW9udGgoMSlcIiBpY29uPVwicmlnaHRfY2hldnJvblwiPjwvZGQtbGliLXN2Zy1pY29uPlxyXG4gICAgICAgPC9kaXY+XHJcbiAgICAgPC9kaXY+XHJcbiAgICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyLWJsb2NrX193ZWVrXCI+XHJcbiAgICAgICBAZm9yIChkYXkgb2Ygd2VlazsgdHJhY2sgZGF5KSB7XHJcbiAgICAgICAgIDxkaXYgY2xhc3M9XCJjYWxlbmRhci1ibG9ja19fd2Vla19kYXlcIj57eyBkYXkgfX08L2Rpdj5cclxuICAgICAgIH1cclxuICAgICA8L2Rpdj5cclxuICAgICA8ZGl2IGNsYXNzPVwiY2FsZW5kYXItYmxvY2tfX2RheXNcIj5cclxuICAgICAgIEBmb3IgKGRheSBvZiBkYXlzSW5Nb250aD8ucHJldkRheXM7IHRyYWNrIGRheSkge1xyXG4gICAgICAgICA8ZGl2IGNsYXNzPVwiY2FsZW5kYXItYmxvY2tfX2RheXNfZGF5IGhpZGVcIj57eyBkYXkgfX08L2Rpdj5cclxuICAgICAgIH0gQGZvciAoZGF5IG9mIGRheXNJbk1vbnRoPy5kYXlzOyB0cmFjayBkYXkpIHtcclxuICAgICAgIDxkaXZcclxuICAgICAgICAgKGNsaWNrKT1cInNlbGVjdERheShkYXkpXCJcclxuICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJjaGVja0FjdGl2ZURheShkYXkpXCJcclxuXHJcbiAgICAgICAgIFtjbGFzcy5jdXJyZW50XT1cIlxyXG4gICAgICAgICAgZGF0ZU5vdy5nZXREYXRlKCkgPT09IGRheSAmJiBkYXRlTm93LmdldE1vbnRoKCkgPT09IG1vbnRoICYmIGRhdGVOb3cuZ2V0RnVsbFllYXIoKSA9PT0geWVhclxyXG4gICAgICAgIFwiXHJcbiAgICAgICAgIFtjbGFzcy5oaWRlXT1cImNoZWNrSGlkZURheShkYXkpXCJcclxuICAgICAgICAgY2xhc3M9XCJjYWxlbmRhci1ibG9ja19fZGF5c19kYXkgbm9ybWFsXCI+XHJcbiAgICAgICAgIHt7IGRheSB9fVxyXG4gICAgICAgPC9kaXY+XHJcbiAgICAgfSBAZm9yIChkYXkgb2YgZGF5c0luTW9udGg/Lmxhc3REYXlzOyB0cmFjayBkYXkpIHtcclxuICAgICAgIDxkaXYgY2xhc3M9XCJjYWxlbmRhci1ibG9ja19fZGF5c19kYXkgaGlkZVwiPnt7IGRheSB9fTwvZGl2PlxyXG4gICAgIH1cclxuICAgICA8L2Rpdj5cclxuICAgICBAaWYobmVlZFRpbWUpIHtcclxuICAgICAgIDxkaXYgY2xhc3M9XCJjYWxlbmRhci1ibG9ja19fdGltZVwiPlxyXG4gICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktYmV0d2VlblwiPlxyXG4gICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXBsYWluXCI+0JLRgNC10LzRjzwvZGl2PlxyXG4gICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgICAgICAgIDxpbnB1dCBbKG5nTW9kZWwpXT1cImhvdXJzXCIgY2xhc3M9XCJjYWxlbmRhci1ibG9ja19fdGltZS1pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtkZE1heE51bV09XCJtYXhIb3Vyc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW2N1clZhbF09XCJob3Vyc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFkYXRlVmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtyZWdFeHBdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgZGRCYW5TeW1ib2w9XCJeXFxkKyRcIlxyXG4gICAgICAgICAgICAgICAgICAgIG1heD1cIjIzXCJcclxuICAgICAgICAgICAgICAgICAgICBtYXhsZW5ndGg9XCIyXCJcclxuICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuPVwiXlxcZCskXCI+XHJcbiAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNlY29uZC1kb3RcIj46PC9zcGFuPlxyXG4gICAgICAgICAgICAgPGlucHV0IFsobmdNb2RlbCldPVwibWludXRlc1wiIGNsYXNzPVwiY2FsZW5kYXItYmxvY2tfX3RpbWUtaW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtkZE1heE51bV09XCJtYXhNaW51dGVzXCJcclxuICAgICAgICAgICAgICAgICAgICBbY3VyVmFsXT1cIm1pbnV0ZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhZGF0ZVZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICBbcmVnRXhwXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIGRkQmFuU3ltYm9sPVwiXlxcZCskXCJcclxuICAgICAgICAgICAgICAgICAgICBtYXg9XCI1OVwiXHJcbiAgICAgICAgICAgICAgICAgICAgbWF4bGVuZ3RoPVwiMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgcGF0dGVybj1cIl5cXGQrJFwiXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIj5cclxuICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgPC9kaXY+XHJcbiAgICAgICA8L2Rpdj5cclxuICAgICB9XHJcbiAgICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyLWJsb2NrX19mb290ZXJcIj5cclxuICAgICAgIDxkZC1saWItYnV0dG9uIChjbGljayk9XCJjYW5zZWxEYXRlKClcIiBbYnRuQ29sb3JdPVwiJ3RyYW5zcGFyZW50J1wiIGNsYXNzPVwiY2FsZW5kYXItYmxvY2tfX2Zvb3Rlcl9idG5cIlxyXG4gICAgICAgPtCe0YLQvNC10L3QuNGC0YxcclxuICAgICAgIDwvZGQtbGliLWJ1dHRvbj5cclxuICAgICAgIDxkZC1saWItYnV0dG9uIChjbGljayk9XCJzZWxlY3REYXRlKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIighZGF0ZVZhbHVlICYmICFyYW5nZU1vZGUpIHx8IChyYW5nZU1vZGUgJiYgKCFkYXRlU3RhcnQgfHwgIWRhdGVFbmQpKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNhbGVuZGFyLWJsb2NrX19mb290ZXJfYnRuXCJcclxuICAgICAgID7QktGL0LHRgNCw0YLRjFxyXG4gICAgICAgPC9kZC1saWItYnV0dG9uPlxyXG4gICAgIDwvZGl2PlxyXG4gICA8L2Rpdj5cclxuICA8L2RkLWxpYi1jYXJkPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
@@ -9,11 +9,11 @@ export class LibCardComponent {
9
9
  this.cardBtnEvent = new EventEmitter();
10
10
  }
11
11
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibCardComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
12
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: LibCardComponent, isStandalone: true, selector: "dd-lib-card", inputs: { type: "type", footerBtn: "footerBtn", sHeight: "sHeight", skeleton: "skeleton", parentLvlForSkeleton: "parentLvlForSkeleton", plugs: "plugs", borderRadius: "borderRadius" }, outputs: { cardBtnEvent: "cardBtnEvent" }, ngImport: i0, template: "<div\r\n class=\"lib-card-wrapper\"\r\n [class.border-r-bottom]=\"borderRadius === 'bottom'\"\r\n [class.border-r-none]=\"borderRadius === 'none'\"\r\n [class.border-r-top]=\"borderRadius === 'top'\"\r\n [class.giant-card]=\"type === 'giant'\"\r\n [class.small-card]=\"type === 'small'\"\r\n [class.with-footer]=\"!!footerBtn\">\r\n <dd-lib-skeleton\r\n [deepParent]=\"parentLvlForSkeleton\"\r\n [skeleton]=\"skeleton\"\r\n [plugs]=\"plugs\"\r\n [sHeight]=\"sHeight\">\r\n <div class=\"lib-card\">\r\n <ng-content></ng-content>\r\n </div>\r\n </dd-lib-skeleton>\r\n</div>\r\n@if (footerBtn) {\r\n<div (click)=\"cardBtnEvent.emit(); cdr.detectChanges()\" class=\"lib-card-footer-btn\">\r\n {{ footerBtn }}\r\n</div>\r\n}\r\n", styles: [":host{display:block}.lib-card-wrapper{border-radius:24px;box-shadow:var(--main-card-shadow);background-color:var(--main-card-color);min-height:100%}@media screen and (max-width: 480px){.lib-card-wrapper{border-radius:16px}}.lib-card-wrapper.border-r-bottom{border-radius:0 0 24px 24px}@media screen and (max-width: 480px){.lib-card-wrapper.border-r-bottom{border-radius:0 0 16px 16px}}.lib-card-wrapper.border-r-top{border-radius:24px 24px 0 0}@media screen and (max-width: 480px){.lib-card-wrapper.border-r-top{border-radius:16px 16px 0 0}}.lib-card-wrapper.border-r-none{border-radius:0}.lib-card-wrapper.small-card{border-radius:12px}.lib-card-wrapper.giant-card .lib-card{padding:32px}@media screen and (max-width: 840px){.lib-card-wrapper.giant-card .lib-card{padding:24px}}@media screen and (max-width: 480px){.lib-card-wrapper.giant-card .lib-card{padding:16px}}.lib-card-wrapper.with-footer{border-radius:24px 24px 0 0}@media screen and (max-width: 480px){.lib-card-wrapper.with-footer{border-radius:16px 16px 0 0}}.lib-card{min-height:100%;padding:24px}@media screen and (max-width: 480px){.lib-card{padding:16px}}.lib-card-footer-btn{border-radius:0 0 12px 12px;font-weight:500;background-color:var(--primary-green-color);color:var(--white-color);cursor:pointer;height:48px;display:flex;align-items:center;justify-content:center}\n"], dependencies: [{ kind: "component", type: LibSkeletonComponent, selector: "dd-lib-skeleton", inputs: ["deepParent", "sHeight", "sMb", "skeleton", "plugs"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
12
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: LibCardComponent, isStandalone: true, selector: "dd-lib-card", inputs: { type: "type", footerBtn: "footerBtn", sHeight: "sHeight", skeleton: "skeleton", parentLvlForSkeleton: "parentLvlForSkeleton", plugs: "plugs", borderRadius: "borderRadius" }, outputs: { cardBtnEvent: "cardBtnEvent" }, ngImport: i0, template: "<div\r\n class=\"lib-card-wrapper\"\r\n [class.border-r-bottom]=\"borderRadius === 'bottom'\"\r\n [class.border-r-none]=\"borderRadius === 'none'\"\r\n [class.border-r-top]=\"borderRadius === 'top'\"\r\n [class.giant-card]=\"type === 'giant'\"\r\n [class.small-card]=\"type === 'small'\"\r\n [class.with-footer]=\"!!footerBtn\">\r\n @if (skeleton) {\r\n <dd-lib-skeleton\r\n [deepParent]=\"parentLvlForSkeleton\"\r\n [skeleton]=\"skeleton\"\r\n [plugs]=\"plugs\"\r\n [sHeight]=\"sHeight\">\r\n <div class=\"lib-card\">\r\n <ng-content></ng-content>\r\n </div>\r\n </dd-lib-skeleton>\r\n } @else {\r\n <div class=\"lib-card\">\r\n <ng-content></ng-content>\r\n </div>\r\n }\r\n</div>\r\n@if (footerBtn) {\r\n<div (click)=\"cardBtnEvent.emit(); cdr.detectChanges()\" class=\"lib-card-footer-btn\">\r\n {{ footerBtn }}\r\n</div>\r\n}\r\n", styles: [":host{display:block}.lib-card-wrapper{display:flex;border-radius:24px;box-shadow:var(--main-card-shadow);background-color:var(--main-card-color);min-height:100%}@media screen and (max-width: 480px){.lib-card-wrapper{border-radius:16px}}.lib-card-wrapper.border-r-bottom{border-radius:0 0 24px 24px}@media screen and (max-width: 480px){.lib-card-wrapper.border-r-bottom{border-radius:0 0 16px 16px}}.lib-card-wrapper.border-r-top{border-radius:24px 24px 0 0}@media screen and (max-width: 480px){.lib-card-wrapper.border-r-top{border-radius:16px 16px 0 0}}.lib-card-wrapper.border-r-none{border-radius:0}.lib-card-wrapper.small-card{border-radius:12px}.lib-card-wrapper.giant-card .lib-card{padding:32px}@media screen and (max-width: 840px){.lib-card-wrapper.giant-card .lib-card{padding:24px}}@media screen and (max-width: 480px){.lib-card-wrapper.giant-card .lib-card{padding:16px}}.lib-card-wrapper.with-footer{border-radius:24px 24px 0 0}@media screen and (max-width: 480px){.lib-card-wrapper.with-footer{border-radius:16px 16px 0 0}}.lib-card{min-height:100%;min-width:100%;padding:24px;display:flex}@media screen and (max-width: 480px){.lib-card{padding:16px}}.lib-card-footer-btn{border-radius:0 0 12px 12px;font-weight:500;background-color:var(--primary-green-color);color:var(--white-color);cursor:pointer;height:48px;display:flex;align-items:center;justify-content:center}\n"], dependencies: [{ kind: "component", type: LibSkeletonComponent, selector: "dd-lib-skeleton", inputs: ["deepParent", "sHeight", "sMb", "skeleton", "plugs"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
13
13
  }
14
14
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibCardComponent, decorators: [{
15
15
  type: Component,
16
- args: [{ selector: 'dd-lib-card', standalone: true, imports: [LibSkeletonComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n class=\"lib-card-wrapper\"\r\n [class.border-r-bottom]=\"borderRadius === 'bottom'\"\r\n [class.border-r-none]=\"borderRadius === 'none'\"\r\n [class.border-r-top]=\"borderRadius === 'top'\"\r\n [class.giant-card]=\"type === 'giant'\"\r\n [class.small-card]=\"type === 'small'\"\r\n [class.with-footer]=\"!!footerBtn\">\r\n <dd-lib-skeleton\r\n [deepParent]=\"parentLvlForSkeleton\"\r\n [skeleton]=\"skeleton\"\r\n [plugs]=\"plugs\"\r\n [sHeight]=\"sHeight\">\r\n <div class=\"lib-card\">\r\n <ng-content></ng-content>\r\n </div>\r\n </dd-lib-skeleton>\r\n</div>\r\n@if (footerBtn) {\r\n<div (click)=\"cardBtnEvent.emit(); cdr.detectChanges()\" class=\"lib-card-footer-btn\">\r\n {{ footerBtn }}\r\n</div>\r\n}\r\n", styles: [":host{display:block}.lib-card-wrapper{border-radius:24px;box-shadow:var(--main-card-shadow);background-color:var(--main-card-color);min-height:100%}@media screen and (max-width: 480px){.lib-card-wrapper{border-radius:16px}}.lib-card-wrapper.border-r-bottom{border-radius:0 0 24px 24px}@media screen and (max-width: 480px){.lib-card-wrapper.border-r-bottom{border-radius:0 0 16px 16px}}.lib-card-wrapper.border-r-top{border-radius:24px 24px 0 0}@media screen and (max-width: 480px){.lib-card-wrapper.border-r-top{border-radius:16px 16px 0 0}}.lib-card-wrapper.border-r-none{border-radius:0}.lib-card-wrapper.small-card{border-radius:12px}.lib-card-wrapper.giant-card .lib-card{padding:32px}@media screen and (max-width: 840px){.lib-card-wrapper.giant-card .lib-card{padding:24px}}@media screen and (max-width: 480px){.lib-card-wrapper.giant-card .lib-card{padding:16px}}.lib-card-wrapper.with-footer{border-radius:24px 24px 0 0}@media screen and (max-width: 480px){.lib-card-wrapper.with-footer{border-radius:16px 16px 0 0}}.lib-card{min-height:100%;padding:24px}@media screen and (max-width: 480px){.lib-card{padding:16px}}.lib-card-footer-btn{border-radius:0 0 12px 12px;font-weight:500;background-color:var(--primary-green-color);color:var(--white-color);cursor:pointer;height:48px;display:flex;align-items:center;justify-content:center}\n"] }]
16
+ args: [{ selector: 'dd-lib-card', standalone: true, imports: [LibSkeletonComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n class=\"lib-card-wrapper\"\r\n [class.border-r-bottom]=\"borderRadius === 'bottom'\"\r\n [class.border-r-none]=\"borderRadius === 'none'\"\r\n [class.border-r-top]=\"borderRadius === 'top'\"\r\n [class.giant-card]=\"type === 'giant'\"\r\n [class.small-card]=\"type === 'small'\"\r\n [class.with-footer]=\"!!footerBtn\">\r\n @if (skeleton) {\r\n <dd-lib-skeleton\r\n [deepParent]=\"parentLvlForSkeleton\"\r\n [skeleton]=\"skeleton\"\r\n [plugs]=\"plugs\"\r\n [sHeight]=\"sHeight\">\r\n <div class=\"lib-card\">\r\n <ng-content></ng-content>\r\n </div>\r\n </dd-lib-skeleton>\r\n } @else {\r\n <div class=\"lib-card\">\r\n <ng-content></ng-content>\r\n </div>\r\n }\r\n</div>\r\n@if (footerBtn) {\r\n<div (click)=\"cardBtnEvent.emit(); cdr.detectChanges()\" class=\"lib-card-footer-btn\">\r\n {{ footerBtn }}\r\n</div>\r\n}\r\n", styles: [":host{display:block}.lib-card-wrapper{display:flex;border-radius:24px;box-shadow:var(--main-card-shadow);background-color:var(--main-card-color);min-height:100%}@media screen and (max-width: 480px){.lib-card-wrapper{border-radius:16px}}.lib-card-wrapper.border-r-bottom{border-radius:0 0 24px 24px}@media screen and (max-width: 480px){.lib-card-wrapper.border-r-bottom{border-radius:0 0 16px 16px}}.lib-card-wrapper.border-r-top{border-radius:24px 24px 0 0}@media screen and (max-width: 480px){.lib-card-wrapper.border-r-top{border-radius:16px 16px 0 0}}.lib-card-wrapper.border-r-none{border-radius:0}.lib-card-wrapper.small-card{border-radius:12px}.lib-card-wrapper.giant-card .lib-card{padding:32px}@media screen and (max-width: 840px){.lib-card-wrapper.giant-card .lib-card{padding:24px}}@media screen and (max-width: 480px){.lib-card-wrapper.giant-card .lib-card{padding:16px}}.lib-card-wrapper.with-footer{border-radius:24px 24px 0 0}@media screen and (max-width: 480px){.lib-card-wrapper.with-footer{border-radius:16px 16px 0 0}}.lib-card{min-height:100%;min-width:100%;padding:24px;display:flex}@media screen and (max-width: 480px){.lib-card{padding:16px}}.lib-card-footer-btn{border-radius:0 0 12px 12px;font-weight:500;background-color:var(--primary-green-color);color:var(--white-color);cursor:pointer;height:48px;display:flex;align-items:center;justify-content:center}\n"] }]
17
17
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { type: [{
18
18
  type: Input
19
19
  }], footerBtn: [{
@@ -31,4 +31,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
31
31
  }], cardBtnEvent: [{
32
32
  type: Output
33
33
  }] } });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGQtbGliL3NyYy9saWIvbGliLWNhcmQvbGliLWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGQtbGliL3NyYy9saWIvbGliLWNhcmQvbGliLWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEdBQUUsTUFBTSxlQUFlLENBQUM7QUFFbEgsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sd0NBQXdDLENBQUM7O0FBUzVFLE1BQU0sT0FBTyxnQkFBZ0I7SUFVM0IsWUFBbUIsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFUekIsU0FBSSxHQUFtQyxVQUFVLENBQUM7UUFNbEQsaUJBQVksR0FBc0MsS0FBSyxDQUFDO1FBRXZELGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQWEsQ0FBQztJQUNsQixDQUFDOzhHQVZsQyxnQkFBZ0I7a0dBQWhCLGdCQUFnQiwwU0NYN0Isc3ZCQXVCQSx1M0NEakJZLG9CQUFvQjs7MkZBS25CLGdCQUFnQjtrQkFSNUIsU0FBUzsrQkFDRSxhQUFhLGNBQ1gsSUFBSSxXQUNQLENBQUMsb0JBQW9CLENBQUMsbUJBR2QsdUJBQXVCLENBQUMsTUFBTTtzRkFHL0IsSUFBSTtzQkFBbkIsS0FBSztnQkFDVSxTQUFTO3NCQUF4QixLQUFLO2dCQUNVLE9BQU87c0JBQXRCLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxvQkFBb0I7c0JBQW5DLEtBQUs7Z0JBQ1UsS0FBSztzQkFBcEIsS0FBSztnQkFDVSxZQUFZO3NCQUEzQixLQUFLO2dCQUVXLFlBQVk7c0JBQTVCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7TGliU2tlbGV0b25Db21wb25lbnR9IGZyb20gJy4uL2xpYi1za2VsZXRvbi9saWItc2tlbGV0b24uY29tcG9uZW50JztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdkZC1saWItY2FyZCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbTGliU2tlbGV0b25Db21wb25lbnRdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9saWItY2FyZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2xpYi1jYXJkLmNvbXBvbmVudC5zY3NzJyxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIExpYkNhcmRDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB0eXBlOiAnZ2lhbnQnIHwgJ3N0YW5kYXJkJyB8ICdzbWFsbCcgPSAnc3RhbmRhcmQnO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBmb290ZXJCdG46IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBwdWJsaWMgc0hlaWdodDogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBza2VsZXRvbjogYW55O1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBwYXJlbnRMdmxGb3JTa2VsZXRvbjogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBwbHVnczogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBib3JkZXJSYWRpdXM6ICdhbGwnIHwgJ3RvcCcgfCAnYm90dG9tJyB8ICdub25lJyA9ICdhbGwnO1xyXG5cclxuICBAT3V0cHV0KCkgcHVibGljIGNhcmRCdG5FdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8dW5kZWZpbmVkPigpO1xyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxyXG59XHJcbiIsIjxkaXZcclxuICBjbGFzcz1cImxpYi1jYXJkLXdyYXBwZXJcIlxyXG4gIFtjbGFzcy5ib3JkZXItci1ib3R0b21dPVwiYm9yZGVyUmFkaXVzID09PSAnYm90dG9tJ1wiXHJcbiAgW2NsYXNzLmJvcmRlci1yLW5vbmVdPVwiYm9yZGVyUmFkaXVzID09PSAnbm9uZSdcIlxyXG4gIFtjbGFzcy5ib3JkZXItci10b3BdPVwiYm9yZGVyUmFkaXVzID09PSAndG9wJ1wiXHJcbiAgW2NsYXNzLmdpYW50LWNhcmRdPVwidHlwZSA9PT0gJ2dpYW50J1wiXHJcbiAgW2NsYXNzLnNtYWxsLWNhcmRdPVwidHlwZSA9PT0gJ3NtYWxsJ1wiXHJcbiAgW2NsYXNzLndpdGgtZm9vdGVyXT1cIiEhZm9vdGVyQnRuXCI+XHJcbiAgPGRkLWxpYi1za2VsZXRvblxyXG4gICAgW2RlZXBQYXJlbnRdPVwicGFyZW50THZsRm9yU2tlbGV0b25cIlxyXG4gICAgW3NrZWxldG9uXT1cInNrZWxldG9uXCJcclxuICAgIFtwbHVnc109XCJwbHVnc1wiXHJcbiAgICBbc0hlaWdodF09XCJzSGVpZ2h0XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibGliLWNhcmRcIj5cclxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kZC1saWItc2tlbGV0b24+XHJcbjwvZGl2PlxyXG5AaWYgKGZvb3RlckJ0bikge1xyXG48ZGl2IChjbGljayk9XCJjYXJkQnRuRXZlbnQuZW1pdCgpOyBjZHIuZGV0ZWN0Q2hhbmdlcygpXCIgY2xhc3M9XCJsaWItY2FyZC1mb290ZXItYnRuXCI+XHJcbiAge3sgZm9vdGVyQnRuIH19XHJcbjwvZGl2PlxyXG59XHJcbiJdfQ==
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGQtbGliL3NyYy9saWIvbGliLWNhcmQvbGliLWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGQtbGliL3NyYy9saWIvbGliLWNhcmQvbGliLWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEdBQUUsTUFBTSxlQUFlLENBQUM7QUFFbEgsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sd0NBQXdDLENBQUM7O0FBUzVFLE1BQU0sT0FBTyxnQkFBZ0I7SUFVM0IsWUFBbUIsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFUekIsU0FBSSxHQUFtQyxVQUFVLENBQUM7UUFNbEQsaUJBQVksR0FBc0MsS0FBSyxDQUFDO1FBRXZELGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQWEsQ0FBQztJQUNsQixDQUFDOzhHQVZsQyxnQkFBZ0I7a0dBQWhCLGdCQUFnQiwwU0NYN0IscTRCQTZCQSxnNkNEdkJZLG9CQUFvQjs7MkZBS25CLGdCQUFnQjtrQkFSNUIsU0FBUzsrQkFDRSxhQUFhLGNBQ1gsSUFBSSxXQUNQLENBQUMsb0JBQW9CLENBQUMsbUJBR2QsdUJBQXVCLENBQUMsTUFBTTtzRkFHL0IsSUFBSTtzQkFBbkIsS0FBSztnQkFDVSxTQUFTO3NCQUF4QixLQUFLO2dCQUNVLE9BQU87c0JBQXRCLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxvQkFBb0I7c0JBQW5DLEtBQUs7Z0JBQ1UsS0FBSztzQkFBcEIsS0FBSztnQkFDVSxZQUFZO3NCQUEzQixLQUFLO2dCQUVXLFlBQVk7c0JBQTVCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7TGliU2tlbGV0b25Db21wb25lbnR9IGZyb20gJy4uL2xpYi1za2VsZXRvbi9saWItc2tlbGV0b24uY29tcG9uZW50JztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdkZC1saWItY2FyZCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbTGliU2tlbGV0b25Db21wb25lbnRdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9saWItY2FyZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2xpYi1jYXJkLmNvbXBvbmVudC5zY3NzJyxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIExpYkNhcmRDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB0eXBlOiAnZ2lhbnQnIHwgJ3N0YW5kYXJkJyB8ICdzbWFsbCcgPSAnc3RhbmRhcmQnO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBmb290ZXJCdG46IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBwdWJsaWMgc0hlaWdodDogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBza2VsZXRvbjogYW55O1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBwYXJlbnRMdmxGb3JTa2VsZXRvbjogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBwbHVnczogbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBib3JkZXJSYWRpdXM6ICdhbGwnIHwgJ3RvcCcgfCAnYm90dG9tJyB8ICdub25lJyA9ICdhbGwnO1xyXG5cclxuICBAT3V0cHV0KCkgcHVibGljIGNhcmRCdG5FdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8dW5kZWZpbmVkPigpO1xyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxyXG59XHJcbiIsIjxkaXZcclxuICBjbGFzcz1cImxpYi1jYXJkLXdyYXBwZXJcIlxyXG4gIFtjbGFzcy5ib3JkZXItci1ib3R0b21dPVwiYm9yZGVyUmFkaXVzID09PSAnYm90dG9tJ1wiXHJcbiAgW2NsYXNzLmJvcmRlci1yLW5vbmVdPVwiYm9yZGVyUmFkaXVzID09PSAnbm9uZSdcIlxyXG4gIFtjbGFzcy5ib3JkZXItci10b3BdPVwiYm9yZGVyUmFkaXVzID09PSAndG9wJ1wiXHJcbiAgW2NsYXNzLmdpYW50LWNhcmRdPVwidHlwZSA9PT0gJ2dpYW50J1wiXHJcbiAgW2NsYXNzLnNtYWxsLWNhcmRdPVwidHlwZSA9PT0gJ3NtYWxsJ1wiXHJcbiAgW2NsYXNzLndpdGgtZm9vdGVyXT1cIiEhZm9vdGVyQnRuXCI+XHJcbiAgQGlmIChza2VsZXRvbikge1xyXG4gICAgPGRkLWxpYi1za2VsZXRvblxyXG4gICAgICBbZGVlcFBhcmVudF09XCJwYXJlbnRMdmxGb3JTa2VsZXRvblwiXHJcbiAgICAgIFtza2VsZXRvbl09XCJza2VsZXRvblwiXHJcbiAgICAgIFtwbHVnc109XCJwbHVnc1wiXHJcbiAgICAgIFtzSGVpZ2h0XT1cInNIZWlnaHRcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImxpYi1jYXJkXCI+XHJcbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGQtbGliLXNrZWxldG9uPlxyXG4gIH0gQGVsc2Uge1xyXG4gICAgPGRpdiBjbGFzcz1cImxpYi1jYXJkXCI+XHJcbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgIDwvZGl2PlxyXG4gIH1cclxuPC9kaXY+XHJcbkBpZiAoZm9vdGVyQnRuKSB7XHJcbjxkaXYgKGNsaWNrKT1cImNhcmRCdG5FdmVudC5lbWl0KCk7IGNkci5kZXRlY3RDaGFuZ2VzKClcIiBjbGFzcz1cImxpYi1jYXJkLWZvb3Rlci1idG5cIj5cclxuICB7eyBmb290ZXJCdG4gfX1cclxuPC9kaXY+XHJcbn1cclxuIl19
@@ -3,7 +3,9 @@ import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
3
3
  import { NgClass } from "@angular/common";
4
4
  import * as i0 from "@angular/core";
5
5
  export class LibCheckboxComponent {
6
- constructor() {
6
+ static { this.idCounter = 1; }
7
+ constructor(cdr) {
8
+ this.cdr = cdr;
7
9
  this.required = false;
8
10
  this.disabled = false;
9
11
  this.checked = false;
@@ -11,7 +13,6 @@ export class LibCheckboxComponent {
11
13
  this.hasContent = true;
12
14
  this.checkEvent = new EventEmitter();
13
15
  }
14
- static { this.idCounter = 1; }
15
16
  ngOnInit() {
16
17
  if (!this.checkboxId) {
17
18
  this.checkboxId = 'dd-checkbox-' + LibCheckboxComponent.idCounter++;
@@ -30,9 +31,10 @@ export class LibCheckboxComponent {
30
31
  }
31
32
  writeValue(value) {
32
33
  this.checked = value;
34
+ this.cdr.detectChanges();
33
35
  }
34
36
  propagateChange(value) { }
35
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibCheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
37
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibCheckboxComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
36
38
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.2", type: LibCheckboxComponent, isStandalone: true, selector: "dd-lib-checkbox", inputs: { checkboxId: "checkboxId", required: "required", disabled: "disabled", checked: "checked", customClass: "customClass", invalid: "invalid", hasContent: "hasContent" }, outputs: { checkEvent: "checkEvent" }, providers: [
37
39
  {
38
40
  provide: NG_VALUE_ACCESSOR,
@@ -50,7 +52,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
50
52
  multi: true,
51
53
  },
52
54
  ], template: "<input\n (change)=\"onChecked($event.target)\"\n [checked]=\"checked\"\n [class.disabled]=\"disabled\"\n [class.invalid]=\"invalid\"\n [disabled]=\"disabled\"\n [id]=\"checkboxId\"\n [required]=\"required\"\n [tabindex]=\"disabled ? -1 : null\"\n class=\"check-input\"\n type=\"checkbox\" />\n<label [for]=\"checkboxId\" class=\"{{ customClass }} check\">\n <span [class.focused]=\"focused\" class=\"checkbox\"></span>\n @if (hasContent) {\n <span class=\"ml-12\">\n <ng-content></ng-content>\n </span>\n }\n</label>\n", styles: [":host{outline:none;position:relative}.check{display:flex;position:relative;font-size:16px;width:fit-content;cursor:pointer;align-items:center}.check-input{appearance:none;position:absolute;opacity:0;margin:0;width:20px;height:20px}.check-input:hover+label .checkbox{border-color:var(--primary-green-color)}.check-input:hover:checked+label .checkbox{background:var(--cb-hover-bgc);border:none}.check-input:disabled+label,.check-input:disabled+label .checkbox,.check-input:hover:disabled+label,.check-input:hover:disabled+label .checkbox{cursor:default;pointer-events:none;border-color:var(--cb-init-border)}.check-input:disabled:checked+label .checkbox{cursor:default;pointer-events:none;border-color:var(--cb-init-border);background-color:var(--cb-init-border);font-weight:700}.check-input:checked+label{font-weight:700}.check-input:checked+label .checkbox{background:var(--cb-checked-bgc);border:none;position:relative}.check-input:checked+label .checkbox:before{content:\"\";background:url('data:image/svg+xml,<svg fill=\"none\" height=\"10\" viewBox=\"0 0 13 10\" width=\"13\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A <path d=\"M1.33301 5.00008L4.66634 8.33341L11.333 1.66675\" stroke=\"white\" stroke-linecap=\"round\"%0D%0A stroke-linejoin=\"round\"%0D%0A stroke-width=\"1.7\"/>%0D%0A</svg>%0D%0A') no-repeat;height:10px;position:absolute;width:13px;top:5px;left:4px}.checkbox{min-width:20px;min-height:20px;padding:3px;background-color:var(--white-color);border-radius:5px;border:1px solid var(--cb-init-border);cursor:pointer}\n"] }]
53
- }], propDecorators: { checkboxId: [{
55
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { checkboxId: [{
54
56
  type: Input
55
57
  }], required: [{
56
58
  type: Input
@@ -67,4 +69,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
67
69
  }], checkEvent: [{
68
70
  type: Output
69
71
  }] } });
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLWNoZWNrYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RkLWxpYi9zcmMvbGliL2xpYi1jaGVja2JveC9saWItY2hlY2tib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGQtbGliL3NyYy9saWIvbGliLWNoZWNrYm94L2xpYi1jaGVja2JveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFFTCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUF1QixXQUFXLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRixPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0saUJBQWlCLENBQUM7O0FBaUJ4QyxNQUFNLE9BQU8sb0JBQW9CO0lBZmpDO1FBa0JrQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUVoQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFFakIsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7S0E2QjNEO2FBdENlLGNBQVMsR0FBRyxDQUFDLEFBQUosQ0FBSztJQWFyQixRQUFRO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsVUFBVSxHQUFHLGNBQWMsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUN0RSxDQUFDO0lBQ0gsQ0FBQztJQUVNLGdCQUFnQixDQUFDLEVBQU87UUFDN0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVNLGlCQUFpQixDQUFDLEVBQU87UUFDOUIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRU0sU0FBUyxDQUFDLE1BQTBCO1FBQ3pDLElBQUksQ0FBQyxPQUFPLEdBQUksTUFBMkIsRUFBRSxPQUFPLENBQUM7UUFDckQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFTSxVQUFVLENBQUMsS0FBYztRQUM5QixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDO0lBRU8sZUFBZSxDQUFDLEtBQWMsSUFBRyxDQUFDOzhHQXRDL0Isb0JBQW9CO2tHQUFwQixvQkFBb0IscVJBUnBCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztnQkFDbkQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLDBCQzVCSCxnaUJBbUJBLDBrREREWSxXQUFXOzsyRkFZVixvQkFBb0I7a0JBZmhDLFNBQVM7K0JBQ0UsaUJBQWlCLGNBQ2YsSUFBSSxXQUNQLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxtQkFHZCx1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHFCQUFxQixDQUFDOzRCQUNuRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjs4QkFJZSxVQUFVO3NCQUF6QixLQUFLO2dCQUNVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxPQUFPO3NCQUF0QixLQUFLO2dCQUNVLFdBQVc7c0JBQTFCLEtBQUs7Z0JBQ1UsT0FBTztzQkFBdEIsS0FBSztnQkFDVSxVQUFVO3NCQUF6QixLQUFLO2dCQUVXLFVBQVU7c0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBmb3J3YXJkUmVmLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHtDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybXNNb2R1bGUsIE5HX1ZBTFVFX0FDQ0VTU09SfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7TmdDbGFzc30gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdkZC1saWItY2hlY2tib3gnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0Zvcm1zTW9kdWxlLCBOZ0NsYXNzXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vbGliLWNoZWNrYm94LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vbGliLWNoZWNrYm94LmNvbXBvbmVudC5zY3NzJyxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IExpYkNoZWNrYm94Q29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMaWJDaGVja2JveENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG4gIHB1YmxpYyBzdGF0aWMgaWRDb3VudGVyID0gMTtcclxuICBASW5wdXQoKSBwdWJsaWMgY2hlY2tib3hJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyByZXF1aXJlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjaGVja2VkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIGN1c3RvbUNsYXNzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgcHVibGljIGludmFsaWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBwdWJsaWMgaGFzQ29udGVudCA9IHRydWU7XHJcblxyXG4gIEBPdXRwdXQoKSBwdWJsaWMgY2hlY2tFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuICBwdWJsaWMgZm9jdXNlZDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcclxuICBwcml2YXRlIG9uVG91Y2hlZENhbGxiYWNrOiAoKCkgPT4gdm9pZCkgfCB1bmRlZmluZWQ7XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5jaGVja2JveElkKSB7XHJcbiAgICAgIHRoaXMuY2hlY2tib3hJZCA9ICdkZC1jaGVja2JveC0nICsgTGliQ2hlY2tib3hDb21wb25lbnQuaWRDb3VudGVyKys7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2sgPSBmbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkNoZWNrZWQodGFyZ2V0OiBFdmVudFRhcmdldCB8IG51bGwpOiB2b2lkIHtcclxuICAgIHRoaXMuY2hlY2tlZCA9ICh0YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCk/LmNoZWNrZWQ7XHJcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLmNoZWNrZWQpO1xyXG4gICAgdGhpcy5jaGVja0V2ZW50LmVtaXQodGhpcy5jaGVja2VkKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmNoZWNrZWQgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcHJvcGFnYXRlQ2hhbmdlKHZhbHVlOiBib29sZWFuKSB7fVxyXG59XHJcbiIsIjxpbnB1dFxuICAoY2hhbmdlKT1cIm9uQ2hlY2tlZCgkZXZlbnQudGFyZ2V0KVwiXG4gIFtjaGVja2VkXT1cImNoZWNrZWRcIlxuICBbY2xhc3MuZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICBbY2xhc3MuaW52YWxpZF09XCJpbnZhbGlkXCJcbiAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgW2lkXT1cImNoZWNrYm94SWRcIlxuICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICBbdGFiaW5kZXhdPVwiZGlzYWJsZWQgPyAtMSA6IG51bGxcIlxuICBjbGFzcz1cImNoZWNrLWlucHV0XCJcbiAgdHlwZT1cImNoZWNrYm94XCIgLz5cbjxsYWJlbCBbZm9yXT1cImNoZWNrYm94SWRcIiBjbGFzcz1cInt7IGN1c3RvbUNsYXNzIH19IGNoZWNrXCI+XG4gIDxzcGFuIFtjbGFzcy5mb2N1c2VkXT1cImZvY3VzZWRcIiBjbGFzcz1cImNoZWNrYm94XCI+PC9zcGFuPlxuICBAaWYgKGhhc0NvbnRlbnQpIHtcbiAgICA8c3BhbiBjbGFzcz1cIm1sLTEyXCI+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9zcGFuPlxuICB9XG48L2xhYmVsPlxuIl19
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLWNoZWNrYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RkLWxpYi9zcmMvbGliL2xpYi1jaGVja2JveC9saWItY2hlY2tib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGQtbGliL3NyYy9saWIvbGliLWNoZWNrYm94L2xpYi1jaGVja2JveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFFTCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUF1QixXQUFXLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRixPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0saUJBQWlCLENBQUM7O0FBaUJ4QyxNQUFNLE9BQU8sb0JBQW9CO2FBQ2pCLGNBQVMsR0FBRyxDQUFDLEFBQUosQ0FBSztJQWE1QixZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQVgxQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUVoQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFFakIsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7SUFLMUQsQ0FBQztJQUNNLFFBQVE7UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsY0FBYyxHQUFHLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3RFLENBQUM7SUFDSCxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsRUFBTztRQUM3QixJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRU0saUJBQWlCLENBQUMsRUFBTztRQUM5QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFTSxTQUFTLENBQUMsTUFBMEI7UUFDekMsSUFBSSxDQUFDLE9BQU8sR0FBSSxNQUEyQixFQUFFLE9BQU8sQ0FBQztRQUNyRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVNLFVBQVUsQ0FBQyxLQUFjO1FBQzlCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVPLGVBQWUsQ0FBQyxLQUFjLElBQUcsQ0FBQzs4R0F6Qy9CLG9CQUFvQjtrR0FBcEIsb0JBQW9CLHFSQVJwQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7Z0JBQ25ELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRiwwQkM1QkgsZ2lCQW1CQSwwa0RERFksV0FBVzs7MkZBWVYsb0JBQW9CO2tCQWZoQyxTQUFTOytCQUNFLGlCQUFpQixjQUNmLElBQUksV0FDUCxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsbUJBR2QsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxxQkFBcUIsQ0FBQzs0QkFDbkQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7c0ZBSWUsVUFBVTtzQkFBekIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLO2dCQUNVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQ1UsT0FBTztzQkFBdEIsS0FBSztnQkFDVSxXQUFXO3NCQUExQixLQUFLO2dCQUNVLE9BQU87c0JBQXRCLEtBQUs7Z0JBQ1UsVUFBVTtzQkFBekIsS0FBSztnQkFFVyxVQUFVO3NCQUExQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQge0NvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3Jtc01vZHVsZSwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtOZ0NsYXNzfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2RkLWxpYi1jaGVja2JveCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbRm9ybXNNb2R1bGUsIE5nQ2xhc3NdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9saWItY2hlY2tib3guY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9saWItY2hlY2tib3guY29tcG9uZW50LnNjc3MnLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTGliQ2hlY2tib3hDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIExpYkNoZWNrYm94Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgcHVibGljIHN0YXRpYyBpZENvdW50ZXIgPSAxO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjaGVja2JveElkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgcHVibGljIHJlcXVpcmVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIGNoZWNrZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBwdWJsaWMgY3VzdG9tQ2xhc3M6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKSBwdWJsaWMgaW52YWxpZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBoYXNDb250ZW50ID0gdHJ1ZTtcclxuXHJcbiAgQE91dHB1dCgpIHB1YmxpYyBjaGVja0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gIHB1YmxpYyBmb2N1c2VkOiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG4gIHByaXZhdGUgb25Ub3VjaGVkQ2FsbGJhY2s6ICgoKSA9PiB2b2lkKSB8IHVuZGVmaW5lZDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgfVxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5jaGVja2JveElkKSB7XHJcbiAgICAgIHRoaXMuY2hlY2tib3hJZCA9ICdkZC1jaGVja2JveC0nICsgTGliQ2hlY2tib3hDb21wb25lbnQuaWRDb3VudGVyKys7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkQ2FsbGJhY2sgPSBmbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkNoZWNrZWQodGFyZ2V0OiBFdmVudFRhcmdldCB8IG51bGwpOiB2b2lkIHtcclxuICAgIHRoaXMuY2hlY2tlZCA9ICh0YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCk/LmNoZWNrZWQ7XHJcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh0aGlzLmNoZWNrZWQpO1xyXG4gICAgdGhpcy5jaGVja0V2ZW50LmVtaXQodGhpcy5jaGVja2VkKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmNoZWNrZWQgPSB2YWx1ZTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcHJvcGFnYXRlQ2hhbmdlKHZhbHVlOiBib29sZWFuKSB7fVxyXG59XHJcbiIsIjxpbnB1dFxuICAoY2hhbmdlKT1cIm9uQ2hlY2tlZCgkZXZlbnQudGFyZ2V0KVwiXG4gIFtjaGVja2VkXT1cImNoZWNrZWRcIlxuICBbY2xhc3MuZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICBbY2xhc3MuaW52YWxpZF09XCJpbnZhbGlkXCJcbiAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgW2lkXT1cImNoZWNrYm94SWRcIlxuICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICBbdGFiaW5kZXhdPVwiZGlzYWJsZWQgPyAtMSA6IG51bGxcIlxuICBjbGFzcz1cImNoZWNrLWlucHV0XCJcbiAgdHlwZT1cImNoZWNrYm94XCIgLz5cbjxsYWJlbCBbZm9yXT1cImNoZWNrYm94SWRcIiBjbGFzcz1cInt7IGN1c3RvbUNsYXNzIH19IGNoZWNrXCI+XG4gIDxzcGFuIFtjbGFzcy5mb2N1c2VkXT1cImZvY3VzZWRcIiBjbGFzcz1cImNoZWNrYm94XCI+PC9zcGFuPlxuICBAaWYgKGhhc0NvbnRlbnQpIHtcbiAgICA8c3BhbiBjbGFzcz1cIm1sLTEyXCI+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9zcGFuPlxuICB9XG48L2xhYmVsPlxuIl19