@rentman/rm-core 1.5.5 → 1.5.7-1

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 (55) hide show
  1. package/changelog.md +33 -0
  2. package/dist/rm-core.js +219 -253
  3. package/dist/rm-core.min.js +1 -1
  4. package/dist/src/classes/ApiFormatter.d.ts +20 -21
  5. package/dist/src/classes/ApiResponseProcessor.d.ts +24 -16
  6. package/dist/src/classes/ChangesCompilation.d.ts +3 -3
  7. package/dist/src/classes/ChangesProcessor.d.ts +15 -15
  8. package/dist/src/classes/CollectionCache.d.ts +9 -9
  9. package/dist/src/classes/CollectionEntryService.d.ts +4 -7
  10. package/dist/src/classes/CollectionHandler.d.ts +8 -8
  11. package/dist/src/classes/CollectionMatcher.d.ts +24 -13
  12. package/dist/src/classes/CollectionResourceService.d.ts +2 -1
  13. package/dist/src/classes/ColumnCache.d.ts +4 -4
  14. package/dist/src/classes/ColumnExpansion.d.ts +5 -4
  15. package/dist/src/classes/ColumnSet.d.ts +7 -7
  16. package/dist/src/classes/ColumnUtil.d.ts +36 -22
  17. package/dist/src/classes/CreateRequest.d.ts +1 -1
  18. package/dist/src/classes/ItemAdministrator.d.ts +123 -45
  19. package/dist/src/classes/ItemCache.d.ts +8 -7
  20. package/dist/src/classes/ItemEntryService.d.ts +2 -2
  21. package/dist/src/classes/ItemHandler.d.ts +8 -8
  22. package/dist/src/classes/ItemRequestService.d.ts +2 -2
  23. package/dist/src/classes/KeyService.d.ts +1 -1
  24. package/dist/src/classes/LocalCache.d.ts +40 -16
  25. package/dist/src/classes/LockService.d.ts +22 -13
  26. package/dist/src/classes/ModuleChangesCompilation.d.ts +4 -4
  27. package/dist/src/classes/QueryMatcher.d.ts +5 -5
  28. package/dist/src/classes/QueryParser.d.ts +14 -13
  29. package/dist/src/classes/QueryService.d.ts +5 -16
  30. package/dist/src/classes/RequestColumnExpansion.d.ts +5 -3
  31. package/dist/src/classes/SocketMessageHandler.d.ts +10 -9
  32. package/dist/src/classes/Util.d.ts +6 -5
  33. package/dist/src/constants.d.ts +1 -1
  34. package/dist/src/factories/ChangesCompilationFactory.d.ts +2 -2
  35. package/dist/src/factories/CollectionResourceFactory.d.ts +12 -2
  36. package/dist/src/factories/ColumnInfoFactory.d.ts +1 -1
  37. package/dist/src/factories/ColumnSetFactory.d.ts +1 -1
  38. package/dist/src/factories/ItemEntryFactory.d.ts +1 -1
  39. package/dist/src/factories/ItemResourceFactory.d.ts +9 -3
  40. package/dist/src/factories/QueryParserFactory.d.ts +2 -1
  41. package/dist/src/interfaces/LocalCacheManagerInterface.d.ts +1 -0
  42. package/dist/src/interfaces/PromiseLibraryInterface.d.ts +19 -9
  43. package/dist/src/models/CollectionEditResource.d.ts +8 -8
  44. package/dist/src/models/CollectionEntry.d.ts +37 -23
  45. package/dist/src/models/CollectionEntryOptions.d.ts +9 -17
  46. package/dist/src/models/CollectionResource.d.ts +20 -20
  47. package/dist/src/models/CollectionResourceOptions.d.ts +17 -32
  48. package/dist/src/models/CollectionViewResource.d.ts +2 -2
  49. package/dist/src/models/EditResource.d.ts +1 -1
  50. package/dist/src/models/ItemEntry.d.ts +9 -7
  51. package/dist/src/models/ItemEntryOptions.d.ts +8 -15
  52. package/dist/src/models/ItemResource.d.ts +1 -1
  53. package/dist/src/models/ItemResourceOptions.d.ts +6 -10
  54. package/dist/src/types/ItemTypesCollection.d.ts +27 -34
  55. package/package.json +2 -2
@@ -1,4 +1,3 @@
1
- /// <reference types="moment" />
2
1
  import * as moment from 'moment';
3
2
  import { ColumnInfo } from '../classes';
4
3
  import { FieldMap } from '../types';
@@ -17,24 +16,24 @@ export declare class ApiFormatter {
17
16
  copyFields(source: FieldMap, destination: FieldMap, columns: ColumnInfo[]): FieldMap;
18
17
  shallowCopyFields(shallowSource: FieldMap, deepSource: FieldMap, destination: FieldMap, columns: ColumnInfo[]): FieldMap;
19
18
  setDefaultValues(destination: FieldMap, columns: ColumnInfo[]): FieldMap;
20
- compareFields<T>(columnType: string, first: T, second: T): boolean;
21
- compareFloats(a: any, b: any): boolean;
22
- compareMomentObjects(first: any, second: any): boolean;
23
- compareDurations(first: any, second: any): boolean;
24
- formatResponseValue(columnType: any, value: any): any;
25
- formatRequestValue(columnType: any, value: any): any;
26
- formatResponseDate(value: any): moment.Moment;
27
- formatResponseDuration(value: any): moment.Duration;
28
- formatResponseColor(value: any): any;
29
- formatRequestDateTime(value: any): any;
30
- formatRequestDate(value: any): any;
31
- formatRequestDuration(value: any): any;
32
- formatRequestColor(value: any): any;
33
- getDefaultValue(columnType: any): false | 0 | "0" | moment.Moment | moment.Duration | "" | "#000000" | null;
34
- isDefaultValue(columnType: any, value: any): boolean;
35
- clone(columnType: any, value: any): any;
36
- getCloneFunction(columnType: any): (date: any) => any;
37
- cloneDuration(duration: any): moment.Duration;
38
- cloneDate(date: any): any;
39
- identity(input: any): any;
19
+ compareFields(columnType: string, first?: any, second?: any): boolean;
20
+ compareFloats(a: number, b: number): boolean;
21
+ compareMomentObjects(first: moment.Moment, second: moment.Moment): boolean;
22
+ compareDurations(first: moment.Duration, second: moment.Duration): boolean;
23
+ formatResponseValue(columnType: string, value: any): any;
24
+ formatRequestValue(columnType: string, value: any): any;
25
+ formatResponseDate(value: null | any): moment.Moment;
26
+ formatResponseDuration(value: null | number): moment.Duration;
27
+ formatResponseColor(value: string): string;
28
+ formatRequestDateTime(value: moment.Moment): string | null;
29
+ formatRequestDate(value: moment.Moment): string | null;
30
+ formatRequestDuration(value: moment.Duration): number;
31
+ formatRequestColor(value: string): string;
32
+ getDefaultValue(columnType: string): any;
33
+ isDefaultValue(columnType: string, value: any): boolean;
34
+ clone(columnType: string, value: any): any;
35
+ getCloneFunction(columnType: string): ((duration: moment.Duration) => moment.Duration) | ((date: moment.Moment) => moment.Moment);
36
+ cloneDuration(duration: moment.Duration): moment.Duration;
37
+ cloneDate(date: moment.Moment): moment.Moment;
38
+ identity<T>(input: T): T;
40
39
  }
@@ -1,10 +1,14 @@
1
1
  import { ApiFormatter } from '../classes';
2
- import { ItemTypeMap } from '../types';
2
+ import { FieldMap, ItemId, ItemType, ItemTypeMap, ResponseColumn } from '../types';
3
3
  export declare class ApiResponseProcessor {
4
4
  apiFormatter: ApiFormatter;
5
5
  response: any;
6
6
  columns: ItemTypeMap;
7
- items: ItemTypeMap;
7
+ items: {
8
+ [itemType: string]: {
9
+ [itemId: number]: any;
10
+ };
11
+ };
8
12
  links: ItemTypeMap;
9
13
  cacheable: boolean;
10
14
  map: any;
@@ -12,22 +16,26 @@ export declare class ApiResponseProcessor {
12
16
  columnMap: any;
13
17
  constructor(apiFormatter: ApiFormatter, response: any);
14
18
  createColumnMaps(): void;
15
- fetchValue(itemType: any, itemId: any, columnId: any): any;
16
- fetchDerivedObject(itemType: any, itemId: any, rootColumns: any): {};
17
- fetchDerivedValues(value: any, column: any, destination: any): void;
18
- fetchObject(itemType: any, itemId: any, includeLinks?: boolean): any;
19
- fetchObjectArray(itemType: any, includeLinks: any, idArray: any): any;
20
- fetchObjectMap(itemType: any, columnId: any, includeLinks: any, returnKeys: any): {
19
+ fetchValue(itemType: ItemType, itemId: ItemId, columnId: string): any;
20
+ fetchDerivedObject(itemType: ItemType, itemId: ItemId, rootColumns: ResponseColumn[]): {};
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[]): any[];
24
+ fetchObjectMap(itemType: ItemType, columnId: string, includeLinks?: boolean, returnKeys?: boolean): {
21
25
  [key: string]: any;
22
26
  };
23
- fetchFieldMap(itemType: any, columnId: any): {};
24
- fetchColumnArray(itemType: any): any[];
25
- fetchColumnObject(itemType: any): any;
26
- fetchColumnsObject(): any;
27
- createResource(itemType: any, id: any): {
28
- object: any;
27
+ fetchFieldMap(itemType: ItemType, columnId: string): {
28
+ [itemId: number]: FieldMap;
29
+ };
30
+ fetchColumnArray(itemType: ItemType): ResponseColumn[];
31
+ fetchColumnObject(itemType: ItemType): ResponseColumn;
32
+ fetchColumnsObject(): {
33
+ [itemType: string]: ResponseColumn;
34
+ };
35
+ createResource(itemType: ItemType, id: ItemId): {
36
+ object: FieldMap;
29
37
  links: any;
30
38
  };
31
- hasItems(itemType: any): boolean;
32
- getIdArray(itemType: any): string[];
39
+ hasItems(itemType: ItemType): boolean;
40
+ getIdArray(itemType: ItemType): ItemId[];
33
41
  }
@@ -44,8 +44,8 @@ export declare class ChangesCompilation {
44
44
  addUpdateEntry(itemEntry: ItemEntry): void;
45
45
  addCreateEntry(itemEntry: ItemEntry): void;
46
46
  containsCreateEntry(itemType: ItemType, itemId: ItemId): boolean;
47
- private createDeleteCompilation();
47
+ private createDeleteCompilation;
48
48
  postProcess(): void;
49
- private processSingleItems();
50
- private processCollections(collectionEntries);
49
+ private processSingleItems;
50
+ private processCollections;
51
51
  }
@@ -1,8 +1,8 @@
1
- import { ApiFormatter, CollectionEntryService, CollectionHandler, ItemHandler } from '../classes';
1
+ import { ApiFormatter, CollectionEntryService, CollectionHandler, ItemHandler, MoveMapEntry } from '../classes';
2
2
  import { ChangesCompilationFactory, ColumnExpansionFactory, CreateRequestFactory, RequestColumnExpansionFactory } from '../factories';
3
3
  import { ApiRequestServiceInterface, ErrorHandlerInterface, PromiseLibraryInterface } from '../interfaces';
4
4
  import { CollectionEntry, ItemEntry } from '../models';
5
- import { CreateRequestParameterMap, ItemId, ItemIdConversionMap, ItemType, PromiseInterface } from '../types';
5
+ import { ApiRequestMoveItems, CreateRequestParameterMap, ItemId, ItemIdConversionMap, ItemType, PromiseInterface } from '../types';
6
6
  export declare class ChangesProcessor {
7
7
  private apiFormatter;
8
8
  private apiRequestService;
@@ -16,18 +16,18 @@ 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: any): {};
20
- getMapValue(itemType: ItemType, itemId: number | string, map: ItemIdConversionMap): ItemId | undefined;
21
- private executeCreateRequests(changesCompilation, parameters, conversionMap, breakupByParent?, onAfterCreateCallback?);
22
- private executeCreateRequest(requestResource, conversionMap);
23
- private executeUpdateRequests(compilation, parameters);
24
- private executeUpdateRequest(itemType, itemEntries, parameterMap);
25
- private executeDeleteRequests(compilation);
26
- private executeDeleteRequest(itemType, itemEntries);
27
- private executeMoveRequests(compilation, conversionMap);
28
- private processMoveResponse(compilationEntries);
29
- private addCollectionMapEntry(collectionMap, parentId, itemEntry, value);
30
- private forEachCollection(collectionMap, method);
31
- private onItemsCreated(conversionMap, singleItems, collections);
19
+ buildMoveRequest(compilationEntries: MoveMapEntry[]): ApiRequestMoveItems;
20
+ getMapValue(itemType: ItemType, itemId: ItemId, map: ItemIdConversionMap): ItemId | undefined;
21
+ private executeCreateRequests;
22
+ private executeCreateRequest;
23
+ private executeUpdateRequests;
24
+ private executeUpdateRequest;
25
+ private executeDeleteRequests;
26
+ private executeDeleteRequest;
27
+ private executeMoveRequests;
28
+ private processMoveResponse;
29
+ private addCollectionMapEntry;
30
+ private forEachCollection;
31
+ private onItemsCreated;
32
32
  execute(singleItems: ItemEntry[], collections: CollectionEntry[], parameters?: CreateRequestParameterMap, breakupByParent?: boolean, onAfterCreateCallback?: (conversionMap: ItemIdConversionMap) => void): PromiseInterface<ItemIdConversionMap>;
33
33
  }
@@ -1,6 +1,6 @@
1
1
  import { QueryMatcherFactory } from '../factories';
2
2
  import { CollectionEntry, CollectionResource } from '../models';
3
- import { CollectionMatchResult, EntryParentNull, FieldMap, ItemType } from '../types';
3
+ import { CollectionMatchResult, CollectionQuery, EntryParentNull, FieldMap, ItemId, ItemType } from '../types';
4
4
  export declare class CollectionCache {
5
5
  private queryMatcherFactory;
6
6
  entries: {
@@ -16,22 +16,22 @@ export declare class CollectionCache {
16
16
  add(collectionEntry: CollectionEntry): CollectionEntry;
17
17
  clear(collectionEntry?: CollectionEntry): boolean;
18
18
  getByItemType(itemType: string): CollectionEntry[];
19
- matchParent(collectionEntry: CollectionEntry, itemType: string, itemId: any): boolean;
20
- getByParent(parentType: any, parentId: any, itemType: any): CollectionEntry | null;
21
- getResourceByParent(parentType: any, parentId: any, itemType: any): CollectionResource | null;
22
- getCollectionsByParent(parentType: any, parentId: any): CollectionEntry[];
19
+ matchParent(collectionEntry: CollectionEntry, itemType: string, itemId: ItemId): boolean;
20
+ getByParent(parentType: ItemType, parentId: ItemId, itemType: ItemType): CollectionEntry | null;
21
+ getResourceByParent(parentType: ItemType, parentId: ItemId, itemType: ItemType): CollectionResource | null;
22
+ getCollectionsByParent(parentType: ItemType, parentId: ItemId): CollectionEntry[];
23
23
  /**
24
24
  * Only resources
25
25
  * @param {String} itemType
26
26
  * @param {String|Integer} itemId
27
27
  * @returns {Object} Array of collections.
28
28
  */
29
- getByContainingItem(itemType: any, itemId: any): CollectionEntry[];
29
+ getByContainingItem(itemType: ItemType, itemId: ItemId): CollectionEntry[];
30
30
  /**
31
31
  * Returns an array of collections the item 'belongs' in.
32
32
  */
33
33
  getByFittingItem(itemType: ItemType, fields: FieldMap, parent: EntryParentNull): CollectionMatchResult;
34
- getByQuery(itemType: any, query: any): CollectionEntry | null;
35
- getByKey(itemType: any, entryKey: any): CollectionEntry[];
36
- getResourceByKey(itemType: any, resourceKey: any): CollectionResource[];
34
+ getByQuery(itemType: ItemType, query: CollectionQuery): CollectionEntry | null;
35
+ getByKey(itemType: ItemType, entryKey: string): CollectionEntry[];
36
+ getResourceByKey(itemType: ItemType, resourceKey: string): CollectionResource[];
37
37
  }
@@ -1,19 +1,16 @@
1
1
  import { QueryService } from '../classes';
2
2
  import { QueryParserFactory } from '../factories';
3
3
  import { CollectionEntryOptions, ItemEntry } from '../models';
4
- import { CollectionOptionsInterface, EntryParentNull, ItemId } from '../types';
4
+ import { CollectionOptionsInterface, CollectionQuery, EntryParentNull, ItemId } 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
10
  processOptions(options: CollectionOptionsInterface): CollectionEntryOptions;
11
- cloneQueryParams(parameters: any): {};
12
- createQuery(options: any): {
13
- object: any;
14
- string: any;
15
- };
16
- getIdArray(itemEntries: ItemEntry[], accumulator: any): ItemId[];
11
+ cloneQueryParams<T extends object>(parameters: T): T;
12
+ createQuery(options: CollectionEntryOptions): CollectionQuery;
13
+ getIdArray(itemEntries: ItemEntry[], accumulator?: ItemId[]): ItemId[];
17
14
  /**
18
15
  * @param {ItemEntry[]} itemEntries
19
16
  * @param {(itemEntry: ItemEntry) => boolean} callback
@@ -1,9 +1,9 @@
1
- import { CollectionEntryOptions, PromiseInterface } from '../';
1
+ import { CollectionEntryOptions, CollectionViewResource, PromiseInterface } from '../';
2
2
  import { BatchStatus, CollectionCache, CollectionEntryService, CollectionMatcher, ColumnExpansion, ColumnHandler, ColumnSet, ItemCache, ItemHandler, ItemRequestService, KeyService, QueryService } from '../classes';
3
3
  import { ENTRY_STATUS } from '../constants';
4
4
  import { BatchStatusFactory, CollectionCacheFactory, CollectionEntryFactory, CollectionMatcherFactory, ColumnSetFactory, QueryParserFactory } from '../factories';
5
5
  import { ErrorHandlerInterface, PromiseLibraryInterface } from '../interfaces';
6
- import { CollectionEntry, CollectionResource, ItemResource } from '../models';
6
+ import { CollectionEntry, CollectionResource } from '../models';
7
7
  import { ApiRequestColumn, CollectionEntryParentIdMap, CollectionResourceParentIdMap, EntryStatus, ItemEntryParentIdMap, ItemId, ItemResourceItemIdMap, ItemType, QueryCallback } from '../types';
8
8
  export declare class CollectionHandler {
9
9
  private batchStatusFactory;
@@ -25,19 +25,19 @@ export declare class CollectionHandler {
25
25
  /**
26
26
  * @deprecated, use collectionMatcherFactory
27
27
  */
28
- removeFromAndAddToCollections(collectionMap: any, updateInitial?: any): void;
28
+ removeFromAndAddToCollections(collectionMap: any, updateInitial?: boolean): void;
29
29
  getCollectionMatcher(): CollectionMatcher;
30
30
  /**
31
31
  * @deprecated, use collectionMatcherFactory
32
32
  */
33
- removeFromCollections(collectionMap: any, updateInitial?: any, resultResource?: CollectionResource | null): any;
33
+ removeFromCollections<T extends CollectionResource = CollectionViewResource>(collectionMap: any, updateInitial?: boolean, resultResource?: T | null): T['items'] | null;
34
34
  /**
35
35
  * @deprecated, use collectionMatcherFactory
36
36
  */
37
- addToCollections(collectionMap: any, updateInitial: boolean, resultResource?: CollectionResource | null): ItemResource[];
37
+ addToCollections<T extends CollectionResource = CollectionViewResource>(collectionMap: any, updateInitial: boolean, resultResource?: T | null): T['items'];
38
38
  batchExpand(parentType: ItemType, itemType: ItemType, collections: CollectionResourceParentIdMap, newColumns: ApiRequestColumn[]): PromiseInterface<CollectionResourceParentIdMap>;
39
- batchExtend(parentType: ItemType, itemType: ItemType, options: CollectionEntryOptions, queryCallback: QueryCallback, collections: CollectionResourceParentIdMap, returnAllItems?: boolean): PromiseInterface<ItemResourceItemIdMap>;
40
- batchFetch(parentType: ItemType, parentIdArray: ItemId[], itemType: ItemType, options: CollectionEntryOptions, itemCache: ItemCache, localCollectionCache: CollectionCache, deferredCollectionCache: CollectionCache): Promise<CollectionEntryParentIdMap>;
39
+ batchExtend<T extends CollectionResourceParentIdMap>(parentType: ItemType, itemType: ItemType, options: CollectionEntryOptions, queryCallback: QueryCallback, collections: T, returnAllItems?: boolean): PromiseInterface<ItemResourceItemIdMap>;
40
+ batchFetch(parentType: ItemType, parentIdArray: ItemId[] | (() => ItemId[]), itemType: ItemType, options: CollectionEntryOptions, itemCache: ItemCache, localCollectionCache: CollectionCache, deferredCollectionCache: CollectionCache): PromiseInterface<CollectionEntryParentIdMap>;
41
41
  handleBatchResponse(batchStatus: BatchStatus<CollectionEntry>, itemEntryCompound: {
42
42
  columns: ColumnSet;
43
43
  columnExpansion?: ColumnExpansion;
@@ -53,5 +53,5 @@ export declare class CollectionHandler {
53
53
  resolveLocal(collectionEntry: CollectionEntry, itemCache: ItemCache): PromiseInterface<CollectionEntry>;
54
54
  resolveRemote(collectionEntry: CollectionEntry, itemCache: ItemCache): PromiseInterface<CollectionEntry>;
55
55
  isLocal(options: any): boolean;
56
- private expandLocalItemEntries(itemType, itemEntries, columnSet, localItemCache);
56
+ private expandLocalItemEntries;
57
57
  }
@@ -1,6 +1,18 @@
1
+ import { ItemId } from '../';
1
2
  import { CollectionCache } from '../classes';
2
3
  import { QueryMatcherFactory } from '../factories/';
3
- import { CollectionEntry, CollectionResource, ItemEntry, ItemResource } from '../models';
4
+ import { CollectionEntry, CollectionResource, ItemEntry } from '../models';
5
+ export declare type CollectionMatcherMatches = {
6
+ [itemId: number]: {
7
+ item: ItemEntry;
8
+ isMatch: boolean | 'maybe';
9
+ };
10
+ };
11
+ export declare type GroupedCollectionMatcherResult = {
12
+ fitting: ItemEntry[];
13
+ notFitting: ItemId[];
14
+ maybe: ItemEntry[];
15
+ };
4
16
  export declare class CollectionMatcher {
5
17
  private queryMatcherFactory;
6
18
  private collectionCaches;
@@ -9,22 +21,21 @@ export declare class CollectionMatcher {
9
21
  map: {
10
22
  [collectionEntryId: number]: {
11
23
  collection: CollectionEntry;
12
- matches: {
13
- [itemId: number]: {
14
- item: ItemEntry;
15
- isMatch: boolean;
16
- };
17
- };
24
+ matches: CollectionMatcherMatches;
18
25
  };
19
26
  };
20
27
  constructor(queryMatcherFactory: QueryMatcherFactory, collectionCaches: CollectionCache[], updateInitial: boolean, callOnActivate: boolean);
21
28
  expand(itemEntry: ItemEntry): this;
22
- private _expand(itemEntry, matchFunction);
29
+ private _expand;
23
30
  getCollectionsWithFittingItems(): CollectionEntry[];
24
- addToCollections(resultResource?: CollectionResource | null): ItemResource[] | null;
25
- removeFromCollections(resultResource?: CollectionResource | null): ItemResource[] | null;
31
+ addToCollections<U extends CollectionResource>(resultResource: U): U['items'];
32
+ addToCollections(resultResource?: null): null;
33
+ addToCollections<U extends CollectionResource>(resultResource?: CollectionResource | null): U['items'] | null;
34
+ removeFromCollections<U extends CollectionResource>(resultResource: U): U['items'];
35
+ removeFromCollections(resultResource?: null): null;
36
+ removeFromCollections<U extends CollectionResource>(resultResource?: CollectionResource | null): U['items'] | null;
26
37
  removeFromAndAddToCollections(): void;
27
- private groupItemEntries(matches);
28
- private groupItemIds(matches);
29
- private hasFittingItems(matches);
38
+ private groupItemEntries;
39
+ private groupItemIds;
40
+ private hasFittingItems;
30
41
  }
@@ -1,5 +1,6 @@
1
1
  import { CollectionResourceOptions, CollectionResourceOptionsInterface, ItemResource } from '../models';
2
+ import { ItemId } from '../types';
2
3
  export declare class CollectionResourceService {
3
4
  processOptions(options: CollectionResourceOptionsInterface): CollectionResourceOptions;
4
- getIdArray(itemResources: ItemResource[]): number[];
5
+ getIdArray(itemResources: ItemResource[]): ItemId[];
5
6
  }
@@ -7,7 +7,7 @@ export declare class ColumnCache {
7
7
  [itemType: string]: boolean;
8
8
  };
9
9
  constructor(columnUtil: ColumnUtil);
10
- setColumn(itemType: ItemType, responseColumn: ResponseColumn): any;
10
+ setColumn(itemType: ItemType, responseColumn: ResponseColumn): ResponseColumn;
11
11
  setColumns(itemType: ItemType, requestColumns: ApiRequestColumns, responseColumns: ResponseColumnMap): ResponseColumnMap;
12
12
  retrieve(itemType: ItemType, requestColumns: ApiRequestColumns): {
13
13
  cached: ResponseColumnMap;
@@ -15,7 +15,7 @@ export declare class ColumnCache {
15
15
  };
16
16
  containsAll(itemType: ItemType): boolean;
17
17
  getColumns(itemType: ItemType): ResponseColumnMap;
18
- private retrieveColumns(itemType, requestColumns, requestAccumulator, responseAccumulator);
19
- private retrieveColumn(itemType, requestColumn, requestAccumulator, responseAccumulator);
20
- private getColumn(itemType, columnId);
18
+ private retrieveColumns;
19
+ private retrieveColumn;
20
+ private getColumn;
21
21
  }
@@ -1,18 +1,19 @@
1
1
  import { ColumnInfo, ColumnSet } from '../classes';
2
+ import { ColumnInfoFactory } from '../factories';
2
3
  import { ApiRequestColumn, ApiRequestColumns, ColumnExpansionResult, ItemType, ResponseColumnMap } from '../types';
3
4
  export declare class ColumnExpansion {
4
5
  private columnInfoFactory;
5
6
  itemType: ItemType;
6
7
  responseColumns: ResponseColumnMap;
7
8
  expansionMap: {
8
- [columnSetId: number]: ColumnExpansionResult | null;
9
+ [columnSetId: string]: ColumnExpansionResult | null;
9
10
  };
10
11
  expansionMapSize: number;
11
12
  requestColumnsTrue: boolean;
12
13
  requestColumns: ApiRequestColumn[];
13
- constructor(columnInfoFactory: any, itemType: ItemType, requestColumns: ApiRequestColumns, responseColumns: ResponseColumnMap);
14
+ constructor(columnInfoFactory: ColumnInfoFactory, itemType: ItemType, requestColumns: ApiRequestColumns, responseColumns: ResponseColumnMap);
14
15
  run(columnSet: ColumnSet): ColumnExpansionResult | null;
15
16
  aggregateRootColumns(): ColumnInfo[];
16
- private expandRootColumnMap(columns, destination);
17
- private processRootColumnMap(rootColumnMap, parent);
17
+ private expandRootColumnMap;
18
+ private processRootColumnMap;
18
19
  }
@@ -34,13 +34,13 @@ export declare class ColumnSet {
34
34
  resolve(responseColumns: ResponseColumnMap, enableCaching?: boolean, includeIdColumn?: boolean): this;
35
35
  expandRequestColumns(columns: ApiRequestColumns): void;
36
36
  isSupersetOf(columns: ApiRequestColumns): boolean;
37
- private processResponseColumns(responseColumns);
38
- private requestColumnsIsTrue(requestColumns);
39
- private processRequestColumns(responseColumns, includeIdColumn);
40
- private getRequestColumnInfo(requestColumn, itemType, parent, responseColumns);
41
- private getColumnInfo(columnId, itemType, children, parent, responseColumns);
42
- private getColumnSetExpansion(requestColumns, responseColumns);
43
- private getMergedColumnSet(columnSetExpansion, requestColumnsTrue);
37
+ private processResponseColumns;
38
+ private requestColumnsIsTrue;
39
+ private processRequestColumns;
40
+ private getRequestColumnInfo;
41
+ private getColumnInfo;
42
+ private getColumnSetExpansion;
43
+ private getMergedColumnSet;
44
44
  merge(columnSet: ColumnSet): ColumnSet;
45
45
  expand(requestColumns: ApiRequestColumns, requestColumnsTrue: boolean, responseColumns: ResponseColumnMap): ColumnExpansionResult;
46
46
  }
@@ -1,8 +1,8 @@
1
- import { ApiRequestColumn, ApiRequestColumns, ItemType, ResponseColumnMap } from '../types';
1
+ import { ApiRequestColumn, ApiRequestColumns, ItemType, ResponseColumn, ResponseColumnMap } from '../types';
2
2
  export declare class ColumnUtil {
3
3
  constructor();
4
- getColumnPath(columns: any, renderAs: any): string;
5
- getDateFormatOptions(columnType: any): {
4
+ getColumnPath(columns: ResponseColumn[], renderAs: null | string): string;
5
+ getDateFormatOptions(columnType?: 'datetime'): {
6
6
  'J-M-Y': string;
7
7
  'J-M': string;
8
8
  'j+F+Y': string;
@@ -12,22 +12,28 @@ export declare class ColumnUtil {
12
12
  'D': string;
13
13
  'd': string;
14
14
  };
15
- isStringColumn(column: any): boolean;
16
- isFloatColumn(column: any): boolean;
17
- isIntColumn(column: any): boolean;
18
- isNumberColumn(column: any): boolean;
19
- isCustomColumn(column: any): boolean;
20
- isItemColumn(column: any, includeId?: boolean): boolean;
21
- isDateColumn(column: any): boolean;
22
- isRenderedColumn(column: any): boolean;
23
- isFilteredColumn(column: any): boolean;
24
- isFormattedColumn(column: any): boolean;
25
- isSelectableColumn(column: any): boolean;
26
- hasLocationProperty(column: any, location: any): boolean;
27
- isEditableColumn(column: any): boolean;
28
- isSearchableColumn(column: any): boolean;
29
- getDefaultWeight(column: any): 1 | 0.5 | 1.5 | 2;
30
- getComparators(column: any): string[];
15
+ isStringColumn(column: ResponseColumn): boolean;
16
+ isFloatColumn(column: ResponseColumn): boolean;
17
+ isIntColumn(column: ResponseColumn): boolean;
18
+ isNumberColumn(column: ResponseColumn): boolean;
19
+ isCustomColumn(column: ResponseColumn): boolean;
20
+ isItemColumn(column: ResponseColumn, includeId?: boolean): boolean;
21
+ isDateColumn(column: ResponseColumn): boolean;
22
+ isRenderedColumn(column: ResponseColumn): boolean;
23
+ isFilteredColumn(column: ResponseColumn): boolean;
24
+ isFormattedColumn(column: ResponseColumn): boolean;
25
+ isSelectableColumn(column: ResponseColumn): boolean;
26
+ hasLocationProperty(column: ResponseColumn, location: number): boolean;
27
+ isEditableColumn(column: ResponseColumn): boolean;
28
+ isSearchableColumn(column: ResponseColumn): boolean;
29
+ getDefaultWeight(column: ResponseColumn): number;
30
+ getComparators(column: ResponseColumn & {
31
+ type: 'dimension' | 'weight' | 'price';
32
+ }): ['=', '>', '<'];
33
+ getComparators(column: ResponseColumn & {
34
+ type: 'date' | 'datetime' | 'time' | 'duration';
35
+ }): ['>', '<'];
36
+ getComparators(column: ResponseColumn): ['=', '!='];
31
37
  containsColumn(requestColumn: ApiRequestColumn, destination: ApiRequestColumn[]): boolean;
32
38
  containsDerivedColumns(requestColumns: ApiRequestColumn[]): boolean;
33
39
  responseColumnsAvailable(itemType: ItemType, requestColumns: ApiRequestColumn[], responseColumnMap: ResponseColumnMap): boolean;
@@ -40,6 +46,14 @@ export declare class ColumnUtil {
40
46
  * @param {Array} second
41
47
  * @returns {Object} An object containing 'merged' and 'difference' properties
42
48
  */
49
+ mergeRequestColumns(first: true, second: ApiRequestColumns): {
50
+ merged: true;
51
+ difference: [];
52
+ };
53
+ mergeRequestColumns(first: ApiRequestColumn[], second: true): {
54
+ merged: true;
55
+ difference: true;
56
+ };
43
57
  mergeRequestColumns(first: ApiRequestColumn[], second: ApiRequestColumn[]): {
44
58
  merged: ApiRequestColumn[];
45
59
  difference: ApiRequestColumn[];
@@ -71,9 +85,9 @@ export declare class ColumnUtil {
71
85
  * @param {array} second
72
86
  * @returns {object} difference: the columns that are in second, but not in first.
73
87
  */
74
- mergeResponseColumnMap(first: any, second: any): {
75
- merged: {};
76
- difference: {};
88
+ mergeResponseColumnMap(first: ResponseColumnMap, second: ResponseColumnMap): {
89
+ merged: ResponseColumnMap;
90
+ difference: ResponseColumnMap;
77
91
  };
78
92
  isLocalColumnId(columnId: string): boolean;
79
93
  processConfigColumns(configColumns: string[]): ApiRequestColumn[];
@@ -16,5 +16,5 @@ export declare class CreateRequest {
16
16
  setRequestParent(parentType: ItemType, requestEntry: CreateRequestEntry): boolean;
17
17
  run(): CreateRequestEntry[];
18
18
  initializeRequest(): CreateRequestEntry;
19
- private extendRequest(itemEntries, requestParentId, destination);
19
+ private extendRequest;
20
20
  }