@sumaris-net/ngx-components 18.22.1 → 18.22.3
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/esm2022/src/app/core/services/model/filter.model.mjs +38 -101
- package/fesm2022/sumaris-net.ngx-components.mjs +38 -101
- package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -1
- package/package.json +1 -1
- package/src/app/core/services/model/filter.model.d.ts +9 -27
- package/src/assets/manifest.json +1 -1
|
@@ -3,15 +3,15 @@ import { MINIFY_ENTITY_FOR_POD, ReferentialUtils } from './referential.model';
|
|
|
3
3
|
import { Entity, isInstanceOf } from './entity.model';
|
|
4
4
|
export class EntityFilter extends Entity {
|
|
5
5
|
// Internal composition state (fluent API)
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
static
|
|
6
|
+
and;
|
|
7
|
+
or;
|
|
8
|
+
not;
|
|
9
|
+
static composeAnd(filterFns) {
|
|
10
10
|
if (isEmptyArray(filterFns))
|
|
11
11
|
return undefined;
|
|
12
12
|
return (entity) => (filterFns || []).every((fn) => fn(entity));
|
|
13
13
|
}
|
|
14
|
-
static
|
|
14
|
+
static composeOr(filterFns) {
|
|
15
15
|
if (isEmptyArray(filterFns))
|
|
16
16
|
return undefined;
|
|
17
17
|
return (entity) => (filterFns || []).some((fn) => fn(entity));
|
|
@@ -19,6 +19,10 @@ export class EntityFilter extends Entity {
|
|
|
19
19
|
constructor(__typename) {
|
|
20
20
|
super(__typename);
|
|
21
21
|
}
|
|
22
|
+
create() {
|
|
23
|
+
const Ctor = this.constructor;
|
|
24
|
+
return new Ctor();
|
|
25
|
+
}
|
|
22
26
|
/**
|
|
23
27
|
* Clean a filter, before sending to the pod (e.g convert dates, remove internal properties, etc.)
|
|
24
28
|
*/
|
|
@@ -35,53 +39,37 @@ export class EntityFilter extends Entity {
|
|
|
35
39
|
asFilterFn() {
|
|
36
40
|
// Base (this) filter functions
|
|
37
41
|
let filterFns = this.buildFilter() || [];
|
|
42
|
+
// NOT
|
|
43
|
+
if (this.not) {
|
|
44
|
+
const notFn = this.not.asFilterFn();
|
|
45
|
+
filterFns.push((item) => !notFn(item));
|
|
46
|
+
}
|
|
38
47
|
// AND filters
|
|
39
|
-
if (isNotEmptyArray(this.
|
|
40
|
-
filterFns.push(...this.
|
|
48
|
+
if (isNotEmptyArray(this.and)) {
|
|
49
|
+
filterFns.push(...this.and.map((f) => f?.asFilterFn()).filter(isNotNil));
|
|
41
50
|
}
|
|
42
51
|
// As filter function
|
|
43
|
-
let result = EntityFilter.
|
|
52
|
+
let result = EntityFilter.composeAnd(filterFns);
|
|
44
53
|
// OR filters
|
|
45
|
-
if (isNotEmptyArray(this.
|
|
46
|
-
result = EntityFilter.
|
|
54
|
+
if (isNotEmptyArray(this.or)) {
|
|
55
|
+
result = EntityFilter.composeOr([
|
|
47
56
|
result,
|
|
48
|
-
...(this.
|
|
57
|
+
...(this.or || []).map((f) => f?.asFilterFn())
|
|
49
58
|
].filter(isNotNil));
|
|
50
59
|
}
|
|
51
|
-
// NOT
|
|
52
|
-
if (this.__not && result) {
|
|
53
|
-
const inner = result;
|
|
54
|
-
result = (entity) => !inner(entity);
|
|
55
|
-
}
|
|
56
60
|
return result;
|
|
57
61
|
}
|
|
58
|
-
and(...filters) {
|
|
59
|
-
if (!isEmptyArray(filters)) {
|
|
60
|
-
this.__and = (this.__and || []).concat(filters.filter(isNotNil));
|
|
61
|
-
}
|
|
62
|
-
return this;
|
|
63
|
-
}
|
|
64
|
-
or(...filters) {
|
|
65
|
-
if (!isEmptyArray(filters)) {
|
|
66
|
-
this.__or = (this.__or || []).concat(filters.filter(isNotNil));
|
|
67
|
-
}
|
|
68
|
-
return this;
|
|
69
|
-
}
|
|
70
|
-
not() {
|
|
71
|
-
this.__not = !(this.__not ?? false);
|
|
72
|
-
return this;
|
|
73
|
-
}
|
|
74
62
|
asObject(opts) {
|
|
75
63
|
const target = super.asObject(opts);
|
|
76
64
|
// Serialize composition
|
|
77
|
-
if (
|
|
78
|
-
target.
|
|
65
|
+
if (this.not) {
|
|
66
|
+
target.not = this.not.asObject(opts);
|
|
79
67
|
}
|
|
80
|
-
if (isNotEmptyArray(this.
|
|
81
|
-
target.
|
|
68
|
+
if (isNotEmptyArray(this.and)) {
|
|
69
|
+
target.and = this.and.map((f) => f.asObject(opts));
|
|
82
70
|
}
|
|
83
|
-
if (this.
|
|
84
|
-
target.
|
|
71
|
+
if (isNotEmptyArray(this.or)) {
|
|
72
|
+
target.or = this.or.map((f) => f.asObject(opts));
|
|
85
73
|
}
|
|
86
74
|
// Sanitize
|
|
87
75
|
delete target.__and;
|
|
@@ -94,34 +82,36 @@ export class EntityFilter extends Entity {
|
|
|
94
82
|
// Deserialize composition using the same concrete filter type
|
|
95
83
|
// AND
|
|
96
84
|
if (Array.isArray(source?.and)) {
|
|
97
|
-
|
|
98
|
-
this.__and = source.and.map((s) => {
|
|
85
|
+
this.and = source.and.map((s) => {
|
|
99
86
|
if (!s)
|
|
100
87
|
return undefined;
|
|
101
|
-
const f =
|
|
88
|
+
const f = this.create();
|
|
102
89
|
f.fromObject(s, opts);
|
|
103
90
|
return f;
|
|
104
91
|
}).filter(isNotNil);
|
|
105
92
|
}
|
|
106
93
|
else {
|
|
107
|
-
this.
|
|
94
|
+
this.and = undefined;
|
|
108
95
|
}
|
|
109
96
|
// OR
|
|
110
97
|
if (Array.isArray(source?.or)) {
|
|
111
|
-
|
|
112
|
-
this.__or = source.or.map((s) => {
|
|
98
|
+
this.or = source.or.map((s) => {
|
|
113
99
|
if (!s)
|
|
114
100
|
return undefined;
|
|
115
|
-
const f =
|
|
101
|
+
const f = this.create();
|
|
116
102
|
f.fromObject(s, opts);
|
|
117
103
|
return f;
|
|
118
104
|
}).filter(isNotNil);
|
|
119
105
|
}
|
|
120
106
|
else {
|
|
121
|
-
this.
|
|
107
|
+
this.or = undefined;
|
|
122
108
|
}
|
|
123
109
|
// NOT
|
|
124
|
-
|
|
110
|
+
if (source?.not) {
|
|
111
|
+
const f = this.create();
|
|
112
|
+
f.fromObject(source.not, opts);
|
|
113
|
+
this.not = f;
|
|
114
|
+
}
|
|
125
115
|
}
|
|
126
116
|
/* -- protected functions -- */
|
|
127
117
|
buildFilter() {
|
|
@@ -144,59 +134,6 @@ export class EntityFilter extends Entity {
|
|
|
144
134
|
ReferentialUtils.isNotEmpty(value)));
|
|
145
135
|
}
|
|
146
136
|
}
|
|
147
|
-
export class OrFilter extends EntityFilter {
|
|
148
|
-
filters;
|
|
149
|
-
constructor(...filters) {
|
|
150
|
-
super('OrFilter');
|
|
151
|
-
this.filters = (filters || []).filter(isNotNil);
|
|
152
|
-
}
|
|
153
|
-
buildFilter() {
|
|
154
|
-
const fns = (this.filters || [])
|
|
155
|
-
.map((f) => (f ? f.asFilterFn() : undefined))
|
|
156
|
-
.filter(isNotNil);
|
|
157
|
-
if (isEmptyArray(fns))
|
|
158
|
-
return [];
|
|
159
|
-
return [
|
|
160
|
-
(entity) => fns.some((fn) => fn(entity))
|
|
161
|
-
];
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
export class NotFilter extends EntityFilter {
|
|
165
|
-
filter;
|
|
166
|
-
constructor(filter) {
|
|
167
|
-
super('NotFilter');
|
|
168
|
-
this.filter = filter;
|
|
169
|
-
}
|
|
170
|
-
buildFilter() {
|
|
171
|
-
const fn = this.filter?.asFilterFn();
|
|
172
|
-
if (!fn)
|
|
173
|
-
return [];
|
|
174
|
-
return [
|
|
175
|
-
(entity) => !fn(entity)
|
|
176
|
-
];
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
export class AndFilter extends EntityFilter {
|
|
180
|
-
filters;
|
|
181
|
-
constructor(...filters) {
|
|
182
|
-
super('AndFilter');
|
|
183
|
-
this.filters = (filters || []).filter(isNotNil);
|
|
184
|
-
}
|
|
185
|
-
and(...filters) {
|
|
186
|
-
this.filters = this.filters.concat(...(filters || []).filter(isNotNil));
|
|
187
|
-
return this;
|
|
188
|
-
}
|
|
189
|
-
buildFilter() {
|
|
190
|
-
const fns = (this.filters || [])
|
|
191
|
-
.map((f) => (f ? f.asFilterFn() : undefined))
|
|
192
|
-
.filter(isNotNil);
|
|
193
|
-
if (isEmptyArray(fns))
|
|
194
|
-
return [];
|
|
195
|
-
return [
|
|
196
|
-
(entity) => fns.every((fn) => fn(entity))
|
|
197
|
-
];
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
137
|
export class EntityFilterUtils {
|
|
201
138
|
static isEntityFilter(obj) {
|
|
202
139
|
return (obj && obj.asPodObject && obj.asFilterFn && true) || false;
|
|
@@ -216,4 +153,4 @@ export class EntityFilterUtils {
|
|
|
216
153
|
return target;
|
|
217
154
|
}
|
|
218
155
|
}
|
|
219
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL3NlcnZpY2VzL21vZGVsL2ZpbHRlci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsTUFBTSxFQUFrQyxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQXlCdEYsTUFBTSxPQUFnQixZQU9wQixTQUFRLE1BQXFCO0lBRzdCLDBDQUEwQztJQUNoQyxLQUFLLENBQU87SUFDWixJQUFJLENBQU87SUFDWCxLQUFLLENBQVc7SUFFMUIsTUFBTSxDQUFDLE1BQU0sQ0FBNEIsU0FBd0I7UUFDL0QsSUFBSSxZQUFZLENBQUMsU0FBUyxDQUFDO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDOUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBNEIsU0FBd0I7UUFDOUQsSUFBSSxZQUFZLENBQUMsU0FBUyxDQUFDO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDOUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBR0QsWUFBWSxVQUFtQjtRQUM3QixLQUFL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QyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2hDLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0VtcHR5QXJyYXksIGlzTm90RW1wdHlBcnJheSwgaXNOb3ROaWwgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZnVuY3Rpb25zJztcbmltcG9ydCB7IE1JTklGWV9FTlRJVFlfRk9SX1BPRCwgUmVmZXJlbnRpYWxVdGlscyB9IGZyb20gJy4vcmVmZXJlbnRpYWwubW9kZWwnO1xuaW1wb3J0IHsgRW50aXR5LCBFbnRpdHlBc09iamVjdE9wdGlvbnMsIElFbnRpdHksIGlzSW5zdGFuY2VPZiB9IGZyb20gJy4vZW50aXR5Lm1vZGVsJztcblxuaW1wb3J0IHsgRmlsdGVyRm4gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElFbnRpdHlGaWx0ZXI8XG4gIEYgZXh0ZW5kcyBJRW50aXR5RmlsdGVyPEYsIFQsIElELCBBTywgRk8+LFxuICBUIGV4dGVuZHMgSUVudGl0eTxULCBhbnk+LFxuICBJRCA9IG51bWJlcixcbiAgQU8gZXh0ZW5kcyBFbnRpdHlBc09iamVjdE9wdGlvbnMgPSBFbnRpdHlBc09iamVjdE9wdGlvbnMsXG4gIEZPID0gYW55LFxuPiBleHRlbmRzIElFbnRpdHk8RiwgSUQsIEFPLCBGTz4ge1xuICBhc1BvZE9iamVjdCgpOiBhbnk7XG5cbiAgYXNGaWx0ZXJGbigpOiBGaWx0ZXJGbjxUPjtcblxuICBpc0VtcHR5KCk6IGJvb2xlYW47XG5cbiAgY291bnROb3RFbXB0eUNyaXRlcmlhKCk6IG51bWJlcjtcblxuICAvLyBMb2dpY2FsIGNvbWJpbmF0b3JzIChmbHVlbnQsIHJldHVybiBzYW1lIGZpbHRlciB0eXBlIEYpXG4gIGFuZCguLi5maWx0ZXJzOiBGW10pOiBGO1xuICBvciguLi5maWx0ZXJzOiBGW10pOiBGO1xuICBub3QoKTogRjtcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEVudGl0eUZpbHRlcjxcbiAgICBGIGV4dGVuZHMgSUVudGl0eUZpbHRlcjxGLCBULCBJRCwgQU8sIEZPPixcbiAgICBUIGV4dGVuZHMgSUVudGl0eTxULCBhbnk+LFxuICAgIElEID0gbnVtYmVyLFxuICAgIEFPIGV4dGVuZHMgRW50aXR5QXNPYmplY3RPcHRpb25zID0gRW50aXR5QXNPYmplY3RPcHRpb25zLFxuICAgIEZPID0gYW55LFxuICA+XG4gIGV4dGVuZHMgRW50aXR5PEYsIElELCBBTywgRk8+XG4gIGltcGxlbWVudHMgSUVudGl0eUZpbHRlcjxGLCBULCBJRCwgQU8sIEZPPlxue1xuICAvLyBJbnRlcm5hbCBjb21wb3NpdGlvbiBzdGF0ZSAoZmx1ZW50IEFQSSlcbiAgcHJvdGVjdGVkIF9fYW5kPzogRltdO1xuICBwcm90ZWN0ZWQgX19vcj86IEZbXTtcbiAgcHJvdGVjdGVkIF9fbm90PzogYm9vbGVhbjtcblxuICBzdGF0aWMgYW5kRm5zPFQgZXh0ZW5kcyBJRW50aXR5PFQsIGFueT4+KGZpbHRlckZuczogRmlsdGVyRm48VD5bXSk6IEZpbHRlckZuPFQ+IHtcbiAgICBpZiAoaXNFbXB0eUFycmF5KGZpbHRlckZucykpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIChlbnRpdHkpID0+IChmaWx0ZXJGbnMgfHwgW10pLmV2ZXJ5KChmbikgPT4gZm4oZW50aXR5KSk7XG4gIH1cblxuICBzdGF0aWMgb3JGbnM8VCBleHRlbmRzIElFbnRpdHk8VCwgYW55Pj4oZmlsdGVyRm5zOiBGaWx0ZXJGbjxUPltdKTogRmlsdGVyRm48VD4ge1xuICAgIGlmIChpc0VtcHR5QXJyYXkoZmlsdGVyRm5zKSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4gKGVudGl0eSkgPT4gKGZpbHRlckZucyB8fCBbXSkuc29tZSgoZm4pID0+IGZuKGVudGl0eSkpO1xuICB9XG5cblxuICBjb25zdHJ1Y3RvcihfX3R5cGVuYW1lPzogc3RyaW5nKSB7XG4gICAgc3VwZXIoX190eXBlbmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogQ2xlYW4gYSBmaWx0ZXIsIGJlZm9yZSBzZW5kaW5nIHRvIHRoZSBwb2QgKGUuZyBjb252ZXJ0IGRhdGVzLCByZW1vdmUgaW50ZXJuYWwgcHJvcGVydGllcywgZXRjLilcbiAgICovXG4gIGFzUG9kT2JqZWN0KCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuYXNPYmplY3QoTUlOSUZZX0VOVElUWV9GT1JfUE9EIGFzIEFPKTtcbiAgfVxuXG4gIGlzRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY291bnROb3RFbXB0eUNyaXRlcmlhKCkgPT09IDA7XG4gIH1cblxuICBjb3VudE5vdEVtcHR5Q3JpdGVyaWEoKTogbnVtYmVyIHtcbiAgICBjb25zdCBqc29uID0gdGhpcy5hc1BvZE9iamVjdCgpO1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhqc29uKS5maWx0ZXIoKGtleSkgPT4gdGhpcy5pc0NyaXRlcmlhTm90RW1wdHkoa2V5LCBqc29uW2tleV0pKS5sZW5ndGg7XG4gIH1cblxuICBhc0ZpbHRlckZuKCk6IEZpbHRlckZuPFQ+IHtcbiAgICAvLyBCYXNlICh0aGlzKSBmaWx0ZXIgZnVuY3Rpb25zXG4gICAgbGV0IGZpbHRlckZucyA9IHRoaXMuYnVpbGRGaWx0ZXIoKSB8fCBbXTtcblxuICAgIC8vIEFORCBmaWx0ZXJzXG4gICAgaWYgKGlzTm90RW1wdHlBcnJheSh0aGlzLl9fYW5kKSkge1xuICAgICAgZmlsdGVyRm5zLnB1c2goLi4udGhpcy5fX2FuZC5tYXAoKGYpID0+IGY/LmFzRmlsdGVyRm4oKSkuZmlsdGVyKGlzTm90TmlsKSk7XG4gICAgfVxuXG4gICAgLy8gQXMgZmlsdGVyIGZ1bmN0aW9uXG4gICAgbGV0IHJlc3VsdCA9IEVudGl0eUZpbHRlci5hbmRGbnM8VD4oZmlsdGVyRm5zKTtcblxuICAgIC8vIE9SIGZpbHRlcnNcbiAgICBpZiAoaXNOb3RFbXB0eUFycmF5KHRoaXMuX19vcikpIHtcbiAgICAgIHJlc3VsdCA9IEVudGl0eUZpbHRlci5vckZucyhcbiAgICAgICAgW1xuICAgICAgICAgIHJlc3VsdCxcbiAgICAgICAgICAuLi4odGhpcy5fX29yIHx8IFtdKS5tYXAoKGYpID0+IGY/LmFzRmlsdGVyRm4oKSlcbiAgICAgICAgXS5maWx0ZXIoaXNOb3ROaWwpXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIE5PVFxuICAgIGlmICh0aGlzLl9fbm90ICYmIHJlc3VsdCkge1xuICAgICAgY29uc3QgaW5uZXIgPSByZXN1bHQ7XG4gICAgICByZXN1bHQgPSAoZW50aXR5OiBUKSA9PiAhaW5uZXIoZW50aXR5KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgYW5kKC4uLmZpbHRlcnM6IEZbXSk6IEYge1xuICAgIGlmICghaXNFbXB0eUFycmF5KGZpbHRlcnMpKSB7XG4gICAgICB0aGlzLl9fYW5kID0gKHRoaXMuX19hbmQgfHwgW10pLmNvbmNhdChmaWx0ZXJzLmZpbHRlcihpc05vdE5pbCkpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcyBhcyB1bmtub3duIGFzIEY7XG4gIH1cblxuICBvciguLi5maWx0ZXJzOiBGW10pOiBGIHtcbiAgICBpZiAoIWlzRW1wdHlBcnJheShmaWx0ZXJzKSkge1xuICAgICAgdGhpcy5fX29yID0gKHRoaXMuX19vciB8fCBbXSkuY29uY2F0KGZpbHRlcnMuZmlsdGVyKGlzTm90TmlsKSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzIGFzIHVua25vd24gYXMgRjtcbiAgfVxuXG4gIG5vdCgpOiBGIHtcbiAgICB0aGlzLl9fbm90ID0gISh0aGlzLl9fbm90ID8/IGZhbHNlKTtcbiAgICByZXR1cm4gdGhpcyBhcyB1bmtub3duIGFzIEY7XG4gIH1cblxuICBhc09iamVjdChvcHRzPzogQU8pOiBhbnkge1xuICAgIGNvbnN0IHRhcmdldDogYW55ID0gc3VwZXIuYXNPYmplY3Qob3B0cyk7XG5cbiAgICAvLyBTZXJpYWxpemUgY29tcG9zaXRpb25cbiAgICBpZiAoaXNOb3RFbXB0eUFycmF5KHRoaXMuX19hbmQpKSB7XG4gICAgICB0YXJnZXQuYW5kID0gdGhpcy5fX2FuZC5tYXAoKGYpID0+IGYuYXNPYmplY3Qob3B0cykpO1xuICAgIH1cbiAgICBpZiAoaXNOb3RFbXB0eUFycmF5KHRoaXMuX19vcikpIHtcbiAgICAgIHRhcmdldC5vciA9IHRoaXMuX19vci5tYXAoKGYpID0+IGYuYXNPYmplY3Qob3B0cykpO1xuICAgIH1cbiAgICBpZiAodGhpcy5fX25vdCkge1xuICAgICAgdGFyZ2V0Lm5vdCA9IHRydWU7XG4gICAgfVxuXG4gICAgLy8gU2FuaXRpemVcbiAgICBkZWxldGUgdGFyZ2V0Ll9fYW5kO1xuICAgIGRlbGV0ZSB0YXJnZXQuX19vcjtcbiAgICBkZWxldGUgdGFyZ2V0Ll9fbm90O1xuXG4gICAgcmV0dXJuIHRhcmdldDtcbiAgfVxuXG4gIGZyb21PYmplY3Qoc291cmNlOiBhbnksIG9wdHM/OiBGTykge1xuICAgIHN1cGVyLmZyb21PYmplY3Qoc291cmNlLCBvcHRzIGFzIGFueSk7XG4gICAgLy8gRGVzZXJpYWxpemUgY29tcG9zaXRpb24gdXNpbmcgdGhlIHNhbWUgY29uY3JldGUgZmlsdGVyIHR5cGVcblxuICAgIC8vIEFORFxuICAgIGlmIChBcnJheS5pc0FycmF5KHNvdXJjZT8uYW5kKSkge1xuICAgICAgY29uc3QgQ3RvcjogbmV3ICgpID0+IEYgPSAodGhpcy5jb25zdHJ1Y3RvciBhcyBhbnkpO1xuICAgICAgdGhpcy5fX2FuZCA9IHNvdXJjZS5hbmQubWFwKChzKSA9PiB7XG4gICAgICAgIGlmICghcykgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3QgZiA9IG5ldyBDdG9yKCk7XG4gICAgICAgIChmIGFzIGFueSkuZnJvbU9iamVjdChzLCBvcHRzKTtcbiAgICAgICAgcmV0dXJuIGY7XG4gICAgICB9KS5maWx0ZXIoaXNOb3ROaWwpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9fYW5kID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8vIE9SXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoc291cmNlPy5vcikpIHtcbiAgICAgIGNvbnN0IEN0b3I6IG5ldyAoKSA9PiBGID0gKHRoaXMuY29uc3RydWN0b3IgYXMgYW55KTtcbiAgICAgIHRoaXMuX19vciA9IHNvdXJjZS5vci5tYXAoKHMpID0+IHtcbiAgICAgICAgaWYgKCFzKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCBmID0gbmV3IEN0b3IoKTtcbiAgICAgICAgKGYgYXMgYW55KS5mcm9tT2JqZWN0KHMsIG9wdHMpO1xuICAgICAgICByZXR1cm4gZjtcbiAgICAgIH0pLmZpbHRlcihpc05vdE5pbCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX19vciA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvLyBOT1RcbiAgICB0aGlzLl9fbm90ID0gISFzb3VyY2U/Lm5vdDtcbiAgfVxuXG4gIC8qIC0tIHByb3RlY3RlZCBmdW5jdGlvbnMgLS0gKi9cblxuICBwcm90ZWN0ZWQgYnVpbGRGaWx0ZXIoKTogRmlsdGVyRm48VD5bXSB7XG4gICAgLy8gQ2FuIGJlIGNvbXBsZXRlZCBieSBzdWJjbGFzc2VzXG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzQ3JpdGVyaWFOb3RFbXB0eShrZXk6IHN0cmluZywgdmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgIC8vIENhbiBiZSBvdmVycmlkZGVuIGJ5IHN1YmNsYXNzZXNcbiAgICByZXR1cm4gKFxuICAgICAgdmFsdWUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgdmFsdWUgIT09IG51bGwgJiZcbiAgICAgIC8vIG5vdCBlbXB0eSBzdHJpbmdcbiAgICAgICgodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiB2YWx1ZS50cmltKCkgIT09ICcnKSB8fFxuICAgICAgICAvLyB2YWxpZCBudW1iZXJcbiAgICAgICAgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgJiYgIWlzTmFOKHZhbHVlKSkgfHxcbiAgICAgICAgLy8gdmFsaWQgYm9vbGVhblxuICAgICAgICB0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJyB8fFxuICAgICAgICAvLyBub3QgZW1wdHkgYXJyYXlcbiAgICAgICAgKEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA+IDApIHx8XG4gICAgICAgIC8vIGVudGl0eSB3aXRoIGFuIGlkXG4gICAgICAgIFJlZmVyZW50aWFsVXRpbHMuaXNOb3RFbXB0eSh2YWx1ZSkpXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgT3JGaWx0ZXI8VCBleHRlbmRzIElFbnRpdHk8VCwgYW55Pj4gZXh0ZW5kcyBFbnRpdHlGaWx0ZXI8T3JGaWx0ZXI8VD4sIFQ+IHtcbiAgcHJvdGVjdGVkIGZpbHRlcnM6IEVudGl0eUZpbHRlcjxhbnksIFQ+W107XG5cbiAgY29uc3RydWN0b3IoLi4uZmlsdGVyczogRW50aXR5RmlsdGVyPGFueSwgVD5bXSkge1xuICAgIHN1cGVyKCdPckZpbHRlcicpO1xuICAgIHRoaXMuZmlsdGVycyA9IChmaWx0ZXJzIHx8IFtdKS5maWx0ZXIoaXNOb3ROaWwpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGJ1aWxkRmlsdGVyKCk6IEZpbHRlckZuPFQ+W10ge1xuICAgIGNvbnN0IGZucyA9ICh0aGlzLmZpbHRlcnMgfHwgW10pXG4gICAgICAubWFwKChmKSA9PiAoZiA/IGYuYXNGaWx0ZXJGbigpIDogdW5kZWZpbmVkKSlcbiAgICAgIC5maWx0ZXIoaXNOb3ROaWwpO1xuXG4gICAgaWYgKGlzRW1wdHlBcnJheShmbnMpKSByZXR1cm4gW107XG5cbiAgICByZXR1cm4gW1xuICAgICAgKGVudGl0eTogVCkgPT4gZm5zLnNvbWUoKGZuKSA9PiBmbihlbnRpdHkpKVxuICAgIF07XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIE5vdEZpbHRlcjxUIGV4dGVuZHMgSUVudGl0eTxULCBhbnk+PiBleHRlbmRzIEVudGl0eUZpbHRlcjxOb3RGaWx0ZXI8VD4sIFQ+IHtcbiAgcHJvdGVjdGVkIGZpbHRlcjogRW50aXR5RmlsdGVyPGFueSwgVD47XG5cbiAgY29uc3RydWN0b3IoZmlsdGVyOiBFbnRpdHlGaWx0ZXI8YW55LCBUPikge1xuICAgIHN1cGVyKCdOb3RGaWx0ZXInKTtcbiAgICB0aGlzLmZpbHRlciA9IGZpbHRlcjtcbiAgfVxuXG4gIHByb3RlY3RlZCBidWlsZEZpbHRlcigpOiBGaWx0ZXJGbjxUPltdIHtcbiAgICBjb25zdCBmbiA9IHRoaXMuZmlsdGVyPy5hc0ZpbHRlckZuKCk7XG4gICAgaWYgKCFmbikgcmV0dXJuIFtdO1xuICAgIHJldHVybiBbXG4gICAgICAoZW50aXR5OiBUKSA9PiAhZm4oZW50aXR5KVxuICAgIF07XG4gIH1cbn1cblxuXG5leHBvcnQgY2xhc3MgQW5kRmlsdGVyPFQgZXh0ZW5kcyBJRW50aXR5PFQsIGFueT4+IGV4dGVuZHMgRW50aXR5RmlsdGVyPEFuZEZpbHRlcjxUPiwgVD4ge1xuICBwcm90ZWN0ZWQgZmlsdGVyczogRW50aXR5RmlsdGVyPGFueSwgVD5bXTtcblxuICBjb25zdHJ1Y3RvciguLi5maWx0ZXJzOiBFbnRpdHlGaWx0ZXI8YW55LCBUPltdKSB7XG4gICAgc3VwZXIoJ0FuZEZpbHRlcicpO1xuICAgIHRoaXMuZmlsdGVycyA9IChmaWx0ZXJzIHx8IFtdKS5maWx0ZXIoaXNOb3ROaWwpO1xuICB9XG5cbiAgYW5kKC4uLmZpbHRlcnM6IEVudGl0eUZpbHRlcjxhbnksIFQ+W10pOiBBbmRGaWx0ZXI8VD4ge1xuICAgIHRoaXMuZmlsdGVycyA9IHRoaXMuZmlsdGVycy5jb25jYXQoLi4uKGZpbHRlcnMgfHwgW10pLmZpbHRlcihpc05vdE5pbCkpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHJvdGVjdGVkIGJ1aWxkRmlsdGVyKCk6IEZpbHRlckZuPFQ+W10ge1xuICAgIGNvbnN0IGZucyA9ICh0aGlzLmZpbHRlcnMgfHwgW10pXG4gICAgICAubWFwKChmKSA9PiAoZiA/IGYuYXNGaWx0ZXJGbigpIDogdW5kZWZpbmVkKSlcbiAgICAgIC5maWx0ZXIoaXNOb3ROaWwpO1xuXG4gICAgaWYgKGlzRW1wdHlBcnJheShmbnMpKSByZXR1cm4gW107XG5cbiAgICByZXR1cm4gW1xuICAgICAgKGVudGl0eTogVCkgPT4gZm5zLmV2ZXJ5KChmbikgPT4gZm4oZW50aXR5KSlcbiAgICBdO1xuICB9XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBFbnRpdHlGaWx0ZXJVdGlscyB7XG4gIHN0YXRpYyBpc0VudGl0eUZpbHRlcjxGIGV4dGVuZHMgRW50aXR5RmlsdGVyPEYsIGFueT4+KG9iajogUGFydGlhbDxGPik6IG9iaiBpcyBGIHtcbiAgICByZXR1cm4gKG9iaiAmJiBvYmouYXNQb2RPYmplY3QgJiYgb2JqLmFzRmlsdGVyRm4gJiYgdHJ1ZSkgfHwgZmFsc2U7XG4gIH1cblxuICBzdGF0aWMgZnJvbU9iamVjdDxGPihzb3VyY2U6IGFueSwgZmlsdGVyVHlwZTogbmV3ICgpID0+IEYpOiBGIHtcbiAgICBpZiAoIXNvdXJjZSkgcmV0dXJuIHNvdXJjZTtcbiAgICBpZiAoaXNJbnN0YW5jZU9mKHNvdXJjZSwgZmlsdGVyVHlwZSkpIHJldHVybiBzb3VyY2UgYXMgRjtcbiAgICBjb25zdCB0YXJnZXQgPSBuZXcgZmlsdGVyVHlwZSgpO1xuICAgIGlmIChFbnRpdHlGaWx0ZXJVdGlscy5pc0VudGl0eUZpbHRlcih0YXJnZXQpKSB7XG4gICAgICB0YXJnZXQuZnJvbU9iamVjdChzb3VyY2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICBPYmplY3QuYXNzaWduKHRhcmdldCwgc291cmNlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRhcmdldDtcbiAgfVxuXG59XG4iXX0=
|
|
156
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL3NlcnZpY2VzL21vZGVsL2ZpbHRlci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNwRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsTUFBTSxFQUFrQyxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQXlCdEYsTUFBTSxPQUFnQixZQU9wQixTQUFRLE1BQXFCO0lBRzdCLDBDQUEwQztJQUMxQyxHQUFHLENBQU87SUFDVixFQUFFLENBQU87SUFDVCxHQUFHLENBQUs7SUFFUixNQUFNLENBQUMsVUFBVSxDQUE0QixTQUF3QjtRQUNuRSxJQUFJLFlBQVksQ0FBQyxTQUFTLENBQUM7WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUM5QyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxNQUFNLENBQUMsU0FBUyxDQUE0QixTQUF3QjtRQUNsRSxJQUFJLFlBQVksQ0FBQyxTQUFTLENBQUM7WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUM5QyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxZQUFZLFVBQW1CO1FBQzdCLEtBQUss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QkFDbEIsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO2dCQUMxQyxvQkFBb0I7Z0JBQ3BCLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUN0QyxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFnQixpQkFBaUI7SUFDckMsTUFBTSxDQUFDLGNBQWMsQ0FBaUMsR0FBZTtRQUNuRSxPQUFPLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxXQUFXLElBQUksR0FBRyxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUM7SUFDckUsQ0FBQztJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUksTUFBVyxFQUFFLFVBQXVCO1FBQ3ZELElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTyxNQUFNLENBQUM7UUFDM0IsSUFBSSxZQUFZLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQztZQUFFLE9BQU8sTUFBVyxDQUFDO1FBQ3pELE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7UUFDaEMsSUFBSSxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUM3QyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVCLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDaEMsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzRW1wdHlBcnJheSwgaXNOb3RFbXB0eUFycmF5LCBpc05vdE5pbCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9mdW5jdGlvbnMnO1xuaW1wb3J0IHsgTUlOSUZZX0VOVElUWV9GT1JfUE9ELCBSZWZlcmVudGlhbFV0aWxzIH0gZnJvbSAnLi9yZWZlcmVudGlhbC5tb2RlbCc7XG5pbXBvcnQgeyBFbnRpdHksIEVudGl0eUFzT2JqZWN0T3B0aW9ucywgSUVudGl0eSwgaXNJbnN0YW5jZU9mIH0gZnJvbSAnLi9lbnRpdHkubW9kZWwnO1xuXG5pbXBvcnQgeyBGaWx0ZXJGbiB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC90eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUVudGl0eUZpbHRlcjxcbiAgRiBleHRlbmRzIElFbnRpdHlGaWx0ZXI8RiwgVCwgSUQsIEFPLCBGTz4sXG4gIFQgZXh0ZW5kcyBJRW50aXR5PFQsIGFueT4sXG4gIElEID0gbnVtYmVyLFxuICBBTyBleHRlbmRzIEVudGl0eUFzT2JqZWN0T3B0aW9ucyA9IEVudGl0eUFzT2JqZWN0T3B0aW9ucyxcbiAgRk8gPSBhbnksXG4+IGV4dGVuZHMgSUVudGl0eTxGLCBJRCwgQU8sIEZPPiB7XG4gIGFzUG9kT2JqZWN0KCk6IGFueTtcblxuICBhc0ZpbHRlckZuKCk6IEZpbHRlckZuPFQ+O1xuXG4gIGlzRW1wdHkoKTogYm9vbGVhbjtcblxuICBjb3VudE5vdEVtcHR5Q3JpdGVyaWEoKTogbnVtYmVyO1xuXG4gIC8vIExvZ2ljYWwgY29tYmluYXRvcnMgKGZsdWVudCwgcmV0dXJuIHNhbWUgZmlsdGVyIHR5cGUgRilcbiAgYW5kPzogRltdO1xuICBvcj86IEZbXTtcbiAgbm90PzogRjtcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEVudGl0eUZpbHRlcjxcbiAgICBGIGV4dGVuZHMgSUVudGl0eUZpbHRlcjxGLCBULCBJRCwgQU8sIEZPPixcbiAgICBUIGV4dGVuZHMgSUVudGl0eTxULCBhbnk+LFxuICAgIElEID0gbnVtYmVyLFxuICAgIEFPIGV4dGVuZHMgRW50aXR5QXNPYmplY3RPcHRpb25zID0gRW50aXR5QXNPYmplY3RPcHRpb25zLFxuICAgIEZPID0gYW55LFxuICA+XG4gIGV4dGVuZHMgRW50aXR5PEYsIElELCBBTywgRk8+XG4gIGltcGxlbWVudHMgSUVudGl0eUZpbHRlcjxGLCBULCBJRCwgQU8sIEZPPlxue1xuICAvLyBJbnRlcm5hbCBjb21wb3NpdGlvbiBzdGF0ZSAoZmx1ZW50IEFQSSlcbiAgYW5kPzogRltdO1xuICBvcj86IEZbXTtcbiAgbm90PzogRjtcblxuICBzdGF0aWMgY29tcG9zZUFuZDxUIGV4dGVuZHMgSUVudGl0eTxULCBhbnk+PihmaWx0ZXJGbnM6IEZpbHRlckZuPFQ+W10pOiBGaWx0ZXJGbjxUPiB7XG4gICAgaWYgKGlzRW1wdHlBcnJheShmaWx0ZXJGbnMpKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiAoZW50aXR5KSA9PiAoZmlsdGVyRm5zIHx8IFtdKS5ldmVyeSgoZm4pID0+IGZuKGVudGl0eSkpO1xuICB9XG5cbiAgc3RhdGljIGNvbXBvc2VPcjxUIGV4dGVuZHMgSUVudGl0eTxULCBhbnk+PihmaWx0ZXJGbnM6IEZpbHRlckZuPFQ+W10pOiBGaWx0ZXJGbjxUPiB7XG4gICAgaWYgKGlzRW1wdHlBcnJheShmaWx0ZXJGbnMpKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiAoZW50aXR5KSA9PiAoZmlsdGVyRm5zIHx8IFtdKS5zb21lKChmbikgPT4gZm4oZW50aXR5KSk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihfX3R5cGVuYW1lPzogc3RyaW5nKSB7XG4gICAgc3VwZXIoX190eXBlbmFtZSk7XG4gIH1cblxuICBjcmVhdGUoKSB7XG4gICAgY29uc3QgQ3RvcjogbmV3ICgpID0+IEYgPSAodGhpcy5jb25zdHJ1Y3RvciBhcyBhbnkpO1xuICAgIHJldHVybiBuZXcgQ3RvcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFuIGEgZmlsdGVyLCBiZWZvcmUgc2VuZGluZyB0byB0aGUgcG9kIChlLmcgY29udmVydCBkYXRlcywgcmVtb3ZlIGludGVybmFsIHByb3BlcnRpZXMsIGV0Yy4pXG4gICAqL1xuICBhc1BvZE9iamVjdCgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmFzT2JqZWN0KE1JTklGWV9FTlRJVFlfRk9SX1BPRCBhcyBBTyk7XG4gIH1cblxuICBpc0VtcHR5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNvdW50Tm90RW1wdHlDcml0ZXJpYSgpID09PSAwO1xuICB9XG5cbiAgY291bnROb3RFbXB0eUNyaXRlcmlhKCk6IG51bWJlciB7XG4gICAgY29uc3QganNvbiA9IHRoaXMuYXNQb2RPYmplY3QoKTtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMoanNvbikuZmlsdGVyKChrZXkpID0+IHRoaXMuaXNDcml0ZXJpYU5vdEVtcHR5KGtleSwganNvbltrZXldKSkubGVuZ3RoO1xuICB9XG5cbiAgYXNGaWx0ZXJGbigpOiBGaWx0ZXJGbjxUPiB7XG4gICAgLy8gQmFzZSAodGhpcykgZmlsdGVyIGZ1bmN0aW9uc1xuICAgIGxldCBmaWx0ZXJGbnMgPSB0aGlzLmJ1aWxkRmlsdGVyKCkgfHwgW107XG5cbiAgICAvLyBOT1RcbiAgICBpZiAodGhpcy5ub3QpIHtcbiAgICAgIGNvbnN0IG5vdEZuID0gdGhpcy5ub3QuYXNGaWx0ZXJGbigpO1xuICAgICAgZmlsdGVyRm5zLnB1c2goKGl0ZW0pID0+ICFub3RGbihpdGVtKSk7XG4gICAgfVxuXG4gICAgLy8gQU5EIGZpbHRlcnNcbiAgICBpZiAoaXNOb3RFbXB0eUFycmF5KHRoaXMuYW5kKSkge1xuICAgICAgZmlsdGVyRm5zLnB1c2goLi4udGhpcy5hbmQubWFwKChmKSA9PiBmPy5hc0ZpbHRlckZuKCkpLmZpbHRlcihpc05vdE5pbCkpO1xuICAgIH1cblxuICAgIC8vIEFzIGZpbHRlciBmdW5jdGlvblxuICAgIGxldCByZXN1bHQgPSBFbnRpdHlGaWx0ZXIuY29tcG9zZUFuZDxUPihmaWx0ZXJGbnMpO1xuXG4gICAgLy8gT1IgZmlsdGVyc1xuICAgIGlmIChpc05vdEVtcHR5QXJyYXkodGhpcy5vcikpIHtcbiAgICAgIHJlc3VsdCA9IEVudGl0eUZpbHRlci5jb21wb3NlT3IoXG4gICAgICAgIFtcbiAgICAgICAgICByZXN1bHQsXG4gICAgICAgICAgLi4uKHRoaXMub3IgfHwgW10pLm1hcCgoZikgPT4gZj8uYXNGaWx0ZXJGbigpKVxuICAgICAgICBdLmZpbHRlcihpc05vdE5pbClcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGFzT2JqZWN0KG9wdHM/OiBBTyk6IGFueSB7XG4gICAgY29uc3QgdGFyZ2V0OiBhbnkgPSBzdXBlci5hc09iamVjdChvcHRzKTtcblxuICAgIC8vIFNlcmlhbGl6ZSBjb21wb3NpdGlvblxuICAgIGlmICh0aGlzLm5vdCkge1xuICAgICAgdGFyZ2V0Lm5vdCA9IHRoaXMubm90LmFzT2JqZWN0KG9wdHMpO1xuICAgIH1cbiAgICBpZiAoaXNOb3RFbXB0eUFycmF5KHRoaXMuYW5kKSkge1xuICAgICAgdGFyZ2V0LmFuZCA9IHRoaXMuYW5kLm1hcCgoZikgPT4gZi5hc09iamVjdChvcHRzKSk7XG4gICAgfVxuICAgIGlmIChpc05vdEVtcHR5QXJyYXkodGhpcy5vcikpIHtcbiAgICAgIHRhcmdldC5vciA9IHRoaXMub3IubWFwKChmKSA9PiBmLmFzT2JqZWN0KG9wdHMpKTtcbiAgICB9XG5cbiAgICAvLyBTYW5pdGl6ZVxuICAgIGRlbGV0ZSB0YXJnZXQuX19hbmQ7XG4gICAgZGVsZXRlIHRhcmdldC5fX29yO1xuICAgIGRlbGV0ZSB0YXJnZXQuX19ub3Q7XG5cbiAgICByZXR1cm4gdGFyZ2V0O1xuICB9XG5cbiAgZnJvbU9iamVjdChzb3VyY2U6IGFueSwgb3B0cz86IEZPKSB7XG4gICAgc3VwZXIuZnJvbU9iamVjdChzb3VyY2UsIG9wdHMgYXMgYW55KTtcbiAgICAvLyBEZXNlcmlhbGl6ZSBjb21wb3NpdGlvbiB1c2luZyB0aGUgc2FtZSBjb25jcmV0ZSBmaWx0ZXIgdHlwZVxuXG4gICAgLy8gQU5EXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoc291cmNlPy5hbmQpKSB7XG4gICAgICB0aGlzLmFuZCA9IHNvdXJjZS5hbmQubWFwKChzKSA9PiB7XG4gICAgICAgIGlmICghcykgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3QgZiA9IHRoaXMuY3JlYXRlKCk7XG4gICAgICAgIChmIGFzIGFueSkuZnJvbU9iamVjdChzLCBvcHRzKTtcbiAgICAgICAgcmV0dXJuIGY7XG4gICAgICB9KS5maWx0ZXIoaXNOb3ROaWwpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFuZCA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvLyBPUlxuICAgIGlmIChBcnJheS5pc0FycmF5KHNvdXJjZT8ub3IpKSB7XG4gICAgICB0aGlzLm9yID0gc291cmNlLm9yLm1hcCgocykgPT4ge1xuICAgICAgICBpZiAoIXMpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IGYgPSB0aGlzLmNyZWF0ZSgpO1xuICAgICAgICAoZiBhcyBhbnkpLmZyb21PYmplY3Qocywgb3B0cyk7XG4gICAgICAgIHJldHVybiBmO1xuICAgICAgfSkuZmlsdGVyKGlzTm90TmlsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vciA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvLyBOT1RcbiAgICBpZiAoc291cmNlPy5ub3QpIHtcbiAgICAgIGNvbnN0IGYgPSB0aGlzLmNyZWF0ZSgpO1xuICAgICAgKGYgYXMgYW55KS5mcm9tT2JqZWN0KHNvdXJjZS5ub3QsIG9wdHMpO1xuICAgICAgdGhpcy5ub3QgPSBmO1xuICAgIH1cbiAgfVxuXG4gIC8qIC0tIHByb3RlY3RlZCBmdW5jdGlvbnMgLS0gKi9cblxuICBwcm90ZWN0ZWQgYnVpbGRGaWx0ZXIoKTogRmlsdGVyRm48VD5bXSB7XG4gICAgLy8gQ2FuIGJlIGNvbXBsZXRlZCBieSBzdWJjbGFzc2VzXG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzQ3JpdGVyaWFOb3RFbXB0eShrZXk6IHN0cmluZywgdmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgIC8vIENhbiBiZSBvdmVycmlkZGVuIGJ5IHN1YmNsYXNzZXNcbiAgICByZXR1cm4gKFxuICAgICAgdmFsdWUgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgdmFsdWUgIT09IG51bGwgJiZcbiAgICAgIC8vIG5vdCBlbXB0eSBzdHJpbmdcbiAgICAgICgodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiB2YWx1ZS50cmltKCkgIT09ICcnKSB8fFxuICAgICAgICAvLyB2YWxpZCBudW1iZXJcbiAgICAgICAgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgJiYgIWlzTmFOKHZhbHVlKSkgfHxcbiAgICAgICAgLy8gdmFsaWQgYm9vbGVhblxuICAgICAgICB0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJyB8fFxuICAgICAgICAvLyBub3QgZW1wdHkgYXJyYXlcbiAgICAgICAgKEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA+IDApIHx8XG4gICAgICAgIC8vIGVudGl0eSB3aXRoIGFuIGlkXG4gICAgICAgIFJlZmVyZW50aWFsVXRpbHMuaXNOb3RFbXB0eSh2YWx1ZSkpXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRW50aXR5RmlsdGVyVXRpbHMge1xuICBzdGF0aWMgaXNFbnRpdHlGaWx0ZXI8RiBleHRlbmRzIEVudGl0eUZpbHRlcjxGLCBhbnk+PihvYmo6IFBhcnRpYWw8Rj4pOiBvYmogaXMgRiB7XG4gICAgcmV0dXJuIChvYmogJiYgb2JqLmFzUG9kT2JqZWN0ICYmIG9iai5hc0ZpbHRlckZuICYmIHRydWUpIHx8IGZhbHNlO1xuICB9XG5cbiAgc3RhdGljIGZyb21PYmplY3Q8Rj4oc291cmNlOiBhbnksIGZpbHRlclR5cGU6IG5ldyAoKSA9PiBGKTogRiB7XG4gICAgaWYgKCFzb3VyY2UpIHJldHVybiBzb3VyY2U7XG4gICAgaWYgKGlzSW5zdGFuY2VPZihzb3VyY2UsIGZpbHRlclR5cGUpKSByZXR1cm4gc291cmNlIGFzIEY7XG4gICAgY29uc3QgdGFyZ2V0ID0gbmV3IGZpbHRlclR5cGUoKTtcbiAgICBpZiAoRW50aXR5RmlsdGVyVXRpbHMuaXNFbnRpdHlGaWx0ZXIodGFyZ2V0KSkge1xuICAgICAgdGFyZ2V0LmZyb21PYmplY3Qoc291cmNlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgT2JqZWN0LmFzc2lnbih0YXJnZXQsIHNvdXJjZSk7XG4gICAgfVxuICAgIHJldHVybiB0YXJnZXQ7XG4gIH1cblxufVxuIl19
|
|
@@ -17969,15 +17969,15 @@ ReferentialRef = ReferentialRef_1 = __decorate([
|
|
|
17969
17969
|
|
|
17970
17970
|
class EntityFilter extends Entity {
|
|
17971
17971
|
// Internal composition state (fluent API)
|
|
17972
|
-
|
|
17973
|
-
|
|
17974
|
-
|
|
17975
|
-
static
|
|
17972
|
+
and;
|
|
17973
|
+
or;
|
|
17974
|
+
not;
|
|
17975
|
+
static composeAnd(filterFns) {
|
|
17976
17976
|
if (isEmptyArray(filterFns))
|
|
17977
17977
|
return undefined;
|
|
17978
17978
|
return (entity) => (filterFns || []).every((fn) => fn(entity));
|
|
17979
17979
|
}
|
|
17980
|
-
static
|
|
17980
|
+
static composeOr(filterFns) {
|
|
17981
17981
|
if (isEmptyArray(filterFns))
|
|
17982
17982
|
return undefined;
|
|
17983
17983
|
return (entity) => (filterFns || []).some((fn) => fn(entity));
|
|
@@ -17985,6 +17985,10 @@ class EntityFilter extends Entity {
|
|
|
17985
17985
|
constructor(__typename) {
|
|
17986
17986
|
super(__typename);
|
|
17987
17987
|
}
|
|
17988
|
+
create() {
|
|
17989
|
+
const Ctor = this.constructor;
|
|
17990
|
+
return new Ctor();
|
|
17991
|
+
}
|
|
17988
17992
|
/**
|
|
17989
17993
|
* Clean a filter, before sending to the pod (e.g convert dates, remove internal properties, etc.)
|
|
17990
17994
|
*/
|
|
@@ -18001,53 +18005,37 @@ class EntityFilter extends Entity {
|
|
|
18001
18005
|
asFilterFn() {
|
|
18002
18006
|
// Base (this) filter functions
|
|
18003
18007
|
let filterFns = this.buildFilter() || [];
|
|
18008
|
+
// NOT
|
|
18009
|
+
if (this.not) {
|
|
18010
|
+
const notFn = this.not.asFilterFn();
|
|
18011
|
+
filterFns.push((item) => !notFn(item));
|
|
18012
|
+
}
|
|
18004
18013
|
// AND filters
|
|
18005
|
-
if (isNotEmptyArray(this.
|
|
18006
|
-
filterFns.push(...this.
|
|
18014
|
+
if (isNotEmptyArray(this.and)) {
|
|
18015
|
+
filterFns.push(...this.and.map((f) => f?.asFilterFn()).filter(isNotNil));
|
|
18007
18016
|
}
|
|
18008
18017
|
// As filter function
|
|
18009
|
-
let result = EntityFilter.
|
|
18018
|
+
let result = EntityFilter.composeAnd(filterFns);
|
|
18010
18019
|
// OR filters
|
|
18011
|
-
if (isNotEmptyArray(this.
|
|
18012
|
-
result = EntityFilter.
|
|
18020
|
+
if (isNotEmptyArray(this.or)) {
|
|
18021
|
+
result = EntityFilter.composeOr([
|
|
18013
18022
|
result,
|
|
18014
|
-
...(this.
|
|
18023
|
+
...(this.or || []).map((f) => f?.asFilterFn())
|
|
18015
18024
|
].filter(isNotNil));
|
|
18016
18025
|
}
|
|
18017
|
-
// NOT
|
|
18018
|
-
if (this.__not && result) {
|
|
18019
|
-
const inner = result;
|
|
18020
|
-
result = (entity) => !inner(entity);
|
|
18021
|
-
}
|
|
18022
18026
|
return result;
|
|
18023
18027
|
}
|
|
18024
|
-
and(...filters) {
|
|
18025
|
-
if (!isEmptyArray(filters)) {
|
|
18026
|
-
this.__and = (this.__and || []).concat(filters.filter(isNotNil));
|
|
18027
|
-
}
|
|
18028
|
-
return this;
|
|
18029
|
-
}
|
|
18030
|
-
or(...filters) {
|
|
18031
|
-
if (!isEmptyArray(filters)) {
|
|
18032
|
-
this.__or = (this.__or || []).concat(filters.filter(isNotNil));
|
|
18033
|
-
}
|
|
18034
|
-
return this;
|
|
18035
|
-
}
|
|
18036
|
-
not() {
|
|
18037
|
-
this.__not = !(this.__not ?? false);
|
|
18038
|
-
return this;
|
|
18039
|
-
}
|
|
18040
18028
|
asObject(opts) {
|
|
18041
18029
|
const target = super.asObject(opts);
|
|
18042
18030
|
// Serialize composition
|
|
18043
|
-
if (
|
|
18044
|
-
target.
|
|
18031
|
+
if (this.not) {
|
|
18032
|
+
target.not = this.not.asObject(opts);
|
|
18045
18033
|
}
|
|
18046
|
-
if (isNotEmptyArray(this.
|
|
18047
|
-
target.
|
|
18034
|
+
if (isNotEmptyArray(this.and)) {
|
|
18035
|
+
target.and = this.and.map((f) => f.asObject(opts));
|
|
18048
18036
|
}
|
|
18049
|
-
if (this.
|
|
18050
|
-
target.
|
|
18037
|
+
if (isNotEmptyArray(this.or)) {
|
|
18038
|
+
target.or = this.or.map((f) => f.asObject(opts));
|
|
18051
18039
|
}
|
|
18052
18040
|
// Sanitize
|
|
18053
18041
|
delete target.__and;
|
|
@@ -18060,34 +18048,36 @@ class EntityFilter extends Entity {
|
|
|
18060
18048
|
// Deserialize composition using the same concrete filter type
|
|
18061
18049
|
// AND
|
|
18062
18050
|
if (Array.isArray(source?.and)) {
|
|
18063
|
-
|
|
18064
|
-
this.__and = source.and.map((s) => {
|
|
18051
|
+
this.and = source.and.map((s) => {
|
|
18065
18052
|
if (!s)
|
|
18066
18053
|
return undefined;
|
|
18067
|
-
const f =
|
|
18054
|
+
const f = this.create();
|
|
18068
18055
|
f.fromObject(s, opts);
|
|
18069
18056
|
return f;
|
|
18070
18057
|
}).filter(isNotNil);
|
|
18071
18058
|
}
|
|
18072
18059
|
else {
|
|
18073
|
-
this.
|
|
18060
|
+
this.and = undefined;
|
|
18074
18061
|
}
|
|
18075
18062
|
// OR
|
|
18076
18063
|
if (Array.isArray(source?.or)) {
|
|
18077
|
-
|
|
18078
|
-
this.__or = source.or.map((s) => {
|
|
18064
|
+
this.or = source.or.map((s) => {
|
|
18079
18065
|
if (!s)
|
|
18080
18066
|
return undefined;
|
|
18081
|
-
const f =
|
|
18067
|
+
const f = this.create();
|
|
18082
18068
|
f.fromObject(s, opts);
|
|
18083
18069
|
return f;
|
|
18084
18070
|
}).filter(isNotNil);
|
|
18085
18071
|
}
|
|
18086
18072
|
else {
|
|
18087
|
-
this.
|
|
18073
|
+
this.or = undefined;
|
|
18088
18074
|
}
|
|
18089
18075
|
// NOT
|
|
18090
|
-
|
|
18076
|
+
if (source?.not) {
|
|
18077
|
+
const f = this.create();
|
|
18078
|
+
f.fromObject(source.not, opts);
|
|
18079
|
+
this.not = f;
|
|
18080
|
+
}
|
|
18091
18081
|
}
|
|
18092
18082
|
/* -- protected functions -- */
|
|
18093
18083
|
buildFilter() {
|
|
@@ -18110,59 +18100,6 @@ class EntityFilter extends Entity {
|
|
|
18110
18100
|
ReferentialUtils.isNotEmpty(value)));
|
|
18111
18101
|
}
|
|
18112
18102
|
}
|
|
18113
|
-
class OrFilter extends EntityFilter {
|
|
18114
|
-
filters;
|
|
18115
|
-
constructor(...filters) {
|
|
18116
|
-
super('OrFilter');
|
|
18117
|
-
this.filters = (filters || []).filter(isNotNil);
|
|
18118
|
-
}
|
|
18119
|
-
buildFilter() {
|
|
18120
|
-
const fns = (this.filters || [])
|
|
18121
|
-
.map((f) => (f ? f.asFilterFn() : undefined))
|
|
18122
|
-
.filter(isNotNil);
|
|
18123
|
-
if (isEmptyArray(fns))
|
|
18124
|
-
return [];
|
|
18125
|
-
return [
|
|
18126
|
-
(entity) => fns.some((fn) => fn(entity))
|
|
18127
|
-
];
|
|
18128
|
-
}
|
|
18129
|
-
}
|
|
18130
|
-
class NotFilter extends EntityFilter {
|
|
18131
|
-
filter;
|
|
18132
|
-
constructor(filter) {
|
|
18133
|
-
super('NotFilter');
|
|
18134
|
-
this.filter = filter;
|
|
18135
|
-
}
|
|
18136
|
-
buildFilter() {
|
|
18137
|
-
const fn = this.filter?.asFilterFn();
|
|
18138
|
-
if (!fn)
|
|
18139
|
-
return [];
|
|
18140
|
-
return [
|
|
18141
|
-
(entity) => !fn(entity)
|
|
18142
|
-
];
|
|
18143
|
-
}
|
|
18144
|
-
}
|
|
18145
|
-
class AndFilter extends EntityFilter {
|
|
18146
|
-
filters;
|
|
18147
|
-
constructor(...filters) {
|
|
18148
|
-
super('AndFilter');
|
|
18149
|
-
this.filters = (filters || []).filter(isNotNil);
|
|
18150
|
-
}
|
|
18151
|
-
and(...filters) {
|
|
18152
|
-
this.filters = this.filters.concat(...(filters || []).filter(isNotNil));
|
|
18153
|
-
return this;
|
|
18154
|
-
}
|
|
18155
|
-
buildFilter() {
|
|
18156
|
-
const fns = (this.filters || [])
|
|
18157
|
-
.map((f) => (f ? f.asFilterFn() : undefined))
|
|
18158
|
-
.filter(isNotNil);
|
|
18159
|
-
if (isEmptyArray(fns))
|
|
18160
|
-
return [];
|
|
18161
|
-
return [
|
|
18162
|
-
(entity) => fns.every((fn) => fn(entity))
|
|
18163
|
-
];
|
|
18164
|
-
}
|
|
18165
|
-
}
|
|
18166
18103
|
class EntityFilterUtils {
|
|
18167
18104
|
static isEntityFilter(obj) {
|
|
18168
18105
|
return (obj && obj.asPodObject && obj.asFilterFn && true) || false;
|
|
@@ -51560,5 +51497,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
51560
51497
|
* Generated bundle index. Do not edit.
|
|
51561
51498
|
*/
|
|
51562
51499
|
|
|
51563
|
-
export { APP_ABOUT_DEVELOPERS, APP_ABOUT_PARTNERS, APP_CONFIG_OPTIONS, APP_DEBUG_DATA_SERVICE, APP_FEED_SERVICE, APP_FORM_ERROR_I18N_KEYS, APP_GRAPHQL_FRAGMENTS, APP_GRAPHQL_TYPE_POLICIES, APP_HOME_BUTTONS, APP_HOME_CONFIG, APP_HOTKEYS_CONFIG, APP_JOB_PROGRESSION_SERVICE, APP_LOCALES, APP_LOCAL_SETTINGS, APP_LOCAL_SETTINGS_OPTIONS, APP_LOCAL_STORAGE_TYPE_POLICIES, APP_LOGGING_SERVICE, APP_MENU_ITEMS, APP_MENU_OPTIONS, APP_NAMED_FILTER_SERVICE, APP_PROGRESS_BAR_SERVICE, APP_SETTINGS_MENU_ITEMS, APP_STORAGE, APP_STORAGE_EXPLORER_PROTECTED_KEYS, APP_TESTING_PAGES, APP_USER_EVENT_LIST_INFINITE_SCROLL_THRESHOLD, APP_USER_EVENT_SERVICE, APP_USER_SETTINGS_OPTIONS, APP_USER_TOKEN_SCOPES, AboutModal, AbstractNamedFilterService, AbstractSelectionModelPipe, AbstractTableSelectionPipe, AbstractUserEventService, Account, AccountPage, AccountService, AccountToStringPipe, AccountUtils, ActionsColumnComponent, AdditionalFields, AdminModule, AdminRoutingModule, AdminUsersModule, Alerts, AndFilter, AndroidOsEnvironment, AppAboutModalModule, AppAccountModule, AppAsyncTable, AppAuthForm, AppAuthModal, AppAuthModule, AppChangePasswordModule, AppChangePasswordPage, AppEditor, AppEditorOptions, AppEntityEditor, AppEntityEditorModal, AppEntityEditorModalOptions, AppEntityFormModule, AppForm, AppFormArray, AppFormButtonsBarModule, AppFormContainer, AppFormField, AppFormModule, AppFormProvider, AppFormUtils, AppGestureConfig, AppGraphQLModule, AppHomePageModule, AppIconComponent, AppIconModule, AppImageGalleryComponent, AppInMemoryTable, AppInstallUpgradeCard, AppInstallUpgradeCardModule, AppListForm, AppListFormModule, AppLoadingSpinner, AppMarkdownContent, AppMarkdownModal, AppMenuModule, AppNullForm, AppPropertiesForm, AppPropertiesFormModule, AppPropertiesTable, AppPropertiesUtils, AppPropertyUtils, AppRegisterModule, AppResetPasswordModal, AppRowField, AppSelectPeerModule, AppSelectUsersModal, AppSettingsPageModule, AppTabEditor, AppTabEditorOptions, AppTable, AppTableModule, AppTableUtils, AppTextFormModule, AppTextPopoverModule, AppUpdateOfflineModeCard, AppUpdateOfflineModeCardModule, AppValidatorService, AppendQueryParamsPipePipe, ArrayDistinctPipe, ArrayFilterPipe, ArrayFindByPropertyPipe, ArrayFirstPipe, ArrayFormTestPage, ArrayIncludesPipe, ArrayJoinPipe, ArrayLastPipe, ArrayLengthPipe, ArrayMapPipe, ArrayPluckPipe, ArraySlicePipe, ArraySortPipe, AsAnyPipe, AsArrayPipe, AsBooleanPipe, AsFloatLabelTypePipe, AsObservablePipe, AudioProvider, AudioTestingModule, AudioTestingPage, AuthGuardService, AutoResizeDirective, AutoTitleDirective, AutocompleteTestPage, AutofocusDirective, BadgeDirective, BadgeNumberPipe, Base58, BaseEntityService, BaseGraphqlService, BaseGraphqlServiceOptions, BaseReferential, Beans, BooleanFormatPipe, BooleanTestPage, CORE_CONFIG_OPTIONS, CORE_TESTING_PAGES, CapitalizePipe, CellValueChangeListener, ChangePasswordForm, ChipsTestPage, Color, ColorScale, ComponentDirtyGuard, ConfigFragments, ConfigService, Configuration, CoreModule, CorePipesModule, CoreTestingModule, CryptoService, CsvUtils, DATE_ISO_PATTERN, DATE_MATCH_REGEXP, DATE_PATTERN, DATE_UNIX_MS_TIMESTAMP, DATE_UNIX_TIMESTAMP, DEFAULT_JOIN_ARRAY_VALUES_SEPARATOR, DEFAULT_JOIN_PROPERTIES_SEPARATOR, DEFAULT_MENU_SHOW_WHEN, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLACEHOLDER_CHAR, DEFAULT_REQUIRED_COLUMNS, DateDiffDurationPipe, DateFormatPipe, DateFormatService, DateFromNowPipe, DateFromPipe, DateShortTestPage, DateTestPage, DateTimeTestPage, DateUtils, DebugComponent, Department, DepartmentToStringPipe, DisplayWithPipe, DragAndDropDirective, DurationPipe, DurationTestPage, ED25519_SEED_LENGTH, EMPTY_PLACEHOLDER_CHAR, EMPTY_PLACEHOLDER_CHAR_REGEXP_GLOBAL, ENTITIES_STORAGE_KEY_PREFIX, ENVIRONMENT, EmptyArrayPipe, EntitiesAsyncTableDataSource, EntitiesStorage, EntitiesTableDataSource, Entity, EntityClass, EntityClasses, EntityFilter, EntityFilterUtils, EntityMetadataComponent, EntityStore, EntityUtils, Environment, EnvironmentHttpLoader, EnvironmentLoader, ErrorCodes, EvenPipe, FeedDirective, FeedModule, FeedPage, FeedService, FeedsComponent, FileResponse, FileService, FileSizePipe, FilesUtils, FirstFalsePipe, FirstPipe, FirstTruePipe, FormArrayHelper, FormArrayTestModule, FormButtonsBarComponent, FormButtonsBarToken, FormErrorPipe, FormErrorTranslatePipe, FormErrorTranslator, FormFieldDefinitionUtils, FormFieldValuesHolder, FormGetArrayPipe, FormGetControlPipe, FormGetGroupPipe, FormGetPipe, FormGetValuePipe, GalleryTestPage, GeolocationUtils, GraphqlService, HAMMER_PRESS_TIME, HAMMER_TAP_TIME, HighlightPipe, HomePage, Hotkeys, HotkeysDialogComponent, IMAGE_DEFAULTS, IPosition, ImageAttachment, ImageAttachmentFilter, ImageAttachmentService, ImageGalleryModule, ImageGalleryTestingModule, ImageModule, ImageService, ImagesUtils, InMemoryEntitiesService, IsAllSelectedPipe, IsEmptySelectionPipe, IsLoginAccountPipe, IsMultipleSelectionPipe, IsNilOrBlankPipe, IsNilOrNaNPipe, IsNilPipe, IsNotAllSelectedPipe, IsNotEmptySelectionPipe, IsNotNilOrBlankPipe, IsNotNilOrNaNPipe, IsNotNilPipe, IsOnDeskPipe, IsOnFieldPipe, IsSelectedPipe, IsSingleSelectionPipe, IsValidDatePipe, JobModule, JobProgression, JobProgressionComponent, JobProgressionIcon, JobProgressionList, JobProgressionService, JobProgressionTestService, JobProgressionTestingPage, JobTestingModule, JobUtils, JsonFeedUtils, JsonUtils, KEYBOARD_HIDE_DELAY_MS, LAT_LONG_PATTERNS, LAT_LONG_PATTERN_MAX_DECIMALS, LAT_LONG_VALUE_MAX_DECIMALS, LatLongFormatPipe, LatLongTestPage, LatitudeFormatPipe, LocalSettingsService, LogLevel, LogUtils, Logger, LoggingService, LoggingServiceModule, LongitudeFormatPipe, MASKS, MASK_RANGES, MAT_FORM_FIELD_DEFAULT_APPEARANCE, MAT_FORM_FIELD_DEFAULT_SUBSCRIPT_SIZING, MINIFY_ENTITY_FOR_LOCAL_STORAGE, MINIFY_ENTITY_FOR_POD, MOMENT_NO_TIME_PROPERTY, MapGetPipe, MapKeysPipe, MapPipe, MapToPipe, MapValuesPipe, MarkdownDirective, MarkdownService, MarkdownTestPage, MarkdownTestingModule, MarkdownUtils, MaskitoPlaceholderPipe, MaskitoTestPage, MatAutocompleteConfigHolder, MatAutocompleteField, MatAutocompleteFieldUtils, MatBadgeTestPage, MatBooleanField, MatChipsField, MatColorPipe, MatCommonTestPage, MatDate, MatDateShort, MatDateTime, MatDuration, MatLatLongField, MatLatLongFieldInput, MatPaginatorI18n, MatStepperI18n, MatSwipeField, MaterialTestingModule, MathAbsPipe, MenuComponent, MenuItem, MenuItems, MenuOptions, MenuService, MenuTestingModule, MenuTestingPage, Message, MessageFilter, MessageForm, MessageModal, MessageModule, MessageService, MessageTypeList, MessageTypes, MimeTypes, ModalToolbarComponent, NETWORK_DEFAULT_CONNECTION_TIMEOUT, NamedFilter, NamedFilterFilter, NamedFilterSelector, NamedFilterSelectorTestingModule, NamedFilterSelectorTestingPage, NavActionsColumnComponent, NetworkService, NetworkUtils, NewTokenForm, NewTokenModal, NgInitDirective, NgVarDirective, NoHtmlPipe, NotEmptyArrayPipe, NotFilter, NumberFormatPipe, ObservableTestPage, OddPipe, OrFilter, OtherMenuTestingPage, PEER_URL_REGEXP, PLUS_PLACEHOLDER_CHAR_REGEXP_GLOBAL, PRINT_ID_QUERY_PARAM, PRINT_LOADING_STORAGE_KEY_PREFIX, PRIORITIZED_AUTHORITIES, PUBKEY_REGEXP, Peer, Person, PersonFilter, PersonFragments, PersonService, PersonToStringPipe, PersonUtils, PersonValidatorService, PlatformService, PrintService, ProgressBarService, ProgressInterceptor, PropertiesFormTestPage, PropertiesFormTestingModule, PropertyEntity, PropertyEntityFilter, PropertyEntityValidator, PropertyFormatPipe, PropertyGetPipe, RESERVED_END_COLUMNS, RESERVED_START_COLUMNS, Referential, ReferentialFilter, ReferentialRef, ReferentialToStringPipe, ReferentialUtils, ReferentialValidatorService, ReferentialsToStringPipe, RegExpUtils, RegisterConfirmPage, RegisterForm, RegisterModal, ResizableComponent, ResizableDirective, ResizableModule, RoundPipe, RxStateComputed, RxStateModule, RxStateOutput, RxStateProperty, RxStateRegister, RxStateSelect, SCRYPT_PARAMS, SETTINGS_COMPACT_ROWS, SETTINGS_DISPLAY_COLUMNS, SETTINGS_FILTER, SETTINGS_PAGE_SIZE, SETTINGS_SORTED_COLUMN, SETTINGS_STORAGE_KEY, SETTINGS_TRANSIENT_PROPERTIES, SHARED_MATERIAL_TESTING_PAGES, SHARED_STORAGE_TESTING_PAGES, SHARED_TESTING_PAGES, SOCIAL_CONFIG_OPTIONS, SOCIAL_TESTING_PAGES, SPACE_PLACEHOLDER_CHAR, SPACE_PLACEHOLDER_CHAR_REGEXP_GLOBAL, SafeHtmlPipe, SafeStylePipe, SelectPeerModal, SelectionLengthPipe, ServerErrorCodes, SettingsPage, SharedAsyncValidators, SharedBadgeModule, SharedDebugModule, SharedDirectivesModule, SharedFormArrayValidators, SharedFormGroupValidators, SharedHotkeysModule, SharedMarkdownModule, SharedMatAutocompleteModule, SharedMatBooleanModule, SharedMatChipsModule, SharedMatDateTimeModule, SharedMatDurationModule, SharedMatLatLongModule, SharedMatSwipeModule, SharedMaterialModule, SharedModule, SharedNamedFilterModule, SharedPipesModule, SharedRoutingModule, SharedTestingModule, SharedTestsPage, SharedToolbarModule, SharedValidators, SocialErrorCodes, SocialModule, SocialModuleOptionsToken, SocialTestingModule, Software, SplitArrayInChunksPipe, StartableService, StatusById, StatusIds, StatusList, StorageDrivers, StorageExplorerComponent, StorageExplorerModule, StorageExplorerTestingModule, StorageExplorerTestingRoutingModule, StorageService, StrIncludesPipe, StrLengthPipe, StrReplacePipe, SubMenuTabDirective, SwipeTestPage, TABLE_SETTINGS_ENUM, TOOLBAR_HEADER_ID, Table2TestPage, TableSelectColumnsComponent, TableTestPage, TableTestingModule, TableValidatorService, TextForm, TextFormTestingModule, TextFormTestingPage, TextPopover, TextPopoverTestingModule, TextPopoverTestingPage, ThrottledClickDirective, ToStringPipe, ToastTestingModule, ToastTestingPage, Toasts, TokenScope, ToolbarComponent, ToolbarToken, TranslatablePipe, TranslateContextPipe, TranslateContextService, TreeItemEntityUtils, TruncHtmlPipe, TruncTextPipe, TruncateHtmlPipe, UploadFile, UploadFileComponent, UploadFilePopover, UploadFileTestingModule, UploadFileTestingPage, UriUtils, UrlUtils, UserEventModule, UserEventNotificationIcon, UserEventNotificationList, UserEventNotificationModal, UserEventTestService, UserEventTestingModule, UserEventTestingPage, UserSettings, UserToken, UserTokenTable, UsersPage, UsersUtils, ValueFormatPipe, VersionUtils, accountToString, adaptValueToControl, addValueInArray, arrayDistinct, arrayResize, arraySize, asInputElement, base64ArrayBuffer, booleanToString, canHaveFocus, capitalizeFirstLetter, chainPromises, changeCaseToUnderscore, clearValueInArray, collectByProperty, compareVersionNumbers, computeDecimalDegrees, computeDecimalPart, copyEntity2Form, createPromiseEvent, createPromiseEventEmitter, departmentToString, departmentsToString, disableAndClearControl, disableAndClearControls, disableControl, disableControls, emitPromiseEvent, enableControl, enableControls, enableRxStateProdMode, entityToString, equals, equalsOrNil, escapeRegExp, expansionAnimation, fadeInAnimation, fadeInOutAnimation, fadeInSlowAnimation, filterFalse, filterFormErrors, filterFormErrorsByPath, filterFormErrorsByPrefix, filterNotNil, filterNumberInput, filterTrue, findParentWithClass, firstArrayValue, firstFalse, firstFalsePromise, firstNotNil, firstNotNilPromise, firstTrue, firstTruePromise, focusInput, focusNextInput, focusPreviousInput, formatLatLong, formatLatitude, formatLongitude, fromDateISOString, fromScrollEndEvent, fromUnixMsTimestamp, fromUnixTimestamp, getCaretPosition, getColorContrast, getColorShade, getColorTint, getControlFromPath, getFocusableInputElements, getFormErrors, getFormValueFromEntity, getInputRangeFromCaretIndex, getInputSelectionRangesFromMask, getProperty, getPropertyByPath, getPropertyByPathAsString, getRandomImage, getRandomImageWithCredit, getUserAgent, hexToRgb, hexToRgbArray, initArrayControlsFromValues, interpolateString, intersectArrays, isAndroid, isBlankString, isCapacitor, isChrome, isControlHasInput, isEdge, isEmptyArray, isEntityService, isFirefox, isIOS, isInputElement, isInstanceOf, isInt, isIpad, isMacOS, isMobile, isNil, isNilOrBlank, isNilOrNaN, isNotEmptyArray, isNotNil, isNotNilBoolean, isNotNilObject, isNotNilOrBlank, isNotNilOrNaN, isNotNilString, isNumber, isNumberRange, isOnFieldMode, isPrint, isProgressEvent, isPromise, isResponseEvent, isSafari, isSameVersion, isStartableService, isTouchUi, isVersionCompatible, isWindows, joinProperties, joinPropertiesPath, lastArrayValue, logFormErrors, markAllAsTouched, markAsUntouched, markControlAsTouched, markFormGroupAsTouched, maskitoAutoSelectByMaskPattern, maskitoPrefixPlugin, matchMedia, matchUpperCase, mergeLoadResult, mixHex, moveInputCaretToSeparator, newArray, noHtml, noTrailingSlash, notNilOrDefault, nullIfNilOrBlank, nullIfUndefined, numberOrNilAttribute, numberToString, parseLatitudeOrLongitude, propertiesPathComparator, propertyComparator, propertyPathComparator, referentialToString, referentialsToString, remove, removeAll, removeDiacritics, removeDuplicatesFromArray, removeEnd, removeValueInArray, replaceAll, resetCalculatedValue, resizeArray, rgbArrayToHex, rgbToHex, round, scrollFactory, selectInputContent, selectInputContentFromEvent, selectInputRange, setCalculatedValue, setControlEnabled, setControlRequired, setControlsEnabled, setFormErrors, setPropertyByPath, setTabIndex, sleep, slideDownAnimation, slideInAnimation, slideInOutAnimation, slideUpDownAnimation, sort, splitArrayInChunks, splitById, splitByProperty, splitDegreesToDDArray, splitDegreesToDDMMArray, splitDegreesToDDMMSSArray, startsWithUpperCase, suggestFromArray, suggestFromStringArray, tabindexComparator, testUserAgent, toBoolean, toDateISOString, toDuration, toFloat, toInt, toNotNil, toNumber, trimEmptyToNull, truncateHtml, uncapitalizeFirstLetter, undefinedIfNull, underscoreToChangeCase, updateValueAndValidity, waitFor, waitForFalse, waitForTrue, waitIdle, waitWhilePending };
|
|
51500
|
+
export { APP_ABOUT_DEVELOPERS, APP_ABOUT_PARTNERS, APP_CONFIG_OPTIONS, APP_DEBUG_DATA_SERVICE, APP_FEED_SERVICE, APP_FORM_ERROR_I18N_KEYS, APP_GRAPHQL_FRAGMENTS, APP_GRAPHQL_TYPE_POLICIES, APP_HOME_BUTTONS, APP_HOME_CONFIG, APP_HOTKEYS_CONFIG, APP_JOB_PROGRESSION_SERVICE, APP_LOCALES, APP_LOCAL_SETTINGS, APP_LOCAL_SETTINGS_OPTIONS, APP_LOCAL_STORAGE_TYPE_POLICIES, APP_LOGGING_SERVICE, APP_MENU_ITEMS, APP_MENU_OPTIONS, APP_NAMED_FILTER_SERVICE, APP_PROGRESS_BAR_SERVICE, APP_SETTINGS_MENU_ITEMS, APP_STORAGE, APP_STORAGE_EXPLORER_PROTECTED_KEYS, APP_TESTING_PAGES, APP_USER_EVENT_LIST_INFINITE_SCROLL_THRESHOLD, APP_USER_EVENT_SERVICE, APP_USER_SETTINGS_OPTIONS, APP_USER_TOKEN_SCOPES, AboutModal, AbstractNamedFilterService, AbstractSelectionModelPipe, AbstractTableSelectionPipe, AbstractUserEventService, Account, AccountPage, AccountService, AccountToStringPipe, AccountUtils, ActionsColumnComponent, AdditionalFields, AdminModule, AdminRoutingModule, AdminUsersModule, Alerts, AndroidOsEnvironment, AppAboutModalModule, AppAccountModule, AppAsyncTable, AppAuthForm, AppAuthModal, AppAuthModule, AppChangePasswordModule, AppChangePasswordPage, AppEditor, AppEditorOptions, AppEntityEditor, AppEntityEditorModal, AppEntityEditorModalOptions, AppEntityFormModule, AppForm, AppFormArray, AppFormButtonsBarModule, AppFormContainer, AppFormField, AppFormModule, AppFormProvider, AppFormUtils, AppGestureConfig, AppGraphQLModule, AppHomePageModule, AppIconComponent, AppIconModule, AppImageGalleryComponent, AppInMemoryTable, AppInstallUpgradeCard, AppInstallUpgradeCardModule, AppListForm, AppListFormModule, AppLoadingSpinner, AppMarkdownContent, AppMarkdownModal, AppMenuModule, AppNullForm, AppPropertiesForm, AppPropertiesFormModule, AppPropertiesTable, AppPropertiesUtils, AppPropertyUtils, AppRegisterModule, AppResetPasswordModal, AppRowField, AppSelectPeerModule, AppSelectUsersModal, AppSettingsPageModule, AppTabEditor, AppTabEditorOptions, AppTable, AppTableModule, AppTableUtils, AppTextFormModule, AppTextPopoverModule, AppUpdateOfflineModeCard, AppUpdateOfflineModeCardModule, AppValidatorService, AppendQueryParamsPipePipe, ArrayDistinctPipe, ArrayFilterPipe, ArrayFindByPropertyPipe, ArrayFirstPipe, ArrayFormTestPage, ArrayIncludesPipe, ArrayJoinPipe, ArrayLastPipe, ArrayLengthPipe, ArrayMapPipe, ArrayPluckPipe, ArraySlicePipe, ArraySortPipe, AsAnyPipe, AsArrayPipe, AsBooleanPipe, AsFloatLabelTypePipe, AsObservablePipe, AudioProvider, AudioTestingModule, AudioTestingPage, AuthGuardService, AutoResizeDirective, AutoTitleDirective, AutocompleteTestPage, AutofocusDirective, BadgeDirective, BadgeNumberPipe, Base58, BaseEntityService, BaseGraphqlService, BaseGraphqlServiceOptions, BaseReferential, Beans, BooleanFormatPipe, BooleanTestPage, CORE_CONFIG_OPTIONS, CORE_TESTING_PAGES, CapitalizePipe, CellValueChangeListener, ChangePasswordForm, ChipsTestPage, Color, ColorScale, ComponentDirtyGuard, ConfigFragments, ConfigService, Configuration, CoreModule, CorePipesModule, CoreTestingModule, CryptoService, CsvUtils, DATE_ISO_PATTERN, DATE_MATCH_REGEXP, DATE_PATTERN, DATE_UNIX_MS_TIMESTAMP, DATE_UNIX_TIMESTAMP, DEFAULT_JOIN_ARRAY_VALUES_SEPARATOR, DEFAULT_JOIN_PROPERTIES_SEPARATOR, DEFAULT_MENU_SHOW_WHEN, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLACEHOLDER_CHAR, DEFAULT_REQUIRED_COLUMNS, DateDiffDurationPipe, DateFormatPipe, DateFormatService, DateFromNowPipe, DateFromPipe, DateShortTestPage, DateTestPage, DateTimeTestPage, DateUtils, DebugComponent, Department, DepartmentToStringPipe, DisplayWithPipe, DragAndDropDirective, DurationPipe, DurationTestPage, ED25519_SEED_LENGTH, EMPTY_PLACEHOLDER_CHAR, EMPTY_PLACEHOLDER_CHAR_REGEXP_GLOBAL, ENTITIES_STORAGE_KEY_PREFIX, ENVIRONMENT, EmptyArrayPipe, EntitiesAsyncTableDataSource, EntitiesStorage, EntitiesTableDataSource, Entity, EntityClass, EntityClasses, EntityFilter, EntityFilterUtils, EntityMetadataComponent, EntityStore, EntityUtils, Environment, EnvironmentHttpLoader, EnvironmentLoader, ErrorCodes, EvenPipe, FeedDirective, FeedModule, FeedPage, FeedService, FeedsComponent, FileResponse, FileService, FileSizePipe, FilesUtils, FirstFalsePipe, FirstPipe, FirstTruePipe, FormArrayHelper, FormArrayTestModule, FormButtonsBarComponent, FormButtonsBarToken, FormErrorPipe, FormErrorTranslatePipe, FormErrorTranslator, FormFieldDefinitionUtils, FormFieldValuesHolder, FormGetArrayPipe, FormGetControlPipe, FormGetGroupPipe, FormGetPipe, FormGetValuePipe, GalleryTestPage, GeolocationUtils, GraphqlService, HAMMER_PRESS_TIME, HAMMER_TAP_TIME, HighlightPipe, HomePage, Hotkeys, HotkeysDialogComponent, IMAGE_DEFAULTS, IPosition, ImageAttachment, ImageAttachmentFilter, ImageAttachmentService, ImageGalleryModule, ImageGalleryTestingModule, ImageModule, ImageService, ImagesUtils, InMemoryEntitiesService, IsAllSelectedPipe, IsEmptySelectionPipe, IsLoginAccountPipe, IsMultipleSelectionPipe, IsNilOrBlankPipe, IsNilOrNaNPipe, IsNilPipe, IsNotAllSelectedPipe, IsNotEmptySelectionPipe, IsNotNilOrBlankPipe, IsNotNilOrNaNPipe, IsNotNilPipe, IsOnDeskPipe, IsOnFieldPipe, IsSelectedPipe, IsSingleSelectionPipe, IsValidDatePipe, JobModule, JobProgression, JobProgressionComponent, JobProgressionIcon, JobProgressionList, JobProgressionService, JobProgressionTestService, JobProgressionTestingPage, JobTestingModule, JobUtils, JsonFeedUtils, JsonUtils, KEYBOARD_HIDE_DELAY_MS, LAT_LONG_PATTERNS, LAT_LONG_PATTERN_MAX_DECIMALS, LAT_LONG_VALUE_MAX_DECIMALS, LatLongFormatPipe, LatLongTestPage, LatitudeFormatPipe, LocalSettingsService, LogLevel, LogUtils, Logger, LoggingService, LoggingServiceModule, LongitudeFormatPipe, MASKS, MASK_RANGES, MAT_FORM_FIELD_DEFAULT_APPEARANCE, MAT_FORM_FIELD_DEFAULT_SUBSCRIPT_SIZING, MINIFY_ENTITY_FOR_LOCAL_STORAGE, MINIFY_ENTITY_FOR_POD, MOMENT_NO_TIME_PROPERTY, MapGetPipe, MapKeysPipe, MapPipe, MapToPipe, MapValuesPipe, MarkdownDirective, MarkdownService, MarkdownTestPage, MarkdownTestingModule, MarkdownUtils, MaskitoPlaceholderPipe, MaskitoTestPage, MatAutocompleteConfigHolder, MatAutocompleteField, MatAutocompleteFieldUtils, MatBadgeTestPage, MatBooleanField, MatChipsField, MatColorPipe, MatCommonTestPage, MatDate, MatDateShort, MatDateTime, MatDuration, MatLatLongField, MatLatLongFieldInput, MatPaginatorI18n, MatStepperI18n, MatSwipeField, MaterialTestingModule, MathAbsPipe, MenuComponent, MenuItem, MenuItems, MenuOptions, MenuService, MenuTestingModule, MenuTestingPage, Message, MessageFilter, MessageForm, MessageModal, MessageModule, MessageService, MessageTypeList, MessageTypes, MimeTypes, ModalToolbarComponent, NETWORK_DEFAULT_CONNECTION_TIMEOUT, NamedFilter, NamedFilterFilter, NamedFilterSelector, NamedFilterSelectorTestingModule, NamedFilterSelectorTestingPage, NavActionsColumnComponent, NetworkService, NetworkUtils, NewTokenForm, NewTokenModal, NgInitDirective, NgVarDirective, NoHtmlPipe, NotEmptyArrayPipe, NumberFormatPipe, ObservableTestPage, OddPipe, OtherMenuTestingPage, PEER_URL_REGEXP, PLUS_PLACEHOLDER_CHAR_REGEXP_GLOBAL, PRINT_ID_QUERY_PARAM, PRINT_LOADING_STORAGE_KEY_PREFIX, PRIORITIZED_AUTHORITIES, PUBKEY_REGEXP, Peer, Person, PersonFilter, PersonFragments, PersonService, PersonToStringPipe, PersonUtils, PersonValidatorService, PlatformService, PrintService, ProgressBarService, ProgressInterceptor, PropertiesFormTestPage, PropertiesFormTestingModule, PropertyEntity, PropertyEntityFilter, PropertyEntityValidator, PropertyFormatPipe, PropertyGetPipe, RESERVED_END_COLUMNS, RESERVED_START_COLUMNS, Referential, ReferentialFilter, ReferentialRef, ReferentialToStringPipe, ReferentialUtils, ReferentialValidatorService, ReferentialsToStringPipe, RegExpUtils, RegisterConfirmPage, RegisterForm, RegisterModal, ResizableComponent, ResizableDirective, ResizableModule, RoundPipe, RxStateComputed, RxStateModule, RxStateOutput, RxStateProperty, RxStateRegister, RxStateSelect, SCRYPT_PARAMS, SETTINGS_COMPACT_ROWS, SETTINGS_DISPLAY_COLUMNS, SETTINGS_FILTER, SETTINGS_PAGE_SIZE, SETTINGS_SORTED_COLUMN, SETTINGS_STORAGE_KEY, SETTINGS_TRANSIENT_PROPERTIES, SHARED_MATERIAL_TESTING_PAGES, SHARED_STORAGE_TESTING_PAGES, SHARED_TESTING_PAGES, SOCIAL_CONFIG_OPTIONS, SOCIAL_TESTING_PAGES, SPACE_PLACEHOLDER_CHAR, SPACE_PLACEHOLDER_CHAR_REGEXP_GLOBAL, SafeHtmlPipe, SafeStylePipe, SelectPeerModal, SelectionLengthPipe, ServerErrorCodes, SettingsPage, SharedAsyncValidators, SharedBadgeModule, SharedDebugModule, SharedDirectivesModule, SharedFormArrayValidators, SharedFormGroupValidators, SharedHotkeysModule, SharedMarkdownModule, SharedMatAutocompleteModule, SharedMatBooleanModule, SharedMatChipsModule, SharedMatDateTimeModule, SharedMatDurationModule, SharedMatLatLongModule, SharedMatSwipeModule, SharedMaterialModule, SharedModule, SharedNamedFilterModule, SharedPipesModule, SharedRoutingModule, SharedTestingModule, SharedTestsPage, SharedToolbarModule, SharedValidators, SocialErrorCodes, SocialModule, SocialModuleOptionsToken, SocialTestingModule, Software, SplitArrayInChunksPipe, StartableService, StatusById, StatusIds, StatusList, StorageDrivers, StorageExplorerComponent, StorageExplorerModule, StorageExplorerTestingModule, StorageExplorerTestingRoutingModule, StorageService, StrIncludesPipe, StrLengthPipe, StrReplacePipe, SubMenuTabDirective, SwipeTestPage, TABLE_SETTINGS_ENUM, TOOLBAR_HEADER_ID, Table2TestPage, TableSelectColumnsComponent, TableTestPage, TableTestingModule, TableValidatorService, TextForm, TextFormTestingModule, TextFormTestingPage, TextPopover, TextPopoverTestingModule, TextPopoverTestingPage, ThrottledClickDirective, ToStringPipe, ToastTestingModule, ToastTestingPage, Toasts, TokenScope, ToolbarComponent, ToolbarToken, TranslatablePipe, TranslateContextPipe, TranslateContextService, TreeItemEntityUtils, TruncHtmlPipe, TruncTextPipe, TruncateHtmlPipe, UploadFile, UploadFileComponent, UploadFilePopover, UploadFileTestingModule, UploadFileTestingPage, UriUtils, UrlUtils, UserEventModule, UserEventNotificationIcon, UserEventNotificationList, UserEventNotificationModal, UserEventTestService, UserEventTestingModule, UserEventTestingPage, UserSettings, UserToken, UserTokenTable, UsersPage, UsersUtils, ValueFormatPipe, VersionUtils, accountToString, adaptValueToControl, addValueInArray, arrayDistinct, arrayResize, arraySize, asInputElement, base64ArrayBuffer, booleanToString, canHaveFocus, capitalizeFirstLetter, chainPromises, changeCaseToUnderscore, clearValueInArray, collectByProperty, compareVersionNumbers, computeDecimalDegrees, computeDecimalPart, copyEntity2Form, createPromiseEvent, createPromiseEventEmitter, departmentToString, departmentsToString, disableAndClearControl, disableAndClearControls, disableControl, disableControls, emitPromiseEvent, enableControl, enableControls, enableRxStateProdMode, entityToString, equals, equalsOrNil, escapeRegExp, expansionAnimation, fadeInAnimation, fadeInOutAnimation, fadeInSlowAnimation, filterFalse, filterFormErrors, filterFormErrorsByPath, filterFormErrorsByPrefix, filterNotNil, filterNumberInput, filterTrue, findParentWithClass, firstArrayValue, firstFalse, firstFalsePromise, firstNotNil, firstNotNilPromise, firstTrue, firstTruePromise, focusInput, focusNextInput, focusPreviousInput, formatLatLong, formatLatitude, formatLongitude, fromDateISOString, fromScrollEndEvent, fromUnixMsTimestamp, fromUnixTimestamp, getCaretPosition, getColorContrast, getColorShade, getColorTint, getControlFromPath, getFocusableInputElements, getFormErrors, getFormValueFromEntity, getInputRangeFromCaretIndex, getInputSelectionRangesFromMask, getProperty, getPropertyByPath, getPropertyByPathAsString, getRandomImage, getRandomImageWithCredit, getUserAgent, hexToRgb, hexToRgbArray, initArrayControlsFromValues, interpolateString, intersectArrays, isAndroid, isBlankString, isCapacitor, isChrome, isControlHasInput, isEdge, isEmptyArray, isEntityService, isFirefox, isIOS, isInputElement, isInstanceOf, isInt, isIpad, isMacOS, isMobile, isNil, isNilOrBlank, isNilOrNaN, isNotEmptyArray, isNotNil, isNotNilBoolean, isNotNilObject, isNotNilOrBlank, isNotNilOrNaN, isNotNilString, isNumber, isNumberRange, isOnFieldMode, isPrint, isProgressEvent, isPromise, isResponseEvent, isSafari, isSameVersion, isStartableService, isTouchUi, isVersionCompatible, isWindows, joinProperties, joinPropertiesPath, lastArrayValue, logFormErrors, markAllAsTouched, markAsUntouched, markControlAsTouched, markFormGroupAsTouched, maskitoAutoSelectByMaskPattern, maskitoPrefixPlugin, matchMedia, matchUpperCase, mergeLoadResult, mixHex, moveInputCaretToSeparator, newArray, noHtml, noTrailingSlash, notNilOrDefault, nullIfNilOrBlank, nullIfUndefined, numberOrNilAttribute, numberToString, parseLatitudeOrLongitude, propertiesPathComparator, propertyComparator, propertyPathComparator, referentialToString, referentialsToString, remove, removeAll, removeDiacritics, removeDuplicatesFromArray, removeEnd, removeValueInArray, replaceAll, resetCalculatedValue, resizeArray, rgbArrayToHex, rgbToHex, round, scrollFactory, selectInputContent, selectInputContentFromEvent, selectInputRange, setCalculatedValue, setControlEnabled, setControlRequired, setControlsEnabled, setFormErrors, setPropertyByPath, setTabIndex, sleep, slideDownAnimation, slideInAnimation, slideInOutAnimation, slideUpDownAnimation, sort, splitArrayInChunks, splitById, splitByProperty, splitDegreesToDDArray, splitDegreesToDDMMArray, splitDegreesToDDMMSSArray, startsWithUpperCase, suggestFromArray, suggestFromStringArray, tabindexComparator, testUserAgent, toBoolean, toDateISOString, toDuration, toFloat, toInt, toNotNil, toNumber, trimEmptyToNull, truncateHtml, uncapitalizeFirstLetter, undefinedIfNull, underscoreToChangeCase, updateValueAndValidity, waitFor, waitForFalse, waitForTrue, waitIdle, waitWhilePending };
|
|
51564
51501
|
//# sourceMappingURL=sumaris-net.ngx-components.mjs.map
|