react-native-nitro-markdown 0.4.3 → 0.5.1
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 +417 -25
- package/android/src/main/java/com/margelo/nitro/com/nitromarkdown/HybridMarkdownSession.kt +46 -8
- package/android/src/main/java/com/nitromarkdown/NitroMarkdownPackage.kt +2 -1
- package/cpp/bindings/HybridMarkdownParser.cpp +216 -66
- package/cpp/bindings/HybridMarkdownParser.hpp +2 -0
- package/ios/HybridMarkdownSession.swift +51 -7
- package/lib/commonjs/MarkdownContext.js.map +1 -1
- package/lib/commonjs/headless.js +61 -5
- package/lib/commonjs/headless.js.map +1 -1
- package/lib/commonjs/index.js +9 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/markdown-stream.js +107 -13
- package/lib/commonjs/markdown-stream.js.map +1 -1
- package/lib/commonjs/markdown.js +191 -26
- package/lib/commonjs/markdown.js.map +1 -1
- package/lib/commonjs/renderers/code.js +21 -2
- package/lib/commonjs/renderers/code.js.map +1 -1
- package/lib/commonjs/renderers/table/cell-content.js +32 -0
- package/lib/commonjs/renderers/table/cell-content.js.map +1 -0
- package/lib/commonjs/renderers/table/index.js +310 -0
- package/lib/commonjs/renderers/table/index.js.map +1 -0
- package/lib/commonjs/renderers/table/table-reducer.js +29 -0
- package/lib/commonjs/renderers/table/table-reducer.js.map +1 -0
- package/lib/commonjs/renderers/table/table-utils.js +68 -0
- package/lib/commonjs/renderers/table/table-utils.js.map +1 -0
- package/lib/commonjs/renderers/table/types.js +6 -0
- package/lib/commonjs/renderers/table/types.js.map +1 -0
- package/lib/commonjs/renderers/table.js +6 -306
- package/lib/commonjs/renderers/table.js.map +1 -1
- package/lib/commonjs/theme.js +10 -1
- package/lib/commonjs/theme.js.map +1 -1
- package/lib/commonjs/use-markdown-stream.js +9 -1
- package/lib/commonjs/use-markdown-stream.js.map +1 -1
- package/lib/commonjs/utils/code-highlight.js +101 -0
- package/lib/commonjs/utils/code-highlight.js.map +1 -0
- package/lib/commonjs/utils/incremental-ast.js +153 -0
- package/lib/commonjs/utils/incremental-ast.js.map +1 -0
- package/lib/module/MarkdownContext.js.map +1 -1
- package/lib/module/headless.js +56 -4
- package/lib/module/headless.js.map +1 -1
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/markdown-stream.js +108 -14
- package/lib/module/markdown-stream.js.map +1 -1
- package/lib/module/markdown.js +193 -28
- package/lib/module/markdown.js.map +1 -1
- package/lib/module/renderers/code.js +21 -2
- package/lib/module/renderers/code.js.map +1 -1
- package/lib/module/renderers/table/cell-content.js +27 -0
- package/lib/module/renderers/table/cell-content.js.map +1 -0
- package/lib/module/renderers/table/index.js +305 -0
- package/lib/module/renderers/table/index.js.map +1 -0
- package/lib/module/renderers/table/table-reducer.js +24 -0
- package/lib/module/renderers/table/table-reducer.js.map +1 -0
- package/lib/module/renderers/table/table-utils.js +62 -0
- package/lib/module/renderers/table/table-utils.js.map +1 -0
- package/lib/module/renderers/table/types.js +4 -0
- package/lib/module/renderers/table/types.js.map +1 -0
- package/lib/module/renderers/table.js +1 -305
- package/lib/module/renderers/table.js.map +1 -1
- package/lib/module/theme.js +10 -1
- package/lib/module/theme.js.map +1 -1
- package/lib/module/use-markdown-stream.js +9 -1
- package/lib/module/use-markdown-stream.js.map +1 -1
- package/lib/module/utils/code-highlight.js +97 -0
- package/lib/module/utils/code-highlight.js.map +1 -0
- package/lib/module/utils/incremental-ast.js +147 -0
- package/lib/module/utils/incremental-ast.js.map +1 -0
- package/lib/typescript/commonjs/Markdown.nitro.d.ts +2 -0
- package/lib/typescript/commonjs/Markdown.nitro.d.ts.map +1 -1
- package/lib/typescript/commonjs/MarkdownContext.d.ts +6 -0
- package/lib/typescript/commonjs/MarkdownContext.d.ts.map +1 -1
- package/lib/typescript/commonjs/headless.d.ts +18 -0
- package/lib/typescript/commonjs/headless.d.ts.map +1 -1
- package/lib/typescript/commonjs/index.d.ts +4 -0
- package/lib/typescript/commonjs/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/markdown-stream.d.ts +6 -1
- package/lib/typescript/commonjs/markdown-stream.d.ts.map +1 -1
- package/lib/typescript/commonjs/markdown.d.ts +77 -1
- package/lib/typescript/commonjs/markdown.d.ts.map +1 -1
- package/lib/typescript/commonjs/renderers/code.d.ts.map +1 -1
- package/lib/typescript/commonjs/renderers/table/cell-content.d.ts +15 -0
- package/lib/typescript/commonjs/renderers/table/cell-content.d.ts.map +1 -0
- package/lib/typescript/commonjs/renderers/table/index.d.ts +11 -0
- package/lib/typescript/commonjs/renderers/table/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/renderers/table/table-reducer.d.ts +5 -0
- package/lib/typescript/commonjs/renderers/table/table-reducer.d.ts.map +1 -0
- package/lib/typescript/commonjs/renderers/table/table-utils.d.ts +10 -0
- package/lib/typescript/commonjs/renderers/table/table-utils.d.ts.map +1 -0
- package/lib/typescript/commonjs/renderers/table/types.d.ts +24 -0
- package/lib/typescript/commonjs/renderers/table/types.d.ts.map +1 -0
- package/lib/typescript/commonjs/renderers/table.d.ts +1 -11
- package/lib/typescript/commonjs/renderers/table.d.ts.map +1 -1
- package/lib/typescript/commonjs/specs/MarkdownSession.nitro.d.ts +14 -2
- package/lib/typescript/commonjs/specs/MarkdownSession.nitro.d.ts.map +1 -1
- package/lib/typescript/commonjs/theme.d.ts +18 -2
- package/lib/typescript/commonjs/theme.d.ts.map +1 -1
- package/lib/typescript/commonjs/use-markdown-stream.d.ts +4 -0
- package/lib/typescript/commonjs/use-markdown-stream.d.ts.map +1 -1
- package/lib/typescript/commonjs/utils/code-highlight.d.ts +8 -0
- package/lib/typescript/commonjs/utils/code-highlight.d.ts.map +1 -0
- package/lib/typescript/commonjs/utils/incremental-ast.d.ts +12 -0
- package/lib/typescript/commonjs/utils/incremental-ast.d.ts.map +1 -0
- package/lib/typescript/module/Markdown.nitro.d.ts +2 -0
- package/lib/typescript/module/Markdown.nitro.d.ts.map +1 -1
- package/lib/typescript/module/MarkdownContext.d.ts +6 -0
- package/lib/typescript/module/MarkdownContext.d.ts.map +1 -1
- package/lib/typescript/module/headless.d.ts +18 -0
- package/lib/typescript/module/headless.d.ts.map +1 -1
- package/lib/typescript/module/index.d.ts +4 -0
- package/lib/typescript/module/index.d.ts.map +1 -1
- package/lib/typescript/module/markdown-stream.d.ts +6 -1
- package/lib/typescript/module/markdown-stream.d.ts.map +1 -1
- package/lib/typescript/module/markdown.d.ts +77 -1
- package/lib/typescript/module/markdown.d.ts.map +1 -1
- package/lib/typescript/module/renderers/code.d.ts.map +1 -1
- package/lib/typescript/module/renderers/table/cell-content.d.ts +15 -0
- package/lib/typescript/module/renderers/table/cell-content.d.ts.map +1 -0
- package/lib/typescript/module/renderers/table/index.d.ts +11 -0
- package/lib/typescript/module/renderers/table/index.d.ts.map +1 -0
- package/lib/typescript/module/renderers/table/table-reducer.d.ts +5 -0
- package/lib/typescript/module/renderers/table/table-reducer.d.ts.map +1 -0
- package/lib/typescript/module/renderers/table/table-utils.d.ts +10 -0
- package/lib/typescript/module/renderers/table/table-utils.d.ts.map +1 -0
- package/lib/typescript/module/renderers/table/types.d.ts +24 -0
- package/lib/typescript/module/renderers/table/types.d.ts.map +1 -0
- package/lib/typescript/module/renderers/table.d.ts +1 -11
- package/lib/typescript/module/renderers/table.d.ts.map +1 -1
- package/lib/typescript/module/specs/MarkdownSession.nitro.d.ts +14 -2
- package/lib/typescript/module/specs/MarkdownSession.nitro.d.ts.map +1 -1
- package/lib/typescript/module/theme.d.ts +18 -2
- package/lib/typescript/module/theme.d.ts.map +1 -1
- package/lib/typescript/module/use-markdown-stream.d.ts +4 -0
- package/lib/typescript/module/use-markdown-stream.d.ts.map +1 -1
- package/lib/typescript/module/utils/code-highlight.d.ts +8 -0
- package/lib/typescript/module/utils/code-highlight.d.ts.map +1 -0
- package/lib/typescript/module/utils/incremental-ast.d.ts +12 -0
- package/lib/typescript/module/utils/incremental-ast.d.ts.map +1 -0
- package/nitrogen/generated/android/NitroMarkdownOnLoad.cpp +38 -26
- package/nitrogen/generated/android/NitroMarkdownOnLoad.hpp +13 -4
- package/nitrogen/generated/android/c++/JFunc_void_double_double.hpp +75 -0
- package/nitrogen/generated/android/c++/JHybridMarkdownSessionSpec.cpp +49 -34
- package/nitrogen/generated/android/c++/JHybridMarkdownSessionSpec.hpp +25 -24
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/com/nitromarkdown/Func_void_double_double.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/com/nitromarkdown/HybridMarkdownSessionSpec.kt +34 -21
- package/nitrogen/generated/ios/NitroMarkdown-Swift-Cxx-Bridge.cpp +8 -0
- package/nitrogen/generated/ios/NitroMarkdown-Swift-Cxx-Bridge.hpp +31 -0
- package/nitrogen/generated/ios/c++/HybridMarkdownSessionSpecSwift.hpp +34 -2
- package/nitrogen/generated/ios/swift/Func_void_double_double.swift +46 -0
- package/nitrogen/generated/ios/swift/HybridMarkdownSessionSpec.swift +6 -2
- package/nitrogen/generated/ios/swift/HybridMarkdownSessionSpec_cxx.swift +57 -9
- package/nitrogen/generated/shared/c++/HybridMarkdownParserSpec.cpp +2 -0
- package/nitrogen/generated/shared/c++/HybridMarkdownParserSpec.hpp +2 -0
- package/nitrogen/generated/shared/c++/HybridMarkdownSessionSpec.cpp +4 -0
- package/nitrogen/generated/shared/c++/HybridMarkdownSessionSpec.hpp +6 -2
- package/package.json +9 -5
- package/react-native-nitro-markdown.podspec +1 -1
- package/src/Markdown.nitro.ts +2 -0
- package/src/MarkdownContext.ts +6 -0
- package/src/headless.ts +54 -4
- package/src/index.ts +10 -0
- package/src/markdown-stream.tsx +163 -15
- package/src/markdown.tsx +381 -26
- package/src/renderers/code.tsx +32 -3
- package/src/renderers/table/cell-content.tsx +38 -0
- package/src/renderers/table/index.tsx +419 -0
- package/src/renderers/table/table-reducer.ts +36 -0
- package/src/renderers/table/table-utils.ts +81 -0
- package/src/renderers/table/types.ts +24 -0
- package/src/renderers/table.tsx +1 -401
- package/src/specs/MarkdownSession.nitro.ts +16 -2
- package/src/theme.ts +29 -1
- package/src/use-markdown-stream.ts +10 -0
- package/src/utils/code-highlight.ts +102 -0
- package/src/utils/incremental-ast.ts +224 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNative","_headless","_MarkdownContext","_jsxRuntime","CodeBlock","language","content","node","style","
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_headless","_MarkdownContext","_codeHighlight","_jsxRuntime","CodeBlock","language","content","node","style","ctx","useMarkdownContext","theme","highlighter","highlightCode","defaultHighlighter","displayContent","getTextContent","styles","useMemo","StyleSheet","create","codeBlock","backgroundColor","colors","codeBackground","borderRadius","m","padding","spacing","l","marginVertical","borderWidth","borderColor","border","codeLanguage","color","fontSize","fontSizes","xs","fontWeight","marginBottom","s","textTransform","letterSpacing","fontFamily","fontFamilies","mono","Platform","OS","includeFontPadding","codeBlockText","select","ios","android","text","lineHeight","showLanguage","showCodeLanguage","jsxs","View","children","jsx","Text","ScrollView","horizontal","showsHorizontalScrollIndicator","bounces","selectable","map","token","i","tokenColor","codeTokenColors","type","exports","InlineCode","codeInline","code","paddingHorizontal","paddingVertical"],"sourceRoot":"../../../src","sources":["renderers/code.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.CellContent = void 0;
|
|
7
|
+
var _reactNative = require("react-native");
|
|
8
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
9
|
+
const CellContent = ({
|
|
10
|
+
node,
|
|
11
|
+
Renderer,
|
|
12
|
+
styles,
|
|
13
|
+
textStyle
|
|
14
|
+
}) => {
|
|
15
|
+
if (!node.children || node.children.length === 0) {
|
|
16
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
|
17
|
+
style: textStyle,
|
|
18
|
+
children: node.content ?? ""
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
22
|
+
style: styles.cellContentWrapper,
|
|
23
|
+
children: node.children.map((child, idx) => /*#__PURE__*/(0, _jsxRuntime.jsx)(Renderer, {
|
|
24
|
+
node: child,
|
|
25
|
+
depth: 0,
|
|
26
|
+
inListItem: false,
|
|
27
|
+
parentIsText: false
|
|
28
|
+
}, idx))
|
|
29
|
+
});
|
|
30
|
+
};
|
|
31
|
+
exports.CellContent = CellContent;
|
|
32
|
+
//# sourceMappingURL=cell-content.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_jsxRuntime","CellContent","node","Renderer","styles","textStyle","children","length","jsx","Text","style","content","View","cellContentWrapper","map","child","idx","depth","inListItem","parentIsText","exports"],"sourceRoot":"../../../../src","sources":["renderers/table/cell-content.tsx"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAA0E,IAAAC,WAAA,GAAAD,OAAA;AAanE,MAAME,WAAiC,GAAGA,CAAC;EAChDC,IAAI;EACJC,QAAQ;EACRC,MAAM;EACNC;AACF,CAAC,KAAK;EACJ,IAAI,CAACH,IAAI,CAACI,QAAQ,IAAIJ,IAAI,CAACI,QAAQ,CAACC,MAAM,KAAK,CAAC,EAAE;IAChD,oBAAO,IAAAP,WAAA,CAAAQ,GAAA,EAACV,YAAA,CAAAW,IAAI;MAACC,KAAK,EAAEL,SAAU;MAAAC,QAAA,EAAEJ,IAAI,CAACS,OAAO,IAAI;IAAE,CAAO,CAAC;EAC5D;EAEA,oBACE,IAAAX,WAAA,CAAAQ,GAAA,EAACV,YAAA,CAAAc,IAAI;IAACF,KAAK,EAAEN,MAAM,CAACS,kBAAmB;IAAAP,QAAA,EACpCJ,IAAI,CAACI,QAAQ,CAACQ,GAAG,CAAC,CAACC,KAAK,EAAEC,GAAG,kBAC5B,IAAAhB,WAAA,CAAAQ,GAAA,EAACL,QAAQ;MAEPD,IAAI,EAAEa,KAAM;MACZE,KAAK,EAAE,CAAE;MACTC,UAAU,EAAE,KAAM;MAClBC,YAAY,EAAE;IAAM,GAJfH,GAKN,CACF;EAAC,CACE,CAAC;AAEX,CAAC;AAACI,OAAA,CAAAnB,WAAA,GAAAA,WAAA","ignoreList":[]}
|
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.TableRenderer = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _MarkdownContext = require("../../MarkdownContext.js");
|
|
10
|
+
var _cellContent = require("./cell-content.js");
|
|
11
|
+
var _tableUtils = require("./table-utils.js");
|
|
12
|
+
var _tableReducer = require("./table-reducer.js");
|
|
13
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
|
+
const COLUMN_MEASUREMENT_PADDING = 8;
|
|
15
|
+
const IS_ACT_TEST_ENVIRONMENT = Reflect.get(globalThis, "IS_REACT_ACT_ENVIRONMENT") === true;
|
|
16
|
+
const SHOULD_DEBOUNCE_MEASUREMENT = !IS_ACT_TEST_ENVIRONMENT;
|
|
17
|
+
const TableRenderer = ({
|
|
18
|
+
node,
|
|
19
|
+
Renderer,
|
|
20
|
+
style
|
|
21
|
+
}) => {
|
|
22
|
+
const {
|
|
23
|
+
theme,
|
|
24
|
+
tableOptions
|
|
25
|
+
} = (0, _MarkdownContext.useMarkdownContext)();
|
|
26
|
+
const minColumnWidth = tableOptions?.minColumnWidth ?? _tableReducer.DEFAULT_MIN_COLUMN_WIDTH;
|
|
27
|
+
const measurementStabilizeMs = tableOptions?.measurementStabilizeMs ?? _tableReducer.DEFAULT_MEASUREMENT_STABILIZE_MS;
|
|
28
|
+
const {
|
|
29
|
+
headers,
|
|
30
|
+
rows,
|
|
31
|
+
alignments
|
|
32
|
+
} = (0, _react.useMemo)(() => (0, _tableUtils.extractTableData)(node), [node]);
|
|
33
|
+
const columnCount = headers.length;
|
|
34
|
+
const styles = (0, _react.useMemo)(() => createTableStyles(theme), [theme]);
|
|
35
|
+
const estimatedColumnWidths = (0, _react.useMemo)(() => (0, _tableUtils.estimateColumnWidths)(headers, rows, columnCount, minColumnWidth), [headers, rows, columnCount, minColumnWidth]);
|
|
36
|
+
const [columnWidths, dispatch] = (0, _react.useReducer)(_tableReducer.columnWidthsReducer, estimatedColumnWidths);
|
|
37
|
+
const measuredWidths = (0, _react.useRef)(new Map());
|
|
38
|
+
const measuredCells = (0, _react.useRef)(new Set());
|
|
39
|
+
const widthsCalculated = (0, _react.useRef)(false);
|
|
40
|
+
const columnWidthsRef = (0, _react.useRef)(columnWidths);
|
|
41
|
+
const lastCellKeySignatureRef = (0, _react.useRef)("");
|
|
42
|
+
const measurementTimerRef = (0, _react.useRef)(null);
|
|
43
|
+
const [needsMeasurement, setNeedsMeasurement] = (0, _react.useReducer)((_previous, nextValue) => nextValue, false);
|
|
44
|
+
const expectedCellKeys = (0, _react.useMemo)(() => {
|
|
45
|
+
const keys = [];
|
|
46
|
+
headers.forEach((_, colIndex) => {
|
|
47
|
+
keys.push(`header-${colIndex}`);
|
|
48
|
+
});
|
|
49
|
+
rows.forEach((row, rowIndex) => {
|
|
50
|
+
row.forEach((_, colIndex) => {
|
|
51
|
+
keys.push(`cell-${rowIndex}-${colIndex}`);
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
return keys;
|
|
55
|
+
}, [headers, rows]);
|
|
56
|
+
const expectedCellKeySignature = (0, _react.useMemo)(() => expectedCellKeys.join("|"), [expectedCellKeys]);
|
|
57
|
+
(0, _react.useEffect)(() => {
|
|
58
|
+
columnWidthsRef.current = columnWidths;
|
|
59
|
+
}, [columnWidths]);
|
|
60
|
+
(0, _react.useEffect)(() => {
|
|
61
|
+
const structureChanged = lastCellKeySignatureRef.current !== expectedCellKeySignature;
|
|
62
|
+
lastCellKeySignatureRef.current = expectedCellKeySignature;
|
|
63
|
+
if (measurementTimerRef.current) {
|
|
64
|
+
clearTimeout(measurementTimerRef.current);
|
|
65
|
+
measurementTimerRef.current = null;
|
|
66
|
+
}
|
|
67
|
+
if (structureChanged) {
|
|
68
|
+
measuredWidths.current.clear();
|
|
69
|
+
measuredCells.current.clear();
|
|
70
|
+
widthsCalculated.current = false;
|
|
71
|
+
setNeedsMeasurement(false);
|
|
72
|
+
dispatch({
|
|
73
|
+
type: "RESET_WIDTHS",
|
|
74
|
+
widths: estimatedColumnWidths
|
|
75
|
+
});
|
|
76
|
+
} else {
|
|
77
|
+
dispatch({
|
|
78
|
+
type: "SET_MONOTONIC_WIDTHS",
|
|
79
|
+
widths: estimatedColumnWidths
|
|
80
|
+
});
|
|
81
|
+
if (widthsCalculated.current) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
if (!SHOULD_DEBOUNCE_MEASUREMENT) {
|
|
86
|
+
setNeedsMeasurement(true);
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
measurementTimerRef.current = setTimeout(() => {
|
|
90
|
+
measurementTimerRef.current = null;
|
|
91
|
+
setNeedsMeasurement(true);
|
|
92
|
+
}, measurementStabilizeMs);
|
|
93
|
+
return () => {
|
|
94
|
+
if (measurementTimerRef.current) {
|
|
95
|
+
clearTimeout(measurementTimerRef.current);
|
|
96
|
+
measurementTimerRef.current = null;
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
}, [estimatedColumnWidths, expectedCellKeySignature, measurementStabilizeMs]);
|
|
100
|
+
const onCellLayout = (0, _react.useCallback)((cellKey, width) => {
|
|
101
|
+
if (width <= 0 || widthsCalculated.current || !needsMeasurement) return;
|
|
102
|
+
measuredWidths.current.set(cellKey, width);
|
|
103
|
+
if (!measuredCells.current.has(cellKey)) {
|
|
104
|
+
measuredCells.current.add(cellKey);
|
|
105
|
+
}
|
|
106
|
+
if (measuredCells.current.size < expectedCellKeys.length) return;
|
|
107
|
+
const allCellsMeasured = expectedCellKeys.every(key => measuredCells.current.has(key));
|
|
108
|
+
if (!allCellsMeasured) return;
|
|
109
|
+
const maxWidths = [...columnWidthsRef.current];
|
|
110
|
+
for (let col = 0; col < columnCount; col++) {
|
|
111
|
+
const headerWidth = measuredWidths.current.get(`header-${col}`);
|
|
112
|
+
if (headerWidth && headerWidth > 0) {
|
|
113
|
+
maxWidths[col] = Math.max(maxWidths[col], headerWidth);
|
|
114
|
+
}
|
|
115
|
+
for (let row = 0; row < rows.length; row++) {
|
|
116
|
+
if (col >= rows[row].length) continue;
|
|
117
|
+
const cellWidth = measuredWidths.current.get(`cell-${row}-${col}`);
|
|
118
|
+
if (cellWidth && cellWidth > 0) {
|
|
119
|
+
maxWidths[col] = Math.max(maxWidths[col], cellWidth);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
maxWidths[col] = Math.max(maxWidths[col] + COLUMN_MEASUREMENT_PADDING, minColumnWidth);
|
|
123
|
+
}
|
|
124
|
+
widthsCalculated.current = true;
|
|
125
|
+
setNeedsMeasurement(false);
|
|
126
|
+
dispatch({
|
|
127
|
+
type: "RESET_WIDTHS",
|
|
128
|
+
widths: maxWidths
|
|
129
|
+
});
|
|
130
|
+
}, [columnCount, expectedCellKeys, needsMeasurement, rows, minColumnWidth]);
|
|
131
|
+
const getAlignment = index => {
|
|
132
|
+
const align = alignments[index];
|
|
133
|
+
if (align === "center") return "center";
|
|
134
|
+
if (align === "right") return "flex-end";
|
|
135
|
+
return "flex-start";
|
|
136
|
+
};
|
|
137
|
+
if (columnCount === 0) return null;
|
|
138
|
+
const hasWidths = columnWidths.length === columnCount;
|
|
139
|
+
const resolvedWidths = hasWidths ? columnWidths : estimatedColumnWidths;
|
|
140
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
141
|
+
style: [styles.container, style],
|
|
142
|
+
children: [needsMeasurement ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
143
|
+
style: styles.measurementContainer,
|
|
144
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
145
|
+
style: styles.measurementRow,
|
|
146
|
+
children: headers.map((cell, colIndex) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
147
|
+
style: styles.measurementCell,
|
|
148
|
+
onLayout: e => {
|
|
149
|
+
onCellLayout(`header-${colIndex}`, e.nativeEvent.layout.width);
|
|
150
|
+
},
|
|
151
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_cellContent.CellContent, {
|
|
152
|
+
node: cell,
|
|
153
|
+
Renderer: Renderer,
|
|
154
|
+
styles: styles
|
|
155
|
+
})
|
|
156
|
+
}, `measure-header-${colIndex}`))
|
|
157
|
+
}), rows.map((row, rowIndex) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
158
|
+
style: styles.measurementRow,
|
|
159
|
+
children: row.map((cell, colIndex) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
160
|
+
style: styles.measurementCell,
|
|
161
|
+
onLayout: e => {
|
|
162
|
+
onCellLayout(`cell-${rowIndex}-${colIndex}`, e.nativeEvent.layout.width);
|
|
163
|
+
},
|
|
164
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_cellContent.CellContent, {
|
|
165
|
+
node: cell,
|
|
166
|
+
Renderer: Renderer,
|
|
167
|
+
styles: styles
|
|
168
|
+
})
|
|
169
|
+
}, `measure-cell-${rowIndex}-${colIndex}`))
|
|
170
|
+
}, `measure-row-${rowIndex}`))]
|
|
171
|
+
}) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ScrollView, {
|
|
172
|
+
horizontal: true,
|
|
173
|
+
showsHorizontalScrollIndicator: true,
|
|
174
|
+
style: styles.tableScroll,
|
|
175
|
+
bounces: false,
|
|
176
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
177
|
+
style: [styles.table, {
|
|
178
|
+
backgroundColor: style?.backgroundColor ?? theme.colors.surface ?? "#111827"
|
|
179
|
+
}],
|
|
180
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
181
|
+
style: styles.headerRow,
|
|
182
|
+
children: headers.map((cell, colIndex) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
183
|
+
style: [styles.headerCell, {
|
|
184
|
+
width: resolvedWidths[colIndex] ?? minColumnWidth,
|
|
185
|
+
alignItems: getAlignment(colIndex)
|
|
186
|
+
}, colIndex === columnCount - 1 && styles.lastCell],
|
|
187
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_cellContent.CellContent, {
|
|
188
|
+
node: cell,
|
|
189
|
+
Renderer: Renderer,
|
|
190
|
+
styles: styles,
|
|
191
|
+
textStyle: styles.headerText
|
|
192
|
+
})
|
|
193
|
+
}, `header-${colIndex}`))
|
|
194
|
+
}), rows.map((row, rowIndex) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
195
|
+
style: [styles.bodyRow, rowIndex === rows.length - 1 && styles.lastRow, rowIndex % 2 === 0 ? styles.evenRow : styles.oddRow],
|
|
196
|
+
children: row.map((cell, colIndex) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
197
|
+
style: [styles.bodyCell, {
|
|
198
|
+
width: resolvedWidths[colIndex] ?? minColumnWidth,
|
|
199
|
+
alignItems: getAlignment(colIndex)
|
|
200
|
+
}, colIndex === columnCount - 1 && styles.lastCell],
|
|
201
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_cellContent.CellContent, {
|
|
202
|
+
node: cell,
|
|
203
|
+
Renderer: Renderer,
|
|
204
|
+
styles: styles,
|
|
205
|
+
textStyle: styles.cellText
|
|
206
|
+
})
|
|
207
|
+
}, `cell-${rowIndex}-${colIndex}`))
|
|
208
|
+
}, `row-${rowIndex}`))]
|
|
209
|
+
})
|
|
210
|
+
})]
|
|
211
|
+
});
|
|
212
|
+
};
|
|
213
|
+
exports.TableRenderer = TableRenderer;
|
|
214
|
+
const createTableStyles = theme => {
|
|
215
|
+
const colors = theme?.colors || {};
|
|
216
|
+
const borderRadius = theme?.borderRadius || {
|
|
217
|
+
m: 8
|
|
218
|
+
};
|
|
219
|
+
return _reactNative.StyleSheet.create({
|
|
220
|
+
container: {
|
|
221
|
+
marginVertical: theme.spacing.s
|
|
222
|
+
},
|
|
223
|
+
measurementContainer: {
|
|
224
|
+
position: "absolute",
|
|
225
|
+
opacity: 0,
|
|
226
|
+
pointerEvents: "none",
|
|
227
|
+
left: -9999
|
|
228
|
+
},
|
|
229
|
+
measurementRow: {
|
|
230
|
+
flexDirection: "row"
|
|
231
|
+
},
|
|
232
|
+
measurementCell: {
|
|
233
|
+
paddingVertical: 10,
|
|
234
|
+
paddingHorizontal: 12
|
|
235
|
+
},
|
|
236
|
+
tableScroll: {
|
|
237
|
+
flexGrow: 0
|
|
238
|
+
},
|
|
239
|
+
table: {
|
|
240
|
+
borderRadius: borderRadius.m,
|
|
241
|
+
overflow: "hidden",
|
|
242
|
+
borderWidth: 1,
|
|
243
|
+
borderColor: colors.tableBorder || "#374151"
|
|
244
|
+
},
|
|
245
|
+
headerRow: {
|
|
246
|
+
flexDirection: "row",
|
|
247
|
+
backgroundColor: colors.tableHeader || "#1f2937",
|
|
248
|
+
borderBottomWidth: 1,
|
|
249
|
+
borderBottomColor: colors.tableBorder || "#374151"
|
|
250
|
+
},
|
|
251
|
+
bodyRow: {
|
|
252
|
+
flexDirection: "row",
|
|
253
|
+
borderBottomWidth: 1,
|
|
254
|
+
borderBottomColor: colors.tableBorder || "#374151"
|
|
255
|
+
},
|
|
256
|
+
evenRow: {
|
|
257
|
+
backgroundColor: colors.tableRowEven || "transparent"
|
|
258
|
+
},
|
|
259
|
+
oddRow: {
|
|
260
|
+
backgroundColor: colors.tableRowOdd || "rgba(255,255,255,0.02)"
|
|
261
|
+
},
|
|
262
|
+
lastRow: {
|
|
263
|
+
borderBottomWidth: 0
|
|
264
|
+
},
|
|
265
|
+
headerCell: {
|
|
266
|
+
flexShrink: 0,
|
|
267
|
+
paddingVertical: 10,
|
|
268
|
+
paddingHorizontal: 12,
|
|
269
|
+
minWidth: 60,
|
|
270
|
+
borderRightWidth: 1,
|
|
271
|
+
borderRightColor: colors.tableBorder || "#374151"
|
|
272
|
+
},
|
|
273
|
+
bodyCell: {
|
|
274
|
+
flexShrink: 0,
|
|
275
|
+
paddingVertical: 10,
|
|
276
|
+
paddingHorizontal: 12,
|
|
277
|
+
minWidth: 60,
|
|
278
|
+
borderRightWidth: 1,
|
|
279
|
+
borderRightColor: colors.tableBorder || "#374151",
|
|
280
|
+
justifyContent: "center"
|
|
281
|
+
},
|
|
282
|
+
lastCell: {
|
|
283
|
+
borderRightWidth: 0
|
|
284
|
+
},
|
|
285
|
+
headerText: {
|
|
286
|
+
color: colors.tableHeaderText || "#9ca3af",
|
|
287
|
+
fontSize: 12,
|
|
288
|
+
fontWeight: "600",
|
|
289
|
+
fontFamily: theme.fontFamilies?.regular,
|
|
290
|
+
...(_reactNative.Platform.OS === "android" && {
|
|
291
|
+
includeFontPadding: false
|
|
292
|
+
})
|
|
293
|
+
},
|
|
294
|
+
cellText: {
|
|
295
|
+
color: colors.text || "#e5e7eb",
|
|
296
|
+
fontSize: 14,
|
|
297
|
+
lineHeight: 20,
|
|
298
|
+
fontFamily: theme.fontFamilies?.regular,
|
|
299
|
+
...(_reactNative.Platform.OS === "android" && {
|
|
300
|
+
includeFontPadding: false
|
|
301
|
+
})
|
|
302
|
+
},
|
|
303
|
+
cellContentWrapper: {
|
|
304
|
+
flexDirection: "row",
|
|
305
|
+
flexWrap: "wrap",
|
|
306
|
+
alignItems: "center"
|
|
307
|
+
}
|
|
308
|
+
});
|
|
309
|
+
};
|
|
310
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_MarkdownContext","_cellContent","_tableUtils","_tableReducer","_jsxRuntime","COLUMN_MEASUREMENT_PADDING","IS_ACT_TEST_ENVIRONMENT","Reflect","get","globalThis","SHOULD_DEBOUNCE_MEASUREMENT","TableRenderer","node","Renderer","style","theme","tableOptions","useMarkdownContext","minColumnWidth","DEFAULT_MIN_COLUMN_WIDTH","measurementStabilizeMs","DEFAULT_MEASUREMENT_STABILIZE_MS","headers","rows","alignments","useMemo","extractTableData","columnCount","length","styles","createTableStyles","estimatedColumnWidths","estimateColumnWidths","columnWidths","dispatch","useReducer","columnWidthsReducer","measuredWidths","useRef","Map","measuredCells","Set","widthsCalculated","columnWidthsRef","lastCellKeySignatureRef","measurementTimerRef","needsMeasurement","setNeedsMeasurement","_previous","nextValue","expectedCellKeys","keys","forEach","_","colIndex","push","row","rowIndex","expectedCellKeySignature","join","useEffect","current","structureChanged","clearTimeout","clear","type","widths","setTimeout","onCellLayout","useCallback","cellKey","width","set","has","add","size","allCellsMeasured","every","key","maxWidths","col","headerWidth","Math","max","cellWidth","getAlignment","index","align","hasWidths","resolvedWidths","jsxs","View","container","children","measurementContainer","jsx","measurementRow","map","cell","measurementCell","onLayout","e","nativeEvent","layout","CellContent","ScrollView","horizontal","showsHorizontalScrollIndicator","tableScroll","bounces","table","backgroundColor","colors","surface","headerRow","headerCell","alignItems","lastCell","textStyle","headerText","bodyRow","lastRow","evenRow","oddRow","bodyCell","cellText","exports","borderRadius","m","StyleSheet","create","marginVertical","spacing","s","position","opacity","pointerEvents","left","flexDirection","paddingVertical","paddingHorizontal","flexGrow","overflow","borderWidth","borderColor","tableBorder","tableHeader","borderBottomWidth","borderBottomColor","tableRowEven","tableRowOdd","flexShrink","minWidth","borderRightWidth","borderRightColor","justifyContent","color","tableHeaderText","fontSize","fontWeight","fontFamily","fontFamilies","regular","Platform","OS","includeFontPadding","text","lineHeight","cellContentWrapper","flexWrap"],"sourceRoot":"../../../../src","sources":["renderers/table/index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.DEFAULT_MIN_COLUMN_WIDTH = exports.DEFAULT_MEASUREMENT_STABILIZE_MS = void 0;
|
|
7
|
+
exports.columnWidthsReducer = columnWidthsReducer;
|
|
8
|
+
const DEFAULT_MIN_COLUMN_WIDTH = exports.DEFAULT_MIN_COLUMN_WIDTH = 60;
|
|
9
|
+
const DEFAULT_MEASUREMENT_STABILIZE_MS = exports.DEFAULT_MEASUREMENT_STABILIZE_MS = 140;
|
|
10
|
+
function columnWidthsReducer(state, action) {
|
|
11
|
+
if (action.type === "RESET_WIDTHS") {
|
|
12
|
+
if (state.length === action.widths.length && state.every((width, index) => width === action.widths[index])) {
|
|
13
|
+
return state;
|
|
14
|
+
}
|
|
15
|
+
return action.widths;
|
|
16
|
+
}
|
|
17
|
+
if (action.type === "SET_MONOTONIC_WIDTHS") {
|
|
18
|
+
if (state.length !== action.widths.length) {
|
|
19
|
+
return action.widths;
|
|
20
|
+
}
|
|
21
|
+
const merged = action.widths.map((width, index) => Math.max(width, state[index] ?? width));
|
|
22
|
+
if (state.every((width, index) => width === merged[index])) {
|
|
23
|
+
return state;
|
|
24
|
+
}
|
|
25
|
+
return merged;
|
|
26
|
+
}
|
|
27
|
+
return state;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=table-reducer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["DEFAULT_MIN_COLUMN_WIDTH","exports","DEFAULT_MEASUREMENT_STABILIZE_MS","columnWidthsReducer","state","action","type","length","widths","every","width","index","merged","map","Math","max"],"sourceRoot":"../../../../src","sources":["renderers/table/table-reducer.ts"],"mappings":";;;;;;;AAEO,MAAMA,wBAAwB,GAAAC,OAAA,CAAAD,wBAAA,GAAG,EAAE;AACnC,MAAME,gCAAgC,GAAAD,OAAA,CAAAC,gCAAA,GAAG,GAAG;AAE5C,SAASC,mBAAmBA,CACjCC,KAAe,EACfC,MAAyB,EACf;EACV,IAAIA,MAAM,CAACC,IAAI,KAAK,cAAc,EAAE;IAClC,IACEF,KAAK,CAACG,MAAM,KAAKF,MAAM,CAACG,MAAM,CAACD,MAAM,IACrCH,KAAK,CAACK,KAAK,CAAC,CAACC,KAAK,EAAEC,KAAK,KAAKD,KAAK,KAAKL,MAAM,CAACG,MAAM,CAACG,KAAK,CAAC,CAAC,EAC7D;MACA,OAAOP,KAAK;IACd;IACA,OAAOC,MAAM,CAACG,MAAM;EACtB;EAEA,IAAIH,MAAM,CAACC,IAAI,KAAK,sBAAsB,EAAE;IAC1C,IAAIF,KAAK,CAACG,MAAM,KAAKF,MAAM,CAACG,MAAM,CAACD,MAAM,EAAE;MACzC,OAAOF,MAAM,CAACG,MAAM;IACtB;IAEA,MAAMI,MAAM,GAAGP,MAAM,CAACG,MAAM,CAACK,GAAG,CAAC,CAACH,KAAK,EAAEC,KAAK,KAC5CG,IAAI,CAACC,GAAG,CAACL,KAAK,EAAEN,KAAK,CAACO,KAAK,CAAC,IAAID,KAAK,CACvC,CAAC;IAED,IAAIN,KAAK,CAACK,KAAK,CAAC,CAACC,KAAK,EAAEC,KAAK,KAAKD,KAAK,KAAKE,MAAM,CAACD,KAAK,CAAC,CAAC,EAAE;MAC1D,OAAOP,KAAK;IACd;IACA,OAAOQ,MAAM;EACf;EAEA,OAAOR,KAAK;AACd","ignoreList":[]}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.extractTableData = exports.estimateColumnWidths = void 0;
|
|
7
|
+
var _headless = require("../../headless.js");
|
|
8
|
+
const COLUMN_MEASUREMENT_PADDING = 8;
|
|
9
|
+
const APPROX_CHAR_WIDTH = 7;
|
|
10
|
+
const MAX_ESTIMATED_CHARS = 120;
|
|
11
|
+
const ESTIMATED_WIDTH_STEP = 24;
|
|
12
|
+
const extractTableData = node => {
|
|
13
|
+
const headers = [];
|
|
14
|
+
const rows = [];
|
|
15
|
+
const alignments = [];
|
|
16
|
+
for (const child of node.children ?? []) {
|
|
17
|
+
if (child.type === "table_head") {
|
|
18
|
+
for (const row of child.children ?? []) {
|
|
19
|
+
if (row.type === "table_row") {
|
|
20
|
+
for (const cell of row.children ?? []) {
|
|
21
|
+
headers.push(cell);
|
|
22
|
+
alignments.push(cell.align);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
} else if (child.type === "table_body") {
|
|
27
|
+
for (const row of child.children ?? []) {
|
|
28
|
+
if (row.type === "table_row") {
|
|
29
|
+
const rowCells = [];
|
|
30
|
+
for (const cell of row.children ?? []) {
|
|
31
|
+
rowCells.push(cell);
|
|
32
|
+
}
|
|
33
|
+
rows.push(rowCells);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return {
|
|
39
|
+
headers,
|
|
40
|
+
rows,
|
|
41
|
+
alignments
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
exports.extractTableData = extractTableData;
|
|
45
|
+
const estimateColumnWidths = (headers, rows, columnCount, minColumnWidth) => {
|
|
46
|
+
const widths = new Array(columnCount).fill(minColumnWidth);
|
|
47
|
+
for (let col = 0; col < columnCount; col++) {
|
|
48
|
+
const headerChars = Math.min((0, _headless.getTextContent)(headers[col] ?? {
|
|
49
|
+
type: "text",
|
|
50
|
+
content: ""
|
|
51
|
+
}).trim().length, MAX_ESTIMATED_CHARS);
|
|
52
|
+
let maxChars = headerChars;
|
|
53
|
+
for (let row = 0; row < rows.length; row++) {
|
|
54
|
+
const cell = rows[row][col];
|
|
55
|
+
if (!cell) continue;
|
|
56
|
+
const cellChars = Math.min((0, _headless.getTextContent)(cell).trim().length, MAX_ESTIMATED_CHARS);
|
|
57
|
+
if (cellChars > maxChars) {
|
|
58
|
+
maxChars = cellChars;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
const estimatedWidth = maxChars * APPROX_CHAR_WIDTH + COLUMN_MEASUREMENT_PADDING;
|
|
62
|
+
const steppedEstimatedWidth = Math.ceil(estimatedWidth / ESTIMATED_WIDTH_STEP) * ESTIMATED_WIDTH_STEP;
|
|
63
|
+
widths[col] = Math.max(minColumnWidth, steppedEstimatedWidth);
|
|
64
|
+
}
|
|
65
|
+
return widths;
|
|
66
|
+
};
|
|
67
|
+
exports.estimateColumnWidths = estimateColumnWidths;
|
|
68
|
+
//# sourceMappingURL=table-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_headless","require","COLUMN_MEASUREMENT_PADDING","APPROX_CHAR_WIDTH","MAX_ESTIMATED_CHARS","ESTIMATED_WIDTH_STEP","extractTableData","node","headers","rows","alignments","child","children","type","row","cell","push","align","rowCells","exports","estimateColumnWidths","columnCount","minColumnWidth","widths","Array","fill","col","headerChars","Math","min","getTextContent","content","trim","length","maxChars","cellChars","estimatedWidth","steppedEstimatedWidth","ceil","max"],"sourceRoot":"../../../../src","sources":["renderers/table/table-utils.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["renderers/table/types.ts"],"mappings":"","ignoreList":[]}
|