@firestitch/common 15.0.0 → 17.0.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/app/directives/auto-focus.directive.d.ts +1 -1
- package/app/directives/auto-select.directive.d.ts +1 -1
- package/app/directives/model-change.directive.d.ts +1 -1
- package/esm2022/app/directives/auto-focus.directive.mjs +61 -0
- package/esm2022/app/directives/auto-select.directive.mjs +32 -0
- package/esm2022/app/directives/model-change.directive.mjs +39 -0
- package/{esm2020 → esm2022}/app/directives/prevent-default.directive.mjs +4 -4
- package/{esm2020 → esm2022}/app/directives/stop-propagation.directive.mjs +4 -4
- package/{esm2020 → esm2022}/app/fs-common.module.mjs +31 -31
- package/{esm2020 → esm2022}/app/pipes/bytes.pipe.mjs +4 -4
- package/esm2022/app/pipes/currency.pipe.mjs +24 -0
- package/{esm2020 → esm2022}/app/pipes/number.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/app/pipes/ordinal-number.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/app/pipes/truncate.pipe.mjs +5 -5
- package/{esm2020 → esm2022}/app/pipes/util.pipe.mjs +15 -15
- package/esm2022/app/services/array.service.mjs +225 -0
- package/{esm2020 → esm2022}/app/services/math.service.mjs +4 -4
- package/esm2022/app/services/util.service.mjs +249 -0
- package/esm2022/app/services/vaildate.service.mjs +29 -0
- package/{esm2020 → esm2022}/libs/array/compare/compare.mjs +1 -1
- package/esm2022/libs/array/filter/filter.mjs +27 -0
- package/esm2022/libs/array/inArray/inArray.mjs +12 -0
- package/esm2022/libs/array/indexOf/indexOf.mjs +16 -0
- package/{esm2020 → esm2022}/libs/array/list/list.mjs +1 -1
- package/esm2022/libs/array/nameValue/nameValue.mjs +21 -0
- package/{esm2020 → esm2022}/libs/array/remove/remove.mjs +1 -1
- package/esm2022/libs/array/sort/sort.mjs +27 -0
- package/esm2022/libs/format/acronym/acronym.mjs +22 -0
- package/esm2022/libs/format/bytes/bytes.mjs +18 -0
- package/{esm2020 → esm2022}/libs/format/number/number.mjs +1 -1
- package/esm2022/libs/format/truncate/truncate.mjs +12 -0
- package/esm2022/libs/rxjs/delayedRetry.mjs +20 -0
- package/esm2022/libs/util/clone/clone.mjs +21 -0
- package/esm2022/libs/util/guid/guid.mjs +19 -0
- package/esm2022/libs/util/is-array-equal/is-array-equal.mjs +22 -0
- package/esm2022/libs/util/is-class/is-class.mjs +18 -0
- package/esm2022/libs/util/length/length.mjs +10 -0
- package/esm2022/libs/util/queue/operation.mjs +17 -0
- package/esm2022/libs/util/queue/queue.mjs +166 -0
- package/esm2022/libs/util/source-loader/source-loader.mjs +155 -0
- package/esm2022/libs/util/throttle/throttle.mjs +13 -0
- package/{esm2020 → esm2022}/libs/util/to-string/to-string.mjs +1 -1
- package/esm2022/libs/util/value/value.mjs +9 -0
- package/{fesm2020 → fesm2022}/firestitch-common.mjs +136 -128
- package/fesm2022/firestitch-common.mjs.map +1 -0
- package/package.json +5 -11
- package/esm2020/app/directives/auto-focus.directive.mjs +0 -59
- package/esm2020/app/directives/auto-select.directive.mjs +0 -31
- package/esm2020/app/directives/model-change.directive.mjs +0 -37
- package/esm2020/app/pipes/currency.pipe.mjs +0 -23
- package/esm2020/app/services/array.service.mjs +0 -225
- package/esm2020/app/services/util.service.mjs +0 -251
- package/esm2020/app/services/vaildate.service.mjs +0 -28
- package/esm2020/libs/array/filter/filter.mjs +0 -27
- package/esm2020/libs/array/inArray/inArray.mjs +0 -12
- package/esm2020/libs/array/indexOf/indexOf.mjs +0 -16
- package/esm2020/libs/array/nameValue/nameValue.mjs +0 -21
- package/esm2020/libs/array/sort/sort.mjs +0 -27
- package/esm2020/libs/format/acronym/acronym.mjs +0 -22
- package/esm2020/libs/format/bytes/bytes.mjs +0 -18
- package/esm2020/libs/format/truncate/truncate.mjs +0 -12
- package/esm2020/libs/rxjs/delayedRetry.mjs +0 -20
- package/esm2020/libs/util/clone/clone.mjs +0 -21
- package/esm2020/libs/util/guid/guid.mjs +0 -19
- package/esm2020/libs/util/is-array-equal/is-array-equal.mjs +0 -22
- package/esm2020/libs/util/is-class/is-class.mjs +0 -18
- package/esm2020/libs/util/length/length.mjs +0 -10
- package/esm2020/libs/util/queue/operation.mjs +0 -15
- package/esm2020/libs/util/queue/queue.mjs +0 -165
- package/esm2020/libs/util/source-loader/source-loader.mjs +0 -155
- package/esm2020/libs/util/throttle/throttle.mjs +0 -13
- package/esm2020/libs/util/value/value.mjs +0 -9
- package/fesm2015/firestitch-common.mjs +0 -1754
- package/fesm2015/firestitch-common.mjs.map +0 -1
- package/fesm2020/firestitch-common.mjs.map +0 -1
- /package/{esm2020 → esm2022}/app/directives/index.mjs +0 -0
- /package/{esm2020 → esm2022}/app/pipes/index.mjs +0 -0
- /package/{esm2020 → esm2022}/firestitch-common.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/array/compare/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/array/filter/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/array/find/find.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/array/find/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/array/inArray/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/array/index/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/array/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/array/indexOf/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/array/keyExists/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/array/keyExists/keyExists.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/array/ksort/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/array/ksort/ksort.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/array/list/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/array/nameValue/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/array/remove/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/array/rsort/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/array/rsort/rsort.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/array/sort/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/format/acronym/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/format/bytes/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/format/currency/currency.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/format/currency/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/format/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/format/number/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/format/truncate/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/rxjs/keyboard-shortcut.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/util/boolean/boolean.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/util/boolean/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/util/clone/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/util/debounce/debounce.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/util/debounce/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/util/get-normalized-path/get-normalized-path.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/util/get-normalized-path/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/util/guid/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/util/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/util/is-array-equal/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/util/is-class/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/util/is-empty/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/util/is-empty/is-empty.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/util/is-numeric/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/util/is-numeric/is-numeric.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/util/is-object/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/util/is-object/is-object.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/util/keys/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/util/keys/keys.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/util/length/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/util/ordinal-number/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/util/ordinal-number/ordinal-number.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/util/queue/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/util/queue/queue-stats.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/util/queue/queue.enum.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/util/remove-query-params/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/util/remove-query-params/remove-query-params.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/util/resolve/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/util/resolve/resolve.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/util/round/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/util/round/round.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/util/source-loader/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/util/stringify/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/util/stringify/stringify.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/util/throttle/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/util/to-string/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/util/uuid/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/util/uuid/uuid.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/util/value/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/validate/email/email.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/validate/email/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/validate/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/validate/phone/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/validate/phone/phone.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/validate/url/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/validate/url/url.mjs +0 -0
- /package/{esm2020 → esm2022}/public_api.mjs +0 -0
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
export function nameValue(array, name, value) {
|
|
2
|
-
const list = [];
|
|
3
|
-
if (name || value) {
|
|
4
|
-
const nameFn = typeof name === 'function' ? name : function (item) {
|
|
5
|
-
return item[name];
|
|
6
|
-
};
|
|
7
|
-
const valueFn = typeof value === 'function' ? value : function (item) {
|
|
8
|
-
return item[value];
|
|
9
|
-
};
|
|
10
|
-
array.forEach(function (item) {
|
|
11
|
-
list.push({ name: nameFn(item), value: valueFn(item) });
|
|
12
|
-
});
|
|
13
|
-
}
|
|
14
|
-
else {
|
|
15
|
-
array.forEach(function (n, v) {
|
|
16
|
-
list.push({ name: n, value: v });
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
return list;
|
|
20
|
-
}
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZVZhbHVlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvYXJyYXkvbmFtZVZhbHVlL25hbWVWYWx1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsU0FBUyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSztJQUUxQyxNQUFNLElBQUksR0FBRyxFQUFFLENBQUM7SUFDaEIsSUFBSSxJQUFJLElBQUksS0FBSyxFQUFFO1FBRWpCLE1BQU0sTUFBTSxHQUFHLE9BQU8sSUFBSSxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLElBQUk7WUFDL0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEIsQ0FBQyxDQUFDO1FBQ0YsTUFBTSxPQUFPLEdBQUcsT0FBTyxLQUFLLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFVBQVUsSUFBSTtZQUNsRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixDQUFDLENBQUM7UUFFRixLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsSUFBSTtZQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFDLENBQUMsQ0FBQztRQUN4RCxDQUFDLENBQUMsQ0FBQztLQUVKO1NBQU07UUFDTCxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7S0FDSjtJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBuYW1lVmFsdWUoYXJyYXksIG5hbWUsIHZhbHVlKSB7XG5cbiAgY29uc3QgbGlzdCA9IFtdO1xuICBpZiAobmFtZSB8fCB2YWx1ZSkge1xuXG4gICAgY29uc3QgbmFtZUZuID0gdHlwZW9mIG5hbWUgPT09ICdmdW5jdGlvbicgPyBuYW1lIDogZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgIHJldHVybiBpdGVtW25hbWVdO1xuICAgIH07XG4gICAgY29uc3QgdmFsdWVGbiA9IHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJyA/IHZhbHVlIDogZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgIHJldHVybiBpdGVtW3ZhbHVlXTtcbiAgICB9O1xuXG4gICAgYXJyYXkuZm9yRWFjaChmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgbGlzdC5wdXNoKHtuYW1lOiBuYW1lRm4oaXRlbSksIHZhbHVlOiB2YWx1ZUZuKGl0ZW0pfSk7XG4gICAgfSk7XG5cbiAgfSBlbHNlIHtcbiAgICBhcnJheS5mb3JFYWNoKGZ1bmN0aW9uIChuLCB2KSB7XG4gICAgICBsaXN0LnB1c2goe25hbWU6IG4sIHZhbHVlOiB2fSk7XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gbGlzdDtcbn1cbiJdfQ==
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
export function sort(array, query, reverse = false) {
|
|
2
|
-
if (typeof query !== 'function') {
|
|
3
|
-
const queryStr = query;
|
|
4
|
-
query = function (a, b) {
|
|
5
|
-
if (reverse) {
|
|
6
|
-
if (a[queryStr] < b[queryStr]) {
|
|
7
|
-
return 1;
|
|
8
|
-
}
|
|
9
|
-
else if (a[queryStr] > b[queryStr]) {
|
|
10
|
-
return -1;
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
else {
|
|
14
|
-
if (a[queryStr] > b[queryStr]) {
|
|
15
|
-
return 1;
|
|
16
|
-
}
|
|
17
|
-
else if (a[queryStr] < b[queryStr]) {
|
|
18
|
-
return -1;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
return 0;
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
array.sort(query);
|
|
25
|
-
return array;
|
|
26
|
-
}
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL2FycmF5L3NvcnQvc29ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxHQUFHLEtBQUs7SUFDaEQsSUFBSSxPQUFPLEtBQUssS0FBSyxVQUFVLEVBQUU7UUFDL0IsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLEtBQUssR0FBRyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ3BCLElBQUksT0FBTyxFQUFFO2dCQUNYLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRTtvQkFDN0IsT0FBTyxDQUFDLENBQUM7aUJBQ1Y7cUJBQU0sSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFO29CQUNwQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2lCQUNYO2FBQ0Y7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFO29CQUM3QixPQUFPLENBQUMsQ0FBQztpQkFDVjtxQkFBTSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUU7b0JBQ3BDLE9BQU8sQ0FBQyxDQUFDLENBQUM7aUJBQ1g7YUFDRjtZQUNELE9BQU8sQ0FBQyxDQUFDO1FBQ1gsQ0FBQyxDQUFDO0tBQ0g7SUFFRCxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xCLE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBzb3J0KGFycmF5LCBxdWVyeSwgcmV2ZXJzZSA9IGZhbHNlKSB7XG4gIGlmICh0eXBlb2YgcXVlcnkgIT09ICdmdW5jdGlvbicpIHtcbiAgICBjb25zdCBxdWVyeVN0ciA9IHF1ZXJ5O1xuICAgIHF1ZXJ5ID0gZnVuY3Rpb24gKGEsIGIpIHtcbiAgICAgIGlmIChyZXZlcnNlKSB7XG4gICAgICAgIGlmIChhW3F1ZXJ5U3RyXSA8IGJbcXVlcnlTdHJdKSB7XG4gICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgIH0gZWxzZSBpZiAoYVtxdWVyeVN0cl0gPiBiW3F1ZXJ5U3RyXSkge1xuICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGFbcXVlcnlTdHJdID4gYltxdWVyeVN0cl0pIHtcbiAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgfSBlbHNlIGlmIChhW3F1ZXJ5U3RyXSA8IGJbcXVlcnlTdHJdKSB7XG4gICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gMDtcbiAgICB9O1xuICB9XG5cbiAgYXJyYXkuc29ydChxdWVyeSk7XG4gIHJldHVybiBhcnJheTtcbn1cbiJdfQ==
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
export function acronym(str, length = 2) {
|
|
2
|
-
const splittedString = str
|
|
3
|
-
.replace(/[^a-zA-Z0-9]+/g, ' ')
|
|
4
|
-
.split(' ');
|
|
5
|
-
let result = '';
|
|
6
|
-
for (let i = 0; i < length; i++) {
|
|
7
|
-
if (!splittedString[i]) {
|
|
8
|
-
if (splittedString.length === 1) {
|
|
9
|
-
for (let j = 1; j < length; j++) {
|
|
10
|
-
if (!splittedString[i - 1][j]) {
|
|
11
|
-
break;
|
|
12
|
-
}
|
|
13
|
-
result += splittedString[i - 1][j].toUpperCase();
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
break;
|
|
17
|
-
}
|
|
18
|
-
result += splittedString[i][0].toUpperCase();
|
|
19
|
-
}
|
|
20
|
-
return result;
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNyb255bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL2Zvcm1hdC9hY3JvbnltL2Fjcm9ueW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLE9BQU8sQ0FBQyxHQUFXLEVBQUUsTUFBTSxHQUFHLENBQUM7SUFDN0MsTUFBTSxjQUFjLEdBQUcsR0FBRztTQUN2QixPQUFPLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDO1NBQzlCLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUVkLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztJQUVoQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQy9CLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDdEIsSUFBSSxjQUFjLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFFL0IsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtvQkFDL0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7d0JBQzNCLE1BQU07cUJBQ1A7b0JBQ0QsTUFBTSxJQUFJLGNBQWMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7aUJBQ2hEO2FBQ0Y7WUFDRCxNQUFNO1NBQ1A7UUFDRCxNQUFNLElBQUksY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0tBQzlDO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBhY3JvbnltKHN0cjogc3RyaW5nLCBsZW5ndGggPSAyKTogc3RyaW5nIHtcbiAgY29uc3Qgc3BsaXR0ZWRTdHJpbmcgPSBzdHJcbiAgICAucmVwbGFjZSgvW15hLXpBLVowLTldKy9nLCAnICcpXG4gICAgLnNwbGl0KCcgJyk7XG5cbiAgbGV0IHJlc3VsdCA9ICcnO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICBpZiAoIXNwbGl0dGVkU3RyaW5nW2ldKSB7XG4gICAgICBpZiAoc3BsaXR0ZWRTdHJpbmcubGVuZ3RoID09PSAxKSB7XG5cbiAgICAgICAgZm9yIChsZXQgaiA9IDE7IGogPCBsZW5ndGg7IGorKykge1xuICAgICAgICAgIGlmICghc3BsaXR0ZWRTdHJpbmdbaS0xXVtqXSkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJlc3VsdCArPSBzcGxpdHRlZFN0cmluZ1tpLTFdW2pdLnRvVXBwZXJDYXNlKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICByZXN1bHQgKz0gc3BsaXR0ZWRTdHJpbmdbaV1bMF0udG9VcHBlckNhc2UoKTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG4iXX0=
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { isNumeric } from '../../../libs';
|
|
2
|
-
export function bytes(bytes, decimals, unit) {
|
|
3
|
-
if (!bytes) {
|
|
4
|
-
return '0 MB';
|
|
5
|
-
}
|
|
6
|
-
const e = typeof unit === 'string' ?
|
|
7
|
-
'KMGTP'.indexOf(unit.replace('B', '')) + 1 :
|
|
8
|
-
Math.floor(Math.log(bytes) / Math.log(1024));
|
|
9
|
-
if (!isNumeric(decimals)) {
|
|
10
|
-
decimals = (bytes / 1024) > 1000 ? 2 : 0;
|
|
11
|
-
}
|
|
12
|
-
return `${(bytes / Math.pow(1024, e))
|
|
13
|
-
.toFixed(decimals)}`
|
|
14
|
-
.replace(/\.00/, '')
|
|
15
|
-
+ ' '
|
|
16
|
-
+ (e ? ' KMGTP'.charAt(e) : '') + 'B';
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnl0ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGlicy9mb3JtYXQvYnl0ZXMvYnl0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxQyxNQUFNLFVBQVUsS0FBSyxDQUFDLEtBQWEsRUFBRSxRQUFpQixFQUFFLElBQXVDO0lBQzdGLElBQUksQ0FBQyxLQUFLLEVBQUU7UUFDVixPQUFPLE1BQU0sQ0FBQztLQUNmO0lBQ0QsTUFBTSxDQUFDLEdBQUcsT0FBTyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUM7UUFDbEMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFFL0MsSUFBRyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRTtRQUN2QixRQUFRLEdBQUcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUMxQztJQUVELE9BQU8sR0FBRyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNsQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7U0FDbkIsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7VUFDbEIsR0FBRztVQUNILENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUM7QUFDMUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzTnVtZXJpYyB9IGZyb20gJy4uLy4uLy4uL2xpYnMnO1xuXG5leHBvcnQgZnVuY3Rpb24gYnl0ZXMoYnl0ZXM6IG51bWJlciwgZGVjaW1hbHM/OiBudW1iZXIsIHVuaXQ/OiAnS0InIHwgJ01CJyB8ICdHQicgfCAnVEInIHwgJ1BCJykge1xuICBpZiAoIWJ5dGVzKSB7IFxuICAgIHJldHVybiAnMCBNQic7IFxuICB9XG4gIGNvbnN0IGUgPSB0eXBlb2YgdW5pdCA9PT0gJ3N0cmluZycgP1xuICAgICdLTUdUUCcuaW5kZXhPZih1bml0LnJlcGxhY2UoJ0InLCAnJykpICsgMSA6XG4gICAgTWF0aC5mbG9vcihNYXRoLmxvZyhieXRlcykgLyBNYXRoLmxvZygxMDI0KSk7XG5cbiAgaWYoIWlzTnVtZXJpYyhkZWNpbWFscykpIHtcbiAgICBkZWNpbWFscyA9IChieXRlcyAvIDEwMjQpID4gMTAwMCA/IDIgOiAwO1xuICB9XG5cbiAgcmV0dXJuIGAkeyhieXRlcyAvIE1hdGgucG93KDEwMjQsIGUpKVxuICAgIC50b0ZpeGVkKGRlY2ltYWxzKX1gXG4gICAgLnJlcGxhY2UoL1xcLjAwLywgJycpXG4gICAgKyAnICdcbiAgICArIChlID8gJyBLTUdUUCcuY2hhckF0KGUpIDogJycpICsgJ0InO1xufVxuIl19
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export function truncate(value, limit = 100, completeWords = false, ellipsis = '...') {
|
|
2
|
-
value = value || '';
|
|
3
|
-
if (completeWords) {
|
|
4
|
-
limit = value.substr(0, limit).lastIndexOf(' ');
|
|
5
|
-
}
|
|
6
|
-
let result = `${value.substr(0, limit)}`;
|
|
7
|
-
if (result !== value) {
|
|
8
|
-
result += ellipsis;
|
|
9
|
-
}
|
|
10
|
-
return result;
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1bmNhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGlicy9mb3JtYXQvdHJ1bmNhdGUvdHJ1bmNhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLFFBQVEsQ0FBQyxLQUFhLEVBQUUsS0FBSyxHQUFHLEdBQUcsRUFBRSxhQUFhLEdBQUcsS0FBSyxFQUFFLFFBQVEsR0FBRyxLQUFLO0lBRTFGLEtBQUssR0FBRyxLQUFLLElBQUksRUFBRSxDQUFDO0lBRXBCLElBQUksYUFBYSxFQUFFO1FBQ2pCLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDakQ7SUFFRCxJQUFJLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUM7SUFFekMsSUFBSSxNQUFNLEtBQUssS0FBSyxFQUFFO1FBQ3BCLE1BQU0sSUFBSSxRQUFRLENBQUM7S0FDcEI7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUVoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIHRydW5jYXRlKHZhbHVlOiBzdHJpbmcsIGxpbWl0ID0gMTAwLCBjb21wbGV0ZVdvcmRzID0gZmFsc2UsIGVsbGlwc2lzID0gJy4uLicpIHtcblxuICB2YWx1ZSA9IHZhbHVlIHx8ICcnO1xuXG4gIGlmIChjb21wbGV0ZVdvcmRzKSB7XG4gICAgbGltaXQgPSB2YWx1ZS5zdWJzdHIoMCwgbGltaXQpLmxhc3RJbmRleE9mKCcgJyk7XG4gIH1cblxuICBsZXQgcmVzdWx0ID0gYCR7dmFsdWUuc3Vic3RyKDAsIGxpbWl0KX1gO1xuXG4gIGlmIChyZXN1bHQgIT09IHZhbHVlKSB7XG4gICAgcmVzdWx0ICs9IGVsbGlwc2lzO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcblxufVxuIl19
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { iif, throwError, timer } from 'rxjs';
|
|
2
|
-
import { concatMap, retryWhen, tap } from 'rxjs/operators';
|
|
3
|
-
export function delayedRetry(delayMs, maxRetry = 5, message) {
|
|
4
|
-
let retries = 0;
|
|
5
|
-
return (src) => src.pipe(retryWhen((errors) => errors.pipe(tap(() => {
|
|
6
|
-
retries++;
|
|
7
|
-
if (retries <= maxRetry) {
|
|
8
|
-
console.info(`Failed to load Resource. Retry in ${delayMs / 1000} sec. ${retries}/${maxRetry} times...`);
|
|
9
|
-
}
|
|
10
|
-
}), concatMap((error) => iif(() => retries > maxRetry, throwError(getErrorMessage(maxRetry, message)), timer(delayMs))))));
|
|
11
|
-
}
|
|
12
|
-
const getErrorMessage = (maxRetry, defaultMessage) => {
|
|
13
|
-
if (!defaultMessage) {
|
|
14
|
-
return `Failed to load Resource for ${maxRetry} times. Giving up.`;
|
|
15
|
-
}
|
|
16
|
-
else {
|
|
17
|
-
return defaultMessage;
|
|
18
|
-
}
|
|
19
|
-
};
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsYXllZFJldHJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYnMvcnhqcy9kZWxheWVkUmV0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEdBQUcsRUFBYyxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFELE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzNELE1BQU0sVUFBVSxZQUFZLENBQUMsT0FBZSxFQUFFLFFBQVEsR0FBRyxDQUFDLEVBQUUsT0FBZ0I7SUFDMUUsSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFDO0lBRWhCLE9BQU8sQ0FBQyxHQUF3QixFQUFFLEVBQUUsQ0FDbEMsR0FBRyxDQUFDLElBQUksQ0FDTixTQUFTLENBQUMsQ0FBQyxNQUEyQixFQUFFLEVBQUUsQ0FDeEMsTUFBTSxDQUFDLElBQUksQ0FDVCxHQUFHLENBQUMsR0FBRyxFQUFFO1FBQ1AsT0FBTyxFQUFFLENBQUM7UUFFVixJQUFJLE9BQU8sSUFBSSxRQUFRLEVBQUU7WUFDdkIsT0FBTyxDQUFDLElBQUksQ0FBQyxxQ0FBcUMsT0FBTyxHQUFHLElBQUksU0FBUyxPQUFPLElBQUksUUFBUSxXQUFXLENBQUMsQ0FBQTtTQUN6RztJQUNILENBQUMsQ0FBQyxFQUNGLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQ2xCLEdBQUcsQ0FDRCxHQUFHLEVBQUUsQ0FBQyxPQUFPLEdBQUcsUUFBUSxFQUN4QixVQUFVLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxFQUM5QyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQ2YsQ0FDRixDQUNGLENBQ0YsQ0FDRixDQUFBO0FBQ0wsQ0FBQztBQUlELE1BQU0sZUFBZSxHQUFHLENBQUMsUUFBZ0IsRUFBRSxjQUFzQixFQUFFLEVBQUU7SUFDbkUsSUFBSSxDQUFDLGNBQWMsRUFBRTtRQUNuQixPQUFPLCtCQUErQixRQUFRLG9CQUFvQixDQUFDO0tBQ3BFO1NBQU07UUFDTCxPQUFPLGNBQWMsQ0FBQTtLQUN0QjtBQUNILENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlpZiwgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciwgdGltZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNvbmNhdE1hcCwgcmV0cnlXaGVuLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGRlbGF5ZWRSZXRyeShkZWxheU1zOiBudW1iZXIsIG1heFJldHJ5ID0gNSwgbWVzc2FnZT86IHN0cmluZykge1xuICBsZXQgcmV0cmllcyA9IDA7XG5cbiAgcmV0dXJuIChzcmM6IE9ic2VydmFibGU8dW5rbm93bj4pID0+XG4gICAgc3JjLnBpcGUoXG4gICAgICByZXRyeVdoZW4oKGVycm9yczogT2JzZXJ2YWJsZTx1bmtub3duPikgPT5cbiAgICAgICAgZXJyb3JzLnBpcGUoXG4gICAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICAgIHJldHJpZXMrKztcblxuICAgICAgICAgICAgaWYgKHJldHJpZXMgPD0gbWF4UmV0cnkpIHtcbiAgICAgICAgICAgICAgY29uc29sZS5pbmZvKGBGYWlsZWQgdG8gbG9hZCBSZXNvdXJjZS4gUmV0cnkgaW4gJHtkZWxheU1zIC8gMTAwMH0gc2VjLiAke3JldHJpZXN9LyR7bWF4UmV0cnl9IHRpbWVzLi4uYClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSxcbiAgICAgICAgICBjb25jYXRNYXAoKGVycm9yKSA9PlxuICAgICAgICAgICAgaWlmKFxuICAgICAgICAgICAgICAoKSA9PiByZXRyaWVzID4gbWF4UmV0cnksXG4gICAgICAgICAgICAgIHRocm93RXJyb3IoZ2V0RXJyb3JNZXNzYWdlKG1heFJldHJ5LCBtZXNzYWdlKSksXG4gICAgICAgICAgICAgIHRpbWVyKGRlbGF5TXMpLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICApLFxuICAgICAgICApXG4gICAgICApXG4gICAgKVxufVxuXG5cblxuY29uc3QgZ2V0RXJyb3JNZXNzYWdlID0gKG1heFJldHJ5OiBudW1iZXIsIGRlZmF1bHRNZXNzYWdlOiBzdHJpbmcpID0+IHtcbiAgaWYgKCFkZWZhdWx0TWVzc2FnZSkge1xuICAgIHJldHVybiBgRmFpbGVkIHRvIGxvYWQgUmVzb3VyY2UgZm9yICR7bWF4UmV0cnl9IHRpbWVzLiBHaXZpbmcgdXAuYDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZGVmYXVsdE1lc3NhZ2VcbiAgfVxufVxuIl19
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
export function clone(obj) {
|
|
2
|
-
if (obj instanceof Date) {
|
|
3
|
-
return new Date(obj);
|
|
4
|
-
}
|
|
5
|
-
else if (Array.isArray(obj)) {
|
|
6
|
-
const arr = [];
|
|
7
|
-
for (let i = 0; i < obj.length; i++) {
|
|
8
|
-
arr[i] = clone(obj[i]);
|
|
9
|
-
}
|
|
10
|
-
return arr;
|
|
11
|
-
}
|
|
12
|
-
else if (typeof (obj) === 'object') {
|
|
13
|
-
const cloned = {};
|
|
14
|
-
for (let key in obj) {
|
|
15
|
-
cloned[key] = clone(obj[key]);
|
|
16
|
-
}
|
|
17
|
-
return cloned;
|
|
18
|
-
}
|
|
19
|
-
return obj;
|
|
20
|
-
}
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91dGlsL2Nsb25lL2Nsb25lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxLQUFLLENBQUMsR0FBRztJQUN2QixJQUFHLEdBQUcsWUFBWSxJQUFJLEVBQUU7UUFDdEIsT0FBTyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztLQUN0QjtTQUFNLElBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUM5QixNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDZixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNwQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3ZCO1FBRUQsT0FBTyxHQUFHLENBQUM7S0FDWDtTQUFNLElBQUcsT0FBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLFFBQVEsRUFBRTtRQUNuQyxNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDbEIsS0FBSSxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUU7WUFDbkIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUM5QjtRQUVELE9BQU8sTUFBTSxDQUFDO0tBQ2Q7SUFFRCxPQUFPLEdBQUcsQ0FBQztBQUNaLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gY2xvbmUob2JqKSB7XG4gIGlmKG9iaiBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICByZXR1cm4gbmV3IERhdGUob2JqKTtcbiAgfSBlbHNlIGlmKEFycmF5LmlzQXJyYXkob2JqKSkge1xuXHRcdGNvbnN0IGFyciA9IFtdO1xuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgb2JqLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRhcnJbaV0gPSBjbG9uZShvYmpbaV0pO1xuXHRcdH1cblxuXHRcdHJldHVybiBhcnI7XG5cdH0gZWxzZSBpZih0eXBlb2Yob2JqKSA9PT0gJ29iamVjdCcpIHtcblx0XHRjb25zdCBjbG9uZWQgPSB7fTtcblx0XHRmb3IobGV0IGtleSBpbiBvYmopIHtcblx0XHRcdGNsb25lZFtrZXldID0gY2xvbmUob2JqW2tleV0pO1xuXHRcdH1cblxuXHRcdHJldHVybiBjbG9uZWQ7XHRcblx0fVxuXG5cdHJldHVybiBvYmo7XG59XG4iXX0=
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
export function guid(pattern, options = { case: 'lower', numbers: true }) {
|
|
2
|
-
pattern = pattern || 'xxxxxx';
|
|
3
|
-
let s = '';
|
|
4
|
-
if (options.numbers !== false) {
|
|
5
|
-
s = '0123456789';
|
|
6
|
-
}
|
|
7
|
-
if (!options.case || options.case === 'lower' || options.case === 'mixed') {
|
|
8
|
-
s = s.concat('abcdefghijklmnopqrstuvwxyz');
|
|
9
|
-
}
|
|
10
|
-
if (options.case === 'upper' || options.case === 'mixed') {
|
|
11
|
-
s = s.concat('ABCDEFGHIJKLMNOPQRSTUVWXYZ');
|
|
12
|
-
}
|
|
13
|
-
const chars = s.match(/(.{1,1})/g);
|
|
14
|
-
return pattern.replace(/[x]/g, function (c) {
|
|
15
|
-
const i = (Math.random() * chars.length) | 0;
|
|
16
|
-
return chars[i];
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3VpZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL3V0aWwvZ3VpZC9ndWlkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxJQUFJLENBQUMsT0FBZ0IsRUFBRSxVQUFlLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFO0lBQ3BGLE9BQU8sR0FBRyxPQUFPLElBQUksUUFBUSxDQUFDO0lBQzlCLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUVYLElBQUksT0FBTyxDQUFDLE9BQU8sS0FBSyxLQUFLLEVBQUU7UUFDN0IsQ0FBQyxHQUFHLFlBQVksQ0FBQztLQUNsQjtJQUVELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssT0FBTyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFO1FBQ3pFLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLDRCQUE0QixDQUFDLENBQUM7S0FDNUM7SUFFRCxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssT0FBTyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFO1FBQ3hELENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLDRCQUE0QixDQUFDLENBQUM7S0FDNUM7SUFFRCxNQUFNLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRW5DLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDO1FBQ3hDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFN0MsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGd1aWQocGF0dGVybj86IHN0cmluZywgb3B0aW9uczogYW55ID0geyBjYXNlOiAnbG93ZXInLCBudW1iZXJzOiB0cnVlIH0pOiBzdHJpbmcge1xuICBwYXR0ZXJuID0gcGF0dGVybiB8fCAneHh4eHh4JztcbiAgbGV0IHMgPSAnJztcblxuICBpZiAob3B0aW9ucy5udW1iZXJzICE9PSBmYWxzZSkge1xuICAgIHMgPSAnMDEyMzQ1Njc4OSc7XG4gIH1cblxuICBpZiAoIW9wdGlvbnMuY2FzZSB8fCBvcHRpb25zLmNhc2UgPT09ICdsb3dlcicgfHwgb3B0aW9ucy5jYXNlID09PSAnbWl4ZWQnKSB7XG4gICAgcyA9IHMuY29uY2F0KCdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eicpO1xuICB9XG5cbiAgaWYgKG9wdGlvbnMuY2FzZSA9PT0gJ3VwcGVyJyB8fCBvcHRpb25zLmNhc2UgPT09ICdtaXhlZCcpIHtcbiAgICBzID0gcy5jb25jYXQoJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJyk7XG4gIH1cblxuICBjb25zdCBjaGFycyA9IHMubWF0Y2goLyguezEsMX0pL2cpO1xuXG4gIHJldHVybiBwYXR0ZXJuLnJlcGxhY2UoL1t4XS9nLCBmdW5jdGlvbiAoYykge1xuICAgIGNvbnN0IGkgPSAoTWF0aC5yYW5kb20oKSAqIGNoYXJzLmxlbmd0aCkgfCAwO1xuXG4gICAgcmV0dXJuIGNoYXJzW2ldO1xuICB9KTtcbn1cbiJdfQ==
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
export function isArrayEqual(arr1, arr2) {
|
|
2
|
-
if (!Array.isArray(arr1) || !Array.isArray(arr2) || arr1.length !== arr2.length) {
|
|
3
|
-
return false;
|
|
4
|
-
}
|
|
5
|
-
const sortFn = (a, b) => {
|
|
6
|
-
if (a < b) {
|
|
7
|
-
return -1;
|
|
8
|
-
}
|
|
9
|
-
else if (a > b) {
|
|
10
|
-
return 1;
|
|
11
|
-
}
|
|
12
|
-
else {
|
|
13
|
-
return 0;
|
|
14
|
-
}
|
|
15
|
-
};
|
|
16
|
-
arr1 = [...arr1].sort(sortFn);
|
|
17
|
-
arr2 = [...arr2].sort(sortFn);
|
|
18
|
-
return arr1.every((value, index) => {
|
|
19
|
-
return value === arr2[index];
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtYXJyYXktZXF1YWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91dGlsL2lzLWFycmF5LWVxdWFsL2lzLWFycmF5LWVxdWFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxZQUFZLENBQUMsSUFBSSxFQUFFLElBQUk7SUFDckMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLE1BQU0sRUFBRTtRQUMvRSxPQUFPLEtBQUssQ0FBQztLQUNkO0lBRUQsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDdEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ1QsT0FBTyxDQUFDLENBQUMsQ0FBQztTQUNYO2FBQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2hCLE9BQU8sQ0FBQyxDQUFDO1NBQ1Y7YUFBTTtZQUNMLE9BQU8sQ0FBQyxDQUFDO1NBQ1Y7SUFDSCxDQUFDLENBQUE7SUFFRCxJQUFJLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QixJQUFJLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUU5QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDakMsT0FBTyxLQUFLLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBpc0FycmF5RXF1YWwoYXJyMSwgYXJyMikge1xuICBpZiAoIUFycmF5LmlzQXJyYXkoYXJyMSkgfHwgIUFycmF5LmlzQXJyYXkoYXJyMikgfHwgYXJyMS5sZW5ndGggIT09IGFycjIubGVuZ3RoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3Qgc29ydEZuID0gKGEsIGIpID0+IHtcbiAgICBpZiAoYSA8IGIpIHtcbiAgICAgIHJldHVybiAtMTtcbiAgICB9IGVsc2UgaWYgKGEgPiBiKSB7XG4gICAgICByZXR1cm4gMTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICB9XG5cbiAgYXJyMSA9IFsuLi5hcnIxXS5zb3J0KHNvcnRGbik7XG4gIGFycjIgPSBbLi4uYXJyMl0uc29ydChzb3J0Rm4pO1xuXG4gIHJldHVybiBhcnIxLmV2ZXJ5KCh2YWx1ZSwgaW5kZXgpID0+IHtcbiAgICByZXR1cm4gdmFsdWUgPT09IGFycjJbaW5kZXhdO1xuICB9KTtcbn1cbiJdfQ==
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
export function isClass(value, cls) {
|
|
2
|
-
if (typeof value === 'object') {
|
|
3
|
-
if (typeof cls === 'string') {
|
|
4
|
-
if (value.constructor) {
|
|
5
|
-
if (value.constructor.name === cls) {
|
|
6
|
-
return true;
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
else {
|
|
11
|
-
if (value instanceof cls) {
|
|
12
|
-
return true;
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
return false;
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91dGlsL2lzLWNsYXNzL2lzLWNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUc7SUFFaEMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7UUFFN0IsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUU7WUFFM0IsSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFO2dCQUNyQixJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxLQUFLLEdBQUcsRUFBRTtvQkFDbEMsT0FBTyxJQUFJLENBQUM7aUJBQ2I7YUFDRjtTQUVGO2FBQU07WUFFTCxJQUFJLEtBQUssWUFBWSxHQUFHLEVBQUU7Z0JBQ3hCLE9BQU8sSUFBSSxDQUFDO2FBQ2I7U0FDRjtLQUNGO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGlzQ2xhc3ModmFsdWUsIGNscykge1xuXG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG5cbiAgICBpZiAodHlwZW9mIGNscyA9PT0gJ3N0cmluZycpIHtcblxuICAgICAgaWYgKHZhbHVlLmNvbnN0cnVjdG9yKSB7XG4gICAgICAgIGlmICh2YWx1ZS5jb25zdHJ1Y3Rvci5uYW1lID09PSBjbHMpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgfSBlbHNlIHtcblxuICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgY2xzKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cbiJdfQ==
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export function length(object) {
|
|
2
|
-
if (Array.isArray(object)) {
|
|
3
|
-
return object.length;
|
|
4
|
-
}
|
|
5
|
-
if (object instanceof Object) {
|
|
6
|
-
return Object.keys(object).length;
|
|
7
|
-
}
|
|
8
|
-
return 0;
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVuZ3RoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvdXRpbC9sZW5ndGgvbGVuZ3RoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxNQUFNLENBQUMsTUFBTTtJQUMzQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDekIsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDO0tBQ3RCO0lBRUQsSUFBSSxNQUFNLFlBQVksTUFBTSxFQUFFO1FBQzVCLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUM7S0FDbkM7SUFFRCxPQUFPLENBQUMsQ0FBQztBQUNYLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gbGVuZ3RoKG9iamVjdCkge1xuICBpZiAoQXJyYXkuaXNBcnJheShvYmplY3QpKSB7XG4gICAgcmV0dXJuIG9iamVjdC5sZW5ndGg7XG4gIH1cblxuICBpZiAob2JqZWN0IGluc3RhbmNlb2YgT2JqZWN0KSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKG9iamVjdCkubGVuZ3RoO1xuICB9XG5cbiAgcmV0dXJuIDA7XG59XG4iXX0=
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { Observable, Subject, of } from 'rxjs';
|
|
2
|
-
import { guid } from '../guid';
|
|
3
|
-
export class Operation {
|
|
4
|
-
constructor(target, name) {
|
|
5
|
-
this.ready$ = new Subject();
|
|
6
|
-
this.name = name ? name : guid();
|
|
7
|
-
if (target instanceof Observable) {
|
|
8
|
-
this.target = target;
|
|
9
|
-
}
|
|
10
|
-
else {
|
|
11
|
-
this.target = of(target);
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvdXRpbC9xdWV1ZS9vcGVyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFHL0IsTUFBTSxPQUFPLFNBQVM7SUFNcEIsWUFBWSxNQUF1QixFQUFFLElBQWE7UUFGM0MsV0FBTSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFHNUIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFakMsSUFBSSxNQUFNLFlBQVksVUFBVSxFQUFFO1lBQ2hDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1NBQ3RCO2FBQU07WUFDTCxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUMxQjtJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBndWlkIH0gZnJvbSAnLi4vZ3VpZCc7XG5cblxuZXhwb3J0IGNsYXNzIE9wZXJhdGlvbiB7XG5cbiAgcHVibGljIG5hbWU6IHN0cmluZztcbiAgcHVibGljIHRhcmdldDogT2JzZXJ2YWJsZTxhbnk+O1xuICBwdWJsaWMgcmVhZHkkID0gbmV3IFN1YmplY3QoKTtcblxuICBjb25zdHJ1Y3Rvcih0YXJnZXQ6IE9ic2VydmFibGU8YW55PiwgbmFtZT86IHN0cmluZykge1xuICAgIHRoaXMubmFtZSA9IG5hbWUgPyBuYW1lIDogZ3VpZCgpO1xuXG4gICAgaWYgKHRhcmdldCBpbnN0YW5jZW9mIE9ic2VydmFibGUpIHtcbiAgICAgIHRoaXMudGFyZ2V0ID0gdGFyZ2V0O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRhcmdldCA9IG9mKHRhcmdldCk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
import { of, Subject } from 'rxjs';
|
|
2
|
-
import { delay, finalize, map, take, takeUntil } from 'rxjs/operators';
|
|
3
|
-
import { Operation } from './operation';
|
|
4
|
-
import { QueueState } from './queue.enum';
|
|
5
|
-
export class Queue {
|
|
6
|
-
constructor(_limit = Infinity) {
|
|
7
|
-
this._limit = _limit;
|
|
8
|
-
this._queueStats = {
|
|
9
|
-
completed: 0,
|
|
10
|
-
total: 0,
|
|
11
|
-
errors: [],
|
|
12
|
-
};
|
|
13
|
-
this._doneQueueStats = {
|
|
14
|
-
completed: 0,
|
|
15
|
-
total: 0,
|
|
16
|
-
errors: [],
|
|
17
|
-
};
|
|
18
|
-
this._completeQueueStats = {
|
|
19
|
-
completed: 0,
|
|
20
|
-
total: 0,
|
|
21
|
-
errors: [],
|
|
22
|
-
};
|
|
23
|
-
this._done = new Subject();
|
|
24
|
-
this._queue = [];
|
|
25
|
-
this._inProgress = [];
|
|
26
|
-
this._state = QueueState.Idle;
|
|
27
|
-
this._destroy$ = new Subject();
|
|
28
|
-
// if(_targets) {
|
|
29
|
-
// _targets.forEach((target) => {
|
|
30
|
-
// this.push(target);
|
|
31
|
-
// });
|
|
32
|
-
// }
|
|
33
|
-
}
|
|
34
|
-
get total() {
|
|
35
|
-
return this._queueStats.total;
|
|
36
|
-
}
|
|
37
|
-
get completed() {
|
|
38
|
-
return this._queueStats.completed;
|
|
39
|
-
}
|
|
40
|
-
get pending() {
|
|
41
|
-
return this._queue.length;
|
|
42
|
-
}
|
|
43
|
-
get inProgress() {
|
|
44
|
-
return this._inProgress.length;
|
|
45
|
-
}
|
|
46
|
-
get errors() {
|
|
47
|
-
return this._queueStats.errors;
|
|
48
|
-
}
|
|
49
|
-
get state() {
|
|
50
|
-
return this._state;
|
|
51
|
-
}
|
|
52
|
-
get empty() {
|
|
53
|
-
return !this._queue.length && !this._inProgress.length;
|
|
54
|
-
}
|
|
55
|
-
get pendingOperations() {
|
|
56
|
-
return this._queue
|
|
57
|
-
.map((operation) => operation.name);
|
|
58
|
-
}
|
|
59
|
-
get inProgressOperations() {
|
|
60
|
-
return this._inProgress
|
|
61
|
-
.map((operation) => operation.name);
|
|
62
|
-
}
|
|
63
|
-
isProcessing() {
|
|
64
|
-
return this._state === QueueState.Processing;
|
|
65
|
-
}
|
|
66
|
-
isIdle() {
|
|
67
|
-
return this._state === QueueState.Idle;
|
|
68
|
-
}
|
|
69
|
-
setLimit(value) {
|
|
70
|
-
this._limit = value;
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* @depreated
|
|
74
|
-
*/
|
|
75
|
-
subscribe(fun, err, complete) {
|
|
76
|
-
this.observe$
|
|
77
|
-
.subscribe(fun, err, complete);
|
|
78
|
-
}
|
|
79
|
-
get observe$() {
|
|
80
|
-
return this._done
|
|
81
|
-
.pipe(takeUntil(this._destroy$));
|
|
82
|
-
}
|
|
83
|
-
get complete$() {
|
|
84
|
-
if (!this.isProcessing()) {
|
|
85
|
-
return of({ total: 0, completed: 0, errors: [] });
|
|
86
|
-
}
|
|
87
|
-
return this.observe$
|
|
88
|
-
.pipe(take(1), map(() => (this._completeQueueStats)));
|
|
89
|
-
}
|
|
90
|
-
complete(fun, err, complete) {
|
|
91
|
-
this.complete$.subscribe(fun, err, complete);
|
|
92
|
-
}
|
|
93
|
-
push(target, name) {
|
|
94
|
-
const operation = new Operation(target, name);
|
|
95
|
-
this._queueStats.total++;
|
|
96
|
-
this._doneQueueStats.total++;
|
|
97
|
-
this._completeQueueStats.total++;
|
|
98
|
-
this._state = QueueState.Processing;
|
|
99
|
-
if (this._inProgress.length < this._limit) {
|
|
100
|
-
this._processOperation(operation);
|
|
101
|
-
}
|
|
102
|
-
else {
|
|
103
|
-
this._queue.push(operation);
|
|
104
|
-
}
|
|
105
|
-
return operation.ready$;
|
|
106
|
-
}
|
|
107
|
-
clear() {
|
|
108
|
-
this._queue = [];
|
|
109
|
-
this._state = QueueState.Idle;
|
|
110
|
-
this._queueStats = {
|
|
111
|
-
total: 0,
|
|
112
|
-
errors: [],
|
|
113
|
-
completed: 0,
|
|
114
|
-
};
|
|
115
|
-
this._clearDoneQueueStats();
|
|
116
|
-
}
|
|
117
|
-
destroy() {
|
|
118
|
-
this._done.complete();
|
|
119
|
-
this.clear();
|
|
120
|
-
}
|
|
121
|
-
_processOperation(operation) {
|
|
122
|
-
this._inProgress.push(operation);
|
|
123
|
-
operation.target
|
|
124
|
-
.pipe(delay(200), // Hack to prevent extra quick proccess execution
|
|
125
|
-
finalize(() => {
|
|
126
|
-
const opIndex = this._inProgress.indexOf(operation);
|
|
127
|
-
this._inProgress.splice(opIndex, 1);
|
|
128
|
-
if (this.empty) {
|
|
129
|
-
this._state = QueueState.Idle;
|
|
130
|
-
this._done.next(this._doneQueueStats);
|
|
131
|
-
this._clearDoneQueueStats();
|
|
132
|
-
}
|
|
133
|
-
else {
|
|
134
|
-
if (this._queue.length) {
|
|
135
|
-
const queueItem = this._queue.shift();
|
|
136
|
-
this._processOperation(queueItem);
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
}), takeUntil(this._destroy$)).subscribe({
|
|
140
|
-
next: (data) => {
|
|
141
|
-
operation.ready$.next(data);
|
|
142
|
-
},
|
|
143
|
-
error: (error) => {
|
|
144
|
-
this._queueStats.errors.push(error);
|
|
145
|
-
this._doneQueueStats.errors.push(error);
|
|
146
|
-
this._completeQueueStats.errors.push(error);
|
|
147
|
-
operation.ready$.error(error);
|
|
148
|
-
},
|
|
149
|
-
complete: () => {
|
|
150
|
-
this._queueStats.completed++;
|
|
151
|
-
this._doneQueueStats.completed++;
|
|
152
|
-
this._completeQueueStats.completed++;
|
|
153
|
-
operation.ready$.complete();
|
|
154
|
-
}
|
|
155
|
-
});
|
|
156
|
-
}
|
|
157
|
-
_clearDoneQueueStats() {
|
|
158
|
-
this._doneQueueStats = {
|
|
159
|
-
total: 0,
|
|
160
|
-
errors: [],
|
|
161
|
-
completed: 0,
|
|
162
|
-
};
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91dGlsL3F1ZXVlL3F1ZXVlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV4QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRzFDLE1BQU0sT0FBTyxLQUFLO0lBMEJoQixZQUNVLFNBQVMsUUFBUTtRQUFqQixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBekJuQixnQkFBVyxHQUFlO1lBQ2hDLFNBQVMsRUFBRSxDQUFDO1lBQ1osS0FBSyxFQUFFLENBQUM7WUFDUixNQUFNLEVBQUUsRUFBRTtTQUNYLENBQUM7UUFFTSxvQkFBZSxHQUFlO1lBQ3BDLFNBQVMsRUFBRSxDQUFDO1lBQ1osS0FBSyxFQUFFLENBQUM7WUFDUixNQUFNLEVBQUUsRUFBRTtTQUNYLENBQUM7UUFFTSx3QkFBbUIsR0FBZTtZQUN4QyxTQUFTLEVBQUUsQ0FBQztZQUNaLEtBQUssRUFBRSxDQUFDO1lBQ1IsTUFBTSxFQUFFLEVBQUU7U0FDWCxDQUFDO1FBRU0sVUFBSyxHQUFHLElBQUksT0FBTyxFQUFjLENBQUM7UUFDbEMsV0FBTSxHQUFnQixFQUFFLENBQUM7UUFDekIsZ0JBQVcsR0FBZ0IsRUFBRSxDQUFDO1FBQzlCLFdBQU0sR0FBZSxVQUFVLENBQUMsSUFBSSxDQUFDO1FBQ3JDLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBTXRDLGlCQUFpQjtRQUNqQixtQ0FBbUM7UUFDbkMseUJBQXlCO1FBQ3pCLFNBQVM7UUFDVCxJQUFJO0lB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RSxDQUFDO2dCQUNqQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBRXJDLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDOUIsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxvQkFBb0I7UUFDMUIsSUFBSSxDQUFDLGVBQWUsR0FBRztZQUNyQixLQUFLLEVBQUUsQ0FBQztZQUNSLE1BQU0sRUFBRSxFQUFFO1lBQ1YsU0FBUyxFQUFFLENBQUM7U0FDYixDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlbGF5LCBmaW5hbGl6ZSwgbWFwLCB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IE9wZXJhdGlvbiB9IGZyb20gJy4vb3BlcmF0aW9uJztcbmltcG9ydCB7IFF1ZXVlU3RhdHMgfSBmcm9tICcuL3F1ZXVlLXN0YXRzJztcbmltcG9ydCB7IFF1ZXVlU3RhdGUgfSBmcm9tICcuL3F1ZXVlLmVudW0nO1xuXG5cbmV4cG9ydCBjbGFzcyBRdWV1ZSB7XG5cbiAgcHJpdmF0ZSBfcXVldWVTdGF0czogUXVldWVTdGF0cyA9IHtcbiAgICBjb21wbGV0ZWQ6IDAsXG4gICAgdG90YWw6IDAsXG4gICAgZXJyb3JzOiBbXSxcbiAgfTtcblxuICBwcml2YXRlIF9kb25lUXVldWVTdGF0czogUXVldWVTdGF0cyA9IHtcbiAgICBjb21wbGV0ZWQ6IDAsXG4gICAgdG90YWw6IDAsXG4gICAgZXJyb3JzOiBbXSxcbiAgfTtcblxuICBwcml2YXRlIF9jb21wbGV0ZVF1ZXVlU3RhdHM6IFF1ZXVlU3RhdHMgPSB7XG4gICAgY29tcGxldGVkOiAwLFxuICAgIHRvdGFsOiAwLFxuICAgIGVycm9yczogW10sXG4gIH07XG5cbiAgcHJpdmF0ZSBfZG9uZSA9IG5ldyBTdWJqZWN0PFF1ZXVlU3RhdHM+KCk7XG4gIHByaXZhdGUgX3F1ZXVlOiBPcGVyYXRpb25bXSA9IFtdO1xuICBwcml2YXRlIF9pblByb2dyZXNzOiBPcGVyYXRpb25bXSA9IFtdO1xuICBwcml2YXRlIF9zdGF0ZTogUXVldWVTdGF0ZSA9IFF1ZXVlU3RhdGUuSWRsZTtcbiAgcHJpdmF0ZSBfZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfbGltaXQgPSBJbmZpbml0eSxcbiAgICAvL3ByaXZhdGUgX3RhcmdldHM/OiBPYnNlcnZhYmxlPGFueT5bXSxcbiAgKSB7XG4gICAgLy8gaWYoX3RhcmdldHMpIHtcbiAgICAvLyAgIF90YXJnZXRzLmZvckVhY2goKHRhcmdldCkgPT4ge1xuICAgIC8vICAgICB0aGlzLnB1c2godGFyZ2V0KTtcbiAgICAvLyAgIH0pOyBcbiAgICAvLyB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IHRvdGFsKCkge1xuICAgIHJldHVybiB0aGlzLl9xdWV1ZVN0YXRzLnRvdGFsO1xuICB9XG5cbiAgcHVibGljIGdldCBjb21wbGV0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3F1ZXVlU3RhdHMuY29tcGxldGVkO1xuICB9XG5cbiAgcHVibGljIGdldCBwZW5kaW5nKCkge1xuICAgIHJldHVybiB0aGlzLl9xdWV1ZS5sZW5ndGg7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGluUHJvZ3Jlc3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2luUHJvZ3Jlc3MubGVuZ3RoO1xuICB9XG5cbiAgcHVibGljIGdldCBlcnJvcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3F1ZXVlU3RhdHMuZXJyb3JzO1xuICB9XG5cbiAgcHVibGljIGdldCBzdGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdGU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGVtcHR5KCkge1xuICAgIHJldHVybiAhdGhpcy5fcXVldWUubGVuZ3RoICYmICF0aGlzLl9pblByb2dyZXNzLmxlbmd0aFxuICB9XG5cbiAgcHVibGljIGdldCBwZW5kaW5nT3BlcmF0aW9ucygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3F1ZXVlXG4gICAgICAubWFwKChvcGVyYXRpb24pID0+IG9wZXJhdGlvbi5uYW1lKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaW5Qcm9ncmVzc09wZXJhdGlvbnMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLl9pblByb2dyZXNzXG4gICAgICAubWFwKChvcGVyYXRpb24pID0+IG9wZXJhdGlvbi5uYW1lKTtcbiAgfVxuXG4gIHB1YmxpYyBpc1Byb2Nlc3NpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXRlID09PSBRdWV1ZVN0YXRlLlByb2Nlc3Npbmc7XG4gIH1cblxuICBwdWJsaWMgaXNJZGxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9zdGF0ZSA9PT0gUXVldWVTdGF0ZS5JZGxlO1xuICB9XG5cbiAgcHVibGljIHNldExpbWl0KHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9saW1pdCA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWF0ZWRcbiAgICovXG4gIHB1YmxpYyBzdWJzY3JpYmUoZnVuLCBlcnI/LCBjb21wbGV0ZT8pOiB2b2lkIHtcbiAgICB0aGlzLm9ic2VydmUkXG4gICAgICAuc3Vic2NyaWJlKGZ1biwgZXJyLCBjb21wbGV0ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG9ic2VydmUkKCk6IE9ic2VydmFibGU8UXVldWVTdGF0cz4ge1xuICAgIHJldHVybiB0aGlzLl9kb25lXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNvbXBsZXRlJCgpOiBPYnNlcnZhYmxlPFF1ZXVlU3RhdHM+IHtcbiAgICBpZiAoIXRoaXMuaXNQcm9jZXNzaW5nKCkpIHtcbiAgICAgIHJldHVybiBvZih7IHRvdGFsOiAwLCBjb21wbGV0ZWQ6IDAsIGVycm9yczogW10gfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMub2JzZXJ2ZSRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlKDEpLFxuICAgICAgICBtYXAoKCkgPT4gKHRoaXMuX2NvbXBsZXRlUXVldWVTdGF0cykpLFxuICAgICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBjb21wbGV0ZShmdW4sIGVycj8sIGNvbXBsZXRlPyk6IHZvaWQge1xuICAgIHRoaXMuY29tcGxldGUkLnN1YnNjcmliZShmdW4sIGVyciwgY29tcGxldGUpO1xuICB9XG5cbiAgcHVibGljIHB1c2godGFyZ2V0OiBPYnNlcnZhYmxlPGFueT4sIG5hbWU/OiBzdHJpbmcpIHtcbiAgICBjb25zdCBvcGVyYXRpb24gPSBuZXcgT3BlcmF0aW9uKHRhcmdldCwgbmFtZSk7XG5cbiAgICB0aGlzLl9xdWV1ZVN0YXRzLnRvdGFsKys7XG4gICAgdGhpcy5fZG9uZVF1ZXVlU3RhdHMudG90YWwrKztcbiAgICB0aGlzLl9jb21wbGV0ZVF1ZXVlU3RhdHMudG90YWwrKztcbiAgICB0aGlzLl9zdGF0ZSA9IFF1ZXVlU3RhdGUuUHJvY2Vzc2luZztcblxuICAgIGlmICh0aGlzLl9pblByb2dyZXNzLmxlbmd0aCA8IHRoaXMuX2xpbWl0KSB7XG4gICAgICB0aGlzLl9wcm9jZXNzT3BlcmF0aW9uKG9wZXJhdGlvbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3F1ZXVlLnB1c2gob3BlcmF0aW9uKTtcbiAgICB9XG5cbiAgICByZXR1cm4gb3BlcmF0aW9uLnJlYWR5JDtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLl9xdWV1ZSA9IFtdO1xuICAgIHRoaXMuX3N0YXRlID0gUXVldWVTdGF0ZS5JZGxlOyAgICAgICBcbiAgICB0aGlzLl9xdWV1ZVN0YXRzID0ge1xuICAgICAgdG90YWw6IDAsXG4gICAgICBlcnJvcnM6IFtdLFxuICAgICAgY29tcGxldGVkOiAwLFxuICAgIH07XG4gICAgdGhpcy5fY2xlYXJEb25lUXVldWVTdGF0cygpO1xuICB9XG5cbiAgcHVibGljIGRlc3Ryb3koKTogdm9pZCB7ICAgIFxuICAgIHRoaXMuX2RvbmUuY29tcGxldGUoKTtcbiAgICB0aGlzLmNsZWFyKCk7XG4gIH1cblxuICBwcml2YXRlIF9wcm9jZXNzT3BlcmF0aW9uKG9wZXJhdGlvbjogT3BlcmF0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5faW5Qcm9ncmVzcy5wdXNoKG9wZXJhdGlvbik7XG5cbiAgICBvcGVyYXRpb24udGFyZ2V0XG4gICAgICAucGlwZShcbiAgICAgICAgZGVsYXkoMjAwKSwgLy8gSGFjayB0byBwcmV2ZW50IGV4dHJhIHF1aWNrIHByb2NjZXNzIGV4ZWN1dGlvblxuICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgY29uc3Qgb3BJbmRleCA9IHRoaXMuX2luUHJvZ3Jlc3MuaW5kZXhPZihvcGVyYXRpb24pO1xuICAgICAgICAgIHRoaXMuX2luUHJvZ3Jlc3Muc3BsaWNlKG9wSW5kZXgsIDEpO1xuICAgICAgICAgIFxuICAgICAgICAgIGlmICh0aGlzLmVtcHR5KSB7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZSA9IFF1ZXVlU3RhdGUuSWRsZTtcbiAgICAgICAgICAgIHRoaXMuX2RvbmUubmV4dCh0aGlzLl9kb25lUXVldWVTdGF0cyk7XG4gICAgICAgICAgICB0aGlzLl9jbGVhckRvbmVRdWV1ZVN0YXRzKCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9xdWV1ZS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgY29uc3QgcXVldWVJdGVtID0gdGhpcy5fcXVldWUuc2hpZnQoKTtcbiAgICAgICAgICAgICAgdGhpcy5fcHJvY2Vzc09wZXJhdGlvbihxdWV1ZUl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChkYXRhKSA9PiB7XG4gICAgICAgICAgb3BlcmF0aW9uLnJlYWR5JC5uZXh0KGRhdGEpO1xuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XG4gICAgICAgICAgdGhpcy5fcXVldWVTdGF0cy5lcnJvcnMucHVzaChlcnJvcik7XG4gICAgICAgICAgdGhpcy5fZG9uZVF1ZXVlU3RhdHMuZXJyb3JzLnB1c2goZXJyb3IpO1xuICAgICAgICAgIHRoaXMuX2NvbXBsZXRlUXVldWVTdGF0cy5lcnJvcnMucHVzaChlcnJvcik7XG5cbiAgICAgICAgICBvcGVyYXRpb24ucmVhZHkkLmVycm9yKGVycm9yKTtcbiAgICAgICAgfSxcbiAgICAgICAgY29tcGxldGU6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLl9xdWV1ZVN0YXRzLmNvbXBsZXRlZCsrO1xuICAgICAgICAgIHRoaXMuX2RvbmVRdWV1ZVN0YXRzLmNvbXBsZXRlZCsrO1xuICAgICAgICAgIHRoaXMuX2NvbXBsZXRlUXVldWVTdGF0cy5jb21wbGV0ZWQrKztcblxuICAgICAgICAgIG9wZXJhdGlvbi5yZWFkeSQuY29tcGxldGUoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9jbGVhckRvbmVRdWV1ZVN0YXRzKCk6IHZvaWQge1xuICAgIHRoaXMuX2RvbmVRdWV1ZVN0YXRzID0ge1xuICAgICAgdG90YWw6IDAsXG4gICAgICBlcnJvcnM6IFtdLFxuICAgICAgY29tcGxldGVkOiAwLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
import { combineLatest, Observable } from 'rxjs';
|
|
2
|
-
import { shareReplay } from 'rxjs/operators';
|
|
3
|
-
export const fsSourceLoader = (function () {
|
|
4
|
-
let _document;
|
|
5
|
-
let _headElement;
|
|
6
|
-
const _sources = new Map();
|
|
7
|
-
const _loadedResources = new Map();
|
|
8
|
-
// bad way but don't want to bother developer
|
|
9
|
-
setDocument(document);
|
|
10
|
-
// but developer can set document at any time
|
|
11
|
-
function setDocument(document) {
|
|
12
|
-
_document = document;
|
|
13
|
-
_headElement = _document?.head;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* register a list of the resources for future loading
|
|
17
|
-
*
|
|
18
|
-
* example:
|
|
19
|
-
* sourceLoader.registerResources({
|
|
20
|
-
* froala: [
|
|
21
|
-
* '/assets/js/froala/froala_editor.min.js',
|
|
22
|
-
* '/assets/css/froala_editor.pkgd.min.css',
|
|
23
|
-
* ],
|
|
24
|
-
* froala_align: '/assets/js/froala/plugins/align.min.js',
|
|
25
|
-
* froala_colors: '/assets/js/froala/plugins/colors.min.js',
|
|
26
|
-
* froala_image: '/assets/js/froala/plugins/image.min.js',
|
|
27
|
-
* });
|
|
28
|
-
*
|
|
29
|
-
*/
|
|
30
|
-
function registerResources(resources) {
|
|
31
|
-
Object.entries(resources)
|
|
32
|
-
.forEach(([name, path]) => {
|
|
33
|
-
if (typeof path === 'string') {
|
|
34
|
-
path = [path];
|
|
35
|
-
}
|
|
36
|
-
if (!_sources.has(name)) {
|
|
37
|
-
_sources.set(name, new Set());
|
|
38
|
-
}
|
|
39
|
-
const resourcesList = _sources.get(name);
|
|
40
|
-
path.forEach((p) => {
|
|
41
|
-
resourcesList.add(p);
|
|
42
|
-
});
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* load any resource previously registered
|
|
47
|
-
*
|
|
48
|
-
* sourceLoader.loadResource('froala')
|
|
49
|
-
*
|
|
50
|
-
* or load any js/css file
|
|
51
|
-
*
|
|
52
|
-
* sourceLoader.loadResource('/assets/my-source.js')
|
|
53
|
-
*
|
|
54
|
-
*/
|
|
55
|
-
function loadResource(name) {
|
|
56
|
-
if (_loadedResources.has(name)) {
|
|
57
|
-
return _loadedResources.get(name);
|
|
58
|
-
}
|
|
59
|
-
if (_sources.has(name)) {
|
|
60
|
-
const sourcesForLoading = [..._sources.get(name)]
|
|
61
|
-
.map((path) => {
|
|
62
|
-
return _loadResource(path);
|
|
63
|
-
})
|
|
64
|
-
.filter((v) => !!v);
|
|
65
|
-
return combineLatest(sourcesForLoading);
|
|
66
|
-
}
|
|
67
|
-
return _loadResource(name);
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* the same as `loadResource` but you can pass list of the resources for loading
|
|
71
|
-
*/
|
|
72
|
-
function loadResources(listOfResources) {
|
|
73
|
-
const resourcesToLoad = listOfResources
|
|
74
|
-
.reduce((acc, name) => {
|
|
75
|
-
const loading$ = loadResource(name);
|
|
76
|
-
if (loading$) {
|
|
77
|
-
acc.push(loading$);
|
|
78
|
-
}
|
|
79
|
-
return acc;
|
|
80
|
-
}, []);
|
|
81
|
-
return combineLatest(resourcesToLoad);
|
|
82
|
-
}
|
|
83
|
-
///
|
|
84
|
-
function _loadResource(path) {
|
|
85
|
-
if (_isStylesUrl(path)) {
|
|
86
|
-
return _loadStyles(path);
|
|
87
|
-
}
|
|
88
|
-
if (_isJavascriptUrl(path)) {
|
|
89
|
-
return _loadJs(path);
|
|
90
|
-
}
|
|
91
|
-
console.warn(`Resource ${path} can not be identified and loaded`);
|
|
92
|
-
return null;
|
|
93
|
-
}
|
|
94
|
-
function _loadJs(scriptPath) {
|
|
95
|
-
if (!_loadedResources.has(scriptPath)) {
|
|
96
|
-
const obs$ = new Observable((obs) => {
|
|
97
|
-
const script = document.createElement('script');
|
|
98
|
-
script.src = scriptPath;
|
|
99
|
-
_headElement.appendChild(script);
|
|
100
|
-
script.onload = () => {
|
|
101
|
-
obs.next();
|
|
102
|
-
obs.complete();
|
|
103
|
-
};
|
|
104
|
-
script.onerror = (err) => {
|
|
105
|
-
obs.error(err);
|
|
106
|
-
};
|
|
107
|
-
}).pipe(shareReplay(1));
|
|
108
|
-
_loadedResources.set(scriptPath, obs$);
|
|
109
|
-
}
|
|
110
|
-
return _loadedResources.get(scriptPath);
|
|
111
|
-
}
|
|
112
|
-
function _loadStyles(stylePath) {
|
|
113
|
-
if (!_loadedResources.has(stylePath)) {
|
|
114
|
-
const obs$ = new Observable((obs) => {
|
|
115
|
-
const style = document.createElement('link');
|
|
116
|
-
style.id = stylePath;
|
|
117
|
-
style.rel = 'stylesheet';
|
|
118
|
-
style.href = `${stylePath}`;
|
|
119
|
-
_headElement.appendChild(style);
|
|
120
|
-
style.onload = () => {
|
|
121
|
-
obs.next();
|
|
122
|
-
obs.complete();
|
|
123
|
-
};
|
|
124
|
-
style.onerror = (err) => {
|
|
125
|
-
obs.error(err);
|
|
126
|
-
};
|
|
127
|
-
});
|
|
128
|
-
_loadedResources.set(stylePath, obs$);
|
|
129
|
-
}
|
|
130
|
-
return _loadedResources.get(stylePath);
|
|
131
|
-
}
|
|
132
|
-
function _isJavascriptUrl(url) {
|
|
133
|
-
return url.endsWith('.js');
|
|
134
|
-
}
|
|
135
|
-
function _isStylesUrl(url) {
|
|
136
|
-
return url.endsWith('.css');
|
|
137
|
-
}
|
|
138
|
-
return {
|
|
139
|
-
setDocument,
|
|
140
|
-
registerResources,
|
|
141
|
-
loadResource,
|
|
142
|
-
loadResources,
|
|
143
|
-
loadJs: _loadJs,
|
|
144
|
-
loadStyles: _loadStyles,
|
|
145
|
-
};
|
|
146
|
-
})();
|
|
147
|
-
export function loadStyles(path) {
|
|
148
|
-
return fsSourceLoader.loadStyles(path);
|
|
149
|
-
}
|
|
150
|
-
;
|
|
151
|
-
export function loadJs(path) {
|
|
152
|
-
return fsSourceLoader.loadJs(path);
|
|
153
|
-
}
|
|
154
|
-
;
|
|
155
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLWxvYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL3V0aWwvc291cmNlLWxvYWRlci9zb3VyY2UtbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBQztJQUU3QixJQUFJLFNBQW1CLENBQUM7SUFDeEIsSUFBSSxZQUE2QixDQUFDO0lBRWxDLE1BQU0sUUFBUSxHQUFHLElBQUksR0FBRyxFQUF1QixDQUFDO0lBQ2hELE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxHQUFHLEVBQStCLENBQUM7SUFFaEUsNkNBQTZDO0lBQzdDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUV0Qiw2Q0FBNkM7SUFDN0MsU0FBUyxXQUFXLENBQUMsUUFBa0I7UUFDckMsU0FBUyxHQUFHLFFBQVEsQ0FBQztRQUNyQixZQUFZLEdBQUcsU0FBUyxFQUFFLElBQUksQ0FBQztJQUNqQyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7O09BY0c7SUFDSCxTQUFTLGlCQUFpQixDQUFDLFNBQTRDO1FBQ3JFLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO2FBQ3RCLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUU7WUFDeEIsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUU7Z0JBQzVCLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQ2Y7WUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDdkIsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFD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QyxHQUFXO1FBQ25DLE9BQU8sR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsU0FBUyxZQUFZLENBQUMsR0FBVztRQUMvQixPQUFPLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELE9BQU87UUFDTCxXQUFXO1FBQ1gsaUJBQWlCO1FBQ2pCLFlBQVk7UUFDWixhQUFhO1FBQ2IsTUFBTSxFQUFFLE9BQU87UUFDZixVQUFVLEVBQUUsV0FBVztLQUN4QixDQUFDO0FBQ0osQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUVMLE1BQU0sVUFBVSxVQUFVLENBQUMsSUFBSTtJQUM3QixPQUFPLGNBQWMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDekMsQ0FBQztBQUFBLENBQUM7QUFFRixNQUFNLFVBQVUsTUFBTSxDQUFDLElBQUk7SUFDekIsT0FBTyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3JDLENBQUM7QUFBQSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc2hhcmVSZXBsYXkgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBjb25zdCBmc1NvdXJjZUxvYWRlciA9IChmdW5jdGlvbigpIHtcblxuICBsZXQgX2RvY3VtZW50OiBEb2N1bWVudDtcbiAgbGV0IF9oZWFkRWxlbWVudDogSFRNTEhlYWRFbGVtZW50O1xuXG4gIGNvbnN0IF9zb3VyY2VzID0gbmV3IE1hcDxzdHJpbmcsIFNldDxzdHJpbmc+PigpO1xuICBjb25zdCBfbG9hZGVkUmVzb3VyY2VzID0gbmV3IE1hcDxzdHJpbmcsIE9ic2VydmFibGU8dW5rbm93bj4+KCk7XG5cbiAgLy8gYmFkIHdheSBidXQgZG9uJ3Qgd2FudCB0byBib3RoZXIgZGV2ZWxvcGVyXG4gIHNldERvY3VtZW50KGRvY3VtZW50KTtcblxuICAvLyBidXQgZGV2ZWxvcGVyIGNhbiBzZXQgZG9jdW1lbnQgYXQgYW55IHRpbWVcbiAgZnVuY3Rpb24gc2V0RG9jdW1lbnQoZG9jdW1lbnQ6IERvY3VtZW50KTogdm9pZCB7XG4gICAgX2RvY3VtZW50ID0gZG9jdW1lbnQ7XG4gICAgX2hlYWRFbGVtZW50ID0gX2RvY3VtZW50Py5oZWFkO1xuICB9XG5cbiAgLyoqXG4gICAqIHJlZ2lzdGVyIGEgbGlzdCBvZiB0aGUgcmVzb3VyY2VzIGZvciBmdXR1cmUgbG9hZGluZ1xuICAgKlxuICAgKiBleGFtcGxlOlxuICAgKiAgIHNvdXJjZUxvYWRlci5yZWdpc3RlclJlc291cmNlcyh7XG4gICAqICAgICBmcm9hbGE6IFtcbiAgICogICAgICAgJy9hc3NldHMvanMvZnJvYWxhL2Zyb2FsYV9lZGl0b3IubWluLmpzJyxcbiAgICogICAgICAgJy9hc3NldHMvY3NzL2Zyb2FsYV9lZGl0b3IucGtnZC5taW4uY3NzJyxcbiAgICogICAgIF0sXG4gICAqICAgICBmcm9hbGFfYWxpZ246ICcvYXNzZXRzL2pzL2Zyb2FsYS9wbHVnaW5zL2FsaWduLm1pbi5qcycsXG4gICAqICAgICBmcm9hbGFfY29sb3JzOiAnL2Fzc2V0cy9qcy9mcm9hbGEvcGx1Z2lucy9jb2xvcnMubWluLmpzJyxcbiAgICogICAgIGZyb2FsYV9pbWFnZTogJy9hc3NldHMvanMvZnJvYWxhL3BsdWdpbnMvaW1hZ2UubWluLmpzJyxcbiAgICogICB9KTtcbiAgICpcbiAgICovXG4gIGZ1bmN0aW9uIHJlZ2lzdGVyUmVzb3VyY2VzKHJlc291cmNlczogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgc3RyaW5nW10+KSB7XG4gICAgT2JqZWN0LmVudHJpZXMocmVzb3VyY2VzKVxuICAgICAgLmZvckVhY2goKFtuYW1lLCBwYXRoXSkgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIHBhdGggPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgcGF0aCA9IFtwYXRoXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghX3NvdXJjZXMuaGFzKG5hbWUpKSB7XG4gICAgICAgICAgX3NvdXJjZXMuc2V0KG5hbWUsIG5ldyBTZXQoKSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXNvdXJjZXNMaXN0ID0gX3NvdXJjZXMuZ2V0KG5hbWUpO1xuXG4gICAgICAgIHBhdGguZm9yRWFjaCgocCkgPT4ge1xuICAgICAgICAgIHJlc291cmNlc0xpc3QuYWRkKHApO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIGxvYWQgYW55IHJlc291cmNlIHByZXZpb3VzbHkgcmVnaXN0ZXJlZFxuICAgKlxuICAgKiBzb3VyY2VMb2FkZXIubG9hZFJlc291cmNlKCdmcm9hbGEnKVxuICAgKlxuICAgKiBvciBsb2FkIGFueSBqcy9jc3MgZmlsZVxuICAgKlxuICAgKiBzb3VyY2VMb2FkZXIubG9hZFJlc291cmNlKCcvYXNzZXRzL215LXNvdXJjZS5qcycpXG4gICAqXG4gICAqL1xuICBmdW5jdGlvbiBsb2FkUmVzb3VyY2UobmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTx1bmtub3duPiB8IG51bGwge1xuICAgIGlmIChfbG9hZGVkUmVzb3VyY2VzLmhhcyhuYW1lKSkge1xuICAgICAgcmV0dXJuIF9sb2FkZWRSZXNvdXJjZXMuZ2V0KG5hbWUpO1xuICAgIH1cblxuICAgIGlmIChfc291cmNlcy5oYXMobmFtZSkpIHtcbiAgICAgIGNvbnN0IHNvdXJjZXNGb3JMb2FkaW5nID0gWy4uLl9zb3VyY2VzLmdldChuYW1lKV1cbiAgICAgICAgLm1hcCgocGF0aCkgPT4ge1xuICAgICAgICAgIHJldHVybiBfbG9hZFJlc291cmNlKHBhdGgpO1xuICAgICAgICB9KVxuICAgICAgICAuZmlsdGVyKCh2KSA9PiAhIXYpO1xuXG4gICAgICByZXR1cm4gY29tYmluZUxhdGVzdChzb3VyY2VzRm9yTG9hZGluZyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIF9sb2FkUmVzb3VyY2UobmFtZSk7XG4gIH1cblxuICAvKipcbiAgICogdGhlIHNhbWUgYXMgYGxvYWRSZXNvdXJjZWAgYnV0IHlvdSBjYW4gcGFzcyBsaXN0IG9mIHRoZSByZXNvdXJjZXMgZm9yIGxvYWRpbmdcbiAgICovXG4gIGZ1bmN0aW9uIGxvYWRSZXNvdXJjZXMobGlzdE9mUmVzb3VyY2VzOiBzdHJpbmdbXSk6IE9ic2VydmFibGU8dW5rbm93bj4ge1xuICAgIGNvbnN0IHJlc291cmNlc1RvTG9hZCA9IGxpc3RPZlJlc291cmNlc1xuICAgICAgLnJlZHVjZSgoYWNjLCBuYW1lKSA9PiB7XG5cbiAgICAgICAgY29uc3QgbG9hZGluZyQgPSBsb2FkUmVzb3VyY2UobmFtZSk7XG5cbiAgICAgICAgaWYgKGxvYWRpbmckKSB7XG4gICAgICAgICAgYWNjLnB1c2gobG9hZGluZyQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIFtdKTtcblxuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KHJlc291cmNlc1RvTG9hZCk7XG4gIH1cblxuICAvLy9cblxuICBmdW5jdGlvbiBfbG9hZFJlc291cmNlKHBhdGgpOiBPYnNlcnZhYmxlPHVua25vd24+IHwgbnVsbCB7XG4gICAgaWYgKF9pc1N0eWxlc1VybChwYXRoKSkge1xuICAgICAgcmV0dXJuIF9sb2FkU3R5bGVzKHBhdGgpO1xuICAgIH1cblxuICAgIGlmIChfaXNKYXZhc2NyaXB0VXJsKHBhdGgpKSB7XG4gICAgICByZXR1cm4gX2xvYWRKcyhwYXRoKTtcbiAgICB9XG5cbiAgICBjb25zb2xlLndhcm4oYFJlc291cmNlICR7cGF0aH0gY2FuIG5vdCBiZSBpZGVudGlmaWVkIGFuZCBsb2FkZWRgKTtcblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgZnVuY3Rpb24gX2xvYWRKcyhzY3JpcHRQYXRoOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHVua25vd24+IHtcbiAgICBpZiAoIV9sb2FkZWRSZXNvdXJjZXMuaGFzKHNjcmlwdFBhdGgpKSB7XG4gICAgICBjb25zdCBvYnMkID0gbmV3IE9ic2VydmFibGUoKG9icykgPT4ge1xuICAgICAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICAgICAgc2NyaXB0LnNyYyA9IHNjcmlwdFBhdGg7XG5cbiAgICAgICAgX2hlYWRFbGVtZW50LmFwcGVuZENoaWxkKHNjcmlwdCk7XG5cbiAgICAgICAgc2NyaXB0Lm9ubG9hZCA9ICgpID0+IHtcbiAgICAgICAgICBvYnMubmV4dCgpO1xuICAgICAgICAgIG9icy5jb21wbGV0ZSgpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHNjcmlwdC5vbmVycm9yID0gKGVycikgPT4ge1xuICAgICAgICAgIG9icy5lcnJvcihlcnIpO1xuICAgICAgICB9O1xuICAgICAgfSkucGlwZShcbiAgICAgICAgc2hhcmVSZXBsYXkoMSksXG4gICAgICApO1xuXG4gICAgICBfbG9hZGVkUmVzb3VyY2VzLnNldChzY3JpcHRQYXRoLCBvYnMkKTtcbiAgICB9XG5cbiAgICByZXR1cm4gX2xvYWRlZFJlc291cmNlcy5nZXQoc2NyaXB0UGF0aCk7XG4gIH1cblxuICBmdW5jdGlvbiBfbG9hZFN0eWxlcyhzdHlsZVBhdGg6IHN0cmluZyk6IE9ic2VydmFibGU8dW5rbm93bj4ge1xuICAgIGlmICghX2xvYWRlZFJlc291cmNlcy5oYXMoc3R5bGVQYXRoKSkge1xuICAgICAgY29uc3Qgb2JzJCA9IG5ldyBPYnNlcnZhYmxlKChvYnMpID0+IHtcbiAgICAgICAgY29uc3Qgc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7XG4gICAgICAgIHN0eWxlLmlkID0gc3R5bGVQYXRoO1xuICAgICAgICBzdHlsZS5yZWwgPSAnc3R5bGVzaGVldCc7XG4gICAgICAgIHN0eWxlLmhyZWYgPSBgJHtzdHlsZVBhdGh9YDtcblxuICAgICAgICBfaGVhZEVsZW1lbnQuYXBwZW5kQ2hpbGQoc3R5bGUpO1xuXG4gICAgICAgIHN0eWxlLm9ubG9hZCA9ICgpID0+IHtcbiAgICAgICAgICBvYnMubmV4dCgpO1xuICAgICAgICAgIG9icy5jb21wbGV0ZSgpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHN0eWxlLm9uZXJyb3IgPSAoZXJyKSA9PiB7XG4gICAgICAgICAgb2JzLmVycm9yKGVycik7XG4gICAgICAgIH07XG4gICAgICB9KTtcblxuICAgICAgX2xvYWRlZFJlc291cmNlcy5zZXQoc3R5bGVQYXRoLCBvYnMkKTtcbiAgICB9XG5cbiAgICByZXR1cm4gX2xvYWRlZFJlc291cmNlcy5nZXQoc3R5bGVQYXRoKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIF9pc0phdmFzY3JpcHRVcmwodXJsOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdXJsLmVuZHNXaXRoKCcuanMnKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIF9pc1N0eWxlc1VybCh1cmw6IHN0cmluZykge1xuICAgIHJldHVybiB1cmwuZW5kc1dpdGgoJy5jc3MnKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgc2V0RG9jdW1lbnQsXG4gICAgcmVnaXN0ZXJSZXNvdXJjZXMsXG4gICAgbG9hZFJlc291cmNlLFxuICAgIGxvYWRSZXNvdXJjZXMsXG4gICAgbG9hZEpzOiBfbG9hZEpzLFxuICAgIGxvYWRTdHlsZXM6IF9sb2FkU3R5bGVzLFxuICB9O1xufSkoKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRTdHlsZXMocGF0aCk6IE9ic2VydmFibGU8YW55PiB7XG4gIHJldHVybiBmc1NvdXJjZUxvYWRlci5sb2FkU3R5bGVzKHBhdGgpO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGxvYWRKcyhwYXRoKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgcmV0dXJuIGZzU291cmNlTG9hZGVyLmxvYWRKcyhwYXRoKTtcbn07XG4iXX0=
|