UNPKG

stimulsoft-forms

Version:
160 lines 21.3 kB
import { Component, Input } from "@angular/core"; import { StiTableElement } from "../../../../elements/StiTableElement"; import { StiCheckBoxCellItem } from "../../../../elements/table/cells/StiCheckBoxCellItem"; import { StiComboBoxCellItem } from "../../../../elements/table/cells/StiComboBoxCellItem"; import { StiNumberBoxCellItem } from "../../../../elements/table/cells/StiNumberBoxCellItem"; import { StiRadioButtonCellItem } from "../../../../elements/table/cells/StiRadioButtonCellItem"; import { StiTextBoxCellItem } from "../../../../elements/table/cells/StiTextBoxCellItem"; import { StiCheckBoxColumnItem } from "../../../../elements/table/columns/StiCheckBoxColumnItem"; import { StiComboBoxColumnItem } from "../../../../elements/table/columns/StiComboBoxColumnItem"; import { StiLabelColumnItem } from "../../../../elements/table/columns/StiLabelColumnItem"; import { StiNumberBoxColumnItem } from "../../../../elements/table/columns/StiNumberBoxColumnItem"; import { StiRadioButtonColumnItem } from "../../../../elements/table/columns/StiRadioButtonColumnItem"; import { StiTextBoxColumnItem } from "../../../../elements/table/columns/StiTextBoxColumnItem"; import * as i0 from "@angular/core"; import * as i1 from "../../../../services/model.service"; import * as i2 from "../../../../services/sti-helper.service"; import * as i3 from "../../../../services/theme.service"; import * as i4 from "@angular/forms"; import * as i5 from "../../../../directives/sti-input-text-area.directive"; export class StiMultilineStringEditorComponent { constructor(model, helper, theme) { this.model = model; this.helper = helper; this.theme = theme; } ngOnInit() { } get options() { if (this.object) { return this.object.comboBoxOptions; } else { return this.optionsElement.options ? this.optionsElement.options : this.optionsElement.rowLabels; } } get values() { return this.options.join("\n"); } get optionsElement() { return this.model.selectedComponent.element ? this.model.selectedComponent.element : this.helper.getProperty(this.model.selectedComponent.element, this.property.property); } onInput(value) { let rows = this.optionsElement.rowLabels; if (this.object) { this.object.comboBoxOptions = value.split("\n"); } else { this.optionsElement.options ? (this.optionsElement.options = value.split("\n")) : this.helper.setProperty(this.model.selectedComponent.element, this.property.property, value.split("\n")); if ("selectedOption" in this.optionsElement) { try { if (this.optionsElement.options.indexOf(this.optionsElement.selectedOption) < 0) { this.optionsElement.selectedOption = null; } } catch { this.optionsElement.selectedOption = null; } } } if (rows && rows != this.optionsElement.RowLabels && this.model.selectedComponent.element instanceof StiTableElement) { let values = value.split("\n"); values.forEach(() => { this.model.selectedComponent.element.columns.forEach((column) => { if (column.type == "CheckBoxColumn" && column instanceof StiCheckBoxColumnItem) { column.cells.push(new StiCheckBoxCellItem("", false)); } else if (column.type == "ComboBoxColumn" && column instanceof StiComboBoxColumnItem) { column.cells.push(new StiComboBoxCellItem("", 0)); } else if (column.type == "RadioButtonColumn" && column instanceof StiRadioButtonColumnItem) { column.cells.push(new StiRadioButtonCellItem("", false)); } else if (column.type == "TextBoxColumn" && column instanceof StiTextBoxColumnItem) { column.cells.push(new StiTextBoxCellItem("", "")); } else if (column.type == "NumberBoxColumn" && column instanceof StiNumberBoxColumnItem) { column.cells.push(new StiNumberBoxCellItem("", 0)); } else if (column.type == "LabelColumn" && column instanceof StiLabelColumnItem) { column.cells.push(""); } }); }); } this.model.formEvents.next({ name: "ValueChanged" }); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: StiMultilineStringEditorComponent, deps: [{ token: i1.StiModelService }, { token: i2.StiHelperService }, { token: i3.StiThemeService }], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: StiMultilineStringEditorComponent, selector: "sti-multiline-string-editor", inputs: { property: "property", object: "object" }, ngImport: i0, template: ` <table class="sti-clear" [style]="{ width: '100%' }"> <tr [style]="{ width: '100%' }"> <td colspan="7"> <textarea stiInputTextArea [ngModel]="values" (input)="onInput($event.target.value)" [style]="{ width: '100%', resize: 'none' }" [style.height]="object ? 'max-content' : '100px'" ></textarea> </td> </tr> <style> tr { padding: 3px 0px 3px 0px; } textarea { font-size: 13px; font-weight: 600; padding: 2px 4px; } td { padding: 0; } </style> </table> `, isInline: true, styles: ["\n tr {\n padding: 3px 0px 3px 0px;\n }\n textarea {\n font-size: 13px;\n font-weight: 600;\n padding: 2px 4px;\n }\n td {\n padding: 0;\n }\n "], dependencies: [{ kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.StiInputTextAreaDirective, selector: "[stiInputTextArea]" }] }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: StiMultilineStringEditorComponent, decorators: [{ type: Component, args: [{ selector: "sti-multiline-string-editor", template: ` <table class="sti-clear" [style]="{ width: '100%' }"> <tr [style]="{ width: '100%' }"> <td colspan="7"> <textarea stiInputTextArea [ngModel]="values" (input)="onInput($event.target.value)" [style]="{ width: '100%', resize: 'none' }" [style.height]="object ? 'max-content' : '100px'" ></textarea> </td> </tr> <style> tr { padding: 3px 0px 3px 0px; } textarea { font-size: 13px; font-weight: 600; padding: 2px 4px; } td { padding: 0; } </style> </table> `, }] }], ctorParameters: () => [{ type: i1.StiModelService }, { type: i2.StiHelperService }, { type: i3.StiThemeService }], propDecorators: { property: [{ type: Input }], object: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RpLW11bHRpbGluZS1zdHJpbmctZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N0aW11bHNvZnQtZm9ybXMvc3JjL2xpYi9jb21wb25lbnRzL3Byb3BlcnR5R3JpZC9lZGl0b3JzL3N0aS1tdWx0aWxpbmUtc3RyaW5nLWVkaXRvci9zdGktbXVsdGlsaW5lLXN0cmluZy1lZGl0b3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUMzRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUMzRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUM3RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUN6RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUNqRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUMzRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUNuRyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUN2RyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5REFBeUQsQ0FBQzs7Ozs7OztBQXNDL0YsTUFBTSxPQUFPLGlDQUFpQztJQUk1QyxZQUFtQixLQUFzQixFQUFTLE1BQXdCLEVBQVMsS0FBc0I7UUFBdEYsVUFBSyxHQUFMLEtBQUssQ0FBaUI7UUFBUyxXQUFNLEdBQU4sTUFBTSxDQUFrQjtRQUFTLFVBQUssR0FBTCxLQUFLLENBQWlCO0lBQUcsQ0FBQztJQUU3RyxRQUFRLEtBQVUsQ0FBQztJQUVuQixJQUFXLE9BQU87UUFDaEIsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDaEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQztRQUNyQyxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQztRQUNuRyxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQVcsTUFBTTtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELElBQVcsY0FBYztRQUN2QixPQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsT0FBMEM7WUFDN0UsQ0FBQyxDQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsT0FBMEM7WUFDMUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDNUYsQ0FBQztJQUNELE9BQU8sQ0FBQyxLQUFhO1FBQ25CLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDO1FBQ3pDLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxNQUFNLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEQsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU87Z0JBQ3pCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ25ELENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDN0csSUFBSSxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQzVDLElBQUksQ0FBQztvQkFDSCxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO3dCQUNoRixJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7b0JBQzVDLENBQUM7Z0JBQ0gsQ0FBQztnQkFBQyxNQUFNLENBQUM7b0JBQ1AsSUFBSSxDQUFDLGNBQWMsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO2dCQUM1QyxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFFRCxJQUNFLElBQUk7WUFDSixJQUFJLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTO1lBQ3JDLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsT0FBTyxZQUFZLGVBQWUsRUFDL0QsQ0FBQztZQUNELElBQUksTUFBTSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDL0IsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsT0FBMkIsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7b0JBQ25GLElBQUksTUFBTSxDQUFDLElBQUksSUFBSSxnQkFBZ0IsSUFBSSxNQUFNLFlBQVkscUJBQXFCLEVBQUUsQ0FBQzt3QkFDL0UsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxtQkFBbUIsQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztvQkFDeEQsQ0FBQzt5QkFBTSxJQUFJLE1BQU0sQ0FBQyxJQUFJLElBQUksZ0JBQWdCLElBQUksTUFBTSxZQUFZLHFCQUFxQixFQUFFLENBQUM7d0JBQ3RGLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksbUJBQW1CLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ3BELENBQUM7eUJBQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxJQUFJLG1CQUFtQixJQUFJLE1BQU0sWUFBWSx3QkFBd0IsRUFBRSxDQUFDO3dCQUM1RixNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLHNCQUFzQixDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO29CQUMzRCxDQUFDO3lCQUFNLElBQUksTUFBTSxDQUFDLElBQUksSUFBSSxlQUFlLElBQUksTUFBTSxZQUFZLG9CQUFvQixFQUFFLENBQUM7d0JBQ3BGLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksa0JBQWtCLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQ3BELENBQUM7eUJBQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxJQUFJLGlCQUFpQixJQUFJLE1BQU0sWUFBWSxzQkFBc0IsRUFBRSxDQUFDO3dCQUN4RixNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLG9CQUFvQixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNyRCxDQUFDO3lCQUFNLElBQUksTUFBTSxDQUFDLElBQUksSUFBSSxhQUFhLElBQUksTUFBTSxZQUFZLGtCQUFrQixFQUFFLENBQUM7d0JBQ2hGLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUN4QixDQUFDO2dCQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxDQUFDLENBQUM7SUFDdkQsQ0FBQzsrR0F0RVUsaUNBQWlDO21HQUFqQyxpQ0FBaUMsdUhBN0JsQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkJUOzs0RkFFVSxpQ0FBaUM7a0JBL0I3QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw2QkFBNkI7b0JBQ3ZDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMkJUO2lCQUNGO2lKQUVVLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgU3RpVGFibGVFbGVtZW50IH0gZnJvbSBcIi4uLy4uLy4uLy4uL2VsZW1lbnRzL1N0aVRhYmxlRWxlbWVudFwiO1xyXG5pbXBvcnQgeyBTdGlDaGVja0JveENlbGxJdGVtIH0gZnJvbSBcIi4uLy4uLy4uLy4uL2VsZW1lbnRzL3RhYmxlL2NlbGxzL1N0aUNoZWNrQm94Q2VsbEl0ZW1cIjtcclxuaW1wb3J0IHsgU3RpQ29tYm9Cb3hDZWxsSXRlbSB9IGZyb20gXCIuLi8uLi8uLi8uLi9lbGVtZW50cy90YWJsZS9jZWxscy9TdGlDb21ib0JveENlbGxJdGVtXCI7XHJcbmltcG9ydCB7IFN0aU51bWJlckJveENlbGxJdGVtIH0gZnJvbSBcIi4uLy4uLy4uLy4uL2VsZW1lbnRzL3RhYmxlL2NlbGxzL1N0aU51bWJlckJveENlbGxJdGVtXCI7XHJcbmltcG9ydCB7IFN0aVJhZGlvQnV0dG9uQ2VsbEl0ZW0gfSBmcm9tIFwiLi4vLi4vLi4vLi4vZWxlbWVudHMvdGFibGUvY2VsbHMvU3RpUmFkaW9CdXR0b25DZWxsSXRlbVwiO1xyXG5pbXBvcnQgeyBTdGlUZXh0Qm94Q2VsbEl0ZW0gfSBmcm9tIFwiLi4vLi4vLi4vLi4vZWxlbWVudHMvdGFibGUvY2VsbHMvU3RpVGV4dEJveENlbGxJdGVtXCI7XHJcbmltcG9ydCB7IFN0aUNoZWNrQm94Q29sdW1uSXRlbSB9IGZyb20gXCIuLi8uLi8uLi8uLi9lbGVtZW50cy90YWJsZS9jb2x1bW5zL1N0aUNoZWNrQm94Q29sdW1uSXRlbVwiO1xyXG5pbXBvcnQgeyBTdGlDb21ib0JveENvbHVtbkl0ZW0gfSBmcm9tIFwiLi4vLi4vLi4vLi4vZWxlbWVudHMvdGFibGUvY29sdW1ucy9TdGlDb21ib0JveENvbHVtbkl0ZW1cIjtcclxuaW1wb3J0IHsgU3RpTGFiZWxDb2x1bW5JdGVtIH0gZnJvbSBcIi4uLy4uLy4uLy4uL2VsZW1lbnRzL3RhYmxlL2NvbHVtbnMvU3RpTGFiZWxDb2x1bW5JdGVtXCI7XHJcbmltcG9ydCB7IFN0aU51bWJlckJveENvbHVtbkl0ZW0gfSBmcm9tIFwiLi4vLi4vLi4vLi4vZWxlbWVudHMvdGFibGUvY29sdW1ucy9TdGlOdW1iZXJCb3hDb2x1bW5JdGVtXCI7XHJcbmltcG9ydCB7IFN0aVJhZGlvQnV0dG9uQ29sdW1uSXRlbSB9IGZyb20gXCIuLi8uLi8uLi8uLi9lbGVtZW50cy90YWJsZS9jb2x1bW5zL1N0aVJhZGlvQnV0dG9uQ29sdW1uSXRlbVwiO1xyXG5pbXBvcnQgeyBTdGlUZXh0Qm94Q29sdW1uSXRlbSB9IGZyb20gXCIuLi8uLi8uLi8uLi9lbGVtZW50cy90YWJsZS9jb2x1bW5zL1N0aVRleHRCb3hDb2x1bW5JdGVtXCI7XHJcbmltcG9ydCB7IFN0aU1vZGVsU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi8uLi9zZXJ2aWNlcy9tb2RlbC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFN0aUVkaXRvclByb3BlcnR5IH0gZnJvbSBcIi4uLy4uLy4uLy4uL3NlcnZpY2VzL29iamVjdHNcIjtcclxuaW1wb3J0IHsgU3RpSGVscGVyU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi8uLi9zZXJ2aWNlcy9zdGktaGVscGVyLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgU3RpVGhlbWVTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uLy4uL3NlcnZpY2VzL3RoZW1lLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgU3RpT3B0aW9uc0VsZW1lbnQgfSBmcm9tIFwiLi4vLi4vLi4vLi4vc3lzdGVtL2ludGVyZmFjZXNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcInN0aS1tdWx0aWxpbmUtc3RyaW5nLWVkaXRvclwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8dGFibGUgY2xhc3M9XCJzdGktY2xlYXJcIiBbc3R5bGVdPVwieyB3aWR0aDogJzEwMCUnIH1cIj5cclxuICAgICAgPHRyIFtzdHlsZV09XCJ7IHdpZHRoOiAnMTAwJScgfVwiPlxyXG4gICAgICAgIDx0ZCBjb2xzcGFuPVwiN1wiPlxyXG4gICAgICAgICAgPHRleHRhcmVhXHJcbiAgICAgICAgICAgIHN0aUlucHV0VGV4dEFyZWFcclxuICAgICAgICAgICAgW25nTW9kZWxdPVwidmFsdWVzXCJcclxuICAgICAgICAgICAgKGlucHV0KT1cIm9uSW5wdXQoJGV2ZW50LnRhcmdldC52YWx1ZSlcIlxyXG4gICAgICAgICAgICBbc3R5bGVdPVwieyB3aWR0aDogJzEwMCUnLCByZXNpemU6ICdub25lJyB9XCJcclxuICAgICAgICAgICAgW3N0eWxlLmhlaWdodF09XCJvYmplY3QgPyAnbWF4LWNvbnRlbnQnIDogJzEwMHB4J1wiXHJcbiAgICAgICAgICA+PC90ZXh0YXJlYT5cclxuICAgICAgICA8L3RkPlxyXG4gICAgICA8L3RyPlxyXG4gICAgICA8c3R5bGU+XHJcbiAgICAgICAgdHIge1xyXG4gICAgICAgICAgcGFkZGluZzogM3B4IDBweCAzcHggMHB4O1xyXG4gICAgICAgIH1cclxuICAgICAgICB0ZXh0YXJlYSB7XHJcbiAgICAgICAgICBmb250LXNpemU6IDEzcHg7XHJcbiAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICAgICAgcGFkZGluZzogMnB4IDRweDtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGQge1xyXG4gICAgICAgICAgcGFkZGluZzogMDtcclxuICAgICAgICB9XHJcbiAgICAgIDwvc3R5bGU+XHJcbiAgICA8L3RhYmxlPlxyXG4gIGAsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTdGlNdWx0aWxpbmVTdHJpbmdFZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIHByb3BlcnR5OiBTdGlFZGl0b3JQcm9wZXJ0eTtcclxuICBASW5wdXQoKSBvYmplY3Q6IGFueTtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIG1vZGVsOiBTdGlNb2RlbFNlcnZpY2UsIHB1YmxpYyBoZWxwZXI6IFN0aUhlbHBlclNlcnZpY2UsIHB1YmxpYyB0aGVtZTogU3RpVGhlbWVTZXJ2aWNlKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHt9XHJcblxyXG4gIHB1YmxpYyBnZXQgb3B0aW9ucygpOiBzdHJpbmdbXSB7XHJcbiAgICBpZiAodGhpcy5vYmplY3QpIHtcclxuICAgICAgcmV0dXJuIHRoaXMub2JqZWN0LmNvbWJvQm94T3B0aW9ucztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLm9wdGlvbnNFbGVtZW50Lm9wdGlvbnMgPyB0aGlzLm9wdGlvbnNFbGVtZW50Lm9wdGlvbnMgOiB0aGlzLm9wdGlvbnNFbGVtZW50LnJvd0xhYmVscztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgdmFsdWVzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLmpvaW4oXCJcXG5cIik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IG9wdGlvbnNFbGVtZW50KCkge1xyXG4gICAgcmV0dXJuICh0aGlzLm1vZGVsLnNlbGVjdGVkQ29tcG9uZW50LmVsZW1lbnQgYXMgdW5kZWZpbmVkIGFzIFN0aU9wdGlvbnNFbGVtZW50KVxyXG4gICAgICA/ICh0aGlzLm1vZGVsLnNlbGVjdGVkQ29tcG9uZW50LmVsZW1lbnQgYXMgdW5kZWZpbmVkIGFzIFN0aU9wdGlvbnNFbGVtZW50KVxyXG4gICAgICA6IHRoaXMuaGVscGVyLmdldFByb3BlcnR5KHRoaXMubW9kZWwuc2VsZWN0ZWRDb21wb25lbnQuZWxlbWVudCwgdGhpcy5wcm9wZXJ0eS5wcm9wZXJ0eSk7XHJcbiAgfVxyXG4gIG9uSW5wdXQodmFsdWU6IHN0cmluZykge1xyXG4gICAgbGV0IHJvd3MgPSB0aGlzLm9wdGlvbnNFbGVtZW50LnJvd0xhYmVscztcclxuICAgIGlmICh0aGlzLm9iamVjdCkge1xyXG4gICAgICB0aGlzLm9iamVjdC5jb21ib0JveE9wdGlvbnMgPSB2YWx1ZS5zcGxpdChcIlxcblwiKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMub3B0aW9uc0VsZW1lbnQub3B0aW9uc1xyXG4gICAgICAgID8gKHRoaXMub3B0aW9uc0VsZW1lbnQub3B0aW9ucyA9IHZhbHVlLnNwbGl0KFwiXFxuXCIpKVxyXG4gICAgICAgIDogdGhpcy5oZWxwZXIuc2V0UHJvcGVydHkodGhpcy5tb2RlbC5zZWxlY3RlZENvbXBvbmVudC5lbGVtZW50LCB0aGlzLnByb3BlcnR5LnByb3BlcnR5LCB2YWx1ZS5zcGxpdChcIlxcblwiKSk7XHJcbiAgICAgIGlmIChcInNlbGVjdGVkT3B0aW9uXCIgaW4gdGhpcy5vcHRpb25zRWxlbWVudCkge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICBpZiAodGhpcy5vcHRpb25zRWxlbWVudC5vcHRpb25zLmluZGV4T2YodGhpcy5vcHRpb25zRWxlbWVudC5zZWxlY3RlZE9wdGlvbikgPCAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMub3B0aW9uc0VsZW1lbnQuc2VsZWN0ZWRPcHRpb24gPSBudWxsO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gY2F0Y2gge1xyXG4gICAgICAgICAgdGhpcy5vcHRpb25zRWxlbWVudC5zZWxlY3RlZE9wdGlvbiA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICByb3dzICYmXHJcbiAgICAgIHJvd3MgIT0gdGhpcy5vcHRpb25zRWxlbWVudC5Sb3dMYWJlbHMgJiZcclxuICAgICAgdGhpcy5tb2RlbC5zZWxlY3RlZENvbXBvbmVudC5lbGVtZW50IGluc3RhbmNlb2YgU3RpVGFibGVFbGVtZW50XHJcbiAgICApIHtcclxuICAgICAgbGV0IHZhbHVlcyA9IHZhbHVlLnNwbGl0KFwiXFxuXCIpO1xyXG4gICAgICB2YWx1ZXMuZm9yRWFjaCgoKSA9PiB7XHJcbiAgICAgICAgKHRoaXMubW9kZWwuc2VsZWN0ZWRDb21wb25lbnQuZWxlbWVudCBhcyBTdGlUYWJsZUVsZW1lbnQpLmNvbHVtbnMuZm9yRWFjaCgoY29sdW1uKSA9PiB7XHJcbiAgICAgICAgICBpZiAoY29sdW1uLnR5cGUgPT0gXCJDaGVja0JveENvbHVtblwiICYmIGNvbHVtbiBpbnN0YW5jZW9mIFN0aUNoZWNrQm94Q29sdW1uSXRlbSkge1xyXG4gICAgICAgICAgICBjb2x1bW4uY2VsbHMucHVzaChuZXcgU3RpQ2hlY2tCb3hDZWxsSXRlbShcIlwiLCBmYWxzZSkpO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChjb2x1bW4udHlwZSA9PSBcIkNvbWJvQm94Q29sdW1uXCIgJiYgY29sdW1uIGluc3RhbmNlb2YgU3RpQ29tYm9Cb3hDb2x1bW5JdGVtKSB7XHJcbiAgICAgICAgICAgIGNvbHVtbi5jZWxscy5wdXNoKG5ldyBTdGlDb21ib0JveENlbGxJdGVtKFwiXCIsIDApKTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAoY29sdW1uLnR5cGUgPT0gXCJSYWRpb0J1dHRvbkNvbHVtblwiICYmIGNvbHVtbiBpbnN0YW5jZW9mIFN0aVJhZGlvQnV0dG9uQ29sdW1uSXRlbSkge1xyXG4gICAgICAgICAgICBjb2x1bW4uY2VsbHMucHVzaChuZXcgU3RpUmFkaW9CdXR0b25DZWxsSXRlbShcIlwiLCBmYWxzZSkpO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChjb2x1bW4udHlwZSA9PSBcIlRleHRCb3hDb2x1bW5cIiAmJiBjb2x1bW4gaW5zdGFuY2VvZiBTdGlUZXh0Qm94Q29sdW1uSXRlbSkge1xyXG4gICAgICAgICAgICBjb2x1bW4uY2VsbHMucHVzaChuZXcgU3RpVGV4dEJveENlbGxJdGVtKFwiXCIsIFwiXCIpKTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAoY29sdW1uLnR5cGUgPT0gXCJOdW1iZXJCb3hDb2x1bW5cIiAmJiBjb2x1bW4gaW5zdGFuY2VvZiBTdGlOdW1iZXJCb3hDb2x1bW5JdGVtKSB7XHJcbiAgICAgICAgICAgIGNvbHVtbi5jZWxscy5wdXNoKG5ldyBTdGlOdW1iZXJCb3hDZWxsSXRlbShcIlwiLCAwKSk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKGNvbHVtbi50eXBlID09IFwiTGFiZWxDb2x1bW5cIiAmJiBjb2x1bW4gaW5zdGFuY2VvZiBTdGlMYWJlbENvbHVtbkl0ZW0pIHtcclxuICAgICAgICAgICAgY29sdW1uLmNlbGxzLnB1c2goXCJcIik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMubW9kZWwuZm9ybUV2ZW50cy5uZXh0KHsgbmFtZTogXCJWYWx1ZUNoYW5nZWRcIiB9KTtcclxuICB9XHJcbn1cclxuIl19