@atlaskit/dropdown-menu 10.1.6 → 11.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (215) hide show
  1. package/CHANGELOG.md +147 -0
  2. package/__perf__/default.tsx +1 -1
  3. package/__perf__/dropdown-menu.tsx +216 -0
  4. package/codemods/11.0.0-lite-mode.tsx +39 -0
  5. package/codemods/__tests__/11.0.0-lite-mode.test.tsx +48 -0
  6. package/codemods/__tests__/convert-position.test.tsx +88 -0
  7. package/codemods/__tests__/convert-triggerType.test.tsx +100 -0
  8. package/codemods/__tests__/deprecate-items.test.tsx +108 -0
  9. package/codemods/__tests__/deprecate-onItemActivated.test.tsx +108 -0
  10. package/codemods/__tests__/deprecate-onPositioned.test.tsx +108 -0
  11. package/codemods/__tests__/deprecate-shouldFitContainer.tsx +108 -0
  12. package/codemods/__tests__/rename-imports.tsx +136 -0
  13. package/codemods/__tests__/replace-position-to-placement.test.tsx +84 -0
  14. package/codemods/__tests__/replace-shouldAllowMultipleLine.test.tsx +122 -0
  15. package/codemods/__tests__/update-component-callsites.tsx +66 -0
  16. package/codemods/migrates/convert-trigger-type.tsx +57 -0
  17. package/codemods/migrates/deprecate-items.tsx +9 -0
  18. package/codemods/migrates/deprecate-onItemActivated.tsx +9 -0
  19. package/codemods/migrates/deprecate-onPositioned.tsx +9 -0
  20. package/codemods/migrates/deprecate-shouldFitContainer.tsx +9 -0
  21. package/codemods/migrates/rename-imports.tsx +22 -0
  22. package/codemods/migrates/replace-position-to-placement.tsx +38 -0
  23. package/codemods/migrates/replace-shouldAllowMultiline.tsx +47 -0
  24. package/codemods/migrates/update-component-callsites.tsx +13 -0
  25. package/codemods/utils/convert-position.tsx +24 -0
  26. package/codemods/utils/create-rename-import.tsx +41 -0
  27. package/codemods/utils/create-update-callsite.tsx +32 -0
  28. package/dist/cjs/checkbox/dropdown-item-checkbox-group.js +31 -0
  29. package/dist/cjs/checkbox/dropdown-item-checkbox.js +106 -0
  30. package/dist/cjs/dropdown-menu-item-group.js +22 -0
  31. package/dist/cjs/dropdown-menu-item.js +65 -0
  32. package/dist/cjs/dropdown-menu.js +193 -0
  33. package/dist/cjs/index.js +18 -26
  34. package/dist/cjs/internal/components/focus-manager.js +59 -0
  35. package/dist/cjs/internal/components/menu-wrapper.js +66 -0
  36. package/dist/cjs/internal/context/checkbox-group-context.js +14 -0
  37. package/dist/cjs/internal/context/selection-store.js +76 -0
  38. package/dist/cjs/internal/hooks/use-checkbox-state.js +68 -0
  39. package/dist/cjs/internal/hooks/use-radio-state.js +84 -0
  40. package/dist/cjs/internal/hooks/use-register-item-with-focus-manager.js +29 -0
  41. package/dist/cjs/internal/utils/get-icon-colors.js +25 -0
  42. package/dist/cjs/internal/utils/handle-focus.js +58 -0
  43. package/dist/cjs/internal/utils/is-checkbox-item.js +11 -0
  44. package/dist/cjs/internal/utils/is-radio-item.js +11 -0
  45. package/dist/cjs/internal/utils/is-voice-over-supported.js +23 -0
  46. package/dist/cjs/internal/utils/reset-options-in-group.js +23 -0
  47. package/dist/cjs/radio/dropdown-item-radio-group.js +89 -0
  48. package/dist/cjs/radio/dropdown-item-radio.js +106 -0
  49. package/dist/cjs/types.js +5 -1
  50. package/dist/cjs/version.json +1 -1
  51. package/dist/es2019/checkbox/dropdown-item-checkbox-group.js +21 -0
  52. package/dist/es2019/checkbox/dropdown-item-checkbox.js +67 -0
  53. package/dist/es2019/dropdown-menu-item-group.js +11 -0
  54. package/dist/es2019/dropdown-menu-item.js +49 -0
  55. package/dist/es2019/dropdown-menu.js +150 -0
  56. package/dist/es2019/index.js +7 -11
  57. package/dist/es2019/internal/components/focus-manager.js +40 -0
  58. package/dist/es2019/internal/components/menu-wrapper.js +44 -0
  59. package/dist/es2019/internal/context/checkbox-group-context.js +6 -0
  60. package/dist/es2019/internal/context/selection-store.js +54 -0
  61. package/dist/es2019/internal/hooks/use-checkbox-state.js +45 -0
  62. package/dist/es2019/internal/hooks/use-radio-state.js +56 -0
  63. package/dist/es2019/internal/hooks/use-register-item-with-focus-manager.js +19 -0
  64. package/dist/es2019/internal/utils/get-icon-colors.js +17 -0
  65. package/dist/es2019/internal/utils/handle-focus.js +48 -0
  66. package/dist/es2019/internal/utils/is-checkbox-item.js +4 -0
  67. package/dist/es2019/internal/utils/is-radio-item.js +4 -0
  68. package/dist/es2019/internal/utils/is-voice-over-supported.js +11 -0
  69. package/dist/es2019/internal/utils/reset-options-in-group.js +7 -0
  70. package/dist/es2019/radio/dropdown-item-radio-group.js +56 -0
  71. package/dist/es2019/radio/dropdown-item-radio.js +67 -0
  72. package/dist/es2019/types.js +1 -0
  73. package/dist/es2019/version.json +1 -1
  74. package/dist/esm/checkbox/dropdown-item-checkbox-group.js +19 -0
  75. package/dist/esm/checkbox/dropdown-item-checkbox.js +80 -0
  76. package/dist/esm/dropdown-menu-item-group.js +11 -0
  77. package/dist/esm/dropdown-menu-item.js +51 -0
  78. package/dist/esm/dropdown-menu.js +166 -0
  79. package/dist/esm/index.js +7 -11
  80. package/dist/esm/internal/components/focus-manager.js +39 -0
  81. package/dist/esm/internal/components/menu-wrapper.js +44 -0
  82. package/dist/esm/internal/context/checkbox-group-context.js +6 -0
  83. package/dist/esm/internal/context/selection-store.js +58 -0
  84. package/dist/esm/internal/hooks/use-checkbox-state.js +55 -0
  85. package/dist/esm/internal/hooks/use-radio-state.js +70 -0
  86. package/dist/esm/internal/hooks/use-register-item-with-focus-manager.js +19 -0
  87. package/dist/esm/internal/utils/get-icon-colors.js +17 -0
  88. package/dist/esm/internal/utils/handle-focus.js +47 -0
  89. package/dist/esm/internal/utils/is-checkbox-item.js +4 -0
  90. package/dist/esm/internal/utils/is-radio-item.js +4 -0
  91. package/dist/esm/internal/utils/is-voice-over-supported.js +15 -0
  92. package/dist/esm/internal/utils/reset-options-in-group.js +13 -0
  93. package/dist/esm/radio/dropdown-item-radio-group.js +66 -0
  94. package/dist/esm/radio/dropdown-item-radio.js +80 -0
  95. package/dist/esm/types.js +1 -0
  96. package/dist/esm/version.json +1 -1
  97. package/dist/types/checkbox/dropdown-item-checkbox-group.d.ts +15 -0
  98. package/dist/types/checkbox/dropdown-item-checkbox.d.ts +12 -0
  99. package/dist/types/dropdown-menu-item-group.d.ts +11 -0
  100. package/dist/types/dropdown-menu-item.d.ts +12 -0
  101. package/dist/types/dropdown-menu.d.ts +12 -0
  102. package/dist/types/index.d.ts +8 -10
  103. package/dist/types/internal/components/focus-manager.d.ts +19 -0
  104. package/dist/types/internal/components/menu-wrapper.d.ts +10 -0
  105. package/dist/types/internal/context/checkbox-group-context.d.ts +5 -0
  106. package/dist/types/internal/context/selection-store.d.ts +27 -0
  107. package/dist/types/internal/hooks/use-checkbox-state.d.ts +14 -0
  108. package/dist/types/internal/hooks/use-radio-state.d.ts +9 -0
  109. package/dist/types/internal/hooks/use-register-item-with-focus-manager.d.ts +4 -0
  110. package/dist/types/internal/utils/get-icon-colors.d.ts +8 -0
  111. package/dist/types/internal/utils/handle-focus.d.ts +2 -0
  112. package/dist/types/internal/utils/is-checkbox-item.d.ts +1 -0
  113. package/dist/types/internal/utils/is-radio-item.d.ts +1 -0
  114. package/dist/types/internal/utils/is-voice-over-supported.d.ts +2 -0
  115. package/dist/types/internal/utils/reset-options-in-group.d.ts +4 -0
  116. package/dist/types/radio/dropdown-item-radio-group.d.ts +25 -0
  117. package/dist/types/radio/dropdown-item-radio.d.ts +12 -0
  118. package/dist/types/types.d.ts +254 -79
  119. package/package.json +41 -23
  120. package/dist/cjs/components/DropdownMenu.js +0 -226
  121. package/dist/cjs/components/DropdownMenuStateless.js +0 -519
  122. package/dist/cjs/components/context/DropdownItemClickManager.js +0 -72
  123. package/dist/cjs/components/context/DropdownItemFocusManager.js +0 -174
  124. package/dist/cjs/components/context/DropdownItemSelectionCache.js +0 -127
  125. package/dist/cjs/components/context/DropdownItemSelectionManager.js +0 -181
  126. package/dist/cjs/components/group/DropdownItemGroup.js +0 -57
  127. package/dist/cjs/components/group/DropdownItemGroupCheckbox.js +0 -16
  128. package/dist/cjs/components/group/DropdownItemGroupRadio.js +0 -16
  129. package/dist/cjs/components/group/ert-group-selection.js +0 -8
  130. package/dist/cjs/components/hoc/withItemSelectionManager.js +0 -62
  131. package/dist/cjs/components/hoc/withToggleInteraction.js +0 -171
  132. package/dist/cjs/components/item/DropdownItem.js +0 -15
  133. package/dist/cjs/components/item/DropdownItemCheckbox.js +0 -24
  134. package/dist/cjs/components/item/DropdownItemRadio.js +0 -24
  135. package/dist/cjs/components/item/ert-item-checkbox.js +0 -8
  136. package/dist/cjs/components/item/ert-item-radio.js +0 -8
  137. package/dist/cjs/components/item/ert-item.js +0 -8
  138. package/dist/cjs/styled/WidthConstrainer.js +0 -29
  139. package/dist/cjs/util/contextNamespace.js +0 -19
  140. package/dist/cjs/util/getDisplayName.js +0 -14
  141. package/dist/cjs/util/keys.js +0 -18
  142. package/dist/cjs/util/safeContextCall.js +0 -27
  143. package/dist/cjs/util/supportsVoiceover.js +0 -17
  144. package/dist/es2019/components/DropdownMenu.js +0 -156
  145. package/dist/es2019/components/DropdownMenuStateless.js +0 -459
  146. package/dist/es2019/components/context/DropdownItemClickManager.js +0 -31
  147. package/dist/es2019/components/context/DropdownItemFocusManager.js +0 -134
  148. package/dist/es2019/components/context/DropdownItemSelectionCache.js +0 -68
  149. package/dist/es2019/components/context/DropdownItemSelectionManager.js +0 -140
  150. package/dist/es2019/components/group/DropdownItemGroup.js +0 -17
  151. package/dist/es2019/components/group/DropdownItemGroupCheckbox.js +0 -3
  152. package/dist/es2019/components/group/DropdownItemGroupRadio.js +0 -3
  153. package/dist/es2019/components/group/ert-group-selection.js +0 -1
  154. package/dist/es2019/components/hoc/withItemSelectionManager.js +0 -20
  155. package/dist/es2019/components/hoc/withToggleInteraction.js +0 -119
  156. package/dist/es2019/components/item/DropdownItem.js +0 -3
  157. package/dist/es2019/components/item/DropdownItemCheckbox.js +0 -5
  158. package/dist/es2019/components/item/DropdownItemRadio.js +0 -5
  159. package/dist/es2019/components/item/ert-item-checkbox.js +0 -1
  160. package/dist/es2019/components/item/ert-item-radio.js +0 -1
  161. package/dist/es2019/components/item/ert-item.js +0 -1
  162. package/dist/es2019/styled/WidthConstrainer.js +0 -6
  163. package/dist/es2019/util/contextNamespace.js +0 -6
  164. package/dist/es2019/util/getDisplayName.js +0 -4
  165. package/dist/es2019/util/keys.js +0 -6
  166. package/dist/es2019/util/safeContextCall.js +0 -10
  167. package/dist/es2019/util/supportsVoiceover.js +0 -5
  168. package/dist/esm/components/DropdownMenu.js +0 -215
  169. package/dist/esm/components/DropdownMenuStateless.js +0 -516
  170. package/dist/esm/components/context/DropdownItemClickManager.js +0 -59
  171. package/dist/esm/components/context/DropdownItemFocusManager.js +0 -164
  172. package/dist/esm/components/context/DropdownItemSelectionCache.js +0 -113
  173. package/dist/esm/components/context/DropdownItemSelectionManager.js +0 -174
  174. package/dist/esm/components/group/DropdownItemGroup.js +0 -43
  175. package/dist/esm/components/group/DropdownItemGroupCheckbox.js +0 -3
  176. package/dist/esm/components/group/DropdownItemGroupRadio.js +0 -3
  177. package/dist/esm/components/group/ert-group-selection.js +0 -1
  178. package/dist/esm/components/hoc/withItemSelectionManager.js +0 -47
  179. package/dist/esm/components/hoc/withToggleInteraction.js +0 -155
  180. package/dist/esm/components/item/DropdownItem.js +0 -3
  181. package/dist/esm/components/item/DropdownItemCheckbox.js +0 -7
  182. package/dist/esm/components/item/DropdownItemRadio.js +0 -7
  183. package/dist/esm/components/item/ert-item-checkbox.js +0 -1
  184. package/dist/esm/components/item/ert-item-radio.js +0 -1
  185. package/dist/esm/components/item/ert-item.js +0 -1
  186. package/dist/esm/styled/WidthConstrainer.js +0 -17
  187. package/dist/esm/util/contextNamespace.js +0 -8
  188. package/dist/esm/util/getDisplayName.js +0 -6
  189. package/dist/esm/util/keys.js +0 -6
  190. package/dist/esm/util/safeContextCall.js +0 -18
  191. package/dist/esm/util/supportsVoiceover.js +0 -9
  192. package/dist/types/components/DropdownMenu.d.ts +0 -36
  193. package/dist/types/components/DropdownMenuStateless.d.ts +0 -82
  194. package/dist/types/components/context/DropdownItemClickManager.d.ts +0 -19
  195. package/dist/types/components/context/DropdownItemFocusManager.d.ts +0 -35
  196. package/dist/types/components/context/DropdownItemSelectionCache.d.ts +0 -31
  197. package/dist/types/components/context/DropdownItemSelectionManager.d.ts +0 -34
  198. package/dist/types/components/group/DropdownItemGroup.d.ts +0 -12
  199. package/dist/types/components/group/DropdownItemGroupCheckbox.d.ts +0 -55
  200. package/dist/types/components/group/DropdownItemGroupRadio.d.ts +0 -55
  201. package/dist/types/components/group/ert-group-selection.d.ts +0 -6
  202. package/dist/types/components/hoc/withItemSelectionManager.d.ts +0 -63
  203. package/dist/types/components/hoc/withToggleInteraction.d.ts +0 -98
  204. package/dist/types/components/item/DropdownItem.d.ts +0 -65
  205. package/dist/types/components/item/DropdownItemCheckbox.d.ts +0 -80
  206. package/dist/types/components/item/DropdownItemRadio.d.ts +0 -80
  207. package/dist/types/components/item/ert-item-checkbox.d.ts +0 -2
  208. package/dist/types/components/item/ert-item-radio.d.ts +0 -2
  209. package/dist/types/components/item/ert-item.d.ts +0 -2
  210. package/dist/types/styled/WidthConstrainer.d.ts +0 -7
  211. package/dist/types/util/contextNamespace.d.ts +0 -4
  212. package/dist/types/util/getDisplayName.d.ts +0 -3
  213. package/dist/types/util/keys.d.ts +0 -6
  214. package/dist/types/util/safeContextCall.d.ts +0 -6
  215. package/dist/types/util/supportsVoiceover.d.ts +0 -2
@@ -1,174 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
-
5
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
-
7
- Object.defineProperty(exports, "__esModule", {
8
- value: true
9
- });
10
- exports.default = void 0;
11
-
12
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
-
14
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
-
16
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
17
-
18
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
-
20
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
-
22
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
-
24
- var _defineProperty3 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
-
26
- var _react = _interopRequireWildcard(require("react"));
27
-
28
- var _propTypes = _interopRequireDefault(require("prop-types"));
29
-
30
- var _contextNamespace = require("../../util/contextNamespace");
31
-
32
- var _keys = require("../../util/keys");
33
-
34
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
35
-
36
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
37
-
38
- var DropdownItemFocusManager = /*#__PURE__*/function (_Component) {
39
- (0, _inherits2.default)(DropdownItemFocusManager, _Component);
40
-
41
- var _super = _createSuper(DropdownItemFocusManager);
42
-
43
- function DropdownItemFocusManager() {
44
- var _this;
45
-
46
- (0, _classCallCheck2.default)(this, DropdownItemFocusManager);
47
-
48
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
49
- args[_key] = arguments[_key];
50
- }
51
-
52
- _this = _super.call.apply(_super, [this].concat(args));
53
- (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "registeredItems", []);
54
- (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "handleItemRegistered", function (itemId, itemNode) {
55
- _this.registeredItems.push({
56
- itemId: itemId,
57
- itemNode: itemNode
58
- });
59
-
60
- if (_this.props.autoFocus && _this.registeredItems.length === 1) {
61
- _this.focusedItemId = itemId;
62
- itemNode.focus();
63
- }
64
- });
65
- (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "handleItemDeregistered", function (itemId) {
66
- _this.registeredItems = _this.registeredItems.filter(function (item) {
67
- return item.itemId !== itemId;
68
- });
69
- });
70
- (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "handleItemFocused", function (itemId) {
71
- _this.focusedItemId = itemId;
72
- });
73
- (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "handleItemUpdated", function (itemId, itemNode) {
74
- var matchingIndex = -1;
75
-
76
- for (var i = 0; i < _this.registeredItems.length; i++) {
77
- if (_this.registeredItems[i].itemId === itemId) {
78
- matchingIndex = i;
79
- break;
80
- }
81
- }
82
-
83
- if (matchingIndex === -1) {
84
- _this.handleItemRegistered(itemId, itemNode);
85
-
86
- return;
87
- }
88
-
89
- _this.registeredItems[matchingIndex].itemNode = itemNode;
90
-
91
- if (_this.focusedItemIndex() === matchingIndex) {
92
- itemNode.focus();
93
- }
94
- });
95
- (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "focusedItemIndex", function () {
96
- var _assertThisInitialize = (0, _assertThisInitialized2.default)(_this),
97
- focusedItemId = _assertThisInitialize.focusedItemId,
98
- registeredItems = _assertThisInitialize.registeredItems;
99
-
100
- for (var i = 0; i < registeredItems.length; i++) {
101
- if (registeredItems[i].itemId === focusedItemId) {
102
- return i;
103
- }
104
- }
105
-
106
- return -1;
107
- });
108
- (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "handleKeyboard", function (event) {
109
- var key = event.key,
110
- shiftKey = event.shiftKey;
111
-
112
- var focusedItemIndex = _this.focusedItemIndex();
113
-
114
- if (key === _keys.KEY_UP || key === _keys.KEY_DOWN) {
115
- // We prevent default here to avoid page scrolling when up/down
116
- // pressed while dropdown is focused.
117
- event.preventDefault();
118
-
119
- if (focusedItemIndex < 0) {
120
- return;
121
- }
122
-
123
- var nextItemIndex = key === _keys.KEY_UP ? Math.max(0, focusedItemIndex - 1) : Math.min(_this.registeredItems.length - 1, focusedItemIndex + 1);
124
-
125
- _this.registeredItems[nextItemIndex].itemNode.focus();
126
- }
127
-
128
- if (key === _keys.KEY_TAB) {
129
- if (!shiftKey && focusedItemIndex === _this.registeredItems.length - 1) {
130
- if (_this.props.close) {
131
- _this.props.close({
132
- event: event,
133
- source: 'keydown'
134
- });
135
- }
136
- }
137
-
138
- if (shiftKey && focusedItemIndex === 0) {
139
- if (_this.props.close) {
140
- _this.props.close({
141
- event: event,
142
- source: 'keydown'
143
- });
144
- }
145
- }
146
- }
147
- });
148
- return _this;
149
- }
150
-
151
- (0, _createClass2.default)(DropdownItemFocusManager, [{
152
- key: "getChildContext",
153
- value: function getChildContext() {
154
- return (0, _defineProperty3.default)({}, _contextNamespace.focusManagerContext, {
155
- itemFocused: this.handleItemFocused,
156
- registerItem: this.handleItemRegistered,
157
- deregisterItem: this.handleItemDeregistered,
158
- updateItem: this.handleItemUpdated
159
- });
160
- }
161
- }, {
162
- key: "render",
163
- value: function render() {
164
- // eslint-disable-next-line jsx-a11y/no-static-element-interactions
165
- return /*#__PURE__*/_react.default.createElement("div", {
166
- onKeyDown: this.handleKeyboard
167
- }, this.props.children);
168
- }
169
- }]);
170
- return DropdownItemFocusManager;
171
- }(_react.Component);
172
-
173
- exports.default = DropdownItemFocusManager;
174
- (0, _defineProperty3.default)(DropdownItemFocusManager, "childContextTypes", (0, _defineProperty3.default)({}, _contextNamespace.focusManagerContext, _propTypes.default.object));
@@ -1,127 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
-
5
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
-
7
- Object.defineProperty(exports, "__esModule", {
8
- value: true
9
- });
10
- exports.default = void 0;
11
-
12
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
-
14
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
-
16
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
-
18
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
19
-
20
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
21
-
22
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
23
-
24
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
25
-
26
- var _defineProperty3 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
27
-
28
- var _react = _interopRequireWildcard(require("react"));
29
-
30
- var _arrayFind = _interopRequireDefault(require("array-find"));
31
-
32
- var _propTypes = _interopRequireDefault(require("prop-types"));
33
-
34
- var _contextNamespace = require("../../util/contextNamespace");
35
-
36
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
37
-
38
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
39
-
40
- var isItemInList = function isItemInList(itemList, itemId, groupId) {
41
- return Boolean((0, _arrayFind.default)(itemList, function (item) {
42
- return item.id === itemId && item.groupId === groupId;
43
- }));
44
- };
45
-
46
- var DropdownItemSelectionCache = /*#__PURE__*/function (_Component) {
47
- (0, _inherits2.default)(DropdownItemSelectionCache, _Component);
48
-
49
- var _super = _createSuper(DropdownItemSelectionCache);
50
-
51
- function DropdownItemSelectionCache() {
52
- var _this;
53
-
54
- (0, _classCallCheck2.default)(this, DropdownItemSelectionCache);
55
-
56
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
57
- args[_key] = arguments[_key];
58
- }
59
-
60
- _this = _super.call.apply(_super, [this].concat(args));
61
- (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "state", {
62
- lastCacheUpdate: 0
63
- });
64
- (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "selectedItems", []);
65
- (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "alreadyDefaultedItems", []);
66
- (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "handleItemSelectionsChanged", function (groupId, newGroupSelections) {
67
- var newSelectedItems = [].concat((0, _toConsumableArray2.default)(_this.selectedItems.filter(function (item) {
68
- return item.groupId !== groupId;
69
- })), (0, _toConsumableArray2.default)(newGroupSelections));
70
- _this.selectedItems = newSelectedItems; // We store selectedItems in an instance variable (this.selectedItems) instead of state,
71
- // because if multiple children update the cache at the same time it causes unexpected
72
- // behaviour due to the asynchronous behaviour of setState. So we need to trigger setState
73
- // with a different value to cause the children to be updated with their new selection values.
74
-
75
- _this.setState({
76
- lastCacheUpdate: Date.now()
77
- });
78
- });
79
- return _this;
80
- }
81
-
82
- (0, _createClass2.default)(DropdownItemSelectionCache, [{
83
- key: "getChildContext",
84
- // eslint-disable-line react/sort-comp
85
- value: function getChildContext() {
86
- var _this2 = this;
87
-
88
- return (0, _defineProperty3.default)({}, _contextNamespace.selectionCacheContext, {
89
- // This function returns true/false describing whether the supplied navigation item
90
- // (which must have a unique item and group ID) is currently selected - this is used
91
- // by radio and checkbox dropdown items to retreive their 'selected' state when they
92
- // re-mount, which happens when the dropdown is closed and then re-opened.
93
- isItemSelected: function isItemSelected(groupId, itemId) {
94
- return isItemInList(_this2.selectedItems, itemId, groupId);
95
- },
96
- itemsInGroup: function itemsInGroup(groupId) {
97
- return _this2.selectedItems.filter(function (item) {
98
- return item.groupId === groupId;
99
- });
100
- },
101
- itemSelectionsChanged: this.handleItemSelectionsChanged,
102
- hasItemAlreadyHadDefaultSelectedApplied: function hasItemAlreadyHadDefaultSelectedApplied(groupId, itemId) {
103
- return isItemInList(_this2.alreadyDefaultedItems, itemId, groupId);
104
- },
105
- markItemAsDefaultApplied: function markItemAsDefaultApplied(groupId, itemId) {
106
- _this2.alreadyDefaultedItems.push({
107
- id: itemId,
108
- groupId: groupId
109
- });
110
- }
111
- });
112
- }
113
- }, {
114
- key: "render",
115
- value: function render() {
116
- return /*#__PURE__*/_react.default.createElement("div", null, this.props.children);
117
- }
118
- }]);
119
- return DropdownItemSelectionCache;
120
- }(_react.Component);
121
-
122
- exports.default = DropdownItemSelectionCache;
123
- (0, _defineProperty3.default)(DropdownItemSelectionCache, "childContextTypes", (0, _defineProperty3.default)({}, _contextNamespace.selectionCacheContext, _propTypes.default.shape({
124
- isItemSelected: _propTypes.default.func,
125
- itemsInGroup: _propTypes.default.func,
126
- itemSelectionsChanged: _propTypes.default.func
127
- })));
@@ -1,181 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
-
5
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
-
7
- Object.defineProperty(exports, "__esModule", {
8
- value: true
9
- });
10
- exports.default = void 0;
11
-
12
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
-
14
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
-
16
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
-
18
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
19
-
20
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
21
-
22
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
23
-
24
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
25
-
26
- var _defineProperty4 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
27
-
28
- var _react = _interopRequireWildcard(require("react"));
29
-
30
- var _propTypes = _interopRequireDefault(require("prop-types"));
31
-
32
- var _contextNamespace = require("../../util/contextNamespace");
33
-
34
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
35
-
36
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
37
-
38
- var DropdownItemSelectionManager = /*#__PURE__*/function (_Component) {
39
- (0, _inherits2.default)(DropdownItemSelectionManager, _Component);
40
-
41
- var _super = _createSuper(DropdownItemSelectionManager);
42
-
43
- function DropdownItemSelectionManager() {
44
- var _this;
45
-
46
- (0, _classCallCheck2.default)(this, DropdownItemSelectionManager);
47
-
48
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
49
- args[_key] = arguments[_key];
50
- }
51
-
52
- _this = _super.call.apply(_super, [this].concat(args));
53
- (0, _defineProperty4.default)((0, _assertThisInitialized2.default)(_this), "setItemSelected", function (itemId, isSelected, defaultSelected) {
54
- var _this$props = _this.props,
55
- behavior = _this$props.behavior,
56
- groupId = _this$props.groupId;
57
-
58
- var setSelected = function setSelected(finalBool) {
59
- if (behavior === 'checkbox' || behavior === 'menuitemcheckbox') {
60
- _this.setCheckboxItemSelected(itemId, finalBool);
61
- } else if (behavior === 'radio' || behavior === 'menuitemradio') {
62
- _this.setRadioItemSelected(itemId, finalBool);
63
- }
64
- }; // If a radio or checkbox item has defaultSelected set on it, that it will try to set its
65
- // selected state to true each time it mounts (which happens whenever the dropdown is re-
66
- // opened by the user. The following check makes sure that the defaultSelected behaviour
67
- // only applies on the first mount of the radio/checkbox.
68
-
69
-
70
- if (typeof isSelected === 'boolean') {
71
- // If isSelected is explicitly provided, set it to that
72
- setSelected(isSelected);
73
- } else if (defaultSelected) {
74
- if (!_this.hasAlreadyAppliedDefaultSelected(itemId)) {
75
- // If using defaultSelected and this is first mount, select the item
76
- setSelected(true);
77
-
78
- _this.context[_contextNamespace.selectionCacheContext].markItemAsDefaultApplied(groupId, itemId);
79
- } else {
80
- // If using defaultSelected and not first mount, set isSelected to cached value
81
- setSelected(_this.isItemSelectedInCache(itemId));
82
- }
83
- } else {
84
- setSelected(_this.isItemSelectedInCache(itemId));
85
- }
86
- });
87
- (0, _defineProperty4.default)((0, _assertThisInitialized2.default)(_this), "setCheckboxItemSelected", function (itemId, isSelected) {
88
- var cache = _this.context[_contextNamespace.selectionCacheContext];
89
- var alreadySelected = cache.itemsInGroup(_this.props.groupId);
90
- var isAlreadySelected = cache.isItemSelected(_this.props.groupId, itemId);
91
-
92
- if (isSelected && !isAlreadySelected) {
93
- _this.updateCacheContextWithSelections([].concat((0, _toConsumableArray2.default)(alreadySelected), [{
94
- id: itemId,
95
- groupId: _this.props.groupId
96
- }]));
97
- } else if (!isSelected && isAlreadySelected) {
98
- var withoutCurrentItem = alreadySelected.filter(function (item) {
99
- return item.id !== itemId;
100
- });
101
-
102
- _this.updateCacheContextWithSelections(withoutCurrentItem);
103
- }
104
- });
105
- (0, _defineProperty4.default)((0, _assertThisInitialized2.default)(_this), "setRadioItemSelected", function (itemId, isSelected) {
106
- var cache = _this.context[_contextNamespace.selectionCacheContext];
107
- var isAlreadySelected = cache.isItemSelected(_this.props.groupId, itemId);
108
-
109
- if (isAlreadySelected && !isSelected) {
110
- _this.updateCacheContextWithSelections([]);
111
- } else if (!isAlreadySelected && isSelected) {
112
- _this.updateCacheContextWithSelections([{
113
- id: itemId,
114
- groupId: _this.props.groupId
115
- }]);
116
- }
117
- });
118
- (0, _defineProperty4.default)((0, _assertThisInitialized2.default)(_this), "isItemSelectedInCache", function (itemId) {
119
- return _this.context[_contextNamespace.selectionCacheContext].isItemSelected(_this.props.groupId, itemId);
120
- });
121
- (0, _defineProperty4.default)((0, _assertThisInitialized2.default)(_this), "handleItemClicked", function (clickedItemId) {
122
- var behavior = _this.props.behavior;
123
-
124
- if (behavior === 'checkbox' || behavior === 'menuitemcheckbox') {
125
- _this.handleCheckboxItemClicked(clickedItemId);
126
- } else if (behavior === 'radio' || behavior === 'menuitemradio') {
127
- _this.handleRadioItemClicked(clickedItemId);
128
- }
129
- });
130
- (0, _defineProperty4.default)((0, _assertThisInitialized2.default)(_this), "hasAlreadyAppliedDefaultSelected", function (itemId) {
131
- return _this.context[_contextNamespace.selectionCacheContext].hasItemAlreadyHadDefaultSelectedApplied(_this.props.groupId, itemId);
132
- });
133
- (0, _defineProperty4.default)((0, _assertThisInitialized2.default)(_this), "handleCheckboxItemClicked", function (clickedItemId) {
134
- var cache = _this.context[_contextNamespace.selectionCacheContext];
135
- var itemsInGroup = cache.itemsInGroup(_this.props.groupId);
136
- var newSelections = cache.isItemSelected(_this.props.groupId, clickedItemId) ? itemsInGroup.filter(function (item) {
137
- return item.id !== clickedItemId;
138
- }) : [].concat((0, _toConsumableArray2.default)(itemsInGroup), [{
139
- id: clickedItemId,
140
- groupId: _this.props.groupId
141
- }]);
142
-
143
- _this.updateCacheContextWithSelections(newSelections);
144
- });
145
- (0, _defineProperty4.default)((0, _assertThisInitialized2.default)(_this), "handleRadioItemClicked", function (clickedItemId) {
146
- _this.updateCacheContextWithSelections([{
147
- id: clickedItemId,
148
- groupId: _this.props.groupId
149
- }]);
150
- });
151
- (0, _defineProperty4.default)((0, _assertThisInitialized2.default)(_this), "updateCacheContextWithSelections", function (itemSelections) {
152
- _this.context[_contextNamespace.selectionCacheContext].itemSelectionsChanged(_this.props.groupId, itemSelections);
153
- });
154
- return _this;
155
- }
156
-
157
- (0, _createClass2.default)(DropdownItemSelectionManager, [{
158
- key: "getChildContext",
159
- value: function getChildContext() {
160
- var _this2 = this;
161
-
162
- return (0, _defineProperty4.default)({}, _contextNamespace.selectionManagerContext, {
163
- isItemSelected: function isItemSelected(itemId) {
164
- return _this2.context[_contextNamespace.selectionCacheContext].isItemSelected(_this2.props.groupId, itemId);
165
- },
166
- itemClicked: this.handleItemClicked,
167
- setItemSelected: this.setItemSelected
168
- });
169
- }
170
- }, {
171
- key: "render",
172
- value: function render() {
173
- return /*#__PURE__*/_react.default.createElement("div", null, this.props.children);
174
- }
175
- }]);
176
- return DropdownItemSelectionManager;
177
- }(_react.Component);
178
-
179
- exports.default = DropdownItemSelectionManager;
180
- (0, _defineProperty4.default)(DropdownItemSelectionManager, "childContextTypes", (0, _defineProperty4.default)({}, _contextNamespace.selectionManagerContext, _propTypes.default.object));
181
- (0, _defineProperty4.default)(DropdownItemSelectionManager, "contextTypes", (0, _defineProperty4.default)({}, _contextNamespace.selectionCacheContext, _propTypes.default.object.isRequired));
@@ -1,57 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
-
5
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
-
7
- Object.defineProperty(exports, "__esModule", {
8
- value: true
9
- });
10
- exports.default = void 0;
11
-
12
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
-
14
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
-
16
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
-
18
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
-
20
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
-
22
- var _react = _interopRequireWildcard(require("react"));
23
-
24
- var _item = require("@atlaskit/item");
25
-
26
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
27
-
28
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
29
-
30
- var DropdownItemGroup = /*#__PURE__*/function (_Component) {
31
- (0, _inherits2.default)(DropdownItemGroup, _Component);
32
-
33
- var _super = _createSuper(DropdownItemGroup);
34
-
35
- function DropdownItemGroup() {
36
- (0, _classCallCheck2.default)(this, DropdownItemGroup);
37
- return _super.apply(this, arguments);
38
- }
39
-
40
- (0, _createClass2.default)(DropdownItemGroup, [{
41
- key: "render",
42
- value: function render() {
43
- var _this$props = this.props,
44
- children = _this$props.children,
45
- elemAfter = _this$props.elemAfter,
46
- title = _this$props.title;
47
- return /*#__PURE__*/_react.default.createElement(_item.ItemGroup, {
48
- elemAfter: elemAfter,
49
- title: title,
50
- role: "menu"
51
- }, children);
52
- }
53
- }]);
54
- return DropdownItemGroup;
55
- }(_react.Component);
56
-
57
- exports.default = DropdownItemGroup;
@@ -1,16 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
-
10
- var _withItemSelectionManager = _interopRequireDefault(require("../hoc/withItemSelectionManager"));
11
-
12
- var _DropdownItemGroup = _interopRequireDefault(require("./DropdownItemGroup"));
13
-
14
- var _default = (0, _withItemSelectionManager.default)(_DropdownItemGroup.default, 'checkbox');
15
-
16
- exports.default = _default;
@@ -1,16 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
-
10
- var _withItemSelectionManager = _interopRequireDefault(require("../hoc/withItemSelectionManager"));
11
-
12
- var _DropdownItemGroup = _interopRequireDefault(require("./DropdownItemGroup"));
13
-
14
- var _default = (0, _withItemSelectionManager.default)(_DropdownItemGroup.default, 'radio');
15
-
16
- exports.default = _default;
@@ -1,8 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = _default;
7
-
8
- function _default(_) {}
@@ -1,62 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
-
5
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
-
7
- Object.defineProperty(exports, "__esModule", {
8
- value: true
9
- });
10
- exports.default = void 0;
11
-
12
- var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
-
14
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
-
16
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
-
18
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
-
20
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
-
22
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
-
24
- var _react = _interopRequireWildcard(require("react"));
25
-
26
- var _DropdownItemSelectionManager = _interopRequireDefault(require("../context/DropdownItemSelectionManager"));
27
-
28
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
29
-
30
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
31
-
32
- // HOC that typically wraps @atlaskit/item/ItemGroup
33
- var withDropdownItemSelectionManager = function withDropdownItemSelectionManager(WrappedComponent, selectionBehavior) {
34
- return /*#__PURE__*/function (_Component) {
35
- (0, _inherits2.default)(WithDropdownItemSelectionManager, _Component);
36
-
37
- var _super = _createSuper(WithDropdownItemSelectionManager);
38
-
39
- function WithDropdownItemSelectionManager() {
40
- (0, _classCallCheck2.default)(this, WithDropdownItemSelectionManager);
41
- return _super.apply(this, arguments);
42
- }
43
-
44
- (0, _createClass2.default)(WithDropdownItemSelectionManager, [{
45
- key: "render",
46
- value: function render() {
47
- var _this$props = this.props,
48
- children = _this$props.children,
49
- id = _this$props.id,
50
- otherProps = (0, _objectWithoutProperties2.default)(_this$props, ["children", "id"]);
51
- return /*#__PURE__*/_react.default.createElement(WrappedComponent, otherProps, /*#__PURE__*/_react.default.createElement(_DropdownItemSelectionManager.default, {
52
- groupId: id,
53
- behavior: selectionBehavior
54
- }, children));
55
- }
56
- }]);
57
- return WithDropdownItemSelectionManager;
58
- }(_react.Component);
59
- };
60
-
61
- var _default = withDropdownItemSelectionManager;
62
- exports.default = _default;