@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,100 +1,104 @@
1
- import { StaticDataSource } from '../Data';
2
- var EnumDecorator = /** @class */ (function () {
3
- function EnumDecorator(enumType) {
4
- this.enumType = enumType;
5
- enumType[EnumDecorator.enumDescriptorSymbol] = {};
6
- }
7
- /**
8
- * Describe the enum item.
9
- * @param enumItem Item you are describing.
10
- * @param display Display name to use, e.g. for use in drop downs.
11
- * @param description Additional description about the item.
12
- * @param order Override sort order.
13
- */
14
- EnumDecorator.prototype.describe = function (enumItem, display, description, order) {
15
- this.enumType[EnumDecorator.enumDescriptorSymbol][enumItem] = { display: display, description: description, order: order };
16
- };
17
- EnumDecorator.enumDescriptorSymbol = Symbol("Neo.EnumDescriptor");
18
- return EnumDecorator;
19
- }());
20
- var EnumHelper = /** @class */ (function () {
21
- function EnumHelper() {
22
- }
23
- /**
24
- * Decorate an enum and it's items.
25
- * @param enumType The enum.
26
- * @param callback Callback decorator. E.g: e.describe(Enum.Item1, "Display Value")
27
- */
28
- EnumHelper.decorateEnum = function (enumType, callback) {
29
- var helper = new EnumDecorator(enumType);
30
- callback(helper);
31
- };
32
- /**
33
- * Creates a static datasource from an Enum.
34
- */
35
- EnumHelper.asDatasource = function (enumType) {
36
- return StaticDataSource.fromEnum(enumType);
37
- };
38
- /**
39
- * Creates a list of IEnumItem from an enum, using the enum decorator data.
40
- */
41
- EnumHelper.asList = function (enumObject) {
42
- var descriptorMap = enumObject[EnumDecorator.enumDescriptorSymbol] || {};
43
- var keys = Object.keys(enumObject).filter(function (key) { return typeof enumObject[key] === "number"; });
44
- var items = [];
45
- if (keys.length === 0) {
46
- // String enum type.
47
- keys = Object.keys(enumObject);
48
- }
49
- var index = keys.length;
50
- for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
51
- var key = keys_1[_i];
52
- var id = enumObject[key];
53
- var name_1 = void 0, description = void 0;
54
- var itemDescriptor = descriptorMap[id];
55
- if (itemDescriptor) {
56
- name_1 = itemDescriptor.display;
57
- description = itemDescriptor.description;
58
- }
59
- else {
60
- name_1 = key.readable();
61
- }
62
- items.push({ id: id, name: name_1, description: description, order: itemDescriptor && itemDescriptor.order !== undefined ? itemDescriptor.order : index });
63
- index += 1;
64
- }
65
- return items.sortBy(function (c) { return c.order; }).map(function (item) { return ({ id: item.id, name: item.name, description: item.description }); });
66
- };
67
- /**
68
- * Gets the metadata for an enum item.
69
- * @param enumType Enum object. E.g. Status
70
- * @param enumItem Enum item. E.g. Status.Pending
71
- */
72
- EnumHelper.getItemMetadata = function (enumType, enumItem) {
73
- var descriptorMap = enumType[EnumDecorator.enumDescriptorSymbol] || {};
74
- var itemDescriptor = descriptorMap[enumItem];
75
- var name = enumType[enumItem];
76
- if (!itemDescriptor) {
77
- itemDescriptor = name ? { name: name, display: name.readable() } : { name: enumItem.toString(), display: enumItem.toString() };
78
- }
79
- else {
80
- itemDescriptor.name = name;
81
- }
82
- return itemDescriptor;
83
- };
84
- /**
85
- * Returns `true` if this item looks like an enum item.
86
- *
87
- * E.g. has an `id` and `name` property.
88
- */
89
- EnumHelper.isEnumItem = function (item) {
90
- if (typeof item === "object") {
91
- var properties = Object.getOwnPropertyNames(item);
92
- if (properties.length <= 3 && properties.some(function (c) { return c === "id"; }) && properties.some(function (c) { return c === "name"; })) {
93
- return true;
94
- }
95
- }
96
- return false;
97
- };
98
- return EnumHelper;
99
- }());
100
- export { EnumHelper };
1
+ import { StaticDataSource } from '../Data';
2
+ var EnumDecorator = /** @class */ (function () {
3
+ function EnumDecorator(enumType) {
4
+ this.enumType = enumType;
5
+ // @ts-ignore
6
+ enumType[EnumDecorator.enumDescriptorSymbol] = {};
7
+ }
8
+ /**
9
+ * Describe the enum item.
10
+ * @param enumItem Item you are describing.
11
+ * @param display Display name to use, e.g. for use in drop downs.
12
+ * @param description Additional description about the item.
13
+ * @param order Override sort order.
14
+ */
15
+ EnumDecorator.prototype.describe = function (enumItem, display, description, order) {
16
+ // @ts-ignore
17
+ this.enumType[EnumDecorator.enumDescriptorSymbol][enumItem] = { display: display, description: description, order: order };
18
+ };
19
+ EnumDecorator.enumDescriptorSymbol = Symbol("Neo.EnumDescriptor");
20
+ return EnumDecorator;
21
+ }());
22
+ var EnumHelper = /** @class */ (function () {
23
+ function EnumHelper() {
24
+ }
25
+ /**
26
+ * Decorate an enum and it's items.
27
+ * @param enumType The enum.
28
+ * @param callback Callback decorator. E.g: e.describe(Enum.Item1, "Display Value")
29
+ */
30
+ EnumHelper.decorateEnum = function (enumType, callback) {
31
+ var helper = new EnumDecorator(enumType);
32
+ callback(helper);
33
+ };
34
+ /**
35
+ * Creates a static datasource from an Enum.
36
+ */
37
+ EnumHelper.asDatasource = function (enumType) {
38
+ return StaticDataSource.fromEnum(enumType);
39
+ };
40
+ /**
41
+ * Creates a list of IEnumItem from an enum, using the enum decorator data.
42
+ */
43
+ EnumHelper.asList = function (enumObject) {
44
+ var descriptorMap = enumObject[EnumDecorator.enumDescriptorSymbol] || {};
45
+ var keys = Object.keys(enumObject).filter(function (key) { return typeof enumObject[key] === "number"; });
46
+ var items = [];
47
+ if (keys.length === 0) {
48
+ // String enum type.
49
+ keys = Object.keys(enumObject);
50
+ }
51
+ var index = keys.length;
52
+ for (var _i = 0, keys_1 = keys; _i < keys_1.length; _i++) {
53
+ var key = keys_1[_i];
54
+ var id = enumObject[key];
55
+ var name_1 = void 0, description = void 0;
56
+ var itemDescriptor = descriptorMap[id];
57
+ if (itemDescriptor) {
58
+ name_1 = itemDescriptor.display;
59
+ description = itemDescriptor.description;
60
+ }
61
+ else {
62
+ name_1 = key.readable();
63
+ }
64
+ items.push({ id: id, name: name_1, description: description, order: itemDescriptor && itemDescriptor.order !== undefined ? itemDescriptor.order : index });
65
+ index += 1;
66
+ }
67
+ return items.sortBy(function (c) { return c.order; }).map(function (item) { return ({ id: item.id, name: item.name, description: item.description }); });
68
+ };
69
+ /**
70
+ * Gets the metadata for an enum item.
71
+ * @param enumType Enum object. E.g. Status
72
+ * @param enumItem Enum item. E.g. Status.Pending
73
+ */
74
+ EnumHelper.getItemMetadata = function (enumType, enumItem) {
75
+ // @ts-ignore
76
+ var descriptorMap = enumType[EnumDecorator.enumDescriptorSymbol] || {};
77
+ var itemDescriptor = descriptorMap[enumItem];
78
+ // @ts-ignore
79
+ var name = enumType[enumItem];
80
+ if (!itemDescriptor) {
81
+ itemDescriptor = name ? { name: name, display: name.readable() } : { name: enumItem.toString(), display: enumItem.toString() };
82
+ }
83
+ else {
84
+ itemDescriptor.name = name;
85
+ }
86
+ return itemDescriptor;
87
+ };
88
+ /**
89
+ * Returns `true` if this item looks like an enum item.
90
+ *
91
+ * E.g. has an `id` and `name` property.
92
+ */
93
+ EnumHelper.isEnumItem = function (item) {
94
+ if (typeof item === "object") {
95
+ var properties = Object.getOwnPropertyNames(item);
96
+ if (properties.length <= 3 && properties.some(function (c) { return c === "id"; }) && properties.some(function (c) { return c === "name"; })) {
97
+ return true;
98
+ }
99
+ }
100
+ return false;
101
+ };
102
+ return EnumHelper;
103
+ }());
104
+ export { EnumHelper };
@@ -1,5 +1,5 @@
1
- import { IModelBase } from './IModelBase';
2
- import { IAutoRunner, IAutoRunnerOptions } from './Misc';
3
- export interface IAutoRunnerFactory {
4
- create<T extends IModelBase>(model: T, callback: (model: T) => void, options?: IAutoRunnerOptions<T>): IAutoRunner;
5
- }
1
+ import { IModelBase } from './IModelBase';
2
+ import { IAutoRunner, IAutoRunnerOptions } from './Misc';
3
+ export interface IAutoRunnerFactory {
4
+ create<T extends IModelBase>(model: T, callback: (model: T) => void, options?: IAutoRunnerOptions<T>): IAutoRunner;
5
+ }
@@ -1 +1 @@
1
- export {};
1
+ export {};
@@ -1,79 +1,101 @@
1
- import { NeoTypeInfo } from './NeoTypeInfo';
2
- import { IPropertyInstance } from './PropertyInstance';
3
- import IModelValidator from '../Validation/Validators/IModelValidator';
4
- import { ValidationRules } from '../Validation/ValidationRules';
5
- import { ISerialiseOptions } from '../Data/Serialiser';
6
- import { RemoveMethods, Omit } from '../Utils';
7
- import List from './List';
8
- import { Misc } from '../';
9
- export declare type ObservableKeys<T> = RemoveMethods<Omit<T, keyof INonObservableModelBase>>;
10
- export declare type TransformMetaType<T> = {
11
- [P in keyof ObservableKeys<T>]: IPropertyInstance<T[P]>;
12
- };
13
- export interface IMetaItem {
14
- [index: string]: any;
15
- meta: {
16
- [index: string]: IPropertyInstance;
17
- };
18
- }
19
- declare type NoModelBase<T> = Pick<T, Exclude<keyof T, keyof IModelBase> & keyof RemoveMethods<T>>;
20
- declare type TransformLists<T> = {
21
- [P in keyof T]: T[P] extends List<infer I> ? I[] : T[P];
22
- };
23
- declare type RemoveChildren<T> = Pick<T, {
24
- [P in keyof T]: T[P] extends List<infer I> ? never : T[P] extends IModelBase ? never : P;
25
- }[keyof T]>;
26
- export declare type PartialOrNull<T> = {
27
- [P in keyof T]?: T[P] | null;
28
- };
29
- export declare type PlainObject<T> = TransformLists<NoModelBase<T>>;
30
- export declare type PlainTrackedObject<T> = PlainObject<T> & {
31
- trackingState?: Misc.TrackingState;
32
- entityIdentifier?: string;
33
- };
34
- export declare type PlainFlatObject<T> = Pick<T, Exclude<keyof T, keyof IModelBase> & keyof RemoveMethods<T> & keyof RemoveChildren<T>>;
35
- export declare type PartialPlainObject<T> = Partial<PlainObject<T>> & {
36
- meta?: never;
37
- };
38
- export declare type PartialPlainNonTrackedObject<T> = PartialPlainObject<T> & {
39
- trackingState?: never;
40
- };
41
- export interface NeoModelConstructor extends Function {
42
- neo: NeoTypeInfo;
43
- }
44
- export interface IDebounceOptions {
45
- delayMs?: number;
46
- }
47
- export interface IBindableBase {
48
- meta: {
49
- [index: string]: IPropertyInstance;
50
- };
51
- set(jsObject: any): void;
52
- }
53
- export interface INonObservableModelBase extends IBindableBase {
54
- isSuspended: boolean;
55
- validator: IModelValidator;
56
- markOld(recurse?: boolean): void;
57
- toJSObject(options: ISerialiseOptions): PlainObject<this>;
58
- update(jsObject: any): void;
59
- toQueryObject(): PlainFlatObject<this>;
60
- toQueryObjectAuto(callback: (queryObject: PlainFlatObject<this>) => void, options?: IDebounceOptions): Misc.IAutoRunner;
61
- onAnyPropertyChanged(callback: () => void, options?: Misc.IAutoRunnerOptions<this>): Misc.IAutoRunner;
62
- /** Icon to display next to toString() text. */
63
- getIcon(): string;
64
- }
65
- export interface IModelBaseInternal {
66
- addBusinessRules(validationRules: ValidationRules<IModelBase>): void;
67
- onDeserialiseCompleted(wasCreated: boolean): void;
68
- canSerialise(shouldSerialise: boolean): boolean;
69
- }
70
- export interface IModelBase extends INonObservableModelBase {
71
- entityIdentifier: string;
72
- isSelfDirty: boolean;
73
- isNew: boolean;
74
- readonly isSelfValid: boolean;
75
- readonly isValid: boolean;
76
- readonly isDirty: boolean;
77
- readonly readyToSave: boolean;
78
- }
79
- export {};
1
+ import { NeoTypeInfo } from './NeoTypeInfo';
2
+ import { IPropertyInstance } from './PropertyInstance';
3
+ import IModelValidator from '../Validation/Validators/IModelValidator';
4
+ import { ValidationRules } from '../Validation/ValidationRules';
5
+ import { ISerialiseOptions } from '../Data/Serialiser';
6
+ import { RemoveMethods, Omit } from '../Utils';
7
+ import List from './List';
8
+ import { Misc } from '../';
9
+ export type ObservableKeys<T> = RemoveMethods<Omit<T, keyof INonObservableModelBase>>;
10
+ export type TransformMetaType<T> = {
11
+ [P in keyof ObservableKeys<T>]: IPropertyInstance<T[P]>;
12
+ };
13
+ export interface IMetaItem {
14
+ [index: string]: any;
15
+ meta: {
16
+ [index: string]: IPropertyInstance;
17
+ };
18
+ }
19
+ type NoModelBase<T> = Pick<T, Exclude<keyof T, keyof IModelBase> & keyof RemoveMethods<T>>;
20
+ type TransformLists<T> = {
21
+ [P in keyof T]: T[P] extends List<infer I> ? I[] : T[P];
22
+ };
23
+ type RemoveChildren<T> = Pick<T, {
24
+ [P in keyof T]: T[P] extends List<infer I> ? never : T[P] extends IModelBase ? never : P;
25
+ }[keyof T]>;
26
+ export type PartialOrNull<T> = {
27
+ [P in keyof T]?: T[P] | null;
28
+ };
29
+ /** Removes ModelBase properties (isNew, isDirty etc), removes methods, and changes list types to arrays. */
30
+ export type PlainObject<T> = TransformLists<NoModelBase<T>>;
31
+ /** PlainObject plus tracking state and entity identifier. */
32
+ export type PlainTrackedObject<T> = PlainObject<T> & {
33
+ trackingState?: Misc.TrackingState;
34
+ entityIdentifier?: string;
35
+ };
36
+ /** Plain object with no tracking state, and no lists. */
37
+ export type PlainFlatObject<T> = Pick<T, Exclude<keyof T, keyof IModelBase> & keyof RemoveMethods<T> & keyof RemoveChildren<T>>;
38
+ /** Plain object where the meta property is not allowed. Used to accept any Plain* object. */
39
+ export type PartialPlainObject<T> = Partial<PlainObject<T>> & {
40
+ meta?: never;
41
+ };
42
+ /** Plain object where the meta and tracking state properties are not allowed. Used to accept PlainObject and PlainFlatObject. */
43
+ export type PartialPlainNonTrackedObject<T> = PartialPlainObject<T> & {
44
+ trackingState?: never;
45
+ };
46
+ export interface NeoModelConstructor extends Function {
47
+ neo: NeoTypeInfo;
48
+ }
49
+ export interface IMakeBindableOptions {
50
+ /**
51
+ * Specifies whether properties should be observable
52
+ * * If this is `true`, all properties will be observable by default.
53
+ * * If `false` only properties decorated with @Attributes.Observable will be made observable.
54
+ * * If `undefined`, only types that inherit from `ModelBase` will be observable by default.
55
+ */
56
+ makeObservable?: boolean;
57
+ /**
58
+ * Specifies whether methods should be converted to mobx actions. This is `true` by default.
59
+ * Use `Attributes.Action()` to override this per methis. */
60
+ autoActions?: boolean;
61
+ /**
62
+ * If `true`, this instance will not be converted. In inheritence heirarchies, use this to ensure only the last derived type converts the instance.
63
+ */
64
+ skipConversion?: boolean;
65
+ }
66
+ export interface IDebounceOptions {
67
+ delayMs?: number;
68
+ }
69
+ export interface IBindableBase {
70
+ meta: {
71
+ [index: string]: IPropertyInstance;
72
+ };
73
+ set(jsObject: any): void;
74
+ }
75
+ export interface INonObservableModelBase extends IBindableBase {
76
+ isSuspended: boolean;
77
+ validator: IModelValidator;
78
+ markOld(recurse?: boolean): void;
79
+ toJSObject(options: ISerialiseOptions): PlainObject<this>;
80
+ update(jsObject: any): void;
81
+ toQueryObject(): PlainFlatObject<this>;
82
+ toQueryObjectAuto(callback: (queryObject: PlainFlatObject<this>) => void, options?: IDebounceOptions): Misc.IAutoRunner;
83
+ onAnyPropertyChanged(callback: () => void, options?: Misc.IAutoRunnerOptions<this>): Misc.IAutoRunner;
84
+ /** Icon to display next to toString() text. */
85
+ getIcon(): string;
86
+ }
87
+ export interface IModelBaseInternal {
88
+ addBusinessRules(validationRules: ValidationRules<IModelBase>): void;
89
+ onDeserialiseCompleted(wasCreated: boolean): void;
90
+ canSerialise(shouldSerialise: boolean): boolean;
91
+ }
92
+ export interface IModelBase extends INonObservableModelBase {
93
+ entityIdentifier: string;
94
+ isSelfDirty: boolean;
95
+ isNew: boolean;
96
+ readonly isSelfValid: boolean;
97
+ readonly isValid: boolean;
98
+ readonly isDirty: boolean;
99
+ readonly readyToSave: boolean;
100
+ }
101
+ export {};
@@ -1 +1 @@
1
- export {};
1
+ export {};
@@ -1,9 +1,9 @@
1
- import { NeoTypeInfo } from './NeoTypeInfo';
2
- import { NeoModelConstructor } from './IModelBase';
3
- export default interface IModelCreatorBase {
4
- shouldInitialiseAllMembers: boolean;
5
- initialise(typeInfo: NeoTypeInfo, originalConstructor: NeoModelConstructor): void;
6
- isBindableBase(type: NeoModelConstructor): boolean;
7
- isModelBase(type: NeoModelConstructor): boolean;
8
- convertInstance(instance: {}): {};
9
- }
1
+ import { NeoTypeInfo } from './NeoTypeInfo';
2
+ import { IMakeBindableOptions, NeoModelConstructor } from './IModelBase';
3
+ export default interface IModelCreatorBase {
4
+ shouldInitialiseAllMembers: boolean;
5
+ initialise(typeInfo: NeoTypeInfo, originalConstructor: NeoModelConstructor): void;
6
+ isBindableBase(type: NeoModelConstructor): boolean;
7
+ isModelBase(type: NeoModelConstructor): boolean;
8
+ convertInstance(instance: {}, options: IMakeBindableOptions): {};
9
+ }
@@ -1 +1 @@
1
- export {};
1
+ export {};
@@ -1,77 +1,79 @@
1
- import { ISerialiseOptions } from '../Data/Serialiser';
2
- import { PlainObject, PartialPlainObject, PlainTrackedObject, IMetaItem } from './IModelBase';
3
- import { IDeserialiseOptions } from '../Data/Deserialiser';
4
- export default class List<T> extends Array<T> {
5
- childObjectType: (new () => T);
6
- attachedTo: object | null;
7
- private _deletedList;
8
- get deletedList(): T[];
9
- private baseMethods;
10
- constructor(childObjectType: (new () => T));
11
- /**
12
- * Copies the methods and properties from the prototype to the new instance.
13
- * This is needed because vue / mobx changes the prototype to its own.
14
- */
15
- static copyMethods(toInstance: any): void;
16
- setupProxy(proxy: any, attachedTo: any): void;
17
- /**
18
- * Converts the neo models to plain javascript objects without tracking state.
19
- * @param options Serialisation options.
20
- * */
21
- toJSArray(options?: ISerialiseOptions & {
22
- suppressTrackingState: true;
23
- }): Array<PlainObject<T>>;
24
- /**
25
- * Converts the neo models to plain javascript objects.
26
- * @param options Serialisation options.
27
- * */
28
- toJSArray(options?: ISerialiseOptions & {
29
- suppressTrackingState?: false;
30
- }): Array<PlainTrackedObject<T>>;
31
- /**
32
- * Converts the neo models to plain javascript objects.
33
- * */
34
- toJSArray(): Array<PlainTrackedObject<T>>;
35
- /**
36
- * Converts a plain javascript Array to a neo model graph.
37
- * Replaces a list - Items in the list, but not in jsArray will be removed.
38
- * If you need missing items to remain, use update() instead.
39
- * This will generally be used after calling toJSArray(includeClean = true)
40
- * */
41
- set(jsArray: PartialPlainObject<T>[], options?: IDeserialiseOptions): void;
42
- /**
43
- * Converts a plain javascript Array to a neo model graph.
44
- * Updates a list - Items in the list, but not in jsArray will remain in the list.
45
- * If you need to replace the List with jsArray, use set() instead.
46
- * This will generally be used after calling toJSArray(includeClean = false)
47
- * */
48
- update(jsArray: PartialPlainObject<T>[], options?: IDeserialiseOptions): void;
49
- /**
50
- * Converts a plain javascript array into a neo model graph.
51
- */
52
- static fromJSArray<T>(childType: new () => T, jsArray: PartialPlainObject<T>[], options?: IDeserialiseOptions): List<T>;
53
- /** Creates a new item of type T */
54
- createChild(): T;
55
- push(...items: T[]): any;
56
- clearDeletedList(): void;
57
- private setParent;
58
- /** Creates a new item of type T, adds it to the array and returns the new item. */
59
- addNew(): T;
60
- /**
61
- * Removes an item from the array, and adds it to the deleted list. Deleted items will be included when calling toJSArray
62
- * @param item Item to remove
63
- */
64
- remove(item: T): void;
65
- /**
66
- * Removes an item from the array without adding it to the deleted list.
67
- * @param item Item to remove
68
- */
69
- removeWithoutTracking(item: T): void;
70
- private removeItem;
71
- /** Returns a static meta object containing all the properties of the lists item type. */
72
- getMetaItem(): IMetaItem;
73
- /** True if all items in the list are valid. */
74
- get isValid(): boolean;
75
- /** True if any item in the list is dirty, or the list contains any deleted items. */
76
- get isDirty(): boolean;
77
- }
1
+ import { ISerialiseOptions } from '../Data/Serialiser';
2
+ import { PlainObject, PartialPlainObject, PlainTrackedObject, IMetaItem } from './IModelBase';
3
+ import { IDeserialiseOptions } from '../Data/Deserialiser';
4
+ export default class List<T> extends Array<T> {
5
+ childObjectType: (new () => T);
6
+ attachedTo: object | null;
7
+ private _deletedList;
8
+ get deletedList(): T[];
9
+ private baseMethods;
10
+ constructor(childObjectType: (new () => T));
11
+ /**
12
+ * Copies the methods and properties from the prototype to the new instance.
13
+ * This is needed because vue / mobx changes the prototype to its own.
14
+ */
15
+ static copyMethods(toInstance: any): void;
16
+ setupProxy(proxy: any, attachedTo: any): void;
17
+ /**
18
+ * Converts the neo models to plain javascript objects without tracking state.
19
+ * @param options Serialisation options.
20
+ * */
21
+ toJSArray(options?: ISerialiseOptions & {
22
+ suppressTrackingState: true;
23
+ }): Array<PlainObject<T>>;
24
+ /**
25
+ * Converts the neo models to plain javascript objects.
26
+ * @param options Serialisation options.
27
+ * */
28
+ toJSArray(options?: ISerialiseOptions & {
29
+ suppressTrackingState?: false;
30
+ }): Array<PlainTrackedObject<T>>;
31
+ /**
32
+ * Converts the neo models to plain javascript objects.
33
+ * */
34
+ toJSArray(): Array<PlainTrackedObject<T>>;
35
+ /**
36
+ * Converts a plain javascript Array to a neo model graph.
37
+ * Replaces a list - Items in the list, but not in jsArray will be removed.
38
+ * If you need missing items to remain, use update() instead.
39
+ * This will generally be used after calling toJSArray(includeClean = true)
40
+ * */
41
+ set(jsArray: PartialPlainObject<T>[], options?: IDeserialiseOptions): void;
42
+ /**
43
+ * Converts a plain javascript Array to a neo model graph.
44
+ * Updates a list - Items in the list, but not in jsArray will remain in the list.
45
+ * If you need to replace the List with jsArray, use set() instead.
46
+ * This will generally be used after calling toJSArray(includeClean = false)
47
+ * */
48
+ update(jsArray: PartialPlainObject<T>[], options?: IDeserialiseOptions): void;
49
+ /**
50
+ * Converts a plain javascript array into a neo model graph.
51
+ */
52
+ static fromJSArray<T>(childType: new () => T, jsArray: PartialPlainObject<T>[], options?: IDeserialiseOptions): List<T>;
53
+ /** Creates a new item of type T */
54
+ createChild(): T;
55
+ push(...items: T[]): any;
56
+ clearDeletedList(): void;
57
+ private setParent;
58
+ /** Creates a new item of type T, adds it to the array and returns the new item. */
59
+ addNew(): T;
60
+ /**
61
+ * Removes an item from the array, and adds it to the deleted list. Deleted items will be included when calling toJSArray
62
+ * @param item Item to remove
63
+ */
64
+ remove(item: T): void;
65
+ /**
66
+ * Removes an item from the array without adding it to the deleted list.
67
+ * @param item Item to remove
68
+ */
69
+ removeWithoutTracking(item: T): void;
70
+ private removeItem;
71
+ /** Returns a static meta object containing all the properties of the lists item type. */
72
+ getMetaItem(): IMetaItem;
73
+ /** True if all items in the list are valid. */
74
+ get isValid(): boolean;
75
+ /** True if any item in the list is dirty, or the list contains any deleted items. */
76
+ get isDirty(): boolean;
77
+ /** Indicates that the model is dirty and valid and can be saved. */
78
+ get readyToSave(): boolean;
79
+ }