@gravitee/ui-particles-angular 7.25.0 → 7.26.0

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.
@@ -91,6 +91,10 @@ export class GioFormHeadersComponent {
91
91
  constructor(fm, elRef) {
92
92
  this.fm = fm;
93
93
  this.elRef = elRef;
94
+ this.headerFieldMapper = {
95
+ keyName: 'key',
96
+ valueName: 'value',
97
+ };
94
98
  this.headersFormArray = new FormArray([
95
99
  new FormGroup({
96
100
  key: new FormControl('', Validators.pattern('^\\S*$')),
@@ -111,18 +115,30 @@ export class GioFormHeadersComponent {
111
115
  if (!value) {
112
116
  return;
113
117
  }
114
- this.headers = value ?? [];
118
+ this.headers = [...(value ?? [])].map((header) => {
119
+ return {
120
+ key: header[this.headerFieldMapper.keyName],
121
+ value: header[this.headerFieldMapper.valueName],
122
+ };
123
+ });
115
124
  this.initHeadersForm();
116
125
  }
117
126
  // From ControlValueAccessor interface
118
127
  registerOnChange(fn) {
119
- const adaptOutputFn = this.adaptOutputFn;
120
- if (adaptOutputFn) {
121
- this._onChange = (headers) => fn(adaptOutputFn(headers));
128
+ if (this.headerFieldMapper) {
129
+ this._onChange = (headers) => fn(this.toHeaders(headers));
122
130
  return;
123
131
  }
124
132
  this._onChange = fn;
125
133
  }
134
+ toHeaders(headers) {
135
+ return [...(headers ?? [])].map(header => {
136
+ return {
137
+ [this.headerFieldMapper.keyName]: header.key,
138
+ [this.headerFieldMapper.valueName]: header.value,
139
+ };
140
+ });
141
+ }
126
142
  // From ControlValueAccessor interface
127
143
  registerOnTouched(fn) {
128
144
  this._onTouched = fn;
@@ -215,7 +231,7 @@ export class GioFormHeadersComponent {
215
231
  }
216
232
  }
217
233
  GioFormHeadersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormHeadersComponent, deps: [{ token: i1.FocusMonitor }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
218
- GioFormHeadersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioFormHeadersComponent, selector: "gio-form-headers", inputs: { adaptOutputFn: "adaptOutputFn" }, host: { properties: { "class.disabled": "this.disabled" } }, providers: [
234
+ GioFormHeadersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioFormHeadersComponent, selector: "gio-form-headers", inputs: { headerFieldMapper: "headerFieldMapper" }, host: { properties: { "class.disabled": "this.disabled" } }, providers: [
219
235
  {
220
236
  provide: NG_VALUE_ACCESSOR,
221
237
  useExisting: forwardRef(() => GioFormHeadersComponent),
@@ -241,7 +257,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
241
257
  multi: true,
242
258
  },
243
259
  ], template: "<!--\n\n Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<table class=\"gio-form-headers__table gio-table-light\" [formGroup]=\"mainForm\">\n <thead>\n <tr>\n <th>KEY</th>\n <th>VALUE</th>\n </tr>\n </thead>\n <tbody formArrayName=\"headers\">\n <tr\n *ngFor=\"let control of headersFormArray.controls; index as headerIndex\"\n class=\"gio-form-headers__table__header-row\"\n [formGroupName]=\"headerIndex\"\n >\n <td class=\"gio-form-headers__table__header-row__td-key\">\n <mat-form-field class=\"gio-form-headers__table__header-row__td-key__field\" [floatLabel]=\"'never'\" appearance=\"standard\">\n <textarea\n formControlName=\"key\"\n matInput\n placeholder=\"Name...\"\n cdkTextareaAutosize\n cdkAutosizeMinRows=\"1\"\n [matAutocomplete]=\"headerNamesAutocomplete\"\n ></textarea>\n </mat-form-field>\n <mat-error *ngIf=\"control.get('key')?.hasError('pattern')\">\n Header name must not contain spaces. (RegExp: {{ control.get('key')?.getError('pattern')?.requiredPattern }})\n </mat-error>\n <mat-autocomplete #headerNamesAutocomplete=\"matAutocomplete\">\n <mat-option *ngFor=\"let headerName of getFilteredHeaderNames(headerIndex, control.value) | async\" [value]=\"headerName\">{{\n headerName\n }}</mat-option>\n </mat-autocomplete>\n </td>\n <td class=\"gio-form-headers__table__header-row__td-value\">\n <mat-form-field class=\"gio-form-headers__table__header-row__td-value__field\" [floatLabel]=\"'never'\" appearance=\"standard\">\n <textarea formControlName=\"value\" matInput placeholder=\"Value...\" cdkTextareaAutosize cdkAutosizeMinRows=\"1\"></textarea>\n </mat-form-field>\n <button\n class=\"gio-form-headers__table__header-row__td-value__button\"\n *ngIf=\"headersFormArray.controls.length - 1 !== headerIndex\"\n mat-icon-button\n aria-label=\"Delete\"\n (click)=\"onDeleteHeader(headerIndex)\"\n >\n <mat-icon svgIcon=\"gio:cancel\"></mat-icon>\n </button>\n </td>\n </tr>\n </tbody>\n</table>\n", styles: [":host{display:block;overflow:hidden}.gio-form-headers__table{width:100%}.gio-form-headers__table__header-row__td-key,.gio-form-headers__table__header-row__td-value{position:relative;width:50%}.gio-form-headers__table__header-row__td-key__field,.gio-form-headers__table__header-row__td-value__field{display:flex;overflow:hidden;width:100%;max-height:32px;flex-direction:column;justify-content:center;padding-bottom:0}.gio-form-headers__table__header-row__td-key__field *,.gio-form-headers__table__header-row__td-value__field *{top:0;overflow:hidden;max-height:32px}.gio-form-headers__table__header-row__td-key__field:focus-within,.gio-form-headers__table__header-row__td-value__field:focus-within{z-index:100;height:auto;background-color:#fff}.gio-form-headers__table__header-row__td-key__field:focus-within *,.gio-form-headers__table__header-row__td-value__field:focus-within *{max-height:none}.gio-form-headers__table__header-row__td-key__button,.gio-form-headers__table__header-row__td-value__button{position:absolute;top:3px;right:3px;display:none}.gio-form-headers__table__header-row__td-remove{width:32px;height:32px;padding:0}.gio-form-headers__table__header-row:hover .gio-form-headers__table__header-row__td-value__button{z-index:110;display:block;background-color:#fff;opacity:.9}::ng-deep gio-form-headers .gio-form-headers__table__header-row .mat-form-field-infix{width:inherit}\n"] }]
244
- }], ctorParameters: function () { return [{ type: i1.FocusMonitor }, { type: i0.ElementRef }]; }, propDecorators: { adaptOutputFn: [{
260
+ }], ctorParameters: function () { return [{ type: i1.FocusMonitor }, { type: i0.ElementRef }]; }, propDecorators: { headerFieldMapper: [{
245
261
  type: Input
246
262
  }], disabled: [{
247
263
  type: HostBinding,
@@ -254,4 +270,4 @@ const removeLastEmptyHeader = (headers) => {
254
270
  }
255
271
  return headers;
256
272
  };
257
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLWZvcm0taGVhZGVycy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1wYXJ0aWNsZXMtYW5ndWxhci9zcmMvbGliL2dpby1mb3JtLWhlYWRlcnMvZ2lvLWZvcm0taGVhZGVycy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1wYXJ0aWNsZXMtYW5ndWxhci9zcmMvbGliL2dpby1mb3JtLWhlYWRlcnMvZ2lvLWZvcm0taGVhZGVycy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpQkEsT0FBTyxFQUFFLFNBQVMsRUFBYyxVQUFVLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBR0wsU0FBUyxFQUNULFdBQVcsRUFDWCxTQUFTLEVBQ1QsYUFBYSxFQUNiLGlCQUFpQixFQUdqQixVQUFVLEdBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7QUFNdEMsTUFBTSxZQUFZLEdBQUc7SUFDbkIsUUFBUTtJQUNSLGdCQUFnQjtJQUNoQixpQkFBaUI7SUFDakIsaUJBQWlCO0lBQ2pCLGVBQWU7SUFDZixrQ0FBa0M7SUFDbEMsOEJBQThCO0lBQzlCLDhCQUE4QjtJQUM5Qiw2QkFBNkI7SUFDN0IsK0JBQStCO0lBQy9CLHdCQUF3QjtJQUN4QixnQ0FBZ0M7SUFDaEMsK0JBQStCO0lBQy9CLEtBQUs7SUFDTCxPQUFPO0lBQ1AsZUFBZTtJQUNmLGVBQWU7SUFDZixZQUFZO0lBQ1oscUJBQXFCO0lBQ3JCLGtCQUFr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LGFBQWE7NEJBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHdCQUF3QixDQUFDOzRCQUN0RCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjs0SEFJTSxhQUFhO3NCQURuQixLQUFLO2dCQVlDLFFBQVE7c0JBRGQsV0FBVzt1QkFBQyxnQkFBZ0I7O0FBNkovQixNQUFNLHFCQUFxQixHQUFHLENBQUMsT0FBaUIsRUFBRSxFQUFFO0lBQ2xELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBRS9DLElBQUksVUFBVSxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUN0RSxPQUFPLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztLQUMzQjtJQUNELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IEZvY3VzTW9uaXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgZm9yd2FyZFJlZiwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIEZvcm1BcnJheSxcbiAgRm9ybUNvbnRyb2wsXG4gIEZvcm1Hcm91cCxcbiAgTkdfVkFMSURBVE9SUyxcbiAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gIFZhbGlkYXRpb25FcnJvcnMsXG4gIFZhbGlkYXRvcixcbiAgVmFsaWRhdG9ycyxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZHJvcFJpZ2h0LCBpc0VtcHR5IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IG1hcCwgc3RhcnRXaXRoLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgdHlwZSBIZWFkZXIgPSB7IGtleTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH07XG5cbmV4cG9ydCB0eXBlIEZvcm1IZWFkZXJBZGFwdE91dHB1dEZuPEg+ID0gKGhlYWRlcnM6IEhlYWRlcltdIHwgbnVsbCkgPT4gSDtcblxuY29uc3QgSEVBREVSX05BTUVTID0gW1xuICAnQWNjZXB0JyxcbiAgJ0FjY2VwdC1DaGFyc2V0JyxcbiAgJ0FjY2VwdC1FbmNvZGluZycsXG4gICdBY2NlcHQtTGFuZ3VhZ2UnLFxuICAnQWNjZXB0LVJhbmdlcycsXG4gICdBY2Nlc3MtQ29udHJvbC1BbGxvdy1DcmVkZW50aWFscycsXG4gICdBY2Nlc3MtQ29udHJvbC1BbGxvdy1IZWFkZXJzJyxcbiAgJ0FjY2Vzcy1Db250cm9sLUFsbG93LU1ldGhvZHMnLFxuICAnQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luJyxcbiAgJ0FjY2Vzcy1Db250cm9sLUV4cG9zZS1IZWFkZXJzJyxcbiAgJ0FjY2Vzcy1Db250cm9sLU1heC1BZ2UnLFxuICAnQWNjZXNzLUNvbnRyb2wtUmVxdWVzdC1IZWFkZXJzJyxcbiAgJ0FjY2Vzcy1Db250cm9sLVJlcXVlc3QtTWV0aG9kJyxcbiAgJ0FnZScsXG4gICdBbGxvdycsXG4gICdBdXRob3JpemF0aW9uJyxcbiAgJ0NhY2hlLUNvbnRyb2wnLFxuICAnQ29ubmVjdGlvbicsXG4gICdDb250ZW50LURpc3Bvc2l0aW9uJyxcbiAgJ0NvbnRlbnQtRW5jb2RpbmcnLFxuICAnQ29udGVudC1JRCcsXG4gICdDb250ZW50LUxhbmd1YWdlJyxcbiAgJ0NvbnRlbnQtTGVuZ3RoJyxcbiAgJ0NvbnRlbnQtTG9jYXRpb24nLFxuICAnQ29udGVudC1NRDUnLFxuICAnQ29udGVudC1SYW5nZScsXG4gICdDb250ZW50LVR5cGUnLFxuICAnQ29va2llJyxcbiAgJ0RhdGUnLFxuICAnRVRhZycsXG4gICdFeHBpcmVzJyxcbiAgJ0V4cGVjdCcsXG4gICdGb3J3YXJkZWQnLFxuICAnRnJvbScsXG4gICdIb3N0JyxcbiAgJ0lmLU1hdGNoJyxcbiAgJ0lmLU1vZGlmaWVkLVNpbmNlJyxcbiAgJ0lmLU5vbmUtTWF0Y2gnLFxuICAnSWYtVW5tb2RpZmllZC1TaW5jZScsXG4gICdLZWVwLUFsaXZlJyxcbiAgJ0xhc3QtTW9kaWZpZWQnLFxuICAnTG9jYXRpb24nLFxuICAnTGluaycsXG4gICdNYXgtRm9yd2FyZHMnLFxuICAnTUlNRS1WZXJzaW9uJyxcbiAgJ09yaWdpbicsXG4gICdQcmFnbWEnLFxuICAnUHJveHktQXV0aGVudGljYXRlJyxcbiAgJ1Byb3h5LUF1dGhvcml6YXRpb24nLFxuICAnUHJveHktQ29ubmVjdGlvbicsXG4gICdSYW5nZScsXG4gICdSZWZlcmVyJyxcbiAgJ1JldHJ5LUFmdGVyJyxcbiAgJ1NlcnZlcicsXG4gICdTZXQtQ29va2llJyxcbiAgJ1NldC1Db29raWUyJyxcbiAgJ1RFJyxcbiAgJ1RyYWlsZXInLFxuICAnVHJhbnNmZXItRW5jb2RpbmcnLFxuICAnVXBncmFkZScsXG4gICdVc2VyLUFnZW50JyxcbiAgJ1ZhcnknLFxuICAnVmlhJyxcbiAgJ1dhcm5pbmcnLFxuICAnV1dXLUF1dGhlbnRpY2F0ZScsXG4gICdYLUZvcndhcmRlZC1Gb3InLFxuICAnWC1Gb3J3YXJkZWQtUHJvdG8nLFxuICAnWC1Gb3J3YXJkZWQtU2VydmVyJyxcbiAgJ1gtRm9yd2FyZGVkLUhvc3QnLFxuICAnWC1Gb3J3YXJkZWQtUG9ydCcsXG4gICdYLUZvcndhcmRlZC1QcmVmaXgnLFxuXTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ2lvLWZvcm0taGVhZGVycycsXG4gIHRlbXBsYXRlVXJsOiAnLi9naW8tZm9ybS1oZWFkZXJzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ2lvLWZvcm0taGVhZGVycy5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEdpb0Zvcm1IZWFkZXJzQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEdpb0Zvcm1IZWFkZXJzQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEdpb0Zvcm1IZWFkZXJzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yIHtcbiAgQElucHV0KClcbiAgcHVibGljIGFkYXB0T3V0cHV0Rm4/OiBGb3JtSGVhZGVyQWRhcHRPdXRwdXRGbjx1bmtub3duPjtcblxuICBwdWJsaWMgbWFpbkZvcm06IEZvcm1Hcm91cDtcbiAgcHVibGljIGhlYWRlcnNGb3JtQXJyYXkgPSBuZXcgRm9ybUFycmF5KFtcbiAgICBuZXcgRm9ybUdyb3VwKHtcbiAgICAgIGtleTogbmV3IEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLnBhdHRlcm4oJ15cXFxcUyokJykpLFxuICAgICAgdmFsdWU6IG5ldyBGb3JtQ29udHJvbCgnJyksXG4gICAgfSksXG4gIF0pO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuZGlzYWJsZWQnKVxuICBwdWJsaWMgZGlzYWJsZWQgPSBmYWxzZTtcblxuICBwcml2YXRlIGhlYWRlcnM6IEhlYWRlcltdID0gW107XG5cbiAgcHJpdmF0ZSBfb25DaGFuZ2U6IChfaGVhZGVyczogSGVhZGVyW10gfCBudWxsKSA9PiB2b2lkID0gKCkgPT4gKHt9KTtcblxuICBwcml2YXRlIF9vblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiAoe30pO1xuXG4gIHByaXZhdGUgZmlsdGVyZWRIZWFkZXJOYW1lczogT2JzZXJ2YWJsZTxzdHJpbmdbXT5bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZm06IEZvY3VzTW9uaXRvciwgcHJpdmF0ZSByZWFkb25seSBlbFJlZjogRWxlbWVudFJlZikge1xuICAgIHRoaXMubWFpbkZvcm0gPSBuZXcgRm9ybUdyb3VwKHtcbiAgICAgIGhlYWRlcnM6IHRoaXMuaGVhZGVyc0Zvcm1BcnJheSxcbiAgICB9KTtcbiAgfVxuXG4gIC8vIEZyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBIZWFkZXJbXSB8IG51bGwpOiB2b2lkIHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5oZWFkZXJzID0gdmFsdWUgPz8gW107XG4gICAgdGhpcy5pbml0SGVhZGVyc0Zvcm0oKTtcbiAgfVxuXG4gIC8vIEZyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoaGVhZGVyczogdW5rbm93bikgPT4gdm9pZCk6IHZvaWQge1xuICAgIGNvbnN0IGFkYXB0T3V0cHV0Rm4gPSB0aGlzLmFkYXB0T3V0cHV0Rm47XG5cbiAgICBpZiAoYWRhcHRPdXRwdXRGbikge1xuICAgICAgdGhpcy5fb25DaGFuZ2UgPSAoaGVhZGVyczogSGVhZGVyW10gfCBudWxsKSA9PiBmbihhZGFwdE91dHB1dEZuKGhlYWRlcnMpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fb25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIC8vIEZyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuX29uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgLy8gRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcbiAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmIChpc0Rpc2FibGVkID09PSB0aGlzLmRpc2FibGVkKSB7XG4gICAgICAvLyBkbyBub3RoaW5nIGlmIHRoZSBkaXNhYmxlZCBzdGF0ZSBpcyBub3QgY2hhbmdlZFxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIGlmIChpc0Rpc2FibGVkKSB7XG4gICAgICB0aGlzLmhlYWRlcnNGb3JtQXJyYXkuZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICB0aGlzLnJlbW92ZUxhc3RIZWFkZXIoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5oZWFkZXJzRm9ybUFycmF5LmVuYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgdGhpcy5hZGRFbXB0eUhlYWRlcigpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIFdoZW4gdXNlciBzdGFydCB0byBjb21wbGV0ZSBsYXN0IGhlYWRlciBhZGQgbmV3IGVtcHR5IG9uZSBhIHRoZSBlbmRcbiAgICB0aGlzLmhlYWRlcnNGb3JtQXJyYXk/LnZhbHVlQ2hhbmdlc1xuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcChoZWFkZXJzID0+IGhlYWRlcnMubGVuZ3RoID4gMCAmJiB0aGlzLl9vbkNoYW5nZShyZW1vdmVMYXN0RW1wdHlIZWFkZXIoaGVhZGVycykpKSxcbiAgICAgICAgdGFwKChoZWFkZXJzOiBIZWFkZXJbXSkgPT4ge1xuICAgICAgICAgIGlmIChoZWFkZXJzLmxlbmd0aCA+IDAgJiYgKGhlYWRlcnNbaGVhZGVycy5sZW5ndGggLSAxXS5rZXkgIT09ICcnIHx8IGhlYWRlcnNbaGVhZGVycy5sZW5ndGggLSAxXS52YWx1ZSAhPT0gJycpKSB7XG4gICAgICAgICAgICB0aGlzLmFkZEVtcHR5SGVhZGVyKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMuZm0ubW9uaXRvcih0aGlzLmVsUmVmLm5hdGl2ZUVsZW1lbnQsIHRydWUpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLl9vblRvdWNoZWQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBpbml0SGVhZGVyc0Zvcm0oKTogdm9pZCB7XG4gICAgLy8gQ2xlYXIgYWxsIHByZXZpb3VzIGhlYWRlcnNcbiAgICB0aGlzLmhlYWRlcnNGb3JtQXJyYXkuY2xlYXIoKTtcblxuICAgIC8vIFBvcHVsYXRlIGhlYWRlcnMgYXJyYXkgZnJvbSBoZWFkZXJzXG4gICAgdGhpcy5oZWFkZXJzLmZvckVhY2goKHsga2V5LCB2YWx1ZSB9LCBoZWFkZXJJbmRleCkgPT4ge1xuICAgICAgdGhpcy5oZWFkZXJzRm9ybUFycmF5LnB1c2goXG4gICAgICAgIG5ldyBGb3JtR3JvdXAoe1xuICAgICAgICAgIGtleTogdGhpcy5pbml0S2V5Rm9ybUNvbnRyb2woa2V5LCBoZWFkZXJJbmRleCksXG4gICAgICAgICAgdmFsdWU6IG5ldyBGb3JtQ29udHJvbCh7IHZhbHVlLCBkaXNhYmxlZDogdGhpcy5kaXNhYmxlZCB9KSxcbiAgICAgICAgfSksXG4gICAgICAgIHtcbiAgICAgICAgICBlbWl0RXZlbnQ6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIC8vIGFkZCBvbmUgZW1wdHkgaGVhZGVyIGEgdGhlIGVuZFxuICAgIHRoaXMuYWRkRW1wdHlIZWFkZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRGaWx0ZXJlZEhlYWRlck5hbWVzKGhlYWRlckluZGV4OiBudW1iZXIsIGhlYWRlcjogSGVhZGVyKTogT2JzZXJ2YWJsZTxzdHJpbmdbXT4ge1xuICAgIGlmICghdGhpcy5maWx0ZXJlZEhlYWRlck5hbWVzW2hlYWRlckluZGV4XSkge1xuICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyZWRIZWFkZXJOYW1lc1toZWFkZXJJbmRleF07XG4gICAgfVxuICAgIGlmIChoZWFkZXIua2V5ICE9IG51bGwgJiYgaGVhZGVyLmtleSAhPSAnJykge1xuICAgICAgdGhpcy5maWx0ZXJlZEhlYWRlck5hbWVzW2hlYWRlckluZGV4XSA9IG9mKGhlYWRlci5rZXkpLnBpcGUobWFwKHZhbHVlID0+IHRoaXMuX2ZpbHRlcih2YWx1ZSkpKTtcbiAgICAgIHJldHVybiB0aGlzLmZpbHRlcmVkSGVhZGVyTmFtZXNbaGVhZGVySW5kZXhdO1xuICAgIH1cbiAgICByZXR1cm4gb2YoSEVBREVSX05BTUVTKTtcbiAgfVxuXG4gIC8vIEZyb20gVmFsaWRhdG9yIGludGVyZmFjZVxuICBwdWJsaWMgdmFsaWRhdGUoX2NvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBpZiAodGhpcy5oZWFkZXJzRm9ybUFycmF5LmludmFsaWQpIHtcbiAgICAgIHJldHVybiB7IGludmFsaWQ6IHRydWUgfTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwcml2YXRlIGluaXRLZXlGb3JtQ29udHJvbChrZXk6IHN0cmluZywgaGVhZGVySW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IGNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woeyB2YWx1ZToga2V5LCBkaXNhYmxlZDogdGhpcy5kaXNhYmxlZCB9LCBWYWxpZGF0b3JzLnBhdHRlcm4oJ15cXFxcUyokJykpO1xuICAgIGNvbnN0IGZpbHRlcmVkS2V5cyA9IGNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICBzdGFydFdpdGgoJycpLFxuICAgICAgbWFwKHZhbHVlID0+IHRoaXMuX2ZpbHRlcih2YWx1ZSkpLFxuICAgICk7XG4gICAgdGhpcy5maWx0ZXJlZEhlYWRlck5hbWVzLnNwbGljZShoZWFkZXJJbmRleCwgMCwgZmlsdGVyZWRLZXlzKTtcbiAgICByZXR1cm4gY29udHJvbDtcbiAgfVxuXG4gIHB1YmxpYyBvbkRlbGV0ZUhlYWRlcihoZWFkZXJJbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5fb25Ub3VjaGVkKCk7XG4gICAgdGhpcy5oZWFkZXJzRm9ybUFycmF5LnJlbW92ZUF0KGhlYWRlckluZGV4KTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkRW1wdHlIZWFkZXIoKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmhlYWRlcnNGb3JtQXJyYXkucHVzaChcbiAgICAgIG5ldyBGb3JtR3JvdXAoe1xuICAgICAgICBrZXk6IHRoaXMuaW5pdEtleUZvcm1Db250cm9sKCcnLCB0aGlzLmhlYWRlcnNGb3JtQXJyYXkubGVuZ3RoKSxcbiAgICAgICAgdmFsdWU6IG5ldyBGb3JtQ29udHJvbCgnJyksXG4gICAgICB9KSxcbiAgICAgIHsgZW1pdEV2ZW50OiBmYWxzZSB9LFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZUxhc3RIZWFkZXIoKSB7XG4gICAgdGhpcy5oZWFkZXJzRm9ybUFycmF5LnJlbW92ZUF0KHRoaXMuaGVhZGVyc0Zvcm1BcnJheS5sZW5ndGggLSAxLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gIH1cblxuICBwcml2YXRlIF9maWx0ZXIodmFsdWU6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBmaWx0ZXJWYWx1ZSA9IHZhbHVlLnRvTG93ZXJDYXNlKCk7XG4gICAgcmV0dXJuIEhFQURFUl9OQU1FUy5maWx0ZXIob3B0aW9uID0+IG9wdGlvbi50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGZpbHRlclZhbHVlKSk7XG4gIH1cbn1cblxuY29uc3QgcmVtb3ZlTGFzdEVtcHR5SGVhZGVyID0gKGhlYWRlcnM6IEhlYWRlcltdKSA9PiB7XG4gIGNvbnN0IGxhc3RIZWFkZXIgPSBoZWFkZXJzW2hlYWRlcnMubGVuZ3RoIC0gMV07XG5cbiAgaWYgKGxhc3RIZWFkZXIgJiYgaXNFbXB0eShsYXN0SGVhZGVyLmtleSkgJiYgaXNFbXB0eShsYXN0SGVhZGVyLnZhbHVlKSkge1xuICAgIHJldHVybiBkcm9wUmlnaHQoaGVhZGVycyk7XG4gIH1cbiAgcmV0dXJuIGhlYWRlcnM7XG59O1xuIiwiPCEtLVxuXG4gICAgQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG5cbiAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcblxuICAgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG5cbiAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cblxuLS0+XG48dGFibGUgY2xhc3M9XCJnaW8tZm9ybS1oZWFkZXJzX190YWJsZSBnaW8tdGFibGUtbGlnaHRcIiBbZm9ybUdyb3VwXT1cIm1haW5Gb3JtXCI+XG4gIDx0aGVhZD5cbiAgICA8dHI+XG4gICAgICA8dGg+S0VZPC90aD5cbiAgICAgIDx0aD5WQUxVRTwvdGg+XG4gICAgPC90cj5cbiAgPC90aGVhZD5cbiAgPHRib2R5IGZvcm1BcnJheU5hbWU9XCJoZWFkZXJzXCI+XG4gICAgPHRyXG4gICAgICAqbmdGb3I9XCJsZXQgY29udHJvbCBvZiBoZWFkZXJzRm9ybUFycmF5LmNvbnRyb2xzOyBpbmRleCBhcyBoZWFkZXJJbmRleFwiXG4gICAgICBjbGFzcz1cImdpby1mb3JtLWhlYWRlcnNfX3RhYmxlX19oZWFkZXItcm93XCJcbiAgICAgIFtmb3JtR3JvdXBOYW1lXT1cImhlYWRlckluZGV4XCJcbiAgICA+XG4gICAgICA8dGQgY2xhc3M9XCJnaW8tZm9ybS1oZWFkZXJzX190YWJsZV9faGVhZGVyLXJvd19fdGQta2V5XCI+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImdpby1mb3JtLWhlYWRlcnNfX3RhYmxlX19oZWFkZXItcm93X190ZC1rZXlfX2ZpZWxkXCIgW2Zsb2F0TGFiZWxdPVwiJ25ldmVyJ1wiIGFwcGVhcmFuY2U9XCJzdGFuZGFyZFwiPlxuICAgICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwia2V5XCJcbiAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIk5hbWUuLi5cIlxuICAgICAgICAgICAgY2RrVGV4dGFyZWFBdXRvc2l6ZVxuICAgICAgICAgICAgY2RrQXV0b3NpemVNaW5Sb3dzPVwiMVwiXG4gICAgICAgICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cImhlYWRlck5hbWVzQXV0b2NvbXBsZXRlXCJcbiAgICAgICAgICA+PC90ZXh0YXJlYT5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImNvbnRyb2wuZ2V0KCdrZXknKT8uaGFzRXJyb3IoJ3BhdHRlcm4nKVwiPlxuICAgICAgICAgIEhlYWRlciBuYW1lIG11c3Qgbm90IGNvbnRhaW4gc3BhY2VzLiAoUmVnRXhwOiB7eyBjb250cm9sLmdldCgna2V5Jyk/LmdldEVycm9yKCdwYXR0ZXJuJyk/LnJlcXVpcmVkUGF0dGVybiB9fSlcbiAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICAgIDxtYXQtYXV0b2NvbXBsZXRlICNoZWFkZXJOYW1lc0F1dG9jb21wbGV0ZT1cIm1hdEF1dG9jb21wbGV0ZVwiPlxuICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBoZWFkZXJOYW1lIG9mIGdldEZpbHRlcmVkSGVhZGVyTmFtZXMoaGVhZGVySW5kZXgsIGNvbnRyb2wudmFsdWUpIHwgYXN5bmNcIiBbdmFsdWVdPVwiaGVhZGVyTmFtZVwiPnt7XG4gICAgICAgICAgICBoZWFkZXJOYW1lXG4gICAgICAgICAgfX08L21hdC1vcHRpb24+XG4gICAgICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cbiAgICAgIDwvdGQ+XG4gICAgICA8dGQgY2xhc3M9XCJnaW8tZm9ybS1oZWFkZXJzX190YWJsZV9faGVhZGVyLXJvd19fdGQtdmFsdWVcIj5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZ2lvLWZvcm0taGVhZGVyc19fdGFibGVfX2hlYWRlci1yb3dfX3RkLXZhbHVlX19maWVsZFwiIFtmbG9hdExhYmVsXT1cIiduZXZlcidcIiBhcHBlYXJhbmNlPVwic3RhbmRhcmRcIj5cbiAgICAgICAgICA8dGV4dGFyZWEgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIiBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIlZhbHVlLi4uXCIgY2RrVGV4dGFyZWFBdXRvc2l6ZSBjZGtBdXRvc2l6ZU1pblJvd3M9XCIxXCI+PC90ZXh0YXJlYT5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiZ2lvLWZvcm0taGVhZGVyc19fdGFibGVfX2hlYWRlci1yb3dfX3RkLXZhbHVlX19idXR0b25cIlxuICAgICAgICAgICpuZ0lmPVwiaGVhZGVyc0Zvcm1BcnJheS5jb250cm9scy5sZW5ndGggLSAxICE9PSBoZWFkZXJJbmRleFwiXG4gICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIkRlbGV0ZVwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uRGVsZXRlSGVhZGVyKGhlYWRlckluZGV4KVwiXG4gICAgICAgID5cbiAgICAgICAgICA8bWF0LWljb24gc3ZnSWNvbj1cImdpbzpjYW5jZWxcIj48L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvdGQ+XG4gICAgPC90cj5cbiAgPC90Ym9keT5cbjwvdGFibGU+XG4iXX0=
273
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLWZvcm0taGVhZGVycy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1wYXJ0aWNsZXMtYW5ndWxhci9zcmMvbGliL2dpby1mb3JtLWhlYWRlcnMvZ2lvLWZvcm0taGVhZGVycy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1wYXJ0aWNsZXMtYW5ndWxhci9zcmMvbGliL2dpby1mb3JtLWhlYWRlcnMvZ2lvLWZvcm0taGVhZGVycy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpQkEsT0FBTyxFQUFFLFNBQVMsRUFBYyxVQUFVLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBR0wsU0FBUyxFQUNULFdBQVcsRUFDWCxTQUFTLEVBQ1QsYUFBYSxFQUNiLGlCQUFpQixFQUdqQixVQUFVLEdBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7QUFTdEMsTUFBTSxZQUFZLEdBQUc7SUFDbkIsUUFBUTtJQUNSLGdCQUFnQjtJQUNoQixpQkFBaUI7SUFDakIsaUJBQWlCO0lBQ2pCLGVBQWU7SUFDZixrQ0FBa0M7SUFDbEMsOEJBQThCO0lBQzlCLDhCQUE4QjtJQUM5Qiw2QkFBNkI7SUFDN0IsK0JBQStCO0lBQy9CLHdCQUF3QjtJQUN4QixnQ0FBZ0M7SUFDaEMsK0JBQStCO0lBQy9CLEtBQUs7SUFDTCxPQUFPO0lBQ1AsZUFBZTtJQUNmLGVBQWU7SUFDZixZQUFZO0lBQ1oscUJBQXFCO0lBQ3JCLGtCQUFr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Q3RFLE9BQU8sU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQzNCO0lBQ0QsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAxNSBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgRm9jdXNNb25pdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBmb3J3YXJkUmVmLCBIb3N0QmluZGluZywgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgRm9ybUFycmF5LFxuICBGb3JtQ29udHJvbCxcbiAgRm9ybUdyb3VwLFxuICBOR19WQUxJREFUT1JTLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgVmFsaWRhdGlvbkVycm9ycyxcbiAgVmFsaWRhdG9yLFxuICBWYWxpZGF0b3JzLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBkcm9wUmlnaHQsIGlzRW1wdHkgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgbWFwLCBzdGFydFdpdGgsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCB0eXBlIEhlYWRlciA9IHsga2V5OiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfTtcblxuZXhwb3J0IHR5cGUgRm9ybUhlYWRlckZpZWxkTWFwcGVyID0ge1xuICBrZXlOYW1lOiBzdHJpbmc7XG4gIHZhbHVlTmFtZTogc3RyaW5nO1xufTtcblxuY29uc3QgSEVBREVSX05BTUVTID0gW1xuICAnQWNjZXB0JyxcbiAgJ0FjY2VwdC1DaGFyc2V0JyxcbiAgJ0FjY2VwdC1FbmNvZGluZycsXG4gICdBY2NlcHQtTGFuZ3VhZ2UnLFxuICAnQWNjZXB0LVJhbmdlcycsXG4gICdBY2Nlc3MtQ29udHJvbC1BbGxvdy1DcmVkZW50aWFscycsXG4gICdBY2Nlc3MtQ29udHJvbC1BbGxvdy1IZWFkZXJzJyxcbiAgJ0FjY2Vzcy1Db250cm9sLUFsbG93LU1ldGhvZHMnLFxuICAnQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luJyxcbiAgJ0FjY2Vzcy1Db250cm9sLUV4cG9zZS1IZWFkZXJzJyxcbiAgJ0FjY2Vzcy1Db250cm9sLU1heC1BZ2UnLFxuICAnQWNjZXNzLUNvbnRyb2wtUmVxdWVzdC1IZWFkZXJzJyxcbiAgJ0FjY2Vzcy1Db250cm9sLVJlcXVlc3QtTWV0aG9kJyxcbiAgJ0FnZScsXG4gICdBbGxvdycsXG4gICdBdXRob3JpemF0aW9uJyxcbiAgJ0NhY2hlLUNvbnRyb2wnLFxuICAnQ29ubmVjdGlvbicsXG4gICdDb250ZW50LURpc3Bvc2l0aW9uJyxcbiAgJ0NvbnRlbnQtRW5jb2RpbmcnLFxuICAnQ29udGVudC1JRCcsXG4gICdDb250ZW50LUxhbmd1YWdlJyxcbiAgJ0NvbnRlbnQtTGVuZ3RoJyxcbiAgJ0NvbnRlbnQtTG9jYXRpb24nLFxuICAnQ29udGVudC1NRDUnLFxuICAnQ29udGVudC1SYW5nZScsXG4gICdDb250ZW50LVR5cGUnLFxuICAnQ29va2llJyxcbiAgJ0RhdGUnLFxuICAnRVRhZycsXG4gICdFeHBpcmVzJyxcbiAgJ0V4cGVjdCcsXG4gICdGb3J3YXJkZWQnLFxuICAnRnJvbScsXG4gICdIb3N0JyxcbiAgJ0lmLU1hdGNoJyxcbiAgJ0lmLU1vZGlmaWVkLVNpbmNlJyxcbiAgJ0lmLU5vbmUtTWF0Y2gnLFxuICAnSWYtVW5tb2RpZmllZC1TaW5jZScsXG4gICdLZWVwLUFsaXZlJyxcbiAgJ0xhc3QtTW9kaWZpZWQnLFxuICAnTG9jYXRpb24nLFxuICAnTGluaycsXG4gICdNYXgtRm9yd2FyZHMnLFxuICAnTUlNRS1WZXJzaW9uJyxcbiAgJ09yaWdpbicsXG4gICdQcmFnbWEnLFxuICAnUHJveHktQXV0aGVudGljYXRlJyxcbiAgJ1Byb3h5LUF1dGhvcml6YXRpb24nLFxuICAnUHJveHktQ29ubmVjdGlvbicsXG4gICdSYW5nZScsXG4gICdSZWZlcmVyJyxcbiAgJ1JldHJ5LUFmdGVyJyxcbiAgJ1NlcnZlcicsXG4gICdTZXQtQ29va2llJyxcbiAgJ1NldC1Db29raWUyJyxcbiAgJ1RFJyxcbiAgJ1RyYWlsZXInLFxuICAnVHJhbnNmZXItRW5jb2RpbmcnLFxuICAnVXBncmFkZScsXG4gICdVc2VyLUFnZW50JyxcbiAgJ1ZhcnknLFxuICAnVmlhJyxcbiAgJ1dhcm5pbmcnLFxuICAnV1dXLUF1dGhlbnRpY2F0ZScsXG4gICdYLUZvcndhcmRlZC1Gb3InLFxuICAnWC1Gb3J3YXJkZWQtUHJvdG8nLFxuICAnWC1Gb3J3YXJkZWQtU2VydmVyJyxcbiAgJ1gtRm9yd2FyZGVkLUhvc3QnLFxuICAnWC1Gb3J3YXJkZWQtUG9ydCcsXG4gICdYLUZvcndhcmRlZC1QcmVmaXgnLFxuXTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ2lvLWZvcm0taGVhZGVycycsXG4gIHRlbXBsYXRlVXJsOiAnLi9naW8tZm9ybS1oZWFkZXJzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ2lvLWZvcm0taGVhZGVycy5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEdpb0Zvcm1IZWFkZXJzQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEdpb0Zvcm1IZWFkZXJzQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEdpb0Zvcm1IZWFkZXJzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgVmFsaWRhdG9yIHtcbiAgQElucHV0KClcbiAgcHVibGljIGhlYWRlckZpZWxkTWFwcGVyOiBGb3JtSGVhZGVyRmllbGRNYXBwZXIgPSB7XG4gICAga2V5TmFtZTogJ2tleScsXG4gICAgdmFsdWVOYW1lOiAndmFsdWUnLFxuICB9O1xuXG4gIHB1YmxpYyBtYWluRm9ybTogRm9ybUdyb3VwO1xuICBwdWJsaWMgaGVhZGVyc0Zvcm1BcnJheSA9IG5ldyBGb3JtQXJyYXkoW1xuICAgIG5ldyBGb3JtR3JvdXAoe1xuICAgICAga2V5OiBuZXcgRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMucGF0dGVybignXlxcXFxTKiQnKSksXG4gICAgICB2YWx1ZTogbmV3IEZvcm1Db250cm9sKCcnKSxcbiAgICB9KSxcbiAgXSk7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5kaXNhYmxlZCcpXG4gIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gIHByaXZhdGUgaGVhZGVyczogSGVhZGVyW10gPSBbXTtcblxuICBwcml2YXRlIF9vbkNoYW5nZTogKF9oZWFkZXJzOiBIZWFkZXJbXSB8IG51bGwpID0+IHZvaWQgPSAoKSA9PiAoe30pO1xuXG4gIHByaXZhdGUgX29uVG91Y2hlZDogKCkgPT4gdm9pZCA9ICgpID0+ICh7fSk7XG5cbiAgcHJpdmF0ZSBmaWx0ZXJlZEhlYWRlck5hbWVzOiBPYnNlcnZhYmxlPHN0cmluZ1tdPltdID0gW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBmbTogRm9jdXNNb25pdG9yLCBwcml2YXRlIHJlYWRvbmx5IGVsUmVmOiBFbGVtZW50UmVmKSB7XG4gICAgdGhpcy5tYWluRm9ybSA9IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgaGVhZGVyczogdGhpcy5oZWFkZXJzRm9ybUFycmF5LFxuICAgIH0pO1xuICB9XG5cbiAgLy8gRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcbiAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IFJlY29yZDxzdHJpbmcsIHN0cmluZz5bXSB8IG51bGwpOiB2b2lkIHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5oZWFkZXJzID0gWy4uLih2YWx1ZSA/PyBbXSldLm1hcCgoaGVhZGVyOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBrZXk6IGhlYWRlclt0aGlzLmhlYWRlckZpZWxkTWFwcGVyLmtleU5hbWVdLFxuICAgICAgICB2YWx1ZTogaGVhZGVyW3RoaXMuaGVhZGVyRmllbGRNYXBwZXIudmFsdWVOYW1lXSxcbiAgICAgIH07XG4gICAgfSk7XG4gICAgdGhpcy5pbml0SGVhZGVyc0Zvcm0oKTtcbiAgfVxuXG4gIC8vIEZyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoaGVhZGVyczogdW5rbm93bikgPT4gdm9pZCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmhlYWRlckZpZWxkTWFwcGVyKSB7XG4gICAgICB0aGlzLl9vbkNoYW5nZSA9IChoZWFkZXJzOiBIZWFkZXJbXSB8IG51bGwpID0+IGZuKHRoaXMudG9IZWFkZXJzKGhlYWRlcnMpKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fb25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHByaXZhdGUgdG9IZWFkZXJzKGhlYWRlcnM6IEhlYWRlcltdIHwgbnVsbCkge1xuICAgIHJldHVybiBbLi4uKGhlYWRlcnMgPz8gW10pXS5tYXAoaGVhZGVyID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIFt0aGlzLmhlYWRlckZpZWxkTWFwcGVyLmtleU5hbWVdOiBoZWFkZXIua2V5LFxuICAgICAgICBbdGhpcy5oZWFkZXJGaWVsZE1hcHBlci52YWx1ZU5hbWVdOiBoZWFkZXIudmFsdWUsXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgLy8gRnJvbSBDb250cm9sVmFsdWVBY2Nlc3NvciBpbnRlcmZhY2VcbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5fb25Ub3VjaGVkID0gZm47XG4gIH1cblxuICAvLyBGcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxuICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKGlzRGlzYWJsZWQgPT09IHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIC8vIGRvIG5vdGhpbmcgaWYgdGhlIGRpc2FibGVkIHN0YXRlIGlzIG5vdCBjaGFuZ2VkXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgaWYgKGlzRGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuaGVhZGVyc0Zvcm1BcnJheS5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgIHRoaXMucmVtb3ZlTGFzdEhlYWRlcigpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmhlYWRlcnNGb3JtQXJyYXkuZW5hYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICB0aGlzLmFkZEVtcHR5SGVhZGVyKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gV2hlbiB1c2VyIHN0YXJ0IHRvIGNvbXBsZXRlIGxhc3QgaGVhZGVyIGFkZCBuZXcgZW1wdHkgb25lIGEgdGhlIGVuZFxuICAgIHRoaXMuaGVhZGVyc0Zvcm1BcnJheT8udmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKGhlYWRlcnMgPT4gaGVhZGVycy5sZW5ndGggPiAwICYmIHRoaXMuX29uQ2hhbmdlKHJlbW92ZUxhc3RFbXB0eUhlYWRlcihoZWFkZXJzKSkpLFxuICAgICAgICB0YXAoKGhlYWRlcnM6IEhlYWRlcltdKSA9PiB7XG4gICAgICAgICAgaWYgKGhlYWRlcnMubGVuZ3RoID4gMCAmJiAoaGVhZGVyc1toZWFkZXJzLmxlbmd0aCAtIDFdLmtleSAhPT0gJycgfHwgaGVhZGVyc1toZWFkZXJzLmxlbmd0aCAtIDFdLnZhbHVlICE9PSAnJykpIHtcbiAgICAgICAgICAgIHRoaXMuYWRkRW1wdHlIZWFkZXIoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgdGhpcy5mbS5tb25pdG9yKHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudCwgdHJ1ZSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuX29uVG91Y2hlZCgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGluaXRIZWFkZXJzRm9ybSgpOiB2b2lkIHtcbiAgICAvLyBDbGVhciBhbGwgcHJldmlvdXMgaGVhZGVyc1xuICAgIHRoaXMuaGVhZGVyc0Zvcm1BcnJheS5jbGVhcigpO1xuXG4gICAgLy8gUG9wdWxhdGUgaGVhZGVycyBhcnJheSBmcm9tIGhlYWRlcnNcbiAgICB0aGlzLmhlYWRlcnMuZm9yRWFjaCgoeyBrZXksIHZhbHVlIH0sIGhlYWRlckluZGV4KSA9PiB7XG4gICAgICB0aGlzLmhlYWRlcnNGb3JtQXJyYXkucHVzaChcbiAgICAgICAgbmV3IEZvcm1Hcm91cCh7XG4gICAgICAgICAga2V5OiB0aGlzLmluaXRLZXlGb3JtQ29udHJvbChrZXksIGhlYWRlckluZGV4KSxcbiAgICAgICAgICB2YWx1ZTogbmV3IEZvcm1Db250cm9sKHsgdmFsdWUsIGRpc2FibGVkOiB0aGlzLmRpc2FibGVkIH0pLFxuICAgICAgICB9KSxcbiAgICAgICAge1xuICAgICAgICAgIGVtaXRFdmVudDogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgLy8gYWRkIG9uZSBlbXB0eSBoZWFkZXIgYSB0aGUgZW5kXG4gICAgdGhpcy5hZGRFbXB0eUhlYWRlcigpO1xuICB9XG5cbiAgcHVibGljIGdldEZpbHRlcmVkSGVhZGVyTmFtZXMoaGVhZGVySW5kZXg6IG51bWJlciwgaGVhZGVyOiBIZWFkZXIpOiBPYnNlcnZhYmxlPHN0cmluZ1tdPiB7XG4gICAgaWYgKCF0aGlzLmZpbHRlcmVkSGVhZGVyTmFtZXNbaGVhZGVySW5kZXhdKSB7XG4gICAgICByZXR1cm4gdGhpcy5maWx0ZXJlZEhlYWRlck5hbWVzW2hlYWRlckluZGV4XTtcbiAgICB9XG4gICAgaWYgKGhlYWRlci5rZXkgIT0gbnVsbCAmJiBoZWFkZXIua2V5ICE9ICcnKSB7XG4gICAgICB0aGlzLmZpbHRlcmVkSGVhZGVyTmFtZXNbaGVhZGVySW5kZXhdID0gb2YoaGVhZGVyLmtleSkucGlwZShtYXAodmFsdWUgPT4gdGhpcy5fZmlsdGVyKHZhbHVlKSkpO1xuICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyZWRIZWFkZXJOYW1lc1toZWFkZXJJbmRleF07XG4gICAgfVxuICAgIHJldHVybiBvZihIRUFERVJfTkFNRVMpO1xuICB9XG5cbiAgLy8gRnJvbSBWYWxpZGF0b3IgaW50ZXJmYWNlXG4gIHB1YmxpYyB2YWxpZGF0ZShfY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGlmICh0aGlzLmhlYWRlcnNGb3JtQXJyYXkuaW52YWxpZCkge1xuICAgICAgcmV0dXJuIHsgaW52YWxpZDogdHJ1ZSB9O1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdEtleUZvcm1Db250cm9sKGtleTogc3RyaW5nLCBoZWFkZXJJbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3QgY29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCh7IHZhbHVlOiBrZXksIGRpc2FibGVkOiB0aGlzLmRpc2FibGVkIH0sIFZhbGlkYXRvcnMucGF0dGVybignXlxcXFxTKiQnKSk7XG4gICAgY29uc3QgZmlsdGVyZWRLZXlzID0gY29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgIHN0YXJ0V2l0aCgnJyksXG4gICAgICBtYXAodmFsdWUgPT4gdGhpcy5fZmlsdGVyKHZhbHVlKSksXG4gICAgKTtcbiAgICB0aGlzLmZpbHRlcmVkSGVhZGVyTmFtZXMuc3BsaWNlKGhlYWRlckluZGV4LCAwLCBmaWx0ZXJlZEtleXMpO1xuICAgIHJldHVybiBjb250cm9sO1xuICB9XG5cbiAgcHVibGljIG9uRGVsZXRlSGVhZGVyKGhlYWRlckluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLl9vblRvdWNoZWQoKTtcbiAgICB0aGlzLmhlYWRlcnNGb3JtQXJyYXkucmVtb3ZlQXQoaGVhZGVySW5kZXgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRFbXB0eUhlYWRlcigpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaGVhZGVyc0Zvcm1BcnJheS5wdXNoKFxuICAgICAgbmV3IEZvcm1Hcm91cCh7XG4gICAgICAgIGtleTogdGhpcy5pbml0S2V5Rm9ybUNvbnRyb2woJycsIHRoaXMuaGVhZGVyc0Zvcm1BcnJheS5sZW5ndGgpLFxuICAgICAgICB2YWx1ZTogbmV3IEZvcm1Db250cm9sKCcnKSxcbiAgICAgIH0pLFxuICAgICAgeyBlbWl0RXZlbnQ6IGZhbHNlIH0sXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlTGFzdEhlYWRlcigpIHtcbiAgICB0aGlzLmhlYWRlcnNGb3JtQXJyYXkucmVtb3ZlQXQodGhpcy5oZWFkZXJzRm9ybUFycmF5Lmxlbmd0aCAtIDEsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2ZpbHRlcih2YWx1ZTogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGZpbHRlclZhbHVlID0gdmFsdWUudG9Mb3dlckNhc2UoKTtcbiAgICByZXR1cm4gSEVBREVSX05BTUVTLmZpbHRlcihvcHRpb24gPT4gb3B0aW9uLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZmlsdGVyVmFsdWUpKTtcbiAgfVxufVxuXG5jb25zdCByZW1vdmVMYXN0RW1wdHlIZWFkZXIgPSAoaGVhZGVyczogSGVhZGVyW10pID0+IHtcbiAgY29uc3QgbGFzdEhlYWRlciA9IGhlYWRlcnNbaGVhZGVycy5sZW5ndGggLSAxXTtcblxuICBpZiAobGFzdEhlYWRlciAmJiBpc0VtcHR5KGxhc3RIZWFkZXIua2V5KSAmJiBpc0VtcHR5KGxhc3RIZWFkZXIudmFsdWUpKSB7XG4gICAgcmV0dXJuIGRyb3BSaWdodChoZWFkZXJzKTtcbiAgfVxuICByZXR1cm4gaGVhZGVycztcbn07XG4iLCI8IS0tXG5cbiAgICBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcblxuICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuXG4gICAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcblxuICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuXG4tLT5cbjx0YWJsZSBjbGFzcz1cImdpby1mb3JtLWhlYWRlcnNfX3RhYmxlIGdpby10YWJsZS1saWdodFwiIFtmb3JtR3JvdXBdPVwibWFpbkZvcm1cIj5cbiAgPHRoZWFkPlxuICAgIDx0cj5cbiAgICAgIDx0aD5LRVk8L3RoPlxuICAgICAgPHRoPlZBTFVFPC90aD5cbiAgICA8L3RyPlxuICA8L3RoZWFkPlxuICA8dGJvZHkgZm9ybUFycmF5TmFtZT1cImhlYWRlcnNcIj5cbiAgICA8dHJcbiAgICAgICpuZ0Zvcj1cImxldCBjb250cm9sIG9mIGhlYWRlcnNGb3JtQXJyYXkuY29udHJvbHM7IGluZGV4IGFzIGhlYWRlckluZGV4XCJcbiAgICAgIGNsYXNzPVwiZ2lvLWZvcm0taGVhZGVyc19fdGFibGVfX2hlYWRlci1yb3dcIlxuICAgICAgW2Zvcm1Hcm91cE5hbWVdPVwiaGVhZGVySW5kZXhcIlxuICAgID5cbiAgICAgIDx0ZCBjbGFzcz1cImdpby1mb3JtLWhlYWRlcnNfX3RhYmxlX19oZWFkZXItcm93X190ZC1rZXlcIj5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZ2lvLWZvcm0taGVhZGVyc19fdGFibGVfX2hlYWRlci1yb3dfX3RkLWtleV9fZmllbGRcIiBbZmxvYXRMYWJlbF09XCInbmV2ZXInXCIgYXBwZWFyYW5jZT1cInN0YW5kYXJkXCI+XG4gICAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJrZXlcIlxuICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiTmFtZS4uLlwiXG4gICAgICAgICAgICBjZGtUZXh0YXJlYUF1dG9zaXplXG4gICAgICAgICAgICBjZGtBdXRvc2l6ZU1pblJvd3M9XCIxXCJcbiAgICAgICAgICAgIFttYXRBdXRvY29tcGxldGVdPVwiaGVhZGVyTmFtZXNBdXRvY29tcGxldGVcIlxuICAgICAgICAgID48L3RleHRhcmVhPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiY29udHJvbC5nZXQoJ2tleScpPy5oYXNFcnJvcigncGF0dGVybicpXCI+XG4gICAgICAgICAgSGVhZGVyIG5hbWUgbXVzdCBub3QgY29udGFpbiBzcGFjZXMuIChSZWdFeHA6IHt7IGNvbnRyb2wuZ2V0KCdrZXknKT8uZ2V0RXJyb3IoJ3BhdHRlcm4nKT8ucmVxdWlyZWRQYXR0ZXJuIH19KVxuICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgICAgPG1hdC1hdXRvY29tcGxldGUgI2hlYWRlck5hbWVzQXV0b2NvbXBsZXRlPVwibWF0QXV0b2NvbXBsZXRlXCI+XG4gICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGhlYWRlck5hbWUgb2YgZ2V0RmlsdGVyZWRIZWFkZXJOYW1lcyhoZWFkZXJJbmRleCwgY29udHJvbC52YWx1ZSkgfCBhc3luY1wiIFt2YWx1ZV09XCJoZWFkZXJOYW1lXCI+e3tcbiAgICAgICAgICAgIGhlYWRlck5hbWVcbiAgICAgICAgICB9fTwvbWF0LW9wdGlvbj5cbiAgICAgICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxuICAgICAgPC90ZD5cbiAgICAgIDx0ZCBjbGFzcz1cImdpby1mb3JtLWhlYWRlcnNfX3RhYmxlX19oZWFkZXItcm93X190ZC12YWx1ZVwiPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJnaW8tZm9ybS1oZWFkZXJzX190YWJsZV9faGVhZGVyLXJvd19fdGQtdmFsdWVfX2ZpZWxkXCIgW2Zsb2F0TGFiZWxdPVwiJ25ldmVyJ1wiIGFwcGVhcmFuY2U9XCJzdGFuZGFyZFwiPlxuICAgICAgICAgIDx0ZXh0YXJlYSBmb3JtQ29udHJvbE5hbWU9XCJ2YWx1ZVwiIG1hdElucHV0IHBsYWNlaG9sZGVyPVwiVmFsdWUuLi5cIiBjZGtUZXh0YXJlYUF1dG9zaXplIGNka0F1dG9zaXplTWluUm93cz1cIjFcIj48L3RleHRhcmVhPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJnaW8tZm9ybS1oZWFkZXJzX190YWJsZV9faGVhZGVyLXJvd19fdGQtdmFsdWVfX2J1dHRvblwiXG4gICAgICAgICAgKm5nSWY9XCJoZWFkZXJzRm9ybUFycmF5LmNvbnRyb2xzLmxlbmd0aCAtIDEgIT09IGhlYWRlckluZGV4XCJcbiAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICBhcmlhLWxhYmVsPVwiRGVsZXRlXCJcbiAgICAgICAgICAoY2xpY2spPVwib25EZWxldGVIZWFkZXIoaGVhZGVySW5kZXgpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwiZ2lvOmNhbmNlbFwiPjwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC90ZD5cbiAgICA8L3RyPlxuICA8L3Rib2R5PlxuPC90YWJsZT5cbiJdfQ==
@@ -27,21 +27,16 @@ export class GioFjsHeadersTypeComponent extends FieldType {
27
27
  super(...arguments);
28
28
  this.defaultOptions = {
29
29
  props: {
30
- outputConfig: {
31
- keyName: 'name',
32
- valueName: 'value',
33
- },
30
+ outputConfig: this.outputConfig,
34
31
  },
35
32
  };
36
33
  this.collapse = false;
37
34
  }
38
- get map() {
39
- return (headers) => [...(headers ?? [])].map(header => {
40
- return {
41
- [this.props.outputConfig.keyName]: header.key,
42
- [this.props.outputConfig.valueName]: header.value,
43
- };
44
- });
35
+ get outputConfig() {
36
+ return {
37
+ keyName: 'name',
38
+ valueName: 'value',
39
+ };
45
40
  }
46
41
  }
47
42
  GioFjsHeadersTypeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFjsHeadersTypeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
@@ -62,10 +57,10 @@ GioFjsHeadersTypeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
62
57
  <formly-validation-message [field]="field"></formly-validation-message>
63
58
  </div>
64
59
  <div *ngIf="!collapse" class="wrapper__rows" [class.collapse-open]="collapse" [class.collapse-close]="!collapse">
65
- <gio-form-headers [adaptOutputFn]="map" [formControl]="formControl"></gio-form-headers>
60
+ <gio-form-headers [headerFieldMapper]="outputConfig" [formControl]="formControl"></gio-form-headers>
66
61
  </div>
67
62
  </div>
68
- `, isInline: true, styles: [".wrapper{display:flex;flex-direction:column;padding:8px;border:1px solid #d3d5dc;border-radius:8px}.wrapper__header{display:flex}.wrapper__header__text{flex:1 1 auto}.wrapper__header__text__title{font:600 16px/24px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px;margin-bottom:8px}.wrapper__header__collapse{flex:0 0 auto}.wrapper__header__collapse .collapse-open{transform:rotate(180deg);transition:transform 225ms cubic-bezier(.4,0,.2,1)}.wrapper__header__collapse .collapse-close{transform:rotate(0);transition:transform 225ms cubic-bezier(.4,0,.2,1)}.wrapper__error{font:400 12px/16px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;color:#ec4899}\n"], components: [{ type: i1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i3.ɵFormlyValidationMessage, selector: "formly-validation-message", inputs: ["field"] }, { type: i4.GioFormHeadersComponent, selector: "gio-form-headers", inputs: ["adaptOutputFn"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
63
+ `, isInline: true, styles: [".wrapper{display:flex;flex-direction:column;padding:8px;border:1px solid #d3d5dc;border-radius:8px}.wrapper__header{display:flex}.wrapper__header__text{flex:1 1 auto}.wrapper__header__text__title{font:600 16px/24px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px;margin-bottom:8px}.wrapper__header__collapse{flex:0 0 auto}.wrapper__header__collapse .collapse-open{transform:rotate(180deg);transition:transform 225ms cubic-bezier(.4,0,.2,1)}.wrapper__header__collapse .collapse-close{transform:rotate(0);transition:transform 225ms cubic-bezier(.4,0,.2,1)}.wrapper__error{font:400 12px/16px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;color:#ec4899}\n"], components: [{ type: i1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i3.ɵFormlyValidationMessage, selector: "formly-validation-message", inputs: ["field"] }, { type: i4.GioFormHeadersComponent, selector: "gio-form-headers", inputs: ["headerFieldMapper"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
69
64
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFjsHeadersTypeComponent, decorators: [{
70
65
  type: Component,
71
66
  args: [{ selector: 'gio-fjs-headers-type', template: `
@@ -85,9 +80,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
85
80
  <formly-validation-message [field]="field"></formly-validation-message>
86
81
  </div>
87
82
  <div *ngIf="!collapse" class="wrapper__rows" [class.collapse-open]="collapse" [class.collapse-close]="!collapse">
88
- <gio-form-headers [adaptOutputFn]="map" [formControl]="formControl"></gio-form-headers>
83
+ <gio-form-headers [headerFieldMapper]="outputConfig" [formControl]="formControl"></gio-form-headers>
89
84
  </div>
90
85
  </div>
91
86
  `, styles: [".wrapper{display:flex;flex-direction:column;padding:8px;border:1px solid #d3d5dc;border-radius:8px}.wrapper__header{display:flex}.wrapper__header__text{flex:1 1 auto}.wrapper__header__text__title{font:600 16px/24px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px;margin-bottom:8px}.wrapper__header__collapse{flex:0 0 auto}.wrapper__header__collapse .collapse-open{transform:rotate(180deg);transition:transform 225ms cubic-bezier(.4,0,.2,1)}.wrapper__header__collapse .collapse-close{transform:rotate(0);transition:transform 225ms cubic-bezier(.4,0,.2,1)}.wrapper__error{font:400 12px/16px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;color:#ec4899}\n"] }]
92
87
  }] });
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVycy10eXBlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBhcnRpY2xlcy1hbmd1bGFyL3NyYy9saWIvZ2lvLWZvcm0tanNvbi1zY2hlbWEvdHlwZS1jb21wb25lbnQvaGVhZGVycy10eXBlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBcUMsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7Ozs7QUF3Q2hGLE1BQU0sT0FBTywwQkFBMkIsU0FBUSxTQUF3QztJQXpCeEY7O1FBMEJrQixtQkFBYyxHQUF3RDtZQUNwRixLQUFLLEVBQUU7Z0JBQ0wsWUFBWSxFQUFFO29CQUNaLE9BQU8sRUFBRSxNQUFNO29CQUNmLFNBQVMsRUFBRSxPQUFPO2lCQUNuQjthQUNGO1NBQ0YsQ0FBQztRQUVLLGFBQVEsR0FBRyxLQUFLLENBQUM7S0FXekI7SUFUQyxJQUFXLEdBQUc7UUFDWixPQUFPLENBQUMsT0FBd0IsRUFBRSxFQUFFLENBQ2xDLENBQUMsR0FBRyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNoQyxPQUFPO2dCQUNMLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEVBQUUsTUFBTSxDQUFDLEdBQUc7Z0JBQzdDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEVBQUUsTUFBTSxDQUFDLEtBQUs7YUFDbEQsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7d0hBcEJVLDBCQUEwQjs0R0FBMUIsMEJBQTBCLG1GQXZCM0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JUOzRGQUdVLDBCQUEwQjtrQkF6QnRDLFNBQVM7K0JBQ0Usc0JBQXNCLFlBQ3RCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CVCIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMjMgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZpZWxkVHlwZSwgRmllbGRUeXBlQ29uZmlnLCBGb3JtbHlGaWVsZFByb3BzIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5cbmltcG9ydCB7IEZvcm1IZWFkZXJBZGFwdE91dHB1dEZuLCBIZWFkZXIgfSBmcm9tICcuLi8uLi9naW8tZm9ybS1oZWFkZXJzL2dpby1mb3JtLWhlYWRlcnMuY29tcG9uZW50JztcblxudHlwZSBIZWFkZXJzUHJvcHMgPSBGb3JtbHlGaWVsZFByb3BzICYge1xuICAvLyBUaGUga2V5IGFuZCB2YWx1ZSBuYW1lcyBvZiB0aGUgb3V0cHV0IGFycmF5XG4gIC8vIERlZmF1bHQ6IHsga2V5TmFtZTogJ25hbWUnLCB2YWx1ZU5hbWU6ICd2YWx1ZScgfVxuICAvLyDwn5OdIE5vdGUgOiBGb3Igbm93IHRoaXMgY29uZmlnIGlzIG5vdCBlZGl0YWJsZSBieSBqc29uLXNjaGVtYSBnaW9Db25maWcuIElmIGl0IGJlY29tZXNcbiAgLy8gICAgICAgICAgIG5lY2Vzc2FyeSBpdCBpcyBwb3NzaWJsZSB0byBjaGFuZ2UgdGhlIEdpb1VpVHlwZUNvbmZpZyB0byBwYXNzIHRoaXMgY29uZmlnLlxuICBvdXRwdXRDb25maWc6IHtcbiAgICBrZXlOYW1lOiBzdHJpbmc7XG4gICAgdmFsdWVOYW1lOiBzdHJpbmc7XG4gIH07XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnaW8tZmpzLWhlYWRlcnMtdHlwZScsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyX19oZWFkZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJfX2hlYWRlcl9fdGV4dFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyX19oZWFkZXJfX3RleHRfX3RpdGxlXCIgKm5nSWY9XCJ0by5sYWJlbFwiPnt7IHRvLmxhYmVsIH19PC9kaXY+XG4gICAgICAgICAgPHAgKm5nSWY9XCJ0by5kZXNjcmlwdGlvblwiPnt7IHRvLmRlc2NyaXB0aW9uIH19PC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJfX2hlYWRlcl9fY29sbGFwc2VcIj5cbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXQtaWNvbi1idXR0b24gYXJpYS1sYWJlbD1cIkNvbGxhcHNlXCIgKGNsaWNrKT1cImNvbGxhcHNlID0gIWNvbGxhcHNlXCI+XG4gICAgICAgICAgICA8bWF0LWljb24gW2NsYXNzLmNvbGxhcHNlLW9wZW5dPVwiY29sbGFwc2VcIiBbY2xhc3MuY29sbGFwc2UtY2xvc2VdPVwiIWNvbGxhcHNlXCIgc3ZnSWNvbj1cImdpbzpuYXYtYXJyb3ctZG93blwiPjwvbWF0LWljb24+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlcl9fZXJyb3JcIiAqbmdJZj1cInNob3dFcnJvciAmJiBmb3JtQ29udHJvbC5lcnJvcnNcIj5cbiAgICAgICAgPGZvcm1seS12YWxpZGF0aW9uLW1lc3NhZ2UgW2ZpZWxkXT1cImZpZWxkXCI+PC9mb3JtbHktdmFsaWRhdGlvbi1tZXNzYWdlPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiIWNvbGxhcHNlXCIgY2xhc3M9XCJ3cmFwcGVyX19yb3dzXCIgW2NsYXNzLmNvbGxhcHNlLW9wZW5dPVwiY29sbGFwc2VcIiBbY2xhc3MuY29sbGFwc2UtY2xvc2VdPVwiIWNvbGxhcHNlXCI+XG4gICAgICAgIDxnaW8tZm9ybS1oZWFkZXJzIFthZGFwdE91dHB1dEZuXT1cIm1hcFwiIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiPjwvZ2lvLWZvcm0taGVhZGVycz5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9oZWFkZXJzLXR5cGUuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgR2lvRmpzSGVhZGVyc1R5cGVDb21wb25lbnQgZXh0ZW5kcyBGaWVsZFR5cGU8RmllbGRUeXBlQ29uZmlnPEhlYWRlcnNQcm9wcz4+IHtcbiAgcHVibGljIG92ZXJyaWRlIGRlZmF1bHRPcHRpb25zPzogUGFydGlhbDxGaWVsZFR5cGVDb25maWc8SGVhZGVyc1Byb3BzPj4gfCB1bmRlZmluZWQgPSB7XG4gICAgcHJvcHM6IHtcbiAgICAgIG91dHB1dENvbmZpZzoge1xuICAgICAgICBrZXlOYW1lOiAnbmFtZScsXG4gICAgICAgIHZhbHVlTmFtZTogJ3ZhbHVlJyxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcblxuICBwdWJsaWMgY29sbGFwc2UgPSBmYWxzZTtcblxuICBwdWJsaWMgZ2V0IG1hcCgpOiBGb3JtSGVhZGVyQWRhcHRPdXRwdXRGbjx7IFt4OiBzdHJpbmddOiBzdHJpbmcgfVtdPiB7XG4gICAgcmV0dXJuIChoZWFkZXJzOiBIZWFkZXJbXSB8IG51bGwpID0+XG4gICAgICBbLi4uKGhlYWRlcnMgPz8gW10pXS5tYXAoaGVhZGVyID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBbdGhpcy5wcm9wcy5vdXRwdXRDb25maWcua2V5TmFtZV06IGhlYWRlci5rZXksXG4gICAgICAgICAgW3RoaXMucHJvcHMub3V0cHV0Q29uZmlnLnZhbHVlTmFtZV06IGhlYWRlci52YWx1ZSxcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICB9XG59XG4iXX0=
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVycy10eXBlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBhcnRpY2xlcy1hbmd1bGFyL3NyYy9saWIvZ2lvLWZvcm0tanNvbi1zY2hlbWEvdHlwZS1jb21wb25lbnQvaGVhZGVycy10eXBlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBcUMsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7Ozs7QUF3Q2hGLE1BQU0sT0FBTywwQkFBMkIsU0FBUSxTQUF3QztJQXpCeEY7O1FBMEJrQixtQkFBYyxHQUF3RDtZQUNwRixLQUFLLEVBQUU7Z0JBQ0wsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO2FBQ2hDO1NBQ0YsQ0FBQztRQUVLLGFBQVEsR0FBRyxLQUFLLENBQUM7S0FRekI7SUFOQyxJQUFXLFlBQVk7UUFDckIsT0FBTztZQUNMLE9BQU8sRUFBRSxNQUFNO1lBQ2YsU0FBUyxFQUFFLE9BQU87U0FDbkIsQ0FBQztJQUNKLENBQUM7O3dIQWRVLDBCQUEwQjs0R0FBMUIsMEJBQTBCLG1GQXZCM0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JUOzRGQUdVLDBCQUEwQjtrQkF6QnRDLFNBQVM7K0JBQ0Usc0JBQXNCLFlBQ3RCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CVCIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMjMgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZpZWxkVHlwZSwgRmllbGRUeXBlQ29uZmlnLCBGb3JtbHlGaWVsZFByb3BzIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5cbmltcG9ydCB7IEZvcm1IZWFkZXJGaWVsZE1hcHBlciB9IGZyb20gJy4uLy4uL2dpby1mb3JtLWhlYWRlcnMvZ2lvLWZvcm0taGVhZGVycy5jb21wb25lbnQnO1xuXG50eXBlIEhlYWRlcnNQcm9wcyA9IEZvcm1seUZpZWxkUHJvcHMgJiB7XG4gIC8vIFRoZSBrZXkgYW5kIHZhbHVlIG5hbWVzIG9mIHRoZSBvdXRwdXQgYXJyYXlcbiAgLy8gRGVmYXVsdDogeyBrZXlOYW1lOiAnbmFtZScsIHZhbHVlTmFtZTogJ3ZhbHVlJyB9XG4gIC8vIPCfk50gTm90ZSA6IEZvciBub3cgdGhpcyBjb25maWcgaXMgbm90IGVkaXRhYmxlIGJ5IGpzb24tc2NoZW1hIGdpb0NvbmZpZy4gSWYgaXQgYmVjb21lc1xuICAvLyAgICAgICAgICAgbmVjZXNzYXJ5IGl0IGlzIHBvc3NpYmxlIHRvIGNoYW5nZSB0aGUgR2lvVWlUeXBlQ29uZmlnIHRvIHBhc3MgdGhpcyBjb25maWcuXG4gIG91dHB1dENvbmZpZzoge1xuICAgIGtleU5hbWU6IHN0cmluZztcbiAgICB2YWx1ZU5hbWU6IHN0cmluZztcbiAgfTtcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2dpby1manMtaGVhZGVycy10eXBlJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxuICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJfX2hlYWRlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlcl9faGVhZGVyX190ZXh0XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJfX2hlYWRlcl9fdGV4dF9fdGl0bGVcIiAqbmdJZj1cInRvLmxhYmVsXCI+e3sgdG8ubGFiZWwgfX08L2Rpdj5cbiAgICAgICAgICA8cCAqbmdJZj1cInRvLmRlc2NyaXB0aW9uXCI+e3sgdG8uZGVzY3JpcHRpb24gfX08L3A+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlcl9faGVhZGVyX19jb2xsYXBzZVwiPlxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdC1pY29uLWJ1dHRvbiBhcmlhLWxhYmVsPVwiQ29sbGFwc2VcIiAoY2xpY2spPVwiY29sbGFwc2UgPSAhY29sbGFwc2VcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBbY2xhc3MuY29sbGFwc2Utb3Blbl09XCJjb2xsYXBzZVwiIFtjbGFzcy5jb2xsYXBzZS1jbG9zZV09XCIhY29sbGFwc2VcIiBzdmdJY29uPVwiZ2lvOm5hdi1hcnJvdy1kb3duXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyX19lcnJvclwiICpuZ0lmPVwic2hvd0Vycm9yICYmIGZvcm1Db250cm9sLmVycm9yc1wiPlxuICAgICAgICA8Zm9ybWx5LXZhbGlkYXRpb24tbWVzc2FnZSBbZmllbGRdPVwiZmllbGRcIj48L2Zvcm1seS12YWxpZGF0aW9uLW1lc3NhZ2U+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCIhY29sbGFwc2VcIiBjbGFzcz1cIndyYXBwZXJfX3Jvd3NcIiBbY2xhc3MuY29sbGFwc2Utb3Blbl09XCJjb2xsYXBzZVwiIFtjbGFzcy5jb2xsYXBzZS1jbG9zZV09XCIhY29sbGFwc2VcIj5cbiAgICAgICAgPGdpby1mb3JtLWhlYWRlcnMgW2hlYWRlckZpZWxkTWFwcGVyXT1cIm91dHB1dENvbmZpZ1wiIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiPjwvZ2lvLWZvcm0taGVhZGVycz5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9oZWFkZXJzLXR5cGUuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgR2lvRmpzSGVhZGVyc1R5cGVDb21wb25lbnQgZXh0ZW5kcyBGaWVsZFR5cGU8RmllbGRUeXBlQ29uZmlnPEhlYWRlcnNQcm9wcz4+IHtcbiAgcHVibGljIG92ZXJyaWRlIGRlZmF1bHRPcHRpb25zPzogUGFydGlhbDxGaWVsZFR5cGVDb25maWc8SGVhZGVyc1Byb3BzPj4gfCB1bmRlZmluZWQgPSB7XG4gICAgcHJvcHM6IHtcbiAgICAgIG91dHB1dENvbmZpZzogdGhpcy5vdXRwdXRDb25maWcsXG4gICAgfSxcbiAgfTtcblxuICBwdWJsaWMgY29sbGFwc2UgPSBmYWxzZTtcblxuICBwdWJsaWMgZ2V0IG91dHB1dENvbmZpZygpOiBGb3JtSGVhZGVyRmllbGRNYXBwZXIge1xuICAgIHJldHVybiB7XG4gICAgICBrZXlOYW1lOiAnbmFtZScsXG4gICAgICB2YWx1ZU5hbWU6ICd2YWx1ZScsXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -1294,6 +1294,10 @@ class GioFormHeadersComponent {
1294
1294
  constructor(fm, elRef) {
1295
1295
  this.fm = fm;
1296
1296
  this.elRef = elRef;
1297
+ this.headerFieldMapper = {
1298
+ keyName: 'key',
1299
+ valueName: 'value',
1300
+ };
1297
1301
  this.headersFormArray = new FormArray([
1298
1302
  new FormGroup({
1299
1303
  key: new FormControl('', Validators.pattern('^\\S*$')),
@@ -1314,18 +1318,30 @@ class GioFormHeadersComponent {
1314
1318
  if (!value) {
1315
1319
  return;
1316
1320
  }
1317
- this.headers = value !== null && value !== void 0 ? value : [];
1321
+ this.headers = [...(value !== null && value !== void 0 ? value : [])].map((header) => {
1322
+ return {
1323
+ key: header[this.headerFieldMapper.keyName],
1324
+ value: header[this.headerFieldMapper.valueName],
1325
+ };
1326
+ });
1318
1327
  this.initHeadersForm();
1319
1328
  }
1320
1329
  // From ControlValueAccessor interface
1321
1330
  registerOnChange(fn) {
1322
- const adaptOutputFn = this.adaptOutputFn;
1323
- if (adaptOutputFn) {
1324
- this._onChange = (headers) => fn(adaptOutputFn(headers));
1331
+ if (this.headerFieldMapper) {
1332
+ this._onChange = (headers) => fn(this.toHeaders(headers));
1325
1333
  return;
1326
1334
  }
1327
1335
  this._onChange = fn;
1328
1336
  }
1337
+ toHeaders(headers) {
1338
+ return [...(headers !== null && headers !== void 0 ? headers : [])].map(header => {
1339
+ return {
1340
+ [this.headerFieldMapper.keyName]: header.key,
1341
+ [this.headerFieldMapper.valueName]: header.value,
1342
+ };
1343
+ });
1344
+ }
1329
1345
  // From ControlValueAccessor interface
1330
1346
  registerOnTouched(fn) {
1331
1347
  this._onTouched = fn;
@@ -1417,7 +1433,7 @@ class GioFormHeadersComponent {
1417
1433
  }
1418
1434
  }
1419
1435
  GioFormHeadersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormHeadersComponent, deps: [{ token: i2$2.FocusMonitor }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
1420
- GioFormHeadersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioFormHeadersComponent, selector: "gio-form-headers", inputs: { adaptOutputFn: "adaptOutputFn" }, host: { properties: { "class.disabled": "this.disabled" } }, providers: [
1436
+ GioFormHeadersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioFormHeadersComponent, selector: "gio-form-headers", inputs: { headerFieldMapper: "headerFieldMapper" }, host: { properties: { "class.disabled": "this.disabled" } }, providers: [
1421
1437
  {
1422
1438
  provide: NG_VALUE_ACCESSOR,
1423
1439
  useExisting: forwardRef(() => GioFormHeadersComponent),
@@ -1443,7 +1459,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
1443
1459
  multi: true,
1444
1460
  },
1445
1461
  ], template: "<!--\n\n Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<table class=\"gio-form-headers__table gio-table-light\" [formGroup]=\"mainForm\">\n <thead>\n <tr>\n <th>KEY</th>\n <th>VALUE</th>\n </tr>\n </thead>\n <tbody formArrayName=\"headers\">\n <tr\n *ngFor=\"let control of headersFormArray.controls; index as headerIndex\"\n class=\"gio-form-headers__table__header-row\"\n [formGroupName]=\"headerIndex\"\n >\n <td class=\"gio-form-headers__table__header-row__td-key\">\n <mat-form-field class=\"gio-form-headers__table__header-row__td-key__field\" [floatLabel]=\"'never'\" appearance=\"standard\">\n <textarea\n formControlName=\"key\"\n matInput\n placeholder=\"Name...\"\n cdkTextareaAutosize\n cdkAutosizeMinRows=\"1\"\n [matAutocomplete]=\"headerNamesAutocomplete\"\n ></textarea>\n </mat-form-field>\n <mat-error *ngIf=\"control.get('key')?.hasError('pattern')\">\n Header name must not contain spaces. (RegExp: {{ control.get('key')?.getError('pattern')?.requiredPattern }})\n </mat-error>\n <mat-autocomplete #headerNamesAutocomplete=\"matAutocomplete\">\n <mat-option *ngFor=\"let headerName of getFilteredHeaderNames(headerIndex, control.value) | async\" [value]=\"headerName\">{{\n headerName\n }}</mat-option>\n </mat-autocomplete>\n </td>\n <td class=\"gio-form-headers__table__header-row__td-value\">\n <mat-form-field class=\"gio-form-headers__table__header-row__td-value__field\" [floatLabel]=\"'never'\" appearance=\"standard\">\n <textarea formControlName=\"value\" matInput placeholder=\"Value...\" cdkTextareaAutosize cdkAutosizeMinRows=\"1\"></textarea>\n </mat-form-field>\n <button\n class=\"gio-form-headers__table__header-row__td-value__button\"\n *ngIf=\"headersFormArray.controls.length - 1 !== headerIndex\"\n mat-icon-button\n aria-label=\"Delete\"\n (click)=\"onDeleteHeader(headerIndex)\"\n >\n <mat-icon svgIcon=\"gio:cancel\"></mat-icon>\n </button>\n </td>\n </tr>\n </tbody>\n</table>\n", styles: [":host{display:block;overflow:hidden}.gio-form-headers__table{width:100%}.gio-form-headers__table__header-row__td-key,.gio-form-headers__table__header-row__td-value{position:relative;width:50%}.gio-form-headers__table__header-row__td-key__field,.gio-form-headers__table__header-row__td-value__field{display:flex;overflow:hidden;width:100%;max-height:32px;flex-direction:column;justify-content:center;padding-bottom:0}.gio-form-headers__table__header-row__td-key__field *,.gio-form-headers__table__header-row__td-value__field *{top:0;overflow:hidden;max-height:32px}.gio-form-headers__table__header-row__td-key__field:focus-within,.gio-form-headers__table__header-row__td-value__field:focus-within{z-index:100;height:auto;background-color:#fff}.gio-form-headers__table__header-row__td-key__field:focus-within *,.gio-form-headers__table__header-row__td-value__field:focus-within *{max-height:none}.gio-form-headers__table__header-row__td-key__button,.gio-form-headers__table__header-row__td-value__button{position:absolute;top:3px;right:3px;display:none}.gio-form-headers__table__header-row__td-remove{width:32px;height:32px;padding:0}.gio-form-headers__table__header-row:hover .gio-form-headers__table__header-row__td-value__button{z-index:110;display:block;background-color:#fff;opacity:.9}::ng-deep gio-form-headers .gio-form-headers__table__header-row .mat-form-field-infix{width:inherit}\n"] }]
1446
- }], ctorParameters: function () { return [{ type: i2$2.FocusMonitor }, { type: i0.ElementRef }]; }, propDecorators: { adaptOutputFn: [{
1462
+ }], ctorParameters: function () { return [{ type: i2$2.FocusMonitor }, { type: i0.ElementRef }]; }, propDecorators: { headerFieldMapper: [{
1447
1463
  type: Input
1448
1464
  }], disabled: [{
1449
1465
  type: HostBinding,
@@ -4359,21 +4375,16 @@ class GioFjsHeadersTypeComponent extends FieldType {
4359
4375
  super(...arguments);
4360
4376
  this.defaultOptions = {
4361
4377
  props: {
4362
- outputConfig: {
4363
- keyName: 'name',
4364
- valueName: 'value',
4365
- },
4378
+ outputConfig: this.outputConfig,
4366
4379
  },
4367
4380
  };
4368
4381
  this.collapse = false;
4369
4382
  }
4370
- get map() {
4371
- return (headers) => [...(headers !== null && headers !== void 0 ? headers : [])].map(header => {
4372
- return {
4373
- [this.props.outputConfig.keyName]: header.key,
4374
- [this.props.outputConfig.valueName]: header.value,
4375
- };
4376
- });
4383
+ get outputConfig() {
4384
+ return {
4385
+ keyName: 'name',
4386
+ valueName: 'value',
4387
+ };
4377
4388
  }
4378
4389
  }
4379
4390
  GioFjsHeadersTypeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFjsHeadersTypeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
@@ -4394,10 +4405,10 @@ GioFjsHeadersTypeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
4394
4405
  <formly-validation-message [field]="field"></formly-validation-message>
4395
4406
  </div>
4396
4407
  <div *ngIf="!collapse" class="wrapper__rows" [class.collapse-open]="collapse" [class.collapse-close]="!collapse">
4397
- <gio-form-headers [adaptOutputFn]="map" [formControl]="formControl"></gio-form-headers>
4408
+ <gio-form-headers [headerFieldMapper]="outputConfig" [formControl]="formControl"></gio-form-headers>
4398
4409
  </div>
4399
4410
  </div>
4400
- `, isInline: true, styles: [".wrapper{display:flex;flex-direction:column;padding:8px;border:1px solid #d3d5dc;border-radius:8px}.wrapper__header{display:flex}.wrapper__header__text{flex:1 1 auto}.wrapper__header__text__title{font:600 16px/24px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px;margin-bottom:8px}.wrapper__header__collapse{flex:0 0 auto}.wrapper__header__collapse .collapse-open{transform:rotate(180deg);transition:transform 225ms cubic-bezier(.4,0,.2,1)}.wrapper__header__collapse .collapse-close{transform:rotate(0);transition:transform 225ms cubic-bezier(.4,0,.2,1)}.wrapper__error{font:400 12px/16px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;color:#ec4899}\n"], components: [{ type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i1$4.ɵFormlyValidationMessage, selector: "formly-validation-message", inputs: ["field"] }, { type: GioFormHeadersComponent, selector: "gio-form-headers", inputs: ["adaptOutputFn"] }], directives: [{ type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
4411
+ `, isInline: true, styles: [".wrapper{display:flex;flex-direction:column;padding:8px;border:1px solid #d3d5dc;border-radius:8px}.wrapper__header{display:flex}.wrapper__header__text{flex:1 1 auto}.wrapper__header__text__title{font:600 16px/24px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px;margin-bottom:8px}.wrapper__header__collapse{flex:0 0 auto}.wrapper__header__collapse .collapse-open{transform:rotate(180deg);transition:transform 225ms cubic-bezier(.4,0,.2,1)}.wrapper__header__collapse .collapse-close{transform:rotate(0);transition:transform 225ms cubic-bezier(.4,0,.2,1)}.wrapper__error{font:400 12px/16px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;color:#ec4899}\n"], components: [{ type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i1$4.ɵFormlyValidationMessage, selector: "formly-validation-message", inputs: ["field"] }, { type: GioFormHeadersComponent, selector: "gio-form-headers", inputs: ["headerFieldMapper"] }], directives: [{ type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
4401
4412
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFjsHeadersTypeComponent, decorators: [{
4402
4413
  type: Component,
4403
4414
  args: [{ selector: 'gio-fjs-headers-type', template: `
@@ -4417,7 +4428,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
4417
4428
  <formly-validation-message [field]="field"></formly-validation-message>
4418
4429
  </div>
4419
4430
  <div *ngIf="!collapse" class="wrapper__rows" [class.collapse-open]="collapse" [class.collapse-close]="!collapse">
4420
- <gio-form-headers [adaptOutputFn]="map" [formControl]="formControl"></gio-form-headers>
4431
+ <gio-form-headers [headerFieldMapper]="outputConfig" [formControl]="formControl"></gio-form-headers>
4421
4432
  </div>
4422
4433
  </div>
4423
4434
  `, styles: [".wrapper{display:flex;flex-direction:column;padding:8px;border:1px solid #d3d5dc;border-radius:8px}.wrapper__header{display:flex}.wrapper__header__text{flex:1 1 auto}.wrapper__header__text__title{font:600 16px/24px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px;margin-bottom:8px}.wrapper__header__collapse{flex:0 0 auto}.wrapper__header__collapse .collapse-open{transform:rotate(180deg);transition:transform 225ms cubic-bezier(.4,0,.2,1)}.wrapper__header__collapse .collapse-close{transform:rotate(0);transition:transform 225ms cubic-bezier(.4,0,.2,1)}.wrapper__error{font:400 12px/16px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;color:#ec4899}\n"] }]