imm-element-ui 1.0.7 → 1.0.8

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 (40) hide show
  1. package/esm2022/lib/form/form/form.component.mjs +9 -6
  2. package/esm2022/lib/form/form-field/field-control.mjs +5 -5
  3. package/esm2022/lib/form/form-field/field-utils.mjs +4 -5
  4. package/esm2022/lib/form/form-field/form-field.mjs +107 -107
  5. package/esm2022/lib/form/form-type/autocomplete.type.mjs +160 -151
  6. package/esm2022/lib/form/form-type/codemirror.type.mjs +5 -4
  7. package/esm2022/lib/form/form-type/datepicker.type.mjs +4 -4
  8. package/esm2022/lib/form/form-type/image.type.mjs +147 -146
  9. package/esm2022/lib/form/form-type/inputnumber.type.mjs +100 -91
  10. package/esm2022/lib/form/form-type/inputtext.type.mjs +28 -19
  11. package/esm2022/lib/form/form-type/multiselect.type.mjs +172 -163
  12. package/esm2022/lib/form/form-type/radio.type.mjs +81 -80
  13. package/esm2022/lib/form/form-type/rowselector.type.mjs +29 -28
  14. package/esm2022/lib/form/form-type/select.type.mjs +136 -136
  15. package/esm2022/lib/form/form-type/textarea.type.mjs +10 -1
  16. package/esm2022/lib/form/form-type/treeselect.type.mjs +4 -4
  17. package/esm2022/lib/form/form-type/upload.type.mjs +135 -134
  18. package/esm2022/lib/grid/actions/actions.component.mjs +3 -3
  19. package/esm2022/lib/page-form/page-form.component.mjs +12 -3
  20. package/esm2022/lib/share/utils.mjs +10 -1
  21. package/fesm2022/imm-element-ui.mjs +1141 -1071
  22. package/fesm2022/imm-element-ui.mjs.map +1 -1
  23. package/lib/form/form/form.component.d.ts +3 -1
  24. package/lib/form/form-field/field-control.d.ts +2 -2
  25. package/lib/form/form-field/field-utils.d.ts +1 -1
  26. package/lib/form/form-field/form-field.d.ts +2 -0
  27. package/lib/form/form-type/autocomplete.type.d.ts +1 -0
  28. package/lib/form/form-type/codemirror.type.d.ts +1 -1
  29. package/lib/form/form-type/datepicker.type.d.ts +1 -1
  30. package/lib/form/form-type/image.type.d.ts +1 -1
  31. package/lib/form/form-type/inputnumber.type.d.ts +1 -0
  32. package/lib/form/form-type/inputtext.type.d.ts +1 -0
  33. package/lib/form/form-type/multiselect.type.d.ts +1 -0
  34. package/lib/form/form-type/radio.type.d.ts +1 -1
  35. package/lib/form/form-type/rowselector.type.d.ts +1 -1
  36. package/lib/form/form-type/select.type.d.ts +1 -2
  37. package/lib/form/form-type/textarea.type.d.ts +1 -0
  38. package/lib/form/form-type/treeselect.type.d.ts +1 -1
  39. package/lib/form/form-type/upload.type.d.ts +1 -1
  40. package/package.json +1 -1
@@ -16,7 +16,7 @@ export class DatePickerComponent {
16
16
  effect(() => {
17
17
  if (this.field()) {
18
18
  this.props = this.field().datePickerProps;
19
- this.handleModelChange();
19
+ this.handleHookChange();
20
20
  this.handleDisabled();
21
21
  }
22
22
  });
@@ -39,8 +39,8 @@ export class DatePickerComponent {
39
39
  }, { allowSignalWrites: true });
40
40
  }
41
41
  ngOnInit() { }
42
- handleModelChange() {
43
- this.field()?.fieldControl?.modelChange.subscribe((value) => {
42
+ handleHookChange() {
43
+ this.field()?.fieldControl?.hookChange.subscribe((value) => {
44
44
  if (!value) {
45
45
  return;
46
46
  }
@@ -263,4 +263,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
263
263
  type: ViewChild,
264
264
  args: [DatePicker, { read: ElementRef, static: false }]
265
265
  }] } });
266
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci50eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW1tLWVsZW1lbnQtdWkvc3JjL2xpYi9mb3JtL2Zvcm0tdHlwZS9kYXRlcGlja2VyLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBR2hELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7QUFzSzNDLE1BQU0sT0FBTyxtQkFBbUI7SUFNL0IsWUFDUyxNQUFxQixFQUNyQixRQUFtQixFQUNuQixRQUFrQjtRQUZsQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQU4zQixVQUFLLEdBQUcsS0FBSyxFQUFhLENBQUM7UUFDM0IsVUFBSyxHQUFvQixFQUFFLENBQUM7UUFPM0IsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUM7Z0JBQ2xCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRyxDQUFDLGVBQWdCLENBQUM7Z0JBQzVDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2dCQUN6QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkIsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxDQUNMLEdBQUcsRUFBRTtZQUNKLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsbUJBQW1CLEVBQUUsQ0FB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S0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQztZQUM1QyxDQUFDO1lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxtREFBbUQsQ0FBQyxDQUFDO1FBQ3RFLENBQUM7SUFDRixDQUFDOytHQTNFVyxtQkFBbUI7bUdBQW5CLG1CQUFtQixrTUE3RnBCLENBQUMsUUFBUSxDQUFDLHNFQThGVixVQUFVLGdGQUNWLFVBQVUsMkJBQVUsVUFBVSw2QkE3Ri9COzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2lCQXdGTSxpc0xBekZOLFVBQVUsOHlDQUFFLG1CQUFtQjs7NEZBNEY3QixtQkFBbUI7a0JBaEcvQixTQUFTOytCQUNDLGlCQUFpQixjQUNmLElBQUksYUFDTCxDQUFDLFFBQVEsQ0FBQyxXQUNaLENBQUMsVUFBVSxFQUFFLG1CQUFtQixDQUFDLFlBQ2hDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2lCQXdGTTtpSUFJMEIsVUFBVTtzQkFBbkQsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUNvQixhQUFhO3NCQUF4RSxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQsIGVmZmVjdCwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEYXRlUGlja2VyIH0gZnJvbSAncHJpbWVuZy9kYXRlcGlja2VyJztcbmltcG9ydCB7IEZvcm1GaWVsZCwgRmllbGRQcm9wcywgQXR0cmlidXRlRXZlbnQgfSBmcm9tICcuLi9mb3JtLWZpZWxkL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgQWN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvYWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5leHBvcnQgaW50ZXJmYWNlIERhdGVQaWNrZXJQcm9wcyBleHRlbmRzIEZpZWxkUHJvcHMge1xuXHRmbHVpZD86IGJvb2xlYW47XG5cdGljb25BcmlhTGFiZWw/OiBzdHJpbmc7XG5cdGRhdGVGb3JtYXQ/OiBzdHJpbmc7XG5cdG11bHRpcGxlU2VwYXJhdG9yPzogc3RyaW5nO1xuXHRyYW5nZVNlcGFyYXRvcj86IHN0cmluZztcblx0aW5saW5lPzogYm9vbGVhbjtcblx0c2hvd090aGVyTW9udGhzPzogYm9vbGVhbjtcblx0c2VsZWN0T3RoZXJNb250aHM/OiBib29sZWFuO1xuXHRzaG93SWNvbj86IGJvb2xlYW47XG5cdGljb24/OiBzdHJpbmc7XG5cdGFwcGVuZFRvPzogYW55O1xuXHRyZWFkb25seUlucHV0PzogYm9vbGVhbjtcblx0c2hvcnRZZWFyQ3V0b2ZmPzogYW55O1xuXHRob3VyRm9ybWF0Pzogc3RyaW5nO1xuXHR0aW1lT25seT86IGJvb2xlYW47XG5cdHN0ZXBIb3VyPzogbnVtYmVyO1xuXHRzdGVwTWludXRlPzogbnVtYmVyO1xuXHRzdGVwU2Vjb25kPzogbnVtYmVyO1xuXHRzaG93T25Gb2N1cz86IGJvb2xlYW47XG5cdHNob3dXZWVrPzogYm9vbGVhbjtcblx0c3RhcnRXZWVrRnJvbUZpcnN0RGF5T2ZZZWFyPzogYm9vbGVhbjtcblx0c2hvd0NsZWFyPzogYm9vbGVhbjtcblx0ZGF0YVR5cGU/OiBzdHJpbmc7XG5cdHNlbGVjdGlvbk1vZGU/OiAncmFuZ2UnIHwgJ3NpbmdsZScgfCAnbXVsdGlwbGUnO1xuXHRtYXhEYXRlQ291bnQ/OiBudW1iZXI7XG5cdHNob3dCdXR0b25CYXI/OiBib29sZWFuO1xuXHR0b2RheUJ1dHRvblN0eWxlQ2xhc3M/OiBzdHJpbmc7XG5cdGNsZWFyQnV0dG9uU3R5bGVDbGFzcz86IHN0cmluZztcblx0YmFzZVpJbmRleD86IG51bWJlcjtcblx0cGFuZWxTdHlsZUNsYXNzPzogc3RyaW5nO1xuXHRwYW5lbFN0eWxlPzogYW55O1xuXHRrZWVwSW52YWxpZD86IGJvb2xlYW47XG5cdGhpZGVPbkRhdGVUaW1lU2VsZWN0PzogYm9vbGVhbjtcblx0dG91Y2hVST86IGJvb2xlYW47XG5cdHRpbWVTZXBhcmF0b3I/OiBzdHJpbmc7XG5cdGZvY3VzVHJhcD86IGJvb2xlYW47XG5cdHNob3dUcmFuc2l0aW9uT3B0aW9ucz86IHN0cmluZztcblx0aGlkZVRyYW5zaXRpb25PcHRpb25zPzogc3RyaW5nO1xuXHRtaW5EYXRlPzogRGF0ZTtcblx0bWF4RGF0ZT86IERhdGU7XG5cdGRpc2FibGVkRGF0ZXM/OiBEYXRlW107XG5cdGRpc2FibGVkRGF5cz86IG51bWJlcltdO1xuXHRzaG93VGltZT86IGJvb2xlYW47XG5cdHNob3dTZWNvbmRzPzogYm9vbGVhbjtcblx0cmVzcG9uc2l2ZU9wdGlvbnM/OiBhbnlbXTtcblx0bnVtYmVyT2ZNb250aHM/OiBudW1iZXI7XG5cdGZpcnN0RGF5T2ZXZWVrPzogbnVtYmVyO1xuXHR2aWV3PzogYW55O1xuXHRkZWZhdWx0RGF0ZT86IERhdGU7XG5cdHRhYmluZGV4PzogbnVtYmVyO1xuXHRhdXRvWkluZGV4PzogYm9vbGVhbjtcblxuXHRvbkhvb2tDaGFuZ2U/OiBBdHRyaWJ1dGVFdmVudDtcblx0b25JbnB1dD86IEF0dHJpYnV0ZUV2ZW50O1xuXHRvbkZvY3VzPzogQXR0cmlidXRlRXZlbnQ7XG5cdG9uQmx1cj86IEF0dHJpYnV0ZUV2ZW50O1xuXHRvbkNsb3NlPzogQXR0cmlidXRlRXZlbnQ7XG5cdG9uU2VsZWN0PzogQXR0cmlidXRlRXZlbnQ7XG5cdG9uQ2xlYXI/OiBBdHRyaWJ1dGVFdmVudDtcblx0b25Ub2RheUNsaWNrPzogQXR0cmlidXRlRXZlbnQ7XG5cdG9uQ2xlYXJDbGljaz86IEF0dHJpYnV0ZUV2ZW50O1xuXHRvbk1vbnRoQ2hhbmdlPzogQXR0cmlidXRlRXZlbnQ7XG5cdG9uWWVhckNoYW5nZT86IEF0dHJpYnV0ZUV2ZW50O1xuXHRvbkNsaWNrT3V0c2lkZT86IEF0dHJpYnV0ZUV2ZW50O1xuXHRvblNob3c/OiBBdHRyaWJ1dGVFdmVudDtcbn1cblxuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiAnZm9ybS1kYXRlcGlja2VyJyxcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0cHJvdmlkZXJzOiBbRGF0ZVBpcGVdLFxuXHRpbXBvcnRzOiBbRGF0ZVBpY2tlciwgUmVhY3RpdmVGb3Jtc01vZHVsZV0sXG5cdHRlbXBsYXRlOiBgPHAtZGF0ZXBpY2tlclxuXHRcdFtpZF09XCJmaWVsZCgpPy51dWlkXCJcblx0XHRbaW5wdXRJZF09XCJmaWVsZCgpPy51dWlkXCJcblx0XHRbdmFyaWFudF09XCJwcm9wcy52YXJpYW50ID8/ICdvdXRsaW5lZCdcIlxuXHRcdFtmbHVpZF09XCJwcm9wcy5mbHVpZFwiXG5cdFx0W3NpemVdPVwicHJvcHMuc2l6ZVwiXG5cdFx0W3N0eWxlQ2xhc3NdPVwicHJvcHMuc3R5bGVDbGFzc1wiXG5cdFx0W2lucHV0U3R5bGVdPVwicHJvcHMuaW5wdXRTdHlsZVwiXG5cdFx0W2lucHV0U3R5bGVDbGFzc109XCJwcm9wcy5pbnB1dFN0eWxlQ2xhc3NcIlxuXHRcdFtuYW1lXT1cInByb3BzLm5hbWVcIlxuXHRcdFtwbGFjZWhvbGRlcl09XCJwcm9wcy5wbGFjZWhvbGRlclwiXG5cdFx0W2FyaWFMYWJlbGxlZEJ5XT1cInByb3BzLmFyaWFMYWJlbGxlZEJ5XCJcblx0XHRbYXJpYUxhYmVsXT1cInByb3BzLmFyaWFMYWJlbFwiXG5cdFx0W2ljb25BcmlhTGFiZWxdPVwicHJvcHMuaWNvbkFyaWFMYWJlbFwiXG5cdFx0W2RhdGVGb3JtYXRdPVwicHJvcHMuZGF0ZUZvcm1hdCA/PyAneXktbW0tZGQnXCJcblx0XHRbbXVsdGlwbGVTZXBhcmF0b3JdPVwicHJvcHMubXVsdGlwbGVTZXBhcmF0b3IgPz8gJywnXCJcblx0XHRbcmFuZ2VTZXBhcmF0b3JdPVwicHJvcHMucmFuZ2VTZXBhcmF0b3IgPz8gJy0nXCJcblx0XHRbaW5saW5lXT1cInByb3BzLmlubGluZVwiXG5cdFx0W3Nob3dPdGhlck1vbnRoc109XCJwcm9wcy5zaG93T3RoZXJNb250aHMgPz8gdHJ1ZVwiXG5cdFx0W3NlbGVjdE90aGVyTW9udGhzXT1cInByb3BzLnNlbGVjdE90aGVyTW9udGhzXCJcblx0XHRbc2hvd0ljb25dPVwicHJvcHMuc2hvd0ljb25cIlxuXHRcdFtmbHVpZF09XCJwcm9wcy5mbHVpZCA/PyB0cnVlXCJcblx0XHRbaWNvbl09XCJwcm9wcy5pY29uXCJcblx0XHRbYXBwZW5kVG9dPVwicHJvcHMuYXBwZW5kVG8gPz8gJ2JvZHknXCJcblx0XHRbcmVhZG9ubHlJbnB1dF09XCJwcm9wcy5yZWFkb25seUlucHV0XCJcblx0XHRbc2hvcnRZZWFyQ3V0b2ZmXT1cInByb3BzLnNob3J0WWVhckN1dG9mZlwiXG5cdFx0W2hvdXJGb3JtYXRdPVwicHJvcHMuaG91ckZvcm1hdCA/PyAnMjQnXCJcblx0XHRbdGltZU9ubHldPVwicHJvcHMudGltZU9ubHlcIlxuXHRcdFtzdGVwSG91cl09XCJwcm9wcy5zdGVwSG91ciA/PyAxXCJcblx0XHRbc3RlcE1pbnV0ZV09XCJwcm9wcy5zdGVwTWludXRlID8/IDFcIlxuXHRcdFtzdGVwU2Vjb25kXT1cInByb3BzLnN0ZXBTZWNvbmQgPz8gMVwiXG5cdFx0W3Nob3dTZWNvbmRzXT1cInByb3BzLnNob3dTZWNvbmRzID8/ICEhcHJvcHMuc2hvd1RpbWVcIlxuXHRcdFtzaG93T25Gb2N1c109XCJwcm9wcy5zaG93T25Gb2N1cyA/PyB0cnVlXCJcblx0XHRbc2hvd1dlZWtdPVwicHJvcHMuc2hvd1dlZWtcIlxuXHRcdFtzdGFydFdlZWtGcm9tRmlyc3REYXlPZlllYXJdPVwiISFwcm9wcy5zdGFydFdlZWtGcm9tRmlyc3REYXlPZlllYXJcIlxuXHRcdFtzaG93Q2xlYXJdPVwicHJvcHMuc2hvd0NsZWFyXCJcblx0XHRbZGF0YVR5cGVdPVwicHJvcHMuZGF0YVR5cGUgPz8gJ3N0cmluZydcIlxuXHRcdFtzZWxlY3Rpb25Nb2RlXT1cInByb3BzLnNlbGVjdGlvbk1vZGUgPz8gJ3NpbmdsZSdcIlxuXHRcdFttYXhEYXRlQ291bnRdPVwicHJvcHMubWF4RGF0ZUNvdW50XCJcblx0XHRbc2hvd0J1dHRvbkJhcl09XCJwcm9wcy5zaG93QnV0dG9uQmFyXCJcblx0XHRbdG9kYXlCdXR0b25TdHlsZUNsYXNzXT1cInByb3BzLnRvZGF5QnV0dG9uU3R5bGVDbGFzc1wiXG5cdFx0W2NsZWFyQnV0dG9uU3R5bGVDbGFzc109XCJwcm9wcy5jbGVhckJ1dHRvblN0eWxlQ2xhc3NcIlxuXHRcdFthdXRvZm9jdXNdPVwicHJvcHMuYXV0b2ZvY3VzXCJcblx0XHRbYXV0b1pJbmRleF09XCJwcm9wcy5hdXRvWkluZGV4ID8/IHRydWVcIlxuXHRcdFtiYXNlWkluZGV4XT1cInByb3BzLmJhc2VaSW5kZXggPz8gMFwiXG5cdFx0W3BhbmVsU3R5bGVDbGFzc109XCJwcm9wcy5wYW5lbFN0eWxlQ2xhc3NcIlxuXHRcdFtwYW5lbFN0eWxlXT1cInByb3BzLnBhbmVsU3R5bGVcIlxuXHRcdFtrZWVwSW52YWxpZF09XCJwcm9wcy5rZWVwSW52YWxpZFwiXG5cdFx0W2hpZGVPbkRhdGVUaW1lU2VsZWN0XT1cInByb3BzLmhpZGVPbkRhdGVUaW1lU2VsZWN0ID8/IHRydWVcIlxuXHRcdFt0b3VjaFVJXT1cInByb3BzLnRvdWNoVUlcIlxuXHRcdFt0aW1lU2VwYXJhdG9yXT1cInByb3BzLnRpbWVTZXBhcmF0b3IgPz8gJzonXCJcblx0XHRbZm9jdXNUcmFwXT1cInByb3BzLmZvY3VzVHJhcCA/PyB0cnVlXCJcblx0XHRbc2hvd1RyYW5zaXRpb25PcHRpb25zXT1cInByb3BzLnNob3dUcmFuc2l0aW9uT3B0aW9ucyA/PyAnLjEycyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKSdcIlxuXHRcdFtoaWRlVHJhbnNpdGlvbk9wdGlvbnNdPVwicHJvcHMuaGlkZVRyYW5zaXRpb25PcHRpb25zID8/ICcuMXMgbGluZWFyJ1wiXG5cdFx0W3RhYmluZGV4XT1cInByb3BzLnRhYmluZGV4XCJcblx0XHRbbWluRGF0ZV09XCJwcm9wcy5taW5EYXRlXCJcblx0XHRbbWF4RGF0ZV09XCJwcm9wcy5tYXhEYXRlXCJcblx0XHRbZGlzYWJsZWREYXRlc109XCJwcm9wcy5kaXNhYmxlZERhdGVzID8/IFtdXCJcblx0XHRbZGlzYWJsZWREYXlzXT1cInByb3BzLmRpc2FibGVkRGF5cyA/PyBbXVwiXG5cdFx0W3Nob3dUaW1lXT1cIiEhcHJvcHMuc2hvd1RpbWVcIlxuXHRcdFtyZXNwb25zaXZlT3B0aW9uc109XCJwcm9wcy5yZXNwb25zaXZlT3B0aW9ucyA/PyBbXVwiXG5cdFx0W251bWJlck9mTW9udGhzXT1cInByb3BzLm51bWJlck9mTW9udGhzID8/IDFcIlxuXHRcdFtmaXJzdERheU9mV2Vla109XCJwcm9wcy5maXJzdERheU9mV2VlayA/PyA3XCJcblx0XHRbdmlld109XCJwcm9wcy52aWV3ID8/ICdkYXRlJ1wiXG5cdFx0W2RlZmF1bHREYXRlXT1cInByb3BzLmRlZmF1bHREYXRlIVwiXG5cdFx0KG9uSW5wdXQpPVwicHJvcHMub25JbnB1dD8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcblx0XHQob25Gb2N1cyk9XCJwcm9wcy5vbkZvY3VzPy4oZmllbGQoKSEsICRldmVudClcIlxuXHRcdChvbkJsdXIpPVwicHJvcHMub25CbHVyPy4oZmllbGQoKSEsICRldmVudClcIlxuXHRcdChvbkNsb3NlKT1cInByb3BzLm9uQ2xvc2U/LihmaWVsZCgpISwgJGV2ZW50KVwiXG5cdFx0KG9uU2VsZWN0KT1cInByb3BzLm9uU2VsZWN0Py4oZmllbGQoKSEsICRldmVudClcIlxuXHRcdChvbkNsZWFyKT1cInByb3BzLm9uQ2xlYXI/LihmaWVsZCgpISwgJGV2ZW50KVwiXG5cdFx0KG9uVG9kYXlDbGljayk9XCJwcm9wcy5vblRvZGF5Q2xpY2s/LihmaWVsZCgpISwgJGV2ZW50KVwiXG5cdFx0KG9uQ2xlYXJDbGljayk9XCJwcm9wcy5vbkNsZWFyQ2xpY2s/LihmaWVsZCgpISwgJGV2ZW50KVwiXG5cdFx0KG9uTW9udGhDaGFuZ2UpPVwicHJvcHMub25Nb250aENoYW5nZT8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcblx0XHQob25ZZWFyQ2hhbmdlKT1cInByb3BzLm9uWWVhckNoYW5nZT8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcblx0XHQob25DbGlja091dHNpZGUpPVwicHJvcHMub25DbGlja091dHNpZGU/LihmaWVsZCgpISwgJGV2ZW50KVwiXG5cdFx0KG9uU2hvdyk9XCJwcm9wcy5vblNob3c/LihmaWVsZCgpISwgJGV2ZW50KVwiXG5cdFx0W2NsYXNzXT1cInByb3BzLmNsYXNzXCJcblx0XHRbZm9ybUNvbnRyb2xdPVwiZmllbGQoKSEuZmllbGRDb250cm9sIVwiPlxuXHRcdDxuZy10ZW1wbGF0ZSAjZm9vdGVyPlxuXHRcdFx0QGlmICghIXByb3BzLnNob3dUaW1lICYmICFwcm9wcy50aW1lT25seSkge1xuXHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdy1yZXZlcnNlIHRleHQtWzEycHhdIHRleHQtW3ZhcigtLXAtcHJpbWFyeS1jb2xvcildIGN1cnNvci1wb2ludGVyXCI+XG5cdFx0XHRcdFx0PGlcblx0XHRcdFx0XHRcdGNsYXNzPVwicGkgcGktcmVwbGF5XCJcblx0XHRcdFx0XHRcdChjbGljayk9XCJyZXNldFRpbWUoJGV2ZW50KVwiPjwvaT5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHR9XG5cdFx0PC9uZy10ZW1wbGF0ZT5cblx0PC9wLWRhdGVwaWNrZXI+YCxcblx0c3R5bGVVcmw6ICcuLi8uLi9zdHlsZXMvc3R5bGVzLnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBEYXRlUGlja2VyQ29tcG9uZW50IHtcblx0QFZpZXdDaGlsZChEYXRlUGlja2VyLCB7IHN0YXRpYzogZmFsc2UgfSkgZGF0ZVBpY2tlciE6IERhdGVQaWNrZXI7XG5cdEBWaWV3Q2hpbGQoRGF0ZVBpY2tlciwgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IGZhbHNlIH0pIGRhdGVQaWNrZXJSZWYhOiBFbGVtZW50UmVmO1xuXHRmaWVsZCA9IGlucHV0PEZvcm1GaWVsZD4oKTtcblx0cHJvcHM6IERhdGVQaWNrZXJQcm9wcyA9IHt9O1xuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdHByaXZhdGUgYWN0aW9uOiBBY3Rpb25TZXJ2aWNlLFxuXHRcdHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcblx0XHRwcml2YXRlIGRhdGVQaXBlOiBEYXRlUGlwZSxcblx0KSB7XG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdGlmICh0aGlzLmZpZWxkKCkpIHtcblx0XHRcdFx0dGhpcy5wcm9wcyA9IHRoaXMuZmllbGQoKSEuZGF0ZVBpY2tlclByb3BzITtcblx0XHRcdFx0dGhpcy5oYW5kbGVNb2RlbENoYW5nZSgpO1xuXHRcdFx0XHR0aGlzLmhhbmRsZURpc2FibGVkKCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0ZWZmZWN0KFxuXHRcdFx0KCkgPT4ge1xuXHRcdFx0XHRjb25zdCBsYWJlbEFjdGlvbiA9IHRoaXMuYWN0aW9uLmdldEZpZWxkTGFiZWxBY3Rpb24oKTtcblx0XHRcdFx0aWYgKCFsYWJlbEFjdGlvbiB8fCBsYWJlbEFjdGlvbj8ua2V5ICE9IHRoaXMuZmllbGQoKT8udXVpZCkge1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAobGFiZWxBY3Rpb24udHlwZSA9PSAnbW91c2VlbnRlcicpIHtcblx0XHRcdFx0XHR0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZGF0ZVBpY2tlclJlZi5uYXRpdmVFbGVtZW50LCAnbmctaG92ZXJlZCcpO1xuXHRcdFx0XHR9IGVsc2UgaWYgKGxhYmVsQWN0aW9uLnR5cGUgPT0gJ21vdXNlbGVhdmUnKSB7XG5cdFx0XHRcdFx0dGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmRhdGVQaWNrZXJSZWYubmF0aXZlRWxlbWVudCwgJ25nLWhvdmVyZWQnKTtcblx0XHRcdFx0fSBlbHNlIGlmIChsYWJlbEFjdGlvbi50eXBlID09ICdjbGljaycpIHtcblx0XHRcdFx0XHR0aGlzLmRhdGVQaWNrZXIub3ZlcmxheVZpc2libGUgPSB0cnVlO1xuXHRcdFx0XHRcdHRoaXMuZGF0ZVBpY2tlci5vblNob3cuZW1pdChmYWxzZSk7XG5cdFx0XHRcdFx0dGhpcy5kYXRlUGlja2VyLmNkLm1hcmtGb3JDaGVjaygpO1xuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0eyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9LFxuXHRcdCk7XG5cdH1cblxuXHRuZ09uSW5pdCgpOiB2b2lkIHt9XG5cblx0aGFuZGxlTW9kZWxDaGFuZ2UoKSB7XG5cdFx0dGhpcy5maWVsZCgpPy5maWVsZENvbnRyb2w/Lm1vZGVsQ2hhbmdlLnN1YnNjcmliZSgodmFsdWUpID0+IHtcblx0XHRcdGlmICghdmFsdWUpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy5wcm9wcy5vbkhvb2tDaGFuZ2U/Lih0aGlzLmZpZWxkKCkhLCB7IHZhbHVlIH0pO1xuXHRcdH0pO1xuXHR9XG5cblx0aGFuZGxlRGlzYWJsZWQoKSB7XG5cdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRpZiAodGhpcy5wcm9wcz8uZGlzYWJsZWQpIHtcblx0XHRcdFx0dGhpcy5maWVsZCgpIS5maWVsZENvbnRyb2whLmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0cmVzZXRUaW1lKGV2ZW50OiBhbnkpIHtcblx0XHRpZiAoIXRoaXMuZmllbGQoKSEuZmllbGRDb250cm9sIS52YWx1ZSkgcmV0dXJuO1xuXHRcdGNvbnN0IGN1cnJlbnREYXRlID0gdGhpcy5mb3JtYXRUb01pZG5pZ2h0KHRoaXMuZmllbGQoKSEuZmllbGRDb250cm9sIS52YWx1ZSk7XG5cdFx0dGhpcy5maWVsZCgpPy5maWVsZENvbnRyb2w/LnNldFZhbHVlKGN1cnJlbnREYXRlLCB7IGVtaXRFdmVudDogdHJ1ZSB9KTtcblx0fVxuXG5cdGZvcm1hdFRvTWlkbmlnaHQoZGF0ZVN0cjogc3RyaW5nKTogc3RyaW5nIHtcblx0XHRpZiAodGhpcy5wcm9wcz8uc2hvd1NlY29uZHMgPT09IGZhbHNlKSB7XG5cdFx0XHRpZiAoL15cXGR7NH0tXFxkezJ9LVxcZHsyfSBcXGR7Mn06XFxkezJ9JC8udGVzdChkYXRlU3RyKSkge1xuXHRcdFx0XHRyZXR1cm4gZGF0ZVN0ci5zcGxpdCgnICcpWzBdICsgJyAwMDowMCc7XG5cdFx0XHR9XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgZGF0ZSBmb3JtYXQuIEV4cGVjdGVkIHl5eXktTU0tZGQgaGg6bW0nKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0aWYgKC9eXFxkezR9LVxcZHsyfS1cXGR7Mn0gXFxkezJ9OlxcZHsyfTpcXGR7Mn0kLy50ZXN0KGRhdGVTdHIpKSB7XG5cdFx0XHRcdHJldHVybiBkYXRlU3RyLnNwbGl0KCcgJylbMF0gKyAnIDAwOjAwOjAwJztcblx0XHRcdH1cblx0XHRcdHRocm93IG5ldyBFcnJvcignSW52YWxpZCBkYXRlIGZvcm1hdC4gRXhwZWN0ZWQgeXl5eS1NTS1kZCBoaDptbTpzcycpO1xuXHRcdH1cblx0fVxufVxuIl19
266
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci50eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW1tLWVsZW1lbnQtdWkvc3JjL2xpYi9mb3JtL2Zvcm0tdHlwZS9kYXRlcGlja2VyLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBR2hELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7QUFzSzNDLE1BQU0sT0FBTyxtQkFBbUI7SUFNL0IsWUFDUyxNQUFxQixFQUNyQixRQUFtQixFQUNuQixRQUFrQjtRQUZsQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQU4zQixVQUFLLEdBQUcsS0FBSyxFQUFhLENBQUM7UUFDM0IsVUFBSyxHQUFvQixFQUFFLENBQUM7UUFPM0IsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUM7Z0JBQ2xCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRyxDQUFDLGVBQWdCLENBQUM7Z0JBQzVDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2dCQUN4QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdkIsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxDQUNMLEdBQUcsRUFBRTtZQUNKLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsbUJBQW1CLEVBQUUsQ0FB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QUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsV0FBVyxDQUFDO1lBQzVDLENBQUM7WUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLG1EQUFtRCxDQUFDLENBQUM7UUFDdEUsQ0FBQztJQUNGLENBQUM7K0dBM0VXLG1CQUFtQjttR0FBbkIsbUJBQW1CLGtNQTdGcEIsQ0FBQyxRQUFRLENBQUMsc0VBOEZWLFVBQVUsZ0ZBQ1YsVUFBVSwyQkFBVSxVQUFVLDZCQTdGL0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7aUJBd0ZNLGlzTEF6Rk4sVUFBVSw4eUNBQUUsbUJBQW1COzs0RkE0RjdCLG1CQUFtQjtrQkFoRy9CLFNBQVM7K0JBQ0MsaUJBQWlCLGNBQ2YsSUFBSSxhQUNMLENBQUMsUUFBUSxDQUFDLFdBQ1osQ0FBQyxVQUFVLEVBQUUsbUJBQW1CLENBQUMsWUFDaEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7aUJBd0ZNO2lJQUkwQixVQUFVO3NCQUFuRCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ29CLGFBQWE7c0JBQXhFLFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbnB1dCwgZWZmZWN0LCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IERhdGVQaWNrZXIgfSBmcm9tICdwcmltZW5nL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgRm9ybUZpZWxkLCBGaWVsZFByb3BzLCBBdHRyaWJ1dGVFdmVudCB9IGZyb20gJy4uL2Zvcm0tZmllbGQvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBBY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS9hY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0ZVBpY2tlclByb3BzIGV4dGVuZHMgRmllbGRQcm9wcyB7XG5cdGZsdWlkPzogYm9vbGVhbjtcblx0aWNvbkFyaWFMYWJlbD86IHN0cmluZztcblx0ZGF0ZUZvcm1hdD86IHN0cmluZztcblx0bXVsdGlwbGVTZXBhcmF0b3I/OiBzdHJpbmc7XG5cdHJhbmdlU2VwYXJhdG9yPzogc3RyaW5nO1xuXHRpbmxpbmU/OiBib29sZWFuO1xuXHRzaG93T3RoZXJNb250aHM/OiBib29sZWFuO1xuXHRzZWxlY3RPdGhlck1vbnRocz86IGJvb2xlYW47XG5cdHNob3dJY29uPzogYm9vbGVhbjtcblx0aWNvbj86IHN0cmluZztcblx0YXBwZW5kVG8/OiBhbnk7XG5cdHJlYWRvbmx5SW5wdXQ/OiBib29sZWFuO1xuXHRzaG9ydFllYXJDdXRvZmY/OiBhbnk7XG5cdGhvdXJGb3JtYXQ/OiBzdHJpbmc7XG5cdHRpbWVPbmx5PzogYm9vbGVhbjtcblx0c3RlcEhvdXI/OiBudW1iZXI7XG5cdHN0ZXBNaW51dGU/OiBudW1iZXI7XG5cdHN0ZXBTZWNvbmQ/OiBudW1iZXI7XG5cdHNob3dPbkZvY3VzPzogYm9vbGVhbjtcblx0c2hvd1dlZWs/OiBib29sZWFuO1xuXHRzdGFydFdlZWtGcm9tRmlyc3REYXlPZlllYXI/OiBib29sZWFuO1xuXHRzaG93Q2xlYXI/OiBib29sZWFuO1xuXHRkYXRhVHlwZT86IHN0cmluZztcblx0c2VsZWN0aW9uTW9kZT86ICdyYW5nZScgfCAnc2luZ2xlJyB8ICdtdWx0aXBsZSc7XG5cdG1heERhdGVDb3VudD86IG51bWJlcjtcblx0c2hvd0J1dHRvbkJhcj86IGJvb2xlYW47XG5cdHRvZGF5QnV0dG9uU3R5bGVDbGFzcz86IHN0cmluZztcblx0Y2xlYXJCdXR0b25TdHlsZUNsYXNzPzogc3RyaW5nO1xuXHRiYXNlWkluZGV4PzogbnVtYmVyO1xuXHRwYW5lbFN0eWxlQ2xhc3M/OiBzdHJpbmc7XG5cdHBhbmVsU3R5bGU/OiBhbnk7XG5cdGtlZXBJbnZhbGlkPzogYm9vbGVhbjtcblx0aGlkZU9uRGF0ZVRpbWVTZWxlY3Q/OiBib29sZWFuO1xuXHR0b3VjaFVJPzogYm9vbGVhbjtcblx0dGltZVNlcGFyYXRvcj86IHN0cmluZztcblx0Zm9jdXNUcmFwPzogYm9vbGVhbjtcblx0c2hvd1RyYW5zaXRpb25PcHRpb25zPzogc3RyaW5nO1xuXHRoaWRlVHJhbnNpdGlvbk9wdGlvbnM/OiBzdHJpbmc7XG5cdG1pbkRhdGU/OiBEYXRlO1xuXHRtYXhEYXRlPzogRGF0ZTtcblx0ZGlzYWJsZWREYXRlcz86IERhdGVbXTtcblx0ZGlzYWJsZWREYXlzPzogbnVtYmVyW107XG5cdHNob3dUaW1lPzogYm9vbGVhbjtcblx0c2hvd1NlY29uZHM/OiBib29sZWFuO1xuXHRyZXNwb25zaXZlT3B0aW9ucz86IGFueVtdO1xuXHRudW1iZXJPZk1vbnRocz86IG51bWJlcjtcblx0Zmlyc3REYXlPZldlZWs/OiBudW1iZXI7XG5cdHZpZXc/OiBhbnk7XG5cdGRlZmF1bHREYXRlPzogRGF0ZTtcblx0dGFiaW5kZXg/OiBudW1iZXI7XG5cdGF1dG9aSW5kZXg/OiBib29sZWFuO1xuXG5cdG9uSG9va0NoYW5nZT86IEF0dHJpYnV0ZUV2ZW50O1xuXHRvbklucHV0PzogQXR0cmlidXRlRXZlbnQ7XG5cdG9uRm9jdXM/OiBBdHRyaWJ1dGVFdmVudDtcblx0b25CbHVyPzogQXR0cmlidXRlRXZlbnQ7XG5cdG9uQ2xvc2U/OiBBdHRyaWJ1dGVFdmVudDtcblx0b25TZWxlY3Q/OiBBdHRyaWJ1dGVFdmVudDtcblx0b25DbGVhcj86IEF0dHJpYnV0ZUV2ZW50O1xuXHRvblRvZGF5Q2xpY2s/OiBBdHRyaWJ1dGVFdmVudDtcblx0b25DbGVhckNsaWNrPzogQXR0cmlidXRlRXZlbnQ7XG5cdG9uTW9udGhDaGFuZ2U/OiBBdHRyaWJ1dGVFdmVudDtcblx0b25ZZWFyQ2hhbmdlPzogQXR0cmlidXRlRXZlbnQ7XG5cdG9uQ2xpY2tPdXRzaWRlPzogQXR0cmlidXRlRXZlbnQ7XG5cdG9uU2hvdz86IEF0dHJpYnV0ZUV2ZW50O1xufVxuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdmb3JtLWRhdGVwaWNrZXInLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRwcm92aWRlcnM6IFtEYXRlUGlwZV0sXG5cdGltcG9ydHM6IFtEYXRlUGlja2VyLCBSZWFjdGl2ZUZvcm1zTW9kdWxlXSxcblx0dGVtcGxhdGU6IGA8cC1kYXRlcGlja2VyXG5cdFx0W2lkXT1cImZpZWxkKCk/LnV1aWRcIlxuXHRcdFtpbnB1dElkXT1cImZpZWxkKCk/LnV1aWRcIlxuXHRcdFt2YXJpYW50XT1cInByb3BzLnZhcmlhbnQgPz8gJ291dGxpbmVkJ1wiXG5cdFx0W2ZsdWlkXT1cInByb3BzLmZsdWlkXCJcblx0XHRbc2l6ZV09XCJwcm9wcy5zaXplXCJcblx0XHRbc3R5bGVDbGFzc109XCJwcm9wcy5zdHlsZUNsYXNzXCJcblx0XHRbaW5wdXRTdHlsZV09XCJwcm9wcy5pbnB1dFN0eWxlXCJcblx0XHRbaW5wdXRTdHlsZUNsYXNzXT1cInByb3BzLmlucHV0U3R5bGVDbGFzc1wiXG5cdFx0W25hbWVdPVwicHJvcHMubmFtZVwiXG5cdFx0W3BsYWNlaG9sZGVyXT1cInByb3BzLnBsYWNlaG9sZGVyXCJcblx0XHRbYXJpYUxhYmVsbGVkQnldPVwicHJvcHMuYXJpYUxhYmVsbGVkQnlcIlxuXHRcdFthcmlhTGFiZWxdPVwicHJvcHMuYXJpYUxhYmVsXCJcblx0XHRbaWNvbkFyaWFMYWJlbF09XCJwcm9wcy5pY29uQXJpYUxhYmVsXCJcblx0XHRbZGF0ZUZvcm1hdF09XCJwcm9wcy5kYXRlRm9ybWF0ID8/ICd5eS1tbS1kZCdcIlxuXHRcdFttdWx0aXBsZVNlcGFyYXRvcl09XCJwcm9wcy5tdWx0aXBsZVNlcGFyYXRvciA/PyAnLCdcIlxuXHRcdFtyYW5nZVNlcGFyYXRvcl09XCJwcm9wcy5yYW5nZVNlcGFyYXRvciA/PyAnLSdcIlxuXHRcdFtpbmxpbmVdPVwicHJvcHMuaW5saW5lXCJcblx0XHRbc2hvd090aGVyTW9udGhzXT1cInByb3BzLnNob3dPdGhlck1vbnRocyA/PyB0cnVlXCJcblx0XHRbc2VsZWN0T3RoZXJNb250aHNdPVwicHJvcHMuc2VsZWN0T3RoZXJNb250aHNcIlxuXHRcdFtzaG93SWNvbl09XCJwcm9wcy5zaG93SWNvblwiXG5cdFx0W2ZsdWlkXT1cInByb3BzLmZsdWlkID8/IHRydWVcIlxuXHRcdFtpY29uXT1cInByb3BzLmljb25cIlxuXHRcdFthcHBlbmRUb109XCJwcm9wcy5hcHBlbmRUbyA/PyAnYm9keSdcIlxuXHRcdFtyZWFkb25seUlucHV0XT1cInByb3BzLnJlYWRvbmx5SW5wdXRcIlxuXHRcdFtzaG9ydFllYXJDdXRvZmZdPVwicHJvcHMuc2hvcnRZZWFyQ3V0b2ZmXCJcblx0XHRbaG91ckZvcm1hdF09XCJwcm9wcy5ob3VyRm9ybWF0ID8/ICcyNCdcIlxuXHRcdFt0aW1lT25seV09XCJwcm9wcy50aW1lT25seVwiXG5cdFx0W3N0ZXBIb3VyXT1cInByb3BzLnN0ZXBIb3VyID8/IDFcIlxuXHRcdFtzdGVwTWludXRlXT1cInByb3BzLnN0ZXBNaW51dGUgPz8gMVwiXG5cdFx0W3N0ZXBTZWNvbmRdPVwicHJvcHMuc3RlcFNlY29uZCA/PyAxXCJcblx0XHRbc2hvd1NlY29uZHNdPVwicHJvcHMuc2hvd1NlY29uZHMgPz8gISFwcm9wcy5zaG93VGltZVwiXG5cdFx0W3Nob3dPbkZvY3VzXT1cInByb3BzLnNob3dPbkZvY3VzID8/IHRydWVcIlxuXHRcdFtzaG93V2Vla109XCJwcm9wcy5zaG93V2Vla1wiXG5cdFx0W3N0YXJ0V2Vla0Zyb21GaXJzdERheU9mWWVhcl09XCIhIXByb3BzLnN0YXJ0V2Vla0Zyb21GaXJzdERheU9mWWVhclwiXG5cdFx0W3Nob3dDbGVhcl09XCJwcm9wcy5zaG93Q2xlYXJcIlxuXHRcdFtkYXRhVHlwZV09XCJwcm9wcy5kYXRhVHlwZSA/PyAnc3RyaW5nJ1wiXG5cdFx0W3NlbGVjdGlvbk1vZGVdPVwicHJvcHMuc2VsZWN0aW9uTW9kZSA/PyAnc2luZ2xlJ1wiXG5cdFx0W21heERhdGVDb3VudF09XCJwcm9wcy5tYXhEYXRlQ291bnRcIlxuXHRcdFtzaG93QnV0dG9uQmFyXT1cInByb3BzLnNob3dCdXR0b25CYXJcIlxuXHRcdFt0b2RheUJ1dHRvblN0eWxlQ2xhc3NdPVwicHJvcHMudG9kYXlCdXR0b25TdHlsZUNsYXNzXCJcblx0XHRbY2xlYXJCdXR0b25TdHlsZUNsYXNzXT1cInByb3BzLmNsZWFyQnV0dG9uU3R5bGVDbGFzc1wiXG5cdFx0W2F1dG9mb2N1c109XCJwcm9wcy5hdXRvZm9jdXNcIlxuXHRcdFthdXRvWkluZGV4XT1cInByb3BzLmF1dG9aSW5kZXggPz8gdHJ1ZVwiXG5cdFx0W2Jhc2VaSW5kZXhdPVwicHJvcHMuYmFzZVpJbmRleCA/PyAwXCJcblx0XHRbcGFuZWxTdHlsZUNsYXNzXT1cInByb3BzLnBhbmVsU3R5bGVDbGFzc1wiXG5cdFx0W3BhbmVsU3R5bGVdPVwicHJvcHMucGFuZWxTdHlsZVwiXG5cdFx0W2tlZXBJbnZhbGlkXT1cInByb3BzLmtlZXBJbnZhbGlkXCJcblx0XHRbaGlkZU9uRGF0ZVRpbWVTZWxlY3RdPVwicHJvcHMuaGlkZU9uRGF0ZVRpbWVTZWxlY3QgPz8gdHJ1ZVwiXG5cdFx0W3RvdWNoVUldPVwicHJvcHMudG91Y2hVSVwiXG5cdFx0W3RpbWVTZXBhcmF0b3JdPVwicHJvcHMudGltZVNlcGFyYXRvciA/PyAnOidcIlxuXHRcdFtmb2N1c1RyYXBdPVwicHJvcHMuZm9jdXNUcmFwID8/IHRydWVcIlxuXHRcdFtzaG93VHJhbnNpdGlvbk9wdGlvbnNdPVwicHJvcHMuc2hvd1RyYW5zaXRpb25PcHRpb25zID8/ICcuMTJzIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpJ1wiXG5cdFx0W2hpZGVUcmFuc2l0aW9uT3B0aW9uc109XCJwcm9wcy5oaWRlVHJhbnNpdGlvbk9wdGlvbnMgPz8gJy4xcyBsaW5lYXInXCJcblx0XHRbdGFiaW5kZXhdPVwicHJvcHMudGFiaW5kZXhcIlxuXHRcdFttaW5EYXRlXT1cInByb3BzLm1pbkRhdGVcIlxuXHRcdFttYXhEYXRlXT1cInByb3BzLm1heERhdGVcIlxuXHRcdFtkaXNhYmxlZERhdGVzXT1cInByb3BzLmRpc2FibGVkRGF0ZXMgPz8gW11cIlxuXHRcdFtkaXNhYmxlZERheXNdPVwicHJvcHMuZGlzYWJsZWREYXlzID8/IFtdXCJcblx0XHRbc2hvd1RpbWVdPVwiISFwcm9wcy5zaG93VGltZVwiXG5cdFx0W3Jlc3BvbnNpdmVPcHRpb25zXT1cInByb3BzLnJlc3BvbnNpdmVPcHRpb25zID8/IFtdXCJcblx0XHRbbnVtYmVyT2ZNb250aHNdPVwicHJvcHMubnVtYmVyT2ZNb250aHMgPz8gMVwiXG5cdFx0W2ZpcnN0RGF5T2ZXZWVrXT1cInByb3BzLmZpcnN0RGF5T2ZXZWVrID8/IDdcIlxuXHRcdFt2aWV3XT1cInByb3BzLnZpZXcgPz8gJ2RhdGUnXCJcblx0XHRbZGVmYXVsdERhdGVdPVwicHJvcHMuZGVmYXVsdERhdGUhXCJcblx0XHQob25JbnB1dCk9XCJwcm9wcy5vbklucHV0Py4oZmllbGQoKSEsICRldmVudClcIlxuXHRcdChvbkZvY3VzKT1cInByb3BzLm9uRm9jdXM/LihmaWVsZCgpISwgJGV2ZW50KVwiXG5cdFx0KG9uQmx1cik9XCJwcm9wcy5vbkJsdXI/LihmaWVsZCgpISwgJGV2ZW50KVwiXG5cdFx0KG9uQ2xvc2UpPVwicHJvcHMub25DbG9zZT8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcblx0XHQob25TZWxlY3QpPVwicHJvcHMub25TZWxlY3Q/LihmaWVsZCgpISwgJGV2ZW50KVwiXG5cdFx0KG9uQ2xlYXIpPVwicHJvcHMub25DbGVhcj8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcblx0XHQob25Ub2RheUNsaWNrKT1cInByb3BzLm9uVG9kYXlDbGljaz8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcblx0XHQob25DbGVhckNsaWNrKT1cInByb3BzLm9uQ2xlYXJDbGljaz8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcblx0XHQob25Nb250aENoYW5nZSk9XCJwcm9wcy5vbk1vbnRoQ2hhbmdlPy4oZmllbGQoKSEsICRldmVudClcIlxuXHRcdChvblllYXJDaGFuZ2UpPVwicHJvcHMub25ZZWFyQ2hhbmdlPy4oZmllbGQoKSEsICRldmVudClcIlxuXHRcdChvbkNsaWNrT3V0c2lkZSk9XCJwcm9wcy5vbkNsaWNrT3V0c2lkZT8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcblx0XHQob25TaG93KT1cInByb3BzLm9uU2hvdz8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcblx0XHRbY2xhc3NdPVwicHJvcHMuY2xhc3NcIlxuXHRcdFtmb3JtQ29udHJvbF09XCJmaWVsZCgpIS5maWVsZENvbnRyb2whXCI+XG5cdFx0PG5nLXRlbXBsYXRlICNmb290ZXI+XG5cdFx0XHRAaWYgKCEhcHJvcHMuc2hvd1RpbWUgJiYgIXByb3BzLnRpbWVPbmx5KSB7XG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93LXJldmVyc2UgdGV4dC1bMTJweF0gdGV4dC1bdmFyKC0tcC1wcmltYXJ5LWNvbG9yKV0gY3Vyc29yLXBvaW50ZXJcIj5cblx0XHRcdFx0XHQ8aVxuXHRcdFx0XHRcdFx0Y2xhc3M9XCJwaSBwaS1yZXBsYXlcIlxuXHRcdFx0XHRcdFx0KGNsaWNrKT1cInJlc2V0VGltZSgkZXZlbnQpXCI+PC9pPlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdH1cblx0XHQ8L25nLXRlbXBsYXRlPlxuXHQ8L3AtZGF0ZXBpY2tlcj5gLFxuXHRzdHlsZVVybDogJy4uLy4uL3N0eWxlcy9zdHlsZXMuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIERhdGVQaWNrZXJDb21wb25lbnQge1xuXHRAVmlld0NoaWxkKERhdGVQaWNrZXIsIHsgc3RhdGljOiBmYWxzZSB9KSBkYXRlUGlja2VyITogRGF0ZVBpY2tlcjtcblx0QFZpZXdDaGlsZChEYXRlUGlja2VyLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogZmFsc2UgfSkgZGF0ZVBpY2tlclJlZiE6IEVsZW1lbnRSZWY7XG5cdGZpZWxkID0gaW5wdXQ8Rm9ybUZpZWxkPigpO1xuXHRwcm9wczogRGF0ZVBpY2tlclByb3BzID0ge307XG5cblx0Y29uc3RydWN0b3IoXG5cdFx0cHJpdmF0ZSBhY3Rpb246IEFjdGlvblNlcnZpY2UsXG5cdFx0cHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuXHRcdHByaXZhdGUgZGF0ZVBpcGU6IERhdGVQaXBlLFxuXHQpIHtcblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0aWYgKHRoaXMuZmllbGQoKSkge1xuXHRcdFx0XHR0aGlzLnByb3BzID0gdGhpcy5maWVsZCgpIS5kYXRlUGlja2VyUHJvcHMhO1xuXHRcdFx0XHR0aGlzLmhhbmRsZUhvb2tDaGFuZ2UoKTtcblx0XHRcdFx0dGhpcy5oYW5kbGVEaXNhYmxlZCgpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHRcdGVmZmVjdChcblx0XHRcdCgpID0+IHtcblx0XHRcdFx0Y29uc3QgbGFiZWxBY3Rpb24gPSB0aGlzLmFjdGlvbi5nZXRGaWVsZExhYmVsQWN0aW9uKCk7XG5cdFx0XHRcdGlmICghbGFiZWxBY3Rpb24gfHwgbGFiZWxBY3Rpb24/LmtleSAhPSB0aGlzLmZpZWxkKCk/LnV1aWQpIHtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKGxhYmVsQWN0aW9uLnR5cGUgPT0gJ21vdXNlZW50ZXInKSB7XG5cdFx0XHRcdFx0dGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmRhdGVQaWNrZXJSZWYubmF0aXZlRWxlbWVudCwgJ25nLWhvdmVyZWQnKTtcblx0XHRcdFx0fSBlbHNlIGlmIChsYWJlbEFjdGlvbi50eXBlID09ICdtb3VzZWxlYXZlJykge1xuXHRcdFx0XHRcdHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5kYXRlUGlja2VyUmVmLm5hdGl2ZUVsZW1lbnQsICduZy1ob3ZlcmVkJyk7XG5cdFx0XHRcdH0gZWxzZSBpZiAobGFiZWxBY3Rpb24udHlwZSA9PSAnY2xpY2snKSB7XG5cdFx0XHRcdFx0dGhpcy5kYXRlUGlja2VyLm92ZXJsYXlWaXNpYmxlID0gdHJ1ZTtcblx0XHRcdFx0XHR0aGlzLmRhdGVQaWNrZXIub25TaG93LmVtaXQoZmFsc2UpO1xuXHRcdFx0XHRcdHRoaXMuZGF0ZVBpY2tlci5jZC5tYXJrRm9yQ2hlY2soKTtcblx0XHRcdFx0fVxuXHRcdFx0fSxcblx0XHRcdHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSxcblx0XHQpO1xuXHR9XG5cblx0bmdPbkluaXQoKTogdm9pZCB7fVxuXG5cdGhhbmRsZUhvb2tDaGFuZ2UoKSB7XG5cdFx0dGhpcy5maWVsZCgpPy5maWVsZENvbnRyb2w/Lmhvb2tDaGFuZ2Uuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0aWYgKCF2YWx1ZSkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHR0aGlzLnByb3BzLm9uSG9va0NoYW5nZT8uKHRoaXMuZmllbGQoKSEsIHsgdmFsdWUgfSk7XG5cdFx0fSk7XG5cdH1cblxuXHRoYW5kbGVEaXNhYmxlZCgpIHtcblx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdGlmICh0aGlzLnByb3BzPy5kaXNhYmxlZCkge1xuXHRcdFx0XHR0aGlzLmZpZWxkKCkhLmZpZWxkQ29udHJvbCEuZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRyZXNldFRpbWUoZXZlbnQ6IGFueSkge1xuXHRcdGlmICghdGhpcy5maWVsZCgpIS5maWVsZENvbnRyb2whLnZhbHVlKSByZXR1cm47XG5cdFx0Y29uc3QgY3VycmVudERhdGUgPSB0aGlzLmZvcm1hdFRvTWlkbmlnaHQodGhpcy5maWVsZCgpIS5maWVsZENvbnRyb2whLnZhbHVlKTtcblx0XHR0aGlzLmZpZWxkKCk/LmZpZWxkQ29udHJvbD8uc2V0VmFsdWUoY3VycmVudERhdGUsIHsgZW1pdEV2ZW50OiB0cnVlIH0pO1xuXHR9XG5cblx0Zm9ybWF0VG9NaWRuaWdodChkYXRlU3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRcdGlmICh0aGlzLnByb3BzPy5zaG93U2Vjb25kcyA9PT0gZmFsc2UpIHtcblx0XHRcdGlmICgvXlxcZHs0fS1cXGR7Mn0tXFxkezJ9IFxcZHsyfTpcXGR7Mn0kLy50ZXN0KGRhdGVTdHIpKSB7XG5cdFx0XHRcdHJldHVybiBkYXRlU3RyLnNwbGl0KCcgJylbMF0gKyAnIDAwOjAwJztcblx0XHRcdH1cblx0XHRcdHRocm93IG5ldyBFcnJvcignSW52YWxpZCBkYXRlIGZvcm1hdC4gRXhwZWN0ZWQgeXl5eS1NTS1kZCBoaDptbScpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRpZiAoL15cXGR7NH0tXFxkezJ9LVxcZHsyfSBcXGR7Mn06XFxkezJ9OlxcZHsyfSQvLnRlc3QoZGF0ZVN0cikpIHtcblx0XHRcdFx0cmV0dXJuIGRhdGVTdHIuc3BsaXQoJyAnKVswXSArICcgMDA6MDA6MDAnO1xuXHRcdFx0fVxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGRhdGUgZm9ybWF0LiBFeHBlY3RlZCB5eXl5LU1NLWRkIGhoOm1tOnNzJyk7XG5cdFx0fVxuXHR9XG59XG4iXX0=
@@ -22,7 +22,7 @@ export class ImageComponent {
22
22
  if (this.field()) {
23
23
  this.props = this.field().imageProps;
24
24
  this.handleDisabled();
25
- this.handleModelChange();
25
+ this.handleHookChange();
26
26
  this.afterSubmit();
27
27
  }
28
28
  });
@@ -74,14 +74,6 @@ export class ImageComponent {
74
74
  this.imageList = this.imageList?.filter((value, i) => index != i);
75
75
  this.field()?.fieldControl?.setValue(this.imageList);
76
76
  }
77
- handleModelChange() {
78
- this.field()?.fieldControl?.modelChange.subscribe((value) => {
79
- if (value == null) {
80
- return;
81
- }
82
- this.imageList = [...value];
83
- });
84
- }
85
77
  afterSubmit() {
86
78
  this.field()?.fieldControl?.submitChange.subscribe((value) => {
87
79
  if (Boolean(value)) {
@@ -89,6 +81,15 @@ export class ImageComponent {
89
81
  }
90
82
  });
91
83
  }
84
+ handleHookChange() {
85
+ this.field()?.fieldControl?.hookChange.subscribe((value) => {
86
+ if (value == null) {
87
+ return;
88
+ }
89
+ this.props.onHookChange?.(this.field(), { value });
90
+ this.imageList = [...value];
91
+ });
92
+ }
92
93
  handleDisabled() {
93
94
  if (this.props?.disabled) {
94
95
  this.field().fieldControl.disable({ emitEvent: false });
@@ -107,149 +108,149 @@ export class ImageComponent {
107
108
  }
108
109
  }
109
110
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ImageComponent, deps: [{ token: i1.HttpClient }, { token: i2.ActionService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
110
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ImageComponent, isStandalone: true, selector: "form-image", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "imageCompRef", first: true, predicate: ["imageComp"], descendants: true, read: ElementRef }], ngImport: i0, template: `<p-fileUpload
111
- #fu
112
- auto
113
- [name]="props.name"
114
- [url]="props.url"
115
- [method]="props.method ?? 'post'"
116
- accept="image/*"
117
- [withCredentials]="props.withCredentials"
118
- [maxFileSize]="props.maxFileSize"
119
- [styleClass]="props.styleClass"
120
- [previewWidth]="props.previewWidth ?? 50"
121
- [mode]="props.mode ?? 'advanced'"
122
- [headers]="props.headers"
123
- [fileLimit]="props.fileLimit"
124
- [customUpload]="props.customUpload ?? true"
125
- (onBeforeUpload)="props.onBeforeUpload?.(field()!, $event)"
126
- (onSend)="props.onSend?.(field()!, $event)"
127
- (onUpload)="props.onUpload?.(field()!, $event)"
128
- (onError)="props.onError?.(field()!, $event)"
129
- (onClear)="props.onClear?.(field()!, $event)"
130
- (onRemove)="props.onRemove?.(field()!, $event)"
131
- (onSelect)="props.onSelect?.(field()!, $event)"
132
- (onProgress)="props.onProgress?.(field()!, $event)"
133
- (uploadHandler)="uploadHandler(field()!, $event, fu)">
134
- <ng-template
135
- #header
136
- let-chooseCallback="chooseCallback">
137
- <div
138
- #imageComp
139
- [class]="'flex justify-center w-full upload-btn' + (field()?.fieldControl?.disabled ? ' upload-disable' : '')"
140
- (click)="choose($event, chooseCallback)">
141
- <span
142
- ><span
143
- style="font-size: 12px; margin-right: 2.5px"
144
- class="pi pi-upload"></span
145
- >上传</span
146
- >
147
- </div>
148
- </ng-template>
149
- <ng-template #content>
150
- @if (imageList.length > 0) {
151
- @for (image of imageList; track image; let index = $index) {
152
- <div class="flex justify-between items-center file-item">
153
- <p-image
154
- [src]="'https://hrimage.myfoodiepet.com//' + image"
155
- [preview]="true"
156
- (onShow)="ajustedImage($event)"
157
- alt="Image">
158
- <ng-template #indicator>
159
- <span class="file-name">{{ image }}</span>
160
- </ng-template>
161
- <ng-template #image>
162
- <span class="file-name">{{ image }}</span>
163
- </ng-template>
164
- </p-image>
165
- @if (!field()?.fieldControl?.disabled) {
166
- <p-button
167
- icon="pi pi-times"
168
- severity="danger"
169
- size="small"
170
- (onClick)="deleteHandler(image, index)"
171
- [text]="true" />
172
- }
173
- </div>
174
- }
175
- }
176
- </ng-template>
177
- <ng-template #file> </ng-template>
111
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ImageComponent, isStandalone: true, selector: "form-image", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "imageCompRef", first: true, predicate: ["imageComp"], descendants: true, read: ElementRef }], ngImport: i0, template: `<p-fileUpload
112
+ #fu
113
+ auto
114
+ [name]="props.name"
115
+ [url]="props.url"
116
+ [method]="props.method ?? 'post'"
117
+ accept="image/*"
118
+ [withCredentials]="props.withCredentials"
119
+ [maxFileSize]="props.maxFileSize"
120
+ [styleClass]="props.styleClass"
121
+ [previewWidth]="props.previewWidth ?? 50"
122
+ [mode]="props.mode ?? 'advanced'"
123
+ [headers]="props.headers"
124
+ [fileLimit]="props.fileLimit"
125
+ [customUpload]="props.customUpload ?? true"
126
+ (onBeforeUpload)="props.onBeforeUpload?.(field()!, $event)"
127
+ (onSend)="props.onSend?.(field()!, $event)"
128
+ (onUpload)="props.onUpload?.(field()!, $event)"
129
+ (onError)="props.onError?.(field()!, $event)"
130
+ (onClear)="props.onClear?.(field()!, $event)"
131
+ (onRemove)="props.onRemove?.(field()!, $event)"
132
+ (onSelect)="props.onSelect?.(field()!, $event)"
133
+ (onProgress)="props.onProgress?.(field()!, $event)"
134
+ (uploadHandler)="uploadHandler(field()!, $event, fu)">
135
+ <ng-template
136
+ #header
137
+ let-chooseCallback="chooseCallback">
138
+ <div
139
+ #imageComp
140
+ [class]="'flex justify-center w-full upload-btn' + (field()?.fieldControl?.disabled ? ' upload-disable' : '')"
141
+ (click)="choose($event, chooseCallback)">
142
+ <span
143
+ ><span
144
+ style="font-size: 12px; margin-right: 2.5px"
145
+ class="pi pi-upload"></span
146
+ >上传</span
147
+ >
148
+ </div>
149
+ </ng-template>
150
+ <ng-template #content>
151
+ @if (imageList.length > 0) {
152
+ @for (image of imageList; track image; let index = $index) {
153
+ <div class="flex justify-between items-center file-item">
154
+ <p-image
155
+ [src]="'https://hrimage.myfoodiepet.com//' + image"
156
+ [preview]="true"
157
+ (onShow)="ajustedImage($event)"
158
+ alt="Image">
159
+ <ng-template #indicator>
160
+ <span class="file-name">{{ image }}</span>
161
+ </ng-template>
162
+ <ng-template #image>
163
+ <span class="file-name">{{ image }}</span>
164
+ </ng-template>
165
+ </p-image>
166
+ @if (!field()?.fieldControl?.disabled) {
167
+ <p-button
168
+ icon="pi pi-times"
169
+ severity="danger"
170
+ size="small"
171
+ (onClick)="deleteHandler(image, index)"
172
+ [text]="true" />
173
+ }
174
+ </div>
175
+ }
176
+ }
177
+ </ng-template>
178
+ <ng-template #file> </ng-template>
178
179
  </p-fileUpload>`, isInline: true, styles: [":host ::ng-deep .p-disabled,:host ::ng-deep .p-component:disabled{opacity:1}:host ::ng-deep .p-inputtext{border-width:0;border-radius:0;box-shadow:none;background:#fff;padding:0}:host ::ng-deep .p-inputtext:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputtext:not(:disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:not(:disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered .p-autocomplete-input:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-label{padding:0}:host ::ng-deep .p-select{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-select .p-select-dropdown{display:none}:host ::ng-deep .p-select .p-select-clear-icon{display:none}:host ::ng-deep .p-select:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-select-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-open .p-select-dropdown{display:flex}:host ::ng-deep .p-select-open .p-select-clear-icon{display:flex}:host ::ng-deep .p-select:hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select:hover .p-select-dropdown{display:flex}:host ::ng-deep .p-select:hover .p-select-clear-icon{display:flex}:host ::ng-deep .p-select.ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select.ng-hovered .p-select-dropdown{display:flex}:host ::ng-deep .p-select.ng-hovered .p-select-clear-icon{display:flex}:host ::ng-deep .p-multiselect-label{padding:0}:host ::ng-deep .p-multiselect{border-width:0;border-radius:0;background:#fff;box-shadow:none}:host ::ng-deep .p-multiselect .p-multiselect-dropdown{display:none}:host ::ng-deep .p-multiselect:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-multiselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect-open .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled):hover .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-textarea{border-radius:0;box-shadow:none;padding:0;background:#fff;resize:none}:host ::ng-deep .p-textarea:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border:1px solid var(--p-red-500)!important}:host ::ng-deep .p-textarea:not(:disabled):hover{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:not(:disabled).ng-hovered{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:focus{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-treeselect-label{padding:0}:host ::ng-deep .p-treeselect{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-treeselect .p-treeselect-dropdown{display:none}:host ::ng-deep .ng-invalid.ng-dirty>.p-treeselect{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-treeselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect-open .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled):hover .p-treeselect-dropdown{display:flex}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled) .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-menubar{border-width:0;padding:0}:host ::ng-deep .p-menubar-submenu{z-index:3}:host ::ng-deep .p-fileupload-advanced{border-width:0;border-radius:0;background-color:#fff}:host ::ng-deep .p-fileupload-header{padding:0}:host ::ng-deep .p-fileupload-content{padding:0;display:block;border-width:0}:host ::ng-deep .p-inputnumber:not(.ng-valid).ng-dirty>.p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputnumber.ng-hovered:not(.p-disabled)>.p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-invalid.ng-dirty>.p-datepicker .p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .ng-hovered>.p-datepicker:not(.p-disabled) .p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor{border:1px solid #cbd5e1}:host ::ng-deep .cm-editor.cm-focused{outline:none!important;border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor:hover{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor.ng-hovered{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-gutters{background-color:#fff;border:\"none\"}:host ::ng-deep .cm-activeLineGutter{background-color:#fff}\n", ".file-item{border-top:solid 1px #fff}.upload-btn{border:solid 1px transparent}.upload-btn.upload-disable:hover{cursor:default}.upload-btn:not(.upload-disable):hover{border:solid 1px var(--p-primary-color);background:var(--p-primary-50);cursor:pointer}.upload-btn:not(.upload-disable).ng-hovered{border:solid 1px var(--p-primary-color);background:var(--p-primary-50);cursor:pointer}.file-name{font-size:12px;cursor:pointer;color:var(--p-primary-color)!important}// .file-name:hover{// cursor: pointer;// color: var(--p-primary-color);//}:is() .p-image-preview-mask{position:inherit;opacity:1;justify-content:left;color:#334155}:is() p-image .p-image{display:inline-block;color:var(--p-primary-color)!important}\n"], dependencies: [{ kind: "component", type: FileUpload, selector: "p-fileupload, p-fileUpload", inputs: ["name", "url", "method", "multiple", "accept", "disabled", "auto", "withCredentials", "maxFileSize", "invalidFileSizeMessageSummary", "invalidFileSizeMessageDetail", "invalidFileTypeMessageSummary", "invalidFileTypeMessageDetail", "invalidFileLimitMessageDetail", "invalidFileLimitMessageSummary", "style", "styleClass", "previewWidth", "chooseLabel", "uploadLabel", "cancelLabel", "chooseIcon", "uploadIcon", "cancelIcon", "showUploadButton", "showCancelButton", "mode", "headers", "customUpload", "fileLimit", "uploadStyleClass", "cancelStyleClass", "removeStyleClass", "chooseStyleClass", "chooseButtonProps", "uploadButtonProps", "cancelButtonProps", "files"], outputs: ["onBeforeUpload", "onSend", "onUpload", "onError", "onClear", "onRemove", "onSelect", "onProgress", "uploadHandler", "onImageError", "onRemoveUploadedFile"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i3.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "autofocus", "fluid", "buttonProps"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: Image, selector: "p-image", inputs: ["imageClass", "imageStyle", "styleClass", "style", "src", "srcSet", "sizes", "previewImageSrc", "previewImageSrcSet", "previewImageSizes", "alt", "width", "height", "loading", "appendTo", "preview", "showTransitionOptions", "hideTransitionOptions"], outputs: ["onShow", "onHide", "onImageError"] }, { kind: "ngmodule", type: ReactiveFormsModule }] }); }
179
180
  }
180
181
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ImageComponent, decorators: [{
181
182
  type: Component,
182
- args: [{ selector: 'form-image', standalone: true, imports: [FileUpload, ButtonModule, Image, ReactiveFormsModule], template: `<p-fileUpload
183
- #fu
184
- auto
185
- [name]="props.name"
186
- [url]="props.url"
187
- [method]="props.method ?? 'post'"
188
- accept="image/*"
189
- [withCredentials]="props.withCredentials"
190
- [maxFileSize]="props.maxFileSize"
191
- [styleClass]="props.styleClass"
192
- [previewWidth]="props.previewWidth ?? 50"
193
- [mode]="props.mode ?? 'advanced'"
194
- [headers]="props.headers"
195
- [fileLimit]="props.fileLimit"
196
- [customUpload]="props.customUpload ?? true"
197
- (onBeforeUpload)="props.onBeforeUpload?.(field()!, $event)"
198
- (onSend)="props.onSend?.(field()!, $event)"
199
- (onUpload)="props.onUpload?.(field()!, $event)"
200
- (onError)="props.onError?.(field()!, $event)"
201
- (onClear)="props.onClear?.(field()!, $event)"
202
- (onRemove)="props.onRemove?.(field()!, $event)"
203
- (onSelect)="props.onSelect?.(field()!, $event)"
204
- (onProgress)="props.onProgress?.(field()!, $event)"
205
- (uploadHandler)="uploadHandler(field()!, $event, fu)">
206
- <ng-template
207
- #header
208
- let-chooseCallback="chooseCallback">
209
- <div
210
- #imageComp
211
- [class]="'flex justify-center w-full upload-btn' + (field()?.fieldControl?.disabled ? ' upload-disable' : '')"
212
- (click)="choose($event, chooseCallback)">
213
- <span
214
- ><span
215
- style="font-size: 12px; margin-right: 2.5px"
216
- class="pi pi-upload"></span
217
- >上传</span
218
- >
219
- </div>
220
- </ng-template>
221
- <ng-template #content>
222
- @if (imageList.length > 0) {
223
- @for (image of imageList; track image; let index = $index) {
224
- <div class="flex justify-between items-center file-item">
225
- <p-image
226
- [src]="'https://hrimage.myfoodiepet.com//' + image"
227
- [preview]="true"
228
- (onShow)="ajustedImage($event)"
229
- alt="Image">
230
- <ng-template #indicator>
231
- <span class="file-name">{{ image }}</span>
232
- </ng-template>
233
- <ng-template #image>
234
- <span class="file-name">{{ image }}</span>
235
- </ng-template>
236
- </p-image>
237
- @if (!field()?.fieldControl?.disabled) {
238
- <p-button
239
- icon="pi pi-times"
240
- severity="danger"
241
- size="small"
242
- (onClick)="deleteHandler(image, index)"
243
- [text]="true" />
244
- }
245
- </div>
246
- }
247
- }
248
- </ng-template>
249
- <ng-template #file> </ng-template>
183
+ args: [{ selector: 'form-image', standalone: true, imports: [FileUpload, ButtonModule, Image, ReactiveFormsModule], template: `<p-fileUpload
184
+ #fu
185
+ auto
186
+ [name]="props.name"
187
+ [url]="props.url"
188
+ [method]="props.method ?? 'post'"
189
+ accept="image/*"
190
+ [withCredentials]="props.withCredentials"
191
+ [maxFileSize]="props.maxFileSize"
192
+ [styleClass]="props.styleClass"
193
+ [previewWidth]="props.previewWidth ?? 50"
194
+ [mode]="props.mode ?? 'advanced'"
195
+ [headers]="props.headers"
196
+ [fileLimit]="props.fileLimit"
197
+ [customUpload]="props.customUpload ?? true"
198
+ (onBeforeUpload)="props.onBeforeUpload?.(field()!, $event)"
199
+ (onSend)="props.onSend?.(field()!, $event)"
200
+ (onUpload)="props.onUpload?.(field()!, $event)"
201
+ (onError)="props.onError?.(field()!, $event)"
202
+ (onClear)="props.onClear?.(field()!, $event)"
203
+ (onRemove)="props.onRemove?.(field()!, $event)"
204
+ (onSelect)="props.onSelect?.(field()!, $event)"
205
+ (onProgress)="props.onProgress?.(field()!, $event)"
206
+ (uploadHandler)="uploadHandler(field()!, $event, fu)">
207
+ <ng-template
208
+ #header
209
+ let-chooseCallback="chooseCallback">
210
+ <div
211
+ #imageComp
212
+ [class]="'flex justify-center w-full upload-btn' + (field()?.fieldControl?.disabled ? ' upload-disable' : '')"
213
+ (click)="choose($event, chooseCallback)">
214
+ <span
215
+ ><span
216
+ style="font-size: 12px; margin-right: 2.5px"
217
+ class="pi pi-upload"></span
218
+ >上传</span
219
+ >
220
+ </div>
221
+ </ng-template>
222
+ <ng-template #content>
223
+ @if (imageList.length > 0) {
224
+ @for (image of imageList; track image; let index = $index) {
225
+ <div class="flex justify-between items-center file-item">
226
+ <p-image
227
+ [src]="'https://hrimage.myfoodiepet.com//' + image"
228
+ [preview]="true"
229
+ (onShow)="ajustedImage($event)"
230
+ alt="Image">
231
+ <ng-template #indicator>
232
+ <span class="file-name">{{ image }}</span>
233
+ </ng-template>
234
+ <ng-template #image>
235
+ <span class="file-name">{{ image }}</span>
236
+ </ng-template>
237
+ </p-image>
238
+ @if (!field()?.fieldControl?.disabled) {
239
+ <p-button
240
+ icon="pi pi-times"
241
+ severity="danger"
242
+ size="small"
243
+ (onClick)="deleteHandler(image, index)"
244
+ [text]="true" />
245
+ }
246
+ </div>
247
+ }
248
+ }
249
+ </ng-template>
250
+ <ng-template #file> </ng-template>
250
251
  </p-fileUpload>`, styles: [":host ::ng-deep .p-disabled,:host ::ng-deep .p-component:disabled{opacity:1}:host ::ng-deep .p-inputtext{border-width:0;border-radius:0;box-shadow:none;background:#fff;padding:0}:host ::ng-deep .p-inputtext:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputtext:not(:disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:not(:disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered .p-autocomplete-input:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-label{padding:0}:host ::ng-deep .p-select{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-select .p-select-dropdown{display:none}:host ::ng-deep .p-select .p-select-clear-icon{display:none}:host ::ng-deep .p-select:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-select-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-open .p-select-dropdown{display:flex}:host ::ng-deep .p-select-open .p-select-clear-icon{display:flex}:host ::ng-deep .p-select:hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select:hover .p-select-dropdown{display:flex}:host ::ng-deep .p-select:hover .p-select-clear-icon{display:flex}:host ::ng-deep .p-select.ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select.ng-hovered .p-select-dropdown{display:flex}:host ::ng-deep .p-select.ng-hovered .p-select-clear-icon{display:flex}:host ::ng-deep .p-multiselect-label{padding:0}:host ::ng-deep .p-multiselect{border-width:0;border-radius:0;background:#fff;box-shadow:none}:host ::ng-deep .p-multiselect .p-multiselect-dropdown{display:none}:host ::ng-deep .p-multiselect:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-multiselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect-open .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled):hover .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-textarea{border-radius:0;box-shadow:none;padding:0;background:#fff;resize:none}:host ::ng-deep .p-textarea:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border:1px solid var(--p-red-500)!important}:host ::ng-deep .p-textarea:not(:disabled):hover{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:not(:disabled).ng-hovered{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:focus{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-treeselect-label{padding:0}:host ::ng-deep .p-treeselect{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-treeselect .p-treeselect-dropdown{display:none}:host ::ng-deep .ng-invalid.ng-dirty>.p-treeselect{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-treeselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect-open .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled):hover .p-treeselect-dropdown{display:flex}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled) .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-menubar{border-width:0;padding:0}:host ::ng-deep .p-menubar-submenu{z-index:3}:host ::ng-deep .p-fileupload-advanced{border-width:0;border-radius:0;background-color:#fff}:host ::ng-deep .p-fileupload-header{padding:0}:host ::ng-deep .p-fileupload-content{padding:0;display:block;border-width:0}:host ::ng-deep .p-inputnumber:not(.ng-valid).ng-dirty>.p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputnumber.ng-hovered:not(.p-disabled)>.p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-invalid.ng-dirty>.p-datepicker .p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .ng-hovered>.p-datepicker:not(.p-disabled) .p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor{border:1px solid #cbd5e1}:host ::ng-deep .cm-editor.cm-focused{outline:none!important;border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor:hover{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor.ng-hovered{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-gutters{background-color:#fff;border:\"none\"}:host ::ng-deep .cm-activeLineGutter{background-color:#fff}\n", ".file-item{border-top:solid 1px #fff}.upload-btn{border:solid 1px transparent}.upload-btn.upload-disable:hover{cursor:default}.upload-btn:not(.upload-disable):hover{border:solid 1px var(--p-primary-color);background:var(--p-primary-50);cursor:pointer}.upload-btn:not(.upload-disable).ng-hovered{border:solid 1px var(--p-primary-color);background:var(--p-primary-50);cursor:pointer}.file-name{font-size:12px;cursor:pointer;color:var(--p-primary-color)!important}// .file-name:hover{// cursor: pointer;// color: var(--p-primary-color);//}:is() .p-image-preview-mask{position:inherit;opacity:1;justify-content:left;color:#334155}:is() p-image .p-image{display:inline-block;color:var(--p-primary-color)!important}\n"] }]
251
252
  }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.ActionService }, { type: i0.Renderer2 }], propDecorators: { imageCompRef: [{
252
253
  type: ViewChild,
253
254
  args: ['imageComp', { read: ElementRef, static: false }]
254
255
  }] } });
255
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltbS1lbGVtZW50LXVpL3NyYy9saWIvZm9ybS9mb3JtLXR5cGUvaW1hZ2UudHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEMsT0FBTyxFQUFzQyxXQUFXLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHdEcsT0FBTyxFQUFFLE1BQU0sRUFBd0IsTUFBTSxNQUFNLENBQUM7Ozs7O0FBbUpwRCxNQUFNLE9BQU8sY0FBYztJQU8xQixZQUNTLElBQWdCLEVBQ2hCLE1BQXFCLEVBQ3JCLFFBQW1CO1FBRm5CLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBUjVCLFVBQUssR0FBRyxLQUFLLEVBQWEsQ0FBQztRQUMzQixVQUFLLEdBQWUsRUFBRSxDQUFDO1FBQ3ZCLGNBQVMsR0FBYSxFQUFFLENBQUM7UUFDekIsZ0JBQVcsR0FBc0IsRUFBRSxDQUFDO1FBT25DLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDWCxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO2dCQUNsQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUcsQ0FBQyxVQUFXLENBQUM7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QUF4RSxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQsIGVmZmVjdCwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRmlsZVVwbG9hZCB9IGZyb20gJ3ByaW1lbmcvZmlsZXVwbG9hZCc7XHJcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvYnV0dG9uJztcclxuaW1wb3J0IHsgSW1hZ2UgfSBmcm9tICdwcmltZW5nL2ltYWdlJztcclxuaW1wb3J0IHsgRm9ybUZpZWxkLCBGaWVsZFByb3BzLCBBdHRyaWJ1dGVFdmVudCB9IGZyb20gJy4uL2Zvcm0tZmllbGQvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBFdmVudCwgSHR0cEhlYWRlcnMsIEh0dHBSZXF1ZXN0LCBIdHRwRXZlbnRUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBBY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS9hY3Rpb24uc2VydmljZSc7XHJcblxyXG5pbXBvcnQgeyBmaWx0ZXIsIGZvcmtKb2luLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEltYWdlUHJvcHMgZXh0ZW5kcyBGaWVsZFByb3BzIHtcclxuXHR1cmw/OiBzdHJpbmc7XHJcblx0bWV0aG9kPzogJ3Bvc3QnIHwgJ3B1dCc7XHJcblx0d2l0aENyZWRlbnRpYWxzPzogYm9vbGVhbjtcclxuXHRtYXhGaWxlU2l6ZT86IG51bWJlcjtcclxuXHRwcmV2aWV3V2lkdGg/OiBudW1iZXI7XHJcblx0bW9kZT86ICdiYXNpYycgfCAnYWR2YW5jZWQnO1xyXG5cdGhlYWRlcnM/OiBhbnk7XHJcblx0Y3VzdG9tVXBsb2FkPzogYm9vbGVhbjtcclxuXHRmaWxlTGltaXQ/OiBudW1iZXI7XHJcblx0dXBsb2FkU3R5bGVDbGFzcz86IHN0cmluZztcclxuXHRjYW5jZWxTdHlsZUNsYXNzPzogc3RyaW5nO1xyXG5cdHJlbW92ZVN0eWxlQ2xhc3M/OiBzdHJpbmc7XHJcblx0Y2hvb3NlU3R5bGVDbGFzcz86IHN0cmluZztcclxuXHRhZGp1c3RhYmxlPzogYm9vbGVhbjtcclxuXHJcblx0b25CZWZvcmVVcGxvYWQ/OiBBdHRyaWJ1dGVFdmVudDtcclxuXHRvblNlbmQ/OiBBdHRyaWJ1dGVFdmVudDtcclxuXHRvblVwbG9hZD86IEF0dHJpYnV0ZUV2ZW50O1xyXG5cdG9uRXJyb3I/OiBBdHRyaWJ1dGVFdmVudDtcclxuXHRvbkNsZWFyPzogQXR0cmlidXRlRXZlbnQ7XHJcblx0b25SZW1vdmU/OiBBdHRyaWJ1dGVFdmVudDtcclxuXHRvblNlbGVjdD86IEF0dHJpYnV0ZUV2ZW50O1xyXG5cdG9uUHJvZ3Jlc3M/OiBBdHRyaWJ1dGVFdmVudDtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdmb3JtLWltYWdlJyxcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdHN0eWxlczogYFxyXG5cdFx0LmZpbGUtaXRlbSB7XHJcblx0XHRcdGJvcmRlci10b3A6IHNvbGlkIDFweCAjZmZmO1xyXG5cdFx0fVxyXG5cdFx0LnVwbG9hZC1idG4ge1xyXG5cdFx0XHRib3JkZXI6IHNvbGlkIDFweCB0cmFuc3BhcmVudDtcclxuXHRcdH1cclxuXHRcdC51cGxvYWQtYnRuLnVwbG9hZC1kaXNhYmxlOmhvdmVyIHtcclxuXHRcdFx0Y3Vyc29yOiBkZWZhdWx0O1xyXG5cdFx0fVxyXG5cdFx0LnVwbG9hZC1idG46bm90KC51cGxvYWQtZGlzYWJsZSk6aG92ZXIge1xyXG5cdFx0XHRib3JkZXI6IHNvbGlkIDFweCB2YXIoLS1wLXByaW1hcnktY29sb3IpO1xyXG5cdFx0XHRiYWNrZ3JvdW5kOiB2YXIoLS1wLXByaW1hcnktNTApO1xyXG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XHJcblx0XHR9XHJcblx0XHQudXBsb2FkLWJ0bjpub3QoLnVwbG9hZC1kaXNhYmxlKS5uZy1ob3ZlcmVkIHtcclxuXHRcdFx0Ym9yZGVyOiBzb2xpZCAxcHggdmFyKC0tcC1wcmltYXJ5LWNvbG9yKTtcclxuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tcC1wcmltYXJ5LTUwKTtcclxuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xyXG5cdFx0fVxyXG5cdFx0LmZpbGUtbmFtZSB7XHJcblx0XHRcdGZvbnQtc2l6ZTogMTJweDtcclxuXHRcdFx0Y3Vyc29yOiBwb2ludGVyO1xyXG5cdFx0XHRjb2xvcjogdmFyKC0tcC1wcmltYXJ5LWNvbG9yKSAhaW1wb3J0YW50O1xyXG5cdFx0fVxyXG5cdFx0Ly8gLmZpbGUtbmFtZTpob3ZlciB7XHJcblx0XHQvLyBcdGN1cnNvcjogcG9pbnRlcjtcclxuXHRcdC8vIFx0Y29sb3I6IHZhcigtLXAtcHJpbWFyeS1jb2xvcik7XHJcblx0XHQvLyB9XHJcblx0XHQ6aG9zdCA6Om5nLWRlZXAge1xyXG5cdFx0XHQucC1pbWFnZS1wcmV2aWV3LW1hc2sge1xyXG5cdFx0XHRcdHBvc2l0aW9uOiBpbmhlcml0O1xyXG5cdFx0XHRcdG9wYWNpdHk6IDE7XHJcblx0XHRcdFx0anVzdGlmeS1jb250ZW50OiBsZWZ0O1xyXG5cdFx0XHRcdGNvbG9yOiAjMzM0MTU1O1xyXG5cdFx0XHR9XHJcblx0XHRcdHAtaW1hZ2Uge1xyXG5cdFx0XHRcdC5wLWltYWdlIHtcclxuXHRcdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRcdFx0XHRcdGNvbG9yOiB2YXIoLS1wLXByaW1hcnktY29sb3IpICFpbXBvcnRhbnQ7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0YCxcclxuXHRpbXBvcnRzOiBbRmlsZVVwbG9hZCwgQnV0dG9uTW9kdWxlLCBJbWFnZSwgUmVhY3RpdmVGb3Jtc01vZHVsZV0sXHJcblx0dGVtcGxhdGU6IGA8cC1maWxlVXBsb2FkXHJcblx0XHQjZnVcclxuXHRcdGF1dG9cclxuXHRcdFtuYW1lXT1cInByb3BzLm5hbWVcIlxyXG5cdFx0W3VybF09XCJwcm9wcy51cmxcIlxyXG5cdFx0W21ldGhvZF09XCJwcm9wcy5tZXRob2QgPz8gJ3Bvc3QnXCJcclxuXHRcdGFjY2VwdD1cImltYWdlLypcIlxyXG5cdFx0W3dpdGhDcmVkZW50aWFsc109XCJwcm9wcy53aXRoQ3JlZGVudGlhbHNcIlxyXG5cdFx0W21heEZpbGVTaXplXT1cInByb3BzLm1heEZpbGVTaXplXCJcclxuXHRcdFtzdHlsZUNsYXNzXT1cInByb3BzLnN0eWxlQ2xhc3NcIlxyXG5cdFx0W3ByZXZpZXdXaWR0aF09XCJwcm9wcy5wcmV2aWV3V2lkdGggPz8gNTBcIlxyXG5cdFx0W21vZGVdPVwicHJvcHMubW9kZSA/PyAnYWR2YW5jZWQnXCJcclxuXHRcdFtoZWFkZXJzXT1cInByb3BzLmhlYWRlcnNcIlxyXG5cdFx0W2ZpbGVMaW1pdF09XCJwcm9wcy5maWxlTGltaXRcIlxyXG5cdFx0W2N1c3RvbVVwbG9hZF09XCJwcm9wcy5jdXN0b21VcGxvYWQgPz8gdHJ1ZVwiXHJcblx0XHQob25CZWZvcmVVcGxvYWQpPVwicHJvcHMub25CZWZvcmVVcGxvYWQ/LihmaWVsZCgpISwgJGV2ZW50KVwiXHJcblx0XHQob25TZW5kKT1cInByb3BzLm9uU2VuZD8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcclxuXHRcdChvblVwbG9hZCk9XCJwcm9wcy5vblVwbG9hZD8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcclxuXHRcdChvbkVycm9yKT1cInByb3BzLm9uRXJyb3I/LihmaWVsZCgpISwgJGV2ZW50KVwiXHJcblx0XHQob25DbGVhcik9XCJwcm9wcy5vbkNsZWFyPy4oZmllbGQoKSEsICRldmVudClcIlxyXG5cdFx0KG9uUmVtb3ZlKT1cInByb3BzLm9uUmVtb3ZlPy4oZmllbGQoKSEsICRldmVudClcIlxyXG5cdFx0KG9uU2VsZWN0KT1cInByb3BzLm9uU2VsZWN0Py4oZmllbGQoKSEsICRldmVudClcIlxyXG5cdFx0KG9uUHJvZ3Jlc3MpPVwicHJvcHMub25Qcm9ncmVzcz8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcclxuXHRcdCh1cGxvYWRIYW5kbGVyKT1cInVwbG9hZEhhbmRsZXIoZmllbGQoKSEsICRldmVudCwgZnUpXCI+XHJcblx0XHQ8bmctdGVtcGxhdGVcclxuXHRcdFx0I2hlYWRlclxyXG5cdFx0XHRsZXQtY2hvb3NlQ2FsbGJhY2s9XCJjaG9vc2VDYWxsYmFja1wiPlxyXG5cdFx0XHQ8ZGl2XHJcblx0XHRcdFx0I2ltYWdlQ29tcFxyXG5cdFx0XHRcdFtjbGFzc109XCInZmxleCBqdXN0aWZ5LWNlbnRlciB3LWZ1bGwgdXBsb2FkLWJ0bicgKyAoZmllbGQoKT8uZmllbGRDb250cm9sPy5kaXNhYmxlZCA/ICcgdXBsb2FkLWRpc2FibGUnIDogJycpXCJcclxuXHRcdFx0XHQoY2xpY2spPVwiY2hvb3NlKCRldmVudCwgY2hvb3NlQ2FsbGJhY2spXCI+XHJcblx0XHRcdFx0PHNwYW5cclxuXHRcdFx0XHRcdD48c3BhblxyXG5cdFx0XHRcdFx0XHRzdHlsZT1cImZvbnQtc2l6ZTogMTJweDsgbWFyZ2luLXJpZ2h0OiAyLjVweFwiXHJcblx0XHRcdFx0XHRcdGNsYXNzPVwicGkgcGktdXBsb2FkXCI+PC9zcGFuXHJcblx0XHRcdFx0XHQ+5LiK5LygPC9zcGFuXHJcblx0XHRcdFx0PlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdDwvbmctdGVtcGxhdGU+XHJcblx0XHQ8bmctdGVtcGxhdGUgI2NvbnRlbnQ+XHJcblx0XHRcdEBpZiAoaW1hZ2VMaXN0Lmxlbmd0aCA+IDApIHtcclxuXHRcdFx0XHRAZm9yIChpbWFnZSBvZiBpbWFnZUxpc3Q7IHRyYWNrIGltYWdlOyBsZXQgaW5kZXggPSAkaW5kZXgpIHtcclxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIgZmlsZS1pdGVtXCI+XHJcblx0XHRcdFx0XHRcdDxwLWltYWdlXHJcblx0XHRcdFx0XHRcdFx0W3NyY109XCInaHR0cHM6Ly9ocmltYWdlLm15Zm9vZGllcGV0LmNvbS8vJyArIGltYWdlXCJcclxuXHRcdFx0XHRcdFx0XHRbcHJldmlld109XCJ0cnVlXCJcclxuXHRcdFx0XHRcdFx0XHQob25TaG93KT1cImFqdXN0ZWRJbWFnZSgkZXZlbnQpXCJcclxuXHRcdFx0XHRcdFx0XHRhbHQ9XCJJbWFnZVwiPlxyXG5cdFx0XHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSAjaW5kaWNhdG9yPlxyXG5cdFx0XHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJmaWxlLW5hbWVcIj57eyBpbWFnZSB9fTwvc3Bhbj5cclxuXHRcdFx0XHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdFx0XHRcdFx0XHRcdDxuZy10ZW1wbGF0ZSAjaW1hZ2U+XHJcblx0XHRcdFx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cImZpbGUtbmFtZVwiPnt7IGltYWdlIH19PC9zcGFuPlxyXG5cdFx0XHRcdFx0XHRcdDwvbmctdGVtcGxhdGU+XHJcblx0XHRcdFx0XHRcdDwvcC1pbWFnZT5cclxuXHRcdFx0XHRcdFx0QGlmICghZmllbGQoKT8uZmllbGRDb250cm9sPy5kaXNhYmxlZCkge1xyXG5cdFx0XHRcdFx0XHRcdDxwLWJ1dHRvblxyXG5cdFx0XHRcdFx0XHRcdFx0aWNvbj1cInBpIHBpLXRpbWVzXCJcclxuXHRcdFx0XHRcdFx0XHRcdHNldmVyaXR5PVwiZGFuZ2VyXCJcclxuXHRcdFx0XHRcdFx0XHRcdHNpemU9XCJzbWFsbFwiXHJcblx0XHRcdFx0XHRcdFx0XHQob25DbGljayk9XCJkZWxldGVIYW5kbGVyKGltYWdlLCBpbmRleClcIlxyXG5cdFx0XHRcdFx0XHRcdFx0W3RleHRdPVwidHJ1ZVwiIC8+XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdDxuZy10ZW1wbGF0ZSAjZmlsZT4gPC9uZy10ZW1wbGF0ZT5cclxuXHQ8L3AtZmlsZVVwbG9hZD5gLFxyXG5cdHN0eWxlVXJsOiAnLi4vLi4vc3R5bGVzL3N0eWxlcy5zY3NzJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEltYWdlQ29tcG9uZW50IHtcclxuXHRAVmlld0NoaWxkKCdpbWFnZUNvbXAnLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogZmFsc2UgfSkgaW1hZ2VDb21wUmVmITogRWxlbWVudFJlZjtcclxuXHRmaWVsZCA9IGlucHV0PEZvcm1GaWVsZD4oKTtcclxuXHRwcm9wczogSW1hZ2VQcm9wcyA9IHt9O1xyXG5cdGltYWdlTGlzdDogc3RyaW5nW10gPSBbXTtcclxuXHRkZWxldGVIb29rczogT2JzZXJ2YWJsZTxhbnk+W10gPSBbXTtcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcblx0XHRwcml2YXRlIGFjdGlvbjogQWN0aW9uU2VydmljZSxcclxuXHRcdHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuXHQpIHtcclxuXHRcdGVmZmVjdCgoKSA9PiB7XHJcblx0XHRcdGlmICh0aGlzLmZpZWxkKCkpIHtcclxuXHRcdFx0XHR0aGlzLnByb3BzID0gdGhpcy5maWVsZCgpIS5pbWFnZVByb3BzITtcclxuXHRcdFx0XHR0aGlzLmhhbmRsZURpc2FibGVkKCk7XHJcblx0XHRcdFx0dGhpcy5oYW5kbGVNb2RlbENoYW5nZSgpO1xyXG5cdFx0XHRcdHRoaXMuYWZ0ZXJTdWJtaXQoKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0XHRlZmZlY3QoKCkgPT4ge1xyXG5cdFx0XHRjb25zdCBsYWJlbEFjdGlvbiA9IHRoaXMuYWN0aW9uLmdldEZpZWxkTGFiZWxBY3Rpb24oKTtcclxuXHRcdFx0aWYgKCFsYWJlbEFjdGlvbiB8fCBsYWJlbEFjdGlvbj8ua2V5ICE9IHRoaXMuZmllbGQoKT8udXVpZCkge1xyXG5cdFx0XHRcdHJldHVybjtcclxuXHRcdFx0fVxyXG5cdFx0XHRpZiAobGFiZWxBY3Rpb24udHlwZSA9PSAnbW91c2VlbnRlcicpIHtcclxuXHRcdFx0XHR0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuaW1hZ2VDb21wUmVmLm5hdGl2ZUVsZW1lbnQsICduZy1ob3ZlcmVkJyk7XHJcblx0XHRcdH0gZWxzZSBpZiAobGFiZWxBY3Rpb24udHlwZSA9PSAnbW91c2VsZWF2ZScpIHtcclxuXHRcdFx0XHR0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuaW1hZ2VDb21wUmVmLm5hdGl2ZUVsZW1lbnQsICduZy1ob3ZlcmVkJyk7XHJcblx0XHRcdH0gZWxzZSBpZiAobGFiZWxBY3Rpb24udHlwZSA9PSAnY2xpY2snKSB7XHJcblx0XHRcdFx0dGhpcy5pbWFnZUNvbXBSZWYubmF0aXZlRWxlbWVudC5jbGljaygpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdGNob29zZShldmVudDogYW55LCBjYWxsYmFjazogYW55KSB7XHJcblx0XHRpZiAodGhpcy5maWVsZCgpPy5maWVsZENvbnRyb2w/LmRpc2FibGVkKSB7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdGNhbGxiYWNrKCk7XHJcblx0fVxyXG5cclxuXHR1cGxvYWRJbWFnZShmaWxlOiBGaWxlKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XHJcblx0XHRmb3JtRGF0YS5hcHBlbmQoJ2ZpbGUnLCBmaWxlKTtcclxuXHRcdHJldHVybiB0aGlzLmh0dHBcclxuXHRcdFx0LnJlcXVlc3QoXHJcblx0XHRcdFx0bmV3IEh0dHBSZXF1ZXN0KCdQT1NUJywgJ2ltYWdlVXBsb2FkJywgZm9ybURhdGEsIHtcclxuXHRcdFx0XHRcdHJlcG9ydFByb2dyZXNzOiB0cnVlLFxyXG5cdFx0XHRcdFx0d2l0aENyZWRlbnRpYWxzOiBmYWxzZSxcclxuXHRcdFx0XHR9KSxcclxuXHRcdFx0KVxyXG5cdFx0XHQucGlwZShmaWx0ZXIoKHJlc3BvbnNlOiBIdHRwRXZlbnQ8YW55PikgPT4gcmVzcG9uc2UudHlwZSA9PSBIdHRwRXZlbnRUeXBlLlJlc3BvbnNlKSk7XHJcblx0fVxyXG5cclxuXHRkZWxJbWFnZShpbWFnZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdHJldHVybiB0aGlzLmh0dHAucG9zdCgnaW1hZ2VEZWxldGUnLCB7IGZpZDogaW1hZ2UgfSk7XHJcblx0fVxyXG5cclxuXHR1cGxvYWRIYW5kbGVyKGZpZWxkOiBhbnksIGV2ZW50OiBhbnksIGZ1OiBhbnkpIHtcclxuXHRcdHRoaXMudXBsb2FkSW1hZ2UoZXZlbnQuZmlsZXNbMF0pLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcclxuXHRcdFx0Y29uc29sZS5sb2coJ3Jlc3BvbnNlLmJvZHktLS0tJywgcmVzcG9uc2UuYm9keSk7XHJcblx0XHRcdHRoaXMuaW1hZ2VMaXN0Py5wdXNoKHJlc3BvbnNlLmJvZHkuZmlkKTtcclxuXHRcdFx0Y29uc29sZS5sb2coJ3RoaXMuaW1hZ2VMaXN0LS0tLScsIHRoaXMuaW1hZ2VMaXN0KTtcclxuXHRcdFx0dGhpcy5maWVsZCgpPy5maWVsZENvbnRyb2w/LnNldFZhbHVlKHRoaXMuaW1hZ2VMaXN0KTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0ZGVsZXRlSGFuZGxlcihpbWFnZTogc3RyaW5nLCBpbmRleDogbnVtYmVyKSB7XHJcblx0XHR0aGlzLmRlbGV0ZUhvb2tzLnB1c2godGhpcy5kZWxJbWFnZShpbWFnZSkpO1xyXG5cdFx0dGhpcy5pbWFnZUxpc3QgPSB0aGlzLmltYWdlTGlzdD8uZmlsdGVyKCh2YWx1ZSwgaSkgPT4gaW5kZXggIT0gaSk7XHJcblx0XHR0aGlzLmZpZWxkKCk/LmZpZWxkQ29udHJvbD8uc2V0VmFsdWUodGhpcy5pbWFnZUxpc3QpO1xyXG5cdH1cclxuXHJcblx0aGFuZGxlTW9kZWxDaGFuZ2UoKSB7XHJcblx0XHR0aGlzLmZpZWxkKCk/LmZpZWxkQ29udHJvbD8ubW9kZWxDaGFuZ2Uuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG5cdFx0XHRpZiAodmFsdWUgPT0gbnVsbCkge1xyXG5cdFx0XHRcdHJldHVybjtcclxuXHRcdFx0fVxyXG5cdFx0XHR0aGlzLmltYWdlTGlzdCA9IFsuLi52YWx1ZV07XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdGFmdGVyU3VibWl0KCkge1xyXG5cdFx0dGhpcy5maWVsZCgpPy5maWVsZENvbnRyb2w/LnN1Ym1pdENoYW5nZS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XHJcblx0XHRcdGlmIChCb29sZWFuKHZhbHVlKSkge1xyXG5cdFx0XHRcdHRoaXMuZGVsZXRlSG9va3MuZm9yRWFjaCgoaG9vaykgPT4gaG9vay5zdWJzY3JpYmUoKSk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0aGFuZGxlRGlzYWJsZWQoKSB7XHJcblx0XHRpZiAodGhpcy5wcm9wcz8uZGlzYWJsZWQpIHtcclxuXHRcdFx0dGhpcy5maWVsZCgpIS5maWVsZENvbnRyb2whLmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0YWp1c3RlZEltYWdlKGV2ZW50OiBhbnkpIHtcclxuXHRcdGlmICh0aGlzLnByb3BzPy5hZGp1c3RhYmxlKSB7XHJcblx0XHRcdC8vIOino+WGs+WbvueJh+afpeeci+aXtueahOaTjeS9nOaMiemSru+8iOaXi+i9rOOAgeaUvuWkp+OAgee8qeWwj+OAgeWFs+mXre+8ieS4jeWcqOWxj+W5leWPs+S4iuinkuaYvuekuueahOmXrumimFxyXG5cdFx0XHRsZXQgY2hpbGREaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdwLWltYWdlLXRvb2xiYXInKVswXTtcclxuXHRcdFx0bGV0IHBhcmVudERpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG5cdFx0XHRwYXJlbnREaXYuc3R5bGUud2lkdGggPSAnMTAwdncnO1xyXG5cdFx0XHRwYXJlbnREaXYuc3R5bGUuaGVpZ2h0ID0gJzEwMHZoJztcclxuXHRcdFx0cGFyZW50RGl2LnN0eWxlLnBvc2l0aW9uID0gJ2ZpeGVkJztcclxuXHRcdFx0Y2hpbGREaXY/LnBhcmVudE5vZGU/Lmluc2VydEJlZm9yZShwYXJlbnREaXYsIGNoaWxkRGl2KTtcclxuXHRcdFx0cGFyZW50RGl2LmFwcGVuZENoaWxkKGNoaWxkRGl2KTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIl19
256
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ltbS1lbGVtZW50LXVpL3NyYy9saWIvZm9ybS9mb3JtLXR5cGUvaW1hZ2UudHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEMsT0FBTyxFQUFzQyxXQUFXLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHdEcsT0FBTyxFQUFFLE1BQU0sRUFBd0IsTUFBTSxNQUFNLENBQUM7Ozs7O0FBbUpwRCxNQUFNLE9BQU8sY0FBYztJQU8xQixZQUNTLElBQWdCLEVBQ2hCLE1BQXFCLEVBQ3JCLFFBQW1CO1FBRm5CLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBUjVCLFVBQUssR0FBRyxLQUFLLEVBQWEsQ0FBQztRQUMzQixVQUFLLEdBQWUsRUFBRSxDQUFDO1FBQ3ZCLGNBQVMsR0FBYSxFQUFFLENBQUM7UUFDekIsZ0JBQVcsR0FBc0IsRUFBRSxDQUFDO1FBT25DLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDWCxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO2dCQUNsQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUcsQ0FBQyxVQUFXLENBQUM7Z0JBQ3ZDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDdEIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNwQixDQUFDO1FBQ0YsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1gsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQ3RELElBQUksQ0FBQyxXQUFXLElBQUksV0FBVyxFQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUM7Z0JBQzVELE9BQU87WUFDUixDQUFDO1lBQ0QsSUFBSSxXQUFXLENBQUMsSUFBSSxJQUFJLFlBQVksRUFBRSxDQUFDO2dCQUN0QyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUMsQ0FBQztZQUN2RSxDQUFDO2lCQUFNLElBQUksV0FBVyxDQUFDLElBQUksSUFBSSxZQUFZLEVBQUUsQ0FBQztnQkFDN0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDLENBQUM7WUFDMUUsQ0FBQztpQkFBTSxJQUFJLFdBQVcsQ0FBQyxJQUFJLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3pDLENBQUM7UUFDRixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBVSxFQUFFLFFBQWE7UUFDL0IsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxDQUFDO1lBQzFDLE9BQU87UUFDUixDQUFDO1FBQ0QsUUFBUSxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsV0FBVyxDQUFDLElBQVU7UUFDckIsTUFBTSxRQUFRLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUNoQyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM5QixPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2QsT0FBTyxDQUNQLElBQUksV0FBVyxDQUFDLE1BQU0sRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFO1lBQ2hELGNBQWMsRUFBRSxJQUFJO1lBQ3BCLGVBQWUsRUFBRSxLQUFLO1NBQ3RCLENBQUMsQ0FDRjthQUNBLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUF3QixFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBYTtRQUNyQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxhQUFhLENBQUMsS0FBVSxFQUFFLEtBQVUsRUFBRSxFQUFPO1FBQzVDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ3ZELE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hELElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDeEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDbEQsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLFlBQVksRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3RELENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFhLEVBQUUsS0FBYTtRQUN6QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNsRSxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsWUFBWSxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELFdBQVc7UUFDVixJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsWUFBWSxFQUFFLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUM1RCxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNwQixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7WUFDdEQsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELGdCQUFnQjtRQUNmLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxZQUFZLEVBQUUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQzFELElBQUksS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUNuQixPQUFPO1lBQ1IsQ0FBQztZQUNELElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUNwRCxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxjQUFjO1FBQ2IsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxLQUFLLEVBQUcsQ0FBQyxZQUFhLENBQUMsT0FBTyxDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDM0QsQ0FBQztJQUNGLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBVTtRQUN0QixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLENBQUM7WUFDNUIsd0NBQXdDO1lBQ3hDLElBQUksUUFBUSxHQUFHLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JFLElBQUksU0FBUyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDOUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDO1lBQ2hDLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQztZQUNqQyxTQUFTLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7WUFDbkMsUUFBUSxFQUFFLFVBQVUsRUFBRSxZQUFZLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ3hELFNBQVMsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDakMsQ0FBQztJQUNGLENBQUM7K0dBN0dXLGNBQWM7bUdBQWQsY0FBYyxnU0FDTSxVQUFVLDZCQXhFaEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2lCQW9FTSw0NE1BckVOLFVBQVUsZzVCQUFFLFlBQVksa2JBQUUsS0FBSyxxV0FBRSxtQkFBbUI7OzRGQXdFbEQsY0FBYztrQkF2SDFCLFNBQVM7K0JBQ0MsWUFBWSxjQUNWLElBQUksV0E2Q1AsQ0FBQyxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxtQkFBbUIsQ0FBQyxZQUNyRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7aUJBb0VNO21JQUk2QyxZQUFZO3NCQUF4RSxTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQsIGVmZmVjdCwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGaWxlVXBsb2FkIH0gZnJvbSAncHJpbWVuZy9maWxldXBsb2FkJztcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvYnV0dG9uJztcbmltcG9ydCB7IEltYWdlIH0gZnJvbSAncHJpbWVuZy9pbWFnZSc7XG5pbXBvcnQgeyBGb3JtRmllbGQsIEZpZWxkUHJvcHMsIEF0dHJpYnV0ZUV2ZW50IH0gZnJvbSAnLi4vZm9ybS1maWVsZC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBFdmVudCwgSHR0cEhlYWRlcnMsIEh0dHBSZXF1ZXN0LCBIdHRwRXZlbnRUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQWN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvYWN0aW9uLnNlcnZpY2UnO1xuXG5pbXBvcnQgeyBmaWx0ZXIsIGZvcmtKb2luLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW1hZ2VQcm9wcyBleHRlbmRzIEZpZWxkUHJvcHMge1xuXHR1cmw/OiBzdHJpbmc7XG5cdG1ldGhvZD86ICdwb3N0JyB8ICdwdXQnO1xuXHR3aXRoQ3JlZGVudGlhbHM/OiBib29sZWFuO1xuXHRtYXhGaWxlU2l6ZT86IG51bWJlcjtcblx0cHJldmlld1dpZHRoPzogbnVtYmVyO1xuXHRtb2RlPzogJ2Jhc2ljJyB8ICdhZHZhbmNlZCc7XG5cdGhlYWRlcnM/OiBhbnk7XG5cdGN1c3RvbVVwbG9hZD86IGJvb2xlYW47XG5cdGZpbGVMaW1pdD86IG51bWJlcjtcblx0dXBsb2FkU3R5bGVDbGFzcz86IHN0cmluZztcblx0Y2FuY2VsU3R5bGVDbGFzcz86IHN0cmluZztcblx0cmVtb3ZlU3R5bGVDbGFzcz86IHN0cmluZztcblx0Y2hvb3NlU3R5bGVDbGFzcz86IHN0cmluZztcblx0YWRqdXN0YWJsZT86IGJvb2xlYW47XG5cblx0b25CZWZvcmVVcGxvYWQ/OiBBdHRyaWJ1dGVFdmVudDtcblx0b25TZW5kPzogQXR0cmlidXRlRXZlbnQ7XG5cdG9uVXBsb2FkPzogQXR0cmlidXRlRXZlbnQ7XG5cdG9uRXJyb3I/OiBBdHRyaWJ1dGVFdmVudDtcblx0b25DbGVhcj86IEF0dHJpYnV0ZUV2ZW50O1xuXHRvblJlbW92ZT86IEF0dHJpYnV0ZUV2ZW50O1xuXHRvblNlbGVjdD86IEF0dHJpYnV0ZUV2ZW50O1xuXHRvblByb2dyZXNzPzogQXR0cmlidXRlRXZlbnQ7XG59XG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ2Zvcm0taW1hZ2UnLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRzdHlsZXM6IGBcblx0XHQuZmlsZS1pdGVtIHtcblx0XHRcdGJvcmRlci10b3A6IHNvbGlkIDFweCAjZmZmO1xuXHRcdH1cblx0XHQudXBsb2FkLWJ0biB7XG5cdFx0XHRib3JkZXI6IHNvbGlkIDFweCB0cmFuc3BhcmVudDtcblx0XHR9XG5cdFx0LnVwbG9hZC1idG4udXBsb2FkLWRpc2FibGU6aG92ZXIge1xuXHRcdFx0Y3Vyc29yOiBkZWZhdWx0O1xuXHRcdH1cblx0XHQudXBsb2FkLWJ0bjpub3QoLnVwbG9hZC1kaXNhYmxlKTpob3ZlciB7XG5cdFx0XHRib3JkZXI6IHNvbGlkIDFweCB2YXIoLS1wLXByaW1hcnktY29sb3IpO1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tcC1wcmltYXJ5LTUwKTtcblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHR9XG5cdFx0LnVwbG9hZC1idG46bm90KC51cGxvYWQtZGlzYWJsZSkubmctaG92ZXJlZCB7XG5cdFx0XHRib3JkZXI6IHNvbGlkIDFweCB2YXIoLS1wLXByaW1hcnktY29sb3IpO1xuXHRcdFx0YmFja2dyb3VuZDogdmFyKC0tcC1wcmltYXJ5LTUwKTtcblx0XHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHR9XG5cdFx0LmZpbGUtbmFtZSB7XG5cdFx0XHRmb250LXNpemU6IDEycHg7XG5cdFx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdFx0XHRjb2xvcjogdmFyKC0tcC1wcmltYXJ5LWNvbG9yKSAhaW1wb3J0YW50O1xuXHRcdH1cblx0XHQvLyAuZmlsZS1uYW1lOmhvdmVyIHtcblx0XHQvLyBcdGN1cnNvcjogcG9pbnRlcjtcblx0XHQvLyBcdGNvbG9yOiB2YXIoLS1wLXByaW1hcnktY29sb3IpO1xuXHRcdC8vIH1cblx0XHQ6aG9zdCA6Om5nLWRlZXAge1xuXHRcdFx0LnAtaW1hZ2UtcHJldmlldy1tYXNrIHtcblx0XHRcdFx0cG9zaXRpb246IGluaGVyaXQ7XG5cdFx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0XHRcdGp1c3RpZnktY29udGVudDogbGVmdDtcblx0XHRcdFx0Y29sb3I6ICMzMzQxNTU7XG5cdFx0XHR9XG5cdFx0XHRwLWltYWdlIHtcblx0XHRcdFx0LnAtaW1hZ2Uge1xuXHRcdFx0XHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdFx0XHRjb2xvcjogdmFyKC0tcC1wcmltYXJ5LWNvbG9yKSAhaW1wb3J0YW50O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRgLFxuXHRpbXBvcnRzOiBbRmlsZVVwbG9hZCwgQnV0dG9uTW9kdWxlLCBJbWFnZSwgUmVhY3RpdmVGb3Jtc01vZHVsZV0sXG5cdHRlbXBsYXRlOiBgPHAtZmlsZVVwbG9hZFxuXHRcdCNmdVxuXHRcdGF1dG9cblx0XHRbbmFtZV09XCJwcm9wcy5uYW1lXCJcblx0XHRbdXJsXT1cInByb3BzLnVybFwiXG5cdFx0W21ldGhvZF09XCJwcm9wcy5tZXRob2QgPz8gJ3Bvc3QnXCJcblx0XHRhY2NlcHQ9XCJpbWFnZS8qXCJcblx0XHRbd2l0aENyZWRlbnRpYWxzXT1cInByb3BzLndpdGhDcmVkZW50aWFsc1wiXG5cdFx0W21heEZpbGVTaXplXT1cInByb3BzLm1heEZpbGVTaXplXCJcblx0XHRbc3R5bGVDbGFzc109XCJwcm9wcy5zdHlsZUNsYXNzXCJcblx0XHRbcHJldmlld1dpZHRoXT1cInByb3BzLnByZXZpZXdXaWR0aCA/PyA1MFwiXG5cdFx0W21vZGVdPVwicHJvcHMubW9kZSA/PyAnYWR2YW5jZWQnXCJcblx0XHRbaGVhZGVyc109XCJwcm9wcy5oZWFkZXJzXCJcblx0XHRbZmlsZUxpbWl0XT1cInByb3BzLmZpbGVMaW1pdFwiXG5cdFx0W2N1c3RvbVVwbG9hZF09XCJwcm9wcy5jdXN0b21VcGxvYWQgPz8gdHJ1ZVwiXG5cdFx0KG9uQmVmb3JlVXBsb2FkKT1cInByb3BzLm9uQmVmb3JlVXBsb2FkPy4oZmllbGQoKSEsICRldmVudClcIlxuXHRcdChvblNlbmQpPVwicHJvcHMub25TZW5kPy4oZmllbGQoKSEsICRldmVudClcIlxuXHRcdChvblVwbG9hZCk9XCJwcm9wcy5vblVwbG9hZD8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcblx0XHQob25FcnJvcik9XCJwcm9wcy5vbkVycm9yPy4oZmllbGQoKSEsICRldmVudClcIlxuXHRcdChvbkNsZWFyKT1cInByb3BzLm9uQ2xlYXI/LihmaWVsZCgpISwgJGV2ZW50KVwiXG5cdFx0KG9uUmVtb3ZlKT1cInByb3BzLm9uUmVtb3ZlPy4oZmllbGQoKSEsICRldmVudClcIlxuXHRcdChvblNlbGVjdCk9XCJwcm9wcy5vblNlbGVjdD8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcblx0XHQob25Qcm9ncmVzcyk9XCJwcm9wcy5vblByb2dyZXNzPy4oZmllbGQoKSEsICRldmVudClcIlxuXHRcdCh1cGxvYWRIYW5kbGVyKT1cInVwbG9hZEhhbmRsZXIoZmllbGQoKSEsICRldmVudCwgZnUpXCI+XG5cdFx0PG5nLXRlbXBsYXRlXG5cdFx0XHQjaGVhZGVyXG5cdFx0XHRsZXQtY2hvb3NlQ2FsbGJhY2s9XCJjaG9vc2VDYWxsYmFja1wiPlxuXHRcdFx0PGRpdlxuXHRcdFx0XHQjaW1hZ2VDb21wXG5cdFx0XHRcdFtjbGFzc109XCInZmxleCBqdXN0aWZ5LWNlbnRlciB3LWZ1bGwgdXBsb2FkLWJ0bicgKyAoZmllbGQoKT8uZmllbGRDb250cm9sPy5kaXNhYmxlZCA/ICcgdXBsb2FkLWRpc2FibGUnIDogJycpXCJcblx0XHRcdFx0KGNsaWNrKT1cImNob29zZSgkZXZlbnQsIGNob29zZUNhbGxiYWNrKVwiPlxuXHRcdFx0XHQ8c3BhblxuXHRcdFx0XHRcdD48c3BhblxuXHRcdFx0XHRcdFx0c3R5bGU9XCJmb250LXNpemU6IDEycHg7IG1hcmdpbi1yaWdodDogMi41cHhcIlxuXHRcdFx0XHRcdFx0Y2xhc3M9XCJwaSBwaS11cGxvYWRcIj48L3NwYW5cblx0XHRcdFx0XHQ+5LiK5LygPC9zcGFuXG5cdFx0XHRcdD5cblx0XHRcdDwvZGl2PlxuXHRcdDwvbmctdGVtcGxhdGU+XG5cdFx0PG5nLXRlbXBsYXRlICNjb250ZW50PlxuXHRcdFx0QGlmIChpbWFnZUxpc3QubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRAZm9yIChpbWFnZSBvZiBpbWFnZUxpc3Q7IHRyYWNrIGltYWdlOyBsZXQgaW5kZXggPSAkaW5kZXgpIHtcblx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyIGZpbGUtaXRlbVwiPlxuXHRcdFx0XHRcdFx0PHAtaW1hZ2Vcblx0XHRcdFx0XHRcdFx0W3NyY109XCInaHR0cHM6Ly9ocmltYWdlLm15Zm9vZGllcGV0LmNvbS8vJyArIGltYWdlXCJcblx0XHRcdFx0XHRcdFx0W3ByZXZpZXddPVwidHJ1ZVwiXG5cdFx0XHRcdFx0XHRcdChvblNob3cpPVwiYWp1c3RlZEltYWdlKCRldmVudClcIlxuXHRcdFx0XHRcdFx0XHRhbHQ9XCJJbWFnZVwiPlxuXHRcdFx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgI2luZGljYXRvcj5cblx0XHRcdFx0XHRcdFx0XHQ8c3BhbiBjbGFzcz1cImZpbGUtbmFtZVwiPnt7IGltYWdlIH19PC9zcGFuPlxuXHRcdFx0XHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxuXHRcdFx0XHRcdFx0XHQ8bmctdGVtcGxhdGUgI2ltYWdlPlxuXHRcdFx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwiZmlsZS1uYW1lXCI+e3sgaW1hZ2UgfX08L3NwYW4+XG5cdFx0XHRcdFx0XHRcdDwvbmctdGVtcGxhdGU+XG5cdFx0XHRcdFx0XHQ8L3AtaW1hZ2U+XG5cdFx0XHRcdFx0XHRAaWYgKCFmaWVsZCgpPy5maWVsZENvbnRyb2w/LmRpc2FibGVkKSB7XG5cdFx0XHRcdFx0XHRcdDxwLWJ1dHRvblxuXHRcdFx0XHRcdFx0XHRcdGljb249XCJwaSBwaS10aW1lc1wiXG5cdFx0XHRcdFx0XHRcdFx0c2V2ZXJpdHk9XCJkYW5nZXJcIlxuXHRcdFx0XHRcdFx0XHRcdHNpemU9XCJzbWFsbFwiXG5cdFx0XHRcdFx0XHRcdFx0KG9uQ2xpY2spPVwiZGVsZXRlSGFuZGxlcihpbWFnZSwgaW5kZXgpXCJcblx0XHRcdFx0XHRcdFx0XHRbdGV4dF09XCJ0cnVlXCIgLz5cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdDwvbmctdGVtcGxhdGU+XG5cdFx0PG5nLXRlbXBsYXRlICNmaWxlPiA8L25nLXRlbXBsYXRlPlxuXHQ8L3AtZmlsZVVwbG9hZD5gLFxuXHRzdHlsZVVybDogJy4uLy4uL3N0eWxlcy9zdHlsZXMuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIEltYWdlQ29tcG9uZW50IHtcblx0QFZpZXdDaGlsZCgnaW1hZ2VDb21wJywgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IGZhbHNlIH0pIGltYWdlQ29tcFJlZiE6IEVsZW1lbnRSZWY7XG5cdGZpZWxkID0gaW5wdXQ8Rm9ybUZpZWxkPigpO1xuXHRwcm9wczogSW1hZ2VQcm9wcyA9IHt9O1xuXHRpbWFnZUxpc3Q6IHN0cmluZ1tdID0gW107XG5cdGRlbGV0ZUhvb2tzOiBPYnNlcnZhYmxlPGFueT5bXSA9IFtdO1xuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcblx0XHRwcml2YXRlIGFjdGlvbjogQWN0aW9uU2VydmljZSxcblx0XHRwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG5cdCkge1xuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRpZiAodGhpcy5maWVsZCgpKSB7XG5cdFx0XHRcdHRoaXMucHJvcHMgPSB0aGlzLmZpZWxkKCkhLmltYWdlUHJvcHMhO1xuXHRcdFx0XHR0aGlzLmhhbmRsZURpc2FibGVkKCk7XG5cdFx0XHRcdHRoaXMuaGFuZGxlSG9va0NoYW5nZSgpO1xuXHRcdFx0XHR0aGlzLmFmdGVyU3VibWl0KCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0ZWZmZWN0KCgpID0+IHtcblx0XHRcdGNvbnN0IGxhYmVsQWN0aW9uID0gdGhpcy5hY3Rpb24uZ2V0RmllbGRMYWJlbEFjdGlvbigpO1xuXHRcdFx0aWYgKCFsYWJlbEFjdGlvbiB8fCBsYWJlbEFjdGlvbj8ua2V5ICE9IHRoaXMuZmllbGQoKT8udXVpZCkge1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHRpZiAobGFiZWxBY3Rpb24udHlwZSA9PSAnbW91c2VlbnRlcicpIHtcblx0XHRcdFx0dGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmltYWdlQ29tcFJlZi5uYXRpdmVFbGVtZW50LCAnbmctaG92ZXJlZCcpO1xuXHRcdFx0fSBlbHNlIGlmIChsYWJlbEFjdGlvbi50eXBlID09ICdtb3VzZWxlYXZlJykge1xuXHRcdFx0XHR0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuaW1hZ2VDb21wUmVmLm5hdGl2ZUVsZW1lbnQsICduZy1ob3ZlcmVkJyk7XG5cdFx0XHR9IGVsc2UgaWYgKGxhYmVsQWN0aW9uLnR5cGUgPT0gJ2NsaWNrJykge1xuXHRcdFx0XHR0aGlzLmltYWdlQ29tcFJlZi5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRjaG9vc2UoZXZlbnQ6IGFueSwgY2FsbGJhY2s6IGFueSkge1xuXHRcdGlmICh0aGlzLmZpZWxkKCk/LmZpZWxkQ29udHJvbD8uZGlzYWJsZWQpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0Y2FsbGJhY2soKTtcblx0fVxuXG5cdHVwbG9hZEltYWdlKGZpbGU6IEZpbGUpOiBPYnNlcnZhYmxlPGFueT4ge1xuXHRcdGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG5cdFx0Zm9ybURhdGEuYXBwZW5kKCdmaWxlJywgZmlsZSk7XG5cdFx0cmV0dXJuIHRoaXMuaHR0cFxuXHRcdFx0LnJlcXVlc3QoXG5cdFx0XHRcdG5ldyBIdHRwUmVxdWVzdCgnUE9TVCcsICdpbWFnZVVwbG9hZCcsIGZvcm1EYXRhLCB7XG5cdFx0XHRcdFx0cmVwb3J0UHJvZ3Jlc3M6IHRydWUsXG5cdFx0XHRcdFx0d2l0aENyZWRlbnRpYWxzOiBmYWxzZSxcblx0XHRcdFx0fSksXG5cdFx0XHQpXG5cdFx0XHQucGlwZShmaWx0ZXIoKHJlc3BvbnNlOiBIdHRwRXZlbnQ8YW55PikgPT4gcmVzcG9uc2UudHlwZSA9PSBIdHRwRXZlbnRUeXBlLlJlc3BvbnNlKSk7XG5cdH1cblxuXHRkZWxJbWFnZShpbWFnZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcblx0XHRyZXR1cm4gdGhpcy5odHRwLnBvc3QoJ2ltYWdlRGVsZXRlJywgeyBmaWQ6IGltYWdlIH0pO1xuXHR9XG5cblx0dXBsb2FkSGFuZGxlcihmaWVsZDogYW55LCBldmVudDogYW55LCBmdTogYW55KSB7XG5cdFx0dGhpcy51cGxvYWRJbWFnZShldmVudC5maWxlc1swXSkuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xuXHRcdFx0Y29uc29sZS5sb2coJ3Jlc3BvbnNlLmJvZHktLS0tJywgcmVzcG9uc2UuYm9keSk7XG5cdFx0XHR0aGlzLmltYWdlTGlzdD8ucHVzaChyZXNwb25zZS5ib2R5LmZpZCk7XG5cdFx0XHRjb25zb2xlLmxvZygndGhpcy5pbWFnZUxpc3QtLS0tJywgdGhpcy5pbWFnZUxpc3QpO1xuXHRcdFx0dGhpcy5maWVsZCgpPy5maWVsZENvbnRyb2w/LnNldFZhbHVlKHRoaXMuaW1hZ2VMaXN0KTtcblx0XHR9KTtcblx0fVxuXG5cdGRlbGV0ZUhhbmRsZXIoaW1hZ2U6IHN0cmluZywgaW5kZXg6IG51bWJlcikge1xuXHRcdHRoaXMuZGVsZXRlSG9va3MucHVzaCh0aGlzLmRlbEltYWdlKGltYWdlKSk7XG5cdFx0dGhpcy5pbWFnZUxpc3QgPSB0aGlzLmltYWdlTGlzdD8uZmlsdGVyKCh2YWx1ZSwgaSkgPT4gaW5kZXggIT0gaSk7XG5cdFx0dGhpcy5maWVsZCgpPy5maWVsZENvbnRyb2w/LnNldFZhbHVlKHRoaXMuaW1hZ2VMaXN0KTtcblx0fVxuXG5cdGFmdGVyU3VibWl0KCkge1xuXHRcdHRoaXMuZmllbGQoKT8uZmllbGRDb250cm9sPy5zdWJtaXRDaGFuZ2Uuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuXHRcdFx0aWYgKEJvb2xlYW4odmFsdWUpKSB7XG5cdFx0XHRcdHRoaXMuZGVsZXRlSG9va3MuZm9yRWFjaCgoaG9vaykgPT4gaG9vay5zdWJzY3JpYmUoKSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblxuXHRoYW5kbGVIb29rQ2hhbmdlKCkge1xuXHRcdHRoaXMuZmllbGQoKT8uZmllbGRDb250cm9sPy5ob29rQ2hhbmdlLnN1YnNjcmliZSgodmFsdWUpID0+IHtcblx0XHRcdGlmICh2YWx1ZSA9PSBudWxsKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblx0XHRcdHRoaXMucHJvcHMub25Ib29rQ2hhbmdlPy4odGhpcy5maWVsZCgpISwgeyB2YWx1ZSB9KTtcblx0XHRcdHRoaXMuaW1hZ2VMaXN0ID0gWy4uLnZhbHVlXTtcblx0XHR9KTtcblx0fVxuXG5cdGhhbmRsZURpc2FibGVkKCkge1xuXHRcdGlmICh0aGlzLnByb3BzPy5kaXNhYmxlZCkge1xuXHRcdFx0dGhpcy5maWVsZCgpIS5maWVsZENvbnRyb2whLmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuXHRcdH1cblx0fVxuXG5cdGFqdXN0ZWRJbWFnZShldmVudDogYW55KSB7XG5cdFx0aWYgKHRoaXMucHJvcHM/LmFkanVzdGFibGUpIHtcblx0XHRcdC8vIOino+WGs+WbvueJh+afpeeci+aXtueahOaTjeS9nOaMiemSru+8iOaXi+i9rOOAgeaUvuWkp+OAgee8qeWwj+OAgeWFs+mXre+8ieS4jeWcqOWxj+W5leWPs+S4iuinkuaYvuekuueahOmXrumimFxuXHRcdFx0bGV0IGNoaWxkRGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgncC1pbWFnZS10b29sYmFyJylbMF07XG5cdFx0XHRsZXQgcGFyZW50RGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG5cdFx0XHRwYXJlbnREaXYuc3R5bGUud2lkdGggPSAnMTAwdncnO1xuXHRcdFx0cGFyZW50RGl2LnN0eWxlLmhlaWdodCA9ICcxMDB2aCc7XG5cdFx0XHRwYXJlbnREaXYuc3R5bGUucG9zaXRpb24gPSAnZml4ZWQnO1xuXHRcdFx0Y2hpbGREaXY/LnBhcmVudE5vZGU/Lmluc2VydEJlZm9yZShwYXJlbnREaXYsIGNoaWxkRGl2KTtcblx0XHRcdHBhcmVudERpdi5hcHBlbmRDaGlsZChjaGlsZERpdik7XG5cdFx0fVxuXHR9XG59XG4iXX0=