@ngxs/store 3.7.5 → 3.7.6-dev.master-95e4742
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/bundles/ngxs-store-operators.umd.js +13 -12
- package/bundles/ngxs-store-operators.umd.js.map +1 -1
- package/bundles/ngxs-store-operators.umd.min.js +1 -1
- package/bundles/ngxs-store-operators.umd.min.js.map +1 -1
- package/bundles/ngxs-store.umd.js +611 -485
- package/bundles/ngxs-store.umd.js.map +1 -1
- package/bundles/ngxs-store.umd.min.js +1 -1
- package/bundles/ngxs-store.umd.min.js.map +1 -1
- package/esm2015/ngxs-store.js +6 -5
- package/esm2015/operators/append.js +3 -3
- package/esm2015/operators/compose.js +1 -1
- package/esm2015/operators/iif.js +1 -1
- package/esm2015/operators/index.js +1 -1
- package/esm2015/operators/insert-item.js +3 -3
- package/esm2015/operators/patch.js +4 -5
- package/esm2015/operators/update-item.js +7 -5
- package/esm2015/operators/utils.js +1 -1
- package/esm2015/src/actions-stream.js +16 -6
- package/esm2015/src/internal/dispatcher.js +14 -36
- package/esm2015/src/internal/error-handler.js +118 -0
- package/esm2015/src/internal/internals.js +2 -27
- package/esm2015/src/internal/lifecycle-state-manager.js +85 -38
- package/esm2015/src/internal/state-context-factory.js +1 -12
- package/esm2015/src/internal/state-factory.js +4 -4
- package/esm2015/src/operators/of-action.js +7 -1
- package/esm2015/src/public_api.js +1 -1
- package/esm5/ngxs-store.js +6 -5
- package/esm5/operators/append.js +3 -3
- package/esm5/operators/compose.js +1 -1
- package/esm5/operators/iif.js +1 -1
- package/esm5/operators/index.js +1 -1
- package/esm5/operators/insert-item.js +3 -3
- package/esm5/operators/patch.js +4 -5
- package/esm5/operators/update-item.js +7 -5
- package/esm5/operators/utils.js +1 -1
- package/esm5/src/actions-stream.js +22 -7
- package/esm5/src/internal/dispatcher.js +13 -37
- package/esm5/src/internal/error-handler.js +125 -0
- package/esm5/src/internal/internals.js +2 -27
- package/esm5/src/internal/lifecycle-state-manager.js +97 -50
- package/esm5/src/internal/state-context-factory.js +1 -12
- package/esm5/src/internal/state-factory.js +4 -4
- package/esm5/src/operators/of-action.js +7 -1
- package/esm5/src/public_api.js +1 -1
- package/fesm2015/ngxs-store-operators.js +13 -12
- package/fesm2015/ngxs-store-operators.js.map +1 -1
- package/fesm2015/ngxs-store.js +459 -343
- package/fesm2015/ngxs-store.js.map +1 -1
- package/fesm5/ngxs-store-operators.js +13 -12
- package/fesm5/ngxs-store-operators.js.map +1 -1
- package/fesm5/ngxs-store.js +608 -483
- package/fesm5/ngxs-store.js.map +1 -1
- package/ngxs-store.d.ts +6 -5
- package/ngxs-store.metadata.json +1 -1
- package/operators/append.d.ts +2 -2
- package/operators/compose.d.ts +2 -1
- package/operators/iif.d.ts +2 -2
- package/operators/index.d.ts +1 -1
- package/operators/insert-item.d.ts +2 -2
- package/operators/ngxs-store-operators.metadata.json +1 -1
- package/operators/patch.d.ts +2 -6
- package/operators/update-item.d.ts +2 -2
- package/operators/utils.d.ts +2 -1
- package/package.json +3 -3
- package/src/actions-stream.d.ts +4 -2
- package/src/internal/dispatcher.d.ts +3 -4
- package/src/internal/error-handler.d.ts +23 -0
- package/src/internal/internals.d.ts +1 -6
- package/src/internal/lifecycle-state-manager.d.ts +16 -15
- package/src/operators/of-action.d.ts +20 -7
- package/src/public_api.d.ts +1 -1
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import * as tslib_1 from "tslib";
|
|
6
6
|
import { Injectable, Injector, Optional, SkipSelf, Inject } from '@angular/core';
|
|
7
|
-
import { forkJoin, from,
|
|
7
|
+
import { forkJoin, from, of, throwError, Subject, isObservable } from 'rxjs';
|
|
8
8
|
import { catchError, defaultIfEmpty, filter, map, mergeMap, shareReplay, takeUntil } from 'rxjs/operators';
|
|
9
9
|
import { INITIAL_STATE_TOKEN, memoize } from '@ngxs/store/internals';
|
|
10
10
|
import { META_KEY, NgxsConfig } from '../symbols';
|
|
@@ -354,7 +354,7 @@ var StateFactory = /** @class */ (function () {
|
|
|
354
354
|
if (result instanceof Promise) {
|
|
355
355
|
result = from(result);
|
|
356
356
|
}
|
|
357
|
-
if (result
|
|
357
|
+
if (isObservable(result)) {
|
|
358
358
|
// If this observable has been completed w/o emitting
|
|
359
359
|
// any value then we wouldn't want to complete the whole chain
|
|
360
360
|
// of actions. Since if any observable completes then
|
|
@@ -371,7 +371,7 @@ var StateFactory = /** @class */ (function () {
|
|
|
371
371
|
if (value instanceof Promise) {
|
|
372
372
|
return from(value);
|
|
373
373
|
}
|
|
374
|
-
if (value
|
|
374
|
+
if (isObservable(value)) {
|
|
375
375
|
return value;
|
|
376
376
|
}
|
|
377
377
|
return of(value);
|
|
@@ -580,4 +580,4 @@ if (false) {
|
|
|
580
580
|
*/
|
|
581
581
|
StateFactory.prototype._initialState;
|
|
582
582
|
}
|
|
583
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUtZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3N0b3JlLyIsInNvdXJjZXMiOlsic3JjL2ludGVybmFsL3N0YXRlLWZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUM1RixPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBZ0IsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3pGLE9BQU8sRUFDTCxVQUFVLEVBQ1YsY0FBYyxFQUNkLE1BQU0sRUFDTixHQUFHLEVBQ0gsUUFBUSxFQUNSLFdBQVcsRUFDWCxTQUFTLEVBQ1YsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsbUJBQW1CLEVBQWlCLE9BQU8sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXBGLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2xELE9BQU8sRUFDTCxVQUFVLEVBQ1Ysa0JBQWtCLEVBQ2xCLFFBQVEsRUFHUixXQUFXLEVBQ1gsVUFBVSxFQUtWLGVBQWUsRUFHZixnQkFBZ0IsRUFDakIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLHlCQUF5QixFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQStCLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxlQUFlLEVB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LHlGQUF5RjtRQUN6RixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQ7Ozs7OztPQU1HOzs7Ozs7Ozs7O0lBQ0ssb0RBQTZCOzs7Ozs7Ozs7SUFBckMsVUFBc0MsSUFBWSxFQUFFLElBQVk7O1lBQ3hELGlDQUFpQyxHQUNyQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsS0FBSyxTQUFTO1FBQ2xELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxpQ0FBaUMsQ0FBQztJQUN0RSxDQUFDOztnQkEzU0YsVUFBVTs7OztnQkEzQ1UsUUFBUTtnQkFhVixVQUFVO2dCQXVDRCxZQUFZLHVCQUZuQyxRQUFRLFlBQ1IsUUFBUTtnQkFsQnlCLGVBQWU7Z0JBQzVDLCtCQUErQjtnQkFDL0IsbUJBQW1CO2dEQXFCdkIsUUFBUSxZQUNSLE1BQU0sU0FBQyxtQkFBbUI7O0lBOFIvQixtQkFBQztDQUFBLEFBNVNELElBNFNDO1NBM1NZLFlBQVk7Ozs7OztJQUN2Qiw0Q0FBeUQ7Ozs7O0lBZ0J6RCwrQkFBb0M7Ozs7O0lBTXBDLHFDQUF5Qzs7Ozs7SUFNekMsbUNBQWdEOztJQU1oRCxpREFpQ0c7Ozs7O0lBaEVELGlDQUEyQjs7Ozs7SUFDM0IsK0JBQTJCOzs7OztJQUMzQixzQ0FFb0M7Ozs7O0lBQ3BDLGdDQUFpQzs7Ozs7SUFDakMsc0NBQXVEOzs7OztJQUN2RCw0Q0FBaUQ7Ozs7O0lBQ2pELHFDQUUwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yLCBPcHRpb25hbCwgU2tpcFNlbGYsIEluamVjdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmb3JrSm9pbiwgZnJvbSwgT2JzZXJ2YWJsZSwgb2YsIHRocm93RXJyb3IsIFN1YnNjcmlwdGlvbiwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgY2F0Y2hFcnJvcixcbiAgZGVmYXVsdElmRW1wdHksXG4gIGZpbHRlcixcbiAgbWFwLFxuICBtZXJnZU1hcCxcbiAgc2hhcmVSZXBsYXksXG4gIHRha2VVbnRpbFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBJTklUSUFMX1NUQVRFX1RPS0VOLCBQbGFpbk9iamVjdE9mLCBtZW1vaXplIH0gZnJvbSAnQG5neHMvc3RvcmUvaW50ZXJuYWxzJztcblxuaW1wb3J0IHsgTUVUQV9LRVksIE5neHNDb25maWcgfSBmcm9tICcuLi9zeW1ib2xzJztcbmltcG9ydCB7XG4gIGJ1aWxkR3JhcGgsXG4gIGZpbmRGdWxsUGFyZW50UGF0aCxcbiAgaXNPYmplY3QsXG4gIE1hcHBlZFN0b3JlLFxuICBNZXRhRGF0YU1vZGVsLFxuICBuYW1lVG9TdGF0ZSxcbiAgcHJvcEdldHRlcixcbiAgU3RhdGVDbGFzc0ludGVybmFsLFxuICBTdGF0ZUtleUdyYXBoLFxuICBTdGF0ZXNBbmREZWZhdWx0cyxcbiAgU3RhdGVzQnlOYW1lLFxuICB0b3BvbG9naWNhbFNvcnQsXG4gIFJ1bnRpbWVTZWxlY3RvckNvbnRleHQsXG4gIFNoYXJlZFNlbGVjdG9yT3B0aW9ucyxcbiAgZ2V0U3RvcmVNZXRhZGF0YVxufSBmcm9tICcuL2ludGVybmFscyc7XG5pbXBvcnQgeyBnZXRBY3Rpb25UeXBlRnJvbUluc3RhbmNlLCBnZXRWYWx1ZSwgc2V0VmFsdWUgfSBmcm9tICcuLi91dGlscy91dGlscyc7XG5pbXBvcnQgeyBvZkFjdGlvbkRpc3BhdGNoZWQgfSBmcm9tICcuLi9vcGVyYXRvcnMvb2YtYWN0aW9uJztcbmltcG9ydCB7IEFjdGlvbkNvbnRleHQsIEFjdGlvblN0YXR1cywgSW50ZXJuYWxBY3Rpb25zIH0gZnJvbSAnLi4vYWN0aW9ucy1zdHJlYW0nO1xuaW1wb3J0IHsgSW50ZXJuYWxEaXNwYXRjaGVkQWN0aW9uUmVzdWx0cyB9IGZyb20gJy4uL2ludGVybmFsL2Rpc3BhdGNoZXInO1xuaW1wb3J0IHsgU3RhdGVDb250ZXh0RmFjdG9yeSB9IGZyb20gJy4uL2ludGVybmFsL3N0YXRlLWNvbnRleHQtZmFjdG9yeSc7XG5pbXBvcnQgeyBTdG9yZVZhbGlkYXRvcnMgfSBmcm9tICcuLi91dGlscy9zdG9yZS12YWxpZGF0b3JzJztcbmltcG9ydCB7IGVuc3VyZVN0YXRlQ2xhc3NJc0luamVjdGFibGUgfSBmcm9tICcuLi9pdnkvaXZ5LWVuYWJsZWQtaW4tZGV2LW1vZGUnO1xuXG4vKipcbiAqIFN0YXRlIGZhY3RvcnkgY2xhc3NcbiAqIEBpZ25vcmVcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFN0YXRlRmFjdG9yeSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgX2FjdGlvbnNTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2luamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIF9jb25maWc6IE5neHNDb25maWcsXG4gICAgQE9wdGlvbmFsKClcbiAgICBAU2tpcFNlbGYoKVxuICAgIHByaXZhdGUgX3BhcmVudEZhY3Rvcnk6IFN0YXRlRmFjdG9yeSxcbiAgICBwcml2YXRlIF9hY3Rpb25zOiBJbnRlcm5hbEFjdGlvbnMsXG4gICAgcHJpdmF0ZSBfYWN0aW9uUmVzdWx0czogSW50ZXJuYWxEaXNwYXRjaGVkQWN0aW9uUmVzdWx0cyxcbiAgICBwcml2YXRlIF9zdGF0ZUNvbnRleHRGYWN0b3J5OiBTdGF0ZUNvbnRleHRGYWN0b3J5LFxuICAgIEBPcHRpb25hbCgpXG4gICAgQEluamVjdChJTklUSUFMX1NUQVRFX1RPS0VOKVxuICAgIHByaXZhdGUgX2luaXRpYWxTdGF0ZTogYW55XG4gICkge31cblxuICBwcml2YXRlIF9zdGF0ZXM6IE1hcHBlZFN0b3JlW10gPSBbXTtcblxuICBnZXQgc3RhdGVzKCk6IE1hcHBlZFN0b3JlW10ge1xuICAgIHJldHVybiB0aGlzLl9wYXJlbnRGYWN0b3J5ID8gdGhpcy5fcGFyZW50RmFjdG9yeS5zdGF0ZXMgOiB0aGlzLl9zdGF0ZXM7XG4gIH1cblxuICBwcml2YXRlIF9zdGF0ZXNCeU5hbWU6IFN0YXRlc0J5TmFtZSA9IHt9O1xuXG4gIGdldCBzdGF0ZXNCeU5hbWUoKTogU3RhdGVzQnlOYW1lIHtcbiAgICByZXR1cm4gdGhpcy5fcGFyZW50RmFjdG9yeSA/IHRoaXMuX3BhcmVudEZhY3Rvcnkuc3RhdGVzQnlOYW1lIDogdGhpcy5fc3RhdGVzQnlOYW1lO1xuICB9XG5cbiAgcHJpdmF0ZSBfc3RhdGVQYXRoczogUGxhaW5PYmplY3RPZjxzdHJpbmc+ID0ge307XG5cbiAgcHJpdmF0ZSBnZXQgc3RhdGVQYXRocygpOiBQbGFpbk9iamVjdE9mPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLl9wYXJlbnRGYWN0b3J5ID8gdGhpcy5fcGFyZW50RmFjdG9yeS5zdGF0ZVBhdGhzIDogdGhpcy5fc3RhdGVQYXRocztcbiAgfVxuXG4gIGdldFJ1bnRpbWVTZWxlY3RvckNvbnRleHQgPSBtZW1vaXplKCgpID0+IHtcbiAgICBjb25zdCBzdGF0ZUZhY3RvcnkgPSB0aGlzO1xuXG4gICAgZnVuY3Rpb24gcmVzb2x2ZUdldHRlcihrZXk6IHN0cmluZykge1xuICAgICAgY29uc3QgcGF0aCA9IHN0YXRlRmFjdG9yeS5zdGF0ZVBhdGhzW2tleV07XG4gICAgICByZXR1cm4gcGF0aCA/IHByb3BHZXR0ZXIocGF0aC5zcGxpdCgnLicpLCBzdGF0ZUZhY3RvcnkuX2NvbmZpZykgOiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbnRleHQ6IFJ1bnRpbWVTZWxlY3RvckNvbnRleHQgPSB0aGlzLl9wYXJlbnRGYWN0b3J5XG4gICAgICA/IHRoaXMuX3BhcmVudEZhY3RvcnkuZ2V0UnVudGltZVNlbGVjdG9yQ29udGV4dCgpXG4gICAgICA6IHtcbiAgICAgICAgICBnZXRTdGF0ZUdldHRlcihrZXk6IHN0cmluZykge1xuICAgICAgICAgICAgbGV0IGdldHRlciA9IHJlc29sdmVHZXR0ZXIoa2V5KTtcbiAgICAgICAgICAgIGlmIChnZXR0ZXIpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGdldHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiAoLi4uYXJncykgPT4ge1xuICAgICAgICAgICAgICAvLyBMYXRlIGxvYWRlZCBnZXR0ZXJcbiAgICAgICAgICAgICAgaWYgKCFnZXR0ZXIpIHtcbiAgICAgICAgICAgICAgICBnZXR0ZXIgPSByZXNvbHZlR2V0dGVyKGtleSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuIGdldHRlciA/IGdldHRlciguLi5hcmdzKSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSxcbiAgICAgICAgICBnZXRTZWxlY3Rvck9wdGlvbnMobG9jYWxPcHRpb25zPzogU2hhcmVkU2VsZWN0b3JPcHRpb25zKSB7XG4gICAgICAgICAgICBjb25zdCBnbG9iYWxTZWxlY3Rvck9wdGlvbnMgPSBzdGF0ZUZhY3RvcnkuX2NvbmZpZy5zZWxlY3Rvck9wdGlvbnM7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAuLi5nbG9iYWxTZWxlY3Rvck9wdGlvbnMsXG4gICAgICAgICAgICAgIC4uLihsb2NhbE9wdGlvbnMgfHwge30pXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICByZXR1cm4gY29udGV4dDtcbiAgfSk7XG5cbiAgcHJpdmF0ZSBzdGF0aWMgY2xvbmVEZWZhdWx0cyhkZWZhdWx0czogYW55KTogYW55IHtcbiAgICBsZXQgdmFsdWUgPSB7fTtcblxuICAgIGlmIChBcnJheS5pc0FycmF5KGRlZmF1bHRzKSkge1xuICAgICAgdmFsdWUgPSBkZWZhdWx0cy5zbGljZSgpO1xuICAgIH0gZWxzZSBpZiAoaXNPYmplY3QoZGVmYXVsdHMpKSB7XG4gICAgICB2YWx1ZSA9IHsgLi4uZGVmYXVsdHMgfTtcbiAgICB9IGVsc2UgaWYgKGRlZmF1bHRzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHZhbHVlID0ge307XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbHVlID0gZGVmYXVsdHM7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgLy8gSSdtIHVzaW5nIG5vbi1udWxsIGFzc2VydGlvbiBoZXJlIHNpbmNlIGBfYWN0aW9uc1N1YnNjcml0aW9uYCB3aWxsXG4gICAgLy8gYmUgMTAwJSBkZWZpbmVkLiBUaGlzIGlzIGJlY2F1c2UgYG5nT25EZXN0cm95KClgIGNhbm5vdCBiZSBpbnZva2VkXG4gICAgLy8gb24gdGhlIGBTdGF0ZUZhY3RvcnlgIHVudGlsIGl0cyBpbml0aWFsaXplZCA6KSBBbiBpdCdzIGluaXRpYWxpemVkXG4gICAgLy8gZm9yIHRoZSBmaXJzdCB0aW1lIGFsb25nIHdpdGggdGhlIGBOZ3hzUm9vdE1vZHVsZWAuXG4gICAgdGhpcy5fYWN0aW9uc1N1YnNjcmlwdGlvbiEudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBuZXcgc3RhdGUgdG8gdGhlIGdsb2JhbCBkZWZzLlxuICAgKi9cbiAgYWRkKHN0YXRlQ2xhc3NlczogU3RhdGVDbGFzc0ludGVybmFsW10pOiBNYXBwZWRTdG9yZVtdIHtcbiAgICAvLyBDYXJldGFrZXIgbm90ZTogd2UgaGF2ZSBzdGlsbCBsZWZ0IHRoZSBgdHlwZW9mYCBjb25kaXRpb24gaW4gb3JkZXIgdG8gYXZvaWRcbiAgICAvLyBjcmVhdGluZyBhIGJyZWFraW5nIGNoYW5nZSBmb3IgcHJvamVjdHMgdGhhdCBzdGlsbCB1c2UgdGhlIFZpZXcgRW5naW5lLlxuICAgIGlmICh0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGUpIHtcbiAgICAgIFN0b3JlVmFsaWRhdG9ycy5jaGVja1RoYXRTdGF0ZUNsYXNzZXNIYXZlQmVlbkRlY29yYXRlZChzdGF0ZUNsYXNzZXMpO1xuICAgIH1cblxuICAgIGNvbnN0IHsgbmV3U3RhdGVzIH0gPSB0aGlzLmFkZFRvU3RhdGVzTWFwKHN0YXRlQ2xhc3Nlcyk7XG4gICAgaWYgKCFuZXdTdGF0ZXMubGVuZ3RoKSByZXR1cm4gW107XG5cbiAgICBjb25zdCBzdGF0ZUdyYXBoOiBTdGF0ZUtleUdyYXBoID0gYnVpbGRHcmFwaChuZXdTdGF0ZXMpO1xuICAgIGNvbnN0IHNvcnRlZFN0YXRlczogc3RyaW5nW10gPSB0b3BvbG9naWNhbFNvcnQoc3RhdGVHcmFwaCk7XG4gICAgY29uc3QgcGF0aHM6IFBsYWluT2JqZWN0T2Y8c3RyaW5nPiA9IGZpbmRGdWxsUGFyZW50UGF0aChzdGF0ZUdyYXBoKTtcbiAgICBjb25zdCBuYW1lR3JhcGg6IFBsYWluT2JqZWN0T2Y8U3RhdGVDbGFzc0ludGVybmFsPiA9IG5hbWVUb1N0YXRlKG5ld1N0YXRlcyk7XG4gICAgY29uc3QgYm9vdHN0cmFwcGVkU3RvcmVzOiBNYXBwZWRTdG9yZVtdID0gW107XG5cbiAgICBmb3IgKGNvbnN0IG5hbWUgb2Ygc29ydGVkU3RhdGVzKSB7XG4gICAgICBjb25zdCBzdGF0ZUNsYXNzOiBTdGF0ZUNsYXNzSW50ZXJuYWwgPSBuYW1lR3JhcGhbbmFtZV07XG4gICAgICBjb25zdCBwYXRoOiBzdHJpbmcgPSBwYXRoc1tuYW1lXTtcbiAgICAgIGNvbnN0IG1ldGE6IE1ldGFEYXRhTW9kZWwgPSBzdGF0ZUNsYXNzW01FVEFfS0VZXSE7XG5cbiAgICAgIHRoaXMuYWRkUnVudGltZUluZm9Ub01ldGEobWV0YSwgcGF0aCk7XG5cbiAgICAgIC8vIE5vdGU6IHByZXZpb3VzbHkgd2UgY2FsbGVkIGBlbnN1cmVTdGF0ZUNsYXNzSXNJbmplY3RhYmxlYCB3aXRoaW4gdGhlXG4gICAgICAvLyBgU3RhdGVgIGRlY29yYXRvci4gVGhpcyBjaGVjayBpcyBtb3ZlZCBoZXJlIGJlY2F1c2UgdGhlIGDJtXByb3ZgIHByb3BlcnR5XG4gICAgICAvLyB3aWxsIG5vdCBleGlzdCBvbiB0aGUgY2xhc3MgaW4gSklUIG1vZGUgKGJlY2F1c2UgaXQncyBzZXQgYXN5bmNocm9ub3VzbHlcbiAgICAgIC8vIGR1cmluZyBKSVQgY29tcGlsYXRpb24gdGhyb3VnaCBgT2JqZWN0LmRlZmluZVByb3BlcnR5YCkuXG4gICAgICBpZiAodHlwZW9mIG5nRGV2TW9kZSA9PT0gJ3VuZGVmaW5lZCcgfHwgbmdEZXZNb2RlKSB7XG4gICAgICAgIGVuc3VyZVN0YXRlQ2xhc3NJc0luamVjdGFibGUoc3RhdGVDbGFzcyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHN0YXRlTWFwOiBNYXBwZWRTdG9yZSA9IHtcbiAgICAgICAgbmFtZSxcbiAgICAgICAgcGF0aCxcbiAgICAgICAgaXNJbml0aWFsaXNlZDogZmFsc2UsXG4gICAgICAgIGFjdGlvbnM6IG1ldGEuYWN0aW9ucyxcbiAgICAgICAgaW5zdGFuY2U6IHRoaXMuX2luamVjdG9yLmdldChzdGF0ZUNsYXNzKSxcbiAgICAgICAgZGVmYXVsdHM6IFN0YXRlRmFjdG9yeS5jbG9uZURlZmF1bHRzKG1ldGEuZGVmYXVsdHMpXG4gICAgICB9O1xuXG4gICAgICAvLyBlbnN1cmUgb3VyIHN0b3JlIGhhc24ndCBhbHJlYWR5IGJlZW4gYWRkZWRcbiAgICAgIC8vIGJ1dCBkb24ndCB0aHJvdyBzaW5jZSBpdCBjb3VsZCBiZSBsYXp5XG4gICAgICAvLyBsb2FkZWQgZnJvbSBkaWZmZXJlbnQgcGF0aHNcbiAgICAgIGlmICghdGhpcy5oYXNCZWVuTW91bnRlZEFuZEJvb3RzdHJhcHBlZChuYW1lLCBwYXRoKSkge1xuICAgICAgICBib290c3RyYXBwZWRTdG9yZXMucHVzaChzdGF0ZU1hcCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc3RhdGVzLnB1c2goc3RhdGVNYXApO1xuICAgIH1cblxuICAgIHJldHVybiBib290c3RyYXBwZWRTdG9yZXM7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgc2V0IG9mIHN0YXRlcyB0byB0aGUgc3RvcmUgYW5kIHJldHVybiB0aGUgZGVmYXVsdHNcbiAgICovXG4gIGFkZEFuZFJldHVybkRlZmF1bHRzKHN0YXRlQ2xhc3NlczogU3RhdGVDbGFzc0ludGVybmFsW10pOiBTdGF0ZXNBbmREZWZhdWx0cyB7XG4gICAgY29uc3QgY2xhc3NlczogU3RhdGVDbGFzc0ludGVybmFsW10gPSBzdGF0ZUNsYXNzZXMgfHwgW107XG5cbiAgICBjb25zdCBtYXBwZWRTdG9yZXM6IE1hcHBlZFN0b3JlW10gPSB0aGlzLmFkZChjbGFzc2VzKTtcbiAgICBjb25zdCBkZWZhdWx0cyA9IG1hcHBlZFN0b3Jlcy5yZWR1Y2UoXG4gICAgICAocmVzdWx0OiBhbnksIG1hcHBlZFN0b3JlOiBNYXBwZWRTdG9yZSkgPT5cbiAgICAgICAgc2V0VmFsdWUocmVzdWx0LCBtYXBwZWRTdG9yZS5wYXRoLCBtYXBwZWRTdG9yZS5kZWZhdWx0cyksXG4gICAgICB7fVxuICAgICk7XG4gICAgcmV0dXJuIHsgZGVmYXVsdHMsIHN0YXRlczogbWFwcGVkU3RvcmVzIH07XG4gIH1cblxuICAvKipcbiAgICogQmluZCB0aGUgYWN0aW9ucyB0byB0aGUgaGFuZGxlcnNcbiAgICovXG4gIGNvbm5lY3RBY3Rpb25IYW5kbGVycygpIHtcbiAgICBpZiAodGhpcy5fYWN0aW9uc1N1YnNjcmlwdGlvbiAhPT0gbnVsbCkgcmV0dXJuO1xuICAgIGNvbnN0IGRpc3BhdGNoZWQkID0gbmV3IFN1YmplY3Q8QWN0aW9uQ29udGV4dD4oKTtcbiAgICB0aGlzLl9hY3Rpb25zU3Vic2NyaXB0aW9uID0gdGhpcy5fYWN0aW9uc1xuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoY3R4OiBBY3Rpb25Db250ZXh0KSA9PiBjdHguc3RhdHVzID09PSBBY3Rpb25TdGF0dXMuRGlzcGF0Y2hlZCksXG4gICAgICAgIG1lcmdlTWFwKGN0eCA9PiB7XG4gICAgICAgICAgZGlzcGF0Y2hlZCQubmV4dChjdHgpO1xuICAgICAgICAgIGNvbnN0IGFjdGlvbiA9IGN0eC5hY3Rpb247XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaW52b2tlQWN0aW9ucyhkaXNwYXRjaGVkJCwgYWN0aW9uISkucGlwZShcbiAgICAgICAgICAgIG1hcCgoKSA9PiA8QWN0aW9uQ29udGV4dD57IGFjdGlvbiwgc3RhdHVzOiBBY3Rpb25TdGF0dXMuU3VjY2Vzc2Z1bCB9KSxcbiAgICAgICAgICAgIGRlZmF1bHRJZkVtcHR5KDxBY3Rpb25Db250ZXh0PnsgYWN0aW9uLCBzdGF0dXM6IEFjdGlvblN0YXR1cy5DYW5jZWxlZCB9KSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT5cbiAgICAgICAgICAgICAgb2YoPEFjdGlvbkNvbnRleHQ+eyBhY3Rpb24sIHN0YXR1czogQWN0aW9uU3RhdHVzLkVycm9yZWQsIGVycm9yIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgKTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoY3R4ID0+IHRoaXMuX2FjdGlvblJlc3VsdHMubmV4dChjdHgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnZva2UgYWN0aW9ucyBvbiB0aGUgc3RhdGVzLlxuICAgKi9cbiAgaW52b2tlQWN0aW9ucyhkaXNwYXRjaGVkJDogT2JzZXJ2YWJsZTxBY3Rpb25Db250ZXh0PiwgYWN0aW9uOiBhbnkpIHtcbiAgICBjb25zdCB0eXBlID0gZ2V0QWN0aW9uVHlwZUZyb21JbnN0YW5jZShhY3Rpb24pITtcbiAgICBjb25zdCByZXN1bHRzID0gW107XG5cbiAgICBmb3IgKGNvbnN0IG1ldGFkYXRhIG9mIHRoaXMuc3RhdGVzKSB7XG4gICAgICBjb25zdCBhY3Rpb25NZXRhcyA9IG1ldGFkYXRhLmFjdGlvbnNbdHlwZV07XG5cbiAgICAgIGlmIChhY3Rpb25NZXRhcykge1xuICAgICAgICBmb3IgKGNvbnN0IGFjdGlvbk1ldGEgb2YgYWN0aW9uTWV0YXMpIHtcbiAgICAgICAgICBjb25zdCBzdGF0ZUNvbnRleHQgPSB0aGlzLl9zdGF0ZUNvbnRleHRGYWN0b3J5LmNyZWF0ZVN0YXRlQ29udGV4dChtZXRhZGF0YSk7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGxldCByZXN1bHQgPSBtZXRhZGF0YS5pbnN0YW5jZVthY3Rpb25NZXRhLmZuXShzdGF0ZUNvbnRleHQsIGFjdGlvbik7XG5cbiAgICAgICAgICAgIGlmIChyZXN1bHQgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAgICAgICAgIHJlc3VsdCA9IGZyb20ocmVzdWx0KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHJlc3VsdCBpbnN0YW5jZW9mIE9ic2VydmFibGUpIHtcbiAgICAgICAgICAgICAgLy8gSWYgdGhpcyBvYnNlcnZhYmxlIGhhcyBiZWVuIGNvbXBsZXRlZCB3L28gZW1pdHRpbmdcbiAgICAgICAgICAgICAgLy8gYW55IHZhbHVlIHRoZW4gd2Ugd291bGRuJ3Qgd2FudCB0byBjb21wbGV0ZSB0aGUgd2hvbGUgY2hhaW5cbiAgICAgICAgICAgICAgLy8gb2YgYWN0aW9ucy4gU2luY2UgaWYgYW55IG9ic2VydmFibGUgY29tcGxldGVzIHRoZW5cbiAgICAgICAgICAgICAgLy8gYWN0aW9uIHdpbGwgYmUgY2FuY2VsZWQuXG4gICAgICAgICAgICAgIC8vIEZvciBpbnN0YW5jZSBpZiBhbnkgYWN0aW9uIGhhbmRsZXIgd291bGQndmUgaGFkIHN1Y2ggc3RhdGVtZW50OlxuICAgICAgICAgICAgICAvLyBgaGFuZGxlcihjdHgpIHsgcmV0dXJuIEVNUFRZOyB9YFxuICAgICAgICAgICAgICAvLyB0aGVuIHRoZSBhY3Rpb24gd2lsbCBiZSBjYW5jZWxlZC5cbiAgICAgICAgICAgICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9uZ3hzL3N0b3JlL2lzc3Vlcy8xNTY4XG4gICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdC5waXBlKFxuICAgICAgICAgICAgICAgIG1lcmdlTWFwKCh2YWx1ZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmcm9tKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIE9ic2VydmFibGUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBkZWZhdWx0SWZFbXB0eSh7fSlcbiAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICBpZiAoYWN0aW9uTWV0YS5vcHRpb25zLmNhbmNlbFVuY29tcGxldGVkKSB7XG4gICAgICAgICAgICAgICAgLy8gdG9kbzogb2ZBY3Rpb25EaXNwYXRjaGVkIHNob3VsZCBiZSB1c2VkIHdpdGggYWN0aW9uIGNsYXNzXG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LnBpcGUoXG4gICAgICAgICAgICAgICAgICB0YWtlVW50aWwoZGlzcGF0Y2hlZCQucGlwZShvZkFjdGlvbkRpc3BhdGNoZWQoYWN0aW9uIGFzIGFueSkpKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHJlc3VsdCA9IG9mKHt9KS5waXBlKHNoYXJlUmVwbGF5KCkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXN1bHRzLnB1c2gocmVzdWx0KTtcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICByZXN1bHRzLnB1c2godGhyb3dFcnJvcihlKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFyZXN1bHRzLmxlbmd0aCkge1xuICAgICAgcmVzdWx0cy5wdXNoKG9mKHt9KSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZvcmtKb2luKHJlc3VsdHMpO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRUb1N0YXRlc01hcChcbiAgICBzdGF0ZUNsYXNzZXM6IFN0YXRlQ2xhc3NJbnRlcm5hbFtdXG4gICk6IHsgbmV3U3RhdGVzOiBTdGF0ZUNsYXNzSW50ZXJuYWxbXSB9IHtcbiAgICBjb25zdCBuZXdTdGF0ZXM6IFN0YXRlQ2xhc3NJbnRlcm5hbFtdID0gW107XG4gICAgY29uc3Qgc3RhdGVzTWFwOiBTdGF0ZXNCeU5hbWUgPSB0aGlzLnN0YXRlc0J5TmFtZTtcblxuICAgIGZvciAoY29uc3Qgc3RhdGVDbGFzcyBvZiBzdGF0ZUNsYXNzZXMpIHtcbiAgICAgIGNvbnN0IHN0YXRlTmFtZSA9IGdldFN0b3JlTWV0YWRhdGEoc3RhdGVDbGFzcykubmFtZSE7XG4gICAgICAvLyBDYXJldGFrZXIgbm90ZTogd2UgaGF2ZSBzdGlsbCBsZWZ0IHRoZSBgdHlwZW9mYCBjb25kaXRpb24gaW4gb3JkZXIgdG8gYXZvaWRcbiAgICAgIC8vIGNyZWF0aW5nIGEgYnJlYWtpbmcgY2hhbmdlIGZvciBwcm9qZWN0cyB0aGF0IHN0aWxsIHVzZSB0aGUgVmlldyBFbmdpbmUuXG4gICAgICBpZiAodHlwZW9mIG5nRGV2TW9kZSA9PT0gJ3VuZGVmaW5lZCcgfHwgbmdEZXZNb2RlKSB7XG4gICAgICAgIFN0b3JlVmFsaWRhdG9ycy5jaGVja1RoYXRTdGF0ZU5hbWVJc1VuaXF1ZShzdGF0ZU5hbWUsIHN0YXRlQ2xhc3MsIHN0YXRlc01hcCk7XG4gICAgICB9XG4gICAgICBjb25zdCB1bm1vdW50ZWRTdGF0ZSA9ICFzdGF0ZXNNYXBbc3RhdGVOYW1lXTtcbiAgICAgIGlmICh1bm1vdW50ZWRTdGF0ZSkge1xuICAgICAgICBuZXdTdGF0ZXMucHVzaChzdGF0ZUNsYXNzKTtcbiAgICAgICAgc3RhdGVzTWFwW3N0YXRlTmFtZV0gPSBzdGF0ZUNsYXNzO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7IG5ld1N0YXRlcyB9O1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRSdW50aW1lSW5mb1RvTWV0YShtZXRhOiBNZXRhRGF0YU1vZGVsLCBwYXRoOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlUGF0aHNbbWV0YS5uYW1lIV0gPSBwYXRoO1xuICAgIC8vIFRPRE86IHY0IC0gd2UgcGxhbiB0byBnZXQgcmlkIG9mIHRoZSBwYXRoIHByb3BlcnR5IGJlY2F1c2UgaXQgaXMgbm9uLWRldGVybWluaXN0aWNcbiAgICAvLyB3ZSBjYW4gZG8gdGhpcyB3aGVuIHdlIGdldCByaWQgb2YgdGhlIGluY29ycmVjdGx5IGV4cG9zZWQgZ2V0U3RvcmVNZXRhZGF0YVxuICAgIC8vIFdlIHdpbGwgbmVlZCB0byBjb21lIHVwIHdpdGggYW4gYWx0ZXJuYXRpdmUgaW4gdjQgYmVjYXVzZSB0aGlzIGlzIHVzZWQgYnkgbWFueSBwbHVnaW5zXG4gICAgbWV0YS5wYXRoID0gcGF0aDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogdGhlIG1ldGhvZCBjaGVja3MgaWYgdGhlIHN0YXRlIGhhcyBhbHJlYWR5IGJlZW4gYWRkZWQgdG8gdGhlIHRyZWVcbiAgICogYW5kIGNvbXBsZXRlZCB0aGUgbGlmZSBjeWNsZVxuICAgKiBAcGFyYW0gbmFtZVxuICAgKiBAcGFyYW0gcGF0aFxuICAgKi9cbiAgcHJpdmF0ZSBoYXNCZWVuTW91bnRlZEFuZEJvb3RzdHJhcHBlZChuYW1lOiBzdHJpbmcsIHBhdGg6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHZhbHVlSXNCb290c3RyYXBwZWRJbkluaXRpYWxTdGF0ZTogYm9vbGVhbiA9XG4gICAgICBnZXRWYWx1ZSh0aGlzLl9pbml0aWFsU3RhdGUsIHBhdGgpICE9PSB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGVzQnlOYW1lW25hbWVdICYmIHZhbHVlSXNCb290c3RyYXBwZWRJbkluaXRpYWxTdGF0ZTtcbiAgfVxufVxuIl19
|
|
583
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUtZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3N0b3JlLyIsInNvdXJjZXMiOlsic3JjL2ludGVybmFsL3N0YXRlLWZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUM1RixPQUFPLEVBQ0wsUUFBUSxFQUNSLElBQUksRUFFSixFQUFFLEVBQ0YsVUFBVSxFQUVWLE9BQU8sRUFDUCxZQUFZLEVBQ2IsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQ0wsVUFBVSxFQUNWLGNBQWMsRUFDZCxNQUFNLEVBQ04sR0FBRyxFQUNILFFBQVEsRUFDUixXQUFXLEVBQ1gsU0FBUyxFQUNWLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLG1CQUFtQixFQUFpQixPQUFPLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRixPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNsRCxPQUFPLEVBQ0wsVUFBVSxFQUNWLGtCQUFrQixFQUNsQixRQUFRLEVBR1IsV0FBVyxFQUNYLFVBQVUsRUFLVixlQUFlLEVBR2YsZ0JBQWdCLEVBQ2pCLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUErQixlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZUFBZSxFQUFF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NkU7UUFDN0UseUZBQXlGO1FBQ3pGLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFFRDs7Ozs7O09BTUc7Ozs7Ozs7Ozs7SUFDSyxvREFBNkI7Ozs7Ozs7OztJQUFyQyxVQUFzQyxJQUFZLEVBQUUsSUFBWTs7WUFDeEQsaUNBQWlDLEdBQ3JDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxLQUFLLFNBQVM7UUFDbEQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLGlDQUFpQyxDQUFDO0lBQ3RFLENBQUM7O2dCQTNTRixVQUFVOzs7O2dCQXBEVSxRQUFRO2dCQXNCVixVQUFVO2dCQXVDRCxZQUFZLHVCQUZuQyxRQUFRLFlBQ1IsUUFBUTtnQkFsQnlCLGVBQWU7Z0JBQzVDLCtCQUErQjtnQkFDL0IsbUJBQW1CO2dEQXFCdkIsUUFBUSxZQUNSLE1BQU0sU0FBQyxtQkFBbUI7O0lBOFIvQixtQkFBQztDQUFBLEFBNVNELElBNFNDO1NBM1NZLFlBQVk7Ozs7OztJQUN2Qiw0Q0FBeUQ7Ozs7O0lBZ0J6RCwrQkFBb0M7Ozs7O0lBTXBDLHFDQUF5Qzs7Ozs7SUFNekMsbUNBQWdEOztJQU1oRCxpREFpQ0c7Ozs7O0lBaEVELGlDQUEyQjs7Ozs7SUFDM0IsK0JBQTJCOzs7OztJQUMzQixzQ0FFb0M7Ozs7O0lBQ3BDLGdDQUFpQzs7Ozs7SUFDakMsc0NBQXVEOzs7OztJQUN2RCw0Q0FBaUQ7Ozs7O0lBQ2pELHFDQUUwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yLCBPcHRpb25hbCwgU2tpcFNlbGYsIEluamVjdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBmb3JrSm9pbixcbiAgZnJvbSxcbiAgT2JzZXJ2YWJsZSxcbiAgb2YsXG4gIHRocm93RXJyb3IsXG4gIFN1YnNjcmlwdGlvbixcbiAgU3ViamVjdCxcbiAgaXNPYnNlcnZhYmxlXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgY2F0Y2hFcnJvcixcbiAgZGVmYXVsdElmRW1wdHksXG4gIGZpbHRlcixcbiAgbWFwLFxuICBtZXJnZU1hcCxcbiAgc2hhcmVSZXBsYXksXG4gIHRha2VVbnRpbFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBJTklUSUFMX1NUQVRFX1RPS0VOLCBQbGFpbk9iamVjdE9mLCBtZW1vaXplIH0gZnJvbSAnQG5neHMvc3RvcmUvaW50ZXJuYWxzJztcblxuaW1wb3J0IHsgTUVUQV9LRVksIE5neHNDb25maWcgfSBmcm9tICcuLi9zeW1ib2xzJztcbmltcG9ydCB7XG4gIGJ1aWxkR3JhcGgsXG4gIGZpbmRGdWxsUGFyZW50UGF0aCxcbiAgaXNPYmplY3QsXG4gIE1hcHBlZFN0b3JlLFxuICBNZXRhRGF0YU1vZGVsLFxuICBuYW1lVG9TdGF0ZSxcbiAgcHJvcEdldHRlcixcbiAgU3RhdGVDbGFzc0ludGVybmFsLFxuICBTdGF0ZUtleUdyYXBoLFxuICBTdGF0ZXNBbmREZWZhdWx0cyxcbiAgU3RhdGVzQnlOYW1lLFxuICB0b3BvbG9naWNhbFNvcnQsXG4gIFJ1bnRpbWVTZWxlY3RvckNvbnRleHQsXG4gIFNoYXJlZFNlbGVjdG9yT3B0aW9ucyxcbiAgZ2V0U3RvcmVNZXRhZGF0YVxufSBmcm9tICcuL2ludGVybmFscyc7XG5pbXBvcnQgeyBnZXRBY3Rpb25UeXBlRnJvbUluc3RhbmNlLCBnZXRWYWx1ZSwgc2V0VmFsdWUgfSBmcm9tICcuLi91dGlscy91dGlscyc7XG5pbXBvcnQgeyBvZkFjdGlvbkRpc3BhdGNoZWQgfSBmcm9tICcuLi9vcGVyYXRvcnMvb2YtYWN0aW9uJztcbmltcG9ydCB7IEFjdGlvbkNvbnRleHQsIEFjdGlvblN0YXR1cywgSW50ZXJuYWxBY3Rpb25zIH0gZnJvbSAnLi4vYWN0aW9ucy1zdHJlYW0nO1xuaW1wb3J0IHsgSW50ZXJuYWxEaXNwYXRjaGVkQWN0aW9uUmVzdWx0cyB9IGZyb20gJy4uL2ludGVybmFsL2Rpc3BhdGNoZXInO1xuaW1wb3J0IHsgU3RhdGVDb250ZXh0RmFjdG9yeSB9IGZyb20gJy4uL2ludGVybmFsL3N0YXRlLWNvbnRleHQtZmFjdG9yeSc7XG5pbXBvcnQgeyBTdG9yZVZhbGlkYXRvcnMgfSBmcm9tICcuLi91dGlscy9zdG9yZS12YWxpZGF0b3JzJztcbmltcG9ydCB7IGVuc3VyZVN0YXRlQ2xhc3NJc0luamVjdGFibGUgfSBmcm9tICcuLi9pdnkvaXZ5LWVuYWJsZWQtaW4tZGV2LW1vZGUnO1xuXG4vKipcbiAqIFN0YXRlIGZhY3RvcnkgY2xhc3NcbiAqIEBpZ25vcmVcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFN0YXRlRmFjdG9yeSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgX2FjdGlvbnNTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2luamVjdG9yOiBJbmplY3RvcixcbiAgICBwcml2YXRlIF9jb25maWc6IE5neHNDb25maWcsXG4gICAgQE9wdGlvbmFsKClcbiAgICBAU2tpcFNlbGYoKVxuICAgIHByaXZhdGUgX3BhcmVudEZhY3Rvcnk6IFN0YXRlRmFjdG9yeSxcbiAgICBwcml2YXRlIF9hY3Rpb25zOiBJbnRlcm5hbEFjdGlvbnMsXG4gICAgcHJpdmF0ZSBfYWN0aW9uUmVzdWx0czogSW50ZXJuYWxEaXNwYXRjaGVkQWN0aW9uUmVzdWx0cyxcbiAgICBwcml2YXRlIF9zdGF0ZUNvbnRleHRGYWN0b3J5OiBTdGF0ZUNvbnRleHRGYWN0b3J5LFxuICAgIEBPcHRpb25hbCgpXG4gICAgQEluamVjdChJTklUSUFMX1NUQVRFX1RPS0VOKVxuICAgIHByaXZhdGUgX2luaXRpYWxTdGF0ZTogYW55XG4gICkge31cblxuICBwcml2YXRlIF9zdGF0ZXM6IE1hcHBlZFN0b3JlW10gPSBbXTtcblxuICBnZXQgc3RhdGVzKCk6IE1hcHBlZFN0b3JlW10ge1xuICAgIHJldHVybiB0aGlzLl9wYXJlbnRGYWN0b3J5ID8gdGhpcy5fcGFyZW50RmFjdG9yeS5zdGF0ZXMgOiB0aGlzLl9zdGF0ZXM7XG4gIH1cblxuICBwcml2YXRlIF9zdGF0ZXNCeU5hbWU6IFN0YXRlc0J5TmFtZSA9IHt9O1xuXG4gIGdldCBzdGF0ZXNCeU5hbWUoKTogU3RhdGVzQnlOYW1lIHtcbiAgICByZXR1cm4gdGhpcy5fcGFyZW50RmFjdG9yeSA/IHRoaXMuX3BhcmVudEZhY3Rvcnkuc3RhdGVzQnlOYW1lIDogdGhpcy5fc3RhdGVzQnlOYW1lO1xuICB9XG5cbiAgcHJpdmF0ZSBfc3RhdGVQYXRoczogUGxhaW5PYmplY3RPZjxzdHJpbmc+ID0ge307XG5cbiAgcHJpdmF0ZSBnZXQgc3RhdGVQYXRocygpOiBQbGFpbk9iamVjdE9mPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLl9wYXJlbnRGYWN0b3J5ID8gdGhpcy5fcGFyZW50RmFjdG9yeS5zdGF0ZVBhdGhzIDogdGhpcy5fc3RhdGVQYXRocztcbiAgfVxuXG4gIGdldFJ1bnRpbWVTZWxlY3RvckNvbnRleHQgPSBtZW1vaXplKCgpID0+IHtcbiAgICBjb25zdCBzdGF0ZUZhY3RvcnkgPSB0aGlzO1xuXG4gICAgZnVuY3Rpb24gcmVzb2x2ZUdldHRlcihrZXk6IHN0cmluZykge1xuICAgICAgY29uc3QgcGF0aCA9IHN0YXRlRmFjdG9yeS5zdGF0ZVBhdGhzW2tleV07XG4gICAgICByZXR1cm4gcGF0aCA/IHByb3BHZXR0ZXIocGF0aC5zcGxpdCgnLicpLCBzdGF0ZUZhY3RvcnkuX2NvbmZpZykgOiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbnRleHQ6IFJ1bnRpbWVTZWxlY3RvckNvbnRleHQgPSB0aGlzLl9wYXJlbnRGYWN0b3J5XG4gICAgICA/IHRoaXMuX3BhcmVudEZhY3RvcnkuZ2V0UnVudGltZVNlbGVjdG9yQ29udGV4dCgpXG4gICAgICA6IHtcbiAgICAgICAgICBnZXRTdGF0ZUdldHRlcihrZXk6IHN0cmluZykge1xuICAgICAgICAgICAgbGV0IGdldHRlciA9IHJlc29sdmVHZXR0ZXIoa2V5KTtcbiAgICAgICAgICAgIGlmIChnZXR0ZXIpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGdldHRlcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiAoLi4uYXJncykgPT4ge1xuICAgICAgICAgICAgICAvLyBMYXRlIGxvYWRlZCBnZXR0ZXJcbiAgICAgICAgICAgICAgaWYgKCFnZXR0ZXIpIHtcbiAgICAgICAgICAgICAgICBnZXR0ZXIgPSByZXNvbHZlR2V0dGVyKGtleSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuIGdldHRlciA/IGdldHRlciguLi5hcmdzKSA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSxcbiAgICAgICAgICBnZXRTZWxlY3Rvck9wdGlvbnMobG9jYWxPcHRpb25zPzogU2hhcmVkU2VsZWN0b3JPcHRpb25zKSB7XG4gICAgICAgICAgICBjb25zdCBnbG9iYWxTZWxlY3Rvck9wdGlvbnMgPSBzdGF0ZUZhY3RvcnkuX2NvbmZpZy5zZWxlY3Rvck9wdGlvbnM7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAuLi5nbG9iYWxTZWxlY3Rvck9wdGlvbnMsXG4gICAgICAgICAgICAgIC4uLihsb2NhbE9wdGlvbnMgfHwge30pXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICByZXR1cm4gY29udGV4dDtcbiAgfSk7XG5cbiAgcHJpdmF0ZSBzdGF0aWMgY2xvbmVEZWZhdWx0cyhkZWZhdWx0czogYW55KTogYW55IHtcbiAgICBsZXQgdmFsdWUgPSB7fTtcblxuICAgIGlmIChBcnJheS5pc0FycmF5KGRlZmF1bHRzKSkge1xuICAgICAgdmFsdWUgPSBkZWZhdWx0cy5zbGljZSgpO1xuICAgIH0gZWxzZSBpZiAoaXNPYmplY3QoZGVmYXVsdHMpKSB7XG4gICAgICB2YWx1ZSA9IHsgLi4uZGVmYXVsdHMgfTtcbiAgICB9IGVsc2UgaWYgKGRlZmF1bHRzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHZhbHVlID0ge307XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbHVlID0gZGVmYXVsdHM7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgLy8gSSdtIHVzaW5nIG5vbi1udWxsIGFzc2VydGlvbiBoZXJlIHNpbmNlIGBfYWN0aW9uc1N1YnNjcml0aW9uYCB3aWxsXG4gICAgLy8gYmUgMTAwJSBkZWZpbmVkLiBUaGlzIGlzIGJlY2F1c2UgYG5nT25EZXN0cm95KClgIGNhbm5vdCBiZSBpbnZva2VkXG4gICAgLy8gb24gdGhlIGBTdGF0ZUZhY3RvcnlgIHVudGlsIGl0cyBpbml0aWFsaXplZCA6KSBBbiBpdCdzIGluaXRpYWxpemVkXG4gICAgLy8gZm9yIHRoZSBmaXJzdCB0aW1lIGFsb25nIHdpdGggdGhlIGBOZ3hzUm9vdE1vZHVsZWAuXG4gICAgdGhpcy5fYWN0aW9uc1N1YnNjcmlwdGlvbiEudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBuZXcgc3RhdGUgdG8gdGhlIGdsb2JhbCBkZWZzLlxuICAgKi9cbiAgYWRkKHN0YXRlQ2xhc3NlczogU3RhdGVDbGFzc0ludGVybmFsW10pOiBNYXBwZWRTdG9yZVtdIHtcbiAgICAvLyBDYXJldGFrZXIgbm90ZTogd2UgaGF2ZSBzdGlsbCBsZWZ0IHRoZSBgdHlwZW9mYCBjb25kaXRpb24gaW4gb3JkZXIgdG8gYXZvaWRcbiAgICAvLyBjcmVhdGluZyBhIGJyZWFraW5nIGNoYW5nZSBmb3IgcHJvamVjdHMgdGhhdCBzdGlsbCB1c2UgdGhlIFZpZXcgRW5naW5lLlxuICAgIGlmICh0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGUpIHtcbiAgICAgIFN0b3JlVmFsaWRhdG9ycy5jaGVja1RoYXRTdGF0ZUNsYXNzZXNIYXZlQmVlbkRlY29yYXRlZChzdGF0ZUNsYXNzZXMpO1xuICAgIH1cblxuICAgIGNvbnN0IHsgbmV3U3RhdGVzIH0gPSB0aGlzLmFkZFRvU3RhdGVzTWFwKHN0YXRlQ2xhc3Nlcyk7XG4gICAgaWYgKCFuZXdTdGF0ZXMubGVuZ3RoKSByZXR1cm4gW107XG5cbiAgICBjb25zdCBzdGF0ZUdyYXBoOiBTdGF0ZUtleUdyYXBoID0gYnVpbGRHcmFwaChuZXdTdGF0ZXMpO1xuICAgIGNvbnN0IHNvcnRlZFN0YXRlczogc3RyaW5nW10gPSB0b3BvbG9naWNhbFNvcnQoc3RhdGVHcmFwaCk7XG4gICAgY29uc3QgcGF0aHM6IFBsYWluT2JqZWN0T2Y8c3RyaW5nPiA9IGZpbmRGdWxsUGFyZW50UGF0aChzdGF0ZUdyYXBoKTtcbiAgICBjb25zdCBuYW1lR3JhcGg6IFBsYWluT2JqZWN0T2Y8U3RhdGVDbGFzc0ludGVybmFsPiA9IG5hbWVUb1N0YXRlKG5ld1N0YXRlcyk7XG4gICAgY29uc3QgYm9vdHN0cmFwcGVkU3RvcmVzOiBNYXBwZWRTdG9yZVtdID0gW107XG5cbiAgICBmb3IgKGNvbnN0IG5hbWUgb2Ygc29ydGVkU3RhdGVzKSB7XG4gICAgICBjb25zdCBzdGF0ZUNsYXNzOiBTdGF0ZUNsYXNzSW50ZXJuYWwgPSBuYW1lR3JhcGhbbmFtZV07XG4gICAgICBjb25zdCBwYXRoOiBzdHJpbmcgPSBwYXRoc1tuYW1lXTtcbiAgICAgIGNvbnN0IG1ldGE6IE1ldGFEYXRhTW9kZWwgPSBzdGF0ZUNsYXNzW01FVEFfS0VZXSE7XG5cbiAgICAgIHRoaXMuYWRkUnVudGltZUluZm9Ub01ldGEobWV0YSwgcGF0aCk7XG5cbiAgICAgIC8vIE5vdGU6IHByZXZpb3VzbHkgd2UgY2FsbGVkIGBlbnN1cmVTdGF0ZUNsYXNzSXNJbmplY3RhYmxlYCB3aXRoaW4gdGhlXG4gICAgICAvLyBgU3RhdGVgIGRlY29yYXRvci4gVGhpcyBjaGVjayBpcyBtb3ZlZCBoZXJlIGJlY2F1c2UgdGhlIGDJtXByb3ZgIHByb3BlcnR5XG4gICAgICAvLyB3aWxsIG5vdCBleGlzdCBvbiB0aGUgY2xhc3MgaW4gSklUIG1vZGUgKGJlY2F1c2UgaXQncyBzZXQgYXN5bmNocm9ub3VzbHlcbiAgICAgIC8vIGR1cmluZyBKSVQgY29tcGlsYXRpb24gdGhyb3VnaCBgT2JqZWN0LmRlZmluZVByb3BlcnR5YCkuXG4gICAgICBpZiAodHlwZW9mIG5nRGV2TW9kZSA9PT0gJ3VuZGVmaW5lZCcgfHwgbmdEZXZNb2RlKSB7XG4gICAgICAgIGVuc3VyZVN0YXRlQ2xhc3NJc0luamVjdGFibGUoc3RhdGVDbGFzcyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHN0YXRlTWFwOiBNYXBwZWRTdG9yZSA9IHtcbiAgICAgICAgbmFtZSxcbiAgICAgICAgcGF0aCxcbiAgICAgICAgaXNJbml0aWFsaXNlZDogZmFsc2UsXG4gICAgICAgIGFjdGlvbnM6IG1ldGEuYWN0aW9ucyxcbiAgICAgICAgaW5zdGFuY2U6IHRoaXMuX2luamVjdG9yLmdldChzdGF0ZUNsYXNzKSxcbiAgICAgICAgZGVmYXVsdHM6IFN0YXRlRmFjdG9yeS5jbG9uZURlZmF1bHRzKG1ldGEuZGVmYXVsdHMpXG4gICAgICB9O1xuXG4gICAgICAvLyBlbnN1cmUgb3VyIHN0b3JlIGhhc24ndCBhbHJlYWR5IGJlZW4gYWRkZWRcbiAgICAgIC8vIGJ1dCBkb24ndCB0aHJvdyBzaW5jZSBpdCBjb3VsZCBiZSBsYXp5XG4gICAgICAvLyBsb2FkZWQgZnJvbSBkaWZmZXJlbnQgcGF0aHNcbiAgICAgIGlmICghdGhpcy5oYXNCZWVuTW91bnRlZEFuZEJvb3RzdHJhcHBlZChuYW1lLCBwYXRoKSkge1xuICAgICAgICBib290c3RyYXBwZWRTdG9yZXMucHVzaChzdGF0ZU1hcCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc3RhdGVzLnB1c2goc3RhdGVNYXApO1xuICAgIH1cblxuICAgIHJldHVybiBib290c3RyYXBwZWRTdG9yZXM7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgc2V0IG9mIHN0YXRlcyB0byB0aGUgc3RvcmUgYW5kIHJldHVybiB0aGUgZGVmYXVsdHNcbiAgICovXG4gIGFkZEFuZFJldHVybkRlZmF1bHRzKHN0YXRlQ2xhc3NlczogU3RhdGVDbGFzc0ludGVybmFsW10pOiBTdGF0ZXNBbmREZWZhdWx0cyB7XG4gICAgY29uc3QgY2xhc3NlczogU3RhdGVDbGFzc0ludGVybmFsW10gPSBzdGF0ZUNsYXNzZXMgfHwgW107XG5cbiAgICBjb25zdCBtYXBwZWRTdG9yZXM6IE1hcHBlZFN0b3JlW10gPSB0aGlzLmFkZChjbGFzc2VzKTtcbiAgICBjb25zdCBkZWZhdWx0cyA9IG1hcHBlZFN0b3Jlcy5yZWR1Y2UoXG4gICAgICAocmVzdWx0OiBhbnksIG1hcHBlZFN0b3JlOiBNYXBwZWRTdG9yZSkgPT5cbiAgICAgICAgc2V0VmFsdWUocmVzdWx0LCBtYXBwZWRTdG9yZS5wYXRoLCBtYXBwZWRTdG9yZS5kZWZhdWx0cyksXG4gICAgICB7fVxuICAgICk7XG4gICAgcmV0dXJuIHsgZGVmYXVsdHMsIHN0YXRlczogbWFwcGVkU3RvcmVzIH07XG4gIH1cblxuICAvKipcbiAgICogQmluZCB0aGUgYWN0aW9ucyB0byB0aGUgaGFuZGxlcnNcbiAgICovXG4gIGNvbm5lY3RBY3Rpb25IYW5kbGVycygpIHtcbiAgICBpZiAodGhpcy5fYWN0aW9uc1N1YnNjcmlwdGlvbiAhPT0gbnVsbCkgcmV0dXJuO1xuICAgIGNvbnN0IGRpc3BhdGNoZWQkID0gbmV3IFN1YmplY3Q8QWN0aW9uQ29udGV4dD4oKTtcbiAgICB0aGlzLl9hY3Rpb25zU3Vic2NyaXB0aW9uID0gdGhpcy5fYWN0aW9uc1xuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoY3R4OiBBY3Rpb25Db250ZXh0KSA9PiBjdHguc3RhdHVzID09PSBBY3Rpb25TdGF0dXMuRGlzcGF0Y2hlZCksXG4gICAgICAgIG1lcmdlTWFwKGN0eCA9PiB7XG4gICAgICAgICAgZGlzcGF0Y2hlZCQubmV4dChjdHgpO1xuICAgICAgICAgIGNvbnN0IGFjdGlvbiA9IGN0eC5hY3Rpb247XG4gICAgICAgICAgcmV0dXJuIHRoaXMuaW52b2tlQWN0aW9ucyhkaXNwYXRjaGVkJCwgYWN0aW9uISkucGlwZShcbiAgICAgICAgICAgIG1hcCgoKSA9PiA8QWN0aW9uQ29udGV4dD57IGFjdGlvbiwgc3RhdHVzOiBBY3Rpb25TdGF0dXMuU3VjY2Vzc2Z1bCB9KSxcbiAgICAgICAgICAgIGRlZmF1bHRJZkVtcHR5KDxBY3Rpb25Db250ZXh0PnsgYWN0aW9uLCBzdGF0dXM6IEFjdGlvblN0YXR1cy5DYW5jZWxlZCB9KSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT5cbiAgICAgICAgICAgICAgb2YoPEFjdGlvbkNvbnRleHQ+eyBhY3Rpb24sIHN0YXR1czogQWN0aW9uU3RhdHVzLkVycm9yZWQsIGVycm9yIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgKTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoY3R4ID0+IHRoaXMuX2FjdGlvblJlc3VsdHMubmV4dChjdHgpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnZva2UgYWN0aW9ucyBvbiB0aGUgc3RhdGVzLlxuICAgKi9cbiAgaW52b2tlQWN0aW9ucyhkaXNwYXRjaGVkJDogT2JzZXJ2YWJsZTxBY3Rpb25Db250ZXh0PiwgYWN0aW9uOiBhbnkpIHtcbiAgICBjb25zdCB0eXBlID0gZ2V0QWN0aW9uVHlwZUZyb21JbnN0YW5jZShhY3Rpb24pITtcbiAgICBjb25zdCByZXN1bHRzID0gW107XG5cbiAgICBmb3IgKGNvbnN0IG1ldGFkYXRhIG9mIHRoaXMuc3RhdGVzKSB7XG4gICAgICBjb25zdCBhY3Rpb25NZXRhcyA9IG1ldGFkYXRhLmFjdGlvbnNbdHlwZV07XG5cbiAgICAgIGlmIChhY3Rpb25NZXRhcykge1xuICAgICAgICBmb3IgKGNvbnN0IGFjdGlvbk1ldGEgb2YgYWN0aW9uTWV0YXMpIHtcbiAgICAgICAgICBjb25zdCBzdGF0ZUNvbnRleHQgPSB0aGlzLl9zdGF0ZUNvbnRleHRGYWN0b3J5LmNyZWF0ZVN0YXRlQ29udGV4dChtZXRhZGF0YSk7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGxldCByZXN1bHQgPSBtZXRhZGF0YS5pbnN0YW5jZVthY3Rpb25NZXRhLmZuXShzdGF0ZUNvbnRleHQsIGFjdGlvbik7XG5cbiAgICAgICAgICAgIGlmIChyZXN1bHQgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAgICAgICAgIHJlc3VsdCA9IGZyb20ocmVzdWx0KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGlzT2JzZXJ2YWJsZShyZXN1bHQpKSB7XG4gICAgICAgICAgICAgIC8vIElmIHRoaXMgb2JzZXJ2YWJsZSBoYXMgYmVlbiBjb21wbGV0ZWQgdy9vIGVtaXR0aW5nXG4gICAgICAgICAgICAgIC8vIGFueSB2YWx1ZSB0aGVuIHdlIHdvdWxkbid0IHdhbnQgdG8gY29tcGxldGUgdGhlIHdob2xlIGNoYWluXG4gICAgICAgICAgICAgIC8vIG9mIGFjdGlvbnMuIFNpbmNlIGlmIGFueSBvYnNlcnZhYmxlIGNvbXBsZXRlcyB0aGVuXG4gICAgICAgICAgICAgIC8vIGFjdGlvbiB3aWxsIGJlIGNhbmNlbGVkLlxuICAgICAgICAgICAgICAvLyBGb3IgaW5zdGFuY2UgaWYgYW55IGFjdGlvbiBoYW5kbGVyIHdvdWxkJ3ZlIGhhZCBzdWNoIHN0YXRlbWVudDpcbiAgICAgICAgICAgICAgLy8gYGhhbmRsZXIoY3R4KSB7IHJldHVybiBFTVBUWTsgfWBcbiAgICAgICAgICAgICAgLy8gdGhlbiB0aGUgYWN0aW9uIHdpbGwgYmUgY2FuY2VsZWQuXG4gICAgICAgICAgICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vbmd4cy9zdG9yZS9pc3N1ZXMvMTU2OFxuICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQucGlwZShcbiAgICAgICAgICAgICAgICBtZXJnZU1hcCgodmFsdWU6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZnJvbSh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBpZiAoaXNPYnNlcnZhYmxlKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICByZXR1cm4gb2YodmFsdWUpO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIGRlZmF1bHRJZkVtcHR5KHt9KVxuICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgIGlmIChhY3Rpb25NZXRhLm9wdGlvbnMuY2FuY2VsVW5jb21wbGV0ZWQpIHtcbiAgICAgICAgICAgICAgICAvLyB0b2RvOiBvZkFjdGlvbkRpc3BhdGNoZWQgc2hvdWxkIGJlIHVzZWQgd2l0aCBhY3Rpb24gY2xhc3NcbiAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHQucGlwZShcbiAgICAgICAgICAgICAgICAgIHRha2VVbnRpbChkaXNwYXRjaGVkJC5waXBlKG9mQWN0aW9uRGlzcGF0Y2hlZChhY3Rpb24gYXMgYW55KSkpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmVzdWx0ID0gb2Yoe30pLnBpcGUoc2hhcmVSZXBsYXkoKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJlc3VsdHMucHVzaChyZXN1bHQpO1xuICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHJlc3VsdHMucHVzaCh0aHJvd0Vycm9yKGUpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoIXJlc3VsdHMubGVuZ3RoKSB7XG4gICAgICByZXN1bHRzLnB1c2gob2Yoe30pKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZm9ya0pvaW4ocmVzdWx0cyk7XG4gIH1cblxuICBwcml2YXRlIGFkZFRvU3RhdGVzTWFwKFxuICAgIHN0YXRlQ2xhc3NlczogU3RhdGVDbGFzc0ludGVybmFsW11cbiAgKTogeyBuZXdTdGF0ZXM6IFN0YXRlQ2xhc3NJbnRlcm5hbFtdIH0ge1xuICAgIGNvbnN0IG5ld1N0YXRlczogU3RhdGVDbGFzc0ludGVybmFsW10gPSBbXTtcbiAgICBjb25zdCBzdGF0ZXNNYXA6IFN0YXRlc0J5TmFtZSA9IHRoaXMuc3RhdGVzQnlOYW1lO1xuXG4gICAgZm9yIChjb25zdCBzdGF0ZUNsYXNzIG9mIHN0YXRlQ2xhc3Nlcykge1xuICAgICAgY29uc3Qgc3RhdGVOYW1lID0gZ2V0U3RvcmVNZXRhZGF0YShzdGF0ZUNsYXNzKS5uYW1lITtcbiAgICAgIC8vIENhcmV0YWtlciBub3RlOiB3ZSBoYXZlIHN0aWxsIGxlZnQgdGhlIGB0eXBlb2ZgIGNvbmRpdGlvbiBpbiBvcmRlciB0byBhdm9pZFxuICAgICAgLy8gY3JlYXRpbmcgYSBicmVha2luZyBjaGFuZ2UgZm9yIHByb2plY3RzIHRoYXQgc3RpbGwgdXNlIHRoZSBWaWV3IEVuZ2luZS5cbiAgICAgIGlmICh0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGUpIHtcbiAgICAgICAgU3RvcmVWYWxpZGF0b3JzLmNoZWNrVGhhdFN0YXRlTmFtZUlzVW5pcXVlKHN0YXRlTmFtZSwgc3RhdGVDbGFzcywgc3RhdGVzTWFwKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHVubW91bnRlZFN0YXRlID0gIXN0YXRlc01hcFtzdGF0ZU5hbWVdO1xuICAgICAgaWYgKHVubW91bnRlZFN0YXRlKSB7XG4gICAgICAgIG5ld1N0YXRlcy5wdXNoKHN0YXRlQ2xhc3MpO1xuICAgICAgICBzdGF0ZXNNYXBbc3RhdGVOYW1lXSA9IHN0YXRlQ2xhc3M7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgbmV3U3RhdGVzIH07XG4gIH1cblxuICBwcml2YXRlIGFkZFJ1bnRpbWVJbmZvVG9NZXRhKG1ldGE6IE1ldGFEYXRhTW9kZWwsIHBhdGg6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVQYXRoc1ttZXRhLm5hbWUhXSA9IHBhdGg7XG4gICAgLy8gVE9ETzogdjQgLSB3ZSBwbGFuIHRvIGdldCByaWQgb2YgdGhlIHBhdGggcHJvcGVydHkgYmVjYXVzZSBpdCBpcyBub24tZGV0ZXJtaW5pc3RpY1xuICAgIC8vIHdlIGNhbiBkbyB0aGlzIHdoZW4gd2UgZ2V0IHJpZCBvZiB0aGUgaW5jb3JyZWN0bHkgZXhwb3NlZCBnZXRTdG9yZU1ldGFkYXRhXG4gICAgLy8gV2Ugd2lsbCBuZWVkIHRvIGNvbWUgdXAgd2l0aCBhbiBhbHRlcm5hdGl2ZSBpbiB2NCBiZWNhdXNlIHRoaXMgaXMgdXNlZCBieSBtYW55IHBsdWdpbnNcbiAgICBtZXRhLnBhdGggPSBwYXRoO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiB0aGUgbWV0aG9kIGNoZWNrcyBpZiB0aGUgc3RhdGUgaGFzIGFscmVhZHkgYmVlbiBhZGRlZCB0byB0aGUgdHJlZVxuICAgKiBhbmQgY29tcGxldGVkIHRoZSBsaWZlIGN5Y2xlXG4gICAqIEBwYXJhbSBuYW1lXG4gICAqIEBwYXJhbSBwYXRoXG4gICAqL1xuICBwcml2YXRlIGhhc0JlZW5Nb3VudGVkQW5kQm9vdHN0cmFwcGVkKG5hbWU6IHN0cmluZywgcGF0aDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3QgdmFsdWVJc0Jvb3RzdHJhcHBlZEluSW5pdGlhbFN0YXRlOiBib29sZWFuID1cbiAgICAgIGdldFZhbHVlKHRoaXMuX2luaXRpYWxTdGF0ZSwgcGF0aCkgIT09IHVuZGVmaW5lZDtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZXNCeU5hbWVbbmFtZV0gJiYgdmFsdWVJc0Jvb3RzdHJhcHBlZEluSW5pdGlhbFN0YXRlO1xuICB9XG59XG4iXX0=
|
|
@@ -19,6 +19,7 @@ if (false) {
|
|
|
19
19
|
* RxJS operator for selecting out specific actions.
|
|
20
20
|
*
|
|
21
21
|
* This will grab actions that have just been dispatched as well as actions that have completed
|
|
22
|
+
* @template T
|
|
22
23
|
* @param {...?} allowedTypes
|
|
23
24
|
* @return {?}
|
|
24
25
|
*/
|
|
@@ -33,6 +34,7 @@ export function ofAction() {
|
|
|
33
34
|
* RxJS operator for selecting out specific actions.
|
|
34
35
|
*
|
|
35
36
|
* This will ONLY grab actions that have just been dispatched
|
|
37
|
+
* @template T
|
|
36
38
|
* @param {...?} allowedTypes
|
|
37
39
|
* @return {?}
|
|
38
40
|
*/
|
|
@@ -47,6 +49,7 @@ export function ofActionDispatched() {
|
|
|
47
49
|
* RxJS operator for selecting out specific actions.
|
|
48
50
|
*
|
|
49
51
|
* This will ONLY grab actions that have just been successfully completed
|
|
52
|
+
* @template T
|
|
50
53
|
* @param {...?} allowedTypes
|
|
51
54
|
* @return {?}
|
|
52
55
|
*/
|
|
@@ -61,6 +64,7 @@ export function ofActionSuccessful() {
|
|
|
61
64
|
* RxJS operator for selecting out specific actions.
|
|
62
65
|
*
|
|
63
66
|
* This will ONLY grab actions that have just been canceled
|
|
67
|
+
* @template T
|
|
64
68
|
* @param {...?} allowedTypes
|
|
65
69
|
* @return {?}
|
|
66
70
|
*/
|
|
@@ -75,6 +79,7 @@ export function ofActionCanceled() {
|
|
|
75
79
|
* RxJS operator for selecting out specific actions.
|
|
76
80
|
*
|
|
77
81
|
* This will ONLY grab actions that have just been completed
|
|
82
|
+
* @template T
|
|
78
83
|
* @param {...?} allowedTypes
|
|
79
84
|
* @return {?}
|
|
80
85
|
*/
|
|
@@ -95,6 +100,7 @@ export function ofActionCompleted() {
|
|
|
95
100
|
* RxJS operator for selecting out specific actions.
|
|
96
101
|
*
|
|
97
102
|
* This will ONLY grab actions that have just thrown an error
|
|
103
|
+
* @template T
|
|
98
104
|
* @param {...?} allowedTypes
|
|
99
105
|
* @return {?}
|
|
100
106
|
*/
|
|
@@ -214,4 +220,4 @@ function createAllowedStatusesMap(statuses) {
|
|
|
214
220
|
return filterMap;
|
|
215
221
|
}), (/** @type {?} */ ({})));
|
|
216
222
|
}
|
|
217
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2YtYWN0aW9uLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neHMvc3RvcmUvIiwic291cmNlcyI6WyJzcmMvb3BlcmF0b3JzL29mLWFjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0EsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc3QyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFHM0Qsc0NBT0M7OztJQU5DLGtDQUFVOztJQUNWLGtDQUlFOzs7Ozs7Ozs7QUFhSixNQUFNLFVBQVUsUUFBUTtJQUFDLHNCQUE2QjtTQUE3QixVQUE2QixFQUE3QixxQkFBNkIsRUFBN0IsSUFBNkI7UUFBN0IsaUNBQTZCOztJQUNwRCxPQUFPLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQ3hDLENBQUM7Ozs7Ozs7O0FBT0QsTUFBTSxVQUFVLGtCQUFrQjtJQUNoQyxzQkFBNkI7U0FBN0IsVUFBNkIsRUFBN0IscUJBQTZCLEVBQTdCLElBQTZCO1FBQTdCLGlDQUE2Qjs7SUFFN0IsT0FBTyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsK0JBQXlCLENBQUMsQ0FBQztBQUNuRSxDQUFDOzs7Ozs7OztBQU9ELE1BQU0sVUFBVSxrQkFBa0I7SUFDaEMsc0JBQTZCO1NBQTdCLFVBQTZCLEVBQTdCLHFCQUE2QixFQUE3QixJQUE2QjtRQUE3QixpQ0FBNkI7O0lBRTdCLE9BQU8sZ0JBQWdCLENBQUMsWUFBWSxFQUFFLCtCQUF5QixDQUFDLENBQUM7QUFDbkUsQ0FBQzs7Ozs7Ozs7QUFPRCxNQUFNLFVBQVUsZ0JBQWdCO0lBQzlCLHNCQUE2QjtTQUE3QixVQUE2QixFQUE3QixxQkFBNkIsRUFBN0IsSUFBNkI7UUFBN0IsaUNBQTZCOztJQUU3QixPQUFPLGdCQUFnQixDQUFDLFlBQVksRUFBRSwyQkFBdUIsQ0FBQyxDQUFDO0FBQ2pFLENBQUM7Ozs7Ozs7O0FBT0QsTUFBTSxVQUFVLGlC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Q3BCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPcGVyYXRvckZ1bmN0aW9uLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQWN0aW9uVHlwZSB9IGZyb20gJy4uL2FjdGlvbnMvc3ltYm9scyc7XG5pbXBvcnQgeyBnZXRBY3Rpb25UeXBlRnJvbUluc3RhbmNlIH0gZnJvbSAnLi4vdXRpbHMvdXRpbHMnO1xuaW1wb3J0IHsgQWN0aW9uQ29udGV4dCwgQWN0aW9uU3RhdHVzIH0gZnJvbSAnLi4vYWN0aW9ucy1zdHJlYW0nO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFjdGlvbkNvbXBsZXRpb248VCA9IGFueSwgRSA9IEVycm9yPiB7XG4gIGFjdGlvbjogVDtcbiAgcmVzdWx0OiB7XG4gICAgc3VjY2Vzc2Z1bDogYm9vbGVhbjtcbiAgICBjYW5jZWxlZDogYm9vbGVhbjtcbiAgICBlcnJvcj86IEU7XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBvZkFjdGlvbjxUID0gYW55PihhbGxvd2VkVHlwZTogQWN0aW9uVHlwZSk6IE9wZXJhdG9yRnVuY3Rpb248QWN0aW9uQ29udGV4dCwgVD47XG5leHBvcnQgZnVuY3Rpb24gb2ZBY3Rpb248VCA9IGFueT4oXG4gIC4uLmFsbG93ZWRUeXBlczogQWN0aW9uVHlwZVtdXG4pOiBPcGVyYXRvckZ1bmN0aW9uPEFjdGlvbkNvbnRleHQsIFQ+O1xuXG4vKipcbiAqIFJ4SlMgb3BlcmF0b3IgZm9yIHNlbGVjdGluZyBvdXQgc3BlY2lmaWMgYWN0aW9ucy5cbiAqXG4gKiBUaGlzIHdpbGwgZ3JhYiBhY3Rpb25zIHRoYXQgaGF2ZSBqdXN0IGJlZW4gZGlzcGF0Y2hlZCBhcyB3ZWxsIGFzIGFjdGlvbnMgdGhhdCBoYXZlIGNvbXBsZXRlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gb2ZBY3Rpb24oLi4uYWxsb3dlZFR5cGVzOiBBY3Rpb25UeXBlW10pOiBPcGVyYXRvckZ1bmN0aW9uPEFjdGlvbkNvbnRleHQsIGFueT4ge1xuICByZXR1cm4gb2ZBY3Rpb25PcGVyYXRvcihhbGxvd2VkVHlwZXMpO1xufVxuXG4vKipcbiAqIFJ4SlMgb3BlcmF0b3IgZm9yIHNlbGVjdGluZyBvdXQgc3BlY2lmaWMgYWN0aW9ucy5cbiAqXG4gKiBUaGlzIHdpbGwgT05MWSBncmFiIGFjdGlvbnMgdGhhdCBoYXZlIGp1c3QgYmVlbiBkaXNwYXRjaGVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBvZkFjdGlvbkRpc3BhdGNoZWQoXG4gIC4uLmFsbG93ZWRUeXBlczogQWN0aW9uVHlwZVtdXG4pOiBPcGVyYXRvckZ1bmN0aW9uPEFjdGlvbkNvbnRleHQsIGFueT4ge1xuICByZXR1cm4gb2ZBY3Rpb25PcGVyYXRvcihhbGxvd2VkVHlwZXMsIFtBY3Rpb25TdGF0dXMuRGlzcGF0Y2hlZF0pO1xufVxuXG4vKipcbiAqIFJ4SlMgb3BlcmF0b3IgZm9yIHNlbGVjdGluZyBvdXQgc3BlY2lmaWMgYWN0aW9ucy5cbiAqXG4gKiBUaGlzIHdpbGwgT05MWSBncmFiIGFjdGlvbnMgdGhhdCBoYXZlIGp1c3QgYmVlbiBzdWNjZXNzZnVsbHkgY29tcGxldGVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBvZkFjdGlvblN1Y2Nlc3NmdWwoXG4gIC4uLmFsbG93ZWRUeXBlczogQWN0aW9uVHlwZVtdXG4pOiBPcGVyYXRvckZ1bmN0aW9uPEFjdGlvbkNvbnRleHQsIGFueT4ge1xuICByZXR1cm4gb2ZBY3Rpb25PcGVyYXRvcihhbGxvd2VkVHlwZXMsIFtBY3Rpb25TdGF0dXMuU3VjY2Vzc2Z1bF0pO1xufVxuXG4vKipcbiAqIFJ4SlMgb3BlcmF0b3IgZm9yIHNlbGVjdGluZyBvdXQgc3BlY2lmaWMgYWN0aW9ucy5cbiAqXG4gKiBUaGlzIHdpbGwgT05MWSBncmFiIGFjdGlvbnMgdGhhdCBoYXZlIGp1c3QgYmVlbiBjYW5jZWxlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gb2ZBY3Rpb25DYW5jZWxlZChcbiAgLi4uYWxsb3dlZFR5cGVzOiBBY3Rpb25UeXBlW11cbik6IE9wZXJhdG9yRnVuY3Rpb248QWN0aW9uQ29udGV4dCwgYW55PiB7XG4gIHJldHVybiBvZkFjdGlvbk9wZXJhdG9yKGFsbG93ZWRUeXBlcywgW0FjdGlvblN0YXR1cy5DYW5jZWxlZF0pO1xufVxuXG4vKipcbiAqIFJ4SlMgb3BlcmF0b3IgZm9yIHNlbGVjdGluZyBvdXQgc3BlY2lmaWMgYWN0aW9ucy5cbiAqXG4gKiBUaGlzIHdpbGwgT05MWSBncmFiIGFjdGlvbnMgdGhhdCBoYXZlIGp1c3QgYmVlbiBjb21wbGV0ZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG9mQWN0aW9uQ29tcGxldGVkKFxuICAuLi5hbGxvd2VkVHlwZXM6IEFjdGlvblR5cGVbXVxuKTogT3BlcmF0b3JGdW5jdGlvbjxBY3Rpb25Db250ZXh0LCBBY3Rpb25Db21wbGV0aW9uPiB7XG4gIGNvbnN0IGFsbG93ZWRTdGF0dXNlcyA9IFtcbiAgICBBY3Rpb25TdGF0dXMuU3VjY2Vzc2Z1bCxcbiAgICBBY3Rpb25TdGF0dXMuQ2FuY2VsZWQsXG4gICAgQWN0aW9uU3RhdHVzLkVycm9yZWRcbiAgXTtcbiAgcmV0dXJuIG9mQWN0aW9uT3BlcmF0b3IoYWxsb3dlZFR5cGVzLCBhbGxvd2VkU3RhdHVzZXMsIG1hcEFjdGlvblJlc3VsdCk7XG59XG5cbi8qKlxuICogUnhKUyBvcGVyYXRvciBmb3Igc2VsZWN0aW5nIG91dCBzcGVjaWZpYyBhY3Rpb25zLlxuICpcbiAqIFRoaXMgd2lsbCBPTkxZIGdyYWIgYWN0aW9ucyB0aGF0IGhhdmUganVzdCB0aHJvd24gYW4gZXJyb3JcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG9mQWN0aW9uRXJyb3JlZChcbiAgLi4uYWxsb3dlZFR5cGVzOiBBY3Rpb25UeXBlW11cbik6IE9wZXJhdG9yRnVuY3Rpb248QWN0aW9uQ29udGV4dCwgYW55PiB7XG4gIHJldHVybiBvZkFjdGlvbk9wZXJhdG9yKGFsbG93ZWRUeXBlcywgW0FjdGlvblN0YXR1cy5FcnJvcmVkXSk7XG59XG5cbmZ1bmN0aW9uIG9mQWN0aW9uT3BlcmF0b3IoXG4gIGFsbG93ZWRUeXBlczogQWN0aW9uVHlwZVtdLFxuICBzdGF0dXNlcz86IEFjdGlvblN0YXR1c1tdLFxuICAvLyBUaGlzIGFjdHVhbGx5IGNvdWxkJ3ZlIGJlZW4gYE9wZXJhdG9yRnVuY3Rpb248QWN0aW9uQ29udGV4dCwgQWN0aW9uQ29tcGxldGlvbiB8IGFueT5gLFxuICAvLyBzaW5jZSBpdCBtYXBzIGVpdGhlciB0byBgY3R4LmFjdGlvbmAgT1IgdG8gYEFjdGlvbkNvbXBsZXRpb25gLiBCdXQgYEFjdGlvbkNvbXBsZXRlaW9uIHwgYW55YFxuICAvLyBkZWZhdWx0cyB0byBgYW55YCwgdGh1cyB0aGVyZSBpcyBubyBzZW5zZSBmcm9tIHVuaW9uIHR5cGUuXG4gIG1hcE9wZXJhdG9yOiAoKSA9PiBPcGVyYXRvckZ1bmN0aW9uPEFjdGlvbkNvbnRleHQsIGFueT4gPSBtYXBBY3Rpb25cbik6IE9wZXJhdG9yRnVuY3Rpb248QWN0aW9uQ29udGV4dCwgYW55PiB7XG4gIGNvbnN0IGFsbG93ZWRNYXAgPSBjcmVhdGVBbGxvd2VkQWN0aW9uVHlwZXNNYXAoYWxsb3dlZFR5cGVzKTtcbiAgY29uc3QgYWxsb3dlZFN0YXR1c01hcCA9IHN0YXR1c2VzICYmIGNyZWF0ZUFsbG93ZWRTdGF0dXNlc01hcChzdGF0dXNlcyk7XG4gIHJldHVybiBmdW5jdGlvbihvOiBPYnNlcnZhYmxlPEFjdGlvbkNvbnRleHQ+KSB7XG4gICAgcmV0dXJuIG8ucGlwZShmaWx0ZXJTdGF0dXMoYWxsb3dlZE1hcCwgYWxsb3dlZFN0YXR1c01hcCksIG1hcE9wZXJhdG9yKCkpO1xuICB9O1xufVxuXG5mdW5jdGlvbiBmaWx0ZXJTdGF0dXMoYWxsb3dlZFR5cGVzOiBGaWx0ZXJNYXAsIGFsbG93ZWRTdGF0dXNlcz86IEZpbHRlck1hcCkge1xuICByZXR1cm4gZmlsdGVyKChjdHg6IEFjdGlvbkNvbnRleHQpID0+IHtcbiAgICBjb25zdCBhY3Rpb25UeXBlID0gZ2V0QWN0aW9uVHlwZUZyb21JbnN0YW5jZShjdHguYWN0aW9uKSE7XG4gICAgY29uc3QgdHlwZU1hdGNoID0gYWxsb3dlZFR5cGVzW2FjdGlvblR5cGVdO1xuICAgIGNvbnN0IHN0YXR1c01hdGNoID0gYWxsb3dlZFN0YXR1c2VzID8gYWxsb3dlZFN0YXR1c2VzW2N0eC5zdGF0dXNdIDogdHJ1ZTtcbiAgICByZXR1cm4gdHlwZU1hdGNoICYmIHN0YXR1c01hdGNoO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gbWFwQWN0aW9uUmVzdWx0KCk6IE9wZXJhdG9yRnVuY3Rpb248QWN0aW9uQ29udGV4dCwgQWN0aW9uQ29tcGxldGlvbj4ge1xuICByZXR1cm4gbWFwKCh7IGFjdGlvbiwgc3RhdHVzLCBlcnJvciB9OiBBY3Rpb25Db250ZXh0KSA9PiB7XG4gICAgcmV0dXJuIDxBY3Rpb25Db21wbGV0aW9uPntcbiAgICAgIGFjdGlvbixcbiAgICAgIHJlc3VsdDoge1xuICAgICAgICBzdWNjZXNzZnVsOiBBY3Rpb25TdGF0dXMuU3VjY2Vzc2Z1bCA9PT0gc3RhdHVzLFxuICAgICAgICBjYW5jZWxlZDogQWN0aW9uU3RhdHVzLkNhbmNlbGVkID09PSBzdGF0dXMsXG4gICAgICAgIGVycm9yXG4gICAgICB9XG4gICAgfTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIG1hcEFjdGlvbjxUID0gYW55PigpOiBPcGVyYXRvckZ1bmN0aW9uPEFjdGlvbkNvbnRleHQsIFQ+IHtcbiAgcmV0dXJuIG1hcCgoY3R4OiBBY3Rpb25Db250ZXh0KSA9PiA8VD5jdHguYWN0aW9uKTtcbn1cblxuaW50ZXJmYWNlIEZpbHRlck1hcCB7XG4gIFtrZXk6IHN0cmluZ106IGJvb2xlYW47XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUFsbG93ZWRBY3Rpb25UeXBlc01hcCh0eXBlczogQWN0aW9uVHlwZVtdKTogRmlsdGVyTWFwIHtcbiAgcmV0dXJuIHR5cGVzLnJlZHVjZSgoZmlsdGVyTWFwOiBGaWx0ZXJNYXAsIGtsYXNzOiBhbnkpID0+IHtcbiAgICBmaWx0ZXJNYXBbZ2V0QWN0aW9uVHlwZUZyb21JbnN0YW5jZShrbGFzcykhXSA9IHRydWU7XG4gICAgcmV0dXJuIGZpbHRlck1hcDtcbiAgfSwgPEZpbHRlck1hcD57fSk7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUFsbG93ZWRTdGF0dXNlc01hcChzdGF0dXNlczogQWN0aW9uU3RhdHVzW10pOiBGaWx0ZXJNYXAge1xuICByZXR1cm4gc3RhdHVzZXMucmVkdWNlKChmaWx0ZXJNYXA6IEZpbHRlck1hcCwgc3RhdHVzOiBBY3Rpb25TdGF0dXMpID0+IHtcbiAgICBmaWx0ZXJNYXBbc3RhdHVzXSA9IHRydWU7XG4gICAgcmV0dXJuIGZpbHRlck1hcDtcbiAgfSwgPEZpbHRlck1hcD57fSk7XG59XG4iXX0=
|
|
223
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2YtYWN0aW9uLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG5neHMvc3RvcmUvIiwic291cmNlcyI6WyJzcmMvb3BlcmF0b3JzL29mLWFjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQ0EsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc3QyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFhM0Qsc0NBT0M7OztJQU5DLGtDQUFVOztJQUNWLGtDQUlFOzs7Ozs7Ozs7O0FBUUosTUFBTSxVQUFVLFFBQVE7SUFDdEIsc0JBQWtCO1NBQWxCLFVBQWtCLEVBQWxCLHFCQUFrQixFQUFsQixJQUFrQjtRQUFsQixpQ0FBa0I7O0lBS2xCLE9BQU8sZ0JBQWdCLENBQUMsWUFBWSxDQUFDLENBQUM7QUFDeEMsQ0FBQzs7Ozs7Ozs7O0FBT0QsTUFBTSxVQUFVLGtCQUFrQjtJQUNoQyxzQkFBa0I7U0FBbEIsVUFBa0IsRUFBbEIscUJBQWtCLEVBQWxCLElBQWtCO1FBQWxCLGlDQUFrQjs7SUFLbEIsT0FBTyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsK0JBQXlCLENBQUMsQ0FBQztBQUNuRSxDQUFDOzs7Ozs7Ozs7QUFPRCxNQUFNLFVBQVUsa0JBQWtCO0lBQ2hDLHNCQUFrQjtTQUFsQixVQUFrQixFQUFsQixxQkFBa0IsRUFBbEIsSUFBa0I7UUFBbEIsaUNBQWtCOztJQUtsQixPQUFPLGdCQUFnQixDQUFDLFlBQVksRUFBRSwrQkFBeUIsQ0FBQyxDQUFDO0FBQ25FLENBQUM7Ozs7Ozs7OztBQU9ELE1BQU0sVUFBVSxnQkFBZ0I7SUFDOUIsc0JBQWtCO1NBQWxCLFVBQWtCLEVBQWxCLHFCQUFrQixFQUFsQixJQUFrQjtRQUFsQixpQ0FBa0I7O0lBS2xCLE9BQU8sZ0JBQWdCLENBQUMsWUFBWSxFQUFFLDJCQUF1QixDQUFDLENBQUM7QUFDakUsQ0FBQzs7Ozs7Ozs7O0FBT0QsTUFBTSxV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QUFDO0FBQ3BCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPcGVyYXRvckZ1bmN0aW9uLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQWN0aW9uVHlwZSB9IGZyb20gJy4uL2FjdGlvbnMvc3ltYm9scyc7XG5pbXBvcnQgeyBnZXRBY3Rpb25UeXBlRnJvbUluc3RhbmNlIH0gZnJvbSAnLi4vdXRpbHMvdXRpbHMnO1xuaW1wb3J0IHsgQWN0aW9uQ29udGV4dCwgQWN0aW9uU3RhdHVzIH0gZnJvbSAnLi4vYWN0aW9ucy1zdHJlYW0nO1xuXG50eXBlIFR1cGxlS2V5czxUIGV4dGVuZHMgYW55W10+ID0gRXhjbHVkZTxrZXlvZiBULCBrZXlvZiBbXT47XG5cbi8qKlxuICogR2l2ZW4gYSBQT0pPLCByZXR1cm5zIHRoZSBQT0pPIHR5cGUsIGdpdmVuIGEgY2xhc3MgY29uc3RydWN0b3Igb2JqZWN0LCByZXR1cm5zIHRoZSB0eXBlIG9mIHRoZSBjbGFzcy5cbiAqXG4gKiBUaGlzIHV0aWxpdHkgdHlwZSBleGlzdHMgZHVlIHRvIHRoZSBjb21wbGV4aXR5IG9mIEFjdGlvblR5cGUgYmVpbmcgZWl0aGVyIGFuIEFjdGlvbkRlZiBjbGFzcyBvciB0aGUgcGxhaW5cbiAqIGB7IHR5cGU6IHN0cmluZyB9YCB0eXBlIChvciBzaW1pbGFyIGNvbXBhdGlibGUgUE9KTyB0eXBlcykuXG4gKi9cbnR5cGUgQ29uc3RydWN0ZWQ8VD4gPSBUIGV4dGVuZHMgbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gaW5mZXIgVSA/IFUgOiBUO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFjdGlvbkNvbXBsZXRpb248VCA9IGFueSwgRSA9IEVycm9yPiB7XG4gIGFjdGlvbjogVDtcbiAgcmVzdWx0OiB7XG4gICAgc3VjY2Vzc2Z1bDogYm9vbGVhbjtcbiAgICBjYW5jZWxlZDogYm9vbGVhbjtcbiAgICBlcnJvcj86IEU7XG4gIH07XG59XG5cbi8qKlxuICogUnhKUyBvcGVyYXRvciBmb3Igc2VsZWN0aW5nIG91dCBzcGVjaWZpYyBhY3Rpb25zLlxuICpcbiAqIFRoaXMgd2lsbCBncmFiIGFjdGlvbnMgdGhhdCBoYXZlIGp1c3QgYmVlbiBkaXNwYXRjaGVkIGFzIHdlbGwgYXMgYWN0aW9ucyB0aGF0IGhhdmUgY29tcGxldGVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBvZkFjdGlvbjxUIGV4dGVuZHMgQWN0aW9uVHlwZVtdPihcbiAgLi4uYWxsb3dlZFR5cGVzOiBUXG4pOiBPcGVyYXRvckZ1bmN0aW9uPFxuICBBY3Rpb25Db250ZXh0PENvbnN0cnVjdGVkPFRbVHVwbGVLZXlzPFQ+XT4+LFxuICBDb25zdHJ1Y3RlZDxUW1R1cGxlS2V5czxUPl0+XG4+IHtcbiAgcmV0dXJuIG9mQWN0aW9uT3BlcmF0b3IoYWxsb3dlZFR5cGVzKTtcbn1cblxuLyoqXG4gKiBSeEpTIG9wZXJhdG9yIGZvciBzZWxlY3Rpbmcgb3V0IHNwZWNpZmljIGFjdGlvbnMuXG4gKlxuICogVGhpcyB3aWxsIE9OTFkgZ3JhYiBhY3Rpb25zIHRoYXQgaGF2ZSBqdXN0IGJlZW4gZGlzcGF0Y2hlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gb2ZBY3Rpb25EaXNwYXRjaGVkPFQgZXh0ZW5kcyBBY3Rpb25UeXBlW10+KFxuICAuLi5hbGxvd2VkVHlwZXM6IFRcbik6IE9wZXJhdG9yRnVuY3Rpb248XG4gIEFjdGlvbkNvbnRleHQ8Q29uc3RydWN0ZWQ8VFtUdXBsZUtleXM8VD5dPj4sXG4gIENvbnN0cnVjdGVkPFRbVHVwbGVLZXlzPFQ+XT5cbj4ge1xuICByZXR1cm4gb2ZBY3Rpb25PcGVyYXRvcihhbGxvd2VkVHlwZXMsIFtBY3Rpb25TdGF0dXMuRGlzcGF0Y2hlZF0pO1xufVxuXG4vKipcbiAqIFJ4SlMgb3BlcmF0b3IgZm9yIHNlbGVjdGluZyBvdXQgc3BlY2lmaWMgYWN0aW9ucy5cbiAqXG4gKiBUaGlzIHdpbGwgT05MWSBncmFiIGFjdGlvbnMgdGhhdCBoYXZlIGp1c3QgYmVlbiBzdWNjZXNzZnVsbHkgY29tcGxldGVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBvZkFjdGlvblN1Y2Nlc3NmdWw8VCBleHRlbmRzIEFjdGlvblR5cGVbXT4oXG4gIC4uLmFsbG93ZWRUeXBlczogVFxuKTogT3BlcmF0b3JGdW5jdGlvbjxcbiAgQWN0aW9uQ29udGV4dDxDb25zdHJ1Y3RlZDxUW1R1cGxlS2V5czxUPl0+PixcbiAgQ29uc3RydWN0ZWQ8VFtUdXBsZUtleXM8VD5dPlxuPiB7XG4gIHJldHVybiBvZkFjdGlvbk9wZXJhdG9yKGFsbG93ZWRUeXBlcywgW0FjdGlvblN0YXR1cy5TdWNjZXNzZnVsXSk7XG59XG5cbi8qKlxuICogUnhKUyBvcGVyYXRvciBmb3Igc2VsZWN0aW5nIG91dCBzcGVjaWZpYyBhY3Rpb25zLlxuICpcbiAqIFRoaXMgd2lsbCBPTkxZIGdyYWIgYWN0aW9ucyB0aGF0IGhhdmUganVzdCBiZWVuIGNhbmNlbGVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBvZkFjdGlvbkNhbmNlbGVkPFQgZXh0ZW5kcyBBY3Rpb25UeXBlW10+KFxuICAuLi5hbGxvd2VkVHlwZXM6IFRcbik6IE9wZXJhdG9yRnVuY3Rpb248XG4gIEFjdGlvbkNvbnRleHQ8Q29uc3RydWN0ZWQ8VFtUdXBsZUtleXM8VD5dPj4sXG4gIENvbnN0cnVjdGVkPFRbVHVwbGVLZXlzPFQ+XT5cbj4ge1xuICByZXR1cm4gb2ZBY3Rpb25PcGVyYXRvcihhbGxvd2VkVHlwZXMsIFtBY3Rpb25TdGF0dXMuQ2FuY2VsZWRdKTtcbn1cblxuLyoqXG4gKiBSeEpTIG9wZXJhdG9yIGZvciBzZWxlY3Rpbmcgb3V0IHNwZWNpZmljIGFjdGlvbnMuXG4gKlxuICogVGhpcyB3aWxsIE9OTFkgZ3JhYiBhY3Rpb25zIHRoYXQgaGF2ZSBqdXN0IGJlZW4gY29tcGxldGVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBvZkFjdGlvbkNvbXBsZXRlZDxUIGV4dGVuZHMgQWN0aW9uVHlwZVtdPihcbiAgLi4uYWxsb3dlZFR5cGVzOiBUXG4pOiBPcGVyYXRvckZ1bmN0aW9uPFxuICBBY3Rpb25Db250ZXh0PENvbnN0cnVjdGVkPFRbVHVwbGVLZXlzPFQ+XT4+LFxuICBBY3Rpb25Db21wbGV0aW9uPENvbnN0cnVjdGVkPFRbVHVwbGVLZXlzPFQ+XT4+XG4+IHtcbiAgY29uc3QgYWxsb3dlZFN0YXR1c2VzID0gW1xuICAgIEFjdGlvblN0YXR1cy5TdWNjZXNzZnVsLFxuICAgIEFjdGlvblN0YXR1cy5DYW5jZWxlZCxcbiAgICBBY3Rpb25TdGF0dXMuRXJyb3JlZFxuICBdO1xuICByZXR1cm4gb2ZBY3Rpb25PcGVyYXRvcihhbGxvd2VkVHlwZXMsIGFsbG93ZWRTdGF0dXNlcywgbWFwQWN0aW9uUmVzdWx0KTtcbn1cblxuLyoqXG4gKiBSeEpTIG9wZXJhdG9yIGZvciBzZWxlY3Rpbmcgb3V0IHNwZWNpZmljIGFjdGlvbnMuXG4gKlxuICogVGhpcyB3aWxsIE9OTFkgZ3JhYiBhY3Rpb25zIHRoYXQgaGF2ZSBqdXN0IHRocm93biBhbiBlcnJvclxuICovXG5leHBvcnQgZnVuY3Rpb24gb2ZBY3Rpb25FcnJvcmVkPFQgZXh0ZW5kcyBBY3Rpb25UeXBlW10+KFxuICAuLi5hbGxvd2VkVHlwZXM6IFRcbik6IE9wZXJhdG9yRnVuY3Rpb248XG4gIEFjdGlvbkNvbnRleHQ8Q29uc3RydWN0ZWQ8VFtUdXBsZUtleXM8VD5dPj4sXG4gIENvbnN0cnVjdGVkPFRbVHVwbGVLZXlzPFQ+XT5cbj4ge1xuICByZXR1cm4gb2ZBY3Rpb25PcGVyYXRvcihhbGxvd2VkVHlwZXMsIFtBY3Rpb25TdGF0dXMuRXJyb3JlZF0pO1xufVxuXG5mdW5jdGlvbiBvZkFjdGlvbk9wZXJhdG9yKFxuICBhbGxvd2VkVHlwZXM6IEFjdGlvblR5cGVbXSxcbiAgc3RhdHVzZXM/OiBBY3Rpb25TdGF0dXNbXSxcbiAgLy8gVGhpcyBhY3R1YWxseSBjb3VsZCd2ZSBiZWVuIGBPcGVyYXRvckZ1bmN0aW9uPEFjdGlvbkNvbnRleHQsIEFjdGlvbkNvbXBsZXRpb24gfCBhbnk+YCxcbiAgLy8gc2luY2UgaXQgbWFwcyBlaXRoZXIgdG8gYGN0eC5hY3Rpb25gIE9SIHRvIGBBY3Rpb25Db21wbGV0aW9uYC4gQnV0IGBBY3Rpb25Db21wbGV0ZWlvbiB8IGFueWBcbiAgLy8gZGVmYXVsdHMgdG8gYGFueWAsIHRodXMgdGhlcmUgaXMgbm8gc2Vuc2UgZnJvbSB1bmlvbiB0eXBlLlxuICBtYXBPcGVyYXRvcjogKCkgPT4gT3BlcmF0b3JGdW5jdGlvbjxBY3Rpb25Db250ZXh0LCBhbnk+ID0gbWFwQWN0aW9uXG4pOiBPcGVyYXRvckZ1bmN0aW9uPEFjdGlvbkNvbnRleHQsIGFueT4ge1xuICBjb25zdCBhbGxvd2VkTWFwID0gY3JlYXRlQWxsb3dlZEFjdGlvblR5cGVzTWFwKGFsbG93ZWRUeXBlcyk7XG4gIGNvbnN0IGFsbG93ZWRTdGF0dXNNYXAgPSBzdGF0dXNlcyAmJiBjcmVhdGVBbGxvd2VkU3RhdHVzZXNNYXAoc3RhdHVzZXMpO1xuICByZXR1cm4gZnVuY3Rpb24obzogT2JzZXJ2YWJsZTxBY3Rpb25Db250ZXh0Pikge1xuICAgIHJldHVybiBvLnBpcGUoZmlsdGVyU3RhdHVzKGFsbG93ZWRNYXAsIGFsbG93ZWRTdGF0dXNNYXApLCBtYXBPcGVyYXRvcigpKTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gZmlsdGVyU3RhdHVzKGFsbG93ZWRUeXBlczogRmlsdGVyTWFwLCBhbGxvd2VkU3RhdHVzZXM/OiBGaWx0ZXJNYXApIHtcbiAgcmV0dXJuIGZpbHRlcigoY3R4OiBBY3Rpb25Db250ZXh0KSA9PiB7XG4gICAgY29uc3QgYWN0aW9uVHlwZSA9IGdldEFjdGlvblR5cGVGcm9tSW5zdGFuY2UoY3R4LmFjdGlvbikhO1xuICAgIGNvbnN0IHR5cGVNYXRjaCA9IGFsbG93ZWRUeXBlc1thY3Rpb25UeXBlXTtcbiAgICBjb25zdCBzdGF0dXNNYXRjaCA9IGFsbG93ZWRTdGF0dXNlcyA/IGFsbG93ZWRTdGF0dXNlc1tjdHguc3RhdHVzXSA6IHRydWU7XG4gICAgcmV0dXJuIHR5cGVNYXRjaCAmJiBzdGF0dXNNYXRjaDtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIG1hcEFjdGlvblJlc3VsdCgpOiBPcGVyYXRvckZ1bmN0aW9uPEFjdGlvbkNvbnRleHQsIEFjdGlvbkNvbXBsZXRpb24+IHtcbiAgcmV0dXJuIG1hcCgoeyBhY3Rpb24sIHN0YXR1cywgZXJyb3IgfTogQWN0aW9uQ29udGV4dCkgPT4ge1xuICAgIHJldHVybiA8QWN0aW9uQ29tcGxldGlvbj57XG4gICAgICBhY3Rpb24sXG4gICAgICByZXN1bHQ6IHtcbiAgICAgICAgc3VjY2Vzc2Z1bDogQWN0aW9uU3RhdHVzLlN1Y2Nlc3NmdWwgPT09IHN0YXR1cyxcbiAgICAgICAgY2FuY2VsZWQ6IEFjdGlvblN0YXR1cy5DYW5jZWxlZCA9PT0gc3RhdHVzLFxuICAgICAgICBlcnJvclxuICAgICAgfVxuICAgIH07XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBtYXBBY3Rpb248VCA9IGFueT4oKTogT3BlcmF0b3JGdW5jdGlvbjxBY3Rpb25Db250ZXh0LCBUPiB7XG4gIHJldHVybiBtYXAoKGN0eDogQWN0aW9uQ29udGV4dCkgPT4gPFQ+Y3R4LmFjdGlvbik7XG59XG5cbmludGVyZmFjZSBGaWx0ZXJNYXAge1xuICBba2V5OiBzdHJpbmddOiBib29sZWFuO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVBbGxvd2VkQWN0aW9uVHlwZXNNYXAodHlwZXM6IEFjdGlvblR5cGVbXSk6IEZpbHRlck1hcCB7XG4gIHJldHVybiB0eXBlcy5yZWR1Y2UoKGZpbHRlck1hcDogRmlsdGVyTWFwLCBrbGFzczogYW55KSA9PiB7XG4gICAgZmlsdGVyTWFwW2dldEFjdGlvblR5cGVGcm9tSW5zdGFuY2Uoa2xhc3MpIV0gPSB0cnVlO1xuICAgIHJldHVybiBmaWx0ZXJNYXA7XG4gIH0sIDxGaWx0ZXJNYXA+e30pO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVBbGxvd2VkU3RhdHVzZXNNYXAoc3RhdHVzZXM6IEFjdGlvblN0YXR1c1tdKTogRmlsdGVyTWFwIHtcbiAgcmV0dXJuIHN0YXR1c2VzLnJlZHVjZSgoZmlsdGVyTWFwOiBGaWx0ZXJNYXAsIHN0YXR1czogQWN0aW9uU3RhdHVzKSA9PiB7XG4gICAgZmlsdGVyTWFwW3N0YXR1c10gPSB0cnVlO1xuICAgIHJldHVybiBmaWx0ZXJNYXA7XG4gIH0sIDxGaWx0ZXJNYXA+e30pO1xufVxuIl19
|
package/esm5/src/public_api.js
CHANGED
|
@@ -26,4 +26,4 @@ export { getActionTypeFromInstance, actionMatcher } from './utils/utils';
|
|
|
26
26
|
export { createSelector } from './utils/selector-utils';
|
|
27
27
|
export { NoopNgxsExecutionStrategy } from './execution/noop-ngxs-execution-strategy';
|
|
28
28
|
export { StateToken } from './state-token/state-token';
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZ3hzL3N0b3JlLyIsInNvdXJjZXMiOlsic3JjL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDaEMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFFLE9BQU8sRUFBK0IsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7Ozs7OztBQVd4RSxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLGdCQUFnQixFQUNoQixtQkFBbUIsRUFDbkIsc0JBQXNCLEVBQ3ZCLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUNMLFFBQVEsRUFDUixrQkFBa0IsRUFDbEIsa0JBQWtCLEVBQ2xCLGdCQUFnQixFQUNoQixlQUFlLEVBQ2YsaUJBQWlCLEVBRWxCLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQU9MLGdCQUFnQixFQUNqQixNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDMUQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHeEQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDckYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgTmd4c01vZHVsZSB9IGZyb20gJy4vbW9kdWxlJztcbmV4cG9ydCB7IEFjdGlvbiB9IGZyb20gJy4vZGVjb3JhdG9ycy9hY3Rpb24nO1xuZXhwb3J0IHsgU3RvcmUgfSBmcm9tICcuL3N0b3JlJztcbmV4cG9ydCB7IFN0YXRlIH0gZnJvbSAnLi9kZWNvcmF0b3JzL3N0YXRlJztcbmV4cG9ydCB7IFNlbGVjdCB9IGZyb20gJy4vZGVjb3JhdG9ycy9zZWxlY3Qvc2VsZWN0JztcbmV4cG9ydCB7IFNlbGVjdG9yT3B0aW9ucyB9IGZyb20gJy4vZGVjb3JhdG9ycy9zZWxlY3Rvci1vcHRpb25zJztcbmV4cG9ydCB7IEFjdGlvbnMsIEFjdGlvbkNvbnRleHQsIEFjdGlvblN0YXR1cyB9IGZyb20gJy4vYWN0aW9ucy1zdHJlYW0nO1xuXG4vLyBUT0RPOiB2NCAtIFdlIG5lZWQgdG8gY29tZSB1cCB3aXRoIGFuIGFsdGVybmF0aXZlIGFwaSB0byBleHBvc2luZyB0aGlzIG1ldGFkYXRhXG4vLyAgIGJlY2F1c2UgaXQgaXMgY3VycmVudGx5IHVzZWQgYnkgdGhlIGZvbGxvd2luZyAoYWZ0ZXIgYSBnaXRodWIgc2VhcmNoKTpcbi8vIC0gaHR0cHM6Ly9naXRodWIuY29tL25neHMtbGFicy9lbWl0dGVyL2Jsb2IvODFkMjFkMTM1NDAwZDdlMzc2NWZjNTc5ZTA5YWVhMjliMWI5MmJmNy9lbWl0dGVyL3NyYy9saWIvY29yZS9kZWNvcmF0b3JzL3JlY2VpdmVyLnRzI0w5MVxuLy8gLSBodHRwczovL2dpdGh1Yi5jb20vbmd4cy1sYWJzL2RhdGEvYmxvYi83M2EzMjAwNTlmMjE5MjRlYjk3NWE4NmFkYWU1MTY5YTQwNDA3MWZkL3NyYy9saWIvZGVjb3JhdG9ycy9wZXJzaXN0ZW5jZS9wZXJzaXN0ZW5jZS50cyNMMTNcbi8vIC0gaHR0cHM6Ly9naXRodWIuY29tL25nLXR1cmtleS9uZ3hzLXJlc2V0LXBsdWdpbi9ibG9iLzBmMjJmMjJlMjc3YzdkZTViMzQwZDE5MTdhYWUzMDNkMDEwMjBjZWUvc3JjL2xpYi9yZXNldC5wbHVnaW4udHMjTDE5XG4vLyB0c2xpbnQ6ZGlzYWJsZTogbWF4LWxpbmUtbGVuZ3RoXG4vLyAtIGh0dHBzOi8vZ2l0aHViLmNvbS9uZ3hzLWxhYnMvZmlyZWJhc2UtcGx1Z2luL2Jsb2IvNzI1MWQ4NzdhZWFkZWZlYThjM2M4OTFiN2I1NWU3NjUzYTlmMjg5Yy9zcmMvbGliL2RlY29yYXRvcnMvbmd4cy1maXJlc3RvcmUtY29ubmVjdC50cyNMMjNcbi8vIC0gaHR0cHM6Ly9naXRodWIuY29tL3N0ZWZhbi1zY2h1YmVydC9uZ3hzLWV4dGVuc2lvbnMvYmxvYi85MjJlZTJmODdlYmExNzgyM2I1ZWZhYjE0MmI2NTZiMGQyOWY4MjdkL3NyYy9saWIvY29yZS9kZWNvcmF0b3JzL3Jlc2V0LXN0YXRlLmRlY29yYXRvci50cyNMMThcbi8vIHRzbGludDplbmFibGU6IG1heC1saW5lLWxlbmd0aFxuZXhwb3J0IHtcbiAgZ2V0U2VsZWN0b3JNZXRhZGF0YSxcbiAgZ2V0U3RvcmVNZXRhZGF0YSxcbiAgZW5zdXJlU3RvcmVNZXRhZGF0YSxcbiAgZW5zdXJlU2VsZWN0b3JNZXRhZGF0YVxufSBmcm9tICcuL3B1YmxpY190b19kZXByZWNhdGUnO1xuZXhwb3J0IHtcbiAgb2ZBY3Rpb24sXG4gIG9mQWN0aW9uRGlzcGF0Y2hlZCxcbiAgb2ZBY3Rpb25TdWNjZXNzZnVsLFxuICBvZkFjdGlvbkNhbmNlbGVkLFxuICBvZkFjdGlvbkVycm9yZWQsXG4gIG9mQWN0aW9uQ29tcGxldGVkLFxuICBBY3Rpb25Db21wbGV0aW9uXG59IGZyb20gJy4vb3BlcmF0b3JzL29mLWFjdGlvbic7XG5leHBvcnQge1xuICBTdGF0ZUNvbnRleHQsXG4gIFN0YXRlT3BlcmF0b3IsXG4gIE5neHNPbkluaXQsXG4gIE5neHNBZnRlckJvb3RzdHJhcCxcbiAgTmd4c09uQ2hhbmdlcyxcbiAgTmd4c01vZHVsZU9wdGlvbnMsXG4gIE5neHNTaW1wbGVDaGFuZ2Vcbn0gZnJvbSAnLi9zeW1ib2xzJztcbmV4cG9ydCB7IFNlbGVjdG9yIH0gZnJvbSAnLi9kZWNvcmF0b3JzL3NlbGVjdG9yL3NlbGVjdG9yJztcbmV4cG9ydCB7IGdldEFjdGlvblR5cGVGcm9tSW5zdGFuY2UsIGFjdGlvbk1hdGNoZXIgfSBmcm9tICcuL3V0aWxzL3V0aWxzJztcbmV4cG9ydCB7IGNyZWF0ZVNlbGVjdG9yIH0gZnJvbSAnLi91dGlscy9zZWxlY3Rvci11dGlscyc7XG5leHBvcnQgeyBOZ3hzRXhlY3V0aW9uU3RyYXRlZ3kgfSBmcm9tICcuL2V4ZWN1dGlvbi9zeW1ib2xzJztcbmV4cG9ydCB7IEFjdGlvblR5cGUsIEFjdGlvbk9wdGlvbnMgfSBmcm9tICcuL2FjdGlvbnMvc3ltYm9scyc7XG5leHBvcnQgeyBOb29wTmd4c0V4ZWN1dGlvblN0cmF0ZWd5IH0gZnJvbSAnLi9leGVjdXRpb24vbm9vcC1uZ3hzLWV4ZWN1dGlvbi1zdHJhdGVneSc7XG5leHBvcnQgeyBTdGF0ZVRva2VuIH0gZnJvbSAnLi9zdGF0ZS10b2tlbi9zdGF0ZS10b2tlbic7XG4iXX0=
|
|
@@ -21,11 +21,11 @@ function append(items) {
|
|
|
21
21
|
return (/** @type {?} */ (existing));
|
|
22
22
|
}
|
|
23
23
|
if (Array.isArray(existing)) {
|
|
24
|
-
return existing.concat((/** @type {?} */ (items)));
|
|
24
|
+
return existing.concat((/** @type {?} */ (((/** @type {?} */ (items))))));
|
|
25
25
|
}
|
|
26
26
|
// For example if some property is added dynamically
|
|
27
27
|
// and didn't exist before thus it's not `ArrayLike`
|
|
28
|
-
return (/** @type {?} */ (items));
|
|
28
|
+
return (/** @type {?} */ (((/** @type {?} */ (items)))));
|
|
29
29
|
});
|
|
30
30
|
}
|
|
31
31
|
|
|
@@ -181,7 +181,7 @@ function insertItem(value, beforePosition) {
|
|
|
181
181
|
}
|
|
182
182
|
// Property may be dynamic and might not existed before
|
|
183
183
|
if (!Array.isArray(existing)) {
|
|
184
|
-
return [(/** @type {?} */ (value))];
|
|
184
|
+
return [(/** @type {?} */ (((/** @type {?} */ (value)))))];
|
|
185
185
|
}
|
|
186
186
|
/** @type {?} */
|
|
187
187
|
const clone = existing.slice();
|
|
@@ -193,7 +193,7 @@ function insertItem(value, beforePosition) {
|
|
|
193
193
|
if ((/** @type {?} */ (beforePosition)) > 0) {
|
|
194
194
|
index = (/** @type {?} */ (beforePosition));
|
|
195
195
|
}
|
|
196
|
-
clone.splice(index, 0, (/** @type {?} */ (value)));
|
|
196
|
+
clone.splice(index, 0, (/** @type {?} */ (((/** @type {?} */ (value))))));
|
|
197
197
|
return clone;
|
|
198
198
|
});
|
|
199
199
|
}
|
|
@@ -208,8 +208,7 @@ function insertItem(value, beforePosition) {
|
|
|
208
208
|
* @return {?}
|
|
209
209
|
*/
|
|
210
210
|
function patch(patchObject) {
|
|
211
|
-
return (/**
|
|
212
|
-
* @template U
|
|
211
|
+
return (/** @type {?} */ (((/** @type {?} */ ((/**
|
|
213
212
|
* @param {?} existing
|
|
214
213
|
* @return {?}
|
|
215
214
|
*/
|
|
@@ -220,7 +219,7 @@ function patch(patchObject) {
|
|
|
220
219
|
/** @type {?} */
|
|
221
220
|
const newValue = patchObject[k];
|
|
222
221
|
/** @type {?} */
|
|
223
|
-
const existingPropValue = existing[k];
|
|
222
|
+
const existingPropValue = existing[(/** @type {?} */ (k))];
|
|
224
223
|
/** @type {?} */
|
|
225
224
|
const newPropValue = isStateOperator(newValue)
|
|
226
225
|
? newValue((/** @type {?} */ (existingPropValue)))
|
|
@@ -233,7 +232,7 @@ function patch(patchObject) {
|
|
|
233
232
|
}
|
|
234
233
|
}
|
|
235
234
|
return clone || existing;
|
|
236
|
-
});
|
|
235
|
+
}))))));
|
|
237
236
|
}
|
|
238
237
|
|
|
239
238
|
/**
|
|
@@ -257,7 +256,7 @@ function updateItem(selector, operatorOrValue) {
|
|
|
257
256
|
/** @type {?} */
|
|
258
257
|
let index = -1;
|
|
259
258
|
if (isPredicate(selector)) {
|
|
260
|
-
index = existing.findIndex(selector);
|
|
259
|
+
index = existing.findIndex((/** @type {?} */ (selector)));
|
|
261
260
|
}
|
|
262
261
|
else if (isNumber(selector)) {
|
|
263
262
|
index = selector;
|
|
@@ -269,11 +268,13 @@ function updateItem(selector, operatorOrValue) {
|
|
|
269
268
|
let value = (/** @type {?} */ (null));
|
|
270
269
|
// Need to check if the new item value will change the existing item value
|
|
271
270
|
// then, only if it will change it then clone the array and set the item
|
|
272
|
-
|
|
273
|
-
|
|
271
|
+
/** @type {?} */
|
|
272
|
+
const theOperatorOrValue = (/** @type {?} */ (operatorOrValue));
|
|
273
|
+
if (isStateOperator(theOperatorOrValue)) {
|
|
274
|
+
value = theOperatorOrValue((/** @type {?} */ (existing[index])));
|
|
274
275
|
}
|
|
275
276
|
else {
|
|
276
|
-
value =
|
|
277
|
+
value = theOperatorOrValue;
|
|
277
278
|
}
|
|
278
279
|
// If the value hasn't been mutated
|
|
279
280
|
// then we just return `existing` array
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngxs-store-operators.js","sources":["ng://@ngxs/store/operators/append.ts","ng://@ngxs/store/operators/compose.ts","ng://@ngxs/store/operators/utils.ts","ng://@ngxs/store/operators/iif.ts","ng://@ngxs/store/operators/insert-item.ts","ng://@ngxs/store/operators/patch.ts","ng://@ngxs/store/operators/update-item.ts","ng://@ngxs/store/operators/remove-item.ts"],"sourcesContent":["import { StateOperator } from '@ngxs/store';\nimport { RepairType } from './utils';\n\n/**\n * @param items - Specific items to append to the end of an array\n */\nexport function append<T>(items: T[]): StateOperator<RepairType<T>[]> {\n return function appendOperator(existing: Readonly<RepairType<T>[]>): RepairType<T>[] {\n // If `items` is `undefined` or `null` or `[]` but `existing` is provided\n // just return `existing`\n const itemsNotProvidedButExistingIs = (!items || !items.length) && existing;\n if (itemsNotProvidedButExistingIs) {\n return existing as RepairType<T>[];\n }\n\n if (Array.isArray(existing)) {\n return existing.concat(items as RepairType<T>[]);\n }\n\n // For example if some property is added dynamically\n // and didn't exist before thus it's not `ArrayLike`\n return items as RepairType<T>[];\n };\n}\n","import { StateOperator } from '@ngxs/store';\n\nexport function compose<T>(...operators: StateOperator<T>[]): StateOperator<T> {\n return function composeOperator(existing: Readonly<T>): T {\n return operators.reduce((accumulator, operator) => operator(accumulator), existing);\n };\n}\n","import { StateOperator } from '@ngxs/store';\n\nimport { Predicate } from './internals';\n\nexport function isStateOperator<T>(value: T | StateOperator<T>): value is StateOperator<T> {\n return typeof value === 'function';\n}\n\nexport function isUndefined(value: any): value is undefined {\n return typeof value === 'undefined';\n}\n\nexport function isPredicate<T>(value: Predicate<T> | boolean | number): value is Predicate<T> {\n return typeof value === 'function';\n}\n\nexport function isNumber(value: any): value is number {\n return typeof value === 'number';\n}\n\nexport function invalidIndex(index: number): boolean {\n return Number.isNaN(index) || index === -1;\n}\n\nexport function isNil<T>(value: T | null | undefined): value is null | undefined {\n return value === null || isUndefined(value);\n}\n\nexport type RepairType<T> = T extends true ? boolean : (T extends false ? boolean : T);\n","import { StateOperator } from '@ngxs/store';\n\nimport { isStateOperator, isUndefined, isPredicate, RepairType } from './utils';\nimport { Predicate } from './internals';\n\nfunction retrieveValue<T>(\n operatorOrValue: StateOperator<T> | T,\n existing?: Readonly<RepairType<T>>\n): RepairType<T> {\n // If state operator is a function\n // then call it with an original value\n if (isStateOperator(operatorOrValue)) {\n const value = operatorOrValue(existing! as Readonly<T>);\n return value as RepairType<T>;\n }\n\n // If operator or value was not provided\n // e.g. `elseOperatorOrValue` is `undefined`\n // then we just return an original value\n if (isUndefined(operatorOrValue)) {\n return (<any>existing)! as RepairType<T>;\n }\n\n return operatorOrValue as RepairType<T>;\n}\n\n/**\n * @param condition - Condition can be a plain boolean value or a function,\n * that returns boolean, also this function can take a value as an argument\n * to which this state operator applies\n * @param trueOperatorOrValue - Any value or a state operator\n * @param elseOperatorOrValue - Any value or a state operator\n */\nexport function iif<T>(\n condition: Predicate<T> | boolean,\n trueOperatorOrValue: StateOperator<T> | T,\n elseOperatorOrValue?: StateOperator<T> | T\n): StateOperator<RepairType<T>> {\n return function iifOperator(existing: Readonly<RepairType<T>>): RepairType<T> {\n // Convert the value to a boolean\n let result = !!condition;\n // but if it is a function then run it to get the result\n if (isPredicate(condition)) {\n result = condition(existing);\n }\n\n if (result) {\n return retrieveValue<T>(trueOperatorOrValue, existing as RepairType<T>);\n }\n\n return retrieveValue<T>(elseOperatorOrValue!, existing as RepairType<T>);\n };\n}\n","import { StateOperator } from '@ngxs/store';\nimport { isNil, RepairType } from './utils';\n\n/**\n * @param value - Value to insert\n * @param [beforePosition] - Specified index to insert value before, optional\n */\nexport function insertItem<T>(\n value: T,\n beforePosition?: number\n): StateOperator<RepairType<T>[]> {\n return function insertItemOperator(existing: Readonly<RepairType<T>[]>): RepairType<T>[] {\n // Have to check explicitly for `null` and `undefined`\n // because `value` can be `0`, thus `!value` will return `true`\n if (isNil(value) && existing) {\n return existing as RepairType<T>[];\n }\n\n // Property may be dynamic and might not existed before\n if (!Array.isArray(existing)) {\n return [value as RepairType<T>];\n }\n\n const clone = existing.slice();\n\n let index = 0;\n\n // No need to call `isNumber`\n // as we are checking `> 0` not `>= 0`\n // everything except number will return false here\n if (beforePosition! > 0) {\n index = beforePosition!;\n }\n\n clone.splice(index, 0, value as RepairType<T>);\n return clone;\n };\n}\n","import { StateOperator } from '@ngxs/store';\nimport { isStateOperator } from './utils';\n\nexport type PatchSpec<T> = { [P in keyof T]?: T[P] | StateOperator<NonNullable<T[P]>> };\n\ntype PatchValues<T> = {\n readonly [P in keyof T]?: T[P] extends (...args: any[]) => infer R ? R : T[P];\n};\n\ntype PatchOperator<T> = <U extends PatchValues<T>>(existing: Readonly<U>) => U;\n\nexport function patch<T>(patchObject: PatchSpec<T>): PatchOperator<T> {\n return function patchStateOperator<U extends PatchValues<T>>(existing: Readonly<U>): U {\n let clone = null;\n for (const k in patchObject) {\n const newValue = patchObject[k];\n const existingPropValue = existing[k];\n const newPropValue = isStateOperator(newValue)\n ? newValue(<any>existingPropValue)\n : newValue;\n if (newPropValue !== existingPropValue) {\n if (!clone) {\n clone = { ...(<any>existing) };\n }\n clone[k] = newPropValue;\n }\n }\n return clone || existing;\n };\n}\n","import { StateOperator } from '@ngxs/store';\n\nimport { isStateOperator, isPredicate, isNumber, invalidIndex, RepairType } from './utils';\nimport { Predicate } from './internals';\n\n/**\n * @param selector - Index of item in the array or a predicate function\n * that can be provided in `Array.prototype.findIndex`\n * @param operatorOrValue - New value under the `selector` index or a\n * function that can be applied to an existing value\n */\nexport function updateItem<T>(\n selector: number | Predicate<T>,\n operatorOrValue: T | StateOperator<T>\n): StateOperator<RepairType<T>[]> {\n return function updateItemOperator(existing: Readonly<RepairType<T>[]>): RepairType<T>[] {\n let index = -1;\n\n if (isPredicate(selector)) {\n index = existing.findIndex(selector);\n } else if (isNumber(selector)) {\n index = selector;\n }\n\n if (invalidIndex(index)) {\n return existing as RepairType<T>[];\n }\n\n let value: T = null!;\n // Need to check if the new item value will change the existing item value\n // then, only if it will change it then clone the array and set the item\n if (isStateOperator(operatorOrValue)) {\n value = operatorOrValue(existing[index] as Readonly<T>);\n } else {\n value = operatorOrValue;\n }\n\n // If the value hasn't been mutated\n // then we just return `existing` array\n if (value === existing[index]) {\n return existing as RepairType<T>[];\n }\n\n const clone = existing.slice();\n clone[index] = value as RepairType<T>;\n return clone;\n };\n}\n","import { StateOperator } from '@ngxs/store';\nimport { Predicate } from './internals';\nimport { isPredicate, isNumber, invalidIndex, RepairType } from './utils';\n\n/**\n * @param selector - index or predicate to remove an item from an array by\n */\nexport function removeItem<T>(\n selector: number | Predicate<T>\n): StateOperator<RepairType<T>[]> {\n return function removeItemOperator(existing: Readonly<RepairType<T>[]>): RepairType<T>[] {\n let index = -1;\n\n if (isPredicate(selector)) {\n index = existing.findIndex(selector);\n } else if (isNumber(selector)) {\n index = selector;\n }\n\n if (invalidIndex(index)) {\n return existing as RepairType<T>[];\n }\n\n const clone = existing.slice();\n clone.splice(index, 1);\n return clone;\n };\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngxs-store-operators.js","sources":["ng://@ngxs/store/operators/append.ts","ng://@ngxs/store/operators/compose.ts","ng://@ngxs/store/operators/utils.ts","ng://@ngxs/store/operators/iif.ts","ng://@ngxs/store/operators/insert-item.ts","ng://@ngxs/store/operators/patch.ts","ng://@ngxs/store/operators/update-item.ts","ng://@ngxs/store/operators/remove-item.ts"],"sourcesContent":["import { StateOperator } from '@ngxs/store';\nimport { RepairType, NoInfer } from './utils';\n\n/**\n * @param items - Specific items to append to the end of an array\n */\nexport function append<T>(items: NoInfer<T>[]): StateOperator<RepairType<T>[]> {\n return function appendOperator(existing: Readonly<RepairType<T>[]>): RepairType<T>[] {\n // If `items` is `undefined` or `null` or `[]` but `existing` is provided\n // just return `existing`\n const itemsNotProvidedButExistingIs = (!items || !items.length) && existing;\n if (itemsNotProvidedButExistingIs) {\n return existing as RepairType<T>[];\n }\n\n if (Array.isArray(existing)) {\n return existing.concat((items as unknown) as RepairType<T>[]);\n }\n\n // For example if some property is added dynamically\n // and didn't exist before thus it's not `ArrayLike`\n return (items as unknown) as RepairType<T>[];\n };\n}\n","import { StateOperator } from '@ngxs/store';\nimport { NoInfer } from './utils';\n\nexport function compose<T>(...operators: NoInfer<StateOperator<T>[]>): StateOperator<T> {\n return function composeOperator(existing: Readonly<T>): T {\n return operators.reduce((accumulator, operator) => operator(accumulator), existing);\n };\n}\n","import { StateOperator } from '@ngxs/store';\n\nimport { Predicate } from './internals';\n\nexport function isStateOperator<T>(value: T | StateOperator<T>): value is StateOperator<T> {\n return typeof value === 'function';\n}\n\nexport function isUndefined(value: any): value is undefined {\n return typeof value === 'undefined';\n}\n\nexport function isPredicate<T>(value: Predicate<T> | boolean | number): value is Predicate<T> {\n return typeof value === 'function';\n}\n\nexport function isNumber(value: any): value is number {\n return typeof value === 'number';\n}\n\nexport function invalidIndex(index: number): boolean {\n return Number.isNaN(index) || index === -1;\n}\n\nexport function isNil<T>(value: T | null | undefined): value is null | undefined {\n return value === null || isUndefined(value);\n}\n\nexport type RepairType<T> = T extends true ? boolean : T extends false ? boolean : T;\n\nexport type NoInfer<T> = T extends infer S ? S : never;\n","import { StateOperator } from '@ngxs/store';\n\nimport { isStateOperator, isUndefined, isPredicate, RepairType, NoInfer } from './utils';\nimport { Predicate } from './internals';\n\nfunction retrieveValue<T>(\n operatorOrValue: StateOperator<T> | T,\n existing?: Readonly<RepairType<T>>\n): RepairType<T> {\n // If state operator is a function\n // then call it with an original value\n if (isStateOperator(operatorOrValue)) {\n const value = operatorOrValue(existing! as Readonly<T>);\n return value as RepairType<T>;\n }\n\n // If operator or value was not provided\n // e.g. `elseOperatorOrValue` is `undefined`\n // then we just return an original value\n if (isUndefined(operatorOrValue)) {\n return (<any>existing)! as RepairType<T>;\n }\n\n return operatorOrValue as RepairType<T>;\n}\n\n/**\n * @param condition - Condition can be a plain boolean value or a function,\n * that returns boolean, also this function can take a value as an argument\n * to which this state operator applies\n * @param trueOperatorOrValue - Any value or a state operator\n * @param elseOperatorOrValue - Any value or a state operator\n */\nexport function iif<T>(\n condition: NoInfer<Predicate<T>> | boolean,\n trueOperatorOrValue: NoInfer<StateOperator<T>> | T,\n elseOperatorOrValue?: NoInfer<StateOperator<T>> | T\n): StateOperator<RepairType<T>> {\n return function iifOperator(existing: Readonly<RepairType<T>>): RepairType<T> {\n // Convert the value to a boolean\n let result = !!condition;\n // but if it is a function then run it to get the result\n if (isPredicate(condition)) {\n result = condition(existing);\n }\n\n if (result) {\n return retrieveValue<T>(trueOperatorOrValue, existing as RepairType<T>);\n }\n\n return retrieveValue<T>(elseOperatorOrValue!, existing as RepairType<T>);\n };\n}\n","import { StateOperator } from '@ngxs/store';\nimport { isNil, RepairType, NoInfer } from './utils';\n\n/**\n * @param value - Value to insert\n * @param [beforePosition] - Specified index to insert value before, optional\n */\nexport function insertItem<T>(\n value: NoInfer<T>,\n beforePosition?: number\n): StateOperator<RepairType<T>[]> {\n return function insertItemOperator(existing: Readonly<RepairType<T>[]>): RepairType<T>[] {\n // Have to check explicitly for `null` and `undefined`\n // because `value` can be `0`, thus `!value` will return `true`\n if (isNil(value) && existing) {\n return existing as RepairType<T>[];\n }\n\n // Property may be dynamic and might not existed before\n if (!Array.isArray(existing)) {\n return [(value as unknown) as RepairType<T>];\n }\n\n const clone = existing.slice();\n\n let index = 0;\n\n // No need to call `isNumber`\n // as we are checking `> 0` not `>= 0`\n // everything except number will return false here\n if (beforePosition! > 0) {\n index = beforePosition!;\n }\n\n clone.splice(index, 0, (value as unknown) as RepairType<T>);\n return clone;\n };\n}\n","import { StateOperator } from '@ngxs/store';\nimport { isStateOperator, NoInfer } from './utils';\n\nexport type PatchSpec<T> = { [P in keyof T]?: T[P] | StateOperator<NonNullable<T[P]>> };\n\ntype PatchValues<T> = {\n readonly [P in keyof T]?: T[P] extends (...args: any[]) => infer R ? R : T[P];\n};\n\nexport function patch<T>(patchObject: NoInfer<PatchSpec<T>>): StateOperator<NonNullable<T>> {\n return (function patchStateOperator(existing: Readonly<PatchValues<T>>): NonNullable<T> {\n let clone = null;\n for (const k in patchObject) {\n const newValue = patchObject[k];\n const existingPropValue = existing[k as Extract<keyof T, string>];\n const newPropValue = isStateOperator(newValue)\n ? newValue(<any>existingPropValue)\n : newValue;\n if (newPropValue !== existingPropValue) {\n if (!clone) {\n clone = { ...(<any>existing) };\n }\n clone[k] = newPropValue;\n }\n }\n return clone || existing;\n } as unknown) as StateOperator<NonNullable<T>>;\n}\n","import { StateOperator } from '@ngxs/store';\n\nimport {\n isStateOperator,\n isPredicate,\n isNumber,\n invalidIndex,\n RepairType,\n NoInfer\n} from './utils';\nimport { Predicate } from './internals';\n\n/**\n * @param selector - Index of item in the array or a predicate function\n * that can be provided in `Array.prototype.findIndex`\n * @param operatorOrValue - New value under the `selector` index or a\n * function that can be applied to an existing value\n */\nexport function updateItem<T>(\n selector: number | NoInfer<Predicate<T>>,\n operatorOrValue: NoInfer<T> | NoInfer<StateOperator<T>>\n): StateOperator<RepairType<T>[]> {\n return function updateItemOperator(existing: Readonly<RepairType<T>[]>): RepairType<T>[] {\n let index = -1;\n\n if (isPredicate(selector)) {\n index = existing.findIndex(selector as Predicate<T>);\n } else if (isNumber(selector)) {\n index = selector;\n }\n\n if (invalidIndex(index)) {\n return existing as RepairType<T>[];\n }\n\n let value: T = null!;\n // Need to check if the new item value will change the existing item value\n // then, only if it will change it then clone the array and set the item\n const theOperatorOrValue = operatorOrValue as T | StateOperator<T>;\n if (isStateOperator(theOperatorOrValue)) {\n value = theOperatorOrValue(existing[index] as Readonly<T>);\n } else {\n value = theOperatorOrValue;\n }\n\n // If the value hasn't been mutated\n // then we just return `existing` array\n if (value === existing[index]) {\n return existing as RepairType<T>[];\n }\n\n const clone = existing.slice();\n clone[index] = value as RepairType<T>;\n return clone;\n };\n}\n","import { StateOperator } from '@ngxs/store';\nimport { Predicate } from './internals';\nimport { isPredicate, isNumber, invalidIndex, RepairType } from './utils';\n\n/**\n * @param selector - index or predicate to remove an item from an array by\n */\nexport function removeItem<T>(\n selector: number | Predicate<T>\n): StateOperator<RepairType<T>[]> {\n return function removeItemOperator(existing: Readonly<RepairType<T>[]>): RepairType<T>[] {\n let index = -1;\n\n if (isPredicate(selector)) {\n index = existing.findIndex(selector);\n } else if (isNumber(selector)) {\n index = selector;\n }\n\n if (invalidIndex(index)) {\n return existing as RepairType<T>[];\n }\n\n const clone = existing.slice();\n clone.splice(index, 1);\n return clone;\n };\n}\n"],"names":[],"mappings":"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"}
|