@singularsystems/neo-core 1.0.0-alpha.2 → 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,35 +1,35 @@
1
- /** Interface for classes which can fetch their own data, and provide it asynchronously. */
2
- export interface IAsyncDataSource<T> {
3
- /** True if the data is being fetched. */
4
- readonly isLoading: boolean;
5
- /** True if the data is being fetched, or hasn't fetched yet. */
6
- readonly willLoad: boolean;
7
- /** Current data. This will return default data or previous data if isLoading is true. */
8
- readonly data: T;
9
- /**
10
- * Begin fetch of the data. If you only want to fetch data if it has not already been fetched, use fetchInitial().
11
- * @param clearPreviousError True if a previous fetch error must be cleared before fetch. By default fetch errors will prevent the datasource from fetching data again.
12
- */
13
- fetchDataAsync(clearPreviousError?: boolean): Promise<T>;
14
- /** Fetches data if data has not been fetched before. */
15
- fetchInitial(): Promise<T>;
16
- /** Last error which occured during fetch. */
17
- readonly fetchError: string | null;
18
- /** Current promise created as a result of fetchData being called. */
19
- readonly promise: Promise<T> | null;
20
- copy(): IAsyncDataSource<T>;
21
- }
22
- export declare abstract class AsyncDataSource<T> implements IAsyncDataSource<T> {
23
- isLoading: boolean;
24
- get willLoad(): boolean;
25
- data: T;
26
- fetchError: string | null;
27
- promise: Promise<T> | null;
28
- protected hasFetched: boolean;
29
- constructor(defaultData: T);
30
- protected abstract getDataAsync(): Promise<T>;
31
- private executeFetchAsync;
32
- fetchDataAsync(clearPreviousError?: boolean): Promise<T>;
33
- fetchInitial(): Promise<T>;
34
- abstract copy(): IAsyncDataSource<T>;
35
- }
1
+ /** Interface for classes which can fetch their own data, and provide it asynchronously. */
2
+ export interface IAsyncDataSource<T> {
3
+ /** True if the data is being fetched. */
4
+ readonly isLoading: boolean;
5
+ /** True if the data is being fetched, or hasn't fetched yet. */
6
+ readonly willLoad: boolean;
7
+ /** Current data. This will return default data or previous data if isLoading is true. */
8
+ readonly data: T;
9
+ /**
10
+ * Begin fetch of the data. If you only want to fetch data if it has not already been fetched, use fetchInitial().
11
+ * @param clearPreviousError True if a previous fetch error must be cleared before fetch. By default fetch errors will prevent the datasource from fetching data again.
12
+ */
13
+ fetchDataAsync(clearPreviousError?: boolean): Promise<T>;
14
+ /** Fetches data if data has not been fetched before. */
15
+ fetchInitial(): Promise<T>;
16
+ /** Last error which occured during fetch. */
17
+ readonly fetchError: string | null;
18
+ /** Current promise created as a result of fetchData being called. */
19
+ readonly promise: Promise<T> | null;
20
+ copy(): IAsyncDataSource<T>;
21
+ }
22
+ export declare abstract class AsyncDataSource<T> implements IAsyncDataSource<T> {
23
+ isLoading: boolean;
24
+ get willLoad(): boolean;
25
+ data: T;
26
+ fetchError: string | null;
27
+ promise: Promise<T> | null;
28
+ protected hasFetched: boolean;
29
+ constructor(defaultData: T);
30
+ protected abstract getDataAsync(): Promise<T>;
31
+ private executeFetchAsync;
32
+ fetchDataAsync(clearPreviousError?: boolean): Promise<T>;
33
+ fetchInitial(): Promise<T>;
34
+ abstract copy(): IAsyncDataSource<T>;
35
+ }
@@ -1,80 +1,79 @@
1
- import { __awaiter, __decorate, __generator, __metadata } from "tslib";
2
- import { Utils } from '../Utils';
3
- import { Observable } from '../Model/Decorators';
4
- var AsyncDataSource = /** @class */ (function () {
5
- function AsyncDataSource(defaultData) {
6
- this.isLoading = false;
7
- this.fetchError = null;
8
- this.promise = null;
9
- this.hasFetched = false;
10
- this.data = defaultData;
11
- }
12
- Object.defineProperty(AsyncDataSource.prototype, "willLoad", {
13
- get: function () {
14
- return this.isLoading || !this.hasFetched;
15
- },
16
- enumerable: false,
17
- configurable: true
18
- });
19
- AsyncDataSource.prototype.executeFetchAsync = function () {
20
- return __awaiter(this, void 0, void 0, function () {
21
- var data_1, e_1;
22
- var _this = this;
23
- return __generator(this, function (_a) {
24
- switch (_a.label) {
25
- case 0:
26
- if (!(!this.isLoading && !this.fetchError)) return [3 /*break*/, 4];
27
- this.isLoading = true;
28
- this.promise = this.getDataAsync();
29
- _a.label = 1;
30
- case 1:
31
- _a.trys.push([1, 3, , 4]);
32
- return [4 /*yield*/, this.promise];
33
- case 2:
34
- data_1 = _a.sent();
35
- Utils.batchUpdate(function () {
36
- _this.data = data_1;
37
- _this.isLoading = false;
38
- });
39
- return [2 /*return*/, data_1];
40
- case 3:
41
- e_1 = _a.sent();
42
- this.isLoading = false;
43
- this.fetchError = e_1;
44
- console.log(e_1);
45
- throw e_1;
46
- case 4: return [2 /*return*/, this.promise];
47
- }
48
- });
49
- });
50
- };
51
- AsyncDataSource.prototype.fetchDataAsync = function (clearPreviousError) {
52
- if (clearPreviousError === void 0) { clearPreviousError = false; }
53
- this.hasFetched = true;
54
- if (clearPreviousError) {
55
- this.fetchError = null;
56
- }
57
- this.executeFetchAsync();
58
- return this.promise;
59
- };
60
- AsyncDataSource.prototype.fetchInitial = function () {
61
- if (!this.hasFetched) {
62
- this.fetchDataAsync();
63
- }
64
- return this.promise;
65
- };
66
- __decorate([
67
- Observable(),
68
- __metadata("design:type", Boolean)
69
- ], AsyncDataSource.prototype, "isLoading", void 0);
70
- __decorate([
71
- Observable(),
72
- __metadata("design:type", Object)
73
- ], AsyncDataSource.prototype, "data", void 0);
74
- __decorate([
75
- Observable(),
76
- __metadata("design:type", Object)
77
- ], AsyncDataSource.prototype, "fetchError", void 0);
78
- return AsyncDataSource;
79
- }());
80
- export { AsyncDataSource };
1
+ import { __awaiter, __decorate, __generator, __metadata } from "tslib";
2
+ import { Utils } from '../Utils';
3
+ import { Observable } from '../Model/Decorators';
4
+ export var AsyncDataSource = /** @class */ (function () {
5
+ function AsyncDataSource(defaultData) {
6
+ this.isLoading = false;
7
+ this.fetchError = null;
8
+ this.promise = null;
9
+ this.hasFetched = false;
10
+ this.data = defaultData;
11
+ }
12
+ Object.defineProperty(AsyncDataSource.prototype, "willLoad", {
13
+ get: function () {
14
+ return this.isLoading || !this.hasFetched;
15
+ },
16
+ enumerable: false,
17
+ configurable: true
18
+ });
19
+ AsyncDataSource.prototype.executeFetchAsync = function () {
20
+ return __awaiter(this, void 0, void 0, function () {
21
+ var data_1, e_1;
22
+ var _this = this;
23
+ return __generator(this, function (_a) {
24
+ switch (_a.label) {
25
+ case 0:
26
+ if (!(!this.isLoading && !this.fetchError)) return [3 /*break*/, 4];
27
+ this.isLoading = true;
28
+ this.promise = this.getDataAsync();
29
+ _a.label = 1;
30
+ case 1:
31
+ _a.trys.push([1, 3, , 4]);
32
+ return [4 /*yield*/, this.promise];
33
+ case 2:
34
+ data_1 = _a.sent();
35
+ Utils.batchUpdate(function () {
36
+ _this.data = data_1;
37
+ _this.isLoading = false;
38
+ });
39
+ return [2 /*return*/, data_1];
40
+ case 3:
41
+ e_1 = _a.sent();
42
+ this.isLoading = false;
43
+ this.fetchError = e_1;
44
+ console.log(e_1);
45
+ throw e_1;
46
+ case 4: return [2 /*return*/, this.promise];
47
+ }
48
+ });
49
+ });
50
+ };
51
+ AsyncDataSource.prototype.fetchDataAsync = function (clearPreviousError) {
52
+ if (clearPreviousError === void 0) { clearPreviousError = false; }
53
+ this.hasFetched = true;
54
+ if (clearPreviousError) {
55
+ this.fetchError = null;
56
+ }
57
+ this.executeFetchAsync();
58
+ return this.promise;
59
+ };
60
+ AsyncDataSource.prototype.fetchInitial = function () {
61
+ if (!this.hasFetched) {
62
+ this.fetchDataAsync();
63
+ }
64
+ return this.promise;
65
+ };
66
+ __decorate([
67
+ Observable(),
68
+ __metadata("design:type", Boolean)
69
+ ], AsyncDataSource.prototype, "isLoading", void 0);
70
+ __decorate([
71
+ Observable(),
72
+ __metadata("design:type", Object)
73
+ ], AsyncDataSource.prototype, "data", void 0);
74
+ __decorate([
75
+ Observable(),
76
+ __metadata("design:type", Object)
77
+ ], AsyncDataSource.prototype, "fetchError", void 0);
78
+ return AsyncDataSource;
79
+ }());
@@ -1,40 +1,40 @@
1
- import { IAsyncDataSource } from './AsyncDataSource';
2
- import { AxiosPromise } from 'axios';
3
- import { DataCacheEntry } from './DataCacheEntry';
4
- import { PlainObject } from '../Model/IModelBase';
5
- export interface ICachedDataService {
6
- expireAll(expireDescendants?: boolean): void;
7
- }
8
- /** Service for managing cached data. */
9
- export declare class CachedDataService implements ICachedDataService {
10
- private dataSources;
11
- private children;
12
- constructor(base?: CachedDataService);
13
- /**
14
- * Registers an api datasource.
15
- * @param apiEndpoint Api endpoint from which to get data.
16
- * @param lifeTimeMinutes No of minutes from the data retrieval time that the cache is valid for.
17
- */
18
- protected register<T>(apiEndpoint: string, lifeTimeMinutes: number, defaultData?: T): DataCacheEntry<T>;
19
- /**
20
- * Registers an api datasource.
21
- * @param apiEndpoint ClientApi method from which to get data.
22
- * @param lifeTimeMinutes No of minutes from the data retrieval time that the cache is valid for.
23
- */
24
- protected register<T>(apiMethod: () => AxiosPromise<T>, lifeTimeMinutes: number, defaultData?: T): DataCacheEntry<T>;
25
- /**
26
- * Registers a datasource.
27
- * @param dataSource An async data source.
28
- * @param lifeTimeMinutes No of minutes from the data retrieval time that the cache is valid for.
29
- */
30
- protected register<T>(dataSource: IAsyncDataSource<T>, lifeTimeMinutes: number): DataCacheEntry<T>;
31
- /**
32
- * Registers an api datasource which contains a list of data. The data from the api endpoint will be deserialised into models of the provided child type.
33
- * @param childType Child type to create when deserialising data.
34
- * @param apiMethod Api client method from which to get data.
35
- * @param lifeTimeMinutes No of minutes from the data retrieval time that the cache is valid for.
36
- */
37
- protected registerList<T>(childType: (new () => T), apiMethod: () => AxiosPromise<PlainObject<T>[]>, lifeTimeMinutes: number): DataCacheEntry<T[]>;
38
- /** Expires all data */
39
- expireAll(expireDescendants?: boolean): void;
40
- }
1
+ import { IAsyncDataSource } from './AsyncDataSource';
2
+ import { AxiosPromise } from 'axios';
3
+ import { DataCacheEntry } from './DataCacheEntry';
4
+ import { PlainObject } from '../Model/IModelBase';
5
+ export interface ICachedDataService {
6
+ expireAll(expireDescendants?: boolean): void;
7
+ }
8
+ /** Service for managing cached data. */
9
+ export declare class CachedDataService implements ICachedDataService {
10
+ private dataSources;
11
+ private children;
12
+ constructor(base?: CachedDataService);
13
+ /**
14
+ * Registers an api datasource.
15
+ * @param apiEndpoint Api endpoint from which to get data.
16
+ * @param lifeTimeMinutes No of minutes from the data retrieval time that the cache is valid for.
17
+ */
18
+ protected register<T>(apiEndpoint: string, lifeTimeMinutes: number, defaultData?: T): DataCacheEntry<T>;
19
+ /**
20
+ * Registers an api datasource.
21
+ * @param apiEndpoint ClientApi method from which to get data.
22
+ * @param lifeTimeMinutes No of minutes from the data retrieval time that the cache is valid for.
23
+ */
24
+ protected register<T>(apiMethod: () => AxiosPromise<T>, lifeTimeMinutes: number, defaultData?: T): DataCacheEntry<T>;
25
+ /**
26
+ * Registers a datasource.
27
+ * @param dataSource An async data source.
28
+ * @param lifeTimeMinutes No of minutes from the data retrieval time that the cache is valid for.
29
+ */
30
+ protected register<T>(dataSource: IAsyncDataSource<T>, lifeTimeMinutes: number): DataCacheEntry<T>;
31
+ /**
32
+ * Registers an api datasource which contains a list of data. The data from the api endpoint will be deserialised into models of the provided child type.
33
+ * @param childType Child type to create when deserialising data.
34
+ * @param apiMethod Api client method from which to get data.
35
+ * @param lifeTimeMinutes No of minutes from the data retrieval time that the cache is valid for.
36
+ */
37
+ protected registerList<T>(childType: (new () => T), apiMethod: () => AxiosPromise<PlainObject<T>[]>, lifeTimeMinutes: number): DataCacheEntry<T[]>;
38
+ /** Expires all data */
39
+ expireAll(expireDescendants?: boolean): void;
40
+ }
@@ -1,64 +1,63 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { ApiDataSource, ApiClientDataSource, ApiClientLookupDataSource } from './ApiDataSource';
3
- import { injectable } from 'inversify';
4
- import { DataCacheEntry } from './DataCacheEntry';
5
- /** Service for managing cached data. */
6
- var CachedDataService = /** @class */ (function () {
7
- function CachedDataService(base) {
8
- this.dataSources = [];
9
- this.children = [];
10
- if (base) {
11
- base.children.push(this);
12
- }
13
- }
14
- CachedDataService.prototype.register = function (apiEndpointOrDataSource, lifeTimeMinutes, defaultData) {
15
- if (defaultData === void 0) { defaultData = []; }
16
- var apiSource;
17
- if (apiEndpointOrDataSource.fetchDataAsync !== undefined) {
18
- apiSource = apiEndpointOrDataSource;
19
- }
20
- else if (apiEndpointOrDataSource instanceof Function) {
21
- apiSource = new ApiClientDataSource(apiEndpointOrDataSource, defaultData);
22
- }
23
- else {
24
- apiSource = new ApiDataSource(apiEndpointOrDataSource, defaultData);
25
- }
26
- var cacheEntry = new DataCacheEntry(apiSource, lifeTimeMinutes);
27
- ;
28
- this.dataSources.push(cacheEntry);
29
- return cacheEntry;
30
- };
31
- /**
32
- * Registers an api datasource which contains a list of data. The data from the api endpoint will be deserialised into models of the provided child type.
33
- * @param childType Child type to create when deserialising data.
34
- * @param apiMethod Api client method from which to get data.
35
- * @param lifeTimeMinutes No of minutes from the data retrieval time that the cache is valid for.
36
- */
37
- CachedDataService.prototype.registerList = function (childType, apiMethod, lifeTimeMinutes) {
38
- var dataSource = new ApiClientLookupDataSource(apiMethod, childType);
39
- var cacheEntry = new DataCacheEntry(dataSource, lifeTimeMinutes);
40
- ;
41
- this.dataSources.push(cacheEntry);
42
- return cacheEntry;
43
- };
44
- /** Expires all data */
45
- CachedDataService.prototype.expireAll = function (expireDescendants) {
46
- if (expireDescendants === void 0) { expireDescendants = false; }
47
- for (var _i = 0, _a = this.dataSources; _i < _a.length; _i++) {
48
- var datasource = _a[_i];
49
- datasource.expire();
50
- }
51
- if (expireDescendants) {
52
- for (var _b = 0, _c = this.children; _b < _c.length; _b++) {
53
- var dataCache = _c[_b];
54
- dataCache.expireAll(expireDescendants);
55
- }
56
- }
57
- };
58
- CachedDataService = __decorate([
59
- injectable(),
60
- __metadata("design:paramtypes", [CachedDataService])
61
- ], CachedDataService);
62
- return CachedDataService;
63
- }());
64
- export { CachedDataService };
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { ApiDataSource, ApiClientDataSource, ApiClientLookupDataSource } from './ApiDataSource';
3
+ import { injectable } from 'inversify';
4
+ import { DataCacheEntry } from './DataCacheEntry';
5
+ /** Service for managing cached data. */
6
+ export var CachedDataService = /** @class */ (function () {
7
+ function CachedDataService(base) {
8
+ this.dataSources = [];
9
+ this.children = [];
10
+ if (base) {
11
+ base.children.push(this);
12
+ }
13
+ }
14
+ CachedDataService.prototype.register = function (apiEndpointOrDataSource, lifeTimeMinutes, defaultData) {
15
+ if (defaultData === void 0) { defaultData = []; }
16
+ var apiSource;
17
+ if (apiEndpointOrDataSource.fetchDataAsync !== undefined) {
18
+ apiSource = apiEndpointOrDataSource;
19
+ }
20
+ else if (apiEndpointOrDataSource instanceof Function) {
21
+ apiSource = new ApiClientDataSource(apiEndpointOrDataSource, defaultData);
22
+ }
23
+ else {
24
+ apiSource = new ApiDataSource(apiEndpointOrDataSource, defaultData);
25
+ }
26
+ var cacheEntry = new DataCacheEntry(apiSource, lifeTimeMinutes);
27
+ ;
28
+ this.dataSources.push(cacheEntry);
29
+ return cacheEntry;
30
+ };
31
+ /**
32
+ * Registers an api datasource which contains a list of data. The data from the api endpoint will be deserialised into models of the provided child type.
33
+ * @param childType Child type to create when deserialising data.
34
+ * @param apiMethod Api client method from which to get data.
35
+ * @param lifeTimeMinutes No of minutes from the data retrieval time that the cache is valid for.
36
+ */
37
+ CachedDataService.prototype.registerList = function (childType, apiMethod, lifeTimeMinutes) {
38
+ var dataSource = new ApiClientLookupDataSource(apiMethod, childType);
39
+ var cacheEntry = new DataCacheEntry(dataSource, lifeTimeMinutes);
40
+ ;
41
+ this.dataSources.push(cacheEntry);
42
+ return cacheEntry;
43
+ };
44
+ /** Expires all data */
45
+ CachedDataService.prototype.expireAll = function (expireDescendants) {
46
+ if (expireDescendants === void 0) { expireDescendants = false; }
47
+ for (var _i = 0, _a = this.dataSources; _i < _a.length; _i++) {
48
+ var datasource = _a[_i];
49
+ datasource.expire();
50
+ }
51
+ if (expireDescendants) {
52
+ for (var _b = 0, _c = this.children; _b < _c.length; _b++) {
53
+ var dataCache = _c[_b];
54
+ dataCache.expireAll(expireDescendants);
55
+ }
56
+ }
57
+ };
58
+ CachedDataService = __decorate([
59
+ injectable(),
60
+ __metadata("design:paramtypes", [CachedDataService])
61
+ ], CachedDataService);
62
+ return CachedDataService;
63
+ }());
@@ -1,42 +1,42 @@
1
- import { IAsyncDataSource } from "./AsyncDataSource";
2
- export interface IDataCacheEntry {
3
- expire(refetch?: boolean): void;
4
- get(): IAsyncDataSource<any>;
5
- /**
6
- * Will return true if the data has expired, or the data source is loading.
7
- */
8
- readonly willLoad: boolean;
9
- }
10
- export declare type IArrayCacheEntry<T> = DataCacheEntry<T[]>;
11
- export declare class DataCacheEntry<T> implements IDataCacheEntry {
12
- private dataSource;
13
- private lifeTimeMinutes;
14
- private expiryDate;
15
- constructor(dataSource: IAsyncDataSource<T>, lifeTimeMinutes: number);
16
- get isExpired(): boolean;
17
- get willLoad(): boolean;
18
- /**
19
- * Returns the latest fetched data, or default if the data has never been fetched.
20
- * Will not re-fetch if the lifetime has been exceeded.
21
- */
22
- get currentData(): T;
23
- /**
24
- * Gets an api datasource which was previously registered. Datasource will re-fetch its data if the data lifetime has been exceeded.
25
- */
26
- get(clearPreviousError?: boolean): IAsyncDataSource<T>;
27
- /**
28
- * Returns a promise from which data can be obtained. Data will be re-fetched if the lifetime has been exceeded.
29
- */
30
- getDataAsync(): Promise<T>;
31
- /**
32
- * Returns a new instance of the api datasource which is not cached. Fetch will not be initiated.
33
- */
34
- getNew(): IAsyncDataSource<T>;
35
- /**
36
- * Expires the datasource.
37
- * @param refetch True if the datasource must be refetched. This will cause any consumers of this datasource to rebind to the updated data.
38
- */
39
- expire(refetch?: boolean): void;
40
- private expireNow;
41
- private fetchIfExpired;
42
- }
1
+ import { IAsyncDataSource } from "./AsyncDataSource";
2
+ export interface IDataCacheEntry {
3
+ expire(refetch?: boolean): void;
4
+ get(): IAsyncDataSource<any>;
5
+ /**
6
+ * Will return true if the data has expired, or the data source is loading.
7
+ */
8
+ readonly willLoad: boolean;
9
+ }
10
+ export type IArrayCacheEntry<T> = DataCacheEntry<T[]>;
11
+ export declare class DataCacheEntry<T> implements IDataCacheEntry {
12
+ private dataSource;
13
+ private lifeTimeMinutes;
14
+ private expiryDate;
15
+ constructor(dataSource: IAsyncDataSource<T>, lifeTimeMinutes: number);
16
+ get isExpired(): boolean;
17
+ get willLoad(): boolean;
18
+ /**
19
+ * Returns the latest fetched data, or default if the data has never been fetched.
20
+ * Will not re-fetch if the lifetime has been exceeded.
21
+ */
22
+ get currentData(): T;
23
+ /**
24
+ * Gets an api datasource which was previously registered. Datasource will re-fetch its data if the data lifetime has been exceeded.
25
+ */
26
+ get(clearPreviousError?: boolean): IAsyncDataSource<T>;
27
+ /**
28
+ * Returns a promise from which data can be obtained. Data will be re-fetched if the lifetime has been exceeded.
29
+ */
30
+ getDataAsync(): Promise<T>;
31
+ /**
32
+ * Returns a new instance of the api datasource which is not cached. Fetch will not be initiated.
33
+ */
34
+ getNew(): IAsyncDataSource<T>;
35
+ /**
36
+ * Expires the datasource.
37
+ * @param refetch True if the datasource must be refetched. This will cause any consumers of this datasource to rebind to the updated data.
38
+ */
39
+ expire(refetch?: boolean): void;
40
+ private expireNow;
41
+ private fetchIfExpired;
42
+ }