@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,77 +1,79 @@
1
- import { ISerialiseOptions } from '../Data/Serialiser';
2
- import { PlainObject, PartialPlainObject, PlainTrackedObject, IMetaItem } from './IModelBase';
3
- import { IDeserialiseOptions } from '../Data/Deserialiser';
4
- export default class List<T> extends Array<T> {
5
- childObjectType: (new () => T);
6
- attachedTo: object | null;
7
- private _deletedList;
8
- get deletedList(): T[];
9
- private baseMethods;
10
- constructor(childObjectType: (new () => T));
11
- /**
12
- * Copies the methods and properties from the prototype to the new instance.
13
- * This is needed because vue / mobx changes the prototype to its own.
14
- */
15
- static copyMethods(toInstance: any): void;
16
- setupProxy(proxy: any, attachedTo: any): void;
17
- /**
18
- * Converts the neo models to plain javascript objects without tracking state.
19
- * @param options Serialisation options.
20
- * */
21
- toJSArray(options?: ISerialiseOptions & {
22
- suppressTrackingState: true;
23
- }): Array<PlainObject<T>>;
24
- /**
25
- * Converts the neo models to plain javascript objects.
26
- * @param options Serialisation options.
27
- * */
28
- toJSArray(options?: ISerialiseOptions & {
29
- suppressTrackingState?: false;
30
- }): Array<PlainTrackedObject<T>>;
31
- /**
32
- * Converts the neo models to plain javascript objects.
33
- * */
34
- toJSArray(): Array<PlainTrackedObject<T>>;
35
- /**
36
- * Converts a plain javascript Array to a neo model graph.
37
- * Replaces a list - Items in the list, but not in jsArray will be removed.
38
- * If you need missing items to remain, use update() instead.
39
- * This will generally be used after calling toJSArray(includeClean = true)
40
- * */
41
- set(jsArray: PartialPlainObject<T>[], options?: IDeserialiseOptions): void;
42
- /**
43
- * Converts a plain javascript Array to a neo model graph.
44
- * Updates a list - Items in the list, but not in jsArray will remain in the list.
45
- * If you need to replace the List with jsArray, use set() instead.
46
- * This will generally be used after calling toJSArray(includeClean = false)
47
- * */
48
- update(jsArray: PartialPlainObject<T>[], options?: IDeserialiseOptions): void;
49
- /**
50
- * Converts a plain javascript array into a neo model graph.
51
- */
52
- static fromJSArray<T>(childType: new () => T, jsArray: PartialPlainObject<T>[], options?: IDeserialiseOptions): List<T>;
53
- /** Creates a new item of type T */
54
- createChild(): T;
55
- push(...items: T[]): any;
56
- clearDeletedList(): void;
57
- private setParent;
58
- /** Creates a new item of type T, adds it to the array and returns the new item. */
59
- addNew(): T;
60
- /**
61
- * Removes an item from the array, and adds it to the deleted list. Deleted items will be included when calling toJSArray
62
- * @param item Item to remove
63
- */
64
- remove(item: T): void;
65
- /**
66
- * Removes an item from the array without adding it to the deleted list.
67
- * @param item Item to remove
68
- */
69
- removeWithoutTracking(item: T): void;
70
- private removeItem;
71
- /** Returns a static meta object containing all the properties of the lists item type. */
72
- getMetaItem(): IMetaItem;
73
- /** True if all items in the list are valid. */
74
- get isValid(): boolean;
75
- /** True if any item in the list is dirty, or the list contains any deleted items. */
76
- get isDirty(): boolean;
77
- }
1
+ import { ISerialiseOptions } from '../Data/Serialiser';
2
+ import { PlainObject, PartialPlainObject, PlainTrackedObject, IMetaItem } from './IModelBase';
3
+ import { IDeserialiseOptions } from '../Data/Deserialiser';
4
+ export default class List<T> extends Array<T> {
5
+ childObjectType: (new () => T);
6
+ attachedTo: object | null;
7
+ private _deletedList;
8
+ get deletedList(): T[];
9
+ private baseMethods;
10
+ constructor(childObjectType: (new () => T));
11
+ /**
12
+ * Copies the methods and properties from the prototype to the new instance.
13
+ * This is needed because vue / mobx changes the prototype to its own.
14
+ */
15
+ static copyMethods(toInstance: any): void;
16
+ setupProxy(proxy: any, attachedTo: any): void;
17
+ /**
18
+ * Converts the neo models to plain javascript objects without tracking state.
19
+ * @param options Serialisation options.
20
+ * */
21
+ toJSArray(options?: ISerialiseOptions & {
22
+ suppressTrackingState: true;
23
+ }): Array<PlainObject<T>>;
24
+ /**
25
+ * Converts the neo models to plain javascript objects.
26
+ * @param options Serialisation options.
27
+ * */
28
+ toJSArray(options?: ISerialiseOptions & {
29
+ suppressTrackingState?: false;
30
+ }): Array<PlainTrackedObject<T>>;
31
+ /**
32
+ * Converts the neo models to plain javascript objects.
33
+ * */
34
+ toJSArray(): Array<PlainTrackedObject<T>>;
35
+ /**
36
+ * Converts a plain javascript Array to a neo model graph.
37
+ * Replaces a list - Items in the list, but not in jsArray will be removed.
38
+ * If you need missing items to remain, use update() instead.
39
+ * This will generally be used after calling toJSArray(includeClean = true)
40
+ * */
41
+ set(jsArray: PartialPlainObject<T>[], options?: IDeserialiseOptions): void;
42
+ /**
43
+ * Converts a plain javascript Array to a neo model graph.
44
+ * Updates a list - Items in the list, but not in jsArray will remain in the list.
45
+ * If you need to replace the List with jsArray, use set() instead.
46
+ * This will generally be used after calling toJSArray(includeClean = false)
47
+ * */
48
+ update(jsArray: PartialPlainObject<T>[], options?: IDeserialiseOptions): void;
49
+ /**
50
+ * Converts a plain javascript array into a neo model graph.
51
+ */
52
+ static fromJSArray<T>(childType: new () => T, jsArray: PartialPlainObject<T>[], options?: IDeserialiseOptions): List<T>;
53
+ /** Creates a new item of type T */
54
+ createChild(): T;
55
+ push(...items: T[]): any;
56
+ clearDeletedList(): void;
57
+ private setParent;
58
+ /** Creates a new item of type T, adds it to the array and returns the new item. */
59
+ addNew(): T;
60
+ /**
61
+ * Removes an item from the array, and adds it to the deleted list. Deleted items will be included when calling toJSArray
62
+ * @param item Item to remove
63
+ */
64
+ remove(item: T): void;
65
+ /**
66
+ * Removes an item from the array without adding it to the deleted list.
67
+ * @param item Item to remove
68
+ */
69
+ removeWithoutTracking(item: T): void;
70
+ private removeItem;
71
+ /** Returns a static meta object containing all the properties of the lists item type. */
72
+ getMetaItem(): IMetaItem;
73
+ /** True if all items in the list are valid. */
74
+ get isValid(): boolean;
75
+ /** True if any item in the list is dirty, or the list contains any deleted items. */
76
+ get isDirty(): boolean;
77
+ /** Indicates that the model is dirty and valid and can be saved. */
78
+ get readyToSave(): boolean;
79
+ }
@@ -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 };