rsuite 5.6.4 → 5.7.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 (40) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/cjs/Checkbox/Checkbox.js +36 -25
  3. package/cjs/CheckboxGroup/CheckboxGroupContext.d.ts +1 -1
  4. package/cjs/CheckboxGroup/CheckboxGroupContext.js +1 -1
  5. package/cjs/Dropdown/DropdownMenu.js +1 -9
  6. package/cjs/Form/Form.js +11 -12
  7. package/cjs/Form/index.d.ts +1 -0
  8. package/cjs/Form/index.js +9 -0
  9. package/cjs/Form/useFormClassNames.d.ts +5 -0
  10. package/cjs/Form/useFormClassNames.js +31 -0
  11. package/cjs/InputNumber/InputNumber.js +2 -0
  12. package/cjs/Menu/MenuItem.js +1 -0
  13. package/cjs/Picker/DropdownMenuCheckItem.js +2 -1
  14. package/cjs/Uploader/index.d.ts +1 -1
  15. package/cjs/index.d.ts +1 -1
  16. package/cjs/index.js +5 -2
  17. package/cjs/utils/getDataGroupBy.d.ts +1 -1
  18. package/cjs/utils/getDataGroupBy.js +13 -3
  19. package/dist/rsuite.js +21 -10
  20. package/dist/rsuite.js.map +1 -1
  21. package/dist/rsuite.min.js +1 -1
  22. package/dist/rsuite.min.js.map +1 -1
  23. package/esm/Checkbox/Checkbox.js +36 -26
  24. package/esm/CheckboxGroup/CheckboxGroupContext.d.ts +1 -1
  25. package/esm/CheckboxGroup/CheckboxGroupContext.js +1 -1
  26. package/esm/Dropdown/DropdownMenu.js +1 -9
  27. package/esm/Form/Form.js +10 -10
  28. package/esm/Form/index.d.ts +1 -0
  29. package/esm/Form/index.js +1 -0
  30. package/esm/Form/useFormClassNames.d.ts +5 -0
  31. package/esm/Form/useFormClassNames.js +26 -0
  32. package/esm/InputNumber/InputNumber.js +2 -0
  33. package/esm/Menu/MenuItem.js +1 -0
  34. package/esm/Picker/DropdownMenuCheckItem.js +2 -1
  35. package/esm/Uploader/index.d.ts +1 -1
  36. package/esm/index.d.ts +1 -1
  37. package/esm/index.js +1 -1
  38. package/esm/utils/getDataGroupBy.d.ts +1 -1
  39. package/esm/utils/getDataGroupBy.js +10 -3
  40. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,3 +1,28 @@
1
+ # [5.7.0](https://github.com/rsuite/rsuite/compare/v5.6.6...v5.7.0) (2022-03-31)
2
+
3
+ ### Bug Fixes
4
+
5
+ - **Checkbox:** set checked attribute on underlying input ([#2419](https://github.com/rsuite/rsuite/issues/2419)) ([5ded872](https://github.com/rsuite/rsuite/commit/5ded8720c70c1fe4aee3941a81c0d7ec3b0c7423))
6
+ - **Dropdown:** Fix menu item hover highlight ([#2415](https://github.com/rsuite/rsuite/issues/2415)) ([59453cc](https://github.com/rsuite/rsuite/commit/59453cc0c3c6f648b2797c48473c22104e579b4a))
7
+ - **Dropdown:** Fixed Triggering onSelect twice on Dropdown Menu ([#2414](https://github.com/rsuite/rsuite/issues/2414)) ([e09eee5](https://github.com/rsuite/rsuite/commit/e09eee5f6dac88816ecbf8d20f3bb1b78f4afa71))
8
+
9
+ ### Features
10
+
11
+ - **Form:** export useFormClassNames hook ([#2420](https://github.com/rsuite/rsuite/issues/2420)) ([7e2bb85](https://github.com/rsuite/rsuite/commit/7e2bb8548103117a2df004f367fbde6609fcc216))
12
+
13
+ ## [5.6.6](https://github.com/rsuite/rsuite/compare/v5.6.5...v5.6.6) (2022-03-24)
14
+
15
+ ### Bug Fixes
16
+
17
+ - **InputNumber:** make plus/minus buttons unfocusable ([#2398](https://github.com/rsuite/rsuite/issues/2398)) ([ab4c721](https://github.com/rsuite/rsuite/commit/ab4c7218f20fd6aa6f4bad7818d403a3b6fd68df))
18
+ - **Uploader:** expose missing public types ([#2404](https://github.com/rsuite/rsuite/issues/2404)) ([5b1791f](https://github.com/rsuite/rsuite/commit/5b1791f0f0b23a230d03772178e9069bc16c8aa9))
19
+
20
+ ## [5.6.5](https://github.com/rsuite/rsuite/compare/v5.6.4...v5.6.5) (2022-03-17)
21
+
22
+ ### Features
23
+
24
+ - **Pickers:** `groupBy` supports dot notation ([#2397](https://github.com/rsuite/rsuite/issues/2397)) ([2ba7c0b](https://github.com/rsuite/rsuite/commit/2ba7c0b622c68b2fc526aa7ad2feaa8e73767e9c))
25
+
1
26
  ## [5.6.4](https://github.com/rsuite/rsuite/compare/v5.6.3...v5.6.4) (2022-03-10)
2
27
 
3
28
  ### Bug Fixes
@@ -24,15 +24,15 @@ var _CheckboxGroup = require("../CheckboxGroup");
24
24
  var _templateObject, _templateObject2, _templateObject3;
25
25
 
26
26
  var Checkbox = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
27
- var _useContext = (0, _react.useContext)(_CheckboxGroup.CheckboxGroupContext),
28
- inlineContext = _useContext.inline,
29
- nameContext = _useContext.name,
30
- disabledContext = _useContext.disabled,
31
- readOnlyContext = _useContext.readOnly,
32
- plaintextContext = _useContext.plaintext,
33
- groupValue = _useContext.value,
34
- controlled = _useContext.controlled,
35
- onGroupChange = _useContext.onChange;
27
+ var checkboxGroupContext = (0, _react.useContext)(_CheckboxGroup.CheckboxGroupContext);
28
+
29
+ var _ref = checkboxGroupContext !== null && checkboxGroupContext !== void 0 ? checkboxGroupContext : {},
30
+ inlineContext = _ref.inline,
31
+ nameContext = _ref.name,
32
+ disabledContext = _ref.disabled,
33
+ readOnlyContext = _ref.readOnly,
34
+ plaintextContext = _ref.plaintext,
35
+ onGroupChange = _ref.onChange;
36
36
 
37
37
  var _props$as = props.as,
38
38
  Component = _props$as === void 0 ? 'div' : _props$as,
@@ -43,7 +43,8 @@ var Checkbox = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
43
43
  classPrefix = _props$classPrefix === void 0 ? 'checkbox' : _props$classPrefix,
44
44
  _props$checkable = props.checkable,
45
45
  checkable = _props$checkable === void 0 ? true : _props$checkable,
46
- defaultChecked = props.defaultChecked,
46
+ _props$defaultChecked = props.defaultChecked,
47
+ defaultChecked = _props$defaultChecked === void 0 ? false : _props$defaultChecked,
47
48
  title = props.title,
48
49
  inputRef = props.inputRef,
49
50
  inputProps = props.inputProps,
@@ -65,19 +66,25 @@ var Checkbox = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
65
66
  onCheckboxClick = props.onCheckboxClick,
66
67
  onChange = props.onChange,
67
68
  rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["as", "checked", "className", "children", "classPrefix", "checkable", "defaultChecked", "title", "inputRef", "inputProps", "indeterminate", "tabIndex", "disabled", "readOnly", "plaintext", "inline", "name", "value", "onClick", "onCheckboxClick", "onChange"]);
68
- var isChecked = (0, _react.useCallback)(function () {
69
- if (typeof groupValue !== 'undefined' && typeof value !== 'undefined') {
70
- return groupValue.some(function (i) {
71
- return i === value;
72
- });
73
- }
74
69
 
75
- return controlledChecked;
76
- }, [controlledChecked, groupValue, value]);
70
+ var _useControlled = (0, _utils.useControlled)(controlledChecked, defaultChecked),
71
+ selfChecked = _useControlled[0],
72
+ setSelfChecked = _useControlled[1],
73
+ selfControlled = _useControlled[2]; // Either <Checkbox> is checked itself or by parent <CheckboxGroup>
74
+
75
+
76
+ var checked = (0, _react.useMemo)(function () {
77
+ var _checkboxGroupContext, _checkboxGroupContext2;
77
78
 
78
- var _useControlled = (0, _utils.useControlled)(isChecked(), defaultChecked),
79
- checked = _useControlled[0],
80
- setChecked = _useControlled[1];
79
+ if (!checkboxGroupContext) {
80
+ return selfChecked;
81
+ } // fixme value from group should not be nullable
82
+
83
+
84
+ return (_checkboxGroupContext = (_checkboxGroupContext2 = checkboxGroupContext.value) === null || _checkboxGroupContext2 === void 0 ? void 0 : _checkboxGroupContext2.some(function (checkedValue) {
85
+ return checkedValue === value;
86
+ })) !== null && _checkboxGroupContext !== void 0 ? _checkboxGroupContext : false;
87
+ }, [checkboxGroupContext, selfChecked, value]);
81
88
 
82
89
  var _useClassNames = (0, _utils.useClassNames)(classPrefix),
83
90
  merge = _useClassNames.merge,
@@ -93,7 +100,11 @@ var Checkbox = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
93
100
 
94
101
  var _partitionHTMLProps = (0, _utils.partitionHTMLProps)(rest),
95
102
  htmlInputProps = _partitionHTMLProps[0],
96
- restProps = _partitionHTMLProps[1];
103
+ restProps = _partitionHTMLProps[1]; // If <Checkbox> is within a <CheckboxGroup>, it's bound to be controlled
104
+ // because its checked state is inferred from group's value, not retrieved from the DOM
105
+
106
+
107
+ var controlled = checkboxGroupContext ? true : selfControlled;
97
108
 
98
109
  if (typeof controlled !== 'undefined') {
99
110
  // In uncontrolled situations, use defaultChecked instead of checked
@@ -101,16 +112,16 @@ var Checkbox = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
101
112
  }
102
113
 
103
114
  var handleChange = (0, _react.useCallback)(function (event) {
104
- var nextChecked = !checked;
115
+ var nextChecked = !event.target.checked;
105
116
 
106
117
  if (disabled || readOnly) {
107
118
  return;
108
119
  }
109
120
 
110
- setChecked(nextChecked);
121
+ setSelfChecked(nextChecked);
111
122
  onChange === null || onChange === void 0 ? void 0 : onChange(value, nextChecked, event);
112
123
  onGroupChange === null || onGroupChange === void 0 ? void 0 : onGroupChange(value, nextChecked, event);
113
- }, [checked, disabled, readOnly, setChecked, onChange, value, onGroupChange]);
124
+ }, [disabled, readOnly, setSelfChecked, onChange, value, onGroupChange]);
114
125
 
115
126
  if (plaintext) {
116
127
  return checked ? /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, restProps, {
@@ -10,4 +10,4 @@ export interface CheckboxGroupContextValue {
10
10
  plaintext?: boolean;
11
11
  onChange?: (value: any, checked: boolean, event: React.ChangeEvent<HTMLInputElement>) => void;
12
12
  }
13
- export declare const CheckboxGroupContext: React.Context<CheckboxGroupContextValue>;
13
+ export declare const CheckboxGroupContext: React.Context<CheckboxGroupContextValue | undefined>;
@@ -7,6 +7,6 @@ exports.CheckboxGroupContext = void 0;
7
7
 
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
 
10
- var CheckboxGroupContext = /*#__PURE__*/_react.default.createContext({});
10
+ var CheckboxGroupContext = /*#__PURE__*/_react.default.createContext(void 0);
11
11
 
12
12
  exports.CheckboxGroupContext = CheckboxGroupContext;
@@ -111,15 +111,7 @@ var DropdownMenu = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
111
111
  return /*#__PURE__*/_react.default.createElement(_DropdownContext.default.Provider, {
112
112
  value: contextValue
113
113
  }, /*#__PURE__*/_react.default.createElement(_Menubar.default, {
114
- vertical: true,
115
- onActivateItem: function onActivateItem(event) {
116
- var _dataset = event.target.dataset,
117
- eventKey = _dataset.eventKey,
118
- eventKeyType = _dataset.eventKeyType; // Only cast number type for now
119
-
120
- var eventKeyToEmit = eventKeyType === 'number' ? Number(eventKey) : eventKey;
121
- onSelect === null || onSelect === void 0 ? void 0 : onSelect(eventKeyToEmit, event);
122
- }
114
+ vertical: true
123
115
  }, function (menubar, menubarRef) {
124
116
  return /*#__PURE__*/_react.default.createElement("ul", (0, _extends2.default)({
125
117
  ref: (0, _utils.mergeRefs)(menubarRef, ref),
package/cjs/Form/Form.js CHANGED
@@ -21,8 +21,6 @@ var _omit = _interopRequireDefault(require("lodash/omit"));
21
21
 
22
22
  var _schemaTyped = require("schema-typed");
23
23
 
24
- var _utils = require("../utils");
25
-
26
24
  var _FormContext = _interopRequireWildcard(require("./FormContext"));
27
25
 
28
26
  var _FormControl = _interopRequireDefault(require("../FormControl"));
@@ -35,6 +33,8 @@ var _FormGroup = _interopRequireDefault(require("../FormGroup"));
35
33
 
36
34
  var _FormHelpText = _interopRequireDefault(require("../FormHelpText"));
37
35
 
36
+ var _useFormClassNames = require("./useFormClassNames");
37
+
38
38
  var Form = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
39
39
  var _props$checkTrigger = props.checkTrigger,
40
40
  checkTrigger = _props$checkTrigger === void 0 ? 'change' : _props$checkTrigger,
@@ -61,16 +61,15 @@ var Form = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
61
61
  onError = props.onError,
62
62
  onChange = props.onChange,
63
63
  rest = (0, _objectWithoutPropertiesLoose2.default)(props, ["checkTrigger", "classPrefix", "errorFromContext", "formDefaultValue", "formValue", "formError", "fluid", "layout", "model", "readOnly", "plaintext", "className", "children", "disabled", "onSubmit", "onCheck", "onError", "onChange"]);
64
-
65
- var _useClassNames = (0, _utils.useClassNames)(classPrefix),
66
- withClassPrefix = _useClassNames.withClassPrefix,
67
- merge = _useClassNames.merge;
68
-
69
- var classes = merge(className, withClassPrefix(layout, fluid && layout === 'vertical' ? 'fluid' : 'fixed-width', {
70
- readonly: readOnly,
71
- disabled: disabled,
72
- plaintext: plaintext
73
- }));
64
+ var classes = (0, _useFormClassNames.useFormClassNames)({
65
+ classPrefix: classPrefix,
66
+ className: className,
67
+ fluid: fluid,
68
+ layout: layout,
69
+ readOnly: readOnly,
70
+ plaintext: plaintext,
71
+ disabled: disabled
72
+ });
74
73
 
75
74
  var _useState = (0, _react.useState)(formDefaultValue),
76
75
  _formValue = _useState[0],
@@ -5,4 +5,5 @@ export type { FormErrorMessageProps } from '../FormErrorMessage';
5
5
  export type { FormControlLabelProps } from '../FormControlLabel';
6
6
  export type { FormHelpTextProps } from '../FormHelpText';
7
7
  export type { FormControlProps } from '../FormControl';
8
+ export * from './useFormClassNames';
8
9
  export default Form;
package/cjs/Form/index.js CHANGED
@@ -3,9 +3,18 @@
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
5
  exports.__esModule = true;
6
+ var _exportNames = {};
6
7
  exports.default = void 0;
7
8
 
8
9
  var _Form = _interopRequireDefault(require("./Form"));
9
10
 
11
+ var _useFormClassNames = require("./useFormClassNames");
12
+
13
+ Object.keys(_useFormClassNames).forEach(function (key) {
14
+ if (key === "default" || key === "__esModule") return;
15
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
16
+ if (key in exports && exports[key] === _useFormClassNames[key]) return;
17
+ exports[key] = _useFormClassNames[key];
18
+ });
10
19
  var _default = _Form.default;
11
20
  exports.default = _default;
@@ -0,0 +1,5 @@
1
+ import type { FormProps } from './Form';
2
+ /**
3
+ * Take <Form> props and return className for <Form> styles
4
+ */
5
+ export declare function useFormClassNames({ classPrefix, className, fluid, layout, readOnly, plaintext, disabled }: Pick<FormProps, 'classPrefix' | 'className' | 'fluid' | 'layout' | 'readOnly' | 'plaintext' | 'disabled'>): string;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.useFormClassNames = useFormClassNames;
5
+
6
+ var _utils = require("../utils");
7
+
8
+ /**
9
+ * Take <Form> props and return className for <Form> styles
10
+ */
11
+ function useFormClassNames(_ref) {
12
+ var _ref$classPrefix = _ref.classPrefix,
13
+ classPrefix = _ref$classPrefix === void 0 ? 'form' : _ref$classPrefix,
14
+ className = _ref.className,
15
+ fluid = _ref.fluid,
16
+ _ref$layout = _ref.layout,
17
+ layout = _ref$layout === void 0 ? 'vertical' : _ref$layout,
18
+ readOnly = _ref.readOnly,
19
+ plaintext = _ref.plaintext,
20
+ disabled = _ref.disabled;
21
+
22
+ var _useClassNames = (0, _utils.useClassNames)(classPrefix),
23
+ withClassPrefix = _useClassNames.withClassPrefix,
24
+ merge = _useClassNames.merge;
25
+
26
+ return merge(className, withClassPrefix(layout, fluid && layout === 'vertical' ? 'fluid' : 'fixed-width', {
27
+ readonly: readOnly,
28
+ disabled: disabled,
29
+ plaintext: plaintext
30
+ }));
31
+ }
@@ -288,11 +288,13 @@ var InputNumber = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
288
288
  }), prefixElement && /*#__PURE__*/_react.default.createElement(_InputGroupAddon.default, null, prefixElement), input, /*#__PURE__*/_react.default.createElement("span", {
289
289
  className: prefix('btn-group-vertical')
290
290
  }, /*#__PURE__*/_react.default.createElement(_Button.default, {
291
+ tabIndex: -1,
291
292
  appearance: buttonAppearance,
292
293
  className: prefix('touchspin-up'),
293
294
  onClick: handlePlus,
294
295
  disabled: disabledUpButton || disabled || readOnly
295
296
  }, /*#__PURE__*/_react.default.createElement(_AngleUp.default, null)), /*#__PURE__*/_react.default.createElement(_Button.default, {
297
+ tabIndex: -1,
296
298
  appearance: buttonAppearance,
297
299
  className: prefix('touchspin-down'),
298
300
  onClick: handleMinus,
@@ -111,6 +111,7 @@ function MenuItem(props) {
111
111
 
112
112
  if ((menuState === null || menuState === void 0 ? void 0 : menuState.role) === 'menubar') {
113
113
  menuitemProps.onMouseDown = handleMouseDown;
114
+ menuitemProps.onMouseOver = handleMouseMove;
114
115
  }
115
116
 
116
117
  return children(menuitemProps, menuitemRef);
@@ -20,7 +20,8 @@ var _utils = require("../utils");
20
20
  var _Checkbox = _interopRequireDefault(require("../Checkbox"));
21
21
 
22
22
  var DropdownMenuCheckItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
23
- var active = props.active,
23
+ var _props$active = props.active,
24
+ active = _props$active === void 0 ? false : _props$active,
24
25
  _props$as = props.as,
25
26
  Component = _props$as === void 0 ? 'div' : _props$as,
26
27
  _props$checkboxAs = props.checkboxAs,
@@ -1,3 +1,3 @@
1
1
  import Uploader from './Uploader';
2
- export type { UploaderProps } from './Uploader';
2
+ export type { UploaderProps, FileStatusType, FileType } from './Uploader';
3
3
  export default Uploader;
package/cjs/index.d.ts CHANGED
@@ -50,7 +50,7 @@ export { default as Steps } from './Steps';
50
50
  export type { StepsProps, StepItemProps } from './Steps';
51
51
  export { default as Toggle } from './Toggle';
52
52
  export type { ToggleProps } from './Toggle';
53
- export { default as Form } from './Form';
53
+ export { default as Form, useFormClassNames } from './Form';
54
54
  export type { FormProps, FormGroupProps, FormErrorMessageProps, FormControlLabelProps, FormHelpTextProps, FormControlProps } from './Form';
55
55
  export { default as Input } from './Input';
56
56
  export type { InputProps } from './Input';
package/cjs/index.js CHANGED
@@ -1,9 +1,11 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
+
3
5
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
6
 
5
7
  exports.__esModule = true;
6
- exports.CustomProvider = exports.Affix = exports.DOMHelper = exports.Animation = exports.Schema = exports.Stack = exports.Divider = exports.Footer = exports.Sidebar = exports.Header = exports.Content = exports.Container = exports.FlexboxGrid = exports.Col = exports.Row = exports.Grid = exports.Carousel = exports.Calendar = exports.List = exports.TagGroup = exports.Tag = exports.Timeline = exports.Progress = exports.Table = exports.PanelGroup = exports.Panel = exports.CheckTree = exports.Tree = exports.Rate = exports.RangeSlider = exports.Slider = exports.Uploader = exports.AutoComplete = exports.DateRangePicker = exports.DatePicker = exports.MultiCascader = exports.Cascader = exports.CheckTreePicker = exports.TreePicker = exports.TagInput = exports.TagPicker = exports.InputPicker = exports.CheckPicker = exports.SelectPicker = exports.RadioGroup = exports.Radio = exports.CheckboxGroup = exports.Checkbox = exports.InputGroup = exports.InputNumber = exports.MaskedInput = exports.Input = exports.Form = exports.Toggle = exports.Steps = exports.Pagination = exports.Breadcrumb = exports.Sidenav = exports.Navbar = exports.Nav = exports.Dropdown = exports.toaster = exports.AvatarGroup = exports.Avatar = exports.Badge = exports.Placeholder = exports.SafeAnchor = exports.Loader = exports.Drawer = exports.Message = exports.Notification = exports.Modal = exports.Popover = exports.Tooltip = exports.Whisper = exports.ButtonGroup = exports.ButtonToolbar = exports.IconButton = exports.Button = void 0;
8
+ exports.useFormClassNames = exports.CustomProvider = exports.Affix = exports.DOMHelper = exports.Animation = exports.Schema = exports.Stack = exports.Divider = exports.Footer = exports.Sidebar = exports.Header = exports.Content = exports.Container = exports.FlexboxGrid = exports.Col = exports.Row = exports.Grid = exports.Carousel = exports.Calendar = exports.List = exports.TagGroup = exports.Tag = exports.Timeline = exports.Progress = exports.Table = exports.PanelGroup = exports.Panel = exports.CheckTree = exports.Tree = exports.Rate = exports.RangeSlider = exports.Slider = exports.Uploader = exports.AutoComplete = exports.DateRangePicker = exports.DatePicker = exports.MultiCascader = exports.Cascader = exports.CheckTreePicker = exports.TreePicker = exports.TagInput = exports.TagPicker = exports.InputPicker = exports.CheckPicker = exports.SelectPicker = exports.RadioGroup = exports.Radio = exports.CheckboxGroup = exports.Checkbox = exports.InputGroup = exports.InputNumber = exports.MaskedInput = exports.Input = exports.Form = exports.Toggle = exports.Steps = exports.Pagination = exports.Breadcrumb = exports.Sidenav = exports.Navbar = exports.Nav = exports.Dropdown = exports.toaster = exports.AvatarGroup = exports.Avatar = exports.Badge = exports.Placeholder = exports.SafeAnchor = exports.Loader = exports.Drawer = exports.Message = exports.Notification = exports.Modal = exports.Popover = exports.Tooltip = exports.Whisper = exports.ButtonGroup = exports.ButtonToolbar = exports.IconButton = exports.Button = void 0;
7
9
 
8
10
  var _Button = _interopRequireDefault(require("./Button"));
9
11
 
@@ -109,9 +111,10 @@ var _Toggle = _interopRequireDefault(require("./Toggle"));
109
111
 
110
112
  exports.Toggle = _Toggle.default;
111
113
 
112
- var _Form = _interopRequireDefault(require("./Form"));
114
+ var _Form = _interopRequireWildcard(require("./Form"));
113
115
 
114
116
  exports.Form = _Form.default;
117
+ exports.useFormClassNames = _Form.useFormClassNames;
115
118
 
116
119
  var _Input = _interopRequireDefault(require("./Input"));
117
120
 
@@ -1,3 +1,3 @@
1
1
  export declare const KEY_GROUP: string | symbol;
2
2
  export declare const KEY_GROUP_TITLE = "groupTitle";
3
- export default function getDataGroupBy(data: any[] | undefined, key: string, sort: any): any[];
3
+ export default function getDataGroupBy(data: any[] | undefined, key: string, sort?: any): any[];
@@ -1,9 +1,13 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
3
5
  exports.__esModule = true;
4
6
  exports.default = getDataGroupBy;
5
7
  exports.KEY_GROUP_TITLE = exports.KEY_GROUP = void 0;
6
8
 
9
+ var _get2 = _interopRequireDefault(require("lodash/get"));
10
+
7
11
  var _treeUtils = require("../utils/treeUtils");
8
12
 
9
13
  var hasSymbol = typeof Symbol === 'function';
@@ -20,11 +24,17 @@ function getDataGroupBy(data, key, sort) {
20
24
  var tempData = {};
21
25
  var isSort = typeof sort === 'function';
22
26
  data.forEach(function (item) {
23
- if (!tempData[item[key]]) {
24
- tempData[item[key]] = [];
27
+ // this will allow getting data using dot notation
28
+ // i.e groupBy="country.name" as country will be a nested object
29
+ // to the item and the name will be nested key to the country object
30
+ // can be used with values in arrays, i.e groupBy="addresses.0.country.name"
31
+ var groupByValue = (0, _get2.default)(item, key, '');
32
+
33
+ if (!tempData[groupByValue]) {
34
+ tempData[groupByValue] = [];
25
35
  }
26
36
 
27
- tempData[item[key]].push(item);
37
+ tempData[groupByValue].push(item);
28
38
  });
29
39
  var nextData = Object.entries(tempData).map(function (_ref) {
30
40
  var _ref2;