@lucca-front/ng 15.1.3 → 15.2.0

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 (153) hide show
  1. package/esm2020/api/lib/select/input/api-select-input.component.mjs +3 -3
  2. package/esm2020/date/lib/select/date-select-input.component.mjs +3 -3
  3. package/esm2020/department/lib/select/input/department-select-input.component.mjs +3 -3
  4. package/esm2020/establishment/lib/select/input/establishment-select-input.component.mjs +3 -3
  5. package/esm2020/input/lib/clearer/clearer.component.mjs +3 -3
  6. package/esm2020/modal/lib/modal-config.default.mjs +8 -2
  7. package/esm2020/modal/lib/modal-config.model.mjs +5 -2
  8. package/esm2020/modal/lib/modal-panel.component.mjs +26 -26
  9. package/esm2020/modal/lib/modal-ref.factory.mjs +11 -11
  10. package/esm2020/modal/lib/modal-ref.model.mjs +8 -1
  11. package/esm2020/modal/lib/modal.module.mjs +13 -13
  12. package/esm2020/modal/lib/modal.service.mjs +1 -1
  13. package/esm2020/modal/lib/modal.token.mjs +4 -4
  14. package/esm2020/option/lib/item/tree-option-item.component.mjs +3 -3
  15. package/esm2020/popup/lib/popup-config.default.mjs +2 -2
  16. package/esm2020/popup/lib/popup-ref.model.mjs +33 -18
  17. package/esm2020/popup/lib/popup.service.mjs +1 -1
  18. package/esm2020/qualification/lib/select/input/qualification-select-input.component.mjs +3 -3
  19. package/esm2020/select/lib/input/select-input.component.mjs +2 -2
  20. package/esm2020/sidepanel/lib/index.mjs +1 -8
  21. package/esm2020/sidepanel/lib/sidepanel.model.mjs +27 -2
  22. package/esm2020/sidepanel/lib/sidepanel.module.mjs +9 -15
  23. package/esm2020/sidepanel/lib/sidepanel.service.mjs +11 -3
  24. package/esm2020/simple-select/api/lib/api-v3.directive.mjs +57 -0
  25. package/esm2020/simple-select/api/lib/api-v4.directive.mjs +50 -0
  26. package/esm2020/simple-select/api/lib/api.directive.mjs +40 -0
  27. package/esm2020/simple-select/api/lucca-front-ng-simple-select-api.mjs +5 -0
  28. package/esm2020/simple-select/api/public-api.mjs +4 -0
  29. package/esm2020/simple-select/lib/index.mjs +2 -1
  30. package/esm2020/simple-select/lib/input/panel-ref.factory.mjs +90 -0
  31. package/esm2020/simple-select/lib/input/select-input.component.mjs +54 -174
  32. package/esm2020/simple-select/lib/input/select-input.models.mjs +60 -0
  33. package/esm2020/simple-select/lib/option/default-option.component.mjs +21 -0
  34. package/esm2020/simple-select/lib/option/disabled.directive.mjs +26 -0
  35. package/esm2020/simple-select/lib/option/index.mjs +4 -2
  36. package/esm2020/simple-select/lib/option/option-outlet.directive.mjs +70 -0
  37. package/esm2020/simple-select/lib/option/option.component.mjs +36 -17
  38. package/esm2020/simple-select/lib/option/option.token.mjs +22 -0
  39. package/esm2020/simple-select/lib/panel/index.mjs +2 -1
  40. package/esm2020/simple-select/lib/panel/panel.component.mjs +27 -53
  41. package/esm2020/simple-select/lib/panel/panel.models.mjs +23 -0
  42. package/esm2020/simple-select/lib/select.model.mjs +1 -1
  43. package/esm2020/simple-select/lib/select.translate.mjs +37 -0
  44. package/esm2020/user/lib/select/input/user-select-input.component.mjs +3 -3
  45. package/fesm2015/lucca-front-ng-api.mjs +2 -2
  46. package/fesm2015/lucca-front-ng-api.mjs.map +1 -1
  47. package/fesm2015/lucca-front-ng-date.mjs +2 -2
  48. package/fesm2015/lucca-front-ng-date.mjs.map +1 -1
  49. package/fesm2015/lucca-front-ng-department.mjs +2 -2
  50. package/fesm2015/lucca-front-ng-department.mjs.map +1 -1
  51. package/fesm2015/lucca-front-ng-establishment.mjs +2 -2
  52. package/fesm2015/lucca-front-ng-establishment.mjs.map +1 -1
  53. package/fesm2015/lucca-front-ng-input.mjs +2 -2
  54. package/fesm2015/lucca-front-ng-input.mjs.map +1 -1
  55. package/fesm2015/lucca-front-ng-modal.mjs +64 -48
  56. package/fesm2015/lucca-front-ng-modal.mjs.map +1 -1
  57. package/fesm2015/lucca-front-ng-option.mjs +2 -2
  58. package/fesm2015/lucca-front-ng-option.mjs.map +1 -1
  59. package/fesm2015/lucca-front-ng-popup.mjs +33 -18
  60. package/fesm2015/lucca-front-ng-popup.mjs.map +1 -1
  61. package/fesm2015/lucca-front-ng-qualification.mjs +2 -2
  62. package/fesm2015/lucca-front-ng-qualification.mjs.map +1 -1
  63. package/fesm2015/lucca-front-ng-select.mjs +2 -2
  64. package/fesm2015/lucca-front-ng-select.mjs.map +1 -1
  65. package/fesm2015/lucca-front-ng-sidepanel.mjs +40 -141
  66. package/fesm2015/lucca-front-ng-sidepanel.mjs.map +1 -1
  67. package/fesm2015/lucca-front-ng-simple-select-api.mjs +137 -0
  68. package/fesm2015/lucca-front-ng-simple-select-api.mjs.map +1 -0
  69. package/fesm2015/lucca-front-ng-simple-select.mjs +378 -192
  70. package/fesm2015/lucca-front-ng-simple-select.mjs.map +1 -1
  71. package/fesm2015/lucca-front-ng-user.mjs +2 -2
  72. package/fesm2015/lucca-front-ng-user.mjs.map +1 -1
  73. package/fesm2020/lucca-front-ng-api.mjs +2 -2
  74. package/fesm2020/lucca-front-ng-api.mjs.map +1 -1
  75. package/fesm2020/lucca-front-ng-date.mjs +2 -2
  76. package/fesm2020/lucca-front-ng-date.mjs.map +1 -1
  77. package/fesm2020/lucca-front-ng-department.mjs +2 -2
  78. package/fesm2020/lucca-front-ng-department.mjs.map +1 -1
  79. package/fesm2020/lucca-front-ng-establishment.mjs +2 -2
  80. package/fesm2020/lucca-front-ng-establishment.mjs.map +1 -1
  81. package/fesm2020/lucca-front-ng-input.mjs +2 -2
  82. package/fesm2020/lucca-front-ng-input.mjs.map +1 -1
  83. package/fesm2020/lucca-front-ng-modal.mjs +68 -48
  84. package/fesm2020/lucca-front-ng-modal.mjs.map +1 -1
  85. package/fesm2020/lucca-front-ng-option.mjs +2 -2
  86. package/fesm2020/lucca-front-ng-option.mjs.map +1 -1
  87. package/fesm2020/lucca-front-ng-popup.mjs +33 -18
  88. package/fesm2020/lucca-front-ng-popup.mjs.map +1 -1
  89. package/fesm2020/lucca-front-ng-qualification.mjs +2 -2
  90. package/fesm2020/lucca-front-ng-qualification.mjs.map +1 -1
  91. package/fesm2020/lucca-front-ng-select.mjs +2 -2
  92. package/fesm2020/lucca-front-ng-select.mjs.map +1 -1
  93. package/fesm2020/lucca-front-ng-sidepanel.mjs +40 -141
  94. package/fesm2020/lucca-front-ng-sidepanel.mjs.map +1 -1
  95. package/fesm2020/lucca-front-ng-simple-select-api.mjs +145 -0
  96. package/fesm2020/lucca-front-ng-simple-select-api.mjs.map +1 -0
  97. package/fesm2020/lucca-front-ng-simple-select.mjs +373 -182
  98. package/fesm2020/lucca-front-ng-simple-select.mjs.map +1 -1
  99. package/fesm2020/lucca-front-ng-user.mjs +2 -2
  100. package/fesm2020/lucca-front-ng-user.mjs.map +1 -1
  101. package/modal/lib/modal-config.default.d.ts +3 -2
  102. package/modal/lib/modal-config.model.d.ts +23 -3
  103. package/modal/lib/modal-panel.component.d.ts +8 -7
  104. package/modal/lib/modal-ref.factory.d.ts +9 -8
  105. package/modal/lib/modal-ref.model.d.ts +8 -2
  106. package/modal/lib/modal.module.d.ts +8 -6
  107. package/modal/lib/modal.service.d.ts +3 -3
  108. package/modal/lib/modal.token.d.ts +2 -2
  109. package/package.json +11 -3
  110. package/popup/lib/popup-ref.model.d.ts +9 -4
  111. package/popup/lib/popup.service.d.ts +2 -2
  112. package/sidepanel/lib/index.d.ts +0 -7
  113. package/sidepanel/lib/sidepanel.model.d.ts +42 -1
  114. package/sidepanel/lib/sidepanel.module.d.ts +5 -6
  115. package/sidepanel/lib/sidepanel.service.d.ts +12 -4
  116. package/simple-select/api/index.d.ts +5 -0
  117. package/simple-select/api/lib/api-v3.directive.d.ts +25 -0
  118. package/simple-select/api/lib/api-v4.directive.d.ts +22 -0
  119. package/simple-select/api/lib/api.directive.d.ts +32 -0
  120. package/simple-select/api/public-api.d.ts +3 -0
  121. package/simple-select/lib/index.d.ts +1 -0
  122. package/simple-select/lib/input/panel-ref.factory.d.ts +16 -0
  123. package/simple-select/lib/input/select-input.component.d.ts +22 -33
  124. package/simple-select/lib/input/select-input.models.d.ts +3 -0
  125. package/simple-select/lib/option/default-option.component.d.ts +9 -0
  126. package/simple-select/lib/option/disabled.directive.d.ts +7 -0
  127. package/simple-select/lib/option/index.d.ts +3 -1
  128. package/simple-select/lib/option/option-outlet.directive.d.ts +19 -0
  129. package/simple-select/lib/option/option.component.d.ts +16 -6
  130. package/simple-select/lib/option/option.token.d.ts +9 -0
  131. package/simple-select/lib/panel/index.d.ts +1 -0
  132. package/simple-select/lib/panel/panel.component.d.ts +11 -21
  133. package/simple-select/lib/panel/panel.models.d.ts +13 -0
  134. package/simple-select/lib/select.model.d.ts +3 -3
  135. package/simple-select/lib/select.translate.d.ts +10 -0
  136. package/src/components/_dropdown.scss +6 -4
  137. package/src/components/_sidepanel.scss +16 -6
  138. package/src/definitions/select/_select-clearer.scss +24 -9
  139. package/src/definitions/select/_select-input.scss +5 -16
  140. package/esm2020/sidepanel/lib/sidepanel-config.default.mjs +0 -11
  141. package/esm2020/sidepanel/lib/sidepanel-config.model.mjs +0 -2
  142. package/esm2020/sidepanel/lib/sidepanel-panel.component.mjs +0 -44
  143. package/esm2020/sidepanel/lib/sidepanel-ref.factory.mjs +0 -59
  144. package/esm2020/sidepanel/lib/sidepanel-ref.model.mjs +0 -4
  145. package/esm2020/sidepanel/lib/sidepanel.token.mjs +0 -6
  146. package/esm2020/sidepanel/lib/sidepanel.translate.mjs +0 -22
  147. package/sidepanel/lib/sidepanel-config.default.d.ts +0 -2
  148. package/sidepanel/lib/sidepanel-config.model.d.ts +0 -4
  149. package/sidepanel/lib/sidepanel-panel.component.d.ts +0 -19
  150. package/sidepanel/lib/sidepanel-ref.factory.d.ts +0 -29
  151. package/sidepanel/lib/sidepanel-ref.model.d.ts +0 -5
  152. package/sidepanel/lib/sidepanel.token.d.ts +0 -7
  153. package/sidepanel/lib/sidepanel.translate.d.ts +0 -9
@@ -1,4 +1,5 @@
1
1
  export * from './input/index';
2
2
  export * from './option/index';
3
3
  export * from './panel/index';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy9zaW1wbGUtc2VsZWN0L3NyYy9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vaW5wdXQvaW5kZXgnO1xyXG5leHBvcnQgKiBmcm9tICcuL29wdGlvbi9pbmRleCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vcGFuZWwvaW5kZXgnO1xyXG4iXX0=
4
+ export * from './select.translate';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy9zaW1wbGUtc2VsZWN0L3NyYy9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9pbnB1dC9pbmRleCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vb3B0aW9uL2luZGV4JztcclxuZXhwb3J0ICogZnJvbSAnLi9wYW5lbC9pbmRleCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2VsZWN0LnRyYW5zbGF0ZSc7XHJcbiJdfQ==
@@ -0,0 +1,90 @@
1
+ import { Overlay, OverlayPositionBuilder, ScrollStrategyOptions } from '@angular/cdk/overlay';
2
+ import { ComponentPortal } from '@angular/cdk/portal';
3
+ import { ElementRef, inject, Injectable, Injector } from '@angular/core';
4
+ import { takeUntil } from 'rxjs';
5
+ import { LuSelectPanelComponent, LuSelectPanelRef } from '../panel';
6
+ import { SELECT_PANEL_DATA } from '../select.model';
7
+ import * as i0 from "@angular/core";
8
+ class SelectPanelRef extends LuSelectPanelRef {
9
+ constructor(overlayRef, parentInjector, panelData) {
10
+ super();
11
+ this.overlayRef = overlayRef;
12
+ const injector = Injector.create({
13
+ providers: [
14
+ { provide: LuSelectPanelRef, useValue: this },
15
+ { provide: SELECT_PANEL_DATA, useValue: panelData },
16
+ ],
17
+ parent: parentInjector,
18
+ });
19
+ this.portalRef = new ComponentPortal(LuSelectPanelComponent, undefined, injector);
20
+ this.panelRef = overlayRef.attach(this.portalRef);
21
+ this.instance = this.panelRef.instance;
22
+ overlayRef
23
+ .backdropClick()
24
+ .pipe(takeUntil(this.closed))
25
+ .subscribe(() => this.close());
26
+ }
27
+ emitValue(value) {
28
+ this.valueChanged.emit(value);
29
+ this.close();
30
+ }
31
+ close() {
32
+ super.close();
33
+ this.panelRef.destroy();
34
+ this.overlayRef.detach();
35
+ }
36
+ }
37
+ export class LuSimpleSelectPanelRefFactory {
38
+ constructor() {
39
+ this.overlay = inject(Overlay);
40
+ this.elementRef = inject(ElementRef);
41
+ this.positionBuilder = inject(OverlayPositionBuilder);
42
+ this.scrollStrategies = inject(ScrollStrategyOptions);
43
+ this.parentInjector = inject(Injector);
44
+ }
45
+ buildPanelRef(panelData, overlayConfigOverride = {}) {
46
+ const overlayConfig = this.buildOverlayConfig(overlayConfigOverride);
47
+ const overlayRef = this.overlay.create(overlayConfig);
48
+ return new SelectPanelRef(overlayRef, this.parentInjector, panelData);
49
+ }
50
+ buildOverlayConfig(overlayConfigOverride = {}) {
51
+ const overlayConfig = overlayConfigOverride || {};
52
+ overlayConfig.positionStrategy = this.positionBuilder.flexibleConnectedTo(this.elementRef).withPositions([
53
+ {
54
+ originX: 'start',
55
+ originY: 'bottom',
56
+ overlayX: 'start',
57
+ overlayY: 'top',
58
+ },
59
+ {
60
+ originX: 'end',
61
+ originY: 'bottom',
62
+ overlayX: 'end',
63
+ overlayY: 'top',
64
+ },
65
+ {
66
+ originX: 'start',
67
+ originY: 'top',
68
+ overlayX: 'start',
69
+ overlayY: 'bottom',
70
+ },
71
+ {
72
+ originX: 'end',
73
+ originY: 'top',
74
+ overlayX: 'end',
75
+ overlayY: 'bottom',
76
+ },
77
+ ]);
78
+ overlayConfig.scrollStrategy = this.scrollStrategies.reposition();
79
+ overlayConfig.minWidth = this.elementRef.nativeElement.clientWidth;
80
+ overlayConfig.maxHeight = '100vh';
81
+ overlayConfig.maxWidth = '100vw';
82
+ return overlayConfig;
83
+ }
84
+ }
85
+ LuSimpleSelectPanelRefFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: LuSimpleSelectPanelRefFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
86
+ LuSimpleSelectPanelRefFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: LuSimpleSelectPanelRefFactory });
87
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.3", ngImport: i0, type: LuSimpleSelectPanelRefFactory, decorators: [{
88
+ type: Injectable
89
+ }] });
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuZWwtcmVmLmZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy9zaW1wbGUtc2VsZWN0L3NyYy9saWIvaW5wdXQvcGFuZWwtcmVmLmZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBaUIsc0JBQXNCLEVBQWMscUJBQXFCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6SCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFnQixVQUFVLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDcEUsT0FBTyxFQUFzQixpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUV4RSxNQUFNLGNBQWtCLFNBQVEsZ0JBQW1CO0lBS2xELFlBQW9CLFVBQXNCLEVBQUUsY0FBd0IsRUFBRSxTQUFnQztRQUNyRyxLQUFLLEVBQUUsQ0FBQztRQURXLGVBQVUsR0FBVixVQUFVLENBQVk7UUFHekMsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUNoQyxTQUFTLEVBQUU7Z0JBQ1YsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFDN0MsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRTthQUNuRDtZQUNELE1BQU0sRUFBRSxjQUFjO1NBQ3RCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxlQUFlLENBQTRCLHNCQUFzQixFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztR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YSxDQUFDO0lBQ3RCLENBQUM7OzBIQWhEVyw2QkFBNkI7OEhBQTdCLDZCQUE2QjsyRkFBN0IsNkJBQTZCO2tCQUR6QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVBvc2l0aW9uQnVpbGRlciwgT3ZlcmxheVJlZiwgU2Nyb2xsU3RyYXRlZ3lPcHRpb25zIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xyXG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcclxuaW1wb3J0IHsgQ29tcG9uZW50UmVmLCBFbGVtZW50UmVmLCBpbmplY3QsIEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBMdVNlbGVjdFBhbmVsQ29tcG9uZW50LCBMdVNlbGVjdFBhbmVsUmVmIH0gZnJvbSAnLi4vcGFuZWwnO1xyXG5pbXBvcnQgeyBJTHVTZWxlY3RQYW5lbERhdGEsIFNFTEVDVF9QQU5FTF9EQVRBIH0gZnJvbSAnLi4vc2VsZWN0Lm1vZGVsJztcclxuXHJcbmNsYXNzIFNlbGVjdFBhbmVsUmVmPFQ+IGV4dGVuZHMgTHVTZWxlY3RQYW5lbFJlZjxUPiB7XHJcblx0aW5zdGFuY2U6IEx1U2VsZWN0UGFuZWxDb21wb25lbnQ8VD47XHJcblx0cHJpdmF0ZSBwYW5lbFJlZjogQ29tcG9uZW50UmVmPEx1U2VsZWN0UGFuZWxDb21wb25lbnQ8VD4+O1xyXG5cdHByaXZhdGUgcG9ydGFsUmVmOiBDb21wb25lbnRQb3J0YWw8THVTZWxlY3RQYW5lbENvbXBvbmVudDxUPj47XHJcblxyXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgb3ZlcmxheVJlZjogT3ZlcmxheVJlZiwgcGFyZW50SW5qZWN0b3I6IEluamVjdG9yLCBwYW5lbERhdGE6IElMdVNlbGVjdFBhbmVsRGF0YTxUPikge1xyXG5cdFx0c3VwZXIoKTtcclxuXHJcblx0XHRjb25zdCBpbmplY3RvciA9IEluamVjdG9yLmNyZWF0ZSh7XHJcblx0XHRcdHByb3ZpZGVyczogW1xyXG5cdFx0XHRcdHsgcHJvdmlkZTogTHVTZWxlY3RQYW5lbFJlZiwgdXNlVmFsdWU6IHRoaXMgfSxcclxuXHRcdFx0XHR7IHByb3ZpZGU6IFNFTEVDVF9QQU5FTF9EQVRBLCB1c2VWYWx1ZTogcGFuZWxEYXRhIH0sXHJcblx0XHRcdF0sXHJcblx0XHRcdHBhcmVudDogcGFyZW50SW5qZWN0b3IsXHJcblx0XHR9KTtcclxuXHJcblx0XHR0aGlzLnBvcnRhbFJlZiA9IG5ldyBDb21wb25lbnRQb3J0YWw8THVTZWxlY3RQYW5lbENvbXBvbmVudDxUPj4oTHVTZWxlY3RQYW5lbENvbXBvbmVudCwgdW5kZWZpbmVkLCBpbmplY3Rvcik7XHJcblx0XHR0aGlzLnBhbmVsUmVmID0gb3ZlcmxheVJlZi5hdHRhY2godGhpcy5wb3J0YWxSZWYpO1xyXG5cdFx0dGhpcy5pbnN0YW5jZSA9IHRoaXMucGFuZWxSZWYuaW5zdGFuY2U7XHJcblxyXG5cdFx0b3ZlcmxheVJlZlxyXG5cdFx0XHQuYmFja2Ryb3BDbGljaygpXHJcblx0XHRcdC5waXBlKHRha2VVbnRpbCh0aGlzLmNsb3NlZCkpXHJcblx0XHRcdC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jbG9zZSgpKTtcclxuXHR9XHJcblxyXG5cdGVtaXRWYWx1ZSh2YWx1ZTogVCk6IHZvaWQge1xyXG5cdFx0dGhpcy52YWx1ZUNoYW5nZWQuZW1pdCh2YWx1ZSk7XHJcblx0XHR0aGlzLmNsb3NlKCk7XHJcblx0fVxyXG5cclxuXHRvdmVycmlkZSBjbG9zZSgpOiB2b2lkIHtcclxuXHRcdHN1cGVyLmNsb3NlKCk7XHJcblx0XHR0aGlzLnBhbmVsUmVmLmRlc3Ryb3koKTtcclxuXHRcdHRoaXMub3ZlcmxheVJlZi5kZXRhY2goKTtcclxuXHR9XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEx1U2ltcGxlU2VsZWN0UGFuZWxSZWZGYWN0b3J5IHtcclxuXHRwcm90ZWN0ZWQgb3ZlcmxheSA9IGluamVjdChPdmVybGF5KTtcclxuXHRwcm90ZWN0ZWQgZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XHJcblx0cHJvdGVjdGVkIHBvc2l0aW9uQnVpbGRlciA9IGluamVjdChPdmVybGF5UG9zaXRpb25CdWlsZGVyKTtcclxuXHRwcm90ZWN0ZWQgc2Nyb2xsU3RyYXRlZ2llcyA9IGluamVjdChTY3JvbGxTdHJhdGVneU9wdGlvbnMpO1xyXG5cdHByb3RlY3RlZCBwYXJlbnRJbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XHJcblxyXG5cdGJ1aWxkUGFuZWxSZWY8VD4ocGFuZWxEYXRhOiBJTHVTZWxlY3RQYW5lbERhdGE8VD4sIG92ZXJsYXlDb25maWdPdmVycmlkZTogT3ZlcmxheUNvbmZpZyA9IHt9KTogTHVTZWxlY3RQYW5lbFJlZjxUPiB7XHJcblx0XHRjb25zdCBvdmVybGF5Q29uZmlnID0gdGhpcy5idWlsZE92ZXJsYXlDb25maWcob3ZlcmxheUNvbmZpZ092ZXJyaWRlKTtcclxuXHRcdGNvbnN0IG92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKG92ZXJsYXlDb25maWcpO1xyXG5cclxuXHRcdHJldHVybiBuZXcgU2VsZWN0UGFuZWxSZWYob3ZlcmxheVJlZiwgdGhpcy5wYXJlbnRJbmplY3RvciwgcGFuZWxEYXRhKTtcclxuXHR9XHJcblxyXG5cdHByb3RlY3RlZCBidWlsZE92ZXJsYXlDb25maWcob3ZlcmxheUNvbmZpZ092ZXJyaWRlOiBPdmVybGF5Q29uZmlnID0ge30pOiBPdmVybGF5Q29uZmlnIHtcclxuXHRcdGNvbnN0IG92ZXJsYXlDb25maWc6IE92ZXJsYXlDb25maWcgPSBvdmVybGF5Q29uZmlnT3ZlcnJpZGUgfHwge307XHJcblx0XHRvdmVybGF5Q29uZmlnLnBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLnBvc2l0aW9uQnVpbGRlci5mbGV4aWJsZUNvbm5lY3RlZFRvKHRoaXMuZWxlbWVudFJlZikud2l0aFBvc2l0aW9ucyhbXHJcblx0XHRcdHtcclxuXHRcdFx0XHRvcmlnaW5YOiAnc3RhcnQnLFxyXG5cdFx0XHRcdG9yaWdpblk6ICdib3R0b20nLFxyXG5cdFx0XHRcdG92ZXJsYXlYOiAnc3RhcnQnLFxyXG5cdFx0XHRcdG92ZXJsYXlZOiAndG9wJyxcclxuXHRcdFx0fSxcclxuXHRcdFx0e1xyXG5cdFx0XHRcdG9yaWdpblg6ICdlbmQnLFxyXG5cdFx0XHRcdG9yaWdpblk6ICdib3R0b20nLFxyXG5cdFx0XHRcdG92ZXJsYXlYOiAnZW5kJyxcclxuXHRcdFx0XHRvdmVybGF5WTogJ3RvcCcsXHJcblx0XHRcdH0sXHJcblx0XHRcdHtcclxuXHRcdFx0XHRvcmlnaW5YOiAnc3RhcnQnLFxyXG5cdFx0XHRcdG9yaWdpblk6ICd0b3AnLFxyXG5cdFx0XHRcdG92ZXJsYXlYOiAnc3RhcnQnLFxyXG5cdFx0XHRcdG92ZXJsYXlZOiAnYm90dG9tJyxcclxuXHRcdFx0fSxcclxuXHRcdFx0e1xyXG5cdFx0XHRcdG9yaWdpblg6ICdlbmQnLFxyXG5cdFx0XHRcdG9yaWdpblk6ICd0b3AnLFxyXG5cdFx0XHRcdG92ZXJsYXlYOiAnZW5kJyxcclxuXHRcdFx0XHRvdmVybGF5WTogJ2JvdHRvbScsXHJcblx0XHRcdH0sXHJcblx0XHRdKTtcclxuXHRcdG92ZXJsYXlDb25maWcuc2Nyb2xsU3RyYXRlZ3kgPSB0aGlzLnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbigpO1xyXG5cdFx0b3ZlcmxheUNvbmZpZy5taW5XaWR0aCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xyXG5cdFx0b3ZlcmxheUNvbmZpZy5tYXhIZWlnaHQgPSAnMTAwdmgnO1xyXG5cdFx0b3ZlcmxheUNvbmZpZy5tYXhXaWR0aCA9ICcxMDB2dyc7XHJcblxyXG5cdFx0cmV0dXJuIG92ZXJsYXlDb25maWc7XHJcblx0fVxyXG59XHJcbiJdfQ==