@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,104 +1,104 @@
|
|
|
1
|
-
import { RuleSeverity } from './ValidationState';
|
|
2
|
-
import { Utils } from '../Utils';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
this.
|
|
7
|
-
this.errorText = "";
|
|
8
|
-
this.asyncBusyText = "";
|
|
9
|
-
this.warningText = "";
|
|
10
|
-
this.infoText = "";
|
|
11
|
-
this.severity = RuleSeverity.None;
|
|
12
|
-
this.variant = "light";
|
|
13
|
-
}
|
|
14
|
-
Object.defineProperty(ValidationDisplayInfo.prototype, "displayText", {
|
|
15
|
-
get: function () {
|
|
16
|
-
switch (this.severity) {
|
|
17
|
-
case RuleSeverity.Error: return this.errorText;
|
|
18
|
-
case RuleSeverity.AsyncBusy: return this.asyncBusyText;
|
|
19
|
-
case RuleSeverity.Warning: return this.warningText;
|
|
20
|
-
case RuleSeverity.Info: return this.infoText;
|
|
21
|
-
}
|
|
22
|
-
return "";
|
|
23
|
-
},
|
|
24
|
-
enumerable: false,
|
|
25
|
-
configurable: true
|
|
26
|
-
});
|
|
27
|
-
Object.defineProperty(ValidationDisplayInfo.prototype, "editorClassName", {
|
|
28
|
-
get: function () {
|
|
29
|
-
if (this.severity != RuleSeverity.None) {
|
|
30
|
-
return "is-invalid " + this.additionalClassName;
|
|
31
|
-
}
|
|
32
|
-
return "";
|
|
33
|
-
},
|
|
34
|
-
enumerable: false,
|
|
35
|
-
configurable: true
|
|
36
|
-
});
|
|
37
|
-
ValidationDisplayInfo.prototype.applyToDom = function (elementProps, addTooltip) {
|
|
38
|
-
if (this.severity) {
|
|
39
|
-
elementProps
|
|
40
|
-
if (addTooltip) {
|
|
41
|
-
elementProps["data-tip"] = this.displayText;
|
|
42
|
-
elementProps["data-tip-class"] = this.additionalClassName;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
};
|
|
46
|
-
return ValidationDisplayInfo;
|
|
47
|
-
}());
|
|
48
|
-
export { ValidationDisplayInfo };
|
|
49
|
-
var ValidationDisplayHelper = /** @class */ (function () {
|
|
50
|
-
function ValidationDisplayHelper() {
|
|
51
|
-
}
|
|
52
|
-
ValidationDisplayHelper.getDisplayInfo = function (ruleState, canDisplayAll) {
|
|
53
|
-
var displayInfo = new ValidationDisplayInfo();
|
|
54
|
-
displayInfo.severity = canDisplayAll ? ruleState.severity : ruleState.forceDisplaySeverity;
|
|
55
|
-
if (displayInfo.severity != RuleSeverity.None) {
|
|
56
|
-
var allRules = ruleState.brokenRules;
|
|
57
|
-
if (allRules === undefined) {
|
|
58
|
-
allRules = [ruleState];
|
|
59
|
-
}
|
|
60
|
-
allRules.forEach(function (rule) {
|
|
61
|
-
if (displayInfo.severity == RuleSeverity.Info)
|
|
62
|
-
displayInfo.infoText = ValidationDisplayHelper.join(displayInfo.infoText, rule.messages);
|
|
63
|
-
if (displayInfo.severity == RuleSeverity.Warning)
|
|
64
|
-
displayInfo.warningText = ValidationDisplayHelper.join(displayInfo.warningText, rule.warnings);
|
|
65
|
-
if (displayInfo.severity == RuleSeverity.Error)
|
|
66
|
-
displayInfo.errorText = ValidationDisplayHelper.join(displayInfo.errorText, rule.errors);
|
|
67
|
-
if (displayInfo.severity == RuleSeverity.AsyncBusy && rule.asyncBusyText) {
|
|
68
|
-
displayInfo.asyncBusyText = ValidationDisplayHelper.join(displayInfo.asyncBusyText, [rule.asyncBusyText]);
|
|
69
|
-
}
|
|
70
|
-
});
|
|
71
|
-
switch (displayInfo.severity) {
|
|
72
|
-
case RuleSeverity.Error:
|
|
73
|
-
displayInfo.additionalClassName = "error";
|
|
74
|
-
displayInfo.
|
|
75
|
-
displayInfo.variant = "danger";
|
|
76
|
-
break;
|
|
77
|
-
case RuleSeverity.AsyncBusy:
|
|
78
|
-
displayInfo.additionalClassName = "busy";
|
|
79
|
-
displayInfo.
|
|
80
|
-
displayInfo.variant = "info";
|
|
81
|
-
break;
|
|
82
|
-
case RuleSeverity.Warning:
|
|
83
|
-
displayInfo.additionalClassName = "warning";
|
|
84
|
-
displayInfo.
|
|
85
|
-
displayInfo.variant = "warning";
|
|
86
|
-
break;
|
|
87
|
-
case RuleSeverity.Info:
|
|
88
|
-
displayInfo.additionalClassName = "info";
|
|
89
|
-
displayInfo.
|
|
90
|
-
displayInfo.variant = "info";
|
|
91
|
-
break;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
return displayInfo;
|
|
95
|
-
};
|
|
96
|
-
ValidationDisplayHelper.join = function (initialString, list) {
|
|
97
|
-
for (var i = 0; i < list.length; i++) {
|
|
98
|
-
initialString += (initialString == "" ? "" : initialString.endsWith(".") ? " " : ". ") + list[i];
|
|
99
|
-
}
|
|
100
|
-
return initialString;
|
|
101
|
-
};
|
|
102
|
-
return ValidationDisplayHelper;
|
|
103
|
-
}());
|
|
104
|
-
export default ValidationDisplayHelper;
|
|
1
|
+
import { RuleSeverity } from './ValidationState';
|
|
2
|
+
import { Utils } from '../Utils';
|
|
3
|
+
import { Settings } from '../Settings';
|
|
4
|
+
var ValidationDisplayInfo = /** @class */ (function () {
|
|
5
|
+
function ValidationDisplayInfo() {
|
|
6
|
+
this.additionalClassName = "";
|
|
7
|
+
this.errorText = "";
|
|
8
|
+
this.asyncBusyText = "";
|
|
9
|
+
this.warningText = "";
|
|
10
|
+
this.infoText = "";
|
|
11
|
+
this.severity = RuleSeverity.None;
|
|
12
|
+
this.variant = "light";
|
|
13
|
+
}
|
|
14
|
+
Object.defineProperty(ValidationDisplayInfo.prototype, "displayText", {
|
|
15
|
+
get: function () {
|
|
16
|
+
switch (this.severity) {
|
|
17
|
+
case RuleSeverity.Error: return this.errorText;
|
|
18
|
+
case RuleSeverity.AsyncBusy: return this.asyncBusyText;
|
|
19
|
+
case RuleSeverity.Warning: return this.warningText;
|
|
20
|
+
case RuleSeverity.Info: return this.infoText;
|
|
21
|
+
}
|
|
22
|
+
return "";
|
|
23
|
+
},
|
|
24
|
+
enumerable: false,
|
|
25
|
+
configurable: true
|
|
26
|
+
});
|
|
27
|
+
Object.defineProperty(ValidationDisplayInfo.prototype, "editorClassName", {
|
|
28
|
+
get: function () {
|
|
29
|
+
if (this.severity != RuleSeverity.None) {
|
|
30
|
+
return "is-invalid " + this.additionalClassName;
|
|
31
|
+
}
|
|
32
|
+
return "";
|
|
33
|
+
},
|
|
34
|
+
enumerable: false,
|
|
35
|
+
configurable: true
|
|
36
|
+
});
|
|
37
|
+
ValidationDisplayInfo.prototype.applyToDom = function (elementProps, addTooltip) {
|
|
38
|
+
if (this.severity) {
|
|
39
|
+
elementProps.className = Utils.joinWithSpaces(elementProps.className, this.editorClassName);
|
|
40
|
+
if (addTooltip) {
|
|
41
|
+
elementProps["data-tip"] = this.displayText;
|
|
42
|
+
elementProps["data-tip-class"] = this.additionalClassName;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
return ValidationDisplayInfo;
|
|
47
|
+
}());
|
|
48
|
+
export { ValidationDisplayInfo };
|
|
49
|
+
var ValidationDisplayHelper = /** @class */ (function () {
|
|
50
|
+
function ValidationDisplayHelper() {
|
|
51
|
+
}
|
|
52
|
+
ValidationDisplayHelper.getDisplayInfo = function (ruleState, canDisplayAll) {
|
|
53
|
+
var displayInfo = new ValidationDisplayInfo();
|
|
54
|
+
displayInfo.severity = canDisplayAll ? ruleState.severity : ruleState.forceDisplaySeverity;
|
|
55
|
+
if (displayInfo.severity != RuleSeverity.None) {
|
|
56
|
+
var allRules = ruleState.brokenRules;
|
|
57
|
+
if (allRules === undefined) {
|
|
58
|
+
allRules = [ruleState];
|
|
59
|
+
}
|
|
60
|
+
allRules.forEach(function (rule) {
|
|
61
|
+
if (displayInfo.severity == RuleSeverity.Info)
|
|
62
|
+
displayInfo.infoText = ValidationDisplayHelper.join(displayInfo.infoText, rule.messages);
|
|
63
|
+
if (displayInfo.severity == RuleSeverity.Warning)
|
|
64
|
+
displayInfo.warningText = ValidationDisplayHelper.join(displayInfo.warningText, rule.warnings);
|
|
65
|
+
if (displayInfo.severity == RuleSeverity.Error)
|
|
66
|
+
displayInfo.errorText = ValidationDisplayHelper.join(displayInfo.errorText, rule.errors);
|
|
67
|
+
if (displayInfo.severity == RuleSeverity.AsyncBusy && rule.asyncBusyText) {
|
|
68
|
+
displayInfo.asyncBusyText = ValidationDisplayHelper.join(displayInfo.asyncBusyText, [rule.asyncBusyText]);
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
switch (displayInfo.severity) {
|
|
72
|
+
case RuleSeverity.Error:
|
|
73
|
+
displayInfo.additionalClassName = "error";
|
|
74
|
+
displayInfo.icon = Settings.icons.errorIcon;
|
|
75
|
+
displayInfo.variant = "danger";
|
|
76
|
+
break;
|
|
77
|
+
case RuleSeverity.AsyncBusy:
|
|
78
|
+
displayInfo.additionalClassName = "busy";
|
|
79
|
+
displayInfo.icon = Settings.icons.loadingIcon;
|
|
80
|
+
displayInfo.variant = "info";
|
|
81
|
+
break;
|
|
82
|
+
case RuleSeverity.Warning:
|
|
83
|
+
displayInfo.additionalClassName = "warning";
|
|
84
|
+
displayInfo.icon = Settings.icons.warningIcon;
|
|
85
|
+
displayInfo.variant = "warning";
|
|
86
|
+
break;
|
|
87
|
+
case RuleSeverity.Info:
|
|
88
|
+
displayInfo.additionalClassName = "info";
|
|
89
|
+
displayInfo.icon = Settings.icons.infoIcon;
|
|
90
|
+
displayInfo.variant = "info";
|
|
91
|
+
break;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return displayInfo;
|
|
95
|
+
};
|
|
96
|
+
ValidationDisplayHelper.join = function (initialString, list) {
|
|
97
|
+
for (var i = 0; i < list.length; i++) {
|
|
98
|
+
initialString += (initialString == "" ? "" : initialString.endsWith(".") ? " " : ". ") + list[i];
|
|
99
|
+
}
|
|
100
|
+
return initialString;
|
|
101
|
+
};
|
|
102
|
+
return ValidationDisplayHelper;
|
|
103
|
+
}());
|
|
104
|
+
export default ValidationDisplayHelper;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
export declare enum ValidationDisplayMode {
|
|
2
|
-
/** errors will display immediately if the properties are not valid. */
|
|
3
|
-
Always = 1,
|
|
4
|
-
/** errors will only display after the element loses focus. */
|
|
5
|
-
AfterBlur = 2,
|
|
6
|
-
/** errors will only be displayed once forceShowErrors is set to true on the model. */
|
|
7
|
-
AfterSubmit = 3,
|
|
8
|
-
/** errors will not be shown. */
|
|
9
|
-
Never = 4
|
|
10
|
-
}
|
|
1
|
+
export declare enum ValidationDisplayMode {
|
|
2
|
+
/** errors will display immediately if the properties are not valid. */
|
|
3
|
+
Always = 1,
|
|
4
|
+
/** errors will only display after the element loses focus. */
|
|
5
|
+
AfterBlur = 2,
|
|
6
|
+
/** errors will only be displayed once forceShowErrors is set to true on the model. */
|
|
7
|
+
AfterSubmit = 3,
|
|
8
|
+
/** errors will not be shown. */
|
|
9
|
+
Never = 4
|
|
10
|
+
}
|
package/dist/Validation/Misc.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
export var ValidationDisplayMode;
|
|
2
|
-
(function (ValidationDisplayMode) {
|
|
3
|
-
/** errors will display immediately if the properties are not valid. */
|
|
4
|
-
ValidationDisplayMode[ValidationDisplayMode["Always"] = 1] = "Always";
|
|
5
|
-
/** errors will only display after the element loses focus. */
|
|
6
|
-
ValidationDisplayMode[ValidationDisplayMode["AfterBlur"] = 2] = "AfterBlur";
|
|
7
|
-
/** errors will only be displayed once forceShowErrors is set to true on the model. */
|
|
8
|
-
ValidationDisplayMode[ValidationDisplayMode["AfterSubmit"] = 3] = "AfterSubmit";
|
|
9
|
-
/** errors will not be shown. */
|
|
10
|
-
ValidationDisplayMode[ValidationDisplayMode["Never"] = 4] = "Never";
|
|
11
|
-
})(ValidationDisplayMode || (ValidationDisplayMode = {}));
|
|
1
|
+
export var ValidationDisplayMode;
|
|
2
|
+
(function (ValidationDisplayMode) {
|
|
3
|
+
/** errors will display immediately if the properties are not valid. */
|
|
4
|
+
ValidationDisplayMode[ValidationDisplayMode["Always"] = 1] = "Always";
|
|
5
|
+
/** errors will only display after the element loses focus. */
|
|
6
|
+
ValidationDisplayMode[ValidationDisplayMode["AfterBlur"] = 2] = "AfterBlur";
|
|
7
|
+
/** errors will only be displayed once forceShowErrors is set to true on the model. */
|
|
8
|
+
ValidationDisplayMode[ValidationDisplayMode["AfterSubmit"] = 3] = "AfterSubmit";
|
|
9
|
+
/** errors will not be shown. */
|
|
10
|
+
ValidationDisplayMode[ValidationDisplayMode["Never"] = 4] = "Never";
|
|
11
|
+
})(ValidationDisplayMode || (ValidationDisplayMode = {}));
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import { IModelBase } from '../Model/IModelBase';
|
|
2
|
-
import PropertyInfo from '../Model/PropertyInfo';
|
|
3
|
-
import { CustomRule } from './Rules';
|
|
4
|
-
/**
|
|
5
|
-
* Acts as a proxy for a model in order to tell which properties of the model were accessed during the invocation of a rule.
|
|
6
|
-
*/
|
|
7
|
-
export default class ModelProxy {
|
|
8
|
-
accessedProperties: Map<string, PropertyInfo>;
|
|
9
|
-
private defaultPropertyInstance;
|
|
10
|
-
constructor(instance: IModelBase);
|
|
11
|
-
/**
|
|
12
|
-
* Invokes checkRule on the provided rule, and monitors which properties were accessed.
|
|
13
|
-
* The accessed properties are returned as a propertyInfo array.
|
|
14
|
-
* This technique will not always extract all properties.
|
|
15
|
-
* E.g. Given: (Property1 !== "" && Property1 === Property2)
|
|
16
|
-
* Property2 will not be extracted if Property1's default value is an empty string.
|
|
17
|
-
* Any exceptions thrown will be caught silently.
|
|
18
|
-
*/
|
|
19
|
-
tryExtractProperties(rule: CustomRule<IModelBase>): PropertyInfo[];
|
|
20
|
-
}
|
|
1
|
+
import { IModelBase } from '../Model/IModelBase';
|
|
2
|
+
import PropertyInfo from '../Model/PropertyInfo';
|
|
3
|
+
import { CustomRule } from './Rules';
|
|
4
|
+
/**
|
|
5
|
+
* Acts as a proxy for a model in order to tell which properties of the model were accessed during the invocation of a rule.
|
|
6
|
+
*/
|
|
7
|
+
export default class ModelProxy {
|
|
8
|
+
accessedProperties: Map<string, PropertyInfo>;
|
|
9
|
+
private defaultPropertyInstance;
|
|
10
|
+
constructor(instance: IModelBase);
|
|
11
|
+
/**
|
|
12
|
+
* Invokes checkRule on the provided rule, and monitors which properties were accessed.
|
|
13
|
+
* The accessed properties are returned as a propertyInfo array.
|
|
14
|
+
* This technique will not always extract all properties.
|
|
15
|
+
* E.g. Given: (Property1 !== "" && Property1 === Property2)
|
|
16
|
+
* Property2 will not be extracted if Property1's default value is an empty string.
|
|
17
|
+
* Any exceptions thrown will be caught silently.
|
|
18
|
+
*/
|
|
19
|
+
tryExtractProperties(rule: CustomRule<IModelBase>): PropertyInfo[];
|
|
20
|
+
}
|
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
import PropertyInfo from '../Model/PropertyInfo';
|
|
2
|
-
import PropertyInstance from '../Model/PropertyInstance';
|
|
3
|
-
import { RuleContext } from './RuleContext';
|
|
4
|
-
/**
|
|
5
|
-
* Acts as a proxy for a model in order to tell which properties of the model were accessed during the invocation of a rule.
|
|
6
|
-
*/
|
|
7
|
-
var ModelProxy = /** @class */ (function () {
|
|
8
|
-
function ModelProxy(instance) {
|
|
9
|
-
var _this = this;
|
|
10
|
-
this.accessedProperties = new Map();
|
|
11
|
-
this.defaultPropertyInstance = new PropertyInstance(this, new PropertyInfo(""), false);
|
|
12
|
-
var _loop_1 = function (propertyName) {
|
|
13
|
-
Object.defineProperty(this_1, propertyName, {
|
|
14
|
-
get: function () {
|
|
15
|
-
_this.accessedProperties.set(propertyName, instance.constructor.neo.meta[propertyName].propertyInfo);
|
|
16
|
-
return instance.meta[propertyName].peek();
|
|
17
|
-
}
|
|
18
|
-
});
|
|
19
|
-
};
|
|
20
|
-
var this_1 = this;
|
|
21
|
-
for (var _i = 0, _a = Object.getOwnPropertyNames(instance); _i < _a.length; _i++) {
|
|
22
|
-
var propertyName = _a[_i];
|
|
23
|
-
_loop_1(propertyName);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Invokes checkRule on the provided rule, and monitors which properties were accessed.
|
|
28
|
-
* The accessed properties are returned as a propertyInfo array.
|
|
29
|
-
* This technique will not always extract all properties.
|
|
30
|
-
* E.g. Given: (Property1 !== "" && Property1 === Property2)
|
|
31
|
-
* Property2 will not be extracted if Property1's default value is an empty string.
|
|
32
|
-
* Any exceptions thrown will be caught silently.
|
|
33
|
-
*/
|
|
34
|
-
ModelProxy.prototype.tryExtractProperties = function (rule) {
|
|
35
|
-
this.accessedProperties.clear();
|
|
36
|
-
var context = new RuleContext(null);
|
|
37
|
-
try {
|
|
38
|
-
rule.checkRule(this.defaultPropertyInstance, context);
|
|
39
|
-
}
|
|
40
|
-
catch (e) {
|
|
41
|
-
}
|
|
42
|
-
return Array.from(this.accessedProperties.values());
|
|
43
|
-
};
|
|
44
|
-
return ModelProxy;
|
|
45
|
-
}());
|
|
46
|
-
export default ModelProxy;
|
|
1
|
+
import PropertyInfo from '../Model/PropertyInfo';
|
|
2
|
+
import PropertyInstance from '../Model/PropertyInstance';
|
|
3
|
+
import { RuleContext } from './RuleContext';
|
|
4
|
+
/**
|
|
5
|
+
* Acts as a proxy for a model in order to tell which properties of the model were accessed during the invocation of a rule.
|
|
6
|
+
*/
|
|
7
|
+
var ModelProxy = /** @class */ (function () {
|
|
8
|
+
function ModelProxy(instance) {
|
|
9
|
+
var _this = this;
|
|
10
|
+
this.accessedProperties = new Map();
|
|
11
|
+
this.defaultPropertyInstance = new PropertyInstance(this, new PropertyInfo(""), false);
|
|
12
|
+
var _loop_1 = function (propertyName) {
|
|
13
|
+
Object.defineProperty(this_1, propertyName, {
|
|
14
|
+
get: function () {
|
|
15
|
+
_this.accessedProperties.set(propertyName, instance.constructor.neo.meta[propertyName].propertyInfo);
|
|
16
|
+
return instance.meta[propertyName].peek();
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
var this_1 = this;
|
|
21
|
+
for (var _i = 0, _a = Object.getOwnPropertyNames(instance); _i < _a.length; _i++) {
|
|
22
|
+
var propertyName = _a[_i];
|
|
23
|
+
_loop_1(propertyName);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Invokes checkRule on the provided rule, and monitors which properties were accessed.
|
|
28
|
+
* The accessed properties are returned as a propertyInfo array.
|
|
29
|
+
* This technique will not always extract all properties.
|
|
30
|
+
* E.g. Given: (Property1 !== "" && Property1 === Property2)
|
|
31
|
+
* Property2 will not be extracted if Property1's default value is an empty string.
|
|
32
|
+
* Any exceptions thrown will be caught silently.
|
|
33
|
+
*/
|
|
34
|
+
ModelProxy.prototype.tryExtractProperties = function (rule) {
|
|
35
|
+
this.accessedProperties.clear();
|
|
36
|
+
var context = new RuleContext(null);
|
|
37
|
+
try {
|
|
38
|
+
rule.checkRule(this.defaultPropertyInstance, context);
|
|
39
|
+
}
|
|
40
|
+
catch (e) {
|
|
41
|
+
}
|
|
42
|
+
return Array.from(this.accessedProperties.values());
|
|
43
|
+
};
|
|
44
|
+
return ModelProxy;
|
|
45
|
+
}());
|
|
46
|
+
export default ModelProxy;
|
|
@@ -1,86 +1,86 @@
|
|
|
1
|
-
import { ValidationState, IValidationState } from './ValidationState';
|
|
2
|
-
import RuleValidator from './Validators/RuleValidator';
|
|
3
|
-
export declare enum AsyncStage {
|
|
4
|
-
None = 0,
|
|
5
|
-
Debounce = 1,
|
|
6
|
-
Busy = 2,
|
|
7
|
-
Completing = 3
|
|
8
|
-
}
|
|
9
|
-
interface IRuleContextBase {
|
|
10
|
-
/**
|
|
11
|
-
* Adds an error, causing the object to be invalid.
|
|
12
|
-
* @param errorText The error message to display
|
|
13
|
-
* @param forceDisplay True if the error message must display even if the control is still focused.
|
|
14
|
-
*/
|
|
15
|
-
addError(errorText: string, forceDisplay?: boolean): void;
|
|
16
|
-
/**
|
|
17
|
-
* Adds a warning. This will not cause the object to be invalid.
|
|
18
|
-
* @param forceDisplay True if the warning message must display even if the control is still focused.
|
|
19
|
-
* */
|
|
20
|
-
addWarning(warningText: string, forceDisplay?: boolean): void;
|
|
21
|
-
/**
|
|
22
|
-
* Adds an information message. This is the lowest severity
|
|
23
|
-
* @param forceDisplay True if the message must display even if the control is still focused.
|
|
24
|
-
* */
|
|
25
|
-
addMessage(message: string, forceDisplay?: boolean): void;
|
|
26
|
-
}
|
|
27
|
-
export interface IRuleContext extends IRuleContextBase {
|
|
28
|
-
/**
|
|
29
|
-
* Indicates that this object is validating. It will not be valid until endAsync is called in the provided callback.
|
|
30
|
-
* @param loadingText Text to display until endAsync is called.
|
|
31
|
-
* @param onReady Callback function where the async action must be called from.
|
|
32
|
-
* @param options See options properties.
|
|
33
|
-
*/
|
|
34
|
-
beginAsync(loadingText: string, onReady: (asyncContext: IAsyncRuleContext) => void, options?: IAsyncRuleOptions): void;
|
|
35
|
-
}
|
|
36
|
-
export interface IRuleResult extends IValidationState {
|
|
37
|
-
asyncBusyText: string;
|
|
38
|
-
errors: Array<string>;
|
|
39
|
-
warnings: Array<string>;
|
|
40
|
-
messages: Array<string>;
|
|
41
|
-
readonly hasDetail: boolean;
|
|
42
|
-
}
|
|
43
|
-
export interface IAsyncRuleContext extends IRuleContextBase {
|
|
44
|
-
/**
|
|
45
|
-
* Call this once an async operation has completed, and you have added errors / warnings.
|
|
46
|
-
*/
|
|
47
|
-
endAsync(): void;
|
|
48
|
-
}
|
|
49
|
-
export declare class RuleContextBase extends ValidationState implements IRuleContextBase {
|
|
50
|
-
protected ruleValidator: RuleValidator;
|
|
51
|
-
asyncBusyText: string;
|
|
52
|
-
errors: Array<string>;
|
|
53
|
-
warnings: Array<string>;
|
|
54
|
-
messages: Array<string>;
|
|
55
|
-
constructor(ruleValidator: RuleValidator);
|
|
56
|
-
addError(errorText: string, forceDisplay?: boolean): void;
|
|
57
|
-
addWarning(warningText: string, forceDisplay?: boolean): void;
|
|
58
|
-
addMessage(message: string, forceDisplay?: boolean): void;
|
|
59
|
-
merge(ruleState: RuleContextBase, includeMessages: boolean): void;
|
|
60
|
-
get hasDetail(): boolean;
|
|
61
|
-
}
|
|
62
|
-
interface IAsyncRuleOptions {
|
|
63
|
-
/** The async rule will only be executed after the property has not changed for this many milliseconds. */
|
|
64
|
-
delayMs?: number;
|
|
65
|
-
/** True if the loading text must display even if the control is still focused. */
|
|
66
|
-
forceDisplay?: boolean;
|
|
67
|
-
/** True if the async rule must be executed even if the object is clean. */
|
|
68
|
-
checkWhenClean?: boolean;
|
|
69
|
-
}
|
|
70
|
-
export declare class RuleContext extends RuleContextBase implements IRuleContext, IRuleResult {
|
|
71
|
-
/**
|
|
72
|
-
* Indicates that this object is validating.
|
|
73
|
-
* It will not be valid until endAsync is called in the provided callback.
|
|
74
|
-
* Async / await, or returning a promise can also be used as an alternative to using endAsync.
|
|
75
|
-
* @param loadingText Text to display until endAsync is called.
|
|
76
|
-
* @param onReady Callback function where the async action must be called from.
|
|
77
|
-
* @param options See options properties.
|
|
78
|
-
*/
|
|
79
|
-
beginAsync(loadingText: string, onReady: (asyncContext: IAsyncRuleContext) => void | Promise<any>, options?: IAsyncRuleOptions): void;
|
|
80
|
-
}
|
|
81
|
-
export declare class AsyncRuleContext extends RuleContextBase implements IAsyncRuleContext {
|
|
82
|
-
private initiator;
|
|
83
|
-
constructor(initiator: RuleContext, ruleValidator: RuleValidator);
|
|
84
|
-
endAsync(): void;
|
|
85
|
-
}
|
|
86
|
-
export {};
|
|
1
|
+
import { ValidationState, IValidationState } from './ValidationState';
|
|
2
|
+
import RuleValidator from './Validators/RuleValidator';
|
|
3
|
+
export declare enum AsyncStage {
|
|
4
|
+
None = 0,
|
|
5
|
+
Debounce = 1,
|
|
6
|
+
Busy = 2,
|
|
7
|
+
Completing = 3
|
|
8
|
+
}
|
|
9
|
+
interface IRuleContextBase {
|
|
10
|
+
/**
|
|
11
|
+
* Adds an error, causing the object to be invalid.
|
|
12
|
+
* @param errorText The error message to display
|
|
13
|
+
* @param forceDisplay True if the error message must display even if the control is still focused.
|
|
14
|
+
*/
|
|
15
|
+
addError(errorText: string, forceDisplay?: boolean): void;
|
|
16
|
+
/**
|
|
17
|
+
* Adds a warning. This will not cause the object to be invalid.
|
|
18
|
+
* @param forceDisplay True if the warning message must display even if the control is still focused.
|
|
19
|
+
* */
|
|
20
|
+
addWarning(warningText: string, forceDisplay?: boolean): void;
|
|
21
|
+
/**
|
|
22
|
+
* Adds an information message. This is the lowest severity
|
|
23
|
+
* @param forceDisplay True if the message must display even if the control is still focused.
|
|
24
|
+
* */
|
|
25
|
+
addMessage(message: string, forceDisplay?: boolean): void;
|
|
26
|
+
}
|
|
27
|
+
export interface IRuleContext extends IRuleContextBase {
|
|
28
|
+
/**
|
|
29
|
+
* Indicates that this object is validating. It will not be valid until endAsync is called in the provided callback.
|
|
30
|
+
* @param loadingText Text to display until endAsync is called.
|
|
31
|
+
* @param onReady Callback function where the async action must be called from.
|
|
32
|
+
* @param options See options properties.
|
|
33
|
+
*/
|
|
34
|
+
beginAsync(loadingText: string, onReady: (asyncContext: IAsyncRuleContext) => void, options?: IAsyncRuleOptions): void;
|
|
35
|
+
}
|
|
36
|
+
export interface IRuleResult extends IValidationState {
|
|
37
|
+
asyncBusyText: string;
|
|
38
|
+
errors: Array<string>;
|
|
39
|
+
warnings: Array<string>;
|
|
40
|
+
messages: Array<string>;
|
|
41
|
+
readonly hasDetail: boolean;
|
|
42
|
+
}
|
|
43
|
+
export interface IAsyncRuleContext extends IRuleContextBase {
|
|
44
|
+
/**
|
|
45
|
+
* Call this once an async operation has completed, and you have added errors / warnings.
|
|
46
|
+
*/
|
|
47
|
+
endAsync(): void;
|
|
48
|
+
}
|
|
49
|
+
export declare class RuleContextBase extends ValidationState implements IRuleContextBase {
|
|
50
|
+
protected ruleValidator: RuleValidator;
|
|
51
|
+
asyncBusyText: string;
|
|
52
|
+
errors: Array<string>;
|
|
53
|
+
warnings: Array<string>;
|
|
54
|
+
messages: Array<string>;
|
|
55
|
+
constructor(ruleValidator: RuleValidator);
|
|
56
|
+
addError(errorText: string, forceDisplay?: boolean): void;
|
|
57
|
+
addWarning(warningText: string, forceDisplay?: boolean): void;
|
|
58
|
+
addMessage(message: string, forceDisplay?: boolean): void;
|
|
59
|
+
merge(ruleState: RuleContextBase, includeMessages: boolean): void;
|
|
60
|
+
get hasDetail(): boolean;
|
|
61
|
+
}
|
|
62
|
+
interface IAsyncRuleOptions {
|
|
63
|
+
/** The async rule will only be executed after the property has not changed for this many milliseconds. */
|
|
64
|
+
delayMs?: number;
|
|
65
|
+
/** True if the loading text must display even if the control is still focused. */
|
|
66
|
+
forceDisplay?: boolean;
|
|
67
|
+
/** True if the async rule must be executed even if the object is clean. */
|
|
68
|
+
checkWhenClean?: boolean;
|
|
69
|
+
}
|
|
70
|
+
export declare class RuleContext extends RuleContextBase implements IRuleContext, IRuleResult {
|
|
71
|
+
/**
|
|
72
|
+
* Indicates that this object is validating.
|
|
73
|
+
* It will not be valid until endAsync is called in the provided callback.
|
|
74
|
+
* Async / await, or returning a promise can also be used as an alternative to using endAsync.
|
|
75
|
+
* @param loadingText Text to display until endAsync is called.
|
|
76
|
+
* @param onReady Callback function where the async action must be called from.
|
|
77
|
+
* @param options See options properties.
|
|
78
|
+
*/
|
|
79
|
+
beginAsync(loadingText: string, onReady: (asyncContext: IAsyncRuleContext) => void | Promise<any>, options?: IAsyncRuleOptions): void;
|
|
80
|
+
}
|
|
81
|
+
export declare class AsyncRuleContext extends RuleContextBase implements IAsyncRuleContext {
|
|
82
|
+
private initiator;
|
|
83
|
+
constructor(initiator: RuleContext, ruleValidator: RuleValidator);
|
|
84
|
+
endAsync(): void;
|
|
85
|
+
}
|
|
86
|
+
export {};
|