@elite.framework/ng.ui.core 1.0.4 → 1.0.6

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elite.framework-ng.ui.core-excel-import.mjs","sources":["../tmp-esm2022/excel-import/lib/excel-import-module.js","../tmp-esm2022/excel-import/lib/excel-import.js","../tmp-esm2022/excel-import/elite.framework-ng.ui.core-excel-import.js"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nexport class ExcelImportModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: ExcelImportModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: ExcelImportModule, imports: [CommonModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: ExcelImportModule, imports: [CommonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: ExcelImportModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjZWwtaW1wb3J0LW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9leGNlbC1pbXBvcnQvc3JjL2xpYi9leGNlbC1pbXBvcnQtbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUsvQyxNQUFNLE9BQU8saUJBQWlCO3VHQUFqQixpQkFBaUI7d0dBQWpCLGlCQUFpQixZQUZsQixZQUFZO3dHQUVYLGlCQUFpQixZQUZsQixZQUFZOzsyRkFFWCxpQkFBaUI7a0JBSDdCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgRXhjZWxJbXBvcnRNb2R1bGUge31cbiJdfQ==","import { CommonModule } from '@angular/common';\nimport { Component, inject, Input, Output, EventEmitter } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule, FormBuilder, Validators } from '@angular/forms';\nimport { RestService } from '@elite.framework/ng.core/services';\nimport { FormlyForm } from '@ngx-formly/core';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { ButtonModule } from 'primeng/button';\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\nimport { Subject, takeUntil } from 'rxjs';\nimport { FileUploadModule } from 'primeng/fileupload';\nimport { StepsModule } from 'primeng/steps';\nimport { MessageService } from 'primeng/api';\nimport { ToastModule } from 'primeng/toast';\nimport { read, utils } from 'xlsx';\nimport { ENVIRONMENT } from '@elite.framework/ng.core/tokens';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"primeng/dynamicdialog\";\nimport * as i2 from \"@angular/common\";\nimport * as i3 from \"@angular/forms\";\nimport * as i4 from \"primeng/button\";\nimport * as i5 from \"primeng/fileupload\";\nimport * as i6 from \"primeng/steps\";\nimport * as i7 from \"primeng/toast\";\nimport * as i8 from \"@ngx-translate/core\";\nexport class ExcelImportComponent {\n ref;\n dialogConfig;\n config;\n importComplete = new EventEmitter();\n importError = new EventEmitter();\n form;\n model = {};\n loading = false;\n uploadedFileName = null;\n uploadError = null;\n excelHeaders = [];\n destroy$ = new Subject();\n restService = inject(RestService);\n messageService = inject(MessageService);\n translateService = inject(TranslateService);\n fb = inject(FormBuilder);\n env = inject(ENVIRONMENT);\n steps = [\n { label: this.translateService.instant('uploadFile') },\n { label: this.translateService.instant('columnMapping') },\n { label: this.translateService.instant('review') },\n ];\n activeStep = 0;\n mappingFields = [];\n constructor(ref, dialogConfig) {\n this.ref = ref;\n this.dialogConfig = dialogConfig;\n this.form = this.fb.group({});\n // Initialize from dialog config if provided\n if (this.dialogConfig?.data?.config) {\n this.config = this.dialogConfig.data.config;\n }\n }\n ngOnInit() {\n if (!this.config) {\n throw new Error('ExcelImportConfig is required');\n }\n this.mappingFields = this.config.mappingFields.map(field => ({\n ...field,\n props: {\n ...field.props,\n options: []\n }\n }));\n this.steps = this.config.steps || this.steps;\n }\n nextStep() {\n if (this.activeStep < 2)\n this.activeStep++;\n }\n prevStep() {\n if (this.activeStep > 0)\n this.activeStep--;\n }\n canProceed() {\n switch (this.activeStep) {\n case 0:\n return !!this.uploadedFileName;\n case 1:\n return this.form.valid;\n case 2:\n return true;\n default:\n return false;\n }\n }\n getModelValue(field, model) {\n if (!field.key)\n return null;\n if (Array.isArray(field.key)) {\n // Walk through nested keys like ['address', 'street']\n return field.key.reduce((acc, k) => (acc ? acc[k] : undefined), model);\n }\n return model[field.key];\n }\n // Add this property to store the file content\n fileContent = null;\n // Update the onFileUpload method to store the file content\n onFileUpload(event) {\n this.uploadError = null;\n const file = event.files[0];\n if (!file) {\n this.uploadError = 'noFileSelected';\n return;\n }\n // Validate file type\n const validExtensions = ['.xlsx', '.xls', '.csv'];\n const fileExtension = file.name.toLowerCase().substring(file.name.lastIndexOf('.'));\n if (!validExtensions.includes(fileExtension)) {\n this.uploadError = 'invalidFileType';\n this.clearFileUpload(event);\n return;\n }\n this.uploadedFileName = file.name;\n const reader = new FileReader();\n reader.onload = (e) => {\n try {\n const arrayBuffer = e.target?.result;\n this.fileContent = arrayBuffer; // Store the file content\n const data = new Uint8Array(arrayBuffer);\n const workbook = read(data, { type: 'array' });\n if (workbook.SheetNames.length === 0) {\n this.uploadError = 'noSheetsFound';\n this.clearFileUpload(event);\n return;\n }\n const sheetName = workbook.SheetNames[0];\n const worksheet = workbook.Sheets[sheetName];\n const rows = utils.sheet_to_json(worksheet, { header: 1 });\n if (rows.length === 0) {\n this.uploadError = 'noDataFound';\n this.clearFileUpload(event);\n return;\n }\n this.excelHeaders = rows[0];\n // Update mapping fields with header options\n this.mappingFields.forEach(field => {\n if (field.props) {\n field.props.options = this.excelHeaders.map(h => ({\n value: h,\n label: h,\n }));\n }\n });\n // Initialize form with default values if not set\n this.initializeForm();\n }\n catch (error) {\n console.error('Error processing Excel file:', error);\n this.uploadError = 'fileProcessingError';\n this.clearFileUpload(event);\n }\n };\n reader.onerror = (error) => {\n console.error('File reading error:', error);\n this.uploadError = 'fileReadError';\n this.clearFileUpload(event);\n };\n reader.readAsArrayBuffer(file);\n }\n // Add this method to convert ArrayBuffer to base64\n arrayBufferToBase64(buffer) {\n const bytes = new Uint8Array(buffer);\n let binary = '';\n const len = bytes.byteLength;\n for (let i = 0; i < len; i++) {\n binary += String.fromCharCode(bytes[i]);\n }\n return window.btoa(binary);\n }\n // Add this method to get file extension\n getFileExtension(filename) {\n const index = filename.lastIndexOf('.');\n return index !== -1 ? filename.slice(index) : '';\n }\n // Updated onSubmit method\n onSubmit() {\n if (this.form.invalid || !this.uploadedFileName || !this.fileContent) {\n this.form.markAllAsTouched();\n if (!this.fileContent) {\n this.messageService.add({\n severity: 'error',\n summary: 'Error',\n detail: 'File content is missing. Please upload the file again.'\n });\n }\n return;\n }\n this.loading = true;\n // Convert file content to base64\n let fileBase64;\n try {\n if (this.fileContent instanceof ArrayBuffer) {\n fileBase64 = this.arrayBufferToBase64(this.fileContent);\n }\n else if (typeof this.fileContent === 'string') {\n // If it's already a string (base64), use it directly\n fileBase64 = this.fileContent;\n }\n else {\n throw new Error('Unsupported file content type');\n }\n }\n catch (error) {\n this.loading = false;\n console.error('Error converting file to base64:', error);\n this.messageService.add({\n severity: 'error',\n summary: 'Error',\n detail: 'Failed to process file content'\n });\n return;\n }\n const requestBody = {\n fileName: this.uploadedFileName,\n fileExtension: this.getFileExtension(this.uploadedFileName),\n fileContent: fileBase64,\n mappings: this.form.value,\n headers: this.excelHeaders,\n fileSize: this.fileContent instanceof ArrayBuffer ? this.fileContent.byteLength : 0\n };\n this.restService\n .request({\n method: 'POST',\n url: this.config.apiUrl,\n body: requestBody,\n headers: {\n 'Content-Type': 'application/json'\n }\n }, { apiName: this.config.apiName })\n .pipe(takeUntil(this.destroy$))\n .subscribe({\n next: (response) => {\n this.loading = false;\n this.messageService.add({\n severity: 'success',\n summary: 'Success',\n detail: 'File imported successfully'\n });\n this.importComplete.emit(response);\n this.ref.close(response);\n },\n error: (err) => {\n this.loading = false;\n console.error('Import error:', err);\n this.messageService.add({\n severity: 'error',\n summary: 'Error',\n detail: 'Failed to import file'\n });\n this.importError.emit(err);\n },\n });\n }\n // Update clearFileUpload to also clear file content\n clearFileUpload(event) {\n if (event.options && typeof event.options.clear === 'function') {\n event.options.clear();\n }\n this.uploadedFileName = null;\n this.fileContent = null;\n }\n initializeForm() {\n const formConfig = {};\n this.mappingFields.forEach(field => {\n if (field.key) {\n // Set default value to first header if available\n formConfig[field.key] = [this.excelHeaders[0] || '', Validators.required];\n }\n });\n this.form = this.fb.group(formConfig);\n }\n onCancel() {\n if (!this.loading) {\n this.ref.close(false);\n }\n }\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: ExcelImportComponent, deps: [{ token: i1.DynamicDialogRef }, { token: i1.DynamicDialogConfig }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.8\", type: ExcelImportComponent, isStandalone: true, selector: \"app-excel-import\", inputs: { config: \"config\" }, outputs: { importComplete: \"importComplete\", importError: \"importError\" }, providers: [MessageService], ngImport: i0, template: `\r\n <p-toast></p-toast>\r\n <div class=\"p-4 space-y-4\">\r\n <p-steps [model]=\"steps\" [(activeIndex)]=\"activeStep\" class=\"mb-4\"></p-steps>\r\n\r\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\">\r\n <ng-container [ngSwitch]=\"activeStep\">\r\n <!-- Step 1: Upload File -->\r\n <div *ngSwitchCase=\"0\" class=\"p-4\">\r\n <!-- Download template link -->\r\n\r\n\r\n <!-- File upload -->\r\n <p-fileUpload\r\n name=\"excelFile\"\r\n mode=\"basic\"\r\n chooseIcon=\"pi pi-upload\"\r\n chooseLabel=\"{{ 'chooseFile' | translate }}\"\r\n (onSelect)=\"onFileUpload($event)\"\r\n [accept]=\"config.acceptedFileTypes || '.xls,.xlsx,.csv'\"\r\n [maxFileSize]=\"config.maxFileSize || 10000000\"\r\n [showUploadButton]=\"false\"\r\n [showCancelButton]=\"false\"\r\n >\r\n </p-fileUpload>\r\n\r\n <!-- Upload status -->\r\n <p *ngIf=\"uploadedFileName\" class=\"mt-2 text-green-600\">\r\n {{ uploadedFileName }}\r\n </p>\r\n <p *ngIf=\"uploadError\" class=\"mt-2 text-red-600\">\r\n {{ uploadError }}\r\n </p>\r\n </div>\r\n <p>\r\n <a\r\n [href]=\"env.apiUrl+config.templateUrl\"\r\n download\r\n class=\"text-blue-600 hover:underline flex items-center gap-1\"\r\n >\r\n <i class=\"pi pi-download\"></i>\r\n {{ 'downloadTemplate' | translate }}\r\n </a>\r\n </p>\r\n\r\n\r\n <!-- Step 2: Column Mapping -->\r\n <div *ngSwitchCase=\"1\" class=\"p-4\">\r\n <formly-form [form]=\"form\" [fields]=\"mappingFields\" [model]=\"model\"></formly-form>\r\n </div>\r\n\r\n <!-- Step 3: Review -->\r\n <div *ngSwitchCase=\"2\" class=\"p-4\">\r\n <p class=\"text-gray-700 mb-4\">\r\n {{ 'importReviewMessage' | translate }}\r\n </p>\r\n <div class=\"bg-gray-100 p-3 rounded\">\r\n <p><strong>{{ 'fileName' | translate }}:</strong> {{ uploadedFileName }}</p>\r\n <p><strong>{{ 'selectedMappings' | translate }}:</strong></p>\r\n <ul class=\"list-disc list-inside ml-4\">\r\n <li *ngFor=\"let field of mappingFields\">\r\n {{ field.props?.label }}: {{ getModelValue(field, model) }}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- Footer Buttons -->\r\n <div class=\"flex justify-between mt-6 pt-4 border-t\">\r\n <div>\r\n <button\r\n pButton\r\n type=\"button\"\r\n [label]=\"'back' | translate\"\r\n icon=\"pi pi-arrow-left\"\r\n (click)=\"prevStep()\"\r\n [disabled]=\"activeStep === 0 || loading\"\r\n class=\"p-button-text\"\r\n ></button>\r\n </div>\r\n\r\n <div class=\"flex gap-2\">\r\n <button\r\n pButton\r\n type=\"button\"\r\n [label]=\"'next' | translate\"\r\n icon=\"pi pi-arrow-right\"\r\n iconPos=\"right\"\r\n (click)=\"nextStep()\"\r\n *ngIf=\"activeStep < 2\"\r\n [disabled]=\"!canProceed() || loading\"\r\n ></button>\r\n\r\n <button\r\n pButton\r\n type=\"submit\"\r\n [label]=\"loading ? ('uploading' | translate) : ('save' | translate)\"\r\n icon=\"pi pi-check\"\r\n *ngIf=\"activeStep === 2\"\r\n [disabled]=\"loading\"\r\n [loading]=\"loading\"\r\n class=\"p-button-primary\"\r\n ></button>\r\n\r\n <button\r\n pButton\r\n type=\"button\"\r\n [label]=\"'cancel' | translate\"\r\n severity=\"secondary\"\r\n (click)=\"onCancel()\"\r\n [disabled]=\"loading\"\r\n ></button>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n `, isInline: true, 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: \"directive\", type: i2.NgSwitch, selector: \"[ngSwitch]\", inputs: [\"ngSwitch\"] }, { kind: \"directive\", type: i2.NgSwitchCase, selector: \"[ngSwitchCase]\", inputs: [\"ngSwitchCase\"] }, { kind: \"ngmodule\", type: ReactiveFormsModule }, { kind: \"directive\", type: i3.ɵNgNoValidate, selector: \"form:not([ngNoForm]):not([ngNativeValidate])\" }, { kind: \"directive\", type: i3.NgControlStatusGroup, selector: \"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]\" }, { kind: \"directive\", type: i3.FormGroupDirective, selector: \"[formGroup]\", inputs: [\"formGroup\"], outputs: [\"ngSubmit\"], exportAs: [\"ngForm\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"component\", type: FormlyForm, selector: \"formly-form\", inputs: [\"form\", \"model\", \"fields\", \"options\"], outputs: [\"modelChange\"] }, { kind: \"ngmodule\", type: TranslateModule }, { kind: \"ngmodule\", type: ButtonModule }, { kind: \"directive\", type: i4.ButtonDirective, selector: \"[pButton]\", inputs: [\"iconPos\", \"loadingIcon\", \"loading\", \"severity\", \"raised\", \"rounded\", \"text\", \"outlined\", \"size\", \"plain\", \"fluid\", \"label\", \"icon\", \"buttonProps\"] }, { kind: \"ngmodule\", type: FileUploadModule }, { kind: \"component\", type: i5.FileUpload, selector: \"p-fileupload, p-fileUpload\", inputs: [\"name\", \"url\", \"method\", \"multiple\", \"accept\", \"disabled\", \"auto\", \"withCredentials\", \"maxFileSize\", \"invalidFileSizeMessageSummary\", \"invalidFileSizeMessageDetail\", \"invalidFileTypeMessageSummary\", \"invalidFileTypeMessageDetail\", \"invalidFileLimitMessageDetail\", \"invalidFileLimitMessageSummary\", \"style\", \"styleClass\", \"previewWidth\", \"chooseLabel\", \"uploadLabel\", \"cancelLabel\", \"chooseIcon\", \"uploadIcon\", \"cancelIcon\", \"showUploadButton\", \"showCancelButton\", \"mode\", \"headers\", \"customUpload\", \"fileLimit\", \"uploadStyleClass\", \"cancelStyleClass\", \"removeStyleClass\", \"chooseStyleClass\", \"chooseButtonProps\", \"uploadButtonProps\", \"cancelButtonProps\", \"files\"], outputs: [\"onBeforeUpload\", \"onSend\", \"onUpload\", \"onError\", \"onClear\", \"onRemove\", \"onSelect\", \"onProgress\", \"uploadHandler\", \"onImageError\", \"onRemoveUploadedFile\"] }, { kind: \"ngmodule\", type: StepsModule }, { kind: \"component\", type: i6.Steps, selector: \"p-steps\", inputs: [\"activeIndex\", \"model\", \"readonly\", \"style\", \"styleClass\", \"exact\"], outputs: [\"activeIndexChange\"] }, { kind: \"ngmodule\", type: ToastModule }, { kind: \"component\", type: i7.Toast, selector: \"p-toast\", inputs: [\"key\", \"autoZIndex\", \"baseZIndex\", \"life\", \"styleClass\", \"position\", \"preventOpenDuplicates\", \"preventDuplicates\", \"showTransformOptions\", \"hideTransformOptions\", \"showTransitionOptions\", \"hideTransitionOptions\", \"breakpoints\"], outputs: [\"onClose\"] }, { kind: \"pipe\", type: i8.TranslatePipe, name: \"translate\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: ExcelImportComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'app-excel-import',\n standalone: true,\n providers: [MessageService],\n template: `\r\n <p-toast></p-toast>\r\n <div class=\"p-4 space-y-4\">\r\n <p-steps [model]=\"steps\" [(activeIndex)]=\"activeStep\" class=\"mb-4\"></p-steps>\r\n\r\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\">\r\n <ng-container [ngSwitch]=\"activeStep\">\r\n <!-- Step 1: Upload File -->\r\n <div *ngSwitchCase=\"0\" class=\"p-4\">\r\n <!-- Download template link -->\r\n\r\n\r\n <!-- File upload -->\r\n <p-fileUpload\r\n name=\"excelFile\"\r\n mode=\"basic\"\r\n chooseIcon=\"pi pi-upload\"\r\n chooseLabel=\"{{ 'chooseFile' | translate }}\"\r\n (onSelect)=\"onFileUpload($event)\"\r\n [accept]=\"config.acceptedFileTypes || '.xls,.xlsx,.csv'\"\r\n [maxFileSize]=\"config.maxFileSize || 10000000\"\r\n [showUploadButton]=\"false\"\r\n [showCancelButton]=\"false\"\r\n >\r\n </p-fileUpload>\r\n\r\n <!-- Upload status -->\r\n <p *ngIf=\"uploadedFileName\" class=\"mt-2 text-green-600\">\r\n {{ uploadedFileName }}\r\n </p>\r\n <p *ngIf=\"uploadError\" class=\"mt-2 text-red-600\">\r\n {{ uploadError }}\r\n </p>\r\n </div>\r\n <p>\r\n <a\r\n [href]=\"env.apiUrl+config.templateUrl\"\r\n download\r\n class=\"text-blue-600 hover:underline flex items-center gap-1\"\r\n >\r\n <i class=\"pi pi-download\"></i>\r\n {{ 'downloadTemplate' | translate }}\r\n </a>\r\n </p>\r\n\r\n\r\n <!-- Step 2: Column Mapping -->\r\n <div *ngSwitchCase=\"1\" class=\"p-4\">\r\n <formly-form [form]=\"form\" [fields]=\"mappingFields\" [model]=\"model\"></formly-form>\r\n </div>\r\n\r\n <!-- Step 3: Review -->\r\n <div *ngSwitchCase=\"2\" class=\"p-4\">\r\n <p class=\"text-gray-700 mb-4\">\r\n {{ 'importReviewMessage' | translate }}\r\n </p>\r\n <div class=\"bg-gray-100 p-3 rounded\">\r\n <p><strong>{{ 'fileName' | translate }}:</strong> {{ uploadedFileName }}</p>\r\n <p><strong>{{ 'selectedMappings' | translate }}:</strong></p>\r\n <ul class=\"list-disc list-inside ml-4\">\r\n <li *ngFor=\"let field of mappingFields\">\r\n {{ field.props?.label }}: {{ getModelValue(field, model) }}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- Footer Buttons -->\r\n <div class=\"flex justify-between mt-6 pt-4 border-t\">\r\n <div>\r\n <button\r\n pButton\r\n type=\"button\"\r\n [label]=\"'back' | translate\"\r\n icon=\"pi pi-arrow-left\"\r\n (click)=\"prevStep()\"\r\n [disabled]=\"activeStep === 0 || loading\"\r\n class=\"p-button-text\"\r\n ></button>\r\n </div>\r\n\r\n <div class=\"flex gap-2\">\r\n <button\r\n pButton\r\n type=\"button\"\r\n [label]=\"'next' | translate\"\r\n icon=\"pi pi-arrow-right\"\r\n iconPos=\"right\"\r\n (click)=\"nextStep()\"\r\n *ngIf=\"activeStep < 2\"\r\n [disabled]=\"!canProceed() || loading\"\r\n ></button>\r\n\r\n <button\r\n pButton\r\n type=\"submit\"\r\n [label]=\"loading ? ('uploading' | translate) : ('save' | translate)\"\r\n icon=\"pi pi-check\"\r\n *ngIf=\"activeStep === 2\"\r\n [disabled]=\"loading\"\r\n [loading]=\"loading\"\r\n class=\"p-button-primary\"\r\n ></button>\r\n\r\n <button\r\n pButton\r\n type=\"button\"\r\n [label]=\"'cancel' | translate\"\r\n severity=\"secondary\"\r\n (click)=\"onCancel()\"\r\n [disabled]=\"loading\"\r\n ></button>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n `,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n FormsModule,\n FormlyForm,\n TranslateModule,\n ButtonModule,\n FileUploadModule,\n StepsModule,\n ToastModule\n ],\n }]\n }], ctorParameters: () => [{ type: i1.DynamicDialogRef }, { type: i1.DynamicDialogConfig }], propDecorators: { config: [{\n type: Input\n }], importComplete: [{\n type: Output\n }], importError: [{\n type: Output\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjZWwtaW1wb3J0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy51aS5jb3JlL2V4Y2VsLWltcG9ydC9zcmMvbGliL2V4Y2VsLWltcG9ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQWEsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFhLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2hFLE9BQU8sRUFBcUIsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakUsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQW1CLE1BQU0sb0JBQW9CLENBQUM7QUFDdkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQVksTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7Ozs7O0FBa0o5RCxNQUFNLE9BQU8sb0JBQW9CO0lBMkJaO0lBQThCO0lBMUJ4QyxNQUFNLENBQXFCO0lBQzFCLGNBQWMsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO0lBQ3pDLFdBQVcsR0FBRyxJQUFJLFlBQVksRUFBUyxDQUFDO0lBRWxELElBQUksQ0FBWTtJQUNoQixLQUFLLEdBQVEsRUFBRSxDQUFDO0lBQ2hCLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDaEIsZ0JBQWdCLEdBQWtCLElBQUksQ0FBQztJQUN2QyxXQUFXLEdBQWtCLElBQUksQ0FBQztJQUNsQyxZQUFZLEdBQWEsRUFBRSxDQUFDO0lBQ3BCLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBQy9CLFdBQVcsR0FBZ0IsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9DLGNBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDeEMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDNUMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMxQixHQUFHLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRWpDLEtBQUssR0FBRztRQUNOLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBRSxPQUFPLENBQUMsWUFBWSxDQUFDLEVBQUU7UUFDdkQsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFFLE9BQU8sQ0FBQyxlQUFlLENBQUMsRUFBRTtRQUMxRCxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO0tBQ3BELENBQUM7SUFFRixVQUFVLEdBQUcsQ0FBQyxDQUFDO0lBQ2YsYUFBYSxHQUF3QixFQUFFLENBQUM7SUFFeEMsWUFBbUIsR0FBcUIsRUFBUyxZQUFpQztRQUEvRCxRQUFHLEdBQUgsR0FBRyxDQUFrQjtRQUFTLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUNoRixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRTlCLDRDQUE0QztRQUM1QyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzlDLENBQUM7SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1FBQ25ELENBQUM7UUFFRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDM0QsR0FBRyxLQUFLO1lBQ1IsS0FBSyxFQUFFO2dCQUNMLEdBQUcsS0FBSyxDQUFDLEtBQUs7Z0JBQ2QsT0FBTyxFQUFFLEVBQUU7YUFDWjtTQUNGLENBQUMsQ0FBQyxDQUFDO1FBRUosSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQy9DLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUM7WUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDN0MsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQztZQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRUQsVUFBVTtRQUNSLFFBQVEsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3hCLEtBQUssQ0FBQztnQkFDSixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7WUFDakMsS0FBSyxDQUFDO2dCQUNKLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDekIsS0FBSyxDQUFDO2dCQUNKLE9BQU8sSUFBSSxDQUFDO1lBQ2Q7Z0JBQ0UsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQztJQUNILENBQUM7SUFDRCxhQUFhLENBQUMsS0FBd0IsRUFBRSxLQUFVO1FBQ2xELElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBRTVCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM3QixzREFBc0Q7WUFDdEQsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3pFLENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVDLDhDQUE4QztJQUN4QyxXQUFXLEdBQWdDLElBQUksQ0FBQztJQUV4RCwyREFBMkQ7SUFDM0QsWUFBWSxDQUFDLEtBQVU7UUFDckIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDeEIsTUFBTSxJQUFJLEdBQVMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVsQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDVixJQUFJLENBQUMsV0FBVyxHQUFHLGdCQUFnQixDQUFDO1lBQ3BDLE9BQU87UUFDVCxDQUFDO1FBRUQscUJBQXFCO1FBQ3JCLE1BQU0sZUFBZSxHQUFHLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNsRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRXBGLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7WUFDN0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxpQkFBaUIsQ0FBQztZQUNyQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVCLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFFbEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUVoQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBNEIsRUFBRSxFQUFFO1lBQy9DLElBQUksQ0FBQztnQkFDSCxNQUFNLFdBQVcsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLE1BQXFCLENBQUM7Z0JBQ3BELElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDLENBQUMseUJBQXlCO2dCQUN6RCxNQUFNLElBQUksR0FBRyxJQUFJLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFFekMsTUFBTSxRQUFRLEdBQWEsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO2dCQUV6RCxJQUFJLFFBQVEsQ0FBQyxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO29CQUNyQyxJQUFJLENBQUMsV0FBVyxHQUFHLGVBQWUsQ0FBQztvQkFDbkMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDNUIsT0FBTztnQkFDVCxDQUFDO2dCQUVELE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3pDLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBRTdDLE1BQU0sSUFBSSxHQUFZLEtBQUssQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBRXBFLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDdEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxhQUFhLENBQUM7b0JBQ2pDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQzVCLE9BQU87Z0JBQ1QsQ0FBQztnQkFFRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQWEsQ0FBQztnQkFFeEMsNENBQTRDO2dCQUM1QyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtvQkFDakMsSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7d0JBQ2hCLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQzs0QkFDaEQsS0FBSyxFQUFFLENBQUM7NEJBQ1IsS0FBSyxFQUFFLENBQUM7eUJBQ1QsQ0FBQyxDQUFDLENBQUM7b0JBQ04sQ0FBQztnQkFDSCxDQUFDLENBQUMsQ0FBQztnQkFFSCxpREFBaUQ7Z0JBQ2pELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUV4QixDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDZixPQUFPLENBQUMsS0FBSyxDQUFDLDhCQUE4QixFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUNyRCxJQUFJLENBQUMsV0FBVyxHQUFHLHFCQUFxQixDQUFDO2dCQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzlCLENBQUM7UUFDSCxDQUFDLENBQUM7UUFFRixNQUFNLENBQUMsT0FBTyxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDekIsT0FBTyxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUM1QyxJQUFJLENBQUMsV0FBVyxHQUFHLGVBQWUsQ0FBQztZQUNuQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlCLENBQUMsQ0FBQztRQUVGLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsbURBQW1EO0lBQzNDLG1CQUFtQixDQUFDLE1BQW1CO1FBQzdDLE1BQU0sS0FBSyxHQUFHLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JDLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNoQixNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDO1FBRTdCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUM3QixNQUFNLElBQUksTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCx3Q0FBd0M7SUFDaEMsZ0JBQWdCLENBQUMsUUFBZ0I7UUFDdkMsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4QyxPQUFPLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ25ELENBQUM7SUFFRCwwQkFBMEI7SUFDMUIsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckUsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBRTdCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDO29CQUN0QixRQUFRLEVBQUUsT0FBTztvQkFDakIsT0FBTyxFQUFFLE9BQU87b0JBQ2hCLE1BQU0sRUFBRSx3REFBd0Q7aUJBQ2pFLENBQUMsQ0FBQztZQUNMLENBQUM7WUFFRCxPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBRXBCLGlDQUFpQztRQUNqQyxJQUFJLFVBQWtCLENBQUM7UUFFdkIsSUFBSSxDQUFDO1lBQ0gsSUFBSSxJQUFJLENBQUMsV0FBVyxZQUFZLFdBQVcsRUFBRSxDQUFDO2dCQUM1QyxVQUFVLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUMxRCxDQUFDO2lCQUFNLElBQUksT0FBTyxJQUFJLENBQUMsV0FBVyxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUNoRCxxREFBcUQ7Z0JBQ3JELFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1lBQ2hDLENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUM7WUFDbkQsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDckIsT0FBTyxDQUFDLEtBQUssQ0FBQyxrQ0FBa0MsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN6RCxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQztnQkFDdEIsUUFBUSxFQUFFLE9BQU87Z0JBQ2pCLE9BQU8sRUFBRSxPQUFPO2dCQUNoQixNQUFNLEVBQUUsZ0NBQWdDO2FBQ3pDLENBQUMsQ0FBQztZQUNILE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxXQUFXLEdBQUc7WUFDbEIsUUFBUSxFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDL0IsYUFBYSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7WUFDM0QsV0FBVyxFQUFFLFVBQVU7WUFDdkIsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSztZQUN6QixPQUFPLEVBQUUsSUFBSSxDQUFDLFlBQVk7WUFDMUIsUUFBUSxFQUFFLElBQUksQ0FBQyxXQUFXLFlBQVksV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNwRixDQUFDO1FBRUYsSUFBSSxDQUFDLFdBQVc7YUFDYixPQUFPLENBQ047WUFDRSxNQUFNLEVBQUUsTUFBTTtZQUNkLEdBQUcsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07WUFDdkIsSUFBSSxFQUFFLFdBQVc7WUFDakIsT0FBTyxFQUFFO2dCQUNQLGNBQWMsRUFBRSxrQkFBa0I7YUFDbkM7U0FDRixFQUNELEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQ2pDO2FBQ0EsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDOUIsU0FBUyxDQUFDO1lBQ1QsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO2dCQUNyQixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQztvQkFDdEIsUUFBUSxFQUFFLFNBQVM7b0JBQ25CLE9BQU8sRUFBRSxTQUFTO29CQUNsQixNQUFNLEVBQUUsNEJBQTRCO2lCQUNyQyxDQUFDLENBQUM7Z0JBQ0gsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzNCLENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDYixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztnQkFDckIsT0FBTyxDQUFDLEtBQUssQ0FBQyxlQUFlLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQ3BDLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDO29CQUN0QixRQUFRLEVBQUUsT0FBTztvQkFDakIsT0FBTyxFQUFFLE9BQU87b0JBQ2hCLE1BQU0sRUFBRSx1QkFBdUI7aUJBQ2hDLENBQUMsQ0FBQztnQkFDSCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM3QixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELG9EQUFvRDtJQUM1QyxlQUFlLENBQUMsS0FBVTtRQUNoQyxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUMvRCxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3hCLENBQUM7UUFDRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1FBQzdCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO0lBQzFCLENBQUM7SUFFUyxjQUFjO1FBQ3BCLE1BQU0sVUFBVSxHQUFRLEVBQUUsQ0FBQztRQUUzQixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNqQyxJQUFJLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDZCxpREFBaUQ7Z0JBQ2pELFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFdEYsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBTUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7dUdBcFRVLG9CQUFvQjsyRkFBcEIsb0JBQW9CLHdLQW5JckIsQ0FBQyxjQUFjLENBQUMsMEJBQ2hCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxSFQsMkRBRUMsWUFBWSwyYkFDWixtQkFBbUIsb2JBQ25CLFdBQVcsK0JBQ1gsVUFBVSxpSUFDVixlQUFlLDhCQUNmLFlBQVksb1FBQ1osZ0JBQWdCLDQ3QkFDaEIsV0FBVyx3TUFDWCxXQUFXOzsyRkFHRixvQkFBb0I7a0JBdEloQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUMsQ0FBQyxjQUFjLENBQUM7b0JBQzFCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUhUO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsV0FBVzt3QkFDWCxVQUFVO3dCQUNWLGVBQWU7d0JBQ2YsWUFBWTt3QkFDWixnQkFBZ0I7d0JBQ2hCLFdBQVc7d0JBQ1gsV0FBVztxQkFDWjtpQkFDRjt1SEFFVSxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0ksY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIE9uRGVzdHJveSwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIEZvcm1CdWlsZGVyLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBSZXN0U2VydmljZSB9IGZyb20gJ0BlbGl0ZS5mcmFtZXdvcmsvbmcuY29yZS9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IEZvcm1seUZpZWxkQ29uZmlnLCBGb3JtbHlGb3JtIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2J1dHRvbic7XHJcbmltcG9ydCB7IER5bmFtaWNEaWFsb2dDb25maWcsIER5bmFtaWNEaWFsb2dSZWYgfSBmcm9tICdwcmltZW5nL2R5bmFtaWNkaWFsb2cnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRmlsZVVwbG9hZE1vZHVsZSwgRmlsZVVwbG9hZEV2ZW50IH0gZnJvbSAncHJpbWVuZy9maWxldXBsb2FkJztcclxuaW1wb3J0IHsgU3RlcHNNb2R1bGUgfSBmcm9tICdwcmltZW5nL3N0ZXBzJztcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IFRvYXN0TW9kdWxlIH0gZnJvbSAncHJpbWVuZy90b2FzdCc7XHJcbmltcG9ydCB7IHJlYWQsIHV0aWxzLCBXb3JrQm9vayB9IGZyb20gJ3hsc3gnO1xyXG5pbXBvcnQgeyBFTlZJUk9OTUVOVCB9IGZyb20gJ0BlbGl0ZS5mcmFtZXdvcmsvbmcuY29yZS90b2tlbnMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBFeGNlbEltcG9ydENvbmZpZyB7XHJcbiAgdGVtcGxhdGVVcmw6IHN0cmluZztcclxuICBhcGlVcmw6IHN0cmluZztcclxuICBhcGlOYW1lOiBzdHJpbmc7XHJcbiAgbWFwcGluZ0ZpZWxkczogRm9ybWx5RmllbGRDb25maWdbXTtcclxuICBhY2NlcHRlZEZpbGVUeXBlcz86IHN0cmluZztcclxuICBtYXhGaWxlU2l6ZT86IG51bWJlcjtcclxuICBzdGVwcz86IHsgbGFiZWw6IHN0cmluZyB9W107XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWV4Y2VsLWltcG9ydCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBwcm92aWRlcnM6W01lc3NhZ2VTZXJ2aWNlXSxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPHAtdG9hc3Q+PC9wLXRvYXN0PlxyXG4gICAgPGRpdiBjbGFzcz1cInAtNCBzcGFjZS15LTRcIj5cclxuICAgICAgPHAtc3RlcHMgW21vZGVsXT1cInN0ZXBzXCIgWyhhY3RpdmVJbmRleCldPVwiYWN0aXZlU3RlcFwiIGNsYXNzPVwibWItNFwiPjwvcC1zdGVwcz5cclxuXHJcbiAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIChuZ1N1Ym1pdCk9XCJvblN1Ym1pdCgpXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiYWN0aXZlU3RlcFwiPlxyXG4gICAgICAgICAgPCEtLSBTdGVwIDE6IFVwbG9hZCBGaWxlIC0tPlxyXG4gICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIjBcIiBjbGFzcz1cInAtNFwiPlxyXG4gICAgICAgICAgPCEtLSBEb3dubG9hZCB0ZW1wbGF0ZSBsaW5rIC0tPlxyXG5cclxuXHJcbiAgICAgICAgICA8IS0tIEZpbGUgdXBsb2FkIC0tPlxyXG4gICAgICAgICAgPHAtZmlsZVVwbG9hZFxyXG4gICAgICAgICAgICBuYW1lPVwiZXhjZWxGaWxlXCJcclxuICAgICAgICAgICAgbW9kZT1cImJhc2ljXCJcclxuICAgICAgICAgICAgY2hvb3NlSWNvbj1cInBpIHBpLXVwbG9hZFwiXHJcbiAgICAgICAgICAgIGNob29zZUxhYmVsPVwie3sgJ2Nob29zZUZpbGUnIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgICAgICAgKG9uU2VsZWN0KT1cIm9uRmlsZVVwbG9hZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgW2FjY2VwdF09XCJjb25maWcuYWNjZXB0ZWRGaWxlVHlwZXMgfHwgJy54bHMsLnhsc3gsLmNzdidcIlxyXG4gICAgICAgICAgICBbbWF4RmlsZVNpemVdPVwiY29uZmlnLm1heEZpbGVTaXplIHx8IDEwMDAwMDAwXCJcclxuICAgICAgICAgICAgW3Nob3dVcGxvYWRCdXR0b25dPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICBbc2hvd0NhbmNlbEJ1dHRvbl09XCJmYWxzZVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICA8L3AtZmlsZVVwbG9hZD5cclxuXHJcbiAgICAgICAgICA8IS0tIFVwbG9hZCBzdGF0dXMgLS0+XHJcbiAgICAgICAgICA8cCAqbmdJZj1cInVwbG9hZGVkRmlsZU5hbWVcIiBjbGFzcz1cIm10LTIgdGV4dC1ncmVlbi02MDBcIj5cclxuICAgICAgICAgICAge3sgdXBsb2FkZWRGaWxlTmFtZSB9fVxyXG4gICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgPHAgKm5nSWY9XCJ1cGxvYWRFcnJvclwiIGNsYXNzPVwibXQtMiB0ZXh0LXJlZC02MDBcIj5cclxuICAgICAgICAgICAge3sgdXBsb2FkRXJyb3IgfX1cclxuICAgICAgICAgIDwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8cD5cclxuICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICBbaHJlZl09XCJlbnYuYXBpVXJsK2NvbmZpZy50ZW1wbGF0ZVVybFwiXHJcbiAgICAgICAgICAgICAgZG93bmxvYWRcclxuICAgICAgICAgICAgICBjbGFzcz1cInRleHQtYmx1ZS02MDAgaG92ZXI6dW5kZXJsaW5lIGZsZXggaXRlbXMtY2VudGVyIGdhcC0xXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktZG93bmxvYWRcIj48L2k+XHJcbiAgICAgICAgICAgICAge3sgJ2Rvd25sb2FkVGVtcGxhdGUnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgIDwvcD5cclxuXHJcblxyXG4gICAgICAgICAgPCEtLSBTdGVwIDI6IENvbHVtbiBNYXBwaW5nIC0tPlxyXG4gICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiMVwiIGNsYXNzPVwicC00XCI+XHJcbiAgICAgICAgICAgIDxmb3JtbHktZm9ybSBbZm9ybV09XCJmb3JtXCIgW2ZpZWxkc109XCJtYXBwaW5nRmllbGRzXCIgW21vZGVsXT1cIm1vZGVsXCI+PC9mb3JtbHktZm9ybT5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDwhLS0gU3RlcCAzOiBSZXZpZXcgLS0+XHJcbiAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCIyXCIgY2xhc3M9XCJwLTRcIj5cclxuICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LWdyYXktNzAwIG1iLTRcIj5cclxuICAgICAgICAgICAgICB7eyAnaW1wb3J0UmV2aWV3TWVzc2FnZScgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmctZ3JheS0xMDAgcC0zIHJvdW5kZWRcIj5cclxuICAgICAgICAgICAgICA8cD48c3Ryb25nPnt7ICdmaWxlTmFtZScgfCB0cmFuc2xhdGUgfX06PC9zdHJvbmc+IHt7IHVwbG9hZGVkRmlsZU5hbWUgfX08L3A+XHJcbiAgICAgICAgICAgICAgPHA+PHN0cm9uZz57eyAnc2VsZWN0ZWRNYXBwaW5ncycgfCB0cmFuc2xhdGUgfX06PC9zdHJvbmc+PC9wPlxyXG4gICAgICAgICAgICAgIDx1bCBjbGFzcz1cImxpc3QtZGlzYyBsaXN0LWluc2lkZSBtbC00XCI+XHJcbiAgICAgICAgICAgICAgICA8bGkgKm5nRm9yPVwibGV0IGZpZWxkIG9mIG1hcHBpbmdGaWVsZHNcIj5cclxuICAgICAgICAgICAgICAgICAge3sgZmllbGQucHJvcHM/LmxhYmVsIH19OiB7eyBnZXRNb2RlbFZhbHVlKGZpZWxkLCBtb2RlbCkgfX1cclxuICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPCEtLSBGb290ZXIgQnV0dG9ucyAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gbXQtNiBwdC00IGJvcmRlci10XCI+XHJcbiAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgcEJ1dHRvblxyXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgIFtsYWJlbF09XCInYmFjaycgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgIGljb249XCJwaSBwaS1hcnJvdy1sZWZ0XCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwicHJldlN0ZXAoKVwiXHJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImFjdGl2ZVN0ZXAgPT09IDAgfHwgbG9hZGluZ1wiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi10ZXh0XCJcclxuICAgICAgICAgICAgPjwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZ2FwLTJcIj5cclxuICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgIHBCdXR0b25cclxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICBbbGFiZWxdPVwiJ25leHQnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICBpY29uPVwicGkgcGktYXJyb3ctcmlnaHRcIlxyXG4gICAgICAgICAgICAgIGljb25Qb3M9XCJyaWdodFwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm5leHRTdGVwKClcIlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiYWN0aXZlU3RlcCA8IDJcIlxyXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhY2FuUHJvY2VlZCgpIHx8IGxvYWRpbmdcIlxyXG4gICAgICAgICAgICA+PC9idXR0b24+XHJcblxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgcEJ1dHRvblxyXG4gICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxyXG4gICAgICAgICAgICAgIFtsYWJlbF09XCJsb2FkaW5nID8gKCd1cGxvYWRpbmcnIHwgdHJhbnNsYXRlKSA6ICgnc2F2ZScgfCB0cmFuc2xhdGUpXCJcclxuICAgICAgICAgICAgICBpY29uPVwicGkgcGktY2hlY2tcIlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiYWN0aXZlU3RlcCA9PT0gMlwiXHJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImxvYWRpbmdcIlxyXG4gICAgICAgICAgICAgIFtsb2FkaW5nXT1cImxvYWRpbmdcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwicC1idXR0b24tcHJpbWFyeVwiXHJcbiAgICAgICAgICAgID48L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICBwQnV0dG9uXHJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgW2xhYmVsXT1cIidjYW5jZWwnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICBzZXZlcml0eT1cInNlY29uZGFyeVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2FuY2VsKClcIlxyXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJsb2FkaW5nXCJcclxuICAgICAgICAgICAgPjwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZm9ybT5cclxuICAgIDwvZGl2PlxyXG4gIGAsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgRm9ybWx5Rm9ybSxcclxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcclxuICAgIEJ1dHRvbk1vZHVsZSxcclxuICAgIEZpbGVVcGxvYWRNb2R1bGUsXHJcbiAgICBTdGVwc01vZHVsZSxcclxuICAgIFRvYXN0TW9kdWxlXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEV4Y2VsSW1wb3J0Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBASW5wdXQoKSBjb25maWchOiBFeGNlbEltcG9ydENvbmZpZztcclxuICBAT3V0cHV0KCkgaW1wb3J0Q29tcGxldGUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgaW1wb3J0RXJyb3IgPSBuZXcgRXZlbnRFbWl0dGVyPEVycm9yPigpO1xyXG5cclxuICBmb3JtOiBGb3JtR3JvdXA7XHJcbiAgbW9kZWw6IGFueSA9IHt9O1xyXG4gIGxvYWRpbmcgPSBmYWxzZTtcclxuICB1cGxvYWRlZEZpbGVOYW1lOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICB1cGxvYWRFcnJvcjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgZXhjZWxIZWFkZXJzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHByaXZhdGUgcmVzdFNlcnZpY2U6IFJlc3RTZXJ2aWNlID0gaW5qZWN0KFJlc3RTZXJ2aWNlKTtcclxuICBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlID0gaW5qZWN0KE1lc3NhZ2VTZXJ2aWNlKTtcclxuICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2UgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XHJcbiAgcHJpdmF0ZSBmYiA9IGluamVjdChGb3JtQnVpbGRlcik7XHJcbiAgcHVibGljIGVudiA9IGluamVjdChFTlZJUk9OTUVOVCk7XHJcblxyXG4gIHN0ZXBzID0gW1xyXG4gICAgeyBsYWJlbDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlIC5pbnN0YW50KCd1cGxvYWRGaWxlJykgfSxcclxuICAgIHsgbGFiZWw6IHRoaXMudHJhbnNsYXRlU2VydmljZSAuaW5zdGFudCgnY29sdW1uTWFwcGluZycpIH0sXHJcbiAgICB7IGxhYmVsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UgLmluc3RhbnQoJ3JldmlldycpIH0sXHJcbiAgXTtcclxuXHJcbiAgYWN0aXZlU3RlcCA9IDA7XHJcbiAgbWFwcGluZ0ZpZWxkczogRm9ybWx5RmllbGRDb25maWdbXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVmOiBEeW5hbWljRGlhbG9nUmVmLCBwdWJsaWMgZGlhbG9nQ29uZmlnOiBEeW5hbWljRGlhbG9nQ29uZmlnKSB7XHJcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHt9KTtcclxuXHJcbiAgICAvLyBJbml0aWFsaXplIGZyb20gZGlhbG9nIGNvbmZpZyBpZiBwcm92aWRlZFxyXG4gICAgaWYgKHRoaXMuZGlhbG9nQ29uZmlnPy5kYXRhPy5jb25maWcpIHtcclxuICAgICAgdGhpcy5jb25maWcgPSB0aGlzLmRpYWxvZ0NvbmZpZy5kYXRhLmNvbmZpZztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKCF0aGlzLmNvbmZpZykge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4Y2VsSW1wb3J0Q29uZmlnIGlzIHJlcXVpcmVkJyk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5tYXBwaW5nRmllbGRzID0gdGhpcy5jb25maWcubWFwcGluZ0ZpZWxkcy5tYXAoZmllbGQgPT4gKHtcclxuICAgICAgLi4uZmllbGQsXHJcbiAgICAgIHByb3BzOiB7XHJcbiAgICAgICAgLi4uZmllbGQucHJvcHMsXHJcbiAgICAgICAgb3B0aW9uczogW11cclxuICAgICAgfVxyXG4gICAgfSkpO1xyXG5cclxuICAgIHRoaXMuc3RlcHMgPSB0aGlzLmNvbmZpZy5zdGVwcyB8fCB0aGlzLnN0ZXBzO1xyXG4gIH1cclxuXHJcbiAgbmV4dFN0ZXAoKSB7XHJcbiAgICBpZiAodGhpcy5hY3RpdmVTdGVwIDwgMikgdGhpcy5hY3RpdmVTdGVwKys7XHJcbiAgfVxyXG5cclxuICBwcmV2U3RlcCgpIHtcclxuICAgIGlmICh0aGlzLmFjdGl2ZVN0ZXAgPiAwKSB0aGlzLmFjdGl2ZVN0ZXAtLTtcclxuICB9XHJcblxyXG4gIGNhblByb2NlZWQoKTogYm9vbGVhbiB7XHJcbiAgICBzd2l0Y2ggKHRoaXMuYWN0aXZlU3RlcCkge1xyXG4gICAgICBjYXNlIDA6XHJcbiAgICAgICAgcmV0dXJuICEhdGhpcy51cGxvYWRlZEZpbGVOYW1lO1xyXG4gICAgICBjYXNlIDE6XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybS52YWxpZDtcclxuICAgICAgY2FzZSAyOlxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0TW9kZWxWYWx1ZShmaWVsZDogRm9ybWx5RmllbGRDb25maWcsIG1vZGVsOiBhbnkpOiBhbnkge1xyXG4gIGlmICghZmllbGQua2V5KSByZXR1cm4gbnVsbDtcclxuXHJcbiAgaWYgKEFycmF5LmlzQXJyYXkoZmllbGQua2V5KSkge1xyXG4gICAgLy8gV2FsayB0aHJvdWdoIG5lc3RlZCBrZXlzIGxpa2UgWydhZGRyZXNzJywgJ3N0cmVldCddXHJcbiAgICByZXR1cm4gZmllbGQua2V5LnJlZHVjZSgoYWNjLCBrKSA9PiAoYWNjID8gYWNjW2tdIDogdW5kZWZpbmVkKSwgbW9kZWwpO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIG1vZGVsW2ZpZWxkLmtleV07XHJcbn1cclxuXHJcbiAgLy8gQWRkIHRoaXMgcHJvcGVydHkgdG8gc3RvcmUgdGhlIGZpbGUgY29udGVudFxyXG5wcml2YXRlIGZpbGVDb250ZW50OiBzdHJpbmcgfCBBcnJheUJ1ZmZlciB8IG51bGwgPSBudWxsO1xyXG5cclxuLy8gVXBkYXRlIHRoZSBvbkZpbGVVcGxvYWQgbWV0aG9kIHRvIHN0b3JlIHRoZSBmaWxlIGNvbnRlbnRcclxub25GaWxlVXBsb2FkKGV2ZW50OiBhbnkpIHtcclxuICB0aGlzLnVwbG9hZEVycm9yID0gbnVsbDtcclxuICBjb25zdCBmaWxlOiBGaWxlID0gZXZlbnQuZmlsZXNbMF07XHJcblxyXG4gIGlmICghZmlsZSkge1xyXG4gICAgdGhpcy51cGxvYWRFcnJvciA9ICdub0ZpbGVTZWxlY3RlZCc7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICAvLyBWYWxpZGF0ZSBmaWxlIHR5cGVcclxuICBjb25zdCB2YWxpZEV4dGVuc2lvbnMgPSBbJy54bHN4JywgJy54bHMnLCAnLmNzdiddO1xyXG4gIGNvbnN0IGZpbGVFeHRlbnNpb24gPSBmaWxlLm5hbWUudG9Mb3dlckNhc2UoKS5zdWJzdHJpbmcoZmlsZS5uYW1lLmxhc3RJbmRleE9mKCcuJykpO1xyXG5cclxuICBpZiAoIXZhbGlkRXh0ZW5zaW9ucy5pbmNsdWRlcyhmaWxlRXh0ZW5zaW9uKSkge1xyXG4gICAgdGhpcy51cGxvYWRFcnJvciA9ICdpbnZhbGlkRmlsZVR5cGUnO1xyXG4gICAgdGhpcy5jbGVhckZpbGVVcGxvYWQoZXZlbnQpO1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgdGhpcy51cGxvYWRlZEZpbGVOYW1lID0gZmlsZS5uYW1lO1xyXG5cclxuICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG5cclxuICByZWFkZXIub25sb2FkID0gKGU6IFByb2dyZXNzRXZlbnQ8RmlsZVJlYWRlcj4pID0+IHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IGFycmF5QnVmZmVyID0gZS50YXJnZXQ/LnJlc3VsdCBhcyBBcnJheUJ1ZmZlcjtcclxuICAgICAgdGhpcy5maWxlQ29udGVudCA9IGFycmF5QnVmZmVyOyAvLyBTdG9yZSB0aGUgZmlsZSBjb250ZW50XHJcbiAgICAgIGNvbnN0IGRhdGEgPSBuZXcgVWludDhBcnJheShhcnJheUJ1ZmZlcik7XHJcblxyXG4gICAgICBjb25zdCB3b3JrYm9vazogV29ya0Jvb2sgPSByZWFkKGRhdGEsIHsgdHlwZTogJ2FycmF5JyB9KTtcclxuXHJcbiAgICAgIGlmICh3b3JrYm9vay5TaGVldE5hbWVzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIHRoaXMudXBsb2FkRXJyb3IgPSAnbm9TaGVldHNGb3VuZCc7XHJcbiAgICAgICAgdGhpcy5jbGVhckZpbGVVcGxvYWQoZXZlbnQpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3Qgc2hlZXROYW1lID0gd29ya2Jvb2suU2hlZXROYW1lc1swXTtcclxuICAgICAgY29uc3Qgd29ya3NoZWV0ID0gd29ya2Jvb2suU2hlZXRzW3NoZWV0TmFtZV07XHJcblxyXG4gICAgICBjb25zdCByb3dzOiBhbnlbXVtdID0gdXRpbHMuc2hlZXRfdG9fanNvbih3b3Jrc2hlZXQsIHsgaGVhZGVyOiAxIH0pO1xyXG5cclxuICAgICAgaWYgKHJvd3MubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgdGhpcy51cGxvYWRFcnJvciA9ICdub0RhdGFGb3VuZCc7XHJcbiAgICAgICAgdGhpcy5jbGVhckZpbGVVcGxvYWQoZXZlbnQpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5leGNlbEhlYWRlcnMgPSByb3dzWzBdIGFzIHN0cmluZ1tdO1xyXG5cclxuICAgICAgLy8gVXBkYXRlIG1hcHBpbmcgZmllbGRzIHdpdGggaGVhZGVyIG9wdGlvbnNcclxuICAgICAgdGhpcy5tYXBwaW5nRmllbGRzLmZvckVhY2goZmllbGQgPT4ge1xyXG4gICAgICAgIGlmIChmaWVsZC5wcm9wcykge1xyXG4gICAgICAgICAgZmllbGQucHJvcHMub3B0aW9ucyA9IHRoaXMuZXhjZWxIZWFkZXJzLm1hcChoID0+ICh7XHJcbiAgICAgICAgICAgIHZhbHVlOiBoLFxyXG4gICAgICAgICAgICBsYWJlbDogaCxcclxuICAgICAgICAgIH0pKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgLy8gSW5pdGlhbGl6ZSBmb3JtIHdpdGggZGVmYXVsdCB2YWx1ZXMgaWYgbm90IHNldFxyXG4gICAgICB0aGlzLmluaXRpYWxpemVGb3JtKCk7XHJcblxyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgcHJvY2Vzc2luZyBFeGNlbCBmaWxlOicsIGVycm9yKTtcclxuICAgICAgdGhpcy51cGxvYWRFcnJvciA9ICdmaWxlUHJvY2Vzc2luZ0Vycm9yJztcclxuICAgICAgdGhpcy5jbGVhckZpbGVVcGxvYWQoZXZlbnQpO1xyXG4gICAgfVxyXG4gIH07XHJcblxyXG4gIHJlYWRlci5vbmVycm9yID0gKGVycm9yKSA9PiB7XHJcbiAgICBjb25zb2xlLmVycm9yKCdGaWxlIHJlYWRpbmcgZXJyb3I6JywgZXJyb3IpO1xyXG4gICAgdGhpcy51cGxvYWRFcnJvciA9ICdmaWxlUmVhZEVycm9yJztcclxuICAgIHRoaXMuY2xlYXJGaWxlVXBsb2FkKGV2ZW50KTtcclxuICB9O1xyXG5cclxuICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoZmlsZSk7XHJcbn1cclxuXHJcbi8vIEFkZCB0aGlzIG1ldGhvZCB0byBjb252ZXJ0IEFycmF5QnVmZmVyIHRvIGJhc2U2NFxyXG5wcml2YXRlIGFycmF5QnVmZmVyVG9CYXNlNjQoYnVmZmVyOiBBcnJheUJ1ZmZlcik6IHN0cmluZyB7XHJcbiAgY29uc3QgYnl0ZXMgPSBuZXcgVWludDhBcnJheShidWZmZXIpO1xyXG4gIGxldCBiaW5hcnkgPSAnJztcclxuICBjb25zdCBsZW4gPSBieXRlcy5ieXRlTGVuZ3RoO1xyXG5cclxuICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XHJcbiAgICBiaW5hcnkgKz0gU3RyaW5nLmZyb21DaGFyQ29kZShieXRlc1tpXSk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gd2luZG93LmJ0b2EoYmluYXJ5KTtcclxufVxyXG5cclxuLy8gQWRkIHRoaXMgbWV0aG9kIHRvIGdldCBmaWxlIGV4dGVuc2lvblxyXG5wcml2YXRlIGdldEZpbGVFeHRlbnNpb24oZmlsZW5hbWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgY29uc3QgaW5kZXggPSBmaWxlbmFtZS5sYXN0SW5kZXhPZignLicpO1xyXG4gIHJldHVybiBpbmRleCAhPT0gLTEgPyBmaWxlbmFtZS5zbGljZShpbmRleCkgOiAnJztcclxufVxyXG5cclxuLy8gVXBkYXRlZCBvblN1Ym1pdCBtZXRob2Rcclxub25TdWJtaXQoKSB7XHJcbiAgaWYgKHRoaXMuZm9ybS5pbnZhbGlkIHx8ICF0aGlzLnVwbG9hZGVkRmlsZU5hbWUgfHwgIXRoaXMuZmlsZUNvbnRlbnQpIHtcclxuICAgIHRoaXMuZm9ybS5tYXJrQWxsQXNUb3VjaGVkKCk7XHJcblxyXG4gICAgaWYgKCF0aGlzLmZpbGVDb250ZW50KSB7XHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtcclxuICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcclxuICAgICAgICBzdW1tYXJ5OiAnRXJyb3InLFxyXG4gICAgICAgIGRldGFpbDogJ0ZpbGUgY29udGVudCBpcyBtaXNzaW5nLiBQbGVhc2UgdXBsb2FkIHRoZSBmaWxlIGFnYWluLidcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuXHJcbiAgLy8gQ29udmVydCBmaWxlIGNvbnRlbnQgdG8gYmFzZTY0XHJcbiAgbGV0IGZpbGVCYXNlNjQ6IHN0cmluZztcclxuXHJcbiAgdHJ5IHtcclxuICAgIGlmICh0aGlzLmZpbGVDb250ZW50IGluc3RhbmNlb2YgQXJyYXlCdWZmZXIpIHtcclxuICAgICAgZmlsZUJhc2U2NCA9IHRoaXMuYXJyYXlCdWZmZXJUb0Jhc2U2NCh0aGlzLmZpbGVDb250ZW50KTtcclxuICAgIH0gZWxzZSBpZiAodHlwZW9mIHRoaXMuZmlsZUNvbnRlbnQgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgIC8vIElmIGl0J3MgYWxyZWFkeSBhIHN0cmluZyAoYmFzZTY0KSwgdXNlIGl0IGRpcmVjdGx5XHJcbiAgICAgIGZpbGVCYXNlNjQgPSB0aGlzLmZpbGVDb250ZW50O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbnN1cHBvcnRlZCBmaWxlIGNvbnRlbnQgdHlwZScpO1xyXG4gICAgfVxyXG4gIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGNvbnZlcnRpbmcgZmlsZSB0byBiYXNlNjQ6JywgZXJyb3IpO1xyXG4gICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoe1xyXG4gICAgICBzZXZlcml0eTogJ2Vycm9yJyxcclxuICAgICAgc3VtbWFyeTogJ0Vycm9yJyxcclxuICAgICAgZGV0YWlsOiAnRmFpbGVkIHRvIHByb2Nlc3MgZmlsZSBjb250ZW50J1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICBjb25zdCByZXF1ZXN0Qm9keSA9IHtcclxuICAgIGZpbGVOYW1lOiB0aGlzLnVwbG9hZGVkRmlsZU5hbWUsXHJcbiAgICBmaWxlRXh0ZW5zaW9uOiB0aGlzLmdldEZpbGVFeHRlbnNpb24odGhpcy51cGxvYWRlZEZpbGVOYW1lKSxcclxuICAgIGZpbGVDb250ZW50OiBmaWxlQmFzZTY0LFxyXG4gICAgbWFwcGluZ3M6IHRoaXMuZm9ybS52YWx1ZSxcclxuICAgIGhlYWRlcnM6IHRoaXMuZXhjZWxIZWFkZXJzLFxyXG4gICAgZmlsZVNpemU6IHRoaXMuZmlsZUNvbnRlbnQgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlciA/IHRoaXMuZmlsZUNvbnRlbnQuYnl0ZUxlbmd0aCA6IDBcclxuICB9O1xyXG5cclxuICB0aGlzLnJlc3RTZXJ2aWNlXHJcbiAgICAucmVxdWVzdDxhbnksIGFueT4oXHJcbiAgICAgIHtcclxuICAgICAgICBtZXRob2Q6ICdQT1NUJyxcclxuICAgICAgICB1cmw6IHRoaXMuY29uZmlnLmFwaVVybCxcclxuICAgICAgICBib2R5OiByZXF1ZXN0Qm9keSxcclxuICAgICAgICBoZWFkZXJzOiB7XHJcbiAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICB7IGFwaU5hbWU6IHRoaXMuY29uZmlnLmFwaU5hbWUgfVxyXG4gICAgKVxyXG4gICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtcclxuICAgICAgICAgIHNldmVyaXR5OiAnc3VjY2VzcycsXHJcbiAgICAgICAgICBzdW1tYXJ5OiAnU3VjY2VzcycsXHJcbiAgICAgICAgICBkZXRhaWw6ICdGaWxlIGltcG9ydGVkIHN1Y2Nlc3NmdWxseSdcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLmltcG9ydENvbXBsZXRlLmVtaXQocmVzcG9uc2UpO1xyXG4gICAgICAgIHRoaXMucmVmLmNsb3NlKHJlc3BvbnNlKTtcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICBjb25zb2xlLmVycm9yKCdJbXBvcnQgZXJyb3I6JywgZXJyKTtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XHJcbiAgICAgICAgICBzZXZlcml0eTogJ2Vycm9yJyxcclxuICAgICAgICAgIHN1bW1hcnk6ICdFcnJvcicsXHJcbiAgICAgICAgICBkZXRhaWw6ICdGYWlsZWQgdG8gaW1wb3J0IGZpbGUnXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5pbXBvcnRFcnJvci5lbWl0KGVycik7XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxufVxyXG5cclxuLy8gVXBkYXRlIGNsZWFyRmlsZVVwbG9hZCB0byBhbHNvIGNsZWFyIGZpbGUgY29udGVudFxyXG5wcml2YXRlIGNsZWFyRmlsZVVwbG9hZChldmVudDogYW55KSB7XHJcbiAgaWYgKGV2ZW50Lm9wdGlvbnMgJiYgdHlwZW9mIGV2ZW50Lm9wdGlvbnMuY2xlYXIgPT09ICdmdW5jdGlvbicpIHtcclxuICAgIGV2ZW50Lm9wdGlvbnMuY2xlYXIoKTtcclxuICB9XHJcbiAgdGhpcy51cGxvYWRlZEZpbGVOYW1lID0gbnVsbDtcclxuICB0aGlzLmZpbGVDb250ZW50ID0gbnVsbDtcclxufVxyXG5cclxuICBwcml2YXRlIGluaXRpYWxpemVGb3JtKCkge1xyXG4gICAgY29uc3QgZm9ybUNvbmZpZzogYW55ID0ge307XHJcblxyXG4gICAgdGhpcy5tYXBwaW5nRmllbGRzLmZvckVhY2goZmllbGQgPT4ge1xyXG4gICAgICBpZiAoZmllbGQua2V5KSB7XHJcbiAgICAgICAgLy8gU2V0IGRlZmF1bHQgdmFsdWUgdG8gZmlyc3QgaGVhZGVyIGlmIGF2YWlsYWJsZVxyXG4gICAgICAgIGZvcm1Db25maWdbZmllbGQua2V5IGFzIHN0cmluZ10gPSBbdGhpcy5leGNlbEhlYWRlcnNbMF0gfHwgJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdO1xyXG5cclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cChmb3JtQ29uZmlnKTtcclxuICB9XHJcblxyXG5cclxuXHJcblxyXG5cclxuICBvbkNhbmNlbCgpIHtcclxuICAgIGlmICghdGhpcy5sb2FkaW5nKSB7XHJcbiAgICAgIHRoaXMucmVmLmNsb3NlKGZhbHNlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtZXhjZWwtaW1wb3J0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9uZy51aS5jb3JlL2V4Y2VsLWltcG9ydC9zcmMvZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtZXhjZWwtaW1wb3J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}
@@ -0,0 +1,119 @@
1
+ import * as i0 from '@angular/core';
2
+ import { NgModule } from '@angular/core';
3
+ import { CommonModule } from '@angular/common';
4
+ import { AttachmentTypeComponent } from '@elite.framework/ng.ui.core/attachments';
5
+ import { ColorPickerComponent } from '@elite.framework/ng.ui.core/color-picker';
6
+ import { ConditionExpressionBuilderType } from '@elite.framework/ng.ui.core/condition-editor';
7
+ import { CustomSwitchFieldComponent } from '@elite.framework/ng.ui.core/custom-switch';
8
+ import { FormlyFieldButton } from '@elite.framework/ng.ui.core/form-button';
9
+ import { FormlyTemplateType } from '@elite.framework/ng.ui.core/form-template';
10
+ import { FormlyAvatarImageComponent } from '@elite.framework/ng.ui.core/formly-avatar-image';
11
+ import { FormlyAvatarLabelComponent } from '@elite.framework/ng.ui.core/formly-avatar-label';
12
+ import { FormlyButtonComponent } from '@elite.framework/ng.ui.core/formly-button';
13
+ import { FormlySelectionButtonComponent } from '@elite.framework/ng.ui.core/formly-button-selector';
14
+ import { FormlySplitButtonComponent } from '@elite.framework/ng.ui.core/formly-split-button';
15
+ import { UsernameWithDomainComponent } from '@elite.framework/ng.ui.core/formly-username-with-domain';
16
+ import { GenericSelectorTypeComponent } from '@elite.framework/ng.ui.core/generic-selector';
17
+ import { IconPickerComponent } from '@elite.framework/ng.ui.core/icon-picker';
18
+ import { InputSwitchTypeComponent } from '@elite.framework/ng.ui.core/input-switch';
19
+ import { InputWithIconType } from '@elite.framework/ng.ui.core/input-with-icon';
20
+ import { LabelTypeComponent, ClickableLabelTypeComponent } from '@elite.framework/ng.ui.core/label-type';
21
+ import { RepeatTypeComponent } from '@elite.framework/ng.ui.core/repeat';
22
+ import { TabsTypeComponent } from '@elite.framework/ng.ui.core/tabs';
23
+ import { OptionTagTypeComponent, TagTypeComponent, ColorTagTypeComponent } from '@elite.framework/ng.ui.core/tag-type';
24
+ import { RichTextEditorTypeComponent } from '@elite.framework/ng.ui.core/text-editor';
25
+ import { PanelWrapperComponent, LabelWrapperComponent, TdWrapperComponent } from '@elite.framework/ng.ui.core/wrappers';
26
+ import { provideConfig } from '@elite.framework/ng.core/providers';
27
+
28
+ class FormlyUiAllModule {
29
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: FormlyUiAllModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
30
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.1.8", ngImport: i0, type: FormlyUiAllModule, imports: [CommonModule] });
31
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: FormlyUiAllModule, imports: [CommonModule] });
32
+ }
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: FormlyUiAllModule, decorators: [{
34
+ type: NgModule,
35
+ args: [{
36
+ imports: [CommonModule],
37
+ }]
38
+ }] });
39
+
40
+ function provideAllFormlyFields() {
41
+ const fields = [
42
+ withFormlyFieldInputWithIcon,
43
+ withFormlyFieldAttachment,
44
+ withFormlyFieldRichTextEditor,
45
+ withFormlyFieldGenericSelector,
46
+ withFormlyFieldSwitch,
47
+ withFormlyFieldUsernameWithDomain,
48
+ withFormlyFieldCustomSwitch,
49
+ withFormlyFieldFormlySplit,
50
+ withFormlyFieldButtonSelection,
51
+ withFormlyFieldAvatarLabelButton,
52
+ withFormlyFieldFormlyButton,
53
+ withFormlyFieldLabelType,
54
+ withFormlyFieldClickableLabelType,
55
+ withFormlyFieldOptionTag,
56
+ withFormlyFieldRepeat,
57
+ withFormlyFieldTabs,
58
+ withFormlyFieldTag,
59
+ withFormlyFieldColorTag,
60
+ withFormlyFieldConditionBuilder,
61
+ withFormlyFieldIconPicker,
62
+ withFormlyFieldColorPicker,
63
+ withFormlyFieldTemplate,
64
+ withFormlyFieldButton,
65
+ withFormlyFieldAvatarImage,
66
+ withFormlyWrappers
67
+ ];
68
+ // Call each provider function to get the Provider object
69
+ return fields.map(fn => fn());
70
+ }
71
+ // ---- Field Providers ----
72
+ const withFormlyFieldInputWithIcon = () => provideConfig({ types: [{ name: 'inputWithIcon', component: InputWithIconType, wrappers: ['form-field'] }] });
73
+ const withFormlyFieldAttachment = () => provideConfig({ types: [{ name: 'attachment-type', component: AttachmentTypeComponent, wrappers: ['form-field'] }] });
74
+ const withFormlyFieldRichTextEditor = () => provideConfig({ types: [{ name: 'rich-text-editor', component: RichTextEditorTypeComponent, wrappers: ['form-field'] }] });
75
+ const withFormlyFieldGenericSelector = () => provideConfig({ types: [{ name: 'generic-selector', component: GenericSelectorTypeComponent, wrappers: ['form-field'] }] });
76
+ const withFormlyFieldSwitch = () => provideConfig({ types: [{ name: 'switch', component: InputSwitchTypeComponent, wrappers: ['form-field-no'] }] });
77
+ const withFormlyFieldUsernameWithDomain = () => provideConfig({ types: [{ name: 'username-with-domain', component: UsernameWithDomainComponent, wrappers: ['form-field'] }] });
78
+ const withFormlyFieldCustomSwitch = () => provideConfig({ types: [{ name: 'custom-switch', component: CustomSwitchFieldComponent, wrappers: ['form-field-no'] }] });
79
+ const withFormlyFieldFormlySplit = () => provideConfig({ types: [{ name: 'Formly-Split', component: FormlySplitButtonComponent, wrappers: ['form-field'] }] });
80
+ const withFormlyFieldButtonSelection = () => provideConfig({ types: [{ name: 'Button-Selection', component: FormlySelectionButtonComponent, wrappers: ['form-field'] }] });
81
+ const withFormlyFieldAvatarLabelButton = () => provideConfig({ types: [{ name: 'avatar-label-button', component: FormlyAvatarLabelComponent }] });
82
+ const withFormlyFieldFormlyButton = () => provideConfig({ types: [{ name: 'formly-button', component: FormlyButtonComponent }] });
83
+ const withFormlyFieldLabelType = () => provideConfig({ types: [{ name: 'label-type', component: LabelTypeComponent }] });
84
+ const withFormlyFieldClickableLabelType = () => provideConfig({ types: [{ name: 'clickable-label-type', component: ClickableLabelTypeComponent }] });
85
+ const withFormlyFieldOptionTag = () => provideConfig({ types: [{ name: 'option-tag', component: OptionTagTypeComponent }] });
86
+ const withFormlyFieldRepeat = () => provideConfig({ types: [{ name: 'repeat', component: RepeatTypeComponent }] });
87
+ const withFormlyFieldTabs = () => provideConfig({ types: [{ name: 'tabs', component: TabsTypeComponent }] });
88
+ const withFormlyFieldTag = () => provideConfig({ types: [{ name: 'tag', component: TagTypeComponent }] });
89
+ const withFormlyFieldColorTag = () => provideConfig({ types: [{ name: 'color-tag', component: ColorTagTypeComponent }] });
90
+ const withFormlyFieldConditionBuilder = () => provideConfig({ types: [{ name: 'condition-builder', component: ConditionExpressionBuilderType, wrappers: ['form-field'] }] });
91
+ const withFormlyFieldIconPicker = () => provideConfig({ types: [{ name: 'icon-picker', component: IconPickerComponent, wrappers: ['form-field-no'] }] });
92
+ const withFormlyFieldColorPicker = () => provideConfig({ types: [{ name: 'color-picker', component: ColorPickerComponent, wrappers: ['form-field-no'] }] });
93
+ const withFormlyFieldTemplate = () => provideConfig({ types: [{ name: 'template', component: FormlyTemplateType }] });
94
+ const withFormlyFieldButton = () => provideConfig({
95
+ types: [
96
+ {
97
+ name: 'button',
98
+ component: FormlyFieldButton,
99
+ wrappers: ['form-field'],
100
+ defaultOptions: { props: { btnType: 'default', type: 'button' } },
101
+ },
102
+ ],
103
+ });
104
+ const withFormlyFieldAvatarImage = () => provideConfig({ types: [{ name: 'avatar-image', component: FormlyAvatarImageComponent }] });
105
+ // ---- Wrappers ----
106
+ const withFormlyWrappers = () => provideConfig({
107
+ wrappers: [
108
+ { name: 'panel', component: PanelWrapperComponent },
109
+ { name: 'label', component: LabelWrapperComponent },
110
+ { name: 'td', component: TdWrapperComponent },
111
+ ],
112
+ });
113
+
114
+ /**
115
+ * Generated bundle index. Do not edit.
116
+ */
117
+
118
+ export { FormlyUiAllModule, provideAllFormlyFields, withFormlyFieldAttachment, withFormlyFieldAvatarImage, withFormlyFieldAvatarLabelButton, withFormlyFieldButton, withFormlyFieldButtonSelection, withFormlyFieldClickableLabelType, withFormlyFieldColorPicker, withFormlyFieldColorTag, withFormlyFieldConditionBuilder, withFormlyFieldCustomSwitch, withFormlyFieldFormlyButton, withFormlyFieldFormlySplit, withFormlyFieldGenericSelector, withFormlyFieldIconPicker, withFormlyFieldInputWithIcon, withFormlyFieldLabelType, withFormlyFieldOptionTag, withFormlyFieldRepeat, withFormlyFieldRichTextEditor, withFormlyFieldSwitch, withFormlyFieldTabs, withFormlyFieldTag, withFormlyFieldTemplate, withFormlyFieldUsernameWithDomain, withFormlyWrappers };
119
+ //# sourceMappingURL=elite.framework-ng.ui.core-formly-ui-all.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elite.framework-ng.ui.core-formly-ui-all.mjs","sources":["../tmp-esm2022/formly-ui-all/lib/formly-ui-all-module.js","../tmp-esm2022/formly-ui-all/lib/formly-all.config.js","../tmp-esm2022/formly-ui-all/elite.framework-ng.ui.core-formly-ui-all.js"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nexport class FormlyUiAllModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: FormlyUiAllModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: FormlyUiAllModule, imports: [CommonModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: FormlyUiAllModule, imports: [CommonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: FormlyUiAllModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LXVpLWFsbC1tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLnVpLmNvcmUvZm9ybWx5LXVpLWFsbC9zcmMvbGliL2Zvcm1seS11aS1hbGwtbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUsvQyxNQUFNLE9BQU8saUJBQWlCO3VHQUFqQixpQkFBaUI7d0dBQWpCLGlCQUFpQixZQUZsQixZQUFZO3dHQUVYLGlCQUFpQixZQUZsQixZQUFZOzsyRkFFWCxpQkFBaUI7a0JBSDdCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybWx5VWlBbGxNb2R1bGUge31cbiJdfQ==","import { AttachmentTypeComponent } from \"@elite.framework/ng.ui.core/attachments\";\nimport { ColorPickerComponent } from \"@elite.framework/ng.ui.core/color-picker\";\nimport { ConditionExpressionBuilderType } from \"@elite.framework/ng.ui.core/condition-editor\";\nimport { CustomSwitchFieldComponent } from \"@elite.framework/ng.ui.core/custom-switch\";\nimport { FormlyFieldButton } from \"@elite.framework/ng.ui.core/form-button\";\nimport { FormlyTemplateType } from \"@elite.framework/ng.ui.core/form-template\";\nimport { FormlyAvatarImageComponent } from \"@elite.framework/ng.ui.core/formly-avatar-image\";\nimport { FormlyAvatarLabelComponent } from \"@elite.framework/ng.ui.core/formly-avatar-label\";\nimport { FormlyButtonComponent } from \"@elite.framework/ng.ui.core/formly-button\";\nimport { FormlySelectionButtonComponent } from \"@elite.framework/ng.ui.core/formly-button-selector\";\nimport { FormlySplitButtonComponent } from \"@elite.framework/ng.ui.core/formly-split-button\";\nimport { UsernameWithDomainComponent } from \"@elite.framework/ng.ui.core/formly-username-with-domain\";\nimport { GenericSelectorTypeComponent } from \"@elite.framework/ng.ui.core/generic-selector\";\nimport { IconPickerComponent } from \"@elite.framework/ng.ui.core/icon-picker\";\nimport { InputSwitchTypeComponent } from \"@elite.framework/ng.ui.core/input-switch\";\nimport { InputWithIconType } from \"@elite.framework/ng.ui.core/input-with-icon\";\nimport { LabelTypeComponent, ClickableLabelTypeComponent } from \"@elite.framework/ng.ui.core/label-type\";\nimport { RepeatTypeComponent } from \"@elite.framework/ng.ui.core/repeat\";\nimport { TabsTypeComponent } from \"@elite.framework/ng.ui.core/tabs\";\nimport { OptionTagTypeComponent, TagTypeComponent, ColorTagTypeComponent } from \"@elite.framework/ng.ui.core/tag-type\";\nimport { RichTextEditorTypeComponent } from \"@elite.framework/ng.ui.core/text-editor\";\nimport { PanelWrapperComponent, LabelWrapperComponent, TdWrapperComponent } from \"@elite.framework/ng.ui.core/wrappers\";\nimport { provideConfig } from '@elite.framework/ng.core/providers';\nexport function provideAllFormlyFields() {\n const fields = [\n withFormlyFieldInputWithIcon,\n withFormlyFieldAttachment,\n withFormlyFieldRichTextEditor,\n withFormlyFieldGenericSelector,\n withFormlyFieldSwitch,\n withFormlyFieldUsernameWithDomain,\n withFormlyFieldCustomSwitch,\n withFormlyFieldFormlySplit,\n withFormlyFieldButtonSelection,\n withFormlyFieldAvatarLabelButton,\n withFormlyFieldFormlyButton,\n withFormlyFieldLabelType,\n withFormlyFieldClickableLabelType,\n withFormlyFieldOptionTag,\n withFormlyFieldRepeat,\n withFormlyFieldTabs,\n withFormlyFieldTag,\n withFormlyFieldColorTag,\n withFormlyFieldConditionBuilder,\n withFormlyFieldIconPicker,\n withFormlyFieldColorPicker,\n withFormlyFieldTemplate,\n withFormlyFieldButton,\n withFormlyFieldAvatarImage,\n withFormlyWrappers\n ];\n // Call each provider function to get the Provider object\n return fields.map(fn => fn());\n}\n// ---- Field Providers ----\nexport const withFormlyFieldInputWithIcon = () => provideConfig({ types: [{ name: 'inputWithIcon', component: InputWithIconType, wrappers: ['form-field'] }] });\nexport const withFormlyFieldAttachment = () => provideConfig({ types: [{ name: 'attachment-type', component: AttachmentTypeComponent, wrappers: ['form-field'] }] });\nexport const withFormlyFieldRichTextEditor = () => provideConfig({ types: [{ name: 'rich-text-editor', component: RichTextEditorTypeComponent, wrappers: ['form-field'] }] });\nexport const withFormlyFieldGenericSelector = () => provideConfig({ types: [{ name: 'generic-selector', component: GenericSelectorTypeComponent, wrappers: ['form-field'] }] });\nexport const withFormlyFieldSwitch = () => provideConfig({ types: [{ name: 'switch', component: InputSwitchTypeComponent, wrappers: ['form-field-no'] }] });\nexport const withFormlyFieldUsernameWithDomain = () => provideConfig({ types: [{ name: 'username-with-domain', component: UsernameWithDomainComponent, wrappers: ['form-field'] }] });\nexport const withFormlyFieldCustomSwitch = () => provideConfig({ types: [{ name: 'custom-switch', component: CustomSwitchFieldComponent, wrappers: ['form-field-no'] }] });\nexport const withFormlyFieldFormlySplit = () => provideConfig({ types: [{ name: 'Formly-Split', component: FormlySplitButtonComponent, wrappers: ['form-field'] }] });\nexport const withFormlyFieldButtonSelection = () => provideConfig({ types: [{ name: 'Button-Selection', component: FormlySelectionButtonComponent, wrappers: ['form-field'] }] });\nexport const withFormlyFieldAvatarLabelButton = () => provideConfig({ types: [{ name: 'avatar-label-button', component: FormlyAvatarLabelComponent }] });\nexport const withFormlyFieldFormlyButton = () => provideConfig({ types: [{ name: 'formly-button', component: FormlyButtonComponent }] });\nexport const withFormlyFieldLabelType = () => provideConfig({ types: [{ name: 'label-type', component: LabelTypeComponent }] });\nexport const withFormlyFieldClickableLabelType = () => provideConfig({ types: [{ name: 'clickable-label-type', component: ClickableLabelTypeComponent }] });\nexport const withFormlyFieldOptionTag = () => provideConfig({ types: [{ name: 'option-tag', component: OptionTagTypeComponent }] });\nexport const withFormlyFieldRepeat = () => provideConfig({ types: [{ name: 'repeat', component: RepeatTypeComponent }] });\nexport const withFormlyFieldTabs = () => provideConfig({ types: [{ name: 'tabs', component: TabsTypeComponent }] });\nexport const withFormlyFieldTag = () => provideConfig({ types: [{ name: 'tag', component: TagTypeComponent }] });\nexport const withFormlyFieldColorTag = () => provideConfig({ types: [{ name: 'color-tag', component: ColorTagTypeComponent }] });\nexport const withFormlyFieldConditionBuilder = () => provideConfig({ types: [{ name: 'condition-builder', component: ConditionExpressionBuilderType, wrappers: ['form-field'] }] });\nexport const withFormlyFieldIconPicker = () => provideConfig({ types: [{ name: 'icon-picker', component: IconPickerComponent, wrappers: ['form-field-no'] }] });\nexport const withFormlyFieldColorPicker = () => provideConfig({ types: [{ name: 'color-picker', component: ColorPickerComponent, wrappers: ['form-field-no'] }] });\nexport const withFormlyFieldTemplate = () => provideConfig({ types: [{ name: 'template', component: FormlyTemplateType }] });\nexport const withFormlyFieldButton = () => provideConfig({\n types: [\n {\n name: 'button',\n component: FormlyFieldButton,\n wrappers: ['form-field'],\n defaultOptions: { props: { btnType: 'default', type: 'button' } },\n },\n ],\n});\nexport const withFormlyFieldAvatarImage = () => provideConfig({ types: [{ name: 'avatar-image', component: FormlyAvatarImageComponent }] });\n// ---- Wrappers ----\nexport const withFormlyWrappers = () => provideConfig({\n wrappers: [\n { name: 'panel', component: PanelWrapperComponent },\n { name: 'label', component: LabelWrapperComponent },\n { name: 'td', component: TdWrapperComponent },\n ],\n});\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LWFsbC5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLnVpLmNvcmUvZm9ybWx5LXVpLWFsbC9zcmMvbGliL2Zvcm1seS1hbGwuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzlGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ3BHLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ3RHLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzVGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxnQkFBZ0IsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZILE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxxQkFBcUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3hILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUluRSxNQUFNLFVBQVUsc0JBQXNCO0lBQ3BDLE1BQU0sTUFBTSxHQUFHO1FBRWIsNEJBQTRCO1FBQzVCLHlCQUF5QjtRQUN6Qiw2QkFBNkI7UUFDN0IsOEJBQThCO1FBQzlCLHFCQUFxQjtRQUNyQixpQ0FBaUM7UUFDakMsMkJBQTJCO1FBQzNCLDBCQUEwQjtRQUMxQiw4QkFBOEI7UUFDOUIsZ0NBQWdDO1FBQ2hDLDJCQUEyQjtRQUMzQix3QkFBd0I7UUFDeEIsaUNBQWlDO1FBQ2pDLHdCQUF3QjtRQUN4QixxQkFBcUI7UUFDckIsbUJBQW1CO1FBQ25CLGtCQUFrQjtRQUNsQix1QkFBdUI7UUFDdkIsK0JBQStCO1FBQy9CLHlCQUF5QjtRQUN6QiwwQkFBMEI7UUFDMUIsdUJBQXVCO1FBQ3ZCLHFCQUFxQjtRQUNyQiwwQkFBMEI7UUFDMUIsa0JBQWtCO0tBQ25CLENBQUM7SUFFRix5REFBeUQ7SUFDekQsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNoQyxDQUFDO0FBR0QsNEJBQTRCO0FBRzVCLE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLEdBQWEsRUFBRSxDQUN6RCxhQUFhLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7QUFFaEgsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUcsR0FBYSxFQUFFLENBQ3RELGFBQWEsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSx1QkFBdUIsRUFBRSxRQUFRLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBRXhILE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLEdBQWEsRUFBRSxDQUMxRCxhQUFhLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQUUsMkJBQTJCLEVBQUUsUUFBUSxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUU3SCxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxHQUFhLEVBQUUsQ0FDM0QsYUFBYSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLDRCQUE0QixFQUFFLFFBQVEsRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7QUFFOUgsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsR0FBYSxFQUFFLENBQ2xELGFBQWEsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsd0JBQXdCLEVBQUUsUUFBUSxFQUFFLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUVuSCxNQUFNLENBQUMsTUFBTSxpQ0FBaUMsR0FBRyxHQUFhLEVBQUUsQ0FDOUQsYUFBYSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsc0JBQXNCLEVBQUUsU0FBUyxFQUFFLDJCQUEyQixFQUFFLFFBQVEsRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7QUFFakksTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsR0FBYSxFQUFFLENBQ3hELGFBQWEsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsMEJBQTBCLEVBQUUsUUFBUSxFQUFFLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUU1SCxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxHQUFhLEVBQUUsQ0FDdkQsYUFBYSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSwwQkFBMEIsRUFBRSxRQUFRLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBRXhILE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHLEdBQWEsRUFBRSxDQUMzRCxhQUFhLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQUUsOEJBQThCLEVBQUUsUUFBUSxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUVoSSxNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBRyxHQUFhLEVBQUUsQ0FDN0QsYUFBYSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsU0FBUyxFQUFFLDBCQUEwQixFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7QUFFckcsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsR0FBYSxFQUFFLENBQ3hELGFBQWEsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUUxRixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxHQUFhLEVBQUUsQ0FDckQsYUFBYSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBRXBGLE1BQU0sQ0FBQyxNQUFNLGlDQUFpQyxHQUFHLEdBQWEsRUFBRSxDQUM5RCxhQUFhLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxzQkFBc0IsRUFBRSxTQUFTLEVBQUUsMkJBQTJCLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUV2RyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxHQUFhLEVBQUUsQ0FDckQsYUFBYSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBRXhGLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLEdBQWEsRUFBRSxDQUNsRCxhQUFhLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7QUFFakYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsR0FBYSxFQUFFLENBQ2hELGFBQWEsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUU3RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxHQUFhLEVBQUUsQ0FDL0MsYUFBYSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBRTNFLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLEdBQWEsRUFBRSxDQUNwRCxhQUFhLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7QUFFdEYsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQUcsR0FBYSxFQUFFLENBQzVELGFBQWEsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLG1CQUFtQixFQUFFLFNBQVMsRUFBRSw4QkFBOEIsRUFBRSxRQUFRLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBRWpJLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLEdBQWEsRUFBRSxDQUN0RCxhQUFhLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLFFBQVEsRUFBRSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7QUFFbkgsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsR0FBYSxFQUFFLENBQ3ZELGFBQWEsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsb0JBQW9CLEVBQUUsUUFBUSxFQUFFLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUVySCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxHQUFhLEVBQUUsQ0FDcEQsYUFBYSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBRWxGLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLEdBQWEsRUFBRSxDQUNsRCxhQUFhLENBQUM7SUFDWixLQUFLLEVBQUU7UUFDTDtZQUNFLElBQUksRUFBRSxRQUFRO1lBQ2QsU0FBUyxFQUFFLGlCQUFpQjtZQUM1QixRQUFRLEVBQUUsQ0FBQyxZQUFZLENBQUM7WUFDeEIsY0FBYyxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQUU7U0FDbEU7S0FDRjtDQUNGLENBQUMsQ0FBQztBQUVMLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLEdBQWEsRUFBRSxDQUN2RCxhQUFhLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLDBCQUEwQixFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7QUFFOUYscUJBQXFCO0FBRXJCLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLEdBQWEsRUFBRSxDQUMvQyxhQUFhLENBQUM7SUFDWixRQUFRLEVBQUU7UUFDUixFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFO1FBQ25ELEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUU7UUFDbkQsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRTtLQUM5QztDQUNGLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF0dGFjaG1lbnRUeXBlQ29tcG9uZW50IH0gZnJvbSBcIkBlbGl0ZS5mcmFtZXdvcmsvbmcudWkuY29yZS9hdHRhY2htZW50c1wiO1xyXG5pbXBvcnQgeyBDb2xvclBpY2tlckNvbXBvbmVudCB9IGZyb20gXCJAZWxpdGUuZnJhbWV3b3JrL25nLnVpLmNvcmUvY29sb3ItcGlja2VyXCI7XHJcbmltcG9ydCB7IENvbmRpdGlvbkV4cHJlc3Npb25CdWlsZGVyVHlwZSB9IGZyb20gXCJAZWxpdGUuZnJhbWV3b3JrL25nLnVpLmNvcmUvY29uZGl0aW9uLWVkaXRvclwiO1xyXG5pbXBvcnQgeyBDdXN0b21Td2l0Y2hGaWVsZENvbXBvbmVudCB9IGZyb20gXCJAZWxpdGUuZnJhbWV3b3JrL25nLnVpLmNvcmUvY3VzdG9tLXN3aXRjaFwiO1xyXG5pbXBvcnQgeyBGb3JtbHlGaWVsZEJ1dHRvbiB9IGZyb20gXCJAZWxpdGUuZnJhbWV3b3JrL25nLnVpLmNvcmUvZm9ybS1idXR0b25cIjtcclxuaW1wb3J0IHsgRm9ybWx5VGVtcGxhdGVUeXBlIH0gZnJvbSBcIkBlbGl0ZS5mcmFtZXdvcmsvbmcudWkuY29yZS9mb3JtLXRlbXBsYXRlXCI7XHJcbmltcG9ydCB7IEZvcm1seUF2YXRhckltYWdlQ29tcG9uZW50IH0gZnJvbSBcIkBlbGl0ZS5mcmFtZXdvcmsvbmcudWkuY29yZS9mb3JtbHktYXZhdGFyLWltYWdlXCI7XHJcbmltcG9ydCB7IEZvcm1seUF2YXRhckxhYmVsQ29tcG9uZW50IH0gZnJvbSBcIkBlbGl0ZS5mcmFtZXdvcmsvbmcudWkuY29yZS9mb3JtbHktYXZhdGFyLWxhYmVsXCI7XHJcbmltcG9ydCB7IEZvcm1seUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gXCJAZWxpdGUuZnJhbWV3b3JrL25nLnVpLmNvcmUvZm9ybWx5LWJ1dHRvblwiO1xyXG5pbXBvcnQgeyBGb3JtbHlTZWxlY3Rpb25CdXR0b25Db21wb25lbnQgfSBmcm9tIFwiQGVsaXRlLmZyYW1ld29yay9uZy51aS5jb3JlL2Zvcm1seS1idXR0b24tc2VsZWN0b3JcIjtcclxuaW1wb3J0IHsgRm9ybWx5U3BsaXRCdXR0b25Db21wb25lbnQgfSBmcm9tIFwiQGVsaXRlLmZyYW1ld29yay9uZy51aS5jb3JlL2Zvcm1seS1zcGxpdC1idXR0b25cIjtcclxuaW1wb3J0IHsgVXNlcm5hbWVXaXRoRG9tYWluQ29tcG9uZW50IH0gZnJvbSBcIkBlbGl0ZS5mcmFtZXdvcmsvbmcudWkuY29yZS9mb3JtbHktdXNlcm5hbWUtd2l0aC1kb21haW5cIjtcclxuaW1wb3J0IHsgR2VuZXJpY1NlbGVjdG9yVHlwZUNvbXBvbmVudCB9IGZyb20gXCJAZWxpdGUuZnJhbWV3b3JrL25nLnVpLmNvcmUvZ2VuZXJpYy1zZWxlY3RvclwiO1xyXG5pbXBvcnQgeyBJY29uUGlja2VyQ29tcG9uZW50IH0gZnJvbSBcIkBlbGl0ZS5mcmFtZXdvcmsvbmcudWkuY29yZS9pY29uLXBpY2tlclwiO1xyXG5pbXBvcnQgeyBJbnB1dFN3aXRjaFR5cGVDb21wb25lbnQgfSBmcm9tIFwiQGVsaXRlLmZyYW1ld29yay9uZy51aS5jb3JlL2lucHV0LXN3aXRjaFwiO1xyXG5pbXBvcnQgeyBJbnB1dFdpdGhJY29uVHlwZSB9IGZyb20gXCJAZWxpdGUuZnJhbWV3b3JrL25nLnVpLmNvcmUvaW5wdXQtd2l0aC1pY29uXCI7XHJcbmltcG9ydCB7IExhYmVsVHlwZUNvbXBvbmVudCwgQ2xpY2thYmxlTGFiZWxUeXBlQ29tcG9uZW50IH0gZnJvbSBcIkBlbGl0ZS5mcmFtZXdvcmsvbmcudWkuY29yZS9sYWJlbC10eXBlXCI7XHJcbmltcG9ydCB7IFJlcGVhdFR5cGVDb21wb25lbnQgfSBmcm9tIFwiQGVsaXRlLmZyYW1ld29yay9uZy51aS5jb3JlL3JlcGVhdFwiO1xyXG5pbXBvcnQgeyBUYWJzVHlwZUNvbXBvbmVudCB9IGZyb20gXCJAZWxpdGUuZnJhbWV3b3JrL25nLnVpLmNvcmUvdGFic1wiO1xyXG5pbXBvcnQgeyBPcHRpb25UYWdUeXBlQ29tcG9uZW50LCBUYWdUeXBlQ29tcG9uZW50LCBDb2xvclRhZ1R5cGVDb21wb25lbnQgfSBmcm9tIFwiQGVsaXRlLmZyYW1ld29yay9uZy51aS5jb3JlL3RhZy10eXBlXCI7XHJcbmltcG9ydCB7IFJpY2hUZXh0RWRpdG9yVHlwZUNvbXBvbmVudCB9IGZyb20gXCJAZWxpdGUuZnJhbWV3b3JrL25nLnVpLmNvcmUvdGV4dC1lZGl0b3JcIjtcclxuaW1wb3J0IHsgUGFuZWxXcmFwcGVyQ29tcG9uZW50LCBMYWJlbFdyYXBwZXJDb21wb25lbnQsIFRkV3JhcHBlckNvbXBvbmVudCB9IGZyb20gXCJAZWxpdGUuZnJhbWV3b3JrL25nLnVpLmNvcmUvd3JhcHBlcnNcIjtcclxuaW1wb3J0IHsgcHJvdmlkZUNvbmZpZyB9IGZyb20gJ0BlbGl0ZS5mcmFtZXdvcmsvbmcuY29yZS9wcm92aWRlcnMnO1xyXG5pbXBvcnQgeyBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlQWxsRm9ybWx5RmllbGRzKCk6IFByb3ZpZGVyW10ge1xyXG4gIGNvbnN0IGZpZWxkcyA9IFtcclxuXHJcbiAgICB3aXRoRm9ybWx5RmllbGRJbnB1dFdpdGhJY29uLFxyXG4gICAgd2l0aEZvcm1seUZpZWxkQXR0YWNobWVudCxcclxuICAgIHdpdGhGb3JtbHlGaWVsZFJpY2hUZXh0RWRpdG9yLFxyXG4gICAgd2l0aEZvcm1seUZpZWxkR2VuZXJpY1NlbGVjdG9yLFxyXG4gICAgd2l0aEZvcm1seUZpZWxkU3dpdGNoLFxyXG4gICAgd2l0aEZvcm1seUZpZWxkVXNlcm5hbWVXaXRoRG9tYWluLFxyXG4gICAgd2l0aEZvcm1seUZpZWxkQ3VzdG9tU3dpdGNoLFxyXG4gICAgd2l0aEZvcm1seUZpZWxkRm9ybWx5U3BsaXQsXHJcbiAgICB3aXRoRm9ybWx5RmllbGRCdXR0b25TZWxlY3Rpb24sXHJcbiAgICB3aXRoRm9ybWx5RmllbGRBdmF0YXJMYWJlbEJ1dHRvbixcclxuICAgIHdpdGhGb3JtbHlGaWVsZEZvcm1seUJ1dHRvbixcclxuICAgIHdpdGhGb3JtbHlGaWVsZExhYmVsVHlwZSxcclxuICAgIHdpdGhGb3JtbHlGaWVsZENsaWNrYWJsZUxhYmVsVHlwZSxcclxuICAgIHdpdGhGb3JtbHlGaWVsZE9wdGlvblRhZyxcclxuICAgIHdpdGhGb3JtbHlGaWVsZFJlcGVhdCxcclxuICAgIHdpdGhGb3JtbHlGaWVsZFRhYnMsXHJcbiAgICB3aXRoRm9ybWx5RmllbGRUYWcsXHJcbiAgICB3aXRoRm9ybWx5RmllbGRDb2xvclRhZyxcclxuICAgIHdpdGhGb3JtbHlGaWVsZENvbmRpdGlvbkJ1aWxkZXIsXHJcbiAgICB3aXRoRm9ybWx5RmllbGRJY29uUGlja2VyLFxyXG4gICAgd2l0aEZvcm1seUZpZWxkQ29sb3JQaWNrZXIsXHJcbiAgICB3aXRoRm9ybWx5RmllbGRUZW1wbGF0ZSxcclxuICAgIHdpdGhGb3JtbHlGaWVsZEJ1dHRvbixcclxuICAgIHdpdGhGb3JtbHlGaWVsZEF2YXRhckltYWdlLFxyXG4gICAgd2l0aEZvcm1seVdyYXBwZXJzXHJcbiAgXTtcclxuXHJcbiAgLy8gQ2FsbCBlYWNoIHByb3ZpZGVyIGZ1bmN0aW9uIHRvIGdldCB0aGUgUHJvdmlkZXIgb2JqZWN0XHJcbiAgcmV0dXJuIGZpZWxkcy5tYXAoZm4gPT4gZm4oKSk7XHJcbn1cclxuXHJcblxyXG4vLyAtLS0tIEZpZWxkIFByb3ZpZGVycyAtLS0tXHJcblxyXG5cclxuZXhwb3J0IGNvbnN0IHdpdGhGb3JtbHlGaWVsZElucHV0V2l0aEljb24gPSAoKTogUHJvdmlkZXIgPT5cclxuICBwcm92aWRlQ29uZmlnKHsgdHlwZXM6IFt7IG5hbWU6ICdpbnB1dFdpdGhJY29uJywgY29tcG9uZW50OiBJbnB1dFdpdGhJY29uVHlwZSwgd3JhcHBlcnM6IFsnZm9ybS1maWVsZCddIH1dIH0pO1xyXG5cclxuZXhwb3J0IGNvbnN0IHdpdGhGb3JtbHlGaWVsZEF0dGFjaG1lbnQgPSAoKTogUHJvdmlkZXIgPT5cclxuICBwcm92aWRlQ29uZmlnKHsgdHlwZXM6IFt7IG5hbWU6ICdhdHRhY2htZW50LXR5cGUnLCBjb21wb25lbnQ6IEF0dGFjaG1lbnRUeXBlQ29tcG9uZW50LCB3cmFwcGVyczogWydmb3JtLWZpZWxkJ10gfV0gfSk7XHJcblxyXG5leHBvcnQgY29uc3Qgd2l0aEZvcm1seUZpZWxkUmljaFRleHRFZGl0b3IgPSAoKTogUHJvdmlkZXIgPT5cclxuICBwcm92aWRlQ29uZmlnKHsgdHlwZXM6IFt7IG5hbWU6ICdyaWNoLXRleHQtZWRpdG9yJywgY29tcG9uZW50OiBSaWNoVGV4dEVkaXRvclR5cGVDb21wb25lbnQsIHdyYXBwZXJzOiBbJ2Zvcm0tZmllbGQnXSB9XSB9KTtcclxuXHJcbmV4cG9ydCBjb25zdCB3aXRoRm9ybWx5RmllbGRHZW5lcmljU2VsZWN0b3IgPSAoKTogUHJvdmlkZXIgPT5cclxuICBwcm92aWRlQ29uZmlnKHsgdHlwZXM6IFt7IG5hbWU6ICdnZW5lcmljLXNlbGVjdG9yJywgY29tcG9uZW50OiBHZW5lcmljU2VsZWN0b3JUeXBlQ29tcG9uZW50LCB3cmFwcGVyczogWydmb3JtLWZpZWxkJ10gfV0gfSk7XHJcblxyXG5leHBvcnQgY29uc3Qgd2l0aEZvcm1seUZpZWxkU3dpdGNoID0gKCk6IFByb3ZpZGVyID0+XHJcbiAgcHJvdmlkZUNvbmZpZyh7IHR5cGVzOiBbeyBuYW1lOiAnc3dpdGNoJywgY29tcG9uZW50OiBJbnB1dFN3aXRjaFR5cGVDb21wb25lbnQsIHdyYXBwZXJzOiBbJ2Zvcm0tZmllbGQtbm8nXSB9XSB9KTtcclxuXHJcbmV4cG9ydCBjb25zdCB3aXRoRm9ybWx5RmllbGRVc2VybmFtZVdpdGhEb21haW4gPSAoKTogUHJvdmlkZXIgPT5cclxuICBwcm92aWRlQ29uZmlnKHsgdHlwZXM6IFt7IG5hbWU6ICd1c2VybmFtZS13aXRoLWRvbWFpbicsIGNvbXBvbmVudDogVXNlcm5hbWVXaXRoRG9tYWluQ29tcG9uZW50LCB3cmFwcGVyczogWydmb3JtLWZpZWxkJ10gfV0gfSk7XHJcblxyXG5leHBvcnQgY29uc3Qgd2l0aEZvcm1seUZpZWxkQ3VzdG9tU3dpdGNoID0gKCk6IFByb3ZpZGVyID0+XHJcbiAgcHJvdmlkZUNvbmZpZyh7IHR5cGVzOiBbeyBuYW1lOiAnY3VzdG9tLXN3aXRjaCcsIGNvbXBvbmVudDogQ3VzdG9tU3dpdGNoRmllbGRDb21wb25lbnQsIHdyYXBwZXJzOiBbJ2Zvcm0tZmllbGQtbm8nXSB9XSB9KTtcclxuXHJcbmV4cG9ydCBjb25zdCB3aXRoRm9ybWx5RmllbGRGb3JtbHlTcGxpdCA9ICgpOiBQcm92aWRlciA9PlxyXG4gIHByb3ZpZGVDb25maWcoeyB0eXBlczogW3sgbmFtZTogJ0Zvcm1seS1TcGxpdCcsIGNvbXBvbmVudDogRm9ybWx5U3BsaXRCdXR0b25Db21wb25lbnQsIHdyYXBwZXJzOiBbJ2Zvcm0tZmllbGQnXSB9XSB9KTtcclxuXHJcbmV4cG9ydCBjb25zdCB3aXRoRm9ybWx5RmllbGRCdXR0b25TZWxlY3Rpb24gPSAoKTogUHJvdmlkZXIgPT5cclxuICBwcm92aWRlQ29uZmlnKHsgdHlwZXM6IFt7IG5hbWU6ICdCdXR0b24tU2VsZWN0aW9uJywgY29tcG9uZW50OiBGb3JtbHlTZWxlY3Rpb25CdXR0b25Db21wb25lbnQsIHdyYXBwZXJzOiBbJ2Zvcm0tZmllbGQnXSB9XSB9KTtcclxuXHJcbmV4cG9ydCBjb25zdCB3aXRoRm9ybWx5RmllbGRBdmF0YXJMYWJlbEJ1dHRvbiA9ICgpOiBQcm92aWRlciA9PlxyXG4gIHByb3ZpZGVDb25maWcoeyB0eXBlczogW3sgbmFtZTogJ2F2YXRhci1sYWJlbC1idXR0b24nLCBjb21wb25lbnQ6IEZvcm1seUF2YXRhckxhYmVsQ29tcG9uZW50IH1dIH0pO1xyXG5cclxuZXhwb3J0IGNvbnN0IHdpdGhGb3JtbHlGaWVsZEZvcm1seUJ1dHRvbiA9ICgpOiBQcm92aWRlciA9PlxyXG4gIHByb3ZpZGVDb25maWcoeyB0eXBlczogW3sgbmFtZTogJ2Zvcm1seS1idXR0b24nLCBjb21wb25lbnQ6IEZvcm1seUJ1dHRvbkNvbXBvbmVudCB9XSB9KTtcclxuXHJcbmV4cG9ydCBjb25zdCB3aXRoRm9ybWx5RmllbGRMYWJlbFR5cGUgPSAoKTogUHJvdmlkZXIgPT5cclxuICBwcm92aWRlQ29uZmlnKHsgdHlwZXM6IFt7IG5hbWU6ICdsYWJlbC10eXBlJywgY29tcG9uZW50OiBMYWJlbFR5cGVDb21wb25lbnQgfV0gfSk7XHJcblxyXG5leHBvcnQgY29uc3Qgd2l0aEZvcm1seUZpZWxkQ2xpY2thYmxlTGFiZWxUeXBlID0gKCk6IFByb3ZpZGVyID0+XHJcbiAgcHJvdmlkZUNvbmZpZyh7IHR5cGVzOiBbeyBuYW1lOiAnY2xpY2thYmxlLWxhYmVsLXR5cGUnLCBjb21wb25lbnQ6IENsaWNrYWJsZUxhYmVsVHlwZUNvbXBvbmVudCB9XSB9KTtcclxuXHJcbmV4cG9ydCBjb25zdCB3aXRoRm9ybWx5RmllbGRPcHRpb25UYWcgPSAoKTogUHJvdmlkZXIgPT5cclxuICBwcm92aWRlQ29uZmlnKHsgdHlwZXM6IFt7IG5hbWU6ICdvcHRpb24tdGFnJywgY29tcG9uZW50OiBPcHRpb25UYWdUeXBlQ29tcG9uZW50IH1dIH0pO1xyXG5cclxuZXhwb3J0IGNvbnN0IHdpdGhGb3JtbHlGaWVsZFJlcGVhdCA9ICgpOiBQcm92aWRlciA9PlxyXG4gIHByb3ZpZGVDb25maWcoeyB0eXBlczogW3sgbmFtZTogJ3JlcGVhdCcsIGNvbXBvbmVudDogUmVwZWF0VHlwZUNvbXBvbmVudCB9XSB9KTtcclxuXHJcbmV4cG9ydCBjb25zdCB3aXRoRm9ybWx5RmllbGRUYWJzID0gKCk6IFByb3ZpZGVyID0+XHJcbiAgcHJvdmlkZUNvbmZpZyh7IHR5cGVzOiBbeyBuYW1lOiAndGFicycsIGNvbXBvbmVudDogVGFic1R5cGVDb21wb25lbnQgfV0gfSk7XHJcblxyXG5leHBvcnQgY29uc3Qgd2l0aEZvcm1seUZpZWxkVGFnID0gKCk6IFByb3ZpZGVyID0+XHJcbiAgcHJvdmlkZUNvbmZpZyh7IHR5cGVzOiBbeyBuYW1lOiAndGFnJywgY29tcG9uZW50OiBUYWdUeXBlQ29tcG9uZW50IH1dIH0pO1xyXG5cclxuZXhwb3J0IGNvbnN0IHdpdGhGb3JtbHlGaWVsZENvbG9yVGFnID0gKCk6IFByb3ZpZGVyID0+XHJcbiAgcHJvdmlkZUNvbmZpZyh7IHR5cGVzOiBbeyBuYW1lOiAnY29sb3ItdGFnJywgY29tcG9uZW50OiBDb2xvclRhZ1R5cGVDb21wb25lbnQgfV0gfSk7XHJcblxyXG5leHBvcnQgY29uc3Qgd2l0aEZvcm1seUZpZWxkQ29uZGl0aW9uQnVpbGRlciA9ICgpOiBQcm92aWRlciA9PlxyXG4gIHByb3ZpZGVDb25maWcoeyB0eXBlczogW3sgbmFtZTogJ2NvbmRpdGlvbi1idWlsZGVyJywgY29tcG9uZW50OiBDb25kaXRpb25FeHByZXNzaW9uQnVpbGRlclR5cGUsIHdyYXBwZXJzOiBbJ2Zvcm0tZmllbGQnXSB9XSB9KTtcclxuXHJcbmV4cG9ydCBjb25zdCB3aXRoRm9ybWx5RmllbGRJY29uUGlja2VyID0gKCk6IFByb3ZpZGVyID0+XHJcbiAgcHJvdmlkZUNvbmZpZyh7IHR5cGVzOiBbeyBuYW1lOiAnaWNvbi1waWNrZXInLCBjb21wb25lbnQ6IEljb25QaWNrZXJDb21wb25lbnQsIHdyYXBwZXJzOiBbJ2Zvcm0tZmllbGQtbm8nXSB9XSB9KTtcclxuXHJcbmV4cG9ydCBjb25zdCB3aXRoRm9ybWx5RmllbGRDb2xvclBpY2tlciA9ICgpOiBQcm92aWRlciA9PlxyXG4gIHByb3ZpZGVDb25maWcoeyB0eXBlczogW3sgbmFtZTogJ2NvbG9yLXBpY2tlcicsIGNvbXBvbmVudDogQ29sb3JQaWNrZXJDb21wb25lbnQsIHdyYXBwZXJzOiBbJ2Zvcm0tZmllbGQtbm8nXSB9XSB9KTtcclxuXHJcbmV4cG9ydCBjb25zdCB3aXRoRm9ybWx5RmllbGRUZW1wbGF0ZSA9ICgpOiBQcm92aWRlciA9PlxyXG4gIHByb3ZpZGVDb25maWcoeyB0eXBlczogW3sgbmFtZTogJ3RlbXBsYXRlJywgY29tcG9uZW50OiBGb3JtbHlUZW1wbGF0ZVR5cGUgfV0gfSk7XHJcblxyXG5leHBvcnQgY29uc3Qgd2l0aEZvcm1seUZpZWxkQnV0dG9uID0gKCk6IFByb3ZpZGVyID0+XHJcbiAgcHJvdmlkZUNvbmZpZyh7XHJcbiAgICB0eXBlczogW1xyXG4gICAgICB7XHJcbiAgICAgICAgbmFtZTogJ2J1dHRvbicsXHJcbiAgICAgICAgY29tcG9uZW50OiBGb3JtbHlGaWVsZEJ1dHRvbixcclxuICAgICAgICB3cmFwcGVyczogWydmb3JtLWZpZWxkJ10sXHJcbiAgICAgICAgZGVmYXVsdE9wdGlvbnM6IHsgcHJvcHM6IHsgYnRuVHlwZTogJ2RlZmF1bHQnLCB0eXBlOiAnYnV0dG9uJyB9IH0sXHJcbiAgICAgIH0sXHJcbiAgICBdLFxyXG4gIH0pO1xyXG5cclxuZXhwb3J0IGNvbnN0IHdpdGhGb3JtbHlGaWVsZEF2YXRhckltYWdlID0gKCk6IFByb3ZpZGVyID0+XHJcbiAgcHJvdmlkZUNvbmZpZyh7IHR5cGVzOiBbeyBuYW1lOiAnYXZhdGFyLWltYWdlJywgY29tcG9uZW50OiBGb3JtbHlBdmF0YXJJbWFnZUNvbXBvbmVudCB9XSB9KTtcclxuXHJcbi8vIC0tLS0gV3JhcHBlcnMgLS0tLVxyXG5cclxuZXhwb3J0IGNvbnN0IHdpdGhGb3JtbHlXcmFwcGVycyA9ICgpOiBQcm92aWRlciA9PlxyXG4gIHByb3ZpZGVDb25maWcoe1xyXG4gICAgd3JhcHBlcnM6IFtcclxuICAgICAgeyBuYW1lOiAncGFuZWwnLCBjb21wb25lbnQ6IFBhbmVsV3JhcHBlckNvbXBvbmVudCB9LFxyXG4gICAgICB7IG5hbWU6ICdsYWJlbCcsIGNvbXBvbmVudDogTGFiZWxXcmFwcGVyQ29tcG9uZW50IH0sXHJcbiAgICAgIHsgbmFtZTogJ3RkJywgY29tcG9uZW50OiBUZFdyYXBwZXJDb21wb25lbnQgfSxcclxuICAgIF0sXHJcbiAgfSk7XHJcblxyXG5cclxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtZm9ybWx5LXVpLWFsbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9mb3JtbHktdWktYWxsL3NyYy9lbGl0ZS5mcmFtZXdvcmstbmcudWkuY29yZS1mb3JtbHktdWktYWxsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}