@singularsystems/neo-react 0.10.32 → 0.10.35

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 (188) hide show
  1. package/dist/Modules/NeoReactModule.js +0 -1
  2. package/dist/Modules/ReactSetup.js +0 -1
  3. package/dist/Modules/Types.js +0 -1
  4. package/dist/React/AutoRunner.js +0 -1
  5. package/dist/React/DataView.js +0 -1
  6. package/dist/React/Decorators.js +0 -1
  7. package/dist/React/ReactModelCreator.js +0 -2
  8. package/dist/React/Utils.js +0 -1
  9. package/dist/ReactComponents/Button.js +0 -1
  10. package/dist/ReactComponents/Card.js +0 -1
  11. package/dist/ReactComponents/Collapsable.js +0 -1
  12. package/dist/ReactComponents/CollapsableBase.js +0 -1
  13. package/dist/ReactComponents/ColorPicker.js +0 -1
  14. package/dist/ReactComponents/ComponentBase.js +0 -1
  15. package/dist/ReactComponents/ContextMenu/ContextMenu.js +0 -1
  16. package/dist/ReactComponents/ContextMenu/ContextMenuContainer.js +0 -1
  17. package/dist/ReactComponents/ContextMenu/ContextMenuState.js +0 -1
  18. package/dist/ReactComponents/DatePicker.js +0 -1
  19. package/dist/ReactComponents/DropDown/AutoCompleteDropDown.js +0 -1
  20. package/dist/ReactComponents/DropDown/DropDown.js +0 -1
  21. package/dist/ReactComponents/DropDown/DropDownBase.js +0 -1
  22. package/dist/ReactComponents/ErrorHandler.js +0 -1
  23. package/dist/ReactComponents/FileManager/FileBasicInput.js +0 -1
  24. package/dist/ReactComponents/FileManager/FileContext.js +0 -1
  25. package/dist/ReactComponents/FileManager/FileDropArea.js +0 -1
  26. package/dist/ReactComponents/FileManager/FileInput.js +0 -1
  27. package/dist/ReactComponents/FileManager/FileUploadButton.js +0 -1
  28. package/dist/ReactComponents/FileManager/FileUploadProgress.js +0 -1
  29. package/dist/ReactComponents/Form.js +0 -1
  30. package/dist/ReactComponents/FormContext.js +0 -1
  31. package/dist/ReactComponents/FormGroup/FormGroup.js +0 -1
  32. package/dist/ReactComponents/FormGroup/FormGroupFloating.js +0 -1
  33. package/dist/ReactComponents/FormGroup/FormGroupInline.js +0 -1
  34. package/dist/ReactComponents/Grid/ButtonColumn.js +0 -1
  35. package/dist/ReactComponents/Grid/Column.js +0 -1
  36. package/dist/ReactComponents/Grid/ColumnHelper.js +0 -1
  37. package/dist/ReactComponents/Grid/Grid.d.ts +2 -0
  38. package/dist/ReactComponents/Grid/Grid.js +3 -3
  39. package/dist/ReactComponents/Grid/Row.js +0 -1
  40. package/dist/ReactComponents/Grid/_Exports.js +0 -1
  41. package/dist/ReactComponents/GridLayout.js +0 -1
  42. package/dist/ReactComponents/Input.js +0 -1
  43. package/dist/ReactComponents/InputHelpers.js +0 -1
  44. package/dist/ReactComponents/Link.d.ts +13 -0
  45. package/dist/ReactComponents/Link.js +28 -0
  46. package/dist/ReactComponents/Loader.js +0 -1
  47. package/dist/ReactComponents/Modal/Modal.js +0 -1
  48. package/dist/ReactComponents/Modal/ModalContainer.js +0 -1
  49. package/dist/ReactComponents/Modal/ModalPortal.js +0 -1
  50. package/dist/ReactComponents/Notifications/Alert.js +0 -1
  51. package/dist/ReactComponents/Notifications/Toast.js +0 -1
  52. package/dist/ReactComponents/Notifications/ToastContainer.js +0 -1
  53. package/dist/ReactComponents/NumberInput.d.ts +3 -1
  54. package/dist/ReactComponents/NumberInput.js +75 -41
  55. package/dist/ReactComponents/Paging/BasicPagerControls.js +0 -1
  56. package/dist/ReactComponents/Paging/PageSizeControl.js +0 -1
  57. package/dist/ReactComponents/Paging/Pager.js +0 -1
  58. package/dist/ReactComponents/ProgressBar.js +0 -1
  59. package/dist/ReactComponents/PropTypes.js +3 -3
  60. package/dist/ReactComponents/RadioList.js +0 -1
  61. package/dist/ReactComponents/ReactHelpers.js +0 -1
  62. package/dist/ReactComponents/Slider.js +0 -1
  63. package/dist/ReactComponents/StateObserver.js +0 -1
  64. package/dist/ReactComponents/Tabs/Tab.js +0 -1
  65. package/dist/ReactComponents/Tabs/TabContainer.js +0 -1
  66. package/dist/ReactComponents/Tabs/TabManager.js +0 -1
  67. package/dist/ReactComponents/Tooltip.js +0 -1
  68. package/dist/ReactComponents/TooltipHelper.js +0 -1
  69. package/dist/ReactComponents/TooltipProvider.js +0 -1
  70. package/dist/ReactComponents/ValidationSummary.js +0 -1
  71. package/dist/ReactComponents/_Exports.d.ts +2 -1
  72. package/dist/ReactComponents/_Exports.js +2 -2
  73. package/dist/ReactComponents/_Managers.js +0 -1
  74. package/dist/Routing/BreadCrumbItem.js +0 -1
  75. package/dist/Routing/IRouteChangedProps.js +0 -1
  76. package/dist/Routing/IRouteParameter.js +0 -1
  77. package/dist/Routing/MenuRoute.js +0 -1
  78. package/dist/Routing/NavigationHelper.js +0 -1
  79. package/dist/Routing/PageLeaveHandler.js +0 -1
  80. package/dist/Routing/RouteProvider.js +0 -1
  81. package/dist/Routing/RouteView.js +0 -1
  82. package/dist/Routing/RoutingState.js +0 -1
  83. package/dist/Routing/ViewParameter.js +0 -1
  84. package/dist/Routing/ViewParameterList.js +0 -1
  85. package/dist/Routing/index.js +0 -1
  86. package/dist/Services/DisposeHelper.js +0 -1
  87. package/dist/Services/IDisposeHelper.js +0 -1
  88. package/dist/Views/EmptyViewModel.js +0 -1
  89. package/dist/Views/IViewModel.js +0 -1
  90. package/dist/Views/PersistentViewBase.js +0 -1
  91. package/dist/Views/ViewBase.js +0 -1
  92. package/dist/Views/ViewComponentBase.js +0 -1
  93. package/dist/Views/ViewModelBase.js +0 -1
  94. package/dist/Views/ViewState.js +0 -1
  95. package/dist/Views/index.js +0 -1
  96. package/dist/index.js +0 -1
  97. package/package.json +6 -5
  98. package/dist/Modules/NeoReactModule.js.map +0 -1
  99. package/dist/Modules/ReactSetup.js.map +0 -1
  100. package/dist/Modules/Types.js.map +0 -1
  101. package/dist/React/AutoRunner.js.map +0 -1
  102. package/dist/React/DataView.js.map +0 -1
  103. package/dist/React/Decorators.js.map +0 -1
  104. package/dist/React/ReactModelCreator.js.map +0 -1
  105. package/dist/React/Utils.js.map +0 -1
  106. package/dist/ReactComponents/Button.js.map +0 -1
  107. package/dist/ReactComponents/Card.js.map +0 -1
  108. package/dist/ReactComponents/Collapsable.js.map +0 -1
  109. package/dist/ReactComponents/CollapsableBase.js.map +0 -1
  110. package/dist/ReactComponents/ColorPicker.js.map +0 -1
  111. package/dist/ReactComponents/ComponentBase.js.map +0 -1
  112. package/dist/ReactComponents/ContextMenu/ContextMenu.js.map +0 -1
  113. package/dist/ReactComponents/ContextMenu/ContextMenuContainer.js.map +0 -1
  114. package/dist/ReactComponents/ContextMenu/ContextMenuState.js.map +0 -1
  115. package/dist/ReactComponents/DatePicker.js.map +0 -1
  116. package/dist/ReactComponents/DropDown/AutoCompleteDropDown.js.map +0 -1
  117. package/dist/ReactComponents/DropDown/DropDown.js.map +0 -1
  118. package/dist/ReactComponents/DropDown/DropDownBase.js.map +0 -1
  119. package/dist/ReactComponents/ErrorHandler.js.map +0 -1
  120. package/dist/ReactComponents/FileManager/FileBasicInput.js.map +0 -1
  121. package/dist/ReactComponents/FileManager/FileContext.js.map +0 -1
  122. package/dist/ReactComponents/FileManager/FileDropArea.js.map +0 -1
  123. package/dist/ReactComponents/FileManager/FileInput.js.map +0 -1
  124. package/dist/ReactComponents/FileManager/FileUploadButton.js.map +0 -1
  125. package/dist/ReactComponents/FileManager/FileUploadProgress.js.map +0 -1
  126. package/dist/ReactComponents/Form.js.map +0 -1
  127. package/dist/ReactComponents/FormContext.js.map +0 -1
  128. package/dist/ReactComponents/FormGroup/FormGroup.js.map +0 -1
  129. package/dist/ReactComponents/FormGroup/FormGroupFloating.js.map +0 -1
  130. package/dist/ReactComponents/FormGroup/FormGroupInline.js.map +0 -1
  131. package/dist/ReactComponents/Grid/ButtonColumn.js.map +0 -1
  132. package/dist/ReactComponents/Grid/Column.js.map +0 -1
  133. package/dist/ReactComponents/Grid/ColumnHelper.js.map +0 -1
  134. package/dist/ReactComponents/Grid/Grid.js.map +0 -1
  135. package/dist/ReactComponents/Grid/Row.js.map +0 -1
  136. package/dist/ReactComponents/Grid/_Exports.js.map +0 -1
  137. package/dist/ReactComponents/GridLayout.js.map +0 -1
  138. package/dist/ReactComponents/Input.js.map +0 -1
  139. package/dist/ReactComponents/InputHelpers.js.map +0 -1
  140. package/dist/ReactComponents/Loader.js.map +0 -1
  141. package/dist/ReactComponents/Modal/Modal.js.map +0 -1
  142. package/dist/ReactComponents/Modal/ModalContainer.js.map +0 -1
  143. package/dist/ReactComponents/Modal/ModalPortal.js.map +0 -1
  144. package/dist/ReactComponents/Notifications/Alert.js.map +0 -1
  145. package/dist/ReactComponents/Notifications/Toast.js.map +0 -1
  146. package/dist/ReactComponents/Notifications/ToastContainer.js.map +0 -1
  147. package/dist/ReactComponents/NumberInput.js.map +0 -1
  148. package/dist/ReactComponents/Paging/BasicPagerControls.js.map +0 -1
  149. package/dist/ReactComponents/Paging/PageSizeControl.js.map +0 -1
  150. package/dist/ReactComponents/Paging/Pager.js.map +0 -1
  151. package/dist/ReactComponents/ProgressBar.js.map +0 -1
  152. package/dist/ReactComponents/PropTypes.js.map +0 -1
  153. package/dist/ReactComponents/RadioList.js.map +0 -1
  154. package/dist/ReactComponents/ReactHelpers.js.map +0 -1
  155. package/dist/ReactComponents/Slider.js.map +0 -1
  156. package/dist/ReactComponents/StateObserver.js.map +0 -1
  157. package/dist/ReactComponents/Tabs/Tab.js.map +0 -1
  158. package/dist/ReactComponents/Tabs/TabContainer.js.map +0 -1
  159. package/dist/ReactComponents/Tabs/TabManager.js.map +0 -1
  160. package/dist/ReactComponents/Tooltip.js.map +0 -1
  161. package/dist/ReactComponents/TooltipHelper.js.map +0 -1
  162. package/dist/ReactComponents/TooltipProvider.js.map +0 -1
  163. package/dist/ReactComponents/ValidationSummary.js.map +0 -1
  164. package/dist/ReactComponents/_Exports.js.map +0 -1
  165. package/dist/ReactComponents/_Managers.js.map +0 -1
  166. package/dist/Routing/BreadCrumbItem.js.map +0 -1
  167. package/dist/Routing/IRouteChangedProps.js.map +0 -1
  168. package/dist/Routing/IRouteParameter.js.map +0 -1
  169. package/dist/Routing/MenuRoute.js.map +0 -1
  170. package/dist/Routing/NavigationHelper.js.map +0 -1
  171. package/dist/Routing/PageLeaveHandler.js.map +0 -1
  172. package/dist/Routing/RouteProvider.js.map +0 -1
  173. package/dist/Routing/RouteView.js.map +0 -1
  174. package/dist/Routing/RoutingState.js.map +0 -1
  175. package/dist/Routing/ViewParameter.js.map +0 -1
  176. package/dist/Routing/ViewParameterList.js.map +0 -1
  177. package/dist/Routing/index.js.map +0 -1
  178. package/dist/Services/DisposeHelper.js.map +0 -1
  179. package/dist/Services/IDisposeHelper.js.map +0 -1
  180. package/dist/Views/EmptyViewModel.js.map +0 -1
  181. package/dist/Views/IViewModel.js.map +0 -1
  182. package/dist/Views/PersistentViewBase.js.map +0 -1
  183. package/dist/Views/ViewBase.js.map +0 -1
  184. package/dist/Views/ViewComponentBase.js.map +0 -1
  185. package/dist/Views/ViewModelBase.js.map +0 -1
  186. package/dist/Views/ViewState.js.map +0 -1
  187. package/dist/Views/index.js.map +0 -1
  188. package/dist/index.js.map +0 -1
@@ -22,4 +22,3 @@ var neoReactModule = new AppServices.Module("neo-react", function (container) {
22
22
  runReactSetup(container);
23
23
  });
24
24
  export default neoReactModule;
25
- //# sourceMappingURL=NeoReactModule.js.map
@@ -26,4 +26,3 @@ export function runReactSetup(container) {
26
26
  container.get(AppServices.NeoTypes.Routing.PageLeaveHandler).onWindowUnload(ViewBase.currentView, e);
27
27
  });
28
28
  }
29
- //# sourceMappingURL=ReactSetup.js.map
@@ -10,4 +10,3 @@ var NeoReactTypes = __assign(__assign({}, AppServices.NeoTypes), { Components: {
10
10
  DisposeHelper: new AppServices.ServiceIdentifier("NeoReact.DisposeHelper")
11
11
  } });
12
12
  export { NeoReactTypes };
13
- //# sourceMappingURL=Types.js.map
@@ -74,4 +74,3 @@ var AutoRunner = /** @class */ (function () {
74
74
  };
75
75
  return AutoRunner;
76
76
  }());
77
- //# sourceMappingURL=AutoRunner.js.map
@@ -11,4 +11,3 @@ var DataViewContextParams = /** @class */ (function () {
11
11
  }());
12
12
  export { DataViewContextParams };
13
13
  export var DataViewContext = React.createContext(new DataViewContextParams());
14
- //# sourceMappingURL=DataView.js.map
@@ -13,4 +13,3 @@ export function observableList(type, propertyKey) {
13
13
  }
14
14
  };
15
15
  }
16
- //# sourceMappingURL=Decorators.js.map
@@ -89,7 +89,6 @@ var ReactModelCreator = /** @class */ (function (_super) {
89
89
  if (typeof onChange.newValue === "string") {
90
90
  throw "Error: tried to assign a string to a date property.";
91
91
  }
92
- propertyInstance.sortValue = onChange.newValue ? onChange.newValue.getTime() : 0;
93
92
  }
94
93
  }
95
94
  observable.previousValue = observable.value;
@@ -122,4 +121,3 @@ var ReactModelCreator = /** @class */ (function (_super) {
122
121
  return ReactModelCreator;
123
122
  }(ModelCreatorBase));
124
123
  export { ReactModelCreator };
125
- //# sourceMappingURL=ReactModelCreator.js.map
@@ -13,4 +13,3 @@ export function createObservableList(target, propertyKey, list) {
13
13
  throw "observableList can only be defined on arrays.";
14
14
  }
15
15
  }
16
- //# sourceMappingURL=Utils.js.map
@@ -122,4 +122,3 @@ var Button = /** @class */ (function (_super) {
122
122
  return Button;
123
123
  }(ComponentBase));
124
124
  export default Button;
125
- //# sourceMappingURL=Button.js.map
@@ -52,4 +52,3 @@ var Card = /** @class */ (function (_super) {
52
52
  return Card;
53
53
  }(React.Component));
54
54
  export default Card;
55
- //# sourceMappingURL=Card.js.map
@@ -36,4 +36,3 @@ var Collapsable = /** @class */ (function (_super) {
36
36
  return Collapsable;
37
37
  }(ComponentBase));
38
38
  export default Collapsable;
39
- //# sourceMappingURL=Collapsable.js.map
@@ -40,4 +40,3 @@ var CollapsableBase = /** @class */ (function (_super) {
40
40
  return CollapsableBase;
41
41
  }(ComponentBase));
42
42
  export default CollapsableBase;
43
- //# sourceMappingURL=CollapsableBase.js.map
@@ -65,4 +65,3 @@ var ColorPicker = /** @class */ (function (_super) {
65
65
  return ColorPicker;
66
66
  }(React.Component));
67
67
  export default ColorPicker;
68
- //# sourceMappingURL=ColorPicker.js.map
@@ -31,4 +31,3 @@ var ComponentBase = /** @class */ (function (_super) {
31
31
  return ComponentBase;
32
32
  }(React.Component));
33
33
  export default ComponentBase;
34
- //# sourceMappingURL=ComponentBase.js.map
@@ -86,4 +86,3 @@ var ContextMenu = /** @class */ (function (_super) {
86
86
  return ContextMenu;
87
87
  }(ComponentBase));
88
88
  export default ContextMenu;
89
- //# sourceMappingURL=ContextMenu.js.map
@@ -46,4 +46,3 @@ var ContextMenuContainer = /** @class */ (function (_super) {
46
46
  return ContextMenuContainer;
47
47
  }(React.Component));
48
48
  export default ContextMenuContainer;
49
- //# sourceMappingURL=ContextMenuContainer.js.map
@@ -21,4 +21,3 @@ var ContextMenuState = /** @class */ (function () {
21
21
  return ContextMenuState;
22
22
  }());
23
23
  export { ContextMenuState };
24
- //# sourceMappingURL=ContextMenuState.js.map
@@ -51,4 +51,3 @@ var DatePicker = /** @class */ (function (_super) {
51
51
  return DatePicker;
52
52
  }(ComponentBase));
53
53
  export default DatePicker;
54
- //# sourceMappingURL=DatePicker.js.map
@@ -173,4 +173,3 @@ var AutoCompleteDropDown = /** @class */ (function (_super) {
173
173
  return AutoCompleteDropDown;
174
174
  }(DropDownBase));
175
175
  export default AutoCompleteDropDown;
176
- //# sourceMappingURL=AutoCompleteDropDown.js.map
@@ -131,4 +131,3 @@ var DropDown = /** @class */ (function (_super) {
131
131
  return DropDown;
132
132
  }(DropDownBase));
133
133
  export default DropDown;
134
- //# sourceMappingURL=DropDown.js.map
@@ -102,4 +102,3 @@ var DropDownBase = /** @class */ (function (_super) {
102
102
  return DropDownBase;
103
103
  }(ComponentBase));
104
104
  export { DropDownBase };
105
- //# sourceMappingURL=DropDownBase.js.map
@@ -89,4 +89,3 @@ var ErrorHandler = /** @class */ (function (_super) {
89
89
  return ErrorHandler;
90
90
  }(Components.ErrorHandler));
91
91
  export { ErrorHandler };
92
- //# sourceMappingURL=ErrorHandler.js.map
@@ -47,4 +47,3 @@ var FileBasicInput = /** @class */ (function (_super) {
47
47
  return FileBasicInput;
48
48
  }(React.Component));
49
49
  export default FileBasicInput;
50
- //# sourceMappingURL=FileBasicInput.js.map
@@ -22,4 +22,3 @@ var FileContextProvider = /** @class */ (function (_super) {
22
22
  return FileContextProvider;
23
23
  }(React.Component));
24
24
  export default FileContextProvider;
25
- //# sourceMappingURL=FileContext.js.map
@@ -62,4 +62,3 @@ var FileDropArea = /** @class */ (function (_super) {
62
62
  return FileDropArea;
63
63
  }(React.Component));
64
64
  export default FileDropArea;
65
- //# sourceMappingURL=FileDropArea.js.map
@@ -187,4 +187,3 @@ var FileInput = /** @class */ (function (_super) {
187
187
  return FileInput;
188
188
  }(ComponentBase));
189
189
  export default FileInput;
190
- //# sourceMappingURL=FileInput.js.map
@@ -44,4 +44,3 @@ var FileUploadButton = /** @class */ (function (_super) {
44
44
  return FileUploadButton;
45
45
  }(React.Component));
46
46
  export default FileUploadButton;
47
- //# sourceMappingURL=FileUploadButton.js.map
@@ -33,4 +33,3 @@ var FileUploadProgress = /** @class */ (function (_super) {
33
33
  return FileUploadProgress;
34
34
  }(React.Component));
35
35
  export default FileUploadProgress;
36
- //# sourceMappingURL=FileUploadProgress.js.map
@@ -88,4 +88,3 @@ var Form = /** @class */ (function (_super) {
88
88
  return Form;
89
89
  }(React.Component));
90
90
  export default Form;
91
- //# sourceMappingURL=Form.js.map
@@ -38,4 +38,3 @@ var FormContextProvider = /** @class */ (function (_super) {
38
38
  return FormContextProvider;
39
39
  }(React.Component));
40
40
  export { FormContextProvider };
41
- //# sourceMappingURL=FormContext.js.map
@@ -82,4 +82,3 @@ var FormGroup = /** @class */ (function (_super) {
82
82
  return FormGroup;
83
83
  }(FormGroupBase));
84
84
  export default FormGroup;
85
- //# sourceMappingURL=FormGroup.js.map
@@ -95,4 +95,3 @@ var FloatingFormGroup = /** @class */ (function (_super) {
95
95
  return FloatingFormGroup;
96
96
  }(ComponentBase));
97
97
  export default FloatingFormGroup;
98
- //# sourceMappingURL=FormGroupFloating.js.map
@@ -41,4 +41,3 @@ var FormGroupInline = /** @class */ (function (_super) {
41
41
  return FormGroupInline;
42
42
  }(FormGroupBase));
43
43
  export default FormGroupInline;
44
- //# sourceMappingURL=FormGroupInline.js.map
@@ -59,4 +59,3 @@ var ButtonColumn = /** @class */ (function (_super) {
59
59
  return ButtonColumn;
60
60
  }(ComponentBase));
61
61
  export { ButtonColumn };
62
- //# sourceMappingURL=ButtonColumn.js.map
@@ -204,4 +204,3 @@ var Column = /** @class */ (function (_super) {
204
204
  return Column;
205
205
  }(ComponentBase));
206
206
  export default Column;
207
- //# sourceMappingURL=Column.js.map
@@ -17,4 +17,3 @@ var ColumnHelper = /** @class */ (function () {
17
17
  return ColumnHelper;
18
18
  }());
19
19
  export { ColumnHelper };
20
- //# sourceMappingURL=ColumnHelper.js.map
@@ -65,6 +65,8 @@ export interface IGridProps<T> extends React.HTMLProps<HTMLTableElement> {
65
65
  showHover?: boolean;
66
66
  /** When specified, the table size will be reduced (by reducing the padding sizes in each cell by half). */
67
67
  isSmallTable?: boolean;
68
+ /** Additional footer row(s) to display below the main footer row. */
69
+ footerContent?: (data: T[]) => React.ReactNode;
68
70
  }
69
71
  export default class Grid<T> extends React.Component<IGridProps<T>> {
70
72
  static contextType: React.Context<import("../../React/DataView").DataViewContextParams<unknown>>;
@@ -32,7 +32,7 @@ var Grid = /** @class */ (function (_super) {
32
32
  }
33
33
  Grid.prototype.render = function () {
34
34
  var _this = this;
35
- var _a = this.props, items = _a.items, showAddButton = _a.showAddButton, addButton = _a.addButton, filterPredicate = _a.filterPredicate, keyProperty = _a.keyProperty, allowSort = _a.allowSort, expandAll = _a.expandAll, collapseAll = _a.collapseAll, initialSort = _a.initialSort, initialSortAscending = _a.initialSortAscending, isBordered = _a.isBordered, isStriped = _a.isStriped, isBorderless = _a.isBorderless, showHover = _a.showHover, isSmallTable = _a.isSmallTable, domProps = __rest(_a, ["items", "showAddButton", "addButton", "filterPredicate", "keyProperty", "allowSort", "expandAll", "collapseAll", "initialSort", "initialSortAscending", "isBordered", "isStriped", "isBorderless", "showHover", "isSmallTable"]);
35
+ var _a = this.props, items = _a.items, showAddButton = _a.showAddButton, addButton = _a.addButton, filterPredicate = _a.filterPredicate, keyProperty = _a.keyProperty, allowSort = _a.allowSort, expandAll = _a.expandAll, collapseAll = _a.collapseAll, initialSort = _a.initialSort, initialSortAscending = _a.initialSortAscending, isBordered = _a.isBordered, isStriped = _a.isStriped, isBorderless = _a.isBorderless, showHover = _a.showHover, isSmallTable = _a.isSmallTable, footerContent = _a.footerContent, domProps = __rest(_a, ["items", "showAddButton", "addButton", "filterPredicate", "keyProperty", "allowSort", "expandAll", "collapseAll", "initialSort", "initialSortAscending", "isBordered", "isStriped", "isBorderless", "showHover", "isSmallTable", "footerContent"]);
36
36
  if (expandAll === true) {
37
37
  this.gridContext.expandAll = true;
38
38
  }
@@ -90,9 +90,10 @@ var Grid = /** @class */ (function (_super) {
90
90
  React.createElement(GridContext.Provider, { value: this.gridContext },
91
91
  React.createElement(TableSection, { type: "header" }, this.headerItem && this.props.children(this.headerItem, this.headerItem.meta)),
92
92
  React.createElement(TableSection, { type: "body" }, this.gridContext.dataView.getItems().map(function (item) { return (React.createElement(ItemGroup, { item: item, key: keyProperty ? item[keyProperty] : item.entityIdentifier, template: _this.props.children })); })),
93
- React.createElement(Observer, null, function () { return (showAddButton || addButton || _this.gridContext.hasSummaries) &&
93
+ React.createElement(Observer, null, function () { return (showAddButton || addButton || _this.gridContext.hasSummaries || footerContent) &&
94
94
  React.createElement(TableSection, { type: "footer" },
95
95
  _this.gridContext.hasSummaries && _this.headerItem && _this.props.children(_this.headerItem, _this.headerItem.meta),
96
+ footerContent && footerContent(_this.gridContext.dataView.getItems()),
96
97
  (showAddButton || addButton) && React.createElement(AddButtonRow, { addButton: addButton })); }))));
97
98
  };
98
99
  Grid.prototype.setInitialSort = function (initialSort, initialSortAscending) {
@@ -196,4 +197,3 @@ var ItemGroup = /** @class */ (function (_super) {
196
197
  ], ItemGroup);
197
198
  return ItemGroup;
198
199
  }(React.Component));
199
- //# sourceMappingURL=Grid.js.map
@@ -199,4 +199,3 @@ var RowGroup = /** @class */ (function (_super) {
199
199
  return RowGroup;
200
200
  }(React.Component));
201
201
  export { RowGroup };
202
- //# sourceMappingURL=Row.js.map
@@ -3,4 +3,3 @@ import Column from './Column';
3
3
  import Row, { RowGroup, ChildRow } from './Row';
4
4
  import { ButtonColumn } from './ButtonColumn';
5
5
  export { Grid, Column, RowGroup, Row, ChildRow, ButtonColumn };
6
- //# sourceMappingURL=_Exports.js.map
@@ -36,4 +36,3 @@ var GridLayout = /** @class */ (function (_super) {
36
36
  return GridLayout;
37
37
  }(React.Component));
38
38
  export default GridLayout;
39
- //# sourceMappingURL=GridLayout.js.map
@@ -150,4 +150,3 @@ var Checkbox = /** @class */ (function (_super) {
150
150
  return Checkbox;
151
151
  }(Input));
152
152
  export { Checkbox };
153
- //# sourceMappingURL=Input.js.map
@@ -31,4 +31,3 @@ var InputHelpers = /** @class */ (function () {
31
31
  return InputHelpers;
32
32
  }());
33
33
  export { InputHelpers };
34
- //# sourceMappingURL=InputHelpers.js.map
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ interface ILinkProps extends React.HTMLProps<HTMLAnchorElement> {
3
+ }
4
+ /**
5
+ * Renders an anchor tag with an href of '/' unless otherwise specified.
6
+ * The onClick event will call preventDefault() so that the anchor acts like a button instead of a link to a url.
7
+ */
8
+ export default class Link extends React.Component<ILinkProps> {
9
+ constructor(props: ILinkProps);
10
+ private onClick;
11
+ render(): JSX.Element;
12
+ }
13
+ export {};
@@ -0,0 +1,28 @@
1
+ import { __assign, __extends } from "tslib";
2
+ import React from 'react';
3
+ /**
4
+ * Renders an anchor tag with an href of '/' unless otherwise specified.
5
+ * The onClick event will call preventDefault() so that the anchor acts like a button instead of a link to a url.
6
+ */
7
+ var Link = /** @class */ (function (_super) {
8
+ __extends(Link, _super);
9
+ function Link(props) {
10
+ var _this = _super.call(this, props) || this;
11
+ _this.onClick = _this.onClick.bind(_this);
12
+ return _this;
13
+ }
14
+ Link.prototype.onClick = function (e) {
15
+ e.preventDefault();
16
+ if (this.props.onClick) {
17
+ this.props.onClick(e);
18
+ }
19
+ };
20
+ Link.prototype.render = function () {
21
+ var _a;
22
+ var props = this.props;
23
+ var href = (_a = props.href, (_a !== null && _a !== void 0 ? _a : "/"));
24
+ return React.createElement("a", __assign({}, props, { href: href, onClick: this.onClick }), this.props.children);
25
+ };
26
+ return Link;
27
+ }(React.Component));
28
+ export default Link;
@@ -55,4 +55,3 @@ var Loader = /** @class */ (function (_super) {
55
55
  return Loader;
56
56
  }(ComponentBase));
57
57
  export default Loader;
58
- //# sourceMappingURL=Loader.js.map
@@ -121,4 +121,3 @@ var Modal = /** @class */ (function (_super) {
121
121
  return Modal;
122
122
  }(React.Component));
123
123
  export default Modal;
124
- //# sourceMappingURL=Modal.js.map
@@ -35,4 +35,3 @@ var ModalContainer = /** @class */ (function (_super) {
35
35
  return ModalContainer;
36
36
  }(React.Component));
37
37
  export default ModalContainer;
38
- //# sourceMappingURL=ModalContainer.js.map
@@ -25,4 +25,3 @@ var ModalPortal = /** @class */ (function (_super) {
25
25
  return ModalPortal;
26
26
  }(React.Component));
27
27
  export default ModalPortal;
28
- //# sourceMappingURL=ModalPortal.js.map
@@ -33,4 +33,3 @@ var Alert = /** @class */ (function (_super) {
33
33
  return Alert;
34
34
  }(CollapsableBase));
35
35
  export default Alert;
36
- //# sourceMappingURL=Alert.js.map
@@ -43,4 +43,3 @@ var Toast = /** @class */ (function (_super) {
43
43
  return Toast;
44
44
  }(CollapsableBase));
45
45
  export default Toast;
46
- //# sourceMappingURL=Toast.js.map
@@ -16,4 +16,3 @@ var ToastContainer = /** @class */ (function (_super) {
16
16
  return ToastContainer;
17
17
  }(React.Component));
18
18
  export default ToastContainer;
19
- //# sourceMappingURL=ToastContainer.js.map
@@ -2,6 +2,7 @@ import * as React from 'react';
2
2
  import { IBindableEditorProps } from './PropTypes';
3
3
  import { FormContext } from './FormContext';
4
4
  import { Misc } from '@singularsystems/neo-core';
5
+ import Decimal from 'decimal.js-light';
5
6
  import ComponentBase from './ComponentBase';
6
7
  export interface INumberInputSpecificProps {
7
8
  /** Format string of number */
@@ -25,7 +26,7 @@ export declare class FormatState {
25
26
  zeroText?: string | undefined;
26
27
  constructor(isPercent: boolean, hasExternalPercentSymbol: boolean, formatString: string, zeroText?: string | undefined);
27
28
  static create(numericType: Misc.DataType, numProps?: INumberInputSpecificProps, appendText?: string): FormatState;
28
- getFormattedValue(value?: number): string;
29
+ getFormattedValue(value?: number | Decimal | null): string;
29
30
  }
30
31
  export default class NumberInput extends ComponentBase<INumberInputProps> {
31
32
  static contextType: React.Context<import("./FormContext").FormContextParams>;
@@ -39,6 +40,7 @@ export default class NumberInput extends ComponentBase<INumberInputProps> {
39
40
  constructor(props: INumberInputProps);
40
41
  private onChanged;
41
42
  private onFocus;
43
+ private getBindValueAsNumber;
42
44
  private setFocusedText;
43
45
  private onBlur;
44
46
  private onKeyDown;
@@ -3,6 +3,7 @@ import * as React from 'react';
3
3
  import { BindPropsHelper } from './PropTypes';
4
4
  import { FormContext } from './FormContext';
5
5
  import { Misc, NumberUtils, Utils } from '@singularsystems/neo-core';
6
+ import Decimal from 'decimal.js-light';
6
7
  import { InputHelpers } from './InputHelpers';
7
8
  import { observer } from 'mobx-react';
8
9
  import memoize from 'memoize-one';
@@ -24,9 +25,10 @@ var FormatState = /** @class */ (function () {
24
25
  formatString = NumberUtils.getFormatString(numProps.format, numProps.currencySymbol);
25
26
  }
26
27
  else {
28
+ var hasDecimals = numericType === Misc.DataType.Float || numericType === Misc.DataType.Decimal;
27
29
  var format = ((_a = numProps) === null || _a === void 0 ? void 0 : _a.currencySymbol) ?
28
- (numericType === Misc.DataType.Float ? Misc.NumberFormat.CurrencyDecimals : Misc.NumberFormat.CurrencyNoDecimals) :
29
- (numericType === Misc.DataType.Float ? Misc.NumberFormat.Decimals : Misc.NumberFormat.NoDecimals);
30
+ (hasDecimals ? Misc.NumberFormat.CurrencyDecimals : Misc.NumberFormat.CurrencyNoDecimals) :
31
+ (hasDecimals ? Misc.NumberFormat.Decimals : Misc.NumberFormat.NoDecimals);
30
32
  formatString = NumberUtils.getFormatString(format, (_b = numProps) === null || _b === void 0 ? void 0 : _b.currencySymbol);
31
33
  }
32
34
  }
@@ -43,6 +45,9 @@ var FormatState = /** @class */ (function () {
43
45
  return this.zeroText;
44
46
  }
45
47
  if (value !== undefined && value !== null) {
48
+ if (value instanceof Decimal) {
49
+ value = value.toNumber();
50
+ }
46
51
  if (typeof value === "number") {
47
52
  if (this.hasExternalPercentSymbol) {
48
53
  value *= 100;
@@ -77,23 +82,35 @@ var NumberInput = /** @class */ (function (_super) {
77
82
  }
78
83
  NumberInput.prototype.onChanged = function (e) {
79
84
  var newValue;
85
+ if (e.target.value !== "" && isNaN(parseFloat(e.target.value))) {
86
+ return;
87
+ }
80
88
  if (e.target.value == "") {
81
- newValue = this.props.bind.propertyInfo.allowNulls ? null : 0;
89
+ newValue = this.props.bind.propertyInfo.allowNulls ? null : new Decimal(0);
82
90
  }
83
91
  else if (this.formatState.isPercent && NumberUtils.transformPercent) {
84
- newValue = parseFloat(e.target.value) / 100;
92
+ newValue = new Decimal(e.target.value).dividedBy(100);
85
93
  }
86
- else if (this.numericType == Misc.DataType.Float) {
87
- newValue = parseFloat(e.target.value);
94
+ else if (this.numericType === Misc.DataType.Float || this.numericType === Misc.DataType.Decimal) {
95
+ newValue = new Decimal(e.target.value);
88
96
  }
89
97
  else {
90
- newValue = parseInt(e.target.value);
98
+ // Rounds to zero.
99
+ newValue = new Decimal(e.target.value).toDecimalPlaces(0, Decimal.ROUND_DOWN);
100
+ }
101
+ if (newValue === null) {
102
+ this.props.bind.value = newValue;
91
103
  }
92
- if (newValue === null || !isNaN(newValue)) {
93
- if (newValue && (!this.props.numProps || this.props.numProps.autoRound !== false)) {
104
+ else {
105
+ if (!this.props.numProps || this.props.numProps.autoRound !== false) {
94
106
  newValue = NumberUtils.roundUsingFormat(newValue, this.formatState.formatString, this.formatState.hasExternalPercentSymbol);
95
107
  }
96
- this.props.bind.value = newValue;
108
+ if (this.numericType === Misc.DataType.Decimal) {
109
+ this.props.bind.value = newValue;
110
+ }
111
+ else {
112
+ this.props.bind.value = newValue.toNumber();
113
+ }
97
114
  }
98
115
  };
99
116
  NumberInput.prototype.onFocus = function () {
@@ -103,12 +120,21 @@ var NumberInput = /** @class */ (function (_super) {
103
120
  element.select();
104
121
  }
105
122
  };
123
+ NumberInput.prototype.getBindValueAsNumber = function () {
124
+ var propertyValue = this.props.bind.value;
125
+ if (propertyValue instanceof Decimal) {
126
+ return propertyValue.toNumber();
127
+ }
128
+ else {
129
+ return propertyValue;
130
+ }
131
+ };
106
132
  NumberInput.prototype.setFocusedText = function (element) {
107
133
  this.hasFocus = true;
108
- var propertyValue = this.props.bind.value;
134
+ var numberValue = this.getBindValueAsNumber();
109
135
  var stringValue;
110
- if (!propertyValue) {
111
- if ((this.props.bind.propertyInfo.allowNulls || element.readOnly) && propertyValue === 0) {
136
+ if (!numberValue) {
137
+ if ((this.props.bind.propertyInfo.allowNulls || element.readOnly) && numberValue === 0) {
112
138
  stringValue = "0";
113
139
  }
114
140
  else {
@@ -117,13 +143,13 @@ var NumberInput = /** @class */ (function (_super) {
117
143
  }
118
144
  else {
119
145
  if (element.readOnly || !this.props.numProps || this.props.numProps.autoRound !== false) {
120
- stringValue = NumberUtils.formatRaw(propertyValue, this.formatState.formatString, this.formatState.hasExternalPercentSymbol);
146
+ stringValue = NumberUtils.formatRaw(numberValue, this.formatState.formatString, this.formatState.hasExternalPercentSymbol);
121
147
  }
122
148
  else {
123
149
  if (this.formatState.isPercent && NumberUtils.transformPercent) {
124
- propertyValue *= 100;
150
+ numberValue *= 100;
125
151
  }
126
- stringValue = propertyValue.toString();
152
+ stringValue = numberValue.toString();
127
153
  }
128
154
  }
129
155
  element.value = stringValue;
@@ -137,31 +163,40 @@ var NumberInput = /** @class */ (function (_super) {
137
163
  NumberInput.prototype.onKeyDown = function (e) {
138
164
  var element = this.inputElement.current;
139
165
  if (!this.isReadOnly && element && (e.keyCode === 38 || e.keyCode === 40)) {
140
- var selectionIndex = element.selectionEnd;
141
- var deltaValue = 1;
142
- var decimalIndex = element.value.indexOf(".");
143
- if (decimalIndex < 0) {
144
- decimalIndex = element.value.indexOf(",");
145
- }
146
- if (decimalIndex > 0 && selectionIndex && selectionIndex > decimalIndex) {
147
- deltaValue = 0.01;
148
- }
149
- if (this.formatState.isPercent && NumberUtils.transformPercent) {
150
- deltaValue /= 100;
151
- }
152
- if (e.keyCode === 38) {
153
- // Up
154
- this.props.bind.value += deltaValue;
155
- }
156
- else if (e.keyCode === 40) {
157
- // Down
158
- this.props.bind.value -= deltaValue;
159
- }
160
- this.setFocusedText(element);
161
- if (selectionIndex !== null) {
162
- element.selectionStart = element.selectionEnd = selectionIndex;
166
+ var value = this.getBindValueAsNumber();
167
+ if (value !== null) {
168
+ var selectionIndex = element.selectionEnd;
169
+ var deltaValue = 1;
170
+ var decimalIndex = element.value.indexOf(".");
171
+ if (decimalIndex < 0) {
172
+ decimalIndex = element.value.indexOf(",");
173
+ }
174
+ if (decimalIndex > 0 && selectionIndex && selectionIndex > decimalIndex) {
175
+ deltaValue = 0.01;
176
+ }
177
+ if (this.formatState.isPercent && NumberUtils.transformPercent) {
178
+ deltaValue /= 100;
179
+ }
180
+ if (e.keyCode === 38) {
181
+ // Up
182
+ value += deltaValue;
183
+ }
184
+ else if (e.keyCode === 40) {
185
+ // Down
186
+ value -= deltaValue;
187
+ }
188
+ if (this.numericType === Misc.DataType.Decimal) {
189
+ this.props.bind.value = new Decimal(value);
190
+ }
191
+ else {
192
+ this.props.bind.value = value;
193
+ }
194
+ this.setFocusedText(element);
195
+ if (selectionIndex !== null) {
196
+ element.selectionStart = element.selectionEnd = selectionIndex;
197
+ }
198
+ e.preventDefault();
163
199
  }
164
- e.preventDefault();
165
200
  }
166
201
  };
167
202
  NumberInput.prototype.componentDidMount = function () {
@@ -202,4 +237,3 @@ var NumberInput = /** @class */ (function (_super) {
202
237
  return NumberInput;
203
238
  }(ComponentBase));
204
239
  export default NumberInput;
205
- //# sourceMappingURL=NumberInput.js.map
@@ -53,4 +53,3 @@ var SimplePagerControls = /** @class */ (function (_super) {
53
53
  return SimplePagerControls;
54
54
  }(React.Component));
55
55
  export default SimplePagerControls;
56
- //# sourceMappingURL=BasicPagerControls.js.map
@@ -19,4 +19,3 @@ var PageSizeControl = /** @class */ (function (_super) {
19
19
  return PageSizeControl;
20
20
  }(React.Component));
21
21
  export default PageSizeControl;
22
- //# sourceMappingURL=PageSizeControl.js.map
@@ -39,4 +39,3 @@ var Pager = /** @class */ (function (_super) {
39
39
  return Pager;
40
40
  }(React.Component));
41
41
  export default Pager;
42
- //# sourceMappingURL=Pager.js.map
@@ -50,4 +50,3 @@ var ProgressBar = /** @class */ (function (_super) {
50
50
  return ProgressBar;
51
51
  }(React.Component));
52
52
  export default ProgressBar;
53
- //# sourceMappingURL=ProgressBar.js.map