@rentman/rm-core 1.1.20 → 1.2.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.
package/changelog.md CHANGED
@@ -1,6 +1,18 @@
1
1
  #Changelog
2
2
  Contains new features, breaking changes and their reasoning
3
3
 
4
+ ## v1.2.1
5
+ - **Breaking:** Replaced the `initial` parameter with the `callOnChange` parameter (`true` by default) in the `commit`
6
+ function of the `EditResource` class.
7
+ - Fixed issue in `setLocalFields` (`ItemEntry`) where some values were wrongly assumed to be present in `initialValues`.
8
+ - Optimization: Disabled automatic resolution of derived values in `addItems` (`CollectionEditResource`) when `modInstant` is set to true.
9
+
10
+ ## v1.2.0
11
+ - **Breaking:** When calling `addItems` or `addItem` on the `CollectionEditResource` class derived values are now
12
+ resolved automatically. Instead of a compound object like `{fields: {key: 'value'}, derived: {}}` an object like
13
+ `{key: 'value'}` should now be used as argument when calling these functions.
14
+ - **Breaking:** Added `localCache` parameter to `CollectionResource` constructor.
15
+
4
16
  ## v1.1.20
5
17
  - Fixed minor issue where collection wouldn't be deferred properly before expanding.
6
18
  - `onChange` is now called automatically when when calling `commit` on an edit resource.
@@ -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,17 +1,14 @@
1
1
  import { ColumnSet, ColumnUtil } from '../classes';
2
- import { ColumnSetFactory } from '../factories';
3
- import { ColumnExpansionResult, ItemType, RequestColumns, ResponseColumnMap } from '../types';
2
+ import { ColumnExpansionResult, ItemType, RequestColumn, RequestColumns, ResponseColumnMap } from '../types';
4
3
  export declare class ColumnExpansion {
5
- private columnSetFactory;
6
4
  private columnUtil;
7
5
  itemType: ItemType;
8
- requestColumns: RequestColumns;
9
6
  responseColumns: ResponseColumnMap;
10
7
  expansionMap: {
11
8
  [columnSetId: number]: ColumnExpansionResult;
12
9
  };
13
10
  requestColumnsTrue: boolean;
14
- constructor(columnSetFactory: ColumnSetFactory, columnUtil: ColumnUtil, itemType: ItemType, requestColumns: RequestColumns, responseColumns: ResponseColumnMap);
11
+ requestColumns: RequestColumn[];
12
+ constructor(columnUtil: ColumnUtil, itemType: ItemType, requestColumns: RequestColumns, responseColumns: ResponseColumnMap);
15
13
  run(columnSet: ColumnSet): ColumnExpansionResult | null;
16
- private expandColumnInfo(columnSet);
17
14
  }
@@ -1,10 +1,11 @@
1
1
  import { ColumnHandler, ColumnInfo, ColumnUtil } from '../classes';
2
- import { ColumnInfoFactory } from '../factories';
3
- import { RequestColumns, ResponseColumnMap } from '../types';
2
+ import { ColumnInfoFactory, ColumnSetFactory } from '../factories';
3
+ import { ColumnExpansionResult, RequestColumns, ResponseColumnMap } from '../types';
4
4
  export declare class ColumnSet {
5
5
  private columnHandler;
6
6
  private columnUtil;
7
7
  private columnInfoFactory;
8
+ private columnSetFactory;
8
9
  itemType: any;
9
10
  request: RequestColumns;
10
11
  id: number;
@@ -25,7 +26,7 @@ export declare class ColumnSet {
25
26
  item: ColumnInfo[];
26
27
  notItem: ColumnInfo[];
27
28
  enableCaching: boolean;
28
- constructor(columnHandler: ColumnHandler, columnUtil: ColumnUtil, columnInfoFactory: ColumnInfoFactory, itemType: any, request: RequestColumns);
29
+ constructor(columnHandler: ColumnHandler, columnUtil: ColumnUtil, columnInfoFactory: ColumnInfoFactory, columnSetFactory: ColumnSetFactory, itemType: any, request: RequestColumns);
29
30
  resolve(responseColumns: ResponseColumnMap, enableCaching?: boolean, includeIdColumn?: boolean): this;
30
31
  expandRequestColumns(columns: RequestColumns): void;
31
32
  isSupersetOf(columns: RequestColumns): any;
@@ -33,4 +34,5 @@ export declare class ColumnSet {
33
34
  private processRequestColumns(responseColumns, includeIdColumn);
34
35
  private getRequestColumnInfo(requestColumn, itemType, parent, responseColumns);
35
36
  private getColumnInfo(columnId, itemType, children, parent, responseColumns);
37
+ expand(requestColumns: RequestColumns, requestColumnsTrue: boolean, responseColumns: ResponseColumnMap): ColumnExpansionResult;
36
38
  }
@@ -86,7 +86,7 @@ export declare class ItemAdministrator {
86
86
  resetLocalCache(): void;
87
87
  addToCollections(itemEntries: ItemEntry[], resultCollectionResource?: CollectionResource): ItemResource[] | null;
88
88
  removeFromCollections(itemEntries: ItemEntry[], resultCollectionResource?: CollectionResource): ItemResource[] | null;
89
- saveLocal(itemResource: ItemResource): Promise<any>;
89
+ saveLocal(itemResource: ItemResource): Promise<ItemResource>;
90
90
  updateItemIdMap(collectionMap: any, conversionMap: any): void;
91
91
  createCollectionResource(collectionEntry: CollectionEntry, resourceOptions: any, processOptions?: boolean): CollectionResource;
92
92
  createItemResource(itemEntry: ItemEntry, options: any, isRoot: boolean): ItemResource;
@@ -1,25 +1,29 @@
1
- import { ApiResponseProcessor, BatchStatus, ColumnExpansion, ColumnHandler, ColumnSet, ColumnUtil, ItemCache, ItemEntryService, KeyService } from '../classes';
1
+ import { ApiFormatter, ApiResponseProcessor, BatchStatus, ColumnExpansion, ColumnHandler, ColumnInfo, ColumnSet, ColumnUtil, ItemCache, ItemEntryService, KeyService } from '../classes';
2
2
  import { ENTRY_STATUS } from '../constants';
3
- import { BatchStatusFactory, ColumnExpansionFactory, ColumnSetFactory, ItemCacheFactory, ItemEntryFactory } from '../factories';
3
+ import { BatchStatusFactory, ColumnExpansionFactory, ColumnSetFactory, ItemCacheFactory, ItemEntryFactory, TemplateFactory } from '../factories';
4
4
  import { ApiRequestServiceInterface, ErrorHandlerInterface, PromiseInterface } from '../interfaces';
5
- import { ItemEntry } from '../models';
6
- import { ApiResponse, ApiTemplateItemTypeMap, EntryStatus, FieldMap, ItemId, ItemIdConversionMap, ItemType, RequestColumns, TemplateResponseItemEntryMap, TemplateResponseLinkedItemEntryMap } from '../types';
5
+ import { ItemEntry, Template } from '../models';
6
+ import { ApiResponse, EntryStatus, FieldMap, ItemId, ItemIdConversionMap, ItemType, RequestColumns, TemplateResponseItemEntryMap, TemplateResponseLinkedItemEntryMap } from '../types';
7
7
  export declare class ItemHandler {
8
+ private apiFormatter;
8
9
  private apiRequestService;
9
- private errorHandler;
10
- private itemEntryFactory;
11
- private columnHandler;
12
- private itemCacheFactory;
13
10
  private batchStatusFactory;
14
11
  private columnExpansionFactory;
12
+ private columnHandler;
15
13
  private columnSetFactory;
14
+ private columnUtil;
15
+ private errorHandler;
16
+ private itemCacheFactory;
17
+ private itemEntryFactory;
16
18
  private itemEntryService;
17
19
  private keyService;
18
20
  private promiseService;
19
- private columnUtil;
21
+ private templateFactory;
20
22
  entries: ItemCache;
21
- templates: ApiTemplateItemTypeMap;
22
- constructor(apiRequestService: ApiRequestServiceInterface, errorHandler: ErrorHandlerInterface, itemEntryFactory: ItemEntryFactory, columnHandler: ColumnHandler, itemCacheFactory: ItemCacheFactory, batchStatusFactory: BatchStatusFactory, columnExpansionFactory: ColumnExpansionFactory, columnSetFactory: ColumnSetFactory, itemEntryService: ItemEntryService, keyService: KeyService, promiseService: PromiseInterface, columnUtil: ColumnUtil);
23
+ templates: {
24
+ [itemType: string]: Template;
25
+ };
26
+ constructor(apiFormatter: ApiFormatter, apiRequestService: ApiRequestServiceInterface, batchStatusFactory: BatchStatusFactory, columnExpansionFactory: ColumnExpansionFactory, columnHandler: ColumnHandler, columnSetFactory: ColumnSetFactory, columnUtil: ColumnUtil, errorHandler: ErrorHandlerInterface, itemCacheFactory: ItemCacheFactory, itemEntryFactory: ItemEntryFactory, itemEntryService: ItemEntryService, keyService: KeyService, promiseService: PromiseInterface, templateFactory: TemplateFactory);
23
27
  fetchItem(itemType: ItemType, itemId: ItemId, options: any, localItemCache: ItemCache): Promise<ItemEntry | TemplateResponseItemEntryMap>;
24
28
  /**
25
29
  *
@@ -31,7 +35,7 @@ export declare class ItemHandler {
31
35
  * For every itemid find the status of the ItemEntry and resolve the promises so the result is
32
36
  * a usable ItemEntry
33
37
  */
34
- fetchItems(itemType: any, itemIds: any, options: any, localItemCache: ItemCache): Promise<ItemEntry[]>;
38
+ fetchItems(itemType: ItemType, itemIds: ItemId[], options: any, localItemCache: ItemCache): Promise<ItemEntry[]>;
35
39
  resolveCached(itemEntry: ItemEntry, status: ENTRY_STATUS, options: any): Promise<ItemEntry>;
36
40
  resolveLocal(itemEntry: ItemEntry, parent: any, template: any, localItemCache: ItemCache): TemplateResponseItemEntryMap;
37
41
  resolveExpansion(itemEntry: ItemEntry, columnExpansion: ColumnExpansion, response: ApiResponse): ItemEntry;
@@ -41,7 +45,7 @@ export declare class ItemHandler {
41
45
  initial: FieldMap;
42
46
  derived: FieldMap;
43
47
  } | null;
44
- fetchTemplate(itemType: string, templateOptions?: any, templateColumns?: any): Promise<any>;
48
+ fetchTemplate(itemType: string, templateOptions?: any, templateColumns?: any): Promise<Template>;
45
49
  getEntryStatus(itemType: ItemType, itemId: ItemId, options: any, localItemCache: ItemCache): EntryStatus<ItemEntry>;
46
50
  isColumnSuperset(itemEntry: ItemEntry, columns: RequestColumns): any;
47
51
  getCachedEntryStatus(itemEntry: ItemEntry, options: any): ENTRY_STATUS;
@@ -59,6 +63,10 @@ export declare class ItemHandler {
59
63
  batchResolve(itemType: ItemType, batchStatus: BatchStatus, requestColumns: RequestColumns, resolved: any, localItemCache: ItemCache): ItemEntry[] | Promise<any>;
60
64
  createLocalEntries(parentType: ItemType, localParentId: ItemId, template: any, itemIdConversion: ItemIdConversionMap, localItemCache: ItemCache, excludeItemTypes?: ItemType[]): TemplateResponseLinkedItemEntryMap[];
61
65
  fetchTitle(itemType: ItemType, itemId: ItemId, deferRequest: boolean | undefined, localItemCache: ItemCache): Promise<any>;
66
+ resolveDerivedValues(itemEntries: ItemEntry[], columns: ColumnInfo[], localItemCache: ItemCache): Promise<ItemEntry[]>;
67
+ private getDefaultValuesByColumn(itemEntries, rootColumn);
68
+ private getItemIdByColumn(itemEntry, column);
69
+ private fetchDerivedValuesByColumn(itemEntries, rootColumn, localItemCache);
62
70
  requestItem(itemEntry: ItemEntry, requestColumns?: RequestColumns): Promise<ApiResponseProcessor>;
63
71
  requestItems(itemType: ItemType, itemIds: ItemId[], columns: RequestColumns): Promise<ApiResponseProcessor>;
64
72
  }
@@ -27,6 +27,6 @@ export declare class SocketMessageHandler {
27
27
  handleResponse(itemType: any, requestIds: any, requestColumns: any, response: any, collectionMap: any): {};
28
28
  handleCreate(message: any): Promise<any> | undefined;
29
29
  handleUpdate(message: any): Promise<any>;
30
- handleDelete(message: any): Promise<any>;
30
+ handleDelete(message: any): Promise<{}>;
31
31
  handleLinkMove(): void;
32
32
  }
@@ -1,16 +1,18 @@
1
- import { CollectionEntryService, ItemEntryService, ItemRequestService, KeyService, QueryService } from '../classes';
2
- import { ColumnSetFactory } from '../factories';
1
+ import { CollectionEntryService, ItemEntryService, ItemHandler, ItemRequestService, KeyService, QueryService } from '../classes';
2
+ import { ColumnSetFactory, ItemEntryFactory } from '../factories';
3
3
  import { ErrorHandlerInterface, PromiseInterface } from '../interfaces';
4
4
  import { CollectionEntry } from '../models/';
5
5
  export declare class CollectionEntryFactory {
6
6
  collectionEntryService: CollectionEntryService;
7
7
  columnSetFactory: ColumnSetFactory;
8
8
  errorHandler: ErrorHandlerInterface;
9
+ itemEntryFactory: ItemEntryFactory;
9
10
  itemEntryService: ItemEntryService;
11
+ itemHandler: ItemHandler;
10
12
  itemRequestService: ItemRequestService;
11
13
  keyService: KeyService;
12
14
  promiseService: PromiseInterface;
13
15
  queryService: QueryService;
14
- constructor(collectionEntryService: CollectionEntryService, columnSetFactory: ColumnSetFactory, errorHandler: ErrorHandlerInterface, itemEntryService: ItemEntryService, itemRequestService: ItemRequestService, keyService: KeyService, promiseService: PromiseInterface, queryService: QueryService);
16
+ constructor(collectionEntryService: CollectionEntryService, columnSetFactory: ColumnSetFactory, errorHandler: ErrorHandlerInterface, itemEntryFactory: ItemEntryFactory, itemEntryService: ItemEntryService, itemHandler: ItemHandler, itemRequestService: ItemRequestService, keyService: KeyService, promiseService: PromiseInterface, queryService: QueryService);
15
17
  construct(itemType: string, options: any): CollectionEntry;
16
18
  }
@@ -1,16 +1,14 @@
1
- import { CollectionResourceService, ItemHandler, KeyService } from '../classes';
2
- import { ChangesProcessorFactory, ItemEntryFactory, ItemResourceFactory } from '../factories';
1
+ import { CollectionResourceService, KeyService, LocalCache } from '../classes';
2
+ import { ChangesProcessorFactory, ItemResourceFactory } from '../factories';
3
3
  import { ErrorHandlerInterface, PromiseInterface } from '../interfaces';
4
4
  import { CollectionEntry, CollectionResource } from '../models';
5
5
  export declare class CollectionResourceFactory {
6
6
  errorHandler: ErrorHandlerInterface;
7
- itemEntryFactory: ItemEntryFactory;
8
- itemHandler: ItemHandler;
9
7
  itemResourceFactory: ItemResourceFactory;
10
8
  changesProcessorFactory: ChangesProcessorFactory;
11
9
  keyService: KeyService;
12
10
  promiseService: PromiseInterface;
13
11
  collectionResourceService: CollectionResourceService;
14
- constructor(errorHandler: ErrorHandlerInterface, itemEntryFactory: ItemEntryFactory, itemHandler: ItemHandler, itemResourceFactory: ItemResourceFactory, changesProcessorFactory: ChangesProcessorFactory, keyService: KeyService, promiseService: PromiseInterface, collectionResourceService: CollectionResourceService);
15
- construct(collectionEntry: CollectionEntry, options: any): CollectionResource;
12
+ constructor(errorHandler: ErrorHandlerInterface, itemResourceFactory: ItemResourceFactory, changesProcessorFactory: ChangesProcessorFactory, keyService: KeyService, promiseService: PromiseInterface, collectionResourceService: CollectionResourceService);
13
+ construct(collectionEntry: CollectionEntry, options: any, localCache: LocalCache): CollectionResource;
16
14
  }
@@ -1,8 +1,6 @@
1
1
  import { ColumnExpansion, ColumnUtil } from '../classes';
2
- import { ColumnSetFactory } from '../factories';
3
2
  export declare class ColumnExpansionFactory {
4
- private columnSetFactory;
5
3
  private columnUtil;
6
- constructor(columnSetFactory: ColumnSetFactory, columnUtil: ColumnUtil);
4
+ constructor(columnUtil: ColumnUtil);
7
5
  construct(itemType: string, requestColumns: any | boolean, responseColumns: any): ColumnExpansion;
8
6
  }
@@ -1,7 +1,7 @@
1
1
  import { ApiFormatter, ColumnSet, ItemEntryService, KeyService } from '../classes';
2
2
  import { ColumnSetFactory } from '../factories';
3
3
  import { AuthInterface, PromiseInterface } from '../interfaces';
4
- import { ItemEntry } from '../models';
4
+ import { ItemEntry, Template } from '../models';
5
5
  import { EntryParentNull, FieldMap, ItemId, ItemIdConversionMap, ItemType, RequestColumns } from '../types';
6
6
  export declare class ItemEntryFactory {
7
7
  authInterface: AuthInterface;
@@ -11,9 +11,9 @@ export declare class ItemEntryFactory {
11
11
  keyService: KeyService;
12
12
  promiseService: PromiseInterface;
13
13
  constructor(authInterface: AuthInterface, apiFormatter: ApiFormatter, columnSetFactory: ColumnSetFactory, itemEntryService: ItemEntryService, keyService: KeyService, promiseService: PromiseInterface);
14
- constructStub(itemType: ItemType, itemId: ItemId, columnSetStub: any): ItemEntry;
15
- constructLocalLinked(itemType: ItemType, localItemId: ItemId, initial: FieldMap, parent: EntryParentNull, columnSet: ColumnSet, conversionMap: ItemIdConversionMap): ItemEntry;
16
- constructLocal(itemId: ItemId, template: any, modified: FieldMap, derived: FieldMap, parent?: EntryParentNull, conversionMap?: any): ItemEntry;
14
+ constructStub(itemType: ItemType, itemId: ItemId, columnSetStub: ColumnSet): ItemEntry;
15
+ constructLocalLinked(itemType: ItemType, itemId: ItemId, initial: FieldMap, parent: EntryParentNull, columnSet: ColumnSet, conversionMap: ItemIdConversionMap): ItemEntry;
16
+ constructLocal(itemId: ItemId, template: Template, modified: FieldMap, derived: FieldMap, parent?: EntryParentNull, columnSet?: ColumnSet, conversionMap?: any): ItemEntry;
17
17
  constructDeferred(itemType: ItemType, itemId: ItemId, requestColumns: RequestColumns, deferRequest: boolean): ItemEntry;
18
18
  construct(itemId: ItemId, initial: FieldMap, derived: FieldMap, columnInfo: ColumnSet): ItemEntry;
19
19
  }
@@ -0,0 +1,10 @@
1
+ import { ColumnUtil } from '../classes';
2
+ import { ColumnSetFactory } from '../factories';
3
+ import { Template } from '../models';
4
+ import { ApiResponse, ItemType, ResponseColumnMap } from '../types';
5
+ export declare class TemplateFactory {
6
+ columnSetFactory: ColumnSetFactory;
7
+ columnUtil: ColumnUtil;
8
+ constructor(columnSetFactory: ColumnSetFactory, columnUtil: ColumnUtil);
9
+ construct(itemType: ItemType, response: ApiResponse, additionalColumns: ResponseColumnMap): Template;
10
+ }
@@ -18,3 +18,4 @@ export * from './ModuleChangesCompilationFactory';
18
18
  export * from './QueryMatcherFactory';
19
19
  export * from './QueryParserFactory';
20
20
  export * from './RequestColumnExpansionFactory';
21
+ export * from './TemplateFactory';
@@ -5,7 +5,7 @@ export interface PromiseInterface {
5
5
  }): Promise<{
6
6
  [key: string]: any;
7
7
  }>;
8
- when(value?: any): Promise<any>;
8
+ when<T>(value?: T): Promise<T>;
9
9
  reject(value?: any): Promise<any>;
10
10
  defer(): {
11
11
  (value?): any;
@@ -1,46 +1,47 @@
1
1
  import { ApiFormatter, ApiRequestService, CollectionEntryService, CollectionHandler, CollectionResourceService, ColumnCache, ColumnHandler, ColumnUtil, ItemAdministrator, ItemEntryService, ItemHandler, ItemRequestService, ItemResourceService, KeyService, LockService, QueryService, SocketMessageHandler } from './classes';
2
- import { ApiResponseProcessorFactory, BatchStatusFactory, ChangesCompilationFactory, ChangesProcessorFactory, CollectionCacheFactory, CollectionEntryFactory, CollectionMatcherFactory, CollectionResourceFactory, ColumnExpansionFactory, ColumnInfoFactory, ColumnSetFactory, CreateRequestFactory, ItemCacheFactory, ItemEntryFactory, ItemResourceFactory, LocalCacheFactory, ModuleChangesCompilationFactory, QueryMatcherFactory, QueryParserFactory, RequestColumnExpansionFactory } from './factories';
2
+ import { ApiResponseProcessorFactory, BatchStatusFactory, ChangesCompilationFactory, ChangesProcessorFactory, CollectionCacheFactory, CollectionEntryFactory, CollectionMatcherFactory, CollectionResourceFactory, ColumnExpansionFactory, ColumnInfoFactory, ColumnSetFactory, CreateRequestFactory, ItemCacheFactory, ItemEntryFactory, ItemResourceFactory, LocalCacheFactory, ModuleChangesCompilationFactory, QueryMatcherFactory, QueryParserFactory, RequestColumnExpansionFactory, TemplateFactory } from './factories';
3
3
  import { ApiRequestServiceInterface, AuthInterface, ErrorHandlerInterface, LocalCacheManagerInterface, PromiseInterface } from './interfaces';
4
4
  export declare class RmCore {
5
5
  version: string;
6
6
  noop: typeof noop;
7
7
  apiFormatter: ApiFormatter;
8
- keyService: KeyService;
9
- queryService: QueryService;
10
- columnUtil: ColumnUtil;
8
+ apiRequestService: ApiRequestService;
11
9
  apiResponseProcessorFactory: ApiResponseProcessorFactory;
12
- itemEntryService: ItemEntryService;
13
- itemResourceService: ItemResourceService;
14
- itemAdministrator: ItemAdministrator;
15
- itemRequestService: ItemRequestService;
16
- columnCache: ColumnCache;
17
- columnHandler: ColumnHandler;
18
- itemEntryFactory: ItemEntryFactory;
19
- collectionEntryFactory: CollectionEntryFactory;
10
+ batchStatusFactory: BatchStatusFactory;
11
+ changesCompilationFactory: ChangesCompilationFactory;
12
+ changesProcessorFactory: ChangesProcessorFactory;
20
13
  collectionCacheFactory: CollectionCacheFactory;
21
- collectionMatcherFactory: CollectionMatcherFactory;
22
- itemHandler: ItemHandler;
23
- collectionHandler: CollectionHandler;
24
- lockService: LockService;
14
+ collectionEntryFactory: CollectionEntryFactory;
25
15
  collectionEntryService: CollectionEntryService;
26
- collectionResourceService: CollectionResourceService;
16
+ collectionHandler: CollectionHandler;
17
+ collectionMatcherFactory: CollectionMatcherFactory;
27
18
  collectionResourceFactory: CollectionResourceFactory;
28
- queryMatcherFactory: QueryMatcherFactory;
29
- itemCacheFactory: ItemCacheFactory;
30
- requestColumnExpansionFactory: RequestColumnExpansionFactory;
31
- changesCompilationFactory: ChangesCompilationFactory;
32
- changesProcessorFactory: ChangesProcessorFactory;
19
+ collectionResourceService: CollectionResourceService;
20
+ columnCache: ColumnCache;
33
21
  columnExpansionFactory: ColumnExpansionFactory;
34
- columnSetFactory: ColumnSetFactory;
22
+ columnHandler: ColumnHandler;
35
23
  columnInfoFactory: ColumnInfoFactory;
24
+ columnSetFactory: ColumnSetFactory;
25
+ columnUtil: ColumnUtil;
36
26
  createRequestFactory: CreateRequestFactory;
27
+ itemAdministrator: ItemAdministrator;
28
+ itemCacheFactory: ItemCacheFactory;
29
+ itemEntryFactory: ItemEntryFactory;
30
+ itemEntryService: ItemEntryService;
31
+ itemHandler: ItemHandler;
32
+ itemRequestService: ItemRequestService;
37
33
  itemResourceFactory: ItemResourceFactory;
34
+ itemResourceService: ItemResourceService;
35
+ keyService: KeyService;
38
36
  localCacheFactory: LocalCacheFactory;
37
+ lockService: LockService;
39
38
  moduleChangesCompilationFactory: ModuleChangesCompilationFactory;
39
+ queryMatcherFactory: QueryMatcherFactory;
40
40
  queryParserFactory: QueryParserFactory;
41
- batchStatusFactory: BatchStatusFactory;
41
+ queryService: QueryService;
42
+ requestColumnExpansionFactory: RequestColumnExpansionFactory;
42
43
  socketMessageHandler: SocketMessageHandler;
43
- apiRequestService: ApiRequestService;
44
+ templateFactory: TemplateFactory;
44
45
  constructor(externalApiRequestService: ApiRequestServiceInterface, localCacheManager: LocalCacheManagerInterface, authInterface: AuthInterface, errorHandlerInterface: ErrorHandlerInterface, promiseInterface: PromiseInterface);
45
46
  }
46
47
  export declare function noop(): void;
@@ -1,20 +1,15 @@
1
+ import { LocalCache } from '../classes';
1
2
  import { CollectionResourceFactory } from '../factories';
2
3
  import { CollectionEntry, CollectionResource, ItemResource } from '../models';
3
4
  import { FieldMap, ItemId, ItemIdConversionMap } from '../types';
4
5
  export declare class CollectionEditResource extends CollectionResource {
5
6
  private factory;
6
- constructor(factory: CollectionResourceFactory, collectionEntry: CollectionEntry, options: any);
7
+ constructor(factory: CollectionResourceFactory, collectionEntry: CollectionEntry, options: any, localCache: LocalCache);
7
8
  save(): Promise<ItemIdConversionMap>;
8
9
  moveItems(idArray: ItemId[], destination: CollectionResource, enableCallbacks?: boolean): ItemResource[];
9
10
  removeItems(idArray: ItemId[], callOnRemove?: boolean): Promise<ItemResource[]>;
10
11
  removeItem(itemId: ItemId, callOnRemove?: boolean): Promise<ItemResource>;
11
- addItems(valuesArray: Array<{
12
- fields: FieldMap;
13
- derived: FieldMap;
14
- }>, callOnAdd?: boolean, callOnActivate?: boolean): Promise<any>;
15
- addItem(values: {
16
- fields: FieldMap;
17
- derived: FieldMap;
18
- }, callOnAdd?: boolean, callOnActivate?: boolean): Promise<any>;
12
+ addItems(valuesArray: FieldMap[], callOnAdd?: boolean, callOnActivate?: boolean): Promise<ItemResource[]>;
13
+ addItem(values: FieldMap, callOnAdd?: boolean, callOnActivate?: boolean): Promise<ItemResource>;
19
14
  clear(enableCallbacks: any): ItemResource[] | null;
20
15
  }
@@ -1,7 +1,7 @@
1
- import { ColumnExpansion, ColumnInfo, ColumnSet } from '../classes';
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, ItemId, ItemIdConversionMap, ItemType, RequestColumns } from '../types';
4
+ import { EntryParentNull, FieldMap, ItemId, ItemIdConversionMap, ItemType, RequestColumns } from '../types';
5
5
  export declare class CollectionEntry {
6
6
  private factory;
7
7
  itemType: ItemType;
@@ -9,6 +9,7 @@ export declare class CollectionEntry {
9
9
  id: number;
10
10
  query: any;
11
11
  columns: ColumnSet;
12
+ templateColumns: ColumnSet | null;
12
13
  parent: EntryParentNull;
13
14
  initial: ItemEntry[];
14
15
  items: ItemEntry[];
@@ -31,6 +32,8 @@ export declare class CollectionEntry {
31
32
  forEach(callback: (itemEntry: ItemEntry) => void): void;
32
33
  getItemById(itemId: any): ItemEntry | undefined;
33
34
  getIdArray(accumulator?: ItemId[]): ItemId[];
35
+ createItems(valuesArray: FieldMap[]): Promise<ItemEntry[]>;
36
+ resolveDerivedValues(itemEntries: ItemEntry[], localItemCache: ItemCache): Promise<ItemEntry[]>;
34
37
  addItems(itemEntries: ItemEntry[], resultResource?: CollectionResource | null, updateInitial?: boolean, callOnAdd?: boolean, callOnActivate?: boolean): ItemResource[] | null;
35
38
  private handleAddedItemCallbacks(entriesAddedToInitial, entriesAddedToModified, resultResource?, callOnAdd?, callOnActivate?);
36
39
  removeItems(idArray: ItemId[], resultResource?: CollectionResource | null, updateInitial?: boolean, callOnRemove?: boolean): ItemResource[] | null;
@@ -1,3 +1,4 @@
1
+ import { LocalCache } from '../classes';
1
2
  import { ItemResourceFactory } from '../factories';
2
3
  import { ItemEntry, ItemResource } from '../models';
3
4
  import { ItemResourceItemIdMap } from '../types';
@@ -6,10 +7,11 @@ export declare class CollectionResource {
6
7
  private itemResourceFactory;
7
8
  entry: CollectionEntry;
8
9
  options: any;
10
+ localCache: LocalCache;
9
11
  items: ItemResource[];
10
12
  itemIdMap: ItemResourceItemIdMap;
11
13
  columns: any;
12
- constructor(itemResourceFactory: ItemResourceFactory, entry: CollectionEntry, options: any);
14
+ constructor(itemResourceFactory: ItemResourceFactory, entry: CollectionEntry, options: any, localCache: LocalCache);
13
15
  getItemById(itemId: number): ItemResource;
14
16
  rebuildMap(): void;
15
17
  addItemResources(itemEntries: ItemEntry[]): ItemResource[];
@@ -1,5 +1,6 @@
1
+ import { LocalCache } from '../classes';
1
2
  import { ItemResourceFactory } from '../factories';
2
3
  import { CollectionEntry, CollectionResource } from '../models';
3
4
  export declare class CollectionViewResource extends CollectionResource {
4
- constructor(itemResourceFactory: ItemResourceFactory, collectionEntry: CollectionEntry, options: any);
5
+ constructor(itemResourceFactory: ItemResourceFactory, collectionEntry: CollectionEntry, options: any, localCache: LocalCache);
5
6
  }
@@ -9,7 +9,7 @@ export declare class EditResource extends ItemResource {
9
9
  isNew(): boolean;
10
10
  start(): this;
11
11
  rollback(): this;
12
- commit(initial?: boolean): this;
12
+ commit(callOnChange?: boolean): this;
13
13
  getLocalCopy(): FieldMap | null;
14
14
  copyFields(destination?: FieldMap): FieldMap;
15
15
  setFields(values: FieldMap, callOnChange?: boolean): this;
@@ -24,7 +24,7 @@ export declare class ItemEntry {
24
24
  isDeferred(): boolean;
25
25
  reject(error?: any): this;
26
26
  setFields(initial: FieldMap, derived: FieldMap): this;
27
- setLocalFields(initialValues: FieldMap, conversionMap: ItemIdConversionMap): this;
27
+ setLocalFields(initialValues: FieldMap, conversionMap: ItemIdConversionMap, columns?: ColumnSet): this;
28
28
  clone(conversionMap?: ItemIdConversionMap): ItemEntry;
29
29
  resetDerived(columnIds: any): this;
30
30
  clearResources(): this;
@@ -37,7 +37,7 @@ export declare class ItemEntry {
37
37
  */
38
38
  updateFields(fields: FieldMap, derived?: FieldMap | null, overwrite?: boolean): this;
39
39
  updateItemValue(fields: FieldMap, apiColumn: ResponseColumn, conversionMap: ItemIdConversionMap): this;
40
- updateItemFields(conversionMap: ItemIdConversionMap): this;
40
+ updateItemFields(conversionMap: ItemIdConversionMap, columns?: ColumnSet): this;
41
41
  formatRequest(): FieldMap;
42
42
  setDisplayName(): this;
43
43
  getDisplayName(): string;
@@ -0,0 +1,11 @@
1
+ import { ColumnSet } from '../classes';
2
+ import { TemplateFactory } from '../factories';
3
+ import { ApiResponse, FieldMap, ItemType, ResponseColumnMap } from '../types';
4
+ export declare class Template {
5
+ itemType: ItemType;
6
+ response: ApiResponse;
7
+ fields: FieldMap;
8
+ responseColumns: ResponseColumnMap;
9
+ columns: ColumnSet;
10
+ constructor(factory: TemplateFactory, itemType: ItemType, response: ApiResponse, additionalColumns: ResponseColumnMap);
11
+ }
@@ -6,3 +6,4 @@ export * from './ItemEntry';
6
6
  export * from './ItemResource';
7
7
  export * from './ViewResource';
8
8
  export * from './EditResource';
9
+ export * from './Template';
@@ -94,12 +94,6 @@ export declare type ColumnExpansionResult = {
94
94
  difference: ColumnSet;
95
95
  };
96
96
  export declare type ApiResponse = ApiResponseProcessor;
97
- export interface ApiTemplate {
98
- fields: any;
99
- columns: any;
100
- response: ApiResponse;
101
- responseColumns: ResponseColumnMap;
102
- }
103
97
  export declare type TemplateResponseItemEntryMap = {
104
98
  main: ItemEntry;
105
99
  linked: TemplateResponseLinkedItemEntryMap[];
@@ -108,9 +102,6 @@ export declare type TemplateResponseLinkedItemEntryMap = {
108
102
  itemType: string;
109
103
  itemEntries: ItemEntry[];
110
104
  };
111
- export declare type ApiTemplateItemTypeMap = {
112
- [itemType: string]: ApiTemplate;
113
- };
114
105
  export declare type ItemTypeMap = {
115
106
  [itemType: string]: any;
116
107
  };