@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.
- package/CHANGELOG.md +15 -0
- package/dist/ApiClient/ApiClientBase.d.ts +5 -5
- package/dist/ApiClient/ApiClientBase.js +13 -13
- package/dist/ApiClient/ReadApiClient.d.ts +16 -16
- package/dist/ApiClient/ReadApiClient.js +24 -24
- package/dist/ApiClient/UpdateableApiClient.d.ts +28 -28
- package/dist/ApiClient/UpdateableApiClient.js +33 -33
- package/dist/AppServices/AppService.d.ts +46 -46
- package/dist/AppServices/AppService.js +25 -25
- package/dist/AppServices/Config/ConfigModel.d.ts +21 -20
- package/dist/AppServices/Config/ConfigModel.js +28 -17
- package/dist/AppServices/Config/ConfigService.d.ts +15 -15
- package/dist/AppServices/Config/ConfigService.js +49 -53
- package/dist/AppServices/Module.d.ts +11 -11
- package/dist/AppServices/Module.js +13 -13
- package/dist/AppServices/NeoContainer.d.ts +22 -22
- package/dist/AppServices/NeoContainer.js +42 -42
- package/dist/AppServices/NeoModule.d.ts +3 -3
- package/dist/AppServices/NeoModule.js +30 -30
- package/dist/AppServices/NeoTypes.d.ts +61 -61
- package/dist/AppServices/NeoTypes.js +42 -42
- package/dist/AppServices/ServiceIdentifier.d.ts +23 -23
- package/dist/AppServices/ServiceIdentifier.js +38 -39
- package/dist/AppServices/index.d.ts +7 -7
- package/dist/AppServices/index.js +7 -7
- package/dist/Components/AnimationHelper.d.ts +69 -69
- package/dist/Components/AnimationHelper.js +182 -182
- package/dist/Components/BootstrapHelpers.d.ts +8 -8
- package/dist/Components/BootstrapHelpers.js +30 -30
- package/dist/Components/BootstrapTypes.d.ts +35 -35
- package/dist/Components/BootstrapTypes.js +1 -1
- package/dist/Components/ButtonOptions.d.ts +63 -61
- package/dist/Components/ButtonOptions.js +1 -1
- package/dist/Components/ContextMenu/ContextMenu.d.ts +16 -16
- package/dist/Components/ContextMenu/ContextMenu.js +1 -1
- package/dist/Components/ContextMenu/MenuUtils.d.ts +16 -16
- package/dist/Components/ContextMenu/MenuUtils.js +34 -34
- package/dist/Components/DatePicker/DatePicker.d.ts +70 -69
- package/dist/Components/DatePicker/DatePicker.js +502 -487
- package/dist/Components/DatePicker/DatePickerOptions.d.ts +43 -34
- package/dist/Components/DatePicker/DatePickerOptions.js +33 -33
- package/dist/Components/ErrorHandler.d.ts +59 -55
- package/dist/Components/ErrorHandler.js +210 -138
- package/dist/Components/FileManager/BoundFileManager.d.ts +18 -18
- package/dist/Components/FileManager/BoundFileManager.js +60 -60
- package/dist/Components/FileManager/FileManager.d.ts +80 -78
- package/dist/Components/FileManager/FileManager.js +277 -257
- package/dist/Components/FileManager/FileUploadBatch.d.ts +37 -37
- package/dist/Components/FileManager/FileUploadBatch.js +83 -82
- package/dist/Components/FileManager/IFileManagerOptions.d.ts +42 -42
- package/dist/Components/FileManager/IFileManagerOptions.js +1 -1
- package/dist/Components/FormOptions.d.ts +34 -34
- package/dist/Components/FormOptions.js +1 -1
- package/dist/Components/ICollapsableOptions.d.ts +11 -11
- package/dist/Components/ICollapsableOptions.js +1 -1
- package/dist/Components/Modal/ModalHelper.d.ts +31 -31
- package/dist/Components/Modal/ModalHelper.js +174 -174
- package/dist/Components/Modal/ModalOptions.d.ts +61 -61
- package/dist/Components/Modal/ModalOptions.js +1 -1
- package/dist/Components/Modal/ModalStore.d.ts +32 -32
- package/dist/Components/Modal/ModalStore.js +82 -82
- package/dist/Components/Modal/ModalUtils.d.ts +61 -61
- package/dist/Components/Modal/ModalUtils.js +109 -109
- package/dist/Components/Notifications/INotificationHelper.d.ts +56 -56
- package/dist/Components/Notifications/INotificationHelper.js +1 -1
- package/dist/Components/Notifications/Notification.d.ts +32 -32
- package/dist/Components/Notifications/Notification.js +26 -27
- package/dist/Components/Notifications/NotificationHelper.d.ts +63 -63
- package/dist/Components/Notifications/NotificationHelper.js +111 -112
- package/dist/Components/Notifications/NotificationStore.d.ts +34 -34
- package/dist/Components/Notifications/NotificationStore.js +78 -79
- package/dist/Components/PositionHelper.d.ts +10 -10
- package/dist/Components/PositionHelper.js +43 -43
- package/dist/Components/TaskRunner/Decorators.d.ts +6 -6
- package/dist/Components/TaskRunner/Decorators.js +24 -24
- package/dist/Components/TaskRunner/ProgressState.d.ts +22 -22
- package/dist/Components/TaskRunner/ProgressState.js +71 -72
- package/dist/Components/TaskRunner/TaskRunner.d.ts +114 -114
- package/dist/Components/TaskRunner/TaskRunner.js +253 -244
- package/dist/Components/TooltipOptions.d.ts +8 -8
- package/dist/Components/TooltipOptions.js +1 -1
- package/dist/Components/index.d.ts +22 -22
- package/dist/Components/index.js +13 -13
- package/dist/ConnectionManager.d.ts +45 -45
- package/dist/ConnectionManager.js +60 -61
- package/dist/Data/ApiDataSource.d.ts +46 -46
- package/dist/Data/ApiDataSource.js +140 -144
- package/dist/Data/AsyncDataSource.d.ts +35 -35
- package/dist/Data/AsyncDataSource.js +79 -80
- package/dist/Data/CacheService.d.ts +40 -40
- package/dist/Data/CacheService.js +63 -64
- package/dist/Data/DataCacheEntry.d.ts +42 -42
- package/dist/Data/DataCacheEntry.js +80 -80
- package/dist/Data/DataView.d.ts +43 -43
- package/dist/Data/DataView.js +173 -172
- package/dist/Data/Deserialiser.d.ts +42 -42
- package/dist/Data/Deserialiser.js +255 -255
- package/dist/Data/Paging/PageManager.d.ts +167 -167
- package/dist/Data/Paging/PageManager.js +323 -323
- package/dist/Data/Paging/PageRequest.d.ts +24 -24
- package/dist/Data/Paging/PageRequest.js +38 -39
- package/dist/Data/Paging/PageResult.d.ts +10 -10
- package/dist/Data/Paging/PageResult.js +14 -14
- package/dist/Data/Serialiser.d.ts +41 -41
- package/dist/Data/Serialiser.js +201 -201
- package/dist/Data/SortOperation.d.ts +8 -8
- package/dist/Data/SortOperation.js +26 -26
- package/dist/Data/StaticDataSource.d.ts +9 -9
- package/dist/Data/StaticDataSource.js +27 -27
- package/dist/Data/WindowedDataView.d.ts +8 -8
- package/dist/Data/WindowedDataView.js +49 -50
- package/dist/Data/index.d.ts +15 -15
- package/dist/Data/index.js +15 -15
- package/dist/Dates/DateUtils.d.ts +47 -47
- package/dist/Dates/DateUtils.js +226 -226
- package/dist/Dates/TimeSpan.d.ts +24 -24
- package/dist/Dates/TimeSpan.js +46 -46
- package/dist/DebounceHelper.d.ts +44 -38
- package/dist/DebounceHelper.js +122 -95
- package/dist/Extensions.d.ts +82 -82
- package/dist/Extensions.js +182 -182
- package/dist/FileUtils.d.ts +6 -6
- package/dist/FileUtils.js +37 -37
- package/dist/Globals.d.ts +19 -19
- package/dist/Globals.js +41 -41
- package/dist/JsonSchema/ClassMetadata.d.ts +25 -25
- package/dist/JsonSchema/ClassMetadata.js +53 -53
- package/dist/JsonSchema/JsonData.d.ts +16 -16
- package/dist/JsonSchema/JsonData.js +97 -97
- package/dist/JsonSchema/JsonSchemaTypes.d.ts +37 -37
- package/dist/JsonSchema/JsonSchemaTypes.js +1 -1
- package/dist/JsonSchema/PropertyMetadata.d.ts +8 -8
- package/dist/JsonSchema/PropertyMetadata.js +8 -8
- package/dist/JsonSchema/TypeCache.d.ts +16 -16
- package/dist/JsonSchema/TypeCache.js +44 -44
- package/dist/JsonSchema/TypeMetadata.d.ts +45 -45
- package/dist/JsonSchema/TypeMetadata.js +170 -170
- package/dist/JsonSchema/index.d.ts +7 -7
- package/dist/JsonSchema/index.js +6 -6
- package/dist/Localisation/ILocalisationService.d.ts +11 -11
- package/dist/Localisation/ILocalisationService.js +1 -1
- package/dist/Localisation/LocalisationService.d.ts +4 -4
- package/dist/Localisation/LocalisationService.js +17 -17
- package/dist/Localisation/index.d.ts +1 -1
- package/dist/Localisation/index.js +1 -1
- package/dist/Misc.d.ts +6 -6
- package/dist/Misc.js +6 -6
- package/dist/Model/BaseModels/AuditValues.d.ts +12 -12
- package/dist/Model/BaseModels/AuditValues.js +46 -48
- package/dist/Model/BaseModels/CriteriaBase.d.ts +18 -16
- package/dist/Model/BaseModels/CriteriaBase.js +45 -34
- package/dist/Model/BaseModels/FileDescriptorBase.d.ts +12 -12
- package/dist/Model/BaseModels/FileDescriptorBase.js +22 -22
- package/dist/Model/BaseModels/ReasonedUserEvent.d.ts +5 -4
- package/dist/Model/BaseModels/ReasonedUserEvent.js +23 -19
- package/dist/Model/BaseModels/UserEvent.d.ts +9 -8
- package/dist/Model/BaseModels/UserEvent.js +36 -32
- package/dist/Model/BindableBase.d.ts +46 -40
- package/dist/Model/BindableBase.js +79 -76
- package/dist/Model/Decorators.d.ts +47 -44
- package/dist/Model/Decorators.js +182 -177
- package/dist/Model/EnumHelper.d.ts +54 -54
- package/dist/Model/EnumHelper.js +104 -100
- package/dist/Model/IAutoRunner.d.ts +5 -5
- package/dist/Model/IAutoRunner.js +1 -1
- package/dist/Model/IModelBase.d.ts +92 -79
- package/dist/Model/IModelBase.js +1 -1
- package/dist/Model/IModelCreatorBase.d.ts +9 -9
- package/dist/Model/IModelCreatorBase.js +1 -1
- package/dist/Model/List.d.ts +79 -77
- package/dist/Model/List.js +208 -198
- package/dist/Model/LookupBase.d.ts +13 -6
- package/dist/Model/LookupBase.js +19 -10
- package/dist/Model/Misc.d.ts +83 -81
- package/dist/Model/Misc.js +59 -59
- package/dist/Model/ModelBase.d.ts +88 -86
- package/dist/Model/ModelBase.js +182 -180
- package/dist/Model/ModelCreatorBase.d.ts +24 -23
- package/dist/Model/ModelCreatorBase.js +92 -92
- package/dist/Model/ModelFieldInfo.d.ts +29 -12
- package/dist/Model/ModelFieldInfo.js +35 -26
- package/dist/Model/ModelGraphTraverser.d.ts +35 -35
- package/dist/Model/ModelGraphTraverser.js +101 -99
- package/dist/Model/NeoModel.d.ts +6 -6
- package/dist/Model/NeoModel.js +13 -13
- package/dist/Model/NeoTypeInfo.d.ts +52 -41
- package/dist/Model/NeoTypeInfo.js +300 -250
- package/dist/Model/ObservableProperty.d.ts +8 -8
- package/dist/Model/ObservableProperty.js +41 -41
- package/dist/Model/ObservableValue.d.ts +9 -9
- package/dist/Model/ObservableValue.js +25 -26
- package/dist/Model/PropertyInfo.d.ts +83 -81
- package/dist/Model/PropertyInfo.js +138 -137
- package/dist/Model/PropertyInstance.d.ts +84 -48
- package/dist/Model/PropertyInstance.js +173 -113
- package/dist/Model/ValueObject.d.ts +3 -3
- package/dist/Model/ValueObject.js +10 -10
- package/dist/Model/index.d.ts +15 -14
- package/dist/Model/index.js +13 -12
- package/dist/NumberUtils.d.ts +63 -49
- package/dist/NumberUtils.js +247 -197
- package/dist/Routing/IMenuItemProvider.d.ts +9 -9
- package/dist/Routing/IMenuItemProvider.js +1 -1
- package/dist/Routing/IMenuRoute.d.ts +18 -18
- package/dist/Routing/IMenuRoute.js +1 -1
- package/dist/Routing/INavigationHelper.d.ts +7 -7
- package/dist/Routing/INavigationHelper.js +1 -1
- package/dist/Routing/IPageLeaveHandler.d.ts +23 -23
- package/dist/Routing/IPageLeaveHandler.js +7 -7
- package/dist/Routing/IRoute.d.ts +27 -27
- package/dist/Routing/IRoute.js +1 -1
- package/dist/Routing/IRouteSecurityService.d.ts +14 -14
- package/dist/Routing/IRouteSecurityService.js +1 -1
- package/dist/Routing/MenuItemProvider.d.ts +17 -17
- package/dist/Routing/MenuItemProvider.js +53 -54
- package/dist/Routing/RouteSecurityService.d.ts +18 -18
- package/dist/Routing/RouteSecurityService.js +35 -36
- package/dist/Routing/index.d.ts +7 -7
- package/dist/Routing/index.js +3 -3
- package/dist/Security/IAuthenticationService.d.ts +41 -36
- package/dist/Security/IAuthenticationService.js +1 -1
- package/dist/Security/IAuthorisationService.d.ts +11 -11
- package/dist/Security/IAuthorisationService.js +1 -1
- package/dist/Security/ILoginErrorHandler.d.ts +4 -4
- package/dist/Security/ILoginErrorHandler.js +1 -1
- package/dist/Security/ISecurityService.d.ts +10 -10
- package/dist/Security/ISecurityService.js +1 -1
- package/dist/Security/IUser.d.ts +10 -10
- package/dist/Security/IUser.js +1 -1
- package/dist/Security/IUserRole.d.ts +6 -6
- package/dist/Security/IUserRole.js +1 -1
- package/dist/Security/LoginErrorHandler.d.ts +15 -15
- package/dist/Security/LoginErrorHandler.js +97 -98
- package/dist/Security/Oidc/OidcAuthService.d.ts +67 -60
- package/dist/Security/Oidc/OidcAuthService.js +216 -189
- package/dist/Security/Oidc/OidcTypes.d.ts +46 -29
- package/dist/Security/Oidc/OidcTypes.js +1 -1
- package/dist/Security/Oidc/OidcUser.d.ts +9 -9
- package/dist/Security/Oidc/OidcUser.js +33 -33
- package/dist/Security/SecurityService.d.ts +12 -12
- package/dist/Security/SecurityService.js +33 -34
- package/dist/Security/SignInResult.d.ts +13 -13
- package/dist/Security/SignInResult.js +8 -8
- package/dist/Security/User.d.ts +12 -12
- package/dist/Security/User.js +24 -24
- package/dist/Security/index.d.ts +10 -10
- package/dist/Security/index.js +5 -5
- package/dist/Settings.d.ts +71 -57
- package/dist/Settings.js +100 -87
- package/dist/SignalR/HubBase.d.ts +70 -70
- package/dist/SignalR/HubBase.js +164 -164
- package/dist/SignalR/HubReceiver.d.ts +11 -11
- package/dist/SignalR/HubReceiver.js +25 -25
- package/dist/SignalR/HubSubscription.d.ts +12 -12
- package/dist/SignalR/HubSubscription.js +14 -14
- package/dist/SignalR/index.d.ts +3 -3
- package/dist/SignalR/index.js +1 -1
- package/dist/StringUtils.d.ts +7 -7
- package/dist/StringUtils.js +24 -24
- package/dist/Utils.d.ts +81 -80
- package/dist/Utils.js +220 -218
- package/dist/Validation/Decorators.d.ts +12 -12
- package/dist/Validation/Decorators.js +52 -52
- package/dist/Validation/DisplayHelper.d.ts +20 -19
- package/dist/Validation/DisplayHelper.js +104 -104
- package/dist/Validation/Misc.d.ts +10 -10
- package/dist/Validation/Misc.js +11 -11
- package/dist/Validation/ModelProxy.d.ts +20 -20
- package/dist/Validation/ModelProxy.js +46 -46
- package/dist/Validation/RuleContext.d.ts +86 -86
- package/dist/Validation/RuleContext.js +130 -130
- package/dist/Validation/Rules.d.ts +70 -70
- package/dist/Validation/Rules.js +177 -177
- package/dist/Validation/ValidationHelpers.d.ts +12 -12
- package/dist/Validation/ValidationHelpers.js +57 -57
- package/dist/Validation/ValidationRules.d.ts +18 -18
- package/dist/Validation/ValidationRules.js +34 -34
- package/dist/Validation/ValidationState.d.ts +42 -42
- package/dist/Validation/ValidationState.js +74 -74
- package/dist/Validation/Validators/IModelValidator.d.ts +28 -24
- package/dist/Validation/Validators/IModelValidator.js +1 -1
- package/dist/Validation/Validators/IPropertyValidator.d.ts +21 -21
- package/dist/Validation/Validators/IPropertyValidator.js +15 -15
- package/dist/Validation/Validators/ModelValidator.d.ts +46 -45
- package/dist/Validation/Validators/ModelValidator.js +143 -137
- package/dist/Validation/Validators/PropertyValidator.d.ts +21 -21
- package/dist/Validation/Validators/PropertyValidator.js +64 -67
- package/dist/Validation/Validators/RuleValidator.d.ts +19 -19
- package/dist/Validation/Validators/RuleValidator.js +51 -55
- package/dist/Validation/index.d.ts +9 -9
- package/dist/Validation/index.js +7 -7
- package/dist/Views/IViewBase.d.ts +5 -5
- package/dist/Views/IViewBase.js +1 -1
- package/dist/index.d.ts +37 -36
- package/dist/index.js +44 -43
- package/package.json +11 -10
|
@@ -1,250 +1,300 @@
|
|
|
1
|
-
import { __spreadArray } from "tslib";
|
|
2
|
-
import { ExpressionRule, CallbackRule } from '../Validation/Rules';
|
|
3
|
-
import PropertyInstance from './PropertyInstance';
|
|
4
|
-
import PropertyInfo from './PropertyInfo';
|
|
5
|
-
import Globals from '../Globals';
|
|
6
|
-
import { ValidationRules } from '../Validation/ValidationRules';
|
|
7
|
-
import ModelProxy from '../Validation/ModelProxy';
|
|
8
|
-
import NeoTypes from '../AppServices/NeoTypes';
|
|
9
|
-
import { RelationType } from './Misc';
|
|
10
|
-
var ignoredPropertyNames = ["$mobx"];
|
|
11
|
-
var inversifyMetadataKey = "inversify:tagged";
|
|
12
|
-
var
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
this.
|
|
16
|
-
|
|
17
|
-
this.
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
this.
|
|
62
|
-
this.
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
pi.
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
pi.
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
*
|
|
88
|
-
*
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
pi.
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
var
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
property
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
base
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
NeoTypeInfo.prototype.
|
|
172
|
-
var
|
|
173
|
-
var
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
1
|
+
import { __spreadArray } from "tslib";
|
|
2
|
+
import { ExpressionRule, CallbackRule } from '../Validation/Rules';
|
|
3
|
+
import PropertyInstance from './PropertyInstance';
|
|
4
|
+
import PropertyInfo from './PropertyInfo';
|
|
5
|
+
import Globals from '../Globals';
|
|
6
|
+
import { ValidationRules } from '../Validation/ValidationRules';
|
|
7
|
+
import ModelProxy from '../Validation/ModelProxy';
|
|
8
|
+
import NeoTypes from '../AppServices/NeoTypes';
|
|
9
|
+
import { RelationType } from './Misc';
|
|
10
|
+
var ignoredPropertyNames = ["$mobx"];
|
|
11
|
+
var inversifyMetadataKey = "inversify:tagged";
|
|
12
|
+
var hasConvertedSymbol = Symbol("hasConvertedModel");
|
|
13
|
+
var NeoTypeInfo = /** @class */ (function () {
|
|
14
|
+
function NeoTypeInfo() {
|
|
15
|
+
this._inheritsBindableBase = false;
|
|
16
|
+
this._inheritsModelBase = false;
|
|
17
|
+
// Property info for each property on this type.
|
|
18
|
+
this.properties = [];
|
|
19
|
+
// Property info dictionary for easy lookup.
|
|
20
|
+
this.propertyMap = {};
|
|
21
|
+
// Properties of type List<T>, or marked with the ChildList or ChildObject decorator.
|
|
22
|
+
this.children = [];
|
|
23
|
+
// Properties marked with the parent decorator, multiple if a class can be child of more than one type.
|
|
24
|
+
this.parentProperties = [];
|
|
25
|
+
// List of rules added to the object only (not a property).
|
|
26
|
+
this.objectRules = [];
|
|
27
|
+
// Property instances for each property. These have the attachedTo properties set to null, so only static information is available.
|
|
28
|
+
this.meta = {};
|
|
29
|
+
// Main display member for drop downs etc.
|
|
30
|
+
this.displayMember = null;
|
|
31
|
+
}
|
|
32
|
+
Object.defineProperty(NeoTypeInfo.prototype, "inheritsBindableBase", {
|
|
33
|
+
get: function () {
|
|
34
|
+
return this._inheritsBindableBase;
|
|
35
|
+
},
|
|
36
|
+
enumerable: false,
|
|
37
|
+
configurable: true
|
|
38
|
+
});
|
|
39
|
+
Object.defineProperty(NeoTypeInfo.prototype, "inheritsModelBase", {
|
|
40
|
+
get: function () {
|
|
41
|
+
return this._inheritsModelBase;
|
|
42
|
+
},
|
|
43
|
+
enumerable: false,
|
|
44
|
+
configurable: true
|
|
45
|
+
});
|
|
46
|
+
Object.defineProperty(NeoTypeInfo.prototype, "metaItem", {
|
|
47
|
+
get: function () {
|
|
48
|
+
if (!this._metaItem) {
|
|
49
|
+
this._metaItem = { meta: this.meta };
|
|
50
|
+
populateMetaItem(this._metaItem, 0);
|
|
51
|
+
}
|
|
52
|
+
return this._metaItem;
|
|
53
|
+
},
|
|
54
|
+
enumerable: false,
|
|
55
|
+
configurable: true
|
|
56
|
+
});
|
|
57
|
+
NeoTypeInfo.prototype.initialise = function (objectConstructor) {
|
|
58
|
+
this.objectConstructor = objectConstructor;
|
|
59
|
+
};
|
|
60
|
+
NeoTypeInfo.prototype.addPropertyInfo = function (propertyInfo) {
|
|
61
|
+
this.propertyMap[propertyInfo.propertyName] = propertyInfo;
|
|
62
|
+
this.properties.push(propertyInfo);
|
|
63
|
+
this.meta[propertyInfo.propertyName] = new PropertyInstance(null, propertyInfo);
|
|
64
|
+
};
|
|
65
|
+
NeoTypeInfo.prototype.getOrAddProperty = function (propertyName) {
|
|
66
|
+
var propertyInfo = this.propertyMap[propertyName];
|
|
67
|
+
if (!propertyInfo) {
|
|
68
|
+
propertyInfo = new PropertyInfo(propertyName);
|
|
69
|
+
this.addPropertyInfo(propertyInfo);
|
|
70
|
+
}
|
|
71
|
+
return propertyInfo;
|
|
72
|
+
};
|
|
73
|
+
NeoTypeInfo.prototype.addComputed = function (propertyName, descriptor, isComputed) {
|
|
74
|
+
if (isComputed === void 0) { isComputed = true; }
|
|
75
|
+
var pi = this.getOrAddProperty(propertyName);
|
|
76
|
+
if (pi.isComputed === null) {
|
|
77
|
+
pi.isComputed = isComputed;
|
|
78
|
+
pi.noTrack = true;
|
|
79
|
+
}
|
|
80
|
+
pi.isReadOnly = descriptor.set === undefined;
|
|
81
|
+
pi.descriptor = descriptor;
|
|
82
|
+
};
|
|
83
|
+
NeoTypeInfo.prototype.addAttributeRule = function (propertyName, rule) {
|
|
84
|
+
this.getOrAddProperty(propertyName).addAttributeRule(rule);
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
* Ensures the type has all the information it needs in order to convert instances of this type.
|
|
88
|
+
* E.g. Making sure each property has a property info object.
|
|
89
|
+
* */
|
|
90
|
+
NeoTypeInfo.prototype.ensureStaticRuntimeInfo = function (instance) {
|
|
91
|
+
if (!this.modelCreator) {
|
|
92
|
+
this.modelCreator = Globals.appService.get(NeoTypes.Core.ModelCreator);
|
|
93
|
+
var baseType = Object.getPrototypeOf(this.objectConstructor.prototype);
|
|
94
|
+
if (baseType != Object.prototype) {
|
|
95
|
+
this.merge(baseType.constructor);
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
this._inheritsBindableBase = this.modelCreator.isBindableBase(this.objectConstructor);
|
|
99
|
+
}
|
|
100
|
+
this.modelCreator.initialise(this, this.objectConstructor);
|
|
101
|
+
if (instance && this.modelCreator.shouldInitialiseAllMembers) {
|
|
102
|
+
for (var _i = 0, _a = Object.getOwnPropertyNames(instance); _i < _a.length; _i++) {
|
|
103
|
+
var propertyName = _a[_i];
|
|
104
|
+
if (ignoredPropertyNames.indexOf(propertyName) < 0) {
|
|
105
|
+
var pi = this.getOrAddProperty(propertyName);
|
|
106
|
+
pi.setupFromInstance(instance);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
if (instance)
|
|
111
|
+
this.addRules(instance);
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
NeoTypeInfo.prototype.addRules = function (instance) {
|
|
115
|
+
if (instance.addBusinessRules !== undefined) {
|
|
116
|
+
var validationRules = new ValidationRules();
|
|
117
|
+
instance.addBusinessRules(validationRules);
|
|
118
|
+
if (validationRules.rules.some(function (c) { return c instanceof CallbackRule && c.hasBoundFunction; })) {
|
|
119
|
+
console.error("Warning: ".concat(this.objectConstructor.name, " has rules which have been added using a bound function, or arrow function."));
|
|
120
|
+
}
|
|
121
|
+
var modelProxy = new ModelProxy(instance);
|
|
122
|
+
for (var _i = 0, _a = validationRules.rules; _i < _a.length; _i++) {
|
|
123
|
+
var rule = _a[_i];
|
|
124
|
+
var properties = rule.getDisplayProperties(this.propertyMap);
|
|
125
|
+
if (properties === undefined && rule instanceof ExpressionRule) {
|
|
126
|
+
properties = modelProxy.tryExtractProperties(rule);
|
|
127
|
+
}
|
|
128
|
+
if (properties && properties.length) {
|
|
129
|
+
for (var _b = 0, properties_1 = properties; _b < properties_1.length; _b++) {
|
|
130
|
+
var property = properties_1[_b];
|
|
131
|
+
property.rules.push(rule);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
this.objectRules.push(rule);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
/** Copy the property info list from each base type into the current type. */
|
|
141
|
+
NeoTypeInfo.prototype.merge = function (baseConstructor) {
|
|
142
|
+
// Convert base class to a neo type
|
|
143
|
+
var base = ensureTypeInfo(baseConstructor).neo;
|
|
144
|
+
base.ensureStaticRuntimeInfo();
|
|
145
|
+
for (var _i = 0, _a = base.properties; _i < _a.length; _i++) {
|
|
146
|
+
var propertyInfo = _a[_i];
|
|
147
|
+
this.addPropertyInfo(propertyInfo.clone());
|
|
148
|
+
}
|
|
149
|
+
for (var _b = 0, _c = base.children; _b < _c.length; _b++) {
|
|
150
|
+
var child = _c[_b];
|
|
151
|
+
this.children.push(this.propertyMap[child.propertyName]);
|
|
152
|
+
}
|
|
153
|
+
for (var _d = 0, _e = base.parentProperties; _d < _e.length; _d++) {
|
|
154
|
+
var parent_1 = _e[_d];
|
|
155
|
+
this.parentProperties.push(this.propertyMap[parent_1.propertyName]);
|
|
156
|
+
}
|
|
157
|
+
if (!this.parentProperty && base.parentProperty) {
|
|
158
|
+
this.parentProperty = this.propertyMap[base.parentProperty.propertyName];
|
|
159
|
+
}
|
|
160
|
+
this._inheritsBindableBase = base._inheritsBindableBase;
|
|
161
|
+
if (this.modelCreator.isModelBase(this.objectConstructor) || base._inheritsModelBase) {
|
|
162
|
+
this._inheritsModelBase = true;
|
|
163
|
+
}
|
|
164
|
+
};
|
|
165
|
+
NeoTypeInfo.prototype.ensureInitialised = function () {
|
|
166
|
+
if (!this.modelCreator) {
|
|
167
|
+
// create a new instance which will cause the type to be setup.
|
|
168
|
+
this.createInstance();
|
|
169
|
+
}
|
|
170
|
+
};
|
|
171
|
+
NeoTypeInfo.prototype.createInstance = function () {
|
|
172
|
+
var args = [];
|
|
173
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
174
|
+
args[_i] = arguments[_i];
|
|
175
|
+
}
|
|
176
|
+
if (this.wrapperConstructor) {
|
|
177
|
+
return this.wrapperConstructor(args);
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
return new this.objectConstructor(args);
|
|
181
|
+
}
|
|
182
|
+
};
|
|
183
|
+
/** Gets the override constructor which can setup a neo model. */
|
|
184
|
+
NeoTypeInfo.prototype.getOverrideConstructor = function () {
|
|
185
|
+
if (!this.wrapperConstructor) {
|
|
186
|
+
this.wrapperConstructor = this.createWrapperConstructor();
|
|
187
|
+
}
|
|
188
|
+
return this.wrapperConstructor;
|
|
189
|
+
};
|
|
190
|
+
NeoTypeInfo.prototype.createWrapperConstructor = function () {
|
|
191
|
+
var self = this;
|
|
192
|
+
var baseType = Object.getPrototypeOf(self.objectConstructor);
|
|
193
|
+
if ((baseType === null || baseType === void 0 ? void 0 : baseType.name) === "neoConstructor") {
|
|
194
|
+
return function () {
|
|
195
|
+
throw Error(self.objectConstructor.name + " cannot inherit from a model decorated with @NeoModel.");
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
var newConstructor = function neoConstructor() {
|
|
199
|
+
var _a;
|
|
200
|
+
var args = [];
|
|
201
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
202
|
+
args[_i] = arguments[_i];
|
|
203
|
+
}
|
|
204
|
+
var instance = new ((_a = self.objectConstructor).bind.apply(_a, __spreadArray([void 0], args, false)))();
|
|
205
|
+
return self.makeObservable(instance);
|
|
206
|
+
};
|
|
207
|
+
// Copy statics from the original constructor, and all base classes to the new constructor.
|
|
208
|
+
baseType = this.objectConstructor;
|
|
209
|
+
while (baseType && baseType !== Function.prototype) {
|
|
210
|
+
for (var _i = 0, _a = Object.getOwnPropertyNames(baseType); _i < _a.length; _i++) {
|
|
211
|
+
var propertyName = _a[_i];
|
|
212
|
+
if (propertyName !== "prototype" && propertyName !== "caller" && propertyName !== "arguments" && propertyName !== "neo") {
|
|
213
|
+
// @ts-ignore
|
|
214
|
+
if (newConstructor[propertyName] === undefined) {
|
|
215
|
+
var descriptor = Object.getOwnPropertyDescriptor(baseType, propertyName);
|
|
216
|
+
if (descriptor.value !== void 0) {
|
|
217
|
+
if (typeof descriptor.value === 'function') {
|
|
218
|
+
// @ts-ignore
|
|
219
|
+
newConstructor[propertyName] = baseType[propertyName];
|
|
220
|
+
}
|
|
221
|
+
else {
|
|
222
|
+
// Define a property on this constructor pointing to the original property.
|
|
223
|
+
this.defineProxyProperty(baseType, newConstructor, propertyName);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
baseType = Object.getPrototypeOf(baseType);
|
|
230
|
+
}
|
|
231
|
+
// Copy inversify metadata:
|
|
232
|
+
Reflect.defineMetadata(inversifyMetadataKey, Reflect.getMetadata(inversifyMetadataKey, this.objectConstructor), newConstructor);
|
|
233
|
+
newConstructor.neo = self.objectConstructor.neo;
|
|
234
|
+
newConstructor.prototype = self.objectConstructor.prototype;
|
|
235
|
+
return newConstructor;
|
|
236
|
+
};
|
|
237
|
+
NeoTypeInfo.prototype.makeObservable = function (instance, options) {
|
|
238
|
+
options = options !== null && options !== void 0 ? options : {};
|
|
239
|
+
if (!options.skipConversion) {
|
|
240
|
+
this.ensureStaticRuntimeInfo(instance);
|
|
241
|
+
if (options.makeObservable === undefined) {
|
|
242
|
+
options.makeObservable = this.inheritsModelBase;
|
|
243
|
+
}
|
|
244
|
+
if (instance[hasConvertedSymbol]) {
|
|
245
|
+
throw Error("makeObservable() or makeBindable() has been called multiple times on type ".concat(this.objectConstructor.name, ". Make sure this is only called on the last derived type."));
|
|
246
|
+
}
|
|
247
|
+
else {
|
|
248
|
+
instance[hasConvertedSymbol] = true;
|
|
249
|
+
}
|
|
250
|
+
return this.modelCreator.convertInstance(instance, options);
|
|
251
|
+
}
|
|
252
|
+
return instance;
|
|
253
|
+
};
|
|
254
|
+
NeoTypeInfo.prototype.defineProxyProperty = function (baseType, newConstructor, propertyKey) {
|
|
255
|
+
Object.defineProperty(newConstructor, propertyKey, {
|
|
256
|
+
get: function () { return baseType[propertyKey]; },
|
|
257
|
+
set: function (value) { return baseType[propertyKey] = value; }
|
|
258
|
+
});
|
|
259
|
+
};
|
|
260
|
+
/**
|
|
261
|
+
* Makes a class instance observable.
|
|
262
|
+
* Must be called in the constructor, preferably directly after the super() call.
|
|
263
|
+
* This method can be used as an alternative to the @NeoModel decorator.
|
|
264
|
+
*/
|
|
265
|
+
NeoTypeInfo.makeObservable = function (instance, options) {
|
|
266
|
+
var ctor = instance.constructor;
|
|
267
|
+
ensureTypeInfo(ctor);
|
|
268
|
+
ctor.neo.makeObservable(instance, options);
|
|
269
|
+
};
|
|
270
|
+
/** Ensures the type and its metadata are initialised. */
|
|
271
|
+
NeoTypeInfo.ensureInitialised = function (constructor) {
|
|
272
|
+
var typeInfo = ensureTypeInfo(constructor).neo;
|
|
273
|
+
typeInfo.ensureInitialised();
|
|
274
|
+
return typeInfo;
|
|
275
|
+
};
|
|
276
|
+
return NeoTypeInfo;
|
|
277
|
+
}());
|
|
278
|
+
export { NeoTypeInfo };
|
|
279
|
+
export function ensureTypeInfo(constructor) {
|
|
280
|
+
if (!constructor.hasOwnProperty("neo")) {
|
|
281
|
+
constructor.neo = new NeoTypeInfo();
|
|
282
|
+
constructor.neo.initialise(constructor);
|
|
283
|
+
}
|
|
284
|
+
return constructor;
|
|
285
|
+
}
|
|
286
|
+
function populateMetaItem(item, level) {
|
|
287
|
+
if (level < 5) {
|
|
288
|
+
for (var propertyKey in item.meta) {
|
|
289
|
+
var propertyInfo = item.meta[propertyKey].propertyInfo;
|
|
290
|
+
if ((propertyInfo.relationType === RelationType.ChildObject || propertyInfo.relationType === RelationType.ValueObject)) {
|
|
291
|
+
var propertyType = propertyInfo.type;
|
|
292
|
+
if (propertyType) {
|
|
293
|
+
var childItem = { meta: propertyType.neo.meta };
|
|
294
|
+
populateMetaItem(childItem, level + 1);
|
|
295
|
+
item[propertyKey] = childItem;
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import PropertyInfo from './PropertyInfo';
|
|
2
|
-
import PropertyInstance from './PropertyInstance';
|
|
3
|
-
export declare class ObservableProperty {
|
|
4
|
-
/** Creates an observable property which can be used for binding. */
|
|
5
|
-
static create(displayName: string, defaultValue: any, options?: Partial<PropertyInfo>, isRequired?: boolean): PropertyInstance;
|
|
6
|
-
/** Creates an observable property which can be used for binding. The value will be required when bound in an editor. */
|
|
7
|
-
static required(displayName: string, defaultValue: any, options?: Partial<PropertyInfo>): PropertyInstance;
|
|
8
|
-
}
|
|
1
|
+
import PropertyInfo from './PropertyInfo';
|
|
2
|
+
import PropertyInstance from './PropertyInstance';
|
|
3
|
+
export declare class ObservableProperty {
|
|
4
|
+
/** Creates an observable property which can be used for binding. */
|
|
5
|
+
static create(displayName: string, defaultValue: any, options?: Partial<PropertyInfo>, isRequired?: boolean): PropertyInstance;
|
|
6
|
+
/** Creates an observable property which can be used for binding. The value will be required when bound in an editor. */
|
|
7
|
+
static required(displayName: string, defaultValue: any, options?: Partial<PropertyInfo>): PropertyInstance;
|
|
8
|
+
}
|