@singularsystems/neo-react 1.0.0-alpha.3 → 1.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +98 -0
- package/README.md +4 -0
- package/dist/Modules/NeoReactModule.d.ts +4 -4
- package/dist/Modules/NeoReactModule.js +28 -26
- package/dist/Modules/ReactSetup.d.ts +2 -2
- package/dist/Modules/ReactSetup.js +17 -17
- package/dist/Modules/Types.d.ts +63 -61
- package/dist/Modules/Types.js +13 -12
- package/dist/React/AutoRunner.d.ts +5 -5
- package/dist/React/AutoRunner.js +94 -92
- package/dist/React/DataView.d.ts +6 -6
- package/dist/React/DataView.js +11 -11
- package/dist/React/ReactModelCreator.d.ts +11 -11
- package/dist/React/ReactModelCreator.js +165 -162
- package/dist/ReactComponents/Button.d.ts +24 -23
- package/dist/ReactComponents/Button.js +131 -123
- package/dist/ReactComponents/Card.d.ts +24 -23
- package/dist/ReactComponents/Card.js +56 -54
- package/dist/ReactComponents/Collapsable.d.ts +23 -23
- package/dist/ReactComponents/Collapsable.js +38 -38
- package/dist/ReactComponents/CollapsableBase.d.ts +13 -13
- package/dist/ReactComponents/CollapsableBase.js +42 -42
- package/dist/ReactComponents/ColorPicker.d.ts +26 -26
- package/dist/ReactComponents/ColorPicker.js +67 -67
- package/dist/ReactComponents/ComponentBase.d.ts +17 -17
- package/dist/ReactComponents/ComponentBase.js +33 -33
- package/dist/ReactComponents/ContextMenu/ContextMenu.d.ts +25 -24
- package/dist/ReactComponents/ContextMenu/ContextMenu.js +91 -89
- package/dist/ReactComponents/ContextMenu/ContextMenuContainer.d.ts +14 -14
- package/dist/ReactComponents/ContextMenu/ContextMenuContainer.js +48 -48
- package/dist/ReactComponents/ContextMenu/ContextMenuState.d.ts +8 -8
- package/dist/ReactComponents/ContextMenu/ContextMenuState.js +23 -24
- package/dist/ReactComponents/DatePicker.d.ts +19 -19
- package/dist/ReactComponents/DatePicker.js +53 -53
- package/dist/ReactComponents/DropDown/AutoCompleteDropDown.d.ts +93 -83
- package/dist/ReactComponents/DropDown/AutoCompleteDropDown.js +222 -188
- package/dist/ReactComponents/DropDown/DropDown.d.ts +44 -44
- package/dist/ReactComponents/DropDown/DropDown.js +138 -134
- package/dist/ReactComponents/DropDown/DropDownBase.d.ts +16 -15
- package/dist/ReactComponents/DropDown/DropDownBase.js +86 -108
- package/dist/ReactComponents/DropDown/LookupHelper.d.ts +13 -0
- package/dist/ReactComponents/DropDown/LookupHelper.js +45 -0
- package/dist/ReactComponents/ErrorHandler.d.ts +9 -9
- package/dist/ReactComponents/ErrorHandler.js +92 -93
- package/dist/ReactComponents/FileManager/FileBasicInput.d.ts +20 -20
- package/dist/ReactComponents/FileManager/FileBasicInput.js +70 -70
- package/dist/ReactComponents/FileManager/FileContext.d.ts +16 -16
- package/dist/ReactComponents/FileManager/FileContext.js +24 -24
- package/dist/ReactComponents/FileManager/FileDropArea.d.ts +19 -19
- package/dist/ReactComponents/FileManager/FileDropArea.js +66 -66
- package/dist/ReactComponents/FileManager/FileInput.d.ts +44 -43
- package/dist/ReactComponents/FileManager/FileInput.js +191 -191
- package/dist/ReactComponents/FileManager/FileUploadButton.d.ts +17 -17
- package/dist/ReactComponents/FileManager/FileUploadButton.js +49 -49
- package/dist/ReactComponents/FileManager/FileUploadProgress.d.ts +14 -14
- package/dist/ReactComponents/FileManager/FileUploadProgress.js +35 -35
- package/dist/ReactComponents/Form.d.ts +19 -19
- package/dist/ReactComponents/Form.js +90 -90
- package/dist/ReactComponents/FormContext.d.ts +33 -33
- package/dist/ReactComponents/FormContext.js +39 -40
- package/dist/ReactComponents/FormGroup/FormGroup.d.ts +37 -37
- package/dist/ReactComponents/FormGroup/FormGroup.js +83 -84
- package/dist/ReactComponents/FormGroup/FormGroupFloating.d.ts +19 -19
- package/dist/ReactComponents/FormGroup/FormGroupFloating.js +97 -97
- package/dist/ReactComponents/FormGroup/FormGroupInline.d.ts +11 -11
- package/dist/ReactComponents/FormGroup/FormGroupInline.js +43 -43
- package/dist/ReactComponents/Grid/ButtonColumn.d.ts +47 -47
- package/dist/ReactComponents/Grid/ButtonColumn.js +81 -82
- package/dist/ReactComponents/Grid/Column.d.ts +47 -47
- package/dist/ReactComponents/Grid/Column.js +205 -205
- package/dist/ReactComponents/Grid/ColumnHelper.d.ts +12 -12
- package/dist/ReactComponents/Grid/ColumnHelper.js +19 -19
- package/dist/ReactComponents/Grid/Grid.d.ts +87 -87
- package/dist/ReactComponents/Grid/Grid.js +203 -203
- package/dist/ReactComponents/Grid/Row.d.ts +81 -81
- package/dist/ReactComponents/Grid/Row.js +200 -202
- package/dist/ReactComponents/Grid/_Exports.d.ts +5 -5
- package/dist/ReactComponents/Grid/_Exports.js +5 -5
- package/dist/ReactComponents/GridLayout.d.ts +20 -20
- package/dist/ReactComponents/GridLayout.js +38 -38
- package/dist/ReactComponents/Icons/FontAwesomeIconFactory.d.ts +23 -0
- package/dist/ReactComponents/Icons/FontAwesomeIconFactory.js +43 -0
- package/dist/ReactComponents/Icons/IIconFactory.d.ts +21 -0
- package/dist/ReactComponents/Icons/IIconFactory.js +1 -0
- package/dist/ReactComponents/Icons/IconFactory.d.ts +9 -0
- package/dist/ReactComponents/Icons/IconFactory.js +45 -0
- package/dist/ReactComponents/Icons/index.d.ts +3 -0
- package/dist/ReactComponents/Icons/index.js +2 -0
- package/dist/ReactComponents/Input.d.ts +45 -45
- package/dist/ReactComponents/Input.js +153 -153
- package/dist/ReactComponents/InputHelpers.d.ts +6 -5
- package/dist/ReactComponents/InputHelpers.js +29 -33
- package/dist/ReactComponents/Link.d.ts +13 -13
- package/dist/ReactComponents/Link.js +28 -28
- package/dist/ReactComponents/Loader.d.ts +18 -18
- package/dist/ReactComponents/Loader.js +57 -57
- package/dist/ReactComponents/Misc.d.ts +15 -15
- package/dist/ReactComponents/Misc.js +28 -28
- package/dist/ReactComponents/Modal/Modal.d.ts +11 -11
- package/dist/ReactComponents/Modal/Modal.js +129 -129
- package/dist/ReactComponents/Modal/ModalContainer.d.ts +17 -17
- package/dist/ReactComponents/Modal/ModalContainer.js +37 -37
- package/dist/ReactComponents/Modal/ModalPortal.d.ts +16 -16
- package/dist/ReactComponents/Modal/ModalPortal.js +27 -27
- package/dist/ReactComponents/Notifications/Alert.d.ts +7 -6
- package/dist/ReactComponents/Notifications/Alert.js +38 -35
- package/dist/ReactComponents/Notifications/Toast.d.ts +9 -8
- package/dist/ReactComponents/Notifications/Toast.js +47 -45
- package/dist/ReactComponents/Notifications/ToastContainer.d.ts +8 -8
- package/dist/ReactComponents/Notifications/ToastContainer.js +18 -18
- package/dist/ReactComponents/NumberInput.d.ts +57 -50
- package/dist/ReactComponents/NumberInput.js +260 -246
- package/dist/ReactComponents/Paging/BasicPagerControls.d.ts +26 -25
- package/dist/ReactComponents/Paging/BasicPagerControls.js +57 -55
- package/dist/ReactComponents/Paging/PageSizeControl.d.ts +11 -11
- package/dist/ReactComponents/Paging/PageSizeControl.js +21 -21
- package/dist/ReactComponents/Paging/Pager.d.ts +24 -24
- package/dist/ReactComponents/Paging/Pager.js +41 -41
- package/dist/ReactComponents/ProgressBar.d.ts +19 -19
- package/dist/ReactComponents/ProgressBar.js +52 -52
- package/dist/ReactComponents/PropTypes.d.ts +161 -161
- package/dist/ReactComponents/PropTypes.js +253 -236
- package/dist/ReactComponents/RadioList.d.ts +29 -29
- package/dist/ReactComponents/RadioList.js +59 -77
- package/dist/ReactComponents/Slider.d.ts +28 -28
- package/dist/ReactComponents/Slider.js +76 -76
- package/dist/ReactComponents/StateObserver.d.ts +15 -15
- package/dist/ReactComponents/StateObserver.js +35 -35
- package/dist/ReactComponents/Tabs/Tab.d.ts +42 -41
- package/dist/ReactComponents/Tabs/Tab.js +71 -72
- package/dist/ReactComponents/Tabs/TabContainer.d.ts +44 -44
- package/dist/ReactComponents/Tabs/TabContainer.js +98 -98
- package/dist/ReactComponents/Tabs/TabManager.d.ts +62 -62
- package/dist/ReactComponents/Tabs/TabManager.js +154 -154
- package/dist/ReactComponents/Tooltip.d.ts +20 -20
- package/dist/ReactComponents/Tooltip.js +51 -51
- package/dist/ReactComponents/TooltipHelper.d.ts +8 -8
- package/dist/ReactComponents/TooltipHelper.js +84 -84
- package/dist/ReactComponents/TooltipProvider.d.ts +30 -30
- package/dist/ReactComponents/TooltipProvider.js +111 -111
- package/dist/ReactComponents/ValidationSummary.d.ts +23 -22
- package/dist/ReactComponents/ValidationSummary.js +46 -43
- package/dist/ReactComponents/_Exports.d.ts +41 -41
- package/dist/ReactComponents/_Exports.js +41 -41
- package/dist/ReactComponents/_Managers.d.ts +4 -4
- package/dist/ReactComponents/_Managers.js +4 -4
- package/dist/Routing/BreadCrumbItem.d.ts +14 -14
- package/dist/Routing/BreadCrumbItem.js +12 -12
- package/dist/Routing/IRouteChangedProps.d.ts +31 -31
- package/dist/Routing/IRouteChangedProps.js +1 -1
- package/dist/Routing/IRouteParameter.d.ts +22 -22
- package/dist/Routing/IRouteParameter.js +9 -9
- package/dist/Routing/MenuRoute.d.ts +25 -24
- package/dist/Routing/MenuRoute.js +24 -24
- package/dist/Routing/NavigationHelper.d.ts +41 -40
- package/dist/Routing/NavigationHelper.js +61 -61
- package/dist/Routing/PageLeaveHandler.d.ts +13 -13
- package/dist/Routing/PageLeaveHandler.js +74 -75
- package/dist/Routing/RouteProvider.d.ts +31 -31
- package/dist/Routing/RouteProvider.js +92 -92
- package/dist/Routing/RouteView.d.ts +50 -50
- package/dist/Routing/RouteView.js +143 -143
- package/dist/Routing/RoutingState.d.ts +18 -18
- package/dist/Routing/RoutingState.js +45 -46
- package/dist/Routing/ViewParameter.d.ts +80 -58
- package/dist/Routing/ViewParameter.js +116 -96
- package/dist/Routing/ViewParameterList.d.ts +53 -53
- package/dist/Routing/ViewParameterList.js +163 -145
- package/dist/Routing/index.d.ts +9 -9
- package/dist/Routing/index.js +6 -6
- package/dist/Services/DisposeHelper.d.ts +15 -15
- package/dist/Services/DisposeHelper.js +40 -41
- package/dist/Services/IDisposeHelper.d.ts +12 -12
- package/dist/Services/IDisposeHelper.js +1 -1
- package/dist/Views/EmptyViewModel.d.ts +5 -5
- package/dist/Views/EmptyViewModel.js +14 -14
- package/dist/Views/IViewModel.d.ts +16 -16
- package/dist/Views/IViewModel.js +1 -1
- package/dist/Views/PersistentViewBase.d.ts +10 -10
- package/dist/Views/PersistentViewBase.js +21 -21
- package/dist/Views/ViewBase.d.ts +70 -70
- package/dist/Views/ViewBase.js +166 -155
- package/dist/Views/ViewComponentBase.d.ts +19 -13
- package/dist/Views/ViewComponentBase.js +24 -21
- package/dist/Views/ViewModelBase.d.ts +57 -56
- package/dist/Views/ViewModelBase.js +122 -118
- package/dist/Views/ViewState.d.ts +13 -13
- package/dist/Views/ViewState.js +9 -9
- package/dist/Views/index.d.ts +5 -5
- package/dist/Views/index.js +5 -5
- package/dist/index.d.ts +11 -10
- package/dist/index.js +10 -9
- package/package.json +18 -20
- package/styles/DatePicker.scss +2 -2
- package/styles/Forms.scss +5 -0
- package/styles/Validation.scss +0 -9
|
@@ -1,134 +1,138 @@
|
|
|
1
|
-
import { __assign, __decorate, __extends, __metadata } from "tslib";
|
|
2
|
-
import * as React from 'react';
|
|
3
|
-
import { BindPropsHelper } from '../PropTypes';
|
|
4
|
-
import { Utils } from '@singularsystems/neo-core';
|
|
5
|
-
import { observer } from 'mobx-react';
|
|
6
|
-
import { InputHelpers } from '../InputHelpers';
|
|
7
|
-
import { DropDownBase } from './DropDownBase';
|
|
8
|
-
import { FormContext } from '../FormContext';
|
|
9
|
-
var DropDown = /** @class */ (function (_super) {
|
|
10
|
-
__extends(DropDown, _super);
|
|
11
|
-
function DropDown(props) {
|
|
12
|
-
var _this = _super.call(this, props) || this;
|
|
13
|
-
_this.listIndexSymbol = Symbol("ValueIndex");
|
|
14
|
-
_this.onItemSelected = _this.onItemSelected.bind(_this);
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
var
|
|
21
|
-
var
|
|
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
|
-
var
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
this.
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
this.selectedItem
|
|
61
|
-
this.selectedItem[this.
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
var
|
|
84
|
-
var
|
|
85
|
-
var
|
|
86
|
-
domProps
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
displayInfo.
|
|
95
|
-
|
|
96
|
-
var
|
|
97
|
-
var
|
|
98
|
-
var
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
var
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
1
|
+
import { __assign, __decorate, __extends, __metadata } from "tslib";
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { BindPropsHelper } from '../PropTypes';
|
|
4
|
+
import { Model, Utils } from '@singularsystems/neo-core';
|
|
5
|
+
import { observer } from 'mobx-react';
|
|
6
|
+
import { InputHelpers } from '../InputHelpers';
|
|
7
|
+
import { DropDownBase } from './DropDownBase';
|
|
8
|
+
import { FormContext } from '../FormContext';
|
|
9
|
+
var DropDown = /** @class */ (function (_super) {
|
|
10
|
+
__extends(DropDown, _super);
|
|
11
|
+
function DropDown(props) {
|
|
12
|
+
var _this = _super.call(this, props) || this;
|
|
13
|
+
_this.listIndexSymbol = Symbol("ValueIndex");
|
|
14
|
+
_this.onItemSelected = _this.onItemSelected.bind(_this);
|
|
15
|
+
_this.fieldInfoContainer = Model.ModelFieldInfo.asModelFieldInfoContainer(_this.props.bind.attachedTo);
|
|
16
|
+
return _this;
|
|
17
|
+
}
|
|
18
|
+
Object.defineProperty(DropDown.prototype, "items", {
|
|
19
|
+
get: function () {
|
|
20
|
+
var _this = this;
|
|
21
|
+
var _a;
|
|
22
|
+
var items = this.getItems((_a = this.props.select.items) !== null && _a !== void 0 ? _a : this.props.select.itemSource);
|
|
23
|
+
if (items && items.length > 0) {
|
|
24
|
+
var item = items[0];
|
|
25
|
+
this.findMembers(item);
|
|
26
|
+
}
|
|
27
|
+
if (this.props.select.filterPredicate !== undefined) {
|
|
28
|
+
return items.filter(function (item) { return _this.props.bind.value === item[_this.valueMember] || _this.props.select.filterPredicate(item); });
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
return items;
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
enumerable: false,
|
|
35
|
+
configurable: true
|
|
36
|
+
});
|
|
37
|
+
DropDown.prototype.createLookupIndex = function (list) {
|
|
38
|
+
var _this = this;
|
|
39
|
+
list[this.listIndexSymbol] = {};
|
|
40
|
+
var index = list[this.listIndexSymbol];
|
|
41
|
+
list.forEach(function (item) { return index[item[_this.valueMember]] = item; });
|
|
42
|
+
};
|
|
43
|
+
DropDown.prototype.getSelectedOption = function (value) {
|
|
44
|
+
this.props.bind.propertyInfo.hasSortValue = true;
|
|
45
|
+
if (!this.selectedItem || this.selectedItem[this.valueMember] != value) {
|
|
46
|
+
var list = this.items;
|
|
47
|
+
var indexJustCreated = false;
|
|
48
|
+
if (!list[this.listIndexSymbol]) {
|
|
49
|
+
this.createLookupIndex(list);
|
|
50
|
+
indexJustCreated = true;
|
|
51
|
+
}
|
|
52
|
+
this.selectedItem = list[this.listIndexSymbol][value];
|
|
53
|
+
if (value && !this.selectedItem && !indexJustCreated) {
|
|
54
|
+
// Index may be out of date.
|
|
55
|
+
this.createLookupIndex(list);
|
|
56
|
+
this.selectedItem = list[this.listIndexSymbol][value];
|
|
57
|
+
}
|
|
58
|
+
if (!this.selectedItem) {
|
|
59
|
+
// create default item.
|
|
60
|
+
this.selectedItem = {};
|
|
61
|
+
this.selectedItem[this.displayMember] = "";
|
|
62
|
+
this.selectedItem[this.valueMember] = null;
|
|
63
|
+
}
|
|
64
|
+
this.setFieldInfo(this.props.bind, this.selectedItem[this.displayMember]);
|
|
65
|
+
}
|
|
66
|
+
return this.selectedItem;
|
|
67
|
+
};
|
|
68
|
+
DropDown.prototype.onItemSelected = function (e) {
|
|
69
|
+
this.selectedItem = null;
|
|
70
|
+
var boundItem = this.getSelectedOption(e.target.value);
|
|
71
|
+
if (boundItem && boundItem[this.valueMember] !== undefined) {
|
|
72
|
+
// Use the bound item to get the correct data type of the value member;
|
|
73
|
+
this.props.bind.value = boundItem[this.valueMember];
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
this.props.bind.value = e.target.value;
|
|
77
|
+
}
|
|
78
|
+
if (this.props.select.onItemSelected !== undefined) {
|
|
79
|
+
this.props.select.onItemSelected((boundItem[this.valueMember] === undefined ? undefined : boundItem));
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
DropDown.prototype.render = function () {
|
|
83
|
+
var _this = this;
|
|
84
|
+
var _a, _b, _c, _d, _e, _f;
|
|
85
|
+
var splitProps = BindPropsHelper.normaliseEditorProps(this, this.props);
|
|
86
|
+
var domProps = BindPropsHelper.autoSetDomProperties(splitProps, this.context);
|
|
87
|
+
domProps.className = Utils.joinWithSpaces(domProps.className, splitProps.isBootstrap ? "form-control" : "neo-forms-editor");
|
|
88
|
+
if (splitProps.select) {
|
|
89
|
+
if (splitProps.select.valueMember)
|
|
90
|
+
this.valueMember = splitProps.select.valueMember;
|
|
91
|
+
if (splitProps.select.displayMember)
|
|
92
|
+
this.displayMember = splitProps.select.displayMember;
|
|
93
|
+
}
|
|
94
|
+
var displayInfo = this.props.bind.validator.getDisplayState(this.context.validationDisplayMode);
|
|
95
|
+
displayInfo.applyToDom(domProps, !splitProps.inGroup);
|
|
96
|
+
var items = this.items;
|
|
97
|
+
var selectedItem = this.getSelectedOption(this.props.bind.value); // This sets the sort value to allow sorting of drop downs in grids.
|
|
98
|
+
var value = this.props.bind.value;
|
|
99
|
+
var addBlankItem = ((_b = (_a = splitProps.select) === null || _a === void 0 ? void 0 : _a.allowNulls) !== null && _b !== void 0 ? _b : this.props.bind.propertyInfo.allowNulls) || !value;
|
|
100
|
+
if (addBlankItem && items.find(function (item) { return item[_this.valueMember] === null || item[_this.valueMember] === ""; })) {
|
|
101
|
+
// If there is an item with a null value, don't add a blank drop down item.
|
|
102
|
+
addBlankItem = false;
|
|
103
|
+
}
|
|
104
|
+
var control;
|
|
105
|
+
if (this.isLoading) {
|
|
106
|
+
control = React.createElement("div", { className: "form-control form-control-loading" },
|
|
107
|
+
React.createElement("div", { className: "spinner-border" }));
|
|
108
|
+
}
|
|
109
|
+
else if ((_c = splitProps.select) === null || _c === void 0 ? void 0 : _c.renderAsText) {
|
|
110
|
+
control = React.createElement("span", null, selectedItem ? selectedItem[this.displayMember] : "");
|
|
111
|
+
}
|
|
112
|
+
else if (splitProps.editor.isReadOnly) {
|
|
113
|
+
control = React.createElement("input", __assign({ type: "text", value: selectedItem ? selectedItem[this.displayMember] : "", ref: splitProps.editor.inputElement }, domProps));
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
if (domProps.readOnly) {
|
|
117
|
+
domProps.disabled = true;
|
|
118
|
+
}
|
|
119
|
+
var valueIsBlank = value === undefined || value === null;
|
|
120
|
+
var nullText = (valueIsBlank || ((_d = splitProps.select) === null || _d === void 0 ? void 0 : _d.deSelectText) === undefined) ? (_e = splitProps.select) === null || _e === void 0 ? void 0 : _e.nullText : (_f = splitProps.select) === null || _f === void 0 ? void 0 : _f.deSelectText;
|
|
121
|
+
if (valueIsBlank) {
|
|
122
|
+
domProps.className = Utils.joinWithSpaces(domProps.className, "select-no-value");
|
|
123
|
+
}
|
|
124
|
+
control =
|
|
125
|
+
React.createElement("select", __assign({ value: valueIsBlank ? "" : value, onChange: this.onItemSelected, ref: splitProps.editor.inputElement }, domProps),
|
|
126
|
+
addBlankItem && React.createElement("option", { className: "option-default" }, nullText),
|
|
127
|
+
items.map(function (item) { return (React.createElement("option", { value: item[_this.valueMember], key: item[_this.valueMember] }, item[_this.displayMember])); }));
|
|
128
|
+
}
|
|
129
|
+
return (InputHelpers.surroundWithInputGroup(control, splitProps.editor));
|
|
130
|
+
};
|
|
131
|
+
DropDown.contextType = FormContext;
|
|
132
|
+
DropDown = __decorate([
|
|
133
|
+
observer,
|
|
134
|
+
__metadata("design:paramtypes", [Object])
|
|
135
|
+
], DropDown);
|
|
136
|
+
return DropDown;
|
|
137
|
+
}(DropDownBase));
|
|
138
|
+
export default DropDown;
|
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
import { Data, Model } from '@singularsystems/neo-core';
|
|
2
|
-
import ComponentBase from '../ComponentBase';
|
|
3
|
-
export
|
|
4
|
-
export declare abstract class DropDownBase<T, TProps> extends ComponentBase<TProps> {
|
|
5
|
-
protected valueMember: string;
|
|
6
|
-
protected displayMember: string;
|
|
7
|
-
protected findMembers(item: any): void;
|
|
8
|
-
protected isLoading: boolean;
|
|
9
|
-
protected dataSource: Data.IAsyncDataSource<T[]> | null;
|
|
10
|
-
protected cachedDataSource: Data.IDataCacheEntry | null;
|
|
11
|
-
protected
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
1
|
+
import { Data, Model } from '@singularsystems/neo-core';
|
|
2
|
+
import ComponentBase from '../ComponentBase';
|
|
3
|
+
export type ItemSource<T> = T[] | Promise<T[]> | Data.IAsyncDataSource<T[]> | Data.IArrayCacheEntry<T>;
|
|
4
|
+
export declare abstract class DropDownBase<T, TProps> extends ComponentBase<TProps> {
|
|
5
|
+
protected valueMember: string;
|
|
6
|
+
protected displayMember: string;
|
|
7
|
+
protected findMembers(item: any): void;
|
|
8
|
+
protected isLoading: boolean;
|
|
9
|
+
protected dataSource: Data.IAsyncDataSource<T[]> | null;
|
|
10
|
+
protected cachedDataSource: Data.IDataCacheEntry | null;
|
|
11
|
+
protected fieldInfoContainer: Model.IModelFieldInfoContainer | null;
|
|
12
|
+
protected getItems(itemSource: ItemSource<T>): T[];
|
|
13
|
+
afterRender(): Promise<void>;
|
|
14
|
+
private fieldDisplayInfo;
|
|
15
|
+
protected setFieldInfo(bindProperty: Model.IPropertyInstance, displayValue: string, readableName?: string): void;
|
|
16
|
+
}
|
|
@@ -1,108 +1,86 @@
|
|
|
1
|
-
import { __awaiter, __extends, __generator } from "tslib";
|
|
2
|
-
import { Data
|
|
3
|
-
import ComponentBase from '../ComponentBase';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
_this
|
|
9
|
-
_this.
|
|
10
|
-
_this.
|
|
11
|
-
_this.
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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
|
-
if (
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
this.fieldDisplayInfo = null;
|
|
88
|
-
if (bindProperty.attachedTo instanceof Model.CriteriaBase) {
|
|
89
|
-
fieldInfo = bindProperty.attachedTo.fieldInfo[bindProperty.propertyInfo.propertyName];
|
|
90
|
-
if (!fieldInfo) {
|
|
91
|
-
fieldInfo = new Model.ModelFieldInfo(bindProperty.propertyInfo.readableName, displayValue);
|
|
92
|
-
bindProperty.attachedTo.fieldInfo[bindProperty.propertyInfo.propertyName] = fieldInfo;
|
|
93
|
-
}
|
|
94
|
-
else {
|
|
95
|
-
fieldInfo.valueString = displayValue;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
return [2 /*return*/];
|
|
100
|
-
});
|
|
101
|
-
});
|
|
102
|
-
};
|
|
103
|
-
DropDownBase.prototype.setFieldInfo = function (bindProperty, displayValue) {
|
|
104
|
-
this.fieldDisplayInfo = { bindProperty: bindProperty, displayValue: displayValue };
|
|
105
|
-
};
|
|
106
|
-
return DropDownBase;
|
|
107
|
-
}(ComponentBase));
|
|
108
|
-
export { DropDownBase };
|
|
1
|
+
import { __awaiter, __extends, __generator } from "tslib";
|
|
2
|
+
import { Data } from '@singularsystems/neo-core';
|
|
3
|
+
import ComponentBase from '../ComponentBase';
|
|
4
|
+
import LookupHelper from './LookupHelper';
|
|
5
|
+
var DropDownBase = /** @class */ (function (_super) {
|
|
6
|
+
__extends(DropDownBase, _super);
|
|
7
|
+
function DropDownBase() {
|
|
8
|
+
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
9
|
+
_this.isLoading = false;
|
|
10
|
+
_this.dataSource = null;
|
|
11
|
+
_this.cachedDataSource = null;
|
|
12
|
+
_this.fieldInfoContainer = null;
|
|
13
|
+
_this.fieldDisplayInfo = null;
|
|
14
|
+
return _this;
|
|
15
|
+
}
|
|
16
|
+
DropDownBase.prototype.findMembers = function (item) {
|
|
17
|
+
var members = LookupHelper.findMembers(item, this.valueMember, this.displayMember);
|
|
18
|
+
this.valueMember = members.valueMember;
|
|
19
|
+
this.displayMember = members.displayMember;
|
|
20
|
+
};
|
|
21
|
+
DropDownBase.prototype.getItems = function (itemSource) {
|
|
22
|
+
var _a;
|
|
23
|
+
var items = [];
|
|
24
|
+
if (itemSource instanceof Array) {
|
|
25
|
+
items = itemSource;
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
if (itemSource instanceof Promise) {
|
|
29
|
+
if (((_a = this.dataSource) === null || _a === void 0 ? void 0 : _a.promise) !== itemSource) {
|
|
30
|
+
this.dataSource = new Data.CallbackDataSource(function () { return itemSource; }, []);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
else if (itemSource.get !== undefined) {
|
|
34
|
+
this.cachedDataSource = itemSource;
|
|
35
|
+
if (this.cachedDataSource.willLoad) {
|
|
36
|
+
this.isLoading = true;
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
this.dataSource = this.cachedDataSource.get();
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
else if (itemSource.fetchInitial !== undefined) {
|
|
43
|
+
this.dataSource = itemSource;
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
throw Error("Unknown drop down data source.");
|
|
47
|
+
}
|
|
48
|
+
if (this.dataSource) {
|
|
49
|
+
this.isLoading = this.dataSource.willLoad;
|
|
50
|
+
items = this.dataSource.data;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return items;
|
|
54
|
+
};
|
|
55
|
+
DropDownBase.prototype.afterRender = function () {
|
|
56
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
57
|
+
var _a, bindProperty, displayValue, readableName, fieldInfo;
|
|
58
|
+
return __generator(this, function (_b) {
|
|
59
|
+
if (this.cachedDataSource) {
|
|
60
|
+
this.dataSource = this.cachedDataSource.get();
|
|
61
|
+
}
|
|
62
|
+
else if (this.dataSource) {
|
|
63
|
+
this.dataSource.fetchInitial();
|
|
64
|
+
}
|
|
65
|
+
if (this.fieldDisplayInfo) {
|
|
66
|
+
_a = this.fieldDisplayInfo, bindProperty = _a.bindProperty, displayValue = _a.displayValue, readableName = _a.readableName;
|
|
67
|
+
this.fieldDisplayInfo = null;
|
|
68
|
+
if (this.fieldInfoContainer) {
|
|
69
|
+
fieldInfo = this.fieldInfoContainer.setModelFieldInfo(bindProperty.propertyInfo, displayValue);
|
|
70
|
+
if (readableName) {
|
|
71
|
+
fieldInfo.displayName = readableName;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return [2 /*return*/];
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
};
|
|
79
|
+
DropDownBase.prototype.setFieldInfo = function (bindProperty, displayValue, readableName) {
|
|
80
|
+
if (this.fieldInfoContainer) {
|
|
81
|
+
this.fieldDisplayInfo = { bindProperty: bindProperty, displayValue: displayValue, readableName: readableName };
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
return DropDownBase;
|
|
85
|
+
}(ComponentBase));
|
|
86
|
+
export { DropDownBase };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface ILookupMembers {
|
|
2
|
+
valueMember: string;
|
|
3
|
+
displayMember: string;
|
|
4
|
+
}
|
|
5
|
+
export default class LookupHelper {
|
|
6
|
+
/**
|
|
7
|
+
* Finds the value and display member of a class by convention.
|
|
8
|
+
* Also uses the displayMember attribute if defined on any of the properties.
|
|
9
|
+
* @param item An object instance
|
|
10
|
+
* @param booleanValuesAllowed True if boolean values are allowed in the value member.
|
|
11
|
+
*/
|
|
12
|
+
static findMembers(item: any, valueMember: string, displayMember: string, booleanValuesAllowed?: boolean): ILookupMembers;
|
|
13
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { EnumHelper } from "@singularsystems/neo-core";
|
|
2
|
+
var LookupHelper = /** @class */ (function () {
|
|
3
|
+
function LookupHelper() {
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Finds the value and display member of a class by convention.
|
|
7
|
+
* Also uses the displayMember attribute if defined on any of the properties.
|
|
8
|
+
* @param item An object instance
|
|
9
|
+
* @param booleanValuesAllowed True if boolean values are allowed in the value member.
|
|
10
|
+
*/
|
|
11
|
+
LookupHelper.findMembers = function (item, valueMember, displayMember, booleanValuesAllowed) {
|
|
12
|
+
if (booleanValuesAllowed === void 0) { booleanValuesAllowed = false; }
|
|
13
|
+
if (!displayMember || !valueMember) {
|
|
14
|
+
if (EnumHelper.isEnumItem(item)) {
|
|
15
|
+
valueMember = "id";
|
|
16
|
+
displayMember = "name";
|
|
17
|
+
}
|
|
18
|
+
if (!displayMember) {
|
|
19
|
+
var neoTypeInfo = item.constructor.neo;
|
|
20
|
+
if (neoTypeInfo && neoTypeInfo.displayMember) {
|
|
21
|
+
displayMember = neoTypeInfo.displayMember.propertyName;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
for (var propName in item) {
|
|
25
|
+
if (valueMember && displayMember)
|
|
26
|
+
break;
|
|
27
|
+
var value = item[propName];
|
|
28
|
+
if (value !== undefined && value !== null) {
|
|
29
|
+
if ((typeof (value) === "number" || (booleanValuesAllowed && typeof (value) === "boolean")) && !valueMember) {
|
|
30
|
+
valueMember = propName;
|
|
31
|
+
}
|
|
32
|
+
if (typeof (value) === "string" && !displayMember && !propName.toLowerCase().endsWith("id") && propName !== "entityIdentifier") {
|
|
33
|
+
displayMember = propName;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
if (!valueMember || !displayMember) {
|
|
38
|
+
console.error("Could not find value and display member. Try specifying them explicitly.", item);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return { valueMember: valueMember, displayMember: displayMember };
|
|
42
|
+
};
|
|
43
|
+
return LookupHelper;
|
|
44
|
+
}());
|
|
45
|
+
export default LookupHelper;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { Components } from '@singularsystems/neo-core';
|
|
2
|
-
export declare class ErrorHandler extends Components.ErrorHandler {
|
|
3
|
-
private errorList;
|
|
4
|
-
private hidingErrorList;
|
|
5
|
-
constructor(notifications: Components.INotificationHelper);
|
|
6
|
-
protected displayError(displayType: Components.ErrorDisplayType, error: any, errorDisplay: Components.IErrorDisplay): void;
|
|
7
|
-
protected displayModal(error: any, errorDisplay: Components.IErrorDisplay): void;
|
|
8
|
-
private getIcon;
|
|
9
|
-
}
|
|
1
|
+
import { Components } from '@singularsystems/neo-core';
|
|
2
|
+
export declare class ErrorHandler extends Components.ErrorHandler {
|
|
3
|
+
private errorList;
|
|
4
|
+
private hidingErrorList;
|
|
5
|
+
constructor(notifications: Components.INotificationHelper);
|
|
6
|
+
protected displayError(displayType: Components.ErrorDisplayType, error: any, errorDisplay: Components.IErrorDisplay): void;
|
|
7
|
+
protected displayModal(error: any, errorDisplay: Components.IErrorDisplay): void;
|
|
8
|
+
private getIcon;
|
|
9
|
+
}
|