@expensify/react-native-live-markdown 0.1.306 → 0.1.307
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/lib/commonjs/rangeUtils.js +7 -4
- package/lib/commonjs/rangeUtils.js.map +1 -1
- package/lib/module/rangeUtils.js +7 -4
- package/lib/module/rangeUtils.js.map +1 -1
- package/lib/typescript/src/commonTypes.d.ts +1 -0
- package/lib/typescript/src/commonTypes.d.ts.map +1 -1
- package/lib/typescript/src/rangeUtils.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/commonTypes.ts +1 -0
- package/src/rangeUtils.ts +7 -5
|
@@ -61,7 +61,6 @@ function ungroupRanges(ranges) {
|
|
|
61
61
|
});
|
|
62
62
|
return ungroupedRanges;
|
|
63
63
|
}
|
|
64
|
-
|
|
65
64
|
/**
|
|
66
65
|
* Creates a list of ranges that should not be formatted by certain markdown types (italic, strikethrough).
|
|
67
66
|
* This includes emojis and syntaxes of inline code blocks.
|
|
@@ -70,11 +69,14 @@ function getRangesToExcludeFormatting(ranges) {
|
|
|
70
69
|
let closingSyntaxPosition = null;
|
|
71
70
|
return ranges.filter((range, index) => {
|
|
72
71
|
const nextRange = ranges[index + 1];
|
|
72
|
+
const currentRange = range;
|
|
73
73
|
if (nextRange && nextRange.type === 'code' && range.type === 'syntax') {
|
|
74
|
+
currentRange.syntaxType = 'opening';
|
|
74
75
|
closingSyntaxPosition = nextRange.start + nextRange.length;
|
|
75
76
|
return true;
|
|
76
77
|
}
|
|
77
78
|
if (closingSyntaxPosition !== null && range.type === 'syntax' && range.start <= closingSyntaxPosition) {
|
|
79
|
+
currentRange.syntaxType = 'closing';
|
|
78
80
|
closingSyntaxPosition = null;
|
|
79
81
|
return true;
|
|
80
82
|
}
|
|
@@ -116,13 +118,14 @@ function excludeRangeTypesFromFormatting(ranges, baseMarkdownType, rangesToExclu
|
|
|
116
118
|
const newRange = {
|
|
117
119
|
type: currentRange.type,
|
|
118
120
|
start: currentStart,
|
|
119
|
-
length: excludeRangeStart - currentStart,
|
|
121
|
+
length: excludeRangeStart - currentStart + (excludeRange.syntaxType === 'opening' ? 1 : 0),
|
|
122
|
+
// Adjust the length so the new range from the split ends after the opening syntax
|
|
120
123
|
...(currentRange?.depth && {
|
|
121
124
|
depth: currentRange?.depth
|
|
122
125
|
})
|
|
123
126
|
};
|
|
124
|
-
currentRange.start = excludeRangeEnd;
|
|
125
|
-
currentRange.length = currentEnd - excludeRangeEnd;
|
|
127
|
+
currentRange.start = excludeRangeEnd + (excludeRange.syntaxType === 'closing' ? -1 : 0); // Adjust the current range to start before the closing syntax
|
|
128
|
+
currentRange.length = currentEnd - excludeRangeEnd + (excludeRange.syntaxType === 'closing' ? 1 : 0);
|
|
126
129
|
if (newRange.length > 0) {
|
|
127
130
|
newRanges.push(newRange);
|
|
128
131
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Object","defineProperty","exports","value","excludeRangeTypesFromFormatting","getRangesToExcludeFormatting","groupRanges","sortRanges","ungroupRanges","getTagPriority","tag","ranges","sort","a","b","start","length","type","lastVisibleRangeIndex","reduce","acc","range","end","rangeWithSameStyleIndex","sameStyleRange","undefined","depth","push","ungroupedRanges","forEach","rangeWithoutDepth","Array","from","closingSyntaxPosition","filter","index","nextRange","baseMarkdownType","rangesToExclude","newRanges","i","j","
|
|
1
|
+
{"version":3,"names":["Object","defineProperty","exports","value","excludeRangeTypesFromFormatting","getRangesToExcludeFormatting","groupRanges","sortRanges","ungroupRanges","getTagPriority","tag","ranges","sort","a","b","start","length","type","lastVisibleRangeIndex","reduce","acc","range","end","rangeWithSameStyleIndex","sameStyleRange","undefined","depth","push","ungroupedRanges","forEach","rangeWithoutDepth","Array","from","closingSyntaxPosition","filter","index","nextRange","currentRange","syntaxType","baseMarkdownType","rangesToExclude","newRanges","i","j","excludeRange","currentStart","currentEnd","excludeRangeStart","excludeRangeEnd","newRange"],"sourceRoot":"../../src","sources":["rangeUtils.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/rangeUtils.js
CHANGED
|
@@ -53,7 +53,6 @@ function ungroupRanges(ranges) {
|
|
|
53
53
|
});
|
|
54
54
|
return ungroupedRanges;
|
|
55
55
|
}
|
|
56
|
-
|
|
57
56
|
/**
|
|
58
57
|
* Creates a list of ranges that should not be formatted by certain markdown types (italic, strikethrough).
|
|
59
58
|
* This includes emojis and syntaxes of inline code blocks.
|
|
@@ -62,11 +61,14 @@ function getRangesToExcludeFormatting(ranges) {
|
|
|
62
61
|
let closingSyntaxPosition = null;
|
|
63
62
|
return ranges.filter((range, index) => {
|
|
64
63
|
const nextRange = ranges[index + 1];
|
|
64
|
+
const currentRange = range;
|
|
65
65
|
if (nextRange && nextRange.type === 'code' && range.type === 'syntax') {
|
|
66
|
+
currentRange.syntaxType = 'opening';
|
|
66
67
|
closingSyntaxPosition = nextRange.start + nextRange.length;
|
|
67
68
|
return true;
|
|
68
69
|
}
|
|
69
70
|
if (closingSyntaxPosition !== null && range.type === 'syntax' && range.start <= closingSyntaxPosition) {
|
|
71
|
+
currentRange.syntaxType = 'closing';
|
|
70
72
|
closingSyntaxPosition = null;
|
|
71
73
|
return true;
|
|
72
74
|
}
|
|
@@ -108,13 +110,14 @@ function excludeRangeTypesFromFormatting(ranges, baseMarkdownType, rangesToExclu
|
|
|
108
110
|
const newRange = {
|
|
109
111
|
type: currentRange.type,
|
|
110
112
|
start: currentStart,
|
|
111
|
-
length: excludeRangeStart - currentStart,
|
|
113
|
+
length: excludeRangeStart - currentStart + (excludeRange.syntaxType === 'opening' ? 1 : 0),
|
|
114
|
+
// Adjust the length so the new range from the split ends after the opening syntax
|
|
112
115
|
...(currentRange?.depth && {
|
|
113
116
|
depth: currentRange?.depth
|
|
114
117
|
})
|
|
115
118
|
};
|
|
116
|
-
currentRange.start = excludeRangeEnd;
|
|
117
|
-
currentRange.length = currentEnd - excludeRangeEnd;
|
|
119
|
+
currentRange.start = excludeRangeEnd + (excludeRange.syntaxType === 'closing' ? -1 : 0); // Adjust the current range to start before the closing syntax
|
|
120
|
+
currentRange.length = currentEnd - excludeRangeEnd + (excludeRange.syntaxType === 'closing' ? 1 : 0);
|
|
118
121
|
if (newRange.length > 0) {
|
|
119
122
|
newRanges.push(newRange);
|
|
120
123
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getTagPriority","tag","sortRanges","ranges","sort","a","b","start","length","type","groupRanges","lastVisibleRangeIndex","reduce","acc","range","end","rangeWithSameStyleIndex","sameStyleRange","undefined","depth","push","ungroupRanges","ungroupedRanges","forEach","rangeWithoutDepth","Array","from","getRangesToExcludeFormatting","closingSyntaxPosition","filter","index","nextRange","excludeRangeTypesFromFormatting","baseMarkdownType","rangesToExclude","newRanges","i","j","
|
|
1
|
+
{"version":3,"names":["getTagPriority","tag","sortRanges","ranges","sort","a","b","start","length","type","groupRanges","lastVisibleRangeIndex","reduce","acc","range","end","rangeWithSameStyleIndex","sameStyleRange","undefined","depth","push","ungroupRanges","ungroupedRanges","forEach","rangeWithoutDepth","Array","from","getRangesToExcludeFormatting","closingSyntaxPosition","filter","index","nextRange","currentRange","syntaxType","excludeRangeTypesFromFormatting","baseMarkdownType","rangesToExclude","newRanges","i","j","excludeRange","currentStart","currentEnd","excludeRangeStart","excludeRangeEnd","newRange"],"sourceRoot":"../../src","sources":["rangeUtils.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commonTypes.d.ts","sourceRoot":"","sources":["../../../src/commonTypes.ts"],"names":[],"mappings":"AAAA,KAAK,YAAY,GACb,MAAM,GACN,QAAQ,GACR,eAAe,GACf,OAAO,GACP,cAAc,GACd,cAAc,GACd,eAAe,GACf,gBAAgB,GAChB,MAAM,GACN,MAAM,GACN,KAAK,GACL,YAAY,GACZ,IAAI,GACJ,QAAQ,GACR,cAAc,GACd,WAAW,CAAC;AAEhB,UAAU,aAAa;IACrB,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"commonTypes.d.ts","sourceRoot":"","sources":["../../../src/commonTypes.ts"],"names":[],"mappings":"AAAA,KAAK,YAAY,GACb,MAAM,GACN,QAAQ,GACR,eAAe,GACf,OAAO,GACP,cAAc,GACd,cAAc,GACd,eAAe,GACf,gBAAgB,GAChB,MAAM,GACN,MAAM,GACN,KAAK,GACL,YAAY,GACZ,IAAI,GACJ,QAAQ,GACR,cAAc,GACd,WAAW,CAAC;AAEhB,UAAU,aAAa;IACrB,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;CACpC;AAED,KAAK,sBAAsB,GAAG;IAC5B,8BAA8B,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IACzD,4BAA4B,CAAC,EAAE,MAAM,EAAE,CAAC;CACzC,CAAC;AAEF,YAAY,EAAC,YAAY,EAAE,aAAa,EAAE,sBAAsB,EAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rangeUtils.d.ts","sourceRoot":"","sources":["../../../src/rangeUtils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,aAAa,EAAE,YAAY,EAAC,MAAM,eAAe,CAAC;AAgB/D,iBAAS,UAAU,CAAC,MAAM,EAAE,aAAa,EAAE,mBAG1C;AAED,iBAAS,WAAW,CAAC,MAAM,EAAE,aAAa,EAAE,mBAoB3C;AAED,iBAAS,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,aAAa,EAAE,CAY/D;
|
|
1
|
+
{"version":3,"file":"rangeUtils.d.ts","sourceRoot":"","sources":["../../../src/rangeUtils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,aAAa,EAAE,YAAY,EAAC,MAAM,eAAe,CAAC;AAgB/D,iBAAS,UAAU,CAAC,MAAM,EAAE,aAAa,EAAE,mBAG1C;AAED,iBAAS,WAAW,CAAC,MAAM,EAAE,aAAa,EAAE,mBAoB3C;AAED,iBAAS,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,aAAa,EAAE,CAY/D;AACD;;;GAGG;AACH,iBAAS,4BAA4B,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,aAAa,EAAE,CAiB9E;AAED;;;;;GAKG;AACH,iBAAS,+BAA+B,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,gBAAgB,EAAE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,GAAG,aAAa,EAAE,CAoDnJ;AAED,OAAO,EAAC,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,+BAA+B,EAAE,4BAA4B,EAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@expensify/react-native-live-markdown",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.307",
|
|
4
4
|
"description": "Drop-in replacement for React Native's TextInput component with Markdown formatting.",
|
|
5
5
|
"main": "lib/commonjs/index",
|
|
6
6
|
"module": "lib/module/index",
|
package/src/commonTypes.ts
CHANGED
package/src/rangeUtils.ts
CHANGED
|
@@ -56,20 +56,22 @@ function ungroupRanges(ranges: MarkdownRange[]): MarkdownRange[] {
|
|
|
56
56
|
});
|
|
57
57
|
return ungroupedRanges;
|
|
58
58
|
}
|
|
59
|
-
|
|
60
59
|
/**
|
|
61
60
|
* Creates a list of ranges that should not be formatted by certain markdown types (italic, strikethrough).
|
|
62
61
|
* This includes emojis and syntaxes of inline code blocks.
|
|
63
62
|
*/
|
|
64
|
-
function getRangesToExcludeFormatting(ranges: MarkdownRange[]) {
|
|
63
|
+
function getRangesToExcludeFormatting(ranges: MarkdownRange[]): MarkdownRange[] {
|
|
65
64
|
let closingSyntaxPosition: number | null = null;
|
|
66
65
|
return ranges.filter((range, index) => {
|
|
67
66
|
const nextRange = ranges[index + 1];
|
|
67
|
+
const currentRange = range;
|
|
68
68
|
if (nextRange && nextRange.type === 'code' && range.type === 'syntax') {
|
|
69
|
+
currentRange.syntaxType = 'opening';
|
|
69
70
|
closingSyntaxPosition = nextRange.start + nextRange.length;
|
|
70
71
|
return true;
|
|
71
72
|
}
|
|
72
73
|
if (closingSyntaxPosition !== null && range.type === 'syntax' && range.start <= closingSyntaxPosition) {
|
|
74
|
+
currentRange.syntaxType = 'closing';
|
|
73
75
|
closingSyntaxPosition = null;
|
|
74
76
|
return true;
|
|
75
77
|
}
|
|
@@ -115,11 +117,11 @@ function excludeRangeTypesFromFormatting(ranges: MarkdownRange[], baseMarkdownTy
|
|
|
115
117
|
const newRange: MarkdownRange = {
|
|
116
118
|
type: currentRange.type,
|
|
117
119
|
start: currentStart,
|
|
118
|
-
length: excludeRangeStart - currentStart,
|
|
120
|
+
length: excludeRangeStart - currentStart + (excludeRange.syntaxType === 'opening' ? 1 : 0), // Adjust the length so the new range from the split ends after the opening syntax
|
|
119
121
|
...(currentRange?.depth && {depth: currentRange?.depth}),
|
|
120
122
|
};
|
|
121
|
-
currentRange.start = excludeRangeEnd;
|
|
122
|
-
currentRange.length = currentEnd - excludeRangeEnd;
|
|
123
|
+
currentRange.start = excludeRangeEnd + (excludeRange.syntaxType === 'closing' ? -1 : 0); // Adjust the current range to start before the closing syntax
|
|
124
|
+
currentRange.length = currentEnd - excludeRangeEnd + (excludeRange.syntaxType === 'closing' ? 1 : 0);
|
|
123
125
|
|
|
124
126
|
if (newRange.length > 0) {
|
|
125
127
|
newRanges.push(newRange);
|