@singularsystems/neo-core 0.10.48 → 0.10.51

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 (312) hide show
  1. package/dist/ApiClient/ApiClientBase.js +0 -1
  2. package/dist/ApiClient/ReadApiClient.d.ts +1 -1
  3. package/dist/ApiClient/ReadApiClient.js +0 -1
  4. package/dist/ApiClient/UpdateableApiClient.js +0 -1
  5. package/dist/AppServices/AppService.js +0 -1
  6. package/dist/AppServices/Config/ConfigModel.js +0 -1
  7. package/dist/AppServices/Config/ConfigService.js +0 -1
  8. package/dist/AppServices/Module.js +0 -1
  9. package/dist/AppServices/NeoContainer.js +0 -1
  10. package/dist/AppServices/NeoModule.js +0 -1
  11. package/dist/AppServices/NeoTypes.d.ts +4 -0
  12. package/dist/AppServices/NeoTypes.js +3 -1
  13. package/dist/AppServices/ServiceIdentifier.js +0 -1
  14. package/dist/AppServices/index.js +0 -1
  15. package/dist/Components/AnimationHelper.js +0 -1
  16. package/dist/Components/BootstrapHelpers.js +0 -1
  17. package/dist/Components/BootstrapTypes.js +0 -1
  18. package/dist/Components/ButtonOptions.d.ts +5 -0
  19. package/dist/Components/ButtonOptions.js +0 -1
  20. package/dist/Components/ContextMenu/ContextMenu.js +0 -1
  21. package/dist/Components/ContextMenu/MenuUtils.js +0 -1
  22. package/dist/Components/DatePicker/DatePicker.js +0 -1
  23. package/dist/Components/DatePicker/DatePickerOptions.js +0 -1
  24. package/dist/Components/ErrorHandler.d.ts +3 -0
  25. package/dist/Components/ErrorHandler.js +0 -1
  26. package/dist/Components/FileManager/BoundFileManager.js +0 -1
  27. package/dist/Components/FileManager/FileManager.d.ts +6 -3
  28. package/dist/Components/FileManager/FileManager.js +28 -19
  29. package/dist/Components/FileManager/FileUploadBatch.js +0 -1
  30. package/dist/Components/FileManager/IFileManagerOptions.js +0 -1
  31. package/dist/Components/FormOptions.js +0 -1
  32. package/dist/Components/ICollapsableOptions.js +0 -1
  33. package/dist/Components/Modal/ModalHelper.js +0 -1
  34. package/dist/Components/Modal/ModalOptions.d.ts +2 -0
  35. package/dist/Components/Modal/ModalOptions.js +0 -1
  36. package/dist/Components/Modal/ModalStore.js +0 -1
  37. package/dist/Components/Modal/ModalUtils.js +0 -1
  38. package/dist/Components/Notifications/INotificationHelper.js +0 -1
  39. package/dist/Components/Notifications/Notification.js +0 -1
  40. package/dist/Components/Notifications/NotificationHelper.js +0 -1
  41. package/dist/Components/Notifications/NotificationStore.js +0 -1
  42. package/dist/Components/PositionHelper.js +0 -1
  43. package/dist/Components/TaskRunner/Decorators.d.ts +6 -0
  44. package/dist/Components/TaskRunner/Decorators.js +24 -0
  45. package/dist/Components/TaskRunner/ProgressState.js +0 -1
  46. package/dist/Components/TaskRunner/TaskRunner.d.ts +13 -4
  47. package/dist/Components/TaskRunner/TaskRunner.js +8 -2
  48. package/dist/Components/TooltipOptions.js +0 -1
  49. package/dist/Components/index.js +0 -1
  50. package/dist/ConnectionManager.js +0 -1
  51. package/dist/Data/ApiDataSource.js +0 -1
  52. package/dist/Data/AsyncDataSource.js +0 -1
  53. package/dist/Data/CacheService.js +0 -1
  54. package/dist/Data/DataCacheEntry.js +0 -1
  55. package/dist/Data/DataView.js +0 -1
  56. package/dist/Data/Deserialiser.js +0 -1
  57. package/dist/Data/Paging/PageManager.js +0 -1
  58. package/dist/Data/Paging/PageRequest.js +0 -1
  59. package/dist/Data/Paging/PageResult.js +0 -1
  60. package/dist/Data/Serialiser.js +22 -13
  61. package/dist/Data/SortOperation.js +0 -1
  62. package/dist/Data/StaticDataSource.js +0 -1
  63. package/dist/Data/WindowedDataView.js +0 -1
  64. package/dist/Data/index.js +0 -1
  65. package/dist/Dates/DateUtils.js +0 -1
  66. package/dist/Dates/TimeSpan.js +0 -1
  67. package/dist/DebounceHelper.js +0 -1
  68. package/dist/Extensions.js +0 -1
  69. package/dist/FileUtils.js +0 -1
  70. package/dist/Globals.d.ts +3 -0
  71. package/dist/Globals.js +11 -1
  72. package/dist/JsonSchema/ClassMetadata.js +0 -1
  73. package/dist/JsonSchema/JsonData.js +0 -1
  74. package/dist/JsonSchema/JsonSchemaTypes.js +0 -1
  75. package/dist/JsonSchema/PropertyMetadata.js +0 -1
  76. package/dist/JsonSchema/TypeCache.js +0 -1
  77. package/dist/JsonSchema/TypeMetadata.js +0 -1
  78. package/dist/JsonSchema/index.js +0 -1
  79. package/dist/Localisation/ILocalisationService.js +0 -1
  80. package/dist/Localisation/LocalisationService.js +0 -1
  81. package/dist/Localisation/index.js +0 -1
  82. package/dist/Misc.js +0 -1
  83. package/dist/Model/BaseModels/AuditValues.js +0 -1
  84. package/dist/Model/BaseModels/CriteriaBase.js +0 -1
  85. package/dist/Model/BaseModels/FileDescriptorBase.js +0 -1
  86. package/dist/Model/BaseModels/ReasonedUserEvent.js +0 -1
  87. package/dist/Model/BaseModels/UserEvent.js +0 -1
  88. package/dist/Model/BindableBase.js +0 -1
  89. package/dist/Model/Decorators.js +0 -1
  90. package/dist/Model/EnumHelper.d.ts +7 -0
  91. package/dist/Model/EnumHelper.js +18 -4
  92. package/dist/Model/IAutoRunner.d.ts +1 -1
  93. package/dist/Model/IAutoRunner.js +0 -1
  94. package/dist/Model/IModelBase.d.ts +1 -1
  95. package/dist/Model/IModelBase.js +0 -1
  96. package/dist/Model/IModelCreatorBase.js +0 -1
  97. package/dist/Model/List.js +0 -1
  98. package/dist/Model/LookupBase.js +0 -1
  99. package/dist/Model/Misc.d.ts +5 -1
  100. package/dist/Model/Misc.js +0 -1
  101. package/dist/Model/ModelBase.d.ts +1 -1
  102. package/dist/Model/ModelBase.js +0 -1
  103. package/dist/Model/ModelCreatorBase.js +0 -1
  104. package/dist/Model/ModelFieldInfo.js +0 -1
  105. package/dist/Model/ModelGraphTraverser.js +0 -1
  106. package/dist/Model/NeoModel.js +0 -1
  107. package/dist/Model/NeoTypeInfo.js +0 -1
  108. package/dist/Model/ObservableProperty.js +0 -1
  109. package/dist/Model/ObservableValue.js +0 -1
  110. package/dist/Model/PropertyInfo.js +2 -3
  111. package/dist/Model/PropertyInstance.js +0 -1
  112. package/dist/Model/ValueObject.js +0 -1
  113. package/dist/Model/index.js +0 -1
  114. package/dist/NumberUtils.js +3 -3
  115. package/dist/Routing/IMenuItemProvider.js +0 -1
  116. package/dist/Routing/IMenuRoute.js +0 -1
  117. package/dist/Routing/INavigationHelper.js +0 -1
  118. package/dist/Routing/IPageLeaveHandler.js +0 -1
  119. package/dist/Routing/IRoute.js +0 -1
  120. package/dist/Routing/IRouteSecurityService.js +0 -1
  121. package/dist/Routing/MenuItemProvider.js +0 -1
  122. package/dist/Routing/RouteSecurityService.js +0 -1
  123. package/dist/Routing/index.js +0 -1
  124. package/dist/Security/IAuthenticationService.js +0 -1
  125. package/dist/Security/IAuthorisationService.js +0 -1
  126. package/dist/Security/ILoginErrorHandler.js +0 -1
  127. package/dist/Security/ISecurityService.js +0 -1
  128. package/dist/Security/IUser.js +0 -1
  129. package/dist/Security/IUserRole.js +0 -1
  130. package/dist/Security/LoginErrorHandler.js +0 -1
  131. package/dist/Security/Oidc/OidcAuthService.js +0 -1
  132. package/dist/Security/Oidc/OidcTypes.js +0 -1
  133. package/dist/Security/Oidc/OidcUser.js +0 -1
  134. package/dist/Security/SecurityService.js +0 -1
  135. package/dist/Security/SignInResult.js +0 -1
  136. package/dist/Security/User.js +0 -1
  137. package/dist/Security/index.js +0 -1
  138. package/dist/Settings.js +0 -1
  139. package/dist/SignalR/HubBase.js +0 -1
  140. package/dist/SignalR/HubReceiver.js +0 -1
  141. package/dist/SignalR/HubSubscription.js +0 -1
  142. package/dist/SignalR/index.js +0 -1
  143. package/dist/StringUtils.js +0 -1
  144. package/dist/Utils.js +0 -1
  145. package/dist/Validation/Decorators.js +0 -1
  146. package/dist/Validation/DisplayHelper.js +0 -1
  147. package/dist/Validation/Misc.js +0 -1
  148. package/dist/Validation/ModelProxy.js +0 -1
  149. package/dist/Validation/RuleContext.js +0 -1
  150. package/dist/Validation/Rules.js +0 -1
  151. package/dist/Validation/ValidationHelpers.js +0 -1
  152. package/dist/Validation/ValidationRules.js +0 -1
  153. package/dist/Validation/ValidationState.js +0 -1
  154. package/dist/Validation/Validators/IModelValidator.js +0 -1
  155. package/dist/Validation/Validators/IPropertyValidator.js +0 -1
  156. package/dist/Validation/Validators/ModelValidator.js +0 -1
  157. package/dist/Validation/Validators/PropertyValidator.js +0 -1
  158. package/dist/Validation/Validators/RuleValidator.js +0 -1
  159. package/dist/Validation/index.js +0 -1
  160. package/dist/Views/IViewBase.js +0 -1
  161. package/dist/index.d.ts +2 -0
  162. package/dist/index.js +4 -1
  163. package/package.json +1 -1
  164. package/dist/ApiClient/ApiClientBase.js.map +0 -1
  165. package/dist/ApiClient/ReadApiClient.js.map +0 -1
  166. package/dist/ApiClient/UpdateableApiClient.js.map +0 -1
  167. package/dist/AppServices/AppService.js.map +0 -1
  168. package/dist/AppServices/Config/ConfigModel.js.map +0 -1
  169. package/dist/AppServices/Config/ConfigService.js.map +0 -1
  170. package/dist/AppServices/Module.js.map +0 -1
  171. package/dist/AppServices/NeoContainer.js.map +0 -1
  172. package/dist/AppServices/NeoModule.js.map +0 -1
  173. package/dist/AppServices/NeoTypes.js.map +0 -1
  174. package/dist/AppServices/ServiceIdentifier.js.map +0 -1
  175. package/dist/AppServices/index.js.map +0 -1
  176. package/dist/Components/AnimationHelper.js.map +0 -1
  177. package/dist/Components/BootstrapHelpers.js.map +0 -1
  178. package/dist/Components/BootstrapTypes.js.map +0 -1
  179. package/dist/Components/ButtonOptions.js.map +0 -1
  180. package/dist/Components/ContextMenu/ContextMenu.js.map +0 -1
  181. package/dist/Components/ContextMenu/MenuUtils.js.map +0 -1
  182. package/dist/Components/DatePicker/DatePicker.js.map +0 -1
  183. package/dist/Components/DatePicker/DatePickerOptions.js.map +0 -1
  184. package/dist/Components/ErrorHandler.js.map +0 -1
  185. package/dist/Components/FileManager/BoundFileManager.js.map +0 -1
  186. package/dist/Components/FileManager/FileManager.js.map +0 -1
  187. package/dist/Components/FileManager/FileUploadBatch.js.map +0 -1
  188. package/dist/Components/FileManager/IFileManagerOptions.js.map +0 -1
  189. package/dist/Components/FormOptions.js.map +0 -1
  190. package/dist/Components/ICollapsableOptions.js.map +0 -1
  191. package/dist/Components/Modal/ModalHelper.js.map +0 -1
  192. package/dist/Components/Modal/ModalOptions.js.map +0 -1
  193. package/dist/Components/Modal/ModalStore.js.map +0 -1
  194. package/dist/Components/Modal/ModalUtils.js.map +0 -1
  195. package/dist/Components/Notifications/INotificationHelper.js.map +0 -1
  196. package/dist/Components/Notifications/Notification.js.map +0 -1
  197. package/dist/Components/Notifications/NotificationHelper.js.map +0 -1
  198. package/dist/Components/Notifications/NotificationStore.js.map +0 -1
  199. package/dist/Components/PositionHelper.js.map +0 -1
  200. package/dist/Components/TaskRunner/ProgressState.js.map +0 -1
  201. package/dist/Components/TaskRunner/TaskRunner.js.map +0 -1
  202. package/dist/Components/TooltipOptions.js.map +0 -1
  203. package/dist/Components/index.js.map +0 -1
  204. package/dist/ConnectionManager.js.map +0 -1
  205. package/dist/Data/ApiDataSource.js.map +0 -1
  206. package/dist/Data/AsyncDataSource.js.map +0 -1
  207. package/dist/Data/CacheService.js.map +0 -1
  208. package/dist/Data/DataCacheEntry.js.map +0 -1
  209. package/dist/Data/DataView.js.map +0 -1
  210. package/dist/Data/Deserialiser.js.map +0 -1
  211. package/dist/Data/Paging/PageManager.js.map +0 -1
  212. package/dist/Data/Paging/PageRequest.js.map +0 -1
  213. package/dist/Data/Paging/PageResult.js.map +0 -1
  214. package/dist/Data/Serialiser.js.map +0 -1
  215. package/dist/Data/SortOperation.js.map +0 -1
  216. package/dist/Data/StaticDataSource.js.map +0 -1
  217. package/dist/Data/WindowedDataView.js.map +0 -1
  218. package/dist/Data/index.js.map +0 -1
  219. package/dist/Dates/DateUtils.js.map +0 -1
  220. package/dist/Dates/TimeSpan.js.map +0 -1
  221. package/dist/DebounceHelper.js.map +0 -1
  222. package/dist/Debouncer.d.ts +0 -39
  223. package/dist/Debouncer.js +0 -98
  224. package/dist/Debouncer.js.map +0 -1
  225. package/dist/Extensions.js.map +0 -1
  226. package/dist/FileUtils.js.map +0 -1
  227. package/dist/Globals.js.map +0 -1
  228. package/dist/JsonSchema/ClassMetadata.js.map +0 -1
  229. package/dist/JsonSchema/JsonData.js.map +0 -1
  230. package/dist/JsonSchema/JsonSchemaTypes.js.map +0 -1
  231. package/dist/JsonSchema/PropertyMetadata.js.map +0 -1
  232. package/dist/JsonSchema/TypeCache.js.map +0 -1
  233. package/dist/JsonSchema/TypeMetadata.js.map +0 -1
  234. package/dist/JsonSchema/index.js.map +0 -1
  235. package/dist/Localisation/ILocalisationService.js.map +0 -1
  236. package/dist/Localisation/LocalisationService.js.map +0 -1
  237. package/dist/Localisation/index.js.map +0 -1
  238. package/dist/Misc.js.map +0 -1
  239. package/dist/Model/BaseModels/AuditValues.js.map +0 -1
  240. package/dist/Model/BaseModels/CriteriaBase.js.map +0 -1
  241. package/dist/Model/BaseModels/FileDescriptorBase.js.map +0 -1
  242. package/dist/Model/BaseModels/ReasonedUserEvent.js.map +0 -1
  243. package/dist/Model/BaseModels/UserEvent.js.map +0 -1
  244. package/dist/Model/BindableBase.js.map +0 -1
  245. package/dist/Model/Decorators.js.map +0 -1
  246. package/dist/Model/EnumHelper.js.map +0 -1
  247. package/dist/Model/IAutoRunner.js.map +0 -1
  248. package/dist/Model/IModelBase.js.map +0 -1
  249. package/dist/Model/IModelCreatorBase.js.map +0 -1
  250. package/dist/Model/List.js.map +0 -1
  251. package/dist/Model/LookupBase.js.map +0 -1
  252. package/dist/Model/Misc.js.map +0 -1
  253. package/dist/Model/ModelBase.js.map +0 -1
  254. package/dist/Model/ModelCreatorBase.js.map +0 -1
  255. package/dist/Model/ModelFieldInfo.js.map +0 -1
  256. package/dist/Model/ModelGraphTraverser.js.map +0 -1
  257. package/dist/Model/NeoModel.js.map +0 -1
  258. package/dist/Model/NeoTypeInfo.js.map +0 -1
  259. package/dist/Model/ObservableProperty.js.map +0 -1
  260. package/dist/Model/ObservableValue.js.map +0 -1
  261. package/dist/Model/PropertyInfo.js.map +0 -1
  262. package/dist/Model/PropertyInstance.js.map +0 -1
  263. package/dist/Model/ValueObject.js.map +0 -1
  264. package/dist/Model/index.js.map +0 -1
  265. package/dist/NumberUtils.js.map +0 -1
  266. package/dist/Routing/IMenuItemProvider.js.map +0 -1
  267. package/dist/Routing/IMenuRoute.js.map +0 -1
  268. package/dist/Routing/INavigationHelper.js.map +0 -1
  269. package/dist/Routing/IPageLeaveHandler.js.map +0 -1
  270. package/dist/Routing/IRoute.js.map +0 -1
  271. package/dist/Routing/IRouteSecurityService.js.map +0 -1
  272. package/dist/Routing/MenuItemProvider.js.map +0 -1
  273. package/dist/Routing/RouteSecurityService.js.map +0 -1
  274. package/dist/Routing/index.js.map +0 -1
  275. package/dist/Security/IAuthenticationService.js.map +0 -1
  276. package/dist/Security/IAuthorisationService.js.map +0 -1
  277. package/dist/Security/ILoginErrorHandler.js.map +0 -1
  278. package/dist/Security/ISecurityService.js.map +0 -1
  279. package/dist/Security/IUser.js.map +0 -1
  280. package/dist/Security/IUserRole.js.map +0 -1
  281. package/dist/Security/LoginErrorHandler.js.map +0 -1
  282. package/dist/Security/Oidc/OidcAuthService.js.map +0 -1
  283. package/dist/Security/Oidc/OidcTypes.js.map +0 -1
  284. package/dist/Security/Oidc/OidcUser.js.map +0 -1
  285. package/dist/Security/SecurityService.js.map +0 -1
  286. package/dist/Security/SignInResult.js.map +0 -1
  287. package/dist/Security/User.js.map +0 -1
  288. package/dist/Security/index.js.map +0 -1
  289. package/dist/Settings.js.map +0 -1
  290. package/dist/SignalR/HubBase.js.map +0 -1
  291. package/dist/SignalR/HubReceiver.js.map +0 -1
  292. package/dist/SignalR/HubSubscription.js.map +0 -1
  293. package/dist/SignalR/index.js.map +0 -1
  294. package/dist/StringUtils.js.map +0 -1
  295. package/dist/Utils.js.map +0 -1
  296. package/dist/Validation/Decorators.js.map +0 -1
  297. package/dist/Validation/DisplayHelper.js.map +0 -1
  298. package/dist/Validation/Misc.js.map +0 -1
  299. package/dist/Validation/ModelProxy.js.map +0 -1
  300. package/dist/Validation/RuleContext.js.map +0 -1
  301. package/dist/Validation/Rules.js.map +0 -1
  302. package/dist/Validation/ValidationHelpers.js.map +0 -1
  303. package/dist/Validation/ValidationRules.js.map +0 -1
  304. package/dist/Validation/ValidationState.js.map +0 -1
  305. package/dist/Validation/Validators/IModelValidator.js.map +0 -1
  306. package/dist/Validation/Validators/IPropertyValidator.js.map +0 -1
  307. package/dist/Validation/Validators/ModelValidator.js.map +0 -1
  308. package/dist/Validation/Validators/PropertyValidator.js.map +0 -1
  309. package/dist/Validation/Validators/RuleValidator.js.map +0 -1
  310. package/dist/Validation/index.js.map +0 -1
  311. package/dist/Views/IViewBase.js.map +0 -1
  312. package/dist/index.js.map +0 -1
@@ -2,7 +2,8 @@ import { TrackingState, SerialiseType, RelationType, TimeZoneFormat, DataType }
2
2
  import { Deserialiser } from './Deserialiser';
3
3
  import ValueObject from '../Model/ValueObject';
4
4
  import DateUtils from '../Dates/DateUtils';
5
- import Decimal from 'decimal.js-light';
5
+ import Globals from '../Globals';
6
+ var referenceIdKey = Symbol("referenceId");
6
7
  var JSFormatter = /** @class */ (function () {
7
8
  function JSFormatter() {
8
9
  }
@@ -41,6 +42,7 @@ var Serialiser = /** @class */ (function () {
41
42
  if (options === void 0) { options = {}; }
42
43
  this.options = options;
43
44
  var to;
45
+ this.currentID = 1;
44
46
  if (fromObject instanceof Array) {
45
47
  to = [];
46
48
  this.serialiseArray(fromObject, to);
@@ -57,25 +59,33 @@ var Serialiser = /** @class */ (function () {
57
59
  */
58
60
  Serialiser.prototype.cleanUpObjects = function () {
59
61
  for (var id in this.objectRefs) {
60
- delete this.objectRefs[id].from.__id;
62
+ var refInfo = this.objectRefs[id];
63
+ delete refInfo.from[referenceIdKey];
64
+ // Remove $id property if object is not referenced by anything.
65
+ if (!refInfo.isReferenced) {
66
+ delete refInfo.to.$id;
67
+ }
61
68
  }
69
+ this.objectRefs = {};
62
70
  };
63
71
  Serialiser.prototype.serialiseObject = function (from, to, isDictionary) {
64
72
  if (isDictionary === void 0) { isDictionary = false; }
65
73
  //check that this object hasnt already been serialised.
66
- if (!from.__id) {
67
- from.__id = this.currentID++;
74
+ var referenceId = from[referenceIdKey];
75
+ if (!referenceId) {
76
+ referenceId = this.currentID++;
77
+ from[referenceIdKey] = referenceId;
68
78
  }
69
- var sid = (from.__id).toString();
70
- var toReference = this.objectRefs[sid];
71
- if (toReference) {
79
+ var referenceInfo = this.objectRefs[referenceId];
80
+ if (referenceInfo) {
72
81
  //already serialised this object
73
- to.$ref = sid;
74
- toReference.to.$id = sid;
82
+ referenceInfo.isReferenced = true;
83
+ to.$ref = referenceInfo.to.$id;
75
84
  return;
76
85
  }
77
86
  else {
78
- this.objectRefs[from.__id] = { from: from, to: to };
87
+ this.objectRefs[referenceId] = { from: from, to: to };
88
+ to.$id = referenceId.toString();
79
89
  }
80
90
  //Set tracking state
81
91
  if (!this.options.suppressTrackingState && !isDictionary) {
@@ -106,7 +116,7 @@ var Serialiser = /** @class */ (function () {
106
116
  propertyInfo.serialise !== SerialiseType.MappingOnly &&
107
117
  (propertyInfo.serialise !== SerialiseType.FullOnly || this.options.includeClean)) {
108
118
  var fromValue = from[key];
109
- var isChildObject = (fromValue && fromValue instanceof Object && !(fromValue instanceof Date) && !(fromValue instanceof Decimal)) || propertyInfo.relationType === RelationType.ChildObject;
119
+ var isChildObject = (fromValue && fromValue instanceof Object && !(fromValue instanceof Date) && !(fromValue instanceof Globals.decimalType)) || propertyInfo.relationType === RelationType.ChildObject;
110
120
  if (fromValue instanceof Array) {
111
121
  // Arrays of simple types are always included.
112
122
  if (!this.options.suppressChildren || (fromValue.length > 0 && !(fromValue[0] instanceof Object))) {
@@ -115,7 +125,7 @@ var Serialiser = /** @class */ (function () {
115
125
  }
116
126
  }
117
127
  else if (isChildObject && !propertyInfo.assignOnDeserialise) {
118
- if (!fromValue || (propertyInfo.relationType === RelationType.Parent && !fromValue.__id)) {
128
+ if (!fromValue || (propertyInfo.relationType === RelationType.Parent && !fromValue[referenceIdKey])) {
119
129
  // Parents must only be included if they reference an already serialised object.
120
130
  // Otherwise serialising a leaf node will serialise up the tree and the entire graph will be serialised.
121
131
  }
@@ -189,4 +199,3 @@ var Serialiser = /** @class */ (function () {
189
199
  return Serialiser;
190
200
  }());
191
201
  export { Serialiser };
192
- //# sourceMappingURL=Serialiser.js.map
@@ -24,4 +24,3 @@ var SortOperation = /** @class */ (function () {
24
24
  return SortOperation;
25
25
  }());
26
26
  export { SortOperation };
27
- //# sourceMappingURL=SortOperation.js.map
@@ -25,4 +25,3 @@ var StaticDataSource = /** @class */ (function (_super) {
25
25
  return StaticDataSource;
26
26
  }(AsyncDataSource));
27
27
  export { StaticDataSource };
28
- //# sourceMappingURL=StaticDataSource.js.map
@@ -48,4 +48,3 @@ var WindowedDataView = /** @class */ (function (_super) {
48
48
  return WindowedDataView;
49
49
  }(DataViewBase));
50
50
  export { WindowedDataView };
51
- //# sourceMappingURL=WindowedDataView.js.map
@@ -13,4 +13,3 @@ export * from '../ApiClient/UpdateableApiClient';
13
13
  export * from './Paging/PageManager';
14
14
  export * from './Paging/PageRequest';
15
15
  export * from './Paging/PageResult';
16
- //# sourceMappingURL=index.js.map
@@ -225,4 +225,3 @@ var DateUtils = /** @class */ (function () {
225
225
  return DateUtils;
226
226
  }());
227
227
  export default DateUtils;
228
- //# sourceMappingURL=DateUtils.js.map
@@ -44,4 +44,3 @@ var TimeSpan = /** @class */ (function () {
44
44
  return TimeSpan;
45
45
  }());
46
46
  export { TimeSpan };
47
- //# sourceMappingURL=TimeSpan.js.map
@@ -93,4 +93,3 @@ var DebounceHelper = /** @class */ (function () {
93
93
  return DebounceHelper;
94
94
  }());
95
95
  export { DebounceHelper };
96
- //# sourceMappingURL=DebounceHelper.js.map
@@ -183,4 +183,3 @@ Map.prototype.getOrAdd = function (key, valueCallback) {
183
183
  }
184
184
  return value;
185
185
  };
186
- //# sourceMappingURL=Extensions.js.map
package/dist/FileUtils.js CHANGED
@@ -35,4 +35,3 @@ var FileUtils = /** @class */ (function () {
35
35
  return FileUtils;
36
36
  }());
37
37
  export default FileUtils;
38
- //# sourceMappingURL=FileUtils.js.map
package/dist/Globals.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { IAppService } from './AppServices/AppService';
2
+ import Decimal from 'decimal.js-light';
2
3
  export default class Globals {
3
4
  /** Global app service which hosts the DI container. */
4
5
  static appService: IAppService;
@@ -13,4 +14,6 @@ export default class Globals {
13
14
  * Use this for adding elements to the root level.
14
15
  */
15
16
  static get rootElement(): HTMLElement | ShadowRoot;
17
+ private static _decimalType;
18
+ static get decimalType(): typeof Decimal;
16
19
  }
package/dist/Globals.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { NeoTypes } from './AppServices';
1
2
  var Globals = /** @class */ (function () {
2
3
  function Globals() {
3
4
  }
@@ -25,7 +26,16 @@ var Globals = /** @class */ (function () {
25
26
  enumerable: true,
26
27
  configurable: true
27
28
  });
29
+ Object.defineProperty(Globals, "decimalType", {
30
+ get: function () {
31
+ if (this._decimalType === undefined) {
32
+ this._decimalType = this.appService.get(NeoTypes.Misc.DecimalType);
33
+ }
34
+ return this._decimalType;
35
+ },
36
+ enumerable: true,
37
+ configurable: true
38
+ });
28
39
  return Globals;
29
40
  }());
30
41
  export default Globals;
31
- //# sourceMappingURL=Globals.js.map
@@ -51,4 +51,3 @@ var ClassMetadata = /** @class */ (function () {
51
51
  return ClassMetadata;
52
52
  }());
53
53
  export { ClassMetadata };
54
- //# sourceMappingURL=ClassMetadata.js.map
@@ -95,4 +95,3 @@ var JsonDereferencer = /** @class */ (function () {
95
95
  };
96
96
  return JsonDereferencer;
97
97
  }());
98
- //# sourceMappingURL=JsonData.js.map
@@ -1 +0,0 @@
1
- //# sourceMappingURL=JsonSchemaTypes.js.map
@@ -6,4 +6,3 @@ var PropertyMetadata = /** @class */ (function () {
6
6
  return PropertyMetadata;
7
7
  }());
8
8
  export { PropertyMetadata };
9
- //# sourceMappingURL=PropertyMetadata.js.map
@@ -42,4 +42,3 @@ var TypeCache = /** @class */ (function () {
42
42
  return TypeCache;
43
43
  }());
44
44
  export { TypeCache };
45
- //# sourceMappingURL=TypeCache.js.map
@@ -168,4 +168,3 @@ var TypeMetadata = /** @class */ (function () {
168
168
  return TypeMetadata;
169
169
  }());
170
170
  export { TypeMetadata };
171
- //# sourceMappingURL=TypeMetadata.js.map
@@ -4,4 +4,3 @@ import { TypeCache } from './TypeCache';
4
4
  import { TypeMetadata } from './TypeMetadata';
5
5
  import { JsonDataWithSchema } from './JsonData';
6
6
  export { ClassMetadata, PropertyMetadata, TypeCache, TypeMetadata, JsonDataWithSchema };
7
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- //# sourceMappingURL=ILocalisationService.js.map
@@ -15,4 +15,3 @@ var LocalisationService = /** @class */ (function () {
15
15
  return LocalisationService;
16
16
  }());
17
17
  export default LocalisationService;
18
- //# sourceMappingURL=LocalisationService.js.map
@@ -1 +0,0 @@
1
- //# sourceMappingURL=index.js.map
package/dist/Misc.js CHANGED
@@ -4,4 +4,3 @@ export { NumberFormat } from './NumberUtils';
4
4
  export { Settings } from './Settings';
5
5
  export { ErrorDisplayType } from './Components/ErrorHandler';
6
6
  export { ModalResult } from './Components/Modal/ModalUtils';
7
- //# sourceMappingURL=Misc.js.map
@@ -46,4 +46,3 @@ var AuditValues = /** @class */ (function (_super) {
46
46
  return AuditValues;
47
47
  }(AuditValuesBase));
48
48
  export { AuditValues };
49
- //# sourceMappingURL=AuditValues.js.map
@@ -32,4 +32,3 @@ var CriteriaBase = /** @class */ (function (_super) {
32
32
  return CriteriaBase;
33
33
  }(ValueObject));
34
34
  export { CriteriaBase };
35
- //# sourceMappingURL=CriteriaBase.js.map
@@ -20,4 +20,3 @@ var FileDescriptorBase = /** @class */ (function (_super) {
20
20
  return FileDescriptorBase;
21
21
  }(ModelBase));
22
22
  export { FileDescriptorBase };
23
- //# sourceMappingURL=FileDescriptorBase.js.map
@@ -17,4 +17,3 @@ var ReasonedUserEvent = /** @class */ (function (_super) {
17
17
  return ReasonedUserEvent;
18
18
  }(UserEventBase));
19
19
  export { ReasonedUserEvent };
20
- //# sourceMappingURL=ReasonedUserEvent.js.map
@@ -30,4 +30,3 @@ var UserEvent = /** @class */ (function (_super) {
30
30
  return UserEvent;
31
31
  }(UserEventBase));
32
32
  export { UserEvent };
33
- //# sourceMappingURL=UserEvent.js.map
@@ -74,4 +74,3 @@ var BindableBase = /** @class */ (function () {
74
74
  return BindableBase;
75
75
  }());
76
76
  export { BindableBase };
77
- //# sourceMappingURL=BindableBase.js.map
@@ -175,4 +175,3 @@ export function DisplayMember() {
175
175
  type.constructor.neo.displayMember = pi;
176
176
  };
177
177
  }
178
- //# sourceMappingURL=Decorators.js.map
@@ -2,6 +2,7 @@ import { StaticDataSource } from '../Data';
2
2
  export interface IEnumItem {
3
3
  id: number | string;
4
4
  name: string;
5
+ description?: string;
5
6
  }
6
7
  interface IEnumItemDescriptor {
7
8
  name: string;
@@ -43,5 +44,11 @@ export declare class EnumHelper {
43
44
  * @param enumItem Enum item. E.g. Status.Pending
44
45
  */
45
46
  static getItemMetadata<T>(enumType: T, enumItem: T[keyof T]): IEnumItemDescriptor;
47
+ /**
48
+ * Returns `true` if this item looks like an enum item.
49
+ *
50
+ * E.g. has an `id` and `name` property.
51
+ */
52
+ static isEnumItem(item: any): boolean;
46
53
  }
47
54
  export {};
@@ -50,18 +50,19 @@ var EnumHelper = /** @class */ (function () {
50
50
  for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
51
51
  var key = keys_1[_i];
52
52
  var id = enumObject[key];
53
- var name_1 = void 0;
53
+ var name_1 = void 0, description = void 0;
54
54
  var itemDescriptor = descriptorMap[id];
55
55
  if (itemDescriptor) {
56
56
  name_1 = itemDescriptor.display;
57
+ description = itemDescriptor.description;
57
58
  }
58
59
  else {
59
60
  name_1 = key.readable();
60
61
  }
61
- items.push({ id: id, name: name_1, order: itemDescriptor && itemDescriptor.order !== undefined ? itemDescriptor.order : index });
62
+ items.push({ id: id, name: name_1, description: description, order: itemDescriptor && itemDescriptor.order !== undefined ? itemDescriptor.order : index });
62
63
  index += 1;
63
64
  }
64
- return items.sortBy(function (c) { return c.order; }).map(function (item) { return ({ id: item.id, name: item.name }); });
65
+ return items.sortBy(function (c) { return c.order; }).map(function (item) { return ({ id: item.id, name: item.name, description: item.description }); });
65
66
  };
66
67
  /**
67
68
  * Gets the metadata for an enum item.
@@ -80,7 +81,20 @@ var EnumHelper = /** @class */ (function () {
80
81
  }
81
82
  return itemDescriptor;
82
83
  };
84
+ /**
85
+ * Returns `true` if this item looks like an enum item.
86
+ *
87
+ * E.g. has an `id` and `name` property.
88
+ */
89
+ EnumHelper.isEnumItem = function (item) {
90
+ if (typeof item === "object") {
91
+ var properties = Object.getOwnPropertyNames(item);
92
+ if (properties.length <= 3 && properties.some(function (c) { return c === "id"; }) && properties.some(function (c) { return c === "name"; })) {
93
+ return true;
94
+ }
95
+ }
96
+ return false;
97
+ };
83
98
  return EnumHelper;
84
99
  }());
85
100
  export { EnumHelper };
86
- //# sourceMappingURL=EnumHelper.js.map
@@ -1,5 +1,5 @@
1
1
  import { IModelBase } from './IModelBase';
2
2
  import { IAutoRunner, IAutoRunnerOptions } from './Misc';
3
3
  export interface IAutoRunnerFactory {
4
- create<T extends IModelBase>(model: T, callback: (model: T) => void, options?: IAutoRunnerOptions): IAutoRunner;
4
+ create<T extends IModelBase>(model: T, callback: (model: T) => void, options?: IAutoRunnerOptions<T>): IAutoRunner;
5
5
  }
@@ -1 +0,0 @@
1
- //# sourceMappingURL=IAutoRunner.js.map
@@ -58,7 +58,7 @@ export interface INonObservableModelBase extends IBindableBase {
58
58
  update(jsObject: any): void;
59
59
  toQueryObject(): PlainFlatObject<this>;
60
60
  toQueryObjectAuto(callback: (queryObject: PlainFlatObject<this>) => void, options?: IDebounceOptions): Misc.IAutoRunner;
61
- onAnyPropertyChanged(callback: () => void, options?: Misc.IAutoRunnerOptions): Misc.IAutoRunner;
61
+ onAnyPropertyChanged(callback: () => void, options?: Misc.IAutoRunnerOptions<this>): Misc.IAutoRunner;
62
62
  /** Icon to display next to toString() text. */
63
63
  getIcon(): string;
64
64
  }
@@ -1 +0,0 @@
1
- //# sourceMappingURL=IModelBase.js.map
@@ -1 +0,0 @@
1
- //# sourceMappingURL=IModelCreatorBase.js.map
@@ -214,4 +214,3 @@ var List = /** @class */ (function (_super) {
214
214
  return List;
215
215
  }(Array));
216
216
  export default List;
217
- //# sourceMappingURL=List.js.map
@@ -8,4 +8,3 @@ var LookupBase = /** @class */ (function (_super) {
8
8
  return LookupBase;
9
9
  }(BindableBase));
10
10
  export { LookupBase };
11
- //# sourceMappingURL=LookupBase.js.map
@@ -59,7 +59,7 @@ export interface IAutoRunner extends IDisposable {
59
59
  /** Cancels any pending callbacks. */
60
60
  cancelPending(): void;
61
61
  }
62
- export interface IAutoRunnerOptions extends IDebounceOptions {
62
+ export interface IAutoRunnerOptions<T> extends IDebounceOptions {
63
63
  /**
64
64
  * True if child objects should be included in addition to value objects.
65
65
  */
@@ -70,6 +70,10 @@ export interface IAutoRunnerOptions extends IDebounceOptions {
70
70
  * Removed items will still be observed, and items added to the list will not be observed.
71
71
  */
72
72
  includeChildLists?: boolean;
73
+ /**
74
+ * If specified, only these properties will be observed.
75
+ */
76
+ rootProperties?: (Extract<keyof T, string>)[];
73
77
  }
74
78
  export interface ISelectedItem {
75
79
  id: number | string;
@@ -57,4 +57,3 @@ export var TrackingState;
57
57
  TrackingState[TrackingState["Modified"] = 2] = "Modified";
58
58
  TrackingState[TrackingState["Deleted"] = 3] = "Deleted";
59
59
  })(TrackingState || (TrackingState = {}));
60
- //# sourceMappingURL=Misc.js.map
@@ -58,7 +58,7 @@ export default abstract class ModelBase extends BindableBase implements IModelBa
58
58
  * This is delayed for string and numeric properties.
59
59
  * You must call the disposer when you are done with this object.
60
60
  */
61
- onAnyPropertyChanged(callback: () => void, options?: Misc.IAutoRunnerOptions): Misc.IAutoRunner;
61
+ onAnyPropertyChanged(callback: () => void, options?: Misc.IAutoRunnerOptions<this>): Misc.IAutoRunner;
62
62
  /**
63
63
  * Converts a plain javascript object graph to a neo model graph.
64
64
  * Updates child lists - Items in the child list, but not in jsArray will remain in the list.
@@ -178,4 +178,3 @@ var ModelBase = /** @class */ (function (_super) {
178
178
  return ModelBase;
179
179
  }(BindableBase));
180
180
  export default ModelBase;
181
- //# sourceMappingURL=ModelBase.js.map
@@ -90,4 +90,3 @@ var ModelCreatorBase = /** @class */ (function () {
90
90
  return ModelCreatorBase;
91
91
  }());
92
92
  export { ModelCreatorBase };
93
- //# sourceMappingURL=ModelCreatorBase.js.map
@@ -24,4 +24,3 @@ var ModelFieldInfo = /** @class */ (function (_super) {
24
24
  return ModelFieldInfo;
25
25
  }(ValueObject));
26
26
  export { ModelFieldInfo };
27
- //# sourceMappingURL=ModelFieldInfo.js.map
@@ -97,4 +97,3 @@ function invokeOnSelfAndChildren(model, state, callback, listCallback, relationT
97
97
  }
98
98
  return state;
99
99
  }
100
- //# sourceMappingURL=ModelGraphTraverser.js.map
@@ -11,4 +11,3 @@ export default function NeoModel(target) {
11
11
  var newConstructor = ctor.neo.getOverrideConstructor();
12
12
  return newConstructor;
13
13
  }
14
- //# sourceMappingURL=NeoModel.js.map
@@ -249,4 +249,3 @@ function populateMetaItem(item, level) {
249
249
  }
250
250
  }
251
251
  }
252
- //# sourceMappingURL=NeoTypeInfo.js.map
@@ -39,4 +39,3 @@ var ObservableProperty = /** @class */ (function () {
39
39
  return ObservableProperty;
40
40
  }());
41
41
  export { ObservableProperty };
42
- //# sourceMappingURL=ObservableProperty.js.map
@@ -24,4 +24,3 @@ var ObservableValue = /** @class */ (function () {
24
24
  return ObservableValue;
25
25
  }());
26
26
  export { ObservableValue };
27
- //# sourceMappingURL=ObservableValue.js.map
@@ -1,6 +1,6 @@
1
1
  import { __spreadArrays } from "tslib";
2
2
  import { SerialiseType, RelationType, DataType } from './Misc';
3
- import Decimal from 'decimal.js-light';
3
+ import Globals from '../Globals';
4
4
  var PropertyInfo = /** @class */ (function () {
5
5
  function PropertyInfo(propertyName) {
6
6
  this.propertyName = propertyName;
@@ -127,7 +127,7 @@ var PropertyInfo = /** @class */ (function () {
127
127
  PropertyInfo.prototype.setupFromInstance = function (instance) {
128
128
  var value = instance[this.propertyName];
129
129
  if (value) {
130
- if (value instanceof Decimal) {
130
+ if (value instanceof Globals.decimalType) {
131
131
  this.propertyType = DataType.Decimal;
132
132
  }
133
133
  }
@@ -135,4 +135,3 @@ var PropertyInfo = /** @class */ (function () {
135
135
  return PropertyInfo;
136
136
  }());
137
137
  export default PropertyInfo;
138
- //# sourceMappingURL=PropertyInfo.js.map
@@ -111,4 +111,3 @@ var PropertyAccessor = /** @class */ (function () {
111
111
  return PropertyAccessor;
112
112
  }());
113
113
  export { PropertyAccessor };
114
- //# sourceMappingURL=PropertyInstance.js.map
@@ -8,4 +8,3 @@ var ValueObject = /** @class */ (function (_super) {
8
8
  return ValueObject;
9
9
  }(ModelBase));
10
10
  export default ValueObject;
11
- //# sourceMappingURL=ValueObject.js.map
@@ -10,4 +10,3 @@ export { FileDescriptorBase } from './BaseModels/FileDescriptorBase';
10
10
  export { ReasonedUserEvent } from './BaseModels/ReasonedUserEvent';
11
11
  export { UserEventBase, UserEvent } from './BaseModels/UserEvent';
12
12
  export { CriteriaBase } from './BaseModels/CriteriaBase';
13
- //# sourceMappingURL=index.js.map
@@ -1,5 +1,6 @@
1
1
  import Decimal from "decimal.js-light";
2
2
  import { DataType } from "./Model/Misc";
3
+ import Globals from './Globals';
3
4
  export var NumberFormat;
4
5
  (function (NumberFormat) {
5
6
  // Mask is [Thousands Seperator, Decimals (2 places), Percent, Currency Symbol]
@@ -52,7 +53,7 @@ var NumberUtils = /** @class */ (function () {
52
53
  var parts = formatString.split(";");
53
54
  var part = number > 0 || parts.length == 1 ? parts[0] : parts[1];
54
55
  var decimals = Math.max(0, NumberUtils.getDecimals(part, part.indexOf("%") >= 0 || hasExternalPercentSymbol).length - 1);
55
- if (number instanceof Decimal) {
56
+ if (number instanceof Globals.decimalType) {
56
57
  // Round away from zero.
57
58
  return number.toDecimalPlaces(decimals, Decimal.ROUND_HALF_UP);
58
59
  }
@@ -77,7 +78,7 @@ var NumberUtils = /** @class */ (function () {
77
78
  return "" + (isPercent ? ".##" : "");
78
79
  };
79
80
  NumberUtils.format = function (number, format, currencySymbol) {
80
- if (number instanceof Decimal) {
81
+ if (number instanceof Globals.decimalType) {
81
82
  number = number.toNumber();
82
83
  }
83
84
  if (number !== null && typeof number === "object") {
@@ -194,4 +195,3 @@ var NumberUtils = /** @class */ (function () {
194
195
  }());
195
196
  export default NumberUtils;
196
197
  NumberUtils.initialise();
197
- //# sourceMappingURL=NumberUtils.js.map
@@ -1 +0,0 @@
1
- //# sourceMappingURL=IMenuItemProvider.js.map
@@ -1 +0,0 @@
1
- //# sourceMappingURL=IMenuRoute.js.map
@@ -1 +0,0 @@
1
- //# sourceMappingURL=INavigationHelper.js.map
@@ -5,4 +5,3 @@ export var NavigateLocation;
5
5
  /** Navigating to another site / closing the browser. */
6
6
  NavigateLocation[NavigateLocation["External"] = 1] = "External";
7
7
  })(NavigateLocation || (NavigateLocation = {}));
8
- //# sourceMappingURL=IPageLeaveHandler.js.map
@@ -1 +0,0 @@
1
- //# sourceMappingURL=IRoute.js.map
@@ -1 +0,0 @@
1
- //# sourceMappingURL=IRouteSecurityService.js.map
@@ -52,4 +52,3 @@ var MenuItemProvider = /** @class */ (function () {
52
52
  return MenuItemProvider;
53
53
  }());
54
54
  export { MenuItemProvider };
55
- //# sourceMappingURL=MenuItemProvider.js.map
@@ -34,4 +34,3 @@ var RouteSecurityService = /** @class */ (function () {
34
34
  return RouteSecurityService;
35
35
  }());
36
36
  export { RouteSecurityService };
37
- //# sourceMappingURL=RouteSecurityService.js.map
@@ -1,4 +1,3 @@
1
1
  export { MenuItemProvider } from './MenuItemProvider';
2
2
  export { NavigateLocation } from './IPageLeaveHandler';
3
3
  export { RouteSecurityService } from './RouteSecurityService';
4
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- //# sourceMappingURL=IAuthenticationService.js.map
@@ -1 +0,0 @@
1
- //# sourceMappingURL=IAuthorisationService.js.map
@@ -1 +0,0 @@
1
- //# sourceMappingURL=ILoginErrorHandler.js.map
@@ -1 +0,0 @@
1
- //# sourceMappingURL=ISecurityService.js.map
@@ -1 +0,0 @@
1
- //# sourceMappingURL=IUser.js.map
@@ -1 +0,0 @@
1
- //# sourceMappingURL=IUserRole.js.map
@@ -96,4 +96,3 @@ var NeoLoginErrorHandler = /** @class */ (function () {
96
96
  return NeoLoginErrorHandler;
97
97
  }());
98
98
  export { NeoLoginErrorHandler };
99
- //# sourceMappingURL=LoginErrorHandler.js.map
@@ -182,4 +182,3 @@ var OidcAuthService = /** @class */ (function () {
182
182
  return OidcAuthService;
183
183
  }());
184
184
  export default OidcAuthService;
185
- //# sourceMappingURL=OidcAuthService.js.map
@@ -1 +0,0 @@
1
- //# sourceMappingURL=OidcTypes.js.map