@po-ui/ng-components 6.6.0 → 6.9.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 (38) hide show
  1. package/esm2020/lib/components/po-chart/interfaces/po-chart-serie.interface.mjs +1 -1
  2. package/esm2020/lib/components/po-field/po-checkbox/po-checkbox-base.component.mjs +12 -4
  3. package/esm2020/lib/components/po-field/po-checkbox/po-checkbox.component.mjs +15 -10
  4. package/esm2020/lib/components/po-field/po-combo/po-combo-base.component.mjs +45 -3
  5. package/esm2020/lib/components/po-field/po-combo/po-combo-filter.service.mjs +16 -8
  6. package/esm2020/lib/components/po-field/po-combo/po-combo.component.mjs +221 -112
  7. package/esm2020/lib/components/po-field/po-rich-text/po-rich-text-toolbar/po-rich-text-toolbar.component.mjs +5 -3
  8. package/esm2020/lib/components/po-table/po-table-base.component.mjs +18 -2
  9. package/esm2020/lib/components/po-table/po-table-column-manager/po-table-column-manager.component.mjs +10 -2
  10. package/esm2020/lib/components/po-table/po-table.component.mjs +987 -433
  11. package/esm2020/lib/directives/po-tooltip/po-tooltip-base.directive.mjs +2 -2
  12. package/esm2020/lib/directives/po-tooltip/po-tooltip.directive.mjs +32 -2
  13. package/esm2020/lib/services/po-color/po-color.service.mjs +3 -2
  14. package/fesm2015/po-ui-ng-components.mjs +1515 -601
  15. package/fesm2015/po-ui-ng-components.mjs.map +1 -1
  16. package/fesm2020/po-ui-ng-components.mjs +1346 -565
  17. package/fesm2020/po-ui-ng-components.mjs.map +1 -1
  18. package/lib/components/po-chart/interfaces/po-chart-serie.interface.d.ts +3 -0
  19. package/lib/components/po-field/po-checkbox/po-checkbox-base.component.d.ts +12 -4
  20. package/lib/components/po-field/po-checkbox/po-checkbox.component.d.ts +2 -2
  21. package/lib/components/po-field/po-combo/po-combo-base.component.d.ts +30 -1
  22. package/lib/components/po-field/po-combo/po-combo-filter.service.d.ts +3 -0
  23. package/lib/components/po-field/po-combo/po-combo.component.d.ts +22 -3
  24. package/lib/components/po-table/po-table-base.component.d.ts +12 -1
  25. package/lib/components/po-table/po-table-column-manager/po-table-column-manager.component.d.ts +3 -1
  26. package/lib/components/po-table/po-table.component.d.ts +3 -0
  27. package/lib/directives/po-tooltip/po-tooltip-base.directive.d.ts +1 -1
  28. package/lib/directives/po-tooltip/po-tooltip.directive.d.ts +3 -0
  29. package/lib/services/po-color/po-color.service.d.ts +1 -0
  30. package/package.json +4 -4
  31. package/po-ui-ng-components-6.9.0.tgz +0 -0
  32. package/schematics/ng-add/index.js +1 -1
  33. package/schematics/ng-update/v2/index.js +1 -1
  34. package/schematics/ng-update/v3/index.js +1 -1
  35. package/schematics/ng-update/v4/index.js +1 -1
  36. package/schematics/ng-update/v5/index.js +1 -1
  37. package/schematics/ng-update/v6/index.js +1 -1
  38. package/po-ui-ng-components-6.6.0.tgz +0 -0
@@ -1,6 +1,7 @@
1
1
  import { HttpHeaders } from '@angular/common/http';
2
2
  import { Injectable } from '@angular/core';
3
- import { map } from 'rxjs/operators';
3
+ import { fromEvent } from 'rxjs';
4
+ import { debounceTime, map, tap } from 'rxjs/operators';
4
5
  import { validateObjectType } from '../../../utils/util';
5
6
  import * as i0 from "@angular/core";
6
7
  import * as i1 from "@angular/common/http";
@@ -16,6 +17,7 @@ export class PoComboFilterService {
16
17
  this.http = http;
17
18
  this.fieldLabel = 'label';
18
19
  this.fieldValue = 'value';
20
+ this.hasNext = true;
19
21
  this.headers = new HttpHeaders({
20
22
  'X-PO-No-Message': 'true'
21
23
  });
@@ -25,12 +27,8 @@ export class PoComboFilterService {
25
27
  return this._url;
26
28
  }
27
29
  getFilteredData(param, filterParams) {
28
- const value = param.value;
29
- const filterParamsValidated = validateObjectType(filterParams);
30
- const params = { ...filterParamsValidated, filter: value };
31
- return this.http
32
- .get(`${this.url}`, { responseType: 'json', params, headers: this.headers })
33
- .pipe(map((response) => this.parseToArrayComboOption(response.items)));
30
+ const params = this.prepareParams(param, filterParams);
31
+ return this.http.get(`${this.url}`, { responseType: 'json', params, headers: this.headers }).pipe(tap(res => (this.hasNext = res['hasNext'])), map((response) => this.parseToArrayComboOption(response.items)));
34
32
  }
35
33
  getObjectByValue(value, filterParams) {
36
34
  const filterParamsValidated = validateObjectType(filterParams);
@@ -43,6 +41,16 @@ export class PoComboFilterService {
43
41
  this.fieldLabel = fieldLabel;
44
42
  this.fieldValue = fieldValue;
45
43
  }
44
+ scrollListener(componentListner) {
45
+ return fromEvent(componentListner, 'scroll').pipe(debounceTime(100));
46
+ }
47
+ prepareParams(param, filterParams) {
48
+ const { page, pageSize, value } = param;
49
+ const filterParamsValidated = validateObjectType(filterParams);
50
+ return page
51
+ ? { ...filterParamsValidated, page, pageSize, filter: value }
52
+ : { ...filterParamsValidated, filter: value };
53
+ }
46
54
  parseToArrayComboOption(items) {
47
55
  if (items && items.length > 0) {
48
56
  const parsedOptions = items.map(item => this.parseToComboOption(item));
@@ -76,4 +84,4 @@ PoComboFilterService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: PoC
76
84
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoComboFilterService, [{
77
85
  type: Injectable
78
86
  }], function () { return [{ type: i1.HttpClient }]; }, null); })();
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tY29tYm8tZmlsdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NvbXBvbmVudHMvcG8tZmllbGQvcG8tY29tYm8vcG8tY29tYm8tZmlsdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBS3JDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7QUFFekQ7Ozs7OztHQU1HO0FBRUgsTUFBTSxPQUFPLG9CQUFvQjtJQWUvQixZQUFvQixJQUFnQjtRQUFoQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBZHBDLGVBQVUsR0FBVyxPQUFPLENBQUM7UUFDN0IsZUFBVSxHQUFXLE9BQU8sQ0FBQztRQUVwQixZQUFPLEdBQWdCLElBQUksV0FBVyxDQUFDO1lBQzlDLGlCQUFpQixFQUFFLE1BQU07U0FDMUIsQ0FBQyxDQUFDO1FBR0ssYUFBUSxHQUFHLEVBQUUsQ0FBQztJQU1pQixDQUFDO0lBSnhDLElBQUksR0FBRztRQUNMLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0lBSUQsZUFBZSxDQUFDLEtBQVUsRUFBRSxZQUFrQjtRQUM1QyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQzFCLE1BQU0scUJBQXFCLEdBQUcsa0JBQWtCLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFL0QsTUFBTSxNQUFNLEdBQUcsRUFBRSxHQUFHLHFCQUFxQixFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUUzRCxPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQzthQUMzRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBb0IsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkYsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQXNCLEVBQUUsWUFBa0I7UUFDekQsTUFBTSxxQkFBcUIsR0FBRyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUUvRCxPQUFPLElBQUksQ0FBQyxJQUFJO2FBQ2IsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxLQUFLLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxxQkFBcUIsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO2FBQ3JGLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxHQUFXLEVBQUUsVUFBa0IsRUFBRSxVQUFrQjtRQUNsRSxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztRQUNoQixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUMvQixDQUFDO0lBRU8sdUJBQXVCLENBQUMsS0FBaUI7UUFDL0MsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDN0IsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBRXZFLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUV2QixPQUFPLGFBQWEsQ0FBQztTQUN0QjtRQUVELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVPLGtCQUFrQixDQUFDLElBQVM7UUFDbEMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUM1QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFFdkMsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQztTQUN0QjtRQUVELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDcEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVwQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTyxVQUFVLENBQUMsSUFBSSxFQUFFLFFBQWdCO1FBQ3ZDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLHlCQUF5QixRQUFRLFFBQVEsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7OEVBQ04sQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFTyxlQUFlO1FBQ3JCLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUU7WUFDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFFekQsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7U0FDcEI7SUFDSCxDQUFDOzt3RkE5RVUsb0JBQW9COzBFQUFwQixvQkFBb0IsV0FBcEIsb0JBQW9CO3VGQUFwQixvQkFBb0I7Y0FEaEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFBvQ29tYm9GaWx0ZXIgfSBmcm9tICcuL2ludGVyZmFjZXMvcG8tY29tYm8tZmlsdGVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb0NvbWJvT3B0aW9uIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLWNvbWJvLW9wdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9SZXNwb25zZSB9IGZyb20gJy4vaW50ZXJmYWNlcy9wby1yZXNwb25zZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgdmFsaWRhdGVPYmplY3RUeXBlIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvdXRpbCc7XG5cbi8qKlxuICogQGRvY3NQcml2YXRlXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKlxuICogU2VydmnDp28gcGFkcsOjbyB1dGlsaXphZG8gcGFyYSBmaWx0cmFyIG9zIGRhZG9zIGRvIGNvbXBvbmVudGUgcG8tY29tYm8uXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBQb0NvbWJvRmlsdGVyU2VydmljZSBpbXBsZW1lbnRzIFBvQ29tYm9GaWx0ZXIge1xuICBmaWVsZExhYmVsOiBzdHJpbmcgPSAnbGFiZWwnO1xuICBmaWVsZFZhbHVlOiBzdHJpbmcgPSAndmFsdWUnO1xuXG4gIHJlYWRvbmx5IGhlYWRlcnM6IEh0dHBIZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKHtcbiAgICAnWC1QTy1Oby1NZXNzYWdlJzogJ3RydWUnXG4gIH0pO1xuXG4gIHByaXZhdGUgX3VybDogc3RyaW5nO1xuICBwcml2YXRlIG1lc3NhZ2VzID0gW107XG5cbiAgZ2V0IHVybCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl91cmw7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQpIHt9XG5cbiAgZ2V0RmlsdGVyZWREYXRhKHBhcmFtOiBhbnksIGZpbHRlclBhcmFtcz86IGFueSk6IE9ic2VydmFibGU8QXJyYXk8UG9Db21ib09wdGlvbj4+IHtcbiAgICBjb25zdCB2YWx1ZSA9IHBhcmFtLnZhbHVlO1xuICAgIGNvbnN0IGZpbHRlclBhcmFtc1ZhbGlkYXRlZCA9IHZhbGlkYXRlT2JqZWN0VHlwZShmaWx0ZXJQYXJhbXMpO1xuXG4gICAgY29uc3QgcGFyYW1zID0geyAuLi5maWx0ZXJQYXJhbXNWYWxpZGF0ZWQsIGZpbHRlcjogdmFsdWUgfTtcblxuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQoYCR7dGhpcy51cmx9YCwgeyByZXNwb25zZVR5cGU6ICdqc29uJywgcGFyYW1zLCBoZWFkZXJzOiB0aGlzLmhlYWRlcnMgfSlcbiAgICAgIC5waXBlKG1hcCgocmVzcG9uc2U6IFBvUmVzcG9uc2UpID0+IHRoaXMucGFyc2VUb0FycmF5Q29tYm9PcHRpb24ocmVzcG9uc2UuaXRlbXMpKSk7XG4gIH1cblxuICBnZXRPYmplY3RCeVZhbHVlKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIsIGZpbHRlclBhcmFtcz86IGFueSk6IE9ic2VydmFibGU8UG9Db21ib09wdGlvbj4ge1xuICAgIGNvbnN0IGZpbHRlclBhcmFtc1ZhbGlkYXRlZCA9IHZhbGlkYXRlT2JqZWN0VHlwZShmaWx0ZXJQYXJhbXMpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldChgJHt0aGlzLnVybH0vJHt2YWx1ZX1gLCB7IHBhcmFtczogZmlsdGVyUGFyYW1zVmFsaWRhdGVkLCBoZWFkZXJzOiB0aGlzLmhlYWRlcnMgfSlcbiAgICAgIC5waXBlKG1hcChpdGVtID0+IHRoaXMucGFyc2VUb0NvbWJvT3B0aW9uKGl0ZW0pKSk7XG4gIH1cblxuICBjb25maWdQcm9wZXJ0aWVzKHVybDogc3RyaW5nLCBmaWVsZExhYmVsOiBzdHJpbmcsIGZpZWxkVmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX3VybCA9IHVybDtcbiAgICB0aGlzLmZpZWxkTGFiZWwgPSBmaWVsZExhYmVsO1xuICAgIHRoaXMuZmllbGRWYWx1ZSA9IGZpZWxkVmFsdWU7XG4gIH1cblxuICBwcml2YXRlIHBhcnNlVG9BcnJheUNvbWJvT3B0aW9uKGl0ZW1zOiBBcnJheTxhbnk+KTogQXJyYXk8UG9Db21ib09wdGlvbj4ge1xuICAgIGlmIChpdGVtcyAmJiBpdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBwYXJzZWRPcHRpb25zID0gaXRlbXMubWFwKGl0ZW0gPT4gdGhpcy5wYXJzZVRvQ29tYm9PcHRpb24oaXRlbSkpO1xuXG4gICAgICB0aGlzLmRpc3BsYXlNZXNzYWdlcygpO1xuXG4gICAgICByZXR1cm4gcGFyc2VkT3B0aW9ucztcbiAgICB9XG5cbiAgICByZXR1cm4gW107XG4gIH1cblxuICBwcml2YXRlIHBhcnNlVG9Db21ib09wdGlvbihpdGVtOiBhbnkpOiBQb0NvbWJvT3B0aW9uIHtcbiAgICBpZiAoIWl0ZW0/Llt0aGlzLmZpZWxkVmFsdWVdKSB7XG4gICAgICB0aGlzLmFkZE1lc3NhZ2UoaXRlbSwgdGhpcy5maWVsZFZhbHVlKTtcblxuICAgICAgcmV0dXJuIHsgdmFsdWU6ICcnIH07XG4gICAgfVxuXG4gICAgY29uc3QgbGFiZWwgPSBpdGVtW3RoaXMuZmllbGRMYWJlbF07XG4gICAgY29uc3QgdmFsdWUgPSBpdGVtW3RoaXMuZmllbGRWYWx1ZV07XG5cbiAgICByZXR1cm4geyBsYWJlbCwgdmFsdWUgfTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkTWVzc2FnZShpdGVtLCBwcm9wZXJ0eTogc3RyaW5nKSB7XG4gICAgdGhpcy5tZXNzYWdlcy5wdXNoKGBDYW5ub3QgcmVhZCBwcm9wZXJ0eSBcIiR7cHJvcGVydHl9XCIgb2YgJHtKU09OLnN0cmluZ2lmeShpdGVtKX0sXG4gICAgICBzZWUgW3AtZmllbGQtdmFsdWVdIHByb3BlcnR5IGF0IGh0dHBzOi8vcG8tdWkuaW8vZG9jdW1lbnRhdGlvbi9wby1jb21ib2ApO1xuICB9XG5cbiAgcHJpdmF0ZSBkaXNwbGF5TWVzc2FnZXMoKSB7XG4gICAgaWYgKHRoaXMubWVzc2FnZXMubGVuZ3RoKSB7XG4gICAgICB0aGlzLm1lc3NhZ2VzLmZvckVhY2gobWVzc2FnZSA9PiBjb25zb2xlLmVycm9yKG1lc3NhZ2UpKTtcblxuICAgICAgdGhpcy5tZXNzYWdlcyA9IFtdO1xuICAgIH1cbiAgfVxufVxuIl19
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tY29tYm8tZmlsdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NvbXBvbmVudHMvcG8tZmllbGQvcG8tY29tYm8vcG8tY29tYm8tZmlsdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLFNBQVMsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUt4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBRXpEOzs7Ozs7R0FNRztBQUVILE1BQU0sT0FBTyxvQkFBb0I7SUFnQi9CLFlBQW9CLElBQWdCO1FBQWhCLFNBQUksR0FBSixJQUFJLENBQVk7UUFmcEMsZUFBVSxHQUFXLE9BQU8sQ0FBQztRQUM3QixlQUFVLEdBQVcsT0FBTyxDQUFDO1FBQzdCLFlBQU8sR0FBWSxJQUFJLENBQUM7UUFFZixZQUFPLEdBQWdCLElBQUksV0FBVyxDQUFDO1lBQzlDLGlCQUFpQixFQUFFLE1BQU07U0FDMUIsQ0FBQyxDQUFDO1FBR0ssYUFBUSxHQUFHLEVBQUUsQ0FBQztJQU1pQixDQUFDO0lBSnhDLElBQUksR0FBRztRQUNMLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0lBSUQsZUFBZSxDQUFDLEtBQVUsRUFBRSxZQUFrQjtRQUM1QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsQ0FBQztRQUN2RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcs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QU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVPLFVBQVUsQ0FBQyxJQUFJLEVBQUUsUUFBZ0I7UUFDdkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMseUJBQXlCLFFBQVEsUUFBUSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQzs4RUFDTixDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVPLGVBQWU7UUFDckIsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRTtZQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUV6RCxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztTQUNwQjtJQUNILENBQUM7O3dGQXpGVSxvQkFBb0I7MEVBQXBCLG9CQUFvQixXQUFwQixvQkFBb0I7dUZBQXBCLG9CQUFvQjtjQURoQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IGZyb21FdmVudCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBtYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgUG9Db21ib0ZpbHRlciB9IGZyb20gJy4vaW50ZXJmYWNlcy9wby1jb21iby1maWx0ZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvQ29tYm9PcHRpb24gfSBmcm9tICcuL2ludGVyZmFjZXMvcG8tY29tYm8tb3B0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb1Jlc3BvbnNlIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLXJlc3BvbnNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyB2YWxpZGF0ZU9iamVjdFR5cGUgfSBmcm9tICcuLi8uLi8uLi91dGlscy91dGlsJztcblxuLyoqXG4gKiBAZG9jc1ByaXZhdGVcbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqXG4gKiBTZXJ2acOnbyBwYWRyw6NvIHV0aWxpemFkbyBwYXJhIGZpbHRyYXIgb3MgZGFkb3MgZG8gY29tcG9uZW50ZSBwby1jb21iby5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFBvQ29tYm9GaWx0ZXJTZXJ2aWNlIGltcGxlbWVudHMgUG9Db21ib0ZpbHRlciB7XG4gIGZpZWxkTGFiZWw6IHN0cmluZyA9ICdsYWJlbCc7XG4gIGZpZWxkVmFsdWU6IHN0cmluZyA9ICd2YWx1ZSc7XG4gIGhhc05leHQ6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIHJlYWRvbmx5IGhlYWRlcnM6IEh0dHBIZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKHtcbiAgICAnWC1QTy1Oby1NZXNzYWdlJzogJ3RydWUnXG4gIH0pO1xuXG4gIHByaXZhdGUgX3VybDogc3RyaW5nO1xuICBwcml2YXRlIG1lc3NhZ2VzID0gW107XG5cbiAgZ2V0IHVybCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl91cmw7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQpIHt9XG5cbiAgZ2V0RmlsdGVyZWREYXRhKHBhcmFtOiBhbnksIGZpbHRlclBhcmFtcz86IGFueSk6IE9ic2VydmFibGU8QXJyYXk8UG9Db21ib09wdGlvbj4+IHtcbiAgICBjb25zdCBwYXJhbXMgPSB0aGlzLnByZXBhcmVQYXJhbXMocGFyYW0sIGZpbHRlclBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy51cmx9YCwgeyByZXNwb25zZVR5cGU6ICdqc29uJywgcGFyYW1zLCBoZWFkZXJzOiB0aGlzLmhlYWRlcnMgfSkucGlwZShcbiAgICAgIHRhcChyZXMgPT4gKHRoaXMuaGFzTmV4dCA9IHJlc1snaGFzTmV4dCddKSksXG4gICAgICBtYXAoKHJlc3BvbnNlOiBQb1Jlc3BvbnNlKSA9PiB0aGlzLnBhcnNlVG9BcnJheUNvbWJvT3B0aW9uKHJlc3BvbnNlLml0ZW1zKSlcbiAgICApO1xuICB9XG5cbiAgZ2V0T2JqZWN0QnlWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyLCBmaWx0ZXJQYXJhbXM/OiBhbnkpOiBPYnNlcnZhYmxlPFBvQ29tYm9PcHRpb24+IHtcbiAgICBjb25zdCBmaWx0ZXJQYXJhbXNWYWxpZGF0ZWQgPSB2YWxpZGF0ZU9iamVjdFR5cGUoZmlsdGVyUGFyYW1zKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQoYCR7dGhpcy51cmx9LyR7dmFsdWV9YCwgeyBwYXJhbXM6IGZpbHRlclBhcmFtc1ZhbGlkYXRlZCwgaGVhZGVyczogdGhpcy5oZWFkZXJzIH0pXG4gICAgICAucGlwZShtYXAoaXRlbSA9PiB0aGlzLnBhcnNlVG9Db21ib09wdGlvbihpdGVtKSkpO1xuICB9XG5cbiAgY29uZmlnUHJvcGVydGllcyh1cmw6IHN0cmluZywgZmllbGRMYWJlbDogc3RyaW5nLCBmaWVsZFZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl91cmwgPSB1cmw7XG4gICAgdGhpcy5maWVsZExhYmVsID0gZmllbGRMYWJlbDtcbiAgICB0aGlzLmZpZWxkVmFsdWUgPSBmaWVsZFZhbHVlO1xuICB9XG5cbiAgc2Nyb2xsTGlzdGVuZXIoY29tcG9uZW50TGlzdG5lcjogSFRNTEVsZW1lbnQpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiBmcm9tRXZlbnQoY29tcG9uZW50TGlzdG5lciwgJ3Njcm9sbCcpLnBpcGUoZGVib3VuY2VUaW1lKDEwMCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBwcmVwYXJlUGFyYW1zKHBhcmFtOiBhbnksIGZpbHRlclBhcmFtcz86IGFueSkge1xuICAgIGNvbnN0IHsgcGFnZSwgcGFnZVNpemUsIHZhbHVlIH0gPSBwYXJhbTtcbiAgICBjb25zdCBmaWx0ZXJQYXJhbXNWYWxpZGF0ZWQgPSB2YWxpZGF0ZU9iamVjdFR5cGUoZmlsdGVyUGFyYW1zKTtcblxuICAgIHJldHVybiBwYWdlXG4gICAgICA/IHsgLi4uZmlsdGVyUGFyYW1zVmFsaWRhdGVkLCBwYWdlLCBwYWdlU2l6ZSwgZmlsdGVyOiB2YWx1ZSB9XG4gICAgICA6IHsgLi4uZmlsdGVyUGFyYW1zVmFsaWRhdGVkLCBmaWx0ZXI6IHZhbHVlIH07XG4gIH1cblxuICBwcml2YXRlIHBhcnNlVG9BcnJheUNvbWJvT3B0aW9uKGl0ZW1zOiBBcnJheTxhbnk+KTogQXJyYXk8UG9Db21ib09wdGlvbj4ge1xuICAgIGlmIChpdGVtcyAmJiBpdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBwYXJzZWRPcHRpb25zID0gaXRlbXMubWFwKGl0ZW0gPT4gdGhpcy5wYXJzZVRvQ29tYm9PcHRpb24oaXRlbSkpO1xuXG4gICAgICB0aGlzLmRpc3BsYXlNZXNzYWdlcygpO1xuXG4gICAgICByZXR1cm4gcGFyc2VkT3B0aW9ucztcbiAgICB9XG5cbiAgICByZXR1cm4gW107XG4gIH1cblxuICBwcml2YXRlIHBhcnNlVG9Db21ib09wdGlvbihpdGVtOiBhbnkpOiBQb0NvbWJvT3B0aW9uIHtcbiAgICBpZiAoIWl0ZW0/Llt0aGlzLmZpZWxkVmFsdWVdKSB7XG4gICAgICB0aGlzLmFkZE1lc3NhZ2UoaXRlbSwgdGhpcy5maWVsZFZhbHVlKTtcblxuICAgICAgcmV0dXJuIHsgdmFsdWU6ICcnIH07XG4gICAgfVxuXG4gICAgY29uc3QgbGFiZWwgPSBpdGVtW3RoaXMuZmllbGRMYWJlbF07XG4gICAgY29uc3QgdmFsdWUgPSBpdGVtW3RoaXMuZmllbGRWYWx1ZV07XG5cbiAgICByZXR1cm4geyBsYWJlbCwgdmFsdWUgfTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkTWVzc2FnZShpdGVtLCBwcm9wZXJ0eTogc3RyaW5nKSB7XG4gICAgdGhpcy5tZXNzYWdlcy5wdXNoKGBDYW5ub3QgcmVhZCBwcm9wZXJ0eSBcIiR7cHJvcGVydHl9XCIgb2YgJHtKU09OLnN0cmluZ2lmeShpdGVtKX0sXG4gICAgICBzZWUgW3AtZmllbGQtdmFsdWVdIHByb3BlcnR5IGF0IGh0dHBzOi8vcG8tdWkuaW8vZG9jdW1lbnRhdGlvbi9wby1jb21ib2ApO1xuICB9XG5cbiAgcHJpdmF0ZSBkaXNwbGF5TWVzc2FnZXMoKSB7XG4gICAgaWYgKHRoaXMubWVzc2FnZXMubGVuZ3RoKSB7XG4gICAgICB0aGlzLm1lc3NhZ2VzLmZvckVhY2gobWVzc2FnZSA9PiBjb25zb2xlLmVycm9yKG1lc3NhZ2UpKTtcblxuICAgICAgdGhpcy5tZXNzYWdlcyA9IFtdO1xuICAgIH1cbiAgfVxufVxuIl19