@atlaskit/dropdown-menu 10.1.8 → 11.0.2

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 (211) hide show
  1. package/CHANGELOG.md +148 -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 +108 -0
  30. package/dist/cjs/dropdown-menu-item-group.js +22 -0
  31. package/dist/cjs/dropdown-menu-item.js +67 -0
  32. package/dist/cjs/dropdown-menu.js +194 -0
  33. package/dist/cjs/index.js +21 -29
  34. package/dist/cjs/{components/item/DropdownItemRadio.js → internal/components/focus-manager.js} +40 -9
  35. package/dist/cjs/internal/components/menu-wrapper.js +68 -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 +108 -0
  49. package/dist/cjs/version.json +1 -1
  50. package/dist/es2019/checkbox/dropdown-item-checkbox-group.js +21 -0
  51. package/dist/es2019/checkbox/dropdown-item-checkbox.js +67 -0
  52. package/dist/es2019/dropdown-menu-item-group.js +11 -0
  53. package/dist/es2019/dropdown-menu-item.js +49 -0
  54. package/dist/es2019/dropdown-menu.js +151 -0
  55. package/dist/es2019/index.js +7 -11
  56. package/dist/es2019/internal/components/focus-manager.js +40 -0
  57. package/dist/es2019/internal/components/menu-wrapper.js +44 -0
  58. package/dist/es2019/internal/context/checkbox-group-context.js +6 -0
  59. package/dist/es2019/internal/context/selection-store.js +54 -0
  60. package/dist/es2019/internal/hooks/use-checkbox-state.js +45 -0
  61. package/dist/es2019/internal/hooks/use-radio-state.js +56 -0
  62. package/dist/es2019/internal/hooks/use-register-item-with-focus-manager.js +19 -0
  63. package/dist/es2019/internal/utils/get-icon-colors.js +17 -0
  64. package/dist/es2019/internal/utils/handle-focus.js +48 -0
  65. package/dist/es2019/internal/utils/is-checkbox-item.js +4 -0
  66. package/dist/es2019/internal/utils/is-radio-item.js +4 -0
  67. package/dist/es2019/internal/utils/is-voice-over-supported.js +11 -0
  68. package/dist/es2019/internal/utils/reset-options-in-group.js +7 -0
  69. package/dist/es2019/radio/dropdown-item-radio-group.js +56 -0
  70. package/dist/es2019/radio/dropdown-item-radio.js +67 -0
  71. package/dist/es2019/version.json +1 -1
  72. package/dist/esm/checkbox/dropdown-item-checkbox-group.js +19 -0
  73. package/dist/esm/checkbox/dropdown-item-checkbox.js +81 -0
  74. package/dist/esm/dropdown-menu-item-group.js +11 -0
  75. package/dist/esm/dropdown-menu-item.js +52 -0
  76. package/dist/esm/dropdown-menu.js +168 -0
  77. package/dist/esm/index.js +7 -11
  78. package/dist/esm/internal/components/focus-manager.js +39 -0
  79. package/dist/esm/internal/components/menu-wrapper.js +45 -0
  80. package/dist/esm/internal/context/checkbox-group-context.js +6 -0
  81. package/dist/esm/internal/context/selection-store.js +58 -0
  82. package/dist/esm/internal/hooks/use-checkbox-state.js +55 -0
  83. package/dist/esm/internal/hooks/use-radio-state.js +70 -0
  84. package/dist/esm/internal/hooks/use-register-item-with-focus-manager.js +19 -0
  85. package/dist/esm/internal/utils/get-icon-colors.js +17 -0
  86. package/dist/esm/internal/utils/handle-focus.js +47 -0
  87. package/dist/esm/internal/utils/is-checkbox-item.js +4 -0
  88. package/dist/esm/internal/utils/is-radio-item.js +4 -0
  89. package/dist/esm/internal/utils/is-voice-over-supported.js +15 -0
  90. package/dist/esm/internal/utils/reset-options-in-group.js +13 -0
  91. package/dist/esm/radio/dropdown-item-radio-group.js +66 -0
  92. package/dist/esm/radio/dropdown-item-radio.js +81 -0
  93. package/dist/esm/version.json +1 -1
  94. package/dist/types/checkbox/dropdown-item-checkbox-group.d.ts +16 -0
  95. package/dist/types/checkbox/dropdown-item-checkbox.d.ts +13 -0
  96. package/dist/types/dropdown-menu-item-group.d.ts +11 -0
  97. package/dist/types/dropdown-menu-item.d.ts +13 -0
  98. package/dist/types/dropdown-menu.d.ts +13 -0
  99. package/dist/types/index.d.ts +8 -10
  100. package/dist/types/internal/components/focus-manager.d.ts +19 -0
  101. package/dist/types/internal/components/menu-wrapper.d.ts +11 -0
  102. package/dist/types/internal/context/checkbox-group-context.d.ts +5 -0
  103. package/dist/types/internal/context/selection-store.d.ts +27 -0
  104. package/dist/types/internal/hooks/use-checkbox-state.d.ts +14 -0
  105. package/dist/types/internal/hooks/use-radio-state.d.ts +9 -0
  106. package/dist/types/internal/hooks/use-register-item-with-focus-manager.d.ts +4 -0
  107. package/dist/types/internal/utils/get-icon-colors.d.ts +8 -0
  108. package/dist/types/internal/utils/handle-focus.d.ts +2 -0
  109. package/dist/types/internal/utils/is-checkbox-item.d.ts +1 -0
  110. package/dist/types/internal/utils/is-radio-item.d.ts +1 -0
  111. package/dist/types/internal/utils/is-voice-over-supported.d.ts +2 -0
  112. package/dist/types/internal/utils/reset-options-in-group.d.ts +4 -0
  113. package/dist/types/radio/dropdown-item-radio-group.d.ts +25 -0
  114. package/dist/types/radio/dropdown-item-radio.d.ts +13 -0
  115. package/dist/types/types.d.ts +254 -79
  116. package/package.json +39 -23
  117. package/dist/cjs/components/DropdownMenu.js +0 -230
  118. package/dist/cjs/components/DropdownMenuStateless.js +0 -523
  119. package/dist/cjs/components/context/DropdownItemClickManager.js +0 -72
  120. package/dist/cjs/components/context/DropdownItemFocusManager.js +0 -178
  121. package/dist/cjs/components/context/DropdownItemSelectionCache.js +0 -131
  122. package/dist/cjs/components/context/DropdownItemSelectionManager.js +0 -185
  123. package/dist/cjs/components/group/DropdownItemGroup.js +0 -61
  124. package/dist/cjs/components/group/DropdownItemGroupCheckbox.js +0 -16
  125. package/dist/cjs/components/group/DropdownItemGroupRadio.js +0 -16
  126. package/dist/cjs/components/group/ert-group-selection.js +0 -8
  127. package/dist/cjs/components/hoc/withItemSelectionManager.js +0 -66
  128. package/dist/cjs/components/hoc/withToggleInteraction.js +0 -175
  129. package/dist/cjs/components/item/DropdownItem.js +0 -19
  130. package/dist/cjs/components/item/DropdownItemCheckbox.js +0 -28
  131. package/dist/cjs/components/item/ert-item-checkbox.js +0 -8
  132. package/dist/cjs/components/item/ert-item-radio.js +0 -8
  133. package/dist/cjs/components/item/ert-item.js +0 -8
  134. package/dist/cjs/styled/WidthConstrainer.js +0 -21
  135. package/dist/cjs/util/contextNamespace.js +0 -19
  136. package/dist/cjs/util/getDisplayName.js +0 -14
  137. package/dist/cjs/util/keys.js +0 -18
  138. package/dist/cjs/util/safeContextCall.js +0 -27
  139. package/dist/cjs/util/supportsVoiceover.js +0 -17
  140. package/dist/es2019/components/DropdownMenu.js +0 -156
  141. package/dist/es2019/components/DropdownMenuStateless.js +0 -459
  142. package/dist/es2019/components/context/DropdownItemClickManager.js +0 -31
  143. package/dist/es2019/components/context/DropdownItemFocusManager.js +0 -134
  144. package/dist/es2019/components/context/DropdownItemSelectionCache.js +0 -68
  145. package/dist/es2019/components/context/DropdownItemSelectionManager.js +0 -140
  146. package/dist/es2019/components/group/DropdownItemGroup.js +0 -17
  147. package/dist/es2019/components/group/DropdownItemGroupCheckbox.js +0 -3
  148. package/dist/es2019/components/group/DropdownItemGroupRadio.js +0 -3
  149. package/dist/es2019/components/group/ert-group-selection.js +0 -1
  150. package/dist/es2019/components/hoc/withItemSelectionManager.js +0 -20
  151. package/dist/es2019/components/hoc/withToggleInteraction.js +0 -119
  152. package/dist/es2019/components/item/DropdownItem.js +0 -3
  153. package/dist/es2019/components/item/DropdownItemCheckbox.js +0 -5
  154. package/dist/es2019/components/item/DropdownItemRadio.js +0 -5
  155. package/dist/es2019/components/item/ert-item-checkbox.js +0 -1
  156. package/dist/es2019/components/item/ert-item-radio.js +0 -1
  157. package/dist/es2019/components/item/ert-item.js +0 -1
  158. package/dist/es2019/styled/WidthConstrainer.js +0 -6
  159. package/dist/es2019/util/contextNamespace.js +0 -6
  160. package/dist/es2019/util/getDisplayName.js +0 -4
  161. package/dist/es2019/util/keys.js +0 -6
  162. package/dist/es2019/util/safeContextCall.js +0 -10
  163. package/dist/es2019/util/supportsVoiceover.js +0 -5
  164. package/dist/esm/components/DropdownMenu.js +0 -215
  165. package/dist/esm/components/DropdownMenuStateless.js +0 -516
  166. package/dist/esm/components/context/DropdownItemClickManager.js +0 -59
  167. package/dist/esm/components/context/DropdownItemFocusManager.js +0 -164
  168. package/dist/esm/components/context/DropdownItemSelectionCache.js +0 -113
  169. package/dist/esm/components/context/DropdownItemSelectionManager.js +0 -174
  170. package/dist/esm/components/group/DropdownItemGroup.js +0 -43
  171. package/dist/esm/components/group/DropdownItemGroupCheckbox.js +0 -3
  172. package/dist/esm/components/group/DropdownItemGroupRadio.js +0 -3
  173. package/dist/esm/components/group/ert-group-selection.js +0 -1
  174. package/dist/esm/components/hoc/withItemSelectionManager.js +0 -47
  175. package/dist/esm/components/hoc/withToggleInteraction.js +0 -155
  176. package/dist/esm/components/item/DropdownItem.js +0 -3
  177. package/dist/esm/components/item/DropdownItemCheckbox.js +0 -7
  178. package/dist/esm/components/item/DropdownItemRadio.js +0 -7
  179. package/dist/esm/components/item/ert-item-checkbox.js +0 -1
  180. package/dist/esm/components/item/ert-item-radio.js +0 -1
  181. package/dist/esm/components/item/ert-item.js +0 -1
  182. package/dist/esm/styled/WidthConstrainer.js +0 -9
  183. package/dist/esm/util/contextNamespace.js +0 -8
  184. package/dist/esm/util/getDisplayName.js +0 -6
  185. package/dist/esm/util/keys.js +0 -6
  186. package/dist/esm/util/safeContextCall.js +0 -18
  187. package/dist/esm/util/supportsVoiceover.js +0 -9
  188. package/dist/types/components/DropdownMenu.d.ts +0 -36
  189. package/dist/types/components/DropdownMenuStateless.d.ts +0 -82
  190. package/dist/types/components/context/DropdownItemClickManager.d.ts +0 -19
  191. package/dist/types/components/context/DropdownItemFocusManager.d.ts +0 -35
  192. package/dist/types/components/context/DropdownItemSelectionCache.d.ts +0 -31
  193. package/dist/types/components/context/DropdownItemSelectionManager.d.ts +0 -34
  194. package/dist/types/components/group/DropdownItemGroup.d.ts +0 -12
  195. package/dist/types/components/group/DropdownItemGroupCheckbox.d.ts +0 -55
  196. package/dist/types/components/group/DropdownItemGroupRadio.d.ts +0 -55
  197. package/dist/types/components/group/ert-group-selection.d.ts +0 -6
  198. package/dist/types/components/hoc/withItemSelectionManager.d.ts +0 -63
  199. package/dist/types/components/hoc/withToggleInteraction.d.ts +0 -98
  200. package/dist/types/components/item/DropdownItem.d.ts +0 -65
  201. package/dist/types/components/item/DropdownItemCheckbox.d.ts +0 -80
  202. package/dist/types/components/item/DropdownItemRadio.d.ts +0 -80
  203. package/dist/types/components/item/ert-item-checkbox.d.ts +0 -2
  204. package/dist/types/components/item/ert-item-radio.d.ts +0 -2
  205. package/dist/types/components/item/ert-item.d.ts +0 -2
  206. package/dist/types/styled/WidthConstrainer.d.ts +0 -7
  207. package/dist/types/util/contextNamespace.d.ts +0 -4
  208. package/dist/types/util/getDisplayName.d.ts +0 -3
  209. package/dist/types/util/keys.d.ts +0 -6
  210. package/dist/types/util/safeContextCall.d.ts +0 -6
  211. package/dist/types/util/supportsVoiceover.d.ts +0 -2
@@ -1,523 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
- Object.defineProperty(exports, "__esModule", {
8
- value: true
9
- });
10
- exports.default = exports.DropdownMenuStatelessWithoutAnalytics = exports.DropdownMenuStateless = void 0;
11
-
12
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
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 _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
27
-
28
- var _react = _interopRequireWildcard(require("react"));
29
-
30
- var _reactDom = require("react-dom");
31
-
32
- var _analyticsNext = require("@atlaskit/analytics-next");
33
-
34
- var _customThemeButton = _interopRequireDefault(require("@atlaskit/button/custom-theme-button"));
35
-
36
- var _droplist = _interopRequireWildcard(require("@atlaskit/droplist"));
37
-
38
- var _chevronDown = _interopRequireDefault(require("@atlaskit/icon/glyph/chevron-down"));
39
-
40
- var _WidthConstrainer = _interopRequireDefault(require("../styled/WidthConstrainer"));
41
-
42
- var _keys = require("../util/keys");
43
-
44
- var _DropdownItemClickManager = _interopRequireDefault(require("./context/DropdownItemClickManager"));
45
-
46
- var _DropdownItemFocusManager = _interopRequireDefault(require("./context/DropdownItemFocusManager"));
47
-
48
- var _DropdownItemSelectionCache = _interopRequireDefault(require("./context/DropdownItemSelectionCache"));
49
-
50
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
51
-
52
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
53
-
54
- 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); }; }
55
-
56
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
57
-
58
- var packageName = "@atlaskit/dropdown-menu";
59
- var packageVersion = "10.1.8";
60
-
61
- var DropdownMenuStateless = /*#__PURE__*/function (_Component) {
62
- (0, _inherits2.default)(DropdownMenuStateless, _Component);
63
-
64
- var _super = _createSuper(DropdownMenuStateless);
65
-
66
- function DropdownMenuStateless() {
67
- var _this;
68
-
69
- (0, _classCallCheck2.default)(this, DropdownMenuStateless);
70
-
71
- for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {
72
- _args[_key] = arguments[_key];
73
- }
74
-
75
- _this = _super.call.apply(_super, [this].concat(_args));
76
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "dropdownListPositioned", false);
77
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "state", {
78
- autoFocusDropdownItems: false
79
- });
80
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "componentDidMount", function () {
81
- if (_this.isUsingDeprecatedAPI()) {
82
- if (process.env.NODE_ENV !== 'test' && process.env.NODE_ENV !== 'production' && !process.env.CI) {
83
- // eslint-disable-next-line no-console
84
- console.log('DropdownMenu.items is deprecated. Please switch to the declarative API.');
85
- }
86
-
87
- if (_this.domItemsList) {
88
- _this.focusFirstItem();
89
- }
90
- }
91
- });
92
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "componentDidUpdate", function (prevProp) {
93
- if (_this.isUsingDeprecatedAPI() && _this.props.isOpen && !prevProp.isOpen) {
94
- _this.focusFirstItem();
95
- }
96
- });
97
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "getNextFocusable", function (indexItem, available) {
98
- if (!_this.domItemsList) {
99
- return null;
100
- }
101
-
102
- var currentItem = typeof indexItem !== 'number' ? -1 : indexItem;
103
- var latestAvailable = typeof available !== 'number' ? currentItem : available;
104
-
105
- if (currentItem < _this.domItemsList.length - 1) {
106
- currentItem++;
107
-
108
- if (_this.domItemsList[currentItem].getAttribute('aria-hidden') !== 'true') {
109
- return currentItem;
110
- }
111
-
112
- return _this.getNextFocusable(currentItem, latestAvailable);
113
- }
114
-
115
- return latestAvailable;
116
- });
117
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "getPrevFocusable", function (indexItem, available) {
118
- if (!_this.domItemsList) {
119
- return null;
120
- }
121
-
122
- var currentItem = typeof indexItem !== 'number' ? -1 : indexItem;
123
- var latestAvailable = typeof available !== 'number' ? currentItem : available;
124
-
125
- if (currentItem && currentItem > 0) {
126
- currentItem--;
127
-
128
- if (_this.domItemsList[currentItem].getAttribute('aria-hidden') !== 'true') {
129
- return currentItem;
130
- }
131
-
132
- return _this.getPrevFocusable(currentItem, latestAvailable);
133
- }
134
-
135
- return latestAvailable || currentItem;
136
- });
137
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "focusFirstItem", function () {
138
- if (_this.sourceOfIsOpen === 'keydown') {
139
- _this.focusItem(_this.getNextFocusable());
140
- }
141
- });
142
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "focusNextItem", function () {
143
- _this.focusItem(_this.getNextFocusable(_this.focusedItem));
144
- });
145
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "focusPreviousItem", function () {
146
- _this.focusItem(_this.getPrevFocusable(_this.focusedItem));
147
- });
148
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "focusItem", function (index) {
149
- if (!_this.domItemsList || !index) {
150
- return;
151
- }
152
-
153
- _this.focusedItem = index;
154
-
155
- _this.domItemsList[_this.focusedItem].focus();
156
- });
157
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "isTargetChildItem", function (target) {
158
- if (!target) {
159
- return false;
160
- }
161
-
162
- var isDroplistItem = target.getAttribute('data-role') === 'droplistItem'; // eslint-disable-next-line react/no-find-dom-node
163
-
164
- var thisDom = (0, _reactDom.findDOMNode)((0, _assertThisInitialized2.default)(_this));
165
- return isDroplistItem && thisDom ? thisDom.contains(target) : false;
166
- });
167
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleKeyboardInteractionForClosed", function (event) {
168
- if (_this.props.isOpen) {
169
- return;
170
- }
171
-
172
- switch (event.key) {
173
- case _keys.KEY_DOWN:
174
- case _keys.KEY_SPACE:
175
- case _keys.KEY_ENTER:
176
- event.preventDefault();
177
-
178
- _this.open({
179
- event: event,
180
- source: 'keydown'
181
- });
182
-
183
- break;
184
-
185
- default:
186
- break;
187
- }
188
- });
189
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleKeyboardInteractionsDeprecated", function (event) {
190
- if (_this.props.isOpen) {
191
- if (_this.isTargetChildItem(event.target)) {
192
- switch (event.key) {
193
- case 'ArrowUp':
194
- event.preventDefault();
195
-
196
- _this.focusPreviousItem();
197
-
198
- break;
199
-
200
- case 'ArrowDown':
201
- event.preventDefault();
202
-
203
- _this.focusNextItem();
204
-
205
- break;
206
-
207
- case 'Tab':
208
- event.preventDefault();
209
-
210
- _this.close({
211
- event: event
212
- });
213
-
214
- break;
215
-
216
- default:
217
- break;
218
- }
219
- } else if (event.key === 'ArrowDown') {
220
- _this.sourceOfIsOpen = 'keydown';
221
-
222
- _this.focusFirstItem();
223
- } else if (event.key === 'Tab') {
224
- _this.close({
225
- event: event
226
- });
227
- }
228
- } else {
229
- switch (event.key) {
230
- case _keys.KEY_DOWN:
231
- case _keys.KEY_SPACE:
232
- case _keys.KEY_ENTER:
233
- event.preventDefault();
234
-
235
- _this.open({
236
- event: event,
237
- source: 'keydown'
238
- });
239
-
240
- break;
241
-
242
- default:
243
- break;
244
- }
245
- }
246
- });
247
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "domMenuContainer", null);
248
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "isUsingDeprecatedAPI", function () {
249
- return Boolean(_this.props.items.length);
250
- });
251
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "handleOpenChange", function (args) {
252
- _this.props.onOpenChange(args);
253
- });
254
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "triggerContent", function () {
255
- var _this$props = _this.props,
256
- children = _this$props.children,
257
- trigger = _this$props.trigger,
258
- isOpen = _this$props.isOpen,
259
- triggerButtonProps = _this$props.triggerButtonProps,
260
- triggerType = _this$props.triggerType,
261
- testId = _this$props.testId;
262
- var insideTriggerContent = _this.isUsingDeprecatedAPI() ? children : trigger;
263
-
264
- if (triggerType !== 'button') {
265
- return insideTriggerContent;
266
- } // we probably don't need to object copying
267
- // ts doesn't like destructuring copy - so converting to object.assign
268
-
269
-
270
- var triggerProps = Object.assign({}, triggerButtonProps);
271
- var defaultButtonProps = {
272
- 'aria-expanded': isOpen,
273
- 'aria-haspopup': true,
274
- isSelected: isOpen
275
- };
276
-
277
- if (!triggerProps.iconAfter && !triggerProps.iconBefore) {
278
- triggerProps.iconAfter = /*#__PURE__*/_react.default.createElement(_chevronDown.default, {
279
- size: "medium",
280
- label: ""
281
- });
282
- }
283
-
284
- return /*#__PURE__*/_react.default.createElement(_customThemeButton.default, (0, _extends2.default)({}, defaultButtonProps, triggerProps, {
285
- testId: testId && "".concat(testId, "--trigger")
286
- }), insideTriggerContent);
287
- });
288
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "open", function (attrs) {
289
- _this.sourceOfIsOpen = attrs.source;
290
-
291
- _this.props.onOpenChange({
292
- isOpen: true,
293
- event: attrs.event
294
- }); // Dropdown opened via keyboard gets auto focussed
295
-
296
-
297
- _this.setState({
298
- autoFocusDropdownItems: _this.sourceOfIsOpen === 'keydown'
299
- });
300
- });
301
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "close", function (attrs) {
302
- _this.sourceOfIsOpen = null;
303
-
304
- _this.props.onOpenChange({
305
- isOpen: false,
306
- event: attrs.event
307
- });
308
- });
309
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "toggle", function (attrs) {
310
- if (attrs.source === 'keydown') {
311
- return;
312
- }
313
-
314
- if (_this.props.isOpen) {
315
- _this.close(attrs);
316
- } else {
317
- _this.open(attrs);
318
- }
319
- });
320
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderTrigger", function () {
321
- var triggerContent = _this.triggerContent();
322
-
323
- return _this.isUsingDeprecatedAPI() ? triggerContent : /*#__PURE__*/_react.default.createElement("div", {
324
- ref: function ref(_ref) {
325
- _this.triggerContainer = _ref;
326
- }
327
- }, triggerContent);
328
- });
329
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderItems", function (items) {
330
- return items.map(function (item, itemIndex) {
331
- return /*#__PURE__*/_react.default.createElement(_droplist.Item, (0, _extends2.default)({}, item, {
332
- key: itemIndex,
333
- onActivate: function onActivate(_ref2) {
334
- var event = _ref2.event;
335
-
336
- _this.props.onItemActivated({
337
- item: item,
338
- event: event
339
- });
340
- }
341
- }), item.content);
342
- });
343
- });
344
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderGroups", function (groups) {
345
- return groups.map(function (group, groupIndex) {
346
- return /*#__PURE__*/_react.default.createElement(_droplist.Group, {
347
- heading: group.heading,
348
- elemAfter: group.elemAfter,
349
- key: groupIndex
350
- }, _this.renderItems(group.items));
351
- });
352
- });
353
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderDeprecated", function () {
354
- var _this$props2 = _this.props,
355
- items = _this$props2.items,
356
- shouldFitContainer = _this$props2.shouldFitContainer;
357
- return /*#__PURE__*/_react.default.createElement("div", {
358
- ref: function ref(_ref3) {
359
- _this.domMenuContainer = _ref3;
360
- _this.domItemsList = _ref3 ? _ref3.querySelectorAll('[data-role="droplistItem"]') : null;
361
- },
362
- role: "menu",
363
- style: shouldFitContainer ? undefined : {
364
- maxWidth: 300
365
- }
366
- }, _this.renderGroups(items));
367
- });
368
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "onDroplistPositioned", function () {
369
- _this.dropdownListPositioned = true; // Trigger render so item focus manager can auto focus for keyboard trigger
370
-
371
- _this.setState({
372
- autoFocusDropdownItems: _this.sourceOfIsOpen === 'keydown'
373
- });
374
-
375
- if (_this.props.onPositioned) {
376
- _this.props.onPositioned();
377
- }
378
- });
379
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderDropdownItems", function () {
380
- if (_this.sourceOfIsOpen === 'keydown' && _this.dropdownListPositioned) {
381
- return /*#__PURE__*/_react.default.createElement(_DropdownItemFocusManager.default, {
382
- autoFocus: _this.state.autoFocusDropdownItems,
383
- close: _this.close
384
- }, _this.props.children);
385
- }
386
-
387
- return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, _this.props.children);
388
- });
389
- return _this;
390
- }
391
-
392
- (0, _createClass2.default)(DropdownMenuStateless, [{
393
- key: "handleClickDeprecated",
394
- value: function handleClickDeprecated(event) {
395
- var menuContainer = this.domMenuContainer;
396
-
397
- if (!menuContainer || menuContainer && !menuContainer.contains(event.target)) {
398
- this.toggle({
399
- source: 'click',
400
- event: event
401
- });
402
- }
403
- }
404
- }, {
405
- key: "handleClick",
406
- value: function handleClick(event) {
407
- // For any clicks we don't want autofocus
408
- this.setState({
409
- autoFocusDropdownItems: false
410
- });
411
-
412
- if (this.isUsingDeprecatedAPI()) {
413
- this.handleClickDeprecated(event);
414
- return;
415
- }
416
-
417
- if (this.triggerContainer && this.triggerContainer.contains(event.target) && event.target.disabled !== true) {
418
- var isOpen = this.props.isOpen;
419
- this.sourceOfIsOpen = 'mouse';
420
- this.props.onOpenChange({
421
- isOpen: !isOpen,
422
- event: event
423
- });
424
- }
425
- }
426
- }, {
427
- key: "render",
428
- value: function render() {
429
- var _this2 = this;
430
-
431
- var _this$props3 = this.props,
432
- appearance = _this$props3.appearance,
433
- boundariesElement = _this$props3.boundariesElement,
434
- isLoading = _this$props3.isLoading,
435
- isOpen = _this$props3.isOpen,
436
- onOpenChange = _this$props3.onOpenChange,
437
- position = _this$props3.position,
438
- isMenuFixed = _this$props3.isMenuFixed,
439
- shouldAllowMultilineItems = _this$props3.shouldAllowMultilineItems,
440
- shouldFitContainer = _this$props3.shouldFitContainer,
441
- shouldFlip = _this$props3.shouldFlip,
442
- testId = _this$props3.testId;
443
- var isDeprecated = this.isUsingDeprecatedAPI();
444
- var deprecatedProps = isDeprecated ? {
445
- onKeyDown: this.handleKeyboardInteractionsDeprecated,
446
- shouldAllowMultilineItems: shouldAllowMultilineItems
447
- } : {
448
- onKeyDown: this.handleKeyboardInteractionForClosed
449
- };
450
- return /*#__PURE__*/_react.default.createElement(_DropdownItemSelectionCache.default, null, /*#__PURE__*/_react.default.createElement(_droplist.default, (0, _extends2.default)({
451
- appearance: appearance,
452
- boundariesElement: boundariesElement,
453
- isLoading: isLoading,
454
- isOpen: isOpen,
455
- onClick: function onClick(e) {
456
- return _this2.handleClick(e);
457
- },
458
- onOpenChange: this.handleOpenChange,
459
- position: position,
460
- isMenuFixed: isMenuFixed,
461
- shouldFitContainer: shouldFitContainer,
462
- shouldFlip: shouldFlip,
463
- trigger: this.renderTrigger(),
464
- onPositioned: this.onDroplistPositioned
465
- }, deprecatedProps, {
466
- analyticsContext: {
467
- componentName: 'dropdownMenu',
468
- packageName: packageName,
469
- packageVersion: packageVersion
470
- },
471
- testId: testId
472
- }), isDeprecated ? this.renderDeprecated() : /*#__PURE__*/_react.default.createElement(_WidthConstrainer.default, {
473
- role: "menu",
474
- shouldFitContainer: shouldFitContainer
475
- }, /*#__PURE__*/_react.default.createElement(_DropdownItemClickManager.default, {
476
- onItemClicked: function onItemClicked(event) {
477
- return onOpenChange({
478
- isOpen: false,
479
- event: event
480
- });
481
- }
482
- }, this.renderDropdownItems()))));
483
- }
484
- }]);
485
- return DropdownMenuStateless;
486
- }(_react.Component);
487
-
488
- exports.DropdownMenuStatelessWithoutAnalytics = exports.DropdownMenuStateless = DropdownMenuStateless;
489
- (0, _defineProperty2.default)(DropdownMenuStateless, "defaultProps", {
490
- appearance: 'default',
491
- boundariesElement: 'viewport',
492
- isLoading: false,
493
- isOpen: false,
494
- items: [],
495
- onItemActivated: function onItemActivated() {},
496
- onOpenChange: function onOpenChange() {},
497
- position: 'bottom left',
498
- isMenuFixed: false,
499
- shouldAllowMultilineItems: false,
500
- shouldFitContainer: false,
501
- shouldFlip: true,
502
- triggerType: 'default',
503
- onPositioned: function onPositioned() {}
504
- });
505
- var createAndFireEventOnAtlaskit = (0, _analyticsNext.createAndFireEvent)('atlaskit');
506
-
507
- var _default = (0, _analyticsNext.withAnalyticsContext)({
508
- componentName: 'dropdownMenu',
509
- packageName: packageName,
510
- packageVersion: packageVersion
511
- })((0, _analyticsNext.withAnalyticsEvents)({
512
- onOpenChange: createAndFireEventOnAtlaskit({
513
- action: 'toggled',
514
- actionSubject: 'dropdownMenu',
515
- attributes: {
516
- componentName: 'dropdownMenu',
517
- packageName: packageName,
518
- packageVersion: packageVersion
519
- }
520
- })
521
- })(DropdownMenuStateless));
522
-
523
- exports.default = _default;
@@ -1,72 +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 _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
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 _defineProperty3 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
-
24
- var _react = require("react");
25
-
26
- var _propTypes = _interopRequireDefault(require("prop-types"));
27
-
28
- var _contextNamespace = require("../../util/contextNamespace");
29
-
30
- 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); }; }
31
-
32
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
33
-
34
- var DropdownItemClickManager = /*#__PURE__*/function (_Component) {
35
- (0, _inherits2.default)(DropdownItemClickManager, _Component);
36
-
37
- var _super = _createSuper(DropdownItemClickManager);
38
-
39
- function DropdownItemClickManager() {
40
- var _this;
41
-
42
- (0, _classCallCheck2.default)(this, DropdownItemClickManager);
43
-
44
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
45
- args[_key] = arguments[_key];
46
- }
47
-
48
- _this = _super.call.apply(_super, [this].concat(args));
49
- (0, _defineProperty3.default)((0, _assertThisInitialized2.default)(_this), "handleItemClicked", function (event) {
50
- _this.props.onItemClicked(event);
51
- });
52
- return _this;
53
- }
54
-
55
- (0, _createClass2.default)(DropdownItemClickManager, [{
56
- key: "getChildContext",
57
- value: function getChildContext() {
58
- return (0, _defineProperty3.default)({}, _contextNamespace.clickManagerContext, {
59
- itemClicked: this.handleItemClicked
60
- });
61
- }
62
- }, {
63
- key: "render",
64
- value: function render() {
65
- return this.props.children;
66
- }
67
- }]);
68
- return DropdownItemClickManager;
69
- }(_react.Component);
70
-
71
- exports.default = DropdownItemClickManager;
72
- (0, _defineProperty3.default)(DropdownItemClickManager, "childContextTypes", (0, _defineProperty3.default)({}, _contextNamespace.clickManagerContext, _propTypes.default.object));