@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.
@@ -5,6 +5,7 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
7
  */
8
+
8
9
  import { createContext } from 'react';
9
10
  var MissingRouterContext = /*#__PURE__*/createContext(false);
10
11
  export default MissingRouterContext;
package/es/SafeLink.js CHANGED
@@ -1,19 +1,11 @@
1
1
  import _styled from "@emotion/styled/base";
2
- import { jsx as _jsx } from "@emotion/react/jsx-runtime";
3
- import { jsxs as _jsxs } from "@emotion/react/jsx-runtime";
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
- replace = _ref.replace,
55
- children = _ref.children,
56
- showNewWindowIcon = _ref.showNewWindowIcon,
57
- tabIndex = _ref.tabIndex,
58
- asAnchor = _ref.asAnchor,
59
- rest = _objectWithoutProperties(_ref, ["to", "replace", "children", "showNewWindowIcon", "tabIndex", "asAnchor"]);
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
- return (// RR6 link immediately fails if to is somehow undefined, so we provide an empty fallback to recover.
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,
@@ -1,15 +1,9 @@
1
- import { jsx as _jsx } from "@emotion/react/jsx-runtime";
2
-
3
- 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; }
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
- stripped = _ref.stripped,
36
- link = _ref.link,
37
- lighter = _ref.lighter,
38
- children = _ref.children,
39
- inverted = _ref.inverted,
40
- invertedOutline = _ref.invertedOutline,
41
- to = _ref.to,
42
- buttonSize = _ref.buttonSize,
43
- borderShape = _ref.borderShape,
44
- width = _ref.width,
45
- textAlign = _ref.textAlign,
46
- darker = _ref.darker,
47
- greyLighter = _ref.greyLighter,
48
- greyLightest = _ref.greyLightest,
49
- rest = _objectWithoutProperties(_ref, ["outline", "stripped", "link", "lighter", "children", "inverted", "invertedOutline", "to", "buttonSize", "borderShape", "width", "textAlign", "darker", "greyLighter", "greyLightest"]);
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
@@ -5,6 +5,7 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  *
7
7
  */
8
+
8
9
  import SafeLink from './SafeLink';
9
10
  export { default as MissingRouterContext } from './MissingRouterContext';
10
11
  export { default as SafeLinkButton } from './SafeLinkButton';
@@ -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"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
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"] = exports.isOldNdlaLink = void 0;
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
- function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
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 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; }
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
- replace = _ref.replace,
67
- children = _ref.children,
68
- showNewWindowIcon = _ref.showNewWindowIcon,
69
- tabIndex = _ref.tabIndex,
70
- asAnchor = _ref.asAnchor,
71
- rest = _objectWithoutProperties(_ref, ["to", "replace", "children", "showNewWindowIcon", "tabIndex", "asAnchor"]);
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
- return (// RR6 link immediately fails if to is somehow undefined, so we provide an empty fallback to recover.
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,
@@ -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 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; }
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
- stripped = _ref.stripped,
41
- link = _ref.link,
42
- lighter = _ref.lighter,
43
- children = _ref.children,
44
- inverted = _ref.inverted,
45
- invertedOutline = _ref.invertedOutline,
46
- to = _ref.to,
47
- buttonSize = _ref.buttonSize,
48
- borderShape = _ref.borderShape,
49
- width = _ref.width,
50
- textAlign = _ref.textAlign,
51
- darker = _ref.darker,
52
- greyLighter = _ref.greyLighter,
53
- greyLightest = _ref.greyLightest,
54
- rest = _objectWithoutProperties(_ref, ["outline", "stripped", "link", "lighter", "children", "inverted", "invertedOutline", "to", "buttonSize", "borderShape", "width", "textAlign", "darker", "greyLighter", "greyLightest"]);
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.9",
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.3",
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": "eabe15c1b0ada7b2921f2e856a02bb5f53a5d1d9"
42
+ "gitHead": "817dcdf49e5471114291a459c6a9e3e865cb0131"
43
43
  }