@elderbyte/ngx-starter 15.3.4 → 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/_index.scss +6 -3
- 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 -178
- package/fesm2015/elderbyte-ngx-starter.mjs.map +1 -1
- package/fesm2020/elderbyte-ngx-starter.mjs +407 -178
- 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/theming/_elder-common.scss +14 -8
- package/theming/_elder-config.scss +37 -0
- package/theming/_elder-flex-layout.scss +231 -8
- 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
|
@@ -3001,6 +3001,220 @@ class TokenChunkRequest {
|
|
|
3001
3001
|
}
|
|
3002
3002
|
}
|
|
3003
3003
|
|
|
3004
|
+
class SortContext {
|
|
3005
|
+
constructor() {
|
|
3006
|
+
/***************************************************************************
|
|
3007
|
+
* *
|
|
3008
|
+
* Fields *
|
|
3009
|
+
* *
|
|
3010
|
+
**************************************************************************/
|
|
3011
|
+
this._sorts = new BehaviorSubject([]);
|
|
3012
|
+
/***************************************************************************
|
|
3013
|
+
* *
|
|
3014
|
+
* Private methods *
|
|
3015
|
+
* *
|
|
3016
|
+
**************************************************************************/
|
|
3017
|
+
}
|
|
3018
|
+
/***************************************************************************
|
|
3019
|
+
* *
|
|
3020
|
+
* Read API *
|
|
3021
|
+
* *
|
|
3022
|
+
**************************************************************************/
|
|
3023
|
+
get sorts() {
|
|
3024
|
+
return this._sorts.asObservable();
|
|
3025
|
+
}
|
|
3026
|
+
get sortsSnapshot() {
|
|
3027
|
+
return this._sorts.getValue();
|
|
3028
|
+
}
|
|
3029
|
+
findSortDirection(prop) {
|
|
3030
|
+
const f = this.findSort(prop);
|
|
3031
|
+
return f ? f.dir : undefined;
|
|
3032
|
+
}
|
|
3033
|
+
findSort(prop) {
|
|
3034
|
+
return this.sortsSnapshot
|
|
3035
|
+
.filter(f => f.prop === prop)
|
|
3036
|
+
.find(first => true);
|
|
3037
|
+
}
|
|
3038
|
+
/***************************************************************************
|
|
3039
|
+
* *
|
|
3040
|
+
* Public API *
|
|
3041
|
+
* *
|
|
3042
|
+
**************************************************************************/
|
|
3043
|
+
/**
|
|
3044
|
+
* This method updatees / adds the given sort, leaving
|
|
3045
|
+
* existing ones untouched.
|
|
3046
|
+
* @param updatedSort
|
|
3047
|
+
*/
|
|
3048
|
+
updateSort(updatedSort) {
|
|
3049
|
+
if (updatedSort) {
|
|
3050
|
+
this.updateSorts([updatedSort]);
|
|
3051
|
+
}
|
|
3052
|
+
}
|
|
3053
|
+
/**
|
|
3054
|
+
* This method updates / adds the given filters, leaving
|
|
3055
|
+
* existing ones untouched.
|
|
3056
|
+
* @param updatedSorts
|
|
3057
|
+
*/
|
|
3058
|
+
updateSorts(updatedSorts) {
|
|
3059
|
+
if (updatedSorts && updatedSorts.length > 0) {
|
|
3060
|
+
const sortMap = new Map();
|
|
3061
|
+
this.sortsSnapshot.forEach(s => sortMap.set(s.prop, s));
|
|
3062
|
+
updatedSorts.forEach(s => sortMap.set(s.prop, s));
|
|
3063
|
+
this.replaceSorts(Array.from(updatedSorts.values()));
|
|
3064
|
+
}
|
|
3065
|
+
}
|
|
3066
|
+
/**
|
|
3067
|
+
* Replace all existing filters with the given new ones.
|
|
3068
|
+
* @param newSorts
|
|
3069
|
+
*/
|
|
3070
|
+
replaceSorts(newSorts) {
|
|
3071
|
+
this._sorts.next(newSorts || []);
|
|
3072
|
+
}
|
|
3073
|
+
clear() {
|
|
3074
|
+
this.replaceSorts([]);
|
|
3075
|
+
}
|
|
3076
|
+
}
|
|
3077
|
+
|
|
3078
|
+
class IndexedEntities {
|
|
3079
|
+
/***************************************************************************
|
|
3080
|
+
* *
|
|
3081
|
+
* Constructor *
|
|
3082
|
+
* *
|
|
3083
|
+
**************************************************************************/
|
|
3084
|
+
constructor(idFn, localSortFn, sortContext = new SortContext()) {
|
|
3085
|
+
this.idFn = idFn;
|
|
3086
|
+
this.localSortFn = localSortFn;
|
|
3087
|
+
this.sortContext = sortContext;
|
|
3088
|
+
/***************************************************************************
|
|
3089
|
+
* *
|
|
3090
|
+
* Fields *
|
|
3091
|
+
* *
|
|
3092
|
+
**************************************************************************/
|
|
3093
|
+
this.log = LoggerFactory.getLogger('IndexedEntities');
|
|
3094
|
+
this._entities$ = new BehaviorSubject([]);
|
|
3095
|
+
this._idToArrayIndex = new Map();
|
|
3096
|
+
}
|
|
3097
|
+
/***************************************************************************
|
|
3098
|
+
* *
|
|
3099
|
+
* Properties *
|
|
3100
|
+
* *
|
|
3101
|
+
**************************************************************************/
|
|
3102
|
+
get entities$() {
|
|
3103
|
+
return this._entities$.asObservable();
|
|
3104
|
+
}
|
|
3105
|
+
get entitiesSnapshot() {
|
|
3106
|
+
return this._entities$.getValue();
|
|
3107
|
+
}
|
|
3108
|
+
/***************************************************************************
|
|
3109
|
+
* *
|
|
3110
|
+
* Public API *
|
|
3111
|
+
* *
|
|
3112
|
+
**************************************************************************/
|
|
3113
|
+
/**
|
|
3114
|
+
* Replaces all existing entities with the new ones.
|
|
3115
|
+
* The index is rebuilt. O(n)
|
|
3116
|
+
*/
|
|
3117
|
+
replaceAll(newEntities = []) {
|
|
3118
|
+
if (this.localSortFn) {
|
|
3119
|
+
newEntities = this.localSortFn(newEntities, this.sortContext.sortsSnapshot);
|
|
3120
|
+
}
|
|
3121
|
+
this.rebuildIndex(newEntities);
|
|
3122
|
+
this.setEntities(newEntities);
|
|
3123
|
+
}
|
|
3124
|
+
/**
|
|
3125
|
+
* Keeps all existing entities, but replaces those which are updated with the new data.
|
|
3126
|
+
* Provided updated entities which are currently not in this index are ignored.
|
|
3127
|
+
* @param updated
|
|
3128
|
+
*/
|
|
3129
|
+
updateSome(updated) {
|
|
3130
|
+
const newData = [...this.entitiesSnapshot];
|
|
3131
|
+
updated.forEach(update => {
|
|
3132
|
+
const id = this.getItemId(update);
|
|
3133
|
+
const index = this.indexById(id);
|
|
3134
|
+
if (index != -1) {
|
|
3135
|
+
newData[index] = update;
|
|
3136
|
+
}
|
|
3137
|
+
});
|
|
3138
|
+
this.setEntities(newData);
|
|
3139
|
+
}
|
|
3140
|
+
append(append) {
|
|
3141
|
+
this.insert(append, this.entitiesSnapshot.length);
|
|
3142
|
+
}
|
|
3143
|
+
/**
|
|
3144
|
+
* Appends the given entities to this index.
|
|
3145
|
+
* The new appended entities are included in the index.
|
|
3146
|
+
* O(n) where n = number of appended entities
|
|
3147
|
+
* @param inserted
|
|
3148
|
+
* @param offset
|
|
3149
|
+
*/
|
|
3150
|
+
insert(inserted, offset) {
|
|
3151
|
+
if (inserted && inserted.length > 0) {
|
|
3152
|
+
const entities = this.entitiesSnapshot;
|
|
3153
|
+
const newData = [...entities];
|
|
3154
|
+
for (let i = 0; i < inserted.length; i++) {
|
|
3155
|
+
newData[i + offset] = inserted[i];
|
|
3156
|
+
}
|
|
3157
|
+
if (this.localSortFn) {
|
|
3158
|
+
// local sort can re-order all items
|
|
3159
|
+
this.replaceAll(newData);
|
|
3160
|
+
}
|
|
3161
|
+
else {
|
|
3162
|
+
// Without a sort, we can optimize indexing
|
|
3163
|
+
this.reIndexFrom(newData, offset);
|
|
3164
|
+
this.setEntities(newData);
|
|
3165
|
+
}
|
|
3166
|
+
}
|
|
3167
|
+
}
|
|
3168
|
+
/**
|
|
3169
|
+
* Lookup an entity by its id.
|
|
3170
|
+
* This will use an index O(1)
|
|
3171
|
+
* @param id
|
|
3172
|
+
*/
|
|
3173
|
+
getById(id) {
|
|
3174
|
+
const entities = this.entitiesSnapshot;
|
|
3175
|
+
const index = this.indexById(id);
|
|
3176
|
+
if (index != -1) {
|
|
3177
|
+
return entities[index];
|
|
3178
|
+
}
|
|
3179
|
+
}
|
|
3180
|
+
notify() {
|
|
3181
|
+
this._entities$.next(this._entities$.getValue());
|
|
3182
|
+
}
|
|
3183
|
+
destroy() {
|
|
3184
|
+
this._entities$.complete();
|
|
3185
|
+
this._idToArrayIndex.clear();
|
|
3186
|
+
}
|
|
3187
|
+
/***************************************************************************
|
|
3188
|
+
* *
|
|
3189
|
+
* Private methods *
|
|
3190
|
+
* *
|
|
3191
|
+
**************************************************************************/
|
|
3192
|
+
rebuildIndex(entities) {
|
|
3193
|
+
this._idToArrayIndex.clear();
|
|
3194
|
+
this.reIndexFrom(entities, 0);
|
|
3195
|
+
}
|
|
3196
|
+
reIndexFrom(entities, startIndex) {
|
|
3197
|
+
for (let i = startIndex; i < entities.length; i++) {
|
|
3198
|
+
const entity = entities[i];
|
|
3199
|
+
if (entity) {
|
|
3200
|
+
this._idToArrayIndex.set(this.getItemId(entity), i);
|
|
3201
|
+
}
|
|
3202
|
+
}
|
|
3203
|
+
}
|
|
3204
|
+
indexById(id) {
|
|
3205
|
+
return this._idToArrayIndex.get(id) ?? -1;
|
|
3206
|
+
}
|
|
3207
|
+
getItemId(item) {
|
|
3208
|
+
return this.idFn(item);
|
|
3209
|
+
}
|
|
3210
|
+
setEntities(entities) {
|
|
3211
|
+
if (!(this.entitiesSnapshot.length === 0 && entities.length === 0)) {
|
|
3212
|
+
this.log.debug('Entities changed: ' + entities.length, entities);
|
|
3213
|
+
this._entities$.next(entities);
|
|
3214
|
+
}
|
|
3215
|
+
}
|
|
3216
|
+
}
|
|
3217
|
+
|
|
3004
3218
|
/**
|
|
3005
3219
|
* Represents the status of a data-context
|
|
3006
3220
|
*/
|
|
@@ -3077,80 +3291,6 @@ function isActivePagedDataContext(object) {
|
|
|
3077
3291
|
return object.setActivePage !== undefined;
|
|
3078
3292
|
}
|
|
3079
3293
|
|
|
3080
|
-
class SortContext {
|
|
3081
|
-
constructor() {
|
|
3082
|
-
/***************************************************************************
|
|
3083
|
-
* *
|
|
3084
|
-
* Fields *
|
|
3085
|
-
* *
|
|
3086
|
-
**************************************************************************/
|
|
3087
|
-
this._sorts = new BehaviorSubject([]);
|
|
3088
|
-
/***************************************************************************
|
|
3089
|
-
* *
|
|
3090
|
-
* Private methods *
|
|
3091
|
-
* *
|
|
3092
|
-
**************************************************************************/
|
|
3093
|
-
}
|
|
3094
|
-
/***************************************************************************
|
|
3095
|
-
* *
|
|
3096
|
-
* Read API *
|
|
3097
|
-
* *
|
|
3098
|
-
**************************************************************************/
|
|
3099
|
-
get sorts() {
|
|
3100
|
-
return this._sorts.asObservable();
|
|
3101
|
-
}
|
|
3102
|
-
get sortsSnapshot() {
|
|
3103
|
-
return this._sorts.getValue();
|
|
3104
|
-
}
|
|
3105
|
-
findSortDirection(prop) {
|
|
3106
|
-
const f = this.findSort(prop);
|
|
3107
|
-
return f ? f.dir : undefined;
|
|
3108
|
-
}
|
|
3109
|
-
findSort(prop) {
|
|
3110
|
-
return this.sortsSnapshot
|
|
3111
|
-
.filter(f => f.prop === prop)
|
|
3112
|
-
.find(first => true);
|
|
3113
|
-
}
|
|
3114
|
-
/***************************************************************************
|
|
3115
|
-
* *
|
|
3116
|
-
* Public API *
|
|
3117
|
-
* *
|
|
3118
|
-
**************************************************************************/
|
|
3119
|
-
/**
|
|
3120
|
-
* This method updatees / adds the given sort, leaving
|
|
3121
|
-
* existing ones untouched.
|
|
3122
|
-
* @param updatedSort
|
|
3123
|
-
*/
|
|
3124
|
-
updateSort(updatedSort) {
|
|
3125
|
-
if (updatedSort) {
|
|
3126
|
-
this.updateSorts([updatedSort]);
|
|
3127
|
-
}
|
|
3128
|
-
}
|
|
3129
|
-
/**
|
|
3130
|
-
* This method updates / adds the given filters, leaving
|
|
3131
|
-
* existing ones untouched.
|
|
3132
|
-
* @param updatedSorts
|
|
3133
|
-
*/
|
|
3134
|
-
updateSorts(updatedSorts) {
|
|
3135
|
-
if (updatedSorts && updatedSorts.length > 0) {
|
|
3136
|
-
const sortMap = new Map();
|
|
3137
|
-
this.sortsSnapshot.forEach(s => sortMap.set(s.prop, s));
|
|
3138
|
-
updatedSorts.forEach(s => sortMap.set(s.prop, s));
|
|
3139
|
-
this.replaceSorts(Array.from(updatedSorts.values()));
|
|
3140
|
-
}
|
|
3141
|
-
}
|
|
3142
|
-
/**
|
|
3143
|
-
* Replace all existing filters with the given new ones.
|
|
3144
|
-
* @param newSorts
|
|
3145
|
-
*/
|
|
3146
|
-
replaceSorts(newSorts) {
|
|
3147
|
-
this._sorts.next(newSorts || []);
|
|
3148
|
-
}
|
|
3149
|
-
clear() {
|
|
3150
|
-
this.replaceSorts([]);
|
|
3151
|
-
}
|
|
3152
|
-
}
|
|
3153
|
-
|
|
3154
3294
|
class DataContextBase extends DataSource {
|
|
3155
3295
|
/***************************************************************************
|
|
3156
3296
|
* *
|
|
@@ -3170,15 +3310,15 @@ class DataContextBase extends DataSource {
|
|
|
3170
3310
|
this.baselog = LoggerFactory.getLogger('DataContextBase');
|
|
3171
3311
|
this._filter = new FilterContext();
|
|
3172
3312
|
this._sort = new SortContext();
|
|
3173
|
-
this._data = new BehaviorSubject([]);
|
|
3174
3313
|
this._total = new BehaviorSubject(undefined);
|
|
3175
3314
|
this._status = new BehaviorSubject(DataContextStatus.idle());
|
|
3176
3315
|
this._started = new BehaviorSubject(false);
|
|
3177
3316
|
this._closed = new BehaviorSubject(false);
|
|
3178
|
-
this.
|
|
3317
|
+
this._customIndex = new Map();
|
|
3179
3318
|
this._reloadQueue = new Subject();
|
|
3180
3319
|
this.unsubscribe$ = new Subject();
|
|
3181
3320
|
this._dataSource = dataSource;
|
|
3321
|
+
this._data = new IndexedEntities(e => dataSource.getId(e), _localSort);
|
|
3182
3322
|
this._loading = this._status.pipe(map(status => status.loading));
|
|
3183
3323
|
this._filter.filters.pipe(filter(() => this.started), takeUntil(this.unsubscribe$)).subscribe(filters => this.onFiltersChanged(filters));
|
|
3184
3324
|
this._sort.sorts.pipe(filter(() => this.started), takeUntil(this.unsubscribe$)).subscribe(sorts => this.onSortsChanged(sorts));
|
|
@@ -3229,10 +3369,10 @@ class DataContextBase extends DataSource {
|
|
|
3229
3369
|
return this.statusSnapshot?.loading;
|
|
3230
3370
|
}
|
|
3231
3371
|
get data() {
|
|
3232
|
-
return this._data.
|
|
3372
|
+
return this._data.entities$;
|
|
3233
3373
|
}
|
|
3234
3374
|
get dataSnapshot() {
|
|
3235
|
-
return this._data.
|
|
3375
|
+
return this._data.entitiesSnapshot;
|
|
3236
3376
|
}
|
|
3237
3377
|
get status() {
|
|
3238
3378
|
return this._status;
|
|
@@ -3275,13 +3415,17 @@ class DataContextBase extends DataSource {
|
|
|
3275
3415
|
return this.reloadNow();
|
|
3276
3416
|
}
|
|
3277
3417
|
reload() {
|
|
3418
|
+
this.baselog.debug('Requesting a reload of the DataContext from the DataSource.');
|
|
3278
3419
|
this._reloadQueue.next();
|
|
3279
3420
|
}
|
|
3280
3421
|
findByIndex(key) {
|
|
3281
3422
|
if (!this._indexFn) {
|
|
3282
3423
|
throw new Error('findByIndex requires you to pass a index function!');
|
|
3283
3424
|
}
|
|
3284
|
-
return this.
|
|
3425
|
+
return this._customIndex.get(key);
|
|
3426
|
+
}
|
|
3427
|
+
findById(id) {
|
|
3428
|
+
return this._data.getById(id);
|
|
3285
3429
|
}
|
|
3286
3430
|
/**
|
|
3287
3431
|
* Closes this DataContext and cleans up all used resources.
|
|
@@ -3291,15 +3435,17 @@ class DataContextBase extends DataSource {
|
|
|
3291
3435
|
this.unsubscribe$.next();
|
|
3292
3436
|
this.unsubscribe$.complete();
|
|
3293
3437
|
this._closed.next(true);
|
|
3294
|
-
this._data.
|
|
3438
|
+
this._data.destroy();
|
|
3295
3439
|
this._total.complete();
|
|
3296
3440
|
this._status.complete();
|
|
3297
3441
|
this.clearAll();
|
|
3298
3442
|
this.baselog.debug('DataContext has been closed and resources cleaned up!');
|
|
3299
3443
|
}
|
|
3300
3444
|
refresh() {
|
|
3301
|
-
|
|
3302
|
-
|
|
3445
|
+
this._data.notify();
|
|
3446
|
+
}
|
|
3447
|
+
update(entities) {
|
|
3448
|
+
this._data.updateSome(entities);
|
|
3303
3449
|
}
|
|
3304
3450
|
/***************************************************************************
|
|
3305
3451
|
* *
|
|
@@ -3310,14 +3456,20 @@ class DataContextBase extends DataSource {
|
|
|
3310
3456
|
return this.reloadInternal(); // TODO This should actually return the real (http) request
|
|
3311
3457
|
}
|
|
3312
3458
|
/**
|
|
3313
|
-
* Append the given rows to
|
|
3459
|
+
* Append the given rows to the existing ones.
|
|
3314
3460
|
*/
|
|
3315
3461
|
appendData(additionalData) {
|
|
3316
|
-
|
|
3317
|
-
const newData = [...this.dataSnapshot];
|
|
3318
|
-
newData.push(...additionalData);
|
|
3462
|
+
additionalData = this.localApply(additionalData);
|
|
3319
3463
|
this.indexAll(additionalData);
|
|
3320
|
-
this.
|
|
3464
|
+
this._data.append(additionalData);
|
|
3465
|
+
}
|
|
3466
|
+
/**
|
|
3467
|
+
* Insert the given rows at the given location.
|
|
3468
|
+
*/
|
|
3469
|
+
insertData(additionalData, offset) {
|
|
3470
|
+
additionalData = this.localApply(additionalData);
|
|
3471
|
+
this.indexAll(additionalData);
|
|
3472
|
+
this._data.insert(additionalData, offset);
|
|
3321
3473
|
}
|
|
3322
3474
|
/**
|
|
3323
3475
|
* Replaces the existing data with the new set.
|
|
@@ -3325,19 +3477,22 @@ class DataContextBase extends DataSource {
|
|
|
3325
3477
|
* @param alreadyIndexed The rows will be indexed unless they already have been.
|
|
3326
3478
|
*/
|
|
3327
3479
|
setData(newData, alreadyIndexed = false) {
|
|
3328
|
-
|
|
3329
|
-
newData = this._localApply(newData);
|
|
3330
|
-
}
|
|
3331
|
-
if (this._localSort) {
|
|
3332
|
-
newData = this._localSort(newData, this._sort.sortsSnapshot);
|
|
3333
|
-
}
|
|
3480
|
+
newData = this.localApply(newData);
|
|
3334
3481
|
if (!alreadyIndexed) {
|
|
3482
|
+
this.clearIndex();
|
|
3335
3483
|
this.indexAll(newData);
|
|
3336
3484
|
}
|
|
3337
|
-
|
|
3338
|
-
|
|
3339
|
-
|
|
3340
|
-
|
|
3485
|
+
this._data.replaceAll(newData);
|
|
3486
|
+
}
|
|
3487
|
+
clearData() {
|
|
3488
|
+
this.setData([]);
|
|
3489
|
+
}
|
|
3490
|
+
localApply(data) {
|
|
3491
|
+
if (this._localApply) {
|
|
3492
|
+
return this._localApply(data);
|
|
3493
|
+
}
|
|
3494
|
+
else {
|
|
3495
|
+
return data;
|
|
3341
3496
|
}
|
|
3342
3497
|
}
|
|
3343
3498
|
setTotal(total) {
|
|
@@ -3351,7 +3506,7 @@ class DataContextBase extends DataSource {
|
|
|
3351
3506
|
this.clearIndex();
|
|
3352
3507
|
if (!silent) {
|
|
3353
3508
|
this.setTotal(0);
|
|
3354
|
-
this.
|
|
3509
|
+
this.clearData();
|
|
3355
3510
|
}
|
|
3356
3511
|
this.onIdle();
|
|
3357
3512
|
}
|
|
@@ -3365,7 +3520,7 @@ class DataContextBase extends DataSource {
|
|
|
3365
3520
|
indexItem(item) {
|
|
3366
3521
|
const key = this.getItemKey(item);
|
|
3367
3522
|
if (key) {
|
|
3368
|
-
this.
|
|
3523
|
+
this._customIndex.set(key, item);
|
|
3369
3524
|
}
|
|
3370
3525
|
}
|
|
3371
3526
|
/**
|
|
@@ -3382,6 +3537,9 @@ class DataContextBase extends DataSource {
|
|
|
3382
3537
|
}
|
|
3383
3538
|
return null;
|
|
3384
3539
|
}
|
|
3540
|
+
getItemId(item) {
|
|
3541
|
+
return this.dataSource.getId(item);
|
|
3542
|
+
}
|
|
3385
3543
|
/***************************************************************************
|
|
3386
3544
|
* *
|
|
3387
3545
|
* Event handler *
|
|
@@ -3422,7 +3580,7 @@ class DataContextBase extends DataSource {
|
|
|
3422
3580
|
* *
|
|
3423
3581
|
**************************************************************************/
|
|
3424
3582
|
clearIndex() {
|
|
3425
|
-
this.
|
|
3583
|
+
this._customIndex.clear();
|
|
3426
3584
|
}
|
|
3427
3585
|
}
|
|
3428
3586
|
|
|
@@ -3656,7 +3814,7 @@ class DataContextContinuablePaged extends DataContextContinuableBase {
|
|
|
3656
3814
|
this.onIdle();
|
|
3657
3815
|
}, err => {
|
|
3658
3816
|
this.onError(err);
|
|
3659
|
-
this.
|
|
3817
|
+
this.clearData();
|
|
3660
3818
|
this.setTotal(0);
|
|
3661
3819
|
this.logger.error('Failed to query data', err);
|
|
3662
3820
|
subject.error(err);
|
|
@@ -3671,13 +3829,12 @@ class DataContextContinuablePaged extends DataContextContinuableBase {
|
|
|
3671
3829
|
try {
|
|
3672
3830
|
this.setTotal(page.totalElements);
|
|
3673
3831
|
const start = page.number * page.size;
|
|
3674
|
-
|
|
3675
|
-
|
|
3676
|
-
|
|
3677
|
-
|
|
3678
|
-
this.
|
|
3832
|
+
if (clear) {
|
|
3833
|
+
this.setData(page.content);
|
|
3834
|
+
}
|
|
3835
|
+
else {
|
|
3836
|
+
this.insertData(page.content, start);
|
|
3679
3837
|
}
|
|
3680
|
-
this.setData(newData, true);
|
|
3681
3838
|
}
|
|
3682
3839
|
catch (err) {
|
|
3683
3840
|
this.onError(err);
|
|
@@ -3776,7 +3933,7 @@ class DataContextContinuableToken extends DataContextContinuableBase {
|
|
|
3776
3933
|
}, err => {
|
|
3777
3934
|
this.onError(err);
|
|
3778
3935
|
this.logger.error('Failed to query data', err);
|
|
3779
|
-
this.
|
|
3936
|
+
this.clearData();
|
|
3780
3937
|
this.setTotal(0);
|
|
3781
3938
|
subject.error(err);
|
|
3782
3939
|
});
|
|
@@ -3912,7 +4069,7 @@ class DataContextActivePage extends DataContextBase {
|
|
|
3912
4069
|
subject.next(success);
|
|
3913
4070
|
this.onIdle();
|
|
3914
4071
|
}, err => {
|
|
3915
|
-
this.
|
|
4072
|
+
this.clearData();
|
|
3916
4073
|
this.actlogger.error('Failed to query data', err);
|
|
3917
4074
|
subject.error(err);
|
|
3918
4075
|
this.onError(err);
|
|
@@ -4090,7 +4247,9 @@ class DataContextLifeCycleBinding {
|
|
|
4090
4247
|
if (_dataContext == null) {
|
|
4091
4248
|
throw new Error('dataContext must not be null!');
|
|
4092
4249
|
}
|
|
4093
|
-
this._dataContext.data.subscribe(
|
|
4250
|
+
this._dataContext.data.subscribe({
|
|
4251
|
+
complete: () => this.unsubscribe()
|
|
4252
|
+
});
|
|
4094
4253
|
}
|
|
4095
4254
|
/***************************************************************************
|
|
4096
4255
|
* *
|
|
@@ -4243,14 +4402,72 @@ class DataContextAutoStarter extends DataContextLifeCycleBinding {
|
|
|
4243
4402
|
}
|
|
4244
4403
|
}
|
|
4245
4404
|
|
|
4246
|
-
class
|
|
4247
|
-
|
|
4405
|
+
class DataContextSourceEventBinding extends DataContextLifeCycleBinding {
|
|
4406
|
+
/***************************************************************************
|
|
4407
|
+
* *
|
|
4408
|
+
* Fields *
|
|
4409
|
+
* *
|
|
4410
|
+
**************************************************************************/
|
|
4411
|
+
/***************************************************************************
|
|
4412
|
+
* *
|
|
4413
|
+
* Constructor *
|
|
4414
|
+
* *
|
|
4415
|
+
**************************************************************************/
|
|
4416
|
+
constructor(dataContext, dataApi, reloadOnChanges) {
|
|
4248
4417
|
super(dataContext);
|
|
4249
4418
|
this.dataApi = dataApi;
|
|
4419
|
+
this.reloadOnChanges = reloadOnChanges;
|
|
4250
4420
|
this.subscribe();
|
|
4251
4421
|
}
|
|
4422
|
+
/***************************************************************************
|
|
4423
|
+
* *
|
|
4424
|
+
* Internal Impl *
|
|
4425
|
+
* *
|
|
4426
|
+
**************************************************************************/
|
|
4252
4427
|
subscribe() {
|
|
4253
|
-
this._subscription = this.dataApi.dataChanged.subscribe(
|
|
4428
|
+
this._subscription = this.dataApi.dataChanged.subscribe(event => this.handleDataChangeEvent(event));
|
|
4429
|
+
}
|
|
4430
|
+
/***************************************************************************
|
|
4431
|
+
* *
|
|
4432
|
+
* Private methods *
|
|
4433
|
+
* *
|
|
4434
|
+
**************************************************************************/
|
|
4435
|
+
handleDataChangeEvent(event) {
|
|
4436
|
+
if (this.reloadOnChanges && this.isReloadDesirable(event)) {
|
|
4437
|
+
this._dataContext.reload();
|
|
4438
|
+
return;
|
|
4439
|
+
}
|
|
4440
|
+
// We might also be able to perform deletions locally, and avoid reload data
|
|
4441
|
+
if (event.modified) {
|
|
4442
|
+
this._dataContext.update(event.modified);
|
|
4443
|
+
}
|
|
4444
|
+
}
|
|
4445
|
+
isReloadDesirable(event) {
|
|
4446
|
+
return event.unknownChanges || event.created || event.deletedIds;
|
|
4447
|
+
}
|
|
4448
|
+
}
|
|
4449
|
+
|
|
4450
|
+
var DataSourceChangeType;
|
|
4451
|
+
(function (DataSourceChangeType) {
|
|
4452
|
+
})(DataSourceChangeType || (DataSourceChangeType = {}));
|
|
4453
|
+
class DataSourceChangeEvent {
|
|
4454
|
+
constructor(deletedIds, modified, created) {
|
|
4455
|
+
this.deletedIds = deletedIds;
|
|
4456
|
+
this.modified = modified;
|
|
4457
|
+
this.created = created;
|
|
4458
|
+
this.unknownChanges = !deletedIds && !modified && !created;
|
|
4459
|
+
}
|
|
4460
|
+
static unknownChanges() {
|
|
4461
|
+
return new DataSourceChangeEvent(null, null, null);
|
|
4462
|
+
}
|
|
4463
|
+
static deleted(ids) {
|
|
4464
|
+
return new DataSourceChangeEvent(ids, null, null);
|
|
4465
|
+
}
|
|
4466
|
+
static modified(modified) {
|
|
4467
|
+
return new DataSourceChangeEvent(null, modified, null);
|
|
4468
|
+
}
|
|
4469
|
+
static created(created) {
|
|
4470
|
+
return new DataSourceChangeEvent(null, null, created);
|
|
4254
4471
|
}
|
|
4255
4472
|
}
|
|
4256
4473
|
|
|
@@ -4265,13 +4482,50 @@ class EntityIdUtil {
|
|
|
4265
4482
|
}
|
|
4266
4483
|
}
|
|
4267
4484
|
|
|
4268
|
-
class
|
|
4485
|
+
class DataSourceBase {
|
|
4486
|
+
/***************************************************************************
|
|
4487
|
+
* *
|
|
4488
|
+
* Constructor *
|
|
4489
|
+
* *
|
|
4490
|
+
**************************************************************************/
|
|
4491
|
+
constructor(idProperty) {
|
|
4492
|
+
this.idProperty = idProperty;
|
|
4493
|
+
/***************************************************************************
|
|
4494
|
+
* *
|
|
4495
|
+
* Fields *
|
|
4496
|
+
* *
|
|
4497
|
+
**************************************************************************/
|
|
4498
|
+
this.dataChangeEvents$ = new Subject();
|
|
4499
|
+
}
|
|
4500
|
+
/***************************************************************************
|
|
4501
|
+
* *
|
|
4502
|
+
* Properties *
|
|
4503
|
+
* *
|
|
4504
|
+
**************************************************************************/
|
|
4505
|
+
get dataChanged() {
|
|
4506
|
+
return this.dataChangeEvents$.asObservable();
|
|
4507
|
+
}
|
|
4508
|
+
/***************************************************************************
|
|
4509
|
+
* *
|
|
4510
|
+
* Public API *
|
|
4511
|
+
* *
|
|
4512
|
+
**************************************************************************/
|
|
4513
|
+
publishChangeEvent(e) {
|
|
4514
|
+
this.dataChangeEvents$.next(e);
|
|
4515
|
+
}
|
|
4516
|
+
getId(entity) {
|
|
4517
|
+
return EntityIdUtil.getId(entity, this.idProperty);
|
|
4518
|
+
}
|
|
4519
|
+
}
|
|
4520
|
+
|
|
4521
|
+
class LocalListDataSource extends DataSourceBase {
|
|
4269
4522
|
/***************************************************************************
|
|
4270
4523
|
* *
|
|
4271
4524
|
* Constructor *
|
|
4272
4525
|
* *
|
|
4273
4526
|
**************************************************************************/
|
|
4274
4527
|
constructor(localData, localSort, localFilter, idProperty) {
|
|
4528
|
+
super(idProperty || LocalListDataSource.guessIdProperty(localData));
|
|
4275
4529
|
/***************************************************************************
|
|
4276
4530
|
* *
|
|
4277
4531
|
* Fields *
|
|
@@ -4279,13 +4533,11 @@ class LocalListDataSource {
|
|
|
4279
4533
|
**************************************************************************/
|
|
4280
4534
|
this.logger = LoggerFactory.getLogger(this.constructor.name);
|
|
4281
4535
|
this.data$ = new BehaviorSubject([]);
|
|
4282
|
-
this.dataChange$ = new Subject();
|
|
4283
4536
|
if (!localData) {
|
|
4284
4537
|
throw new Error('localData must not be null!');
|
|
4285
4538
|
}
|
|
4286
4539
|
this.localSort = localSort || ((data, sort) => data);
|
|
4287
4540
|
this.localFilter = localFilter || ((data, sort) => data);
|
|
4288
|
-
this.idProperty = idProperty || this.guessIdProperty(localData);
|
|
4289
4541
|
this.data = localData;
|
|
4290
4542
|
}
|
|
4291
4543
|
/***************************************************************************
|
|
@@ -4311,9 +4563,6 @@ class LocalListDataSource {
|
|
|
4311
4563
|
* IDataSource API *
|
|
4312
4564
|
* *
|
|
4313
4565
|
**************************************************************************/
|
|
4314
|
-
get dataChanged() {
|
|
4315
|
-
return this.dataChange$.asObservable();
|
|
4316
|
-
}
|
|
4317
4566
|
findById(id) {
|
|
4318
4567
|
return of(this.data.find(d => this.getId(d) === id));
|
|
4319
4568
|
}
|
|
@@ -4323,9 +4572,6 @@ class LocalListDataSource {
|
|
|
4323
4572
|
findAllFiltered(filters, sorts) {
|
|
4324
4573
|
return of(this.data).pipe(map(data => this.localFilter(data, filters)), map(data => this.localSort(data, sorts)));
|
|
4325
4574
|
}
|
|
4326
|
-
getId(entity) {
|
|
4327
|
-
return EntityIdUtil.getId(entity, this.idProperty);
|
|
4328
|
-
}
|
|
4329
4575
|
/***************************************************************************
|
|
4330
4576
|
* *
|
|
4331
4577
|
* Public API *
|
|
@@ -4333,7 +4579,7 @@ class LocalListDataSource {
|
|
|
4333
4579
|
**************************************************************************/
|
|
4334
4580
|
set data(data) {
|
|
4335
4581
|
this.data$.next(data);
|
|
4336
|
-
this.
|
|
4582
|
+
this.publishChangeEvent(DataSourceChangeEvent.unknownChanges());
|
|
4337
4583
|
}
|
|
4338
4584
|
get data() {
|
|
4339
4585
|
return this.data$.getValue();
|
|
@@ -4343,19 +4589,17 @@ class LocalListDataSource {
|
|
|
4343
4589
|
* Private methods *
|
|
4344
4590
|
* *
|
|
4345
4591
|
**************************************************************************/
|
|
4346
|
-
|
|
4347
|
-
|
|
4348
|
-
}
|
|
4349
|
-
guessIdProperty(localData) {
|
|
4592
|
+
static guessIdProperty(localData) {
|
|
4593
|
+
const log = LoggerFactory.getLogger('LocalListDataSource');
|
|
4350
4594
|
if (localData && localData.length > 0) {
|
|
4351
4595
|
const sample = localData[0];
|
|
4352
4596
|
if (typeof sample === 'object') {
|
|
4353
4597
|
if (sample.hasOwnProperty('id')) {
|
|
4354
|
-
|
|
4598
|
+
log.warn('DataSource without defined id-property => autodetected property id-property as "id"');
|
|
4355
4599
|
return 'id'; // Use id
|
|
4356
4600
|
}
|
|
4357
4601
|
else {
|
|
4358
|
-
|
|
4602
|
+
log.warn('Local DataSource created without defined id-property and objects. Using object equality!');
|
|
4359
4603
|
}
|
|
4360
4604
|
}
|
|
4361
4605
|
}
|
|
@@ -4369,11 +4613,11 @@ class LocalPagedDataSource {
|
|
|
4369
4613
|
* Constructor *
|
|
4370
4614
|
* *
|
|
4371
4615
|
**************************************************************************/
|
|
4372
|
-
constructor(
|
|
4373
|
-
if (!
|
|
4374
|
-
throw new Error('
|
|
4616
|
+
constructor(listDataSource) {
|
|
4617
|
+
if (!listDataSource) {
|
|
4618
|
+
throw new Error('listDataSource must not be null!');
|
|
4375
4619
|
}
|
|
4376
|
-
this.localListFetcher =
|
|
4620
|
+
this.localListFetcher = listDataSource;
|
|
4377
4621
|
}
|
|
4378
4622
|
/***************************************************************************
|
|
4379
4623
|
* *
|
|
@@ -4388,10 +4632,10 @@ class LocalPagedDataSource {
|
|
|
4388
4632
|
* @param localFilter
|
|
4389
4633
|
*/
|
|
4390
4634
|
static empty(idProperty, localSort, localFilter) {
|
|
4391
|
-
return LocalPagedDataSource.
|
|
4635
|
+
return LocalPagedDataSource.of(LocalListDataSource.empty(idProperty, localSort, localFilter));
|
|
4392
4636
|
}
|
|
4393
|
-
static
|
|
4394
|
-
return new LocalPagedDataSource(
|
|
4637
|
+
static of(listDataSource) {
|
|
4638
|
+
return new LocalPagedDataSource(listDataSource);
|
|
4395
4639
|
}
|
|
4396
4640
|
/***************************************************************************
|
|
4397
4641
|
* *
|
|
@@ -4786,12 +5030,15 @@ class DataContextBuilder {
|
|
|
4786
5030
|
* *
|
|
4787
5031
|
**************************************************************************/
|
|
4788
5032
|
buildLocal(items, idProperty) {
|
|
4789
|
-
return this.build(
|
|
5033
|
+
return this.build(this.localListSource(items, idProperty));
|
|
4790
5034
|
}
|
|
4791
|
-
buildLocalActivePaged(
|
|
5035
|
+
buildLocalActivePaged(items, idProperty) {
|
|
4792
5036
|
this._skipLocalSort = true;
|
|
4793
5037
|
this.activePaged();
|
|
4794
|
-
return this.build(LocalPagedDataSource.
|
|
5038
|
+
return this.build(LocalPagedDataSource.of(this.localListSource(items, idProperty)));
|
|
5039
|
+
}
|
|
5040
|
+
localListSource(items, idProperty) {
|
|
5041
|
+
return LocalListDataSource.from(items, idProperty, this._localSort, FilterUtil.filterData);
|
|
4795
5042
|
}
|
|
4796
5043
|
/***************************************************************************
|
|
4797
5044
|
* *
|
|
@@ -4880,9 +5127,7 @@ class DataContextBuilder {
|
|
|
4880
5127
|
return new DataContextActivePage(pageSource, this._pageSize, this._indexFn, this._localApply, this._skipLocalSort ? null : this._localSort);
|
|
4881
5128
|
}
|
|
4882
5129
|
setupDataContextAutoReload(dc, dataSource) {
|
|
4883
|
-
|
|
4884
|
-
const binding = new DataContextSourceAutoReloader(dc, dataSource);
|
|
4885
|
-
}
|
|
5130
|
+
const binding = new DataContextSourceEventBinding(dc, dataSource, this._reloadOnLocalChanges);
|
|
4886
5131
|
return dc;
|
|
4887
5132
|
}
|
|
4888
5133
|
setupDataContextAutoStart(dc, autoStartSpec) {
|
|
@@ -5192,13 +5437,14 @@ class InternalRestClientConfig {
|
|
|
5192
5437
|
*/
|
|
5193
5438
|
class RestClientConfig {
|
|
5194
5439
|
}
|
|
5195
|
-
class RestClient {
|
|
5440
|
+
class RestClient extends DataSourceBase {
|
|
5196
5441
|
/***************************************************************************
|
|
5197
5442
|
* *
|
|
5198
5443
|
* Constructor *
|
|
5199
5444
|
* *
|
|
5200
5445
|
**************************************************************************/
|
|
5201
5446
|
constructor(restEndpoint, http, config) {
|
|
5447
|
+
super(config.idField);
|
|
5202
5448
|
this.restEndpoint = restEndpoint;
|
|
5203
5449
|
this.http = http;
|
|
5204
5450
|
/***************************************************************************
|
|
@@ -5207,22 +5453,7 @@ class RestClient {
|
|
|
5207
5453
|
* *
|
|
5208
5454
|
**************************************************************************/
|
|
5209
5455
|
this._logger = LoggerFactory.getLogger(this.constructor.name);
|
|
5210
|
-
this.
|
|
5211
|
-
this.config = new InternalRestClientConfig(config);
|
|
5212
|
-
}
|
|
5213
|
-
/***************************************************************************
|
|
5214
|
-
* *
|
|
5215
|
-
* Properties *
|
|
5216
|
-
* *
|
|
5217
|
-
**************************************************************************/
|
|
5218
|
-
get dataChanged() {
|
|
5219
|
-
return this.localChangeSubject.asObservable();
|
|
5220
|
-
}
|
|
5221
|
-
/**
|
|
5222
|
-
* @deprecated Use dataChanged
|
|
5223
|
-
*/
|
|
5224
|
-
get localChanged() {
|
|
5225
|
-
return this.dataChanged;
|
|
5456
|
+
this.config = config;
|
|
5226
5457
|
}
|
|
5227
5458
|
/***************************************************************************
|
|
5228
5459
|
* *
|
|
@@ -5247,26 +5478,24 @@ class RestClient {
|
|
|
5247
5478
|
create(newEntity, params) {
|
|
5248
5479
|
return this.http.post(this.restEndpoint, newEntity, {
|
|
5249
5480
|
params: params
|
|
5250
|
-
})
|
|
5251
|
-
.pipe(tap(e => this.onLocalChanged(e)));
|
|
5481
|
+
}).pipe(tap(e => this.publishChangeEvent(DataSourceChangeEvent.created([e]))));
|
|
5252
5482
|
}
|
|
5253
|
-
update(
|
|
5254
|
-
return this.http.put(this.getEntityUrlBy(
|
|
5483
|
+
update(update, params) {
|
|
5484
|
+
return this.http.put(this.getEntityUrlBy(update), update, {
|
|
5255
5485
|
params: params
|
|
5256
|
-
})
|
|
5257
|
-
.pipe(tap(e => this.onLocalChanged(e)));
|
|
5486
|
+
}).pipe(tap(e => this.publishChangeEvent(DataSourceChangeEvent.modified([e]))));
|
|
5258
5487
|
}
|
|
5259
5488
|
updateAll(updatedEntities, params) {
|
|
5260
5489
|
return this.http.put(this.restEndpoint, updatedEntities, {
|
|
5261
5490
|
params: params
|
|
5262
5491
|
})
|
|
5263
|
-
.pipe(tap(
|
|
5492
|
+
.pipe(tap(entities => this.publishChangeEvent(DataSourceChangeEvent.modified(entities))));
|
|
5264
5493
|
}
|
|
5265
5494
|
delete(entity, params) {
|
|
5266
5495
|
return this.http.delete(this.getEntityUrlBy(entity), {
|
|
5267
5496
|
responseType: 'text',
|
|
5268
5497
|
params: params
|
|
5269
|
-
}).pipe(tap(() => this.
|
|
5498
|
+
}).pipe(tap(() => this.publishChangeEvent(DataSourceChangeEvent.deleted([this.getId(entity)]))));
|
|
5270
5499
|
}
|
|
5271
5500
|
deleteAll(entities, params) {
|
|
5272
5501
|
const ids = entities.map(e => String(this.getId(e)));
|
|
@@ -5275,9 +5504,6 @@ class RestClient {
|
|
|
5275
5504
|
this._logger.debug('Deleting ' + entities.length + ' in ' + deleteRequests.length + ' batches: ', deleteRequests);
|
|
5276
5505
|
return forkJoin(deleteRequests);
|
|
5277
5506
|
}
|
|
5278
|
-
getId(entity) {
|
|
5279
|
-
return EntityIdUtil.getId(entity, this.config.idField);
|
|
5280
|
-
}
|
|
5281
5507
|
/***************************************************************************
|
|
5282
5508
|
* *
|
|
5283
5509
|
* Sub Resource Builder *
|
|
@@ -5300,15 +5526,18 @@ class RestClient {
|
|
|
5300
5526
|
patchInternal(id, entityPatch, params) {
|
|
5301
5527
|
return this.http.patch(this.getEntityUrl(id), entityPatch, {
|
|
5302
5528
|
params: params
|
|
5303
|
-
}).pipe(tap(e => this.
|
|
5529
|
+
}).pipe(tap(e => this.publishChangeEvent(DataSourceChangeEvent.modified([e]))));
|
|
5304
5530
|
}
|
|
5305
5531
|
patchAllInternal(entityPatches, params) {
|
|
5306
5532
|
return this.http.patch(this.restEndpoint, entityPatches, {
|
|
5307
5533
|
params: params
|
|
5308
|
-
}).pipe(tap(e => this.
|
|
5534
|
+
}).pipe(tap(e => this.publishChangeEvent(DataSourceChangeEvent.modified(e))));
|
|
5309
5535
|
}
|
|
5536
|
+
/**
|
|
5537
|
+
* @deprecated Switch to publishChangeEvent
|
|
5538
|
+
*/
|
|
5310
5539
|
onLocalChanged(entity) {
|
|
5311
|
-
this.
|
|
5540
|
+
this.publishChangeEvent(DataSourceChangeEvent.unknownChanges());
|
|
5312
5541
|
}
|
|
5313
5542
|
getEntityUrlBy(entity) {
|
|
5314
5543
|
return this.getEntityUrl(this.getId(entity));
|
|
@@ -5335,7 +5564,7 @@ class RestClient {
|
|
|
5335
5564
|
params: builder.build(),
|
|
5336
5565
|
responseType: 'text'
|
|
5337
5566
|
})
|
|
5338
|
-
.pipe(tap(() =>
|
|
5567
|
+
.pipe(tap(() => DataSourceChangeEvent.deleted(ids)));
|
|
5339
5568
|
}
|
|
5340
5569
|
}
|
|
5341
5570
|
class RestClientList extends RestClient {
|
|
@@ -5345,7 +5574,7 @@ class RestClientList extends RestClient {
|
|
|
5345
5574
|
* *
|
|
5346
5575
|
**************************************************************************/
|
|
5347
5576
|
constructor(restEndpoint, http, config) {
|
|
5348
|
-
super(restEndpoint, http, config);
|
|
5577
|
+
super(restEndpoint, http, new InternalRestClientConfig(config));
|
|
5349
5578
|
}
|
|
5350
5579
|
/***************************************************************************
|
|
5351
5580
|
* *
|
|
@@ -5379,7 +5608,7 @@ class RestClientPaged extends RestClient {
|
|
|
5379
5608
|
* *
|
|
5380
5609
|
**************************************************************************/
|
|
5381
5610
|
constructor(restEndpoint, http, config) {
|
|
5382
|
-
super(restEndpoint, http, config);
|
|
5611
|
+
super(restEndpoint, http, new InternalRestClientConfig(config));
|
|
5383
5612
|
}
|
|
5384
5613
|
/***************************************************************************
|
|
5385
5614
|
* *
|
|
@@ -5424,7 +5653,7 @@ class RestClientContinuable extends RestClient {
|
|
|
5424
5653
|
* *
|
|
5425
5654
|
**************************************************************************/
|
|
5426
5655
|
constructor(restEndpoint, http, config) {
|
|
5427
|
-
super(restEndpoint, http, config);
|
|
5656
|
+
super(restEndpoint, http, new InternalRestClientConfig(config));
|
|
5428
5657
|
}
|
|
5429
5658
|
/***************************************************************************
|
|
5430
5659
|
* *
|
|
@@ -28503,5 +28732,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImpor
|
|
|
28503
28732
|
* Generated bundle index. Do not edit.
|
|
28504
28733
|
*/
|
|
28505
28734
|
|
|
28506
|
-
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 };
|
|
28735
|
+
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 };
|
|
28507
28736
|
//# sourceMappingURL=elderbyte-ngx-starter.mjs.map
|