@atlaskit/link-picker 0.0.2 → 0.7.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 (66) hide show
  1. package/CHANGELOG.md +140 -0
  2. package/README.md +27 -5
  3. package/dist/cjs/browser.js +39 -0
  4. package/dist/cjs/index.js +2 -2
  5. package/dist/cjs/messages.js +102 -0
  6. package/dist/cjs/styles.js +90 -0
  7. package/dist/cjs/transformTimeStamp.js +55 -0
  8. package/dist/cjs/types.js +5 -0
  9. package/dist/cjs/ui/LinkSearchList.js +112 -0
  10. package/dist/cjs/ui/LinkSearchListItem.js +101 -0
  11. package/dist/cjs/ui/PanelTextInput.js +119 -0
  12. package/dist/cjs/ui/announcer.js +64 -0
  13. package/dist/cjs/ui/link-picker.js +584 -0
  14. package/dist/cjs/url.js +104 -0
  15. package/dist/cjs/utils.js +40 -0
  16. package/dist/cjs/version.json +1 -1
  17. package/dist/es2019/browser.js +34 -0
  18. package/dist/es2019/index.js +1 -1
  19. package/dist/es2019/messages.js +93 -0
  20. package/dist/es2019/styles.js +94 -0
  21. package/dist/es2019/transformTimeStamp.js +41 -0
  22. package/dist/es2019/types.js +1 -0
  23. package/dist/es2019/ui/LinkSearchList.js +65 -0
  24. package/dist/es2019/ui/LinkSearchListItem.js +88 -0
  25. package/dist/es2019/ui/PanelTextInput.js +93 -0
  26. package/dist/es2019/ui/announcer.js +38 -0
  27. package/dist/es2019/ui/link-picker.js +480 -0
  28. package/dist/es2019/url.js +88 -0
  29. package/dist/es2019/utils.js +24 -0
  30. package/dist/es2019/version.json +1 -1
  31. package/dist/esm/browser.js +34 -0
  32. package/dist/esm/index.js +1 -1
  33. package/dist/esm/messages.js +93 -0
  34. package/dist/esm/styles.js +46 -0
  35. package/dist/esm/transformTimeStamp.js +41 -0
  36. package/dist/esm/types.js +1 -0
  37. package/dist/esm/ui/LinkSearchList.js +87 -0
  38. package/dist/esm/ui/LinkSearchListItem.js +88 -0
  39. package/dist/esm/ui/PanelTextInput.js +93 -0
  40. package/dist/esm/ui/announcer.js +51 -0
  41. package/dist/esm/ui/link-picker.js +559 -0
  42. package/dist/esm/url.js +90 -0
  43. package/dist/esm/utils.js +24 -0
  44. package/dist/esm/version.json +1 -1
  45. package/dist/types/browser.d.ts +15 -0
  46. package/dist/types/index.d.ts +3 -1
  47. package/dist/types/messages.d.ts +92 -0
  48. package/dist/types/styles.d.ts +18 -0
  49. package/dist/types/transformTimeStamp.d.ts +3 -0
  50. package/dist/types/types.d.ts +37 -0
  51. package/dist/types/ui/LinkSearchList.d.ts +20 -0
  52. package/dist/types/ui/LinkSearchListItem.d.ts +17 -0
  53. package/dist/types/ui/PanelTextInput.d.ts +17 -0
  54. package/dist/types/ui/announcer.d.ts +22 -0
  55. package/dist/types/ui/link-picker.d.ts +79 -0
  56. package/dist/types/url.d.ts +5 -0
  57. package/dist/types/utils.d.ts +4 -0
  58. package/example-helpers/flight-deck/_manifest.json +9 -0
  59. package/example-helpers/flight-deck/mockFDResponse.json +133 -0
  60. package/example-helpers/mock-data.ts +316 -0
  61. package/example-helpers/providers.ts +39 -0
  62. package/package.json +35 -6
  63. package/dist/cjs/link-picker.js +0 -12
  64. package/dist/es2019/link-picker.js +0 -3
  65. package/dist/esm/link-picker.js +0 -3
  66. package/dist/types/link-picker.d.ts +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,145 @@
1
1
  # @atlaskit/link-picker
2
2
 
3
+ ## 0.7.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`9cabbe5e920`](https://bitbucket.org/atlassian/atlassian-frontend/commits/9cabbe5e920) - Convert to @atlaskit scope
8
+
9
+ ## 0.6.2
10
+
11
+ ### Patch Changes
12
+
13
+ - [`3fb9dbd9f4e`](https://bitbucket.org/atlassian/atlassian-frontend/commits/3fb9dbd9f4e) - [ux] Add buttons at the bottom of the form
14
+
15
+ ## 0.6.1
16
+
17
+ ### Patch Changes
18
+
19
+ - [`93a77354b58`](https://bitbucket.org/atlassian/atlassian-frontend/commits/93a77354b58) - Updated vr snapshots
20
+
21
+ ## 0.6.0
22
+
23
+ ### Minor Changes
24
+
25
+ - [`91f2d091cfd`](https://bitbucket.org/atlassian/atlassian-frontend/commits/91f2d091cfd) - Change link picker props and onSubmit API to better reflect intended usage and make breaking changes less likely.
26
+
27
+ ## 0.5.3
28
+
29
+ ### Patch Changes
30
+
31
+ - [`3ef09836c04`](https://bitbucket.org/atlassian/atlassian-frontend/commits/3ef09836c04) - [ux] Validates links within search text are not inserted
32
+
33
+ ## 0.5.2
34
+
35
+ ### Patch Changes
36
+
37
+ - [`c1f3d82b994`](https://bitbucket.org/atlassian/atlassian-frontend/commits/c1f3d82b994) - Update to use the new V3 recents API in the Atlassian plugin
38
+
39
+ ## 0.5.1
40
+
41
+ ### Patch Changes
42
+
43
+ - [`d90f1f42589`](https://bitbucket.org/atlassian/atlassian-frontend/commits/d90f1f42589) - [ux] Shows subtitle with recently viewed if there’s no search text and results otherwise
44
+
45
+ ## 0.5.0
46
+
47
+ ### Minor Changes
48
+
49
+ - [`7abf8824fec`](https://bitbucket.org/atlassian/atlassian-frontend/commits/7abf8824fec) - Migrate link picker atlassian plugin from picker package.
50
+
51
+ ## 0.4.0
52
+
53
+ ### Minor Changes
54
+
55
+ - [`c926a95160b`](https://bitbucket.org/atlassian/atlassian-frontend/commits/c926a95160b) - Removes onEscape prop from the link picker.
56
+
57
+ ## 0.3.2
58
+
59
+ ### Patch Changes
60
+
61
+ - [`08195fc6e43`](https://bitbucket.org/atlassian/atlassian-frontend/commits/08195fc6e43) - [ux] Add field validation error message to link input field
62
+
63
+ ## 0.3.1
64
+
65
+ ### Patch Changes
66
+
67
+ - Updated dependencies
68
+
69
+ ## 0.3.0
70
+
71
+ ### Minor Changes
72
+
73
+ - [`3b3a7800978`](https://bitbucket.org/atlassian/atlassian-frontend/commits/3b3a7800978) - Export picker state and list item data types from picker package.
74
+
75
+ ## 0.2.4
76
+
77
+ ### Patch Changes
78
+
79
+ - [`6d1dd7c5833`](https://bitbucket.org/atlassian/atlassian-frontend/commits/6d1dd7c5833) - Increase test coverage
80
+
81
+ ## 0.2.3
82
+
83
+ ### Patch Changes
84
+
85
+ - [`6f3a1f588e1`](https://bitbucket.org/atlassian/atlassian-frontend/commits/6f3a1f588e1) - Rewrites LinkSearchListItem as FC & Adds new Active state to support arrow navigation and Selected style
86
+
87
+ ## 0.2.2
88
+
89
+ ### Patch Changes
90
+
91
+ - [`9598e13788a`](https://bitbucket.org/atlassian/atlassian-frontend/commits/9598e13788a) - [ux] Update token usage for better contrast
92
+
93
+ ## 0.2.1
94
+
95
+ ### Patch Changes
96
+
97
+ - [`7fa34f27a1f`](https://bitbucket.org/atlassian/atlassian-frontend/commits/7fa34f27a1f) - Displays a search icon inside link-picker search input when there is an active Plugin
98
+
99
+ ## 0.2.0
100
+
101
+ ### Minor Changes
102
+
103
+ - [`1cb59c97d35`](https://bitbucket.org/atlassian/atlassian-frontend/commits/1cb59c97d35) - Adds AtlassianLinkPicker plugin and changes LinkPicker API to use plugins
104
+
105
+ ## 0.1.1
106
+
107
+ ### Patch Changes
108
+
109
+ - [`df6e3bdd55f`](https://bitbucket.org/atlassian/atlassian-frontend/commits/df6e3bdd55f) - EDM-3088/Rewrite PanelTextInput as functional component and take advante of Atlaskit Textfield out-of-the-box features
110
+
111
+ ## 0.1.0
112
+
113
+ ### Minor Changes
114
+
115
+ - [`cb5997ed7af`](https://bitbucket.org/atlassian/atlassian-frontend/commits/cb5997ed7af) - [ux] EDM-2977/change UI for link and title input fields
116
+
117
+ ## 0.0.6
118
+
119
+ ### Patch Changes
120
+
121
+ - [`cb2392f6d33`](https://bitbucket.org/atlassian/atlassian-frontend/commits/cb2392f6d33) - Upgrade to TypeScript 4.2.4
122
+ - Updated dependencies
123
+
124
+ ## 0.0.5
125
+
126
+ ### Patch Changes
127
+
128
+ - Updated dependencies
129
+
130
+ ## 0.0.4
131
+
132
+ ### Patch Changes
133
+
134
+ - Updated dependencies
135
+
136
+ ## 0.0.3
137
+
138
+ ### Patch Changes
139
+
140
+ - [`7f49f72e074`](https://bitbucket.org/atlassian/atlassian-frontend/commits/7f49f72e074) - copy existing editor component into @atlassian/link-picker
141
+ - Updated dependencies
142
+
3
143
  ## 0.0.2
4
144
 
5
145
  ### Patch Changes
package/README.md CHANGED
@@ -1,9 +1,31 @@
1
- # LinkPicker
1
+ # Link Picker @atlaskit/link-picker
2
2
 
3
- Standalone link picker
3
+ > ⚠️ Currently under active development, use at your own risk ⚠️
4
4
 
5
- ## Usage
5
+ The standalone link picker component allows users to insert relevant links without having to leave their current context.
6
6
 
7
- `import { LinkPicker } from '@atlaskit/link-picker';`
7
+ ### Usage
8
8
 
9
- Detailed docs and example usage can be found [here](https://atlaskit.atlassian.com/packages/linking-platform/link-picker).
9
+ ```
10
+ import { LinkPicker } from '@atlaskit/link-picker';
11
+
12
+ const onSubmit = (href, title, displayText, inputMethod) => {...}
13
+
14
+ <LinkPicker onSubmit={onSubmit} />
15
+
16
+ ```
17
+
18
+ ### Props
19
+
20
+ ```
21
+ {
22
+ onSubmit?: (
23
+ href: string,
24
+ title: string | undefined,
25
+ displayText: string | undefined,
26
+ inputMethod: LinkInputType,
27
+ ) => void;
28
+ plugins?: [LinkPickerPlugin];
29
+ displayUrl?: string;
30
+ }
31
+ ```
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.browser = void 0;
7
+ var result = {
8
+ mac: false,
9
+ ie: false,
10
+ ie_version: 0,
11
+ gecko: false,
12
+ chrome: false,
13
+ chrome_version: 0,
14
+ android: false,
15
+ ios: false,
16
+ webkit: false,
17
+ safari: false,
18
+ supportsIntersectionObserver: false,
19
+ supportsResizeObserver: false
20
+ };
21
+ exports.browser = result;
22
+
23
+ if (typeof navigator !== 'undefined') {
24
+ var ieEdge = /Edge\/(\d+)/.exec(navigator.userAgent);
25
+ var ieUpTo10 = /MSIE \d/.test(navigator.userAgent);
26
+ var ie11up = /Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);
27
+ result.mac = /Mac/.test(navigator.platform);
28
+ var ie = result.ie = !!(ieUpTo10 || ie11up || ieEdge);
29
+ result.ie_version = ieUpTo10 ? document.documentMode || 6 : ie11up ? +ie11up[1] : ieEdge ? +ieEdge[1] : null;
30
+ result.gecko = !ie && /gecko\/\d/i.test(navigator.userAgent);
31
+ result.chrome = !ie && /Chrome\//.test(navigator.userAgent);
32
+ result.chrome_version = parseInt((navigator.userAgent.match(/Chrome\/(\d+)/) || [])[1], 10);
33
+ result.android = /Android \d/.test(navigator.userAgent);
34
+ result.ios = !ie && /AppleWebKit/.test(navigator.userAgent) && /Mobile\/\w+/.test(navigator.userAgent);
35
+ result.webkit = !ie && !!document.documentElement && 'WebkitAppearance' in document.documentElement.style;
36
+ result.safari = Boolean(navigator.vendor && navigator.vendor.indexOf('Apple') > -1 && navigator.userAgent && navigator.userAgent.indexOf('CriOS') === -1 && navigator.userAgent.indexOf('FxiOS') === -1);
37
+ result.supportsIntersectionObserver = typeof window !== 'undefined' && 'IntersectionObserver' in window && 'IntersectionObserverEntry' in window && 'intersectionRatio' in window.IntersectionObserverEntry.prototype;
38
+ result.supportsResizeObserver = typeof window !== 'undefined' && 'ResizeObserver' in window && 'ResizeObserverEntry' in window;
39
+ }
package/dist/cjs/index.js CHANGED
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  Object.defineProperty(exports, "LinkPicker", {
7
7
  enumerable: true,
8
8
  get: function get() {
9
- return _linkPicker.LinkPicker;
9
+ return _linkPicker.LinkPickerWithIntl;
10
10
  }
11
11
  });
12
12
 
13
- var _linkPicker = require("./link-picker");
13
+ var _linkPicker = require("./ui/link-picker");
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.messages = void 0;
7
+
8
+ var _reactIntlNext = require("react-intl-next");
9
+
10
+ var messages = (0, _reactIntlNext.defineMessages)({
11
+ placeholder: {
12
+ id: 'fabric.linkPicker.hyperlinkToolbarPlaceholder',
13
+ defaultMessage: 'Search or paste a link',
14
+ description: 'Search or paste a link'
15
+ },
16
+ linkPlaceholder: {
17
+ id: 'fabric.linkPicker.linkPlaceholder',
18
+ defaultMessage: 'Paste link',
19
+ description: 'Create a new link by pasting a URL.'
20
+ },
21
+ linkTextPlaceholder: {
22
+ id: 'fabric.linkPicker.linkTextPlaceholder',
23
+ defaultMessage: 'Add a description',
24
+ description: 'Text to display'
25
+ },
26
+ linkLabel: {
27
+ id: 'fabric.linkPicker.linkAddress',
28
+ defaultMessage: 'Link',
29
+ description: 'Link Label'
30
+ },
31
+ linkInvalid: {
32
+ id: 'fabric.linkPicker.linkInvalid',
33
+ defaultMessage: 'Enter a valid URL.',
34
+ description: 'Input Error the URL is invalid'
35
+ },
36
+ linkTextLabel: {
37
+ id: 'fabric.linkPicker.displayText',
38
+ defaultMessage: 'Link text',
39
+ description: 'Link text label'
40
+ },
41
+ clearText: {
42
+ id: 'fabric.linkPicker.clearLinkText',
43
+ defaultMessage: 'Clear text',
44
+ description: 'Clears text on the link toolbar'
45
+ },
46
+ clearLink: {
47
+ id: 'fabric.linkPicker.clearLink',
48
+ defaultMessage: 'Clear link',
49
+ description: 'Clears link in the link toolbar'
50
+ },
51
+ searchLinkAriaDescription: {
52
+ id: 'fabric.linkPicker.hyperlink.searchLinkAriaDescription',
53
+ defaultMessage: 'Suggestions will appear below as you type into the field',
54
+ description: 'Describes what the search field does for screen reader users.'
55
+ },
56
+ searchLinkResults: {
57
+ id: 'fabric.linkPicker.hyperlink.searchLinkResults',
58
+ defaultMessage: '{count, plural, =0 {no results} one {# result} other {# results}} found',
59
+ description: 'Announce search results for screen-reader users.'
60
+ },
61
+ linkAriaLabel: {
62
+ id: 'fabric.linkPicker.hyperlink.linkAriaLabel',
63
+ defaultMessage: 'Link label',
64
+ description: 'aria label for a link'
65
+ },
66
+ timeUpdated: {
67
+ id: 'fabric.linkPicker.time.updated',
68
+ defaultMessage: 'Updated',
69
+ description: 'Time last updated'
70
+ },
71
+ timeViewed: {
72
+ id: 'fabric.linkPicker.time.viewed',
73
+ defaultMessage: 'Viewed',
74
+ description: 'Time last viewed'
75
+ },
76
+ timeAgo: {
77
+ id: 'fabric.linkPicker.time.ago',
78
+ defaultMessage: 'ago',
79
+ description: 'Some time ago'
80
+ },
81
+ titleRecentlyViewed: {
82
+ id: 'fabric.linkPicker.listTitle.recentlyViewed',
83
+ defaultMessage: 'Recently Viewed',
84
+ description: 'Describes type of items shown in the list for screen-reader users'
85
+ },
86
+ titleResults: {
87
+ id: 'fabric.linkPicker.listTitle.results',
88
+ defaultMessage: 'Results',
89
+ description: 'Describes type of items shown in the list for screen-reader users'
90
+ },
91
+ cancelButton: {
92
+ id: 'fabric.linkPicker.cancel.button',
93
+ defaultMessage: 'Cancel',
94
+ description: 'Button to cancel and dismiss the link picker'
95
+ },
96
+ insertButton: {
97
+ id: 'fabric.linkPicker.cancel.insert',
98
+ defaultMessage: 'Insert',
99
+ description: 'Button to insert searched or selected link'
100
+ }
101
+ });
102
+ exports.messages = messages;
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.recentListStyles = exports.SearchIconWrapper = exports.ListTitleStyles = exports.ListItemWrapper = exports.ListItemName = exports.ListItemContext = exports.ItemNameWrapper = exports.ItemIconWrapper = exports.ImgStyles = exports.FieldWrapper = exports.Container = exports.ClearText = void 0;
9
+
10
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
+
12
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
13
+
14
+ var _tokens = require("@atlaskit/tokens");
15
+
16
+ var _core = require("@emotion/core");
17
+
18
+ var _colors = require("@atlaskit/theme/colors");
19
+
20
+ var _constants = require("@atlaskit/theme/constants");
21
+
22
+ var _utils = require("./utils");
23
+
24
+ var _theme = require("@atlaskit/theme");
25
+
26
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12;
27
+
28
+ var LINK_PICKER_WIDTH_IN_PX = 342;
29
+ var recentListStyles = (0, _core.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n width: ", "px;\n background: ", ";\n"])), LINK_PICKER_WIDTH_IN_PX, (0, _tokens.token)('elevation.surface.overlay', _colors.N0));
30
+ exports.recentListStyles = recentListStyles;
31
+
32
+ var Container = _styledComponents.default.div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n padding: ", "px;\n width: 100%;\n overflow: hidden;\n line-height: initial;\n box-sizing: border-box;\n"])), (0, _constants.gridSize)() * 2);
33
+
34
+ exports.Container = Container;
35
+
36
+ var ClearText = _styledComponents.default.button(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n padding: 0;\n margin-right: ", "px;\n color: ", ";\n background: transparent;\n border: none;\n cursor: pointer;\n"])), (0, _constants.gridSize)() / 2, (0, _tokens.token)('color.icon.subtle', _colors.N500));
37
+
38
+ exports.ClearText = ClearText;
39
+
40
+ var FieldWrapper = _styledComponents.default.div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n margin-bottom: ", "px;\n"])), (0, _constants.gridSize)() * 2);
41
+
42
+ exports.FieldWrapper = FieldWrapper;
43
+
44
+ var SearchIconWrapper = _styledComponents.default.span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["\n margin-left: ", "px;\n color: ", ";\n cursor: default;\n"])), (0, _constants.gridSize)() / 2, (0, _tokens.token)('color.icon', _colors.N500));
45
+
46
+ exports.SearchIconWrapper = SearchIconWrapper;
47
+ var ListTitleStyles = (0, _core.css)(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2.default)(["\n ", "\n text-transform: uppercase;\n margin-bottom: ", "px;\n"])), _theme.typography.h100(), (0, _constants.gridSize)() / 2);
48
+ exports.ListTitleStyles = ListTitleStyles;
49
+
50
+ var ListItemWrapper = _styledComponents.default.li(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n padding: ", "px ", "px;\n margin: 0 -", "px;\n cursor: pointer;\n background-color: ", ";\n box-shadow: inset 2px 0px 0px\n ", ";\n"])), (0, _constants.gridSize)(), (0, _constants.gridSize)() * 2, (0, _constants.gridSize)() * 2, function (props) {
51
+ switch (true) {
52
+ case props.selected:
53
+ return (0, _tokens.token)('color.background.selected', _colors.B50);
54
+
55
+ case props.active:
56
+ return (0, _tokens.token)('color.background.neutral.subtle.hovered', _colors.N20);
57
+
58
+ default:
59
+ return 'transparent';
60
+ }
61
+ }, function (props) {
62
+ switch (true) {
63
+ case props.active:
64
+ case props.selected:
65
+ return (0, _tokens.token)('color.border.selected', _colors.B400);
66
+
67
+ default:
68
+ return 'transparent';
69
+ }
70
+ });
71
+
72
+ exports.ListItemWrapper = ListItemWrapper;
73
+
74
+ var ItemNameWrapper = _styledComponents.default.span(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2.default)(["\n overflow: hidden;\n"])));
75
+
76
+ exports.ItemNameWrapper = ItemNameWrapper;
77
+
78
+ var ListItemName = _styledComponents.default.div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2.default)(["\n color: ", ";\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n line-height: 20px;\n"])), (0, _tokens.token)('color.text', _colors.N800));
79
+
80
+ exports.ListItemName = ListItemName;
81
+
82
+ var ListItemContext = _styledComponents.default.div(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2.default)(["\n color: ", ";\n font-size: ", ";\n line-height: ", "px;\n"])), (0, _tokens.token)('color.text', _colors.N300), (0, _utils.relativeFontSizeToBase16)((0, _theme.fontSizeSmall)()), (0, _theme.fontSize)());
83
+
84
+ exports.ListItemContext = ListItemContext;
85
+
86
+ var ItemIconWrapper = _styledComponents.default.span(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2.default)(["\n min-width: ", "px;\n margin-top: 3px;\n margin-right: 12px;\n"])), (0, _constants.gridSize)() * 2);
87
+
88
+ exports.ItemIconWrapper = ItemIconWrapper;
89
+ var ImgStyles = (0, _core.css)(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2.default)(["\n max-width: ", "px;\n"])), (0, _constants.gridSize)() * 2);
90
+ exports.ImgStyles = ImgStyles;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.transformTimeStamp = void 0;
9
+
10
+ var _formatDistance = _interopRequireDefault(require("date-fns/formatDistance"));
11
+
12
+ var _differenceInCalendarDays = _interopRequireDefault(require("date-fns/differenceInCalendarDays"));
13
+
14
+ var _format = _interopRequireDefault(require("date-fns/format"));
15
+
16
+ var _messages = require("./messages");
17
+
18
+ var renderAbsoluteOrRelativeDate = function renderAbsoluteOrRelativeDate(timeStamp, pageAction, intl) {
19
+ var pageActionText = '';
20
+
21
+ switch (pageAction) {
22
+ case 'updated':
23
+ pageActionText = intl.formatMessage(_messages.messages.timeUpdated);
24
+ break;
25
+
26
+ case 'viewed':
27
+ pageActionText = intl.formatMessage(_messages.messages.timeViewed);
28
+ break;
29
+ }
30
+
31
+ if ((0, _differenceInCalendarDays.default)(timeStamp, Date.now()) < -7) {
32
+ return {
33
+ pageAction: pageActionText,
34
+ dateString: (0, _format.default)(timeStamp, 'MMMM dd, yyyy')
35
+ };
36
+ }
37
+
38
+ return {
39
+ pageAction: pageActionText,
40
+ dateString: (0, _formatDistance.default)(timeStamp, Date.now()),
41
+ timeSince: intl.formatMessage(_messages.messages.timeAgo)
42
+ };
43
+ };
44
+
45
+ var transformTimeStamp = function transformTimeStamp(intl, lastViewedDate, lastUpdatedDate) {
46
+ if (lastViewedDate) {
47
+ return renderAbsoluteOrRelativeDate(lastViewedDate, 'viewed', intl);
48
+ }
49
+
50
+ if (lastUpdatedDate) {
51
+ return renderAbsoluteOrRelativeDate(lastUpdatedDate, 'updated', intl);
52
+ }
53
+ };
54
+
55
+ exports.transformTimeStamp = transformTimeStamp;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.default = exports.List = void 0;
11
+
12
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
+
14
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
+
16
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
+
18
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
+
20
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
+
22
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
23
+
24
+ var _react = _interopRequireWildcard(require("react"));
25
+
26
+ var _spinner = _interopRequireDefault(require("@atlaskit/spinner"));
27
+
28
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
29
+
30
+ var _LinkSearchListItem = _interopRequireDefault(require("./LinkSearchListItem"));
31
+
32
+ var _templateObject, _templateObject2, _templateObject3;
33
+
34
+ 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); }
35
+
36
+ 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; }
37
+
38
+ 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); }; }
39
+
40
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
41
+
42
+ var ListContainer = _styledComponents.default.div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n padding-top: 0;\n"])));
43
+
44
+ var SpinnerContainer = _styledComponents.default.div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n text-align: center;\n min-height: 80px;\n margin-top: 30px;\n"])));
45
+
46
+ var List = _styledComponents.default.ul(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n padding: 0;\n list-style: none;\n"])));
47
+
48
+ exports.List = List;
49
+
50
+ var LinkSearchList = /*#__PURE__*/function (_PureComponent) {
51
+ (0, _inherits2.default)(LinkSearchList, _PureComponent);
52
+
53
+ var _super = _createSuper(LinkSearchList);
54
+
55
+ function LinkSearchList() {
56
+ (0, _classCallCheck2.default)(this, LinkSearchList);
57
+ return _super.apply(this, arguments);
58
+ }
59
+
60
+ (0, _createClass2.default)(LinkSearchList, [{
61
+ key: "render",
62
+ value: function render() {
63
+ var _this$props = this.props,
64
+ onSelect = _this$props.onSelect,
65
+ onMouseEnter = _this$props.onMouseEnter,
66
+ onMouseLeave = _this$props.onMouseLeave,
67
+ items = _this$props.items,
68
+ activeIndex = _this$props.activeIndex,
69
+ selectedIndex = _this$props.selectedIndex,
70
+ isLoading = _this$props.isLoading,
71
+ ariaControls = _this$props.ariaControls,
72
+ ariaLabelledBy = _this$props.ariaLabelledBy,
73
+ role = _this$props.role,
74
+ id = _this$props.id;
75
+ var itemsContent;
76
+ var loadingContent;
77
+
78
+ if (items && items.length > 0) {
79
+ itemsContent = /*#__PURE__*/_react.default.createElement(List, {
80
+ id: id,
81
+ role: role,
82
+ "aria-controls": ariaControls,
83
+ "aria-labelledby": ariaLabelledBy
84
+ }, items.map(function (item, index) {
85
+ return /*#__PURE__*/_react.default.createElement(_LinkSearchListItem.default, {
86
+ id: "link-search-list-item-".concat(index),
87
+ role: role && 'option',
88
+ item: item,
89
+ selected: selectedIndex === index,
90
+ active: activeIndex === index,
91
+ onMouseEnter: onMouseEnter,
92
+ onMouseLeave: onMouseLeave,
93
+ onSelect: onSelect,
94
+ key: item.objectId
95
+ });
96
+ }));
97
+ }
98
+
99
+ if (isLoading) {
100
+ loadingContent = /*#__PURE__*/_react.default.createElement(SpinnerContainer, null, /*#__PURE__*/_react.default.createElement(_spinner.default, {
101
+ testId: "link-picker.results-loading-indicator",
102
+ size: "medium"
103
+ }));
104
+ }
105
+
106
+ return /*#__PURE__*/_react.default.createElement(ListContainer, null, itemsContent, loadingContent);
107
+ }
108
+ }]);
109
+ return LinkSearchList;
110
+ }(_react.PureComponent);
111
+
112
+ exports.default = LinkSearchList;