@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.
Files changed (296) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/ApiClient/ApiClientBase.d.ts +5 -5
  3. package/dist/ApiClient/ApiClientBase.js +13 -13
  4. package/dist/ApiClient/ReadApiClient.d.ts +16 -16
  5. package/dist/ApiClient/ReadApiClient.js +24 -24
  6. package/dist/ApiClient/UpdateableApiClient.d.ts +28 -28
  7. package/dist/ApiClient/UpdateableApiClient.js +33 -33
  8. package/dist/AppServices/AppService.d.ts +46 -46
  9. package/dist/AppServices/AppService.js +25 -25
  10. package/dist/AppServices/Config/ConfigModel.d.ts +21 -20
  11. package/dist/AppServices/Config/ConfigModel.js +28 -17
  12. package/dist/AppServices/Config/ConfigService.d.ts +15 -15
  13. package/dist/AppServices/Config/ConfigService.js +49 -53
  14. package/dist/AppServices/Module.d.ts +11 -11
  15. package/dist/AppServices/Module.js +13 -13
  16. package/dist/AppServices/NeoContainer.d.ts +22 -22
  17. package/dist/AppServices/NeoContainer.js +42 -42
  18. package/dist/AppServices/NeoModule.d.ts +3 -3
  19. package/dist/AppServices/NeoModule.js +30 -30
  20. package/dist/AppServices/NeoTypes.d.ts +61 -61
  21. package/dist/AppServices/NeoTypes.js +42 -42
  22. package/dist/AppServices/ServiceIdentifier.d.ts +23 -23
  23. package/dist/AppServices/ServiceIdentifier.js +38 -39
  24. package/dist/AppServices/index.d.ts +7 -7
  25. package/dist/AppServices/index.js +7 -7
  26. package/dist/Components/AnimationHelper.d.ts +69 -69
  27. package/dist/Components/AnimationHelper.js +182 -182
  28. package/dist/Components/BootstrapHelpers.d.ts +8 -8
  29. package/dist/Components/BootstrapHelpers.js +30 -30
  30. package/dist/Components/BootstrapTypes.d.ts +35 -35
  31. package/dist/Components/BootstrapTypes.js +1 -1
  32. package/dist/Components/ButtonOptions.d.ts +63 -61
  33. package/dist/Components/ButtonOptions.js +1 -1
  34. package/dist/Components/ContextMenu/ContextMenu.d.ts +16 -16
  35. package/dist/Components/ContextMenu/ContextMenu.js +1 -1
  36. package/dist/Components/ContextMenu/MenuUtils.d.ts +16 -16
  37. package/dist/Components/ContextMenu/MenuUtils.js +34 -34
  38. package/dist/Components/DatePicker/DatePicker.d.ts +70 -69
  39. package/dist/Components/DatePicker/DatePicker.js +502 -487
  40. package/dist/Components/DatePicker/DatePickerOptions.d.ts +43 -34
  41. package/dist/Components/DatePicker/DatePickerOptions.js +33 -33
  42. package/dist/Components/ErrorHandler.d.ts +59 -55
  43. package/dist/Components/ErrorHandler.js +210 -138
  44. package/dist/Components/FileManager/BoundFileManager.d.ts +18 -18
  45. package/dist/Components/FileManager/BoundFileManager.js +60 -60
  46. package/dist/Components/FileManager/FileManager.d.ts +80 -78
  47. package/dist/Components/FileManager/FileManager.js +277 -257
  48. package/dist/Components/FileManager/FileUploadBatch.d.ts +37 -37
  49. package/dist/Components/FileManager/FileUploadBatch.js +83 -82
  50. package/dist/Components/FileManager/IFileManagerOptions.d.ts +42 -42
  51. package/dist/Components/FileManager/IFileManagerOptions.js +1 -1
  52. package/dist/Components/FormOptions.d.ts +34 -34
  53. package/dist/Components/FormOptions.js +1 -1
  54. package/dist/Components/ICollapsableOptions.d.ts +11 -11
  55. package/dist/Components/ICollapsableOptions.js +1 -1
  56. package/dist/Components/Modal/ModalHelper.d.ts +31 -31
  57. package/dist/Components/Modal/ModalHelper.js +174 -174
  58. package/dist/Components/Modal/ModalOptions.d.ts +61 -61
  59. package/dist/Components/Modal/ModalOptions.js +1 -1
  60. package/dist/Components/Modal/ModalStore.d.ts +32 -32
  61. package/dist/Components/Modal/ModalStore.js +82 -82
  62. package/dist/Components/Modal/ModalUtils.d.ts +61 -61
  63. package/dist/Components/Modal/ModalUtils.js +109 -109
  64. package/dist/Components/Notifications/INotificationHelper.d.ts +56 -56
  65. package/dist/Components/Notifications/INotificationHelper.js +1 -1
  66. package/dist/Components/Notifications/Notification.d.ts +32 -32
  67. package/dist/Components/Notifications/Notification.js +26 -27
  68. package/dist/Components/Notifications/NotificationHelper.d.ts +63 -63
  69. package/dist/Components/Notifications/NotificationHelper.js +111 -112
  70. package/dist/Components/Notifications/NotificationStore.d.ts +34 -34
  71. package/dist/Components/Notifications/NotificationStore.js +78 -79
  72. package/dist/Components/PositionHelper.d.ts +10 -10
  73. package/dist/Components/PositionHelper.js +43 -43
  74. package/dist/Components/TaskRunner/Decorators.d.ts +6 -6
  75. package/dist/Components/TaskRunner/Decorators.js +24 -24
  76. package/dist/Components/TaskRunner/ProgressState.d.ts +22 -22
  77. package/dist/Components/TaskRunner/ProgressState.js +71 -72
  78. package/dist/Components/TaskRunner/TaskRunner.d.ts +114 -114
  79. package/dist/Components/TaskRunner/TaskRunner.js +253 -244
  80. package/dist/Components/TooltipOptions.d.ts +8 -8
  81. package/dist/Components/TooltipOptions.js +1 -1
  82. package/dist/Components/index.d.ts +22 -22
  83. package/dist/Components/index.js +13 -13
  84. package/dist/ConnectionManager.d.ts +45 -45
  85. package/dist/ConnectionManager.js +60 -61
  86. package/dist/Data/ApiDataSource.d.ts +46 -46
  87. package/dist/Data/ApiDataSource.js +140 -144
  88. package/dist/Data/AsyncDataSource.d.ts +35 -35
  89. package/dist/Data/AsyncDataSource.js +79 -80
  90. package/dist/Data/CacheService.d.ts +40 -40
  91. package/dist/Data/CacheService.js +63 -64
  92. package/dist/Data/DataCacheEntry.d.ts +42 -42
  93. package/dist/Data/DataCacheEntry.js +80 -80
  94. package/dist/Data/DataView.d.ts +43 -43
  95. package/dist/Data/DataView.js +173 -172
  96. package/dist/Data/Deserialiser.d.ts +42 -42
  97. package/dist/Data/Deserialiser.js +255 -255
  98. package/dist/Data/Paging/PageManager.d.ts +167 -167
  99. package/dist/Data/Paging/PageManager.js +323 -323
  100. package/dist/Data/Paging/PageRequest.d.ts +24 -24
  101. package/dist/Data/Paging/PageRequest.js +38 -39
  102. package/dist/Data/Paging/PageResult.d.ts +10 -10
  103. package/dist/Data/Paging/PageResult.js +14 -14
  104. package/dist/Data/Serialiser.d.ts +41 -41
  105. package/dist/Data/Serialiser.js +201 -201
  106. package/dist/Data/SortOperation.d.ts +8 -8
  107. package/dist/Data/SortOperation.js +26 -26
  108. package/dist/Data/StaticDataSource.d.ts +9 -9
  109. package/dist/Data/StaticDataSource.js +27 -27
  110. package/dist/Data/WindowedDataView.d.ts +8 -8
  111. package/dist/Data/WindowedDataView.js +49 -50
  112. package/dist/Data/index.d.ts +15 -15
  113. package/dist/Data/index.js +15 -15
  114. package/dist/Dates/DateUtils.d.ts +47 -47
  115. package/dist/Dates/DateUtils.js +226 -226
  116. package/dist/Dates/TimeSpan.d.ts +24 -24
  117. package/dist/Dates/TimeSpan.js +46 -46
  118. package/dist/DebounceHelper.d.ts +44 -38
  119. package/dist/DebounceHelper.js +122 -95
  120. package/dist/Extensions.d.ts +82 -82
  121. package/dist/Extensions.js +182 -182
  122. package/dist/FileUtils.d.ts +6 -6
  123. package/dist/FileUtils.js +37 -37
  124. package/dist/Globals.d.ts +19 -19
  125. package/dist/Globals.js +41 -41
  126. package/dist/JsonSchema/ClassMetadata.d.ts +25 -25
  127. package/dist/JsonSchema/ClassMetadata.js +53 -53
  128. package/dist/JsonSchema/JsonData.d.ts +16 -16
  129. package/dist/JsonSchema/JsonData.js +97 -97
  130. package/dist/JsonSchema/JsonSchemaTypes.d.ts +37 -37
  131. package/dist/JsonSchema/JsonSchemaTypes.js +1 -1
  132. package/dist/JsonSchema/PropertyMetadata.d.ts +8 -8
  133. package/dist/JsonSchema/PropertyMetadata.js +8 -8
  134. package/dist/JsonSchema/TypeCache.d.ts +16 -16
  135. package/dist/JsonSchema/TypeCache.js +44 -44
  136. package/dist/JsonSchema/TypeMetadata.d.ts +45 -45
  137. package/dist/JsonSchema/TypeMetadata.js +170 -170
  138. package/dist/JsonSchema/index.d.ts +7 -7
  139. package/dist/JsonSchema/index.js +6 -6
  140. package/dist/Localisation/ILocalisationService.d.ts +11 -11
  141. package/dist/Localisation/ILocalisationService.js +1 -1
  142. package/dist/Localisation/LocalisationService.d.ts +4 -4
  143. package/dist/Localisation/LocalisationService.js +17 -17
  144. package/dist/Localisation/index.d.ts +1 -1
  145. package/dist/Localisation/index.js +1 -1
  146. package/dist/Misc.d.ts +6 -6
  147. package/dist/Misc.js +6 -6
  148. package/dist/Model/BaseModels/AuditValues.d.ts +12 -12
  149. package/dist/Model/BaseModels/AuditValues.js +46 -48
  150. package/dist/Model/BaseModels/CriteriaBase.d.ts +18 -16
  151. package/dist/Model/BaseModels/CriteriaBase.js +45 -34
  152. package/dist/Model/BaseModels/FileDescriptorBase.d.ts +12 -12
  153. package/dist/Model/BaseModels/FileDescriptorBase.js +22 -22
  154. package/dist/Model/BaseModels/ReasonedUserEvent.d.ts +5 -4
  155. package/dist/Model/BaseModels/ReasonedUserEvent.js +23 -19
  156. package/dist/Model/BaseModels/UserEvent.d.ts +9 -8
  157. package/dist/Model/BaseModels/UserEvent.js +36 -32
  158. package/dist/Model/BindableBase.d.ts +46 -40
  159. package/dist/Model/BindableBase.js +79 -76
  160. package/dist/Model/Decorators.d.ts +47 -44
  161. package/dist/Model/Decorators.js +182 -177
  162. package/dist/Model/EnumHelper.d.ts +54 -54
  163. package/dist/Model/EnumHelper.js +104 -100
  164. package/dist/Model/IAutoRunner.d.ts +5 -5
  165. package/dist/Model/IAutoRunner.js +1 -1
  166. package/dist/Model/IModelBase.d.ts +92 -79
  167. package/dist/Model/IModelBase.js +1 -1
  168. package/dist/Model/IModelCreatorBase.d.ts +9 -9
  169. package/dist/Model/IModelCreatorBase.js +1 -1
  170. package/dist/Model/List.d.ts +79 -77
  171. package/dist/Model/List.js +208 -198
  172. package/dist/Model/LookupBase.d.ts +13 -6
  173. package/dist/Model/LookupBase.js +19 -10
  174. package/dist/Model/Misc.d.ts +83 -81
  175. package/dist/Model/Misc.js +59 -59
  176. package/dist/Model/ModelBase.d.ts +88 -86
  177. package/dist/Model/ModelBase.js +182 -180
  178. package/dist/Model/ModelCreatorBase.d.ts +24 -23
  179. package/dist/Model/ModelCreatorBase.js +92 -92
  180. package/dist/Model/ModelFieldInfo.d.ts +29 -12
  181. package/dist/Model/ModelFieldInfo.js +35 -26
  182. package/dist/Model/ModelGraphTraverser.d.ts +35 -35
  183. package/dist/Model/ModelGraphTraverser.js +101 -99
  184. package/dist/Model/NeoModel.d.ts +6 -6
  185. package/dist/Model/NeoModel.js +13 -13
  186. package/dist/Model/NeoTypeInfo.d.ts +52 -41
  187. package/dist/Model/NeoTypeInfo.js +300 -250
  188. package/dist/Model/ObservableProperty.d.ts +8 -8
  189. package/dist/Model/ObservableProperty.js +41 -41
  190. package/dist/Model/ObservableValue.d.ts +9 -9
  191. package/dist/Model/ObservableValue.js +25 -26
  192. package/dist/Model/PropertyInfo.d.ts +83 -81
  193. package/dist/Model/PropertyInfo.js +138 -137
  194. package/dist/Model/PropertyInstance.d.ts +84 -48
  195. package/dist/Model/PropertyInstance.js +173 -113
  196. package/dist/Model/ValueObject.d.ts +3 -3
  197. package/dist/Model/ValueObject.js +10 -10
  198. package/dist/Model/index.d.ts +15 -14
  199. package/dist/Model/index.js +13 -12
  200. package/dist/NumberUtils.d.ts +63 -49
  201. package/dist/NumberUtils.js +247 -197
  202. package/dist/Routing/IMenuItemProvider.d.ts +9 -9
  203. package/dist/Routing/IMenuItemProvider.js +1 -1
  204. package/dist/Routing/IMenuRoute.d.ts +18 -18
  205. package/dist/Routing/IMenuRoute.js +1 -1
  206. package/dist/Routing/INavigationHelper.d.ts +7 -7
  207. package/dist/Routing/INavigationHelper.js +1 -1
  208. package/dist/Routing/IPageLeaveHandler.d.ts +23 -23
  209. package/dist/Routing/IPageLeaveHandler.js +7 -7
  210. package/dist/Routing/IRoute.d.ts +27 -27
  211. package/dist/Routing/IRoute.js +1 -1
  212. package/dist/Routing/IRouteSecurityService.d.ts +14 -14
  213. package/dist/Routing/IRouteSecurityService.js +1 -1
  214. package/dist/Routing/MenuItemProvider.d.ts +17 -17
  215. package/dist/Routing/MenuItemProvider.js +53 -54
  216. package/dist/Routing/RouteSecurityService.d.ts +18 -18
  217. package/dist/Routing/RouteSecurityService.js +35 -36
  218. package/dist/Routing/index.d.ts +7 -7
  219. package/dist/Routing/index.js +3 -3
  220. package/dist/Security/IAuthenticationService.d.ts +41 -36
  221. package/dist/Security/IAuthenticationService.js +1 -1
  222. package/dist/Security/IAuthorisationService.d.ts +11 -11
  223. package/dist/Security/IAuthorisationService.js +1 -1
  224. package/dist/Security/ILoginErrorHandler.d.ts +4 -4
  225. package/dist/Security/ILoginErrorHandler.js +1 -1
  226. package/dist/Security/ISecurityService.d.ts +10 -10
  227. package/dist/Security/ISecurityService.js +1 -1
  228. package/dist/Security/IUser.d.ts +10 -10
  229. package/dist/Security/IUser.js +1 -1
  230. package/dist/Security/IUserRole.d.ts +6 -6
  231. package/dist/Security/IUserRole.js +1 -1
  232. package/dist/Security/LoginErrorHandler.d.ts +15 -15
  233. package/dist/Security/LoginErrorHandler.js +97 -98
  234. package/dist/Security/Oidc/OidcAuthService.d.ts +67 -60
  235. package/dist/Security/Oidc/OidcAuthService.js +216 -189
  236. package/dist/Security/Oidc/OidcTypes.d.ts +46 -29
  237. package/dist/Security/Oidc/OidcTypes.js +1 -1
  238. package/dist/Security/Oidc/OidcUser.d.ts +9 -9
  239. package/dist/Security/Oidc/OidcUser.js +33 -33
  240. package/dist/Security/SecurityService.d.ts +12 -12
  241. package/dist/Security/SecurityService.js +33 -34
  242. package/dist/Security/SignInResult.d.ts +13 -13
  243. package/dist/Security/SignInResult.js +8 -8
  244. package/dist/Security/User.d.ts +12 -12
  245. package/dist/Security/User.js +24 -24
  246. package/dist/Security/index.d.ts +10 -10
  247. package/dist/Security/index.js +5 -5
  248. package/dist/Settings.d.ts +71 -57
  249. package/dist/Settings.js +100 -87
  250. package/dist/SignalR/HubBase.d.ts +70 -70
  251. package/dist/SignalR/HubBase.js +164 -164
  252. package/dist/SignalR/HubReceiver.d.ts +11 -11
  253. package/dist/SignalR/HubReceiver.js +25 -25
  254. package/dist/SignalR/HubSubscription.d.ts +12 -12
  255. package/dist/SignalR/HubSubscription.js +14 -14
  256. package/dist/SignalR/index.d.ts +3 -3
  257. package/dist/SignalR/index.js +1 -1
  258. package/dist/StringUtils.d.ts +7 -7
  259. package/dist/StringUtils.js +24 -24
  260. package/dist/Utils.d.ts +81 -80
  261. package/dist/Utils.js +220 -218
  262. package/dist/Validation/Decorators.d.ts +12 -12
  263. package/dist/Validation/Decorators.js +52 -52
  264. package/dist/Validation/DisplayHelper.d.ts +20 -19
  265. package/dist/Validation/DisplayHelper.js +104 -104
  266. package/dist/Validation/Misc.d.ts +10 -10
  267. package/dist/Validation/Misc.js +11 -11
  268. package/dist/Validation/ModelProxy.d.ts +20 -20
  269. package/dist/Validation/ModelProxy.js +46 -46
  270. package/dist/Validation/RuleContext.d.ts +86 -86
  271. package/dist/Validation/RuleContext.js +130 -130
  272. package/dist/Validation/Rules.d.ts +70 -70
  273. package/dist/Validation/Rules.js +177 -177
  274. package/dist/Validation/ValidationHelpers.d.ts +12 -12
  275. package/dist/Validation/ValidationHelpers.js +57 -57
  276. package/dist/Validation/ValidationRules.d.ts +18 -18
  277. package/dist/Validation/ValidationRules.js +34 -34
  278. package/dist/Validation/ValidationState.d.ts +42 -42
  279. package/dist/Validation/ValidationState.js +74 -74
  280. package/dist/Validation/Validators/IModelValidator.d.ts +28 -24
  281. package/dist/Validation/Validators/IModelValidator.js +1 -1
  282. package/dist/Validation/Validators/IPropertyValidator.d.ts +21 -21
  283. package/dist/Validation/Validators/IPropertyValidator.js +15 -15
  284. package/dist/Validation/Validators/ModelValidator.d.ts +46 -45
  285. package/dist/Validation/Validators/ModelValidator.js +143 -137
  286. package/dist/Validation/Validators/PropertyValidator.d.ts +21 -21
  287. package/dist/Validation/Validators/PropertyValidator.js +64 -67
  288. package/dist/Validation/Validators/RuleValidator.d.ts +19 -19
  289. package/dist/Validation/Validators/RuleValidator.js +51 -55
  290. package/dist/Validation/index.d.ts +9 -9
  291. package/dist/Validation/index.js +7 -7
  292. package/dist/Views/IViewBase.d.ts +5 -5
  293. package/dist/Views/IViewBase.js +1 -1
  294. package/dist/index.d.ts +37 -36
  295. package/dist/index.js +44 -43
  296. package/package.json +11 -10
@@ -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
- * Creates a debounce helper instance.
14
- * @param callback Callback function to run. All state passed to the execute method from current and previous calls will be passed to the callback.
15
- * @param delayMs Delay in milliseconds.
16
- */
17
- constructor(callback: (state: TState[]) => T | Promise<T>, delayMs?: number);
18
- /**
19
- * Debounce a function so that it is only called after a period of inactivity.
20
- * @param syncInstance The instance to synchronize against.
21
- * This should always be the same object for the function you are debouncing.
22
- * Do not debounce different functions on the same sync instance. Rather create a DebounceHelper instance for each function.
23
- * @param fn Function to call when the delay has elapsed.
24
- * @param delayMs Delay in milliseconds.
25
- * @param state State to pass to debounced method as an array of values for each time debounce was called.
26
- */
27
- static debounce<T = any, TState = any>(syncInstance: any, callback: (state: TState[]) => T | Promise<T>, delayMs: number, state?: TState): Promise<IDebounceResult<T>>;
28
- /** Cancels pending execution of the callback. Any pending promises will be resolved with cancelled: true. */
29
- static cancelPending<TState = any>(syncInstance: any): TState[];
30
- /**
31
- * Waits the interval defined in the constructor, then executes the callback.
32
- * The callback will not execute if execute is called again within the interval.
33
- * @param state State to pass to the callback.
34
- */
35
- execute(state?: TState): Promise<IDebounceResult<T>>;
36
- /** Cancels pending execution of the callback. Any pending promises will be resolved with cancelled: true. */
37
- cancelPending(): TState[];
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
+ }
@@ -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
- * Debounce a function so that it is only called after a period of inactivity.
17
- * @param syncInstance The instance to synchronize against.
18
- * This should always be the same object for the function you are debouncing.
19
- * Do not debounce different functions on the same sync instance. Rather create a DebounceHelper instance for each function.
20
- * @param fn Function to call when the delay has elapsed.
21
- * @param delayMs Delay in milliseconds.
22
- * @param state State to pass to debounced method as an array of values for each time debounce was called.
23
- */
24
- DebounceHelper.debounce = function (syncInstance, callback, delayMs, state) {
25
- var helper = syncInstance[stateSymbol];
26
- if (!helper) {
27
- helper = new DebounceHelper(callback, delayMs);
28
- syncInstance[stateSymbol] = helper;
29
- }
30
- helper.callback = callback;
31
- helper.delayMs = delayMs;
32
- return helper.execute(state);
33
- };
34
- /** Cancels pending execution of the callback. Any pending promises will be resolved with cancelled: true. */
35
- DebounceHelper.cancelPending = function (syncInstance) {
36
- var helper = syncInstance[stateSymbol];
37
- if (helper) {
38
- return helper.cancelPending();
39
- }
40
- else {
41
- return [];
42
- }
43
- };
44
- /**
45
- * Waits the interval defined in the constructor, then executes the callback.
46
- * The callback will not execute if execute is called again within the interval.
47
- * @param state State to pass to the callback.
48
- */
49
- DebounceHelper.prototype.execute = function (state) {
50
- var _this = this;
51
- this.cancelPending();
52
- if (state !== undefined)
53
- this.state.push(state);
54
- return new Promise(function (resolve, reject) {
55
- _this.currentResolver = resolve;
56
- _this.timer = setTimeout(function () { return __awaiter(_this, void 0, void 0, function () {
57
- var returnValue, e_1;
58
- return __generator(this, function (_a) {
59
- switch (_a.label) {
60
- case 0:
61
- _a.trys.push([0, 2, 3, 4]);
62
- return [4 /*yield*/, Promise.resolve(this.callback(this.state))];
63
- case 1:
64
- returnValue = _a.sent();
65
- resolve({ cancelled: false, value: returnValue });
66
- return [3 /*break*/, 4];
67
- case 2:
68
- e_1 = _a.sent();
69
- reject(e_1);
70
- return [3 /*break*/, 4];
71
- case 3:
72
- this.currentResolver = undefined;
73
- this.state = [];
74
- return [7 /*endfinally*/];
75
- case 4: return [2 /*return*/];
76
- }
77
- });
78
- }); }, _this.delayMs);
79
- });
80
- };
81
- /** Cancels pending execution of the callback. Any pending promises will be resolved with cancelled: true. */
82
- DebounceHelper.prototype.cancelPending = function () {
83
- if (this.timer)
84
- clearTimeout(this.timer);
85
- var state = this.state;
86
- if (this.currentResolver) {
87
- this.currentResolver({ cancelled: true });
88
- this.currentResolver = undefined;
89
- this.state = [];
90
- }
91
- return state;
92
- };
93
- return DebounceHelper;
94
- }());
95
- export { DebounceHelper };
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 };
@@ -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
- declare 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 {};
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 {};