@universis/ngx-tables 0.8.5 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/bundles/universis-ngx-tables.umd.js +5816 -3756
  2. package/bundles/universis-ngx-tables.umd.js.map +1 -1
  3. package/bundles/universis-ngx-tables.umd.min.js +1 -1
  4. package/bundles/universis-ngx-tables.umd.min.js.map +1 -1
  5. package/esm2015/lib/actions/table.actions.js +48 -7
  6. package/esm2015/lib/advanced-aggregator.js +5 -1
  7. package/esm2015/lib/components/add-items/add-items.component.js +93 -26
  8. package/esm2015/lib/components/advanced-aggregator/advanced-aggregator.component.js +75 -5
  9. package/esm2015/lib/components/advanced-aggregator-list/advanced-aggregator-list.component.js +39 -12
  10. package/esm2015/lib/components/advanced-list/advanced-list.component.js +105 -33
  11. package/esm2015/lib/components/advanced-row-action/advanced-row-action.component.js +97 -16
  12. package/esm2015/lib/components/advanced-search-form/advanced-search-form.component.js +87 -16
  13. package/esm2015/lib/components/advanced-select/advanced-select.component.js +33 -1
  14. package/esm2015/lib/components/advanced-select/advanced-select.service.js +20 -3
  15. package/esm2015/lib/components/advanced-table/advanced-filter-value-provider.service.js +23 -2
  16. package/esm2015/lib/components/advanced-table/advanced-table-resolvers.js +37 -9
  17. package/esm2015/lib/components/advanced-table/advanced-table-search-base.js +22 -1
  18. package/esm2015/lib/components/advanced-table/advanced-table-search.component.js +223 -31
  19. package/esm2015/lib/components/advanced-table/advanced-table-settings.component.js +90 -8
  20. package/esm2015/lib/components/advanced-table/advanced-table.component.js +576 -126
  21. package/esm2015/lib/components/advanced-table/advanced-table.formatters.interface.js +36 -1
  22. package/esm2015/lib/components/advanced-table/advanced-table.formatters.js +257 -44
  23. package/esm2015/lib/components/advanced-table/advanced-table.interfaces.js +4 -0
  24. package/esm2015/lib/components/advanced-table-modal/advanced-table-modal-base.component.js +211 -55
  25. package/esm2015/lib/components/column-selector/column-selector.component.js +167 -73
  26. package/esm2015/lib/components/column-selector/column-selector.service.js +19 -2
  27. package/esm2015/lib/components/table-simple-header/table-simple-header.component.js +31 -7
  28. package/esm2015/lib/directives/advance-search-state.directive.js +49 -10
  29. package/esm2015/lib/directives/advance-table-state.directive.js +26 -3
  30. package/esm2015/lib/directives/advanced-search-router-state.directive.js +35 -8
  31. package/esm2015/lib/directives/advanced-table-editor.directive.js +43 -13
  32. package/esm2015/lib/directives/btnexp.directive.js +85 -42
  33. package/esm2015/lib/i18n/tables.el.js +6 -3
  34. package/esm2015/lib/i18n/tables.en.js +6 -3
  35. package/esm2015/lib/pipes/advanced-aggregator.pipe.js +12 -8
  36. package/esm2015/lib/pipes/advansed-aggregator-list-title-parse.pipe.js +19 -7
  37. package/esm2015/lib/reducers/index.js +32 -1
  38. package/esm2015/lib/services/advanced-aggregator/advanced-aggregator.service.js +37 -15
  39. package/esm2015/lib/tables.activated-table.service.js +41 -6
  40. package/esm2015/lib/tables.module.js +18 -4
  41. package/esm2015/public_api.js +33 -29
  42. package/esm2015/universis-ngx-tables.js +6 -2
  43. package/esm5/lib/actions/table.actions.js +37 -7
  44. package/esm5/lib/advanced-aggregator.js +5 -1
  45. package/esm5/lib/components/add-items/add-items.component.js +124 -34
  46. package/esm5/lib/components/advanced-aggregator/advanced-aggregator.component.js +111 -15
  47. package/esm5/lib/components/advanced-aggregator-list/advanced-aggregator-list.component.js +54 -11
  48. package/esm5/lib/components/advanced-list/advanced-list.component.js +125 -37
  49. package/esm5/lib/components/advanced-row-action/advanced-row-action.component.js +124 -24
  50. package/esm5/lib/components/advanced-search-form/advanced-search-form.component.js +109 -22
  51. package/esm5/lib/components/advanced-select/advanced-select.component.js +36 -4
  52. package/esm5/lib/components/advanced-select/advanced-select.service.js +22 -4
  53. package/esm5/lib/components/advanced-table/advanced-filter-value-provider.service.js +37 -5
  54. package/esm5/lib/components/advanced-table/advanced-table-resolvers.js +43 -11
  55. package/esm5/lib/components/advanced-table/advanced-table-search-base.js +29 -4
  56. package/esm5/lib/components/advanced-table/advanced-table-search.component.js +323 -58
  57. package/esm5/lib/components/advanced-table/advanced-table-settings.component.js +112 -15
  58. package/esm5/lib/components/advanced-table/advanced-table.component.js +761 -164
  59. package/esm5/lib/components/advanced-table/advanced-table.formatters.interface.js +36 -1
  60. package/esm5/lib/components/advanced-table/advanced-table.formatters.js +392 -57
  61. package/esm5/lib/components/advanced-table/advanced-table.interfaces.js +4 -0
  62. package/esm5/lib/components/advanced-table-modal/advanced-table-modal-base.component.js +311 -70
  63. package/esm5/lib/components/column-selector/column-selector.component.js +264 -145
  64. package/esm5/lib/components/column-selector/column-selector.service.js +21 -3
  65. package/esm5/lib/components/table-simple-header/table-simple-header.component.js +44 -10
  66. package/esm5/lib/directives/advance-search-state.directive.js +68 -15
  67. package/esm5/lib/directives/advance-table-state.directive.js +26 -4
  68. package/esm5/lib/directives/advanced-search-router-state.directive.js +39 -12
  69. package/esm5/lib/directives/advanced-table-editor.directive.js +66 -18
  70. package/esm5/lib/directives/btnexp.directive.js +171 -39
  71. package/esm5/lib/i18n/tables.el.js +6 -3
  72. package/esm5/lib/i18n/tables.en.js +6 -3
  73. package/esm5/lib/pipes/advanced-aggregator.pipe.js +32 -6
  74. package/esm5/lib/pipes/advansed-aggregator-list-title-parse.pipe.js +34 -8
  75. package/esm5/lib/reducers/index.js +32 -1
  76. package/esm5/lib/services/advanced-aggregator/advanced-aggregator.service.js +75 -13
  77. package/esm5/lib/tables.activated-table.service.js +39 -8
  78. package/esm5/lib/tables.module.js +19 -5
  79. package/esm5/public_api.js +33 -29
  80. package/esm5/universis-ngx-tables.js +6 -2
  81. package/fesm2015/universis-ngx-tables.js +1870 -569
  82. package/fesm2015/universis-ngx-tables.js.map +1 -1
  83. package/fesm5/universis-ngx-tables.js +2902 -802
  84. package/fesm5/universis-ngx-tables.js.map +1 -1
  85. package/lib/components/add-items/add-items.component.d.ts +9 -16
  86. package/lib/components/advanced-aggregator/advanced-aggregator.component.d.ts +5 -5
  87. package/lib/components/advanced-list/advanced-list.component.d.ts +11 -11
  88. package/lib/components/advanced-row-action/advanced-row-action.component.d.ts +11 -16
  89. package/lib/components/advanced-search-form/advanced-search-form.component.d.ts +3 -3
  90. package/lib/components/advanced-table/advanced-table-search.component.d.ts +5 -5
  91. package/lib/components/advanced-table/advanced-table-settings.component.d.ts +5 -6
  92. package/lib/components/advanced-table/advanced-table.component.d.ts +14 -15
  93. package/lib/components/advanced-table/advanced-table.formatters.d.ts +11 -11
  94. package/lib/components/advanced-table-modal/advanced-table-modal-base.component.d.ts +11 -11
  95. package/lib/components/column-selector/column-selector.component.d.ts +4 -4
  96. package/lib/components/table-simple-header/table-simple-header.component.d.ts +3 -3
  97. package/lib/directives/advance-search-state.directive.d.ts +3 -3
  98. package/lib/directives/advance-table-state.directive.d.ts +1 -1
  99. package/lib/directives/advanced-search-router-state.directive.d.ts +6 -6
  100. package/lib/directives/btnexp.directive.d.ts +9 -9
  101. package/lib/pipes/advanced-aggregator.pipe.d.ts +3 -3
  102. package/lib/pipes/advansed-aggregator-list-title-parse.pipe.d.ts +5 -5
  103. package/lib/services/advanced-aggregator/advanced-aggregator.service.d.ts +8 -8
  104. package/lib/tables.activated-table.service.d.ts +6 -6
  105. package/package.json +10 -4
  106. package/universis-ngx-tables.metadata.json +1 -1
@@ -1,50 +1,66 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
4
+ */
1
5
  import * as tslib_1 from "tslib";
2
6
  import { Component, Input, EventEmitter, ViewChild, ElementRef, ViewEncapsulation, Output } from '@angular/core';
3
7
  import { TranslateService } from '@ngx-translate/core';
4
8
  import { ActivatedRoute, Router } from '@angular/router';
5
- import { AngularDataContext } from '@themost/angular';
6
9
  import 'rxjs/add/observable/combineLatest';
7
- import { ErrorService, ModalService } from '@universis/common';
10
+ import { ModalService } from '@universis/common';
8
11
  import { RouterModalOkCancel } from '@universis/common/routing';
9
- import { AppEventService } from '@universis/common';
10
12
  import { Observable } from 'rxjs';
11
13
  import { AdvancedFormComponent } from '@universis/forms';
12
14
  import { ProgressbarComponent } from 'ngx-bootstrap/progressbar';
13
15
  var AdvancedRowActionComponent = /** @class */ (function (_super) {
14
16
  tslib_1.__extends(AdvancedRowActionComponent, _super);
15
- function AdvancedRowActionComponent(router, activatedRoute, _translateService, _context, _errorService, _modalService, _appEvent) {
17
+ function AdvancedRowActionComponent(router, activatedRoute, _translateService, _modalService) {
16
18
  var _this = _super.call(this, router, activatedRoute) || this;
17
19
  _this._translateService = _translateService;
18
- _this._context = _context;
19
- _this._errorService = _errorService;
20
20
  _this._modalService = _modalService;
21
- _this._appEvent = _appEvent;
22
21
  _this.modalIcon = 'fas fa-project-diagram';
23
22
  _this.progressType = 'indigo';
24
23
  _this.errorMessage = 'Tables.Actions.CompletedWithErrors';
25
24
  _this.loading = false;
26
25
  _this.refresh = new EventEmitter();
27
26
  // set modal size
27
+ // set modal size
28
28
  _this.modalClass = 'modal-lg';
29
29
  // set modal title
30
+ // set modal title
30
31
  _this.modalTitle = 'Tables.Actions.Label';
31
32
  // disable ok button
33
+ // disable ok button
32
34
  _this.okButtonDisabled = false;
33
35
  // set button text
36
+ // set button text
34
37
  _this.okButtonText = 'Tables.Actions.Start';
35
38
  return _this;
36
39
  }
37
40
  Object.defineProperty(AdvancedRowActionComponent.prototype, "form", {
38
- get: function () {
41
+ get: /**
42
+ * @return {?}
43
+ */
44
+ function () {
39
45
  return this.formComponent;
40
46
  },
41
47
  enumerable: true,
42
48
  configurable: true
43
49
  });
44
- AdvancedRowActionComponent.prototype.ngOnInit = function () {
50
+ /**
51
+ * @return {?}
52
+ */
53
+ AdvancedRowActionComponent.prototype.ngOnInit = /**
54
+ * @return {?}
55
+ */
56
+ function () {
45
57
  var _this = this;
46
58
  this.refreshSubscription = this.refresh.subscribe(function (value) {
59
+ if (_this.progressComponent == null) {
60
+ return;
61
+ }
47
62
  if (value && value.progress) {
63
+ /** @type {?} */
48
64
  var progress = 0;
49
65
  if (value.progress < 0) {
50
66
  progress = 0;
@@ -60,18 +76,30 @@ var AdvancedRowActionComponent = /** @class */ (function (_super) {
60
76
  }
61
77
  });
62
78
  };
63
- AdvancedRowActionComponent.prototype.ngAfterViewInit = function () {
79
+ /**
80
+ * @return {?}
81
+ */
82
+ AdvancedRowActionComponent.prototype.ngAfterViewInit = /**
83
+ * @return {?}
84
+ */
85
+ function () {
64
86
  var _this = this;
65
87
  if (this.formComponent && this.formComponent.form) {
66
88
  this.okButtonDisabled = true;
67
89
  this.invalidSubscription = this.formComponent.form.change.subscribe(function (event) {
68
- if (Object.prototype.hasOwnProperty.call(event, "isValid") && (event.changed != null)) {
90
+ if (Object.prototype.hasOwnProperty.call(event, 'isValid') && (event.changed != null)) {
69
91
  _this.okButtonDisabled = !event.isValid;
70
92
  }
71
93
  });
72
94
  }
73
95
  };
74
- AdvancedRowActionComponent.prototype.ngOnDestroy = function () {
96
+ /**
97
+ * @return {?}
98
+ */
99
+ AdvancedRowActionComponent.prototype.ngOnDestroy = /**
100
+ * @return {?}
101
+ */
102
+ function () {
75
103
  if (this.refreshSubscription) {
76
104
  this.refreshSubscription.unsubscribe();
77
105
  }
@@ -82,20 +110,36 @@ var AdvancedRowActionComponent = /** @class */ (function (_super) {
82
110
  this.invalidSubscription.unsubscribe();
83
111
  }
84
112
  };
85
- AdvancedRowActionComponent.prototype.cancel = function () {
113
+ /**
114
+ * @return {?}
115
+ */
116
+ AdvancedRowActionComponent.prototype.cancel = /**
117
+ * @return {?}
118
+ */
119
+ function () {
86
120
  if (this.loading) {
87
- return;
121
+ return Promise.resolve();
88
122
  }
89
123
  // close
90
124
  if (this._modalService.modalRef) {
91
125
  return this._modalService.modalRef.hide();
92
126
  }
127
+ return Promise.resolve();
93
128
  };
94
- AdvancedRowActionComponent.prototype.ok = function () {
129
+ /**
130
+ * @return {?}
131
+ */
132
+ AdvancedRowActionComponent.prototype.ok = /**
133
+ * @return {?}
134
+ */
135
+ function () {
95
136
  return tslib_1.__awaiter(this, void 0, void 0, function () {
96
137
  var _this = this;
97
138
  return tslib_1.__generator(this, function (_a) {
98
139
  try {
140
+ if (this.execute == null) {
141
+ return [2 /*return*/];
142
+ }
99
143
  this.loading = true;
100
144
  this.lastError = null;
101
145
  if (this.formComponent && this.formComponent.form &&
@@ -142,14 +186,31 @@ var AdvancedRowActionComponent = /** @class */ (function (_super) {
142
186
  });
143
187
  });
144
188
  };
145
- AdvancedRowActionComponent.prototype.showProgress = function () {
146
- this.progressContainer.nativeElement.classList.replace('invisible', 'visible');
189
+ /**
190
+ * @return {?}
191
+ */
192
+ AdvancedRowActionComponent.prototype.showProgress = /**
193
+ * @return {?}
194
+ */
195
+ function () {
196
+ if (this.progressContainer) {
197
+ this.progressContainer.nativeElement.classList.replace('invisible', 'visible');
198
+ }
147
199
  };
148
- AdvancedRowActionComponent.prototype.hideProgress = function () {
149
- this.progressContainer.nativeElement.classList.replace('visible', 'invisible');
200
+ /**
201
+ * @return {?}
202
+ */
203
+ AdvancedRowActionComponent.prototype.hideProgress = /**
204
+ * @return {?}
205
+ */
206
+ function () {
207
+ if (this.progressContainer) {
208
+ this.progressContainer.nativeElement.classList.replace('visible', 'invisible');
209
+ }
150
210
  };
151
211
  AdvancedRowActionComponent.decorators = [
152
212
  { type: Component, args: [{
213
+ // tslint:disable-next-line:component-selector
153
214
  selector: 'app-advanced-row-action',
154
215
  template: "<div>\n <div class=\"modal-header\" *ngIf=\"modalTitle\">\n <h5 class=\"modal-title\">{{modalTitle | translate}}</h5>\n <button (click)=\"cancel()\" [disabled]=\"loading\"\n type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Cancel\">\n <span aria-hidden=\"true\">&times;</span>\n </button>\n </div>\n <div class=\"modal-body pt-0 mt-2 pb-0\">\n <div class=\"row\" *ngIf=\"lastError\">\n <div class=\"col-12\">\n <div class=\"alert alert-warning\" role=\"alert\">\n <span>{{ 'Tables.Actions.CompletedWithErrors.Title' | translate }}</span><br>\n <small *ngIf=\"lastError.status >= 0\" [translate]=\"'E' + lastError.status + '.message'\"></small>\n <small *ngIf=\"lastError.status == null\">{{lastError.message}}</small>\n </div>\n </div>\n </div>\n <div class=\"row\" *ngIf=\"description\">\n <div class=\"col-12 mb-3\">\n <div class=\"text-justify\">\n {{description | translate}}\n </div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-12\">\n <div *ngIf=\"items && items.length > 1\" [translate]=\"'Tables.Actions.ActionMessage.Many'\" [translateParams]=\"items\"></div>\n <div *ngIf=\"items && items.length === 1\" [translate]=\"'Tables.Actions.ActionMessage.One'\"></div>\n <div class=\"font-weight-bold text-danger\" *ngIf=\"items && items.length <= 0\" [translate]=\"'Tables.Actions.ActionMessage.None'\"></div>\n <div class=\"pt-2 font-weight-bold text-danger\" *ngIf=\"additionalMessage && items && items.length <= 0\">{{additionalMessage}}</div>\n </div>\n </div>\n <div class=\"row pt-3\" *ngIf=\"formTemplate\">\n <div class=\"col-12 mb-3\">\n <div>\n <advanced-form-edit #formComponent [formName]=\"formTemplate\" [(data)]=\"data\"></advanced-form-edit>\n </div>\n </div>\n </div>\n\n <div class=\"row mt-3\">\n <div class=\"col-12 invisible\" #progressContainer>\n <progressbar #progress [type]=\"progressType\" [max]=\"100\">\n </progressbar>\n </div>\n </div>\n </div>\n\n <div class=\"modal-footer justify-content-end\">\n <button [disabled]=\"okButtonDisabled || loading || (items && items.length === 0)\" (click)=\"ok()\"\n type=\"button\" [ngClass]=\"okButtonClass\">\n {{okButtonText | translate}}\n </button>\n <button [disabled]=\"cancelButtonDisabled || loading\"\n (click)=\"cancel()\" type=\"button\" [ngClass]=\"cancelButtonClass\" data-dismiss=\"modal\">\n {{cancelButtonText | translate}}\n </button>\n </div>\n</div>\n",
155
216
  encapsulation: ViewEncapsulation.None,
@@ -161,10 +222,7 @@ var AdvancedRowActionComponent = /** @class */ (function (_super) {
161
222
  { type: Router },
162
223
  { type: ActivatedRoute },
163
224
  { type: TranslateService },
164
- { type: AngularDataContext },
165
- { type: ErrorService },
166
- { type: ModalService },
167
- { type: AppEventService }
225
+ { type: ModalService }
168
226
  ]; };
169
227
  AdvancedRowActionComponent.propDecorators = {
170
228
  items: [{ type: Input }],
@@ -184,5 +242,47 @@ var AdvancedRowActionComponent = /** @class */ (function (_super) {
184
242
  return AdvancedRowActionComponent;
185
243
  }(RouterModalOkCancel));
186
244
  export { AdvancedRowActionComponent };
245
+ if (false) {
246
+ /** @type {?} */
247
+ AdvancedRowActionComponent.prototype.invalidSubscription;
248
+ /** @type {?} */
249
+ AdvancedRowActionComponent.prototype.items;
250
+ /** @type {?} */
251
+ AdvancedRowActionComponent.prototype.modalIcon;
252
+ /** @type {?} */
253
+ AdvancedRowActionComponent.prototype.description;
254
+ /** @type {?} */
255
+ AdvancedRowActionComponent.prototype.formTemplate;
256
+ /** @type {?} */
257
+ AdvancedRowActionComponent.prototype.progressType;
258
+ /** @type {?} */
259
+ AdvancedRowActionComponent.prototype.data;
260
+ /** @type {?} */
261
+ AdvancedRowActionComponent.prototype.additionalMessage;
262
+ /** @type {?} */
263
+ AdvancedRowActionComponent.prototype.errorMessage;
264
+ /** @type {?} */
265
+ AdvancedRowActionComponent.prototype.lastError;
266
+ /** @type {?} */
267
+ AdvancedRowActionComponent.prototype.loading;
268
+ /** @type {?} */
269
+ AdvancedRowActionComponent.prototype.progressComponent;
270
+ /** @type {?} */
271
+ AdvancedRowActionComponent.prototype.progressContainer;
272
+ /** @type {?} */
273
+ AdvancedRowActionComponent.prototype.formComponent;
274
+ /** @type {?} */
275
+ AdvancedRowActionComponent.prototype.refresh;
276
+ /** @type {?} */
277
+ AdvancedRowActionComponent.prototype.execute;
278
+ /** @type {?} */
279
+ AdvancedRowActionComponent.prototype.refreshSubscription;
280
+ /** @type {?} */
281
+ AdvancedRowActionComponent.prototype.executeSubscription;
282
+ /** @type {?} */
283
+ AdvancedRowActionComponent.prototype._translateService;
284
+ /** @type {?} */
285
+ AdvancedRowActionComponent.prototype._modalService;
286
+ }
187
287
 
188
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtcm93LWFjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdW5pdmVyc2lzL25neC10YWJsZXMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9hZHZhbmNlZC1yb3ctYWN0aW9uL2FkdmFuY2VkLXJvdy1hY3Rpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFxQixLQUFLLEVBQUUsWUFBWSxFQUNyRCxTQUFTLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUEyQyxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUFDLGNBQWMsRUFBRSxNQUFNLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRCxPQUFPLG1DQUFtQyxDQUFDO0FBQzNDLE9BQU8sRUFBQyxZQUFZLEVBQUUsWUFBWSxFQUFlLE1BQU0sbUJBQW1CLENBQUM7QUFDM0UsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDOUQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBQyxVQUFVLEVBQWUsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFakU7SUFrQmdELHNEQUFtQjtJQXVCL0Qsb0NBQVksTUFBYyxFQUNkLGNBQThCLEVBQ3RCLGlCQUFtQyxFQUNuQyxRQUE0QixFQUM1QixhQUEyQixFQUMzQixhQUEyQixFQUMzQixTQUEwQjtRQU45QyxZQU9JLGtCQUFNLE1BQU0sRUFBRSxjQUFjLENBQUMsU0FTaEM7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O29CQUNQLFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLHk0RkFBbUQ7b0JBY25ELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJOzZCQVpqQyxrUUFVQztpQkFHUjs7OztnQkEzQnVCLE1BQU07Z0JBQXRCLGNBQWM7Z0JBRGQsZ0JBQWdCO2dCQUVoQixrQkFBa0I7Z0JBRWxCLFlBQVk7Z0JBQUUsWUFBWTtnQkFFMUIsZUFBZTs7O3dCQTRCbEIsS0FBSzs0QkFDTCxLQUFLOzhCQUNMLEtBQUs7K0JBQ0wsS0FBSzsrQkFDTCxLQUFLO3VCQUNMLE1BQU07b0NBQ04sS0FBSzsrQkFDTCxLQUFLO29DQUdMLFNBQVMsU0FBQyxVQUFVO29DQUNwQixTQUFTLFNBQUMsbUJBQW1CO2dDQUM3QixTQUFTLFNBQUMsZUFBZTswQkFDekIsS0FBSzswQkFDTCxLQUFLOztJQXFJVixpQ0FBQztDQUFBLEFBMUtELENBa0JnRCxtQkFBbUIsR0F3SmxFO1NBeEpZLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBPbkluaXQsIE9uRGVzdHJveSwgSW5wdXQsIEV2ZW50RW1pdHRlcixcbiAgICBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIFZpZXdFbmNhcHN1bGF0aW9uLCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIEFmdGVyVmlld0luaXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtBbmd1bGFyRGF0YUNvbnRleHR9IGZyb20gJ0B0aGVtb3N0L2FuZ3VsYXInO1xuaW1wb3J0ICdyeGpzL2FkZC9vYnNlcnZhYmxlL2NvbWJpbmVMYXRlc3QnO1xuaW1wb3J0IHtFcnJvclNlcnZpY2UsIE1vZGFsU2VydmljZSwgVG9hc3RTZXJ2aWNlfSBmcm9tICdAdW5pdmVyc2lzL2NvbW1vbic7XG5pbXBvcnQge1JvdXRlck1vZGFsT2tDYW5jZWx9IGZyb20gJ0B1bml2ZXJzaXMvY29tbW9uL3JvdXRpbmcnO1xuaW1wb3J0IHtBcHBFdmVudFNlcnZpY2V9IGZyb20gJ0B1bml2ZXJzaXMvY29tbW9uJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7QWR2YW5jZWRGb3JtQ29tcG9uZW50fSBmcm9tICdAdW5pdmVyc2lzL2Zvcm1zJztcbmltcG9ydCB7IFByb2dyZXNzYmFyQ29tcG9uZW50IH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9wcm9ncmVzc2Jhcic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXBwLWFkdmFuY2VkLXJvdy1hY3Rpb24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9hZHZhbmNlZC1yb3ctYWN0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZXM6IFtcbiAgICAgICAgYFxuICAgICAgICAuZmEtMV81eCB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEuNXJlbTtcbiAgICAgICAgfVxuICAgICAgICAuZm9ybS1jb250cm9sOmRpc2FibGVkLCAuZm9ybS1jb250cm9sW3JlYWRvbmx5XSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBpbmhlcml0O1xuICAgICAgICB9XG4gICAgICAgIC5mb3JtLWNoZWNrLmNoZWNrYm94IHtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmVcbiAgICAgICAgfVxuICAgICAgICBgXG4gICAgXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIEFkdmFuY2VkUm93QWN0aW9uQ29tcG9uZW50IGV4dGVuZHMgUm91dGVyTW9kYWxPa0NhbmNlbCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcblxuICBpbnZhbGlkU3Vic2NyaXB0aW9uOiBhbnk7XG5cblxuICAgIEBJbnB1dCgpIGl0ZW1zOiBhbnk7XG4gICAgQElucHV0KCkgbW9kYWxJY29uID0gJ2ZhcyBmYS1wcm9qZWN0LWRpYWdyYW0nO1xuICAgIEBJbnB1dCgpIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgQElucHV0KCkgZm9ybVRlbXBsYXRlOiBzdHJpbmc7XG4gICAgQElucHV0KCkgcHJvZ3Jlc3NUeXBlID0gJ2luZGlnbyc7XG4gICAgQE91dHB1dCgpIGRhdGE6IGFueTtcbiAgICBASW5wdXQoKSBhZGRpdGlvbmFsTWVzc2FnZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGVycm9yTWVzc2FnZSA9ICdUYWJsZXMuQWN0aW9ucy5Db21wbGV0ZWRXaXRoRXJyb3JzJztcbiAgICBwdWJsaWMgbGFzdEVycm9yOiBhbnk7XG4gICAgcHVibGljIGxvYWRpbmcgPSBmYWxzZTtcbiAgICBAVmlld0NoaWxkKCdwcm9ncmVzcycpIHByb2dyZXNzQ29tcG9uZW50OiBQcm9ncmVzc2JhckNvbXBvbmVudDtcbiAgICBAVmlld0NoaWxkKCdwcm9ncmVzc0NvbnRhaW5lcicpIHByb2dyZXNzQ29udGFpbmVyOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoJ2Zvcm1Db21wb25lbnQnKSBmb3JtQ29tcG9uZW50OiBBZHZhbmNlZEZvcm1Db21wb25lbnQ7XG4gICAgQElucHV0KCkgcmVmcmVzaDogYW55ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQElucHV0KCkgZXhlY3V0ZTogT2JzZXJ2YWJsZTxhbnk+O1xuICAgIHByaXZhdGUgcmVmcmVzaFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICAgIHByaXZhdGUgZXhlY3V0ZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gICAgY29uc3RydWN0b3Iocm91dGVyOiBSb3V0ZXIsXG4gICAgICAgICAgICAgICAgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX3RyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBfY29udGV4dDogQW5ndWxhckRhdGFDb250ZXh0LFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX2Vycm9yU2VydmljZTogRXJyb3JTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX21vZGFsU2VydmljZTogTW9kYWxTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX2FwcEV2ZW50OiBBcHBFdmVudFNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIocm91dGVyLCBhY3RpdmF0ZWRSb3V0ZSk7XG4gICAgICAgIC8vIHNldCBtb2RhbCBzaXplXG4gICAgICAgIHRoaXMubW9kYWxDbGFzcyA9ICdtb2RhbC1sZyc7XG4gICAgICAgIC8vIHNldCBtb2RhbCB0aXRsZVxuICAgICAgICB0aGlzLm1vZGFsVGl0bGUgPSAnVGFibGVzLkFjdGlvbnMuTGFiZWwnO1xuICAgICAgICAvLyBkaXNhYmxlIG9rIGJ1dHRvblxuICAgICAgICB0aGlzLm9rQnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgLy8gc2V0IGJ1dHRvbiB0ZXh0XG4gICAgICAgIHRoaXMub2tCdXR0b25UZXh0ID0gJ1RhYmxlcy5BY3Rpb25zLlN0YXJ0JztcbiAgICB9XG5cbiAgICBnZXQgZm9ybSgpIHtcbiAgICAgIHJldHVybiB0aGlzLmZvcm1Db21wb25lbnQ7XG4gICAgfVxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnJlZnJlc2hTdWJzY3JpcHRpb24gPSB0aGlzLnJlZnJlc2guc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgaWYgKHZhbHVlICYmIHZhbHVlLnByb2dyZXNzKSB7XG4gICAgICAgICAgICAgICAgbGV0IHByb2dyZXNzID0gMDtcbiAgICAgICAgICAgICAgICBpZiAodmFsdWUucHJvZ3Jlc3MgPCAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHByb2dyZXNzID0gMDtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHZhbHVlLnByb2dyZXNzID4gMTAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHByb2dyZXNzID0gMTAwO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHByb2dyZXNzID0gdmFsdWUucHJvZ3Jlc3M7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMucHJvZ3Jlc3NDb21wb25lbnQudmFsdWUgPSBwcm9ncmVzcztcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dQcm9ncmVzcygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLmZvcm1Db21wb25lbnQgJiYgdGhpcy5mb3JtQ29tcG9uZW50LmZvcm0pIHtcbiAgICAgICAgdGhpcy5va0J1dHRvbkRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5pbnZhbGlkU3Vic2NyaXB0aW9uID0gdGhpcy5mb3JtQ29tcG9uZW50LmZvcm0uY2hhbmdlLnN1YnNjcmliZSgoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGV2ZW50LCBcImlzVmFsaWRcIikgJiYgKGV2ZW50LmNoYW5nZWQgIT0gbnVsbCkpIHtcbiAgICAgICAgICAgICAgdGhpcy5va0J1dHRvbkRpc2FibGVkID0gIWV2ZW50LmlzVmFsaWQ7XG4gICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIGlmICh0aGlzLnJlZnJlc2hTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMucmVmcmVzaFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmV4ZWN1dGVTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuZXhlY3V0ZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmludmFsaWRTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuaW52YWxpZFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2FuY2VsKCk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIGlmICh0aGlzLmxvYWRpbmcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBjbG9zZVxuICAgICAgICBpZiAodGhpcy5fbW9kYWxTZXJ2aWNlLm1vZGFsUmVmKSB7XG4gICAgICAgICAgICByZXR1cm4gIHRoaXMuX21vZGFsU2VydmljZS5tb2RhbFJlZi5oaWRlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhc3luYyBvaygpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmxhc3RFcnJvciA9IG51bGw7XG4gICAgICAgICAgICBpZiAodGhpcy5mb3JtQ29tcG9uZW50ICYmIHRoaXMuZm9ybUNvbXBvbmVudC5mb3JtICYmXG4gICAgICAgICAgICAgIHRoaXMuZm9ybUNvbXBvbmVudC5mb3JtLmZvcm1pbyAmJiB0aGlzLmZvcm1Db21wb25lbnQuZm9ybS5mb3JtaW8uZGF0YSkge1xuICAgICAgICAgICAgICAvLyBzZXQgZGF0YVxuICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhID0gdGhpcy5mb3JtQ29tcG9uZW50LmZvcm0uZm9ybWlvLmRhdGE7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gZG8gYWN0aW9uXG4gICAgICAgICAgICB0aGlzLmV4ZWN1dGUuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlZnJlc2guZW1pdCh7XG4gICAgICAgICAgICAgICAgICAgIHByb2dyZXNzOiAxMDBcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICYmIHJlc3VsdC5lcnJvcnMgJiYgcmVzdWx0LmVycm9ycyA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gc2hvdyBtZXNzYWdlIGZvciBwYXJ0aWFsIHN1Y2Nlc3NcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5lcnJvcnMgPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubGFzdEVycm9yID0gbmV3IEVycm9yKHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgJHt0aGlzLmVycm9yTWVzc2FnZX0uRGVzY3JpcHRpb24uT25lYCkpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXN0RXJyb3IgPSBuZXcgRXJyb3IodGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgICAgICAgICAgICAgICAgICBgJHt0aGlzLmVycm9yTWVzc2FnZX0uRGVzY3JpcHRpb24uTWFueWAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0KSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoLmVtaXQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvZ3Jlc3M6IDFcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGlkZVByb2dyZXNzKCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX21vZGFsU2VydmljZS5tb2RhbFJlZikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9tb2RhbFNlcnZpY2UubW9kYWxSZWYuaGlkZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLmxhc3RFcnJvciA9IGVycjtcbiAgICAgICAgICAgICAgICB0aGlzLnJlZnJlc2guZW1pdCh7XG4gICAgICAgICAgICAgICAgICAgIHByb2dyZXNzOiAwXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMubGFzdEVycm9yID0gZXJyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2hvd1Byb2dyZXNzKCkge1xuICAgICAgICB0aGlzLnByb2dyZXNzQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlcGxhY2UoJ2ludmlzaWJsZScsICd2aXNpYmxlJyk7XG4gICAgfVxuXG4gICAgaGlkZVByb2dyZXNzKCkge1xuICAgICAgICB0aGlzLnByb2dyZXNzQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LnJlcGxhY2UoJ3Zpc2libGUnLCAnaW52aXNpYmxlJyk7XG4gICAgfVxuXG5cblxufVxuIl19
288
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtcm93LWFjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AdW5pdmVyc2lzL25neC10YWJsZXMvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9hZHZhbmNlZC1yb3ctYWN0aW9uL2FkdmFuY2VkLXJvdy1hY3Rpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBcUIsS0FBSyxFQUFFLFlBQVksRUFDckQsU0FBUyxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBaUIsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxjQUFjLEVBQUUsTUFBTSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxtQ0FBbUMsQ0FBQztBQUMzQyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDOUQsT0FBTyxFQUFDLFVBQVUsRUFBZSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7SUFxQmpCLHNEQUFtQjtJQXVCL0Qsb0NBQVksTUFBYyxFQUNkLGNBQThCLEVBQ3RCLG1CQUNBO1FBSHBCLFlBSUksa0JBQU0sTUFBTSxFQUFFLGNBQWMsQ0FBQyxTQVNoQztRQVhtQix1QkFBaUIsR0FBakIsaUJBQWlCO1FBQ2pCLG1CQUFhLEdBQWIsYUFBYTswQkFwQlosd0JBQXdCOzZCQUdyQixRQUFROzZCQUdSLG9DQUFvQzt3QkFFM0MsS0FBSzt3QkFJRSxJQUFJLFlBQVksRUFBTzs7UUFXM0MsQUFEQSxpQkFBaUI7UUFDakIsS0FB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O2dCQTFCdUIsTUFBTTtnQkFBdEIsY0FBYztnQkFEZCxnQkFBZ0I7Z0JBR2hCLFlBQVk7Ozt3QkE4QmYsS0FBSzs0QkFDTCxLQUFLOzhCQUNMLEtBQUs7K0JBQ0wsS0FBSzsrQkFDTCxLQUFLO3VCQUNMLE1BQU07b0NBQ04sS0FBSzsrQkFDTCxLQUFLO29DQUdMLFNBQVMsU0FBQyxVQUFVO29DQUNwQixTQUFTLFNBQUMsbUJBQW1CO2dDQUM3QixTQUFTLFNBQUMsZUFBZTswQkFDekIsS0FBSzswQkFDTCxLQUFLOztxQ0FqRFY7RUE4QmdELG1CQUFtQjtTQUF0RCwwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgT25Jbml0LCBPbkRlc3Ryb3ksIElucHV0LCBFdmVudEVtaXR0ZXIsXG4gICAgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBWaWV3RW5jYXBzdWxhdGlvbiwgQWZ0ZXJWaWV3SW5pdCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgJ3J4anMvYWRkL29ic2VydmFibGUvY29tYmluZUxhdGVzdCc7XG5pbXBvcnQge01vZGFsU2VydmljZX0gZnJvbSAnQHVuaXZlcnNpcy9jb21tb24nO1xuaW1wb3J0IHtSb3V0ZXJNb2RhbE9rQ2FuY2VsfSBmcm9tICdAdW5pdmVyc2lzL2NvbW1vbi9yb3V0aW5nJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7QWR2YW5jZWRGb3JtQ29tcG9uZW50fSBmcm9tICdAdW5pdmVyc2lzL2Zvcm1zJztcbmltcG9ydCB7IFByb2dyZXNzYmFyQ29tcG9uZW50IH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9wcm9ncmVzc2Jhcic7XG5cbkBDb21wb25lbnQoe1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb21wb25lbnQtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ2FwcC1hZHZhbmNlZC1yb3ctYWN0aW9uJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYWR2YW5jZWQtcm93LWFjdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVzOiBbXG4gICAgICAgIGBcbiAgICAgICAgLmZhLTFfNXgge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxLjVyZW07XG4gICAgICAgIH1cbiAgICAgICAgLmZvcm0tY29udHJvbDpkaXNhYmxlZCwgLmZvcm0tY29udHJvbFtyZWFkb25seV0ge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgICAgICAgfVxuICAgICAgICAuZm9ybS1jaGVjay5jaGVja2JveCB7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlXG4gICAgICAgIH1cbiAgICAgICAgYFxuICAgIF0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBBZHZhbmNlZFJvd0FjdGlvbkNvbXBvbmVudCBleHRlbmRzIFJvdXRlck1vZGFsT2tDYW5jZWwgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgaW52YWxpZFN1YnNjcmlwdGlvbjogYW55O1xuXG5cbiAgICBASW5wdXQoKSBpdGVtczogYW55O1xuICAgIEBJbnB1dCgpIG1vZGFsSWNvbiA9ICdmYXMgZmEtcHJvamVjdC1kaWFncmFtJztcbiAgICBASW5wdXQoKSBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICBASW5wdXQoKSBmb3JtVGVtcGxhdGU/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgcHJvZ3Jlc3NUeXBlID0gJ2luZGlnbyc7XG4gICAgQE91dHB1dCgpIGRhdGE6IGFueTtcbiAgICBASW5wdXQoKSBhZGRpdGlvbmFsTWVzc2FnZT86IHN0cmluZztcbiAgICBASW5wdXQoKSBlcnJvck1lc3NhZ2UgPSAnVGFibGVzLkFjdGlvbnMuQ29tcGxldGVkV2l0aEVycm9ycyc7XG4gICAgcHVibGljIGxhc3RFcnJvcjogYW55O1xuICAgIHB1YmxpYyBsb2FkaW5nID0gZmFsc2U7XG4gICAgQFZpZXdDaGlsZCgncHJvZ3Jlc3MnKSBwcm9ncmVzc0NvbXBvbmVudD86IFByb2dyZXNzYmFyQ29tcG9uZW50O1xuICAgIEBWaWV3Q2hpbGQoJ3Byb2dyZXNzQ29udGFpbmVyJykgcHJvZ3Jlc3NDb250YWluZXI/OiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoJ2Zvcm1Db21wb25lbnQnKSBmb3JtQ29tcG9uZW50PzogQWR2YW5jZWRGb3JtQ29tcG9uZW50O1xuICAgIEBJbnB1dCgpIHJlZnJlc2g6IGFueSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgIEBJbnB1dCgpIGV4ZWN1dGU/OiBPYnNlcnZhYmxlPGFueT47XG4gICAgcHJpdmF0ZSByZWZyZXNoU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuICAgIHByaXZhdGUgZXhlY3V0ZVN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcblxuICAgIGNvbnN0cnVjdG9yKHJvdXRlcjogUm91dGVyLFxuICAgICAgICAgICAgICAgIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgICAgICAgICBwcml2YXRlIF90cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX21vZGFsU2VydmljZTogTW9kYWxTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKHJvdXRlciwgYWN0aXZhdGVkUm91dGUpO1xuICAgICAgICAvLyBzZXQgbW9kYWwgc2l6ZVxuICAgICAgICB0aGlzLm1vZGFsQ2xhc3MgPSAnbW9kYWwtbGcnO1xuICAgICAgICAvLyBzZXQgbW9kYWwgdGl0bGVcbiAgICAgICAgdGhpcy5tb2RhbFRpdGxlID0gJ1RhYmxlcy5BY3Rpb25zLkxhYmVsJztcbiAgICAgICAgLy8gZGlzYWJsZSBvayBidXR0b25cbiAgICAgICAgdGhpcy5va0J1dHRvbkRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgIC8vIHNldCBidXR0b24gdGV4dFxuICAgICAgICB0aGlzLm9rQnV0dG9uVGV4dCA9ICdUYWJsZXMuQWN0aW9ucy5TdGFydCc7XG4gICAgfVxuXG4gICAgZ2V0IGZvcm0oKSB7XG4gICAgICByZXR1cm4gdGhpcy5mb3JtQ29tcG9uZW50O1xuICAgIH1cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5yZWZyZXNoU3Vic2NyaXB0aW9uID0gdGhpcy5yZWZyZXNoLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLnByb2dyZXNzQ29tcG9uZW50ID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodmFsdWUgJiYgdmFsdWUucHJvZ3Jlc3MpIHtcbiAgICAgICAgICAgICAgICBsZXQgcHJvZ3Jlc3MgPSAwO1xuICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5wcm9ncmVzcyA8IDApIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvZ3Jlc3MgPSAwO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWUucHJvZ3Jlc3MgPiAxMDApIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvZ3Jlc3MgPSAxMDA7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvZ3Jlc3MgPSB2YWx1ZS5wcm9ncmVzcztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9ncmVzc0NvbXBvbmVudC52YWx1ZSA9IHByb2dyZXNzO1xuICAgICAgICAgICAgICAgIHRoaXMuc2hvd1Byb2dyZXNzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgaWYgKHRoaXMuZm9ybUNvbXBvbmVudCAmJiB0aGlzLmZvcm1Db21wb25lbnQuZm9ybSkge1xuICAgICAgICB0aGlzLm9rQnV0dG9uRGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmludmFsaWRTdWJzY3JpcHRpb24gPSB0aGlzLmZvcm1Db21wb25lbnQuZm9ybS5jaGFuZ2Uuc3Vic2NyaWJlKChldmVudDogYW55KSA9PiB7XG4gICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZXZlbnQsICdpc1ZhbGlkJykgJiYgKGV2ZW50LmNoYW5nZWQgIT0gbnVsbCkpIHtcbiAgICAgICAgICAgICAgdGhpcy5va0J1dHRvbkRpc2FibGVkID0gIWV2ZW50LmlzVmFsaWQ7XG4gICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIGlmICh0aGlzLnJlZnJlc2hTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMucmVmcmVzaFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmV4ZWN1dGVTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuZXhlY3V0ZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmludmFsaWRTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuaW52YWxpZFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY2FuY2VsKCk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIGlmICh0aGlzLmxvYWRpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBjbG9zZVxuICAgICAgICBpZiAodGhpcy5fbW9kYWxTZXJ2aWNlLm1vZGFsUmVmKSB7XG4gICAgICAgICAgICByZXR1cm4gIHRoaXMuX21vZGFsU2VydmljZS5tb2RhbFJlZi5oaWRlKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgIH1cblxuICAgIGFzeW5jIG9rKCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZXhlY3V0ZSA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMubGFzdEVycm9yID0gbnVsbDtcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1Db21wb25lbnQgJiYgdGhpcy5mb3JtQ29tcG9uZW50LmZvcm0gJiZcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1Db21wb25lbnQuZm9ybS5mb3JtaW8gJiYgdGhpcy5mb3JtQ29tcG9uZW50LmZvcm0uZm9ybWlvLmRhdGEpIHtcbiAgICAgICAgICAgICAgICAvLyBzZXQgZGF0YVxuICAgICAgICAgICAgICAgIHRoaXMuZGF0YSA9IHRoaXMuZm9ybUNvbXBvbmVudC5mb3JtLmZvcm1pby5kYXRhO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gZG8gYWN0aW9uXG4gICAgICAgICAgICB0aGlzLmV4ZWN1dGUuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlZnJlc2guZW1pdCh7XG4gICAgICAgICAgICAgICAgICAgIHByb2dyZXNzOiAxMDBcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICYmIHJlc3VsdC5lcnJvcnMgJiYgcmVzdWx0LmVycm9ycyA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gc2hvdyBtZXNzYWdlIGZvciBwYXJ0aWFsIHN1Y2Nlc3NcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5lcnJvcnMgPT09IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubGFzdEVycm9yID0gbmV3IEVycm9yKHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBgJHt0aGlzLmVycm9yTWVzc2FnZX0uRGVzY3JpcHRpb24uT25lYCkpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXN0RXJyb3IgPSBuZXcgRXJyb3IodGhpcy5fdHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgICAgICAgICAgICAgICAgICBgJHt0aGlzLmVycm9yTWVzc2FnZX0uRGVzY3JpcHRpb24uTWFueWAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0KSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoLmVtaXQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvZ3Jlc3M6IDFcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGlkZVByb2dyZXNzKCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX21vZGFsU2VydmljZS5tb2RhbFJlZikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9tb2RhbFNlcnZpY2UubW9kYWxSZWYuaGlkZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLmxhc3RFcnJvciA9IGVycjtcbiAgICAgICAgICAgICAgICB0aGlzLnJlZnJlc2guZW1pdCh7XG4gICAgICAgICAgICAgICAgICAgIHByb2dyZXNzOiAwXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMubGFzdEVycm9yID0gZXJyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2hvd1Byb2dyZXNzKCkge1xuICAgICAgICBpZiAodGhpcy5wcm9ncmVzc0NvbnRhaW5lcikge1xuICAgICAgICAgICAgdGhpcy5wcm9ncmVzc0NvbnRhaW5lci5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZXBsYWNlKCdpbnZpc2libGUnLCAndmlzaWJsZScpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGlkZVByb2dyZXNzKCkge1xuICAgICAgICBpZiAodGhpcy5wcm9ncmVzc0NvbnRhaW5lcikge1xuICAgICAgICAgICAgdGhpcy5wcm9ncmVzc0NvbnRhaW5lci5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZXBsYWNlKCd2aXNpYmxlJywgJ2ludmlzaWJsZScpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -1,3 +1,7 @@
1
+ /**
2
+ * @fileoverview added by tsickle
3
+ * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
4
+ */
1
5
  import * as tslib_1 from "tslib";
2
6
  import { Component, EventEmitter, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';
3
7
  import { FormioComponent } from 'angular-formio';
@@ -22,24 +26,36 @@ var AdvancedSearchFormComponent = /** @class */ (function (_super) {
22
26
  _this.componentLoading = true;
23
27
  return _this;
24
28
  }
25
- AdvancedSearchFormComponent.prototype.ngOnChanges = function (changes) {
29
+ /**
30
+ * @param {?} changes
31
+ * @return {?}
32
+ */
33
+ AdvancedSearchFormComponent.prototype.ngOnChanges = /**
34
+ * @param {?} changes
35
+ * @return {?}
36
+ */
37
+ function (changes) {
26
38
  var _this = this;
27
39
  if (Object.prototype.hasOwnProperty.call(changes, 'form')) {
28
- if (changes.form != null) {
29
- if (changes.form.currentValue &&
30
- changes.form.currentValue != changes.form.previousValue) {
40
+ if (changes["form"] != null) {
41
+ if (changes["form"].currentValue &&
42
+ // tslint:disable-next-line:triple-equals
43
+ changes["form"].currentValue != changes["form"].previousValue) {
31
44
  this.ngOnInit();
32
45
  }
33
46
  }
34
47
  }
35
48
  if (Object.prototype.hasOwnProperty.call(changes, 'formSrc')) {
36
- if (changes.formSrc != null) {
37
- if (changes.formSrc.currentValue &&
38
- changes.formSrc.currentValue != changes.formSrc.previousValue) {
39
- this._http.get(changes.formSrc.currentValue).toPromise().then(function (form) {
49
+ if (changes["formSrc"] != null) {
50
+ if (changes["formSrc"].currentValue &&
51
+ // tslint:disable-next-line:triple-equals
52
+ changes["formSrc"].currentValue != changes["formSrc"].previousValue) {
53
+ this._http.get(changes["formSrc"].currentValue).toPromise().then(function (form) {
54
+ // set form
40
55
  // set form
41
56
  _this.form = form;
42
57
  // and init
58
+ // and init
43
59
  _this.ngOnInit();
44
60
  }).catch(function (err) {
45
61
  console.error('An error occurred while loading search configuration');
@@ -49,15 +65,21 @@ var AdvancedSearchFormComponent = /** @class */ (function (_super) {
49
65
  }
50
66
  }
51
67
  if (Object.prototype.hasOwnProperty.call(changes, 'filter')) {
52
- if (changes.filter != null) {
53
- this.submission.data = changes.filter.currentValue || {};
68
+ if (changes["filter"] != null) {
69
+ this.submission.data = changes["filter"].currentValue || {};
54
70
  this.refreshForm.emit({
55
71
  submission: this.submission
56
72
  });
57
73
  }
58
74
  }
59
75
  };
60
- AdvancedSearchFormComponent.prototype.ngOnInit = function () {
76
+ /**
77
+ * @return {?}
78
+ */
79
+ AdvancedSearchFormComponent.prototype.ngOnInit = /**
80
+ * @return {?}
81
+ */
82
+ function () {
61
83
  var _this = this;
62
84
  if (this.form) {
63
85
  new ServiceUrlPreProcessor(this._context).parse(this.form);
@@ -80,14 +102,28 @@ var AdvancedSearchFormComponent = /** @class */ (function (_super) {
80
102
  });
81
103
  }
82
104
  };
83
- AdvancedSearchFormComponent.prototype.onChange = function (event) {
105
+ /**
106
+ * @param {?} event
107
+ * @return {?}
108
+ */
109
+ AdvancedSearchFormComponent.prototype.onChange = /**
110
+ * @param {?} event
111
+ * @return {?}
112
+ */
113
+ function (event) {
84
114
  var _this = this;
85
- Object.keys(this.formComponent.submission.data).forEach(function (key) {
86
- if (Object.prototype.hasOwnProperty.call(_this.formComponent.submission.data, key)) {
87
- var value = _this.formComponent.submission.data[key];
88
- // the filter with type is a string and is not empty
115
+ if (this.formComponent == null) {
116
+ return;
117
+ }
118
+ /** @type {?} */
119
+ var formComponent = this.formComponent;
120
+ Object.keys(formComponent.submission.data).forEach(function (key) {
121
+ if (Object.prototype.hasOwnProperty.call(formComponent.submission.data, key)) {
122
+ /** @type {?} */
123
+ var value = formComponent.submission.data[key];
124
+ /** @type {?} */
89
125
  var isEmptyString = typeof value === 'string' && value.length === 0;
90
- // do not include empty objects in filter
126
+ /** @type {?} */
91
127
  var isEmptyObject = typeof value === 'object' && Object.keys(value).length === 0;
92
128
  // make isEmptyString, isEmptyObject mutex
93
129
  if (!isEmptyString && !isEmptyObject) {
@@ -103,23 +139,48 @@ var AdvancedSearchFormComponent = /** @class */ (function (_super) {
103
139
  }
104
140
  });
105
141
  };
106
- AdvancedSearchFormComponent.prototype.onFormLoad = function (form) {
142
+ /**
143
+ * @param {?} form
144
+ * @return {?}
145
+ */
146
+ AdvancedSearchFormComponent.prototype.onFormLoad = /**
147
+ * @param {?} form
148
+ * @return {?}
149
+ */
150
+ function (form) {
151
+ if (this.formComponent == null) {
152
+ return;
153
+ }
154
+ /** @type {?} */
107
155
  var currentLang = this._translateService.currentLang;
108
156
  this.formComponent.formio.i18next.options.resources[currentLang] = { translation: this._translateService.instant("Forms") };
109
157
  this.formComponent.formio.language = currentLang;
110
158
  };
111
- AdvancedSearchFormComponent.prototype.ngAfterViewInit = function () {
159
+ /**
160
+ * @return {?}
161
+ */
162
+ AdvancedSearchFormComponent.prototype.ngAfterViewInit = /**
163
+ * @return {?}
164
+ */
165
+ function () {
112
166
  //
113
167
  };
114
- AdvancedSearchFormComponent.prototype.ngOnDestroy = function () {
168
+ /**
169
+ * @return {?}
170
+ */
171
+ AdvancedSearchFormComponent.prototype.ngOnDestroy = /**
172
+ * @return {?}
173
+ */
174
+ function () {
115
175
  if (this.filterSubscription) {
116
176
  this.filterSubscription.unsubscribe();
117
177
  }
118
178
  };
119
179
  AdvancedSearchFormComponent.decorators = [
120
180
  { type: Component, args: [{
181
+ // tslint:disable-next-line:component-selector
121
182
  selector: 'app-advanced-search-form',
122
- template: "\n <div class=\"p-4\">\n <formio #formioComponent class=\"formio-search\" (keydown)=\"onKeyEnter($event)\" (change)=\"onChange($event)\" (formLoad)=\"onFormLoad($event)\"\n [refresh]=\"refreshForm\" [submission]=\"submission\" [form]=\"form\"></formio>\n </div>\n ",
183
+ template: "\n <div class=\"p-4\">\n <formio #formioComponent class=\"formio-search\"\n (keydown)=\"onKeyEnter($event)\" (change)=\"onChange($event)\" (formLoad)=\"onFormLoad($event)\"\n [refresh]=\"refreshForm\" [submission]=\"submission\" [form]=\"form\"></formio>\n </div>\n ",
123
184
  encapsulation: ViewEncapsulation.None,
124
185
  styles: ["formio.formio-search .form-group{margin-bottom:0}formio.formio-search .form-group .col-form-label{font-size:90%;padding-top:4px;padding-bottom:4px}.choices__list.choices__list--single .choices__item:first-child.choices__item--selectable{width:85%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}"]
125
186
  }] }
@@ -141,5 +202,31 @@ var AdvancedSearchFormComponent = /** @class */ (function (_super) {
141
202
  return AdvancedSearchFormComponent;
142
203
  }(AdvancedTableSearchBaseComponent));
143
204
  export { AdvancedSearchFormComponent };
205
+ if (false) {
206
+ /** @type {?} */
207
+ AdvancedSearchFormComponent.prototype.formComponent;
208
+ /** @type {?} */
209
+ AdvancedSearchFormComponent.prototype.form;
210
+ /** @type {?} */
211
+ AdvancedSearchFormComponent.prototype.formSrc;
212
+ /** @type {?} */
213
+ AdvancedSearchFormComponent.prototype.refreshForm;
214
+ /** @type {?} */
215
+ AdvancedSearchFormComponent.prototype.loading;
216
+ /** @type {?} */
217
+ AdvancedSearchFormComponent.prototype.submission;
218
+ /** @type {?} */
219
+ AdvancedSearchFormComponent.prototype.filterSubscription;
220
+ /** @type {?} */
221
+ AdvancedSearchFormComponent.prototype.componentLoading;
222
+ /** @type {?} */
223
+ AdvancedSearchFormComponent.prototype._context;
224
+ /** @type {?} */
225
+ AdvancedSearchFormComponent.prototype._translateService;
226
+ /** @type {?} */
227
+ AdvancedSearchFormComponent.prototype._activatedRoute;
228
+ /** @type {?} */
229
+ AdvancedSearchFormComponent.prototype._http;
230
+ }
144
231
 
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtc2VhcmNoLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHVuaXZlcnNpcy9uZ3gtdGFibGVzLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvYWR2YW5jZWQtc2VhcmNoLWZvcm0vYWR2YW5jZWQtc2VhcmNoLWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUEyQixNQUFNLGVBQWUsQ0FBQztBQUMvSixPQUFPLEVBQUMsZUFBZSxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0QsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDcEQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBQyxzQkFBc0IsRUFBRSxxQkFBcUIsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQy9FLE9BQU8sRUFBQyxnQ0FBZ0MsRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBQzlGLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBR3JELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVsRDtJQVdpRCx1REFBZ0M7SUFZL0UscUNBQW9CLFFBQTRCLEVBQzVCLGlCQUFtQyxFQUNuQyxlQUErQixFQUMvQixLQUFpQjtRQUhyQyxZQUtFLGlCQUFPLFNBQ1I7UUFObUIsY0FBUSxHQUFSLFFBQVEsQ0FBb0I7UUFDNUIsdUJBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQUNuQyxxQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7UUFDL0IsV0FBSyxHQUFMLEtBQUssQ0FBWTtRQVg1QixVQUFJLEdBQVEsRUFBRSxDQUFDO1FBRWQsaUJBQVcsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ3RD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dCB7QWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uLCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXN9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3JtaW9Db21wb25lbnQsIEZvcm1pb0Zvcm19IGZyb20gJ2FuZ3VsYXItZm9ybWlvJztcbmltcG9ydCB7QW5ndWxhckRhdGFDb250ZXh0fSBmcm9tICdAdGhlbW9zdC9hbmd1bGFyJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1NlcnZpY2VVcmxQcmVQcm9jZXNzb3IsIFRyYW5zbGF0ZVByZVByb2Nlc3Nvcn0gZnJvbSAnQHVuaXZlcnNpcy9mb3Jtcyc7XG5pbXBvcnQge0FkdmFuY2VkVGFibGVTZWFyY2hCYXNlQ29tcG9uZW50fSBmcm9tICcuLi9hZHZhbmNlZC10YWJsZS9hZHZhbmNlZC10YWJsZS1zZWFyY2gtYmFzZSc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtBZHZhbmNlZFRhYmxlQ29tcG9uZW50fSBmcm9tICcuLi9hZHZhbmNlZC10YWJsZS9hZHZhbmNlZC10YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWFkdmFuY2VkLXNlYXJjaC1mb3JtJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwicC00XCI+XG4gICAgICA8Zm9ybWlvICNmb3JtaW9Db21wb25lbnQgY2xhc3M9XCJmb3JtaW8tc2VhcmNoXCIgKGtleWRvd24pPVwib25LZXlFbnRlcigkZXZlbnQpXCIgKGNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCIgKGZvcm1Mb2FkKT1cIm9uRm9ybUxvYWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgIFtyZWZyZXNoXT1cInJlZnJlc2hGb3JtXCIgW3N1Ym1pc3Npb25dPVwic3VibWlzc2lvblwiIFtmb3JtXT1cImZvcm1cIj48L2Zvcm1pbz5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vYWR2YW5jZWQtc2VhcmNoLWZvcm0uY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBBZHZhbmNlZFNlYXJjaEZvcm1Db21wb25lbnQgZXh0ZW5kcyBBZHZhbmNlZFRhYmxlU2VhcmNoQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMge1xuXG5cbiAgQFZpZXdDaGlsZCgnZm9ybWlvQ29tcG9uZW50JykgZm9ybUNvbXBvbmVudDogRm9ybWlvQ29tcG9uZW50O1xuICBASW5wdXQoKSBmb3JtOiBhbnkgPSB7fTtcbiAgQElucHV0KCkgZm9ybVNyYzogc3RyaW5nO1xuICBAT3V0cHV0KCkgcmVmcmVzaEZvcm0gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGxvYWRpbmcgPSBuZXcgRXZlbnRFbWl0dGVyPHsgdGFyZ2V0OiBBZHZhbmNlZFNlYXJjaEZvcm1Db21wb25lbnR9PigpO1xuICBzdWJtaXNzaW9uOiBhbnkgPSB7IGRhdGE6IHt9IH07XG4gIHByaXZhdGUgZmlsdGVyU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHB1YmxpYyBjb21wb25lbnRMb2FkaW5nID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9jb250ZXh0OiBBbmd1bGFyRGF0YUNvbnRleHQsXG4gICAgICAgICAgICAgIHByaXZhdGUgX3RyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgX2FjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfaHR0cDogSHR0cENsaWVudFxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoY2hhbmdlcywgJ2Zvcm0nKSkge1xuICAgICAgaWYgKGNoYW5nZXMuZm9ybSAhPSBudWxsKSB7XG4gICAgICAgIGlmIChjaGFuZ2VzLmZvcm0uY3VycmVudFZhbHVlICYmXG4gICAgICAgICAgY2hhbmdlcy5mb3JtLmN1cnJlbnRWYWx1ZSAhPSBjaGFuZ2VzLmZvcm0ucHJldmlvdXNWYWx1ZSkge1xuICAgICAgICAgIHRoaXMubmdPbkluaXQoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGNoYW5nZXMsICdmb3JtU3JjJykpIHtcbiAgICAgIGlmIChjaGFuZ2VzLmZvcm1TcmMgIT0gbnVsbCkge1xuICAgICAgICBpZiAoY2hhbmdlcy5mb3JtU3JjLmN1cnJlbnRWYWx1ZSAmJlxuICAgICAgICAgIGNoYW5nZXMuZm9ybVNyYy5jdXJyZW50VmFsdWUgIT0gY2hhbmdlcy5mb3JtU3JjLnByZXZpb3VzVmFsdWUpIHtcbiAgICAgICAgICB0aGlzLl9odHRwLmdldChjaGFuZ2VzLmZvcm1TcmMuY3VycmVudFZhbHVlKS50b1Byb21pc2UoKS50aGVuKChmb3JtKSA9PiB7XG4gICAgICAgICAgICAvLyBzZXQgZm9ybVxuICAgICAgICAgICAgdGhpcy5mb3JtID0gZm9ybTtcbiAgICAgICAgICAgIC8vIGFuZCBpbml0XG4gICAgICAgICAgICB0aGlzLm5nT25Jbml0KCk7XG4gICAgICAgICAgfSkuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcignQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgbG9hZGluZyBzZWFyY2ggY29uZmlndXJhdGlvbicpO1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoY2hhbmdlcywgJ2ZpbHRlcicpKSB7XG4gICAgICBpZiAoY2hhbmdlcy5maWx0ZXIgIT0gbnVsbCkge1xuICAgICAgICB0aGlzLnN1Ym1pc3Npb24uZGF0YSA9IGNoYW5nZXMuZmlsdGVyLmN1cnJlbnRWYWx1ZSB8fCB7fTtcbiAgICAgICAgdGhpcy5yZWZyZXNoRm9ybS5lbWl0KHtcbiAgICAgICAgICBzdWJtaXNzaW9uOiB0aGlzLnN1Ym1pc3Npb25cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZm9ybSkge1xuICAgICAgbmV3IFNlcnZpY2VVcmxQcmVQcm9jZXNzb3IodGhpcy5fY29udGV4dCkucGFyc2UodGhpcy5mb3JtKTtcbiAgICAgIG5ldyBUcmFuc2xhdGVQcmVQcm9jZXNzb3IodGhpcy5fdHJhbnNsYXRlU2VydmljZSkucGFyc2UodGhpcy5mb3JtKTtcbiAgICAgIHRoaXMuc3VibWlzc2lvbiA9IHtcbiAgICAgICAgZGF0YTogdGhpcy5maWx0ZXJcbiAgICAgIH07XG4gICAgICB0aGlzLmxvYWRpbmcuZW1pdCh7XG4gICAgICAgIHRhcmdldDogdGhpc1xuICAgICAgfSk7XG4gICAgICB0aGlzLnJlZnJlc2hGb3JtLmVtaXQoe1xuICAgICAgICBmb3JtOiB0aGlzLmZvcm1cbiAgICAgIH0pO1xuICAgICAgdGhpcy5jb21wb25lbnRMb2FkaW5nID0gZmFsc2U7XG4gICAgICB0aGlzLmZpbHRlclN1YnNjcmlwdGlvbiA9IHRoaXMuZmlsdGVyQ2hhbmdlLnN1YnNjcmliZSggZmlsdGVyID0+IHtcbiAgICAgICAgdGhpcy5zdWJtaXNzaW9uLmRhdGEgPSBmaWx0ZXI7XG4gICAgICAgIHRoaXMucmVmcmVzaEZvcm0uZW1pdCh7XG4gICAgICAgICAgc3VibWlzc2lvbjogdGhpcy5zdWJtaXNzaW9uXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgb25DaGFuZ2UoZXZlbnQ6IG9iamVjdCkge1xuICAgIE9iamVjdC5rZXlzKHRoaXMuZm9ybUNvbXBvbmVudC5zdWJtaXNzaW9uLmRhdGEpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5mb3JtQ29tcG9uZW50LnN1Ym1pc3Npb24uZGF0YSwga2V5KSkge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZm9ybUNvbXBvbmVudC5zdWJtaXNzaW9uLmRhdGFba2V5XTtcbiAgICAgICAgLy8gdGhlIGZpbHRlciB3aXRoIHR5cGUgaXMgYSBzdHJpbmcgYW5kIGlzIG5vdCBlbXB0eVxuICAgICAgICBjb25zdCBpc0VtcHR5U3RyaW5nID0gIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUubGVuZ3RoID09PSAwO1xuICAgICAgICAvLyBkbyBub3QgaW5jbHVkZSBlbXB0eSBvYmplY3RzIGluIGZpbHRlclxuICAgICAgICBjb25zdCBpc0VtcHR5T2JqZWN0ID0gdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiBPYmplY3Qua2V5cyh2YWx1ZSkubGVuZ3RoID09PSAwO1xuICAgICAgICAvLyBtYWtlIGlzRW1wdHlTdHJpbmcsIGlzRW1wdHlPYmplY3QgbXV0ZXhcbiAgICAgICAgaWYgKCFpc0VtcHR5U3RyaW5nICYmICFpc0VtcHR5T2JqZWN0KSB7XG4gICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMuZmlsdGVyLCBrZXksIHtcbiAgICAgICAgICAgIGNvbmZpZ3VyYWJsZSA6IHRydWUsXG4gICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgdmFsdWUgOiB2YWx1ZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGRlbGV0ZSB0aGlzLmZpbHRlcltrZXldO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBvbkZvcm1Mb2FkKGZvcm06IEZvcm1pb0Zvcm0pIHtcbiAgICBjb25zdCBjdXJyZW50TGFuZyA9IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuY3VycmVudExhbmc7XG4gICAgdGhpcy5mb3JtQ29tcG9uZW50LmZvcm1pby5pMThuZXh0Lm9wdGlvbnMucmVzb3VyY2VzW2N1cnJlbnRMYW5nXSA9IHsgdHJhbnNsYXRpb24gOiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoYEZvcm1zYCkgfTtcbiAgICB0aGlzLmZvcm1Db21wb25lbnQuZm9ybWlvLmxhbmd1YWdlID0gY3VycmVudExhbmc7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgLy9cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZpbHRlclN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5maWx0ZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
232
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtc2VhcmNoLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHVuaXZlcnNpcy9uZ3gtdGFibGVzLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvYWR2YW5jZWQtc2VhcmNoLWZvcm0vYWR2YW5jZWQtc2VhcmNoLWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsT0FBTyxFQUFnQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBMkIsTUFBTSxlQUFlLENBQUM7QUFDL0osT0FBTyxFQUFDLGVBQWUsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQzNELE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUMsc0JBQXNCLEVBQUUscUJBQXFCLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUMvRSxPQUFPLEVBQUMsZ0NBQWdDLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUM5RixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0lBZUQsdURBQWdDO0lBWS9FLHFDQUFvQixRQUE0QixFQUM1QixtQkFDQSxpQkFDQTtRQUhwQixZQUtFLGlCQUFPLFNBQ1I7UUFObUIsY0FBUSxHQUFSLFFBQVEsQ0FBb0I7UUFDNUIsdUJBQWlCLEdBQWpCLGlCQUFpQjtRQUNqQixxQkFBZSxHQUFmLGVBQWU7UUFDZixXQUFLLEdBQUwsS0FBSztxQkFYSixFQUFFOzRCQUVDLElBQUksWUFBWSxFQUFPO3dCQUMzQixJQUFJLFlBQVksRUFBMEM7MkJBQzVELEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRTtpQ0FFSixJQUFJOztLQVE3Qjs7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QyxhQUFhLElBQUksSUFBSSxFQUFFO1lBQzlCLE9BQU87U0FDUjs7UUFDRCxJQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsV0FBVyxFQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUM3SCxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEdBQUcsV0FBVyxDQUFDO0tBQ2xEOzs7O0lBRUQscURBQWU7OztJQUFmOztLQUVDOzs7O0lBRUQsaURBQVc7OztJQUFYO1FBQ0UsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDM0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3ZDO0tBQ0Y7O2dCQXhJRixTQUFTLFNBQUM7O29CQUVULFFBQVEsRUFBRSwwQkFBMEI7b0JBQ3BDLFFBQVEsRUFBRSxrVEFNVDtvQkFFRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTs7aUJBQ3RDOzs7O2dCQXBCTyxrQkFBa0I7Z0JBSWxCLGdCQUFnQjtnQkFIaEIsY0FBYztnQkFLYixVQUFVOzs7Z0NBa0JoQixTQUFTLFNBQUMsaUJBQWlCO3VCQUMzQixLQUFLOzBCQUNMLEtBQUs7OEJBQ0wsTUFBTTswQkFDTixNQUFNOztzQ0EvQlQ7RUF3QmlELGdDQUFnQztTQUFwRSwyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bWF4LWxpbmUtbGVuZ3RoXG5pbXBvcnQge0FmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Rm9ybWlvQ29tcG9uZW50LCBGb3JtaW9Gb3JtfSBmcm9tICdhbmd1bGFyLWZvcm1pbyc7XG5pbXBvcnQge0FuZ3VsYXJEYXRhQ29udGV4dH0gZnJvbSAnQHRoZW1vc3QvYW5ndWxhcic7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtTZXJ2aWNlVXJsUHJlUHJvY2Vzc29yLCBUcmFuc2xhdGVQcmVQcm9jZXNzb3J9IGZyb20gJ0B1bml2ZXJzaXMvZm9ybXMnO1xuaW1wb3J0IHtBZHZhbmNlZFRhYmxlU2VhcmNoQmFzZUNvbXBvbmVudH0gZnJvbSAnLi4vYWR2YW5jZWQtdGFibGUvYWR2YW5jZWQtdGFibGUtc2VhcmNoLWJhc2UnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5cbkBDb21wb25lbnQoe1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Y29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnYXBwLWFkdmFuY2VkLXNlYXJjaC1mb3JtJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IGNsYXNzPVwicC00XCI+XG4gICAgICA8Zm9ybWlvICNmb3JtaW9Db21wb25lbnQgY2xhc3M9XCJmb3JtaW8tc2VhcmNoXCJcbiAgICAgICAgICAgICAgKGtleWRvd24pPVwib25LZXlFbnRlcigkZXZlbnQpXCIgKGNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCIgKGZvcm1Mb2FkKT1cIm9uRm9ybUxvYWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgIFtyZWZyZXNoXT1cInJlZnJlc2hGb3JtXCIgW3N1Ym1pc3Npb25dPVwic3VibWlzc2lvblwiIFtmb3JtXT1cImZvcm1cIj48L2Zvcm1pbz5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vYWR2YW5jZWQtc2VhcmNoLWZvcm0uY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBBZHZhbmNlZFNlYXJjaEZvcm1Db21wb25lbnQgZXh0ZW5kcyBBZHZhbmNlZFRhYmxlU2VhcmNoQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMge1xuXG5cbiAgQFZpZXdDaGlsZCgnZm9ybWlvQ29tcG9uZW50JykgZm9ybUNvbXBvbmVudD86IEZvcm1pb0NvbXBvbmVudDtcbiAgQElucHV0KCkgZm9ybTogYW55ID0ge307XG4gIEBJbnB1dCgpIGZvcm1TcmM/OiBzdHJpbmc7XG4gIEBPdXRwdXQoKSByZWZyZXNoRm9ybSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgbG9hZGluZyA9IG5ldyBFdmVudEVtaXR0ZXI8eyB0YXJnZXQ6IEFkdmFuY2VkU2VhcmNoRm9ybUNvbXBvbmVudH0+KCk7XG4gIHN1Ym1pc3Npb246IGFueSA9IHsgZGF0YToge30gfTtcbiAgcHJpdmF0ZSBmaWx0ZXJTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG4gIHB1YmxpYyBjb21wb25lbnRMb2FkaW5nID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9jb250ZXh0OiBBbmd1bGFyRGF0YUNvbnRleHQsXG4gICAgICAgICAgICAgIHByaXZhdGUgX3RyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgICAgICAgIHByaXZhdGUgX2FjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBfaHR0cDogSHR0cENsaWVudFxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoY2hhbmdlcywgJ2Zvcm0nKSkge1xuICAgICAgaWYgKGNoYW5nZXMuZm9ybSAhPSBudWxsKSB7XG4gICAgICAgIGlmIChjaGFuZ2VzLmZvcm0uY3VycmVudFZhbHVlICYmXG4gICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnRyaXBsZS1lcXVhbHNcbiAgICAgICAgICBjaGFuZ2VzLmZvcm0uY3VycmVudFZhbHVlICE9IGNoYW5nZXMuZm9ybS5wcmV2aW91c1ZhbHVlKSB7XG4gICAgICAgICAgdGhpcy5uZ09uSW5pdCgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoY2hhbmdlcywgJ2Zvcm1TcmMnKSkge1xuICAgICAgaWYgKGNoYW5nZXMuZm9ybVNyYyAhPSBudWxsKSB7XG4gICAgICAgIGlmIChjaGFuZ2VzLmZvcm1TcmMuY3VycmVudFZhbHVlICYmXG4gICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnRyaXBsZS1lcXVhbHNcbiAgICAgICAgICBjaGFuZ2VzLmZvcm1TcmMuY3VycmVudFZhbHVlICE9IGNoYW5nZXMuZm9ybVNyYy5wcmV2aW91c1ZhbHVlKSB7XG4gICAgICAgICAgdGhpcy5faHR0cC5nZXQoY2hhbmdlcy5mb3JtU3JjLmN1cnJlbnRWYWx1ZSkudG9Qcm9taXNlKCkudGhlbigoZm9ybSkgPT4ge1xuICAgICAgICAgICAgLy8gc2V0IGZvcm1cbiAgICAgICAgICAgIHRoaXMuZm9ybSA9IGZvcm07XG4gICAgICAgICAgICAvLyBhbmQgaW5pdFxuICAgICAgICAgICAgdGhpcy5uZ09uSW5pdCgpO1xuICAgICAgICAgIH0pLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0FuIGVycm9yIG9jY3VycmVkIHdoaWxlIGxvYWRpbmcgc2VhcmNoIGNvbmZpZ3VyYXRpb24nKTtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGNoYW5nZXMsICdmaWx0ZXInKSkge1xuICAgICAgaWYgKGNoYW5nZXMuZmlsdGVyICE9IG51bGwpIHtcbiAgICAgICAgdGhpcy5zdWJtaXNzaW9uLmRhdGEgPSBjaGFuZ2VzLmZpbHRlci5jdXJyZW50VmFsdWUgfHwge307XG4gICAgICAgIHRoaXMucmVmcmVzaEZvcm0uZW1pdCh7XG4gICAgICAgICAgc3VibWlzc2lvbjogdGhpcy5zdWJtaXNzaW9uXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZvcm0pIHtcbiAgICAgIG5ldyBTZXJ2aWNlVXJsUHJlUHJvY2Vzc29yKHRoaXMuX2NvbnRleHQpLnBhcnNlKHRoaXMuZm9ybSk7XG4gICAgICBuZXcgVHJhbnNsYXRlUHJlUHJvY2Vzc29yKHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UpLnBhcnNlKHRoaXMuZm9ybSk7XG4gICAgICB0aGlzLnN1Ym1pc3Npb24gPSB7XG4gICAgICAgIGRhdGE6IHRoaXMuZmlsdGVyXG4gICAgICB9O1xuICAgICAgdGhpcy5sb2FkaW5nLmVtaXQoe1xuICAgICAgICB0YXJnZXQ6IHRoaXNcbiAgICAgIH0pO1xuICAgICAgdGhpcy5yZWZyZXNoRm9ybS5lbWl0KHtcbiAgICAgICAgZm9ybTogdGhpcy5mb3JtXG4gICAgICB9KTtcbiAgICAgIHRoaXMuY29tcG9uZW50TG9hZGluZyA9IGZhbHNlO1xuICAgICAgdGhpcy5maWx0ZXJTdWJzY3JpcHRpb24gPSB0aGlzLmZpbHRlckNoYW5nZS5zdWJzY3JpYmUoIGZpbHRlciA9PiB7XG4gICAgICAgIHRoaXMuc3VibWlzc2lvbi5kYXRhID0gZmlsdGVyO1xuICAgICAgICB0aGlzLnJlZnJlc2hGb3JtLmVtaXQoe1xuICAgICAgICAgIHN1Ym1pc3Npb246IHRoaXMuc3VibWlzc2lvblxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG9uQ2hhbmdlKGV2ZW50OiBvYmplY3QpIHtcbiAgICBpZiAodGhpcy5mb3JtQ29tcG9uZW50ID09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZm9ybUNvbXBvbmVudCA9IHRoaXMuZm9ybUNvbXBvbmVudDtcbiAgICBPYmplY3Qua2V5cyhmb3JtQ29tcG9uZW50LnN1Ym1pc3Npb24uZGF0YSkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChmb3JtQ29tcG9uZW50LnN1Ym1pc3Npb24uZGF0YSwga2V5KSkge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGZvcm1Db21wb25lbnQuc3VibWlzc2lvbi5kYXRhW2tleV07XG4gICAgICAgIC8vIHRoZSBmaWx0ZXIgd2l0aCB0eXBlIGlzIGEgc3RyaW5nIGFuZCBpcyBub3QgZW1wdHlcbiAgICAgICAgY29uc3QgaXNFbXB0eVN0cmluZyA9ICB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlLmxlbmd0aCA9PT0gMDtcbiAgICAgICAgLy8gZG8gbm90IGluY2x1ZGUgZW1wdHkgb2JqZWN0cyBpbiBmaWx0ZXJcbiAgICAgICAgY29uc3QgaXNFbXB0eU9iamVjdCA9IHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgT2JqZWN0LmtleXModmFsdWUpLmxlbmd0aCA9PT0gMDtcbiAgICAgICAgLy8gbWFrZSBpc0VtcHR5U3RyaW5nLCBpc0VtcHR5T2JqZWN0IG11dGV4XG4gICAgICAgIGlmICghaXNFbXB0eVN0cmluZyAmJiAhaXNFbXB0eU9iamVjdCkge1xuICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLmZpbHRlciwga2V5LCB7XG4gICAgICAgICAgICBjb25maWd1cmFibGUgOiB0cnVlLFxuICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgIHZhbHVlIDogdmFsdWVcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBkZWxldGUgdGhpcy5maWx0ZXJba2V5XTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgb25Gb3JtTG9hZChmb3JtOiBGb3JtaW9Gb3JtKSB7XG4gICAgaWYgKHRoaXMuZm9ybUNvbXBvbmVudCA9PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGN1cnJlbnRMYW5nID0gdGhpcy5fdHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZztcbiAgICB0aGlzLmZvcm1Db21wb25lbnQuZm9ybWlvLmkxOG5leHQub3B0aW9ucy5yZXNvdXJjZXNbY3VycmVudExhbmddID0geyB0cmFuc2xhdGlvbiA6IHRoaXMuX3RyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChgRm9ybXNgKSB9O1xuICAgIHRoaXMuZm9ybUNvbXBvbmVudC5mb3JtaW8ubGFuZ3VhZ2UgPSBjdXJyZW50TGFuZztcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAvL1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZmlsdGVyU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmZpbHRlclN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxufVxuIl19