@rentman/rm-core 1.3.6 → 1.3.8-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 (31) hide show
  1. package/changelog.md +10 -0
  2. package/dist/rm-core.js +113 -149
  3. package/dist/rm-core.min.js +1 -1
  4. package/dist/src/classes/ApiFormatter.d.ts +1 -1
  5. package/dist/src/classes/ApiRequestService.d.ts +7 -5
  6. package/dist/src/classes/ChangesCompilation.d.ts +36 -11
  7. package/dist/src/classes/ChangesProcessor.d.ts +11 -15
  8. package/dist/src/classes/CollectionHandler.d.ts +2 -2
  9. package/dist/src/classes/CollectionMatcher.d.ts +1 -0
  10. package/dist/src/classes/ColumnCache.d.ts +4 -4
  11. package/dist/src/classes/ColumnExpansion.d.ts +3 -3
  12. package/dist/src/classes/ColumnHandler.d.ts +4 -4
  13. package/dist/src/classes/ColumnSet.d.ts +7 -6
  14. package/dist/src/classes/ColumnUtil.d.ts +8 -8
  15. package/dist/src/classes/CreateRequest.d.ts +4 -4
  16. package/dist/src/classes/ItemAdministrator.d.ts +10 -1
  17. package/dist/src/classes/ItemCache.d.ts +2 -6
  18. package/dist/src/classes/ItemHandler.d.ts +5 -5
  19. package/dist/src/classes/ItemRequestService.d.ts +2 -2
  20. package/dist/src/classes/LocalCache.d.ts +1 -0
  21. package/dist/src/classes/ModuleChangesCompilation.d.ts +8 -6
  22. package/dist/src/classes/Util.d.ts +2 -2
  23. package/dist/src/factories/ChangesCompilationFactory.d.ts +2 -1
  24. package/dist/src/factories/ChangesProcessorFactory.d.ts +8 -8
  25. package/dist/src/factories/ColumnSetFactory.d.ts +3 -3
  26. package/dist/src/factories/CreateRequestFactory.d.ts +3 -2
  27. package/dist/src/factories/ItemEntryFactory.d.ts +2 -2
  28. package/dist/src/interfaces/ApiRequestServiceInterface.d.ts +6 -6
  29. package/dist/src/models/CollectionEntry.d.ts +3 -3
  30. package/dist/src/types/ItemTypesCollection.d.ts +40 -5
  31. package/package.json +35 -35
@@ -30,7 +30,7 @@ export declare class ApiFormatter {
30
30
  formatRequestDate(value: any): any;
31
31
  formatRequestDuration(value: any): any;
32
32
  formatRequestColor(value: any): any;
33
- getDefaultValue(columnType: any): false | 0 | moment.Moment | moment.Duration | "" | "0" | "#000000" | null;
33
+ getDefaultValue(columnType: any): false | 0 | "" | moment.Moment | moment.Duration | "0" | "#000000" | null;
34
34
  isDefaultValue(columnType: any, value: any): boolean;
35
35
  clone(columnType: any, value: any): any;
36
36
  getCloneFunction(columnType: any): (date: any) => any;
@@ -1,7 +1,7 @@
1
1
  import { ApiResponseProcessor } from '../classes';
2
2
  import { ApiResponseProcessorFactory } from '../factories';
3
3
  import { ApiRequestServiceInterface } from '../interfaces';
4
- import { ItemId, ItemType, PromiseInterface } from '../types';
4
+ import { ApiRequestColumnMap, ApiRequestItemMap, ApiRequestLimit, ItemId, ItemType, PromiseInterface } from '../types';
5
5
  export declare class ApiRequestService {
6
6
  private externalApiRequestService;
7
7
  private apiResponseProcessorFactory;
@@ -9,10 +9,12 @@ export declare class ApiRequestService {
9
9
  template(itemType: ItemType, params: any): PromiseInterface<ApiResponseProcessor>;
10
10
  create(itemType: ItemType, itemId: ItemId, values: any, parentType?: ItemType, parentId?: ItemId): PromiseInterface<ApiResponseProcessor>;
11
11
  delete(itemType: ItemType, itemIds: ItemId[]): PromiseInterface<ApiResponseProcessor>;
12
- updateItems(itemType: ItemType, items: object, columns: any): PromiseInterface<ApiResponseProcessor>;
12
+ updateItems(itemType: ItemType, items: ApiRequestItemMap, columns: any): PromiseInterface<ApiResponseProcessor>;
13
13
  requestSkeleton(params: any, requestCanceler?: PromiseInterface<any>): PromiseInterface<ApiResponseProcessor>;
14
- moveItems(parentType: ItemType, parentId: ItemId, items: object): PromiseInterface<ApiResponseProcessor>;
15
- columns(itemType: ItemType, columns: object, params?: any): PromiseInterface<ApiResponseProcessor>;
16
- query(itemType: ItemType, query: object, columns: object, limit?: object): PromiseInterface<ApiResponseProcessor>;
14
+ moveItems(parentType: ItemType, parentId: ItemId, items: {
15
+ [itemType: string]: ItemId[];
16
+ }): PromiseInterface<ApiResponseProcessor>;
17
+ columns(itemType: ItemType, columns: ApiRequestColumnMap, params?: any): PromiseInterface<ApiResponseProcessor>;
18
+ query(itemType: ItemType, query: any, columns: ApiRequestColumnMap, limit?: ApiRequestLimit): PromiseInterface<ApiResponseProcessor>;
17
19
  processResponse(request: any): PromiseInterface<ApiResponseProcessor>;
18
20
  }
@@ -1,25 +1,50 @@
1
- import { CollectionCache } from '../classes';
1
+ import { CollectionCache, KeyService } from '../classes';
2
2
  import { CollectionCacheFactory } from '../factories';
3
3
  import { CollectionEntry, ItemEntry } from '../models';
4
- import { EntryParent } from '../types';
4
+ import { EntryParent, EntryParentNull, ItemEntryMap, ItemId, ItemType } from '../types';
5
+ export declare type DeleteMapEntry = {
6
+ item: ItemEntry;
7
+ parent: EntryParentNull;
8
+ };
9
+ export declare type MoveMapEntry = {
10
+ item: ItemEntry;
11
+ parent: EntryParent;
12
+ };
13
+ export declare type CreateCompilation = {
14
+ [parentType: string]: {
15
+ [parentId: number]: ItemEntryMap;
16
+ };
17
+ };
18
+ export declare type DeleteCompilation = {
19
+ [itemType: string]: ItemEntry[];
20
+ };
21
+ export declare type UpdateCompilation = ItemEntryMap;
22
+ export declare type MoveCompilation = {
23
+ [parentType: string]: {
24
+ [parentId: number]: MoveMapEntry[];
25
+ };
26
+ };
5
27
  export declare class ChangesCompilation {
6
28
  private collectionCacheFactory;
29
+ private keyService;
7
30
  singleItems: ItemEntry[];
8
31
  compilation: {
9
- create: {};
10
- delete: {};
11
- update: {};
12
- move: {};
32
+ create: CreateCompilation;
33
+ delete: DeleteCompilation;
34
+ update: UpdateCompilation;
35
+ move: MoveCompilation;
13
36
  };
14
37
  collections: CollectionCache;
15
38
  private moveArray;
16
39
  private deleteMap;
17
- constructor(collectionCacheFactory: CollectionCacheFactory, singleItems: ItemEntry[], collectionEntries: CollectionEntry[]);
40
+ constructor(collectionCacheFactory: CollectionCacheFactory, keyService: KeyService, singleItems: ItemEntry[], collectionEntries: CollectionEntry[]);
18
41
  getDefaultParent(): EntryParent;
19
- addMoveEntry(itemEntry: any): void;
20
- addDeleteEntry(itemEntry: any, parentId: any, parentType: any): void;
21
- addUpdateEntry(itemEntry: any): void;
22
- addCreateEntry(itemEntry: any): void;
42
+ addMoveEntry(itemEntry: ItemEntry): void;
43
+ addDeleteEntry(itemEntry: ItemEntry, parent: EntryParentNull): void;
44
+ addUpdateEntry(itemEntry: ItemEntry): void;
45
+ addCreateEntry(itemEntry: ItemEntry): void;
46
+ containsCreateEntry(itemType: ItemType, itemId: ItemId): boolean;
47
+ private createDeleteCompilation();
23
48
  postProcess(): void;
24
49
  private processSingleItems();
25
50
  private processCollections(collectionEntries);
@@ -2,29 +2,25 @@ import { ApiFormatter, CollectionEntryService, CollectionHandler, ItemHandler }
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, ItemIdConversionMap, PromiseInterface } from '../types';
5
+ import { CreateRequestParameterMap, ItemId, ItemIdConversionMap, ItemType, PromiseInterface } from '../types';
6
6
  export declare class ChangesProcessor {
7
+ private apiFormatter;
7
8
  private apiRequestService;
8
- private itemHandler;
9
- private errorHandler;
10
- private collectionHandler;
11
9
  private changesCompilationFactory;
12
- private createRequestFactory;
13
- private columnExpansionFactory;
14
- private requestColumnExpansionFactory;
15
10
  private collectionEntryService;
16
- private apiFormatter;
11
+ private collectionHandler;
12
+ private columnExpansionFactory;
13
+ private createRequestFactory;
14
+ private errorHandler;
15
+ private itemHandler;
17
16
  private promiseService;
18
- constructor(apiRequestService: ApiRequestServiceInterface, itemHandler: ItemHandler, errorHandler: ErrorHandlerInterface, collectionHandler: CollectionHandler, changesCompilationFactory: ChangesCompilationFactory, createRequestFactory: CreateRequestFactory, columnExpansionFactory: ColumnExpansionFactory, requestColumnExpansionFactory: RequestColumnExpansionFactory, collectionEntryService: CollectionEntryService, apiFormatter: ApiFormatter, promiseService: PromiseLibraryInterface);
19
- getItemTypeUpdatePriority(itemType: any): 0 | 1 | 2;
20
- isDocumentItemType(itemType: any): boolean;
21
- isDocumentUpdate(compilation: any): boolean;
17
+ private requestColumnExpansionFactory;
18
+ constructor(apiFormatter: ApiFormatter, apiRequestService: ApiRequestServiceInterface, changesCompilationFactory: ChangesCompilationFactory, collectionEntryService: CollectionEntryService, collectionHandler: CollectionHandler, columnExpansionFactory: ColumnExpansionFactory, createRequestFactory: CreateRequestFactory, errorHandler: ErrorHandlerInterface, itemHandler: ItemHandler, promiseService: PromiseLibraryInterface, requestColumnExpansionFactory: RequestColumnExpansionFactory);
22
19
  buildMoveRequest(compilationEntries: any): {};
23
- getMapValue(itemType: any, itemId: any, map: any): any;
20
+ getMapValue(itemType: ItemType, itemId: number | string, map: ItemIdConversionMap): ItemId | undefined;
24
21
  private executeCreateRequests(changesCompilation, parameters, conversionMap, breakupByParent?, onAfterCreateCallback?);
25
22
  private executeCreateRequest(requestResource, conversionMap);
26
- private prioritizeUpdateRequests(compilation, parameters);
27
- private executeUpdateRequests(itemTypes, compilation, parameters);
23
+ private executeUpdateRequests(compilation, parameters);
28
24
  private executeUpdateRequest(itemType, itemEntries, parameterMap);
29
25
  private executeDeleteRequests(compilation);
30
26
  private executeDeleteRequest(itemType, itemEntries);
@@ -4,7 +4,7 @@ import { ENTRY_STATUS } from '../constants';
4
4
  import { CollectionCacheFactory, CollectionEntryFactory, CollectionMatcherFactory, ColumnSetFactory, QueryParserFactory } from '../factories';
5
5
  import { ErrorHandlerInterface, PromiseLibraryInterface } from '../interfaces';
6
6
  import { CollectionEntry, CollectionResource, ItemResource } from '../models';
7
- import { CollectionEntryBatchStatusMap, CollectionEntryParentIdMap, EntryStatus, ItemEntryParentIdMap, ItemId, ItemResourceItemIdMap, ItemType, RequestColumn } from '../types';
7
+ import { ApiRequestColumn, CollectionEntryBatchStatusMap, CollectionEntryParentIdMap, EntryStatus, ItemEntryParentIdMap, ItemId, ItemResourceItemIdMap, ItemType } from '../types';
8
8
  export declare class CollectionHandler {
9
9
  private errorHandler;
10
10
  private itemRequestService;
@@ -35,7 +35,7 @@ export declare class CollectionHandler {
35
35
  * @deprecated, use collectionMatcherFactory
36
36
  */
37
37
  addToCollections(collectionMap: any, updateInitial: boolean, resultResource?: CollectionResource | null): ItemResource[];
38
- batchExpand(parentType: ItemType, itemType: ItemType, collections: CollectionResource[], newColumns: RequestColumn[]): PromiseInterface<CollectionResource[]>;
38
+ batchExpand(parentType: ItemType, itemType: ItemType, collections: CollectionResource[], newColumns: ApiRequestColumn[]): PromiseInterface<CollectionResource[]>;
39
39
  batchExtend(parentType: string, itemType: string, options: any, queryCallback: any, collections: CollectionResource[], returnAllItems?: boolean): PromiseInterface<ItemResourceItemIdMap>;
40
40
  batchFetch(parentType: ItemType, parentIdArray: ItemId[], itemType: ItemType, options: any, itemCache: ItemCache, localCollectionCache: CollectionCache, deferredCollectionCache: CollectionCache): PromiseInterface<CollectionEntryParentIdMap>;
41
41
  createStatusResource(parentType: ItemType, parentIdArray: ItemId[], itemType: ItemType, options: any, localCollectionCache: CollectionCache, deferredCollectionCache: CollectionCache): CollectionEntryBatchStatusMap;
@@ -19,6 +19,7 @@ export declare class CollectionMatcher {
19
19
  };
20
20
  constructor(queryMatcherFactory: QueryMatcherFactory, collectionCaches: CollectionCache[], updateInitial: boolean, callOnActivate: boolean);
21
21
  expand(itemEntry: ItemEntry): this;
22
+ private _expand(itemEntry, matchFunction);
22
23
  getCollectionsWithFittingItems(): CollectionEntry[];
23
24
  addToCollections(resultResource?: CollectionResource | null): ItemResource[] | null;
24
25
  removeFromCollections(resultResource?: CollectionResource | null): ItemResource[] | null;
@@ -1,5 +1,5 @@
1
1
  import { ColumnUtil } from '../classes';
2
- import { ItemType, RequestColumns, ResponseColumn, ResponseColumnMap } from '../types';
2
+ import { ApiRequestColumns, ItemType, ResponseColumn, ResponseColumnMap } from '../types';
3
3
  export declare class ColumnCache {
4
4
  private columnUtil;
5
5
  cache: ResponseColumnMap;
@@ -8,10 +8,10 @@ export declare class ColumnCache {
8
8
  };
9
9
  constructor(columnUtil: ColumnUtil);
10
10
  setColumn(itemType: ItemType, responseColumn: ResponseColumn): any;
11
- setColumns(itemType: ItemType, requestColumns: RequestColumns, responseColumns: ResponseColumnMap): ResponseColumnMap;
12
- retrieve(itemType: ItemType, requestColumns: RequestColumns): {
11
+ setColumns(itemType: ItemType, requestColumns: ApiRequestColumns, responseColumns: ResponseColumnMap): ResponseColumnMap;
12
+ retrieve(itemType: ItemType, requestColumns: ApiRequestColumns): {
13
13
  cached: ResponseColumnMap;
14
- missing: RequestColumns;
14
+ missing: ApiRequestColumns;
15
15
  };
16
16
  containsAll(itemType: ItemType): boolean;
17
17
  getColumns(itemType: ItemType): ResponseColumnMap;
@@ -1,5 +1,5 @@
1
1
  import { ColumnSet, ColumnUtil } from '../classes';
2
- import { ColumnExpansionResult, ItemType, RequestColumn, RequestColumns, ResponseColumnMap } from '../types';
2
+ import { ApiRequestColumn, ApiRequestColumns, ColumnExpansionResult, ItemType, ResponseColumnMap } from '../types';
3
3
  export declare class ColumnExpansion {
4
4
  private columnUtil;
5
5
  itemType: ItemType;
@@ -8,7 +8,7 @@ export declare class ColumnExpansion {
8
8
  [columnSetId: number]: ColumnExpansionResult;
9
9
  };
10
10
  requestColumnsTrue: boolean;
11
- requestColumns: RequestColumn[];
12
- constructor(columnUtil: ColumnUtil, itemType: ItemType, requestColumns: RequestColumns, responseColumns: ResponseColumnMap);
11
+ requestColumns: ApiRequestColumn[];
12
+ constructor(columnUtil: ColumnUtil, itemType: ItemType, requestColumns: ApiRequestColumns, responseColumns: ResponseColumnMap);
13
13
  run(columnSet: ColumnSet): ColumnExpansionResult | null;
14
14
  }
@@ -1,6 +1,6 @@
1
1
  import { ColumnCache, ColumnUtil } from '../classes';
2
2
  import { ApiRequestServiceInterface, ErrorHandlerInterface, PromiseLibraryInterface } from '../interfaces';
3
- import { ItemType, PromiseInterface, RequestColumns, ResponseColumn, ResponseColumnMap } from '../types';
3
+ import { ApiRequestColumns, ItemType, PromiseInterface, ResponseColumn, ResponseColumnMap } from '../types';
4
4
  export declare class ColumnHandler {
5
5
  private apiRequestService;
6
6
  private errorHandler;
@@ -9,13 +9,13 @@ export declare class ColumnHandler {
9
9
  private columnUtil;
10
10
  constructor(apiRequestService: ApiRequestServiceInterface, errorHandler: ErrorHandlerInterface, promiseService: PromiseLibraryInterface, cache: ColumnCache, columnUtil: ColumnUtil);
11
11
  setColumn(itemType: ItemType, responseColumn: ResponseColumn): ResponseColumn;
12
- setColumns(itemType: ItemType, requestColumns: RequestColumns, responseColumns: ResponseColumnMap): ResponseColumnMap;
12
+ setColumns(itemType: ItemType, requestColumns: ApiRequestColumns, responseColumns: ResponseColumnMap): ResponseColumnMap;
13
13
  fetchItemTypeTranslations(itemTypes: ItemType[]): PromiseInterface<{
14
14
  [itemType: string]: string;
15
15
  }>;
16
- request(itemType: ItemType, columns: RequestColumns, params?: {
16
+ request(itemType: ItemType, columns: ApiRequestColumns, params?: {
17
17
  filter: boolean;
18
18
  }): PromiseInterface<ResponseColumnMap>;
19
- fetch(itemType: ItemType, requestColumns: RequestColumns, params?: any): PromiseInterface<ResponseColumnMap>;
19
+ fetch(itemType: ItemType, requestColumns: ApiRequestColumns, params?: any): PromiseInterface<ResponseColumnMap>;
20
20
  fetchAll(itemType: ItemType): PromiseInterface<ResponseColumnMap>;
21
21
  }
@@ -1,13 +1,13 @@
1
1
  import { ColumnHandler, ColumnInfo, ColumnUtil } from '../classes';
2
2
  import { ColumnInfoFactory, ColumnSetFactory } from '../factories';
3
- import { ColumnExpansionResult, RequestColumns, ResponseColumnMap } from '../types';
3
+ import { ApiRequestColumns, ColumnExpansionResult, ResponseColumnMap } from '../types';
4
4
  export declare class ColumnSet {
5
5
  private columnHandler;
6
6
  private columnUtil;
7
7
  private columnInfoFactory;
8
8
  private columnSetFactory;
9
9
  itemType: any;
10
- request: RequestColumns;
10
+ request: ApiRequestColumns;
11
11
  id: number;
12
12
  requestColumnsTrue: boolean;
13
13
  response: ResponseColumnMap;
@@ -26,17 +26,18 @@ export declare class ColumnSet {
26
26
  item: ColumnInfo[];
27
27
  notItem: ColumnInfo[];
28
28
  enableCaching: boolean;
29
- constructor(columnHandler: ColumnHandler, columnUtil: ColumnUtil, columnInfoFactory: ColumnInfoFactory, columnSetFactory: ColumnSetFactory, itemType: any, request: RequestColumns);
29
+ constructor(columnHandler: ColumnHandler, columnUtil: ColumnUtil, columnInfoFactory: ColumnInfoFactory, columnSetFactory: ColumnSetFactory, itemType: any, request: ApiRequestColumns);
30
30
  toJSON(): {
31
31
  main: string[];
32
32
  derived: string[];
33
33
  };
34
34
  resolve(responseColumns: ResponseColumnMap, enableCaching?: boolean, includeIdColumn?: boolean): this;
35
- expandRequestColumns(columns: RequestColumns): void;
36
- isSupersetOf(columns: RequestColumns): any;
35
+ expandRequestColumns(columns: ApiRequestColumns): void;
36
+ isSupersetOf(columns: ApiRequestColumns): any;
37
37
  private processResponseColumns(responseColumns);
38
+ private requestColumnsIsTrue(requestColumns);
38
39
  private processRequestColumns(responseColumns, includeIdColumn);
39
40
  private getRequestColumnInfo(requestColumn, itemType, parent, responseColumns);
40
41
  private getColumnInfo(columnId, itemType, children, parent, responseColumns);
41
- expand(requestColumns: RequestColumns, requestColumnsTrue: boolean, responseColumns: ResponseColumnMap): ColumnExpansionResult;
42
+ expand(requestColumns: ApiRequestColumns, requestColumnsTrue: boolean, responseColumns: ResponseColumnMap): ColumnExpansionResult;
42
43
  }
@@ -1,4 +1,4 @@
1
- import { RequestColumn, RequestColumns } from '../types';
1
+ import { ApiRequestColumn, ApiRequestColumns } from '../types';
2
2
  export declare class ColumnUtil {
3
3
  constructor();
4
4
  getColumnPath(columns: any, renderAs: any): string;
@@ -26,27 +26,27 @@ export declare class ColumnUtil {
26
26
  hasLocationProperty(column: any, location: any): boolean;
27
27
  isEditableColumn(column: any): boolean;
28
28
  isSearchableColumn(column: any): boolean;
29
- getDefaultWeight(column: any): 1 | 2 | 0.5 | 1.5;
29
+ getDefaultWeight(column: any): 1 | 0.5 | 1.5 | 2;
30
30
  getComparators(column: any): string[];
31
31
  isColumnSubset(first: any, second: any, secondTrue: any): any;
32
32
  containsColumn(requestColumn: any, destination: any): boolean;
33
33
  responseColumnsAvailable(itemType: any, requestColumns: any, responseColumnMap: any): boolean;
34
- copyRequestColumns(columns: RequestColumns): RequestColumns;
35
- copyRequestColumn(requestColumn: RequestColumn): RequestColumn;
34
+ copyRequestColumns(columns: ApiRequestColumns): ApiRequestColumns;
35
+ copyRequestColumn(requestColumn: ApiRequestColumn): ApiRequestColumn;
36
36
  /**
37
37
  * Difference: columns that are in second, but not in first
38
38
  * @param {Array} first
39
39
  * @param {Array} second
40
40
  * @returns {Object} An object containing 'merged' and 'difference' properties
41
41
  */
42
- mergeRequestColumns(first: RequestColumns, second: RequestColumns): {
43
- merged: RequestColumns;
44
- difference: RequestColumns;
42
+ mergeRequestColumns(first: ApiRequestColumns, second: ApiRequestColumns): {
43
+ merged: ApiRequestColumns;
44
+ difference: ApiRequestColumns;
45
45
  };
46
46
  mergeRequestColumn(requestColumn: any, destination: any): any;
47
47
  parseRequestColumn(requestColumn: any): {
48
48
  id: string;
49
- children: RequestColumn[];
49
+ children: ApiRequestColumn[];
50
50
  };
51
51
  /**
52
52
  * Merges two sets of response columns.
@@ -1,6 +1,6 @@
1
- import { ChangesCompilation, CollectionCache, CollectionHandler, KeyService } from '../classes';
1
+ import { CollectionCache, CollectionHandler, CreateCompilation, KeyService } from '../classes';
2
2
  import { CollectionMatcherFactory, RequestColumnExpansionFactory } from '../factories';
3
- import { CreateRequestEntry, CreateRequestParameterMap } from '../types';
3
+ import { CreateRequestEntry, CreateRequestParameterMap, ItemType } from '../types';
4
4
  export declare class CreateRequest {
5
5
  private collectionHandler;
6
6
  private collectionMatcherFactory;
@@ -11,9 +11,9 @@ export declare class CreateRequest {
11
11
  private parameterMap;
12
12
  private breakupByParent;
13
13
  requests: CreateRequestEntry[];
14
- constructor(collectionHandler: CollectionHandler, collectionMatcherFactory: CollectionMatcherFactory, keyService: KeyService, requestColumnExpansionFactory: RequestColumnExpansionFactory, compilation: ChangesCompilation, localCollectionCache: CollectionCache, parameterMap: CreateRequestParameterMap, breakupByParent?: boolean);
14
+ constructor(collectionHandler: CollectionHandler, collectionMatcherFactory: CollectionMatcherFactory, keyService: KeyService, requestColumnExpansionFactory: RequestColumnExpansionFactory, compilation: CreateCompilation, localCollectionCache: CollectionCache, parameterMap: CreateRequestParameterMap, breakupByParent?: boolean);
15
15
  finalizeRequest(requestResource: CreateRequestEntry): CreateRequestEntry;
16
- setRequestParent(parentType: any, requestResource: any): boolean;
16
+ setRequestParent(parentType: ItemType, requestEntry: CreateRequestEntry): boolean;
17
17
  run(): CreateRequestEntry[];
18
18
  initializeRequest(): CreateRequestEntry;
19
19
  private extendRequest(itemEntries, requestParentId, destination);
@@ -75,7 +75,16 @@ export declare class ItemAdministrator {
75
75
  getModuleChanges(localCache?: LocalCache): {
76
76
  itemType: string;
77
77
  itemId: number;
78
- items: any;
78
+ items: {
79
+ [itemType: string]: {
80
+ [itemId: number]: {
81
+ values?: any;
82
+ links?: {
83
+ [itemType: string]: number[];
84
+ } | undefined;
85
+ };
86
+ };
87
+ };
79
88
  };
80
89
  addSingleItem(itemEntry: ItemEntry, options: ItemOptions, isRoot?: boolean, localCache?: LocalCache): ItemResource;
81
90
  addSingleItems(itemEntries: ItemEntry[], options: ItemOptions): ItemResource[];
@@ -1,13 +1,9 @@
1
1
  import { QueryMatcherFactory } from '../factories';
2
2
  import { ItemEntry } from '../models';
3
- import { ItemId, ItemType } from '../types';
3
+ import { ItemEntryMap, ItemId, ItemType } from '../types';
4
4
  export declare class ItemCache {
5
5
  private queryMatcherFactory;
6
- entries: {
7
- [itemType: string]: {
8
- [itemId: number]: ItemEntry;
9
- };
10
- };
6
+ entries: ItemEntryMap;
11
7
  constructor(queryMatcherFactory: QueryMatcherFactory);
12
8
  some(callback: (itemEntry: ItemEntry) => boolean): boolean;
13
9
  getByItemType(itemType: ItemType): ItemEntry[];
@@ -3,7 +3,7 @@ import { ENTRY_STATUS } from '../constants';
3
3
  import { BatchStatusFactory, ColumnExpansionFactory, ColumnSetFactory, ItemCacheFactory, ItemEntryFactory, TemplateFactory } from '../factories';
4
4
  import { ApiRequestServiceInterface, ErrorHandlerInterface, PromiseLibraryInterface } from '../interfaces';
5
5
  import { ItemEntry, Template } from '../models';
6
- import { ApiResponse, EntryStatus, FieldMap, ItemId, ItemIdConversionMap, ItemOptions, ItemType, PromiseInterface, RequestColumns, TemplateItemEntryMap, TemplateLinkedItemEntryMap } from '../types';
6
+ import { ApiResponse, EntryStatus, FieldMap, ItemId, ItemIdConversionMap, ItemOptions, ItemType, PromiseInterface, ApiRequestColumns, TemplateItemEntryMap, TemplateLinkedItemEntryMap } from '../types';
7
7
  export declare class ItemHandler {
8
8
  private apiFormatter;
9
9
  private apiRequestService;
@@ -48,7 +48,7 @@ export declare class ItemHandler {
48
48
  } | null;
49
49
  fetchTemplate(itemType: string, templateOptions?: any, templateColumns?: any): PromiseInterface<Template>;
50
50
  getEntryStatus(itemType: ItemType, itemId: ItemId, options: any, localItemCache: ItemCache): EntryStatus<ItemEntry> | null;
51
- isColumnSuperset(itemEntry: ItemEntry, columns: RequestColumns): any;
51
+ isColumnSuperset(itemEntry: ItemEntry, columns: ApiRequestColumns): any;
52
52
  getCachedEntryStatus(itemEntry: ItemEntry, options: any): ENTRY_STATUS;
53
53
  /**
54
54
  *
@@ -61,7 +61,7 @@ export declare class ItemHandler {
61
61
  * for every type of entry status there is in this batch request make sure the entries get resolved.
62
62
  * then return a array of the resulting ItemEntryArray
63
63
  */
64
- batchResolve(itemType: ItemType, batchStatus: BatchStatus, requestColumns: RequestColumns, resolved: {
64
+ batchResolve(itemType: ItemType, batchStatus: BatchStatus, requestColumns: ApiRequestColumns, resolved: {
65
65
  entries: ItemEntry[];
66
66
  requests?: ApiResponseProcessor;
67
67
  }): ItemEntry[] | PromiseInterface<any>;
@@ -71,6 +71,6 @@ export declare class ItemHandler {
71
71
  private getDefaultValuesByColumn(itemEntries, rootColumn);
72
72
  private getItemIdByColumn(itemEntry, column);
73
73
  private fetchDerivedValuesByColumn(itemEntries, rootColumn, localItemCache);
74
- requestItem(itemEntry: ItemEntry, requestColumns?: RequestColumns): PromiseInterface<ApiResponseProcessor>;
75
- requestItems(itemType: ItemType, itemIds: ItemId[], columns: RequestColumns): PromiseInterface<ApiResponseProcessor>;
74
+ requestItem(itemEntry: ItemEntry, requestColumns?: ApiRequestColumns): PromiseInterface<ApiResponseProcessor>;
75
+ requestItems(itemType: ItemType, itemIds: ItemId[], columns: ApiRequestColumns): PromiseInterface<ApiResponseProcessor>;
76
76
  }
@@ -2,7 +2,7 @@ import { ApiResponseProcessor, ColumnExpansion, ColumnSet, ItemHandler, QuerySer
2
2
  import { ColumnExpansionFactory, ColumnSetFactory, ItemEntryFactory } from '../factories';
3
3
  import { ApiRequestServiceInterface, ErrorHandlerInterface, PromiseLibraryInterface } from '../interfaces';
4
4
  import { CollectionEntry, ItemEntry } from '../models';
5
- import { ApiResponse, EntryParentNull, ItemId, ItemType, PromiseInterface, RequestColumns } from '../types';
5
+ import { ApiRequestColumns, ApiResponse, EntryParentNull, ItemId, ItemType, PromiseInterface } from '../types';
6
6
  export declare class ItemRequestService {
7
7
  private apiRequestService;
8
8
  private errorHandler;
@@ -16,7 +16,7 @@ export declare class ItemRequestService {
16
16
  requestItem(itemType: any, itemId: any, columns: any): PromiseInterface<ApiResponseProcessor>;
17
17
  requestItems(collectionEntry: CollectionEntry, query?: any, columns?: any): PromiseInterface<ApiResponseProcessor>;
18
18
  requestLinkItems(parentType: any, parentIdArray: any, itemType: any, query: any, columns: any): PromiseInterface<ApiResponseProcessor>;
19
- processExpansion(requestColumns: RequestColumns, response: ApiResponse, itemType: ItemType, itemEntries: ItemEntry[]): ColumnExpansion;
19
+ processExpansion(requestColumns: ApiRequestColumns, response: ApiResponse, itemType: ItemType, itemEntries: ItemEntry[]): ColumnExpansion;
20
20
  processResponse(response: ApiResponse, idArray: ItemId[], parent: EntryParentNull, columnSet: ColumnSet, columnExpansion?: ColumnExpansion): PromiseInterface<ItemEntry[]>;
21
21
  handleCachedItem(itemEntry: ItemEntry, response: ApiResponse, columnExpansion: ColumnExpansion): ItemEntry;
22
22
  processLinkResponse(response: ApiResponse, parentType: ItemType, parentIdArray: ItemId[], itemType: ItemType, options: any): Promise<any>;
@@ -19,6 +19,7 @@ export declare class LocalCache {
19
19
  collections: CollectionCache;
20
20
  deferredCollections: CollectionCache;
21
21
  tabRequestParameters: {};
22
+ isSaving: boolean;
22
23
  private callbacks;
23
24
  private changesInterval;
24
25
  hasChanges: boolean;
@@ -1,17 +1,19 @@
1
1
  import { CollectionCache, ItemCache } from '../classes';
2
2
  import { ItemEntry } from '../models';
3
+ import { ApiRequestItemMap, ItemId, ItemType } from '../types';
4
+ export declare type ModuleChangesCompilationResult = {
5
+ itemType: ItemType;
6
+ itemId: ItemId;
7
+ items: ApiRequestItemMap;
8
+ };
3
9
  export declare class ModuleChangesCompilation {
4
10
  private rootItemEntry;
5
11
  private singleItemCache;
6
12
  private collectionCache;
7
13
  parentMap: any;
8
- destination: any;
14
+ destination: ApiRequestItemMap;
9
15
  constructor(rootItemEntry: ItemEntry, singleItemCache: ItemCache, collectionCache: CollectionCache);
10
- process(): {
11
- itemType: string;
12
- itemId: number;
13
- items: any;
14
- };
16
+ process(): ModuleChangesCompilationResult;
15
17
  private createParentMap(itemCache);
16
18
  private processItems(itemType, itemEntries, linkAccumulator);
17
19
  private processItem(itemEntry);
@@ -5,8 +5,8 @@ export declare function inArray(needle: any, haystack: any): boolean;
5
5
  export declare function filterArray<T>(source: T[], callback: (T) => boolean): boolean;
6
6
  export declare function emptyArray(array: any): void;
7
7
  export declare function pathExists(source: any, path: any): boolean;
8
- export declare function createPath(object: any, path: any, defaults: any): any;
9
- export declare function getPath(object: any, path: any, create?: boolean): any;
8
+ export declare function createPath(object: {}, path: Array<number | string>, defaults: any[]): any;
9
+ export declare function getPath(object: {}, path: Array<number | string>, create?: boolean): any;
10
10
  export declare function extend(dst: any, ...args: any[]): any;
11
11
  export declare function merge(dst: any, ...args: any[]): any;
12
12
  export declare function isObject(value: any): boolean;
@@ -3,6 +3,7 @@ import { CollectionEntry, ItemEntry } from '../models';
3
3
  import { CollectionCacheFactory } from './';
4
4
  export declare class ChangesCompilationFactory {
5
5
  private collectionCacheFactory;
6
- constructor(collectionCacheFactory: CollectionCacheFactory);
6
+ private keyService;
7
+ constructor(collectionCacheFactory: CollectionCacheFactory, keyService: any);
7
8
  construct(singleItems: ItemEntry[], collections: CollectionEntry[]): ChangesCompilation;
8
9
  }
@@ -2,17 +2,17 @@ import { ApiFormatter, ChangesProcessor, CollectionEntryService, CollectionHandl
2
2
  import { ChangesCompilationFactory, ColumnExpansionFactory, CreateRequestFactory, RequestColumnExpansionFactory } from '../factories';
3
3
  import { ApiRequestServiceInterface, ErrorHandlerInterface, PromiseLibraryInterface } from '../interfaces';
4
4
  export declare class ChangesProcessorFactory {
5
+ private apiFormatter;
5
6
  private apiRequestService;
6
- private errorHandler;
7
- private itemHandler;
8
- private collectionHandler;
9
7
  private changesCompilationFactory;
10
- private createRequestFactory;
11
- private columnExpansionFactory;
12
- private requestColumnExpansionFactory;
13
8
  private collectionEntryService;
14
- private apiFormatter;
9
+ private collectionHandler;
10
+ private columnExpansionFactory;
11
+ private createRequestFactory;
12
+ private errorHandler;
13
+ private itemHandler;
15
14
  private promiseService;
16
- constructor(apiRequestService: ApiRequestServiceInterface, errorHandler: ErrorHandlerInterface, itemHandler: ItemHandler, collectionHandler: CollectionHandler, changesCompilationFactory: ChangesCompilationFactory, createRequestFactory: CreateRequestFactory, columnExpansionFactory: ColumnExpansionFactory, requestColumnExpansionFactory: RequestColumnExpansionFactory, collectionEntryService: CollectionEntryService, apiFormatter: ApiFormatter, promiseService: PromiseLibraryInterface);
15
+ private requestColumnExpansionFactory;
16
+ constructor(apiFormatter: ApiFormatter, apiRequestService: ApiRequestServiceInterface, changesCompilationFactory: ChangesCompilationFactory, collectionEntryService: CollectionEntryService, collectionHandler: CollectionHandler, columnExpansionFactory: ColumnExpansionFactory, createRequestFactory: CreateRequestFactory, errorHandler: ErrorHandlerInterface, itemHandler: ItemHandler, promiseService: PromiseLibraryInterface, requestColumnExpansionFactory: RequestColumnExpansionFactory);
17
17
  construct(): ChangesProcessor;
18
18
  }
@@ -1,11 +1,11 @@
1
1
  import { ColumnHandler, ColumnSet, ColumnUtil } from '../classes';
2
2
  import { ColumnInfoFactory } from '../factories';
3
- import { ItemType, RequestColumns, ResponseColumnMap } from '../types';
3
+ import { ApiRequestColumns, ItemType, ResponseColumnMap } from '../types';
4
4
  export declare class ColumnSetFactory {
5
5
  private columnHandler;
6
6
  private columnUtil;
7
7
  private columnInfoFactory;
8
8
  constructor(columnHandler: ColumnHandler, columnUtil: ColumnUtil, columnInfoFactory: ColumnInfoFactory);
9
- constructStub(itemType: ItemType, requestColumns: RequestColumns): ColumnSet;
10
- construct(itemType: ItemType, requestColumns: RequestColumns, responseColumns: ResponseColumnMap, enableCaching?: any, includeIdColumn?: any): ColumnSet;
9
+ constructStub(itemType: ItemType, requestColumns: ApiRequestColumns): ColumnSet;
10
+ construct(itemType: ItemType, requestColumns: ApiRequestColumns, responseColumns: ResponseColumnMap, enableCaching?: any, includeIdColumn?: any): ColumnSet;
11
11
  }
@@ -1,10 +1,11 @@
1
- import { CollectionHandler, CreateRequest, KeyService } from '../classes';
1
+ import { CollectionCache, CollectionHandler, CreateCompilation, CreateRequest, KeyService } from '../classes';
2
2
  import { CollectionMatcherFactory, RequestColumnExpansionFactory } from '../factories';
3
+ import { CreateRequestParameterMap } from '../types';
3
4
  export declare class CreateRequestFactory {
4
5
  private collectionHandler;
5
6
  private collectionMatcherFactory;
6
7
  private keyService;
7
8
  private requestColumnExpansionFactory;
8
9
  constructor(collectionHandler: CollectionHandler, collectionMatcherFactory: CollectionMatcherFactory, keyService: KeyService, requestColumnExpansionFactory: RequestColumnExpansionFactory);
9
- construct(compilation: any, collectionEntries: any, parameterMap: any, breakupByParent?: any): CreateRequest;
10
+ construct(compilation: CreateCompilation, localCollectionCache: CollectionCache, parameterMap: CreateRequestParameterMap, breakupByParent?: boolean): CreateRequest;
10
11
  }
@@ -2,7 +2,7 @@ import { ApiFormatter, ColumnSet, ItemEntryService, KeyService } from '../classe
2
2
  import { ColumnSetFactory } from '../factories';
3
3
  import { AuthInterface, PromiseLibraryInterface } from '../interfaces';
4
4
  import { ItemEntry, Template } from '../models';
5
- import { EntryParentNull, FieldMap, ItemId, ItemIdConversionMap, ItemType, RequestColumns } from '../types';
5
+ import { ApiRequestColumns, EntryParentNull, FieldMap, ItemId, ItemIdConversionMap, ItemType } from '../types';
6
6
  export declare class ItemEntryFactory {
7
7
  authInterface: AuthInterface;
8
8
  apiFormatter: ApiFormatter;
@@ -14,6 +14,6 @@ export declare class ItemEntryFactory {
14
14
  constructStub(itemType: ItemType, itemId: ItemId, columnSetStub: ColumnSet): ItemEntry;
15
15
  constructLocalLinked(itemType: ItemType, itemId: ItemId, initial: FieldMap, parent: EntryParentNull, columnSet: ColumnSet, conversionMap: ItemIdConversionMap): ItemEntry;
16
16
  constructLocal(itemId: ItemId, template: Template, modified: FieldMap, derived: FieldMap, parent?: EntryParentNull, columnSet?: ColumnSet, conversionMap?: any): ItemEntry;
17
- constructDeferred(itemType: ItemType, itemId: ItemId, requestColumns: RequestColumns, deferRequest: boolean): ItemEntry;
17
+ constructDeferred(itemType: ItemType, itemId: ItemId, requestColumns: ApiRequestColumns, deferRequest: boolean): ItemEntry;
18
18
  construct(itemId: ItemId, initial: FieldMap, derived: FieldMap, columnInfo: ColumnSet): ItemEntry;
19
19
  }
@@ -1,11 +1,11 @@
1
- import { ItemId, ItemType, PromiseInterface } from '../types';
1
+ import { ApiRequestColumnMap, ApiRequestItemMap, ApiRequestLimit, ApiRequestMoveItems, ItemId, ItemType, PromiseInterface } from '../types';
2
2
  export interface ApiRequestServiceInterface {
3
- template(itemType: string, params: any): PromiseInterface<any>;
3
+ template(itemType: ItemType, params: any): PromiseInterface<any>;
4
4
  create(itemType: ItemType, itemId: ItemId, values: any, parentType?: ItemType, parentId?: ItemId): PromiseInterface<any>;
5
5
  delete(itemType: ItemType, itemIds: ItemId[]): PromiseInterface<any>;
6
- updateItems(itemType: ItemType, items: object, columns: any): PromiseInterface<any>;
6
+ updateItems(itemType: ItemType, items: ApiRequestItemMap, columns: ApiRequestColumnMap): PromiseInterface<any>;
7
7
  requestSkeleton(params: any, requestCanceler?: PromiseInterface<any>): PromiseInterface<any>;
8
- moveItems(parentType: ItemType, parentId: ItemId, items: object): PromiseInterface<any>;
9
- columns(itemType: ItemType, columns: object, params?: any): PromiseInterface<any>;
10
- query(itemType: ItemType, query: object, columns: object, limit?: object): PromiseInterface<any>;
8
+ moveItems(parentType: ItemType, parentId: ItemId, items: ApiRequestMoveItems): PromiseInterface<any>;
9
+ columns(itemType: ItemType, columns: ApiRequestColumnMap, params?: any): PromiseInterface<any>;
10
+ query(itemType: ItemType, query: any, columns: ApiRequestColumnMap, limit?: ApiRequestLimit): PromiseInterface<any>;
11
11
  }
@@ -1,7 +1,7 @@
1
1
  import { ColumnExpansion, ColumnInfo, ColumnSet, ItemCache } from '../classes';
2
2
  import { CollectionEntryFactory } from '../factories';
3
3
  import { CollectionResource, ItemEntry, ItemResource } from '../models';
4
- import { EntryParentNull, FieldMap, ItemId, ItemIdConversionMap, ItemType, PromiseInterface, RequestColumns } from '../types';
4
+ import { ApiRequestColumns, EntryParentNull, FieldMap, ItemId, ItemIdConversionMap, ItemType, PromiseInterface } from '../types';
5
5
  export declare class CollectionEntry {
6
6
  private factory;
7
7
  itemType: ItemType;
@@ -41,12 +41,12 @@ export declare class CollectionEntry {
41
41
  clear(resultResource?: CollectionResource | null, updateInitial?: boolean, callOnRemove?: boolean): ItemResource[] | null;
42
42
  handleRemovedItems(filterFunction: (itemEntry: ItemEntry) => boolean, resultResource?: CollectionResource | null, updateInitial?: boolean, callOnRemove?: boolean): ItemResource[] | null;
43
43
  private handleRemovedItemCallbacks(removedFromInitial, removedFromModified, resultResource?, callOnRemove?);
44
- expand(newColumns: RequestColumns): PromiseInterface<this>;
44
+ expand(newColumns: ApiRequestColumns): PromiseInterface<this>;
45
45
  extendQuery(callback: any): any;
46
46
  extend(queryCallback: any, collectionResource: any, callOnAdd?: any, updateInitial?: any): PromiseInterface<ItemResource[] | null>;
47
47
  queueReload(): void;
48
48
  expandColumns(columnExpansion: ColumnExpansion): void;
49
- expandRequestColumns(requestColumns: RequestColumns): void;
49
+ expandRequestColumns(requestColumns: ApiRequestColumns): void;
50
50
  getAddedItems(returnItemIds?: boolean): (number | ItemEntry)[];
51
51
  getRemovedItems(returnItemIds?: boolean): (number | ItemEntry)[];
52
52
  getUpdatedItems(): ItemEntry[];