@gravitee/ui-particles-angular 4.13.0 → 5.0.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.
Files changed (96) hide show
  1. package/{esm2015/gravitee-ui-particles-angular.js → esm2020/gravitee-ui-particles-angular.mjs} +0 -0
  2. package/{esm2015/lib/gio-avatar/gio-avatar.component.js → esm2020/lib/gio-avatar/gio-avatar.component.mjs} +5 -9
  3. package/{esm2015/lib/gio-avatar/gio-avatar.module.js → esm2020/lib/gio-avatar/gio-avatar.module.mjs} +5 -6
  4. package/{esm2015/lib/gio-avatar/index.js → esm2020/lib/gio-avatar/index.mjs} +0 -0
  5. package/esm2020/lib/gio-banner/gio-banner.component.mjs +101 -0
  6. package/{esm2015/lib/gio-banner/gio-banner.module.js → esm2020/lib/gio-banner/gio-banner.module.mjs} +5 -12
  7. package/{esm2015/lib/gio-breadcrumb/gio-breadcrumb-item.directive.js → esm2020/lib/gio-breadcrumb/gio-breadcrumb-item.directive.mjs} +3 -3
  8. package/esm2020/lib/gio-breadcrumb/gio-breadcrumb.component.mjs +32 -0
  9. package/{esm2015/lib/gio-breadcrumb/gio-breadcrumb.module.js → esm2020/lib/gio-breadcrumb/gio-breadcrumb.module.mjs} +5 -6
  10. package/{esm2015/lib/gio-breadcrumb/index.js → esm2020/lib/gio-breadcrumb/index.mjs} +0 -0
  11. package/esm2020/lib/gio-confirm-and-validate-dialog/gio-confirm-and-validate-dialog.component.mjs +55 -0
  12. package/esm2020/lib/gio-confirm-and-validate-dialog/gio-confirm-and-validate-dialog.harness.mjs +40 -0
  13. package/{esm2015/lib/gio-confirm-and-validate-dialog/gio-confirm-and-validate-dialog.module.js → esm2020/lib/gio-confirm-and-validate-dialog/gio-confirm-and-validate-dialog.module.mjs} +5 -6
  14. package/esm2020/lib/gio-confirm-dialog/gio-confirm-dialog.component.mjs +40 -0
  15. package/esm2020/lib/gio-confirm-dialog/gio-confirm-dialog.harness.mjs +34 -0
  16. package/{esm2015/lib/gio-confirm-dialog/gio-confirm-dialog.module.js → esm2020/lib/gio-confirm-dialog/gio-confirm-dialog.module.mjs} +5 -6
  17. package/esm2020/lib/gio-form-file-picker/gio-form-file-picker-add-button/gio-form-file-picker-add-button.component.mjs +29 -0
  18. package/esm2020/lib/gio-form-file-picker/gio-form-file-picker-empty/gio-form-file-picker-empty.component.mjs +27 -0
  19. package/esm2020/lib/gio-form-file-picker/gio-form-file-picker-label/gio-form-file-picker-label.component.mjs +26 -0
  20. package/esm2020/lib/gio-form-file-picker/gio-form-file-picker.component.harness.mjs +95 -0
  21. package/esm2020/lib/gio-form-file-picker/gio-form-file-picker.component.mjs +167 -0
  22. package/{esm2015/lib/gio-form-file-picker/gio-form-file-picker.model.js → esm2020/lib/gio-form-file-picker/gio-form-file-picker.model.mjs} +0 -0
  23. package/{esm2015/lib/gio-form-file-picker/gio-form-file-picker.module.js → esm2020/lib/gio-form-file-picker/gio-form-file-picker.module.mjs} +4 -4
  24. package/{esm2015/lib/gio-form-file-picker/index.js → esm2020/lib/gio-form-file-picker/index.mjs} +0 -0
  25. package/esm2020/lib/gio-form-headers/gio-form-headers.component.mjs +233 -0
  26. package/esm2020/lib/gio-form-headers/gio-form-headers.harness.mjs +65 -0
  27. package/{esm2015/lib/gio-form-headers/gio-form-headers.module.js → esm2020/lib/gio-form-headers/gio-form-headers.module.mjs} +5 -6
  28. package/esm2020/lib/gio-form-tags-input/gio-form-tags-input.component.mjs +243 -0
  29. package/esm2020/lib/gio-form-tags-input/gio-form-tags-input.harness.mjs +67 -0
  30. package/{esm2015/lib/gio-form-tags-input/gio-form-tags-input.module.js → esm2020/lib/gio-form-tags-input/gio-form-tags-input.module.mjs} +5 -6
  31. package/{esm2015/lib/gio-icons/gio-icons.module.js → esm2020/lib/gio-icons/gio-icons.module.mjs} +5 -6
  32. package/esm2020/lib/gio-menu/gio-menu-footer/gio-menu-footer.component.mjs +26 -0
  33. package/esm2020/lib/gio-menu/gio-menu-header/gio-menu-header.component.mjs +26 -0
  34. package/{esm2015/lib/gio-menu/gio-menu-item/gio-menu-item.component.js → esm2020/lib/gio-menu/gio-menu-item/gio-menu-item.component.mjs} +5 -9
  35. package/esm2020/lib/gio-menu/gio-menu-list/gio-menu-list.component.mjs +26 -0
  36. package/esm2020/lib/gio-menu/gio-menu-selector/gio-menu-selector.component.mjs +53 -0
  37. package/esm2020/lib/gio-menu/gio-menu-selector/gio-menu-selector.harness.mjs +41 -0
  38. package/esm2020/lib/gio-menu/gio-menu.component.mjs +50 -0
  39. package/{esm2015/lib/gio-menu/gio-menu.module.js → esm2020/lib/gio-menu/gio-menu.module.mjs} +4 -4
  40. package/{esm2015/lib/gio-menu/gio-menu.service.js → esm2020/lib/gio-menu/gio-menu.service.mjs} +3 -3
  41. package/{esm2015/lib/gio-menu/index.js → esm2020/lib/gio-menu/index.mjs} +0 -0
  42. package/esm2020/lib/gio-save-bar/gio-save-bar.component.mjs +129 -0
  43. package/esm2020/lib/gio-save-bar/gio-save-bar.harness.mjs +49 -0
  44. package/{esm2015/lib/gio-save-bar/gio-save-bar.module.js → esm2020/lib/gio-save-bar/gio-save-bar.module.mjs} +5 -6
  45. package/esm2020/lib/gio-submenu/gio-submenu-group/gio-submenu-group.component.mjs +31 -0
  46. package/esm2020/lib/gio-submenu/gio-submenu-item/gio-submenu-item.component.mjs +42 -0
  47. package/{esm2015/lib/gio-submenu/gio-submenu.component.js → esm2020/lib/gio-submenu/gio-submenu.component.mjs} +9 -13
  48. package/{esm2015/lib/gio-submenu/gio-submenu.module.js → esm2020/lib/gio-submenu/gio-submenu.module.mjs} +4 -4
  49. package/{esm2015/lib/gio-submenu/index.js → esm2020/lib/gio-submenu/index.mjs} +0 -0
  50. package/esm2020/lib/gio-top-bar/gio-top-bar-content/gio-top-bar-content.component.mjs +35 -0
  51. package/esm2020/lib/gio-top-bar/gio-top-bar-link/gio-top-bar-link.component.mjs +35 -0
  52. package/{esm2015/lib/gio-top-bar/gio-top-bar-link/gio-top-bar-link.module.js → esm2020/lib/gio-top-bar/gio-top-bar-link/gio-top-bar-link.module.mjs} +4 -4
  53. package/esm2020/lib/gio-top-bar/gio-top-bar-menu/gio-top-bar-menu.component.mjs +26 -0
  54. package/{esm2015/lib/gio-top-bar/gio-top-bar-menu/gio-top-bar-menu.module.js → esm2020/lib/gio-top-bar/gio-top-bar-menu/gio-top-bar-menu.module.mjs} +4 -4
  55. package/esm2020/lib/gio-top-bar/gio-top-bar.component.mjs +34 -0
  56. package/{esm2015/lib/gio-top-bar/gio-top-bar.module.js → esm2020/lib/gio-top-bar/gio-top-bar.module.mjs} +4 -4
  57. package/{esm2015/lib/gio-top-bar/index.js → esm2020/lib/gio-top-bar/index.mjs} +0 -0
  58. package/{esm2015/lib/public-api.js → esm2020/lib/public-api.mjs} +0 -0
  59. package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
  60. package/fesm2015/{gravitee-ui-particles-angular.js → gravitee-ui-particles-angular.mjs} +223 -413
  61. package/fesm2015/gravitee-ui-particles-angular.mjs.map +1 -0
  62. package/fesm2020/gravitee-ui-particles-angular.mjs +2754 -0
  63. package/fesm2020/gravitee-ui-particles-angular.mjs.map +1 -0
  64. package/package.json +25 -12
  65. package/bundles/gravitee-ui-particles-angular.umd.js +0 -3727
  66. package/bundles/gravitee-ui-particles-angular.umd.js.map +0 -1
  67. package/esm2015/lib/gio-banner/gio-banner.component.js +0 -121
  68. package/esm2015/lib/gio-breadcrumb/gio-breadcrumb.component.js +0 -36
  69. package/esm2015/lib/gio-confirm-and-validate-dialog/gio-confirm-and-validate-dialog.component.js +0 -60
  70. package/esm2015/lib/gio-confirm-and-validate-dialog/gio-confirm-and-validate-dialog.harness.js +0 -45
  71. package/esm2015/lib/gio-confirm-dialog/gio-confirm-dialog.component.js +0 -45
  72. package/esm2015/lib/gio-confirm-dialog/gio-confirm-dialog.harness.js +0 -39
  73. package/esm2015/lib/gio-form-file-picker/gio-form-file-picker-add-button/gio-form-file-picker-add-button.component.js +0 -34
  74. package/esm2015/lib/gio-form-file-picker/gio-form-file-picker-empty/gio-form-file-picker-empty.component.js +0 -31
  75. package/esm2015/lib/gio-form-file-picker/gio-form-file-picker-label/gio-form-file-picker-label.component.js +0 -31
  76. package/esm2015/lib/gio-form-file-picker/gio-form-file-picker.component.harness.js +0 -114
  77. package/esm2015/lib/gio-form-file-picker/gio-form-file-picker.component.js +0 -177
  78. package/esm2015/lib/gio-form-headers/gio-form-headers.component.js +0 -237
  79. package/esm2015/lib/gio-form-headers/gio-form-headers.harness.js +0 -76
  80. package/esm2015/lib/gio-form-tags-input/gio-form-tags-input.component.js +0 -255
  81. package/esm2015/lib/gio-form-tags-input/gio-form-tags-input.harness.js +0 -78
  82. package/esm2015/lib/gio-menu/gio-menu-footer/gio-menu-footer.component.js +0 -30
  83. package/esm2015/lib/gio-menu/gio-menu-header/gio-menu-header.component.js +0 -30
  84. package/esm2015/lib/gio-menu/gio-menu-list/gio-menu-list.component.js +0 -30
  85. package/esm2015/lib/gio-menu/gio-menu-selector/gio-menu-selector.component.js +0 -57
  86. package/esm2015/lib/gio-menu/gio-menu-selector/gio-menu-selector.harness.js +0 -48
  87. package/esm2015/lib/gio-menu/gio-menu.component.js +0 -55
  88. package/esm2015/lib/gio-save-bar/gio-save-bar.component.js +0 -135
  89. package/esm2015/lib/gio-save-bar/gio-save-bar.harness.js +0 -60
  90. package/esm2015/lib/gio-submenu/gio-submenu-group/gio-submenu-group.component.js +0 -35
  91. package/esm2015/lib/gio-submenu/gio-submenu-item/gio-submenu-item.component.js +0 -47
  92. package/esm2015/lib/gio-top-bar/gio-top-bar-content/gio-top-bar-content.component.js +0 -39
  93. package/esm2015/lib/gio-top-bar/gio-top-bar-link/gio-top-bar-link.component.js +0 -39
  94. package/esm2015/lib/gio-top-bar/gio-top-bar-menu/gio-top-bar-menu.component.js +0 -30
  95. package/esm2015/lib/gio-top-bar/gio-top-bar.component.js +0 -38
  96. package/fesm2015/gravitee-ui-particles-angular.js.map +0 -1
@@ -1,237 +0,0 @@
1
- import { Component, forwardRef, HostBinding } from '@angular/core';
2
- import { FormArray, FormControl, FormGroup, NG_VALUE_ACCESSOR } from '@angular/forms';
3
- import { dropRight, isEmpty } from 'lodash';
4
- import { map, startWith, tap } from 'rxjs/operators';
5
- import { of } from 'rxjs';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/cdk/a11y";
8
- import * as i2 from "@angular/material/form-field";
9
- import * as i3 from "@angular/material/autocomplete";
10
- import * as i4 from "@angular/material/core";
11
- import * as i5 from "@angular/material/button";
12
- import * as i6 from "@angular/material/icon";
13
- import * as i7 from "@angular/forms";
14
- import * as i8 from "@angular/common";
15
- import * as i9 from "@angular/material/input";
16
- import * as i10 from "@angular/cdk/text-field";
17
- const HEADER_NAMES = [
18
- 'Accept',
19
- 'Accept-Charset',
20
- 'Accept-Encoding',
21
- 'Accept-Language',
22
- 'Accept-Ranges',
23
- 'Access-Control-Allow-Credentials',
24
- 'Access-Control-Allow-Headers',
25
- 'Access-Control-Allow-Methods',
26
- 'Access-Control-Allow-Origin',
27
- 'Access-Control-Expose-Headers',
28
- 'Access-Control-Max-Age',
29
- 'Access-Control-Request-Headers',
30
- 'Access-Control-Request-Method',
31
- 'Age',
32
- 'Allow',
33
- 'Authorization',
34
- 'Cache-Control',
35
- 'Connection',
36
- 'Content-Disposition',
37
- 'Content-Encoding',
38
- 'Content-ID',
39
- 'Content-Language',
40
- 'Content-Length',
41
- 'Content-Location',
42
- 'Content-MD5',
43
- 'Content-Range',
44
- 'Content-Type',
45
- 'Cookie',
46
- 'Date',
47
- 'ETag',
48
- 'Expires',
49
- 'Expect',
50
- 'Forwarded',
51
- 'From',
52
- 'Host',
53
- 'If-Match',
54
- 'If-Modified-Since',
55
- 'If-None-Match',
56
- 'If-Unmodified-Since',
57
- 'Keep-Alive',
58
- 'Last-Modified',
59
- 'Location',
60
- 'Link',
61
- 'Max-Forwards',
62
- 'MIME-Version',
63
- 'Origin',
64
- 'Pragma',
65
- 'Proxy-Authenticate',
66
- 'Proxy-Authorization',
67
- 'Proxy-Connection',
68
- 'Range',
69
- 'Referer',
70
- 'Retry-After',
71
- 'Server',
72
- 'Set-Cookie',
73
- 'Set-Cookie2',
74
- 'TE',
75
- 'Trailer',
76
- 'Transfer-Encoding',
77
- 'Upgrade',
78
- 'User-Agent',
79
- 'Vary',
80
- 'Via',
81
- 'Warning',
82
- 'WWW-Authenticate',
83
- 'X-Forwarded-For',
84
- 'X-Forwarded-Proto',
85
- 'X-Forwarded-Server',
86
- 'X-Forwarded-Host',
87
- 'X-Forwarded-Port',
88
- 'X-Forwarded-Prefix',
89
- ];
90
- export class GioFormHeadersComponent {
91
- constructor(fm, elRef) {
92
- this.fm = fm;
93
- this.elRef = elRef;
94
- this.headersFormArray = new FormArray([
95
- new FormGroup({
96
- key: new FormControl(''),
97
- value: new FormControl(''),
98
- }),
99
- ]);
100
- this.disabled = false;
101
- this.headers = [];
102
- this._onChange = () => ({});
103
- this._onTouched = () => ({});
104
- this.filteredHeaderNames = [];
105
- this.mainForm = new FormGroup({
106
- headers: this.headersFormArray,
107
- });
108
- }
109
- // From ControlValueAccessor interface
110
- writeValue(value) {
111
- if (!value) {
112
- return;
113
- }
114
- this.headers = value !== null && value !== void 0 ? value : [];
115
- this.initHeadersForm();
116
- }
117
- // From ControlValueAccessor interface
118
- registerOnChange(fn) {
119
- this._onChange = fn;
120
- }
121
- // From ControlValueAccessor interface
122
- registerOnTouched(fn) {
123
- this._onTouched = fn;
124
- }
125
- // From ControlValueAccessor interface
126
- setDisabledState(isDisabled) {
127
- if (isDisabled === this.disabled) {
128
- // do nothing if the disabled state is not changed
129
- return;
130
- }
131
- this.disabled = isDisabled;
132
- if (isDisabled) {
133
- this.headersFormArray.disable({ emitEvent: false });
134
- this.removeLastHeader();
135
- return;
136
- }
137
- this.headersFormArray.enable({ emitEvent: false });
138
- this.addEmptyHeader();
139
- }
140
- ngOnInit() {
141
- var _a;
142
- // When user start to complete last header add new empty one a the end
143
- (_a = this.headersFormArray) === null || _a === void 0 ? void 0 : _a.valueChanges.pipe(tap(headers => headers.length > 0 && this._onChange(removeLastEmptyHeader(headers))), tap((headers) => {
144
- if (headers.length > 0 && (headers[headers.length - 1].key !== '' || headers[headers.length - 1].value !== '')) {
145
- this.addEmptyHeader();
146
- }
147
- })).subscribe();
148
- this.fm.monitor(this.elRef.nativeElement, true).subscribe(() => {
149
- this._onTouched();
150
- });
151
- }
152
- initHeadersForm() {
153
- // Clear all previous headers
154
- this.headersFormArray.clear();
155
- // Populate headers array from headers
156
- this.headers.forEach(({ key, value }, headerIndex) => {
157
- this.headersFormArray.push(new FormGroup({
158
- key: this.initKeyFormControl(key, headerIndex),
159
- value: new FormControl({ value, disabled: this.disabled }),
160
- }), {
161
- emitEvent: false,
162
- });
163
- });
164
- // add one empty header a the end
165
- this.addEmptyHeader();
166
- }
167
- getFilteredHeaderNames(headerIndex, header) {
168
- if (!this.filteredHeaderNames[headerIndex]) {
169
- return this.filteredHeaderNames[headerIndex];
170
- }
171
- if (header.key != null && header.key != '') {
172
- this.filteredHeaderNames[headerIndex] = of(header.key).pipe(map(value => this._filter(value)));
173
- return this.filteredHeaderNames[headerIndex];
174
- }
175
- return of(HEADER_NAMES);
176
- }
177
- initKeyFormControl(key, headerIndex) {
178
- const control = new FormControl({ value: key, disabled: this.disabled });
179
- const filteredKeys = control.valueChanges.pipe(startWith(''), map(value => this._filter(value)));
180
- this.filteredHeaderNames.splice(headerIndex, 0, filteredKeys);
181
- return control;
182
- }
183
- onDeleteHeader(headerIndex) {
184
- this._onTouched();
185
- this.headersFormArray.removeAt(headerIndex);
186
- }
187
- addEmptyHeader() {
188
- if (this.disabled) {
189
- return;
190
- }
191
- this.headersFormArray.push(new FormGroup({
192
- key: this.initKeyFormControl('', this.headersFormArray.length),
193
- value: new FormControl(''),
194
- }), { emitEvent: false });
195
- }
196
- removeLastHeader() {
197
- this.headersFormArray.removeAt(this.headersFormArray.length - 1, { emitEvent: false });
198
- }
199
- _filter(value) {
200
- const filterValue = value.toLowerCase();
201
- return HEADER_NAMES.filter(option => option.toLowerCase().includes(filterValue));
202
- }
203
- }
204
- GioFormHeadersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: GioFormHeadersComponent, deps: [{ token: i1.FocusMonitor }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
205
- GioFormHeadersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.15", type: GioFormHeadersComponent, selector: "gio-form-headers", host: { properties: { "class.disabled": "this.disabled" } }, providers: [
206
- {
207
- provide: NG_VALUE_ACCESSOR,
208
- useExisting: forwardRef(() => GioFormHeadersComponent),
209
- multi: true,
210
- },
211
- ], ngImport: i0, 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'\">\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-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'\">\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"], components: [{ type: i2.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i3.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i4.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i5.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: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i7.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i7.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: i10.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { type: i3.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.FormControlName, selector: "[formControlName]", inputs: ["disabled", "formControlName", "ngModel"], outputs: ["ngModelChange"] }, { type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i8.AsyncPipe } });
212
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: GioFormHeadersComponent, decorators: [{
213
- type: Component,
214
- args: [{
215
- selector: 'gio-form-headers',
216
- templateUrl: './gio-form-headers.component.html',
217
- styleUrls: ['./gio-form-headers.component.scss'],
218
- providers: [
219
- {
220
- provide: NG_VALUE_ACCESSOR,
221
- useExisting: forwardRef(() => GioFormHeadersComponent),
222
- multi: true,
223
- },
224
- ],
225
- }]
226
- }], ctorParameters: function () { return [{ type: i1.FocusMonitor }, { type: i0.ElementRef }]; }, propDecorators: { disabled: [{
227
- type: HostBinding,
228
- args: ['class.disabled']
229
- }] } });
230
- const removeLastEmptyHeader = (headers) => {
231
- const lastHeader = headers[headers.length - 1];
232
- if (lastHeader && isEmpty(lastHeader.key) && isEmpty(lastHeader.value)) {
233
- return dropRight(headers);
234
- }
235
- return headers;
236
- };
237
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLWZvcm0taGVhZGVycy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1wYXJ0aWNsZXMtYW5ndWxhci9zcmMvbGliL2dpby1mb3JtLWhlYWRlcnMvZ2lvLWZvcm0taGVhZGVycy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1wYXJ0aWNsZXMtYW5ndWxhci9zcmMvbGliL2dpby1mb3JtLWhlYWRlcnMvZ2lvLWZvcm0taGVhZGVycy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpQkEsT0FBTyxFQUFFLFNBQVMsRUFBYyxVQUFVLEVBQUUsV0FBVyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFBd0IsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7QUFHdEMsTUFBTSxZQUFZLEdBQUc7SUFDbkIsUUFBUTtJQUNSLGdCQUFnQjtJQUNoQixpQkFBaUI7SUFDakIsaUJBQWlCO0lBQ2pCLGVBQWU7SUFDZixrQ0FBa0M7SUFDbEMsOEJBQThCO0lBQzlCLDhCQUE4QjtJQUM5Qiw2QkFBNkI7SUFDN0IsK0JBQStCO0lBQy9CLHdCQUF3QjtJQUN4QixnQ0FBZ0M7SUFDaEMsK0JBQStCO0lBQy9CLEtBQUs7SUFDTCxPQUFPO0lBQ1AsZUFBZTtJQUNmLGVBQWU7SUFDZixZQUFZO0lBQ1oscUJBQXFCO0lBQ3JCLGtCQUFrQjtJQUNsQixZQUFZO0lBQ1osa0JBQWtCO0lBQ2xC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QUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDbkYsQ0FBQzs7cUhBckpVLHVCQUF1Qjt5R0FBdkIsdUJBQXVCLHdHQVJ2QjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHVCQUF1QixDQUFDO1lBQ3RELEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRiwwQkM1R0gsZ2lGQWdFQTs0RkQ4Q2EsdUJBQXVCO2tCQVpuQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFdBQVcsRUFBRSxtQ0FBbUM7b0JBQ2hELFNBQVMsRUFBRSxDQUFDLG1DQUFtQyxDQUFDO29CQUNoRCxTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsd0JBQXdCLENBQUM7NEJBQ3RELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO2lCQUNGOzRIQVdRLFFBQVE7c0JBRGQsV0FBVzt1QkFBQyxnQkFBZ0I7O0FBK0kvQixNQUFNLHFCQUFxQixHQUFHLENBQUMsT0FBaUIsRUFBRSxFQUFFO0lBQ2xELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBRS9DLElBQUksVUFBVSxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUN0RSxPQUFPLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztLQUMzQjtJQUNELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IEZvY3VzTW9uaXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgZm9yd2FyZFJlZiwgSG9zdEJpbmRpbmcsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1BcnJheSwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBkcm9wUmlnaHQsIGlzRW1wdHkgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgbWFwLCBzdGFydFdpdGgsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCB0eXBlIEhlYWRlciA9IHsga2V5OiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfTtcbmNvbnN0IEhFQURFUl9OQU1FUyA9IFtcbiAgJ0FjY2VwdCcsXG4gICdBY2NlcHQtQ2hhcnNldCcsXG4gICdBY2NlcHQtRW5jb2RpbmcnLFxuICAnQWNjZXB0LUxhbmd1YWdlJyxcbiAgJ0FjY2VwdC1SYW5nZXMnLFxuICAnQWNjZXNzLUNvbnRyb2wtQWxsb3ctQ3JlZGVudGlhbHMnLFxuICAnQWNjZXNzLUNvbnRyb2wtQWxsb3ctSGVhZGVycycsXG4gICdBY2Nlc3MtQ29udHJvbC1BbGxvdy1NZXRob2RzJyxcbiAgJ0FjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbicsXG4gICdBY2Nlc3MtQ29udHJvbC1FeHBvc2UtSGVhZGVycycsXG4gICdBY2Nlc3MtQ29udHJvbC1NYXgtQWdlJyxcbiAgJ0FjY2Vzcy1Db250cm9sLVJlcXVlc3QtSGVhZGVycycsXG4gICdBY2Nlc3MtQ29udHJvbC1SZXF1ZXN0LU1ldGhvZCcsXG4gICdBZ2UnLFxuICAnQWxsb3cnLFxuICAnQXV0aG9yaXphdGlvbicsXG4gICdDYWNoZS1Db250cm9sJyxcbiAgJ0Nvbm5lY3Rpb24nLFxuICAnQ29udGVudC1EaXNwb3NpdGlvbicsXG4gICdDb250ZW50LUVuY29kaW5nJyxcbiAgJ0NvbnRlbnQtSUQnLFxuICAnQ29udGVudC1MYW5ndWFnZScsXG4gICdDb250ZW50LUxlbmd0aCcsXG4gICdDb250ZW50LUxvY2F0aW9uJyxcbiAgJ0NvbnRlbnQtTUQ1JyxcbiAgJ0NvbnRlbnQtUmFuZ2UnLFxuICAnQ29udGVudC1UeXBlJyxcbiAgJ0Nvb2tpZScsXG4gICdEYXRlJyxcbiAgJ0VUYWcnLFxuICAnRXhwaXJlcycsXG4gICdFeHBlY3QnLFxuICAnRm9yd2FyZGVkJyxcbiAgJ0Zyb20nLFxuICAnSG9zdCcsXG4gICdJZi1NYXRjaCcsXG4gICdJZi1Nb2RpZmllZC1TaW5jZScsXG4gICdJZi1Ob25lLU1hdGNoJyxcbiAgJ0lmLVVubW9kaWZpZWQtU2luY2UnLFxuICAnS2VlcC1BbGl2ZScsXG4gICdMYXN0LU1vZGlmaWVkJyxcbiAgJ0xvY2F0aW9uJyxcbiAgJ0xpbmsnLFxuICAnTWF4LUZvcndhcmRzJyxcbiAgJ01JTUUtVmVyc2lvbicsXG4gICdPcmlnaW4nLFxuICAnUHJhZ21hJyxcbiAgJ1Byb3h5LUF1dGhlbnRpY2F0ZScsXG4gICdQcm94eS1BdXRob3JpemF0aW9uJyxcbiAgJ1Byb3h5LUNvbm5lY3Rpb24nLFxuICAnUmFuZ2UnLFxuICAnUmVmZXJlcicsXG4gICdSZXRyeS1BZnRlcicsXG4gICdTZXJ2ZXInLFxuICAnU2V0LUNvb2tpZScsXG4gICdTZXQtQ29va2llMicsXG4gICdURScsXG4gICdUcmFpbGVyJyxcbiAgJ1RyYW5zZmVyLUVuY29kaW5nJyxcbiAgJ1VwZ3JhZGUnLFxuICAnVXNlci1BZ2VudCcsXG4gICdWYXJ5JyxcbiAgJ1ZpYScsXG4gICdXYXJuaW5nJyxcbiAgJ1dXVy1BdXRoZW50aWNhdGUnLFxuICAnWC1Gb3J3YXJkZWQtRm9yJyxcbiAgJ1gtRm9yd2FyZGVkLVByb3RvJyxcbiAgJ1gtRm9yd2FyZGVkLVNlcnZlcicsXG4gICdYLUZvcndhcmRlZC1Ib3N0JyxcbiAgJ1gtRm9yd2FyZGVkLVBvcnQnLFxuICAnWC1Gb3J3YXJkZWQtUHJlZml4Jyxcbl07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2dpby1mb3JtLWhlYWRlcnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vZ2lvLWZvcm0taGVhZGVycy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2dpby1mb3JtLWhlYWRlcnMuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBHaW9Gb3JtSGVhZGVyc0NvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBHaW9Gb3JtSGVhZGVyc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBwdWJsaWMgbWFpbkZvcm06IEZvcm1Hcm91cDtcbiAgcHVibGljIGhlYWRlcnNGb3JtQXJyYXkgPSBuZXcgRm9ybUFycmF5KFtcbiAgICBuZXcgRm9ybUdyb3VwKHtcbiAgICAgIGtleTogbmV3IEZvcm1Db250cm9sKCcnKSxcbiAgICAgIHZhbHVlOiBuZXcgRm9ybUNvbnRyb2woJycpLFxuICAgIH0pLFxuICBdKTtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmRpc2FibGVkJylcbiAgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBoZWFkZXJzOiBIZWFkZXJbXSA9IFtdO1xuXG4gIHByaXZhdGUgX29uQ2hhbmdlOiAoX2hlYWRlcnM6IEhlYWRlcltdIHwgbnVsbCkgPT4gdm9pZCA9ICgpID0+ICh7fSk7XG5cbiAgcHJpdmF0ZSBfb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4gKHt9KTtcblxuICBwcml2YXRlIGZpbHRlcmVkSGVhZGVyTmFtZXM6IE9ic2VydmFibGU8c3RyaW5nW10+W10gPSBbXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGZtOiBGb2N1c01vbml0b3IsIHByaXZhdGUgcmVhZG9ubHkgZWxSZWY6IEVsZW1lbnRSZWYpIHtcbiAgICB0aGlzLm1haW5Gb3JtID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgICBoZWFkZXJzOiB0aGlzLmhlYWRlcnNGb3JtQXJyYXksXG4gICAgfSk7XG4gIH1cblxuICAvLyBGcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogSGVhZGVyW10gfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaGVhZGVycyA9IHZhbHVlID8/IFtdO1xuICAgIHRoaXMuaW5pdEhlYWRlcnNGb3JtKCk7XG4gIH1cblxuICAvLyBGcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogKGhlYWRlcnM6IEhlYWRlcltdIHwgbnVsbCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuX29uQ2hhbmdlID0gZm47XG4gIH1cblxuICAvLyBGcm9tIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGludGVyZmFjZVxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl9vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIC8vIEZyb20gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW50ZXJmYWNlXG4gIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAoaXNEaXNhYmxlZCA9PT0gdGhpcy5kaXNhYmxlZCkge1xuICAgICAgLy8gZG8gbm90aGluZyBpZiB0aGUgZGlzYWJsZWQgc3RhdGUgaXMgbm90IGNoYW5nZWRcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICBpZiAoaXNEaXNhYmxlZCkge1xuICAgICAgdGhpcy5oZWFkZXJzRm9ybUFycmF5LmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgdGhpcy5yZW1vdmVMYXN0SGVhZGVyKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaGVhZGVyc0Zvcm1BcnJheS5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgIHRoaXMuYWRkRW1wdHlIZWFkZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBXaGVuIHVzZXIgc3RhcnQgdG8gY29tcGxldGUgbGFzdCBoZWFkZXIgYWRkIG5ldyBlbXB0eSBvbmUgYSB0aGUgZW5kXG4gICAgdGhpcy5oZWFkZXJzRm9ybUFycmF5Py52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoaGVhZGVycyA9PiBoZWFkZXJzLmxlbmd0aCA+IDAgJiYgdGhpcy5fb25DaGFuZ2UocmVtb3ZlTGFzdEVtcHR5SGVhZGVyKGhlYWRlcnMpKSksXG4gICAgICAgIHRhcCgoaGVhZGVyczogSGVhZGVyW10pID0+IHtcbiAgICAgICAgICBpZiAoaGVhZGVycy5sZW5ndGggPiAwICYmIChoZWFkZXJzW2hlYWRlcnMubGVuZ3RoIC0gMV0ua2V5ICE9PSAnJyB8fCBoZWFkZXJzW2hlYWRlcnMubGVuZ3RoIC0gMV0udmFsdWUgIT09ICcnKSkge1xuICAgICAgICAgICAgdGhpcy5hZGRFbXB0eUhlYWRlcigpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLmZtLm1vbml0b3IodGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LCB0cnVlKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5fb25Ub3VjaGVkKCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgaW5pdEhlYWRlcnNGb3JtKCk6IHZvaWQge1xuICAgIC8vIENsZWFyIGFsbCBwcmV2aW91cyBoZWFkZXJzXG4gICAgdGhpcy5oZWFkZXJzRm9ybUFycmF5LmNsZWFyKCk7XG5cbiAgICAvLyBQb3B1bGF0ZSBoZWFkZXJzIGFycmF5IGZyb20gaGVhZGVyc1xuICAgIHRoaXMuaGVhZGVycy5mb3JFYWNoKCh7IGtleSwgdmFsdWUgfSwgaGVhZGVySW5kZXgpID0+IHtcbiAgICAgIHRoaXMuaGVhZGVyc0Zvcm1BcnJheS5wdXNoKFxuICAgICAgICBuZXcgRm9ybUdyb3VwKHtcbiAgICAgICAgICBrZXk6IHRoaXMuaW5pdEtleUZvcm1Db250cm9sKGtleSwgaGVhZGVySW5kZXgpLFxuICAgICAgICAgIHZhbHVlOiBuZXcgRm9ybUNvbnRyb2woeyB2YWx1ZSwgZGlzYWJsZWQ6IHRoaXMuZGlzYWJsZWQgfSksXG4gICAgICAgIH0pLFxuICAgICAgICB7XG4gICAgICAgICAgZW1pdEV2ZW50OiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICAvLyBhZGQgb25lIGVtcHR5IGhlYWRlciBhIHRoZSBlbmRcbiAgICB0aGlzLmFkZEVtcHR5SGVhZGVyKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0RmlsdGVyZWRIZWFkZXJOYW1lcyhoZWFkZXJJbmRleDogbnVtYmVyLCBoZWFkZXI6IEhlYWRlcik6IE9ic2VydmFibGU8c3RyaW5nW10+IHtcbiAgICBpZiAoIXRoaXMuZmlsdGVyZWRIZWFkZXJOYW1lc1toZWFkZXJJbmRleF0pIHtcbiAgICAgIHJldHVybiB0aGlzLmZpbHRlcmVkSGVhZGVyTmFtZXNbaGVhZGVySW5kZXhdO1xuICAgIH1cbiAgICBpZiAoaGVhZGVyLmtleSAhPSBudWxsICYmIGhlYWRlci5rZXkgIT0gJycpIHtcbiAgICAgIHRoaXMuZmlsdGVyZWRIZWFkZXJOYW1lc1toZWFkZXJJbmRleF0gPSBvZihoZWFkZXIua2V5KS5waXBlKG1hcCh2YWx1ZSA9PiB0aGlzLl9maWx0ZXIodmFsdWUpKSk7XG4gICAgICByZXR1cm4gdGhpcy5maWx0ZXJlZEhlYWRlck5hbWVzW2hlYWRlckluZGV4XTtcbiAgICB9XG4gICAgcmV0dXJuIG9mKEhFQURFUl9OQU1FUyk7XG4gIH1cblxuICBwcml2YXRlIGluaXRLZXlGb3JtQ29udHJvbChrZXk6IHN0cmluZywgaGVhZGVySW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IGNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woeyB2YWx1ZToga2V5LCBkaXNhYmxlZDogdGhpcy5kaXNhYmxlZCB9KTtcbiAgICBjb25zdCBmaWx0ZXJlZEtleXMgPSBjb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKFxuICAgICAgc3RhcnRXaXRoKCcnKSxcbiAgICAgIG1hcCh2YWx1ZSA9PiB0aGlzLl9maWx0ZXIodmFsdWUpKSxcbiAgICApO1xuICAgIHRoaXMuZmlsdGVyZWRIZWFkZXJOYW1lcy5zcGxpY2UoaGVhZGVySW5kZXgsIDAsIGZpbHRlcmVkS2V5cyk7XG4gICAgcmV0dXJuIGNvbnRyb2w7XG4gIH1cblxuICBwdWJsaWMgb25EZWxldGVIZWFkZXIoaGVhZGVySW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuX29uVG91Y2hlZCgpO1xuICAgIHRoaXMuaGVhZGVyc0Zvcm1BcnJheS5yZW1vdmVBdChoZWFkZXJJbmRleCk7XG4gIH1cblxuICBwcml2YXRlIGFkZEVtcHR5SGVhZGVyKCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5oZWFkZXJzRm9ybUFycmF5LnB1c2goXG4gICAgICBuZXcgRm9ybUdyb3VwKHtcbiAgICAgICAga2V5OiB0aGlzLmluaXRLZXlGb3JtQ29udHJvbCgnJywgdGhpcy5oZWFkZXJzRm9ybUFycmF5Lmxlbmd0aCksXG4gICAgICAgIHZhbHVlOiBuZXcgRm9ybUNvbnRyb2woJycpLFxuICAgICAgfSksXG4gICAgICB7IGVtaXRFdmVudDogZmFsc2UgfSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVMYXN0SGVhZGVyKCkge1xuICAgIHRoaXMuaGVhZGVyc0Zvcm1BcnJheS5yZW1vdmVBdCh0aGlzLmhlYWRlcnNGb3JtQXJyYXkubGVuZ3RoIC0gMSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfZmlsdGVyKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgZmlsdGVyVmFsdWUgPSB2YWx1ZS50b0xvd2VyQ2FzZSgpO1xuICAgIHJldHVybiBIRUFERVJfTkFNRVMuZmlsdGVyKG9wdGlvbiA9PiBvcHRpb24udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhmaWx0ZXJWYWx1ZSkpO1xuICB9XG59XG5cbmNvbnN0IHJlbW92ZUxhc3RFbXB0eUhlYWRlciA9IChoZWFkZXJzOiBIZWFkZXJbXSkgPT4ge1xuICBjb25zdCBsYXN0SGVhZGVyID0gaGVhZGVyc1toZWFkZXJzLmxlbmd0aCAtIDFdO1xuXG4gIGlmIChsYXN0SGVhZGVyICYmIGlzRW1wdHkobGFzdEhlYWRlci5rZXkpICYmIGlzRW1wdHkobGFzdEhlYWRlci52YWx1ZSkpIHtcbiAgICByZXR1cm4gZHJvcFJpZ2h0KGhlYWRlcnMpO1xuICB9XG4gIHJldHVybiBoZWFkZXJzO1xufTtcbiIsIjwhLS1cblxuICAgIENvcHlyaWdodCAoQykgMjAxNSBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuXG4gICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG5cbiAgICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuXG4gICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG5cbi0tPlxuPHRhYmxlIGNsYXNzPVwiZ2lvLWZvcm0taGVhZGVyc19fdGFibGUgZ2lvLXRhYmxlLWxpZ2h0XCIgW2Zvcm1Hcm91cF09XCJtYWluRm9ybVwiPlxuICA8dGhlYWQ+XG4gICAgPHRyPlxuICAgICAgPHRoPktFWTwvdGg+XG4gICAgICA8dGg+VkFMVUU8L3RoPlxuICAgIDwvdHI+XG4gIDwvdGhlYWQ+XG4gIDx0Ym9keSBmb3JtQXJyYXlOYW1lPVwiaGVhZGVyc1wiPlxuICAgIDx0clxuICAgICAgKm5nRm9yPVwibGV0IGNvbnRyb2wgb2YgaGVhZGVyc0Zvcm1BcnJheS5jb250cm9sczsgaW5kZXggYXMgaGVhZGVySW5kZXhcIlxuICAgICAgY2xhc3M9XCJnaW8tZm9ybS1oZWFkZXJzX190YWJsZV9faGVhZGVyLXJvd1wiXG4gICAgICBbZm9ybUdyb3VwTmFtZV09XCJoZWFkZXJJbmRleFwiXG4gICAgPlxuICAgICAgPHRkIGNsYXNzPVwiZ2lvLWZvcm0taGVhZGVyc19fdGFibGVfX2hlYWRlci1yb3dfX3RkLWtleVwiPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJnaW8tZm9ybS1oZWFkZXJzX190YWJsZV9faGVhZGVyLXJvd19fdGQta2V5X19maWVsZFwiIFtmbG9hdExhYmVsXT1cIiduZXZlcidcIj5cbiAgICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImtleVwiXG4gICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJOYW1lLi4uXCJcbiAgICAgICAgICAgIGNka1RleHRhcmVhQXV0b3NpemVcbiAgICAgICAgICAgIGNka0F1dG9zaXplTWluUm93cz1cIjFcIlxuICAgICAgICAgICAgW21hdEF1dG9jb21wbGV0ZV09XCJoZWFkZXJOYW1lc0F1dG9jb21wbGV0ZVwiXG4gICAgICAgICAgPjwvdGV4dGFyZWE+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxtYXQtYXV0b2NvbXBsZXRlICNoZWFkZXJOYW1lc0F1dG9jb21wbGV0ZT1cIm1hdEF1dG9jb21wbGV0ZVwiPlxuICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBoZWFkZXJOYW1lIG9mIGdldEZpbHRlcmVkSGVhZGVyTmFtZXMoaGVhZGVySW5kZXgsIGNvbnRyb2wudmFsdWUpIHwgYXN5bmNcIiBbdmFsdWVdPVwiaGVhZGVyTmFtZVwiPnt7XG4gICAgICAgICAgICBoZWFkZXJOYW1lXG4gICAgICAgICAgfX08L21hdC1vcHRpb24+XG4gICAgICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cbiAgICAgIDwvdGQ+XG4gICAgICA8dGQgY2xhc3M9XCJnaW8tZm9ybS1oZWFkZXJzX190YWJsZV9faGVhZGVyLXJvd19fdGQtdmFsdWVcIj5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiZ2lvLWZvcm0taGVhZGVyc19fdGFibGVfX2hlYWRlci1yb3dfX3RkLXZhbHVlX19maWVsZFwiIFtmbG9hdExhYmVsXT1cIiduZXZlcidcIj5cbiAgICAgICAgICA8dGV4dGFyZWEgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIiBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cIlZhbHVlLi4uXCIgY2RrVGV4dGFyZWFBdXRvc2l6ZSBjZGtBdXRvc2l6ZU1pblJvd3M9XCIxXCI+PC90ZXh0YXJlYT5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGNsYXNzPVwiZ2lvLWZvcm0taGVhZGVyc19fdGFibGVfX2hlYWRlci1yb3dfX3RkLXZhbHVlX19idXR0b25cIlxuICAgICAgICAgICpuZ0lmPVwiaGVhZGVyc0Zvcm1BcnJheS5jb250cm9scy5sZW5ndGggLSAxICE9PSBoZWFkZXJJbmRleFwiXG4gICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIkRlbGV0ZVwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uRGVsZXRlSGVhZGVyKGhlYWRlckluZGV4KVwiXG4gICAgICAgID5cbiAgICAgICAgICA8bWF0LWljb24gc3ZnSWNvbj1cImdpbzpjYW5jZWxcIj48L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvdGQ+XG4gICAgPC90cj5cbiAgPC90Ym9keT5cbjwvdGFibGU+XG4iXX0=
@@ -1,76 +0,0 @@
1
- /*
2
- * Copyright (C) 2015 The Gravitee team (http://gravitee.io)
3
- *
4
- * Licensed under the Apache License, Version 2.0 (the "License");
5
- * you may not use this file except in compliance with the License.
6
- * You may obtain a copy of the License at
7
- *
8
- * http://www.apache.org/licenses/LICENSE-2.0
9
- *
10
- * Unless required by applicable law or agreed to in writing, software
11
- * distributed under the License is distributed on an "AS IS" BASIS,
12
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- * See the License for the specific language governing permissions and
14
- * limitations under the License.
15
- */
16
- import { __awaiter } from "tslib";
17
- import { ComponentHarness, HarnessPredicate } from '@angular/cdk/testing';
18
- import { MatButtonHarness } from '@angular/material/button/testing';
19
- import { MatInputHarness } from '@angular/material/input/testing';
20
- import { MatAutocompleteHarness } from '@angular/material/autocomplete/testing';
21
- export class GioFormHeadersHarness extends ComponentHarness {
22
- constructor() {
23
- super(...arguments);
24
- this.getHeaderRowsElement = this.locatorForAll('tr.gio-form-headers__table__header-row');
25
- this.getHeaderRowInputKey = (rowIndex) => this.locatorFor(MatInputHarness.with({ ancestor: `[ng-reflect-name="${rowIndex}"]`, selector: '[formControlName=key]' }));
26
- this.getHeaderRowInputKeyAutocomplete = (rowIndex) => this.locatorFor(MatAutocompleteHarness.with({ ancestor: `tr[ng-reflect-name="${rowIndex}"]`, selector: '.mat-autocomplete-trigger' }));
27
- this.getHeaderRowInputValue = (rowIndex) => this.locatorFor(MatInputHarness.with({ ancestor: `tr[ng-reflect-name="${rowIndex}"]`, selector: '[formControlName=value]' }));
28
- this.getHeaderRowRemoveButton = (rowIndex) => this.locatorForOptional(MatButtonHarness.with({ ancestor: `tr[ng-reflect-name="${rowIndex}"]`, selector: '[aria-label="Delete"]' }));
29
- }
30
- /**
31
- * Gets a `HarnessPredicate` that can be used to search for a `GioFormColorInputHarness` that meets
32
- * certain criteria.
33
- *
34
- * @param options Options for filtering which input instances are considered a match.
35
- * @return a `HarnessPredicate` configured with the given options.
36
- */
37
- static with(options = {}) {
38
- return new HarnessPredicate(GioFormHeadersHarness, options);
39
- }
40
- getHeaderRows() {
41
- return __awaiter(this, void 0, void 0, function* () {
42
- const rows = yield this.getHeaderRowsElement();
43
- return Promise.all(rows.map((_, rowIndex) => __awaiter(this, void 0, void 0, function* () {
44
- return ({
45
- keyInput: yield this.getHeaderRowInputKey(rowIndex)(),
46
- keyAutocomplete: yield this.getHeaderRowInputKeyAutocomplete(rowIndex)(),
47
- valueInput: yield this.getHeaderRowInputValue(rowIndex)(),
48
- removeButton: yield this.getHeaderRowRemoveButton(rowIndex)(),
49
- });
50
- })));
51
- });
52
- }
53
- getLastHeaderRow() {
54
- return __awaiter(this, void 0, void 0, function* () {
55
- const rows = yield this.getHeaderRowsElement();
56
- return {
57
- keyInput: yield this.getHeaderRowInputKey(rows.length - 1)(),
58
- valueInput: yield this.getHeaderRowInputValue(rows.length - 1)(),
59
- };
60
- });
61
- }
62
- addHeader({ key, value }) {
63
- return __awaiter(this, void 0, void 0, function* () {
64
- const { keyInput, valueInput } = yield this.getLastHeaderRow();
65
- yield keyInput.setValue(key);
66
- yield valueInput.setValue(value);
67
- });
68
- }
69
- isDisabled() {
70
- return __awaiter(this, void 0, void 0, function* () {
71
- return (yield this.host()).hasClass('disabled');
72
- });
73
- }
74
- }
75
- GioFormHeadersHarness.hostSelector = 'gio-form-headers';
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLWZvcm0taGVhZGVycy5oYXJuZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktcGFydGljbGVzLWFuZ3VsYXIvc3JjL2xpYi9naW8tZm9ybS1oZWFkZXJzL2dpby1mb3JtLWhlYWRlcnMuaGFybmVzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRzs7QUFFSCxPQUFPLEVBQXNDLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDOUcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRWhGLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxnQkFBZ0I7SUFBM0Q7O1FBY1UseUJBQW9CLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDO1FBRXBGLHlCQUFvQixHQUFHLENBQUMsUUFBZ0IsRUFBbUMsRUFBRSxDQUNuRixJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUscUJBQXFCLFFBQVEsSUFBSSxFQUFFLFFBQVEsRUFBRSx1QkFBdUIsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVwSCxxQ0FBZ0MsR0FBRyxDQUFDLFFBQWdCLEVBQTBDLEVBQUUsQ0FDdEcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsdUJBQXVCLFFBQVEsSUFBSSxFQUFFLFFBQVEsRUFBRSwyQkFBMkIsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVqSSwyQkFBc0IsR0FBRyxDQUFDLFFBQWdCLEVBQW1DLEVBQUUsQ0FDckYsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxFQUFFLHVCQUF1QixRQUFRLElBQUksRUFBRSxRQUFRLEVBQUUseUJBQXlCLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFeEgsNkJBQXdCLEdBQUcsQ0FBQyxRQUFnQixFQUEyQyxFQUFFLENBQy9GLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsdUJBQXVCLFFBQVEsSUFBSSxFQUFFLFFBQVEsRUFBRSx1QkFBdUIsRUFBRSxDQUFDLENBQUMsQ0FBQztJQXlDekksQ0FBQztJQWhFQzs7Ozs7O09BTUc7SUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQThCLEVBQUU7UUFDakQsT0FBTyxJQUFJLGdCQUFnQixDQUFDLHFCQUFxQixFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFnQlksYUFBYTs7WUFReEIsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUUvQyxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQ2hCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBTyxDQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUU7Z0JBQUMsT0FBQSxDQUFDO29CQUMvQixRQUFRLEVBQUUsTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLEVBQUU7b0JBQ3JELGVBQWUsRUFBRSxNQUFNLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxRQUFRLENBQUMsRUFBRTtvQkFDeEUsVUFBVSxFQUFFLE1BQU0sSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxFQUFFO29CQUN6RCxZQUFZLEVBQUUsTUFBTSxJQUFJLENBQUMsd0JBQXdCLENBQUMsUUFBUSxDQUFDLEVBQUU7aUJBQzlELENBQUMsQ0FBQTtjQUFBLENBQUMsQ0FDSixDQUFDO1FBQ0osQ0FBQztLQUFBO0lBRVksZ0JBQWdCOztZQUMzQixNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1lBRS9DLE9BQU87Z0JBQ0wsUUFBUSxFQUFFLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUU7Z0JBQzVELFVBQVUsRUFBRSxNQUFNLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUFFO2FBQ2pFLENBQUM7UUFDSixDQUFDO0tBQUE7SUFFWSxTQUFTLENBQUMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFrQzs7WUFDbkUsTUFBTSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBRS9ELE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM3QixNQUFNLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkMsQ0FBQztLQUFBO0lBRVksVUFBVTs7WUFDckIsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2xELENBQUM7S0FBQTs7QUFqRWEsa0NBQVksR0FBRyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IEFzeW5jRmFjdG9yeUZuLCBCYXNlSGFybmVzc0ZpbHRlcnMsIENvbXBvbmVudEhhcm5lc3MsIEhhcm5lc3NQcmVkaWNhdGUgfSBmcm9tICdAYW5ndWxhci9jZGsvdGVzdGluZyc7XG5pbXBvcnQgeyBNYXRCdXR0b25IYXJuZXNzIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uL3Rlc3RpbmcnO1xuaW1wb3J0IHsgTWF0SW5wdXRIYXJuZXNzIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQvdGVzdGluZyc7XG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVIYXJuZXNzIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlL3Rlc3RpbmcnO1xuXG5leHBvcnQgY2xhc3MgR2lvRm9ybUhlYWRlcnNIYXJuZXNzIGV4dGVuZHMgQ29tcG9uZW50SGFybmVzcyB7XG4gIHB1YmxpYyBzdGF0aWMgaG9zdFNlbGVjdG9yID0gJ2dpby1mb3JtLWhlYWRlcnMnO1xuXG4gIC8qKlxuICAgKiBHZXRzIGEgYEhhcm5lc3NQcmVkaWNhdGVgIHRoYXQgY2FuIGJlIHVzZWQgdG8gc2VhcmNoIGZvciBhIGBHaW9Gb3JtQ29sb3JJbnB1dEhhcm5lc3NgIHRoYXQgbWVldHNcbiAgICogY2VydGFpbiBjcml0ZXJpYS5cbiAgICpcbiAgICogQHBhcmFtIG9wdGlvbnMgT3B0aW9ucyBmb3IgZmlsdGVyaW5nIHdoaWNoIGlucHV0IGluc3RhbmNlcyBhcmUgY29uc2lkZXJlZCBhIG1hdGNoLlxuICAgKiBAcmV0dXJuIGEgYEhhcm5lc3NQcmVkaWNhdGVgIGNvbmZpZ3VyZWQgd2l0aCB0aGUgZ2l2ZW4gb3B0aW9ucy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgd2l0aChvcHRpb25zOiBCYXNlSGFybmVzc0ZpbHRlcnMgPSB7fSk6IEhhcm5lc3NQcmVkaWNhdGU8R2lvRm9ybUhlYWRlcnNIYXJuZXNzPiB7XG4gICAgcmV0dXJuIG5ldyBIYXJuZXNzUHJlZGljYXRlKEdpb0Zvcm1IZWFkZXJzSGFybmVzcywgb3B0aW9ucyk7XG4gIH1cblxuICBwcml2YXRlIGdldEhlYWRlclJvd3NFbGVtZW50ID0gdGhpcy5sb2NhdG9yRm9yQWxsKCd0ci5naW8tZm9ybS1oZWFkZXJzX190YWJsZV9faGVhZGVyLXJvdycpO1xuXG4gIHByaXZhdGUgZ2V0SGVhZGVyUm93SW5wdXRLZXkgPSAocm93SW5kZXg6IG51bWJlcik6IEFzeW5jRmFjdG9yeUZuPE1hdElucHV0SGFybmVzcz4gPT5cbiAgICB0aGlzLmxvY2F0b3JGb3IoTWF0SW5wdXRIYXJuZXNzLndpdGgoeyBhbmNlc3RvcjogYFtuZy1yZWZsZWN0LW5hbWU9XCIke3Jvd0luZGV4fVwiXWAsIHNlbGVjdG9yOiAnW2Zvcm1Db250cm9sTmFtZT1rZXldJyB9KSk7XG5cbiAgcHJpdmF0ZSBnZXRIZWFkZXJSb3dJbnB1dEtleUF1dG9jb21wbGV0ZSA9IChyb3dJbmRleDogbnVtYmVyKTogQXN5bmNGYWN0b3J5Rm48TWF0QXV0b2NvbXBsZXRlSGFybmVzcz4gPT5cbiAgICB0aGlzLmxvY2F0b3JGb3IoTWF0QXV0b2NvbXBsZXRlSGFybmVzcy53aXRoKHsgYW5jZXN0b3I6IGB0cltuZy1yZWZsZWN0LW5hbWU9XCIke3Jvd0luZGV4fVwiXWAsIHNlbGVjdG9yOiAnLm1hdC1hdXRvY29tcGxldGUtdHJpZ2dlcicgfSkpO1xuXG4gIHByaXZhdGUgZ2V0SGVhZGVyUm93SW5wdXRWYWx1ZSA9IChyb3dJbmRleDogbnVtYmVyKTogQXN5bmNGYWN0b3J5Rm48TWF0SW5wdXRIYXJuZXNzPiA9PlxuICAgIHRoaXMubG9jYXRvckZvcihNYXRJbnB1dEhhcm5lc3Mud2l0aCh7IGFuY2VzdG9yOiBgdHJbbmctcmVmbGVjdC1uYW1lPVwiJHtyb3dJbmRleH1cIl1gLCBzZWxlY3RvcjogJ1tmb3JtQ29udHJvbE5hbWU9dmFsdWVdJyB9KSk7XG5cbiAgcHJpdmF0ZSBnZXRIZWFkZXJSb3dSZW1vdmVCdXR0b24gPSAocm93SW5kZXg6IG51bWJlcik6IEFzeW5jRmFjdG9yeUZuPE1hdEJ1dHRvbkhhcm5lc3MgfCBudWxsPiA9PlxuICAgIHRoaXMubG9jYXRvckZvck9wdGlvbmFsKE1hdEJ1dHRvbkhhcm5lc3Mud2l0aCh7IGFuY2VzdG9yOiBgdHJbbmctcmVmbGVjdC1uYW1lPVwiJHtyb3dJbmRleH1cIl1gLCBzZWxlY3RvcjogJ1thcmlhLWxhYmVsPVwiRGVsZXRlXCJdJyB9KSk7XG5cbiAgcHVibGljIGFzeW5jIGdldEhlYWRlclJvd3MoKTogUHJvbWlzZTxcbiAgICB7XG4gICAgICBrZXlJbnB1dDogTWF0SW5wdXRIYXJuZXNzO1xuICAgICAga2V5QXV0b2NvbXBsZXRlOiBNYXRBdXRvY29tcGxldGVIYXJuZXNzO1xuICAgICAgdmFsdWVJbnB1dDogTWF0SW5wdXRIYXJuZXNzO1xuICAgICAgcmVtb3ZlQnV0dG9uOiBNYXRCdXR0b25IYXJuZXNzIHwgbnVsbDtcbiAgICB9W11cbiAgPiB7XG4gICAgY29uc3Qgcm93cyA9IGF3YWl0IHRoaXMuZ2V0SGVhZGVyUm93c0VsZW1lbnQoKTtcblxuICAgIHJldHVybiBQcm9taXNlLmFsbChcbiAgICAgIHJvd3MubWFwKGFzeW5jIChfLCByb3dJbmRleCkgPT4gKHtcbiAgICAgICAga2V5SW5wdXQ6IGF3YWl0IHRoaXMuZ2V0SGVhZGVyUm93SW5wdXRLZXkocm93SW5kZXgpKCksXG4gICAgICAgIGtleUF1dG9jb21wbGV0ZTogYXdhaXQgdGhpcy5nZXRIZWFkZXJSb3dJbnB1dEtleUF1dG9jb21wbGV0ZShyb3dJbmRleCkoKSxcbiAgICAgICAgdmFsdWVJbnB1dDogYXdhaXQgdGhpcy5nZXRIZWFkZXJSb3dJbnB1dFZhbHVlKHJvd0luZGV4KSgpLFxuICAgICAgICByZW1vdmVCdXR0b246IGF3YWl0IHRoaXMuZ2V0SGVhZGVyUm93UmVtb3ZlQnV0dG9uKHJvd0luZGV4KSgpLFxuICAgICAgfSkpLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0TGFzdEhlYWRlclJvdygpOiBQcm9taXNlPHsga2V5SW5wdXQ6IE1hdElucHV0SGFybmVzczsgdmFsdWVJbnB1dDogTWF0SW5wdXRIYXJuZXNzIH0+IHtcbiAgICBjb25zdCByb3dzID0gYXdhaXQgdGhpcy5nZXRIZWFkZXJSb3dzRWxlbWVudCgpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGtleUlucHV0OiBhd2FpdCB0aGlzLmdldEhlYWRlclJvd0lucHV0S2V5KHJvd3MubGVuZ3RoIC0gMSkoKSxcbiAgICAgIHZhbHVlSW5wdXQ6IGF3YWl0IHRoaXMuZ2V0SGVhZGVyUm93SW5wdXRWYWx1ZShyb3dzLmxlbmd0aCAtIDEpKCksXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBhZGRIZWFkZXIoeyBrZXksIHZhbHVlIH06IHsga2V5OiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsga2V5SW5wdXQsIHZhbHVlSW5wdXQgfSA9IGF3YWl0IHRoaXMuZ2V0TGFzdEhlYWRlclJvdygpO1xuXG4gICAgYXdhaXQga2V5SW5wdXQuc2V0VmFsdWUoa2V5KTtcbiAgICBhd2FpdCB2YWx1ZUlucHV0LnNldFZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBpc0Rpc2FibGVkKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5ob3N0KCkpLmhhc0NsYXNzKCdkaXNhYmxlZCcpO1xuICB9XG59XG4iXX0=