@singularsystems/neo-core 1.0.0-alpha.3 → 1.0.0-alpha.4
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 +15 -0
- package/dist/ApiClient/ApiClientBase.d.ts +5 -5
- package/dist/ApiClient/ApiClientBase.js +13 -13
- package/dist/ApiClient/ReadApiClient.d.ts +16 -16
- package/dist/ApiClient/ReadApiClient.js +24 -24
- package/dist/ApiClient/UpdateableApiClient.d.ts +28 -28
- package/dist/ApiClient/UpdateableApiClient.js +33 -33
- package/dist/AppServices/AppService.d.ts +46 -46
- package/dist/AppServices/AppService.js +25 -25
- package/dist/AppServices/Config/ConfigModel.d.ts +21 -20
- package/dist/AppServices/Config/ConfigModel.js +28 -17
- package/dist/AppServices/Config/ConfigService.d.ts +15 -15
- package/dist/AppServices/Config/ConfigService.js +49 -53
- package/dist/AppServices/Module.d.ts +11 -11
- package/dist/AppServices/Module.js +13 -13
- package/dist/AppServices/NeoContainer.d.ts +22 -22
- package/dist/AppServices/NeoContainer.js +42 -42
- package/dist/AppServices/NeoModule.d.ts +3 -3
- package/dist/AppServices/NeoModule.js +30 -30
- package/dist/AppServices/NeoTypes.d.ts +61 -61
- package/dist/AppServices/NeoTypes.js +42 -42
- package/dist/AppServices/ServiceIdentifier.d.ts +23 -23
- package/dist/AppServices/ServiceIdentifier.js +38 -39
- package/dist/AppServices/index.d.ts +7 -7
- package/dist/AppServices/index.js +7 -7
- package/dist/Components/AnimationHelper.d.ts +69 -69
- package/dist/Components/AnimationHelper.js +182 -182
- package/dist/Components/BootstrapHelpers.d.ts +8 -8
- package/dist/Components/BootstrapHelpers.js +30 -30
- package/dist/Components/BootstrapTypes.d.ts +35 -35
- package/dist/Components/BootstrapTypes.js +1 -1
- package/dist/Components/ButtonOptions.d.ts +63 -61
- package/dist/Components/ButtonOptions.js +1 -1
- package/dist/Components/ContextMenu/ContextMenu.d.ts +16 -16
- package/dist/Components/ContextMenu/ContextMenu.js +1 -1
- package/dist/Components/ContextMenu/MenuUtils.d.ts +16 -16
- package/dist/Components/ContextMenu/MenuUtils.js +34 -34
- package/dist/Components/DatePicker/DatePicker.d.ts +70 -69
- package/dist/Components/DatePicker/DatePicker.js +502 -487
- package/dist/Components/DatePicker/DatePickerOptions.d.ts +43 -34
- package/dist/Components/DatePicker/DatePickerOptions.js +33 -33
- package/dist/Components/ErrorHandler.d.ts +59 -55
- package/dist/Components/ErrorHandler.js +210 -138
- package/dist/Components/FileManager/BoundFileManager.d.ts +18 -18
- package/dist/Components/FileManager/BoundFileManager.js +60 -60
- package/dist/Components/FileManager/FileManager.d.ts +80 -78
- package/dist/Components/FileManager/FileManager.js +277 -257
- package/dist/Components/FileManager/FileUploadBatch.d.ts +37 -37
- package/dist/Components/FileManager/FileUploadBatch.js +83 -82
- package/dist/Components/FileManager/IFileManagerOptions.d.ts +42 -42
- package/dist/Components/FileManager/IFileManagerOptions.js +1 -1
- package/dist/Components/FormOptions.d.ts +34 -34
- package/dist/Components/FormOptions.js +1 -1
- package/dist/Components/ICollapsableOptions.d.ts +11 -11
- package/dist/Components/ICollapsableOptions.js +1 -1
- package/dist/Components/Modal/ModalHelper.d.ts +31 -31
- package/dist/Components/Modal/ModalHelper.js +174 -174
- package/dist/Components/Modal/ModalOptions.d.ts +61 -61
- package/dist/Components/Modal/ModalOptions.js +1 -1
- package/dist/Components/Modal/ModalStore.d.ts +32 -32
- package/dist/Components/Modal/ModalStore.js +82 -82
- package/dist/Components/Modal/ModalUtils.d.ts +61 -61
- package/dist/Components/Modal/ModalUtils.js +109 -109
- package/dist/Components/Notifications/INotificationHelper.d.ts +56 -56
- package/dist/Components/Notifications/INotificationHelper.js +1 -1
- package/dist/Components/Notifications/Notification.d.ts +32 -32
- package/dist/Components/Notifications/Notification.js +26 -27
- package/dist/Components/Notifications/NotificationHelper.d.ts +63 -63
- package/dist/Components/Notifications/NotificationHelper.js +111 -112
- package/dist/Components/Notifications/NotificationStore.d.ts +34 -34
- package/dist/Components/Notifications/NotificationStore.js +78 -79
- package/dist/Components/PositionHelper.d.ts +10 -10
- package/dist/Components/PositionHelper.js +43 -43
- package/dist/Components/TaskRunner/Decorators.d.ts +6 -6
- package/dist/Components/TaskRunner/Decorators.js +24 -24
- package/dist/Components/TaskRunner/ProgressState.d.ts +22 -22
- package/dist/Components/TaskRunner/ProgressState.js +71 -72
- package/dist/Components/TaskRunner/TaskRunner.d.ts +114 -114
- package/dist/Components/TaskRunner/TaskRunner.js +253 -244
- package/dist/Components/TooltipOptions.d.ts +8 -8
- package/dist/Components/TooltipOptions.js +1 -1
- package/dist/Components/index.d.ts +22 -22
- package/dist/Components/index.js +13 -13
- package/dist/ConnectionManager.d.ts +45 -45
- package/dist/ConnectionManager.js +60 -61
- package/dist/Data/ApiDataSource.d.ts +46 -46
- package/dist/Data/ApiDataSource.js +140 -144
- package/dist/Data/AsyncDataSource.d.ts +35 -35
- package/dist/Data/AsyncDataSource.js +79 -80
- package/dist/Data/CacheService.d.ts +40 -40
- package/dist/Data/CacheService.js +63 -64
- package/dist/Data/DataCacheEntry.d.ts +42 -42
- package/dist/Data/DataCacheEntry.js +80 -80
- package/dist/Data/DataView.d.ts +43 -43
- package/dist/Data/DataView.js +173 -172
- package/dist/Data/Deserialiser.d.ts +42 -42
- package/dist/Data/Deserialiser.js +255 -255
- package/dist/Data/Paging/PageManager.d.ts +167 -167
- package/dist/Data/Paging/PageManager.js +323 -323
- package/dist/Data/Paging/PageRequest.d.ts +24 -24
- package/dist/Data/Paging/PageRequest.js +38 -39
- package/dist/Data/Paging/PageResult.d.ts +10 -10
- package/dist/Data/Paging/PageResult.js +14 -14
- package/dist/Data/Serialiser.d.ts +41 -41
- package/dist/Data/Serialiser.js +201 -201
- package/dist/Data/SortOperation.d.ts +8 -8
- package/dist/Data/SortOperation.js +26 -26
- package/dist/Data/StaticDataSource.d.ts +9 -9
- package/dist/Data/StaticDataSource.js +27 -27
- package/dist/Data/WindowedDataView.d.ts +8 -8
- package/dist/Data/WindowedDataView.js +49 -50
- package/dist/Data/index.d.ts +15 -15
- package/dist/Data/index.js +15 -15
- package/dist/Dates/DateUtils.d.ts +47 -47
- package/dist/Dates/DateUtils.js +226 -226
- package/dist/Dates/TimeSpan.d.ts +24 -24
- package/dist/Dates/TimeSpan.js +46 -46
- package/dist/DebounceHelper.d.ts +44 -38
- package/dist/DebounceHelper.js +122 -95
- package/dist/Extensions.d.ts +82 -82
- package/dist/Extensions.js +182 -182
- package/dist/FileUtils.d.ts +6 -6
- package/dist/FileUtils.js +37 -37
- package/dist/Globals.d.ts +19 -19
- package/dist/Globals.js +41 -41
- package/dist/JsonSchema/ClassMetadata.d.ts +25 -25
- package/dist/JsonSchema/ClassMetadata.js +53 -53
- package/dist/JsonSchema/JsonData.d.ts +16 -16
- package/dist/JsonSchema/JsonData.js +97 -97
- package/dist/JsonSchema/JsonSchemaTypes.d.ts +37 -37
- package/dist/JsonSchema/JsonSchemaTypes.js +1 -1
- package/dist/JsonSchema/PropertyMetadata.d.ts +8 -8
- package/dist/JsonSchema/PropertyMetadata.js +8 -8
- package/dist/JsonSchema/TypeCache.d.ts +16 -16
- package/dist/JsonSchema/TypeCache.js +44 -44
- package/dist/JsonSchema/TypeMetadata.d.ts +45 -45
- package/dist/JsonSchema/TypeMetadata.js +170 -170
- package/dist/JsonSchema/index.d.ts +7 -7
- package/dist/JsonSchema/index.js +6 -6
- package/dist/Localisation/ILocalisationService.d.ts +11 -11
- package/dist/Localisation/ILocalisationService.js +1 -1
- package/dist/Localisation/LocalisationService.d.ts +4 -4
- package/dist/Localisation/LocalisationService.js +17 -17
- package/dist/Localisation/index.d.ts +1 -1
- package/dist/Localisation/index.js +1 -1
- package/dist/Misc.d.ts +6 -6
- package/dist/Misc.js +6 -6
- package/dist/Model/BaseModels/AuditValues.d.ts +12 -12
- package/dist/Model/BaseModels/AuditValues.js +46 -48
- package/dist/Model/BaseModels/CriteriaBase.d.ts +18 -16
- package/dist/Model/BaseModels/CriteriaBase.js +45 -34
- package/dist/Model/BaseModels/FileDescriptorBase.d.ts +12 -12
- package/dist/Model/BaseModels/FileDescriptorBase.js +22 -22
- package/dist/Model/BaseModels/ReasonedUserEvent.d.ts +5 -4
- package/dist/Model/BaseModels/ReasonedUserEvent.js +23 -19
- package/dist/Model/BaseModels/UserEvent.d.ts +9 -8
- package/dist/Model/BaseModels/UserEvent.js +36 -32
- package/dist/Model/BindableBase.d.ts +46 -40
- package/dist/Model/BindableBase.js +79 -76
- package/dist/Model/Decorators.d.ts +47 -44
- package/dist/Model/Decorators.js +182 -177
- package/dist/Model/EnumHelper.d.ts +54 -54
- package/dist/Model/EnumHelper.js +104 -100
- package/dist/Model/IAutoRunner.d.ts +5 -5
- package/dist/Model/IAutoRunner.js +1 -1
- package/dist/Model/IModelBase.d.ts +92 -79
- package/dist/Model/IModelBase.js +1 -1
- package/dist/Model/IModelCreatorBase.d.ts +9 -9
- package/dist/Model/IModelCreatorBase.js +1 -1
- package/dist/Model/List.d.ts +79 -77
- package/dist/Model/List.js +208 -198
- package/dist/Model/LookupBase.d.ts +13 -6
- package/dist/Model/LookupBase.js +19 -10
- package/dist/Model/Misc.d.ts +83 -81
- package/dist/Model/Misc.js +59 -59
- package/dist/Model/ModelBase.d.ts +88 -86
- package/dist/Model/ModelBase.js +182 -180
- package/dist/Model/ModelCreatorBase.d.ts +24 -23
- package/dist/Model/ModelCreatorBase.js +92 -92
- package/dist/Model/ModelFieldInfo.d.ts +29 -12
- package/dist/Model/ModelFieldInfo.js +35 -26
- package/dist/Model/ModelGraphTraverser.d.ts +35 -35
- package/dist/Model/ModelGraphTraverser.js +101 -99
- package/dist/Model/NeoModel.d.ts +6 -6
- package/dist/Model/NeoModel.js +13 -13
- package/dist/Model/NeoTypeInfo.d.ts +52 -41
- package/dist/Model/NeoTypeInfo.js +300 -250
- package/dist/Model/ObservableProperty.d.ts +8 -8
- package/dist/Model/ObservableProperty.js +41 -41
- package/dist/Model/ObservableValue.d.ts +9 -9
- package/dist/Model/ObservableValue.js +25 -26
- package/dist/Model/PropertyInfo.d.ts +83 -81
- package/dist/Model/PropertyInfo.js +138 -137
- package/dist/Model/PropertyInstance.d.ts +84 -48
- package/dist/Model/PropertyInstance.js +173 -113
- package/dist/Model/ValueObject.d.ts +3 -3
- package/dist/Model/ValueObject.js +10 -10
- package/dist/Model/index.d.ts +15 -14
- package/dist/Model/index.js +13 -12
- package/dist/NumberUtils.d.ts +63 -49
- package/dist/NumberUtils.js +247 -197
- package/dist/Routing/IMenuItemProvider.d.ts +9 -9
- package/dist/Routing/IMenuItemProvider.js +1 -1
- package/dist/Routing/IMenuRoute.d.ts +18 -18
- package/dist/Routing/IMenuRoute.js +1 -1
- package/dist/Routing/INavigationHelper.d.ts +7 -7
- package/dist/Routing/INavigationHelper.js +1 -1
- package/dist/Routing/IPageLeaveHandler.d.ts +23 -23
- package/dist/Routing/IPageLeaveHandler.js +7 -7
- package/dist/Routing/IRoute.d.ts +27 -27
- package/dist/Routing/IRoute.js +1 -1
- package/dist/Routing/IRouteSecurityService.d.ts +14 -14
- package/dist/Routing/IRouteSecurityService.js +1 -1
- package/dist/Routing/MenuItemProvider.d.ts +17 -17
- package/dist/Routing/MenuItemProvider.js +53 -54
- package/dist/Routing/RouteSecurityService.d.ts +18 -18
- package/dist/Routing/RouteSecurityService.js +35 -36
- package/dist/Routing/index.d.ts +7 -7
- package/dist/Routing/index.js +3 -3
- package/dist/Security/IAuthenticationService.d.ts +41 -36
- package/dist/Security/IAuthenticationService.js +1 -1
- package/dist/Security/IAuthorisationService.d.ts +11 -11
- package/dist/Security/IAuthorisationService.js +1 -1
- package/dist/Security/ILoginErrorHandler.d.ts +4 -4
- package/dist/Security/ILoginErrorHandler.js +1 -1
- package/dist/Security/ISecurityService.d.ts +10 -10
- package/dist/Security/ISecurityService.js +1 -1
- package/dist/Security/IUser.d.ts +10 -10
- package/dist/Security/IUser.js +1 -1
- package/dist/Security/IUserRole.d.ts +6 -6
- package/dist/Security/IUserRole.js +1 -1
- package/dist/Security/LoginErrorHandler.d.ts +15 -15
- package/dist/Security/LoginErrorHandler.js +97 -98
- package/dist/Security/Oidc/OidcAuthService.d.ts +67 -60
- package/dist/Security/Oidc/OidcAuthService.js +216 -189
- package/dist/Security/Oidc/OidcTypes.d.ts +46 -29
- package/dist/Security/Oidc/OidcTypes.js +1 -1
- package/dist/Security/Oidc/OidcUser.d.ts +9 -9
- package/dist/Security/Oidc/OidcUser.js +33 -33
- package/dist/Security/SecurityService.d.ts +12 -12
- package/dist/Security/SecurityService.js +33 -34
- package/dist/Security/SignInResult.d.ts +13 -13
- package/dist/Security/SignInResult.js +8 -8
- package/dist/Security/User.d.ts +12 -12
- package/dist/Security/User.js +24 -24
- package/dist/Security/index.d.ts +10 -10
- package/dist/Security/index.js +5 -5
- package/dist/Settings.d.ts +71 -57
- package/dist/Settings.js +100 -87
- package/dist/SignalR/HubBase.d.ts +70 -70
- package/dist/SignalR/HubBase.js +164 -164
- package/dist/SignalR/HubReceiver.d.ts +11 -11
- package/dist/SignalR/HubReceiver.js +25 -25
- package/dist/SignalR/HubSubscription.d.ts +12 -12
- package/dist/SignalR/HubSubscription.js +14 -14
- package/dist/SignalR/index.d.ts +3 -3
- package/dist/SignalR/index.js +1 -1
- package/dist/StringUtils.d.ts +7 -7
- package/dist/StringUtils.js +24 -24
- package/dist/Utils.d.ts +81 -80
- package/dist/Utils.js +220 -218
- package/dist/Validation/Decorators.d.ts +12 -12
- package/dist/Validation/Decorators.js +52 -52
- package/dist/Validation/DisplayHelper.d.ts +20 -19
- package/dist/Validation/DisplayHelper.js +104 -104
- package/dist/Validation/Misc.d.ts +10 -10
- package/dist/Validation/Misc.js +11 -11
- package/dist/Validation/ModelProxy.d.ts +20 -20
- package/dist/Validation/ModelProxy.js +46 -46
- package/dist/Validation/RuleContext.d.ts +86 -86
- package/dist/Validation/RuleContext.js +130 -130
- package/dist/Validation/Rules.d.ts +70 -70
- package/dist/Validation/Rules.js +177 -177
- package/dist/Validation/ValidationHelpers.d.ts +12 -12
- package/dist/Validation/ValidationHelpers.js +57 -57
- package/dist/Validation/ValidationRules.d.ts +18 -18
- package/dist/Validation/ValidationRules.js +34 -34
- package/dist/Validation/ValidationState.d.ts +42 -42
- package/dist/Validation/ValidationState.js +74 -74
- package/dist/Validation/Validators/IModelValidator.d.ts +28 -24
- package/dist/Validation/Validators/IModelValidator.js +1 -1
- package/dist/Validation/Validators/IPropertyValidator.d.ts +21 -21
- package/dist/Validation/Validators/IPropertyValidator.js +15 -15
- package/dist/Validation/Validators/ModelValidator.d.ts +46 -45
- package/dist/Validation/Validators/ModelValidator.js +143 -137
- package/dist/Validation/Validators/PropertyValidator.d.ts +21 -21
- package/dist/Validation/Validators/PropertyValidator.js +64 -67
- package/dist/Validation/Validators/RuleValidator.d.ts +19 -19
- package/dist/Validation/Validators/RuleValidator.js +51 -55
- package/dist/Validation/index.d.ts +9 -9
- package/dist/Validation/index.js +7 -7
- package/dist/Views/IViewBase.d.ts +5 -5
- package/dist/Views/IViewBase.js +1 -1
- package/dist/index.d.ts +37 -36
- package/dist/index.js +44 -43
- package/package.json +11 -10
|
@@ -1,167 +1,167 @@
|
|
|
1
|
-
import { AxiosPromise } from 'axios';
|
|
2
|
-
import { PageResult } from './PageResult';
|
|
3
|
-
import { PageRequest } from './PageRequest';
|
|
4
|
-
import { ITaskRunner } from '../../Components/TaskRunner/TaskRunner';
|
|
5
|
-
import ValueObject from '../../Model/ValueObject';
|
|
6
|
-
import { IBindableBase, PartialPlainObject } from '../../Model/IModelBase';
|
|
7
|
-
import { DataViewBase } from '../DataView';
|
|
8
|
-
import { Model } from '../../';
|
|
9
|
-
import PropertyInfo from '../../Model/PropertyInfo';
|
|
10
|
-
import List from '../../Model/List';
|
|
11
|
-
import { IDeserialiseOptions } from '../Deserialiser';
|
|
12
|
-
export interface IPageManagerOptions<TCriteria extends ValueObject, TModel> {
|
|
13
|
-
/**
|
|
14
|
-
* No of records per page. Default is 20.
|
|
15
|
-
*/
|
|
16
|
-
pageSize?: number;
|
|
17
|
-
/**
|
|
18
|
-
* User selectable page sizes. Defaults to 10, 20, 50.
|
|
19
|
-
*/
|
|
20
|
-
pageSizeOptions?: number[];
|
|
21
|
-
/**
|
|
22
|
-
* Initial sort property or array of properties.
|
|
23
|
-
*/
|
|
24
|
-
sortBy?: keyof TModel | (keyof TModel)[];
|
|
25
|
-
/**
|
|
26
|
-
* Initial sort direction or directions.
|
|
27
|
-
*/
|
|
28
|
-
sortAscending?: boolean | boolean[];
|
|
29
|
-
/**
|
|
30
|
-
* Set to false if you don't want to allow sorting.
|
|
31
|
-
*/
|
|
32
|
-
allowSort?: boolean;
|
|
33
|
-
/**
|
|
34
|
-
* Set to true if you want initial data to be fetched when the page manager is first displayed.
|
|
35
|
-
*/
|
|
36
|
-
fetchInitial?: boolean;
|
|
37
|
-
/**
|
|
38
|
-
* Task runner through which paging requests should flow.
|
|
39
|
-
*/
|
|
40
|
-
taskRunner?: ITaskRunner;
|
|
41
|
-
/**
|
|
42
|
-
* Task runner to use for the initial data request.
|
|
43
|
-
*/
|
|
44
|
-
initialTaskRunner?: ITaskRunner;
|
|
45
|
-
/**
|
|
46
|
-
* Called after criteria has been populated, and before the api endpoint is called.
|
|
47
|
-
*/
|
|
48
|
-
beforeFetch?: (criteria: Model.PlainObject<PageRequest<TCriteria>>) => void;
|
|
49
|
-
/**
|
|
50
|
-
* Called after data has been fetched and deserialised.
|
|
51
|
-
*/
|
|
52
|
-
afterFetch?: (data: TModel[]) => void | Promise<void>;
|
|
53
|
-
/**
|
|
54
|
-
* Options to pass to the deserialiser.
|
|
55
|
-
*/
|
|
56
|
-
deserialiseOptions?: IDeserialiseOptions;
|
|
57
|
-
}
|
|
58
|
-
export interface IPageManager {
|
|
59
|
-
/** Go to the first page. */
|
|
60
|
-
firstPage(): void;
|
|
61
|
-
/** Go to the previous page. */
|
|
62
|
-
previousPage(): void;
|
|
63
|
-
/** Go to the next page. */
|
|
64
|
-
nextPage(): void;
|
|
65
|
-
/** Go to the last page. */
|
|
66
|
-
lastPage(): void;
|
|
67
|
-
/** Gets or sets the current page no. */
|
|
68
|
-
pageNo: number;
|
|
69
|
-
/** Gets or sets the page size. */
|
|
70
|
-
pageSize: number;
|
|
71
|
-
/** Gets the total number of pages based on the total number of records. */
|
|
72
|
-
readonly totalPages: number;
|
|
73
|
-
/** Gets the user selectable page sizes. */
|
|
74
|
-
readonly pageSizeOptions: number[];
|
|
75
|
-
/**
|
|
76
|
-
* Refresh the data by calling the api endpoint with the current criteria.
|
|
77
|
-
* Note: the page index will be reset to zero. Use this when your criteria has changed
|
|
78
|
-
* @param getCount True if criteria has changed, and the total number of records needs to be refetched.
|
|
79
|
-
* @param taskRunner Optional alternate task runner to use.
|
|
80
|
-
*/
|
|
81
|
-
refreshData(getCount?: boolean, taskRunner?: ITaskRunner): Promise<void>;
|
|
82
|
-
/**
|
|
83
|
-
* Refresh the data by calling the api endpoint with the current criteria.
|
|
84
|
-
* This will not reset the page index, and will not update the total record count, therefore should only be called if your criteria has not changed since the last full fetch using refreshData().
|
|
85
|
-
* @param taskRunner Optional alternate task runner to use.
|
|
86
|
-
*/
|
|
87
|
-
refreshPage(taskRunner?: ITaskRunner): Promise<void>;
|
|
88
|
-
}
|
|
89
|
-
export declare class PageManager<TCriteria extends ValueObject, TModel extends IBindableBase> extends DataViewBase<TModel> implements IPageManager {
|
|
90
|
-
private modelType;
|
|
91
|
-
private dataSource;
|
|
92
|
-
private options;
|
|
93
|
-
constructor(criteria: TCriteria, modelType: new () => TModel, dataSource: (criteria: Model.PartialPlainNonTrackedObject<PageRequest<TCriteria>>) => (AxiosPromise<PageResult<Model.PlainObject<TModel>>> | Promise<PageResult<Model.PlainObject<TModel>>>), options?: IPageManagerOptions<TCriteria, TModel>);
|
|
94
|
-
taskRunner: ITaskRunner;
|
|
95
|
-
private hasInitialised;
|
|
96
|
-
private pageRequest;
|
|
97
|
-
private _totalRecords;
|
|
98
|
-
private currentData;
|
|
99
|
-
private initialFetchState;
|
|
100
|
-
/**
|
|
101
|
-
* Gets or sets the criteria.
|
|
102
|
-
*/
|
|
103
|
-
get criteria(): TCriteria | undefined;
|
|
104
|
-
set criteria(value: TCriteria | undefined);
|
|
105
|
-
/**
|
|
106
|
-
* Returns the state of the initial data request. Does not change after the first request has been made.
|
|
107
|
-
* Note, this will return null while loading, so you should check against a boolean value. E.g. if (hasFetched === false)
|
|
108
|
-
*/
|
|
109
|
-
get hasFetched(): boolean | null;
|
|
110
|
-
/**
|
|
111
|
-
* Gets or sets the 1 based page number.
|
|
112
|
-
*/
|
|
113
|
-
get pageNo(): number;
|
|
114
|
-
set pageNo(value: number);
|
|
115
|
-
get pageSize(): number;
|
|
116
|
-
set pageSize(value: number);
|
|
117
|
-
get totalRecords(): number;
|
|
118
|
-
/** Gets the total number of pages based on the total number of records. */
|
|
119
|
-
get totalPages(): number;
|
|
120
|
-
/**
|
|
121
|
-
* Called by the pager component on first display. Will fetch data if options.fetchInitial is set to true.
|
|
122
|
-
*/
|
|
123
|
-
initialise(): void;
|
|
124
|
-
/**
|
|
125
|
-
* Refresh the data by calling the api endpoint with the current criteria.
|
|
126
|
-
* Note: the page index will be reset to zero. Use this when your criteria has changed
|
|
127
|
-
* @param getCount True if criteria has changed, and the total number of records needs to be refetched.
|
|
128
|
-
* @param taskRunner Optional alternate task runner to use.
|
|
129
|
-
*/
|
|
130
|
-
refreshData(getCount?: boolean, taskRunner?: ITaskRunner): Promise<void>;
|
|
131
|
-
/**
|
|
132
|
-
* Refresh the data by calling the api endpoint with the current criteria.
|
|
133
|
-
* This will not reset the page index, and will not update the total record count, therefore should only be called if your criteria has not changed since the last full fetch using refreshData().
|
|
134
|
-
* @param taskRunner Optional alternate task runner to use.
|
|
135
|
-
*/
|
|
136
|
-
refreshPage(taskRunner?: ITaskRunner): Promise<void>;
|
|
137
|
-
private fetchAndSetData;
|
|
138
|
-
setData(pageRecords: PartialPlainObject<TModel>[], totalRecords?: number): Promise<void>;
|
|
139
|
-
/**
|
|
140
|
-
* Resets the page manager to its initial state and clears the current data.
|
|
141
|
-
*/
|
|
142
|
-
reset(): void;
|
|
143
|
-
/**
|
|
144
|
-
* Resets the sort properties. A new sort property can be provided.
|
|
145
|
-
* If the provided sort property matches the first existing sort property, and sortAscending is undefined, then the current sort order will be reversed.
|
|
146
|
-
*/
|
|
147
|
-
resetSort(property?: PropertyInfo, sortAscending?: boolean): void;
|
|
148
|
-
/**
|
|
149
|
-
* Adds a sort property.
|
|
150
|
-
* If the property already exists, the sort direction of the property will be reversed.
|
|
151
|
-
*/
|
|
152
|
-
addSort(property: PropertyInfo, sortAscending?: boolean): void;
|
|
153
|
-
/** Sets a single or multiple sort operations. Does not refresh data. */
|
|
154
|
-
setSortOperations(sortBy: keyof TModel | (keyof TModel)[], sortAscending?: boolean | boolean[]): void;
|
|
155
|
-
get rawItems(): List<TModel>;
|
|
156
|
-
getItems(): TModel[];
|
|
157
|
-
/**
|
|
158
|
-
* Returns the current list.
|
|
159
|
-
*/
|
|
160
|
-
get data(): List<TModel>;
|
|
161
|
-
get pageSizeOptions(): number[];
|
|
162
|
-
getMetaItem(): TModel;
|
|
163
|
-
firstPage(): void;
|
|
164
|
-
previousPage(): void;
|
|
165
|
-
nextPage(): void;
|
|
166
|
-
lastPage(): void;
|
|
167
|
-
}
|
|
1
|
+
import { AxiosPromise } from 'axios';
|
|
2
|
+
import { PageResult } from './PageResult';
|
|
3
|
+
import { PageRequest } from './PageRequest';
|
|
4
|
+
import { ITaskRunner } from '../../Components/TaskRunner/TaskRunner';
|
|
5
|
+
import ValueObject from '../../Model/ValueObject';
|
|
6
|
+
import { IBindableBase, PartialPlainObject } from '../../Model/IModelBase';
|
|
7
|
+
import { DataViewBase } from '../DataView';
|
|
8
|
+
import { Model } from '../../';
|
|
9
|
+
import PropertyInfo from '../../Model/PropertyInfo';
|
|
10
|
+
import List from '../../Model/List';
|
|
11
|
+
import { IDeserialiseOptions } from '../Deserialiser';
|
|
12
|
+
export interface IPageManagerOptions<TCriteria extends ValueObject, TModel> {
|
|
13
|
+
/**
|
|
14
|
+
* No of records per page. Default is 20.
|
|
15
|
+
*/
|
|
16
|
+
pageSize?: number;
|
|
17
|
+
/**
|
|
18
|
+
* User selectable page sizes. Defaults to 10, 20, 50.
|
|
19
|
+
*/
|
|
20
|
+
pageSizeOptions?: number[];
|
|
21
|
+
/**
|
|
22
|
+
* Initial sort property or array of properties.
|
|
23
|
+
*/
|
|
24
|
+
sortBy?: keyof TModel | (keyof TModel)[];
|
|
25
|
+
/**
|
|
26
|
+
* Initial sort direction or directions.
|
|
27
|
+
*/
|
|
28
|
+
sortAscending?: boolean | boolean[];
|
|
29
|
+
/**
|
|
30
|
+
* Set to false if you don't want to allow sorting.
|
|
31
|
+
*/
|
|
32
|
+
allowSort?: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Set to true if you want initial data to be fetched when the page manager is first displayed.
|
|
35
|
+
*/
|
|
36
|
+
fetchInitial?: boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Task runner through which paging requests should flow.
|
|
39
|
+
*/
|
|
40
|
+
taskRunner?: ITaskRunner;
|
|
41
|
+
/**
|
|
42
|
+
* Task runner to use for the initial data request.
|
|
43
|
+
*/
|
|
44
|
+
initialTaskRunner?: ITaskRunner;
|
|
45
|
+
/**
|
|
46
|
+
* Called after criteria has been populated, and before the api endpoint is called.
|
|
47
|
+
*/
|
|
48
|
+
beforeFetch?: (criteria: Model.PlainObject<PageRequest<TCriteria>>) => void;
|
|
49
|
+
/**
|
|
50
|
+
* Called after data has been fetched and deserialised.
|
|
51
|
+
*/
|
|
52
|
+
afterFetch?: (data: TModel[]) => void | Promise<void>;
|
|
53
|
+
/**
|
|
54
|
+
* Options to pass to the deserialiser.
|
|
55
|
+
*/
|
|
56
|
+
deserialiseOptions?: IDeserialiseOptions;
|
|
57
|
+
}
|
|
58
|
+
export interface IPageManager {
|
|
59
|
+
/** Go to the first page. */
|
|
60
|
+
firstPage(): void;
|
|
61
|
+
/** Go to the previous page. */
|
|
62
|
+
previousPage(): void;
|
|
63
|
+
/** Go to the next page. */
|
|
64
|
+
nextPage(): void;
|
|
65
|
+
/** Go to the last page. */
|
|
66
|
+
lastPage(): void;
|
|
67
|
+
/** Gets or sets the current page no. */
|
|
68
|
+
pageNo: number;
|
|
69
|
+
/** Gets or sets the page size. */
|
|
70
|
+
pageSize: number;
|
|
71
|
+
/** Gets the total number of pages based on the total number of records. */
|
|
72
|
+
readonly totalPages: number;
|
|
73
|
+
/** Gets the user selectable page sizes. */
|
|
74
|
+
readonly pageSizeOptions: number[];
|
|
75
|
+
/**
|
|
76
|
+
* Refresh the data by calling the api endpoint with the current criteria.
|
|
77
|
+
* Note: the page index will be reset to zero. Use this when your criteria has changed
|
|
78
|
+
* @param getCount True if criteria has changed, and the total number of records needs to be refetched.
|
|
79
|
+
* @param taskRunner Optional alternate task runner to use.
|
|
80
|
+
*/
|
|
81
|
+
refreshData(getCount?: boolean, taskRunner?: ITaskRunner): Promise<void>;
|
|
82
|
+
/**
|
|
83
|
+
* Refresh the data by calling the api endpoint with the current criteria.
|
|
84
|
+
* This will not reset the page index, and will not update the total record count, therefore should only be called if your criteria has not changed since the last full fetch using refreshData().
|
|
85
|
+
* @param taskRunner Optional alternate task runner to use.
|
|
86
|
+
*/
|
|
87
|
+
refreshPage(taskRunner?: ITaskRunner): Promise<void>;
|
|
88
|
+
}
|
|
89
|
+
export declare class PageManager<TCriteria extends ValueObject, TModel extends IBindableBase> extends DataViewBase<TModel> implements IPageManager {
|
|
90
|
+
private modelType;
|
|
91
|
+
private dataSource;
|
|
92
|
+
private options;
|
|
93
|
+
constructor(criteria: TCriteria, modelType: new () => TModel, dataSource: (criteria: Model.PartialPlainNonTrackedObject<PageRequest<TCriteria>>) => (AxiosPromise<PageResult<Model.PlainObject<TModel>>> | Promise<PageResult<Model.PlainObject<TModel>>>), options?: IPageManagerOptions<TCriteria, TModel>);
|
|
94
|
+
taskRunner: ITaskRunner;
|
|
95
|
+
private hasInitialised;
|
|
96
|
+
private pageRequest;
|
|
97
|
+
private _totalRecords;
|
|
98
|
+
private currentData;
|
|
99
|
+
private initialFetchState;
|
|
100
|
+
/**
|
|
101
|
+
* Gets or sets the criteria.
|
|
102
|
+
*/
|
|
103
|
+
get criteria(): TCriteria | undefined;
|
|
104
|
+
set criteria(value: TCriteria | undefined);
|
|
105
|
+
/**
|
|
106
|
+
* Returns the state of the initial data request. Does not change after the first request has been made.
|
|
107
|
+
* Note, this will return null while loading, so you should check against a boolean value. E.g. if (hasFetched === false)
|
|
108
|
+
*/
|
|
109
|
+
get hasFetched(): boolean | null;
|
|
110
|
+
/**
|
|
111
|
+
* Gets or sets the 1 based page number.
|
|
112
|
+
*/
|
|
113
|
+
get pageNo(): number;
|
|
114
|
+
set pageNo(value: number);
|
|
115
|
+
get pageSize(): number;
|
|
116
|
+
set pageSize(value: number);
|
|
117
|
+
get totalRecords(): number;
|
|
118
|
+
/** Gets the total number of pages based on the total number of records. */
|
|
119
|
+
get totalPages(): number;
|
|
120
|
+
/**
|
|
121
|
+
* Called by the pager component on first display. Will fetch data if options.fetchInitial is set to true.
|
|
122
|
+
*/
|
|
123
|
+
initialise(): void;
|
|
124
|
+
/**
|
|
125
|
+
* Refresh the data by calling the api endpoint with the current criteria.
|
|
126
|
+
* Note: the page index will be reset to zero. Use this when your criteria has changed
|
|
127
|
+
* @param getCount True if criteria has changed, and the total number of records needs to be refetched.
|
|
128
|
+
* @param taskRunner Optional alternate task runner to use.
|
|
129
|
+
*/
|
|
130
|
+
refreshData(getCount?: boolean, taskRunner?: ITaskRunner): Promise<void>;
|
|
131
|
+
/**
|
|
132
|
+
* Refresh the data by calling the api endpoint with the current criteria.
|
|
133
|
+
* This will not reset the page index, and will not update the total record count, therefore should only be called if your criteria has not changed since the last full fetch using refreshData().
|
|
134
|
+
* @param taskRunner Optional alternate task runner to use.
|
|
135
|
+
*/
|
|
136
|
+
refreshPage(taskRunner?: ITaskRunner): Promise<void>;
|
|
137
|
+
private fetchAndSetData;
|
|
138
|
+
setData(pageRecords: PartialPlainObject<TModel>[], totalRecords?: number): Promise<void>;
|
|
139
|
+
/**
|
|
140
|
+
* Resets the page manager to its initial state and clears the current data.
|
|
141
|
+
*/
|
|
142
|
+
reset(): void;
|
|
143
|
+
/**
|
|
144
|
+
* Resets the sort properties. A new sort property can be provided.
|
|
145
|
+
* If the provided sort property matches the first existing sort property, and sortAscending is undefined, then the current sort order will be reversed.
|
|
146
|
+
*/
|
|
147
|
+
resetSort(property?: PropertyInfo, sortAscending?: boolean): void;
|
|
148
|
+
/**
|
|
149
|
+
* Adds a sort property.
|
|
150
|
+
* If the property already exists, the sort direction of the property will be reversed.
|
|
151
|
+
*/
|
|
152
|
+
addSort(property: PropertyInfo, sortAscending?: boolean): void;
|
|
153
|
+
/** Sets a single or multiple sort operations. Does not refresh data. */
|
|
154
|
+
setSortOperations(sortBy: keyof TModel | (keyof TModel)[], sortAscending?: boolean | boolean[]): void;
|
|
155
|
+
get rawItems(): List<TModel>;
|
|
156
|
+
getItems(): TModel[];
|
|
157
|
+
/**
|
|
158
|
+
* Returns the current list.
|
|
159
|
+
*/
|
|
160
|
+
get data(): List<TModel>;
|
|
161
|
+
get pageSizeOptions(): number[];
|
|
162
|
+
getMetaItem(): TModel;
|
|
163
|
+
firstPage(): void;
|
|
164
|
+
previousPage(): void;
|
|
165
|
+
nextPage(): void;
|
|
166
|
+
lastPage(): void;
|
|
167
|
+
}
|