@stemy/ngx-utils 11.0.8 → 11.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +27 -27
- package/bundles/stemy-ngx-utils.umd.js +22 -7
- package/bundles/stemy-ngx-utils.umd.js.map +1 -1
- package/bundles/stemy-ngx-utils.umd.min.js +1 -1
- package/bundles/stemy-ngx-utils.umd.min.js.map +1 -1
- package/esm2015/ngx-utils/common-types.js +2 -1
- package/esm2015/ngx-utils/ngx-utils.module.js +6 -2
- package/esm2015/ngx-utils/services/config.service.js +8 -4
- package/esm2015/ngx-utils/services/promise.service.js +4 -1
- package/esm2015/ngx-utils/services/static-language.service.js +9 -7
- package/esm2015/ngx-utils/utils/unique.utils.js +1 -1
- package/esm2015/public_api.js +2 -2
- package/fesm2015/stemy-ngx-utils.js +22 -8
- package/fesm2015/stemy-ngx-utils.js.map +1 -1
- package/ngx-utils/common-types.d.ts +2 -0
- package/ngx-utils/services/config.service.d.ts +3 -1
- package/ngx-utils/services/promise.service.d.ts +5 -4
- package/ngx-utils/services/static-language.service.d.ts +3 -2
- package/package.json +1 -1
- package/public_api.d.ts +1 -1
- package/stemy-ngx-utils.metadata.json +1 -1
- package/esm5/ngx-utils/common-types.js +0 -553
- package/esm5/ngx-utils/components/dynamic-table/dynamic-table.component.js +0 -285
- package/esm5/ngx-utils/components/pagination-menu/pagination-menu.component.js +0 -198
- package/esm5/ngx-utils/components/unordered-list/unordered-list.component.js +0 -110
- package/esm5/ngx-utils/directives/async-method.directive.js +0 -105
- package/esm5/ngx-utils/directives/background.directive.js +0 -91
- package/esm5/ngx-utils/directives/dynamic-table-template.directive.js +0 -34
- package/esm5/ngx-utils/directives/icon.directive.js +0 -101
- package/esm5/ngx-utils/directives/ngx-template-outlet.directive.js +0 -182
- package/esm5/ngx-utils/directives/pagination-item.directive.js +0 -70
- package/esm5/ngx-utils/directives/pagination.directive.js +0 -148
- package/esm5/ngx-utils/directives/resource-if.directive.js +0 -97
- package/esm5/ngx-utils/directives/sticky.directive.js +0 -93
- package/esm5/ngx-utils/directives/unordered-list-item.directive.js +0 -143
- package/esm5/ngx-utils/directives/unordered-list-template.directive.js +0 -54
- package/esm5/ngx-utils/ngx-utils.module.js +0 -205
- package/esm5/ngx-utils/pipes/chunk.pipe.js +0 -41
- package/esm5/ngx-utils/pipes/entries.pipe.js +0 -54
- package/esm5/ngx-utils/pipes/extra-item-properties.pipe.js +0 -51
- package/esm5/ngx-utils/pipes/filter.pipe.js +0 -65
- package/esm5/ngx-utils/pipes/find.pipe.js +0 -51
- package/esm5/ngx-utils/pipes/format-number.pipe.js +0 -44
- package/esm5/ngx-utils/pipes/get-offset.pipe.js +0 -31
- package/esm5/ngx-utils/pipes/get-type.pipe.js +0 -28
- package/esm5/ngx-utils/pipes/group-by.pipe.js +0 -48
- package/esm5/ngx-utils/pipes/is-type.pipe.js +0 -30
- package/esm5/ngx-utils/pipes/join.pipe.js +0 -34
- package/esm5/ngx-utils/pipes/keys.pipe.js +0 -35
- package/esm5/ngx-utils/pipes/map.pipe.js +0 -52
- package/esm5/ngx-utils/pipes/max.pipe.js +0 -45
- package/esm5/ngx-utils/pipes/min.pipe.js +0 -45
- package/esm5/ngx-utils/pipes/reduce.pipe.js +0 -55
- package/esm5/ngx-utils/pipes/remap.pipe.js +0 -51
- package/esm5/ngx-utils/pipes/replace.pipe.js +0 -32
- package/esm5/ngx-utils/pipes/reverse.pipe.js +0 -38
- package/esm5/ngx-utils/pipes/round.pipe.js +0 -44
- package/esm5/ngx-utils/pipes/safe-html.pipe.js +0 -54
- package/esm5/ngx-utils/pipes/translate.pipe.js +0 -111
- package/esm5/ngx-utils/pipes/values.pipe.js +0 -35
- package/esm5/ngx-utils/plugins/resize-event.plugin.js +0 -122
- package/esm5/ngx-utils/plugins/scroll-event.plugin.js +0 -110
- package/esm5/ngx-utils/services/acl.service.js +0 -119
- package/esm5/ngx-utils/services/auth.service.js +0 -40
- package/esm5/ngx-utils/services/events.service.js +0 -33
- package/esm5/ngx-utils/services/formatter.service.js +0 -124
- package/esm5/ngx-utils/services/icon.service.js +0 -32
- package/esm5/ngx-utils/services/language.service.js +0 -199
- package/esm5/ngx-utils/services/promise.service.js +0 -123
- package/esm5/ngx-utils/services/state.service.js +0 -271
- package/esm5/ngx-utils/services/storage.service.js +0 -100
- package/esm5/ngx-utils/services/toaster.service.js +0 -100
- package/esm5/ngx-utils/services/universal.service.js +0 -153
- package/esm5/ngx-utils/utils/ajax-request-handler.js +0 -73
- package/esm5/ngx-utils/utils/array.utils.js +0 -182
- package/esm5/ngx-utils/utils/auth.guard.js +0 -205
- package/esm5/ngx-utils/utils/canvas.utils.js +0 -668
- package/esm5/ngx-utils/utils/date.utils.js +0 -91
- package/esm5/ngx-utils/utils/file.utils.js +0 -201
- package/esm5/ngx-utils/utils/loader.utils.js +0 -90
- package/esm5/ngx-utils/utils/math.utils.js +0 -62
- package/esm5/ngx-utils/utils/object.utils.js +0 -513
- package/esm5/ngx-utils/utils/observable.utils.js +0 -30
- package/esm5/ngx-utils/utils/reflect.utils.js +0 -95
- package/esm5/ngx-utils/utils/set.utils.js +0 -48
- package/esm5/ngx-utils/utils/string.utils.js +0 -94
- package/esm5/ngx-utils/utils/timer.utils.js +0 -100
- package/esm5/ngx-utils/utils/unique.utils.js +0 -54
- package/esm5/ngx-utils/utils/vector.js +0 -223
- package/esm5/public_api.js +0 -73
- package/esm5/stemy-ngx-utils.js +0 -11
- package/fesm5/stemy-ngx-utils.js +0 -6709
- package/fesm5/stemy-ngx-utils.js.map +0 -1
- package/typings.d.ts +0 -5
|
@@ -1,513 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc
|
|
4
|
-
*/
|
|
5
|
-
/** @type {?} */
|
|
6
|
-
var defaultPredicate = function () { return true; };
|
|
7
|
-
var ɵ0 = defaultPredicate;
|
|
8
|
-
var ObjectUtils = /** @class */ (function () {
|
|
9
|
-
function ObjectUtils() {
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* @param {?} a
|
|
13
|
-
* @param {?} b
|
|
14
|
-
* @return {?}
|
|
15
|
-
*/
|
|
16
|
-
ObjectUtils.compare = /**
|
|
17
|
-
* @param {?} a
|
|
18
|
-
* @param {?} b
|
|
19
|
-
* @return {?}
|
|
20
|
-
*/
|
|
21
|
-
function (a, b) {
|
|
22
|
-
if ((a === null || b === null) || (typeof a != typeof b)) {
|
|
23
|
-
return null;
|
|
24
|
-
}
|
|
25
|
-
if (typeof a === "string") {
|
|
26
|
-
return (a).localeCompare(b);
|
|
27
|
-
}
|
|
28
|
-
else {
|
|
29
|
-
if (a instanceof Date) {
|
|
30
|
-
a = a.getTime();
|
|
31
|
-
b = b.getTime();
|
|
32
|
-
}
|
|
33
|
-
if (a > b) {
|
|
34
|
-
return 1;
|
|
35
|
-
}
|
|
36
|
-
else if (a < b) {
|
|
37
|
-
return -1;
|
|
38
|
-
}
|
|
39
|
-
return 0;
|
|
40
|
-
}
|
|
41
|
-
};
|
|
42
|
-
/**
|
|
43
|
-
* @param {?} a
|
|
44
|
-
* @param {?} b
|
|
45
|
-
* @return {?}
|
|
46
|
-
*/
|
|
47
|
-
ObjectUtils.equals = /**
|
|
48
|
-
* @param {?} a
|
|
49
|
-
* @param {?} b
|
|
50
|
-
* @return {?}
|
|
51
|
-
*/
|
|
52
|
-
function (a, b) {
|
|
53
|
-
if (a === b)
|
|
54
|
-
return true;
|
|
55
|
-
if (a === null || b === null)
|
|
56
|
-
return false;
|
|
57
|
-
if (a !== a && b !== b)
|
|
58
|
-
return true; // NaN === NaN
|
|
59
|
-
// NaN === NaN
|
|
60
|
-
/** @type {?} */
|
|
61
|
-
var at = typeof a;
|
|
62
|
-
/** @type {?} */
|
|
63
|
-
var bt = typeof b;
|
|
64
|
-
/** @type {?} */
|
|
65
|
-
var length;
|
|
66
|
-
/** @type {?} */
|
|
67
|
-
var key;
|
|
68
|
-
/** @type {?} */
|
|
69
|
-
var keySet;
|
|
70
|
-
if (at == bt && at == "object") {
|
|
71
|
-
if (Array.isArray(a)) {
|
|
72
|
-
if (!Array.isArray(b))
|
|
73
|
-
return false;
|
|
74
|
-
if ((length = a.length) == b.length) {
|
|
75
|
-
for (key = 0; key < length; key++) {
|
|
76
|
-
if (!ObjectUtils.equals(a[key], b[key]))
|
|
77
|
-
return false;
|
|
78
|
-
}
|
|
79
|
-
return true;
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
83
|
-
if (Array.isArray(b)) {
|
|
84
|
-
return false;
|
|
85
|
-
}
|
|
86
|
-
keySet = Object.create(null);
|
|
87
|
-
for (key in a) {
|
|
88
|
-
if (a.hasOwnProperty(key)) {
|
|
89
|
-
if (!ObjectUtils.equals(a[key], b[key])) {
|
|
90
|
-
return false;
|
|
91
|
-
}
|
|
92
|
-
keySet[key] = true;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
for (key in b) {
|
|
96
|
-
if (b.hasOwnProperty(key) && !(key in keySet) && typeof b[key] !== "undefined") {
|
|
97
|
-
return false;
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
return true;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
return false;
|
|
104
|
-
};
|
|
105
|
-
/**
|
|
106
|
-
* @param {?} expr
|
|
107
|
-
* @param {?=} context
|
|
108
|
-
* @return {?}
|
|
109
|
-
*/
|
|
110
|
-
ObjectUtils.evaluate = /**
|
|
111
|
-
* @param {?} expr
|
|
112
|
-
* @param {?=} context
|
|
113
|
-
* @return {?}
|
|
114
|
-
*/
|
|
115
|
-
function (expr, context) {
|
|
116
|
-
if (context === void 0) { context = {}; }
|
|
117
|
-
expr = Object.keys(context).reduce(function (res, key) { return "var " + key + " = this['" + key + "']; " + res; }, expr);
|
|
118
|
-
/** @type {?} */
|
|
119
|
-
var result = null;
|
|
120
|
-
try {
|
|
121
|
-
result = (function () { return eval(expr); }).call(context);
|
|
122
|
-
}
|
|
123
|
-
catch (e) {
|
|
124
|
-
console.log("Failed to parse expression: " + e.message, expr, context);
|
|
125
|
-
}
|
|
126
|
-
return result;
|
|
127
|
-
};
|
|
128
|
-
/**
|
|
129
|
-
* @param {?} obj
|
|
130
|
-
* @return {?}
|
|
131
|
-
*/
|
|
132
|
-
ObjectUtils.empty = /**
|
|
133
|
-
* @param {?} obj
|
|
134
|
-
* @return {?}
|
|
135
|
-
*/
|
|
136
|
-
function (obj) {
|
|
137
|
-
return !obj || Object.keys(obj).length == 0;
|
|
138
|
-
};
|
|
139
|
-
/**
|
|
140
|
-
* @param {?} obj
|
|
141
|
-
* @param {?} cb
|
|
142
|
-
* @return {?}
|
|
143
|
-
*/
|
|
144
|
-
ObjectUtils.iterate = /**
|
|
145
|
-
* @param {?} obj
|
|
146
|
-
* @param {?} cb
|
|
147
|
-
* @return {?}
|
|
148
|
-
*/
|
|
149
|
-
function (obj, cb) {
|
|
150
|
-
if (!obj)
|
|
151
|
-
return;
|
|
152
|
-
/** @type {?} */
|
|
153
|
-
var keys = Array.isArray(obj) ? Array.from(obj.keys()) : Object.keys(obj);
|
|
154
|
-
keys.forEach(
|
|
155
|
-
// @dynamic
|
|
156
|
-
function (key) {
|
|
157
|
-
cb(obj[key], key);
|
|
158
|
-
});
|
|
159
|
-
};
|
|
160
|
-
/**
|
|
161
|
-
* @param {?} obj
|
|
162
|
-
* @param {?} key
|
|
163
|
-
* @param {?=} defaultValue
|
|
164
|
-
* @param {?=} treeFallback
|
|
165
|
-
* @return {?}
|
|
166
|
-
*/
|
|
167
|
-
ObjectUtils.getValue = /**
|
|
168
|
-
* @param {?} obj
|
|
169
|
-
* @param {?} key
|
|
170
|
-
* @param {?=} defaultValue
|
|
171
|
-
* @param {?=} treeFallback
|
|
172
|
-
* @return {?}
|
|
173
|
-
*/
|
|
174
|
-
function (obj, key, defaultValue, treeFallback) {
|
|
175
|
-
if (treeFallback === void 0) { treeFallback = false; }
|
|
176
|
-
key = key || "";
|
|
177
|
-
/** @type {?} */
|
|
178
|
-
var keys = key.split(".");
|
|
179
|
-
/** @type {?} */
|
|
180
|
-
var curKey = "";
|
|
181
|
-
do {
|
|
182
|
-
curKey += keys.shift();
|
|
183
|
-
if (ObjectUtils.isDefined(obj) && ObjectUtils.isDefined(obj[curKey]) && (typeof obj[curKey] === "object" || !keys.length)) {
|
|
184
|
-
obj = obj[curKey];
|
|
185
|
-
curKey = "";
|
|
186
|
-
}
|
|
187
|
-
else if (!keys.length) {
|
|
188
|
-
defaultValue = typeof defaultValue == "undefined" ? key.replace(new RegExp(curKey + "$"), "{" + curKey + "}") : defaultValue;
|
|
189
|
-
obj = treeFallback ? obj || defaultValue : defaultValue;
|
|
190
|
-
}
|
|
191
|
-
else {
|
|
192
|
-
curKey += ".";
|
|
193
|
-
}
|
|
194
|
-
} while (keys.length);
|
|
195
|
-
return obj;
|
|
196
|
-
};
|
|
197
|
-
/**
|
|
198
|
-
* @param {?} target
|
|
199
|
-
* @param {?} source
|
|
200
|
-
* @param {?} path
|
|
201
|
-
* @return {?}
|
|
202
|
-
*/
|
|
203
|
-
ObjectUtils.mapToPath = /**
|
|
204
|
-
* @param {?} target
|
|
205
|
-
* @param {?} source
|
|
206
|
-
* @param {?} path
|
|
207
|
-
* @return {?}
|
|
208
|
-
*/
|
|
209
|
-
function (target, source, path) {
|
|
210
|
-
if (typeof source === "undefined")
|
|
211
|
-
return target;
|
|
212
|
-
if (path.length == 0)
|
|
213
|
-
return source;
|
|
214
|
-
/** @type {?} */
|
|
215
|
-
var key = path.shift();
|
|
216
|
-
if (key == "*") {
|
|
217
|
-
if (ObjectUtils.isArray(source)) {
|
|
218
|
-
target = ObjectUtils.isArray(target) ? target : [];
|
|
219
|
-
return source.map(function (item, index) {
|
|
220
|
-
return ObjectUtils.mapToPath(target[index], item, Array.from(path));
|
|
221
|
-
});
|
|
222
|
-
}
|
|
223
|
-
if (ObjectUtils.isObject(source)) {
|
|
224
|
-
target = ObjectUtils.isObject(target) ? target : {};
|
|
225
|
-
return Object.keys(source).reduce(function (result, key) {
|
|
226
|
-
result[key] = ObjectUtils.mapToPath(target[key], source[key], Array.from(path));
|
|
227
|
-
return result;
|
|
228
|
-
}, {});
|
|
229
|
-
}
|
|
230
|
-
return ObjectUtils.isNullOrUndefined(target) ? null : target;
|
|
231
|
-
}
|
|
232
|
-
/** @type {?} */
|
|
233
|
-
var isArray = ObjectUtils.isArray(target);
|
|
234
|
-
target = ObjectUtils.isObject(target) || isArray ? target : {};
|
|
235
|
-
target[key] = ObjectUtils.mapToPath(target[key], source, Array.from(path));
|
|
236
|
-
return isNaN(key) || isArray ? target : Object.values(target);
|
|
237
|
-
};
|
|
238
|
-
/**
|
|
239
|
-
* @param {?} obj
|
|
240
|
-
* @param {?} predicate
|
|
241
|
-
* @return {?}
|
|
242
|
-
*/
|
|
243
|
-
ObjectUtils.filter = /**
|
|
244
|
-
* @param {?} obj
|
|
245
|
-
* @param {?} predicate
|
|
246
|
-
* @return {?}
|
|
247
|
-
*/
|
|
248
|
-
function (obj, predicate) {
|
|
249
|
-
return ObjectUtils.copyRecursive(null, obj, predicate);
|
|
250
|
-
};
|
|
251
|
-
/**
|
|
252
|
-
* @template T
|
|
253
|
-
* @param {?} obj
|
|
254
|
-
* @return {?}
|
|
255
|
-
*/
|
|
256
|
-
ObjectUtils.copy = /**
|
|
257
|
-
* @template T
|
|
258
|
-
* @param {?} obj
|
|
259
|
-
* @return {?}
|
|
260
|
-
*/
|
|
261
|
-
function (obj) {
|
|
262
|
-
return ObjectUtils.copyRecursive(null, obj);
|
|
263
|
-
};
|
|
264
|
-
/**
|
|
265
|
-
* @template T
|
|
266
|
-
* @param {?} target
|
|
267
|
-
* @param {?} source
|
|
268
|
-
* @param {?=} predicate
|
|
269
|
-
* @return {?}
|
|
270
|
-
*/
|
|
271
|
-
ObjectUtils.assign = /**
|
|
272
|
-
* @template T
|
|
273
|
-
* @param {?} target
|
|
274
|
-
* @param {?} source
|
|
275
|
-
* @param {?=} predicate
|
|
276
|
-
* @return {?}
|
|
277
|
-
*/
|
|
278
|
-
function (target, source, predicate) {
|
|
279
|
-
return ObjectUtils.copyRecursive(target, source, predicate);
|
|
280
|
-
};
|
|
281
|
-
/**
|
|
282
|
-
* @param {?} obj
|
|
283
|
-
* @return {?}
|
|
284
|
-
*/
|
|
285
|
-
ObjectUtils.getType = /**
|
|
286
|
-
* @param {?} obj
|
|
287
|
-
* @return {?}
|
|
288
|
-
*/
|
|
289
|
-
function (obj) {
|
|
290
|
-
/** @type {?} */
|
|
291
|
-
var regex = new RegExp("\\s([a-zA-Z]+)");
|
|
292
|
-
return Object.prototype.toString.call(obj).match(regex)[1].toLowerCase();
|
|
293
|
-
};
|
|
294
|
-
/**
|
|
295
|
-
* @param {?} value
|
|
296
|
-
* @return {?}
|
|
297
|
-
*/
|
|
298
|
-
ObjectUtils.isPrimitive = /**
|
|
299
|
-
* @param {?} value
|
|
300
|
-
* @return {?}
|
|
301
|
-
*/
|
|
302
|
-
function (value) {
|
|
303
|
-
/** @type {?} */
|
|
304
|
-
var type = typeof value;
|
|
305
|
-
return value == null || (type !== "object" && type !== "function");
|
|
306
|
-
};
|
|
307
|
-
/**
|
|
308
|
-
* @param {?} value
|
|
309
|
-
* @return {?}
|
|
310
|
-
*/
|
|
311
|
-
ObjectUtils.isObject = /**
|
|
312
|
-
* @param {?} value
|
|
313
|
-
* @return {?}
|
|
314
|
-
*/
|
|
315
|
-
function (value) {
|
|
316
|
-
return ObjectUtils.getType(value) === "object";
|
|
317
|
-
};
|
|
318
|
-
/**
|
|
319
|
-
* @param {?} value
|
|
320
|
-
* @return {?}
|
|
321
|
-
*/
|
|
322
|
-
ObjectUtils.isDefined = /**
|
|
323
|
-
* @param {?} value
|
|
324
|
-
* @return {?}
|
|
325
|
-
*/
|
|
326
|
-
function (value) {
|
|
327
|
-
return typeof value !== "undefined" && value !== null;
|
|
328
|
-
};
|
|
329
|
-
/**
|
|
330
|
-
* @param {?} value
|
|
331
|
-
* @return {?}
|
|
332
|
-
*/
|
|
333
|
-
ObjectUtils.isNullOrUndefined = /**
|
|
334
|
-
* @param {?} value
|
|
335
|
-
* @return {?}
|
|
336
|
-
*/
|
|
337
|
-
function (value) {
|
|
338
|
-
return typeof value == "undefined" || value == null;
|
|
339
|
-
};
|
|
340
|
-
/**
|
|
341
|
-
* @param {?} value
|
|
342
|
-
* @return {?}
|
|
343
|
-
*/
|
|
344
|
-
ObjectUtils.isString = /**
|
|
345
|
-
* @param {?} value
|
|
346
|
-
* @return {?}
|
|
347
|
-
*/
|
|
348
|
-
function (value) {
|
|
349
|
-
return typeof value === "string";
|
|
350
|
-
};
|
|
351
|
-
/**
|
|
352
|
-
* @param {?} value
|
|
353
|
-
* @return {?}
|
|
354
|
-
*/
|
|
355
|
-
ObjectUtils.isFunction = /**
|
|
356
|
-
* @param {?} value
|
|
357
|
-
* @return {?}
|
|
358
|
-
*/
|
|
359
|
-
function (value) {
|
|
360
|
-
return typeof value === "function";
|
|
361
|
-
};
|
|
362
|
-
/**
|
|
363
|
-
* @param {?} value
|
|
364
|
-
* @return {?}
|
|
365
|
-
*/
|
|
366
|
-
ObjectUtils.isDate = /**
|
|
367
|
-
* @param {?} value
|
|
368
|
-
* @return {?}
|
|
369
|
-
*/
|
|
370
|
-
function (value) {
|
|
371
|
-
return null !== value && !isNaN(value) && "undefined" !== typeof value.getDate;
|
|
372
|
-
};
|
|
373
|
-
/**
|
|
374
|
-
* @param {?} value
|
|
375
|
-
* @return {?}
|
|
376
|
-
*/
|
|
377
|
-
ObjectUtils.isBlob = /**
|
|
378
|
-
* @param {?} value
|
|
379
|
-
* @return {?}
|
|
380
|
-
*/
|
|
381
|
-
function (value) {
|
|
382
|
-
return value instanceof Blob || value instanceof File;
|
|
383
|
-
};
|
|
384
|
-
/**
|
|
385
|
-
* @param {?} value
|
|
386
|
-
* @return {?}
|
|
387
|
-
*/
|
|
388
|
-
ObjectUtils.isBoolean = /**
|
|
389
|
-
* @param {?} value
|
|
390
|
-
* @return {?}
|
|
391
|
-
*/
|
|
392
|
-
function (value) {
|
|
393
|
-
return typeof (value) == typeof (true);
|
|
394
|
-
};
|
|
395
|
-
/**
|
|
396
|
-
* @param {?} value
|
|
397
|
-
* @return {?}
|
|
398
|
-
*/
|
|
399
|
-
ObjectUtils.isNumber = /**
|
|
400
|
-
* @param {?} value
|
|
401
|
-
* @return {?}
|
|
402
|
-
*/
|
|
403
|
-
function (value) {
|
|
404
|
-
if (typeof value !== "number")
|
|
405
|
-
return false;
|
|
406
|
-
/** @type {?} */
|
|
407
|
-
var num = +value;
|
|
408
|
-
if ((num - num) !== 0) {
|
|
409
|
-
return false;
|
|
410
|
-
}
|
|
411
|
-
if (num === value) {
|
|
412
|
-
return true;
|
|
413
|
-
}
|
|
414
|
-
};
|
|
415
|
-
/**
|
|
416
|
-
* @param {?} value
|
|
417
|
-
* @return {?}
|
|
418
|
-
*/
|
|
419
|
-
ObjectUtils.isArray = /**
|
|
420
|
-
* @param {?} value
|
|
421
|
-
* @return {?}
|
|
422
|
-
*/
|
|
423
|
-
function (value) {
|
|
424
|
-
return Array.isArray(value);
|
|
425
|
-
};
|
|
426
|
-
/**
|
|
427
|
-
* @param {?} value
|
|
428
|
-
* @return {?}
|
|
429
|
-
*/
|
|
430
|
-
ObjectUtils.isSet = /**
|
|
431
|
-
* @param {?} value
|
|
432
|
-
* @return {?}
|
|
433
|
-
*/
|
|
434
|
-
function (value) {
|
|
435
|
-
return value instanceof Set;
|
|
436
|
-
};
|
|
437
|
-
/**
|
|
438
|
-
* @param {?} obj
|
|
439
|
-
* @param {?} interFaceObject
|
|
440
|
-
* @return {?}
|
|
441
|
-
*/
|
|
442
|
-
ObjectUtils.checkInterface = /**
|
|
443
|
-
* @param {?} obj
|
|
444
|
-
* @param {?} interFaceObject
|
|
445
|
-
* @return {?}
|
|
446
|
-
*/
|
|
447
|
-
function (obj, interFaceObject) {
|
|
448
|
-
if (!obj)
|
|
449
|
-
return false;
|
|
450
|
-
for (var key in interFaceObject) {
|
|
451
|
-
if (interFaceObject.hasOwnProperty(key) && typeof obj[key] !== interFaceObject[key])
|
|
452
|
-
return false;
|
|
453
|
-
}
|
|
454
|
-
return true;
|
|
455
|
-
};
|
|
456
|
-
/**
|
|
457
|
-
* @param {?} obj
|
|
458
|
-
* @param {?} width
|
|
459
|
-
* @param {?=} chr
|
|
460
|
-
* @return {?}
|
|
461
|
-
*/
|
|
462
|
-
ObjectUtils.pad = /**
|
|
463
|
-
* @param {?} obj
|
|
464
|
-
* @param {?} width
|
|
465
|
-
* @param {?=} chr
|
|
466
|
-
* @return {?}
|
|
467
|
-
*/
|
|
468
|
-
function (obj, width, chr) {
|
|
469
|
-
if (chr === void 0) { chr = "0"; }
|
|
470
|
-
/** @type {?} */
|
|
471
|
-
var str = ObjectUtils.isDefined(obj) ? obj.toString() : "";
|
|
472
|
-
return str.length >= width ? str : new Array(width - str.length + 1).join(chr) + str;
|
|
473
|
-
};
|
|
474
|
-
/**
|
|
475
|
-
* @param {?} target
|
|
476
|
-
* @param {?} source
|
|
477
|
-
* @param {?=} predicate
|
|
478
|
-
* @return {?}
|
|
479
|
-
*/
|
|
480
|
-
ObjectUtils.copyRecursive = /**
|
|
481
|
-
* @param {?} target
|
|
482
|
-
* @param {?} source
|
|
483
|
-
* @param {?=} predicate
|
|
484
|
-
* @return {?}
|
|
485
|
-
*/
|
|
486
|
-
function (target, source, predicate) {
|
|
487
|
-
predicate = predicate || defaultPredicate;
|
|
488
|
-
if (ObjectUtils.isPrimitive(source) || ObjectUtils.isDate(source) || ObjectUtils.isBlob(source))
|
|
489
|
-
return source;
|
|
490
|
-
if (ObjectUtils.isArray(source)) {
|
|
491
|
-
target = ObjectUtils.isArray(target) ? Array.from(target) : [];
|
|
492
|
-
source.forEach(function (item, index) {
|
|
493
|
-
if (!predicate(item, index, target, source))
|
|
494
|
-
return;
|
|
495
|
-
if (target.length > index)
|
|
496
|
-
target[index] = ObjectUtils.copyRecursive(target[index], item, predicate);
|
|
497
|
-
else
|
|
498
|
-
target.push(ObjectUtils.copyRecursive(null, item, predicate));
|
|
499
|
-
});
|
|
500
|
-
return target;
|
|
501
|
-
}
|
|
502
|
-
return Object.keys(source).reduce(function (result, key) {
|
|
503
|
-
if (!predicate(source[key], key, result, source))
|
|
504
|
-
return result;
|
|
505
|
-
result[key] = ObjectUtils.copyRecursive(result[key], source[key], predicate);
|
|
506
|
-
return result;
|
|
507
|
-
}, Object.assign({}, target));
|
|
508
|
-
};
|
|
509
|
-
return ObjectUtils;
|
|
510
|
-
}());
|
|
511
|
-
export { ObjectUtils };
|
|
512
|
-
export { ɵ0 };
|
|
513
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LnV0aWxzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHN0ZW15L25neC11dGlscy8iLCJzb3VyY2VzIjpbIm5neC11dGlscy91dGlscy9vYmplY3QudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7SUFHTSxnQkFBZ0IsR0FBb0IsY0FBTSxPQUFBLElBQUksRUFBSixDQUFJOztBQUVwRDtJQUFBO0lBOE9BLENBQUM7Ozs7OztJQTVPVSxtQkFBTzs7Ozs7SUFBZCxVQUFlLENBQU0sRUFBRSxDQUFNO1FBQ3pCLElBQUksQ0FBQyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLEVBQUU7WUFDdEQsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUNELElBQUksT0FBTyxDQUFDLEtBQUssUUFBUSxFQUFFO1lBQ3ZCLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDL0I7YUFBTTtZQUNILElBQUksQ0FBQyxZQUFZLElBQUksRUFBRTtnQkFDbkIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDaEIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQzthQUNuQjtZQUNELElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDUCxPQUFPLENBQUMsQ0FBQzthQUNaO2lCQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDZCxPQUFPLENBQUMsQ0FBQyxDQUFDO2FBQ2I7WUFDRCxPQUFPLENBQUMsQ0FBQztTQUNaO0lBQ0wsQ0FBQzs7Ozs7O0lBRU0sa0JBQU07Ozs7O0lBQWIsVUFBYyxDQUFNLEVBQUUsQ0FBTTtRQUN4QixJQUFJLENBQUMsS0FBSyxDQUFDO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJ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LE1BQU0sQ0FBQztnQkFBRSxPQUFPLE1BQU0sQ0FBQztZQUNoRSxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsV0FBVyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQzdFLE9BQU8sTUFBTSxDQUFDO1FBQ2xCLENBQUMsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFDTCxrQkFBQztBQUFELENBQUMsQUE5T0QsSUE4T0MiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBGaWx0ZXJQcmVjaWRhdGUgPSAodmFsdWU6IGFueSwga2V5PzogYW55LCB0YXJnZXQ/OiBhbnksIHNvdXJjZT86IGFueSkgPT4gYm9vbGVhbjtcclxuZXhwb3J0IHR5cGUgSXRlcmF0ZUNhbGxiYWNrID0gKHZhbHVlOiBhbnksIGtleT86IGFueSkgPT4gdm9pZDtcclxuXHJcbmNvbnN0IGRlZmF1bHRQcmVkaWNhdGU6IEZpbHRlclByZWNpZGF0ZSA9ICgpID0+IHRydWU7XHJcblxyXG5leHBvcnQgY2xhc3MgT2JqZWN0VXRpbHMge1xyXG5cclxuICAgIHN0YXRpYyBjb21wYXJlKGE6IGFueSwgYjogYW55KTogbnVtYmVyIHtcclxuICAgICAgICBpZiAoKGEgPT09IG51bGwgfHwgYiA9PT0gbnVsbCkgfHwgKHR5cGVvZiBhICE9IHR5cGVvZiBiKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHR5cGVvZiBhID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAoYSkubG9jYWxlQ29tcGFyZShiKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBpZiAoYSBpbnN0YW5jZW9mIERhdGUpIHtcclxuICAgICAgICAgICAgICAgIGEgPSBhLmdldFRpbWUoKTtcclxuICAgICAgICAgICAgICAgIGIgPSBiLmdldFRpbWUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoYSA+IGIpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAxO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGEgPCBiKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gLTE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuIDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBlcXVhbHMoYTogYW55LCBiOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoYSA9PT0gYikgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgaWYgKGEgPT09IG51bGwgfHwgYiA9PT0gbnVsbCkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIGlmIChhICE9PSBhICYmIGIgIT09IGIpIHJldHVybiB0cnVlOyAvLyBOYU4gPT09IE5hTlxyXG4gICAgICAgIGNvbnN0IGF0ID0gdHlwZW9mIGEsIGJ0ID0gdHlwZW9mIGI7XHJcbiAgICAgICAgbGV0IGxlbmd0aDogbnVtYmVyLCBrZXk6IGFueSwga2V5U2V0OiBhbnk7XHJcbiAgICAgICAgaWYgKGF0ID09IGJ0ICYmIGF0ID09IFwib2JqZWN0XCIpIHtcclxuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYSkpIHtcclxuICAgICAgICAgICAgICAgIGlmICghQXJyYXkuaXNBcnJheShiKSkgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgaWYgKChsZW5ndGggPSBhLmxlbmd0aCkgPT0gYi5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICBmb3IgKGtleSA9IDA7IGtleSA8IGxlbmd0aDsga2V5KyspIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFPYmplY3RVdGlscy5lcXVhbHMoYVtrZXldLCBiW2tleV0pKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYikpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBrZXlTZXQgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgZm9yIChrZXkgaW4gYSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChhLmhhc093blByb3BlcnR5KGtleSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFPYmplY3RVdGlscy5lcXVhbHMoYVtrZXldLCBiW2tleV0pKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAga2V5U2V0W2tleV0gPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGZvciAoa2V5IGluIGIpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoYi5oYXNPd25Qcm9wZXJ0eShrZXkpICYmICEoa2V5IGluIGtleVNldCkgJiYgdHlwZW9mIGJba2V5XSAhPT0gXCJ1bmRlZmluZWRcIikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBldmFsdWF0ZShleHByOiBzdHJpbmcsIGNvbnRleHQ6IGFueSA9IHt9KTogYW55IHtcclxuICAgICAgICBleHByID0gT2JqZWN0LmtleXMoY29udGV4dCkucmVkdWNlKChyZXMsIGtleSkgPT4gYHZhciAke2tleX0gPSB0aGlzWycke2tleX0nXTsgJHtyZXN9YCwgZXhwcik7XHJcbiAgICAgICAgbGV0IHJlc3VsdCA9IG51bGw7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgcmVzdWx0ID0gKCgpID0+IGV2YWwoZXhwcikpLmNhbGwoY29udGV4dCk7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgRmFpbGVkIHRvIHBhcnNlIGV4cHJlc3Npb246ICR7ZS5tZXNzYWdlfWAsIGV4cHIsIGNvbnRleHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gcmVzdWx0O1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBlbXB0eShvYmo6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAhb2JqIHx8IE9iamVjdC5rZXlzKG9iaikubGVuZ3RoID09IDA7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGl0ZXJhdGUob2JqOiBhbnksIGNiOiBJdGVyYXRlQ2FsbGJhY2spOiB2b2lkIHtcclxuICAgICAgICBpZiAoIW9iaikgcmV0dXJuO1xyXG4gICAgICAgIGNvbnN0IGtleXM6IGFueVtdID0gQXJyYXkuaXNBcnJheShvYmopID8gQXJyYXkuZnJvbShvYmoua2V5cygpKSA6IE9iamVjdC5rZXlzKG9iaik7XHJcbiAgICAgICAga2V5cy5mb3JFYWNoKFxyXG4gICAgICAgICAgICAvLyBAZHluYW1pY1xyXG4gICAgICAgICAgICBrZXkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY2Iob2JqW2tleV0sIGtleSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBnZXRWYWx1ZShvYmo6IGFueSwga2V5OiBzdHJpbmcsIGRlZmF1bHRWYWx1ZT86IGFueSwgdHJlZUZhbGxiYWNrOiBib29sZWFuID0gZmFsc2UpOiBhbnkge1xyXG4gICAgICAgIGtleSA9IGtleSB8fCBcIlwiO1xyXG4gICAgICAgIGNvbnN0IGtleXMgPSBrZXkuc3BsaXQoXCIuXCIpO1xyXG4gICAgICAgIGxldCBjdXJLZXkgPSBcIlwiO1xyXG4gICAgICAgIGRvIHtcclxuICAgICAgICAgICAgY3VyS2V5ICs9IGtleXMuc2hpZnQoKTtcclxuICAgICAgICAgICAgaWYgKE9iamVjdFV0aWxzLmlzRGVmaW5lZChvYmopICYmIE9iamVjdFV0aWxzLmlzRGVmaW5lZChvYmpbY3VyS2V5XSkgJiYgKHR5cGVvZiBvYmpbY3VyS2V5XSA9PT0gXCJvYmplY3RcIiB8fCAha2V5cy5sZW5ndGgpKSB7XHJcbiAgICAgICAgICAgICAgICBvYmogPSBvYmpbY3VyS2V5XTtcclxuICAgICAgICAgICAgICAgIGN1cktleSA9IFwiXCI7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIWtleXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWUgPSB0eXBlb2YgZGVmYXVsdFZhbHVlID09IFwidW5kZWZpbmVkXCIgPyBrZXkucmVwbGFjZShuZXcgUmVnRXhwKGAke2N1cktleX0kYCksIGB7JHtjdXJLZXl9fWApIDogZGVmYXVsdFZhbHVlO1xyXG4gICAgICAgICAgICAgICAgb2JqID0gdHJlZUZhbGxiYWNrID8gb2JqIHx8IGRlZmF1bHRWYWx1ZSA6IGRlZmF1bHRWYWx1ZTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGN1cktleSArPSBcIi5cIjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gd2hpbGUgKGtleXMubGVuZ3RoKTtcclxuICAgICAgICByZXR1cm4gb2JqO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBtYXBUb1BhdGgodGFyZ2V0OiBhbnksIHNvdXJjZTogYW55LCBwYXRoOiBzdHJpbmdbXSk6IGFueSB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiBzb3VyY2UgPT09IFwidW5kZWZpbmVkXCIpIHJldHVybiB0YXJnZXQ7XHJcbiAgICAgICAgaWYgKHBhdGgubGVuZ3RoID09IDApIHJldHVybiBzb3VyY2U7XHJcbiAgICAgICAgY29uc3Qga2V5OiBhbnkgPSBwYXRoLnNoaWZ0KCk7XHJcbiAgICAgICAgaWYgKGtleSA9PSBcIipcIikge1xyXG4gICAgICAgICAgICBpZiAoT2JqZWN0VXRpbHMuaXNBcnJheShzb3VyY2UpKSB7XHJcbiAgICAgICAgICAgICAgICB0YXJnZXQgPSBPYmplY3RVdGlscy5pc0FycmF5KHRhcmdldCkgPyB0YXJnZXQgOiBbXTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBzb3VyY2UubWFwKChpdGVtLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBPYmplY3RVdGlscy5tYXBUb1BhdGgodGFyZ2V0W2luZGV4XSwgaXRlbSwgQXJyYXkuZnJvbShwYXRoKSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoT2JqZWN0VXRpbHMuaXNPYmplY3Qoc291cmNlKSkge1xyXG4gICAgICAgICAgICAgICAgdGFyZ2V0ID0gT2JqZWN0VXRpbHMuaXNPYmplY3QodGFyZ2V0KSA/IHRhcmdldCA6IHt9O1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHNvdXJjZSkucmVkdWNlKChyZXN1bHQsIGtleSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdFtrZXldID0gT2JqZWN0VXRpbHMubWFwVG9QYXRoKHRhcmdldFtrZXldLCBzb3VyY2Vba2V5XSwgQXJyYXkuZnJvbShwYXRoKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgICAgICAgICAgICAgIH0sIHt9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0VXRpbHMuaXNOdWxsT3JVbmRlZmluZWQodGFyZ2V0KSA/IG51bGwgOiB0YXJnZXQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGlzQXJyYXkgPSBPYmplY3RVdGlscy5pc0FycmF5KHRhcmdldCk7XHJcbiAgICAgICAgdGFyZ2V0ID0gT2JqZWN0VXRpbHMuaXNPYmplY3QodGFyZ2V0KSB8fCBpc0FycmF5ID8gdGFyZ2V0IDoge307XHJcbiAgICAgICAgdGFyZ2V0W2tleV0gPSBPYmplY3RVdGlscy5tYXBUb1BhdGgodGFyZ2V0W2tleV0sIHNvdXJjZSwgQXJyYXkuZnJvbShwYXRoKSk7XHJcbiAgICAgICAgcmV0dXJuIGlzTmFOKGtleSkgfHwgaXNBcnJheSA/IHRhcmdldCA6IE9iamVjdC52YWx1ZXModGFyZ2V0KTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgZmlsdGVyKG9iajogYW55LCBwcmVkaWNhdGU6IEZpbHRlclByZWNpZGF0ZSk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIE9iamVjdFV0aWxzLmNvcHlSZWN1cnNpdmUobnVsbCwgb2JqLCBwcmVkaWNhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBjb3B5PFQ+KG9iajogVCk6IFQge1xyXG4gICAgICAgIHJldHVybiBPYmplY3RVdGlscy5jb3B5UmVjdXJzaXZlKG51bGwsIG9iaik7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGFzc2lnbjxUPih0YXJnZXQ6IFQsIHNvdXJjZTogYW55LCBwcmVkaWNhdGU/OiBGaWx0ZXJQcmVjaWRhdGUpOiBUIHtcclxuICAgICAgICByZXR1cm4gT2JqZWN0VXRpbHMuY29weVJlY3Vyc2l2ZSh0YXJnZXQsIHNvdXJjZSwgcHJlZGljYXRlKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgZ2V0VHlwZShvYmo6IGFueSk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKFwiXFxcXHMoW2EtekEtWl0rKVwiKTtcclxuICAgICAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG9iaikubWF0Y2gocmVnZXgpWzFdLnRvTG93ZXJDYXNlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGlzUHJpbWl0aXZlKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCB0eXBlID0gdHlwZW9mIHZhbHVlO1xyXG4gICAgICAgIHJldHVybiB2YWx1ZSA9PSBudWxsIHx8ICh0eXBlICE9PSBcIm9iamVjdFwiICYmIHR5cGUgIT09IFwiZnVuY3Rpb25cIik7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGlzT2JqZWN0KHZhbHVlOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gT2JqZWN0VXRpbHMuZ2V0VHlwZSh2YWx1ZSkgPT09IFwib2JqZWN0XCI7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGlzRGVmaW5lZCh2YWx1ZTogYW55KTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSAhPT0gXCJ1bmRlZmluZWRcIiAmJiB2YWx1ZSAhPT0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgaXNOdWxsT3JVbmRlZmluZWQodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT0gXCJ1bmRlZmluZWRcIiB8fCB2YWx1ZSA9PSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBpc1N0cmluZyh2YWx1ZTogYW55KTogdmFsdWUgaXMgc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBpc0Z1bmN0aW9uKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBGdW5jdGlvbiB7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gXCJmdW5jdGlvblwiO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBpc0RhdGUodmFsdWU6IGFueSk6IHZhbHVlIGlzIERhdGUge1xyXG4gICAgICAgIHJldHVybiBudWxsICE9PSB2YWx1ZSAmJiAhaXNOYU4odmFsdWUpICYmIFwidW5kZWZpbmVkXCIgIT09IHR5cGVvZiB2YWx1ZS5nZXREYXRlO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBpc0Jsb2IodmFsdWU6IGFueSk6IHZhbHVlIGlzIEJsb2Ige1xyXG4gICAgICAgIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIEJsb2IgfHwgdmFsdWUgaW5zdGFuY2VvZiBGaWxlO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBpc0Jvb2xlYW4odmFsdWU6IGFueSk6IHZhbHVlIGlzIGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0eXBlb2YodmFsdWUpID09IHR5cGVvZih0cnVlKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgaXNOdW1iZXIodmFsdWU6IGFueSk6IHZhbHVlIGlzIG51bWJlciB7XHJcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gXCJudW1iZXJcIikgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIGNvbnN0IG51bSA9ICt2YWx1ZTtcclxuICAgICAgICBpZiAoKG51bSAtIG51bSkgIT09IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobnVtID09PSB2YWx1ZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGlzQXJyYXkodmFsdWU6IGFueSk6IHZhbHVlIGlzIEFycmF5PGFueT4ge1xyXG4gICAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgaXNTZXQodmFsdWU6IGFueSk6IHZhbHVlIGlzIFNldDxhbnk+IHtcclxuICAgICAgICByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBTZXQ7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGNoZWNrSW50ZXJmYWNlKG9iajogYW55LCBpbnRlckZhY2VPYmplY3Q6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICghb2JqKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gaW50ZXJGYWNlT2JqZWN0KSB7XHJcbiAgICAgICAgICAgIGlmIChpbnRlckZhY2VPYmplY3QuaGFzT3duUHJvcGVydHkoa2V5KSAmJiB0eXBlb2Ygb2JqW2tleV0gIT09IGludGVyRmFjZU9iamVjdFtrZXldKSByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBwYWQob2JqOiBhbnksIHdpZHRoOiBudW1iZXIsIGNocjogc3RyaW5nID0gXCIwXCIpOiBzdHJpbmcge1xyXG4gICAgICAgIGNvbnN0IHN0ciA9IE9iamVjdFV0aWxzLmlzRGVmaW5lZChvYmopID8gb2JqLnRvU3RyaW5nKCkgOiBcIlwiO1xyXG4gICAgICAgIHJldHVybiBzdHIubGVuZ3RoID49IHdpZHRoID8gc3RyIDogbmV3IEFycmF5KHdpZHRoIC0gc3RyLmxlbmd0aCArIDEpLmpvaW4oY2hyKSArIHN0cjtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHN0YXRpYyBjb3B5UmVjdXJzaXZlKHRhcmdldDogYW55LCBzb3VyY2U6IGFueSwgcHJlZGljYXRlPzogRmlsdGVyUHJlY2lkYXRlKTogYW55IHtcclxuICAgICAgICBwcmVkaWNhdGUgPSBwcmVkaWNhdGUgfHwgZGVmYXVsdFByZWRpY2F0ZTtcclxuICAgICAgICBpZiAoT2JqZWN0VXRpbHMuaXNQcmltaXRpdmUoc291cmNlKSB8fCBPYmplY3RVdGlscy5pc0RhdGUoc291cmNlKSB8fCBPYmplY3RVdGlscy5pc0Jsb2Ioc291cmNlKSkgcmV0dXJuIHNvdXJjZTtcclxuICAgICAgICBpZiAoT2JqZWN0VXRpbHMuaXNBcnJheShzb3VyY2UpKSB7XHJcbiAgICAgICAgICAgIHRhcmdldCA9IE9iamVjdFV0aWxzLmlzQXJyYXkodGFyZ2V0KSA/IEFycmF5LmZyb20odGFyZ2V0KSA6IFtdO1xyXG4gICAgICAgICAgICBzb3VyY2UuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICghcHJlZGljYXRlKGl0ZW0sIGluZGV4LCB0YXJnZXQsIHNvdXJjZSkpIHJldHVybjtcclxuICAgICAgICAgICAgICAgIGlmICh0YXJnZXQubGVuZ3RoID4gaW5kZXgpXHJcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0W2luZGV4XSA9IE9iamVjdFV0aWxzLmNvcHlSZWN1cnNpdmUodGFyZ2V0W2luZGV4XSwgaXRlbSwgcHJlZGljYXRlKTtcclxuICAgICAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgICAgICB0YXJnZXQucHVzaChPYmplY3RVdGlscy5jb3B5UmVjdXJzaXZlKG51bGwsIGl0ZW0sIHByZWRpY2F0ZSkpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIHRhcmdldDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHNvdXJjZSkucmVkdWNlKChyZXN1bHQsIGtleSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoIXByZWRpY2F0ZShzb3VyY2Vba2V5XSwga2V5LCByZXN1bHQsIHNvdXJjZSkpIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgICAgIHJlc3VsdFtrZXldID0gT2JqZWN0VXRpbHMuY29weVJlY3Vyc2l2ZShyZXN1bHRba2V5XSwgc291cmNlW2tleV0sIHByZWRpY2F0ZSk7XHJcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICAgICAgfSwgT2JqZWN0LmFzc2lnbih7fSwgdGFyZ2V0KSk7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc
|
|
4
|
-
*/
|
|
5
|
-
import { Observable } from "rxjs";
|
|
6
|
-
import { mergeMap } from "rxjs/operators";
|
|
7
|
-
var ObservableUtils = /** @class */ (function () {
|
|
8
|
-
function ObservableUtils() {
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* @param {?} search
|
|
12
|
-
* @return {?}
|
|
13
|
-
*/
|
|
14
|
-
ObservableUtils.toSearch = /**
|
|
15
|
-
* @param {?} search
|
|
16
|
-
* @return {?}
|
|
17
|
-
*/
|
|
18
|
-
function (search) {
|
|
19
|
-
return mergeMap(
|
|
20
|
-
// @dynamic
|
|
21
|
-
function (token) { return search.getSearchResults(token); })(Observable.create(
|
|
22
|
-
// @dynamic
|
|
23
|
-
function (observer) {
|
|
24
|
-
observer.next(search.search);
|
|
25
|
-
}));
|
|
26
|
-
};
|
|
27
|
-
return ObservableUtils;
|
|
28
|
-
}());
|
|
29
|
-
export { ObservableUtils };
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2YWJsZS51dGlscy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzdGVteS9uZ3gtdXRpbHMvIiwic291cmNlcyI6WyJuZ3gtdXRpbHMvdXRpbHMvb2JzZXJ2YWJsZS51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNoQyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFHeEM7SUFBQTtJQWVBLENBQUM7Ozs7O0lBYlUsd0JBQVE7Ozs7SUFBZixVQUFnQixNQUF5QjtRQUNyQyxPQUFPLFFBQVE7UUFDWCxXQUFXO1FBQ1gsVUFBQyxLQUFhLElBQUssT0FBQSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEVBQTlCLENBQThCLENBQ3BELENBQ0csVUFBVSxDQUFDLE1BQU07UUFDYixXQUFXO1FBQ1gsVUFBQyxRQUFhO1lBQ1YsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUNKLENBQ0osQ0FBQztJQUNOLENBQUM7SUFDTCxzQkFBQztBQUFELENBQUMsQUFmRCxJQWVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQge21lcmdlTWFwfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHtJU2VhcmNoT2JzZXJ2YWJsZX0gZnJvbSBcIi4uL2NvbW1vbi10eXBlc1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIE9ic2VydmFibGVVdGlscyB7XHJcblxyXG4gICAgc3RhdGljIHRvU2VhcmNoKHNlYXJjaDogSVNlYXJjaE9ic2VydmFibGUpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgICAgIHJldHVybiBtZXJnZU1hcChcclxuICAgICAgICAgICAgLy8gQGR5bmFtaWNcclxuICAgICAgICAgICAgKHRva2VuOiBzdHJpbmcpID0+IHNlYXJjaC5nZXRTZWFyY2hSZXN1bHRzKHRva2VuKVxyXG4gICAgICAgICkoXHJcbiAgICAgICAgICAgIE9ic2VydmFibGUuY3JlYXRlKFxyXG4gICAgICAgICAgICAgICAgLy8gQGR5bmFtaWNcclxuICAgICAgICAgICAgICAgIChvYnNlcnZlcjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dChzZWFyY2guc2VhcmNoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc
|
|
4
|
-
*/
|
|
5
|
-
import "reflect-metadata";
|
|
6
|
-
import { ObjectUtils } from "./object.utils";
|
|
7
|
-
var ReflectUtils = /** @class */ (function () {
|
|
8
|
-
function ReflectUtils() {
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* @param {?} key
|
|
12
|
-
* @param {?} data
|
|
13
|
-
* @param {?} target
|
|
14
|
-
* @param {?=} name
|
|
15
|
-
* @return {?}
|
|
16
|
-
*/
|
|
17
|
-
ReflectUtils.defineMetadata = /**
|
|
18
|
-
* @param {?} key
|
|
19
|
-
* @param {?} data
|
|
20
|
-
* @param {?} target
|
|
21
|
-
* @param {?=} name
|
|
22
|
-
* @return {?}
|
|
23
|
-
*/
|
|
24
|
-
function (key, data, target, name) {
|
|
25
|
-
Reflect.defineMetadata(key, data, target, name);
|
|
26
|
-
};
|
|
27
|
-
/**
|
|
28
|
-
* @param {?} key
|
|
29
|
-
* @param {?} target
|
|
30
|
-
* @param {?=} name
|
|
31
|
-
* @return {?}
|
|
32
|
-
*/
|
|
33
|
-
ReflectUtils.getMetadata = /**
|
|
34
|
-
* @param {?} key
|
|
35
|
-
* @param {?} target
|
|
36
|
-
* @param {?=} name
|
|
37
|
-
* @return {?}
|
|
38
|
-
*/
|
|
39
|
-
function (key, target, name) {
|
|
40
|
-
return Reflect.getMetadata(key, target, name);
|
|
41
|
-
};
|
|
42
|
-
/**
|
|
43
|
-
* @param {?} key
|
|
44
|
-
* @param {?} target
|
|
45
|
-
* @param {?=} name
|
|
46
|
-
* @return {?}
|
|
47
|
-
*/
|
|
48
|
-
ReflectUtils.getOwnMetadata = /**
|
|
49
|
-
* @param {?} key
|
|
50
|
-
* @param {?} target
|
|
51
|
-
* @param {?=} name
|
|
52
|
-
* @return {?}
|
|
53
|
-
*/
|
|
54
|
-
function (key, target, name) {
|
|
55
|
-
return Reflect.getOwnMetadata(key, target, name);
|
|
56
|
-
};
|
|
57
|
-
/**
|
|
58
|
-
* @template T
|
|
59
|
-
* @param {?} obj
|
|
60
|
-
* @param {?} injector
|
|
61
|
-
* @return {?}
|
|
62
|
-
*/
|
|
63
|
-
ReflectUtils.resolve = /**
|
|
64
|
-
* @template T
|
|
65
|
-
* @param {?} obj
|
|
66
|
-
* @param {?} injector
|
|
67
|
-
* @return {?}
|
|
68
|
-
*/
|
|
69
|
-
function (obj, injector) {
|
|
70
|
-
if (!ObjectUtils.checkInterface(obj, { func: "function" }))
|
|
71
|
-
return (/** @type {?} */ (obj));
|
|
72
|
-
/** @type {?} */
|
|
73
|
-
var factory = (/** @type {?} */ (obj));
|
|
74
|
-
/** @type {?} */
|
|
75
|
-
var depends = [];
|
|
76
|
-
if (factory.type) {
|
|
77
|
-
/** @type {?} */
|
|
78
|
-
var method = Object.keys(factory.type).find(function (key) {
|
|
79
|
-
return factory.type[key] === factory.func;
|
|
80
|
-
});
|
|
81
|
-
depends = ReflectUtils.getMetadata("factoryDependencies", factory.type, method) || [];
|
|
82
|
-
}
|
|
83
|
-
else {
|
|
84
|
-
depends = ReflectUtils.getMetadata("factoryDependencies", factory.func) || [];
|
|
85
|
-
}
|
|
86
|
-
/** @type {?} */
|
|
87
|
-
var parameters = depends.map(function (dep) {
|
|
88
|
-
return injector.get(dep);
|
|
89
|
-
}).concat(factory.params);
|
|
90
|
-
return factory.func.apply(null, parameters);
|
|
91
|
-
};
|
|
92
|
-
return ReflectUtils;
|
|
93
|
-
}());
|
|
94
|
-
export { ReflectUtils };
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmbGVjdC51dGlscy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzdGVteS9uZ3gtdXRpbHMvIiwic291cmNlcyI6WyJuZ3gtdXRpbHMvdXRpbHMvcmVmbGVjdC51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxrQkFBa0IsQ0FBQztBQUcxQixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0M7SUFBQTtJQStCQSxDQUFDOzs7Ozs7OztJQTdCVSwyQkFBYzs7Ozs7OztJQUFyQixVQUFzQixHQUFXLEVBQUUsSUFBUyxFQUFFLE1BQVcsRUFBRSxJQUFhO1FBQ3BFLE9BQU8sQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDcEQsQ0FBQzs7Ozs7OztJQUVNLHdCQUFXOzs7Ozs7SUFBbEIsVUFBbUIsR0FBVyxFQUFFLE1BQVcsRUFBRSxJQUFhO1FBQ3RELE9BQU8sT0FBTyxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2xELENBQUM7Ozs7Ozs7SUFFTSwyQkFBYzs7Ozs7O0lBQXJCLFVBQXNCLEdBQVcsRUFBRSxNQUFXLEVBQUUsSUFBYTtRQUN6RCxPQUFPLE9BQU8sQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNyRCxDQUFDOzs7Ozs7O0lBRU0sb0JBQU87Ozs7OztJQUFkLFVBQWtCLEdBQXdCLEVBQUUsUUFBa0I7UUFDMUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBQyxDQUFDO1lBQUUsT0FBTyxtQkFBRyxHQUFHLEVBQUEsQ0FBQzs7WUFDbEUsT0FBTyxHQUFHLG1CQUFpQixHQUFHLEVBQUE7O1lBQ2hDLE9BQU8sR0FBbUIsRUFBRTtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUU7O2dCQUNSLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHO2dCQUN2RCxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssT0FBTyxDQUFDLElBQUksQ0FBQztZQUM5QyxDQUFDLENBQUM7WUFDRixPQUFPLEdBQUcsWUFBWSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUN6RjthQUFNO1lBQ0gsT0FBTyxHQUFHLFlBQVksQ0FBQyxXQUFXLENBQUMscUJBQXFCLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUNqRjs7WUFDSyxVQUFVLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEdBQUc7WUFDeEMsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQ3pCLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFDTCxtQkFBQztBQUFELENBQUMsQUEvQkQsSUErQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXCJyZWZsZWN0LW1ldGFkYXRhXCI7XHJcbmltcG9ydCB7SW5qZWN0b3IsIFR5cGVQcm92aWRlcn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtJUmVzb2x2ZUZhY3Rvcnl9IGZyb20gXCIuLi9jb21tb24tdHlwZXNcIjtcclxuaW1wb3J0IHtPYmplY3RVdGlsc30gZnJvbSBcIi4vb2JqZWN0LnV0aWxzXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgUmVmbGVjdFV0aWxzIHtcclxuXHJcbiAgICBzdGF0aWMgZGVmaW5lTWV0YWRhdGEoa2V5OiBzdHJpbmcsIGRhdGE6IGFueSwgdGFyZ2V0OiBhbnksIG5hbWU/OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKGtleSwgZGF0YSwgdGFyZ2V0LCBuYW1lKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgZ2V0TWV0YWRhdGEoa2V5OiBzdHJpbmcsIHRhcmdldDogYW55LCBuYW1lPzogc3RyaW5nKTogYW55IHtcclxuICAgICAgICByZXR1cm4gUmVmbGVjdC5nZXRNZXRhZGF0YShrZXksIHRhcmdldCwgbmFtZSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGdldE93bk1ldGFkYXRhKGtleTogc3RyaW5nLCB0YXJnZXQ6IGFueSwgbmFtZT86IHN0cmluZyk6IGFueSB7XHJcbiAgICAgICAgcmV0dXJuIFJlZmxlY3QuZ2V0T3duTWV0YWRhdGEoa2V5LCB0YXJnZXQsIG5hbWUpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyByZXNvbHZlPFQ+KG9iajogSVJlc29sdmVGYWN0b3J5IHwgVCwgaW5qZWN0b3I6IEluamVjdG9yKTogVCB7XHJcbiAgICAgICAgaWYgKCFPYmplY3RVdGlscy5jaGVja0ludGVyZmFjZShvYmosIHtmdW5jOiBcImZ1bmN0aW9uXCJ9KSkgcmV0dXJuIDxUPm9iajtcclxuICAgICAgICBjb25zdCBmYWN0b3J5ID0gPElSZXNvbHZlRmFjdG9yeT5vYmo7XHJcbiAgICAgICAgbGV0IGRlcGVuZHM6IFR5cGVQcm92aWRlcltdID0gW107XHJcbiAgICAgICAgaWYgKGZhY3RvcnkudHlwZSkge1xyXG4gICAgICAgICAgICBjb25zdCBtZXRob2QgPSBPYmplY3Qua2V5cyhmYWN0b3J5LnR5cGUpLmZpbmQoZnVuY3Rpb24gKGtleSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhY3RvcnkudHlwZVtrZXldID09PSBmYWN0b3J5LmZ1bmM7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICBkZXBlbmRzID0gUmVmbGVjdFV0aWxzLmdldE1ldGFkYXRhKFwiZmFjdG9yeURlcGVuZGVuY2llc1wiLCBmYWN0b3J5LnR5cGUsIG1ldGhvZCkgfHwgW107XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZGVwZW5kcyA9IFJlZmxlY3RVdGlscy5nZXRNZXRhZGF0YShcImZhY3RvcnlEZXBlbmRlbmNpZXNcIiwgZmFjdG9yeS5mdW5jKSB8fCBbXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgcGFyYW1ldGVycyA9IGRlcGVuZHMubWFwKGZ1bmN0aW9uIChkZXApIHtcclxuICAgICAgICAgICAgcmV0dXJuIGluamVjdG9yLmdldChkZXApO1xyXG4gICAgICAgIH0pLmNvbmNhdChmYWN0b3J5LnBhcmFtcyk7XHJcbiAgICAgICAgcmV0dXJuIGZhY3RvcnkuZnVuYy5hcHBseShudWxsLCBwYXJhbWV0ZXJzKTtcclxuICAgIH1cclxufVxyXG4iXX0=
|