@ndla/safelink 3.0.9 → 3.0.11
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/MissingRouterContext.js +1 -0
- package/es/SafeLink.js +15 -25
- package/es/SafeLinkButton.js +20 -28
- package/es/index.js +1 -0
- package/lib/MissingRouterContext.js +1 -2
- package/lib/SafeLink.js +17 -37
- package/lib/SafeLinkButton.js +19 -33
- package/lib/index.js +0 -5
- package/package.json +3 -3
package/es/SafeLink.js
CHANGED
|
@@ -1,19 +1,11 @@
|
|
|
1
1
|
import _styled from "@emotion/styled/base";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
6
|
-
|
|
7
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
8
|
-
|
|
2
|
+
var _excluded = ["to", "replace", "children", "showNewWindowIcon", "tabIndex", "asAnchor"];
|
|
3
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
4
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
9
5
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
10
|
-
|
|
11
6
|
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
12
|
-
|
|
13
7
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
14
|
-
|
|
15
8
|
function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
|
16
|
-
|
|
17
9
|
/**
|
|
18
10
|
* Copyright (c) 2019-present, NDLA.
|
|
19
11
|
*
|
|
@@ -21,20 +13,20 @@ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringif
|
|
|
21
13
|
* LICENSE file in the root directory of this source tree.
|
|
22
14
|
*
|
|
23
15
|
*/
|
|
16
|
+
|
|
24
17
|
import React, { forwardRef, useContext } from 'react';
|
|
25
18
|
import { Link } from 'react-router-dom';
|
|
26
19
|
import { Launch } from '@ndla/icons/common';
|
|
27
20
|
import { isString } from 'lodash';
|
|
28
21
|
import MissingRouterContext from './MissingRouterContext';
|
|
29
|
-
|
|
22
|
+
import { jsx as _jsx } from "@emotion/react/jsx-runtime";
|
|
23
|
+
import { jsxs as _jsxs } from "@emotion/react/jsx-runtime";
|
|
30
24
|
var isExternalLink = function isExternalLink(to) {
|
|
31
25
|
return to && isString(to) && (to.startsWith('https://') || to.startsWith('http://'));
|
|
32
26
|
};
|
|
33
|
-
|
|
34
27
|
export var isOldNdlaLink = function isOldNdlaLink(to) {
|
|
35
28
|
return to && isString(to) && to.match(/(.*)\/?node\/(\d+).*/) !== null;
|
|
36
29
|
};
|
|
37
|
-
|
|
38
30
|
var LaunchIcon = /*#__PURE__*/_styled(Launch, {
|
|
39
31
|
target: "e2rl38a0",
|
|
40
32
|
label: "LaunchIcon"
|
|
@@ -47,19 +39,17 @@ var LaunchIcon = /*#__PURE__*/_styled(Launch, {
|
|
|
47
39
|
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlNhZmVMaW5rLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFvQmlDIiwiZmlsZSI6IlNhZmVMaW5rLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDE5LXByZXNlbnQsIE5ETEEuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgR1BMdjMgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqXG4gKi9cblxuaW1wb3J0IFJlYWN0LCB7IGZvcndhcmRSZWYsIEhUTUxBdHRyaWJ1dGVzLCBNdXRhYmxlUmVmT2JqZWN0LCBSZWFjdE5vZGUsIHVzZUNvbnRleHQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBMaW5rLCBMaW5rUHJvcHMgfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IExhdW5jaCB9IGZyb20gJ0BuZGxhL2ljb25zL2NvbW1vbic7XG5pbXBvcnQgeyBpc1N0cmluZyB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgTWlzc2luZ1JvdXRlckNvbnRleHQgZnJvbSAnLi9NaXNzaW5nUm91dGVyQ29udGV4dCc7XG5cbmNvbnN0IGlzRXh0ZXJuYWxMaW5rID0gKHRvPzogTGlua1Byb3BzWyd0byddKSA9PlxuICB0byAmJiBpc1N0cmluZyh0bykgJiYgKHRvLnN0YXJ0c1dpdGgoJ2h0dHBzOi8vJykgfHwgdG8uc3RhcnRzV2l0aCgnaHR0cDovLycpKTtcblxuZXhwb3J0IGNvbnN0IGlzT2xkTmRsYUxpbmsgPSAodG8/OiBMaW5rUHJvcHNbJ3RvJ10pID0+IHRvICYmIGlzU3RyaW5nKHRvKSAmJiB0by5tYXRjaCgvKC4qKVxcLz9ub2RlXFwvKFxcZCspLiovKSAhPT0gbnVsbDtcblxuY29uc3QgTGF1bmNoSWNvbiA9IHN0eWxlZChMYXVuY2gpYFxuICBtYXJnaW4tbGVmdDogNnB4O1xuICBoZWlnaHQ6IGF1dG87XG4gIHdpZHRoOiBhdXRvO1xuICBtYXJnaW4tdG9wOiAxcHg7XG5gO1xuXG50eXBlIFByb3BzID0ge1xuICBzaG93TmV3V2luZG93SWNvbj86IGJvb2xlYW47XG4gIHJlZj86IE11dGFibGVSZWZPYmplY3Q8SFRNTEFuY2hvckVsZW1lbnQgfCBudWxsPjtcbiAgYXNBbmNob3I/OiBib29sZWFuO1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbn07XG5cbmV4cG9ydCB0eXBlIFNhZmVMaW5rUHJvcHMgPSBQcm9wcyAmIExpbmtQcm9wcyAmIEhUTUxBdHRyaWJ1dGVzPEhUTUxFbGVtZW50PjtcblxuLy8gRmFsbGJhY2sgdG8gbm9ybWFsIGxpbmsgaWYgYXBwIGlzIG1pc3NpbmcgUm91dGVyQ29udGV4dCwgbGluayBpcyBleHRlcm5hbCBvciBpcyBvbGQgbmRsYSBsaW5rXG5cbmNvbnN0IFNhZmVMaW5rID0gZm9yd2FyZFJlZjxIVE1MQW5jaG9yRWxlbWVudCwgU2FmZUxpbmtQcm9wcz4oXG4gICh7IHRvLCByZXBsYWNlLCBjaGlsZHJlbiwgc2hvd05ld1dpbmRvd0ljb24sIHRhYkluZGV4LCBhc0FuY2hvciwgLi4ucmVzdCB9LCByZWYpID0+IHtcbiAgICBjb25zdCBpc01pc3NpbmdSb3V0ZXJDb250ZXh0ID0gdXNlQ29udGV4dChNaXNzaW5nUm91dGVyQ29udGV4dCk7XG5cbiAgICBpZiAoaXNNaXNzaW5nUm91dGVyQ29udGV4dCB8fCBpc0V4dGVybmFsTGluayh0bykgfHwgaXNPbGROZGxhTGluayh0bykgfHwgYXNBbmNob3IpIHtcbiAgICAgIGNvbnN0IGhyZWYgPSB0eXBlb2YgdG8gPT09ICdzdHJpbmcnID8gdG8gOiAnIyc7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8YSBocmVmPXtocmVmfSByZWY9e3JlZn0gey4uLnJlc3R9PlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICB7c2hvd05ld1dpbmRvd0ljb24gJiYgPExhdW5jaEljb24gc3R5bGU9e3sgdmVydGljYWxBbGlnbjogJ3RleHQtdG9wJyB9fSAvPn1cbiAgICAgICAgPC9hPlxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgLy8gUlI2IGxpbmsgaW1tZWRpYXRlbHkgZmFpbHMgaWYgdG8gaXMgc29tZWhvdyB1bmRlZmluZWQsIHNvIHdlIHByb3ZpZGUgYW4gZW1wdHkgZmFsbGJhY2sgdG8gcmVjb3Zlci5cbiAgICAgIDxMaW5rIHJlZj17cmVmfSB0YWJJbmRleD17dGFiSW5kZXggPz8gMH0gdG89e3RvID8/ICcnfSByZXBsYWNlPXtyZXBsYWNlfSB7Li4ucmVzdH0+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAge3Nob3dOZXdXaW5kb3dJY29uICYmIDxMYXVuY2hJY29uIHN0eWxlPXt7IHZlcnRpY2FsQWxpZ246ICd0ZXh0LXRvcCcgfX0gLz59XG4gICAgICA8L0xpbms+XG4gICAgKTtcbiAgfSxcbik7XG5cbmV4cG9ydCBkZWZhdWx0IFNhZmVMaW5rO1xuIl19 */",
|
|
48
40
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
49
41
|
});
|
|
50
|
-
|
|
51
42
|
// Fallback to normal link if app is missing RouterContext, link is external or is old ndla link
|
|
43
|
+
|
|
52
44
|
var SafeLink = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
53
45
|
var to = _ref.to,
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
46
|
+
replace = _ref.replace,
|
|
47
|
+
children = _ref.children,
|
|
48
|
+
showNewWindowIcon = _ref.showNewWindowIcon,
|
|
49
|
+
tabIndex = _ref.tabIndex,
|
|
50
|
+
asAnchor = _ref.asAnchor,
|
|
51
|
+
rest = _objectWithoutProperties(_ref, _excluded);
|
|
61
52
|
var isMissingRouterContext = useContext(MissingRouterContext);
|
|
62
|
-
|
|
63
53
|
if (isMissingRouterContext || isExternalLink(to) || isOldNdlaLink(to) || asAnchor) {
|
|
64
54
|
var href = typeof to === 'string' ? to : '#';
|
|
65
55
|
return _jsxs("a", _objectSpread(_objectSpread({
|
|
@@ -73,8 +63,8 @@ var SafeLink = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
73
63
|
})]
|
|
74
64
|
}));
|
|
75
65
|
}
|
|
76
|
-
|
|
77
|
-
|
|
66
|
+
return (
|
|
67
|
+
// RR6 link immediately fails if to is somehow undefined, so we provide an empty fallback to recover.
|
|
78
68
|
_jsxs(Link, _objectSpread(_objectSpread({
|
|
79
69
|
ref: ref,
|
|
80
70
|
tabIndex: tabIndex !== null && tabIndex !== void 0 ? tabIndex : 0,
|
package/es/SafeLinkButton.js
CHANGED
|
@@ -1,15 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
function
|
|
4
|
-
|
|
5
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
6
|
-
|
|
1
|
+
var _excluded = ["outline", "stripped", "link", "lighter", "children", "inverted", "invertedOutline", "to", "buttonSize", "borderShape", "width", "textAlign", "darker", "greyLighter", "greyLightest"];
|
|
2
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
3
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
7
4
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
8
|
-
|
|
9
5
|
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
10
|
-
|
|
11
6
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
12
|
-
|
|
13
7
|
/**
|
|
14
8
|
* Copyright (c) 2019-present, NDLA.
|
|
15
9
|
*
|
|
@@ -17,11 +11,12 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
|
|
|
17
11
|
* LICENSE file in the root directory of this source tree.
|
|
18
12
|
*
|
|
19
13
|
*/
|
|
14
|
+
|
|
20
15
|
import React from 'react';
|
|
21
16
|
import { css } from '@emotion/react';
|
|
22
17
|
import { appearances, ButtonStyles } from '@ndla/button';
|
|
23
18
|
import SafeLink from './SafeLink';
|
|
24
|
-
|
|
19
|
+
import { jsx as _jsx } from "@emotion/react/jsx-runtime";
|
|
25
20
|
var getStyles = function getStyles(modifiers) {
|
|
26
21
|
return Object.keys(modifiers).map(function (key) {
|
|
27
22
|
return modifiers[key] ? appearances[key] : undefined;
|
|
@@ -29,25 +24,23 @@ var getStyles = function getStyles(modifiers) {
|
|
|
29
24
|
return !!appearance;
|
|
30
25
|
});
|
|
31
26
|
};
|
|
32
|
-
|
|
33
27
|
var SafeLinkButton = function SafeLinkButton(_ref) {
|
|
34
28
|
var outline = _ref.outline,
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
29
|
+
stripped = _ref.stripped,
|
|
30
|
+
link = _ref.link,
|
|
31
|
+
lighter = _ref.lighter,
|
|
32
|
+
children = _ref.children,
|
|
33
|
+
inverted = _ref.inverted,
|
|
34
|
+
invertedOutline = _ref.invertedOutline,
|
|
35
|
+
to = _ref.to,
|
|
36
|
+
buttonSize = _ref.buttonSize,
|
|
37
|
+
borderShape = _ref.borderShape,
|
|
38
|
+
width = _ref.width,
|
|
39
|
+
textAlign = _ref.textAlign,
|
|
40
|
+
darker = _ref.darker,
|
|
41
|
+
greyLighter = _ref.greyLighter,
|
|
42
|
+
greyLightest = _ref.greyLightest,
|
|
43
|
+
rest = _objectWithoutProperties(_ref, _excluded);
|
|
51
44
|
var modifierStyles = getStyles({
|
|
52
45
|
link: link,
|
|
53
46
|
outline: outline,
|
|
@@ -75,5 +68,4 @@ var SafeLinkButton = function SafeLinkButton(_ref) {
|
|
|
75
68
|
children: children
|
|
76
69
|
}));
|
|
77
70
|
};
|
|
78
|
-
|
|
79
71
|
export default SafeLinkButton;
|
package/es/index.js
CHANGED
|
@@ -4,9 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports["default"] = void 0;
|
|
7
|
-
|
|
8
7
|
var _react = require("react");
|
|
9
|
-
|
|
10
8
|
/**
|
|
11
9
|
* Copyright (c) 2019-present, NDLA.
|
|
12
10
|
*
|
|
@@ -14,6 +12,7 @@ var _react = require("react");
|
|
|
14
12
|
* LICENSE file in the root directory of this source tree.
|
|
15
13
|
*
|
|
16
14
|
*/
|
|
15
|
+
|
|
17
16
|
var MissingRouterContext = /*#__PURE__*/(0, _react.createContext)(false);
|
|
18
17
|
var _default = MissingRouterContext;
|
|
19
18
|
exports["default"] = _default;
|
package/lib/SafeLink.js
CHANGED
|
@@ -1,52 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
function _typeof(obj) { "@babel/helpers - typeof";
|
|
4
|
-
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
|
-
exports["default"] =
|
|
9
|
-
|
|
7
|
+
exports.isOldNdlaLink = exports["default"] = void 0;
|
|
10
8
|
var _base = _interopRequireDefault(require("@emotion/styled/base"));
|
|
11
|
-
|
|
12
|
-
var _jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
13
|
-
|
|
14
9
|
var _react = _interopRequireWildcard(require("react"));
|
|
15
|
-
|
|
16
10
|
var _reactRouterDom = require("react-router-dom");
|
|
17
|
-
|
|
18
11
|
var _common = require("@ndla/icons/common");
|
|
19
|
-
|
|
20
12
|
var _lodash = require("lodash");
|
|
21
|
-
|
|
22
13
|
var _MissingRouterContext = _interopRequireDefault(require("./MissingRouterContext"));
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (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; }
|
|
27
|
-
|
|
14
|
+
var _jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
15
|
+
var _excluded = ["to", "replace", "children", "showNewWindowIcon", "tabIndex", "asAnchor"];
|
|
16
|
+
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); }
|
|
17
|
+
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; }
|
|
28
18
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
29
|
-
|
|
30
|
-
function
|
|
31
|
-
|
|
32
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
33
|
-
|
|
19
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
20
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
34
21
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
35
|
-
|
|
36
22
|
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
37
|
-
|
|
38
23
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
39
|
-
|
|
40
24
|
function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
|
41
|
-
|
|
42
25
|
var isExternalLink = function isExternalLink(to) {
|
|
43
26
|
return to && (0, _lodash.isString)(to) && (to.startsWith('https://') || to.startsWith('http://'));
|
|
44
27
|
};
|
|
45
|
-
|
|
46
28
|
var isOldNdlaLink = function isOldNdlaLink(to) {
|
|
47
29
|
return to && (0, _lodash.isString)(to) && to.match(/(.*)\/?node\/(\d+).*/) !== null;
|
|
48
30
|
};
|
|
49
|
-
|
|
50
31
|
exports.isOldNdlaLink = isOldNdlaLink;
|
|
51
32
|
var LaunchIcon = /*#__PURE__*/(0, _base["default"])(_common.Launch, {
|
|
52
33
|
target: "e2rl38a0",
|
|
@@ -61,17 +42,16 @@ var LaunchIcon = /*#__PURE__*/(0, _base["default"])(_common.Launch, {
|
|
|
61
42
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
62
43
|
});
|
|
63
44
|
// Fallback to normal link if app is missing RouterContext, link is external or is old ndla link
|
|
45
|
+
|
|
64
46
|
var SafeLink = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
65
47
|
var to = _ref.to,
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
48
|
+
replace = _ref.replace,
|
|
49
|
+
children = _ref.children,
|
|
50
|
+
showNewWindowIcon = _ref.showNewWindowIcon,
|
|
51
|
+
tabIndex = _ref.tabIndex,
|
|
52
|
+
asAnchor = _ref.asAnchor,
|
|
53
|
+
rest = _objectWithoutProperties(_ref, _excluded);
|
|
73
54
|
var isMissingRouterContext = (0, _react.useContext)(_MissingRouterContext["default"]);
|
|
74
|
-
|
|
75
55
|
if (isMissingRouterContext || isExternalLink(to) || isOldNdlaLink(to) || asAnchor) {
|
|
76
56
|
var href = typeof to === 'string' ? to : '#';
|
|
77
57
|
return (0, _jsxRuntime.jsxs)("a", _objectSpread(_objectSpread({
|
|
@@ -85,8 +65,8 @@ var SafeLink = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
|
|
|
85
65
|
})]
|
|
86
66
|
}));
|
|
87
67
|
}
|
|
88
|
-
|
|
89
|
-
|
|
68
|
+
return (
|
|
69
|
+
// RR6 link immediately fails if to is somehow undefined, so we provide an empty fallback to recover.
|
|
90
70
|
(0, _jsxRuntime.jsxs)(_reactRouterDom.Link, _objectSpread(_objectSpread({
|
|
91
71
|
ref: ref,
|
|
92
72
|
tabIndex: tabIndex !== null && tabIndex !== void 0 ? tabIndex : 0,
|
package/lib/SafeLinkButton.js
CHANGED
|
@@ -4,29 +4,18 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports["default"] = void 0;
|
|
7
|
-
|
|
8
|
-
var _jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
9
|
-
|
|
10
7
|
var _react = _interopRequireDefault(require("react"));
|
|
11
|
-
|
|
12
8
|
var _react2 = require("@emotion/react");
|
|
13
|
-
|
|
14
9
|
var _button = require("@ndla/button");
|
|
15
|
-
|
|
16
10
|
var _SafeLink = _interopRequireDefault(require("./SafeLink"));
|
|
17
|
-
|
|
11
|
+
var _jsxRuntime = require("@emotion/react/jsx-runtime");
|
|
12
|
+
var _excluded = ["outline", "stripped", "link", "lighter", "children", "inverted", "invertedOutline", "to", "buttonSize", "borderShape", "width", "textAlign", "darker", "greyLighter", "greyLightest"];
|
|
18
13
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
19
|
-
|
|
20
|
-
function
|
|
21
|
-
|
|
22
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
23
|
-
|
|
14
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
15
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
24
16
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
25
|
-
|
|
26
17
|
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
27
|
-
|
|
28
18
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
29
|
-
|
|
30
19
|
var getStyles = function getStyles(modifiers) {
|
|
31
20
|
return Object.keys(modifiers).map(function (key) {
|
|
32
21
|
return modifiers[key] ? _button.appearances[key] : undefined;
|
|
@@ -34,25 +23,23 @@ var getStyles = function getStyles(modifiers) {
|
|
|
34
23
|
return !!appearance;
|
|
35
24
|
});
|
|
36
25
|
};
|
|
37
|
-
|
|
38
26
|
var SafeLinkButton = function SafeLinkButton(_ref) {
|
|
39
27
|
var outline = _ref.outline,
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
28
|
+
stripped = _ref.stripped,
|
|
29
|
+
link = _ref.link,
|
|
30
|
+
lighter = _ref.lighter,
|
|
31
|
+
children = _ref.children,
|
|
32
|
+
inverted = _ref.inverted,
|
|
33
|
+
invertedOutline = _ref.invertedOutline,
|
|
34
|
+
to = _ref.to,
|
|
35
|
+
buttonSize = _ref.buttonSize,
|
|
36
|
+
borderShape = _ref.borderShape,
|
|
37
|
+
width = _ref.width,
|
|
38
|
+
textAlign = _ref.textAlign,
|
|
39
|
+
darker = _ref.darker,
|
|
40
|
+
greyLighter = _ref.greyLighter,
|
|
41
|
+
greyLightest = _ref.greyLightest,
|
|
42
|
+
rest = _objectWithoutProperties(_ref, _excluded);
|
|
56
43
|
var modifierStyles = getStyles({
|
|
57
44
|
link: link,
|
|
58
45
|
outline: outline,
|
|
@@ -80,6 +67,5 @@ var SafeLinkButton = function SafeLinkButton(_ref) {
|
|
|
80
67
|
children: children
|
|
81
68
|
}));
|
|
82
69
|
};
|
|
83
|
-
|
|
84
70
|
var _default = SafeLinkButton;
|
|
85
71
|
exports["default"] = _default;
|
package/lib/index.js
CHANGED
|
@@ -16,15 +16,10 @@ Object.defineProperty(exports, "SafeLinkButton", {
|
|
|
16
16
|
}
|
|
17
17
|
});
|
|
18
18
|
exports["default"] = void 0;
|
|
19
|
-
|
|
20
19
|
var _SafeLink = _interopRequireDefault(require("./SafeLink"));
|
|
21
|
-
|
|
22
20
|
var _MissingRouterContext = _interopRequireDefault(require("./MissingRouterContext"));
|
|
23
|
-
|
|
24
21
|
var _SafeLinkButton = _interopRequireDefault(require("./SafeLinkButton"));
|
|
25
|
-
|
|
26
22
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
27
|
-
|
|
28
23
|
/**
|
|
29
24
|
* Copyright (c) 2016-present, NDLA.
|
|
30
25
|
*
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ndla/safelink",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.11",
|
|
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": "^5.0
|
|
29
|
+
"@ndla/button": "^5.2.0",
|
|
30
30
|
"@ndla/icons": "^2.0.5",
|
|
31
31
|
"lodash": "^4.17.20"
|
|
32
32
|
},
|
|
@@ -39,5 +39,5 @@
|
|
|
39
39
|
"publishConfig": {
|
|
40
40
|
"access": "public"
|
|
41
41
|
},
|
|
42
|
-
"gitHead": "
|
|
42
|
+
"gitHead": "817dcdf49e5471114291a459c6a9e3e865cb0131"
|
|
43
43
|
}
|