@rentman/rm-core 7.0.6 → 7.0.7

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 (110) hide show
  1. package/changelog.md +824 -820
  2. package/dist/rm-core.js +9932 -9910
  3. package/dist/rm-core.min.js +1 -1
  4. package/dist/types/classes/ApiFormatter.d.ts +65 -65
  5. package/dist/types/classes/ApiRequestService.d.ts +20 -20
  6. package/dist/types/classes/ApiResponseProcessor.d.ts +31 -31
  7. package/dist/types/classes/ChangesCompilation.d.ts +34 -34
  8. package/dist/types/classes/ChangesDelta.d.ts +61 -61
  9. package/dist/types/classes/ChangesDeltaBase.d.ts +51 -51
  10. package/dist/types/classes/ChangesProcessor.d.ts +47 -47
  11. package/dist/types/classes/CollectionEntryService.d.ts +26 -26
  12. package/dist/types/classes/CollectionMatcherBase.d.ts +21 -21
  13. package/dist/types/classes/CollectionMatcherCachedCollectionProcessor.d.ts +31 -31
  14. package/dist/types/classes/CollectionResourceService.d.ts +7 -7
  15. package/dist/types/classes/ColumnCache.d.ts +21 -21
  16. package/dist/types/classes/ColumnExpansion.d.ts +22 -22
  17. package/dist/types/classes/ColumnHandler.d.ts +21 -21
  18. package/dist/types/classes/ColumnInfo.d.ts +14 -14
  19. package/dist/types/classes/ColumnSet.d.ts +38 -38
  20. package/dist/types/classes/ColumnSubsetCache.d.ts +10 -10
  21. package/dist/types/classes/ColumnUtil.d.ts +99 -99
  22. package/dist/types/classes/ConversionMapService.d.ts +27 -27
  23. package/dist/types/classes/CreateRequest.d.ts +19 -19
  24. package/dist/types/classes/CreatedChangesDelta.d.ts +16 -16
  25. package/dist/types/classes/InternalChangesDelta.d.ts +39 -39
  26. package/dist/types/classes/ItemCache.d.ts +29 -29
  27. package/dist/types/classes/ItemCreateService.d.ts +24 -24
  28. package/dist/types/classes/ItemEntryService.d.ts +34 -34
  29. package/dist/types/classes/KeyService.d.ts +17 -17
  30. package/dist/types/classes/LockService.d.ts +32 -32
  31. package/dist/types/classes/ModuleChangesCompilation.d.ts +18 -18
  32. package/dist/types/classes/QueryColumnExtractor.d.ts +20 -20
  33. package/dist/types/classes/QueryContainsLocalIdParser.d.ts +17 -17
  34. package/dist/types/classes/QueryLinkedToParser.d.ts +16 -16
  35. package/dist/types/classes/QueryLocallyMatchableParser.d.ts +19 -19
  36. package/dist/types/classes/QueryMatcher.d.ts +18 -18
  37. package/dist/types/classes/QueryParser.d.ts +24 -24
  38. package/dist/types/classes/QueryParserBase.d.ts +29 -29
  39. package/dist/types/classes/QueryParserIdUpdater.d.ts +16 -16
  40. package/dist/types/classes/QueryService.d.ts +18 -18
  41. package/dist/types/classes/RequestBuffer.d.ts +28 -28
  42. package/dist/types/classes/RequestBufferManager.d.ts +25 -25
  43. package/dist/types/classes/RequestColumnExpansion.d.ts +15 -15
  44. package/dist/types/classes/SocketMessageHandler.d.ts +39 -39
  45. package/dist/types/classes/TemplateCache.d.ts +66 -66
  46. package/dist/types/classes/Util.d.ts +31 -31
  47. package/dist/types/classes/cache/AbstractCache.d.ts +103 -103
  48. package/dist/types/classes/cache/CachedQueryHandlerBase.d.ts +74 -74
  49. package/dist/types/classes/cache/CollectionMatcherCachedQueryProcessor.d.ts +35 -35
  50. package/dist/types/classes/cache/ItemHandlerBase.d.ts +105 -105
  51. package/dist/types/classes/cache/server/ServerCache.d.ts +82 -82
  52. package/dist/types/classes/cache/server/ServerCachedQueryHandler.d.ts +34 -34
  53. package/dist/types/classes/cache/server/ServerItemHandler.d.ts +52 -52
  54. package/dist/types/classes/cache/transaction/TransactionCache.d.ts +324 -324
  55. package/dist/types/classes/cache/transaction/TransactionCachedQueryHandler.d.ts +23 -23
  56. package/dist/types/classes/cache/transaction/TransactionCollectionHandler.d.ts +28 -28
  57. package/dist/types/classes/cache/transaction/TransactionEventHandler.d.ts +24 -24
  58. package/dist/types/classes/cache/transaction/TransactionItemHandler.d.ts +90 -90
  59. package/dist/types/classes/cache/transaction/TransactionValidator.d.ts +34 -34
  60. package/dist/types/classes/index.d.ts +46 -46
  61. package/dist/types/constants.d.ts +7 -7
  62. package/dist/types/core.d.ts +51 -51
  63. package/dist/types/factories/ApiResponseProcessorFactory.d.ts +6 -6
  64. package/dist/types/factories/ChangesCompilationFactory.d.ts +6 -6
  65. package/dist/types/factories/ChangesDeltaFactory.d.ts +13 -13
  66. package/dist/types/factories/ChangesProcessorFactory.d.ts +22 -22
  67. package/dist/types/factories/CollectionEntryFactory.d.ts +14 -14
  68. package/dist/types/factories/CollectionMatcherFactory.d.ts +19 -19
  69. package/dist/types/factories/CollectionResourceFactory.d.ts +22 -22
  70. package/dist/types/factories/ColumnExpansionFactory.d.ts +8 -8
  71. package/dist/types/factories/ColumnInfoFactory.d.ts +7 -7
  72. package/dist/types/factories/ColumnSetFactory.d.ts +19 -19
  73. package/dist/types/factories/ColumnSubsetCacheFactory.d.ts +7 -7
  74. package/dist/types/factories/CreateRequestFactory.d.ts +11 -11
  75. package/dist/types/factories/ItemCacheFactory.d.ts +8 -8
  76. package/dist/types/factories/ItemEntryFactory.d.ts +15 -15
  77. package/dist/types/factories/ItemResourceFactory.d.ts +14 -14
  78. package/dist/types/factories/ModuleChangesCompilationFactory.d.ts +5 -5
  79. package/dist/types/factories/QueryMatcherFactory.d.ts +7 -7
  80. package/dist/types/factories/QueryParserFactory.d.ts +6 -6
  81. package/dist/types/factories/RequestColumnExpansionFactory.d.ts +6 -6
  82. package/dist/types/factories/TemplateFactory.d.ts +10 -10
  83. package/dist/types/factories/TransactionCacheFactory.d.ts +15 -15
  84. package/dist/types/factories/index.d.ts +21 -21
  85. package/dist/types/index.d.ts +7 -7
  86. package/dist/types/interfaces/AbstractCacheDependencyInterface.d.ts +43 -43
  87. package/dist/types/interfaces/ApiRequestServiceInterface.d.ts +11 -11
  88. package/dist/types/interfaces/AuthInterface.d.ts +9 -9
  89. package/dist/types/interfaces/ErrorHandlerInterface.d.ts +5 -5
  90. package/dist/types/interfaces/ExceptionHandlerInterface.d.ts +3 -3
  91. package/dist/types/interfaces/LinkTreeServiceInterface.d.ts +4 -4
  92. package/dist/types/interfaces/PromiseLibraryInterface.d.ts +25 -25
  93. package/dist/types/interfaces/ServerCacheDependencyInterface.d.ts +7 -7
  94. package/dist/types/interfaces/SocketMessageInterface.d.ts +3 -3
  95. package/dist/types/interfaces/TransactionCollectionHandlerDependencyInterface.d.ts +20 -20
  96. package/dist/types/interfaces/TransactionItemHandlerDependencyInterface.d.ts +26 -26
  97. package/dist/types/interfaces/index.d.ts +11 -11
  98. package/dist/types/models/CollectionEntry.d.ts +23 -23
  99. package/dist/types/models/CollectionOptions.d.ts +18 -18
  100. package/dist/types/models/CollectionResource.d.ts +77 -72
  101. package/dist/types/models/ItemEntry.d.ts +19 -19
  102. package/dist/types/models/ItemEntryOptions.d.ts +8 -8
  103. package/dist/types/models/ItemResource.d.ts +84 -84
  104. package/dist/types/models/Template.d.ts +11 -11
  105. package/dist/types/models/index.d.ts +7 -7
  106. package/dist/types/types/ItemTypesCollection.d.ts +262 -262
  107. package/dist/types/types/PromiseInterface.d.ts +2 -2
  108. package/dist/types/types/index.d.ts +2 -2
  109. package/package.json +36 -36
  110. package/readme.md +15 -15
@@ -1,31 +1,31 @@
1
- import { QueryMatcherFactory } from '../factories';
2
- import { PromiseLibraryInterface } from '../interfaces';
3
- import { CollectionResource, ItemEntry } from '../models';
4
- import { CollectionQuery, ItemType, PromiseInterface } from '../types';
5
- import { ApiRequestService } from './ApiRequestService';
6
- import { AbstractCache } from './cache/AbstractCache';
7
- import { ChangesDeltaBase } from './ChangesDeltaBase';
8
- import { CollectionMatcherBase, CollectionMatcherMatches } from './CollectionMatcherBase';
9
- import { QueryService } from './QueryService';
10
- /**
11
- * @description
12
- * Processes all {@link CollectionResource CollectionResources} and adds/removes item entries that do/don't fit the query
13
- */
14
- export declare class CollectionMatcherCachedCollectionProcessor extends CollectionMatcherBase {
15
- private apiRequestService;
16
- private promiseService;
17
- private getCollections;
18
- protected map: {
19
- [itemTypeAndQueryString: string]: {
20
- itemType: ItemType;
21
- query: CollectionQuery;
22
- collectionResources: CollectionResource[];
23
- matches: CollectionMatcherMatches;
24
- };
25
- };
26
- constructor(apiRequestService: ApiRequestService, promiseService: PromiseLibraryInterface, queryService: QueryService, queryMatcherFactory: QueryMatcherFactory, transaction: AbstractCache, getCollections: (itemType: ItemType) => {
27
- [queryString: string]: CollectionResource[];
28
- });
29
- __removeFromAndAddToCollections(isCalledAfterSocketUpdate?: boolean, changesDelta?: ChangesDeltaBase): PromiseInterface<void[]>;
30
- protected _expand<ItemTypeType extends ItemType = string>(itemEntry: ItemEntry<ItemTypeType>, matchFunction: (itemType: ItemTypeType, parsedQuery: CollectionQuery) => boolean | 'maybe'): this;
31
- }
1
+ import { QueryMatcherFactory } from '../factories';
2
+ import { PromiseLibraryInterface } from '../interfaces';
3
+ import { CollectionResource, ItemEntry } from '../models';
4
+ import { CollectionQuery, ItemType, PromiseInterface } from '../types';
5
+ import { ApiRequestService } from './ApiRequestService';
6
+ import { AbstractCache } from './cache/AbstractCache';
7
+ import { ChangesDeltaBase } from './ChangesDeltaBase';
8
+ import { CollectionMatcherBase, CollectionMatcherMatches } from './CollectionMatcherBase';
9
+ import { QueryService } from './QueryService';
10
+ /**
11
+ * @description
12
+ * Processes all {@link CollectionResource CollectionResources} and adds/removes item entries that do/don't fit the query
13
+ */
14
+ export declare class CollectionMatcherCachedCollectionProcessor extends CollectionMatcherBase {
15
+ private apiRequestService;
16
+ private promiseService;
17
+ private getCollections;
18
+ protected map: {
19
+ [itemTypeAndQueryString: string]: {
20
+ itemType: ItemType;
21
+ query: CollectionQuery;
22
+ collectionResources: CollectionResource[];
23
+ matches: CollectionMatcherMatches;
24
+ };
25
+ };
26
+ constructor(apiRequestService: ApiRequestService, promiseService: PromiseLibraryInterface, queryService: QueryService, queryMatcherFactory: QueryMatcherFactory, transaction: AbstractCache, getCollections: (itemType: ItemType) => {
27
+ [queryString: string]: CollectionResource[];
28
+ });
29
+ __removeFromAndAddToCollections(isCalledAfterSocketUpdate?: boolean, changesDelta?: ChangesDeltaBase): PromiseInterface<void[]>;
30
+ protected _expand<ItemTypeType extends ItemType = string>(itemEntry: ItemEntry<ItemTypeType>, matchFunction: (itemType: ItemTypeType, parsedQuery: CollectionQuery) => boolean | 'maybe'): this;
31
+ }
@@ -1,7 +1,7 @@
1
- import { CollectionOptions, ItemResource } from '../models';
2
- import { CollectionOptionsInterface } from '../models/CollectionOptions';
3
- import { ItemId, ItemType } from '../types';
4
- export declare class CollectionResourceService {
5
- processOptions<ItemTypeType extends ItemType>(options: CollectionOptionsInterface<ItemTypeType>): CollectionOptions<ItemTypeType>;
6
- getIdArray(itemResources: ItemResource[]): ItemId[];
7
- }
1
+ import { CollectionOptions, ItemResource } from '../models';
2
+ import { CollectionOptionsInterface } from '../models/CollectionOptions';
3
+ import { ItemId, ItemType } from '../types';
4
+ export declare class CollectionResourceService {
5
+ processOptions<ItemTypeType extends ItemType>(options: CollectionOptionsInterface<ItemTypeType>): CollectionOptions<ItemTypeType>;
6
+ getIdArray(itemResources: ItemResource[]): ItemId[];
7
+ }
@@ -1,21 +1,21 @@
1
- import { ColumnUtil } from '../classes';
2
- import { ApiRequestColumns, ItemType, ResponseColumn, ResponseColumnItemTypeMap } from '../types';
3
- export declare class ColumnCache {
4
- private columnUtil;
5
- cache: ResponseColumnItemTypeMap;
6
- allColumns: {
7
- [itemType: string]: boolean;
8
- };
9
- constructor(columnUtil: ColumnUtil);
10
- setColumn(itemType: ItemType, responseColumn: ResponseColumn): ResponseColumn;
11
- setColumns(itemType: ItemType, requestColumns: ApiRequestColumns, responseColumns: ResponseColumnItemTypeMap): ResponseColumnItemTypeMap;
12
- retrieve(itemType: ItemType, requestColumns: ApiRequestColumns): {
13
- cached: ResponseColumnItemTypeMap;
14
- missing: ApiRequestColumns;
15
- };
16
- containsAll(itemType: ItemType): boolean;
17
- getColumns(itemType: ItemType): ResponseColumnItemTypeMap;
18
- private retrieveColumns;
19
- private retrieveColumn;
20
- private getColumn;
21
- }
1
+ import { ColumnUtil } from '../classes';
2
+ import { ApiRequestColumns, ItemType, ResponseColumn, ResponseColumnItemTypeMap } from '../types';
3
+ export declare class ColumnCache {
4
+ private columnUtil;
5
+ cache: ResponseColumnItemTypeMap;
6
+ allColumns: {
7
+ [itemType: string]: boolean;
8
+ };
9
+ constructor(columnUtil: ColumnUtil);
10
+ setColumn(itemType: ItemType, responseColumn: ResponseColumn): ResponseColumn;
11
+ setColumns(itemType: ItemType, requestColumns: ApiRequestColumns, responseColumns: ResponseColumnItemTypeMap): ResponseColumnItemTypeMap;
12
+ retrieve(itemType: ItemType, requestColumns: ApiRequestColumns): {
13
+ cached: ResponseColumnItemTypeMap;
14
+ missing: ApiRequestColumns;
15
+ };
16
+ containsAll(itemType: ItemType): boolean;
17
+ getColumns(itemType: ItemType): ResponseColumnItemTypeMap;
18
+ private retrieveColumns;
19
+ private retrieveColumn;
20
+ private getColumn;
21
+ }
@@ -1,22 +1,22 @@
1
- import { ColumnInfo, ColumnSet } from '../classes';
2
- import { ColumnInfoFactory } from '../factories';
3
- import { ApiRequestColumn, ApiRequestColumns, ColumnExpansionResult, ItemType, ResponseColumnItemTypeMap } from '../types';
4
- /**
5
- * @description
6
- * 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
- export declare class ColumnExpansion<ItemTypeType extends ItemType> {
9
- private columnInfoFactory;
10
- itemType: ItemTypeType;
11
- responseColumns: ResponseColumnItemTypeMap;
12
- expansionMap: {
13
- [columnSetId: string]: ColumnExpansionResult<ItemTypeType> | null;
14
- };
15
- expansionMapSize: number;
16
- requestColumnsTrue: boolean;
17
- requestColumns: ApiRequestColumn[];
18
- constructor(columnInfoFactory: ColumnInfoFactory, itemType: ItemTypeType, requestColumns: ApiRequestColumns, responseColumns: ResponseColumnItemTypeMap);
19
- run(columnSet: ColumnSet<ItemTypeType>): ColumnExpansionResult<ItemTypeType> | null;
20
- aggregateRootColumns(): Array<ColumnInfo<ItemTypeType>>;
21
- private expandRootColumnMap;
22
- }
1
+ import { ColumnInfo, ColumnSet } from '../classes';
2
+ import { ColumnInfoFactory } from '../factories';
3
+ import { ApiRequestColumn, ApiRequestColumns, ColumnExpansionResult, ItemType, ResponseColumnItemTypeMap } from '../types';
4
+ /**
5
+ * @description
6
+ * 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
+ export declare class ColumnExpansion<ItemTypeType extends ItemType> {
9
+ private columnInfoFactory;
10
+ itemType: ItemTypeType;
11
+ responseColumns: ResponseColumnItemTypeMap;
12
+ expansionMap: {
13
+ [columnSetId: string]: ColumnExpansionResult<ItemTypeType> | null;
14
+ };
15
+ expansionMapSize: number;
16
+ requestColumnsTrue: boolean;
17
+ requestColumns: ApiRequestColumn[];
18
+ constructor(columnInfoFactory: ColumnInfoFactory, itemType: ItemTypeType, requestColumns: ApiRequestColumns, responseColumns: ResponseColumnItemTypeMap);
19
+ run(columnSet: ColumnSet<ItemTypeType>): ColumnExpansionResult<ItemTypeType> | null;
20
+ aggregateRootColumns(): Array<ColumnInfo<ItemTypeType>>;
21
+ private expandRootColumnMap;
22
+ }
@@ -1,21 +1,21 @@
1
- import { ApiRequestService, ColumnCache, ColumnUtil } from '../classes';
2
- import { ErrorHandlerInterface, PromiseLibraryInterface } from '../interfaces';
3
- import { ApiRequestColumns, ItemType, PromiseInterface, ResponseColumn, ResponseColumnItemTypeMap } from '../types';
4
- export declare class ColumnHandler {
5
- private apiRequestService;
6
- private errorHandler;
7
- private promiseService;
8
- private cache;
9
- private columnUtil;
10
- constructor(apiRequestService: ApiRequestService, errorHandler: ErrorHandlerInterface, promiseService: PromiseLibraryInterface, cache: ColumnCache, columnUtil: ColumnUtil);
11
- setColumn(itemType: ItemType, responseColumn: ResponseColumn): ResponseColumn;
12
- setColumns(itemType: ItemType, requestColumns: ApiRequestColumns, responseColumns: ResponseColumnItemTypeMap): ResponseColumnItemTypeMap;
13
- fetchItemTypeTranslations(itemTypes: ItemType[]): PromiseInterface<{
14
- [itemType: string]: string;
15
- }>;
16
- request(itemType: ItemType, columns: ApiRequestColumns, params?: {
17
- filter: boolean;
18
- }): PromiseInterface<ResponseColumnItemTypeMap>;
19
- fetch(itemType: ItemType, requestColumns: ApiRequestColumns, params?: any): PromiseInterface<ResponseColumnItemTypeMap>;
20
- fetchAll(itemType: ItemType): PromiseInterface<ResponseColumnItemTypeMap>;
21
- }
1
+ import { ApiRequestService, ColumnCache, ColumnUtil } from '../classes';
2
+ import { ErrorHandlerInterface, PromiseLibraryInterface } from '../interfaces';
3
+ import { ApiRequestColumns, ItemType, PromiseInterface, ResponseColumn, ResponseColumnItemTypeMap } from '../types';
4
+ export declare class ColumnHandler {
5
+ private apiRequestService;
6
+ private errorHandler;
7
+ private promiseService;
8
+ private cache;
9
+ private columnUtil;
10
+ constructor(apiRequestService: ApiRequestService, errorHandler: ErrorHandlerInterface, promiseService: PromiseLibraryInterface, cache: ColumnCache, columnUtil: ColumnUtil);
11
+ setColumn(itemType: ItemType, responseColumn: ResponseColumn): ResponseColumn;
12
+ setColumns(itemType: ItemType, requestColumns: ApiRequestColumns, responseColumns: ResponseColumnItemTypeMap): ResponseColumnItemTypeMap;
13
+ fetchItemTypeTranslations(itemTypes: ItemType[]): PromiseInterface<{
14
+ [itemType: string]: string;
15
+ }>;
16
+ request(itemType: ItemType, columns: ApiRequestColumns, params?: {
17
+ filter: boolean;
18
+ }): PromiseInterface<ResponseColumnItemTypeMap>;
19
+ fetch(itemType: ItemType, requestColumns: ApiRequestColumns, params?: any): PromiseInterface<ResponseColumnItemTypeMap>;
20
+ fetchAll(itemType: ItemType): PromiseInterface<ResponseColumnItemTypeMap>;
21
+ }
@@ -1,14 +1,14 @@
1
- import { ItemType, ResponseColumn } from '../types';
2
- export declare class ColumnInfo<ItemTypeType extends ItemType = any> {
3
- readonly apiColumn: ResponseColumn;
4
- readonly parent: ColumnInfo<ItemType> | null;
5
- id: string;
6
- level: number;
7
- path: string;
8
- tailPath: string;
9
- itemType: ItemTypeType | null;
10
- children: Array<ColumnInfo<ItemTypeType>>;
11
- isLeaf: boolean;
12
- constructor(apiColumn: ResponseColumn, parent?: ColumnInfo<ItemType> | null);
13
- setChildren(itemType: ItemTypeType, children: Array<ColumnInfo<ItemTypeType>>): this;
14
- }
1
+ import { ItemType, ResponseColumn } from '../types';
2
+ export declare class ColumnInfo<ItemTypeType extends ItemType = any> {
3
+ readonly apiColumn: ResponseColumn;
4
+ readonly parent: ColumnInfo<ItemType> | null;
5
+ id: string;
6
+ level: number;
7
+ path: string;
8
+ tailPath: string;
9
+ itemType: ItemTypeType | null;
10
+ children: Array<ColumnInfo<ItemTypeType>>;
11
+ isLeaf: boolean;
12
+ constructor(apiColumn: ResponseColumn, parent?: ColumnInfo<ItemType> | null);
13
+ setChildren(itemType: ItemTypeType, children: Array<ColumnInfo<ItemTypeType>>): this;
14
+ }
@@ -1,38 +1,38 @@
1
- import { ColumnInfo, ColumnUtil, RequestColumnMergeResult } from '../classes';
2
- import { ColumnSetFactory } from '../factories';
3
- import { ApiRequestColumns, ColumnExpansionResult, ItemType, ResponseColumnItemTypeMap } from '../types';
4
- export declare class ColumnSet<ItemTypeType extends ItemType = any> {
5
- private columnUtil;
6
- private columnSetFactory;
7
- itemType: ItemTypeType;
8
- id: number;
9
- request: ApiRequestColumns;
10
- requestColumnsTrue: boolean;
11
- response: ResponseColumnItemTypeMap;
12
- link: ColumnInfo<ItemTypeType> | null;
13
- main: Array<ColumnInfo<ItemTypeType>>;
14
- derived: Array<ColumnInfo<ItemTypeType>>;
15
- root: Array<ColumnInfo<ItemTypeType>>;
16
- leaf: Array<ColumnInfo<ItemTypeType>>;
17
- formatted: {
18
- main: Array<ColumnInfo<ItemTypeType>>;
19
- derived: Array<ColumnInfo<ItemTypeType>>;
20
- };
21
- filtered: Array<ColumnInfo<ItemTypeType>>;
22
- custom: Array<ColumnInfo<ItemTypeType>>;
23
- searchable: Array<ColumnInfo<ItemTypeType>>;
24
- item: Array<ColumnInfo<ItemTypeType>>;
25
- notItem: Array<ColumnInfo<ItemTypeType>>;
26
- constructor(columnUtil: ColumnUtil, columnSetFactory: ColumnSetFactory, itemType: ItemTypeType);
27
- groupColumnInfo(columnInfo: ColumnInfo): void;
28
- toJSON(): {
29
- main: string[];
30
- derived: string[];
31
- };
32
- isSupersetOf(columnsToCompare: ApiRequestColumns): boolean;
33
- private getMergedColumnSet;
34
- mergeRequestColumns(requestColumns: ApiRequestColumns): RequestColumnMergeResult;
35
- mergeResponseColumns(responseColumns: ResponseColumnItemTypeMap): ResponseColumnItemTypeMap;
36
- merge(columnSet: ColumnSet<ItemTypeType>): ColumnSet<ItemTypeType>;
37
- expand(requestColumns: ApiRequestColumns, requestColumnsTrue: boolean, responseColumns: ResponseColumnItemTypeMap): ColumnExpansionResult<ItemTypeType>;
38
- }
1
+ import { ColumnInfo, ColumnUtil, RequestColumnMergeResult } from '../classes';
2
+ import { ColumnSetFactory } from '../factories';
3
+ import { ApiRequestColumns, ColumnExpansionResult, ItemType, ResponseColumnItemTypeMap } from '../types';
4
+ export declare class ColumnSet<ItemTypeType extends ItemType = any> {
5
+ private columnUtil;
6
+ private columnSetFactory;
7
+ itemType: ItemTypeType;
8
+ id: number;
9
+ request: ApiRequestColumns;
10
+ requestColumnsTrue: boolean;
11
+ response: ResponseColumnItemTypeMap;
12
+ link: ColumnInfo<ItemTypeType> | null;
13
+ main: Array<ColumnInfo<ItemTypeType>>;
14
+ derived: Array<ColumnInfo<ItemTypeType>>;
15
+ root: Array<ColumnInfo<ItemTypeType>>;
16
+ leaf: Array<ColumnInfo<ItemTypeType>>;
17
+ formatted: {
18
+ main: Array<ColumnInfo<ItemTypeType>>;
19
+ derived: Array<ColumnInfo<ItemTypeType>>;
20
+ };
21
+ filtered: Array<ColumnInfo<ItemTypeType>>;
22
+ custom: Array<ColumnInfo<ItemTypeType>>;
23
+ searchable: Array<ColumnInfo<ItemTypeType>>;
24
+ item: Array<ColumnInfo<ItemTypeType>>;
25
+ notItem: Array<ColumnInfo<ItemTypeType>>;
26
+ constructor(columnUtil: ColumnUtil, columnSetFactory: ColumnSetFactory, itemType: ItemTypeType);
27
+ groupColumnInfo(columnInfo: ColumnInfo): void;
28
+ toJSON(): {
29
+ main: string[];
30
+ derived: string[];
31
+ };
32
+ isSupersetOf(columnsToCompare: ApiRequestColumns): boolean;
33
+ private getMergedColumnSet;
34
+ mergeRequestColumns(requestColumns: ApiRequestColumns): RequestColumnMergeResult;
35
+ mergeResponseColumns(responseColumns: ResponseColumnItemTypeMap): ResponseColumnItemTypeMap;
36
+ merge(columnSet: ColumnSet<ItemTypeType>): ColumnSet<ItemTypeType>;
37
+ expand(requestColumns: ApiRequestColumns, requestColumnsTrue: boolean, responseColumns: ResponseColumnItemTypeMap): ColumnExpansionResult<ItemTypeType>;
38
+ }
@@ -1,10 +1,10 @@
1
- import { ColumnSet, ColumnUtil } from '../classes';
2
- import { ApiRequestColumns, ItemType } from '../types';
3
- export declare class ColumnSubsetCache<ItemTypeType extends ItemType> {
4
- private columnUtil;
5
- requestColumns: ApiRequestColumns;
6
- private cache;
7
- constructor(columnUtil: ColumnUtil, requestColumns: ApiRequestColumns);
8
- run(columnSet: ColumnSet<ItemTypeType>): boolean;
9
- runWithRequestColumns(cachedRequestColumns: ApiRequestColumns): boolean;
10
- }
1
+ import { ColumnSet, ColumnUtil } from '../classes';
2
+ import { ApiRequestColumns, ItemType } from '../types';
3
+ export declare class ColumnSubsetCache<ItemTypeType extends ItemType> {
4
+ private columnUtil;
5
+ requestColumns: ApiRequestColumns;
6
+ private cache;
7
+ constructor(columnUtil: ColumnUtil, requestColumns: ApiRequestColumns);
8
+ run(columnSet: ColumnSet<ItemTypeType>): boolean;
9
+ runWithRequestColumns(cachedRequestColumns: ApiRequestColumns): boolean;
10
+ }
@@ -1,99 +1,99 @@
1
- import { LinkTreeServiceInterface } from '../interfaces/LinkTreeServiceInterface';
2
- import { ApiRequestColumn, ApiRequestColumns, ItemType, ResponseColumn, ResponseColumnItemTypeMap, ResponseColumnMap } from '../types';
3
- export declare type RequestColumnMergeResult<T extends ApiRequestColumns = ApiRequestColumns, U extends ApiRequestColumns = ApiRequestColumns> = {
4
- merged: T;
5
- difference: U;
6
- };
7
- export declare class ColumnUtil {
8
- private linkTreeService;
9
- constructor(linkTreeService: LinkTreeServiceInterface);
10
- /**
11
- * @description
12
- * Checks the {@link ApiLinkTree LinkTree} and returns the link columnIds for the given ItemType
13
- *
14
- * @remark
15
- * - For {@link ApiLinkTreeType.DIRECT direct links} it will be a columnId
16
- * - For {@link ApiLinkTreeType.ITEMTABLE itemtable links} it will be 'itemtype' and 'item'
17
- */
18
- getColumnsFromLink(parentType: ItemType, itemType: ItemType): ApiRequestColumn[];
19
- getColumnPath(columns: ResponseColumn[], renderAs: null | string): string;
20
- getDateFormatOptions(columnType?: 'datetime'): {
21
- 'J-M-Y': string;
22
- 'J-M': string;
23
- 'j+F+Y': string;
24
- 'D+j+F+Y': string;
25
- 'F': string;
26
- 'f': string;
27
- 'D': string;
28
- 'd': string;
29
- };
30
- isStringColumn(column: ResponseColumn): boolean;
31
- isFloatColumn(column: ResponseColumn): boolean;
32
- isIntColumn(column: ResponseColumn): boolean;
33
- isNumberColumn(column: ResponseColumn): boolean;
34
- isCustomColumn(column: ResponseColumn): boolean;
35
- isItemColumn(column: ResponseColumn, includeId?: boolean): boolean;
36
- isDateColumn(column: ResponseColumn): boolean;
37
- isRenderedColumn(column: ResponseColumn): boolean;
38
- isFilteredColumn(column: ResponseColumn): boolean;
39
- isFormattedColumn(column: ResponseColumn): boolean;
40
- isSelectableColumn(column: ResponseColumn): boolean;
41
- hasLocationProperty(column: ResponseColumn, location: number): boolean;
42
- isEditableColumn(column: ResponseColumn): boolean;
43
- isSearchableColumn(column: ResponseColumn): boolean;
44
- getDefaultWeight(column: ResponseColumn): number;
45
- getComparators(column: ResponseColumn & {
46
- type: 'dimension' | 'weight' | 'price';
47
- }): ['=', '>', '<'];
48
- getComparators(column: ResponseColumn & {
49
- type: 'date' | 'datetime' | 'time' | 'duration';
50
- }): ['>', '<'];
51
- getComparators(column: ResponseColumn): ['=', '!='];
52
- containsColumn(requestColumn: ApiRequestColumn, destination: ApiRequestColumn[]): boolean;
53
- containsDerivedColumns(requestColumns: ApiRequestColumn[]): boolean;
54
- responseColumnsAvailable(itemType: ItemType, requestColumns: ApiRequestColumn[], responseColumnMap: ResponseColumnItemTypeMap): boolean;
55
- copyRequestColumns(columns: true): true;
56
- copyRequestColumns(columns: ApiRequestColumn[]): ApiRequestColumn[];
57
- copyRequestColumn(requestColumn: ApiRequestColumn): ApiRequestColumn;
58
- mergeRequestColumns(first: true, second: ApiRequestColumns): RequestColumnMergeResult<true, []>;
59
- mergeRequestColumns(first: ApiRequestColumn[], second: true): RequestColumnMergeResult<true, true>;
60
- mergeRequestColumns(first: ApiRequestColumn[], second: ApiRequestColumn[]): RequestColumnMergeResult<ApiRequestColumn[], ApiRequestColumn[]>;
61
- mergeRequestColumns(first: ApiRequestColumns, second: ApiRequestColumns): RequestColumnMergeResult;
62
- mergeRequestColumn(requestColumn: ApiRequestColumn, destination: ApiRequestColumn[]): string | {
63
- [columnId: string]: ApiRequestColumn[];
64
- } | null;
65
- getRequestColumnId(requestColumn: ApiRequestColumn): string;
66
- parseRequestColumn(requestColumn: ApiRequestColumn): {
67
- id: string;
68
- children: ApiRequestColumn[];
69
- };
70
- /**
71
- * @description
72
- * Merges two sets of {@link ResponseColumnItemTypeMap ResponseColumnItemTypeMaps}.
73
- *
74
- * @returns
75
- * - Merged: The merged set of columns
76
- * - Difference: Columns that are in second, but not in first
77
- */
78
- mergeResponseColumns(first: ResponseColumnItemTypeMap, second: ResponseColumnItemTypeMap): {
79
- merged: ResponseColumnItemTypeMap;
80
- difference: ResponseColumnItemTypeMap;
81
- };
82
- /**
83
- * @description
84
- * Merges two sets of {@link ResponseColumnMap response columns}.
85
- *
86
- * @returns
87
- * - Merged: The merged set of columns
88
- * - Difference: Columns that are in second, but not in first
89
- */
90
- mergeResponseColumnMap(first: ResponseColumnMap, second: ResponseColumnMap): {
91
- merged: ResponseColumnMap;
92
- difference: ResponseColumnMap;
93
- };
94
- isLocalColumnId(columnId: string): boolean;
95
- processConfigColumns(configColumns: string[]): ApiRequestColumn[];
96
- parseConfigColumn(configColumn: string): string[];
97
- processConfigColumn(parsedConfigColumn: string[], destination: ApiRequestColumn[]): void;
98
- findRequestColumn(columnId: string, requestColumns: ApiRequestColumn[]): number;
99
- }
1
+ import { LinkTreeServiceInterface } from '../interfaces/LinkTreeServiceInterface';
2
+ import { ApiRequestColumn, ApiRequestColumns, ItemType, ResponseColumn, ResponseColumnItemTypeMap, ResponseColumnMap } from '../types';
3
+ export declare type RequestColumnMergeResult<T extends ApiRequestColumns = ApiRequestColumns, U extends ApiRequestColumns = ApiRequestColumns> = {
4
+ merged: T;
5
+ difference: U;
6
+ };
7
+ export declare class ColumnUtil {
8
+ private linkTreeService;
9
+ constructor(linkTreeService: LinkTreeServiceInterface);
10
+ /**
11
+ * @description
12
+ * Checks the {@link ApiLinkTree LinkTree} and returns the link columnIds for the given ItemType
13
+ *
14
+ * @remark
15
+ * - For {@link ApiLinkTreeType.DIRECT direct links} it will be a columnId
16
+ * - For {@link ApiLinkTreeType.ITEMTABLE itemtable links} it will be 'itemtype' and 'item'
17
+ */
18
+ getColumnsFromLink(parentType: ItemType, itemType: ItemType): ApiRequestColumn[];
19
+ getColumnPath(columns: ResponseColumn[], renderAs: null | string): string;
20
+ getDateFormatOptions(columnType?: 'datetime'): {
21
+ 'J-M-Y': string;
22
+ 'J-M': string;
23
+ 'j+F+Y': string;
24
+ 'D+j+F+Y': string;
25
+ 'F': string;
26
+ 'f': string;
27
+ 'D': string;
28
+ 'd': string;
29
+ };
30
+ isStringColumn(column: ResponseColumn): boolean;
31
+ isFloatColumn(column: ResponseColumn): boolean;
32
+ isIntColumn(column: ResponseColumn): boolean;
33
+ isNumberColumn(column: ResponseColumn): boolean;
34
+ isCustomColumn(column: ResponseColumn): boolean;
35
+ isItemColumn(column: ResponseColumn, includeId?: boolean): boolean;
36
+ isDateColumn(column: ResponseColumn): boolean;
37
+ isRenderedColumn(column: ResponseColumn): boolean;
38
+ isFilteredColumn(column: ResponseColumn): boolean;
39
+ isFormattedColumn(column: ResponseColumn): boolean;
40
+ isSelectableColumn(column: ResponseColumn): boolean;
41
+ hasLocationProperty(column: ResponseColumn, location: number): boolean;
42
+ isEditableColumn(column: ResponseColumn): boolean;
43
+ isSearchableColumn(column: ResponseColumn): boolean;
44
+ getDefaultWeight(column: ResponseColumn): number;
45
+ getComparators(column: ResponseColumn & {
46
+ type: 'dimension' | 'weight' | 'price';
47
+ }): ['=', '>', '<'];
48
+ getComparators(column: ResponseColumn & {
49
+ type: 'date' | 'datetime' | 'time' | 'duration';
50
+ }): ['>', '<'];
51
+ getComparators(column: ResponseColumn): ['=', '!='];
52
+ containsColumn(requestColumn: ApiRequestColumn, destination: ApiRequestColumn[]): boolean;
53
+ containsDerivedColumns(requestColumns: ApiRequestColumn[]): boolean;
54
+ responseColumnsAvailable(itemType: ItemType, requestColumns: ApiRequestColumn[], responseColumnMap: ResponseColumnItemTypeMap): boolean;
55
+ copyRequestColumns(columns: true): true;
56
+ copyRequestColumns(columns: ApiRequestColumn[]): ApiRequestColumn[];
57
+ copyRequestColumn(requestColumn: ApiRequestColumn): ApiRequestColumn;
58
+ mergeRequestColumns(first: true, second: ApiRequestColumns): RequestColumnMergeResult<true, []>;
59
+ mergeRequestColumns(first: ApiRequestColumn[], second: true): RequestColumnMergeResult<true, true>;
60
+ mergeRequestColumns(first: ApiRequestColumn[], second: ApiRequestColumn[]): RequestColumnMergeResult<ApiRequestColumn[], ApiRequestColumn[]>;
61
+ mergeRequestColumns(first: ApiRequestColumns, second: ApiRequestColumns): RequestColumnMergeResult;
62
+ mergeRequestColumn(requestColumn: ApiRequestColumn, destination: ApiRequestColumn[]): string | {
63
+ [columnId: string]: ApiRequestColumn[];
64
+ } | null;
65
+ getRequestColumnId(requestColumn: ApiRequestColumn): string;
66
+ parseRequestColumn(requestColumn: ApiRequestColumn): {
67
+ id: string;
68
+ children: ApiRequestColumn[];
69
+ };
70
+ /**
71
+ * @description
72
+ * Merges two sets of {@link ResponseColumnItemTypeMap ResponseColumnItemTypeMaps}.
73
+ *
74
+ * @returns
75
+ * - Merged: The merged set of columns
76
+ * - Difference: Columns that are in second, but not in first
77
+ */
78
+ mergeResponseColumns(first: ResponseColumnItemTypeMap, second: ResponseColumnItemTypeMap): {
79
+ merged: ResponseColumnItemTypeMap;
80
+ difference: ResponseColumnItemTypeMap;
81
+ };
82
+ /**
83
+ * @description
84
+ * Merges two sets of {@link ResponseColumnMap response columns}.
85
+ *
86
+ * @returns
87
+ * - Merged: The merged set of columns
88
+ * - Difference: Columns that are in second, but not in first
89
+ */
90
+ mergeResponseColumnMap(first: ResponseColumnMap, second: ResponseColumnMap): {
91
+ merged: ResponseColumnMap;
92
+ difference: ResponseColumnMap;
93
+ };
94
+ isLocalColumnId(columnId: string): boolean;
95
+ processConfigColumns(configColumns: string[]): ApiRequestColumn[];
96
+ parseConfigColumn(configColumn: string): string[];
97
+ processConfigColumn(parsedConfigColumn: string[], destination: ApiRequestColumn[]): void;
98
+ findRequestColumn(columnId: string, requestColumns: ApiRequestColumn[]): number;
99
+ }
@@ -1,27 +1,27 @@
1
- import { ItemEntry } from '../models';
2
- import { ApiResponse, EntryParentNull, FieldMap, ItemId, ItemIdConversionMap, ItemType } from '../types';
3
- import { ColumnInfo } from './ColumnInfo';
4
- import { KeyService } from './KeyService';
5
- /**
6
- * @description A 'ConversionMap' is used to update a set of item IDs to another. This happens when processing back-end
7
- * responses (create / template) or cloning items in the front-end. A conversion map is grouped by item type, as item
8
- * ID's are not unique across types.
9
- *
10
- * TODO: In the future, we should create a class and a 'ConversionMapFactory'.
11
- */
12
- export declare class ConversionMapService {
13
- private keyService;
14
- constructor(keyService: KeyService);
15
- createLocalConversionMap(itemType: ItemType, itemId: ItemId, doExtend: boolean | undefined, apiResponse: ApiResponse): ItemIdConversionMap;
16
- expandLocalConversionMap(parentType: ItemType, parentId: ItemId, apiResponse: ApiResponse, conversionMap: ItemIdConversionMap): void;
17
- expandConversionMap(itemEntry: ItemEntry, conversionMap: ItemIdConversionMap, newItemId?: ItemId): ItemId;
18
- batchExpandConversionMap(itemEntries: Array<ItemEntry<any>>, conversionMap: ItemIdConversionMap): ItemIdConversionMap;
19
- getConversionValue(itemType: ItemType, itemId: ItemId, map: ItemIdConversionMap): ItemId | undefined;
20
- /**
21
- * @description
22
- * Updates the columns in `fields` using the `parent` and `conversionMap`.
23
- * @param parent - When retrieving an item the 'link' column is not present in the template response, and is
24
- * added at a later stage. The value for this column can be read from this parameter.
25
- */
26
- updateItemValues<ItemTypeType extends ItemType>(source: FieldMap<ItemTypeType>, destination: FieldMap<ItemTypeType>, itemColumns: Array<ColumnInfo<ItemTypeType>>, conversionMap: ItemIdConversionMap, parent?: EntryParentNull): void;
27
- }
1
+ import { ItemEntry } from '../models';
2
+ import { ApiResponse, EntryParentNull, FieldMap, ItemId, ItemIdConversionMap, ItemType } from '../types';
3
+ import { ColumnInfo } from './ColumnInfo';
4
+ import { KeyService } from './KeyService';
5
+ /**
6
+ * @description A 'ConversionMap' is used to update a set of item IDs to another. This happens when processing back-end
7
+ * responses (create / template) or cloning items in the front-end. A conversion map is grouped by item type, as item
8
+ * ID's are not unique across types.
9
+ *
10
+ * TODO: In the future, we should create a class and a 'ConversionMapFactory'.
11
+ */
12
+ export declare class ConversionMapService {
13
+ private keyService;
14
+ constructor(keyService: KeyService);
15
+ createLocalConversionMap(itemType: ItemType, itemId: ItemId, doExtend: boolean | undefined, apiResponse: ApiResponse): ItemIdConversionMap;
16
+ expandLocalConversionMap(parentType: ItemType, parentId: ItemId, apiResponse: ApiResponse, conversionMap: ItemIdConversionMap): void;
17
+ expandConversionMap(itemEntry: ItemEntry, conversionMap: ItemIdConversionMap, newItemId?: ItemId): ItemId;
18
+ batchExpandConversionMap(itemEntries: Array<ItemEntry<any>>, conversionMap: ItemIdConversionMap): ItemIdConversionMap;
19
+ getConversionValue(itemType: ItemType, itemId: ItemId, map: ItemIdConversionMap): ItemId | undefined;
20
+ /**
21
+ * @description
22
+ * Updates the columns in `fields` using the `parent` and `conversionMap`.
23
+ * @param parent - When retrieving an item the 'link' column is not present in the template response, and is
24
+ * added at a later stage. The value for this column can be read from this parameter.
25
+ */
26
+ updateItemValues<ItemTypeType extends ItemType>(source: FieldMap<ItemTypeType>, destination: FieldMap<ItemTypeType>, itemColumns: Array<ColumnInfo<ItemTypeType>>, conversionMap: ItemIdConversionMap, parent?: EntryParentNull): void;
27
+ }