@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
package/dist/DebounceHelper.d.ts
CHANGED
|
@@ -1,38 +1,44 @@
|
|
|
1
|
-
export interface IDebounceResult<T> {
|
|
2
|
-
/** True if the operation was cancelled due to a subsequent call. */
|
|
3
|
-
cancelled: boolean;
|
|
4
|
-
value?: T;
|
|
5
|
-
}
|
|
6
|
-
export declare class DebounceHelper<T = void, TState = any> {
|
|
7
|
-
private callback;
|
|
8
|
-
private delayMs;
|
|
9
|
-
private timer;
|
|
10
|
-
private state;
|
|
11
|
-
private currentResolver?;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
*
|
|
15
|
-
* @param
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
* @param
|
|
25
|
-
* @param
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
1
|
+
export interface IDebounceResult<T> {
|
|
2
|
+
/** True if the operation was cancelled due to a subsequent call. */
|
|
3
|
+
cancelled: boolean;
|
|
4
|
+
value?: T;
|
|
5
|
+
}
|
|
6
|
+
export declare class DebounceHelper<T = void, TState = any> {
|
|
7
|
+
private callback;
|
|
8
|
+
private delayMs;
|
|
9
|
+
private timer;
|
|
10
|
+
private state;
|
|
11
|
+
private currentResolver?;
|
|
12
|
+
private currentRejection?;
|
|
13
|
+
/**
|
|
14
|
+
* Creates a debounce helper instance.
|
|
15
|
+
* @param callback Callback function to run. All state passed to the execute method from current and previous calls will be passed to the callback.
|
|
16
|
+
* @param delayMs Delay in milliseconds.
|
|
17
|
+
*/
|
|
18
|
+
constructor(callback: (state: TState[]) => T | Promise<T>, delayMs?: number);
|
|
19
|
+
/**
|
|
20
|
+
* Debounce a function so that it is only called after a period of inactivity.
|
|
21
|
+
* @param syncInstance The instance to synchronize against.
|
|
22
|
+
* This should always be the same object for the function you are debouncing.
|
|
23
|
+
* Do not debounce different functions on the same sync instance. Rather create a DebounceHelper instance for each function.
|
|
24
|
+
* @param fn Function to call when the delay has elapsed.
|
|
25
|
+
* @param delayMs Delay in milliseconds.
|
|
26
|
+
* @param state State to pass to debounced method as an array of values for each time debounce was called.
|
|
27
|
+
*/
|
|
28
|
+
static debounce<T = any, TState = any>(syncInstance: any, callback: (state: TState[]) => T | Promise<T>, delayMs: number, state?: TState): Promise<IDebounceResult<T>>;
|
|
29
|
+
/** Cancels pending execution of the callback. Pending promise will be resolved with cancelled: true. */
|
|
30
|
+
static cancelPending<TState = any>(syncInstance: any): TState[];
|
|
31
|
+
/** Fires the latest callback immediately. Pending promise from execute() will also be resolved with the return value of the callback. */
|
|
32
|
+
static executeImmediate(syncInstance: any): Promise<void>;
|
|
33
|
+
/**
|
|
34
|
+
* Waits the interval defined in the constructor, then executes the callback.
|
|
35
|
+
* The callback will not execute if execute is called again within the interval.
|
|
36
|
+
* @param state State to pass to the callback.
|
|
37
|
+
*/
|
|
38
|
+
execute(state?: TState): Promise<IDebounceResult<T>>;
|
|
39
|
+
private executeCallback;
|
|
40
|
+
/** Cancels pending execution of the callback. Pending promise will be resolved with cancelled: true. */
|
|
41
|
+
cancelPending(): TState[];
|
|
42
|
+
/** Fires the latest callback immediately. Pending promise from execute() will also be resolved with the return value of the callback. */
|
|
43
|
+
executeImmediate(): Promise<void>;
|
|
44
|
+
}
|
package/dist/DebounceHelper.js
CHANGED
|
@@ -1,95 +1,122 @@
|
|
|
1
|
-
import { __awaiter, __generator } from "tslib";
|
|
2
|
-
var stateSymbol = Symbol("neo.debounce.helper");
|
|
3
|
-
var DebounceHelper = /** @class */ (function () {
|
|
4
|
-
/**
|
|
5
|
-
* Creates a debounce helper instance.
|
|
6
|
-
* @param callback Callback function to run. All state passed to the execute method from current and previous calls will be passed to the callback.
|
|
7
|
-
* @param delayMs Delay in milliseconds.
|
|
8
|
-
*/
|
|
9
|
-
function DebounceHelper(callback, delayMs) {
|
|
10
|
-
if (delayMs === void 0) { delayMs = 0; }
|
|
11
|
-
this.callback = callback;
|
|
12
|
-
this.delayMs = delayMs;
|
|
13
|
-
this.state = [];
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* @param
|
|
22
|
-
* @param
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
helper.
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
1
|
+
import { __awaiter, __generator } from "tslib";
|
|
2
|
+
var stateSymbol = Symbol("neo.debounce.helper");
|
|
3
|
+
var DebounceHelper = /** @class */ (function () {
|
|
4
|
+
/**
|
|
5
|
+
* Creates a debounce helper instance.
|
|
6
|
+
* @param callback Callback function to run. All state passed to the execute method from current and previous calls will be passed to the callback.
|
|
7
|
+
* @param delayMs Delay in milliseconds.
|
|
8
|
+
*/
|
|
9
|
+
function DebounceHelper(callback, delayMs) {
|
|
10
|
+
if (delayMs === void 0) { delayMs = 0; }
|
|
11
|
+
this.callback = callback;
|
|
12
|
+
this.delayMs = delayMs;
|
|
13
|
+
this.state = [];
|
|
14
|
+
this.executeCallback = this.executeCallback.bind(this);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Debounce a function so that it is only called after a period of inactivity.
|
|
18
|
+
* @param syncInstance The instance to synchronize against.
|
|
19
|
+
* This should always be the same object for the function you are debouncing.
|
|
20
|
+
* Do not debounce different functions on the same sync instance. Rather create a DebounceHelper instance for each function.
|
|
21
|
+
* @param fn Function to call when the delay has elapsed.
|
|
22
|
+
* @param delayMs Delay in milliseconds.
|
|
23
|
+
* @param state State to pass to debounced method as an array of values for each time debounce was called.
|
|
24
|
+
*/
|
|
25
|
+
DebounceHelper.debounce = function (syncInstance, callback, delayMs, state) {
|
|
26
|
+
var helper = syncInstance[stateSymbol];
|
|
27
|
+
if (!helper) {
|
|
28
|
+
helper = new DebounceHelper(callback, delayMs);
|
|
29
|
+
syncInstance[stateSymbol] = helper;
|
|
30
|
+
}
|
|
31
|
+
helper.callback = callback;
|
|
32
|
+
helper.delayMs = delayMs;
|
|
33
|
+
return helper.execute(state);
|
|
34
|
+
};
|
|
35
|
+
/** Cancels pending execution of the callback. Pending promise will be resolved with cancelled: true. */
|
|
36
|
+
DebounceHelper.cancelPending = function (syncInstance) {
|
|
37
|
+
var helper = syncInstance[stateSymbol];
|
|
38
|
+
if (helper) {
|
|
39
|
+
return helper.cancelPending();
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
return [];
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
/** Fires the latest callback immediately. Pending promise from execute() will also be resolved with the return value of the callback. */
|
|
46
|
+
DebounceHelper.executeImmediate = function (syncInstance) {
|
|
47
|
+
var helper = syncInstance[stateSymbol];
|
|
48
|
+
if (helper) {
|
|
49
|
+
return helper.executeImmediate();
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
return Promise.resolve();
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Waits the interval defined in the constructor, then executes the callback.
|
|
57
|
+
* The callback will not execute if execute is called again within the interval.
|
|
58
|
+
* @param state State to pass to the callback.
|
|
59
|
+
*/
|
|
60
|
+
DebounceHelper.prototype.execute = function (state) {
|
|
61
|
+
var _this = this;
|
|
62
|
+
this.cancelPending();
|
|
63
|
+
if (state !== undefined)
|
|
64
|
+
this.state.push(state);
|
|
65
|
+
return new Promise(function (resolve, reject) {
|
|
66
|
+
_this.currentResolver = resolve;
|
|
67
|
+
_this.currentRejection = reject;
|
|
68
|
+
_this.timer = setTimeout(_this.executeCallback, _this.delayMs);
|
|
69
|
+
});
|
|
70
|
+
};
|
|
71
|
+
DebounceHelper.prototype.executeCallback = function () {
|
|
72
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
73
|
+
var returnValue, e_1;
|
|
74
|
+
return __generator(this, function (_a) {
|
|
75
|
+
switch (_a.label) {
|
|
76
|
+
case 0:
|
|
77
|
+
_a.trys.push([0, 2, 3, 4]);
|
|
78
|
+
return [4 /*yield*/, Promise.resolve(this.callback(this.state))];
|
|
79
|
+
case 1:
|
|
80
|
+
returnValue = _a.sent();
|
|
81
|
+
if (this.currentResolver) {
|
|
82
|
+
this.currentResolver({ cancelled: false, value: returnValue });
|
|
83
|
+
}
|
|
84
|
+
return [3 /*break*/, 4];
|
|
85
|
+
case 2:
|
|
86
|
+
e_1 = _a.sent();
|
|
87
|
+
if (this.currentRejection) {
|
|
88
|
+
this.currentRejection(e_1);
|
|
89
|
+
}
|
|
90
|
+
return [3 /*break*/, 4];
|
|
91
|
+
case 3:
|
|
92
|
+
this.currentResolver = undefined;
|
|
93
|
+
this.currentRejection = undefined;
|
|
94
|
+
this.state = [];
|
|
95
|
+
return [7 /*endfinally*/];
|
|
96
|
+
case 4: return [2 /*return*/];
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
};
|
|
101
|
+
/** Cancels pending execution of the callback. Pending promise will be resolved with cancelled: true. */
|
|
102
|
+
DebounceHelper.prototype.cancelPending = function () {
|
|
103
|
+
if (this.timer)
|
|
104
|
+
clearTimeout(this.timer);
|
|
105
|
+
var state = this.state;
|
|
106
|
+
if (this.currentResolver) {
|
|
107
|
+
this.currentResolver({ cancelled: true });
|
|
108
|
+
this.currentResolver = undefined;
|
|
109
|
+
this.currentRejection = undefined;
|
|
110
|
+
this.state = [];
|
|
111
|
+
}
|
|
112
|
+
return state;
|
|
113
|
+
};
|
|
114
|
+
/** Fires the latest callback immediately. Pending promise from execute() will also be resolved with the return value of the callback. */
|
|
115
|
+
DebounceHelper.prototype.executeImmediate = function () {
|
|
116
|
+
if (this.timer)
|
|
117
|
+
clearTimeout(this.timer);
|
|
118
|
+
return this.executeCallback();
|
|
119
|
+
};
|
|
120
|
+
return DebounceHelper;
|
|
121
|
+
}());
|
|
122
|
+
export { DebounceHelper };
|
package/dist/Extensions.d.ts
CHANGED
|
@@ -1,82 +1,82 @@
|
|
|
1
|
-
import { IPropertyInstance } from './Model/PropertyInstance';
|
|
2
|
-
import PropertyInfo from './Model/PropertyInfo';
|
|
3
|
-
import { DataType } from './Misc';
|
|
4
|
-
import Decimal from 'decimal.js-light';
|
|
5
|
-
|
|
6
|
-
item: T;
|
|
7
|
-
details: T[];
|
|
8
|
-
};
|
|
9
|
-
declare global {
|
|
10
|
-
interface String {
|
|
11
|
-
/** .Net like string.format. E.g. "{0} world".format("hello") */
|
|
12
|
-
format(...args: string[]): string;
|
|
13
|
-
/** Capitalises the first letter of a string, and adds spaces before other capitals. */
|
|
14
|
-
readable(): string;
|
|
15
|
-
}
|
|
16
|
-
interface NumberConstructor {
|
|
17
|
-
ignorePrecision: number;
|
|
18
|
-
}
|
|
19
|
-
interface Number {
|
|
20
|
-
compareGT(y: number): boolean;
|
|
21
|
-
compareGTE(y: number): boolean;
|
|
22
|
-
compareLT(y: number): boolean;
|
|
23
|
-
compareLTE(y: number): boolean;
|
|
24
|
-
compareE(y: number): boolean;
|
|
25
|
-
compareNE(y: number): boolean;
|
|
26
|
-
}
|
|
27
|
-
interface Array<T> {
|
|
28
|
-
/** Sorts an array by the property name. */
|
|
29
|
-
sortBy(propertyName: keyof T, direction?: "asc" | "desc", dataType?: DataType): Array<T>;
|
|
30
|
-
/** Sorts an array using the value returned for each item by valueFn. */
|
|
31
|
-
sortBy(valueFn: (item: T) => any, direction?: "asc" | "desc", dataType?: DataType): Array<T>;
|
|
32
|
-
/** Removes the item if found in the array. */
|
|
33
|
-
remove(item: T): void;
|
|
34
|
-
/**
|
|
35
|
-
* Returns the sum for a given property.
|
|
36
|
-
*/
|
|
37
|
-
sum<V extends number | Decimal = number>(propertyName: keyof T | IPropertyInstance<V> | PropertyInfo | ((item: T) => number)): V;
|
|
38
|
-
/**
|
|
39
|
-
* Returns the sum for a given property.
|
|
40
|
-
*/
|
|
41
|
-
sumDecimal(propertyName: keyof T | IPropertyInstance<Decimal> | PropertyInfo | ((item: T) => Decimal)): Decimal;
|
|
42
|
-
/**
|
|
43
|
-
* Returns the average for a given property.
|
|
44
|
-
*/
|
|
45
|
-
average(propertyName: keyof T | IPropertyInstance | PropertyInfo | ((item: T) => number)): number;
|
|
46
|
-
/**
|
|
47
|
-
* Group a list by the provided key.
|
|
48
|
-
* @param keyFn Function which returns the key for grouping.
|
|
49
|
-
* @param selector Callback which returns a grouped record. The arguments are the key value, first item with this key, and array of items under this key.
|
|
50
|
-
*/
|
|
51
|
-
groupBy<G>(keyFn: (item: T) => string | number, selector: (key: string, item: T, details: T[]) => G): G[];
|
|
52
|
-
/**
|
|
53
|
-
* Group a list by the provided key.
|
|
54
|
-
* @param keyFn Function which returns the key for grouping.
|
|
55
|
-
*/
|
|
56
|
-
groupBy(keyFn: (item: T) => string | number): Group<T>[];
|
|
57
|
-
/**
|
|
58
|
-
* Group a list by the provided key.
|
|
59
|
-
* @param key Key property.
|
|
60
|
-
* @param selector Callback which returns a grouped record. The arguments are the key value, first item with this key, and array of items under this key.
|
|
61
|
-
*/
|
|
62
|
-
groupBy<G>(key: keyof T, selector: (key: string, item: T, details: T[]) => G): G[];
|
|
63
|
-
/**
|
|
64
|
-
* Create an index from the array. Items with duplicate keys will result in the last item being added to the index.
|
|
65
|
-
* @param keyFn Function which returns the key value from each item.
|
|
66
|
-
*/
|
|
67
|
-
toDictionary<K extends string | number>(keyFn: (item: T) => K): {
|
|
68
|
-
[index in K]: T;
|
|
69
|
-
};
|
|
70
|
-
toDictionary<K extends string | number, V>(keyFn: (item: T) => K, valueFn: (item: T) => V): {
|
|
71
|
-
[index in K]: V;
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
interface Map<K, V> {
|
|
75
|
-
/**
|
|
76
|
-
* Adds the value if it does not exists, and returns it.
|
|
77
|
-
* @param valueCallback Callback function which returns a value for the key.
|
|
78
|
-
*/
|
|
79
|
-
getOrAdd?(key: K, valueCallback: (key: K) => V): V;
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
export {};
|
|
1
|
+
import { IPropertyInstance } from './Model/PropertyInstance';
|
|
2
|
+
import PropertyInfo from './Model/PropertyInfo';
|
|
3
|
+
import { DataType } from './Misc';
|
|
4
|
+
import Decimal from 'decimal.js-light';
|
|
5
|
+
type Group<T> = {
|
|
6
|
+
item: T;
|
|
7
|
+
details: T[];
|
|
8
|
+
};
|
|
9
|
+
declare global {
|
|
10
|
+
interface String {
|
|
11
|
+
/** .Net like string.format. E.g. "{0} world".format("hello") */
|
|
12
|
+
format(...args: string[]): string;
|
|
13
|
+
/** Capitalises the first letter of a string, and adds spaces before other capitals. */
|
|
14
|
+
readable(): string;
|
|
15
|
+
}
|
|
16
|
+
interface NumberConstructor {
|
|
17
|
+
ignorePrecision: number;
|
|
18
|
+
}
|
|
19
|
+
interface Number {
|
|
20
|
+
compareGT(y: number): boolean;
|
|
21
|
+
compareGTE(y: number): boolean;
|
|
22
|
+
compareLT(y: number): boolean;
|
|
23
|
+
compareLTE(y: number): boolean;
|
|
24
|
+
compareE(y: number): boolean;
|
|
25
|
+
compareNE(y: number): boolean;
|
|
26
|
+
}
|
|
27
|
+
interface Array<T> {
|
|
28
|
+
/** Sorts an array by the property name. */
|
|
29
|
+
sortBy(propertyName: keyof T, direction?: "asc" | "desc", dataType?: DataType): Array<T>;
|
|
30
|
+
/** Sorts an array using the value returned for each item by valueFn. */
|
|
31
|
+
sortBy(valueFn: (item: T) => any, direction?: "asc" | "desc", dataType?: DataType): Array<T>;
|
|
32
|
+
/** Removes the item if found in the array. */
|
|
33
|
+
remove(item: T): void;
|
|
34
|
+
/**
|
|
35
|
+
* Returns the sum for a given property.
|
|
36
|
+
*/
|
|
37
|
+
sum<V extends number | Decimal = number>(propertyName: keyof T | IPropertyInstance<V> | PropertyInfo | ((item: T) => number)): V;
|
|
38
|
+
/**
|
|
39
|
+
* Returns the sum for a given property.
|
|
40
|
+
*/
|
|
41
|
+
sumDecimal(propertyName: keyof T | IPropertyInstance<Decimal> | PropertyInfo | ((item: T) => Decimal)): Decimal;
|
|
42
|
+
/**
|
|
43
|
+
* Returns the average for a given property.
|
|
44
|
+
*/
|
|
45
|
+
average(propertyName: keyof T | IPropertyInstance | PropertyInfo | ((item: T) => number)): number;
|
|
46
|
+
/**
|
|
47
|
+
* Group a list by the provided key.
|
|
48
|
+
* @param keyFn Function which returns the key for grouping.
|
|
49
|
+
* @param selector Callback which returns a grouped record. The arguments are the key value, first item with this key, and array of items under this key.
|
|
50
|
+
*/
|
|
51
|
+
groupBy<G>(keyFn: (item: T) => string | number, selector: (key: string, item: T, details: T[]) => G): G[];
|
|
52
|
+
/**
|
|
53
|
+
* Group a list by the provided key.
|
|
54
|
+
* @param keyFn Function which returns the key for grouping.
|
|
55
|
+
*/
|
|
56
|
+
groupBy(keyFn: (item: T) => string | number): Group<T>[];
|
|
57
|
+
/**
|
|
58
|
+
* Group a list by the provided key.
|
|
59
|
+
* @param key Key property.
|
|
60
|
+
* @param selector Callback which returns a grouped record. The arguments are the key value, first item with this key, and array of items under this key.
|
|
61
|
+
*/
|
|
62
|
+
groupBy<G>(key: keyof T, selector: (key: string, item: T, details: T[]) => G): G[];
|
|
63
|
+
/**
|
|
64
|
+
* Create an index from the array. Items with duplicate keys will result in the last item being added to the index.
|
|
65
|
+
* @param keyFn Function which returns the key value from each item.
|
|
66
|
+
*/
|
|
67
|
+
toDictionary<K extends string | number>(keyFn: (item: T) => K): {
|
|
68
|
+
[index in K]: T;
|
|
69
|
+
};
|
|
70
|
+
toDictionary<K extends string | number, V>(keyFn: (item: T) => K, valueFn: (item: T) => V): {
|
|
71
|
+
[index in K]: V;
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
interface Map<K, V> {
|
|
75
|
+
/**
|
|
76
|
+
* Adds the value if it does not exists, and returns it.
|
|
77
|
+
* @param valueCallback Callback function which returns a value for the key.
|
|
78
|
+
*/
|
|
79
|
+
getOrAdd?(key: K, valueCallback: (key: K) => V): V;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
export {};
|