fx-form-builder-wrapper 0.0.92 → 0.0.94

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.
@@ -6,6 +6,7 @@ import { DynamicTableComponent } from '../dynamic-table/dynamic-table.component'
6
6
  import { ToggleButtonComponent } from '../toggle-button/toggle-button.component';
7
7
  import { UploaderComponent } from '../uploader/uploader.component';
8
8
  import { ToggleComponent } from '../toggle/toggle.component';
9
+ import { UploaderCheckboxComponent } from '../uploader-checkbox/uploader-checkbox.component';
9
10
  import * as i0 from "@angular/core";
10
11
  import * as i1 from "../../fx-builder-wrapper.service";
11
12
  export class FxFormWrapperComponent {
@@ -49,7 +50,8 @@ export class FxFormWrapperComponent {
49
50
  { name: 'Dynamic Table', key: 'dynamic-table', component: DynamicTableComponent },
50
51
  { name: 'Toggle Button', key: 'toggle-button', component: ToggleButtonComponent },
51
52
  { name: 'Uploader', key: 'uploader', component: UploaderComponent },
52
- { name: 'Toggle', key: 'toggle', component: ToggleComponent }
53
+ { name: 'Toggle', key: 'toggle', component: ToggleComponent },
54
+ { name: 'Uploader with Checkbox', key: 'uploader-checkbox', component: UploaderCheckboxComponent }
53
55
  ];
54
56
  components.forEach(({ name, key, component }) => {
55
57
  if (!this.fxWrapperService.getComponent(key)) {
@@ -100,4 +102,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
100
102
  }], fxFormSubmit: [{
101
103
  type: Output
102
104
  }] } });
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZngtZm9ybS1jb21wb25lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZngtYnVpbGRlci13cmFwcGVyL3NyYy9saWIvY29tcG9uZW50cy9meC1mb3JtLWNvbXBvbmVudC9meC1mb3JtLWNvbXBvbmVudC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFpQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUFVLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzlELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHVFQUF1RSxDQUFDO0FBRWxILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7O0FBZ0I3RCxNQUFNLE9BQU8sc0JBQXNCO0lBTWI7SUFMRCxJQUFJLENBQW1CO0lBQ2pDLE1BQU0sQ0FBVTtJQUNoQixTQUFTLENBQU07SUFDZCxZQUFZLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUVqRCxZQUFvQixnQkFBeUM7UUFBekMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUF5QjtRQUMzRCxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUssV0FBVyxDQUFDLE9BQXNCO1FBQ3ZDLHFEQUFxRDtRQUNyRCwyREFBMkQ7UUFDM0QsSUFBSTtRQUNKLElBQUksV0FBVyxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN4RCxDQUFDO0lBQ0gsQ0FBQztJQUVNLFFBQVE7UUFDYiw0RUFBNEU7UUFDNUUsMEhBQTBIO1FBQzFILElBQUk7UUFDSix1RUFBdUU7UUFDdkUsNEdBQTRHO1FBQzVHLElBQUk7UUFDSix1RUFBdUU7UUFDdkUsNEdBQTRHO1FBQzVHLElBQUk7UUFDSixrRUFBa0U7UUFDbEUsOEZBQThGO1FBQzlGLElBQUk7UUFDSixnRUFBZ0U7UUFDaEUsd0ZBQXdGO1FBQ3hGLElBQUk7SUFDTixDQUFDO0lBR08sd0JBQXdCO1FBQzlCLE1BQU0sVUFBVSxHQUFHO1lBQ2pCLEVBQUUsSUFBSSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUseUJBQXlCLEVBQUU7WUFDL0YsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLEdBQUcsRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFO1lBQ2pGLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxHQUFHLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRTtZQUNqRixFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUU7WUFDbkUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtTQUM5RCxDQUFDO1FBRUYsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO1lBQzlDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQzdDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ3RFLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxRQUFRLENBQUMsS0FBVTtRQUN4QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRU0sTUFBTTtRQUNYLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDckIsQ0FBQzt3R0E1RFUsc0JBQXNCOzRGQUF0QixzQkFBc0IsaVNBVnZCOzs7Ozs7OztHQVFULDJEQVRTLFlBQVksK0JBQUUsZUFBZTs7NEZBVzVCLHNCQUFzQjtrQkFkbEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGVBQWUsQ0FBQztvQkFDeEMsUUFBUSxFQUFFOzs7Ozs7OztHQVFUO2lCQUNGOzRGQUVvQixJQUFJO3NCQUF0QixTQUFTO3VCQUFDLE1BQU07Z0JBQ1IsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0ksWUFBWTtzQkFBckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZ4Rm9ybSwgRnhGb3JtQ29tcG9uZW50IH0gZnJvbSAnQGluc3RhbnRzeXMtbGFicy9meCc7XHJcbmltcG9ydCB7IERpc3BhdGNoVG9DbGluaWNDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jdXN0b20tY29udHJvbHMvZGlzcGF0Y2gtdG8tY2xpbmljL2Rpc3BhdGNoLXRvLWNsaW5pYy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGeEJ1aWxkZXJXcmFwcGVyU2VydmljZSB9IGZyb20gJy4uLy4uL2Z4LWJ1aWxkZXItd3JhcHBlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRHluYW1pY1RhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vZHluYW1pYy10YWJsZS9keW5hbWljLXRhYmxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRvZ2dsZUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uL3RvZ2dsZS1idXR0b24vdG9nZ2xlLWJ1dHRvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBVcGxvYWRlckNvbXBvbmVudCB9IGZyb20gJy4uL3VwbG9hZGVyL3VwbG9hZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRvZ2dsZUNvbXBvbmVudCB9IGZyb20gJy4uL3RvZ2dsZS90b2dnbGUuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZngtZm9ybS1jb21wb25lbnQnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRnhGb3JtQ29tcG9uZW50XSxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGZ4LWZvcm0gXHJcbiAgICAgIFtmeEZvcm1dPVwiZnhGb3JtXCIgXHJcbiAgICAgIFt2YWx1ZV09XCJ2YXJpYWJsZXNcIiBcclxuICAgICAgKG9uU3VibWl0KT1cIm9uU3VibWl0KCRldmVudClcIiBcclxuICAgICAgI2Zvcm1cclxuICAgID5cclxuICAgIDwvZngtZm9ybT5cclxuICBgLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRnhGb3JtV3JhcHBlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0IHtcclxuICBAVmlld0NoaWxkKCdmb3JtJykgZm9ybSE6IEZ4Rm9ybUNvbXBvbmVudDtcclxuICBASW5wdXQoKSBmeEZvcm0hOiBGeEZvcm07XHJcbiAgQElucHV0KCkgdmFyaWFibGVzOiBhbnk7XHJcbiAgQE91dHB1dCgpIGZ4Rm9ybVN1Ym1pdCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZ4V3JhcHBlclNlcnZpY2U6IEZ4QnVpbGRlcldyYXBwZXJTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLnJlZ2lzdGVyQ3VzdG9tQ29tcG9uZW50cygpO1xyXG4gICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7IFxyXG4gICAgLy8gaWYoJ3ZhcmlhYmxlcycgaW4gY2hhbmdlcyAmJiAhY2hhbmdlc1snZnhGb3JtJ10pIHtcclxuICAgIC8vICAgdGhpcy5meFdyYXBwZXJTZXJ2aWNlLnZhcmlhYmxlcyQubmV4dCh0aGlzLnZhcmlhYmxlcyk7XHJcbiAgICAvLyB9XHJcbiAgICBpZiAoJ3ZhcmlhYmxlcycgaW4gY2hhbmdlcykge1xyXG4gICAgICB0aGlzLmZ4V3JhcHBlclNlcnZpY2UudmFyaWFibGVzJC5uZXh0KHRoaXMudmFyaWFibGVzKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIC8vIGlmICghQm9vbGVhbih0aGlzLmZ4V3JhcHBlclNlcnZpY2UuZ2V0Q29tcG9uZW50KCdkaXNwYXRjaC10by1jbGluaWMnKSkpIHtcclxuICAgIC8vICAgdGhpcy5meFdyYXBwZXJTZXJ2aWNlLnJlZ2lzdGVyQ3VzdG9tQ29tcG9uZW50KCdEaXNwYXRjaCBUbyBDbGluaWMnLCAnZGlzcGF0Y2gtdG8tY2xpbmljJywgRGlzcGF0Y2hUb0NsaW5pY0NvbXBvbmVudCk7XHJcbiAgICAvLyB9XHJcbiAgICAvLyBpZiAoIUJvb2xlYW4odGhpcy5meFdyYXBwZXJTZXJ2aWNlLmdldENvbXBvbmVudCgnZHluYW1pYy10YWJsZScpKSkge1xyXG4gICAgLy8gICB0aGlzLmZ4V3JhcHBlclNlcnZpY2UucmVnaXN0ZXJDdXN0b21Db21wb25lbnQoJ0R5bmFtaWMgVGFibGUnLCAnZHluYW1pYy10YWJsZScsIER5bmFtaWNUYWJsZUNvbXBvbmVudCk7XHJcbiAgICAvLyB9XHJcbiAgICAvLyBpZiAoIUJvb2xlYW4odGhpcy5meFdyYXBwZXJTZXJ2aWNlLmdldENvbXBvbmVudCgndG9nZ2xlLWJ1dHRvbicpKSkge1xyXG4gICAgLy8gICB0aGlzLmZ4V3JhcHBlclNlcnZpY2UucmVnaXN0ZXJDdXN0b21Db21wb25lbnQoJ1RvZ2dsZSBCdXR0b24nLCAndG9nZ2xlLWJ1dHRvbicsIFRvZ2dsZUJ1dHRvbkNvbXBvbmVudCk7XHJcbiAgICAvLyB9XHJcbiAgICAvLyBpZiAoIUJvb2xlYW4odGhpcy5meFdyYXBwZXJTZXJ2aWNlLmdldENvbXBvbmVudCgndXBsb2FkZXInKSkpIHtcclxuICAgIC8vICAgdGhpcy5meFdyYXBwZXJTZXJ2aWNlLnJlZ2lzdGVyQ3VzdG9tQ29tcG9uZW50KCdVcGxvYWRlcicsICd1cGxvYWRlcicsIFVwbG9hZGVyQ29tcG9uZW50KTtcclxuICAgIC8vIH1cclxuICAgIC8vIGlmICghQm9vbGVhbih0aGlzLmZ4V3JhcHBlclNlcnZpY2UuZ2V0Q29tcG9uZW50KCd0b2dnbGUnKSkpIHtcclxuICAgIC8vICAgdGhpcy5meFdyYXBwZXJTZXJ2aWNlLnJlZ2lzdGVyQ3VzdG9tQ29tcG9uZW50KCdUb2dnbGUnLCAndG9nZ2xlJywgVG9nZ2xlQ29tcG9uZW50KTtcclxuICAgIC8vIH1cclxuICB9XHJcblxyXG5cclxuICBwcml2YXRlIHJlZ2lzdGVyQ3VzdG9tQ29tcG9uZW50cygpOiB2b2lkIHtcclxuICAgIGNvbnN0IGNvbXBvbmVudHMgPSBbXHJcbiAgICAgIHsgbmFtZTogJ0Rpc3BhdGNoIFRvIENsaW5pYycsIGtleTogJ2Rpc3BhdGNoLXRvLWNsaW5pYycsIGNvbXBvbmVudDogRGlzcGF0Y2hUb0NsaW5pY0NvbXBvbmVudCB9LFxyXG4gICAgICB7IG5hbWU6ICdEeW5hbWljIFRhYmxlJywga2V5OiAnZHluYW1pYy10YWJsZScsIGNvbXBvbmVudDogRHluYW1pY1RhYmxlQ29tcG9uZW50IH0sXHJcbiAgICAgIHsgbmFtZTogJ1RvZ2dsZSBCdXR0b24nLCBrZXk6ICd0b2dnbGUtYnV0dG9uJywgY29tcG9uZW50OiBUb2dnbGVCdXR0b25Db21wb25lbnQgfSxcclxuICAgICAgeyBuYW1lOiAnVXBsb2FkZXInLCBrZXk6ICd1cGxvYWRlcicsIGNvbXBvbmVudDogVXBsb2FkZXJDb21wb25lbnQgfSxcclxuICAgICAgeyBuYW1lOiAnVG9nZ2xlJywga2V5OiAndG9nZ2xlJywgY29tcG9uZW50OiBUb2dnbGVDb21wb25lbnQgfVxyXG4gICAgXTtcclxuICAgIFxyXG4gICAgY29tcG9uZW50cy5mb3JFYWNoKCh7IG5hbWUsIGtleSwgY29tcG9uZW50IH0pID0+IHtcclxuICAgICAgaWYgKCF0aGlzLmZ4V3JhcHBlclNlcnZpY2UuZ2V0Q29tcG9uZW50KGtleSkpIHtcclxuICAgICAgICB0aGlzLmZ4V3JhcHBlclNlcnZpY2UucmVnaXN0ZXJDdXN0b21Db21wb25lbnQobmFtZSwga2V5LCBjb21wb25lbnQpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblN1Ym1pdChldmVudDogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLmZ4Rm9ybVN1Ym1pdC5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdWJtaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvcm0uc3VibWl0KCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZngtZm9ybS1jb21wb25lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZngtYnVpbGRlci13cmFwcGVyL3NyYy9saWIvY29tcG9uZW50cy9meC1mb3JtLWNvbXBvbmVudC9meC1mb3JtLWNvbXBvbmVudC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFpQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUFVLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzlELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHVFQUF1RSxDQUFDO0FBRWxILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQzs7O0FBZ0I3RixNQUFNLE9BQU8sc0JBQXNCO0lBTWI7SUFMRCxJQUFJLENBQW1CO0lBQ2pDLE1BQU0sQ0FBVTtJQUNoQixTQUFTLENBQU07SUFDZCxZQUFZLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUVqRCxZQUFvQixnQkFBeUM7UUFBekMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUF5QjtRQUMzRCxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBRUssV0FBVyxDQUFDLE9BQXNCO1FBQ3ZDLHFEQUFxRDtRQUNyRCwyREFBMkQ7UUFDM0QsSUFBSTtRQUNKLElBQUksV0FBVyxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN4RCxDQUFDO0lBQ0gsQ0FBQztJQUVNLFFBQVE7UUFDYiw0RUFBNEU7UUFDNUUsMEhBQTBIO1FBQzFILElBQUk7UUFDSix1RUFBdUU7UUFDdkUsNEdBQTRHO1FBQzVHLElBQUk7UUFDSix1RUFBdUU7UUFDdkUsNEdBQTRHO1FBQzVHLElBQUk7UUFDSixrRUFBa0U7UUFDbEUsOEZBQThGO1FBQzlGLElBQUk7UUFDSixnRUFBZ0U7UUFDaEUsd0ZBQXdGO1FBQ3hGLElBQUk7SUFDTixDQUFDO0lBR08sd0JBQXdCO1FBQzlCLE1BQU0sVUFBVSxHQUFHO1lBQ2pCLEVBQUUsSUFBSSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUseUJBQXlCLEVBQUU7WUFDL0YsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLEdBQUcsRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFO1lBQ2pGLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxHQUFHLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxxQkFBcUIsRUFBRTtZQUNqRixFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUU7WUFDbkUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtZQUM3RCxFQUFFLElBQUksRUFBRSx3QkFBd0IsRUFBRSxHQUFHLEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLHlCQUF5QixFQUFFO1NBQ25HLENBQUM7UUFFRixVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7WUFDOUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDN0MsSUFBSSxDQUFDLGdCQUFnQixDQUFDLHVCQUF1QixDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDdEUsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLFFBQVEsQ0FBQyxLQUFVO1FBQ3hCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNyQixDQUFDO3dHQTdEVSxzQkFBc0I7NEZBQXRCLHNCQUFzQixpU0FWdkI7Ozs7Ozs7O0dBUVQsMkRBVFMsWUFBWSwrQkFBRSxlQUFlOzs0RkFXNUIsc0JBQXNCO2tCQWRsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsZUFBZSxDQUFDO29CQUN4QyxRQUFRLEVBQUU7Ozs7Ozs7O0dBUVQ7aUJBQ0Y7NEZBRW9CLElBQUk7c0JBQXRCLFNBQVM7dUJBQUMsTUFBTTtnQkFDUixNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDSSxZQUFZO3NCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRnhGb3JtLCBGeEZvcm1Db21wb25lbnQgfSBmcm9tICdAaW5zdGFudHN5cy1sYWJzL2Z4JztcclxuaW1wb3J0IHsgRGlzcGF0Y2hUb0NsaW5pY0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2N1c3RvbS1jb250cm9scy9kaXNwYXRjaC10by1jbGluaWMvZGlzcGF0Y2gtdG8tY2xpbmljLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZ4QnVpbGRlcldyYXBwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZngtYnVpbGRlci13cmFwcGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEeW5hbWljVGFibGVDb21wb25lbnQgfSBmcm9tICcuLi9keW5hbWljLXRhYmxlL2R5bmFtaWMtdGFibGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVG9nZ2xlQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vdG9nZ2xlLWJ1dHRvbi90b2dnbGUtYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFVwbG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vdXBsb2FkZXIvdXBsb2FkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVG9nZ2xlQ29tcG9uZW50IH0gZnJvbSAnLi4vdG9nZ2xlL3RvZ2dsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBVcGxvYWRlckNoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi4vdXBsb2FkZXItY2hlY2tib3gvdXBsb2FkZXItY2hlY2tib3guY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZngtZm9ybS1jb21wb25lbnQnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRnhGb3JtQ29tcG9uZW50XSxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGZ4LWZvcm0gXHJcbiAgICAgIFtmeEZvcm1dPVwiZnhGb3JtXCIgXHJcbiAgICAgIFt2YWx1ZV09XCJ2YXJpYWJsZXNcIiBcclxuICAgICAgKG9uU3VibWl0KT1cIm9uU3VibWl0KCRldmVudClcIiBcclxuICAgICAgI2Zvcm1cclxuICAgID5cclxuICAgIDwvZngtZm9ybT5cclxuICBgLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRnhGb3JtV3JhcHBlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0IHtcclxuICBAVmlld0NoaWxkKCdmb3JtJykgZm9ybSE6IEZ4Rm9ybUNvbXBvbmVudDtcclxuICBASW5wdXQoKSBmeEZvcm0hOiBGeEZvcm07XHJcbiAgQElucHV0KCkgdmFyaWFibGVzOiBhbnk7XHJcbiAgQE91dHB1dCgpIGZ4Rm9ybVN1Ym1pdCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZ4V3JhcHBlclNlcnZpY2U6IEZ4QnVpbGRlcldyYXBwZXJTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLnJlZ2lzdGVyQ3VzdG9tQ29tcG9uZW50cygpO1xyXG4gICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7IFxyXG4gICAgLy8gaWYoJ3ZhcmlhYmxlcycgaW4gY2hhbmdlcyAmJiAhY2hhbmdlc1snZnhGb3JtJ10pIHtcclxuICAgIC8vICAgdGhpcy5meFdyYXBwZXJTZXJ2aWNlLnZhcmlhYmxlcyQubmV4dCh0aGlzLnZhcmlhYmxlcyk7XHJcbiAgICAvLyB9XHJcbiAgICBpZiAoJ3ZhcmlhYmxlcycgaW4gY2hhbmdlcykge1xyXG4gICAgICB0aGlzLmZ4V3JhcHBlclNlcnZpY2UudmFyaWFibGVzJC5uZXh0KHRoaXMudmFyaWFibGVzKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIC8vIGlmICghQm9vbGVhbih0aGlzLmZ4V3JhcHBlclNlcnZpY2UuZ2V0Q29tcG9uZW50KCdkaXNwYXRjaC10by1jbGluaWMnKSkpIHtcclxuICAgIC8vICAgdGhpcy5meFdyYXBwZXJTZXJ2aWNlLnJlZ2lzdGVyQ3VzdG9tQ29tcG9uZW50KCdEaXNwYXRjaCBUbyBDbGluaWMnLCAnZGlzcGF0Y2gtdG8tY2xpbmljJywgRGlzcGF0Y2hUb0NsaW5pY0NvbXBvbmVudCk7XHJcbiAgICAvLyB9XHJcbiAgICAvLyBpZiAoIUJvb2xlYW4odGhpcy5meFdyYXBwZXJTZXJ2aWNlLmdldENvbXBvbmVudCgnZHluYW1pYy10YWJsZScpKSkge1xyXG4gICAgLy8gICB0aGlzLmZ4V3JhcHBlclNlcnZpY2UucmVnaXN0ZXJDdXN0b21Db21wb25lbnQoJ0R5bmFtaWMgVGFibGUnLCAnZHluYW1pYy10YWJsZScsIER5bmFtaWNUYWJsZUNvbXBvbmVudCk7XHJcbiAgICAvLyB9XHJcbiAgICAvLyBpZiAoIUJvb2xlYW4odGhpcy5meFdyYXBwZXJTZXJ2aWNlLmdldENvbXBvbmVudCgndG9nZ2xlLWJ1dHRvbicpKSkge1xyXG4gICAgLy8gICB0aGlzLmZ4V3JhcHBlclNlcnZpY2UucmVnaXN0ZXJDdXN0b21Db21wb25lbnQoJ1RvZ2dsZSBCdXR0b24nLCAndG9nZ2xlLWJ1dHRvbicsIFRvZ2dsZUJ1dHRvbkNvbXBvbmVudCk7XHJcbiAgICAvLyB9XHJcbiAgICAvLyBpZiAoIUJvb2xlYW4odGhpcy5meFdyYXBwZXJTZXJ2aWNlLmdldENvbXBvbmVudCgndXBsb2FkZXInKSkpIHtcclxuICAgIC8vICAgdGhpcy5meFdyYXBwZXJTZXJ2aWNlLnJlZ2lzdGVyQ3VzdG9tQ29tcG9uZW50KCdVcGxvYWRlcicsICd1cGxvYWRlcicsIFVwbG9hZGVyQ29tcG9uZW50KTtcclxuICAgIC8vIH1cclxuICAgIC8vIGlmICghQm9vbGVhbih0aGlzLmZ4V3JhcHBlclNlcnZpY2UuZ2V0Q29tcG9uZW50KCd0b2dnbGUnKSkpIHtcclxuICAgIC8vICAgdGhpcy5meFdyYXBwZXJTZXJ2aWNlLnJlZ2lzdGVyQ3VzdG9tQ29tcG9uZW50KCdUb2dnbGUnLCAndG9nZ2xlJywgVG9nZ2xlQ29tcG9uZW50KTtcclxuICAgIC8vIH1cclxuICB9XHJcblxyXG5cclxuICBwcml2YXRlIHJlZ2lzdGVyQ3VzdG9tQ29tcG9uZW50cygpOiB2b2lkIHtcclxuICAgIGNvbnN0IGNvbXBvbmVudHMgPSBbXHJcbiAgICAgIHsgbmFtZTogJ0Rpc3BhdGNoIFRvIENsaW5pYycsIGtleTogJ2Rpc3BhdGNoLXRvLWNsaW5pYycsIGNvbXBvbmVudDogRGlzcGF0Y2hUb0NsaW5pY0NvbXBvbmVudCB9LFxyXG4gICAgICB7IG5hbWU6ICdEeW5hbWljIFRhYmxlJywga2V5OiAnZHluYW1pYy10YWJsZScsIGNvbXBvbmVudDogRHluYW1pY1RhYmxlQ29tcG9uZW50IH0sXHJcbiAgICAgIHsgbmFtZTogJ1RvZ2dsZSBCdXR0b24nLCBrZXk6ICd0b2dnbGUtYnV0dG9uJywgY29tcG9uZW50OiBUb2dnbGVCdXR0b25Db21wb25lbnQgfSxcclxuICAgICAgeyBuYW1lOiAnVXBsb2FkZXInLCBrZXk6ICd1cGxvYWRlcicsIGNvbXBvbmVudDogVXBsb2FkZXJDb21wb25lbnQgfSxcclxuICAgICAgeyBuYW1lOiAnVG9nZ2xlJywga2V5OiAndG9nZ2xlJywgY29tcG9uZW50OiBUb2dnbGVDb21wb25lbnQgfSxcclxuICAgICAgeyBuYW1lOiAnVXBsb2FkZXIgd2l0aCBDaGVja2JveCcsIGtleTogJ3VwbG9hZGVyLWNoZWNrYm94JywgY29tcG9uZW50OiBVcGxvYWRlckNoZWNrYm94Q29tcG9uZW50IH1cclxuICAgIF07XHJcbiAgICBcclxuICAgIGNvbXBvbmVudHMuZm9yRWFjaCgoeyBuYW1lLCBrZXksIGNvbXBvbmVudCB9KSA9PiB7XHJcbiAgICAgIGlmICghdGhpcy5meFdyYXBwZXJTZXJ2aWNlLmdldENvbXBvbmVudChrZXkpKSB7XHJcbiAgICAgICAgdGhpcy5meFdyYXBwZXJTZXJ2aWNlLnJlZ2lzdGVyQ3VzdG9tQ29tcG9uZW50KG5hbWUsIGtleSwgY29tcG9uZW50KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25TdWJtaXQoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5meEZvcm1TdWJtaXQuZW1pdChldmVudCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3VibWl0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtLnN1Ym1pdCgpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -298,10 +298,10 @@ export class UploaderCheckboxComponent extends FxBaseComponent {
298
298
  return [FxValidatorService.required];
299
299
  }
300
300
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UploaderCheckboxComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.FxBuilderWrapperService }], target: i0.ɵɵFactoryTarget.Component });
301
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: UploaderCheckboxComponent, isStandalone: true, selector: "lib-uploader-checkbox", usesInheritance: true, ngImport: i0, template: "<fx-component [fxData]=\"fxData\">\r\n <label class=\"inline-flex items-center gap-2\">\r\n <input\r\n type=\"checkbox\"\r\n [(ngModel)] = \"checkboxEnabled\"\r\n (change)=\"onCheckboxChange()\"\r\n />\r\n {{ setting('checkbox-label') }}\r\n </label>\r\n <div class=\"custom-upload flex flex-row items-center gap-2 p-2 pb-0 rounded-sm\">\r\n <div class=\"flex flex-col justify-center items-center\" (click)=\"fileInput.click()\">\r\n <div>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"29\" height=\"28\" viewBox=\"0 0 29 28\" fill=\"none\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M14.001 3.00195C11.5322 3.00195 9.16722 3.86956 7.23641 5.38414L7.23598 4.59695C7.23598 4.52473 7.22175 4.45321 7.19411 4.38648C7.16647 4.31975 7.12596 4.25912 7.07489 4.20804C7.02381 4.15697 6.96318 4.11646 6.89645 4.08882C6.82972 4.06118 6.7582 4.04695 6.68598 4.04695C6.61375 4.04695 6.54223 4.06118 6.4755 4.08882C6.40877 4.11646 6.34814 4.15697 6.29707 4.20804C6.24599 4.25912 6.20548 4.31975 6.17784 4.38648C6.1502 4.45321 6.13598 4.52473 6.13598 4.59695L6.13642 6.68652C6.13643 6.83239 6.19438 6.97228 6.29752 7.07542C6.40067 7.17856 6.54055 7.23651 6.68642 7.23652H8.77598C8.8482 7.23652 8.91972 7.2223 8.98645 7.19466C9.05318 7.16702 9.11381 7.12651 9.16489 7.07543C9.21596 7.02436 9.25647 6.96373 9.28411 6.897C9.31175 6.83027 9.32598 6.75875 9.32598 6.68652C9.32598 6.6143 9.31175 6.54278 9.28411 6.47605C9.25647 6.40932 9.21596 6.34869 9.16489 6.29761C9.11381 6.24654 9.05318 6.20603 8.98645 6.17839C8.91972 6.15075 8.8482 6.13652 8.77598 6.13652H8.0584C9.7702 4.84387 11.8399 4.10195 14.001 4.10195C19.4751 4.10195 23.901 8.52782 23.901 14.002C23.901 19.4761 19.4751 23.902 14.001 23.902C8.52684 23.902 4.10098 19.4761 4.10098 14.002C4.10098 12.6381 4.38263 11.2888 4.92855 10.0389C4.98691 9.90532 4.98982 9.75399 4.93665 9.61822C4.88347 9.48246 4.77855 9.37336 4.64496 9.31492C4.57877 9.28596 4.50753 9.27032 4.4353 9.2689C4.36306 9.26747 4.29126 9.2803 4.22398 9.30663C4.15671 9.33297 4.09528 9.3723 4.04321 9.42238C3.99114 9.47247 3.94944 9.53232 3.92051 9.59852C3.31393 10.9872 3.00098 12.4866 3.00098 14.002C3.00098 20.0706 7.93236 25.002 14.001 25.002C20.0696 25.002 25.001 20.0706 25.001 14.002C25.001 7.93334 20.0696 3.00195 14.001 3.00195Z\"\r\n fill=\"#F3A041\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M13.9988 6.13965C9.6616 6.13965 6.13379 9.66746 6.13379 14.0046C6.13379 18.3418 9.6616 21.8696 13.9988 21.8696C18.336 21.8696 21.8638 18.3418 21.8638 14.0046C21.8638 9.66746 18.336 6.13965 13.9988 6.13965ZM13.9988 8.22965C14.1447 8.22965 14.2846 8.28759 14.3877 8.39074C14.4908 8.49388 14.5488 8.63378 14.5488 8.77965V13.7769L17.5227 16.7508C17.6258 16.8539 17.6837 16.9938 17.6837 17.1396C17.6837 17.2855 17.6258 17.4254 17.5227 17.5285C17.4195 17.6316 17.2796 17.6896 17.1338 17.6896C16.9879 17.6896 16.8481 17.6316 16.7449 17.5285L13.6099 14.3935C13.5068 14.2904 13.4488 14.1505 13.4488 14.0046V8.77965C13.4488 8.63378 13.5067 8.49388 13.6099 8.39074C13.713 8.28759 13.8529 8.22965 13.9988 8.22965Z\"\r\n fill=\"#F3A041\" />\r\n <rect width=\"28.56\" height=\"28\" rx=\"1.51479\" fill=\"#F3A041\" />\r\n <path\r\n d=\"M15.068 22.7391V17.6708H18.4968L14.2108 12.6025L9.9248 17.6708H13.3536V22.7391H9.06759V22.6969C8.92358 22.7053 8.78643 22.7391 8.63899 22.7391C6.93391 22.7391 5.29866 22.0717 4.09298 20.8835C2.8873 19.6954 2.20996 18.084 2.20996 16.4037C2.20996 13.1532 4.70443 10.5042 7.90523 10.141C8.18585 8.6953 8.96892 7.39118 10.1197 6.45292C11.2706 5.51465 12.7172 5.00089 14.2108 5C15.7047 5.00082 17.1515 5.51452 18.3026 6.45277C19.4537 7.39101 20.2371 8.69516 20.5181 10.141C23.7189 10.5042 26.21 13.1532 26.21 16.4037C26.21 18.084 25.5326 19.6954 24.3269 20.8835C23.1213 22.0717 21.486 22.7391 19.7809 22.7391C19.6369 22.7391 19.4981 22.7053 19.3523 22.6969V22.7391H15.068Z\"\r\n fill=\"white\" />\r\n </svg>\r\n </div>\r\n <a type=\"button\" (click)=\"fileInput.click()\" class=\"text-base cursor-pointer\">\r\n {{ setting('upload-text') }}\r\n </a>\r\n </div>\r\n <input #fileInput type=\"file\" [multiple]=\"setting('multiple-upload')\" (change)=\"onFileSelected($event)\" hidden />\r\n <div class=\"separator\"></div>\r\n <div class=\"file-list flex items-center gap-4 flex-wrap\">\r\n <ng-container *ngIf=\"uploadedFiles?.length\">\r\n <div *ngFor=\"let file of uploadedFiles; let i = index\" (click)=\"deleteFile(i)\"\r\n class=\"flex flex-col items-center justify-center\">\r\n <div class=\"relative\">\r\n <div class=\"close_icon cursor-pointer\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_6837_29683)\">\r\n <rect width=\"18\" height=\"18\" rx=\"9\" fill=\"#F3A041\" />\r\n <mask id=\"mask0_6837_29683\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"4\" y=\"4\" width=\"24\"\r\n height=\"24\">\r\n <rect x=\"4\" y=\"4\" width=\"24\" height=\"24\" fill=\"#D9D9D9\" />\r\n </mask>\r\n <g mask=\"url(#mask0_6837_29683)\">\r\n <path\r\n d=\"M8.2045 8.99815L5.81802 6.61167L6.61351 5.81617L9 8.20266L11.3865 5.81617L12.182 6.61167L9.7955 8.99815L12.182 11.3846L11.3865 12.1801L9 9.79365L6.61351 12.1801L5.81802 11.3846L8.2045 8.99815Z\"\r\n fill=\"white\" />\r\n </g>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_6837_29683\">\r\n <rect width=\"18\" height=\"18\" rx=\"9\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </div>\r\n <img class=\"file-thumbnail\" style=\"border-radius: 4px\" [src]=\"file?.result\" alt=\"\" />\r\n </div>\r\n \r\n <p>{{file?.name}}</p>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </fx-component>", styles: [".custom-upload{border:1px solid #ccc}.custom-upload a{color:#000}.custom-upload .file-list .file-thumbnail{width:120px;height:auto;border:1px solid #ccc;background-color:#fff;padding:4px}.custom-upload .separator{height:56px;width:2px;background-color:#ccc;margin:10px}.close_icon{position:absolute;top:-8px;right:-8px}[type=checkbox]{padding:12px}[type=checkbox]:checked{background-color:#f3a041!important;padding:12px;background-size:1em 1em!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FxComponent, selector: "fx-component", inputs: ["fxData"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }] });
301
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: UploaderCheckboxComponent, isStandalone: true, selector: "uploader-checkbox", usesInheritance: true, ngImport: i0, template: "<fx-component [fxData]=\"fxData\">\r\n <label class=\"inline-flex items-center gap-2\">\r\n <input\r\n type=\"checkbox\"\r\n [(ngModel)] = \"checkboxEnabled\"\r\n (change)=\"onCheckboxChange()\"\r\n />\r\n {{ setting('checkbox-label') }}\r\n </label>\r\n <div class=\"custom-upload flex flex-row items-center gap-2 p-2 pb-0 rounded-sm\">\r\n <div class=\"flex flex-col justify-center items-center\" (click)=\"fileInput.click()\">\r\n <div>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"29\" height=\"28\" viewBox=\"0 0 29 28\" fill=\"none\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M14.001 3.00195C11.5322 3.00195 9.16722 3.86956 7.23641 5.38414L7.23598 4.59695C7.23598 4.52473 7.22175 4.45321 7.19411 4.38648C7.16647 4.31975 7.12596 4.25912 7.07489 4.20804C7.02381 4.15697 6.96318 4.11646 6.89645 4.08882C6.82972 4.06118 6.7582 4.04695 6.68598 4.04695C6.61375 4.04695 6.54223 4.06118 6.4755 4.08882C6.40877 4.11646 6.34814 4.15697 6.29707 4.20804C6.24599 4.25912 6.20548 4.31975 6.17784 4.38648C6.1502 4.45321 6.13598 4.52473 6.13598 4.59695L6.13642 6.68652C6.13643 6.83239 6.19438 6.97228 6.29752 7.07542C6.40067 7.17856 6.54055 7.23651 6.68642 7.23652H8.77598C8.8482 7.23652 8.91972 7.2223 8.98645 7.19466C9.05318 7.16702 9.11381 7.12651 9.16489 7.07543C9.21596 7.02436 9.25647 6.96373 9.28411 6.897C9.31175 6.83027 9.32598 6.75875 9.32598 6.68652C9.32598 6.6143 9.31175 6.54278 9.28411 6.47605C9.25647 6.40932 9.21596 6.34869 9.16489 6.29761C9.11381 6.24654 9.05318 6.20603 8.98645 6.17839C8.91972 6.15075 8.8482 6.13652 8.77598 6.13652H8.0584C9.7702 4.84387 11.8399 4.10195 14.001 4.10195C19.4751 4.10195 23.901 8.52782 23.901 14.002C23.901 19.4761 19.4751 23.902 14.001 23.902C8.52684 23.902 4.10098 19.4761 4.10098 14.002C4.10098 12.6381 4.38263 11.2888 4.92855 10.0389C4.98691 9.90532 4.98982 9.75399 4.93665 9.61822C4.88347 9.48246 4.77855 9.37336 4.64496 9.31492C4.57877 9.28596 4.50753 9.27032 4.4353 9.2689C4.36306 9.26747 4.29126 9.2803 4.22398 9.30663C4.15671 9.33297 4.09528 9.3723 4.04321 9.42238C3.99114 9.47247 3.94944 9.53232 3.92051 9.59852C3.31393 10.9872 3.00098 12.4866 3.00098 14.002C3.00098 20.0706 7.93236 25.002 14.001 25.002C20.0696 25.002 25.001 20.0706 25.001 14.002C25.001 7.93334 20.0696 3.00195 14.001 3.00195Z\"\r\n fill=\"#F3A041\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M13.9988 6.13965C9.6616 6.13965 6.13379 9.66746 6.13379 14.0046C6.13379 18.3418 9.6616 21.8696 13.9988 21.8696C18.336 21.8696 21.8638 18.3418 21.8638 14.0046C21.8638 9.66746 18.336 6.13965 13.9988 6.13965ZM13.9988 8.22965C14.1447 8.22965 14.2846 8.28759 14.3877 8.39074C14.4908 8.49388 14.5488 8.63378 14.5488 8.77965V13.7769L17.5227 16.7508C17.6258 16.8539 17.6837 16.9938 17.6837 17.1396C17.6837 17.2855 17.6258 17.4254 17.5227 17.5285C17.4195 17.6316 17.2796 17.6896 17.1338 17.6896C16.9879 17.6896 16.8481 17.6316 16.7449 17.5285L13.6099 14.3935C13.5068 14.2904 13.4488 14.1505 13.4488 14.0046V8.77965C13.4488 8.63378 13.5067 8.49388 13.6099 8.39074C13.713 8.28759 13.8529 8.22965 13.9988 8.22965Z\"\r\n fill=\"#F3A041\" />\r\n <rect width=\"28.56\" height=\"28\" rx=\"1.51479\" fill=\"#F3A041\" />\r\n <path\r\n d=\"M15.068 22.7391V17.6708H18.4968L14.2108 12.6025L9.9248 17.6708H13.3536V22.7391H9.06759V22.6969C8.92358 22.7053 8.78643 22.7391 8.63899 22.7391C6.93391 22.7391 5.29866 22.0717 4.09298 20.8835C2.8873 19.6954 2.20996 18.084 2.20996 16.4037C2.20996 13.1532 4.70443 10.5042 7.90523 10.141C8.18585 8.6953 8.96892 7.39118 10.1197 6.45292C11.2706 5.51465 12.7172 5.00089 14.2108 5C15.7047 5.00082 17.1515 5.51452 18.3026 6.45277C19.4537 7.39101 20.2371 8.69516 20.5181 10.141C23.7189 10.5042 26.21 13.1532 26.21 16.4037C26.21 18.084 25.5326 19.6954 24.3269 20.8835C23.1213 22.0717 21.486 22.7391 19.7809 22.7391C19.6369 22.7391 19.4981 22.7053 19.3523 22.6969V22.7391H15.068Z\"\r\n fill=\"white\" />\r\n </svg>\r\n </div>\r\n <a type=\"button\" (click)=\"fileInput.click()\" class=\"text-base cursor-pointer\">\r\n {{ setting('upload-text') }}\r\n </a>\r\n </div>\r\n <input #fileInput type=\"file\" [multiple]=\"setting('multiple-upload')\" (change)=\"onFileSelected($event)\" hidden />\r\n <div class=\"separator\"></div>\r\n <div class=\"file-list flex items-center gap-4 flex-wrap\">\r\n <ng-container *ngIf=\"uploadedFiles?.length\">\r\n <div *ngFor=\"let file of uploadedFiles; let i = index\" (click)=\"deleteFile(i)\"\r\n class=\"flex flex-col items-center justify-center\">\r\n <div class=\"relative\">\r\n <div class=\"close_icon cursor-pointer\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_6837_29683)\">\r\n <rect width=\"18\" height=\"18\" rx=\"9\" fill=\"#F3A041\" />\r\n <mask id=\"mask0_6837_29683\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"4\" y=\"4\" width=\"24\"\r\n height=\"24\">\r\n <rect x=\"4\" y=\"4\" width=\"24\" height=\"24\" fill=\"#D9D9D9\" />\r\n </mask>\r\n <g mask=\"url(#mask0_6837_29683)\">\r\n <path\r\n d=\"M8.2045 8.99815L5.81802 6.61167L6.61351 5.81617L9 8.20266L11.3865 5.81617L12.182 6.61167L9.7955 8.99815L12.182 11.3846L11.3865 12.1801L9 9.79365L6.61351 12.1801L5.81802 11.3846L8.2045 8.99815Z\"\r\n fill=\"white\" />\r\n </g>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_6837_29683\">\r\n <rect width=\"18\" height=\"18\" rx=\"9\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </div>\r\n <img class=\"file-thumbnail\" style=\"border-radius: 4px\" [src]=\"file?.result\" alt=\"\" />\r\n </div>\r\n \r\n <p>{{file?.name}}</p>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </fx-component>", styles: [".custom-upload{border:1px solid #ccc}.custom-upload a{color:#000}.custom-upload .file-list .file-thumbnail{width:120px;height:auto;border:1px solid #ccc;background-color:#fff;padding:4px}.custom-upload .separator{height:56px;width:2px;background-color:#ccc;margin:10px}.close_icon{position:absolute;top:-8px;right:-8px}[type=checkbox]{padding:12px}[type=checkbox]:checked{background-color:#f3a041!important;padding:12px;background-size:1em 1em!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FxComponent, selector: "fx-component", inputs: ["fxData"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }] });
302
302
  }
303
303
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UploaderCheckboxComponent, decorators: [{
304
304
  type: Component,
305
- args: [{ selector: 'lib-uploader-checkbox', standalone: true, imports: [CommonModule, FxComponent, FormsModule, ReactiveFormsModule], template: "<fx-component [fxData]=\"fxData\">\r\n <label class=\"inline-flex items-center gap-2\">\r\n <input\r\n type=\"checkbox\"\r\n [(ngModel)] = \"checkboxEnabled\"\r\n (change)=\"onCheckboxChange()\"\r\n />\r\n {{ setting('checkbox-label') }}\r\n </label>\r\n <div class=\"custom-upload flex flex-row items-center gap-2 p-2 pb-0 rounded-sm\">\r\n <div class=\"flex flex-col justify-center items-center\" (click)=\"fileInput.click()\">\r\n <div>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"29\" height=\"28\" viewBox=\"0 0 29 28\" fill=\"none\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M14.001 3.00195C11.5322 3.00195 9.16722 3.86956 7.23641 5.38414L7.23598 4.59695C7.23598 4.52473 7.22175 4.45321 7.19411 4.38648C7.16647 4.31975 7.12596 4.25912 7.07489 4.20804C7.02381 4.15697 6.96318 4.11646 6.89645 4.08882C6.82972 4.06118 6.7582 4.04695 6.68598 4.04695C6.61375 4.04695 6.54223 4.06118 6.4755 4.08882C6.40877 4.11646 6.34814 4.15697 6.29707 4.20804C6.24599 4.25912 6.20548 4.31975 6.17784 4.38648C6.1502 4.45321 6.13598 4.52473 6.13598 4.59695L6.13642 6.68652C6.13643 6.83239 6.19438 6.97228 6.29752 7.07542C6.40067 7.17856 6.54055 7.23651 6.68642 7.23652H8.77598C8.8482 7.23652 8.91972 7.2223 8.98645 7.19466C9.05318 7.16702 9.11381 7.12651 9.16489 7.07543C9.21596 7.02436 9.25647 6.96373 9.28411 6.897C9.31175 6.83027 9.32598 6.75875 9.32598 6.68652C9.32598 6.6143 9.31175 6.54278 9.28411 6.47605C9.25647 6.40932 9.21596 6.34869 9.16489 6.29761C9.11381 6.24654 9.05318 6.20603 8.98645 6.17839C8.91972 6.15075 8.8482 6.13652 8.77598 6.13652H8.0584C9.7702 4.84387 11.8399 4.10195 14.001 4.10195C19.4751 4.10195 23.901 8.52782 23.901 14.002C23.901 19.4761 19.4751 23.902 14.001 23.902C8.52684 23.902 4.10098 19.4761 4.10098 14.002C4.10098 12.6381 4.38263 11.2888 4.92855 10.0389C4.98691 9.90532 4.98982 9.75399 4.93665 9.61822C4.88347 9.48246 4.77855 9.37336 4.64496 9.31492C4.57877 9.28596 4.50753 9.27032 4.4353 9.2689C4.36306 9.26747 4.29126 9.2803 4.22398 9.30663C4.15671 9.33297 4.09528 9.3723 4.04321 9.42238C3.99114 9.47247 3.94944 9.53232 3.92051 9.59852C3.31393 10.9872 3.00098 12.4866 3.00098 14.002C3.00098 20.0706 7.93236 25.002 14.001 25.002C20.0696 25.002 25.001 20.0706 25.001 14.002C25.001 7.93334 20.0696 3.00195 14.001 3.00195Z\"\r\n fill=\"#F3A041\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M13.9988 6.13965C9.6616 6.13965 6.13379 9.66746 6.13379 14.0046C6.13379 18.3418 9.6616 21.8696 13.9988 21.8696C18.336 21.8696 21.8638 18.3418 21.8638 14.0046C21.8638 9.66746 18.336 6.13965 13.9988 6.13965ZM13.9988 8.22965C14.1447 8.22965 14.2846 8.28759 14.3877 8.39074C14.4908 8.49388 14.5488 8.63378 14.5488 8.77965V13.7769L17.5227 16.7508C17.6258 16.8539 17.6837 16.9938 17.6837 17.1396C17.6837 17.2855 17.6258 17.4254 17.5227 17.5285C17.4195 17.6316 17.2796 17.6896 17.1338 17.6896C16.9879 17.6896 16.8481 17.6316 16.7449 17.5285L13.6099 14.3935C13.5068 14.2904 13.4488 14.1505 13.4488 14.0046V8.77965C13.4488 8.63378 13.5067 8.49388 13.6099 8.39074C13.713 8.28759 13.8529 8.22965 13.9988 8.22965Z\"\r\n fill=\"#F3A041\" />\r\n <rect width=\"28.56\" height=\"28\" rx=\"1.51479\" fill=\"#F3A041\" />\r\n <path\r\n d=\"M15.068 22.7391V17.6708H18.4968L14.2108 12.6025L9.9248 17.6708H13.3536V22.7391H9.06759V22.6969C8.92358 22.7053 8.78643 22.7391 8.63899 22.7391C6.93391 22.7391 5.29866 22.0717 4.09298 20.8835C2.8873 19.6954 2.20996 18.084 2.20996 16.4037C2.20996 13.1532 4.70443 10.5042 7.90523 10.141C8.18585 8.6953 8.96892 7.39118 10.1197 6.45292C11.2706 5.51465 12.7172 5.00089 14.2108 5C15.7047 5.00082 17.1515 5.51452 18.3026 6.45277C19.4537 7.39101 20.2371 8.69516 20.5181 10.141C23.7189 10.5042 26.21 13.1532 26.21 16.4037C26.21 18.084 25.5326 19.6954 24.3269 20.8835C23.1213 22.0717 21.486 22.7391 19.7809 22.7391C19.6369 22.7391 19.4981 22.7053 19.3523 22.6969V22.7391H15.068Z\"\r\n fill=\"white\" />\r\n </svg>\r\n </div>\r\n <a type=\"button\" (click)=\"fileInput.click()\" class=\"text-base cursor-pointer\">\r\n {{ setting('upload-text') }}\r\n </a>\r\n </div>\r\n <input #fileInput type=\"file\" [multiple]=\"setting('multiple-upload')\" (change)=\"onFileSelected($event)\" hidden />\r\n <div class=\"separator\"></div>\r\n <div class=\"file-list flex items-center gap-4 flex-wrap\">\r\n <ng-container *ngIf=\"uploadedFiles?.length\">\r\n <div *ngFor=\"let file of uploadedFiles; let i = index\" (click)=\"deleteFile(i)\"\r\n class=\"flex flex-col items-center justify-center\">\r\n <div class=\"relative\">\r\n <div class=\"close_icon cursor-pointer\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_6837_29683)\">\r\n <rect width=\"18\" height=\"18\" rx=\"9\" fill=\"#F3A041\" />\r\n <mask id=\"mask0_6837_29683\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"4\" y=\"4\" width=\"24\"\r\n height=\"24\">\r\n <rect x=\"4\" y=\"4\" width=\"24\" height=\"24\" fill=\"#D9D9D9\" />\r\n </mask>\r\n <g mask=\"url(#mask0_6837_29683)\">\r\n <path\r\n d=\"M8.2045 8.99815L5.81802 6.61167L6.61351 5.81617L9 8.20266L11.3865 5.81617L12.182 6.61167L9.7955 8.99815L12.182 11.3846L11.3865 12.1801L9 9.79365L6.61351 12.1801L5.81802 11.3846L8.2045 8.99815Z\"\r\n fill=\"white\" />\r\n </g>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_6837_29683\">\r\n <rect width=\"18\" height=\"18\" rx=\"9\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </div>\r\n <img class=\"file-thumbnail\" style=\"border-radius: 4px\" [src]=\"file?.result\" alt=\"\" />\r\n </div>\r\n \r\n <p>{{file?.name}}</p>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </fx-component>", styles: [".custom-upload{border:1px solid #ccc}.custom-upload a{color:#000}.custom-upload .file-list .file-thumbnail{width:120px;height:auto;border:1px solid #ccc;background-color:#fff;padding:4px}.custom-upload .separator{height:56px;width:2px;background-color:#ccc;margin:10px}.close_icon{position:absolute;top:-8px;right:-8px}[type=checkbox]{padding:12px}[type=checkbox]:checked{background-color:#f3a041!important;padding:12px;background-size:1em 1em!important}\n"] }]
305
+ args: [{ selector: 'uploader-checkbox', standalone: true, imports: [CommonModule, FxComponent, FormsModule, ReactiveFormsModule], template: "<fx-component [fxData]=\"fxData\">\r\n <label class=\"inline-flex items-center gap-2\">\r\n <input\r\n type=\"checkbox\"\r\n [(ngModel)] = \"checkboxEnabled\"\r\n (change)=\"onCheckboxChange()\"\r\n />\r\n {{ setting('checkbox-label') }}\r\n </label>\r\n <div class=\"custom-upload flex flex-row items-center gap-2 p-2 pb-0 rounded-sm\">\r\n <div class=\"flex flex-col justify-center items-center\" (click)=\"fileInput.click()\">\r\n <div>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"29\" height=\"28\" viewBox=\"0 0 29 28\" fill=\"none\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M14.001 3.00195C11.5322 3.00195 9.16722 3.86956 7.23641 5.38414L7.23598 4.59695C7.23598 4.52473 7.22175 4.45321 7.19411 4.38648C7.16647 4.31975 7.12596 4.25912 7.07489 4.20804C7.02381 4.15697 6.96318 4.11646 6.89645 4.08882C6.82972 4.06118 6.7582 4.04695 6.68598 4.04695C6.61375 4.04695 6.54223 4.06118 6.4755 4.08882C6.40877 4.11646 6.34814 4.15697 6.29707 4.20804C6.24599 4.25912 6.20548 4.31975 6.17784 4.38648C6.1502 4.45321 6.13598 4.52473 6.13598 4.59695L6.13642 6.68652C6.13643 6.83239 6.19438 6.97228 6.29752 7.07542C6.40067 7.17856 6.54055 7.23651 6.68642 7.23652H8.77598C8.8482 7.23652 8.91972 7.2223 8.98645 7.19466C9.05318 7.16702 9.11381 7.12651 9.16489 7.07543C9.21596 7.02436 9.25647 6.96373 9.28411 6.897C9.31175 6.83027 9.32598 6.75875 9.32598 6.68652C9.32598 6.6143 9.31175 6.54278 9.28411 6.47605C9.25647 6.40932 9.21596 6.34869 9.16489 6.29761C9.11381 6.24654 9.05318 6.20603 8.98645 6.17839C8.91972 6.15075 8.8482 6.13652 8.77598 6.13652H8.0584C9.7702 4.84387 11.8399 4.10195 14.001 4.10195C19.4751 4.10195 23.901 8.52782 23.901 14.002C23.901 19.4761 19.4751 23.902 14.001 23.902C8.52684 23.902 4.10098 19.4761 4.10098 14.002C4.10098 12.6381 4.38263 11.2888 4.92855 10.0389C4.98691 9.90532 4.98982 9.75399 4.93665 9.61822C4.88347 9.48246 4.77855 9.37336 4.64496 9.31492C4.57877 9.28596 4.50753 9.27032 4.4353 9.2689C4.36306 9.26747 4.29126 9.2803 4.22398 9.30663C4.15671 9.33297 4.09528 9.3723 4.04321 9.42238C3.99114 9.47247 3.94944 9.53232 3.92051 9.59852C3.31393 10.9872 3.00098 12.4866 3.00098 14.002C3.00098 20.0706 7.93236 25.002 14.001 25.002C20.0696 25.002 25.001 20.0706 25.001 14.002C25.001 7.93334 20.0696 3.00195 14.001 3.00195Z\"\r\n fill=\"#F3A041\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M13.9988 6.13965C9.6616 6.13965 6.13379 9.66746 6.13379 14.0046C6.13379 18.3418 9.6616 21.8696 13.9988 21.8696C18.336 21.8696 21.8638 18.3418 21.8638 14.0046C21.8638 9.66746 18.336 6.13965 13.9988 6.13965ZM13.9988 8.22965C14.1447 8.22965 14.2846 8.28759 14.3877 8.39074C14.4908 8.49388 14.5488 8.63378 14.5488 8.77965V13.7769L17.5227 16.7508C17.6258 16.8539 17.6837 16.9938 17.6837 17.1396C17.6837 17.2855 17.6258 17.4254 17.5227 17.5285C17.4195 17.6316 17.2796 17.6896 17.1338 17.6896C16.9879 17.6896 16.8481 17.6316 16.7449 17.5285L13.6099 14.3935C13.5068 14.2904 13.4488 14.1505 13.4488 14.0046V8.77965C13.4488 8.63378 13.5067 8.49388 13.6099 8.39074C13.713 8.28759 13.8529 8.22965 13.9988 8.22965Z\"\r\n fill=\"#F3A041\" />\r\n <rect width=\"28.56\" height=\"28\" rx=\"1.51479\" fill=\"#F3A041\" />\r\n <path\r\n d=\"M15.068 22.7391V17.6708H18.4968L14.2108 12.6025L9.9248 17.6708H13.3536V22.7391H9.06759V22.6969C8.92358 22.7053 8.78643 22.7391 8.63899 22.7391C6.93391 22.7391 5.29866 22.0717 4.09298 20.8835C2.8873 19.6954 2.20996 18.084 2.20996 16.4037C2.20996 13.1532 4.70443 10.5042 7.90523 10.141C8.18585 8.6953 8.96892 7.39118 10.1197 6.45292C11.2706 5.51465 12.7172 5.00089 14.2108 5C15.7047 5.00082 17.1515 5.51452 18.3026 6.45277C19.4537 7.39101 20.2371 8.69516 20.5181 10.141C23.7189 10.5042 26.21 13.1532 26.21 16.4037C26.21 18.084 25.5326 19.6954 24.3269 20.8835C23.1213 22.0717 21.486 22.7391 19.7809 22.7391C19.6369 22.7391 19.4981 22.7053 19.3523 22.6969V22.7391H15.068Z\"\r\n fill=\"white\" />\r\n </svg>\r\n </div>\r\n <a type=\"button\" (click)=\"fileInput.click()\" class=\"text-base cursor-pointer\">\r\n {{ setting('upload-text') }}\r\n </a>\r\n </div>\r\n <input #fileInput type=\"file\" [multiple]=\"setting('multiple-upload')\" (change)=\"onFileSelected($event)\" hidden />\r\n <div class=\"separator\"></div>\r\n <div class=\"file-list flex items-center gap-4 flex-wrap\">\r\n <ng-container *ngIf=\"uploadedFiles?.length\">\r\n <div *ngFor=\"let file of uploadedFiles; let i = index\" (click)=\"deleteFile(i)\"\r\n class=\"flex flex-col items-center justify-center\">\r\n <div class=\"relative\">\r\n <div class=\"close_icon cursor-pointer\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_6837_29683)\">\r\n <rect width=\"18\" height=\"18\" rx=\"9\" fill=\"#F3A041\" />\r\n <mask id=\"mask0_6837_29683\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"4\" y=\"4\" width=\"24\"\r\n height=\"24\">\r\n <rect x=\"4\" y=\"4\" width=\"24\" height=\"24\" fill=\"#D9D9D9\" />\r\n </mask>\r\n <g mask=\"url(#mask0_6837_29683)\">\r\n <path\r\n d=\"M8.2045 8.99815L5.81802 6.61167L6.61351 5.81617L9 8.20266L11.3865 5.81617L12.182 6.61167L9.7955 8.99815L12.182 11.3846L11.3865 12.1801L9 9.79365L6.61351 12.1801L5.81802 11.3846L8.2045 8.99815Z\"\r\n fill=\"white\" />\r\n </g>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_6837_29683\">\r\n <rect width=\"18\" height=\"18\" rx=\"9\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </div>\r\n <img class=\"file-thumbnail\" style=\"border-radius: 4px\" [src]=\"file?.result\" alt=\"\" />\r\n </div>\r\n \r\n <p>{{file?.name}}</p>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </fx-component>", styles: [".custom-upload{border:1px solid #ccc}.custom-upload a{color:#000}.custom-upload .file-list .file-thumbnail{width:120px;height:auto;border:1px solid #ccc;background-color:#fff;padding:4px}.custom-upload .separator{height:56px;width:2px;background-color:#ccc;margin:10px}.close_icon{position:absolute;top:-8px;right:-8px}[type=checkbox]{padding:12px}[type=checkbox]:checked{background-color:#f3a041!important;padding:12px;background-size:1em 1em!important}\n"] }]
306
306
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.FxBuilderWrapperService }] });
307
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkZXItY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZngtYnVpbGRlci13cmFwcGVyL3NyYy9saWIvY29tcG9uZW50cy91cGxvYWRlci1jaGVja2JveC91cGxvYWRlci1jaGVja2JveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9meC1idWlsZGVyLXdyYXBwZXIvc3JjL2xpYi9jb21wb25lbnRzL3VwbG9hZGVyLWNoZWNrYm94L3VwbG9hZGVyLWNoZWNrYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFxQixTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0UsT0FBTyxFQUFFLGVBQWUsRUFBYSxlQUFlLEVBQUUsZUFBZSxFQUFnQixrQkFBa0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVsSixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBYyxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxFQUFFLElBQUksTUFBTSxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7OztBQVNuQyxNQUFNLE9BQU8seUJBQTBCLFNBQVEsZUFBZTtJQVl2QztJQUErQjtJQVhuRCx1REFBdUQ7SUFDaEQsaUJBQWlCLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztJQUN0QyxhQUFhLEdBQWUsRUFBRSxDQUFDO0lBQy9CLGFBQWEsR0FBUTtRQUMxQixhQUFh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LENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdkMsQ0FBQzt3R0E3VVMseUJBQXlCOzRGQUF6Qix5QkFBeUIsd0dDaEJ0Qywwdk1BaUVpQixpZ0JEckRMLFlBQVksZ1FBQUUsV0FBVyw0RUFBRSxXQUFXLCtnQkFBRSxtQkFBbUI7OzRGQUkxRCx5QkFBeUI7a0JBUHJDLFNBQVM7K0JBQ0UsdUJBQXVCLGNBQ3JCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgaW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBGeEJhc2VDb21wb25lbnQsIEZ4U2V0dGluZywgRnhTdHJpbmdTZXR0aW5nLCBGeFNlbGVjdFNldHRpbmcsIEZ4VmFsaWRhdGlvbiwgRnhWYWxpZGF0b3JTZXJ2aWNlLCBGeENvbXBvbmVudCB9IGZyb20gJ0BpbnN0YW50c3lzLWxhYnMvZngnO1xyXG5pbXBvcnQgeyBGeEJ1aWxkZXJXcmFwcGVyU2VydmljZSB9IGZyb20gJy4uLy4uL2Z4LWJ1aWxkZXItd3JhcHBlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsLCBPYnNlcnZhYmxlLCBtYXAsIGZvcmtKb2luIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHY0IGFzIHV1aWR2NH0gZnJvbSAndXVpZCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi11cGxvYWRlci1jaGVja2JveCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGeENvbXBvbmVudCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGVdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi91cGxvYWRlci1jaGVja2JveC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3VwbG9hZGVyLWNoZWNrYm94LmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVcGxvYWRlckNoZWNrYm94Q29tcG9uZW50IGV4dGVuZHMgRnhCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0e1xyXG4gICAvLyBwdWJsaWMgdXBsb2FkRmlsZUNvbnRyb2wgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCk7XHJcbiAgIHB1YmxpYyB1cGxvYWRGaWxlQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG4gICBwdWJsaWMgdXBsb2FkZWRGaWxlczogQXJyYXk8YW55PiA9IFtdO1xyXG4gICBwdWJsaWMgZm9ybWF0dGVkRGF0YTogYW55ID0ge1xyXG4gICAgIHVwbG9hZGVkRmlsZXM6IFtdLFxyXG4gICAgIGRlbGV0ZWRGaWxlczogW10sXHJcbiAgICAgY2hlY2tib3hFbmFibGVkOiBmYWxzZVxyXG4gICB9O1xyXG4gICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8Qm9vbGVhbj4oKTtcclxuICAgcHJpdmF0ZSBodHRwID0gaW5qZWN0KEh0dHBDbGllbnQpO1xyXG4gICBwdWJsaWMgY2hlY2tib3hFbmFibGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixwcml2YXRlIGZ4QnVpbGRlcldyYXBwZXJTZXJ2aWNlOiBGeEJ1aWxkZXJXcmFwcGVyU2VydmljZSkge1xyXG4gICAgIHN1cGVyKGNkcilcclxuICAgICB0aGlzLm9uSW5pdC5zdWJzY3JpYmUoKGZ4RGF0YSk9PntcclxuICAgICAgIHRoaXMuX3JlZ2lzdGVyKHRoaXMudXBsb2FkRmlsZUNvbnRyb2wpO1xyXG4gICAgIH0pXHJcbiAgIH1cclxuIFxyXG4gXHJcbiBcclxuIFxyXG4gXHJcbiAgIHVwbG9hZGVkSW1hZ2VzOiB7IFtrZXk6IHN0cmluZ106IHsgcmVzdWx0OiBzdHJpbmcsIGZpbGU6IEZpbGUgfCBudWxsIH1bXSB9ID0ge307XHJcbiAgIGRlbGV0ZWRGaWxlczogYW55W10gPSBbXTtcclxuICAgLy8gcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAvLyAgIHRoaXMuZnhCdWlsZGVyV3JhcHBlclNlcnZpY2UudmFyaWFibGVzJFxyXG4gICAvLyAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAvLyAgICAgLnN1YnNjcmliZSgodmFyaWFibGVzOiBhbnkpID0+IHtcclxuICAgLy8gICAgICAgaWYgKCF2YXJpYWJsZXMpIHJldHVybjtcclxuICAgXHJcbiAgIC8vICAgICAgIGNvbnN0IHVwbG9hZGVkRmlsZXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nW10gfSA9IHt9O1xyXG4gICBcclxuICAgLy8gICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModmFyaWFibGVzKSkge1xyXG4gICAvLyAgICAgICAgIGlmIChrZXkuaW5jbHVkZXMoJ3VwbG9hZGVyJykgJiYgQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcclxuICAgLy8gICAgICAgICAgIHVwbG9hZGVkRmlsZXNba2V5XSA9IHZhbHVlO1xyXG4gICAvLyAgICAgICAgIH1cclxuICAgLy8gICAgICAgfVxyXG4gICBcclxuICAgLy8gICAgICAgZm9yIChjb25zdCBbdXBsb2FkZXJLZXksIHVybHNdIG9mIE9iamVjdC5lbnRyaWVzKHVwbG9hZGVkRmlsZXMpKSB7XHJcbiAgIC8vICAgICAgICAgY29uc3QgaW1hZ2VGZXRjaGVzOiBPYnNlcnZhYmxlPHN0cmluZz5bXSA9IFtdO1xyXG4gICBcclxuICAgLy8gICAgICAgICB1cmxzLmZvckVhY2goKHVybDogc3RyaW5nKSA9PiB7XHJcbiAgIC8vICAgICAgICAgICBpZiAodXJsKSB7XHJcbiAgIC8vICAgICAgICAgICAgIGNvbnN0IGltYWdlJCA9IHRoaXMuaHR0cC5nZXQodXJsLCB7IHJlc3BvbnNlVHlwZTogJ2Jsb2InIH0pLnBpcGUoXHJcbiAgIC8vICAgICAgICAgICAgICAgbWFwKChibG9iOiBCbG9iKSA9PiBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpKVxyXG4gICAvLyAgICAgICAgICAgICApO1xyXG4gICAvLyAgICAgICAgICAgICBpbWFnZUZldGNoZXMucHVzaChpbWFnZSQpO1xyXG4gICAvLyAgICAgICAgICAgfVxyXG4gICAvLyAgICAgICAgIH0pO1xyXG4gICBcclxuICAgLy8gICAgICAgICBpZiAoaW1hZ2VGZXRjaGVzLmxlbmd0aCkge1xyXG4gICAvLyAgICAgICAgICAgZm9ya0pvaW4oaW1hZ2VGZXRjaGVzKS5zdWJzY3JpYmUoe1xyXG4gICAvLyAgICAgICAgICAgICBuZXh0OiAoaW1hZ2VVcmxzOiBzdHJpbmdbXSkgPT4ge1xyXG4gICAvLyAgICAgICAgICAgICAgIHRoaXMudXBsb2FkZWRJbWFnZXNbdXBsb2FkZXJLZXldID0gaW1hZ2VVcmxzLm1hcChyZXN1bHQgPT4gKHtcclxuICAgLy8gICAgICAgICAgICAgICAgIHJlc3VsdCxcclxuICAgLy8gICAgICAgICAgICAgICAgIGZpbGU6IG51bGxcclxuICAgLy8gICAgICAgICAgICAgICB9KSk7XHJcbiAgIC8vICAgICAgICAgICAgICAgLy8gdGhpcy51cGxvYWRlZEZpbGVzID0gWy4uLnRoaXMudXBsb2FkZWRJbWFnZXNdXHJcbiAgIC8vICAgICAgICAgICAgICAgdGhpcy51cGxvYWRlZEZpbGVzID0gT2JqZWN0LnZhbHVlcyh0aGlzLnVwbG9hZGVkSW1hZ2VzKS5mbGF0KCk7XHJcbiAgIC8vICAgICAgICAgICAgIH0sXHJcbiAgIC8vICAgICAgICAgICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgIC8vICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihgRmFpbGVkIHRvIGZldGNoIGltYWdlcyBmb3IgJHt1cGxvYWRlcktleX06YCwgZXJyKTtcclxuICAgLy8gICAgICAgICAgICAgfVxyXG4gICAvLyAgICAgICAgICAgfSk7XHJcbiAgIC8vICAgICAgICAgfVxyXG4gICAvLyAgICAgICB9XHJcbiAgIC8vICAgICB9KTtcclxuICAgLy8gfVxyXG4gICBcclxuICAgLy8gbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgIC8vICAgdGhpcy5meEJ1aWxkZXJXcmFwcGVyU2VydmljZS52YXJpYWJsZXMkXHJcbiAgIC8vICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgIC8vICAgICAuc3Vic2NyaWJlKCh2YXJpYWJsZXM6IGFueSkgPT4ge1xyXG4gICAvLyAgICAgICBpZiAoIXZhcmlhYmxlcykgcmV0dXJuO1xyXG4gXHJcbiAgIC8vICAgICAgIGNvbnN0IHVwbG9hZGVkRmlsZXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nW10gfSA9IHt9O1xyXG4gXHJcbiAgIC8vICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHZhcmlhYmxlcykpIHtcclxuICAgLy8gICAgICAgICBpZiAoa2V5LmluY2x1ZGVzKCd1cGxvYWRlcicpICYmIEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XHJcbiAgIC8vICAgICAgICAgICB1cGxvYWRlZEZpbGVzW2tleV0gPSB2YWx1ZTtcclxuICAgLy8gICAgICAgICB9XHJcbiAgIC8vICAgICAgIH1cclxuIFxyXG4gICAvLyAgICAgICBmb3IgKGNvbnN0IFt1cGxvYWRlcktleSwgdXJsc10gb2YgT2JqZWN0LmVudHJpZXModXBsb2FkZWRGaWxlcykpIHtcclxuICAgLy8gICAgICAgICBjb25zdCBpbWFnZUZldGNoZXM6IE9ic2VydmFibGU8eyByZXN1bHQ6IHN0cmluZywgb3JpZ2luYWxVcmw6IHN0cmluZyB9PltdID0gW107XHJcbiBcclxuICAgLy8gICAgICAgICB1cmxzLmZvckVhY2goKHVybDogc3RyaW5nKSA9PiB7XHJcbiAgIC8vICAgICAgICAgICBpZiAodXJsKSB7XHJcbiAgIC8vICAgICAgICAgICAgIGNvbnN0IGltYWdlJCA9IHRoaXMuaHR0cC5nZXQodXJsLCB7IHJlc3BvbnNlVHlwZTogJ2Jsb2InIH0pLnBpcGUoXHJcbiAgIC8vICAgICAgICAgICAgICAgbWFwKChibG9iOiBCbG9iKSA9PiAoe1xyXG4gICAvLyAgICAgICAgICAgICAgICAgcmVzdWx0OiBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpLCAvLyBqdXN0IGZvciBwcmV2aWV3XHJcbiAgIC8vICAgICAgICAgICAgICAgICBvcmlnaW5hbFVybDogdXJsXHJcbiAgIC8vICAgICAgICAgICAgICAgfSkpXHJcbiAgIC8vICAgICAgICAgICAgICk7XHJcbiAgIC8vICAgICAgICAgICAgIGltYWdlRmV0Y2hlcy5wdXNoKGltYWdlJCk7XHJcbiAgIC8vICAgICAgICAgICB9XHJcbiAgIC8vICAgICAgICAgfSk7XHJcbiBcclxuICAgLy8gICAgICAgICBpZiAoaW1hZ2VGZXRjaGVzLmxlbmd0aCkge1xyXG4gICAvLyAgICAgICAgICAgZm9ya0pvaW4oaW1hZ2VGZXRjaGVzKS5zdWJzY3JpYmUoe1xyXG4gICAvLyAgICAgICAgICAgICBuZXh0OiAoaW1hZ2VEYXRhKSA9PiB7XHJcbiAgIC8vICAgICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkID0gaW1hZ2VEYXRhLm1hcChpdGVtID0+ICh7XHJcbiAgIC8vICAgICAgICAgICAgICAgICBpZDogdXVpZHY0KCksXHJcbiAgIC8vICAgICAgICAgICAgICAgICBmaWxlOiBudWxsLFxyXG4gICAvLyAgICAgICAgICAgICAgICAgb3JpZ2luYWxVcmw6IGl0ZW0ub3JpZ2luYWxVcmwsXHJcbiAgIC8vICAgICAgICAgICAgICAgICByZXN1bHQ6IGl0ZW0ucmVzdWx0XHJcbiAgIC8vICAgICAgICAgICAgICAgfSkpO1xyXG4gXHJcbiAgIC8vICAgICAgICAgICAgICAgdGhpcy51cGxvYWRlZEZpbGVzID0gWy4uLnRoaXMudXBsb2FkZWRGaWxlcywgLi4uZm9ybWF0dGVkXTtcclxuICAgLy8gICAgICAgICAgICAgICB0aGlzLnVwbG9hZEZpbGVDb250cm9sLnNldFZhbHVlKHRoaXMudXBsb2FkZWRGaWxlcyk7XHJcbiAgIC8vICAgICAgICAgICAgIH0sXHJcbiAgIC8vICAgICAgICAgICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgIC8vICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihgRmFpbGVkIHRvIGZldGNoIGltYWdlcyBmb3IgJHt1cGxvYWRlcktleX06YCwgZXJyKTtcclxuICAgLy8gICAgICAgICAgICAgfVxyXG4gICAvLyAgICAgICAgICAgfSk7XHJcbiAgIC8vICAgICAgICAgfVxyXG4gICAvLyAgICAgICB9XHJcbiAgIC8vICAgICB9KTtcclxuICAgLy8gfVxyXG4gXHJcbiAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgIHRoaXMuZnhCdWlsZGVyV3JhcHBlclNlcnZpY2UudmFyaWFibGVzJFxyXG4gICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAgLnN1YnNjcmliZSgodmFyaWFibGVzOiBhbnkpID0+IHtcclxuICAgICAgICAgaWYgKCF2YXJpYWJsZXMpIHJldHVybjtcclxuICAgXHJcbiAgICAgICAgIGNvbnN0IHVwbG9hZGVkRmlsZXNNYXA6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nW10gfSA9IHt9O1xyXG4gICBcclxuICAgICAgICAgLy8gRXh0cmFjdCB1cGxvYWRlciBrZXlzIGFuZCB0aGVpciBjb3JyZXNwb25kaW5nIFVSTCBhcnJheXNcclxuICAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModmFyaWFibGVzKSkge1xyXG4gICAgICAgICAgIGlmIChrZXkuaW5jbHVkZXMoJ3VwbG9hZGVyLWNoZWNrYm94JykgJiYgQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcclxuICAgICAgICAgICAgIHVwbG9hZGVkRmlsZXNNYXBba2V5XSA9IHZhbHVlO1xyXG4gICAgICAgICAgIH1cclxuICAgICAgICAgfVxyXG4gICBcclxuICAgICAgICAgZm9yIChjb25zdCBbdXBsb2FkZXJLZXksIHVybHNdIG9mIE9iamVjdC5lbnRyaWVzKHVwbG9hZGVkRmlsZXNNYXApKSB7XHJcbiAgICAgICAgICAgY29uc3QgaW1hZ2VGZXRjaGVzOiBPYnNlcnZhYmxlPHsgcmVzdWx0OiBzdHJpbmc7IG9yaWdpbmFsVXJsOiBhbnkgfT5bXSA9IFtdO1xyXG4gICBcclxuICAgICAgICAgICB1cmxzLmZvckVhY2goKG9yaWdpbmFsVXJsOmFueSkgPT4ge1xyXG4gICAgICAgICAgICAgaWYgKG9yaWdpbmFsVXJsKSB7XHJcbiAgICAgICAgICAgICAgIGNvbnN0IGltYWdlJCA9IHRoaXMuaHR0cC5nZXQob3JpZ2luYWxVcmw/Lm9yaWdpbmFsVXJsLCB7IHJlc3BvbnNlVHlwZTogJ2Jsb2InIH0pLnBpcGUoXHJcbiAgICAgICAgICAgICAgICAgbWFwKChibG9iOiBCbG9iKSA9PiAoe1xyXG4gICAgICAgICAgICAgICAgICAgcmVzdWx0OiBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpLCAvLyBmb3IgcHJldmlld1xyXG4gICAgICAgICAgICAgICAgICAgb3JpZ2luYWxVcmw6IG9yaWdpbmFsVXJsPy5vcmlnaW5hbFVybCAgICAgICAgICAvLyBwcmVzZXJ2ZSBvcmlnaW5hbFxyXG4gICAgICAgICAgICAgICAgIH0pKVxyXG4gICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICBpbWFnZUZldGNoZXMucHVzaChpbWFnZSQpO1xyXG4gICAgICAgICAgICAgfVxyXG4gICAgICAgICAgIH0pO1xyXG4gICBcclxuICAgICAgICAgICBpZiAoaW1hZ2VGZXRjaGVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgIGZvcmtKb2luKGltYWdlRmV0Y2hlcykuc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgICAgbmV4dDogKGltYWdlRGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZCA9IGltYWdlRGF0YS5tYXAoaXRlbSA9PiAoe1xyXG4gICAgICAgICAgICAgICAgICAgaWQ6IHV1aWR2NCgpLFxyXG4gICAgICAgICAgICAgICAgICAgZmlsZTogbnVsbCxcclxuICAgICAgICAgICAgICAgICAgIG9yaWdpbmFsVXJsOiBpdGVtLm9yaWdpbmFsVXJsLFxyXG4gICAgICAgICAgICAgICAgICAgcmVzdWx0OiBpdGVtLnJlc3VsdFxyXG4gICAgICAgICAgICAgICAgIH0pKTtcclxuICAgXHJcbiAgICAgICAgICAgICAgICAgdGhpcy51cGxvYWRlZEZpbGVzID0gWy4uLnRoaXMudXBsb2FkZWRGaWxlcywgLi4uZm9ybWF0dGVkXTtcclxuICAgICAgICAgICAgICAgICB0aGlzLmZvcm1hdHRlZERhdGEudXBsb2FkZWRGaWxlcyA9IHRoaXMudXBsb2FkZWRGaWxlcztcclxuICAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZEZpbGVDb250cm9sLnNldFZhbHVlKHRoaXMuZm9ybWF0dGVkRGF0YSk7XHJcbiAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihgRmFpbGVkIHRvIGZldGNoIGltYWdlcyBmb3IgJHt1cGxvYWRlcktleX06YCwgZXJyKTtcclxuICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgfVxyXG4gICAgICAgICB9XHJcbiAgICAgICB9KTtcclxuICAgfVxyXG4gICBcclxuICAgLy8gbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgIC8vICAgdGhpcy5meEJ1aWxkZXJXcmFwcGVyU2VydmljZS52YXJpYWJsZXMkXHJcbiAgIC8vICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgIC8vICAgICAuc3Vic2NyaWJlKCh2YXJpYWJsZXM6IGFueSkgPT4ge1xyXG4gICAvLyAgICAgICBpZiAoIXZhcmlhYmxlcykgcmV0dXJuO1xyXG4gICBcclxuICAgLy8gICAgICAgY29uc3QgdXBsb2FkZWRGaWxlc01hcDogeyBba2V5OiBzdHJpbmddOiB7IG9yaWdpbmFsVXJsOiBzdHJpbmcgfVtdIH0gPSB2YXJpYWJsZXMudXBsb2FkZWRGaWxlcztcclxuICAgXHJcbiAgIC8vICAgICAgIGZvciAoY29uc3QgW3VwbG9hZGVyS2V5LCB1cmxzXSBvZiBPYmplY3QuZW50cmllcyh1cGxvYWRlZEZpbGVzTWFwKSkge1xyXG4gICAvLyAgICAgICAgIGNvbnN0IGltYWdlRmV0Y2hlczogT2JzZXJ2YWJsZTx7IHJlc3VsdDogc3RyaW5nOyBvcmlnaW5hbFVybDogc3RyaW5nIH0+W10gPSBbXTtcclxuICAgXHJcbiAgIC8vICAgICAgICAgdXJscy5mb3JFYWNoKChmaWxlT2JqOiBhbnkpID0+IHtcclxuICAgLy8gICAgICAgICAgIGNvbnN0IG9yaWdpbmFsVXJsID0gZmlsZU9iaj8ub3JpZ2luYWxVcmw7XHJcbiAgIC8vICAgICAgICAgICBpZiAob3JpZ2luYWxVcmwpIHtcclxuICAgLy8gICAgICAgICAgICAgY29uc3QgaW1hZ2UkID0gdGhpcy5odHRwLmdldChvcmlnaW5hbFVybCwgeyByZXNwb25zZVR5cGU6ICdibG9iJyB9KS5waXBlKFxyXG4gICAvLyAgICAgICAgICAgICAgIG1hcCgoYmxvYjogQmxvYikgPT4gKHtcclxuICAgLy8gICAgICAgICAgICAgICAgIHJlc3VsdDogVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKSwgLy8gZm9yIHByZXZpZXdcclxuICAgLy8gICAgICAgICAgICAgICAgIG9yaWdpbmFsVXJsXHJcbiAgIC8vICAgICAgICAgICAgICAgfSkpXHJcbiAgIC8vICAgICAgICAgICAgICk7XHJcbiAgIC8vICAgICAgICAgICAgIGltYWdlRmV0Y2hlcy5wdXNoKGltYWdlJCk7XHJcbiAgIC8vICAgICAgICAgICB9XHJcbiAgIC8vICAgICAgICAgfSk7XHJcbiAgIFxyXG4gICAvLyAgICAgICAgIGlmIChpbWFnZUZldGNoZXMubGVuZ3RoID4gMCkge1xyXG4gICAvLyAgICAgICAgICAgZm9ya0pvaW4oaW1hZ2VGZXRjaGVzKS5zdWJzY3JpYmUoe1xyXG4gICAvLyAgICAgICAgICAgICBuZXh0OiAoaW1hZ2VEYXRhKSA9PiB7XHJcbiAgIC8vICAgICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkID0gaW1hZ2VEYXRhLm1hcChpdGVtID0+ICh7XHJcbiAgIC8vICAgICAgICAgICAgICAgICBpZDogdXVpZHY0KCksXHJcbiAgIC8vICAgICAgICAgICAgICAgICBmaWxlOiBudWxsLFxyXG4gICAvLyAgICAgICAgICAgICAgICAgb3JpZ2luYWxVcmw6IGl0ZW0ub3JpZ2luYWxVcmwsXHJcbiAgIC8vICAgICAgICAgICAgICAgICByZXN1bHQ6IGl0ZW0ucmVzdWx0XHJcbiAgIC8vICAgICAgICAgICAgICAgfSkpO1xyXG4gICBcclxuICAgLy8gICAgICAgICAgICAgICB0aGlzLnVwbG9hZGVkRmlsZXMgPSBbLi4udGhpcy51cGxvYWRlZEZpbGVzLCAuLi5mb3JtYXR0ZWRdO1xyXG4gICAvLyAgICAgICAgICAgICAgIHRoaXMuZm9ybWF0dGVkRGF0YS51cGxvYWRlZEZpbGVzID0gdGhpcy51cGxvYWRlZEZpbGVzO1xyXG4gICAvLyAgICAgICAgICAgICAgIHRoaXMudXBsb2FkRmlsZUNvbnRyb2wuc2V0VmFsdWUodGhpcy5mb3JtYXR0ZWREYXRhKTtcclxuICAgLy8gICAgICAgICAgICAgfSxcclxuICAgLy8gICAgICAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgLy8gICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gZmV0Y2ggaW1hZ2VzIGZvciAke3VwbG9hZGVyS2V5fTpgLCBlcnIpO1xyXG4gICAvLyAgICAgICAgICAgICB9XHJcbiAgIC8vICAgICAgICAgICB9KTtcclxuICAgLy8gICAgICAgICB9XHJcbiAgIC8vICAgICAgIH1cclxuICAgLy8gICAgIH0pO1xyXG4gICAvLyB9XHJcbiAgIFxyXG4gXHJcbiAgIC8vIHB1YmxpYyBvbkZpbGVTZWxlY3RlZChldmVudDogRXZlbnQpIHtcclxuICAgLy8gICBjb25zdCBpbnB1dCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG4gICAvLyAgIGlmIChpbnB1dC5maWxlcykge1xyXG4gICAvLyAgICAgZm9yKGxldCBpID0gMDsgaSA8IGlucHV0Py5maWxlcz8ubGVuZ3RoOyBpKyspIHtcclxuICAgLy8gICAgICAgY29uc3QgZmlsZSA9IGlucHV0LmZpbGVzW2ldO1xyXG4gICAvLyAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAvLyAgICAgICByZWFkZXIub25sb2FkID0gZSA9PiB7XHJcbiAgIC8vICAgICAgICAgdGhpcy51cGxvYWRlZEZpbGVzLnB1c2goe1xyXG4gICAvLyAgICAgICAgICAgZmlsZTogZmlsZSxcclxuICAgLy8gICAgICAgICAgIHJlc3VsdDogZS50YXJnZXQ/LnJlc3VsdCxcclxuICAgLy8gICAgICAgICAgIG5hbWU6IGZpbGU/Lm5hbWUsXHJcbiAgIC8vICAgICAgICAgICBpZDogdXVpZHY0KClcclxuICAgLy8gICAgICAgICB9KVxyXG4gICAvLyAgICAgICAgIHRoaXMudXBsb2FkRmlsZUNvbnRyb2wuc2V0VmFsdWUodGhpcy51cGxvYWRlZEZpbGVzKTtcclxuICAgLy8gICAgICAgICBjb25zb2xlLmxvZyh0aGlzLnVwbG9hZEZpbGVDb250cm9sKTtcclxuICAgLy8gICAgICAgfVxyXG4gICAvLyAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcclxuICAgLy8gICAgIH1cclxuICAgLy8gICB9XHJcbiAgIC8vIH1cclxuIFxyXG4gICBvbkZpbGVTZWxlY3RlZChldmVudDogRXZlbnQpIHtcclxuICAgICBjb25zdCBpbnB1dCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xyXG4gICAgIGlmIChpbnB1dC5maWxlcykge1xyXG4gICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dC5maWxlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICBjb25zdCBmaWxlID0gaW5wdXQuZmlsZXNbaV07XHJcbiAgICAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiBcclxuICAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGUgPT4ge1xyXG4gICAgICAgICAgIGNvbnN0IG5ld0ZpbGUgPSB7XHJcbiAgICAgICAgICAgICBpZDogdXVpZHY0KCksXHJcbiAgICAgICAgICAgICBmaWxlOiBmaWxlLFxyXG4gICAgICAgICAgICAgb3JpZ2luYWxVcmw6IG51bGwsXHJcbiAgICAgICAgICAgICByZXN1bHQ6IGUudGFyZ2V0Py5yZXN1bHQsXHJcbiAgICAgICAgICAgICBuYW1lOiBmaWxlLm5hbWVcclxuICAgICAgICAgICB9O1xyXG4gXHJcbiAgICAgICAgICAgdGhpcy51cGxvYWRlZEZpbGVzLnB1c2gobmV3RmlsZSk7XHJcbiAgICAgICAgICAgdGhpcy5mb3JtYXR0ZWREYXRhLnVwbG9hZGVkRmlsZXMgPSB0aGlzLnVwbG9hZGVkRmlsZXM7XHJcbiAgICAgICAgICAgdGhpcy51cGxvYWRGaWxlQ29udHJvbC5zZXRWYWx1ZSh0aGlzLmZvcm1hdHRlZERhdGEpO1xyXG4gICAgICAgICB9O1xyXG4gXHJcbiAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xyXG4gICAgICAgfVxyXG4gICAgIH1cclxuICAgfVxyXG4gXHJcbiBcclxuICAgLy8gcHVibGljIGRlbGV0ZUZpbGUoaWQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAvLyAgIHRoaXMudXBsb2FkZWRGaWxlcyA9IHRoaXMudXBsb2FkZWRGaWxlcy5maWx0ZXIoZmlsZSA9PiBmaWxlPy5pZCAhPT0gaWQpO1xyXG4gICAvLyB9XHJcbiBcclxuICAgLy8gZGVsZXRlRmlsZShpbmRleDogbnVtYmVyKTogdm9pZCB7XHJcbiAgIC8vICAgY29uc3QgW2RlbGV0ZWRGaWxlXSA9IHRoaXMudXBsb2FkZWRGaWxlcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICBcclxuICAgLy8gICBpZiAoZGVsZXRlZEZpbGUpIHtcclxuICAgLy8gICAgIHRoaXMuZGVsZXRlZEZpbGVzLnB1c2goZGVsZXRlZEZpbGUpO1xyXG4gICAvLyAgICAgdGhpcy5mb3JtYXR0ZWREYXRhID0ge1xyXG4gICAvLyAgICAgICAuLi50aGlzLmZvcm1hdHRlZERhdGEsXHJcbiAgIC8vICAgICAgIHVwbG9hZGVkRmlsZXM6IFsuLi50aGlzLnVwbG9hZGVkRmlsZXNdLFxyXG4gICAvLyAgICAgICBkZWxldGVkRmlsZXM6IFsuLi50aGlzLmRlbGV0ZWRGaWxlc11cclxuICAgLy8gICAgIH07XHJcbiAgIC8vICAgICB0aGlzLnVwbG9hZEZpbGVDb250cm9sLnNldFZhbHVlKHRoaXMuZm9ybWF0dGVkRGF0YSk7XHJcbiAgIC8vICAgfVxyXG4gICAvLyB9XHJcbiBcclxuICAgZGVsZXRlRmlsZShpbmRleDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICAgY29uc3QgZGVsZXRlZEZpbGUgPSB0aGlzLnVwbG9hZGVkRmlsZXM/LltpbmRleF07XHJcbiAgICAgaWYgKCFkZWxldGVkRmlsZSkgcmV0dXJuO1xyXG4gICBcclxuICAgICAvLyBFbnN1cmUgZm9ybWF0dGVkRGF0YSBleGlzdHMgYW5kIGluaXRpYWxpemUgaWYgdW5kZWZpbmVkXHJcbiAgICAgdGhpcy5mb3JtYXR0ZWREYXRhID0gdGhpcy5mb3JtYXR0ZWREYXRhIHx8IHsgdXBsb2FkZWRGaWxlczogW10sIGRlbGV0ZWRGaWxlczogW10gfTtcclxuICAgXHJcbiAgICAgLy8gQWRkIHRoZSBkZWxldGVkIGZpbGUgdG8gdGhlIGRlbGV0ZWRGaWxlcyBhcnJheVxyXG4gICAgIHRoaXMuZGVsZXRlZEZpbGVzID0gWy4uLnRoaXMuZGVsZXRlZEZpbGVzLCBkZWxldGVkRmlsZV07XHJcbiAgIFxyXG4gICAgIC8vIFJlbW92ZSB0aGUgZmlsZSBmcm9tIHVwbG9hZGVkRmlsZXMgdXNpbmcgZmlsdGVyIGZvciBpbW11dGFiaWxpdHlcclxuICAgICB0aGlzLnVwbG9hZGVkRmlsZXMgPSB0aGlzLnVwbG9hZGVkRmlsZXMuZmlsdGVyKChfLCBpKSA9PiBpICE9PSBpbmRleCk7XHJcbiAgIFxyXG4gICAgIC8vIFVwZGF0ZSBmb3JtYXR0ZWREYXRhXHJcbiAgICAgdGhpcy5mb3JtYXR0ZWREYXRhID0ge1xyXG4gICAgICAgLi4udGhpcy5mb3JtYXR0ZWREYXRhLFxyXG4gICAgICAgdXBsb2FkZWRGaWxlczogdGhpcy51cGxvYWRlZEZpbGVzLFxyXG4gICAgICAgZGVsZXRlZEZpbGVzOiB0aGlzLmRlbGV0ZWRGaWxlc1xyXG4gICAgIH07XHJcbiAgIFxyXG4gICAgIC8vIFNldCB0aGUgdmFsdWUgb2YgdGhlIHVwbG9hZEZpbGVDb250cm9sXHJcbiAgICAgdGhpcy51cGxvYWRGaWxlQ29udHJvbC5zZXRWYWx1ZSh0aGlzLmZvcm1hdHRlZERhdGEpO1xyXG4gICB9XHJcbiAgIFxyXG4gICBvbkNoZWNrYm94Q2hhbmdlKCl7XHJcbiAgICB0aGlzLmZvcm1hdHRlZERhdGEgPSB7XHJcbiAgICAgIC4uLnRoaXMuZm9ybWF0dGVkRGF0YSxcclxuICAgICAgdXBsb2FkZWRGaWxlczogdGhpcy51cGxvYWRlZEZpbGVzLFxyXG4gICAgICBkZWxldGVkRmlsZXM6IHRoaXMuZGVsZXRlZEZpbGVzLFxyXG4gICAgICBjaGVja2JveEVuYWJsZWQ6dGhpcy5jaGVja2JveEVuYWJsZWRcclxuICAgIH07XHJcbiAgICB0aGlzLnVwbG9hZEZpbGVDb250cm9sLnNldFZhbHVlKHRoaXMuZm9ybWF0dGVkRGF0YSk7XHJcbiAgIH1cclxuICAgXHJcbiBcclxuICAgcHJvdGVjdGVkIHNldHRpbmdzKCk6IEZ4U2V0dGluZ1tdIHtcclxuICAgICByZXR1cm4gW1xyXG4gICAgICAgbmV3IEZ4U3RyaW5nU2V0dGluZyh7IGtleTogJ3VwbG9hZC10ZXh0JywgJHRpdGxlOiAnVXBsb2FkIFRleHQnLCB2YWx1ZTogJ1VwbG9hZCBGaWxlJ30pLFxyXG4gICAgICAgbmV3IEZ4U3RyaW5nU2V0dGluZyh7IGtleTogJ2NoZWNrYm94LWxhYmVsJywgJHRpdGxlOiAnQ2hlY2tib3ggTGFiZWwnLCB2YWx1ZTogJyd9KSxcclxuICAgICAgIG5ldyBGeFNlbGVjdFNldHRpbmcoe2tleTogJ211bHRpcGxlLXVwbG9hZCcsICR0aXRsZTogJ011bHRpcGxlIFVwbG9hZCcsIHZhbHVlOiBmYWxzZX0sIFt7b3B0aW9uOiAnRW5hYmxlJywgdmFsdWU6IHRydWV9LCB7b3B0aW9uOiAnRGlzYWJsZScsIHZhbHVlOiBmYWxzZX1dKVxyXG4gICAgIF07XHJcbiAgIH1cclxuIFxyXG4gICBwcm90ZWN0ZWQgdmFsaWRhdGlvbnMoKTogRnhWYWxpZGF0aW9uW10ge1xyXG4gICAgIHJldHVybiBbRnhWYWxpZGF0b3JTZXJ2aWNlLnJlcXVpcmVkXTtcclxuICAgfVxyXG5cclxufVxyXG4iLCI8ZngtY29tcG9uZW50IFtmeERhdGFdPVwiZnhEYXRhXCI+XHJcbiAgICA8bGFiZWwgY2xhc3M9XCJpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICBbKG5nTW9kZWwpXSA9IFwiY2hlY2tib3hFbmFibGVkXCJcclxuICAgICAgICAgIChjaGFuZ2UpPVwib25DaGVja2JveENoYW5nZSgpXCJcclxuICAgICAgICAvPlxyXG4gICAgICAgIHt7IHNldHRpbmcoJ2NoZWNrYm94LWxhYmVsJykgfX1cclxuICAgICAgPC9sYWJlbD5cclxuICAgIDxkaXYgY2xhc3M9XCJjdXN0b20tdXBsb2FkIGZsZXggZmxleC1yb3cgaXRlbXMtY2VudGVyIGdhcC0yIHAtMiBwYi0wIHJvdW5kZWQtc21cIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wganVzdGlmeS1jZW50ZXIgaXRlbXMtY2VudGVyXCIgKGNsaWNrKT1cImZpbGVJbnB1dC5jbGljaygpXCI+XHJcbiAgICAgICAgPGRpdj5cclxuICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjlcIiBoZWlnaHQ9XCIyOFwiIHZpZXdCb3g9XCIwIDAgMjkgMjhcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXHJcbiAgICAgICAgICAgICAgZD1cIk0xNC4wMDEgMy4wMDE5NUMxMS41MzIyIDMuMDAxOTUgOS4xNjcyMiAzLjg2OTU2IDcuMjM2NDEgNS4zODQxNEw3LjIzNTk4IDQuNTk2OTVDNy4yMzU5OCA0LjUyNDczIDcuMjIxNzUgNC40NTMyMSA3LjE5NDExIDQuMzg2NDhDNy4xNjY0NyA0LjMxOTc1IDcuMTI1OTYgNC4yNTkxMiA3LjA3NDg5IDQuMjA4MDRDNy4wMjM4MSA0LjE1Njk3IDYuOTYzMTggNC4xMTY0NiA2Ljg5NjQ1IDQuMDg4ODJDNi44Mjk3MiA0LjA2MTE4IDYuNzU4MiA0LjA0Njk1IDYuNjg1OTggNC4wNDY5NUM2LjYxMzc1IDQuMDQ2OTUgNi41NDIyMyA0LjA2MTE4IDYuNDc1NSA0LjA4ODgyQzYuNDA4NzcgNC4xMTY0NiA2LjM0ODE0IDQuMTU2OTcgNi4yOTcwNyA0LjIwODA0QzYuMjQ1OTkgNC4yNTkxMiA2LjIwNTQ4IDQuMzE5NzUgNi4xNzc4NCA0LjM4NjQ4QzYuMTUwMiA0LjQ1MzIxIDYuMTM1OTggNC41MjQ3MyA2LjEzNTk4IDQuNTk2OTVMNi4xMzY0MiA2LjY4NjUyQzYuMTM2NDMgNi44MzIzOSA2LjE5NDM4IDYuOTcyMjggNi4yOTc1MiA3LjA3NTQyQzYuNDAwNjcgNy4xNzg1NiA2LjU0MDU1IDcuMjM2NTEgNi42ODY0MiA3LjIzNjUySDguNzc1OThDOC44NDgyIDcuMjM2NTIgOC45MTk3MiA3LjIyMjMgOC45ODY0NSA3LjE5NDY2QzkuMDUzMTggNy4xNjcwMiA5LjExMzgxIDcuMTI2NTEgOS4xNjQ4OSA3LjA3NTQzQzkuMjE1OTYgNy4wMjQzNiA5LjI1NjQ3IDYuOTYzNzMgOS4yODQxMSA2Ljg5N0M5LjMxMTc1IDYuODMwMjcgOS4zMjU5OCA2Ljc1ODc1IDkuMzI1OTggNi42ODY1MkM5LjMyNTk4IDYuNjE0MyA5LjMxMTc1IDYuNTQyNzggOS4yODQxMSA2LjQ3NjA1QzkuMjU2NDcgNi40MDkzMiA5LjIxNTk2IDYuMzQ4NjkgOS4xNjQ4OSA2LjI5NzYxQzkuMTEzODEgNi4yNDY1NCA5LjA1MzE4IDYuMjA2MDMgOC45ODY0NSA2LjE3ODM5QzguOTE5NzIgNi4xNTA3NSA4Ljg0ODIgNi4xMzY1MiA4Ljc3NTk4IDYuMTM2NTJIOC4wNTg0QzkuNzcwMiA0Ljg0Mzg3IDExLjgzOTkgNC4xMDE5NSAxNC4wMDEgNC4xMDE5NUMxOS40NzUxIDQuMTAxOTUgMjMuOTAxIDguNTI3ODIgMjMuOTAxIDE0LjAwMkMyMy45MDEgMTkuNDc2MSAxOS40NzUxIDIzLjkwMiAxNC4wMDEgMjMuOTAyQzguNTI2ODQgMjMuOTAyIDQuMTAwOTggMTkuNDc2MSA0LjEwMDk4IDE0LjAwMkM0LjEwMDk4IDEyLjYzODEgNC4zODI2MyAxMS4yODg4IDQuOTI4NTUgMTAuMDM4OUM0Ljk4NjkxIDkuOTA1MzIgNC45ODk4MiA5Ljc1Mzk5IDQuOTM2NjUgOS42MTgyMkM0Ljg4MzQ3IDkuNDgyNDYgNC43Nzg1NSA5LjM3MzM2IDQuNjQ0OTYgOS4zMTQ5MkM0LjU3ODc3IDkuMjg1OTYgNC41MDc1MyA5LjI3MDMyIDQuNDM1MyA5LjI2ODlDNC4zNjMwNiA5LjI2NzQ3IDQuMjkxMjYgOS4yODAzIDQuMjIzOTggOS4zMDY2M0M0LjE1NjcxIDkuMzMyOTcgNC4wOTUyOCA5LjM3MjMgNC4wNDMyMSA5LjQyMjM4QzMuOTkxMTQgOS40NzI0NyAzLjk0OTQ0IDkuNTMyMzIgMy45MjA1MSA5LjU5ODUyQzMuMzEzOTMgMTAuOTg3MiAzLjAwMDk4IDEyLjQ4NjYgMy4wMDA5OCAxNC4wMDJDMy4wMDA5OCAyMC4wNzA2IDcuOTMyMzYgMjUuMDAyIDE0LjAwMSAyNS4wMDJDMjAuMDY5NiAyNS4wMDIgMjUuMDAxIDIwLjA3MDYgMjUuMDAxIDE0LjAwMkMyNS4wMDEgNy45MzMzNCAyMC4wNjk2IDMuMDAxOTUgMTQuMDAxIDMuMDAxOTVaXCJcclxuICAgICAgICAgICAgICBmaWxsPVwiI0YzQTA0MVwiIC8+XHJcbiAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCJcclxuICAgICAgICAgICAgICBkPVwiTTEzLjk5ODggNi4xMzk2NUM5LjY2MTYgNi4xMzk2NSA2LjEzMzc5IDkuNjY3NDYgNi4xMzM3OSAxNC4wMDQ2QzYuMTMzNzkgMTguMzQxOCA5LjY2MTYgMjEuODY5NiAxMy45OTg4IDIxLjg2OTZDMTguMzM2IDIxLjg2OTYgMjEuODYzOCAxOC4zNDE4IDIxLjg2MzggMTQuMDA0NkMyMS44NjM4IDkuNjY3NDYgMTguMzM2IDYuMTM5NjUgMTMuOTk4OCA2LjEzOTY1Wk0xMy45OTg4IDguMjI5NjVDMTQuMTQ0NyA4LjIyOTY1IDE0LjI4NDYgOC4yODc1OSAxNC4zODc3IDguMzkwNzRDMTQuNDkwOCA4LjQ5Mzg4IDE0LjU0ODggOC42MzM3OCAxNC41NDg4IDguNzc5NjVWMTMuNzc2OUwxNy41MjI3IDE2Ljc1MDhDMTcuNjI1OCAxNi44NTM5IDE3LjY4MzcgMTYuOTkzOCAxNy42ODM3IDE3LjEzOTZDMTcuNjgzNyAxNy4yODU1IDE3LjYyNTggMTcuNDI1NCAxNy41MjI3IDE3LjUyODVDMTcuNDE5NSAxNy42MzE2IDE3LjI3OTYgMTcuNjg5NiAxNy4xMzM4IDE3LjY4OTZDMTYuOTg3OSAxNy42ODk2IDE2Ljg0ODEgMTcuNjMxNiAxNi43NDQ5IDE3LjUyODVMMTMuNjA5OSAxNC4zOTM1QzEzLjUwNjggMTQuMjkwNCAxMy40NDg4IDE0LjE1MDUgMTMuNDQ4OCAxNC4wMDQ2VjguNzc5NjVDMTMuNDQ4OCA4LjYzMzc4IDEzLjUwNjcgOC40OTM4OCAxMy42MDk5IDguMzkwNzRDMTMuNzEzIDguMjg3NTkgMTMuODUyOSA4LjIyOTY1IDEzLjk5ODggOC4yMjk2NVpcIlxyXG4gICAgICAgICAgICAgIGZpbGw9XCIjRjNBMDQxXCIgLz5cclxuICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIyOC41NlwiIGhlaWdodD1cIjI4XCIgcng9XCIxLjUxNDc5XCIgZmlsbD1cIiNGM0EwNDFcIiAvPlxyXG4gICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgIGQ9XCJNMTUuMDY4IDIyLjczOTFWMTcuNjcwOEgxOC40OTY4TDE0LjIxMDggMTIuNjAyNUw5LjkyNDggMTcuNjcwOEgxMy4zNTM2VjIyLjczOTFIOS4wNjc1OVYyMi42OTY5QzguOTIzNTggMjIuNzA1MyA4Ljc4NjQzIDIyLjczOTEgOC42Mzg5OSAyMi43MzkxQzYuOTMzOTEgMjIuNzM5MSA1LjI5ODY2IDIyLjA3MTcgNC4wOTI5OCAyMC44ODM1QzIuODg3MyAxOS42OTU0IDIuMjA5OTYgMTguMDg0IDIuMjA5OTYgMTYuNDAzN0MyLjIwOTk2IDEzLjE1MzIgNC43MDQ0MyAxMC41MDQyIDcuOTA1MjMgMTAuMTQxQzguMTg1ODUgOC42OTUzIDguOTY4OTIgNy4zOTExOCAxMC4xMTk3IDYuNDUyOTJDMTEuMjcwNiA1LjUxNDY1IDEyLjcxNzIgNS4wMDA4OSAxNC4yMTA4IDVDMTUuNzA0NyA1LjAwMDgyIDE3LjE1MTUgNS41MTQ1MiAxOC4zMDI2IDYuNDUyNzdDMTkuNDUzNyA3LjM5MTAxIDIwLjIzNzEgOC42OTUxNiAyMC41MTgxIDEwLjE0MUMyMy43MTg5IDEwLjUwNDIgMjYuMjEgMTMuMTUzMiAyNi4yMSAxNi40MDM3QzI2LjIxIDE4LjA4NCAyNS41MzI2IDE5LjY5NTQgMjQuMzI2OSAyMC44ODM1QzIzLjEyMTMgMjIuMDcxNyAyMS40ODYgMjIuNzM5MSAxOS43ODA5IDIyLjczOTFDMTkuNjM2OSAyMi43MzkxIDE5LjQ5ODEgMjIuNzA1MyAxOS4zNTIzIDIyLjY5NjlWMjIuNzM5MUgxNS4wNjhaXCJcclxuICAgICAgICAgICAgICBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGEgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJmaWxlSW5wdXQuY2xpY2soKVwiIGNsYXNzPVwidGV4dC1iYXNlIGN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICB7eyBzZXR0aW5nKCd1cGxvYWQtdGV4dCcpIH19XHJcbiAgICAgICAgPC9hPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGlucHV0ICNmaWxlSW5wdXQgdHlwZT1cImZpbGVcIiBbbXVsdGlwbGVdPVwic2V0dGluZygnbXVsdGlwbGUtdXBsb2FkJylcIiAoY2hhbmdlKT1cIm9uRmlsZVNlbGVjdGVkKCRldmVudClcIiBoaWRkZW4gLz5cclxuICAgICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvclwiPjwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1saXN0IGZsZXggaXRlbXMtY2VudGVyIGdhcC00IGZsZXgtd3JhcFwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ1cGxvYWRlZEZpbGVzPy5sZW5ndGhcIj5cclxuICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGZpbGUgb2YgdXBsb2FkZWRGaWxlczsgbGV0IGkgPSBpbmRleFwiIChjbGljayk9XCJkZWxldGVGaWxlKGkpXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVsYXRpdmVcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2xvc2VfaWNvbiBjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxOFwiIGhlaWdodD1cIjE4XCIgdmlld0JveD1cIjAgMCAxOCAxOFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfNjgzN18yOTY4MylcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjE4XCIgaGVpZ2h0PVwiMThcIiByeD1cIjlcIiBmaWxsPVwiI0YzQTA0MVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hc2sgaWQ9XCJtYXNrMF82ODM3XzI5NjgzXCIgc3R5bGU9XCJtYXNrLXR5cGU6YWxwaGFcIiBtYXNrVW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiIHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjI0XCJcclxuICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjI0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgZmlsbD1cIiNEOUQ5RDlcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbWFzaz5cclxuICAgICAgICAgICAgICAgICAgICA8ZyBtYXNrPVwidXJsKCNtYXNrMF82ODM3XzI5NjgzKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk04LjIwNDUgOC45OTgxNUw1LjgxODAyIDYuNjExNjdMNi42MTM1MSA1LjgxNjE3TDkgOC4yMDI2NkwxMS4zODY1IDUuODE2MTdMMTIuMTgyIDYuNjExNjdMOS43OTU1IDguOTk4MTVMMTIuMTgyIDExLjM4NDZMMTEuMzg2NSAxMi4xODAxTDkgOS43OTM2NUw2LjYxMzUxIDEyLjE4MDFMNS44MTgwMiAxMS4zODQ2TDguMjA0NSA4Ljk5ODE1WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzY4MzdfMjk2ODNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMThcIiBoZWlnaHQ9XCIxOFwiIHJ4PVwiOVwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImZpbGUtdGh1bWJuYWlsXCIgc3R5bGU9XCJib3JkZXItcmFkaXVzOiA0cHhcIiBbc3JjXT1cImZpbGU/LnJlc3VsdFwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gIFxyXG4gICAgICAgICAgICA8cD57e2ZpbGU/Lm5hbWV9fTwvcD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZngtY29tcG9uZW50PiJdfQ==
307
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkZXItY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZngtYnVpbGRlci13cmFwcGVyL3NyYy9saWIvY29tcG9uZW50cy91cGxvYWRlci1jaGVja2JveC91cGxvYWRlci1jaGVja2JveC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9meC1idWlsZGVyLXdyYXBwZXIvc3JjL2xpYi9jb21wb25lbnRzL3VwbG9hZGVyLWNoZWNrYm94L3VwbG9hZGVyLWNoZWNrYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFxQixTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0UsT0FBTyxFQUFFLGVBQWUsRUFBYSxlQUFlLEVBQUUsZUFBZSxFQUFnQixrQkFBa0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVsSixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBYyxHQUFHLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxFQUFFLElBQUksTUFBTSxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7OztBQVNuQyxNQUFNLE9BQU8seUJBQTBCLFNBQVEsZUFBZTtJQVl2QztJQUErQjtJQVhuRCx1REFBdUQ7SUFDaEQsaUJBQWlCLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztJQUN0QyxhQUFhLEdBQWUsRUFBRSxDQUFDO0lBQy9CLGFBQWEsR0FBUTtRQUMxQixhQUFh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LENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdkMsQ0FBQzt3R0E3VVMseUJBQXlCOzRGQUF6Qix5QkFBeUIsb0dDaEJ0Qywwdk1BaUVpQixpZ0JEckRMLFlBQVksZ1FBQUUsV0FBVyw0RUFBRSxXQUFXLCtnQkFBRSxtQkFBbUI7OzRGQUkxRCx5QkFBeUI7a0JBUHJDLFNBQVM7K0JBQ0UsbUJBQW1CLGNBQ2pCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgaW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBGeEJhc2VDb21wb25lbnQsIEZ4U2V0dGluZywgRnhTdHJpbmdTZXR0aW5nLCBGeFNlbGVjdFNldHRpbmcsIEZ4VmFsaWRhdGlvbiwgRnhWYWxpZGF0b3JTZXJ2aWNlLCBGeENvbXBvbmVudCB9IGZyb20gJ0BpbnN0YW50c3lzLWxhYnMvZngnO1xyXG5pbXBvcnQgeyBGeEJ1aWxkZXJXcmFwcGVyU2VydmljZSB9IGZyb20gJy4uLy4uL2Z4LWJ1aWxkZXItd3JhcHBlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsLCBPYnNlcnZhYmxlLCBtYXAsIGZvcmtKb2luIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHY0IGFzIHV1aWR2NH0gZnJvbSAndXVpZCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3VwbG9hZGVyLWNoZWNrYm94JyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZ4Q29tcG9uZW50LCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3VwbG9hZGVyLWNoZWNrYm94LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vdXBsb2FkZXItY2hlY2tib3guY29tcG9uZW50LmNzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFVwbG9hZGVyQ2hlY2tib3hDb21wb25lbnQgZXh0ZW5kcyBGeEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXR7XHJcbiAgIC8vIHB1YmxpYyB1cGxvYWRGaWxlQ29udHJvbCA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woKTtcclxuICAgcHVibGljIHVwbG9hZEZpbGVDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XHJcbiAgIHB1YmxpYyB1cGxvYWRlZEZpbGVzOiBBcnJheTxhbnk+ID0gW107XHJcbiAgIHB1YmxpYyBmb3JtYXR0ZWREYXRhOiBhbnkgPSB7XHJcbiAgICAgdXBsb2FkZWRGaWxlczogW10sXHJcbiAgICAgZGVsZXRlZEZpbGVzOiBbXSxcclxuICAgICBjaGVja2JveEVuYWJsZWQ6IGZhbHNlXHJcbiAgIH07XHJcbiAgIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDxCb29sZWFuPigpO1xyXG4gICBwcml2YXRlIGh0dHAgPSBpbmplY3QoSHR0cENsaWVudCk7XHJcbiAgIHB1YmxpYyBjaGVja2JveEVuYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLHByaXZhdGUgZnhCdWlsZGVyV3JhcHBlclNlcnZpY2U6IEZ4QnVpbGRlcldyYXBwZXJTZXJ2aWNlKSB7XHJcbiAgICAgc3VwZXIoY2RyKVxyXG4gICAgIHRoaXMub25Jbml0LnN1YnNjcmliZSgoZnhEYXRhKT0+e1xyXG4gICAgICAgdGhpcy5fcmVnaXN0ZXIodGhpcy51cGxvYWRGaWxlQ29udHJvbCk7XHJcbiAgICAgfSlcclxuICAgfVxyXG4gXHJcbiBcclxuIFxyXG4gXHJcbiBcclxuICAgdXBsb2FkZWRJbWFnZXM6IHsgW2tleTogc3RyaW5nXTogeyByZXN1bHQ6IHN0cmluZywgZmlsZTogRmlsZSB8IG51bGwgfVtdIH0gPSB7fTtcclxuICAgZGVsZXRlZEZpbGVzOiBhbnlbXSA9IFtdO1xyXG4gICAvLyBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgIC8vICAgdGhpcy5meEJ1aWxkZXJXcmFwcGVyU2VydmljZS52YXJpYWJsZXMkXHJcbiAgIC8vICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgIC8vICAgICAuc3Vic2NyaWJlKCh2YXJpYWJsZXM6IGFueSkgPT4ge1xyXG4gICAvLyAgICAgICBpZiAoIXZhcmlhYmxlcykgcmV0dXJuO1xyXG4gICBcclxuICAgLy8gICAgICAgY29uc3QgdXBsb2FkZWRGaWxlczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB9ID0ge307XHJcbiAgIFxyXG4gICAvLyAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh2YXJpYWJsZXMpKSB7XHJcbiAgIC8vICAgICAgICAgaWYgKGtleS5pbmNsdWRlcygndXBsb2FkZXInKSAmJiBBcnJheS5pc0FycmF5KHZhbHVlKSkge1xyXG4gICAvLyAgICAgICAgICAgdXBsb2FkZWRGaWxlc1trZXldID0gdmFsdWU7XHJcbiAgIC8vICAgICAgICAgfVxyXG4gICAvLyAgICAgICB9XHJcbiAgIFxyXG4gICAvLyAgICAgICBmb3IgKGNvbnN0IFt1cGxvYWRlcktleSwgdXJsc10gb2YgT2JqZWN0LmVudHJpZXModXBsb2FkZWRGaWxlcykpIHtcclxuICAgLy8gICAgICAgICBjb25zdCBpbWFnZUZldGNoZXM6IE9ic2VydmFibGU8c3RyaW5nPltdID0gW107XHJcbiAgIFxyXG4gICAvLyAgICAgICAgIHVybHMuZm9yRWFjaCgodXJsOiBzdHJpbmcpID0+IHtcclxuICAgLy8gICAgICAgICAgIGlmICh1cmwpIHtcclxuICAgLy8gICAgICAgICAgICAgY29uc3QgaW1hZ2UkID0gdGhpcy5odHRwLmdldCh1cmwsIHsgcmVzcG9uc2VUeXBlOiAnYmxvYicgfSkucGlwZShcclxuICAgLy8gICAgICAgICAgICAgICBtYXAoKGJsb2I6IEJsb2IpID0+IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYikpXHJcbiAgIC8vICAgICAgICAgICAgICk7XHJcbiAgIC8vICAgICAgICAgICAgIGltYWdlRmV0Y2hlcy5wdXNoKGltYWdlJCk7XHJcbiAgIC8vICAgICAgICAgICB9XHJcbiAgIC8vICAgICAgICAgfSk7XHJcbiAgIFxyXG4gICAvLyAgICAgICAgIGlmIChpbWFnZUZldGNoZXMubGVuZ3RoKSB7XHJcbiAgIC8vICAgICAgICAgICBmb3JrSm9pbihpbWFnZUZldGNoZXMpLnN1YnNjcmliZSh7XHJcbiAgIC8vICAgICAgICAgICAgIG5leHQ6IChpbWFnZVVybHM6IHN0cmluZ1tdKSA9PiB7XHJcbiAgIC8vICAgICAgICAgICAgICAgdGhpcy51cGxvYWRlZEltYWdlc1t1cGxvYWRlcktleV0gPSBpbWFnZVVybHMubWFwKHJlc3VsdCA9PiAoe1xyXG4gICAvLyAgICAgICAgICAgICAgICAgcmVzdWx0LFxyXG4gICAvLyAgICAgICAgICAgICAgICAgZmlsZTogbnVsbFxyXG4gICAvLyAgICAgICAgICAgICAgIH0pKTtcclxuICAgLy8gICAgICAgICAgICAgICAvLyB0aGlzLnVwbG9hZGVkRmlsZXMgPSBbLi4udGhpcy51cGxvYWRlZEltYWdlc11cclxuICAgLy8gICAgICAgICAgICAgICB0aGlzLnVwbG9hZGVkRmlsZXMgPSBPYmplY3QudmFsdWVzKHRoaXMudXBsb2FkZWRJbWFnZXMpLmZsYXQoKTtcclxuICAgLy8gICAgICAgICAgICAgfSxcclxuICAgLy8gICAgICAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgLy8gICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gZmV0Y2ggaW1hZ2VzIGZvciAke3VwbG9hZGVyS2V5fTpgLCBlcnIpO1xyXG4gICAvLyAgICAgICAgICAgICB9XHJcbiAgIC8vICAgICAgICAgICB9KTtcclxuICAgLy8gICAgICAgICB9XHJcbiAgIC8vICAgICAgIH1cclxuICAgLy8gICAgIH0pO1xyXG4gICAvLyB9XHJcbiAgIFxyXG4gICAvLyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgLy8gICB0aGlzLmZ4QnVpbGRlcldyYXBwZXJTZXJ2aWNlLnZhcmlhYmxlcyRcclxuICAgLy8gICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgLy8gICAgIC5zdWJzY3JpYmUoKHZhcmlhYmxlczogYW55KSA9PiB7XHJcbiAgIC8vICAgICAgIGlmICghdmFyaWFibGVzKSByZXR1cm47XHJcbiBcclxuICAgLy8gICAgICAgY29uc3QgdXBsb2FkZWRGaWxlczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB9ID0ge307XHJcbiBcclxuICAgLy8gICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModmFyaWFibGVzKSkge1xyXG4gICAvLyAgICAgICAgIGlmIChrZXkuaW5jbHVkZXMoJ3VwbG9hZGVyJykgJiYgQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcclxuICAgLy8gICAgICAgICAgIHVwbG9hZGVkRmlsZXNba2V5XSA9IHZhbHVlO1xyXG4gICAvLyAgICAgICAgIH1cclxuICAgLy8gICAgICAgfVxyXG4gXHJcbiAgIC8vICAgICAgIGZvciAoY29uc3QgW3VwbG9hZGVyS2V5LCB1cmxzXSBvZiBPYmplY3QuZW50cmllcyh1cGxvYWRlZEZpbGVzKSkge1xyXG4gICAvLyAgICAgICAgIGNvbnN0IGltYWdlRmV0Y2hlczogT2JzZXJ2YWJsZTx7IHJlc3VsdDogc3RyaW5nLCBvcmlnaW5hbFVybDogc3RyaW5nIH0+W10gPSBbXTtcclxuIFxyXG4gICAvLyAgICAgICAgIHVybHMuZm9yRWFjaCgodXJsOiBzdHJpbmcpID0+IHtcclxuICAgLy8gICAgICAgICAgIGlmICh1cmwpIHtcclxuICAgLy8gICAgICAgICAgICAgY29uc3QgaW1hZ2UkID0gdGhpcy5odHRwLmdldCh1cmwsIHsgcmVzcG9uc2VUeXBlOiAnYmxvYicgfSkucGlwZShcclxuICAgLy8gICAgICAgICAgICAgICBtYXAoKGJsb2I6IEJsb2IpID0+ICh7XHJcbiAgIC8vICAgICAgICAgICAgICAgICByZXN1bHQ6IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYiksIC8vIGp1c3QgZm9yIHByZXZpZXdcclxuICAgLy8gICAgICAgICAgICAgICAgIG9yaWdpbmFsVXJsOiB1cmxcclxuICAgLy8gICAgICAgICAgICAgICB9KSlcclxuICAgLy8gICAgICAgICAgICAgKTtcclxuICAgLy8gICAgICAgICAgICAgaW1hZ2VGZXRjaGVzLnB1c2goaW1hZ2UkKTtcclxuICAgLy8gICAgICAgICAgIH1cclxuICAgLy8gICAgICAgICB9KTtcclxuIFxyXG4gICAvLyAgICAgICAgIGlmIChpbWFnZUZldGNoZXMubGVuZ3RoKSB7XHJcbiAgIC8vICAgICAgICAgICBmb3JrSm9pbihpbWFnZUZldGNoZXMpLnN1YnNjcmliZSh7XHJcbiAgIC8vICAgICAgICAgICAgIG5leHQ6IChpbWFnZURhdGEpID0+IHtcclxuICAgLy8gICAgICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWQgPSBpbWFnZURhdGEubWFwKGl0ZW0gPT4gKHtcclxuICAgLy8gICAgICAgICAgICAgICAgIGlkOiB1dWlkdjQoKSxcclxuICAgLy8gICAgICAgICAgICAgICAgIGZpbGU6IG51bGwsXHJcbiAgIC8vICAgICAgICAgICAgICAgICBvcmlnaW5hbFVybDogaXRlbS5vcmlnaW5hbFVybCxcclxuICAgLy8gICAgICAgICAgICAgICAgIHJlc3VsdDogaXRlbS5yZXN1bHRcclxuICAgLy8gICAgICAgICAgICAgICB9KSk7XHJcbiBcclxuICAgLy8gICAgICAgICAgICAgICB0aGlzLnVwbG9hZGVkRmlsZXMgPSBbLi4udGhpcy51cGxvYWRlZEZpbGVzLCAuLi5mb3JtYXR0ZWRdO1xyXG4gICAvLyAgICAgICAgICAgICAgIHRoaXMudXBsb2FkRmlsZUNvbnRyb2wuc2V0VmFsdWUodGhpcy51cGxvYWRlZEZpbGVzKTtcclxuICAgLy8gICAgICAgICAgICAgfSxcclxuICAgLy8gICAgICAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgLy8gICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gZmV0Y2ggaW1hZ2VzIGZvciAke3VwbG9hZGVyS2V5fTpgLCBlcnIpO1xyXG4gICAvLyAgICAgICAgICAgICB9XHJcbiAgIC8vICAgICAgICAgICB9KTtcclxuICAgLy8gICAgICAgICB9XHJcbiAgIC8vICAgICAgIH1cclxuICAgLy8gICAgIH0pO1xyXG4gICAvLyB9XHJcbiBcclxuICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgdGhpcy5meEJ1aWxkZXJXcmFwcGVyU2VydmljZS52YXJpYWJsZXMkXHJcbiAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgICAuc3Vic2NyaWJlKCh2YXJpYWJsZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICBpZiAoIXZhcmlhYmxlcykgcmV0dXJuO1xyXG4gICBcclxuICAgICAgICAgY29uc3QgdXBsb2FkZWRGaWxlc01hcDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB9ID0ge307XHJcbiAgIFxyXG4gICAgICAgICAvLyBFeHRyYWN0IHVwbG9hZGVyIGtleXMgYW5kIHRoZWlyIGNvcnJlc3BvbmRpbmcgVVJMIGFycmF5c1xyXG4gICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh2YXJpYWJsZXMpKSB7XHJcbiAgICAgICAgICAgaWYgKGtleS5pbmNsdWRlcygndXBsb2FkZXItY2hlY2tib3gnKSAmJiBBcnJheS5pc0FycmF5KHZhbHVlKSkge1xyXG4gICAgICAgICAgICAgdXBsb2FkZWRGaWxlc01hcFtrZXldID0gdmFsdWU7XHJcbiAgICAgICAgICAgfVxyXG4gICAgICAgICB9XHJcbiAgIFxyXG4gICAgICAgICBmb3IgKGNvbnN0IFt1cGxvYWRlcktleSwgdXJsc10gb2YgT2JqZWN0LmVudHJpZXModXBsb2FkZWRGaWxlc01hcCkpIHtcclxuICAgICAgICAgICBjb25zdCBpbWFnZUZldGNoZXM6IE9ic2VydmFibGU8eyByZXN1bHQ6IHN0cmluZzsgb3JpZ2luYWxVcmw6IGFueSB9PltdID0gW107XHJcbiAgIFxyXG4gICAgICAgICAgIHVybHMuZm9yRWFjaCgob3JpZ2luYWxVcmw6YW55KSA9PiB7XHJcbiAgICAgICAgICAgICBpZiAob3JpZ2luYWxVcmwpIHtcclxuICAgICAgICAgICAgICAgY29uc3QgaW1hZ2UkID0gdGhpcy5odHRwLmdldChvcmlnaW5hbFVybD8ub3JpZ2luYWxVcmwsIHsgcmVzcG9uc2VUeXBlOiAnYmxvYicgfSkucGlwZShcclxuICAgICAgICAgICAgICAgICBtYXAoKGJsb2I6IEJsb2IpID0+ICh7XHJcbiAgICAgICAgICAgICAgICAgICByZXN1bHQ6IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYiksIC8vIGZvciBwcmV2aWV3XHJcbiAgICAgICAgICAgICAgICAgICBvcmlnaW5hbFVybDogb3JpZ2luYWxVcmw/Lm9yaWdpbmFsVXJsICAgICAgICAgIC8vIHByZXNlcnZlIG9yaWdpbmFsXHJcbiAgICAgICAgICAgICAgICAgfSkpXHJcbiAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgIGltYWdlRmV0Y2hlcy5wdXNoKGltYWdlJCk7XHJcbiAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgfSk7XHJcbiAgIFxyXG4gICAgICAgICAgIGlmIChpbWFnZUZldGNoZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgZm9ya0pvaW4oaW1hZ2VGZXRjaGVzKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICAgICBuZXh0OiAoaW1hZ2VEYXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkID0gaW1hZ2VEYXRhLm1hcChpdGVtID0+ICh7XHJcbiAgICAgICAgICAgICAgICAgICBpZDogdXVpZHY0KCksXHJcbiAgICAgICAgICAgICAgICAgICBmaWxlOiBudWxsLFxyXG4gICAgICAgICAgICAgICAgICAgb3JpZ2luYWxVcmw6IGl0ZW0ub3JpZ2luYWxVcmwsXHJcbiAgICAgICAgICAgICAgICAgICByZXN1bHQ6IGl0ZW0ucmVzdWx0XHJcbiAgICAgICAgICAgICAgICAgfSkpO1xyXG4gICBcclxuICAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZGVkRmlsZXMgPSBbLi4udGhpcy51cGxvYWRlZEZpbGVzLCAuLi5mb3JtYXR0ZWRdO1xyXG4gICAgICAgICAgICAgICAgIHRoaXMuZm9ybWF0dGVkRGF0YS51cGxvYWRlZEZpbGVzID0gdGhpcy51cGxvYWRlZEZpbGVzO1xyXG4gICAgICAgICAgICAgICAgIHRoaXMudXBsb2FkRmlsZUNvbnRyb2wuc2V0VmFsdWUodGhpcy5mb3JtYXR0ZWREYXRhKTtcclxuICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gZmV0Y2ggaW1hZ2VzIGZvciAke3VwbG9hZGVyS2V5fTpgLCBlcnIpO1xyXG4gICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICB9XHJcbiAgICAgICAgIH1cclxuICAgICAgIH0pO1xyXG4gICB9XHJcbiAgIFxyXG4gICAvLyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgLy8gICB0aGlzLmZ4QnVpbGRlcldyYXBwZXJTZXJ2aWNlLnZhcmlhYmxlcyRcclxuICAgLy8gICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgLy8gICAgIC5zdWJzY3JpYmUoKHZhcmlhYmxlczogYW55KSA9PiB7XHJcbiAgIC8vICAgICAgIGlmICghdmFyaWFibGVzKSByZXR1cm47XHJcbiAgIFxyXG4gICAvLyAgICAgICBjb25zdCB1cGxvYWRlZEZpbGVzTWFwOiB7IFtrZXk6IHN0cmluZ106IHsgb3JpZ2luYWxVcmw6IHN0cmluZyB9W10gfSA9IHZhcmlhYmxlcy51cGxvYWRlZEZpbGVzO1xyXG4gICBcclxuICAgLy8gICAgICAgZm9yIChjb25zdCBbdXBsb2FkZXJLZXksIHVybHNdIG9mIE9iamVjdC5lbnRyaWVzKHVwbG9hZGVkRmlsZXNNYXApKSB7XHJcbiAgIC8vICAgICAgICAgY29uc3QgaW1hZ2VGZXRjaGVzOiBPYnNlcnZhYmxlPHsgcmVzdWx0OiBzdHJpbmc7IG9yaWdpbmFsVXJsOiBzdHJpbmcgfT5bXSA9IFtdO1xyXG4gICBcclxuICAgLy8gICAgICAgICB1cmxzLmZvckVhY2goKGZpbGVPYmo6IGFueSkgPT4ge1xyXG4gICAvLyAgICAgICAgICAgY29uc3Qgb3JpZ2luYWxVcmwgPSBmaWxlT2JqPy5vcmlnaW5hbFVybDtcclxuICAgLy8gICAgICAgICAgIGlmIChvcmlnaW5hbFVybCkge1xyXG4gICAvLyAgICAgICAgICAgICBjb25zdCBpbWFnZSQgPSB0aGlzLmh0dHAuZ2V0KG9yaWdpbmFsVXJsLCB7IHJlc3BvbnNlVHlwZTogJ2Jsb2InIH0pLnBpcGUoXHJcbiAgIC8vICAgICAgICAgICAgICAgbWFwKChibG9iOiBCbG9iKSA9PiAoe1xyXG4gICAvLyAgICAgICAgICAgICAgICAgcmVzdWx0OiBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpLCAvLyBmb3IgcHJldmlld1xyXG4gICAvLyAgICAgICAgICAgICAgICAgb3JpZ2luYWxVcmxcclxuICAgLy8gICAgICAgICAgICAgICB9KSlcclxuICAgLy8gICAgICAgICAgICAgKTtcclxuICAgLy8gICAgICAgICAgICAgaW1hZ2VGZXRjaGVzLnB1c2goaW1hZ2UkKTtcclxuICAgLy8gICAgICAgICAgIH1cclxuICAgLy8gICAgICAgICB9KTtcclxuICAgXHJcbiAgIC8vICAgICAgICAgaWYgKGltYWdlRmV0Y2hlcy5sZW5ndGggPiAwKSB7XHJcbiAgIC8vICAgICAgICAgICBmb3JrSm9pbihpbWFnZUZldGNoZXMpLnN1YnNjcmliZSh7XHJcbiAgIC8vICAgICAgICAgICAgIG5leHQ6IChpbWFnZURhdGEpID0+IHtcclxuICAgLy8gICAgICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWQgPSBpbWFnZURhdGEubWFwKGl0ZW0gPT4gKHtcclxuICAgLy8gICAgICAgICAgICAgICAgIGlkOiB1dWlkdjQoKSxcclxuICAgLy8gICAgICAgICAgICAgICAgIGZpbGU6IG51bGwsXHJcbiAgIC8vICAgICAgICAgICAgICAgICBvcmlnaW5hbFVybDogaXRlbS5vcmlnaW5hbFVybCxcclxuICAgLy8gICAgICAgICAgICAgICAgIHJlc3VsdDogaXRlbS5yZXN1bHRcclxuICAgLy8gICAgICAgICAgICAgICB9KSk7XHJcbiAgIFxyXG4gICAvLyAgICAgICAgICAgICAgIHRoaXMudXBsb2FkZWRGaWxlcyA9IFsuLi50aGlzLnVwbG9hZGVkRmlsZXMsIC4uLmZvcm1hdHRlZF07XHJcbiAgIC8vICAgICAgICAgICAgICAgdGhpcy5mb3JtYXR0ZWREYXRhLnVwbG9hZGVkRmlsZXMgPSB0aGlzLnVwbG9hZGVkRmlsZXM7XHJcbiAgIC8vICAgICAgICAgICAgICAgdGhpcy51cGxvYWRGaWxlQ29udHJvbC5zZXRWYWx1ZSh0aGlzLmZvcm1hdHRlZERhdGEpO1xyXG4gICAvLyAgICAgICAgICAgICB9LFxyXG4gICAvLyAgICAgICAgICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAvLyAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBmZXRjaCBpbWFnZXMgZm9yICR7dXBsb2FkZXJLZXl9OmAsIGVycik7XHJcbiAgIC8vICAgICAgICAgICAgIH1cclxuICAgLy8gICAgICAgICAgIH0pO1xyXG4gICAvLyAgICAgICAgIH1cclxuICAgLy8gICAgICAgfVxyXG4gICAvLyAgICAgfSk7XHJcbiAgIC8vIH1cclxuICAgXHJcbiBcclxuICAgLy8gcHVibGljIG9uRmlsZVNlbGVjdGVkKGV2ZW50OiBFdmVudCkge1xyXG4gICAvLyAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgIC8vICAgaWYgKGlucHV0LmZpbGVzKSB7XHJcbiAgIC8vICAgICBmb3IobGV0IGkgPSAwOyBpIDwgaW5wdXQ/LmZpbGVzPy5sZW5ndGg7IGkrKykge1xyXG4gICAvLyAgICAgICBjb25zdCBmaWxlID0gaW5wdXQuZmlsZXNbaV07XHJcbiAgIC8vICAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgIC8vICAgICAgIHJlYWRlci5vbmxvYWQgPSBlID0+IHtcclxuICAgLy8gICAgICAgICB0aGlzLnVwbG9hZGVkRmlsZXMucHVzaCh7XHJcbiAgIC8vICAgICAgICAgICBmaWxlOiBmaWxlLFxyXG4gICAvLyAgICAgICAgICAgcmVzdWx0OiBlLnRhcmdldD8ucmVzdWx0LFxyXG4gICAvLyAgICAgICAgICAgbmFtZTogZmlsZT8ubmFtZSxcclxuICAgLy8gICAgICAgICAgIGlkOiB1dWlkdjQoKVxyXG4gICAvLyAgICAgICAgIH0pXHJcbiAgIC8vICAgICAgICAgdGhpcy51cGxvYWRGaWxlQ29udHJvbC5zZXRWYWx1ZSh0aGlzLnVwbG9hZGVkRmlsZXMpO1xyXG4gICAvLyAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMudXBsb2FkRmlsZUNvbnRyb2wpO1xyXG4gICAvLyAgICAgICB9XHJcbiAgIC8vICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xyXG4gICAvLyAgICAgfVxyXG4gICAvLyAgIH1cclxuICAgLy8gfVxyXG4gXHJcbiAgIG9uRmlsZVNlbGVjdGVkKGV2ZW50OiBFdmVudCkge1xyXG4gICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgICAgaWYgKGlucHV0LmZpbGVzKSB7XHJcbiAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0LmZpbGVzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgIGNvbnN0IGZpbGUgPSBpbnB1dC5maWxlc1tpXTtcclxuICAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuIFxyXG4gICAgICAgICByZWFkZXIub25sb2FkID0gZSA9PiB7XHJcbiAgICAgICAgICAgY29uc3QgbmV3RmlsZSA9IHtcclxuICAgICAgICAgICAgIGlkOiB1dWlkdjQoKSxcclxuICAgICAgICAgICAgIGZpbGU6IGZpbGUsXHJcbiAgICAgICAgICAgICBvcmlnaW5hbFVybDogbnVsbCxcclxuICAgICAgICAgICAgIHJlc3VsdDogZS50YXJnZXQ/LnJlc3VsdCxcclxuICAgICAgICAgICAgIG5hbWU6IGZpbGUubmFtZVxyXG4gICAgICAgICAgIH07XHJcbiBcclxuICAgICAgICAgICB0aGlzLnVwbG9hZGVkRmlsZXMucHVzaChuZXdGaWxlKTtcclxuICAgICAgICAgICB0aGlzLmZvcm1hdHRlZERhdGEudXBsb2FkZWRGaWxlcyA9IHRoaXMudXBsb2FkZWRGaWxlcztcclxuICAgICAgICAgICB0aGlzLnVwbG9hZEZpbGVDb250cm9sLnNldFZhbHVlKHRoaXMuZm9ybWF0dGVkRGF0YSk7XHJcbiAgICAgICAgIH07XHJcbiBcclxuICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XHJcbiAgICAgICB9XHJcbiAgICAgfVxyXG4gICB9XHJcbiBcclxuIFxyXG4gICAvLyBwdWJsaWMgZGVsZXRlRmlsZShpZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgIC8vICAgdGhpcy51cGxvYWRlZEZpbGVzID0gdGhpcy51cGxvYWRlZEZpbGVzLmZpbHRlcihmaWxlID0+IGZpbGU/LmlkICE9PSBpZCk7XHJcbiAgIC8vIH1cclxuIFxyXG4gICAvLyBkZWxldGVGaWxlKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgLy8gICBjb25zdCBbZGVsZXRlZEZpbGVdID0gdGhpcy51cGxvYWRlZEZpbGVzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgIFxyXG4gICAvLyAgIGlmIChkZWxldGVkRmlsZSkge1xyXG4gICAvLyAgICAgdGhpcy5kZWxldGVkRmlsZXMucHVzaChkZWxldGVkRmlsZSk7XHJcbiAgIC8vICAgICB0aGlzLmZvcm1hdHRlZERhdGEgPSB7XHJcbiAgIC8vICAgICAgIC4uLnRoaXMuZm9ybWF0dGVkRGF0YSxcclxuICAgLy8gICAgICAgdXBsb2FkZWRGaWxlczogWy4uLnRoaXMudXBsb2FkZWRGaWxlc10sXHJcbiAgIC8vICAgICAgIGRlbGV0ZWRGaWxlczogWy4uLnRoaXMuZGVsZXRlZEZpbGVzXVxyXG4gICAvLyAgICAgfTtcclxuICAgLy8gICAgIHRoaXMudXBsb2FkRmlsZUNvbnRyb2wuc2V0VmFsdWUodGhpcy5mb3JtYXR0ZWREYXRhKTtcclxuICAgLy8gICB9XHJcbiAgIC8vIH1cclxuIFxyXG4gICBkZWxldGVGaWxlKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgICBjb25zdCBkZWxldGVkRmlsZSA9IHRoaXMudXBsb2FkZWRGaWxlcz8uW2luZGV4XTtcclxuICAgICBpZiAoIWRlbGV0ZWRGaWxlKSByZXR1cm47XHJcbiAgIFxyXG4gICAgIC8vIEVuc3VyZSBmb3JtYXR0ZWREYXRhIGV4aXN0cyBhbmQgaW5pdGlhbGl6ZSBpZiB1bmRlZmluZWRcclxuICAgICB0aGlzLmZvcm1hdHRlZERhdGEgPSB0aGlzLmZvcm1hdHRlZERhdGEgfHwgeyB1cGxvYWRlZEZpbGVzOiBbXSwgZGVsZXRlZEZpbGVzOiBbXSB9O1xyXG4gICBcclxuICAgICAvLyBBZGQgdGhlIGRlbGV0ZWQgZmlsZSB0byB0aGUgZGVsZXRlZEZpbGVzIGFycmF5XHJcbiAgICAgdGhpcy5kZWxldGVkRmlsZXMgPSBbLi4udGhpcy5kZWxldGVkRmlsZXMsIGRlbGV0ZWRGaWxlXTtcclxuICAgXHJcbiAgICAgLy8gUmVtb3ZlIHRoZSBmaWxlIGZyb20gdXBsb2FkZWRGaWxlcyB1c2luZyBmaWx0ZXIgZm9yIGltbXV0YWJpbGl0eVxyXG4gICAgIHRoaXMudXBsb2FkZWRGaWxlcyA9IHRoaXMudXBsb2FkZWRGaWxlcy5maWx0ZXIoKF8sIGkpID0+IGkgIT09IGluZGV4KTtcclxuICAgXHJcbiAgICAgLy8gVXBkYXRlIGZvcm1hdHRlZERhdGFcclxuICAgICB0aGlzLmZvcm1hdHRlZERhdGEgPSB7XHJcbiAgICAgICAuLi50aGlzLmZvcm1hdHRlZERhdGEsXHJcbiAgICAgICB1cGxvYWRlZEZpbGVzOiB0aGlzLnVwbG9hZGVkRmlsZXMsXHJcbiAgICAgICBkZWxldGVkRmlsZXM6IHRoaXMuZGVsZXRlZEZpbGVzXHJcbiAgICAgfTtcclxuICAgXHJcbiAgICAgLy8gU2V0IHRoZSB2YWx1ZSBvZiB0aGUgdXBsb2FkRmlsZUNvbnRyb2xcclxuICAgICB0aGlzLnVwbG9hZEZpbGVDb250cm9sLnNldFZhbHVlKHRoaXMuZm9ybWF0dGVkRGF0YSk7XHJcbiAgIH1cclxuICAgXHJcbiAgIG9uQ2hlY2tib3hDaGFuZ2UoKXtcclxuICAgIHRoaXMuZm9ybWF0dGVkRGF0YSA9IHtcclxuICAgICAgLi4udGhpcy5mb3JtYXR0ZWREYXRhLFxyXG4gICAgICB1cGxvYWRlZEZpbGVzOiB0aGlzLnVwbG9hZGVkRmlsZXMsXHJcbiAgICAgIGRlbGV0ZWRGaWxlczogdGhpcy5kZWxldGVkRmlsZXMsXHJcbiAgICAgIGNoZWNrYm94RW5hYmxlZDp0aGlzLmNoZWNrYm94RW5hYmxlZFxyXG4gICAgfTtcclxuICAgIHRoaXMudXBsb2FkRmlsZUNvbnRyb2wuc2V0VmFsdWUodGhpcy5mb3JtYXR0ZWREYXRhKTtcclxuICAgfVxyXG4gICBcclxuIFxyXG4gICBwcm90ZWN0ZWQgc2V0dGluZ3MoKTogRnhTZXR0aW5nW10ge1xyXG4gICAgIHJldHVybiBbXHJcbiAgICAgICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAndXBsb2FkLXRleHQnLCAkdGl0bGU6ICdVcGxvYWQgVGV4dCcsIHZhbHVlOiAnVXBsb2FkIEZpbGUnfSksXHJcbiAgICAgICBuZXcgRnhTdHJpbmdTZXR0aW5nKHsga2V5OiAnY2hlY2tib3gtbGFiZWwnLCAkdGl0bGU6ICdDaGVja2JveCBMYWJlbCcsIHZhbHVlOiAnJ30pLFxyXG4gICAgICAgbmV3IEZ4U2VsZWN0U2V0dGluZyh7a2V5OiAnbXVsdGlwbGUtdXBsb2FkJywgJHRpdGxlOiAnTXVsdGlwbGUgVXBsb2FkJywgdmFsdWU6IGZhbHNlfSwgW3tvcHRpb246ICdFbmFibGUnLCB2YWx1ZTogdHJ1ZX0sIHtvcHRpb246ICdEaXNhYmxlJywgdmFsdWU6IGZhbHNlfV0pXHJcbiAgICAgXTtcclxuICAgfVxyXG4gXHJcbiAgIHByb3RlY3RlZCB2YWxpZGF0aW9ucygpOiBGeFZhbGlkYXRpb25bXSB7XHJcbiAgICAgcmV0dXJuIFtGeFZhbGlkYXRvclNlcnZpY2UucmVxdWlyZWRdO1xyXG4gICB9XHJcblxyXG59XHJcbiIsIjxmeC1jb21wb25lbnQgW2Z4RGF0YV09XCJmeERhdGFcIj5cclxuICAgIDxsYWJlbCBjbGFzcz1cImlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBnYXAtMlwiPlxyXG4gICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgIFsobmdNb2RlbCldID0gXCJjaGVja2JveEVuYWJsZWRcIlxyXG4gICAgICAgICAgKGNoYW5nZSk9XCJvbkNoZWNrYm94Q2hhbmdlKClcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgICAge3sgc2V0dGluZygnY2hlY2tib3gtbGFiZWwnKSB9fVxyXG4gICAgICA8L2xhYmVsPlxyXG4gICAgPGRpdiBjbGFzcz1cImN1c3RvbS11cGxvYWQgZmxleCBmbGV4LXJvdyBpdGVtcy1jZW50ZXIgZ2FwLTIgcC0yIHBiLTAgcm91bmRlZC1zbVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXJcIiAoY2xpY2spPVwiZmlsZUlucHV0LmNsaWNrKClcIj5cclxuICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyOVwiIGhlaWdodD1cIjI4XCIgdmlld0JveD1cIjAgMCAyOSAyOFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCJcclxuICAgICAgICAgICAgICBkPVwiTTE0LjAwMSAzLjAwMTk1QzExLjUzMjIgMy4wMDE5NSA5LjE2NzIyIDMuODY5NTYgNy4yMzY0MSA1LjM4NDE0TDcuMjM1OTggNC41OTY5NUM3LjIzNTk4IDQuNTI0NzMgNy4yMjE3NSA0LjQ1MzIxIDcuMTk0MTEgNC4zODY0OEM3LjE2NjQ3IDQuMzE5NzUgNy4xMjU5NiA0LjI1OTEyIDcuMDc0ODkgNC4yMDgwNEM3LjAyMzgxIDQuMTU2OTcgNi45NjMxOCA0LjExNjQ2IDYuODk2NDUgNC4wODg4MkM2LjgyOTcyIDQuMDYxMTggNi43NTgyIDQuMDQ2OTUgNi42ODU5OCA0LjA0Njk1QzYuNjEzNzUgNC4wNDY5NSA2LjU0MjIzIDQuMDYxMTggNi40NzU1IDQuMDg4ODJDNi40MDg3NyA0LjExNjQ2IDYuMzQ4MTQgNC4xNTY5NyA2LjI5NzA3IDQuMjA4MDRDNi4yNDU5OSA0LjI1OTEyIDYuMjA1NDggNC4zMTk3NSA2LjE3Nzg0IDQuMzg2NDhDNi4xNTAyIDQuNDUzMjEgNi4xMzU5OCA0LjUyNDczIDYuMTM1OTggNC41OTY5NUw2LjEzNjQyIDYuNjg2NTJDNi4xMzY0MyA2LjgzMjM5IDYuMTk0MzggNi45NzIyOCA2LjI5NzUyIDcuMDc1NDJDNi40MDA2NyA3LjE3ODU2IDYuNTQwNTUgNy4yMzY1MSA2LjY4NjQyIDcuMjM2NTJIOC43NzU5OEM4Ljg0ODIgNy4yMzY1MiA4LjkxOTcyIDcuMjIyMyA4Ljk4NjQ1IDcuMTk0NjZDOS4wNTMxOCA3LjE2NzAyIDkuMTEzODEgNy4xMjY1MSA5LjE2NDg5IDcuMDc1NDNDOS4yMTU5NiA3LjAyNDM2IDkuMjU2NDcgNi45NjM3MyA5LjI4NDExIDYuODk3QzkuMzExNzUgNi44MzAyNyA5LjMyNTk4IDYuNzU4NzUgOS4zMjU5OCA2LjY4NjUyQzkuMzI1OTggNi42MTQzIDkuMzExNzUgNi41NDI3OCA5LjI4NDExIDYuNDc2MDVDOS4yNTY0NyA2LjQwOTMyIDkuMjE1OTYgNi4zNDg2OSA5LjE2NDg5IDYuMjk3NjFDOS4xMTM4MSA2LjI0NjU0IDkuMDUzMTggNi4yMDYwMyA4Ljk4NjQ1IDYuMTc4MzlDOC45MTk3MiA2LjE1MDc1IDguODQ4MiA2LjEzNjUyIDguNzc1OTggNi4xMzY1Mkg4LjA1ODRDOS43NzAyIDQuODQzODcgMTEuODM5OSA0LjEwMTk1IDE0LjAwMSA0LjEwMTk1QzE5LjQ3NTEgNC4xMDE5NSAyMy45MDEgOC41Mjc4MiAyMy45MDEgMTQuMDAyQzIzLjkwMSAxOS40NzYxIDE5LjQ3NTEgMjMuOTAyIDE0LjAwMSAyMy45MDJDOC41MjY4NCAyMy45MDIgNC4xMDA5OCAxOS40NzYxIDQuMTAwOTggMTQuMDAyQzQuMTAwOTggMTIuNjM4MSA0LjM4MjYzIDExLjI4ODggNC45Mjg1NSAxMC4wMzg5QzQuOTg2OTEgOS45MDUzMiA0Ljk4OTgyIDkuNzUzOTkgNC45MzY2NSA5LjYxODIyQzQuODgzNDcgOS40ODI0NiA0Ljc3ODU1IDkuMzczMzYgNC42NDQ5NiA5LjMxNDkyQzQuNTc4NzcgOS4yODU5NiA0LjUwNzUzIDkuMjcwMzIgNC40MzUzIDkuMjY4OUM0LjM2MzA2IDkuMjY3NDcgNC4yOTEyNiA5LjI4MDMgNC4yMjM5OCA5LjMwNjYzQzQuMTU2NzEgOS4zMzI5NyA0LjA5NTI4IDkuMzcyMyA0LjA0MzIxIDkuNDIyMzhDMy45OTExNCA5LjQ3MjQ3IDMuOTQ5NDQgOS41MzIzMiAzLjkyMDUxIDkuNTk4NTJDMy4zMTM5MyAxMC45ODcyIDMuMDAwOTggMTIuNDg2NiAzLjAwMDk4IDE0LjAwMkMzLjAwMDk4IDIwLjA3MDYgNy45MzIzNiAyNS4wMDIgMTQuMDAxIDI1LjAwMkMyMC4wNjk2IDI1LjAwMiAyNS4wMDEgMjAuMDcwNiAyNS4wMDEgMTQuMDAyQzI1LjAwMSA3LjkzMzM0IDIwLjA2OTYgMy4wMDE5NSAxNC4wMDEgMy4wMDE5NVpcIlxyXG4gICAgICAgICAgICAgIGZpbGw9XCIjRjNBMDQxXCIgLz5cclxuICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxyXG4gICAgICAgICAgICAgIGQ9XCJNMTMuOTk4OCA2LjEzOTY1QzkuNjYxNiA2LjEzOTY1IDYuMTMzNzkgOS42Njc0NiA2LjEzMzc5IDE0LjAwNDZDNi4xMzM3OSAxOC4zNDE4IDkuNjYxNiAyMS44Njk2IDEzLjk5ODggMjEuODY5NkMxOC4zMzYgMjEuODY5NiAyMS44NjM4IDE4LjM0MTggMjEuODYzOCAxNC4wMDQ2QzIxLjg2MzggOS42Njc0NiAxOC4zMzYgNi4xMzk2NSAxMy45OTg4IDYuMTM5NjVaTTEzLjk5ODggOC4yMjk2NUMxNC4xNDQ3IDguMjI5NjUgMTQuMjg0NiA4LjI4NzU5IDE0LjM4NzcgOC4zOTA3NEMxNC40OTA4IDguNDkzODggMTQuNTQ4OCA4LjYzMzc4IDE0LjU0ODggOC43Nzk2NVYxMy43NzY5TDE3LjUyMjcgMTYuNzUwOEMxNy42MjU4IDE2Ljg1MzkgMTcuNjgzNyAxNi45OTM4IDE3LjY4MzcgMTcuMTM5NkMxNy42ODM3IDE3LjI4NTUgMTcuNjI1OCAxNy40MjU0IDE3LjUyMjcgMTcuNTI4NUMxNy40MTk1IDE3LjYzMTYgMTcuMjc5NiAxNy42ODk2IDE3LjEzMzggMTcuNjg5NkMxNi45ODc5IDE3LjY4OTYgMTYuODQ4MSAxNy42MzE2IDE2Ljc0NDkgMTcuNTI4NUwxMy42MDk5IDE0LjM5MzVDMTMuNTA2OCAxNC4yOTA0IDEzLjQ0ODggMTQuMTUwNSAxMy40NDg4IDE0LjAwNDZWOC43Nzk2NUMxMy40NDg4IDguNjMzNzggMTMuNTA2NyA4LjQ5Mzg4IDEzLjYwOTkgOC4zOTA3NEMxMy43MTMgOC4yODc1OSAxMy44NTI5IDguMjI5NjUgMTMuOTk4OCA4LjIyOTY1WlwiXHJcbiAgICAgICAgICAgICAgZmlsbD1cIiNGM0EwNDFcIiAvPlxyXG4gICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjI4LjU2XCIgaGVpZ2h0PVwiMjhcIiByeD1cIjEuNTE0NzlcIiBmaWxsPVwiI0YzQTA0MVwiIC8+XHJcbiAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgZD1cIk0xNS4wNjggMjIuNzM5MVYxNy42NzA4SDE4LjQ5NjhMMTQuMjEwOCAxMi42MDI1TDkuOTI0OCAxNy42NzA4SDEzLjM1MzZWMjIuNzM5MUg5LjA2NzU5VjIyLjY5NjlDOC45MjM1OCAyMi43MDUzIDguNzg2NDMgMjIuNzM5MSA4LjYzODk5IDIyLjczOTFDNi45MzM5MSAyMi43MzkxIDUuMjk4NjYgMjIuMDcxNyA0LjA5Mjk4IDIwLjg4MzVDMi44ODczIDE5LjY5NTQgMi4yMDk5NiAxOC4wODQgMi4yMDk5NiAxNi40MDM3QzIuMjA5OTYgMTMuMTUzMiA0LjcwNDQzIDEwLjUwNDIgNy45MDUyMyAxMC4xNDFDOC4xODU4NSA4LjY5NTMgOC45Njg5MiA3LjM5MTE4IDEwLjExOTcgNi40NTI5MkMxMS4yNzA2IDUuNTE0NjUgMTIuNzE3MiA1LjAwMDg5IDE0LjIxMDggNUMxNS43MDQ3IDUuMDAwODIgMTcuMTUxNSA1LjUxNDUyIDE4LjMwMjYgNi40NTI3N0MxOS40NTM3IDcuMzkxMDEgMjAuMjM3MSA4LjY5NTE2IDIwLjUxODEgMTAuMTQxQzIzLjcxODkgMTAuNTA0MiAyNi4yMSAxMy4xNTMyIDI2LjIxIDE2LjQwMzdDMjYuMjEgMTguMDg0IDI1LjUzMjYgMTkuNjk1NCAyNC4zMjY5IDIwLjg4MzVDMjMuMTIxMyAyMi4wNzE3IDIxLjQ4NiAyMi43MzkxIDE5Ljc4MDkgMjIuNzM5MUMxOS42MzY5IDIyLjczOTEgMTkuNDk4MSAyMi43MDUzIDE5LjM1MjMgMjIuNjk2OVYyMi43MzkxSDE1LjA2OFpcIlxyXG4gICAgICAgICAgICAgIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8YSB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImZpbGVJbnB1dC5jbGljaygpXCIgY2xhc3M9XCJ0ZXh0LWJhc2UgY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgIHt7IHNldHRpbmcoJ3VwbG9hZC10ZXh0JykgfX1cclxuICAgICAgICA8L2E+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8aW5wdXQgI2ZpbGVJbnB1dCB0eXBlPVwiZmlsZVwiIFttdWx0aXBsZV09XCJzZXR0aW5nKCdtdWx0aXBsZS11cGxvYWQnKVwiIChjaGFuZ2UpPVwib25GaWxlU2VsZWN0ZWQoJGV2ZW50KVwiIGhpZGRlbiAvPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2VwYXJhdG9yXCI+PC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWxpc3QgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTQgZmxleC13cmFwXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInVwbG9hZGVkRmlsZXM/Lmxlbmd0aFwiPlxyXG4gICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZmlsZSBvZiB1cGxvYWRlZEZpbGVzOyBsZXQgaSA9IGluZGV4XCIgKGNsaWNrKT1cImRlbGV0ZUZpbGUoaSlcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZWxhdGl2ZVwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjbG9zZV9pY29uIGN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE4XCIgaGVpZ2h0PVwiMThcIiB2aWV3Qm94PVwiMCAwIDE4IDE4XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF82ODM3XzI5NjgzKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMThcIiBoZWlnaHQ9XCIxOFwiIHJ4PVwiOVwiIGZpbGw9XCIjRjNBMDQxXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8bWFzayBpZD1cIm1hc2swXzY4MzdfMjk2ODNcIiBzdHlsZT1cIm1hc2stdHlwZTphbHBoYVwiIG1hc2tVbml0cz1cInVzZXJTcGFjZU9uVXNlXCIgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiMjRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMjRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiBmaWxsPVwiI0Q5RDlEOVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9tYXNrPlxyXG4gICAgICAgICAgICAgICAgICAgIDxnIG1hc2s9XCJ1cmwoI21hc2swXzY4MzdfMjk2ODMpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTguMjA0NSA4Ljk5ODE1TDUuODE4MDIgNi42MTE2N0w2LjYxMzUxIDUuODE2MTdMOSA4LjIwMjY2TDExLjM4NjUgNS44MTYxN0wxMi4xODIgNi42MTE2N0w5Ljc5NTUgOC45OTgxNUwxMi4xODIgMTEuMzg0NkwxMS4zODY1IDEyLjE4MDFMOSA5Ljc5MzY1TDYuNjEzNTEgMTIuMTgwMUw1LjgxODAyIDExLjM4NDZMOC4yMDQ1IDguOTk4MTVaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfNjgzN18yOTY4M1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIxOFwiIGhlaWdodD1cIjE4XCIgcng9XCI5XCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiZmlsZS10aHVtYm5haWxcIiBzdHlsZT1cImJvcmRlci1yYWRpdXM6IDRweFwiIFtzcmNdPVwiZmlsZT8ucmVzdWx0XCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgXHJcbiAgICAgICAgICAgIDxwPnt7ZmlsZT8ubmFtZX19PC9wPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9meC1jb21wb25lbnQ+Il19
@@ -1252,11 +1252,11 @@ class UploaderCheckboxComponent extends FxBaseComponent {
1252
1252
  return [FxValidatorService.required];
1253
1253
  }
1254
1254
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UploaderCheckboxComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: FxBuilderWrapperService }], target: i0.ɵɵFactoryTarget.Component });
1255
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: UploaderCheckboxComponent, isStandalone: true, selector: "lib-uploader-checkbox", usesInheritance: true, ngImport: i0, template: "<fx-component [fxData]=\"fxData\">\r\n <label class=\"inline-flex items-center gap-2\">\r\n <input\r\n type=\"checkbox\"\r\n [(ngModel)] = \"checkboxEnabled\"\r\n (change)=\"onCheckboxChange()\"\r\n />\r\n {{ setting('checkbox-label') }}\r\n </label>\r\n <div class=\"custom-upload flex flex-row items-center gap-2 p-2 pb-0 rounded-sm\">\r\n <div class=\"flex flex-col justify-center items-center\" (click)=\"fileInput.click()\">\r\n <div>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"29\" height=\"28\" viewBox=\"0 0 29 28\" fill=\"none\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M14.001 3.00195C11.5322 3.00195 9.16722 3.86956 7.23641 5.38414L7.23598 4.59695C7.23598 4.52473 7.22175 4.45321 7.19411 4.38648C7.16647 4.31975 7.12596 4.25912 7.07489 4.20804C7.02381 4.15697 6.96318 4.11646 6.89645 4.08882C6.82972 4.06118 6.7582 4.04695 6.68598 4.04695C6.61375 4.04695 6.54223 4.06118 6.4755 4.08882C6.40877 4.11646 6.34814 4.15697 6.29707 4.20804C6.24599 4.25912 6.20548 4.31975 6.17784 4.38648C6.1502 4.45321 6.13598 4.52473 6.13598 4.59695L6.13642 6.68652C6.13643 6.83239 6.19438 6.97228 6.29752 7.07542C6.40067 7.17856 6.54055 7.23651 6.68642 7.23652H8.77598C8.8482 7.23652 8.91972 7.2223 8.98645 7.19466C9.05318 7.16702 9.11381 7.12651 9.16489 7.07543C9.21596 7.02436 9.25647 6.96373 9.28411 6.897C9.31175 6.83027 9.32598 6.75875 9.32598 6.68652C9.32598 6.6143 9.31175 6.54278 9.28411 6.47605C9.25647 6.40932 9.21596 6.34869 9.16489 6.29761C9.11381 6.24654 9.05318 6.20603 8.98645 6.17839C8.91972 6.15075 8.8482 6.13652 8.77598 6.13652H8.0584C9.7702 4.84387 11.8399 4.10195 14.001 4.10195C19.4751 4.10195 23.901 8.52782 23.901 14.002C23.901 19.4761 19.4751 23.902 14.001 23.902C8.52684 23.902 4.10098 19.4761 4.10098 14.002C4.10098 12.6381 4.38263 11.2888 4.92855 10.0389C4.98691 9.90532 4.98982 9.75399 4.93665 9.61822C4.88347 9.48246 4.77855 9.37336 4.64496 9.31492C4.57877 9.28596 4.50753 9.27032 4.4353 9.2689C4.36306 9.26747 4.29126 9.2803 4.22398 9.30663C4.15671 9.33297 4.09528 9.3723 4.04321 9.42238C3.99114 9.47247 3.94944 9.53232 3.92051 9.59852C3.31393 10.9872 3.00098 12.4866 3.00098 14.002C3.00098 20.0706 7.93236 25.002 14.001 25.002C20.0696 25.002 25.001 20.0706 25.001 14.002C25.001 7.93334 20.0696 3.00195 14.001 3.00195Z\"\r\n fill=\"#F3A041\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M13.9988 6.13965C9.6616 6.13965 6.13379 9.66746 6.13379 14.0046C6.13379 18.3418 9.6616 21.8696 13.9988 21.8696C18.336 21.8696 21.8638 18.3418 21.8638 14.0046C21.8638 9.66746 18.336 6.13965 13.9988 6.13965ZM13.9988 8.22965C14.1447 8.22965 14.2846 8.28759 14.3877 8.39074C14.4908 8.49388 14.5488 8.63378 14.5488 8.77965V13.7769L17.5227 16.7508C17.6258 16.8539 17.6837 16.9938 17.6837 17.1396C17.6837 17.2855 17.6258 17.4254 17.5227 17.5285C17.4195 17.6316 17.2796 17.6896 17.1338 17.6896C16.9879 17.6896 16.8481 17.6316 16.7449 17.5285L13.6099 14.3935C13.5068 14.2904 13.4488 14.1505 13.4488 14.0046V8.77965C13.4488 8.63378 13.5067 8.49388 13.6099 8.39074C13.713 8.28759 13.8529 8.22965 13.9988 8.22965Z\"\r\n fill=\"#F3A041\" />\r\n <rect width=\"28.56\" height=\"28\" rx=\"1.51479\" fill=\"#F3A041\" />\r\n <path\r\n d=\"M15.068 22.7391V17.6708H18.4968L14.2108 12.6025L9.9248 17.6708H13.3536V22.7391H9.06759V22.6969C8.92358 22.7053 8.78643 22.7391 8.63899 22.7391C6.93391 22.7391 5.29866 22.0717 4.09298 20.8835C2.8873 19.6954 2.20996 18.084 2.20996 16.4037C2.20996 13.1532 4.70443 10.5042 7.90523 10.141C8.18585 8.6953 8.96892 7.39118 10.1197 6.45292C11.2706 5.51465 12.7172 5.00089 14.2108 5C15.7047 5.00082 17.1515 5.51452 18.3026 6.45277C19.4537 7.39101 20.2371 8.69516 20.5181 10.141C23.7189 10.5042 26.21 13.1532 26.21 16.4037C26.21 18.084 25.5326 19.6954 24.3269 20.8835C23.1213 22.0717 21.486 22.7391 19.7809 22.7391C19.6369 22.7391 19.4981 22.7053 19.3523 22.6969V22.7391H15.068Z\"\r\n fill=\"white\" />\r\n </svg>\r\n </div>\r\n <a type=\"button\" (click)=\"fileInput.click()\" class=\"text-base cursor-pointer\">\r\n {{ setting('upload-text') }}\r\n </a>\r\n </div>\r\n <input #fileInput type=\"file\" [multiple]=\"setting('multiple-upload')\" (change)=\"onFileSelected($event)\" hidden />\r\n <div class=\"separator\"></div>\r\n <div class=\"file-list flex items-center gap-4 flex-wrap\">\r\n <ng-container *ngIf=\"uploadedFiles?.length\">\r\n <div *ngFor=\"let file of uploadedFiles; let i = index\" (click)=\"deleteFile(i)\"\r\n class=\"flex flex-col items-center justify-center\">\r\n <div class=\"relative\">\r\n <div class=\"close_icon cursor-pointer\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_6837_29683)\">\r\n <rect width=\"18\" height=\"18\" rx=\"9\" fill=\"#F3A041\" />\r\n <mask id=\"mask0_6837_29683\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"4\" y=\"4\" width=\"24\"\r\n height=\"24\">\r\n <rect x=\"4\" y=\"4\" width=\"24\" height=\"24\" fill=\"#D9D9D9\" />\r\n </mask>\r\n <g mask=\"url(#mask0_6837_29683)\">\r\n <path\r\n d=\"M8.2045 8.99815L5.81802 6.61167L6.61351 5.81617L9 8.20266L11.3865 5.81617L12.182 6.61167L9.7955 8.99815L12.182 11.3846L11.3865 12.1801L9 9.79365L6.61351 12.1801L5.81802 11.3846L8.2045 8.99815Z\"\r\n fill=\"white\" />\r\n </g>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_6837_29683\">\r\n <rect width=\"18\" height=\"18\" rx=\"9\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </div>\r\n <img class=\"file-thumbnail\" style=\"border-radius: 4px\" [src]=\"file?.result\" alt=\"\" />\r\n </div>\r\n \r\n <p>{{file?.name}}</p>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </fx-component>", styles: [".custom-upload{border:1px solid #ccc}.custom-upload a{color:#000}.custom-upload .file-list .file-thumbnail{width:120px;height:auto;border:1px solid #ccc;background-color:#fff;padding:4px}.custom-upload .separator{height:56px;width:2px;background-color:#ccc;margin:10px}.close_icon{position:absolute;top:-8px;right:-8px}[type=checkbox]{padding:12px}[type=checkbox]:checked{background-color:#f3a041!important;padding:12px;background-size:1em 1em!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FxComponent, selector: "fx-component", inputs: ["fxData"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }] });
1255
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: UploaderCheckboxComponent, isStandalone: true, selector: "uploader-checkbox", usesInheritance: true, ngImport: i0, template: "<fx-component [fxData]=\"fxData\">\r\n <label class=\"inline-flex items-center gap-2\">\r\n <input\r\n type=\"checkbox\"\r\n [(ngModel)] = \"checkboxEnabled\"\r\n (change)=\"onCheckboxChange()\"\r\n />\r\n {{ setting('checkbox-label') }}\r\n </label>\r\n <div class=\"custom-upload flex flex-row items-center gap-2 p-2 pb-0 rounded-sm\">\r\n <div class=\"flex flex-col justify-center items-center\" (click)=\"fileInput.click()\">\r\n <div>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"29\" height=\"28\" viewBox=\"0 0 29 28\" fill=\"none\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M14.001 3.00195C11.5322 3.00195 9.16722 3.86956 7.23641 5.38414L7.23598 4.59695C7.23598 4.52473 7.22175 4.45321 7.19411 4.38648C7.16647 4.31975 7.12596 4.25912 7.07489 4.20804C7.02381 4.15697 6.96318 4.11646 6.89645 4.08882C6.82972 4.06118 6.7582 4.04695 6.68598 4.04695C6.61375 4.04695 6.54223 4.06118 6.4755 4.08882C6.40877 4.11646 6.34814 4.15697 6.29707 4.20804C6.24599 4.25912 6.20548 4.31975 6.17784 4.38648C6.1502 4.45321 6.13598 4.52473 6.13598 4.59695L6.13642 6.68652C6.13643 6.83239 6.19438 6.97228 6.29752 7.07542C6.40067 7.17856 6.54055 7.23651 6.68642 7.23652H8.77598C8.8482 7.23652 8.91972 7.2223 8.98645 7.19466C9.05318 7.16702 9.11381 7.12651 9.16489 7.07543C9.21596 7.02436 9.25647 6.96373 9.28411 6.897C9.31175 6.83027 9.32598 6.75875 9.32598 6.68652C9.32598 6.6143 9.31175 6.54278 9.28411 6.47605C9.25647 6.40932 9.21596 6.34869 9.16489 6.29761C9.11381 6.24654 9.05318 6.20603 8.98645 6.17839C8.91972 6.15075 8.8482 6.13652 8.77598 6.13652H8.0584C9.7702 4.84387 11.8399 4.10195 14.001 4.10195C19.4751 4.10195 23.901 8.52782 23.901 14.002C23.901 19.4761 19.4751 23.902 14.001 23.902C8.52684 23.902 4.10098 19.4761 4.10098 14.002C4.10098 12.6381 4.38263 11.2888 4.92855 10.0389C4.98691 9.90532 4.98982 9.75399 4.93665 9.61822C4.88347 9.48246 4.77855 9.37336 4.64496 9.31492C4.57877 9.28596 4.50753 9.27032 4.4353 9.2689C4.36306 9.26747 4.29126 9.2803 4.22398 9.30663C4.15671 9.33297 4.09528 9.3723 4.04321 9.42238C3.99114 9.47247 3.94944 9.53232 3.92051 9.59852C3.31393 10.9872 3.00098 12.4866 3.00098 14.002C3.00098 20.0706 7.93236 25.002 14.001 25.002C20.0696 25.002 25.001 20.0706 25.001 14.002C25.001 7.93334 20.0696 3.00195 14.001 3.00195Z\"\r\n fill=\"#F3A041\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M13.9988 6.13965C9.6616 6.13965 6.13379 9.66746 6.13379 14.0046C6.13379 18.3418 9.6616 21.8696 13.9988 21.8696C18.336 21.8696 21.8638 18.3418 21.8638 14.0046C21.8638 9.66746 18.336 6.13965 13.9988 6.13965ZM13.9988 8.22965C14.1447 8.22965 14.2846 8.28759 14.3877 8.39074C14.4908 8.49388 14.5488 8.63378 14.5488 8.77965V13.7769L17.5227 16.7508C17.6258 16.8539 17.6837 16.9938 17.6837 17.1396C17.6837 17.2855 17.6258 17.4254 17.5227 17.5285C17.4195 17.6316 17.2796 17.6896 17.1338 17.6896C16.9879 17.6896 16.8481 17.6316 16.7449 17.5285L13.6099 14.3935C13.5068 14.2904 13.4488 14.1505 13.4488 14.0046V8.77965C13.4488 8.63378 13.5067 8.49388 13.6099 8.39074C13.713 8.28759 13.8529 8.22965 13.9988 8.22965Z\"\r\n fill=\"#F3A041\" />\r\n <rect width=\"28.56\" height=\"28\" rx=\"1.51479\" fill=\"#F3A041\" />\r\n <path\r\n d=\"M15.068 22.7391V17.6708H18.4968L14.2108 12.6025L9.9248 17.6708H13.3536V22.7391H9.06759V22.6969C8.92358 22.7053 8.78643 22.7391 8.63899 22.7391C6.93391 22.7391 5.29866 22.0717 4.09298 20.8835C2.8873 19.6954 2.20996 18.084 2.20996 16.4037C2.20996 13.1532 4.70443 10.5042 7.90523 10.141C8.18585 8.6953 8.96892 7.39118 10.1197 6.45292C11.2706 5.51465 12.7172 5.00089 14.2108 5C15.7047 5.00082 17.1515 5.51452 18.3026 6.45277C19.4537 7.39101 20.2371 8.69516 20.5181 10.141C23.7189 10.5042 26.21 13.1532 26.21 16.4037C26.21 18.084 25.5326 19.6954 24.3269 20.8835C23.1213 22.0717 21.486 22.7391 19.7809 22.7391C19.6369 22.7391 19.4981 22.7053 19.3523 22.6969V22.7391H15.068Z\"\r\n fill=\"white\" />\r\n </svg>\r\n </div>\r\n <a type=\"button\" (click)=\"fileInput.click()\" class=\"text-base cursor-pointer\">\r\n {{ setting('upload-text') }}\r\n </a>\r\n </div>\r\n <input #fileInput type=\"file\" [multiple]=\"setting('multiple-upload')\" (change)=\"onFileSelected($event)\" hidden />\r\n <div class=\"separator\"></div>\r\n <div class=\"file-list flex items-center gap-4 flex-wrap\">\r\n <ng-container *ngIf=\"uploadedFiles?.length\">\r\n <div *ngFor=\"let file of uploadedFiles; let i = index\" (click)=\"deleteFile(i)\"\r\n class=\"flex flex-col items-center justify-center\">\r\n <div class=\"relative\">\r\n <div class=\"close_icon cursor-pointer\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_6837_29683)\">\r\n <rect width=\"18\" height=\"18\" rx=\"9\" fill=\"#F3A041\" />\r\n <mask id=\"mask0_6837_29683\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"4\" y=\"4\" width=\"24\"\r\n height=\"24\">\r\n <rect x=\"4\" y=\"4\" width=\"24\" height=\"24\" fill=\"#D9D9D9\" />\r\n </mask>\r\n <g mask=\"url(#mask0_6837_29683)\">\r\n <path\r\n d=\"M8.2045 8.99815L5.81802 6.61167L6.61351 5.81617L9 8.20266L11.3865 5.81617L12.182 6.61167L9.7955 8.99815L12.182 11.3846L11.3865 12.1801L9 9.79365L6.61351 12.1801L5.81802 11.3846L8.2045 8.99815Z\"\r\n fill=\"white\" />\r\n </g>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_6837_29683\">\r\n <rect width=\"18\" height=\"18\" rx=\"9\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </div>\r\n <img class=\"file-thumbnail\" style=\"border-radius: 4px\" [src]=\"file?.result\" alt=\"\" />\r\n </div>\r\n \r\n <p>{{file?.name}}</p>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </fx-component>", styles: [".custom-upload{border:1px solid #ccc}.custom-upload a{color:#000}.custom-upload .file-list .file-thumbnail{width:120px;height:auto;border:1px solid #ccc;background-color:#fff;padding:4px}.custom-upload .separator{height:56px;width:2px;background-color:#ccc;margin:10px}.close_icon{position:absolute;top:-8px;right:-8px}[type=checkbox]{padding:12px}[type=checkbox]:checked{background-color:#f3a041!important;padding:12px;background-size:1em 1em!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FxComponent, selector: "fx-component", inputs: ["fxData"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }] });
1256
1256
  }
1257
1257
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UploaderCheckboxComponent, decorators: [{
1258
1258
  type: Component,
1259
- args: [{ selector: 'lib-uploader-checkbox', standalone: true, imports: [CommonModule, FxComponent, FormsModule, ReactiveFormsModule], template: "<fx-component [fxData]=\"fxData\">\r\n <label class=\"inline-flex items-center gap-2\">\r\n <input\r\n type=\"checkbox\"\r\n [(ngModel)] = \"checkboxEnabled\"\r\n (change)=\"onCheckboxChange()\"\r\n />\r\n {{ setting('checkbox-label') }}\r\n </label>\r\n <div class=\"custom-upload flex flex-row items-center gap-2 p-2 pb-0 rounded-sm\">\r\n <div class=\"flex flex-col justify-center items-center\" (click)=\"fileInput.click()\">\r\n <div>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"29\" height=\"28\" viewBox=\"0 0 29 28\" fill=\"none\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M14.001 3.00195C11.5322 3.00195 9.16722 3.86956 7.23641 5.38414L7.23598 4.59695C7.23598 4.52473 7.22175 4.45321 7.19411 4.38648C7.16647 4.31975 7.12596 4.25912 7.07489 4.20804C7.02381 4.15697 6.96318 4.11646 6.89645 4.08882C6.82972 4.06118 6.7582 4.04695 6.68598 4.04695C6.61375 4.04695 6.54223 4.06118 6.4755 4.08882C6.40877 4.11646 6.34814 4.15697 6.29707 4.20804C6.24599 4.25912 6.20548 4.31975 6.17784 4.38648C6.1502 4.45321 6.13598 4.52473 6.13598 4.59695L6.13642 6.68652C6.13643 6.83239 6.19438 6.97228 6.29752 7.07542C6.40067 7.17856 6.54055 7.23651 6.68642 7.23652H8.77598C8.8482 7.23652 8.91972 7.2223 8.98645 7.19466C9.05318 7.16702 9.11381 7.12651 9.16489 7.07543C9.21596 7.02436 9.25647 6.96373 9.28411 6.897C9.31175 6.83027 9.32598 6.75875 9.32598 6.68652C9.32598 6.6143 9.31175 6.54278 9.28411 6.47605C9.25647 6.40932 9.21596 6.34869 9.16489 6.29761C9.11381 6.24654 9.05318 6.20603 8.98645 6.17839C8.91972 6.15075 8.8482 6.13652 8.77598 6.13652H8.0584C9.7702 4.84387 11.8399 4.10195 14.001 4.10195C19.4751 4.10195 23.901 8.52782 23.901 14.002C23.901 19.4761 19.4751 23.902 14.001 23.902C8.52684 23.902 4.10098 19.4761 4.10098 14.002C4.10098 12.6381 4.38263 11.2888 4.92855 10.0389C4.98691 9.90532 4.98982 9.75399 4.93665 9.61822C4.88347 9.48246 4.77855 9.37336 4.64496 9.31492C4.57877 9.28596 4.50753 9.27032 4.4353 9.2689C4.36306 9.26747 4.29126 9.2803 4.22398 9.30663C4.15671 9.33297 4.09528 9.3723 4.04321 9.42238C3.99114 9.47247 3.94944 9.53232 3.92051 9.59852C3.31393 10.9872 3.00098 12.4866 3.00098 14.002C3.00098 20.0706 7.93236 25.002 14.001 25.002C20.0696 25.002 25.001 20.0706 25.001 14.002C25.001 7.93334 20.0696 3.00195 14.001 3.00195Z\"\r\n fill=\"#F3A041\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M13.9988 6.13965C9.6616 6.13965 6.13379 9.66746 6.13379 14.0046C6.13379 18.3418 9.6616 21.8696 13.9988 21.8696C18.336 21.8696 21.8638 18.3418 21.8638 14.0046C21.8638 9.66746 18.336 6.13965 13.9988 6.13965ZM13.9988 8.22965C14.1447 8.22965 14.2846 8.28759 14.3877 8.39074C14.4908 8.49388 14.5488 8.63378 14.5488 8.77965V13.7769L17.5227 16.7508C17.6258 16.8539 17.6837 16.9938 17.6837 17.1396C17.6837 17.2855 17.6258 17.4254 17.5227 17.5285C17.4195 17.6316 17.2796 17.6896 17.1338 17.6896C16.9879 17.6896 16.8481 17.6316 16.7449 17.5285L13.6099 14.3935C13.5068 14.2904 13.4488 14.1505 13.4488 14.0046V8.77965C13.4488 8.63378 13.5067 8.49388 13.6099 8.39074C13.713 8.28759 13.8529 8.22965 13.9988 8.22965Z\"\r\n fill=\"#F3A041\" />\r\n <rect width=\"28.56\" height=\"28\" rx=\"1.51479\" fill=\"#F3A041\" />\r\n <path\r\n d=\"M15.068 22.7391V17.6708H18.4968L14.2108 12.6025L9.9248 17.6708H13.3536V22.7391H9.06759V22.6969C8.92358 22.7053 8.78643 22.7391 8.63899 22.7391C6.93391 22.7391 5.29866 22.0717 4.09298 20.8835C2.8873 19.6954 2.20996 18.084 2.20996 16.4037C2.20996 13.1532 4.70443 10.5042 7.90523 10.141C8.18585 8.6953 8.96892 7.39118 10.1197 6.45292C11.2706 5.51465 12.7172 5.00089 14.2108 5C15.7047 5.00082 17.1515 5.51452 18.3026 6.45277C19.4537 7.39101 20.2371 8.69516 20.5181 10.141C23.7189 10.5042 26.21 13.1532 26.21 16.4037C26.21 18.084 25.5326 19.6954 24.3269 20.8835C23.1213 22.0717 21.486 22.7391 19.7809 22.7391C19.6369 22.7391 19.4981 22.7053 19.3523 22.6969V22.7391H15.068Z\"\r\n fill=\"white\" />\r\n </svg>\r\n </div>\r\n <a type=\"button\" (click)=\"fileInput.click()\" class=\"text-base cursor-pointer\">\r\n {{ setting('upload-text') }}\r\n </a>\r\n </div>\r\n <input #fileInput type=\"file\" [multiple]=\"setting('multiple-upload')\" (change)=\"onFileSelected($event)\" hidden />\r\n <div class=\"separator\"></div>\r\n <div class=\"file-list flex items-center gap-4 flex-wrap\">\r\n <ng-container *ngIf=\"uploadedFiles?.length\">\r\n <div *ngFor=\"let file of uploadedFiles; let i = index\" (click)=\"deleteFile(i)\"\r\n class=\"flex flex-col items-center justify-center\">\r\n <div class=\"relative\">\r\n <div class=\"close_icon cursor-pointer\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_6837_29683)\">\r\n <rect width=\"18\" height=\"18\" rx=\"9\" fill=\"#F3A041\" />\r\n <mask id=\"mask0_6837_29683\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"4\" y=\"4\" width=\"24\"\r\n height=\"24\">\r\n <rect x=\"4\" y=\"4\" width=\"24\" height=\"24\" fill=\"#D9D9D9\" />\r\n </mask>\r\n <g mask=\"url(#mask0_6837_29683)\">\r\n <path\r\n d=\"M8.2045 8.99815L5.81802 6.61167L6.61351 5.81617L9 8.20266L11.3865 5.81617L12.182 6.61167L9.7955 8.99815L12.182 11.3846L11.3865 12.1801L9 9.79365L6.61351 12.1801L5.81802 11.3846L8.2045 8.99815Z\"\r\n fill=\"white\" />\r\n </g>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_6837_29683\">\r\n <rect width=\"18\" height=\"18\" rx=\"9\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </div>\r\n <img class=\"file-thumbnail\" style=\"border-radius: 4px\" [src]=\"file?.result\" alt=\"\" />\r\n </div>\r\n \r\n <p>{{file?.name}}</p>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </fx-component>", styles: [".custom-upload{border:1px solid #ccc}.custom-upload a{color:#000}.custom-upload .file-list .file-thumbnail{width:120px;height:auto;border:1px solid #ccc;background-color:#fff;padding:4px}.custom-upload .separator{height:56px;width:2px;background-color:#ccc;margin:10px}.close_icon{position:absolute;top:-8px;right:-8px}[type=checkbox]{padding:12px}[type=checkbox]:checked{background-color:#f3a041!important;padding:12px;background-size:1em 1em!important}\n"] }]
1259
+ args: [{ selector: 'uploader-checkbox', standalone: true, imports: [CommonModule, FxComponent, FormsModule, ReactiveFormsModule], template: "<fx-component [fxData]=\"fxData\">\r\n <label class=\"inline-flex items-center gap-2\">\r\n <input\r\n type=\"checkbox\"\r\n [(ngModel)] = \"checkboxEnabled\"\r\n (change)=\"onCheckboxChange()\"\r\n />\r\n {{ setting('checkbox-label') }}\r\n </label>\r\n <div class=\"custom-upload flex flex-row items-center gap-2 p-2 pb-0 rounded-sm\">\r\n <div class=\"flex flex-col justify-center items-center\" (click)=\"fileInput.click()\">\r\n <div>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"29\" height=\"28\" viewBox=\"0 0 29 28\" fill=\"none\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M14.001 3.00195C11.5322 3.00195 9.16722 3.86956 7.23641 5.38414L7.23598 4.59695C7.23598 4.52473 7.22175 4.45321 7.19411 4.38648C7.16647 4.31975 7.12596 4.25912 7.07489 4.20804C7.02381 4.15697 6.96318 4.11646 6.89645 4.08882C6.82972 4.06118 6.7582 4.04695 6.68598 4.04695C6.61375 4.04695 6.54223 4.06118 6.4755 4.08882C6.40877 4.11646 6.34814 4.15697 6.29707 4.20804C6.24599 4.25912 6.20548 4.31975 6.17784 4.38648C6.1502 4.45321 6.13598 4.52473 6.13598 4.59695L6.13642 6.68652C6.13643 6.83239 6.19438 6.97228 6.29752 7.07542C6.40067 7.17856 6.54055 7.23651 6.68642 7.23652H8.77598C8.8482 7.23652 8.91972 7.2223 8.98645 7.19466C9.05318 7.16702 9.11381 7.12651 9.16489 7.07543C9.21596 7.02436 9.25647 6.96373 9.28411 6.897C9.31175 6.83027 9.32598 6.75875 9.32598 6.68652C9.32598 6.6143 9.31175 6.54278 9.28411 6.47605C9.25647 6.40932 9.21596 6.34869 9.16489 6.29761C9.11381 6.24654 9.05318 6.20603 8.98645 6.17839C8.91972 6.15075 8.8482 6.13652 8.77598 6.13652H8.0584C9.7702 4.84387 11.8399 4.10195 14.001 4.10195C19.4751 4.10195 23.901 8.52782 23.901 14.002C23.901 19.4761 19.4751 23.902 14.001 23.902C8.52684 23.902 4.10098 19.4761 4.10098 14.002C4.10098 12.6381 4.38263 11.2888 4.92855 10.0389C4.98691 9.90532 4.98982 9.75399 4.93665 9.61822C4.88347 9.48246 4.77855 9.37336 4.64496 9.31492C4.57877 9.28596 4.50753 9.27032 4.4353 9.2689C4.36306 9.26747 4.29126 9.2803 4.22398 9.30663C4.15671 9.33297 4.09528 9.3723 4.04321 9.42238C3.99114 9.47247 3.94944 9.53232 3.92051 9.59852C3.31393 10.9872 3.00098 12.4866 3.00098 14.002C3.00098 20.0706 7.93236 25.002 14.001 25.002C20.0696 25.002 25.001 20.0706 25.001 14.002C25.001 7.93334 20.0696 3.00195 14.001 3.00195Z\"\r\n fill=\"#F3A041\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M13.9988 6.13965C9.6616 6.13965 6.13379 9.66746 6.13379 14.0046C6.13379 18.3418 9.6616 21.8696 13.9988 21.8696C18.336 21.8696 21.8638 18.3418 21.8638 14.0046C21.8638 9.66746 18.336 6.13965 13.9988 6.13965ZM13.9988 8.22965C14.1447 8.22965 14.2846 8.28759 14.3877 8.39074C14.4908 8.49388 14.5488 8.63378 14.5488 8.77965V13.7769L17.5227 16.7508C17.6258 16.8539 17.6837 16.9938 17.6837 17.1396C17.6837 17.2855 17.6258 17.4254 17.5227 17.5285C17.4195 17.6316 17.2796 17.6896 17.1338 17.6896C16.9879 17.6896 16.8481 17.6316 16.7449 17.5285L13.6099 14.3935C13.5068 14.2904 13.4488 14.1505 13.4488 14.0046V8.77965C13.4488 8.63378 13.5067 8.49388 13.6099 8.39074C13.713 8.28759 13.8529 8.22965 13.9988 8.22965Z\"\r\n fill=\"#F3A041\" />\r\n <rect width=\"28.56\" height=\"28\" rx=\"1.51479\" fill=\"#F3A041\" />\r\n <path\r\n d=\"M15.068 22.7391V17.6708H18.4968L14.2108 12.6025L9.9248 17.6708H13.3536V22.7391H9.06759V22.6969C8.92358 22.7053 8.78643 22.7391 8.63899 22.7391C6.93391 22.7391 5.29866 22.0717 4.09298 20.8835C2.8873 19.6954 2.20996 18.084 2.20996 16.4037C2.20996 13.1532 4.70443 10.5042 7.90523 10.141C8.18585 8.6953 8.96892 7.39118 10.1197 6.45292C11.2706 5.51465 12.7172 5.00089 14.2108 5C15.7047 5.00082 17.1515 5.51452 18.3026 6.45277C19.4537 7.39101 20.2371 8.69516 20.5181 10.141C23.7189 10.5042 26.21 13.1532 26.21 16.4037C26.21 18.084 25.5326 19.6954 24.3269 20.8835C23.1213 22.0717 21.486 22.7391 19.7809 22.7391C19.6369 22.7391 19.4981 22.7053 19.3523 22.6969V22.7391H15.068Z\"\r\n fill=\"white\" />\r\n </svg>\r\n </div>\r\n <a type=\"button\" (click)=\"fileInput.click()\" class=\"text-base cursor-pointer\">\r\n {{ setting('upload-text') }}\r\n </a>\r\n </div>\r\n <input #fileInput type=\"file\" [multiple]=\"setting('multiple-upload')\" (change)=\"onFileSelected($event)\" hidden />\r\n <div class=\"separator\"></div>\r\n <div class=\"file-list flex items-center gap-4 flex-wrap\">\r\n <ng-container *ngIf=\"uploadedFiles?.length\">\r\n <div *ngFor=\"let file of uploadedFiles; let i = index\" (click)=\"deleteFile(i)\"\r\n class=\"flex flex-col items-center justify-center\">\r\n <div class=\"relative\">\r\n <div class=\"close_icon cursor-pointer\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_6837_29683)\">\r\n <rect width=\"18\" height=\"18\" rx=\"9\" fill=\"#F3A041\" />\r\n <mask id=\"mask0_6837_29683\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"4\" y=\"4\" width=\"24\"\r\n height=\"24\">\r\n <rect x=\"4\" y=\"4\" width=\"24\" height=\"24\" fill=\"#D9D9D9\" />\r\n </mask>\r\n <g mask=\"url(#mask0_6837_29683)\">\r\n <path\r\n d=\"M8.2045 8.99815L5.81802 6.61167L6.61351 5.81617L9 8.20266L11.3865 5.81617L12.182 6.61167L9.7955 8.99815L12.182 11.3846L11.3865 12.1801L9 9.79365L6.61351 12.1801L5.81802 11.3846L8.2045 8.99815Z\"\r\n fill=\"white\" />\r\n </g>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_6837_29683\">\r\n <rect width=\"18\" height=\"18\" rx=\"9\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </div>\r\n <img class=\"file-thumbnail\" style=\"border-radius: 4px\" [src]=\"file?.result\" alt=\"\" />\r\n </div>\r\n \r\n <p>{{file?.name}}</p>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </fx-component>", styles: [".custom-upload{border:1px solid #ccc}.custom-upload a{color:#000}.custom-upload .file-list .file-thumbnail{width:120px;height:auto;border:1px solid #ccc;background-color:#fff;padding:4px}.custom-upload .separator{height:56px;width:2px;background-color:#ccc;margin:10px}.close_icon{position:absolute;top:-8px;right:-8px}[type=checkbox]{padding:12px}[type=checkbox]:checked{background-color:#f3a041!important;padding:12px;background-size:1em 1em!important}\n"] }]
1260
1260
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: FxBuilderWrapperService }] });
1261
1261
 
1262
1262
  class FxBuilderWrapperComponent {
@@ -1372,7 +1372,8 @@ class FxFormWrapperComponent {
1372
1372
  { name: 'Dynamic Table', key: 'dynamic-table', component: DynamicTableComponent },
1373
1373
  { name: 'Toggle Button', key: 'toggle-button', component: ToggleButtonComponent },
1374
1374
  { name: 'Uploader', key: 'uploader', component: UploaderComponent },
1375
- { name: 'Toggle', key: 'toggle', component: ToggleComponent }
1375
+ { name: 'Toggle', key: 'toggle', component: ToggleComponent },
1376
+ { name: 'Uploader with Checkbox', key: 'uploader-checkbox', component: UploaderCheckboxComponent }
1376
1377
  ];
1377
1378
  components.forEach(({ name, key, component }) => {
1378
1379
  if (!this.fxWrapperService.getComponent(key)) {