@progressio_resources/gravity-design-system 2.4.3 → 2.4.4

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.
@@ -53,37 +53,43 @@ export class GravityTableComponent {
53
53
  let tableBodyRows = document.querySelectorAll('table[table-id="' + this.tableId + '"] tbody tr');
54
54
  let closeButtons = document.querySelectorAll('gravity-button[id-reference="close-button"]');
55
55
  tableBodyRows.forEach((tr, index) => {
56
- let mobileMenuTrigger = document.createElement('div');
57
- this.renderer.addClass(mobileMenuTrigger, 'mobile-menu-trigger');
58
- this.renderer.setAttribute(mobileMenuTrigger, 'cloned-node', 'true');
59
- let menuToggle = document.createElement('div');
60
- this.renderer.addClass(menuToggle, 'menu-toggle');
61
- menuToggle.appendChild(document.createElement('span'));
62
- menuToggle.appendChild(document.createElement('span'));
63
- menuToggle.appendChild(document.createElement('span'));
64
- menuToggle.addEventListener("click", () => {
65
- if (menuToggle.classList.contains('open')) {
56
+ let actionColum = null;
57
+ if (tr.firstChild) {
58
+ actionColum = tr.firstChild.parentElement.querySelectorAll('td.actions-column');
59
+ }
60
+ if (actionColum?.length > 0) {
61
+ let mobileMenuTrigger = document.createElement('div');
62
+ this.renderer.addClass(mobileMenuTrigger, 'mobile-menu-trigger');
63
+ this.renderer.setAttribute(mobileMenuTrigger, 'cloned-node', 'true');
64
+ let menuToggle = document.createElement('div');
65
+ this.renderer.addClass(menuToggle, 'menu-toggle');
66
+ menuToggle.appendChild(document.createElement('span'));
67
+ menuToggle.appendChild(document.createElement('span'));
68
+ menuToggle.appendChild(document.createElement('span'));
69
+ menuToggle.addEventListener("click", () => {
70
+ if (menuToggle.classList.contains('open')) {
71
+ this.renderer.removeClass(menuToggle, 'open');
72
+ this.renderer.removeClass(menuToggle.parentElement.lastElementChild, 'open');
73
+ }
74
+ else {
75
+ this.renderer.addClass(menuToggle, 'open');
76
+ this.renderer.addClass(menuToggle.parentElement.lastElementChild, 'open');
77
+ }
78
+ });
79
+ mobileMenuTrigger.appendChild(menuToggle);
80
+ let panel = document.createElement('div');
81
+ this.renderer.addClass(panel, 'panel');
82
+ let closeButtonFromNodeList = closeButtons.item(index);
83
+ let closeButtonRemoved = closeButtonFromNodeList.parentNode.removeChild(closeButtonFromNodeList);
84
+ this.renderer.setAttribute(closeButtonRemoved, 'cloned-button', 'true');
85
+ closeButtonRemoved.addEventListener("click", () => {
66
86
  this.renderer.removeClass(menuToggle, 'open');
67
87
  this.renderer.removeClass(menuToggle.parentElement.lastElementChild, 'open');
68
- }
69
- else {
70
- this.renderer.addClass(menuToggle, 'open');
71
- this.renderer.addClass(menuToggle.parentElement.lastElementChild, 'open');
72
- }
73
- });
74
- mobileMenuTrigger.appendChild(menuToggle);
75
- let panel = document.createElement('div');
76
- this.renderer.addClass(panel, 'panel');
77
- let closeButtonFromNodeList = closeButtons.item(index);
78
- let closeButtonRemoved = closeButtonFromNodeList.parentNode.removeChild(closeButtonFromNodeList);
79
- this.renderer.setAttribute(closeButtonRemoved, 'cloned-button', 'true');
80
- closeButtonRemoved.addEventListener("click", () => {
81
- this.renderer.removeClass(menuToggle, 'open');
82
- this.renderer.removeClass(menuToggle.parentElement.lastElementChild, 'open');
83
- });
84
- panel.append(closeButtonRemoved);
85
- mobileMenuTrigger.appendChild(panel);
86
- tr.insertBefore(mobileMenuTrigger, tr.firstChild);
88
+ });
89
+ panel.append(closeButtonRemoved);
90
+ mobileMenuTrigger.appendChild(panel);
91
+ tr.insertBefore(mobileMenuTrigger, tr.firstChild);
92
+ }
87
93
  });
88
94
  }
89
95
  adjustTableDensity(densityValue) {
@@ -136,23 +142,28 @@ export class GravityTableComponent {
136
142
  adjustTable() {
137
143
  if (this.tableSize == 'md' || this.tableSize == 'sm') {
138
144
  let tableBodyRows = document.querySelectorAll('table[table-id="' + this.tableId + '"] tbody tr');
139
- let tableBodyRowsActions = document.querySelectorAll('table[table-id="' + this.tableId + '"] tbody tr td.actions-column');
140
- let tableBodyRowsMenuTrigger = document.querySelectorAll('table[table-id="' + this.tableId + '"] tbody tr .mobile-menu-trigger[cloned-node="true"]');
141
- tableBodyRows.forEach((tr, index) => {
142
- let mobileMenuTrigger = tableBodyRowsMenuTrigger.item(index);
143
- let mobileMenuTriggerPanel = mobileMenuTrigger.lastChild;
144
- if (tableBodyRowsActions.item(index) && mobileMenuTriggerPanel) {
145
- this.appendNodesList(mobileMenuTriggerPanel, tableBodyRowsActions.item(index).childNodes);
145
+ tableBodyRows.forEach((tr) => {
146
+ if (tr.firstChild) {
147
+ let trActionsColum = tr.firstChild.parentElement.querySelectorAll('td.actions-column')[0];
148
+ let mobileMenuTrigger = tr.firstChild.parentElement.querySelectorAll('.mobile-menu-trigger[cloned-node="true"]')[0];
149
+ if (mobileMenuTrigger) {
150
+ let mobileMenuTriggerPanel = mobileMenuTrigger.lastChild;
151
+ if (trActionsColum && mobileMenuTriggerPanel) {
152
+ this.appendNodesList(mobileMenuTriggerPanel, trActionsColum.childNodes);
153
+ }
154
+ }
146
155
  }
147
156
  });
148
157
  }
149
158
  if (this.tableSize == 'lg' || this.tableSize == 'xl') {
150
159
  let tableBodyRows = document.querySelectorAll('table[table-id="' + this.tableId + '"] tbody tr');
151
- let tableBodyRowsActions = document.querySelectorAll('table[table-id="' + this.tableId + '"] tbody tr td.actions-column');
152
- let tableBodyRowsMenuTrigger = document.querySelectorAll('table[table-id="' + this.tableId + '"] tbody tr .mobile-menu-trigger[cloned-node="true"]');
153
- tableBodyRows.forEach((tr, index) => {
154
- if (tableBodyRowsActions.item(index)) {
155
- this.appendNodesList(tableBodyRowsActions.item(index), tableBodyRowsMenuTrigger.item(index).lastChild.childNodes);
160
+ tableBodyRows.forEach((tr) => {
161
+ if (tr.firstChild) {
162
+ let trActionsColum = tr.firstChild.parentElement.querySelectorAll('td.actions-column')[0];
163
+ let mobileMenuTrigger = tr.firstChild.parentElement.querySelectorAll('.mobile-menu-trigger[cloned-node="true"]')[0];
164
+ if (trActionsColum && mobileMenuTrigger) {
165
+ this.appendNodesList(trActionsColum, mobileMenuTrigger.lastChild.childNodes);
166
+ }
156
167
  }
157
168
  });
158
169
  }
@@ -198,4 +209,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
198
209
  type: HostListener,
199
210
  args: ['window:resize', ['$event']]
200
211
  }] } });
201
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3Jhdml0eS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncmF2aXR5LWRlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2dyYXZpdHktdGFibGUvZ3Jhdml0eS10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncmF2aXR5LWRlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2dyYXZpdHktdGFibGUvZ3Jhdml0eS10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBSUwsU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDOzs7QUFPdkIsTUFBTSxPQUFPLHFCQUFxQjtJQVNoQyxZQUE2QixRQUFtQjtRQUFuQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBUmhDLGlCQUFZLEdBQThCLFVBQVUsQ0FBQztRQUNyRCxtQkFBYyxHQUF1QyxNQUFNLENBQUM7UUFHcEUsaUJBQVksR0FBZSxJQUFJLENBQUM7UUFFakMsY0FBUyxHQUE4QixJQUFJLENBQUM7UUFHakQsSUFBSSxZQUFZLEdBQVcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNoRCxJQUFJLFlBQVksR0FBVyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBRTlDLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxHQUFHLENBQUMsWUFBWSxHQUFHLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElB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b0JBQzNCLElBQUksV0FBVyxHQUFTLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUMxRCxlQUFlLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7aUJBQ3ZFO2dCQUVELGFBQWEsRUFBRSxDQUFDO2FBQ2pCO1lBRUQsT0FBTyxlQUFlLENBQUM7U0FDeEI7SUFDSCxDQUFDOytHQTNOVSxxQkFBcUI7bUdBQXJCLHFCQUFxQixzVUNqQmxDLDRtREFlQTs7NEZERWEscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLGVBQWU7Z0dBS1QsWUFBWTtzQkFBM0IsS0FBSztnQkFDVSxjQUFjO3NCQUE3QixLQUFLO2dCQUN1QyxjQUFjO3NCQUExRCxTQUFTO3VCQUFDLGdCQUFnQjtnQkFpSW5CLFFBQVE7c0JBRGYsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgUmVuZGVyZXIyLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2dyYXZpdHktdGFibGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZ3Jhdml0eS10YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2dyYXZpdHktdGFibGUuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBHcmF2aXR5VGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBwdWJsaWMgdGFibGVEZW5zaXR5OiAnc3RhbmRhcmQnIHwgJ2NvbXByZXNzZWQnID0gXCJzdGFuZGFyZFwiO1xuICBASW5wdXQoKSBwdWJsaWMgdGFibGVTaXplSW5wdXQ6ICd4bCcgfCAnbGcnIHwgJ21kJyB8ICdzbScgfCAnYXV0bycgPSBcImF1dG9cIjtcbiAgQFZpZXdDaGlsZCgndGFibGVDb250YWluZXInKSBwdWJsaWMgcmVhZG9ubHkgdGFibGVDb250YWluZXI6IEVsZW1lbnRSZWY7XG5cbiAgcHJpdmF0ZSB0YWJsZUVsZW1lbnQ6IEVsZW1lbnRSZWYgPSBudWxsO1xuICBwdWJsaWMgdGFibGVJZDogc3RyaW5nO1xuICBwdWJsaWMgdGFibGVTaXplOiAneGwnIHwgJ2xnJyB8ICdtZCcgfCAnc20nID0gJ3hsJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyOiBSZW5kZXJlcjIpIHtcbiAgICBsZXQgbWlsbGlzZWNvbmRzOiBudW1iZXIgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgICBsZXQgcmFuZG9tTnVtYmVyOiBudW1iZXIgPSBNYXRoLnJhbmRvbSgpICogMTA7XG5cbiAgICB0aGlzLnRhYmxlSWQgPSAnJyArIChtaWxsaXNlY29uZHMgKiByYW5kb21OdW1iZXIgLyAyKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnRhYmxlRWxlbWVudCA9IHRoaXMudGFibGVDb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQ/LmNoaWxkTm9kZXNbMF07XG4gICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy50YWJsZUVsZW1lbnQsICd0YWJsZS1pZCcsIHRoaXMudGFibGVJZCk7XG4gICAgdGhpcy5pbml0aWFsaXplQ29tcG9uZW50KCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKHRoaXMudGFibGVFbGVtZW50KSB7XG4gICAgICBpZiAoY2hhbmdlc1sndGFibGVEZW5zaXR5J10pIHtcbiAgICAgICAgdGhpcy5hZGp1c3RUYWJsZURlbnNpdHkoY2hhbmdlc1sndGFibGVEZW5zaXR5J10uY3VycmVudFZhbHVlKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGNoYW5nZXNbJ3RhYmxlU2l6ZUlucHV0J10pIHtcbiAgICAgICAgdGhpcy50YWJsZVNpemVJbnB1dCA9IGNoYW5nZXNbJ3RhYmxlU2l6ZUlucHV0J10uY3VycmVudFZhbHVlO1xuICAgICAgICB0aGlzLm9uUmVzaXplKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRUYWJsZUhlYWRlcnMoKTogc3RyaW5nW10ge1xuICAgIGxldCB0YWJsZUhlYWRlckl0ZW1zOiBOb2RlTGlzdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3RoZWFkIHRyIHRoJyk7XG4gICAgbGV0IHRhYmxlSGVhZGVyczogc3RyaW5nW10gPSBbXTtcblxuICAgIHRhYmxlSGVhZGVySXRlbXMuZm9yRWFjaCgodGFibGVIZWFkZXJJdGVtOiBOb2RlKSA9PiB7XG4gICAgICB0YWJsZUhlYWRlcnMucHVzaCh0YWJsZUhlYWRlckl0ZW0uY2hpbGROb2Rlc1swXS5ub2RlVmFsdWUpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRhYmxlSGVhZGVycztcbiAgfVxuXG4gIHB1YmxpYyBpbml0aWFsaXplQ29tcG9uZW50KCk6IHZvaWQge1xuICAgIGxldCB0YWJsZUhlYWRlcnM6IHN0cmluZ1tdID0gdGhpcy5nZXRUYWJsZUhlYWRlcnMoKTtcbiAgICB0aGlzLmluaXRpYWxpemVUYWJsZSh0YWJsZUhlYWRlcnMpO1xuICAgIHRoaXMuYWRqdXN0VGFibGVEZW5zaXR5KHRoaXMudGFibGVEZW5zaXR5KTtcbiAgICB0aGlzLmFkanVzdEJ1dHRvbnNTaXplKCk7XG4gICAgdGhpcy5vblJlc2l6ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplVGFibGUodGFibGVIZWFkZXJzOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgIC8vU2V0IGNvcnJlc3BvbmRpbmcgdGFibGVIZWFkZXIgYXMgYW4gYXR0cmlidXRlIG9mIGVhY2ggdGRcbiAgICBsZXQgdGFibGVCb2R5OiBOb2RlTGlzdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3RhYmxlW3RhYmxlLWlkPVwiJyArIHRoaXMudGFibGVJZCArICdcIl0gdGJvZHkgdHIgdGQnKTtcbiAgICB0YWJsZUJvZHkuZm9yRWFjaCgodGFibGVCb2R5Um93OiBOb2RlLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0YWJsZUJvZHlSb3csICdoZWFkZXItbmFtZScsIHRhYmxlSGVhZGVyc1tpbmRleCAlIHRhYmxlSGVhZGVycy5sZW5ndGhdKTtcbiAgICB9KTtcblxuICAgIC8vQ3JlYXRlcyBhIGNvcHkgb2YgbW9iaWxlLW1lbnUtdHJpZ2dlciBlbGVtZW50IGZvciBlYWNoIHRyXG4gICAgbGV0IHRhYmxlQm9keVJvd3M6IE5vZGVMaXN0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgndGFibGVbdGFibGUtaWQ9XCInICsgdGhpcy50YWJsZUlkICsgJ1wiXSB0Ym9keSB0cicpO1xuICAgIGxldCBjbG9zZUJ1dHRvbnM6IE5vZGVMaXN0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZ3Jhdml0eS1idXR0b25baWQtcmVmZXJlbmNlPVwiY2xvc2UtYnV0dG9uXCJdJyk7XG5cbiAgICB0YWJsZUJvZHlSb3dzLmZvckVhY2goKHRyOiBOb2RlLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICBsZXQgbW9iaWxlTWVudVRyaWdnZXI6IEhUTUxEaXZFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKG1vYmlsZU1lbnVUcmlnZ2VyLCAnbW9iaWxlLW1lbnUtdHJpZ2dlcicpO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUobW9iaWxlTWVudVRyaWdnZXIsICdjbG9uZWQtbm9kZScsICd0cnVlJyk7XG5cbiAgICAgIGxldCBtZW51VG9nZ2xlOiBIVE1MRGl2RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhtZW51VG9nZ2xlLCAnbWVudS10b2dnbGUnKTtcbiAgICAgIG1lbnVUb2dnbGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpKTtcbiAgICAgIG1lbnVUb2dnbGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpKTtcbiAgICAgIG1lbnVUb2dnbGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpKTtcbiAgICAgIG1lbnVUb2dnbGUuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgaWYgKG1lbnVUb2dnbGUuY2xhc3NMaXN0LmNvbnRhaW5zKCdvcGVuJykpIHtcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKG1lbnVUb2dnbGUsICdvcGVuJyk7XG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhtZW51VG9nZ2xlLnBhcmVudEVsZW1lbnQubGFzdEVsZW1lbnRDaGlsZCwgJ29wZW4nKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKG1lbnVUb2dnbGUsICdvcGVuJyk7XG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhtZW51VG9nZ2xlLnBhcmVudEVsZW1lbnQubGFzdEVsZW1lbnRDaGlsZCwgJ29wZW4nKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBtb2JpbGVNZW51VHJpZ2dlci5hcHBlbmRDaGlsZChtZW51VG9nZ2xlKTtcblxuICAgICAgbGV0IHBhbmVsOiBIVE1MRGl2RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhwYW5lbCwgJ3BhbmVsJyk7XG5cbiAgICAgIGxldCBjbG9zZUJ1dHRvbkZyb21Ob2RlTGlzdDogTm9kZSA9IGNsb3NlQnV0dG9ucy5pdGVtKGluZGV4KTtcbiAgICAgIGxldCBjbG9zZUJ1dHRvblJlbW92ZWQ6IE5vZGUgPSBjbG9zZUJ1dHRvbkZyb21Ob2RlTGlzdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGNsb3NlQnV0dG9uRnJvbU5vZGVMaXN0KTtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKGNsb3NlQnV0dG9uUmVtb3ZlZCwgJ2Nsb25lZC1idXR0b24nLCAndHJ1ZScpO1xuICAgICAgY2xvc2VCdXR0b25SZW1vdmVkLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MobWVudVRvZ2dsZSwgJ29wZW4nKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhtZW51VG9nZ2xlLnBhcmVudEVsZW1lbnQubGFzdEVsZW1lbnRDaGlsZCwgJ29wZW4nKTtcbiAgICAgIH0pO1xuXG4gICAgICBwYW5lbC5hcHBlbmQoY2xvc2VCdXR0b25SZW1vdmVkKTtcblxuICAgICAgbW9iaWxlTWVudVRyaWdnZXIuYXBwZW5kQ2hpbGQocGFuZWwpO1xuXG4gICAgICB0ci5pbnNlcnRCZWZvcmUobW9iaWxlTWVudVRyaWdnZXIsIHRyLmZpcnN0Q2hpbGQpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGp1c3RUYWJsZURlbnNpdHkoZGVuc2l0eVZhbHVlOiAnc3RhbmRhcmQnIHwgJ2NvbXByZXNzZWQnKTogdm9pZCB7XG4gICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLnRhYmxlRWxlbWVudCwgJ3N0YW5kYXJkLXRhYmxlJyk7XG4gICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLnRhYmxlRWxlbWVudCwgJ2NvbXByZXNzZWQtdGFibGUnKTtcblxuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy50YWJsZUVsZW1lbnQsIGRlbnNpdHlWYWx1ZSArICctdGFibGUnKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRqdXN0QnV0dG9uc1NpemUoKTogdm9pZCB7XG4gICAgbGV0IGFjdGlvbnNDb2x1bW5zOiBOb2RlTGlzdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3RhYmxlW3RhYmxlLWlkPVwiJyArIHRoaXMudGFibGVJZCArICdcIl0gLmFjdGlvbnMtY29sdW1uJyk7XG4gICAgYWN0aW9uc0NvbHVtbnMuZm9yRWFjaCgoYWN0aW9uc0NvbHVtbjogTm9kZSkgPT4ge1xuICAgICAgYWN0aW9uc0NvbHVtbi5jaGlsZE5vZGVzLmZvckVhY2goKGdyYXZpdHlCdXR0b246IE5vZGUpID0+IHtcbiAgICAgICAgbGV0IGJ1dHRvbjogTm9kZSA9IGdyYXZpdHlCdXR0b24uY2hpbGROb2Rlc1swXTtcblxuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKGJ1dHRvbiwgJ2dyYXZpdHktc2l6ZS1sZycpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKGJ1dHRvbiwgJ2dyYXZpdHktc2l6ZS1tZCcpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKGJ1dHRvbiwgJ2dyYXZpdHktc2l6ZS1zbScpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKGJ1dHRvbiwgJ2xnLWJvbGQnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhidXR0b24sICdtZC1ib2xkJyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MoYnV0dG9uLCAnc20tYm9sZCcpO1xuXG4gICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoYnV0dG9uLCAnZ3Jhdml0eS1zaXplLXNtJyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoYnV0dG9uLCAnc20tYm9sZCcpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcbiAgcHJpdmF0ZSBvblJlc2l6ZSgpOiB2b2lkIHtcbiAgICBpZiAod2luZG93LmlubmVyV2lkdGggPD0gNTc2KSB7XG4gICAgICB0aGlzLnRhYmxlU2l6ZSA9ICdzbSc7XG4gICAgfSBlbHNlIGlmICh3aW5kb3cuaW5uZXJXaWR0aCA8PSA5OTIpIHtcbiAgICAgIHRoaXMudGFibGVTaXplID0gJ21kJztcbiAgICB9IGVsc2UgaWYgKHdpbmRvdy5pbm5lcldpZHRoIDw9IDE0NDApIHtcbiAgICAgIHRoaXMudGFibGVTaXplID0gJ2xnJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50YWJsZVNpemUgPSAneGwnO1xuICAgIH1cblxuICAgIHRoaXMuYWRqdXN0VGFibGVTaXplKCk7XG4gIH1cblxuICBwcml2YXRlIGFkanVzdFRhYmxlU2l6ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMudGFibGVFbGVtZW50LCAnc20tdGFibGUnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMudGFibGVFbGVtZW50LCAnbWQtdGFibGUnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMudGFibGVFbGVtZW50LCAnbGctdGFibGUnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMudGFibGVFbGVtZW50LCAneGwtdGFibGUnKTtcblxuICAgIGlmICh0aGlzLnRhYmxlU2l6ZUlucHV0ICE9ICdhdXRvJykge1xuICAgICAgdGhpcy50YWJsZVNpemUgPSB0aGlzLnRhYmxlU2l6ZUlucHV0O1xuICAgIH1cblxuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy50YWJsZUVsZW1lbnQsIHRoaXMudGFibGVTaXplICsgJy10YWJsZScpO1xuICAgIHRoaXMuYWRqdXN0VGFibGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRqdXN0VGFibGUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudGFibGVTaXplID09ICdtZCcgfHwgdGhpcy50YWJsZVNpemUgPT0gJ3NtJykge1xuICAgICAgbGV0IHRhYmxlQm9keVJvd3M6IE5vZGVMaXN0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgndGFibGVbdGFibGUtaWQ9XCInICsgdGhpcy50YWJsZUlkICsgJ1wiXSB0Ym9keSB0cicpO1xuICAgICAgbGV0IHRhYmxlQm9keVJvd3NBY3Rpb25zOiBOb2RlTGlzdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3RhYmxlW3RhYmxlLWlkPVwiJyArIHRoaXMudGFibGVJZCArICdcIl0gdGJvZHkgdHIgdGQuYWN0aW9ucy1jb2x1bW4nKTtcbiAgICAgIGxldCB0YWJsZUJvZHlSb3dzTWVudVRyaWdnZXI6IE5vZGVMaXN0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgndGFibGVbdGFibGUtaWQ9XCInICsgdGhpcy50YWJsZUlkICsgJ1wiXSB0Ym9keSB0ciAubW9iaWxlLW1lbnUtdHJpZ2dlcltjbG9uZWQtbm9kZT1cInRydWVcIl0nKTtcblxuICAgICAgdGFibGVCb2R5Um93cy5mb3JFYWNoKCh0cjogTm9kZSwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICBsZXQgbW9iaWxlTWVudVRyaWdnZXI6IE5vZGUgPSB0YWJsZUJvZHlSb3dzTWVudVRyaWdnZXIuaXRlbShpbmRleCk7XG4gICAgICAgIGxldCBtb2JpbGVNZW51VHJpZ2dlclBhbmVsOiBOb2RlID0gbW9iaWxlTWVudVRyaWdnZXIubGFzdENoaWxkO1xuXG4gICAgICAgIGlmICh0YWJsZUJvZHlSb3dzQWN0aW9ucy5pdGVtKGluZGV4KSAmJiBtb2JpbGVNZW51VHJpZ2dlclBhbmVsKSB7XG4gICAgICAgICAgdGhpcy5hcHBlbmROb2Rlc0xpc3QobW9iaWxlTWVudVRyaWdnZXJQYW5lbCwgdGFibGVCb2R5Um93c0FjdGlvbnMuaXRlbShpbmRleCkuY2hpbGROb2Rlcyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnRhYmxlU2l6ZSA9PSAnbGcnIHx8IHRoaXMudGFibGVTaXplID09ICd4bCcpIHtcbiAgICAgIGxldCB0YWJsZUJvZHlSb3dzOiBOb2RlTGlzdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3RhYmxlW3RhYmxlLWlkPVwiJyArIHRoaXMudGFibGVJZCArICdcIl0gdGJvZHkgdHInKTtcbiAgICAgIGxldCB0YWJsZUJvZHlSb3dzQWN0aW9uczogTm9kZUxpc3QgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCd0YWJsZVt0YWJsZS1pZD1cIicgKyB0aGlzLnRhYmxlSWQgKyAnXCJdIHRib2R5IHRyIHRkLmFjdGlvbnMtY29sdW1uJyk7XG4gICAgICBsZXQgdGFibGVCb2R5Um93c01lbnVUcmlnZ2VyOiBOb2RlTGlzdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3RhYmxlW3RhYmxlLWlkPVwiJyArIHRoaXMudGFibGVJZCArICdcIl0gdGJvZHkgdHIgLm1vYmlsZS1tZW51LXRyaWdnZXJbY2xvbmVkLW5vZGU9XCJ0cnVlXCJdJyk7XG5cbiAgICAgIHRhYmxlQm9keVJvd3MuZm9yRWFjaCgodHI6IE5vZGUsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgaWYgKHRhYmxlQm9keVJvd3NBY3Rpb25zLml0ZW0oaW5kZXgpKSB7XG4gICAgICAgICAgdGhpcy5hcHBlbmROb2Rlc0xpc3QodGFibGVCb2R5Um93c0FjdGlvbnMuaXRlbShpbmRleCksIHRhYmxlQm9keVJvd3NNZW51VHJpZ2dlci5pdGVtKGluZGV4KS5sYXN0Q2hpbGQuY2hpbGROb2Rlcyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXBwZW5kTm9kZXNMaXN0KGVsZW1lbnRUb0FwcGVuZDogTm9kZSwgbm9kZXNMaXN0OiBOb2RlTGlzdE9mPENoaWxkTm9kZT4pOiBOb2RlIHtcbiAgICBpZiAodGhpcy50YWJsZVNpemUgPT0gJ21kJyB8fCB0aGlzLnRhYmxlU2l6ZSA9PSAnc20nKSB7XG4gICAgICBsZXQgbm9kZUxpc3RJbmRleDogbnVtYmVyID0gbm9kZXNMaXN0Lmxlbmd0aCAtIDE7XG5cbiAgICAgIHdoaWxlIChub2Rlc0xpc3QubGVuZ3RoICE9IDApIHtcbiAgICAgICAgbGV0IHJlbW92ZWROb2RlOiBOb2RlID0gbm9kZXNMaXN0Lml0ZW0obm9kZUxpc3RJbmRleCkucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChub2Rlc0xpc3QuaXRlbShub2RlTGlzdEluZGV4KSk7XG4gICAgICAgIGVsZW1lbnRUb0FwcGVuZC5pbnNlcnRCZWZvcmUocmVtb3ZlZE5vZGUsIGVsZW1lbnRUb0FwcGVuZC5maXJzdENoaWxkKTtcbiAgICAgICAgbm9kZUxpc3RJbmRleC0tO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZWxlbWVudFRvQXBwZW5kO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnRhYmxlU2l6ZSA9PSAnbGcnIHx8IHRoaXMudGFibGVTaXplID09ICd4bCcpIHtcbiAgICAgIGxldCBub2RlTGlzdEluZGV4OiBudW1iZXIgPSBub2Rlc0xpc3QubGVuZ3RoIC0gMTtcblxuICAgICAgd2hpbGUgKG5vZGVzTGlzdC5sZW5ndGggPiAxKSB7XG4gICAgICAgIGxldCBpdGVtOiBOb2RlID0gbm9kZXNMaXN0Lml0ZW0obm9kZUxpc3RJbmRleCk7XG4gICAgICAgIGxldCBjbG9zZUJ1dHRvbk5vZGU6IE5vZGUgPSBpdGVtLnBhcmVudE5vZGUucXVlcnlTZWxlY3RvckFsbCgnZ3Jhdml0eS1idXR0b25baWQtcmVmZXJlbmNlPVwiY2xvc2UtYnV0dG9uXCJdJykuaXRlbSgwKTtcblxuICAgICAgICBpZiAoaXRlbSAhPSBjbG9zZUJ1dHRvbk5vZGUpIHtcbiAgICAgICAgICBsZXQgcmVtb3ZlZE5vZGU6IE5vZGUgPSBpdGVtLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoaXRlbSk7XG4gICAgICAgICAgZWxlbWVudFRvQXBwZW5kLmluc2VydEJlZm9yZShyZW1vdmVkTm9kZSwgZWxlbWVudFRvQXBwZW5kLmZpcnN0Q2hpbGQpO1xuICAgICAgICB9XG5cbiAgICAgICAgbm9kZUxpc3RJbmRleC0tO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZWxlbWVudFRvQXBwZW5kO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInRhYmxlLWNvbnRhaW5lciB7e3RhYmxlU2l6ZX19XCIgI3RhYmxlQ29udGFpbmVyPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cblxuPGdyYXZpdHktYnV0dG9uIGlkLXJlZmVyZW5jZT1cImNsb3NlLWJ1dHRvblwiIFtpY29uTmFtZV09XCIndW5zdWNjZXNzJ1wiIFt0eXBlXT1cIid0ZXJ0aWFyeSdcIiBbc2l6ZV09XCInc20nXCI+Q2xvc2UgbWVudTwvZ3Jhdml0eS1idXR0b24+XG48Z3Jhdml0eS1idXR0b24gaWQtcmVmZXJlbmNlPVwiY2xvc2UtYnV0dG9uXCIgW2ljb25OYW1lXT1cIid1bnN1Y2Nlc3MnXCIgW3R5cGVdPVwiJ3RlcnRpYXJ5J1wiIFtzaXplXT1cIidzbSdcIj5DbG9zZSBtZW51PC9ncmF2aXR5LWJ1dHRvbj5cbjxncmF2aXR5LWJ1dHRvbiBpZC1yZWZlcmVuY2U9XCJjbG9zZS1idXR0b25cIiBbaWNvbk5hbWVdPVwiJ3Vuc3VjY2VzcydcIiBbdHlwZV09XCIndGVydGlhcnknXCIgW3NpemVdPVwiJ3NtJ1wiPkNsb3NlIG1lbnU8L2dyYXZpdHktYnV0dG9uPlxuPGdyYXZpdHktYnV0dG9uIGlkLXJlZmVyZW5jZT1cImNsb3NlLWJ1dHRvblwiIFtpY29uTmFtZV09XCIndW5zdWNjZXNzJ1wiIFt0eXBlXT1cIid0ZXJ0aWFyeSdcIiBbc2l6ZV09XCInc20nXCI+Q2xvc2UgbWVudTwvZ3Jhdml0eS1idXR0b24+XG48Z3Jhdml0eS1idXR0b24gaWQtcmVmZXJlbmNlPVwiY2xvc2UtYnV0dG9uXCIgW2ljb25OYW1lXT1cIid1bnN1Y2Nlc3MnXCIgW3R5cGVdPVwiJ3RlcnRpYXJ5J1wiIFtzaXplXT1cIidzbSdcIj5DbG9zZSBtZW51PC9ncmF2aXR5LWJ1dHRvbj5cbjxncmF2aXR5LWJ1dHRvbiBpZC1yZWZlcmVuY2U9XCJjbG9zZS1idXR0b25cIiBbaWNvbk5hbWVdPVwiJ3Vuc3VjY2VzcydcIiBbdHlwZV09XCIndGVydGlhcnknXCIgW3NpemVdPVwiJ3NtJ1wiPkNsb3NlIG1lbnU8L2dyYXZpdHktYnV0dG9uPlxuPGdyYXZpdHktYnV0dG9uIGlkLXJlZmVyZW5jZT1cImNsb3NlLWJ1dHRvblwiIFtpY29uTmFtZV09XCIndW5zdWNjZXNzJ1wiIFt0eXBlXT1cIid0ZXJ0aWFyeSdcIiBbc2l6ZV09XCInc20nXCI+Q2xvc2UgbWVudTwvZ3Jhdml0eS1idXR0b24+XG48Z3Jhdml0eS1idXR0b24gaWQtcmVmZXJlbmNlPVwiY2xvc2UtYnV0dG9uXCIgW2ljb25OYW1lXT1cIid1bnN1Y2Nlc3MnXCIgW3R5cGVdPVwiJ3RlcnRpYXJ5J1wiIFtzaXplXT1cIidzbSdcIj5DbG9zZSBtZW51PC9ncmF2aXR5LWJ1dHRvbj5cbjxncmF2aXR5LWJ1dHRvbiBpZC1yZWZlcmVuY2U9XCJjbG9zZS1idXR0b25cIiBbaWNvbk5hbWVdPVwiJ3Vuc3VjY2VzcydcIiBbdHlwZV09XCIndGVydGlhcnknXCIgW3NpemVdPVwiJ3NtJ1wiPkNsb3NlIG1lbnU8L2dyYXZpdHktYnV0dG9uPlxuPGdyYXZpdHktYnV0dG9uIGlkLXJlZmVyZW5jZT1cImNsb3NlLWJ1dHRvblwiIFtpY29uTmFtZV09XCIndW5zdWNjZXNzJ1wiIFt0eXBlXT1cIid0ZXJ0aWFyeSdcIiBbc2l6ZV09XCInc20nXCI+Q2xvc2UgbWVudTwvZ3Jhdml0eS1idXR0b24+XG48Z3Jhdml0eS1idXR0b24gaWQtcmVmZXJlbmNlPVwiY2xvc2UtYnV0dG9uXCIgW2ljb25OYW1lXT1cIid1bnN1Y2Nlc3MnXCIgW3R5cGVdPVwiJ3RlcnRpYXJ5J1wiIFtzaXplXT1cIidzbSdcIj5DbG9zZSBtZW51PC9ncmF2aXR5LWJ1dHRvbj5cbiJdfQ==
212
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3Jhdml0eS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncmF2aXR5LWRlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2dyYXZpdHktdGFibGUvZ3Jhdml0eS10YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncmF2aXR5LWRlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2dyYXZpdHktdGFibGUvZ3Jhdml0eS10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBSUwsU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDOzs7QUFPdkIsTUFBTSxPQUFPLHFCQUFxQjtJQVNoQyxZQUE2QixRQUFtQjtRQUFuQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBUmhDLGlCQUFZLEdBQThCLFVBQVUsQ0FBQztRQUNyRCxtQkFBYyxHQUF1QyxNQUFNLENBQUM7UUFHcEUsaUJBQVksR0FBZSxJQUFJLENBQUM7UUFFakMsY0FBUyxHQUE4QixJQUFJLENBQUM7UUFHakQsSUFBSSxZQUFZLEdBQVcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNoRCxJQUFJLFlBQVksR0FBVyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBRTlDLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxHQUFHLENBQUMsWUFBWSxHQUFHLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElB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QUMvQyxJQUFJLGVBQWUsR0FBUyxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLDZDQUE2QyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUVwSCxJQUFJLElBQUksSUFBSSxlQUFlLEVBQUU7b0JBQzNCLElBQUksV0FBVyxHQUFTLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUMxRCxlQUFlLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUM7aUJBQ3ZFO2dCQUVELGFBQWEsRUFBRSxDQUFDO2FBQ2pCO1lBRUQsT0FBTyxlQUFlLENBQUM7U0FDeEI7SUFDSCxDQUFDOytHQTFPVSxxQkFBcUI7bUdBQXJCLHFCQUFxQixzVUNqQmxDLDRtREFlQTs7NEZERWEscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLGVBQWU7Z0dBS1QsWUFBWTtzQkFBM0IsS0FBSztnQkFDVSxjQUFjO3NCQUE3QixLQUFLO2dCQUN1QyxjQUFjO3NCQUExRCxTQUFTO3VCQUFDLGdCQUFnQjtnQkF5SW5CLFFBQVE7c0JBRGYsWUFBWTt1QkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgUmVuZGVyZXIyLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2dyYXZpdHktdGFibGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZ3Jhdml0eS10YWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2dyYXZpdHktdGFibGUuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBHcmF2aXR5VGFibGVDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBwdWJsaWMgdGFibGVEZW5zaXR5OiAnc3RhbmRhcmQnIHwgJ2NvbXByZXNzZWQnID0gXCJzdGFuZGFyZFwiO1xuICBASW5wdXQoKSBwdWJsaWMgdGFibGVTaXplSW5wdXQ6ICd4bCcgfCAnbGcnIHwgJ21kJyB8ICdzbScgfCAnYXV0bycgPSBcImF1dG9cIjtcbiAgQFZpZXdDaGlsZCgndGFibGVDb250YWluZXInKSBwdWJsaWMgcmVhZG9ubHkgdGFibGVDb250YWluZXI6IEVsZW1lbnRSZWY7XG5cbiAgcHJpdmF0ZSB0YWJsZUVsZW1lbnQ6IEVsZW1lbnRSZWYgPSBudWxsO1xuICBwdWJsaWMgdGFibGVJZDogc3RyaW5nO1xuICBwdWJsaWMgdGFibGVTaXplOiAneGwnIHwgJ2xnJyB8ICdtZCcgfCAnc20nID0gJ3hsJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyOiBSZW5kZXJlcjIpIHtcbiAgICBsZXQgbWlsbGlzZWNvbmRzOiBudW1iZXIgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgICBsZXQgcmFuZG9tTnVtYmVyOiBudW1iZXIgPSBNYXRoLnJhbmRvbSgpICogMTA7XG5cbiAgICB0aGlzLnRhYmxlSWQgPSAnJyArIChtaWxsaXNlY29uZHMgKiByYW5kb21OdW1iZXIgLyAyKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnRhYmxlRWxlbWVudCA9IHRoaXMudGFibGVDb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQ/LmNoaWxkTm9kZXNbMF07XG4gICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy50YWJsZUVsZW1lbnQsICd0YWJsZS1pZCcsIHRoaXMudGFibGVJZCk7XG4gICAgdGhpcy5pbml0aWFsaXplQ29tcG9uZW50KCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKHRoaXMudGFibGVFbGVtZW50KSB7XG4gICAgICBpZiAoY2hhbmdlc1sndGFibGVEZW5zaXR5J10pIHtcbiAgICAgICAgdGhpcy5hZGp1c3RUYWJsZURlbnNpdHkoY2hhbmdlc1sndGFibGVEZW5zaXR5J10uY3VycmVudFZhbHVlKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGNoYW5nZXNbJ3RhYmxlU2l6ZUlucHV0J10pIHtcbiAgICAgICAgdGhpcy50YWJsZVNpemVJbnB1dCA9IGNoYW5nZXNbJ3RhYmxlU2l6ZUlucHV0J10uY3VycmVudFZhbHVlO1xuICAgICAgICB0aGlzLm9uUmVzaXplKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRUYWJsZUhlYWRlcnMoKTogc3RyaW5nW10ge1xuICAgIGxldCB0YWJsZUhlYWRlckl0ZW1zOiBOb2RlTGlzdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3RoZWFkIHRyIHRoJyk7XG4gICAgbGV0IHRhYmxlSGVhZGVyczogc3RyaW5nW10gPSBbXTtcblxuICAgIHRhYmxlSGVhZGVySXRlbXMuZm9yRWFjaCgodGFibGVIZWFkZXJJdGVtOiBOb2RlKSA9PiB7XG4gICAgICB0YWJsZUhlYWRlcnMucHVzaCh0YWJsZUhlYWRlckl0ZW0uY2hpbGROb2Rlc1swXS5ub2RlVmFsdWUpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHRhYmxlSGVhZGVycztcbiAgfVxuXG4gIHB1YmxpYyBpbml0aWFsaXplQ29tcG9uZW50KCk6IHZvaWQge1xuICAgIGxldCB0YWJsZUhlYWRlcnM6IHN0cmluZ1tdID0gdGhpcy5nZXRUYWJsZUhlYWRlcnMoKTtcbiAgICB0aGlzLmluaXRpYWxpemVUYWJsZSh0YWJsZUhlYWRlcnMpO1xuICAgIHRoaXMuYWRqdXN0VGFibGVEZW5zaXR5KHRoaXMudGFibGVEZW5zaXR5KTtcbiAgICB0aGlzLmFkanVzdEJ1dHRvbnNTaXplKCk7XG4gICAgdGhpcy5vblJlc2l6ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplVGFibGUodGFibGVIZWFkZXJzOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgIC8vU2V0IGNvcnJlc3BvbmRpbmcgdGFibGVIZWFkZXIgYXMgYW4gYXR0cmlidXRlIG9mIGVhY2ggdGRcbiAgICBsZXQgdGFibGVCb2R5OiBOb2RlTGlzdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3RhYmxlW3RhYmxlLWlkPVwiJyArIHRoaXMudGFibGVJZCArICdcIl0gdGJvZHkgdHIgdGQnKTtcbiAgICB0YWJsZUJvZHkuZm9yRWFjaCgodGFibGVCb2R5Um93OiBOb2RlLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0YWJsZUJvZHlSb3csICdoZWFkZXItbmFtZScsIHRhYmxlSGVhZGVyc1tpbmRleCAlIHRhYmxlSGVhZGVycy5sZW5ndGhdKTtcbiAgICB9KTtcblxuICAgIC8vQ3JlYXRlcyBhIGNvcHkgb2YgbW9iaWxlLW1lbnUtdHJpZ2dlciBlbGVtZW50IGZvciBlYWNoIHRyXG4gICAgbGV0IHRhYmxlQm9keVJvd3M6IE5vZGVMaXN0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgndGFibGVbdGFibGUtaWQ9XCInICsgdGhpcy50YWJsZUlkICsgJ1wiXSB0Ym9keSB0cicpO1xuICAgIGxldCBjbG9zZUJ1dHRvbnM6IE5vZGVMaXN0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZ3Jhdml0eS1idXR0b25baWQtcmVmZXJlbmNlPVwiY2xvc2UtYnV0dG9uXCJdJyk7XG5cbiAgICB0YWJsZUJvZHlSb3dzLmZvckVhY2goKHRyOiBOb2RlLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICBsZXQgYWN0aW9uQ29sdW06IE5vZGVMaXN0ID0gbnVsbDtcblxuICAgICAgaWYgKHRyLmZpcnN0Q2hpbGQpIHtcbiAgICAgICAgYWN0aW9uQ29sdW0gPSB0ci5maXJzdENoaWxkLnBhcmVudEVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgndGQuYWN0aW9ucy1jb2x1bW4nKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGFjdGlvbkNvbHVtPy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGxldCBtb2JpbGVNZW51VHJpZ2dlcjogSFRNTERpdkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhtb2JpbGVNZW51VHJpZ2dlciwgJ21vYmlsZS1tZW51LXRyaWdnZXInKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUobW9iaWxlTWVudVRyaWdnZXIsICdjbG9uZWQtbm9kZScsICd0cnVlJyk7XG5cbiAgICAgICAgbGV0IG1lbnVUb2dnbGU6IEhUTUxEaXZFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MobWVudVRvZ2dsZSwgJ21lbnUtdG9nZ2xlJyk7XG4gICAgICAgIG1lbnVUb2dnbGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpKTtcbiAgICAgICAgbWVudVRvZ2dsZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJykpO1xuICAgICAgICBtZW51VG9nZ2xlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKSk7XG4gICAgICAgIG1lbnVUb2dnbGUuYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICBpZiAobWVudVRvZ2dsZS5jbGFzc0xpc3QuY29udGFpbnMoJ29wZW4nKSkge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhtZW51VG9nZ2xlLCAnb3BlbicpO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhtZW51VG9nZ2xlLnBhcmVudEVsZW1lbnQubGFzdEVsZW1lbnRDaGlsZCwgJ29wZW4nKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhtZW51VG9nZ2xlLCAnb3BlbicpO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhtZW51VG9nZ2xlLnBhcmVudEVsZW1lbnQubGFzdEVsZW1lbnRDaGlsZCwgJ29wZW4nKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBtb2JpbGVNZW51VHJpZ2dlci5hcHBlbmRDaGlsZChtZW51VG9nZ2xlKTtcblxuICAgICAgICBsZXQgcGFuZWw6IEhUTUxEaXZFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MocGFuZWwsICdwYW5lbCcpO1xuXG4gICAgICAgIGxldCBjbG9zZUJ1dHRvbkZyb21Ob2RlTGlzdDogTm9kZSA9IGNsb3NlQnV0dG9ucy5pdGVtKGluZGV4KTtcbiAgICAgICAgbGV0IGNsb3NlQnV0dG9uUmVtb3ZlZDogTm9kZSA9IGNsb3NlQnV0dG9uRnJvbU5vZGVMaXN0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoY2xvc2VCdXR0b25Gcm9tTm9kZUxpc3QpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShjbG9zZUJ1dHRvblJlbW92ZWQsICdjbG9uZWQtYnV0dG9uJywgJ3RydWUnKTtcbiAgICAgICAgY2xvc2VCdXR0b25SZW1vdmVkLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhtZW51VG9nZ2xlLCAnb3BlbicpO1xuICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MobWVudVRvZ2dsZS5wYXJlbnRFbGVtZW50Lmxhc3RFbGVtZW50Q2hpbGQsICdvcGVuJyk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHBhbmVsLmFwcGVuZChjbG9zZUJ1dHRvblJlbW92ZWQpO1xuXG4gICAgICAgIG1vYmlsZU1lbnVUcmlnZ2VyLmFwcGVuZENoaWxkKHBhbmVsKTtcblxuICAgICAgICB0ci5pbnNlcnRCZWZvcmUobW9iaWxlTWVudVRyaWdnZXIsIHRyLmZpcnN0Q2hpbGQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGp1c3RUYWJsZURlbnNpdHkoZGVuc2l0eVZhbHVlOiAnc3RhbmRhcmQnIHwgJ2NvbXByZXNzZWQnKTogdm9pZCB7XG4gICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLnRhYmxlRWxlbWVudCwgJ3N0YW5kYXJkLXRhYmxlJyk7XG4gICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLnRhYmxlRWxlbWVudCwgJ2NvbXByZXNzZWQtdGFibGUnKTtcblxuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy50YWJsZUVsZW1lbnQsIGRlbnNpdHlWYWx1ZSArICctdGFibGUnKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRqdXN0QnV0dG9uc1NpemUoKTogdm9pZCB7XG4gICAgbGV0IGFjdGlvbnNDb2x1bW5zOiBOb2RlTGlzdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3RhYmxlW3RhYmxlLWlkPVwiJyArIHRoaXMudGFibGVJZCArICdcIl0gLmFjdGlvbnMtY29sdW1uJyk7XG4gICAgYWN0aW9uc0NvbHVtbnMuZm9yRWFjaCgoYWN0aW9uc0NvbHVtbjogTm9kZSkgPT4ge1xuICAgICAgYWN0aW9uc0NvbHVtbi5jaGlsZE5vZGVzLmZvckVhY2goKGdyYXZpdHlCdXR0b246IE5vZGUpID0+IHtcbiAgICAgICAgbGV0IGJ1dHRvbjogTm9kZSA9IGdyYXZpdHlCdXR0b24uY2hpbGROb2Rlc1swXTtcblxuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKGJ1dHRvbiwgJ2dyYXZpdHktc2l6ZS1sZycpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKGJ1dHRvbiwgJ2dyYXZpdHktc2l6ZS1tZCcpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKGJ1dHRvbiwgJ2dyYXZpdHktc2l6ZS1zbScpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKGJ1dHRvbiwgJ2xnLWJvbGQnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhidXR0b24sICdtZC1ib2xkJyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MoYnV0dG9uLCAnc20tYm9sZCcpO1xuXG4gICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoYnV0dG9uLCAnZ3Jhdml0eS1zaXplLXNtJyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoYnV0dG9uLCAnc20tYm9sZCcpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcbiAgcHJpdmF0ZSBvblJlc2l6ZSgpOiB2b2lkIHtcbiAgICBpZiAod2luZG93LmlubmVyV2lkdGggPD0gNTc2KSB7XG4gICAgICB0aGlzLnRhYmxlU2l6ZSA9ICdzbSc7XG4gICAgfSBlbHNlIGlmICh3aW5kb3cuaW5uZXJXaWR0aCA8PSA5OTIpIHtcbiAgICAgIHRoaXMudGFibGVTaXplID0gJ21kJztcbiAgICB9IGVsc2UgaWYgKHdpbmRvdy5pbm5lcldpZHRoIDw9IDE0NDApIHtcbiAgICAgIHRoaXMudGFibGVTaXplID0gJ2xnJztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50YWJsZVNpemUgPSAneGwnO1xuICAgIH1cblxuICAgIHRoaXMuYWRqdXN0VGFibGVTaXplKCk7XG4gIH1cblxuICBwcml2YXRlIGFkanVzdFRhYmxlU2l6ZSgpOiB2b2lkIHtcbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMudGFibGVFbGVtZW50LCAnc20tdGFibGUnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMudGFibGVFbGVtZW50LCAnbWQtdGFibGUnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMudGFibGVFbGVtZW50LCAnbGctdGFibGUnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMudGFibGVFbGVtZW50LCAneGwtdGFibGUnKTtcblxuICAgIGlmICh0aGlzLnRhYmxlU2l6ZUlucHV0ICE9ICdhdXRvJykge1xuICAgICAgdGhpcy50YWJsZVNpemUgPSB0aGlzLnRhYmxlU2l6ZUlucHV0O1xuICAgIH1cblxuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy50YWJsZUVsZW1lbnQsIHRoaXMudGFibGVTaXplICsgJy10YWJsZScpO1xuICAgIHRoaXMuYWRqdXN0VGFibGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRqdXN0VGFibGUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudGFibGVTaXplID09ICdtZCcgfHwgdGhpcy50YWJsZVNpemUgPT0gJ3NtJykge1xuICAgICAgbGV0IHRhYmxlQm9keVJvd3M6IE5vZGVMaXN0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgndGFibGVbdGFibGUtaWQ9XCInICsgdGhpcy50YWJsZUlkICsgJ1wiXSB0Ym9keSB0cicpO1xuXG4gICAgICB0YWJsZUJvZHlSb3dzLmZvckVhY2goKHRyOiBOb2RlKSA9PiB7XG4gICAgICAgIGlmICh0ci5maXJzdENoaWxkKSB7XG4gICAgICAgICAgbGV0IHRyQWN0aW9uc0NvbHVtOiBOb2RlID0gdHIuZmlyc3RDaGlsZC5wYXJlbnRFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3RkLmFjdGlvbnMtY29sdW1uJylbMF07XG4gICAgICAgICAgbGV0IG1vYmlsZU1lbnVUcmlnZ2VyOiBOb2RlID0gdHIuZmlyc3RDaGlsZC5wYXJlbnRFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5tb2JpbGUtbWVudS10cmlnZ2VyW2Nsb25lZC1ub2RlPVwidHJ1ZVwiXScpWzBdO1xuXG4gICAgICAgICAgaWYgKG1vYmlsZU1lbnVUcmlnZ2VyKSB7XG4gICAgICAgICAgICBsZXQgbW9iaWxlTWVudVRyaWdnZXJQYW5lbDogTm9kZSA9IG1vYmlsZU1lbnVUcmlnZ2VyLmxhc3RDaGlsZDtcblxuICAgICAgICAgICAgaWYgKHRyQWN0aW9uc0NvbHVtICYmIG1vYmlsZU1lbnVUcmlnZ2VyUGFuZWwpIHtcbiAgICAgICAgICAgICAgdGhpcy5hcHBlbmROb2Rlc0xpc3QobW9iaWxlTWVudVRyaWdnZXJQYW5lbCwgdHJBY3Rpb25zQ29sdW0uY2hpbGROb2Rlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy50YWJsZVNpemUgPT0gJ2xnJyB8fCB0aGlzLnRhYmxlU2l6ZSA9PSAneGwnKSB7XG4gICAgICBsZXQgdGFibGVCb2R5Um93czogTm9kZUxpc3QgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCd0YWJsZVt0YWJsZS1pZD1cIicgKyB0aGlzLnRhYmxlSWQgKyAnXCJdIHRib2R5IHRyJyk7XG5cbiAgICAgIHRhYmxlQm9keVJvd3MuZm9yRWFjaCgodHI6IE5vZGUpID0+IHtcbiAgICAgICAgaWYgKHRyLmZpcnN0Q2hpbGQpIHtcbiAgICAgICAgICBsZXQgdHJBY3Rpb25zQ29sdW06IE5vZGUgPSB0ci5maXJzdENoaWxkLnBhcmVudEVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgndGQuYWN0aW9ucy1jb2x1bW4nKVswXTtcbiAgICAgICAgICBsZXQgbW9iaWxlTWVudVRyaWdnZXI6IE5vZGUgPSB0ci5maXJzdENoaWxkLnBhcmVudEVsZW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLm1vYmlsZS1tZW51LXRyaWdnZXJbY2xvbmVkLW5vZGU9XCJ0cnVlXCJdJylbMF07XG5cbiAgICAgICAgICBpZiAodHJBY3Rpb25zQ29sdW0gJiYgbW9iaWxlTWVudVRyaWdnZXIpIHtcbiAgICAgICAgICAgIHRoaXMuYXBwZW5kTm9kZXNMaXN0KHRyQWN0aW9uc0NvbHVtLCBtb2JpbGVNZW51VHJpZ2dlci5sYXN0Q2hpbGQuY2hpbGROb2Rlcyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFwcGVuZE5vZGVzTGlzdChlbGVtZW50VG9BcHBlbmQ6IE5vZGUsIG5vZGVzTGlzdDogTm9kZUxpc3RPZjxDaGlsZE5vZGU+KTogTm9kZSB7XG4gICAgaWYgKHRoaXMudGFibGVTaXplID09ICdtZCcgfHwgdGhpcy50YWJsZVNpemUgPT0gJ3NtJykge1xuICAgICAgbGV0IG5vZGVMaXN0SW5kZXg6IG51bWJlciA9IG5vZGVzTGlzdC5sZW5ndGggLSAxO1xuXG4gICAgICB3aGlsZSAobm9kZXNMaXN0Lmxlbmd0aCAhPSAwKSB7XG4gICAgICAgIGxldCByZW1vdmVkTm9kZTogTm9kZSA9IG5vZGVzTGlzdC5pdGVtKG5vZGVMaXN0SW5kZXgpLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobm9kZXNMaXN0Lml0ZW0obm9kZUxpc3RJbmRleCkpO1xuICAgICAgICBlbGVtZW50VG9BcHBlbmQuaW5zZXJ0QmVmb3JlKHJlbW92ZWROb2RlLCBlbGVtZW50VG9BcHBlbmQuZmlyc3RDaGlsZCk7XG4gICAgICAgIG5vZGVMaXN0SW5kZXgtLTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGVsZW1lbnRUb0FwcGVuZDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy50YWJsZVNpemUgPT0gJ2xnJyB8fCB0aGlzLnRhYmxlU2l6ZSA9PSAneGwnKSB7XG4gICAgICBsZXQgbm9kZUxpc3RJbmRleDogbnVtYmVyID0gbm9kZXNMaXN0Lmxlbmd0aCAtIDE7XG5cbiAgICAgIHdoaWxlIChub2Rlc0xpc3QubGVuZ3RoID4gMSkge1xuICAgICAgICBsZXQgaXRlbTogTm9kZSA9IG5vZGVzTGlzdC5pdGVtKG5vZGVMaXN0SW5kZXgpO1xuICAgICAgICBsZXQgY2xvc2VCdXR0b25Ob2RlOiBOb2RlID0gaXRlbS5wYXJlbnROb2RlLnF1ZXJ5U2VsZWN0b3JBbGwoJ2dyYXZpdHktYnV0dG9uW2lkLXJlZmVyZW5jZT1cImNsb3NlLWJ1dHRvblwiXScpLml0ZW0oMCk7XG5cbiAgICAgICAgaWYgKGl0ZW0gIT0gY2xvc2VCdXR0b25Ob2RlKSB7XG4gICAgICAgICAgbGV0IHJlbW92ZWROb2RlOiBOb2RlID0gaXRlbS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGl0ZW0pO1xuICAgICAgICAgIGVsZW1lbnRUb0FwcGVuZC5pbnNlcnRCZWZvcmUocmVtb3ZlZE5vZGUsIGVsZW1lbnRUb0FwcGVuZC5maXJzdENoaWxkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIG5vZGVMaXN0SW5kZXgtLTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGVsZW1lbnRUb0FwcGVuZDtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ0YWJsZS1jb250YWluZXIge3t0YWJsZVNpemV9fVwiICN0YWJsZUNvbnRhaW5lcj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+XG5cbjxncmF2aXR5LWJ1dHRvbiBpZC1yZWZlcmVuY2U9XCJjbG9zZS1idXR0b25cIiBbaWNvbk5hbWVdPVwiJ3Vuc3VjY2VzcydcIiBbdHlwZV09XCIndGVydGlhcnknXCIgW3NpemVdPVwiJ3NtJ1wiPkNsb3NlIG1lbnU8L2dyYXZpdHktYnV0dG9uPlxuPGdyYXZpdHktYnV0dG9uIGlkLXJlZmVyZW5jZT1cImNsb3NlLWJ1dHRvblwiIFtpY29uTmFtZV09XCIndW5zdWNjZXNzJ1wiIFt0eXBlXT1cIid0ZXJ0aWFyeSdcIiBbc2l6ZV09XCInc20nXCI+Q2xvc2UgbWVudTwvZ3Jhdml0eS1idXR0b24+XG48Z3Jhdml0eS1idXR0b24gaWQtcmVmZXJlbmNlPVwiY2xvc2UtYnV0dG9uXCIgW2ljb25OYW1lXT1cIid1bnN1Y2Nlc3MnXCIgW3R5cGVdPVwiJ3RlcnRpYXJ5J1wiIFtzaXplXT1cIidzbSdcIj5DbG9zZSBtZW51PC9ncmF2aXR5LWJ1dHRvbj5cbjxncmF2aXR5LWJ1dHRvbiBpZC1yZWZlcmVuY2U9XCJjbG9zZS1idXR0b25cIiBbaWNvbk5hbWVdPVwiJ3Vuc3VjY2VzcydcIiBbdHlwZV09XCIndGVydGlhcnknXCIgW3NpemVdPVwiJ3NtJ1wiPkNsb3NlIG1lbnU8L2dyYXZpdHktYnV0dG9uPlxuPGdyYXZpdHktYnV0dG9uIGlkLXJlZmVyZW5jZT1cImNsb3NlLWJ1dHRvblwiIFtpY29uTmFtZV09XCIndW5zdWNjZXNzJ1wiIFt0eXBlXT1cIid0ZXJ0aWFyeSdcIiBbc2l6ZV09XCInc20nXCI+Q2xvc2UgbWVudTwvZ3Jhdml0eS1idXR0b24+XG48Z3Jhdml0eS1idXR0b24gaWQtcmVmZXJlbmNlPVwiY2xvc2UtYnV0dG9uXCIgW2ljb25OYW1lXT1cIid1bnN1Y2Nlc3MnXCIgW3R5cGVdPVwiJ3RlcnRpYXJ5J1wiIFtzaXplXT1cIidzbSdcIj5DbG9zZSBtZW51PC9ncmF2aXR5LWJ1dHRvbj5cbjxncmF2aXR5LWJ1dHRvbiBpZC1yZWZlcmVuY2U9XCJjbG9zZS1idXR0b25cIiBbaWNvbk5hbWVdPVwiJ3Vuc3VjY2VzcydcIiBbdHlwZV09XCIndGVydGlhcnknXCIgW3NpemVdPVwiJ3NtJ1wiPkNsb3NlIG1lbnU8L2dyYXZpdHktYnV0dG9uPlxuPGdyYXZpdHktYnV0dG9uIGlkLXJlZmVyZW5jZT1cImNsb3NlLWJ1dHRvblwiIFtpY29uTmFtZV09XCIndW5zdWNjZXNzJ1wiIFt0eXBlXT1cIid0ZXJ0aWFyeSdcIiBbc2l6ZV09XCInc20nXCI+Q2xvc2UgbWVudTwvZ3Jhdml0eS1idXR0b24+XG48Z3Jhdml0eS1idXR0b24gaWQtcmVmZXJlbmNlPVwiY2xvc2UtYnV0dG9uXCIgW2ljb25OYW1lXT1cIid1bnN1Y2Nlc3MnXCIgW3R5cGVdPVwiJ3RlcnRpYXJ5J1wiIFtzaXplXT1cIidzbSdcIj5DbG9zZSBtZW51PC9ncmF2aXR5LWJ1dHRvbj5cbjxncmF2aXR5LWJ1dHRvbiBpZC1yZWZlcmVuY2U9XCJjbG9zZS1idXR0b25cIiBbaWNvbk5hbWVdPVwiJ3Vuc3VjY2VzcydcIiBbdHlwZV09XCIndGVydGlhcnknXCIgW3NpemVdPVwiJ3NtJ1wiPkNsb3NlIG1lbnU8L2dyYXZpdHktYnV0dG9uPlxuPGdyYXZpdHktYnV0dG9uIGlkLXJlZmVyZW5jZT1cImNsb3NlLWJ1dHRvblwiIFtpY29uTmFtZV09XCIndW5zdWNjZXNzJ1wiIFt0eXBlXT1cIid0ZXJ0aWFyeSdcIiBbc2l6ZV09XCInc20nXCI+Q2xvc2UgbWVudTwvZ3Jhdml0eS1idXR0b24+XG4iXX0=
@@ -83,11 +83,11 @@ export class GravityTextFieldComponent {
83
83
  }
84
84
  }
85
85
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GravityTextFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
86
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GravityTextFieldComponent, selector: "gravity-text-field", inputs: { autocomplete: "autocomplete", clickOnIconName: "clickOnIconName", currentLang: "currentLang", customPlaceholder: "customPlaceholder", customInputValue: "customInputValue", cypressTag: "cypressTag", iconColor: "iconColor", iconNames: "iconNames", iconsSizes: "iconsSizes", iconPlacement: "iconPlacement", inputContentType: "inputContentType", label: "label", placeholderType: "placeholderType", prefix: "prefix", required: "required", state: "state", supportTextContent: "supportTextContent", supportTextType: "supportTextType", textFieldType: "textFieldType", validations: "validations" }, outputs: { iconResponse: "clickIcon", textFieldValueResponse: "response" }, viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true }, { propertyName: "textAreaElement", first: true, predicate: ["textAreaElement"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<label class=\"hr-body-text sm-regular {{state}}\" [class.empty]=\"inputValue == '' && !focusInput\"\n [class.focused]=\"focusInput\" [class.full-input]=\"inputValue != '' && !focusInput\" *ngIf=\"label\">\n {{label}}\n <ng-container *ngIf=\"required\">\n <ng-container *ngIf=\"currentLang == 'es'\">- Requerido <span class=\"text-negative\">*</span></ng-container>\n <ng-container *ngIf=\"currentLang == 'en'\">- Required <span class=\"text-negative\">*</span></ng-container>\n </ng-container>\n <ng-container *ngIf=\"state == 'readonly'\">\n <ng-container *ngIf=\"currentLang == 'es'\">- S\u00F3lo lectura</ng-container>\n <ng-container *ngIf=\"currentLang == 'en'\">- Readonly</ng-container>\n </ng-container>\n <ng-container *ngIf=\"state == 'disabled'\">\n <ng-container *ngIf=\"currentLang == 'es'\">- Deshabilitado</ng-container>\n <ng-container *ngIf=\"currentLang == 'en'\">- Disabled</ng-container>\n </ng-container>\n</label>\n<div class=\"gravity-input-field {{textFieldType}} {{state}}\" [class.empty]=\"inputValue == '' && !focusInput\"\n [class.focused]=\"focusInput\" [class.full-input]=\"inputValue != '' && !focusInput\">\n <ng-container *ngIf=\"iconPlacement == 'left'\">\n <ng-container *ngTemplateOutlet=\"icons\"></ng-container>\n </ng-container>\n <span class=\"hr-label md-regular prefix\">{{prefix}}</span>\n <input [attr.data-cy]=\"cypressTag\"\n [attr.disabled]=\"state == 'disabled' ? true : null\"\n [attr.readonly]=\"state == 'readonly' ? true : null\"\n [autocomplete]=\"autocomplete\"\n [maxLength]=\"validations?.maxLength ? validations?.maxLength : 100\"\n [minLength]=\"validations?.minLength ? validations?.minLength : 0\"\n [placeholder]=\"getPlaceholder()\"\n [type]=\"inputContentType\"\n [value]=\"inputValue\"\n\n (blur)=\"focusInput = false\"\n (change)=\"changeInputValue()\"\n (focus)=\"focusInput = true\"\n (keyup)=\"changeInputValue()\"\n\n class=\"hr-label md-regular\"\n\n #inputElement\n\n *ngIf=\"textFieldType == 'input'\">\n <textarea [attr.data-cy]=\"cypressTag\"\n [attr.disabled]=\"state == 'disabled' ? true : null\"\n [attr.readonly]=\"state == 'readonly' ? true : null\"\n [maxLength]=\"validations?.maxLength ? validations?.maxLength : 200\"\n [minLength]=\"validations?.minLength ? validations?.minLength : 0\"\n [placeholder]=\"getPlaceholder()\"\n [value]=\"inputValue\"\n\n (blur)=\"focusInput = false\"\n (change)=\"changeInputValue()\"\n (focus)=\"focusInput = true\"\n (keyup)=\"changeInputValue()\"\n\n class=\"hr-label md-regular\"\n rows=\"3\"\n\n #textAreaElement\n\n *ngIf=\"textFieldType == 'textarea'\"></textarea>\n <ng-container *ngIf=\"iconPlacement == 'right'\">\n <ng-container *ngTemplateOutlet=\"icons\"></ng-container>\n </ng-container>\n</div>\n<p class=\"hr-body-text sm-regular support-text text-{{supportTextType}}\" *ngIf=\"supportTextContent\">\n {{supportTextContent}}\n</p>\n\n<ng-template #icons>\n <gravity-icon (click)=\"$event.stopPropagation(); handleIconClick(name)\" class=\"placement-{{iconPlacement}}\"\n [class.pointer]=\"!!clickOnIconName\" [customIconColorVariable]=\"getIconColor(i)\"\n [hoverIcon]=\"!!clickOnIconName\" [iconName]=\"name\" *ngFor=\"let name of iconNames; let i = index\"\n [size]=\"iconsSizes[i]\"></gravity-icon>\n</ng-template>\n", styles: [".border-radius-none{border-radius:0}.border-radius-xs{border-radius:.0625rem}.border-radius-sm{border-radius:.3125rem}.border-radius-md{border-radius:.625rem}.border-radius-lg{border-radius:.9375rem}.border-radius-xl{border-radius:1.25rem}.border-radius-xxl{border-radius:2rem}.border-radius-rounded{border-radius:6.25rem}.text-negative{color:var(--negative-primary)}.text-neutro{color:var(--text-primary)}.text-positive{color:var(--positive-primary)}.support-text{margin-left:0;margin-top:.3125rem;padding-inline:1rem}:host{display:block}label{color:var(--text-field-label-color);margin-inline:1rem}label.empty.enabled{--text-field-label-color: var(--label-text-empty-enabled-primary)}label.empty.disabled{--text-field-label-color: var(--label-text-empty-disabled-primary)}label.full-input.enabled{--text-field-label-color: var(--label-text-full-enabled-primary)}label.full-input.disabled{--text-field-label-color: var(--label-text-full-disabled-primary)}label.full-input.readonly{--text-field-label-color: var(--label-text-full-read-only-primary)}label.focused{--text-field-label-color: var(--label-text-full-enabled-pressed-primary)}.gravity-input-field{align-items:center;background-color:var(--text-field-input-field-background-color);border:1px solid var(--text-field-input-field-border-color);border-radius:.625rem;display:flex;padding:.75rem 1rem}.gravity-input-field .prefix{color:var(--text-field-input-field-input-color)}.gravity-input-field.input{height:3rem;max-height:3rem;min-height:1.5rem}.gravity-input-field.textarea{min-height:3rem}.gravity-input-field gravity-icon.pointer{cursor:pointer}.gravity-input-field gravity-icon ::ng-deep svg-icon{pointer-events:none}.gravity-input-field gravity-icon.placement-left{margin-right:.5rem}.gravity-input-field gravity-icon.placement-right{margin-left:.5rem}.gravity-input-field input{background-color:transparent;border:none;box-shadow:none;color:var(--text-field-input-field-input-color);line-height:0;outline:none;padding:0;width:100%}.gravity-input-field input:-webkit-autofill{-webkit-box-shadow:0 0 0 30px var(--text-field-input-field-background-color) inset!important;-webkit-text-fill-color:var(--text-field-input-field-input-color)!important}.gravity-input-field input::placeholder{color:var(--text-field-input-field-placeholder-color)}.gravity-input-field textarea{background-color:transparent;border:none;box-shadow:none;color:var(--text-field-input-field-input-color);font-family:var(--font-family);line-height:1;max-height:5rem;max-width:100%;min-height:1rem;outline:none;padding:0;resize:none;width:100%}.gravity-input-field textarea::placeholder{color:var(--text-field-input-field-placeholder-color)}.gravity-input-field.empty.enabled{--text-field-input-field-background-color: var(--bg-field-empty-enabled-primary);--text-field-input-field-border-color: var(--outline-field-empty-enabled-primary);--text-field-input-field-input-color: var(--placeholder-empty-enabled-primary);--text-field-input-field-placeholder-color: var(--placeholder-empty-enabled-primary)}.gravity-input-field.empty.enabled:hover{--text-field-input-field-background-color: var(--bg-field-empty-enabled-hover-primary)}.gravity-input-field.empty.disabled{--text-field-input-field-background-color: var(--bg-field-empty-disabled-primary);--text-field-input-field-border-color: var(--bg-field-empty-disabled-primary);--text-field-input-field-input-color: var(--placeholder-empty-disabled-primary);--text-field-input-field-placeholder-color: var(--placeholder-empty-disabled-primary)}.gravity-input-field.empty.disabled gravity-icon{--icon-color: var(--placeholder-empty-disabled-primary)}.gravity-input-field.full-input.enabled{--text-field-input-field-background-color: var(--bg-field-full-enabled-primary);--text-field-input-field-border-color: var(--outline-field-full-enabled-primary);--text-field-input-field-input-color: var(--input-text-full-enabled-primary)}.gravity-input-field.full-input.enabled:hover{--text-field-input-field-background-color: var(--bg-field-full-enabled-hover-primary)}.gravity-input-field.full-input.disabled{--text-field-input-field-background-color: var(--bg-field-full-disabled-primary);--text-field-input-field-border-color: var(--bg-field-full-disabled-primary);--text-field-input-field-input-color: var(--input-text-full-disabled-primary)}.gravity-input-field.full-input.disabled gravity-icon{--icon-color: var(--input-text-full-disabled-primary)}.gravity-input-field.readonly{--text-field-input-field-background-color: var(--bg-field-full-read-only-primary);--text-field-input-field-border-color: var(--bg-field-full-read-only-primary);--text-field-input-field-input-color: var(--input-text-full-read-only-primary)}.gravity-input-field.readonly gravity-icon{--icon-color: var(--input-text-full-read-only-primary)}.gravity-input-field.focused:not(.readonly){--text-field-input-field-background-color: var(--bg-field-full-enabled-pressed-primary);--text-field-input-field-border-color: var(--outline-field-full-enabled-pressed-primary);--text-field-input-field-input-color: var(--placeholder-full-enabled-pressed-primary)}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.GravityIconComponent, selector: "gravity-icon", inputs: ["customIconColorVariable", "iconName", "hoverIcon", "size"] }] }); }
86
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GravityTextFieldComponent, selector: "gravity-text-field", inputs: { autocomplete: "autocomplete", clickOnIconName: "clickOnIconName", currentLang: "currentLang", customPlaceholder: "customPlaceholder", customInputValue: "customInputValue", cypressTag: "cypressTag", iconColor: "iconColor", iconNames: "iconNames", iconsSizes: "iconsSizes", iconPlacement: "iconPlacement", inputContentType: "inputContentType", label: "label", placeholderType: "placeholderType", prefix: "prefix", required: "required", state: "state", supportTextContent: "supportTextContent", supportTextType: "supportTextType", textFieldType: "textFieldType", validations: "validations" }, outputs: { iconResponse: "clickIcon", textFieldValueResponse: "response" }, viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true }, { propertyName: "textAreaElement", first: true, predicate: ["textAreaElement"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<label class=\"hr-body-text sm-regular {{state}}\" [class.empty]=\"inputValue == '' && !focusInput\"\n [class.focused]=\"focusInput\" [class.full-input]=\"inputValue != '' && !focusInput\" *ngIf=\"label\">\n {{label}}\n <ng-container *ngIf=\"required\">\n <ng-container *ngIf=\"currentLang == 'es'\">- Requerido <span class=\"text-negative\">*</span></ng-container>\n <ng-container *ngIf=\"currentLang == 'en'\">- Required <span class=\"text-negative\">*</span></ng-container>\n </ng-container>\n <ng-container *ngIf=\"state == 'readonly'\">\n <ng-container *ngIf=\"currentLang == 'es'\">- S\u00F3lo lectura</ng-container>\n <ng-container *ngIf=\"currentLang == 'en'\">- Readonly</ng-container>\n </ng-container>\n <ng-container *ngIf=\"state == 'disabled'\">\n <ng-container *ngIf=\"currentLang == 'es'\">- Deshabilitado</ng-container>\n <ng-container *ngIf=\"currentLang == 'en'\">- Disabled</ng-container>\n </ng-container>\n</label>\n<div class=\"gravity-input-field {{textFieldType}} {{state}}\" [class.empty]=\"inputValue == '' && !focusInput\"\n [class.focused]=\"focusInput\" [class.full-input]=\"inputValue != '' && !focusInput\">\n <ng-container *ngIf=\"iconPlacement == 'left'\">\n <ng-container *ngTemplateOutlet=\"icons\"></ng-container>\n </ng-container>\n <span class=\"hr-label md-regular prefix\">{{prefix}}</span>\n <input [attr.data-cy]=\"cypressTag\"\n [attr.disabled]=\"state == 'disabled' ? true : null\"\n [attr.readonly]=\"state == 'readonly' ? true : null\"\n [autocomplete]=\"autocomplete\"\n [maxLength]=\"validations?.maxLength ? validations?.maxLength : 100\"\n [minLength]=\"validations?.minLength ? validations?.minLength : 0\"\n [placeholder]=\"getPlaceholder()\"\n [type]=\"inputContentType\"\n [value]=\"inputValue\"\n\n (blur)=\"focusInput = false\"\n (change)=\"changeInputValue()\"\n (focus)=\"focusInput = true\"\n (keyup)=\"changeInputValue()\"\n\n class=\"hr-label md-regular\"\n\n #inputElement\n\n *ngIf=\"textFieldType == 'input'\">\n <textarea [attr.data-cy]=\"cypressTag\"\n [attr.disabled]=\"state == 'disabled' ? true : null\"\n [attr.readonly]=\"state == 'readonly' ? true : null\"\n [maxLength]=\"validations?.maxLength ? validations?.maxLength : 200\"\n [minLength]=\"validations?.minLength ? validations?.minLength : 0\"\n [placeholder]=\"getPlaceholder()\"\n [value]=\"inputValue\"\n\n (blur)=\"focusInput = false\"\n (change)=\"changeInputValue()\"\n (focus)=\"focusInput = true\"\n (keyup)=\"changeInputValue()\"\n\n class=\"hr-label md-regular\"\n rows=\"3\"\n\n #textAreaElement\n\n *ngIf=\"textFieldType == 'textarea'\"></textarea>\n <ng-container *ngIf=\"iconPlacement == 'right'\">\n <ng-container *ngTemplateOutlet=\"icons\"></ng-container>\n </ng-container>\n</div>\n<p class=\"hr-body-text sm-regular support-text text-{{supportTextType}}\" *ngIf=\"supportTextContent\">\n {{supportTextContent}}\n</p>\n\n<ng-template #icons>\n <gravity-icon (click)=\"$event.stopPropagation(); handleIconClick(name)\" class=\"placement-{{iconPlacement}}\"\n [class.pointer]=\"!!clickOnIconName\" [customIconColorVariable]=\"getIconColor(i)\"\n [hoverIcon]=\"!!clickOnIconName\" [iconName]=\"name\" *ngFor=\"let name of iconNames; let i = index\"\n [size]=\"iconsSizes[i % iconsSizes.length]\"></gravity-icon>\n</ng-template>\n", styles: [".border-radius-none{border-radius:0}.border-radius-xs{border-radius:.0625rem}.border-radius-sm{border-radius:.3125rem}.border-radius-md{border-radius:.625rem}.border-radius-lg{border-radius:.9375rem}.border-radius-xl{border-radius:1.25rem}.border-radius-xxl{border-radius:2rem}.border-radius-rounded{border-radius:6.25rem}.text-negative{color:var(--negative-primary)}.text-neutro{color:var(--text-primary)}.text-positive{color:var(--positive-primary)}.support-text{margin-left:0;margin-top:.3125rem;padding-inline:1rem}:host{display:block}label{color:var(--text-field-label-color);margin-inline:1rem}label.empty.enabled{--text-field-label-color: var(--label-text-empty-enabled-primary)}label.empty.disabled{--text-field-label-color: var(--label-text-empty-disabled-primary)}label.full-input.enabled{--text-field-label-color: var(--label-text-full-enabled-primary)}label.full-input.disabled{--text-field-label-color: var(--label-text-full-disabled-primary)}label.full-input.readonly{--text-field-label-color: var(--label-text-full-read-only-primary)}label.focused{--text-field-label-color: var(--label-text-full-enabled-pressed-primary)}.gravity-input-field{align-items:center;background-color:var(--text-field-input-field-background-color);border:1px solid var(--text-field-input-field-border-color);border-radius:.625rem;display:flex;padding:.75rem 1rem}.gravity-input-field .prefix{color:var(--text-field-input-field-input-color)}.gravity-input-field.input{height:3rem;max-height:3rem;min-height:1.5rem}.gravity-input-field.textarea{min-height:3rem}.gravity-input-field gravity-icon.pointer{cursor:pointer}.gravity-input-field gravity-icon ::ng-deep svg-icon{pointer-events:none}.gravity-input-field gravity-icon.placement-left{margin-right:.5rem}.gravity-input-field gravity-icon.placement-right{margin-left:.5rem}.gravity-input-field input{background-color:transparent;border:none;box-shadow:none;color:var(--text-field-input-field-input-color);line-height:0;outline:none;padding:0;width:100%}.gravity-input-field input:-webkit-autofill{-webkit-box-shadow:0 0 0 30px var(--text-field-input-field-background-color) inset!important;-webkit-text-fill-color:var(--text-field-input-field-input-color)!important}.gravity-input-field input::placeholder{color:var(--text-field-input-field-placeholder-color)}.gravity-input-field textarea{background-color:transparent;border:none;box-shadow:none;color:var(--text-field-input-field-input-color);font-family:var(--font-family);line-height:1;max-height:5rem;max-width:100%;min-height:1rem;outline:none;padding:0;resize:none;width:100%}.gravity-input-field textarea::placeholder{color:var(--text-field-input-field-placeholder-color)}.gravity-input-field.empty.enabled{--text-field-input-field-background-color: var(--bg-field-empty-enabled-primary);--text-field-input-field-border-color: var(--outline-field-empty-enabled-primary);--text-field-input-field-input-color: var(--placeholder-empty-enabled-primary);--text-field-input-field-placeholder-color: var(--placeholder-empty-enabled-primary)}.gravity-input-field.empty.enabled:hover{--text-field-input-field-background-color: var(--bg-field-empty-enabled-hover-primary)}.gravity-input-field.empty.disabled{--text-field-input-field-background-color: var(--bg-field-empty-disabled-primary);--text-field-input-field-border-color: var(--bg-field-empty-disabled-primary);--text-field-input-field-input-color: var(--placeholder-empty-disabled-primary);--text-field-input-field-placeholder-color: var(--placeholder-empty-disabled-primary)}.gravity-input-field.empty.disabled gravity-icon{--icon-color: var(--placeholder-empty-disabled-primary)}.gravity-input-field.full-input.enabled{--text-field-input-field-background-color: var(--bg-field-full-enabled-primary);--text-field-input-field-border-color: var(--outline-field-full-enabled-primary);--text-field-input-field-input-color: var(--input-text-full-enabled-primary)}.gravity-input-field.full-input.enabled:hover{--text-field-input-field-background-color: var(--bg-field-full-enabled-hover-primary)}.gravity-input-field.full-input.disabled{--text-field-input-field-background-color: var(--bg-field-full-disabled-primary);--text-field-input-field-border-color: var(--bg-field-full-disabled-primary);--text-field-input-field-input-color: var(--input-text-full-disabled-primary)}.gravity-input-field.full-input.disabled gravity-icon{--icon-color: var(--input-text-full-disabled-primary)}.gravity-input-field.readonly{--text-field-input-field-background-color: var(--bg-field-full-read-only-primary);--text-field-input-field-border-color: var(--bg-field-full-read-only-primary);--text-field-input-field-input-color: var(--input-text-full-read-only-primary)}.gravity-input-field.readonly gravity-icon{--icon-color: var(--input-text-full-read-only-primary)}.gravity-input-field.focused:not(.readonly){--text-field-input-field-background-color: var(--bg-field-full-enabled-pressed-primary);--text-field-input-field-border-color: var(--outline-field-full-enabled-pressed-primary);--text-field-input-field-input-color: var(--placeholder-full-enabled-pressed-primary)}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.GravityIconComponent, selector: "gravity-icon", inputs: ["customIconColorVariable", "iconName", "hoverIcon", "size"] }] }); }
87
87
  }
88
88
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GravityTextFieldComponent, decorators: [{
89
89
  type: Component,
90
- args: [{ selector: 'gravity-text-field', template: "<label class=\"hr-body-text sm-regular {{state}}\" [class.empty]=\"inputValue == '' && !focusInput\"\n [class.focused]=\"focusInput\" [class.full-input]=\"inputValue != '' && !focusInput\" *ngIf=\"label\">\n {{label}}\n <ng-container *ngIf=\"required\">\n <ng-container *ngIf=\"currentLang == 'es'\">- Requerido <span class=\"text-negative\">*</span></ng-container>\n <ng-container *ngIf=\"currentLang == 'en'\">- Required <span class=\"text-negative\">*</span></ng-container>\n </ng-container>\n <ng-container *ngIf=\"state == 'readonly'\">\n <ng-container *ngIf=\"currentLang == 'es'\">- S\u00F3lo lectura</ng-container>\n <ng-container *ngIf=\"currentLang == 'en'\">- Readonly</ng-container>\n </ng-container>\n <ng-container *ngIf=\"state == 'disabled'\">\n <ng-container *ngIf=\"currentLang == 'es'\">- Deshabilitado</ng-container>\n <ng-container *ngIf=\"currentLang == 'en'\">- Disabled</ng-container>\n </ng-container>\n</label>\n<div class=\"gravity-input-field {{textFieldType}} {{state}}\" [class.empty]=\"inputValue == '' && !focusInput\"\n [class.focused]=\"focusInput\" [class.full-input]=\"inputValue != '' && !focusInput\">\n <ng-container *ngIf=\"iconPlacement == 'left'\">\n <ng-container *ngTemplateOutlet=\"icons\"></ng-container>\n </ng-container>\n <span class=\"hr-label md-regular prefix\">{{prefix}}</span>\n <input [attr.data-cy]=\"cypressTag\"\n [attr.disabled]=\"state == 'disabled' ? true : null\"\n [attr.readonly]=\"state == 'readonly' ? true : null\"\n [autocomplete]=\"autocomplete\"\n [maxLength]=\"validations?.maxLength ? validations?.maxLength : 100\"\n [minLength]=\"validations?.minLength ? validations?.minLength : 0\"\n [placeholder]=\"getPlaceholder()\"\n [type]=\"inputContentType\"\n [value]=\"inputValue\"\n\n (blur)=\"focusInput = false\"\n (change)=\"changeInputValue()\"\n (focus)=\"focusInput = true\"\n (keyup)=\"changeInputValue()\"\n\n class=\"hr-label md-regular\"\n\n #inputElement\n\n *ngIf=\"textFieldType == 'input'\">\n <textarea [attr.data-cy]=\"cypressTag\"\n [attr.disabled]=\"state == 'disabled' ? true : null\"\n [attr.readonly]=\"state == 'readonly' ? true : null\"\n [maxLength]=\"validations?.maxLength ? validations?.maxLength : 200\"\n [minLength]=\"validations?.minLength ? validations?.minLength : 0\"\n [placeholder]=\"getPlaceholder()\"\n [value]=\"inputValue\"\n\n (blur)=\"focusInput = false\"\n (change)=\"changeInputValue()\"\n (focus)=\"focusInput = true\"\n (keyup)=\"changeInputValue()\"\n\n class=\"hr-label md-regular\"\n rows=\"3\"\n\n #textAreaElement\n\n *ngIf=\"textFieldType == 'textarea'\"></textarea>\n <ng-container *ngIf=\"iconPlacement == 'right'\">\n <ng-container *ngTemplateOutlet=\"icons\"></ng-container>\n </ng-container>\n</div>\n<p class=\"hr-body-text sm-regular support-text text-{{supportTextType}}\" *ngIf=\"supportTextContent\">\n {{supportTextContent}}\n</p>\n\n<ng-template #icons>\n <gravity-icon (click)=\"$event.stopPropagation(); handleIconClick(name)\" class=\"placement-{{iconPlacement}}\"\n [class.pointer]=\"!!clickOnIconName\" [customIconColorVariable]=\"getIconColor(i)\"\n [hoverIcon]=\"!!clickOnIconName\" [iconName]=\"name\" *ngFor=\"let name of iconNames; let i = index\"\n [size]=\"iconsSizes[i]\"></gravity-icon>\n</ng-template>\n", styles: [".border-radius-none{border-radius:0}.border-radius-xs{border-radius:.0625rem}.border-radius-sm{border-radius:.3125rem}.border-radius-md{border-radius:.625rem}.border-radius-lg{border-radius:.9375rem}.border-radius-xl{border-radius:1.25rem}.border-radius-xxl{border-radius:2rem}.border-radius-rounded{border-radius:6.25rem}.text-negative{color:var(--negative-primary)}.text-neutro{color:var(--text-primary)}.text-positive{color:var(--positive-primary)}.support-text{margin-left:0;margin-top:.3125rem;padding-inline:1rem}:host{display:block}label{color:var(--text-field-label-color);margin-inline:1rem}label.empty.enabled{--text-field-label-color: var(--label-text-empty-enabled-primary)}label.empty.disabled{--text-field-label-color: var(--label-text-empty-disabled-primary)}label.full-input.enabled{--text-field-label-color: var(--label-text-full-enabled-primary)}label.full-input.disabled{--text-field-label-color: var(--label-text-full-disabled-primary)}label.full-input.readonly{--text-field-label-color: var(--label-text-full-read-only-primary)}label.focused{--text-field-label-color: var(--label-text-full-enabled-pressed-primary)}.gravity-input-field{align-items:center;background-color:var(--text-field-input-field-background-color);border:1px solid var(--text-field-input-field-border-color);border-radius:.625rem;display:flex;padding:.75rem 1rem}.gravity-input-field .prefix{color:var(--text-field-input-field-input-color)}.gravity-input-field.input{height:3rem;max-height:3rem;min-height:1.5rem}.gravity-input-field.textarea{min-height:3rem}.gravity-input-field gravity-icon.pointer{cursor:pointer}.gravity-input-field gravity-icon ::ng-deep svg-icon{pointer-events:none}.gravity-input-field gravity-icon.placement-left{margin-right:.5rem}.gravity-input-field gravity-icon.placement-right{margin-left:.5rem}.gravity-input-field input{background-color:transparent;border:none;box-shadow:none;color:var(--text-field-input-field-input-color);line-height:0;outline:none;padding:0;width:100%}.gravity-input-field input:-webkit-autofill{-webkit-box-shadow:0 0 0 30px var(--text-field-input-field-background-color) inset!important;-webkit-text-fill-color:var(--text-field-input-field-input-color)!important}.gravity-input-field input::placeholder{color:var(--text-field-input-field-placeholder-color)}.gravity-input-field textarea{background-color:transparent;border:none;box-shadow:none;color:var(--text-field-input-field-input-color);font-family:var(--font-family);line-height:1;max-height:5rem;max-width:100%;min-height:1rem;outline:none;padding:0;resize:none;width:100%}.gravity-input-field textarea::placeholder{color:var(--text-field-input-field-placeholder-color)}.gravity-input-field.empty.enabled{--text-field-input-field-background-color: var(--bg-field-empty-enabled-primary);--text-field-input-field-border-color: var(--outline-field-empty-enabled-primary);--text-field-input-field-input-color: var(--placeholder-empty-enabled-primary);--text-field-input-field-placeholder-color: var(--placeholder-empty-enabled-primary)}.gravity-input-field.empty.enabled:hover{--text-field-input-field-background-color: var(--bg-field-empty-enabled-hover-primary)}.gravity-input-field.empty.disabled{--text-field-input-field-background-color: var(--bg-field-empty-disabled-primary);--text-field-input-field-border-color: var(--bg-field-empty-disabled-primary);--text-field-input-field-input-color: var(--placeholder-empty-disabled-primary);--text-field-input-field-placeholder-color: var(--placeholder-empty-disabled-primary)}.gravity-input-field.empty.disabled gravity-icon{--icon-color: var(--placeholder-empty-disabled-primary)}.gravity-input-field.full-input.enabled{--text-field-input-field-background-color: var(--bg-field-full-enabled-primary);--text-field-input-field-border-color: var(--outline-field-full-enabled-primary);--text-field-input-field-input-color: var(--input-text-full-enabled-primary)}.gravity-input-field.full-input.enabled:hover{--text-field-input-field-background-color: var(--bg-field-full-enabled-hover-primary)}.gravity-input-field.full-input.disabled{--text-field-input-field-background-color: var(--bg-field-full-disabled-primary);--text-field-input-field-border-color: var(--bg-field-full-disabled-primary);--text-field-input-field-input-color: var(--input-text-full-disabled-primary)}.gravity-input-field.full-input.disabled gravity-icon{--icon-color: var(--input-text-full-disabled-primary)}.gravity-input-field.readonly{--text-field-input-field-background-color: var(--bg-field-full-read-only-primary);--text-field-input-field-border-color: var(--bg-field-full-read-only-primary);--text-field-input-field-input-color: var(--input-text-full-read-only-primary)}.gravity-input-field.readonly gravity-icon{--icon-color: var(--input-text-full-read-only-primary)}.gravity-input-field.focused:not(.readonly){--text-field-input-field-background-color: var(--bg-field-full-enabled-pressed-primary);--text-field-input-field-border-color: var(--outline-field-full-enabled-pressed-primary);--text-field-input-field-input-color: var(--placeholder-full-enabled-pressed-primary)}\n"] }]
90
+ args: [{ selector: 'gravity-text-field', template: "<label class=\"hr-body-text sm-regular {{state}}\" [class.empty]=\"inputValue == '' && !focusInput\"\n [class.focused]=\"focusInput\" [class.full-input]=\"inputValue != '' && !focusInput\" *ngIf=\"label\">\n {{label}}\n <ng-container *ngIf=\"required\">\n <ng-container *ngIf=\"currentLang == 'es'\">- Requerido <span class=\"text-negative\">*</span></ng-container>\n <ng-container *ngIf=\"currentLang == 'en'\">- Required <span class=\"text-negative\">*</span></ng-container>\n </ng-container>\n <ng-container *ngIf=\"state == 'readonly'\">\n <ng-container *ngIf=\"currentLang == 'es'\">- S\u00F3lo lectura</ng-container>\n <ng-container *ngIf=\"currentLang == 'en'\">- Readonly</ng-container>\n </ng-container>\n <ng-container *ngIf=\"state == 'disabled'\">\n <ng-container *ngIf=\"currentLang == 'es'\">- Deshabilitado</ng-container>\n <ng-container *ngIf=\"currentLang == 'en'\">- Disabled</ng-container>\n </ng-container>\n</label>\n<div class=\"gravity-input-field {{textFieldType}} {{state}}\" [class.empty]=\"inputValue == '' && !focusInput\"\n [class.focused]=\"focusInput\" [class.full-input]=\"inputValue != '' && !focusInput\">\n <ng-container *ngIf=\"iconPlacement == 'left'\">\n <ng-container *ngTemplateOutlet=\"icons\"></ng-container>\n </ng-container>\n <span class=\"hr-label md-regular prefix\">{{prefix}}</span>\n <input [attr.data-cy]=\"cypressTag\"\n [attr.disabled]=\"state == 'disabled' ? true : null\"\n [attr.readonly]=\"state == 'readonly' ? true : null\"\n [autocomplete]=\"autocomplete\"\n [maxLength]=\"validations?.maxLength ? validations?.maxLength : 100\"\n [minLength]=\"validations?.minLength ? validations?.minLength : 0\"\n [placeholder]=\"getPlaceholder()\"\n [type]=\"inputContentType\"\n [value]=\"inputValue\"\n\n (blur)=\"focusInput = false\"\n (change)=\"changeInputValue()\"\n (focus)=\"focusInput = true\"\n (keyup)=\"changeInputValue()\"\n\n class=\"hr-label md-regular\"\n\n #inputElement\n\n *ngIf=\"textFieldType == 'input'\">\n <textarea [attr.data-cy]=\"cypressTag\"\n [attr.disabled]=\"state == 'disabled' ? true : null\"\n [attr.readonly]=\"state == 'readonly' ? true : null\"\n [maxLength]=\"validations?.maxLength ? validations?.maxLength : 200\"\n [minLength]=\"validations?.minLength ? validations?.minLength : 0\"\n [placeholder]=\"getPlaceholder()\"\n [value]=\"inputValue\"\n\n (blur)=\"focusInput = false\"\n (change)=\"changeInputValue()\"\n (focus)=\"focusInput = true\"\n (keyup)=\"changeInputValue()\"\n\n class=\"hr-label md-regular\"\n rows=\"3\"\n\n #textAreaElement\n\n *ngIf=\"textFieldType == 'textarea'\"></textarea>\n <ng-container *ngIf=\"iconPlacement == 'right'\">\n <ng-container *ngTemplateOutlet=\"icons\"></ng-container>\n </ng-container>\n</div>\n<p class=\"hr-body-text sm-regular support-text text-{{supportTextType}}\" *ngIf=\"supportTextContent\">\n {{supportTextContent}}\n</p>\n\n<ng-template #icons>\n <gravity-icon (click)=\"$event.stopPropagation(); handleIconClick(name)\" class=\"placement-{{iconPlacement}}\"\n [class.pointer]=\"!!clickOnIconName\" [customIconColorVariable]=\"getIconColor(i)\"\n [hoverIcon]=\"!!clickOnIconName\" [iconName]=\"name\" *ngFor=\"let name of iconNames; let i = index\"\n [size]=\"iconsSizes[i % iconsSizes.length]\"></gravity-icon>\n</ng-template>\n", styles: [".border-radius-none{border-radius:0}.border-radius-xs{border-radius:.0625rem}.border-radius-sm{border-radius:.3125rem}.border-radius-md{border-radius:.625rem}.border-radius-lg{border-radius:.9375rem}.border-radius-xl{border-radius:1.25rem}.border-radius-xxl{border-radius:2rem}.border-radius-rounded{border-radius:6.25rem}.text-negative{color:var(--negative-primary)}.text-neutro{color:var(--text-primary)}.text-positive{color:var(--positive-primary)}.support-text{margin-left:0;margin-top:.3125rem;padding-inline:1rem}:host{display:block}label{color:var(--text-field-label-color);margin-inline:1rem}label.empty.enabled{--text-field-label-color: var(--label-text-empty-enabled-primary)}label.empty.disabled{--text-field-label-color: var(--label-text-empty-disabled-primary)}label.full-input.enabled{--text-field-label-color: var(--label-text-full-enabled-primary)}label.full-input.disabled{--text-field-label-color: var(--label-text-full-disabled-primary)}label.full-input.readonly{--text-field-label-color: var(--label-text-full-read-only-primary)}label.focused{--text-field-label-color: var(--label-text-full-enabled-pressed-primary)}.gravity-input-field{align-items:center;background-color:var(--text-field-input-field-background-color);border:1px solid var(--text-field-input-field-border-color);border-radius:.625rem;display:flex;padding:.75rem 1rem}.gravity-input-field .prefix{color:var(--text-field-input-field-input-color)}.gravity-input-field.input{height:3rem;max-height:3rem;min-height:1.5rem}.gravity-input-field.textarea{min-height:3rem}.gravity-input-field gravity-icon.pointer{cursor:pointer}.gravity-input-field gravity-icon ::ng-deep svg-icon{pointer-events:none}.gravity-input-field gravity-icon.placement-left{margin-right:.5rem}.gravity-input-field gravity-icon.placement-right{margin-left:.5rem}.gravity-input-field input{background-color:transparent;border:none;box-shadow:none;color:var(--text-field-input-field-input-color);line-height:0;outline:none;padding:0;width:100%}.gravity-input-field input:-webkit-autofill{-webkit-box-shadow:0 0 0 30px var(--text-field-input-field-background-color) inset!important;-webkit-text-fill-color:var(--text-field-input-field-input-color)!important}.gravity-input-field input::placeholder{color:var(--text-field-input-field-placeholder-color)}.gravity-input-field textarea{background-color:transparent;border:none;box-shadow:none;color:var(--text-field-input-field-input-color);font-family:var(--font-family);line-height:1;max-height:5rem;max-width:100%;min-height:1rem;outline:none;padding:0;resize:none;width:100%}.gravity-input-field textarea::placeholder{color:var(--text-field-input-field-placeholder-color)}.gravity-input-field.empty.enabled{--text-field-input-field-background-color: var(--bg-field-empty-enabled-primary);--text-field-input-field-border-color: var(--outline-field-empty-enabled-primary);--text-field-input-field-input-color: var(--placeholder-empty-enabled-primary);--text-field-input-field-placeholder-color: var(--placeholder-empty-enabled-primary)}.gravity-input-field.empty.enabled:hover{--text-field-input-field-background-color: var(--bg-field-empty-enabled-hover-primary)}.gravity-input-field.empty.disabled{--text-field-input-field-background-color: var(--bg-field-empty-disabled-primary);--text-field-input-field-border-color: var(--bg-field-empty-disabled-primary);--text-field-input-field-input-color: var(--placeholder-empty-disabled-primary);--text-field-input-field-placeholder-color: var(--placeholder-empty-disabled-primary)}.gravity-input-field.empty.disabled gravity-icon{--icon-color: var(--placeholder-empty-disabled-primary)}.gravity-input-field.full-input.enabled{--text-field-input-field-background-color: var(--bg-field-full-enabled-primary);--text-field-input-field-border-color: var(--outline-field-full-enabled-primary);--text-field-input-field-input-color: var(--input-text-full-enabled-primary)}.gravity-input-field.full-input.enabled:hover{--text-field-input-field-background-color: var(--bg-field-full-enabled-hover-primary)}.gravity-input-field.full-input.disabled{--text-field-input-field-background-color: var(--bg-field-full-disabled-primary);--text-field-input-field-border-color: var(--bg-field-full-disabled-primary);--text-field-input-field-input-color: var(--input-text-full-disabled-primary)}.gravity-input-field.full-input.disabled gravity-icon{--icon-color: var(--input-text-full-disabled-primary)}.gravity-input-field.readonly{--text-field-input-field-background-color: var(--bg-field-full-read-only-primary);--text-field-input-field-border-color: var(--bg-field-full-read-only-primary);--text-field-input-field-input-color: var(--input-text-full-read-only-primary)}.gravity-input-field.readonly gravity-icon{--icon-color: var(--input-text-full-read-only-primary)}.gravity-input-field.focused:not(.readonly){--text-field-input-field-background-color: var(--bg-field-full-enabled-pressed-primary);--text-field-input-field-border-color: var(--outline-field-full-enabled-pressed-primary);--text-field-input-field-input-color: var(--placeholder-full-enabled-pressed-primary)}\n"] }]
91
91
  }], propDecorators: { iconResponse: [{
92
92
  type: Output,
93
93
  args: ['clickIcon']
@@ -141,4 +141,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
141
141
  type: ViewChild,
142
142
  args: ['textAreaElement', { static: false }]
143
143
  }] } });
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3Jhdml0eS10ZXh0LWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dyYXZpdHktZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvbXBvbmVudHMvZ3Jhdml0eS10ZXh0LWZpZWxkL2dyYXZpdHktdGV4dC1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncmF2aXR5LWRlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2dyYXZpdHktdGV4dC1maWVsZC9ncmF2aXR5LXRleHQtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7OztBQU9sSCxNQUFNLE9BQU8seUJBQXlCO0lBTHRDO1FBTThCLGlCQUFZLEdBQTBCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDMUQsMkJBQXNCLEdBQXlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFN0UsaUJBQVksR0FBVyxLQUFLLENBQUM7UUFDN0Isb0JBQWUsR0FBcUIsS0FBSyxDQUFDO1FBQzFDLGdCQUFXLEdBQVcsSUFBSSxDQUFDO1FBTTNCLGVBQVUsR0FBMkIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QyxrQkFBYSxHQUFxQixNQUFNLENBQUM7UUFDekMscUJBQWdCLEdBQXFELE1BQU0sQ0FBQztRQUU1RSxvQkFBZSxHQUFnQyxTQUFTLENBQUM7UUFDekQsV0FBTSxHQUFXLEVBQUUsQ0FBQztRQUVwQixVQUFLLEdBQXdDLFNBQVMsQ0FBQztRQUV2RCxvQkFBZSxHQUF1QyxRQUFRLENBQUM7UUFDL0Qsa0JBQWEsR0FBeUIsT0FBTyxDQUFDO1FBTXZELGVBQVUsR0FBWSxLQUFLLENBQUM7UUFDNUIsZUFBVSxHQUFXLEVBQUUs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OzhCQUtGLFlBQVk7c0JBQXZDLE1BQU07dUJBQUMsV0FBVztnQkFDUSxzQkFBc0I7c0JBQWhELE1BQU07dUJBQUMsVUFBVTtnQkFFRixZQUFZO3NCQUEzQixLQUFLO2dCQUNVLGVBQWU7c0JBQTlCLEtBQUs7Z0JBQ1UsV0FBVztzQkFBMUIsS0FBSztnQkFDVSxpQkFBaUI7c0JBQWhDLEtBQUs7Z0JBQ1UsZ0JBQWdCO3NCQUEvQixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsU0FBUztzQkFBeEIsS0FBSztnQkFDVSxTQUFTO3NCQUF4QixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsYUFBYTtzQkFBNUIsS0FBSztnQkFDVSxnQkFBZ0I7c0JBQS9CLEtBQUs7Z0JBQ1UsS0FBSztzQkFBcEIsS0FBSztnQkFDVSxlQUFlO3NCQUE5QixLQUFLO2dCQUNVLE1BQU07c0JBQXJCLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxLQUFLO3NCQUFwQixLQUFLO2dCQUNVLGtCQUFrQjtzQkFBakMsS0FBSztnQkFDVSxlQUFlO3NCQUE5QixLQUFLO2dCQUNVLGFBQWE7c0JBQTVCLEtBQUs7Z0JBQ1UsV0FBVztzQkFBMUIsS0FBSztnQkFFOEMsWUFBWTtzQkFBL0QsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO2dCQUNhLGVBQWU7c0JBQXJFLFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2dyYXZpdHktdGV4dC1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9ncmF2aXR5LXRleHQtZmllbGQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ncmF2aXR5LXRleHQtZmllbGQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBHcmF2aXR5VGV4dEZpZWxkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBAT3V0cHV0KCdjbGlja0ljb24nKSBwdWJsaWMgaWNvblJlc3BvbnNlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoJ3Jlc3BvbnNlJykgcHVibGljIHRleHRGaWVsZFZhbHVlUmVzcG9uc2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBhdXRvY29tcGxldGU6IHN0cmluZyA9ICdvZmYnO1xuICBASW5wdXQoKSBwdWJsaWMgY2xpY2tPbkljb25OYW1lOiBzdHJpbmcgfCBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBjdXJyZW50TGFuZzogc3RyaW5nID0gJ2VuJztcbiAgQElucHV0KCkgcHVibGljIGN1c3RvbVBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBjdXN0b21JbnB1dFZhbHVlOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBjeXByZXNzVGFnOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBpY29uQ29sb3I/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgQElucHV0KCkgcHVibGljIGljb25OYW1lczogc3RyaW5nW107XG4gIEBJbnB1dCgpIHB1YmxpYyBpY29uc1NpemVzOiAoJ3NtJyB8ICdtZCcgfCAnbGcnKVtdID0gWydzbSddO1xuICBASW5wdXQoKSBwdWJsaWMgaWNvblBsYWNlbWVudDogJ2xlZnQnIHwgJ3JpZ2h0JyA9IFwibGVmdFwiO1xuICBASW5wdXQoKSBwdWJsaWMgaW5wdXRDb250ZW50VHlwZTogJ2VtYWlsJyB8ICdudW1iZXInIHwgJ3Bhc3N3b3JkJyB8ICd0ZWwnIHwgJ3RleHQnID0gXCJ0ZXh0XCI7XG4gIEBJbnB1dCgpIHB1YmxpYyBsYWJlbDogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgcGxhY2Vob2xkZXJUeXBlOiAnZGVmYXVsdCcgfCAnZW1haWwnIHwgJ3VybCcgPSBcImRlZmF1bHRcIjtcbiAgQElucHV0KCkgcHVibGljIHByZWZpeDogc3RyaW5nID0gXCJcIjtcbiAgQElucHV0KCkgcHVibGljIHJlcXVpcmVkOiBib29sZWFuO1xuICBASW5wdXQoKSBwdWJsaWMgc3RhdGU6ICdyZWFkb25seScgfCAnZGlzYWJsZWQnIHwgJ2VuYWJsZWQnID0gXCJlbmFibGVkXCI7XG4gIEBJbnB1dCgpIHB1YmxpYyBzdXBwb3J0VGV4dENvbnRlbnQ6IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIHN1cHBvcnRUZXh0VHlwZTogJ25ldXRybycgfCAnbmVnYXRpdmUnIHwgJ3Bvc2l0aXZlJyA9IFwibmV1dHJvXCI7XG4gIEBJbnB1dCgpIHB1YmxpYyB0ZXh0RmllbGRUeXBlOiAnaW5wdXQnIHwgJ3RleHRhcmVhJyA9IFwiaW5wdXRcIjtcbiAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25zOiB7IG1heExlbmd0aD86IG51bWJlcjsgbWluTGVuZ3RoPzogbnVtYmVyIH07XG5cbiAgQFZpZXdDaGlsZCgnaW5wdXRFbGVtZW50Jywge3N0YXRpYzogZmFsc2V9KSBwcml2YXRlIGlucHV0RWxlbWVudDogYW55O1xuICBAVmlld0NoaWxkKCd0ZXh0QXJlYUVsZW1lbnQnLCB7c3RhdGljOiBmYWxzZX0pIHByaXZhdGUgdGV4dEFyZWFFbGVtZW50OiBhbnk7XG5cbiAgcHVibGljIGZvY3VzSW5wdXQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIGlucHV0VmFsdWU6IHN0cmluZyA9ICcnO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcGxhY2Vob2xkZXJzID0ge1xuICAgICdlbWFpbCc6ICd0ZXN0QGVtYWlsLmNvbScsXG4gICAgJ3VybCc6ICdodHRwczovL3d3dy50ZXN0LmNvbSdcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5wdXRWYWx1ZSA9IHRoaXMuY3VzdG9tSW5wdXRWYWx1ZSA/IHRoaXMuY3VzdG9tSW5wdXRWYWx1ZSA6ICcnO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzWydjdXN0b21JbnB1dFZhbHVlJ10pIHtcbiAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9IGNoYW5nZXNbJ2N1c3RvbUlucHV0VmFsdWUnXS5jdXJyZW50VmFsdWUgPyBjaGFuZ2VzWydjdXN0b21JbnB1dFZhbHVlJ10uY3VycmVudFZhbHVlIDogJyc7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldFBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuY3VzdG9tUGxhY2Vob2xkZXIgJiYgdGhpcy5jdXN0b21QbGFjZWhvbGRlciAhPSAnJykge1xuICAgICAgcmV0dXJuIHRoaXMuY3VzdG9tUGxhY2Vob2xkZXI7XG4gICAgfSBlbHNlIGlmICh0aGlzLnBsYWNlaG9sZGVyVHlwZSA9PSAnZGVmYXVsdCcpIHtcbiAgICAgIHJldHVybiB0aGlzLmxhYmVsO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5wbGFjZWhvbGRlcnNbdGhpcy5wbGFjZWhvbGRlclR5cGVdO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjbGVhcklucHV0KCk6IHZvaWQge1xuICAgIHRoaXMuY2hhbmdlSW5wdXRWYWx1ZSh0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBjaGFuZ2VJbnB1dFZhbHVlKGNsZWFySW5wdXQ6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xuICAgIGlmIChjbGVhcklucHV0KSB7XG4gICAgICB0aGlzLmlucHV0VmFsdWUgPSAnJztcbiAgICB9IGVsc2UgaWYgKHRoaXMudGV4dEZpZWxkVHlwZSA9PSAnaW5wdXQnKSB7XG4gICAgICB0aGlzLmlucHV0VmFsdWUgPSB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmlucHV0VmFsdWUgPSB0aGlzLnRleHRBcmVhRWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlucHV0VmFsdWUgPT0gJycpIHtcbiAgICAgIHRoaXMudGV4dEZpZWxkVmFsdWVSZXNwb25zZS5lbWl0KCcnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50ZXh0RmllbGRWYWx1ZVJlc3BvbnNlLmVtaXQodGhpcy5wcmVmaXggKyB0aGlzLmlucHV0VmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVJY29uQ2xpY2soaWNvbk5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLmljb25OYW1lcy5sZW5ndGggPT0gMSkge1xuICAgICAgdGhpcy5pY29uUmVzcG9uc2UuZW1pdCh0cnVlKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuY2xpY2tPbkljb25OYW1lID09IGljb25OYW1lKSB7XG4gICAgICB0aGlzLmljb25SZXNwb25zZS5lbWl0KHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRJY29uQ29sb3IoaWNvbkluZGV4OiBudW1iZXIpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBpZiAodHlwZW9mICh0aGlzLmljb25Db2xvcikgPT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiB0aGlzLmljb25Db2xvcjtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiAodGhpcy5pY29uQ29sb3IpID09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5pY29uQ29sb3JbaWNvbkluZGV4XTtcbiAgICB9XG4gIH1cbn1cbiIsIjxsYWJlbCBjbGFzcz1cImhyLWJvZHktdGV4dCBzbS1yZWd1bGFyIHt7c3RhdGV9fVwiIFtjbGFzcy5lbXB0eV09XCJpbnB1dFZhbHVlID09ICcnICYmICFmb2N1c0lucHV0XCJcbiAgICAgICBbY2xhc3MuZm9jdXNlZF09XCJmb2N1c0lucHV0XCIgW2NsYXNzLmZ1bGwtaW5wdXRdPVwiaW5wdXRWYWx1ZSAhPSAnJyAmJiAhZm9jdXNJbnB1dFwiICpuZ0lmPVwibGFiZWxcIj5cbiAge3tsYWJlbH19XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJyZXF1aXJlZFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjdXJyZW50TGFuZyA9PSAnZXMnXCI+LSBSZXF1ZXJpZG8gPHNwYW4gY2xhc3M9XCJ0ZXh0LW5lZ2F0aXZlXCI+Kjwvc3Bhbj48L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VycmVudExhbmcgPT0gJ2VuJ1wiPi0gUmVxdWlyZWQgPHNwYW4gY2xhc3M9XCJ0ZXh0LW5lZ2F0aXZlXCI+Kjwvc3Bhbj48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdGF0ZSA9PSAncmVhZG9ubHknXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1cnJlbnRMYW5nID09ICdlcydcIj4tIFPDs2xvIGxlY3R1cmE8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VycmVudExhbmcgPT0gJ2VuJ1wiPi0gUmVhZG9ubHk8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdGF0ZSA9PSAnZGlzYWJsZWQnXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1cnJlbnRMYW5nID09ICdlcydcIj4tIERlc2hhYmlsaXRhZG88L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VycmVudExhbmcgPT0gJ2VuJ1wiPi0gRGlzYWJsZWQ8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG48L2xhYmVsPlxuPGRpdiBjbGFzcz1cImdyYXZpdHktaW5wdXQtZmllbGQge3t0ZXh0RmllbGRUeXBlfX0ge3tzdGF0ZX19XCIgW2NsYXNzLmVtcHR5XT1cImlucHV0VmFsdWUgPT0gJycgJiYgIWZvY3VzSW5wdXRcIlxuICAgICBbY2xhc3MuZm9jdXNlZF09XCJmb2N1c0lucHV0XCIgW2NsYXNzLmZ1bGwtaW5wdXRdPVwiaW5wdXRWYWx1ZSAhPSAnJyAmJiAhZm9jdXNJbnB1dFwiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaWNvblBsYWNlbWVudCA9PSAnbGVmdCdcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaWNvbnNcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxzcGFuIGNsYXNzPVwiaHItbGFiZWwgbWQtcmVndWxhciBwcmVmaXhcIj57e3ByZWZpeH19PC9zcGFuPlxuICA8aW5wdXQgW2F0dHIuZGF0YS1jeV09XCJjeXByZXNzVGFnXCJcbiAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cInN0YXRlID09ICdkaXNhYmxlZCcgPyB0cnVlIDogbnVsbFwiXG4gICAgICAgICBbYXR0ci5yZWFkb25seV09XCJzdGF0ZSA9PSAncmVhZG9ubHknID8gdHJ1ZSA6IG51bGxcIlxuICAgICAgICAgW2F1dG9jb21wbGV0ZV09XCJhdXRvY29tcGxldGVcIlxuICAgICAgICAgW21heExlbmd0aF09XCJ2YWxpZGF0aW9ucz8ubWF4TGVuZ3RoID8gdmFsaWRhdGlvbnM/Lm1heExlbmd0aCA6IDEwMFwiXG4gICAgICAgICBbbWluTGVuZ3RoXT1cInZhbGlkYXRpb25zPy5taW5MZW5ndGggPyB2YWxpZGF0aW9ucz8ubWluTGVuZ3RoIDogMFwiXG4gICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZ2V0UGxhY2Vob2xkZXIoKVwiXG4gICAgICAgICBbdHlwZV09XCJpbnB1dENvbnRlbnRUeXBlXCJcbiAgICAgICAgIFt2YWx1ZV09XCJpbnB1dFZhbHVlXCJcblxuICAgICAgICAgKGJsdXIpPVwiZm9jdXNJbnB1dCA9IGZhbHNlXCJcbiAgICAgICAgIChjaGFuZ2UpPVwiY2hhbmdlSW5wdXRWYWx1ZSgpXCJcbiAgICAgICAgIChmb2N1cyk9XCJmb2N1c0lucHV0ID0gdHJ1ZVwiXG4gICAgICAgICAoa2V5dXApPVwiY2hhbmdlSW5wdXRWYWx1ZSgpXCJcblxuICAgICAgICAgY2xhc3M9XCJoci1sYWJlbCBtZC1yZWd1bGFyXCJcblxuICAgICAgICAgI2lucHV0RWxlbWVudFxuXG4gICAgICAgICAqbmdJZj1cInRleHRGaWVsZFR5cGUgPT0gJ2lucHV0J1wiPlxuICA8dGV4dGFyZWEgW2F0dHIuZGF0YS1jeV09XCJjeXByZXNzVGFnXCJcbiAgICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cInN0YXRlID09ICdkaXNhYmxlZCcgPyB0cnVlIDogbnVsbFwiXG4gICAgICAgICAgICBbYXR0ci5yZWFkb25seV09XCJzdGF0ZSA9PSAncmVhZG9ubHknID8gdHJ1ZSA6IG51bGxcIlxuICAgICAgICAgICAgW21heExlbmd0aF09XCJ2YWxpZGF0aW9ucz8ubWF4TGVuZ3RoID8gdmFsaWRhdGlvbnM/Lm1heExlbmd0aCA6IDIwMFwiXG4gICAgICAgICAgICBbbWluTGVuZ3RoXT1cInZhbGlkYXRpb25zPy5taW5MZW5ndGggPyB2YWxpZGF0aW9ucz8ubWluTGVuZ3RoIDogMFwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZ2V0UGxhY2Vob2xkZXIoKVwiXG4gICAgICAgICAgICBbdmFsdWVdPVwiaW5wdXRWYWx1ZVwiXG5cbiAgICAgICAgICAgIChibHVyKT1cImZvY3VzSW5wdXQgPSBmYWxzZVwiXG4gICAgICAgICAgICAoY2hhbmdlKT1cImNoYW5nZUlucHV0VmFsdWUoKVwiXG4gICAgICAgICAgICAoZm9jdXMpPVwiZm9jdXNJbnB1dCA9IHRydWVcIlxuICAgICAgICAgICAgKGtleXVwKT1cImNoYW5nZUlucHV0VmFsdWUoKVwiXG5cbiAgICAgICAgICAgIGNsYXNzPVwiaHItbGFiZWwgbWQtcmVndWxhclwiXG4gICAgICAgICAgICByb3dzPVwiM1wiXG5cbiAgICAgICAgICAgICN0ZXh0QXJlYUVsZW1lbnRcblxuICAgICAgICAgICAgKm5nSWY9XCJ0ZXh0RmllbGRUeXBlID09ICd0ZXh0YXJlYSdcIj48L3RleHRhcmVhPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaWNvblBsYWNlbWVudCA9PSAncmlnaHQnXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImljb25zXCI+PC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG48cCBjbGFzcz1cImhyLWJvZHktdGV4dCBzbS1yZWd1bGFyIHN1cHBvcnQtdGV4dCB0ZXh0LXt7c3VwcG9ydFRleHRUeXBlfX1cIiAqbmdJZj1cInN1cHBvcnRUZXh0Q29udGVudFwiPlxuICB7e3N1cHBvcnRUZXh0Q29udGVudH19XG48L3A+XG5cbjxuZy10ZW1wbGF0ZSAjaWNvbnM+XG4gIDxncmF2aXR5LWljb24gKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgaGFuZGxlSWNvbkNsaWNrKG5hbWUpXCIgY2xhc3M9XCJwbGFjZW1lbnQte3tpY29uUGxhY2VtZW50fX1cIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5wb2ludGVyXT1cIiEhY2xpY2tPbkljb25OYW1lXCIgW2N1c3RvbUljb25Db2xvclZhcmlhYmxlXT1cImdldEljb25Db2xvcihpKVwiXG4gICAgICAgICAgICAgICAgW2hvdmVySWNvbl09XCIhIWNsaWNrT25JY29uTmFtZVwiIFtpY29uTmFtZV09XCJuYW1lXCIgKm5nRm9yPVwibGV0IG5hbWUgb2YgaWNvbk5hbWVzOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICAgICAgICBbc2l6ZV09XCJpY29uc1NpemVzW2ldXCI+PC9ncmF2aXR5LWljb24+XG48L25nLXRlbXBsYXRlPlxuIl19
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3Jhdml0eS10ZXh0LWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dyYXZpdHktZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvbXBvbmVudHMvZ3Jhdml0eS10ZXh0LWZpZWxkL2dyYXZpdHktdGV4dC1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncmF2aXR5LWRlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2dyYXZpdHktdGV4dC1maWVsZC9ncmF2aXR5LXRleHQtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7OztBQU9sSCxNQUFNLE9BQU8seUJBQXlCO0lBTHRDO1FBTThCLGlCQUFZLEdBQTBCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDMUQsMkJBQXNCLEdBQXlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFN0UsaUJBQVksR0FBVyxLQUFLLENBQUM7UUFDN0Isb0JBQWUsR0FBcUIsS0FBSyxDQUFDO1FBQzFDLGdCQUFXLEdBQVcsSUFBSSxDQUFDO1FBTTNCLGVBQVUsR0FBMkIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QyxrQkFBYSxHQUFxQixNQUFNLENBQUM7UUFDekMscUJBQWdCLEdBQXFELE1BQU0sQ0FBQztRQUU1RSxvQkFBZSxHQUFnQyxTQUFTLENBQUM7UUFDekQsV0FBTSxHQUFXLEVBQUUsQ0FBQztRQUVwQixVQUFLLEdBQXdDLFNBQVMsQ0FBQztRQUV2RCxvQkFBZSxHQUF1QyxRQUFRLENBQUM7UUFDL0Qsa0JBQWEsR0FBeUIsT0FBTyxDQUFDO1FBTXZELGVBQVUsR0FBWSxLQUFLLENBQUM7UUFDNUIsZUFBVSxHQUFXLEVBQUUs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OzhCQUtGLFlBQVk7c0JBQXZDLE1BQU07dUJBQUMsV0FBVztnQkFDUSxzQkFBc0I7c0JBQWhELE1BQU07dUJBQUMsVUFBVTtnQkFFRixZQUFZO3NCQUEzQixLQUFLO2dCQUNVLGVBQWU7c0JBQTlCLEtBQUs7Z0JBQ1UsV0FBVztzQkFBMUIsS0FBSztnQkFDVSxpQkFBaUI7c0JBQWhDLEtBQUs7Z0JBQ1UsZ0JBQWdCO3NCQUEvQixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsU0FBUztzQkFBeEIsS0FBSztnQkFDVSxTQUFTO3NCQUF4QixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsYUFBYTtzQkFBNUIsS0FBSztnQkFDVSxnQkFBZ0I7c0JBQS9CLEtBQUs7Z0JBQ1UsS0FBSztzQkFBcEIsS0FBSztnQkFDVSxlQUFlO3NCQUE5QixLQUFLO2dCQUNVLE1BQU07c0JBQXJCLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxLQUFLO3NCQUFwQixLQUFLO2dCQUNVLGtCQUFrQjtzQkFBakMsS0FBSztnQkFDVSxlQUFlO3NCQUE5QixLQUFLO2dCQUNVLGFBQWE7c0JBQTVCLEtBQUs7Z0JBQ1UsV0FBVztzQkFBMUIsS0FBSztnQkFFOEMsWUFBWTtzQkFBL0QsU0FBUzt1QkFBQyxjQUFjLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO2dCQUNhLGVBQWU7c0JBQXJFLFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2dyYXZpdHktdGV4dC1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9ncmF2aXR5LXRleHQtZmllbGQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ncmF2aXR5LXRleHQtZmllbGQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBHcmF2aXR5VGV4dEZpZWxkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBAT3V0cHV0KCdjbGlja0ljb24nKSBwdWJsaWMgaWNvblJlc3BvbnNlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoJ3Jlc3BvbnNlJykgcHVibGljIHRleHRGaWVsZFZhbHVlUmVzcG9uc2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBhdXRvY29tcGxldGU6IHN0cmluZyA9ICdvZmYnO1xuICBASW5wdXQoKSBwdWJsaWMgY2xpY2tPbkljb25OYW1lOiBzdHJpbmcgfCBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBjdXJyZW50TGFuZzogc3RyaW5nID0gJ2VuJztcbiAgQElucHV0KCkgcHVibGljIGN1c3RvbVBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBjdXN0b21JbnB1dFZhbHVlOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBjeXByZXNzVGFnOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBpY29uQ29sb3I/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgQElucHV0KCkgcHVibGljIGljb25OYW1lczogc3RyaW5nW107XG4gIEBJbnB1dCgpIHB1YmxpYyBpY29uc1NpemVzOiAoJ3NtJyB8ICdtZCcgfCAnbGcnKVtdID0gWydzbSddO1xuICBASW5wdXQoKSBwdWJsaWMgaWNvblBsYWNlbWVudDogJ2xlZnQnIHwgJ3JpZ2h0JyA9IFwibGVmdFwiO1xuICBASW5wdXQoKSBwdWJsaWMgaW5wdXRDb250ZW50VHlwZTogJ2VtYWlsJyB8ICdudW1iZXInIHwgJ3Bhc3N3b3JkJyB8ICd0ZWwnIHwgJ3RleHQnID0gXCJ0ZXh0XCI7XG4gIEBJbnB1dCgpIHB1YmxpYyBsYWJlbDogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgcGxhY2Vob2xkZXJUeXBlOiAnZGVmYXVsdCcgfCAnZW1haWwnIHwgJ3VybCcgPSBcImRlZmF1bHRcIjtcbiAgQElucHV0KCkgcHVibGljIHByZWZpeDogc3RyaW5nID0gXCJcIjtcbiAgQElucHV0KCkgcHVibGljIHJlcXVpcmVkOiBib29sZWFuO1xuICBASW5wdXQoKSBwdWJsaWMgc3RhdGU6ICdyZWFkb25seScgfCAnZGlzYWJsZWQnIHwgJ2VuYWJsZWQnID0gXCJlbmFibGVkXCI7XG4gIEBJbnB1dCgpIHB1YmxpYyBzdXBwb3J0VGV4dENvbnRlbnQ6IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIHN1cHBvcnRUZXh0VHlwZTogJ25ldXRybycgfCAnbmVnYXRpdmUnIHwgJ3Bvc2l0aXZlJyA9IFwibmV1dHJvXCI7XG4gIEBJbnB1dCgpIHB1YmxpYyB0ZXh0RmllbGRUeXBlOiAnaW5wdXQnIHwgJ3RleHRhcmVhJyA9IFwiaW5wdXRcIjtcbiAgQElucHV0KCkgcHVibGljIHZhbGlkYXRpb25zOiB7IG1heExlbmd0aD86IG51bWJlcjsgbWluTGVuZ3RoPzogbnVtYmVyIH07XG5cbiAgQFZpZXdDaGlsZCgnaW5wdXRFbGVtZW50Jywge3N0YXRpYzogZmFsc2V9KSBwcml2YXRlIGlucHV0RWxlbWVudDogYW55O1xuICBAVmlld0NoaWxkKCd0ZXh0QXJlYUVsZW1lbnQnLCB7c3RhdGljOiBmYWxzZX0pIHByaXZhdGUgdGV4dEFyZWFFbGVtZW50OiBhbnk7XG5cbiAgcHVibGljIGZvY3VzSW5wdXQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIGlucHV0VmFsdWU6IHN0cmluZyA9ICcnO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcGxhY2Vob2xkZXJzID0ge1xuICAgICdlbWFpbCc6ICd0ZXN0QGVtYWlsLmNvbScsXG4gICAgJ3VybCc6ICdodHRwczovL3d3dy50ZXN0LmNvbSdcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5wdXRWYWx1ZSA9IHRoaXMuY3VzdG9tSW5wdXRWYWx1ZSA/IHRoaXMuY3VzdG9tSW5wdXRWYWx1ZSA6ICcnO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzWydjdXN0b21JbnB1dFZhbHVlJ10pIHtcbiAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9IGNoYW5nZXNbJ2N1c3RvbUlucHV0VmFsdWUnXS5jdXJyZW50VmFsdWUgPyBjaGFuZ2VzWydjdXN0b21JbnB1dFZhbHVlJ10uY3VycmVudFZhbHVlIDogJyc7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldFBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuY3VzdG9tUGxhY2Vob2xkZXIgJiYgdGhpcy5jdXN0b21QbGFjZWhvbGRlciAhPSAnJykge1xuICAgICAgcmV0dXJuIHRoaXMuY3VzdG9tUGxhY2Vob2xkZXI7XG4gICAgfSBlbHNlIGlmICh0aGlzLnBsYWNlaG9sZGVyVHlwZSA9PSAnZGVmYXVsdCcpIHtcbiAgICAgIHJldHVybiB0aGlzLmxhYmVsO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5wbGFjZWhvbGRlcnNbdGhpcy5wbGFjZWhvbGRlclR5cGVdO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjbGVhcklucHV0KCk6IHZvaWQge1xuICAgIHRoaXMuY2hhbmdlSW5wdXRWYWx1ZSh0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBjaGFuZ2VJbnB1dFZhbHVlKGNsZWFySW5wdXQ6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xuICAgIGlmIChjbGVhcklucHV0KSB7XG4gICAgICB0aGlzLmlucHV0VmFsdWUgPSAnJztcbiAgICB9IGVsc2UgaWYgKHRoaXMudGV4dEZpZWxkVHlwZSA9PSAnaW5wdXQnKSB7XG4gICAgICB0aGlzLmlucHV0VmFsdWUgPSB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmlucHV0VmFsdWUgPSB0aGlzLnRleHRBcmVhRWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlucHV0VmFsdWUgPT0gJycpIHtcbiAgICAgIHRoaXMudGV4dEZpZWxkVmFsdWVSZXNwb25zZS5lbWl0KCcnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50ZXh0RmllbGRWYWx1ZVJlc3BvbnNlLmVtaXQodGhpcy5wcmVmaXggKyB0aGlzLmlucHV0VmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVJY29uQ2xpY2soaWNvbk5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLmljb25OYW1lcy5sZW5ndGggPT0gMSkge1xuICAgICAgdGhpcy5pY29uUmVzcG9uc2UuZW1pdCh0cnVlKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuY2xpY2tPbkljb25OYW1lID09IGljb25OYW1lKSB7XG4gICAgICB0aGlzLmljb25SZXNwb25zZS5lbWl0KHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRJY29uQ29sb3IoaWNvbkluZGV4OiBudW1iZXIpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBpZiAodHlwZW9mICh0aGlzLmljb25Db2xvcikgPT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiB0aGlzLmljb25Db2xvcjtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiAodGhpcy5pY29uQ29sb3IpID09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5pY29uQ29sb3JbaWNvbkluZGV4XTtcbiAgICB9XG4gIH1cbn1cbiIsIjxsYWJlbCBjbGFzcz1cImhyLWJvZHktdGV4dCBzbS1yZWd1bGFyIHt7c3RhdGV9fVwiIFtjbGFzcy5lbXB0eV09XCJpbnB1dFZhbHVlID09ICcnICYmICFmb2N1c0lucHV0XCJcbiAgICAgICBbY2xhc3MuZm9jdXNlZF09XCJmb2N1c0lucHV0XCIgW2NsYXNzLmZ1bGwtaW5wdXRdPVwiaW5wdXRWYWx1ZSAhPSAnJyAmJiAhZm9jdXNJbnB1dFwiICpuZ0lmPVwibGFiZWxcIj5cbiAge3tsYWJlbH19XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJyZXF1aXJlZFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjdXJyZW50TGFuZyA9PSAnZXMnXCI+LSBSZXF1ZXJpZG8gPHNwYW4gY2xhc3M9XCJ0ZXh0LW5lZ2F0aXZlXCI+Kjwvc3Bhbj48L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VycmVudExhbmcgPT0gJ2VuJ1wiPi0gUmVxdWlyZWQgPHNwYW4gY2xhc3M9XCJ0ZXh0LW5lZ2F0aXZlXCI+Kjwvc3Bhbj48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdGF0ZSA9PSAncmVhZG9ubHknXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1cnJlbnRMYW5nID09ICdlcydcIj4tIFPDs2xvIGxlY3R1cmE8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VycmVudExhbmcgPT0gJ2VuJ1wiPi0gUmVhZG9ubHk8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdGF0ZSA9PSAnZGlzYWJsZWQnXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImN1cnJlbnRMYW5nID09ICdlcydcIj4tIERlc2hhYmlsaXRhZG88L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3VycmVudExhbmcgPT0gJ2VuJ1wiPi0gRGlzYWJsZWQ8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG48L2xhYmVsPlxuPGRpdiBjbGFzcz1cImdyYXZpdHktaW5wdXQtZmllbGQge3t0ZXh0RmllbGRUeXBlfX0ge3tzdGF0ZX19XCIgW2NsYXNzLmVtcHR5XT1cImlucHV0VmFsdWUgPT0gJycgJiYgIWZvY3VzSW5wdXRcIlxuICAgICBbY2xhc3MuZm9jdXNlZF09XCJmb2N1c0lucHV0XCIgW2NsYXNzLmZ1bGwtaW5wdXRdPVwiaW5wdXRWYWx1ZSAhPSAnJyAmJiAhZm9jdXNJbnB1dFwiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaWNvblBsYWNlbWVudCA9PSAnbGVmdCdcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaWNvbnNcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxzcGFuIGNsYXNzPVwiaHItbGFiZWwgbWQtcmVndWxhciBwcmVmaXhcIj57e3ByZWZpeH19PC9zcGFuPlxuICA8aW5wdXQgW2F0dHIuZGF0YS1jeV09XCJjeXByZXNzVGFnXCJcbiAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cInN0YXRlID09ICdkaXNhYmxlZCcgPyB0cnVlIDogbnVsbFwiXG4gICAgICAgICBbYXR0ci5yZWFkb25seV09XCJzdGF0ZSA9PSAncmVhZG9ubHknID8gdHJ1ZSA6IG51bGxcIlxuICAgICAgICAgW2F1dG9jb21wbGV0ZV09XCJhdXRvY29tcGxldGVcIlxuICAgICAgICAgW21heExlbmd0aF09XCJ2YWxpZGF0aW9ucz8ubWF4TGVuZ3RoID8gdmFsaWRhdGlvbnM/Lm1heExlbmd0aCA6IDEwMFwiXG4gICAgICAgICBbbWluTGVuZ3RoXT1cInZhbGlkYXRpb25zPy5taW5MZW5ndGggPyB2YWxpZGF0aW9ucz8ubWluTGVuZ3RoIDogMFwiXG4gICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZ2V0UGxhY2Vob2xkZXIoKVwiXG4gICAgICAgICBbdHlwZV09XCJpbnB1dENvbnRlbnRUeXBlXCJcbiAgICAgICAgIFt2YWx1ZV09XCJpbnB1dFZhbHVlXCJcblxuICAgICAgICAgKGJsdXIpPVwiZm9jdXNJbnB1dCA9IGZhbHNlXCJcbiAgICAgICAgIChjaGFuZ2UpPVwiY2hhbmdlSW5wdXRWYWx1ZSgpXCJcbiAgICAgICAgIChmb2N1cyk9XCJmb2N1c0lucHV0ID0gdHJ1ZVwiXG4gICAgICAgICAoa2V5dXApPVwiY2hhbmdlSW5wdXRWYWx1ZSgpXCJcblxuICAgICAgICAgY2xhc3M9XCJoci1sYWJlbCBtZC1yZWd1bGFyXCJcblxuICAgICAgICAgI2lucHV0RWxlbWVudFxuXG4gICAgICAgICAqbmdJZj1cInRleHRGaWVsZFR5cGUgPT0gJ2lucHV0J1wiPlxuICA8dGV4dGFyZWEgW2F0dHIuZGF0YS1jeV09XCJjeXByZXNzVGFnXCJcbiAgICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cInN0YXRlID09ICdkaXNhYmxlZCcgPyB0cnVlIDogbnVsbFwiXG4gICAgICAgICAgICBbYXR0ci5yZWFkb25seV09XCJzdGF0ZSA9PSAncmVhZG9ubHknID8gdHJ1ZSA6IG51bGxcIlxuICAgICAgICAgICAgW21heExlbmd0aF09XCJ2YWxpZGF0aW9ucz8ubWF4TGVuZ3RoID8gdmFsaWRhdGlvbnM/Lm1heExlbmd0aCA6IDIwMFwiXG4gICAgICAgICAgICBbbWluTGVuZ3RoXT1cInZhbGlkYXRpb25zPy5taW5MZW5ndGggPyB2YWxpZGF0aW9ucz8ubWluTGVuZ3RoIDogMFwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZ2V0UGxhY2Vob2xkZXIoKVwiXG4gICAgICAgICAgICBbdmFsdWVdPVwiaW5wdXRWYWx1ZVwiXG5cbiAgICAgICAgICAgIChibHVyKT1cImZvY3VzSW5wdXQgPSBmYWxzZVwiXG4gICAgICAgICAgICAoY2hhbmdlKT1cImNoYW5nZUlucHV0VmFsdWUoKVwiXG4gICAgICAgICAgICAoZm9jdXMpPVwiZm9jdXNJbnB1dCA9IHRydWVcIlxuICAgICAgICAgICAgKGtleXVwKT1cImNoYW5nZUlucHV0VmFsdWUoKVwiXG5cbiAgICAgICAgICAgIGNsYXNzPVwiaHItbGFiZWwgbWQtcmVndWxhclwiXG4gICAgICAgICAgICByb3dzPVwiM1wiXG5cbiAgICAgICAgICAgICN0ZXh0QXJlYUVsZW1lbnRcblxuICAgICAgICAgICAgKm5nSWY9XCJ0ZXh0RmllbGRUeXBlID09ICd0ZXh0YXJlYSdcIj48L3RleHRhcmVhPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaWNvblBsYWNlbWVudCA9PSAncmlnaHQnXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImljb25zXCI+PC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+XG48cCBjbGFzcz1cImhyLWJvZHktdGV4dCBzbS1yZWd1bGFyIHN1cHBvcnQtdGV4dCB0ZXh0LXt7c3VwcG9ydFRleHRUeXBlfX1cIiAqbmdJZj1cInN1cHBvcnRUZXh0Q29udGVudFwiPlxuICB7e3N1cHBvcnRUZXh0Q29udGVudH19XG48L3A+XG5cbjxuZy10ZW1wbGF0ZSAjaWNvbnM+XG4gIDxncmF2aXR5LWljb24gKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgaGFuZGxlSWNvbkNsaWNrKG5hbWUpXCIgY2xhc3M9XCJwbGFjZW1lbnQte3tpY29uUGxhY2VtZW50fX1cIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5wb2ludGVyXT1cIiEhY2xpY2tPbkljb25OYW1lXCIgW2N1c3RvbUljb25Db2xvclZhcmlhYmxlXT1cImdldEljb25Db2xvcihpKVwiXG4gICAgICAgICAgICAgICAgW2hvdmVySWNvbl09XCIhIWNsaWNrT25JY29uTmFtZVwiIFtpY29uTmFtZV09XCJuYW1lXCIgKm5nRm9yPVwibGV0IG5hbWUgb2YgaWNvbk5hbWVzOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgICAgICAgICBbc2l6ZV09XCJpY29uc1NpemVzW2kgJSBpY29uc1NpemVzLmxlbmd0aF1cIj48L2dyYXZpdHktaWNvbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=