@atlaskit/link-picker 1.16.9 → 1.16.10

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 (153) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/cjs/analytics.codegen.js +1 -2
  3. package/dist/cjs/common/analytics/context.js +11 -36
  4. package/dist/cjs/common/analytics/experiences.js +0 -13
  5. package/dist/cjs/common/analytics/index.js +0 -2
  6. package/dist/cjs/common/analytics/input-field-tracking.js +16 -35
  7. package/dist/cjs/common/generic-error-svg/index.js +1 -7
  8. package/dist/cjs/common/generic-error-svg/styled.js +0 -6
  9. package/dist/cjs/common/utils/errors.js +0 -15
  10. package/dist/cjs/controllers/session-provider/index.js +1 -17
  11. package/dist/cjs/controllers/use-fix-height/index.js +0 -3
  12. package/dist/cjs/i18n/cs.js +0 -1
  13. package/dist/cjs/i18n/da.js +0 -1
  14. package/dist/cjs/i18n/de.js +0 -1
  15. package/dist/cjs/i18n/en.js +0 -1
  16. package/dist/cjs/i18n/en_GB.js +0 -1
  17. package/dist/cjs/i18n/es.js +0 -1
  18. package/dist/cjs/i18n/fi.js +0 -1
  19. package/dist/cjs/i18n/fr.js +0 -1
  20. package/dist/cjs/i18n/hu.js +0 -1
  21. package/dist/cjs/i18n/it.js +0 -1
  22. package/dist/cjs/i18n/ja.js +0 -1
  23. package/dist/cjs/i18n/ko.js +0 -1
  24. package/dist/cjs/i18n/nb.js +0 -1
  25. package/dist/cjs/i18n/nl.js +0 -1
  26. package/dist/cjs/i18n/pl.js +0 -1
  27. package/dist/cjs/i18n/pt_BR.js +0 -1
  28. package/dist/cjs/i18n/ru.js +0 -1
  29. package/dist/cjs/i18n/sv.js +0 -1
  30. package/dist/cjs/i18n/th.js +0 -1
  31. package/dist/cjs/i18n/tr.js +0 -1
  32. package/dist/cjs/i18n/uk.js +0 -1
  33. package/dist/cjs/i18n/vi.js +0 -1
  34. package/dist/cjs/i18n/zh.js +0 -1
  35. package/dist/cjs/i18n/zh_TW.js +0 -1
  36. package/dist/cjs/index.js +0 -2
  37. package/dist/cjs/services/use-plugins/index.js +13 -44
  38. package/dist/cjs/services/use-plugins/reducer.js +0 -13
  39. package/dist/cjs/services/use-plugins/utils.js +9 -35
  40. package/dist/cjs/services/use-search-query/index.js +3 -9
  41. package/dist/cjs/ui/error-boundary/error-boundary-base/index.js +2 -22
  42. package/dist/cjs/ui/error-boundary/error-boundary-fallback/index.js +1 -9
  43. package/dist/cjs/ui/error-boundary/index.js +3 -18
  44. package/dist/cjs/ui/index.js +0 -13
  45. package/dist/cjs/ui/link-picker/announcer.js +15 -25
  46. package/dist/cjs/ui/link-picker/browser.js +0 -1
  47. package/dist/cjs/ui/link-picker/form-footer/index.js +6 -26
  48. package/dist/cjs/ui/link-picker/form-footer/styled.js +0 -5
  49. package/dist/cjs/ui/link-picker/form-footer/utils.js +2 -8
  50. package/dist/cjs/ui/link-picker/index.js +44 -111
  51. package/dist/cjs/ui/link-picker/link-search-error/index.js +1 -10
  52. package/dist/cjs/ui/link-picker/link-search-list/index.js +12 -38
  53. package/dist/cjs/ui/link-picker/link-search-list/link-search-no-results/index.js +1 -9
  54. package/dist/cjs/ui/link-picker/link-search-list/link-search-no-results/no-results-svg/index.js +1 -5
  55. package/dist/cjs/ui/link-picker/link-search-list/link-search-no-results/no-results-svg/styled.js +0 -6
  56. package/dist/cjs/ui/link-picker/link-search-list/link-search-no-results/styled.js +0 -5
  57. package/dist/cjs/ui/link-picker/link-search-list/styled.js +0 -7
  58. package/dist/cjs/ui/link-picker/link-search-list/use-track-results-shown/index.js +11 -21
  59. package/dist/cjs/ui/link-picker/list-item/index.js +11 -32
  60. package/dist/cjs/ui/link-picker/list-item/styled.js +0 -13
  61. package/dist/cjs/ui/link-picker/messages.js +0 -2
  62. package/dist/cjs/ui/link-picker/styled.js +1 -8
  63. package/dist/cjs/ui/link-picker/text-input/index.js +9 -26
  64. package/dist/cjs/ui/link-picker/text-input/styled.js +0 -7
  65. package/dist/cjs/ui/link-picker/track-mount/index.js +1 -11
  66. package/dist/cjs/ui/link-picker/track-tab-viewed/index.js +2 -10
  67. package/dist/cjs/ui/link-picker/transformTimeStamp.js +0 -13
  68. package/dist/cjs/ui/link-picker/utils.js +11 -19
  69. package/dist/cjs/ui/loader-fallback/index.js +1 -5
  70. package/dist/cjs/ui/scrolling-tabs/index.js +6 -44
  71. package/dist/cjs/ui/scrolling-tabs/scrolling-tabs.js +4 -33
  72. package/dist/cjs/ui/scrolling-tabs/styles.js +0 -3
  73. package/dist/cjs/version.json +1 -1
  74. package/dist/es2019/analytics.codegen.js +1 -1
  75. package/dist/es2019/common/analytics/context.js +11 -13
  76. package/dist/es2019/common/analytics/experiences.js +0 -1
  77. package/dist/es2019/common/analytics/input-field-tracking.js +13 -12
  78. package/dist/es2019/common/generic-error-svg/index.js +0 -4
  79. package/dist/es2019/common/utils/errors.js +0 -1
  80. package/dist/es2019/controllers/session-provider/index.js +0 -4
  81. package/dist/es2019/controllers/use-fix-height/index.js +0 -2
  82. package/dist/es2019/services/use-plugins/index.js +2 -8
  83. package/dist/es2019/services/use-plugins/reducer.js +8 -8
  84. package/dist/es2019/services/use-plugins/utils.js +5 -6
  85. package/dist/es2019/services/use-search-query/index.js +3 -6
  86. package/dist/es2019/ui/error-boundary/error-boundary-base/index.js +0 -5
  87. package/dist/es2019/ui/error-boundary/index.js +2 -4
  88. package/dist/es2019/ui/index.js +1 -2
  89. package/dist/es2019/ui/link-picker/announcer.js +6 -1
  90. package/dist/es2019/ui/link-picker/browser.js +0 -2
  91. package/dist/es2019/ui/link-picker/form-footer/index.js +0 -5
  92. package/dist/es2019/ui/link-picker/form-footer/utils.js +2 -5
  93. package/dist/es2019/ui/link-picker/index.js +21 -37
  94. package/dist/es2019/ui/link-picker/link-search-error/index.js +0 -3
  95. package/dist/es2019/ui/link-picker/link-search-list/index.js +2 -6
  96. package/dist/es2019/ui/link-picker/link-search-list/link-search-no-results/index.js +0 -2
  97. package/dist/es2019/ui/link-picker/link-search-list/link-search-no-results/no-results-svg/index.js +0 -3
  98. package/dist/es2019/ui/link-picker/link-search-list/styled.js +2 -2
  99. package/dist/es2019/ui/link-picker/link-search-list/use-track-results-shown/index.js +7 -5
  100. package/dist/es2019/ui/link-picker/list-item/index.js +0 -14
  101. package/dist/es2019/ui/link-picker/list-item/styled.js +2 -4
  102. package/dist/es2019/ui/link-picker/styled.js +1 -1
  103. package/dist/es2019/ui/link-picker/text-input/index.js +0 -6
  104. package/dist/es2019/ui/link-picker/track-mount/index.js +1 -2
  105. package/dist/es2019/ui/link-picker/track-tab-viewed/index.js +0 -2
  106. package/dist/es2019/ui/link-picker/transformTimeStamp.js +0 -7
  107. package/dist/es2019/ui/link-picker/utils.js +7 -5
  108. package/dist/es2019/ui/scrolling-tabs/index.js +2 -14
  109. package/dist/es2019/ui/scrolling-tabs/scrolling-tabs.js +0 -14
  110. package/dist/es2019/version.json +1 -1
  111. package/dist/esm/analytics.codegen.js +1 -1
  112. package/dist/esm/common/analytics/context.js +11 -21
  113. package/dist/esm/common/analytics/experiences.js +0 -3
  114. package/dist/esm/common/analytics/input-field-tracking.js +16 -22
  115. package/dist/esm/common/generic-error-svg/index.js +0 -4
  116. package/dist/esm/common/generic-error-svg/styled.js +0 -2
  117. package/dist/esm/common/utils/errors.js +0 -8
  118. package/dist/esm/controllers/session-provider/index.js +1 -7
  119. package/dist/esm/controllers/use-fix-height/index.js +0 -2
  120. package/dist/esm/services/use-plugins/index.js +13 -31
  121. package/dist/esm/services/use-plugins/reducer.js +0 -7
  122. package/dist/esm/services/use-plugins/utils.js +9 -22
  123. package/dist/esm/services/use-search-query/index.js +3 -6
  124. package/dist/esm/ui/error-boundary/error-boundary-base/index.js +2 -13
  125. package/dist/esm/ui/error-boundary/index.js +3 -5
  126. package/dist/esm/ui/index.js +1 -2
  127. package/dist/esm/ui/link-picker/announcer.js +20 -17
  128. package/dist/esm/ui/link-picker/browser.js +0 -2
  129. package/dist/esm/ui/link-picker/form-footer/index.js +6 -12
  130. package/dist/esm/ui/link-picker/form-footer/styled.js +0 -2
  131. package/dist/esm/ui/link-picker/form-footer/utils.js +2 -5
  132. package/dist/esm/ui/link-picker/index.js +44 -74
  133. package/dist/esm/ui/link-picker/link-search-error/index.js +0 -3
  134. package/dist/esm/ui/link-picker/link-search-list/index.js +12 -20
  135. package/dist/esm/ui/link-picker/link-search-list/link-search-no-results/index.js +0 -2
  136. package/dist/esm/ui/link-picker/link-search-list/link-search-no-results/no-results-svg/index.js +0 -3
  137. package/dist/esm/ui/link-picker/link-search-list/link-search-no-results/no-results-svg/styled.js +0 -2
  138. package/dist/esm/ui/link-picker/link-search-list/link-search-no-results/styled.js +0 -2
  139. package/dist/esm/ui/link-picker/link-search-list/styled.js +2 -4
  140. package/dist/esm/ui/link-picker/link-search-list/use-track-results-shown/index.js +11 -11
  141. package/dist/esm/ui/link-picker/list-item/index.js +10 -25
  142. package/dist/esm/ui/link-picker/list-item/styled.js +2 -6
  143. package/dist/esm/ui/link-picker/styled.js +1 -3
  144. package/dist/esm/ui/link-picker/text-input/index.js +9 -16
  145. package/dist/esm/ui/link-picker/text-input/styled.js +0 -2
  146. package/dist/esm/ui/link-picker/track-mount/index.js +2 -4
  147. package/dist/esm/ui/link-picker/track-tab-viewed/index.js +1 -5
  148. package/dist/esm/ui/link-picker/transformTimeStamp.js +0 -7
  149. package/dist/esm/ui/link-picker/utils.js +11 -9
  150. package/dist/esm/ui/scrolling-tabs/index.js +6 -28
  151. package/dist/esm/ui/scrolling-tabs/scrolling-tabs.js +4 -19
  152. package/dist/esm/version.json +1 -1
  153. package/package.json +2 -2
@@ -1,24 +1,16 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.default = void 0;
9
-
10
8
  var _react = require("react");
11
-
12
9
  var _analyticsNext = require("@atlaskit/analytics-next");
13
-
14
10
  var _experiences = require("../../../common/analytics/experiences");
15
-
16
11
  var _analytics = _interopRequireDefault(require("../../../analytics.codegen"));
17
-
18
12
  var _constants = require("../../../common/constants");
19
-
20
13
  var _sessionProvider = require("../../../controllers/session-provider");
21
-
22
14
  /** @jsx jsx */
23
15
 
24
16
  /**
@@ -26,8 +18,7 @@ var _sessionProvider = require("../../../controllers/session-provider");
26
18
  */
27
19
  function TrackMount() {
28
20
  var _useAnalyticsEvents = (0, _analyticsNext.useAnalyticsEvents)(),
29
- createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
30
-
21
+ createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
31
22
  var linkPickerSessionId = (0, _sessionProvider.useLinkPickerSessionId)();
32
23
  (0, _react.useLayoutEffect)(function () {
33
24
  (0, _experiences.succeedUfoExperience)(_experiences.ufoExperience.mounted, linkPickerSessionId);
@@ -42,6 +33,5 @@ function TrackMount() {
42
33
  }, [createAnalyticsEvent]);
43
34
  return null;
44
35
  }
45
-
46
36
  var _default = TrackMount;
47
37
  exports.default = _default;
@@ -1,32 +1,24 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.default = void 0;
9
-
10
8
  var _react = require("react");
11
-
12
9
  var _analyticsNext = require("@atlaskit/analytics-next");
13
-
14
10
  var _analytics = _interopRequireDefault(require("../../../analytics.codegen"));
15
-
16
11
  var _constants = require("../../../common/constants");
17
-
18
12
  /** @jsx jsx */
13
+
19
14
  function TrackTabViewed(_ref) {
20
15
  var activeTab = _ref.activeTab;
21
-
22
16
  var _useAnalyticsEvents = (0, _analyticsNext.useAnalyticsEvents)(),
23
- createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
24
-
17
+ createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
25
18
  (0, _react.useLayoutEffect)(function () {
26
19
  createAnalyticsEvent((0, _analytics.default)('ui.tab.viewed', {})).fire(_constants.ANALYTICS_CHANNEL);
27
20
  }, [activeTab, createAnalyticsEvent]);
28
21
  return null;
29
22
  }
30
-
31
23
  var _default = TrackTabViewed;
32
24
  exports.default = _default;
@@ -1,55 +1,42 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.transformTimeStamp = void 0;
9
-
10
8
  var _formatDistance = _interopRequireDefault(require("date-fns/formatDistance"));
11
-
12
9
  var _differenceInCalendarDays = _interopRequireDefault(require("date-fns/differenceInCalendarDays"));
13
-
14
10
  var _format = _interopRequireDefault(require("date-fns/format"));
15
-
16
11
  var _messages = require("./messages");
17
-
18
12
  var renderAbsoluteOrRelativeDate = function renderAbsoluteOrRelativeDate(timeStamp, pageAction, intl) {
19
13
  var pageActionText = '';
20
-
21
14
  switch (pageAction) {
22
15
  case 'updated':
23
16
  pageActionText = intl.formatMessage(_messages.messages.timeUpdated);
24
17
  break;
25
-
26
18
  case 'viewed':
27
19
  pageActionText = intl.formatMessage(_messages.messages.timeViewed);
28
20
  break;
29
21
  }
30
-
31
22
  if ((0, _differenceInCalendarDays.default)(timeStamp, Date.now()) < -7) {
32
23
  return {
33
24
  pageAction: pageActionText,
34
25
  dateString: (0, _format.default)(timeStamp, 'MMMM dd, yyyy')
35
26
  };
36
27
  }
37
-
38
28
  return {
39
29
  pageAction: pageActionText,
40
30
  dateString: (0, _formatDistance.default)(timeStamp, Date.now()),
41
31
  timeSince: intl.formatMessage(_messages.messages.timeAgo)
42
32
  };
43
33
  };
44
-
45
34
  var transformTimeStamp = function transformTimeStamp(intl, lastViewedDate, lastUpdatedDate) {
46
35
  if (lastViewedDate) {
47
36
  return renderAbsoluteOrRelativeDate(lastViewedDate, 'viewed', intl);
48
37
  }
49
-
50
38
  if (lastUpdatedDate) {
51
39
  return renderAbsoluteOrRelativeDate(lastUpdatedDate, 'updated', intl);
52
40
  }
53
41
  };
54
-
55
42
  exports.transformTimeStamp = transformTimeStamp;
@@ -6,49 +6,41 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.getDataSource = void 0;
7
7
  exports.getScreenReaderText = getScreenReaderText;
8
8
  exports.isUndoEvent = exports.isRedoEvent = void 0;
9
-
10
9
  var _browser = require("./browser");
11
-
12
10
  var _transformTimeStamp = require("./transformTimeStamp");
13
-
14
11
  var KeyZCode = 90;
15
12
  var KeyYCode = 89;
16
-
17
13
  var isUndoEvent = function isUndoEvent(e) {
18
- return e.keyCode === KeyZCode && ( // cmd + z for mac
19
- _browser.browser.mac && e.metaKey && !e.shiftKey || // ctrl + z for non-mac
14
+ return e.keyCode === KeyZCode && (
15
+ // cmd + z for mac
16
+ _browser.browser.mac && e.metaKey && !e.shiftKey ||
17
+ // ctrl + z for non-mac
20
18
  !_browser.browser.mac && e.ctrlKey);
21
19
  };
22
-
23
20
  exports.isUndoEvent = isUndoEvent;
24
-
25
21
  var isRedoEvent = function isRedoEvent(e) {
26
- return (// ctrl + y for non-mac
22
+ return (
23
+ // ctrl + y for non-mac
27
24
  !_browser.browser.mac && e.ctrlKey && e.keyCode === KeyYCode || _browser.browser.mac && e.metaKey && e.shiftKey && e.keyCode === KeyZCode || e.ctrlKey && e.shiftKey && e.keyCode === KeyZCode
28
25
  );
29
26
  };
27
+
30
28
  /**
31
29
  * Retrieve the data source for a link given the item and the plugin that resolved it
32
30
  */
33
-
34
-
35
31
  exports.isRedoEvent = isRedoEvent;
36
-
37
32
  var getDataSource = function getDataSource(item, plugin) {
38
33
  var _ref, _item$meta$source, _item$meta, _plugin$meta;
39
-
40
34
  return (_ref = (_item$meta$source = (_item$meta = item.meta) === null || _item$meta === void 0 ? void 0 : _item$meta.source) !== null && _item$meta$source !== void 0 ? _item$meta$source : plugin === null || plugin === void 0 ? void 0 : (_plugin$meta = plugin.meta) === null || _plugin$meta === void 0 ? void 0 : _plugin$meta.source) !== null && _ref !== void 0 ? _ref : 'unknown';
41
35
  };
42
-
43
36
  exports.getDataSource = getDataSource;
44
-
45
37
  function getScreenReaderText(items, selectedIndex, intl) {
46
38
  if (items.length && selectedIndex > -1) {
47
39
  var _items$selectedIndex = items[selectedIndex],
48
- name = _items$selectedIndex.name,
49
- container = _items$selectedIndex.container,
50
- lastUpdatedDate = _items$selectedIndex.lastUpdatedDate,
51
- lastViewedDate = _items$selectedIndex.lastViewedDate;
40
+ name = _items$selectedIndex.name,
41
+ container = _items$selectedIndex.container,
42
+ lastUpdatedDate = _items$selectedIndex.lastUpdatedDate,
43
+ lastViewedDate = _items$selectedIndex.lastViewedDate;
52
44
  var date = (0, _transformTimeStamp.transformTimeStamp)(intl, lastViewedDate, lastUpdatedDate);
53
45
  var formattedDate = [date === null || date === void 0 ? void 0 : date.pageAction, date === null || date === void 0 ? void 0 : date.dateString, date === null || date === void 0 ? void 0 : date.timeSince].filter(Boolean).join(' ');
54
46
  return [name, container, formattedDate].filter(Boolean).join(', ');
@@ -1,19 +1,15 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.LoaderFallback = void 0;
9
-
10
8
  var _react = require("@emotion/react");
11
-
12
9
  var _spinner = _interopRequireDefault(require("@atlaskit/spinner"));
13
-
14
10
  var _styled = require("../link-picker/styled");
15
-
16
11
  /** @jsx jsx */
12
+
17
13
  var LoaderFallback = (0, _react.jsx)("div", {
18
14
  css: _styled.rootContainerStylesForLoader,
19
15
  "data-testid": "link-picker-root-loader-boundary-ui"
@@ -1,66 +1,45 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports.default = exports.ScrollingTabList = void 0;
11
-
12
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
-
14
10
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
-
16
11
  var _react = _interopRequireWildcard(require("react"));
17
-
18
12
  var _react2 = require("@emotion/react");
19
-
20
13
  var _button = _interopRequireDefault(require("@atlaskit/button"));
21
-
22
14
  var _chevronLeft = _interopRequireDefault(require("@atlaskit/icon/glyph/chevron-left"));
23
-
24
15
  var _chevronRight = _interopRequireDefault(require("@atlaskit/icon/glyph/chevron-right"));
25
-
26
16
  var _scrollingTabs = require("./scrolling-tabs");
27
-
28
17
  var _styles = require("./styles");
29
-
30
18
  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); }
31
-
32
19
  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; }
33
-
34
20
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
35
-
36
21
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
37
-
38
22
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
39
-
40
23
  function isTouchDevice() {
41
- return 'ontouchstart' in window || // eslint-disable-next-line compat/compat
24
+ return 'ontouchstart' in window ||
25
+ // eslint-disable-next-line compat/compat
42
26
  navigator.maxTouchPoints > 0;
43
27
  }
44
-
45
28
  var initialConditionalButtonsState = {
46
29
  back: false,
47
30
  forward: false
48
31
  };
49
-
50
32
  var ScrollingTabList = function ScrollingTabList(props) {
51
33
  var ref = (0, _react.useRef)(null);
52
-
53
34
  var _useState = (0, _react.useState)(initialConditionalButtonsState),
54
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
55
- conditionalButtons = _useState2[0],
56
- setConditionalButtons = _useState2[1];
57
-
35
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
36
+ conditionalButtons = _useState2[0],
37
+ setConditionalButtons = _useState2[1];
58
38
  var ghost = (0, _react.useMemo)(function () {
59
39
  return (0, _scrollingTabs.createGhost)();
60
40
  }, []);
61
41
  var onTabClick = (0, _react.useCallback)(function (e) {
62
42
  var target = e.currentTarget;
63
-
64
43
  if (target) {
65
44
  target.scrollIntoView({
66
45
  behavior: 'smooth',
@@ -69,43 +48,33 @@ var ScrollingTabList = function ScrollingTabList(props) {
69
48
  });
70
49
  }
71
50
  }, []);
72
-
73
51
  _react.default.useLayoutEffect(function () {
74
52
  var container = ref.current;
75
53
  var scrollingContainer;
76
54
  var tabs;
77
-
78
55
  var handleConditionalButtonsChange = function handleConditionalButtonsChange() {
79
56
  var buttons = (0, _scrollingTabs.calculateConditionalButtons)(scrollingContainer, isTouchDevice());
80
57
  setConditionalButtons(buttons);
81
58
  };
82
-
83
59
  var observerCallback = function observerCallback(mutationList) {
84
60
  var tablist = (0, _scrollingTabs.getTabList)(ref);
85
-
86
61
  var _iterator = _createForOfIteratorHelper(mutationList),
87
- _step;
88
-
62
+ _step;
89
63
  try {
90
64
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
91
65
  var mutation = _step.value;
92
-
93
66
  if (mutation.type === 'childList') {
94
67
  var addedNodes = Array.from(mutation.addedNodes);
95
68
  var found = addedNodes.find(function (node) {
96
69
  return node.getAttribute('role') === 'tab';
97
70
  });
98
-
99
71
  if (found && tablist) {
100
72
  ghost.remove();
101
-
102
73
  var _tabs = Array.from(tablist.children);
103
-
104
74
  _tabs.forEach(function (tab) {
105
75
  tab.removeEventListener('click', onTabClick);
106
76
  tab.addEventListener('click', onTabClick);
107
77
  });
108
-
109
78
  tablist.appendChild(ghost);
110
79
  handleConditionalButtonsChange();
111
80
  }
@@ -117,9 +86,7 @@ var ScrollingTabList = function ScrollingTabList(props) {
117
86
  _iterator.f();
118
87
  }
119
88
  };
120
-
121
89
  var observer = new MutationObserver(observerCallback);
122
-
123
90
  if (container) {
124
91
  var tablist = (0, _scrollingTabs.getTabList)(ref);
125
92
  scrollingContainer = tablist === null || tablist === void 0 ? void 0 : tablist.parentElement;
@@ -128,7 +95,6 @@ var ScrollingTabList = function ScrollingTabList(props) {
128
95
  childList: true,
129
96
  subtree: true
130
97
  });
131
-
132
98
  if (scrollingContainer instanceof HTMLElement && tablist) {
133
99
  tablist.appendChild(ghost);
134
100
  tabs = Array.from(tablist.children);
@@ -138,12 +104,10 @@ var ScrollingTabList = function ScrollingTabList(props) {
138
104
  handleConditionalButtonsChange();
139
105
  scrollingContainer.addEventListener('scroll', handleConditionalButtonsChange);
140
106
  }
141
-
142
107
  return function () {
143
108
  if (scrollingContainer) {
144
109
  scrollingContainer.removeEventListener('scroll', handleConditionalButtonsChange);
145
110
  }
146
-
147
111
  if (tabs.length) {
148
112
  tabs.forEach(function (tab) {
149
113
  return tab.removeEventListener('click', onTabClick);
@@ -152,7 +116,6 @@ var ScrollingTabList = function ScrollingTabList(props) {
152
116
  };
153
117
  }
154
118
  }, [onTabClick, ghost, ref]);
155
-
156
119
  var buttonProps = {
157
120
  appearance: 'subtle',
158
121
  spacing: 'none'
@@ -188,7 +151,6 @@ var ScrollingTabList = function ScrollingTabList(props) {
188
151
  }
189
152
  }))));
190
153
  };
191
-
192
154
  exports.ScrollingTabList = ScrollingTabList;
193
155
  var _default = ScrollingTabList;
194
156
  exports.default = _default;
@@ -1,49 +1,37 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.scrollForward = exports.scrollBack = exports.getTabList = exports.getContainer = exports.createGhost = exports.calculateConditionalButtons = void 0;
9
-
10
8
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
-
12
9
  var BUTTON_SIZE = 24;
13
10
  var GUTTER = 48;
14
11
  var GHOST_WIDTH = 342 - GUTTER - 40;
15
-
16
12
  var scrollBack = function scrollBack(ref) {
17
13
  moveTabsScroll(ref, findPrevious);
18
14
  };
19
-
20
15
  exports.scrollBack = scrollBack;
21
-
22
16
  var scrollForward = function scrollForward(ref) {
23
17
  moveTabsScroll(ref, findNext);
24
18
  };
25
-
26
19
  exports.scrollForward = scrollForward;
27
-
28
20
  var calculateConditionalButtons = function calculateConditionalButtons(container, hideButtons) {
29
21
  var initialState = {
30
22
  back: false,
31
23
  forward: false
32
24
  };
33
-
34
25
  if (!container || hideButtons) {
35
26
  return initialState;
36
27
  }
37
-
38
28
  var maxScrollValue = container.scrollWidth - container.clientWidth;
39
29
  return {
40
30
  back: container.scrollLeft > 0,
41
31
  forward: container.scrollLeft < maxScrollValue - GHOST_WIDTH
42
32
  };
43
33
  };
44
-
45
34
  exports.calculateConditionalButtons = calculateConditionalButtons;
46
-
47
35
  var createGhost = function createGhost() {
48
36
  var ghost = document.createElement('div');
49
37
  ghost.setAttribute('id', 'scrolling-tabs-ghost');
@@ -51,20 +39,14 @@ var createGhost = function createGhost() {
51
39
  ghost.style.pointerEvents = 'none';
52
40
  return ghost;
53
41
  };
54
-
55
42
  exports.createGhost = createGhost;
56
-
57
43
  var moveTabsScroll = function moveTabsScroll(ref, findFn) {
58
44
  var container = getContainer(ref);
59
-
60
45
  if (container) {
61
46
  var tablist = container.children[0];
62
-
63
47
  var _tabs = (0, _toConsumableArray2.default)(tablist.children);
64
-
65
48
  if (_tabs.length > 0) {
66
49
  var target = findFn(container, _tabs);
67
-
68
50
  if (target) {
69
51
  var left = container.scrollLeft + target.getBoundingClientRect().left - container.getBoundingClientRect().left - BUTTON_SIZE;
70
52
  scrollTo(container, left);
@@ -72,52 +54,41 @@ var moveTabsScroll = function moveTabsScroll(ref, findFn) {
72
54
  }
73
55
  }
74
56
  };
75
-
76
57
  var scrollTo = function scrollTo(container, left) {
77
58
  container.scrollTo({
78
59
  left: left
79
60
  });
80
61
  };
81
-
82
62
  var getTabList = function getTabList(ref) {
83
63
  var _ref$current;
84
-
85
64
  return (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.querySelector('[role="tablist"]');
86
65
  };
87
-
88
66
  exports.getTabList = getTabList;
89
-
90
67
  var getContainer = function getContainer(ref) {
91
68
  var _getTabList;
92
-
93
69
  return (_getTabList = getTabList(ref)) === null || _getTabList === void 0 ? void 0 : _getTabList.parentElement;
94
70
  };
95
-
96
71
  exports.getContainer = getContainer;
97
-
98
72
  var findPrevious = function findPrevious(container, tabs) {
99
73
  var previousTabs = tabs.filter(function (tab) {
100
74
  var _ref = [container.getBoundingClientRect(), tab.getBoundingClientRect()],
101
- containerRect = _ref[0],
102
- tabRect = _ref[1];
75
+ containerRect = _ref[0],
76
+ tabRect = _ref[1];
103
77
  var containerArea = containerRect.left + container.scrollLeft - GUTTER,
104
- tabArea = container.scrollLeft + tabRect.left + tabRect.width;
78
+ tabArea = container.scrollLeft + tabRect.left + tabRect.width;
105
79
  return containerArea > tabArea;
106
80
  });
107
-
108
81
  if (previousTabs.length < 3) {
109
82
  return previousTabs[0];
110
83
  }
111
-
112
84
  return previousTabs[previousTabs.length - 1];
113
85
  };
114
-
115
86
  var findNext = function findNext(container, tabs) {
116
87
  var containerRect = container.getBoundingClientRect();
117
88
  return tabs.find(function (tab) {
118
89
  var tabRect = tab.getBoundingClientRect();
119
90
  var containerArea = container.clientWidth + containerRect.left - GUTTER,
120
- tabArea = tabRect.left + tabRect.width;
91
+ tabArea = tabRect.left + tabRect.width;
121
92
  return containerArea < tabArea;
122
93
  });
123
94
  };
@@ -4,11 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.scrollingContainerStyles = exports.nextButtonStyles = exports.containerStyles = exports.buttonContainerStyles = exports.backButtonStyles = void 0;
7
-
8
7
  var _react = require("@emotion/react");
9
-
10
8
  var _colors = require("@atlaskit/theme/colors");
11
-
12
9
  var scrollingContainerStyles = (0, _react.css)({
13
10
  overflowX: 'auto',
14
11
  scrollBehavior: 'smooth',
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/link-picker",
3
- "version": "1.16.9",
3
+ "version": "1.16.10",
4
4
  "sideEffects": false
5
5
  }
@@ -6,6 +6,7 @@
6
6
  * @codegen <<SignedSource::254da005ee62004d45537995770eba56>>
7
7
  * @codegenCommand yarn workspace @atlaskit/link-picker run codegen-analytics
8
8
  */
9
+
9
10
  function createEventPayload(eventKey, attributes) {
10
11
  const event = eventKey.split('.');
11
12
  return {
@@ -16,5 +17,4 @@ function createEventPayload(eventKey, attributes) {
16
17
  attributes: attributes
17
18
  };
18
19
  }
19
-
20
20
  export default createEventPayload;
@@ -17,14 +17,13 @@ const LinkPickerAnalyticsContext = /*#__PURE__*/React.createContext({
17
17
  trackAttributes: () => {},
18
18
  getAttributes: () => DEFAULT_CONTEXT_ATTRIBUTES
19
19
  });
20
+
20
21
  /**
21
22
  * TODO: Should we hook this into the form state/reducer?
22
23
  * This function continues to duplicate / assume logic that runs in the picker
23
24
  */
24
-
25
25
  const contextAttributesFromIntialProps = props => {
26
26
  var _props$plugins$0$tabK, _props$plugins, _props$plugins$;
27
-
28
27
  return {
29
28
  linkState: normalizeUrl(props.url) ? 'editLink' : 'newLink',
30
29
  linkFieldContent: normalizeUrl(props.url) ? 'url' : null,
@@ -33,16 +32,16 @@ const contextAttributesFromIntialProps = props => {
33
32
  tab: (_props$plugins$0$tabK = (_props$plugins = props.plugins) === null || _props$plugins === void 0 ? void 0 : (_props$plugins$ = _props$plugins[0]) === null || _props$plugins$ === void 0 ? void 0 : _props$plugins$.tabKey) !== null && _props$plugins$0$tabK !== void 0 ? _props$plugins$0$tabK : null
34
33
  };
35
34
  };
35
+
36
36
  /**
37
37
  * Context for tracking attributes to deliver at a context-level
38
38
  */
39
-
40
-
41
39
  const LinkPickerAnalytics = ({
42
40
  initialContext,
43
41
  children
44
42
  }) => {
45
- const dataRef = useRef({ ...DEFAULT_CONTEXT_ATTRIBUTES,
43
+ const dataRef = useRef({
44
+ ...DEFAULT_CONTEXT_ATTRIBUTES,
46
45
  ...initialContext
47
46
  });
48
47
  const methods = useMemo(() => ({
@@ -50,7 +49,8 @@ const LinkPickerAnalytics = ({
50
49
  dataRef.current[key] = value;
51
50
  },
52
51
  trackAttributes: attributes => {
53
- dataRef.current = { ...dataRef.current,
52
+ dataRef.current = {
53
+ ...dataRef.current,
54
54
  ...attributes
55
55
  };
56
56
  },
@@ -60,16 +60,15 @@ const LinkPickerAnalytics = ({
60
60
  value: methods
61
61
  }, children);
62
62
  };
63
+
63
64
  /**
64
65
  * Hook that exposes the context-level attribute getters and setters.
65
66
  */
66
-
67
-
68
67
  export const useLinkPickerAnalytics = () => useContext(LinkPickerAnalyticsContext);
68
+
69
69
  /**
70
70
  * Wrap component in "attributes" context store and initialise the initial context attributes from props.
71
71
  */
72
-
73
72
  function withLinkPickerAnalytics(WrappedComponent) {
74
73
  return props => {
75
74
  const [initialContext] = useState(() => contextAttributesFromIntialProps(props));
@@ -78,12 +77,11 @@ function withLinkPickerAnalytics(WrappedComponent) {
78
77
  }, props), /*#__PURE__*/React.createElement(WrappedComponent, props));
79
78
  };
80
79
  }
80
+
81
81
  /**
82
82
  * Wraps a component with the analytics context + listener to update events with contextual-level attributes.
83
83
  * Should be implemented once at the root of the link picker.
84
84
  */
85
-
86
-
87
85
  export function withLinkPickerAnalyticsContext(WrappedComponent) {
88
86
  return withLinkPickerAnalytics(props => {
89
87
  const {
@@ -91,9 +89,9 @@ export function withLinkPickerAnalyticsContext(WrappedComponent) {
91
89
  } = useLinkPickerAnalytics();
92
90
  const onEvent = useCallback(event => {
93
91
  var _event$payload$attrib;
94
-
95
92
  event.update({
96
- attributes: { ...getAttributes(),
93
+ attributes: {
94
+ ...getAttributes(),
97
95
  ...((_event$payload$attrib = event.payload.attributes) !== null && _event$payload$attrib !== void 0 ? _event$payload$attrib : {})
98
96
  }
99
97
  });
@@ -14,7 +14,6 @@ const ufoExperiences = {
14
14
  export const startUfoExperience = (experienceName, id, metadata) => {
15
15
  const experience = ufoExperiences[experienceName].getInstance(id);
16
16
  experience.start();
17
-
18
17
  if (metadata) {
19
18
  experience.addMetadata(metadata);
20
19
  }