@ndla/safelink 2.0.7 → 2.1.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.
- package/es/SafeLink.js +6 -3
- package/lib/SafeLink.d.ts +3 -2
- package/lib/SafeLink.js +6 -3
- package/package.json +3 -3
package/es/SafeLink.js
CHANGED
|
@@ -39,7 +39,7 @@ var LaunchIcon = /*#__PURE__*/_styled(Launch, {
|
|
|
39
39
|
} : {
|
|
40
40
|
name: "vum9tn",
|
|
41
41
|
styles: "margin-left:6px;height:auto;width:auto;margin-top:1px;",
|
|
42
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
42
|
+
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlNhZmVMaW5rLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFvQmlDIiwiZmlsZSI6IlNhZmVMaW5rLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LXByZXNlbnQsIE5ETEEuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgR1BMdjMgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqXG4gKi9cblxuaW1wb3J0IFJlYWN0LCB7IEhUTUxBdHRyaWJ1dGVzLCBNdXRhYmxlUmVmT2JqZWN0LCBSZWFjdE5vZGUsIHVzZUNvbnRleHQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBMaW5rLCBMaW5rUHJvcHMgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IExhdW5jaCB9IGZyb20gJ0BuZGxhL2ljb25zL2NvbW1vbic7XG5pbXBvcnQgaXNTdHJpbmcgZnJvbSAnbG9kYXNoL2lzU3RyaW5nJztcbmltcG9ydCBNaXNzaW5nUm91dGVyQ29udGV4dCBmcm9tICcuL01pc3NpbmdSb3V0ZXJDb250ZXh0JztcblxuY29uc3QgaXNFeHRlcm5hbExpbmsgPSAodG8/OiBMaW5rUHJvcHNbJ3RvJ10pID0+XG4gIHRvICYmIGlzU3RyaW5nKHRvKSAmJiAodG8uc3RhcnRzV2l0aCgnaHR0cHM6Ly8nKSB8fCB0by5zdGFydHNXaXRoKCdodHRwOi8vJykpO1xuXG5leHBvcnQgY29uc3QgaXNPbGROZGxhTGluayA9ICh0bz86IExpbmtQcm9wc1sndG8nXSkgPT4gdG8gJiYgaXNTdHJpbmcodG8pICYmIHRvLm1hdGNoKC8oLiopXFwvP25vZGVcXC8oXFxkKykuKi8pICE9PSBudWxsO1xuXG5jb25zdCBMYXVuY2hJY29uID0gc3R5bGVkKExhdW5jaClgXG4gIG1hcmdpbi1sZWZ0OiA2cHg7XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IGF1dG87XG4gIG1hcmdpbi10b3A6IDFweDtcbmA7XG5cbnR5cGUgUHJvcHMgPSB7XG4gIHNob3dOZXdXaW5kb3dJY29uPzogYm9vbGVhbjtcbiAgcmVmPzogTXV0YWJsZVJlZk9iamVjdDxIVE1MQW5jaG9yRWxlbWVudCB8IG51bGw+O1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbn07XG5cbmV4cG9ydCB0eXBlIFNhZmVMaW5rUHJvcHMgPSBQcm9wcyAmIExpbmtQcm9wcyAmIEhUTUxBdHRyaWJ1dGVzPEhUTUxFbGVtZW50PjtcblxuLy8gRmFsbGJhY2sgdG8gbm9ybWFsIGxpbmsgaWYgYXBwIGlzIG1pc3NpbmcgUm91dGVyQ29udGV4dCwgbGluayBpcyBleHRlcm5hbCBvciBpcyBvbGQgbmRsYSBsaW5rXG5jb25zdCBTYWZlTGluayA9ICh7IHRvLCByZXBsYWNlLCBjaGlsZHJlbiwgc2hvd05ld1dpbmRvd0ljb24sIHRhYkluZGV4LCByZWYsIC4uLnJlc3QgfTogU2FmZUxpbmtQcm9wcykgPT4ge1xuICBjb25zdCBpc01pc3NpbmdSb3V0ZXJDb250ZXh0ID0gdXNlQ29udGV4dChNaXNzaW5nUm91dGVyQ29udGV4dCk7XG5cbiAgaWYgKGlzTWlzc2luZ1JvdXRlckNvbnRleHQgfHwgaXNFeHRlcm5hbExpbmsodG8pIHx8IGlzT2xkTmRsYUxpbmsodG8pKSB7XG4gICAgY29uc3QgaHJlZiA9IHR5cGVvZiB0byA9PT0gJ3N0cmluZycgPyB0byA6ICcjJztcbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPGEgaHJlZj17aHJlZn0gcmVmPXtyZWZ9IHsuLi5yZXN0fT5cbiAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAge3Nob3dOZXdXaW5kb3dJY29uICYmIDxMYXVuY2hJY29uIHN0eWxlPXt7IHZlcnRpY2FsQWxpZ246ICd0ZXh0LXRvcCcgfX0gLz59XG4gICAgICAgIDwvYT5cbiAgICAgIDwvPlxuICAgICk7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIC8vIFJSNiBsaW5rIGltbWVkaWF0ZWx5IGZhaWxzIGlmIHRvIGlzIHNvbWVob3cgdW5kZWZpbmVkLCBzbyB3ZSBwcm92aWRlIGFuIGVtcHR5IGZhbGxiYWNrIHRvIHJlY292ZXIuXG4gICAgPExpbmsgcmVmPXtyZWZ9IHRhYkluZGV4PXt0YWJJbmRleCA/PyAwfSB0bz17dG8gPz8gJyd9IHJlcGxhY2U9e3JlcGxhY2V9IHsuLi5yZXN0fT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICAgIHtzaG93TmV3V2luZG93SWNvbiAmJiA8TGF1bmNoSWNvbiBzdHlsZT17eyB2ZXJ0aWNhbEFsaWduOiAndGV4dC10b3AnIH19IC8+fVxuICAgIDwvTGluaz5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFNhZmVMaW5rO1xuIl19 */",
|
|
43
43
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
44
44
|
});
|
|
45
45
|
|
|
@@ -50,14 +50,16 @@ var SafeLink = function SafeLink(_ref) {
|
|
|
50
50
|
children = _ref.children,
|
|
51
51
|
showNewWindowIcon = _ref.showNewWindowIcon,
|
|
52
52
|
tabIndex = _ref.tabIndex,
|
|
53
|
-
|
|
53
|
+
ref = _ref.ref,
|
|
54
|
+
rest = _objectWithoutProperties(_ref, ["to", "replace", "children", "showNewWindowIcon", "tabIndex", "ref"]);
|
|
54
55
|
|
|
55
56
|
var isMissingRouterContext = useContext(MissingRouterContext);
|
|
56
57
|
|
|
57
58
|
if (isMissingRouterContext || isExternalLink(to) || isOldNdlaLink(to)) {
|
|
58
59
|
var href = typeof to === 'string' ? to : '#';
|
|
59
60
|
return ___EmotionJSX(React.Fragment, null, ___EmotionJSX("a", _extends({
|
|
60
|
-
href: href
|
|
61
|
+
href: href,
|
|
62
|
+
ref: ref
|
|
61
63
|
}, rest), children, showNewWindowIcon && ___EmotionJSX(LaunchIcon, {
|
|
62
64
|
style: {
|
|
63
65
|
verticalAlign: 'text-top'
|
|
@@ -67,6 +69,7 @@ var SafeLink = function SafeLink(_ref) {
|
|
|
67
69
|
|
|
68
70
|
return (// RR6 link immediately fails if to is somehow undefined, so we provide an empty fallback to recover.
|
|
69
71
|
___EmotionJSX(Link, _extends({
|
|
72
|
+
ref: ref,
|
|
70
73
|
tabIndex: tabIndex !== null && tabIndex !== void 0 ? tabIndex : 0,
|
|
71
74
|
to: to !== null && to !== void 0 ? to : '',
|
|
72
75
|
replace: replace
|
package/lib/SafeLink.d.ts
CHANGED
|
@@ -5,13 +5,14 @@
|
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*
|
|
7
7
|
*/
|
|
8
|
-
import { HTMLAttributes, ReactNode } from 'react';
|
|
8
|
+
import { HTMLAttributes, MutableRefObject, ReactNode } from 'react';
|
|
9
9
|
import { LinkProps } from 'react-router-dom';
|
|
10
10
|
export declare const isOldNdlaLink: (to?: string | Partial<import("history").Path> | undefined) => boolean | "" | undefined;
|
|
11
11
|
declare type Props = {
|
|
12
12
|
showNewWindowIcon?: boolean;
|
|
13
|
+
ref?: MutableRefObject<HTMLAnchorElement | null>;
|
|
13
14
|
children?: ReactNode;
|
|
14
15
|
};
|
|
15
16
|
export declare type SafeLinkProps = Props & LinkProps & HTMLAttributes<HTMLElement>;
|
|
16
|
-
declare const SafeLink: ({ to, replace, children, showNewWindowIcon, tabIndex, ...rest }: SafeLinkProps) => JSX.Element;
|
|
17
|
+
declare const SafeLink: ({ to, replace, children, showNewWindowIcon, tabIndex, ref, ...rest }: SafeLinkProps) => JSX.Element;
|
|
17
18
|
export default SafeLink;
|
package/lib/SafeLink.js
CHANGED
|
@@ -53,7 +53,7 @@ var LaunchIcon = ( /*#__PURE__*/0, _styledBase["default"])(_common.Launch, {
|
|
|
53
53
|
} : {
|
|
54
54
|
name: "vum9tn",
|
|
55
55
|
styles: "margin-left:6px;height:auto;width:auto;margin-top:1px;",
|
|
56
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
56
|
+
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlNhZmVMaW5rLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFvQmlDIiwiZmlsZSI6IlNhZmVMaW5rLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LXByZXNlbnQsIE5ETEEuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgR1BMdjMgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqXG4gKi9cblxuaW1wb3J0IFJlYWN0LCB7IEhUTUxBdHRyaWJ1dGVzLCBNdXRhYmxlUmVmT2JqZWN0LCBSZWFjdE5vZGUsIHVzZUNvbnRleHQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBMaW5rLCBMaW5rUHJvcHMgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IExhdW5jaCB9IGZyb20gJ0BuZGxhL2ljb25zL2NvbW1vbic7XG5pbXBvcnQgaXNTdHJpbmcgZnJvbSAnbG9kYXNoL2lzU3RyaW5nJztcbmltcG9ydCBNaXNzaW5nUm91dGVyQ29udGV4dCBmcm9tICcuL01pc3NpbmdSb3V0ZXJDb250ZXh0JztcblxuY29uc3QgaXNFeHRlcm5hbExpbmsgPSAodG8/OiBMaW5rUHJvcHNbJ3RvJ10pID0+XG4gIHRvICYmIGlzU3RyaW5nKHRvKSAmJiAodG8uc3RhcnRzV2l0aCgnaHR0cHM6Ly8nKSB8fCB0by5zdGFydHNXaXRoKCdodHRwOi8vJykpO1xuXG5leHBvcnQgY29uc3QgaXNPbGROZGxhTGluayA9ICh0bz86IExpbmtQcm9wc1sndG8nXSkgPT4gdG8gJiYgaXNTdHJpbmcodG8pICYmIHRvLm1hdGNoKC8oLiopXFwvP25vZGVcXC8oXFxkKykuKi8pICE9PSBudWxsO1xuXG5jb25zdCBMYXVuY2hJY29uID0gc3R5bGVkKExhdW5jaClgXG4gIG1hcmdpbi1sZWZ0OiA2cHg7XG4gIGhlaWdodDogYXV0bztcbiAgd2lkdGg6IGF1dG87XG4gIG1hcmdpbi10b3A6IDFweDtcbmA7XG5cbnR5cGUgUHJvcHMgPSB7XG4gIHNob3dOZXdXaW5kb3dJY29uPzogYm9vbGVhbjtcbiAgcmVmPzogTXV0YWJsZVJlZk9iamVjdDxIVE1MQW5jaG9yRWxlbWVudCB8IG51bGw+O1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbn07XG5cbmV4cG9ydCB0eXBlIFNhZmVMaW5rUHJvcHMgPSBQcm9wcyAmIExpbmtQcm9wcyAmIEhUTUxBdHRyaWJ1dGVzPEhUTUxFbGVtZW50PjtcblxuLy8gRmFsbGJhY2sgdG8gbm9ybWFsIGxpbmsgaWYgYXBwIGlzIG1pc3NpbmcgUm91dGVyQ29udGV4dCwgbGluayBpcyBleHRlcm5hbCBvciBpcyBvbGQgbmRsYSBsaW5rXG5jb25zdCBTYWZlTGluayA9ICh7IHRvLCByZXBsYWNlLCBjaGlsZHJlbiwgc2hvd05ld1dpbmRvd0ljb24sIHRhYkluZGV4LCByZWYsIC4uLnJlc3QgfTogU2FmZUxpbmtQcm9wcykgPT4ge1xuICBjb25zdCBpc01pc3NpbmdSb3V0ZXJDb250ZXh0ID0gdXNlQ29udGV4dChNaXNzaW5nUm91dGVyQ29udGV4dCk7XG5cbiAgaWYgKGlzTWlzc2luZ1JvdXRlckNvbnRleHQgfHwgaXNFeHRlcm5hbExpbmsodG8pIHx8IGlzT2xkTmRsYUxpbmsodG8pKSB7XG4gICAgY29uc3QgaHJlZiA9IHR5cGVvZiB0byA9PT0gJ3N0cmluZycgPyB0byA6ICcjJztcbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPGEgaHJlZj17aHJlZn0gcmVmPXtyZWZ9IHsuLi5yZXN0fT5cbiAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAge3Nob3dOZXdXaW5kb3dJY29uICYmIDxMYXVuY2hJY29uIHN0eWxlPXt7IHZlcnRpY2FsQWxpZ246ICd0ZXh0LXRvcCcgfX0gLz59XG4gICAgICAgIDwvYT5cbiAgICAgIDwvPlxuICAgICk7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIC8vIFJSNiBsaW5rIGltbWVkaWF0ZWx5IGZhaWxzIGlmIHRvIGlzIHNvbWVob3cgdW5kZWZpbmVkLCBzbyB3ZSBwcm92aWRlIGFuIGVtcHR5IGZhbGxiYWNrIHRvIHJlY292ZXIuXG4gICAgPExpbmsgcmVmPXtyZWZ9IHRhYkluZGV4PXt0YWJJbmRleCA/PyAwfSB0bz17dG8gPz8gJyd9IHJlcGxhY2U9e3JlcGxhY2V9IHsuLi5yZXN0fT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICAgIHtzaG93TmV3V2luZG93SWNvbiAmJiA8TGF1bmNoSWNvbiBzdHlsZT17eyB2ZXJ0aWNhbEFsaWduOiAndGV4dC10b3AnIH19IC8+fVxuICAgIDwvTGluaz5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFNhZmVMaW5rO1xuIl19 */",
|
|
57
57
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
58
58
|
});
|
|
59
59
|
|
|
@@ -64,14 +64,16 @@ var SafeLink = function SafeLink(_ref) {
|
|
|
64
64
|
children = _ref.children,
|
|
65
65
|
showNewWindowIcon = _ref.showNewWindowIcon,
|
|
66
66
|
tabIndex = _ref.tabIndex,
|
|
67
|
-
|
|
67
|
+
ref = _ref.ref,
|
|
68
|
+
rest = _objectWithoutProperties(_ref, ["to", "replace", "children", "showNewWindowIcon", "tabIndex", "ref"]);
|
|
68
69
|
|
|
69
70
|
var isMissingRouterContext = (0, _react.useContext)(_MissingRouterContext["default"]);
|
|
70
71
|
|
|
71
72
|
if (isMissingRouterContext || isExternalLink(to) || isOldNdlaLink(to)) {
|
|
72
73
|
var href = typeof to === 'string' ? to : '#';
|
|
73
74
|
return (0, _core.jsx)(_react["default"].Fragment, null, (0, _core.jsx)("a", _extends({
|
|
74
|
-
href: href
|
|
75
|
+
href: href,
|
|
76
|
+
ref: ref
|
|
75
77
|
}, rest), children, showNewWindowIcon && (0, _core.jsx)(LaunchIcon, {
|
|
76
78
|
style: {
|
|
77
79
|
verticalAlign: 'text-top'
|
|
@@ -81,6 +83,7 @@ var SafeLink = function SafeLink(_ref) {
|
|
|
81
83
|
|
|
82
84
|
return (// RR6 link immediately fails if to is somehow undefined, so we provide an empty fallback to recover.
|
|
83
85
|
(0, _core.jsx)(_reactRouterDom.Link, _extends({
|
|
86
|
+
ref: ref,
|
|
84
87
|
tabIndex: tabIndex !== null && tabIndex !== void 0 ? tabIndex : 0,
|
|
85
88
|
to: to !== null && to !== void 0 ? to : '',
|
|
86
89
|
replace: replace
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ndla/safelink",
|
|
3
|
-
"version": "2.0
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"description": "SafeLink component for NDLA",
|
|
5
5
|
"license": "GPL-3.0",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"es"
|
|
27
27
|
],
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@ndla/button": "^
|
|
29
|
+
"@ndla/button": "^3.0.0",
|
|
30
30
|
"@ndla/icons": "^1.10.0"
|
|
31
31
|
},
|
|
32
32
|
"peerDependencies": {
|
|
@@ -38,5 +38,5 @@
|
|
|
38
38
|
"publishConfig": {
|
|
39
39
|
"access": "public"
|
|
40
40
|
},
|
|
41
|
-
"gitHead": "
|
|
41
|
+
"gitHead": "8c51904170c455fc66f1c624b02829efe15c1482"
|
|
42
42
|
}
|