lib-portal-angular 0.0.113 → 0.0.114

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.
@@ -34,6 +34,13 @@ export class JsonEditorComponent {
34
34
  this.jsonText = this.formatJson(this.data);
35
35
  this.isValidJson = this.checkValidJson(this.jsonText);
36
36
  }
37
+ ngOnChanges(changes) {
38
+ if (changes['data'] && !changes['data'].firstChange) {
39
+ this.jsonText = this.formatJson(this.data);
40
+ this.isValidJson = this.checkValidJson(this.jsonText);
41
+ this.isJsonValid.emit(this.isValidJson);
42
+ }
43
+ }
37
44
  onTextChange(text) {
38
45
  this.jsonText = text;
39
46
  this.isValidJson = this.checkValidJson(text);
@@ -46,6 +53,9 @@ export class JsonEditorComponent {
46
53
  this.isValidJson = false;
47
54
  }
48
55
  }
56
+ if (text.trim().length === 0) {
57
+ this.jsonChange.emit('');
58
+ }
49
59
  this.isJsonValid.emit(this.isValidJson);
50
60
  }
51
61
  format() {
@@ -109,7 +119,7 @@ export class JsonEditorComponent {
109
119
  return fixed;
110
120
  }
111
121
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: JsonEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
112
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: JsonEditorComponent, selector: "argenta-json-editor", inputs: { data: "data", readonly: "readonly" }, outputs: { jsonChange: "jsonChange", isJsonValid: "isJsonValid" }, ngImport: i0, template: "<div class=\"json-editor-container\">\n <div\n class=\"status-indicator\"\n *ngIf=\"!readonly\"\n [ngClass]=\"{ valid: isValidJson, invalid: !isValidJson }\"\n >\n {{ isValidJson ? \"\u2705\" : \"\u274C\" }}\n </div>\n\n <div class=\"actions\" *ngIf=\"!readonly\">\n <button (click)=\"format()\">\n <i-lucide name=\"file-json\" [size]=\"20\" color=\"white\"></i-lucide>\n </button>\n <button (click)=\"copyToClipboard()\">\n <i-lucide name=\"copy\" [size]=\"20\" color=\"white\"></i-lucide>\n </button>\n <button class=\"info\" (click)=\"toggleExample()\">\n <i-lucide name=\"info\" [size]=\"20\" color=\"white\"></i-lucide>\n </button>\n\n <span class=\"feedback\" *ngIf=\"copyFeedback\">{{ copyFeedback }}</span>\n </div>\n\n <div class=\"example-box\" *ngIf=\"showExample\">\n <pre>{{ formattedExample }}</pre>\n </div>\n\n <textarea\n [readonly]=\"readonly\"\n [ngClass]=\"{ invalid: !isValidJson }\"\n [(ngModel)]=\"jsonText\"\n (ngModelChange)=\"onTextChange($event)\"\n placeholder=\"Digite ou cole seu JSON aqui...\"\n ></textarea>\n</div>\n", styles: [".json-editor-container{position:relative;width:100%}.json-editor-container textarea{width:100%;height:300px;padding:10px 12px;font-family:monospace;font-size:14px;border:1px solid #ccc;border-radius:8px;resize:vertical;box-sizing:border-box}.json-editor-container textarea.invalid{border-color:#ef4444}.json-editor-container .actions{display:flex;gap:8px;margin-bottom:10px}.json-editor-container .actions button{padding:6px 12px;border:none;border-radius:6px;background-color:var(--primary-color);color:#fff;cursor:pointer}.json-editor-container .actions .feedback{font-size:12px;color:#10b981;margin-left:8px;align-self:center}.json-editor-container .status-indicator{position:absolute;top:10px;right:12px;height:32px;width:32px;border-radius:6px;text-align:center;line-height:32px;font-size:16px;background-color:#f3f4f6;box-shadow:0 0 0 1px #ccc}.json-editor-container .status-indicator.valid{color:#10b981}.json-editor-container .status-indicator.invalid{color:#ef4444}.json-editor-container .info-button{position:absolute;top:10px;left:12px;height:32px;width:32px;border-radius:6px;background-color:#f3f4f6;text-align:center;line-height:32px;font-size:18px;cursor:pointer;box-shadow:0 0 0 1px #ccc}.json-editor-container .info-button:hover{background-color:#e5e7eb}.json-editor-container .example-box{background-color:#f9fafb;border:1px solid #ccc;border-radius:8px;padding:10px;margin-bottom:10px;font-family:monospace;font-size:14px;white-space:pre;overflow-x:auto}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.LucideAngularComponent, selector: "lucide-angular, lucide-icon, i-lucide, span-lucide", inputs: ["class", "name", "img", "color", "absoluteStrokeWidth", "size", "strokeWidth"] }] }); }
122
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: JsonEditorComponent, selector: "argenta-json-editor", inputs: { data: "data", readonly: "readonly" }, outputs: { jsonChange: "jsonChange", isJsonValid: "isJsonValid" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"json-editor-container\">\n <div\n class=\"status-indicator\"\n *ngIf=\"!readonly\"\n [ngClass]=\"{ valid: isValidJson, invalid: !isValidJson }\"\n >\n {{ isValidJson ? \"\u2705\" : \"\u274C\" }}\n </div>\n\n <div class=\"actions\" *ngIf=\"!readonly\">\n <button (click)=\"format()\">\n <i-lucide name=\"file-json\" [size]=\"20\" color=\"white\"></i-lucide>\n </button>\n <button (click)=\"copyToClipboard()\">\n <i-lucide name=\"copy\" [size]=\"20\" color=\"white\"></i-lucide>\n </button>\n <button class=\"info\" (click)=\"toggleExample()\">\n <i-lucide name=\"info\" [size]=\"20\" color=\"white\"></i-lucide>\n </button>\n\n <span class=\"feedback\" *ngIf=\"copyFeedback\">{{ copyFeedback }}</span>\n </div>\n\n <div class=\"example-box\" *ngIf=\"showExample\">\n <pre>{{ formattedExample }}</pre>\n </div>\n\n <textarea\n [readonly]=\"readonly\"\n [ngClass]=\"{ invalid: !isValidJson }\"\n [(ngModel)]=\"jsonText\"\n (ngModelChange)=\"onTextChange($event)\"\n placeholder=\"Digite ou cole seu JSON aqui...\"\n ></textarea>\n</div>\n", styles: [".json-editor-container{position:relative;width:100%}.json-editor-container textarea{width:100%;height:300px;padding:10px 12px;font-family:monospace;font-size:14px;border:1px solid #ccc;border-radius:8px;resize:vertical;box-sizing:border-box}.json-editor-container textarea.invalid{border-color:#ef4444}.json-editor-container .actions{display:flex;gap:8px;margin-bottom:10px}.json-editor-container .actions button{padding:6px 12px;border:none;border-radius:6px;background-color:var(--primary-color);color:#fff;cursor:pointer}.json-editor-container .actions .feedback{font-size:12px;color:#10b981;margin-left:8px;align-self:center}.json-editor-container .status-indicator{position:absolute;top:10px;right:12px;height:32px;width:32px;border-radius:6px;text-align:center;line-height:32px;font-size:16px;background-color:#f3f4f6;box-shadow:0 0 0 1px #ccc}.json-editor-container .status-indicator.valid{color:#10b981}.json-editor-container .status-indicator.invalid{color:#ef4444}.json-editor-container .info-button{position:absolute;top:10px;left:12px;height:32px;width:32px;border-radius:6px;background-color:#f3f4f6;text-align:center;line-height:32px;font-size:18px;cursor:pointer;box-shadow:0 0 0 1px #ccc}.json-editor-container .info-button:hover{background-color:#e5e7eb}.json-editor-container .example-box{background-color:#f9fafb;border:1px solid #ccc;border-radius:8px;padding:10px;margin-bottom:10px;font-family:monospace;font-size:14px;white-space:pre;overflow-x:auto}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.LucideAngularComponent, selector: "lucide-angular, lucide-icon, i-lucide, span-lucide", inputs: ["class", "name", "img", "color", "absoluteStrokeWidth", "size", "strokeWidth"] }] }); }
113
123
  }
114
124
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: JsonEditorComponent, decorators: [{
115
125
  type: Component,
@@ -123,4 +133,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
123
133
  }], isJsonValid: [{
124
134
  type: Output
125
135
  }] } });
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGliLXBvcnRhbC1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9qc29uLWVkaXRvci9qc29uLWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saWItcG9ydGFsLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2pzb24tZWRpdG9yL2pzb24tZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUE7Ozs7O0FBTzlFLE1BQU0sT0FBTyxtQkFBbUI7SUFMaEM7UUFPVyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBQ3pCLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3JDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQTtRQUVuRCxhQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ2QsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFDbkIsaUJBQVksR0FBRyxFQUFFLENBQUM7UUFDbEIsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsZ0JBQVcsR0FBRztZQUNaLElBQUksRUFBRSxNQUFNO1lBQ1osS0FBSyxFQUFFLEVBQUU7WUFDVCxLQUFLLEVBQUUsSUFBSTtZQUNYLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO1lBQ3RCLFFBQVEsRUFBRTtnQkFDUixNQUFNLEVBQUUsV0FBVztnQkFDbkIsTUFBTSxFQUFFLElBQUk7YUFDYjtZQUNELEtBQUssRUFBRSxJQUFJO1NBQ1osQ0FBQztLQTBHSDtJQXhHQyxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDbEQsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQTtJQUN0QyxDQUFDO0lBR0QsUUFBUTtRQUNOLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDMUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUN2RCxDQUFDO0lBRUQsWUFBWSxDQUFDLElBQVk7UUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUE7UUFDcEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBRTVDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQixJQUFJO2dCQUNGLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUE7Z0JBQy9CLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO2FBQzdCO1lBQUMsTUFBTTtnQkFDTixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQTthQUN6QjtTQUNGO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFBO0lBQ3pDLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSTtZQUNGLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7WUFDbkQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQTtZQUNoQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQTtZQUMvQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQTtZQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtTQUM3QjtRQUFDLE1BQU07WUFDTixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQTtTQUN6QjtRQUNELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQTtJQUN6QyxDQUFDO0lBR0QsZUFBZTtRQUNiLFNBQVMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ3JELElBQUksQ0FBQyxZQUFZLEdBQUcsVUFBVSxDQUFBO1lBQzlCLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUNoRCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFTyxjQUFjLENBQUMsSUFBWTtRQUNqQyxJQUFJO1lBQ0YsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUNoQixPQUFPLElBQUksQ0FBQTtTQUNaO1FBQUMsTUFBTTtZQUNOLE9BQU8sS0FBSyxDQUFBO1NBQ2I7SUFDSCxDQUFDO0lBRU8sVUFBVSxDQUFDLElBQVM7UUFDMUIsSUFBSTtZQUNGLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFBO1NBQ3JDO1FBQUMsTUFBTTtZQUNOLE9BQU8sRUFBRSxDQUFBO1NBQ1Y7SUFDSCxDQUFDO0lBRU8saUJBQWlCLENBQUMsSUFBWTtRQUNwQyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUM7UUFFakIsNENBQTRDO1FBQzVDLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLDBCQUEwQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRXRELHVDQUF1QztRQUN2QyxLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFNUMsNENBQTRDO1FBQzVDLEtBQUssR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRTVDLHNDQUFzQztRQUN0QyxLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxpQ0FBaUMsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUVwRSxnREFBZ0Q7UUFDaEQsS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQ25CLDhDQUE4QyxFQUM5QyxDQUFDLE1BQU0sRUFBRSxFQUFVLEVBQUUsRUFBRTtZQUNyQixNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDcEIsaURBQWlEO1lBQ2pELElBQUksbUNBQW1DLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDM0MscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFO2dCQUMvQyxPQUFPLEtBQUssQ0FBQyxFQUFFLENBQUM7YUFDakI7WUFDRCxzREFBc0Q7WUFDdEQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDdkMsT0FBTyxNQUFNLE9BQU8sR0FBRyxDQUFDO1FBQzFCLENBQUMsQ0FDRixDQUFDO1FBRUYsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOytHQXpIVSxtQkFBbUI7bUdBQW5CLG1CQUFtQiw4S0NQaEMsc21DQW1DQTs7NEZENUJhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxxQkFBcUI7OEJBS3RCLElBQUk7c0JBQVosS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNJLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcmdlbnRhLWpzb24tZWRpdG9yJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2pzb24tZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vanNvbi1lZGl0b3IuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgSnNvbkVkaXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGRhdGE6IGFueVxuICBASW5wdXQoKSByZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xuICBAT3V0cHV0KCkganNvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgaXNKc29uVmFsaWQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KClcblxuICBqc29uVGV4dCA9ICcnO1xuICBpc1ZhbGlkSnNvbiA9IHRydWU7XG4gIGNvcHlGZWVkYmFjayA9ICcnO1xuICBzaG93RXhhbXBsZSA9IGZhbHNlO1xuICBleGFtcGxlSnNvbiA9IHtcbiAgICBub21lOiBcIkpvw6NvXCIsXG4gICAgaWRhZGU6IDMwLFxuICAgIGF0aXZvOiB0cnVlLFxuICAgIG5vdGFzOiBbOS41LCA4LjMsIDcuOF0sXG4gICAgZW5kZXJlY286IHtcbiAgICAgIGNpZGFkZTogXCJTw6NvIFBhdWxvXCIsXG4gICAgICBlc3RhZG86IFwiU1BcIlxuICAgIH0sXG4gICAgZW1haWw6IG51bGxcbiAgfTtcblxuICBnZXQgZm9ybWF0dGVkRXhhbXBsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzLmV4YW1wbGVKc29uLCBudWxsLCAyKVxuICB9XG5cbiAgdG9nZ2xlRXhhbXBsZSgpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dFeGFtcGxlID0gIXRoaXMuc2hvd0V4YW1wbGVcbiAgfVxuXG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5qc29uVGV4dCA9IHRoaXMuZm9ybWF0SnNvbih0aGlzLmRhdGEpXG4gICAgdGhpcy5pc1ZhbGlkSnNvbiA9IHRoaXMuY2hlY2tWYWxpZEpzb24odGhpcy5qc29uVGV4dClcbiAgfVxuXG4gIG9uVGV4dENoYW5nZSh0ZXh0OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmpzb25UZXh0ID0gdGV4dFxuICAgIHRoaXMuaXNWYWxpZEpzb24gPSB0aGlzLmNoZWNrVmFsaWRKc29uKHRleHQpXG5cbiAgICBpZiAodGhpcy5pc1ZhbGlkSnNvbikge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcGFyc2VkID0gSlNPTi5wYXJzZSh0ZXh0KVxuICAgICAgICB0aGlzLmpzb25DaGFuZ2UuZW1pdChwYXJzZWQpXG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgdGhpcy5pc1ZhbGlkSnNvbiA9IGZhbHNlXG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuaXNKc29uVmFsaWQuZW1pdCh0aGlzLmlzVmFsaWRKc29uKVxuICB9XG5cbiAgZm9ybWF0KCk6IHZvaWQge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBmaXhlZCA9IHRoaXMudHJ5Rml4SW52YWxpZEpzb24odGhpcy5qc29uVGV4dClcbiAgICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UoZml4ZWQpXG4gICAgICB0aGlzLmpzb25UZXh0ID0gSlNPTi5zdHJpbmdpZnkocGFyc2VkLCBudWxsLCAyKVxuICAgICAgdGhpcy5pc1ZhbGlkSnNvbiA9IHRydWVcbiAgICAgIHRoaXMuanNvbkNoYW5nZS5lbWl0KHBhcnNlZClcbiAgICB9IGNhdGNoIHtcbiAgICAgIHRoaXMuaXNWYWxpZEpzb24gPSBmYWxzZVxuICAgIH1cbiAgICB0aGlzLmlzSnNvblZhbGlkLmVtaXQodGhpcy5pc1ZhbGlkSnNvbilcbiAgfVxuXG5cbiAgY29weVRvQ2xpcGJvYXJkKCk6IHZvaWQge1xuICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHRoaXMuanNvblRleHQpLnRoZW4oKCkgPT4ge1xuICAgICAgdGhpcy5jb3B5RmVlZGJhY2sgPSAnQ29waWFkbyEnXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY29weUZlZWRiYWNrID0gJycsIDIwMDApXG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tWYWxpZEpzb24odGV4dDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdHJ5IHtcbiAgICAgIEpTT04ucGFyc2UodGV4dClcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZvcm1hdEpzb24oZGF0YTogYW55KTogc3RyaW5nIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGRhdGEsIG51bGwsIDIpXG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gJydcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHRyeUZpeEludmFsaWRKc29uKHRleHQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgbGV0IGZpeGVkID0gdGV4dDtcbiAgXG4gICAgLy8gMSkgUmVtb3ZlIGNvbWVudMOhcmlvcyBkZSBsaW5oYSBlIGRlIGJsb2NvXG4gICAgZml4ZWQgPSBmaXhlZC5yZXBsYWNlKC9cXC9cXC8uKnxcXC9cXCpbXFxzXFxTXSo/XFwqXFwvL2csICcnKTtcbiAgXG4gICAgLy8gMikgQXNwYXMgc2ltcGxlcyDihpIgZHVwbGFzIGVtIHN0cmluZ3NcbiAgICBmaXhlZCA9IGZpeGVkLnJlcGxhY2UoLycoW14nXSopJy9nLCAnXCIkMVwiJyk7XG4gIFxuICAgIC8vIDMpIFJlbW92ZSB0cmFpbGluZyBjb21tYXMgYW50ZXMgZGUgXSBvdSB9XG4gICAgZml4ZWQgPSBmaXhlZC5yZXBsYWNlKC8sXFxzKig/PVt9XFxdXSkvZywgJycpO1xuICBcbiAgICAvLyA0KSBDaGF2ZXMgbsOjby1hc3BhZGFzIOKGkiBlbnRyZSBhc3Bhc1xuICAgIGZpeGVkID0gZml4ZWQucmVwbGFjZSgvKFt7LF1cXHMqKShbQS1aYS16MC05X1xcJF0rKVxccyo6L2csICckMVwiJDJcIjonKTtcbiAgXG4gICAgLy8gNSkgVmFsb3JlcyBzdHJpbmcgc29sdG9zIOKGkiBlbnRyZSBhc3BhcyBkdXBsYXNcbiAgICBmaXhlZCA9IGZpeGVkLnJlcGxhY2UoXG4gICAgICAvOlxccyooW15cXHNcIidgXFx7XFx9XFxbXFxdLF1bXixcXH1cXF1dKikoPz1bLFxcfVxcXV0pL2csXG4gICAgICAoX21hdGNoLCBwMTogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHYgPSBwMS50cmltKCk7XG4gICAgICAgIC8vIHNlIGZvciBuw7ptZXJvIG91IGxpdGVyYWwgSlNPTiwgZGVpeGEgY29tbyBlc3TDoVxuICAgICAgICBpZiAoL15bLStdP1xcZCsoXFwuXFxkKyk/KFtlRV1bLStdP1xcZCspPyQvLnRlc3QodikgfHxcbiAgICAgICAgICAgIC9eKHRydWV8ZmFsc2V8bnVsbCkkLy50ZXN0KHYudG9Mb3dlckNhc2UoKSkpIHtcbiAgICAgICAgICByZXR1cm4gYDogJHt2fWA7XG4gICAgICAgIH1cbiAgICAgICAgLy8gZXNjYXBhIGV2ZW50dWFpcyBhc3BhcyBpbnRlcm5hcyBlIGVudm9sdmUgZW0gZHVwbGFzXG4gICAgICAgIGNvbnN0IGVzY2FwZWQgPSB2LnJlcGxhY2UoL1wiL2csICdcXFxcXCInKTtcbiAgICAgICAgcmV0dXJuIGA6IFwiJHtlc2NhcGVkfVwiYDtcbiAgICAgIH1cbiAgICApO1xuICBcbiAgICByZXR1cm4gZml4ZWQ7XG4gIH1cbiAgXG4gIFxuXG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJqc29uLWVkaXRvci1jb250YWluZXJcIj5cbiAgPGRpdlxuICAgIGNsYXNzPVwic3RhdHVzLWluZGljYXRvclwiXG4gICAgKm5nSWY9XCIhcmVhZG9ubHlcIlxuICAgIFtuZ0NsYXNzXT1cInsgdmFsaWQ6IGlzVmFsaWRKc29uLCBpbnZhbGlkOiAhaXNWYWxpZEpzb24gfVwiXG4gID5cbiAgICB7eyBpc1ZhbGlkSnNvbiA/IFwi4pyFXCIgOiBcIuKdjFwiIH19XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJhY3Rpb25zXCIgKm5nSWY9XCIhcmVhZG9ubHlcIj5cbiAgICA8YnV0dG9uIChjbGljayk9XCJmb3JtYXQoKVwiPlxuICAgICAgPGktbHVjaWRlIG5hbWU9XCJmaWxlLWpzb25cIiBbc2l6ZV09XCIyMFwiIGNvbG9yPVwid2hpdGVcIj48L2ktbHVjaWRlPlxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b24gKGNsaWNrKT1cImNvcHlUb0NsaXBib2FyZCgpXCI+XG4gICAgICA8aS1sdWNpZGUgbmFtZT1cImNvcHlcIiBbc2l6ZV09XCIyMFwiIGNvbG9yPVwid2hpdGVcIj48L2ktbHVjaWRlPlxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b24gY2xhc3M9XCJpbmZvXCIgKGNsaWNrKT1cInRvZ2dsZUV4YW1wbGUoKVwiPlxuICAgICAgPGktbHVjaWRlIG5hbWU9XCJpbmZvXCIgW3NpemVdPVwiMjBcIiBjb2xvcj1cIndoaXRlXCI+PC9pLWx1Y2lkZT5cbiAgICA8L2J1dHRvbj5cblxuICAgIDxzcGFuIGNsYXNzPVwiZmVlZGJhY2tcIiAqbmdJZj1cImNvcHlGZWVkYmFja1wiPnt7IGNvcHlGZWVkYmFjayB9fTwvc3Bhbj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImV4YW1wbGUtYm94XCIgKm5nSWY9XCJzaG93RXhhbXBsZVwiPlxuICAgIDxwcmU+e3sgZm9ybWF0dGVkRXhhbXBsZSB9fTwvcHJlPlxuICA8L2Rpdj5cblxuICA8dGV4dGFyZWFcbiAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgIFtuZ0NsYXNzXT1cInsgaW52YWxpZDogIWlzVmFsaWRKc29uIH1cIlxuICAgIFsobmdNb2RlbCldPVwianNvblRleHRcIlxuICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uVGV4dENoYW5nZSgkZXZlbnQpXCJcbiAgICBwbGFjZWhvbGRlcj1cIkRpZ2l0ZSBvdSBjb2xlIHNldSBKU09OIGFxdWkuLi5cIlxuICA+PC90ZXh0YXJlYT5cbjwvZGl2PlxuIl19
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGliLXBvcnRhbC1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9qc29uLWVkaXRvci9qc29uLWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saWItcG9ydGFsLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2pzb24tZWRpdG9yL2pzb24tZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQTs7Ozs7QUFPeEcsTUFBTSxPQUFPLG1CQUFtQjtJQUxoQztRQU9XLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDekIsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDckMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFBO1FBRW5ELGFBQVEsR0FBRyxFQUFFLENBQUM7UUFDZCxnQkFBVyxHQUFHLElBQUksQ0FBQztRQUNuQixpQkFBWSxHQUFHLEVBQUUsQ0FBQztRQUNsQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixnQkFBVyxHQUFHO1lBQ1osSUFBSSxFQUFFLE1BQU07WUFDWixLQUFLLEVBQUUsRUFBRTtZQUNULEtBQUssRUFBRSxJQUFJO1lBQ1gsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUM7WUFDdEIsUUFBUSxFQUFFO2dCQUNSLE1BQU0sRUFBRSxXQUFXO2dCQUNuQixNQUFNLEVBQUUsSUFBSTthQUNiO1lBQ0QsS0FBSyxFQUFFLElBQUk7U0FDWixDQUFDO0tBdUhIO0lBckhDLElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENB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QUMsRUFBRSxDQUFDO2FBQ2pCO1lBQ0Qsc0RBQXNEO1lBQ3RELE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3ZDLE9BQU8sTUFBTSxPQUFPLEdBQUcsQ0FBQztRQUMxQixDQUFDLENBQ0YsQ0FBQztRQUVGLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzsrR0F0SVUsbUJBQW1CO21HQUFuQixtQkFBbUIsbU1DUGhDLHNtQ0FtQ0E7OzRGRDVCYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UscUJBQXFCOzhCQUt0QixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDSSxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcmdlbnRhLWpzb24tZWRpdG9yJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2pzb24tZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vanNvbi1lZGl0b3IuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgSnNvbkVkaXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgZGF0YTogYW55XG4gIEBJbnB1dCgpIHJlYWRvbmx5OiBib29sZWFuID0gZmFsc2U7XG4gIEBPdXRwdXQoKSBqc29uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBpc0pzb25WYWxpZCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKVxuXG4gIGpzb25UZXh0ID0gJyc7XG4gIGlzVmFsaWRKc29uID0gdHJ1ZTtcbiAgY29weUZlZWRiYWNrID0gJyc7XG4gIHNob3dFeGFtcGxlID0gZmFsc2U7XG4gIGV4YW1wbGVKc29uID0ge1xuICAgIG5vbWU6IFwiSm/Do29cIixcbiAgICBpZGFkZTogMzAsXG4gICAgYXRpdm86IHRydWUsXG4gICAgbm90YXM6IFs5LjUsIDguMywgNy44XSxcbiAgICBlbmRlcmVjbzoge1xuICAgICAgY2lkYWRlOiBcIlPDo28gUGF1bG9cIixcbiAgICAgIGVzdGFkbzogXCJTUFwiXG4gICAgfSxcbiAgICBlbWFpbDogbnVsbFxuICB9O1xuXG4gIGdldCBmb3JtYXR0ZWRFeGFtcGxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMuZXhhbXBsZUpzb24sIG51bGwsIDIpXG4gIH1cblxuICB0b2dnbGVFeGFtcGxlKCk6IHZvaWQge1xuICAgIHRoaXMuc2hvd0V4YW1wbGUgPSAhdGhpcy5zaG93RXhhbXBsZVxuICB9XG5cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmpzb25UZXh0ID0gdGhpcy5mb3JtYXRKc29uKHRoaXMuZGF0YSlcbiAgICB0aGlzLmlzVmFsaWRKc29uID0gdGhpcy5jaGVja1ZhbGlkSnNvbih0aGlzLmpzb25UZXh0KVxuICB9XG5cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2RhdGEnXSAmJiAhY2hhbmdlc1snZGF0YSddLmZpcnN0Q2hhbmdlKSB7XG4gICAgICB0aGlzLmpzb25UZXh0ID0gdGhpcy5mb3JtYXRKc29uKHRoaXMuZGF0YSk7XG4gICAgICB0aGlzLmlzVmFsaWRKc29uID0gdGhpcy5jaGVja1ZhbGlkSnNvbih0aGlzLmpzb25UZXh0KTtcbiAgICAgIHRoaXMuaXNKc29uVmFsaWQuZW1pdCh0aGlzLmlzVmFsaWRKc29uKTtcbiAgICB9XG4gIH1cblxuICBvblRleHRDaGFuZ2UodGV4dDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5qc29uVGV4dCA9IHRleHRcbiAgICB0aGlzLmlzVmFsaWRKc29uID0gdGhpcy5jaGVja1ZhbGlkSnNvbih0ZXh0KVxuXG4gICAgaWYgKHRoaXMuaXNWYWxpZEpzb24pIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UodGV4dClcbiAgICAgICAgdGhpcy5qc29uQ2hhbmdlLmVtaXQocGFyc2VkKVxuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIHRoaXMuaXNWYWxpZEpzb24gPSBmYWxzZVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0ZXh0LnRyaW0oKS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuanNvbkNoYW5nZS5lbWl0KCcnKVxuICAgIH1cbiAgICB0aGlzLmlzSnNvblZhbGlkLmVtaXQodGhpcy5pc1ZhbGlkSnNvbilcbiAgfVxuXG4gIGZvcm1hdCgpOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgZml4ZWQgPSB0aGlzLnRyeUZpeEludmFsaWRKc29uKHRoaXMuanNvblRleHQpXG4gICAgICBjb25zdCBwYXJzZWQgPSBKU09OLnBhcnNlKGZpeGVkKVxuICAgICAgdGhpcy5qc29uVGV4dCA9IEpTT04uc3RyaW5naWZ5KHBhcnNlZCwgbnVsbCwgMilcbiAgICAgIHRoaXMuaXNWYWxpZEpzb24gPSB0cnVlXG4gICAgICB0aGlzLmpzb25DaGFuZ2UuZW1pdChwYXJzZWQpXG4gICAgfSBjYXRjaCB7XG4gICAgICB0aGlzLmlzVmFsaWRKc29uID0gZmFsc2VcbiAgICB9XG4gICAgdGhpcy5pc0pzb25WYWxpZC5lbWl0KHRoaXMuaXNWYWxpZEpzb24pXG4gIH1cblxuXG4gIGNvcHlUb0NsaXBib2FyZCgpOiB2b2lkIHtcbiAgICBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh0aGlzLmpzb25UZXh0KS50aGVuKCgpID0+IHtcbiAgICAgIHRoaXMuY29weUZlZWRiYWNrID0gJ0NvcGlhZG8hJ1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmNvcHlGZWVkYmFjayA9ICcnLCAyMDAwKVxuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIGNoZWNrVmFsaWRKc29uKHRleHQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRyeSB7XG4gICAgICBKU09OLnBhcnNlKHRleHQpXG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmb3JtYXRKc29uKGRhdGE6IGFueSk6IHN0cmluZyB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShkYXRhLCBudWxsLCAyKVxuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuICcnXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB0cnlGaXhJbnZhbGlkSnNvbih0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGxldCBmaXhlZCA9IHRleHQ7XG4gIFxuICAgIC8vIDEpIFJlbW92ZSBjb21lbnTDoXJpb3MgZGUgbGluaGEgZSBkZSBibG9jb1xuICAgIGZpeGVkID0gZml4ZWQucmVwbGFjZSgvXFwvXFwvLip8XFwvXFwqW1xcc1xcU10qP1xcKlxcLy9nLCAnJyk7XG4gIFxuICAgIC8vIDIpIEFzcGFzIHNpbXBsZXMg4oaSIGR1cGxhcyBlbSBzdHJpbmdzXG4gICAgZml4ZWQgPSBmaXhlZC5yZXBsYWNlKC8nKFteJ10qKScvZywgJ1wiJDFcIicpO1xuICBcbiAgICAvLyAzKSBSZW1vdmUgdHJhaWxpbmcgY29tbWFzIGFudGVzIGRlIF0gb3UgfVxuICAgIGZpeGVkID0gZml4ZWQucmVwbGFjZSgvLFxccyooPz1bfVxcXV0pL2csICcnKTtcbiAgXG4gICAgLy8gNCkgQ2hhdmVzIG7Do28tYXNwYWRhcyDihpIgZW50cmUgYXNwYXNcbiAgICBmaXhlZCA9IGZpeGVkLnJlcGxhY2UoLyhbeyxdXFxzKikoW0EtWmEtejAtOV9cXCRdKylcXHMqOi9nLCAnJDFcIiQyXCI6Jyk7XG4gIFxuICAgIC8vIDUpIFZhbG9yZXMgc3RyaW5nIHNvbHRvcyDihpIgZW50cmUgYXNwYXMgZHVwbGFzXG4gICAgZml4ZWQgPSBmaXhlZC5yZXBsYWNlKFxuICAgICAgLzpcXHMqKFteXFxzXCInYFxce1xcfVxcW1xcXSxdW14sXFx9XFxdXSopKD89WyxcXH1cXF1dKS9nLFxuICAgICAgKF9tYXRjaCwgcDE6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB2ID0gcDEudHJpbSgpO1xuICAgICAgICAvLyBzZSBmb3IgbsO6bWVybyBvdSBsaXRlcmFsIEpTT04sIGRlaXhhIGNvbW8gZXN0w6FcbiAgICAgICAgaWYgKC9eWy0rXT9cXGQrKFxcLlxcZCspPyhbZUVdWy0rXT9cXGQrKT8kLy50ZXN0KHYpIHx8XG4gICAgICAgICAgICAvXih0cnVlfGZhbHNlfG51bGwpJC8udGVzdCh2LnRvTG93ZXJDYXNlKCkpKSB7XG4gICAgICAgICAgcmV0dXJuIGA6ICR7dn1gO1xuICAgICAgICB9XG4gICAgICAgIC8vIGVzY2FwYSBldmVudHVhaXMgYXNwYXMgaW50ZXJuYXMgZSBlbnZvbHZlIGVtIGR1cGxhc1xuICAgICAgICBjb25zdCBlc2NhcGVkID0gdi5yZXBsYWNlKC9cIi9nLCAnXFxcXFwiJyk7XG4gICAgICAgIHJldHVybiBgOiBcIiR7ZXNjYXBlZH1cImA7XG4gICAgICB9XG4gICAgKTtcbiAgXG4gICAgcmV0dXJuIGZpeGVkO1xuICB9XG4gIFxuICBcblxuXG59XG4iLCI8ZGl2IGNsYXNzPVwianNvbi1lZGl0b3ItY29udGFpbmVyXCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cInN0YXR1cy1pbmRpY2F0b3JcIlxuICAgICpuZ0lmPVwiIXJlYWRvbmx5XCJcbiAgICBbbmdDbGFzc109XCJ7IHZhbGlkOiBpc1ZhbGlkSnNvbiwgaW52YWxpZDogIWlzVmFsaWRKc29uIH1cIlxuICA+XG4gICAge3sgaXNWYWxpZEpzb24gPyBcIuKchVwiIDogXCLinYxcIiB9fVxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiYWN0aW9uc1wiICpuZ0lmPVwiIXJlYWRvbmx5XCI+XG4gICAgPGJ1dHRvbiAoY2xpY2spPVwiZm9ybWF0KClcIj5cbiAgICAgIDxpLWx1Y2lkZSBuYW1lPVwiZmlsZS1qc29uXCIgW3NpemVdPVwiMjBcIiBjb2xvcj1cIndoaXRlXCI+PC9pLWx1Y2lkZT5cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uIChjbGljayk9XCJjb3B5VG9DbGlwYm9hcmQoKVwiPlxuICAgICAgPGktbHVjaWRlIG5hbWU9XCJjb3B5XCIgW3NpemVdPVwiMjBcIiBjb2xvcj1cIndoaXRlXCI+PC9pLWx1Y2lkZT5cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiaW5mb1wiIChjbGljayk9XCJ0b2dnbGVFeGFtcGxlKClcIj5cbiAgICAgIDxpLWx1Y2lkZSBuYW1lPVwiaW5mb1wiIFtzaXplXT1cIjIwXCIgY29sb3I9XCJ3aGl0ZVwiPjwvaS1sdWNpZGU+XG4gICAgPC9idXR0b24+XG5cbiAgICA8c3BhbiBjbGFzcz1cImZlZWRiYWNrXCIgKm5nSWY9XCJjb3B5RmVlZGJhY2tcIj57eyBjb3B5RmVlZGJhY2sgfX08L3NwYW4+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJleGFtcGxlLWJveFwiICpuZ0lmPVwic2hvd0V4YW1wbGVcIj5cbiAgICA8cHJlPnt7IGZvcm1hdHRlZEV4YW1wbGUgfX08L3ByZT5cbiAgPC9kaXY+XG5cbiAgPHRleHRhcmVhXG4gICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICBbbmdDbGFzc109XCJ7IGludmFsaWQ6ICFpc1ZhbGlkSnNvbiB9XCJcbiAgICBbKG5nTW9kZWwpXT1cImpzb25UZXh0XCJcbiAgICAobmdNb2RlbENoYW5nZSk9XCJvblRleHRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgcGxhY2Vob2xkZXI9XCJEaWdpdGUgb3UgY29sZSBzZXUgSlNPTiBhcXVpLi4uXCJcbiAgPjwvdGV4dGFyZWE+XG48L2Rpdj5cbiJdfQ==
@@ -2864,6 +2864,13 @@ class JsonEditorComponent {
2864
2864
  this.jsonText = this.formatJson(this.data);
2865
2865
  this.isValidJson = this.checkValidJson(this.jsonText);
2866
2866
  }
2867
+ ngOnChanges(changes) {
2868
+ if (changes['data'] && !changes['data'].firstChange) {
2869
+ this.jsonText = this.formatJson(this.data);
2870
+ this.isValidJson = this.checkValidJson(this.jsonText);
2871
+ this.isJsonValid.emit(this.isValidJson);
2872
+ }
2873
+ }
2867
2874
  onTextChange(text) {
2868
2875
  this.jsonText = text;
2869
2876
  this.isValidJson = this.checkValidJson(text);
@@ -2876,6 +2883,9 @@ class JsonEditorComponent {
2876
2883
  this.isValidJson = false;
2877
2884
  }
2878
2885
  }
2886
+ if (text.trim().length === 0) {
2887
+ this.jsonChange.emit('');
2888
+ }
2879
2889
  this.isJsonValid.emit(this.isValidJson);
2880
2890
  }
2881
2891
  format() {
@@ -2939,7 +2949,7 @@ class JsonEditorComponent {
2939
2949
  return fixed;
2940
2950
  }
2941
2951
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: JsonEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2942
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: JsonEditorComponent, selector: "argenta-json-editor", inputs: { data: "data", readonly: "readonly" }, outputs: { jsonChange: "jsonChange", isJsonValid: "isJsonValid" }, ngImport: i0, template: "<div class=\"json-editor-container\">\n <div\n class=\"status-indicator\"\n *ngIf=\"!readonly\"\n [ngClass]=\"{ valid: isValidJson, invalid: !isValidJson }\"\n >\n {{ isValidJson ? \"\u2705\" : \"\u274C\" }}\n </div>\n\n <div class=\"actions\" *ngIf=\"!readonly\">\n <button (click)=\"format()\">\n <i-lucide name=\"file-json\" [size]=\"20\" color=\"white\"></i-lucide>\n </button>\n <button (click)=\"copyToClipboard()\">\n <i-lucide name=\"copy\" [size]=\"20\" color=\"white\"></i-lucide>\n </button>\n <button class=\"info\" (click)=\"toggleExample()\">\n <i-lucide name=\"info\" [size]=\"20\" color=\"white\"></i-lucide>\n </button>\n\n <span class=\"feedback\" *ngIf=\"copyFeedback\">{{ copyFeedback }}</span>\n </div>\n\n <div class=\"example-box\" *ngIf=\"showExample\">\n <pre>{{ formattedExample }}</pre>\n </div>\n\n <textarea\n [readonly]=\"readonly\"\n [ngClass]=\"{ invalid: !isValidJson }\"\n [(ngModel)]=\"jsonText\"\n (ngModelChange)=\"onTextChange($event)\"\n placeholder=\"Digite ou cole seu JSON aqui...\"\n ></textarea>\n</div>\n", styles: [".json-editor-container{position:relative;width:100%}.json-editor-container textarea{width:100%;height:300px;padding:10px 12px;font-family:monospace;font-size:14px;border:1px solid #ccc;border-radius:8px;resize:vertical;box-sizing:border-box}.json-editor-container textarea.invalid{border-color:#ef4444}.json-editor-container .actions{display:flex;gap:8px;margin-bottom:10px}.json-editor-container .actions button{padding:6px 12px;border:none;border-radius:6px;background-color:var(--primary-color);color:#fff;cursor:pointer}.json-editor-container .actions .feedback{font-size:12px;color:#10b981;margin-left:8px;align-self:center}.json-editor-container .status-indicator{position:absolute;top:10px;right:12px;height:32px;width:32px;border-radius:6px;text-align:center;line-height:32px;font-size:16px;background-color:#f3f4f6;box-shadow:0 0 0 1px #ccc}.json-editor-container .status-indicator.valid{color:#10b981}.json-editor-container .status-indicator.invalid{color:#ef4444}.json-editor-container .info-button{position:absolute;top:10px;left:12px;height:32px;width:32px;border-radius:6px;background-color:#f3f4f6;text-align:center;line-height:32px;font-size:18px;cursor:pointer;box-shadow:0 0 0 1px #ccc}.json-editor-container .info-button:hover{background-color:#e5e7eb}.json-editor-container .example-box{background-color:#f9fafb;border:1px solid #ccc;border-radius:8px;padding:10px;margin-bottom:10px;font-family:monospace;font-size:14px;white-space:pre;overflow-x:auto}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.LucideAngularComponent, selector: "lucide-angular, lucide-icon, i-lucide, span-lucide", inputs: ["class", "name", "img", "color", "absoluteStrokeWidth", "size", "strokeWidth"] }] }); }
2952
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: JsonEditorComponent, selector: "argenta-json-editor", inputs: { data: "data", readonly: "readonly" }, outputs: { jsonChange: "jsonChange", isJsonValid: "isJsonValid" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"json-editor-container\">\n <div\n class=\"status-indicator\"\n *ngIf=\"!readonly\"\n [ngClass]=\"{ valid: isValidJson, invalid: !isValidJson }\"\n >\n {{ isValidJson ? \"\u2705\" : \"\u274C\" }}\n </div>\n\n <div class=\"actions\" *ngIf=\"!readonly\">\n <button (click)=\"format()\">\n <i-lucide name=\"file-json\" [size]=\"20\" color=\"white\"></i-lucide>\n </button>\n <button (click)=\"copyToClipboard()\">\n <i-lucide name=\"copy\" [size]=\"20\" color=\"white\"></i-lucide>\n </button>\n <button class=\"info\" (click)=\"toggleExample()\">\n <i-lucide name=\"info\" [size]=\"20\" color=\"white\"></i-lucide>\n </button>\n\n <span class=\"feedback\" *ngIf=\"copyFeedback\">{{ copyFeedback }}</span>\n </div>\n\n <div class=\"example-box\" *ngIf=\"showExample\">\n <pre>{{ formattedExample }}</pre>\n </div>\n\n <textarea\n [readonly]=\"readonly\"\n [ngClass]=\"{ invalid: !isValidJson }\"\n [(ngModel)]=\"jsonText\"\n (ngModelChange)=\"onTextChange($event)\"\n placeholder=\"Digite ou cole seu JSON aqui...\"\n ></textarea>\n</div>\n", styles: [".json-editor-container{position:relative;width:100%}.json-editor-container textarea{width:100%;height:300px;padding:10px 12px;font-family:monospace;font-size:14px;border:1px solid #ccc;border-radius:8px;resize:vertical;box-sizing:border-box}.json-editor-container textarea.invalid{border-color:#ef4444}.json-editor-container .actions{display:flex;gap:8px;margin-bottom:10px}.json-editor-container .actions button{padding:6px 12px;border:none;border-radius:6px;background-color:var(--primary-color);color:#fff;cursor:pointer}.json-editor-container .actions .feedback{font-size:12px;color:#10b981;margin-left:8px;align-self:center}.json-editor-container .status-indicator{position:absolute;top:10px;right:12px;height:32px;width:32px;border-radius:6px;text-align:center;line-height:32px;font-size:16px;background-color:#f3f4f6;box-shadow:0 0 0 1px #ccc}.json-editor-container .status-indicator.valid{color:#10b981}.json-editor-container .status-indicator.invalid{color:#ef4444}.json-editor-container .info-button{position:absolute;top:10px;left:12px;height:32px;width:32px;border-radius:6px;background-color:#f3f4f6;text-align:center;line-height:32px;font-size:18px;cursor:pointer;box-shadow:0 0 0 1px #ccc}.json-editor-container .info-button:hover{background-color:#e5e7eb}.json-editor-container .example-box{background-color:#f9fafb;border:1px solid #ccc;border-radius:8px;padding:10px;margin-bottom:10px;font-family:monospace;font-size:14px;white-space:pre;overflow-x:auto}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.LucideAngularComponent, selector: "lucide-angular, lucide-icon, i-lucide, span-lucide", inputs: ["class", "name", "img", "color", "absoluteStrokeWidth", "size", "strokeWidth"] }] }); }
2943
2953
  }
2944
2954
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: JsonEditorComponent, decorators: [{
2945
2955
  type: Component,