react-native-marked 6.0.3 → 6.0.5
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/README.md +2 -1
- package/dist/commonjs/components/MDImage.js +19 -25
- package/dist/commonjs/components/MDImage.js.map +1 -1
- package/dist/commonjs/components/MDSvg.js +25 -39
- package/dist/commonjs/components/MDSvg.js.map +1 -1
- package/dist/commonjs/hooks/useMarkdown.js +7 -16
- package/dist/commonjs/hooks/useMarkdown.js.map +1 -1
- package/dist/commonjs/index.js +1 -7
- package/dist/commonjs/index.js.map +1 -1
- package/dist/commonjs/lib/Markdown.js +20 -32
- package/dist/commonjs/lib/Markdown.js.map +1 -1
- package/dist/commonjs/lib/Parser.js +39 -85
- package/dist/commonjs/lib/Parser.js.map +1 -1
- package/dist/commonjs/lib/Renderer.js +71 -115
- package/dist/commonjs/lib/Renderer.js.map +1 -1
- package/dist/commonjs/lib/types.js.map +1 -1
- package/dist/commonjs/package.json +1 -0
- package/dist/commonjs/theme/colors.js.map +1 -1
- package/dist/commonjs/theme/spacing.js.map +1 -1
- package/dist/commonjs/theme/styles.js +28 -33
- package/dist/commonjs/theme/styles.js.map +1 -1
- package/dist/commonjs/theme/types.js.map +1 -1
- package/dist/commonjs/utils/handlers.js +0 -3
- package/dist/commonjs/utils/handlers.js.map +1 -1
- package/dist/commonjs/utils/svg.js +3 -8
- package/dist/commonjs/utils/svg.js.map +1 -1
- package/dist/commonjs/utils/table.js +0 -8
- package/dist/commonjs/utils/table.js.map +1 -1
- package/dist/commonjs/utils/url.js +9 -12
- package/dist/commonjs/utils/url.js.map +1 -1
- package/dist/module/components/MDImage.js +19 -18
- package/dist/module/components/MDImage.js.map +1 -1
- package/dist/module/components/MDSvg.js +25 -30
- package/dist/module/components/MDSvg.js.map +1 -1
- package/dist/module/hooks/useMarkdown.js +8 -8
- package/dist/module/hooks/useMarkdown.js.map +1 -1
- package/dist/module/index.js +2 -0
- package/dist/module/index.js.map +1 -1
- package/dist/module/lib/Markdown.js +18 -21
- package/dist/module/lib/Markdown.js.map +1 -1
- package/dist/module/lib/Parser.js +41 -83
- package/dist/module/lib/Parser.js.map +1 -1
- package/dist/module/lib/Renderer.js +72 -100
- package/dist/module/lib/Renderer.js.map +1 -1
- package/dist/module/lib/types.js +2 -0
- package/dist/module/lib/types.js.map +1 -1
- package/dist/module/package.json +1 -0
- package/dist/module/theme/colors.js +2 -0
- package/dist/module/theme/colors.js.map +1 -1
- package/dist/module/theme/spacing.js +2 -0
- package/dist/module/theme/spacing.js.map +1 -1
- package/dist/module/theme/styles.js +29 -28
- package/dist/module/theme/styles.js.map +1 -1
- package/dist/module/theme/types.js +2 -0
- package/dist/module/theme/types.js.map +1 -1
- package/dist/module/utils/handlers.js +2 -0
- package/dist/module/utils/handlers.js.map +1 -1
- package/dist/module/utils/svg.js +5 -5
- package/dist/module/utils/svg.js.map +1 -1
- package/dist/module/utils/table.js +2 -4
- package/dist/module/utils/table.js.map +1 -1
- package/dist/module/utils/url.js +11 -10
- package/dist/module/utils/url.js.map +1 -1
- package/dist/typescript/hooks/useMarkdown.d.ts +2 -2
- package/dist/typescript/hooks/useMarkdown.d.ts.map +1 -1
- package/dist/typescript/lib/Markdown.d.ts.map +1 -1
- package/dist/typescript/lib/Parser.d.ts +1 -1
- package/dist/typescript/lib/Parser.d.ts.map +1 -1
- package/dist/typescript/lib/Renderer.d.ts.map +1 -1
- package/dist/typescript/lib/types.d.ts +1 -1
- package/dist/typescript/lib/types.d.ts.map +1 -1
- package/package.json +178 -175
- package/src/hooks/useMarkdown.ts +2 -2
- package/src/lib/Parser.tsx +3 -2
- package/src/lib/Renderer.tsx +10 -14
- package/src/lib/types.ts +1 -1
- package/src/utils/svg.ts +2 -2
|
@@ -4,20 +4,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.getSvgDimensions = void 0;
|
|
7
|
-
|
|
8
7
|
var _svgParser = require("svg-parser");
|
|
9
|
-
|
|
10
8
|
const getSvgDimensions = svg => {
|
|
11
|
-
var _rootChild$properties, _rootChild$properties2, _rootChild$properties3;
|
|
12
|
-
|
|
13
9
|
const parsed = (0, _svgParser.parse)(svg);
|
|
14
10
|
const rootChild = parsed.children[0];
|
|
15
11
|
return {
|
|
16
|
-
width: parseInt(String(
|
|
17
|
-
height: parseInt(String(
|
|
18
|
-
viewBox: String(
|
|
12
|
+
width: Number.parseInt(String(rootChild.properties?.width ?? "0")),
|
|
13
|
+
height: Number.parseInt(String(rootChild.properties?.height ?? "0")),
|
|
14
|
+
viewBox: String(rootChild.properties?.viewBox ?? "")
|
|
19
15
|
};
|
|
20
16
|
};
|
|
21
|
-
|
|
22
17
|
exports.getSvgDimensions = getSvgDimensions;
|
|
23
18
|
//# sourceMappingURL=svg.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getSvgDimensions","svg","parsed","parse","rootChild","children","width","parseInt","String","properties","height","viewBox"],"sourceRoot":"../../../src","sources":["utils/svg.ts"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_svgParser","require","getSvgDimensions","svg","parsed","parse","rootChild","children","width","Number","parseInt","String","properties","height","viewBox","exports"],"sourceRoot":"../../../src","sources":["utils/svg.ts"],"mappings":";;;;;;AACA,IAAAA,UAAA,GAAAC,OAAA;AAEO,MAAMC,gBAAgB,GAAIC,GAAW,IAAK;EAChD,MAAMC,MAAM,GAAG,IAAAC,gBAAK,EAACF,GAAG,CAAC;EAEzB,MAAMG,SAAS,GAAGF,MAAM,CAACG,QAAQ,CAAC,CAAC,CAAgB;EAEnD,OAAO;IACNC,KAAK,EAAEC,MAAM,CAACC,QAAQ,CAACC,MAAM,CAACL,SAAS,CAACM,UAAU,EAAEJ,KAAK,IAAI,GAAG,CAAC,CAAC;IAClEK,MAAM,EAAEJ,MAAM,CAACC,QAAQ,CAACC,MAAM,CAACL,SAAS,CAACM,UAAU,EAAEC,MAAM,IAAI,GAAG,CAAC,CAAC;IACpEC,OAAO,EAAEH,MAAM,CAACL,SAAS,CAACM,UAAU,EAAEE,OAAO,IAAI,EAAE;EACpD,CAAC;AACF,CAAC;AAACC,OAAA,CAAAb,gBAAA,GAAAA,gBAAA","ignoreList":[]}
|
|
@@ -4,42 +4,34 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.getTableWidthArr = exports.getTableColAlignmentStyle = void 0;
|
|
7
|
-
|
|
8
7
|
const getTableWidthArr = (totalCols, windowWidth) => {
|
|
9
8
|
if (totalCols < 1) {
|
|
10
9
|
return [];
|
|
11
10
|
}
|
|
12
|
-
|
|
13
11
|
return Array(totalCols).fill(0).map(() => {
|
|
14
12
|
return Math.floor(windowWidth * (1.3 / 3));
|
|
15
13
|
});
|
|
16
14
|
};
|
|
17
|
-
|
|
18
15
|
exports.getTableWidthArr = getTableWidthArr;
|
|
19
|
-
|
|
20
16
|
const getTableColAlignmentStyle = alignment => {
|
|
21
17
|
switch (alignment) {
|
|
22
18
|
case "center":
|
|
23
19
|
return {
|
|
24
20
|
textAlign: "center"
|
|
25
21
|
};
|
|
26
|
-
|
|
27
22
|
case "left":
|
|
28
23
|
return {
|
|
29
24
|
textAlign: "left"
|
|
30
25
|
};
|
|
31
|
-
|
|
32
26
|
case "right":
|
|
33
27
|
return {
|
|
34
28
|
textAlign: "right"
|
|
35
29
|
};
|
|
36
|
-
|
|
37
30
|
default:
|
|
38
31
|
return {
|
|
39
32
|
textAlign: "left"
|
|
40
33
|
};
|
|
41
34
|
}
|
|
42
35
|
};
|
|
43
|
-
|
|
44
36
|
exports.getTableColAlignmentStyle = getTableColAlignmentStyle;
|
|
45
37
|
//# sourceMappingURL=table.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getTableWidthArr","totalCols","windowWidth","Array","fill","map","Math","floor","getTableColAlignmentStyle","alignment","textAlign"],"sourceRoot":"../../../src","sources":["utils/table.ts"],"mappings":"
|
|
1
|
+
{"version":3,"names":["getTableWidthArr","totalCols","windowWidth","Array","fill","map","Math","floor","exports","getTableColAlignmentStyle","alignment","textAlign"],"sourceRoot":"../../../src","sources":["utils/table.ts"],"mappings":";;;;;;AAGO,MAAMA,gBAAgB,GAAGA,CAACC,SAAiB,EAAEC,WAAmB,KAAK;EAC3E,IAAID,SAAS,GAAG,CAAC,EAAE;IAClB,OAAO,EAAE;EACV;EAEA,OAAOE,KAAK,CAACF,SAAS,CAAC,CACrBG,IAAI,CAAC,CAAC,CAAC,CACPC,GAAG,CAAC,MAAM;IACV,OAAOC,IAAI,CAACC,KAAK,CAACL,WAAW,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;EAC3C,CAAC,CAAC;AACJ,CAAC;AAACM,OAAA,CAAAR,gBAAA,GAAAA,gBAAA;AAEK,MAAMS,yBAAyB,GACrCC,SAA6B,IACd;EACf,QAAQA,SAAS;IAChB,KAAK,QAAQ;MACZ,OAAO;QAAEC,SAAS,EAAE;MAAS,CAAC;IAC/B,KAAK,MAAM;MACV,OAAO;QAAEA,SAAS,EAAE;MAAO,CAAC;IAC7B,KAAK,OAAO;MACX,OAAO;QAAEA,SAAS,EAAE;MAAQ,CAAC;IAC9B;MACC,OAAO;QAAEA,SAAS,EAAE;MAAO,CAAC;EAC9B;AACD,CAAC;AAACH,OAAA,CAAAC,yBAAA,GAAAA,yBAAA","ignoreList":[]}
|
|
@@ -4,30 +4,27 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.getValidURL = void 0;
|
|
7
|
-
|
|
8
7
|
const getValidURL = (prefix, path) => {
|
|
9
|
-
let _prefix = prefix;
|
|
10
|
-
|
|
8
|
+
let _prefix = prefix;
|
|
9
|
+
// remove trailing slash from prefix
|
|
11
10
|
if (_prefix.endsWith("/")) {
|
|
12
11
|
_prefix = _prefix.slice(0, -1);
|
|
13
|
-
}
|
|
14
|
-
// i.e. https://example.com, mailto:person@example.com, tel:1234567, slack://open
|
|
15
|
-
|
|
12
|
+
}
|
|
16
13
|
|
|
14
|
+
// consider path a valid url if it starts with a scheme name followed by a semicolon
|
|
15
|
+
// i.e. https://example.com, mailto:person@example.com, tel:1234567, slack://open
|
|
17
16
|
const urlPattern = /^[a-z]+:/i;
|
|
18
|
-
|
|
19
17
|
if (urlPattern.test(path)) {
|
|
20
18
|
return path;
|
|
21
|
-
}
|
|
22
|
-
|
|
19
|
+
}
|
|
23
20
|
|
|
21
|
+
// absolute path
|
|
24
22
|
if (path.startsWith("/")) {
|
|
25
23
|
return `${_prefix}${path}`;
|
|
26
|
-
}
|
|
27
|
-
|
|
24
|
+
}
|
|
28
25
|
|
|
26
|
+
// relative path
|
|
29
27
|
return `${_prefix}/${path}`;
|
|
30
28
|
};
|
|
31
|
-
|
|
32
29
|
exports.getValidURL = getValidURL;
|
|
33
30
|
//# sourceMappingURL=url.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getValidURL","prefix","path","_prefix","endsWith","slice","urlPattern","test","startsWith"],"sourceRoot":"../../../src","sources":["utils/url.ts"],"mappings":"
|
|
1
|
+
{"version":3,"names":["getValidURL","prefix","path","_prefix","endsWith","slice","urlPattern","test","startsWith","exports"],"sourceRoot":"../../../src","sources":["utils/url.ts"],"mappings":";;;;;;AAAO,MAAMA,WAAW,GAAGA,CAACC,MAAc,EAAEC,IAAY,KAAK;EAC5D,IAAIC,OAAO,GAAGF,MAAM;EACpB;EACA,IAAIE,OAAO,CAACC,QAAQ,CAAC,GAAG,CAAC,EAAE;IAC1BD,OAAO,GAAGA,OAAO,CAACE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EAC/B;;EAEA;EACA;EACA,MAAMC,UAAU,GAAG,WAAW;EAC9B,IAAIA,UAAU,CAACC,IAAI,CAACL,IAAI,CAAC,EAAE;IAC1B,OAAOA,IAAI;EACZ;;EAEA;EACA,IAAIA,IAAI,CAACM,UAAU,CAAC,GAAG,CAAC,EAAE;IACzB,OAAO,GAAGL,OAAO,GAAGD,IAAI,EAAE;EAC3B;;EAEA;EACA,OAAO,GAAGC,OAAO,IAAID,IAAI,EAAE;AAC5B,CAAC;AAACO,OAAA,CAAAT,WAAA,GAAAA,WAAA","ignoreList":[]}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
1
3
|
import React, { memo, useEffect, useState } from "react";
|
|
2
4
|
import { ActivityIndicator, ImageBackground, Image } from "react-native";
|
|
3
|
-
|
|
4
|
-
const MDImage =
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
} = _ref;
|
|
5
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
|
+
const MDImage = ({
|
|
7
|
+
uri,
|
|
8
|
+
label,
|
|
9
|
+
alt = "Image",
|
|
10
|
+
style
|
|
11
|
+
}) => {
|
|
11
12
|
const [imageState, setImageState] = useState({
|
|
12
13
|
isLoading: true,
|
|
13
14
|
aspectRatio: undefined
|
|
@@ -15,11 +16,11 @@ const MDImage = _ref => {
|
|
|
15
16
|
useEffect(() => {
|
|
16
17
|
fetchOriginalSizeFromRemoteImage();
|
|
17
18
|
}, []);
|
|
19
|
+
|
|
18
20
|
/**
|
|
19
21
|
* Fetches image dimension
|
|
20
22
|
* Sets aspect ratio if resolved
|
|
21
23
|
*/
|
|
22
|
-
|
|
23
24
|
const fetchOriginalSizeFromRemoteImage = () => {
|
|
24
25
|
Image.getSize(uri, (width, height) => {
|
|
25
26
|
if (width > 0 && height > 0) {
|
|
@@ -35,14 +36,14 @@ const MDImage = _ref => {
|
|
|
35
36
|
}
|
|
36
37
|
}, () => {
|
|
37
38
|
setImageState(current => {
|
|
38
|
-
return {
|
|
39
|
+
return {
|
|
40
|
+
...current,
|
|
39
41
|
isLoading: false
|
|
40
42
|
};
|
|
41
43
|
});
|
|
42
44
|
});
|
|
43
45
|
};
|
|
44
|
-
|
|
45
|
-
return /*#__PURE__*/React.createElement(ImageBackground, {
|
|
46
|
+
return /*#__PURE__*/_jsx(ImageBackground, {
|
|
46
47
|
source: {
|
|
47
48
|
uri: uri
|
|
48
49
|
},
|
|
@@ -55,12 +56,12 @@ const MDImage = _ref => {
|
|
|
55
56
|
accessibilityLabel: alt,
|
|
56
57
|
accessibilityHint: undefined,
|
|
57
58
|
imageStyle: style,
|
|
58
|
-
testID: "react-native-marked-md-image"
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
59
|
+
testID: "react-native-marked-md-image",
|
|
60
|
+
children: imageState.isLoading ? /*#__PURE__*/_jsx(ActivityIndicator, {
|
|
61
|
+
testID: "react-native-marked-md-image-activity-indicator",
|
|
62
|
+
size: "small"
|
|
63
|
+
}) : null
|
|
64
|
+
});
|
|
63
65
|
};
|
|
64
|
-
|
|
65
66
|
export default /*#__PURE__*/memo(MDImage);
|
|
66
67
|
//# sourceMappingURL=MDImage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","memo","useEffect","useState","ActivityIndicator","ImageBackground","Image","MDImage","uri","label","alt","style","imageState","setImageState","isLoading","aspectRatio","undefined","fetchOriginalSizeFromRemoteImage","getSize","width","height","current"],"sourceRoot":"../../../src","sources":["components/MDImage.tsx"],"mappings":"AAAA,OAAOA,
|
|
1
|
+
{"version":3,"names":["React","memo","useEffect","useState","ActivityIndicator","ImageBackground","Image","jsx","_jsx","MDImage","uri","label","alt","style","imageState","setImageState","isLoading","aspectRatio","undefined","fetchOriginalSizeFromRemoteImage","getSize","width","height","current","source","accessibilityRole","accessibilityLabel","accessibilityHint","imageStyle","testID","children","size"],"sourceRoot":"../../../src","sources":["components/MDImage.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAEXC,IAAI,EACJC,SAAS,EACTC,QAAQ,QACF,OAAO;AACd,SACCC,iBAAiB,EACjBC,eAAe,EACfC,KAAK,QAEC,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;AActB,MAAMC,OAAwC,GAAGA,CAAC;EACjDC,GAAG;EACHC,KAAK;EACLC,GAAG,GAAG,OAAO;EACbC;AACD,CAAC,KAAK;EACL,MAAM,CAACC,UAAU,EAAEC,aAAa,CAAC,GAAGZ,QAAQ,CAAe;IAC1Da,SAAS,EAAE,IAAI;IACfC,WAAW,EAAEC;EACd,CAAC,CAAC;EAEFhB,SAAS,CAAC,MAAM;IACfiB,gCAAgC,CAAC,CAAC;EACnC,CAAC,EAAE,EAAE,CAAC;;EAEN;AACD;AACA;AACA;EACC,MAAMA,gCAAgC,GAAGA,CAAA,KAAM;IAC9Cb,KAAK,CAACc,OAAO,CACZV,GAAG,EACH,CAACW,KAAa,EAAEC,MAAc,KAAK;MAClC,IAAID,KAAK,GAAG,CAAC,IAAIC,MAAM,GAAG,CAAC,EAAE;QAC5BP,aAAa,CAAC;UAAEC,SAAS,EAAE,KAAK;UAAEC,WAAW,EAAEI,KAAK,GAAGC;QAAO,CAAC,CAAC;MACjE,CAAC,MAAM;QACNP,aAAa,CAAC;UAAEC,SAAS,EAAE,KAAK;UAAEC,WAAW,EAAEC;QAAU,CAAC,CAAC;MAC5D;IACD,CAAC,EACD,MAAM;MACLH,aAAa,CAAEQ,OAAO,IAAK;QAC1B,OAAO;UACN,GAAGA,OAAO;UACVP,SAAS,EAAE;QACZ,CAAC;MACF,CAAC,CAAC;IACH,CACD,CAAC;EACF,CAAC;EAED,oBACCR,IAAA,CAACH,eAAe;IACfmB,MAAM,EAAE;MAAEd,GAAG,EAAEA;IAAI,CAAE;IACrBG,KAAK,EAAE;MACNQ,KAAK,EAAE,MAAM;MACbJ,WAAW,EAAEH,UAAU,CAACG;IACzB,CAAE;IACF,cAAYN,KAAM;IAClBc,iBAAiB,EAAC,OAAO;IACzBC,kBAAkB,EAAEd,GAAI;IACxBe,iBAAiB,EAAET,SAAU;IAC7BU,UAAU,EAAEf,KAAM;IAClBgB,MAAM,EAAC,8BAA8B;IAAAC,QAAA,EAEpChB,UAAU,CAACE,SAAS,gBACpBR,IAAA,CAACJ,iBAAiB;MACjByB,MAAM,EAAC,iDAAiD;MACxDE,IAAI,EAAE;IAAQ,CACd,CAAC,GACC;EAAI,CACQ,CAAC;AAEpB,CAAC;AAED,4BAAe9B,IAAI,CAACQ,OAAO,CAAC","ignoreList":[]}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
1
3
|
import React, { memo, useEffect, useState, useRef } from "react";
|
|
2
4
|
import { ActivityIndicator, View } from "react-native";
|
|
3
5
|
import { SvgFromXml } from "react-native-svg";
|
|
4
6
|
import { getSvgDimensions } from "./../utils/svg";
|
|
5
|
-
|
|
6
|
-
const MDSvg =
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
} = _ref;
|
|
7
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
|
+
const MDSvg = ({
|
|
9
|
+
uri,
|
|
10
|
+
alt = "image"
|
|
11
|
+
}) => {
|
|
11
12
|
const isFirstLoad = useRef(false);
|
|
12
13
|
const [layoutWidth, setLayoutWidth] = useState(0);
|
|
13
14
|
const [svgState, setSvgState] = useState({
|
|
@@ -24,11 +25,9 @@ const MDSvg = _ref => {
|
|
|
24
25
|
try {
|
|
25
26
|
const res = await fetch(uri);
|
|
26
27
|
const text = await res.text();
|
|
27
|
-
|
|
28
28
|
if (res.status !== 200) {
|
|
29
29
|
throw new Error("Status is not 200");
|
|
30
30
|
}
|
|
31
|
-
|
|
32
31
|
const {
|
|
33
32
|
viewBox,
|
|
34
33
|
width,
|
|
@@ -44,51 +43,47 @@ const MDSvg = _ref => {
|
|
|
44
43
|
aspectRatio: width / height
|
|
45
44
|
});
|
|
46
45
|
} catch (e) {
|
|
47
|
-
setSvgState(state => ({
|
|
46
|
+
setSvgState(state => ({
|
|
47
|
+
...state,
|
|
48
48
|
error: true,
|
|
49
49
|
isLoading: false
|
|
50
50
|
}));
|
|
51
51
|
}
|
|
52
52
|
};
|
|
53
|
-
|
|
54
53
|
fetchSvg();
|
|
55
54
|
}, [uri]);
|
|
56
|
-
|
|
57
55
|
const onLayout = event => {
|
|
58
56
|
if (!isFirstLoad.current) {
|
|
59
57
|
setLayoutWidth(event.nativeEvent.layout.width ?? 0);
|
|
60
58
|
isFirstLoad.current = true;
|
|
61
59
|
}
|
|
62
60
|
};
|
|
63
|
-
|
|
64
61
|
const getWidth = () => {
|
|
65
62
|
if (layoutWidth && svgState.width) {
|
|
66
63
|
return Math.min(layoutWidth, svgState.width);
|
|
67
64
|
}
|
|
68
|
-
|
|
69
65
|
return "100%";
|
|
70
66
|
};
|
|
71
|
-
|
|
72
|
-
return /*#__PURE__*/React.createElement(View, {
|
|
67
|
+
return /*#__PURE__*/_jsx(View, {
|
|
73
68
|
style: {
|
|
74
69
|
width: getWidth(),
|
|
75
70
|
aspectRatio: svgState.aspectRatio
|
|
76
71
|
},
|
|
77
|
-
onLayout: onLayout
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
72
|
+
onLayout: onLayout,
|
|
73
|
+
children: svgState.isLoading ? /*#__PURE__*/_jsx(ActivityIndicator, {
|
|
74
|
+
size: "small"
|
|
75
|
+
}) : /*#__PURE__*/_jsx(SvgFromXml, {
|
|
76
|
+
xml: svgState.svg,
|
|
77
|
+
width: "100%",
|
|
78
|
+
height: "100%",
|
|
79
|
+
viewBox: svgState.viewBox,
|
|
80
|
+
"aria-label": alt,
|
|
81
|
+
accessibilityRole: "image",
|
|
82
|
+
accessibilityLabel: alt,
|
|
83
|
+
accessibilityHint: undefined,
|
|
84
|
+
testID: "react-native-marked-md-svg"
|
|
85
|
+
})
|
|
86
|
+
});
|
|
91
87
|
};
|
|
92
|
-
|
|
93
88
|
export default /*#__PURE__*/memo(MDSvg);
|
|
94
89
|
//# sourceMappingURL=MDSvg.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","memo","useEffect","useState","useRef","ActivityIndicator","View","SvgFromXml","getSvgDimensions","MDSvg","uri","alt","isFirstLoad","layoutWidth","setLayoutWidth","svgState","setSvgState","viewBox","width","height","svg","isLoading","error","aspectRatio","undefined","fetchSvg","res","fetch","text","status","Error","e","state","onLayout","event","current","nativeEvent","layout","getWidth","Math","min"],"sourceRoot":"../../../src","sources":["components/MDSvg.tsx"],"mappings":"AAAA,OAAOA,
|
|
1
|
+
{"version":3,"names":["React","memo","useEffect","useState","useRef","ActivityIndicator","View","SvgFromXml","getSvgDimensions","jsx","_jsx","MDSvg","uri","alt","isFirstLoad","layoutWidth","setLayoutWidth","svgState","setSvgState","viewBox","width","height","svg","isLoading","error","aspectRatio","undefined","fetchSvg","res","fetch","text","status","Error","e","state","onLayout","event","current","nativeEvent","layout","getWidth","Math","min","style","children","size","xml","accessibilityRole","accessibilityLabel","accessibilityHint","testID"],"sourceRoot":"../../../src","sources":["components/MDSvg.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
1
3
|
import { useMemo } from "react";
|
|
2
4
|
import { marked } from "marked";
|
|
3
5
|
import Parser from "../lib/Parser";
|
|
4
6
|
import Renderer from "../lib/Renderer";
|
|
5
7
|
import getStyles from "./../theme/styles";
|
|
6
|
-
|
|
7
8
|
const useMarkdown = (value, options) => {
|
|
8
|
-
const styles = useMemo(() => getStyles(options
|
|
9
|
+
const styles = useMemo(() => getStyles(options?.styles, options?.colorScheme, options?.theme), [options?.styles, options?.theme, options?.colorScheme]);
|
|
9
10
|
const parser = useMemo(() => new Parser({
|
|
10
11
|
styles: styles,
|
|
11
|
-
baseUrl: options
|
|
12
|
-
renderer:
|
|
13
|
-
}), [options
|
|
12
|
+
baseUrl: options?.baseUrl,
|
|
13
|
+
renderer: options?.renderer ?? new Renderer()
|
|
14
|
+
}), [options?.renderer, options?.baseUrl, styles]);
|
|
14
15
|
const elements = useMemo(() => {
|
|
15
16
|
const tokens = marked.lexer(value, {
|
|
16
17
|
gfm: true,
|
|
17
|
-
tokenizer: options
|
|
18
|
+
tokenizer: options?.tokenizer
|
|
18
19
|
});
|
|
19
20
|
return parser.parse(tokens);
|
|
20
|
-
}, [value, parser, options
|
|
21
|
+
}, [value, parser, options?.tokenizer]);
|
|
21
22
|
return elements;
|
|
22
23
|
};
|
|
23
|
-
|
|
24
24
|
export default useMarkdown;
|
|
25
25
|
//# sourceMappingURL=useMarkdown.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useMemo","marked","Parser","Renderer","getStyles","useMarkdown","value","options","styles","colorScheme","theme","parser","baseUrl","renderer","elements","tokens","lexer","gfm","tokenizer","parse"],"sourceRoot":"../../../src","sources":["hooks/useMarkdown.ts"],"mappings":"AAAA,SAASA,
|
|
1
|
+
{"version":3,"names":["useMemo","marked","Parser","Renderer","getStyles","useMarkdown","value","options","styles","colorScheme","theme","parser","baseUrl","renderer","elements","tokens","lexer","gfm","tokenizer","parse"],"sourceRoot":"../../../src","sources":["hooks/useMarkdown.ts"],"mappings":";;AAAA,SAASA,OAAO,QAAwB,OAAO;AAC/C,SAAyBC,MAAM,QAAQ,QAAQ;AAE/C,OAAOC,MAAM,MAAM,eAAe;AAClC,OAAOC,QAAQ,MAAM,iBAAiB;AACtC,OAAOC,SAAS,MAAM,mBAAmB;AAazC,MAAMC,WAAW,GAAGA,CACnBC,KAAa,EACbC,OAAgC,KACf;EACjB,MAAMC,MAAM,GAAGR,OAAO,CACrB,MAAMI,SAAS,CAACG,OAAO,EAAEC,MAAM,EAAED,OAAO,EAAEE,WAAW,EAAEF,OAAO,EAAEG,KAAK,CAAC,EACtE,CAACH,OAAO,EAAEC,MAAM,EAAED,OAAO,EAAEG,KAAK,EAAEH,OAAO,EAAEE,WAAW,CACvD,CAAC;EAED,MAAME,MAAM,GAAGX,OAAO,CACrB,MACC,IAAIE,MAAM,CAAC;IACVM,MAAM,EAAEA,MAAM;IACdI,OAAO,EAAEL,OAAO,EAAEK,OAAO;IACzBC,QAAQ,EAAEN,OAAO,EAAEM,QAAQ,IAAI,IAAIV,QAAQ,CAAC;EAC7C,CAAC,CAAC,EACH,CAACI,OAAO,EAAEM,QAAQ,EAAEN,OAAO,EAAEK,OAAO,EAAEJ,MAAM,CAC7C,CAAC;EAED,MAAMM,QAAQ,GAAGd,OAAO,CAAC,MAAM;IAC9B,MAAMe,MAAM,GAAGd,MAAM,CAACe,KAAK,CAACV,KAAK,EAAE;MAClCW,GAAG,EAAE,IAAI;MACTC,SAAS,EAAEX,OAAO,EAAEW;IACrB,CAAC,CAAC;IACF,OAAOP,MAAM,CAACQ,KAAK,CAACJ,MAAM,CAAC;EAC5B,CAAC,EAAE,CAACT,KAAK,EAAEK,MAAM,EAAEJ,OAAO,EAAEW,SAAS,CAAC,CAAC;EAEvC,OAAOJ,QAAQ;AAChB,CAAC;AAED,eAAeT,WAAW","ignoreList":[]}
|
package/dist/module/index.js
CHANGED
package/dist/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Tokenizer","marked","Markdown","Renderer","useMarkdown","MarkedLexer","lexer","MarkedTokenizer"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA,SAASA,
|
|
1
|
+
{"version":3,"names":["Tokenizer","marked","Markdown","Renderer","useMarkdown","MarkedLexer","lexer","MarkedTokenizer"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,MAAM,QAAQ,QAAQ;AAC1C,OAAOC,QAAQ,MAAM,gBAAgB;AACrC,OAAOC,QAAQ,MAAM,gBAAgB;AACrC,OAAOC,WAAW,MAAuC,qBAAqB;AAQ9E,MAAMC,WAAW,GAAGJ,MAAM,CAACK,KAAK;AAUhC,SAASH,QAAQ,EAAEC,WAAW,EAAEJ,SAAS,IAAIO,eAAe,EAAEF,WAAW;AACzE,eAAeH,QAAQ","ignoreList":[]}
|
|
@@ -1,19 +1,18 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
2
|
|
|
3
3
|
import React, { memo, useCallback } from "react";
|
|
4
4
|
import { FlatList, useColorScheme } from "react-native";
|
|
5
5
|
import useMarkdown from "../hooks/useMarkdown";
|
|
6
|
-
|
|
7
|
-
const Markdown =
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
} = _ref;
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
const Markdown = ({
|
|
8
|
+
value,
|
|
9
|
+
flatListProps,
|
|
10
|
+
theme,
|
|
11
|
+
baseUrl,
|
|
12
|
+
renderer,
|
|
13
|
+
styles,
|
|
14
|
+
tokenizer
|
|
15
|
+
}) => {
|
|
17
16
|
const colorScheme = useColorScheme();
|
|
18
17
|
const rnElements = useMarkdown(value, {
|
|
19
18
|
theme,
|
|
@@ -23,26 +22,24 @@ const Markdown = _ref => {
|
|
|
23
22
|
styles,
|
|
24
23
|
tokenizer
|
|
25
24
|
});
|
|
26
|
-
const renderItem = useCallback(
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
} = _ref2;
|
|
25
|
+
const renderItem = useCallback(({
|
|
26
|
+
item
|
|
27
|
+
}) => {
|
|
30
28
|
return item;
|
|
31
29
|
}, []);
|
|
32
30
|
const keyExtractor = useCallback((_, index) => index.toString(), []);
|
|
33
|
-
return /*#__PURE__*/
|
|
31
|
+
return /*#__PURE__*/_jsx(FlatList, {
|
|
34
32
|
removeClippedSubviews: false,
|
|
35
33
|
keyExtractor: keyExtractor,
|
|
36
34
|
maxToRenderPerBatch: 8,
|
|
37
35
|
initialNumToRender: 8,
|
|
38
36
|
style: {
|
|
39
37
|
backgroundColor: colorScheme === "light" ? "#ffffff" : "#000000"
|
|
40
|
-
}
|
|
41
|
-
|
|
38
|
+
},
|
|
39
|
+
...flatListProps,
|
|
42
40
|
data: rnElements,
|
|
43
41
|
renderItem: renderItem
|
|
44
|
-
})
|
|
42
|
+
});
|
|
45
43
|
};
|
|
46
|
-
|
|
47
44
|
export default /*#__PURE__*/memo(Markdown);
|
|
48
45
|
//# sourceMappingURL=Markdown.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","memo","useCallback","FlatList","useColorScheme","useMarkdown","Markdown","value","flatListProps","theme","baseUrl","renderer","styles","tokenizer","colorScheme","rnElements","renderItem","item","keyExtractor","_","index","toString","backgroundColor"],"sourceRoot":"../../../src","sources":["lib/Markdown.tsx"],"mappings":";;AAAA,OAAOA,
|
|
1
|
+
{"version":3,"names":["React","memo","useCallback","FlatList","useColorScheme","useMarkdown","jsx","_jsx","Markdown","value","flatListProps","theme","baseUrl","renderer","styles","tokenizer","colorScheme","rnElements","renderItem","item","keyExtractor","_","index","toString","removeClippedSubviews","maxToRenderPerBatch","initialNumToRender","style","backgroundColor","data"],"sourceRoot":"../../../src","sources":["lib/Markdown.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IACXC,IAAI,EACJC,WAAW,QAGL,OAAO;AACd,SAASC,QAAQ,EAAEC,cAAc,QAAQ,cAAc;AAEvD,OAAOC,WAAW,MAAM,sBAAsB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE/C,MAAMC,QAAQ,GAAGA,CAAC;EACjBC,KAAK;EACLC,aAAa;EACbC,KAAK;EACLC,OAAO;EACPC,QAAQ;EACRC,MAAM;EACNC;AACc,CAAC,KAAK;EACpB,MAAMC,WAAW,GAAGZ,cAAc,CAAC,CAAC;EAEpC,MAAMa,UAAU,GAAGZ,WAAW,CAACI,KAAK,EAAE;IACrCE,KAAK;IACLC,OAAO;IACPC,QAAQ;IACRG,WAAW;IACXF,MAAM;IACNC;EACD,CAAC,CAAC;EAEF,MAAMG,UAAU,GAAGhB,WAAW,CAAC,CAAC;IAAEiB;EAA0B,CAAC,KAAK;IACjE,OAAOA,IAAI;EACZ,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,YAAY,GAAGlB,WAAW,CAC/B,CAACmB,CAAY,EAAEC,KAAa,KAAKA,KAAK,CAACC,QAAQ,CAAC,CAAC,EACjD,EACD,CAAC;EAED,oBACChB,IAAA,CAACJ,QAAQ;IACRqB,qBAAqB,EAAE,KAAM;IAC7BJ,YAAY,EAAEA,YAAa;IAC3BK,mBAAmB,EAAE,CAAE;IACvBC,kBAAkB,EAAE,CAAE;IACtBC,KAAK,EAAE;MACNC,eAAe,EAAEZ,WAAW,KAAK,OAAO,GAAG,SAAS,GAAG;IACxD,CAAE;IAAA,GACEN,aAAa;IACjBmB,IAAI,EAAEZ,UAAW;IACjBC,UAAU,EAAEA;EAAW,CACvB,CAAC;AAEJ,CAAC;AAED,4BAAejB,IAAI,CAACO,QAAQ,CAAC","ignoreList":[]}
|