@rentman/rm-core 11.0.4 → 12.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 (65) hide show
  1. package/changelog.md +15 -0
  2. package/dist/rm-core.js +1902 -1798
  3. package/dist/rm-core.min.js +1 -1
  4. package/dist/types/src/FieldLookupProxy.d.ts +4 -0
  5. package/dist/types/src/classes/ApiFormatter.d.ts +1 -4
  6. package/dist/types/src/classes/BusinessLogicManager/BusinessLogicRule.d.ts +8 -9
  7. package/dist/types/src/classes/BusinessLogicManager/Customfield/CustomFieldTypeBusinessLogicRule.d.ts +1 -2
  8. package/dist/types/src/classes/BusinessLogicManager/Documents/DocumentTemplateBusinessLogicRule.d.ts +1 -2
  9. package/dist/types/src/classes/BusinessLogicManager/Exemplaar/ExemplaarAanschafdatumBusinessLogicRule.d.ts +1 -2
  10. package/dist/types/src/classes/BusinessLogicManager/Factuur/FactuurBetalingsconditieBusinessLogicRule.d.ts +1 -2
  11. package/dist/types/src/classes/BusinessLogicManager/Factuur/FactuurDatumBusinessLogicRule.d.ts +1 -2
  12. package/dist/types/src/classes/BusinessLogicManager/Factuur/FactuurNumberseriesBusinessLogicRule.d.ts +1 -2
  13. package/dist/types/src/classes/BusinessLogicManager/Functie/FunctieNaaminternBusinessLogicRule.d.ts +1 -2
  14. package/dist/types/src/classes/BusinessLogicManager/Functie/FunctieTwowayBusinessLogicRule.d.ts +1 -2
  15. package/dist/types/src/classes/BusinessLogicManager/Materiaal/MateriaalTypeBusinessLogicRule.d.ts +1 -2
  16. package/dist/types/src/classes/BusinessLogicManager/Materiaal/MateriaalVerhuurBusinessLogicRule.d.ts +1 -2
  17. package/dist/types/src/classes/BusinessLogicManager/Materiaal/SurfaceArticleSizeBusinessLogicRule.d.ts +1 -2
  18. package/dist/types/src/classes/BusinessLogicManager/OfferteContract/OfferteContractDatumBusinessLogicRule.d.ts +1 -2
  19. package/dist/types/src/classes/BusinessLogicManager/PlanningPersoneelTransport/PlanningPersoneelTransportBusinessLogicRule.d.ts +1 -2
  20. package/dist/types/src/classes/BusinessLogicManager/Project/ProjectClientNoteBusinessLogicRule.d.ts +1 -2
  21. package/dist/types/src/classes/BusinessLogicManager/Reparatie/ReparatieExemplaarBusinessLogicRule.d.ts +1 -2
  22. package/dist/types/src/classes/BusinessLogicManager/Rol/RolDocumentAccessBusinessLogicRule.d.ts +1 -2
  23. package/dist/types/src/classes/BusinessLogicManager/Rol/RolEditOwnDataBusinessLogicRule.d.ts +1 -2
  24. package/dist/types/src/classes/BusinessLogicManager/Rol/RolFileAccessBusinessLogicRule.d.ts +1 -2
  25. package/dist/types/src/classes/BusinessLogicManager/Rol/RolPersoneelsplannerToegangBusinessLogicRule.d.ts +1 -2
  26. package/dist/types/src/classes/BusinessLogicManager/Rol/RolProjectenBewerkenBusinessLogicRule.d.ts +1 -2
  27. package/dist/types/src/classes/BusinessLogicManager/Rol/RolProjectenToegangBusinessLogicRule.d.ts +1 -2
  28. package/dist/types/src/classes/CacheSyncer.d.ts +3 -2
  29. package/dist/types/src/classes/ChangesDelta.d.ts +3 -3
  30. package/dist/types/src/classes/ChangesDeltaBase.d.ts +20 -15
  31. package/dist/types/src/classes/ColumnUtil.d.ts +14 -14
  32. package/dist/types/src/classes/InternalChangesDelta.d.ts +5 -5
  33. package/dist/types/src/classes/QueryMatcher.d.ts +8 -7
  34. package/dist/types/src/classes/RequestBuffer.d.ts +2 -2
  35. package/dist/types/src/classes/RequestBufferManager.d.ts +2 -2
  36. package/dist/types/src/classes/RequestColumnExpansion.d.ts +6 -8
  37. package/dist/types/src/classes/RequestColumnsOperationsCache.d.ts +46 -0
  38. package/dist/types/src/classes/TemplateCache.d.ts +2 -2
  39. package/dist/types/src/classes/cache/AbstractCache.d.ts +2 -3
  40. package/dist/types/src/classes/cache/CachedQueryHandlerBase.d.ts +18 -17
  41. package/dist/types/src/classes/cache/ItemHandlerBase.d.ts +7 -8
  42. package/dist/types/src/classes/cache/server/ServerCache.d.ts +2 -3
  43. package/dist/types/src/classes/cache/server/ServerCachedQueryHandler.d.ts +10 -9
  44. package/dist/types/src/classes/cache/server/ServerItemHandler.d.ts +3 -7
  45. package/dist/types/src/classes/cache/transaction/TransactionCache.d.ts +3 -11
  46. package/dist/types/src/classes/cache/transaction/TransactionCachedQueryHandler.d.ts +17 -6
  47. package/dist/types/src/classes/cache/transaction/TransactionItemHandler.d.ts +5 -15
  48. package/dist/types/src/core.d.ts +2 -2
  49. package/dist/types/src/factories/CacheSyncerFactory.d.ts +5 -1
  50. package/dist/types/src/factories/QueryMatcherFactory.d.ts +4 -3
  51. package/dist/types/src/factories/RequestColumnExpansionFactory.d.ts +1 -3
  52. package/dist/types/src/factories/RequestColumnsOperationsCacheFactory.d.ts +8 -0
  53. package/dist/types/src/interfaces/AbstractCacheDependencyInterface.d.ts +3 -3
  54. package/dist/types/src/interfaces/TransactionCollectionHandlerDependencyInterface.d.ts +7 -7
  55. package/dist/types/src/interfaces/TransactionItemHandlerDependencyInterface.d.ts +3 -3
  56. package/dist/types/src/internal.d.ts +2 -2
  57. package/dist/types/src/models/CachedQueryItem.d.ts +3 -3
  58. package/dist/types/src/models/CollectionOptions.d.ts +2 -2
  59. package/dist/types/src/models/CollectionResource.d.ts +2 -2
  60. package/dist/types/src/types/ItemTypesCollection.d.ts +19 -6
  61. package/dist/types/tests/integration/helpers/helpers.d.ts +1 -0
  62. package/dist/types/tests/integration/transactions/field_lookup.test.d.ts +1 -0
  63. package/package.json +1 -1
  64. package/dist/types/src/classes/ColumnSubsetCache.d.ts +0 -14
  65. package/dist/types/src/factories/ColumnSubsetCacheFactory.d.ts +0 -8
@@ -0,0 +1,4 @@
1
+ import { ApiEnumItemType } from '@rentman/backend-types';
2
+ import { AbstractCache } from './classes/cache/AbstractCache';
3
+ import { ItemEntry } from './models/ItemEntry';
4
+ export declare const FieldLookupProxy: <ItemTypeType extends ApiEnumItemType>(transaction: AbstractCache, itemEntry: ItemEntry<ItemTypeType>, fromInitial?: boolean) => {};
@@ -40,15 +40,12 @@ export declare class ApiFormatter {
40
40
  * Note: parentChanges can be undefined for local items
41
41
  */
42
42
  mergeCopyFields<ItemTypeType extends ApiEnumItemType, ColumnIds extends ItemTypeColumnIds<ItemTypeType> = any>(parentChanges: FieldMap<ItemTypeType, ColumnIds> | undefined, changes: FieldMap<ItemTypeType, ColumnIds>, initial: FieldMap<ItemTypeType, ColumnIds>, newInitial: FieldMap<ItemTypeType, ColumnIds>, columns: ColumnInfo<ItemTypeType>[]): FieldMap<ItemTypeType, ColumnIds>;
43
- formatRequest<ItemTypeType extends ApiEnumItemType>(initial: FieldMap<ItemTypeType>, modified: FieldMap<ItemTypeType>, columns: ColumnInfo<ItemTypeType>[]): {
44
- [columnId: string]: any;
45
- };
46
43
  formatRequestLocal<ItemTypeType extends ApiEnumItemType>(fields: FieldMap<ItemTypeType>, columns: ColumnInfo<ItemTypeType>[]): {
47
44
  [columnId: string]: any;
48
45
  };
49
46
  hasChanges<ItemTypeType extends ApiEnumItemType>(initial: FieldMap<ItemTypeType>, modified: FieldMap<ItemTypeType>, columns: ColumnInfo<ItemTypeType>[], includeReadOnlyColumns?: boolean, forceCompare?: boolean): boolean;
50
47
  getChanges<ItemTypeType extends ApiEnumItemType = any, ColumnIds extends ItemTypeColumnIds<ItemTypeType> = any>(initial: FieldMap<ItemTypeType, ColumnIds>, modified: FieldMap<ItemTypeType, ColumnIds>, columns: ColumnInfo<ItemTypeType, ColumnIds[number]>[]): GetChangesResult<ItemTypeType, ColumnIds[number]>[];
51
- copyFields<ItemTypeType extends ApiEnumItemType = any, ColumnIds extends ItemTypeColumnIds<ItemTypeType> = any>(source: FieldMap<ItemTypeType, ColumnIds>, destination: Partial<FieldMap<ItemTypeType>>, columns: ColumnInfo<ItemTypeType, ColumnIds[number]>[]): FieldMap<ItemTypeType, ColumnIds>;
48
+ copyFields<ItemTypeType extends ApiEnumItemType = any, ColumnIds extends ItemTypeColumnIds<ItemTypeType> = any>(source: Partial<FieldMap<ItemTypeType, ColumnIds>>, destination: Partial<FieldMap<ItemTypeType>>, columns: ColumnInfo<ItemTypeType, ColumnIds[number]>[]): FieldMap<ItemTypeType, ColumnIds>;
52
49
  shallowCopyFields<ItemTypeType extends ApiEnumItemType>(shallowSource: FieldMap<ItemTypeType>, deepSource: FieldMap<ItemTypeType>, destination: FieldMap<ItemTypeType>, columns: ColumnInfo<ItemTypeType>[]): FieldMap<ItemTypeType>;
53
50
  setDefaultValues<ItemTypeType extends ApiEnumItemType = any>(destination: FieldMap<ItemTypeType>, columns: ColumnInfo<ItemTypeType>[]): FieldMap<ItemTypeType>;
54
51
  /**
@@ -3,7 +3,6 @@ import { ItemEntry } from '../../models/ItemEntry';
3
3
  import { FieldMap, GetFieldValueType, ItemTypeColumnId } from '../../types/ItemTypesCollection';
4
4
  import { ApiFormatter } from '../ApiFormatter';
5
5
  import { TransactionCache } from '../cache/transaction/TransactionCache';
6
- import { TransactionItemHandler } from '../cache/transaction/TransactionItemHandler';
7
6
  import { ChangesDelta } from '../ChangesDelta';
8
7
  import { ChangesDeltaItemUpdateDelta } from '../ChangesDeltaBase';
9
8
  export declare type BusinessLogicRuleConfirmFn<ConditionResult = any> = (conditionResult: ConditionResult, changesDelta: ChangesDelta) => Promise<boolean>;
@@ -31,10 +30,10 @@ export declare abstract class BusinessLogicRule<ConditionResult extends any = an
31
30
  * @description
32
31
  * Checks if the business rule should run. It will first check if there's any item in the changesDelta this rule applies to. If this is the case it will check if the rule has a {@link BusinessLogicRule.confirmFn confirmFn} and show it if there is one.
33
32
  *
33
+ * @param transaction
34
34
  * @param changesDelta The changesDelta that is being applied
35
- * @param itemChanges The transaction's item changes
36
35
  */
37
- checkCondition(changesDelta: ChangesDelta, itemChanges: TransactionItemHandler['itemChanges']): Promise<ConditionResult | undefined>;
36
+ checkCondition(transaction: TransactionCache, changesDelta: ChangesDelta): Promise<ConditionResult | undefined>;
38
37
  /**
39
38
  * @description
40
39
  * The {@link BusinessLogicRule.dependency `dependency`} function gets the result of the {@link BusinessLogicRule.condition `condition`} function and has to ensure that
@@ -64,31 +63,31 @@ export declare abstract class BusinessLogicRule<ConditionResult extends any = an
64
63
  * The {@link BusinessLogicRule.condition `condition`} function should extract the items from the {@link ChangesDelta `ChangesDelta`} so that the {@link BusinessLogicRule.dependency `dependency`} function can fetch the required data for the business rule.
65
64
  * This function can return `undefined` if the rule does not apply to the items in the given ChangesDelta.
66
65
  *
66
+ * @param transaction
67
67
  * @param changesDelta The source changesDelta that triggered the business rule
68
- * @param itemChanges The {@link TransactionItemHandler.itemChanges ItemChanges} of the transaction
69
68
  * @protected
70
69
  */
71
- protected abstract condition(changesDelta: ChangesDelta, itemChanges: TransactionItemHandler['itemChanges']): ConditionResult | undefined;
70
+ protected abstract condition(changesDelta: ChangesDelta, transaction: TransactionCache): ConditionResult | undefined;
72
71
  /**
73
72
  * @description
74
73
  * This function is a utility function that will return the {@link ItemId ItemIds} of updated items in the {@link ChangesDelta ChangesDelta} which match the {@link ApiEnumItemType ItemType} and of which the provided column's field has changed
75
74
  *
75
+ * @param transaction
76
76
  * @param changesDelta The source changesDelta that triggered the business rule
77
- * @param itemChanges The {@link TransactionItemHandler.itemChanges ItemChanges} of the transaction
78
77
  * @param itemType The ItemType of the item you want to compare a field from
79
78
  * @param columnId The columnId of the field that should've been changed for the ID to be included
80
79
  * @protected
81
80
  */
82
- protected getItemIdsWithUpdatedField<ItemTypeType extends ApiEnumItemType>(changesDelta: ChangesDelta, itemChanges: TransactionItemHandler['itemChanges'], itemType: ItemTypeType, columnId: keyof FieldMap<ItemTypeType>): ItemId[] | undefined;
81
+ protected getItemIdsWithUpdatedField<ItemTypeType extends ApiEnumItemType>(transaction: TransactionCache, changesDelta: ChangesDelta, itemType: ItemTypeType, columnId: keyof FieldMap<ItemTypeType>): ItemId[] | undefined;
83
82
  /**
84
83
  * @description
85
84
  * This function will compare the stored changes with the given changes, and return a {@link BusinessLogicConditionResult} if the fields have been changed, null otherwise.
86
85
  * If either the source or changed field is `undefined` it will always return `null` (not changed)
87
86
  *
88
- * @param itemChanges The {@link TransactionItemHandler.itemChanges ItemChanges} of the transaction
87
+ * @param transaction
89
88
  * @param tuple The {@link ChangesDelta.updated update tuple} from a ChangesDelta
90
89
  * @param columnId The columnId of the field that should've been changed for the ID to be included
91
90
  * @protected
92
91
  */
93
- protected fieldChanged<ItemTypeType extends ApiEnumItemType, ColumnId extends ItemTypeColumnId<ItemTypeType>>(itemChanges: TransactionItemHandler['itemChanges'], tuple: ChangesDeltaItemUpdateDelta<ItemTypeType>, columnId: ColumnId): null | BusinessLogicConditionResult<ItemTypeType, ColumnId>;
92
+ protected fieldChanged<ItemTypeType extends ApiEnumItemType, ColumnId extends ItemTypeColumnId<ItemTypeType>>(transaction: TransactionCache, tuple: ChangesDeltaItemUpdateDelta<ItemTypeType>, columnId: ColumnId): null | BusinessLogicConditionResult<ItemTypeType, ColumnId>;
94
93
  }
@@ -1,7 +1,6 @@
1
1
  import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
2
2
  import { ItemResource } from '../../../models/ItemResource';
3
3
  import { TransactionCache } from '../../cache/transaction/TransactionCache';
4
- import { TransactionItemHandler } from '../../cache/transaction/TransactionItemHandler';
5
4
  import { ChangesDelta } from '../../ChangesDelta';
6
5
  import { BusinessLogicRule } from '../BusinessLogicRule';
7
6
  declare type ConditionResult = ItemId[];
@@ -11,7 +10,7 @@ declare type Dependency = ItemResource<ApiEnumItemType.Customfield, ['defaultval
11
10
  * If the 'type' field changes we reset the 'defaultvalue' and 'attribute' fields so that they do not contain invalid values
12
11
  */
13
12
  export declare class CustomFieldTypeBusinessLogicRule extends BusinessLogicRule<ConditionResult, Dependency> {
14
- condition(changesDelta: ChangesDelta, itemChanges: TransactionItemHandler['itemChanges']): ConditionResult | undefined;
13
+ condition(changesDelta: ChangesDelta, transaction: TransactionCache): ConditionResult | undefined;
15
14
  dependency(transaction: TransactionCache, functionIds: ConditionResult): Promise<Dependency>;
16
15
  apply(changesDelta: ChangesDelta, destinationChangesDelta: ChangesDelta, customFieldResources: Dependency): void;
17
16
  }
@@ -3,7 +3,6 @@ import { PromiseLibraryInterface } from '../../../interfaces/PromiseLibraryInter
3
3
  import { ItemResource } from '../../../models/ItemResource';
4
4
  import { ApiFormatter } from '../../ApiFormatter';
5
5
  import { TransactionCache } from '../../cache/transaction/TransactionCache';
6
- import { TransactionItemHandler } from '../../cache/transaction/TransactionItemHandler';
7
6
  import { ChangesDelta } from '../../ChangesDelta';
8
7
  import { BusinessLogicRule } from '../BusinessLogicRule';
9
8
  declare type DocumentTypes = ApiEnumItemType.Factuur | ApiEnumItemType.Offerte | ApiEnumItemType.Contract | ApiEnumItemType.Bon | ApiEnumItemType.Inhuurbon | ApiEnumItemType.Materiaalbon | ApiEnumItemType.Medewerkerbon | ApiEnumItemType.Aanmaning | ApiEnumItemType.Reparatiebon | ApiEnumItemType.Voertuigbon;
@@ -17,7 +16,7 @@ export declare class DocumentTemplateBusinessLogicRule extends BusinessLogicRule
17
16
  protected apiFormatter: ApiFormatter;
18
17
  private promiseLibrary;
19
18
  constructor(apiFormatter: ApiFormatter, promiseLibrary: PromiseLibraryInterface);
20
- condition(changesDelta: ChangesDelta, itemChanges: TransactionItemHandler['itemChanges']): ConditionResult | undefined;
19
+ condition(changesDelta: ChangesDelta, transaction: TransactionCache): ConditionResult | undefined;
21
20
  dependency(transaction: TransactionCache, itemIdMap: ConditionResult): Promise<Dependency>;
22
21
  apply(_changesDelta: ChangesDelta, destinationChangesDelta: ChangesDelta, items: Dependency): void;
23
22
  private isDocumentType;
@@ -1,13 +1,12 @@
1
1
  import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
2
2
  import { ItemResource } from '../../../models/ItemResource';
3
3
  import { TransactionCache } from '../../cache/transaction/TransactionCache';
4
- import { TransactionItemHandler } from '../../cache/transaction/TransactionItemHandler';
5
4
  import { ChangesDelta } from '../../ChangesDelta';
6
5
  import { BusinessLogicRule } from '../BusinessLogicRule';
7
6
  declare type ConditionResult = ItemId[];
8
7
  declare type Dependency = ItemResource<ApiEnumItemType.Exemplaar, ['actief']>[];
9
8
  export declare class ExemplaarAanschafdatumBusinessLogicRule extends BusinessLogicRule<ConditionResult, Dependency> {
10
- condition(changesDelta: ChangesDelta, _itemChanges: TransactionItemHandler['itemChanges']): ConditionResult | undefined;
9
+ condition(changesDelta: ChangesDelta): ConditionResult | undefined;
11
10
  dependency(transaction: TransactionCache, exemplaarIds: ConditionResult): Promise<Dependency>;
12
11
  apply(_changesDelta: ChangesDelta, destinationChangesDelta: ChangesDelta, exemplaarResources: Dependency): void;
13
12
  }
@@ -1,7 +1,6 @@
1
1
  import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
2
2
  import { ItemResource } from '../../../models/ItemResource';
3
3
  import { TransactionCache } from '../../cache/transaction/TransactionCache';
4
- import { TransactionItemHandler } from '../../cache/transaction/TransactionItemHandler';
5
4
  import { ChangesDelta } from '../../ChangesDelta';
6
5
  import { BusinessLogicConditionResult, BusinessLogicRule } from '../BusinessLogicRule';
7
6
  declare type ConditionResult = BusinessLogicConditionResult<ApiEnumItemType.Factuur, 'betalingsconditie'>[];
@@ -13,7 +12,7 @@ declare type Dependency = {
13
12
  defaultPaymentConditionId: ItemId | null;
14
13
  };
15
14
  export declare class FactuurBetalingsconditieBusinessLogicRule extends BusinessLogicRule<ConditionResult, Dependency> {
16
- condition(changesDelta: ChangesDelta, itemChanges: TransactionItemHandler['itemChanges']): ConditionResult | undefined;
15
+ condition(changesDelta: ChangesDelta, transaction: TransactionCache): ConditionResult | undefined;
17
16
  dependency(transaction: TransactionCache, result: ConditionResult, changesDelta: ChangesDelta): Promise<Dependency>;
18
17
  apply(changesDelta: ChangesDelta, destinationChangesDelta: ChangesDelta, deps: Dependency): void;
19
18
  }
@@ -1,7 +1,6 @@
1
1
  import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
2
2
  import { ItemResource } from '../../../models/ItemResource';
3
3
  import { TransactionCache } from '../../cache/transaction/TransactionCache';
4
- import { TransactionItemHandler } from '../../cache/transaction/TransactionItemHandler';
5
4
  import { ChangesDelta } from '../../ChangesDelta';
6
5
  import { BusinessLogicRule } from '../BusinessLogicRule';
7
6
  declare type ConditionResult = ItemId[];
@@ -12,7 +11,7 @@ declare type Dependency = {
12
11
  };
13
12
  };
14
13
  export declare class FactuurDatumBusinessLogicRule extends BusinessLogicRule<ConditionResult, Dependency> {
15
- condition(changesDelta: ChangesDelta, itemChanges: TransactionItemHandler['itemChanges']): ConditionResult | undefined;
14
+ condition(changesDelta: ChangesDelta, transaction: TransactionCache): ConditionResult | undefined;
16
15
  dependency(transaction: TransactionCache, factuurIds: ConditionResult, _changesDelta: ChangesDelta): Promise<Dependency>;
17
16
  apply(changesDelta: ChangesDelta, destinationChangesDelta: ChangesDelta, deps: Dependency): void;
18
17
  }
@@ -1,13 +1,12 @@
1
1
  import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
2
2
  import { ItemResource } from '../../../models/ItemResource';
3
3
  import { TransactionCache } from '../../cache/transaction/TransactionCache';
4
- import { TransactionItemHandler } from '../../cache/transaction/TransactionItemHandler';
5
4
  import { ChangesDelta } from '../../ChangesDelta';
6
5
  import { BusinessLogicRule } from '../BusinessLogicRule';
7
6
  declare type ConditionResult = ItemId[];
8
7
  declare type Dependency = ItemResource<ApiEnumItemType.Factuur, ['nummer']>[];
9
8
  export declare class FactuurNumberseriesBusinessLogicRule extends BusinessLogicRule<ConditionResult, Dependency> {
10
- condition(changesDelta: ChangesDelta, itemChanges: TransactionItemHandler['itemChanges']): ConditionResult | undefined;
9
+ condition(changesDelta: ChangesDelta, transaction: TransactionCache): ConditionResult | undefined;
11
10
  dependency(transaction: TransactionCache, factuurIds: ConditionResult): Promise<Dependency>;
12
11
  apply(_changesDelta: ChangesDelta, destinationChangesDelta: ChangesDelta, factuurResources: Dependency): void;
13
12
  }
@@ -1,7 +1,6 @@
1
1
  import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
2
2
  import { ItemResource } from '../../../models/ItemResource';
3
3
  import { TransactionCache } from '../../cache/transaction/TransactionCache';
4
- import { TransactionItemHandler } from '../../cache/transaction/TransactionItemHandler';
5
4
  import { ChangesDelta } from '../../ChangesDelta';
6
5
  import { BusinessLogicRule } from '../BusinessLogicRule';
7
6
  declare type ConditionResult = ItemId[];
@@ -11,7 +10,7 @@ declare type Dependency = ItemResource<ApiEnumItemType.Functie, ['naamintern']>[
11
10
  * If the `naamofferte` is set and the user hasn't filled in a `naamintern` we sync the fields
12
11
  */
13
12
  export declare class FunctieNaaminternBusinessLogicRule extends BusinessLogicRule<ConditionResult, Dependency> {
14
- condition(changesDelta: ChangesDelta, itemChanges: TransactionItemHandler['itemChanges']): ConditionResult | undefined;
13
+ condition(changesDelta: ChangesDelta, transaction: TransactionCache): ConditionResult | undefined;
15
14
  dependency(transaction: TransactionCache, functionIds: ConditionResult): Promise<Dependency>;
16
15
  apply(changesDelta: ChangesDelta, destinationChangesDelta: ChangesDelta, functionResources: Dependency): void;
17
16
  }
@@ -1,13 +1,12 @@
1
1
  import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
2
2
  import { ItemResource } from '../../../models/ItemResource';
3
3
  import { TransactionCache } from '../../cache/transaction/TransactionCache';
4
- import { TransactionItemHandler } from '../../cache/transaction/TransactionItemHandler';
5
4
  import { ChangesDelta } from '../../ChangesDelta';
6
5
  import { BusinessLogicRule } from '../BusinessLogicRule';
7
6
  declare type ConditionResult = ItemId[];
8
7
  declare type Dependency = ItemResource<ApiEnumItemType.Functie, ['afstand']>[];
9
8
  export declare class FunctieTwowayBusinessLogicRule extends BusinessLogicRule<ConditionResult, Dependency> {
10
- condition(changesDelta: ChangesDelta, itemChanges: TransactionItemHandler['itemChanges']): ConditionResult | undefined;
9
+ condition(changesDelta: ChangesDelta, transaction: TransactionCache): ConditionResult | undefined;
11
10
  dependency(transaction: TransactionCache, functionIds: ConditionResult): Promise<Dependency>;
12
11
  apply(changesDelta: ChangesDelta, destinationChangesDelta: ChangesDelta, functionResources: Dependency): void;
13
12
  }
@@ -1,7 +1,6 @@
1
1
  import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
2
2
  import { ItemResource } from '../../../models/ItemResource';
3
3
  import { TransactionCache } from '../../cache/transaction/TransactionCache';
4
- import { TransactionItemHandler } from '../../cache/transaction/TransactionItemHandler';
5
4
  import { ChangesDelta } from '../../ChangesDelta';
6
5
  import { BusinessLogicRule } from '../BusinessLogicRule';
7
6
  declare type ConditionResult = ItemId[];
@@ -11,7 +10,7 @@ declare type Dependency = ItemResource<ApiEnumItemType.Materiaal, ['aantal']>[];
11
10
  * A sales item can never be a case, so if the user changes the item to a case we make it a rental item
12
11
  */
13
12
  export declare class MateriaalTypeBusinessLogicRule extends BusinessLogicRule<ConditionResult, Dependency> {
14
- condition(changesDelta: ChangesDelta, _itemChanges: TransactionItemHandler['itemChanges']): ConditionResult | undefined;
13
+ condition(changesDelta: ChangesDelta): ConditionResult | undefined;
15
14
  dependency(transaction: TransactionCache, materiaalIds: ConditionResult): Promise<Dependency>;
16
15
  apply(_changesDelta: ChangesDelta, destinationChangesDelta: ChangesDelta, materiaalResources: Dependency): void;
17
16
  }
@@ -1,7 +1,6 @@
1
1
  import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
2
2
  import { ItemResource } from '../../../models/ItemResource';
3
3
  import { TransactionCache } from '../../cache/transaction/TransactionCache';
4
- import { TransactionItemHandler } from '../../cache/transaction/TransactionItemHandler';
5
4
  import { ChangesDelta } from '../../ChangesDelta';
6
5
  import { BusinessLogicRule } from '../BusinessLogicRule';
7
6
  declare type ConditionResult = ItemId[];
@@ -11,7 +10,7 @@ declare type Dependency = ItemResource<ApiEnumItemType.Materiaal, ['aantal']>[];
11
10
  * A sales item can never be a case, so if it is we reset it to an item
12
11
  */
13
12
  export declare class MateriaalVerhuurBusinessLogicRule extends BusinessLogicRule<ConditionResult, Dependency> {
14
- condition(changesDelta: ChangesDelta, _itemChanges: TransactionItemHandler['itemChanges']): ConditionResult | undefined;
13
+ condition(changesDelta: ChangesDelta): ConditionResult | undefined;
15
14
  dependency(transaction: TransactionCache, materiaalIds: ConditionResult): Promise<Dependency>;
16
15
  apply(_changesDelta: ChangesDelta, destinationChangesDelta: ChangesDelta, materiaalResources: Dependency): void;
17
16
  }
@@ -2,7 +2,6 @@ import { ApiEnumItemType, ApiModuleFunctionLocalsGetLocals, ItemId } from '@rent
2
2
  import { ItemResource } from '../../../models/ItemResource';
3
3
  import { ApiFormatter } from '../../ApiFormatter';
4
4
  import { TransactionCache } from '../../cache/transaction/TransactionCache';
5
- import { TransactionItemHandler } from '../../cache/transaction/TransactionItemHandler';
6
5
  import { ChangesDelta } from '../../ChangesDelta';
7
6
  import { BusinessLogicRule } from '../BusinessLogicRule';
8
7
  declare type ConditionResult = ItemId[];
@@ -12,7 +11,7 @@ export declare class SurfaceArticleSizeBusinessLogicRule extends BusinessLogicRu
12
11
  protected apiFormatter: ApiFormatter;
13
12
  private locals;
14
13
  constructor(apiFormatter: ApiFormatter, locals: ApiModuleFunctionLocalsGetLocals);
15
- condition(changesDelta: ChangesDelta, _itemChanges: TransactionItemHandler['itemChanges']): ConditionResult | undefined;
14
+ condition(changesDelta: ChangesDelta): ConditionResult | undefined;
16
15
  dependency(transaction: TransactionCache, materiaalIds: ConditionResult): Promise<Dependency>;
17
16
  apply(changesDelta: ChangesDelta, destinationChangesDelta: ChangesDelta, materiaalResources: Dependency): void;
18
17
  }
@@ -3,7 +3,6 @@ import { PromiseLibraryInterface } from '../../../interfaces/PromiseLibraryInter
3
3
  import { ItemResource } from '../../../models/ItemResource';
4
4
  import { ApiFormatter } from '../../ApiFormatter';
5
5
  import { TransactionCache } from '../../cache/transaction/TransactionCache';
6
- import { TransactionItemHandler } from '../../cache/transaction/TransactionItemHandler';
7
6
  import { ChangesDelta } from '../../ChangesDelta';
8
7
  import { BusinessLogicRule } from '../BusinessLogicRule';
9
8
  declare type ConditionResult = {
@@ -19,7 +18,7 @@ export declare class OfferteContractDatumBusinessLogicRule extends BusinessLogic
19
18
  protected apiFormatter: ApiFormatter;
20
19
  private promiseLibrary;
21
20
  constructor(apiFormatter: ApiFormatter, promiseLibrary: PromiseLibraryInterface);
22
- condition(changesDelta: ChangesDelta, itemChanges: TransactionItemHandler['itemChanges']): ConditionResult | undefined;
21
+ condition(changesDelta: ChangesDelta, transaction: TransactionCache): ConditionResult | undefined;
23
22
  dependency(transaction: TransactionCache, itemIdMap: ConditionResult): Promise<Dependency>;
24
23
  apply(_changesDelta: ChangesDelta, destinationChangesDelta: ChangesDelta, items: Dependency): void;
25
24
  }
@@ -3,7 +3,6 @@ import { PromiseLibraryInterface } from '../../../interfaces/PromiseLibraryInter
3
3
  import { ItemResource } from '../../../models/ItemResource';
4
4
  import { ApiFormatter } from '../../ApiFormatter';
5
5
  import { TransactionCache } from '../../cache/transaction/TransactionCache';
6
- import { TransactionItemHandler } from '../../cache/transaction/TransactionItemHandler';
7
6
  import { ChangesDelta } from '../../ChangesDelta';
8
7
  import { BusinessLogicRule } from '../BusinessLogicRule';
9
8
  declare type ConditionResult = {
@@ -21,7 +20,7 @@ export declare class PlanningPersoneelTransportBusinessLogicRule extends Busines
21
20
  protected apiFormatter: ApiFormatter;
22
21
  private promiseLibrary;
23
22
  constructor(apiFormatter: ApiFormatter, promiseLibrary: PromiseLibraryInterface);
24
- condition(changesDelta: ChangesDelta, itemChanges: TransactionItemHandler['itemChanges']): ConditionResult | undefined;
23
+ condition(changesDelta: ChangesDelta, transaction: TransactionCache): ConditionResult | undefined;
25
24
  dependency(transaction: TransactionCache, itemIdMap: ConditionResult): Promise<Dependency>;
26
25
  apply(changesDelta: ChangesDelta, destinationChangesDelta: ChangesDelta, items: Dependency): void;
27
26
  private updatePlanningColumns;
@@ -3,7 +3,6 @@ import { PromiseLibraryInterface } from '../../../interfaces/PromiseLibraryInter
3
3
  import { ItemResource } from '../../../models/ItemResource';
4
4
  import { ApiFormatter } from '../../ApiFormatter';
5
5
  import { TransactionCache } from '../../cache/transaction/TransactionCache';
6
- import { TransactionItemHandler } from '../../cache/transaction/TransactionItemHandler';
7
6
  import { ChangesDelta } from '../../ChangesDelta';
8
7
  import { BusinessLogicRule } from '../BusinessLogicRule';
9
8
  declare type ConditionResult = {
@@ -16,7 +15,7 @@ export declare class ProjectClientNoteBusinessLogicRule extends BusinessLogicRul
16
15
  protected apiFormatter: ApiFormatter;
17
16
  private promiseLibrary;
18
17
  constructor(apiFormatter: ApiFormatter, promiseLibrary: PromiseLibraryInterface);
19
- condition(changesDelta: ChangesDelta, _itemChanges: TransactionItemHandler['itemChanges']): ConditionResult | undefined;
18
+ condition(changesDelta: ChangesDelta): ConditionResult | undefined;
20
19
  dependency(transaction: TransactionCache, obj: ConditionResult): Promise<Dependency>;
21
20
  apply(_changesDelta: ChangesDelta, destinationChangesDelta: ChangesDelta, obj: Dependency): Promise<void>;
22
21
  }
@@ -1,13 +1,12 @@
1
1
  import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
2
2
  import { ItemResource } from '../../../models/ItemResource';
3
3
  import { TransactionCache } from '../../cache/transaction/TransactionCache';
4
- import { TransactionItemHandler } from '../../cache/transaction/TransactionItemHandler';
5
4
  import { ChangesDelta } from '../../ChangesDelta';
6
5
  import { BusinessLogicRule } from '../BusinessLogicRule';
7
6
  declare type ConditionResult = ItemId[];
8
7
  declare type Dependency = ItemResource<ApiEnumItemType.Reparatie, ['aantal']>[];
9
8
  export declare class ReparatieAanschafdatumBusinessLogicRule extends BusinessLogicRule<ConditionResult, Dependency> {
10
- condition(changesDelta: ChangesDelta, _itemChanges: TransactionItemHandler['itemChanges']): ConditionResult | undefined;
9
+ condition(changesDelta: ChangesDelta): ConditionResult | undefined;
11
10
  dependency(transaction: TransactionCache, reparatieIds: ConditionResult): Promise<Dependency>;
12
11
  apply(_changesDelta: ChangesDelta, destinationChangesDelta: ChangesDelta, reparatieResources: Dependency): void;
13
12
  }
@@ -1,7 +1,6 @@
1
1
  import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
2
2
  import { ItemResource } from '../../../models/ItemResource';
3
3
  import { TransactionCache } from '../../cache/transaction/TransactionCache';
4
- import { TransactionItemHandler } from '../../cache/transaction/TransactionItemHandler';
5
4
  import { ChangesDelta } from '../../ChangesDelta';
6
5
  import { BusinessLogicRule } from '../BusinessLogicRule';
7
6
  declare type ConditionResult = ItemId[];
@@ -11,7 +10,7 @@ declare type Dependency = ItemResource<ApiEnumItemType.Rol, ['general_bestanden_
11
10
  * If you have project access or can make quotations/contracts you should have permissions to download files
12
11
  */
13
12
  export declare class RolDocumentAccessBusinessLogicRule extends BusinessLogicRule<ConditionResult, Dependency> {
14
- condition(changesDelta: ChangesDelta, _itemChanges: TransactionItemHandler['itemChanges']): ConditionResult | undefined;
13
+ condition(changesDelta: ChangesDelta): ConditionResult | undefined;
15
14
  dependency(transaction: TransactionCache, rolIds: ConditionResult): Promise<Dependency>;
16
15
  apply(_changesDelta: ChangesDelta, destinationChangesDelta: ChangesDelta, rolResources: Dependency): void;
17
16
  }
@@ -1,7 +1,6 @@
1
1
  import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
2
2
  import { ItemResource } from '../../../models/ItemResource';
3
3
  import { TransactionCache } from '../../cache/transaction/TransactionCache';
4
- import { TransactionItemHandler } from '../../cache/transaction/TransactionItemHandler';
5
4
  import { ChangesDelta } from '../../ChangesDelta';
6
5
  import { BusinessLogicRule } from '../BusinessLogicRule';
7
6
  declare type ConditionResult = ItemId[];
@@ -11,7 +10,7 @@ declare type Dependency = ItemResource<ApiEnumItemType.Rol, ['general_eigen_mede
11
10
  * If you can access update crew data, you can also always update your own data
12
11
  */
13
12
  export declare class RolEditOwnDataBusinessLogicRule extends BusinessLogicRule<ConditionResult, Dependency> {
14
- condition(changesDelta: ChangesDelta, _itemChanges: TransactionItemHandler['itemChanges']): ConditionResult | undefined;
13
+ condition(changesDelta: ChangesDelta): ConditionResult | undefined;
15
14
  dependency(transaction: TransactionCache, rolIds: ConditionResult): Promise<Dependency>;
16
15
  apply(_changesDelta: ChangesDelta, destinationChangesDelta: ChangesDelta, rolResources: Dependency): void;
17
16
  }
@@ -1,7 +1,6 @@
1
1
  import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
2
2
  import { ItemResource } from '../../../models/ItemResource';
3
3
  import { TransactionCache } from '../../cache/transaction/TransactionCache';
4
- import { TransactionItemHandler } from '../../cache/transaction/TransactionItemHandler';
5
4
  import { ChangesDelta } from '../../ChangesDelta';
6
5
  import { BusinessLogicRule } from '../BusinessLogicRule';
7
6
  declare type ConditionResult = ItemId[];
@@ -11,7 +10,7 @@ declare type Dependency = ItemResource<ApiEnumItemType.Rol, ['facturen_eigen', '
11
10
  * If you have project access or can make invoices you should have permissions to download files, see invoices and edit invoices
12
11
  */
13
12
  export declare class RolFileAccessBusinessLogicRule extends BusinessLogicRule<ConditionResult, Dependency> {
14
- condition(changesDelta: ChangesDelta, _itemChanges: TransactionItemHandler['itemChanges']): ConditionResult | undefined;
13
+ condition(changesDelta: ChangesDelta): ConditionResult | undefined;
15
14
  dependency(transaction: TransactionCache, rolIds: ConditionResult): Promise<Dependency>;
16
15
  apply(changesDelta: ChangesDelta, destinationChangesDelta: ChangesDelta, rolResources: Dependency): void;
17
16
  }
@@ -1,7 +1,6 @@
1
1
  import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
2
2
  import { ItemResource } from '../../../models/ItemResource';
3
3
  import { TransactionCache } from '../../cache/transaction/TransactionCache';
4
- import { TransactionItemHandler } from '../../cache/transaction/TransactionItemHandler';
5
4
  import { ChangesDelta } from '../../ChangesDelta';
6
5
  import { BusinessLogicRule } from '../BusinessLogicRule';
7
6
  declare type ConditionResult = ItemId[];
@@ -11,7 +10,7 @@ declare type Dependency = ItemResource<ApiEnumItemType.Rol, ['personeelsplanner_
11
10
  * If you can enter the crew planner you can also access projects
12
11
  */
13
12
  export declare class RolPersoneelsplannerToegangBusinessLogicRule extends BusinessLogicRule<ConditionResult, Dependency> {
14
- condition(changesDelta: ChangesDelta, _itemChanges: TransactionItemHandler['itemChanges']): ConditionResult | undefined;
13
+ condition(changesDelta: ChangesDelta): ConditionResult | undefined;
15
14
  dependency(transaction: TransactionCache, rolIds: ConditionResult): Promise<Dependency>;
16
15
  apply(_changesDelta: ChangesDelta, destinationChangesDelta: ChangesDelta, rolResources: Dependency): void;
17
16
  }
@@ -1,7 +1,6 @@
1
1
  import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
2
2
  import { ItemResource } from '../../../models/ItemResource';
3
3
  import { TransactionCache } from '../../cache/transaction/TransactionCache';
4
- import { TransactionItemHandler } from '../../cache/transaction/TransactionItemHandler';
5
4
  import { ChangesDelta } from '../../ChangesDelta';
6
5
  import { BusinessLogicRule } from '../BusinessLogicRule';
7
6
  declare type ConditionResult = ItemId[];
@@ -11,7 +10,7 @@ declare type Dependency = ItemResource<ApiEnumItemType.Rol, ['materialen_tijdlij
11
10
  * If you can edit projects you should be able to see the equipment availability
12
11
  */
13
12
  export declare class RolProjectenBewerkenBusinessLogicRule extends BusinessLogicRule<ConditionResult, Dependency> {
14
- condition(changesDelta: ChangesDelta, _itemChanges: TransactionItemHandler['itemChanges']): ConditionResult | undefined;
13
+ condition(changesDelta: ChangesDelta): ConditionResult | undefined;
15
14
  dependency(transaction: TransactionCache, rolIds: ConditionResult): Promise<Dependency>;
16
15
  apply(_changesDelta: ChangesDelta, destinationChangesDelta: ChangesDelta, rolResources: Dependency): void;
17
16
  }
@@ -1,7 +1,6 @@
1
1
  import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
2
2
  import { ItemResource } from '../../../models/ItemResource';
3
3
  import { TransactionCache } from '../../cache/transaction/TransactionCache';
4
- import { TransactionItemHandler } from '../../cache/transaction/TransactionItemHandler';
5
4
  import { ChangesDelta } from '../../ChangesDelta';
6
5
  import { BusinessLogicRule } from '../BusinessLogicRule';
7
6
  declare type ConditionResult = ItemId[];
@@ -11,7 +10,7 @@ declare type Dependency = ItemResource<ApiEnumItemType.Rol, ['uren_kosten']>[];
11
10
  * If you have access to projects you should be able to make costs for registered hours
12
11
  */
13
12
  export declare class RolProjectenToegangBusinessLogicRule extends BusinessLogicRule<ConditionResult, Dependency> {
14
- condition(changesDelta: ChangesDelta, _itemChanges: TransactionItemHandler['itemChanges']): ConditionResult | undefined;
13
+ condition(changesDelta: ChangesDelta): ConditionResult | undefined;
15
14
  dependency(transaction: TransactionCache, rolIds: ConditionResult): Promise<Dependency>;
16
15
  apply(_changesDelta: ChangesDelta, destinationChangesDelta: ChangesDelta, rolResources: Dependency): void;
17
16
  }
@@ -1,11 +1,12 @@
1
1
  import { ApiEnumItemType } from '@rentman/backend-types';
2
2
  import { AbstractCache, ApiRequestService, CachedQueryItem, ChangesDeltaBase, CollectionQuery, CollectionResource, FieldMap, ItemEntry, ItemTypeMap, ParentChangesDelta, PromiseInterface, PromiseLibraryInterface, QueryMatcherFactory, QueryService } from '../internal';
3
- export declare type CacheSyncerQueryMap = ItemTypeMap<{
3
+ export declare type CacheSyncerQueryMap = ItemTypeMap<CacheSyncerQueryMapEntry>;
4
+ export declare type CacheSyncerQueryMapEntry = {
4
5
  [cachedQueryString: string]: {
5
6
  cachedQueryItems: CachedQueryItem[];
6
7
  collectionResources: CollectionResource[];
7
8
  };
8
- }>;
9
+ };
9
10
  declare type CacheSyncerMatchesMapEntry = {
10
11
  query: CollectionQuery;
11
12
  items: ItemEntry[];
@@ -1,5 +1,5 @@
1
1
  import { ApiEnumItemType, ApiFields, ItemId } from '@rentman/backend-types';
2
- import { ApiFormatter, ChangesDeltaBase, ColumnExpansionResult, ColumnSet, CreatedChangesDelta, EntryParent, EntryParentNull, ErrorHandlerInterface, FieldMap, ItemCreateService, ItemEntry, ItemEntryService, PromiseInterface } from '../internal';
2
+ import { ApiFormatter, ChangesDeltaBase, ChangesDeltaItemUpdateMode, ColumnExpansionResult, ColumnSet, CreatedChangesDelta, EntryParent, EntryParentNull, ErrorHandlerInterface, FieldMap, ItemCreateService, ItemEntry, ItemEntryService, PromiseInterface } from '../internal';
3
3
  export declare type ChangesDeltaItemDeleteDelta = ItemEntry;
4
4
  /**
5
5
  * @description
@@ -32,7 +32,7 @@ export declare class ChangesDelta extends ChangesDeltaBase {
32
32
  * - If you want to set a parent set the proper field, you can't pass it as a separate object
33
33
  */
34
34
  setItemCreated<ItemTypeType extends ApiEnumItemType, Fields extends Partial<FieldMap<ItemTypeType>>>(itemType: ItemTypeType, values: Fields): PromiseInterface<this>;
35
- setItemUpdated<ItemTypeType extends ApiEnumItemType>(entry: ItemEntry<ItemTypeType>, fields: Partial<FieldMap<ItemTypeType>>, columnExpansionResult?: ColumnExpansionResult<ItemTypeType> | null, parent?: EntryParentNull, updateModified?: boolean, updateInitial?: boolean): this;
35
+ setItemUpdated<ItemTypeType extends ApiEnumItemType>(entry: ItemEntry<ItemTypeType>, fields: Partial<FieldMap<ItemTypeType>>, columnExpansionResult?: ColumnExpansionResult<ItemTypeType> | null, parent?: EntryParentNull, mode?: ChangesDeltaItemUpdateMode): this;
36
36
  setItemDeleted(deleted: ChangesDeltaItemDeleteDelta): this;
37
37
  setItemsDeleted(deleted: ChangesDeltaItemDeleteDelta[]): this;
38
38
  /**
@@ -60,6 +60,6 @@ export declare class ChangesDelta extends ChangesDeltaBase {
60
60
  * @description
61
61
  * Convenience function to assign the proper parent fields, will call {@link ChangesDeltaBase.setItemUpdated setItemUpdated} internally
62
62
  */
63
- setItemMoved(entry: ItemEntry, to: EntryParent, updateModified?: boolean, updateInitial?: boolean): this;
63
+ setItemMoved(entry: ItemEntry, to: EntryParent, mode?: ChangesDeltaItemUpdateMode): this;
64
64
  isEmpty(): boolean;
65
65
  }
@@ -1,9 +1,14 @@
1
1
  import { ApiEnumItemType, ItemId } from '@rentman/backend-types';
2
- import { ApiFormatter, ColumnExpansionResult, EntryParentNull, FieldMap, ItemEntry, ItemEntryService, ItemIdConversionMap, ItemTypeColumnId, TransactionItemEntryChanges, TransactionItemEntryChangesTuple } from '../internal';
2
+ import { ApiFormatter, ColumnExpansionResult, EntryParentNull, FieldMap, ItemEntry, ItemEntryChangesTuple, ItemEntryService, ItemIdConversionMap, ItemTypeColumnId } from '../internal';
3
3
  export declare type ChangesDeltaResult = {
4
4
  itemIdConversionMap: ItemIdConversionMap;
5
5
  created: ItemEntry[];
6
6
  };
7
+ export declare enum ChangesDeltaItemUpdateMode {
8
+ USER_CHANGE = "user",
9
+ QUERY_RESULT = "query",
10
+ SERVER_UPDATE = "update"
11
+ }
7
12
  /**
8
13
  * @remark
9
14
  * 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)
@@ -15,16 +20,7 @@ export declare type ChangesDeltaItemUpdateDelta<ItemTypeType extends ApiEnumItem
15
20
  fields: FieldMap<ItemTypeType>;
16
21
  parent: EntryParentNull;
17
22
  };
18
- /**
19
- * @description
20
- * Should be set to `true` when either the changes are made by the user, or when it's the direct result (not derived value) of a create/update API call
21
- */
22
- updateModified: boolean;
23
- /**
24
- * @description
25
- * Should be set to `true` when the changes are a result of an API call
26
- */
27
- updateInitial: boolean;
23
+ mode: ChangesDeltaItemUpdateMode;
28
24
  };
29
25
  export declare abstract class ChangesDeltaBase {
30
26
  protected itemEntryService: ItemEntryService;
@@ -37,7 +33,7 @@ export declare abstract class ChangesDeltaBase {
37
33
  * Only contains remote items, when rolling back local items the whole entries are deleted.
38
34
  */
39
35
  restored: {
40
- [itemEntryId: number]: TransactionItemEntryChangesTuple<any>;
36
+ [itemEntryId: number]: ItemEntryChangesTuple<any>;
41
37
  };
42
38
  /**
43
39
  * @private
@@ -61,8 +57,17 @@ export declare abstract class ChangesDeltaBase {
61
57
  };
62
58
  };
63
59
  };
60
+ /**
61
+ * @private
62
+ * When set, only collections of this item type will be matched.
63
+ */
64
+ _queryItemType?: ApiEnumItemType;
64
65
  protected constructor(itemEntryService: ItemEntryService, apiFormatter: ApiFormatter);
65
66
  getUpdatedValue<ItemTypeType extends ApiEnumItemType, ColumnId extends ItemTypeColumnId<ItemTypeType> = any>(itemEntry: ItemEntry<ItemTypeType>, columnId: ColumnId): FieldMap<ItemTypeType>[ColumnId] | undefined;
67
+ /**
68
+ * @private
69
+ */
70
+ _setQueryItemType(itemType?: ApiEnumItemType): this;
66
71
  /**
67
72
  * @description
68
73
  * Adds a hint for the {@link CollectionMatcherBase CacheSyncer] to the ChangesDelta, when the CollectionMatcher encounters a collection
@@ -72,8 +77,8 @@ export declare abstract class ChangesDeltaBase {
72
77
  */
73
78
  _setQueryResult(itemType: ApiEnumItemType, queryString: string, itemIds: ItemId[] | {
74
79
  [itemId: string]: true;
75
- }): void;
76
- setItemUpdated<ItemTypeType extends ApiEnumItemType>(entry: ItemEntry<ItemTypeType>, fields: Partial<FieldMap<ItemTypeType>>, columnExpansionResult?: ColumnExpansionResult<ItemTypeType> | null, parent?: EntryParentNull, updateModified?: boolean, updateInitial?: boolean): this;
77
- setItemRestored<ItemTypeType extends ApiEnumItemType>(itemEntry: ItemEntry<ItemTypeType>, transactionItemEntryChanges: TransactionItemEntryChanges<ItemTypeType>): void;
80
+ }): this;
81
+ setItemUpdated<ItemTypeType extends ApiEnumItemType>(entry: ItemEntry<ItemTypeType>, fields: Partial<FieldMap<ItemTypeType>>, columnExpansionResult?: ColumnExpansionResult<ItemTypeType> | null, parent?: EntryParentNull, mode?: ChangesDeltaItemUpdateMode): this;
82
+ setItemRestored<ItemTypeType extends ApiEnumItemType>(itemEntry: ItemEntry<ItemTypeType>, transactionItemEntryChanges: FieldMap<ItemTypeType>): void;
78
83
  isEmpty(): boolean;
79
84
  }