@atlaskit/link-picker 0.0.2 → 0.8.1

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 +152 -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 +582 -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 +93 -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 +481 -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 +560 -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 +51 -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,157 @@
1
1
  # @atlaskit/link-picker
2
2
 
3
+ ## 0.8.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [`eef8c2da75b`](https://bitbucket.org/atlassian/atlassian-frontend/commits/eef8c2da75b) - [ux] Remove link-picker background color as it conflicts with floatingToobar borders
8
+
9
+ ## 0.8.0
10
+
11
+ ### Minor Changes
12
+
13
+ - [`1e371fd8d23`](https://bitbucket.org/atlassian/atlassian-frontend/commits/1e371fd8d23) - Updates link picker to support array of plugins. Removes intl prop from LinkPickerProps type.
14
+
15
+ ## 0.7.0
16
+
17
+ ### Minor Changes
18
+
19
+ - [`9cabbe5e920`](https://bitbucket.org/atlassian/atlassian-frontend/commits/9cabbe5e920) - Convert to @atlaskit scope
20
+
21
+ ## 0.6.2
22
+
23
+ ### Patch Changes
24
+
25
+ - [`3fb9dbd9f4e`](https://bitbucket.org/atlassian/atlassian-frontend/commits/3fb9dbd9f4e) - [ux] Add buttons at the bottom of the form
26
+
27
+ ## 0.6.1
28
+
29
+ ### Patch Changes
30
+
31
+ - [`93a77354b58`](https://bitbucket.org/atlassian/atlassian-frontend/commits/93a77354b58) - Updated vr snapshots
32
+
33
+ ## 0.6.0
34
+
35
+ ### Minor Changes
36
+
37
+ - [`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.
38
+
39
+ ## 0.5.3
40
+
41
+ ### Patch Changes
42
+
43
+ - [`3ef09836c04`](https://bitbucket.org/atlassian/atlassian-frontend/commits/3ef09836c04) - [ux] Validates links within search text are not inserted
44
+
45
+ ## 0.5.2
46
+
47
+ ### Patch Changes
48
+
49
+ - [`c1f3d82b994`](https://bitbucket.org/atlassian/atlassian-frontend/commits/c1f3d82b994) - Update to use the new V3 recents API in the Atlassian plugin
50
+
51
+ ## 0.5.1
52
+
53
+ ### Patch Changes
54
+
55
+ - [`d90f1f42589`](https://bitbucket.org/atlassian/atlassian-frontend/commits/d90f1f42589) - [ux] Shows subtitle with recently viewed if there’s no search text and results otherwise
56
+
57
+ ## 0.5.0
58
+
59
+ ### Minor Changes
60
+
61
+ - [`7abf8824fec`](https://bitbucket.org/atlassian/atlassian-frontend/commits/7abf8824fec) - Migrate link picker atlassian plugin from picker package.
62
+
63
+ ## 0.4.0
64
+
65
+ ### Minor Changes
66
+
67
+ - [`c926a95160b`](https://bitbucket.org/atlassian/atlassian-frontend/commits/c926a95160b) - Removes onEscape prop from the link picker.
68
+
69
+ ## 0.3.2
70
+
71
+ ### Patch Changes
72
+
73
+ - [`08195fc6e43`](https://bitbucket.org/atlassian/atlassian-frontend/commits/08195fc6e43) - [ux] Add field validation error message to link input field
74
+
75
+ ## 0.3.1
76
+
77
+ ### Patch Changes
78
+
79
+ - Updated dependencies
80
+
81
+ ## 0.3.0
82
+
83
+ ### Minor Changes
84
+
85
+ - [`3b3a7800978`](https://bitbucket.org/atlassian/atlassian-frontend/commits/3b3a7800978) - Export picker state and list item data types from picker package.
86
+
87
+ ## 0.2.4
88
+
89
+ ### Patch Changes
90
+
91
+ - [`6d1dd7c5833`](https://bitbucket.org/atlassian/atlassian-frontend/commits/6d1dd7c5833) - Increase test coverage
92
+
93
+ ## 0.2.3
94
+
95
+ ### Patch Changes
96
+
97
+ - [`6f3a1f588e1`](https://bitbucket.org/atlassian/atlassian-frontend/commits/6f3a1f588e1) - Rewrites LinkSearchListItem as FC & Adds new Active state to support arrow navigation and Selected style
98
+
99
+ ## 0.2.2
100
+
101
+ ### Patch Changes
102
+
103
+ - [`9598e13788a`](https://bitbucket.org/atlassian/atlassian-frontend/commits/9598e13788a) - [ux] Update token usage for better contrast
104
+
105
+ ## 0.2.1
106
+
107
+ ### Patch Changes
108
+
109
+ - [`7fa34f27a1f`](https://bitbucket.org/atlassian/atlassian-frontend/commits/7fa34f27a1f) - Displays a search icon inside link-picker search input when there is an active Plugin
110
+
111
+ ## 0.2.0
112
+
113
+ ### Minor Changes
114
+
115
+ - [`1cb59c97d35`](https://bitbucket.org/atlassian/atlassian-frontend/commits/1cb59c97d35) - Adds AtlassianLinkPicker plugin and changes LinkPicker API to use plugins
116
+
117
+ ## 0.1.1
118
+
119
+ ### Patch Changes
120
+
121
+ - [`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
122
+
123
+ ## 0.1.0
124
+
125
+ ### Minor Changes
126
+
127
+ - [`cb5997ed7af`](https://bitbucket.org/atlassian/atlassian-frontend/commits/cb5997ed7af) - [ux] EDM-2977/change UI for link and title input fields
128
+
129
+ ## 0.0.6
130
+
131
+ ### Patch Changes
132
+
133
+ - [`cb2392f6d33`](https://bitbucket.org/atlassian/atlassian-frontend/commits/cb2392f6d33) - Upgrade to TypeScript 4.2.4
134
+ - Updated dependencies
135
+
136
+ ## 0.0.5
137
+
138
+ ### Patch Changes
139
+
140
+ - Updated dependencies
141
+
142
+ ## 0.0.4
143
+
144
+ ### Patch Changes
145
+
146
+ - Updated dependencies
147
+
148
+ ## 0.0.3
149
+
150
+ ### Patch Changes
151
+
152
+ - [`7f49f72e074`](https://bitbucket.org/atlassian/atlassian-frontend/commits/7f49f72e074) - copy existing editor component into @atlassian/link-picker
153
+ - Updated dependencies
154
+
3
155
  ## 0.0.2
4
156
 
5
157
  ### 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"])), LINK_PICKER_WIDTH_IN_PX);
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;