@firestitch/common 14.0.0 → 16.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/app/directives/prevent-default.directive.d.ts +1 -1
- package/app/directives/stop-propagation.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 +4 -4
- package/{esm2020 → esm2022}/app/pipes/util.pipe.mjs +13 -13
- package/{esm2020 → esm2022}/app/services/array.service.mjs +4 -4
- 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/esm2022/libs/util/queue/operation.mjs +17 -0
- package/esm2022/libs/util/queue/queue.mjs +166 -0
- package/{fesm2020 → fesm2022}/firestitch-common.mjs +123 -115
- package/{fesm2020 → fesm2022}/firestitch-common.mjs.map +1 -1
- 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/util.service.mjs +0 -251
- package/esm2020/app/services/vaildate.service.mjs +0 -28
- package/esm2020/libs/util/queue/operation.mjs +0 -15
- package/esm2020/libs/util/queue/queue.mjs +0 -165
- package/fesm2015/firestitch-common.mjs +0 -1754
- package/fesm2015/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/compare.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/array/compare/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/array/filter/filter.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/inArray.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/indexOf/indexOf.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/list/list.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/array/nameValue/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/array/nameValue/nameValue.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/array/remove/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/array/remove/remove.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/array/sort/sort.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/format/acronym/acronym.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/format/acronym/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/format/bytes/bytes.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/number/number.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/format/truncate/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/format/truncate/truncate.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/rxjs/delayedRetry.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/clone.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/guid.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-array-equal/is-array-equal.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/util/is-class/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/util/is-class/is-class.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/length/length.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/source-loader/source-loader.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/throttle/throttle.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/util/to-string/index.mjs +0 -0
- /package/{esm2020 → esm2022}/libs/util/to-string/to-string.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/util/value/value.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
|
@@ -216,10 +216,10 @@ export class FsArray {
|
|
|
216
216
|
unordered[key] = value;
|
|
217
217
|
});
|
|
218
218
|
}
|
|
219
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FsArray, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
220
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FsArray });
|
|
219
221
|
}
|
|
220
|
-
|
|
221
|
-
FsArray.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FsArray });
|
|
222
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FsArray, decorators: [{
|
|
222
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FsArray, decorators: [{
|
|
223
223
|
type: Injectable
|
|
224
224
|
}] });
|
|
225
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvc2VydmljZXMvYXJyYXkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUczQyxNQUFNLE9BQU8sT0FBTztJQUNoQjs7TUFFRTtJQUNLLFNBQVMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUs7UUFDL0IsT0FBTyxDQUFDLElBQUksQ0FBQyw2RUFBNkUsQ0FBQyxDQUFDO1FBQzVGLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNkLElBQUksSUFBSSxJQUFJLEtBQUssRUFBRTtZQUVmLElBQUksTUFBTSxHQUFHLE9BQU8sSUFBSSxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLElBQUksSUFBSSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQztZQUN2RixJQUFJLE9BQU8sR0FBRyxPQUFPLEtBQUssS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsVUFBVSxJQUFJLElBQUksT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUM7WUFFM0YsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLElBQUk7Z0JBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzVELENBQUMsQ0FBQyxDQUFDO1NBRU47YUFBTTtZQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxJQUFJLEVBQUUsS0FBSztnQkFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVB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fSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEZzQXJyYXkge1xuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyBuYW1lVmFsdWUgfSBmcm9tIEBmaXJlc3RpdGNoL2NvbW1vbi9hcnJheTsgaW5zdGVhZFxuICAgICovXG4gICAgcHVibGljIG5hbWVWYWx1ZShhcnJheSwgbmFtZSwgdmFsdWUpOiBBcnJheTxhbnk+IHtcbiAgICAgICAgY29uc29sZS53YXJuKCdAZGVwcmVjYXRlZCB1c2UgaW1wb3J0IHsgbmFtZVZhbHVlIH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vYXJyYXk7IGluc3RlYWQnKTtcbiAgICAgICAgbGV0IGxpc3QgPSBbXTtcbiAgICAgICAgaWYgKG5hbWUgfHwgdmFsdWUpIHtcblxuICAgICAgICAgICAgbGV0IG5hbWVGbiA9IHR5cGVvZiBuYW1lID09PSAnZnVuY3Rpb24nID8gbmFtZSA6IGZ1bmN0aW9uIChpdGVtKSB7IHJldHVybiBpdGVtW25hbWVdIH07XG4gICAgICAgICAgICBsZXQgdmFsdWVGbiA9IHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJyA/IHZhbHVlIDogZnVuY3Rpb24gKGl0ZW0pIHsgcmV0dXJuIGl0ZW1bdmFsdWVdIH07XG5cbiAgICAgICAgICAgIGFycmF5LmZvckVhY2goZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgICAgICAgICAgICBsaXN0LnB1c2goeyBuYW1lOiBuYW1lRm4oaXRlbSksIHZhbHVlOiB2YWx1ZUZuKGl0ZW0pIH0pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGFycmF5LmZvckVhY2goZnVuY3Rpb24gKG5hbWUsIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgbGlzdC5wdXNoKHsgbmFtZTogbmFtZSwgdmFsdWU6IHZhbHVlIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbGlzdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCB1c2UgaW1wb3J0IHsgcmVtb3ZlIH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vYXJyYXk7IGluc3RlYWRcbiAgICAqL1xuICAgIHB1YmxpYyByZW1vdmUoYXJyYXksIHF1ZXJ5KTogYW55IHtcbiAgICAgICAgY29uc29sZS53YXJuKCdAZGVwcmVjYXRlZCB1c2UgaW1wb3J0IHsgcmVtb3ZlIH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vYXJyYXk7IGluc3RlYWQnKTtcbiAgICAgICAgbGV0IGlkeCA9IHRoaXMuaW5kZXhPZihhcnJheSwgcXVlcnkpO1xuXG4gICAgICAgIGlmIChpZHggPj0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIGFycmF5LnNwbGljZShpZHgsIDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGlkeDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCB1c2UgaW1wb3J0IHsgaW5kZXhPZiB9IGZyb20gQGZpcmVzdGl0Y2gvY29tbW9uL2FycmF5OyBpbnN0ZWFkXG4gICAgKi9cbiAgICBwdWJsaWMgaW5kZXhPZihhcnJheSwgcXVlcnkpOiBudW1iZXIge1xuICAgICAgICBjb25zb2xlLndhcm4oJ0BkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyBpbmRleE9mIH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vYXJyYXk7IGluc3RlYWQnKTtcbiAgICAgICAgaWYgKHR5cGVvZiBxdWVyeSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgbGV0IHF1ZXJ5T2JqID0gcXVlcnk7XG4gICAgICAgICAgICBxdWVyeSA9IChpdGVtKSA9PiB7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jb21wYXJlKHF1ZXJ5T2JqLCBpdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSBhcnJheS5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgICAgICAgICAgaWYgKHF1ZXJ5KGFycmF5W2ldKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIC0xO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyBjb21wYXJlIH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vYXJyYXk7IGluc3RlYWRcbiAgICAqL1xuICAgIHB1YmxpYyBjb21wYXJlKHF1ZXJ5LCBpdGVtKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnNvbGUud2FybignQGRlcHJlY2F0ZWQgdXNlIGltcG9ydCB7IGNvbXBhcmUgfSBmcm9tIEBmaXJlc3RpdGNoL2NvbW1vbi9hcnJheTsgaW5zdGVhZCcpO1xuICAgICAgICBsZXQgdmFsdWUgPSB0cnVlO1xuICAgICAgICBmb3IgKGxldCBrZXkgaW4gcXVlcnkpIHtcbiAgICAgICAgICAgIHZhbHVlID0gdmFsdWUgJiYgaXRlbVtrZXldID09IHF1ZXJ5W2tleV07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlIGltcG9ydCB7IGZpbHRlciB9IGZyb20gQGZpcmVzdGl0Y2gvY29tbW9uL2FycmF5OyBpbnN0ZWFkXG4gICAgKi9cbiAgICBwdWJsaWMgZmlsdGVyKGFycmF5LCBxdWVyeSk6IEFycmF5PGFueT4ge1xuICAgICAgICBjb25zb2xlLndhcm4oJ0BkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyBmaWx0ZXIgfSBmcm9tIEBmaXJlc3RpdGNoL2NvbW1vbi9hcnJheTsgaW5zdGVhZCcpO1xuICAgICAgICBpZiAodHlwZW9mIHF1ZXJ5ICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBsZXQgcXVlcnlPYmogPSBxdWVyeTtcbiAgICAgICAgICAgIHF1ZXJ5ID0gKGl0ZW0pID0+IHtcblxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbXBhcmUocXVlcnlPYmosIGl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGlzYXJyYXkgPSBBcnJheS5pc0FycmF5KGFycmF5KTtcbiAgICAgICAgbGV0IGxpc3Q6IGFueSA9IGlzYXJyYXkgPyBbXSA6IHt9O1xuICAgICAgICBpZiAoaXNhcnJheSlcbiAgICAgICAgICAgIGFycmF5LmZvckVhY2goZnVuY3Rpb24gKGl0ZW0sIGlkeCkge1xuICAgICAgICAgICAgICAgIGlmIChxdWVyeShpdGVtKSkge1xuICAgICAgICAgICAgICAgICAgICBsaXN0LnB1c2goaXRlbSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIGVsc2UgT2JqZWN0LmtleXMoYXJyYXkpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICAgIGlmIChxdWVyeShhcnJheVtrZXldKSkge1xuICAgICAgICAgICAgICAgIGxpc3Rba2V5XSA9IGFycmF5W2tleV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgIHJldHVybiBsaXN0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyBpbmRleCB9IGZyb20gQGZpcmVzdGl0Y2gvY29tbW9uL2FycmF5OyBpbnN0ZWFkXG4gICAgKi9cbiAgICBwdWJsaWMgaW5kZXgoYXJyYXksIHByb3BlcnR5KTogT2JqZWN0IHtcbiAgICAgICAgY29uc29sZS53YXJuKCdAZGVwcmVjYXRlZCB1c2UgaW1wb3J0IHsgaW5kZXggfSBmcm9tIEBmaXJlc3RpdGNoL2NvbW1vbi9hcnJheTsgaW5zdGVhZCcpO1xuICAgICAgICBsZXQgbGlzdCA9IHt9O1xuICAgICAgICBhcnJheS5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtLCBpZHgpIHtcbiAgICAgICAgICAgIGxpc3RbaXRlbVtwcm9wZXJ0eV1dID0gaXRlbTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBsaXN0O1xuICAgIH1cblxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlIGltcG9ydCB7IHNvcnQgfSBmcm9tIEBmaXJlc3RpdGNoL2NvbW1vbi9hcnJheTsgaW5zdGVhZFxuICAgICovXG4gICAgcHVibGljIHNvcnQoYXJyYXksIHF1ZXJ5LCByZXZlcnNlID0gZmFsc2UpOiBBcnJheTxhbnk+IHtcbiAgICAgICAgY29uc29sZS53YXJuKCdAZGVwcmVjYXRlZCB1c2UgaW1wb3J0IHsgc29ydCB9IGZyb20gQGZpcmVzdGl0Y2gvY29tbW9uL2FycmF5OyBpbnN0ZWFkJyk7XG4gICAgICAgIGlmICh0eXBlb2YgcXVlcnkgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGxldCBxdWVyeVN0ciA9IHF1ZXJ5O1xuICAgICAgICAgICAgcXVlcnkgPSBmdW5jdGlvbiAoYSwgYikge1xuICAgICAgICAgICAgICAgIGlmIChyZXZlcnNlKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhW3F1ZXJ5U3RyXSA8IGJbcXVlcnlTdHJdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhW3F1ZXJ5U3RyXSA+IGJbcXVlcnlTdHJdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAoYVtxdWVyeVN0cl0gPiBiW3F1ZXJ5U3RyXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYVtxdWVyeVN0cl0gPCBiW3F1ZXJ5U3RyXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGFycmF5LnNvcnQocXVlcnkpO1xuICAgICAgICByZXR1cm4gYXJyYXk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlIGltcG9ydCB7IHJzb3J0IH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vYXJyYXk7IGluc3RlYWRcbiAgICAqL1xuICAgIHB1YmxpYyByc29ydChhcnJheSwgcXVlcnkpOiBBcnJheTxhbnk+IHtcbiAgICAgIGNvbnNvbGUud2FybignQGRlcHJlY2F0ZWQgdXNlIGltcG9ydCB7IHJzb3J0IH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vYXJyYXk7IGluc3RlYWQnKTtcbiAgICAgIHJldHVybiB0aGlzLnNvcnQoYXJyYXksIHF1ZXJ5LCB0cnVlKTtcbiAgICB9XG5cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyBsaXN0IH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vYXJyYXk7IGluc3RlYWRcbiAgICAqL1xuICAgIHB1YmxpYyBsaXN0KGFycmF5LCBwcm9wZXJ0eSwgaW5kZXggPSBudWxsKTogT2JqZWN0IHtcbiAgICAgICAgY29uc29sZS53YXJuKCdAZGVwcmVjYXRlZCB1c2UgaW1wb3J0IHsgbGlzdCB9IGZyb20gQGZpcmVzdGl0Y2gvY29tbW9uL2FycmF5OyBpbnN0ZWFkJyk7XG4gICAgICAgIGxldCBsaXN0OiBhbnkgPSBpbmRleCA/IHt9IDogW107XG4gICAgICAgIGFycmF5LmZvckVhY2goZnVuY3Rpb24gKGl0ZW0sIGlkeCkge1xuICAgICAgICAgICAgaWYgKGluZGV4KSB7XG4gICAgICAgICAgICAgICAgbGlzdFtpdGVtW2luZGV4XV0gPSBpdGVtW3Byb3BlcnR5XTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbGlzdC5wdXNoKGl0ZW1bcHJvcGVydHldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBsaXN0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyBhcHBseURlcHRoIH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vYXJyYXk7IGluc3RlYWRcbiAgICAqL1xuICAgIHB1YmxpYyBhcHBseURlcHRoKG9iamVjdHMsIHBhcmVudF9wcm9wZXJ0eSwgaWRfcHJvcGVydHkgPSAnaWQnLCBkZXB0aF9wcm9wZXJ0eSA9ICdkZXB0aCcpIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdAZGVwcmVjYXRlZCB1c2UgaW1wb3J0IHsgYXBwbHlEZXB0aCB9IGZyb20gQGZpcmVzdGl0Y2gvY29tbW9uL2FycmF5OyBpbnN0ZWFkJyk7XG4gICAgICAgIGxldCBrZXllZCA9IHt9O1xuICAgICAgICBvYmplY3RzLmZvckVhY2goZnVuY3Rpb24gKG9iamVjdCkge1xuICAgICAgICAgICAgaWYgKCFvYmplY3RbcGFyZW50X3Byb3BlcnR5XSkge1xuICAgICAgICAgICAgICAgIG9iamVjdFtkZXB0aF9wcm9wZXJ0eV0gPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAga2V5ZWRbb2JqZWN0W2lkX3Byb3BlcnR5XV0gPSBvYmplY3Q7XG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Qua2V5cyhrZXllZCkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgICAgT2JqZWN0LmtleXMoa2V5ZWQpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgb2JqZWN0ID0ga2V5ZWRba2V5XTtcbiAgICAgICAgICAgICAgICBpZiAoIWtleWVkW2tleV1bZGVwdGhfcHJvcGVydHldKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChrZXllZFtrZXldW3BhcmVudF9wcm9wZXJ0eV0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleWVkW2tleV1bZGVwdGhfcHJvcGVydHldID0ga2V5ZWRba2V5ZWRba2V5XVtwYXJlbnRfcHJvcGVydHldXVtkZXB0aF9wcm9wZXJ0eV0gKyAxO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfSlcblxuICAgICAgICByZXR1cm4ga2V5ZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlIGltcG9ydCB7IGluQXJyYXkgfSBmcm9tIEBmaXJlc3RpdGNoL2NvbW1vbi9hcnJheTsgaW5zdGVhZFxuICAgICovXG4gICAgaW5BcnJheSh2YWx1ZXMsIGFycmF5KSB7XG4gICAgICAgIGNvbnNvbGUud2FybignQGRlcHJlY2F0ZWQgdXNlIGltcG9ydCB7IGluQXJyYXkgfSBmcm9tIEBmaXJlc3RpdGNoL2NvbW1vbi9hcnJheTsgaW5zdGVhZCcpO1xuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWVzKSkge1xuICAgICAgICAgICAgdmFsdWVzID0gW3ZhbHVlc107XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gdmFsdWVzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoYXJyYXkuaW5kZXhPZih2YWx1ZXNbaV0pID49IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCB1c2UgaW1wb3J0IHsga2V5RXhpc3RzIH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vYXJyYXk7IGluc3RlYWRcbiAgICAqL1xuICAgIGtleUV4aXN0cyhhcnJheSwga2V5KSB7XG4gICAgICAgIGNvbnNvbGUud2FybignQGRlcHJlY2F0ZWQgdXNlIGltcG9ydCB7IGtleUV4aXN0cyB9IGZyb20gQGZpcmVzdGl0Y2gvY29tbW9uL2FycmF5OyBpbnN0ZWFkJyk7XG4gICAgICAgIHJldHVybiBhcnJheS5oYXNPd25Qcm9wZXJ0eShrZXkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyBsZW5ndGggfSBmcm9tIEBmaXJlc3RpdGNoL2NvbW1vbi9hcnJheTsgaW5zdGVhZFxuICAgICovXG4gICAgbGVuZ3RoKGFycmF5KSB7XG4gICAgICAgIGNvbnNvbGUud2FybignQGRlcHJlY2F0ZWQgdXNlIGltcG9ydCB7IGxlbmd0aCB9IGZyb20gQGZpcmVzdGl0Y2gvY29tbW9uL2FycmF5OyBpbnN0ZWFkJyk7XG4gICAgICAgIHJldHVybiBhcnJheS5sZW5ndGg7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlIGltcG9ydCB7IGtzb3J0IH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vYXJyYXk7IGluc3RlYWRcbiAgICAqL1xuICAgIGtzb3J0KHVub3JkZXJlZCkge1xuICAgICAgICBjb25zb2xlLndhcm4oJ0BkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyBrc29ydCB9IGZyb20gQGZpcmVzdGl0Y2gvY29tbW9uL2FycmF5OyBpbnN0ZWFkJyk7XG4gICAgICAgIE9iamVjdC5rZXlzKHVub3JkZXJlZCkuc29ydCgpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgICAgICAgbGV0IHZhbHVlID0gdW5vcmRlcmVkW2tleV07XG4gICAgICAgICAgICBkZWxldGUgdW5vcmRlcmVkW2tleV07XG4gICAgICAgICAgICB1bm9yZGVyZWRba2V5XSA9IHZhbHVlO1xuICAgICAgICB9KTtcbiAgICB9XG5cblxufVxuIl19
|
|
225
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvc2VydmljZXMvYXJyYXkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUczQyxNQUFNLE9BQU8sT0FBTztJQUNoQjs7TUFFRTtJQUNLLFNBQVMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUs7UUFDL0IsT0FBTyxDQUFDLElBQUksQ0FBQyw2RUFBNkUsQ0FBQyxDQUFDO1FBQzVGLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNkLElBQUksSUFBSSxJQUFJLEtBQUssRUFBRTtZQUVmLElBQUksTUFBTSxHQUFHLE9BQU8sSUFBSSxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLElBQUksSUFBSSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQSxDQUFDLENBQUMsQ0FBQztZQUN2RixJQUFJLE9BQU8sR0FBRyxPQUFPLEtBQUssS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsVUFBVSxJQUFJLElBQUksT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUM7WUFFM0YsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLElBQUk7Z0JBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzVELENBQUMsQ0FBQyxDQUFDO1NBRU47YUFBTTtZQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxJQUFJLEVBQUUsS0FBSztnQkFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVB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fSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEZzQXJyYXkge1xuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyBuYW1lVmFsdWUgfSBmcm9tIEBmaXJlc3RpdGNoL2NvbW1vbi9hcnJheTsgaW5zdGVhZFxuICAgICovXG4gICAgcHVibGljIG5hbWVWYWx1ZShhcnJheSwgbmFtZSwgdmFsdWUpOiBBcnJheTxhbnk+IHtcbiAgICAgICAgY29uc29sZS53YXJuKCdAZGVwcmVjYXRlZCB1c2UgaW1wb3J0IHsgbmFtZVZhbHVlIH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vYXJyYXk7IGluc3RlYWQnKTtcbiAgICAgICAgbGV0IGxpc3QgPSBbXTtcbiAgICAgICAgaWYgKG5hbWUgfHwgdmFsdWUpIHtcblxuICAgICAgICAgICAgbGV0IG5hbWVGbiA9IHR5cGVvZiBuYW1lID09PSAnZnVuY3Rpb24nID8gbmFtZSA6IGZ1bmN0aW9uIChpdGVtKSB7IHJldHVybiBpdGVtW25hbWVdIH07XG4gICAgICAgICAgICBsZXQgdmFsdWVGbiA9IHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJyA/IHZhbHVlIDogZnVuY3Rpb24gKGl0ZW0pIHsgcmV0dXJuIGl0ZW1bdmFsdWVdIH07XG5cbiAgICAgICAgICAgIGFycmF5LmZvckVhY2goZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgICAgICAgICAgICBsaXN0LnB1c2goeyBuYW1lOiBuYW1lRm4oaXRlbSksIHZhbHVlOiB2YWx1ZUZuKGl0ZW0pIH0pO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGFycmF5LmZvckVhY2goZnVuY3Rpb24gKG5hbWUsIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgbGlzdC5wdXNoKHsgbmFtZTogbmFtZSwgdmFsdWU6IHZhbHVlIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbGlzdDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCB1c2UgaW1wb3J0IHsgcmVtb3ZlIH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vYXJyYXk7IGluc3RlYWRcbiAgICAqL1xuICAgIHB1YmxpYyByZW1vdmUoYXJyYXksIHF1ZXJ5KTogYW55IHtcbiAgICAgICAgY29uc29sZS53YXJuKCdAZGVwcmVjYXRlZCB1c2UgaW1wb3J0IHsgcmVtb3ZlIH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vYXJyYXk7IGluc3RlYWQnKTtcbiAgICAgICAgbGV0IGlkeCA9IHRoaXMuaW5kZXhPZihhcnJheSwgcXVlcnkpO1xuXG4gICAgICAgIGlmIChpZHggPj0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIGFycmF5LnNwbGljZShpZHgsIDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGlkeDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCB1c2UgaW1wb3J0IHsgaW5kZXhPZiB9IGZyb20gQGZpcmVzdGl0Y2gvY29tbW9uL2FycmF5OyBpbnN0ZWFkXG4gICAgKi9cbiAgICBwdWJsaWMgaW5kZXhPZihhcnJheSwgcXVlcnkpOiBudW1iZXIge1xuICAgICAgICBjb25zb2xlLndhcm4oJ0BkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyBpbmRleE9mIH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vYXJyYXk7IGluc3RlYWQnKTtcbiAgICAgICAgaWYgKHR5cGVvZiBxdWVyeSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgbGV0IHF1ZXJ5T2JqID0gcXVlcnk7XG4gICAgICAgICAgICBxdWVyeSA9IChpdGVtKSA9PiB7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jb21wYXJlKHF1ZXJ5T2JqLCBpdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSBhcnJheS5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgICAgICAgICAgaWYgKHF1ZXJ5KGFycmF5W2ldKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIC0xO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyBjb21wYXJlIH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vYXJyYXk7IGluc3RlYWRcbiAgICAqL1xuICAgIHB1YmxpYyBjb21wYXJlKHF1ZXJ5LCBpdGVtKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnNvbGUud2FybignQGRlcHJlY2F0ZWQgdXNlIGltcG9ydCB7IGNvbXBhcmUgfSBmcm9tIEBmaXJlc3RpdGNoL2NvbW1vbi9hcnJheTsgaW5zdGVhZCcpO1xuICAgICAgICBsZXQgdmFsdWUgPSB0cnVlO1xuICAgICAgICBmb3IgKGxldCBrZXkgaW4gcXVlcnkpIHtcbiAgICAgICAgICAgIHZhbHVlID0gdmFsdWUgJiYgaXRlbVtrZXldID09IHF1ZXJ5W2tleV07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlIGltcG9ydCB7IGZpbHRlciB9IGZyb20gQGZpcmVzdGl0Y2gvY29tbW9uL2FycmF5OyBpbnN0ZWFkXG4gICAgKi9cbiAgICBwdWJsaWMgZmlsdGVyKGFycmF5LCBxdWVyeSk6IEFycmF5PGFueT4ge1xuICAgICAgICBjb25zb2xlLndhcm4oJ0BkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyBmaWx0ZXIgfSBmcm9tIEBmaXJlc3RpdGNoL2NvbW1vbi9hcnJheTsgaW5zdGVhZCcpO1xuICAgICAgICBpZiAodHlwZW9mIHF1ZXJ5ICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBsZXQgcXVlcnlPYmogPSBxdWVyeTtcbiAgICAgICAgICAgIHF1ZXJ5ID0gKGl0ZW0pID0+IHtcblxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbXBhcmUocXVlcnlPYmosIGl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGlzYXJyYXkgPSBBcnJheS5pc0FycmF5KGFycmF5KTtcbiAgICAgICAgbGV0IGxpc3Q6IGFueSA9IGlzYXJyYXkgPyBbXSA6IHt9O1xuICAgICAgICBpZiAoaXNhcnJheSlcbiAgICAgICAgICAgIGFycmF5LmZvckVhY2goZnVuY3Rpb24gKGl0ZW0sIGlkeCkge1xuICAgICAgICAgICAgICAgIGlmIChxdWVyeShpdGVtKSkge1xuICAgICAgICAgICAgICAgICAgICBsaXN0LnB1c2goaXRlbSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIGVsc2UgT2JqZWN0LmtleXMoYXJyYXkpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICAgIGlmIChxdWVyeShhcnJheVtrZXldKSkge1xuICAgICAgICAgICAgICAgIGxpc3Rba2V5XSA9IGFycmF5W2tleV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgIHJldHVybiBsaXN0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyBpbmRleCB9IGZyb20gQGZpcmVzdGl0Y2gvY29tbW9uL2FycmF5OyBpbnN0ZWFkXG4gICAgKi9cbiAgICBwdWJsaWMgaW5kZXgoYXJyYXksIHByb3BlcnR5KTogT2JqZWN0IHtcbiAgICAgICAgY29uc29sZS53YXJuKCdAZGVwcmVjYXRlZCB1c2UgaW1wb3J0IHsgaW5kZXggfSBmcm9tIEBmaXJlc3RpdGNoL2NvbW1vbi9hcnJheTsgaW5zdGVhZCcpO1xuICAgICAgICBsZXQgbGlzdCA9IHt9O1xuICAgICAgICBhcnJheS5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtLCBpZHgpIHtcbiAgICAgICAgICAgIGxpc3RbaXRlbVtwcm9wZXJ0eV1dID0gaXRlbTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBsaXN0O1xuICAgIH1cblxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlIGltcG9ydCB7IHNvcnQgfSBmcm9tIEBmaXJlc3RpdGNoL2NvbW1vbi9hcnJheTsgaW5zdGVhZFxuICAgICovXG4gICAgcHVibGljIHNvcnQoYXJyYXksIHF1ZXJ5LCByZXZlcnNlID0gZmFsc2UpOiBBcnJheTxhbnk+IHtcbiAgICAgICAgY29uc29sZS53YXJuKCdAZGVwcmVjYXRlZCB1c2UgaW1wb3J0IHsgc29ydCB9IGZyb20gQGZpcmVzdGl0Y2gvY29tbW9uL2FycmF5OyBpbnN0ZWFkJyk7XG4gICAgICAgIGlmICh0eXBlb2YgcXVlcnkgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGxldCBxdWVyeVN0ciA9IHF1ZXJ5O1xuICAgICAgICAgICAgcXVlcnkgPSBmdW5jdGlvbiAoYSwgYikge1xuICAgICAgICAgICAgICAgIGlmIChyZXZlcnNlKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhW3F1ZXJ5U3RyXSA8IGJbcXVlcnlTdHJdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhW3F1ZXJ5U3RyXSA+IGJbcXVlcnlTdHJdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAoYVtxdWVyeVN0cl0gPiBiW3F1ZXJ5U3RyXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYVtxdWVyeVN0cl0gPCBiW3F1ZXJ5U3RyXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGFycmF5LnNvcnQocXVlcnkpO1xuICAgICAgICByZXR1cm4gYXJyYXk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlIGltcG9ydCB7IHJzb3J0IH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vYXJyYXk7IGluc3RlYWRcbiAgICAqL1xuICAgIHB1YmxpYyByc29ydChhcnJheSwgcXVlcnkpOiBBcnJheTxhbnk+IHtcbiAgICAgIGNvbnNvbGUud2FybignQGRlcHJlY2F0ZWQgdXNlIGltcG9ydCB7IHJzb3J0IH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vYXJyYXk7IGluc3RlYWQnKTtcbiAgICAgIHJldHVybiB0aGlzLnNvcnQoYXJyYXksIHF1ZXJ5LCB0cnVlKTtcbiAgICB9XG5cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyBsaXN0IH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vYXJyYXk7IGluc3RlYWRcbiAgICAqL1xuICAgIHB1YmxpYyBsaXN0KGFycmF5LCBwcm9wZXJ0eSwgaW5kZXggPSBudWxsKTogT2JqZWN0IHtcbiAgICAgICAgY29uc29sZS53YXJuKCdAZGVwcmVjYXRlZCB1c2UgaW1wb3J0IHsgbGlzdCB9IGZyb20gQGZpcmVzdGl0Y2gvY29tbW9uL2FycmF5OyBpbnN0ZWFkJyk7XG4gICAgICAgIGxldCBsaXN0OiBhbnkgPSBpbmRleCA/IHt9IDogW107XG4gICAgICAgIGFycmF5LmZvckVhY2goZnVuY3Rpb24gKGl0ZW0sIGlkeCkge1xuICAgICAgICAgICAgaWYgKGluZGV4KSB7XG4gICAgICAgICAgICAgICAgbGlzdFtpdGVtW2luZGV4XV0gPSBpdGVtW3Byb3BlcnR5XTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbGlzdC5wdXNoKGl0ZW1bcHJvcGVydHldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBsaXN0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyBhcHBseURlcHRoIH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vYXJyYXk7IGluc3RlYWRcbiAgICAqL1xuICAgIHB1YmxpYyBhcHBseURlcHRoKG9iamVjdHMsIHBhcmVudF9wcm9wZXJ0eSwgaWRfcHJvcGVydHkgPSAnaWQnLCBkZXB0aF9wcm9wZXJ0eSA9ICdkZXB0aCcpIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdAZGVwcmVjYXRlZCB1c2UgaW1wb3J0IHsgYXBwbHlEZXB0aCB9IGZyb20gQGZpcmVzdGl0Y2gvY29tbW9uL2FycmF5OyBpbnN0ZWFkJyk7XG4gICAgICAgIGxldCBrZXllZCA9IHt9O1xuICAgICAgICBvYmplY3RzLmZvckVhY2goZnVuY3Rpb24gKG9iamVjdCkge1xuICAgICAgICAgICAgaWYgKCFvYmplY3RbcGFyZW50X3Byb3BlcnR5XSkge1xuICAgICAgICAgICAgICAgIG9iamVjdFtkZXB0aF9wcm9wZXJ0eV0gPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAga2V5ZWRbb2JqZWN0W2lkX3Byb3BlcnR5XV0gPSBvYmplY3Q7XG4gICAgICAgIH0pO1xuICAgICAgICBPYmplY3Qua2V5cyhrZXllZCkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgICAgT2JqZWN0LmtleXMoa2V5ZWQpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgb2JqZWN0ID0ga2V5ZWRba2V5XTtcbiAgICAgICAgICAgICAgICBpZiAoIWtleWVkW2tleV1bZGVwdGhfcHJvcGVydHldKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChrZXllZFtrZXldW3BhcmVudF9wcm9wZXJ0eV0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleWVkW2tleV1bZGVwdGhfcHJvcGVydHldID0ga2V5ZWRba2V5ZWRba2V5XVtwYXJlbnRfcHJvcGVydHldXVtkZXB0aF9wcm9wZXJ0eV0gKyAxO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfSlcblxuICAgICAgICByZXR1cm4ga2V5ZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlIGltcG9ydCB7IGluQXJyYXkgfSBmcm9tIEBmaXJlc3RpdGNoL2NvbW1vbi9hcnJheTsgaW5zdGVhZFxuICAgICovXG4gICAgaW5BcnJheSh2YWx1ZXMsIGFycmF5KSB7XG4gICAgICAgIGNvbnNvbGUud2FybignQGRlcHJlY2F0ZWQgdXNlIGltcG9ydCB7IGluQXJyYXkgfSBmcm9tIEBmaXJlc3RpdGNoL2NvbW1vbi9hcnJheTsgaW5zdGVhZCcpO1xuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWVzKSkge1xuICAgICAgICAgICAgdmFsdWVzID0gW3ZhbHVlc107XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGxldCBpID0gMCwgbGVuID0gdmFsdWVzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoYXJyYXkuaW5kZXhPZih2YWx1ZXNbaV0pID49IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCB1c2UgaW1wb3J0IHsga2V5RXhpc3RzIH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vYXJyYXk7IGluc3RlYWRcbiAgICAqL1xuICAgIGtleUV4aXN0cyhhcnJheSwga2V5KSB7XG4gICAgICAgIGNvbnNvbGUud2FybignQGRlcHJlY2F0ZWQgdXNlIGltcG9ydCB7IGtleUV4aXN0cyB9IGZyb20gQGZpcmVzdGl0Y2gvY29tbW9uL2FycmF5OyBpbnN0ZWFkJyk7XG4gICAgICAgIHJldHVybiBhcnJheS5oYXNPd25Qcm9wZXJ0eShrZXkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyBsZW5ndGggfSBmcm9tIEBmaXJlc3RpdGNoL2NvbW1vbi9hcnJheTsgaW5zdGVhZFxuICAgICovXG4gICAgbGVuZ3RoKGFycmF5KSB7XG4gICAgICAgIGNvbnNvbGUud2FybignQGRlcHJlY2F0ZWQgdXNlIGltcG9ydCB7IGxlbmd0aCB9IGZyb20gQGZpcmVzdGl0Y2gvY29tbW9uL2FycmF5OyBpbnN0ZWFkJyk7XG4gICAgICAgIHJldHVybiBhcnJheS5sZW5ndGg7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlIGltcG9ydCB7IGtzb3J0IH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vYXJyYXk7IGluc3RlYWRcbiAgICAqL1xuICAgIGtzb3J0KHVub3JkZXJlZCkge1xuICAgICAgICBjb25zb2xlLndhcm4oJ0BkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyBrc29ydCB9IGZyb20gQGZpcmVzdGl0Y2gvY29tbW9uL2FycmF5OyBpbnN0ZWFkJyk7XG4gICAgICAgIE9iamVjdC5rZXlzKHVub3JkZXJlZCkuc29ydCgpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgICAgICAgbGV0IHZhbHVlID0gdW5vcmRlcmVkW2tleV07XG4gICAgICAgICAgICBkZWxldGUgdW5vcmRlcmVkW2tleV07XG4gICAgICAgICAgICB1bm9yZGVyZWRba2V5XSA9IHZhbHVlO1xuICAgICAgICB9KTtcbiAgICB9XG5cblxufVxuIl19
|
|
@@ -12,10 +12,10 @@ export class FsMath {
|
|
|
12
12
|
let roundedTempNumber = Math.round(tempNumber);
|
|
13
13
|
return roundedTempNumber / factor;
|
|
14
14
|
}
|
|
15
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FsMath, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
16
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FsMath });
|
|
15
17
|
}
|
|
16
|
-
|
|
17
|
-
FsMath.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FsMath });
|
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FsMath, decorators: [{
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FsMath, decorators: [{
|
|
19
19
|
type: Injectable
|
|
20
20
|
}] });
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9zZXJ2aWNlcy9tYXRoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHM0MsTUFBTSxPQUFPLE1BQU07SUFFZjs7TUFFRTtJQUNLLEtBQUssQ0FBQyxNQUFNLEVBQUUsU0FBUztRQUMxQixPQUFPLENBQUMsSUFBSSxDQUFDLGdGQUFnRixDQUFDLENBQUM7UUFDL0YsU0FBUyxHQUFHLFNBQVMsSUFBSSxDQUFDLENBQUM7UUFDM0IsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDckMsSUFBSSxVQUFVLEdBQUcsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNqQyxJQUFJLGlCQUFpQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDL0MsT0FBTyxpQkFBaUIsR0FBRyxNQUFNLENBQUM7SUFDdEMsQ0FBQzt3R0FaUSxNQUFNOzRHQUFOLE1BQU07OzRGQUFOLE1BQU07a0JBRGxCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBGc01hdGgge1xuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlIF8ucm91bmQoKSBpbnN0ZWFkIHtAbGluayBodHRwczovL2xvZGFzaC5jb20vZG9jcy80LjE3LjUjcm91bmR9XG4gICAgKi9cbiAgICBwdWJsaWMgcm91bmQobnVtYmVyLCBwcmVjaXNpb24pOiBudW1iZXIge1xuICAgICAgICBjb25zb2xlLndhcm4oJ0BkZXByZWNhdGVkIHVzZSBfLnJvdW5kKCkgaW5zdGVhZCB7QGxpbmsgaHR0cHM6Ly9sb2Rhc2guY29tL2RvY3MvNC4xNy41I3JvdW5kfScpO1xuICAgICAgICBwcmVjaXNpb24gPSBwcmVjaXNpb24gfHwgMDtcbiAgICAgICAgbGV0IGZhY3RvciA9IE1hdGgucG93KDEwLCBwcmVjaXNpb24pO1xuICAgICAgICBsZXQgdGVtcE51bWJlciA9IG51bWJlciAqIGZhY3RvcjtcbiAgICAgICAgbGV0IHJvdW5kZWRUZW1wTnVtYmVyID0gTWF0aC5yb3VuZCh0ZW1wTnVtYmVyKTtcbiAgICAgICAgcmV0dXJuIHJvdW5kZWRUZW1wTnVtYmVyIC8gZmFjdG9yO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export const KEY_CANCEL = 3, KEY_HELP = 6, KEY_BACKSPACE = 8, KEY_TAB = 9, KEY_CLEAR = 12, KEY_RETURN = 13, KEY_ENTER = 14, KEY_SHIFT = 16, KEY_CONTROL = 17, KEY_ALT = 18, KEY_PAUSE = 19, KEY_CAPS_LOCK = 20, KEY_ESCAPE = 27, KEY_SPACE = 32, KEY_PAGE_UP = 33, KEY_PAGE_DOWN = 34, KEY_END = 35, KEY_HOME = 36, KEY_LEFT = 37, KEY_UP = 38, KEY_RIGHT = 39, KEY_DOWN = 40, KEY_PRINTSCREEN = 44, KEY_INSERT = 45, KEY_DELETE = 46, KEY_0 = 48, KEY_1 = 49, KEY_2 = 50, KEY_3 = 51, KEY_4 = 52, KEY_5 = 53, KEY_6 = 54, KEY_7 = 55, KEY_8 = 56, KEY_9 = 57, KEY_SEMICOLON = 59, KEY_EQUALS = 61;
|
|
4
|
+
/*
|
|
5
|
+
Basically, just copy-pasted functionality from fs-boilerplate v1.x, with some small changes (like we dont have angular.bind anymore, had to go with a workaround)
|
|
6
|
+
There might be a better way to organise constatns but I need to know use-cases
|
|
7
|
+
*/
|
|
8
|
+
export class FsUtil {
|
|
9
|
+
intervals = {};
|
|
10
|
+
/**
|
|
11
|
+
* @deprecated use @firestitch/common/util/guid instead
|
|
12
|
+
*/
|
|
13
|
+
guid(pattern) {
|
|
14
|
+
console.warn('@deprecated use @firestitch/common/util/guid instead');
|
|
15
|
+
pattern = pattern || 'xxxxxx';
|
|
16
|
+
return pattern.replace(/[xy]/g, function (c) {
|
|
17
|
+
var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);
|
|
18
|
+
return v.toString(16);
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* @deprecated use import { uuid } from @firestitch/common/util; instead
|
|
23
|
+
*/
|
|
24
|
+
uuid() {
|
|
25
|
+
console.warn('@deprecated use @firestitch/common/util/uuid instead');
|
|
26
|
+
return this.guid('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx');
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* @deprecated use import { resolve } from @firestitch/common/util; instead
|
|
30
|
+
*/
|
|
31
|
+
resolve(promise, defaults = []) {
|
|
32
|
+
console.warn('@deprecated use @firestitch/common/util/resolve instead');
|
|
33
|
+
const result = defaults;
|
|
34
|
+
return new Promise(resolve => {
|
|
35
|
+
promise.then(function (data) {
|
|
36
|
+
Object.keys(data).forEach(key => result[key] = data[key]);
|
|
37
|
+
resolve(result);
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* @deprecated use _.toInteger() instead
|
|
43
|
+
*/
|
|
44
|
+
int(value) {
|
|
45
|
+
console.warn('@deprecated use _.toInteger() instead');
|
|
46
|
+
value = parseInt(value);
|
|
47
|
+
if (isNaN(value)) {
|
|
48
|
+
value = 0;
|
|
49
|
+
}
|
|
50
|
+
return value;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* @deprecated use _.toFinite() instead
|
|
54
|
+
*/
|
|
55
|
+
float(value) {
|
|
56
|
+
console.warn('@deprecated use _.toFinite() instead');
|
|
57
|
+
value = parseFloat(value);
|
|
58
|
+
if (isNaN(value)) {
|
|
59
|
+
value = 0;
|
|
60
|
+
}
|
|
61
|
+
return value;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* @deprecated use _.toString() instead
|
|
65
|
+
*/
|
|
66
|
+
string(string) {
|
|
67
|
+
console.warn('@deprecated use _.toString() instead');
|
|
68
|
+
if (string === null || string === undefined) {
|
|
69
|
+
string = '';
|
|
70
|
+
}
|
|
71
|
+
return (string).toString();
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* @deprecated use import { isEmpty } from @firestitch/common/util; instead
|
|
75
|
+
*/
|
|
76
|
+
isEmpty(value, options) {
|
|
77
|
+
console.warn('@deprecated use import { isEmpty } from @firestitch/common/util; instead');
|
|
78
|
+
options = options || {};
|
|
79
|
+
return value === undefined ||
|
|
80
|
+
value === null ||
|
|
81
|
+
value === false ||
|
|
82
|
+
value === '' ||
|
|
83
|
+
!this.string(value).length ||
|
|
84
|
+
(this.isObject(value) &&
|
|
85
|
+
(value.constructor.name === 'Object' && !Object.keys(value).length)) ||
|
|
86
|
+
(!options.zero && (value === 0 || value === '0'));
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* @deprecated use _.isInteger() instead
|
|
90
|
+
*/
|
|
91
|
+
isInt(value, type) {
|
|
92
|
+
console.warn('@deprecated use _.isInteger() instead');
|
|
93
|
+
const int = !!this.string(value).match(/^\d+$/);
|
|
94
|
+
if (!int) {
|
|
95
|
+
return false;
|
|
96
|
+
}
|
|
97
|
+
if (type) {
|
|
98
|
+
return Number.isInteger(value);
|
|
99
|
+
}
|
|
100
|
+
return true;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* @deprecated use _.each() instead {@link https://lodash.com/docs/4.17.5#forEach}
|
|
104
|
+
*/
|
|
105
|
+
each(object, func) {
|
|
106
|
+
console.warn('@deprecated use _.each() instead {@link https://lodash.com/docs/4.17.5#forEach}');
|
|
107
|
+
if (!this.isArray(object) && !this.isObject(object)) {
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
Object.keys(object).forEach(function (key) {
|
|
111
|
+
func(object[key], key);
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* @deprecated use _.isArrayLikeObject() {@link https://lodash.com/docs/4.17.5#isArrayLikeObject}
|
|
116
|
+
* or _.isObject() {@link https://lodash.com/docs/4.17.5#isObject} instead
|
|
117
|
+
*/
|
|
118
|
+
isObject(value) {
|
|
119
|
+
console.warn('@deprecated use _.isArrayLikeObject() {@link https://lodash.com/docs/4.17.5#isArrayLikeObject} or _.isObject() {@link https://lodash.com/docs/4.17.5#isObject} instead');
|
|
120
|
+
return value !== null && typeof value === 'object' && !this.isArray(value);
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* @deprecated use _.isString() instead {@link https://lodash.com/docs/4.17.5#isString}
|
|
124
|
+
*/
|
|
125
|
+
isString(value) {
|
|
126
|
+
console.warn('@deprecated use _.isString() instead {@link https://lodash.com/docs/4.17.5#isString}');
|
|
127
|
+
return typeof value === 'string' || value instanceof String;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* @deprecated use _.isArray() instead {@link https://lodash.com/docs/4.17.5#isArray}
|
|
131
|
+
*/
|
|
132
|
+
isArray(value) {
|
|
133
|
+
console.warn('@deprecated use _.isArray() instead {@link https://lodash.com/docs/4.17.5#isArray}');
|
|
134
|
+
return value instanceof Array;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* @deprecated use import { isNumeric } from @firestitch/common/util; instead
|
|
138
|
+
*/
|
|
139
|
+
isNumeric(value) {
|
|
140
|
+
console.warn('@deprecated use import { isNumeric } from @firestitch/common/util; instead');
|
|
141
|
+
return this.string(value).length && !!this.string(value).match(/^-?\d*\.?\d*$/);
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* @deprecated use import { isClass } from @firestitch/common/util; instead
|
|
145
|
+
*/
|
|
146
|
+
isClass(value, cls) {
|
|
147
|
+
console.warn('@deprecated use import { isClass } from @firestitch/common/util; instead');
|
|
148
|
+
if (this.isObject(value)) {
|
|
149
|
+
if (this.isString(cls)) {
|
|
150
|
+
if (value.constructor) {
|
|
151
|
+
if (value.constructor.name === cls) {
|
|
152
|
+
return true;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
if (value instanceof cls) {
|
|
158
|
+
return true;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
return false;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* @deprecated use _.isBoolean() instead {@link https://lodash.com/docs/4.17.5#isBoolean}
|
|
166
|
+
*/
|
|
167
|
+
isBoolean(value) {
|
|
168
|
+
console.warn('@deprecated use _.isBoolean() instead {@link https://lodash.com/docs/4.17.5#isBoolean}');
|
|
169
|
+
return value === true || value === false;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* @deprecated use import { value } from @firestitch/common/util; instead
|
|
173
|
+
*/
|
|
174
|
+
value(object, key, def) {
|
|
175
|
+
console.warn('@deprecated use import { value } from @firestitch/common/util; instead');
|
|
176
|
+
if (this.isObject(object) || this.isArray(object)) {
|
|
177
|
+
if (object.hasOwnProperty(key)) {
|
|
178
|
+
return object[key];
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
return def;
|
|
182
|
+
}
|
|
183
|
+
throttle(func, wait) {
|
|
184
|
+
console.warn('@deprecated use import { throttle } from @firestitch/common/util; instead');
|
|
185
|
+
let waiting = false; // Initially, we're not waiting
|
|
186
|
+
return function () {
|
|
187
|
+
if (!waiting) { // If we're not waiting
|
|
188
|
+
func.apply(null, arguments); // Execute users function
|
|
189
|
+
waiting = true; // Prevent future invocations
|
|
190
|
+
setTimeout(function () {
|
|
191
|
+
waiting = false; // And allow future invocations
|
|
192
|
+
}, wait);
|
|
193
|
+
}
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* @deprecated use import { debounce } from @firestitch/common/util; instead
|
|
198
|
+
*/
|
|
199
|
+
debounce(func, wait, immediate) {
|
|
200
|
+
console.warn('@deprecated use import { debounce } from @firestitch/common/util; instead');
|
|
201
|
+
var timeout;
|
|
202
|
+
return function () {
|
|
203
|
+
var context = this, args = arguments;
|
|
204
|
+
var later = function () {
|
|
205
|
+
timeout = null;
|
|
206
|
+
if (!immediate)
|
|
207
|
+
func.apply(context, args);
|
|
208
|
+
};
|
|
209
|
+
var callNow = immediate && !timeout;
|
|
210
|
+
clearTimeout(timeout);
|
|
211
|
+
timeout = setTimeout(later, wait);
|
|
212
|
+
if (callNow)
|
|
213
|
+
func.apply(context, args);
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* @deprecated use import { length } from @firestitch/common/util; instead
|
|
218
|
+
*/
|
|
219
|
+
length(object) {
|
|
220
|
+
console.warn('@deprecated use import { length } from @firestitch/common/util; instead');
|
|
221
|
+
if (this.isObject(object)) {
|
|
222
|
+
return Object.keys(object).length;
|
|
223
|
+
}
|
|
224
|
+
if (this.isArray(object)) {
|
|
225
|
+
return object.length;
|
|
226
|
+
}
|
|
227
|
+
return 0;
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* @deprecated use import { boolean } from @firestitch/common/util; instead
|
|
231
|
+
*/
|
|
232
|
+
boolean(value) {
|
|
233
|
+
console.warn('@deprecated use import { boolean } from @firestitch/common/util; instead');
|
|
234
|
+
return this.string(value).toLowerCase() !== 'false' && !!value;
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* @deprecated use import { stringify } from @firestitch/common/util; instead
|
|
238
|
+
*/
|
|
239
|
+
stringify(value) {
|
|
240
|
+
console.warn('@deprecated use import { stringify } from @firestitch/common/util; instead');
|
|
241
|
+
return JSON.stringify(value);
|
|
242
|
+
}
|
|
243
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FsUtil, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
244
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FsUtil });
|
|
245
|
+
}
|
|
246
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FsUtil, decorators: [{
|
|
247
|
+
type: Injectable
|
|
248
|
+
}] });
|
|
249
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9zZXJ2aWNlcy91dGlsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFM0MsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsRUFDdkIsUUFBUSxHQUFHLENBQUMsRUFDWixhQUFhLEdBQUcsQ0FBQyxFQUNqQixPQUFPLEdBQUcsQ0FBQyxFQUNYLFNBQVMsR0FBRyxFQUFFLEVBQ2QsVUFBVSxHQUFHLEVBQUUsRUFDZixTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsR0FBRyxFQUFFLEVBQ2QsV0FBVyxHQUFHLEVBQUUsRUFDaEIsT0FBTyxHQUFHLEVBQUUsRUFDWixTQUFTLEdBQUcsRUFBRSxFQUNkLGFBQWEsR0FBRyxFQUFFLEVBQ2xCLFVBQVUsR0FBRyxFQUFFLEVBQ2YsU0FBUyxHQUFHLEVBQUUsRUFDZCxXQUFXLEdBQUcsRUFBRSxFQUNoQixhQUFhLEdBQUcsRUFBRSxFQUNsQixPQUFPLEdBQUcsRUFBRSxFQUNaLFFBQVEsR0FBRyxFQUFFLEVBQ2IsUUFBUSxHQUFHLEVBQUUsRUFDYixNQUFNLEdBQUcsRUFBRSxFQUNYLFNBQVMsR0FBRyxFQUFFLEVBQ2QsUUFBUSxHQUFHLEVBQUUsRUFDYixlQUFlLEdBQUcsRUFBRSxFQUNwQixVQUFVLEdBQUcsRUFBRSxFQUNmLFVBQVUsR0FBRyxFQUFFLEVBQ2YsS0FBSyxHQUFHLEVBQUUsRUFDVixLQUFLLEdBQUcsRUFBRSxFQUNWLEtBQUssR0FBRyxFQUFFLEVBQ1YsS0FBSyxHQUFHLEVBQUUsRUFDVixLQUFLLEdBQUcsRUFBRSxFQUNWLEtBQUssR0FBRyxFQUFFLEVBQ1YsS0FBSyxHQUFHLEVBQUUsRUFDVixLQUFLLEdBQUcsRUFBRSxFQUNWLEtBQUssR0FBRyxFQUFFLEVBQ1YsS0FBSyxHQUFHLEVBQUUs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QyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDO1NBQ3JDO1FBRUQsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3RCLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQztTQUN4QjtRQUVELE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVEOztNQUVFO0lBQ0ssT0FBTyxDQUFDLEtBQUs7UUFDbEIsT0FBTyxDQUFDLElBQUksQ0FBQywwRUFBMEUsQ0FBQyxDQUFDO1FBQ3pGLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxXQUFXLEVBQUUsS0FBSyxPQUFPLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNqRSxDQUFDO0lBRUQ7O01BRUU7SUFDSyxTQUFTLENBQUMsS0FBSztRQUNwQixPQUFPLENBQUMsSUFBSSxDQUFDLDRFQUE0RSxDQUFDLENBQUM7UUFDM0YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7d0dBN1FRLE1BQU07NEdBQU4sTUFBTTs7NEZBQU4sTUFBTTtrQkFEbEIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNvbnN0IEtFWV9DQU5DRUwgPSAzLFxuICAgIEtFWV9IRUxQID0gNixcbiAgICBLRVlfQkFDS1NQQUNFID0gOCxcbiAgICBLRVlfVEFCID0gOSxcbiAgICBLRVlfQ0xFQVIgPSAxMixcbiAgICBLRVlfUkVUVVJOID0gMTMsXG4gICAgS0VZX0VOVEVSID0gMTQsXG4gICAgS0VZX1NISUZUID0gMTYsXG4gICAgS0VZX0NPTlRST0wgPSAxNyxcbiAgICBLRVlfQUxUID0gMTgsXG4gICAgS0VZX1BBVVNFID0gMTksXG4gICAgS0VZX0NBUFNfTE9DSyA9IDIwLFxuICAgIEtFWV9FU0NBUEUgPSAyNyxcbiAgICBLRVlfU1BBQ0UgPSAzMixcbiAgICBLRVlfUEFHRV9VUCA9IDMzLFxuICAgIEtFWV9QQUdFX0RPV04gPSAzNCxcbiAgICBLRVlfRU5EID0gMzUsXG4gICAgS0VZX0hPTUUgPSAzNixcbiAgICBLRVlfTEVGVCA9IDM3LFxuICAgIEtFWV9VUCA9IDM4LFxuICAgIEtFWV9SSUdIVCA9IDM5LFxuICAgIEtFWV9ET1dOID0gNDAsXG4gICAgS0VZX1BSSU5UU0NSRUVOID0gNDQsXG4gICAgS0VZX0lOU0VSVCA9IDQ1LFxuICAgIEtFWV9ERUxFVEUgPSA0NixcbiAgICBLRVlfMCA9IDQ4LFxuICAgIEtFWV8xID0gNDksXG4gICAgS0VZXzIgPSA1MCxcbiAgICBLRVlfMyA9IDUxLFxuICAgIEtFWV80ID0gNTIsXG4gICAgS0VZXzUgPSA1MyxcbiAgICBLRVlfNiA9IDU0LFxuICAgIEtFWV83ID0gNTUsXG4gICAgS0VZXzggPSA1NixcbiAgICBLRVlfOSA9IDU3LFxuICAgIEtFWV9TRU1JQ09MT04gPSA1OSxcbiAgICBLRVlfRVFVQUxTID0gNjE7XG5cbi8qXG4gICAgQmFzaWNhbGx5LCBqdXN0IGNvcHktcGFzdGVkIGZ1bmN0aW9uYWxpdHkgZnJvbSBmcy1ib2lsZXJwbGF0ZSB2MS54LCB3aXRoIHNvbWUgc21hbGwgY2hhbmdlcyAobGlrZSB3ZSBkb250IGhhdmUgYW5ndWxhci5iaW5kIGFueW1vcmUsIGhhZCB0byBnbyB3aXRoIGEgd29ya2Fyb3VuZClcbiAgICBUaGVyZSBtaWdodCBiZSBhIGJldHRlciB3YXkgdG8gb3JnYW5pc2UgY29uc3RhdG5zIGJ1dCBJIG5lZWQgdG8ga25vdyB1c2UtY2FzZXNcbiovXG5cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEZzVXRpbCB7XG5cbiAgICBwcml2YXRlIGludGVydmFscyA9IHt9O1xuXG4gICAgLyoqXG4gICAgKiBAZGVwcmVjYXRlZCB1c2UgQGZpcmVzdGl0Y2gvY29tbW9uL3V0aWwvZ3VpZCBpbnN0ZWFkXG4gICAgKi9cbiAgICBwdWJsaWMgZ3VpZChwYXR0ZXJuPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgIGNvbnNvbGUud2FybignQGRlcHJlY2F0ZWQgdXNlIEBmaXJlc3RpdGNoL2NvbW1vbi91dGlsL2d1aWQgaW5zdGVhZCcpO1xuICAgICAgcGF0dGVybiA9IHBhdHRlcm4gfHwgJ3h4eHh4eCc7XG4gICAgICByZXR1cm4gcGF0dGVybi5yZXBsYWNlKC9beHldL2csIGZ1bmN0aW9uKGMpIHtcbiAgICAgICAgdmFyIHIgPSBNYXRoLnJhbmRvbSgpICogMTYgfCAwLCB2ID0gYyA9PSAneCcgPyByIDogKHIgJiAweDMgfCAweDgpO1xuICAgICAgICByZXR1cm4gdi50b1N0cmluZygxNik7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCB1c2UgaW1wb3J0IHsgdXVpZCB9IGZyb20gQGZpcmVzdGl0Y2gvY29tbW9uL3V0aWw7IGluc3RlYWRcbiAgICAqL1xuICAgIHB1YmxpYyB1dWlkKCk6IHN0cmluZyB7XG4gICAgICBjb25zb2xlLndhcm4oJ0BkZXByZWNhdGVkIHVzZSBAZmlyZXN0aXRjaC9jb21tb24vdXRpbC91dWlkIGluc3RlYWQnKTtcbiAgICAgIHJldHVybiB0aGlzLmd1aWQoJ3h4eHh4eHh4LXh4eHgteHh4eC14eHh4LXh4eHh4eHh4eHh4eCcpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyByZXNvbHZlIH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vdXRpbDsgaW5zdGVhZFxuICAgICovXG4gICAgcHVibGljIHJlc29sdmUocHJvbWlzZTogUHJvbWlzZTxvYmplY3Q+LCBkZWZhdWx0cyA9IFtdKTogUHJvbWlzZTxvYmplY3Q+IHtcbiAgICAgIGNvbnNvbGUud2FybignQGRlcHJlY2F0ZWQgdXNlIEBmaXJlc3RpdGNoL2NvbW1vbi91dGlsL3Jlc29sdmUgaW5zdGVhZCcpO1xuICAgICAgY29uc3QgcmVzdWx0ID0gZGVmYXVsdHM7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgICAgICAgICBwcm9taXNlLnRoZW4oZnVuY3Rpb24gKGRhdGEpIHtcbiAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyhkYXRhKS5mb3JFYWNoKGtleSA9PiByZXN1bHRba2V5XSA9IGRhdGFba2V5XSlcbiAgICAgICAgICAgICAgICByZXNvbHZlKHJlc3VsdClcbiAgICAgICAgICAgIH0pO1xuICAgICAgIH0pXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlIF8udG9JbnRlZ2VyKCkgaW5zdGVhZFxuICAgICovXG4gICAgcHVibGljIGludCh2YWx1ZTogYW55KTogbnVtYmVyIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdAZGVwcmVjYXRlZCB1c2UgXy50b0ludGVnZXIoKSBpbnN0ZWFkJyk7XG4gICAgICAgIHZhbHVlID0gcGFyc2VJbnQodmFsdWUpO1xuICAgICAgICBpZiAoaXNOYU4odmFsdWUpKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBfLnRvRmluaXRlKCkgaW5zdGVhZFxuICAgICovXG4gICAgcHVibGljIGZsb2F0KHZhbHVlKTogbnVtYmVyIHtcbiAgICAgIGNvbnNvbGUud2FybignQGRlcHJlY2F0ZWQgdXNlIF8udG9GaW5pdGUoKSBpbnN0ZWFkJyk7XG4gICAgICB2YWx1ZSA9IHBhcnNlRmxvYXQodmFsdWUpO1xuICAgICAgaWYgKGlzTmFOKHZhbHVlKSkge1xuICAgICAgICAgIHZhbHVlID0gMDtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCB1c2UgXy50b1N0cmluZygpIGluc3RlYWRcbiAgICAqL1xuICAgIHB1YmxpYyBzdHJpbmcoc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgIGNvbnNvbGUud2FybignQGRlcHJlY2F0ZWQgdXNlIF8udG9TdHJpbmcoKSBpbnN0ZWFkJyk7XG4gICAgICAgIGlmIChzdHJpbmcgPT09IG51bGwgfHwgc3RyaW5nID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHN0cmluZyA9ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIChzdHJpbmcpLnRvU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlIGltcG9ydCB7IGlzRW1wdHkgfSBmcm9tIEBmaXJlc3RpdGNoL2NvbW1vbi91dGlsOyBpbnN0ZWFkXG4gICAgKi9cbiAgICBwdWJsaWMgaXNFbXB0eSh2YWx1ZSwgb3B0aW9ucz8pOiBib29sZWFuIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdAZGVwcmVjYXRlZCB1c2UgaW1wb3J0IHsgaXNFbXB0eSB9IGZyb20gQGZpcmVzdGl0Y2gvY29tbW9uL3V0aWw7IGluc3RlYWQnKTtcbiAgICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gICAgICAgIHJldHVybiB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICAgICB2YWx1ZSA9PT0gbnVsbCB8fFxuICAgICAgICAgICAgdmFsdWUgPT09IGZhbHNlIHx8XG4gICAgICAgICAgICB2YWx1ZSA9PT0gJycgfHxcbiAgICAgICAgICAgICF0aGlzLnN0cmluZyh2YWx1ZSkubGVuZ3RoIHx8XG4gICAgICAgICAgICAoXG4gICAgICAgICAgICAgICAgdGhpcy5pc09iamVjdCh2YWx1ZSkgJiZcbiAgICAgICAgICAgICAgICAodmFsdWUuY29uc3RydWN0b3IubmFtZSA9PT0gJ09iamVjdCcgJiYgIU9iamVjdC5rZXlzKHZhbHVlKS5sZW5ndGgpKSB8fFxuICAgICAgICAgICAgICAgICghb3B0aW9ucy56ZXJvICYmICh2YWx1ZSA9PT0gMCB8fCB2YWx1ZSA9PT0gJzAnKVxuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCB1c2UgXy5pc0ludGVnZXIoKSBpbnN0ZWFkXG4gICAgKi9cbiAgICBwdWJsaWMgaXNJbnQodmFsdWUsIHR5cGU/KSB7XG4gICAgICAgIGNvbnNvbGUud2FybignQGRlcHJlY2F0ZWQgdXNlIF8uaXNJbnRlZ2VyKCkgaW5zdGVhZCcpO1xuICAgICAgICBjb25zdCBpbnQgPSAhIXRoaXMuc3RyaW5nKHZhbHVlKS5tYXRjaCgvXlxcZCskLyk7XG5cbiAgICAgICAgaWYgKCFpbnQpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlKSB7XG4gICAgICAgICAgICByZXR1cm4gTnVtYmVyLmlzSW50ZWdlcih2YWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCB1c2UgXy5lYWNoKCkgaW5zdGVhZCB7QGxpbmsgaHR0cHM6Ly9sb2Rhc2guY29tL2RvY3MvNC4xNy41I2ZvckVhY2h9XG4gICAgKi9cbiAgICBwdWJsaWMgZWFjaChvYmplY3QsIGZ1bmMpIHtcbiAgICAgIGNvbnNvbGUud2FybignQGRlcHJlY2F0ZWQgdXNlIF8uZWFjaCgpIGluc3RlYWQge0BsaW5rIGh0dHBzOi8vbG9kYXNoLmNvbS9kb2NzLzQuMTcuNSNmb3JFYWNofScpO1xuICAgICAgaWYgKCF0aGlzLmlzQXJyYXkob2JqZWN0KSAmJiAhdGhpcy5pc09iamVjdChvYmplY3QpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgT2JqZWN0LmtleXMob2JqZWN0KS5mb3JFYWNoKGZ1bmN0aW9uKGtleSkge1xuICAgICAgICBmdW5jKG9iamVjdFtrZXldLGtleSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCB1c2UgXy5pc0FycmF5TGlrZU9iamVjdCgpIHtAbGluayBodHRwczovL2xvZGFzaC5jb20vZG9jcy80LjE3LjUjaXNBcnJheUxpa2VPYmplY3R9XG4gICAgICogb3IgXy5pc09iamVjdCgpIHtAbGluayBodHRwczovL2xvZGFzaC5jb20vZG9jcy80LjE3LjUjaXNPYmplY3R9IGluc3RlYWRcbiAgICAqL1xuICAgIHB1YmxpYyBpc09iamVjdCh2YWx1ZSk6IGJvb2xlYW4ge1xuICAgICAgY29uc29sZS53YXJuKCdAZGVwcmVjYXRlZCB1c2UgXy5pc0FycmF5TGlrZU9iamVjdCgpIHtAbGluayBodHRwczovL2xvZGFzaC5jb20vZG9jcy80LjE3LjUjaXNBcnJheUxpa2VPYmplY3R9IG9yIF8uaXNPYmplY3QoKSB7QGxpbmsgaHR0cHM6Ly9sb2Rhc2guY29tL2RvY3MvNC4xNy41I2lzT2JqZWN0fSBpbnN0ZWFkJyk7XG4gICAgICByZXR1cm4gdmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiAhdGhpcy5pc0FycmF5KHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgICogQGRlcHJlY2F0ZWQgdXNlIF8uaXNTdHJpbmcoKSBpbnN0ZWFkIHtAbGluayBodHRwczovL2xvZGFzaC5jb20vZG9jcy80LjE3LjUjaXNTdHJpbmd9XG4gICAgKi9cbiAgICBwdWJsaWMgaXNTdHJpbmcodmFsdWUpOiBib29sZWFuIHtcbiAgICAgIGNvbnNvbGUud2FybignQGRlcHJlY2F0ZWQgdXNlIF8uaXNTdHJpbmcoKSBpbnN0ZWFkIHtAbGluayBodHRwczovL2xvZGFzaC5jb20vZG9jcy80LjE3LjUjaXNTdHJpbmd9Jyk7XG4gICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyB8fCB2YWx1ZSBpbnN0YW5jZW9mIFN0cmluZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCB1c2UgXy5pc0FycmF5KCkgaW5zdGVhZCB7QGxpbmsgaHR0cHM6Ly9sb2Rhc2guY29tL2RvY3MvNC4xNy41I2lzQXJyYXl9XG4gICAgKi9cbiAgICBwdWJsaWMgaXNBcnJheSh2YWx1ZSk6IGJvb2xlYW4ge1xuICAgICAgY29uc29sZS53YXJuKCdAZGVwcmVjYXRlZCB1c2UgXy5pc0FycmF5KCkgaW5zdGVhZCB7QGxpbmsgaHR0cHM6Ly9sb2Rhc2guY29tL2RvY3MvNC4xNy41I2lzQXJyYXl9Jyk7XG4gICAgICByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBBcnJheTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCB1c2UgaW1wb3J0IHsgaXNOdW1lcmljIH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vdXRpbDsgaW5zdGVhZFxuICAgICovXG4gICAgcHVibGljIGlzTnVtZXJpYyh2YWx1ZSk6IGJvb2xlYW4ge1xuICAgICAgY29uc29sZS53YXJuKCdAZGVwcmVjYXRlZCB1c2UgaW1wb3J0IHsgaXNOdW1lcmljIH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vdXRpbDsgaW5zdGVhZCcpO1xuICAgICAgcmV0dXJuIHRoaXMuc3RyaW5nKHZhbHVlKS5sZW5ndGggJiYgISF0aGlzLnN0cmluZyh2YWx1ZSkubWF0Y2goL14tP1xcZCpcXC4/XFxkKiQvKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCB1c2UgaW1wb3J0IHsgaXNDbGFzcyB9IGZyb20gQGZpcmVzdGl0Y2gvY29tbW9uL3V0aWw7IGluc3RlYWRcbiAgICAqL1xuICAgIHB1YmxpYyBpc0NsYXNzKHZhbHVlLCBjbHMpIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdAZGVwcmVjYXRlZCB1c2UgaW1wb3J0IHsgaXNDbGFzcyB9IGZyb20gQGZpcmVzdGl0Y2gvY29tbW9uL3V0aWw7IGluc3RlYWQnKTtcbiAgICAgICAgaWYgKHRoaXMuaXNPYmplY3QodmFsdWUpKSB7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmlzU3RyaW5nKGNscykpIHtcblxuICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5jb25zdHJ1Y3Rvcikge1xuICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUuY29uc3RydWN0b3IubmFtZSA9PT0gY2xzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfSBlbHNlIHtcblxuICAgICAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIGNscykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICAqIEBkZXByZWNhdGVkIHVzZSBfLmlzQm9vbGVhbigpIGluc3RlYWQge0BsaW5rIGh0dHBzOi8vbG9kYXNoLmNvbS9kb2NzLzQuMTcuNSNpc0Jvb2xlYW59XG4gICAgKi9cbiAgICBwdWJsaWMgaXNCb29sZWFuKHZhbHVlKTogYm9vbGVhbiB7XG4gICAgICBjb25zb2xlLndhcm4oJ0BkZXByZWNhdGVkIHVzZSBfLmlzQm9vbGVhbigpIGluc3RlYWQge0BsaW5rIGh0dHBzOi8vbG9kYXNoLmNvbS9kb2NzLzQuMTcuNSNpc0Jvb2xlYW59Jyk7XG4gICAgICByZXR1cm4gdmFsdWUgPT09IHRydWUgfHwgdmFsdWUgPT09IGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyB2YWx1ZSB9IGZyb20gQGZpcmVzdGl0Y2gvY29tbW9uL3V0aWw7IGluc3RlYWRcbiAgICAqL1xuICAgIHB1YmxpYyB2YWx1ZShvYmplY3QsIGtleSwgZGVmKTogYW55IHtcbiAgICAgIGNvbnNvbGUud2FybignQGRlcHJlY2F0ZWQgdXNlIGltcG9ydCB7IHZhbHVlIH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vdXRpbDsgaW5zdGVhZCcpO1xuICAgICAgICBpZiAodGhpcy5pc09iamVjdChvYmplY3QpIHx8IHRoaXMuaXNBcnJheShvYmplY3QpKSB7XG5cbiAgICAgICAgICAgIGlmIChvYmplY3QuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvYmplY3Rba2V5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBkZWY7XG4gICAgfVxuXG4gICAgcHVibGljIHRocm90dGxlKGZ1bmMsIHdhaXQpIHtcbiAgICAgIGNvbnNvbGUud2FybignQGRlcHJlY2F0ZWQgdXNlIGltcG9ydCB7IHRocm90dGxlIH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vdXRpbDsgaW5zdGVhZCcpO1xuICAgICAgbGV0IHdhaXRpbmcgPSBmYWxzZTsgICAgICAgICAgICAgICAgICBcdC8vIEluaXRpYWxseSwgd2UncmUgbm90IHdhaXRpbmdcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHsgICAgICAgICAgICAgICBcdFx0Ly8gV2UgcmV0dXJuIGEgdGhyb3R0bGVkIGZ1bmN0aW9uXG4gICAgICAgICAgICBpZiAoIXdhaXRpbmcpIHsgICAgICAgICAgICAgICAgICAgXHQvLyBJZiB3ZSdyZSBub3Qgd2FpdGluZ1xuICAgICAgICAgICAgICAgIGZ1bmMuYXBwbHkobnVsbCwgYXJndW1lbnRzKTsgICAgIC8vIEV4ZWN1dGUgdXNlcnMgZnVuY3Rpb25cbiAgICAgICAgICAgICAgICB3YWl0aW5nID0gdHJ1ZTsgICAgICAgICAgICAgICBcdC8vIFByZXZlbnQgZnV0dXJlIGludm9jYXRpb25zXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7ICAgXHRcdC8vIEFmdGVyIGEgcGVyaW9kIG9mIHRpbWVcbiAgICAgICAgICAgICAgICAgICAgd2FpdGluZyA9IGZhbHNlOyAgICAgICAgICBcdC8vIEFuZCBhbGxvdyBmdXR1cmUgaW52b2NhdGlvbnNcbiAgICAgICAgICAgICAgICB9LCB3YWl0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyBkZWJvdW5jZSB9IGZyb20gQGZpcmVzdGl0Y2gvY29tbW9uL3V0aWw7IGluc3RlYWRcbiAgICAqL1xuICAgIHB1YmxpYyBkZWJvdW5jZShmdW5jLCB3YWl0LCBpbW1lZGlhdGUpIHtcbiAgICAgIGNvbnNvbGUud2FybignQGRlcHJlY2F0ZWQgdXNlIGltcG9ydCB7IGRlYm91bmNlIH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vdXRpbDsgaW5zdGVhZCcpO1xuICAgICAgdmFyIHRpbWVvdXQ7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgY29udGV4dCA9IHRoaXMsIGFyZ3MgPSBhcmd1bWVudHM7XG4gICAgICAgICAgICB2YXIgbGF0ZXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdGltZW91dCA9IG51bGw7XG4gICAgICAgICAgICAgICAgaWYgKCFpbW1lZGlhdGUpIGZ1bmMuYXBwbHkoY29udGV4dCwgYXJncyk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdmFyIGNhbGxOb3cgPSBpbW1lZGlhdGUgJiYgIXRpbWVvdXQ7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dCk7XG4gICAgICAgICAgICB0aW1lb3V0ID0gc2V0VGltZW91dChsYXRlciwgd2FpdCk7XG4gICAgICAgICAgICBpZiAoY2FsbE5vdykgZnVuYy5hcHBseShjb250ZXh0LCBhcmdzKTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCB1c2UgaW1wb3J0IHsgbGVuZ3RoIH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vdXRpbDsgaW5zdGVhZFxuICAgICovXG4gICAgcHVibGljIGxlbmd0aChvYmplY3QpOiBudW1iZXIge1xuICAgICAgY29uc29sZS53YXJuKCdAZGVwcmVjYXRlZCB1c2UgaW1wb3J0IHsgbGVuZ3RoIH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vdXRpbDsgaW5zdGVhZCcpO1xuICAgICAgaWYgKHRoaXMuaXNPYmplY3Qob2JqZWN0KSkge1xuICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKG9iamVjdCkubGVuZ3RoO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNBcnJheShvYmplY3QpKSB7XG4gICAgICAgICAgICByZXR1cm4gb2JqZWN0Lmxlbmd0aDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyBib29sZWFuIH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vdXRpbDsgaW5zdGVhZFxuICAgICovXG4gICAgcHVibGljIGJvb2xlYW4odmFsdWUpIHtcbiAgICAgIGNvbnNvbGUud2FybignQGRlcHJlY2F0ZWQgdXNlIGltcG9ydCB7IGJvb2xlYW4gfSBmcm9tIEBmaXJlc3RpdGNoL2NvbW1vbi91dGlsOyBpbnN0ZWFkJyk7XG4gICAgICByZXR1cm4gdGhpcy5zdHJpbmcodmFsdWUpLnRvTG93ZXJDYXNlKCkgIT09ICdmYWxzZScgJiYgISF2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCB1c2UgaW1wb3J0IHsgc3RyaW5naWZ5IH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vdXRpbDsgaW5zdGVhZFxuICAgICovXG4gICAgcHVibGljIHN0cmluZ2lmeSh2YWx1ZSkge1xuICAgICAgY29uc29sZS53YXJuKCdAZGVwcmVjYXRlZCB1c2UgaW1wb3J0IHsgc3RyaW5naWZ5IH0gZnJvbSBAZmlyZXN0aXRjaC9jb21tb24vdXRpbDsgaW5zdGVhZCcpO1xuICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHZhbHVlKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { FsUtil } from './util.service';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "./util.service";
|
|
5
|
+
export class FsValidate {
|
|
6
|
+
fsUtil;
|
|
7
|
+
constructor(fsUtil) {
|
|
8
|
+
this.fsUtil = fsUtil;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* @deprecated use import { email } from @firestitch/common/validate; instead
|
|
12
|
+
*/
|
|
13
|
+
phone(value) {
|
|
14
|
+
const valid = /^[\+]?[(]?[0-9]{3}[)]?[-\s\.]?[0-9]{3}[-\s\.]?[0-9]{4,6}$/.test(value);
|
|
15
|
+
return valid || !String(value).length;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* @deprecated use import { email } from @firestitch/common/validate; instead
|
|
19
|
+
*/
|
|
20
|
+
email(value) {
|
|
21
|
+
return !!this.fsUtil.string(value).match(/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/);
|
|
22
|
+
}
|
|
23
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FsValidate, deps: [{ token: i1.FsUtil }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
24
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FsValidate });
|
|
25
|
+
}
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FsValidate, decorators: [{
|
|
27
|
+
type: Injectable
|
|
28
|
+
}], ctorParameters: function () { return [{ type: i1.FsUtil }]; } });
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFpbGRhdGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvc2VydmljZXMvdmFpbGRhdGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBR3hDLE1BQU0sT0FBTyxVQUFVO0lBRUM7SUFBcEIsWUFBb0IsTUFBYztRQUFkLFdBQU0sR0FBTixNQUFNLENBQVE7SUFBSSxDQUFDO0lBRXZDOztNQUVFO0lBQ0YsS0FBSyxDQUFDLEtBQUs7UUFDUCxNQUFNLEtBQUssR0FBRywyREFBMkQsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEYsT0FBTyxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzFDLENBQUM7SUFFRDs7TUFFRTtJQUNGLEtBQUssQ0FBQyxLQUFLO1FBQ1AsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLHdKQUF3SixDQUFDLENBQUM7SUFDdk0sQ0FBQzt3R0FqQlEsVUFBVTs0R0FBVixVQUFVOzs0RkFBVixVQUFVO2tCQUR0QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRnNVdGlsIH0gZnJvbSAnLi91dGlsLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRnNWYWxpZGF0ZSB7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZzVXRpbDogRnNVdGlsKSB7IH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyBlbWFpbCB9IGZyb20gQGZpcmVzdGl0Y2gvY29tbW9uL3ZhbGlkYXRlOyBpbnN0ZWFkXG4gICAgKi9cbiAgICBwaG9uZSh2YWx1ZSkge1xuICAgICAgICBjb25zdCB2YWxpZCA9IC9eW1xcK10/WyhdP1swLTldezN9WyldP1stXFxzXFwuXT9bMC05XXszfVstXFxzXFwuXT9bMC05XXs0LDZ9JC8udGVzdCh2YWx1ZSk7XG4gICAgICAgIHJldHVybiB2YWxpZCB8fCAhU3RyaW5nKHZhbHVlKS5sZW5ndGg7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICAqIEBkZXByZWNhdGVkIHVzZSBpbXBvcnQgeyBlbWFpbCB9IGZyb20gQGZpcmVzdGl0Y2gvY29tbW9uL3ZhbGlkYXRlOyBpbnN0ZWFkXG4gICAgKi9cbiAgICBlbWFpbCh2YWx1ZSkge1xuICAgICAgICByZXR1cm4gISF0aGlzLmZzVXRpbC5zdHJpbmcodmFsdWUpLm1hdGNoKC9eKChbXjw+KClcXFtcXF1cXFxcLiw7Olxcc0BcIl0rKFxcLltePD4oKVxcW1xcXVxcXFwuLDs6XFxzQFwiXSspKil8KFwiLitcIikpQCgoXFxbWzAtOV17MSwzfVxcLlswLTldezEsM31cXC5bMC05XXsxLDN9XFwuWzAtOV17MSwzfV0pfCgoW2EtekEtWlxcLTAtOV0rXFwuKStbYS16QS1aXXsyLH0pKSQvKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYnMvdXRpbC9xdWV1ZS9vcGVyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFHL0IsTUFBTSxPQUFPLFNBQVM7SUFFYixJQUFJLENBQVM7SUFDYixNQUFNLENBQWtCO0lBQ3hCLE1BQU0sR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBRTlCLFlBQVksTUFBdUIsRUFBRSxJQUFhO1FBQ2hELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBRWpDLElBQUksTUFBTSxZQUFZLFVBQVUsRUFBRTtZQUNoQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztTQUN0QjthQUFNO1lBQ0wsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDMUI7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZ3VpZCB9IGZyb20gJy4uL2d1aWQnO1xuXG5cbmV4cG9ydCBjbGFzcyBPcGVyYXRpb24ge1xuXG4gIHB1YmxpYyBuYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyB0YXJnZXQ6IE9ic2VydmFibGU8YW55PjtcbiAgcHVibGljIHJlYWR5JCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IodGFyZ2V0OiBPYnNlcnZhYmxlPGFueT4sIG5hbWU/OiBzdHJpbmcpIHtcbiAgICB0aGlzLm5hbWUgPSBuYW1lID8gbmFtZSA6IGd1aWQoKTtcblxuICAgIGlmICh0YXJnZXQgaW5zdGFuY2VvZiBPYnNlcnZhYmxlKSB7XG4gICAgICB0aGlzLnRhcmdldCA9IHRhcmdldDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50YXJnZXQgPSBvZih0YXJnZXQpO1xuICAgIH1cbiAgfVxufVxuIl19
|