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