@rentman/rm-core 59.5.0-RM4-44763 → 59.5.0-getLinkCollections

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.
@@ -9,6 +9,9 @@ export declare class ApiRequestService {
9
9
  delete<ItemTypeType extends ApiItemType>(itemType: ApiItemType, itemIds: ItemId[], uniqueTransactionId?: string): Promise<ApiResponseProcessor<ItemTypeType>>;
10
10
  updateItems<ItemTypeType extends ApiItemType>(itemType: ItemTypeType, items: ApiRequestItemMap, columns: ApiRequestColumnMap, uniqueTransactionId?: string): Promise<ApiResponseProcessor<ItemTypeType>>;
11
11
  requestSkeleton<ItemTypeType extends ApiItemType = ApiItemType>(params: any, requestCanceler?: Promise<any>): Promise<ApiResponseProcessor<ItemTypeType>>;
12
+ moveItems<ItemTypeType extends ApiItemType>(parentType: ItemTypeType, parentId: ItemId, items: {
13
+ [itemType: string]: ItemId[];
14
+ }, uniqueTransactionId?: string): Promise<ApiResponseProcessor<ItemTypeType>>;
12
15
  columns<ItemTypeType extends ApiItemType>(itemType: ItemTypeType, columns: {
13
16
  [itemType: string]: ApiRequestColumns | true;
14
17
  }, params?: any): Promise<ApiResponseProcessor<ItemTypeType>>;
@@ -52,7 +52,7 @@ export declare abstract class AantaltotaalBusinessLogicRuleBase<ItemTypeType ext
52
52
  Inhuurmateriaal: typeof subhireEquipmentColumns;
53
53
  }[ItemTypeType];
54
54
  condition(context: BusinessLogicRuleConditionContext): Promise<LatestEquipmentItem<ItemTypeType>[] | typeof BLR_SKIP_RULE>;
55
- dependency(_transaction: TransactionCache, affectedEquipmentItems: LatestEquipmentItem<ItemTypeType>[], context: BusinessLogicRuleContextBase): Promise<Dependency<ItemTypeType>>;
55
+ dependency(transaction: TransactionCache, affectedEquipmentItems: LatestEquipmentItem<ItemTypeType>[], context: BusinessLogicRuleContextBase): Promise<Dependency<ItemTypeType>>;
56
56
  apply(context: BusinessLogicRuleApplyContext, dependency: Dependency<ItemTypeType>): void;
57
57
  private fetchEquipmentIsPhysicalMap;
58
58
  private updatePlannedEquipmentItem;
@@ -10,16 +10,23 @@ export type DeleteCompilation = {
10
10
  [itemType: string]: ItemEntry[];
11
11
  };
12
12
  export type UpdateCompilation = ItemEntryMap;
13
+ export type MoveCompilation = {
14
+ [parentType: string]: {
15
+ [parentId: number]: ItemEntry[];
16
+ };
17
+ };
13
18
  export declare class ChangesCompilation {
14
19
  private transaction;
15
20
  compilation: {
16
21
  create: CreateCompilation;
17
22
  delete: DeleteCompilation;
18
23
  update: UpdateCompilation;
24
+ move: MoveCompilation;
19
25
  };
20
26
  constructor(transaction: TransactionCache);
21
27
  private processDelta;
22
28
  private getDefaultParent;
29
+ private addMoveEntry;
23
30
  private addDeleteEntry;
24
31
  private addUpdateEntry;
25
32
  private addCreateEntry;
@@ -1,5 +1,5 @@
1
1
  import { ApiFields, ApiItemType, ItemId } from '@rentman/backend-types';
2
- import { ChangesDeltaBase, ChangesDeltaBaseItemDeleteDelta, ChangesDeltaBaseItemUpdateDelta, ChangesDeltaItemCreateDelta, ChangesDeltaItemUpdateMode, ColumnExpansion, ColumnSet, CreatedChangesDelta, EntryParentNull, ErrorHandlerInterface, FieldMap, ItemCreateService, ItemEntry, ItemEntryChangesTuple, ItemEntryService, RequestParameters } from '../internal';
2
+ import { ChangesDeltaBase, ChangesDeltaBaseItemDeleteDelta, ChangesDeltaBaseItemUpdateDelta, ChangesDeltaItemCreateDelta, ChangesDeltaItemUpdateMode, ColumnExpansion, ColumnSet, CreatedChangesDelta, EntryParent, EntryParentNull, ErrorHandlerInterface, FieldMap, ItemCreateService, ItemEntry, ItemEntryChangesTuple, ItemEntryService, RequestParameters } from '../internal';
3
3
  export interface ChangesDeltaItemDeleteDelta<ItemTypeType extends ApiItemType> extends ChangesDeltaBaseItemDeleteDelta<ItemTypeType> {
4
4
  isCascaded: boolean;
5
5
  }
@@ -74,7 +74,12 @@ export declare class ChangesDelta extends ChangesDeltaBase<ChangesDeltaItemDelet
74
74
  *
75
75
  * @internal
76
76
  */
77
- _setItemCreated<ItemTypeType extends ApiItemType, Fields extends Partial<FieldMap<ItemTypeType>>>(itemId: ItemId, fields: Fields, columns: ColumnSet<ItemTypeType>, parent?: EntryParentNull, isRoot?: boolean, isApiResponse?: boolean): this;
77
+ _setItemCreated<ItemTypeType extends ApiItemType, Fields extends Partial<FieldMap<ItemTypeType>>>(itemId: ItemId, fields: Fields, columns: ColumnSet<ItemTypeType>, parent?: EntryParentNull, isApiResponse?: boolean): this;
78
+ /**
79
+ * @description
80
+ * Convenience function to assign the proper parent fields, will call {@link ChangesDeltaBase.setItemUpdated setItemUpdated} internally
81
+ */
82
+ setItemMoved<ItemTypeType extends ApiItemType>(entry: ItemEntry<ItemTypeType>, to: EntryParent): this;
78
83
  setItemRestored<ItemTypeType extends ApiItemType>(itemEntry: ItemEntry<ItemTypeType>, transactionItemEntryChanges: FieldMap<ItemTypeType>): void;
79
84
  isEmpty(): boolean;
80
85
  toJSON(): any;
@@ -1,4 +1,4 @@
1
- import { ApiRequestService, ChangesCompilationFactory, ChangesDeltaFactory, ErrorHandlerInterface, ItemIdConversionMap, RequestBufferManager, RequestColumnExpansionFactory, TransactionCache } from '../internal';
1
+ import { ApiRequestService, ChangesCompilationFactory, ChangesDeltaFactory, ErrorHandlerInterface, ItemEntryService, ItemIdConversionMap, RequestBufferManager, RequestColumnExpansionFactory, TransactionCache } from '../internal';
2
2
  export type OnAfterCreateCallback = (conversionMap: ItemIdConversionMap) => void;
3
3
  /**
4
4
  * @description
@@ -9,6 +9,7 @@ export declare class ChangesProcessor {
9
9
  private changesCompilationFactory;
10
10
  private changesDeltaFactory;
11
11
  private errorHandler;
12
+ private itemEntryService;
12
13
  private requestBufferManager;
13
14
  private requestColumnExpansionFactory;
14
15
  private transaction;
@@ -16,15 +17,17 @@ export declare class ChangesProcessor {
16
17
  private onAfterCreateCallback?;
17
18
  private itemIdConversionMap;
18
19
  private serverCache;
19
- constructor(apiRequestService: ApiRequestService, changesCompilationFactory: ChangesCompilationFactory, changesDeltaFactory: ChangesDeltaFactory, errorHandler: ErrorHandlerInterface, requestBufferManager: RequestBufferManager, requestColumnExpansionFactory: RequestColumnExpansionFactory, transaction: TransactionCache, breakUpByParent?: boolean | undefined, onAfterCreateCallback?: OnAfterCreateCallback | undefined);
20
+ constructor(apiRequestService: ApiRequestService, changesCompilationFactory: ChangesCompilationFactory, changesDeltaFactory: ChangesDeltaFactory, errorHandler: ErrorHandlerInterface, itemEntryService: ItemEntryService, requestBufferManager: RequestBufferManager, requestColumnExpansionFactory: RequestColumnExpansionFactory, transaction: TransactionCache, breakUpByParent?: boolean | undefined, onAfterCreateCallback?: OnAfterCreateCallback | undefined);
20
21
  /**
21
22
  * @description
22
23
  * Executes the requests in the order of:
23
24
  * 1. create
24
- * 2. update
25
+ * 2. move
25
26
  * 3. delete
27
+ * 4. update
26
28
  */
27
29
  execute(): Promise<ItemIdConversionMap>;
30
+ private buildMoveRequest;
28
31
  private getMapValue;
29
32
  private executeCreateRequests;
30
33
  private executeCreateRequest;
@@ -32,4 +35,5 @@ export declare class ChangesProcessor {
32
35
  private executeUpdateRequest;
33
36
  private executeDeleteRequests;
34
37
  private executeDeleteRequest;
38
+ private executeMoveRequests;
35
39
  }
@@ -1,5 +1,5 @@
1
1
  import { ApiItemType } from '@rentman/backend-types';
2
- import { ChangesDeltaBase, ChangesDeltaBaseItemDeleteDelta, ChangesDeltaBaseItemUpdateDelta, ChangesDeltaItemUpdateMode, FieldMap, ItemEntry, ItemEntryService } from '../internal';
2
+ import { ChangesDeltaBase, ChangesDeltaBaseItemDeleteDelta, ChangesDeltaBaseItemUpdateDelta, ChangesDeltaItemUpdateMode, EntryParent, FieldMap, ItemEntry, ItemEntryService } from '../internal';
3
3
  export type ChildChangesDeltaItemCreateDelta<ItemTypeType extends ApiItemType = any> = {
4
4
  entry: ItemEntry<ItemTypeType>;
5
5
  fields: FieldMap<ItemTypeType>;
@@ -29,10 +29,21 @@ export declare class ChildChangesDelta extends ChangesDeltaBase<ChildChangesDelt
29
29
  created: {
30
30
  [itemEntryId: string]: ChildChangesDeltaItemCreateDelta;
31
31
  };
32
+ moved: {
33
+ [itemEntryId: number]: {
34
+ entry: ItemEntry;
35
+ to: EntryParent;
36
+ };
37
+ };
32
38
  constructor(itemEntryService: ItemEntryService);
33
39
  setItemUpdated<ItemTypeType extends ApiItemType>(entry: ItemEntry<ItemTypeType>, fields: Readonly<Partial<FieldMap<ItemTypeType>>>, mode?: ChangesDeltaItemUpdateMode): this;
34
40
  setItemDeleted(tuple: ChildChangesDeltaItemDeleteDelta<any>): this;
35
41
  setItemsDeleted(deleted: ChildChangesDeltaItemDeleteDelta<any>[]): this;
36
42
  setItemCreated<ItemTypeType extends ApiItemType>(itemEntry: ItemEntry<ItemTypeType>, fields: Partial<FieldMap<ItemTypeType>>): void;
43
+ /**
44
+ * @remark
45
+ * Parent fields are non-writable so we need to keep track of moved entries another way (to do a linkTo request)
46
+ */
47
+ setItemMoved(entry: ItemEntry, to: EntryParent): void;
37
48
  isEmpty(): boolean;
38
49
  }
@@ -6,12 +6,11 @@ export type ChangesDeltaItemCreateDelta<ItemTypeType extends ApiItemType = any>
6
6
  itemId: ItemId;
7
7
  fields: FieldMap<ItemTypeType>;
8
8
  columns: ColumnSet<ItemTypeType>;
9
- isRoot: boolean;
10
9
  };
11
10
  export declare class CreatedChangesDelta {
12
11
  private tuples;
13
12
  remove(itemType: ApiItemType, itemId: ItemId): boolean;
14
- add<ItemTypeType extends ApiItemType>(itemId: ItemId, fields: Partial<FieldMap<ItemTypeType>>, columns: ColumnSet<ItemTypeType>, isRoot?: boolean): void;
13
+ add<ItemTypeType extends ApiItemType>(itemId: ItemId, fields: Partial<FieldMap<ItemTypeType>>, columns: ColumnSet<ItemTypeType>): void;
15
14
  isEmpty(): boolean;
16
15
  getTuplesIterator<ItemTypeType extends ApiItemType>(itemType: ItemTypeType): IterableIterator<ChangesDeltaItemCreateDelta<ItemTypeType>>;
17
16
  forEach(callback: (tuple: ChangesDeltaItemCreateDelta, itemType: ApiItemType) => void): void;
@@ -9,6 +9,6 @@ export declare class ItemCreateService {
9
9
  * Fetches a new {@link Template template} and sets the items created on the passed {@link ChangesDelta}
10
10
  */
11
11
  createItemsFromValues<ItemTypeType extends ApiItemType, ColumnIds extends (keyof ApiFields[ItemTypeType])[] = (keyof ApiFields[ItemTypeType])[]>(changesDelta: ChangesDelta, itemType: ItemTypeType, valuesArray: Partial<FieldMap<ItemTypeType, ColumnIds>>[], parent?: EntryParentNull, templateOptions?: Partial<RequestParameters<ItemTypeType>>): Promise<void[]>;
12
- processTemplate<ItemTypeType extends ApiItemType>(changesDelta: ChangesDelta, itemType: ItemTypeType, itemId: ItemId, parent: EntryParentNull, template: Template<ItemTypeType>, filterItemEntryCallback?: FilterItemEntryCallback, modifyFieldsCallback?: ModifyFieldsCallback, isRoot?: boolean): void;
12
+ processTemplate<ItemTypeType extends ApiItemType>(changesDelta: ChangesDelta, itemType: ItemTypeType, itemId: ItemId, parent: EntryParentNull, template: Template<ItemTypeType>, filterItemEntryCallback?: FilterItemEntryCallback, modifyFieldsCallback?: ModifyFieldsCallback): void;
13
13
  processTemplateLinkItems<ParentItemType extends ApiItemType>(changesDelta: ChangesDelta, parentType: ParentItemType, localParentId: ItemId, template: Template<any>, itemIdConversion: ItemIdConversionMap, filterItemEntryCallback?: FilterItemEntryCallback, modifyFieldsCallback?: ModifyFieldsCallback): void;
14
14
  }
@@ -1,6 +1,6 @@
1
1
  import { WritableSignal } from '@angular/core';
2
2
  import { ApiItemType, ItemId } from '@rentman/backend-types';
3
- import { AbstractCache, AbstractCacheDependencyInterface, ApiQuery, ApiRequestColumnArray, ApiRequestColumns, CachedQueryItem, ChangesDelta, ChangesDeltaResult, ChildChangesDelta, ChildCollectionResources, CollectionOptions, CollectionQuery, CollectionResource, ConversionMap, CreateRequestParameterMap, DeregFunction, FieldMap, ItemAggregatedChangesListener, ItemChangesListener, ItemEntry, ItemIdConversionMap, ItemOptions, ItemResource, ItemResourcesItemTypeMap, ItemsByQueryOptions, ItemTypeMap, LimitedCollectionResource, ModuleChangesCompilationResult, NewItemOptions, OnAfterCreateCallback, ParentChangesDelta, ParentIdMap, RmCore, RootCollectionOptions, ServerCache, TransactionCacheCallbackCondition, TransactionCacheCallbackType, TransactionCachedQueryHandler, TransactionEventHandler, TransactionItemHandler, TransactionOptions, TransactionValidator, TransactionValidatorFactory } from '../../../internal';
3
+ import { AbstractCache, AbstractCacheDependencyInterface, ApiQuery, ApiRequestColumnArray, ApiRequestColumns, CachedQueryItem, ChangesDelta, ChangesDeltaResult, ChildChangesDelta, ChildCollectionResources, CollectionQuery, CollectionResource, ConversionMap, CreateRequestParameterMap, DeregFunction, FieldMap, ItemAggregatedChangesListener, ItemChangesListener, ItemEntry, ItemIdConversionMap, ItemOptions, ItemResource, ItemResourcesItemTypeMap, ItemsByQueryOptions, ItemTypeMap, LimitedCollectionResource, ModuleChangesCompilationResult, NewItemOptions, OnAfterCreateCallback, ParentChangesDelta, ParentIdMap, RmCore, RootCollectionOptions, ServerCache, TransactionCacheCallbackCondition, TransactionCacheCallbackType, TransactionCachedQueryHandler, TransactionEventHandler, TransactionItemHandler, TransactionOptions, TransactionValidator, TransactionValidatorFactory } from '../../../internal';
4
4
  import { TransactionValidatorWithDependencies } from './TransactionValidatorWithDependencies';
5
5
  type ItemResourceLinks<ItemTypeType extends ApiItemType, ColumnIds extends ApiRequestColumnArray<ItemTypeType>, Children extends ChildCollectionResources | undefined> = {
6
6
  main: ItemResource<ItemTypeType, ColumnIds, Children>;
@@ -72,6 +72,10 @@ export declare class TransactionCache extends AbstractCache {
72
72
  firstError: import("@angular/core").Signal<GlobalTransactionError | undefined>;
73
73
  firstErrorString: import("@angular/core").Signal<string | undefined>;
74
74
  rootItemSignal: WritableSignal<ItemEntry<any> | undefined>;
75
+ rootItemToBeSet?: {
76
+ itemType: ApiItemType;
77
+ itemId: ItemId;
78
+ };
75
79
  /**
76
80
  * @description
77
81
  * Stores additional request parameters for when the transaction is stored to the server
@@ -253,7 +257,7 @@ export declare class TransactionCache extends AbstractCache {
253
257
  /**
254
258
  * @deprecated Use the `children` collection option instead.
255
259
  */
256
- getLinkCollections<const ItemTypeType extends ApiItemType, const OptionsType extends CollectionOptions<ItemTypeType>>(linkType: ApiItemType, linkIdArray: ItemId[], itemType: ItemTypeType, options: OptionsType): Promise<ParentIdMap<OptionsToCollectionResource<ItemTypeType, OptionsType>>>;
260
+ getLinkCollections<const ItemTypeType extends ApiItemType, const OptionsType extends RootCollectionOptions<ItemTypeType>>(linkType: ApiItemType, linkIdArray: ItemId[], itemType: ItemTypeType, options: OptionsType): Promise<ParentIdMap<OptionsToCollectionResource<ItemTypeType, OptionsType>>>;
257
261
  getCollection<const ItemTypeType extends ApiItemType, const OptionsType extends RootCollectionOptions<ItemTypeType>>(itemType: ItemTypeType, options: OptionsType): Promise<OptionsToCollectionResource<ItemTypeType, OptionsType>>;
258
262
  getNewResourceWithId<const ItemTypeType extends ApiItemType, const OptionsType extends NewItemOptions<ItemTypeType>>(itemType: ItemTypeType, itemId: ItemId, options: OptionsType, returnLinks: true, isRoot?: boolean): Promise<ItemResourceLinks<ItemTypeType, OptionsType['columns'], OptionsToChildCollections<OptionsType>>>;
259
263
  getNewResourceWithId<const ItemTypeType extends ApiItemType, const OptionsType extends NewItemOptions<ItemTypeType>>(itemType: ItemTypeType, itemId: ItemId, options: OptionsType, returnLinks?: boolean, isRoot?: boolean): Promise<ItemResource<ItemTypeType, OptionsType['columns'], OptionsToChildCollections<OptionsType>>>;
@@ -81,7 +81,7 @@ export declare class TransactionItemHandler extends ItemHandlerBase {
81
81
  * @description
82
82
  * Fetches a template and creates a new {@link ItemEntry ItemEntry}, will error if the ItemEntry with the given ItemId already exists
83
83
  */
84
- fetchNewItemEntry<ItemTypeType extends ApiItemType>(itemType: ItemTypeType, itemId: ItemId, options: NewItemOptions<ItemTypeType>, isRoot?: boolean): Promise<ChangesDeltaResult>;
84
+ fetchNewItemEntry<ItemTypeType extends ApiItemType>(itemType: ItemTypeType, itemId: ItemId, options: NewItemOptions<ItemTypeType>): Promise<ChangesDeltaResult>;
85
85
  fetchItemEntryData<ItemTypeType extends ApiItemType>(itemType: ItemTypeType, itemIds: Iterable<ItemId>, columnsOperationsCache: RequestColumnsOperationsCache<ItemTypeType>, refreshAggregateColumns: boolean, forceRequest?: boolean): Promise<ItemEntry<ItemTypeType>[]>;
86
86
  fetchTitle<ItemTypeType extends ApiItemType>(itemType: ItemTypeType, itemId: ItemId): Promise<string>;
87
87
  /**
@@ -1,11 +1,12 @@
1
1
  import { ApiItemType, ItemId } from '@rentman/backend-types';
2
- import { ApiRequestColumnMap, ApiRequestColumns, ApiRequestItemMap, ApiRequestLimit } from '../internal';
2
+ import { ApiRequestColumnMap, ApiRequestColumns, ApiRequestItemMap, ApiRequestLimit, ApiRequestMoveItems } from '../internal';
3
3
  export interface ApiRequestServiceInterface {
4
4
  template(itemType: ApiItemType, params: any): Promise<any>;
5
5
  create(itemType: ApiItemType, itemId: ItemId, values: any, columns: ApiRequestColumnMap, parentType?: ApiItemType, parentId?: ItemId, uniqueTransactionId?: string): Promise<any>;
6
6
  delete(itemType: ApiItemType, itemIds: ItemId[], uniqueTransactionId?: string): Promise<any>;
7
7
  updateItems(itemType: ApiItemType, items: ApiRequestItemMap, columns: ApiRequestColumnMap, uniqueTransactionId?: string): Promise<any>;
8
8
  requestSkeleton(params: any, requestCanceler?: Promise<any>): Promise<any>;
9
+ moveItems(parentType: ApiItemType, parentId: ItemId, items: ApiRequestMoveItems, uniqueTransactionId?: string): Promise<any>;
9
10
  columns(itemType: ApiItemType, columns: {
10
11
  [itemType: string]: ApiRequestColumns | true;
11
12
  }, params?: any): Promise<any>;
@@ -261,6 +261,9 @@ export type ApiRequestColumnMap = {
261
261
  export type ApiRequestColumnArrayMap = {
262
262
  [itemType in ApiItemType]?: ApiRequestColumnArray;
263
263
  };
264
+ export type ApiRequestMoveItems = {
265
+ [itemType: string]: ItemId[];
266
+ };
264
267
  export type ApiRequestLimit<ItemTypeType extends ApiItemType = any> = {
265
268
  field: ItemTypeColumnId<ItemTypeType>;
266
269
  order?: 'desc' | 'asc';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rentman/rm-core",
3
- "version": "59.5.0-RM4-44763",
3
+ "version": "59.5.0-getLinkCollections",
4
4
  "description": "Rentman core functionalities",
5
5
  "main": "./dist/rm-core.js",
6
6
  "types": "./dist/types/src/index.d.ts",