@elderbyte/ngx-starter 15.3.5 → 15.4.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/esm2020/lib/common/data/data-context/data-context-active-page.mjs +2 -2
- package/esm2020/lib/common/data/data-context/data-context-base.mjs +46 -27
- package/esm2020/lib/common/data/data-context/data-context-builder.mjs +9 -8
- package/esm2020/lib/common/data/data-context/data-context-continuable-paged.mjs +7 -8
- package/esm2020/lib/common/data/data-context/data-context-continuable-token.mjs +2 -2
- package/esm2020/lib/common/data/data-context/data-context-life-cycle-binding.mjs +4 -2
- package/esm2020/lib/common/data/data-context/data-context-source-event-binding.mjs +46 -0
- package/esm2020/lib/common/data/data-context/data-context.mjs +1 -1
- package/esm2020/lib/common/data/data-context/indexed-entities.mjs +143 -0
- package/esm2020/lib/common/data/data-context/public_api.mjs +3 -2
- package/esm2020/lib/common/data/datasource/data-source-base.mjs +38 -0
- package/esm2020/lib/common/data/datasource/data-source-change-event.mjs +24 -0
- package/esm2020/lib/common/data/datasource/data-source.mjs +1 -1
- package/esm2020/lib/common/data/datasource/local/local-list-data-source.mjs +11 -19
- package/esm2020/lib/common/data/datasource/local/local-paged-data-source.mjs +8 -8
- package/esm2020/lib/common/data/datasource/public_api.mjs +3 -1
- package/esm2020/lib/common/data/datasource/rest/rest-client.mjs +23 -38
- package/fesm2015/elderbyte-ngx-starter.mjs +408 -179
- package/fesm2015/elderbyte-ngx-starter.mjs.map +1 -1
- package/fesm2020/elderbyte-ngx-starter.mjs +407 -179
- package/fesm2020/elderbyte-ngx-starter.mjs.map +1 -1
- package/lib/common/data/data-context/data-context-base.d.ts +12 -3
- package/lib/common/data/data-context/data-context-builder.d.ts +2 -1
- package/lib/common/data/data-context/data-context-source-event-binding.d.ts +31 -0
- package/lib/common/data/data-context/data-context.d.ts +14 -2
- package/lib/common/data/data-context/indexed-entities.d.ts +72 -0
- package/lib/common/data/data-context/public_api.d.ts +2 -1
- package/lib/common/data/datasource/data-source-base.d.ts +38 -0
- package/lib/common/data/datasource/data-source-change-event.d.ts +13 -0
- package/lib/common/data/datasource/data-source.d.ts +2 -1
- package/lib/common/data/datasource/local/local-list-data-source.d.ts +3 -7
- package/lib/common/data/datasource/local/local-paged-data-source.d.ts +5 -3
- package/lib/common/data/datasource/public_api.d.ts +2 -0
- package/lib/common/data/datasource/rest/rest-client.d.ts +10 -18
- package/package.json +1 -1
- package/esm2020/lib/common/data/data-context/data-context-source-auto-reloader.mjs +0 -12
- package/lib/common/data/data-context/data-context-source-auto-reloader.d.ts +0 -8
|
@@ -3034,6 +3034,221 @@ class TokenChunkRequest {
|
|
|
3034
3034
|
}
|
|
3035
3035
|
}
|
|
3036
3036
|
|
|
3037
|
+
class SortContext {
|
|
3038
|
+
constructor() {
|
|
3039
|
+
/***************************************************************************
|
|
3040
|
+
* *
|
|
3041
|
+
* Fields *
|
|
3042
|
+
* *
|
|
3043
|
+
**************************************************************************/
|
|
3044
|
+
this._sorts = new BehaviorSubject([]);
|
|
3045
|
+
/***************************************************************************
|
|
3046
|
+
* *
|
|
3047
|
+
* Private methods *
|
|
3048
|
+
* *
|
|
3049
|
+
**************************************************************************/
|
|
3050
|
+
}
|
|
3051
|
+
/***************************************************************************
|
|
3052
|
+
* *
|
|
3053
|
+
* Read API *
|
|
3054
|
+
* *
|
|
3055
|
+
**************************************************************************/
|
|
3056
|
+
get sorts() {
|
|
3057
|
+
return this._sorts.asObservable();
|
|
3058
|
+
}
|
|
3059
|
+
get sortsSnapshot() {
|
|
3060
|
+
return this._sorts.getValue();
|
|
3061
|
+
}
|
|
3062
|
+
findSortDirection(prop) {
|
|
3063
|
+
const f = this.findSort(prop);
|
|
3064
|
+
return f ? f.dir : undefined;
|
|
3065
|
+
}
|
|
3066
|
+
findSort(prop) {
|
|
3067
|
+
return this.sortsSnapshot
|
|
3068
|
+
.filter(f => f.prop === prop)
|
|
3069
|
+
.find(first => true);
|
|
3070
|
+
}
|
|
3071
|
+
/***************************************************************************
|
|
3072
|
+
* *
|
|
3073
|
+
* Public API *
|
|
3074
|
+
* *
|
|
3075
|
+
**************************************************************************/
|
|
3076
|
+
/**
|
|
3077
|
+
* This method updatees / adds the given sort, leaving
|
|
3078
|
+
* existing ones untouched.
|
|
3079
|
+
* @param updatedSort
|
|
3080
|
+
*/
|
|
3081
|
+
updateSort(updatedSort) {
|
|
3082
|
+
if (updatedSort) {
|
|
3083
|
+
this.updateSorts([updatedSort]);
|
|
3084
|
+
}
|
|
3085
|
+
}
|
|
3086
|
+
/**
|
|
3087
|
+
* This method updates / adds the given filters, leaving
|
|
3088
|
+
* existing ones untouched.
|
|
3089
|
+
* @param updatedSorts
|
|
3090
|
+
*/
|
|
3091
|
+
updateSorts(updatedSorts) {
|
|
3092
|
+
if (updatedSorts && updatedSorts.length > 0) {
|
|
3093
|
+
const sortMap = new Map();
|
|
3094
|
+
this.sortsSnapshot.forEach(s => sortMap.set(s.prop, s));
|
|
3095
|
+
updatedSorts.forEach(s => sortMap.set(s.prop, s));
|
|
3096
|
+
this.replaceSorts(Array.from(updatedSorts.values()));
|
|
3097
|
+
}
|
|
3098
|
+
}
|
|
3099
|
+
/**
|
|
3100
|
+
* Replace all existing filters with the given new ones.
|
|
3101
|
+
* @param newSorts
|
|
3102
|
+
*/
|
|
3103
|
+
replaceSorts(newSorts) {
|
|
3104
|
+
this._sorts.next(newSorts || []);
|
|
3105
|
+
}
|
|
3106
|
+
clear() {
|
|
3107
|
+
this.replaceSorts([]);
|
|
3108
|
+
}
|
|
3109
|
+
}
|
|
3110
|
+
|
|
3111
|
+
class IndexedEntities {
|
|
3112
|
+
/***************************************************************************
|
|
3113
|
+
* *
|
|
3114
|
+
* Constructor *
|
|
3115
|
+
* *
|
|
3116
|
+
**************************************************************************/
|
|
3117
|
+
constructor(idFn, localSortFn, sortContext = new SortContext()) {
|
|
3118
|
+
this.idFn = idFn;
|
|
3119
|
+
this.localSortFn = localSortFn;
|
|
3120
|
+
this.sortContext = sortContext;
|
|
3121
|
+
/***************************************************************************
|
|
3122
|
+
* *
|
|
3123
|
+
* Fields *
|
|
3124
|
+
* *
|
|
3125
|
+
**************************************************************************/
|
|
3126
|
+
this.log = LoggerFactory.getLogger('IndexedEntities');
|
|
3127
|
+
this._entities$ = new BehaviorSubject([]);
|
|
3128
|
+
this._idToArrayIndex = new Map();
|
|
3129
|
+
}
|
|
3130
|
+
/***************************************************************************
|
|
3131
|
+
* *
|
|
3132
|
+
* Properties *
|
|
3133
|
+
* *
|
|
3134
|
+
**************************************************************************/
|
|
3135
|
+
get entities$() {
|
|
3136
|
+
return this._entities$.asObservable();
|
|
3137
|
+
}
|
|
3138
|
+
get entitiesSnapshot() {
|
|
3139
|
+
return this._entities$.getValue();
|
|
3140
|
+
}
|
|
3141
|
+
/***************************************************************************
|
|
3142
|
+
* *
|
|
3143
|
+
* Public API *
|
|
3144
|
+
* *
|
|
3145
|
+
**************************************************************************/
|
|
3146
|
+
/**
|
|
3147
|
+
* Replaces all existing entities with the new ones.
|
|
3148
|
+
* The index is rebuilt. O(n)
|
|
3149
|
+
*/
|
|
3150
|
+
replaceAll(newEntities = []) {
|
|
3151
|
+
if (this.localSortFn) {
|
|
3152
|
+
newEntities = this.localSortFn(newEntities, this.sortContext.sortsSnapshot);
|
|
3153
|
+
}
|
|
3154
|
+
this.rebuildIndex(newEntities);
|
|
3155
|
+
this.setEntities(newEntities);
|
|
3156
|
+
}
|
|
3157
|
+
/**
|
|
3158
|
+
* Keeps all existing entities, but replaces those which are updated with the new data.
|
|
3159
|
+
* Provided updated entities which are currently not in this index are ignored.
|
|
3160
|
+
* @param updated
|
|
3161
|
+
*/
|
|
3162
|
+
updateSome(updated) {
|
|
3163
|
+
const newData = [...this.entitiesSnapshot];
|
|
3164
|
+
updated.forEach(update => {
|
|
3165
|
+
const id = this.getItemId(update);
|
|
3166
|
+
const index = this.indexById(id);
|
|
3167
|
+
if (index != -1) {
|
|
3168
|
+
newData[index] = update;
|
|
3169
|
+
}
|
|
3170
|
+
});
|
|
3171
|
+
this.setEntities(newData);
|
|
3172
|
+
}
|
|
3173
|
+
append(append) {
|
|
3174
|
+
this.insert(append, this.entitiesSnapshot.length);
|
|
3175
|
+
}
|
|
3176
|
+
/**
|
|
3177
|
+
* Appends the given entities to this index.
|
|
3178
|
+
* The new appended entities are included in the index.
|
|
3179
|
+
* O(n) where n = number of appended entities
|
|
3180
|
+
* @param inserted
|
|
3181
|
+
* @param offset
|
|
3182
|
+
*/
|
|
3183
|
+
insert(inserted, offset) {
|
|
3184
|
+
if (inserted && inserted.length > 0) {
|
|
3185
|
+
const entities = this.entitiesSnapshot;
|
|
3186
|
+
const newData = [...entities];
|
|
3187
|
+
for (let i = 0; i < inserted.length; i++) {
|
|
3188
|
+
newData[i + offset] = inserted[i];
|
|
3189
|
+
}
|
|
3190
|
+
if (this.localSortFn) {
|
|
3191
|
+
// local sort can re-order all items
|
|
3192
|
+
this.replaceAll(newData);
|
|
3193
|
+
}
|
|
3194
|
+
else {
|
|
3195
|
+
// Without a sort, we can optimize indexing
|
|
3196
|
+
this.reIndexFrom(newData, offset);
|
|
3197
|
+
this.setEntities(newData);
|
|
3198
|
+
}
|
|
3199
|
+
}
|
|
3200
|
+
}
|
|
3201
|
+
/**
|
|
3202
|
+
* Lookup an entity by its id.
|
|
3203
|
+
* This will use an index O(1)
|
|
3204
|
+
* @param id
|
|
3205
|
+
*/
|
|
3206
|
+
getById(id) {
|
|
3207
|
+
const entities = this.entitiesSnapshot;
|
|
3208
|
+
const index = this.indexById(id);
|
|
3209
|
+
if (index != -1) {
|
|
3210
|
+
return entities[index];
|
|
3211
|
+
}
|
|
3212
|
+
}
|
|
3213
|
+
notify() {
|
|
3214
|
+
this._entities$.next(this._entities$.getValue());
|
|
3215
|
+
}
|
|
3216
|
+
destroy() {
|
|
3217
|
+
this._entities$.complete();
|
|
3218
|
+
this._idToArrayIndex.clear();
|
|
3219
|
+
}
|
|
3220
|
+
/***************************************************************************
|
|
3221
|
+
* *
|
|
3222
|
+
* Private methods *
|
|
3223
|
+
* *
|
|
3224
|
+
**************************************************************************/
|
|
3225
|
+
rebuildIndex(entities) {
|
|
3226
|
+
this._idToArrayIndex.clear();
|
|
3227
|
+
this.reIndexFrom(entities, 0);
|
|
3228
|
+
}
|
|
3229
|
+
reIndexFrom(entities, startIndex) {
|
|
3230
|
+
for (let i = startIndex; i < entities.length; i++) {
|
|
3231
|
+
const entity = entities[i];
|
|
3232
|
+
if (entity) {
|
|
3233
|
+
this._idToArrayIndex.set(this.getItemId(entity), i);
|
|
3234
|
+
}
|
|
3235
|
+
}
|
|
3236
|
+
}
|
|
3237
|
+
indexById(id) {
|
|
3238
|
+
var _a;
|
|
3239
|
+
return (_a = this._idToArrayIndex.get(id)) !== null && _a !== void 0 ? _a : -1;
|
|
3240
|
+
}
|
|
3241
|
+
getItemId(item) {
|
|
3242
|
+
return this.idFn(item);
|
|
3243
|
+
}
|
|
3244
|
+
setEntities(entities) {
|
|
3245
|
+
if (!(this.entitiesSnapshot.length === 0 && entities.length === 0)) {
|
|
3246
|
+
this.log.debug('Entities changed: ' + entities.length, entities);
|
|
3247
|
+
this._entities$.next(entities);
|
|
3248
|
+
}
|
|
3249
|
+
}
|
|
3250
|
+
}
|
|
3251
|
+
|
|
3037
3252
|
/**
|
|
3038
3253
|
* Represents the status of a data-context
|
|
3039
3254
|
*/
|
|
@@ -3110,80 +3325,6 @@ function isActivePagedDataContext(object) {
|
|
|
3110
3325
|
return object.setActivePage !== undefined;
|
|
3111
3326
|
}
|
|
3112
3327
|
|
|
3113
|
-
class SortContext {
|
|
3114
|
-
constructor() {
|
|
3115
|
-
/***************************************************************************
|
|
3116
|
-
* *
|
|
3117
|
-
* Fields *
|
|
3118
|
-
* *
|
|
3119
|
-
**************************************************************************/
|
|
3120
|
-
this._sorts = new BehaviorSubject([]);
|
|
3121
|
-
/***************************************************************************
|
|
3122
|
-
* *
|
|
3123
|
-
* Private methods *
|
|
3124
|
-
* *
|
|
3125
|
-
**************************************************************************/
|
|
3126
|
-
}
|
|
3127
|
-
/***************************************************************************
|
|
3128
|
-
* *
|
|
3129
|
-
* Read API *
|
|
3130
|
-
* *
|
|
3131
|
-
**************************************************************************/
|
|
3132
|
-
get sorts() {
|
|
3133
|
-
return this._sorts.asObservable();
|
|
3134
|
-
}
|
|
3135
|
-
get sortsSnapshot() {
|
|
3136
|
-
return this._sorts.getValue();
|
|
3137
|
-
}
|
|
3138
|
-
findSortDirection(prop) {
|
|
3139
|
-
const f = this.findSort(prop);
|
|
3140
|
-
return f ? f.dir : undefined;
|
|
3141
|
-
}
|
|
3142
|
-
findSort(prop) {
|
|
3143
|
-
return this.sortsSnapshot
|
|
3144
|
-
.filter(f => f.prop === prop)
|
|
3145
|
-
.find(first => true);
|
|
3146
|
-
}
|
|
3147
|
-
/***************************************************************************
|
|
3148
|
-
* *
|
|
3149
|
-
* Public API *
|
|
3150
|
-
* *
|
|
3151
|
-
**************************************************************************/
|
|
3152
|
-
/**
|
|
3153
|
-
* This method updatees / adds the given sort, leaving
|
|
3154
|
-
* existing ones untouched.
|
|
3155
|
-
* @param updatedSort
|
|
3156
|
-
*/
|
|
3157
|
-
updateSort(updatedSort) {
|
|
3158
|
-
if (updatedSort) {
|
|
3159
|
-
this.updateSorts([updatedSort]);
|
|
3160
|
-
}
|
|
3161
|
-
}
|
|
3162
|
-
/**
|
|
3163
|
-
* This method updates / adds the given filters, leaving
|
|
3164
|
-
* existing ones untouched.
|
|
3165
|
-
* @param updatedSorts
|
|
3166
|
-
*/
|
|
3167
|
-
updateSorts(updatedSorts) {
|
|
3168
|
-
if (updatedSorts && updatedSorts.length > 0) {
|
|
3169
|
-
const sortMap = new Map();
|
|
3170
|
-
this.sortsSnapshot.forEach(s => sortMap.set(s.prop, s));
|
|
3171
|
-
updatedSorts.forEach(s => sortMap.set(s.prop, s));
|
|
3172
|
-
this.replaceSorts(Array.from(updatedSorts.values()));
|
|
3173
|
-
}
|
|
3174
|
-
}
|
|
3175
|
-
/**
|
|
3176
|
-
* Replace all existing filters with the given new ones.
|
|
3177
|
-
* @param newSorts
|
|
3178
|
-
*/
|
|
3179
|
-
replaceSorts(newSorts) {
|
|
3180
|
-
this._sorts.next(newSorts || []);
|
|
3181
|
-
}
|
|
3182
|
-
clear() {
|
|
3183
|
-
this.replaceSorts([]);
|
|
3184
|
-
}
|
|
3185
|
-
}
|
|
3186
|
-
|
|
3187
3328
|
class DataContextBase extends DataSource {
|
|
3188
3329
|
/***************************************************************************
|
|
3189
3330
|
* *
|
|
@@ -3203,15 +3344,15 @@ class DataContextBase extends DataSource {
|
|
|
3203
3344
|
this.baselog = LoggerFactory.getLogger('DataContextBase');
|
|
3204
3345
|
this._filter = new FilterContext();
|
|
3205
3346
|
this._sort = new SortContext();
|
|
3206
|
-
this._data = new BehaviorSubject([]);
|
|
3207
3347
|
this._total = new BehaviorSubject(undefined);
|
|
3208
3348
|
this._status = new BehaviorSubject(DataContextStatus.idle());
|
|
3209
3349
|
this._started = new BehaviorSubject(false);
|
|
3210
3350
|
this._closed = new BehaviorSubject(false);
|
|
3211
|
-
this.
|
|
3351
|
+
this._customIndex = new Map();
|
|
3212
3352
|
this._reloadQueue = new Subject();
|
|
3213
3353
|
this.unsubscribe$ = new Subject();
|
|
3214
3354
|
this._dataSource = dataSource;
|
|
3355
|
+
this._data = new IndexedEntities(e => dataSource.getId(e), _localSort);
|
|
3215
3356
|
this._loading = this._status.pipe(map(status => status.loading));
|
|
3216
3357
|
this._filter.filters.pipe(filter(() => this.started), takeUntil(this.unsubscribe$)).subscribe(filters => this.onFiltersChanged(filters));
|
|
3217
3358
|
this._sort.sorts.pipe(filter(() => this.started), takeUntil(this.unsubscribe$)).subscribe(sorts => this.onSortsChanged(sorts));
|
|
@@ -3263,10 +3404,10 @@ class DataContextBase extends DataSource {
|
|
|
3263
3404
|
return (_a = this.statusSnapshot) === null || _a === void 0 ? void 0 : _a.loading;
|
|
3264
3405
|
}
|
|
3265
3406
|
get data() {
|
|
3266
|
-
return this._data.
|
|
3407
|
+
return this._data.entities$;
|
|
3267
3408
|
}
|
|
3268
3409
|
get dataSnapshot() {
|
|
3269
|
-
return this._data.
|
|
3410
|
+
return this._data.entitiesSnapshot;
|
|
3270
3411
|
}
|
|
3271
3412
|
get status() {
|
|
3272
3413
|
return this._status;
|
|
@@ -3309,13 +3450,17 @@ class DataContextBase extends DataSource {
|
|
|
3309
3450
|
return this.reloadNow();
|
|
3310
3451
|
}
|
|
3311
3452
|
reload() {
|
|
3453
|
+
this.baselog.debug('Requesting a reload of the DataContext from the DataSource.');
|
|
3312
3454
|
this._reloadQueue.next();
|
|
3313
3455
|
}
|
|
3314
3456
|
findByIndex(key) {
|
|
3315
3457
|
if (!this._indexFn) {
|
|
3316
3458
|
throw new Error('findByIndex requires you to pass a index function!');
|
|
3317
3459
|
}
|
|
3318
|
-
return this.
|
|
3460
|
+
return this._customIndex.get(key);
|
|
3461
|
+
}
|
|
3462
|
+
findById(id) {
|
|
3463
|
+
return this._data.getById(id);
|
|
3319
3464
|
}
|
|
3320
3465
|
/**
|
|
3321
3466
|
* Closes this DataContext and cleans up all used resources.
|
|
@@ -3325,15 +3470,17 @@ class DataContextBase extends DataSource {
|
|
|
3325
3470
|
this.unsubscribe$.next();
|
|
3326
3471
|
this.unsubscribe$.complete();
|
|
3327
3472
|
this._closed.next(true);
|
|
3328
|
-
this._data.
|
|
3473
|
+
this._data.destroy();
|
|
3329
3474
|
this._total.complete();
|
|
3330
3475
|
this._status.complete();
|
|
3331
3476
|
this.clearAll();
|
|
3332
3477
|
this.baselog.debug('DataContext has been closed and resources cleaned up!');
|
|
3333
3478
|
}
|
|
3334
3479
|
refresh() {
|
|
3335
|
-
|
|
3336
|
-
|
|
3480
|
+
this._data.notify();
|
|
3481
|
+
}
|
|
3482
|
+
update(entities) {
|
|
3483
|
+
this._data.updateSome(entities);
|
|
3337
3484
|
}
|
|
3338
3485
|
/***************************************************************************
|
|
3339
3486
|
* *
|
|
@@ -3344,14 +3491,20 @@ class DataContextBase extends DataSource {
|
|
|
3344
3491
|
return this.reloadInternal(); // TODO This should actually return the real (http) request
|
|
3345
3492
|
}
|
|
3346
3493
|
/**
|
|
3347
|
-
* Append the given rows to
|
|
3494
|
+
* Append the given rows to the existing ones.
|
|
3348
3495
|
*/
|
|
3349
3496
|
appendData(additionalData) {
|
|
3350
|
-
|
|
3351
|
-
|
|
3352
|
-
|
|
3497
|
+
additionalData = this.localApply(additionalData);
|
|
3498
|
+
this.indexAll(additionalData);
|
|
3499
|
+
this._data.append(additionalData);
|
|
3500
|
+
}
|
|
3501
|
+
/**
|
|
3502
|
+
* Insert the given rows at the given location.
|
|
3503
|
+
*/
|
|
3504
|
+
insertData(additionalData, offset) {
|
|
3505
|
+
additionalData = this.localApply(additionalData);
|
|
3353
3506
|
this.indexAll(additionalData);
|
|
3354
|
-
this.
|
|
3507
|
+
this._data.insert(additionalData, offset);
|
|
3355
3508
|
}
|
|
3356
3509
|
/**
|
|
3357
3510
|
* Replaces the existing data with the new set.
|
|
@@ -3359,19 +3512,22 @@ class DataContextBase extends DataSource {
|
|
|
3359
3512
|
* @param alreadyIndexed The rows will be indexed unless they already have been.
|
|
3360
3513
|
*/
|
|
3361
3514
|
setData(newData, alreadyIndexed = false) {
|
|
3362
|
-
|
|
3363
|
-
newData = this._localApply(newData);
|
|
3364
|
-
}
|
|
3365
|
-
if (this._localSort) {
|
|
3366
|
-
newData = this._localSort(newData, this._sort.sortsSnapshot);
|
|
3367
|
-
}
|
|
3515
|
+
newData = this.localApply(newData);
|
|
3368
3516
|
if (!alreadyIndexed) {
|
|
3517
|
+
this.clearIndex();
|
|
3369
3518
|
this.indexAll(newData);
|
|
3370
3519
|
}
|
|
3371
|
-
|
|
3372
|
-
|
|
3373
|
-
|
|
3374
|
-
|
|
3520
|
+
this._data.replaceAll(newData);
|
|
3521
|
+
}
|
|
3522
|
+
clearData() {
|
|
3523
|
+
this.setData([]);
|
|
3524
|
+
}
|
|
3525
|
+
localApply(data) {
|
|
3526
|
+
if (this._localApply) {
|
|
3527
|
+
return this._localApply(data);
|
|
3528
|
+
}
|
|
3529
|
+
else {
|
|
3530
|
+
return data;
|
|
3375
3531
|
}
|
|
3376
3532
|
}
|
|
3377
3533
|
setTotal(total) {
|
|
@@ -3385,7 +3541,7 @@ class DataContextBase extends DataSource {
|
|
|
3385
3541
|
this.clearIndex();
|
|
3386
3542
|
if (!silent) {
|
|
3387
3543
|
this.setTotal(0);
|
|
3388
|
-
this.
|
|
3544
|
+
this.clearData();
|
|
3389
3545
|
}
|
|
3390
3546
|
this.onIdle();
|
|
3391
3547
|
}
|
|
@@ -3399,7 +3555,7 @@ class DataContextBase extends DataSource {
|
|
|
3399
3555
|
indexItem(item) {
|
|
3400
3556
|
const key = this.getItemKey(item);
|
|
3401
3557
|
if (key) {
|
|
3402
|
-
this.
|
|
3558
|
+
this._customIndex.set(key, item);
|
|
3403
3559
|
}
|
|
3404
3560
|
}
|
|
3405
3561
|
/**
|
|
@@ -3416,6 +3572,9 @@ class DataContextBase extends DataSource {
|
|
|
3416
3572
|
}
|
|
3417
3573
|
return null;
|
|
3418
3574
|
}
|
|
3575
|
+
getItemId(item) {
|
|
3576
|
+
return this.dataSource.getId(item);
|
|
3577
|
+
}
|
|
3419
3578
|
/***************************************************************************
|
|
3420
3579
|
* *
|
|
3421
3580
|
* Event handler *
|
|
@@ -3456,7 +3615,7 @@ class DataContextBase extends DataSource {
|
|
|
3456
3615
|
* *
|
|
3457
3616
|
**************************************************************************/
|
|
3458
3617
|
clearIndex() {
|
|
3459
|
-
this.
|
|
3618
|
+
this._customIndex.clear();
|
|
3460
3619
|
}
|
|
3461
3620
|
}
|
|
3462
3621
|
|
|
@@ -3690,7 +3849,7 @@ class DataContextContinuablePaged extends DataContextContinuableBase {
|
|
|
3690
3849
|
this.onIdle();
|
|
3691
3850
|
}, err => {
|
|
3692
3851
|
this.onError(err);
|
|
3693
|
-
this.
|
|
3852
|
+
this.clearData();
|
|
3694
3853
|
this.setTotal(0);
|
|
3695
3854
|
this.logger.error('Failed to query data', err);
|
|
3696
3855
|
subject.error(err);
|
|
@@ -3705,13 +3864,12 @@ class DataContextContinuablePaged extends DataContextContinuableBase {
|
|
|
3705
3864
|
try {
|
|
3706
3865
|
this.setTotal(page.totalElements);
|
|
3707
3866
|
const start = page.number * page.size;
|
|
3708
|
-
|
|
3709
|
-
|
|
3710
|
-
|
|
3711
|
-
|
|
3712
|
-
this.
|
|
3867
|
+
if (clear) {
|
|
3868
|
+
this.setData(page.content);
|
|
3869
|
+
}
|
|
3870
|
+
else {
|
|
3871
|
+
this.insertData(page.content, start);
|
|
3713
3872
|
}
|
|
3714
|
-
this.setData(newData, true);
|
|
3715
3873
|
}
|
|
3716
3874
|
catch (err) {
|
|
3717
3875
|
this.onError(err);
|
|
@@ -3810,7 +3968,7 @@ class DataContextContinuableToken extends DataContextContinuableBase {
|
|
|
3810
3968
|
}, err => {
|
|
3811
3969
|
this.onError(err);
|
|
3812
3970
|
this.logger.error('Failed to query data', err);
|
|
3813
|
-
this.
|
|
3971
|
+
this.clearData();
|
|
3814
3972
|
this.setTotal(0);
|
|
3815
3973
|
subject.error(err);
|
|
3816
3974
|
});
|
|
@@ -3946,7 +4104,7 @@ class DataContextActivePage extends DataContextBase {
|
|
|
3946
4104
|
subject.next(success);
|
|
3947
4105
|
this.onIdle();
|
|
3948
4106
|
}, err => {
|
|
3949
|
-
this.
|
|
4107
|
+
this.clearData();
|
|
3950
4108
|
this.actlogger.error('Failed to query data', err);
|
|
3951
4109
|
subject.error(err);
|
|
3952
4110
|
this.onError(err);
|
|
@@ -4124,7 +4282,9 @@ class DataContextLifeCycleBinding {
|
|
|
4124
4282
|
if (_dataContext == null) {
|
|
4125
4283
|
throw new Error('dataContext must not be null!');
|
|
4126
4284
|
}
|
|
4127
|
-
this._dataContext.data.subscribe(
|
|
4285
|
+
this._dataContext.data.subscribe({
|
|
4286
|
+
complete: () => this.unsubscribe()
|
|
4287
|
+
});
|
|
4128
4288
|
}
|
|
4129
4289
|
/***************************************************************************
|
|
4130
4290
|
* *
|
|
@@ -4277,14 +4437,72 @@ class DataContextAutoStarter extends DataContextLifeCycleBinding {
|
|
|
4277
4437
|
}
|
|
4278
4438
|
}
|
|
4279
4439
|
|
|
4280
|
-
class
|
|
4281
|
-
|
|
4440
|
+
class DataContextSourceEventBinding extends DataContextLifeCycleBinding {
|
|
4441
|
+
/***************************************************************************
|
|
4442
|
+
* *
|
|
4443
|
+
* Fields *
|
|
4444
|
+
* *
|
|
4445
|
+
**************************************************************************/
|
|
4446
|
+
/***************************************************************************
|
|
4447
|
+
* *
|
|
4448
|
+
* Constructor *
|
|
4449
|
+
* *
|
|
4450
|
+
**************************************************************************/
|
|
4451
|
+
constructor(dataContext, dataApi, reloadOnChanges) {
|
|
4282
4452
|
super(dataContext);
|
|
4283
4453
|
this.dataApi = dataApi;
|
|
4454
|
+
this.reloadOnChanges = reloadOnChanges;
|
|
4284
4455
|
this.subscribe();
|
|
4285
4456
|
}
|
|
4457
|
+
/***************************************************************************
|
|
4458
|
+
* *
|
|
4459
|
+
* Internal Impl *
|
|
4460
|
+
* *
|
|
4461
|
+
**************************************************************************/
|
|
4286
4462
|
subscribe() {
|
|
4287
|
-
this._subscription = this.dataApi.dataChanged.subscribe(
|
|
4463
|
+
this._subscription = this.dataApi.dataChanged.subscribe(event => this.handleDataChangeEvent(event));
|
|
4464
|
+
}
|
|
4465
|
+
/***************************************************************************
|
|
4466
|
+
* *
|
|
4467
|
+
* Private methods *
|
|
4468
|
+
* *
|
|
4469
|
+
**************************************************************************/
|
|
4470
|
+
handleDataChangeEvent(event) {
|
|
4471
|
+
if (this.reloadOnChanges && this.isReloadDesirable(event)) {
|
|
4472
|
+
this._dataContext.reload();
|
|
4473
|
+
return;
|
|
4474
|
+
}
|
|
4475
|
+
// We might also be able to perform deletions locally, and avoid reload data
|
|
4476
|
+
if (event.modified) {
|
|
4477
|
+
this._dataContext.update(event.modified);
|
|
4478
|
+
}
|
|
4479
|
+
}
|
|
4480
|
+
isReloadDesirable(event) {
|
|
4481
|
+
return event.unknownChanges || event.created || event.deletedIds;
|
|
4482
|
+
}
|
|
4483
|
+
}
|
|
4484
|
+
|
|
4485
|
+
var DataSourceChangeType;
|
|
4486
|
+
(function (DataSourceChangeType) {
|
|
4487
|
+
})(DataSourceChangeType || (DataSourceChangeType = {}));
|
|
4488
|
+
class DataSourceChangeEvent {
|
|
4489
|
+
constructor(deletedIds, modified, created) {
|
|
4490
|
+
this.deletedIds = deletedIds;
|
|
4491
|
+
this.modified = modified;
|
|
4492
|
+
this.created = created;
|
|
4493
|
+
this.unknownChanges = !deletedIds && !modified && !created;
|
|
4494
|
+
}
|
|
4495
|
+
static unknownChanges() {
|
|
4496
|
+
return new DataSourceChangeEvent(null, null, null);
|
|
4497
|
+
}
|
|
4498
|
+
static deleted(ids) {
|
|
4499
|
+
return new DataSourceChangeEvent(ids, null, null);
|
|
4500
|
+
}
|
|
4501
|
+
static modified(modified) {
|
|
4502
|
+
return new DataSourceChangeEvent(null, modified, null);
|
|
4503
|
+
}
|
|
4504
|
+
static created(created) {
|
|
4505
|
+
return new DataSourceChangeEvent(null, null, created);
|
|
4288
4506
|
}
|
|
4289
4507
|
}
|
|
4290
4508
|
|
|
@@ -4299,13 +4517,50 @@ class EntityIdUtil {
|
|
|
4299
4517
|
}
|
|
4300
4518
|
}
|
|
4301
4519
|
|
|
4302
|
-
class
|
|
4520
|
+
class DataSourceBase {
|
|
4521
|
+
/***************************************************************************
|
|
4522
|
+
* *
|
|
4523
|
+
* Constructor *
|
|
4524
|
+
* *
|
|
4525
|
+
**************************************************************************/
|
|
4526
|
+
constructor(idProperty) {
|
|
4527
|
+
this.idProperty = idProperty;
|
|
4528
|
+
/***************************************************************************
|
|
4529
|
+
* *
|
|
4530
|
+
* Fields *
|
|
4531
|
+
* *
|
|
4532
|
+
**************************************************************************/
|
|
4533
|
+
this.dataChangeEvents$ = new Subject();
|
|
4534
|
+
}
|
|
4535
|
+
/***************************************************************************
|
|
4536
|
+
* *
|
|
4537
|
+
* Properties *
|
|
4538
|
+
* *
|
|
4539
|
+
**************************************************************************/
|
|
4540
|
+
get dataChanged() {
|
|
4541
|
+
return this.dataChangeEvents$.asObservable();
|
|
4542
|
+
}
|
|
4543
|
+
/***************************************************************************
|
|
4544
|
+
* *
|
|
4545
|
+
* Public API *
|
|
4546
|
+
* *
|
|
4547
|
+
**************************************************************************/
|
|
4548
|
+
publishChangeEvent(e) {
|
|
4549
|
+
this.dataChangeEvents$.next(e);
|
|
4550
|
+
}
|
|
4551
|
+
getId(entity) {
|
|
4552
|
+
return EntityIdUtil.getId(entity, this.idProperty);
|
|
4553
|
+
}
|
|
4554
|
+
}
|
|
4555
|
+
|
|
4556
|
+
class LocalListDataSource extends DataSourceBase {
|
|
4303
4557
|
/***************************************************************************
|
|
4304
4558
|
* *
|
|
4305
4559
|
* Constructor *
|
|
4306
4560
|
* *
|
|
4307
4561
|
**************************************************************************/
|
|
4308
4562
|
constructor(localData, localSort, localFilter, idProperty) {
|
|
4563
|
+
super(idProperty || LocalListDataSource.guessIdProperty(localData));
|
|
4309
4564
|
/***************************************************************************
|
|
4310
4565
|
* *
|
|
4311
4566
|
* Fields *
|
|
@@ -4313,13 +4568,11 @@ class LocalListDataSource {
|
|
|
4313
4568
|
**************************************************************************/
|
|
4314
4569
|
this.logger = LoggerFactory.getLogger(this.constructor.name);
|
|
4315
4570
|
this.data$ = new BehaviorSubject([]);
|
|
4316
|
-
this.dataChange$ = new Subject();
|
|
4317
4571
|
if (!localData) {
|
|
4318
4572
|
throw new Error('localData must not be null!');
|
|
4319
4573
|
}
|
|
4320
4574
|
this.localSort = localSort || ((data, sort) => data);
|
|
4321
4575
|
this.localFilter = localFilter || ((data, sort) => data);
|
|
4322
|
-
this.idProperty = idProperty || this.guessIdProperty(localData);
|
|
4323
4576
|
this.data = localData;
|
|
4324
4577
|
}
|
|
4325
4578
|
/***************************************************************************
|
|
@@ -4345,9 +4598,6 @@ class LocalListDataSource {
|
|
|
4345
4598
|
* IDataSource API *
|
|
4346
4599
|
* *
|
|
4347
4600
|
**************************************************************************/
|
|
4348
|
-
get dataChanged() {
|
|
4349
|
-
return this.dataChange$.asObservable();
|
|
4350
|
-
}
|
|
4351
4601
|
findById(id) {
|
|
4352
4602
|
return of(this.data.find(d => this.getId(d) === id));
|
|
4353
4603
|
}
|
|
@@ -4357,9 +4607,6 @@ class LocalListDataSource {
|
|
|
4357
4607
|
findAllFiltered(filters, sorts) {
|
|
4358
4608
|
return of(this.data).pipe(map(data => this.localFilter(data, filters)), map(data => this.localSort(data, sorts)));
|
|
4359
4609
|
}
|
|
4360
|
-
getId(entity) {
|
|
4361
|
-
return EntityIdUtil.getId(entity, this.idProperty);
|
|
4362
|
-
}
|
|
4363
4610
|
/***************************************************************************
|
|
4364
4611
|
* *
|
|
4365
4612
|
* Public API *
|
|
@@ -4367,7 +4614,7 @@ class LocalListDataSource {
|
|
|
4367
4614
|
**************************************************************************/
|
|
4368
4615
|
set data(data) {
|
|
4369
4616
|
this.data$.next(data);
|
|
4370
|
-
this.
|
|
4617
|
+
this.publishChangeEvent(DataSourceChangeEvent.unknownChanges());
|
|
4371
4618
|
}
|
|
4372
4619
|
get data() {
|
|
4373
4620
|
return this.data$.getValue();
|
|
@@ -4377,19 +4624,17 @@ class LocalListDataSource {
|
|
|
4377
4624
|
* Private methods *
|
|
4378
4625
|
* *
|
|
4379
4626
|
**************************************************************************/
|
|
4380
|
-
|
|
4381
|
-
|
|
4382
|
-
}
|
|
4383
|
-
guessIdProperty(localData) {
|
|
4627
|
+
static guessIdProperty(localData) {
|
|
4628
|
+
const log = LoggerFactory.getLogger('LocalListDataSource');
|
|
4384
4629
|
if (localData && localData.length > 0) {
|
|
4385
4630
|
const sample = localData[0];
|
|
4386
4631
|
if (typeof sample === 'object') {
|
|
4387
4632
|
if (sample.hasOwnProperty('id')) {
|
|
4388
|
-
|
|
4633
|
+
log.warn('DataSource without defined id-property => autodetected property id-property as "id"');
|
|
4389
4634
|
return 'id'; // Use id
|
|
4390
4635
|
}
|
|
4391
4636
|
else {
|
|
4392
|
-
|
|
4637
|
+
log.warn('Local DataSource created without defined id-property and objects. Using object equality!');
|
|
4393
4638
|
}
|
|
4394
4639
|
}
|
|
4395
4640
|
}
|
|
@@ -4403,11 +4648,11 @@ class LocalPagedDataSource {
|
|
|
4403
4648
|
* Constructor *
|
|
4404
4649
|
* *
|
|
4405
4650
|
**************************************************************************/
|
|
4406
|
-
constructor(
|
|
4407
|
-
if (!
|
|
4408
|
-
throw new Error('
|
|
4651
|
+
constructor(listDataSource) {
|
|
4652
|
+
if (!listDataSource) {
|
|
4653
|
+
throw new Error('listDataSource must not be null!');
|
|
4409
4654
|
}
|
|
4410
|
-
this.localListFetcher =
|
|
4655
|
+
this.localListFetcher = listDataSource;
|
|
4411
4656
|
}
|
|
4412
4657
|
/***************************************************************************
|
|
4413
4658
|
* *
|
|
@@ -4422,10 +4667,10 @@ class LocalPagedDataSource {
|
|
|
4422
4667
|
* @param localFilter
|
|
4423
4668
|
*/
|
|
4424
4669
|
static empty(idProperty, localSort, localFilter) {
|
|
4425
|
-
return LocalPagedDataSource.
|
|
4670
|
+
return LocalPagedDataSource.of(LocalListDataSource.empty(idProperty, localSort, localFilter));
|
|
4426
4671
|
}
|
|
4427
|
-
static
|
|
4428
|
-
return new LocalPagedDataSource(
|
|
4672
|
+
static of(listDataSource) {
|
|
4673
|
+
return new LocalPagedDataSource(listDataSource);
|
|
4429
4674
|
}
|
|
4430
4675
|
/***************************************************************************
|
|
4431
4676
|
* *
|
|
@@ -4820,12 +5065,15 @@ class DataContextBuilder {
|
|
|
4820
5065
|
* *
|
|
4821
5066
|
**************************************************************************/
|
|
4822
5067
|
buildLocal(items, idProperty) {
|
|
4823
|
-
return this.build(
|
|
5068
|
+
return this.build(this.localListSource(items, idProperty));
|
|
4824
5069
|
}
|
|
4825
|
-
buildLocalActivePaged(
|
|
5070
|
+
buildLocalActivePaged(items, idProperty) {
|
|
4826
5071
|
this._skipLocalSort = true;
|
|
4827
5072
|
this.activePaged();
|
|
4828
|
-
return this.build(LocalPagedDataSource.
|
|
5073
|
+
return this.build(LocalPagedDataSource.of(this.localListSource(items, idProperty)));
|
|
5074
|
+
}
|
|
5075
|
+
localListSource(items, idProperty) {
|
|
5076
|
+
return LocalListDataSource.from(items, idProperty, this._localSort, FilterUtil.filterData);
|
|
4829
5077
|
}
|
|
4830
5078
|
/***************************************************************************
|
|
4831
5079
|
* *
|
|
@@ -4914,9 +5162,7 @@ class DataContextBuilder {
|
|
|
4914
5162
|
return new DataContextActivePage(pageSource, this._pageSize, this._indexFn, this._localApply, this._skipLocalSort ? null : this._localSort);
|
|
4915
5163
|
}
|
|
4916
5164
|
setupDataContextAutoReload(dc, dataSource) {
|
|
4917
|
-
|
|
4918
|
-
const binding = new DataContextSourceAutoReloader(dc, dataSource);
|
|
4919
|
-
}
|
|
5165
|
+
const binding = new DataContextSourceEventBinding(dc, dataSource, this._reloadOnLocalChanges);
|
|
4920
5166
|
return dc;
|
|
4921
5167
|
}
|
|
4922
5168
|
setupDataContextAutoStart(dc, autoStartSpec) {
|
|
@@ -5226,13 +5472,14 @@ class InternalRestClientConfig {
|
|
|
5226
5472
|
*/
|
|
5227
5473
|
class RestClientConfig {
|
|
5228
5474
|
}
|
|
5229
|
-
class RestClient {
|
|
5475
|
+
class RestClient extends DataSourceBase {
|
|
5230
5476
|
/***************************************************************************
|
|
5231
5477
|
* *
|
|
5232
5478
|
* Constructor *
|
|
5233
5479
|
* *
|
|
5234
5480
|
**************************************************************************/
|
|
5235
5481
|
constructor(restEndpoint, http, config) {
|
|
5482
|
+
super(config.idField);
|
|
5236
5483
|
this.restEndpoint = restEndpoint;
|
|
5237
5484
|
this.http = http;
|
|
5238
5485
|
/***************************************************************************
|
|
@@ -5241,22 +5488,7 @@ class RestClient {
|
|
|
5241
5488
|
* *
|
|
5242
5489
|
**************************************************************************/
|
|
5243
5490
|
this._logger = LoggerFactory.getLogger(this.constructor.name);
|
|
5244
|
-
this.
|
|
5245
|
-
this.config = new InternalRestClientConfig(config);
|
|
5246
|
-
}
|
|
5247
|
-
/***************************************************************************
|
|
5248
|
-
* *
|
|
5249
|
-
* Properties *
|
|
5250
|
-
* *
|
|
5251
|
-
**************************************************************************/
|
|
5252
|
-
get dataChanged() {
|
|
5253
|
-
return this.localChangeSubject.asObservable();
|
|
5254
|
-
}
|
|
5255
|
-
/**
|
|
5256
|
-
* @deprecated Use dataChanged
|
|
5257
|
-
*/
|
|
5258
|
-
get localChanged() {
|
|
5259
|
-
return this.dataChanged;
|
|
5491
|
+
this.config = config;
|
|
5260
5492
|
}
|
|
5261
5493
|
/***************************************************************************
|
|
5262
5494
|
* *
|
|
@@ -5281,26 +5513,24 @@ class RestClient {
|
|
|
5281
5513
|
create(newEntity, params) {
|
|
5282
5514
|
return this.http.post(this.restEndpoint, newEntity, {
|
|
5283
5515
|
params: params
|
|
5284
|
-
})
|
|
5285
|
-
.pipe(tap(e => this.onLocalChanged(e)));
|
|
5516
|
+
}).pipe(tap(e => this.publishChangeEvent(DataSourceChangeEvent.created([e]))));
|
|
5286
5517
|
}
|
|
5287
|
-
update(
|
|
5288
|
-
return this.http.put(this.getEntityUrlBy(
|
|
5518
|
+
update(update, params) {
|
|
5519
|
+
return this.http.put(this.getEntityUrlBy(update), update, {
|
|
5289
5520
|
params: params
|
|
5290
|
-
})
|
|
5291
|
-
.pipe(tap(e => this.onLocalChanged(e)));
|
|
5521
|
+
}).pipe(tap(e => this.publishChangeEvent(DataSourceChangeEvent.modified([e]))));
|
|
5292
5522
|
}
|
|
5293
5523
|
updateAll(updatedEntities, params) {
|
|
5294
5524
|
return this.http.put(this.restEndpoint, updatedEntities, {
|
|
5295
5525
|
params: params
|
|
5296
5526
|
})
|
|
5297
|
-
.pipe(tap(
|
|
5527
|
+
.pipe(tap(entities => this.publishChangeEvent(DataSourceChangeEvent.modified(entities))));
|
|
5298
5528
|
}
|
|
5299
5529
|
delete(entity, params) {
|
|
5300
5530
|
return this.http.delete(this.getEntityUrlBy(entity), {
|
|
5301
5531
|
responseType: 'text',
|
|
5302
5532
|
params: params
|
|
5303
|
-
}).pipe(tap(() => this.
|
|
5533
|
+
}).pipe(tap(() => this.publishChangeEvent(DataSourceChangeEvent.deleted([this.getId(entity)]))));
|
|
5304
5534
|
}
|
|
5305
5535
|
deleteAll(entities, params) {
|
|
5306
5536
|
const ids = entities.map(e => String(this.getId(e)));
|
|
@@ -5309,9 +5539,6 @@ class RestClient {
|
|
|
5309
5539
|
this._logger.debug('Deleting ' + entities.length + ' in ' + deleteRequests.length + ' batches: ', deleteRequests);
|
|
5310
5540
|
return forkJoin(deleteRequests);
|
|
5311
5541
|
}
|
|
5312
|
-
getId(entity) {
|
|
5313
|
-
return EntityIdUtil.getId(entity, this.config.idField);
|
|
5314
|
-
}
|
|
5315
5542
|
/***************************************************************************
|
|
5316
5543
|
* *
|
|
5317
5544
|
* Sub Resource Builder *
|
|
@@ -5334,15 +5561,18 @@ class RestClient {
|
|
|
5334
5561
|
patchInternal(id, entityPatch, params) {
|
|
5335
5562
|
return this.http.patch(this.getEntityUrl(id), entityPatch, {
|
|
5336
5563
|
params: params
|
|
5337
|
-
}).pipe(tap(e => this.
|
|
5564
|
+
}).pipe(tap(e => this.publishChangeEvent(DataSourceChangeEvent.modified([e]))));
|
|
5338
5565
|
}
|
|
5339
5566
|
patchAllInternal(entityPatches, params) {
|
|
5340
5567
|
return this.http.patch(this.restEndpoint, entityPatches, {
|
|
5341
5568
|
params: params
|
|
5342
|
-
}).pipe(tap(e => this.
|
|
5569
|
+
}).pipe(tap(e => this.publishChangeEvent(DataSourceChangeEvent.modified(e))));
|
|
5343
5570
|
}
|
|
5571
|
+
/**
|
|
5572
|
+
* @deprecated Switch to publishChangeEvent
|
|
5573
|
+
*/
|
|
5344
5574
|
onLocalChanged(entity) {
|
|
5345
|
-
this.
|
|
5575
|
+
this.publishChangeEvent(DataSourceChangeEvent.unknownChanges());
|
|
5346
5576
|
}
|
|
5347
5577
|
getEntityUrlBy(entity) {
|
|
5348
5578
|
return this.getEntityUrl(this.getId(entity));
|
|
@@ -5369,7 +5599,7 @@ class RestClient {
|
|
|
5369
5599
|
params: builder.build(),
|
|
5370
5600
|
responseType: 'text'
|
|
5371
5601
|
})
|
|
5372
|
-
.pipe(tap(() =>
|
|
5602
|
+
.pipe(tap(() => DataSourceChangeEvent.deleted(ids)));
|
|
5373
5603
|
}
|
|
5374
5604
|
}
|
|
5375
5605
|
class RestClientList extends RestClient {
|
|
@@ -5379,7 +5609,7 @@ class RestClientList extends RestClient {
|
|
|
5379
5609
|
* *
|
|
5380
5610
|
**************************************************************************/
|
|
5381
5611
|
constructor(restEndpoint, http, config) {
|
|
5382
|
-
super(restEndpoint, http, config);
|
|
5612
|
+
super(restEndpoint, http, new InternalRestClientConfig(config));
|
|
5383
5613
|
}
|
|
5384
5614
|
/***************************************************************************
|
|
5385
5615
|
* *
|
|
@@ -5413,7 +5643,7 @@ class RestClientPaged extends RestClient {
|
|
|
5413
5643
|
* *
|
|
5414
5644
|
**************************************************************************/
|
|
5415
5645
|
constructor(restEndpoint, http, config) {
|
|
5416
|
-
super(restEndpoint, http, config);
|
|
5646
|
+
super(restEndpoint, http, new InternalRestClientConfig(config));
|
|
5417
5647
|
}
|
|
5418
5648
|
/***************************************************************************
|
|
5419
5649
|
* *
|
|
@@ -5458,7 +5688,7 @@ class RestClientContinuable extends RestClient {
|
|
|
5458
5688
|
* *
|
|
5459
5689
|
**************************************************************************/
|
|
5460
5690
|
constructor(restEndpoint, http, config) {
|
|
5461
|
-
super(restEndpoint, http, config);
|
|
5691
|
+
super(restEndpoint, http, new InternalRestClientConfig(config));
|
|
5462
5692
|
}
|
|
5463
5693
|
/***************************************************************************
|
|
5464
5694
|
* *
|
|
@@ -28671,6 +28901,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImpor
|
|
|
28671
28901
|
* Generated bundle index. Do not edit.
|
|
28672
28902
|
*/
|
|
28673
28903
|
|
|
28674
|
-
export { AuditedEntity, AutoStartSpec, BlobUrl, BytesFormat, BytesPerSecondFormat, BytesPipe, CardDropEvent, CardOrganizerData, CardStack, CollectionUtil, ComparatorBuilder, ConfirmDialogConfig, ContinuableListing, CsvColumnSpec, CsvSerializer, CsvSpec, CsvStreamExporter, CsvStreamExporterBuilder, CsvStreamExporterBuilderService, Currency, CurrencyCode, CurrencyUnit, CurrencyUnitRegistry, CustomDateAdapter, DataContextActivePage, DataContextAutoStarter, DataContextBase, DataContextBuilder, DataContextContinuableBase, DataContextContinuablePaged, DataContextContinuableToken, DataContextLifeCycleBinding, DataContextSelectionDirective, DataContextSimple, DataContextSnapshot, DataContextSourceAutoReloader, DataContextStateIndicatorComponent, DataContextStatus, DataSourceAdapter, DataSourceProcessor, DataTransferFactory, DataTransferProgress, DataTransferProgressAggregate, DataTransferState, DataTransferStatus, DataViewIframeAdapterDirective, DataViewIframeComponent, DataViewMessage, DataViewOptionsProviderBinding, DataViewSelection, DataViewSelectionInit, DateUtil, DelegateContinuableDataSource, DelegateDataSource, DelegateListDataSource, DelegatePagedDataSource, Dimensions, DrawerOutletBinding, DurationBucket, DurationFormat, ELDER_DATA_VIEW, ELDER_SELECT_BASE, ElderAccessDeniedComponent, ElderAccessDeniedModule, ElderAppHeaderComponent, ElderAuditModule, ElderAuditedEntityComponent, ElderAutoSelectFirstDirective, ElderAutocompleteComponent, ElderAutocompleteDirective, ElderAutocompleteManyDirective, ElderAutocompleteModule, ElderBlobViewerComponent, ElderBreadCrumbsComponent, ElderBreadCrumbsModule, ElderButtonGroupComponent, ElderButtonGroupModule, ElderCardComponent, ElderCardContentDirective, ElderCardHeaderActionsDirective, ElderCardHeaderComponent, ElderCardModule, ElderCardOrganizerComponent, ElderCardOrganizerModule, ElderCardPanelComponent, ElderCardStackComponent, ElderCardSubtitleDirective, ElderCardTitleDirective, ElderCheckboxState, ElderChipLabelDirective, ElderChipListSelectComponent, ElderChipListSelectModule, ElderChipsModule, ElderClearSelectDirective, ElderClipboardPutDirective, ElderClipboardService, ElderConfirmDialogComponent, ElderConnectivityModule, ElderConnectivityService, ElderContainersModule, ElderCsvExportBtnComponent, ElderCsvModule, ElderCurrencyModule, ElderCurrencyPipe, ElderDataCommonModule, ElderDataToolbarComponent, ElderDataTransferModule, ElderDataTransferService, ElderDataViewBaseComponent, ElderDataViewOptions, ElderDataViewOptionsProvider, ElderDateSwitcherComponent, ElderDateTimeInputComponent, ElderDatesModule, ElderDelayedFocusDirective, ElderDialogConfig, ElderDialogModule, ElderDialogPanelComponent, ElderDialogService, ElderDimensionsInputComponent, ElderDurationInputComponent, ElderEntityValueAccessorUtil, ElderEnumTranslationService, ElderErrorModule, ElderEventSourceService, ElderExceptionDetailComponent, ElderExpandToggleButtonComponent, ElderExpandToggleButtonModule, ElderFileDropZoneDirective, ElderFileModule, ElderFileSelectComponent, ElderFileSelectDirective, ElderFileUploadComponent, ElderFormFieldControlBase, ElderFormFieldDenseDirective, ElderFormFieldLabelDirective, ElderFormFieldNoHintDirective, ElderFormFieldNoSpinnerDirective, ElderFormsDirectivesModule, ElderFormsModule, ElderFromFieldBase, ElderFromFieldEntityBase, ElderFromFieldMultiEntityBase, ElderGlobalSearchComponent, ElderGlobalSearchModule, ElderGlobalSearchService, ElderGridComponent, ElderGridModule, ElderGridTileDirective, ElderGridToolbarDirective, ElderHeaderComponent, ElderHeaderModule, ElderHttpClient, ElderI18nEntitiesModule, ElderIFrameModule, ElderInfiniteAutocompleteDirective, ElderInfiniteScrollDirective, ElderInfiniteScrollLegacyDirective, ElderInfiniteScrollModule, ElderInputPatternDirective, ElderIntervalInputComponent, ElderKeyEventDirective, ElderLabelInputComponent, ElderLabelsModule, ElderLanguageConfig, ElderLanguageInterceptor, ElderLanguageModule, ElderLanguageService, ElderLanguageSwitcherComponent, ElderLocalDateInputComponent, ElderLocalTimeInputComponent, ElderLocalesDeChModule, ElderLocalizedInputComponent, ElderLocalizedInputDialogComponent, ElderLocalizedInputDialogService, ElderLocalizedInputTableComponent, ElderLocalizedTextColumnDirective, ElderLocalizedTextsDirective, ElderMaxValidator, ElderMeasuresModule, ElderMinValidator, ElderMultiEntityValueAccessorUtil, ElderMultiSelectBase, ElderMultiSelectChipsComponent, ElderMultiSelectFormField, ElderMultipleOfUtil, ElderMultipleOfValidator, ElderNavGroupComponent, ElderNavLinkComponent, ElderNavListComponent, ElderNavModule, ElderNextFocusableDirective, ElderNumberCellDirective, ElderOfflineIndicatorComponent, ElderOverlayComponent, ElderOverlayModule, ElderOverlayOriginDirective, ElderOverlayTriggerDirective, ElderPaddingDirective, ElderPanelComponent, ElderPanelModule, ElderPeriodInputComponent, ElderPipesModule, ElderPlugParentFormDirective, ElderProgressBarComponent, ElderProgressBarModule, ElderQuantityFormFieldComponent, ElderQuantityInputControlComponent, ElderQuantityModule, ElderQuantityPipe, ElderQuantityRangeValidator, ElderQuantityService, ElderQuantityTransformPipe, ElderQuestionDialogComponent, ElderRepeatPipe, ElderRepeatPipeLegacy, ElderRequiredDimensionsValidator, ElderRequiredIgnoreZeroValidator, ElderRequiredQuantityValidator, ElderRoundPipe, ElderRouteOutletDrawerService, ElderRouterOutletService, ElderRouterService, ElderSafeUrlPipe, ElderScrollContainerComponent, ElderSearchBoxComponent, ElderSearchContextDirective, ElderSearchInputDirective, ElderSearchModule, ElderSearchPanelComponent, ElderSelectBase, ElderSelectChipAvatarDirective, ElderSelectChipDirective, ElderSelectComponent, ElderSelectComponentState, ElderSelectCustomInputDirective, ElderSelectFormField, ElderSelectModule, ElderSelectOnTabDirective, ElderSelectValueDirective, ElderSelectionDialogComponent, ElderSelectionDialogDirective, ElderSelectionMasterCheckboxComponent, ElderSelectionPopupTriggerAdapterDirective, ElderShellCenterDirective, ElderShellComponent, ElderShellModule, ElderShellNavigationToggleComponent, ElderShellService, ElderShellSideLeftDirective, ElderShellSideRightDirective, ElderShellSlotDirective, ElderSimpleSelectionViewComponent, ElderSimpleSelectionViewModule, ElderSingleSortComponent, ElderStackCardDirective, ElderStopEventPropagationDirective, ElderSvgViewerComponent, ElderTabDirective, ElderTabFocusTrapDirective, ElderTabGroupRoutingDirective, ElderTabModule, ElderTableActivationDirective, ElderTableComponent, ElderTableExtensionDirective, ElderTableGroup, ElderTableModel, ElderTableModelCdkTableBinding, ElderTableModelQueryGroup, ElderTableModule, ElderTableProviders, ElderTableRootDirective, ElderTableSortDirective, ElderTableToolbarDirective, ElderThemeApplierDirective, ElderThemeDirective, ElderThemeModule, ElderThemePreferenceService, ElderThemeService, ElderThemeToggleComponent, ElderTimeModule, ElderToastModule, ElderToastService, ElderTogglePanelComponent, ElderTogglePanelPrimaryDirective, ElderTogglePanelSecondaryDirective, ElderTogglePanelTriggerDirective, ElderToolbarColumnDirective, ElderToolbarComponent, ElderToolbarContentDirective, ElderToolbarModule, ElderToolbarService, ElderToolbarTitleComponent, ElderToolbarTitleService, ElderTouchedDirective, ElderTrimPipe, ElderTripleStateCheckboxDirective, ElderTruncatePipe, ElderUnitSelectDirective, ElderUnitService, ElderUrlFragment, ElderUrlFragmentModule, ElderUrlFragmentParamsService, ElderUrlFragmentSwitcherComponent, ElderValidationErrorDirective, ElderViewersModule, EntitySetPatch, ErrorUtil, ExceptionDetailCtx, FileUploadClient, Filter, FilterContext, FilterUtil, FormFieldBaseComponent, HttpClientBuilder, HttpClientPristine, HttpDataTransfer, HttpDataTransferAggregateComponent, HttpDataTransferComponent, HttpDataTransferIndicatorComponent, HttpDataTransferOverviewComponent, HttpParamsBuilder, I18nBase, I18nPickAsyncPipe, I18nPickPipe, I18nText, IFrameState, IframeCloseDirective, IframeDialogComponent, IframeHostComponent, IframeService, IframeSideContentComponent, InternalRestClientConfig, Interval, IsoDurationPipe, IsoIntervalParsePipe, IsoIntervalPipe, JsonMapUtil, KafentConfig, KafentEvent, KafentEventService, KafentEventStream, KafentEventStreamDisabled, KafentEventStreamSse, KafentEventTransport, KafentModule, KafentSseEventChannel, KafentTokenProvider, KafentTokenProviderSessionStorage, KafentTopicSse, KnownElderThemes, KnownLocaleType, LocalListDataSource, LocalPagedDataSource, LocalisationPickerService, MasterSelectionState, MatTableDataContextBinding, MatTableDataContextBindingBuilder, MultiModelBaseComponent, NextNumberUtil, Objects, OnlineStatus, Page, PageRequest, Pageable, ParseUtil, Path, PathNode, PeriodBucket, PeriodDuration, PeriodFormat, ProcessIterationContext, ProcessState, PropertyPathUtil, Quantity, QueryListBinding, QuestionDialogConfig, ReactiveEventSource, ReactiveMap, RefreshingEntity, RestClient, RestClientConfig, RestClientContinuable, RestClientList, RestClientPaged, SearchQuery, SelectionModel, SelectionModelPopupDirective, Sets, SimpleLocalisationPicker, Sort, SortOption, SortUtil, SubBar, SuggestionProvider, TemplateCompositeControl, TemplatedSelectionDialogComponent, ThemeSpec, TimeAgoPipe, TimeDurationPipe, TimeUtil, ToastType, TokenChunkRequest, ToolbarHeader, TranslatedEnumValue, TypedEventMessage, Unit, UnitDimension, UnitDimensionInfo, UnitInfo, UnitRegistry, UrlBuilder, UrlQueryParams, UuidUtil, ValueAccessorBase, ValueWrapper, ViewProviders, WeightPipe, alphaNumStringComparator, buildFormIntegrationProviders, createDataOptionsProvider, createSelectionModel, existingOrNewElderTableModel, isActivePagedDataContext, isContinuableDataContext, isContinuableDataSource, isDataContext, isDataSource, isElderEntityValueAccessor, isElderMultiEntityValueAccessor, isListDataSource, isPagedDataSource, naturalValueComparator, newElderTableModel, proxyControlContainer, registerLocale, runInZone, themeInit };
|
|
28675
|
-
//# sourceMappingURL=elderbyte-ngx-starter.mjs.map
|
|
28904
|
+
export { AuditedEntity, AutoStartSpec, BlobUrl, BytesFormat, BytesPerSecondFormat, BytesPipe, CardDropEvent, CardOrganizerData, CardStack, CollectionUtil, ComparatorBuilder, ConfirmDialogConfig, ContinuableListing, CsvColumnSpec, CsvSerializer, CsvSpec, CsvStreamExporter, CsvStreamExporterBuilder, CsvStreamExporterBuilderService, Currency, CurrencyCode, CurrencyUnit, CurrencyUnitRegistry, CustomDateAdapter, DataContextActivePage, DataContextAutoStarter, DataContextBase, DataContextBuilder, DataContextContinuableBase, DataContextContinuablePaged, DataContextContinuableToken, DataContextLifeCycleBinding, DataContextSelectionDirective, DataContextSimple, DataContextSnapshot, DataContextSourceEventBinding, DataContextStateIndicatorComponent, DataContextStatus, DataSourceAdapter, DataSourceBase, DataSourceChangeEvent, DataSourceChangeType, DataSourceProcessor, DataTransferFactory, DataTransferProgress, DataTransferProgressAggregate, DataTransferState, DataTransferStatus, DataViewIframeAdapterDirective, DataViewIframeComponent, DataViewMessage, DataViewOptionsProviderBinding, DataViewSelection, DataViewSelectionInit, DateUtil, DelegateContinuableDataSource, DelegateDataSource, DelegateListDataSource, DelegatePagedDataSource, Dimensions, DrawerOutletBinding, DurationBucket, DurationFormat, ELDER_DATA_VIEW, ELDER_SELECT_BASE, ElderAccessDeniedComponent, ElderAccessDeniedModule, ElderAppHeaderComponent, ElderAuditModule, ElderAuditedEntityComponent, ElderAutoSelectFirstDirective, ElderAutocompleteComponent, ElderAutocompleteDirective, ElderAutocompleteManyDirective, ElderAutocompleteModule, ElderBlobViewerComponent, ElderBreadCrumbsComponent, ElderBreadCrumbsModule, ElderButtonGroupComponent, ElderButtonGroupModule, ElderCardComponent, ElderCardContentDirective, ElderCardHeaderActionsDirective, ElderCardHeaderComponent, ElderCardModule, ElderCardOrganizerComponent, ElderCardOrganizerModule, ElderCardPanelComponent, ElderCardStackComponent, ElderCardSubtitleDirective, ElderCardTitleDirective, ElderCheckboxState, ElderChipLabelDirective, ElderChipListSelectComponent, ElderChipListSelectModule, ElderChipsModule, ElderClearSelectDirective, ElderClipboardPutDirective, ElderClipboardService, ElderConfirmDialogComponent, ElderConnectivityModule, ElderConnectivityService, ElderContainersModule, ElderCsvExportBtnComponent, ElderCsvModule, ElderCurrencyModule, ElderCurrencyPipe, ElderDataCommonModule, ElderDataToolbarComponent, ElderDataTransferModule, ElderDataTransferService, ElderDataViewBaseComponent, ElderDataViewOptions, ElderDataViewOptionsProvider, ElderDateSwitcherComponent, ElderDateTimeInputComponent, ElderDatesModule, ElderDelayedFocusDirective, ElderDialogConfig, ElderDialogModule, ElderDialogPanelComponent, ElderDialogService, ElderDimensionsInputComponent, ElderDurationInputComponent, ElderEntityValueAccessorUtil, ElderEnumTranslationService, ElderErrorModule, ElderEventSourceService, ElderExceptionDetailComponent, ElderExpandToggleButtonComponent, ElderExpandToggleButtonModule, ElderFileDropZoneDirective, ElderFileModule, ElderFileSelectComponent, ElderFileSelectDirective, ElderFileUploadComponent, ElderFormFieldControlBase, ElderFormFieldDenseDirective, ElderFormFieldLabelDirective, ElderFormFieldNoHintDirective, ElderFormFieldNoSpinnerDirective, ElderFormsDirectivesModule, ElderFormsModule, ElderFromFieldBase, ElderFromFieldEntityBase, ElderFromFieldMultiEntityBase, ElderGlobalSearchComponent, ElderGlobalSearchModule, ElderGlobalSearchService, ElderGridComponent, ElderGridModule, ElderGridTileDirective, ElderGridToolbarDirective, ElderHeaderComponent, ElderHeaderModule, ElderHttpClient, ElderI18nEntitiesModule, ElderIFrameModule, ElderInfiniteAutocompleteDirective, ElderInfiniteScrollDirective, ElderInfiniteScrollLegacyDirective, ElderInfiniteScrollModule, ElderInputPatternDirective, ElderIntervalInputComponent, ElderKeyEventDirective, ElderLabelInputComponent, ElderLabelsModule, ElderLanguageConfig, ElderLanguageInterceptor, ElderLanguageModule, ElderLanguageService, ElderLanguageSwitcherComponent, ElderLocalDateInputComponent, ElderLocalTimeInputComponent, ElderLocalesDeChModule, ElderLocalizedInputComponent, ElderLocalizedInputDialogComponent, ElderLocalizedInputDialogService, ElderLocalizedInputTableComponent, ElderLocalizedTextColumnDirective, ElderLocalizedTextsDirective, ElderMaxValidator, ElderMeasuresModule, ElderMinValidator, ElderMultiEntityValueAccessorUtil, ElderMultiSelectBase, ElderMultiSelectChipsComponent, ElderMultiSelectFormField, ElderMultipleOfUtil, ElderMultipleOfValidator, ElderNavGroupComponent, ElderNavLinkComponent, ElderNavListComponent, ElderNavModule, ElderNextFocusableDirective, ElderNumberCellDirective, ElderOfflineIndicatorComponent, ElderOverlayComponent, ElderOverlayModule, ElderOverlayOriginDirective, ElderOverlayTriggerDirective, ElderPaddingDirective, ElderPanelComponent, ElderPanelModule, ElderPeriodInputComponent, ElderPipesModule, ElderPlugParentFormDirective, ElderProgressBarComponent, ElderProgressBarModule, ElderQuantityFormFieldComponent, ElderQuantityInputControlComponent, ElderQuantityModule, ElderQuantityPipe, ElderQuantityRangeValidator, ElderQuantityService, ElderQuantityTransformPipe, ElderQuestionDialogComponent, ElderRepeatPipe, ElderRepeatPipeLegacy, ElderRequiredDimensionsValidator, ElderRequiredIgnoreZeroValidator, ElderRequiredQuantityValidator, ElderRoundPipe, ElderRouteOutletDrawerService, ElderRouterOutletService, ElderRouterService, ElderSafeUrlPipe, ElderScrollContainerComponent, ElderSearchBoxComponent, ElderSearchContextDirective, ElderSearchInputDirective, ElderSearchModule, ElderSearchPanelComponent, ElderSelectBase, ElderSelectChipAvatarDirective, ElderSelectChipDirective, ElderSelectComponent, ElderSelectComponentState, ElderSelectCustomInputDirective, ElderSelectFormField, ElderSelectModule, ElderSelectOnTabDirective, ElderSelectValueDirective, ElderSelectionDialogComponent, ElderSelectionDialogDirective, ElderSelectionMasterCheckboxComponent, ElderSelectionPopupTriggerAdapterDirective, ElderShellCenterDirective, ElderShellComponent, ElderShellModule, ElderShellNavigationToggleComponent, ElderShellService, ElderShellSideLeftDirective, ElderShellSideRightDirective, ElderShellSlotDirective, ElderSimpleSelectionViewComponent, ElderSimpleSelectionViewModule, ElderSingleSortComponent, ElderStackCardDirective, ElderStopEventPropagationDirective, ElderSvgViewerComponent, ElderTabDirective, ElderTabFocusTrapDirective, ElderTabGroupRoutingDirective, ElderTabModule, ElderTableActivationDirective, ElderTableComponent, ElderTableExtensionDirective, ElderTableGroup, ElderTableModel, ElderTableModelCdkTableBinding, ElderTableModelQueryGroup, ElderTableModule, ElderTableProviders, ElderTableRootDirective, ElderTableSortDirective, ElderTableToolbarDirective, ElderThemeApplierDirective, ElderThemeDirective, ElderThemeModule, ElderThemePreferenceService, ElderThemeService, ElderThemeToggleComponent, ElderTimeModule, ElderToastModule, ElderToastService, ElderTogglePanelComponent, ElderTogglePanelPrimaryDirective, ElderTogglePanelSecondaryDirective, ElderTogglePanelTriggerDirective, ElderToolbarColumnDirective, ElderToolbarComponent, ElderToolbarContentDirective, ElderToolbarModule, ElderToolbarService, ElderToolbarTitleComponent, ElderToolbarTitleService, ElderTouchedDirective, ElderTrimPipe, ElderTripleStateCheckboxDirective, ElderTruncatePipe, ElderUnitSelectDirective, ElderUnitService, ElderUrlFragment, ElderUrlFragmentModule, ElderUrlFragmentParamsService, ElderUrlFragmentSwitcherComponent, ElderValidationErrorDirective, ElderViewersModule, EntitySetPatch, ErrorUtil, ExceptionDetailCtx, FileUploadClient, Filter, FilterContext, FilterUtil, FormFieldBaseComponent, HttpClientBuilder, HttpClientPristine, HttpDataTransfer, HttpDataTransferAggregateComponent, HttpDataTransferComponent, HttpDataTransferIndicatorComponent, HttpDataTransferOverviewComponent, HttpParamsBuilder, I18nBase, I18nPickAsyncPipe, I18nPickPipe, I18nText, IFrameState, IframeCloseDirective, IframeDialogComponent, IframeHostComponent, IframeService, IframeSideContentComponent, IndexedEntities, InternalRestClientConfig, Interval, IsoDurationPipe, IsoIntervalParsePipe, IsoIntervalPipe, JsonMapUtil, KafentConfig, KafentEvent, KafentEventService, KafentEventStream, KafentEventStreamDisabled, KafentEventStreamSse, KafentEventTransport, KafentModule, KafentSseEventChannel, KafentTokenProvider, KafentTokenProviderSessionStorage, KafentTopicSse, KnownElderThemes, KnownLocaleType, LocalListDataSource, LocalPagedDataSource, LocalisationPickerService, MasterSelectionState, MatTableDataContextBinding, MatTableDataContextBindingBuilder, MultiModelBaseComponent, NextNumberUtil, Objects, OnlineStatus, Page, PageRequest, Pageable, ParseUtil, Path, PathNode, PeriodBucket, PeriodDuration, PeriodFormat, ProcessIterationContext, ProcessState, PropertyPathUtil, Quantity, QueryListBinding, QuestionDialogConfig, ReactiveEventSource, ReactiveMap, RefreshingEntity, RestClient, RestClientConfig, RestClientContinuable, RestClientList, RestClientPaged, SearchQuery, SelectionModel, SelectionModelPopupDirective, Sets, SimpleLocalisationPicker, Sort, SortOption, SortUtil, SubBar, SuggestionProvider, TemplateCompositeControl, TemplatedSelectionDialogComponent, ThemeSpec, TimeAgoPipe, TimeDurationPipe, TimeUtil, ToastType, TokenChunkRequest, ToolbarHeader, TranslatedEnumValue, TypedEventMessage, Unit, UnitDimension, UnitDimensionInfo, UnitInfo, UnitRegistry, UrlBuilder, UrlQueryParams, UuidUtil, ValueAccessorBase, ValueWrapper, ViewProviders, WeightPipe, alphaNumStringComparator, buildFormIntegrationProviders, createDataOptionsProvider, createSelectionModel, existingOrNewElderTableModel, isActivePagedDataContext, isContinuableDataContext, isContinuableDataSource, isDataContext, isDataSource, isElderEntityValueAccessor, isElderMultiEntityValueAccessor, isListDataSource, isPagedDataSource, naturalValueComparator, newElderTableModel, proxyControlContainer, registerLocale, runInZone, themeInit };
|
|
28676
28905
|
//# sourceMappingURL=elderbyte-ngx-starter.mjs.map
|