@rentman/rm-core 1.7.2 → 1.7.4

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.
Files changed (59) hide show
  1. package/changelog.md +7 -0
  2. package/dist/rm-core.js +42 -38
  3. package/dist/rm-core.min.js +1 -1
  4. package/dist/src/classes/ApiFormatter.d.ts +9 -9
  5. package/dist/src/classes/ApiResponseProcessor.d.ts +5 -7
  6. package/dist/src/classes/BatchStatus.d.ts +4 -3
  7. package/dist/src/classes/ChangesCompilation.d.ts +14 -14
  8. package/dist/src/classes/ChangesProcessor.d.ts +2 -2
  9. package/dist/src/classes/CollectionCache.d.ts +16 -16
  10. package/dist/src/classes/CollectionEntryService.d.ts +4 -4
  11. package/dist/src/classes/CollectionHandler.d.ts +13 -13
  12. package/dist/src/classes/CollectionMatcher.d.ts +15 -15
  13. package/dist/src/classes/CollectionResourceService.d.ts +3 -3
  14. package/dist/src/classes/ColumnExpansion.d.ts +6 -6
  15. package/dist/src/classes/ColumnInfo.d.ts +6 -6
  16. package/dist/src/classes/ColumnSet.d.ts +17 -17
  17. package/dist/src/classes/ColumnSubsetCache.d.ts +3 -3
  18. package/dist/src/classes/CreateRequest.d.ts +6 -6
  19. package/dist/src/classes/ItemAdministrator.d.ts +134 -134
  20. package/dist/src/classes/ItemCache.d.ts +13 -13
  21. package/dist/src/classes/ItemEntryService.d.ts +3 -3
  22. package/dist/src/classes/ItemHandler.d.ts +17 -17
  23. package/dist/src/classes/ItemRequestService.d.ts +5 -5
  24. package/dist/src/classes/LocalCache.d.ts +40 -40
  25. package/dist/src/classes/LockService.d.ts +7 -7
  26. package/dist/src/classes/ModuleChangesCompilation.d.ts +2 -2
  27. package/dist/src/classes/RequestColumnExpansion.d.ts +2 -2
  28. package/dist/src/classes/ResourceCache.d.ts +1 -1
  29. package/dist/src/classes/SocketMessageHandler.d.ts +11 -11
  30. package/dist/src/classes/Util.d.ts +1 -1
  31. package/dist/src/factories/BatchStatusFactory.d.ts +2 -1
  32. package/dist/src/factories/ChangesCompilationFactory.d.ts +2 -1
  33. package/dist/src/factories/CollectionEntryFactory.d.ts +1 -1
  34. package/dist/src/factories/CollectionMatcherFactory.d.ts +2 -1
  35. package/dist/src/factories/CollectionResourceFactory.d.ts +13 -12
  36. package/dist/src/factories/ColumnExpansionFactory.d.ts +1 -1
  37. package/dist/src/factories/ColumnInfoFactory.d.ts +3 -3
  38. package/dist/src/factories/ColumnSetFactory.d.ts +2 -2
  39. package/dist/src/factories/ColumnSubsetCacheFactory.d.ts +2 -2
  40. package/dist/src/factories/CreateRequestFactory.d.ts +2 -2
  41. package/dist/src/factories/ItemEntryFactory.d.ts +5 -5
  42. package/dist/src/factories/ItemResourceFactory.d.ts +13 -13
  43. package/dist/src/factories/ModuleChangesCompilationFactory.d.ts +2 -1
  44. package/dist/src/factories/TemplateFactory.d.ts +1 -1
  45. package/dist/src/models/CollectionEditResource.d.ts +6 -6
  46. package/dist/src/models/CollectionEntry.d.ts +29 -29
  47. package/dist/src/models/CollectionResource.d.ts +7 -7
  48. package/dist/src/models/CollectionResourceOptions.d.ts +10 -10
  49. package/dist/src/models/CollectionViewResource.d.ts +3 -2
  50. package/dist/src/models/EditResource.d.ts +8 -8
  51. package/dist/src/models/ItemEntry.d.ts +24 -24
  52. package/dist/src/models/ItemResource.d.ts +10 -10
  53. package/dist/src/models/ItemResourceOptions.d.ts +5 -4
  54. package/dist/src/models/LocalViewResource.d.ts +3 -2
  55. package/dist/src/models/RemoteViewResource.d.ts +3 -2
  56. package/dist/src/models/Template.d.ts +5 -5
  57. package/dist/src/models/ViewResource.d.ts +4 -4
  58. package/dist/src/types/ItemTypesCollection.d.ts +39 -39
  59. package/package.json +1 -1
@@ -7,15 +7,15 @@ export declare class ApiFormatter {
7
7
  SERVER_TIME_FORMAT: string;
8
8
  SERVER_DATE_FORMAT: string;
9
9
  constructor();
10
- formatResponse(fields: FieldMap, columns: ColumnInfo[]): FieldMap;
11
- expandResponse(current: FieldMap, expanded: FieldMap, columns: ColumnInfo[]): FieldMap;
12
- formatRequest(initial: FieldMap, modified: FieldMap, columns: ColumnInfo[]): FieldMap;
13
- formatRequestLocal(fields: FieldMap, columns: ColumnInfo[]): FieldMap;
14
- hasChanges(initial: FieldMap, modified: FieldMap, columns: ColumnInfo[]): boolean;
15
- getChanges(initial: FieldMap, modified: FieldMap, columns: ColumnInfo[]): FieldMap;
16
- copyFields(source: FieldMap, destination: FieldMap, columns: ColumnInfo[]): FieldMap;
17
- shallowCopyFields(shallowSource: FieldMap, deepSource: FieldMap, destination: FieldMap, columns: ColumnInfo[]): FieldMap;
18
- setDefaultValues(destination: FieldMap, columns: ColumnInfo[]): FieldMap;
10
+ formatResponse(fields: FieldMap, columns: Array<ColumnInfo<any>>): FieldMap;
11
+ expandResponse(current: FieldMap, expanded: FieldMap, columns: Array<ColumnInfo<any>>): FieldMap;
12
+ formatRequest(initial: FieldMap, modified: FieldMap, columns: Array<ColumnInfo<any>>): FieldMap;
13
+ formatRequestLocal(fields: FieldMap, columns: Array<ColumnInfo<any>>): FieldMap;
14
+ hasChanges(initial: FieldMap, modified: FieldMap, columns: Array<ColumnInfo<any>>): boolean;
15
+ getChanges(initial: FieldMap, modified: FieldMap, columns: Array<ColumnInfo<any>>): FieldMap;
16
+ copyFields(source: FieldMap, destination: FieldMap, columns: Array<ColumnInfo<any>>): FieldMap;
17
+ shallowCopyFields(shallowSource: FieldMap, deepSource: FieldMap, destination: FieldMap, columns: Array<ColumnInfo<any>>): FieldMap;
18
+ setDefaultValues(destination: FieldMap, columns: Array<ColumnInfo<any>>): FieldMap;
19
19
  compareFields(columnType: string, first?: any, second?: any): boolean;
20
20
  compareFloats(a: number, b: number): boolean;
21
21
  compareMomentObjects(first: moment.Moment, second: moment.Moment): boolean;
@@ -19,21 +19,19 @@ export declare class ApiResponseProcessor {
19
19
  fetchValue(itemType: ItemType, itemId: ItemId, columnId: string): any;
20
20
  fetchDerivedObject(itemType: ItemType, itemId: ItemId, rootColumns: ResponseColumn[]): {};
21
21
  fetchDerivedValues(value: any, column: ResponseColumn, destination: any): void;
22
- fetchObject(itemType: ItemType, itemId: string | ItemId, includeLinks?: boolean): any;
23
- fetchObjectArray(itemType: ItemType, includeLinks?: boolean, idArray?: ItemId[] | null): FieldMap[];
22
+ fetchObject<ItemTypeType extends ItemType>(itemType: ItemTypeType, itemId: string | ItemId, includeLinks?: boolean): FieldMap<ItemTypeType> | undefined;
23
+ fetchObjectArray<ItemTypeType extends ItemType>(itemType: ItemTypeType, includeLinks?: boolean, idArray?: ItemId[] | null): Array<FieldMap<ItemTypeType>>;
24
24
  fetchObjectMap(itemType: ItemType, columnId: string, includeLinks?: boolean, returnKeys?: boolean): {
25
25
  [key: string]: any;
26
26
  };
27
- fetchFieldMap(itemType: ItemType, columnId: string): {
28
- [itemId: number]: FieldMap;
29
- };
27
+ fetchFieldMap<ItemTypeType extends ItemType>(itemType: ItemTypeType, columnId: string): FieldMap<ItemTypeType>;
30
28
  fetchColumnArray(itemType: ItemType): ResponseColumn[];
31
29
  fetchColumnObject(itemType: ItemType): ResponseColumn;
32
30
  fetchColumnsObject(): {
33
31
  [itemType: string]: ResponseColumn;
34
32
  };
35
- createResource(itemType: ItemType, id: ItemId): {
36
- object: FieldMap;
33
+ createResource<ItemTypeType extends ItemType>(itemType: ItemTypeType, id: ItemId): {
34
+ object: FieldMap<ItemTypeType> | undefined;
37
35
  links: any;
38
36
  };
39
37
  hasItems(itemType: ItemType): boolean;
@@ -1,16 +1,17 @@
1
1
  import { ENTRY_STATUS } from '../constants';
2
2
  import { PromiseLibraryInterface } from '../interfaces';
3
+ import { CollectionEntry, ItemEntry } from '../models';
3
4
  import { EntryStatus, EntryStatusMap, ItemId, ItemType, PromiseInterface } from '../types';
4
- export declare class BatchStatus<T> {
5
+ export declare class BatchStatus<ItemTypeType extends ItemType, T extends ItemEntry<ItemTypeType> | CollectionEntry<ItemTypeType>> {
5
6
  private promiseService;
6
- itemType: ItemType;
7
+ itemType: ItemTypeType;
7
8
  getItemId: (itemEntry: T) => ItemId;
8
9
  getPromise: (itemEntry: T) => PromiseInterface<T>;
9
10
  readonly requestStatus: ENTRY_STATUS[];
10
11
  readonly remoteExpandStatus: ENTRY_STATUS[];
11
12
  readonly localExpandStatus: ENTRY_STATUS[];
12
13
  entries: EntryStatusMap<T>;
13
- constructor(promiseService: PromiseLibraryInterface, itemType: ItemType, getItemId: (itemEntry: T) => ItemId, getPromise: (itemEntry: T) => PromiseInterface<T>);
14
+ constructor(promiseService: PromiseLibraryInterface, itemType: ItemTypeType, getItemId: (itemEntry: T) => ItemId, getPromise: (itemEntry: T) => PromiseInterface<T>);
14
15
  add(entryStatus: EntryStatus<T>): void;
15
16
  hasEntries(statusArray: ENTRY_STATUS[]): boolean;
16
17
  hasRequests(): boolean;
@@ -2,32 +2,32 @@ import { CollectionCache, KeyService } from '../classes';
2
2
  import { CollectionCacheFactory } from '../factories';
3
3
  import { CollectionEntry, ItemEntry } from '../models';
4
4
  import { EntryParent, EntryParentNull, ItemEntryMap, ItemId, ItemType } from '../types';
5
- export declare type DeleteMapEntry = {
6
- item: ItemEntry;
5
+ export declare type DeleteMapEntry<ItemTypeType extends ItemType> = {
6
+ item: ItemEntry<ItemTypeType>;
7
7
  parent: EntryParentNull;
8
8
  };
9
- export declare type MoveMapEntry = {
10
- item: ItemEntry;
9
+ export declare type MoveMapEntry<ItemTypeType extends ItemType> = {
10
+ item: ItemEntry<ItemTypeType>;
11
11
  parent: EntryParent;
12
12
  };
13
13
  export declare type CreateCompilation = {
14
14
  [parentType: string]: {
15
- [parentId: number]: ItemEntryMap;
15
+ [parentId: number]: ItemEntryMap<ItemType>;
16
16
  };
17
17
  };
18
18
  export declare type DeleteCompilation = {
19
- [itemType: string]: ItemEntry[];
19
+ [itemType: string]: Array<ItemEntry<ItemType>>;
20
20
  };
21
- export declare type UpdateCompilation = ItemEntryMap;
21
+ export declare type UpdateCompilation = ItemEntryMap<ItemType>;
22
22
  export declare type MoveCompilation = {
23
23
  [parentType: string]: {
24
- [parentId: number]: MoveMapEntry[];
24
+ [parentId: number]: Array<MoveMapEntry<any>>;
25
25
  };
26
26
  };
27
27
  export declare class ChangesCompilation {
28
28
  private collectionCacheFactory;
29
29
  private keyService;
30
- singleItems: ItemEntry[];
30
+ singleItems: Array<ItemEntry<ItemType>>;
31
31
  compilation: {
32
32
  create: CreateCompilation;
33
33
  delete: DeleteCompilation;
@@ -37,12 +37,12 @@ export declare class ChangesCompilation {
37
37
  collections: CollectionCache;
38
38
  private moveArray;
39
39
  private deleteMap;
40
- constructor(collectionCacheFactory: CollectionCacheFactory, keyService: KeyService, singleItems: ItemEntry[], collectionEntries: CollectionEntry[]);
40
+ constructor(collectionCacheFactory: CollectionCacheFactory, keyService: KeyService, singleItems: Array<ItemEntry<ItemType>>, collectionEntries: Array<CollectionEntry<ItemType>>);
41
41
  getDefaultParent(): EntryParent;
42
- addMoveEntry(itemEntry: ItemEntry): void;
43
- addDeleteEntry(itemEntry: ItemEntry, parent: EntryParentNull): void;
44
- addUpdateEntry(itemEntry: ItemEntry): void;
45
- addCreateEntry(itemEntry: ItemEntry): void;
42
+ addMoveEntry(itemEntry: ItemEntry<ItemType>): void;
43
+ addDeleteEntry(itemEntry: ItemEntry<ItemType>, parent: EntryParentNull): void;
44
+ addUpdateEntry(itemEntry: ItemEntry<ItemType>): void;
45
+ addCreateEntry(itemEntry: ItemEntry<ItemType>): void;
46
46
  containsCreateEntry(itemType: ItemType, itemId: ItemId): boolean;
47
47
  private createDeleteCompilation;
48
48
  postProcess(): void;
@@ -16,7 +16,7 @@ export declare class ChangesProcessor {
16
16
  private promiseService;
17
17
  private requestColumnExpansionFactory;
18
18
  constructor(apiFormatter: ApiFormatter, apiRequestService: ApiRequestServiceInterface, changesCompilationFactory: ChangesCompilationFactory, collectionEntryService: CollectionEntryService, collectionHandler: CollectionHandler, columnExpansionFactory: ColumnExpansionFactory, createRequestFactory: CreateRequestFactory, errorHandler: ErrorHandlerInterface, itemHandler: ItemHandler, promiseService: PromiseLibraryInterface, requestColumnExpansionFactory: RequestColumnExpansionFactory);
19
- buildMoveRequest(compilationEntries: MoveMapEntry[]): ApiRequestMoveItems;
19
+ buildMoveRequest(compilationEntries: Array<MoveMapEntry<any>>): ApiRequestMoveItems;
20
20
  getMapValue(itemType: ItemType, itemId: ItemId, map: ItemIdConversionMap): ItemId | undefined;
21
21
  private executeCreateRequests;
22
22
  private executeCreateRequest;
@@ -29,5 +29,5 @@ export declare class ChangesProcessor {
29
29
  private addCollectionMapEntry;
30
30
  private forEachCollection;
31
31
  private onItemsCreated;
32
- execute(singleItems: ItemEntry[], collections: CollectionEntry[], parameters?: CreateRequestParameterMap, breakupByParent?: boolean, onAfterCreateCallback?: (conversionMap: ItemIdConversionMap) => void): PromiseInterface<ItemIdConversionMap>;
32
+ execute(singleItems: Array<ItemEntry<any>>, collections: Array<CollectionEntry<any>>, parameters?: CreateRequestParameterMap, breakupByParent?: boolean, onAfterCreateCallback?: (conversionMap: ItemIdConversionMap) => void): PromiseInterface<ItemIdConversionMap>;
33
33
  }
@@ -6,29 +6,29 @@ export declare class CollectionCache {
6
6
  private queryMatcherFactory;
7
7
  private entries;
8
8
  constructor(collectionResourceFactory: CollectionResourceFactory, queryMatcherFactory: QueryMatcherFactory);
9
- contains(collectionEntry: CollectionEntry): boolean;
10
- some(callback: (entry: CollectionEntry) => boolean): boolean;
11
- forEach(callback: (entry: CollectionEntry) => void): void;
12
- toArray(): CollectionEntry[];
13
- add(collectionEntry: CollectionEntry): CollectionEntry;
14
- clear(collectionEntry?: CollectionEntry): boolean;
15
- getByItemType(itemType: string): CollectionEntry[];
16
- matchParent(collectionEntry: CollectionEntry, itemType: string, itemId: ItemId): boolean;
17
- getByParent(parentType: ItemType, parentId: ItemId, itemType: ItemType): CollectionEntry | null;
18
- getResourceByParent(parentType: ItemType, parentId: ItemId, itemType: ItemType): CollectionResource | null;
19
- getCollectionsByParent(parentType: ItemType, parentId: ItemId): CollectionEntry[];
9
+ contains(collectionEntry: CollectionEntry<any>): boolean;
10
+ some(callback: (entry: CollectionEntry<any>) => boolean): boolean;
11
+ forEach(callback: (entry: CollectionEntry<any>) => void): void;
12
+ toArray(): CollectionEntry<any>[];
13
+ add<T extends CollectionEntry<any>>(collectionEntry: T): T;
14
+ clear(collectionEntry?: CollectionEntry<any>): boolean;
15
+ getByItemType<ItemTypeType extends ItemType>(itemType: ItemTypeType): CollectionEntry<ItemTypeType>[];
16
+ matchParent(collectionEntry: CollectionEntry<any>, itemType: string, itemId: ItemId): boolean;
17
+ getByParent<ItemTypeType extends ItemType>(parentType: ItemType, parentId: ItemId, itemType: ItemTypeType): CollectionEntry<ItemTypeType> | null;
18
+ getResourceByParent<ItemTypeType extends ItemType>(parentType: ItemType, parentId: ItemId, itemType: ItemTypeType): CollectionResource<ItemTypeType> | null;
19
+ getCollectionsByParent(parentType: ItemType, parentId: ItemId): CollectionEntry<any>[];
20
20
  /**
21
21
  * Only resources
22
22
  * @param {String} itemType
23
23
  * @param {String|Integer} itemId
24
24
  * @returns {Object} Array of collections.
25
25
  */
26
- getByContainingItem(itemType: ItemType, itemId: ItemId): CollectionEntry[];
26
+ getByContainingItem<ItemTypeType extends ItemType>(itemType: ItemTypeType, itemId: ItemId): CollectionEntry<ItemTypeType>[];
27
27
  /**
28
28
  * Returns an array of collections the item 'belongs' in.
29
29
  */
30
- getByFittingItem(itemType: ItemType, fields: FieldMap, parent: EntryParentNull): CollectionMatchResult;
31
- getByQuery(itemType: ItemType, query: CollectionQuery): CollectionEntry | null;
32
- getByKey(itemType: ItemType, entryKey: string): CollectionEntry[];
33
- getResourceByKey(itemType: ItemType, resourceKey: string): CollectionResource[];
30
+ getByFittingItem<ItemTypeType extends ItemType>(itemType: ItemTypeType, fields: FieldMap, parent: EntryParentNull): CollectionMatchResult<ItemTypeType>;
31
+ getByQuery<ItemTypeType extends ItemType>(itemType: ItemTypeType, query: CollectionQuery): CollectionEntry<ItemTypeType> | null;
32
+ getByKey<ItemTypeType extends ItemType>(itemType: ItemTypeType, entryKey: string): Array<CollectionEntry<ItemTypeType>>;
33
+ getResourceByKey<ItemTypeType extends ItemType>(itemType: ItemTypeType, resourceKey: string): Array<CollectionResource<ItemTypeType>>;
34
34
  }
@@ -1,16 +1,16 @@
1
1
  import { QueryService } from '../classes';
2
2
  import { QueryParserFactory } from '../factories';
3
3
  import { CollectionEntryOptions, ItemEntry } from '../models';
4
- import { CollectionOptionsInterface, CollectionQuery, EntryParentNull, ItemId } from '../types';
4
+ import { CollectionOptionsInterface, CollectionQuery, EntryParentNull, ItemId, ItemType } from '../types';
5
5
  export declare class CollectionEntryService {
6
6
  private queryParserFactory;
7
7
  private queryService;
8
8
  constructor(queryParserFactory: QueryParserFactory, queryService: QueryService);
9
9
  cloneOptions(options: CollectionEntryOptions, parent: EntryParentNull): CollectionEntryOptions;
10
- processOptions(options: CollectionOptionsInterface): CollectionEntryOptions;
10
+ processOptions<ItemTypeType extends ItemType>(options: CollectionOptionsInterface<ItemTypeType>): CollectionEntryOptions;
11
11
  cloneQueryParams<T extends object>(parameters: T): T;
12
12
  createQuery(options: CollectionEntryOptions): CollectionQuery;
13
- getIdArray(itemEntries: ItemEntry[], accumulator?: ItemId[]): ItemId[];
13
+ getIdArray(itemEntries: Array<ItemEntry<any>>, accumulator?: ItemId[]): ItemId[];
14
14
  /**
15
15
  * @param {ItemEntry[]} itemEntries
16
16
  * @param {(itemEntry: ItemEntry) => boolean} callback
@@ -19,5 +19,5 @@ export declare class CollectionEntryService {
19
19
  * filter an array according to the callback function. Return the entries that failed the condition
20
20
  * Replace the given array with the entries that didn't fail the condition.
21
21
  */
22
- filterArray(itemEntries: ItemEntry[], callback: (itemEntry: ItemEntry) => boolean): ItemEntry[];
22
+ filterArray<T extends ItemEntry<any> = ItemEntry<any>>(itemEntries: T[], callback: (itemEntry: T) => boolean): T[];
23
23
  }
@@ -25,30 +25,30 @@ export declare class CollectionHandler {
25
25
  * @deprecated, use collectionMatcherFactory
26
26
  */
27
27
  removeFromAndAddToCollections(collectionMap: any): void;
28
- getCollectionMatcher(): CollectionMatcher;
28
+ getCollectionMatcher<ItemTypeType extends ItemType>(): CollectionMatcher<ItemTypeType>;
29
29
  /**
30
30
  * @deprecated, use collectionMatcherFactory
31
31
  */
32
- removeFromCollections<T extends CollectionResource = CollectionViewResource>(collectionMap: any, updateInitial?: boolean, resultResource?: T | null): T['items'] | null;
32
+ removeFromCollections<T extends CollectionResource<any> = CollectionViewResource<any>>(collectionMap: any, updateInitial?: boolean, resultResource?: T | null): T['items'] | null;
33
33
  /**
34
34
  * @deprecated, use collectionMatcherFactory
35
35
  */
36
- addToCollections<T extends CollectionResource = CollectionViewResource>(collectionMap: any, updateInitial: boolean, resultResource?: T | null): T['items'];
37
- batchExpand(parentType: ItemType, itemType: ItemType, collections: CollectionResourceParentIdMap, newColumns: ApiRequestColumn[]): PromiseInterface<CollectionResourceParentIdMap>;
36
+ addToCollections<T extends CollectionResource<any> = CollectionViewResource<any>>(collectionMap: any, updateInitial: boolean, resultResource?: T | null): T['items'];
37
+ batchExpand<ItemTypeType extends ItemType>(parentType: ItemType, itemType: ItemTypeType, collections: CollectionResourceParentIdMap, newColumns: ApiRequestColumn[]): PromiseInterface<CollectionResourceParentIdMap>;
38
38
  batchExtend<T extends CollectionResourceParentIdMap>(parentType: ItemType, itemType: ItemType, options: CollectionEntryOptions, queryCallback: QueryCallback, collections: T, returnAllItems?: boolean, callOnAdd?: boolean): PromiseInterface<ItemResourceItemIdMap>;
39
- batchFetch(parentType: ItemType, parentIdArray: ItemId[] | (() => ItemId[]), itemType: ItemType, options: CollectionEntryOptions, itemCache: ItemCache, localCollectionCache: CollectionCache, deferredCollectionCache: CollectionCache): PromiseInterface<CollectionEntryParentIdMap>;
40
- handleBatchResponse(batchStatus: BatchStatus<CollectionEntry>, itemEntryCompound: {
41
- columns: ColumnSet;
42
- columnExpansion?: ColumnExpansion;
43
- items?: ItemEntryParentIdMap;
44
- }, localItems: ItemEntryParentIdMap): CollectionEntryParentIdMap;
45
- fetch(itemType: ItemType, options: CollectionEntryOptions, itemCache: ItemCache, localCollectionCache: CollectionCache, deferredCollectionCache: CollectionCache): PromiseInterface<CollectionEntry>;
39
+ batchFetch<ItemTypeType extends ItemType>(parentType: ItemType, parentIdArray: ItemId[] | (() => ItemId[]), itemType: ItemTypeType, options: CollectionEntryOptions, itemCache: ItemCache, localCollectionCache: CollectionCache, deferredCollectionCache: CollectionCache): PromiseInterface<CollectionEntryParentIdMap<ItemTypeType>>;
40
+ handleBatchResponse<ItemTypeType extends ItemType>(batchStatus: BatchStatus<ItemTypeType, CollectionEntry<ItemTypeType>>, itemEntryCompound: {
41
+ columns: ColumnSet<ItemTypeType>;
42
+ columnExpansion?: ColumnExpansion<ItemTypeType>;
43
+ items?: ItemEntryParentIdMap<ItemTypeType>;
44
+ }, localItems: ItemEntryParentIdMap<ItemTypeType>): CollectionEntryParentIdMap<ItemTypeType>;
45
+ fetch<ItemTypeType extends ItemType>(itemType: ItemTypeType, options: CollectionEntryOptions, itemCache: ItemCache, localCollectionCache: CollectionCache, deferredCollectionCache: CollectionCache): PromiseInterface<CollectionEntry<ItemTypeType>>;
46
46
  private resolveCached;
47
47
  private getCachedEntryStatus;
48
48
  private getDeferredEntryStatus;
49
49
  private getEntryStatus;
50
- resolveLocal(collectionEntry: CollectionEntry, itemCache: ItemCache): PromiseInterface<CollectionEntry>;
51
- resolveRemote(collectionEntry: CollectionEntry, itemCache: ItemCache): PromiseInterface<CollectionEntry>;
50
+ resolveLocal<T extends CollectionEntry<any>>(collectionEntry: T, itemCache: ItemCache): PromiseInterface<T>;
51
+ resolveRemote<T extends CollectionEntry<any>>(collectionEntry: T, itemCache: ItemCache): PromiseInterface<T>;
52
52
  isLocal(options: any): boolean;
53
53
  private expandLocalItemEntries;
54
54
  }
@@ -1,19 +1,19 @@
1
- import { ItemId } from '../';
1
+ import { ItemId, ItemType } from '../';
2
2
  import { CollectionCache } from '../classes';
3
3
  import { QueryMatcherFactory } from '../factories/';
4
4
  import { CollectionEntry, CollectionResource, ItemEntry } from '../models';
5
- export declare type CollectionMatcherMatches = {
5
+ export declare type CollectionMatcherMatches<ItemTypeType extends ItemType> = {
6
6
  [itemId: number]: {
7
- item: ItemEntry;
7
+ item: ItemEntry<ItemTypeType>;
8
8
  isMatch: boolean | 'maybe';
9
9
  };
10
10
  };
11
- export declare type GroupedCollectionMatcherResult = {
12
- fitting: ItemEntry[];
11
+ export declare type GroupedCollectionMatcherResult<ItemTypeType extends ItemType> = {
12
+ fitting: Array<ItemEntry<ItemTypeType>>;
13
13
  notFitting: ItemId[];
14
- maybe: ItemEntry[];
14
+ maybe: Array<ItemEntry<ItemTypeType>>;
15
15
  };
16
- export declare class CollectionMatcher {
16
+ export declare class CollectionMatcher<ItemTypeType extends ItemType> {
17
17
  private queryMatcherFactory;
18
18
  private collectionCaches;
19
19
  private updateInitial;
@@ -21,20 +21,20 @@ export declare class CollectionMatcher {
21
21
  private callOnActivate;
22
22
  map: {
23
23
  [collectionEntryId: number]: {
24
- collection: CollectionEntry;
25
- matches: CollectionMatcherMatches;
24
+ collection: CollectionEntry<ItemTypeType>;
25
+ matches: CollectionMatcherMatches<ItemTypeType>;
26
26
  };
27
27
  };
28
28
  constructor(queryMatcherFactory: QueryMatcherFactory, collectionCaches: CollectionCache[], updateInitial: boolean, callOnAdd: boolean, callOnActivate: boolean);
29
- expand(itemEntry: ItemEntry): this;
29
+ expand(itemEntry: ItemEntry<ItemTypeType>): this;
30
30
  private _expand;
31
- getCollectionsWithFittingItems(): CollectionEntry[];
32
- addToCollections<U extends CollectionResource>(resultResource: U): U['items'];
31
+ getCollectionsWithFittingItems(): Array<CollectionEntry<ItemTypeType>>;
32
+ addToCollections<U extends CollectionResource<ItemTypeType>>(resultResource: U): U['items'];
33
33
  addToCollections(resultResource?: null): null;
34
- addToCollections<U extends CollectionResource>(resultResource?: CollectionResource | null): U['items'] | null;
35
- removeFromCollections<U extends CollectionResource>(resultResource: U): U['items'];
34
+ addToCollections<U extends CollectionResource<ItemTypeType>>(resultResource?: CollectionResource<ItemTypeType> | null): U['items'] | null;
35
+ removeFromCollections<U extends CollectionResource<ItemTypeType>>(resultResource: U): U['items'];
36
36
  removeFromCollections(resultResource?: null): null;
37
- removeFromCollections<U extends CollectionResource>(resultResource?: CollectionResource | null): U['items'] | null;
37
+ removeFromCollections<U extends CollectionResource<ItemTypeType>>(resultResource?: CollectionResource<ItemTypeType> | null): U['items'] | null;
38
38
  removeFromAndAddToCollections(): void;
39
39
  private groupItemEntries;
40
40
  private groupItemIds;
@@ -1,6 +1,6 @@
1
1
  import { CollectionResourceOptions, CollectionResourceOptionsInterface, ItemResource } from '../models';
2
- import { ItemId } from '../types';
2
+ import { ItemId, ItemType } from '../types';
3
3
  export declare class CollectionResourceService {
4
- processOptions(options: CollectionResourceOptionsInterface): CollectionResourceOptions;
5
- getIdArray(itemResources: ItemResource[]): ItemId[];
4
+ processOptions<ItemTypeType extends ItemType>(options: CollectionResourceOptionsInterface<ItemTypeType>): CollectionResourceOptions<ItemTypeType>;
5
+ getIdArray(itemResources: Array<ItemResource<any>>): ItemId[];
6
6
  }
@@ -1,18 +1,18 @@
1
1
  import { ColumnInfo, ColumnSet } from '../classes';
2
2
  import { ColumnInfoFactory } from '../factories';
3
3
  import { ApiRequestColumn, ApiRequestColumns, ColumnExpansionResult, ItemType, ResponseColumnMap } from '../types';
4
- export declare class ColumnExpansion {
4
+ export declare class ColumnExpansion<ItemTypeType extends ItemType> {
5
5
  private columnInfoFactory;
6
- itemType: ItemType;
6
+ itemType: ItemTypeType;
7
7
  responseColumns: ResponseColumnMap;
8
8
  expansionMap: {
9
- [columnSetId: string]: ColumnExpansionResult | null;
9
+ [columnSetId: string]: ColumnExpansionResult<ItemTypeType> | null;
10
10
  };
11
11
  expansionMapSize: number;
12
12
  requestColumnsTrue: boolean;
13
13
  requestColumns: ApiRequestColumn[];
14
- constructor(columnInfoFactory: ColumnInfoFactory, itemType: ItemType, requestColumns: ApiRequestColumns, responseColumns: ResponseColumnMap);
15
- run(columnSet: ColumnSet): ColumnExpansionResult | null;
16
- aggregateRootColumns(): ColumnInfo[];
14
+ constructor(columnInfoFactory: ColumnInfoFactory, itemType: ItemTypeType, requestColumns: ApiRequestColumns, responseColumns: ResponseColumnMap);
15
+ run(columnSet: ColumnSet<ItemTypeType>): ColumnExpansionResult<ItemTypeType> | null;
16
+ aggregateRootColumns(): Array<ColumnInfo<ItemTypeType>>;
17
17
  private expandRootColumnMap;
18
18
  }
@@ -1,14 +1,14 @@
1
1
  import { ItemType, ResponseColumn } from '../types';
2
- export declare class ColumnInfo {
2
+ export declare class ColumnInfo<ItemTypeType extends ItemType = any> {
3
3
  readonly apiColumn: ResponseColumn;
4
- readonly parent: ColumnInfo | null;
4
+ readonly parent: ColumnInfo<ItemType> | null;
5
5
  id: string;
6
6
  level: number;
7
7
  path: string;
8
8
  tailPath: string;
9
- itemType: ItemType | null;
10
- children: ColumnInfo[];
9
+ itemType: ItemTypeType | null;
10
+ children: Array<ColumnInfo<ItemTypeType>>;
11
11
  isLeaf: boolean;
12
- constructor(apiColumn: ResponseColumn, parent?: ColumnInfo | null);
13
- setChildren(itemType: ItemType, children: ColumnInfo[]): this;
12
+ constructor(apiColumn: ResponseColumn, parent?: ColumnInfo<ItemType> | null);
13
+ setChildren(itemType: ItemTypeType, children: Array<ColumnInfo<ItemTypeType>>): this;
14
14
  }
@@ -1,31 +1,31 @@
1
1
  import { ColumnHandler, ColumnInfo, ColumnUtil, RequestColumnMergeResult } from '../classes';
2
2
  import { ColumnInfoFactory, ColumnSetFactory } from '../factories';
3
3
  import { ApiRequestColumns, ColumnExpansionResult, ItemType, ResponseColumnMap } from '../types';
4
- export declare class ColumnSet {
4
+ export declare class ColumnSet<ItemTypeType extends ItemType = any> {
5
5
  private columnHandler;
6
6
  private columnUtil;
7
7
  private columnInfoFactory;
8
8
  private columnSetFactory;
9
- itemType: ItemType;
9
+ itemType: ItemTypeType;
10
10
  request: ApiRequestColumns;
11
11
  id: number;
12
12
  requestColumnsTrue: boolean;
13
13
  response: ResponseColumnMap;
14
- link: ColumnInfo | null;
15
- main: ColumnInfo[];
16
- derived: ColumnInfo[];
17
- root: ColumnInfo[];
18
- leaf: ColumnInfo[];
14
+ link: ColumnInfo<ItemTypeType> | null;
15
+ main: Array<ColumnInfo<ItemTypeType>>;
16
+ derived: Array<ColumnInfo<ItemTypeType>>;
17
+ root: Array<ColumnInfo<ItemTypeType>>;
18
+ leaf: Array<ColumnInfo<ItemTypeType>>;
19
19
  formatted: {
20
- main: ColumnInfo[];
21
- derived: ColumnInfo[];
20
+ main: Array<ColumnInfo<ItemTypeType>>;
21
+ derived: Array<ColumnInfo<ItemTypeType>>;
22
22
  };
23
- filtered: ColumnInfo[];
24
- custom: ColumnInfo[];
25
- searchable: ColumnInfo[];
26
- item: ColumnInfo[];
27
- notItem: ColumnInfo[];
28
- constructor(columnHandler: ColumnHandler, columnUtil: ColumnUtil, columnInfoFactory: ColumnInfoFactory, columnSetFactory: ColumnSetFactory, itemType: ItemType, request: ApiRequestColumns);
23
+ filtered: Array<ColumnInfo<ItemTypeType>>;
24
+ custom: Array<ColumnInfo<ItemTypeType>>;
25
+ searchable: Array<ColumnInfo<ItemTypeType>>;
26
+ item: Array<ColumnInfo<ItemTypeType>>;
27
+ notItem: Array<ColumnInfo<ItemTypeType>>;
28
+ constructor(columnHandler: ColumnHandler, columnUtil: ColumnUtil, columnInfoFactory: ColumnInfoFactory, columnSetFactory: ColumnSetFactory, itemType: ItemTypeType, request: ApiRequestColumns);
29
29
  toJSON(): {
30
30
  main: string[];
31
31
  derived: string[];
@@ -41,6 +41,6 @@ export declare class ColumnSet {
41
41
  private getMergedColumnSet;
42
42
  mergeRequestColumns(requestColumns: ApiRequestColumns): RequestColumnMergeResult;
43
43
  mergeResponseColumns(responseColumns: ResponseColumnMap): ResponseColumnMap;
44
- merge(columnSet: ColumnSet): ColumnSet;
45
- expand(requestColumns: ApiRequestColumns, requestColumnsTrue: boolean, responseColumns: ResponseColumnMap): ColumnExpansionResult;
44
+ merge(columnSet: ColumnSet<ItemTypeType>): ColumnSet<ItemTypeType>;
45
+ expand(requestColumns: ApiRequestColumns, requestColumnsTrue: boolean, responseColumns: ResponseColumnMap): ColumnExpansionResult<ItemTypeType>;
46
46
  }
@@ -1,8 +1,8 @@
1
1
  import { ColumnSet } from '../classes';
2
- import { ApiRequestColumns } from '../types';
3
- export declare class ColumnSubsetCache {
2
+ import { ApiRequestColumns, ItemType } from '../types';
3
+ export declare class ColumnSubsetCache<ItemTypeType extends ItemType> {
4
4
  requestColumns: ApiRequestColumns;
5
5
  private cache;
6
6
  constructor(requestColumns: ApiRequestColumns);
7
- run(columnSet: ColumnSet): boolean;
7
+ run(columnSet: ColumnSet<ItemTypeType>): boolean;
8
8
  }
@@ -1,7 +1,7 @@
1
1
  import { CollectionCache, CollectionHandler, CreateCompilation, KeyService } from '../classes';
2
2
  import { CollectionMatcherFactory, RequestColumnExpansionFactory } from '../factories';
3
3
  import { CreateRequestEntry, CreateRequestParameterMap, ItemType } from '../types';
4
- export declare class CreateRequest {
4
+ export declare class CreateRequest<ItemTypeType extends ItemType> {
5
5
  private collectionHandler;
6
6
  private collectionMatcherFactory;
7
7
  private keyService;
@@ -10,11 +10,11 @@ export declare class CreateRequest {
10
10
  private localCollectionCache;
11
11
  private parameterMap;
12
12
  private breakupByParent;
13
- requests: CreateRequestEntry[];
13
+ requests: Array<CreateRequestEntry<ItemTypeType>>;
14
14
  constructor(collectionHandler: CollectionHandler, collectionMatcherFactory: CollectionMatcherFactory, keyService: KeyService, requestColumnExpansionFactory: RequestColumnExpansionFactory, compilation: CreateCompilation, localCollectionCache: CollectionCache, parameterMap: CreateRequestParameterMap, breakupByParent?: boolean);
15
- finalizeRequest(requestResource: CreateRequestEntry): CreateRequestEntry;
16
- setRequestParent(parentType: ItemType, requestEntry: CreateRequestEntry): boolean;
17
- run(): CreateRequestEntry[];
18
- initializeRequest(): CreateRequestEntry;
15
+ finalizeRequest(requestResource: CreateRequestEntry<ItemTypeType>): CreateRequestEntry<ItemTypeType>;
16
+ setRequestParent(parentType: ItemType, requestEntry: CreateRequestEntry<ItemTypeType>): boolean;
17
+ run(): CreateRequestEntry<ItemTypeType>[];
18
+ initializeRequest(): CreateRequestEntry<ItemTypeType>;
19
19
  private extendRequest;
20
20
  }