@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
package/dist/Model/ModelBase.js
CHANGED
|
@@ -1,180 +1,182 @@
|
|
|
1
|
-
import { __decorate, __extends, __metadata } from "tslib";
|
|
2
|
-
import * as ModelTraverser from './ModelGraphTraverser';
|
|
3
|
-
import { Computed, NoTracking, Observable } from './Decorators';
|
|
4
|
-
import { JSFormatter } from '../Data/Serialiser';
|
|
5
|
-
import { BindableBase } from './BindableBase';
|
|
6
|
-
import { Misc } from '../';
|
|
7
|
-
import { SerialiseType } from './Misc';
|
|
8
|
-
import { NeoTypes } from '../AppServices';
|
|
9
|
-
/*
|
|
10
|
-
Note:
|
|
11
|
-
Any properties or methods that should not be included in the meta object should also be added to INonObservableModelBase
|
|
12
|
-
Any protected methods that need to be accessed by neo code should be included in IModelBaseInternal
|
|
13
|
-
*/
|
|
14
|
-
var ModelBase = /** @class */ (function (_super) {
|
|
15
|
-
__extends(ModelBase, _super);
|
|
16
|
-
function ModelBase() {
|
|
17
|
-
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
18
|
-
_this.isNew = true;
|
|
19
|
-
_this.isSelfDirty = true;
|
|
20
|
-
return _this;
|
|
21
|
-
}
|
|
22
|
-
Object.defineProperty(ModelBase.prototype, "isDirty", {
|
|
23
|
-
/**
|
|
24
|
-
* Returns true if the object itself is dirty, or any of its children are dirty.
|
|
25
|
-
* IsNew does not affect the value of IsDirty.
|
|
26
|
-
*/
|
|
27
|
-
get: function () {
|
|
28
|
-
return ModelTraverser.traverseItems(this, new ModelTraverser.BooleanRecursionState(false), function (item, state) {
|
|
29
|
-
if (item.isSelfDirty) {
|
|
30
|
-
state.flag = true;
|
|
31
|
-
state.stop = true;
|
|
32
|
-
}
|
|
33
|
-
}, function (list, state) {
|
|
34
|
-
var deletedList = list.deletedList;
|
|
35
|
-
if (deletedList && deletedList.length > 0) {
|
|
36
|
-
state.flag = true;
|
|
37
|
-
state.stop = true;
|
|
38
|
-
}
|
|
39
|
-
}).flag;
|
|
40
|
-
},
|
|
41
|
-
enumerable: false,
|
|
42
|
-
configurable: true
|
|
43
|
-
});
|
|
44
|
-
Object.defineProperty(ModelBase.prototype, "isSelfValid", {
|
|
45
|
-
get: function () {
|
|
46
|
-
return this.validator.isValid;
|
|
47
|
-
},
|
|
48
|
-
enumerable: false,
|
|
49
|
-
configurable: true
|
|
50
|
-
});
|
|
51
|
-
Object.defineProperty(ModelBase.prototype, "isValid", {
|
|
52
|
-
get: function () {
|
|
53
|
-
return ModelTraverser.traverseItems(this, new ModelTraverser.BooleanRecursionState(true), function (item, state) {
|
|
54
|
-
if (!item.isSelfValid) {
|
|
55
|
-
state.flag = false;
|
|
56
|
-
state.stop = true;
|
|
57
|
-
}
|
|
58
|
-
}).flag;
|
|
59
|
-
},
|
|
60
|
-
enumerable: false,
|
|
61
|
-
configurable: true
|
|
62
|
-
});
|
|
63
|
-
Object.defineProperty(ModelBase.prototype, "readyToSave", {
|
|
64
|
-
/**
|
|
65
|
-
* Indicates that the model is dirty and valid and can be saved.
|
|
66
|
-
*/
|
|
67
|
-
get: function () {
|
|
68
|
-
return this.isDirty && this.isValid;
|
|
69
|
-
},
|
|
70
|
-
enumerable: false,
|
|
71
|
-
configurable: true
|
|
72
|
-
});
|
|
73
|
-
/** Recursively sets isSelfDirty, and isNew to false on this object and its children. */
|
|
74
|
-
ModelBase.prototype.markOld = function (recurse) {
|
|
75
|
-
if (recurse === void 0) { recurse = true; }
|
|
76
|
-
if (recurse) {
|
|
77
|
-
ModelTraverser.traverseItems(this, new ModelTraverser.RecursionState(), function (item) {
|
|
78
|
-
item.isSelfDirty = false;
|
|
79
|
-
item.isNew = false;
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
else {
|
|
83
|
-
this.isSelfDirty = false;
|
|
84
|
-
this.isNew = false;
|
|
85
|
-
}
|
|
86
|
-
};
|
|
87
|
-
ModelBase.prototype.toJSObject = function (options) {
|
|
88
|
-
if (options === void 0) { options = {}; }
|
|
89
|
-
return JSFormatter.serialise(this, options);
|
|
90
|
-
};
|
|
91
|
-
/**
|
|
92
|
-
* Converts the model into a plain javascript object for use with Utils.getQueryString.
|
|
93
|
-
* Child objects, child lists and tracking state are ignored.
|
|
94
|
-
*/
|
|
95
|
-
ModelBase.prototype.toQueryObject = function () {
|
|
96
|
-
return this.toJSObject({ suppressTrackingState: true, suppressChildren: true });
|
|
97
|
-
};
|
|
98
|
-
/**
|
|
99
|
-
* Passes you a query object every time one of the models properties change.
|
|
100
|
-
* This is delayed for string and numeric properties.
|
|
101
|
-
* You must call the disposer when you are done with this object.
|
|
102
|
-
* @param instance Model instance.
|
|
103
|
-
* @param callback Callback to run accepting a query object.
|
|
104
|
-
*/
|
|
105
|
-
ModelBase.prototype.toQueryObjectAuto = function (callback, options) {
|
|
106
|
-
var _this = this;
|
|
107
|
-
return Misc.Globals.appService.get(NeoTypes.Core.AutoRunnerFactory).create(this, function () { return callback(_this.toQueryObject()); }, options);
|
|
108
|
-
};
|
|
109
|
-
/**
|
|
110
|
-
* Runs the provided callback whenever any of values of the properties on this object, it's value objects, or child objects (if specified) change.
|
|
111
|
-
* This is delayed for string and numeric properties.
|
|
112
|
-
* You must call the disposer when you are done with this object.
|
|
113
|
-
*/
|
|
114
|
-
ModelBase.prototype.onAnyPropertyChanged = function (callback, options) {
|
|
115
|
-
return Misc.Globals.appService.get(NeoTypes.Core.AutoRunnerFactory).create(this, callback, options);
|
|
116
|
-
};
|
|
117
|
-
/**
|
|
118
|
-
* Converts a plain javascript object graph to a neo model graph.
|
|
119
|
-
* Updates child lists - Items in the child list, but not in jsArray will remain in the list.
|
|
120
|
-
* If you need to replace child lists with the jsArrays, use set() instead.
|
|
121
|
-
* This will generally be used after calling toJSObject(includeClean = false)
|
|
122
|
-
* */
|
|
123
|
-
ModelBase.prototype.update = function (jsObject) {
|
|
124
|
-
JSFormatter.deserialise(jsObject, this, null);
|
|
125
|
-
};
|
|
126
|
-
/**
|
|
127
|
-
* Performs a deep clone on an object, cloning all nested objects including their entity identifiers.
|
|
128
|
-
*/
|
|
129
|
-
ModelBase.prototype.cloneWithIdentity = function () {
|
|
130
|
-
return this.constructor.mapFrom(this, { isMap: { includeEntityIdentifiers: true } });
|
|
131
|
-
};
|
|
132
|
-
/**
|
|
133
|
-
* Icon to display next to toString() text.
|
|
134
|
-
*/
|
|
135
|
-
ModelBase.prototype.getIcon = function () {
|
|
136
|
-
return "fa-cube";
|
|
137
|
-
};
|
|
138
|
-
/**
|
|
139
|
-
* Indicates whether or not this object should be serialised.
|
|
140
|
-
* @param shouldSerialise The value determined by the serialiser.
|
|
141
|
-
*/
|
|
142
|
-
ModelBase.prototype.canSerialise = function (shouldSerialise) {
|
|
143
|
-
return shouldSerialise;
|
|
144
|
-
};
|
|
145
|
-
/**
|
|
146
|
-
* Add custom business rules. Note, this will be called once per type and should be treated as static.
|
|
147
|
-
*/
|
|
148
|
-
ModelBase.prototype.addBusinessRules = function (validationRules) {
|
|
149
|
-
};
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
1
|
+
import { __decorate, __extends, __metadata } from "tslib";
|
|
2
|
+
import * as ModelTraverser from './ModelGraphTraverser';
|
|
3
|
+
import { Computed, NoTracking, Observable } from './Decorators';
|
|
4
|
+
import { JSFormatter } from '../Data/Serialiser';
|
|
5
|
+
import { BindableBase } from './BindableBase';
|
|
6
|
+
import { Misc } from '../';
|
|
7
|
+
import { SerialiseType } from './Misc';
|
|
8
|
+
import { NeoTypes } from '../AppServices';
|
|
9
|
+
/*
|
|
10
|
+
Note:
|
|
11
|
+
Any properties or methods that should not be included in the meta object should also be added to INonObservableModelBase
|
|
12
|
+
Any protected methods that need to be accessed by neo code should be included in IModelBaseInternal
|
|
13
|
+
*/
|
|
14
|
+
var ModelBase = /** @class */ (function (_super) {
|
|
15
|
+
__extends(ModelBase, _super);
|
|
16
|
+
function ModelBase() {
|
|
17
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
18
|
+
_this.isNew = true;
|
|
19
|
+
_this.isSelfDirty = true;
|
|
20
|
+
return _this;
|
|
21
|
+
}
|
|
22
|
+
Object.defineProperty(ModelBase.prototype, "isDirty", {
|
|
23
|
+
/**
|
|
24
|
+
* Returns true if the object itself is dirty, or any of its children are dirty.
|
|
25
|
+
* IsNew does not affect the value of IsDirty.
|
|
26
|
+
*/
|
|
27
|
+
get: function () {
|
|
28
|
+
return ModelTraverser.traverseItems(this, new ModelTraverser.BooleanRecursionState(false), function (item, state) {
|
|
29
|
+
if (item.isSelfDirty) {
|
|
30
|
+
state.flag = true;
|
|
31
|
+
state.stop = true;
|
|
32
|
+
}
|
|
33
|
+
}, function (list, state) {
|
|
34
|
+
var deletedList = list.deletedList;
|
|
35
|
+
if (deletedList && deletedList.length > 0) {
|
|
36
|
+
state.flag = true;
|
|
37
|
+
state.stop = true;
|
|
38
|
+
}
|
|
39
|
+
}).flag;
|
|
40
|
+
},
|
|
41
|
+
enumerable: false,
|
|
42
|
+
configurable: true
|
|
43
|
+
});
|
|
44
|
+
Object.defineProperty(ModelBase.prototype, "isSelfValid", {
|
|
45
|
+
get: function () {
|
|
46
|
+
return this.validator.isValid;
|
|
47
|
+
},
|
|
48
|
+
enumerable: false,
|
|
49
|
+
configurable: true
|
|
50
|
+
});
|
|
51
|
+
Object.defineProperty(ModelBase.prototype, "isValid", {
|
|
52
|
+
get: function () {
|
|
53
|
+
return ModelTraverser.traverseItems(this, new ModelTraverser.BooleanRecursionState(true), function (item, state) {
|
|
54
|
+
if (!item.isSelfValid) {
|
|
55
|
+
state.flag = false;
|
|
56
|
+
state.stop = true;
|
|
57
|
+
}
|
|
58
|
+
}).flag;
|
|
59
|
+
},
|
|
60
|
+
enumerable: false,
|
|
61
|
+
configurable: true
|
|
62
|
+
});
|
|
63
|
+
Object.defineProperty(ModelBase.prototype, "readyToSave", {
|
|
64
|
+
/**
|
|
65
|
+
* Indicates that the model is dirty and valid and can be saved.
|
|
66
|
+
*/
|
|
67
|
+
get: function () {
|
|
68
|
+
return this.isDirty && this.isValid;
|
|
69
|
+
},
|
|
70
|
+
enumerable: false,
|
|
71
|
+
configurable: true
|
|
72
|
+
});
|
|
73
|
+
/** Recursively sets isSelfDirty, and isNew to false on this object and its children. */
|
|
74
|
+
ModelBase.prototype.markOld = function (recurse) {
|
|
75
|
+
if (recurse === void 0) { recurse = true; }
|
|
76
|
+
if (recurse) {
|
|
77
|
+
ModelTraverser.traverseItems(this, new ModelTraverser.RecursionState(), function (item) {
|
|
78
|
+
item.isSelfDirty = false;
|
|
79
|
+
item.isNew = false;
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
this.isSelfDirty = false;
|
|
84
|
+
this.isNew = false;
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
ModelBase.prototype.toJSObject = function (options) {
|
|
88
|
+
if (options === void 0) { options = {}; }
|
|
89
|
+
return JSFormatter.serialise(this, options);
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* Converts the model into a plain javascript object for use with Utils.getQueryString.
|
|
93
|
+
* Child objects, child lists and tracking state are ignored.
|
|
94
|
+
*/
|
|
95
|
+
ModelBase.prototype.toQueryObject = function () {
|
|
96
|
+
return this.toJSObject({ suppressTrackingState: true, suppressChildren: true });
|
|
97
|
+
};
|
|
98
|
+
/**
|
|
99
|
+
* Passes you a query object every time one of the models properties change.
|
|
100
|
+
* This is delayed for string and numeric properties.
|
|
101
|
+
* You must call the disposer when you are done with this object.
|
|
102
|
+
* @param instance Model instance.
|
|
103
|
+
* @param callback Callback to run accepting a query object.
|
|
104
|
+
*/
|
|
105
|
+
ModelBase.prototype.toQueryObjectAuto = function (callback, options) {
|
|
106
|
+
var _this = this;
|
|
107
|
+
return Misc.Globals.appService.get(NeoTypes.Core.AutoRunnerFactory).create(this, function () { return callback(_this.toQueryObject()); }, options);
|
|
108
|
+
};
|
|
109
|
+
/**
|
|
110
|
+
* Runs the provided callback whenever any of values of the properties on this object, it's value objects, or child objects (if specified) change.
|
|
111
|
+
* This is delayed for string and numeric properties.
|
|
112
|
+
* You must call the disposer when you are done with this object.
|
|
113
|
+
*/
|
|
114
|
+
ModelBase.prototype.onAnyPropertyChanged = function (callback, options) {
|
|
115
|
+
return Misc.Globals.appService.get(NeoTypes.Core.AutoRunnerFactory).create(this, callback, options);
|
|
116
|
+
};
|
|
117
|
+
/**
|
|
118
|
+
* Converts a plain javascript object graph to a neo model graph.
|
|
119
|
+
* Updates child lists - Items in the child list, but not in jsArray will remain in the list.
|
|
120
|
+
* If you need to replace child lists with the jsArrays, use set() instead.
|
|
121
|
+
* This will generally be used after calling toJSObject(includeClean = false)
|
|
122
|
+
* */
|
|
123
|
+
ModelBase.prototype.update = function (jsObject) {
|
|
124
|
+
JSFormatter.deserialise(jsObject, this, null);
|
|
125
|
+
};
|
|
126
|
+
/**
|
|
127
|
+
* Performs a deep clone on an object, cloning all nested objects including their entity identifiers.
|
|
128
|
+
*/
|
|
129
|
+
ModelBase.prototype.cloneWithIdentity = function () {
|
|
130
|
+
return this.constructor.mapFrom(this, { isMap: { includeEntityIdentifiers: true } });
|
|
131
|
+
};
|
|
132
|
+
/**
|
|
133
|
+
* Icon to display next to toString() text.
|
|
134
|
+
*/
|
|
135
|
+
ModelBase.prototype.getIcon = function () {
|
|
136
|
+
return "fa-cube";
|
|
137
|
+
};
|
|
138
|
+
/**
|
|
139
|
+
* Indicates whether or not this object should be serialised.
|
|
140
|
+
* @param shouldSerialise The value determined by the serialiser.
|
|
141
|
+
*/
|
|
142
|
+
ModelBase.prototype.canSerialise = function (shouldSerialise) {
|
|
143
|
+
return shouldSerialise;
|
|
144
|
+
};
|
|
145
|
+
/**
|
|
146
|
+
* Add custom business rules. Note, this will be called once per type and should be treated as static.
|
|
147
|
+
*/
|
|
148
|
+
ModelBase.prototype.addBusinessRules = function (validationRules) {
|
|
149
|
+
};
|
|
150
|
+
/** The server side type name used to find this type. Include the namespace if there is more than one type with the same name. */
|
|
151
|
+
ModelBase.typeName = null;
|
|
152
|
+
__decorate([
|
|
153
|
+
NoTracking(SerialiseType.Never),
|
|
154
|
+
Observable(false),
|
|
155
|
+
__metadata("design:type", Boolean)
|
|
156
|
+
], ModelBase.prototype, "isSuspended", void 0);
|
|
157
|
+
__decorate([
|
|
158
|
+
NoTracking(SerialiseType.Never),
|
|
159
|
+
Observable(false),
|
|
160
|
+
__metadata("design:type", Object)
|
|
161
|
+
], ModelBase.prototype, "validator", void 0);
|
|
162
|
+
__decorate([
|
|
163
|
+
NoTracking(),
|
|
164
|
+
__metadata("design:type", Object)
|
|
165
|
+
], ModelBase.prototype, "isNew", void 0);
|
|
166
|
+
__decorate([
|
|
167
|
+
NoTracking(),
|
|
168
|
+
__metadata("design:type", Object)
|
|
169
|
+
], ModelBase.prototype, "isSelfDirty", void 0);
|
|
170
|
+
__decorate([
|
|
171
|
+
Computed(false),
|
|
172
|
+
__metadata("design:type", Object),
|
|
173
|
+
__metadata("design:paramtypes", [])
|
|
174
|
+
], ModelBase.prototype, "isSelfValid", null);
|
|
175
|
+
__decorate([
|
|
176
|
+
Computed(false),
|
|
177
|
+
__metadata("design:type", Object),
|
|
178
|
+
__metadata("design:paramtypes", [])
|
|
179
|
+
], ModelBase.prototype, "readyToSave", null);
|
|
180
|
+
return ModelBase;
|
|
181
|
+
}(BindableBase));
|
|
182
|
+
export default ModelBase;
|
|
@@ -1,23 +1,24 @@
|
|
|
1
|
-
import { NeoTypeInfo } from './NeoTypeInfo';
|
|
2
|
-
import { NeoModelConstructor } from './IModelBase';
|
|
3
|
-
import PropertyInfo from './PropertyInfo';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
protected
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
*
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
protected
|
|
21
|
-
protected
|
|
22
|
-
|
|
23
|
-
}
|
|
1
|
+
import { NeoTypeInfo } from './NeoTypeInfo';
|
|
2
|
+
import { IMakeBindableOptions, NeoModelConstructor } from './IModelBase';
|
|
3
|
+
import PropertyInfo from './PropertyInfo';
|
|
4
|
+
import IModelCreatorBase from './IModelCreatorBase';
|
|
5
|
+
export declare abstract class ModelCreatorBase implements IModelCreatorBase {
|
|
6
|
+
protected typeInfo: NeoTypeInfo;
|
|
7
|
+
protected alwaysInitialiseMembers: boolean;
|
|
8
|
+
/**
|
|
9
|
+
* True if all properties and methods need to be present in the property / method lists.
|
|
10
|
+
* Otherwise only decorated members will be present (Mobx = only decorated, Vue = all)
|
|
11
|
+
*/
|
|
12
|
+
get shouldInitialiseAllMembers(): boolean;
|
|
13
|
+
isBindableBase(type: NeoModelConstructor): boolean;
|
|
14
|
+
isModelBase(type: NeoModelConstructor): boolean;
|
|
15
|
+
initialise(typeInfo: NeoTypeInfo, originalConstructor: NeoModelConstructor): void;
|
|
16
|
+
private addPrototypeProperties;
|
|
17
|
+
/**
|
|
18
|
+
* Ensures that lists / child objects have the correct relationType.
|
|
19
|
+
*/
|
|
20
|
+
protected ensureChildInfo(instance: {}, propertyInfo: PropertyInfo): void;
|
|
21
|
+
protected addMethodInfo(methodName: string, method: Function): void;
|
|
22
|
+
protected addProperty(propertyName: string, descriptor: PropertyDescriptor): void;
|
|
23
|
+
abstract convertInstance(instance: {}, options: IMakeBindableOptions): {};
|
|
24
|
+
}
|
|
@@ -1,92 +1,92 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
import { injectable } from 'inversify';
|
|
3
|
-
import ModelBase from './ModelBase';
|
|
4
|
-
import { RelationType } from './Misc';
|
|
5
|
-
import { ChildList, ChildObject } from './Decorators';
|
|
6
|
-
import ValueObject from './ValueObject';
|
|
7
|
-
import { BindableBase } from './BindableBase';
|
|
8
|
-
var ModelCreatorBase = /** @class */ (function () {
|
|
9
|
-
function ModelCreatorBase() {
|
|
10
|
-
this.alwaysInitialiseMembers = false;
|
|
11
|
-
}
|
|
12
|
-
Object.defineProperty(ModelCreatorBase.prototype, "shouldInitialiseAllMembers", {
|
|
13
|
-
/**
|
|
14
|
-
* True if all properties and methods need to be present in the property / method lists.
|
|
15
|
-
* Otherwise only decorated members will be present (Mobx = only decorated, Vue = all)
|
|
16
|
-
*/
|
|
17
|
-
get: function () {
|
|
18
|
-
return this.typeInfo.inheritsBindableBase || this.alwaysInitialiseMembers;
|
|
19
|
-
},
|
|
20
|
-
enumerable: false,
|
|
21
|
-
configurable: true
|
|
22
|
-
});
|
|
23
|
-
ModelCreatorBase.prototype.isBindableBase = function (type) {
|
|
24
|
-
return type === BindableBase;
|
|
25
|
-
};
|
|
26
|
-
ModelCreatorBase.prototype.isModelBase = function (type) {
|
|
27
|
-
return type === ModelBase;
|
|
28
|
-
};
|
|
29
|
-
ModelCreatorBase.prototype.initialise = function (typeInfo, originalConstructor) {
|
|
30
|
-
this.typeInfo = typeInfo;
|
|
31
|
-
if (this.shouldInitialiseAllMembers) {
|
|
32
|
-
this.addPrototypeProperties(originalConstructor);
|
|
33
|
-
}
|
|
34
|
-
};
|
|
35
|
-
ModelCreatorBase.prototype.addPrototypeProperties = function (ctor) {
|
|
36
|
-
var prototype = ctor.prototype;
|
|
37
|
-
for (var _i = 0, _a = Object.getOwnPropertyNames(prototype); _i < _a.length; _i++) {
|
|
38
|
-
var propertyName = _a[_i];
|
|
39
|
-
if (propertyName !== "constructor") {
|
|
40
|
-
// Read only properties are converted to computeds
|
|
41
|
-
var descriptor = Object.getOwnPropertyDescriptor(prototype, propertyName);
|
|
42
|
-
if (descriptor.value !== void 0) {
|
|
43
|
-
// Method
|
|
44
|
-
if (typeof descriptor.value === 'function') {
|
|
45
|
-
this.addMethodInfo(propertyName, descriptor.value);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
else if (descriptor.get) {
|
|
49
|
-
if (this.typeInfo.inheritsBindableBase) {
|
|
50
|
-
this.typeInfo.addComputed(propertyName, descriptor);
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
// for general objects, getters must explicitly define @Computed to become computed properties.
|
|
54
|
-
this.addProperty(propertyName, descriptor);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
};
|
|
60
|
-
/**
|
|
61
|
-
* Ensures that lists / child objects have the correct relationType.
|
|
62
|
-
*/
|
|
63
|
-
ModelCreatorBase.prototype.ensureChildInfo = function (instance, propertyInfo) {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
var
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { injectable } from 'inversify';
|
|
3
|
+
import ModelBase from './ModelBase';
|
|
4
|
+
import { RelationType } from './Misc';
|
|
5
|
+
import { ChildList, ChildObject } from './Decorators';
|
|
6
|
+
import ValueObject from './ValueObject';
|
|
7
|
+
import { BindableBase } from './BindableBase';
|
|
8
|
+
export var ModelCreatorBase = /** @class */ (function () {
|
|
9
|
+
function ModelCreatorBase() {
|
|
10
|
+
this.alwaysInitialiseMembers = false;
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(ModelCreatorBase.prototype, "shouldInitialiseAllMembers", {
|
|
13
|
+
/**
|
|
14
|
+
* True if all properties and methods need to be present in the property / method lists.
|
|
15
|
+
* Otherwise only decorated members will be present (Mobx = only decorated, Vue = all)
|
|
16
|
+
*/
|
|
17
|
+
get: function () {
|
|
18
|
+
return this.typeInfo.inheritsBindableBase || this.alwaysInitialiseMembers;
|
|
19
|
+
},
|
|
20
|
+
enumerable: false,
|
|
21
|
+
configurable: true
|
|
22
|
+
});
|
|
23
|
+
ModelCreatorBase.prototype.isBindableBase = function (type) {
|
|
24
|
+
return type === BindableBase;
|
|
25
|
+
};
|
|
26
|
+
ModelCreatorBase.prototype.isModelBase = function (type) {
|
|
27
|
+
return type === ModelBase;
|
|
28
|
+
};
|
|
29
|
+
ModelCreatorBase.prototype.initialise = function (typeInfo, originalConstructor) {
|
|
30
|
+
this.typeInfo = typeInfo;
|
|
31
|
+
if (this.shouldInitialiseAllMembers) {
|
|
32
|
+
this.addPrototypeProperties(originalConstructor);
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
ModelCreatorBase.prototype.addPrototypeProperties = function (ctor) {
|
|
36
|
+
var prototype = ctor.prototype;
|
|
37
|
+
for (var _i = 0, _a = Object.getOwnPropertyNames(prototype); _i < _a.length; _i++) {
|
|
38
|
+
var propertyName = _a[_i];
|
|
39
|
+
if (propertyName !== "constructor") {
|
|
40
|
+
// Read only properties are converted to computeds
|
|
41
|
+
var descriptor = Object.getOwnPropertyDescriptor(prototype, propertyName);
|
|
42
|
+
if (descriptor.value !== void 0) {
|
|
43
|
+
// Method
|
|
44
|
+
if (typeof descriptor.value === 'function') {
|
|
45
|
+
this.addMethodInfo(propertyName, descriptor.value);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
else if (descriptor.get) {
|
|
49
|
+
if (this.typeInfo.inheritsBindableBase) {
|
|
50
|
+
this.typeInfo.addComputed(propertyName, descriptor);
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
// for general objects, getters must explicitly define @Computed to become computed properties.
|
|
54
|
+
this.addProperty(propertyName, descriptor);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* Ensures that lists / child objects have the correct relationType.
|
|
62
|
+
*/
|
|
63
|
+
ModelCreatorBase.prototype.ensureChildInfo = function (instance, propertyInfo) {
|
|
64
|
+
// @ts-ignore
|
|
65
|
+
var propertyValue = instance[propertyInfo.propertyName];
|
|
66
|
+
if (propertyValue) {
|
|
67
|
+
if (propertyValue.childObjectType) {
|
|
68
|
+
// This is a list.
|
|
69
|
+
if (propertyInfo.relationType != RelationType.ChildList) {
|
|
70
|
+
// add missing annotation
|
|
71
|
+
propertyInfo = ChildList(propertyValue.childObjectType)(instance, propertyInfo.propertyName);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
else if (propertyValue instanceof ModelBase) {
|
|
75
|
+
// Child object
|
|
76
|
+
var isValueObject = propertyValue instanceof ValueObject;
|
|
77
|
+
var relationType = isValueObject ? RelationType.ValueObject : RelationType.ChildObject;
|
|
78
|
+
if (propertyInfo.relationType != relationType) {
|
|
79
|
+
propertyInfo = ChildObject(propertyValue.constructor, isValueObject)(instance, propertyInfo.propertyName);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
ModelCreatorBase.prototype.addMethodInfo = function (methodName, method) {
|
|
85
|
+
};
|
|
86
|
+
ModelCreatorBase.prototype.addProperty = function (propertyName, descriptor) {
|
|
87
|
+
};
|
|
88
|
+
ModelCreatorBase = __decorate([
|
|
89
|
+
injectable()
|
|
90
|
+
], ModelCreatorBase);
|
|
91
|
+
return ModelCreatorBase;
|
|
92
|
+
}());
|
|
@@ -1,12 +1,29 @@
|
|
|
1
|
-
import ValueObject from "./ValueObject";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
*
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
1
|
+
import ValueObject from "./ValueObject";
|
|
2
|
+
import PropertyInfo from "./PropertyInfo";
|
|
3
|
+
export interface IModelFieldInfoContainer {
|
|
4
|
+
/**
|
|
5
|
+
* Extra information about lookup fields in this object.
|
|
6
|
+
*/
|
|
7
|
+
fieldInfo: {
|
|
8
|
+
[K in keyof this]?: ModelFieldInfo;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Sets the model field info for a property.
|
|
12
|
+
*/
|
|
13
|
+
setModelFieldInfo(property: PropertyInfo, displayValue: string): ModelFieldInfo;
|
|
14
|
+
}
|
|
15
|
+
export declare class ModelFieldInfo extends ValueObject {
|
|
16
|
+
constructor(displayName: string, valueString: string);
|
|
17
|
+
/**
|
|
18
|
+
* Display name for the field.
|
|
19
|
+
*/
|
|
20
|
+
displayName: string;
|
|
21
|
+
/**
|
|
22
|
+
* Lookup of the field value
|
|
23
|
+
*/
|
|
24
|
+
valueString: string;
|
|
25
|
+
/**
|
|
26
|
+
* If the instance is a container of ModelFieldInfo, the instance is returned, otherwise null is returned.
|
|
27
|
+
*/
|
|
28
|
+
static asModelFieldInfoContainer(instance: any): IModelFieldInfoContainer | null;
|
|
29
|
+
}
|