@sumaris-net/ngx-components 1.20.28 → 1.20.29
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.
- package/bundles/sumaris-net.ngx-components.umd.js +105 -104
- package/bundles/sumaris-net.ngx-components.umd.js.map +1 -1
- package/bundles/sumaris-net.ngx-components.umd.min.js +2 -2
- package/bundles/sumaris-net.ngx-components.umd.min.js.map +1 -1
- package/doc/changelog.md +3 -0
- package/esm2015/public_api.js +3 -1
- package/esm2015/src/app/core/form/form-buttons-bar.component.js +2 -2
- package/esm2015/src/app/shared/functions.js +1 -60
- package/esm2015/src/app/shared/material/autocomplete/material.autocomplete.js +3 -2
- package/esm2015/src/app/shared/material/autocomplete/testing/autocomplete.test.js +3 -2
- package/esm2015/src/app/shared/material/chips/material.chips.js +3 -2
- package/esm2015/src/app/shared/material/chips/testing/chips.test.js +3 -2
- package/esm2015/src/app/shared/pipes/arrays.pipe.js +1 -1
- package/esm2015/src/app/shared/pipes/form.pipes.js +2 -4
- package/esm2015/src/app/shared/pipes/highlight.pipe.js +4 -4
- package/esm2015/src/app/shared/pipes/string.pipes.js +7 -18
- package/esm2015/src/app/shared/services/memory-entity-service.class.js +12 -1
- package/esm2015/src/app/shared/services.js +61 -0
- package/fesm2015/sumaris-net.ngx-components.js +80 -80
- package/fesm2015/sumaris-net.ngx-components.js.map +1 -1
- package/package.json +1 -1
- package/public_api.d.ts +2 -0
- package/src/app/shared/functions.d.ts +0 -9
- package/src/app/shared/pipes/form.pipes.d.ts +1 -2
- package/src/app/shared/services/memory-entity-service.class.d.ts +7 -0
- package/src/app/shared/services.d.ts +9 -0
- package/sumaris-net.ngx-components.metadata.json +1 -1
|
@@ -1,64 +1,53 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
2
|
import { isNilOrBlank, isNotNilOrBlank } from '../functions';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
3
|
export class IsNotNilOrBlankPipe {
|
|
5
4
|
transform(value) {
|
|
6
5
|
return isNotNilOrBlank(value);
|
|
7
6
|
}
|
|
8
7
|
}
|
|
9
|
-
IsNotNilOrBlankPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsNotNilOrBlankPipe_Factory() { return new IsNotNilOrBlankPipe(); }, token: IsNotNilOrBlankPipe, providedIn: "root" });
|
|
10
8
|
IsNotNilOrBlankPipe.decorators = [
|
|
11
9
|
{ type: Pipe, args: [{
|
|
12
10
|
name: 'isNotNilOrBlank'
|
|
13
|
-
},] }
|
|
14
|
-
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
11
|
+
},] }
|
|
15
12
|
];
|
|
16
13
|
export class IsNilOrBlankPipe {
|
|
17
14
|
transform(value) {
|
|
18
15
|
return isNilOrBlank(value);
|
|
19
16
|
}
|
|
20
17
|
}
|
|
21
|
-
IsNilOrBlankPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsNilOrBlankPipe_Factory() { return new IsNilOrBlankPipe(); }, token: IsNilOrBlankPipe, providedIn: "root" });
|
|
22
18
|
IsNilOrBlankPipe.decorators = [
|
|
23
19
|
{ type: Pipe, args: [{
|
|
24
20
|
name: 'isNilOrBlank'
|
|
25
|
-
},] }
|
|
26
|
-
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
21
|
+
},] }
|
|
27
22
|
];
|
|
28
23
|
export class ToStringPipe {
|
|
29
24
|
transform(value) {
|
|
30
25
|
return (value !== null && value !== undefined) ? value.toString() : '';
|
|
31
26
|
}
|
|
32
27
|
}
|
|
33
|
-
ToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function ToStringPipe_Factory() { return new ToStringPipe(); }, token: ToStringPipe, providedIn: "root" });
|
|
34
28
|
ToStringPipe.decorators = [
|
|
35
29
|
{ type: Pipe, args: [{
|
|
36
30
|
name: 'toString'
|
|
37
|
-
},] }
|
|
38
|
-
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
31
|
+
},] }
|
|
39
32
|
];
|
|
40
33
|
export class StrLengthPipe {
|
|
41
34
|
transform(value) {
|
|
42
35
|
return value && value.length || 0;
|
|
43
36
|
}
|
|
44
37
|
}
|
|
45
|
-
StrLengthPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function StrLengthPipe_Factory() { return new StrLengthPipe(); }, token: StrLengthPipe, providedIn: "root" });
|
|
46
38
|
StrLengthPipe.decorators = [
|
|
47
39
|
{ type: Pipe, args: [{
|
|
48
40
|
name: 'strLength'
|
|
49
|
-
},] }
|
|
50
|
-
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
41
|
+
},] }
|
|
51
42
|
];
|
|
52
43
|
export class StrIncludesPipe {
|
|
53
44
|
transform(value, searchString, position) {
|
|
54
45
|
return (value === null || value === void 0 ? void 0 : value.includes(searchString, position)) || false;
|
|
55
46
|
}
|
|
56
47
|
}
|
|
57
|
-
StrIncludesPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function StrIncludesPipe_Factory() { return new StrIncludesPipe(); }, token: StrIncludesPipe, providedIn: "root" });
|
|
58
48
|
StrIncludesPipe.decorators = [
|
|
59
49
|
{ type: Pipe, args: [{
|
|
60
50
|
name: 'strIncludes'
|
|
61
|
-
},] }
|
|
62
|
-
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
51
|
+
},] }
|
|
63
52
|
];
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLnBpcGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvcGlwZXMvc3RyaW5nLnBpcGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYSxJQUFJLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBQyxZQUFZLEVBQUUsZUFBZSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBSzNELE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIsU0FBUyxDQUFDLEtBQWE7UUFDckIsT0FBTyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQzs7O1lBTkYsSUFBSSxTQUFDO2dCQUNKLElBQUksRUFBRSxpQkFBaUI7YUFDeEI7O0FBVUQsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQixTQUFTLENBQUMsS0FBYTtRQUNyQixPQUFPLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDOzs7WUFORixJQUFJLFNBQUM7Z0JBQ0osSUFBSSxFQUFFLGNBQWM7YUFDckI7O0FBVUQsTUFBTSxPQUFPLFlBQVk7SUFDdkIsU0FBUyxDQUFDLEtBQWE7UUFDckIsT0FBTyxDQUFDLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUN6RSxDQUFDOzs7WUFORixJQUFJLFNBQUM7Z0JBQ0osSUFBSSxFQUFFLFVBQVU7YUFDakI7O0FBV0QsTUFBTSxPQUFPLGFBQWE7SUFDeEIsU0FBUyxDQUFDLEtBQWE7UUFDckIsT0FBTyxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUM7SUFDcEMsQ0FBQzs7O1lBTkYsSUFBSSxTQUFDO2dCQUNKLElBQUksRUFBRSxXQUFXO2FBQ2xCOztBQVdELE1BQU0sT0FBTyxlQUFlO0lBQzFCLFNBQVMsQ0FBQyxLQUFhLEVBQUUsWUFBb0IsRUFBRSxRQUFpQjtRQUM5RCxPQUFPLENBQUEsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLFFBQVEsQ0FBQyxZQUFZLEVBQUUsUUFBUSxNQUFLLEtBQUssQ0FBQztJQUMxRCxDQUFDOzs7WUFORixJQUFJLFNBQUM7Z0JBQ0osSUFBSSxFQUFFLGFBQWE7YUFDcEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGUsIFBpcGUsIFBpcGVUcmFuc2Zvcm19IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtpc05pbE9yQmxhbmssIGlzTm90TmlsT3JCbGFua30gZnJvbSAnLi4vZnVuY3Rpb25zJztcblxuQFBpcGUoe1xuICBuYW1lOiAnaXNOb3ROaWxPckJsYW5rJ1xufSlcbmV4cG9ydCBjbGFzcyBJc05vdE5pbE9yQmxhbmtQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybSh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzTm90TmlsT3JCbGFuayh2YWx1ZSk7XG4gIH1cbn1cblxuQFBpcGUoe1xuICBuYW1lOiAnaXNOaWxPckJsYW5rJ1xufSlcbmV4cG9ydCBjbGFzcyBJc05pbE9yQmxhbmtQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybSh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzTmlsT3JCbGFuayh2YWx1ZSk7XG4gIH1cbn1cblxuQFBpcGUoe1xuICBuYW1lOiAndG9TdHJpbmcnXG59KVxuZXhwb3J0IGNsYXNzIFRvU3RyaW5nUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm0odmFsdWU6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuICh2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkKSA/IHZhbHVlLnRvU3RyaW5nKCkgOiAnJztcbiAgfVxufVxuXG5cbkBQaXBlKHtcbiAgbmFtZTogJ3N0ckxlbmd0aCdcbn0pXG5leHBvcnQgY2xhc3MgU3RyTGVuZ3RoUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm0odmFsdWU6IHN0cmluZyk6IG51bWJlciB7XG4gICAgcmV0dXJuIHZhbHVlICYmIHZhbHVlLmxlbmd0aCB8fCAwO1xuICB9XG59XG5cblxuQFBpcGUoe1xuICBuYW1lOiAnc3RySW5jbHVkZXMnXG59KVxuZXhwb3J0IGNsYXNzIFN0ckluY2x1ZGVzUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm0odmFsdWU6IHN0cmluZywgc2VhcmNoU3RyaW5nOiBzdHJpbmcsIHBvc2l0aW9uPzogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHZhbHVlPy5pbmNsdWRlcyhzZWFyY2hTdHJpbmcsIHBvc2l0aW9uKSB8fCBmYWxzZTtcbiAgfVxufVxuIl19
|
|
@@ -184,6 +184,17 @@ export class InMemoryEntitiesService extends EntitiesService {
|
|
|
184
184
|
return this._equalsFn(d1, d2);
|
|
185
185
|
return d1 && d1.equals ? d1.equals(d2) : EntityUtils.equals(d1, d2, 'id');
|
|
186
186
|
}
|
|
187
|
+
/**
|
|
188
|
+
* Count data inside the service.
|
|
189
|
+
* @param opts
|
|
190
|
+
*/
|
|
191
|
+
count(opts = { withHidden: false }) {
|
|
192
|
+
var _a, _b, _c;
|
|
193
|
+
if (opts.withHidden) {
|
|
194
|
+
return (((_a = this.data) === null || _a === void 0 ? void 0 : _a.length) || 0) + (((_b = this._hiddenData) === null || _b === void 0 ? void 0 : _b.length) || 0);
|
|
195
|
+
}
|
|
196
|
+
return (((_c = this.data) === null || _c === void 0 ? void 0 : _c.length) || 0);
|
|
197
|
+
}
|
|
187
198
|
/* -- protected methods -- */
|
|
188
199
|
filter(data, _filter, hiddenData) {
|
|
189
200
|
// if filter is DataFilter instance, use its test function
|
|
@@ -223,4 +234,4 @@ InMemoryEntitiesService.ctorParameters = () => [
|
|
|
223
234
|
{ type: Function },
|
|
224
235
|
{ type: undefined }
|
|
225
236
|
];
|
|
226
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5LWVudGl0eS1zZXJ2aWNlLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvc2VydmljZXMvbWVtb3J5LWVudGl0eS1zZXJ2aWNlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsZUFBZSxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUNyRSxPQUFPLEVBQUMsZUFBZSxFQUF1RixNQUFNLHdCQUF3QixDQUFDO0FBRTdJLE9BQU8sRUFBQyxTQUFTLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFDLFdBQVcsRUFBVSxNQUFNLHdDQUF3QyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxZQUFZLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUN2RixPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFjdkMsV0FBVztBQUVYLGtFQUFrRTtBQUNsRSxNQUFNLE9BQU8sdUJBS1gsU0FBUSxlQUF5QjtJQTJCakMsWUFDWSxRQUFvQixFQUNwQixVQUFzQixFQUNoQyxPQUE4QztRQUU5QyxLQUFLLEVBQUUsQ0FBQztRQUpFLGFBQVEsR0FBUixRQUFRLENBQVk7UUFDcEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQTFCbEMsVUFBSyxHQUFHLEtBQUssQ0FBQztRQUNkLFVBQUssR0FBRyxLQUFLLENBQUM7UUFJTixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRVAsY0FBUyxHQUFHLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBdUJyRCxPQUFPLG1CQUNMLE1BQU0sRUFBRSxJQUFJLENBQUMs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Q3JCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVTLE9BQU87UUFDZixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUN4QixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDTixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUM3QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQzFCLE9BQU8sRUFBQyxJQUFJLEVBQUUsS0FBSyxFQUFDLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFJUyxZQUFZO1FBQ3BCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ3RCLENBQUM7SUFFUyxXQUFXO1FBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7OztZQTNSRixTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtmaWx0ZXIsIG1hcCwgbWVyZ2VNYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7aXNFbXB0eUFycmF5LCBpc05vdEVtcHR5QXJyYXksIGlzTm90TmlsfSBmcm9tICcuLi9mdW5jdGlvbnMnO1xuaW1wb3J0IHtFbnRpdGllc1NlcnZpY2UsIEVudGl0aWVzU2VydmljZVdhdGNoT3B0aW9ucywgRmlsdGVyRm4sIEZpbHRlckZuRmFjdG9yeSwgSUVudGl0aWVzU2VydmljZSwgTG9hZFJlc3VsdH0gZnJvbSAnLi9lbnRpdHktc2VydmljZS5jbGFzcyc7XG5pbXBvcnQge1NvcnREaXJlY3Rpb259IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuaW1wb3J0IHtEaXJlY3RpdmUsIE9uRGVzdHJveX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0VudGl0eVV0aWxzLCBJRW50aXR5fSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL21vZGVsL2VudGl0eS5tb2RlbCc7XG5pbXBvcnQge0VudGl0eUZpbHRlciwgRW50aXR5RmlsdGVyVXRpbHN9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvbW9kZWwvZmlsdGVyLm1vZGVsJztcbmltcG9ydCB7d2FpdEZvcn0gZnJvbSAnLi4vb2JzZXJ2YWJsZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEluTWVtb3J5RW50aXRpZXNTZXJ2aWNlT3B0aW9uczxULCBGPiB7XG4gIG9uU29ydD86IChkYXRhOiBUW10sIHNvcnRCeT86IHN0cmluZywgc29ydERpcmVjdGlvbj86IFNvcnREaXJlY3Rpb24pID0+IFRbXTtcbiAgb25Mb2FkPzogKGRhdGE6IFRbXSkgPT4gVFtdIHwgUHJvbWlzZTxUW10+O1xuICBvblNhdmU/OiAoZGF0YTogVFtdKSA9PiBUW10gfCBQcm9taXNlPFRbXT47XG4gIGVxdWFscz86IChkMTogVCwgZDI6IFQpID0+IGJvb2xlYW47XG5cbiAgZmlsdGVyRm5GYWN0b3J5PzogRmlsdGVyRm5GYWN0b3J5PFQsIEY+O1xuICBmaWx0ZXJGbj86IEZpbHRlckZuPFQ+O1xuXG4gIHNvcnRCeVJlcGxhY2VtZW50PzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbn1cblxuLy8gQGR5bmFtaWNcbkBEaXJlY3RpdmUoKVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtY2xhc3Mtc3VmZml4XG5leHBvcnQgY2xhc3MgSW5NZW1vcnlFbnRpdGllc1NlcnZpY2U8XG4gIFQgZXh0ZW5kcyBJRW50aXR5PFQsIElEPixcbiAgRiA9IGFueSxcbiAgSUQgPSBudW1iZXIsXG4gIE8gZXh0ZW5kcyBFbnRpdGllc1NlcnZpY2VXYXRjaE9wdGlvbnMgPSBFbnRpdGllc1NlcnZpY2VXYXRjaE9wdGlvbnM+XG4gIGV4dGVuZHMgRW50aXRpZXNTZXJ2aWNlPFQsIEYsIElEPlxuICBpbXBsZW1lbnRzIElFbnRpdGllc1NlcnZpY2U8VCwgRiwgTz4sIE9uRGVzdHJveSB7XG5cbiAgZGVidWcgPSBmYWxzZTtcbiAgZGlydHkgPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgZGF0YTogVFtdO1xuICBwcml2YXRlIF9oaWRkZW5EYXRhOiBUW107XG4gIHByaXZhdGUgX3NhdmluZyA9IGZhbHNlO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX29uQ2hhbmdlID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0cnVlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfc29ydEZuOiAoZGF0YTogVFtdLCBzb3J0Qnk/OiBzdHJpbmcsIHNvcnREaXJlY3Rpb24/OiBTb3J0RGlyZWN0aW9uKSA9PiBUW107XG4gIHByaXZhdGUgcmVhZG9ubHkgX29uTG9hZDogKGRhdGE6IFRbXSkgPT4gVFtdIHwgUHJvbWlzZTxUW10+O1xuICBwcml2YXRlIHJlYWRvbmx5IF9vblNhdmVGbjogKGRhdGE6IFRbXSkgPT4gVFtdIHwgUHJvbWlzZTxUW10+O1xuICBwcml2YXRlIHJlYWRvbmx5IF9lcXVhbHNGbjogKGQxOiBULCBkMjogVCkgPT4gYm9vbGVhbjtcbiAgcHJpdmF0ZSByZWFkb25seSBfZmlsdGVyRm5GYWN0b3J5OiBGaWx0ZXJGbkZhY3Rvcnk8VCwgRj47XG4gIHByaXZhdGUgcmVhZG9ubHkgX3NvcnRCeVJlcGxhY2VtZW50OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuXG5cbiAgc2V0IHZhbHVlKGRhdGE6IFRbXSkge1xuICAgIHRoaXMuc2V0VmFsdWUoZGF0YSk7XG4gIH1cblxuICBnZXQgdmFsdWUoKTogVFtdIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGRhdGFUeXBlOiBuZXcoKSA9PiBULFxuICAgIHByb3RlY3RlZCBmaWx0ZXJUeXBlOiBuZXcoKSA9PiBGLFxuICAgIG9wdGlvbnM/OiBJbk1lbW9yeUVudGl0aWVzU2VydmljZU9wdGlvbnM8VCwgRj5cbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICBvcHRpb25zID0ge1xuICAgICAgb25Tb3J0OiB0aGlzLnNvcnQsXG4gICAgICAuLi5vcHRpb25zXG4gICAgfTtcblxuICAgIHRoaXMuX3NvcnRGbiA9IG9wdGlvbnMub25Tb3J0O1xuICAgIHRoaXMuX29uTG9hZCA9IG9wdGlvbnMub25Mb2FkO1xuICAgIHRoaXMuX29uU2F2ZUZuID0gb3B0aW9ucy5vblNhdmU7XG4gICAgdGhpcy5fZXF1YWxzRm4gPSBvcHRpb25zLmVxdWFscztcbiAgICB0aGlzLl9maWx0ZXJGbkZhY3RvcnkgPSBvcHRpb25zLmZpbHRlckZuRmFjdG9yeSB8fCAoKGYpID0+IHtcbiAgICAgIGNvbnN0IGZpbHRlciA9IHRoaXMuYXNGaWx0ZXIoZikgYXMgRjtcbiAgICAgIGlmIChmaWx0ZXIgaW5zdGFuY2VvZiBFbnRpdHlGaWx0ZXIpIHtcbiAgICAgICAgcmV0dXJuIGZpbHRlci5hc0ZpbHRlckZuKCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH0pO1xuXG4gICAgdGhpcy5fc29ydEJ5UmVwbGFjZW1lbnQgPSB7XG4gICAgICAvLyBEZXRlY3QgcmFua09yZGVyIG9uIHRoZSBlbnRpdHkgY2xhc3NcbiAgICAgIGlkOiAoT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMobmV3IGRhdGFUeXBlKCkpLmZpbmRJbmRleChrZXkgPT4ga2V5ID09PSAncmFua09yZGVyJykgIT09IC0xKSA/ICdyYW5rT3JkZXInIDogdW5kZWZpbmVkLFxuICAgICAgLi4ub3B0aW9ucy5zb3J0QnlSZXBsYWNlbWVudFxuICAgIH07XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5kZWJ1ZykgY29uc29sZS5kZWJ1ZygnW21lbW9yeS1kYXRhLXNlcnZpY2VdIERlc3Ryb3lpbmcuLi4nKTtcbiAgICB0aGlzLl9vbkNoYW5nZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX29uQ2hhbmdlLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBzZXRWYWx1ZShkYXRhOiBUW10sIG9wdHM/OiB7IGVtaXRFdmVudD86IGJvb2xlYW4gfSkge1xuICAgIGlmICh0aGlzLmRhdGEgIT09IGRhdGEpIHtcbiAgICAgIHRoaXMuX2hpZGRlbkRhdGEgPSBbXTtcbiAgICAgIHRoaXMuZGF0YSA9IGRhdGE7XG5cbiAgICAgIC8vIFNlbmQgdG8gb2JzZXJ2ZXJzXG4gICAgICBpZiAoIW9wdHMgfHwgb3B0cy5lbWl0RXZlbnQgIT09IGZhbHNlKSB7XG4gICAgICAgIHRoaXMuX29uQ2hhbmdlLm5leHQodHJ1ZSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuZGlydHkgPSBmYWxzZTtcbiAgfVxuXG4gIHdhdGNoQWxsKFxuICAgIG9mZnNldDogbnVtYmVyLFxuICAgIHNpemU6IG51bWJlcixcbiAgICBzb3J0Qnk/OiBzdHJpbmcsXG4gICAgc29ydERpcmVjdGlvbj86IFNvcnREaXJlY3Rpb24sXG4gICAgZmlsdGVyRGF0YT86IEYsXG4gICAgb3B0aW9ucz86IGFueVxuICApOiBPYnNlcnZhYmxlPExvYWRSZXN1bHQ8VD4+IHtcblxuICAgIG9mZnNldCA9IG9mZnNldCA+PSAwID8gb2Zmc2V0IDogMDtcbiAgICBzaXplID0gc2l6ZSA+PSAwID8gc2l6ZSA6IC0xO1xuXG4gICAgaWYgKCF0aGlzLmRhdGEpIHtcbiAgICAgIGNvbnNvbGUud2FybignW21lbW9yeS1kYXRhLXNlcnZpY2VdIFdhaXRpbmcgdmFsdWUgdG8gYmUgc2V0Li4uJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX29uQ2hhbmdlXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKGlzTm90TmlsKSxcbiAgICAgICAgbWVyZ2VNYXAoXyA9PiB3YWl0Rm9yKCgpID0+ICF0aGlzLl9zYXZpbmcpKSxcbiAgICAgICAgbWVyZ2VNYXAoYXN5bmMgKF8pID0+IHtcbiAgICAgICAgICBjb25zdCBleGNsdWRlZERhdGFCeUZpbHRlcjogVFtdID0gW107XG4gICAgICAgICAgbGV0IGV4Y2x1ZGVkRGF0YUJ5UGFnaW5hdGlvbjogVFtdO1xuXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmIChpc0VtcHR5QXJyYXkodGhpcy5kYXRhKSkge1xuICAgICAgICAgICAgICByZXR1cm4ge2RhdGE6IFtdLCB0b3RhbDogMH07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIEFwcGx5IHNvcnRcbiAgICAgICAgICAgIGxldCBkYXRhID0gdGhpcy5fc29ydEZuKHRoaXMuZGF0YSB8fCBbXSwgc29ydEJ5LCBzb3J0RGlyZWN0aW9uKSA7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLl9vbkxvYWQpIHtcbiAgICAgICAgICAgICAgY29uc3QgcHJvbWlzZU9yRGF0YSA9IHRoaXMuX29uTG9hZChkYXRhKTtcbiAgICAgICAgICAgICAgZGF0YSA9ICgocHJvbWlzZU9yRGF0YSBpbnN0YW5jZW9mIFByb21pc2UpKSA/IGF3YWl0IHByb21pc2VPckRhdGEgOiBwcm9taXNlT3JEYXRhO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBBcHBseSBmaWx0ZXIgKHdpbGwgdXBkYXRlIGhpZGRlbkRhdGEpXG4gICAgICAgICAgICBkYXRhID0gdGhpcy5maWx0ZXIoZGF0YSwgZmlsdGVyRGF0YSwgZXhjbHVkZWREYXRhQnlGaWx0ZXIpO1xuXG4gICAgICAgICAgICAvLyBDb21wdXRlIHRoZSB0b3RhbCBsZW5ndGhcbiAgICAgICAgICAgIGNvbnN0IHRvdGFsID0gZGF0YS5sZW5ndGg7XG5cbiAgICAgICAgICAgIC8vIElmIHBhZ2Ugc2l6ZT0wIChlLmcuIG9ubHkgbmVlZCB0b3RhbClcbiAgICAgICAgICAgIGlmIChzaXplID09PSAwKSB7XG4gICAgICAgICAgICAgIGV4Y2x1ZGVkRGF0YUJ5UGFnaW5hdGlvbiA9IGRhdGE7XG4gICAgICAgICAgICAgIHJldHVybiB7ZGF0YTogW10sIHRvdGFsfTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gU2xpY2UgaW4gYSBwYWdlICh1c2luZyBvZmZzZXQgYW5kIHNpemUpXG4gICAgICAgICAgICBpZiAob2Zmc2V0ID4gMCkge1xuXG4gICAgICAgICAgICAgIC8vIE9mZnNldCBhZnRlciB0aGUgZW5kOiBubyByZXN1bHRcbiAgICAgICAgICAgICAgaWYgKG9mZnNldCA+PSBkYXRhLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGV4Y2x1ZGVkRGF0YUJ5UGFnaW5hdGlvbiA9IGRhdGE7XG4gICAgICAgICAgICAgICAgZGF0YSA9IFtdO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGV4Y2x1ZGVkRGF0YUJ5UGFnaW5hdGlvbiA9IChzaXplID4gMCAmJiAoKG9mZnNldCArIHNpemUpIDwgZGF0YS5sZW5ndGgpKSA/XG4gICAgICAgICAgICAgICAgICAvLyBTbGljZSB1c2luZyBsaW1pdCB0byBzaXplXG4gICAgICAgICAgICAgICAgICBkYXRhLnNsaWNlKDAsIG9mZnNldCAtMSkuY29uY2F0KGRhdGEuc2xpY2Uob2Zmc2V0ICsgc2l6ZSkpIDpcbiAgICAgICAgICAgICAgICAgIC8vIFNsaWNlIHdpdGhvdXQgbGltaXRcbiAgICAgICAgICAgICAgICAgIGRhdGEuc2xpY2UoMCwgb2Zmc2V0LTEpO1xuICAgICAgICAgICAgICAgIGRhdGEgPSAoc2l6ZSA+IDAgJiYgKChvZmZzZXQgKyBzaXplKSA8IGRhdGEubGVuZ3RoKSkgP1xuICAgICAgICAgICAgICAgICAgLy8gU2xpY2UgdXNpbmcgbGltaXQgdG8gc2l6ZVxuICAgICAgICAgICAgICAgICAgZGF0YS5zbGljZShvZmZzZXQsIG9mZnNldCArIHNpemUpIDpcbiAgICAgICAgICAgICAgICAgIC8vIFNsaWNlIHdpdGhvdXQgbGltaXRcbiAgICAgICAgICAgICAgICAgIGRhdGEuc2xpY2Uob2Zmc2V0KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBBcHBseSBhIGxpbWl0XG4gICAgICAgICAgICBlbHNlIGlmIChzaXplID4gMCl7XG4gICAgICAgICAgICAgIGV4Y2x1ZGVkRGF0YUJ5UGFnaW5hdGlvbiA9IGRhdGEuc2xpY2Uoc2l6ZSk7XG4gICAgICAgICAgICAgIGRhdGEgPSBkYXRhLnNsaWNlKDAsIHNpemUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gTm8gbGltaXQ6XG4gICAgICAgICAgICBlbHNlIGlmIChzaXplID09PSAtMSl7XG4gICAgICAgICAgICAgIC8vIEtlZXAgYWxsIGRhdGFcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gLyFcXCBJZiBhbHJlYWR5IG9ic2VydmVkLCB0aGVuIGFsd2F5cyBjcmVhdGUgYSBjb3B5IG9mIHRoZSBvcmlnaW5hbCBhcnJheVxuICAgICAgICAgICAgLy8gQmVjYXVzZSBkYXRhc291cmNlIHdpbGwgb25seSB1cGRhdGUgaWYgdGhlIGFycmF5IGNoYW5nZWRcbiAgICAgICAgICAgIGlmIChkYXRhID09PSB0aGlzLmRhdGEpIHtcbiAgICAgICAgICAgICAgZGF0YSA9IGRhdGEuc2xpY2UoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHtkYXRhLCB0b3RhbH07XG4gICAgICAgICAgfVxuICAgICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgLy8gUmVtZW1iZXIgaGlkZGVuIGRhdGFcbiAgICAgICAgICAgIHRoaXMuX2hpZGRlbkRhdGEgPSAhZXhjbHVkZWREYXRhQnlQYWdpbmF0aW9uID8gZXhjbHVkZWREYXRhQnlGaWx0ZXIgOiBleGNsdWRlZERhdGFCeUZpbHRlci5jb25jYXQoLi4uZXhjbHVkZWREYXRhQnlQYWdpbmF0aW9uKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgYXN5bmMgc2F2ZUFsbChkYXRhOiBUW10sIG9wdGlvbnM/OiBhbnkpOiBQcm9taXNlPFRbXT4ge1xuICAgIGlmICghdGhpcy5kYXRhKSB0aHJvdyBuZXcgRXJyb3IoJ1ttZW1vcnktc2VydmljZV0gQ291bGQgbm90IHNhdmUsIGJlY2F1c2UgdmFsdWUgbm90IHNldCcpO1xuXG4gICAgdGhpcy5tYXJrQXNTYXZpbmcoKTtcblxuICAgIHRyeSB7XG5cbiAgICAgIC8vIFJlc3RvcmUgaGlkZGVuIGRhdGFcbiAgICAgIGlmIChpc05vdEVtcHR5QXJyYXkodGhpcy5faGlkZGVuRGF0YSkpXG4gICAgICAgIGRhdGEgPSBkYXRhLmNvbmNhdCguLi50aGlzLl9oaWRkZW5EYXRhKTtcblxuICAgICAgaWYgKHRoaXMuX29uU2F2ZUZuKSB7XG4gICAgICAgIGNvbnN0IHJlcyA9IHRoaXMuX29uU2F2ZUZuKGRhdGEpO1xuICAgICAgICBkYXRhID0gKChyZXMgaW5zdGFuY2VvZiBQcm9taXNlKSkgPyBhd2FpdCByZXMgOiByZXM7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZGF0YSA9IGRhdGE7XG4gICAgICB0aGlzLmRpcnR5ID0gdHJ1ZTtcbiAgICAgIHJldHVybiB0aGlzLmRhdGE7XG4gICAgfVxuICAgIGZpbmFsbHkge1xuICAgICAgdGhpcy5tYXJrQXNTYXZlZCgpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZUFsbChkYXRhVG9SZW1vdmU6IFRbXSwgb3B0aW9ucz86IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgaWYgKCF0aGlzLmRhdGEpIHRocm93IG5ldyBFcnJvcignW21lbW9yeS1zZXJ2aWNlXSBDb3VsZCBub3QgZGVsZXRlLCBiZWNhdXNlIHZhbHVlIG5vdCBzZXQnKTtcblxuICAgIC8vIFJlbW92ZSBkZWxldGVkIGl0ZW0sIGZyb20gZGF0YVxuICAgIGNvbnN0IHVwZGF0ZWREYXRhID0gdGhpcy5kYXRhLmZpbHRlcihlbnRpdHkgPT4ge1xuICAgICAgY29uc3QgcmVtb3ZlZCA9IGRhdGFUb1JlbW92ZS5maW5kSW5kZXgoZW50aXR5VG9SZW1vdmUgPT4gdGhpcy5lcXVhbHMoZW50aXR5VG9SZW1vdmUsIGVudGl0eSkpICE9PSAtMTtcbiAgICAgIHJldHVybiAhcmVtb3ZlZDtcbiAgICB9KTtcbiAgICBjb25zdCBkZWxldGVDb3VudCA9IHRoaXMuZGF0YS5sZW5ndGggLSB1cGRhdGVkRGF0YS5sZW5ndGg7XG4gICAgaWYgKGRlbGV0ZUNvdW50ID4gMCkge1xuICAgICAgdGhpcy5kYXRhID0gdXBkYXRlZERhdGE7XG4gICAgICB0aGlzLmRpcnR5ID0gdHJ1ZTtcbiAgICAgIHRoaXMuX29uQ2hhbmdlLm5leHQodHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgc29ydChkYXRhOiBUW10sIHNvcnRCeT86IHN0cmluZywgc29ydERpcmVjdGlvbj86IFNvcnREaXJlY3Rpb24pOiBUW10ge1xuICAgIC8vIFJlcGxhY2Ugc29ydEJ5LCB1c2luZyB0aGUgcmVwbGFjZW1lbnQgbWFwXG4gICAgc29ydEJ5ID0gc29ydEJ5ICYmIHRoaXMuX3NvcnRCeVJlcGxhY2VtZW50W3NvcnRCeV0gfHwgc29ydEJ5IHx8ICdpZCc7XG5cbiAgICAvLyBFeGVjdXRlIHRoZSBzb3J0XG4gICAgcmV0dXJuIEVudGl0eVV0aWxzLnNvcnQoZGF0YSwgc29ydEJ5LCBzb3J0RGlyZWN0aW9uKTtcbiAgfVxuXG4gIGFzRmlsdGVyKHNvdXJjZTogUGFydGlhbDxGPik6IEYge1xuICAgIHJldHVybiBFbnRpdHlGaWx0ZXJVdGlscy5mcm9tT2JqZWN0KHNvdXJjZSwgdGhpcy5maWx0ZXJUeXBlKTtcbiAgfVxuXG4gIGFkZFNvcnRCeVJlcGxhY2VtZW50KHNvdXJjZTogc3RyaW5nLCB0YXJnZXQ6IHN0cmluZykge1xuICAgIHRoaXMuX3NvcnRCeVJlcGxhY2VtZW50W3NvdXJjZV0gPSB0YXJnZXQ7XG4gIH1cblxuICBlcXVhbHMoZDE6IFQsIGQyOiBUKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuX2VxdWFsc0ZuKSByZXR1cm4gdGhpcy5fZXF1YWxzRm4oZDEsIGQyKTtcbiAgICByZXR1cm4gZDEgJiYgZDEuZXF1YWxzID8gZDEuZXF1YWxzKGQyKSA6IEVudGl0eVV0aWxzLmVxdWFscyhkMSwgZDIsICdpZCcpO1xuICB9XG5cbiAgLyogLS0gcHJvdGVjdGVkIG1ldGhvZHMgLS0gKi9cblxuICBwcm90ZWN0ZWQgZmlsdGVyKGRhdGE6IFRbXSwgX2ZpbHRlcjogRiwgaGlkZGVuRGF0YTogVFtdKTogVFtdIHtcblxuICAgIC8vIGlmIGZpbHRlciBpcyBEYXRhRmlsdGVyIGluc3RhbmNlLCB1c2UgaXRzIHRlc3QgZnVuY3Rpb25cbiAgICBjb25zdCBmaWx0ZXJGbiA9IHRoaXMuX2ZpbHRlckZuRmFjdG9yeSAmJiB0aGlzLl9maWx0ZXJGbkZhY3RvcnkoX2ZpbHRlcik7XG4gICAgaWYgKGZpbHRlckZuKSB7XG4gICAgICBjb25zdCBmaWx0ZXJlZERhdGEgPSBbXTtcblxuICAgICAgZGF0YS5mb3JFYWNoKHZhbHVlID0+IHtcbiAgICAgICAgaWYgKGZpbHRlckZuKHZhbHVlKSlcbiAgICAgICAgICBmaWx0ZXJlZERhdGEucHVzaCh2YWx1ZSk7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICBoaWRkZW5EYXRhLnB1c2godmFsdWUpO1xuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiBmaWx0ZXJlZERhdGE7XG4gICAgfVxuXG4gICAgLy8gZGVmYXVsdCwgbm8gZmlsdGVyXG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBwcm90ZWN0ZWQgY29ubmVjdCgpOiBPYnNlcnZhYmxlPExvYWRSZXN1bHQ8VD4+IHtcbiAgICByZXR1cm4gdGhpcy5fb25DaGFuZ2UucGlwZShcbiAgICAgIG1hcChfID0+IHtcbiAgICAgICAgY29uc3QgZGF0YSA9IHRoaXMuZGF0YSB8fCBbXTtcbiAgICAgICAgY29uc3QgdG90YWwgPSBkYXRhLmxlbmd0aDtcbiAgICAgICAgcmV0dXJuIHtkYXRhLCB0b3RhbH07XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuXG5cbiAgcHJvdGVjdGVkIG1hcmtBc1NhdmluZygpIHtcbiAgICB0aGlzLl9zYXZpbmcgPSB0cnVlO1xuICB9XG5cbiAgcHJvdGVjdGVkIG1hcmtBc1NhdmVkKCkge1xuICAgIHRoaXMuX3NhdmluZyA9IGZhbHNlO1xuICB9XG59XG4iXX0=
|
|
237
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3J5LWVudGl0eS1zZXJ2aWNlLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvc2VydmljZXMvbWVtb3J5LWVudGl0eS1zZXJ2aWNlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsZUFBZSxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUNyRSxPQUFPLEVBQUMsZUFBZSxFQUF1RixNQUFNLHdCQUF3QixDQUFDO0FBRTdJLE9BQU8sRUFBQyxTQUFTLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFDLFdBQVcsRUFBVSxNQUFNLHdDQUF3QyxDQUFDO0FBQzVFLE9BQU8sRUFBQyxZQUFZLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUN2RixPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFjdkMsV0FBVztBQUVYLGtFQUFrRTtBQUNsRSxNQUFNLE9BQU8sdUJBS1gsU0FBUSxlQUF5QjtJQTJCakMsWUFDWSxRQUFvQixFQUNwQixVQUFzQixFQUNoQyxPQUE4QztRQUU5QyxLQUFLLEVBQUUsQ0FBQztRQUpFLGFBQVEsR0FBUixRQUFRLENBQVk7UUFDcEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQTFCbEMsVUFBSyxHQUFHLEtBQUssQ0FBQztRQUNkLFVBQUssR0FBRyxLQUFLLENBQUM7UUFJTixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRVAsY0FBUyxHQUFHLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBdUJyRCxPQUFPLG1CQUNMLE1BQU0sRUFBRSxJQUFJLENBQUMs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QUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDekUsSUFBSSxRQUFRLEVBQUU7WUFDWixNQUFNLFlBQVksR0FBRyxFQUFFLENBQUM7WUFFeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDbkIsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDO29CQUNqQixZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDOztvQkFFekIsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMzQixDQUFDLENBQUMsQ0FBQztZQUVILE9BQU8sWUFBWSxDQUFDO1NBQ3JCO1FBRUQscUJBQXFCO1FBQ3JCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVTLE9BQU87UUFDZixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUN4QixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDTixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUM3QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQzFCLE9BQU8sRUFBQyxJQUFJLEVBQUUsS0FBSyxFQUFDLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFJUyxZQUFZO1FBQ3BCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ3RCLENBQUM7SUFFUyxXQUFXO1FBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7OztZQXRTRixTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtmaWx0ZXIsIG1hcCwgbWVyZ2VNYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7aXNFbXB0eUFycmF5LCBpc05vdEVtcHR5QXJyYXksIGlzTm90TmlsfSBmcm9tICcuLi9mdW5jdGlvbnMnO1xuaW1wb3J0IHtFbnRpdGllc1NlcnZpY2UsIEVudGl0aWVzU2VydmljZVdhdGNoT3B0aW9ucywgRmlsdGVyRm4sIEZpbHRlckZuRmFjdG9yeSwgSUVudGl0aWVzU2VydmljZSwgTG9hZFJlc3VsdH0gZnJvbSAnLi9lbnRpdHktc2VydmljZS5jbGFzcyc7XG5pbXBvcnQge1NvcnREaXJlY3Rpb259IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuaW1wb3J0IHtEaXJlY3RpdmUsIE9uRGVzdHJveX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0VudGl0eVV0aWxzLCBJRW50aXR5fSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL21vZGVsL2VudGl0eS5tb2RlbCc7XG5pbXBvcnQge0VudGl0eUZpbHRlciwgRW50aXR5RmlsdGVyVXRpbHN9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvbW9kZWwvZmlsdGVyLm1vZGVsJztcbmltcG9ydCB7d2FpdEZvcn0gZnJvbSAnLi4vb2JzZXJ2YWJsZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEluTWVtb3J5RW50aXRpZXNTZXJ2aWNlT3B0aW9uczxULCBGPiB7XG4gIG9uU29ydD86IChkYXRhOiBUW10sIHNvcnRCeT86IHN0cmluZywgc29ydERpcmVjdGlvbj86IFNvcnREaXJlY3Rpb24pID0+IFRbXTtcbiAgb25Mb2FkPzogKGRhdGE6IFRbXSkgPT4gVFtdIHwgUHJvbWlzZTxUW10+O1xuICBvblNhdmU/OiAoZGF0YTogVFtdKSA9PiBUW10gfCBQcm9taXNlPFRbXT47XG4gIGVxdWFscz86IChkMTogVCwgZDI6IFQpID0+IGJvb2xlYW47XG5cbiAgZmlsdGVyRm5GYWN0b3J5PzogRmlsdGVyRm5GYWN0b3J5PFQsIEY+O1xuICBmaWx0ZXJGbj86IEZpbHRlckZuPFQ+O1xuXG4gIHNvcnRCeVJlcGxhY2VtZW50PzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbn1cblxuLy8gQGR5bmFtaWNcbkBEaXJlY3RpdmUoKVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtY2xhc3Mtc3VmZml4XG5leHBvcnQgY2xhc3MgSW5NZW1vcnlFbnRpdGllc1NlcnZpY2U8XG4gIFQgZXh0ZW5kcyBJRW50aXR5PFQsIElEPixcbiAgRiA9IGFueSxcbiAgSUQgPSBudW1iZXIsXG4gIE8gZXh0ZW5kcyBFbnRpdGllc1NlcnZpY2VXYXRjaE9wdGlvbnMgPSBFbnRpdGllc1NlcnZpY2VXYXRjaE9wdGlvbnM+XG4gIGV4dGVuZHMgRW50aXRpZXNTZXJ2aWNlPFQsIEYsIElEPlxuICBpbXBsZW1lbnRzIElFbnRpdGllc1NlcnZpY2U8VCwgRiwgTz4sIE9uRGVzdHJveSB7XG5cbiAgZGVidWcgPSBmYWxzZTtcbiAgZGlydHkgPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgZGF0YTogVFtdO1xuICBwcml2YXRlIF9oaWRkZW5EYXRhOiBUW107XG4gIHByaXZhdGUgX3NhdmluZyA9IGZhbHNlO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX29uQ2hhbmdlID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0cnVlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfc29ydEZuOiAoZGF0YTogVFtdLCBzb3J0Qnk/OiBzdHJpbmcsIHNvcnREaXJlY3Rpb24/OiBTb3J0RGlyZWN0aW9uKSA9PiBUW107XG4gIHByaXZhdGUgcmVhZG9ubHkgX29uTG9hZDogKGRhdGE6IFRbXSkgPT4gVFtdIHwgUHJvbWlzZTxUW10+O1xuICBwcml2YXRlIHJlYWRvbmx5IF9vblNhdmVGbjogKGRhdGE6IFRbXSkgPT4gVFtdIHwgUHJvbWlzZTxUW10+O1xuICBwcml2YXRlIHJlYWRvbmx5IF9lcXVhbHNGbjogKGQxOiBULCBkMjogVCkgPT4gYm9vbGVhbjtcbiAgcHJpdmF0ZSByZWFkb25seSBfZmlsdGVyRm5GYWN0b3J5OiBGaWx0ZXJGbkZhY3Rvcnk8VCwgRj47XG4gIHByaXZhdGUgcmVhZG9ubHkgX3NvcnRCeVJlcGxhY2VtZW50OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuXG5cbiAgc2V0IHZhbHVlKGRhdGE6IFRbXSkge1xuICAgIHRoaXMuc2V0VmFsdWUoZGF0YSk7XG4gIH1cblxuICBnZXQgdmFsdWUoKTogVFtdIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGRhdGFUeXBlOiBuZXcoKSA9PiBULFxuICAgIHByb3RlY3RlZCBmaWx0ZXJUeXBlOiBuZXcoKSA9PiBGLFxuICAgIG9wdGlvbnM/OiBJbk1lbW9yeUVudGl0aWVzU2VydmljZU9wdGlvbnM8VCwgRj5cbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICBvcHRpb25zID0ge1xuICAgICAgb25Tb3J0OiB0aGlzLnNvcnQsXG4gICAgICAuLi5vcHRpb25zXG4gICAgfTtcblxuICAgIHRoaXMuX3NvcnRGbiA9IG9wdGlvbnMub25Tb3J0O1xuICAgIHRoaXMuX29uTG9hZCA9IG9wdGlvbnMub25Mb2FkO1xuICAgIHRoaXMuX29uU2F2ZUZuID0gb3B0aW9ucy5vblNhdmU7XG4gICAgdGhpcy5fZXF1YWxzRm4gPSBvcHRpb25zLmVxdWFscztcbiAgICB0aGlzLl9maWx0ZXJGbkZhY3RvcnkgPSBvcHRpb25zLmZpbHRlckZuRmFjdG9yeSB8fCAoKGYpID0+IHtcbiAgICAgIGNvbnN0IGZpbHRlciA9IHRoaXMuYXNGaWx0ZXIoZikgYXMgRjtcbiAgICAgIGlmIChmaWx0ZXIgaW5zdGFuY2VvZiBFbnRpdHlGaWx0ZXIpIHtcbiAgICAgICAgcmV0dXJuIGZpbHRlci5hc0ZpbHRlckZuKCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH0pO1xuXG4gICAgdGhpcy5fc29ydEJ5UmVwbGFjZW1lbnQgPSB7XG4gICAgICAvLyBEZXRlY3QgcmFua09yZGVyIG9uIHRoZSBlbnRpdHkgY2xhc3NcbiAgICAgIGlkOiAoT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMobmV3IGRhdGFUeXBlKCkpLmZpbmRJbmRleChrZXkgPT4ga2V5ID09PSAncmFua09yZGVyJykgIT09IC0xKSA/ICdyYW5rT3JkZXInIDogdW5kZWZpbmVkLFxuICAgICAgLi4ub3B0aW9ucy5zb3J0QnlSZXBsYWNlbWVudFxuICAgIH07XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5kZWJ1ZykgY29uc29sZS5kZWJ1ZygnW21lbW9yeS1kYXRhLXNlcnZpY2VdIERlc3Ryb3lpbmcuLi4nKTtcbiAgICB0aGlzLl9vbkNoYW5nZS5jb21wbGV0ZSgpO1xuICAgIHRoaXMuX29uQ2hhbmdlLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBzZXRWYWx1ZShkYXRhOiBUW10sIG9wdHM/OiB7IGVtaXRFdmVudD86IGJvb2xlYW4gfSkge1xuICAgIGlmICh0aGlzLmRhdGEgIT09IGRhdGEpIHtcbiAgICAgIHRoaXMuX2hpZGRlbkRhdGEgPSBbXTtcbiAgICAgIHRoaXMuZGF0YSA9IGRhdGE7XG5cbiAgICAgIC8vIFNlbmQgdG8gb2JzZXJ2ZXJzXG4gICAgICBpZiAoIW9wdHMgfHwgb3B0cy5lbWl0RXZlbnQgIT09IGZhbHNlKSB7XG4gICAgICAgIHRoaXMuX29uQ2hhbmdlLm5leHQodHJ1ZSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuZGlydHkgPSBmYWxzZTtcbiAgfVxuXG4gIHdhdGNoQWxsKFxuICAgIG9mZnNldDogbnVtYmVyLFxuICAgIHNpemU6IG51bWJlcixcbiAgICBzb3J0Qnk/OiBzdHJpbmcsXG4gICAgc29ydERpcmVjdGlvbj86IFNvcnREaXJlY3Rpb24sXG4gICAgZmlsdGVyRGF0YT86IEYsXG4gICAgb3B0aW9ucz86IGFueVxuICApOiBPYnNlcnZhYmxlPExvYWRSZXN1bHQ8VD4+IHtcblxuICAgIG9mZnNldCA9IG9mZnNldCA+PSAwID8gb2Zmc2V0IDogMDtcbiAgICBzaXplID0gc2l6ZSA+PSAwID8gc2l6ZSA6IC0xO1xuXG4gICAgaWYgKCF0aGlzLmRhdGEpIHtcbiAgICAgIGNvbnNvbGUud2FybignW21lbW9yeS1kYXRhLXNlcnZpY2VdIFdhaXRpbmcgdmFsdWUgdG8gYmUgc2V0Li4uJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX29uQ2hhbmdlXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKGlzTm90TmlsKSxcbiAgICAgICAgbWVyZ2VNYXAoXyA9PiB3YWl0Rm9yKCgpID0+ICF0aGlzLl9zYXZpbmcpKSxcbiAgICAgICAgbWVyZ2VNYXAoYXN5bmMgKF8pID0+IHtcbiAgICAgICAgICBjb25zdCBleGNsdWRlZERhdGFCeUZpbHRlcjogVFtdID0gW107XG4gICAgICAgICAgbGV0IGV4Y2x1ZGVkRGF0YUJ5UGFnaW5hdGlvbjogVFtdO1xuXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmIChpc0VtcHR5QXJyYXkodGhpcy5kYXRhKSkge1xuICAgICAgICAgICAgICByZXR1cm4ge2RhdGE6IFtdLCB0b3RhbDogMH07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIEFwcGx5IHNvcnRcbiAgICAgICAgICAgIGxldCBkYXRhID0gdGhpcy5fc29ydEZuKHRoaXMuZGF0YSB8fCBbXSwgc29ydEJ5LCBzb3J0RGlyZWN0aW9uKSA7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLl9vbkxvYWQpIHtcbiAgICAgICAgICAgICAgY29uc3QgcHJvbWlzZU9yRGF0YSA9IHRoaXMuX29uTG9hZChkYXRhKTtcbiAgICAgICAgICAgICAgZGF0YSA9ICgocHJvbWlzZU9yRGF0YSBpbnN0YW5jZW9mIFByb21pc2UpKSA/IGF3YWl0IHByb21pc2VPckRhdGEgOiBwcm9taXNlT3JEYXRhO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBBcHBseSBmaWx0ZXIgKHdpbGwgdXBkYXRlIGhpZGRlbkRhdGEpXG4gICAgICAgICAgICBkYXRhID0gdGhpcy5maWx0ZXIoZGF0YSwgZmlsdGVyRGF0YSwgZXhjbHVkZWREYXRhQnlGaWx0ZXIpO1xuXG4gICAgICAgICAgICAvLyBDb21wdXRlIHRoZSB0b3RhbCBsZW5ndGhcbiAgICAgICAgICAgIGNvbnN0IHRvdGFsID0gZGF0YS5sZW5ndGg7XG5cbiAgICAgICAgICAgIC8vIElmIHBhZ2Ugc2l6ZT0wIChlLmcuIG9ubHkgbmVlZCB0b3RhbClcbiAgICAgICAgICAgIGlmIChzaXplID09PSAwKSB7XG4gICAgICAgICAgICAgIGV4Y2x1ZGVkRGF0YUJ5UGFnaW5hdGlvbiA9IGRhdGE7XG4gICAgICAgICAgICAgIHJldHVybiB7ZGF0YTogW10sIHRvdGFsfTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gU2xpY2UgaW4gYSBwYWdlICh1c2luZyBvZmZzZXQgYW5kIHNpemUpXG4gICAgICAgICAgICBpZiAob2Zmc2V0ID4gMCkge1xuXG4gICAgICAgICAgICAgIC8vIE9mZnNldCBhZnRlciB0aGUgZW5kOiBubyByZXN1bHRcbiAgICAgICAgICAgICAgaWYgKG9mZnNldCA+PSBkYXRhLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGV4Y2x1ZGVkRGF0YUJ5UGFnaW5hdGlvbiA9IGRhdGE7XG4gICAgICAgICAgICAgICAgZGF0YSA9IFtdO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGV4Y2x1ZGVkRGF0YUJ5UGFnaW5hdGlvbiA9IChzaXplID4gMCAmJiAoKG9mZnNldCArIHNpemUpIDwgZGF0YS5sZW5ndGgpKSA/XG4gICAgICAgICAgICAgICAgICAvLyBTbGljZSB1c2luZyBsaW1pdCB0byBzaXplXG4gICAgICAgICAgICAgICAgICBkYXRhLnNsaWNlKDAsIG9mZnNldCAtMSkuY29uY2F0KGRhdGEuc2xpY2Uob2Zmc2V0ICsgc2l6ZSkpIDpcbiAgICAgICAgICAgICAgICAgIC8vIFNsaWNlIHdpdGhvdXQgbGltaXRcbiAgICAgICAgICAgICAgICAgIGRhdGEuc2xpY2UoMCwgb2Zmc2V0LTEpO1xuICAgICAgICAgICAgICAgIGRhdGEgPSAoc2l6ZSA+IDAgJiYgKChvZmZzZXQgKyBzaXplKSA8IGRhdGEubGVuZ3RoKSkgP1xuICAgICAgICAgICAgICAgICAgLy8gU2xpY2UgdXNpbmcgbGltaXQgdG8gc2l6ZVxuICAgICAgICAgICAgICAgICAgZGF0YS5zbGljZShvZmZzZXQsIG9mZnNldCArIHNpemUpIDpcbiAgICAgICAgICAgICAgICAgIC8vIFNsaWNlIHdpdGhvdXQgbGltaXRcbiAgICAgICAgICAgICAgICAgIGRhdGEuc2xpY2Uob2Zmc2V0KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBBcHBseSBhIGxpbWl0XG4gICAgICAgICAgICBlbHNlIGlmIChzaXplID4gMCl7XG4gICAgICAgICAgICAgIGV4Y2x1ZGVkRGF0YUJ5UGFnaW5hdGlvbiA9IGRhdGEuc2xpY2Uoc2l6ZSk7XG4gICAgICAgICAgICAgIGRhdGEgPSBkYXRhLnNsaWNlKDAsIHNpemUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gTm8gbGltaXQ6XG4gICAgICAgICAgICBlbHNlIGlmIChzaXplID09PSAtMSl7XG4gICAgICAgICAgICAgIC8vIEtlZXAgYWxsIGRhdGFcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gLyFcXCBJZiBhbHJlYWR5IG9ic2VydmVkLCB0aGVuIGFsd2F5cyBjcmVhdGUgYSBjb3B5IG9mIHRoZSBvcmlnaW5hbCBhcnJheVxuICAgICAgICAgICAgLy8gQmVjYXVzZSBkYXRhc291cmNlIHdpbGwgb25seSB1cGRhdGUgaWYgdGhlIGFycmF5IGNoYW5nZWRcbiAgICAgICAgICAgIGlmIChkYXRhID09PSB0aGlzLmRhdGEpIHtcbiAgICAgICAgICAgICAgZGF0YSA9IGRhdGEuc2xpY2UoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHtkYXRhLCB0b3RhbH07XG4gICAgICAgICAgfVxuICAgICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgLy8gUmVtZW1iZXIgaGlkZGVuIGRhdGFcbiAgICAgICAgICAgIHRoaXMuX2hpZGRlbkRhdGEgPSAhZXhjbHVkZWREYXRhQnlQYWdpbmF0aW9uID8gZXhjbHVkZWREYXRhQnlGaWx0ZXIgOiBleGNsdWRlZERhdGFCeUZpbHRlci5jb25jYXQoLi4uZXhjbHVkZWREYXRhQnlQYWdpbmF0aW9uKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgYXN5bmMgc2F2ZUFsbChkYXRhOiBUW10sIG9wdGlvbnM/OiBhbnkpOiBQcm9taXNlPFRbXT4ge1xuICAgIGlmICghdGhpcy5kYXRhKSB0aHJvdyBuZXcgRXJyb3IoJ1ttZW1vcnktc2VydmljZV0gQ291bGQgbm90IHNhdmUsIGJlY2F1c2UgdmFsdWUgbm90IHNldCcpO1xuXG4gICAgdGhpcy5tYXJrQXNTYXZpbmcoKTtcblxuICAgIHRyeSB7XG5cbiAgICAgIC8vIFJlc3RvcmUgaGlkZGVuIGRhdGFcbiAgICAgIGlmIChpc05vdEVtcHR5QXJyYXkodGhpcy5faGlkZGVuRGF0YSkpXG4gICAgICAgIGRhdGEgPSBkYXRhLmNvbmNhdCguLi50aGlzLl9oaWRkZW5EYXRhKTtcblxuICAgICAgaWYgKHRoaXMuX29uU2F2ZUZuKSB7XG4gICAgICAgIGNvbnN0IHJlcyA9IHRoaXMuX29uU2F2ZUZuKGRhdGEpO1xuICAgICAgICBkYXRhID0gKChyZXMgaW5zdGFuY2VvZiBQcm9taXNlKSkgPyBhd2FpdCByZXMgOiByZXM7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZGF0YSA9IGRhdGE7XG4gICAgICB0aGlzLmRpcnR5ID0gdHJ1ZTtcbiAgICAgIHJldHVybiB0aGlzLmRhdGE7XG4gICAgfVxuICAgIGZpbmFsbHkge1xuICAgICAgdGhpcy5tYXJrQXNTYXZlZCgpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZUFsbChkYXRhVG9SZW1vdmU6IFRbXSwgb3B0aW9ucz86IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgaWYgKCF0aGlzLmRhdGEpIHRocm93IG5ldyBFcnJvcignW21lbW9yeS1zZXJ2aWNlXSBDb3VsZCBub3QgZGVsZXRlLCBiZWNhdXNlIHZhbHVlIG5vdCBzZXQnKTtcblxuICAgIC8vIFJlbW92ZSBkZWxldGVkIGl0ZW0sIGZyb20gZGF0YVxuICAgIGNvbnN0IHVwZGF0ZWREYXRhID0gdGhpcy5kYXRhLmZpbHRlcihlbnRpdHkgPT4ge1xuICAgICAgY29uc3QgcmVtb3ZlZCA9IGRhdGFUb1JlbW92ZS5maW5kSW5kZXgoZW50aXR5VG9SZW1vdmUgPT4gdGhpcy5lcXVhbHMoZW50aXR5VG9SZW1vdmUsIGVudGl0eSkpICE9PSAtMTtcbiAgICAgIHJldHVybiAhcmVtb3ZlZDtcbiAgICB9KTtcbiAgICBjb25zdCBkZWxldGVDb3VudCA9IHRoaXMuZGF0YS5sZW5ndGggLSB1cGRhdGVkRGF0YS5sZW5ndGg7XG4gICAgaWYgKGRlbGV0ZUNvdW50ID4gMCkge1xuICAgICAgdGhpcy5kYXRhID0gdXBkYXRlZERhdGE7XG4gICAgICB0aGlzLmRpcnR5ID0gdHJ1ZTtcbiAgICAgIHRoaXMuX29uQ2hhbmdlLm5leHQodHJ1ZSk7XG4gICAgfVxuICB9XG5cbiAgc29ydChkYXRhOiBUW10sIHNvcnRCeT86IHN0cmluZywgc29ydERpcmVjdGlvbj86IFNvcnREaXJlY3Rpb24pOiBUW10ge1xuICAgIC8vIFJlcGxhY2Ugc29ydEJ5LCB1c2luZyB0aGUgcmVwbGFjZW1lbnQgbWFwXG4gICAgc29ydEJ5ID0gc29ydEJ5ICYmIHRoaXMuX3NvcnRCeVJlcGxhY2VtZW50W3NvcnRCeV0gfHwgc29ydEJ5IHx8ICdpZCc7XG5cbiAgICAvLyBFeGVjdXRlIHRoZSBzb3J0XG4gICAgcmV0dXJuIEVudGl0eVV0aWxzLnNvcnQoZGF0YSwgc29ydEJ5LCBzb3J0RGlyZWN0aW9uKTtcbiAgfVxuXG4gIGFzRmlsdGVyKHNvdXJjZTogUGFydGlhbDxGPik6IEYge1xuICAgIHJldHVybiBFbnRpdHlGaWx0ZXJVdGlscy5mcm9tT2JqZWN0KHNvdXJjZSwgdGhpcy5maWx0ZXJUeXBlKTtcbiAgfVxuXG4gIGFkZFNvcnRCeVJlcGxhY2VtZW50KHNvdXJjZTogc3RyaW5nLCB0YXJnZXQ6IHN0cmluZykge1xuICAgIHRoaXMuX3NvcnRCeVJlcGxhY2VtZW50W3NvdXJjZV0gPSB0YXJnZXQ7XG4gIH1cblxuICBlcXVhbHMoZDE6IFQsIGQyOiBUKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuX2VxdWFsc0ZuKSByZXR1cm4gdGhpcy5fZXF1YWxzRm4oZDEsIGQyKTtcbiAgICByZXR1cm4gZDEgJiYgZDEuZXF1YWxzID8gZDEuZXF1YWxzKGQyKSA6IEVudGl0eVV0aWxzLmVxdWFscyhkMSwgZDIsICdpZCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvdW50IGRhdGEgaW5zaWRlIHRoZSBzZXJ2aWNlLlxuICAgKiBAcGFyYW0gb3B0c1xuICAgKi9cbiAgY291bnQob3B0cyA9IHt3aXRoSGlkZGVuOiBmYWxzZX0pOiBudW1iZXIge1xuICAgIGlmIChvcHRzLndpdGhIaWRkZW4pIHtcbiAgICAgIHJldHVybiAodGhpcy5kYXRhPy5sZW5ndGggfHwgMCkgKyAodGhpcy5faGlkZGVuRGF0YT8ubGVuZ3RoIHx8IDApO1xuICAgIH1cbiAgICByZXR1cm4gKHRoaXMuZGF0YT8ubGVuZ3RoIHx8IDApO1xuICB9XG5cbiAgLyogLS0gcHJvdGVjdGVkIG1ldGhvZHMgLS0gKi9cblxuICBwcm90ZWN0ZWQgZmlsdGVyKGRhdGE6IFRbXSwgX2ZpbHRlcjogRiwgaGlkZGVuRGF0YTogVFtdKTogVFtdIHtcblxuICAgIC8vIGlmIGZpbHRlciBpcyBEYXRhRmlsdGVyIGluc3RhbmNlLCB1c2UgaXRzIHRlc3QgZnVuY3Rpb25cbiAgICBjb25zdCBmaWx0ZXJGbiA9IHRoaXMuX2ZpbHRlckZuRmFjdG9yeSAmJiB0aGlzLl9maWx0ZXJGbkZhY3RvcnkoX2ZpbHRlcik7XG4gICAgaWYgKGZpbHRlckZuKSB7XG4gICAgICBjb25zdCBmaWx0ZXJlZERhdGEgPSBbXTtcblxuICAgICAgZGF0YS5mb3JFYWNoKHZhbHVlID0+IHtcbiAgICAgICAgaWYgKGZpbHRlckZuKHZhbHVlKSlcbiAgICAgICAgICBmaWx0ZXJlZERhdGEucHVzaCh2YWx1ZSk7XG4gICAgICAgIGVsc2VcbiAgICAgICAgICBoaWRkZW5EYXRhLnB1c2godmFsdWUpO1xuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiBmaWx0ZXJlZERhdGE7XG4gICAgfVxuXG4gICAgLy8gZGVmYXVsdCwgbm8gZmlsdGVyXG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBwcm90ZWN0ZWQgY29ubmVjdCgpOiBPYnNlcnZhYmxlPExvYWRSZXN1bHQ8VD4+IHtcbiAgICByZXR1cm4gdGhpcy5fb25DaGFuZ2UucGlwZShcbiAgICAgIG1hcChfID0+IHtcbiAgICAgICAgY29uc3QgZGF0YSA9IHRoaXMuZGF0YSB8fCBbXTtcbiAgICAgICAgY29uc3QgdG90YWwgPSBkYXRhLmxlbmd0aDtcbiAgICAgICAgcmV0dXJuIHtkYXRhLCB0b3RhbH07XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuXG5cbiAgcHJvdGVjdGVkIG1hcmtBc1NhdmluZygpIHtcbiAgICB0aGlzLl9zYXZpbmcgPSB0cnVlO1xuICB9XG5cbiAgcHJvdGVjdGVkIG1hcmtBc1NhdmVkKCkge1xuICAgIHRoaXMuX3NhdmluZyA9IGZhbHNlO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { getPropertyByPathAsString, isNotEmptyArray, isNotNil, isNotNilOrBlank, matchUpperCase, propertiesPathComparator, startsWithUpperCase } from './functions';
|
|
3
|
+
export function suggestFromArray(items, value, opts) {
|
|
4
|
+
if (isNotNil(value) && typeof value === 'object')
|
|
5
|
+
return { data: [value] };
|
|
6
|
+
value = (typeof value === 'string' && value !== '*') && value.toUpperCase() || undefined;
|
|
7
|
+
const keys = opts && (opts.searchAttribute && [opts.searchAttribute] || opts.searchAttributes) || ['label'];
|
|
8
|
+
if (!items) {
|
|
9
|
+
return { data: [], total: 0 };
|
|
10
|
+
}
|
|
11
|
+
// Filter items
|
|
12
|
+
let filteredItems = items;
|
|
13
|
+
if (isNotNilOrBlank(value)) {
|
|
14
|
+
// If wildcard, search using regexp
|
|
15
|
+
if (value.indexOf('*') !== -1) {
|
|
16
|
+
value = value.replace(/[*]+/g, '.*');
|
|
17
|
+
filteredItems = filteredItems.filter(v => keys.findIndex(key => matchUpperCase(getPropertyByPathAsString(v, key), value)) !== -1);
|
|
18
|
+
}
|
|
19
|
+
// Else (no wildcard), search using startsWith
|
|
20
|
+
else {
|
|
21
|
+
filteredItems = filteredItems.filter(v => keys.findIndex(key => startsWithUpperCase(getPropertyByPathAsString(v, key), value)) !== -1);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
// Exclude ids
|
|
25
|
+
if (isNotEmptyArray(opts === null || opts === void 0 ? void 0 : opts.excludedIds)) {
|
|
26
|
+
filteredItems = filteredItems.filter(v => !opts.excludedIds.includes(+v['id']));
|
|
27
|
+
}
|
|
28
|
+
// Sort
|
|
29
|
+
if (!opts || opts.skipSort !== true) {
|
|
30
|
+
// Make to copy input items, before sorting (if not yet already done)
|
|
31
|
+
if (filteredItems === items)
|
|
32
|
+
filteredItems = filteredItems.slice();
|
|
33
|
+
// Sort by keys
|
|
34
|
+
filteredItems.sort(propertiesPathComparator(keys));
|
|
35
|
+
}
|
|
36
|
+
const total = filteredItems.length || 0;
|
|
37
|
+
// Pagination (truncate if need)
|
|
38
|
+
let pageData = filteredItems;
|
|
39
|
+
if (opts) {
|
|
40
|
+
if ((opts.offset || 0) > 0) {
|
|
41
|
+
pageData = pageData.slice(opts.offset);
|
|
42
|
+
}
|
|
43
|
+
if (isNotNil(opts.size) && pageData.length > opts.size) {
|
|
44
|
+
pageData = pageData.slice(0, opts.size);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
const result = {
|
|
48
|
+
data: pageData,
|
|
49
|
+
total
|
|
50
|
+
};
|
|
51
|
+
// Add fetch more capability, if total was fetched
|
|
52
|
+
const nextOffset = (opts && opts.offset || 0) + pageData.length;
|
|
53
|
+
if (nextOffset < total) {
|
|
54
|
+
result.fetchMore = (_) => __awaiter(this, void 0, void 0, function* () {
|
|
55
|
+
return suggestFromArray(filteredItems, undefined /*OPTIMISATION: already applied*/, Object.assign(Object.assign({}, opts), { offset: nextOffset, skipSort: true, excludedIds: undefined // OPTIMISATION: already filtered
|
|
56
|
+
}));
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
return result;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9zZXJ2aWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUNMLHlCQUF5QixFQUN6QixlQUFlLEVBQ2YsUUFBUSxFQUNSLGVBQWUsRUFDZixjQUFjLEVBQ2Qsd0JBQXdCLEVBQ3hCLG1CQUFtQixFQUNwQixNQUFNLGFBQWEsQ0FBQztBQUVyQixNQUFNLFVBQVUsZ0JBQWdCLENBQVUsS0FBVSxFQUFFLEtBQVUsRUFBRSxJQU9qRTtJQUNDLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVE7UUFBRSxPQUFPLEVBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUMsQ0FBQztJQUV6RSxLQUFLLEdBQUcsQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxLQUFLLEdBQUcsQ0FBQyxJQUFJLEtBQUssQ0FBQyxXQUFXLEVBQUUsSUFBSSxTQUFTLENBQUM7SUFFekYsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRTVHLElBQUksQ0FBQyxLQUFLLEVBQUU7UUFDVixPQUFPLEVBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFDLENBQUM7S0FDN0I7SUFFRCxlQUFlO0lBQ2YsSUFBSSxhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQzFCLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBRTFCLG1DQUFtQztRQUNuQyxJQUFLLEtBQWdCLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ3pDLEtBQUssR0FBSSxLQUFnQixDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDakQsYUFBYSxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLHlCQUF5QixDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDbkk7UUFDRCw4Q0FBOEM7YUFDekM7WUFDSCxhQUFhLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3hJO0tBQ0Y7SUFFRCxjQUFjO0lBQ2QsSUFBSSxlQUFlLENBQUMsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLFdBQVcsQ0FBQyxFQUFFO1FBQ3RDLGFBQWEsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDakY7SUFFRCxPQUFPO0lBQ1AsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLElBQUksRUFBRTtRQUVuQyxxRUFBcUU7UUFDckUsSUFBSSxhQUFhLEtBQUssS0FBSztZQUFFLGFBQWEsR0FBRyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFbkUsZUFBZTtRQUNmLGFBQWEsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztLQUNwRDtJQUVELE1BQU0sS0FBSyxHQUFHLGFBQWEsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDO0lBRXhDLGdDQUFnQztJQUNoQyxJQUFJLFFBQVEsR0FBRyxhQUFhLENBQUM7SUFDN0IsSUFBSSxJQUFJLEVBQUU7UUFDUixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDMUIsUUFBUSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3hDO1FBQ0QsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLFFBQVEsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRTtZQUN0RCxRQUFRLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3pDO0tBQ0Y7SUFFRCxNQUFNLE1BQU0sR0FBa0I7UUFDNUIsSUFBSSxFQUFFLFFBQVE7UUFDZCxLQUFLO0tBQ04sQ0FBQztJQUVGLGtEQUFrRDtJQUNsRCxNQUFNLFVBQVUsR0FBRyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7SUFDaEUsSUFBSSxVQUFVLEdBQUcsS0FBSyxFQUFFO1FBQ3RCLE1BQU0sQ0FBQyxTQUFTLEdBQUcsQ0FBTyxDQUFDLEVBQUUsRUFBRTtZQUFDLE9BQUEsZ0JBQWdCLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxpQ0FBaUMsa0NBRXBHLElBQUksS0FDUCxNQUFNLEVBQUUsVUFBVSxFQUNsQixRQUFRLEVBQUUsSUFBSSxFQUNkLFdBQVcsRUFBRSxTQUFTLENBQUMsaUNBQWlDO2dCQUN4RCxDQUFBO1VBQUEsQ0FBQztLQUNOO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TG9hZFJlc3VsdH0gZnJvbSAnLi9zZXJ2aWNlcy9lbnRpdHktc2VydmljZS5jbGFzcyc7XG5pbXBvcnQge1xuICBnZXRQcm9wZXJ0eUJ5UGF0aEFzU3RyaW5nLFxuICBpc05vdEVtcHR5QXJyYXksXG4gIGlzTm90TmlsLFxuICBpc05vdE5pbE9yQmxhbmssXG4gIG1hdGNoVXBwZXJDYXNlLFxuICBwcm9wZXJ0aWVzUGF0aENvbXBhcmF0b3IsXG4gIHN0YXJ0c1dpdGhVcHBlckNhc2Vcbn0gZnJvbSAnLi9mdW5jdGlvbnMnO1xuXG5leHBvcnQgZnVuY3Rpb24gc3VnZ2VzdEZyb21BcnJheTxUID0gYW55PihpdGVtczogVFtdLCB2YWx1ZTogYW55LCBvcHRzPzoge1xuICBvZmZzZXQ/OiBudW1iZXI7XG4gIHNpemU/OiBudW1iZXI7XG4gIHNlYXJjaEF0dHJpYnV0ZT86IHN0cmluZztcbiAgc2VhcmNoQXR0cmlidXRlcz86IHN0cmluZ1tdO1xuICBleGNsdWRlZElkcz86IG51bWJlcltdO1xuICBza2lwU29ydD86IGJvb2xlYW47XG59KTogTG9hZFJlc3VsdDxUPiB7XG4gIGlmIChpc05vdE5pbCh2YWx1ZSkgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JykgcmV0dXJuIHtkYXRhOiBbdmFsdWVdfTtcblxuICB2YWx1ZSA9ICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlICE9PSAnKicpICYmIHZhbHVlLnRvVXBwZXJDYXNlKCkgfHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0IGtleXMgPSBvcHRzICYmIChvcHRzLnNlYXJjaEF0dHJpYnV0ZSAmJiBbb3B0cy5zZWFyY2hBdHRyaWJ1dGVdIHx8IG9wdHMuc2VhcmNoQXR0cmlidXRlcykgfHwgWydsYWJlbCddO1xuXG4gIGlmICghaXRlbXMpIHtcbiAgICByZXR1cm4ge2RhdGE6IFtdLCB0b3RhbDogMH07XG4gIH1cblxuICAvLyBGaWx0ZXIgaXRlbXNcbiAgbGV0IGZpbHRlcmVkSXRlbXMgPSBpdGVtcztcbiAgaWYgKGlzTm90TmlsT3JCbGFuayh2YWx1ZSkpIHtcblxuICAgIC8vIElmIHdpbGRjYXJkLCBzZWFyY2ggdXNpbmcgcmVnZXhwXG4gICAgaWYgKCh2YWx1ZSBhcyBzdHJpbmcpLmluZGV4T2YoJyonKSAhPT0gLTEpIHtcbiAgICAgIHZhbHVlID0gKHZhbHVlIGFzIHN0cmluZykucmVwbGFjZSgvWypdKy9nLCAnLionKTtcbiAgICAgIGZpbHRlcmVkSXRlbXMgPSBmaWx0ZXJlZEl0ZW1zLmZpbHRlcih2ID0+IGtleXMuZmluZEluZGV4KGtleSA9PiBtYXRjaFVwcGVyQ2FzZShnZXRQcm9wZXJ0eUJ5UGF0aEFzU3RyaW5nKHYsIGtleSksIHZhbHVlKSkgIT09IC0xKTtcbiAgICB9XG4gICAgLy8gRWxzZSAobm8gd2lsZGNhcmQpLCBzZWFyY2ggdXNpbmcgc3RhcnRzV2l0aFxuICAgIGVsc2Uge1xuICAgICAgZmlsdGVyZWRJdGVtcyA9IGZpbHRlcmVkSXRlbXMuZmlsdGVyKHYgPT4ga2V5cy5maW5kSW5kZXgoa2V5ID0+IHN0YXJ0c1dpdGhVcHBlckNhc2UoZ2V0UHJvcGVydHlCeVBhdGhBc1N0cmluZyh2LCBrZXkpLCB2YWx1ZSkpICE9PSAtMSk7XG4gICAgfVxuICB9XG5cbiAgLy8gRXhjbHVkZSBpZHNcbiAgaWYgKGlzTm90RW1wdHlBcnJheShvcHRzPy5leGNsdWRlZElkcykpIHtcbiAgICBmaWx0ZXJlZEl0ZW1zID0gZmlsdGVyZWRJdGVtcy5maWx0ZXIodiA9PiAhb3B0cy5leGNsdWRlZElkcy5pbmNsdWRlcygrdlsnaWQnXSkpO1xuICB9XG5cbiAgLy8gU29ydFxuICBpZiAoIW9wdHMgfHwgb3B0cy5za2lwU29ydCAhPT0gdHJ1ZSkge1xuXG4gICAgLy8gTWFrZSB0byBjb3B5IGlucHV0IGl0ZW1zLCBiZWZvcmUgc29ydGluZyAoaWYgbm90IHlldCBhbHJlYWR5IGRvbmUpXG4gICAgaWYgKGZpbHRlcmVkSXRlbXMgPT09IGl0ZW1zKSBmaWx0ZXJlZEl0ZW1zID0gZmlsdGVyZWRJdGVtcy5zbGljZSgpO1xuXG4gICAgLy8gU29ydCBieSBrZXlzXG4gICAgZmlsdGVyZWRJdGVtcy5zb3J0KHByb3BlcnRpZXNQYXRoQ29tcGFyYXRvcihrZXlzKSk7XG4gIH1cblxuICBjb25zdCB0b3RhbCA9IGZpbHRlcmVkSXRlbXMubGVuZ3RoIHx8IDA7XG5cbiAgLy8gUGFnaW5hdGlvbiAodHJ1bmNhdGUgaWYgbmVlZClcbiAgbGV0IHBhZ2VEYXRhID0gZmlsdGVyZWRJdGVtcztcbiAgaWYgKG9wdHMpIHtcbiAgICBpZiAoKG9wdHMub2Zmc2V0IHx8IDApID4gMCkge1xuICAgICAgcGFnZURhdGEgPSBwYWdlRGF0YS5zbGljZShvcHRzLm9mZnNldCk7XG4gICAgfVxuICAgIGlmIChpc05vdE5pbChvcHRzLnNpemUpICYmIHBhZ2VEYXRhLmxlbmd0aCA+IG9wdHMuc2l6ZSkge1xuICAgICAgcGFnZURhdGEgPSBwYWdlRGF0YS5zbGljZSgwLCBvcHRzLnNpemUpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHJlc3VsdDogTG9hZFJlc3VsdDxUPiA9IHtcbiAgICBkYXRhOiBwYWdlRGF0YSxcbiAgICB0b3RhbFxuICB9O1xuXG4gIC8vIEFkZCBmZXRjaCBtb3JlIGNhcGFiaWxpdHksIGlmIHRvdGFsIHdhcyBmZXRjaGVkXG4gIGNvbnN0IG5leHRPZmZzZXQgPSAob3B0cyAmJiBvcHRzLm9mZnNldCB8fCAwKSArIHBhZ2VEYXRhLmxlbmd0aDtcbiAgaWYgKG5leHRPZmZzZXQgPCB0b3RhbCkge1xuICAgIHJlc3VsdC5mZXRjaE1vcmUgPSBhc3luYyAoXykgPT4gc3VnZ2VzdEZyb21BcnJheShmaWx0ZXJlZEl0ZW1zLCB1bmRlZmluZWQgLypPUFRJTUlTQVRJT046IGFscmVhZHkgYXBwbGllZCovLFxuICAgICAge1xuICAgICAgICAuLi5vcHRzLFxuICAgICAgICBvZmZzZXQ6IG5leHRPZmZzZXQsXG4gICAgICAgIHNraXBTb3J0OiB0cnVlLCAvLyBPUFRJTUlTQVRJT046IGFscmVhZHkgc29ydGVkXG4gICAgICAgIGV4Y2x1ZGVkSWRzOiB1bmRlZmluZWQgLy8gT1BUSU1JU0FUSU9OOiBhbHJlYWR5IGZpbHRlcmVkXG4gICAgICB9KTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG4iXX0=
|
|
@@ -241,64 +241,6 @@ function changeCaseToUnderscore(value) {
|
|
|
241
241
|
function removeDiacritics(text) {
|
|
242
242
|
return text.normalize('NFD').replace(/[\u0300-\u036f]/g, '');
|
|
243
243
|
}
|
|
244
|
-
function suggestFromArray(items, value, opts) {
|
|
245
|
-
if (isNotNil(value) && typeof value === 'object')
|
|
246
|
-
return { data: [value] };
|
|
247
|
-
value = (typeof value === 'string' && value !== '*') && value.toUpperCase() || undefined;
|
|
248
|
-
const keys = opts && (opts.searchAttribute && [opts.searchAttribute] || opts.searchAttributes) || ['label'];
|
|
249
|
-
if (!items) {
|
|
250
|
-
return { data: [], total: 0 };
|
|
251
|
-
}
|
|
252
|
-
// Filter items
|
|
253
|
-
let filteredItems = items;
|
|
254
|
-
if (isNotNilOrBlank(value)) {
|
|
255
|
-
// If wildcard, search using regexp
|
|
256
|
-
if (value.indexOf('*') !== -1) {
|
|
257
|
-
value = value.replace(/[*]+/g, '.*');
|
|
258
|
-
filteredItems = filteredItems.filter(v => keys.findIndex(key => matchUpperCase(getPropertyByPathAsString(v, key), value)) !== -1);
|
|
259
|
-
}
|
|
260
|
-
// Else (no wildcard), search using startsWith
|
|
261
|
-
else {
|
|
262
|
-
filteredItems = filteredItems.filter(v => keys.findIndex(key => startsWithUpperCase(getPropertyByPathAsString(v, key), value)) !== -1);
|
|
263
|
-
}
|
|
264
|
-
}
|
|
265
|
-
// Exclude ids
|
|
266
|
-
if (isNotEmptyArray(opts === null || opts === void 0 ? void 0 : opts.excludedIds)) {
|
|
267
|
-
filteredItems = filteredItems.filter(v => !opts.excludedIds.includes(+v['id']));
|
|
268
|
-
}
|
|
269
|
-
// Sort
|
|
270
|
-
if (!opts || opts.skipSort !== true) {
|
|
271
|
-
// Make to copy input items, before sorting (if not yet already done)
|
|
272
|
-
if (filteredItems === items)
|
|
273
|
-
filteredItems = filteredItems.slice();
|
|
274
|
-
// Sort by keys
|
|
275
|
-
filteredItems.sort(propertiesPathComparator(keys));
|
|
276
|
-
}
|
|
277
|
-
const total = filteredItems.length || 0;
|
|
278
|
-
// Pagination (truncate if need)
|
|
279
|
-
let pageData = filteredItems;
|
|
280
|
-
if (opts) {
|
|
281
|
-
if ((opts.offset || 0) > 0) {
|
|
282
|
-
pageData = pageData.slice(opts.offset);
|
|
283
|
-
}
|
|
284
|
-
if (isNotNil(opts.size) && pageData.length > opts.size) {
|
|
285
|
-
pageData = pageData.slice(0, opts.size);
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
|
-
const result = {
|
|
289
|
-
data: pageData,
|
|
290
|
-
total
|
|
291
|
-
};
|
|
292
|
-
// Add fetch more capability, if total was fetched
|
|
293
|
-
const nextOffset = (opts && opts.offset || 0) + pageData.length;
|
|
294
|
-
if (nextOffset < total) {
|
|
295
|
-
result.fetchMore = (_) => __awaiter(this, void 0, void 0, function* () {
|
|
296
|
-
return suggestFromArray(filteredItems, undefined /*OPTIMISATION: already applied*/, Object.assign(Object.assign({}, opts), { offset: nextOffset, skipSort: true, excludedIds: undefined // OPTIMISATION: already filtered
|
|
297
|
-
}));
|
|
298
|
-
});
|
|
299
|
-
}
|
|
300
|
-
return result;
|
|
301
|
-
}
|
|
302
244
|
function suggestFromStringArray(values, value, options) {
|
|
303
245
|
value = (typeof value === 'string' && value !== '*') && value.toUpperCase() || undefined;
|
|
304
246
|
if (isNilOrBlank(value))
|
|
@@ -1100,6 +1042,65 @@ const isMobile = (win) => {
|
|
|
1100
1042
|
return _cache.mobile;
|
|
1101
1043
|
};
|
|
1102
1044
|
|
|
1045
|
+
function suggestFromArray(items, value, opts) {
|
|
1046
|
+
if (isNotNil(value) && typeof value === 'object')
|
|
1047
|
+
return { data: [value] };
|
|
1048
|
+
value = (typeof value === 'string' && value !== '*') && value.toUpperCase() || undefined;
|
|
1049
|
+
const keys = opts && (opts.searchAttribute && [opts.searchAttribute] || opts.searchAttributes) || ['label'];
|
|
1050
|
+
if (!items) {
|
|
1051
|
+
return { data: [], total: 0 };
|
|
1052
|
+
}
|
|
1053
|
+
// Filter items
|
|
1054
|
+
let filteredItems = items;
|
|
1055
|
+
if (isNotNilOrBlank(value)) {
|
|
1056
|
+
// If wildcard, search using regexp
|
|
1057
|
+
if (value.indexOf('*') !== -1) {
|
|
1058
|
+
value = value.replace(/[*]+/g, '.*');
|
|
1059
|
+
filteredItems = filteredItems.filter(v => keys.findIndex(key => matchUpperCase(getPropertyByPathAsString(v, key), value)) !== -1);
|
|
1060
|
+
}
|
|
1061
|
+
// Else (no wildcard), search using startsWith
|
|
1062
|
+
else {
|
|
1063
|
+
filteredItems = filteredItems.filter(v => keys.findIndex(key => startsWithUpperCase(getPropertyByPathAsString(v, key), value)) !== -1);
|
|
1064
|
+
}
|
|
1065
|
+
}
|
|
1066
|
+
// Exclude ids
|
|
1067
|
+
if (isNotEmptyArray(opts === null || opts === void 0 ? void 0 : opts.excludedIds)) {
|
|
1068
|
+
filteredItems = filteredItems.filter(v => !opts.excludedIds.includes(+v['id']));
|
|
1069
|
+
}
|
|
1070
|
+
// Sort
|
|
1071
|
+
if (!opts || opts.skipSort !== true) {
|
|
1072
|
+
// Make to copy input items, before sorting (if not yet already done)
|
|
1073
|
+
if (filteredItems === items)
|
|
1074
|
+
filteredItems = filteredItems.slice();
|
|
1075
|
+
// Sort by keys
|
|
1076
|
+
filteredItems.sort(propertiesPathComparator(keys));
|
|
1077
|
+
}
|
|
1078
|
+
const total = filteredItems.length || 0;
|
|
1079
|
+
// Pagination (truncate if need)
|
|
1080
|
+
let pageData = filteredItems;
|
|
1081
|
+
if (opts) {
|
|
1082
|
+
if ((opts.offset || 0) > 0) {
|
|
1083
|
+
pageData = pageData.slice(opts.offset);
|
|
1084
|
+
}
|
|
1085
|
+
if (isNotNil(opts.size) && pageData.length > opts.size) {
|
|
1086
|
+
pageData = pageData.slice(0, opts.size);
|
|
1087
|
+
}
|
|
1088
|
+
}
|
|
1089
|
+
const result = {
|
|
1090
|
+
data: pageData,
|
|
1091
|
+
total
|
|
1092
|
+
};
|
|
1093
|
+
// Add fetch more capability, if total was fetched
|
|
1094
|
+
const nextOffset = (opts && opts.offset || 0) + pageData.length;
|
|
1095
|
+
if (nextOffset < total) {
|
|
1096
|
+
result.fetchMore = (_) => __awaiter(this, void 0, void 0, function* () {
|
|
1097
|
+
return suggestFromArray(filteredItems, undefined /*OPTIMISATION: already applied*/, Object.assign(Object.assign({}, opts), { offset: nextOffset, skipSort: true, excludedIds: undefined // OPTIMISATION: already filtered
|
|
1098
|
+
}));
|
|
1099
|
+
});
|
|
1100
|
+
}
|
|
1101
|
+
return result;
|
|
1102
|
+
}
|
|
1103
|
+
|
|
1103
1104
|
class MatAutocompleteConfigHolder {
|
|
1104
1105
|
constructor(options) {
|
|
1105
1106
|
this.options = options;
|
|
@@ -2328,9 +2329,9 @@ class HighlightPipe {
|
|
|
2328
2329
|
const cleanedSearchText = removeDiacritics(searchRegexp).toUpperCase();
|
|
2329
2330
|
const index = removeDiacritics(value.toUpperCase()).indexOf(cleanedSearchText);
|
|
2330
2331
|
if (index !== -1) {
|
|
2331
|
-
return value.
|
|
2332
|
-
'<b>' + value.
|
|
2333
|
-
value.
|
|
2332
|
+
return value.substring(0, index - 1) +
|
|
2333
|
+
'<b>' + value.substring(index, cleanedSearchText.length) + '</b>' +
|
|
2334
|
+
value.substring(index + cleanedSearchText.length);
|
|
2334
2335
|
}
|
|
2335
2336
|
return value;
|
|
2336
2337
|
}
|
|
@@ -2728,60 +2729,50 @@ class IsNotNilOrBlankPipe {
|
|
|
2728
2729
|
return isNotNilOrBlank(value);
|
|
2729
2730
|
}
|
|
2730
2731
|
}
|
|
2731
|
-
IsNotNilOrBlankPipe.ɵprov = ɵɵdefineInjectable({ factory: function IsNotNilOrBlankPipe_Factory() { return new IsNotNilOrBlankPipe(); }, token: IsNotNilOrBlankPipe, providedIn: "root" });
|
|
2732
2732
|
IsNotNilOrBlankPipe.decorators = [
|
|
2733
2733
|
{ type: Pipe, args: [{
|
|
2734
2734
|
name: 'isNotNilOrBlank'
|
|
2735
|
-
},] }
|
|
2736
|
-
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
2735
|
+
},] }
|
|
2737
2736
|
];
|
|
2738
2737
|
class IsNilOrBlankPipe {
|
|
2739
2738
|
transform(value) {
|
|
2740
2739
|
return isNilOrBlank(value);
|
|
2741
2740
|
}
|
|
2742
2741
|
}
|
|
2743
|
-
IsNilOrBlankPipe.ɵprov = ɵɵdefineInjectable({ factory: function IsNilOrBlankPipe_Factory() { return new IsNilOrBlankPipe(); }, token: IsNilOrBlankPipe, providedIn: "root" });
|
|
2744
2742
|
IsNilOrBlankPipe.decorators = [
|
|
2745
2743
|
{ type: Pipe, args: [{
|
|
2746
2744
|
name: 'isNilOrBlank'
|
|
2747
|
-
},] }
|
|
2748
|
-
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
2745
|
+
},] }
|
|
2749
2746
|
];
|
|
2750
2747
|
class ToStringPipe {
|
|
2751
2748
|
transform(value) {
|
|
2752
2749
|
return (value !== null && value !== undefined) ? value.toString() : '';
|
|
2753
2750
|
}
|
|
2754
2751
|
}
|
|
2755
|
-
ToStringPipe.ɵprov = ɵɵdefineInjectable({ factory: function ToStringPipe_Factory() { return new ToStringPipe(); }, token: ToStringPipe, providedIn: "root" });
|
|
2756
2752
|
ToStringPipe.decorators = [
|
|
2757
2753
|
{ type: Pipe, args: [{
|
|
2758
2754
|
name: 'toString'
|
|
2759
|
-
},] }
|
|
2760
|
-
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
2755
|
+
},] }
|
|
2761
2756
|
];
|
|
2762
2757
|
class StrLengthPipe {
|
|
2763
2758
|
transform(value) {
|
|
2764
2759
|
return value && value.length || 0;
|
|
2765
2760
|
}
|
|
2766
2761
|
}
|
|
2767
|
-
StrLengthPipe.ɵprov = ɵɵdefineInjectable({ factory: function StrLengthPipe_Factory() { return new StrLengthPipe(); }, token: StrLengthPipe, providedIn: "root" });
|
|
2768
2762
|
StrLengthPipe.decorators = [
|
|
2769
2763
|
{ type: Pipe, args: [{
|
|
2770
2764
|
name: 'strLength'
|
|
2771
|
-
},] }
|
|
2772
|
-
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
2765
|
+
},] }
|
|
2773
2766
|
];
|
|
2774
2767
|
class StrIncludesPipe {
|
|
2775
2768
|
transform(value, searchString, position) {
|
|
2776
2769
|
return (value === null || value === void 0 ? void 0 : value.includes(searchString, position)) || false;
|
|
2777
2770
|
}
|
|
2778
2771
|
}
|
|
2779
|
-
StrIncludesPipe.ɵprov = ɵɵdefineInjectable({ factory: function StrIncludesPipe_Factory() { return new StrIncludesPipe(); }, token: StrIncludesPipe, providedIn: "root" });
|
|
2780
2772
|
StrIncludesPipe.decorators = [
|
|
2781
2773
|
{ type: Pipe, args: [{
|
|
2782
2774
|
name: 'strIncludes'
|
|
2783
|
-
},] }
|
|
2784
|
-
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
2775
|
+
},] }
|
|
2785
2776
|
];
|
|
2786
2777
|
|
|
2787
2778
|
class TranslateContextService {
|
|
@@ -4232,8 +4223,7 @@ FormGetGroupPipe.decorators = [
|
|
|
4232
4223
|
},] }
|
|
4233
4224
|
];
|
|
4234
4225
|
class FormGetValuePipe {
|
|
4235
|
-
constructor(
|
|
4236
|
-
this.adapter = adapter;
|
|
4226
|
+
constructor(_ref) {
|
|
4237
4227
|
this._ref = _ref;
|
|
4238
4228
|
this.value = undefined;
|
|
4239
4229
|
this._lastControl = null;
|
|
@@ -4298,7 +4288,6 @@ FormGetValuePipe.decorators = [
|
|
|
4298
4288
|
},] }
|
|
4299
4289
|
];
|
|
4300
4290
|
FormGetValuePipe.ctorParameters = () => [
|
|
4301
|
-
{ type: FormErrorTranslator },
|
|
4302
4291
|
{ type: ChangeDetectorRef }
|
|
4303
4292
|
];
|
|
4304
4293
|
|
|
@@ -18213,6 +18202,17 @@ class InMemoryEntitiesService extends EntitiesService {
|
|
|
18213
18202
|
return this._equalsFn(d1, d2);
|
|
18214
18203
|
return d1 && d1.equals ? d1.equals(d2) : EntityUtils.equals(d1, d2, 'id');
|
|
18215
18204
|
}
|
|
18205
|
+
/**
|
|
18206
|
+
* Count data inside the service.
|
|
18207
|
+
* @param opts
|
|
18208
|
+
*/
|
|
18209
|
+
count(opts = { withHidden: false }) {
|
|
18210
|
+
var _a, _b, _c;
|
|
18211
|
+
if (opts.withHidden) {
|
|
18212
|
+
return (((_a = this.data) === null || _a === void 0 ? void 0 : _a.length) || 0) + (((_b = this._hiddenData) === null || _b === void 0 ? void 0 : _b.length) || 0);
|
|
18213
|
+
}
|
|
18214
|
+
return (((_c = this.data) === null || _c === void 0 ? void 0 : _c.length) || 0);
|
|
18215
|
+
}
|
|
18216
18216
|
/* -- protected methods -- */
|
|
18217
18217
|
filter(data, _filter, hiddenData) {
|
|
18218
18218
|
// if filter is DataFilter instance, use its test function
|
|
@@ -19758,7 +19758,7 @@ class FormButtonsBarComponent {
|
|
|
19758
19758
|
FormButtonsBarComponent.decorators = [
|
|
19759
19759
|
{ type: Component, args: [{
|
|
19760
19760
|
selector: 'app-form-buttons-bar',
|
|
19761
|
-
template: "\n<ion-toolbar [class]=\"classList\">\n <ion-row class=\"ion-no-padding\" nowrap>\n <!-- show menu button -->\n <ion-col size=\"auto\" class=\"hidden-xs hidden-sm\">\n <ion-menu-toggle>\n <button\n mat-icon-button\n color=\"accent\"\n [title]=\"'COMMON.BTN_SHOW_MENU' | translate\"\n (click)=\"menu.toggleSplitPaneWhen()\">\n <mat-icon><span>»</span></mat-icon>\n </button>\n </ion-menu-toggle>\n </ion-col>\n\n <ion-col>\n <ng-content></ng-content>\n </ion-col>\n\n <ion-col size=\"auto\">\n\n <!-- close (go back) -->\n <ion-button fill=\"clear\" color=\"dark\" (click)=\"onBack.emit($event)\"\n (keyup.enter)=\"onBack.emit($event)\"\n *ngIf=\"onBack.observers | isNotEmptyArray\">\n <ion-label translate>COMMON.BTN_CLOSE</ion-label>\n </ion-button>\n\n <!-- reload -->\n <ion-button fill=\"clear\" color=\"dark\" (click)=\"onCancel.emit($event)\"\n (keyup.enter)=\"onCancel.emit($event)\"\n [disabled]=\"disabledCancel\">\n <ion-icon slot=\"start\" name=\"refresh\"></ion-icon>\n <ion-label translate>COMMON.BTN_RESET</ion-label>\n </ion-button>\n\n <!-- next -->\n <ion-button fill=\"solid\" (click)=\"onNext.emit($event)\" (keyup.enter)=\"onNext.emit($event)\" *ngIf=\"onNext.observers | isNotEmptyArray\">\n <ion-label translate>COMMON.BTN_NEXT</ion-label>\n <ion-icon slot=\"end\" name=\"arrow-forward\"></ion-icon>\n </ion-button>\n\n <!-- save -->\n <ion-button [fill]=\"disabled ? 'clear' : 'solid'\"\n (click)=\"onSave.emit($event)\"\n (keyup.enter)=\"onSave.emit($event)\" color=\"danger\"\n [disabled]=\"disabled\">\n <ion-label [innerHTML]=\"'COMMON.BTN_SAVE_WITH_SHORTCUT'|translate\" [title]=\"'COMMON.BTN_SAVE_WITH_SHORTCUT_HELP'|translate\"></ion-label>\n </ion-button>\n </ion-col>\n </ion-row>\n</ion-toolbar>\n",
|
|
19761
|
+
template: "\n<ion-toolbar [class]=\"classList\">\n <ion-row class=\"ion-no-padding\" nowrap>\n <!-- show menu button -->\n <ion-col size=\"auto\" class=\"hidden-xs hidden-sm\">\n <ion-menu-toggle>\n <button\n mat-icon-button\n color=\"accent\"\n [title]=\"'COMMON.BTN_SHOW_MENU' | translate\"\n (click)=\"menu.toggleSplitPaneWhen()\">\n <mat-icon><span>»</span></mat-icon>\n </button>\n </ion-menu-toggle>\n </ion-col>\n\n <ion-col>\n <ng-content></ng-content>\n </ion-col>\n\n <ion-col size=\"auto\">\n\n <ng-content select=\"[slot=end]\"></ng-content>\n\n <!-- close (go back) -->\n <ion-button fill=\"clear\" color=\"dark\" (click)=\"onBack.emit($event)\"\n (keyup.enter)=\"onBack.emit($event)\"\n *ngIf=\"onBack.observers | isNotEmptyArray\">\n <ion-label translate>COMMON.BTN_CLOSE</ion-label>\n </ion-button>\n\n <!-- reload -->\n <ion-button fill=\"clear\" color=\"dark\" (click)=\"onCancel.emit($event)\"\n (keyup.enter)=\"onCancel.emit($event)\"\n [disabled]=\"disabledCancel\">\n <ion-icon slot=\"start\" name=\"refresh\"></ion-icon>\n <ion-label translate>COMMON.BTN_RESET</ion-label>\n </ion-button>\n\n <!-- next -->\n <ion-button fill=\"solid\" (click)=\"onNext.emit($event)\" (keyup.enter)=\"onNext.emit($event)\" *ngIf=\"onNext.observers | isNotEmptyArray\">\n <ion-label translate>COMMON.BTN_NEXT</ion-label>\n <ion-icon slot=\"end\" name=\"arrow-forward\"></ion-icon>\n </ion-button>\n\n <!-- save -->\n <ion-button [fill]=\"disabled ? 'clear' : 'solid'\"\n (click)=\"onSave.emit($event)\"\n (keyup.enter)=\"onSave.emit($event)\" color=\"danger\"\n [disabled]=\"disabled\">\n <ion-label [innerHTML]=\"'COMMON.BTN_SAVE_WITH_SHORTCUT'|translate\" [title]=\"'COMMON.BTN_SAVE_WITH_SHORTCUT_HELP'|translate\"></ion-label>\n </ion-button>\n </ion-col>\n </ion-row>\n</ion-toolbar>\n",
|
|
19762
19762
|
providers: [
|
|
19763
19763
|
{ provide: FormButtonsBarToken, useExisting: FormButtonsBarComponent }
|
|
19764
19764
|
],
|