@rentman/rm-core 7.1.1 → 8.0.0

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 (81) hide show
  1. package/changelog.md +10 -0
  2. package/dist/rm-core.js +1176 -917
  3. package/dist/rm-core.min.js +2 -2
  4. package/dist/types/classes/ApiFormatter.d.ts +16 -15
  5. package/dist/types/classes/ApiRequestService.d.ts +9 -8
  6. package/dist/types/classes/ApiResponseProcessor.d.ts +12 -13
  7. package/dist/types/classes/ChangesCompilation.d.ts +5 -3
  8. package/dist/types/classes/ChangesDelta.d.ts +5 -4
  9. package/dist/types/classes/ChangesDeltaBase.d.ts +5 -5
  10. package/dist/types/classes/CollectionEntryService.d.ts +5 -4
  11. package/dist/types/classes/CollectionMatcherBase.d.ts +5 -4
  12. package/dist/types/classes/CollectionMatcherCachedCollectionProcessor.d.ts +6 -5
  13. package/dist/types/classes/CollectionResourceService.d.ts +2 -2
  14. package/dist/types/classes/ColumnCache.d.ts +8 -7
  15. package/dist/types/classes/ColumnExpansion.d.ts +3 -2
  16. package/dist/types/classes/ColumnHandler.d.ts +9 -8
  17. package/dist/types/classes/ColumnInfo.d.ts +6 -6
  18. package/dist/types/classes/ColumnSet.d.ts +5 -4
  19. package/dist/types/classes/ColumnSubsetCache.d.ts +3 -2
  20. package/dist/types/classes/ColumnUtil.d.ts +12 -11
  21. package/dist/types/classes/ConversionMapService.d.ts +6 -5
  22. package/dist/types/classes/CreateRequest.d.ts +5 -4
  23. package/dist/types/classes/CreatedChangesDelta.d.ts +7 -6
  24. package/dist/types/classes/InternalChangesDelta.d.ts +4 -3
  25. package/dist/types/classes/ItemCache.d.ts +13 -12
  26. package/dist/types/classes/ItemCreateService.d.ts +5 -4
  27. package/dist/types/classes/ItemEntryService.d.ts +8 -7
  28. package/dist/types/classes/KeyService.d.ts +7 -6
  29. package/dist/types/classes/LockService.d.ts +11 -11
  30. package/dist/types/classes/ModuleChangesCompilation.d.ts +3 -2
  31. package/dist/types/classes/QueryColumnExtractor.d.ts +11 -11
  32. package/dist/types/classes/QueryContainsLocalIdParser.d.ts +10 -10
  33. package/dist/types/classes/QueryLinkedToParser.d.ts +11 -11
  34. package/dist/types/classes/QueryLocallyMatchableParser.d.ts +10 -10
  35. package/dist/types/classes/QueryMatcher.d.ts +4 -3
  36. package/dist/types/classes/QueryParser.d.ts +15 -13
  37. package/dist/types/classes/QueryParserBase.d.ts +14 -23
  38. package/dist/types/classes/QueryParserIdUpdater.d.ts +10 -10
  39. package/dist/types/classes/QueryService.d.ts +4 -9
  40. package/dist/types/classes/RequestBuffer.d.ts +5 -4
  41. package/dist/types/classes/RequestBufferManager.d.ts +5 -4
  42. package/dist/types/classes/RequestColumnExpansion.d.ts +4 -3
  43. package/dist/types/classes/SocketMessageHandler.d.ts +4 -3
  44. package/dist/types/classes/TemplateCache.d.ts +4 -3
  45. package/dist/types/classes/Util.d.ts +1 -1
  46. package/dist/types/classes/cache/AbstractCache.d.ts +8 -8
  47. package/dist/types/classes/cache/CachedQueryHandlerBase.d.ts +13 -12
  48. package/dist/types/classes/cache/CollectionMatcherCachedQueryProcessor.d.ts +6 -5
  49. package/dist/types/classes/cache/ItemHandlerBase.d.ts +14 -11
  50. package/dist/types/classes/cache/server/ServerCache.d.ts +8 -7
  51. package/dist/types/classes/cache/server/ServerCachedQueryHandler.d.ts +6 -6
  52. package/dist/types/classes/cache/server/ServerItemHandler.d.ts +10 -9
  53. package/dist/types/classes/cache/transaction/TransactionCache.d.ts +31 -30
  54. package/dist/types/classes/cache/transaction/TransactionCachedQueryHandler.d.ts +6 -6
  55. package/dist/types/classes/cache/transaction/TransactionCollectionHandler.d.ts +3 -2
  56. package/dist/types/classes/cache/transaction/TransactionItemHandler.d.ts +23 -20
  57. package/dist/types/classes/cache/transaction/TransactionValidator.d.ts +3 -2
  58. package/dist/types/constants.d.ts +1 -1
  59. package/dist/types/factories/CollectionEntryFactory.d.ts +2 -2
  60. package/dist/types/factories/CollectionMatcherFactory.d.ts +4 -4
  61. package/dist/types/factories/CollectionResourceFactory.d.ts +2 -2
  62. package/dist/types/factories/ColumnExpansionFactory.d.ts +3 -2
  63. package/dist/types/factories/ColumnInfoFactory.d.ts +4 -3
  64. package/dist/types/factories/ColumnSetFactory.d.ts +6 -5
  65. package/dist/types/factories/ColumnSubsetCacheFactory.d.ts +3 -2
  66. package/dist/types/factories/CreateRequestFactory.d.ts +2 -2
  67. package/dist/types/factories/ItemEntryFactory.d.ts +2 -2
  68. package/dist/types/factories/ItemResourceFactory.d.ts +2 -2
  69. package/dist/types/factories/QueryMatcherFactory.d.ts +3 -2
  70. package/dist/types/factories/TemplateFactory.d.ts +3 -2
  71. package/dist/types/interfaces/ApiRequestServiceInterface.d.ts +9 -8
  72. package/dist/types/interfaces/AuthInterface.d.ts +2 -1
  73. package/dist/types/interfaces/LinkTreeServiceInterface.d.ts +1 -1
  74. package/dist/types/models/CollectionEntry.d.ts +5 -4
  75. package/dist/types/models/CollectionOptions.d.ts +14 -8
  76. package/dist/types/models/CollectionResource.d.ts +27 -26
  77. package/dist/types/models/ItemEntry.d.ts +2 -2
  78. package/dist/types/models/ItemResource.d.ts +18 -14
  79. package/dist/types/models/Template.d.ts +4 -3
  80. package/dist/types/types/ItemTypesCollection.d.ts +138 -55
  81. package/package.json +5 -3
@@ -1,15 +1,16 @@
1
+ import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
1
2
  import { TransactionItemHandlerDependencyInterface } from '../../../interfaces';
2
3
  import { ItemEntry, ItemEntryOptions } from '../../../models';
3
- import { ApiQuery, ApiRequestColumns, ColumnIdTypeMap, DeregFunction, FieldChangeCallback, FieldMap, ItemId, ItemIdConversionMap, ItemType, ItemTypeMap, ModifyFieldsCallback, PromiseInterface, ResponseColumnItemTypeMap } from '../../../types';
4
+ import { ApiQuery, ApiRequestColumns, DeregFunction, FieldChangeCallback, FieldMap, ItemIdConversionMap, ItemTypeMap, ModifyFieldsCallback, PromiseInterface, ResponseColumnItemTypeMap } from '../../../types';
4
5
  import { ChangesDelta } from '../../ChangesDelta';
5
6
  import { ChangesDeltaBase, ChangesDeltaItemUpdateDelta, ChangesDeltaResult } from '../../ChangesDeltaBase';
6
7
  import { ChangesDeltaItemCreateDelta, ColumnSubsetCache } from '../../index';
7
8
  import { ItemHandlerBase, ProcessItemEntryChangesResult } from '../ItemHandlerBase';
8
9
  import { TransactionCache } from './TransactionCache';
9
10
  import { TransactionValidator } from './TransactionValidator';
10
- export declare type TransactionItemEntryChanges<ItemTypeType extends ItemType = any, Fields extends ColumnIdTypeMap = any> = {
11
- initial: FieldMap<ItemTypeType, Fields>;
12
- changes: FieldMap<ItemTypeType, Fields>;
11
+ export declare type TransactionItemEntryChanges<Fields extends FieldMap = FieldMap> = {
12
+ initial: Fields;
13
+ changes: Fields;
13
14
  };
14
15
  /**
15
16
  * @description
@@ -22,22 +23,24 @@ export declare class TransactionItemHandler extends ItemHandlerBase {
22
23
  private validator?;
23
24
  deletedItems: ItemTypeMap<ItemEntry[]>;
24
25
  itemChanges: {
25
- [itemEntryId: number]: TransactionItemEntryChanges<any, any>;
26
+ [itemEntryId: number]: TransactionItemEntryChanges;
26
27
  };
27
28
  fieldChangeCallbacks: {
28
29
  [itemType: string]: {
29
- [itemId: string]: Array<FieldChangeCallback<any, any>>;
30
+ [itemId: string]: FieldChangeCallback[];
30
31
  };
31
32
  };
32
33
  constructor(dependencies: TransactionItemHandlerDependencyInterface, transaction: TransactionCache, validator?: TransactionValidator | undefined);
33
- registerFieldChangeCallback<ItemTypeType extends ItemType>(itemType: ItemTypeType, itemId: ItemId, callback: FieldChangeCallback<ItemTypeType>): DeregFunction;
34
+ registerFieldChangeCallback<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, itemId: ItemId, callback: FieldChangeCallback<ItemTypeType>): DeregFunction;
34
35
  copyTransactionItemEntryChanges(itemEntryChanges: TransactionItemEntryChanges, entry: ItemEntry): TransactionItemEntryChanges;
35
36
  createItemEntry(createTuple: ChangesDeltaItemCreateDelta): ItemEntry;
36
37
  /**
37
38
  * @description
38
39
  * Gets the local {@link FieldMap changes} of the {@link ItemEntry entry} on the {@link TransactionCache transaction} in a formatted way the API accepts
39
40
  */
40
- formatRequest<ItemEntryType extends ItemEntry>(entry: ItemEntryType): FieldMap<ItemEntryType['itemType']>;
41
+ formatRequest<ItemEntryType extends ItemEntry>(entry: ItemEntryType): {
42
+ [columnId: string]: any;
43
+ };
41
44
  detectChanges(): boolean;
42
45
  /**
43
46
  * @description
@@ -61,20 +64,20 @@ export declare class TransactionItemHandler extends ItemHandlerBase {
61
64
  * @returns
62
65
  * The previous changes {@link FieldMap FieldMap}, returns `null` when the item was not cached or no fields were changed.
63
66
  */
64
- processItemEntryChanges<ItemTypeType extends ItemType = any>(itemEntryChangesTuple: ChangesDeltaItemUpdateDelta<ItemTypeType>, forceOverwrite?: boolean, updateInitial?: boolean, isCalledAfterSocketUpdate?: boolean, createItemChangesIfNoneExist?: boolean): ProcessItemEntryChangesResult<ItemTypeType>;
65
- cloneItemEntries<ItemTypeType extends ItemType>(changesDelta: ChangesDelta, itemEntries: Array<ItemEntry<ItemTypeType>>, conversionMap?: ItemIdConversionMap, modifyFieldsCallback?: ModifyFieldsCallback): ItemId[];
66
- cloneItemEntry<ItemTypeType extends ItemType>(changesDelta: ChangesDelta, sourceEntry: ItemEntry<ItemTypeType>, conversionMap?: ItemIdConversionMap, modifyFieldsCallback?: ModifyFieldsCallback): ItemId;
67
- fetchItemEntriesByQuery<ItemTypeType extends ItemType>(itemType: ItemTypeType, query: ApiQuery, entryOptions: ItemEntryOptions): PromiseInterface<Array<ItemEntry<ItemTypeType>>>;
68
- fetchItemEntry<ItemTypeType extends ItemType>(itemType: ItemTypeType, itemId: ItemId, options: ItemEntryOptions): PromiseInterface<ItemEntry<ItemTypeType>>;
67
+ processItemEntryChanges<ItemTypeType extends ApiEnumItemType = any>(itemEntryChangesTuple: ChangesDeltaItemUpdateDelta<ItemTypeType>, forceOverwrite?: boolean, updateInitial?: boolean, isCalledAfterSocketUpdate?: boolean, createItemChangesIfNoneExist?: boolean): ProcessItemEntryChangesResult<ItemTypeType>;
68
+ cloneItemEntries<ItemTypeType extends ApiEnumItemType>(changesDelta: ChangesDelta, itemEntries: Array<ItemEntry<ItemTypeType>>, conversionMap?: ItemIdConversionMap, modifyFieldsCallback?: ModifyFieldsCallback): ItemId[];
69
+ cloneItemEntry<ItemTypeType extends ApiEnumItemType>(changesDelta: ChangesDelta, sourceEntry: ItemEntry<ItemTypeType>, conversionMap?: ItemIdConversionMap, modifyFieldsCallback?: ModifyFieldsCallback): ItemId;
70
+ fetchItemEntriesByQuery<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, query: ApiQuery, entryOptions: ItemEntryOptions): PromiseInterface<Array<ItemEntry<ItemTypeType>>>;
71
+ fetchItemEntry<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, itemId: ItemId, options: ItemEntryOptions): PromiseInterface<ItemEntry<ItemTypeType>>;
69
72
  /**
70
73
  * @description
71
74
  * Fetches a template and creates a new {@link ItemEntry ItemEntry}, will error if the ItemEntry with the given ItemId already exists
72
75
  */
73
- fetchNewItemEntry<ItemTypeType extends ItemType>(itemType: ItemTypeType, itemId: ItemId, options: ItemEntryOptions): PromiseInterface<ChangesDeltaResult>;
74
- fetchItemEntries<ItemTypeType extends ItemType>(itemType: ItemTypeType, itemIds: ItemId[], options: ItemEntryOptions): PromiseInterface<Array<ItemEntry<ItemTypeType>>>;
75
- fetchTitle(itemType: ItemType, itemId: ItemId): PromiseInterface<string>;
76
- resolveLocalItemEntry<ItemTypeType extends ItemType>(changesDelta: ChangesDelta, itemEntry: ItemEntry<ItemTypeType>, columnSubsetCache: ColumnSubsetCache<ItemTypeType>, options: ItemEntryOptions): PromiseInterface<ItemEntry<ItemTypeType>>;
77
- expandLocalItemEntries<ItemTypeType extends ItemType>(changesDelta: ChangesDeltaBase, itemType: ItemTypeType, itemEntries: Array<ItemEntry<ItemTypeType>>, requestColumns: ApiRequestColumns, responseColumns: ResponseColumnItemTypeMap): PromiseInterface<Array<ItemEntry<ItemTypeType>>>;
76
+ fetchNewItemEntry<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, itemId: ItemId, options: ItemEntryOptions): PromiseInterface<ChangesDeltaResult>;
77
+ fetchItemEntries<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, itemIds: ItemId[], options: ItemEntryOptions): PromiseInterface<Array<ItemEntry<ItemTypeType>>>;
78
+ fetchTitle(itemType: ApiEnumItemType, itemId: ItemId): PromiseInterface<string>;
79
+ resolveLocalItemEntry<ItemTypeType extends ApiEnumItemType>(changesDelta: ChangesDelta, itemEntry: ItemEntry<ItemTypeType>, columnSubsetCache: ColumnSubsetCache<ItemTypeType>, options: ItemEntryOptions): PromiseInterface<ItemEntry<ItemTypeType>>;
80
+ expandLocalItemEntries<ItemTypeType extends ApiEnumItemType>(changesDelta: ChangesDeltaBase, itemType: ItemTypeType, itemEntries: Array<ItemEntry<ItemTypeType>>, requestColumns: ApiRequestColumns, responseColumns: ResponseColumnItemTypeMap): PromiseInterface<Array<ItemEntry<ItemTypeType>>>;
78
81
  /**
79
82
  * @description
80
83
  * Fetches the data for the passed ItemType/ItemId/columns, is able to __fetchCachedQueryItem non-local derived values.
@@ -82,8 +85,8 @@ export declare class TransactionItemHandler extends ItemHandlerBase {
82
85
  * @remark
83
86
  * Assumes the the ItemEntry with the given ItemType-ItemId is already cached
84
87
  */
85
- fetchLocalItemEntryData<ItemTypeType extends ItemType>(changesDelta: ChangesDelta, itemType: ItemTypeType, itemId: ItemId, columnSubsetCache: ColumnSubsetCache<ItemTypeType>, options: ItemEntryOptions): PromiseInterface<any>;
86
- fetchLocalItemEntries<ItemTypeType extends ItemType>(itemType: ItemTypeType, itemIds: ItemId[], options: ItemEntryOptions): PromiseInterface<Array<ItemEntry<ItemTypeType>>>;
88
+ fetchLocalItemEntryData<ItemTypeType extends ApiEnumItemType>(changesDelta: ChangesDelta, itemType: ItemTypeType, itemId: ItemId, columnSubsetCache: ColumnSubsetCache<ItemTypeType>, options: ItemEntryOptions): PromiseInterface<any>;
89
+ fetchLocalItemEntries<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, itemIds: ItemId[], options: ItemEntryOptions): PromiseInterface<Array<ItemEntry<ItemTypeType>>>;
87
90
  private getColumnDifference;
88
91
  private expandLocalItemEntry;
89
92
  private getLocalValues;
@@ -1,5 +1,6 @@
1
+ import { ApiEnumItemType } from '@rentman/backend-types';
1
2
  import { ItemEntry } from '../../../models/index';
2
- import { FieldMap, ItemType, PromiseInterface } from '../../../types/index';
3
+ import { FieldMap, PromiseInterface } from '../../../types/index';
3
4
  import { TransactionCache, TransactionErrorLevel } from './TransactionCache';
4
5
  export interface TransactionValidatorFactory {
5
6
  construct(transaction: TransactionCache): TransactionValidator;
@@ -27,7 +28,7 @@ export declare abstract class TransactionValidator {
27
28
  * @param fields
28
29
  * @param previous
29
30
  */
30
- abstract validateItem<ItemTypeType extends ItemType>(itemEntry: ItemEntry<ItemTypeType>, fields: FieldMap<ItemTypeType>, previous: FieldMap<ItemTypeType>): void;
31
+ abstract validateItem<ItemTypeType extends ApiEnumItemType>(itemEntry: ItemEntry<ItemTypeType>, fields: FieldMap<ItemTypeType>, previous: FieldMap<ItemTypeType>): void;
31
32
  protected setGlobalError(key: string, isInvalid: boolean | PromiseInterface<boolean>, saveButtonErrorTranslationFn: () => string, level: TransactionErrorLevel): void;
32
33
  protected setItemError(itemEntryId: ItemEntry['id'], columnId: string, errorKey: string, isInvalid: boolean | PromiseInterface<boolean>, fieldErrorTranslationFn: () => string, saveButtonErrorTranslationFn: () => string, level: TransactionErrorLevel): void;
33
34
  private getHash;
@@ -1,4 +1,4 @@
1
- export declare const ALL_PERMISSIONS = "7";
1
+ export declare const ALL_PERMISSIONS = 7;
2
2
  export declare const COLUMN_SEPERATOR = ">";
3
3
  export declare const RENDER_AS_SEPERATOR = ":";
4
4
  export declare const NEW_PREFIX: string;
@@ -1,7 +1,7 @@
1
+ import { ApiEnumItemType, ApiFields } from '@rentman/backend-types';
1
2
  import { CollectionEntryService, ColumnCache, KeyService, QueryService } from '../classes';
2
3
  import { CollectionEntry } from '../models/';
3
4
  import { CollectionOptionsInterface } from '../models/CollectionOptions';
4
- import { ColumnIdTypeMap, ItemType } from '../types/';
5
5
  import { ColumnSetFactory } from './ColumnSetFactory';
6
6
  export declare class CollectionEntryFactory {
7
7
  private collectionEntryService;
@@ -10,5 +10,5 @@ export declare class CollectionEntryFactory {
10
10
  private queryService;
11
11
  private columnCache;
12
12
  constructor(collectionEntryService: CollectionEntryService, columnSetFactory: ColumnSetFactory, keyService: KeyService, queryService: QueryService, columnCache: ColumnCache);
13
- construct<ItemTypeType extends ItemType, Fields extends ColumnIdTypeMap = any>(itemType: ItemTypeType, options: CollectionOptionsInterface<ItemTypeType, Fields>): CollectionEntry<ItemTypeType, Fields>;
13
+ construct<ItemTypeType extends ApiEnumItemType, ColumnIds extends Array<keyof ApiFields[ItemTypeType]> = Array<keyof ApiFields[ItemTypeType]>>(itemType: ItemTypeType, options: CollectionOptionsInterface<ItemTypeType, ColumnIds>): CollectionEntry<ItemTypeType, ColumnIds>;
14
14
  }
@@ -1,3 +1,4 @@
1
+ import { ApiEnumItemType } from '@rentman/backend-types';
1
2
  import { AbstractCache, ApiRequestService, QueryService } from '../classes';
2
3
  import { CachedQueryItem } from '../classes/cache/CachedQueryHandlerBase';
3
4
  import { CollectionMatcherCachedQueryProcessor } from '../classes/cache/CollectionMatcherCachedQueryProcessor';
@@ -5,15 +6,14 @@ import { CollectionMatcherCachedCollectionProcessor } from '../classes/Collectio
5
6
  import { QueryMatcherFactory } from '../factories';
6
7
  import { PromiseLibraryInterface } from '../interfaces';
7
8
  import { CollectionResource } from '../models';
8
- import { ItemType } from '../types';
9
9
  export declare class CollectionMatcherFactory {
10
10
  private queryMatcherFactory;
11
11
  private queryService;
12
12
  private apiRequestService;
13
13
  private promiseService;
14
14
  constructor(queryMatcherFactory: QueryMatcherFactory, queryService: QueryService, apiRequestService: ApiRequestService, promiseService: PromiseLibraryInterface);
15
- constructCachedCollectionProcessor(transaction: AbstractCache, getCollections: (itemType: ItemType) => {
16
- [queryString: string]: CollectionResource[];
15
+ constructCachedCollectionProcessor(transaction: AbstractCache, getCollections: <ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType) => {
16
+ [queryString: string]: Array<CollectionResource<ItemTypeType>>;
17
17
  }): CollectionMatcherCachedCollectionProcessor;
18
- constructCachedQueryProcessor(transaction: AbstractCache, getQueries: (itemType: ItemType) => CachedQueryItem[]): CollectionMatcherCachedQueryProcessor;
18
+ constructCachedQueryProcessor(transaction: AbstractCache, getQueries: <ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType) => Array<CachedQueryItem<ItemTypeType>>): CollectionMatcherCachedQueryProcessor;
19
19
  }
@@ -1,9 +1,9 @@
1
+ import { ApiEnumItemType } from '@rentman/backend-types';
1
2
  import { ItemEntryService, KeyService, QueryService } from '../classes';
2
3
  import { TransactionCache } from '../classes/cache/transaction/TransactionCache';
3
4
  import { ErrorHandlerInterface, ExceptionHandlerInterface, PromiseLibraryInterface } from '../interfaces';
4
5
  import { CollectionResource, ItemEntry } from '../models';
5
6
  import { CollectionOptionsInterface } from '../models/CollectionOptions';
6
- import { ItemType } from '../types';
7
7
  import { ChangesDeltaFactory } from './ChangesDeltaFactory';
8
8
  import { CollectionEntryFactory } from './CollectionEntryFactory';
9
9
  import { ColumnSetFactory } from './ColumnSetFactory';
@@ -18,5 +18,5 @@ export declare class CollectionResourceFactory {
18
18
  queryService: QueryService;
19
19
  columnSetFactory: ColumnSetFactory;
20
20
  constructor(errorHandler: ErrorHandlerInterface, exceptionHandler: ExceptionHandlerInterface, keyService: KeyService, promiseService: PromiseLibraryInterface, changesDeltaFactory: ChangesDeltaFactory, itemEntryService: ItemEntryService, collectionEntryFactory: CollectionEntryFactory, queryService: QueryService, columnSetFactory: ColumnSetFactory);
21
- construct<ItemTypeType extends ItemType>(itemType: ItemTypeType, options: CollectionOptionsInterface<ItemTypeType>, transaction: TransactionCache, initialItemEntries: Array<ItemEntry<ItemTypeType>>): CollectionResource<ItemTypeType>;
21
+ construct<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, options: CollectionOptionsInterface<ItemTypeType>, transaction: TransactionCache, initialItemEntries: Array<ItemEntry<ItemTypeType>>): CollectionResource<ItemTypeType>;
22
22
  }
@@ -1,8 +1,9 @@
1
+ import { ApiEnumItemType } from '@rentman/backend-types';
1
2
  import { ColumnExpansion } from '../classes';
2
3
  import { ColumnInfoFactory } from '../factories';
3
- import { ApiRequestColumns, ItemType, ResponseColumnItemTypeMap } from '../types';
4
+ import { ApiRequestColumns, ResponseColumnItemTypeMap } from '../types';
4
5
  export declare class ColumnExpansionFactory {
5
6
  private columnInfoFactory;
6
7
  constructor(columnInfoFactory: ColumnInfoFactory);
7
- construct<ItemTypeType extends ItemType>(itemType: ItemTypeType, requestColumns: ApiRequestColumns, responseColumns: ResponseColumnItemTypeMap): ColumnExpansion<ItemTypeType>;
8
+ construct<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, requestColumns: ApiRequestColumns, responseColumns: ResponseColumnItemTypeMap): ColumnExpansion<ItemTypeType>;
8
9
  }
@@ -1,7 +1,8 @@
1
+ import { ApiEnumItemType, ApiFields, GetColumnType } from '@rentman/backend-types';
1
2
  import { ColumnInfo } from '../classes';
2
- import { ItemType, ResponseColumn, RootColumnMap } from '../types';
3
+ import { RootColumnMap } from '../types';
3
4
  export declare class ColumnInfoFactory {
4
5
  constructor();
5
- construct<ItemTypeType extends ItemType>(apiColumn: ResponseColumn, parent: ColumnInfo<ItemTypeType> | null): ColumnInfo<ItemTypeType>;
6
- constructFromRootMap<ItemTypeType extends ItemType>(rootColumnMap: RootColumnMap, parent?: ColumnInfo<ItemTypeType> | null): ColumnInfo<ItemTypeType>[];
6
+ construct<ItemTypeType extends ApiEnumItemType = any, ColumnId extends keyof ApiFields[ItemTypeType] = any>(apiColumn: GetColumnType<ItemTypeType, ColumnId>, parent: ColumnInfo | null): ColumnInfo<ItemTypeType>;
7
+ constructFromRootMap<ItemTypeType extends ApiEnumItemType = any, ColumnIds extends Array<keyof ApiFields[ItemTypeType]> = any>(rootColumnMap: RootColumnMap<ItemTypeType, ColumnIds>, parent?: ColumnInfo | null): ColumnInfo<ItemTypeType, ColumnIds[number]>[];
7
8
  }
@@ -1,15 +1,16 @@
1
+ import { ApiEnumItemType } from '@rentman/backend-types';
1
2
  import { ColumnHandler, ColumnSet, ColumnUtil } from '../classes';
2
3
  import { ColumnInfoFactory } from '../factories';
3
- import { ApiRequestColumns, ItemType, ResponseColumnItemTypeMap } from '../types';
4
+ import { ApiRequestColumns, ResponseColumnItemTypeMap } from '../types';
4
5
  export declare class ColumnSetFactory {
5
6
  private columnHandler;
6
7
  private columnUtil;
7
8
  private columnInfoFactory;
8
9
  constructor(columnHandler: ColumnHandler, columnUtil: ColumnUtil, columnInfoFactory: ColumnInfoFactory);
9
- constructStub<ItemTypeType extends ItemType>(itemType: ItemTypeType, requestColumns: ApiRequestColumns): ColumnSet<ItemTypeType>;
10
- resolveStub<ItemTypeType extends ItemType>(columnSet: ColumnSet, responseColumns: ResponseColumnItemTypeMap, enableCaching?: boolean, includeIdColumn?: boolean): ColumnSet<ItemTypeType>;
11
- construct<ItemTypeType extends ItemType>(itemType: ItemTypeType, requestColumns: ApiRequestColumns, responseColumns: ResponseColumnItemTypeMap, enableCaching?: boolean, includeIdColumn?: boolean): ColumnSet<ItemTypeType>;
12
- constructFromResponse<ItemTypeType extends ItemType>(itemType: ItemType, responseColumns: ResponseColumnItemTypeMap, enableCaching?: boolean): ColumnSet<ItemTypeType>;
10
+ constructStub<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, requestColumns: ApiRequestColumns): ColumnSet<ItemTypeType>;
11
+ resolveStub<ItemTypeType extends ApiEnumItemType>(columnSet: ColumnSet<ItemTypeType>, responseColumns: ResponseColumnItemTypeMap, enableCaching?: boolean, includeIdColumn?: boolean): ColumnSet<ItemTypeType>;
12
+ construct<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, requestColumns: ApiRequestColumns, responseColumns: ResponseColumnItemTypeMap, enableCaching?: boolean, includeIdColumn?: boolean): ColumnSet<ItemTypeType>;
13
+ constructFromResponse<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, responseColumns: ResponseColumnItemTypeMap, enableCaching?: boolean): ColumnSet<ItemTypeType>;
13
14
  private processResponseColumns;
14
15
  private constructRequestColumnsFromRootColumnMap;
15
16
  private expandRootColumnMapFromResponseColumns;
@@ -1,8 +1,9 @@
1
+ import { ApiEnumItemType } from '@rentman/backend-types';
1
2
  import { ColumnCache, ColumnSubsetCache, ColumnUtil } from '../classes';
2
- import { ApiRequestColumns, ItemType } from '../types';
3
+ import { ApiRequestColumns } from '../types';
3
4
  export declare class ColumnSubsetCacheFactory {
4
5
  private columnUtil;
5
6
  private columnCache;
6
7
  constructor(columnUtil: ColumnUtil, columnCache: ColumnCache);
7
- construct<ItemTypeType extends ItemType>(itemType: ItemTypeType, requestColumns: ApiRequestColumns): ColumnSubsetCache<ItemTypeType>;
8
+ construct<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, requestColumns: ApiRequestColumns): ColumnSubsetCache<ItemTypeType>;
8
9
  }
@@ -1,11 +1,11 @@
1
+ import { ApiEnumItemType } from '@rentman/backend-types';
1
2
  import { ApiFormatter, CreateCompilation, CreateRequest, KeyService } from '../classes';
2
3
  import { TransactionCache } from '../classes/cache/transaction/TransactionCache';
3
4
  import { RequestColumnExpansionFactory } from '../factories';
4
- import { ItemType } from '../types';
5
5
  export declare class CreateRequestFactory {
6
6
  private apiFormatter;
7
7
  private keyService;
8
8
  private requestColumnExpansionFactory;
9
9
  constructor(apiFormatter: ApiFormatter, keyService: KeyService, requestColumnExpansionFactory: RequestColumnExpansionFactory);
10
- construct<ItemTypeType extends ItemType>(compilation: CreateCompilation, transaction: TransactionCache, breakupByParent?: boolean): CreateRequest<ItemTypeType>;
10
+ construct<ItemTypeType extends ApiEnumItemType>(compilation: CreateCompilation, transaction: TransactionCache, breakupByParent?: boolean): CreateRequest<ItemTypeType>;
11
11
  }
@@ -1,8 +1,8 @@
1
+ import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
1
2
  import { ApiFormatter, ColumnSet, ItemEntryService, KeyService } from '../classes';
2
3
  import { ColumnSetFactory } from '../factories';
3
4
  import { ExceptionHandlerInterface, PromiseLibraryInterface } from '../interfaces';
4
5
  import { ItemEntry } from '../models';
5
- import { ItemId, ItemType } from '../types';
6
6
  export declare class ItemEntryFactory {
7
7
  apiFormatter: ApiFormatter;
8
8
  columnSetFactory: ColumnSetFactory;
@@ -11,5 +11,5 @@ export declare class ItemEntryFactory {
11
11
  keyService: KeyService;
12
12
  promiseService: PromiseLibraryInterface;
13
13
  constructor(apiFormatter: ApiFormatter, columnSetFactory: ColumnSetFactory, exceptionHandler: ExceptionHandlerInterface, itemEntryService: ItemEntryService, keyService: KeyService, promiseService: PromiseLibraryInterface);
14
- construct<ItemTypeType extends ItemType>(itemId: ItemId, columnInfo: ColumnSet<ItemTypeType>): ItemEntry<ItemTypeType>;
14
+ construct<ItemTypeType extends ApiEnumItemType>(itemId: ItemId, columnInfo: ColumnSet<ItemTypeType>): ItemEntry<ItemTypeType>;
15
15
  }
@@ -1,8 +1,8 @@
1
+ import { ApiEnumItemType, ApiFields } from '@rentman/backend-types';
1
2
  import { ApiFormatter, ColumnUtil } from '../classes';
2
3
  import { TransactionCache } from '../classes/cache/transaction/TransactionCache';
3
4
  import { ErrorHandlerInterface, ExceptionHandlerInterface, PromiseLibraryInterface } from '../interfaces';
4
5
  import { ItemEntry, ItemResource } from '../models';
5
- import { ColumnIdTypeMap, ItemType } from '../types';
6
6
  export declare class ItemResourceFactory {
7
7
  apiFormatter: ApiFormatter;
8
8
  errorHandler: ErrorHandlerInterface;
@@ -10,5 +10,5 @@ export declare class ItemResourceFactory {
10
10
  exceptionHandler: ExceptionHandlerInterface;
11
11
  columnUtil: ColumnUtil;
12
12
  constructor(apiFormatter: ApiFormatter, errorHandler: ErrorHandlerInterface, promiseService: PromiseLibraryInterface, exceptionHandler: ExceptionHandlerInterface, columnUtil: ColumnUtil);
13
- construct<ItemTypeType extends ItemType, Fields extends ColumnIdTypeMap = any>(itemEntry: ItemEntry<ItemTypeType>, transaction: TransactionCache, isNew?: boolean): ItemResource<ItemTypeType, Fields>;
13
+ construct<ItemTypeType extends ApiEnumItemType, ColumnIds extends Array<keyof ApiFields[ItemTypeType]> = Array<keyof ApiFields[ItemTypeType]>>(itemEntry: ItemEntry<ItemTypeType>, transaction: TransactionCache, isNew?: boolean): ItemResource<ItemTypeType, ColumnIds>;
14
14
  }
@@ -1,7 +1,8 @@
1
+ import { ApiEnumItemType } from '@rentman/backend-types';
1
2
  import { ApiFormatter, QueryMatcher } from '../classes';
2
- import { EntryParentNull, FieldMap, ItemType } from '../types';
3
+ import { EntryParentNull, FieldMap } from '../types';
3
4
  export declare class QueryMatcherFactory {
4
5
  private apiFormatter;
5
6
  constructor(apiFormatter: ApiFormatter);
6
- construct(itemType: ItemType, fields: FieldMap, parent: EntryParentNull): QueryMatcher;
7
+ construct(itemType: ApiEnumItemType, fields: FieldMap, parent: EntryParentNull): QueryMatcher;
7
8
  }
@@ -1,10 +1,11 @@
1
+ import { ApiEnumItemType } from '@rentman/backend-types';
1
2
  import { ColumnUtil } from '../classes';
2
3
  import { ColumnSetFactory } from '../factories';
3
4
  import { Template } from '../models';
4
- import { ApiRequestColumnMap, ApiResponse, ItemType, ResponseColumnItemTypeMap } from '../types';
5
+ import { ApiRequestColumnMap, ApiResponse, ResponseColumnItemTypeMap } from '../types';
5
6
  export declare class TemplateFactory {
6
7
  columnSetFactory: ColumnSetFactory;
7
8
  columnUtil: ColumnUtil;
8
9
  constructor(columnSetFactory: ColumnSetFactory, columnUtil: ColumnUtil);
9
- construct<ItemTypeType extends ItemType>(itemType: ItemTypeType, response: ApiResponse, additionalRequestColumns: ApiRequestColumnMap, additionalResponseColumns: ResponseColumnItemTypeMap): Template<ItemTypeType>;
10
+ construct<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, response: ApiResponse, additionalRequestColumns: ApiRequestColumnMap, additionalResponseColumns: ResponseColumnItemTypeMap): Template<ItemTypeType>;
10
11
  }
@@ -1,11 +1,12 @@
1
- import { ApiRequestColumnMap, ApiRequestItemMap, ApiRequestLimit, ApiRequestMoveItems, ItemId, ItemType, PromiseInterface } from '../types';
1
+ import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
2
+ import { ApiRequestColumnMap, ApiRequestItemMap, ApiRequestLimit, ApiRequestMoveItems, PromiseInterface } from '../types';
2
3
  export interface ApiRequestServiceInterface {
3
- template(itemType: ItemType, params: any): PromiseInterface<any>;
4
- create(itemType: ItemType, itemId: ItemId, values: any, parentType?: ItemType, parentId?: ItemId): PromiseInterface<any>;
5
- delete(itemType: ItemType, itemIds: ItemId[]): PromiseInterface<any>;
6
- updateItems(itemType: ItemType, items: ApiRequestItemMap, columns: ApiRequestColumnMap): PromiseInterface<any>;
4
+ template(itemType: ApiEnumItemType, params: any): PromiseInterface<any>;
5
+ create(itemType: ApiEnumItemType, itemId: ItemId, values: any, parentType?: ApiEnumItemType, parentId?: ItemId): PromiseInterface<any>;
6
+ delete(itemType: ApiEnumItemType, itemIds: ItemId[]): PromiseInterface<any>;
7
+ updateItems(itemType: ApiEnumItemType, items: ApiRequestItemMap, columns: ApiRequestColumnMap): PromiseInterface<any>;
7
8
  requestSkeleton(params: any, requestCanceler?: PromiseInterface<any>): 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>;
9
+ moveItems(parentType: ApiEnumItemType, parentId: ItemId, items: ApiRequestMoveItems): PromiseInterface<any>;
10
+ columns(itemType: ApiEnumItemType, columns: ApiRequestColumnMap, params?: any): PromiseInterface<any>;
11
+ query(itemType: ApiEnumItemType, query: any, columns: ApiRequestColumnMap, limit?: ApiRequestLimit): PromiseInterface<any>;
11
12
  }
@@ -1,9 +1,10 @@
1
+ import { ItemId } from '@rentman/backend-types';
1
2
  export interface AuthInterface {
2
3
  /**
3
4
  * @returns {string} A uniquely identifying string for each user of the api
4
5
  */
5
6
  getUniqueUserId(): string;
6
- getUserId(): number;
7
+ getUserId(): ItemId;
7
8
  getUserAccountname(): string;
8
9
  getUserDisplayname(): string;
9
10
  }
@@ -1,4 +1,4 @@
1
- import { ApiLinkTree } from '../types';
1
+ import { ApiLinkTree } from '..';
2
2
  export interface LinkTreeServiceInterface {
3
3
  get: () => ApiLinkTree;
4
4
  }
@@ -1,22 +1,23 @@
1
+ import { ApiEnumItemType, ApiFields } from '@rentman/backend-types';
1
2
  import { CollectionEntryService, ColumnCache, ColumnExpansion, ColumnSet, KeyService, QueryService } from '../classes';
2
3
  import { ColumnSetFactory } from '../factories';
3
- import { CollectionQuery, ColumnIdTypeMap, EntryParentNull, ItemType, PromiseInterface } from '../types';
4
+ import { CollectionQuery, EntryParentNull, PromiseInterface } from '../types';
4
5
  import { CollectionOptions } from './CollectionOptions';
5
- export declare class CollectionEntry<ItemTypeType extends ItemType = any, Fields extends ColumnIdTypeMap = any> {
6
+ export declare class CollectionEntry<ItemTypeType extends ApiEnumItemType = any, ColumnIds extends Array<keyof ApiFields[ItemTypeType]> = Array<keyof ApiFields[ItemTypeType]>> {
6
7
  private collectionEntryService;
7
8
  private queryService;
8
9
  private columnSetFactory;
9
10
  private keyService;
10
11
  private columnCache;
11
12
  itemType: ItemTypeType;
12
- options: CollectionOptions<ItemTypeType, Fields>;
13
+ options: CollectionOptions<ItemTypeType, ColumnIds>;
13
14
  id: number;
14
15
  parent: EntryParentNull;
15
16
  query: CollectionQuery;
16
17
  columns: ColumnSet<ItemTypeType>;
17
18
  reloadQueued: boolean;
18
19
  promise: PromiseInterface<this>;
19
- constructor(collectionEntryService: CollectionEntryService, queryService: QueryService, columnSetFactory: ColumnSetFactory, keyService: KeyService, columnCache: ColumnCache, itemType: ItemTypeType, options: CollectionOptions<ItemTypeType, Fields>);
20
+ constructor(collectionEntryService: CollectionEntryService, queryService: QueryService, columnSetFactory: ColumnSetFactory, keyService: KeyService, columnCache: ColumnCache, itemType: ItemTypeType, options: CollectionOptions<ItemTypeType, ColumnIds>);
20
21
  isLocal(): boolean;
21
22
  queueReload(): void;
22
23
  expandColumns(columnExpansion: ColumnExpansion<ItemTypeType>): void;
@@ -1,18 +1,24 @@
1
+ import { ApiEnumItemType, ApiFields } from '@rentman/backend-types';
1
2
  import { CollectionResource, ItemResource } from '../models';
2
- import { ApiQuery, ApiRequestColumns, ApiRequestLimit, ColumnIdTypeMap, EntryParentNull, FieldChangeCallback, ItemType } from '../types';
3
- export declare type CollectionResourceCallback<ItemTypeType extends ItemType, Fields extends ColumnIdTypeMap = any> = (itemResources: Array<ItemResource<ItemTypeType, Fields>>, collectionResource: CollectionResource<ItemTypeType, Fields>, isCalledAfterSocketUpdate: boolean) => void;
4
- export declare type CollectionResourceOnAddCallback<ItemTypeType extends ItemType, Fields extends ColumnIdTypeMap = any> = (itemResources: Array<ItemResource<ItemTypeType, Fields>>, collectionResource: CollectionResource<ItemTypeType, Fields>, isInitialCall: boolean, isCalledAfterSocketUpdate: boolean) => void;
5
- export declare type CollectionOptionsInterface<ItemTypeType extends ItemType, Fields extends ColumnIdTypeMap = any> = Partial<CollectionOptions<ItemTypeType, Fields>>;
6
- export declare class CollectionOptions<ItemTypeType extends ItemType = any, Fields extends ColumnIdTypeMap = any> {
3
+ import { ApiQuery, ApiRequestColumns, ApiRequestLimit, EntryParentNull, FieldChangeCallback } from '../types';
4
+ export declare type CollectionResourceCallback<ItemTypeType extends ApiEnumItemType, ColumnIds extends Array<keyof ApiFields[ItemTypeType]> = Array<keyof ApiFields[ItemTypeType]>> = (itemResources: Array<ItemResource<ItemTypeType, ColumnIds>>, collectionResource: CollectionResource<ItemTypeType, ColumnIds>, isCalledAfterSocketUpdate: boolean) => void;
5
+ export declare type CollectionResourceOnAddCallback<ItemTypeType extends ApiEnumItemType, ColumnIds extends Array<keyof ApiFields[ItemTypeType]> = Array<keyof ApiFields[ItemTypeType]>> = (itemResources: Array<ItemResource<ItemTypeType, ColumnIds>>, collectionResource: CollectionResource<ItemTypeType, ColumnIds>, isInitialCall: boolean, isCalledAfterSocketUpdate: boolean) => void;
6
+ export declare type CollectionOptionsInterface<ItemTypeType extends ApiEnumItemType, ColumnIds extends Array<keyof ApiFields[ItemTypeType]> = Array<keyof ApiFields[ItemTypeType]>> = Partial<CollectionOptions<ItemTypeType, ColumnIds>>;
7
+ export declare class CollectionOptions<ItemTypeType extends ApiEnumItemType = any, ColumnIds extends Array<keyof ApiFields[ItemTypeType]> = Array<keyof ApiFields[ItemTypeType]>> {
7
8
  columns: ApiRequestColumns;
8
9
  query: ApiQuery | null;
9
10
  queryColumns: ApiRequestColumns;
10
11
  parent: EntryParentNull;
11
12
  limit: ApiRequestLimit | null;
12
- onAdd: CollectionResourceOnAddCallback<ItemTypeType, Fields>;
13
- onRemove: CollectionResourceCallback<ItemTypeType, Fields>;
13
+ onAdd: CollectionResourceOnAddCallback<ItemTypeType, ColumnIds>;
14
+ onRemove: CollectionResourceCallback<ItemTypeType, ColumnIds>;
14
15
  onChange: FieldChangeCallback;
15
16
  custom: any;
16
17
  callOnAddWithInitialItems: boolean;
17
- constructor(values: CollectionOptionsInterface<ItemTypeType, Fields>);
18
+ /**
19
+ * @description
20
+ * Prevents a CachedQueryItem from being cached (the CollectionResource will still be cached), you can use this when you fetch an Itemtype for which the backend doesn't send socket messages (so it never automatically updates)
21
+ */
22
+ preventCaching: boolean;
23
+ constructor(values: CollectionOptionsInterface<ItemTypeType, ColumnIds>);
18
24
  }
@@ -1,16 +1,17 @@
1
+ import { ApiEnumItemType, ApiFields, ItemId } from '@rentman/backend-types';
1
2
  import { TransactionCache } from '../classes/cache/transaction/TransactionCache';
2
3
  import { ChangesDeltaResult } from '../classes/ChangesDeltaBase';
3
4
  import { CollectionResourceFactory } from '../factories';
4
5
  import { CollectionEntry, CollectionOptions, ItemEntry, ItemResource } from '../models';
5
- import { ApiRequestLimit, ColumnIdTypeMap, CompareFieldCallback, DeregFunction, FieldMap, ItemId, ItemResourceItemIdMap, ItemType, OnAddCallback, OnChangeCallback, OnRemoveCallback, PromiseInterface, ResponseColumnItemTypeMap } from '../types';
6
- export declare class CollectionResource<ItemTypeType extends ItemType = any, Fields extends ColumnIdTypeMap = any> {
6
+ import { ApiRequestLimit, CompareFieldCallback, DeregFunction, FieldMap, ItemResourceItemIdMap, OnAddCallback, OnChangeCallback, OnRemoveCallback, PromiseInterface, ResponseColumnItemTypeMap } from '../types';
7
+ export declare class CollectionResource<ItemTypeType extends ApiEnumItemType = any, ColumnIds extends Array<keyof ApiFields[ItemTypeType]> = Array<keyof ApiFields[ItemTypeType]>> {
7
8
  protected factory: CollectionResourceFactory;
8
- options: CollectionOptions<ItemTypeType, Fields>;
9
+ options: CollectionOptions<ItemTypeType, ColumnIds>;
9
10
  transaction: TransactionCache;
10
- entry: CollectionEntry<ItemTypeType, Fields>;
11
+ entry: CollectionEntry<ItemTypeType, ColumnIds>;
11
12
  columns: ResponseColumnItemTypeMap;
12
- items: Array<ItemResource<ItemTypeType, Fields>>;
13
- protected itemIdMap: ItemResourceItemIdMap<ItemResource<ItemTypeType, Fields>>;
13
+ items: Array<ItemResource<ItemTypeType, ColumnIds>>;
14
+ protected itemIdMap: ItemResourceItemIdMap<ItemResource<ItemTypeType, ColumnIds>>;
14
15
  private fieldChangeDeregFns;
15
16
  private readonly onChangeCallbacks;
16
17
  private readonly onAddCallbacks;
@@ -20,7 +21,7 @@ export declare class CollectionResource<ItemTypeType extends ItemType = any, Fie
20
21
  * We store the ItemIds of the items that were taking out the collections so that we can include those when doing a not-in when having a limit
21
22
  */
22
23
  private removedItemIds;
23
- constructor(factory: CollectionResourceFactory, options: CollectionOptions<ItemTypeType, Fields>, transaction: TransactionCache, itemType: ItemTypeType, initialItemEntries: Array<ItemEntry<ItemTypeType>>);
24
+ constructor(factory: CollectionResourceFactory, options: CollectionOptions<ItemTypeType, ColumnIds>, transaction: TransactionCache, itemType: ItemTypeType, initialItemEntries: Array<ItemEntry<ItemTypeType>>);
24
25
  onConstruct(): void;
25
26
  /**
26
27
  * @description
@@ -28,9 +29,9 @@ export declare class CollectionResource<ItemTypeType extends ItemType = any, Fie
28
29
  */
29
30
  refresh(): PromiseInterface<void>;
30
31
  setLimit(newLimit: number | ApiRequestLimit): void;
31
- onAdd(callback: OnAddCallback<ItemTypeType, Fields>): DeregFunction;
32
- onChange(callback: OnChangeCallback<ItemTypeType, Fields>): DeregFunction;
33
- onRemove(callback: OnRemoveCallback<ItemTypeType, Fields>): DeregFunction;
32
+ onAdd(callback: OnAddCallback<ItemTypeType, ColumnIds>): DeregFunction;
33
+ onChange(callback: OnChangeCallback<ItemTypeType, ColumnIds>): DeregFunction;
34
+ onRemove(callback: OnRemoveCallback<ItemTypeType, ColumnIds>): DeregFunction;
34
35
  __clear(): void;
35
36
  /**
36
37
  * @deprecated
@@ -39,29 +40,29 @@ export declare class CollectionResource<ItemTypeType extends ItemType = any, Fie
39
40
  moveItems(itemEntries: Array<ItemEntry<ItemTypeType>>, destinationResource: CollectionResource<ItemTypeType>): void;
40
41
  removeItems(idArray: ItemId[]): PromiseInterface<ChangesDeltaResult>;
41
42
  removeItem(itemId: ItemId): PromiseInterface<ChangesDeltaResult>;
42
- addItems(valuesArray: Array<Partial<Fields>>): PromiseInterface<ChangesDeltaResult>;
43
- addItem(values: FieldMap<ItemTypeType>): PromiseInterface<ChangesDeltaResult>;
43
+ addItems(valuesArray: Array<Partial<FieldMap<ItemTypeType, ColumnIds>>>): PromiseInterface<ChangesDeltaResult>;
44
+ addItem(values: Partial<FieldMap<ItemTypeType>>): PromiseInterface<ChangesDeltaResult>;
44
45
  getIdArray(): ItemId[];
45
- getItemById(itemId: number): ItemResource<ItemTypeType, Fields>;
46
- addItemResources(itemEntriesToBeAdded: Array<ItemEntry<ItemTypeType>>, isInitialCall?: boolean, isCalledAfterSocketUpdate?: boolean): Array<ItemResource<ItemTypeType, Fields>>;
46
+ getItemById(itemId: ItemId): ItemResource<ItemTypeType, ColumnIds>;
47
+ addItemResources(itemEntriesToBeAdded: Array<ItemEntry<ItemTypeType>>, isInitialCall?: boolean, isCalledAfterSocketUpdate?: boolean): Array<ItemResource<ItemTypeType, ColumnIds>>;
47
48
  /**
48
49
  * @description
49
50
  * Returns the {@link ItemResource ItemResources} that where removed from the {@link CollectionResource collection}.
50
51
  * Filters on {@link ItemResource ItemResource}.{@link ItemEntry entry} === {@link ItemEntry entry}
51
52
  */
52
- removeItemResources(itemEntries: Array<ItemEntry<ItemTypeType>>, isCalledAfterSocketUpdate: boolean): Array<ItemResource<ItemTypeType, Fields>>;
53
- callOnAdd(itemResources: Array<ItemResource<ItemTypeType, Fields>>, isInitialCall?: boolean, isCalledAfterSocketUpdate?: boolean): void;
54
- callOnChange(itemEntry: ItemEntry<ItemTypeType>, compareField: CompareFieldCallback<Fields>, fields: FieldMap<ItemTypeType, Fields>, isCalledAfterSocketUpdate: boolean, previous: FieldMap<ItemTypeType, Fields>): void;
55
- callOnRemove(itemResources: Array<ItemResource<ItemTypeType, Fields>>, isCalledAfterSocketUpdate: boolean): void;
56
- forEach(callback: (itemResource: ItemResource<ItemTypeType, Fields>) => void): void;
57
- filter(callback: (itemResource: ItemResource<ItemTypeType, Fields>) => boolean): Array<ItemResource<ItemTypeType, Fields>>;
58
- first(callback: (itemResource: ItemResource<ItemTypeType, Fields>) => boolean): ItemResource<ItemTypeType, Fields> | null;
59
- some(callback: (itemResource: ItemResource<ItemTypeType, Fields>) => boolean): boolean;
60
- groupBy(argument: string | ((itemResource: ItemResource<ItemTypeType, Fields>) => string | null)): {
61
- [key: string]: Array<ItemResource<ItemTypeType, Fields>>;
53
+ removeItemResources(itemEntries: Array<ItemEntry<ItemTypeType>>, isCalledAfterSocketUpdate: boolean): Array<ItemResource<ItemTypeType, ColumnIds>>;
54
+ callOnAdd(itemResources: Array<ItemResource<ItemTypeType, ColumnIds>>, isInitialCall?: boolean, isCalledAfterSocketUpdate?: boolean): void;
55
+ callOnChange(itemEntry: ItemEntry<ItemTypeType>, compareField: CompareFieldCallback<FieldMap<ItemTypeType, ColumnIds>>, fields: FieldMap<ItemTypeType, ColumnIds>, isCalledAfterSocketUpdate: boolean, previous: FieldMap<ItemTypeType, ColumnIds>): void;
56
+ callOnRemove(itemResources: Array<ItemResource<ItemTypeType, ColumnIds>>, isCalledAfterSocketUpdate: boolean): void;
57
+ forEach(callback: (itemResource: ItemResource<ItemTypeType, ColumnIds>) => void): void;
58
+ filter(callback: (itemResource: ItemResource<ItemTypeType, ColumnIds>) => boolean): Array<ItemResource<ItemTypeType, ColumnIds>>;
59
+ first(callback: (itemResource: ItemResource<ItemTypeType, ColumnIds>) => boolean): ItemResource<ItemTypeType, ColumnIds> | null;
60
+ some(callback: (itemResource: ItemResource<ItemTypeType, ColumnIds>) => boolean): boolean;
61
+ groupBy(argument: string | ((itemResource: ItemResource<ItemTypeType, ColumnIds>) => string | null)): {
62
+ [key: string]: Array<ItemResource<ItemTypeType, ColumnIds>>;
62
63
  };
63
- map<U>(argument: string | ((itemResource: ItemResource<ItemTypeType, Fields>) => U)): U[];
64
- reduce<U>(callback: (itemResource: ItemResource<ItemTypeType, Fields>, value: U) => U, value: U): U;
64
+ map<U>(argument: string | ((itemResource: ItemResource<ItemTypeType, ColumnIds>) => U)): U[];
65
+ reduce<U>(callback: (itemResource: ItemResource<ItemTypeType, ColumnIds>, value: U) => U, value: U): U;
65
66
  /**
66
67
  * @description
67
68
  * Removes the reference to the {@link CollectionResource CollectionResource} from the {@link CollectionEntry CollectionEntry}
@@ -1,7 +1,7 @@
1
+ import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
1
2
  import { ColumnSet } from '../classes';
2
3
  import { ItemEntryFactory } from '../factories';
3
- import { ItemId, ItemType } from '../types';
4
- export declare class ItemEntry<ItemTypeType extends ItemType = any> {
4
+ export declare class ItemEntry<ItemTypeType extends ApiEnumItemType = any> {
5
5
  private factory;
6
6
  itemType: ItemTypeType;
7
7
  itemId: ItemId;