@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
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export function inArray(values, array) {
|
|
2
|
+
if (!Array.isArray(values)) {
|
|
3
|
+
values = [values];
|
|
4
|
+
}
|
|
5
|
+
for (let i = 0, len = values.length; i < len; i++) {
|
|
6
|
+
if (array.indexOf(values[i]) >= 0) {
|
|
7
|
+
return true;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
return false;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5BcnJheS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL2FycmF5L2luQXJyYXkvaW5BcnJheS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsT0FBTyxDQUFDLE1BQU0sRUFBRSxLQUFLO0lBRW5DLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDM0IsTUFBTSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEIsQ0FBQztJQUVELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNsRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDbEMsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBpbkFycmF5KHZhbHVlcywgYXJyYXkpIHtcblxuICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWVzKSkge1xuICAgIHZhbHVlcyA9IFt2YWx1ZXNdO1xuICB9XG5cbiAgZm9yIChsZXQgaSA9IDAsIGxlbiA9IHZhbHVlcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgIGlmIChhcnJheS5pbmRleE9mKHZhbHVlc1tpXSkgPj0gMCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuIl19
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { compare } from '../compare';
|
|
2
|
+
export function indexOf(array, query) {
|
|
3
|
+
if (typeof query !== 'function') {
|
|
4
|
+
const queryObj = query;
|
|
5
|
+
query = (item) => {
|
|
6
|
+
return compare(queryObj, item);
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
for (let i = 0, len = array.length; i < len; i++) {
|
|
10
|
+
if (query(array[i])) {
|
|
11
|
+
return i;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
return -1;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXhPZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL2FycmF5L2luZGV4T2YvaW5kZXhPZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3JDLE1BQU0sVUFBVSxPQUFPLENBQUMsS0FBSyxFQUFFLEtBQUs7SUFFbEMsSUFBSSxPQUFPLEtBQUssS0FBSyxVQUFVLEVBQUUsQ0FBQztRQUNoQyxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdkIsS0FBSyxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFFZixPQUFPLE9BQU8sQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFBO0lBQ0gsQ0FBQztJQUVELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNqRCxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3BCLE9BQU8sQ0FBQyxDQUFDO1FBQ1gsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQ1osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXBhcmUgfSBmcm9tICcuLi9jb21wYXJlJztcbmV4cG9ydCBmdW5jdGlvbiBpbmRleE9mKGFycmF5LCBxdWVyeSkge1xuXG4gIGlmICh0eXBlb2YgcXVlcnkgIT09ICdmdW5jdGlvbicpIHtcbiAgICBjb25zdCBxdWVyeU9iaiA9IHF1ZXJ5O1xuICAgIHF1ZXJ5ID0gKGl0ZW0pID0+IHtcblxuICAgICAgcmV0dXJuIGNvbXBhcmUocXVlcnlPYmosIGl0ZW0pO1xuICAgIH1cbiAgfVxuXG4gIGZvciAobGV0IGkgPSAwLCBsZW4gPSBhcnJheS5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgIGlmIChxdWVyeShhcnJheVtpXSkpIHtcbiAgICAgIHJldHVybiBpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiAtMTtcbn1cbiJdfQ==
|
|
@@ -10,4 +10,4 @@ export function list(array, property, index = null) {
|
|
|
10
10
|
});
|
|
11
11
|
return resultList;
|
|
12
12
|
}
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL2FycmF5L2xpc3QvbGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSyxHQUFHLElBQUk7SUFDaEQsTUFBTSxVQUFVLEdBQVEsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUN4QyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsSUFBSSxFQUFFLEdBQUc7UUFDL0IsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDM0MsQ0FBQzthQUFNLENBQUM7WUFDTixVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ2xDLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUNILE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gbGlzdChhcnJheSwgcHJvcGVydHksIGluZGV4ID0gbnVsbCkge1xuICBjb25zdCByZXN1bHRMaXN0OiBhbnkgPSBpbmRleCA/IHt9IDogW107XG4gIGFycmF5LmZvckVhY2goZnVuY3Rpb24gKGl0ZW0sIGlkeCkge1xuICAgIGlmIChpbmRleCkge1xuICAgICAgcmVzdWx0TGlzdFtpdGVtW2luZGV4XV0gPSBpdGVtW3Byb3BlcnR5XTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0TGlzdC5wdXNoKGl0ZW1bcHJvcGVydHldKTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gcmVzdWx0TGlzdDtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,21 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZVZhbHVlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvYXJyYXkvbmFtZVZhbHVlL25hbWVWYWx1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsU0FBUyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSztJQUUxQyxNQUFNLElBQUksR0FBRyxFQUFFLENBQUM7SUFDaEIsSUFBSSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7UUFFbEIsTUFBTSxNQUFNLEdBQUcsT0FBTyxJQUFJLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsSUFBSTtZQUMvRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQixDQUFDLENBQUM7UUFDRixNQUFNLE9BQU8sR0FBRyxPQUFPLEtBQUssS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsVUFBVSxJQUFJO1lBQ2xFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JCLENBQUMsQ0FBQztRQUVGLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxJQUFJO1lBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQyxDQUFDO1FBQ3hELENBQUMsQ0FBQyxDQUFDO0lBRUwsQ0FBQztTQUFNLENBQUM7UUFDTixLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIG5hbWVWYWx1ZShhcnJheSwgbmFtZSwgdmFsdWUpIHtcblxuICBjb25zdCBsaXN0ID0gW107XG4gIGlmIChuYW1lIHx8IHZhbHVlKSB7XG5cbiAgICBjb25zdCBuYW1lRm4gPSB0eXBlb2YgbmFtZSA9PT0gJ2Z1bmN0aW9uJyA/IG5hbWUgOiBmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgcmV0dXJuIGl0ZW1bbmFtZV07XG4gICAgfTtcbiAgICBjb25zdCB2YWx1ZUZuID0gdHlwZW9mIHZhbHVlID09PSAnZnVuY3Rpb24nID8gdmFsdWUgOiBmdW5jdGlvbiAoaXRlbSkge1xuICAgICAgcmV0dXJuIGl0ZW1bdmFsdWVdO1xuICAgIH07XG5cbiAgICBhcnJheS5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICBsaXN0LnB1c2goe25hbWU6IG5hbWVGbihpdGVtKSwgdmFsdWU6IHZhbHVlRm4oaXRlbSl9KTtcbiAgICB9KTtcblxuICB9IGVsc2Uge1xuICAgIGFycmF5LmZvckVhY2goZnVuY3Rpb24gKG4sIHYpIHtcbiAgICAgIGxpc3QucHVzaCh7bmFtZTogbiwgdmFsdWU6IHZ9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBsaXN0O1xufVxuIl19
|
|
@@ -6,4 +6,4 @@ export function remove(array, query) {
|
|
|
6
6
|
}
|
|
7
7
|
return idx;
|
|
8
8
|
}
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3ZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvYXJyYXkvcmVtb3ZlL3JlbW92ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3JDLE1BQU0sVUFBVSxNQUFNLENBQUMsS0FBSyxFQUFFLEtBQUs7SUFFakMsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUVsQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNiLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluZGV4T2YgfSBmcm9tICcuLi9pbmRleE9mJztcbmV4cG9ydCBmdW5jdGlvbiByZW1vdmUoYXJyYXksIHF1ZXJ5KSB7XG5cbiAgY29uc3QgaWR4ID0gaW5kZXhPZihhcnJheSwgcXVlcnkpO1xuXG4gIGlmIChpZHggPj0gMCkge1xuICAgIHJldHVybiBhcnJheS5zcGxpY2UoaWR4LCAxKTtcbiAgfVxuXG4gIHJldHVybiBpZHg7XG59XG4iXX0=
|
|
@@ -0,0 +1,27 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL2FycmF5L3NvcnQvc29ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxHQUFHLEtBQUs7SUFDaEQsSUFBSSxPQUFPLEtBQUssS0FBSyxVQUFVLEVBQUUsQ0FBQztRQUNoQyxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdkIsS0FBSyxHQUFHLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDcEIsSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDWixJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztvQkFDOUIsT0FBTyxDQUFDLENBQUM7Z0JBQ1gsQ0FBQztxQkFBTSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztvQkFDckMsT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDWixDQUFDO1lBQ0gsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO29CQUM5QixPQUFPLENBQUMsQ0FBQztnQkFDWCxDQUFDO3FCQUFNLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO29CQUNyQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUNaLENBQUM7WUFDSCxDQUFDO1lBQ0QsT0FBTyxDQUFDLENBQUM7UUFDWCxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQixPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gc29ydChhcnJheSwgcXVlcnksIHJldmVyc2UgPSBmYWxzZSkge1xuICBpZiAodHlwZW9mIHF1ZXJ5ICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgY29uc3QgcXVlcnlTdHIgPSBxdWVyeTtcbiAgICBxdWVyeSA9IGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgICBpZiAocmV2ZXJzZSkge1xuICAgICAgICBpZiAoYVtxdWVyeVN0cl0gPCBiW3F1ZXJ5U3RyXSkge1xuICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICB9IGVsc2UgaWYgKGFbcXVlcnlTdHJdID4gYltxdWVyeVN0cl0pIHtcbiAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChhW3F1ZXJ5U3RyXSA+IGJbcXVlcnlTdHJdKSB7XG4gICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgIH0gZWxzZSBpZiAoYVtxdWVyeVN0cl0gPCBiW3F1ZXJ5U3RyXSkge1xuICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIDA7XG4gICAgfTtcbiAgfVxuXG4gIGFycmF5LnNvcnQocXVlcnkpO1xuICByZXR1cm4gYXJyYXk7XG59XG4iXX0=
|
|
@@ -0,0 +1,22 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNyb255bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL2Zvcm1hdC9hY3JvbnltL2Fjcm9ueW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLE9BQU8sQ0FBQyxHQUFXLEVBQUUsTUFBTSxHQUFHLENBQUM7SUFDN0MsTUFBTSxjQUFjLEdBQUcsR0FBRztTQUN2QixPQUFPLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDO1NBQzlCLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUVkLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztJQUVoQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLElBQUksY0FBYyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFFaEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO29CQUNoQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO3dCQUM1QixNQUFNO29CQUNSLENBQUM7b0JBQ0QsTUFBTSxJQUFJLGNBQWMsQ0FBQyxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ2pELENBQUM7WUFDSCxDQUFDO1lBQ0QsTUFBTTtRQUNSLENBQUM7UUFDRCxNQUFNLElBQUksY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQy9DLENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGFjcm9ueW0oc3RyOiBzdHJpbmcsIGxlbmd0aCA9IDIpOiBzdHJpbmcge1xuICBjb25zdCBzcGxpdHRlZFN0cmluZyA9IHN0clxuICAgIC5yZXBsYWNlKC9bXmEtekEtWjAtOV0rL2csICcgJylcbiAgICAuc3BsaXQoJyAnKTtcblxuICBsZXQgcmVzdWx0ID0gJyc7XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuICAgIGlmICghc3BsaXR0ZWRTdHJpbmdbaV0pIHtcbiAgICAgIGlmIChzcGxpdHRlZFN0cmluZy5sZW5ndGggPT09IDEpIHtcblxuICAgICAgICBmb3IgKGxldCBqID0gMTsgaiA8IGxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgaWYgKCFzcGxpdHRlZFN0cmluZ1tpLTFdW2pdKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgcmVzdWx0ICs9IHNwbGl0dGVkU3RyaW5nW2ktMV1bal0udG9VcHBlckNhc2UoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHJlc3VsdCArPSBzcGxpdHRlZFN0cmluZ1tpXVswXS50b1VwcGVyQ2FzZSgpO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,18 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnl0ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGlicy9mb3JtYXQvYnl0ZXMvYnl0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxQyxNQUFNLFVBQVUsS0FBSyxDQUFDLEtBQWEsRUFBRSxRQUFpQixFQUFFLElBQXVDO0lBQzdGLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNYLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFDRCxNQUFNLENBQUMsR0FBRyxPQUFPLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQztRQUNsQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUUvQyxJQUFHLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDeEIsUUFBUSxHQUFHLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELE9BQU8sR0FBRyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNsQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7U0FDbkIsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7VUFDbEIsR0FBRztVQUNILENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUM7QUFDMUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzTnVtZXJpYyB9IGZyb20gJy4uLy4uLy4uL2xpYnMnO1xuXG5leHBvcnQgZnVuY3Rpb24gYnl0ZXMoYnl0ZXM6IG51bWJlciwgZGVjaW1hbHM/OiBudW1iZXIsIHVuaXQ/OiAnS0InIHwgJ01CJyB8ICdHQicgfCAnVEInIHwgJ1BCJykge1xuICBpZiAoIWJ5dGVzKSB7IFxuICAgIHJldHVybiAnMCBNQic7IFxuICB9XG4gIGNvbnN0IGUgPSB0eXBlb2YgdW5pdCA9PT0gJ3N0cmluZycgP1xuICAgICdLTUdUUCcuaW5kZXhPZih1bml0LnJlcGxhY2UoJ0InLCAnJykpICsgMSA6XG4gICAgTWF0aC5mbG9vcihNYXRoLmxvZyhieXRlcykgLyBNYXRoLmxvZygxMDI0KSk7XG5cbiAgaWYoIWlzTnVtZXJpYyhkZWNpbWFscykpIHtcbiAgICBkZWNpbWFscyA9IChieXRlcyAvIDEwMjQpID4gMTAwMCA/IDIgOiAwO1xuICB9XG5cbiAgcmV0dXJuIGAkeyhieXRlcyAvIE1hdGgucG93KDEwMjQsIGUpKVxuICAgIC50b0ZpeGVkKGRlY2ltYWxzKX1gXG4gICAgLnJlcGxhY2UoL1xcLjAwLywgJycpXG4gICAgKyAnICdcbiAgICArIChlID8gJyBLTUdUUCcuY2hhckF0KGUpIDogJycpICsgJ0InO1xufVxuIl19
|
|
@@ -5,4 +5,4 @@ export function number(value, decimals) {
|
|
|
5
5
|
}
|
|
6
6
|
return Number(value || 0).toLocaleString(undefined, { maximumFractionDigits: decimals });
|
|
7
7
|
}
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvZm9ybWF0L251bWJlci9udW1iZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFOUMsTUFBTSxVQUFVLE1BQU0sQ0FBQyxLQUFLLEVBQUUsUUFBUztJQUNyQyxJQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxFQUFFLHFCQUFxQixFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7QUFDM0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzTnVtZXJpYywgcm91bmQgfSBmcm9tICcuLi8uLi91dGlsJztcblxuZXhwb3J0IGZ1bmN0aW9uIG51bWJlcih2YWx1ZSwgZGVjaW1hbHM/KSB7XG4gIGlmKGlzTnVtZXJpYyhkZWNpbWFscykpIHtcbiAgICB2YWx1ZSA9IHJvdW5kKHZhbHVlLCBkZWNpbWFscyk7XG4gIH1cblxuICByZXR1cm4gTnVtYmVyKHZhbHVlIHx8IDApLnRvTG9jYWxlU3RyaW5nKHVuZGVmaW5lZCwgeyBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IGRlY2ltYWxzIH0pO1xufVxuIl19
|
|
@@ -0,0 +1,12 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1bmNhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGlicy9mb3JtYXQvdHJ1bmNhdGUvdHJ1bmNhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLFFBQVEsQ0FBQyxLQUFhLEVBQUUsS0FBSyxHQUFHLEdBQUcsRUFBRSxhQUFhLEdBQUcsS0FBSyxFQUFFLFFBQVEsR0FBRyxLQUFLO0lBRTFGLEtBQUssR0FBRyxLQUFLLElBQUksRUFBRSxDQUFDO0lBRXBCLElBQUksYUFBYSxFQUFFLENBQUM7UUFDbEIsS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsSUFBSSxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDO0lBRXpDLElBQUksTUFBTSxLQUFLLEtBQUssRUFBRSxDQUFDO1FBQ3JCLE1BQU0sSUFBSSxRQUFRLENBQUM7SUFDckIsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDO0FBRWhCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gdHJ1bmNhdGUodmFsdWU6IHN0cmluZywgbGltaXQgPSAxMDAsIGNvbXBsZXRlV29yZHMgPSBmYWxzZSwgZWxsaXBzaXMgPSAnLi4uJykge1xuXG4gIHZhbHVlID0gdmFsdWUgfHwgJyc7XG5cbiAgaWYgKGNvbXBsZXRlV29yZHMpIHtcbiAgICBsaW1pdCA9IHZhbHVlLnN1YnN0cigwLCBsaW1pdCkubGFzdEluZGV4T2YoJyAnKTtcbiAgfVxuXG4gIGxldCByZXN1bHQgPSBgJHt2YWx1ZS5zdWJzdHIoMCwgbGltaXQpfWA7XG5cbiAgaWYgKHJlc3VsdCAhPT0gdmFsdWUpIHtcbiAgICByZXN1bHQgKz0gZWxsaXBzaXM7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xuXG59XG4iXX0=
|
|
@@ -0,0 +1,20 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsYXllZFJldHJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYnMvcnhqcy9kZWxheWVkUmV0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEdBQUcsRUFBYyxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFELE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzNELE1BQU0sVUFBVSxZQUFZLENBQUMsT0FBZSxFQUFFLFFBQVEsR0FBRyxDQUFDLEVBQUUsT0FBZ0I7SUFDMUUsSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFDO0lBRWhCLE9BQU8sQ0FBQyxHQUF3QixFQUFFLEVBQUUsQ0FDbEMsR0FBRyxDQUFDLElBQUksQ0FDTixTQUFTLENBQUMsQ0FBQyxNQUEyQixFQUFFLEVBQUUsQ0FDeEMsTUFBTSxDQUFDLElBQUksQ0FDVCxHQUFHLENBQUMsR0FBRyxFQUFFO1FBQ1AsT0FBTyxFQUFFLENBQUM7UUFFVixJQUFJLE9BQU8sSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUN4QixPQUFPLENBQUMsSUFBSSxDQUFDLHFDQUFxQyxPQUFPLEdBQUcsSUFBSSxTQUFTLE9BQU8sSUFBSSxRQUFRLFdBQVcsQ0FBQyxDQUFBO1FBQzFHLENBQUM7SUFDSCxDQUFDLENBQUMsRUFDRixTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUNsQixHQUFHLENBQ0QsR0FBRyxFQUFFLENBQUMsT0FBTyxHQUFHLFFBQVEsRUFDeEIsVUFBVSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsRUFDOUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUNmLENBQ0YsQ0FDRixDQUNGLENBQ0YsQ0FBQTtBQUNMLENBQUM7QUFJRCxNQUFNLGVBQWUsR0FBRyxDQUFDLFFBQWdCLEVBQUUsY0FBc0IsRUFBRSxFQUFFO0lBQ25FLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNwQixPQUFPLCtCQUErQixRQUFRLG9CQUFvQixDQUFDO0lBQ3JFLENBQUM7U0FBTSxDQUFDO1FBQ04sT0FBTyxjQUFjLENBQUE7SUFDdkIsQ0FBQztBQUNILENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlpZiwgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciwgdGltZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNvbmNhdE1hcCwgcmV0cnlXaGVuLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGRlbGF5ZWRSZXRyeShkZWxheU1zOiBudW1iZXIsIG1heFJldHJ5ID0gNSwgbWVzc2FnZT86IHN0cmluZykge1xuICBsZXQgcmV0cmllcyA9IDA7XG5cbiAgcmV0dXJuIChzcmM6IE9ic2VydmFibGU8dW5rbm93bj4pID0+XG4gICAgc3JjLnBpcGUoXG4gICAgICByZXRyeVdoZW4oKGVycm9yczogT2JzZXJ2YWJsZTx1bmtub3duPikgPT5cbiAgICAgICAgZXJyb3JzLnBpcGUoXG4gICAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICAgIHJldHJpZXMrKztcblxuICAgICAgICAgICAgaWYgKHJldHJpZXMgPD0gbWF4UmV0cnkpIHtcbiAgICAgICAgICAgICAgY29uc29sZS5pbmZvKGBGYWlsZWQgdG8gbG9hZCBSZXNvdXJjZS4gUmV0cnkgaW4gJHtkZWxheU1zIC8gMTAwMH0gc2VjLiAke3JldHJpZXN9LyR7bWF4UmV0cnl9IHRpbWVzLi4uYClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KSxcbiAgICAgICAgICBjb25jYXRNYXAoKGVycm9yKSA9PlxuICAgICAgICAgICAgaWlmKFxuICAgICAgICAgICAgICAoKSA9PiByZXRyaWVzID4gbWF4UmV0cnksXG4gICAgICAgICAgICAgIHRocm93RXJyb3IoZ2V0RXJyb3JNZXNzYWdlKG1heFJldHJ5LCBtZXNzYWdlKSksXG4gICAgICAgICAgICAgIHRpbWVyKGRlbGF5TXMpLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICApLFxuICAgICAgICApXG4gICAgICApXG4gICAgKVxufVxuXG5cblxuY29uc3QgZ2V0RXJyb3JNZXNzYWdlID0gKG1heFJldHJ5OiBudW1iZXIsIGRlZmF1bHRNZXNzYWdlOiBzdHJpbmcpID0+IHtcbiAgaWYgKCFkZWZhdWx0TWVzc2FnZSkge1xuICAgIHJldHVybiBgRmFpbGVkIHRvIGxvYWQgUmVzb3VyY2UgZm9yICR7bWF4UmV0cnl9IHRpbWVzLiBHaXZpbmcgdXAuYDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gZGVmYXVsdE1lc3NhZ2VcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,21 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91dGlsL2Nsb25lL2Nsb25lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxLQUFLLENBQUMsR0FBRztJQUN2QixJQUFHLEdBQUcsWUFBWSxJQUFJLEVBQUUsQ0FBQztRQUN2QixPQUFPLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7U0FBTSxJQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUMvQixNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDZixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3JDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEIsQ0FBQztRQUVELE9BQU8sR0FBRyxDQUFDO0lBQ1osQ0FBQztTQUFNLElBQUcsT0FBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNsQixLQUFJLElBQUksR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDL0IsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2YsQ0FBQztJQUVELE9BQU8sR0FBRyxDQUFDO0FBQ1osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBjbG9uZShvYmopIHtcbiAgaWYob2JqIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgIHJldHVybiBuZXcgRGF0ZShvYmopO1xuICB9IGVsc2UgaWYoQXJyYXkuaXNBcnJheShvYmopKSB7XG5cdFx0Y29uc3QgYXJyID0gW107XG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBvYmoubGVuZ3RoOyBpKyspIHtcblx0XHRcdGFycltpXSA9IGNsb25lKG9ialtpXSk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGFycjtcblx0fSBlbHNlIGlmKHR5cGVvZihvYmopID09PSAnb2JqZWN0Jykge1xuXHRcdGNvbnN0IGNsb25lZCA9IHt9O1xuXHRcdGZvcihsZXQga2V5IGluIG9iaikge1xuXHRcdFx0Y2xvbmVkW2tleV0gPSBjbG9uZShvYmpba2V5XSk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGNsb25lZDtcdFxuXHR9XG5cblx0cmV0dXJuIG9iajtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,19 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3VpZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWJzL3V0aWwvZ3VpZC9ndWlkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxJQUFJLENBQUMsT0FBZ0IsRUFBRSxVQUFlLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFO0lBQ3BGLE9BQU8sR0FBRyxPQUFPLElBQUksUUFBUSxDQUFDO0lBQzlCLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUVYLElBQUksT0FBTyxDQUFDLE9BQU8sS0FBSyxLQUFLLEVBQUUsQ0FBQztRQUM5QixDQUFDLEdBQUcsWUFBWSxDQUFDO0lBQ25CLENBQUM7SUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLE9BQU8sSUFBSSxPQUFPLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRSxDQUFDO1FBQzFFLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLDRCQUE0QixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxPQUFPLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUUsQ0FBQztRQUN6RCxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxNQUFNLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRW5DLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDO1FBQ3hDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFN0MsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGd1aWQocGF0dGVybj86IHN0cmluZywgb3B0aW9uczogYW55ID0geyBjYXNlOiAnbG93ZXInLCBudW1iZXJzOiB0cnVlIH0pOiBzdHJpbmcge1xuICBwYXR0ZXJuID0gcGF0dGVybiB8fCAneHh4eHh4JztcbiAgbGV0IHMgPSAnJztcblxuICBpZiAob3B0aW9ucy5udW1iZXJzICE9PSBmYWxzZSkge1xuICAgIHMgPSAnMDEyMzQ1Njc4OSc7XG4gIH1cblxuICBpZiAoIW9wdGlvbnMuY2FzZSB8fCBvcHRpb25zLmNhc2UgPT09ICdsb3dlcicgfHwgb3B0aW9ucy5jYXNlID09PSAnbWl4ZWQnKSB7XG4gICAgcyA9IHMuY29uY2F0KCdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eicpO1xuICB9XG5cbiAgaWYgKG9wdGlvbnMuY2FzZSA9PT0gJ3VwcGVyJyB8fCBvcHRpb25zLmNhc2UgPT09ICdtaXhlZCcpIHtcbiAgICBzID0gcy5jb25jYXQoJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJyk7XG4gIH1cblxuICBjb25zdCBjaGFycyA9IHMubWF0Y2goLyguezEsMX0pL2cpO1xuXG4gIHJldHVybiBwYXR0ZXJuLnJlcGxhY2UoL1t4XS9nLCBmdW5jdGlvbiAoYykge1xuICAgIGNvbnN0IGkgPSAoTWF0aC5yYW5kb20oKSAqIGNoYXJzLmxlbmd0aCkgfCAwO1xuXG4gICAgcmV0dXJuIGNoYXJzW2ldO1xuICB9KTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,22 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtYXJyYXktZXF1YWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91dGlsL2lzLWFycmF5LWVxdWFsL2lzLWFycmF5LWVxdWFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxZQUFZLENBQUMsSUFBSSxFQUFFLElBQUk7SUFDckMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2hGLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE1BQU0sTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ3RCLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ1YsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUNaLENBQUM7YUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNqQixPQUFPLENBQUMsQ0FBQztRQUNYLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxDQUFDLENBQUM7UUFDWCxDQUFDO0lBQ0gsQ0FBQyxDQUFBO0lBRUQsSUFBSSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUIsSUFBSSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFOUIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQ2pDLE9BQU8sS0FBSyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gaXNBcnJheUVxdWFsKGFycjEsIGFycjIpIHtcbiAgaWYgKCFBcnJheS5pc0FycmF5KGFycjEpIHx8ICFBcnJheS5pc0FycmF5KGFycjIpIHx8IGFycjEubGVuZ3RoICE9PSBhcnIyLmxlbmd0aCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IHNvcnRGbiA9IChhLCBiKSA9PiB7XG4gICAgaWYgKGEgPCBiKSB7XG4gICAgICByZXR1cm4gLTE7XG4gICAgfSBlbHNlIGlmIChhID4gYikge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgfVxuXG4gIGFycjEgPSBbLi4uYXJyMV0uc29ydChzb3J0Rm4pO1xuICBhcnIyID0gWy4uLmFycjJdLnNvcnQoc29ydEZuKTtcblxuICByZXR1cm4gYXJyMS5ldmVyeSgodmFsdWUsIGluZGV4KSA9PiB7XG4gICAgcmV0dXJuIHZhbHVlID09PSBhcnIyW2luZGV4XTtcbiAgfSk7XG59XG4iXX0=
|
|
@@ -0,0 +1,18 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91dGlsL2lzLWNsYXNzL2lzLWNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUc7SUFFaEMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUU5QixJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBRTVCLElBQUksS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUN0QixJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFDO29CQUNuQyxPQUFPLElBQUksQ0FBQztnQkFDZCxDQUFDO1lBQ0gsQ0FBQztRQUVILENBQUM7YUFBTSxDQUFDO1lBRU4sSUFBSSxLQUFLLFlBQVksR0FBRyxFQUFFLENBQUM7Z0JBQ3pCLE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGlzQ2xhc3ModmFsdWUsIGNscykge1xuXG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG5cbiAgICBpZiAodHlwZW9mIGNscyA9PT0gJ3N0cmluZycpIHtcblxuICAgICAgaWYgKHZhbHVlLmNvbnN0cnVjdG9yKSB7XG4gICAgICAgIGlmICh2YWx1ZS5jb25zdHJ1Y3Rvci5uYW1lID09PSBjbHMpIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgfSBlbHNlIHtcblxuICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgY2xzKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,10 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVuZ3RoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvdXRpbC9sZW5ndGgvbGVuZ3RoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxNQUFNLENBQUMsTUFBTTtJQUMzQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUMxQixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQUksTUFBTSxZQUFZLE1BQU0sRUFBRSxDQUFDO1FBQzdCLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDcEMsQ0FBQztJQUVELE9BQU8sQ0FBQyxDQUFDO0FBQ1gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBsZW5ndGgob2JqZWN0KSB7XG4gIGlmIChBcnJheS5pc0FycmF5KG9iamVjdCkpIHtcbiAgICByZXR1cm4gb2JqZWN0Lmxlbmd0aDtcbiAgfVxuXG4gIGlmIChvYmplY3QgaW5zdGFuY2VvZiBPYmplY3QpIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMob2JqZWN0KS5sZW5ndGg7XG4gIH1cblxuICByZXR1cm4gMDtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Observable, Subject, of } from 'rxjs';
|
|
2
|
+
import { guid } from '../guid';
|
|
3
|
+
export class Operation {
|
|
4
|
+
name;
|
|
5
|
+
target;
|
|
6
|
+
ready$ = new Subject();
|
|
7
|
+
constructor(target, name) {
|
|
8
|
+
this.name = name ? name : guid();
|
|
9
|
+
if (target instanceof Observable) {
|
|
10
|
+
this.target = target;
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
this.target = of(target);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvdXRpbC9xdWV1ZS9vcGVyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFHL0IsTUFBTSxPQUFPLFNBQVM7SUFFYixJQUFJLENBQVM7SUFDYixNQUFNLENBQWtCO0lBQ3hCLE1BQU0sR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBRTlCLFlBQVksTUFBdUIsRUFBRSxJQUFhO1FBQ2hELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBRWpDLElBQUksTUFBTSxZQUFZLFVBQVUsRUFBRSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3ZCLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0IsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBndWlkIH0gZnJvbSAnLi4vZ3VpZCc7XG5cblxuZXhwb3J0IGNsYXNzIE9wZXJhdGlvbiB7XG5cbiAgcHVibGljIG5hbWU6IHN0cmluZztcbiAgcHVibGljIHRhcmdldDogT2JzZXJ2YWJsZTxhbnk+O1xuICBwdWJsaWMgcmVhZHkkID0gbmV3IFN1YmplY3QoKTtcblxuICBjb25zdHJ1Y3Rvcih0YXJnZXQ6IE9ic2VydmFibGU8YW55PiwgbmFtZT86IHN0cmluZykge1xuICAgIHRoaXMubmFtZSA9IG5hbWUgPyBuYW1lIDogZ3VpZCgpO1xuXG4gICAgaWYgKHRhcmdldCBpbnN0YW5jZW9mIE9ic2VydmFibGUpIHtcbiAgICAgIHRoaXMudGFyZ2V0ID0gdGFyZ2V0O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRhcmdldCA9IG9mKHRhcmdldCk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,166 @@
|
|
|
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
|
+
_limit;
|
|
7
|
+
_queueStats = {
|
|
8
|
+
completed: 0,
|
|
9
|
+
total: 0,
|
|
10
|
+
errors: [],
|
|
11
|
+
};
|
|
12
|
+
_doneQueueStats = {
|
|
13
|
+
completed: 0,
|
|
14
|
+
total: 0,
|
|
15
|
+
errors: [],
|
|
16
|
+
};
|
|
17
|
+
_completeQueueStats = {
|
|
18
|
+
completed: 0,
|
|
19
|
+
total: 0,
|
|
20
|
+
errors: [],
|
|
21
|
+
};
|
|
22
|
+
_done = new Subject();
|
|
23
|
+
_queue = [];
|
|
24
|
+
_inProgress = [];
|
|
25
|
+
_state = QueueState.Idle;
|
|
26
|
+
_destroy$ = new Subject();
|
|
27
|
+
constructor(_limit = Infinity) {
|
|
28
|
+
this._limit = _limit;
|
|
29
|
+
// if(_targets) {
|
|
30
|
+
// _targets.forEach((target) => {
|
|
31
|
+
// this.push(target);
|
|
32
|
+
// });
|
|
33
|
+
// }
|
|
34
|
+
}
|
|
35
|
+
get total() {
|
|
36
|
+
return this._queueStats.total;
|
|
37
|
+
}
|
|
38
|
+
get completed() {
|
|
39
|
+
return this._queueStats.completed;
|
|
40
|
+
}
|
|
41
|
+
get pending() {
|
|
42
|
+
return this._queue.length;
|
|
43
|
+
}
|
|
44
|
+
get inProgress() {
|
|
45
|
+
return this._inProgress.length;
|
|
46
|
+
}
|
|
47
|
+
get errors() {
|
|
48
|
+
return this._queueStats.errors;
|
|
49
|
+
}
|
|
50
|
+
get state() {
|
|
51
|
+
return this._state;
|
|
52
|
+
}
|
|
53
|
+
get empty() {
|
|
54
|
+
return !this._queue.length && !this._inProgress.length;
|
|
55
|
+
}
|
|
56
|
+
get pendingOperations() {
|
|
57
|
+
return this._queue
|
|
58
|
+
.map((operation) => operation.name);
|
|
59
|
+
}
|
|
60
|
+
get inProgressOperations() {
|
|
61
|
+
return this._inProgress
|
|
62
|
+
.map((operation) => operation.name);
|
|
63
|
+
}
|
|
64
|
+
isProcessing() {
|
|
65
|
+
return this._state === QueueState.Processing;
|
|
66
|
+
}
|
|
67
|
+
isIdle() {
|
|
68
|
+
return this._state === QueueState.Idle;
|
|
69
|
+
}
|
|
70
|
+
setLimit(value) {
|
|
71
|
+
this._limit = value;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* @depreated
|
|
75
|
+
*/
|
|
76
|
+
subscribe(fun, err, complete) {
|
|
77
|
+
this.observe$
|
|
78
|
+
.subscribe(fun, err, complete);
|
|
79
|
+
}
|
|
80
|
+
get observe$() {
|
|
81
|
+
return this._done
|
|
82
|
+
.pipe(takeUntil(this._destroy$));
|
|
83
|
+
}
|
|
84
|
+
get complete$() {
|
|
85
|
+
if (!this.isProcessing()) {
|
|
86
|
+
return of({ total: 0, completed: 0, errors: [] });
|
|
87
|
+
}
|
|
88
|
+
return this.observe$
|
|
89
|
+
.pipe(take(1), map(() => (this._completeQueueStats)));
|
|
90
|
+
}
|
|
91
|
+
complete(fun, err, complete) {
|
|
92
|
+
this.complete$.subscribe(fun, err, complete);
|
|
93
|
+
}
|
|
94
|
+
push(target, name) {
|
|
95
|
+
const operation = new Operation(target, name);
|
|
96
|
+
this._queueStats.total++;
|
|
97
|
+
this._doneQueueStats.total++;
|
|
98
|
+
this._completeQueueStats.total++;
|
|
99
|
+
this._state = QueueState.Processing;
|
|
100
|
+
if (this._inProgress.length < this._limit) {
|
|
101
|
+
this._processOperation(operation);
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
this._queue.push(operation);
|
|
105
|
+
}
|
|
106
|
+
return operation.ready$;
|
|
107
|
+
}
|
|
108
|
+
clear() {
|
|
109
|
+
this._queue = [];
|
|
110
|
+
this._state = QueueState.Idle;
|
|
111
|
+
this._queueStats = {
|
|
112
|
+
total: 0,
|
|
113
|
+
errors: [],
|
|
114
|
+
completed: 0,
|
|
115
|
+
};
|
|
116
|
+
this._clearDoneQueueStats();
|
|
117
|
+
}
|
|
118
|
+
destroy() {
|
|
119
|
+
this._done.complete();
|
|
120
|
+
this.clear();
|
|
121
|
+
}
|
|
122
|
+
_processOperation(operation) {
|
|
123
|
+
this._inProgress.push(operation);
|
|
124
|
+
operation.target
|
|
125
|
+
.pipe(delay(200), // Hack to prevent extra quick proccess execution
|
|
126
|
+
finalize(() => {
|
|
127
|
+
const opIndex = this._inProgress.indexOf(operation);
|
|
128
|
+
this._inProgress.splice(opIndex, 1);
|
|
129
|
+
if (this.empty) {
|
|
130
|
+
this._state = QueueState.Idle;
|
|
131
|
+
this._done.next(this._doneQueueStats);
|
|
132
|
+
this._clearDoneQueueStats();
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
if (this._queue.length) {
|
|
136
|
+
const queueItem = this._queue.shift();
|
|
137
|
+
this._processOperation(queueItem);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}), takeUntil(this._destroy$)).subscribe({
|
|
141
|
+
next: (data) => {
|
|
142
|
+
operation.ready$.next(data);
|
|
143
|
+
},
|
|
144
|
+
error: (error) => {
|
|
145
|
+
this._queueStats.errors.push(error);
|
|
146
|
+
this._doneQueueStats.errors.push(error);
|
|
147
|
+
this._completeQueueStats.errors.push(error);
|
|
148
|
+
operation.ready$.error(error);
|
|
149
|
+
},
|
|
150
|
+
complete: () => {
|
|
151
|
+
this._queueStats.completed++;
|
|
152
|
+
this._doneQueueStats.completed++;
|
|
153
|
+
this._completeQueueStats.completed++;
|
|
154
|
+
operation.ready$.complete();
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
_clearDoneQueueStats() {
|
|
159
|
+
this._doneQueueStats = {
|
|
160
|
+
total: 0,
|
|
161
|
+
errors: [],
|
|
162
|
+
completed: 0,
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGlicy91dGlsL3F1ZXVlL3F1ZXVlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV4QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRzFDLE1BQU0sT0FBTyxLQUFLO0lBMkJOO0lBekJGLFdBQVcsR0FBZTtRQUNoQyxTQUFTLEVBQUUsQ0FBQztRQUNaLEtBQUssRUFBRSxDQUFDO1FBQ1IsTUFBTSxFQUFFLEVBQUU7S0FDWCxDQUFDO0lBRU0sZUFBZSxHQUFlO1FBQ3BDLFNBQVMsRUFBRSxDQUFDO1FBQ1osS0FBSyxFQUFFLENBQUM7UUFDUixNQUFNLEVBQUUsRUFBRTtLQUNYLENBQUM7SUFFTSxtQkFBbUIsR0FBZTtRQUN4QyxTQUFTLEVBQUUsQ0FBQztRQUNaLEtBQUssRUFBRSxDQUFDO1FBQ1IsTUFBTSxFQUFFLEVBQUU7S0FDWCxDQUFDO0lBRU0sS0FBSyxHQUFHLElBQUksT0FBTyxFQUFjLENBQUM7SUFDbEMsTUFBTSxHQUFnQixFQUFFLENBQUM7SUFDekIsV0FBVyxHQUFnQixFQUFFLENBQUM7SUFDOUIsTUFBTSxHQUFlLFVBQVUsQ0FBQyxJQUFJLENBQUM7SUFDckMsU0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFFeEMsWUFDVSxTQUFTLFFBQVE7UUFBakIsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUd6QixpQkFBaUI7UUFDakIsbUNBQW1DO1FBQ25DLHlCQUF5QjtRQUN6QixTQUFTO1FBQ1QsSUFBSTtJ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LFdBQVcsQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDakMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUVyQyxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzlCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sb0JBQW9CO1FBQzFCLElBQUksQ0FBQyxlQUFlLEdBQUc7WUFDckIsS0FBSyxFQUFFLENBQUM7WUFDUixNQUFNLEVBQUUsRUFBRTtZQUNWLFNBQVMsRUFBRSxDQUFDO1NBQ2IsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWxheSwgZmluYWxpemUsIG1hcCwgdGFrZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBPcGVyYXRpb24gfSBmcm9tICcuL29wZXJhdGlvbic7XG5pbXBvcnQgeyBRdWV1ZVN0YXRzIH0gZnJvbSAnLi9xdWV1ZS1zdGF0cyc7XG5pbXBvcnQgeyBRdWV1ZVN0YXRlIH0gZnJvbSAnLi9xdWV1ZS5lbnVtJztcblxuXG5leHBvcnQgY2xhc3MgUXVldWUge1xuXG4gIHByaXZhdGUgX3F1ZXVlU3RhdHM6IFF1ZXVlU3RhdHMgPSB7XG4gICAgY29tcGxldGVkOiAwLFxuICAgIHRvdGFsOiAwLFxuICAgIGVycm9yczogW10sXG4gIH07XG5cbiAgcHJpdmF0ZSBfZG9uZVF1ZXVlU3RhdHM6IFF1ZXVlU3RhdHMgPSB7XG4gICAgY29tcGxldGVkOiAwLFxuICAgIHRvdGFsOiAwLFxuICAgIGVycm9yczogW10sXG4gIH07XG5cbiAgcHJpdmF0ZSBfY29tcGxldGVRdWV1ZVN0YXRzOiBRdWV1ZVN0YXRzID0ge1xuICAgIGNvbXBsZXRlZDogMCxcbiAgICB0b3RhbDogMCxcbiAgICBlcnJvcnM6IFtdLFxuICB9O1xuXG4gIHByaXZhdGUgX2RvbmUgPSBuZXcgU3ViamVjdDxRdWV1ZVN0YXRzPigpO1xuICBwcml2YXRlIF9xdWV1ZTogT3BlcmF0aW9uW10gPSBbXTtcbiAgcHJpdmF0ZSBfaW5Qcm9ncmVzczogT3BlcmF0aW9uW10gPSBbXTtcbiAgcHJpdmF0ZSBfc3RhdGU6IFF1ZXVlU3RhdGUgPSBRdWV1ZVN0YXRlLklkbGU7XG4gIHByaXZhdGUgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2xpbWl0ID0gSW5maW5pdHksXG4gICAgLy9wcml2YXRlIF90YXJnZXRzPzogT2JzZXJ2YWJsZTxhbnk+W10sXG4gICkge1xuICAgIC8vIGlmKF90YXJnZXRzKSB7XG4gICAgLy8gICBfdGFyZ2V0cy5mb3JFYWNoKCh0YXJnZXQpID0+IHtcbiAgICAvLyAgICAgdGhpcy5wdXNoKHRhcmdldCk7XG4gICAgLy8gICB9KTsgXG4gICAgLy8gfVxuICB9XG5cbiAgcHVibGljIGdldCB0b3RhbCgpIHtcbiAgICByZXR1cm4gdGhpcy5fcXVldWVTdGF0cy50b3RhbDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY29tcGxldGVkKCkge1xuICAgIHJldHVybiB0aGlzLl9xdWV1ZVN0YXRzLmNvbXBsZXRlZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcGVuZGluZygpIHtcbiAgICByZXR1cm4gdGhpcy5fcXVldWUubGVuZ3RoO1xuICB9XG5cbiAgcHVibGljIGdldCBpblByb2dyZXNzKCkge1xuICAgIHJldHVybiB0aGlzLl9pblByb2dyZXNzLmxlbmd0aDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZXJyb3JzKCkge1xuICAgIHJldHVybiB0aGlzLl9xdWV1ZVN0YXRzLmVycm9ycztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3RhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXRlO1xuICB9XG5cbiAgcHVibGljIGdldCBlbXB0eSgpIHtcbiAgICByZXR1cm4gIXRoaXMuX3F1ZXVlLmxlbmd0aCAmJiAhdGhpcy5faW5Qcm9ncmVzcy5sZW5ndGhcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcGVuZGluZ09wZXJhdGlvbnMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLl9xdWV1ZVxuICAgICAgLm1hcCgob3BlcmF0aW9uKSA9PiBvcGVyYXRpb24ubmFtZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGluUHJvZ3Jlc3NPcGVyYXRpb25zKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5faW5Qcm9ncmVzc1xuICAgICAgLm1hcCgob3BlcmF0aW9uKSA9PiBvcGVyYXRpb24ubmFtZSk7XG4gIH1cblxuICBwdWJsaWMgaXNQcm9jZXNzaW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9zdGF0ZSA9PT0gUXVldWVTdGF0ZS5Qcm9jZXNzaW5nO1xuICB9XG5cbiAgcHVibGljIGlzSWRsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdGUgPT09IFF1ZXVlU3RhdGUuSWRsZTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRMaW1pdCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fbGltaXQgPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVhdGVkXG4gICAqL1xuICBwdWJsaWMgc3Vic2NyaWJlKGZ1biwgZXJyPywgY29tcGxldGU/KTogdm9pZCB7XG4gICAgdGhpcy5vYnNlcnZlJFxuICAgICAgLnN1YnNjcmliZShmdW4sIGVyciwgY29tcGxldGUpO1xuICB9XG5cbiAgcHVibGljIGdldCBvYnNlcnZlJCgpOiBPYnNlcnZhYmxlPFF1ZXVlU3RhdHM+IHtcbiAgICByZXR1cm4gdGhpcy5fZG9uZVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCBjb21wbGV0ZSQoKTogT2JzZXJ2YWJsZTxRdWV1ZVN0YXRzPiB7XG4gICAgaWYgKCF0aGlzLmlzUHJvY2Vzc2luZygpKSB7XG4gICAgICByZXR1cm4gb2YoeyB0b3RhbDogMCwgY29tcGxldGVkOiAwLCBlcnJvcnM6IFtdIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLm9ic2VydmUkXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgbWFwKCgpID0+ICh0aGlzLl9jb21wbGV0ZVF1ZXVlU3RhdHMpKSxcbiAgICAgICk7XG4gIH1cblxuICBwdWJsaWMgY29tcGxldGUoZnVuLCBlcnI/LCBjb21wbGV0ZT8pOiB2b2lkIHtcbiAgICB0aGlzLmNvbXBsZXRlJC5zdWJzY3JpYmUoZnVuLCBlcnIsIGNvbXBsZXRlKTtcbiAgfVxuXG4gIHB1YmxpYyBwdXNoKHRhcmdldDogT2JzZXJ2YWJsZTxhbnk+LCBuYW1lPzogc3RyaW5nKSB7XG4gICAgY29uc3Qgb3BlcmF0aW9uID0gbmV3IE9wZXJhdGlvbih0YXJnZXQsIG5hbWUpO1xuXG4gICAgdGhpcy5fcXVldWVTdGF0cy50b3RhbCsrO1xuICAgIHRoaXMuX2RvbmVRdWV1ZVN0YXRzLnRvdGFsKys7XG4gICAgdGhpcy5fY29tcGxldGVRdWV1ZVN0YXRzLnRvdGFsKys7XG4gICAgdGhpcy5fc3RhdGUgPSBRdWV1ZVN0YXRlLlByb2Nlc3Npbmc7XG5cbiAgICBpZiAodGhpcy5faW5Qcm9ncmVzcy5sZW5ndGggPCB0aGlzLl9saW1pdCkge1xuICAgICAgdGhpcy5fcHJvY2Vzc09wZXJhdGlvbihvcGVyYXRpb24pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9xdWV1ZS5wdXNoKG9wZXJhdGlvbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9wZXJhdGlvbi5yZWFkeSQ7XG4gIH1cblxuICBwdWJsaWMgY2xlYXIoKTogdm9pZCB7XG4gICAgdGhpcy5fcXVldWUgPSBbXTtcbiAgICB0aGlzLl9zdGF0ZSA9IFF1ZXVlU3RhdGUuSWRsZTsgICAgICAgXG4gICAgdGhpcy5fcXVldWVTdGF0cyA9IHtcbiAgICAgIHRvdGFsOiAwLFxuICAgICAgZXJyb3JzOiBbXSxcbiAgICAgIGNvbXBsZXRlZDogMCxcbiAgICB9O1xuICAgIHRoaXMuX2NsZWFyRG9uZVF1ZXVlU3RhdHMoKTtcbiAgfVxuXG4gIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQgeyAgICBcbiAgICB0aGlzLl9kb25lLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5jbGVhcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcHJvY2Vzc09wZXJhdGlvbihvcGVyYXRpb246IE9wZXJhdGlvbik6IHZvaWQge1xuICAgIHRoaXMuX2luUHJvZ3Jlc3MucHVzaChvcGVyYXRpb24pO1xuXG4gICAgb3BlcmF0aW9uLnRhcmdldFxuICAgICAgLnBpcGUoXG4gICAgICAgIGRlbGF5KDIwMCksIC8vIEhhY2sgdG8gcHJldmVudCBleHRyYSBxdWljayBwcm9jY2VzcyBleGVjdXRpb25cbiAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IG9wSW5kZXggPSB0aGlzLl9pblByb2dyZXNzLmluZGV4T2Yob3BlcmF0aW9uKTtcbiAgICAgICAgICB0aGlzLl9pblByb2dyZXNzLnNwbGljZShvcEluZGV4LCAxKTtcbiAgICAgICAgICBcbiAgICAgICAgICBpZiAodGhpcy5lbXB0eSkge1xuICAgICAgICAgICAgdGhpcy5fc3RhdGUgPSBRdWV1ZVN0YXRlLklkbGU7XG4gICAgICAgICAgICB0aGlzLl9kb25lLm5leHQodGhpcy5fZG9uZVF1ZXVlU3RhdHMpO1xuICAgICAgICAgICAgdGhpcy5fY2xlYXJEb25lUXVldWVTdGF0cygpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fcXVldWUubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHF1ZXVlSXRlbSA9IHRoaXMuX3F1ZXVlLnNoaWZ0KCk7XG4gICAgICAgICAgICAgIHRoaXMuX3Byb2Nlc3NPcGVyYXRpb24ocXVldWVJdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpLFxuICAgICAgKS5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAoZGF0YSkgPT4ge1xuICAgICAgICAgIG9wZXJhdGlvbi5yZWFkeSQubmV4dChkYXRhKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlcnJvcikgPT4ge1xuICAgICAgICAgIHRoaXMuX3F1ZXVlU3RhdHMuZXJyb3JzLnB1c2goZXJyb3IpO1xuICAgICAgICAgIHRoaXMuX2RvbmVRdWV1ZVN0YXRzLmVycm9ycy5wdXNoKGVycm9yKTtcbiAgICAgICAgICB0aGlzLl9jb21wbGV0ZVF1ZXVlU3RhdHMuZXJyb3JzLnB1c2goZXJyb3IpO1xuXG4gICAgICAgICAgb3BlcmF0aW9uLnJlYWR5JC5lcnJvcihlcnJvcik7XG4gICAgICAgIH0sXG4gICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5fcXVldWVTdGF0cy5jb21wbGV0ZWQrKztcbiAgICAgICAgICB0aGlzLl9kb25lUXVldWVTdGF0cy5jb21wbGV0ZWQrKztcbiAgICAgICAgICB0aGlzLl9jb21wbGV0ZVF1ZXVlU3RhdHMuY29tcGxldGVkKys7XG5cbiAgICAgICAgICBvcGVyYXRpb24ucmVhZHkkLmNvbXBsZXRlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2xlYXJEb25lUXVldWVTdGF0cygpOiB2b2lkIHtcbiAgICB0aGlzLl9kb25lUXVldWVTdGF0cyA9IHtcbiAgICAgIHRvdGFsOiAwLFxuICAgICAgZXJyb3JzOiBbXSxcbiAgICAgIGNvbXBsZXRlZDogMCxcbiAgICB9O1xuICB9XG59XG4iXX0=
|