@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,12 +1,29 @@
1
- import ValueObject from "./ValueObject";
2
- export declare class ModelFieldInfo extends ValueObject {
3
- constructor(displayName: string, valueString: string);
4
- /**
5
- * Display name for the field.
6
- */
7
- displayName: string;
8
- /**
9
- * Lookup of the field value
10
- */
11
- valueString: string;
12
- }
1
+ import ValueObject from "./ValueObject";
2
+ import PropertyInfo from "./PropertyInfo";
3
+ export interface IModelFieldInfoContainer {
4
+ /**
5
+ * Extra information about lookup fields in this object.
6
+ */
7
+ fieldInfo: {
8
+ [K in keyof this]?: ModelFieldInfo;
9
+ };
10
+ /**
11
+ * Sets the model field info for a property.
12
+ */
13
+ setModelFieldInfo(property: PropertyInfo, displayValue: string): ModelFieldInfo;
14
+ }
15
+ export declare class ModelFieldInfo extends ValueObject {
16
+ constructor(displayName: string, valueString: string);
17
+ /**
18
+ * Display name for the field.
19
+ */
20
+ displayName: string;
21
+ /**
22
+ * Lookup of the field value
23
+ */
24
+ valueString: string;
25
+ /**
26
+ * If the instance is a container of ModelFieldInfo, the instance is returned, otherwise null is returned.
27
+ */
28
+ static asModelFieldInfoContainer(instance: any): IModelFieldInfoContainer | null;
29
+ }
@@ -1,26 +1,35 @@
1
- import { __decorate, __extends, __metadata } from "tslib";
2
- import ValueObject from "./ValueObject";
3
- import NeoModel from './NeoModel';
4
- var ModelFieldInfo = /** @class */ (function (_super) {
5
- __extends(ModelFieldInfo, _super);
6
- function ModelFieldInfo(displayName, valueString) {
7
- var _this = _super.call(this) || this;
8
- /**
9
- * Display name for the field.
10
- */
11
- _this.displayName = "";
12
- /**
13
- * Lookup of the field value
14
- */
15
- _this.valueString = "";
16
- _this.displayName = displayName;
17
- _this.valueString = valueString;
18
- return _this;
19
- }
20
- ModelFieldInfo = __decorate([
21
- NeoModel,
22
- __metadata("design:paramtypes", [String, String])
23
- ], ModelFieldInfo);
24
- return ModelFieldInfo;
25
- }(ValueObject));
26
- export { ModelFieldInfo };
1
+ import { __decorate, __extends, __metadata } from "tslib";
2
+ import ValueObject from "./ValueObject";
3
+ import NeoModel from './NeoModel';
4
+ export var ModelFieldInfo = /** @class */ (function (_super) {
5
+ __extends(ModelFieldInfo, _super);
6
+ function ModelFieldInfo(displayName, valueString) {
7
+ var _this = _super.call(this) || this;
8
+ /**
9
+ * Display name for the field.
10
+ */
11
+ _this.displayName = "";
12
+ /**
13
+ * Lookup of the field value
14
+ */
15
+ _this.valueString = "";
16
+ _this.displayName = displayName;
17
+ _this.valueString = valueString;
18
+ return _this;
19
+ }
20
+ /**
21
+ * If the instance is a container of ModelFieldInfo, the instance is returned, otherwise null is returned.
22
+ */
23
+ ModelFieldInfo.asModelFieldInfoContainer = function (instance) {
24
+ if (instance.fieldInfo &&
25
+ instance.setModelFieldInfo) {
26
+ return instance;
27
+ }
28
+ return null;
29
+ };
30
+ ModelFieldInfo = __decorate([
31
+ NeoModel,
32
+ __metadata("design:paramtypes", [String, String])
33
+ ], ModelFieldInfo);
34
+ return ModelFieldInfo;
35
+ }(ValueObject));
@@ -1,35 +1,35 @@
1
- import { RelationType } from './Misc';
2
- import { IModelBase } from './IModelBase';
3
- import PropertyInfo from './PropertyInfo';
4
- export declare class RecursionState {
5
- stop: boolean;
6
- canRecurse: (model: IModelBase, property: PropertyInfo) => boolean;
7
- pushState(): void;
8
- popState(): void;
9
- /**
10
- * Overwrites the canRecurse callback to always return true.
11
- */
12
- includeNonTrackedProperties(): this;
13
- }
14
- export declare class BooleanRecursionState extends RecursionState {
15
- flag: boolean;
16
- constructor(flag?: boolean);
17
- }
18
- declare type itemDelegate<T> = (item: IModelBase, state: T, relationType?: RelationType) => void;
19
- declare type listDelegate<T> = (list: any[], state: T) => void;
20
- /**
21
- * Recursively traverses the model graph, and invokes the provided callback for each item in the graph.
22
- * @param model Model object, or list of objects.
23
- * @param callback Callback to be invoked for each item.
24
- * @param listCallback Callback to be invoked when a child list is found.
25
- */
26
- export declare function traverseItems(model: IModelBase | IModelBase[], callback: itemDelegate<null>, listCallback?: listDelegate<null>): void;
27
- /**
28
- * Recursively traverses the model graph, and invokes the provided callback for each item in the graph.
29
- * @param model Model object, or list of objects.
30
- * @param state State object.
31
- * @param callback Callback to be invoked for each item.
32
- * @param listCallback Callback to be invoked when a child list is found.
33
- */
34
- export declare function traverseItems<T extends RecursionState>(model: IModelBase | IModelBase[], state: T, callback: itemDelegate<T>, listCallback?: listDelegate<T>): T;
35
- export {};
1
+ import { RelationType } from './Misc';
2
+ import { IModelBase } from './IModelBase';
3
+ import PropertyInfo from './PropertyInfo';
4
+ export declare class RecursionState {
5
+ stop: boolean;
6
+ canRecurse: (model: IModelBase, property: PropertyInfo) => boolean;
7
+ pushState(): void;
8
+ popState(): void;
9
+ /**
10
+ * Overwrites the canRecurse callback to always return true.
11
+ */
12
+ includeNonTrackedProperties(): this;
13
+ }
14
+ export declare class BooleanRecursionState extends RecursionState {
15
+ flag: boolean;
16
+ constructor(flag?: boolean);
17
+ }
18
+ type itemDelegate<T> = (item: IModelBase, state: T, relationType?: RelationType) => void;
19
+ type listDelegate<T> = (list: any[], state: T) => void;
20
+ /**
21
+ * Recursively traverses the model graph, and invokes the provided callback for each item in the graph.
22
+ * @param model Model object, or list of objects.
23
+ * @param callback Callback to be invoked for each item.
24
+ * @param listCallback Callback to be invoked when a child list is found.
25
+ */
26
+ export declare function traverseItems(model: IModelBase | IModelBase[], callback: itemDelegate<null>, listCallback?: listDelegate<null>): void;
27
+ /**
28
+ * Recursively traverses the model graph, and invokes the provided callback for each item in the graph.
29
+ * @param model Model object, or list of objects.
30
+ * @param state State object.
31
+ * @param callback Callback to be invoked for each item.
32
+ * @param listCallback Callback to be invoked when a child list is found.
33
+ */
34
+ export declare function traverseItems<T extends RecursionState>(model: IModelBase | IModelBase[], state: T, callback: itemDelegate<T>, listCallback?: listDelegate<T>): T;
35
+ export {};
@@ -1,99 +1,101 @@
1
- import { __extends } from "tslib";
2
- import { RelationType } from './Misc';
3
- var RecursionState = /** @class */ (function () {
4
- function RecursionState() {
5
- this.stop = false;
6
- this.canRecurse = function (model, property) { return !property.noTrack; };
7
- }
8
- RecursionState.prototype.pushState = function () {
9
- };
10
- RecursionState.prototype.popState = function () {
11
- };
12
- /**
13
- * Overwrites the canRecurse callback to always return true.
14
- */
15
- RecursionState.prototype.includeNonTrackedProperties = function () {
16
- this.canRecurse = function (model, property) { return true; };
17
- return this;
18
- };
19
- return RecursionState;
20
- }());
21
- export { RecursionState };
22
- var BooleanRecursionState = /** @class */ (function (_super) {
23
- __extends(BooleanRecursionState, _super);
24
- function BooleanRecursionState(flag) {
25
- if (flag === void 0) { flag = false; }
26
- var _this = _super.call(this) || this;
27
- _this.flag = flag;
28
- return _this;
29
- }
30
- return BooleanRecursionState;
31
- }(RecursionState));
32
- export { BooleanRecursionState };
33
- export function traverseItems(model, stateOrCallback, callbackOrListCallback, listCallback) {
34
- var state;
35
- var callback;
36
- if (typeof stateOrCallback === "function") {
37
- state = new RecursionState();
38
- callback = stateOrCallback;
39
- listCallback = callbackOrListCallback;
40
- }
41
- else {
42
- state = stateOrCallback;
43
- callback = callbackOrListCallback;
44
- }
45
- if (model instanceof Array) {
46
- return invokeOnItemsAndChildren(model, state, callback, listCallback, undefined);
47
- }
48
- else {
49
- return invokeOnSelfAndChildren(model, state, callback, listCallback, undefined);
50
- }
51
- }
52
- function invokeOnItemsAndChildren(list, state, callback, listCallback, relationType) {
53
- for (var _i = 0, list_1 = list; _i < list_1.length; _i++) {
54
- var item = list_1[_i];
55
- invokeOnSelfAndChildren(item, state, callback, listCallback, relationType);
56
- if (state.stop)
57
- break;
58
- }
59
- return state;
60
- }
61
- function invokeOnSelfAndChildren(model, state, callback, listCallback, relationType) {
62
- callback(model, state, relationType);
63
- if (state.stop)
64
- return state;
65
- var ctor = model.constructor;
66
- if (ctor.neo.children) {
67
- for (var i = 0; i < ctor.neo.children.length; i++) {
68
- var cpi = ctor.neo.children[i];
69
- if (state.canRecurse(model, cpi)) {
70
- if (cpi.relationType == RelationType.ChildList) {
71
- var childList = model[cpi.propertyName];
72
- if (listCallback)
73
- listCallback(childList, state);
74
- if (state.stop)
75
- return state;
76
- state.pushState();
77
- invokeOnItemsAndChildren(childList, state, callback, listCallback, RelationType.ChildList);
78
- state.popState();
79
- if (state.stop)
80
- return state;
81
- }
82
- else {
83
- try {
84
- var child = model[cpi.propertyName];
85
- if (child) {
86
- state.pushState();
87
- invokeOnSelfAndChildren(child, state, callback, listCallback, cpi.relationType);
88
- state.popState();
89
- }
90
- }
91
- catch (error) {
92
- throw "Error on property '".concat(cpi.propertyName, "' on type '").concat(model.constructor.name, "': ").concat(error);
93
- }
94
- }
95
- }
96
- }
97
- }
98
- return state;
99
- }
1
+ import { __extends } from "tslib";
2
+ import { RelationType } from './Misc';
3
+ var RecursionState = /** @class */ (function () {
4
+ function RecursionState() {
5
+ this.stop = false;
6
+ this.canRecurse = function (model, property) { return !property.noTrack; };
7
+ }
8
+ RecursionState.prototype.pushState = function () {
9
+ };
10
+ RecursionState.prototype.popState = function () {
11
+ };
12
+ /**
13
+ * Overwrites the canRecurse callback to always return true.
14
+ */
15
+ RecursionState.prototype.includeNonTrackedProperties = function () {
16
+ this.canRecurse = function (model, property) { return true; };
17
+ return this;
18
+ };
19
+ return RecursionState;
20
+ }());
21
+ export { RecursionState };
22
+ var BooleanRecursionState = /** @class */ (function (_super) {
23
+ __extends(BooleanRecursionState, _super);
24
+ function BooleanRecursionState(flag) {
25
+ if (flag === void 0) { flag = false; }
26
+ var _this = _super.call(this) || this;
27
+ _this.flag = flag;
28
+ return _this;
29
+ }
30
+ return BooleanRecursionState;
31
+ }(RecursionState));
32
+ export { BooleanRecursionState };
33
+ export function traverseItems(model, stateOrCallback, callbackOrListCallback, listCallback) {
34
+ var state;
35
+ var callback;
36
+ if (typeof stateOrCallback === "function") {
37
+ state = new RecursionState();
38
+ callback = stateOrCallback;
39
+ listCallback = callbackOrListCallback;
40
+ }
41
+ else {
42
+ state = stateOrCallback;
43
+ callback = callbackOrListCallback;
44
+ }
45
+ if (model instanceof Array) {
46
+ return invokeOnItemsAndChildren(model, state, callback, listCallback, undefined);
47
+ }
48
+ else {
49
+ return invokeOnSelfAndChildren(model, state, callback, listCallback, undefined);
50
+ }
51
+ }
52
+ function invokeOnItemsAndChildren(list, state, callback, listCallback, relationType) {
53
+ for (var _i = 0, list_1 = list; _i < list_1.length; _i++) {
54
+ var item = list_1[_i];
55
+ invokeOnSelfAndChildren(item, state, callback, listCallback, relationType);
56
+ if (state.stop)
57
+ break;
58
+ }
59
+ return state;
60
+ }
61
+ function invokeOnSelfAndChildren(model, state, callback, listCallback, relationType) {
62
+ callback(model, state, relationType);
63
+ if (state.stop)
64
+ return state;
65
+ var ctor = model.constructor;
66
+ if (ctor.neo.children) {
67
+ for (var i = 0; i < ctor.neo.children.length; i++) {
68
+ var cpi = ctor.neo.children[i];
69
+ if (state.canRecurse(model, cpi)) {
70
+ if (cpi.relationType == RelationType.ChildList) {
71
+ // @ts-ignore
72
+ var childList = model[cpi.propertyName];
73
+ if (listCallback)
74
+ listCallback(childList, state);
75
+ if (state.stop)
76
+ return state;
77
+ state.pushState();
78
+ invokeOnItemsAndChildren(childList, state, callback, listCallback, RelationType.ChildList);
79
+ state.popState();
80
+ if (state.stop)
81
+ return state;
82
+ }
83
+ else {
84
+ try {
85
+ // @ts-ignore
86
+ var child = model[cpi.propertyName];
87
+ if (child) {
88
+ state.pushState();
89
+ invokeOnSelfAndChildren(child, state, callback, listCallback, cpi.relationType);
90
+ state.popState();
91
+ }
92
+ }
93
+ catch (error) {
94
+ throw "Error on property '".concat(cpi.propertyName, "' on type '").concat(model.constructor.name, "': ").concat(error);
95
+ }
96
+ }
97
+ }
98
+ }
99
+ }
100
+ return state;
101
+ }
@@ -1,6 +1,6 @@
1
- /** ModelBase decorator
2
- * Intercepts the construction of objects to call SetupModel.
3
- */
4
- export default function NeoModel<T extends {
5
- new (...args: any[]): {};
6
- }>(target: T): T;
1
+ /** ModelBase decorator
2
+ * Intercepts the construction of objects to call SetupModel.
3
+ */
4
+ export default function NeoModel<T extends {
5
+ new (...args: any[]): {};
6
+ }>(target: T): T;
@@ -1,13 +1,13 @@
1
- import { ensureTypeInfo } from './NeoTypeInfo';
2
- /** ModelBase decorator
3
- * Intercepts the construction of objects to call SetupModel.
4
- */
5
- export default function NeoModel(target) {
6
- var originalConstructor = target;
7
- // Ensure neo info is set
8
- var ctor = originalConstructor;
9
- // Call this in case no property decorators were added
10
- ensureTypeInfo(ctor);
11
- var newConstructor = ctor.neo.getOverrideConstructor();
12
- return newConstructor;
13
- }
1
+ import { ensureTypeInfo } from './NeoTypeInfo';
2
+ /** ModelBase decorator
3
+ * Intercepts the construction of objects to call SetupModel.
4
+ */
5
+ export default function NeoModel(target) {
6
+ var originalConstructor = target;
7
+ // Ensure neo info is set
8
+ var ctor = originalConstructor;
9
+ // Call this in case no property decorators were added
10
+ ensureTypeInfo(ctor);
11
+ var newConstructor = ctor.neo.getOverrideConstructor();
12
+ return newConstructor;
13
+ }
@@ -1,41 +1,55 @@
1
- import { Rule } from '../Validation/Rules';
2
- import { PropertyInstanceMap } from './PropertyInstance';
3
- import PropertyInfo, { PropertyInfoMap } from './PropertyInfo';
4
- import { NeoModelConstructor, IModelBase, IMetaItem } from './IModelBase';
5
- export declare class NeoTypeInfo {
6
- private modelCreator;
7
- private objectConstructor;
8
- private _inheritsBindableBase;
9
- private _inheritsModelBase;
10
- private _metaItem;
11
- properties: PropertyInfo[];
12
- propertyMap: PropertyInfoMap;
13
- children: PropertyInfo[];
14
- parentProperties: PropertyInfo[];
15
- parentProperty?: PropertyInfo;
16
- objectRules: Rule[];
17
- meta: PropertyInstanceMap;
18
- displayMember: PropertyInfo | null;
19
- get inheritsBindableBase(): boolean;
20
- get inheritsModelBase(): boolean;
21
- get metaItem(): IMetaItem;
22
- initialise(objectConstructor: NeoModelConstructor): void;
23
- private addPropertyInfo;
24
- getOrAddProperty(propertyName: string): PropertyInfo;
25
- addComputed(propertyName: string, descriptor: PropertyDescriptor, isComputed?: boolean): void;
26
- addAttributeRule(propertyName: string, rule: Rule): void;
27
- /**
28
- * Ensures the type has all the information it needs in order to convert instances of this type.
29
- * E.g. Making sure each property has a property info object.
30
- * */
31
- protected ensureStaticRuntimeInfo(instance?: IModelBase): void;
32
- private addRules;
33
- /** Copy the property info list from each base type into the current type. */
34
- merge(baseConstructor: NeoModelConstructor): void;
35
- ensureInitialised(): void;
36
- /** Gets the override constructor which can setup a neo model. */
37
- getOverrideConstructor(): Function;
38
- makeObservable(instance: any): {};
39
- private defineProxyProperty;
40
- }
41
- export declare function ensureTypeInfo(constructor: NeoModelConstructor): NeoModelConstructor;
1
+ import { Rule } from '../Validation/Rules';
2
+ import { PropertyInstanceMap } from './PropertyInstance';
3
+ import PropertyInfo, { PropertyInfoMap } from './PropertyInfo';
4
+ import { NeoModelConstructor, IModelBase, IMetaItem, IMakeBindableOptions } from './IModelBase';
5
+ import MethodInfo from './MethodInfo';
6
+ export declare class NeoTypeInfo {
7
+ private modelCreator;
8
+ private objectConstructor;
9
+ private wrapperConstructor?;
10
+ private _inheritsBindableBase;
11
+ private _inheritsModelBase;
12
+ private _metaItem;
13
+ properties: PropertyInfo[];
14
+ propertyMap: PropertyInfoMap;
15
+ methods: Map<string, MethodInfo>;
16
+ children: PropertyInfo[];
17
+ parentProperties: PropertyInfo[];
18
+ parentProperty?: PropertyInfo;
19
+ objectRules: Rule[];
20
+ meta: PropertyInstanceMap;
21
+ displayMember: PropertyInfo | null;
22
+ get inheritsBindableBase(): boolean;
23
+ get inheritsModelBase(): boolean;
24
+ get metaItem(): IMetaItem;
25
+ initialise(objectConstructor: NeoModelConstructor): void;
26
+ private addPropertyInfo;
27
+ getOrAddProperty(propertyName: string): PropertyInfo;
28
+ addComputed(propertyName: string, descriptor: PropertyDescriptor, isComputed?: boolean): void;
29
+ addMethod(methodName: string): MethodInfo;
30
+ addAttributeRule(propertyName: string, rule: Rule): void;
31
+ /**
32
+ * Ensures the type has all the information it needs in order to convert instances of this type.
33
+ * E.g. Making sure each property has a property info object.
34
+ * */
35
+ protected ensureStaticRuntimeInfo(instance?: IModelBase): void;
36
+ private addRules;
37
+ /** Copy the property info list from each base type into the current type. */
38
+ merge(baseConstructor: NeoModelConstructor): void;
39
+ ensureInitialised(): void;
40
+ createInstance(...args: any): any;
41
+ /** Gets the override constructor which can setup a neo model. */
42
+ getOverrideConstructor(): Function;
43
+ private createWrapperConstructor;
44
+ makeObservable(instance: any, options?: IMakeBindableOptions): any;
45
+ private defineProxyProperty;
46
+ /**
47
+ * Makes a class instance observable.
48
+ * Must be called in the constructor, preferably directly after the super() call.
49
+ * This method can be used as an alternative to the @NeoModel decorator.
50
+ */
51
+ static makeObservable(instance: any, options?: IMakeBindableOptions): void;
52
+ /** Ensures the type and its metadata are initialised. */
53
+ static ensureInitialised(constructor: NeoModelConstructor): NeoTypeInfo;
54
+ }
55
+ export declare function ensureTypeInfo(constructor: NeoModelConstructor): NeoModelConstructor;