@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,137 +1,143 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import NeoModel from '../../Model/NeoModel';
3
- import { Observable, Computed } from '../../Model/Decorators';
4
- import PropertyInstance from '../../Model/PropertyInstance';
5
- import RuleValidator from './RuleValidator';
6
- import { ContainerValidationState } from '../ValidationState';
7
- import PropertyValidator from './PropertyValidator';
8
- import PropertyInfo from '../../Model/PropertyInfo';
9
- import ValidationDisplayHelper from '../DisplayHelper';
10
- var ModelValidator = /** @class */ (function () {
11
- function ModelValidator(model, objectRules) {
12
- var _this = this;
13
- this.model = model;
14
- // Properties that contain at least 1 rule.
15
- this.ruleProperties = [];
16
- // Rules which don't display on any properties.
17
- this.objectRules = [];
18
- // Rules belonging to properties, by ruleId.
19
- this.propertyRules = new Map();
20
- this.hasCheckedRules = false;
21
- this.forceShowErrors = false;
22
- if (objectRules.length) {
23
- var tempPropertyInstance_1 = new PropertyInstance(model, new PropertyInfo(""));
24
- objectRules.forEach(function (rule) {
25
- _this.objectRules.push(new RuleValidator(tempPropertyInstance_1, rule));
26
- });
27
- }
28
- }
29
- ModelValidator.prototype.addProperty = function (property) {
30
- this.ruleProperties.push(property);
31
- };
32
- /**
33
- * Creates a property validator from its list of Rules.
34
- * One RuleValidator will be created per rule, even if the rule is added to multiple properties.
35
- */
36
- ModelValidator.prototype.createPropertyValidator = function (property) {
37
- var ruleList = [];
38
- for (var _i = 0, _a = property.propertyInfo.rules; _i < _a.length; _i++) {
39
- var rule = _a[_i];
40
- var ruleValidator = this.propertyRules.get(rule.ruleId);
41
- if (!ruleValidator) {
42
- ruleValidator = new RuleValidator(property, rule);
43
- this.propertyRules.set(rule.ruleId, ruleValidator);
44
- }
45
- ruleValidator.properties.push(property);
46
- ruleList.push(ruleValidator);
47
- }
48
- return new PropertyValidator(property, ruleList);
49
- };
50
- Object.defineProperty(ModelValidator.prototype, "ruleState", {
51
- get: function () {
52
- this.checkRules();
53
- return this._ruleState;
54
- },
55
- enumerable: false,
56
- configurable: true
57
- });
58
- Object.defineProperty(ModelValidator.prototype, "isValid", {
59
- get: function () {
60
- return this.ruleState.isValid;
61
- },
62
- enumerable: false,
63
- configurable: true
64
- });
65
- ModelValidator.prototype.checkRules = function () {
66
- var _this = this;
67
- this._ruleState = new ContainerValidationState();
68
- this.objectRules.forEach(function (r) {
69
- _this._ruleState.merge(r.ruleContext);
70
- });
71
- // Make sure all property validators have been initialised
72
- if (!this.hasCheckedRules) {
73
- this.hasCheckedRules = true;
74
- this.ruleProperties.forEach(function (p) { return p.validator; });
75
- }
76
- this.propertyRules.forEach(function (v) {
77
- _this._ruleState.update(v.ruleContext);
78
- });
79
- };
80
- /**
81
- * Gets the broken rules for this object. If you need the summary for an object graph, use Validation.getValidationSummary()
82
- */
83
- ModelValidator.prototype.getBrokenRules = function () {
84
- var ruleState = this.ruleState;
85
- var objectInfo = this.objectRules.filter(function (v) { return v.ruleContext.hasDetail; }).map(function (v, index) {
86
- return {
87
- order: index,
88
- displayInfo: ValidationDisplayHelper.getDisplayInfo(v.ruleContext, true),
89
- properties: []
90
- };
91
- });
92
- var properties = Array.from(this.propertyRules.values()).filter(function (v) { return v.ruleContext.hasDetail; }).map(function (v, index) {
93
- return {
94
- order: index + 1000,
95
- displayInfo: ValidationDisplayHelper.getDisplayInfo(v.ruleContext, true),
96
- properties: v.properties
97
- };
98
- });
99
- return {
100
- model: this.model,
101
- isValid: ruleState.isValid,
102
- objectDisplayInfo: objectInfo,
103
- propertyRules: properties
104
- };
105
- };
106
- ModelValidator.prototype.getRuleResult = function (ruleDefinition) {
107
- if (ruleDefinition) {
108
- var rule = this.objectRules.find(function (c) { return c.ruleId === ruleDefinition.ruleId; });
109
- if (!rule) {
110
- rule = this.propertyRules.get(ruleDefinition.ruleId);
111
- }
112
- if (rule) {
113
- return rule.ruleContext;
114
- }
115
- }
116
- return null;
117
- };
118
- ModelValidator.prototype.resetDisplay = function () {
119
- this.forceShowErrors = false;
120
- this.ruleProperties.forEach(function (p) { return p.validator.hasBlurred = false; });
121
- };
122
- __decorate([
123
- Observable(),
124
- __metadata("design:type", Boolean)
125
- ], ModelValidator.prototype, "forceShowErrors", void 0);
126
- __decorate([
127
- Computed(),
128
- __metadata("design:type", ContainerValidationState),
129
- __metadata("design:paramtypes", [])
130
- ], ModelValidator.prototype, "ruleState", null);
131
- ModelValidator = __decorate([
132
- NeoModel,
133
- __metadata("design:paramtypes", [Object, Array])
134
- ], ModelValidator);
135
- return ModelValidator;
136
- }());
137
- export default ModelValidator;
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { Observable, Computed } from '../../Model/Decorators';
3
+ import PropertyInstance from '../../Model/PropertyInstance';
4
+ import RuleValidator from './RuleValidator';
5
+ import { ContainerValidationState } from '../ValidationState';
6
+ import PropertyValidator from './PropertyValidator';
7
+ import PropertyInfo from '../../Model/PropertyInfo';
8
+ import ValidationDisplayHelper from '../DisplayHelper';
9
+ import { NeoTypeInfo } from '../../Model/NeoTypeInfo';
10
+ var ModelValidator = /** @class */ (function () {
11
+ function ModelValidator(model, objectRules) {
12
+ var _this = this;
13
+ this.model = model;
14
+ // Properties that contain at least 1 rule.
15
+ this.ruleProperties = [];
16
+ // Rules which don't display on any properties.
17
+ this.objectRules = [];
18
+ // Rules belonging to properties, by ruleId.
19
+ this.propertyRules = new Map();
20
+ this.hasCheckedRules = false;
21
+ this.forceShowErrors = false;
22
+ if (objectRules.length) {
23
+ var tempPropertyInstance_1 = new PropertyInstance(model, new PropertyInfo(""));
24
+ objectRules.forEach(function (rule) {
25
+ _this.objectRules.push(new RuleValidator(tempPropertyInstance_1, rule));
26
+ });
27
+ }
28
+ NeoTypeInfo.makeObservable(this);
29
+ }
30
+ ModelValidator.prototype.addProperty = function (property) {
31
+ this.ruleProperties.push(property);
32
+ };
33
+ /**
34
+ * Creates a property validator from its list of Rules.
35
+ * One RuleValidator will be created per rule, even if the rule is added to multiple properties.
36
+ */
37
+ ModelValidator.prototype.createPropertyValidator = function (property) {
38
+ var ruleList = [];
39
+ for (var _i = 0, _a = property.propertyInfo.rules; _i < _a.length; _i++) {
40
+ var rule = _a[_i];
41
+ var ruleValidator = this.propertyRules.get(rule.ruleId);
42
+ if (!ruleValidator) {
43
+ ruleValidator = new RuleValidator(property, rule);
44
+ this.propertyRules.set(rule.ruleId, ruleValidator);
45
+ }
46
+ ruleValidator.properties.push(property);
47
+ ruleList.push(ruleValidator);
48
+ }
49
+ return new PropertyValidator(property, ruleList);
50
+ };
51
+ Object.defineProperty(ModelValidator.prototype, "ruleState", {
52
+ get: function () {
53
+ this.checkRules();
54
+ return this._ruleState;
55
+ },
56
+ enumerable: false,
57
+ configurable: true
58
+ });
59
+ Object.defineProperty(ModelValidator.prototype, "isValid", {
60
+ get: function () {
61
+ return this.ruleState.isValid;
62
+ },
63
+ enumerable: false,
64
+ configurable: true
65
+ });
66
+ Object.defineProperty(ModelValidator.prototype, "severity", {
67
+ get: function () {
68
+ return this.ruleState.severity;
69
+ },
70
+ enumerable: false,
71
+ configurable: true
72
+ });
73
+ ModelValidator.prototype.checkRules = function () {
74
+ var _this = this;
75
+ this._ruleState = new ContainerValidationState();
76
+ this.objectRules.forEach(function (r) {
77
+ _this._ruleState.merge(r.ruleContext);
78
+ });
79
+ // Make sure all property validators have been initialised
80
+ if (!this.hasCheckedRules) {
81
+ this.hasCheckedRules = true;
82
+ this.ruleProperties.forEach(function (p) { return p.validator; });
83
+ }
84
+ this.propertyRules.forEach(function (v) {
85
+ _this._ruleState.update(v.ruleContext);
86
+ });
87
+ };
88
+ /**
89
+ * Gets the broken rules for this object. If you need the summary for an object graph, use Validation.getValidationSummary()
90
+ */
91
+ ModelValidator.prototype.getBrokenRules = function () {
92
+ var ruleState = this.ruleState;
93
+ var objectInfo = this.objectRules.filter(function (v) { return v.ruleContext.hasDetail; }).map(function (v, index) {
94
+ return {
95
+ order: index,
96
+ displayInfo: ValidationDisplayHelper.getDisplayInfo(v.ruleContext, true),
97
+ properties: []
98
+ };
99
+ });
100
+ var properties = Array.from(this.propertyRules.values()).filter(function (v) { return v.ruleContext.hasDetail; }).map(function (v, index) {
101
+ return {
102
+ order: index + 1000,
103
+ displayInfo: ValidationDisplayHelper.getDisplayInfo(v.ruleContext, true),
104
+ properties: v.properties
105
+ };
106
+ });
107
+ return {
108
+ model: this.model,
109
+ isValid: ruleState.isValid,
110
+ objectDisplayInfo: objectInfo,
111
+ propertyRules: properties
112
+ };
113
+ };
114
+ ModelValidator.prototype.getRuleResult = function (ruleDefinition) {
115
+ if (ruleDefinition) {
116
+ var rule = this.objectRules.find(function (c) { return c.ruleId === ruleDefinition.ruleId; });
117
+ if (!rule) {
118
+ rule = this.propertyRules.get(ruleDefinition.ruleId);
119
+ }
120
+ if (rule) {
121
+ return rule.ruleContext;
122
+ }
123
+ }
124
+ return null;
125
+ };
126
+ ModelValidator.prototype.resetDisplay = function () {
127
+ this.forceShowErrors = false;
128
+ this.ruleProperties.forEach(function (p) { return p.validator.hasBlurred = false; });
129
+ };
130
+ __decorate([
131
+ Observable()
132
+ /** True if errors must be shown for this object, even if the user hasnt tabbed off some properties */
133
+ ,
134
+ __metadata("design:type", Boolean)
135
+ ], ModelValidator.prototype, "forceShowErrors", void 0);
136
+ __decorate([
137
+ Computed(),
138
+ __metadata("design:type", ContainerValidationState),
139
+ __metadata("design:paramtypes", [])
140
+ ], ModelValidator.prototype, "ruleState", null);
141
+ return ModelValidator;
142
+ }());
143
+ export default ModelValidator;
@@ -1,21 +1,21 @@
1
- import { IPropertyInstance } from '../../Model/PropertyInstance';
2
- import { IRuleValidator } from './RuleValidator';
3
- import { ContainerValidationState } from '../ValidationState';
4
- import { ValidationDisplayMode } from '../Misc';
5
- import { ValidationDisplayInfo } from '../DisplayHelper';
6
- import { IPropertyValidator } from './IPropertyValidator';
7
- export default class PropertyValidator implements IPropertyValidator {
8
- propertyInstance: IPropertyInstance;
9
- private ruleList;
10
- constructor(propertyInstance: IPropertyInstance, ruleList: IRuleValidator[]);
11
- private _ruleState;
12
- /** True if an element bound to this property has lost focus. Used for displaying rules. */
13
- hasBlurred: boolean;
14
- get ruleState(): ContainerValidationState;
15
- get isValid(): boolean;
16
- private checkRules;
17
- /** Infomation about the errors that must be shown on the UI. Independent from whether or not the property is valid. */
18
- getDisplayState(validationMode: ValidationDisplayMode): ValidationDisplayInfo;
19
- /** True if the validation state is final, e.g. the property has blurred, or validation display mode is always. */
20
- canDisplayAll(validationMode: ValidationDisplayMode): boolean;
21
- }
1
+ import { IPropertyInstance } from '../../Model/PropertyInstance';
2
+ import { IRuleValidator } from './RuleValidator';
3
+ import { ContainerValidationState } from '../ValidationState';
4
+ import { ValidationDisplayMode } from '../Misc';
5
+ import { ValidationDisplayInfo } from '../DisplayHelper';
6
+ import { IPropertyValidator } from './IPropertyValidator';
7
+ export default class PropertyValidator implements IPropertyValidator {
8
+ propertyInstance: IPropertyInstance;
9
+ private ruleList;
10
+ constructor(propertyInstance: IPropertyInstance, ruleList: IRuleValidator[]);
11
+ private _ruleState;
12
+ /** True if an element bound to this property has lost focus. Used for displaying rules. */
13
+ hasBlurred: boolean;
14
+ get ruleState(): ContainerValidationState;
15
+ get isValid(): boolean;
16
+ private checkRules;
17
+ /** Infomation about the errors that must be shown on the UI. Independent from whether or not the property is valid. */
18
+ getDisplayState(validationMode: ValidationDisplayMode): ValidationDisplayInfo;
19
+ /** True if the validation state is final, e.g. the property has blurred, or validation display mode is always. */
20
+ canDisplayAll(validationMode: ValidationDisplayMode): boolean;
21
+ }
@@ -1,67 +1,64 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { ContainerValidationState } from '../ValidationState';
3
- import { ValidationDisplayMode } from '../Misc';
4
- import { ValidationDisplayInfo } from '../DisplayHelper';
5
- import NeoModel from '../../Model/NeoModel';
6
- import { Observable, Computed } from '../../Model/Decorators';
7
- var PropertyValidator = /** @class */ (function () {
8
- function PropertyValidator(propertyInstance, ruleList) {
9
- this.propertyInstance = propertyInstance;
10
- this.ruleList = ruleList;
11
- /** True if an element bound to this property has lost focus. Used for displaying rules. */
12
- this.hasBlurred = false;
13
- }
14
- Object.defineProperty(PropertyValidator.prototype, "ruleState", {
15
- get: function () {
16
- this.checkRules();
17
- return this._ruleState;
18
- },
19
- enumerable: false,
20
- configurable: true
21
- });
22
- Object.defineProperty(PropertyValidator.prototype, "isValid", {
23
- get: function () {
24
- return this.ruleState.isValid;
25
- },
26
- enumerable: false,
27
- configurable: true
28
- });
29
- PropertyValidator.prototype.checkRules = function () {
30
- this._ruleState = new ContainerValidationState();
31
- if (this.ruleList) {
32
- for (var i = 0; i < this.ruleList.length; i++) {
33
- this._ruleState.merge(this.ruleList[i].ruleContext);
34
- }
35
- }
36
- };
37
- /** Infomation about the errors that must be shown on the UI. Independent from whether or not the property is valid. */
38
- PropertyValidator.prototype.getDisplayState = function (validationMode) {
39
- if (validationMode === ValidationDisplayMode.Never) {
40
- return new ValidationDisplayInfo();
41
- }
42
- else {
43
- return this.ruleState.getDisplayInfo(this.canDisplayAll(validationMode));
44
- }
45
- };
46
- /** True if the validation state is final, e.g. the property has blurred, or validation display mode is always. */
47
- PropertyValidator.prototype.canDisplayAll = function (validationMode) {
48
- return (validationMode == ValidationDisplayMode.Always ||
49
- this.propertyInstance.attachedTo.validator.forceShowErrors ||
50
- (validationMode == ValidationDisplayMode.AfterBlur && this.hasBlurred));
51
- };
52
- __decorate([
53
- Observable(),
54
- __metadata("design:type", Object)
55
- ], PropertyValidator.prototype, "hasBlurred", void 0);
56
- __decorate([
57
- Computed(),
58
- __metadata("design:type", ContainerValidationState),
59
- __metadata("design:paramtypes", [])
60
- ], PropertyValidator.prototype, "ruleState", null);
61
- PropertyValidator = __decorate([
62
- NeoModel,
63
- __metadata("design:paramtypes", [Object, Array])
64
- ], PropertyValidator);
65
- return PropertyValidator;
66
- }());
67
- export default PropertyValidator;
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { ContainerValidationState } from '../ValidationState';
3
+ import { ValidationDisplayMode } from '../Misc';
4
+ import { ValidationDisplayInfo } from '../DisplayHelper';
5
+ import { Observable, Computed } from '../../Model/Decorators';
6
+ import { NeoTypeInfo } from '../../Model/NeoTypeInfo';
7
+ var PropertyValidator = /** @class */ (function () {
8
+ function PropertyValidator(propertyInstance, ruleList) {
9
+ this.propertyInstance = propertyInstance;
10
+ this.ruleList = ruleList;
11
+ /** True if an element bound to this property has lost focus. Used for displaying rules. */
12
+ this.hasBlurred = false;
13
+ NeoTypeInfo.makeObservable(this);
14
+ }
15
+ Object.defineProperty(PropertyValidator.prototype, "ruleState", {
16
+ get: function () {
17
+ this.checkRules();
18
+ return this._ruleState;
19
+ },
20
+ enumerable: false,
21
+ configurable: true
22
+ });
23
+ Object.defineProperty(PropertyValidator.prototype, "isValid", {
24
+ get: function () {
25
+ return this.ruleState.isValid;
26
+ },
27
+ enumerable: false,
28
+ configurable: true
29
+ });
30
+ PropertyValidator.prototype.checkRules = function () {
31
+ this._ruleState = new ContainerValidationState();
32
+ if (this.ruleList) {
33
+ for (var i = 0; i < this.ruleList.length; i++) {
34
+ this._ruleState.merge(this.ruleList[i].ruleContext);
35
+ }
36
+ }
37
+ };
38
+ /** Infomation about the errors that must be shown on the UI. Independent from whether or not the property is valid. */
39
+ PropertyValidator.prototype.getDisplayState = function (validationMode) {
40
+ if (validationMode === ValidationDisplayMode.Never) {
41
+ return new ValidationDisplayInfo();
42
+ }
43
+ else {
44
+ return this.ruleState.getDisplayInfo(this.canDisplayAll(validationMode));
45
+ }
46
+ };
47
+ /** True if the validation state is final, e.g. the property has blurred, or validation display mode is always. */
48
+ PropertyValidator.prototype.canDisplayAll = function (validationMode) {
49
+ return (validationMode == ValidationDisplayMode.Always ||
50
+ this.propertyInstance.attachedTo.validator.forceShowErrors ||
51
+ (validationMode == ValidationDisplayMode.AfterBlur && this.hasBlurred));
52
+ };
53
+ __decorate([
54
+ Observable(),
55
+ __metadata("design:type", Object)
56
+ ], PropertyValidator.prototype, "hasBlurred", void 0);
57
+ __decorate([
58
+ Computed(),
59
+ __metadata("design:type", ContainerValidationState),
60
+ __metadata("design:paramtypes", [])
61
+ ], PropertyValidator.prototype, "ruleState", null);
62
+ return PropertyValidator;
63
+ }());
64
+ export default PropertyValidator;
@@ -1,19 +1,19 @@
1
- import { Rule } from '../Rules';
2
- import PropertyInstance, { IPropertyInstance } from '../../Model/PropertyInstance';
3
- import { RuleContextBase, RuleContext, AsyncStage } from '../RuleContext';
4
- import { Nullable } from '../../Utils';
5
- export interface IRuleValidator {
6
- ruleContext: RuleContext;
7
- }
8
- export default class RuleValidator implements IRuleValidator {
9
- propertyInstance: IPropertyInstance;
10
- private rule;
11
- constructor(propertyInstance: IPropertyInstance, rule: Rule);
12
- asyncContext: Nullable<RuleContextBase>;
13
- asyncStage: AsyncStage;
14
- debounce: any;
15
- properties: PropertyInstance[];
16
- refreshValue: number;
17
- get ruleId(): string;
18
- get ruleContext(): RuleContext;
19
- }
1
+ import { Rule } from '../Rules';
2
+ import PropertyInstance, { IPropertyInstance } from '../../Model/PropertyInstance';
3
+ import { RuleContextBase, RuleContext, AsyncStage } from '../RuleContext';
4
+ import { Nullable } from '../../Utils';
5
+ export interface IRuleValidator {
6
+ ruleContext: RuleContext;
7
+ }
8
+ export default class RuleValidator implements IRuleValidator {
9
+ propertyInstance: IPropertyInstance;
10
+ private rule;
11
+ constructor(propertyInstance: IPropertyInstance, rule: Rule);
12
+ asyncContext: Nullable<RuleContextBase>;
13
+ asyncStage: AsyncStage;
14
+ debounce: any;
15
+ properties: PropertyInstance[];
16
+ refreshValue: number;
17
+ get ruleId(): string;
18
+ get ruleContext(): RuleContext;
19
+ }
@@ -1,55 +1,51 @@
1
- import { __decorate, __metadata } from "tslib";
2
- import { Rule } from '../Rules';
3
- import { RuleContext, AsyncStage } from '../RuleContext';
4
- import NeoModel from '../../Model/NeoModel';
5
- import { Observable, Computed } from '../../Model/Decorators';
6
- var RuleValidator = /** @class */ (function () {
7
- function RuleValidator(propertyInstance, rule) {
8
- this.propertyInstance = propertyInstance;
9
- this.rule = rule;
10
- // Last context which called beginAsync
11
- this.asyncContext = null;
12
- this.asyncStage = AsyncStage.None;
13
- // Properties this rule has been added to, including the primary property.
14
- this.properties = [];
15
- this.refreshValue = 0;
16
- }
17
- Object.defineProperty(RuleValidator.prototype, "ruleId", {
18
- get: function () {
19
- return this.rule.ruleId;
20
- },
21
- enumerable: false,
22
- configurable: true
23
- });
24
- Object.defineProperty(RuleValidator.prototype, "ruleContext", {
25
- get: function () {
26
- void this.refreshValue; // create dependency on refreshValue
27
- var ruleContext = new RuleContext(this);
28
- if (this.asyncStage !== AsyncStage.Completing) {
29
- this.asyncContext = null;
30
- }
31
- this.rule.checkRule(this.propertyInstance, ruleContext);
32
- if (this.asyncContext) {
33
- ruleContext.merge(this.asyncContext, true);
34
- }
35
- return ruleContext;
36
- },
37
- enumerable: false,
38
- configurable: true
39
- });
40
- __decorate([
41
- Observable(),
42
- __metadata("design:type", Object)
43
- ], RuleValidator.prototype, "refreshValue", void 0);
44
- __decorate([
45
- Computed(),
46
- __metadata("design:type", Object),
47
- __metadata("design:paramtypes", [])
48
- ], RuleValidator.prototype, "ruleContext", null);
49
- RuleValidator = __decorate([
50
- NeoModel,
51
- __metadata("design:paramtypes", [Object, Rule])
52
- ], RuleValidator);
53
- return RuleValidator;
54
- }());
55
- export default RuleValidator;
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { RuleContext, AsyncStage } from '../RuleContext';
3
+ import { Observable, Computed } from '../../Model/Decorators';
4
+ import { NeoTypeInfo } from '../../Model/NeoTypeInfo';
5
+ var RuleValidator = /** @class */ (function () {
6
+ function RuleValidator(propertyInstance, rule) {
7
+ this.propertyInstance = propertyInstance;
8
+ this.rule = rule;
9
+ // Last context which called beginAsync
10
+ this.asyncContext = null;
11
+ this.asyncStage = AsyncStage.None;
12
+ // Properties this rule has been added to, including the primary property.
13
+ this.properties = [];
14
+ this.refreshValue = 0;
15
+ NeoTypeInfo.makeObservable(this);
16
+ }
17
+ Object.defineProperty(RuleValidator.prototype, "ruleId", {
18
+ get: function () {
19
+ return this.rule.ruleId;
20
+ },
21
+ enumerable: false,
22
+ configurable: true
23
+ });
24
+ Object.defineProperty(RuleValidator.prototype, "ruleContext", {
25
+ get: function () {
26
+ void this.refreshValue; // create dependency on refreshValue
27
+ var ruleContext = new RuleContext(this);
28
+ if (this.asyncStage !== AsyncStage.Completing) {
29
+ this.asyncContext = null;
30
+ }
31
+ this.rule.checkRule(this.propertyInstance, ruleContext);
32
+ if (this.asyncContext) {
33
+ ruleContext.merge(this.asyncContext, true);
34
+ }
35
+ return ruleContext;
36
+ },
37
+ enumerable: false,
38
+ configurable: true
39
+ });
40
+ __decorate([
41
+ Observable(),
42
+ __metadata("design:type", Object)
43
+ ], RuleValidator.prototype, "refreshValue", void 0);
44
+ __decorate([
45
+ Computed(),
46
+ __metadata("design:type", Object),
47
+ __metadata("design:paramtypes", [])
48
+ ], RuleValidator.prototype, "ruleContext", null);
49
+ return RuleValidator;
50
+ }());
51
+ export default RuleValidator;
@@ -1,9 +1,9 @@
1
- export { default as ModelValidator } from './Validators/ModelValidator';
2
- export { default as PropertyValidator } from './Validators/PropertyValidator';
3
- export { ValidationDisplayMode as DisplayMode } from './Misc';
4
- export { RuleSeverity } from './ValidationState';
5
- export { ValidationDisplayInfo as DisplayInfo } from './DisplayHelper';
6
- export { IRuleContext } from './RuleContext';
7
- export { ValidationRules as Rules } from './ValidationRules';
8
- export { getValidationSummary, IInvalidObjectGraph } from './ValidationHelpers';
9
- export { IRule } from './Rules';
1
+ export { default as ModelValidator } from './Validators/ModelValidator';
2
+ export { default as PropertyValidator } from './Validators/PropertyValidator';
3
+ export { ValidationDisplayMode as DisplayMode } from './Misc';
4
+ export { RuleSeverity } from './ValidationState';
5
+ export { ValidationDisplayInfo as DisplayInfo } from './DisplayHelper';
6
+ export { IRuleContext } from './RuleContext';
7
+ export { ValidationRules as Rules } from './ValidationRules';
8
+ export { getValidationSummary, IInvalidObjectGraph } from './ValidationHelpers';
9
+ export { IRule } from './Rules';