@rentman/rm-core 7.2.0 → 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 +6 -0
  2. package/dist/rm-core.js +1167 -915
  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 +9 -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,10 +1,11 @@
1
+ import { ApiEnumApiType, ApiEnumApiTypeTsTypeMapping, ApiEnumItemType, ApiFields, ResponseColumn } from '@rentman/backend-types';
1
2
  import moment from 'moment';
2
3
  import { ColumnInfo } from '../classes';
3
- import { ColumnIdTypeMap, FieldMap, ItemType, ResponseColumn } from '../types';
4
- declare type GetChangesResult<Fields extends FieldMap, key extends keyof Fields = string> = {
5
- oldValue: Fields[key];
6
- newValue: Fields[key];
7
- column: ResponseColumn;
4
+ import { FieldMap } from '../types';
5
+ declare type GetChangesResult<ItemTypeType extends ApiEnumItemType = any, ColumnId extends keyof ApiFields[ItemTypeType] = any> = {
6
+ oldValue: FieldMap<ItemTypeType, [ColumnId]>[ColumnId];
7
+ newValue: FieldMap<ItemTypeType, [ColumnId]>[ColumnId];
8
+ column: ResponseColumn<ItemTypeType, ColumnId>;
8
9
  };
9
10
  export declare class ApiFormatter {
10
11
  MOMENT_INVALID: string;
@@ -20,28 +21,28 @@ export declare class ApiFormatter {
20
21
  * @remarks
21
22
  * Currently only used for Moment objects
22
23
  */
23
- isExpensiveFormat(columnType: string): boolean;
24
+ isExpensiveFormat(columnType: ApiEnumApiType): boolean;
24
25
  /**
25
26
  * @description
26
27
  * Overwrites the values in 'changes' if the values in 'initial' and 'changes' are the same (leaving user changes intact)
27
28
  */
28
- mergeCopyFields<ItemTypeType extends ItemType, Fields extends ColumnIdTypeMap>(initial: FieldMap<ItemTypeType, Fields>, changes: FieldMap<ItemTypeType, Fields>, newInitial: FieldMap<ItemTypeType, Fields>, columns: Array<ColumnInfo<ItemTypeType>>): FieldMap<ItemTypeType, Fields>;
29
- formatRequest<Fields extends FieldMap>(initial: Fields, modified: Fields, columns: Array<ColumnInfo<any>>): {
29
+ mergeCopyFields<ItemTypeType extends ApiEnumItemType, ColumnIds extends Array<keyof ApiFields[ItemTypeType]> = any>(initial: FieldMap<ItemTypeType, ColumnIds>, changes: FieldMap<ItemTypeType, ColumnIds>, newInitial: FieldMap<ItemTypeType, ColumnIds>, columns: Array<ColumnInfo<ItemTypeType>>): FieldMap<ItemTypeType, ColumnIds>;
30
+ formatRequest<Fields extends FieldMap>(initial: Fields, modified: Fields, columns: Array<ColumnInfo>): {
30
31
  [columnId: string]: any;
31
32
  };
32
- formatRequestLocal<Fields extends FieldMap>(fields: Fields, columns: Array<ColumnInfo<any>>): {
33
+ formatRequestLocal<Fields extends FieldMap>(fields: Fields, columns: ColumnInfo[]): {
33
34
  [columnId: string]: any;
34
35
  };
35
36
  hasChanges(initial: FieldMap, modified: FieldMap, columns: Array<ColumnInfo<any>>, includeReadOnlyColumns?: boolean, forceCompare?: boolean): boolean;
36
- getChanges<Fields extends FieldMap>(initial: Fields, modified: Fields, columns: Array<ColumnInfo<any>>): Array<GetChangesResult<Fields> | undefined>;
37
- copyFields<Fields extends FieldMap>(source: Fields, destination: Fields, columns: Array<ColumnInfo<any>>): Fields;
37
+ getChanges<ItemTypeType extends ApiEnumItemType = any, ColumnIds extends Array<keyof ApiFields[ItemTypeType]> = any>(initial: FieldMap<ItemTypeType, ColumnIds>, modified: FieldMap<ItemTypeType, ColumnIds>, columns: Array<ColumnInfo<ItemTypeType, ColumnIds[number]>>): Array<GetChangesResult<ItemTypeType, ColumnIds[number]>>;
38
+ copyFields<ItemTypeType extends ApiEnumItemType = any, ColumnIds extends Array<keyof ApiFields[ItemTypeType]> = any>(source: FieldMap<ItemTypeType, ColumnIds>, destination: Partial<FieldMap<ItemTypeType>>, columns: Array<ColumnInfo<ItemTypeType, ColumnIds[number]>>): FieldMap<ItemTypeType, ColumnIds>;
38
39
  shallowCopyFields<Fields extends FieldMap>(shallowSource: Fields, deepSource: Fields, destination: Fields, columns: Array<ColumnInfo<any>>): Fields;
39
- setDefaultValues<ItemTypeType extends ItemType = any>(destination: FieldMap<ItemTypeType>, columns: Array<ColumnInfo<ItemTypeType>>): FieldMap<ItemTypeType>;
40
+ setDefaultValues<ItemTypeType extends ApiEnumItemType = any>(destination: FieldMap<ItemTypeType>, columns: Array<ColumnInfo<ItemTypeType>>): FieldMap<ItemTypeType>;
40
41
  /**
41
42
  * @description
42
43
  * Compares the given fields, returns `true` when the fields are equal
43
44
  */
44
- compareFields(columnType: string, first?: any, second?: any): boolean;
45
+ compareFields<ColumnType extends ApiEnumApiType>(columnType: ColumnType, first?: ApiEnumApiTypeTsTypeMapping[ColumnType], second?: ApiEnumApiTypeTsTypeMapping[ColumnType]): boolean;
45
46
  compareFloats(a: number, b: number): boolean;
46
47
  compareMomentObjects(first: moment.Moment, second: moment.Moment): boolean;
47
48
  compareDurations(first: moment.Duration, second: moment.Duration): boolean;
@@ -54,8 +55,8 @@ export declare class ApiFormatter {
54
55
  formatRequestDate(value: moment.Moment): string | null;
55
56
  formatRequestDuration(value: moment.Duration): number;
56
57
  formatRequestColor(value: string): string;
57
- getDefaultValue(columnType: string): any;
58
- isDefaultValue(columnType: string, value: any): boolean;
58
+ getDefaultValue(columnType: ApiEnumApiType): any;
59
+ isDefaultValue(columnType: ApiEnumApiType, value: any): boolean;
59
60
  clone(columnType: string, value: any): any;
60
61
  getCloneFunction(columnType: string): ((duration: moment.Duration) => moment.Duration) | ((date: moment.Moment) => moment.Moment);
61
62
  cloneDuration(duration: moment.Duration): moment.Duration;
@@ -1,20 +1,21 @@
1
+ import { ApiEnumItemType, ApiQuery, ItemId } from '@rentman/backend-types';
1
2
  import { ApiResponseProcessor } from '../classes';
2
3
  import { ApiResponseProcessorFactory } from '../factories';
3
4
  import { ApiRequestServiceInterface } from '../interfaces';
4
- import { ApiRequestColumnMap, ApiRequestItemMap, ApiRequestLimit, ItemId, ItemType, PromiseInterface } from '../types';
5
+ import { ApiRequestColumnMap, ApiRequestItemMap, ApiRequestLimit, PromiseInterface } from '../types';
5
6
  export declare class ApiRequestService {
6
7
  private externalApiRequestService;
7
8
  private apiResponseProcessorFactory;
8
9
  constructor(externalApiRequestService: ApiRequestServiceInterface, apiResponseProcessorFactory: ApiResponseProcessorFactory);
9
- template(itemType: ItemType, params: any): PromiseInterface<ApiResponseProcessor>;
10
- create(itemType: ItemType, itemId: ItemId, values: any, parentType?: ItemType, parentId?: ItemId): PromiseInterface<ApiResponseProcessor>;
11
- delete(itemType: ItemType, itemIds: ItemId[]): PromiseInterface<ApiResponseProcessor>;
12
- updateItems(itemType: ItemType, items: ApiRequestItemMap, columns: any): PromiseInterface<ApiResponseProcessor>;
10
+ template(itemType: ApiEnumItemType, params: any): PromiseInterface<ApiResponseProcessor>;
11
+ create(itemType: ApiEnumItemType, itemId: ItemId, values: any, parentType?: ApiEnumItemType, parentId?: ItemId): PromiseInterface<ApiResponseProcessor>;
12
+ delete(itemType: ApiEnumItemType, itemIds: ItemId[]): PromiseInterface<ApiResponseProcessor>;
13
+ updateItems(itemType: ApiEnumItemType, items: ApiRequestItemMap, columns: any): PromiseInterface<ApiResponseProcessor>;
13
14
  requestSkeleton(params: any, requestCanceler?: PromiseInterface<any>): PromiseInterface<ApiResponseProcessor>;
14
- moveItems(parentType: ItemType, parentId: ItemId, items: {
15
+ moveItems(parentType: ApiEnumItemType, parentId: ItemId, items: {
15
16
  [itemType: string]: ItemId[];
16
17
  }): PromiseInterface<ApiResponseProcessor>;
17
- columns(itemType: ItemType, columns: ApiRequestColumnMap, params?: any): PromiseInterface<ApiResponseProcessor>;
18
- query(itemType: ItemType, query: any, columns: ApiRequestColumnMap, limit?: ApiRequestLimit): PromiseInterface<ApiResponseProcessor>;
18
+ columns(itemType: ApiEnumItemType, columns: ApiRequestColumnMap, params?: any): PromiseInterface<ApiResponseProcessor>;
19
+ query<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, query: ApiQuery<ItemTypeType>, columns: ApiRequestColumnMap, limit?: ApiRequestLimit): PromiseInterface<ApiResponseProcessor>;
19
20
  processResponse(request: any): PromiseInterface<ApiResponseProcessor>;
20
21
  }
@@ -1,6 +1,7 @@
1
- import { ApiFormatter } from '../classes';
2
- import { ColumnIdTypeMap, FieldMap, ItemId, ItemType, ItemTypeMap, ResponseColumn } from '../types';
3
- export declare class ApiResponseProcessor<RequestItemType extends ItemType = any> {
1
+ import { ApiEnumItemType, ItemId, ResponseColumn } from '@rentman/backend-types';
2
+ import { ApiFormatter, ColumnInfo } from '../classes';
3
+ import { FieldMap, ItemTypeMap, ResponseColumnItemTypeMap, ResponseColumnMap } from '../types';
4
+ export declare class ApiResponseProcessor<RequestItemType extends ApiEnumItemType = any> {
4
5
  apiFormatter: ApiFormatter;
5
6
  response: any;
6
7
  itemType: RequestItemType;
@@ -16,16 +17,14 @@ export declare class ApiResponseProcessor<RequestItemType extends ItemType = any
16
17
  };
17
18
  columnMap: any;
18
19
  constructor(apiFormatter: ApiFormatter, response: any);
19
- fetchColumnObject(itemType: ItemType): ResponseColumn;
20
- fetchValue(itemType: ItemType, itemId: ItemId, columnId: string): any;
21
- fetchColumnArray(itemType: ItemType): ResponseColumn[];
22
- fetchDerivedObject(itemType: ItemType, itemId: ItemId, rootColumns: ResponseColumn[]): {};
23
- fetchDerivedValues(value: any, column: ResponseColumn, destination: any): void;
24
- fetchObject<Fields extends ColumnIdTypeMap, ItemTypeType extends ItemType>(itemType: ItemTypeType, itemId: string | ItemId): FieldMap<ItemTypeType, Fields> | undefined;
25
- fetchObjectArray<ItemTypeType extends ItemType>(itemType: ItemTypeType, idArray?: ItemId[] | null): Array<FieldMap<ItemTypeType>>;
26
- fetchColumnsObject(): {
27
- [itemType: string]: ResponseColumn;
28
- };
20
+ fetchColumnObject(itemType: ApiEnumItemType): ResponseColumnMap;
21
+ fetchValue(itemType: ApiEnumItemType, itemId: ItemId, columnId: string): any;
22
+ fetchColumnArray(itemType: ApiEnumItemType): ResponseColumn[];
23
+ fetchDerivedObject(itemType: ApiEnumItemType, itemId: ItemId, rootColumns: ColumnInfo[]): {};
24
+ fetchDerivedValues(value: any, column: ColumnInfo, destination: any): void;
25
+ fetchObject<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, itemId: string | ItemId): FieldMap<ItemTypeType> | undefined;
26
+ fetchObjectArray<ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType, idArray?: ItemId[] | null): Array<FieldMap<ItemTypeType>>;
27
+ fetchColumnsObject(): ResponseColumnItemTypeMap;
29
28
  private addLazyFormattingFunction;
30
29
  private createColumnMaps;
31
30
  }
@@ -1,16 +1,18 @@
1
+ import { ApiEnumItemType } from '@rentman/backend-types';
1
2
  import { ItemEntry } from '../models';
2
- import { ItemEntryMap, ItemMap, ItemType } from '../types';
3
+ import { ItemEntryMap, ItemMap } from '../types';
3
4
  import { TransactionCache } from './cache/transaction/TransactionCache';
4
5
  import { InternalCreateDelta } from './InternalChangesDelta';
6
+ export declare type CreateRequestCompilationParent = ApiEnumItemType | 'Void';
5
7
  export declare type CreateCompilation = {
6
8
  [parentType: string]: {
7
9
  [parentId: number]: ItemMap<InternalCreateDelta>;
8
10
  };
9
11
  };
10
12
  export declare type DeleteCompilation = {
11
- [itemType: string]: Array<ItemEntry<ItemType>>;
13
+ [itemType: string]: ItemEntry[];
12
14
  };
13
- export declare type UpdateCompilation = ItemEntryMap<ItemType>;
15
+ export declare type UpdateCompilation = ItemEntryMap;
14
16
  export declare type MoveCompilation = {
15
17
  [parentType: string]: {
16
18
  [parentId: number]: ItemEntry[];
@@ -1,6 +1,7 @@
1
+ import { ApiEnumItemType, ApiFields, ItemId } from '@rentman/backend-types';
1
2
  import { ErrorHandlerInterface } from '../interfaces';
2
3
  import { ItemEntry } from '../models';
3
- import { EntryParent, EntryParentNull, FieldMap, ItemId, ItemType, PromiseInterface } from '../types';
4
+ import { EntryParent, EntryParentNull, FieldMap, PromiseInterface } from '../types';
4
5
  import { ChangesDeltaBase } from './ChangesDeltaBase';
5
6
  import { ColumnSet } from './ColumnSet';
6
7
  import { CreatedChangesDelta } from './CreatedChangesDelta';
@@ -30,7 +31,7 @@ export declare class ChangesDelta extends ChangesDeltaBase {
30
31
  * - If the values don't contain an `id` a new one will be generated
31
32
  * - If you want to set a parent set the proper field, you can't pass it as a separate object
32
33
  */
33
- setItemCreated<ItemTypeType extends ItemType, Fields extends FieldMap<ItemTypeType>>(itemType: ItemTypeType, values: Fields): PromiseInterface<this>;
34
+ setItemCreated<ItemTypeType extends ApiEnumItemType, Fields extends Partial<FieldMap<ItemTypeType>>>(itemType: ItemTypeType, values: Fields): PromiseInterface<this>;
34
35
  /**
35
36
  * @description
36
37
  * Fetches a template for the passed itemType and processes the passed values and sets the items to be created when the delta is applied
@@ -39,7 +40,7 @@ export declare class ChangesDelta extends ChangesDeltaBase {
39
40
  * - If the values don't contain an `id` a new one will be generated
40
41
  * - If you want to set a parent set the proper field, you can't pass it as a separate object
41
42
  */
42
- setItemsCreated<ItemTypeType extends ItemType, Fields extends FieldMap<ItemTypeType>>(itemType: ItemTypeType, valuesArray: Fields[]): PromiseInterface<this>;
43
+ setItemsCreated<ItemTypeType extends ApiEnumItemType, ColumnIds extends Array<keyof ApiFields[ItemTypeType]> = Array<keyof ApiFields[ItemTypeType]>>(itemType: ItemTypeType, valuesArray: Array<Partial<FieldMap<ItemTypeType, ColumnIds>>>): PromiseInterface<this>;
43
44
  /**
44
45
  * @description
45
46
  * Will create an {@link ItemEntry ItemEntry} when the delta is applied
@@ -51,7 +52,7 @@ export declare class ChangesDelta extends ChangesDeltaBase {
51
52
  *
52
53
  * @internal
53
54
  */
54
- _setItemCreated<ItemTypeType extends ItemType, Fields extends FieldMap<ItemTypeType>>(itemId: ItemId, fields: Fields, columns: ColumnSet<ItemTypeType>, parent?: EntryParentNull): this;
55
+ _setItemCreated<ItemTypeType extends ApiEnumItemType, Fields extends FieldMap<ItemTypeType>>(itemId: ItemId, fields: Fields, columns: ColumnSet<ItemTypeType>, parent?: EntryParentNull): this;
55
56
  /**
56
57
  * @description
57
58
  * Convenience function to assign the proper parent fields, will call {@link ChangesDeltaBase.setItemUpdated setItemUpdated} internally
@@ -1,15 +1,15 @@
1
+ import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
1
2
  import { ItemEntry } from '../models';
2
- import { ColumnExpansionResult, EntryParentNull, FieldMap, ItemId, ItemIdConversionMap, ItemType } from '../types';
3
+ import { ColumnExpansionResult, EntryParentNull, FieldMap, ItemIdConversionMap } from '../types';
3
4
  import { ItemEntryService } from './ItemEntryService';
4
5
  export declare type ChangesDeltaResult = {
5
- rollback: () => void;
6
6
  created: ItemEntry[];
7
7
  };
8
8
  /**
9
9
  * @remark
10
10
  * We explicitly keep track of the new parent, so we can set an item to moved if it isn't null (Needed for linkTo request)
11
11
  */
12
- export declare type ChangesDeltaItemUpdateDelta<ItemTypeType extends ItemType = any> = {
12
+ export declare type ChangesDeltaItemUpdateDelta<ItemTypeType extends ApiEnumItemType = any> = {
13
13
  entry: ItemEntry<ItemTypeType>;
14
14
  changes: {
15
15
  expandedColumns: ColumnExpansionResult<ItemTypeType> | null;
@@ -43,8 +43,8 @@ export declare abstract class ChangesDeltaBase {
43
43
  *
44
44
  * @private
45
45
  */
46
- _setQueryResult(itemType: ItemType, queryString: string, itemIds: ItemId[]): void;
47
- setItemUpdated<ItemEntryType extends ItemEntry>(entry: ItemEntryType, fields: FieldMap<ItemEntryType['itemType']>, columnExpansionResult?: ColumnExpansionResult<ItemEntryType['itemType']> | null, parent?: EntryParentNull): this;
46
+ _setQueryResult(itemType: ApiEnumItemType, queryString: string, itemIds: ItemId[]): void;
47
+ setItemUpdated<ItemTypeType extends ApiEnumItemType>(entry: ItemEntry<ItemTypeType>, fields: Partial<FieldMap<ItemTypeType>>, columnExpansionResult?: ColumnExpansionResult<ItemTypeType> | null, parent?: EntryParentNull): this;
48
48
  setItemDeleted(deleted: ItemEntry): this;
49
49
  setItemsDeleted(deleted: ItemEntry[]): this;
50
50
  isEmpty(): boolean;
@@ -1,17 +1,18 @@
1
+ import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
1
2
  import { QueryService } from '../classes';
2
3
  import { QueryParserFactory } from '../factories';
3
4
  import { ItemEntry } from '../models';
4
5
  import { CollectionOptions, CollectionOptionsInterface } from '../models/CollectionOptions';
5
- import { ApiQuery, CollectionQuery, EntryParentNull, ItemId, ItemType } from '../types';
6
+ import { ApiQuery, CollectionQuery, EntryParentNull } from '../types';
6
7
  export declare class CollectionEntryService {
7
8
  private queryParserFactory;
8
9
  private queryService;
9
10
  constructor(queryParserFactory: QueryParserFactory, queryService: QueryService);
10
- createUnfoundLocalCollectionError(itemType: ItemType): {
11
+ createUnfoundLocalCollectionError(itemType: ApiEnumItemType): {
11
12
  message: string;
12
13
  };
13
- cloneOptions(options: CollectionOptions, parent: EntryParentNull): CollectionOptions<any, any>;
14
- processOptions<ItemTypeType extends ItemType>(options: CollectionOptionsInterface<ItemTypeType>): CollectionOptions;
14
+ cloneOptions(options: CollectionOptions, parent: EntryParentNull): CollectionOptions<any, (string | number | symbol)[]>;
15
+ processOptions<ItemTypeType extends ApiEnumItemType>(options: CollectionOptionsInterface<ItemTypeType>): CollectionOptions;
15
16
  createQuery(query: ApiQuery): CollectionQuery;
16
17
  createQueryFromOptions(options: CollectionOptions): CollectionQuery;
17
18
  getIdArray(itemEntries: Array<ItemEntry<any>>, accumulator?: ItemId[]): ItemId[];
@@ -1,9 +1,10 @@
1
- import { AbstractCache, CollectionQuery, FieldMap, ItemType, QueryService } from '../';
1
+ import { ApiEnumItemType } from '@rentman/backend-types';
2
+ import { AbstractCache, CollectionQuery, FieldMap, QueryService } from '../';
2
3
  import { QueryMatcherFactory } from '../factories/';
3
4
  import { ItemEntry } from '../models';
4
5
  import { GroupedCollectionMatcherResult } from './cache/CollectionMatcherCachedQueryProcessor';
5
6
  import { InternalChangesDelta } from './InternalChangesDelta';
6
- export declare type CollectionMatcherMatches<ItemTypeType extends ItemType = ItemType> = {
7
+ export declare type CollectionMatcherMatches<ItemTypeType extends ApiEnumItemType = any> = {
7
8
  [itemId: number]: {
8
9
  item: ItemEntry<ItemTypeType>;
9
10
  isMatch: boolean | 'maybe';
@@ -16,6 +17,6 @@ export declare abstract class CollectionMatcherBase {
16
17
  protected constructor(queryService: QueryService, queryMatcherFactory: QueryMatcherFactory, transaction: AbstractCache);
17
18
  expand<ItemEntryType extends ItemEntry>(itemEntry: ItemEntryType, fields: FieldMap<ItemEntryType['itemType']>): this;
18
19
  processDelta(internalChangesDelta: InternalChangesDelta): this;
19
- protected groupItemEntries<ItemTypeType extends ItemType>(matches: CollectionMatcherMatches<ItemTypeType>): GroupedCollectionMatcherResult<ItemTypeType>;
20
- protected abstract _expand<ItemTypeType extends ItemType = string>(itemEntry: ItemEntry<ItemTypeType>, matchFunction: (itemType: ItemTypeType, parsedQuery: CollectionQuery) => boolean | 'maybe'): this;
20
+ protected groupItemEntries<ItemTypeType extends ApiEnumItemType>(matches: CollectionMatcherMatches<ItemTypeType>): GroupedCollectionMatcherResult<ItemTypeType>;
21
+ protected abstract _expand<ItemTypeType extends ApiEnumItemType = any>(itemEntry: ItemEntry<ItemTypeType>, matchFunction: (itemType: ItemTypeType, parsedQuery: CollectionQuery) => boolean | 'maybe'): this;
21
22
  }
@@ -1,7 +1,8 @@
1
+ import { ApiEnumItemType } from '@rentman/backend-types';
1
2
  import { QueryMatcherFactory } from '../factories';
2
3
  import { PromiseLibraryInterface } from '../interfaces';
3
4
  import { CollectionResource, ItemEntry } from '../models';
4
- import { CollectionQuery, ItemType, PromiseInterface } from '../types';
5
+ import { CollectionQuery, PromiseInterface } from '../types';
5
6
  import { ApiRequestService } from './ApiRequestService';
6
7
  import { AbstractCache } from './cache/AbstractCache';
7
8
  import { ChangesDeltaBase } from './ChangesDeltaBase';
@@ -17,15 +18,15 @@ export declare class CollectionMatcherCachedCollectionProcessor extends Collecti
17
18
  private getCollections;
18
19
  protected map: {
19
20
  [itemTypeAndQueryString: string]: {
20
- itemType: ItemType;
21
+ itemType: ApiEnumItemType;
21
22
  query: CollectionQuery;
22
23
  collectionResources: CollectionResource[];
23
24
  matches: CollectionMatcherMatches;
24
25
  };
25
26
  };
26
- constructor(apiRequestService: ApiRequestService, promiseService: PromiseLibraryInterface, queryService: QueryService, queryMatcherFactory: QueryMatcherFactory, transaction: AbstractCache, getCollections: (itemType: ItemType) => {
27
- [queryString: string]: CollectionResource[];
27
+ constructor(apiRequestService: ApiRequestService, promiseService: PromiseLibraryInterface, queryService: QueryService, queryMatcherFactory: QueryMatcherFactory, transaction: AbstractCache, getCollections: <ItemTypeType extends ApiEnumItemType>(itemType: ItemTypeType) => {
28
+ [queryString: string]: Array<CollectionResource<ItemTypeType>>;
28
29
  });
29
30
  __removeFromAndAddToCollections(isCalledAfterSocketUpdate?: boolean, changesDelta?: ChangesDeltaBase): PromiseInterface<void[]>;
30
- protected _expand<ItemTypeType extends ItemType = string>(itemEntry: ItemEntry<ItemTypeType>, matchFunction: (itemType: ItemTypeType, parsedQuery: CollectionQuery) => boolean | 'maybe'): this;
31
+ protected _expand<ItemTypeType extends ApiEnumItemType = any>(itemEntry: ItemEntry<ItemTypeType>, matchFunction: (itemType: ItemTypeType, parsedQuery: CollectionQuery) => boolean | 'maybe'): this;
31
32
  }
@@ -1,7 +1,7 @@
1
+ import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
1
2
  import { CollectionOptions, ItemResource } from '../models';
2
3
  import { CollectionOptionsInterface } from '../models/CollectionOptions';
3
- import { ItemId, ItemType } from '../types';
4
4
  export declare class CollectionResourceService {
5
- processOptions<ItemTypeType extends ItemType>(options: CollectionOptionsInterface<ItemTypeType>): CollectionOptions<ItemTypeType>;
5
+ processOptions<ItemTypeType extends ApiEnumItemType>(options: CollectionOptionsInterface<ItemTypeType>): CollectionOptions<ItemTypeType>;
6
6
  getIdArray(itemResources: ItemResource[]): ItemId[];
7
7
  }
@@ -1,5 +1,6 @@
1
+ import { ApiEnumItemType, ResponseColumn } from '@rentman/backend-types';
1
2
  import { ColumnUtil } from '../classes';
2
- import { ApiRequestColumns, ItemType, ResponseColumn, ResponseColumnItemTypeMap } from '../types';
3
+ import { ApiRequestColumns, ResponseColumnItemTypeMap } from '../types';
3
4
  export declare class ColumnCache {
4
5
  private columnUtil;
5
6
  cache: ResponseColumnItemTypeMap;
@@ -7,15 +8,15 @@ export declare class ColumnCache {
7
8
  [itemType: string]: boolean;
8
9
  };
9
10
  constructor(columnUtil: ColumnUtil);
10
- setColumn(itemType: ItemType, responseColumn: ResponseColumn): ResponseColumn;
11
- setColumns(itemType: ItemType, requestColumns: ApiRequestColumns, responseColumns: ResponseColumnItemTypeMap): ResponseColumnItemTypeMap;
12
- retrieve(itemType: ItemType, requestColumns: ApiRequestColumns): {
11
+ setColumn(itemType: ApiEnumItemType, responseColumn: ResponseColumn): ResponseColumn;
12
+ setColumns(itemType: ApiEnumItemType, requestColumns: ApiRequestColumns, responseColumns: ResponseColumnItemTypeMap, columnFilter: string | false): ResponseColumnItemTypeMap;
13
+ retrieve(itemType: ApiEnumItemType, requestColumns: ApiRequestColumns): {
13
14
  cached: ResponseColumnItemTypeMap;
14
15
  missing: ApiRequestColumns;
15
16
  };
16
- containsAll(itemType: ItemType): boolean;
17
- getColumns(itemType: ItemType): ResponseColumnItemTypeMap;
18
- getColumn(itemType: ItemType, columnId: string): ResponseColumn | undefined;
17
+ containsAll(itemType: ApiEnumItemType): boolean;
18
+ getColumns(itemType: ApiEnumItemType): ResponseColumnItemTypeMap;
19
+ getColumn(itemType: ApiEnumItemType, columnId: string): ResponseColumn | undefined;
19
20
  private retrieveColumns;
20
21
  private retrieveColumn;
21
22
  }
@@ -1,11 +1,12 @@
1
+ import { ApiEnumItemType } from '@rentman/backend-types';
1
2
  import { ColumnInfo, ColumnSet } from '../classes';
2
3
  import { ColumnInfoFactory } from '../factories';
3
- import { ApiRequestColumn, ApiRequestColumns, ColumnExpansionResult, ItemType, ResponseColumnItemTypeMap } from '../types';
4
+ import { ApiRequestColumn, ApiRequestColumns, ColumnExpansionResult, ResponseColumnItemTypeMap } from '../types';
4
5
  /**
5
6
  * @description
6
7
  * A ColumnExpansion is used to make sure {@link ItemEntry ItemEntries} that have the same {@link ColumnSet ColumnSet} (matched on {@link ColumnSet.id ColumnSet.id}) will all get the same new expanded ColumnSet
7
8
  */
8
- export declare class ColumnExpansion<ItemTypeType extends ItemType> {
9
+ export declare class ColumnExpansion<ItemTypeType extends ApiEnumItemType> {
9
10
  private columnInfoFactory;
10
11
  itemType: ItemTypeType;
11
12
  responseColumns: ResponseColumnItemTypeMap;
@@ -1,6 +1,7 @@
1
+ import { ApiEnumItemType, ResponseColumn } from '@rentman/backend-types';
1
2
  import { ApiRequestService, ColumnCache, ColumnUtil } from '../classes';
2
3
  import { ErrorHandlerInterface, PromiseLibraryInterface } from '../interfaces';
3
- import { ApiRequestColumns, ItemType, PromiseInterface, ResponseColumn, ResponseColumnItemTypeMap } from '../types';
4
+ import { ApiRequestColumns, PromiseInterface, ResponseColumnItemTypeMap } from '../types';
4
5
  export declare class ColumnHandler {
5
6
  private apiRequestService;
6
7
  private errorHandler;
@@ -8,14 +9,14 @@ export declare class ColumnHandler {
8
9
  private cache;
9
10
  private columnUtil;
10
11
  constructor(apiRequestService: ApiRequestService, errorHandler: ErrorHandlerInterface, promiseService: PromiseLibraryInterface, cache: ColumnCache, columnUtil: ColumnUtil);
11
- setColumn(itemType: ItemType, responseColumn: ResponseColumn): ResponseColumn;
12
- setColumns(itemType: ItemType, requestColumns: ApiRequestColumns, responseColumns: ResponseColumnItemTypeMap): ResponseColumnItemTypeMap;
13
- fetchItemTypeTranslations(itemTypes: ItemType[]): PromiseInterface<{
12
+ setColumn(itemType: ApiEnumItemType, responseColumn: ResponseColumn): ResponseColumn;
13
+ setColumns(itemType: ApiEnumItemType, requestColumns: ApiRequestColumns, responseColumns: ResponseColumnItemTypeMap, filter?: string | false): ResponseColumnItemTypeMap;
14
+ fetchItemTypeTranslations(itemTypes: ApiEnumItemType[]): PromiseInterface<{
14
15
  [itemType: string]: string;
15
16
  }>;
16
- request(itemType: ItemType, columns: ApiRequestColumns, params?: {
17
- filter: boolean;
17
+ request(itemType: ApiEnumItemType, columns: ApiRequestColumns, params?: {
18
+ filter: string | false;
18
19
  }): PromiseInterface<ResponseColumnItemTypeMap>;
19
- fetch(itemType: ItemType, requestColumns: ApiRequestColumns, params?: any): PromiseInterface<ResponseColumnItemTypeMap>;
20
- fetchAll(itemType: ItemType): PromiseInterface<ResponseColumnItemTypeMap>;
20
+ fetch(itemType: ApiEnumItemType, requestColumns: ApiRequestColumns, params?: any): PromiseInterface<ResponseColumnItemTypeMap>;
21
+ fetchAll(itemType: ApiEnumItemType): PromiseInterface<ResponseColumnItemTypeMap>;
21
22
  }
@@ -1,14 +1,14 @@
1
- import { ItemType, ResponseColumn } from '../types';
2
- export declare class ColumnInfo<ItemTypeType extends ItemType = any> {
3
- readonly apiColumn: ResponseColumn;
4
- readonly parent: ColumnInfo<ItemType> | null;
5
- id: string;
1
+ import { ApiEnumItemType, ApiFields, GetColumnType } from '@rentman/backend-types';
2
+ export declare class ColumnInfo<ItemTypeType extends ApiEnumItemType = any, ColumnId extends keyof ApiFields[ItemTypeType] = any> {
3
+ readonly apiColumn: GetColumnType<ItemTypeType, ColumnId>;
4
+ readonly parent: ColumnInfo | null;
5
+ id: ColumnId;
6
6
  level: number;
7
7
  path: string;
8
8
  tailPath: string;
9
9
  itemType: ItemTypeType | null;
10
10
  children: Array<ColumnInfo<ItemTypeType>>;
11
11
  isLeaf: boolean;
12
- constructor(apiColumn: ResponseColumn, parent?: ColumnInfo<ItemType> | null);
12
+ constructor(apiColumn: GetColumnType<ItemTypeType, ColumnId>, parent?: ColumnInfo | null);
13
13
  setChildren(itemType: ItemTypeType, children: Array<ColumnInfo<ItemTypeType>>): this;
14
14
  }
@@ -1,7 +1,8 @@
1
+ import { ApiEnumItemType } from '@rentman/backend-types';
1
2
  import { ColumnInfo, ColumnUtil, RequestColumnMergeResult } from '../classes';
2
3
  import { ColumnSetFactory } from '../factories';
3
- import { ApiRequestColumns, ColumnExpansionResult, ItemType, ResponseColumnItemTypeMap } from '../types';
4
- export declare class ColumnSet<ItemTypeType extends ItemType = any> {
4
+ import { ApiRequestColumns, ColumnExpansionResult, ResponseColumnItemTypeMap } from '../types';
5
+ export declare class ColumnSet<ItemTypeType extends ApiEnumItemType = any> {
5
6
  private columnUtil;
6
7
  private columnSetFactory;
7
8
  itemType: ItemTypeType;
@@ -26,8 +27,8 @@ export declare class ColumnSet<ItemTypeType extends ItemType = any> {
26
27
  constructor(columnUtil: ColumnUtil, columnSetFactory: ColumnSetFactory, itemType: ItemTypeType);
27
28
  groupColumnInfo(columnInfo: ColumnInfo): void;
28
29
  toJSON(): {
29
- main: string[];
30
- derived: string[];
30
+ main: any[];
31
+ derived: any[];
31
32
  };
32
33
  isSupersetOf(columnsToCompare: ApiRequestColumns): boolean;
33
34
  private getMergedColumnSet;
@@ -1,6 +1,7 @@
1
+ import { ApiEnumItemType } from '@rentman/backend-types';
1
2
  import { ColumnCache, ColumnSet, ColumnUtil } from '../classes';
2
- import { ApiRequestColumn, ApiRequestColumns, ItemType } from '../types';
3
- export declare class ColumnSubsetCache<ItemTypeType extends ItemType> {
3
+ import { ApiRequestColumn, ApiRequestColumns } from '../types';
4
+ export declare class ColumnSubsetCache<ItemTypeType extends ApiEnumItemType> {
4
5
  private columnUtil;
5
6
  private columnCache;
6
7
  itemType: ItemTypeType;
@@ -1,5 +1,6 @@
1
+ import { ApiEnumApiType, ApiEnumItemType, ApiFields, ResponseColumn, ResponseColumnCustom, ResponseColumnItem } from '@rentman/backend-types';
1
2
  import { LinkTreeServiceInterface } from '../interfaces/LinkTreeServiceInterface';
2
- import { ApiRequestColumn, ApiRequestColumns, ItemType, ResponseColumn, ResponseColumnItemTypeMap, ResponseColumnMap } from '../types';
3
+ import { ApiRequestColumn, ApiRequestColumns, ResponseColumnItemTypeMap, ResponseColumnMap } from '../types';
3
4
  export declare type RequestColumnMergeResult<T extends ApiRequestColumns = ApiRequestColumns, U extends ApiRequestColumns = ApiRequestColumns> = {
4
5
  merged: T;
5
6
  difference: U;
@@ -15,25 +16,25 @@ export declare class ColumnUtil {
15
16
  * - For {@link ApiLinkTreeType.DIRECT direct links} it will be a columnId
16
17
  * - For {@link ApiLinkTreeType.ITEMTABLE itemtable links} it will be 'itemtype' and 'item'
17
18
  */
18
- getColumnsFromLink(parentType: ItemType, itemType: ItemType): ApiRequestColumn[];
19
+ getColumnsFromLink(parentType: ApiEnumItemType, itemType: ApiEnumItemType): ApiRequestColumn[];
19
20
  getColumnPath(columns: ResponseColumn[], renderAs: null | string): string;
20
21
  getDateFormatOptions(columnType?: 'datetime'): {
21
22
  'J-M-Y': string;
22
23
  'J-M': string;
23
24
  'j+F+Y': string;
24
25
  'D+j+F+Y': string;
25
- 'F': string;
26
- 'f': string;
27
- 'D': string;
28
- 'd': string;
26
+ F: string;
27
+ f: string;
28
+ D: string;
29
+ d: string;
29
30
  };
30
31
  isStringColumn(column: ResponseColumn): boolean;
31
32
  isFloatColumn(column: ResponseColumn): boolean;
32
33
  isIntColumn(column: ResponseColumn): boolean;
33
34
  isNumberColumn(column: ResponseColumn): boolean;
34
- isCustomColumn(column: ResponseColumn): boolean;
35
+ isCustomColumn<ItemTypeType extends ApiEnumItemType, ColumnId extends keyof ApiFields[ItemTypeType]>(column: ResponseColumn<ItemTypeType, ColumnId>): column is ResponseColumnCustom<ItemTypeType, ColumnId>;
35
36
  isAggregateColumn(column: ResponseColumn): boolean;
36
- isItemColumn(column: ResponseColumn, includeId?: boolean): boolean;
37
+ isItemColumn<ItemTypeType extends ApiEnumItemType, ColumnId extends keyof ApiFields[ItemTypeType]>(column: ResponseColumn<ItemTypeType, ColumnId>, includeId?: boolean): column is ResponseColumnItem<ItemTypeType, ColumnId>;
37
38
  isDateColumn(column: ResponseColumn): boolean;
38
39
  isRenderedColumn(column: ResponseColumn): boolean;
39
40
  isFilteredColumn(column: ResponseColumn): boolean;
@@ -44,15 +45,15 @@ export declare class ColumnUtil {
44
45
  isSearchableColumn(column: ResponseColumn): boolean;
45
46
  getDefaultWeight(column: ResponseColumn): number;
46
47
  getComparators(column: ResponseColumn & {
47
- type: 'dimension' | 'weight' | 'price';
48
+ type: ApiEnumApiType.TYPE_DIMENSION | ApiEnumApiType.TYPE_WEIGHT | ApiEnumApiType.TYPE_PRICE;
48
49
  }): ['=', '>', '<'];
49
50
  getComparators(column: ResponseColumn & {
50
- type: 'date' | 'datetime' | 'time' | 'duration';
51
+ type: ApiEnumApiType.TYPE_DATE | ApiEnumApiType.TYPE_DATETIME | ApiEnumApiType.TYPE_DURATION;
51
52
  }): ['>', '<'];
52
53
  getComparators(column: ResponseColumn): ['=', '!='];
53
54
  containsColumn(requestColumn: ApiRequestColumn, destination: ApiRequestColumn[]): boolean;
54
55
  containsDerivedColumns(requestColumns: ApiRequestColumn[]): boolean;
55
- responseColumnsAvailable(itemType: ItemType, requestColumns: ApiRequestColumn[], responseColumnMap: ResponseColumnItemTypeMap): boolean;
56
+ responseColumnsAvailable(itemType: ApiEnumItemType, requestColumns: ApiRequestColumn[], responseColumnMap: ResponseColumnItemTypeMap): boolean;
56
57
  copyRequestColumns(columns: true): true;
57
58
  copyRequestColumns(columns: ApiRequestColumn[]): ApiRequestColumn[];
58
59
  copyRequestColumn(requestColumn: ApiRequestColumn): ApiRequestColumn;
@@ -1,5 +1,6 @@
1
+ import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
1
2
  import { ItemEntry } from '../models';
2
- import { ApiResponse, EntryParentNull, FieldMap, ItemId, ItemIdConversionMap, ItemType } from '../types';
3
+ import { ApiResponse, EntryParentNull, FieldMap, ItemIdConversionMap } from '../types';
3
4
  import { ColumnInfo } from './ColumnInfo';
4
5
  import { KeyService } from './KeyService';
5
6
  /**
@@ -12,16 +13,16 @@ import { KeyService } from './KeyService';
12
13
  export declare class ConversionMapService {
13
14
  private keyService;
14
15
  constructor(keyService: KeyService);
15
- createLocalConversionMap(itemType: ItemType, itemId: ItemId, doExtend: boolean | undefined, apiResponse: ApiResponse): ItemIdConversionMap;
16
- expandLocalConversionMap(parentType: ItemType, parentId: ItemId, apiResponse: ApiResponse, conversionMap: ItemIdConversionMap): void;
16
+ createLocalConversionMap(itemType: ApiEnumItemType, itemId: ItemId, doExtend: boolean | undefined, apiResponse: ApiResponse): ItemIdConversionMap;
17
+ expandLocalConversionMap(parentType: ApiEnumItemType, parentId: ItemId, apiResponse: ApiResponse, conversionMap: ItemIdConversionMap): void;
17
18
  expandConversionMap(itemEntry: ItemEntry, conversionMap: ItemIdConversionMap, newItemId?: ItemId): ItemId;
18
19
  batchExpandConversionMap(itemEntries: Array<ItemEntry<any>>, conversionMap: ItemIdConversionMap): ItemIdConversionMap;
19
- getConversionValue(itemType: ItemType, itemId: ItemId, map: ItemIdConversionMap): ItemId | undefined;
20
+ getConversionValue(itemType: ApiEnumItemType, itemId: ItemId, map: ItemIdConversionMap): ItemId | undefined;
20
21
  /**
21
22
  * @description
22
23
  * Updates the columns in `fields` using the `parent` and `conversionMap`.
23
24
  * @param parent - When retrieving an item the 'link' column is not present in the template response, and is
24
25
  * added at a later stage. The value for this column can be read from this parameter.
25
26
  */
26
- updateItemValues<ItemTypeType extends ItemType>(source: FieldMap<ItemTypeType>, destination: FieldMap<ItemTypeType>, itemColumns: Array<ColumnInfo<ItemTypeType>>, conversionMap: ItemIdConversionMap, parent?: EntryParentNull): void;
27
+ updateItemValues<ItemTypeType extends ApiEnumItemType>(source: FieldMap<ItemTypeType>, destination: FieldMap<ItemTypeType>, itemColumns: Array<ColumnInfo<ItemTypeType>>, conversionMap: ItemIdConversionMap, parent?: EntryParentNull): void;
27
28
  }
@@ -1,8 +1,9 @@
1
- import { ApiFormatter, CreateCompilation, KeyService } from '../classes';
1
+ import { ApiEnumItemType } from '@rentman/backend-types';
2
+ import { ApiFormatter, CreateCompilation, CreateRequestCompilationParent, KeyService } from '../classes';
2
3
  import { RequestColumnExpansionFactory } from '../factories';
3
- import { CreateRequestEntry, ItemType } from '../types';
4
+ import { CreateRequestEntry } from '../types';
4
5
  import { TransactionCache } from './cache/transaction/TransactionCache';
5
- export declare class CreateRequest<ItemTypeType extends ItemType> {
6
+ export declare class CreateRequest<ItemTypeType extends ApiEnumItemType> {
6
7
  private apiFormatter;
7
8
  private keyService;
8
9
  private requestColumnExpansionFactory;
@@ -12,7 +13,7 @@ export declare class CreateRequest<ItemTypeType extends ItemType> {
12
13
  requests: Array<CreateRequestEntry<ItemTypeType>>;
13
14
  constructor(apiFormatter: ApiFormatter, keyService: KeyService, requestColumnExpansionFactory: RequestColumnExpansionFactory, compilation: CreateCompilation, transaction: TransactionCache, breakupByParent?: boolean);
14
15
  finalizeRequest(requestResource: CreateRequestEntry<ItemTypeType>): CreateRequestEntry<ItemTypeType>;
15
- setRequestParent(parentType: ItemType, requestEntry: CreateRequestEntry<ItemTypeType>): boolean;
16
+ setRequestParent(parentType: CreateRequestCompilationParent, requestEntry: CreateRequestEntry<ItemTypeType>): boolean;
16
17
  run(): CreateRequestEntry<ItemTypeType>[];
17
18
  initializeRequest(): CreateRequestEntry<ItemTypeType>;
18
19
  private extendRequest;
@@ -1,6 +1,7 @@
1
- import { FieldMap, ItemId, ItemType } from '../types';
1
+ import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
2
+ import { FieldMap } from '../types';
2
3
  import { ColumnSet } from './ColumnSet';
3
- export declare type ChangesDeltaItemCreateDelta<ItemTypeType extends ItemType = any> = {
4
+ export declare type ChangesDeltaItemCreateDelta<ItemTypeType extends ApiEnumItemType = any> = {
4
5
  itemId: ItemId;
5
6
  fields: FieldMap<ItemTypeType>;
6
7
  columns: ColumnSet<ItemTypeType>;
@@ -8,9 +9,9 @@ export declare type ChangesDeltaItemCreateDelta<ItemTypeType extends ItemType =
8
9
  export declare class CreatedChangesDelta {
9
10
  private tuples;
10
11
  constructor();
11
- remove(itemType: ItemType, itemId: ItemId): boolean;
12
- add<ItemTypeType extends ItemType>(itemId: ItemId, fields: FieldMap<ItemTypeType>, columns: ColumnSet<ItemTypeType>): void;
12
+ remove(itemType: ApiEnumItemType, itemId: ItemId): boolean;
13
+ add<ItemTypeType extends ApiEnumItemType>(itemId: ItemId, fields: FieldMap<ItemTypeType>, columns: ColumnSet<ItemTypeType>): void;
13
14
  isEmpty(): boolean;
14
- forEach(callback: (tuple: ChangesDeltaItemCreateDelta, itemType: ItemType, index: number) => void): void;
15
- contains(itemType: ItemType): boolean;
15
+ forEach(callback: (tuple: ChangesDeltaItemCreateDelta, itemType: ApiEnumItemType, index: number) => void): void;
16
+ contains(itemType: ApiEnumItemType): boolean;
16
17
  }
@@ -1,8 +1,9 @@
1
+ import { ApiEnumItemType } from '@rentman/backend-types';
1
2
  import { ItemEntry } from '../models';
2
- import { EntryParent, FieldMap, ItemIdConversionMap, ItemType } from '../types';
3
+ import { EntryParent, FieldMap, ItemIdConversionMap } from '../types';
3
4
  import { ChangesDeltaBase } from './ChangesDeltaBase';
4
5
  import { ItemEntryService } from './ItemEntryService';
5
- export declare type InternalCreateDelta<ItemTypeType extends ItemType = any> = {
6
+ export declare type InternalCreateDelta<ItemTypeType extends ApiEnumItemType = any> = {
6
7
  entry: ItemEntry<ItemTypeType>;
7
8
  fields: FieldMap<ItemTypeType>;
8
9
  };
@@ -29,7 +30,7 @@ export declare class InternalChangesDelta extends ChangesDeltaBase {
29
30
  };
30
31
  itemIdConversionMap: ItemIdConversionMap;
31
32
  constructor(itemEntryService: ItemEntryService);
32
- setItemCreated<ItemTypeType extends ItemType>(itemEntry: ItemEntry<ItemTypeType>, fields: FieldMap<ItemTypeType>): void;
33
+ setItemCreated<ItemTypeType extends ApiEnumItemType>(itemEntry: ItemEntry<ItemTypeType>, fields: FieldMap<ItemTypeType>): void;
33
34
  /**
34
35
  * @remark
35
36
  * Parent fields are non-writable so we need to keep track of moved entries another way (to do a linkTo request)