@guajiritos/general-autocomplete 0.1.8 → 0.1.9

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 (30) hide show
  1. package/README.md +0 -1
  2. package/esm2022/lib/guachos-general-autocomplete.component.mjs +29 -48
  3. package/esm2022/utils/interfaces/interfaces.mjs +2 -12
  4. package/esm2022/utils/pipes/i18n-field.pipe.mjs +8 -1
  5. package/esm2022/utils/pipes/pipes.module.mjs +10 -62
  6. package/esm2022/utils/pipes/resolve-property-path.pipe.mjs +11 -58
  7. package/esm2022/utils/services/autocomplete.service.mjs +39 -1
  8. package/esm2022/utils/services/utils.service.mjs +5 -28
  9. package/fesm2022/guajiritos-general-autocomplete.mjs +95 -297
  10. package/fesm2022/guajiritos-general-autocomplete.mjs.map +1 -1
  11. package/lib/guachos-general-autocomplete.component.d.ts +5 -16
  12. package/package.json +1 -1
  13. package/utils/interfaces/interfaces.d.ts +0 -17
  14. package/utils/pipes/i18n-field.pipe.d.ts +7 -0
  15. package/utils/pipes/pipes.module.d.ts +3 -10
  16. package/utils/pipes/resolve-property-path.pipe.d.ts +8 -17
  17. package/utils/services/autocomplete.service.d.ts +38 -0
  18. package/utils/services/utils.service.d.ts +4 -16
  19. package/esm2022/utils/pipes/duration.pipe.mjs +0 -18
  20. package/esm2022/utils/pipes/humanize-duration.pipe.mjs +0 -17
  21. package/esm2022/utils/pipes/ida-return.pipe.mjs +0 -23
  22. package/esm2022/utils/pipes/show-roles.pipe.mjs +0 -24
  23. package/esm2022/utils/pipes/show-segments.pipe.mjs +0 -24
  24. package/esm2022/utils/pipes/show-transport-types.pipe.mjs +0 -24
  25. package/utils/pipes/duration.pipe.d.ts +0 -8
  26. package/utils/pipes/humanize-duration.pipe.d.ts +0 -7
  27. package/utils/pipes/ida-return.pipe.d.ts +0 -8
  28. package/utils/pipes/show-roles.pipe.d.ts +0 -8
  29. package/utils/pipes/show-segments.pipe.d.ts +0 -8
  30. package/utils/pipes/show-transport-types.pipe.d.ts +0 -8
@@ -1,32 +1,14 @@
1
- import { CurrencyPipe, UpperCasePipe } from '@angular/common';
2
1
  import { Pipe } from '@angular/core';
3
- import { DurationTimePipe } from './duration.pipe';
4
- import { HumanizeDurationPipe } from './humanize-duration.pipe';
5
- import { IdaReturnPipe } from './ida-return.pipe';
6
- import { ShowRolesPipe } from './show-roles.pipe';
7
- import { ShowSegmentsPipe } from './show-segments.pipe';
8
- import { ShowTransportTypesPipe } from './show-transport-types.pipe';
9
- import { CustomPipes } from "../interfaces/interfaces";
10
2
  import { UtilsService } from '../services/utils.service';
11
3
  import * as i0 from "@angular/core";
12
- import * as i1 from "./show-segments.pipe";
13
- import * as i2 from "./show-roles.pipe";
14
- import * as i3 from "./show-transport-types.pipe";
15
- import * as i4 from "./ida-return.pipe";
16
- import * as i5 from "@angular/common";
17
- import * as i6 from "./humanize-duration.pipe";
18
- import * as i7 from "./duration.pipe";
19
4
  export class ResolvePropertyPath {
20
- constructor(_showSegmentPipe, _showRolesPipe, _showTransportTypesPipe, _idaReturnPipe, _currencyPipe, _humanizeDurationPipe, _upperCasePipe, _durationPipe) {
21
- this._showSegmentPipe = _showSegmentPipe;
22
- this._showRolesPipe = _showRolesPipe;
23
- this._showTransportTypesPipe = _showTransportTypesPipe;
24
- this._idaReturnPipe = _idaReturnPipe;
25
- this._currencyPipe = _currencyPipe;
26
- this._humanizeDurationPipe = _humanizeDurationPipe;
27
- this._upperCasePipe = _upperCasePipe;
28
- this._durationPipe = _durationPipe;
29
- }
5
+ /**
6
+ * Transforms the given object based on the provided path and returns the transformed string.
7
+ *
8
+ * @param {any} obj - The object to be transformed.
9
+ * @param {DisplayOptionItem[]} path - The array of display option items used for transformation.
10
+ * @return {string} The transformed string.
11
+ */
30
12
  transform(obj, path) {
31
13
  let result = '';
32
14
  path?.forEach((item) => {
@@ -35,46 +17,17 @@ export class ResolvePropertyPath {
35
17
  }
36
18
  else {
37
19
  if (item?.path) {
38
- let value = UtilsService.resolvePropertyByPath(obj, item.path);
39
- switch (item?.customPipe) {
40
- case CustomPipes.SHOW_SEGMENTS:
41
- value = this._showSegmentPipe.transform(value);
42
- break;
43
- case CustomPipes.DURATION_TIME:
44
- value = this._durationPipe.transform(value);
45
- break;
46
- case CustomPipes.HUMANIZE_DURATION:
47
- value = this._humanizeDurationPipe.transform(value);
48
- break;
49
- case CustomPipes.SHOW_TRANSPORT_TYPES:
50
- value = this._showTransportTypesPipe.transform(value);
51
- break;
52
- case CustomPipes.SHOW_ROLES:
53
- value = this._showRolesPipe.transform(value);
54
- break;
55
- case CustomPipes.IDA_RETURN:
56
- value = this._idaReturnPipe.transform(value);
57
- break;
58
- case CustomPipes.CURRENCY:
59
- value = this._currencyPipe.transform(value);
60
- break;
61
- case CustomPipes.UPPERCASE:
62
- value = this._upperCasePipe.transform(value);
63
- break;
64
- default:
65
- break;
66
- }
67
- result += value;
20
+ result += UtilsService.resolvePropertyByPath(obj, item.path);
68
21
  }
69
22
  }
70
23
  });
71
24
  return result;
72
25
  }
73
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: ResolvePropertyPath, deps: [{ token: i1.ShowSegmentsPipe }, { token: i2.ShowRolesPipe }, { token: i3.ShowTransportTypesPipe }, { token: i4.IdaReturnPipe }, { token: i5.CurrencyPipe }, { token: i6.HumanizeDurationPipe }, { token: i5.UpperCasePipe }, { token: i7.DurationTimePipe }], target: i0.ɵɵFactoryTarget.Pipe }); }
26
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: ResolvePropertyPath, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
74
27
  static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.1", ngImport: i0, type: ResolvePropertyPath, name: "resolvePropertyPath" }); }
75
28
  }
76
29
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.1", ngImport: i0, type: ResolvePropertyPath, decorators: [{
77
30
  type: Pipe,
78
31
  args: [{ name: 'resolvePropertyPath' }]
79
- }], ctorParameters: function () { return [{ type: i1.ShowSegmentsPipe }, { type: i2.ShowRolesPipe }, { type: i3.ShowTransportTypesPipe }, { type: i4.IdaReturnPipe }, { type: i5.CurrencyPipe }, { type: i6.HumanizeDurationPipe }, { type: i5.UpperCasePipe }, { type: i7.DurationTimePipe }]; } });
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZS1wcm9wZXJ0eS1wYXRoLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWFjaG9zLWdlbmVyYWwtYXV0b2NvbXBsZXRlL3NyYy91dGlscy9waXBlcy9yZXNvbHZlLXByb3BlcnR5LXBhdGgucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFFLGFBQWEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzVELE9BQU8sRUFBQyxJQUFJLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBRWxELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQzlELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDaEQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDbkUsT0FBTyxFQUFDLFdBQVcsRUFBb0IsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7OztBQUd2RCxNQUFNLE9BQU8sbUJBQW1CO0lBRTVCLFlBQ1ksZ0JBQWtDLEVBQ2xDLGNBQTZCLEVBQzdCLHVCQUErQyxFQUMvQyxjQUE2QixFQUM3QixhQUEyQixFQUMzQixxQkFBMkMsRUFDM0MsY0FBNkIsRUFDN0IsYUFBK0I7UUFQL0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUM3Qiw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXdCO1FBQy9DLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBQzdCLGtCQUFhLEdBQWIsYUFBYSxDQUFjO1FBQzNCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBc0I7UUFDM0MsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFDN0Isa0JBQWEsR0FBYixhQUFhLENBQWtCO0lBRTNDLENBQUM7SUFFRCxTQUFTLENBQUMsR0FBUSxFQUFFLElBQXlCO1FBQ3pDLElBQUksTUFBTSxHQUFXLEVBQUUsQ0FBQztRQUV4QixJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBdUIsRUFBRSxFQUFFO1lBQ3RDLElBQUksSUFBSSxFQUFFLElBQUksS0FBSyxTQUFTLEVBQUU7Z0JBQzFCLE1BQU0sSUFBSSxJQUFJLEVBQUUsT0FBTyxDQUFDO2FBQzNCO2lCQUFNO2dCQUNILElBQUksSUFBSSxFQUFFLElBQUksRUFBRTtvQkFDWixJQUFJLEtBQUssR0FBRyxZQUFZLENBQUMscUJBQXFCLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFFL0QsUUFBUSxJQUFJLEVBQUUsVUFBVSxFQUFFO3dCQUN0QixLQUFLLFdBQVcsQ0FBQyxhQUFhOzRCQUMxQixLQUFLLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQzs0QkFDL0MsTUFBTTt3QkFDVixLQUFLLFdBQVcsQ0FBQyxhQUFhOzRCQUMxQixLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7NEJBQzVDLE1BQU07d0JBQ1YsS0FBSyxXQUFXLENBQUMsaUJBQWlCOzRCQUM5QixLQUFLLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQzs0QkFDcEQsTUFBTTt3QkFDVixLQUFLLFdBQVcsQ0FBQyxvQkFBb0I7NEJBQ2pDLEtBQUssR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDOzRCQUN0RCxNQUFNO3dCQUNWLEtBQUssV0FBVyxDQUFDLFVBQVU7NEJBQ3ZCLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQzs0QkFDN0MsTUFBTTt3QkFDVixLQUFLLFdBQVcsQ0FBQyxVQUFVOzRCQUN2QixLQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7NEJBQzdDLE1BQU07d0JBQ1YsS0FBSyxXQUFXLENBQUMsUUFBUTs0QkFDckIsS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDOzRCQUM1QyxNQUFNO3dCQUNWLEtBQUssV0FBVyxDQUFDLFNBQVM7NEJBQ3RCLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQzs0QkFDN0MsTUFBTTt3QkFDVjs0QkFDSSxNQUFNO3FCQUNiO29CQUNELE1BQU0sSUFBSSxLQUFLLENBQUM7aUJBQ25CO2FBQ0o7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7OEdBMURRLG1CQUFtQjs0R0FBbkIsbUJBQW1COzsyRkFBbkIsbUJBQW1CO2tCQUQvQixJQUFJO21CQUFDLEVBQUMsSUFBSSxFQUFFLHFCQUFxQixFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDdXJyZW5jeVBpcGUsIFVwcGVyQ2FzZVBpcGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7UGlwZSwgUGlwZVRyYW5zZm9ybX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQge0R1cmF0aW9uVGltZVBpcGV9IGZyb20gJy4vZHVyYXRpb24ucGlwZSc7XHJcbmltcG9ydCB7SHVtYW5pemVEdXJhdGlvblBpcGV9IGZyb20gJy4vaHVtYW5pemUtZHVyYXRpb24ucGlwZSc7XHJcbmltcG9ydCB7SWRhUmV0dXJuUGlwZX0gZnJvbSAnLi9pZGEtcmV0dXJuLnBpcGUnO1xyXG5pbXBvcnQge1Nob3dSb2xlc1BpcGV9IGZyb20gJy4vc2hvdy1yb2xlcy5waXBlJztcclxuaW1wb3J0IHtTaG93U2VnbWVudHNQaXBlfSBmcm9tICcuL3Nob3ctc2VnbWVudHMucGlwZSc7XHJcbmltcG9ydCB7U2hvd1RyYW5zcG9ydFR5cGVzUGlwZX0gZnJvbSAnLi9zaG93LXRyYW5zcG9ydC10eXBlcy5waXBlJztcclxuaW1wb3J0IHtDdXN0b21QaXBlcywgRGlzcGxheU9wdGlvbkl0ZW19IGZyb20gXCIuLi9pbnRlcmZhY2VzL2ludGVyZmFjZXNcIjtcclxuaW1wb3J0IHtVdGlsc1NlcnZpY2V9IGZyb20gJy4uL3NlcnZpY2VzL3V0aWxzLnNlcnZpY2UnO1xyXG5cclxuQFBpcGUoe25hbWU6ICdyZXNvbHZlUHJvcGVydHlQYXRoJ30pXHJcbmV4cG9ydCBjbGFzcyBSZXNvbHZlUHJvcGVydHlQYXRoIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBfc2hvd1NlZ21lbnRQaXBlOiBTaG93U2VnbWVudHNQaXBlLFxyXG4gICAgICAgIHByaXZhdGUgX3Nob3dSb2xlc1BpcGU6IFNob3dSb2xlc1BpcGUsXHJcbiAgICAgICAgcHJpdmF0ZSBfc2hvd1RyYW5zcG9ydFR5cGVzUGlwZTogU2hvd1RyYW5zcG9ydFR5cGVzUGlwZSxcclxuICAgICAgICBwcml2YXRlIF9pZGFSZXR1cm5QaXBlOiBJZGFSZXR1cm5QaXBlLFxyXG4gICAgICAgIHByaXZhdGUgX2N1cnJlbmN5UGlwZTogQ3VycmVuY3lQaXBlLFxyXG4gICAgICAgIHByaXZhdGUgX2h1bWFuaXplRHVyYXRpb25QaXBlOiBIdW1hbml6ZUR1cmF0aW9uUGlwZSxcclxuICAgICAgICBwcml2YXRlIF91cHBlckNhc2VQaXBlOiBVcHBlckNhc2VQaXBlLFxyXG4gICAgICAgIHByaXZhdGUgX2R1cmF0aW9uUGlwZTogRHVyYXRpb25UaW1lUGlwZVxyXG4gICAgKSB7XHJcbiAgICB9XHJcblxyXG4gICAgdHJhbnNmb3JtKG9iajogYW55LCBwYXRoOiBEaXNwbGF5T3B0aW9uSXRlbVtdKTogc3RyaW5nIHtcclxuICAgICAgICBsZXQgcmVzdWx0OiBzdHJpbmcgPSAnJztcclxuXHJcbiAgICAgICAgcGF0aD8uZm9yRWFjaCgoaXRlbTogRGlzcGxheU9wdGlvbkl0ZW0pID0+IHtcclxuICAgICAgICAgICAgaWYgKGl0ZW0/LnR5cGUgPT09ICdkaXZpZGVyJykge1xyXG4gICAgICAgICAgICAgICAgcmVzdWx0ICs9IGl0ZW0/LmRpdmlkZXI7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoaXRlbT8ucGF0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IFV0aWxzU2VydmljZS5yZXNvbHZlUHJvcGVydHlCeVBhdGgob2JqLCBpdGVtLnBhdGgpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGl0ZW0/LmN1c3RvbVBpcGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBDdXN0b21QaXBlcy5TSE9XX1NFR01FTlRTOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB0aGlzLl9zaG93U2VnbWVudFBpcGUudHJhbnNmb3JtKHZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIEN1c3RvbVBpcGVzLkRVUkFUSU9OX1RJTUU6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHRoaXMuX2R1cmF0aW9uUGlwZS50cmFuc2Zvcm0odmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgQ3VzdG9tUGlwZXMuSFVNQU5JWkVfRFVSQVRJT046XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHRoaXMuX2h1bWFuaXplRHVyYXRpb25QaXBlLnRyYW5zZm9ybSh2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBDdXN0b21QaXBlcy5TSE9XX1RSQU5TUE9SVF9UWVBFUzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdGhpcy5fc2hvd1RyYW5zcG9ydFR5cGVzUGlwZS50cmFuc2Zvcm0odmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgQ3VzdG9tUGlwZXMuU0hPV19ST0xFUzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdGhpcy5fc2hvd1JvbGVzUGlwZS50cmFuc2Zvcm0odmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgQ3VzdG9tUGlwZXMuSURBX1JFVFVSTjpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdGhpcy5faWRhUmV0dXJuUGlwZS50cmFuc2Zvcm0odmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgQ3VzdG9tUGlwZXMuQ1VSUkVOQ1k6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHRoaXMuX2N1cnJlbmN5UGlwZS50cmFuc2Zvcm0odmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgQ3VzdG9tUGlwZXMuVVBQRVJDQVNFOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB0aGlzLl91cHBlckNhc2VQaXBlLnRyYW5zZm9ybSh2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICByZXN1bHQgKz0gdmFsdWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxufVxyXG4iXX0=
32
+ }] });
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZS1wcm9wZXJ0eS1wYXRoLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWFjaG9zLWdlbmVyYWwtYXV0b2NvbXBsZXRlL3NyYy91dGlscy9waXBlcy9yZXNvbHZlLXByb3BlcnR5LXBhdGgucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUdwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBR3pELE1BQU0sT0FBTyxtQkFBbUI7SUFDOUI7Ozs7OztPQU1HO0lBQ0gsU0FBUyxDQUFDLEdBQVEsRUFBRSxJQUF5QjtRQUMzQyxJQUFJLE1BQU0sR0FBVyxFQUFFLENBQUM7UUFFeEIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQXVCLEVBQVEsRUFBRTtZQUM5QyxJQUFJLElBQUksRUFBRSxJQUFJLEtBQUssU0FBUyxFQUFFO2dCQUM1QixNQUFNLElBQUksSUFBSSxFQUFFLE9BQU8sQ0FBQzthQUN6QjtpQkFBTTtnQkFDTCxJQUFJLElBQUksRUFBRSxJQUFJLEVBQUU7b0JBQ2QsTUFBTSxJQUFJLFlBQVksQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUM5RDthQUNGO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDOzhHQXRCVSxtQkFBbUI7NEdBQW5CLG1CQUFtQjs7MkZBQW5CLG1CQUFtQjtrQkFEL0IsSUFBSTttQkFBQyxFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IERpc3BsYXlPcHRpb25JdGVtIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgVXRpbHNTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvdXRpbHMuc2VydmljZSc7XHJcblxyXG5AUGlwZSh7IG5hbWU6ICdyZXNvbHZlUHJvcGVydHlQYXRoJyB9KVxyXG5leHBvcnQgY2xhc3MgUmVzb2x2ZVByb3BlcnR5UGF0aCBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gIC8qKlxyXG4gICAqIFRyYW5zZm9ybXMgdGhlIGdpdmVuIG9iamVjdCBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcGF0aCBhbmQgcmV0dXJucyB0aGUgdHJhbnNmb3JtZWQgc3RyaW5nLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHthbnl9IG9iaiAtIFRoZSBvYmplY3QgdG8gYmUgdHJhbnNmb3JtZWQuXHJcbiAgICogQHBhcmFtIHtEaXNwbGF5T3B0aW9uSXRlbVtdfSBwYXRoIC0gVGhlIGFycmF5IG9mIGRpc3BsYXkgb3B0aW9uIGl0ZW1zIHVzZWQgZm9yIHRyYW5zZm9ybWF0aW9uLlxyXG4gICAqIEByZXR1cm4ge3N0cmluZ30gVGhlIHRyYW5zZm9ybWVkIHN0cmluZy5cclxuICAgKi9cclxuICB0cmFuc2Zvcm0ob2JqOiBhbnksIHBhdGg6IERpc3BsYXlPcHRpb25JdGVtW10pOiBzdHJpbmcge1xyXG4gICAgbGV0IHJlc3VsdDogc3RyaW5nID0gJyc7XHJcblxyXG4gICAgcGF0aD8uZm9yRWFjaCgoaXRlbTogRGlzcGxheU9wdGlvbkl0ZW0pOiB2b2lkID0+IHtcclxuICAgICAgaWYgKGl0ZW0/LnR5cGUgPT09ICdkaXZpZGVyJykge1xyXG4gICAgICAgIHJlc3VsdCArPSBpdGVtPy5kaXZpZGVyO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChpdGVtPy5wYXRoKSB7XHJcbiAgICAgICAgICByZXN1bHQgKz0gVXRpbHNTZXJ2aWNlLnJlc29sdmVQcm9wZXJ0eUJ5UGF0aChvYmosIGl0ZW0ucGF0aCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -5,10 +5,22 @@ import merge from 'lodash.merge';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "@angular/common/http";
7
7
  export class AutocompleteService {
8
+ /**
9
+ * Constructor function for the class.
10
+ *
11
+ * @param {HttpClient} _httpClient - The HttpClient instance to be used by the class.
12
+ */
8
13
  constructor(_httpClient) {
9
14
  this._httpClient = _httpClient;
10
15
  this.httpOptions = {};
11
16
  }
17
+ /**
18
+ * Processes the parameters and returns a Promise that resolves with the filter object.
19
+ *
20
+ * @param {string[] | string | undefined} filters - The filters to process.
21
+ * @param {string} value - The value to process the filters with.
22
+ * @return {Promise<any>} A Promise that resolves with the filter object.
23
+ */
12
24
  processParams(filters, value) {
13
25
  return new Promise((resolve, reject) => {
14
26
  setTimeout(async () => {
@@ -46,6 +58,13 @@ export class AutocompleteService {
46
58
  }, 100);
47
59
  });
48
60
  }
61
+ /**
62
+ * Processes the filter string and returns the result.
63
+ *
64
+ * @param {string} filter - The filter string to process.
65
+ * @param {string} value - The value to use in the processing.
66
+ * @return {Promise<any>} - A promise that resolves to the processed result.
67
+ */
49
68
  async processFilterString(filter, value) {
50
69
  let f = {};
51
70
  const arrayFilters = filter?.split('[');
@@ -57,6 +76,13 @@ export class AutocompleteService {
57
76
  });
58
77
  return f;
59
78
  }
79
+ /**
80
+ * Creates object filters based on the given array and value.
81
+ *
82
+ * @param {string[]} array - The array of filters.
83
+ * @param {string} value - The value to be filtered.
84
+ * @return {Promise<any>} - A promise that resolves to the filtered object.
85
+ */
60
86
  async createObjectFilters(array, value) {
61
87
  for (let filter of array) {
62
88
  filter = filter?.replace(']', '');
@@ -74,6 +100,18 @@ export class AutocompleteService {
74
100
  }
75
101
  }
76
102
  }
103
+ /**
104
+ * Retrieves autocomplete suggestions based on the provided text and other optional parameters.
105
+ *
106
+ * @param {string} url - The URL to send the request to.
107
+ * @param {string} [text] - The text to use for autocomplete suggestions. Defaults to an empty string.
108
+ * @param {string[] | string} [field] - The field(s) to filter the autocomplete suggestions by.
109
+ * @param {RestrictionFilter[]} [restrictions] - The restriction filters to apply to the autocomplete suggestions.
110
+ * @param {string[]} [removeProperties] - The properties to remove from the autocomplete suggestions.
111
+ * @param {string} [order] - The order in which to retrieve the autocomplete suggestions.
112
+ * @param {ApiFormData} [bodyRequest] - The request body for the autocomplete suggestions.
113
+ * @return {Promise<Observable<any>>} - A promise that resolves to an observable containing the autocomplete suggestions.
114
+ */
77
115
  async getAutocompleteByText(url, text, field, restrictions, removeProperties, order, bodyRequest) {
78
116
  let httpParams = new HttpParams().set('offset', '0');
79
117
  httpParams = httpParams.append('limit', '20');
@@ -158,4 +196,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.1", ngImpor
158
196
  providedIn: 'root'
159
197
  }]
160
198
  }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
161
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWFjaG9zLWdlbmVyYWwtYXV0b2NvbXBsZXRlL3NyYy91dGlscy9zZXJ2aWNlcy9hdXRvY29tcGxldGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFFLFVBQVUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzVELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25DLE9BQU8sS0FBSyxNQUFNLGNBQWMsQ0FBQzs7O0FBUWpDLE1BQU0sT0FBTyxtQkFBbUI7SUFDNUIsWUFDWSxXQUF1QjtRQUF2QixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUkzQixnQkFBVyxHQUFHLEVBQUUsQ0FBQztJQUZ6QixDQUFDO0lBSU8sYUFBYSxDQUFDLE9BQXNDLEVBQUUsS0FBYTtRQUN2RSxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ25DLFVBQVUsQ0FBQyxLQUFLLElBQUksRUFBRTtnQkFDbEIsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO2dCQUVoQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7b0JBQ3hCLEtBQUssTUFBTSxDQUFDLElBQUksT0FBTyxFQUFFO3dCQUNyQixNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7NEJBQ3hELElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLEVBQUU7Z0NBQzdCLEtBQUssQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7NkJBQ3ZCO2lD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LEdBQUcsQ0FBTSxHQUFHLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQzthQUMvQixJQUFJLENBQ0QsR0FBRyxDQUFDLENBQUMsTUFBVyxFQUFFLEVBQUU7WUFDaEIsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtnQkFDNUIsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBZ0IsRUFBRSxFQUFFO29CQUMzQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDMUIsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDLENBQUMsQ0FBQztZQUNILE9BQU8sTUFBTSxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDVixDQUFDOzhHQS9KUSxtQkFBbUI7a0hBQW5CLG1CQUFtQixjQUZoQixNQUFNOzsyRkFFVCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtIdHRwQ2xpZW50LCBIdHRwUGFyYW1zfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCBtZXJnZSBmcm9tICdsb2Rhc2gubWVyZ2UnO1xyXG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHtBcGlGb3JtRGF0YSwgUmVzdHJpY3Rpb25GaWx0ZXJ9IGZyb20gJy4uL2ludGVyZmFjZXMvaW50ZXJmYWNlcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEF1dG9jb21wbGV0ZVNlcnZpY2Uge1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBfaHR0cENsaWVudDogSHR0cENsaWVudFxyXG4gICAgKSB7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBodHRwT3B0aW9ucyA9IHt9O1xyXG5cclxuICAgIHByaXZhdGUgcHJvY2Vzc1BhcmFtcyhmaWx0ZXJzOiBzdHJpbmdbXSB8IHN0cmluZyB8IHVuZGVmaW5lZCwgdmFsdWU6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgICAgICAgc2V0VGltZW91dChhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBsZXQgZmlsdGVyID0ge307XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZmlsdGVycykpIHtcclxuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGYgb2YgZmlsdGVycykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnByb2Nlc3NGaWx0ZXJTdHJpbmcoZiwgdmFsdWUpLnRoZW4oKHJlc3A6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKE9iamVjdC5rZXlzKGZpbHRlcik/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lcmdlKGZpbHRlciwgcmVzcCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlciA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uZmlsdGVyLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5yZXNwXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZiA9PT0gZmlsdGVyc1tmaWx0ZXJzPy5sZW5ndGggLSAxXSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoZmlsdGVyKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZmlsdGVycyA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnByb2Nlc3NGaWx0ZXJTdHJpbmcoZmlsdGVycywgdmFsdWUpLnRoZW4oKHJlc3A6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5maWx0ZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5yZXNwXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGZpbHRlcik7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChudWxsKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSwgMTAwKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGFzeW5jIHByb2Nlc3NGaWx0ZXJTdHJpbmcoZmlsdGVyOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgICAgIGxldCBmOiBhbnkgPSB7fTtcclxuXHJcbiAgICAgICAgY29uc3QgYXJyYXlGaWx0ZXJzOiBzdHJpbmdbXSA9IGZpbHRlcj8uc3BsaXQoJ1snKTtcclxuXHJcbiAgICAgICAgaWYgKGFycmF5RmlsdGVycz8uZmluZEluZGV4KChhOiBzdHJpbmcpID0+IGEgPT09ICdmaWx0ZXInKSA+PSAwKSB7XHJcbiAgICAgICAgICAgIGFycmF5RmlsdGVycz8uc3BsaWNlKDAsIDEpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgYXdhaXQgdGhpcy5jcmVhdGVPYmplY3RGaWx0ZXJzKGFycmF5RmlsdGVycywgdmFsdWUpLnRoZW4oKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBmID0gZGF0YTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGY7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBhc3luYyBjcmVhdGVPYmplY3RGaWx0ZXJzKGFycmF5OiBzdHJpbmdbXSwgdmFsdWU6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XHJcbiAgICAgICAgZm9yIChsZXQgZmlsdGVyIG9mIGFycmF5KSB7XHJcbiAgICAgICAgICAgIGZpbHRlciA9IGZpbHRlcj8ucmVwbGFjZSgnXScsICcnKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChhcnJheS5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgICAgICAgICBhcnJheS5zcGxpY2UoMCwgMSk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1tmaWx0ZXJdOiBhd2FpdCB0aGlzLmNyZWF0ZU9iamVjdEZpbHRlcnMoYXJyYXksIHZhbHVlKX07XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZmlsdGVyID09PSAnJGxpa2UnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtbZmlsdGVyXTogJyUnICsgdmFsdWUgKyAnJSd9O1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1tmaWx0ZXJdOiB2YWx1ZX07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIGdldEF1dG9jb21wbGV0ZUJ5VGV4dCh1cmw6IHN0cmluZywgdGV4dD86IHN0cmluZywgZmllbGQ/OiBzdHJpbmdbXSB8IHN0cmluZywgcmVzdHJpY3Rpb25zPzogUmVzdHJpY3Rpb25GaWx0ZXJbXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlUHJvcGVydGllcz86IHN0cmluZ1tdLCBvcmRlcj86IHN0cmluZywgYm9keVJlcXVlc3Q/OiBBcGlGb3JtRGF0YSk6IFByb21pc2U8T2JzZXJ2YWJsZTxhbnk+PiB7XHJcblxyXG4gICAgICAgIGxldCBodHRwUGFyYW1zOiBIdHRwUGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ29mZnNldCcsICcwJyk7XHJcbiAgICAgICAgaHR0cFBhcmFtcyA9IGh0dHBQYXJhbXMuYXBwZW5kKCdsaW1pdCcsICcyMCcpO1xyXG5cclxuICAgICAgICBpZiAob3JkZXIpIHtcclxuICAgICAgICAgICAgaHR0cFBhcmFtcyA9IGh0dHBQYXJhbXMuYXBwZW5kKCdvcmRlcicsIG9yZGVyKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghdGV4dCkge1xyXG4gICAgICAgICAgICB0ZXh0ID0gJyc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoYm9keVJlcXVlc3QpIHtcclxuICAgICAgICAgICAgbGV0IGJvZHk6IEFwaUZvcm1EYXRhID0ge307XHJcbiAgICAgICAgICAgIGlmICh0ZXh0ICYmIHRleHQgIT09ICcnKSB7XHJcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnByb2Nlc3NQYXJhbXMoZmllbGQsIHRleHQpXHJcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBib2R5ID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uYm9keVJlcXVlc3QsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXI6IGRhdGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGJvZHkgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGJvZHlSZXF1ZXN0KSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChyZXN0cmljdGlvbnM/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgciBvZiByZXN0cmljdGlvbnMpIHtcclxuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnByb2Nlc3NQYXJhbXMocj8uZmlsdGVyLCByPy52YWx1ZT8udG9TdHJpbmcoKSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4oKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGZpbHRlcnNBdXggPSB7Li4uYm9keT8uZmlsdGVyfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVyZ2UoZmlsdGVyc0F1eCwgZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib2R5ID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmJvZHksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyOiBmaWx0ZXJzQXV4XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaHR0cFBhcmFtcyA9IGh0dHBQYXJhbXMuc2V0KCdmb3JtJywgSlNPTi5zdHJpbmdpZnkoYm9keSkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGh0dHBQYXJhbXMgPSBodHRwUGFyYW1zLmFwcGVuZCgnZm9ybScsIEpTT04uc3RyaW5naWZ5KGJvZHkpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmICh0ZXh0ICYmIHRleHQgIT09ICcnKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShmaWVsZCkpIHtcclxuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGYgb2YgZmllbGQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaHR0cFBhcmFtcyA9IGh0dHBQYXJhbXMuYXBwZW5kKGYsICclJyArIHRleHQgKyAnJScpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpZWxkPy5pbmNsdWRlcygnJGxpa2UnKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBodHRwUGFyYW1zID0gaHR0cFBhcmFtcy5hcHBlbmQoZmllbGQsICclJyArIHRleHQgKyAnJScpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZmllbGQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaHR0cFBhcmFtcyA9IGh0dHBQYXJhbXMuYXBwZW5kKGZpZWxkLCB0ZXh0KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJlc3RyaWN0aW9ucz8uZm9yRWFjaCgocmVzdHJpY3Rpb246IFJlc3RyaWN0aW9uRmlsdGVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzdHJpY3Rpb24/LnZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaHR0cFBhcmFtcyA9IGh0dHBQYXJhbXMuYXBwZW5kKHJlc3RyaWN0aW9uPy5maWx0ZXIsIHJlc3RyaWN0aW9uLnZhbHVlPy50b1N0cmluZygpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmh0dHBPcHRpb25zID0ge3BhcmFtczogaHR0cFBhcmFtc307XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLl9odHRwQ2xpZW50XHJcbiAgICAgICAgICAgIC5nZXQ8YW55Pih1cmwsIHRoaXMuaHR0cE9wdGlvbnMpXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdD8uZGF0YT8ubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlUHJvcGVydGllcz8uZm9yRWFjaCgocHJvcGVydHk6IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIGl0ZW1bcHJvcGVydHldO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxufVxyXG4iXX0=
199
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWFjaG9zLWdlbmVyYWwtYXV0b2NvbXBsZXRlL3NyYy91dGlscy9zZXJ2aWNlcy9hdXRvY29tcGxldGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFFLFVBQVUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzVELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25DLE9BQU8sS0FBSyxNQUFNLGNBQWMsQ0FBQzs7O0FBUWpDLE1BQU0sT0FBTyxtQkFBbUI7SUFDNUI7Ozs7T0FJRztJQUNILFlBQ1ksV0FBdUI7UUFBdkIsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFJM0IsZ0JBQVcsR0FBRyxFQUFFLENBQUM7SUFGekIsQ0FBQztJQUlEOzs7Ozs7T0FNRztJQUNLLGFBQWEsQ0FBQyxPQUFzQyxFQUFFLEtBQWE7UUFDdkUsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNuQyxVQUFVLENBQUMsS0FBSyxJQUFJLEVBQUU7Z0JBQ2xCLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztnQkFFaEIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO29CQUN4QixLQUFLLE1BQU0sQ0FBQyxJQUFJLE9BQU8sRUFBRTt3QkFDckIsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFOzRCQUN4RCxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFO2dDQUM3QixLQUFLLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDOzZCQUN2QjtpQ0FBTTtnQ0FDSCxNQUFNLEdBQUc7b0NBQ0wsR0FBRyxNQUFNO29DQUNULEdBQUcsSUFBSTtpQ0FDVixDQUFDOzZCQUNMOzRCQUVELElBQUksQ0FBQyxLQUFLLE9BQU8sQ0FBQyxPQUFPLEVBQUUsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUFFO2dDQUNwQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7NkJBQ25CO3dCQUNMLENBQUMsQ0FBQyxDQUFDO3FCQUNOO2lCQUNKO3FCQUFNLElBQUksT0FBTyxPQUFPLEtBQUssUUFBUSxFQUFFO29CQUNwQyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7d0JBQzlELE1BQU0sR0FBRzs0QkFDTCxHQUFHLE1BQU07NEJBQ1QsR0FBRyxJQUFJO3lCQUNWLENBQUM7d0JBRUYsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUNwQixDQUFDLENBQUMsQ0FBQztpQkFDTjtxQkFBTTtvQkFDSCxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ2hCO1lBQ0wsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ1osQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ssS0FBSyxDQUFDLG1CQUFtQixDQUFDLE1BQWMsRUFBRSxLQUFhO1FBQzNELElBQUksQ0FBQyxHQUFRLEVBQUUsQ0FBQztRQUVoQixNQUFNLFlBQVksR0FBYSxNQUFNLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRWxELElBQUksWUFBWSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUM3RCxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUM5QjtRQUVELE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtZQUNuRSxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQ2IsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyxLQUFLLENBQUMsbUJBQW1CLENBQUMsS0FBZSxFQUFFLEtBQWE7UUFDNUQsS0FBSyxJQUFJLE1BQU0sSUFBSSxLQUFLLEVBQUU7WUFDdEIsTUFBTSxHQUFHLE1BQU0sRUFBRSxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBRWxDLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQ2xCLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUNuQixPQUFPLEVBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUMsQ0FBQzthQUNuRTtpQkFBTTtnQkFDSCxJQUFJLE1BQU0sS0FBSyxPQUFPLEVBQUU7b0JBQ3BCLE9BQU8sRUFBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsR0FBRyxLQUFLLEdBQUcsR0FBRyxFQUFDLENBQUM7aUJBQ3hDO3FCQUFNO29CQUNILE9BQU8sRUFBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUssRUFBQyxDQUFDO2lCQUM1QjthQUNKO1NBQ0o7SUFDTCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7O09BV0c7SUFDSSxLQUFLLENBQUMscUJBQXFCLENBQUMsR0FBVyxFQUFFLElBQWEsRUFBRSxLQUF5QixFQUFFLFlBQWtDLEVBQ3pGLGdCQUEyQixFQUFFLEtBQWMsRUFBRSxXQUF5QjtRQUVyRyxJQUFJLFVBQVUsR0FBZSxJQUFJLFVBQVUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDakUsVUFBVSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRTlDLElBQUksS0FBSyxFQUFFO1lBQ1AsVUFBVSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ2xEO1FBRUQsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNQLElBQUksR0FBRyxFQUFFLENBQUM7U0FDYjtRQUVELElBQUksV0FBVyxFQUFFO1lBQ2IsSUFBSSxJQUFJLEdBQWdCLEVBQUUsQ0FBQztZQUMzQixJQUFJLElBQUksSUFBSSxJQUFJLEtBQUssRUFBRSxFQUFFO2dCQUNyQixNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQztxQkFDaEMsSUFBSSxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7b0JBQ2hCLElBQUksR0FBRzt3QkFDSCxHQUFHLFdBQVc7d0JBQ2QsTUFBTSxFQUFFLElBQUk7cUJBQ2YsQ0FBQztnQkFDTixDQUFDLENBQUMsQ0FBQzthQUNWO2lCQUFNO2dCQUNILElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQzthQUNsRDtZQUVELElBQUksWUFBWSxFQUFFLE1BQU0sRUFBRTtnQkFDdEIsS0FBSyxJQUFJLENBQUMsSUFBSSxZQUFZLEVBQUU7b0JBQ3hCLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLENBQUM7eUJBQ3BELElBQUksQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO3dCQUNoQixJQUFJLFVBQVUsR0FBRyxFQUFDLEdBQUcsSUFBSSxFQUFFLE1BQU0sRUFBQyxDQUFBO3dCQUNsQyxLQUFLLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO3dCQUN4QixJQUFJLEdBQUc7NEJBQ0gsR0FBRyxJQUFJOzRCQUNQLE1BQU0sRUFBRSxVQUFVO3lCQUNyQixDQUFDO3dCQUNGLFVBQVUsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7b0JBQzlELENBQUMsQ0FBQyxDQUFDO2lCQUNWO2FBQ0o7aUJBQU07Z0JBQ0gsVUFBVSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQzthQUNoRTtTQUNKO2FBQU07WUFDSCxJQUFJLElBQUksSUFBSSxJQUFJLEtBQUssRUFBRSxFQUFFO2dCQUNyQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7b0JBQ3RCLEtBQUssTUFBTSxDQUFDLElBQUksS0FBSyxFQUFFO3dCQUNuQixVQUFVLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztxQkFDdkQ7aUJBQ0o7cUJBQU07b0JBQ0gsSUFBSSxLQUFLLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFO3dCQUMxQixVQUFVLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsR0FBRyxHQUFHLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztxQkFDM0Q7eUJBQU0sSUFBSSxLQUFLLEVBQUU7d0JBQ2QsVUFBVSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO3FCQUMvQztpQkFDSjthQUNKO1lBRUQsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDLFdBQThCLEVBQUUsRUFBRTtnQkFDckQsSUFBSSxXQUFXLEVBQUUsS0FBSyxFQUFFO29CQUNwQixVQUFVLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztpQkFDdEY7WUFDTCxDQUFDLENBQUMsQ0FBQztTQUNOO1FBRUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUMsQ0FBQztRQUV4QyxPQUFPLElBQUksQ0FBQyxXQUFXO2FBQ2xCLEdBQUcsQ0FBTSxHQUFHLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQzthQUMvQixJQUFJLENBQ0QsR0FBRyxDQUFDLENBQUMsTUFBVyxFQUFFLEVBQUU7WUFDaEIsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtnQkFDNUIsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBZ0IsRUFBRSxFQUFFO29CQUMzQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDMUIsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDLENBQUMsQ0FBQztZQUNILE9BQU8sTUFBTSxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDVixDQUFDOzhHQXJNUSxtQkFBbUI7a0hBQW5CLG1CQUFtQixjQUZoQixNQUFNOzsyRkFFVCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtIdHRwQ2xpZW50LCBIdHRwUGFyYW1zfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCBtZXJnZSBmcm9tICdsb2Rhc2gubWVyZ2UnO1xyXG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHtBcGlGb3JtRGF0YSwgUmVzdHJpY3Rpb25GaWx0ZXJ9IGZyb20gJy4uL2ludGVyZmFjZXMvaW50ZXJmYWNlcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEF1dG9jb21wbGV0ZVNlcnZpY2Uge1xyXG4gICAgLyoqXHJcbiAgICAgKiBDb25zdHJ1Y3RvciBmdW5jdGlvbiBmb3IgdGhlIGNsYXNzLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB7SHR0cENsaWVudH0gX2h0dHBDbGllbnQgLSBUaGUgSHR0cENsaWVudCBpbnN0YW5jZSB0byBiZSB1c2VkIGJ5IHRoZSBjbGFzcy5cclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBfaHR0cENsaWVudDogSHR0cENsaWVudFxyXG4gICAgKSB7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBodHRwT3B0aW9ucyA9IHt9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUHJvY2Vzc2VzIHRoZSBwYXJhbWV0ZXJzIGFuZCByZXR1cm5zIGEgUHJvbWlzZSB0aGF0IHJlc29sdmVzIHdpdGggdGhlIGZpbHRlciBvYmplY3QuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmdbXSB8IHN0cmluZyB8IHVuZGVmaW5lZH0gZmlsdGVycyAtIFRoZSBmaWx0ZXJzIHRvIHByb2Nlc3MuXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdmFsdWUgLSBUaGUgdmFsdWUgdG8gcHJvY2VzcyB0aGUgZmlsdGVycyB3aXRoLlxyXG4gICAgICogQHJldHVybiB7UHJvbWlzZTxhbnk+fSBBIFByb21pc2UgdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBmaWx0ZXIgb2JqZWN0LlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHByb2Nlc3NQYXJhbXMoZmlsdGVyczogc3RyaW5nW10gfCBzdHJpbmcgfCB1bmRlZmluZWQsIHZhbHVlOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoYXN5bmMgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgbGV0IGZpbHRlciA9IHt9O1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGZpbHRlcnMpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBmIG9mIGZpbHRlcnMpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5wcm9jZXNzRmlsdGVyU3RyaW5nKGYsIHZhbHVlKS50aGVuKChyZXNwOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChPYmplY3Qua2V5cyhmaWx0ZXIpPy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXJnZShmaWx0ZXIsIHJlc3ApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmZpbHRlcixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucmVzcFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGYgPT09IGZpbHRlcnNbZmlsdGVycz8ubGVuZ3RoIC0gMV0pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGZpbHRlcik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGZpbHRlcnMgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5wcm9jZXNzRmlsdGVyU3RyaW5nKGZpbHRlcnMsIHZhbHVlKS50aGVuKChyZXNwOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uZmlsdGVyLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucmVzcFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShmaWx0ZXIpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICByZWplY3QobnVsbCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sIDEwMCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQcm9jZXNzZXMgdGhlIGZpbHRlciBzdHJpbmcgYW5kIHJldHVybnMgdGhlIHJlc3VsdC5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gZmlsdGVyIC0gVGhlIGZpbHRlciBzdHJpbmcgdG8gcHJvY2Vzcy5cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byB1c2UgaW4gdGhlIHByb2Nlc3NpbmcuXHJcbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlPGFueT59IC0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdGhlIHByb2Nlc3NlZCByZXN1bHQuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgYXN5bmMgcHJvY2Vzc0ZpbHRlclN0cmluZyhmaWx0ZXI6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XHJcbiAgICAgICAgbGV0IGY6IGFueSA9IHt9O1xyXG5cclxuICAgICAgICBjb25zdCBhcnJheUZpbHRlcnM6IHN0cmluZ1tdID0gZmlsdGVyPy5zcGxpdCgnWycpO1xyXG5cclxuICAgICAgICBpZiAoYXJyYXlGaWx0ZXJzPy5maW5kSW5kZXgoKGE6IHN0cmluZykgPT4gYSA9PT0gJ2ZpbHRlcicpID49IDApIHtcclxuICAgICAgICAgICAgYXJyYXlGaWx0ZXJzPy5zcGxpY2UoMCwgMSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBhd2FpdCB0aGlzLmNyZWF0ZU9iamVjdEZpbHRlcnMoYXJyYXlGaWx0ZXJzLCB2YWx1ZSkudGhlbigoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGYgPSBkYXRhO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gZjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENyZWF0ZXMgb2JqZWN0IGZpbHRlcnMgYmFzZWQgb24gdGhlIGdpdmVuIGFycmF5IGFuZCB2YWx1ZS5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBhcnJheSAtIFRoZSBhcnJheSBvZiBmaWx0ZXJzLlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlIC0gVGhlIHZhbHVlIHRvIGJlIGZpbHRlcmVkLlxyXG4gICAgICogQHJldHVybiB7UHJvbWlzZTxhbnk+fSAtIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIHRoZSBmaWx0ZXJlZCBvYmplY3QuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgYXN5bmMgY3JlYXRlT2JqZWN0RmlsdGVycyhhcnJheTogc3RyaW5nW10sIHZhbHVlOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgICAgIGZvciAobGV0IGZpbHRlciBvZiBhcnJheSkge1xyXG4gICAgICAgICAgICBmaWx0ZXIgPSBmaWx0ZXI/LnJlcGxhY2UoJ10nLCAnJyk7XHJcblxyXG4gICAgICAgICAgICBpZiAoYXJyYXkubGVuZ3RoID4gMSkge1xyXG4gICAgICAgICAgICAgICAgYXJyYXkuc3BsaWNlKDAsIDEpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtbZmlsdGVyXTogYXdhaXQgdGhpcy5jcmVhdGVPYmplY3RGaWx0ZXJzKGFycmF5LCB2YWx1ZSl9O1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKGZpbHRlciA9PT0gJyRsaWtlJykge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7W2ZpbHRlcl06ICclJyArIHZhbHVlICsgJyUnfTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtbZmlsdGVyXTogdmFsdWV9O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0cmlldmVzIGF1dG9jb21wbGV0ZSBzdWdnZXN0aW9ucyBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgdGV4dCBhbmQgb3RoZXIgb3B0aW9uYWwgcGFyYW1ldGVycy5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdXJsIC0gVGhlIFVSTCB0byBzZW5kIHRoZSByZXF1ZXN0IHRvLlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFt0ZXh0XSAtIFRoZSB0ZXh0IHRvIHVzZSBmb3IgYXV0b2NvbXBsZXRlIHN1Z2dlc3Rpb25zLiBEZWZhdWx0cyB0byBhbiBlbXB0eSBzdHJpbmcuXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ1tdIHwgc3RyaW5nfSBbZmllbGRdIC0gVGhlIGZpZWxkKHMpIHRvIGZpbHRlciB0aGUgYXV0b2NvbXBsZXRlIHN1Z2dlc3Rpb25zIGJ5LlxyXG4gICAgICogQHBhcmFtIHtSZXN0cmljdGlvbkZpbHRlcltdfSBbcmVzdHJpY3Rpb25zXSAtIFRoZSByZXN0cmljdGlvbiBmaWx0ZXJzIHRvIGFwcGx5IHRvIHRoZSBhdXRvY29tcGxldGUgc3VnZ2VzdGlvbnMuXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBbcmVtb3ZlUHJvcGVydGllc10gLSBUaGUgcHJvcGVydGllcyB0byByZW1vdmUgZnJvbSB0aGUgYXV0b2NvbXBsZXRlIHN1Z2dlc3Rpb25zLlxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtvcmRlcl0gLSBUaGUgb3JkZXIgaW4gd2hpY2ggdG8gcmV0cmlldmUgdGhlIGF1dG9jb21wbGV0ZSBzdWdnZXN0aW9ucy5cclxuICAgICAqIEBwYXJhbSB7QXBpRm9ybURhdGF9IFtib2R5UmVxdWVzdF0gLSBUaGUgcmVxdWVzdCBib2R5IGZvciB0aGUgYXV0b2NvbXBsZXRlIHN1Z2dlc3Rpb25zLlxyXG4gICAgICogQHJldHVybiB7UHJvbWlzZTxPYnNlcnZhYmxlPGFueT4+fSAtIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIGFuIG9ic2VydmFibGUgY29udGFpbmluZyB0aGUgYXV0b2NvbXBsZXRlIHN1Z2dlc3Rpb25zLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYXN5bmMgZ2V0QXV0b2NvbXBsZXRlQnlUZXh0KHVybDogc3RyaW5nLCB0ZXh0Pzogc3RyaW5nLCBmaWVsZD86IHN0cmluZ1tdIHwgc3RyaW5nLCByZXN0cmljdGlvbnM/OiBSZXN0cmljdGlvbkZpbHRlcltdLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW1vdmVQcm9wZXJ0aWVzPzogc3RyaW5nW10sIG9yZGVyPzogc3RyaW5nLCBib2R5UmVxdWVzdD86IEFwaUZvcm1EYXRhKTogUHJvbWlzZTxPYnNlcnZhYmxlPGFueT4+IHtcclxuXHJcbiAgICAgICAgbGV0IGh0dHBQYXJhbXM6IEh0dHBQYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpLnNldCgnb2Zmc2V0JywgJzAnKTtcclxuICAgICAgICBodHRwUGFyYW1zID0gaHR0cFBhcmFtcy5hcHBlbmQoJ2xpbWl0JywgJzIwJyk7XHJcblxyXG4gICAgICAgIGlmIChvcmRlcikge1xyXG4gICAgICAgICAgICBodHRwUGFyYW1zID0gaHR0cFBhcmFtcy5hcHBlbmQoJ29yZGVyJywgb3JkZXIpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCF0ZXh0KSB7XHJcbiAgICAgICAgICAgIHRleHQgPSAnJztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChib2R5UmVxdWVzdCkge1xyXG4gICAgICAgICAgICBsZXQgYm9keTogQXBpRm9ybURhdGEgPSB7fTtcclxuICAgICAgICAgICAgaWYgKHRleHQgJiYgdGV4dCAhPT0gJycpIHtcclxuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMucHJvY2Vzc1BhcmFtcyhmaWVsZCwgdGV4dClcclxuICAgICAgICAgICAgICAgICAgICAudGhlbigoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvZHkgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5ib2R5UmVxdWVzdCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcjogZGF0YVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgYm9keSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoYm9keVJlcXVlc3QpKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHJlc3RyaWN0aW9ucz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCByIG9mIHJlc3RyaWN0aW9ucykge1xyXG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMucHJvY2Vzc1BhcmFtcyhyPy5maWx0ZXIsIHI/LnZhbHVlPy50b1N0cmluZygpKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAudGhlbigoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZmlsdGVyc0F1eCA9IHsuLi5ib2R5Py5maWx0ZXJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXJnZShmaWx0ZXJzQXV4LCBkYXRhKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvZHkgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uYm9keSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXI6IGZpbHRlcnNBdXhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBodHRwUGFyYW1zID0gaHR0cFBhcmFtcy5zZXQoJ2Zvcm0nLCBKU09OLnN0cmluZ2lmeShib2R5KSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaHR0cFBhcmFtcyA9IGh0dHBQYXJhbXMuYXBwZW5kKCdmb3JtJywgSlNPTi5zdHJpbmdpZnkoYm9keSkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgaWYgKHRleHQgJiYgdGV4dCAhPT0gJycpIHtcclxuICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGZpZWxkKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZiBvZiBmaWVsZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBodHRwUGFyYW1zID0gaHR0cFBhcmFtcy5hcHBlbmQoZiwgJyUnICsgdGV4dCArICclJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZmllbGQ/LmluY2x1ZGVzKCckbGlrZScpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGh0dHBQYXJhbXMgPSBodHRwUGFyYW1zLmFwcGVuZChmaWVsZCwgJyUnICsgdGV4dCArICclJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChmaWVsZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBodHRwUGFyYW1zID0gaHR0cFBhcmFtcy5hcHBlbmQoZmllbGQsIHRleHQpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcmVzdHJpY3Rpb25zPy5mb3JFYWNoKChyZXN0cmljdGlvbjogUmVzdHJpY3Rpb25GaWx0ZXIpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXN0cmljdGlvbj8udmFsdWUpIHtcclxuICAgICAgICAgICAgICAgICAgICBodHRwUGFyYW1zID0gaHR0cFBhcmFtcy5hcHBlbmQocmVzdHJpY3Rpb24/LmZpbHRlciwgcmVzdHJpY3Rpb24udmFsdWU/LnRvU3RyaW5nKCkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuaHR0cE9wdGlvbnMgPSB7cGFyYW1zOiBodHRwUGFyYW1zfTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2h0dHBDbGllbnRcclxuICAgICAgICAgICAgLmdldDxhbnk+KHVybCwgdGhpcy5odHRwT3B0aW9ucylcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0Py5kYXRhPy5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZW1vdmVQcm9wZXJ0aWVzPy5mb3JFYWNoKChwcm9wZXJ0eTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgaXRlbVtwcm9wZXJ0eV07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -2,35 +2,12 @@ import { Injectable } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export class UtilsService {
4
4
  /**
5
- * Convierte el tiempo pasado por parámetro en horas y minutos
5
+ * Resolves the value of a property in an object by providing a path.
6
6
  *
7
- * @param time - Tiempo
8
- * @returns Devuelve las horas y minutos
7
+ * @param {any} obj - The object to traverse.
8
+ * @param {string[]} path - An array of strings representing the path to the desired property.
9
+ * @return {any} The value of the property at the given path, or null if the path is invalid.
9
10
  */
10
- static getTime(time) {
11
- const hours = parseInt(Number(time) / 3600 + '', 10);
12
- time = Number(time) - (hours * 3600);
13
- const minutes = parseInt(Number(time) / 60 + '', 10);
14
- return { hours, minutes };
15
- }
16
- /**
17
- * Devuelve el tiempo en formato 'hh:mm'
18
- *
19
- * @param time - Tiempo
20
- */
21
- static getTimePretty(time) {
22
- const { hours, minutes } = UtilsService.getTime(time);
23
- return (hours < 10 ? '0' + hours : hours) + ':' + (minutes < 10 ? '0' + minutes : minutes);
24
- }
25
- /**
26
- * Devuelve el tiempo en formato 'hhh : mmm'
27
- *
28
- * @param time - Tiempo
29
- */
30
- static humanizeDuration(time) {
31
- const { hours, minutes } = UtilsService.getTime(time);
32
- return (hours < 10 ? '0' + hours : hours) + 'h : ' + (minutes < 10 ? '0' + minutes : minutes) + 'm';
33
- }
34
11
  static resolvePropertyByPath(obj, path) {
35
12
  return path.reduce((prev, curr) => {
36
13
  return prev ? prev[curr] : null;
@@ -45,4 +22,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.1", ngImpor
45
22
  providedIn: 'root'
46
23
  }]
47
24
  }] });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2d1YWNob3MtZ2VuZXJhbC1hdXRvY29tcGxldGUvc3JjL3V0aWxzL3NlcnZpY2VzL3V0aWxzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFLekMsTUFBTSxPQUFPLFlBQVk7SUFDckI7Ozs7O09BS0c7SUFDSyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQXFCO1FBQ3hDLE1BQU0sS0FBSyxHQUFXLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM3RCxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sT0FBTyxHQUFXLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUU3RCxPQUFPLEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBQyxDQUFBO0lBQzNCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFZO1FBQ3BDLE1BQU0sRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFDLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVwRCxPQUFPLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDL0YsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBcUI7UUFDaEQsTUFBTSxFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUMsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXBELE9BQU8sQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxNQUFNLEdBQUcsQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDeEcsQ0FBQztJQUVNLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxHQUFRLEVBQUUsSUFBYztRQUN4RCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBWSxFQUFFLEVBQUU7WUFDdEMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ3BDLENBQUMsRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUM7SUFDcEIsQ0FBQzs4R0F6Q1EsWUFBWTtrSEFBWixZQUFZLGNBRlQsTUFBTTs7MkZBRVQsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVdGlsc1NlcnZpY2Uge1xyXG4gICAgLyoqXHJcbiAgICAgKiBDb252aWVydGUgZWwgdGllbXBvIHBhc2FkbyBwb3IgcGFyw6FtZXRybyBlbiBob3JhcyB5IG1pbnV0b3NcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gdGltZSAtIFRpZW1wb1xyXG4gICAgICogQHJldHVybnMgRGV2dWVsdmUgbGFzIGhvcmFzIHkgbWludXRvc1xyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHN0YXRpYyBnZXRUaW1lKHRpbWU6IG51bWJlciB8IHN0cmluZyk6IHsgaG91cnM6IG51bWJlcjsgbWludXRlczogbnVtYmVyIH0ge1xyXG4gICAgICAgIGNvbnN0IGhvdXJzOiBudW1iZXIgPSBwYXJzZUludChOdW1iZXIodGltZSkgLyAzNjAwICsgJycsIDEwKTtcclxuICAgICAgICB0aW1lID0gTnVtYmVyKHRpbWUpIC0gKGhvdXJzICogMzYwMCk7XHJcbiAgICAgICAgY29uc3QgbWludXRlczogbnVtYmVyID0gcGFyc2VJbnQoTnVtYmVyKHRpbWUpIC8gNjAgKyAnJywgMTApO1xyXG5cclxuICAgICAgICByZXR1cm4ge2hvdXJzLCBtaW51dGVzfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGV2dWVsdmUgZWwgdGllbXBvIGVuIGZvcm1hdG8gJ2hoOm1tJ1xyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB0aW1lIC0gVGllbXBvXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0VGltZVByZXR0eSh0aW1lOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IHtob3VycywgbWludXRlc30gPSBVdGlsc1NlcnZpY2UuZ2V0VGltZSh0aW1lKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIChob3VycyA8IDEwID8gJzAnICsgaG91cnMgOiBob3VycykgKyAnOicgKyAobWludXRlcyA8IDEwID8gJzAnICsgbWludXRlcyA6IG1pbnV0ZXMpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGV2dWVsdmUgZWwgdGllbXBvIGVuIGZvcm1hdG8gJ2hoaCA6IG1tbSdcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gdGltZSAtIFRpZW1wb1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIGh1bWFuaXplRHVyYXRpb24odGltZTogbnVtYmVyIHwgc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCB7aG91cnMsIG1pbnV0ZXN9ID0gVXRpbHNTZXJ2aWNlLmdldFRpbWUodGltZSk7XHJcblxyXG4gICAgICAgIHJldHVybiAoaG91cnMgPCAxMCA/ICcwJyArIGhvdXJzIDogaG91cnMpICsgJ2ggOiAnICsgKG1pbnV0ZXMgPCAxMCA/ICcwJyArIG1pbnV0ZXMgOiBtaW51dGVzKSArICdtJztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIHJlc29sdmVQcm9wZXJ0eUJ5UGF0aChvYmo6IGFueSwgcGF0aDogc3RyaW5nW10pOiBhbnkge1xyXG4gICAgICAgIHJldHVybiBwYXRoLnJlZHVjZSgocHJldiwgY3Vycjogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiBwcmV2ID8gcHJldltjdXJyXSA6IG51bGw7XHJcbiAgICAgICAgfSwgb2JqIHx8IHNlbGYpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2d1YWNob3MtZ2VuZXJhbC1hdXRvY29tcGxldGUvc3JjL3V0aWxzL3NlcnZpY2VzL3V0aWxzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFLekMsTUFBTSxPQUFPLFlBQVk7SUFDckI7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLHFCQUFxQixDQUFDLEdBQVEsRUFBRSxJQUFjO1FBQ3hELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFZLEVBQUUsRUFBRTtZQUN0QyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDcEMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsQ0FBQztJQUNwQixDQUFDOzhHQVpRLFlBQVk7a0hBQVosWUFBWSxjQUZULE1BQU07OzJGQUVULFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVXRpbHNTZXJ2aWNlIHtcclxuICAgIC8qKlxyXG4gICAgICogUmVzb2x2ZXMgdGhlIHZhbHVlIG9mIGEgcHJvcGVydHkgaW4gYW4gb2JqZWN0IGJ5IHByb3ZpZGluZyBhIHBhdGguXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHthbnl9IG9iaiAtIFRoZSBvYmplY3QgdG8gdHJhdmVyc2UuXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ1tdfSBwYXRoIC0gQW4gYXJyYXkgb2Ygc3RyaW5ncyByZXByZXNlbnRpbmcgdGhlIHBhdGggdG8gdGhlIGRlc2lyZWQgcHJvcGVydHkuXHJcbiAgICAgKiBAcmV0dXJuIHthbnl9IFRoZSB2YWx1ZSBvZiB0aGUgcHJvcGVydHkgYXQgdGhlIGdpdmVuIHBhdGgsIG9yIG51bGwgaWYgdGhlIHBhdGggaXMgaW52YWxpZC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyByZXNvbHZlUHJvcGVydHlCeVBhdGgob2JqOiBhbnksIHBhdGg6IHN0cmluZ1tdKTogYW55IHtcclxuICAgICAgICByZXR1cm4gcGF0aC5yZWR1Y2UoKHByZXYsIGN1cnI6IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gcHJldiA/IHByZXZbY3Vycl0gOiBudWxsO1xyXG4gICAgICAgIH0sIG9iaiB8fCBzZWxmKTtcclxuICAgIH1cclxufVxyXG4iXX0=