@atlaskit/link-picker 1.1.1 → 1.1.4
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 +18 -0
- package/dist/cjs/browser.js +39 -0
- package/dist/cjs/index.js +13 -0
- package/dist/cjs/messages.js +117 -0
- package/dist/cjs/transformTimeStamp.js +55 -0
- package/dist/cjs/types.js +5 -0
- package/dist/cjs/ui/announcer.js +64 -0
- package/dist/cjs/ui/link-picker.js +613 -0
- package/dist/cjs/ui/link-search-list/index.js +102 -0
- package/dist/cjs/ui/link-search-list/styled.js +21 -0
- package/dist/cjs/ui/link-search-no-results/index.js +27 -0
- package/dist/cjs/ui/link-search-no-results/no-results-svg/index.js +69 -0
- package/dist/cjs/ui/link-search-no-results/no-results-svg/styled.js +20 -0
- package/dist/cjs/ui/list-item/index.js +103 -0
- package/dist/cjs/ui/list-item/styled.js +59 -0
- package/dist/cjs/ui/styled.js +32 -0
- package/dist/cjs/ui/text-input/index.js +116 -0
- package/dist/cjs/ui/text-input/styled.js +25 -0
- package/dist/cjs/url.js +104 -0
- package/dist/cjs/utils.js +27 -0
- package/dist/cjs/version.json +5 -0
- package/dist/es2019/browser.js +34 -0
- package/dist/es2019/index.js +1 -0
- package/dist/es2019/messages.js +108 -0
- package/dist/es2019/transformTimeStamp.js +41 -0
- package/dist/es2019/types.js +1 -0
- package/dist/es2019/ui/announcer.js +38 -0
- package/dist/es2019/ui/link-picker.js +501 -0
- package/dist/es2019/ui/link-search-list/index.js +60 -0
- package/dist/es2019/ui/link-search-list/styled.js +13 -0
- package/dist/es2019/ui/link-search-no-results/index.js +10 -0
- package/dist/es2019/ui/link-search-no-results/no-results-svg/index.js +60 -0
- package/dist/es2019/ui/link-search-no-results/no-results-svg/styled.js +8 -0
- package/dist/es2019/ui/list-item/index.js +88 -0
- package/dist/es2019/ui/list-item/styled.js +65 -0
- package/dist/es2019/ui/styled.js +28 -0
- package/dist/es2019/ui/text-input/index.js +99 -0
- package/dist/es2019/ui/text-input/styled.js +15 -0
- package/dist/es2019/url.js +88 -0
- package/dist/es2019/utils.js +13 -0
- package/dist/es2019/version.json +5 -0
- package/dist/esm/browser.js +34 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/messages.js +108 -0
- package/dist/esm/transformTimeStamp.js +41 -0
- package/dist/esm/types.js +1 -0
- package/dist/esm/ui/announcer.js +51 -0
- package/dist/esm/ui/link-picker.js +591 -0
- package/dist/esm/ui/link-search-list/index.js +88 -0
- package/dist/esm/ui/link-search-list/styled.js +8 -0
- package/dist/esm/ui/link-search-no-results/index.js +14 -0
- package/dist/esm/ui/link-search-no-results/no-results-svg/index.js +60 -0
- package/dist/esm/ui/link-search-no-results/no-results-svg/styled.js +8 -0
- package/dist/esm/ui/list-item/index.js +90 -0
- package/dist/esm/ui/list-item/styled.js +37 -0
- package/dist/esm/ui/styled.js +16 -0
- package/dist/esm/ui/text-input/index.js +99 -0
- package/dist/esm/ui/text-input/styled.js +10 -0
- package/dist/esm/url.js +90 -0
- package/dist/esm/utils.js +13 -0
- package/dist/esm/version.json +5 -0
- package/dist/types/browser.d.ts +15 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/messages.d.ts +107 -0
- package/dist/types/transformTimeStamp.d.ts +3 -0
- package/dist/types/types.d.ts +40 -0
- package/dist/types/ui/announcer.d.ts +22 -0
- package/dist/types/ui/link-picker.d.ts +52 -0
- package/dist/types/ui/link-search-list/index.d.ts +20 -0
- package/dist/types/ui/link-search-list/styled.d.ts +3 -0
- package/dist/types/ui/link-search-no-results/index.d.ts +4 -0
- package/dist/types/ui/link-search-no-results/no-results-svg/index.d.ts +4 -0
- package/dist/types/ui/link-search-no-results/no-results-svg/styled.d.ts +1 -0
- package/dist/types/ui/list-item/index.d.ts +17 -0
- package/dist/types/ui/list-item/styled.d.ts +7 -0
- package/dist/types/ui/styled.d.ts +4 -0
- package/dist/types/ui/text-input/index.d.ts +17 -0
- package/dist/types/ui/text-input/styled.d.ts +2 -0
- package/dist/types/url.d.ts +5 -0
- package/dist/types/utils.d.ts +3 -0
- package/package.json +1 -2
- package/report.api.md +56 -21
- package/example-helpers/flight-deck/_manifest.json +0 -9
- package/example-helpers/flight-deck/mockFDResponse.json +0 -133
- package/example-helpers/mock-data.ts +0 -318
- package/example-helpers/providers.ts +0 -39
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
+
|
|
12
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
+
|
|
14
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
15
|
+
|
|
16
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
17
|
+
|
|
18
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
19
|
+
|
|
20
|
+
var _react = require("react");
|
|
21
|
+
|
|
22
|
+
var _react2 = require("@emotion/react");
|
|
23
|
+
|
|
24
|
+
var _spinner = _interopRequireDefault(require("@atlaskit/spinner"));
|
|
25
|
+
|
|
26
|
+
var _listItem = _interopRequireDefault(require("../list-item"));
|
|
27
|
+
|
|
28
|
+
var _styled = require("./styled");
|
|
29
|
+
|
|
30
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
31
|
+
|
|
32
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
33
|
+
|
|
34
|
+
var LinkSearchList = /*#__PURE__*/function (_PureComponent) {
|
|
35
|
+
(0, _inherits2.default)(LinkSearchList, _PureComponent);
|
|
36
|
+
|
|
37
|
+
var _super = _createSuper(LinkSearchList);
|
|
38
|
+
|
|
39
|
+
function LinkSearchList() {
|
|
40
|
+
(0, _classCallCheck2.default)(this, LinkSearchList);
|
|
41
|
+
return _super.apply(this, arguments);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
(0, _createClass2.default)(LinkSearchList, [{
|
|
45
|
+
key: "render",
|
|
46
|
+
value: function render() {
|
|
47
|
+
var _this$props = this.props,
|
|
48
|
+
onSelect = _this$props.onSelect,
|
|
49
|
+
onMouseEnter = _this$props.onMouseEnter,
|
|
50
|
+
onMouseLeave = _this$props.onMouseLeave,
|
|
51
|
+
items = _this$props.items,
|
|
52
|
+
activeIndex = _this$props.activeIndex,
|
|
53
|
+
selectedIndex = _this$props.selectedIndex,
|
|
54
|
+
isLoading = _this$props.isLoading,
|
|
55
|
+
ariaControls = _this$props.ariaControls,
|
|
56
|
+
ariaLabelledBy = _this$props.ariaLabelledBy,
|
|
57
|
+
role = _this$props.role,
|
|
58
|
+
id = _this$props.id;
|
|
59
|
+
var itemsContent;
|
|
60
|
+
var loadingContent;
|
|
61
|
+
|
|
62
|
+
if (items && items.length > 0) {
|
|
63
|
+
itemsContent = (0, _react2.jsx)("ul", {
|
|
64
|
+
"data-testid": "link-search-list",
|
|
65
|
+
css: _styled.listStyles,
|
|
66
|
+
id: id,
|
|
67
|
+
role: role,
|
|
68
|
+
"aria-controls": ariaControls,
|
|
69
|
+
"aria-labelledby": ariaLabelledBy
|
|
70
|
+
}, items.map(function (item, index) {
|
|
71
|
+
return (0, _react2.jsx)(_listItem.default, {
|
|
72
|
+
id: "link-search-list-item-".concat(index),
|
|
73
|
+
role: role && 'option',
|
|
74
|
+
item: item,
|
|
75
|
+
selected: selectedIndex === index,
|
|
76
|
+
active: activeIndex === index,
|
|
77
|
+
onMouseEnter: onMouseEnter,
|
|
78
|
+
onMouseLeave: onMouseLeave,
|
|
79
|
+
onSelect: onSelect,
|
|
80
|
+
key: item.objectId
|
|
81
|
+
});
|
|
82
|
+
}));
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
if (isLoading) {
|
|
86
|
+
loadingContent = (0, _react2.jsx)("div", {
|
|
87
|
+
css: _styled.spinnerContainerStyles
|
|
88
|
+
}, (0, _react2.jsx)(_spinner.default, {
|
|
89
|
+
testId: "link-picker.results-loading-indicator",
|
|
90
|
+
size: "medium"
|
|
91
|
+
}));
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
return (0, _react2.jsx)("div", {
|
|
95
|
+
css: _styled.listContainerStyles
|
|
96
|
+
}, itemsContent, loadingContent);
|
|
97
|
+
}
|
|
98
|
+
}]);
|
|
99
|
+
return LinkSearchList;
|
|
100
|
+
}(_react.PureComponent);
|
|
101
|
+
|
|
102
|
+
exports.default = LinkSearchList;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.spinnerContainerStyles = exports.listStyles = exports.listContainerStyles = void 0;
|
|
9
|
+
|
|
10
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
11
|
+
|
|
12
|
+
var _react = require("@emotion/react");
|
|
13
|
+
|
|
14
|
+
var _templateObject, _templateObject2, _templateObject3;
|
|
15
|
+
|
|
16
|
+
var listContainerStyles = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n padding-top: 0;\n"])));
|
|
17
|
+
exports.listContainerStyles = listContainerStyles;
|
|
18
|
+
var spinnerContainerStyles = (0, _react.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n text-align: center;\n min-height: 80px;\n margin-top: 30px;\n"])));
|
|
19
|
+
exports.spinnerContainerStyles = spinnerContainerStyles;
|
|
20
|
+
var listStyles = (0, _react.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n padding: 0;\n list-style: none;\n"])));
|
|
21
|
+
exports.listStyles = listStyles;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
+
|
|
12
|
+
var _react = _interopRequireDefault(require("react"));
|
|
13
|
+
|
|
14
|
+
var _emptyState = _interopRequireDefault(require("@atlaskit/empty-state"));
|
|
15
|
+
|
|
16
|
+
var _noResultsSvg = _interopRequireDefault(require("./no-results-svg"));
|
|
17
|
+
|
|
18
|
+
var NoResults = function NoResults(props) {
|
|
19
|
+
return /*#__PURE__*/_react.default.createElement(_emptyState.default, (0, _extends2.default)({}, props, {
|
|
20
|
+
renderImage: function renderImage() {
|
|
21
|
+
return /*#__PURE__*/_react.default.createElement(_noResultsSvg.default, null);
|
|
22
|
+
}
|
|
23
|
+
}));
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
var _default = NoResults;
|
|
27
|
+
exports.default = _default;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = require("@emotion/react");
|
|
9
|
+
|
|
10
|
+
var _styled = require("./styled");
|
|
11
|
+
|
|
12
|
+
/* eslint-disable @atlaskit/design-system/ensure-design-token-usage */
|
|
13
|
+
|
|
14
|
+
/** @jsx jsx */
|
|
15
|
+
var NoResultsSVG = function NoResultsSVG() {
|
|
16
|
+
var id = 'link-picker-ui-no-results-svg';
|
|
17
|
+
return (0, _react.jsx)("svg", {
|
|
18
|
+
css: _styled.noResultsSVGStyles,
|
|
19
|
+
height: "120",
|
|
20
|
+
viewBox: "0 0 208 191",
|
|
21
|
+
fill: "none",
|
|
22
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
23
|
+
}, (0, _react.jsx)("g", {
|
|
24
|
+
clipPath: "url(#".concat(id, "-a)")
|
|
25
|
+
}, (0, _react.jsx)("path", {
|
|
26
|
+
opacity: ".3",
|
|
27
|
+
d: "M105.28 190.44c-.93.03-1.86.05-2.79.06-1.3.01-2.36-1.04-2.36-2.34-.01-1.27 1-2.32 2.27-2.36h.07c5.93-.03 11.95-.67 17.74-1.9a2.352 2.352 0 0 1 .98 4.6 94.236 94.236 0 0 1-15.91 1.94ZM89.77 189.649c-.13 0-.27 0-.41-.02a91.17 91.17 0 0 1-18.27-4.49 2.353 2.353 0 1 1 1.59-4.43 85.94 85.94 0 0 0 17.32 4.25c1.29.18 2.19 1.36 2.01 2.65-.15 1.16-1.12 2-2.24 2.04ZM133.08 184.98c-.99.03-1.93-.56-2.29-1.54-.45-1.22.17-2.57 1.39-3.02a87.114 87.114 0 0 0 16.01-7.87 2.35 2.35 0 1 1 2.5 3.98c-5.32 3.33-11 6.13-16.87 8.3-.25.1-.49.14-.74.15ZM60.25 180.089c-.4.01-.81-.07-1.18-.27a92.004 92.004 0 0 1-15.61-10.48 2.35 2.35 0 0 1-.31-3.31c.83-1 2.31-1.14 3.31-.31a87.13 87.13 0 0 0 14.81 9.94c1.15.61 1.58 2.03.97 3.18a2.31 2.31 0 0 1-1.99 1.25ZM35.79 161.01c-.67.02-1.35-.24-1.83-.77a91.583 91.583 0 0 1-11.11-15.17 2.353 2.353 0 1 1 4.06-2.38c3 5.13 6.55 9.97 10.54 14.39.87.96.8 2.45-.17 3.32-.43.39-.96.59-1.49.61ZM179.7 145.469c-.42.01-.86-.08-1.25-.31a2.346 2.346 0 0 1-.87-3.21 86.618 86.618 0 0 0 7.22-16.31c.4-1.24 1.73-1.91 2.96-1.51 1.24.4 1.91 1.73 1.51 2.96a91.279 91.279 0 0 1-7.62 17.19c-.41.74-1.16 1.16-1.95 1.19ZM19.3 134.749c-.96.03-1.88-.53-2.26-1.47a90.64 90.64 0 0 1-5.23-18.06 2.35 2.35 0 0 1 1.9-2.73c1.28-.23 2.5.62 2.73 1.9a87.04 87.04 0 0 0 4.96 17.13c.49 1.2-.09 2.58-1.3 3.06-.26.1-.53.16-.8.17ZM190.19 116.26a2.346 2.346 0 0 1-2.4-2.74c1-5.84 1.39-11.83 1.18-17.8l-.01-.2c-.05-1.3.97-2.39 2.27-2.43 1.3-.05 2.39.97 2.43 2.27l.01.2c.22 6.29-.2 12.6-1.25 18.76a2.345 2.345 0 0 1-2.23 1.94ZM12.82 104.36c-1.3.05-2.39-.92-2.43-2.22v-.1c-.22-6.26.19-12.54 1.23-18.66a2.36 2.36 0 0 1 2.71-1.93 2.36 2.36 0 0 1 1.93 2.71 87.974 87.974 0 0 0-1.17 17.7c.05 1.31-.97 2.45-2.27 2.5ZM190 85.05a2.35 2.35 0 0 1-2.39-1.93A86.803 86.803 0 0 0 182.63 66a2.36 2.36 0 0 1 1.29-3.07c1.2-.49 2.58.09 3.07 1.29 2.36 5.8 4.13 11.88 5.25 18.06.23 1.28-.61 2.5-1.89 2.74l-.35.03ZM17.07 73.668c-.27.01-.54-.03-.81-.11a2.347 2.347 0 0 1-1.51-2.96 91.288 91.288 0 0 1 7.6-17.2 2.355 2.355 0 0 1 3.21-.88c1.13.64 1.52 2.08.88 3.21a87.027 87.027 0 0 0-7.21 16.32c-.32.96-1.2 1.59-2.16 1.62ZM179.22 55.98a2.34 2.34 0 0 1-2.11-1.16 87.748 87.748 0 0 0-10.56-14.38c-.87-.96-.8-2.45.17-3.32.96-.87 2.45-.8 3.32.17 4.22 4.66 7.96 9.75 11.13 15.15.66 1.12.28 2.56-.84 3.22-.35.2-.73.3-1.11.32ZM31.61 46.26c-.53.02-1.07-.14-1.53-.5a2.354 2.354 0 0 1-.41-3.3 92.27 92.27 0 0 1 13.01-13.57 2.36 2.36 0 0 1 3.32.27c.84.99.72 2.47-.27 3.32a87.993 87.993 0 0 0-12.35 12.88c-.44.57-1.1.88-1.77.9ZM159.12 32.35c-.56.02-1.12-.16-1.58-.54-4.59-3.8-9.57-7.14-14.83-9.93a2.35 2.35 0 0 1-.98-3.18 2.359 2.359 0 0 1 3.18-.98 91.78 91.78 0 0 1 15.62 10.46c1 .83 1.14 2.31.31 3.31-.44.54-1.08.83-1.72.86ZM54.62 25.45c-.81.03-1.61-.36-2.08-1.1a2.35 2.35 0 0 1 .74-3.24 91.806 91.806 0 0 1 16.87-8.32c1.22-.45 2.57.17 3.02 1.39.45 1.22-.17 2.57-1.39 3.02a86.792 86.792 0 0 0-16 7.89c-.36.23-.76.35-1.16.36ZM132.16 16.979c-.29.01-.59-.03-.87-.14-5.6-2-11.43-3.42-17.33-4.23a2.353 2.353 0 0 1 .64-4.66c6.22.85 12.36 2.35 18.27 4.46 1.22.44 1.86 1.78 1.42 3.01-.33.93-1.2 1.53-2.13 1.56ZM83.36 13.78a2.352 2.352 0 0 1-.57-4.65 93.98 93.98 0 0 1 18.69-2.03 2.356 2.356 0 0 1 .1 4.71h-.07c-5.93.03-11.95.69-17.74 1.92-.14.03-.28.04-.41.05Z",
|
|
28
|
+
fill: "#B3BAC5"
|
|
29
|
+
}), (0, _react.jsx)("path", {
|
|
30
|
+
opacity: ".3",
|
|
31
|
+
d: "M190.8 34.81a.522.522 0 0 1-.39-.56l.06-.45c.05-.29.11-.6.19-.92.3-1.15.85-2.18 1.64-3.09.79-.91 1.93-1.67 3.4-2.26l2.48-1.01c1.48-.59 2.39-1.57 2.75-2.92.13-.49.17-.99.12-1.51a3.44 3.44 0 0 0-.47-1.46c-.27-.45-.64-.86-1.13-1.22-.49-.36-1.09-.63-1.81-.82-.78-.2-1.47-.23-2.09-.09-.62.14-1.17.39-1.65.74s-.88.8-1.2 1.34c-.33.54-.57 1.12-.73 1.72-.05.18-.09.36-.12.52-.09.47-.56.75-1.02.61L187 22.26c-.36-.11-.61-.46-.57-.83.01-.12.03-.24.05-.36.06-.34.13-.66.21-.98.3-1.15.81-2.22 1.53-3.21.72-.99 1.61-1.8 2.67-2.43 1.06-.63 2.26-1.04 3.62-1.24 1.36-.2 2.84-.08 4.45.34 1.67.44 3.07 1.07 4.2 1.89 1.14.82 2.03 1.74 2.68 2.75.65 1.02 1.06 2.1 1.22 3.25.16 1.15.1 2.27-.19 3.36-.45 1.72-1.23 3.09-2.32 4.11-1.1 1.02-2.41 1.82-3.95 2.39l-2.09.79c-.59.19-1.47.58-2.2 1.38-.07.08-.37.41-.67.92-.22.38-.38.75-.49 1.07-.09.26-.37.4-.63.33l-3.72-.98Zm-3.06 5.87c.25-.95.79-1.67 1.63-2.17.84-.5 1.73-.63 2.68-.38.95.25 1.67.8 2.17 1.65.5.85.62 1.75.37 2.7-.25.95-.8 1.66-1.65 2.15-.85.48-1.75.6-2.69.35-.95-.25-1.67-.79-2.15-1.62-.49-.84-.61-1.73-.36-2.68ZM18.51 21.94a.518.518 0 0 1-.35-.58l.09-.45c.07-.29.15-.59.26-.9.38-1.13.99-2.12 1.85-2.97.85-.86 2.03-1.53 3.55-2.03l2.54-.84c1.51-.49 2.49-1.4 2.94-2.73.16-.48.24-.98.22-1.5-.01-.52-.14-1.02-.37-1.49-.23-.47-.58-.9-1.05-1.29-.46-.39-1.05-.7-1.75-.94-.76-.26-1.46-.33-2.08-.23-.63.1-1.19.31-1.69.63s-.93.74-1.29 1.26a6.16 6.16 0 0 0-.86 1.67c-.06.18-.11.35-.15.51-.12.46-.61.71-1.06.54l-3.74-1.42a.803.803 0 0 1-.51-.87c.02-.12.05-.24.08-.36.08-.33.17-.65.28-.96.38-1.13.96-2.16 1.75-3.1s1.73-1.69 2.82-2.25c1.1-.56 2.33-.89 3.69-.99 1.37-.1 2.84.11 4.41.64 1.63.55 2.99 1.27 4.07 2.17 1.08.9 1.91 1.87 2.49 2.93.58 1.06.92 2.16 1 3.32a8.52 8.52 0 0 1-.42 3.34c-.57 1.69-1.43 3-2.6 3.94-1.16.94-2.53 1.65-4.1 2.12l-2.14.64c-.6.15-1.51.48-2.29 1.23-.08.08-.4.39-.73.87-.25.37-.43.72-.56 1.03a.52.52 0 0 1-.65.29l-3.65-1.23Zm-3.45 5.65c.31-.93.9-1.62 1.77-2.06.87-.44 1.77-.51 2.7-.2.93.31 1.61.91 2.05 1.79.44.88.5 1.79.19 2.72-.31.93-.91 1.61-1.79 2.03-.88.42-1.78.48-2.71.17-.93-.31-1.61-.9-2.04-1.77-.42-.85-.48-1.75-.17-2.68ZM12.39 180.998c-.24.09-.52 0-.64-.23-.07-.13-.14-.27-.21-.41-.13-.27-.25-.56-.37-.86a7.553 7.553 0 0 1-.43-3.47c.13-1.2.62-2.47 1.49-3.81l1.45-2.25c.87-1.33 1.06-2.66.57-3.97a4.47 4.47 0 0 0-.77-1.31c-.34-.4-.74-.71-1.22-.93-.48-.22-1.02-.33-1.63-.35-.61-.01-1.26.11-1.95.37-.75.28-1.34.65-1.77 1.13-.43.47-.73.99-.92 1.55-.19.56-.26 1.16-.22 1.79.04.63.17 1.24.39 1.83.07.18.13.34.2.49a.8.8 0 0 1-.48 1.09l-3.8 1.24a.788.788 0 0 1-.94-.36c-.06-.11-.11-.22-.17-.33-.15-.31-.28-.62-.39-.92a9.594 9.594 0 0 1-.59-3.51c.02-1.23.28-2.4.79-3.52.5-1.12 1.25-2.15 2.25-3.09s2.28-1.7 3.84-2.27c1.62-.6 3.12-.89 4.52-.87 1.4.02 2.66.26 3.78.71 1.12.46 2.07 1.11 2.86 1.96.79.85 1.38 1.8 1.77 2.86.62 1.67.77 3.24.46 4.7s-.93 2.87-1.86 4.23l-1.26 1.85c-.37.5-.87 1.32-1.01 2.39-.01.11-.07.55-.02 1.13.04.44.12.83.22 1.15a.53.53 0 0 1-.33.64l-3.61 1.35Zm.87 6.56c-.34-.92-.31-1.82.09-2.72.4-.89 1.06-1.51 1.98-1.85.92-.34 1.83-.3 2.72.11.9.41 1.52 1.08 1.86 2 .34.92.3 1.82-.12 2.7-.42.88-1.09 1.49-2 1.83-.92.34-1.82.31-2.7-.09-.88-.4-1.49-1.06-1.83-1.98Z",
|
|
32
|
+
fill: "#C1C7D0"
|
|
33
|
+
}), (0, _react.jsx)("path", {
|
|
34
|
+
d: "m149.36 134.209-7.15-6.93-9.63 9.95 7.15 6.93c1.83 1.77 3.11 4.02 3.71 6.49.6 2.47 1.89 4.72 3.71 6.49l29.03 28.1c4.4 4.26 11.41 4.14 15.67-.25 4.26-4.4 4.14-11.41-.25-15.67l-29.03-28.1a13.457 13.457 0 0 0-6.61-3.5 13.65 13.65 0 0 1-6.6-3.51Z",
|
|
35
|
+
fill: "#CFD4DB"
|
|
36
|
+
}), (0, _react.jsx)("path", {
|
|
37
|
+
d: "M155.68 137.628c-2.37-.55-4.56-1.73-6.31-3.43l-2.18-2.11a6.92 6.92 0 0 0-9.79.16 6.92 6.92 0 0 0 .16 9.79l2.18 2.11c1.75 1.7 3 3.84 3.63 6.19 2.35-1.78 4.57-3.75 6.66-5.91 2.07-2.13 3.95-4.41 5.65-6.8Z",
|
|
38
|
+
fill: "#B3BAC5"
|
|
39
|
+
}), (0, _react.jsx)("path", {
|
|
40
|
+
d: "M101.95 156.619c-15.47.25-30.11-5.54-41.22-16.3-22.95-22.21-23.54-58.95-1.33-81.9 10.76-11.11 25.21-17.37 40.67-17.63 15.47-.25 30.11 5.54 41.22 16.3 11.12 10.76 17.37 25.21 17.63 40.67.25 15.47-5.54 30.11-16.3 41.22-10.75 11.13-25.2 17.39-40.67 17.64Zm-1.65-102c-11.78.19-22.77 4.96-30.97 13.42-16.91 17.47-16.46 45.44 1.01 62.35 8.46 8.19 19.61 12.6 31.39 12.41 11.78-.19 22.77-4.96 30.97-13.42 8.19-8.46 12.6-19.61 12.41-31.39-.19-11.78-4.96-22.77-13.42-30.97-8.47-8.18-19.61-12.59-31.39-12.4Z",
|
|
41
|
+
fill: "url(#".concat(id, "-b)")
|
|
42
|
+
}), (0, _react.jsx)("path", {
|
|
43
|
+
d: "m118.92 85.84-5.34-5.25c-.79-.77-2.05-.76-2.83.03l-9.79 9.97-9.97-9.79c-.79-.77-2.05-.76-2.83.03l-5.25 5.34c-.77.79-.76 2.05.03 2.83l9.97 9.79-9.79 9.97c-.77.79-.76 2.05.03 2.83l5.34 5.25c.79.77 2.05.76 2.83-.03l9.79-9.97 9.97 9.79c.79.77 2.05.76 2.83-.03l5.25-5.34c.77-.79.76-2.05-.03-2.83l-9.97-9.79 9.79-9.97c.77-.79.76-2.06-.03-2.83Z",
|
|
44
|
+
fill: "#C1C7D0"
|
|
45
|
+
})), (0, _react.jsx)("defs", null, (0, _react.jsx)("linearGradient", {
|
|
46
|
+
id: "".concat(id, "-b"),
|
|
47
|
+
x1: "60.062",
|
|
48
|
+
y1: "139.664",
|
|
49
|
+
x2: "141.969",
|
|
50
|
+
y2: "57.757",
|
|
51
|
+
gradientUnits: "userSpaceOnUse"
|
|
52
|
+
}, (0, _react.jsx)("stop", {
|
|
53
|
+
offset: ".557",
|
|
54
|
+
stopColor: "#C1C7D0"
|
|
55
|
+
}), (0, _react.jsx)("stop", {
|
|
56
|
+
offset: ".966",
|
|
57
|
+
stopColor: "#E9EBEF",
|
|
58
|
+
stopOpacity: ".5"
|
|
59
|
+
})), (0, _react.jsx)("clipPath", {
|
|
60
|
+
id: "".concat(id, "-a")
|
|
61
|
+
}, (0, _react.jsx)("path", {
|
|
62
|
+
fill: "#fff",
|
|
63
|
+
transform: "translate(0 .62)",
|
|
64
|
+
d: "M0 0h207.16v189.87H0z"
|
|
65
|
+
}))));
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
var _default = NoResultsSVG;
|
|
69
|
+
exports.default = _default;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.noResultsSVGStyles = void 0;
|
|
9
|
+
|
|
10
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
11
|
+
|
|
12
|
+
var _constants = require("@atlaskit/theme/constants");
|
|
13
|
+
|
|
14
|
+
var _react = require("@emotion/react");
|
|
15
|
+
|
|
16
|
+
var _templateObject;
|
|
17
|
+
|
|
18
|
+
var HEIGHT = 120;
|
|
19
|
+
var noResultsSVGStyles = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n height: ", "px;\n margin: 0 auto ", "px;\n display: block;\n"])), HEIGHT, (0, _constants.gridSize)() * 3);
|
|
20
|
+
exports.noResultsSVGStyles = noResultsSVGStyles;
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
|
|
10
|
+
var _react2 = require("@emotion/react");
|
|
11
|
+
|
|
12
|
+
var _reactIntlNext = require("react-intl-next");
|
|
13
|
+
|
|
14
|
+
var _transformTimeStamp = require("../../transformTimeStamp");
|
|
15
|
+
|
|
16
|
+
var _styled = require("./styled");
|
|
17
|
+
|
|
18
|
+
/** @jsx jsx */
|
|
19
|
+
var LinkSearchListItem = function LinkSearchListItem(_ref) {
|
|
20
|
+
var item = _ref.item,
|
|
21
|
+
selected = _ref.selected,
|
|
22
|
+
active = _ref.active,
|
|
23
|
+
id = _ref.id,
|
|
24
|
+
role = _ref.role,
|
|
25
|
+
intl = _ref.intl,
|
|
26
|
+
onSelect = _ref.onSelect,
|
|
27
|
+
onMouseEnter = _ref.onMouseEnter,
|
|
28
|
+
onMouseLeave = _ref.onMouseLeave;
|
|
29
|
+
|
|
30
|
+
var handleSelect = function handleSelect() {
|
|
31
|
+
return onSelect(item.objectId);
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
var handleMouseEnter = function handleMouseEnter() {
|
|
35
|
+
return onMouseEnter(item.objectId);
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
var handleMouseLeave = function handleMouseLeave() {
|
|
39
|
+
return onMouseLeave(item.objectId);
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
var container = item.container || null;
|
|
43
|
+
var date = (0, _transformTimeStamp.transformTimeStamp)(intl, item.lastViewedDate, item.lastUpdatedDate);
|
|
44
|
+
return (0, _react2.jsx)("div", {
|
|
45
|
+
css: (0, _styled.composeListItemStyles)(active, selected),
|
|
46
|
+
role: role,
|
|
47
|
+
id: id,
|
|
48
|
+
"aria-selected": selected,
|
|
49
|
+
"data-testid": "link-search-list-item",
|
|
50
|
+
onMouseEnter: handleMouseEnter,
|
|
51
|
+
onMouseLeave: handleMouseLeave,
|
|
52
|
+
onClick: handleSelect
|
|
53
|
+
}, (0, _react2.jsx)(ListItemIcon, {
|
|
54
|
+
item: item,
|
|
55
|
+
intl: intl
|
|
56
|
+
}), (0, _react2.jsx)("div", {
|
|
57
|
+
css: _styled.itemNameStyles
|
|
58
|
+
}, (0, _react2.jsx)("div", {
|
|
59
|
+
"data-testid": "link-search-list-item-title",
|
|
60
|
+
css: _styled.listItemNameStyles
|
|
61
|
+
}, item.name), (0, _react2.jsx)("div", {
|
|
62
|
+
"data-testid": "link-search-list-item-subtitle",
|
|
63
|
+
css: _styled.listItemContextStyles
|
|
64
|
+
}, container, container && date && (0, _react2.jsx)(_react.Fragment, null, "\xA0 \u2022\xA0 "), date && (0, _react2.jsx)(_react.Fragment, null, formatDate(date)))));
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
var _default = (0, _reactIntlNext.injectIntl)(LinkSearchListItem);
|
|
68
|
+
|
|
69
|
+
exports.default = _default;
|
|
70
|
+
|
|
71
|
+
var formatDate = function formatDate(date) {
|
|
72
|
+
return [date.pageAction, date.dateString, date.timeSince].filter(Boolean).join(' ');
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
var ListItemIcon = function ListItemIcon(props) {
|
|
76
|
+
var item = props.item,
|
|
77
|
+
intl = props.intl;
|
|
78
|
+
var icon = item.icon,
|
|
79
|
+
iconAlt = item.iconAlt;
|
|
80
|
+
|
|
81
|
+
if (!icon) {
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
var alt = typeof iconAlt === 'string' ? iconAlt : intl.formatMessage(iconAlt);
|
|
86
|
+
|
|
87
|
+
if (typeof icon !== 'string') {
|
|
88
|
+
var Glyph = icon;
|
|
89
|
+
return (0, _react2.jsx)("span", {
|
|
90
|
+
css: _styled.itemIconStyles
|
|
91
|
+
}, (0, _react2.jsx)(Glyph, {
|
|
92
|
+
alt: alt
|
|
93
|
+
}));
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
return (0, _react2.jsx)("span", {
|
|
97
|
+
css: _styled.itemIconStyles
|
|
98
|
+
}, (0, _react2.jsx)("img", {
|
|
99
|
+
src: icon,
|
|
100
|
+
alt: alt,
|
|
101
|
+
css: _styled.imgStyles
|
|
102
|
+
}));
|
|
103
|
+
};
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.relativeFontSizeToBase16 = exports.listItemNameStyles = exports.listItemContextStyles = exports.itemNameStyles = exports.itemIconStyles = exports.imgStyles = exports.composeListItemStyles = void 0;
|
|
9
|
+
|
|
10
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
11
|
+
|
|
12
|
+
var _tokens = require("@atlaskit/tokens");
|
|
13
|
+
|
|
14
|
+
var _react = require("@emotion/react");
|
|
15
|
+
|
|
16
|
+
var _colors = require("@atlaskit/theme/colors");
|
|
17
|
+
|
|
18
|
+
var _constants = require("@atlaskit/theme/constants");
|
|
19
|
+
|
|
20
|
+
var _theme = require("@atlaskit/theme");
|
|
21
|
+
|
|
22
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10;
|
|
23
|
+
|
|
24
|
+
var relativeFontSizeToBase16 = function relativeFontSizeToBase16(px) {
|
|
25
|
+
if (typeof px === 'string') {
|
|
26
|
+
px = parseInt(px);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
if (isNaN(px)) {
|
|
30
|
+
throw new Error("Invalid font size: '".concat(px, "'"));
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return "".concat(px / 16, "rem");
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
exports.relativeFontSizeToBase16 = relativeFontSizeToBase16;
|
|
37
|
+
var listItemBaseStyles = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n padding: ", "px ", "px;\n margin: 0 -", "px;\n cursor: pointer;\n"])), (0, _constants.gridSize)(), (0, _constants.gridSize)() * 2, (0, _constants.gridSize)() * 2);
|
|
38
|
+
var listItemBoxShadow = (0, _react.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n box-shadow: inset 2px 0px 0px ", ";\n"])), (0, _tokens.token)('color.border.selected', _colors.B400));
|
|
39
|
+
var listItemActive = (0, _react.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n background-color: ", ";\n"])), (0, _tokens.token)('color.background.neutral.subtle.hovered', _colors.N20));
|
|
40
|
+
var listItemSelected = (0, _react.css)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n background-color: ", ";\n"])), (0, _tokens.token)('color.background.selected', _colors.B50));
|
|
41
|
+
|
|
42
|
+
var composeListItemStyles = function composeListItemStyles() {
|
|
43
|
+
var active = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
44
|
+
var selected = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
45
|
+
var hasShadow = active || selected;
|
|
46
|
+
return (0, _react.css)(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["\n ", ";\n ", ";\n ", ";\n ", ";\n "])), listItemBaseStyles, active && listItemActive, selected && listItemSelected, hasShadow && listItemBoxShadow);
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
exports.composeListItemStyles = composeListItemStyles;
|
|
50
|
+
var itemNameStyles = (0, _react.css)(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2.default)(["\n overflow: hidden;\n"])));
|
|
51
|
+
exports.itemNameStyles = itemNameStyles;
|
|
52
|
+
var listItemNameStyles = (0, _react.css)(_templateObject7 || (_templateObject7 = (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));
|
|
53
|
+
exports.listItemNameStyles = listItemNameStyles;
|
|
54
|
+
var listItemContextStyles = (0, _react.css)(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2.default)(["\n color: ", ";\n font-size: ", ";\n line-height: ", "px;\n"])), (0, _tokens.token)('color.text', _colors.N300), relativeFontSizeToBase16((0, _theme.fontSizeSmall)()), (0, _theme.fontSize)());
|
|
55
|
+
exports.listItemContextStyles = listItemContextStyles;
|
|
56
|
+
var itemIconStyles = (0, _react.css)(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2.default)(["\n min-width: ", "px;\n margin-top: 3px;\n margin-right: 12px;\n"])), (0, _constants.gridSize)() * 2);
|
|
57
|
+
exports.itemIconStyles = itemIconStyles;
|
|
58
|
+
var imgStyles = (0, _react.css)(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2.default)(["\n max-width: ", "px;\n"])), (0, _constants.gridSize)() * 2);
|
|
59
|
+
exports.imgStyles = imgStyles;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.searchIconStyles = exports.recentListStyles = exports.listTitleStyles = exports.containerStyles = void 0;
|
|
9
|
+
|
|
10
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
11
|
+
|
|
12
|
+
var _tokens = require("@atlaskit/tokens");
|
|
13
|
+
|
|
14
|
+
var _react = require("@emotion/react");
|
|
15
|
+
|
|
16
|
+
var _colors = require("@atlaskit/theme/colors");
|
|
17
|
+
|
|
18
|
+
var _theme = require("@atlaskit/theme");
|
|
19
|
+
|
|
20
|
+
var _constants = require("@atlaskit/theme/constants");
|
|
21
|
+
|
|
22
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4;
|
|
23
|
+
|
|
24
|
+
var LINK_PICKER_WIDTH_IN_PX = 342;
|
|
25
|
+
var recentListStyles = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n width: ", "px;\n"])), LINK_PICKER_WIDTH_IN_PX);
|
|
26
|
+
exports.recentListStyles = recentListStyles;
|
|
27
|
+
var containerStyles = (0, _react.css)(_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);
|
|
28
|
+
exports.containerStyles = containerStyles;
|
|
29
|
+
var searchIconStyles = (0, _react.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n margin-left: ", "px;\n color: ", ";\n cursor: default;\n"])), (0, _constants.gridSize)() / 2, (0, _tokens.token)('color.icon', _colors.N500));
|
|
30
|
+
exports.searchIconStyles = searchIconStyles;
|
|
31
|
+
var listTitleStyles = (0, _react.css)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n ", "\n text-transform: uppercase;\n margin-bottom: ", "px;\n"])), _theme.typography.h100(), (0, _constants.gridSize)() / 2);
|
|
32
|
+
exports.listTitleStyles = listTitleStyles;
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
+
|
|
12
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
13
|
+
|
|
14
|
+
var _react = require("react");
|
|
15
|
+
|
|
16
|
+
var _react2 = require("@emotion/react");
|
|
17
|
+
|
|
18
|
+
var _form = require("@atlaskit/form");
|
|
19
|
+
|
|
20
|
+
var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
|
|
21
|
+
|
|
22
|
+
var _textfield = _interopRequireDefault(require("@atlaskit/textfield"));
|
|
23
|
+
|
|
24
|
+
var _selectClear = _interopRequireDefault(require("@atlaskit/icon/glyph/select-clear"));
|
|
25
|
+
|
|
26
|
+
var _utils = require("../../utils");
|
|
27
|
+
|
|
28
|
+
var _styled = require("./styled");
|
|
29
|
+
|
|
30
|
+
var _excluded = ["name", "label", "autoFocus", "onSubmit", "onRedo", "onUndo", "onChange", "onKeyDown", "onClear", "clearLabel", "error"];
|
|
31
|
+
|
|
32
|
+
var PanelTextInput = function PanelTextInput(props) {
|
|
33
|
+
var name = props.name,
|
|
34
|
+
label = props.label,
|
|
35
|
+
autoFocus = props.autoFocus,
|
|
36
|
+
onSubmit = props.onSubmit,
|
|
37
|
+
onRedo = props.onRedo,
|
|
38
|
+
onUndo = props.onUndo,
|
|
39
|
+
onChange = props.onChange,
|
|
40
|
+
onKeyDown = props.onKeyDown,
|
|
41
|
+
onClear = props.onClear,
|
|
42
|
+
clearLabel = props.clearLabel,
|
|
43
|
+
error = props.error,
|
|
44
|
+
restProps = (0, _objectWithoutProperties2.default)(props, _excluded);
|
|
45
|
+
var inputRef = (0, _react.useRef)(null);
|
|
46
|
+
var handleRef = (0, _react.useCallback)(function (input) {
|
|
47
|
+
if (input) {
|
|
48
|
+
inputRef.current = input;
|
|
49
|
+
|
|
50
|
+
if (autoFocus) {
|
|
51
|
+
// Need this to prevent jumping when we render TextInput inside Portal @see ED-2992
|
|
52
|
+
input.focus({
|
|
53
|
+
preventScroll: true
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}, [autoFocus]);
|
|
58
|
+
var handleChange = (0, _react.useCallback)(function (e) {
|
|
59
|
+
onChange(e.currentTarget.value);
|
|
60
|
+
}, [onChange]);
|
|
61
|
+
var handleKeydown = (0, _react.useCallback)(function (e) {
|
|
62
|
+
var value = e.currentTarget.value;
|
|
63
|
+
|
|
64
|
+
if (e.keyCode === 13 && onSubmit) {
|
|
65
|
+
e.preventDefault(); // Prevent from submitting if an editor is inside a form.
|
|
66
|
+
|
|
67
|
+
onSubmit(value);
|
|
68
|
+
} else if (typeof onUndo === 'function' && (0, _utils.isUndoEvent)(e)) {
|
|
69
|
+
e.preventDefault();
|
|
70
|
+
onUndo();
|
|
71
|
+
} else if (typeof onRedo === 'function' && (0, _utils.isRedoEvent)(e)) {
|
|
72
|
+
e.preventDefault();
|
|
73
|
+
onRedo();
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
if (onKeyDown) {
|
|
77
|
+
onKeyDown(e);
|
|
78
|
+
}
|
|
79
|
+
}, [onSubmit, onUndo, onRedo, onKeyDown]);
|
|
80
|
+
var handleClear = (0, _react.useCallback)(function () {
|
|
81
|
+
if (inputRef.current && onClear) {
|
|
82
|
+
inputRef.current.focus();
|
|
83
|
+
onClear();
|
|
84
|
+
}
|
|
85
|
+
}, [onClear]);
|
|
86
|
+
var clearText = restProps.value !== '' && (0, _react2.jsx)(_tooltip.default, {
|
|
87
|
+
content: clearLabel
|
|
88
|
+
}, (0, _react2.jsx)("button", {
|
|
89
|
+
css: _styled.clearTextButtonStyles,
|
|
90
|
+
onClick: handleClear,
|
|
91
|
+
"data-testid": "clear-text"
|
|
92
|
+
}, (0, _react2.jsx)(_selectClear.default, {
|
|
93
|
+
size: "medium",
|
|
94
|
+
label: clearLabel || ''
|
|
95
|
+
})));
|
|
96
|
+
return (0, _react2.jsx)("div", {
|
|
97
|
+
css: _styled.fieldStyles
|
|
98
|
+
}, (0, _react2.jsx)(_form.Field, {
|
|
99
|
+
label: label,
|
|
100
|
+
name: name
|
|
101
|
+
}, function (_ref) {
|
|
102
|
+
var fieldProps = _ref.fieldProps;
|
|
103
|
+
return (0, _react2.jsx)(_react.Fragment, null, (0, _react2.jsx)(_textfield.default, (0, _extends2.default)({}, fieldProps, restProps, {
|
|
104
|
+
onKeyDown: handleKeydown,
|
|
105
|
+
onChange: handleChange,
|
|
106
|
+
ref: handleRef,
|
|
107
|
+
elemAfterInput: clearText,
|
|
108
|
+
isInvalid: !!error
|
|
109
|
+
})), error && (0, _react2.jsx)(_form.ErrorMessage, {
|
|
110
|
+
testId: "link-error"
|
|
111
|
+
}, error));
|
|
112
|
+
}));
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
var _default = PanelTextInput;
|
|
116
|
+
exports.default = _default;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.fieldStyles = exports.clearTextButtonStyles = void 0;
|
|
9
|
+
|
|
10
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
11
|
+
|
|
12
|
+
var _tokens = require("@atlaskit/tokens");
|
|
13
|
+
|
|
14
|
+
var _react = require("@emotion/react");
|
|
15
|
+
|
|
16
|
+
var _colors = require("@atlaskit/theme/colors");
|
|
17
|
+
|
|
18
|
+
var _constants = require("@atlaskit/theme/constants");
|
|
19
|
+
|
|
20
|
+
var _templateObject, _templateObject2;
|
|
21
|
+
|
|
22
|
+
var clearTextButtonStyles = (0, _react.css)(_templateObject || (_templateObject = (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));
|
|
23
|
+
exports.clearTextButtonStyles = clearTextButtonStyles;
|
|
24
|
+
var fieldStyles = (0, _react.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n margin-bottom: ", "px;\n"])), (0, _constants.gridSize)() * 2);
|
|
25
|
+
exports.fieldStyles = fieldStyles;
|