@singularsystems/neo-core 1.0.0-alpha.3 → 1.0.0-beta.0

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 (299) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +1 -1
  3. package/dist/ApiClient/ApiClientBase.d.ts +5 -5
  4. package/dist/ApiClient/ApiClientBase.js +13 -13
  5. package/dist/ApiClient/ReadApiClient.d.ts +16 -16
  6. package/dist/ApiClient/ReadApiClient.js +24 -24
  7. package/dist/ApiClient/UpdateableApiClient.d.ts +28 -28
  8. package/dist/ApiClient/UpdateableApiClient.js +33 -33
  9. package/dist/AppServices/AppService.d.ts +46 -46
  10. package/dist/AppServices/AppService.js +25 -25
  11. package/dist/AppServices/Config/ConfigModel.d.ts +21 -20
  12. package/dist/AppServices/Config/ConfigModel.js +28 -17
  13. package/dist/AppServices/Config/ConfigService.d.ts +15 -15
  14. package/dist/AppServices/Config/ConfigService.js +49 -53
  15. package/dist/AppServices/Module.d.ts +11 -11
  16. package/dist/AppServices/Module.js +13 -13
  17. package/dist/AppServices/NeoContainer.d.ts +22 -22
  18. package/dist/AppServices/NeoContainer.js +42 -42
  19. package/dist/AppServices/NeoModule.d.ts +3 -3
  20. package/dist/AppServices/NeoModule.js +30 -30
  21. package/dist/AppServices/NeoTypes.d.ts +61 -61
  22. package/dist/AppServices/NeoTypes.js +42 -42
  23. package/dist/AppServices/ServiceIdentifier.d.ts +23 -23
  24. package/dist/AppServices/ServiceIdentifier.js +38 -39
  25. package/dist/AppServices/index.d.ts +7 -7
  26. package/dist/AppServices/index.js +7 -7
  27. package/dist/Components/AnimationHelper.d.ts +69 -69
  28. package/dist/Components/AnimationHelper.js +182 -182
  29. package/dist/Components/BootstrapHelpers.d.ts +8 -8
  30. package/dist/Components/BootstrapHelpers.js +30 -30
  31. package/dist/Components/BootstrapTypes.d.ts +35 -35
  32. package/dist/Components/BootstrapTypes.js +1 -1
  33. package/dist/Components/ButtonOptions.d.ts +63 -61
  34. package/dist/Components/ButtonOptions.js +1 -1
  35. package/dist/Components/ContextMenu/ContextMenu.d.ts +16 -16
  36. package/dist/Components/ContextMenu/ContextMenu.js +1 -1
  37. package/dist/Components/ContextMenu/MenuUtils.d.ts +16 -16
  38. package/dist/Components/ContextMenu/MenuUtils.js +34 -34
  39. package/dist/Components/DatePicker/DatePicker.d.ts +70 -69
  40. package/dist/Components/DatePicker/DatePicker.js +510 -487
  41. package/dist/Components/DatePicker/DatePickerOptions.d.ts +43 -34
  42. package/dist/Components/DatePicker/DatePickerOptions.js +33 -33
  43. package/dist/Components/ErrorHandler.d.ts +63 -55
  44. package/dist/Components/ErrorHandler.js +211 -138
  45. package/dist/Components/FileManager/BoundFileManager.d.ts +18 -18
  46. package/dist/Components/FileManager/BoundFileManager.js +60 -60
  47. package/dist/Components/FileManager/FileManager.d.ts +80 -78
  48. package/dist/Components/FileManager/FileManager.js +277 -257
  49. package/dist/Components/FileManager/FileUploadBatch.d.ts +37 -37
  50. package/dist/Components/FileManager/FileUploadBatch.js +83 -82
  51. package/dist/Components/FileManager/IFileManagerOptions.d.ts +42 -42
  52. package/dist/Components/FileManager/IFileManagerOptions.js +1 -1
  53. package/dist/Components/FormOptions.d.ts +34 -34
  54. package/dist/Components/FormOptions.js +1 -1
  55. package/dist/Components/ICollapsableOptions.d.ts +11 -11
  56. package/dist/Components/ICollapsableOptions.js +1 -1
  57. package/dist/Components/Modal/ModalHelper.d.ts +31 -31
  58. package/dist/Components/Modal/ModalHelper.js +174 -174
  59. package/dist/Components/Modal/ModalOptions.d.ts +61 -61
  60. package/dist/Components/Modal/ModalOptions.js +1 -1
  61. package/dist/Components/Modal/ModalStore.d.ts +32 -32
  62. package/dist/Components/Modal/ModalStore.js +82 -82
  63. package/dist/Components/Modal/ModalUtils.d.ts +61 -61
  64. package/dist/Components/Modal/ModalUtils.js +109 -109
  65. package/dist/Components/Notifications/INotificationHelper.d.ts +56 -56
  66. package/dist/Components/Notifications/INotificationHelper.js +1 -1
  67. package/dist/Components/Notifications/Notification.d.ts +32 -32
  68. package/dist/Components/Notifications/Notification.js +26 -27
  69. package/dist/Components/Notifications/NotificationHelper.d.ts +63 -63
  70. package/dist/Components/Notifications/NotificationHelper.js +111 -112
  71. package/dist/Components/Notifications/NotificationStore.d.ts +34 -34
  72. package/dist/Components/Notifications/NotificationStore.js +78 -79
  73. package/dist/Components/PositionHelper.d.ts +10 -10
  74. package/dist/Components/PositionHelper.js +43 -43
  75. package/dist/Components/TaskRunner/Decorators.d.ts +6 -6
  76. package/dist/Components/TaskRunner/Decorators.js +24 -24
  77. package/dist/Components/TaskRunner/ProgressState.d.ts +22 -22
  78. package/dist/Components/TaskRunner/ProgressState.js +71 -72
  79. package/dist/Components/TaskRunner/TaskRunner.d.ts +114 -114
  80. package/dist/Components/TaskRunner/TaskRunner.js +253 -244
  81. package/dist/Components/TooltipOptions.d.ts +8 -8
  82. package/dist/Components/TooltipOptions.js +1 -1
  83. package/dist/Components/index.d.ts +22 -22
  84. package/dist/Components/index.js +13 -13
  85. package/dist/ConnectionManager.d.ts +45 -45
  86. package/dist/ConnectionManager.js +60 -61
  87. package/dist/Data/ApiDataSource.d.ts +46 -46
  88. package/dist/Data/ApiDataSource.js +140 -144
  89. package/dist/Data/AsyncDataSource.d.ts +35 -35
  90. package/dist/Data/AsyncDataSource.js +79 -80
  91. package/dist/Data/CacheService.d.ts +40 -40
  92. package/dist/Data/CacheService.js +63 -64
  93. package/dist/Data/DataCacheEntry.d.ts +42 -42
  94. package/dist/Data/DataCacheEntry.js +80 -80
  95. package/dist/Data/DataView.d.ts +43 -43
  96. package/dist/Data/DataView.js +173 -172
  97. package/dist/Data/Deserialiser.d.ts +42 -42
  98. package/dist/Data/Deserialiser.js +255 -255
  99. package/dist/Data/Paging/PageManager.d.ts +167 -167
  100. package/dist/Data/Paging/PageManager.js +323 -323
  101. package/dist/Data/Paging/PageRequest.d.ts +24 -24
  102. package/dist/Data/Paging/PageRequest.js +38 -39
  103. package/dist/Data/Paging/PageResult.d.ts +10 -10
  104. package/dist/Data/Paging/PageResult.js +14 -14
  105. package/dist/Data/Serialiser.d.ts +41 -41
  106. package/dist/Data/Serialiser.js +201 -201
  107. package/dist/Data/SortOperation.d.ts +8 -8
  108. package/dist/Data/SortOperation.js +26 -26
  109. package/dist/Data/StaticDataSource.d.ts +9 -9
  110. package/dist/Data/StaticDataSource.js +27 -27
  111. package/dist/Data/WindowedDataView.d.ts +8 -8
  112. package/dist/Data/WindowedDataView.js +49 -50
  113. package/dist/Data/index.d.ts +15 -15
  114. package/dist/Data/index.js +15 -15
  115. package/dist/Dates/DateUtils.d.ts +47 -47
  116. package/dist/Dates/DateUtils.js +226 -226
  117. package/dist/Dates/TimeSpan.d.ts +24 -24
  118. package/dist/Dates/TimeSpan.js +46 -46
  119. package/dist/DebounceHelper.d.ts +44 -38
  120. package/dist/DebounceHelper.js +122 -95
  121. package/dist/Extensions.d.ts +82 -82
  122. package/dist/Extensions.js +182 -182
  123. package/dist/FileUtils.d.ts +6 -6
  124. package/dist/FileUtils.js +37 -37
  125. package/dist/Globals.d.ts +19 -19
  126. package/dist/Globals.js +41 -41
  127. package/dist/JsonSchema/ClassMetadata.d.ts +25 -25
  128. package/dist/JsonSchema/ClassMetadata.js +53 -53
  129. package/dist/JsonSchema/JsonData.d.ts +16 -16
  130. package/dist/JsonSchema/JsonData.js +97 -97
  131. package/dist/JsonSchema/JsonSchemaTypes.d.ts +37 -37
  132. package/dist/JsonSchema/JsonSchemaTypes.js +1 -1
  133. package/dist/JsonSchema/PropertyMetadata.d.ts +8 -8
  134. package/dist/JsonSchema/PropertyMetadata.js +8 -8
  135. package/dist/JsonSchema/TypeCache.d.ts +16 -16
  136. package/dist/JsonSchema/TypeCache.js +44 -44
  137. package/dist/JsonSchema/TypeMetadata.d.ts +45 -45
  138. package/dist/JsonSchema/TypeMetadata.js +170 -170
  139. package/dist/JsonSchema/index.d.ts +7 -7
  140. package/dist/JsonSchema/index.js +6 -6
  141. package/dist/Localisation/ILocalisationService.d.ts +11 -11
  142. package/dist/Localisation/ILocalisationService.js +1 -1
  143. package/dist/Localisation/LocalisationService.d.ts +4 -4
  144. package/dist/Localisation/LocalisationService.js +17 -17
  145. package/dist/Localisation/index.d.ts +1 -1
  146. package/dist/Localisation/index.js +1 -1
  147. package/dist/Misc.d.ts +6 -6
  148. package/dist/Misc.js +6 -6
  149. package/dist/Model/BaseModels/AuditValues.d.ts +12 -12
  150. package/dist/Model/BaseModels/AuditValues.js +46 -48
  151. package/dist/Model/BaseModels/CriteriaBase.d.ts +18 -16
  152. package/dist/Model/BaseModels/CriteriaBase.js +45 -34
  153. package/dist/Model/BaseModels/FileDescriptorBase.d.ts +12 -12
  154. package/dist/Model/BaseModels/FileDescriptorBase.js +22 -22
  155. package/dist/Model/BaseModels/ReasonedUserEvent.d.ts +5 -4
  156. package/dist/Model/BaseModels/ReasonedUserEvent.js +23 -19
  157. package/dist/Model/BaseModels/UserEvent.d.ts +9 -8
  158. package/dist/Model/BaseModels/UserEvent.js +36 -32
  159. package/dist/Model/BindableBase.d.ts +46 -40
  160. package/dist/Model/BindableBase.js +82 -76
  161. package/dist/Model/Decorators.d.ts +50 -44
  162. package/dist/Model/Decorators.js +189 -177
  163. package/dist/Model/EnumHelper.d.ts +54 -54
  164. package/dist/Model/EnumHelper.js +104 -100
  165. package/dist/Model/IAutoRunner.d.ts +5 -5
  166. package/dist/Model/IAutoRunner.js +1 -1
  167. package/dist/Model/IModelBase.d.ts +101 -79
  168. package/dist/Model/IModelBase.js +1 -1
  169. package/dist/Model/IModelCreatorBase.d.ts +9 -9
  170. package/dist/Model/IModelCreatorBase.js +1 -1
  171. package/dist/Model/List.d.ts +79 -77
  172. package/dist/Model/List.js +208 -198
  173. package/dist/Model/LookupBase.d.ts +13 -6
  174. package/dist/Model/LookupBase.js +19 -10
  175. package/dist/Model/MethodInfo.d.ts +8 -0
  176. package/dist/Model/MethodInfo.js +7 -0
  177. package/dist/Model/Misc.d.ts +83 -81
  178. package/dist/Model/Misc.js +59 -59
  179. package/dist/Model/ModelBase.d.ts +88 -86
  180. package/dist/Model/ModelBase.js +189 -180
  181. package/dist/Model/ModelCreatorBase.d.ts +23 -23
  182. package/dist/Model/ModelCreatorBase.js +91 -92
  183. package/dist/Model/ModelFieldInfo.d.ts +29 -12
  184. package/dist/Model/ModelFieldInfo.js +35 -26
  185. package/dist/Model/ModelGraphTraverser.d.ts +35 -35
  186. package/dist/Model/ModelGraphTraverser.js +101 -99
  187. package/dist/Model/NeoModel.d.ts +6 -6
  188. package/dist/Model/NeoModel.js +13 -13
  189. package/dist/Model/NeoTypeInfo.d.ts +55 -41
  190. package/dist/Model/NeoTypeInfo.js +319 -250
  191. package/dist/Model/ObservableProperty.d.ts +8 -8
  192. package/dist/Model/ObservableProperty.js +41 -41
  193. package/dist/Model/ObservableValue.d.ts +9 -9
  194. package/dist/Model/ObservableValue.js +25 -26
  195. package/dist/Model/PropertyInfo.d.ts +83 -81
  196. package/dist/Model/PropertyInfo.js +137 -137
  197. package/dist/Model/PropertyInstance.d.ts +84 -48
  198. package/dist/Model/PropertyInstance.js +173 -113
  199. package/dist/Model/ValueObject.d.ts +3 -3
  200. package/dist/Model/ValueObject.js +10 -10
  201. package/dist/Model/index.d.ts +15 -14
  202. package/dist/Model/index.js +13 -12
  203. package/dist/NumberUtils.d.ts +63 -49
  204. package/dist/NumberUtils.js +247 -197
  205. package/dist/Routing/IMenuItemProvider.d.ts +9 -9
  206. package/dist/Routing/IMenuItemProvider.js +1 -1
  207. package/dist/Routing/IMenuRoute.d.ts +18 -18
  208. package/dist/Routing/IMenuRoute.js +1 -1
  209. package/dist/Routing/INavigationHelper.d.ts +7 -7
  210. package/dist/Routing/INavigationHelper.js +1 -1
  211. package/dist/Routing/IPageLeaveHandler.d.ts +23 -23
  212. package/dist/Routing/IPageLeaveHandler.js +7 -7
  213. package/dist/Routing/IRoute.d.ts +27 -27
  214. package/dist/Routing/IRoute.js +1 -1
  215. package/dist/Routing/IRouteSecurityService.d.ts +14 -14
  216. package/dist/Routing/IRouteSecurityService.js +1 -1
  217. package/dist/Routing/MenuItemProvider.d.ts +17 -17
  218. package/dist/Routing/MenuItemProvider.js +53 -54
  219. package/dist/Routing/RouteSecurityService.d.ts +18 -18
  220. package/dist/Routing/RouteSecurityService.js +35 -36
  221. package/dist/Routing/index.d.ts +7 -7
  222. package/dist/Routing/index.js +3 -3
  223. package/dist/Security/IAuthenticationService.d.ts +41 -36
  224. package/dist/Security/IAuthenticationService.js +1 -1
  225. package/dist/Security/IAuthorisationService.d.ts +11 -11
  226. package/dist/Security/IAuthorisationService.js +1 -1
  227. package/dist/Security/ILoginErrorHandler.d.ts +4 -4
  228. package/dist/Security/ILoginErrorHandler.js +1 -1
  229. package/dist/Security/ISecurityService.d.ts +10 -10
  230. package/dist/Security/ISecurityService.js +1 -1
  231. package/dist/Security/IUser.d.ts +10 -10
  232. package/dist/Security/IUser.js +1 -1
  233. package/dist/Security/IUserRole.d.ts +6 -6
  234. package/dist/Security/IUserRole.js +1 -1
  235. package/dist/Security/LoginErrorHandler.d.ts +15 -15
  236. package/dist/Security/LoginErrorHandler.js +97 -98
  237. package/dist/Security/Oidc/OidcAuthService.d.ts +67 -60
  238. package/dist/Security/Oidc/OidcAuthService.js +216 -189
  239. package/dist/Security/Oidc/OidcTypes.d.ts +46 -29
  240. package/dist/Security/Oidc/OidcTypes.js +1 -1
  241. package/dist/Security/Oidc/OidcUser.d.ts +9 -9
  242. package/dist/Security/Oidc/OidcUser.js +33 -33
  243. package/dist/Security/SecurityService.d.ts +12 -12
  244. package/dist/Security/SecurityService.js +33 -34
  245. package/dist/Security/SignInResult.d.ts +13 -13
  246. package/dist/Security/SignInResult.js +8 -8
  247. package/dist/Security/User.d.ts +12 -12
  248. package/dist/Security/User.js +24 -24
  249. package/dist/Security/index.d.ts +10 -10
  250. package/dist/Security/index.js +5 -5
  251. package/dist/Settings.d.ts +71 -57
  252. package/dist/Settings.js +100 -87
  253. package/dist/SignalR/HubBase.d.ts +70 -70
  254. package/dist/SignalR/HubBase.js +164 -164
  255. package/dist/SignalR/HubReceiver.d.ts +11 -11
  256. package/dist/SignalR/HubReceiver.js +25 -25
  257. package/dist/SignalR/HubSubscription.d.ts +12 -12
  258. package/dist/SignalR/HubSubscription.js +14 -14
  259. package/dist/SignalR/index.d.ts +3 -3
  260. package/dist/SignalR/index.js +1 -1
  261. package/dist/StringUtils.d.ts +7 -7
  262. package/dist/StringUtils.js +24 -24
  263. package/dist/Utils.d.ts +81 -80
  264. package/dist/Utils.js +220 -218
  265. package/dist/Validation/Decorators.d.ts +12 -12
  266. package/dist/Validation/Decorators.js +52 -52
  267. package/dist/Validation/DisplayHelper.d.ts +20 -19
  268. package/dist/Validation/DisplayHelper.js +104 -104
  269. package/dist/Validation/Misc.d.ts +10 -10
  270. package/dist/Validation/Misc.js +11 -11
  271. package/dist/Validation/ModelProxy.d.ts +20 -20
  272. package/dist/Validation/ModelProxy.js +46 -46
  273. package/dist/Validation/RuleContext.d.ts +86 -86
  274. package/dist/Validation/RuleContext.js +130 -130
  275. package/dist/Validation/Rules.d.ts +70 -70
  276. package/dist/Validation/Rules.js +177 -177
  277. package/dist/Validation/ValidationHelpers.d.ts +12 -12
  278. package/dist/Validation/ValidationHelpers.js +57 -57
  279. package/dist/Validation/ValidationRules.d.ts +18 -18
  280. package/dist/Validation/ValidationRules.js +34 -34
  281. package/dist/Validation/ValidationState.d.ts +42 -42
  282. package/dist/Validation/ValidationState.js +74 -74
  283. package/dist/Validation/Validators/IModelValidator.d.ts +28 -24
  284. package/dist/Validation/Validators/IModelValidator.js +1 -1
  285. package/dist/Validation/Validators/IPropertyValidator.d.ts +21 -21
  286. package/dist/Validation/Validators/IPropertyValidator.js +15 -15
  287. package/dist/Validation/Validators/ModelValidator.d.ts +46 -45
  288. package/dist/Validation/Validators/ModelValidator.js +143 -137
  289. package/dist/Validation/Validators/PropertyValidator.d.ts +21 -21
  290. package/dist/Validation/Validators/PropertyValidator.js +64 -67
  291. package/dist/Validation/Validators/RuleValidator.d.ts +19 -19
  292. package/dist/Validation/Validators/RuleValidator.js +51 -55
  293. package/dist/Validation/index.d.ts +9 -9
  294. package/dist/Validation/index.js +7 -7
  295. package/dist/Views/IViewBase.d.ts +5 -5
  296. package/dist/Views/IViewBase.js +1 -1
  297. package/dist/index.d.ts +37 -36
  298. package/dist/index.js +44 -43
  299. package/package.json +11 -10
@@ -1,198 +1,208 @@
1
- import { __assign, __extends } from "tslib";
2
- import { JSFormatter } from '../Data/Serialiser';
3
- import { Utils } from '../Utils';
4
- import { ObservableValue } from './ObservableValue';
5
- var List = /** @class */ (function (_super) {
6
- __extends(List, _super);
7
- function List(childObjectType) {
8
- var _this = _super.call(this) || this;
9
- _this.childObjectType = childObjectType;
10
- _this._deletedList = new ObservableValue([]);
11
- List.copyMethods(_this);
12
- return _this;
13
- }
14
- Object.defineProperty(List.prototype, "deletedList", {
15
- get: function () {
16
- return this._deletedList.value;
17
- },
18
- enumerable: false,
19
- configurable: true
20
- });
21
- /**
22
- * Copies the methods and properties from the prototype to the new instance.
23
- * This is needed because vue / mobx changes the prototype to its own.
24
- */
25
- List.copyMethods = function (toInstance) {
26
- toInstance.baseMethods = {};
27
- for (var _i = 0, _a = Object.getOwnPropertyNames(this.prototype); _i < _a.length; _i++) {
28
- var propertyName = _a[_i];
29
- if (propertyName !== "constructor") {
30
- var descriptor = Object.getOwnPropertyDescriptor(this.prototype, propertyName);
31
- if (descriptor.value !== void 0) {
32
- // Method
33
- if (toInstance[propertyName]) {
34
- toInstance.baseMethods[propertyName] = toInstance[propertyName];
35
- }
36
- toInstance[propertyName] = this.prototype[propertyName];
37
- }
38
- else if (descriptor.get) {
39
- Object.defineProperty(toInstance, propertyName, descriptor);
40
- }
41
- }
42
- }
43
- };
44
- List.prototype.setupProxy = function (proxy, attachedTo) {
45
- proxy.childObjectType = this.childObjectType;
46
- proxy._deletedList = new ObservableValue([]);
47
- proxy.attachedTo = attachedTo;
48
- };
49
- List.prototype.toJSArray = function (options) {
50
- if (options === void 0) { options = {}; }
51
- return JSFormatter.serialise(this, options);
52
- };
53
- /**
54
- * Converts a plain javascript Array to a neo model graph.
55
- * Replaces a list - Items in the list, but not in jsArray will be removed.
56
- * If you need missing items to remain, use update() instead.
57
- * This will generally be used after calling toJSArray(includeClean = true)
58
- * */
59
- List.prototype.set = function (jsArray, options) {
60
- JSFormatter.deserialise(jsArray, this, this.childObjectType, __assign({ removeOldItems: true }, options));
61
- };
62
- /**
63
- * Converts a plain javascript Array to a neo model graph.
64
- * Updates a list - Items in the list, but not in jsArray will remain in the list.
65
- * If you need to replace the List with jsArray, use set() instead.
66
- * This will generally be used after calling toJSArray(includeClean = false)
67
- * */
68
- List.prototype.update = function (jsArray, options) {
69
- JSFormatter.deserialise(jsArray, this, this.childObjectType, options);
70
- };
71
- /**
72
- * Converts a plain javascript array into a neo model graph.
73
- */
74
- List.fromJSArray = function (childType, jsArray, options) {
75
- var list = new List(childType);
76
- list.set(jsArray, options);
77
- return list;
78
- };
79
- /** Creates a new item of type T */
80
- List.prototype.createChild = function () {
81
- return new this.childObjectType();
82
- };
83
- List.prototype.push = function () {
84
- var _this = this;
85
- var items = [];
86
- for (var _i = 0; _i < arguments.length; _i++) {
87
- items[_i] = arguments[_i];
88
- }
89
- items.forEach(function (item) {
90
- if (!(item instanceof _this.childObjectType)) {
91
- throw "Type error, cannot add item of type " + Utils.getTypeName(item.constructor) + " to list of type " + Utils.getTypeName(_this.childObjectType) + ".";
92
- }
93
- _this.setParent(item);
94
- });
95
- return this.baseMethods.push.apply(this, items);
96
- };
97
- List.prototype.clearDeletedList = function () {
98
- this._deletedList.value = [];
99
- };
100
- List.prototype.setParent = function (item) {
101
- if (this.attachedTo) {
102
- var itemConstructor = this.childObjectType.prototype.constructor;
103
- // set the parent property
104
- if (itemConstructor.neo) {
105
- var parentConstructor = this.attachedTo.constructor.prototype.constructor;
106
- var parentProperty = null;
107
- // check default parent
108
- if (itemConstructor.neo.parentProperty && Utils.sameTypes(parentConstructor, itemConstructor.neo.parentProperty.typeWithAssert)) {
109
- parentProperty = itemConstructor.neo.parentProperty;
110
- }
111
- // check for other parents
112
- var parents = itemConstructor.neo.parentProperties;
113
- if (!parentProperty && parents.length > 1) {
114
- for (var i = 0; i < parents.length; i++) {
115
- if (Utils.sameTypes(parentConstructor, parents[i].typeWithAssert)) {
116
- parentProperty = parents[i];
117
- break;
118
- }
119
- }
120
- }
121
- if (parentProperty) {
122
- item[parentProperty.propertyName] = this.attachedTo;
123
- }
124
- }
125
- }
126
- };
127
- /** Creates a new item of type T, adds it to the array and returns the new item. */
128
- List.prototype.addNew = function () {
129
- var newItem = this.createChild();
130
- this.push(newItem);
131
- return newItem;
132
- };
133
- /**
134
- * Removes an item from the array, and adds it to the deleted list. Deleted items will be included when calling toJSArray
135
- * @param item Item to remove
136
- */
137
- List.prototype.remove = function (item) {
138
- this.removeItem(item, true);
139
- };
140
- /**
141
- * Removes an item from the array without adding it to the deleted list.
142
- * @param item Item to remove
143
- */
144
- List.prototype.removeWithoutTracking = function (item) {
145
- this.removeItem(item, false);
146
- };
147
- List.prototype.removeItem = function (item, addToDeletedList) {
148
- var index = this.indexOf(item);
149
- if (index >= 0) {
150
- if (addToDeletedList && item.entityIdentifier) {
151
- if (this.deletedList.indexOf(item) == -1 && !item.isNew)
152
- this.deletedList.push(item);
153
- }
154
- this.splice(index, 1);
155
- }
156
- };
157
- /** Returns a static meta object containing all the properties of the lists item type. */
158
- List.prototype.getMetaItem = function () {
159
- if (this.length) {
160
- return this[0];
161
- }
162
- else {
163
- var ctor = this.childObjectType.prototype.constructor;
164
- ctor.neo.ensureInitialised();
165
- return ctor.neo.metaItem;
166
- }
167
- };
168
- Object.defineProperty(List.prototype, "isValid", {
169
- /** True if all items in the list are valid. */
170
- get: function () {
171
- for (var i = 0; i < this.length; i++) {
172
- if (!this[i].isValid) {
173
- return false;
174
- }
175
- }
176
- return true;
177
- },
178
- enumerable: false,
179
- configurable: true
180
- });
181
- Object.defineProperty(List.prototype, "isDirty", {
182
- /** True if any item in the list is dirty, or the list contains any deleted items. */
183
- get: function () {
184
- if (this.deletedList.length)
185
- return true;
186
- for (var i = 0; i < this.length; i++) {
187
- if (this[i].isDirty) {
188
- return true;
189
- }
190
- }
191
- return false;
192
- },
193
- enumerable: false,
194
- configurable: true
195
- });
196
- return List;
197
- }(Array));
198
- export default List;
1
+ import { __assign, __extends } from "tslib";
2
+ import { JSFormatter } from '../Data/Serialiser';
3
+ import { Utils } from '../Utils';
4
+ import { ObservableValue } from './ObservableValue';
5
+ import { NeoTypeInfo } from './NeoTypeInfo';
6
+ var List = /** @class */ (function (_super) {
7
+ __extends(List, _super);
8
+ function List(childObjectType) {
9
+ var _this = _super.call(this) || this;
10
+ _this.childObjectType = childObjectType;
11
+ _this._deletedList = new ObservableValue([]);
12
+ List.copyMethods(_this);
13
+ return _this;
14
+ }
15
+ Object.defineProperty(List.prototype, "deletedList", {
16
+ get: function () {
17
+ return this._deletedList.value;
18
+ },
19
+ enumerable: false,
20
+ configurable: true
21
+ });
22
+ /**
23
+ * Copies the methods and properties from the prototype to the new instance.
24
+ * This is needed because vue / mobx changes the prototype to its own.
25
+ */
26
+ List.copyMethods = function (toInstance) {
27
+ toInstance.baseMethods = {};
28
+ for (var _i = 0, _a = Object.getOwnPropertyNames(this.prototype); _i < _a.length; _i++) {
29
+ var propertyName = _a[_i];
30
+ if (propertyName !== "constructor") {
31
+ var descriptor = Object.getOwnPropertyDescriptor(this.prototype, propertyName);
32
+ if (descriptor.value !== void 0) {
33
+ // Method
34
+ if (toInstance[propertyName]) {
35
+ toInstance.baseMethods[propertyName] = toInstance[propertyName];
36
+ }
37
+ // @ts-ignore
38
+ toInstance[propertyName] = this.prototype[propertyName];
39
+ }
40
+ else if (descriptor.get) {
41
+ Object.defineProperty(toInstance, propertyName, descriptor);
42
+ }
43
+ }
44
+ }
45
+ };
46
+ List.prototype.setupProxy = function (proxy, attachedTo) {
47
+ proxy.childObjectType = this.childObjectType;
48
+ proxy._deletedList = new ObservableValue([]);
49
+ proxy.attachedTo = attachedTo;
50
+ };
51
+ List.prototype.toJSArray = function (options) {
52
+ if (options === void 0) { options = {}; }
53
+ return JSFormatter.serialise(this, options);
54
+ };
55
+ /**
56
+ * Converts a plain javascript Array to a neo model graph.
57
+ * Replaces a list - Items in the list, but not in jsArray will be removed.
58
+ * If you need missing items to remain, use update() instead.
59
+ * This will generally be used after calling toJSArray(includeClean = true)
60
+ * */
61
+ List.prototype.set = function (jsArray, options) {
62
+ JSFormatter.deserialise(jsArray, this, this.childObjectType, __assign({ removeOldItems: true }, options));
63
+ };
64
+ /**
65
+ * Converts a plain javascript Array to a neo model graph.
66
+ * Updates a list - Items in the list, but not in jsArray will remain in the list.
67
+ * If you need to replace the List with jsArray, use set() instead.
68
+ * This will generally be used after calling toJSArray(includeClean = false)
69
+ * */
70
+ List.prototype.update = function (jsArray, options) {
71
+ JSFormatter.deserialise(jsArray, this, this.childObjectType, options);
72
+ };
73
+ /**
74
+ * Converts a plain javascript array into a neo model graph.
75
+ */
76
+ List.fromJSArray = function (childType, jsArray, options) {
77
+ var list = new List(childType);
78
+ list.set(jsArray, options);
79
+ return list;
80
+ };
81
+ /** Creates a new item of type T */
82
+ List.prototype.createChild = function () {
83
+ return new this.childObjectType();
84
+ };
85
+ List.prototype.push = function () {
86
+ var _this = this;
87
+ var items = [];
88
+ for (var _i = 0; _i < arguments.length; _i++) {
89
+ items[_i] = arguments[_i];
90
+ }
91
+ items.forEach(function (item) {
92
+ if (!(item instanceof _this.childObjectType)) {
93
+ throw "Type error, cannot add item of type " + Utils.getTypeName(item.constructor) + " to list of type " + Utils.getTypeName(_this.childObjectType) + ".";
94
+ }
95
+ _this.setParent(item);
96
+ });
97
+ return this.baseMethods.push.apply(this, items);
98
+ };
99
+ List.prototype.clearDeletedList = function () {
100
+ this._deletedList.value = [];
101
+ };
102
+ List.prototype.setParent = function (item) {
103
+ if (this.attachedTo) {
104
+ var itemConstructor = this.childObjectType.prototype.constructor;
105
+ // set the parent property
106
+ if (itemConstructor.neo) {
107
+ var parentConstructor = this.attachedTo.constructor.prototype.constructor;
108
+ var parentProperty = null;
109
+ // check default parent
110
+ if (itemConstructor.neo.parentProperty && Utils.sameTypes(parentConstructor, itemConstructor.neo.parentProperty.typeWithAssert)) {
111
+ parentProperty = itemConstructor.neo.parentProperty;
112
+ }
113
+ // check for other parents
114
+ var parents = itemConstructor.neo.parentProperties;
115
+ if (!parentProperty && parents.length > 1) {
116
+ for (var i = 0; i < parents.length; i++) {
117
+ if (Utils.sameTypes(parentConstructor, parents[i].typeWithAssert)) {
118
+ parentProperty = parents[i];
119
+ break;
120
+ }
121
+ }
122
+ }
123
+ if (parentProperty) {
124
+ // @ts-ignore
125
+ item[parentProperty.propertyName] = this.attachedTo;
126
+ }
127
+ }
128
+ }
129
+ };
130
+ /** Creates a new item of type T, adds it to the array and returns the new item. */
131
+ List.prototype.addNew = function () {
132
+ var newItem = this.createChild();
133
+ this.push(newItem);
134
+ return newItem;
135
+ };
136
+ /**
137
+ * Removes an item from the array, and adds it to the deleted list. Deleted items will be included when calling toJSArray
138
+ * @param item Item to remove
139
+ */
140
+ List.prototype.remove = function (item) {
141
+ this.removeItem(item, true);
142
+ };
143
+ /**
144
+ * Removes an item from the array without adding it to the deleted list.
145
+ * @param item Item to remove
146
+ */
147
+ List.prototype.removeWithoutTracking = function (item) {
148
+ this.removeItem(item, false);
149
+ };
150
+ List.prototype.removeItem = function (item, addToDeletedList) {
151
+ var index = this.indexOf(item);
152
+ if (index >= 0) {
153
+ if (addToDeletedList && item.entityIdentifier) {
154
+ if (this.deletedList.indexOf(item) == -1 && !item.isNew)
155
+ this.deletedList.push(item);
156
+ }
157
+ this.splice(index, 1);
158
+ }
159
+ };
160
+ /** Returns a static meta object containing all the properties of the lists item type. */
161
+ List.prototype.getMetaItem = function () {
162
+ if (this.length) {
163
+ return this[0];
164
+ }
165
+ else {
166
+ var ctor = this.childObjectType.prototype.constructor;
167
+ return NeoTypeInfo.ensureInitialised(ctor).metaItem;
168
+ }
169
+ };
170
+ Object.defineProperty(List.prototype, "isValid", {
171
+ /** True if all items in the list are valid. */
172
+ get: function () {
173
+ for (var i = 0; i < this.length; i++) {
174
+ if (!this[i].isValid) {
175
+ return false;
176
+ }
177
+ }
178
+ return true;
179
+ },
180
+ enumerable: false,
181
+ configurable: true
182
+ });
183
+ Object.defineProperty(List.prototype, "isDirty", {
184
+ /** True if any item in the list is dirty, or the list contains any deleted items. */
185
+ get: function () {
186
+ if (this.deletedList.length)
187
+ return true;
188
+ for (var i = 0; i < this.length; i++) {
189
+ if (this[i].isDirty) {
190
+ return true;
191
+ }
192
+ }
193
+ return false;
194
+ },
195
+ enumerable: false,
196
+ configurable: true
197
+ });
198
+ Object.defineProperty(List.prototype, "readyToSave", {
199
+ /** Indicates that the model is dirty and valid and can be saved. */
200
+ get: function () {
201
+ return this.isDirty && this.isValid;
202
+ },
203
+ enumerable: false,
204
+ configurable: true
205
+ });
206
+ return List;
207
+ }(Array));
208
+ export default List;
@@ -1,6 +1,13 @@
1
- import { BindableBase } from './BindableBase';
2
- import { IBindableBase } from './IModelBase';
3
- export interface ILookupBase extends IBindableBase {
4
- }
5
- export declare abstract class LookupBase extends BindableBase implements ILookupBase {
6
- }
1
+ import { IDeserialiseOptions } from '../Data/Deserialiser';
2
+ import { BindableBase } from './BindableBase';
3
+ import { IBindableBase, PartialPlainObject } from './IModelBase';
4
+ export interface ILookupBase extends IBindableBase {
5
+ }
6
+ export declare abstract class LookupBase extends BindableBase implements ILookupBase {
7
+ /**
8
+ * @deprecated Models that extend LookupBase are designed to be immutable.
9
+ * Calling set() on an instance that is already being observed will not cause the ui to update.
10
+ * Rather deserialise on create using `MyLookup.fromJSObject<MyLookup>(data)`.
11
+ * */
12
+ set(jsObject: PartialPlainObject<this>, options?: IDeserialiseOptions): void;
13
+ }
@@ -1,10 +1,19 @@
1
- import { __extends } from "tslib";
2
- import { BindableBase } from './BindableBase';
3
- var LookupBase = /** @class */ (function (_super) {
4
- __extends(LookupBase, _super);
5
- function LookupBase() {
6
- return _super !== null && _super.apply(this, arguments) || this;
7
- }
8
- return LookupBase;
9
- }(BindableBase));
10
- export { LookupBase };
1
+ import { __extends } from "tslib";
2
+ import { BindableBase } from './BindableBase';
3
+ var LookupBase = /** @class */ (function (_super) {
4
+ __extends(LookupBase, _super);
5
+ function LookupBase() {
6
+ return _super !== null && _super.apply(this, arguments) || this;
7
+ }
8
+ /**
9
+ * @deprecated Models that extend LookupBase are designed to be immutable.
10
+ * Calling set() on an instance that is already being observed will not cause the ui to update.
11
+ * Rather deserialise on create using `MyLookup.fromJSObject<MyLookup>(data)`.
12
+ * */
13
+ LookupBase.prototype.set = function (jsObject, options) {
14
+ console.warn("Do not use the set() method on lookup models. Rather use the static fromJSObject().");
15
+ _super.prototype.set.call(this, jsObject, options);
16
+ };
17
+ return LookupBase;
18
+ }(BindableBase));
19
+ export { LookupBase };
@@ -0,0 +1,8 @@
1
+ export default class MethodInfo {
2
+ name: string;
3
+ constructor(name: string);
4
+ /**
5
+ * Specifies whether the method should be converted to a mobx action.
6
+ */
7
+ isAction?: boolean;
8
+ }
@@ -0,0 +1,7 @@
1
+ var MethodInfo = /** @class */ (function () {
2
+ function MethodInfo(name) {
3
+ this.name = name;
4
+ }
5
+ return MethodInfo;
6
+ }());
7
+ export default MethodInfo;