@elliemae/ds-menu 2.2.0-alpha.5 → 2.2.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/cjs/Menu.js +181 -137
  2. package/cjs/MenuCombobox.js +53 -67
  3. package/cjs/MenuContext.js +11 -38
  4. package/cjs/MenuItems/CheckboxGroup.js +42 -49
  5. package/cjs/MenuItems/MenuItem.js +163 -116
  6. package/cjs/MenuItems/MenuItemCheckable.js +108 -77
  7. package/cjs/MenuItems/MenuItemCheckbox.js +41 -47
  8. package/cjs/MenuItems/MenuItemRadio.js +38 -50
  9. package/cjs/MenuItems/RadioGroup.js +39 -48
  10. package/cjs/MenuItems/SearchableGroup.js +92 -88
  11. package/cjs/MenuItems/SearchableList.js +95 -92
  12. package/cjs/MenuItems/SelectionGroup.js +90 -85
  13. package/cjs/MenuItems/Separator.js +40 -55
  14. package/cjs/MenuItems/SubMenu.js +160 -143
  15. package/cjs/MenuItems/menuItemFactory.js +71 -39
  16. package/cjs/VirtualMenuList.js +39 -69
  17. package/cjs/index.js +36 -63
  18. package/cjs/utils/useHeightByAmountOfItems.js +14 -43
  19. package/esm/Menu.js +149 -91
  20. package/esm/MenuCombobox.js +45 -38
  21. package/esm/MenuContext.js +5 -9
  22. package/esm/MenuItems/CheckboxGroup.js +31 -19
  23. package/esm/MenuItems/MenuItem.js +148 -84
  24. package/esm/MenuItems/MenuItemCheckable.js +96 -47
  25. package/esm/MenuItems/MenuItemCheckbox.js +33 -18
  26. package/esm/MenuItems/MenuItemRadio.js +28 -20
  27. package/esm/MenuItems/RadioGroup.js +28 -18
  28. package/esm/MenuItems/SearchableGroup.js +76 -53
  29. package/esm/MenuItems/SearchableList.js +82 -59
  30. package/esm/MenuItems/SelectionGroup.js +78 -54
  31. package/esm/MenuItems/Separator.js +29 -26
  32. package/esm/MenuItems/SubMenu.js +140 -107
  33. package/esm/MenuItems/menuItemFactory.js +63 -11
  34. package/esm/VirtualMenuList.js +32 -39
  35. package/esm/index.js +13 -34
  36. package/esm/utils/useHeightByAmountOfItems.js +11 -13
  37. package/package.json +11 -19
  38. package/types/Menu.d.ts +4 -22
  39. package/types/MenuContext.d.ts +2 -3
  40. package/types/MenuItems/CheckboxGroup.d.ts +6 -6
  41. package/types/MenuItems/MenuItem.d.ts +6 -6
  42. package/types/MenuItems/MenuItemCheckable.d.ts +15 -24
  43. package/types/MenuItems/MenuItemCheckbox.d.ts +2 -3
  44. package/types/MenuItems/MenuItemRadio.d.ts +6 -15
  45. package/types/MenuItems/RadioGroup.d.ts +6 -6
  46. package/types/MenuItems/SearchableGroup.d.ts +4 -12
  47. package/types/MenuItems/SearchableList.d.ts +17 -28
  48. package/types/MenuItems/SelectionGroup.d.ts +17 -28
  49. package/types/MenuItems/Separator.d.ts +2 -6
  50. package/types/MenuItems/SubMenu.d.ts +19 -32
  51. package/types/MenuItems/menuItemFactory.d.ts +3 -2
  52. package/types/VirtualMenuList.d.ts +1 -3
  53. package/types/index.d.ts +2 -3
  54. package/types/utils/useHeightByAmountOfItems.d.ts +1 -3
  55. package/cjs/Menu.js.map +0 -7
  56. package/cjs/MenuCombobox.js.map +0 -7
  57. package/cjs/MenuContext.js.map +0 -7
  58. package/cjs/MenuExports.js +0 -28
  59. package/cjs/MenuExports.js.map +0 -7
  60. package/cjs/MenuItems/CheckboxGroup.js.map +0 -7
  61. package/cjs/MenuItems/MenuItem.js.map +0 -7
  62. package/cjs/MenuItems/MenuItemCheckable.js.map +0 -7
  63. package/cjs/MenuItems/MenuItemCheckbox.js.map +0 -7
  64. package/cjs/MenuItems/MenuItemRadio.js.map +0 -7
  65. package/cjs/MenuItems/RadioGroup.js.map +0 -7
  66. package/cjs/MenuItems/SearchableGroup.js.map +0 -7
  67. package/cjs/MenuItems/SearchableList.js.map +0 -7
  68. package/cjs/MenuItems/SelectionGroup.js.map +0 -7
  69. package/cjs/MenuItems/Separator.js.map +0 -7
  70. package/cjs/MenuItems/SubMenu.js.map +0 -7
  71. package/cjs/MenuItems/menuItemFactory.js.map +0 -7
  72. package/cjs/MenuItems/renderMenuItems.js +0 -53
  73. package/cjs/MenuItems/renderMenuItems.js.map +0 -7
  74. package/cjs/VirtualMenuList.js.map +0 -7
  75. package/cjs/index.js.map +0 -7
  76. package/cjs/utils/useHeightByAmountOfItems.js.map +0 -7
  77. package/esm/Menu.js.map +0 -7
  78. package/esm/MenuCombobox.js.map +0 -7
  79. package/esm/MenuContext.js.map +0 -7
  80. package/esm/MenuExports.js +0 -3
  81. package/esm/MenuExports.js.map +0 -7
  82. package/esm/MenuItems/CheckboxGroup.js.map +0 -7
  83. package/esm/MenuItems/MenuItem.js.map +0 -7
  84. package/esm/MenuItems/MenuItemCheckable.js.map +0 -7
  85. package/esm/MenuItems/MenuItemCheckbox.js.map +0 -7
  86. package/esm/MenuItems/MenuItemRadio.js.map +0 -7
  87. package/esm/MenuItems/RadioGroup.js.map +0 -7
  88. package/esm/MenuItems/SearchableGroup.js.map +0 -7
  89. package/esm/MenuItems/SearchableList.js.map +0 -7
  90. package/esm/MenuItems/SelectionGroup.js.map +0 -7
  91. package/esm/MenuItems/Separator.js.map +0 -7
  92. package/esm/MenuItems/SubMenu.js.map +0 -7
  93. package/esm/MenuItems/menuItemFactory.js.map +0 -7
  94. package/esm/MenuItems/renderMenuItems.js +0 -24
  95. package/esm/MenuItems/renderMenuItems.js.map +0 -7
  96. package/esm/VirtualMenuList.js.map +0 -7
  97. package/esm/index.js.map +0 -7
  98. package/esm/utils/useHeightByAmountOfItems.js.map +0 -7
  99. package/types/MenuExports.d.ts +0 -1
  100. package/types/MenuItems/renderMenuItems.d.ts +0 -1
@@ -1,8 +1,8 @@
1
1
  /// <reference path="../../../../../shared/typings/react-desc.d.ts" />
2
2
  /// <reference types="react" />
3
- declare const CheckboxGroup: {
4
- (props: any): JSX.Element;
5
- propTypes: {
3
+ declare function CheckboxGroup(props: any): JSX.Element;
4
+ declare namespace CheckboxGroup {
5
+ var propTypes: {
6
6
  active: {
7
7
  defaultValue(arg: import("react-desc").ReactDescPossibleDefaultValues): {
8
8
  deprecated: import("react-desc").PropTypesDescValidator;
@@ -22,11 +22,11 @@ declare const CheckboxGroup: {
22
22
  isRequired: import("react-desc").PropTypesDescValue;
23
23
  };
24
24
  };
25
- };
25
+ }
26
26
  declare const DSMenuCheckboxGroupWithSchema: {
27
- (props?: any): JSX.Element;
27
+ (props?: unknown): JSX.Element;
28
28
  propTypes: unknown;
29
29
  toTypescript: () => import("react-desc").TypescriptSchema;
30
30
  };
31
- export { DSMenuCheckboxGroupWithSchema, CheckboxGroup };
32
31
  export default CheckboxGroup;
32
+ export { DSMenuCheckboxGroupWithSchema };
@@ -1,8 +1,8 @@
1
1
  /// <reference path="../../../../../shared/typings/react-desc.d.ts" />
2
2
  /// <reference types="react" />
3
- declare const MenuItem: {
4
- (props: any): JSX.Element;
5
- propTypes: {
3
+ declare function MenuItem(props: any): JSX.Element;
4
+ declare namespace MenuItem {
5
+ var propTypes: {
6
6
  /** Renders the MenuItem with a specific html element */
7
7
  as: {
8
8
  defaultValue(arg: import("react-desc").ReactDescPossibleDefaultValues): {
@@ -69,11 +69,11 @@ declare const MenuItem: {
69
69
  isRequired: import("react-desc").PropTypesDescValue;
70
70
  };
71
71
  };
72
- };
72
+ }
73
73
  declare const DSMenuItemWithSchema: {
74
- (props?: any): JSX.Element;
74
+ (props?: unknown): JSX.Element;
75
75
  propTypes: unknown;
76
76
  toTypescript: () => import("react-desc").TypescriptSchema;
77
77
  };
78
- export { DSMenuItemWithSchema, MenuItem };
79
78
  export default MenuItem;
79
+ export { DSMenuItemWithSchema };
@@ -12,18 +12,18 @@
12
12
  * @param root0.leftAddon
13
13
  * @param root0.item
14
14
  */
15
- declare const MenuItemCheckable: {
16
- ({ role, checked, name, checkIcon, children, leftAddon, item, ...otherProps }: {
17
- [x: string]: any;
18
- role?: string | undefined;
19
- checked?: boolean | undefined;
20
- name?: string | undefined;
21
- checkIcon?: JSX.Element | undefined;
22
- children: any;
23
- leftAddon: any;
24
- item?: undefined;
25
- }): JSX.Element;
26
- propTypes: {
15
+ declare function MenuItemCheckable({ role, checked, name, checkIcon, children, leftAddon, item, ...otherProps }: {
16
+ [x: string]: any;
17
+ role?: string | undefined;
18
+ checked?: boolean | undefined;
19
+ name?: string | undefined;
20
+ checkIcon?: JSX.Element | undefined;
21
+ children: any;
22
+ leftAddon: any;
23
+ item?: undefined;
24
+ }): JSX.Element;
25
+ declare namespace MenuItemCheckable {
26
+ var propTypes: {
27
27
  /** Whether the item is checked or not */
28
28
  checked: {
29
29
  defaultValue(arg: import("react-desc").ReactDescPossibleDefaultValues): {
@@ -67,20 +67,11 @@ declare const MenuItemCheckable: {
67
67
  isRequired: import("react-desc").PropTypesDescValue;
68
68
  };
69
69
  };
70
- };
70
+ }
71
71
  declare const DSMenuItemCheckeableWithSchema: {
72
- (props?: {
73
- [x: string]: any;
74
- role?: string | undefined;
75
- checked?: boolean | undefined;
76
- name?: string | undefined;
77
- checkIcon?: JSX.Element | undefined;
78
- children: any;
79
- leftAddon: any;
80
- item?: undefined;
81
- } | undefined): JSX.Element;
72
+ (props?: unknown): JSX.Element;
82
73
  propTypes: unknown;
83
74
  toTypescript: () => import("react-desc").TypescriptSchema;
84
75
  };
85
- export { DSMenuItemCheckeableWithSchema, MenuItemCheckable };
86
76
  export default MenuItemCheckable;
77
+ export { DSMenuItemCheckeableWithSchema };
@@ -1,7 +1,6 @@
1
1
  /// <reference types="react" />
2
- declare const MenuItemCheckbox: ({ checked, ...rest }: {
2
+ declare function MenuItemCheckbox({ checked, ...rest }: {
3
3
  [x: string]: any;
4
4
  checked: any;
5
- }) => JSX.Element;
6
- export { MenuItemCheckbox };
5
+ }): JSX.Element;
7
6
  export default MenuItemCheckbox;
@@ -1,8 +1,8 @@
1
1
  /// <reference path="../../../../../shared/typings/react-desc.d.ts" />
2
2
  /// <reference types="react" />
3
- declare const MenuItemRadio: {
4
- (props: any): JSX.Element;
5
- propTypes: {
3
+ declare function MenuItemRadio(props: any): JSX.Element;
4
+ declare namespace MenuItemRadio {
5
+ var propTypes: {
6
6
  /** Whether the item is checked or not */
7
7
  checked: {
8
8
  defaultValue(arg: import("react-desc").ReactDescPossibleDefaultValues): {
@@ -18,20 +18,11 @@ declare const MenuItemRadio: {
18
18
  isRequired: import("react-desc").PropTypesDescValue;
19
19
  };
20
20
  };
21
- };
21
+ }
22
22
  declare const DSMenuItemRadioWithSchema: {
23
- (props?: {
24
- [x: string]: any;
25
- role?: string | undefined;
26
- checked?: boolean | undefined;
27
- name?: string | undefined;
28
- checkIcon?: JSX.Element | undefined;
29
- children: any;
30
- leftAddon: any;
31
- item?: undefined;
32
- } | undefined): JSX.Element;
23
+ (props?: unknown): JSX.Element;
33
24
  propTypes: unknown;
34
25
  toTypescript: () => import("react-desc").TypescriptSchema;
35
26
  };
36
- export { DSMenuItemRadioWithSchema, MenuItemRadio };
37
27
  export default MenuItemRadio;
28
+ export { DSMenuItemRadioWithSchema };
@@ -1,8 +1,8 @@
1
1
  /// <reference path="../../../../../shared/typings/react-desc.d.ts" />
2
2
  /// <reference types="react" />
3
- declare const RadioGroup: {
4
- (props: any): JSX.Element;
5
- propTypes: {
3
+ declare function RadioGroup(props: any): JSX.Element;
4
+ declare namespace RadioGroup {
5
+ var propTypes: {
6
6
  active: {
7
7
  defaultValue(arg: import("react-desc").ReactDescPossibleDefaultValues): {
8
8
  deprecated: import("react-desc").PropTypesDescValidator;
@@ -16,11 +16,11 @@ declare const RadioGroup: {
16
16
  isRequired: import("react-desc").PropTypesDescValue;
17
17
  };
18
18
  };
19
- };
19
+ }
20
20
  declare const DSMenuRadioGroupWithSchema: {
21
- (props?: any): JSX.Element;
21
+ (props?: unknown): JSX.Element;
22
22
  propTypes: unknown;
23
23
  toTypescript: () => import("react-desc").TypescriptSchema;
24
24
  };
25
- export { DSMenuRadioGroupWithSchema, RadioGroup };
26
25
  export default RadioGroup;
26
+ export { DSMenuRadioGroupWithSchema };
@@ -1,18 +1,10 @@
1
1
  /// <reference path="../../../../../shared/typings/react-desc.d.ts" />
2
2
  /// <reference types="react" />
3
3
  declare const DSMenuSearchableGroupWithSchema: {
4
- (props?: {
5
- children: any;
6
- amountItemsInWindow?: number | undefined;
7
- searchTerm?: string | undefined;
8
- noOptionsText?: string | undefined;
9
- height: any;
10
- width: any;
11
- focusOnOpen?: boolean | undefined;
12
- } | undefined): JSX.Element;
4
+ (props?: unknown): JSX.Element;
13
5
  propTypes: unknown;
14
6
  toTypescript: () => import("react-desc").TypescriptSchema;
15
7
  };
16
- declare const SearchableGroupHOC: any;
17
- export { DSMenuSearchableGroupWithSchema, SearchableGroupHOC as SearchableGroup };
18
- export default SearchableGroupHOC;
8
+ declare const _default: any;
9
+ export default _default;
10
+ export { DSMenuSearchableGroupWithSchema };
@@ -1,19 +1,19 @@
1
1
  /// <reference path="../../../../../shared/typings/react-desc.d.ts" />
2
2
  /// <reference types="react" />
3
- declare const SearchableList: {
4
- ({ onSelectMenuItem, components, searchTerm: searchTermProp, items, dropdownFilterOptions, returnValue, extraListProps, appendTermInList, maxOptions, loading, }: {
5
- onSelectMenuItem?: (() => void) | undefined;
6
- components?: {} | undefined;
7
- searchTerm?: string | undefined;
8
- items?: never[] | undefined;
9
- dropdownFilterOptions?: {} | undefined;
10
- returnValue: any;
11
- extraListProps?: {} | undefined;
12
- appendTermInList?: boolean | undefined;
13
- maxOptions?: number | undefined;
14
- loading?: boolean | undefined;
15
- }): JSX.Element;
16
- propTypes: {
3
+ declare function SearchableList({ onSelectMenuItem, components, searchTerm: searchTermProp, items, dropdownFilterOptions, returnValue, extraListProps, appendTermInList, maxOptions, loading, }: {
4
+ onSelectMenuItem?: (() => void) | undefined;
5
+ components?: {} | undefined;
6
+ searchTerm?: string | undefined;
7
+ items?: never[] | undefined;
8
+ dropdownFilterOptions?: {} | undefined;
9
+ returnValue: any;
10
+ extraListProps?: {} | undefined;
11
+ appendTermInList?: boolean | undefined;
12
+ maxOptions?: number | undefined;
13
+ loading?: boolean | undefined;
14
+ }): JSX.Element;
15
+ declare namespace SearchableList {
16
+ var propTypes: {
17
17
  /** callback after item gets selected */
18
18
  onSelectMenuItem: {
19
19
  defaultValue(arg: import("react-desc").ReactDescPossibleDefaultValues): {
@@ -85,22 +85,11 @@ declare const SearchableList: {
85
85
  isRequired: import("react-desc").PropTypesDescValue;
86
86
  };
87
87
  };
88
- };
88
+ }
89
89
  declare const DSMenuSearchableListWithSchema: {
90
- (props?: {
91
- onSelectMenuItem?: (() => void) | undefined;
92
- components?: {} | undefined;
93
- searchTerm?: string | undefined;
94
- items?: never[] | undefined;
95
- dropdownFilterOptions?: {} | undefined;
96
- returnValue: any;
97
- extraListProps?: {} | undefined;
98
- appendTermInList?: boolean | undefined;
99
- maxOptions?: number | undefined;
100
- loading?: boolean | undefined;
101
- } | undefined): JSX.Element;
90
+ (props?: unknown): JSX.Element;
102
91
  propTypes: unknown;
103
92
  toTypescript: () => import("react-desc").TypescriptSchema;
104
93
  };
105
- export { DSMenuSearchableListWithSchema, SearchableList };
106
94
  export default SearchableList;
95
+ export { DSMenuSearchableListWithSchema };
@@ -1,19 +1,19 @@
1
1
  /// <reference path="../../../../../shared/typings/react-desc.d.ts" />
2
2
  /// <reference types="react" />
3
- declare const SelectionGroup: {
4
- ({ multi, searchable, focusOnOpen, onSelect, children, items, active, width, height, maxOptions, }: {
5
- multi?: boolean | undefined;
6
- searchable?: boolean | undefined;
7
- focusOnOpen?: boolean | undefined;
8
- onSelect?: (() => null) | undefined;
9
- children: any;
10
- items?: undefined;
11
- active?: string | never[] | undefined;
12
- width: any;
13
- height: any;
14
- maxOptions?: number | undefined;
15
- }): JSX.Element;
16
- propTypes: {
3
+ declare function SelectionGroup({ multi, searchable, focusOnOpen, onSelect, children, items, active, width, height, maxOptions, }: {
4
+ multi?: boolean | undefined;
5
+ searchable?: boolean | undefined;
6
+ focusOnOpen?: boolean | undefined;
7
+ onSelect?: (() => null) | undefined;
8
+ children: any;
9
+ items?: undefined;
10
+ active?: string | never[] | undefined;
11
+ width: any;
12
+ height: any;
13
+ maxOptions?: number | undefined;
14
+ }): JSX.Element;
15
+ declare namespace SelectionGroup {
16
+ var propTypes: {
17
17
  /** toggle on multi select */
18
18
  multi: {
19
19
  defaultValue(arg: import("react-desc").ReactDescPossibleDefaultValues): {
@@ -77,22 +77,11 @@ declare const SelectionGroup: {
77
77
  isRequired: import("react-desc").PropTypesDescValue;
78
78
  };
79
79
  };
80
- };
80
+ }
81
81
  declare const DSMenuSelectionGroupWithSchema: {
82
- (props?: {
83
- multi?: boolean | undefined;
84
- searchable?: boolean | undefined;
85
- focusOnOpen?: boolean | undefined;
86
- onSelect?: (() => null) | undefined;
87
- children: any;
88
- items?: undefined;
89
- active?: string | never[] | undefined;
90
- width: any;
91
- height: any;
92
- maxOptions?: number | undefined;
93
- } | undefined): JSX.Element;
82
+ (props?: unknown): JSX.Element;
94
83
  propTypes: unknown;
95
84
  toTypescript: () => import("react-desc").TypescriptSchema;
96
85
  };
97
- export { DSMenuSelectionGroupWithSchema, SelectionGroup };
98
86
  export default SelectionGroup;
87
+ export { DSMenuSelectionGroupWithSchema };
@@ -11,7 +11,6 @@ declare const MenuSeparator: {
11
11
  defaultValue(arg: import("react-desc").ReactDescPossibleDefaultValues): {
12
12
  deprecated: import("react-desc").PropTypesDescValidator;
13
13
  };
14
- /** toggle separator on and off */
15
14
  isRequired: import("react-desc").PropTypesDescValue;
16
15
  };
17
16
  /** toggle separator on and off */
@@ -24,12 +23,9 @@ declare const MenuSeparator: {
24
23
  };
25
24
  };
26
25
  declare const DSMenuSeparatorWithSchema: {
27
- (props?: {
28
- title: any;
29
- showSeparator?: boolean | undefined;
30
- } | undefined): JSX.Element;
26
+ (props?: unknown): JSX.Element;
31
27
  propTypes: unknown;
32
28
  toTypescript: () => import("react-desc").TypescriptSchema;
33
29
  };
34
- export { DSMenuSeparatorWithSchema, MenuSeparator };
35
30
  export default MenuSeparator;
31
+ export { DSMenuSeparatorWithSchema };
@@ -1,21 +1,21 @@
1
1
  /// <reference path="../../../../../shared/typings/react-desc.d.ts" />
2
2
  /// <reference types="react" />
3
- declare const SubMenu: {
4
- ({ noAddon, leftAddon, label, interactionType, children: subitems, rightAddonType, disabledAddonInactive, checkableProps, customRenderer, onClick, closeMenu, id, }: {
5
- noAddon: any;
6
- leftAddon?: undefined;
7
- label?: undefined;
8
- interactionType?: string | undefined;
9
- children: any;
10
- rightAddonType: any;
11
- disabledAddonInactive: any;
12
- checkableProps?: {} | undefined;
13
- customRenderer: any;
14
- onClick: any;
15
- closeMenu: any;
16
- id: any;
17
- }): JSX.Element;
18
- propTypes: {
3
+ declare function SubMenu({ noAddon, leftAddon, label, interactionType, children: subitems, rightAddonType, disabledAddonInactive, checkableProps, customRenderer, onClick, closeMenu, id, }: {
4
+ noAddon: any;
5
+ leftAddon?: undefined;
6
+ label?: undefined;
7
+ interactionType?: string | undefined;
8
+ children: any;
9
+ rightAddonType: any;
10
+ disabledAddonInactive: any;
11
+ checkableProps?: {} | undefined;
12
+ customRenderer: any;
13
+ onClick: any;
14
+ closeMenu: any;
15
+ id: any;
16
+ }): JSX.Element;
17
+ declare namespace SubMenu {
18
+ var propTypes: {
19
19
  /** dont show addon for submenu */
20
20
  noAddon: {
21
21
  defaultValue(arg: import("react-desc").ReactDescPossibleDefaultValues): {
@@ -99,24 +99,11 @@ declare const SubMenu: {
99
99
  isRequired: import("react-desc").PropTypesDescValue;
100
100
  };
101
101
  };
102
- };
102
+ }
103
103
  declare const DSSubMenuWithSchema: {
104
- (props?: {
105
- noAddon: any;
106
- leftAddon?: undefined;
107
- label?: undefined;
108
- interactionType?: string | undefined;
109
- children: any;
110
- rightAddonType: any;
111
- disabledAddonInactive: any;
112
- checkableProps?: {} | undefined;
113
- customRenderer: any;
114
- onClick: any;
115
- closeMenu: any;
116
- id: any;
117
- } | undefined): JSX.Element;
104
+ (props?: unknown): JSX.Element;
118
105
  propTypes: unknown;
119
106
  toTypescript: () => import("react-desc").TypescriptSchema;
120
107
  };
121
- export { DSSubMenuWithSchema, SubMenu };
122
108
  export default SubMenu;
109
+ export { DSSubMenuWithSchema };
@@ -1,2 +1,3 @@
1
- export declare const menuItemFactory: (type: string | undefined, items: any, defaultItem?: any) => any;
2
- export declare const registerMenuItem: (type: any, item: any) => any;
1
+ import MenuItem from './MenuItem';
2
+ export declare function menuItemFactory(type: string | undefined, items: any, defaultItem?: typeof MenuItem): any;
3
+ export declare function renderMenuItems(options: any, factory?: typeof menuItemFactory): any;
@@ -1,10 +1,8 @@
1
1
  /// <reference types="react" />
2
- declare function VirtualMenuList({ items, itemHeight, amountItemsInWindow, width, height, }: {
2
+ export default function VirtualMenuList({ items, itemHeight, amountItemsInWindow, width, height, }: {
3
3
  items: any;
4
4
  itemHeight?: number | undefined;
5
5
  amountItemsInWindow?: number | undefined;
6
6
  width: any;
7
7
  height: any;
8
8
  }): JSX.Element;
9
- export { VirtualMenuList };
10
- export default VirtualMenuList;
package/types/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ export * from './Menu';
1
2
  export { DSMenuItemWithSchema } from './MenuItems/MenuItem';
2
3
  export { DSSubMenuWithSchema } from './MenuItems/SubMenu';
3
4
  export { DSMenuCheckboxGroupWithSchema } from './MenuItems/CheckboxGroup';
@@ -9,6 +10,4 @@ export { DSMenuSearchableListWithSchema } from './MenuItems/SearchableList';
9
10
  export { DSMenuSeparatorWithSchema } from './MenuItems/Separator';
10
11
  export { DSMenuSelectionGroupWithSchema } from './MenuItems/SelectionGroup';
11
12
  export { default as MenuCombobox } from './MenuCombobox';
12
- export { menuItemFactory } from './MenuItems/menuItemFactory';
13
- export { renderMenuItems } from './MenuItems/renderMenuItems';
14
- export { DSMenuWithSchema, Menu, Menu as default } from './Menu';
13
+ export { default } from './Menu';
@@ -1,7 +1,5 @@
1
- declare function useHeightByAmountOfItems({ itemHeight, amountItems, items, }: {
1
+ export default function useHeightByAmountOfItems({ itemHeight, amountItems, items, }: {
2
2
  itemHeight: any;
3
3
  amountItems: any;
4
4
  items: any;
5
5
  }): number;
6
- export { useHeightByAmountOfItems };
7
- export default useHeightByAmountOfItems;
package/cjs/Menu.js.map DELETED
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/Menu.tsx", "../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["/* eslint-disable react/prop-types */\n/* eslint-disable import/no-cycle */\nimport React, { useContext, useEffect, useMemo, useRef } from 'react';\nimport { PropTypes, describe } from 'react-desc';\nimport { omit } from 'lodash';\nimport { aggregatedClasses } from '@elliemae/ds-classnames';\nimport { animated } from 'react-spring/web';\nimport { useOnClickOutside } from '@elliemae/ds-utilities/hooks';\nimport { mergeRefs } from '@elliemae/ds-utilities/system';\nimport { focusGroupManagerHoc, FocusGroupContext } from '@elliemae/ds-shared/FocusGroup';\nimport { useHiddenTransition } from '@elliemae/ds-hidden';\nimport { MenuItemRadio } from './MenuItems/MenuItemRadio';\nimport { MenuItemCheckbox } from './MenuItems/MenuItemCheckbox';\nimport { CheckboxGroup } from './MenuItems/CheckboxGroup';\nimport { RadioGroup } from './MenuItems/RadioGroup';\nimport { MenuSeparator } from './MenuItems/Separator';\nimport { MenuItem } from './MenuItems/MenuItem';\nimport { SubMenu } from './MenuItems/SubMenu';\nimport { SearchableGroup } from './MenuItems/SearchableGroup';\nimport { SelectionGroup } from './MenuItems/SelectionGroup';\nimport { menuItemFactory } from './MenuItems/menuItemFactory';\nimport { renderMenuItems } from './MenuItems/renderMenuItems';\nimport { MenuContext } from './MenuContext';\n\nconst RESPONSIVE_HEIHGT_MARGIN = 120;\n\nconst blockName = 'menu';\n\nconst noop = () => {};\n\nconst MenuComponent = aggregatedClasses('div')(blockName, '', ({ menuComboBox, type }) => ({\n 'menu-combo-box': menuComboBox,\n [`type-${type}`]: type,\n}));\n\n/**\n * todo: -- IDEA -- each menu could have an overlay based on an overlay stack context so we can\n * capture the context of the clicks on very nested components\n */\n\nconst isChildOfType = (child, type) => child.type.name === type;\n\nconst DSMenu = ({\n containerProps = {},\n innerRef,\n as: MenuTag = animated.ul,\n children = undefined,\n onClickOutside = noop,\n // handlers from hidden\n visible = undefined,\n focusOnOpen = false,\n maxOption = 0,\n style = {},\n minWidth = undefined,\n maxWidth = undefined,\n closeMenu,\n responsiveHeight = false,\n ...otherProps\n}) => {\n const menuRef = useRef(null);\n const { focusFirst } = useContext(FocusGroupContext);\n const { destroyed, ...hiddenProps } = useHiddenTransition({ visible, style });\n\n // force no addon to the children if the menu doesn't have any item with leftAddon like SelectionGroup\n const nextChildren = useMemo(() => {\n const forceLeftAddon = React.Children.toArray(children).some(\n (child) =>\n isChildOfType(child, 'SelectionGroup') ||\n isChildOfType(child, 'MenuItemCheckbox') ||\n isChildOfType(child, 'MenuItemRadio') ||\n child.props.leftAddon,\n );\n\n return React.Children.map(\n children,\n (child) =>\n child &&\n React.cloneElement(child, {\n ...child.props,\n noAddon: !forceLeftAddon ? true : undefined,\n maxOption,\n closeMenu,\n }),\n );\n }, [children]);\n\n useOnClickOutside(menuRef, onClickOutside);\n\n useEffect(() => {\n if (focusOnOpen && visible) {\n setTimeout(() => {\n focusFirst();\n }, 0);\n }\n }, [visible, focusOnOpen]);\n // todo: find out a better approach to this\n return !hiddenProps.destroyed ? (\n <MenuContext.Provider value={{ visible, closeMenu }}>\n <MenuComponent\n data-testid={containerProps?.['data-testid'] ? containerProps['data-testid'] : 'em-ds-menu'}\n {...containerProps}\n as={MenuTag}\n classProps={{ ...(otherProps.classProps || {}), type: otherProps.type }}\n innerRef={mergeRefs(innerRef, menuRef)}\n role=\"menu\"\n {...omit(otherProps, ['scheduleUpdate'])}\n {...hiddenProps}\n >\n {/* eslint-disable indent */}\n <div\n className=\"menu-component-internal-wrapper\"\n style={{\n ...style,\n minWidth,\n maxWidth,\n ...(responsiveHeight\n ? {\n overflowY: 'scroll',\n maxHeight: responsiveHeight ? `${window.innerHeight - RESPONSIVE_HEIHGT_MARGIN}px` : undefined,\n }\n : {}),\n }}\n >\n {/* eslint-enable indent */}\n {nextChildren}\n </div>\n </MenuComponent>\n </MenuContext.Provider>\n ) : null;\n};\n\nconst Menu = focusGroupManagerHoc(DSMenu, { loop: true });\n\nconst props = {\n /** Injected props to wrapper element of component */\n containerProps: PropTypes.object.description('Injected props to wrapper element of component'),\n /** Renders the menu with a specific html element */\n as: PropTypes.element.description('Renders the menu with a specific html element'),\n /** Handler when a user clicks outside the menu */\n onClickOutside: PropTypes.func.description('Handler when a user clicks outside the menu'),\n /** Whether the menu is visible or not */\n visible: PropTypes.bool.description('Whether the menu is visible or not'),\n /** When set to true, it's going to focus the first item */\n focusOnOpen: PropTypes.bool.description(\"When set to true, it's going to focus the first item\"),\n /** Customize menu minWidth. Can be undefined or 'number' */\n minWidth: PropTypes.number.description(\"Customize menu minWidth. Can be undefined or 'number'\"),\n /** Customize menu maxWidth. Can be undefined or 'number' */\n maxWidth: PropTypes.number.description(\"Customize menu maxWidth. Can be undefined or 'number'\"),\n};\n\nDSMenu.propTypes = props;\n\nconst DSMenuWithSchema = describe(DSMenu);\n\nDSMenuWithSchema.propTypes = props;\n// todo: add a handler to get this kind of exports for documentation\nMenu.Item = MenuItem;\nMenu.ItemCheckbox = MenuItemCheckbox;\nMenu.ItemRadio = MenuItemRadio;\nMenu.SubMenu = SubMenu;\nMenu.Separator = MenuSeparator;\nMenu.CheckboxGroup = CheckboxGroup;\nMenu.RadioGroup = RadioGroup;\nMenu.SearchableGroup = SearchableGroup;\nMenu.SelectionGroup = SelectionGroup;\n\nexport { menuItemFactory, renderMenuItems, DSMenuWithSchema, Menu };\nexport default Menu;\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": "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",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/MenuCombobox.tsx", "../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { SearchableList } from './MenuItems/SearchableList';\nimport { Menu } from './Menu';\n\nfunction MenuCombobox({\n dropdownFilterOptions = {},\n options = [],\n onSelectMenuItem = () => null,\n innerRef,\n maxOptions = 10,\n loading = false,\n ...rest\n}) {\n return (\n <Menu\n {...rest}\n classProps={{ menuComboBox: true }}\n innerRef={innerRef}\n visible\n >\n <SearchableList\n appendTermInList\n extraListProps={dropdownFilterOptions}\n items={options}\n onSelectMenuItem={onSelectMenuItem}\n maxOptions={maxOptions}\n loading={loading}\n />\n </Menu>\n );\n}\n\nMenuCombobox.propTypes = {\n /** Options */\n dropdownFilterOptions: PropTypes.shape({}),\n /** The option or menu items to render */\n options: PropTypes.arrayOf(PropTypes.object),\n /** Handler when a menu item is selected */\n onSelectMenuItem: PropTypes.func,\n /** Internal ref */\n innerRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),\n /** Max options to display in the list */\n maxOptions: PropTypes.number,\n /** Is loading */\n loading: PropTypes.bool,\n};\n\nexport default MenuCombobox;\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAkB;AAClB,wBAAsB;AACtB,4BAA+B;AAC/B,kBAAqB;AAErB,sBAAsB;AAAA,EACpB,wBAAwB;AAAA,EACxB,UAAU;AAAA,EACV,mBAAmB,MAAM;AAAA,EACzB;AAAA,EACA,aAAa;AAAA,EACb,UAAU;AAAA,KACP;AAAA,GACF;AACD,SACE,mDAAC,kBAAD;AAAA,OACM;AAAA,IACJ,YAAY,EAAE,cAAc;AAAA,IAC5B;AAAA,IACA,SAAO;AAAA,KAEP,mDAAC,sCAAD;AAAA,IACE,kBAAgB;AAAA,IAChB,gBAAgB;AAAA,IAChB,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA;AAAA;AAMR,aAAa,YAAY;AAAA,EAEvB,uBAAuB,0BAAU,MAAM;AAAA,EAEvC,SAAS,0BAAU,QAAQ,0BAAU;AAAA,EAErC,kBAAkB,0BAAU;AAAA,EAE5B,UAAU,0BAAU,UAAU,CAAC,0BAAU,MAAM,0BAAU;AAAA,EAEzD,YAAY,0BAAU;AAAA,EAEtB,SAAS,0BAAU;AAAA;AAGrB,IAAO,uBAAQ;",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/MenuContext.tsx", "../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import React from 'react';\n\nconst MenuContext = React.createContext();\nexport { MenuContext };\nexport default MenuContext;\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAkB;AAElB,MAAM,cAAc,qBAAM;AAE1B,IAAO,sBAAQ;",
6
- "names": []
7
- }
@@ -1,28 +0,0 @@
1
- var __create = Object.create;
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
8
- var __reExport = (target, module2, copyDefault, desc) => {
9
- if (module2 && typeof module2 === "object" || typeof module2 === "function") {
10
- for (let key of __getOwnPropNames(module2))
11
- if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
12
- __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
13
- }
14
- return target;
15
- };
16
- var __toESM = (module2, isNodeMode) => {
17
- return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
18
- };
19
- var __toCommonJS = /* @__PURE__ */ ((cache) => {
20
- return (module2, temp) => {
21
- return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
22
- };
23
- })(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
24
- var MenuExports_exports = {};
25
- var React = __toESM(require("react"));
26
- __reExport(MenuExports_exports, require("./Menu"));
27
- module.exports = __toCommonJS(MenuExports_exports);
28
- //# sourceMappingURL=MenuExports.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/MenuExports.tsx", "../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["export * from './Menu';", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;AAAA;ACAA,YAAuB;ADAvB,gCAAc;",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/MenuItems/CheckboxGroup.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import React from 'react';\nimport { PropTypes, describe } from 'react-desc';\nimport { CheckableGroup } from '@elliemae/ds-shared/CheckableGroup';\n\nconst CheckboxGroup = (props) => <CheckableGroup {...props} multi />;\n\nconst props = {\n /* The item (if multi false) or items (if multi true) selected */\n active: PropTypes.arrayOf(PropTypes.string).description(\n 'The item (if multi false) or items (if multi true) selected',\n ),\n /* Whether is multi select or not */\n multi: PropTypes.bool.description('Whether is multi select or not'),\n /* Handler when a user checks an item */\n onCheck: PropTypes.func.description('Handler when a user checks an item'),\n};\n\nCheckboxGroup.propTypes = props;\n\nconst DSMenuCheckboxGroupWithSchema = describe(CheckboxGroup);\nDSMenuCheckboxGroupWithSchema.propTypes = props;\n\nexport { DSMenuCheckboxGroupWithSchema, CheckboxGroup };\nexport default CheckboxGroup;\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAkB;AAClB,wBAAoC;AACpC,4BAA+B;AAE/B,MAAM,gBAAgB,CAAC,WAAU,mDAAC,sCAAD;AAAA,KAAoB;AAAA,EAAO,OAAK;AAAA;AAEjE,MAAM,QAAQ;AAAA,EAEZ,QAAQ,4BAAU,QAAQ,4BAAU,QAAQ,YAC1C;AAAA,EAGF,OAAO,4BAAU,KAAK,YAAY;AAAA,EAElC,SAAS,4BAAU,KAAK,YAAY;AAAA;AAGtC,cAAc,YAAY;AAE1B,MAAM,gCAAgC,gCAAS;AAC/C,8BAA8B,YAAY;AAG1C,IAAO,wBAAQ;",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/MenuItems/MenuItem.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["/* eslint-disable max-lines */\n/* eslint-disable import/no-cycle */\nimport React, { useRef, useMemo, useContext } from 'react';\nimport { PropTypes, describe } from 'react-desc';\nimport { omit } from 'lodash';\nimport { aggregatedClasses } from '@elliemae/ds-classnames';\nimport { mergeRefs, runAll } from '@elliemae/ds-utilities';\nimport { useFocusGroupItem } from '@elliemae/ds-shared/FocusGroup';\nimport { DSTruncatedTooltipText } from '@elliemae/ds-truncated-tooltip-text';\nimport { MenuContext } from '../MenuContext';\nimport { registerMenuItem } from './menuItemFactory';\nimport { renderMenuItems } from './renderMenuItems';\n\nconst noop = () => null;\n\nconst blockName = 'menu-item';\n\nconst Content = aggregatedClasses('div')(blockName, 'content');\nconst Addon = aggregatedClasses('div')(blockName, 'addon', ({ empty, fixedItem }) => ({ empty, fixedItem }));\n\nconst renderAddon = (addon, fixedItem, addonId) => (\n <Addon key={addonId} classProps={{ fixedItem }}>\n {addon}\n </Addon>\n);\n\nconst renderAddons = (addons, fixedItem) =>\n Array.isArray(addons) ? addons.map(renderAddon) : renderAddon(addons, fixedItem);\n\nconst Wrapper = aggregatedClasses('li')(\n blockName,\n null,\n ({ disabled, disabledAddonInactive, customRenderer, fixedItem, type }) => ({\n disabled,\n disabledAddonInactive,\n customRenderer,\n fixedItem,\n [`menu-type-${type}`]: type,\n }),\n);\nconst calculateSize = (length = 0) => {\n if (length > 45) return 45 * 7;\n return length * 7;\n};\n\nconst MenuItem = (props) => {\n const {\n innerRef,\n as = 'li',\n role = 'menuitem',\n leftAddon = null,\n rightAddon = undefined,\n disabledAddonInactive = undefined,\n label = undefined,\n children,\n tabIndex = -1,\n onKeyDown = noop,\n fixedItem = false,\n noAddon,\n disabled = false,\n customRenderer,\n maxOption,\n closeMenu,\n style,\n ...otherProps\n } = props;\n\n const menuCxt = useContext(MenuContext);\n const ref = useRef(null);\n useFocusGroupItem(ref);\n if (otherProps.subItems) {\n return (\n <SubMenu {...props} closeMenu={menuCxt.closeMenu}>\n {renderMenuItems(otherProps.subItems)}\n </SubMenu>\n );\n }\n\n const wrapperProps = useMemo(() => omit(otherProps, ['icon']), [otherProps]);\n\n const onClick = (...args) => {\n if (wrapperProps.onClick) wrapperProps.onClick(...args);\n if (wrapperProps.closeOnClick && menuCxt.closeMenu) {\n menuCxt.closeMenu(...args);\n }\n };\n\n return (\n <Wrapper\n as={as}\n classProps={{\n disabled,\n disabledAddonInactive,\n customRenderer,\n fixedItem,\n type: otherProps.type,\n }}\n id={otherProps.id}\n innerRef={otherProps.type !== 'disabled' ? mergeRefs(innerRef, ref) : innerRef}\n onKeyDown={\n !fixedItem &&\n runAll((e) => {\n if (e.key === ' ' || e.key === 'Enter') {\n e.preventDefault();\n e.target.dispatchEvent(\n new MouseEvent('click', {\n view: window,\n bubbles: true,\n cancelable: false,\n }),\n );\n }\n }, onKeyDown)\n }\n role={role}\n style={style}\n tabIndex={tabIndex}\n {...wrapperProps}\n onClick={onClick}\n >\n {!noAddon && renderAddons(leftAddon, fixedItem)}\n {label && (\n <Content\n style={\n maxOption > 0\n ? {\n width: `${calculateSize(maxOption)}px`,\n maxWidth: `${calculateSize(maxOption)}px`,\n }\n : undefined\n }\n >\n <DSTruncatedTooltipText value={label} />\n </Content>\n )}\n {customRenderer}\n {rightAddon && renderAddons(rightAddon)}\n {children}\n </Wrapper>\n );\n};\n\nconst props = {\n /** Renders the MenuItem with a specific html element */\n as: PropTypes.element.description('Renders the MenuItem with a specific html element'),\n /**\n * reference to the component\n */\n innerRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({ current: PropTypes.any })]).description(\n 'reference to the component',\n ),\n /** Renders the passed element to the left */\n leftAddon: PropTypes.element.description('Renders the passed element to the left'),\n /** Renders the passed element to the right */\n rightAddon: PropTypes.element.description('Renders the passed element to the right'),\n /** Label for the menu item */\n label: PropTypes.string.description('Label for the menu item'),\n /** style object for menu item wrapper */\n style: PropTypes.object.description('style object for menu item wrapper'),\n /** disable menu item */\n disabled: PropTypes.bool.description('disable menu item'),\n /** HTML tabindex to manage focus order */\n tabindex: PropTypes.number.description('HTML tabindex to manage focus order'),\n /** a11y role */\n role: PropTypes.string.description('a11y role'),\n};\n\nMenuItem.propTypes = props;\nregisterMenuItem('menuitem', MenuItem);\n\nconst DSMenuItemWithSchema = describe(MenuItem);\nDSMenuItemWithSchema.propTypes = props;\n\nexport { DSMenuItemWithSchema, MenuItem };\nexport default MenuItem;\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": "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",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/MenuItems/MenuItemCheckable.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["/* eslint-disable import/no-cycle */\nimport React from 'react';\nimport { PropTypes, describe } from 'react-desc';\nimport { Checkmark } from '@elliemae/ds-icons';\nimport { runAll } from '@elliemae/ds-utilities';\nimport { MenuItem } from './MenuItem';\n\n// TODO: where to move this?\nfunction useCheckable({ checked }) {\n return {\n checked,\n 'aria-checked': checked,\n };\n}\n\n/**\n * Reuses the same props as the MenuItem\n *\n * @param root0\n * @param root0.role\n * @param root0.checked\n * @param root0.name\n * @param root0.checkIcon\n * @param root0.children\n * @param root0.leftAddon\n * @param root0.item\n */\nconst MenuItemCheckable = ({\n role = 'menuitemcheckbox',\n checked = false,\n name = '',\n checkIcon = <Checkmark color={['brand-primary', 600]} />,\n // eslint-disable-next-line react/prop-types\n children,\n leftAddon,\n item = undefined,\n ...otherProps\n}) => {\n const checkableProps = useCheckable({ checked, name });\n const handleClick = () =>\n runAll(otherProps.onClick, checkableProps.onClick)({ target: { value: name, checked } }, item);\n\n const checkAddon =\n leftAddon || (checkableProps.checked ? <div className=\"checkable-mark\">{checkIcon}</div> : <div />);\n return (\n <MenuItem\n {...item}\n {...otherProps}\n {...checkableProps}\n customRenderer={item && item.customRenderer ? item.customRenderer : () => {}}\n items={otherProps.subItems}\n leftAddon={checkAddon}\n onClick={handleClick}\n role={role}\n />\n );\n};\n\nconst props = {\n /** Whether the item is checked or not */\n checked: PropTypes.bool.description('Whether the item is checked or not'),\n /** A custom item when the item is checked */\n checkIcon: PropTypes.element.description('A custom item when the item is checked'),\n /** form field name */\n name: PropTypes.string.description('form field name'),\n /** menu item object props */\n item: PropTypes.object.description('menu item object props'),\n /** a11y role */\n role: PropTypes.string.description('a11y role'),\n /** left addon component */\n leftAddon: PropTypes.node.description('left addon component'),\n};\n\nMenuItemCheckable.propTypes = props;\n\nconst DSMenuItemCheckeableWithSchema = describe(MenuItemCheckable);\nDSMenuItemCheckeableWithSchema.propTypes = props;\n\nexport { DSMenuItemCheckeableWithSchema, MenuItemCheckable };\nexport default MenuItemCheckable;\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADCvB,mBAAkB;AAClB,wBAAoC;AACpC,sBAA0B;AAC1B,0BAAuB;AACvB,sBAAyB;AAGzB,sBAAsB,EAAE,WAAW;AACjC,SAAO;AAAA,IACL;AAAA,IACA,gBAAgB;AAAA;AAAA;AAgBpB,MAAM,oBAAoB,CAAC;AAAA,EACzB,OAAO;AAAA,EACP,UAAU;AAAA,EACV,OAAO;AAAA,EACP,YAAY,mDAAC,2BAAD;AAAA,IAAW,OAAO,CAAC,iBAAiB;AAAA;AAAA,EAEhD;AAAA,EACA;AAAA,EACA,OAAO;AAAA,KACJ;AAAA,MACC;AACJ,QAAM,iBAAiB,aAAa,EAAE,SAAS;AAC/C,QAAM,cAAc,MAClB,gCAAO,WAAW,SAAS,eAAe,SAAS,EAAE,QAAQ,EAAE,OAAO,MAAM,aAAa;AAE3F,QAAM,aACJ,aAAc,gBAAe,UAAU,mDAAC,OAAD;AAAA,IAAK,WAAU;AAAA,KAAkB,aAAmB,mDAAC,OAAD;AAC7F,SACE,mDAAC,0BAAD;AAAA,OACM;AAAA,OACA;AAAA,OACA;AAAA,IACJ,gBAAgB,QAAQ,KAAK,iBAAiB,KAAK,iBAAiB,MAAM;AAAA;AAAA,IAC1E,OAAO,WAAW;AAAA,IAClB,WAAW;AAAA,IACX,SAAS;AAAA,IACT;AAAA;AAAA;AAKN,MAAM,QAAQ;AAAA,EAEZ,SAAS,4BAAU,KAAK,YAAY;AAAA,EAEpC,WAAW,4BAAU,QAAQ,YAAY;AAAA,EAEzC,MAAM,4BAAU,OAAO,YAAY;AAAA,EAEnC,MAAM,4BAAU,OAAO,YAAY;AAAA,EAEnC,MAAM,4BAAU,OAAO,YAAY;AAAA,EAEnC,WAAW,4BAAU,KAAK,YAAY;AAAA;AAGxC,kBAAkB,YAAY;AAE9B,MAAM,iCAAiC,gCAAS;AAChD,+BAA+B,YAAY;AAG3C,IAAO,4BAAQ;",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/MenuItems/MenuItemCheckbox.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import React from 'react';\nimport { DSCheckbox } from '@elliemae/ds-form';\nimport { MenuItemCheckable } from './MenuItemCheckable';\nimport { registerMenuItem } from './menuItemFactory';\n\nconst MenuItemCheckbox = ({ checked, ...rest }) => (\n <MenuItemCheckable {...rest} leftAddon={<DSCheckbox checked={checked} />} role=\"menuitemcheckbox\" />\n);\n\nregisterMenuItem('checkbox', MenuItemCheckbox);\nexport { MenuItemCheckbox };\nexport default MenuItemCheckbox;\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAkB;AAClB,qBAA2B;AAC3B,+BAAkC;AAClC,6BAAiC;AAEjC,MAAM,mBAAmB,CAAC,EAAE,YAAY,WACtC,mDAAC,4CAAD;AAAA,KAAuB;AAAA,EAAM,WAAW,mDAAC,2BAAD;AAAA,IAAY;AAAA;AAAA,EAAsB,MAAK;AAAA;AAGjF,6CAAiB,YAAY;AAE7B,IAAO,2BAAQ;",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/MenuItems/MenuItemRadio.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import React from 'react';\nimport { describe, PropTypes } from 'react-desc';\nimport { MenuItemCheckable } from './MenuItemCheckable';\nimport { registerMenuItem } from './menuItemFactory';\n\nconst MenuItemRadio = (props) => <MenuItemCheckable {...props} role=\"menuitemradio\" />;\n\nconst props = {\n /** Whether the item is checked or not */\n checked: PropTypes.bool.description('Whether the item is checked or not'),\n /** A custom item when the item is checked */\n checkIcon: PropTypes.element.description('A custom item when the item is checked'),\n};\n\nMenuItemRadio.propTypes = props;\nregisterMenuItem('radio', MenuItemRadio);\n\nconst DSMenuItemRadioWithSchema = describe(MenuItemCheckable);\nDSMenuItemRadioWithSchema.propTypes = props;\n\nexport { DSMenuItemRadioWithSchema, MenuItemRadio };\nexport default MenuItemRadio;\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAkB;AAClB,wBAAoC;AACpC,+BAAkC;AAClC,6BAAiC;AAEjC,MAAM,gBAAgB,CAAC,WAAU,mDAAC,4CAAD;AAAA,KAAuB;AAAA,EAAO,MAAK;AAAA;AAEpE,MAAM,QAAQ;AAAA,EAEZ,SAAS,4BAAU,KAAK,YAAY;AAAA,EAEpC,WAAW,4BAAU,QAAQ,YAAY;AAAA;AAG3C,cAAc,YAAY;AAC1B,6CAAiB,SAAS;AAE1B,MAAM,4BAA4B,gCAAS;AAC3C,0BAA0B,YAAY;AAGtC,IAAO,wBAAQ;",
6
- "names": []
7
- }