@atlaskit/link-picker 1.16.8 → 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.
- package/CHANGELOG.md +12 -0
- package/dist/cjs/analytics.codegen.js +3 -4
- package/dist/cjs/common/analytics/context.js +11 -36
- package/dist/cjs/common/analytics/experiences.js +0 -13
- package/dist/cjs/common/analytics/index.js +0 -2
- package/dist/cjs/common/analytics/input-field-tracking.js +16 -35
- package/dist/cjs/common/generic-error-svg/index.js +1 -7
- package/dist/cjs/common/generic-error-svg/styled.js +0 -6
- package/dist/cjs/common/utils/errors.js +0 -15
- package/dist/cjs/controllers/session-provider/index.js +1 -17
- package/dist/cjs/controllers/use-fix-height/index.js +0 -3
- package/dist/cjs/i18n/cs.js +0 -1
- package/dist/cjs/i18n/da.js +0 -1
- package/dist/cjs/i18n/de.js +0 -1
- package/dist/cjs/i18n/en.js +0 -1
- package/dist/cjs/i18n/en_GB.js +0 -1
- package/dist/cjs/i18n/es.js +0 -1
- package/dist/cjs/i18n/fi.js +0 -1
- package/dist/cjs/i18n/fr.js +0 -1
- package/dist/cjs/i18n/hu.js +0 -1
- package/dist/cjs/i18n/it.js +0 -1
- package/dist/cjs/i18n/ja.js +0 -1
- package/dist/cjs/i18n/ko.js +0 -1
- package/dist/cjs/i18n/nb.js +0 -1
- package/dist/cjs/i18n/nl.js +0 -1
- package/dist/cjs/i18n/pl.js +0 -1
- package/dist/cjs/i18n/pt_BR.js +0 -1
- package/dist/cjs/i18n/ru.js +0 -1
- package/dist/cjs/i18n/sv.js +0 -1
- package/dist/cjs/i18n/th.js +0 -1
- package/dist/cjs/i18n/tr.js +0 -1
- package/dist/cjs/i18n/uk.js +0 -1
- package/dist/cjs/i18n/vi.js +0 -1
- package/dist/cjs/i18n/zh.js +0 -1
- package/dist/cjs/i18n/zh_TW.js +0 -1
- package/dist/cjs/index.js +0 -2
- package/dist/cjs/services/use-plugins/index.js +13 -44
- package/dist/cjs/services/use-plugins/reducer.js +0 -13
- package/dist/cjs/services/use-plugins/utils.js +9 -35
- package/dist/cjs/services/use-search-query/index.js +3 -9
- package/dist/cjs/ui/error-boundary/error-boundary-base/index.js +2 -22
- package/dist/cjs/ui/error-boundary/error-boundary-fallback/index.js +1 -9
- package/dist/cjs/ui/error-boundary/index.js +3 -18
- package/dist/cjs/ui/index.js +0 -13
- package/dist/cjs/ui/link-picker/announcer.js +15 -25
- package/dist/cjs/ui/link-picker/browser.js +0 -1
- package/dist/cjs/ui/link-picker/form-footer/index.js +6 -26
- package/dist/cjs/ui/link-picker/form-footer/styled.js +0 -5
- package/dist/cjs/ui/link-picker/form-footer/utils.js +2 -8
- package/dist/cjs/ui/link-picker/index.js +44 -111
- package/dist/cjs/ui/link-picker/link-search-error/index.js +1 -10
- package/dist/cjs/ui/link-picker/link-search-list/index.js +12 -38
- package/dist/cjs/ui/link-picker/link-search-list/link-search-no-results/index.js +1 -9
- package/dist/cjs/ui/link-picker/link-search-list/link-search-no-results/no-results-svg/index.js +1 -5
- package/dist/cjs/ui/link-picker/link-search-list/link-search-no-results/no-results-svg/styled.js +0 -6
- package/dist/cjs/ui/link-picker/link-search-list/link-search-no-results/styled.js +0 -5
- package/dist/cjs/ui/link-picker/link-search-list/styled.js +0 -7
- package/dist/cjs/ui/link-picker/link-search-list/use-track-results-shown/index.js +11 -21
- package/dist/cjs/ui/link-picker/list-item/index.js +11 -32
- package/dist/cjs/ui/link-picker/list-item/styled.js +0 -13
- package/dist/cjs/ui/link-picker/messages.js +0 -2
- package/dist/cjs/ui/link-picker/styled.js +1 -8
- package/dist/cjs/ui/link-picker/text-input/index.js +9 -26
- package/dist/cjs/ui/link-picker/text-input/styled.js +0 -7
- package/dist/cjs/ui/link-picker/track-mount/index.js +1 -11
- package/dist/cjs/ui/link-picker/track-tab-viewed/index.js +2 -10
- package/dist/cjs/ui/link-picker/transformTimeStamp.js +0 -13
- package/dist/cjs/ui/link-picker/utils.js +11 -19
- package/dist/cjs/ui/loader-fallback/index.js +1 -5
- package/dist/cjs/ui/scrolling-tabs/index.js +6 -44
- package/dist/cjs/ui/scrolling-tabs/scrolling-tabs.js +4 -33
- package/dist/cjs/ui/scrolling-tabs/styles.js +0 -3
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/analytics.codegen.js +3 -3
- package/dist/es2019/common/analytics/context.js +11 -13
- package/dist/es2019/common/analytics/experiences.js +0 -1
- package/dist/es2019/common/analytics/input-field-tracking.js +13 -12
- package/dist/es2019/common/generic-error-svg/index.js +0 -4
- package/dist/es2019/common/utils/errors.js +0 -1
- package/dist/es2019/controllers/session-provider/index.js +0 -4
- package/dist/es2019/controllers/use-fix-height/index.js +0 -2
- package/dist/es2019/services/use-plugins/index.js +2 -8
- package/dist/es2019/services/use-plugins/reducer.js +8 -8
- package/dist/es2019/services/use-plugins/utils.js +5 -6
- package/dist/es2019/services/use-search-query/index.js +3 -6
- package/dist/es2019/ui/error-boundary/error-boundary-base/index.js +0 -5
- package/dist/es2019/ui/error-boundary/index.js +2 -4
- package/dist/es2019/ui/index.js +1 -2
- package/dist/es2019/ui/link-picker/announcer.js +6 -1
- package/dist/es2019/ui/link-picker/browser.js +0 -2
- package/dist/es2019/ui/link-picker/form-footer/index.js +0 -5
- package/dist/es2019/ui/link-picker/form-footer/utils.js +2 -5
- package/dist/es2019/ui/link-picker/index.js +21 -37
- package/dist/es2019/ui/link-picker/link-search-error/index.js +0 -3
- package/dist/es2019/ui/link-picker/link-search-list/index.js +2 -6
- package/dist/es2019/ui/link-picker/link-search-list/link-search-no-results/index.js +0 -2
- package/dist/es2019/ui/link-picker/link-search-list/link-search-no-results/no-results-svg/index.js +0 -3
- package/dist/es2019/ui/link-picker/link-search-list/styled.js +2 -2
- package/dist/es2019/ui/link-picker/link-search-list/use-track-results-shown/index.js +7 -5
- package/dist/es2019/ui/link-picker/list-item/index.js +0 -14
- package/dist/es2019/ui/link-picker/list-item/styled.js +2 -4
- package/dist/es2019/ui/link-picker/styled.js +1 -1
- package/dist/es2019/ui/link-picker/text-input/index.js +0 -6
- package/dist/es2019/ui/link-picker/track-mount/index.js +1 -2
- package/dist/es2019/ui/link-picker/track-tab-viewed/index.js +0 -2
- package/dist/es2019/ui/link-picker/transformTimeStamp.js +0 -7
- package/dist/es2019/ui/link-picker/utils.js +7 -5
- package/dist/es2019/ui/scrolling-tabs/index.js +2 -14
- package/dist/es2019/ui/scrolling-tabs/scrolling-tabs.js +0 -14
- package/dist/es2019/version.json +1 -1
- package/dist/esm/analytics.codegen.js +3 -3
- package/dist/esm/common/analytics/context.js +11 -21
- package/dist/esm/common/analytics/experiences.js +0 -3
- package/dist/esm/common/analytics/input-field-tracking.js +16 -22
- package/dist/esm/common/generic-error-svg/index.js +0 -4
- package/dist/esm/common/generic-error-svg/styled.js +0 -2
- package/dist/esm/common/utils/errors.js +0 -8
- package/dist/esm/controllers/session-provider/index.js +1 -7
- package/dist/esm/controllers/use-fix-height/index.js +0 -2
- package/dist/esm/services/use-plugins/index.js +13 -31
- package/dist/esm/services/use-plugins/reducer.js +0 -7
- package/dist/esm/services/use-plugins/utils.js +9 -22
- package/dist/esm/services/use-search-query/index.js +3 -6
- package/dist/esm/ui/error-boundary/error-boundary-base/index.js +2 -13
- package/dist/esm/ui/error-boundary/index.js +3 -5
- package/dist/esm/ui/index.js +1 -2
- package/dist/esm/ui/link-picker/announcer.js +20 -17
- package/dist/esm/ui/link-picker/browser.js +0 -2
- package/dist/esm/ui/link-picker/form-footer/index.js +6 -12
- package/dist/esm/ui/link-picker/form-footer/styled.js +0 -2
- package/dist/esm/ui/link-picker/form-footer/utils.js +2 -5
- package/dist/esm/ui/link-picker/index.js +44 -74
- package/dist/esm/ui/link-picker/link-search-error/index.js +0 -3
- package/dist/esm/ui/link-picker/link-search-list/index.js +12 -20
- package/dist/esm/ui/link-picker/link-search-list/link-search-no-results/index.js +0 -2
- package/dist/esm/ui/link-picker/link-search-list/link-search-no-results/no-results-svg/index.js +0 -3
- package/dist/esm/ui/link-picker/link-search-list/link-search-no-results/no-results-svg/styled.js +0 -2
- package/dist/esm/ui/link-picker/link-search-list/link-search-no-results/styled.js +0 -2
- package/dist/esm/ui/link-picker/link-search-list/styled.js +2 -4
- package/dist/esm/ui/link-picker/link-search-list/use-track-results-shown/index.js +11 -11
- package/dist/esm/ui/link-picker/list-item/index.js +10 -25
- package/dist/esm/ui/link-picker/list-item/styled.js +2 -6
- package/dist/esm/ui/link-picker/styled.js +1 -3
- package/dist/esm/ui/link-picker/text-input/index.js +9 -16
- package/dist/esm/ui/link-picker/text-input/styled.js +0 -2
- package/dist/esm/ui/link-picker/track-mount/index.js +2 -4
- package/dist/esm/ui/link-picker/track-tab-viewed/index.js +1 -5
- package/dist/esm/ui/link-picker/transformTimeStamp.js +0 -7
- package/dist/esm/ui/link-picker/utils.js +11 -9
- package/dist/esm/ui/scrolling-tabs/index.js +6 -28
- package/dist/esm/ui/scrolling-tabs/scrolling-tabs.js +4 -19
- package/dist/esm/version.json +1 -1
- package/dist/types/analytics.codegen.d.ts +2 -2
- package/package.json +8 -13
|
@@ -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
|
-
|
|
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
|
-
|
|
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 && (
|
|
19
|
-
|
|
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 (
|
|
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
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
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 ||
|
|
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
|
-
|
|
55
|
-
|
|
56
|
-
|
|
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
|
-
|
|
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
|
-
|
|
102
|
-
|
|
75
|
+
containerRect = _ref[0],
|
|
76
|
+
tabRect = _ref[1];
|
|
103
77
|
var containerArea = containerRect.left + container.scrollLeft - GUTTER,
|
|
104
|
-
|
|
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
|
-
|
|
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',
|
package/dist/cjs/version.json
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* THIS FILE WAS CREATED VIA CODEGEN DO NOT MODIFY {@see http://go/af-codegen}
|
|
3
3
|
*
|
|
4
|
-
* Generates analytics
|
|
4
|
+
* Generates Typescript types for analytics events from analytics.spec.yaml
|
|
5
5
|
*
|
|
6
|
-
* @codegen <<SignedSource::
|
|
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({
|
|
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 = {
|
|
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: {
|
|
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
|
});
|