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