@rentman/rm-core 1.7.2 → 1.7.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/changelog.md +4 -0
  2. package/dist/rm-core.js +41 -37
  3. package/dist/rm-core.min.js +1 -1
  4. package/dist/src/classes/ApiFormatter.d.ts +9 -9
  5. package/dist/src/classes/ApiResponseProcessor.d.ts +4 -4
  6. package/dist/src/classes/BatchStatus.d.ts +4 -3
  7. package/dist/src/classes/ChangesCompilation.d.ts +14 -14
  8. package/dist/src/classes/ChangesProcessor.d.ts +2 -2
  9. package/dist/src/classes/CollectionCache.d.ts +16 -16
  10. package/dist/src/classes/CollectionEntryService.d.ts +4 -4
  11. package/dist/src/classes/CollectionHandler.d.ts +13 -13
  12. package/dist/src/classes/CollectionMatcher.d.ts +15 -15
  13. package/dist/src/classes/CollectionResourceService.d.ts +3 -3
  14. package/dist/src/classes/ColumnExpansion.d.ts +6 -6
  15. package/dist/src/classes/ColumnInfo.d.ts +6 -6
  16. package/dist/src/classes/ColumnSet.d.ts +17 -17
  17. package/dist/src/classes/ColumnSubsetCache.d.ts +3 -3
  18. package/dist/src/classes/CreateRequest.d.ts +6 -6
  19. package/dist/src/classes/ItemAdministrator.d.ts +134 -134
  20. package/dist/src/classes/ItemCache.d.ts +13 -13
  21. package/dist/src/classes/ItemEntryService.d.ts +3 -3
  22. package/dist/src/classes/ItemHandler.d.ts +17 -17
  23. package/dist/src/classes/ItemRequestService.d.ts +5 -5
  24. package/dist/src/classes/LocalCache.d.ts +40 -40
  25. package/dist/src/classes/LockService.d.ts +7 -7
  26. package/dist/src/classes/ModuleChangesCompilation.d.ts +2 -2
  27. package/dist/src/classes/RequestColumnExpansion.d.ts +2 -2
  28. package/dist/src/classes/ResourceCache.d.ts +1 -1
  29. package/dist/src/classes/SocketMessageHandler.d.ts +11 -11
  30. package/dist/src/classes/Util.d.ts +1 -1
  31. package/dist/src/factories/BatchStatusFactory.d.ts +2 -1
  32. package/dist/src/factories/ChangesCompilationFactory.d.ts +2 -1
  33. package/dist/src/factories/CollectionEntryFactory.d.ts +1 -1
  34. package/dist/src/factories/CollectionMatcherFactory.d.ts +2 -1
  35. package/dist/src/factories/CollectionResourceFactory.d.ts +13 -12
  36. package/dist/src/factories/ColumnExpansionFactory.d.ts +1 -1
  37. package/dist/src/factories/ColumnInfoFactory.d.ts +3 -3
  38. package/dist/src/factories/ColumnSetFactory.d.ts +2 -2
  39. package/dist/src/factories/ColumnSubsetCacheFactory.d.ts +2 -2
  40. package/dist/src/factories/CreateRequestFactory.d.ts +2 -2
  41. package/dist/src/factories/ItemEntryFactory.d.ts +5 -5
  42. package/dist/src/factories/ItemResourceFactory.d.ts +13 -13
  43. package/dist/src/factories/ModuleChangesCompilationFactory.d.ts +2 -1
  44. package/dist/src/factories/TemplateFactory.d.ts +1 -1
  45. package/dist/src/models/CollectionEditResource.d.ts +4 -4
  46. package/dist/src/models/CollectionEntry.d.ts +29 -29
  47. package/dist/src/models/CollectionResource.d.ts +7 -7
  48. package/dist/src/models/CollectionResourceOptions.d.ts +10 -10
  49. package/dist/src/models/CollectionViewResource.d.ts +3 -2
  50. package/dist/src/models/EditResource.d.ts +3 -3
  51. package/dist/src/models/ItemEntry.d.ts +15 -15
  52. package/dist/src/models/ItemResource.d.ts +8 -8
  53. package/dist/src/models/ItemResourceOptions.d.ts +5 -4
  54. package/dist/src/models/LocalViewResource.d.ts +3 -2
  55. package/dist/src/models/RemoteViewResource.d.ts +3 -2
  56. package/dist/src/models/Template.d.ts +5 -5
  57. package/dist/src/models/ViewResource.d.ts +3 -3
  58. package/dist/src/types/ItemTypesCollection.d.ts +39 -39
  59. package/package.json +1 -1
@@ -3,67 +3,67 @@ import { CollectionEntryFactory } from '../factories';
3
3
  import { Deferred } from '../interfaces';
4
4
  import { CollectionEntryOptions, CollectionResource, ItemEntry } from '../models';
5
5
  import { ApiRequestColumns, CollectionQuery, ConversionMap, EntryParentNull, FieldMap, ItemId, ItemIdConversionMap, ItemType, PromiseInterface, QueryCallback } from '../types';
6
- export declare class CollectionEntry {
6
+ export declare class CollectionEntry<ItemTypeType extends ItemType = any> {
7
7
  private factory;
8
- itemType: ItemType;
8
+ itemType: ItemTypeType;
9
9
  options: CollectionEntryOptions;
10
10
  id: number;
11
11
  parent: EntryParentNull;
12
12
  query: CollectionQuery;
13
- columns: ColumnSet;
13
+ columns: ColumnSet<ItemTypeType>;
14
14
  private templateColumns;
15
- initial: ItemEntry[];
16
- items: ItemEntry[];
15
+ initial: Array<ItemEntry<ItemTypeType>>;
16
+ items: Array<ItemEntry<ItemTypeType>>;
17
17
  deferred?: Deferred<this>;
18
18
  promise: PromiseInterface<this>;
19
19
  reloadQueued: boolean;
20
20
  hasEditResources: boolean;
21
21
  hasItemEditResources: boolean;
22
- constructor(factory: CollectionEntryFactory, itemType: ItemType, options: CollectionEntryOptions);
22
+ constructor(factory: CollectionEntryFactory, itemType: ItemTypeType, options: CollectionEntryOptions);
23
23
  private getResources;
24
24
  defer(): this;
25
25
  isDeferred(): boolean;
26
26
  _resolve(): this;
27
27
  resolve(itemEntryCompound: {
28
- columns: ColumnSet;
29
- initial: ItemEntry[];
30
- modified?: ItemEntry[];
28
+ columns: ColumnSet<ItemTypeType>;
29
+ initial: Array<ItemEntry<ItemTypeType>>;
30
+ modified?: Array<ItemEntry<ItemTypeType>>;
31
31
  }): this;
32
32
  isLocal(): boolean;
33
33
  matchParent(itemType: ItemType, itemId: ItemId): boolean;
34
- forEach(callback: (itemEntry: ItemEntry) => void): void;
35
- getItemById(itemId: ItemId): ItemEntry | undefined;
34
+ forEach(callback: (itemEntry: this['items'][0]) => void): void;
35
+ getItemById(itemId: ItemId): this['items'][0] | undefined;
36
36
  getIdArray(accumulator?: ItemId[]): ItemId[];
37
- createItems(valuesArray: FieldMap[]): PromiseInterface<ItemEntry[]>;
38
- resolveDerivedValues(itemEntries: ItemEntry[], localItemCache: ItemCache): PromiseInterface<ItemEntry[]>;
39
- addItems<U extends CollectionResource>(itemEntries: ItemEntry[], resultResource: U, updateInitial?: boolean, callOnAdd?: boolean, callOnActivate?: boolean): U['items'];
40
- addItems(itemEntries: ItemEntry[], resultResource?: null, updateInitial?: boolean, callOnAdd?: boolean, callOnActivate?: boolean): null;
41
- addItems<U extends CollectionResource>(itemEntries: ItemEntry[], resultResource?: U | null, updateInitial?: boolean, callOnAdd?: boolean, callOnActivate?: boolean): U['items'] | null;
37
+ createItems(valuesArray: FieldMap[]): PromiseInterface<Array<ItemEntry<ItemTypeType>>>;
38
+ resolveDerivedValues(itemEntries: Array<ItemEntry<ItemTypeType>>, localItemCache: ItemCache): PromiseInterface<Array<ItemEntry<ItemTypeType>>>;
39
+ addItems<U extends CollectionResource<ItemTypeType>>(itemEntries: Array<ItemEntry<ItemTypeType>>, resultResource: U, updateInitial?: boolean, callOnAdd?: boolean, callOnActivate?: boolean): U['items'];
40
+ addItems(itemEntries: Array<ItemEntry<ItemTypeType>>, resultResource?: null, updateInitial?: boolean, callOnAdd?: boolean, callOnActivate?: boolean): null;
41
+ addItems<U extends CollectionResource<ItemTypeType>>(itemEntries: Array<ItemEntry<ItemTypeType>>, resultResource?: U | null, updateInitial?: boolean, callOnAdd?: boolean, callOnActivate?: boolean): U['items'] | null;
42
42
  private handleAddedItemCallbacks;
43
- removeItems<U extends CollectionResource>(idArray: ItemId[], resultResource: U, updateInitial?: boolean, callOnRemove?: boolean): U['items'];
43
+ removeItems<U extends CollectionResource<ItemTypeType>>(idArray: ItemId[], resultResource: U, updateInitial?: boolean, callOnRemove?: boolean): U['items'];
44
44
  removeItems(idArray: ItemId[], resultResource?: null, updateInitial?: boolean, callOnRemove?: boolean): null;
45
- removeItems<U extends CollectionResource>(idArray: ItemId[], resultResource?: U | null, updateInitial?: boolean, callOnRemove?: boolean): U['items'] | null;
46
- clear<U extends CollectionResource>(resultResource: U, updateInitial?: boolean, callOnRemove?: boolean): U['items'];
45
+ removeItems<U extends CollectionResource<ItemTypeType>>(idArray: ItemId[], resultResource?: U | null, updateInitial?: boolean, callOnRemove?: boolean): U['items'] | null;
46
+ clear<U extends CollectionResource<ItemTypeType>>(resultResource: U, updateInitial?: boolean, callOnRemove?: boolean): U['items'];
47
47
  clear(resultResource?: null, updateInitial?: boolean, callOnRemove?: boolean): null;
48
- handleRemovedItems<U extends CollectionResource>(filterFunction: (itemEntry: ItemEntry) => boolean, resultResource: U, updateInitial?: boolean, callOnRemove?: boolean): U['items'];
49
- handleRemovedItems(filterFunction: (itemEntry: ItemEntry) => boolean, resultResource?: null, updateInitial?: boolean, callOnRemove?: boolean): null;
50
- handleRemovedItems<U extends CollectionResource>(filterFunction: (itemEntry: ItemEntry) => boolean, resultResource?: U | null, updateInitial?: boolean, callOnRemove?: boolean): U['items'] | null;
48
+ handleRemovedItems<U extends CollectionResource<ItemTypeType>>(filterFunction: (itemEntry: this['items'][0]) => boolean, resultResource: U, updateInitial?: boolean, callOnRemove?: boolean): U['items'];
49
+ handleRemovedItems(filterFunction: (itemEntry: this['items'][0]) => boolean, resultResource?: null, updateInitial?: boolean, callOnRemove?: boolean): null;
50
+ handleRemovedItems<U extends CollectionResource<ItemTypeType>>(filterFunction: (itemEntry: this['items'][0]) => boolean, resultResource?: U | null, updateInitial?: boolean, callOnRemove?: boolean): U['items'] | null;
51
51
  private handleRemovedItemCallbacks;
52
52
  private createBatchStatus;
53
53
  private expandLocal;
54
54
  private expandRemote;
55
55
  expand(newColumns: ApiRequestColumns, localItemCache: ItemCache): PromiseInterface<this>;
56
56
  extendQuery(callback?: QueryCallback): CollectionQuery;
57
- extend<U extends CollectionResource>(queryCallback: QueryCallback, collectionResource?: U, callOnAdd?: boolean): PromiseInterface<U['items']>;
57
+ extend<U extends CollectionResource<ItemTypeType>>(queryCallback: QueryCallback, collectionResource?: U, callOnAdd?: boolean): PromiseInterface<U['items']>;
58
58
  extend(queryCallback: QueryCallback, collectionResource?: null, callOnAdd?: boolean): PromiseInterface<null>;
59
59
  queueReload(): void;
60
- expandColumns(columnExpansion: ColumnExpansion): void;
60
+ expandColumns(columnExpansion: ColumnExpansion<ItemTypeType>): void;
61
61
  expandRequestColumns(requestColumns: ApiRequestColumns): void;
62
62
  getAddedItems(returnItemIds: true): ItemId[];
63
- getAddedItems(returnItemIds?: boolean): ItemEntry[];
63
+ getAddedItems(returnItemIds?: boolean): Array<ItemEntry<ItemTypeType>>;
64
64
  getRemovedItems(returnItemIds: true): ItemId[];
65
- getRemovedItems(returnItemIds?: boolean): ItemEntry[];
66
- getUpdatedItems(): ItemEntry[];
65
+ getRemovedItems(returnItemIds?: boolean): Array<ItemEntry<ItemTypeType>>;
66
+ getUpdatedItems(): Array<ItemEntry<ItemTypeType>>;
67
67
  hasAddedItems(): boolean;
68
68
  hasRemovedItems(): boolean;
69
69
  hasUpdatedItems(): boolean;
@@ -76,7 +76,7 @@ export declare class CollectionEntry {
76
76
  private onAddInitial;
77
77
  private onRemoveInitial;
78
78
  getUpdatedItemColumns(conversionMap: ItemIdConversionMap): {
79
- [columnId: string]: ColumnInfo;
79
+ [columnId: string]: ColumnInfo<ItemTypeType>;
80
80
  };
81
- clone(parent: EntryParentNull, conversionMap?: ItemIdConversionMap): CollectionEntry;
81
+ clone(parent: EntryParentNull, conversionMap?: ItemIdConversionMap): CollectionEntry<ItemTypeType>;
82
82
  }
@@ -1,21 +1,21 @@
1
1
  import { LocalCache } from '../classes';
2
2
  import { CollectionResourceFactory } from '../factories';
3
3
  import { CollectionEntry, CollectionResourceOptions, ItemEntry, ItemResource, LocalViewResource } from '../models';
4
- import { ItemResourceItemIdMap, PromiseInterface, QueryCallback, ResponseColumnMap } from '../types';
5
- export declare abstract class CollectionResource<T extends ItemResource = LocalViewResource> {
4
+ import { ItemResourceItemIdMap, ItemType, PromiseInterface, QueryCallback, ResponseColumnMap } from '../types';
5
+ export declare abstract class CollectionResource<ItemTypeType extends ItemType = any, T extends ItemResource<ItemTypeType> = LocalViewResource<ItemTypeType>> {
6
6
  protected factory: CollectionResourceFactory;
7
- entry: CollectionEntry;
8
- options: CollectionResourceOptions;
7
+ entry: CollectionEntry<ItemTypeType>;
8
+ options: CollectionResourceOptions<ItemTypeType>;
9
9
  level: number;
10
10
  localCache: LocalCache | null;
11
11
  items: T[];
12
12
  columns: ResponseColumnMap;
13
13
  protected itemIdMap: ItemResourceItemIdMap<T>;
14
14
  private readonly onChange;
15
- protected constructor(factory: CollectionResourceFactory, entry: CollectionEntry, options: CollectionResourceOptions, level: number, localCache: LocalCache | null);
15
+ protected constructor(factory: CollectionResourceFactory, entry: CollectionEntry<ItemTypeType>, options: CollectionResourceOptions<ItemTypeType>, level: number, localCache: LocalCache | null);
16
16
  getItemById(itemId: number): T;
17
17
  rebuildMap(): void;
18
- addItemResources(itemEntries: ItemEntry[]): T[];
18
+ addItemResources(itemEntries: Array<ItemEntry<ItemTypeType>>): T[];
19
19
  /**
20
20
  * @param itemEntries
21
21
  * @returns {ItemResource[]}
@@ -23,7 +23,7 @@ export declare abstract class CollectionResource<T extends ItemResource = LocalV
23
23
  * Returns the Itemresources that where removed Collection.
24
24
  * Filters on ItemResource.entry === ItemEntry
25
25
  */
26
- removeItemResources(itemEntries: ItemEntry[]): T[];
26
+ removeItemResources(itemEntries: Array<ItemEntry<ItemTypeType>>): T[];
27
27
  callOnAdd(itemResources: T[]): void;
28
28
  callOnRemove(itemResources: T[]): void;
29
29
  forEach(callback: (itemResource: T) => void): void;
@@ -1,10 +1,10 @@
1
1
  import { CollectionEntry, CollectionResource, ItemEntry, ItemResource } from '../models';
2
- import { ConversionMap, OnChangeFunction } from '../types';
3
- export declare type CollectionResourceCallback = (itemResources: ItemResource[], collectionResource: CollectionResource) => void;
4
- export declare type CollectionResourceInitialCallback = (itemEntries: ItemEntry[], collectionEntry: CollectionEntry) => void;
2
+ import { ConversionMap, ItemType, OnChangeFunction } from '../types';
3
+ export declare type CollectionResourceCallback<ItemTypeType extends ItemType> = (itemResources: Array<ItemResource<ItemTypeType>>, collectionResource: CollectionResource<ItemTypeType>) => void;
4
+ export declare type CollectionResourceInitialCallback<ItemTypeType extends ItemType> = (itemEntries: Array<ItemEntry<ItemTypeType>>, collectionEntry: CollectionEntry<ItemTypeType>) => void;
5
5
  export declare type OnItemsCreatedCallback = (conversionMap: ConversionMap) => void;
6
- export declare type CollectionResourceOptionsInterface = Partial<CollectionResourceOptions>;
7
- export declare class CollectionResourceOptions {
6
+ export declare type CollectionResourceOptionsInterface<ItemTypeType extends ItemType> = Partial<CollectionResourceOptions<ItemTypeType>>;
7
+ export declare class CollectionResourceOptions<ItemTypeType extends ItemType> {
8
8
  editItems: boolean;
9
9
  remoteItems: boolean;
10
10
  editCollection: boolean;
@@ -12,11 +12,11 @@ export declare class CollectionResourceOptions {
12
12
  enableSave: boolean;
13
13
  onItemsCreated: OnItemsCreatedCallback;
14
14
  onChange: OnChangeFunction;
15
- onAdd: CollectionResourceCallback;
16
- onRemove: CollectionResourceCallback;
17
- onAddInitial: CollectionResourceInitialCallback;
18
- onRemoveInitial: CollectionResourceInitialCallback;
15
+ onAdd: CollectionResourceCallback<ItemTypeType>;
16
+ onRemove: CollectionResourceCallback<ItemTypeType>;
17
+ onAddInitial: CollectionResourceInitialCallback<ItemTypeType>;
18
+ onRemoveInitial: CollectionResourceInitialCallback<ItemTypeType>;
19
19
  resourceKey: string | null;
20
20
  custom: any;
21
- constructor(values: CollectionResourceOptionsInterface);
21
+ constructor(values: CollectionResourceOptionsInterface<ItemTypeType>);
22
22
  }
@@ -1,6 +1,7 @@
1
1
  import { LocalCache } from '../classes';
2
2
  import { CollectionResourceFactory } from '../factories';
3
3
  import { CollectionEntry, CollectionResource, CollectionResourceOptions, ItemResource, LocalViewResource } from '../models';
4
- export declare class CollectionViewResource<T extends ItemResource = LocalViewResource> extends CollectionResource<T> {
5
- constructor(collectionResourceFactory: CollectionResourceFactory, collectionEntry: CollectionEntry, options: CollectionResourceOptions, level: number, localCache: LocalCache | null);
4
+ import { ItemType } from '../types';
5
+ export declare class CollectionViewResource<ItemTypeType extends ItemType = any, T extends ItemResource<ItemTypeType> = LocalViewResource<ItemTypeType>> extends CollectionResource<ItemTypeType, T> {
6
+ constructor(collectionResourceFactory: CollectionResourceFactory, collectionEntry: CollectionEntry<ItemTypeType>, options: CollectionResourceOptions<ItemTypeType>, level: number, localCache: LocalCache | null);
6
7
  }
@@ -1,11 +1,11 @@
1
1
  import { LocalCache } from '../classes';
2
2
  import { ItemResourceFactory } from '../factories';
3
3
  import { ItemEntry, ItemResource, ItemResourceOptions } from '../models';
4
- import { FieldMap, PromiseInterface } from '../types';
5
- export declare class EditResource extends ItemResource {
4
+ import { FieldMap, ItemType, PromiseInterface } from '../types';
5
+ export declare class EditResource<ItemTypeType extends ItemType = any> extends ItemResource<ItemTypeType> {
6
6
  protected localCopies: FieldMap[];
7
7
  protected transactions: number;
8
- constructor(factory: ItemResourceFactory, entry: ItemEntry, options: ItemResourceOptions, isNew: boolean, localCache: LocalCache | null);
8
+ constructor(factory: ItemResourceFactory, entry: ItemEntry<ItemTypeType>, options: ItemResourceOptions, isNew: boolean, localCache: LocalCache | null);
9
9
  isNew(): boolean;
10
10
  start(): this;
11
11
  rollback(): this;
@@ -2,11 +2,11 @@ import { ColumnSet } from '../classes';
2
2
  import { ItemEntryFactory } from '../factories';
3
3
  import { Deferred } from '../interfaces';
4
4
  import { ColumnExpansionResult, EntryParentNull, FieldMap, ItemError, ItemId, ItemIdConversionMap, ItemType, PromiseInterface } from '../types';
5
- export declare class ItemEntry {
5
+ export declare class ItemEntry<ItemTypeType extends ItemType = any> {
6
6
  private factory;
7
- itemType: string;
7
+ itemType: ItemTypeType;
8
8
  itemId: ItemId;
9
- columns: ColumnSet;
9
+ columns: ColumnSet<ItemTypeType>;
10
10
  id: number;
11
11
  reloadQueued: boolean;
12
12
  deferRequest: boolean;
@@ -15,22 +15,22 @@ export declare class ItemEntry {
15
15
  initial: FieldMap;
16
16
  modified: FieldMap;
17
17
  derived: FieldMap;
18
- constructor(factory: ItemEntryFactory, itemType: string, itemId: ItemId, columns: ColumnSet);
18
+ constructor(factory: ItemEntryFactory, itemType: ItemTypeType, itemId: ItemId, columns: ColumnSet<ItemTypeType>);
19
19
  private getResources;
20
20
  queueReload(): this;
21
21
  defer(deferRequest?: boolean): this;
22
22
  getPromise(): PromiseInterface<this>;
23
23
  resolve(): this;
24
- resolveDeferred(initial: FieldMap, derived: FieldMap, columns: ColumnSet): this;
24
+ resolveDeferred(initial: FieldMap, derived: FieldMap, columns: ColumnSet<ItemTypeType>): this;
25
25
  isDeferred(): boolean;
26
26
  reject(error?: ItemError): this;
27
27
  setFields(initial: FieldMap, derived: FieldMap): this;
28
- setLocalFields(initialValues: FieldMap, conversionMap: ItemIdConversionMap, columns?: ColumnSet): this;
29
- clone(conversionMap?: ItemIdConversionMap): ItemEntry;
28
+ setLocalFields(initialValues: FieldMap, conversionMap: ItemIdConversionMap, columns?: ColumnSet<ItemTypeType>): this;
29
+ clone(conversionMap?: ItemIdConversionMap): ItemEntry<ItemTypeType>;
30
30
  resetDerived(columnIds: string[]): this;
31
31
  getFields(): FieldMap;
32
- expand(main: FieldMap, derived: FieldMap, columnExpansionResult: ColumnExpansionResult): this;
33
- expandLocal(columnExpansionResult: ColumnExpansionResult): this;
32
+ expand(main: FieldMap, derived: FieldMap, columnExpansionResult: ColumnExpansionResult<ItemTypeType>): this;
33
+ expandLocal(columnExpansionResult: ColumnExpansionResult<ItemTypeType>): this;
34
34
  private setLocalValues;
35
35
  /**
36
36
  * This function assumes the initial, modified, derived properties are already set. It will update the values
@@ -38,7 +38,7 @@ export declare class ItemEntry {
38
38
  */
39
39
  updateFields(fields: FieldMap, derived?: FieldMap | null, overwrite?: boolean): this;
40
40
  private updateItemValues;
41
- updateItemFields(conversionMap: ItemIdConversionMap, columns?: ColumnSet): this;
41
+ updateItemFields(conversionMap: ItemIdConversionMap, columns?: ColumnSet<ItemTypeType>): this;
42
42
  formatRequest(): FieldMap;
43
43
  setDisplayName(): this;
44
44
  getDisplayName(): string;
@@ -46,7 +46,7 @@ export declare class ItemEntry {
46
46
  * @param {Boolean} returnAll Returns all initial values if true
47
47
  * @returns {Object}
48
48
  */
49
- getChanges(returnAll?: boolean): FieldMap;
49
+ getChanges(returnAll?: boolean): FieldMap<any>;
50
50
  isLocal(): boolean;
51
51
  isLockable(): boolean;
52
52
  hasChanges(): boolean;
@@ -62,9 +62,9 @@ export declare class ItemEntry {
62
62
  toJSON(): {
63
63
  id: number;
64
64
  parent: EntryParentNull;
65
- initial: FieldMap;
66
- modified: FieldMap;
67
- derived: FieldMap;
68
- columns: ColumnSet;
65
+ initial: FieldMap<any>;
66
+ modified: FieldMap<any>;
67
+ derived: FieldMap<any>;
68
+ columns: ColumnSet<ItemTypeType>;
69
69
  };
70
70
  }
@@ -1,11 +1,11 @@
1
1
  import { LocalCache } from '../classes';
2
2
  import { ItemResourceFactory } from '../factories';
3
3
  import { ItemEntry, ItemResourceOptions } from '../models';
4
- import { FieldMap, ResponseColumn } from '../types';
5
- export declare abstract class ItemResource {
4
+ import { FieldMap, ItemType, ResponseColumn } from '../types';
5
+ export declare abstract class ItemResource<ItemTypeType extends ItemType = any> {
6
6
  protected readonly factory: ItemResourceFactory;
7
- readonly entry: ItemEntry;
8
- readonly options: ItemResourceOptions;
7
+ readonly entry: ItemEntry<ItemTypeType>;
8
+ readonly options: ItemResourceOptions<ItemResource<ItemTypeType>>;
9
9
  protected readonly _isNew: boolean;
10
10
  protected readonly localCache: LocalCache | null;
11
11
  columns: {
@@ -13,15 +13,15 @@ export declare abstract class ItemResource {
13
13
  };
14
14
  fields: FieldMap;
15
15
  derived: FieldMap;
16
- protected constructor(factory: ItemResourceFactory, entry: ItemEntry, options: ItemResourceOptions, _isNew: boolean, localCache: LocalCache | null);
16
+ protected constructor(factory: ItemResourceFactory, entry: ItemEntry<ItemTypeType>, options: ItemResourceOptions<ItemResource<ItemTypeType>>, _isNew: boolean, localCache: LocalCache | null);
17
17
  isNew(): boolean;
18
18
  isLocal(): boolean;
19
19
  clearResource(): void;
20
20
  deactivate(): void;
21
21
  toJSON(): {
22
22
  columns: string[];
23
- fields: FieldMap;
24
- derived: FieldMap;
25
- entry: ItemEntry;
23
+ fields: FieldMap<any>;
24
+ derived: FieldMap<any>;
25
+ entry: ItemEntry<ItemTypeType>;
26
26
  };
27
27
  }
@@ -1,8 +1,9 @@
1
1
  import { OnChangeFunction } from '../types';
2
- export declare type ItemResourceOptionsInterface = Partial<ItemResourceOptions>;
3
- export declare class ItemResourceOptions {
2
+ import { ItemResource } from './ItemResource';
3
+ export declare type ItemResourceOptionsInterface<ItemResourceType extends ItemResource<any> = ItemResource<any>> = Partial<ItemResourceOptions<ItemResourceType>>;
4
+ export declare class ItemResourceOptions<ItemResourceType extends ItemResource<any> = ItemResource<any>> {
4
5
  edit: boolean;
5
6
  remote: boolean;
6
- onChange: OnChangeFunction;
7
- constructor(values: ItemResourceOptionsInterface);
7
+ onChange: OnChangeFunction<ItemResourceType>;
8
+ constructor(values: ItemResourceOptionsInterface<ItemResourceType>);
8
9
  }
@@ -1,6 +1,7 @@
1
1
  import { LocalCache } from '../classes';
2
2
  import { ItemResourceFactory } from '../factories';
3
3
  import { ItemEntry, ItemResourceOptions, ViewResource } from '../models';
4
- export declare class LocalViewResource extends ViewResource {
5
- constructor(factory: ItemResourceFactory, entry: ItemEntry, options: ItemResourceOptions, isNew: boolean, localCache: LocalCache | null);
4
+ import { ItemType } from '../types';
5
+ export declare class LocalViewResource<ItemTypeType extends ItemType = any> extends ViewResource<ItemTypeType> {
6
+ constructor(factory: ItemResourceFactory, entry: ItemEntry<ItemTypeType>, options: ItemResourceOptions, isNew: boolean, localCache: LocalCache | null);
6
7
  }
@@ -1,6 +1,7 @@
1
1
  import { LocalCache } from '../classes';
2
2
  import { ItemResourceFactory } from '../factories';
3
3
  import { ItemEntry, ItemResourceOptions, ViewResource } from '../models';
4
- export declare class RemoteViewResource extends ViewResource {
5
- constructor(factory: ItemResourceFactory, entry: ItemEntry, options: ItemResourceOptions, isNew: boolean, localCache: LocalCache | null);
4
+ import { ItemType } from '../types';
5
+ export declare class RemoteViewResource<ItemTypeType extends ItemType = any> extends ViewResource<ItemTypeType> {
6
+ constructor(factory: ItemResourceFactory, entry: ItemEntry<ItemTypeType>, options: ItemResourceOptions<RemoteViewResource<ItemTypeType>>, isNew: boolean, localCache: LocalCache | null);
6
7
  }
@@ -1,11 +1,11 @@
1
1
  import { ColumnSet } from '../classes';
2
2
  import { TemplateFactory } from '../factories';
3
3
  import { ApiResponse, FieldMap, ItemType, ResponseColumnMap } from '../types';
4
- export declare class Template {
5
- itemType: ItemType;
4
+ export declare class Template<ItemTypeType extends ItemType = any> {
5
+ itemType: ItemTypeType;
6
6
  response: ApiResponse;
7
- fields: FieldMap;
7
+ fields: FieldMap<ItemTypeType>;
8
8
  responseColumns: ResponseColumnMap;
9
- columns: ColumnSet;
10
- constructor(factory: TemplateFactory, itemType: ItemType, response: ApiResponse, additionalColumns: ResponseColumnMap);
9
+ columns: ColumnSet<ItemTypeType>;
10
+ constructor(factory: TemplateFactory, itemType: ItemTypeType, response: ApiResponse, additionalColumns: ResponseColumnMap);
11
11
  }
@@ -1,8 +1,8 @@
1
1
  import { LocalCache } from '../classes';
2
2
  import { ItemResourceFactory } from '../factories';
3
3
  import { ItemEntry, ItemResource, ItemResourceOptions } from '../models';
4
- import { FieldMap } from '../types';
5
- export declare abstract class ViewResource extends ItemResource {
4
+ import { FieldMap, ItemType } from '../types';
5
+ export declare abstract class ViewResource<ItemTypeType extends ItemType = any> extends ItemResource<ItemTypeType> {
6
6
  fields: Readonly<FieldMap>;
7
- protected constructor(factory: ItemResourceFactory, entry: ItemEntry, options: ItemResourceOptions, isNew: boolean, localCache: LocalCache | null);
7
+ protected constructor(factory: ItemResourceFactory, entry: ItemEntry<ItemTypeType>, options: ItemResourceOptions<ViewResource<ItemTypeType>>, isNew: boolean, localCache: LocalCache | null);
8
8
  }
@@ -6,22 +6,22 @@ export declare type EntryParent = {
6
6
  itemId: number;
7
7
  };
8
8
  export declare type EntryParentNull = EntryParent | null;
9
- export declare type FieldMap = {
9
+ export declare type FieldMap<_ItemTypeType extends ItemType = any> = {
10
10
  [key: string]: any;
11
11
  };
12
12
  export declare type ItemOptionsInterface = ItemEntryOptionsInterface & ItemResourceOptionsInterface;
13
- export declare type CollectionOptionsInterface = CollectionEntryOptionsInterface & CollectionResourceOptionsInterface;
14
- export interface CollectionDefinition {
15
- itemType: ItemType;
13
+ export declare type CollectionOptionsInterface<ItemTypeType extends ItemType = any> = CollectionEntryOptionsInterface & CollectionResourceOptionsInterface<ItemTypeType>;
14
+ export interface CollectionDefinition<ItemTypeType extends ItemType = any> {
15
+ itemType: ItemTypeType;
16
16
  options: {
17
17
  entry: CollectionEntryOptions;
18
- resource: CollectionResourceOptions;
18
+ resource: CollectionResourceOptions<ItemTypeType>;
19
19
  };
20
20
  }
21
- export interface LinkCollectionDefinition extends CollectionDefinition {
21
+ export interface LinkCollectionDefinition<ItemTypeType extends ItemType = any> extends CollectionDefinition<ItemTypeType> {
22
22
  linkField: string;
23
23
  }
24
- export declare type OnChangeFunction = (itemResource: ItemResource, previous?: FieldMap) => void;
24
+ export declare type OnChangeFunction<ItemResourceType extends ItemResource<any> = ItemResource<any>> = (itemResource: ItemResourceType, previous?: FieldMap) => void;
25
25
  export declare const enum StateKeyType {
26
26
  New = "new",
27
27
  Duplicate = "duplicate"
@@ -78,10 +78,10 @@ export interface FunctionChangesResolveSocketMessage extends SocketMessage {
78
78
  [key: string]: any;
79
79
  };
80
80
  }
81
- export declare type ItemResourceItemIdMap<T extends ItemResource = ItemResource> = {
81
+ export declare type ItemResourceItemIdMap<T extends ItemResource<any> = ItemResource<any>> = {
82
82
  [itemId: number]: T;
83
83
  };
84
- export declare type ItemResourcesItemTypeMap<T extends ItemResource = ItemResource> = {
84
+ export declare type ItemResourcesItemTypeMap<T extends ItemResource<any> = ItemResource<any>> = {
85
85
  [itemType: string]: T[];
86
86
  };
87
87
  export declare type ItemId = number;
@@ -91,17 +91,17 @@ export declare type ItemMap<T> = {
91
91
  [itemId: string]: T;
92
92
  };
93
93
  };
94
- export declare type ItemEntryMap = ItemMap<ItemEntry>;
95
- export declare type LinkedItemEntryMap = {
96
- itemType: string;
97
- itemEntries: ItemEntry[];
98
- columnSet: ColumnSet;
94
+ export declare type ItemEntryMap<ItemTypeType extends ItemType> = ItemMap<ItemEntry<ItemTypeType>>;
95
+ export declare type LinkedItemEntryMap<ItemTypeType extends ItemType = any> = {
96
+ itemType: ItemTypeType;
97
+ itemEntries: Array<ItemEntry<ItemTypeType>>;
98
+ columnSet: ColumnSet<ItemTypeType>;
99
99
  };
100
100
  export declare type EntryStatusMap<T> = {
101
101
  [entryStatus: string]: T[];
102
102
  };
103
- export declare type ItemEntryParentIdMap = {
104
- [parentId: number]: ItemEntry[];
103
+ export declare type ItemEntryParentIdMap<ItemTypeType extends ItemType> = {
104
+ [parentId: number]: Array<ItemEntry<ItemTypeType>>;
105
105
  };
106
106
  export declare type ConversionMap = {
107
107
  [itemId: number]: number;
@@ -109,7 +109,7 @@ export declare type ConversionMap = {
109
109
  export declare type ItemIdConversionMap = {
110
110
  [itemType: string]: ConversionMap;
111
111
  };
112
- export declare type CreateRequestParameterMap = ItemMap<any>;
112
+ export declare type CreateRequestParameterMap<T = any> = ItemMap<T>;
113
113
  export declare type ItemError = {
114
114
  message: string;
115
115
  };
@@ -119,22 +119,22 @@ export declare type CollectionQuery = {
119
119
  string: string;
120
120
  };
121
121
  export declare type QueryCallback = (queryParams: QueryParams) => QueryParams;
122
- export declare type CollectionEntryParentIdMap = {
123
- [parentId: number]: CollectionEntry;
122
+ export declare type CollectionEntryParentIdMap<ItemTypeType extends ItemType> = {
123
+ [parentId: number]: CollectionEntry<ItemTypeType>;
124
124
  };
125
- export declare type CollectionResourceParentIdMap<T extends CollectionResource<ItemResource> = CollectionResource<ItemResource>> = {
125
+ export declare type CollectionResourceParentIdMap<T extends CollectionResource<any> = CollectionResource<any>> = {
126
126
  [parentId: number]: T;
127
127
  };
128
- export declare type CollectionMatchResult = {
129
- fitting: CollectionEntry[];
130
- notfitting: CollectionEntry[];
131
- maybe: CollectionEntry[];
128
+ export declare type CollectionMatchResult<ItemTypeType extends ItemType> = {
129
+ fitting: Array<CollectionEntry<ItemTypeType>>;
130
+ notfitting: Array<CollectionEntry<ItemTypeType>>;
131
+ maybe: Array<CollectionEntry<ItemTypeType>>;
132
132
  };
133
- export interface ExtendedCollectionMatchResult extends CollectionMatchResult {
134
- collection: CollectionEntry;
133
+ export interface ExtendedCollectionMatchResult<ItemTypeType extends ItemType> extends CollectionMatchResult<ItemTypeType> {
134
+ collection: CollectionEntry<ItemTypeType>;
135
135
  }
136
- export interface GroupedExtendedCollectionMatchResult {
137
- [collectionId: number]: ExtendedCollectionMatchResult;
136
+ export interface GroupedExtendedCollectionMatchResult<ItemTypeType extends ItemType> {
137
+ [collectionId: number]: ExtendedCollectionMatchResult<ItemTypeType>;
138
138
  }
139
139
  export declare type ResponseColumn = any;
140
140
  export declare type ResponseColumnMap = {
@@ -142,9 +142,9 @@ export declare type ResponseColumnMap = {
142
142
  [columnId: string]: ResponseColumn;
143
143
  };
144
144
  };
145
- export declare type ColumnExpansionResult = {
146
- merged: ColumnSet;
147
- difference: ColumnSet;
145
+ export declare type ColumnExpansionResult<ItemTypeType extends ItemType> = {
146
+ merged: ColumnSet<ItemTypeType>;
147
+ difference: ColumnSet<ItemTypeType>;
148
148
  };
149
149
  export declare type RootColumnMap = {
150
150
  [columnId: string]: {
@@ -153,13 +153,13 @@ export declare type RootColumnMap = {
153
153
  };
154
154
  };
155
155
  export declare type ApiResponse = ApiResponseProcessor;
156
- export declare type TemplateItemResourceMap<T extends ItemResource> = {
156
+ export declare type TemplateItemResourceMap<T extends ItemResource<any>> = {
157
157
  main: T;
158
158
  linked: ItemResourcesItemTypeMap;
159
159
  };
160
- export declare type TemplateItemEntryMap = {
161
- main: ItemEntry;
162
- linked: LinkedItemEntryMap[];
160
+ export declare type TemplateItemEntryMap<ItemTypeType extends ItemType> = {
161
+ main: ItemEntry<ItemTypeType>;
162
+ linked: Array<LinkedItemEntryMap<ItemType>>;
163
163
  };
164
164
  export declare type ItemTypeMap = {
165
165
  [itemType: string]: any;
@@ -196,10 +196,10 @@ export declare type ApiRequestLimit = {
196
196
  export declare type ApiRequestMoveItems = {
197
197
  [itemType: string]: ItemId[];
198
198
  };
199
- export declare type CreateRequestEntry = {
199
+ export declare type CreateRequestEntry<ItemTypeType extends ItemType> = {
200
200
  request: {
201
201
  requestType: 'create';
202
- itemType?: ItemType;
202
+ itemType?: ItemTypeType;
203
203
  parentType?: ItemType;
204
204
  parentId?: {
205
205
  [itemId: string]: ItemId;
@@ -208,6 +208,6 @@ export declare type CreateRequestEntry = {
208
208
  columns: ApiRequestColumnMap;
209
209
  };
210
210
  columns: RequestColumnExpansion;
211
- items: ItemEntryMap;
212
- collections: CollectionMatcher;
211
+ items: ItemEntryMap<ItemTypeType>;
212
+ collections: CollectionMatcher<ItemTypeType>;
213
213
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rentman/rm-core",
3
- "version": "1.7.2",
3
+ "version": "1.7.3",
4
4
  "description": "Rentman core functionalities",
5
5
  "main": "./dist/rm-core.js",
6
6
  "types": "./dist/src/index.d.ts",