@sumaris-net/ngx-components 1.15.14 → 1.16.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/bundles/sumaris-net.ngx-components.umd.js +35 -32
- package/bundles/sumaris-net.ngx-components.umd.js.map +1 -1
- package/bundles/sumaris-net.ngx-components.umd.min.js +2 -2
- package/bundles/sumaris-net.ngx-components.umd.min.js.map +1 -1
- package/doc/changelog.md +3 -0
- package/esm2015/src/app/admin/services/person.service.js +5 -9
- package/esm2015/src/app/shared/services/job.utils.js +28 -21
- package/fesm2015/sumaris-net.ngx-components.js +30 -26
- package/fesm2015/sumaris-net.ngx-components.js.map +1 -1
- package/package.json +1 -1
- package/src/app/admin/services/person.service.d.ts +2 -1
- package/src/app/shared/services/job.utils.d.ts +4 -2
- package/sumaris-net.ngx-components.metadata.json +1 -1
package/doc/changelog.md
CHANGED
|
@@ -10,7 +10,6 @@ import { StatusIds } from '../../core/services/model/model.enum';
|
|
|
10
10
|
import { JobUtils } from '../../shared/services/job.utils';
|
|
11
11
|
import { PlatformService } from '../../core/services/platform.service';
|
|
12
12
|
import { PersonFilter } from './filter/person.filter';
|
|
13
|
-
import { isInstanceOf } from '../../core/services/model/entity.model';
|
|
14
13
|
import { BaseEntityService } from '../../core/services/base-entity-service.class';
|
|
15
14
|
import { environment } from '../../../environments/environment';
|
|
16
15
|
import * as i0 from "@angular/core";
|
|
@@ -129,23 +128,20 @@ export class PersonService extends BaseEntityService {
|
|
|
129
128
|
return this.loadAll(0, !value ? 30 : 10, sortBy, sortDirection, Object.assign(Object.assign({}, filter), { searchText: value, statusIds: filter && filter.statusIds || [StatusIds.ENABLE], userProfiles: filter && filter.userProfiles }), { withTotal: true /* need by autocomplete */ });
|
|
130
129
|
});
|
|
131
130
|
}
|
|
132
|
-
executeImport(
|
|
131
|
+
executeImport(filter, opts) {
|
|
133
132
|
const _super = Object.create(null, {
|
|
134
133
|
loadAll: { get: () => super.loadAll }
|
|
135
134
|
});
|
|
136
135
|
return __awaiter(this, void 0, void 0, function* () {
|
|
137
136
|
const maxProgression = opts && opts.maxProgression || 100;
|
|
138
|
-
|
|
139
|
-
statusIds: [StatusIds.ENABLE, StatusIds.TEMPORARY],
|
|
140
|
-
userProfiles: ['SUPERVISOR', 'USER', 'GUEST']
|
|
141
|
-
};
|
|
137
|
+
filter = Object.assign(Object.assign({}, filter), { statusIds: [StatusIds.ENABLE, StatusIds.TEMPORARY], userProfiles: ['SUPERVISOR', 'USER', 'GUEST'] });
|
|
142
138
|
console.info('[person-service] Importing persons...');
|
|
143
139
|
const res = yield JobUtils.fetchAllPages((offset, size) => _super.loadAll.call(this, offset, size, 'id', null, filter, {
|
|
144
140
|
debug: false,
|
|
145
141
|
fetchPolicy: 'network-only',
|
|
146
142
|
withTotal: (offset === 0),
|
|
147
143
|
toEntity: false
|
|
148
|
-
}),
|
|
144
|
+
}), Object.assign(Object.assign({}, opts), { maxProgression: maxProgression * 0.9 }));
|
|
149
145
|
// Save result locally
|
|
150
146
|
yield this.entities.saveAll(res.data, { entityName: 'PersonVO', reset: true });
|
|
151
147
|
});
|
|
@@ -155,7 +151,7 @@ export class PersonService extends BaseEntityService {
|
|
|
155
151
|
if (!source)
|
|
156
152
|
return undefined;
|
|
157
153
|
console.debug('TODO check isInstanceOf');
|
|
158
|
-
if (!
|
|
154
|
+
if (!(source instanceof Person)) {
|
|
159
155
|
source = Person.fromObject(source);
|
|
160
156
|
}
|
|
161
157
|
const target = source.asObject();
|
|
@@ -176,4 +172,4 @@ PersonService.ctorParameters = () => [
|
|
|
176
172
|
{ type: NetworkService },
|
|
177
173
|
{ type: EntitiesStorage }
|
|
178
174
|
];
|
|
179
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc29uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2FkbWluL3NlcnZpY2VzL3BlcnNvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBYyxHQUFHLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUVyRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDbEUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ25FLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxzREFBc0QsQ0FBQztBQUNyRixPQUFPLEVBQUMsTUFBTSxFQUFtQixNQUFNLHdDQUF3QyxDQUFDO0FBQ2hGLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBQzdFLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUUvRCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFFekQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDcEUsT0FBTyxFQUE2QixpQkFBaUIsRUFBQyxNQUFNLCtDQUErQyxDQUFDO0FBQzVHLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7O0FBRTlELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRztJQUM3QixNQUFNLEVBQUUsR0FBRyxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFxQlQ7Q0FDSCxDQUFDO0FBRUYscUJBQXFCO0FBQ3JCLE1BQU0sYUFBYSxHQUFHO0lBQ3BCLE9BQU8s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QyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTFFLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Ozs7WUFuSUYsVUFBVSxTQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQzs7O1lBM0V4QixjQUFjO1lBU2QsZUFBZTtZQVJmLGNBQWM7WUFDZCxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RmV0Y2hQb2xpY3ksIGdxbH0gZnJvbSAnQGFwb2xsby9jbGllbnQvY29yZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0dyYXBocWxTZXJ2aWNlfSBmcm9tICcuLi8uLi9jb3JlL2dyYXBocWwvZ3JhcGhxbC5zZXJ2aWNlJztcbmltcG9ydCB7TmV0d29ya1NlcnZpY2V9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvbmV0d29yay5zZXJ2aWNlJztcbmltcG9ydCB7RW50aXRpZXNTdG9yYWdlfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL3N0b3JhZ2UvZW50aXRpZXMtc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7UGVyc29uLCBVc2VyUHJvZmlsZUxhYmVsfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL21vZGVsL3BlcnNvbi5tb2RlbCc7XG5pbXBvcnQge1JlZmVyZW50aWFsVXRpbHN9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvbW9kZWwvcmVmZXJlbnRpYWwubW9kZWwnO1xuaW1wb3J0IHtTdGF0dXNJZHN9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvbW9kZWwvbW9kZWwuZW51bSc7XG5pbXBvcnQge1NvcnREaXJlY3Rpb259IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuaW1wb3J0IHtKb2JVdGlsc30gZnJvbSAnLi4vLi4vc2hhcmVkL3NlcnZpY2VzL2pvYi51dGlscyc7XG5pbXBvcnQge0xvYWRSZXN1bHQsIFN1Z2dlc3RTZXJ2aWNlfSBmcm9tICcuLi8uLi9zaGFyZWQvc2VydmljZXMvZW50aXR5LXNlcnZpY2UuY2xhc3MnO1xuaW1wb3J0IHtQbGF0Zm9ybVNlcnZpY2V9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvcGxhdGZvcm0uc2VydmljZSc7XG5pbXBvcnQge1BlcnNvbkZpbHRlcn0gZnJvbSAnLi9maWx0ZXIvcGVyc29uLmZpbHRlcic7XG5pbXBvcnQge2lzSW5zdGFuY2VPZn0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9tb2RlbC9lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHtCYXNlRW50aXR5R3JhcGhxbE11dGF0aW9ucywgQmFzZUVudGl0eVNlcnZpY2V9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvYmFzZS1lbnRpdHktc2VydmljZS5jbGFzcyc7XG5pbXBvcnQge2Vudmlyb25tZW50fSBmcm9tICcuLi8uLi8uLi9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQnO1xuXG5leHBvcnQgY29uc3QgUGVyc29uRnJhZ21lbnRzID0ge1xuICBwZXJzb246IGdxbGBmcmFnbWVudCBQZXJzb25GcmFnbWVudCBvbiBQZXJzb25WTyB7XG4gICAgaWRcbiAgICBmaXJzdE5hbWVcbiAgICBsYXN0TmFtZVxuICAgIGVtYWlsXG4gICAgcHVia2V5XG4gICAgYXZhdGFyXG4gICAgc3RhdHVzSWRcbiAgICB1cGRhdGVEYXRlXG4gICAgY3JlYXRpb25EYXRlXG4gICAgcHJvZmlsZXNcbiAgICB1c2VybmFtZVxuICAgIHVzZXJuYW1lRXh0cmFuZXRcbiAgICBkZXBhcnRtZW50IHtcbiAgICAgIGlkXG4gICAgICBsYWJlbFxuICAgICAgbmFtZVxuICAgICAgbG9nb1xuICAgICAgX190eXBlbmFtZVxuICAgIH1cbiAgICBfX3R5cGVuYW1lXG4gIH1gXG59O1xuXG4vLyBMb2FkIHBlcnNvbnMgcXVlcnlcbmNvbnN0IFBlcnNvblF1ZXJpZXMgPSB7XG4gIGxvYWRBbGw6IGdxbGBcbiAgICBxdWVyeSBQZXJzb25zKCRvZmZzZXQ6IEludCwgJHNpemU6IEludCwgJHNvcnRCeTogU3RyaW5nLCAkc29ydERpcmVjdGlvbjogU3RyaW5nLCAkZmlsdGVyOiBQZXJzb25GaWx0ZXJWT0lucHV0KXtcbiAgICAgIGRhdGE6IHBlcnNvbnMoZmlsdGVyOiAkZmlsdGVyLCBvZmZzZXQ6ICRvZmZzZXQsIHNpemU6ICRzaXplLCBzb3J0Qnk6ICRzb3J0QnksIHNvcnREaXJlY3Rpb246ICRzb3J0RGlyZWN0aW9uKXtcbiAgICAgICAgLi4uUGVyc29uRnJhZ21lbnRcbiAgICAgIH1cbiAgICB9XG4gICAgJHtQZXJzb25GcmFnbWVudHMucGVyc29ufWAsXG5cbiAgbG9hZEFsbFdpdGhUb3RhbDogZ3FsYFxuICAgIHF1ZXJ5IFBlcnNvbnNXaXRoVG90YWwoJG9mZnNldDogSW50LCAkc2l6ZTogSW50LCAkc29ydEJ5OiBTdHJpbmcsICRzb3J0RGlyZWN0aW9uOiBTdHJpbmcsICRmaWx0ZXI6IFBlcnNvbkZpbHRlclZPSW5wdXQpe1xuICAgICAgZGF0YTogcGVyc29ucyhmaWx0ZXI6ICRmaWx0ZXIsIG9mZnNldDogJG9mZnNldCwgc2l6ZTogJHNpemUsIHNvcnRCeTogJHNvcnRCeSwgc29ydERpcmVjdGlvbjogJHNvcnREaXJlY3Rpb24pe1xuICAgICAgICAuLi5QZXJzb25GcmFnbWVudFxuICAgICAgfVxuICAgICAgdG90YWw6IHBlcnNvbnNDb3VudChmaWx0ZXI6ICRmaWx0ZXIpXG4gICAgfVxuICAgICR7UGVyc29uRnJhZ21lbnRzLnBlcnNvbn1gXG59O1xuXG5cbmNvbnN0IFBlcnNvbk11dGF0aW9uczogQmFzZUVudGl0eUdyYXBocWxNdXRhdGlvbnMgPSB7XG4gIHNhdmVBbGw6IGdxbGBcbiAgICBtdXRhdGlvbiBzYXZlUGVyc29ucygkZGF0YTpbUGVyc29uVk9JbnB1dF0pe1xuICAgICAgZGF0YTogc2F2ZVBlcnNvbnMocGVyc29uczogJGRhdGEpe1xuICAgICAgICAuLi5QZXJzb25GcmFnbWVudFxuICAgICAgfVxuICAgIH1cbiAgICAke1BlcnNvbkZyYWdtZW50cy5wZXJzb259YCxcbiAgZGVsZXRlQWxsOiBncWxgXG4gICAgbXV0YXRpb24gZGVsZXRlUGVyc29ucygkaWRzOltJbnRdKXtcbiAgICAgIGRlbGV0ZVBlcnNvbnMoaWRzOiAkaWRzKVxuICAgIH1gXG59O1xuXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyBQZXJzb25TZXJ2aWNlIGV4dGVuZHMgQmFzZUVudGl0eVNlcnZpY2U8UGVyc29uLCBQZXJzb25GaWx0ZXI+XG4gIGltcGxlbWVudHMgU3VnZ2VzdFNlcnZpY2U8UGVyc29uLCBQZXJzb25GaWx0ZXI+IHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgZ3JhcGhxbDogR3JhcGhxbFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIHBsYXRmb3JtOiBQbGF0Zm9ybVNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIG5ldHdvcms6IE5ldHdvcmtTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBlbnRpdGllczogRW50aXRpZXNTdG9yYWdlXG4gICkge1xuICAgIHN1cGVyKGdyYXBocWwsIHBsYXRmb3JtLCBQZXJzb24sIFBlcnNvbkZpbHRlciwge1xuICAgICAgcXVlcmllczogUGVyc29uUXVlcmllcyxcbiAgICAgIG11dGF0aW9uczogUGVyc29uTXV0YXRpb25zLFxuICAgICAgZGVmYXVsdFNvcnRCeTogJ2xhc3ROYW1lJyxcbiAgICAgIGRlZmF1bHRTb3J0RGlyZWN0aW9uOiAnYXNjJ1xuICAgIH0pO1xuXG4gICAgLy8gZm9yIERFViBvbmx5IC0tLS0tXG4gICAgdGhpcy5fZGVidWcgPSAhZW52aXJvbm1lbnQucHJvZHVjdGlvbjtcbiAgfVxuXG4gIGFzeW5jIGxvYWRBbGwob2Zmc2V0OiBudW1iZXIsIHNpemU6IG51bWJlciwgc29ydEJ5Pzogc3RyaW5nLFxuICAgICAgICAgICAgICAgIHNvcnREaXJlY3Rpb24/OiBTb3J0RGlyZWN0aW9uLFxuICAgICAgICAgICAgICAgIGZpbHRlcj86IFBhcnRpYWw8UGVyc29uRmlsdGVyPiwgb3B0cz86IHtcbiAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICBmZXRjaFBvbGljeT86IEZldGNoUG9saWN5O1xuICAgICAgICBkZWJ1Zz86IGJvb2xlYW47XG4gICAgICAgIHdpdGhUb3RhbD86IGJvb2xlYW47XG4gICAgICAgIHRvRW50aXR5PzogYm9vbGVhbjtcbiAgICAgIH0pOiBQcm9taXNlPExvYWRSZXN1bHQ8UGVyc29uPj4ge1xuXG4gICAgY29uc3Qgb2ZmbGluZSA9IHRoaXMubmV0d29yay5vZmZsaW5lICYmICghb3B0cyB8fCBvcHRzLmZldGNoUG9saWN5ICE9PSAnbmV0d29yay1vbmx5Jyk7XG4gICAgaWYgKG9mZmxpbmUpIHtcbiAgICAgIHJldHVybiB0aGlzLmxvYWRBbGxMb2NhbGx5KG9mZnNldCwgc2l6ZSwgc29ydEJ5LCBzb3J0RGlyZWN0aW9uLCBmaWx0ZXIsIG9wdHMpO1xuICAgIH1cblxuICAgIHJldHVybiBzdXBlci5sb2FkQWxsKG9mZnNldCwgc2l6ZSwgc29ydEJ5LCBzb3J0RGlyZWN0aW9uLCBmaWx0ZXIsIG9wdHMpO1xuICB9XG5cbiAgYXN5bmMgbG9hZEFsbExvY2FsbHkob2Zmc2V0OiBudW1iZXIsIHNpemU6IG51bWJlciwgc29ydEJ5Pzogc3RyaW5nLCBzb3J0RGlyZWN0aW9uPzogU29ydERpcmVjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyPzogUGFydGlhbDxQZXJzb25GaWx0ZXI+LFxuICAgICAgICAgICAgICAgICAgICAgICBvcHRzPzoge1xuICAgICAgICAgICAgICAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgICAgICAgICAgICAgICAgICBmZXRjaFBvbGljeT86IEZldGNoUG9saWN5O1xuICAgICAgICAgICAgICAgICAgICAgICAgIGRlYnVnPzogYm9vbGVhbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoVG90YWw/OiBib29sZWFuO1xuICAgICAgICAgICAgICAgICAgICAgICAgIHRvRW50aXR5PzogYm9vbGVhbjtcbiAgICAgICAgICAgICAgICAgICAgICAgfSk6IFByb21pc2U8TG9hZFJlc3VsdDxQZXJzb24+PiB7XG5cbiAgICBmaWx0ZXIgPSB0aGlzLmFzRmlsdGVyKGZpbHRlcik7XG5cbiAgICBjb25zdCB2YXJpYWJsZXMgPSB7XG4gICAgICBvZmZzZXQ6IG9mZnNldCB8fCAwLFxuICAgICAgc2l6ZTogc2l6ZSB8fCAxMDAsXG4gICAgICBzb3J0Qnk6IHNvcnRCeSB8fCB0aGlzLmRlZmF1bHRTb3J0QnksXG4gICAgICBzb3J0RGlyZWN0aW9uOiBzb3J0RGlyZWN0aW9uIHx8IHRoaXMuZGVmYXVsdFNvcnREaXJlY3Rpb24sXG4gICAgICBmaWx0ZXI6IGZpbHRlciAmJiBmaWx0ZXIuYXNGaWx0ZXJGbigpXG4gICAgfTtcblxuICAgIGNvbnN0IHtkYXRhLCB0b3RhbH0gPSBhd2FpdCB0aGlzLmVudGl0aWVzLmxvYWRBbGw8UGVyc29uPignUGVyc29uVk8nLCB2YXJpYWJsZXMpO1xuXG4gICAgY29uc3QgZW50aXRpZXMgPSAoIW9wdHMgfHwgb3B0cy50b0VudGl0eSAhPT0gZmFsc2UpID9cbiAgICAgIChkYXRhIHx8IFtdKS5tYXAoUGVyc29uLmZyb21PYmplY3QpIDpcbiAgICAgIChkYXRhIHx8IFtdKSBhcyBQZXJzb25bXTtcbiAgICByZXR1cm4ge1xuICAgICAgZGF0YTogZW50aXRpZXMsXG4gICAgICB0b3RhbFxuICAgIH07XG4gIH1cblxuICBhc3luYyBzdWdnZXN0KHZhbHVlOiBhbnksIGZpbHRlcj86IFBlcnNvbkZpbHRlciwgc29ydEJ5Pzogc3RyaW5nLCBzb3J0RGlyZWN0aW9uPzogU29ydERpcmVjdGlvbik6IFByb21pc2U8TG9hZFJlc3VsdDxQZXJzb24+PiB7XG4gICAgaWYgKFJlZmVyZW50aWFsVXRpbHMuaXNOb3RFbXB0eSh2YWx1ZSkpIHJldHVybiB7ZGF0YTogW3ZhbHVlXX07XG4gICAgdmFsdWUgPSAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiB2YWx1ZSAhPT0gJyonKSAmJiB2YWx1ZSB8fCB1bmRlZmluZWQ7XG4gICAgc29ydEJ5ID0gc29ydEJ5IHx8IGZpbHRlci5zZWFyY2hBdHRyaWJ1dGUgfHwgKGZpbHRlci5zZWFyY2hBdHRyaWJ1dGVzICYmIGZpbHRlci5zZWFyY2hBdHRyaWJ1dGVzWzBdKTtcbiAgICByZXR1cm4gdGhpcy5sb2FkQWxsKDAsICF2YWx1ZSA/IDMwIDogMTAsIHNvcnRCeSwgc29ydERpcmVjdGlvbixcbiAgICAgIHtcbiAgICAgICAgLi4uZmlsdGVyLFxuICAgICAgICBzZWFyY2hUZXh0OiB2YWx1ZSBhcyBzdHJpbmcsXG4gICAgICAgIHN0YXR1c0lkczogZmlsdGVyICYmIGZpbHRlci5zdGF0dXNJZHMgfHwgW1N0YXR1c0lkcy5FTkFCTEVdLFxuICAgICAgICB1c2VyUHJvZmlsZXM6IGZpbHRlciAmJiBmaWx0ZXIudXNlclByb2ZpbGVzXG4gICAgICB9LFxuICAgICAgeyB3aXRoVG90YWw6IHRydWUgLyogbmVlZCBieSBhdXRvY29tcGxldGUgKi8gfVxuICAgICAgKTtcbiAgfVxuXG4gIGFzeW5jIGV4ZWN1dGVJbXBvcnQocHJvZ3Jlc3Npb246IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+LFxuICAgICAgICAgICAgICAgIG9wdHM/OiB7XG4gICAgICAgICAgICAgICAgICBtYXhQcm9ncmVzc2lvbj86IG51bWJlcjtcbiAgICAgICAgICAgICAgICB9KTogUHJvbWlzZTx2b2lkPiB7XG5cbiAgICBjb25zdCBtYXhQcm9ncmVzc2lvbiA9IG9wdHMgJiYgb3B0cy5tYXhQcm9ncmVzc2lvbiB8fCAxMDA7XG4gICAgY29uc3QgZmlsdGVyID0ge1xuICAgICAgc3RhdHVzSWRzOiBbU3RhdHVzSWRzLkVOQUJMRSwgU3RhdHVzSWRzLlRFTVBPUkFSWV0sXG4gICAgICB1c2VyUHJvZmlsZXM6IDxVc2VyUHJvZmlsZUxhYmVsW10+WydTVVBFUlZJU09SJywgJ1VTRVInLCAnR1VFU1QnXVxuICAgIH07XG5cbiAgICBjb25zb2xlLmluZm8oJ1twZXJzb24tc2VydmljZV0gSW1wb3J0aW5nIHBlcnNvbnMuLi4nKTtcblxuICAgIGNvbnN0IHJlcyA9IGF3YWl0IEpvYlV0aWxzLmZldGNoQWxsUGFnZXMoKG9mZnNldCwgc2l6ZSkgPT5cbiAgICAgICAgc3VwZXIubG9hZEFsbChvZmZzZXQsIHNpemUsICdpZCcsIG51bGwsIGZpbHRlciwge1xuICAgICAgICAgIGRlYnVnOiBmYWxzZSxcbiAgICAgICAgICBmZXRjaFBvbGljeTogJ25ldHdvcmstb25seScsXG4gICAgICAgICAgd2l0aFRvdGFsOiAob2Zmc2V0ID09PSAwKSwgLy8gQ29tcHV0ZSB0b3RhbCBvbmx5IG9uY2VcbiAgICAgICAgICB0b0VudGl0eTogZmFsc2VcbiAgICAgICAgfSksXG4gICAgICBwcm9ncmVzc2lvbixcbiAgICAgIHttYXhQcm9ncmVzc2lvbjogbWF4UHJvZ3Jlc3Npb24gKiAwLjl9XG4gICAgKTtcblxuICAgIC8vIFNhdmUgcmVzdWx0IGxvY2FsbHlcbiAgICBhd2FpdCB0aGlzLmVudGl0aWVzLnNhdmVBbGwocmVzLmRhdGEsIHtlbnRpdHlOYW1lOiAnUGVyc29uVk8nLCByZXNldDogdHJ1ZX0pO1xuICB9XG5cbiAgLyogLS0gcHJvdGVjdGVkIG1ldGhvZHMgLS0gKi9cblxuICBwcm90ZWN0ZWQgYXNPYmplY3Qoc291cmNlOiBQZXJzb24gfCBhbnkpOiBhbnkge1xuICAgIGlmICghc291cmNlKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgY29uc29sZS5kZWJ1ZygnVE9ETyBjaGVjayBpc0luc3RhbmNlT2YnKTtcbiAgICBpZiAoIWlzSW5zdGFuY2VPZihzb3VyY2UsIFBlcnNvbikpIHtcbiAgICAgIHNvdXJjZSA9IFBlcnNvbi5mcm9tT2JqZWN0KHNvdXJjZSk7XG4gICAgfVxuICAgIGNvbnN0IHRhcmdldCA9IHNvdXJjZS5hc09iamVjdCgpO1xuXG4gICAgLy8gTm90IGtub3duIGluIHNlcnZlciBHcmFwaFFMIHNjaGVtYVxuICAgIGRlbGV0ZSB0YXJnZXQubWFpblByb2ZpbGU7XG5cbiAgICAvLyBNaW5pZnkgdGhlIGRlcGFydG1lbnQgb2JqZWN0XG4gICAgdGFyZ2V0LmRlcGFydG1lbnQgPSBzb3VyY2UuZGVwYXJ0bWVudCAmJiBzb3VyY2UuZGVwYXJ0bWVudC5hc09iamVjdCh0cnVlKTtcblxuICAgIHJldHVybiB0YXJnZXQ7XG4gIH1cblxufVxuIl19
|
|
175
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc29uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2FkbWluL3NlcnZpY2VzL3BlcnNvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBYyxHQUFHLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUVyRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDbEUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ25FLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxzREFBc0QsQ0FBQztBQUNyRixPQUFPLEVBQUMsTUFBTSxFQUFtQixNQUFNLHdDQUF3QyxDQUFDO0FBQ2hGLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBQzdFLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUUvRCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFFekQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUVwRCxPQUFPLEVBQTZCLGlCQUFpQixFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFDNUcsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7QUFFOUQsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHO0lBQzdCLE1BQU0sRUFBRSxHQUFHLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQXFCVDtDQUNILENBQUM7QUFFRixxQkFBcUI7QUFDckIsTUFBTSxhQUFhLEdBQUc7SUFDcEIsT0FBTyxFQUFFLEdBQUcsQ0FBQTs7Ozs7O01BTVIsZUFBZSxDQUFDLE1BQU0sRUFB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O0lBQ2hCLENBQUM7Ozs7WUFwSUYsVUFBVSxTQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQzs7O1lBM0V4QixjQUFjO1lBU2QsZUFBZTtZQVJmLGNBQWM7WUFDZCxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RmV0Y2hQb2xpY3ksIGdxbH0gZnJvbSAnQGFwb2xsby9jbGllbnQvY29yZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0dyYXBocWxTZXJ2aWNlfSBmcm9tICcuLi8uLi9jb3JlL2dyYXBocWwvZ3JhcGhxbC5zZXJ2aWNlJztcbmltcG9ydCB7TmV0d29ya1NlcnZpY2V9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvbmV0d29yay5zZXJ2aWNlJztcbmltcG9ydCB7RW50aXRpZXNTdG9yYWdlfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL3N0b3JhZ2UvZW50aXRpZXMtc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7UGVyc29uLCBVc2VyUHJvZmlsZUxhYmVsfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL21vZGVsL3BlcnNvbi5tb2RlbCc7XG5pbXBvcnQge1JlZmVyZW50aWFsVXRpbHN9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvbW9kZWwvcmVmZXJlbnRpYWwubW9kZWwnO1xuaW1wb3J0IHtTdGF0dXNJZHN9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvbW9kZWwvbW9kZWwuZW51bSc7XG5pbXBvcnQge1NvcnREaXJlY3Rpb259IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuaW1wb3J0IHtKb2JVdGlsc30gZnJvbSAnLi4vLi4vc2hhcmVkL3NlcnZpY2VzL2pvYi51dGlscyc7XG5pbXBvcnQge0xvYWRSZXN1bHQsIFN1Z2dlc3RTZXJ2aWNlfSBmcm9tICcuLi8uLi9zaGFyZWQvc2VydmljZXMvZW50aXR5LXNlcnZpY2UuY2xhc3MnO1xuaW1wb3J0IHtQbGF0Zm9ybVNlcnZpY2V9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvcGxhdGZvcm0uc2VydmljZSc7XG5pbXBvcnQge1BlcnNvbkZpbHRlcn0gZnJvbSAnLi9maWx0ZXIvcGVyc29uLmZpbHRlcic7XG5pbXBvcnQge2lzSW5zdGFuY2VPZn0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9tb2RlbC9lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHtCYXNlRW50aXR5R3JhcGhxbE11dGF0aW9ucywgQmFzZUVudGl0eVNlcnZpY2V9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvYmFzZS1lbnRpdHktc2VydmljZS5jbGFzcyc7XG5pbXBvcnQge2Vudmlyb25tZW50fSBmcm9tICcuLi8uLi8uLi9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQnO1xuXG5leHBvcnQgY29uc3QgUGVyc29uRnJhZ21lbnRzID0ge1xuICBwZXJzb246IGdxbGBmcmFnbWVudCBQZXJzb25GcmFnbWVudCBvbiBQZXJzb25WTyB7XG4gICAgaWRcbiAgICBmaXJzdE5hbWVcbiAgICBsYXN0TmFtZVxuICAgIGVtYWlsXG4gICAgcHVia2V5XG4gICAgYXZhdGFyXG4gICAgc3RhdHVzSWRcbiAgICB1cGRhdGVEYXRlXG4gICAgY3JlYXRpb25EYXRlXG4gICAgcHJvZmlsZXNcbiAgICB1c2VybmFtZVxuICAgIHVzZXJuYW1lRXh0cmFuZXRcbiAgICBkZXBhcnRtZW50IHtcbiAgICAgIGlkXG4gICAgICBsYWJlbFxuICAgICAgbmFtZVxuICAgICAgbG9nb1xuICAgICAgX190eXBlbmFtZVxuICAgIH1cbiAgICBfX3R5cGVuYW1lXG4gIH1gXG59O1xuXG4vLyBMb2FkIHBlcnNvbnMgcXVlcnlcbmNvbnN0IFBlcnNvblF1ZXJpZXMgPSB7XG4gIGxvYWRBbGw6IGdxbGBcbiAgICBxdWVyeSBQZXJzb25zKCRvZmZzZXQ6IEludCwgJHNpemU6IEludCwgJHNvcnRCeTogU3RyaW5nLCAkc29ydERpcmVjdGlvbjogU3RyaW5nLCAkZmlsdGVyOiBQZXJzb25GaWx0ZXJWT0lucHV0KXtcbiAgICAgIGRhdGE6IHBlcnNvbnMoZmlsdGVyOiAkZmlsdGVyLCBvZmZzZXQ6ICRvZmZzZXQsIHNpemU6ICRzaXplLCBzb3J0Qnk6ICRzb3J0QnksIHNvcnREaXJlY3Rpb246ICRzb3J0RGlyZWN0aW9uKXtcbiAgICAgICAgLi4uUGVyc29uRnJhZ21lbnRcbiAgICAgIH1cbiAgICB9XG4gICAgJHtQZXJzb25GcmFnbWVudHMucGVyc29ufWAsXG5cbiAgbG9hZEFsbFdpdGhUb3RhbDogZ3FsYFxuICAgIHF1ZXJ5IFBlcnNvbnNXaXRoVG90YWwoJG9mZnNldDogSW50LCAkc2l6ZTogSW50LCAkc29ydEJ5OiBTdHJpbmcsICRzb3J0RGlyZWN0aW9uOiBTdHJpbmcsICRmaWx0ZXI6IFBlcnNvbkZpbHRlclZPSW5wdXQpe1xuICAgICAgZGF0YTogcGVyc29ucyhmaWx0ZXI6ICRmaWx0ZXIsIG9mZnNldDogJG9mZnNldCwgc2l6ZTogJHNpemUsIHNvcnRCeTogJHNvcnRCeSwgc29ydERpcmVjdGlvbjogJHNvcnREaXJlY3Rpb24pe1xuICAgICAgICAuLi5QZXJzb25GcmFnbWVudFxuICAgICAgfVxuICAgICAgdG90YWw6IHBlcnNvbnNDb3VudChmaWx0ZXI6ICRmaWx0ZXIpXG4gICAgfVxuICAgICR7UGVyc29uRnJhZ21lbnRzLnBlcnNvbn1gXG59O1xuXG5cbmNvbnN0IFBlcnNvbk11dGF0aW9uczogQmFzZUVudGl0eUdyYXBocWxNdXRhdGlvbnMgPSB7XG4gIHNhdmVBbGw6IGdxbGBcbiAgICBtdXRhdGlvbiBzYXZlUGVyc29ucygkZGF0YTpbUGVyc29uVk9JbnB1dF0pe1xuICAgICAgZGF0YTogc2F2ZVBlcnNvbnMocGVyc29uczogJGRhdGEpe1xuICAgICAgICAuLi5QZXJzb25GcmFnbWVudFxuICAgICAgfVxuICAgIH1cbiAgICAke1BlcnNvbkZyYWdtZW50cy5wZXJzb259YCxcbiAgZGVsZXRlQWxsOiBncWxgXG4gICAgbXV0YXRpb24gZGVsZXRlUGVyc29ucygkaWRzOltJbnRdKXtcbiAgICAgIGRlbGV0ZVBlcnNvbnMoaWRzOiAkaWRzKVxuICAgIH1gXG59O1xuXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyBQZXJzb25TZXJ2aWNlIGV4dGVuZHMgQmFzZUVudGl0eVNlcnZpY2U8UGVyc29uLCBQZXJzb25GaWx0ZXI+XG4gIGltcGxlbWVudHMgU3VnZ2VzdFNlcnZpY2U8UGVyc29uLCBQZXJzb25GaWx0ZXI+IHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgZ3JhcGhxbDogR3JhcGhxbFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIHBsYXRmb3JtOiBQbGF0Zm9ybVNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIG5ldHdvcms6IE5ldHdvcmtTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBlbnRpdGllczogRW50aXRpZXNTdG9yYWdlXG4gICkge1xuICAgIHN1cGVyKGdyYXBocWwsIHBsYXRmb3JtLCBQZXJzb24sIFBlcnNvbkZpbHRlciwge1xuICAgICAgcXVlcmllczogUGVyc29uUXVlcmllcyxcbiAgICAgIG11dGF0aW9uczogUGVyc29uTXV0YXRpb25zLFxuICAgICAgZGVmYXVsdFNvcnRCeTogJ2xhc3ROYW1lJyxcbiAgICAgIGRlZmF1bHRTb3J0RGlyZWN0aW9uOiAnYXNjJ1xuICAgIH0pO1xuXG4gICAgLy8gZm9yIERFViBvbmx5IC0tLS0tXG4gICAgdGhpcy5fZGVidWcgPSAhZW52aXJvbm1lbnQucHJvZHVjdGlvbjtcbiAgfVxuXG4gIGFzeW5jIGxvYWRBbGwob2Zmc2V0OiBudW1iZXIsIHNpemU6IG51bWJlciwgc29ydEJ5Pzogc3RyaW5nLFxuICAgICAgICAgICAgICAgIHNvcnREaXJlY3Rpb24/OiBTb3J0RGlyZWN0aW9uLFxuICAgICAgICAgICAgICAgIGZpbHRlcj86IFBhcnRpYWw8UGVyc29uRmlsdGVyPiwgb3B0cz86IHtcbiAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICBmZXRjaFBvbGljeT86IEZldGNoUG9saWN5O1xuICAgICAgICBkZWJ1Zz86IGJvb2xlYW47XG4gICAgICAgIHdpdGhUb3RhbD86IGJvb2xlYW47XG4gICAgICAgIHRvRW50aXR5PzogYm9vbGVhbjtcbiAgICAgIH0pOiBQcm9taXNlPExvYWRSZXN1bHQ8UGVyc29uPj4ge1xuXG4gICAgY29uc3Qgb2ZmbGluZSA9IHRoaXMubmV0d29yay5vZmZsaW5lICYmICghb3B0cyB8fCBvcHRzLmZldGNoUG9saWN5ICE9PSAnbmV0d29yay1vbmx5Jyk7XG4gICAgaWYgKG9mZmxpbmUpIHtcbiAgICAgIHJldHVybiB0aGlzLmxvYWRBbGxMb2NhbGx5KG9mZnNldCwgc2l6ZSwgc29ydEJ5LCBzb3J0RGlyZWN0aW9uLCBmaWx0ZXIsIG9wdHMpO1xuICAgIH1cblxuICAgIHJldHVybiBzdXBlci5sb2FkQWxsKG9mZnNldCwgc2l6ZSwgc29ydEJ5LCBzb3J0RGlyZWN0aW9uLCBmaWx0ZXIsIG9wdHMpO1xuICB9XG5cbiAgYXN5bmMgbG9hZEFsbExvY2FsbHkob2Zmc2V0OiBudW1iZXIsIHNpemU6IG51bWJlciwgc29ydEJ5Pzogc3RyaW5nLCBzb3J0RGlyZWN0aW9uPzogU29ydERpcmVjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyPzogUGFydGlhbDxQZXJzb25GaWx0ZXI+LFxuICAgICAgICAgICAgICAgICAgICAgICBvcHRzPzoge1xuICAgICAgICAgICAgICAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgICAgICAgICAgICAgICAgICBmZXRjaFBvbGljeT86IEZldGNoUG9saWN5O1xuICAgICAgICAgICAgICAgICAgICAgICAgIGRlYnVnPzogYm9vbGVhbjtcbiAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoVG90YWw/OiBib29sZWFuO1xuICAgICAgICAgICAgICAgICAgICAgICAgIHRvRW50aXR5PzogYm9vbGVhbjtcbiAgICAgICAgICAgICAgICAgICAgICAgfSk6IFByb21pc2U8TG9hZFJlc3VsdDxQZXJzb24+PiB7XG5cbiAgICBmaWx0ZXIgPSB0aGlzLmFzRmlsdGVyKGZpbHRlcik7XG5cbiAgICBjb25zdCB2YXJpYWJsZXMgPSB7XG4gICAgICBvZmZzZXQ6IG9mZnNldCB8fCAwLFxuICAgICAgc2l6ZTogc2l6ZSB8fCAxMDAsXG4gICAgICBzb3J0Qnk6IHNvcnRCeSB8fCB0aGlzLmRlZmF1bHRTb3J0QnksXG4gICAgICBzb3J0RGlyZWN0aW9uOiBzb3J0RGlyZWN0aW9uIHx8IHRoaXMuZGVmYXVsdFNvcnREaXJlY3Rpb24sXG4gICAgICBmaWx0ZXI6IGZpbHRlciAmJiBmaWx0ZXIuYXNGaWx0ZXJGbigpXG4gICAgfTtcblxuICAgIGNvbnN0IHtkYXRhLCB0b3RhbH0gPSBhd2FpdCB0aGlzLmVudGl0aWVzLmxvYWRBbGw8UGVyc29uPignUGVyc29uVk8nLCB2YXJpYWJsZXMpO1xuXG4gICAgY29uc3QgZW50aXRpZXMgPSAoIW9wdHMgfHwgb3B0cy50b0VudGl0eSAhPT0gZmFsc2UpID9cbiAgICAgIChkYXRhIHx8IFtdKS5tYXAoUGVyc29uLmZyb21PYmplY3QpIDpcbiAgICAgIChkYXRhIHx8IFtdKSBhcyBQZXJzb25bXTtcbiAgICByZXR1cm4ge1xuICAgICAgZGF0YTogZW50aXRpZXMsXG4gICAgICB0b3RhbFxuICAgIH07XG4gIH1cblxuICBhc3luYyBzdWdnZXN0KHZhbHVlOiBhbnksIGZpbHRlcj86IFBlcnNvbkZpbHRlciwgc29ydEJ5Pzogc3RyaW5nLCBzb3J0RGlyZWN0aW9uPzogU29ydERpcmVjdGlvbik6IFByb21pc2U8TG9hZFJlc3VsdDxQZXJzb24+PiB7XG4gICAgaWYgKFJlZmVyZW50aWFsVXRpbHMuaXNOb3RFbXB0eSh2YWx1ZSkpIHJldHVybiB7ZGF0YTogW3ZhbHVlXX07XG4gICAgdmFsdWUgPSAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiB2YWx1ZSAhPT0gJyonKSAmJiB2YWx1ZSB8fCB1bmRlZmluZWQ7XG4gICAgc29ydEJ5ID0gc29ydEJ5IHx8IGZpbHRlci5zZWFyY2hBdHRyaWJ1dGUgfHwgKGZpbHRlci5zZWFyY2hBdHRyaWJ1dGVzICYmIGZpbHRlci5zZWFyY2hBdHRyaWJ1dGVzWzBdKTtcbiAgICByZXR1cm4gdGhpcy5sb2FkQWxsKDAsICF2YWx1ZSA/IDMwIDogMTAsIHNvcnRCeSwgc29ydERpcmVjdGlvbixcbiAgICAgIHtcbiAgICAgICAgLi4uZmlsdGVyLFxuICAgICAgICBzZWFyY2hUZXh0OiB2YWx1ZSBhcyBzdHJpbmcsXG4gICAgICAgIHN0YXR1c0lkczogZmlsdGVyICYmIGZpbHRlci5zdGF0dXNJZHMgfHwgW1N0YXR1c0lkcy5FTkFCTEVdLFxuICAgICAgICB1c2VyUHJvZmlsZXM6IGZpbHRlciAmJiBmaWx0ZXIudXNlclByb2ZpbGVzXG4gICAgICB9LFxuICAgICAgeyB3aXRoVG90YWw6IHRydWUgLyogbmVlZCBieSBhdXRvY29tcGxldGUgKi8gfVxuICAgICAgKTtcbiAgfVxuXG4gIGFzeW5jIGV4ZWN1dGVJbXBvcnQoZmlsdGVyOiBQYXJ0aWFsPFBlcnNvbkZpbHRlcj4sXG4gICAgICAgICAgICAgICAgICAgICAgb3B0czoge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWF4UHJvZ3Jlc3Npb24/OiBudW1iZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9ncmVzc2lvbj86IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+O1xuICAgICAgICAgICAgICAgICAgICAgIH0pOiBQcm9taXNlPHZvaWQ+IHtcblxuICAgIGNvbnN0IG1heFByb2dyZXNzaW9uID0gb3B0cyAmJiBvcHRzLm1heFByb2dyZXNzaW9uIHx8IDEwMDtcbiAgICBmaWx0ZXIgPSB7XG4gICAgICAuLi5maWx0ZXIsXG4gICAgICBzdGF0dXNJZHM6IFtTdGF0dXNJZHMuRU5BQkxFLCBTdGF0dXNJZHMuVEVNUE9SQVJZXSxcbiAgICAgIHVzZXJQcm9maWxlczogPFVzZXJQcm9maWxlTGFiZWxbXT5bJ1NVUEVSVklTT1InLCAnVVNFUicsICdHVUVTVCddXG4gICAgfTtcblxuICAgIGNvbnNvbGUuaW5mbygnW3BlcnNvbi1zZXJ2aWNlXSBJbXBvcnRpbmcgcGVyc29ucy4uLicpO1xuXG4gICAgY29uc3QgcmVzID0gYXdhaXQgSm9iVXRpbHMuZmV0Y2hBbGxQYWdlcygob2Zmc2V0LCBzaXplKSA9PlxuICAgICAgICBzdXBlci5sb2FkQWxsKG9mZnNldCwgc2l6ZSwgJ2lkJywgbnVsbCwgZmlsdGVyLCB7XG4gICAgICAgICAgZGVidWc6IGZhbHNlLFxuICAgICAgICAgIGZldGNoUG9saWN5OiAnbmV0d29yay1vbmx5JyxcbiAgICAgICAgICB3aXRoVG90YWw6IChvZmZzZXQgPT09IDApLCAvLyBDb21wdXRlIHRvdGFsIG9ubHkgb25jZVxuICAgICAgICAgIHRvRW50aXR5OiBmYWxzZVxuICAgICAgICB9KSxcbiAgICAgIHsuLi5vcHRzLCBtYXhQcm9ncmVzc2lvbjogbWF4UHJvZ3Jlc3Npb24gKiAwLjl9XG4gICAgKTtcblxuICAgIC8vIFNhdmUgcmVzdWx0IGxvY2FsbHlcbiAgICBhd2FpdCB0aGlzLmVudGl0aWVzLnNhdmVBbGwocmVzLmRhdGEsIHtlbnRpdHlOYW1lOiAnUGVyc29uVk8nLCByZXNldDogdHJ1ZX0pO1xuICB9XG5cbiAgLyogLS0gcHJvdGVjdGVkIG1ldGhvZHMgLS0gKi9cblxuICBwcm90ZWN0ZWQgYXNPYmplY3Qoc291cmNlOiBQZXJzb24gfCBhbnkpOiBhbnkge1xuICAgIGlmICghc291cmNlKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgY29uc29sZS5kZWJ1ZygnVE9ETyBjaGVjayBpc0luc3RhbmNlT2YnKTtcbiAgICBpZiAoIShzb3VyY2UgaW5zdGFuY2VvZiBQZXJzb24pKSB7XG4gICAgICBzb3VyY2UgPSBQZXJzb24uZnJvbU9iamVjdChzb3VyY2UpO1xuICAgIH1cbiAgICBjb25zdCB0YXJnZXQgPSBzb3VyY2UuYXNPYmplY3QoKTtcblxuICAgIC8vIE5vdCBrbm93biBpbiBzZXJ2ZXIgR3JhcGhRTCBzY2hlbWFcbiAgICBkZWxldGUgdGFyZ2V0Lm1haW5Qcm9maWxlO1xuXG4gICAgLy8gTWluaWZ5IHRoZSBkZXBhcnRtZW50IG9iamVjdFxuICAgIHRhcmdldC5kZXBhcnRtZW50ID0gc291cmNlLmRlcGFydG1lbnQgJiYgc291cmNlLmRlcGFydG1lbnQuYXNPYmplY3QodHJ1ZSk7XG5cbiAgICByZXR1cm4gdGFyZ2V0O1xuICB9XG5cbn1cbiJdfQ==
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { __awaiter } from "tslib";
|
|
2
2
|
import { BehaviorSubject, defer } from 'rxjs';
|
|
3
|
-
import { isNil, isNotNil } from '../functions';
|
|
3
|
+
import { isNil, isNotNil, toNumber } from '../functions';
|
|
4
4
|
// @dynamic
|
|
5
5
|
export class JobUtils {
|
|
6
6
|
static defers(runnableList, opts) {
|
|
@@ -11,22 +11,24 @@ export class JobUtils {
|
|
|
11
11
|
}
|
|
12
12
|
static run(runnable, opts) {
|
|
13
13
|
const progression = new BehaviorSubject(0);
|
|
14
|
-
runnable(
|
|
14
|
+
runnable(Object.assign(Object.assign({}, opts), { progression }))
|
|
15
15
|
.then(() => {
|
|
16
|
-
if (opts
|
|
16
|
+
if (opts === null || opts === void 0 ? void 0 : opts.maxProgression)
|
|
17
17
|
progression.next(opts.maxProgression);
|
|
18
|
-
progression
|
|
18
|
+
if (opts === null || opts === void 0 ? void 0 : opts.progression)
|
|
19
|
+
opts.progression.complete();
|
|
19
20
|
})
|
|
20
21
|
.catch(err => progression.error(err));
|
|
21
22
|
return progression;
|
|
22
23
|
}
|
|
23
|
-
static fetchAllPages(loadPageFn,
|
|
24
|
+
static fetchAllPages(loadPageFn, opts) {
|
|
25
|
+
var _a;
|
|
24
26
|
return __awaiter(this, void 0, void 0, function* () {
|
|
25
27
|
const maxProgression = opts && opts.maxProgression || undefined;
|
|
26
28
|
let total;
|
|
27
|
-
let
|
|
29
|
+
let pageCount;
|
|
28
30
|
let progressionStep;
|
|
29
|
-
let
|
|
31
|
+
let currentPageDataCount;
|
|
30
32
|
const fetchSize = opts && opts.fetchSize || 1000;
|
|
31
33
|
let offset = 0;
|
|
32
34
|
let data = [];
|
|
@@ -36,37 +38,42 @@ export class JobUtils {
|
|
|
36
38
|
// Get some items, using paging
|
|
37
39
|
const res = yield loadPageFn(offset, fetchSize);
|
|
38
40
|
data = data.concat(res.data);
|
|
39
|
-
|
|
40
|
-
offset +=
|
|
41
|
+
currentPageDataCount = res.data && res.data.length || 0;
|
|
42
|
+
offset += currentPageDataCount;
|
|
41
43
|
// Set total count (only if not already set)
|
|
42
44
|
if (isNil(total) && isNotNil(res.total)) {
|
|
43
45
|
total = res.total;
|
|
44
|
-
|
|
45
|
-
|
|
46
|
+
// Compute the number of page
|
|
47
|
+
pageCount = Math.round(res.total / fetchSize + 0.5); // Round to HALF_UP integer
|
|
48
|
+
// Compute step, by dividing maxProgression by number of page
|
|
49
|
+
const actualProgression = Math.max(0, toNumber(opts && ((_a = opts.progression) === null || _a === void 0 ? void 0 : _a.value), 0));
|
|
50
|
+
progressionStep = maxProgression
|
|
51
|
+
? (maxProgression - actualProgression) / pageCount
|
|
52
|
+
: undefined /*if 0 reset to undefined*/;
|
|
46
53
|
}
|
|
47
54
|
// Increment progression on each iteration (if possible)
|
|
48
|
-
if (isNotNil(progressionStep)) {
|
|
49
|
-
progression.next(progression.
|
|
55
|
+
if (opts && opts.progression && isNotNil(progressionStep)) {
|
|
56
|
+
opts.progression.next(opts.progression.value + progressionStep);
|
|
50
57
|
}
|
|
51
58
|
if (opts && opts.onPageLoaded)
|
|
52
59
|
opts.onPageLoaded(res);
|
|
53
|
-
} while (
|
|
60
|
+
} while (currentPageDataCount > 0 && ((isNil(total) && currentPageDataCount === fetchSize) || (isNotNil(total) && (offset < total))));
|
|
54
61
|
// Complete progression to reach progressionStep value (because of round)
|
|
55
62
|
if (isNotNil(progressionStep)) {
|
|
56
63
|
// If total return by loadAll was bad !
|
|
57
64
|
if (isNotNil(total) && data.length < total) {
|
|
58
65
|
console.warn(`A function loadAll() returned a bad total (less than all page's data)! Expected ${total} but fetch ${data.length}`);
|
|
59
66
|
total = data.length;
|
|
60
|
-
|
|
67
|
+
pageCount = Math.round(data.length / fetchSize + 0.5);
|
|
61
68
|
}
|
|
62
|
-
const lastProgressionStep = opts.maxProgression - (progressionStep *
|
|
63
|
-
if (lastProgressionStep > 0) {
|
|
64
|
-
progression.next(progression.
|
|
69
|
+
const lastProgressionStep = opts.maxProgression - (progressionStep * pageCount);
|
|
70
|
+
if (opts && opts.progression && lastProgressionStep > 0) {
|
|
71
|
+
opts.progression.next(opts.progression.value + lastProgressionStep);
|
|
65
72
|
}
|
|
66
73
|
}
|
|
67
74
|
// Or increment once
|
|
68
|
-
else if (opts.maxProgression) {
|
|
69
|
-
progression.next(progression.
|
|
75
|
+
else if (opts && opts.progression && opts.maxProgression) {
|
|
76
|
+
opts.progression.next(opts.progression.value + opts.maxProgression);
|
|
70
77
|
}
|
|
71
78
|
return {
|
|
72
79
|
data,
|
|
@@ -75,4 +82,4 @@ export class JobUtils {
|
|
|
75
82
|
});
|
|
76
83
|
}
|
|
77
84
|
}
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9iLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvc2VydmljZXMvam9iLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsZUFBZSxFQUFFLEtBQUssRUFBc0IsTUFBTSxNQUFNLENBQUM7QUFDakUsT0FBTyxFQUFDLEtBQUssRUFBRSxRQUFRLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFTN0MsV0FBVztBQUNYLE1BQU0sT0FBTyxRQUFRO0lBRW5CLE1BQU0sQ0FBQyxNQUFNLENBQTJDLFlBQTRDLEVBQUUsSUFBUTtRQUM1RyxPQUFPLFlBQVksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUEyQyxRQUFzQyxFQUFFLElBQVE7UUFDckcsT0FBTyxLQUFLLENBQXFCLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFHLENBQTJDLFFBQXNDLEVBQUUsSUFBTztRQUVsRyxNQUFNLFdBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBUyxDQUFDLENBQUMsQ0FBQztRQUNuRCxRQUFRLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQzthQUN4QixJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1QsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLGNBQWM7Z0JBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDdkUsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3pCLENBQUMsQ0FBQzthQUNELEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLFdBQVcs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YyxHQUFHLENBQUMsZUFBZSxHQUFHLFNBQVMsQ0FBQyxDQUFDO2dCQUNoRixJQUFJLG1CQUFtQixHQUFHLENBQUMsRUFBRTtvQkFDM0IsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLEdBQUcsbUJBQW1CLENBQUMsQ0FBQztpQkFDaEU7YUFDRjtZQUNELG9CQUFvQjtpQkFDZixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7Z0JBQzVCLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQzthQUNoRTtZQUVELE9BQU87Z0JBQ0wsSUFBSTtnQkFDSixLQUFLO2FBQ04sQ0FBQztRQUNKLENBQUM7S0FBQTtDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGRlZmVyLCBPYnNlcnZhYmxlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7aXNOaWwsIGlzTm90TmlsfSBmcm9tICcuLi9mdW5jdGlvbnMnO1xuaW1wb3J0IHtMb2FkUmVzdWx0LCBMb2FkUmVzdWx0QnlQYWdlRm59IGZyb20gJy4vZW50aXR5LXNlcnZpY2UuY2xhc3MnO1xuXG5leHBvcnQgdHlwZSBDYWxsYWJsZVdpdGhQcm9ncmVzc2lvbkZuPE8gZXh0ZW5kcyBDYWxsYWJsZVdpdGhQcm9ncmVzc2lvbk9wdGlvbnM+ID0gKHByb2dyZXNzaW9uOiBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPiwgb3B0cz86IE8pID0+IFByb21pc2U8dm9pZD47XG5leHBvcnQgaW50ZXJmYWNlIENhbGxhYmxlV2l0aFByb2dyZXNzaW9uT3B0aW9ucyB7XG4gIG1heFByb2dyZXNzaW9uPzogbnVtYmVyO1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbi8vIEBkeW5hbWljXG5leHBvcnQgY2xhc3MgSm9iVXRpbHMge1xuXG4gIHN0YXRpYyBkZWZlcnM8TyBleHRlbmRzIENhbGxhYmxlV2l0aFByb2dyZXNzaW9uT3B0aW9ucz4ocnVubmFibGVMaXN0OiBDYWxsYWJsZVdpdGhQcm9ncmVzc2lvbkZuPE8+W10sIG9wdHM/OiBPKTogT2JzZXJ2YWJsZTxudW1iZXI+W10ge1xuICAgIHJldHVybiBydW5uYWJsZUxpc3QubWFwKHJ1bm5hYmxlID0+IEpvYlV0aWxzLmRlZmVyKHJ1bm5hYmxlLCBvcHRzKSk7XG4gIH1cblxuICBzdGF0aWMgZGVmZXI8TyBleHRlbmRzIENhbGxhYmxlV2l0aFByb2dyZXNzaW9uT3B0aW9ucz4ocnVubmFibGU6IENhbGxhYmxlV2l0aFByb2dyZXNzaW9uRm48Tz4sIG9wdHM/OiBPKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICByZXR1cm4gZGVmZXI8T2JzZXJ2YWJsZTxudW1iZXI+PigoKSA9PiBKb2JVdGlscy5ydW4ocnVubmFibGUsIG9wdHMpKTtcbiAgfVxuXG4gIHN0YXRpYyBydW48TyBleHRlbmRzIENhbGxhYmxlV2l0aFByb2dyZXNzaW9uT3B0aW9ucz4ocnVubmFibGU6IENhbGxhYmxlV2l0aFByb2dyZXNzaW9uRm48Tz4sIG9wdHM6IE8pOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuXG4gICAgY29uc3QgcHJvZ3Jlc3Npb24gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMCk7XG4gICAgcnVubmFibGUocHJvZ3Jlc3Npb24sIG9wdHMpXG4gICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgIGlmIChvcHRzICYmIG9wdHMubWF4UHJvZ3Jlc3Npb24pIHByb2dyZXNzaW9uLm5leHQob3B0cy5tYXhQcm9ncmVzc2lvbik7XG4gICAgICAgIHByb2dyZXNzaW9uLmNvbXBsZXRlKCk7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKGVyciA9PiBwcm9ncmVzc2lvbi5lcnJvcihlcnIpKTtcbiAgICByZXR1cm4gcHJvZ3Jlc3Npb247XG4gIH1cblxuICBzdGF0aWMgYXN5bmMgZmV0Y2hBbGxQYWdlczxUPihcbiAgICBsb2FkUGFnZUZuOiBMb2FkUmVzdWx0QnlQYWdlRm48VD4sXG4gICAgcHJvZ3Jlc3Npb246IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+LFxuICAgIG9wdHM/OiB7XG4gICAgICBtYXhQcm9ncmVzc2lvbj86IG51bWJlcjtcbiAgICAgIG9uUGFnZUxvYWRlZD86IChwYWdlUmVzdWx0OiBMb2FkUmVzdWx0PFQ+KSA9PiBhbnk7XG4gICAgICBsb2dQcmVmaXg/OiBzdHJpbmc7XG4gICAgICBmZXRjaFNpemU/OiBudW1iZXI7XG4gICAgfSk6IFByb21pc2U8TG9hZFJlc3VsdDxUPj4ge1xuXG4gICAgY29uc3QgbWF4UHJvZ3Jlc3Npb24gPSBvcHRzICYmIG9wdHMubWF4UHJvZ3Jlc3Npb24gfHwgdW5kZWZpbmVkO1xuICAgIGxldCB0b3RhbDsgbGV0IGxvb3BDb3VudDsgbGV0IHByb2dyZXNzaW9uU3RlcDsgbGV0IGxvb3BEYXRhQ291bnQ6IG51bWJlcjtcbiAgICBjb25zdCBmZXRjaFNpemUgPSBvcHRzICYmIG9wdHMuZmV0Y2hTaXplIHx8IDEwMDA7XG4gICAgbGV0IG9mZnNldCA9IDA7XG4gICAgbGV0IGRhdGE6IFRbXSA9IFtdO1xuICAgIGRvIHtcblxuICAgICAgaWYgKG9wdHMgJiYgb3B0cy5sb2dQcmVmaXgpIGNvbnNvbGUuZGVidWcoYCR7b3B0cy5sb2dQcmVmaXh9IEZldGNoaW5nIHBhZ2UgIyR7b2Zmc2V0IC8gZmV0Y2hTaXplfS4uLmApO1xuXG4gICAgICAvLyBHZXQgc29tZSBpdGVtcywgdXNpbmcgcGFnaW5nXG4gICAgICBjb25zdCByZXMgPSBhd2FpdCBsb2FkUGFnZUZuKG9mZnNldCwgZmV0Y2hTaXplKTtcbiAgICAgIGRhdGEgPSBkYXRhLmNvbmNhdChyZXMuZGF0YSk7XG4gICAgICBsb29wRGF0YUNvdW50ID0gcmVzLmRhdGEgJiYgcmVzLmRhdGEubGVuZ3RoIHx8IDA7XG4gICAgICBvZmZzZXQgKz0gbG9vcERhdGFDb3VudDtcblxuICAgICAgLy8gU2V0IHRvdGFsIGNvdW50IChvbmx5IGlmIG5vdCBhbHJlYWR5IHNldClcbiAgICAgIGlmIChpc05pbCh0b3RhbCkgJiYgaXNOb3ROaWwocmVzLnRvdGFsKSkge1xuICAgICAgICB0b3RhbCA9IHJlcy50b3RhbDtcbiAgICAgICAgbG9vcENvdW50ID0gTWF0aC5yb3VuZChyZXMudG90YWwgLyBmZXRjaFNpemUgKyAwLjUpOyAvLyBSb3VuZCB0byBuZXh0IGludGVnZXJcbiAgICAgICAgcHJvZ3Jlc3Npb25TdGVwID0gbWF4UHJvZ3Jlc3Npb24gPyBtYXhQcm9ncmVzc2lvbiAvIGxvb3BDb3VudCA6IHVuZGVmaW5lZCAvKmlmIDAgcmVzZXQgdG8gdW5kZWZpbmVkKi87XG4gICAgICB9XG5cbiAgICAgIC8vIEluY3JlbWVudCBwcm9ncmVzc2lvbiBvbiBlYWNoIGl0ZXJhdGlvbiAoaWYgcG9zc2libGUpXG4gICAgICBpZiAoaXNOb3ROaWwocHJvZ3Jlc3Npb25TdGVwKSkge1xuICAgICAgICBwcm9ncmVzc2lvbi5uZXh0KHByb2dyZXNzaW9uLmdldFZhbHVlKCkgKyBwcm9ncmVzc2lvblN0ZXApO1xuICAgICAgfVxuXG4gICAgICBpZiAob3B0cyAmJiBvcHRzLm9uUGFnZUxvYWRlZCkgb3B0cy5vblBhZ2VMb2FkZWQocmVzKTtcblxuICAgIH0gd2hpbGUgKGxvb3BEYXRhQ291bnQgPiAwICYmICgoaXNOaWwodG90YWwpICYmIGxvb3BEYXRhQ291bnQgPT09IGZldGNoU2l6ZSkgfHwgKGlzTm90TmlsKHRvdGFsKSAmJiAob2Zmc2V0IDwgdG90YWwpKSkpO1xuXG4gICAgLy8gQ29tcGxldGUgcHJvZ3Jlc3Npb24gdG8gcmVhY2ggcHJvZ3Jlc3Npb25TdGVwIHZhbHVlIChiZWNhdXNlIG9mIHJvdW5kKVxuICAgIGlmIChpc05vdE5pbChwcm9ncmVzc2lvblN0ZXApKSB7XG5cbiAgICAgIC8vIElmIHRvdGFsIHJldHVybiBieSBsb2FkQWxsIHdhcyBiYWQgIVxuICAgICAgaWYgKGlzTm90TmlsKHRvdGFsKSAmJiBkYXRhLmxlbmd0aCA8IHRvdGFsKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihgQSBmdW5jdGlvbiBsb2FkQWxsKCkgcmV0dXJuZWQgYSBiYWQgdG90YWwgKGxlc3MgdGhhbiBhbGwgcGFnZSdzIGRhdGEpISBFeHBlY3RlZCAke3RvdGFsfSBidXQgZmV0Y2ggJHtkYXRhLmxlbmd0aH1gKTtcbiAgICAgICAgdG90YWwgPSBkYXRhLmxlbmd0aDtcbiAgICAgICAgbG9vcENvdW50ID0gTWF0aC5yb3VuZChkYXRhLmxlbmd0aCAvIGZldGNoU2l6ZSArIDAuNSk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGxhc3RQcm9ncmVzc2lvblN0ZXAgPSBvcHRzLm1heFByb2dyZXNzaW9uIC0gKHByb2dyZXNzaW9uU3RlcCAqIGxvb3BDb3VudCk7XG4gICAgICBpZiAobGFzdFByb2dyZXNzaW9uU3RlcCA+IDApIHtcbiAgICAgICAgcHJvZ3Jlc3Npb24ubmV4dChwcm9ncmVzc2lvbi5nZXRWYWx1ZSgpICsgbGFzdFByb2dyZXNzaW9uU3RlcCk7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIE9yIGluY3JlbWVudCBvbmNlXG4gICAgZWxzZSBpZiAob3B0cy5tYXhQcm9ncmVzc2lvbikge1xuICAgICAgcHJvZ3Jlc3Npb24ubmV4dChwcm9ncmVzc2lvbi5nZXRWYWx1ZSgpICsgb3B0cy5tYXhQcm9ncmVzc2lvbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRhdGEsXG4gICAgICB0b3RhbFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9iLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvc2VydmljZXMvam9iLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUMxRCxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFVekQsV0FBVztBQUNYLE1BQU0sT0FBTyxRQUFRO0lBRW5CLE1BQU0sQ0FBQyxNQUFNLENBQTJDLFlBQTRDLEVBQUUsSUFBUTtRQUM1RyxPQUFPLFlBQVksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUEyQyxRQUFzQyxFQUFFLElBQVE7UUFDckcsT0FBTyxLQUFLLENBQXFCLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFHLENBQTJDLFFBQXNDLEVBQUUsSUFBTztRQUVsRyxNQUFNLFdBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBUyxDQUFDLENBQUMsQ0FBQztRQUNuRCxRQUFRLGlDQUFLLElBQUksS0FBRSxXQUFXLElBQUU7YUFDN0IsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNULElBQUksSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLGNBQWM7Z0JBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDaEUsSUFBSSxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsV0FBVztnQkFBRSxJQUFJLENBQUMsV0FB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QztnQkFDdkMsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLEVBQUU7b0JBQzFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsbUZBQW1GLEtBQUssY0FBYyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztvQkFDbEksS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7b0JBQ3BCLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxHQUFHLEdBQUcsQ0FBQyxDQUFDO2lCQUN2RDtnQkFFRCxNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxlQUFlLEdBQUcsU0FBUyxDQUFDLENBQUM7Z0JBQ2hGLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxXQUFXLElBQUksbUJBQW1CLEdBQUcsQ0FBQyxFQUFFO29CQUN2RCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssR0FBRyxtQkFBbUIsQ0FBQyxDQUFDO2lCQUNyRTthQUNGO1lBQ0Qsb0JBQW9CO2lCQUNmLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtnQkFDeEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2FBQ3JFO1lBRUQsT0FBTztnQkFDTCxJQUFJO2dCQUNKLEtBQUs7YUFDTixDQUFDOztLQUNIO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGRlZmVyLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBpc05pbCwgaXNOb3ROaWwsIHRvTnVtYmVyIH0gZnJvbSAnLi4vZnVuY3Rpb25zJztcbmltcG9ydCB7IExvYWRSZXN1bHQsIExvYWRSZXN1bHRCeVBhZ2VGbiB9IGZyb20gJy4vZW50aXR5LXNlcnZpY2UuY2xhc3MnO1xuXG5leHBvcnQgdHlwZSBDYWxsYWJsZVdpdGhQcm9ncmVzc2lvbkZuPE8gZXh0ZW5kcyBDYWxsYWJsZVdpdGhQcm9ncmVzc2lvbk9wdGlvbnM+ID0gKG9wdHM/OiBPKSA9PiBQcm9taXNlPHZvaWQ+O1xuZXhwb3J0IGludGVyZmFjZSBDYWxsYWJsZVdpdGhQcm9ncmVzc2lvbk9wdGlvbnMge1xuICBtYXhQcm9ncmVzc2lvbj86IG51bWJlcjtcbiAgcHJvZ3Jlc3Npb24/OiBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPjtcbiAgW2tleTogc3RyaW5nXTogYW55O1xufVxuXG4vLyBAZHluYW1pY1xuZXhwb3J0IGNsYXNzIEpvYlV0aWxzIHtcblxuICBzdGF0aWMgZGVmZXJzPE8gZXh0ZW5kcyBDYWxsYWJsZVdpdGhQcm9ncmVzc2lvbk9wdGlvbnM+KHJ1bm5hYmxlTGlzdDogQ2FsbGFibGVXaXRoUHJvZ3Jlc3Npb25GbjxPPltdLCBvcHRzPzogTyk6IE9ic2VydmFibGU8bnVtYmVyPltdIHtcbiAgICByZXR1cm4gcnVubmFibGVMaXN0Lm1hcChydW5uYWJsZSA9PiBKb2JVdGlscy5kZWZlcihydW5uYWJsZSwgb3B0cykpO1xuICB9XG5cbiAgc3RhdGljIGRlZmVyPE8gZXh0ZW5kcyBDYWxsYWJsZVdpdGhQcm9ncmVzc2lvbk9wdGlvbnM+KHJ1bm5hYmxlOiBDYWxsYWJsZVdpdGhQcm9ncmVzc2lvbkZuPE8+LCBvcHRzPzogTyk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIGRlZmVyPE9ic2VydmFibGU8bnVtYmVyPj4oKCkgPT4gSm9iVXRpbHMucnVuKHJ1bm5hYmxlLCBvcHRzKSk7XG4gIH1cblxuICBzdGF0aWMgcnVuPE8gZXh0ZW5kcyBDYWxsYWJsZVdpdGhQcm9ncmVzc2lvbk9wdGlvbnM+KHJ1bm5hYmxlOiBDYWxsYWJsZVdpdGhQcm9ncmVzc2lvbkZuPE8+LCBvcHRzOiBPKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcblxuICAgIGNvbnN0IHByb2dyZXNzaW9uID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApO1xuICAgIHJ1bm5hYmxlKHsuLi5vcHRzLCBwcm9ncmVzc2lvbn0pXG4gICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgIGlmIChvcHRzPy5tYXhQcm9ncmVzc2lvbikgcHJvZ3Jlc3Npb24ubmV4dChvcHRzLm1heFByb2dyZXNzaW9uKTtcbiAgICAgICAgaWYgKG9wdHM/LnByb2dyZXNzaW9uKSBvcHRzLnByb2dyZXNzaW9uLmNvbXBsZXRlKCk7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKGVyciA9PiBwcm9ncmVzc2lvbi5lcnJvcihlcnIpKTtcbiAgICByZXR1cm4gcHJvZ3Jlc3Npb247XG4gIH1cblxuICBzdGF0aWMgYXN5bmMgZmV0Y2hBbGxQYWdlczxUPihcbiAgICBsb2FkUGFnZUZuOiBMb2FkUmVzdWx0QnlQYWdlRm48VD4sXG4gICAgb3B0cz86IHtcbiAgICAgIG1heFByb2dyZXNzaW9uPzogbnVtYmVyO1xuICAgICAgcHJvZ3Jlc3Npb24/OiBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPjtcbiAgICAgIG9uUGFnZUxvYWRlZD86IChwYWdlUmVzdWx0OiBMb2FkUmVzdWx0PFQ+KSA9PiBhbnk7XG4gICAgICBsb2dQcmVmaXg/OiBzdHJpbmc7XG4gICAgICBmZXRjaFNpemU/OiBudW1iZXI7XG4gICAgfSk6IFByb21pc2U8TG9hZFJlc3VsdDxUPj4ge1xuXG4gICAgY29uc3QgbWF4UHJvZ3Jlc3Npb24gPSBvcHRzICYmIG9wdHMubWF4UHJvZ3Jlc3Npb24gfHwgdW5kZWZpbmVkO1xuICAgIGxldCB0b3RhbDsgbGV0IHBhZ2VDb3VudDsgbGV0IHByb2dyZXNzaW9uU3RlcDsgbGV0IGN1cnJlbnRQYWdlRGF0YUNvdW50OiBudW1iZXI7XG4gICAgY29uc3QgZmV0Y2hTaXplID0gb3B0cyAmJiBvcHRzLmZldGNoU2l6ZSB8fCAxMDAwO1xuICAgIGxldCBvZmZzZXQgPSAwO1xuICAgIGxldCBkYXRhOiBUW10gPSBbXTtcbiAgICBkbyB7XG5cbiAgICAgIGlmIChvcHRzICYmIG9wdHMubG9nUHJlZml4KSBjb25zb2xlLmRlYnVnKGAke29wdHMubG9nUHJlZml4fSBGZXRjaGluZyBwYWdlICMke29mZnNldCAvIGZldGNoU2l6ZX0uLi5gKTtcblxuICAgICAgLy8gR2V0IHNvbWUgaXRlbXMsIHVzaW5nIHBhZ2luZ1xuICAgICAgY29uc3QgcmVzID0gYXdhaXQgbG9hZFBhZ2VGbihvZmZzZXQsIGZldGNoU2l6ZSk7XG4gICAgICBkYXRhID0gZGF0YS5jb25jYXQocmVzLmRhdGEpO1xuICAgICAgY3VycmVudFBhZ2VEYXRhQ291bnQgPSByZXMuZGF0YSAmJiByZXMuZGF0YS5sZW5ndGggfHwgMDtcbiAgICAgIG9mZnNldCArPSBjdXJyZW50UGFnZURhdGFDb3VudDtcblxuICAgICAgLy8gU2V0IHRvdGFsIGNvdW50IChvbmx5IGlmIG5vdCBhbHJlYWR5IHNldClcbiAgICAgIGlmIChpc05pbCh0b3RhbCkgJiYgaXNOb3ROaWwocmVzLnRvdGFsKSkge1xuICAgICAgICB0b3RhbCA9IHJlcy50b3RhbDtcbiAgICAgICAgLy8gQ29tcHV0ZSB0aGUgbnVtYmVyIG9mIHBhZ2VcbiAgICAgICAgcGFnZUNvdW50ID0gTWF0aC5yb3VuZChyZXMudG90YWwgLyBmZXRjaFNpemUgKyAwLjUpOyAvLyBSb3VuZCB0byBIQUxGX1VQIGludGVnZXJcbiAgICAgICAgLy8gQ29tcHV0ZSBzdGVwLCBieSBkaXZpZGluZyBtYXhQcm9ncmVzc2lvbiBieSBudW1iZXIgb2YgcGFnZVxuICAgICAgICBjb25zdCBhY3R1YWxQcm9ncmVzc2lvbiA9IE1hdGgubWF4KDAsIHRvTnVtYmVyKG9wdHMgJiYgb3B0cy5wcm9ncmVzc2lvbj8udmFsdWUsIDApKTtcbiAgICAgICAgcHJvZ3Jlc3Npb25TdGVwID0gbWF4UHJvZ3Jlc3Npb25cbiAgICAgICAgICA/IChtYXhQcm9ncmVzc2lvbiAtIGFjdHVhbFByb2dyZXNzaW9uKSAvIHBhZ2VDb3VudFxuICAgICAgICAgIDogdW5kZWZpbmVkIC8qaWYgMCByZXNldCB0byB1bmRlZmluZWQqLztcbiAgICAgIH1cblxuICAgICAgLy8gSW5jcmVtZW50IHByb2dyZXNzaW9uIG9uIGVhY2ggaXRlcmF0aW9uIChpZiBwb3NzaWJsZSlcbiAgICAgIGlmIChvcHRzICYmIG9wdHMucHJvZ3Jlc3Npb24gJiYgaXNOb3ROaWwocHJvZ3Jlc3Npb25TdGVwKSkge1xuICAgICAgICBvcHRzLnByb2dyZXNzaW9uLm5leHQob3B0cy5wcm9ncmVzc2lvbi52YWx1ZSArIHByb2dyZXNzaW9uU3RlcCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChvcHRzICYmIG9wdHMub25QYWdlTG9hZGVkKSBvcHRzLm9uUGFnZUxvYWRlZChyZXMpO1xuXG4gICAgfSB3aGlsZSAoY3VycmVudFBhZ2VEYXRhQ291bnQgPiAwICYmICgoaXNOaWwodG90YWwpICYmIGN1cnJlbnRQYWdlRGF0YUNvdW50ID09PSBmZXRjaFNpemUpIHx8IChpc05vdE5pbCh0b3RhbCkgJiYgKG9mZnNldCA8IHRvdGFsKSkpKTtcblxuICAgIC8vIENvbXBsZXRlIHByb2dyZXNzaW9uIHRvIHJlYWNoIHByb2dyZXNzaW9uU3RlcCB2YWx1ZSAoYmVjYXVzZSBvZiByb3VuZClcbiAgICBpZiAoaXNOb3ROaWwocHJvZ3Jlc3Npb25TdGVwKSkge1xuXG4gICAgICAvLyBJZiB0b3RhbCByZXR1cm4gYnkgbG9hZEFsbCB3YXMgYmFkICFcbiAgICAgIGlmIChpc05vdE5pbCh0b3RhbCkgJiYgZGF0YS5sZW5ndGggPCB0b3RhbCkge1xuICAgICAgICBjb25zb2xlLndhcm4oYEEgZnVuY3Rpb24gbG9hZEFsbCgpIHJldHVybmVkIGEgYmFkIHRvdGFsIChsZXNzIHRoYW4gYWxsIHBhZ2UncyBkYXRhKSEgRXhwZWN0ZWQgJHt0b3RhbH0gYnV0IGZldGNoICR7ZGF0YS5sZW5ndGh9YCk7XG4gICAgICAgIHRvdGFsID0gZGF0YS5sZW5ndGg7XG4gICAgICAgIHBhZ2VDb3VudCA9IE1hdGgucm91bmQoZGF0YS5sZW5ndGggLyBmZXRjaFNpemUgKyAwLjUpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBsYXN0UHJvZ3Jlc3Npb25TdGVwID0gb3B0cy5tYXhQcm9ncmVzc2lvbiAtIChwcm9ncmVzc2lvblN0ZXAgKiBwYWdlQ291bnQpO1xuICAgICAgaWYgKG9wdHMgJiYgb3B0cy5wcm9ncmVzc2lvbiAmJiBsYXN0UHJvZ3Jlc3Npb25TdGVwID4gMCkge1xuICAgICAgICBvcHRzLnByb2dyZXNzaW9uLm5leHQob3B0cy5wcm9ncmVzc2lvbi52YWx1ZSArIGxhc3RQcm9ncmVzc2lvblN0ZXApO1xuICAgICAgfVxuICAgIH1cbiAgICAvLyBPciBpbmNyZW1lbnQgb25jZVxuICAgIGVsc2UgaWYgKG9wdHMgJiYgb3B0cy5wcm9ncmVzc2lvbiAmJiBvcHRzLm1heFByb2dyZXNzaW9uKSB7XG4gICAgICBvcHRzLnByb2dyZXNzaW9uLm5leHQob3B0cy5wcm9ncmVzc2lvbi52YWx1ZSArIG9wdHMubWF4UHJvZ3Jlc3Npb24pO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBkYXRhLFxuICAgICAgdG90YWxcbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
@@ -17685,22 +17685,24 @@ class JobUtils {
|
|
|
17685
17685
|
}
|
|
17686
17686
|
static run(runnable, opts) {
|
|
17687
17687
|
const progression = new BehaviorSubject(0);
|
|
17688
|
-
runnable(
|
|
17688
|
+
runnable(Object.assign(Object.assign({}, opts), { progression }))
|
|
17689
17689
|
.then(() => {
|
|
17690
|
-
if (opts
|
|
17690
|
+
if (opts === null || opts === void 0 ? void 0 : opts.maxProgression)
|
|
17691
17691
|
progression.next(opts.maxProgression);
|
|
17692
|
-
progression
|
|
17692
|
+
if (opts === null || opts === void 0 ? void 0 : opts.progression)
|
|
17693
|
+
opts.progression.complete();
|
|
17693
17694
|
})
|
|
17694
17695
|
.catch(err => progression.error(err));
|
|
17695
17696
|
return progression;
|
|
17696
17697
|
}
|
|
17697
|
-
static fetchAllPages(loadPageFn,
|
|
17698
|
+
static fetchAllPages(loadPageFn, opts) {
|
|
17699
|
+
var _a;
|
|
17698
17700
|
return __awaiter(this, void 0, void 0, function* () {
|
|
17699
17701
|
const maxProgression = opts && opts.maxProgression || undefined;
|
|
17700
17702
|
let total;
|
|
17701
|
-
let
|
|
17703
|
+
let pageCount;
|
|
17702
17704
|
let progressionStep;
|
|
17703
|
-
let
|
|
17705
|
+
let currentPageDataCount;
|
|
17704
17706
|
const fetchSize = opts && opts.fetchSize || 1000;
|
|
17705
17707
|
let offset = 0;
|
|
17706
17708
|
let data = [];
|
|
@@ -17710,37 +17712,42 @@ class JobUtils {
|
|
|
17710
17712
|
// Get some items, using paging
|
|
17711
17713
|
const res = yield loadPageFn(offset, fetchSize);
|
|
17712
17714
|
data = data.concat(res.data);
|
|
17713
|
-
|
|
17714
|
-
offset +=
|
|
17715
|
+
currentPageDataCount = res.data && res.data.length || 0;
|
|
17716
|
+
offset += currentPageDataCount;
|
|
17715
17717
|
// Set total count (only if not already set)
|
|
17716
17718
|
if (isNil(total) && isNotNil(res.total)) {
|
|
17717
17719
|
total = res.total;
|
|
17718
|
-
|
|
17719
|
-
|
|
17720
|
+
// Compute the number of page
|
|
17721
|
+
pageCount = Math.round(res.total / fetchSize + 0.5); // Round to HALF_UP integer
|
|
17722
|
+
// Compute step, by dividing maxProgression by number of page
|
|
17723
|
+
const actualProgression = Math.max(0, toNumber(opts && ((_a = opts.progression) === null || _a === void 0 ? void 0 : _a.value), 0));
|
|
17724
|
+
progressionStep = maxProgression
|
|
17725
|
+
? (maxProgression - actualProgression) / pageCount
|
|
17726
|
+
: undefined /*if 0 reset to undefined*/;
|
|
17720
17727
|
}
|
|
17721
17728
|
// Increment progression on each iteration (if possible)
|
|
17722
|
-
if (isNotNil(progressionStep)) {
|
|
17723
|
-
progression.next(progression.
|
|
17729
|
+
if (opts && opts.progression && isNotNil(progressionStep)) {
|
|
17730
|
+
opts.progression.next(opts.progression.value + progressionStep);
|
|
17724
17731
|
}
|
|
17725
17732
|
if (opts && opts.onPageLoaded)
|
|
17726
17733
|
opts.onPageLoaded(res);
|
|
17727
|
-
} while (
|
|
17734
|
+
} while (currentPageDataCount > 0 && ((isNil(total) && currentPageDataCount === fetchSize) || (isNotNil(total) && (offset < total))));
|
|
17728
17735
|
// Complete progression to reach progressionStep value (because of round)
|
|
17729
17736
|
if (isNotNil(progressionStep)) {
|
|
17730
17737
|
// If total return by loadAll was bad !
|
|
17731
17738
|
if (isNotNil(total) && data.length < total) {
|
|
17732
17739
|
console.warn(`A function loadAll() returned a bad total (less than all page's data)! Expected ${total} but fetch ${data.length}`);
|
|
17733
17740
|
total = data.length;
|
|
17734
|
-
|
|
17741
|
+
pageCount = Math.round(data.length / fetchSize + 0.5);
|
|
17735
17742
|
}
|
|
17736
|
-
const lastProgressionStep = opts.maxProgression - (progressionStep *
|
|
17737
|
-
if (lastProgressionStep > 0) {
|
|
17738
|
-
progression.next(progression.
|
|
17743
|
+
const lastProgressionStep = opts.maxProgression - (progressionStep * pageCount);
|
|
17744
|
+
if (opts && opts.progression && lastProgressionStep > 0) {
|
|
17745
|
+
opts.progression.next(opts.progression.value + lastProgressionStep);
|
|
17739
17746
|
}
|
|
17740
17747
|
}
|
|
17741
17748
|
// Or increment once
|
|
17742
|
-
else if (opts.maxProgression) {
|
|
17743
|
-
progression.next(progression.
|
|
17749
|
+
else if (opts && opts.progression && opts.maxProgression) {
|
|
17750
|
+
opts.progression.next(opts.progression.value + opts.maxProgression);
|
|
17744
17751
|
}
|
|
17745
17752
|
return {
|
|
17746
17753
|
data,
|
|
@@ -25430,23 +25437,20 @@ class PersonService extends BaseEntityService {
|
|
|
25430
25437
|
return this.loadAll(0, !value ? 30 : 10, sortBy, sortDirection, Object.assign(Object.assign({}, filter), { searchText: value, statusIds: filter && filter.statusIds || [StatusIds.ENABLE], userProfiles: filter && filter.userProfiles }), { withTotal: true /* need by autocomplete */ });
|
|
25431
25438
|
});
|
|
25432
25439
|
}
|
|
25433
|
-
executeImport(
|
|
25440
|
+
executeImport(filter, opts) {
|
|
25434
25441
|
const _super = Object.create(null, {
|
|
25435
25442
|
loadAll: { get: () => super.loadAll }
|
|
25436
25443
|
});
|
|
25437
25444
|
return __awaiter(this, void 0, void 0, function* () {
|
|
25438
25445
|
const maxProgression = opts && opts.maxProgression || 100;
|
|
25439
|
-
|
|
25440
|
-
statusIds: [StatusIds.ENABLE, StatusIds.TEMPORARY],
|
|
25441
|
-
userProfiles: ['SUPERVISOR', 'USER', 'GUEST']
|
|
25442
|
-
};
|
|
25446
|
+
filter = Object.assign(Object.assign({}, filter), { statusIds: [StatusIds.ENABLE, StatusIds.TEMPORARY], userProfiles: ['SUPERVISOR', 'USER', 'GUEST'] });
|
|
25443
25447
|
console.info('[person-service] Importing persons...');
|
|
25444
25448
|
const res = yield JobUtils.fetchAllPages((offset, size) => _super.loadAll.call(this, offset, size, 'id', null, filter, {
|
|
25445
25449
|
debug: false,
|
|
25446
25450
|
fetchPolicy: 'network-only',
|
|
25447
25451
|
withTotal: (offset === 0),
|
|
25448
25452
|
toEntity: false
|
|
25449
|
-
}),
|
|
25453
|
+
}), Object.assign(Object.assign({}, opts), { maxProgression: maxProgression * 0.9 }));
|
|
25450
25454
|
// Save result locally
|
|
25451
25455
|
yield this.entities.saveAll(res.data, { entityName: 'PersonVO', reset: true });
|
|
25452
25456
|
});
|
|
@@ -25456,7 +25460,7 @@ class PersonService extends BaseEntityService {
|
|
|
25456
25460
|
if (!source)
|
|
25457
25461
|
return undefined;
|
|
25458
25462
|
console.debug('TODO check isInstanceOf');
|
|
25459
|
-
if (!
|
|
25463
|
+
if (!(source instanceof Person)) {
|
|
25460
25464
|
source = Person.fromObject(source);
|
|
25461
25465
|
}
|
|
25462
25466
|
const target = source.asObject();
|