@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,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';