@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.esm.js +24 -60
- package/build/index.esm.js.map +1 -1
- package/build/index.js +25 -62
- package/build/index.js.map +1 -1
- package/build/types/index.d.ts +3 -0
- package/build/types/index.d.ts.map +1 -1
- package/build/types/markdown/Markdown.d.ts +18 -25
- package/build/types/markdown/Markdown.d.ts.map +1 -1
- package/build/types/markdown/index.d.ts +2 -1
- package/build/types/markdown/index.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/index.ts +3 -0
- package/src/markdown/{Markdown.spec.js → Markdown.spec.tsx} +1 -1
- package/src/markdown/Markdown.tsx +81 -0
- package/src/markdown/index.ts +2 -0
- package/src/markdown/Markdown.js +0 -131
- package/src/markdown/index.js +0 -1
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
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="${
|
|
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
|
-
|
|
965
|
-
|
|
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
|
|
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
|
|
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
|
|
15204
|
+
exports.Markdown = Markdown;
|
|
15242
15205
|
exports.Modal = Modal;
|
|
15243
15206
|
exports.Money = Money$1;
|
|
15244
15207
|
exports.MoneyInput = MoneyInput$1;
|