@singularsystems/neo-react 1.0.0-beta.6 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/CHANGELOG.md +138 -0
  2. package/dist/Modules/Types.d.ts +4 -0
  3. package/dist/React/AutoRunner.js +5 -1
  4. package/dist/ReactComponents/Card.d.ts +1 -1
  5. package/dist/ReactComponents/Collapsable.d.ts +1 -1
  6. package/dist/ReactComponents/ColorPicker.d.ts +1 -1
  7. package/dist/ReactComponents/ContextMenu/ContextMenu.d.ts +1 -1
  8. package/dist/ReactComponents/ContextMenu/ContextMenuContainer.d.ts +1 -1
  9. package/dist/ReactComponents/ContextMenu/ContextMenuState.js +2 -1
  10. package/dist/ReactComponents/DatePicker.d.ts +1 -1
  11. package/dist/ReactComponents/DropDown/AutoCompleteDropDown.d.ts +1 -1
  12. package/dist/ReactComponents/DropDown/AutoCompleteDropDown.js +1 -2
  13. package/dist/ReactComponents/DropDown/DropDown.d.ts +1 -1
  14. package/dist/ReactComponents/DropDown/DropDown.js +11 -7
  15. package/dist/ReactComponents/DropDown/DropDownBase.d.ts +2 -2
  16. package/dist/ReactComponents/DropDown/LookupHelper.d.ts +4 -4
  17. package/dist/ReactComponents/ErrorHandler.js +2 -1
  18. package/dist/ReactComponents/FileManager/FileBasicInput.d.ts +1 -1
  19. package/dist/ReactComponents/FileManager/FileBasicInput.js +2 -1
  20. package/dist/ReactComponents/FileManager/FileContext.d.ts +1 -1
  21. package/dist/ReactComponents/FileManager/FileDropArea.d.ts +1 -1
  22. package/dist/ReactComponents/FileManager/FileInput.d.ts +1 -1
  23. package/dist/ReactComponents/FileManager/FileUploadButton.d.ts +1 -1
  24. package/dist/ReactComponents/FileManager/FileUploadProgress.d.ts +1 -1
  25. package/dist/ReactComponents/Form.d.ts +1 -1
  26. package/dist/ReactComponents/FormContext.d.ts +1 -1
  27. package/dist/ReactComponents/FormContext.js +2 -1
  28. package/dist/ReactComponents/FormGroup/FormGroup.d.ts +1 -1
  29. package/dist/ReactComponents/FormGroup/FormGroup.js +2 -1
  30. package/dist/ReactComponents/FormGroup/FormGroupFloating.d.ts +1 -1
  31. package/dist/ReactComponents/FormGroup/FormGroupInline.d.ts +1 -1
  32. package/dist/ReactComponents/Grid/ButtonColumn.d.ts +1 -1
  33. package/dist/ReactComponents/Grid/ButtonColumn.js +3 -2
  34. package/dist/ReactComponents/Grid/Column.d.ts +1 -1
  35. package/dist/ReactComponents/Grid/Grid.d.ts +2 -2
  36. package/dist/ReactComponents/Grid/Row.d.ts +2 -2
  37. package/dist/ReactComponents/Grid/Row.js +4 -2
  38. package/dist/ReactComponents/GridLayout.d.ts +1 -1
  39. package/dist/ReactComponents/Icons/FontAwesomeIconFactory.js +2 -1
  40. package/dist/ReactComponents/Icons/IconFactory.js +2 -1
  41. package/dist/ReactComponents/Icons/MaterialSymbolsFontFactory.js +1 -2
  42. package/dist/ReactComponents/Input.d.ts +1 -1
  43. package/dist/ReactComponents/InputHelpers.d.ts +1 -1
  44. package/dist/ReactComponents/Link.d.ts +1 -1
  45. package/dist/ReactComponents/Loader.d.ts +1 -1
  46. package/dist/ReactComponents/Modal/Modal.d.ts +1 -1
  47. package/dist/ReactComponents/Modal/ModalContainer.d.ts +1 -1
  48. package/dist/ReactComponents/Modal/ModalPortal.d.ts +1 -1
  49. package/dist/ReactComponents/Notifications/Alert.d.ts +1 -1
  50. package/dist/ReactComponents/Notifications/Toast.d.ts +1 -1
  51. package/dist/ReactComponents/Notifications/ToastContainer.d.ts +1 -1
  52. package/dist/ReactComponents/NumberInput.d.ts +1 -1
  53. package/dist/ReactComponents/Paging/BasicPagerControls.d.ts +1 -1
  54. package/dist/ReactComponents/Paging/PageSizeControl.d.ts +1 -1
  55. package/dist/ReactComponents/Paging/Pager.d.ts +1 -1
  56. package/dist/ReactComponents/ProgressBar.d.ts +1 -1
  57. package/dist/ReactComponents/PropTypes.d.ts +1 -1
  58. package/dist/ReactComponents/PropTypes.js +3 -1
  59. package/dist/ReactComponents/RadioList.d.ts +1 -1
  60. package/dist/ReactComponents/Slider.d.ts +1 -1
  61. package/dist/ReactComponents/Slider.js +1 -1
  62. package/dist/ReactComponents/Tabs/Tab.d.ts +3 -3
  63. package/dist/ReactComponents/Tabs/Tab.js +1 -2
  64. package/dist/ReactComponents/Tabs/TabContainer.d.ts +1 -1
  65. package/dist/ReactComponents/Tabs/TabContainer.js +1 -1
  66. package/dist/ReactComponents/Tabs/TabManager.d.ts +5 -4
  67. package/dist/ReactComponents/Tabs/TabManager.js +4 -2
  68. package/dist/ReactComponents/Tooltip.d.ts +7 -3
  69. package/dist/ReactComponents/TooltipHelper.d.ts +1 -0
  70. package/dist/ReactComponents/TooltipHelper.js +7 -3
  71. package/dist/ReactComponents/TooltipProvider.d.ts +1 -1
  72. package/dist/ReactComponents/ValidationSummary.d.ts +1 -1
  73. package/dist/Routing/MenuRoute.js +2 -0
  74. package/dist/Routing/PageLeaveHandler.js +2 -1
  75. package/dist/Routing/RoutingState.js +2 -1
  76. package/dist/Routing/ViewParameter.js +2 -1
  77. package/dist/Routing/ViewParameterList.d.ts +2 -1
  78. package/dist/Routing/ViewParameterList.js +5 -0
  79. package/dist/Services/DisposeHelper.js +2 -1
  80. package/dist/Views/ViewBase.js +1 -1
  81. package/dist/Views/ViewModelBase.d.ts +3 -1
  82. package/dist/Views/ViewModelBase.js +1 -5
  83. package/package.json +12 -10
  84. package/dist/React/Decorators.d.ts +0 -4
  85. package/dist/React/Decorators.js +0 -15
  86. package/dist/React/Utils.d.ts +0 -2
  87. package/dist/React/Utils.js +0 -15
package/CHANGELOG.md ADDED
@@ -0,0 +1,138 @@
1
+ # Version 1.x
2
+
3
+ Version 1 of neo-react upgrades react to version 18, and mobX to version 6. Both of these are major updates and will require you to make code changes to your project.
4
+
5
+ ## Testing
6
+
7
+ In addition to requiring code / syntax changes, both React 18, and Mobx 6 behave differently enough to their previous versions that runtime bugs may be introduced into your project. You should only update to this version when you and the client have enough time to test the project thoroughly. If you find any issues, please report them so this document can be updated.
8
+
9
+ The project changes required are detailed below:
10
+
11
+ ## Package changes:
12
+
13
+ * Update all neo packages to the latest 1.x version.
14
+ * Update the following packages to the latest version (these were the latest at time of writing):
15
+ * dependencies
16
+ * `"axios": "1.6.7"`,
17
+ * `"decimal.js-light": "2.5.1"`, - See below for alternative
18
+ * `"mobx": "6.11.0"`,
19
+ * `"mobx-react": "7.6.0"`,
20
+ * `"react": "18.2.0"`,
21
+ * `"react-dom": "18.2.0"`,
22
+ * `"react-router": "5.2.1"`, - Must be version 5.x
23
+ * `"react-router-dom": "5.3.0"`, - Must be version 5.x
24
+ * `"react-select": "5.7.3"`,
25
+
26
+ * devDependencies
27
+ * `"@types/react": "18.2.37"`,
28
+ * `"@types/react-dom": "18.2.15"`,
29
+ * `"@types/react-router": "5.1.17"`, - Must be version 5.x
30
+ * `"@types/react-router-dom": "5.3.3"`, - Must be version 5.x
31
+ * resolutions
32
+ * remove all entries
33
+ * delete yarn.lock, and run `yarn install`
34
+
35
+ ## Fix errors
36
+
37
+ If any of your components allow children, React 18 requires to you have an explicit `children` prop. Add this to the props definition of the component:
38
+
39
+ ```typescript
40
+ interface MyProps {
41
+ ...
42
+ children: React.ReactNode;
43
+ }
44
+
45
+ // or if the component has no other props:
46
+
47
+ MyComponent extends React.Component<{ children: React.ReactNode }> {
48
+ ...
49
+ }
50
+ ```
51
+
52
+ The React root api has also changed in version 18. Make the following changes to your `index.tsx` file:
53
+
54
+ Your existing code will look something like this:
55
+
56
+ ```typescript
57
+ import ReactDOM from 'react-dom';
58
+ ...
59
+ // React init
60
+ ReactDOM.render(
61
+ renderComponent,
62
+ document.getElementById('root') as HTMLElement
63
+ );
64
+ ```
65
+
66
+ Change the `ReactDOM` import, and the react init code:
67
+
68
+ ```typescript
69
+ import ReactDOM from 'react-dom/client';
70
+ ...
71
+ // React init
72
+ const root = ReactDOM.createRoot(document.getElementById('root') as HTMLElement);
73
+ root.render(renderComponent);
74
+ ```
75
+
76
+ ## Mobx
77
+
78
+ Before mobx 6, you could mark a property as being observable by adding an `@observable` decorator to the property. In mobx 6 this no longer works ([read more](https://mobx.js.org/migrating-from-4-or-5.html)).
79
+
80
+ For any class that extends `ModelBase`, `ValueObject`, `ViewModelBase` etc, this change is handled by neo, and you will not need to change any code.
81
+
82
+ For other classes, you will need to add initialisation code to the constructor.
83
+
84
+ * Search for `@observable` in your project. (In most projects this will be in the Sidebar and AppLayout components)
85
+ * In the constructor of the class that contains the property, add:
86
+
87
+ ```typescript
88
+ makeObservable(this);
89
+ ```
90
+
91
+ ### Decorators on neo models
92
+
93
+ If you try use mobx decorators on any models that extend `ModelBase`, `ValueObject` or `ViewModelBase`, you will receive this error:
94
+
95
+ > [MobX] makeObservable second arg must be nullish when using decorators. Mixing @decorator syntax with annotations is not supported.
96
+
97
+ This is most likely because you have used an `@action` decorator on a method. Neo now marks all methods as actions, so you can remove the `@action` decorator.
98
+
99
+ * Search for `@action` in your project. Remove the decorator **only** if the class extends `ModelBase` (and its decendents e.g. `ValueObject`) or `ViewModelBase`.
100
+
101
+ ### Array sorting
102
+
103
+ Mobx no longer allows you to call `sort` on an observable array. You first need to call `slice` to create a copy of the array. This change has been made in the neo `sortBy` method, but will cause unexpected behaviour if you relied on the list being sorted in-place, as this no longer happens.
104
+
105
+ * Search for `.sort` in your project. Change to use the neo `sortBy` method.
106
+ * Search for `.sortBy`. Ensure you use the array returned by this method, and not the array passed in.
107
+
108
+ ### Viewmodels
109
+
110
+ You may receive errors such as:
111
+
112
+ ```
113
+ Argument of type 'typeof MyVM' is not assignable to parameter of type 'VMConstructor<MyVM>'.
114
+ ```
115
+
116
+ The `registerViewModel` method on the `ViewModelBase` class now requires the view model passed to it to have a `taskRunner` as the first argument. This task runner instance must be passed to the base constructor.
117
+
118
+ ## Decimals
119
+
120
+ Neo no longer includes the `decimal.js-light` package by default. This is to allow for other decimal packages to be used. You will now need to manually register a decimal service in your app module.
121
+
122
+ The easiest would be to continue using `decimal.js-light`:
123
+
124
+ * Ensure your project references `decimal.js-light` directly.
125
+ * In your main app module, add the following code:
126
+ ```typescript
127
+ import Decimal from "decimal.js-light";
128
+ ...
129
+ container.bind(Types.Neo.Core.DecimalService).toConstantValue(new Numeric.DecimalService(Decimal, Decimal.ROUND_HALF_UP, Decimal.ROUND_DOWN));
130
+ ```
131
+
132
+ An alternative is to use `big.js`. This package is slightly smaller than the above, but has less features.
133
+
134
+ ```typescript
135
+ import Big from "big.js";
136
+ ...
137
+ container.bind(Types.Neo.Core.DecimalService).toConstantValue(new Numeric.DecimalService(Big, Big.roundHalfUp, Big.roundDown))
138
+ ```
@@ -41,6 +41,10 @@ declare const NeoReactTypes: {
41
41
  Localisation: {
42
42
  LocalisationService: AppServices.ServiceIdentifier<import("@singularsystems/neo-core/dist/Localisation").ILocalisationService>;
43
43
  };
44
+ Messaging: {
45
+ ConnectionManager: AppServices.ServiceIdentifier<import("@singularsystems/neo-core/dist/ConnectionManager").IConnectionManager>;
46
+ ServerMessageSubscriber: AppServices.ServiceIdentifier<import("@singularsystems/neo-core/dist/SignalR").IServerMessageSubscriber>;
47
+ };
44
48
  Security: {
45
49
  AuthenticationService: AppServices.ServiceIdentifier<import("@singularsystems/neo-core/dist/Security").IAuthenticationService>;
46
50
  AuthorisationService: AppServices.ServiceIdentifier<import("@singularsystems/neo-core/dist/Security").IAuthorisationService>;
@@ -2,7 +2,7 @@ import { __decorate } from "tslib";
2
2
  import { Misc, DebounceHelper } from '@singularsystems/neo-core';
3
3
  import { reaction } from 'mobx';
4
4
  import { injectable } from 'inversify';
5
- export var AutoRunnerFactory = /** @class */ (function () {
5
+ var AutoRunnerFactory = /** @class */ (function () {
6
6
  function AutoRunnerFactory() {
7
7
  }
8
8
  AutoRunnerFactory.prototype.create = function (model, callback, options) {
@@ -13,6 +13,7 @@ export var AutoRunnerFactory = /** @class */ (function () {
13
13
  ], AutoRunnerFactory);
14
14
  return AutoRunnerFactory;
15
15
  }());
16
+ export { AutoRunnerFactory };
16
17
  var AutoRunner = /** @class */ (function () {
17
18
  function AutoRunner(model, callback, options) {
18
19
  var _this = this;
@@ -82,15 +83,18 @@ var AutoRunner = /** @class */ (function () {
82
83
  this.propertyMap[key] = useDelay;
83
84
  }
84
85
  if (useDelay === delayed) {
86
+ //@ts-ignore
85
87
  void instance[propertyInfo.propertyName];
86
88
  }
87
89
  }
88
90
  else if (propertyInfo.relationType === Misc.RelationType.ValueObject ||
89
91
  (propertyInfo.relationType === Misc.RelationType.ChildObject && this.options.includeChildObjects)) {
92
+ //@ts-ignore
90
93
  this.accessAllValues(instance[propertyInfo.propertyName], delayed, trackedInstances, path + propertyInfo.propertyName + ".");
91
94
  }
92
95
  else if (propertyInfo.relationType === Misc.RelationType.ChildList && this.options.includeChildLists) {
93
96
  var index = 0;
97
+ //@ts-ignore
94
98
  for (var _c = 0, _d = instance[propertyInfo.propertyName]; _c < _d.length; _c++) {
95
99
  var child = _d[_c];
96
100
  this.accessAllValues(child, delayed, trackedInstances, "".concat(path).concat(propertyInfo.propertyName, "[").concat(index++, "]."));
@@ -19,6 +19,6 @@ interface ICardProps {
19
19
  export default class Card extends React.Component<ICardProps & React.HTMLProps<HTMLDivElement>> {
20
20
  private iconFactory;
21
21
  private expandState;
22
- render(): JSX.Element;
22
+ render(): React.JSX.Element;
23
23
  }
24
24
  export {};
@@ -16,7 +16,7 @@ interface ICollapsableProps extends React.HTMLProps<HTMLDivElement> {
16
16
  export default class Collapsable extends ComponentBase<ICollapsableProps> {
17
17
  protected containerRef: React.RefObject<HTMLDivElement>;
18
18
  protected animationHelper?: Components.CollapseAnimationHelper;
19
- render(): JSX.Element;
19
+ render(): React.JSX.Element;
20
20
  afterRender(isInitial: boolean): void;
21
21
  componentWillUnmount(): void;
22
22
  }
@@ -21,6 +21,6 @@ export default class ColorPicker extends React.Component<IColorPickerProps, ICol
21
21
  visibleToggle: () => void;
22
22
  cancel: () => void;
23
23
  accept: () => void;
24
- render(): JSX.Element;
24
+ render(): React.JSX.Element;
25
25
  }
26
26
  export {};
@@ -21,5 +21,5 @@ export default class ContextMenu extends ComponentBase<IContextMenuProps> {
21
21
  private hoverItem;
22
22
  mouseEnter(e: React.MouseEvent<HTMLDivElement>, item: Components.IMenuItem): void;
23
23
  afterRender(): void;
24
- render(): JSX.Element;
24
+ render(): React.JSX.Element;
25
25
  }
@@ -10,5 +10,5 @@ export default class ContextMenuContainer extends React.Component {
10
10
  componentWillUnmount(): void;
11
11
  onDocumentClick(e: MouseEvent): void;
12
12
  onMenuItemClick(): void;
13
- render(): JSX.Element | null;
13
+ render(): React.JSX.Element | null;
14
14
  }
@@ -1,6 +1,6 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
2
  import { makeObservable, observable } from "mobx";
3
- export var ContextMenuState = /** @class */ (function () {
3
+ var ContextMenuState = /** @class */ (function () {
4
4
  function ContextMenuState() {
5
5
  this.show = false;
6
6
  this.items = [];
@@ -21,3 +21,4 @@ export var ContextMenuState = /** @class */ (function () {
21
21
  ], ContextMenuState.prototype, "position", void 0);
22
22
  return ContextMenuState;
23
23
  }());
24
+ export { ContextMenuState };
@@ -16,5 +16,5 @@ export default class DatePicker extends ComponentBase<INeoDatePickerProps> {
16
16
  constructor(props: INeoDatePickerProps);
17
17
  componentDidMount(): void;
18
18
  componentWillUnmount(): void;
19
- render(): JSX.Element;
19
+ render(): React.JSX.Element;
20
20
  }
@@ -92,7 +92,7 @@ export default class AutoCompleteDropDown<T> extends DropDownBase<T, IAutoComple
92
92
  private onKeyPress;
93
93
  private mapTArrayToOptions;
94
94
  private onItemSelected;
95
- render(): JSX.Element;
95
+ render(): React.JSX.Element;
96
96
  private getOption;
97
97
  }
98
98
  export {};
@@ -11,9 +11,8 @@ import { NeoReactTypes } from '../../Modules/Types';
11
11
  var AutoCompleteDropDown = /** @class */ (function (_super) {
12
12
  __extends(AutoCompleteDropDown, _super);
13
13
  function AutoCompleteDropDown(props) {
14
- var _this = this;
15
14
  var _a;
16
- _this = _super.call(this, props) || this;
15
+ var _this = _super.call(this, props) || this;
17
16
  _this.asyncSelectImplementation = Misc.Globals.appService.get(NeoReactTypes.Components.AsyncSelect);
18
17
  _this.selectImplementation = Misc.Globals.appService.get(NeoReactTypes.Components.ReactSelect);
19
18
  _this.onKeyPress = _this.onKeyPress.bind(_this);
@@ -43,5 +43,5 @@ export default class DropDown<T> extends DropDownBase<T, IDropDownProps<T>> {
43
43
  private createLookupIndex;
44
44
  private getSelectedOption;
45
45
  private onItemSelected;
46
- render(): JSX.Element;
46
+ render(): React.JSX.Element | JSX.Element;
47
47
  }
@@ -36,9 +36,11 @@ var DropDown = /** @class */ (function (_super) {
36
36
  });
37
37
  DropDown.prototype.createLookupIndex = function (list) {
38
38
  var _this = this;
39
- list[this.listIndexSymbol] = {};
40
- var index = list[this.listIndexSymbol];
39
+ var index = {};
40
+ //@ts-ignore
41
+ list[this.listIndexSymbol] = index;
41
42
  list.forEach(function (item) { return index[item[_this.valueMember]] = item; });
43
+ return index;
42
44
  };
43
45
  DropDown.prototype.getSelectedOption = function (value) {
44
46
  if (!this.sortByValue) {
@@ -46,16 +48,18 @@ var DropDown = /** @class */ (function (_super) {
46
48
  }
47
49
  if (!this.selectedItem || this.selectedItem[this.valueMember] != value) {
48
50
  var list = this.items;
51
+ //@ts-ignore
52
+ var index = list[this.listIndexSymbol];
49
53
  var indexJustCreated = false;
50
- if (!list[this.listIndexSymbol]) {
51
- this.createLookupIndex(list);
54
+ if (!index) {
55
+ index = this.createLookupIndex(list);
52
56
  indexJustCreated = true;
53
57
  }
54
- this.selectedItem = list[this.listIndexSymbol][value];
58
+ this.selectedItem = index[value];
55
59
  if (value && !this.selectedItem && !indexJustCreated) {
56
60
  // Index may be out of date.
57
- this.createLookupIndex(list);
58
- this.selectedItem = list[this.listIndexSymbol][value];
61
+ index = this.createLookupIndex(list);
62
+ this.selectedItem = index[value];
59
63
  }
60
64
  if (!this.selectedItem) {
61
65
  // create default item.
@@ -2,8 +2,8 @@ import { Data, Model } from '@singularsystems/neo-core';
2
2
  import ComponentBase from '../ComponentBase';
3
3
  export type ItemSource<T> = T[] | Promise<T[]> | Data.IAsyncDataSource<T[]> | Data.IArrayCacheEntry<T>;
4
4
  export declare abstract class DropDownBase<T, TProps> extends ComponentBase<TProps> {
5
- protected valueMember: string;
6
- protected displayMember: string;
5
+ protected valueMember: keyof T;
6
+ protected displayMember: keyof T;
7
7
  protected findMembers(item: any): void;
8
8
  protected isLoading: boolean;
9
9
  protected dataSource: Data.IAsyncDataSource<T[]> | null;
@@ -1,6 +1,6 @@
1
- export interface ILookupMembers {
2
- valueMember: string;
3
- displayMember: string;
1
+ export interface ILookupMembers<T> {
2
+ valueMember: keyof T;
3
+ displayMember: keyof T;
4
4
  }
5
5
  export default class LookupHelper {
6
6
  /**
@@ -9,5 +9,5 @@ export default class LookupHelper {
9
9
  * @param item An object instance
10
10
  * @param booleanValuesAllowed True if boolean values are allowed in the value member.
11
11
  */
12
- static findMembers(item: any, valueMember: string, displayMember: string, booleanValuesAllowed?: boolean): ILookupMembers;
12
+ static findMembers<T>(item: any, valueMember: keyof T, displayMember: keyof T, booleanValuesAllowed?: boolean): ILookupMembers<T>;
13
13
  }
@@ -15,7 +15,7 @@ var ErrorGroup = /** @class */ (function () {
15
15
  ], ErrorGroup.prototype, "count", void 0);
16
16
  return ErrorGroup;
17
17
  }());
18
- export var ErrorHandler = /** @class */ (function (_super) {
18
+ var ErrorHandler = /** @class */ (function (_super) {
19
19
  __extends(ErrorHandler, _super);
20
20
  function ErrorHandler(notifications) {
21
21
  var _this = _super.call(this, notifications) || this;
@@ -90,3 +90,4 @@ export var ErrorHandler = /** @class */ (function (_super) {
90
90
  ], ErrorHandler.prototype, "hidingErrorList", void 0);
91
91
  return ErrorHandler;
92
92
  }(Components.ErrorHandler));
93
+ export { ErrorHandler };
@@ -15,6 +15,6 @@ export default class FileBasicInput extends React.Component<IFileInputProps> {
15
15
  private fileManager;
16
16
  constructor(props: IFileInputProps);
17
17
  private onFileSelected;
18
- render(): JSX.Element;
18
+ render(): React.JSX.Element;
19
19
  }
20
20
  export {};
@@ -14,9 +14,9 @@ var FileBasicInput = /** @class */ (function (_super) {
14
14
  return _this;
15
15
  }
16
16
  FileBasicInput.prototype.onFileSelected = function (e) {
17
- var _a, _b;
18
17
  return __awaiter(this, void 0, void 0, function () {
19
18
  var input;
19
+ var _a, _b;
20
20
  return __generator(this, function (_c) {
21
21
  switch (_c.label) {
22
22
  case 0:
@@ -55,6 +55,7 @@ var FileBasicInput = /** @class */ (function (_super) {
55
55
  }
56
56
  var bindProperty = this.fileManager.options.bind;
57
57
  if (bindProperty) {
58
+ // @ts-ignore
58
59
  native[BindPropsHelper.DataFieldName] = bindProperty.propertyInfo.propertyName;
59
60
  }
60
61
  var fileManagerProps = this.fileManager.getFileInputProps();
@@ -12,5 +12,5 @@ export interface IFileContextProps {
12
12
  }
13
13
  export declare const FileContext: React.Context<IFileContextProps>;
14
14
  export default class FileContextProvider extends React.Component<IFileComponentProps & (Partial<Components.IFileManagerOptions> | Partial<Components.IBoundFileManagerOptions>)> {
15
- render(): JSX.Element;
15
+ render(): React.JSX.Element;
16
16
  }
@@ -14,6 +14,6 @@ export default class FileDropArea extends React.Component<IFileDropAreaProps> {
14
14
  private dragEnter;
15
15
  private dragLeave;
16
16
  private drop;
17
- render(): JSX.Element;
17
+ render(): React.JSX.Element;
18
18
  }
19
19
  export {};
@@ -32,7 +32,7 @@ export default class FileInput extends ComponentBase<IFileEditorProps> {
32
32
  private fileManager;
33
33
  private gettingDownloadUrl;
34
34
  constructor(props: IFileEditorProps);
35
- render(): JSX.Element;
35
+ render(): React.JSX.Element;
36
36
  private getFileDisplayComponent;
37
37
  /** Renders when the file is busy uploading. */
38
38
  private renderBusy;
@@ -12,6 +12,6 @@ export default class FileUploadButton extends React.Component<IFileUploadButtonP
12
12
  private fileInputRef;
13
13
  constructor(props: IFileUploadButtonProps & React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>);
14
14
  private browseButtonClicked;
15
- render(): JSX.Element;
15
+ render(): React.JSX.Element;
16
16
  }
17
17
  export {};
@@ -10,5 +10,5 @@ export default class FileUploadProgress extends React.Component<IFileUploadProps
10
10
  static contextType: React.Context<import("./FileContext").IFileContextProps>;
11
11
  context: React.ContextType<typeof FileContext>;
12
12
  private fileManager;
13
- render(): false | JSX.Element;
13
+ render(): false | React.JSX.Element;
14
14
  }
@@ -14,6 +14,6 @@ export default class Form<T extends Model.IModelBase> extends React.Component<IF
14
14
  private onSubmit;
15
15
  private disposeReaction;
16
16
  componentWillUnmount(): void;
17
- render(): JSX.Element;
17
+ render(): React.JSX.Element;
18
18
  }
19
19
  export {};
@@ -29,5 +29,5 @@ export declare class FormContextProvider extends React.Component<Components.IFor
29
29
  }> {
30
30
  static contextType: React.Context<FormContextParams>;
31
31
  context: React.ContextType<typeof FormContext>;
32
- render(): JSX.Element;
32
+ render(): React.JSX.Element;
33
33
  }
@@ -24,7 +24,7 @@ export var FormContext = React.createContext(new FormContextParams());
24
24
  /**
25
25
  * Allows the attributes of multiple child form controls to be set at a parent level.
26
26
  */
27
- export var FormContextProvider = /** @class */ (function (_super) {
27
+ var FormContextProvider = /** @class */ (function (_super) {
28
28
  __extends(FormContextProvider, _super);
29
29
  function FormContextProvider() {
30
30
  return _super !== null && _super.apply(this, arguments) || this;
@@ -37,3 +37,4 @@ export var FormContextProvider = /** @class */ (function (_super) {
37
37
  FormContextProvider.contextType = FormContext;
38
38
  return FormContextProvider;
39
39
  }(React.Component));
40
+ export { FormContextProvider };
@@ -31,7 +31,7 @@ export declare class FormGroupBase<T extends IFormGroupProps<TData>, TData> exte
31
31
  context: React.ContextType<typeof FormContext>;
32
32
  protected getFormGroupClasses(domProps: React.HTMLProps<HTMLDivElement>, isCheckBox: boolean): IFormGroupClasses;
33
33
  protected hideLabelForCheckboxes(): boolean;
34
- render(): JSX.Element;
34
+ render(): React.JSX.Element;
35
35
  }
36
36
  export default class FormGroup<TData> extends FormGroupBase<IFormGroupProps<TData>, TData> {
37
37
  }
@@ -5,7 +5,7 @@ import { BindPropsHelper, CheckboxType } from '../PropTypes';
5
5
  import { Validation, Utils } from '@singularsystems/neo-core';
6
6
  import ComponentBase from '../ComponentBase';
7
7
  import { EditorParentType, FormContext } from '../FormContext';
8
- export var FormGroupBase = /** @class */ (function (_super) {
8
+ var FormGroupBase = /** @class */ (function (_super) {
9
9
  __extends(FormGroupBase, _super);
10
10
  function FormGroupBase() {
11
11
  return _super !== null && _super.apply(this, arguments) || this;
@@ -70,6 +70,7 @@ export var FormGroupBase = /** @class */ (function (_super) {
70
70
  FormGroupBase.contextType = FormContext;
71
71
  return FormGroupBase;
72
72
  }(ComponentBase));
73
+ export { FormGroupBase };
73
74
  var FormGroup = /** @class */ (function (_super) {
74
75
  __extends(FormGroup, _super);
75
76
  function FormGroup() {
@@ -15,5 +15,5 @@ export default class FloatingFormGroup<TData> extends ComponentBase<IEditorConta
15
15
  private onFocus;
16
16
  private onBlur;
17
17
  private labelClick;
18
- render(): JSX.Element;
18
+ render(): React.JSX.Element;
19
19
  }
@@ -6,6 +6,6 @@ export default class FormGroupInline<TData> extends FormGroupBase<IInlineFormGro
6
6
  private contextProps?;
7
7
  protected hideLabelForCheckboxes(): boolean;
8
8
  protected getFormGroupClasses(domProps: React.HTMLProps<HTMLDivElement>, isCheckBox: boolean): IFormGroupClasses;
9
- render(): JSX.Element;
9
+ render(): React.JSX.Element;
10
10
  }
11
11
  export {};
@@ -43,6 +43,6 @@ export declare class ButtonColumn extends ComponentBase<IButtonColumnProps> {
43
43
  private section;
44
44
  protected onFirstRender(): void;
45
45
  onDelete(): Promise<void>;
46
- render(): JSX.Element;
46
+ render(): React.JSX.Element;
47
47
  }
48
48
  export {};
@@ -5,7 +5,7 @@ import NeoButton from '../Button';
5
5
  import { Misc, Utils } from '@singularsystems/neo-core';
6
6
  import ComponentBase from '../ComponentBase';
7
7
  import { ColumnHelper } from './ColumnHelper';
8
- export var ButtonColumn = /** @class */ (function (_super) {
8
+ var ButtonColumn = /** @class */ (function (_super) {
9
9
  __extends(ButtonColumn, _super);
10
10
  function ButtonColumn(props) {
11
11
  var _this = _super.call(this, props) || this;
@@ -17,9 +17,9 @@ export var ButtonColumn = /** @class */ (function (_super) {
17
17
  this.item = this.context.currentItem;
18
18
  };
19
19
  ButtonColumn.prototype.onDelete = function () {
20
- var _a, _b;
21
20
  return __awaiter(this, void 0, void 0, function () {
22
21
  var item, mustRemove;
22
+ var _a, _b;
23
23
  return __generator(this, function (_c) {
24
24
  switch (_c.label) {
25
25
  case 0:
@@ -79,3 +79,4 @@ export var ButtonColumn = /** @class */ (function (_super) {
79
79
  ButtonColumn.contextType = GridContext;
80
80
  return ButtonColumn;
81
81
  }(ComponentBase));
82
+ export { ButtonColumn };
@@ -41,7 +41,7 @@ export default class Column<TData> extends ComponentBase<INeoColumnProps<TData>>
41
41
  private headerClick;
42
42
  refreshStateObserver(props: IBindableEditorProps): void;
43
43
  componentWillUnmount(): void;
44
- render(): JSX.Element;
44
+ render(): React.JSX.Element;
45
45
  private renderHeader;
46
46
  private renderBody;
47
47
  private renderFooter;
@@ -34,7 +34,7 @@ export interface IGridProps<T> extends Omit<React.HTMLProps<HTMLTableElement>, "
34
34
  * The unique key of the items being displayed. This is only necessary if the items dont have an entityIdentifier
35
35
  * property (non ModelBase items).
36
36
  */
37
- keyProperty?: string;
37
+ keyProperty?: keyof T;
38
38
  /**
39
39
  * Set to false if you don't want to allow sorting.
40
40
  */
@@ -91,6 +91,6 @@ export default class Grid<T> extends React.Component<IGridProps<T>> {
91
91
  constructor(props: IGridProps<T>);
92
92
  componentDidMount(): void;
93
93
  componentWillUnmount(): void;
94
- render(): JSX.Element;
94
+ render(): React.JSX.Element;
95
95
  private setInitialSort;
96
96
  }
@@ -32,7 +32,7 @@ export default class Row<TData> extends ComponentBase<IRowProps> {
32
32
  onFirstRender(): void;
33
33
  componentWillUnmount(): void;
34
34
  onExpandClick(): void;
35
- render(): false | JSX.Element;
35
+ render(): false | React.JSX.Element;
36
36
  }
37
37
  interface INeoChildRowProps extends React.HTMLProps<HTMLTableRowElement> {
38
38
  /**
@@ -63,7 +63,7 @@ export declare class ChildRow extends ComponentBase<INeoChildRowProps> {
63
63
  protected afterRender(isInitial: boolean): void;
64
64
  private afterTransition;
65
65
  private setHeight;
66
- render(): false | JSX.Element | undefined;
66
+ render(): false | React.JSX.Element | undefined;
67
67
  }
68
68
  interface INeoRowGroupProps {
69
69
  /**
@@ -89,7 +89,7 @@ var Row = /** @class */ (function (_super) {
89
89
  return Row;
90
90
  }(ComponentBase));
91
91
  export default Row;
92
- export var ChildRow = /** @class */ (function (_super) {
92
+ var ChildRow = /** @class */ (function (_super) {
93
93
  __extends(ChildRow, _super);
94
94
  function ChildRow(props) {
95
95
  var _this = _super.call(this, props) || this;
@@ -185,7 +185,8 @@ export var ChildRow = /** @class */ (function (_super) {
185
185
  ], ChildRow);
186
186
  return ChildRow;
187
187
  }(ComponentBase));
188
- export var RowGroup = /** @class */ (function (_super) {
188
+ export { ChildRow };
189
+ var RowGroup = /** @class */ (function (_super) {
189
190
  __extends(RowGroup, _super);
190
191
  function RowGroup() {
191
192
  return _super !== null && _super.apply(this, arguments) || this;
@@ -199,3 +200,4 @@ export var RowGroup = /** @class */ (function (_super) {
199
200
  RowGroup.contextType = GridContext;
200
201
  return RowGroup;
201
202
  }(React.Component));
203
+ export { RowGroup };
@@ -15,6 +15,6 @@ export declare class FormGroupLayoutContextParams {
15
15
  }
16
16
  export declare const FormGroupLayoutContext: React.Context<FormGroupLayoutContextParams>;
17
17
  export default class GridLayout extends React.Component<ILayoutGridProps & React.HTMLProps<HTMLDivElement>> {
18
- render(): JSX.Element;
18
+ render(): React.JSX.Element;
19
19
  }
20
20
  export {};