@rentman/rm-core 12.1.2 → 12.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (146) hide show
  1. package/changelog.md +1502 -1495
  2. package/dist/rm-core.js +831 -911
  3. package/dist/rm-core.min.js +1 -1
  4. package/dist/types/src/FieldLookupProxy.d.ts +4 -4
  5. package/dist/types/src/classes/ApiFormatter.d.ts +56 -76
  6. package/dist/types/src/classes/ApiRequestService.d.ts +18 -18
  7. package/dist/types/src/classes/ApiResponseProcessor.d.ts +29 -29
  8. package/dist/types/src/classes/BusinessLogicManager/BusinessLogicManager.d.ts +100 -100
  9. package/dist/types/src/classes/BusinessLogicManager/BusinessLogicRule.d.ts +93 -93
  10. package/dist/types/src/classes/BusinessLogicManager/Customfield/CustomFieldTypeBusinessLogicRule.d.ts +17 -17
  11. package/dist/types/src/classes/BusinessLogicManager/Documents/DocumentTemplateBusinessLogicRule.d.ts +24 -24
  12. package/dist/types/src/classes/BusinessLogicManager/Exemplaar/ExemplaarAanschafdatumBusinessLogicRule.d.ts +13 -13
  13. package/dist/types/src/classes/BusinessLogicManager/Factuur/FactuurBetalingsconditieBusinessLogicRule.d.ts +19 -19
  14. package/dist/types/src/classes/BusinessLogicManager/Factuur/FactuurDatumBusinessLogicRule.d.ts +18 -18
  15. package/dist/types/src/classes/BusinessLogicManager/Factuur/FactuurNumberseriesBusinessLogicRule.d.ts +13 -13
  16. package/dist/types/src/classes/BusinessLogicManager/Functie/FunctieNaaminternBusinessLogicRule.d.ts +17 -17
  17. package/dist/types/src/classes/BusinessLogicManager/Functie/FunctieTwowayBusinessLogicRule.d.ts +13 -13
  18. package/dist/types/src/classes/BusinessLogicManager/Materiaal/MateriaalTelexemplarenBusinessLogicRule.d.ts +15 -15
  19. package/dist/types/src/classes/BusinessLogicManager/Materiaal/MateriaalTypeBusinessLogicRule.d.ts +17 -17
  20. package/dist/types/src/classes/BusinessLogicManager/Materiaal/MateriaalVerhuurBusinessLogicRule.d.ts +17 -17
  21. package/dist/types/src/classes/BusinessLogicManager/Materiaal/SurfaceArticleSizeBusinessLogicRule.d.ts +18 -18
  22. package/dist/types/src/classes/BusinessLogicManager/OfferteContract/OfferteContractDatumBusinessLogicRule.d.ts +25 -25
  23. package/dist/types/src/classes/BusinessLogicManager/PlanningPersoneelTransport/PlanningPersoneelTransportBusinessLogicRule.d.ts +28 -28
  24. package/dist/types/src/classes/BusinessLogicManager/Project/ProjectClientNoteBusinessLogicRule.d.ts +22 -22
  25. package/dist/types/src/classes/BusinessLogicManager/Reparatie/ReparatieExemplaarAantalBusinessLogicRule.d.ts +13 -13
  26. package/dist/types/src/classes/BusinessLogicManager/Reparatie/ReparatieExemplaarLocationBusinessLogicRule.d.ts +23 -23
  27. package/dist/types/src/classes/BusinessLogicManager/Rol/RolDocumentAccessBusinessLogicRule.d.ts +17 -17
  28. package/dist/types/src/classes/BusinessLogicManager/Rol/RolEditOwnDataBusinessLogicRule.d.ts +17 -17
  29. package/dist/types/src/classes/BusinessLogicManager/Rol/RolFileAccessBusinessLogicRule.d.ts +17 -17
  30. package/dist/types/src/classes/BusinessLogicManager/Rol/RolPersoneelsplannerToegangBusinessLogicRule.d.ts +17 -17
  31. package/dist/types/src/classes/BusinessLogicManager/Rol/RolProjectenBewerkenBusinessLogicRule.d.ts +17 -17
  32. package/dist/types/src/classes/BusinessLogicManager/Rol/RolProjectenToegangBusinessLogicRule.d.ts +17 -17
  33. package/dist/types/src/classes/CacheSyncer.d.ts +71 -71
  34. package/dist/types/src/classes/ChangesCompilation.d.ts +33 -33
  35. package/dist/types/src/classes/ChangesDelta.d.ts +65 -65
  36. package/dist/types/src/classes/ChangesDeltaBase.d.ts +103 -88
  37. package/dist/types/src/classes/ChangesProcessor.d.ts +40 -40
  38. package/dist/types/src/classes/CollectionEntryService.d.ts +24 -24
  39. package/dist/types/src/classes/CollectionResourceService.d.ts +6 -6
  40. package/dist/types/src/classes/ColumnCache.d.ts +19 -19
  41. package/dist/types/src/classes/ColumnExpansion.d.ts +19 -19
  42. package/dist/types/src/classes/ColumnHandler.d.ts +20 -20
  43. package/dist/types/src/classes/ColumnInfo.d.ts +15 -15
  44. package/dist/types/src/classes/ColumnSet.d.ts +37 -37
  45. package/dist/types/src/classes/ColumnUtil.d.ts +108 -108
  46. package/dist/types/src/classes/ConversionMapService.d.ts +25 -25
  47. package/dist/types/src/classes/CreateRequest.d.ts +17 -17
  48. package/dist/types/src/classes/CreatedChangesDelta.d.ts +17 -17
  49. package/dist/types/src/classes/InternalChangesDelta.d.ts +44 -44
  50. package/dist/types/src/classes/ItemCache.d.ts +27 -27
  51. package/dist/types/src/classes/ItemCreateService.d.ts +18 -18
  52. package/dist/types/src/classes/ItemEntryService.d.ts +32 -32
  53. package/dist/types/src/classes/KeyService.d.ts +18 -18
  54. package/dist/types/src/classes/LockService.d.ts +28 -28
  55. package/dist/types/src/classes/ModuleChangesCompilation.d.ts +17 -17
  56. package/dist/types/src/classes/ParentChangesDelta.d.ts +41 -41
  57. package/dist/types/src/classes/QueryColumnExtractor.d.ts +18 -18
  58. package/dist/types/src/classes/QueryContainsLocalIdParser.d.ts +17 -17
  59. package/dist/types/src/classes/QueryLinkedToParser.d.ts +17 -17
  60. package/dist/types/src/classes/QueryLocallyMatchableParser.d.ts +20 -20
  61. package/dist/types/src/classes/QueryMatcher.d.ts +25 -25
  62. package/dist/types/src/classes/QueryParser.d.ts +25 -25
  63. package/dist/types/src/classes/QueryParserBase.d.ts +20 -20
  64. package/dist/types/src/classes/QueryParserIdUpdater.d.ts +17 -17
  65. package/dist/types/src/classes/QueryService.d.ts +12 -12
  66. package/dist/types/src/classes/RequestBuffer.d.ts +26 -26
  67. package/dist/types/src/classes/RequestBufferManager.d.ts +21 -21
  68. package/dist/types/src/classes/RequestColumnExpansion.d.ts +13 -13
  69. package/dist/types/src/classes/RequestColumnsOperationsCache.d.ts +46 -46
  70. package/dist/types/src/classes/SocketMessageHandler.d.ts +34 -34
  71. package/dist/types/src/classes/TemplateCache.d.ts +64 -64
  72. package/dist/types/src/classes/Util.d.ts +28 -28
  73. package/dist/types/src/classes/cache/AbstractCache.d.ts +85 -85
  74. package/dist/types/src/classes/cache/CachedQueryHandlerBase.d.ts +70 -70
  75. package/dist/types/src/classes/cache/ItemHandlerBase.d.ts +107 -107
  76. package/dist/types/src/classes/cache/server/ServerCache.d.ts +65 -65
  77. package/dist/types/src/classes/cache/server/ServerCachedQueryHandler.d.ts +27 -27
  78. package/dist/types/src/classes/cache/server/ServerItemHandler.d.ts +39 -39
  79. package/dist/types/src/classes/cache/transaction/TransactionCache.d.ts +298 -298
  80. package/dist/types/src/classes/cache/transaction/TransactionCachedQueryHandler.d.ts +50 -50
  81. package/dist/types/src/classes/cache/transaction/TransactionCollectionHandler.d.ts +24 -24
  82. package/dist/types/src/classes/cache/transaction/TransactionEventHandler.d.ts +21 -21
  83. package/dist/types/src/classes/cache/transaction/TransactionItemHandler.d.ts +80 -80
  84. package/dist/types/src/classes/cache/transaction/TransactionValidator.d.ts +33 -33
  85. package/dist/types/src/constants.d.ts +7 -7
  86. package/dist/types/src/core.d.ts +48 -48
  87. package/dist/types/src/factories/ApiResponseProcessorFactory.d.ts +6 -6
  88. package/dist/types/src/factories/CacheSyncerFactory.d.ts +14 -14
  89. package/dist/types/src/factories/ChangesCompilationFactory.d.ts +5 -5
  90. package/dist/types/src/factories/ChangesDeltaFactory.d.ts +13 -13
  91. package/dist/types/src/factories/ChangesProcessorFactory.d.ts +13 -13
  92. package/dist/types/src/factories/CollectionEntryFactory.d.ts +11 -11
  93. package/dist/types/src/factories/CollectionResourceFactory.d.ts +18 -18
  94. package/dist/types/src/factories/ColumnExpansionFactory.d.ts +7 -7
  95. package/dist/types/src/factories/ColumnInfoFactory.d.ts +7 -7
  96. package/dist/types/src/factories/ColumnSetFactory.d.ts +18 -18
  97. package/dist/types/src/factories/CreateRequestFactory.d.ts +9 -9
  98. package/dist/types/src/factories/ItemCacheFactory.d.ts +6 -6
  99. package/dist/types/src/factories/ItemEntryFactory.d.ts +12 -12
  100. package/dist/types/src/factories/ItemResourceFactory.d.ts +11 -11
  101. package/dist/types/src/factories/ModuleChangesCompilationFactory.d.ts +6 -6
  102. package/dist/types/src/factories/QueryMatcherFactory.d.ts +8 -8
  103. package/dist/types/src/factories/QueryParserFactory.d.ts +5 -5
  104. package/dist/types/src/factories/RequestColumnExpansionFactory.d.ts +6 -6
  105. package/dist/types/src/factories/RequestColumnsOperationsCacheFactory.d.ts +8 -8
  106. package/dist/types/src/factories/TemplateFactory.d.ts +8 -8
  107. package/dist/types/src/factories/TransactionCacheFactory.d.ts +13 -13
  108. package/dist/types/src/index.d.ts +1 -1
  109. package/dist/types/src/interfaces/AbstractCacheDependencyInterface.d.ts +38 -38
  110. package/dist/types/src/interfaces/ApiRequestServiceInterface.d.ts +12 -12
  111. package/dist/types/src/interfaces/AuthInterface.d.ts +10 -10
  112. package/dist/types/src/interfaces/ErrorHandlerInterface.d.ts +6 -6
  113. package/dist/types/src/interfaces/ExceptionHandlerInterface.d.ts +3 -3
  114. package/dist/types/src/interfaces/LinkTreeServiceInterface.d.ts +4 -4
  115. package/dist/types/src/interfaces/PromiseLibraryInterface.d.ts +33 -33
  116. package/dist/types/src/interfaces/ServerCacheDependencyInterface.d.ts +5 -5
  117. package/dist/types/src/interfaces/SocketMessageInterface.d.ts +3 -3
  118. package/dist/types/src/interfaces/TransactionCollectionHandlerDependencyInterface.d.ts +17 -17
  119. package/dist/types/src/interfaces/TransactionItemHandlerDependencyInterface.d.ts +22 -22
  120. package/dist/types/src/internal.d.ts +128 -128
  121. package/dist/types/src/models/CachedQueryItem.d.ts +40 -40
  122. package/dist/types/src/models/CollectionEntry.d.ts +22 -22
  123. package/dist/types/src/models/CollectionOptions.d.ts +44 -44
  124. package/dist/types/src/models/CollectionResource.d.ts +87 -87
  125. package/dist/types/src/models/ItemEntry.d.ts +19 -19
  126. package/dist/types/src/models/ItemEntryOptions.d.ts +8 -8
  127. package/dist/types/src/models/ItemResource.d.ts +95 -95
  128. package/dist/types/src/models/Template.d.ts +11 -11
  129. package/dist/types/src/types/ItemTypesCollection.d.ts +361 -361
  130. package/dist/types/src/types/PromiseInterface.d.ts +2 -2
  131. package/dist/types/tests/integration/core.test.d.ts +1 -1
  132. package/dist/types/tests/integration/helpers/helpers.d.ts +32 -32
  133. package/dist/types/tests/integration/transactions/field_lookup.test.d.ts +1 -1
  134. package/dist/types/tests/integration/transactions/get_by.test.d.ts +1 -1
  135. package/dist/types/tests/integration/transactions/updates.test.d.ts +1 -1
  136. package/dist/types/tests/mocks/ApiMocked.d.ts +19 -19
  137. package/dist/types/tests/mocks/PromiseLibrary.mocked.d.ts +2 -2
  138. package/dist/types/tests/regression/RM4_17754.test.d.ts +1 -1
  139. package/dist/types/tests/regression/RM4_18216.test.d.ts +1 -1
  140. package/dist/types/tests/unit/query_contains_local_id_parser.test.d.ts +1 -1
  141. package/dist/types/tests/unit/query_linked_to_parser.test.d.ts +1 -1
  142. package/dist/types/tests/unit/query_matcher.test.d.ts +1 -1
  143. package/dist/types/tests/unit/query_parser_id_updater.test.d.ts +1 -1
  144. package/dist/types/tests/unit/query_service.test.d.ts +1 -1
  145. package/package.json +57 -57
  146. package/readme.md +16 -16
@@ -1,24 +1,24 @@
1
- import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
2
- import { ApiQuery, CollectionOptions, CollectionOptionsInterface, CollectionQuery, EntryParentNull, ItemEntry, QueryParserFactory, QueryService } from '../internal';
3
- export declare class CollectionEntryService {
4
- private queryParserFactory;
5
- private queryService;
6
- constructor(queryParserFactory: QueryParserFactory, queryService: QueryService);
7
- createUnfoundLocalCollectionError(itemType: ApiEnumItemType): {
8
- message: string;
9
- };
10
- cloneOptions(options: CollectionOptions, parent: EntryParentNull): CollectionOptions<any, import("../internal").ItemTypeColumnIds<any>>;
11
- processOptions<ItemTypeType extends ApiEnumItemType>(options: CollectionOptionsInterface<ItemTypeType>): CollectionOptions;
12
- createQuery(query: ApiQuery): CollectionQuery;
13
- createQueryFromOptions(options: CollectionOptions): CollectionQuery;
14
- createBatchedLinkToQuery(parentType: ApiEnumItemType, parentIdArray: ItemId[], options: CollectionOptions): CollectionQuery;
15
- getIdArray(itemEntries: ItemEntry[], accumulator?: ItemId[]): ItemId[];
16
- /**
17
- * @description
18
- * Filters an array of {@link ItemEntry ItemEntries} according to the callback function.
19
- * Does an in-place replacement of the items in the array that do match the condition (keeping the array reference)
20
- *
21
- * @returns {@link ItemEntry ItemEntries} that failed the condition
22
- */
23
- filterArray<T extends ItemEntry = ItemEntry>(itemEntries: T[], callback: (itemEntry: T) => boolean): T[];
24
- }
1
+ import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
2
+ import { ApiQuery, CollectionOptions, CollectionOptionsInterface, CollectionQuery, EntryParentNull, ItemEntry, QueryParserFactory, QueryService } from '../internal';
3
+ export declare class CollectionEntryService {
4
+ private queryParserFactory;
5
+ private queryService;
6
+ constructor(queryParserFactory: QueryParserFactory, queryService: QueryService);
7
+ createUnfoundLocalCollectionError(itemType: ApiEnumItemType): {
8
+ message: string;
9
+ };
10
+ cloneOptions(options: CollectionOptions, parent: EntryParentNull): CollectionOptions<any, import("../internal").ItemTypeColumnIds<any>>;
11
+ processOptions<ItemTypeType extends ApiEnumItemType>(options: CollectionOptionsInterface<ItemTypeType>): CollectionOptions;
12
+ createQuery(query: ApiQuery): CollectionQuery;
13
+ createQueryFromOptions(options: CollectionOptions): CollectionQuery;
14
+ createBatchedLinkToQuery(parentType: ApiEnumItemType, parentIdArray: ItemId[], options: CollectionOptions): CollectionQuery;
15
+ getIdArray(itemEntries: ItemEntry[], accumulator?: ItemId[]): ItemId[];
16
+ /**
17
+ * @description
18
+ * Filters an array of {@link ItemEntry ItemEntries} according to the callback function.
19
+ * Does an in-place replacement of the items in the array that do match the condition (keeping the array reference)
20
+ *
21
+ * @returns {@link ItemEntry ItemEntries} that failed the condition
22
+ */
23
+ filterArray<T extends ItemEntry = ItemEntry>(itemEntries: T[], callback: (itemEntry: T) => boolean): T[];
24
+ }
@@ -1,6 +1,6 @@
1
- import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
2
- import { CollectionOptions, CollectionOptionsInterface, ItemResource } from '../internal';
3
- export declare class CollectionResourceService {
4
- processOptions<ItemTypeType extends ApiEnumItemType>(options: CollectionOptionsInterface<ItemTypeType>): CollectionOptions<ItemTypeType>;
5
- getIdArray(itemResources: ItemResource[]): ItemId[];
6
- }
1
+ import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
2
+ import { CollectionOptions, CollectionOptionsInterface, ItemResource } from '../internal';
3
+ export declare class CollectionResourceService {
4
+ processOptions<ItemTypeType extends ApiEnumItemType>(options: CollectionOptionsInterface<ItemTypeType>): CollectionOptions<ItemTypeType>;
5
+ getIdArray(itemResources: ItemResource[]): ItemId[];
6
+ }
@@ -1,19 +1,19 @@
1
- import { ApiEnumItemType, ResponseColumn } from '@rentman/backend-types';
2
- import { ApiRequestColumns, ColumnUtil, ResponseColumnItemTypeMap } from '../internal';
3
- export declare class ColumnCache {
4
- private columnUtil;
5
- private cache;
6
- private allColumns;
7
- constructor(columnUtil: ColumnUtil);
8
- setColumn(itemType: ApiEnumItemType, responseColumn: ResponseColumn): ResponseColumn;
9
- setColumns(itemType: ApiEnumItemType, requestColumns: ApiRequestColumns, responseColumns: ResponseColumnItemTypeMap, columnFilter: string | false): ResponseColumnItemTypeMap;
10
- retrieve(itemType: ApiEnumItemType, requestColumns: ApiRequestColumns): {
11
- cached: ResponseColumnItemTypeMap;
12
- missing: ApiRequestColumns;
13
- };
14
- containsAll(itemType: ApiEnumItemType): boolean;
15
- getColumns(itemType: ApiEnumItemType): ResponseColumnItemTypeMap;
16
- getColumn(itemType: ApiEnumItemType, columnId: string): ResponseColumn | undefined;
17
- private retrieveColumns;
18
- private retrieveColumn;
19
- }
1
+ import { ApiEnumItemType, ResponseColumn } from '@rentman/backend-types';
2
+ import { ApiRequestColumns, ColumnUtil, ResponseColumnItemTypeMap } from '../internal';
3
+ export declare class ColumnCache {
4
+ private columnUtil;
5
+ private cache;
6
+ private allColumns;
7
+ constructor(columnUtil: ColumnUtil);
8
+ setColumn(itemType: ApiEnumItemType, responseColumn: ResponseColumn): ResponseColumn;
9
+ setColumns(itemType: ApiEnumItemType, requestColumns: ApiRequestColumns, responseColumns: ResponseColumnItemTypeMap, columnFilter: string | false): ResponseColumnItemTypeMap;
10
+ retrieve(itemType: ApiEnumItemType, requestColumns: ApiRequestColumns): {
11
+ cached: ResponseColumnItemTypeMap;
12
+ missing: ApiRequestColumns;
13
+ };
14
+ containsAll(itemType: ApiEnumItemType): boolean;
15
+ getColumns(itemType: ApiEnumItemType): ResponseColumnItemTypeMap;
16
+ getColumn(itemType: ApiEnumItemType, columnId: string): ResponseColumn | undefined;
17
+ private retrieveColumns;
18
+ private retrieveColumn;
19
+ }
@@ -1,19 +1,19 @@
1
- import { ApiEnumItemType } from '@rentman/backend-types';
2
- import { ApiRequestColumns, ColumnExpansionResult, ColumnInfo, ColumnInfoFactory, ColumnSet, ResponseColumnItemTypeMap } from '../internal';
3
- /**
4
- * @description
5
- * 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
6
- */
7
- export declare class ColumnExpansion<ItemTypeType extends ApiEnumItemType> {
8
- private columnInfoFactory;
9
- itemType: ItemTypeType;
10
- responseColumns: ResponseColumnItemTypeMap;
11
- private expansionMap;
12
- private expansionMapSize;
13
- private requestColumnsTrue;
14
- private requestColumns;
15
- constructor(columnInfoFactory: ColumnInfoFactory, itemType: ItemTypeType, requestColumns: ApiRequestColumns, responseColumns: ResponseColumnItemTypeMap);
16
- run(columnSet: ColumnSet<ItemTypeType>): ColumnExpansionResult<ItemTypeType> | null;
17
- aggregateRootColumns(): ColumnInfo<ItemTypeType>[];
18
- private expandRootColumnMap;
19
- }
1
+ import { ApiEnumItemType } from '@rentman/backend-types';
2
+ import { ApiRequestColumns, ColumnExpansionResult, ColumnInfo, ColumnInfoFactory, ColumnSet, ResponseColumnItemTypeMap } from '../internal';
3
+ /**
4
+ * @description
5
+ * 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
6
+ */
7
+ export declare class ColumnExpansion<ItemTypeType extends ApiEnumItemType> {
8
+ private columnInfoFactory;
9
+ itemType: ItemTypeType;
10
+ responseColumns: ResponseColumnItemTypeMap;
11
+ private expansionMap;
12
+ private expansionMapSize;
13
+ private requestColumnsTrue;
14
+ private requestColumns;
15
+ constructor(columnInfoFactory: ColumnInfoFactory, itemType: ItemTypeType, requestColumns: ApiRequestColumns, responseColumns: ResponseColumnItemTypeMap);
16
+ run(columnSet: ColumnSet<ItemTypeType>): ColumnExpansionResult<ItemTypeType> | null;
17
+ aggregateRootColumns(): ColumnInfo<ItemTypeType>[];
18
+ private expandRootColumnMap;
19
+ }
@@ -1,20 +1,20 @@
1
- import { ApiEnumItemType, ResponseColumn } from '@rentman/backend-types';
2
- import { ApiRequestColumns, ApiRequestService, ColumnCache, ColumnUtil, ErrorHandlerInterface, PromiseInterface, PromiseLibraryInterface, ResponseColumnItemTypeMap } from '../internal';
3
- export declare class ColumnHandler {
4
- private apiRequestService;
5
- private errorHandler;
6
- private promiseService;
7
- private cache;
8
- private columnUtil;
9
- constructor(apiRequestService: ApiRequestService, errorHandler: ErrorHandlerInterface, promiseService: PromiseLibraryInterface, cache: ColumnCache, columnUtil: ColumnUtil);
10
- setColumn(itemType: ApiEnumItemType, responseColumn: ResponseColumn): ResponseColumn;
11
- setColumns(itemType: ApiEnumItemType, requestColumns: ApiRequestColumns, responseColumns: ResponseColumnItemTypeMap, filter?: string | false): ResponseColumnItemTypeMap;
12
- fetchItemTypeTranslations(itemTypes: ApiEnumItemType[]): PromiseInterface<{
13
- [itemType: string]: string;
14
- }>;
15
- request(itemType: ApiEnumItemType, columns: ApiRequestColumns, params?: {
16
- filter: string | false;
17
- }): PromiseInterface<ResponseColumnItemTypeMap>;
18
- fetch(itemType: ApiEnumItemType, requestColumns: ApiRequestColumns, params?: any): PromiseInterface<ResponseColumnItemTypeMap>;
19
- fetchAll(itemType: ApiEnumItemType): PromiseInterface<ResponseColumnItemTypeMap>;
20
- }
1
+ import { ApiEnumItemType, ResponseColumn } from '@rentman/backend-types';
2
+ import { ApiRequestColumns, ApiRequestService, ColumnCache, ColumnUtil, ErrorHandlerInterface, PromiseInterface, PromiseLibraryInterface, ResponseColumnItemTypeMap } from '../internal';
3
+ export declare class ColumnHandler {
4
+ private apiRequestService;
5
+ private errorHandler;
6
+ private promiseService;
7
+ private cache;
8
+ private columnUtil;
9
+ constructor(apiRequestService: ApiRequestService, errorHandler: ErrorHandlerInterface, promiseService: PromiseLibraryInterface, cache: ColumnCache, columnUtil: ColumnUtil);
10
+ setColumn(itemType: ApiEnumItemType, responseColumn: ResponseColumn): ResponseColumn;
11
+ setColumns(itemType: ApiEnumItemType, requestColumns: ApiRequestColumns, responseColumns: ResponseColumnItemTypeMap, filter?: string | false): ResponseColumnItemTypeMap;
12
+ fetchItemTypeTranslations(itemTypes: ApiEnumItemType[]): PromiseInterface<{
13
+ [itemType: string]: string;
14
+ }>;
15
+ request(itemType: ApiEnumItemType, columns: ApiRequestColumns, params?: {
16
+ filter: string | false;
17
+ }): PromiseInterface<ResponseColumnItemTypeMap>;
18
+ fetch(itemType: ApiEnumItemType, requestColumns: ApiRequestColumns, params?: any): PromiseInterface<ResponseColumnItemTypeMap>;
19
+ fetchAll(itemType: ApiEnumItemType): PromiseInterface<ResponseColumnItemTypeMap>;
20
+ }
@@ -1,15 +1,15 @@
1
- import { ApiEnumItemType, GetColumnType } from '@rentman/backend-types';
2
- import { ItemTypeColumnId } from '..';
3
- export declare class ColumnInfo<ItemTypeType extends ApiEnumItemType = any, ColumnId extends ItemTypeColumnId<ItemTypeType> = any> {
4
- readonly apiColumn: GetColumnType<ItemTypeType, ColumnId>;
5
- readonly parent: ColumnInfo | null;
6
- id: ColumnId;
7
- level: number;
8
- path: string;
9
- tailPath: string;
10
- itemType: ItemTypeType | null;
11
- children: ColumnInfo<ItemTypeType>[];
12
- isLeaf: boolean;
13
- constructor(apiColumn: GetColumnType<ItemTypeType, ColumnId>, parent?: ColumnInfo | null);
14
- setChildren(itemType: ItemTypeType, children: ColumnInfo<ItemTypeType>[]): this;
15
- }
1
+ import { ApiEnumItemType, GetColumnType } from '@rentman/backend-types';
2
+ import { ItemTypeColumnId } from '..';
3
+ export declare class ColumnInfo<ItemTypeType extends ApiEnumItemType = any, ColumnId extends ItemTypeColumnId<ItemTypeType> = any> {
4
+ readonly apiColumn: GetColumnType<ItemTypeType, ColumnId>;
5
+ readonly parent: ColumnInfo | null;
6
+ id: ColumnId;
7
+ level: number;
8
+ path: string;
9
+ tailPath: string;
10
+ itemType: ItemTypeType | null;
11
+ children: ColumnInfo<ItemTypeType>[];
12
+ isLeaf: boolean;
13
+ constructor(apiColumn: GetColumnType<ItemTypeType, ColumnId>, parent?: ColumnInfo | null);
14
+ setChildren(itemType: ItemTypeType, children: ColumnInfo<ItemTypeType>[]): this;
15
+ }
@@ -1,37 +1,37 @@
1
- import { ApiEnumItemType } from '@rentman/backend-types';
2
- import { ApiRequestColumns, ColumnExpansionResult, ColumnInfo, ColumnSetFactory, ColumnUtil, RequestColumnMergeResult, ResponseColumnItemTypeMap } from '../internal';
3
- export declare class ColumnSet<ItemTypeType extends ApiEnumItemType = any> {
4
- private columnUtil;
5
- private columnSetFactory;
6
- itemType: ItemTypeType;
7
- id: number;
8
- request: ApiRequestColumns;
9
- requestColumnsTrue: boolean;
10
- response: ResponseColumnItemTypeMap;
11
- link: ColumnInfo<ItemTypeType> | null;
12
- main: ColumnInfo<ItemTypeType>[];
13
- derived: ColumnInfo<ItemTypeType>[];
14
- root: ColumnInfo<ItemTypeType>[];
15
- leaf: ColumnInfo<ItemTypeType>[];
16
- formatted: {
17
- main: ColumnInfo<ItemTypeType>[];
18
- derived: ColumnInfo<ItemTypeType>[];
19
- };
20
- filtered: ColumnInfo<ItemTypeType>[];
21
- custom: ColumnInfo<ItemTypeType>[];
22
- searchable: ColumnInfo<ItemTypeType>[];
23
- item: ColumnInfo<ItemTypeType>[];
24
- notItem: ColumnInfo<ItemTypeType>[];
25
- constructor(columnUtil: ColumnUtil, columnSetFactory: ColumnSetFactory, itemType: ItemTypeType);
26
- groupColumnInfo(columnInfo: ColumnInfo): void;
27
- toJSON(): {
28
- main: any[];
29
- derived: any[];
30
- };
31
- isSupersetOf(columnsToCompare: ApiRequestColumns): boolean;
32
- mergeRequestColumns(requestColumns: ApiRequestColumns): RequestColumnMergeResult;
33
- mergeResponseColumns(responseColumns: ResponseColumnItemTypeMap): ResponseColumnItemTypeMap;
34
- merge(columnSet: ColumnSet<ItemTypeType>): ColumnSet<ItemTypeType>;
35
- expand(requestColumns: ApiRequestColumns, requestColumnsTrue: boolean, responseColumns: ResponseColumnItemTypeMap): ColumnExpansionResult<ItemTypeType>;
36
- private getMergedColumnSet;
37
- }
1
+ import { ApiEnumItemType } from '@rentman/backend-types';
2
+ import { ApiRequestColumns, ColumnExpansionResult, ColumnInfo, ColumnSetFactory, ColumnUtil, RequestColumnMergeResult, ResponseColumnItemTypeMap } from '../internal';
3
+ export declare class ColumnSet<ItemTypeType extends ApiEnumItemType = any> {
4
+ private columnUtil;
5
+ private columnSetFactory;
6
+ itemType: ItemTypeType;
7
+ id: number;
8
+ request: ApiRequestColumns;
9
+ requestColumnsTrue: boolean;
10
+ response: ResponseColumnItemTypeMap;
11
+ link: ColumnInfo<ItemTypeType> | null;
12
+ main: ColumnInfo<ItemTypeType>[];
13
+ derived: ColumnInfo<ItemTypeType>[];
14
+ root: ColumnInfo<ItemTypeType>[];
15
+ leaf: ColumnInfo<ItemTypeType>[];
16
+ formatted: {
17
+ main: ColumnInfo<ItemTypeType>[];
18
+ derived: ColumnInfo<ItemTypeType>[];
19
+ };
20
+ filtered: ColumnInfo<ItemTypeType>[];
21
+ custom: ColumnInfo<ItemTypeType>[];
22
+ searchable: ColumnInfo<ItemTypeType>[];
23
+ item: ColumnInfo<ItemTypeType>[];
24
+ notItem: ColumnInfo<ItemTypeType>[];
25
+ constructor(columnUtil: ColumnUtil, columnSetFactory: ColumnSetFactory, itemType: ItemTypeType);
26
+ groupColumnInfo(columnInfo: ColumnInfo): void;
27
+ toJSON(): {
28
+ main: any[];
29
+ derived: any[];
30
+ };
31
+ isSupersetOf(columnsToCompare: ApiRequestColumns): boolean;
32
+ mergeRequestColumns(requestColumns: ApiRequestColumns): RequestColumnMergeResult;
33
+ mergeResponseColumns(responseColumns: ResponseColumnItemTypeMap): ResponseColumnItemTypeMap;
34
+ merge(columnSet: ColumnSet<ItemTypeType>): ColumnSet<ItemTypeType>;
35
+ expand(requestColumns: ApiRequestColumns, requestColumnsTrue: boolean, responseColumns: ResponseColumnItemTypeMap): ColumnExpansionResult<ItemTypeType>;
36
+ private getMergedColumnSet;
37
+ }
@@ -1,108 +1,108 @@
1
- import { ApiEnumApiType, ApiEnumItemType, ApiFields, ResponseColumn, ResponseColumnCustom, ResponseColumnItem } from '@rentman/backend-types';
2
- import { ApiRequestColumn, ApiRequestColumnArray, ApiRequestColumns, LinkTreeServiceInterface, MutableApiRequestColumnArray, RequestColumnsTuple, ResponseColumnItemTypeMap, ResponseColumnMap } from '../internal';
3
- export declare type RequestColumnMergeResult<T extends ApiRequestColumns = ApiRequestColumns, U extends ApiRequestColumns = ApiRequestColumns> = {
4
- merged: T;
5
- difference: U;
6
- };
7
- /**
8
- * @description
9
- * A service which provides functions to help on {@link ResponseColumn ResponseColumns}
10
- *
11
- * @warning
12
- * The code in these functions can be *very hot* on large databases, therefore performance must be kept in mind.
13
- * This is also the reason why all column types are written out instead of using the enum
14
- */
15
- export declare class ColumnUtil {
16
- private linkTreeService;
17
- constructor(linkTreeService: LinkTreeServiceInterface);
18
- getColumnIdsWithRelations(itemType: ApiEnumItemType): ApiRequestColumn[];
19
- /**
20
- * @description
21
- * Checks the {@link ApiLinkTree LinkTree} and returns the link columnIds for the given ItemType
22
- *
23
- * @remark
24
- * - For {@link ApiLinkTreeType.DIRECT direct links} it will be a columnId
25
- * - For {@link ApiLinkTreeType.ITEMTABLE itemtable links} it will be 'itemtype' and 'item'
26
- */
27
- getColumnsFromLink<ChildItemType extends ApiEnumItemType>(parentType: ApiEnumItemType, itemType: ChildItemType): ApiRequestColumn[];
28
- getColumnPath(columns: ResponseColumn[], renderAs: null | string): string;
29
- getDateFormatOptions(columnType?: 'datetime'): {
30
- 'J-M-Y': string;
31
- 'J-M': string;
32
- 'j+F+Y': string;
33
- 'D+j+F+Y': string;
34
- F: string;
35
- f: string;
36
- D: string;
37
- d: string;
38
- };
39
- isStringColumn(column: ResponseColumn): boolean;
40
- isFloatColumn(column: ResponseColumn): boolean;
41
- isIntColumn(column: ResponseColumn): boolean;
42
- isNumberColumn(column: ResponseColumn): boolean;
43
- isCustomColumn<ItemTypeType extends ApiEnumItemType, ColumnId extends keyof ApiFields[ItemTypeType]>(column: ResponseColumn<ItemTypeType, ColumnId>): column is ResponseColumnCustom<ItemTypeType, ColumnId>;
44
- isAggregateColumn(column: ResponseColumn): boolean;
45
- isItemColumn<ItemTypeType extends ApiEnumItemType, ColumnId extends keyof ApiFields[ItemTypeType]>(column: ResponseColumn<ItemTypeType, ColumnId>, includeId?: boolean): column is ResponseColumnItem<ItemTypeType, ColumnId>;
46
- isDateColumn(column: ResponseColumn): boolean;
47
- isRenderedColumn(column: ResponseColumn): boolean;
48
- isFilteredColumn(column: ResponseColumn): boolean;
49
- isFormattedColumn(column: ResponseColumn): boolean;
50
- isSelectableColumn(column: ResponseColumn): boolean;
51
- hasLocationProperty(column: ResponseColumn, location: number): boolean;
52
- isEditableColumn(column: ResponseColumn): boolean;
53
- isSearchableColumn(column: ResponseColumn): boolean;
54
- getComparators(column: ResponseColumn & {
55
- type: ApiEnumApiType.TYPE_DIMENSION | ApiEnumApiType.TYPE_WEIGHT | ApiEnumApiType.TYPE_PRICE;
56
- }): ['=', '>', '<'];
57
- getComparators(column: ResponseColumn & {
58
- type: ApiEnumApiType.TYPE_DATE | ApiEnumApiType.TYPE_DATETIME | ApiEnumApiType.TYPE_DURATION;
59
- }): ['>', '<'];
60
- getComparators(column: ResponseColumn): ['=', '!='];
61
- containsColumn(requestColumn: ApiRequestColumn, destination: ApiRequestColumnArray): boolean;
62
- containsDerivedColumns(requestColumns: ApiRequestColumnArray): boolean;
63
- responseColumnsAvailable(itemType: ApiEnumItemType, requestColumns: ApiRequestColumnArray, responseColumnMap: ResponseColumnItemTypeMap): boolean;
64
- copyRequestColumns(columns: true): true;
65
- copyRequestColumns(columns: ApiRequestColumns): ApiRequestColumns;
66
- copyRequestColumn(requestColumn: ApiRequestColumn): ApiRequestColumn;
67
- mergeRequestColumns(first: true, second: ApiRequestColumns): RequestColumnMergeResult<true, []>;
68
- mergeRequestColumns(first: ApiRequestColumnArray, second: true): RequestColumnMergeResult<true, true>;
69
- mergeRequestColumns(first: ApiRequestColumnArray, second: ApiRequestColumnArray): RequestColumnMergeResult<ApiRequestColumnArray, ApiRequestColumnArray>;
70
- mergeRequestColumns(first: ApiRequestColumns, second: ApiRequestColumns): RequestColumnMergeResult;
71
- mergeRequestColumn(requestColumn: ApiRequestColumn, destination: MutableApiRequestColumnArray): ApiRequestColumn | null;
72
- createRequestColumnSetId(requestColumns: ApiRequestColumns): RequestColumnsTuple['string'];
73
- private createRequestColumnId;
74
- getRequestColumnId(requestColumn: ApiRequestColumn): string;
75
- parseRequestColumn(requestColumn: ApiRequestColumn): {
76
- id: string;
77
- children: ApiRequestColumnArray;
78
- };
79
- /**
80
- * @description
81
- * Merges two sets of {@link ResponseColumnItemTypeMap ResponseColumnItemTypeMaps}.
82
- *
83
- * @returns
84
- * - Merged: The merged set of columns
85
- * - Difference: Columns that are in second, but not in first
86
- */
87
- mergeResponseColumns(first: ResponseColumnItemTypeMap, second: ResponseColumnItemTypeMap): {
88
- merged: ResponseColumnItemTypeMap;
89
- difference: ResponseColumnItemTypeMap;
90
- };
91
- /**
92
- * @description
93
- * Merges two sets of {@link ResponseColumnMap response columns}.
94
- *
95
- * @returns
96
- * - Merged: The merged set of columns
97
- * - Difference: Columns that are in second, but not in first
98
- */
99
- mergeResponseColumnMap(first: ResponseColumnMap, second: ResponseColumnMap): {
100
- merged: ResponseColumnMap;
101
- difference: ResponseColumnMap;
102
- };
103
- isLocalColumnId(columnId: string): boolean;
104
- processConfigColumns(configColumns: string[]): ApiRequestColumn[];
105
- parseConfigColumn(configColumn: string): string[];
106
- processConfigColumn(parsedConfigColumn: string[], destination: MutableApiRequestColumnArray): void;
107
- findRequestColumn(columnId: string, requestColumns: ApiRequestColumnArray): number;
108
- }
1
+ import { ApiEnumApiType, ApiEnumItemType, ApiFields, ResponseColumn, ResponseColumnCustom, ResponseColumnItem } from '@rentman/backend-types';
2
+ import { ApiRequestColumn, ApiRequestColumnArray, ApiRequestColumns, LinkTreeServiceInterface, MutableApiRequestColumnArray, RequestColumnsTuple, ResponseColumnItemTypeMap, ResponseColumnMap } from '../internal';
3
+ export declare type RequestColumnMergeResult<T extends ApiRequestColumns = ApiRequestColumns, U extends ApiRequestColumns = ApiRequestColumns> = {
4
+ merged: T;
5
+ difference: U;
6
+ };
7
+ /**
8
+ * @description
9
+ * A service which provides functions to help on {@link ResponseColumn ResponseColumns}
10
+ *
11
+ * @warning
12
+ * The code in these functions can be *very hot* on large databases, therefore performance must be kept in mind.
13
+ * This is also the reason why all column types are written out instead of using the enum
14
+ */
15
+ export declare class ColumnUtil {
16
+ private linkTreeService;
17
+ constructor(linkTreeService: LinkTreeServiceInterface);
18
+ getColumnIdsWithRelations(itemType: ApiEnumItemType): ApiRequestColumn[];
19
+ /**
20
+ * @description
21
+ * Checks the {@link ApiLinkTree LinkTree} and returns the link columnIds for the given ItemType
22
+ *
23
+ * @remark
24
+ * - For {@link ApiLinkTreeType.DIRECT direct links} it will be a columnId
25
+ * - For {@link ApiLinkTreeType.ITEMTABLE itemtable links} it will be 'itemtype' and 'item'
26
+ */
27
+ getColumnsFromLink<ChildItemType extends ApiEnumItemType>(parentType: ApiEnumItemType, itemType: ChildItemType): ApiRequestColumn[];
28
+ getColumnPath(columns: ResponseColumn[], renderAs: null | string): string;
29
+ getDateFormatOptions(columnType?: 'datetime'): {
30
+ 'J-M-Y': string;
31
+ 'J-M': string;
32
+ 'j+F+Y': string;
33
+ 'D+j+F+Y': string;
34
+ F: string;
35
+ f: string;
36
+ D: string;
37
+ d: string;
38
+ };
39
+ isStringColumn(column: ResponseColumn): boolean;
40
+ isFloatColumn(column: ResponseColumn): boolean;
41
+ isIntColumn(column: ResponseColumn): boolean;
42
+ isNumberColumn(column: ResponseColumn): boolean;
43
+ isCustomColumn<ItemTypeType extends ApiEnumItemType, ColumnId extends keyof ApiFields[ItemTypeType]>(column: ResponseColumn<ItemTypeType, ColumnId>): column is ResponseColumnCustom<ItemTypeType, ColumnId>;
44
+ isAggregateColumn(column: ResponseColumn): boolean;
45
+ isItemColumn<ItemTypeType extends ApiEnumItemType, ColumnId extends keyof ApiFields[ItemTypeType]>(column: ResponseColumn<ItemTypeType, ColumnId>, includeId?: boolean): column is ResponseColumnItem<ItemTypeType, ColumnId>;
46
+ isDateColumn(column: ResponseColumn): boolean;
47
+ isRenderedColumn(column: ResponseColumn): boolean;
48
+ isFilteredColumn(column: ResponseColumn): boolean;
49
+ isFormattedColumn(column: ResponseColumn): boolean;
50
+ isSelectableColumn(column: ResponseColumn): boolean;
51
+ hasLocationProperty(column: ResponseColumn, location: number): boolean;
52
+ isEditableColumn(column: ResponseColumn): boolean;
53
+ isSearchableColumn(column: ResponseColumn): boolean;
54
+ getComparators(column: ResponseColumn & {
55
+ type: ApiEnumApiType.TYPE_DIMENSION | ApiEnumApiType.TYPE_WEIGHT | ApiEnumApiType.TYPE_PRICE;
56
+ }): ['=', '>', '<'];
57
+ getComparators(column: ResponseColumn & {
58
+ type: ApiEnumApiType.TYPE_DATE | ApiEnumApiType.TYPE_DATETIME | ApiEnumApiType.TYPE_DURATION;
59
+ }): ['>', '<'];
60
+ getComparators(column: ResponseColumn): ['=', '!='];
61
+ containsColumn(requestColumn: ApiRequestColumn, destination: ApiRequestColumnArray): boolean;
62
+ containsDerivedColumns(requestColumns: ApiRequestColumnArray): boolean;
63
+ responseColumnsAvailable(itemType: ApiEnumItemType, requestColumns: ApiRequestColumnArray, responseColumnMap: ResponseColumnItemTypeMap): boolean;
64
+ copyRequestColumns(columns: true): true;
65
+ copyRequestColumns(columns: ApiRequestColumns): ApiRequestColumns;
66
+ copyRequestColumn(requestColumn: ApiRequestColumn): ApiRequestColumn;
67
+ mergeRequestColumns(first: true, second: ApiRequestColumns): RequestColumnMergeResult<true, []>;
68
+ mergeRequestColumns(first: ApiRequestColumnArray, second: true): RequestColumnMergeResult<true, true>;
69
+ mergeRequestColumns(first: ApiRequestColumnArray, second: ApiRequestColumnArray): RequestColumnMergeResult<ApiRequestColumnArray, ApiRequestColumnArray>;
70
+ mergeRequestColumns(first: ApiRequestColumns, second: ApiRequestColumns): RequestColumnMergeResult;
71
+ mergeRequestColumn(requestColumn: ApiRequestColumn, destination: MutableApiRequestColumnArray): ApiRequestColumn | null;
72
+ createRequestColumnSetId(requestColumns: ApiRequestColumns): RequestColumnsTuple['string'];
73
+ private createRequestColumnId;
74
+ getRequestColumnId(requestColumn: ApiRequestColumn): string;
75
+ parseRequestColumn(requestColumn: ApiRequestColumn): {
76
+ id: string;
77
+ children: ApiRequestColumnArray;
78
+ };
79
+ /**
80
+ * @description
81
+ * Merges two sets of {@link ResponseColumnItemTypeMap ResponseColumnItemTypeMaps}.
82
+ *
83
+ * @returns
84
+ * - Merged: The merged set of columns
85
+ * - Difference: Columns that are in second, but not in first
86
+ */
87
+ mergeResponseColumns(first: ResponseColumnItemTypeMap, second: ResponseColumnItemTypeMap): {
88
+ merged: ResponseColumnItemTypeMap;
89
+ difference: ResponseColumnItemTypeMap;
90
+ };
91
+ /**
92
+ * @description
93
+ * Merges two sets of {@link ResponseColumnMap response columns}.
94
+ *
95
+ * @returns
96
+ * - Merged: The merged set of columns
97
+ * - Difference: Columns that are in second, but not in first
98
+ */
99
+ mergeResponseColumnMap(first: ResponseColumnMap, second: ResponseColumnMap): {
100
+ merged: ResponseColumnMap;
101
+ difference: ResponseColumnMap;
102
+ };
103
+ isLocalColumnId(columnId: string): boolean;
104
+ processConfigColumns(configColumns: string[]): ApiRequestColumn[];
105
+ parseConfigColumn(configColumn: string): string[];
106
+ processConfigColumn(parsedConfigColumn: string[], destination: MutableApiRequestColumnArray): void;
107
+ findRequestColumn(columnId: string, requestColumns: ApiRequestColumnArray): number;
108
+ }
@@ -1,25 +1,25 @@
1
- import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
2
- import { ApiResponse, ColumnInfo, EntryParentNull, FieldMap, ItemEntry, ItemIdConversionMap, KeyService } from '../internal';
3
- /**
4
- * @description A 'ConversionMap' is used to update a set of item IDs to another. This happens when processing back-end
5
- * responses (create / template) or cloning items in the front-end. A conversion map is grouped by item type, as item
6
- * ID's are not unique across types.
7
- *
8
- * TODO: In the future, we should create a class and a 'ConversionMapFactory'.
9
- */
10
- export declare class ConversionMapService {
11
- private keyService;
12
- constructor(keyService: KeyService);
13
- createLocalConversionMap(itemType: ApiEnumItemType, itemId: ItemId, doExtend: boolean | undefined, apiResponse: ApiResponse): ItemIdConversionMap;
14
- expandLocalConversionMap(parentType: ApiEnumItemType, parentId: ItemId, apiResponse: ApiResponse, conversionMap: ItemIdConversionMap): void;
15
- expandConversionMap(itemType: ApiEnumItemType, itemId: ItemId, conversionMap: ItemIdConversionMap, newItemId?: ItemId): ItemId;
16
- batchExpandConversionMap(itemEntries: ItemEntry<any>[], conversionMap: ItemIdConversionMap): ItemIdConversionMap;
17
- getConversionValue(itemType: ApiEnumItemType, itemId: ItemId, map: ItemIdConversionMap): ItemId | undefined;
18
- /**
19
- * @description
20
- * Updates the columns in `fields` using the `parent` and `conversionMap`.
21
- *
22
- * @param parent - When retrieving an item the 'link' column is not present in the template response, and is added at a later stage. The value for this column can be read from this parameter.
23
- */
24
- updateItemValues<ItemTypeType extends ApiEnumItemType>(source: FieldMap<ItemTypeType>, destination: FieldMap<ItemTypeType>, itemColumns: ColumnInfo<ItemTypeType>[], conversionMap: ItemIdConversionMap, parent?: EntryParentNull): void;
25
- }
1
+ import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
2
+ import { ApiResponse, ColumnInfo, EntryParentNull, FieldMap, ItemEntry, ItemIdConversionMap, KeyService } from '../internal';
3
+ /**
4
+ * @description A 'ConversionMap' is used to update a set of item IDs to another. This happens when processing back-end
5
+ * responses (create / template) or cloning items in the front-end. A conversion map is grouped by item type, as item
6
+ * ID's are not unique across types.
7
+ *
8
+ * TODO: In the future, we should create a class and a 'ConversionMapFactory'.
9
+ */
10
+ export declare class ConversionMapService {
11
+ private keyService;
12
+ constructor(keyService: KeyService);
13
+ createLocalConversionMap(itemType: ApiEnumItemType, itemId: ItemId, doExtend: boolean | undefined, apiResponse: ApiResponse): ItemIdConversionMap;
14
+ expandLocalConversionMap(parentType: ApiEnumItemType, parentId: ItemId, apiResponse: ApiResponse, conversionMap: ItemIdConversionMap): void;
15
+ expandConversionMap(itemType: ApiEnumItemType, itemId: ItemId, conversionMap: ItemIdConversionMap, newItemId?: ItemId): ItemId;
16
+ batchExpandConversionMap(itemEntries: ItemEntry<any>[], conversionMap: ItemIdConversionMap): ItemIdConversionMap;
17
+ getConversionValue(itemType: ApiEnumItemType, itemId: ItemId, map: ItemIdConversionMap): ItemId | undefined;
18
+ /**
19
+ * @description
20
+ * Updates the columns in `fields` using the `parent` and `conversionMap`.
21
+ *
22
+ * @param parent - When retrieving an item the 'link' column is not present in the template response, and is added at a later stage. The value for this column can be read from this parameter.
23
+ */
24
+ updateItemValues<ItemTypeType extends ApiEnumItemType>(source: FieldMap<ItemTypeType>, destination: FieldMap<ItemTypeType>, itemColumns: ColumnInfo<ItemTypeType>[], conversionMap: ItemIdConversionMap, parent?: EntryParentNull): void;
25
+ }
@@ -1,17 +1,17 @@
1
- import { ApiEnumItemType } from '@rentman/backend-types';
2
- import { ApiFormatter, CreateCompilation, CreateRequestCompilationParent, CreateRequestEntry, KeyService, RequestColumnExpansionFactory, TransactionCache } from '../internal';
3
- export declare class CreateRequest<ItemTypeType extends ApiEnumItemType> {
4
- private apiFormatter;
5
- private keyService;
6
- private requestColumnExpansionFactory;
7
- private compilation;
8
- private transaction;
9
- private breakupByParent;
10
- requests: CreateRequestEntry<ItemTypeType>[];
11
- constructor(apiFormatter: ApiFormatter, keyService: KeyService, requestColumnExpansionFactory: RequestColumnExpansionFactory, compilation: CreateCompilation, transaction: TransactionCache, breakupByParent?: boolean);
12
- finalizeRequest(requestResource: CreateRequestEntry<ItemTypeType>): CreateRequestEntry<ItemTypeType>;
13
- setRequestParent(parentType: CreateRequestCompilationParent, requestEntry: CreateRequestEntry<ItemTypeType>): boolean;
14
- run(): CreateRequestEntry<ItemTypeType>[];
15
- initializeRequest(): CreateRequestEntry<ItemTypeType>;
16
- private extendRequest;
17
- }
1
+ import { ApiEnumItemType } from '@rentman/backend-types';
2
+ import { ApiFormatter, CreateCompilation, CreateRequestCompilationParent, CreateRequestEntry, KeyService, RequestColumnExpansionFactory, TransactionCache } from '../internal';
3
+ export declare class CreateRequest<ItemTypeType extends ApiEnumItemType> {
4
+ private apiFormatter;
5
+ private keyService;
6
+ private requestColumnExpansionFactory;
7
+ private compilation;
8
+ private transaction;
9
+ private breakupByParent;
10
+ requests: CreateRequestEntry<ItemTypeType>[];
11
+ constructor(apiFormatter: ApiFormatter, keyService: KeyService, requestColumnExpansionFactory: RequestColumnExpansionFactory, compilation: CreateCompilation, transaction: TransactionCache, breakupByParent?: boolean);
12
+ finalizeRequest(requestResource: CreateRequestEntry<ItemTypeType>): CreateRequestEntry<ItemTypeType>;
13
+ setRequestParent(parentType: CreateRequestCompilationParent, requestEntry: CreateRequestEntry<ItemTypeType>): boolean;
14
+ run(): CreateRequestEntry<ItemTypeType>[];
15
+ initializeRequest(): CreateRequestEntry<ItemTypeType>;
16
+ private extendRequest;
17
+ }