@guajiritos/general-autocomplete 0.0.6 → 0.0.8

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 (37) hide show
  1. package/esm2020/guajiritos-general-autocomplete.mjs +4 -4
  2. package/esm2020/lib/guachos-general-autocomplete.component.mjs +327 -309
  3. package/esm2020/lib/guachos-general-autocomplete.module.mjs +108 -108
  4. package/esm2020/public-api.mjs +7 -7
  5. package/esm2020/utils/constants/contacts.mjs +9 -9
  6. package/esm2020/utils/interfaces/interfaces.mjs +11 -11
  7. package/esm2020/utils/pipes/duration.pipe.mjs +17 -17
  8. package/esm2020/utils/pipes/humanize-duration.pipe.mjs +16 -16
  9. package/esm2020/utils/pipes/i18n-field.pipe.mjs +27 -27
  10. package/esm2020/utils/pipes/ida-return.pipe.mjs +22 -22
  11. package/esm2020/utils/pipes/resolve-property-path.pipe.mjs +79 -79
  12. package/esm2020/utils/pipes/show-roles.pipe.mjs +23 -23
  13. package/esm2020/utils/pipes/show-segments.pipe.mjs +23 -23
  14. package/esm2020/utils/pipes/show-transport-types.pipe.mjs +23 -23
  15. package/esm2020/utils/services/autocomplete.service.mjs +161 -161
  16. package/esm2020/utils/services/utils.service.mjs +47 -47
  17. package/fesm2015/guajiritos-general-autocomplete.mjs +802 -784
  18. package/fesm2015/guajiritos-general-autocomplete.mjs.map +1 -1
  19. package/fesm2020/guajiritos-general-autocomplete.mjs +798 -780
  20. package/fesm2020/guajiritos-general-autocomplete.mjs.map +1 -1
  21. package/index.d.ts +5 -5
  22. package/lib/guachos-general-autocomplete.component.d.ts +72 -72
  23. package/lib/guachos-general-autocomplete.module.d.ts +24 -24
  24. package/package.json +3 -2
  25. package/public-api.d.ts +4 -4
  26. package/utils/constants/contacts.d.ts +2 -2
  27. package/utils/interfaces/interfaces.d.ts +33 -33
  28. package/utils/pipes/duration.pipe.d.ts +8 -8
  29. package/utils/pipes/humanize-duration.pipe.d.ts +7 -7
  30. package/utils/pipes/i18n-field.pipe.d.ts +7 -7
  31. package/utils/pipes/ida-return.pipe.d.ts +8 -8
  32. package/utils/pipes/resolve-property-path.pipe.d.ts +24 -24
  33. package/utils/pipes/show-roles.pipe.d.ts +8 -8
  34. package/utils/pipes/show-segments.pipe.d.ts +8 -8
  35. package/utils/pipes/show-transport-types.pipe.d.ts +8 -8
  36. package/utils/services/autocomplete.service.d.ts +15 -15
  37. package/utils/services/utils.service.d.ts +25 -25
@@ -1,161 +1,161 @@
1
- import { HttpClient, HttpParams } from '@angular/common/http';
2
- import { Injectable } from '@angular/core';
3
- import { map } from 'rxjs/operators';
4
- import * as _ from 'lodash';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/common/http";
7
- export class AutocompleteService {
8
- constructor(_httpClient) {
9
- this._httpClient = _httpClient;
10
- this.httpOptions = {};
11
- }
12
- processParams(filters, value) {
13
- return new Promise((resolve, reject) => {
14
- setTimeout(async () => {
15
- let filter = {};
16
- if (Array.isArray(filters)) {
17
- for (const f of filters) {
18
- await this.processFilterString(f, value).then((resp) => {
19
- if (Object.keys(filter)?.length) {
20
- _.merge(filter, resp);
21
- }
22
- else {
23
- filter = {
24
- ...filter,
25
- ...resp
26
- };
27
- }
28
- if (f === filters[filters?.length - 1]) {
29
- resolve(filter);
30
- }
31
- });
32
- }
33
- }
34
- else if (typeof filters === 'string') {
35
- await this.processFilterString(filters, value).then((resp) => {
36
- filter = {
37
- ...filter,
38
- ...resp
39
- };
40
- resolve(filter);
41
- });
42
- }
43
- else {
44
- reject(null);
45
- }
46
- }, 100);
47
- });
48
- }
49
- async processFilterString(filter, value) {
50
- let f = {};
51
- const arrayFilters = filter?.split('[');
52
- if (arrayFilters?.findIndex((a) => a === 'filter') >= 0) {
53
- arrayFilters?.splice(0, 1);
54
- }
55
- await this.createObjectFilters(arrayFilters, value).then((data) => {
56
- f = data;
57
- });
58
- return f;
59
- }
60
- async createObjectFilters(array, value) {
61
- for (let filter of array) {
62
- filter = filter?.replace(']', '');
63
- if (array.length > 1) {
64
- array.splice(0, 1);
65
- return { [filter]: await this.createObjectFilters(array, value) };
66
- }
67
- else {
68
- if (filter === '$like') {
69
- return { [filter]: '%' + value + '%' };
70
- }
71
- else {
72
- return { [filter]: value };
73
- }
74
- }
75
- }
76
- }
77
- async getAutocompleteByText(url, text, field, restrictions, removeProperties, order, bodyRequest) {
78
- let httpParams = new HttpParams().set('offset', '0');
79
- httpParams = httpParams.append('limit', '20');
80
- if (order) {
81
- httpParams = httpParams.append('order', order);
82
- }
83
- if (!text) {
84
- text = '';
85
- }
86
- if (bodyRequest) {
87
- let body = {};
88
- if (text && text !== '') {
89
- await this.processParams(field, text)
90
- .then((data) => {
91
- body = {
92
- ...bodyRequest,
93
- filter: data
94
- };
95
- });
96
- }
97
- else {
98
- body = JSON.parse(JSON.stringify(bodyRequest));
99
- }
100
- if (restrictions?.length) {
101
- for (let r of restrictions) {
102
- await this.processParams(r?.filter, r?.value?.toString())
103
- .then((data) => {
104
- let filtersAux = { ...body?.filter };
105
- _.merge(filtersAux, data);
106
- body = {
107
- ...body,
108
- filter: filtersAux
109
- };
110
- httpParams = httpParams.set('form', JSON.stringify(body));
111
- });
112
- }
113
- }
114
- else {
115
- httpParams = httpParams.append('form', JSON.stringify(body));
116
- }
117
- }
118
- else {
119
- if (text && text !== '') {
120
- if (Array.isArray(field)) {
121
- for (const f of field) {
122
- httpParams = httpParams.append(f, '%' + text + '%');
123
- }
124
- }
125
- else {
126
- if (field?.includes('$like')) {
127
- httpParams = httpParams.append(field, '%' + text + '%');
128
- }
129
- else if (field) {
130
- httpParams = httpParams.append(field, text);
131
- }
132
- }
133
- }
134
- restrictions?.forEach((restriction) => {
135
- if (restriction?.value) {
136
- httpParams = httpParams.append(restriction?.filter, restriction.value?.toString());
137
- }
138
- });
139
- }
140
- this.httpOptions = { params: httpParams };
141
- return this._httpClient
142
- .get(url, this.httpOptions)
143
- .pipe(map((result) => {
144
- result?.data?.map((item) => {
145
- removeProperties?.forEach((property) => {
146
- delete item[property];
147
- });
148
- });
149
- return result;
150
- }));
151
- }
152
- }
153
- AutocompleteService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: AutocompleteService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
154
- AutocompleteService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: AutocompleteService, providedIn: 'root' });
155
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: AutocompleteService, decorators: [{
156
- type: Injectable,
157
- args: [{
158
- providedIn: 'root'
159
- }]
160
- }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
161
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWFjaG9zLWdlbmVyYWwtYXV0b2NvbXBsZXRlL3NyYy91dGlscy9zZXJ2aWNlcy9hdXRvY29tcGxldGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFFLFVBQVUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzVELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25DLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDOzs7QUFRNUIsTUFBTSxPQUFPLG1CQUFtQjtJQUM1QixZQUNZLFdBQXVCO1FBQXZCLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBSTNCLGdCQUFXLEdBQUcsRUFBRSxDQUFDO0lBRnpCLENBQUM7SUFJTyxhQUFhLENBQUMsT0FBc0MsRUFBRSxLQUFhO1FBQ3ZFLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDbkMsVUFBVSxDQUFDLEtBQUssSUFBSSxFQUFFO2dCQUNsQixJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7Z0JBRWhCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtvQkFDeEIsS0FBSyxNQUFNLENBQUMsSUFBSSxPQUFPLEVBQUU7d0JBQ3JCLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTs0QkFDeEQsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sRUFBRTtnQ0FDN0IsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFD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T0FBTyxJQUFJLENBQUMsV0FBVzthQUNsQixHQUFHLENBQU0sR0FBRyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUM7YUFDL0IsSUFBSSxDQUNELEdBQUcsQ0FBQyxDQUFDLE1BQVcsRUFBRSxFQUFFO1lBQ2hCLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7Z0JBQzVCLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQWdCLEVBQUUsRUFBRTtvQkFDM0MsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzFCLENBQUMsQ0FBQyxDQUFDO1lBQ1AsQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPLE1BQU0sQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ1YsQ0FBQzs7Z0hBL0pRLG1CQUFtQjtvSEFBbkIsbUJBQW1CLGNBRmhCLE1BQU07MkZBRVQsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SHR0cENsaWVudCwgSHR0cFBhcmFtc30gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQge0FwaUZvcm1EYXRhLCBSZXN0cmljdGlvbkZpbHRlcn0gZnJvbSAnLi4vaW50ZXJmYWNlcy9pbnRlcmZhY2VzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXV0b2NvbXBsZXRlU2VydmljZSB7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIF9odHRwQ2xpZW50OiBIdHRwQ2xpZW50XHJcbiAgICApIHtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGh0dHBPcHRpb25zID0ge307XHJcblxyXG4gICAgcHJpdmF0ZSBwcm9jZXNzUGFyYW1zKGZpbHRlcnM6IHN0cmluZ1tdIHwgc3RyaW5nIHwgdW5kZWZpbmVkLCB2YWx1ZTogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KGFzeW5jICgpID0+IHtcclxuICAgICAgICAgICAgICAgIGxldCBmaWx0ZXIgPSB7fTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShmaWx0ZXJzKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZiBvZiBmaWx0ZXJzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMucHJvY2Vzc0ZpbHRlclN0cmluZyhmLCB2YWx1ZSkudGhlbigocmVzcDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoT2JqZWN0LmtleXMoZmlsdGVyKT8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXy5tZXJnZShmaWx0ZXIsIHJlc3ApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmZpbHRlcixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucmVzcFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGYgPT09IGZpbHRlcnNbZmlsdGVycz8ubGVuZ3RoIC0gMV0pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGZpbHRlcik7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGZpbHRlcnMgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5wcm9jZXNzRmlsdGVyU3RyaW5nKGZpbHRlcnMsIHZhbHVlKS50aGVuKChyZXNwOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uZmlsdGVyLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucmVzcFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShmaWx0ZXIpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICByZWplY3QobnVsbCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sIDEwMCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBhc3luYyBwcm9jZXNzRmlsdGVyU3RyaW5nKGZpbHRlcjogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcclxuICAgICAgICBsZXQgZjogYW55ID0ge307XHJcblxyXG4gICAgICAgIGNvbnN0IGFycmF5RmlsdGVyczogc3RyaW5nW10gPSBmaWx0ZXI/LnNwbGl0KCdbJyk7XHJcblxyXG4gICAgICAgIGlmIChhcnJheUZpbHRlcnM/LmZpbmRJbmRleCgoYTogc3RyaW5nKSA9PiBhID09PSAnZmlsdGVyJykgPj0gMCkge1xyXG4gICAgICAgICAgICBhcnJheUZpbHRlcnM/LnNwbGljZSgwLCAxKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGF3YWl0IHRoaXMuY3JlYXRlT2JqZWN0RmlsdGVycyhhcnJheUZpbHRlcnMsIHZhbHVlKS50aGVuKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgZiA9IGRhdGE7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJldHVybiBmO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgYXN5bmMgY3JlYXRlT2JqZWN0RmlsdGVycyhhcnJheTogc3RyaW5nW10sIHZhbHVlOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgICAgIGZvciAobGV0IGZpbHRlciBvZiBhcnJheSkge1xyXG4gICAgICAgICAgICBmaWx0ZXIgPSBmaWx0ZXI/LnJlcGxhY2UoJ10nLCAnJyk7XHJcblxyXG4gICAgICAgICAgICBpZiAoYXJyYXkubGVuZ3RoID4gMSkge1xyXG4gICAgICAgICAgICAgICAgYXJyYXkuc3BsaWNlKDAsIDEpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtbZmlsdGVyXTogYXdhaXQgdGhpcy5jcmVhdGVPYmplY3RGaWx0ZXJzKGFycmF5LCB2YWx1ZSl9O1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKGZpbHRlciA9PT0gJyRsaWtlJykge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7W2ZpbHRlcl06ICclJyArIHZhbHVlICsgJyUnfTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtbZmlsdGVyXTogdmFsdWV9O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhc3luYyBnZXRBdXRvY29tcGxldGVCeVRleHQodXJsOiBzdHJpbmcsIHRleHQ/OiBzdHJpbmcsIGZpZWxkPzogc3RyaW5nW10gfCBzdHJpbmcsIHJlc3RyaWN0aW9ucz86IFJlc3RyaWN0aW9uRmlsdGVyW10sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZVByb3BlcnRpZXM/OiBzdHJpbmdbXSwgb3JkZXI/OiBzdHJpbmcsIGJvZHlSZXF1ZXN0PzogQXBpRm9ybURhdGEpOiBQcm9taXNlPE9ic2VydmFibGU8YW55Pj4ge1xyXG5cclxuICAgICAgICBsZXQgaHR0cFBhcmFtczogSHR0cFBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCkuc2V0KCdvZmZzZXQnLCAnMCcpO1xyXG4gICAgICAgIGh0dHBQYXJhbXMgPSBodHRwUGFyYW1zLmFwcGVuZCgnbGltaXQnLCAnMjAnKTtcclxuXHJcbiAgICAgICAgaWYgKG9yZGVyKSB7XHJcbiAgICAgICAgICAgIGh0dHBQYXJhbXMgPSBodHRwUGFyYW1zLmFwcGVuZCgnb3JkZXInLCBvcmRlcik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIXRleHQpIHtcclxuICAgICAgICAgICAgdGV4dCA9ICcnO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGJvZHlSZXF1ZXN0KSB7XHJcbiAgICAgICAgICAgIGxldCBib2R5OiBBcGlGb3JtRGF0YSA9IHt9O1xyXG4gICAgICAgICAgICBpZiAodGV4dCAmJiB0ZXh0ICE9PSAnJykge1xyXG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5wcm9jZXNzUGFyYW1zKGZpZWxkLCB0ZXh0KVxyXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYm9keSA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmJvZHlSZXF1ZXN0LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyOiBkYXRhXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBib2R5ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShib2R5UmVxdWVzdCkpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAocmVzdHJpY3Rpb25zPy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIGZvciAobGV0IHIgb2YgcmVzdHJpY3Rpb25zKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5wcm9jZXNzUGFyYW1zKHI/LmZpbHRlciwgcj8udmFsdWU/LnRvU3RyaW5nKCkpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmaWx0ZXJzQXV4ID0gey4uLmJvZHk/LmZpbHRlcn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8ubWVyZ2UoZmlsdGVyc0F1eCwgZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib2R5ID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmJvZHksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyOiBmaWx0ZXJzQXV4XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaHR0cFBhcmFtcyA9IGh0dHBQYXJhbXMuc2V0KCdmb3JtJywgSlNPTi5zdHJpbmdpZnkoYm9keSkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGh0dHBQYXJhbXMgPSBodHRwUGFyYW1zLmFwcGVuZCgnZm9ybScsIEpTT04uc3RyaW5naWZ5KGJvZHkpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmICh0ZXh0ICYmIHRleHQgIT09ICcnKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShmaWVsZCkpIHtcclxuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGYgb2YgZmllbGQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaHR0cFBhcmFtcyA9IGh0dHBQYXJhbXMuYXBwZW5kKGYsICclJyArIHRleHQgKyAnJScpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpZWxkPy5pbmNsdWRlcygnJGxpa2UnKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBodHRwUGFyYW1zID0gaHR0cFBhcmFtcy5hcHBlbmQoZmllbGQsICclJyArIHRleHQgKyAnJScpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZmllbGQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaHR0cFBhcmFtcyA9IGh0dHBQYXJhbXMuYXBwZW5kKGZpZWxkLCB0ZXh0KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJlc3RyaWN0aW9ucz8uZm9yRWFjaCgocmVzdHJpY3Rpb246IFJlc3RyaWN0aW9uRmlsdGVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzdHJpY3Rpb24/LnZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaHR0cFBhcmFtcyA9IGh0dHBQYXJhbXMuYXBwZW5kKHJlc3RyaWN0aW9uPy5maWx0ZXIsIHJlc3RyaWN0aW9uLnZhbHVlPy50b1N0cmluZygpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmh0dHBPcHRpb25zID0ge3BhcmFtczogaHR0cFBhcmFtc307XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLl9odHRwQ2xpZW50XHJcbiAgICAgICAgICAgIC5nZXQ8YW55Pih1cmwsIHRoaXMuaHR0cE9wdGlvbnMpXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdD8uZGF0YT8ubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlUHJvcGVydGllcz8uZm9yRWFjaCgocHJvcGVydHk6IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIGl0ZW1bcHJvcGVydHldO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxufVxyXG4iXX0=
1
+ import { HttpClient, HttpParams } from '@angular/common/http';
2
+ import { Injectable } from '@angular/core';
3
+ import { map } from 'rxjs/operators';
4
+ import merge from 'lodash.merge';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common/http";
7
+ export class AutocompleteService {
8
+ constructor(_httpClient) {
9
+ this._httpClient = _httpClient;
10
+ this.httpOptions = {};
11
+ }
12
+ processParams(filters, value) {
13
+ return new Promise((resolve, reject) => {
14
+ setTimeout(async () => {
15
+ let filter = {};
16
+ if (Array.isArray(filters)) {
17
+ for (const f of filters) {
18
+ await this.processFilterString(f, value).then((resp) => {
19
+ if (Object.keys(filter)?.length) {
20
+ merge(filter, resp);
21
+ }
22
+ else {
23
+ filter = {
24
+ ...filter,
25
+ ...resp
26
+ };
27
+ }
28
+ if (f === filters[filters?.length - 1]) {
29
+ resolve(filter);
30
+ }
31
+ });
32
+ }
33
+ }
34
+ else if (typeof filters === 'string') {
35
+ await this.processFilterString(filters, value).then((resp) => {
36
+ filter = {
37
+ ...filter,
38
+ ...resp
39
+ };
40
+ resolve(filter);
41
+ });
42
+ }
43
+ else {
44
+ reject(null);
45
+ }
46
+ }, 100);
47
+ });
48
+ }
49
+ async processFilterString(filter, value) {
50
+ let f = {};
51
+ const arrayFilters = filter?.split('[');
52
+ if (arrayFilters?.findIndex((a) => a === 'filter') >= 0) {
53
+ arrayFilters?.splice(0, 1);
54
+ }
55
+ await this.createObjectFilters(arrayFilters, value).then((data) => {
56
+ f = data;
57
+ });
58
+ return f;
59
+ }
60
+ async createObjectFilters(array, value) {
61
+ for (let filter of array) {
62
+ filter = filter?.replace(']', '');
63
+ if (array.length > 1) {
64
+ array.splice(0, 1);
65
+ return { [filter]: await this.createObjectFilters(array, value) };
66
+ }
67
+ else {
68
+ if (filter === '$like') {
69
+ return { [filter]: '%' + value + '%' };
70
+ }
71
+ else {
72
+ return { [filter]: value };
73
+ }
74
+ }
75
+ }
76
+ }
77
+ async getAutocompleteByText(url, text, field, restrictions, removeProperties, order, bodyRequest) {
78
+ let httpParams = new HttpParams().set('offset', '0');
79
+ httpParams = httpParams.append('limit', '20');
80
+ if (order) {
81
+ httpParams = httpParams.append('order', order);
82
+ }
83
+ if (!text) {
84
+ text = '';
85
+ }
86
+ if (bodyRequest) {
87
+ let body = {};
88
+ if (text && text !== '') {
89
+ await this.processParams(field, text)
90
+ .then((data) => {
91
+ body = {
92
+ ...bodyRequest,
93
+ filter: data
94
+ };
95
+ });
96
+ }
97
+ else {
98
+ body = JSON.parse(JSON.stringify(bodyRequest));
99
+ }
100
+ if (restrictions?.length) {
101
+ for (let r of restrictions) {
102
+ await this.processParams(r?.filter, r?.value?.toString())
103
+ .then((data) => {
104
+ let filtersAux = { ...body?.filter };
105
+ merge(filtersAux, data);
106
+ body = {
107
+ ...body,
108
+ filter: filtersAux
109
+ };
110
+ httpParams = httpParams.set('form', JSON.stringify(body));
111
+ });
112
+ }
113
+ }
114
+ else {
115
+ httpParams = httpParams.append('form', JSON.stringify(body));
116
+ }
117
+ }
118
+ else {
119
+ if (text && text !== '') {
120
+ if (Array.isArray(field)) {
121
+ for (const f of field) {
122
+ httpParams = httpParams.append(f, '%' + text + '%');
123
+ }
124
+ }
125
+ else {
126
+ if (field?.includes('$like')) {
127
+ httpParams = httpParams.append(field, '%' + text + '%');
128
+ }
129
+ else if (field) {
130
+ httpParams = httpParams.append(field, text);
131
+ }
132
+ }
133
+ }
134
+ restrictions?.forEach((restriction) => {
135
+ if (restriction?.value) {
136
+ httpParams = httpParams.append(restriction?.filter, restriction.value?.toString());
137
+ }
138
+ });
139
+ }
140
+ this.httpOptions = { params: httpParams };
141
+ return this._httpClient
142
+ .get(url, this.httpOptions)
143
+ .pipe(map((result) => {
144
+ result?.data?.map((item) => {
145
+ removeProperties?.forEach((property) => {
146
+ delete item[property];
147
+ });
148
+ });
149
+ return result;
150
+ }));
151
+ }
152
+ }
153
+ AutocompleteService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: AutocompleteService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
154
+ AutocompleteService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: AutocompleteService, providedIn: 'root' });
155
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: AutocompleteService, decorators: [{
156
+ type: Injectable,
157
+ args: [{
158
+ providedIn: 'root'
159
+ }]
160
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
161
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ndWFjaG9zLWdlbmVyYWwtYXV0b2NvbXBsZXRlL3NyYy91dGlscy9zZXJ2aWNlcy9hdXRvY29tcGxldGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFFLFVBQVUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQzVELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25DLE9BQU8sS0FBSyxNQUFNLGNBQWMsQ0FBQzs7O0FBUWpDLE1BQU0sT0FBTyxtQkFBbUI7SUFDNUIsWUFDWSxXQUF1QjtRQUF2QixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUkzQixnQkFBVyxHQUFHLEVBQUUsQ0FBQztJQUZ6QixDQUFDO0lBSU8sYUFBYSxDQUFDLE9BQXNDLEVBQUUsS0FBYTtRQUN2RSxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ25DLFVBQVUsQ0FBQyxLQUFLLElBQUksRUFBRTtnQkFDbEIsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO2dCQUVoQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7b0JBQ3hCLEtBQUssTUFBTSxDQUFDLElBQUksT0FBTyxFQUFFO3dCQUNyQixNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7NEJBQ3hELElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLEVBQUU7Z0NBQzdCLEtBQUssQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7NkJBQ3ZCO2lD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LEdBQUcsQ0FBTSxHQUFHLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQzthQUMvQixJQUFJLENBQ0QsR0FBRyxDQUFDLENBQUMsTUFBVyxFQUFFLEVBQUU7WUFDaEIsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRTtnQkFDNUIsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBZ0IsRUFBRSxFQUFFO29CQUMzQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDMUIsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDLENBQUMsQ0FBQztZQUNILE9BQU8sTUFBTSxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDVixDQUFDOztnSEEvSlEsbUJBQW1CO29IQUFuQixtQkFBbUIsY0FGaEIsTUFBTTsyRkFFVCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtIdHRwQ2xpZW50LCBIdHRwUGFyYW1zfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7bWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCBtZXJnZSBmcm9tICdsb2Rhc2gubWVyZ2UnO1xyXG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHtBcGlGb3JtRGF0YSwgUmVzdHJpY3Rpb25GaWx0ZXJ9IGZyb20gJy4uL2ludGVyZmFjZXMvaW50ZXJmYWNlcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEF1dG9jb21wbGV0ZVNlcnZpY2Uge1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBfaHR0cENsaWVudDogSHR0cENsaWVudFxyXG4gICAgKSB7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBodHRwT3B0aW9ucyA9IHt9O1xyXG5cclxuICAgIHByaXZhdGUgcHJvY2Vzc1BhcmFtcyhmaWx0ZXJzOiBzdHJpbmdbXSB8IHN0cmluZyB8IHVuZGVmaW5lZCwgdmFsdWU6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgICAgICAgc2V0VGltZW91dChhc3luYyAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBsZXQgZmlsdGVyID0ge307XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZmlsdGVycykpIHtcclxuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGYgb2YgZmlsdGVycykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnByb2Nlc3NGaWx0ZXJTdHJpbmcoZiwgdmFsdWUpLnRoZW4oKHJlc3A6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKE9iamVjdC5rZXlzKGZpbHRlcik/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lcmdlKGZpbHRlciwgcmVzcCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlciA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uZmlsdGVyLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5yZXNwXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZiA9PT0gZmlsdGVyc1tmaWx0ZXJzPy5sZW5ndGggLSAxXSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoZmlsdGVyKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZmlsdGVycyA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnByb2Nlc3NGaWx0ZXJTdHJpbmcoZmlsdGVycywgdmFsdWUpLnRoZW4oKHJlc3A6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5maWx0ZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5yZXNwXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGZpbHRlcik7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChudWxsKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSwgMTAwKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGFzeW5jIHByb2Nlc3NGaWx0ZXJTdHJpbmcoZmlsdGVyOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgICAgIGxldCBmOiBhbnkgPSB7fTtcclxuXHJcbiAgICAgICAgY29uc3QgYXJyYXlGaWx0ZXJzOiBzdHJpbmdbXSA9IGZpbHRlcj8uc3BsaXQoJ1snKTtcclxuXHJcbiAgICAgICAgaWYgKGFycmF5RmlsdGVycz8uZmluZEluZGV4KChhOiBzdHJpbmcpID0+IGEgPT09ICdmaWx0ZXInKSA+PSAwKSB7XHJcbiAgICAgICAgICAgIGFycmF5RmlsdGVycz8uc3BsaWNlKDAsIDEpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgYXdhaXQgdGhpcy5jcmVhdGVPYmplY3RGaWx0ZXJzKGFycmF5RmlsdGVycywgdmFsdWUpLnRoZW4oKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBmID0gZGF0YTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGY7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBhc3luYyBjcmVhdGVPYmplY3RGaWx0ZXJzKGFycmF5OiBzdHJpbmdbXSwgdmFsdWU6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XHJcbiAgICAgICAgZm9yIChsZXQgZmlsdGVyIG9mIGFycmF5KSB7XHJcbiAgICAgICAgICAgIGZpbHRlciA9IGZpbHRlcj8ucmVwbGFjZSgnXScsICcnKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChhcnJheS5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgICAgICAgICBhcnJheS5zcGxpY2UoMCwgMSk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1tmaWx0ZXJdOiBhd2FpdCB0aGlzLmNyZWF0ZU9iamVjdEZpbHRlcnMoYXJyYXksIHZhbHVlKX07XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZmlsdGVyID09PSAnJGxpa2UnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtbZmlsdGVyXTogJyUnICsgdmFsdWUgKyAnJSd9O1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1tmaWx0ZXJdOiB2YWx1ZX07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIGdldEF1dG9jb21wbGV0ZUJ5VGV4dCh1cmw6IHN0cmluZywgdGV4dD86IHN0cmluZywgZmllbGQ/OiBzdHJpbmdbXSB8IHN0cmluZywgcmVzdHJpY3Rpb25zPzogUmVzdHJpY3Rpb25GaWx0ZXJbXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlUHJvcGVydGllcz86IHN0cmluZ1tdLCBvcmRlcj86IHN0cmluZywgYm9keVJlcXVlc3Q/OiBBcGlGb3JtRGF0YSk6IFByb21pc2U8T2JzZXJ2YWJsZTxhbnk+PiB7XHJcblxyXG4gICAgICAgIGxldCBodHRwUGFyYW1zOiBIdHRwUGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKS5zZXQoJ29mZnNldCcsICcwJyk7XHJcbiAgICAgICAgaHR0cFBhcmFtcyA9IGh0dHBQYXJhbXMuYXBwZW5kKCdsaW1pdCcsICcyMCcpO1xyXG5cclxuICAgICAgICBpZiAob3JkZXIpIHtcclxuICAgICAgICAgICAgaHR0cFBhcmFtcyA9IGh0dHBQYXJhbXMuYXBwZW5kKCdvcmRlcicsIG9yZGVyKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghdGV4dCkge1xyXG4gICAgICAgICAgICB0ZXh0ID0gJyc7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoYm9keVJlcXVlc3QpIHtcclxuICAgICAgICAgICAgbGV0IGJvZHk6IEFwaUZvcm1EYXRhID0ge307XHJcbiAgICAgICAgICAgIGlmICh0ZXh0ICYmIHRleHQgIT09ICcnKSB7XHJcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnByb2Nlc3NQYXJhbXMoZmllbGQsIHRleHQpXHJcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBib2R5ID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uYm9keVJlcXVlc3QsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXI6IGRhdGFcclxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGJvZHkgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGJvZHlSZXF1ZXN0KSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChyZXN0cmljdGlvbnM/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgciBvZiByZXN0cmljdGlvbnMpIHtcclxuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnByb2Nlc3NQYXJhbXMocj8uZmlsdGVyLCByPy52YWx1ZT8udG9TdHJpbmcoKSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4oKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGZpbHRlcnNBdXggPSB7Li4uYm9keT8uZmlsdGVyfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVyZ2UoZmlsdGVyc0F1eCwgZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib2R5ID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLmJvZHksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyOiBmaWx0ZXJzQXV4XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaHR0cFBhcmFtcyA9IGh0dHBQYXJhbXMuc2V0KCdmb3JtJywgSlNPTi5zdHJpbmdpZnkoYm9keSkpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGh0dHBQYXJhbXMgPSBodHRwUGFyYW1zLmFwcGVuZCgnZm9ybScsIEpTT04uc3RyaW5naWZ5KGJvZHkpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmICh0ZXh0ICYmIHRleHQgIT09ICcnKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShmaWVsZCkpIHtcclxuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGYgb2YgZmllbGQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaHR0cFBhcmFtcyA9IGh0dHBQYXJhbXMuYXBwZW5kKGYsICclJyArIHRleHQgKyAnJScpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpZWxkPy5pbmNsdWRlcygnJGxpa2UnKSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBodHRwUGFyYW1zID0gaHR0cFBhcmFtcy5hcHBlbmQoZmllbGQsICclJyArIHRleHQgKyAnJScpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZmllbGQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaHR0cFBhcmFtcyA9IGh0dHBQYXJhbXMuYXBwZW5kKGZpZWxkLCB0ZXh0KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJlc3RyaWN0aW9ucz8uZm9yRWFjaCgocmVzdHJpY3Rpb246IFJlc3RyaWN0aW9uRmlsdGVyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmVzdHJpY3Rpb24/LnZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaHR0cFBhcmFtcyA9IGh0dHBQYXJhbXMuYXBwZW5kKHJlc3RyaWN0aW9uPy5maWx0ZXIsIHJlc3RyaWN0aW9uLnZhbHVlPy50b1N0cmluZygpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmh0dHBPcHRpb25zID0ge3BhcmFtczogaHR0cFBhcmFtc307XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLl9odHRwQ2xpZW50XHJcbiAgICAgICAgICAgIC5nZXQ8YW55Pih1cmwsIHRoaXMuaHR0cE9wdGlvbnMpXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdD8uZGF0YT8ubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlUHJvcGVydGllcz8uZm9yRWFjaCgocHJvcGVydHk6IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIGl0ZW1bcHJvcGVydHldO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -1,48 +1,48 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class UtilsService {
4
- /**
5
- * Convierte el tiempo pasado por parámetro en horas y minutos
6
- *
7
- * @param time - Tiempo
8
- * @returns Devuelve las horas y minutos
9
- */
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
- static resolvePropertyByPath(obj, path) {
35
- return path.reduce((prev, curr) => {
36
- return prev ? prev[curr] : null;
37
- }, obj || self);
38
- }
39
- }
40
- UtilsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: UtilsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
41
- UtilsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: UtilsService, providedIn: 'root' });
42
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImport: i0, type: UtilsService, decorators: [{
43
- type: Injectable,
44
- args: [{
45
- providedIn: 'root'
46
- }]
47
- }] });
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class UtilsService {
4
+ /**
5
+ * Convierte el tiempo pasado por parámetro en horas y minutos
6
+ *
7
+ * @param time - Tiempo
8
+ * @returns Devuelve las horas y minutos
9
+ */
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
+ static resolvePropertyByPath(obj, path) {
35
+ return path.reduce((prev, curr) => {
36
+ return prev ? prev[curr] : null;
37
+ }, obj || self);
38
+ }
39
+ }
40
+ UtilsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: UtilsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
41
+ UtilsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: UtilsService, providedIn: 'root' });
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: UtilsService, decorators: [{
43
+ type: Injectable,
44
+ args: [{
45
+ providedIn: 'root'
46
+ }]
47
+ }] });
48
48
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2d1YWNob3MtZ2VuZXJhbC1hdXRvY29tcGxldGUvc3JjL3V0aWxzL3NlcnZpY2VzL3V0aWxzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFLekMsTUFBTSxPQUFPLFlBQVk7SUFDckI7Ozs7O09BS0c7SUFDSyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQXFCO1FBQ3hDLE1BQU0sS0FBSyxHQUFXLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM3RCxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sT0FBTyxHQUFXLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUU3RCxPQUFPLEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBQyxDQUFBO0lBQzNCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFZO1FBQ3BDLE1BQU0sRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFDLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVwRCxPQUFPLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDL0YsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBcUI7UUFDaEQsTUFBTSxFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUMsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXBELE9BQU8sQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxNQUFNLEdBQUcsQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDeEcsQ0FBQztJQUVNLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxHQUFRLEVBQUUsSUFBYztRQUN4RCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBWSxFQUFFLEVBQUU7WUFDdEMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ3BDLENBQUMsRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUM7SUFDcEIsQ0FBQzs7eUdBekNRLFlBQVk7NkdBQVosWUFBWSxjQUZULE1BQU07MkZBRVQsWUFBWTtrQkFIeEIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVdGlsc1NlcnZpY2Uge1xyXG4gICAgLyoqXHJcbiAgICAgKiBDb252aWVydGUgZWwgdGllbXBvIHBhc2FkbyBwb3IgcGFyw6FtZXRybyBlbiBob3JhcyB5IG1pbnV0b3NcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gdGltZSAtIFRpZW1wb1xyXG4gICAgICogQHJldHVybnMgRGV2dWVsdmUgbGFzIGhvcmFzIHkgbWludXRvc1xyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHN0YXRpYyBnZXRUaW1lKHRpbWU6IG51bWJlciB8IHN0cmluZyk6IHsgaG91cnM6IG51bWJlcjsgbWludXRlczogbnVtYmVyIH0ge1xyXG4gICAgICAgIGNvbnN0IGhvdXJzOiBudW1iZXIgPSBwYXJzZUludChOdW1iZXIodGltZSkgLyAzNjAwICsgJycsIDEwKTtcclxuICAgICAgICB0aW1lID0gTnVtYmVyKHRpbWUpIC0gKGhvdXJzICogMzYwMCk7XHJcbiAgICAgICAgY29uc3QgbWludXRlczogbnVtYmVyID0gcGFyc2VJbnQoTnVtYmVyKHRpbWUpIC8gNjAgKyAnJywgMTApO1xyXG5cclxuICAgICAgICByZXR1cm4ge2hvdXJzLCBtaW51dGVzfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGV2dWVsdmUgZWwgdGllbXBvIGVuIGZvcm1hdG8gJ2hoOm1tJ1xyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSB0aW1lIC0gVGllbXBvXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0VGltZVByZXR0eSh0aW1lOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IHtob3VycywgbWludXRlc30gPSBVdGlsc1NlcnZpY2UuZ2V0VGltZSh0aW1lKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIChob3VycyA8IDEwID8gJzAnICsgaG91cnMgOiBob3VycykgKyAnOicgKyAobWludXRlcyA8IDEwID8gJzAnICsgbWludXRlcyA6IG1pbnV0ZXMpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGV2dWVsdmUgZWwgdGllbXBvIGVuIGZvcm1hdG8gJ2hoaCA6IG1tbSdcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gdGltZSAtIFRpZW1wb1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIGh1bWFuaXplRHVyYXRpb24odGltZTogbnVtYmVyIHwgc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCB7aG91cnMsIG1pbnV0ZXN9ID0gVXRpbHNTZXJ2aWNlLmdldFRpbWUodGltZSk7XHJcblxyXG4gICAgICAgIHJldHVybiAoaG91cnMgPCAxMCA/ICcwJyArIGhvdXJzIDogaG91cnMpICsgJ2ggOiAnICsgKG1pbnV0ZXMgPCAxMCA/ICcwJyArIG1pbnV0ZXMgOiBtaW51dGVzKSArICdtJztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIHJlc29sdmVQcm9wZXJ0eUJ5UGF0aChvYmo6IGFueSwgcGF0aDogc3RyaW5nW10pOiBhbnkge1xyXG4gICAgICAgIHJldHVybiBwYXRoLnJlZHVjZSgocHJldiwgY3Vycjogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiBwcmV2ID8gcHJldltjdXJyXSA6IG51bGw7XHJcbiAgICAgICAgfSwgb2JqIHx8IHNlbGYpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==