@transferwise/components 46.16.0 → 46.17.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/build/index.js CHANGED
@@ -21,12 +21,11 @@ var reactPopper = require('react-popper');
21
21
  var throttle = require('lodash.throttle');
22
22
  var reactDom = require('react-dom');
23
23
  var neptuneValidation = require('@transferwise/neptune-validation');
24
+ var commonmark = require('commonmark');
24
25
  var art = require('@wise/art');
25
26
  var clamp$2 = require('lodash.clamp');
26
27
  var debounce = require('lodash.debounce');
27
28
  var requiredIf = require('react-required-if');
28
- var commonmark = require('commonmark');
29
- var difference = require('lodash.difference');
30
29
  var toPairs = require('lodash.topairs');
31
30
  var web = require('@react-spring/web');
32
31
 
@@ -56,11 +55,10 @@ var PropTypes__default = /*#__PURE__*/_interopDefault(PropTypes);
56
55
  var mergeProps__default = /*#__PURE__*/_interopDefault(mergeProps);
57
56
  var mergeRefs__default = /*#__PURE__*/_interopDefault(mergeRefs);
58
57
  var throttle__default = /*#__PURE__*/_interopDefault(throttle);
58
+ var commonmark__default = /*#__PURE__*/_interopDefault(commonmark);
59
59
  var clamp__default = /*#__PURE__*/_interopDefault(clamp$2);
60
60
  var debounce__default = /*#__PURE__*/_interopDefault(debounce);
61
61
  var requiredIf__default = /*#__PURE__*/_interopDefault(requiredIf);
62
- var commonmark__default = /*#__PURE__*/_interopDefault(commonmark);
63
- var difference__default = /*#__PURE__*/_interopDefault(difference);
64
62
  var toPairs__default = /*#__PURE__*/_interopDefault(toPairs);
65
63
 
66
64
  class HistoryNavigator {
@@ -906,39 +904,32 @@ const writer = new commonmark__default.default.HtmlRenderer({
906
904
  safe: true
907
905
  });
908
906
  const NODE_TYPE_LIST = Object.values(exports.MarkdownNodeType);
909
- const Markdown = ({
910
- as: Element,
911
- children,
912
- className,
907
+ function Markdown({
908
+ as: Element = 'div',
913
909
  allowList,
914
910
  blockList,
915
- config
916
- }) => {
911
+ config,
912
+ className,
913
+ children
914
+ }) {
917
915
  if (!children) {
918
916
  return null;
919
917
  }
920
- if (allowList?.length && blockList?.length) {
918
+ const linkTarget = config?.link?.target ?? '_self';
919
+ if (allowList != null && blockList != null) {
921
920
  logActionRequired$2('Markdown supports only one of `allowList` or `blockList` to be used at a time. `blockList` will be ignored.');
922
921
  }
923
922
  const parser = nodes => {
924
923
  const parsed = reader.parse(nodes);
925
- if (allowList || blockList) {
926
- const toExclude = allowList ? difference__default.default(NODE_TYPE_LIST, allowList) : blockList;
927
- return stripNodes({
928
- parsed,
929
- blockList: toExclude
930
- });
931
- }
932
- return parsed;
924
+ const toExclude = allowList != null ? NODE_TYPE_LIST.filter(type => !allowList.includes(type)) : blockList;
925
+ return toExclude != null ? stripNodes({
926
+ parsed,
927
+ blockList: toExclude
928
+ }) : parsed;
933
929
  };
934
930
  const createMarkup = () => {
935
- const {
936
- link: {
937
- target
938
- }
939
- } = config;
940
931
  const parsed = parser(children);
941
- return writer.render(parsed).replace(/<a href="/g, `<a target="${target}" href="`);
932
+ return writer.render(parsed).replace(/<a href="/g, `<a target="${linkTarget}" href="`);
942
933
  };
943
934
  return /*#__PURE__*/jsxRuntime.jsx(Element, {
944
935
  className: className,
@@ -946,7 +937,7 @@ const Markdown = ({
946
937
  __html: createMarkup()
947
938
  }
948
939
  });
949
- };
940
+ }
950
941
  function stripNodes({
951
942
  blockList,
952
943
  parsed
@@ -955,51 +946,23 @@ function stripNodes({
955
946
  return parsed;
956
947
  }
957
948
  const walker = parsed.walker();
958
- let event = walker.next();
959
- while (event) {
949
+ for (let event = walker.next(); event != null; event = walker.next()) {
960
950
  const {
961
951
  node
962
952
  } = event;
963
- if (blockList.includes(node.type)) {
964
- if (!event.entering) {
965
- while (node.firstChild) {
966
- node.insertBefore(node.firstChild);
967
- }
968
- node.unlink();
953
+ if (blockList.includes(node.type) && !event.entering) {
954
+ while (node.firstChild != null) {
955
+ node.insertBefore(node.firstChild);
969
956
  }
957
+ node.unlink();
970
958
  }
971
- event = walker.next();
972
959
  }
973
- return walker.root;
960
+ return parsed;
974
961
  }
975
- Markdown.propTypes = {
976
- children: PropTypes__default.default.string.isRequired,
977
- as: PropTypes__default.default.string,
978
- className: PropTypes__default.default.string,
979
- allowList: PropTypes__default.default.arrayOf(PropTypes__default.default.oneOf(['block_quote', 'code_block', 'code', 'emph', 'heading', 'html_block', 'html_inline', 'image', 'item', 'linebreak', 'link', 'list', 'paragraph', 'softbreak', 'strong', 'thematic_break'])),
980
- blockList: PropTypes__default.default.arrayOf(PropTypes__default.default.oneOf(['block_quote', 'code_block', 'code', 'emph', 'heading', 'html_block', 'html_inline', 'image', 'item', 'linebreak', 'link', 'list', 'paragraph', 'softbreak', 'strong', 'thematic_break'])),
981
- config: PropTypes__default.default.shape({
982
- link: PropTypes__default.default.shape({
983
- target: PropTypes__default.default.oneOf(['_blank', '_self'])
984
- })
985
- })
986
- };
987
- Markdown.defaultProps = {
988
- as: 'div',
989
- className: undefined,
990
- allowList: null,
991
- blockList: null,
992
- config: {
993
- link: {
994
- target: '_self'
995
- }
996
- }
997
- };
998
- var Markdown$1 = Markdown;
999
962
 
1000
963
  const allowList = [exports.MarkdownNodeType.STRONG];
1001
964
  const InlineMarkdown = props => {
1002
- return /*#__PURE__*/jsxRuntime.jsx(Markdown$1, {
965
+ return /*#__PURE__*/jsxRuntime.jsx(Markdown, {
1003
966
  ...props,
1004
967
  as: "span",
1005
968
  allowList: allowList,
@@ -15238,7 +15201,7 @@ exports.Link = Link;
15238
15201
  exports.ListItem = ListItem$1;
15239
15202
  exports.Loader = Loader$1;
15240
15203
  exports.Logo = Logo$1;
15241
- exports.Markdown = Markdown$1;
15204
+ exports.Markdown = Markdown;
15242
15205
  exports.Modal = Modal;
15243
15206
  exports.Money = Money$1;
15244
15207
  exports.MoneyInput = MoneyInput$1;