@rentman/rm-core 12.0.4 → 12.0.5-2

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 (145) hide show
  1. package/changelog.md +1491 -1476
  2. package/dist/rm-core.js +972 -941
  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 +76 -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 +98 -98
  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/ReparatieExemplaarBusinessLogicRule.d.ts +13 -13
  26. package/dist/types/src/classes/BusinessLogicManager/Rol/RolDocumentAccessBusinessLogicRule.d.ts +17 -17
  27. package/dist/types/src/classes/BusinessLogicManager/Rol/RolEditOwnDataBusinessLogicRule.d.ts +17 -17
  28. package/dist/types/src/classes/BusinessLogicManager/Rol/RolFileAccessBusinessLogicRule.d.ts +17 -17
  29. package/dist/types/src/classes/BusinessLogicManager/Rol/RolPersoneelsplannerToegangBusinessLogicRule.d.ts +17 -17
  30. package/dist/types/src/classes/BusinessLogicManager/Rol/RolProjectenBewerkenBusinessLogicRule.d.ts +17 -17
  31. package/dist/types/src/classes/BusinessLogicManager/Rol/RolProjectenToegangBusinessLogicRule.d.ts +17 -17
  32. package/dist/types/src/classes/CacheSyncer.d.ts +71 -71
  33. package/dist/types/src/classes/ChangesCompilation.d.ts +33 -33
  34. package/dist/types/src/classes/ChangesDelta.d.ts +65 -65
  35. package/dist/types/src/classes/ChangesDeltaBase.d.ts +88 -86
  36. package/dist/types/src/classes/ChangesProcessor.d.ts +40 -40
  37. package/dist/types/src/classes/CollectionEntryService.d.ts +24 -24
  38. package/dist/types/src/classes/CollectionResourceService.d.ts +6 -6
  39. package/dist/types/src/classes/ColumnCache.d.ts +19 -19
  40. package/dist/types/src/classes/ColumnExpansion.d.ts +19 -19
  41. package/dist/types/src/classes/ColumnHandler.d.ts +20 -20
  42. package/dist/types/src/classes/ColumnInfo.d.ts +15 -15
  43. package/dist/types/src/classes/ColumnSet.d.ts +37 -37
  44. package/dist/types/src/classes/ColumnUtil.d.ts +108 -108
  45. package/dist/types/src/classes/ConversionMapService.d.ts +25 -25
  46. package/dist/types/src/classes/CreateRequest.d.ts +17 -17
  47. package/dist/types/src/classes/CreatedChangesDelta.d.ts +17 -17
  48. package/dist/types/src/classes/InternalChangesDelta.d.ts +44 -44
  49. package/dist/types/src/classes/ItemCache.d.ts +27 -27
  50. package/dist/types/src/classes/ItemCreateService.d.ts +18 -18
  51. package/dist/types/src/classes/ItemEntryService.d.ts +32 -32
  52. package/dist/types/src/classes/KeyService.d.ts +18 -18
  53. package/dist/types/src/classes/LockService.d.ts +28 -28
  54. package/dist/types/src/classes/ModuleChangesCompilation.d.ts +17 -17
  55. package/dist/types/src/classes/ParentChangesDelta.d.ts +41 -41
  56. package/dist/types/src/classes/QueryColumnExtractor.d.ts +18 -18
  57. package/dist/types/src/classes/QueryContainsLocalIdParser.d.ts +17 -17
  58. package/dist/types/src/classes/QueryLinkedToParser.d.ts +17 -17
  59. package/dist/types/src/classes/QueryLocallyMatchableParser.d.ts +20 -20
  60. package/dist/types/src/classes/QueryMatcher.d.ts +25 -25
  61. package/dist/types/src/classes/QueryParser.d.ts +25 -25
  62. package/dist/types/src/classes/QueryParserBase.d.ts +20 -20
  63. package/dist/types/src/classes/QueryParserIdUpdater.d.ts +17 -17
  64. package/dist/types/src/classes/QueryService.d.ts +12 -12
  65. package/dist/types/src/classes/RequestBuffer.d.ts +26 -26
  66. package/dist/types/src/classes/RequestBufferManager.d.ts +21 -21
  67. package/dist/types/src/classes/RequestColumnExpansion.d.ts +13 -13
  68. package/dist/types/src/classes/RequestColumnsOperationsCache.d.ts +46 -46
  69. package/dist/types/src/classes/SocketMessageHandler.d.ts +34 -34
  70. package/dist/types/src/classes/TemplateCache.d.ts +64 -64
  71. package/dist/types/src/classes/Util.d.ts +28 -28
  72. package/dist/types/src/classes/cache/AbstractCache.d.ts +85 -92
  73. package/dist/types/src/classes/cache/CachedQueryHandlerBase.d.ts +70 -70
  74. package/dist/types/src/classes/cache/ItemHandlerBase.d.ts +107 -107
  75. package/dist/types/src/classes/cache/server/ServerCache.d.ts +65 -77
  76. package/dist/types/src/classes/cache/server/ServerCachedQueryHandler.d.ts +27 -27
  77. package/dist/types/src/classes/cache/server/ServerItemHandler.d.ts +39 -39
  78. package/dist/types/src/classes/cache/transaction/TransactionCache.d.ts +298 -310
  79. package/dist/types/src/classes/cache/transaction/TransactionCachedQueryHandler.d.ts +50 -50
  80. package/dist/types/src/classes/cache/transaction/TransactionCollectionHandler.d.ts +24 -24
  81. package/dist/types/src/classes/cache/transaction/TransactionEventHandler.d.ts +21 -21
  82. package/dist/types/src/classes/cache/transaction/TransactionItemHandler.d.ts +80 -80
  83. package/dist/types/src/classes/cache/transaction/TransactionValidator.d.ts +33 -33
  84. package/dist/types/src/constants.d.ts +7 -7
  85. package/dist/types/src/core.d.ts +48 -48
  86. package/dist/types/src/factories/ApiResponseProcessorFactory.d.ts +6 -6
  87. package/dist/types/src/factories/CacheSyncerFactory.d.ts +14 -14
  88. package/dist/types/src/factories/ChangesCompilationFactory.d.ts +5 -5
  89. package/dist/types/src/factories/ChangesDeltaFactory.d.ts +13 -13
  90. package/dist/types/src/factories/ChangesProcessorFactory.d.ts +13 -13
  91. package/dist/types/src/factories/CollectionEntryFactory.d.ts +11 -11
  92. package/dist/types/src/factories/CollectionResourceFactory.d.ts +18 -18
  93. package/dist/types/src/factories/ColumnExpansionFactory.d.ts +7 -7
  94. package/dist/types/src/factories/ColumnInfoFactory.d.ts +7 -7
  95. package/dist/types/src/factories/ColumnSetFactory.d.ts +18 -18
  96. package/dist/types/src/factories/CreateRequestFactory.d.ts +9 -9
  97. package/dist/types/src/factories/ItemCacheFactory.d.ts +6 -6
  98. package/dist/types/src/factories/ItemEntryFactory.d.ts +12 -12
  99. package/dist/types/src/factories/ItemResourceFactory.d.ts +11 -11
  100. package/dist/types/src/factories/ModuleChangesCompilationFactory.d.ts +6 -6
  101. package/dist/types/src/factories/QueryMatcherFactory.d.ts +8 -8
  102. package/dist/types/src/factories/QueryParserFactory.d.ts +5 -5
  103. package/dist/types/src/factories/RequestColumnExpansionFactory.d.ts +6 -6
  104. package/dist/types/src/factories/RequestColumnsOperationsCacheFactory.d.ts +8 -8
  105. package/dist/types/src/factories/TemplateFactory.d.ts +8 -8
  106. package/dist/types/src/factories/TransactionCacheFactory.d.ts +13 -13
  107. package/dist/types/src/index.d.ts +1 -1
  108. package/dist/types/src/interfaces/AbstractCacheDependencyInterface.d.ts +38 -38
  109. package/dist/types/src/interfaces/ApiRequestServiceInterface.d.ts +12 -12
  110. package/dist/types/src/interfaces/AuthInterface.d.ts +10 -10
  111. package/dist/types/src/interfaces/ErrorHandlerInterface.d.ts +6 -6
  112. package/dist/types/src/interfaces/ExceptionHandlerInterface.d.ts +3 -3
  113. package/dist/types/src/interfaces/LinkTreeServiceInterface.d.ts +4 -4
  114. package/dist/types/src/interfaces/PromiseLibraryInterface.d.ts +33 -33
  115. package/dist/types/src/interfaces/ServerCacheDependencyInterface.d.ts +5 -5
  116. package/dist/types/src/interfaces/SocketMessageInterface.d.ts +3 -3
  117. package/dist/types/src/interfaces/TransactionCollectionHandlerDependencyInterface.d.ts +17 -17
  118. package/dist/types/src/interfaces/TransactionItemHandlerDependencyInterface.d.ts +22 -22
  119. package/dist/types/src/internal.d.ts +128 -128
  120. package/dist/types/src/models/CachedQueryItem.d.ts +40 -40
  121. package/dist/types/src/models/CollectionEntry.d.ts +22 -22
  122. package/dist/types/src/models/CollectionOptions.d.ts +44 -44
  123. package/dist/types/src/models/CollectionResource.d.ts +87 -87
  124. package/dist/types/src/models/ItemEntry.d.ts +19 -19
  125. package/dist/types/src/models/ItemEntryOptions.d.ts +8 -8
  126. package/dist/types/src/models/ItemResource.d.ts +95 -90
  127. package/dist/types/src/models/Template.d.ts +11 -11
  128. package/dist/types/src/types/ItemTypesCollection.d.ts +361 -358
  129. package/dist/types/src/types/PromiseInterface.d.ts +2 -2
  130. package/dist/types/tests/integration/core.test.d.ts +1 -1
  131. package/dist/types/tests/integration/helpers/helpers.d.ts +32 -32
  132. package/dist/types/tests/integration/transactions/field_lookup.test.d.ts +1 -1
  133. package/dist/types/tests/integration/transactions/get_by.test.d.ts +1 -1
  134. package/dist/types/tests/integration/transactions/updates.test.d.ts +1 -1
  135. package/dist/types/tests/mocks/ApiMocked.d.ts +19 -19
  136. package/dist/types/tests/mocks/PromiseLibrary.mocked.d.ts +2 -2
  137. package/dist/types/tests/regression/RM4_17754.test.d.ts +1 -1
  138. package/dist/types/tests/regression/RM4_18216.test.d.ts +1 -1
  139. package/dist/types/tests/unit/query_contains_local_id_parser.test.d.ts +1 -1
  140. package/dist/types/tests/unit/query_linked_to_parser.test.d.ts +1 -1
  141. package/dist/types/tests/unit/query_matcher.test.d.ts +1 -1
  142. package/dist/types/tests/unit/query_parser_id_updater.test.d.ts +1 -1
  143. package/dist/types/tests/unit/query_service.test.d.ts +1 -1
  144. package/package.json +57 -57
  145. package/readme.md +16 -16
@@ -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
+ }
@@ -1,17 +1,17 @@
1
- import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
2
- import { ColumnSet, FieldMap } from '../internal';
3
- export declare type ChangesDeltaItemCreateDelta<ItemTypeType extends ApiEnumItemType = any> = {
4
- itemId: ItemId;
5
- fields: FieldMap<ItemTypeType>;
6
- columns: ColumnSet<ItemTypeType>;
7
- isRoot: boolean;
8
- };
9
- export declare class CreatedChangesDelta {
10
- private tuples;
11
- constructor();
12
- remove(itemType: ApiEnumItemType, itemId: ItemId): boolean;
13
- add<ItemTypeType extends ApiEnumItemType>(itemId: ItemId, fields: FieldMap<ItemTypeType>, columns: ColumnSet<ItemTypeType>, isRoot?: boolean): void;
14
- isEmpty(): boolean;
15
- forEach(callback: (tuple: ChangesDeltaItemCreateDelta, itemType: ApiEnumItemType, index: number) => void): void;
16
- contains(itemType: ApiEnumItemType): boolean;
17
- }
1
+ import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
2
+ import { ColumnSet, FieldMap } from '../internal';
3
+ export declare type ChangesDeltaItemCreateDelta<ItemTypeType extends ApiEnumItemType = any> = {
4
+ itemId: ItemId;
5
+ fields: FieldMap<ItemTypeType>;
6
+ columns: ColumnSet<ItemTypeType>;
7
+ isRoot: boolean;
8
+ };
9
+ export declare class CreatedChangesDelta {
10
+ private tuples;
11
+ constructor();
12
+ remove(itemType: ApiEnumItemType, itemId: ItemId): boolean;
13
+ add<ItemTypeType extends ApiEnumItemType>(itemId: ItemId, fields: FieldMap<ItemTypeType>, columns: ColumnSet<ItemTypeType>, isRoot?: boolean): void;
14
+ isEmpty(): boolean;
15
+ forEach(callback: (tuple: ChangesDeltaItemCreateDelta, itemType: ApiEnumItemType, index: number) => void): void;
16
+ contains(itemType: ApiEnumItemType): boolean;
17
+ }
@@ -1,44 +1,44 @@
1
- import { ApiEnumItemType } from '@rentman/backend-types';
2
- import { ApiFormatter, ChangesDeltaBase, EntryParent, FieldMap, ItemEntry, ItemEntryChangesTuple, ItemEntryService, ItemIdConversionMap } from '../internal';
3
- export declare type InternalCreateDelta<ItemTypeType extends ApiEnumItemType = any> = {
4
- entry: ItemEntry<ItemTypeType>;
5
- fields: FieldMap<ItemTypeType>;
6
- };
7
- /**
8
- * @description
9
- * ChangesDelta used internally by the core
10
- *
11
- * ----------
12
- *
13
- * The difference between {@link InternalChangesDelta InternalChangesDelta} and {@link ChangesDelta ChangesDelta} is that the InternalChangesDelta
14
- * assumes 'created' entries are already existing, so it has a different format.
15
- *
16
- * Use this when calling {@link TransactionCache.applyChangesFromChild applyChangesFromChild}
17
- */
18
- export declare class InternalChangesDelta extends ChangesDeltaBase {
19
- created: {
20
- [itemEntryId: string]: InternalCreateDelta;
21
- };
22
- deleted: {
23
- [itemType in ApiEnumItemType]?: ItemEntryChangesTuple<itemType>[];
24
- };
25
- moved: {
26
- [itemEntryId: number]: {
27
- entry: ItemEntry;
28
- to: EntryParent;
29
- };
30
- };
31
- itemIdConversionMap: ItemIdConversionMap;
32
- constructor(itemEntryService: ItemEntryService, apiFormatter: ApiFormatter);
33
- merge(otherChangesDelta: InternalChangesDelta): InternalChangesDelta;
34
- setItemDeleted(tuple: ItemEntryChangesTuple<any>): this;
35
- setItemsDeleted(deleted: ItemEntryChangesTuple<any>[]): this;
36
- setItemCreated<ItemTypeType extends ApiEnumItemType>(itemEntry: ItemEntry<ItemTypeType>, fields: Partial<FieldMap<ItemTypeType>>): void;
37
- /**
38
- * @remark
39
- * Parent fields are non-writable so we need to keep track of moved entries another way (to do a linkTo request)
40
- */
41
- setItemMoved(entry: ItemEntry, to: EntryParent): void;
42
- isEmpty(): boolean;
43
- private itemIsDeleted;
44
- }
1
+ import { ApiEnumItemType } from '@rentman/backend-types';
2
+ import { ApiFormatter, ChangesDeltaBase, EntryParent, FieldMap, ItemEntry, ItemEntryChangesTuple, ItemEntryService, ItemIdConversionMap } from '../internal';
3
+ export declare type InternalCreateDelta<ItemTypeType extends ApiEnumItemType = any> = {
4
+ entry: ItemEntry<ItemTypeType>;
5
+ fields: FieldMap<ItemTypeType>;
6
+ };
7
+ /**
8
+ * @description
9
+ * ChangesDelta used internally by the core
10
+ *
11
+ * ----------
12
+ *
13
+ * The difference between {@link InternalChangesDelta InternalChangesDelta} and {@link ChangesDelta ChangesDelta} is that the InternalChangesDelta
14
+ * assumes 'created' entries are already existing, so it has a different format.
15
+ *
16
+ * Use this when calling {@link TransactionCache.applyChangesFromChild applyChangesFromChild}
17
+ */
18
+ export declare class InternalChangesDelta extends ChangesDeltaBase {
19
+ created: {
20
+ [itemEntryId: string]: InternalCreateDelta;
21
+ };
22
+ deleted: {
23
+ [itemType in ApiEnumItemType]?: ItemEntryChangesTuple<itemType>[];
24
+ };
25
+ moved: {
26
+ [itemEntryId: number]: {
27
+ entry: ItemEntry;
28
+ to: EntryParent;
29
+ };
30
+ };
31
+ itemIdConversionMap: ItemIdConversionMap;
32
+ constructor(itemEntryService: ItemEntryService, apiFormatter: ApiFormatter);
33
+ merge(otherChangesDelta: InternalChangesDelta): InternalChangesDelta;
34
+ setItemDeleted(tuple: ItemEntryChangesTuple<any>): this;
35
+ setItemsDeleted(deleted: ItemEntryChangesTuple<any>[]): this;
36
+ setItemCreated<ItemTypeType extends ApiEnumItemType>(itemEntry: ItemEntry<ItemTypeType>, fields: Partial<FieldMap<ItemTypeType>>): void;
37
+ /**
38
+ * @remark
39
+ * Parent fields are non-writable so we need to keep track of moved entries another way (to do a linkTo request)
40
+ */
41
+ setItemMoved(entry: ItemEntry, to: EntryParent): void;
42
+ isEmpty(): boolean;
43
+ private itemIsDeleted;
44
+ }