@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,80 +1,80 @@
1
- var DataCacheEntry = /** @class */ (function () {
2
- function DataCacheEntry(dataSource, lifeTimeMinutes) {
3
- this.dataSource = dataSource;
4
- this.lifeTimeMinutes = lifeTimeMinutes;
5
- this.expiryDate = new Date();
6
- }
7
- Object.defineProperty(DataCacheEntry.prototype, "isExpired", {
8
- get: function () {
9
- return Date.now() >= this.expiryDate.getTime();
10
- },
11
- enumerable: false,
12
- configurable: true
13
- });
14
- Object.defineProperty(DataCacheEntry.prototype, "willLoad", {
15
- get: function () {
16
- return this.dataSource.willLoad || this.isExpired;
17
- },
18
- enumerable: false,
19
- configurable: true
20
- });
21
- Object.defineProperty(DataCacheEntry.prototype, "currentData", {
22
- /**
23
- * Returns the latest fetched data, or default if the data has never been fetched.
24
- * Will not re-fetch if the lifetime has been exceeded.
25
- */
26
- get: function () {
27
- return this.dataSource.data;
28
- },
29
- enumerable: false,
30
- configurable: true
31
- });
32
- /**
33
- * Gets an api datasource which was previously registered. Datasource will re-fetch its data if the data lifetime has been exceeded.
34
- */
35
- DataCacheEntry.prototype.get = function (clearPreviousError) {
36
- if (clearPreviousError === void 0) { clearPreviousError = false; }
37
- this.fetchIfExpired(clearPreviousError);
38
- return this.dataSource;
39
- };
40
- /**
41
- * Returns a promise from which data can be obtained. Data will be re-fetched if the lifetime has been exceeded.
42
- */
43
- DataCacheEntry.prototype.getDataAsync = function () {
44
- return this.get(true).promise;
45
- };
46
- /**
47
- * Returns a new instance of the api datasource which is not cached. Fetch will not be initiated.
48
- */
49
- DataCacheEntry.prototype.getNew = function () {
50
- return this.dataSource.copy();
51
- };
52
- /**
53
- * Expires the datasource.
54
- * @param refetch True if the datasource must be refetched. This will cause any consumers of this datasource to rebind to the updated data.
55
- */
56
- DataCacheEntry.prototype.expire = function (refetch) {
57
- if (refetch === void 0) { refetch = false; }
58
- this.expireNow();
59
- if (refetch) {
60
- this.fetchIfExpired();
61
- }
62
- };
63
- DataCacheEntry.prototype.expireNow = function () {
64
- this.expiryDate = new Date();
65
- };
66
- DataCacheEntry.prototype.fetchIfExpired = function (clearPreviousError) {
67
- var _this = this;
68
- if (clearPreviousError === void 0) { clearPreviousError = false; }
69
- if (this.isExpired) {
70
- this.expiryDate = new Date();
71
- this.expiryDate.setMinutes(this.expiryDate.getMinutes() + this.lifeTimeMinutes);
72
- this.dataSource.fetchDataAsync(clearPreviousError).catch(function (e) {
73
- _this.expireNow();
74
- // TODO: Error handling, or is console logging enough?
75
- });
76
- }
77
- };
78
- return DataCacheEntry;
79
- }());
80
- export { DataCacheEntry };
1
+ var DataCacheEntry = /** @class */ (function () {
2
+ function DataCacheEntry(dataSource, lifeTimeMinutes) {
3
+ this.dataSource = dataSource;
4
+ this.lifeTimeMinutes = lifeTimeMinutes;
5
+ this.expiryDate = new Date();
6
+ }
7
+ Object.defineProperty(DataCacheEntry.prototype, "isExpired", {
8
+ get: function () {
9
+ return Date.now() >= this.expiryDate.getTime();
10
+ },
11
+ enumerable: false,
12
+ configurable: true
13
+ });
14
+ Object.defineProperty(DataCacheEntry.prototype, "willLoad", {
15
+ get: function () {
16
+ return this.dataSource.willLoad || this.isExpired;
17
+ },
18
+ enumerable: false,
19
+ configurable: true
20
+ });
21
+ Object.defineProperty(DataCacheEntry.prototype, "currentData", {
22
+ /**
23
+ * Returns the latest fetched data, or default if the data has never been fetched.
24
+ * Will not re-fetch if the lifetime has been exceeded.
25
+ */
26
+ get: function () {
27
+ return this.dataSource.data;
28
+ },
29
+ enumerable: false,
30
+ configurable: true
31
+ });
32
+ /**
33
+ * Gets an api datasource which was previously registered. Datasource will re-fetch its data if the data lifetime has been exceeded.
34
+ */
35
+ DataCacheEntry.prototype.get = function (clearPreviousError) {
36
+ if (clearPreviousError === void 0) { clearPreviousError = false; }
37
+ this.fetchIfExpired(clearPreviousError);
38
+ return this.dataSource;
39
+ };
40
+ /**
41
+ * Returns a promise from which data can be obtained. Data will be re-fetched if the lifetime has been exceeded.
42
+ */
43
+ DataCacheEntry.prototype.getDataAsync = function () {
44
+ return this.get(true).promise;
45
+ };
46
+ /**
47
+ * Returns a new instance of the api datasource which is not cached. Fetch will not be initiated.
48
+ */
49
+ DataCacheEntry.prototype.getNew = function () {
50
+ return this.dataSource.copy();
51
+ };
52
+ /**
53
+ * Expires the datasource.
54
+ * @param refetch True if the datasource must be refetched. This will cause any consumers of this datasource to rebind to the updated data.
55
+ */
56
+ DataCacheEntry.prototype.expire = function (refetch) {
57
+ if (refetch === void 0) { refetch = false; }
58
+ this.expireNow();
59
+ if (refetch) {
60
+ this.fetchIfExpired();
61
+ }
62
+ };
63
+ DataCacheEntry.prototype.expireNow = function () {
64
+ this.expiryDate = new Date();
65
+ };
66
+ DataCacheEntry.prototype.fetchIfExpired = function (clearPreviousError) {
67
+ var _this = this;
68
+ if (clearPreviousError === void 0) { clearPreviousError = false; }
69
+ if (this.isExpired) {
70
+ this.expiryDate = new Date();
71
+ this.expiryDate.setMinutes(this.expiryDate.getMinutes() + this.lifeTimeMinutes);
72
+ this.dataSource.fetchDataAsync(clearPreviousError).catch(function (e) {
73
+ _this.expireNow();
74
+ // TODO: Error handling, or is console logging enough?
75
+ });
76
+ }
77
+ };
78
+ return DataCacheEntry;
79
+ }());
80
+ export { DataCacheEntry };
@@ -1,43 +1,43 @@
1
- import { IMetaItem } from '../Model/IModelBase';
2
- import { SortOperation } from './SortOperation';
3
- import PropertyInfo from '../Model/PropertyInfo';
4
- /** A DataView is a container of data with sorting and filtering capability. */
5
- export declare abstract class DataViewBase<T> {
6
- private originalSource;
7
- sortInfo: SortOperation[];
8
- protected noSortSymbol: symbol;
9
- allowSort: boolean;
10
- performsRemoteSorting: boolean;
11
- constructor(originalSource: T[]);
12
- /**
13
- * Resets the sort properties. A new sort property can be provided.
14
- * If the provided sort property matches the first existing sort property, and sortAscending is undefined, then the current sort order will be reversed.
15
- */
16
- resetSort(property?: PropertyInfo, sortAscending?: boolean): void;
17
- /**
18
- * Adds a sort property.
19
- * If the property already exists, the sort direction of the property will be reversed.
20
- */
21
- addSort(property: PropertyInfo, sortAscending?: boolean): void;
22
- /** Gets the items before filtering or sorting. */
23
- get rawItems(): T[];
24
- /**
25
- * Adds an item to the datasource that is not sorted by the current sort criteria. The item will always be positioned at the end of the list.
26
- * The next time changeSort or addSort is called, the item will be sorted normally.
27
- */
28
- addNonSortedItem(): T;
29
- setItems(items: T[]): void;
30
- itemFilter?: (item: any, index: number) => boolean;
31
- private clearNonSortItems;
32
- private getFilteredItems;
33
- get filteredItems(): T[];
34
- protected get sortedItems(): T[];
35
- private getSortedItems;
36
- getItems(): T[];
37
- getMetaItem(): IMetaItem | null;
38
- static unTrackedSort(callback: () => void): void;
39
- private static getDefaultSortValueFn;
40
- private static getSortValueSortFn;
41
- }
42
- export declare class DataView<T> extends DataViewBase<T> {
43
- }
1
+ import { IMetaItem } from '../Model/IModelBase';
2
+ import { SortOperation } from './SortOperation';
3
+ import PropertyInfo from '../Model/PropertyInfo';
4
+ /** A DataView is a container of data with sorting and filtering capability. */
5
+ export declare abstract class DataViewBase<T> {
6
+ private originalSource;
7
+ sortInfo: SortOperation[];
8
+ protected noSortSymbol: symbol;
9
+ allowSort: boolean;
10
+ performsRemoteSorting: boolean;
11
+ constructor(originalSource: T[]);
12
+ /**
13
+ * Resets the sort properties. A new sort property can be provided.
14
+ * If the provided sort property matches the first existing sort property, and sortAscending is undefined, then the current sort order will be reversed.
15
+ */
16
+ resetSort(property?: PropertyInfo, sortAscending?: boolean): void;
17
+ /**
18
+ * Adds a sort property.
19
+ * If the property already exists, the sort direction of the property will be reversed.
20
+ */
21
+ addSort(property: PropertyInfo, sortAscending?: boolean): void;
22
+ /** Gets the items before filtering or sorting. */
23
+ get rawItems(): T[];
24
+ /**
25
+ * Adds an item to the datasource that is not sorted by the current sort criteria. The item will always be positioned at the end of the list.
26
+ * The next time changeSort or addSort is called, the item will be sorted normally.
27
+ */
28
+ addNonSortedItem(): T;
29
+ setItems(items: T[]): void;
30
+ itemFilter?: (item: any, index: number) => boolean;
31
+ private clearNonSortItems;
32
+ private getFilteredItems;
33
+ get filteredItems(): T[];
34
+ protected get sortedItems(): T[];
35
+ private getSortedItems;
36
+ getItems(): T[];
37
+ getMetaItem(): IMetaItem | null;
38
+ static unTrackedSort(callback: () => void): void;
39
+ private static getDefaultSortValueFn;
40
+ private static getSortValueSortFn;
41
+ }
42
+ export declare class DataView<T> extends DataViewBase<T> {
43
+ }
@@ -1,172 +1,173 @@
1
- import { __decorate, __extends, __metadata, __spreadArray } from "tslib";
2
- import NeoModel from '../Model/NeoModel';
3
- import { Observable, Computed } from '../Model/Decorators';
4
- import { SortOperation } from './SortOperation';
5
- /** A DataView is a container of data with sorting and filtering capability. */
6
- var DataViewBase = /** @class */ (function () {
7
- function DataViewBase(originalSource) {
8
- this.originalSource = originalSource;
9
- this.sortInfo = [];
10
- this.noSortSymbol = Symbol("DataView.NoSort");
11
- this.allowSort = true;
12
- this.performsRemoteSorting = false;
13
- }
14
- /**
15
- * Resets the sort properties. A new sort property can be provided.
16
- * If the provided sort property matches the first existing sort property, and sortAscending is undefined, then the current sort order will be reversed.
17
- */
18
- DataViewBase.prototype.resetSort = function (property, sortAscending) {
19
- this.clearNonSortItems();
20
- if (property) {
21
- this.sortInfo = [SortOperation.fromPrevious(this.sortInfo.length === 1 ? this.sortInfo[0] : null, property, sortAscending)];
22
- }
23
- else {
24
- this.sortInfo = [];
25
- }
26
- };
27
- /**
28
- * Adds a sort property.
29
- * If the property already exists, the sort direction of the property will be reversed.
30
- */
31
- DataViewBase.prototype.addSort = function (property, sortAscending) {
32
- this.clearNonSortItems();
33
- var existing = this.sortInfo.find(function (c) { return c.column === property; });
34
- if (existing) {
35
- existing.sortAscending = !existing.sortAscending;
36
- this.sortInfo = __spreadArray([], this.sortInfo, true);
37
- }
38
- else {
39
- this.sortInfo = __spreadArray(__spreadArray([], this.sortInfo, true), [new SortOperation(property, sortAscending !== null && sortAscending !== void 0 ? sortAscending : SortOperation.getDefaultSortAscending(property))], false);
40
- }
41
- };
42
- Object.defineProperty(DataViewBase.prototype, "rawItems", {
43
- /** Gets the items before filtering or sorting. */
44
- get: function () {
45
- return this.originalSource;
46
- },
47
- enumerable: false,
48
- configurable: true
49
- });
50
- /**
51
- * Adds an item to the datasource that is not sorted by the current sort criteria. The item will always be positioned at the end of the list.
52
- * The next time changeSort or addSort is called, the item will be sorted normally.
53
- */
54
- DataViewBase.prototype.addNonSortedItem = function () {
55
- var newItem = this.rawItems.createChild();
56
- newItem[this.noSortSymbol] = true;
57
- this.rawItems.push(newItem);
58
- return newItem;
59
- };
60
- DataViewBase.prototype.setItems = function (items) {
61
- this.originalSource = items;
62
- };
63
- DataViewBase.prototype.clearNonSortItems = function () {
64
- var _this = this;
65
- this.rawItems.filter(function (c) { return c[_this.noSortSymbol] !== undefined; }).forEach(function (c) { return delete c[_this.noSortSymbol]; });
66
- };
67
- DataViewBase.prototype.getFilteredItems = function () {
68
- if (this.rawItems.length && this.itemFilter) {
69
- return this.rawItems.filter(this.itemFilter);
70
- }
71
- else {
72
- return this.rawItems;
73
- }
74
- };
75
- Object.defineProperty(DataViewBase.prototype, "filteredItems", {
76
- get: function () {
77
- return this.getFilteredItems();
78
- },
79
- enumerable: false,
80
- configurable: true
81
- });
82
- Object.defineProperty(DataViewBase.prototype, "sortedItems", {
83
- get: function () {
84
- return this.getSortedItems();
85
- },
86
- enumerable: false,
87
- configurable: true
88
- });
89
- DataViewBase.prototype.getSortedItems = function () {
90
- var _this = this;
91
- var filtered = this.filteredItems;
92
- if (filtered.length === 0) {
93
- return [];
94
- }
95
- else {
96
- var sortInfo = this.sortInfo;
97
- if (sortInfo && sortInfo.length) {
98
- var sortFns_1 = [];
99
- var itemsToSort_1 = filtered.filter(function (c) { return c[_this.noSortSymbol] === undefined; });
100
- var endItems = filtered.filter(function (c) { return c[_this.noSortSymbol] !== undefined; });
101
- for (var _i = 0, sortInfo_1 = sortInfo; _i < sortInfo_1.length; _i++) {
102
- var sortColumn = sortInfo_1[_i];
103
- var valueFn = void 0;
104
- var property = sortColumn.column;
105
- if (sortColumn.column.hasSortValue) {
106
- valueFn = DataViewBase.getSortValueSortFn(property.propertyName);
107
- }
108
- else {
109
- valueFn = DataViewBase.getDefaultSortValueFn(property.propertyName);
110
- }
111
- sortFns_1.push({ property: property, valueFn: valueFn, direction: sortColumn.sortAscending ? "asc" : "desc" });
112
- }
113
- DataViewBase.unTrackedSort(function () {
114
- for (var i = sortFns_1.length - 1; i >= 0; i--) {
115
- itemsToSort_1.sortBy(sortFns_1[i].valueFn, sortFns_1[i].direction, sortFns_1[i].property.propertyType);
116
- }
117
- });
118
- return __spreadArray(__spreadArray([], itemsToSort_1, true), endItems, true);
119
- }
120
- return filtered;
121
- }
122
- };
123
- DataViewBase.prototype.getItems = function () {
124
- return this.sortedItems;
125
- };
126
- DataViewBase.prototype.getMetaItem = function () {
127
- var items = this.rawItems;
128
- if (items.childObjectType) {
129
- return items.getMetaItem();
130
- }
131
- else if (items.length) {
132
- return items[0];
133
- }
134
- else {
135
- return null;
136
- }
137
- };
138
- DataViewBase.unTrackedSort = function (callback) {
139
- callback();
140
- };
141
- DataViewBase.getDefaultSortValueFn = function (propertyName) {
142
- return function (c) { return c[propertyName]; };
143
- };
144
- DataViewBase.getSortValueSortFn = function (propertyName) { return function (c) { return c.meta[propertyName].sortValue; }; };
145
- __decorate([
146
- Observable(),
147
- __metadata("design:type", Array)
148
- ], DataViewBase.prototype, "sortInfo", void 0);
149
- __decorate([
150
- Computed(),
151
- __metadata("design:type", Array),
152
- __metadata("design:paramtypes", [])
153
- ], DataViewBase.prototype, "filteredItems", null);
154
- __decorate([
155
- Computed(),
156
- __metadata("design:type", Array),
157
- __metadata("design:paramtypes", [])
158
- ], DataViewBase.prototype, "sortedItems", null);
159
- return DataViewBase;
160
- }());
161
- export { DataViewBase };
162
- var DataView = /** @class */ (function (_super) {
163
- __extends(DataView, _super);
164
- function DataView() {
165
- return _super !== null && _super.apply(this, arguments) || this;
166
- }
167
- DataView = __decorate([
168
- NeoModel
169
- ], DataView);
170
- return DataView;
171
- }(DataViewBase));
172
- export { DataView };
1
+ import { __decorate, __extends, __metadata, __spreadArray } from "tslib";
2
+ import NeoModel from '../Model/NeoModel';
3
+ import { Observable, Computed } from '../Model/Decorators';
4
+ import { SortOperation } from './SortOperation';
5
+ /** A DataView is a container of data with sorting and filtering capability. */
6
+ export var DataViewBase = /** @class */ (function () {
7
+ function DataViewBase(originalSource) {
8
+ this.originalSource = originalSource;
9
+ this.sortInfo = [];
10
+ this.noSortSymbol = Symbol("DataView.NoSort");
11
+ this.allowSort = true;
12
+ this.performsRemoteSorting = false;
13
+ }
14
+ /**
15
+ * Resets the sort properties. A new sort property can be provided.
16
+ * If the provided sort property matches the first existing sort property, and sortAscending is undefined, then the current sort order will be reversed.
17
+ */
18
+ DataViewBase.prototype.resetSort = function (property, sortAscending) {
19
+ this.clearNonSortItems();
20
+ if (property) {
21
+ this.sortInfo = [SortOperation.fromPrevious(this.sortInfo.length === 1 ? this.sortInfo[0] : null, property, sortAscending)];
22
+ }
23
+ else {
24
+ this.sortInfo = [];
25
+ }
26
+ };
27
+ /**
28
+ * Adds a sort property.
29
+ * If the property already exists, the sort direction of the property will be reversed.
30
+ */
31
+ DataViewBase.prototype.addSort = function (property, sortAscending) {
32
+ this.clearNonSortItems();
33
+ var existing = this.sortInfo.find(function (c) { return c.column === property; });
34
+ if (existing) {
35
+ existing.sortAscending = !existing.sortAscending;
36
+ this.sortInfo = __spreadArray([], this.sortInfo, true);
37
+ }
38
+ else {
39
+ this.sortInfo = __spreadArray(__spreadArray([], this.sortInfo, true), [new SortOperation(property, sortAscending !== null && sortAscending !== void 0 ? sortAscending : SortOperation.getDefaultSortAscending(property))], false);
40
+ }
41
+ };
42
+ Object.defineProperty(DataViewBase.prototype, "rawItems", {
43
+ /** Gets the items before filtering or sorting. */
44
+ get: function () {
45
+ return this.originalSource;
46
+ },
47
+ enumerable: false,
48
+ configurable: true
49
+ });
50
+ /**
51
+ * Adds an item to the datasource that is not sorted by the current sort criteria. The item will always be positioned at the end of the list.
52
+ * The next time changeSort or addSort is called, the item will be sorted normally.
53
+ */
54
+ DataViewBase.prototype.addNonSortedItem = function () {
55
+ var newItem = this.rawItems.createChild();
56
+ newItem[this.noSortSymbol] = true;
57
+ this.rawItems.push(newItem);
58
+ return newItem;
59
+ };
60
+ DataViewBase.prototype.setItems = function (items) {
61
+ this.originalSource = items;
62
+ };
63
+ DataViewBase.prototype.clearNonSortItems = function () {
64
+ var _this = this;
65
+ // @ts-ignore
66
+ this.rawItems.filter(function (c) { return c[_this.noSortSymbol] !== undefined; }).forEach(function (c) { return delete c[_this.noSortSymbol]; });
67
+ };
68
+ DataViewBase.prototype.getFilteredItems = function () {
69
+ if (this.rawItems.length && this.itemFilter) {
70
+ return this.rawItems.filter(this.itemFilter);
71
+ }
72
+ else {
73
+ return this.rawItems;
74
+ }
75
+ };
76
+ Object.defineProperty(DataViewBase.prototype, "filteredItems", {
77
+ get: function () {
78
+ return this.getFilteredItems();
79
+ },
80
+ enumerable: false,
81
+ configurable: true
82
+ });
83
+ Object.defineProperty(DataViewBase.prototype, "sortedItems", {
84
+ get: function () {
85
+ return this.getSortedItems();
86
+ },
87
+ enumerable: false,
88
+ configurable: true
89
+ });
90
+ DataViewBase.prototype.getSortedItems = function () {
91
+ var _this = this;
92
+ var filtered = this.filteredItems;
93
+ if (filtered.length === 0) {
94
+ return [];
95
+ }
96
+ else {
97
+ var sortInfo = this.sortInfo;
98
+ if (sortInfo && sortInfo.length) {
99
+ var sortFns_1 = [];
100
+ // @ts-ignore
101
+ var itemsToSort_1 = filtered.filter(function (c) { return c[_this.noSortSymbol] === undefined; });
102
+ // @ts-ignore
103
+ var endItems = filtered.filter(function (c) { return c[_this.noSortSymbol] !== undefined; });
104
+ for (var _i = 0, sortInfo_1 = sortInfo; _i < sortInfo_1.length; _i++) {
105
+ var sortColumn = sortInfo_1[_i];
106
+ var valueFn = void 0;
107
+ var property = sortColumn.column;
108
+ if (sortColumn.column.hasSortValue) {
109
+ valueFn = DataViewBase.getSortValueSortFn(property.propertyName);
110
+ }
111
+ else {
112
+ valueFn = DataViewBase.getDefaultSortValueFn(property.propertyName);
113
+ }
114
+ sortFns_1.push({ property: property, valueFn: valueFn, direction: sortColumn.sortAscending ? "asc" : "desc" });
115
+ }
116
+ DataViewBase.unTrackedSort(function () {
117
+ for (var i = sortFns_1.length - 1; i >= 0; i--) {
118
+ itemsToSort_1.sortBy(sortFns_1[i].valueFn, sortFns_1[i].direction, sortFns_1[i].property.propertyType);
119
+ }
120
+ });
121
+ return __spreadArray(__spreadArray([], itemsToSort_1, true), endItems, true);
122
+ }
123
+ return filtered;
124
+ }
125
+ };
126
+ DataViewBase.prototype.getItems = function () {
127
+ return this.sortedItems;
128
+ };
129
+ DataViewBase.prototype.getMetaItem = function () {
130
+ var items = this.rawItems;
131
+ if (items.childObjectType) {
132
+ return items.getMetaItem();
133
+ }
134
+ else if (items.length) {
135
+ return items[0];
136
+ }
137
+ else {
138
+ return null;
139
+ }
140
+ };
141
+ DataViewBase.unTrackedSort = function (callback) {
142
+ callback();
143
+ };
144
+ DataViewBase.getDefaultSortValueFn = function (propertyName) {
145
+ return function (c) { return c[propertyName]; };
146
+ };
147
+ DataViewBase.getSortValueSortFn = function (propertyName) { return function (c) { return c.meta[propertyName].sortValue; }; };
148
+ __decorate([
149
+ Observable(),
150
+ __metadata("design:type", Array)
151
+ ], DataViewBase.prototype, "sortInfo", void 0);
152
+ __decorate([
153
+ Computed(),
154
+ __metadata("design:type", Array),
155
+ __metadata("design:paramtypes", [])
156
+ ], DataViewBase.prototype, "filteredItems", null);
157
+ __decorate([
158
+ Computed(),
159
+ __metadata("design:type", Array),
160
+ __metadata("design:paramtypes", [])
161
+ ], DataViewBase.prototype, "sortedItems", null);
162
+ return DataViewBase;
163
+ }());
164
+ export var DataView = /** @class */ (function (_super) {
165
+ __extends(DataView, _super);
166
+ function DataView() {
167
+ return _super !== null && _super.apply(this, arguments) || this;
168
+ }
169
+ DataView = __decorate([
170
+ NeoModel
171
+ ], DataView);
172
+ return DataView;
173
+ }(DataViewBase));