@singularsystems/neo-react 1.1.3 → 1.2.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 (47) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/Extensions.d.ts +8 -0
  3. package/dist/Extensions.js +11 -0
  4. package/dist/Modules/Types.d.ts +1 -3
  5. package/dist/Modules/Types.js +0 -1
  6. package/dist/ReactComponents/BootstrapUtils.d.ts +2 -0
  7. package/dist/ReactComponents/BootstrapUtils.js +8 -0
  8. package/dist/ReactComponents/Button.d.ts +4 -3
  9. package/dist/ReactComponents/Button.js +10 -3
  10. package/dist/ReactComponents/Card.d.ts +2 -2
  11. package/dist/ReactComponents/Card.js +3 -0
  12. package/dist/ReactComponents/Collapsable.d.ts +1 -1
  13. package/dist/ReactComponents/CollapsableBase.d.ts +1 -1
  14. package/dist/ReactComponents/ColorPicker.d.ts +1 -1
  15. package/dist/ReactComponents/DropDown/AutoCompleteDropDown.d.ts +2 -2
  16. package/dist/ReactComponents/DropDown/DropDown.d.ts +1 -1
  17. package/dist/ReactComponents/FileManager/FileBasicInput.d.ts +1 -1
  18. package/dist/ReactComponents/FormGroup/FormGroup.d.ts +2 -2
  19. package/dist/ReactComponents/FormGroup/FormGroupFloating.d.ts +1 -1
  20. package/dist/ReactComponents/Grid/ButtonColumn.d.ts +1 -1
  21. package/dist/ReactComponents/Grid/ButtonColumn.js +12 -4
  22. package/dist/ReactComponents/Grid/Grid.d.ts +10 -5
  23. package/dist/ReactComponents/Grid/Grid.js +15 -4
  24. package/dist/ReactComponents/Grid/Row.d.ts +1 -1
  25. package/dist/ReactComponents/IColorPicker.d.ts +1 -1
  26. package/dist/ReactComponents/Icons/FontAwesomeIconFactory.d.ts +2 -2
  27. package/dist/ReactComponents/Input.d.ts +2 -2
  28. package/dist/ReactComponents/InputHelpers.d.ts +2 -2
  29. package/dist/ReactComponents/InputHelpers.js +1 -1
  30. package/dist/ReactComponents/Loader.d.ts +1 -1
  31. package/dist/ReactComponents/Notifications/Toast.d.ts +1 -1
  32. package/dist/ReactComponents/NumberInput.js +9 -8
  33. package/dist/ReactComponents/Paging/BasicPagerControls.d.ts +1 -1
  34. package/dist/ReactComponents/Paging/PageSizeControl.d.ts +1 -1
  35. package/dist/ReactComponents/ProgressBar.d.ts +1 -1
  36. package/dist/ReactComponents/PropTypes.d.ts +5 -5
  37. package/dist/ReactComponents/Slider.d.ts +2 -3
  38. package/dist/ReactComponents/Slider.js +2 -2
  39. package/dist/ReactComponents/Tabs/Tab.d.ts +1 -1
  40. package/dist/ReactComponents/Tabs/Tab.js +3 -0
  41. package/dist/ReactComponents/Tooltip.d.ts +6 -3
  42. package/dist/ReactComponents/Tooltip.js +3 -0
  43. package/dist/Routing/RouteView.d.ts +4 -5
  44. package/dist/Routing/RouteView.js +0 -1
  45. package/dist/index.d.ts +2 -1
  46. package/dist/index.js +1 -0
  47. package/package.json +20 -20
package/CHANGELOG.md CHANGED
@@ -1,3 +1,22 @@
1
+ # Version 1.2
2
+
3
+ Version 1.2 upgrades React to v19. A few of the other dependencies were also updated, which will need to be updated in each project.
4
+
5
+ Please take the following steps when upgrading:
6
+
7
+ - Update `react`, `react-dom` and their types packages to the latest version.
8
+ - Update `react-select` to at least 5.10.0.
9
+ - Update `react-custom-scrollbars` and its types to the latest version.
10
+ - If you are using `rc-slider`.
11
+ - Remove the `@types/rc-slider` package, and update `rc-slider` to the latest version.
12
+ - In your app module, remove the `Range` import, and remove this line: `container.bind(Types.Neo.Components.Range).toConstantValue(Range);`
13
+ - If you are using `react-color`.
14
+ - Update the package, and types to the latest version.
15
+ - Under React 19, JSX is no longer a global import. You may receive errors such as "Cannot find namespace 'JSX'."
16
+ - To rectify, change `JSX.Element` to `React.ReactNode`.
17
+ - If that doesn't work, you can import JSX from React. E.g. `import React, { JSX } from 'React';`
18
+ - Finally, run `yarn dedupe` to make sure all old transitive packages reference the project version.
19
+
1
20
  # Version 1.1
2
21
 
3
22
  Version 1.1 removes the `react-router` dependency. This requires updates to your project which are explained in [this guide](./docs/RemoveReactRouter.md).
@@ -0,0 +1,8 @@
1
+ declare module "@singularsystems/neo-core/dist/Validation/DisplayHelper" {
2
+ interface ValidationDisplayInfo {
3
+ applyToDom(elementProps: React.HTMLProps<HTMLElement> & {
4
+ [key: string]: any;
5
+ }, addTooltip: boolean): void;
6
+ }
7
+ }
8
+ export {};
@@ -0,0 +1,11 @@
1
+ import { Utils } from "@singularsystems/neo-core";
2
+ import { ValidationDisplayInfo } from "@singularsystems/neo-core/dist/Validation/DisplayHelper";
3
+ ValidationDisplayInfo.prototype.applyToDom = function (elementProps, addTooltip) {
4
+ if (this.severity) {
5
+ elementProps.className = Utils.joinWithSpaces(elementProps.className, this.editorClassName);
6
+ if (addTooltip) {
7
+ elementProps["data-tip"] = this.displayText;
8
+ elementProps["data-tip-class"] = this.additionalClassName;
9
+ }
10
+ }
11
+ };
@@ -1,7 +1,6 @@
1
1
  import { AppServices } from '@singularsystems/neo-core';
2
2
  import { INavigationHelper } from '../Routing/NavigationHelper';
3
3
  import { RoutingState } from '../Routing/RoutingState';
4
- import Slider, { Range } from 'rc-slider';
5
4
  import { SketchPicker } from 'react-color';
6
5
  import { IColorPicker } from '../ReactComponents/IColorPicker';
7
6
  import type AsyncSelect from 'react-select/async';
@@ -12,8 +11,7 @@ import { IIconFactory } from '../ReactComponents/Icons/IIconFactory';
12
11
  import { IPageLeaveHandler } from "../Routing/PageLeaveHandler";
13
12
  declare const NeoReactTypes: {
14
13
  Components: {
15
- Slider: AppServices.ServiceIdentifier<typeof Slider>;
16
- Range: AppServices.ServiceIdentifier<typeof Range>;
14
+ Slider: AppServices.ServiceIdentifier<import("react").ForwardRefExoticComponent<import("rc-slider").SliderProps<number | number[]> & import("react").RefAttributes<import("rc-slider").SliderRef>>>;
17
15
  /**
18
16
  * Sketchpicker (from 'react-color' package) component used by the color picker.
19
17
  * It is recommended to use the `ColorPicker` type and bind to HexColorPicker from the 'react-colorful' package.
@@ -2,7 +2,6 @@ import { __assign } from "tslib";
2
2
  import { AppServices } from '@singularsystems/neo-core';
3
3
  var NeoReactTypes = __assign(__assign({}, AppServices.NeoTypes), { Components: {
4
4
  Slider: new AppServices.ServiceIdentifier("NeoReact.Slider"),
5
- Range: new AppServices.ServiceIdentifier("NeoReact.Range"),
6
5
  /**
7
6
  * Sketchpicker (from 'react-color' package) component used by the color picker.
8
7
  * It is recommended to use the `ColorPicker` type and bind to HexColorPicker from the 'react-colorful' package.
@@ -3,6 +3,8 @@ declare class BootstrapUtils {
3
3
  constructor();
4
4
  /** Bootstrap version is before v5 */
5
5
  get isPre5(): boolean;
6
+ /** Class prefix (without -) for start margin / left margin. */
7
+ get marginS(): "ml" | "ms";
6
8
  /** Class prefix (without -) for end margin / right margin. */
7
9
  get marginE(): "mr" | "me";
8
10
  /**
@@ -11,6 +11,14 @@ var BootstrapUtils = /** @class */ (function () {
11
11
  enumerable: false,
12
12
  configurable: true
13
13
  });
14
+ Object.defineProperty(BootstrapUtils.prototype, "marginS", {
15
+ /** Class prefix (without -) for start margin / left margin. */
16
+ get: function () {
17
+ return this.isPre5 ? "ml" : "ms";
18
+ },
19
+ enumerable: false,
20
+ configurable: true
21
+ });
14
22
  Object.defineProperty(BootstrapUtils.prototype, "marginE", {
15
23
  /** Class prefix (without -) for end margin / right margin. */
16
24
  get: function () {
@@ -9,8 +9,8 @@ export default class Button extends ComponentBase<IButtonProps, IButtonState> {
9
9
  state: {
10
10
  isExpanded: boolean;
11
11
  };
12
- btnGroupDom: React.RefObject<HTMLDivElement>;
13
- menuDom: React.RefObject<HTMLDivElement>;
12
+ btnGroupDom: React.RefObject<HTMLDivElement | null>;
13
+ menuDom: React.RefObject<HTMLDivElement | null>;
14
14
  private iconFactory;
15
15
  private windowClickHandler;
16
16
  private positionHelper?;
@@ -21,6 +21,7 @@ export default class Button extends ComponentBase<IButtonProps, IButtonState> {
21
21
  private windowClicked;
22
22
  afterRender(): void;
23
23
  componentWillUnmount(): void;
24
- render(): JSX.Element;
24
+ render(): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
25
+ protected suppressIcon(icon: any): boolean;
25
26
  }
26
27
  export {};
@@ -61,14 +61,18 @@ var Button = /** @class */ (function (_super) {
61
61
  Button.prototype.render = function () {
62
62
  var _this = this;
63
63
  var _a;
64
- var _b = this.props, isSubmit = _b.isSubmit, variant = _b.variant, size = _b.size, isOutline = _b.isOutline, icon = _b.icon, iconAlignment = _b.iconAlignment, text = _b.text, menuItems = _b.menuItems, splitMenu = _b.splitMenu, menuAlignment = _b.menuAlignment, buttonGroupClassName = _b.buttonGroupClassName, tooltip = _b.tooltip, task = _b.task, isBusy = _b.isBusy, pulse = _b.pulse, customVariant = _b.customVariant, native = __rest(_b, ["isSubmit", "variant", "size", "isOutline", "icon", "iconAlignment", "text", "menuItems", "splitMenu", "menuAlignment", "buttonGroupClassName", "tooltip", "task", "isBusy", "pulse", "customVariant"]);
64
+ var _b = this.props, isSubmit = _b.isSubmit, variant = _b.variant, size = _b.size, isOutline = _b.isOutline, isFlat = _b.isFlat, icon = _b.icon, iconAlignment = _b.iconAlignment, text = _b.text, menuItems = _b.menuItems, splitMenu = _b.splitMenu, menuAlignment = _b.menuAlignment, buttonGroupClassName = _b.buttonGroupClassName, tooltip = _b.tooltip, task = _b.task, isBusy = _b.isBusy, pulse = _b.pulse, customVariant = _b.customVariant, native = __rest(_b, ["isSubmit", "variant", "size", "isOutline", "isFlat", "icon", "iconAlignment", "text", "menuItems", "splitMenu", "menuAlignment", "buttonGroupClassName", "tooltip", "task", "isBusy", "pulse", "customVariant"]);
65
65
  native.type = isSubmit ? "submit" : "button";
66
66
  var variantClassName = ((_a = customVariant !== null && customVariant !== void 0 ? customVariant : variant) !== null && _a !== void 0 ? _a : "primary");
67
67
  var isLoading = isBusy || (task === null || task === void 0 ? void 0 : task.isBusy);
68
68
  var isDropDown = menuItems && menuItems.length;
69
- var buttonClasses = "btn btn-" + (isOutline ? "outline-" : "") + variantClassName;
69
+ var buttonClasses = "btn btn-" + ((isFlat || isOutline) ? "outline-" : "") + variantClassName;
70
70
  if (size)
71
71
  buttonClasses += " btn-" + size;
72
+ if (isFlat)
73
+ buttonClasses += " btn-flat";
74
+ if (isFlat && isOutline)
75
+ buttonClasses += " btn-outline";
72
76
  if (isDropDown && !splitMenu) {
73
77
  buttonClasses += " dropdown-toggle";
74
78
  native.onClick = this.showMenu;
@@ -93,7 +97,7 @@ var Button = /** @class */ (function (_super) {
93
97
  innerText = text;
94
98
  var iconSpace = icon && innerText ? " " : "";
95
99
  // Icon
96
- var iconElement = (isLoading || !innerText || !Misc.Settings.buttons.suppressIcons) ? this.iconFactory.getIconComponent(icon, iconStyle) : undefined;
100
+ var iconElement = (isLoading || !innerText || !this.suppressIcon(icon)) ? this.iconFactory.getIconComponent(icon, iconStyle) : undefined;
97
101
  // Tooltip
98
102
  if (tooltip) {
99
103
  Tooltip.setDomProperties(native, tooltip);
@@ -136,6 +140,9 @@ var Button = /** @class */ (function (_super) {
136
140
  }
137
141
  return root;
138
142
  };
143
+ Button.prototype.suppressIcon = function (icon) {
144
+ return Misc.Settings.buttons.suppressIcons || Misc.Settings.icons.shouldSuppress({ icon: icon, component: "button", props: this.props });
145
+ };
139
146
  Button = __decorate([
140
147
  observer,
141
148
  __metadata("design:paramtypes", [Object])
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React, { JSX } from 'react';
2
2
  import { Model } from '@singularsystems/neo-core';
3
3
  interface ICardProps {
4
4
  /** Icon to show next to title in header. */
@@ -21,6 +21,6 @@ interface ICardProps {
21
21
  export default class Card extends React.Component<ICardProps & React.HTMLProps<HTMLDivElement>> {
22
22
  private iconFactory;
23
23
  private expandState;
24
- render(): React.JSX.Element;
24
+ render(): JSX.Element;
25
25
  }
26
26
  export {};
@@ -39,6 +39,9 @@ var Card = /** @class */ (function (_super) {
39
39
  }
40
40
  className += " card-collapsible";
41
41
  }
42
+ if (icon && Misc.Settings.icons.shouldSuppress({ icon: icon, component: "card", props: this.props })) {
43
+ icon = undefined;
44
+ }
42
45
  var body = React.createElement("div", { className: "card-body" },
43
46
  useCustomScrollbar && React.createElement(Scrollbar, null, children),
44
47
  !useCustomScrollbar && children);
@@ -14,7 +14,7 @@ interface ICollapsableProps extends React.HTMLProps<HTMLDivElement> {
14
14
  * Uses the collapsable and collapsed css classes.
15
15
  */
16
16
  export default class Collapsable extends ComponentBase<ICollapsableProps> {
17
- protected containerRef: React.RefObject<HTMLDivElement>;
17
+ protected containerRef: React.RefObject<HTMLDivElement | null>;
18
18
  protected animationHelper?: Components.CollapseAnimationHelper;
19
19
  render(): React.JSX.Element;
20
20
  afterRender(isInitial: boolean): void;
@@ -3,7 +3,7 @@ import { Components } from '@singularsystems/neo-core';
3
3
  import ComponentBase from './ComponentBase';
4
4
  export default class CollapsableBase<TProps extends Components.ICollapsableOptions> extends ComponentBase<TProps> {
5
5
  private timer;
6
- protected containerRef: React.RefObject<HTMLDivElement>;
6
+ protected containerRef: React.RefObject<HTMLDivElement | null>;
7
7
  protected shouldShow: boolean;
8
8
  protected animationHelper?: Components.CollapseAnimationHelper;
9
9
  constructor(props: TProps);
@@ -23,6 +23,6 @@ export default class ColorPicker extends React.Component<IColorPickerProps, ICol
23
23
  accept: () => void;
24
24
  render(): React.JSX.Element;
25
25
  /** Renders the inner color picker components without the modal */
26
- static render(color: string, onChange: (value: string) => void): JSX.Element;
26
+ static render(color: string, onChange: (value: string) => void): React.ReactNode;
27
27
  }
28
28
  export {};
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import React, { JSX } from 'react';
2
2
  import { Model } from '@singularsystems/neo-core';
3
3
  import { AxiosPromise } from 'axios';
4
4
  import { DropDownBase, ItemSource } from './DropDownBase';
@@ -99,7 +99,7 @@ export default class AutoCompleteDropDown<T> extends DropDownBase<T, IAutoComple
99
99
  private setBindProperty;
100
100
  private mapTArrayToOptions;
101
101
  private onItemSelected;
102
- render(): React.JSX.Element;
102
+ render(): string | number | bigint | boolean | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | JSX.Element | null | undefined;
103
103
  private getOption;
104
104
  }
105
105
  export {};
@@ -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(): React.JSX.Element | JSX.Element;
46
+ render(): React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | React.JSX.Element;
47
47
  }
@@ -4,7 +4,7 @@ import { FileContext } from './FileContext';
4
4
  interface IFileInputProps extends React.HTMLProps<HTMLInputElement> {
5
5
  fileManager?: Components.IFileManager;
6
6
  isHidden?: boolean;
7
- inputRef?: React.RefObject<HTMLInputElement>;
7
+ inputRef?: React.RefObject<HTMLInputElement | null>;
8
8
  }
9
9
  /**
10
10
  * Renders an input[type=file] input bound to a file manager.
@@ -14,11 +14,11 @@ export interface IFormGroupProps<TData> extends IEditorContainerProps<HTMLDivEle
14
14
  /**
15
15
  * Text to show beneath the editor. This will be hidden when validation text is shown.
16
16
  */
17
- footerText?: string | JSX.Element;
17
+ footerText?: string | React.ReactNode;
18
18
  /**
19
19
  * Text / element to show to the right of the label.
20
20
  */
21
- rightLabel?: string | JSX.Element;
21
+ rightLabel?: string | React.ReactNode;
22
22
  }
23
23
  export interface IFormGroupClasses {
24
24
  container: string;
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { FormContext } from '../FormContext';
3
- import { IEditorContainerProps } from '../PropTypes';
3
+ import type { IEditorContainerProps } from '../PropTypes';
4
4
  import ComponentBase from '../ComponentBase';
5
5
  export default class FloatingFormGroup<TData> extends ComponentBase<IEditorContainerProps<HTMLDivElement, TData>> {
6
6
  static contextType: React.Context<import("../FormContext").FormContextParams>;
@@ -18,7 +18,7 @@ export interface IButtonColumnProps extends INeoCommonColumnProps, Omit<React.HT
18
18
  item?: any;
19
19
  /** Text to show in the header. */
20
20
  label?: string;
21
- /** Show text on buttons? */
21
+ /** Show text on built in buttons (view / edit / delete). By default text is suppressed. */
22
22
  showDefaultButtonText?: boolean;
23
23
  /** Size of edit and delete button */
24
24
  buttonSize?: ("sm" | "lg");
@@ -45,9 +45,10 @@ var ButtonColumn = /** @class */ (function (_super) {
45
45
  var _a = this.props, item = _a.item, label = _a.label, showDefaultButtonText = _a.showDefaultButtonText, buttonSize = _a.buttonSize, showDelete = _a.showDelete, editButton = _a.editButton, deleteButton = _a.deleteButton, viewButton = _a.viewButton, childAlignment = _a.childAlignment, hideBelow = _a.hideBelow, hideAbove = _a.hideAbove, alignment = _a.alignment, domProps = __rest(_a, ["item", "label", "showDefaultButtonText", "buttonSize", "showDelete", "editButton", "deleteButton", "viewButton", "childAlignment", "hideBelow", "hideAbove", "alignment"]);
46
46
  domProps.className = Utils.joinWithSpaces("neo-grid-button-column", domProps.className);
47
47
  domProps.className = ColumnHelper.addCommonClasses(domProps.className, this.props);
48
- var editButtonDefaults = __assign({}, Misc.Settings.grid.editButton);
49
- var deleteButtonDefaults = __assign({}, Misc.Settings.grid.deleteButton);
50
- var viewButtonDefaults = __assign({}, Misc.Settings.grid.viewButton);
48
+ var buttonColumnDefaults = Misc.Settings.grid.buttonColumnButtons;
49
+ var editButtonDefaults = __assign(__assign({}, buttonColumnDefaults), Misc.Settings.grid.editButton);
50
+ var deleteButtonDefaults = __assign(__assign({}, buttonColumnDefaults), Misc.Settings.grid.deleteButton);
51
+ var viewButtonDefaults = __assign(__assign({}, buttonColumnDefaults), Misc.Settings.grid.viewButton);
51
52
  if (!showDefaultButtonText) {
52
53
  editButtonDefaults.text = "";
53
54
  deleteButtonDefaults.text = "";
@@ -68,11 +69,12 @@ var ButtonColumn = /** @class */ (function (_super) {
68
69
  viewButtonOptions && React.createElement(NeoButton, __assign({}, viewButtonOptions)),
69
70
  editButtonOptions && React.createElement(NeoButton, __assign({}, editButtonOptions)),
70
71
  deleteButtonOptions && React.createElement(NeoButton, __assign({}, deleteButtonOptions)));
72
+ var children = this.props.children instanceof Function ? this.props.children() : this.props.children;
71
73
  return (this.section !== "body" ?
72
74
  React.createElement("th", __assign({}, domProps), this.section === "header" && label) :
73
75
  React.createElement("td", __assign({}, domProps),
74
76
  childAlignment === "right" ? buttons : undefined,
75
- this.props.children instanceof Function ? this.props.children() : this.props.children,
77
+ React.Children.map(children, function (c) { return setButtonProps(c); }),
76
78
  childAlignment !== "right" ? buttons : undefined));
77
79
  };
78
80
  ButtonColumn.isColumnComponent = true;
@@ -80,3 +82,9 @@ var ButtonColumn = /** @class */ (function (_super) {
80
82
  return ButtonColumn;
81
83
  }(ComponentBase));
82
84
  export { ButtonColumn };
85
+ function setButtonProps(button) {
86
+ if (button.type === NeoButton) {
87
+ return React.cloneElement(button, __assign(__assign({}, Misc.Settings.grid.buttonColumnButtons), button.props));
88
+ }
89
+ return button;
90
+ }
@@ -4,6 +4,7 @@ import { DataViewContext } from '../../React/DataView';
4
4
  import { IButtonOptions } from '@singularsystems/neo-core/dist/Components/ButtonOptions';
5
5
  import { ItemCallback } from '../PropTypes';
6
6
  export type GridSection = "header" | "body" | "footer";
7
+ export type BorderType = "standard" | "borderless" | "bordered";
7
8
  export declare class GridContextParams<T> {
8
9
  currentItem: T;
9
10
  section: GridSection;
@@ -53,18 +54,22 @@ export interface IGridProps<T> extends Omit<React.HTMLProps<HTMLTableElement>, "
53
54
  initialSort?: keyof T | (keyof T)[];
54
55
  initialSortAscending?: boolean | boolean[];
55
56
  children: ItemCallback<T>;
57
+ /** @deprecated Use `borderType` instead. */
58
+ isBordered?: boolean;
59
+ /** @deprecated Use `borderType` instead. */
60
+ isBorderless?: boolean;
56
61
  /**
57
- * When specified, the default bootstrap table borders (sides and cells) will be added.
58
- * This is the default unless overridden in Misc.Settings.grid
62
+ * Specifies the bootstrap border type. This can also be specified globally in Misc.Settings.grid.borderType.
63
+ * - Standard = Only horizontal borders.
64
+ * - Bordered = All borders.
65
+ * - Borderless = No borders.
59
66
  */
60
- isBordered?: boolean;
67
+ borderType?: BorderType;
61
68
  /**
62
69
  * When specified, every alternating row will receive a slightly darker background color.
63
70
  * Note, this will not work correctly if your grid has child rows. See the neo react demo pages for a solution.
64
71
  */
65
72
  isStriped?: boolean;
66
- /** When specified, the table will have no cell borders, and the table will have no main border. */
67
- isBorderless?: boolean;
68
73
  /** When specified, a background color will be applied on a row if it is being hovered over. */
69
74
  showHover?: boolean;
70
75
  /** When specified, the table size will be reduced (by reducing the padding sizes in each cell by half). */
@@ -45,7 +45,7 @@ var Grid = /** @class */ (function (_super) {
45
45
  };
46
46
  Grid.prototype.render = function () {
47
47
  var _this = this;
48
- 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, footerButtons = _a.footerButtons, stickyHeader = _a.stickyHeader, enableRowIndexes = _a.enableRowIndexes, children = _a.children, domProps = __rest(_a, ["items", "showAddButton", "addButton", "filterPredicate", "keyProperty", "allowSort", "expandAll", "collapseAll", "initialSort", "initialSortAscending", "isBordered", "isStriped", "isBorderless", "showHover", "isSmallTable", "footerContent", "footerButtons", "stickyHeader", "enableRowIndexes", "children"]);
48
+ 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, isBorderless = _a.isBorderless, isStriped = _a.isStriped, borderType = _a.borderType, showHover = _a.showHover, isSmallTable = _a.isSmallTable, footerContent = _a.footerContent, footerButtons = _a.footerButtons, stickyHeader = _a.stickyHeader, enableRowIndexes = _a.enableRowIndexes, children = _a.children, domProps = __rest(_a, ["items", "showAddButton", "addButton", "filterPredicate", "keyProperty", "allowSort", "expandAll", "collapseAll", "initialSort", "initialSortAscending", "isBordered", "isBorderless", "isStriped", "borderType", "showHover", "isSmallTable", "footerContent", "footerButtons", "stickyHeader", "enableRowIndexes", "children"]);
49
49
  if (expandAll === true) {
50
50
  this.gridContext.expandAll = true;
51
51
  }
@@ -56,17 +56,28 @@ var Grid = /** @class */ (function (_super) {
56
56
  this.gridContext.expandAll = undefined;
57
57
  }
58
58
  var className = Utils.joinWithSpaces(domProps.className, "table neo-grid");
59
- // apply bordered styling
60
- if (isBordered !== null && isBordered !== void 0 ? isBordered : Misc.Settings.grid.isBordered) {
59
+ borderType !== null && borderType !== void 0 ? borderType : (borderType = Misc.Settings.grid.borderType);
60
+ if (borderType === undefined) {
61
+ var noBorders = isBorderless !== null && isBorderless !== void 0 ? isBorderless : Misc.Settings.grid.isBorderless;
62
+ if (noBorders) {
63
+ borderType = "borderless";
64
+ }
65
+ else if (isBordered !== null && isBordered !== void 0 ? isBordered : Misc.Settings.grid.isBordered) {
66
+ borderType = "bordered";
67
+ }
68
+ }
69
+ if (borderType === "bordered") {
61
70
  className += " table-bordered";
62
71
  }
72
+ else if (borderType === "borderless") {
73
+ className += " table-borderless";
74
+ }
63
75
  // apply striped styling
64
76
  if (isStriped !== null && isStriped !== void 0 ? isStriped : Misc.Settings.grid.isStriped) {
65
77
  className += " table-striped";
66
78
  }
67
79
  // apply borderless styling
68
80
  if (isBorderless !== null && isBorderless !== void 0 ? isBorderless : Misc.Settings.grid.isBorderless) {
69
- className += " table-borderless";
70
81
  }
71
82
  // apply hover styling
72
83
  if (showHover !== null && showHover !== void 0 ? showHover : Misc.Settings.grid.showHover) {
@@ -60,7 +60,7 @@ export declare class ChildRow extends ComponentBase<INeoChildRowProps> {
60
60
  expandProperty?: Model.IPropertyInstance;
61
61
  inBody?: boolean;
62
62
  margin: number;
63
- containerDiv: React.RefObject<HTMLDivElement>;
63
+ containerDiv: React.RefObject<HTMLDivElement | null>;
64
64
  private get isExpanded();
65
65
  protected onFirstRender(): void;
66
66
  protected afterRender(isInitial: boolean): void;
@@ -2,5 +2,5 @@ interface ColorPickerProps {
2
2
  color: string;
3
3
  onChange: (newColor: string) => void;
4
4
  }
5
- export type IColorPicker = (props: ColorPickerProps) => JSX.Element;
5
+ export type IColorPicker = (props: ColorPickerProps) => React.ReactNode;
6
6
  export {};
@@ -9,7 +9,7 @@ interface FontAwesomeIconComponentProps {
9
9
  fixedWidth?: boolean;
10
10
  spin?: boolean;
11
11
  }
12
- type FontAwesomeComponent = (props: FontAwesomeIconComponentProps) => JSX.Element;
12
+ type FontAwesomeComponent = (props: FontAwesomeIconComponentProps) => React.ReactNode;
13
13
  /** Icon factory supporting font-awesome string, as well as the font-awesome icon definition and component. */
14
14
  export declare class FontAwesomeIconFactory extends IconFactory {
15
15
  private fontAwesomeComponentType;
@@ -18,6 +18,6 @@ export declare class FontAwesomeIconFactory extends IconFactory {
18
18
  * @param fontAwesomeComponentType import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
19
19
  */
20
20
  constructor(fontAwesomeComponentType: FontAwesomeComponent);
21
- protected createIconComponent(iconComponent: IconDefinition | JSX.Element, iconStyle?: IconStyle): React.ReactNode;
21
+ protected createIconComponent(iconComponent: IconDefinition | React.ReactNode, iconStyle?: IconStyle): React.ReactNode;
22
22
  }
23
23
  export {};
@@ -10,14 +10,14 @@ export interface IInputSpecificProps {
10
10
  /** Converts input into a textarea if the no of rows is above 1. */
11
11
  rows?: number;
12
12
  /** Label for checkbox. */
13
- label?: string | JSX.Element;
13
+ label?: string | React.ReactNode;
14
14
  /**
15
15
  * Shows a button which allows the user to view the password characters.
16
16
  * Automatically sets type to 'password'.
17
17
  */
18
18
  showPasswordButton?: boolean | Components.IButtonOptions;
19
19
  /** Alternate label, currently only used to provide a left label for the switch component. */
20
- altLabel?: string | JSX.Element;
20
+ altLabel?: string | React.ReactNode;
21
21
  }
22
22
  export interface IInputProps extends IBindableEditorProps<HTMLInputElement> {
23
23
  input?: IInputSpecificProps;
@@ -1,7 +1,7 @@
1
- import * as React from 'react';
1
+ import React from 'react';
2
2
  import { ICommonEditorProps } from './PropTypes';
3
3
  export declare class InputHelpers {
4
4
  private static iconFactory?;
5
- static surroundWithInputGroup<T extends React.ReactNode>(element: T, props: ICommonEditorProps, domProps: React.HTMLProps<HTMLElement>, inputRef?: React.RefObject<HTMLElement>): React.JSX.Element | T;
5
+ static surroundWithInputGroup<T extends React.ReactNode>(element: T, props: ICommonEditorProps, domProps: React.HTMLProps<HTMLElement>, inputRef?: React.RefObject<HTMLElement | null>): React.JSX.Element | T;
6
6
  private static getElement;
7
7
  }
@@ -1,4 +1,4 @@
1
- import * as React from 'react';
1
+ import React from 'react';
2
2
  import { Misc } from '@singularsystems/neo-core';
3
3
  import { NeoReactTypes } from '../Modules/Types';
4
4
  var InputHelpers = /** @class */ (function () {
@@ -9,7 +9,7 @@ interface ILoaderProps extends React.DetailedHTMLProps<React.HTMLAttributes<HTML
9
9
  size?: "small";
10
10
  }
11
11
  export default class Loader extends ComponentBase<ILoaderProps> {
12
- overlayRef: React.RefObject<HTMLDivElement>;
12
+ overlayRef: React.RefObject<HTMLDivElement | null>;
13
13
  isShowing: boolean;
14
14
  hasAnimated: boolean;
15
15
  render(): React.JSX.Element;
@@ -3,7 +3,7 @@ import CollapsableBase from '../CollapsableBase';
3
3
  import { Components } from '@singularsystems/neo-core';
4
4
  export default class Toast extends CollapsableBase<Components.INotificationOptions & React.HTMLProps<HTMLDivElement>> {
5
5
  private iconFactory;
6
- countDownRef: React.RefObject<HTMLDivElement>;
6
+ countDownRef: React.RefObject<HTMLDivElement | null>;
7
7
  afterRender(isInitial: boolean): void;
8
8
  render(): React.JSX.Element;
9
9
  }
@@ -174,35 +174,36 @@ var NumberInput = /** @class */ (function (_super) {
174
174
  }
175
175
  };
176
176
  NumberInput.prototype.onKeyDown = function (e) {
177
+ var decimal = NumberUtils.decimalService;
177
178
  var element = this.inputElement.current;
178
179
  if (!this.isReadOnly && element && (e.keyCode === 38 || e.keyCode === 40)) {
179
- var value = this.getBindValueAsNumber();
180
+ var value = decimal.createDecimal(this.props.bind.value);
180
181
  if (value !== null) {
181
182
  var selectionIndex = element.selectionEnd;
182
- var deltaValue = 1;
183
+ var deltaValue = decimal.createDecimal(1);
183
184
  var decimalIndex = element.value.indexOf(".");
184
185
  if (decimalIndex < 0) {
185
186
  decimalIndex = element.value.indexOf(",");
186
187
  }
187
188
  if (decimalIndex > 0 && selectionIndex && selectionIndex > decimalIndex) {
188
- deltaValue = 0.01;
189
+ deltaValue = decimal.createDecimal("0.01");
189
190
  }
190
191
  if (this.formatState.isPercent && NumberUtils.transformPercent) {
191
- deltaValue /= 100;
192
+ deltaValue = decimal.divideBy(deltaValue, 100);
192
193
  }
193
194
  if (e.keyCode === 38) {
194
195
  // Up
195
- value += deltaValue;
196
+ value = NumberUtils.decimalService.add(value, deltaValue);
196
197
  }
197
198
  else if (e.keyCode === 40) {
198
199
  // Down
199
- value -= deltaValue;
200
+ value = NumberUtils.decimalService.subtract(value, deltaValue);
200
201
  }
201
202
  if (this.numericType === Misc.DataType.Decimal) {
202
- this.props.bind.value = NumberUtils.decimalService.createDecimal(value);
203
+ this.props.bind.value = value;
203
204
  }
204
205
  else {
205
- this.props.bind.value = value;
206
+ this.props.bind.value = decimal.toNumber(value);
206
207
  }
207
208
  this.setFocusedText(element);
208
209
  if (selectionIndex !== null) {
@@ -18,7 +18,7 @@ export interface IPagerControlsProps extends React.HTMLProps<HTMLUListElement> {
18
18
  /** Hides the pager if there is only one page. True by default. */
19
19
  autoHide?: boolean;
20
20
  /** Causes the page size control to show, with this label. */
21
- pageSizeLabel?: string | JSX.Element;
21
+ pageSizeLabel?: string | React.ReactNode;
22
22
  }
23
23
  export default class SimplePagerControls extends React.Component<IPagerControlsProps> {
24
24
  private iconFactory;
@@ -3,7 +3,7 @@ import { Data, Model } from "@singularsystems/neo-core";
3
3
  export interface IPageSizeControlProps {
4
4
  /** Page manager to control. */
5
5
  pageManager: Data.IPageManager;
6
- label?: string | JSX.Element;
6
+ label?: string | React.ReactNode;
7
7
  }
8
8
  export default class PageSizeControl extends React.Component<IPageSizeControlProps> {
9
9
  pageSize: Model.PropertyAccessor;
@@ -13,7 +13,7 @@ export interface IProgressBarProps {
13
13
  reverse?: boolean;
14
14
  }
15
15
  export default class ProgressBar extends React.Component<IProgressBarProps & React.HTMLProps<HTMLDivElement>> {
16
- innerRef: React.RefObject<HTMLDivElement>;
16
+ innerRef: React.RefObject<HTMLDivElement | null>;
17
17
  componentDidMount(): void;
18
18
  render(): React.JSX.Element;
19
19
  }
@@ -39,9 +39,9 @@ export interface ICommonEditorProps {
39
39
  /** Will show this text in a block after the input */
40
40
  appendText?: string;
41
41
  /** Additional element to include before the input element */
42
- prepend?: (() => JSX.Element) | JSX.Element | null;
42
+ prepend?: (() => React.ReactNode) | React.ReactNode | null;
43
43
  /** Additional element to include after the input element */
44
- append?: (() => JSX.Element) | JSX.Element | null;
44
+ append?: (() => React.ReactNode) | React.ReactNode | null;
45
45
  /** Icon name or component */
46
46
  prependIcon?: any;
47
47
  /** Icon name or component */
@@ -49,7 +49,7 @@ export interface ICommonEditorProps {
49
49
  /** True if append / prepend is set, which means this must be an editor as part of a bs editor group. */
50
50
  requiresGroup?: boolean;
51
51
  /** Reference to the input dom element */
52
- inputElement?: React.RefObject<HTMLElement>;
52
+ inputElement?: React.RefObject<HTMLElement | null>;
53
53
  }
54
54
  export interface IBindableEditorPropsNoBase extends ICommonEditorProps {
55
55
  bind: Model.IPropertyInstance;
@@ -79,7 +79,7 @@ interface IEditorSelectorProps<T> {
79
79
  }
80
80
  interface ICommonContainerOwnProps {
81
81
  /** Label / header text */
82
- label?: string | JSX.Element;
82
+ label?: string | React.ReactNode;
83
83
  /** True if the editor / display value should be suppressed. Children will still be rendered. */
84
84
  suppressDefaultContent?: boolean;
85
85
  /**
@@ -141,7 +141,7 @@ export declare class BindPropsHelper {
141
141
  static getBindProperty<T>(allProps: IEditorContainerProps<T, any>): Model.IPropertyInstance;
142
142
  static splitCommonEditorProps<T extends ICommonEditorProps>(props: T): {
143
143
  editor: ICommonEditorProps;
144
- rest: Omit<T, "append" | "prepend" | "disabled" | "readOnly" | "isDisabled" | "isReadOnly" | "prependText" | "appendText" | "prependIcon" | "appendIcon" | "inputElement">;
144
+ rest: Omit<T, "disabled" | "readOnly" | "isReadOnly" | "isDisabled" | "prependText" | "appendText" | "prepend" | "append" | "prependIcon" | "appendIcon" | "inputElement">;
145
145
  };
146
146
  static normaliseContainerProps<T, TContainerDom = React.HTMLProps<T>, TData = any>(component: IComponentBase, props: IEditorContainerProps<T, TData>, inGroup: boolean, isBootstrap?: boolean): IEditorContainerNormalisedProps<TContainerDom, TData>;
147
147
  static normaliseEditorProps<T, TDom = React.HTMLProps<T>>(component: IComponentBase, props: (IEditorAndSelectorProps<T, any> & TDom) | IEditorNormalisedProps<TDom, any>): IEditorNormalisedProps<TDom, any>;
@@ -4,19 +4,18 @@
4
4
  */
5
5
  import React from 'react';
6
6
  import { Model } from '@singularsystems/neo-core';
7
- import { SliderProps as ISliderLibProps, RangeProps as IRangeLibProps } from 'rc-slider';
7
+ import type { SliderProps as ISliderLibProps } from 'rc-slider';
8
8
  interface ICommonSliderProps {
9
9
  bind: Model.IPropertyInstance;
10
10
  onChangeEvent?: () => void;
11
11
  }
12
12
  interface ISliderSpecificProps extends ISliderLibProps, ICommonSliderProps {
13
13
  }
14
- interface IRangeSpecificProps extends IRangeLibProps, ICommonSliderProps {
14
+ interface IRangeSpecificProps extends ISliderLibProps, ICommonSliderProps {
15
15
  bindEnd: Model.IPropertyInstance;
16
16
  }
17
17
  export default class Slider extends React.Component<ISliderSpecificProps | IRangeSpecificProps> {
18
18
  private sliderImplementation;
19
- private rangeImplementation;
20
19
  private get isRange();
21
20
  private get rangeProps();
22
21
  private get sliderProps();
@@ -12,7 +12,6 @@ var Slider = /** @class */ (function (_super) {
12
12
  function Slider() {
13
13
  var _this = _super !== null && _super.apply(this, arguments) || this;
14
14
  _this.sliderImplementation = Misc.Globals.appService.get(NeoReactTypes.Components.Slider);
15
- _this.rangeImplementation = Misc.Globals.appService.get(NeoReactTypes.Components.Range);
16
15
  _this.onChangeHandler = function (value) {
17
16
  if (!(value instanceof Array)) {
18
17
  // This is a <Slider/>
@@ -61,7 +60,8 @@ var Slider = /** @class */ (function (_super) {
61
60
  var _a = this.rangeProps, bind = _a.bind, bindEnd = _a.bindEnd, onChangeEvent = _a.onChangeEvent, other = __rest(_a, ["bind", "bindEnd", "onChangeEvent"]);
62
61
  other.defaultValue = [bind.value, bindEnd.value];
63
62
  other.value = [bind.value, bindEnd.value];
64
- return React.createElement(this.rangeImplementation, __assign({}, other, { onChange: this.onChangeHandler }));
63
+ other.range = true;
64
+ return React.createElement(this.sliderImplementation, __assign({}, other, { onChange: this.onChangeHandler }));
65
65
  };
66
66
  Slider.prototype.render = function () {
67
67
  return (React.createElement("div", { className: "Slider" },
@@ -3,7 +3,7 @@ import { TabContext } from "./TabContainer";
3
3
  import { ICancellableEvent } from "../Misc";
4
4
  interface ITabProps {
5
5
  /** Name to show in the tab header. */
6
- header: string | JSX.Element;
6
+ header: string | React.ReactNode;
7
7
  /** Name used for binding to selected tab. */
8
8
  id?: string;
9
9
  /** Name used for binding to selected tab. (Same as id property) */
@@ -48,6 +48,9 @@ var Tab = /** @class */ (function (_super) {
48
48
  };
49
49
  Tab.prototype.renderHeader = function (isSelected) {
50
50
  var hasIcon = this.props.icon !== undefined;
51
+ if (hasIcon && Misc.Settings.icons.shouldSuppress({ icon: this.props.icon, component: "tab", props: this.props })) {
52
+ hasIcon = false;
53
+ }
51
54
  return (React.createElement("li", { className: "nav-item" },
52
55
  React.createElement("a", { className: "nav-link" + (isSelected ? " active" : "") + (this.props.disabled ? " disabled" : ""), href: "#", onClick: this.onClick },
53
56
  hasIcon && this.iconFactory.getIconComponent(this.props.icon),
@@ -1,6 +1,6 @@
1
1
  import { Components } from '@singularsystems/neo-core';
2
2
  import React, { HTMLAttributes } from 'react';
3
- export interface ITooltipProps extends Components.Tooltip.ITooltipOptions<string | JSX.Element> {
3
+ export interface ITooltipProps extends Components.Tooltip.ITooltipOptions<string | React.ReactNode> {
4
4
  /**
5
5
  * True if the div wrapping the content must display inline.
6
6
  */
@@ -15,10 +15,13 @@ export default class Tooltip extends React.Component<ITooltipProps> {
15
15
  private onMouseEnter;
16
16
  private onMouseLeave;
17
17
  render(): React.JSX.Element;
18
- static fromDataAttributes(element: JSX.Element, attributes: {
18
+ static fromDataAttributes(element: React.ReactNode, attributes: {
19
19
  [key: string]: any;
20
- }): React.JSX.Element;
20
+ }): string | number | bigint | boolean | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | React.JSX.Element | null | undefined;
21
21
  static setDomProperties(dom: HTMLAttributes<HTMLElement> & {
22
22
  [key: string]: any;
23
23
  }, tooltipOptions: string | Components.Tooltip.ITooltipOptions): void;
24
+ static hasTooltip(dom: HTMLAttributes<HTMLElement> & {
25
+ [key: string]: any;
26
+ }): boolean;
24
27
  }
@@ -46,6 +46,9 @@ var Tooltip = /** @class */ (function (_super) {
46
46
  dom["data-tip-pos"] = tooltipOptions.position;
47
47
  }
48
48
  };
49
+ Tooltip.hasTooltip = function (dom) {
50
+ return dom["data-tip"] !== undefined;
51
+ };
49
52
  return Tooltip;
50
53
  }(React.Component));
51
54
  export default Tooltip;
@@ -5,21 +5,20 @@ export default abstract class RouteView extends React.Component<unknown> {
5
5
  private routeProvider;
6
6
  private hasMounted;
7
7
  protected _routes: RouteProvider;
8
- protected getForbiddenComponent: (route: Routing.IRoute) => JSX.Element;
9
- protected getSigningInComponent: (route: Routing.IRoute) => JSX.Element;
8
+ protected getForbiddenComponent: (route: Routing.IRoute) => React.ReactNode;
9
+ protected getSigningInComponent: (route: Routing.IRoute) => React.ReactNode;
10
10
  protected securityService: import("@singularsystems/neo-core/dist/Security/ISecurityService").default;
11
11
  protected routeSecurityService: Routing.IRouteSecurityService;
12
12
  protected routingState: import("./RoutingState").RoutingState;
13
13
  constructor(props: unknown, routeProvider: RouteProvider);
14
14
  componentDidMount(): void;
15
- render(): JSX.Element | null;
15
+ render(): React.ReactNode;
16
16
  private getRouteComponent;
17
17
  /**
18
18
  * Creates the routes component after authentication and authorisation checks have been done.
19
19
  * This can be used to override all routes to display pages like terms and conditions.
20
- * To redirect to a route, return a react router <Redirect to= /> component.
21
20
  */
22
- protected getAuthorisedComponent(route: Routing.IRoute, path: string): JSX.Element;
21
+ protected getAuthorisedComponent(route: Routing.IRoute, path: string): React.ReactNode;
23
22
  /**
24
23
  * Checks if the user is authorised to access this route.
25
24
  * Component from getForbiddenComponent() is returned if not.
@@ -52,7 +52,6 @@ var RouteView = /** @class */ (function (_super) {
52
52
  /**
53
53
  * Creates the routes component after authentication and authorisation checks have been done.
54
54
  * This can be used to override all routes to display pages like terms and conditions.
55
- * To redirect to a route, return a react router <Redirect to= /> component.
56
55
  */
57
56
  RouteView.prototype.getAuthorisedComponent = function (route, path) {
58
57
  return React.createElement(route.component, null);
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import './Extensions';
1
2
  import NeoReactModule from './Modules/NeoReactModule';
2
3
  import { NeoReactTypes } from './Modules/Types';
3
4
  import * as Neo from './ReactComponents/_Exports';
@@ -10,4 +11,4 @@ import { TooltipHelper } from './ReactComponents/TooltipHelper';
10
11
  export { Icons, Managers, NeoReactModule, NeoReactTypes, Neo, NeoGrid, Routing, Views, TooltipHelper };
11
12
  export { Transition } from './ReactComponents/Transitions/Transition';
12
13
  export { TransitionController } from './ReactComponents/Transitions/TransitionController';
13
- export { ICancellableEvent } from './ReactComponents/Misc';
14
+ export type { ICancellableEvent } from './ReactComponents/Misc';
package/dist/index.js CHANGED
@@ -1,3 +1,4 @@
1
+ import './Extensions';
1
2
  import NeoReactModule from './Modules/NeoReactModule';
2
3
  import { NeoReactTypes } from './Modules/Types';
3
4
  import * as Neo from './ReactComponents/_Exports';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@singularsystems/neo-react",
3
- "version": "1.1.3",
3
+ "version": "1.2.0",
4
4
  "description": "React application logic and components for the Neo client library",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -17,34 +17,34 @@
17
17
  "license": "ISC",
18
18
  "devDependencies": {
19
19
  "@testing-library/dom": "10.4.0",
20
- "@testing-library/react": "16.0.1",
21
- "@types/jest": "29.5.13",
20
+ "@testing-library/react": "16.2.0",
21
+ "@types/jest": "29.5.14",
22
22
  "@types/memoize-one": "5.1.2",
23
- "@types/node": "22.7.4",
24
- "@types/react": "18.3.11",
25
- "@types/react-custom-scrollbars": "^4.0.6",
26
- "@types/react-dom": "18.3.0",
23
+ "@types/node": "22.13.4",
24
+ "@types/react": "19.0.10",
25
+ "@types/react-custom-scrollbars": "4.0.13",
26
+ "@types/react-dom": "19.0.4",
27
27
  "decimal.js-light": "2.5.1",
28
28
  "react-scripts": "5.0.1",
29
- "typescript": "5.5.2"
29
+ "typescript": "5.7.3"
30
30
  },
31
31
  "dependencies": {
32
- "@singularsystems/neo-core": "1.1.1",
33
- "@types/rc-slider": "^8.6.5",
34
- "@types/react-color": "^3.0.1",
35
- "axios": "1.7.7",
32
+ "@singularsystems/neo-core": "1.2.0",
33
+ "@types/react-color": "3.0.13",
34
+ "axios": "1.7.9",
36
35
  "inversify": "6.0.2",
37
36
  "memoize-one": "6.0.0",
38
- "mobx": "6.13.3",
39
- "mobx-react": "9.1.1",
40
- "react": "18.3.1",
37
+ "mobx": "6.13.6",
38
+ "mobx-react": "9.2.0",
39
+ "rc-slider": "11.1.8",
40
+ "react": "19.0.0",
41
41
  "react-custom-scrollbars": "4.2.1",
42
- "react-dom": "18.3.1",
43
- "react-select": "5.8.1",
44
- "tslib": "2.7.0"
42
+ "react-dom": "19.0.0",
43
+ "react-select": "5.10.0",
44
+ "tslib": "2.8.1"
45
45
  },
46
46
  "peerDependencies": {
47
- "@singularsystems/neo-core": ">=1.1.1",
47
+ "@singularsystems/neo-core": ">=1.2.0",
48
48
  "axios": ">=1.6.2",
49
49
  "inversify": ">=5.0.1",
50
50
  "mobx": ">=6.9.0",
@@ -52,7 +52,7 @@
52
52
  "react": ">=18.2.0",
53
53
  "react-dom": ">=18.2.0"
54
54
  },
55
- "packageManager": "yarn@4.5.0",
55
+ "packageManager": "yarn@4.6.0",
56
56
  "resolutions": {
57
57
  "@singularsystems/neo-core": "portal:../core"
58
58
  }