react-native-simple-rich-text-editor 0.3.1 → 0.3.3
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/index.js +17 -10
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/internal/rendering/components/Render.js +3 -1
- package/lib/commonjs/internal/rendering/components/Render.js.map +1 -1
- package/lib/commonjs/internal/text-formats/conversions.js +16 -3
- package/lib/commonjs/internal/text-formats/conversions.js.map +1 -1
- package/lib/commonjs/internal/text-formats/unicode-markers-format/constants.js +2 -2
- package/lib/commonjs/internal/text-formats/unicode-markers-format/constants.js.map +1 -1
- package/lib/module/index.js +17 -10
- package/lib/module/index.js.map +1 -1
- package/lib/module/internal/rendering/components/Render.js +3 -1
- package/lib/module/internal/rendering/components/Render.js.map +1 -1
- package/lib/module/internal/text-formats/conversions.js +17 -4
- package/lib/module/internal/text-formats/conversions.js.map +1 -1
- package/lib/module/internal/text-formats/unicode-markers-format/constants.js +1 -1
- package/lib/module/internal/text-formats/unicode-markers-format/constants.js.map +1 -1
- package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/internal/rendering/components/Render.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/internal/text-formats/conversions.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/internal/text-formats/unicode-markers-format/constants.d.ts +2 -1
- package/lib/typescript/commonjs/src/internal/text-formats/unicode-markers-format/constants.d.ts.map +1 -1
- package/lib/typescript/module/src/index.d.ts.map +1 -1
- package/lib/typescript/module/src/internal/rendering/components/Render.d.ts.map +1 -1
- package/lib/typescript/module/src/internal/text-formats/conversions.d.ts.map +1 -1
- package/lib/typescript/module/src/internal/text-formats/unicode-markers-format/constants.d.ts +2 -1
- package/lib/typescript/module/src/internal/text-formats/unicode-markers-format/constants.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/index.tsx +35 -10
- package/src/internal/rendering/components/Render.tsx +6 -1
- package/src/internal/text-formats/conversions.ts +19 -4
- package/src/internal/text-formats/unicode-markers-format/constants.ts +1 -0
package/lib/commonjs/index.js
CHANGED
@@ -105,7 +105,7 @@ const RichTextEditor = ({
|
|
105
105
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
106
106
|
style: styles.container,
|
107
107
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
108
|
-
style: styles.
|
108
|
+
style: styles.toolbar,
|
109
109
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
|
110
110
|
style: styles.button,
|
111
111
|
onPress: () => handleTextChange((0, _textManipulation.addHeadlineMarker)(_markers.Markers.H1, internalText, selection)),
|
@@ -135,18 +135,18 @@ const RichTextEditor = ({
|
|
135
135
|
children: "List"
|
136
136
|
})
|
137
137
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
|
138
|
-
style: [styles.button, styles.fixedWidth],
|
138
|
+
style: [styles.button, styles.fixedWidth, needsBoldEndMarker ? styles.endFontStyleButton : null],
|
139
139
|
onPress: handleFontStyleMarkerInsertion('bold'),
|
140
140
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
141
|
-
style: styles.buttonText,
|
142
|
-
children:
|
141
|
+
style: [styles.buttonText, needsBoldEndMarker ? styles.endFontStyleText : null],
|
142
|
+
children: "Bold"
|
143
143
|
})
|
144
144
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
|
145
|
-
style: [styles.button, styles.fixedWidth],
|
145
|
+
style: [styles.button, styles.fixedWidth, needsItalicEndMarker ? styles.endFontStyleButton : null],
|
146
146
|
onPress: handleFontStyleMarkerInsertion('italic'),
|
147
147
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
|
148
|
-
style: styles.buttonText,
|
149
|
-
children:
|
148
|
+
style: [styles.buttonText, needsItalicEndMarker ? styles.endFontStyleText : null],
|
149
|
+
children: "Italic"
|
150
150
|
})
|
151
151
|
})]
|
152
152
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TextInput, {
|
@@ -164,12 +164,13 @@ const RichTextEditor = ({
|
|
164
164
|
};
|
165
165
|
exports.RichTextEditor = RichTextEditor;
|
166
166
|
const electricBlueHex = '#009DDC';
|
167
|
+
const jasperRedHex = '#E03A3E';
|
167
168
|
const styles = _reactNative.StyleSheet.create({
|
168
169
|
container: {
|
169
170
|
flex: 1
|
170
171
|
},
|
171
|
-
|
172
|
-
|
172
|
+
toolbar: {
|
173
|
+
marginVertical: 8,
|
173
174
|
flexDirection: 'row',
|
174
175
|
justifyContent: 'space-between',
|
175
176
|
flexWrap: 'nowrap'
|
@@ -192,7 +193,13 @@ const styles = _reactNative.StyleSheet.create({
|
|
192
193
|
color: electricBlueHex
|
193
194
|
},
|
194
195
|
fixedWidth: {
|
195
|
-
width:
|
196
|
+
width: 80
|
197
|
+
},
|
198
|
+
endFontStyleButton: {
|
199
|
+
borderColor: jasperRedHex
|
200
|
+
},
|
201
|
+
endFontStyleText: {
|
202
|
+
color: jasperRedHex
|
196
203
|
}
|
197
204
|
});
|
198
205
|
var _default = exports.default = RichTextEditor;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNative","_Render","_textManipulation","_markers","_jsxRuntime","debounce","func","delay","timeoutId","args","clearTimeout","setTimeout","RichTextEditor","text","externalText","onEmitText","emitTextAfterMillisecondsOfInactivity","internalText","setInternalText","useState","selection","setSelection","start","end","needsBoldEndMarker","setNeedsBoldEndMarker","needsItalicEndMarker","setNeedsItalicEndMarker","debouncedEmitText","useRef","newText","current","useEffect","handleTextChange","useCallback","handleFontStyleMarkerInsertion","style","isBold","addFontStyleEndMarker","addFontStyleMarkers","jsxs","View","styles","container","children","
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_Render","_textManipulation","_markers","_jsxRuntime","debounce","func","delay","timeoutId","args","clearTimeout","setTimeout","RichTextEditor","text","externalText","onEmitText","emitTextAfterMillisecondsOfInactivity","internalText","setInternalText","useState","selection","setSelection","start","end","needsBoldEndMarker","setNeedsBoldEndMarker","needsItalicEndMarker","setNeedsItalicEndMarker","debouncedEmitText","useRef","newText","current","useEffect","handleTextChange","useCallback","handleFontStyleMarkerInsertion","style","isBold","addFontStyleEndMarker","addFontStyleMarkers","jsxs","View","styles","container","children","toolbar","jsx","TouchableOpacity","button","onPress","addHeadlineMarker","Markers","H1","Text","buttonText","H2","H3","addBulletPointMarker","fixedWidth","endFontStyleButton","endFontStyleText","TextInput","multiline","autoFocus","autoCorrect","input","onSelectionChange","e","nativeEvent","onChangeText","Render","encodedText","exports","electricBlueHex","jasperRedHex","StyleSheet","create","flex","marginVertical","flexDirection","justifyContent","flexWrap","textAlignVertical","paddingVertical","paddingHorizontal","borderRadius","borderWidth","borderColor","backgroundColor","flexShrink","textAlign","color","width","_default","default"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
|
@@ -13,10 +13,12 @@ var _jsxRuntime = require("react/jsx-runtime");
|
|
13
13
|
var _Italic = require("./Italic.js");
|
14
14
|
var _BulletPoint = require("./BulletPoint.js");
|
15
15
|
var _utils = require("../utils.js");
|
16
|
+
const bulletPointRegex = new RegExp(_constants.BULLET_POINT_STRING_REPRESENTATION.trimEnd() + ' ?', 'g'); // matches the bullet point alone or the bullet point followed by a space
|
17
|
+
|
16
18
|
const Render = ({
|
17
19
|
encodedText
|
18
20
|
}) => {
|
19
|
-
const lines = splitPreservingSeparator(encodedText.replaceAll(
|
21
|
+
const lines = splitPreservingSeparator(encodedText.replaceAll(bulletPointRegex, ''), _constants.ZWS); // each BulletPoint.tsx instance adds a BULLET_POINT_STRING_REPRESENTATION, we need to remove them to avoid adding extra chars on each render
|
20
22
|
|
21
23
|
return lines.map((line, i) => {
|
22
24
|
const marker = line.substring(0, _constants.MARKER_STRING_LENGTH);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_constants","_Headline","_Bold","_markers","_jsxRuntime","_Italic","_BulletPoint","_utils","Render","encodedText","lines","splitPreservingSeparator","replaceAll","
|
1
|
+
{"version":3,"names":["_reactNative","require","_constants","_Headline","_Bold","_markers","_jsxRuntime","_Italic","_BulletPoint","_utils","bulletPointRegex","RegExp","BULLET_POINT_STRING_REPRESENTATION","trimEnd","Render","encodedText","lines","splitPreservingSeparator","replaceAll","ZWS","map","line","i","marker","substring","MARKER_STRING_LENGTH","Markers","H1","H2","H3","headline","restOfLineWithoutMarkers","jsxs","Fragment","children","jsx","Headline","level","join","UL","bulletPoints","paragraphs","intersperse","split","bulletPointLine","j","BulletPoint","p","Text","BOLD_START","Bold","BOLD_END","ITALIC_START","Italic","ITALIC_END","length","exports","str","separator","s"],"sourceRoot":"../../../../../src","sources":["internal/rendering/components/Render.tsx"],"mappings":"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","ignoreList":[]}
|
@@ -9,7 +9,9 @@ var _encodeDecode = require("./unicode-markers-format/encode-decode.js");
|
|
9
9
|
const Markdown = {
|
10
10
|
H1: '# ',
|
11
11
|
H2: '## ',
|
12
|
-
H3: '### '
|
12
|
+
H3: '### ',
|
13
|
+
BOLD: '**',
|
14
|
+
ITALIC: '__'
|
13
15
|
};
|
14
16
|
/**
|
15
17
|
* convertInternalFormatToMarkdown converts text from the internal format to Markdown
|
@@ -25,8 +27,14 @@ const convertInternalFormatToMarkdown = internalText => {
|
|
25
27
|
while (i < internalText.length) {
|
26
28
|
const char = internalText[i];
|
27
29
|
if (char === _constants.ZWS) {
|
28
|
-
markdownText += decodedTokenToMarkdownToken((0, _encodeDecode.decode)(internalText.substring(i, i + _constants.
|
29
|
-
|
30
|
+
markdownText += decodedTokenToMarkdownToken((0, _encodeDecode.decode)(internalText.substring(i, i + _constants.MARKER_STRING_LENGTH)));
|
31
|
+
/**
|
32
|
+
* Funny: when we use ${Markers.H1}Headline 1 in ./src/__tests__/utils/texts.ts to declare the test input text in the internal format,
|
33
|
+
* then we need to use MARKER_STRING_LENGTH to iterate to the next character.
|
34
|
+
* When we use a text like in `internalText1WithRealMarkers` variable, that has been produced by a function and copy-n-pasted,
|
35
|
+
* then need to use MARKER_BYTE_LENGTH..
|
36
|
+
*/
|
37
|
+
i += _constants.MARKER_STRING_LENGTH;
|
30
38
|
} else {
|
31
39
|
markdownText += char;
|
32
40
|
i++;
|
@@ -40,6 +48,11 @@ const decodedTokenToMarkdownToken = internalToken => {
|
|
40
48
|
switch (internalToken[0]) {
|
41
49
|
case _constants.HEADLINE_MARKER_TYPE:
|
42
50
|
return Markdown[`H${internalToken[1]}`];
|
51
|
+
case _constants.BOLD_MARKER_TYPE:
|
52
|
+
// no need to check whether it is a start marker or end marker, because they are the same in markdown
|
53
|
+
return Markdown.BOLD;
|
54
|
+
case _constants.ITALIC_MARKER_TYPE:
|
55
|
+
return Markdown.ITALIC;
|
43
56
|
default:
|
44
57
|
return '';
|
45
58
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_constants","require","_encodeDecode","Markdown","H1","H2","H3","convertInternalFormatToMarkdown","internalText","markdownText","i","length","char","ZWS","decodedTokenToMarkdownToken","decode","substring","
|
1
|
+
{"version":3,"names":["_constants","require","_encodeDecode","Markdown","H1","H2","H3","BOLD","ITALIC","convertInternalFormatToMarkdown","internalText","markdownText","i","length","char","ZWS","decodedTokenToMarkdownToken","decode","substring","MARKER_STRING_LENGTH","exports","internalToken","HEADLINE_MARKER_TYPE","BOLD_MARKER_TYPE","ITALIC_MARKER_TYPE"],"sourceRoot":"../../../../src","sources":["internal/text-formats/conversions.ts"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAQA,IAAAC,aAAA,GAAAD,OAAA;AAEA,MAAME,QAAQ,GAAG;EACfC,EAAE,EAAE,IAAI;EACRC,EAAE,EAAE,KAAK;EACTC,EAAE,EAAE,MAAM;EACVC,IAAI,EAAE,IAAI;EACVC,MAAM,EAAE;AACV,CAAU;AAIV;AACA;AACA;AACA;AACA;AACA,MAAMC,+BAA+B,GACnCC,YAAoB,IACD;EACnB;EACA;EACA;EACA,IAAIC,YAAY,GAAG,EAAE;EAErB,IAAIC,CAAC,GAAG,CAAC;EACT,OAAOA,CAAC,GAAGF,YAAY,CAACG,MAAM,EAAE;IAC9B,MAAMC,IAAI,GAAGJ,YAAY,CAACE,CAAC,CAAC;IAE5B,IAAIE,IAAI,KAAKC,cAAG,EAAE;MAChBJ,YAAY,IAAIK,2BAA2B,CACzC,IAAAC,oBAAM,EAACP,YAAY,CAACQ,SAAS,CAACN,CAAC,EAAEA,CAAC,GAAGO,+BAAoB,CAAC,CAC5D,CAAC;MACD;AACN;AACA;AACA;AACA;AACA;MACMP,CAAC,IAAIO,+BAAoB;IAC3B,CAAC,MAAM;MACLR,YAAY,IAAIG,IAAI;MACpBF,CAAC,EAAE;IACL;EACF;EAEA,OAAOD,YAAY;AACrB,CAAC;AAACS,OAAA,CAAAX,+BAAA,GAAAA,+BAAA;AAEF,MAAMO,2BAA2B,GAC/BK,aAAuB,IACJ;EACnB;EACA,QAAQA,aAAa,CAAC,CAAC,CAAC;IACtB,KAAKC,+BAAoB;MACvB,OAAOnB,QAAQ,CACb,IAAIkB,aAAa,CAAC,CAAC,CAAC,EAA4D,CACjF;IACH,KAAKE,2BAAgB;MACnB;MACA,OAAOpB,QAAQ,CAACI,IAAI;IACtB,KAAKiB,6BAAkB;MACrB,OAAOrB,QAAQ,CAACK,MAAM;IACxB;MACE,OAAO,EAAE;EACb;AACF,CAAC","ignoreList":[]}
|
@@ -3,7 +3,7 @@
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
4
4
|
value: true
|
5
5
|
});
|
6
|
-
exports.ZWS = exports.MARKER_STRING_LENGTH = exports.MARKER_BYTE_LENGTH = exports.ITALIC_MARKERS = exports.HEADLINE_MARKER_TYPE = exports.HEADLINE_MARKERS = exports.HEADLINE_LEVELS = exports.BULLET_POINT_UL_MARKER = exports.BULLET_POINT_STRING_REPRESENTATION = exports.BOLD_MARKER_TYPE = exports.BOLD_MARKERS = void 0;
|
6
|
+
exports.ZWS = exports.MARKER_STRING_LENGTH = exports.MARKER_BYTE_LENGTH = exports.ITALIC_MARKER_TYPE = exports.ITALIC_MARKERS = exports.HEADLINE_MARKER_TYPE = exports.HEADLINE_MARKERS = exports.HEADLINE_LEVELS = exports.BULLET_POINT_UL_MARKER = exports.BULLET_POINT_STRING_REPRESENTATION = exports.BOLD_MARKER_TYPE = exports.BOLD_MARKERS = void 0;
|
7
7
|
/**
|
8
8
|
* Constants for rich text markers.
|
9
9
|
*/
|
@@ -29,7 +29,7 @@ const BOLD_MARKERS = exports.BOLD_MARKERS = {
|
|
29
29
|
START: createMarker([BOLD_MARKER_TYPE, BOLD_MARKER_START]),
|
30
30
|
END: createMarker([BOLD_MARKER_TYPE, BOLD_MARKER_END])
|
31
31
|
};
|
32
|
-
const ITALIC_MARKER_TYPE = 0x30;
|
32
|
+
const ITALIC_MARKER_TYPE = exports.ITALIC_MARKER_TYPE = 0x30;
|
33
33
|
const ITALIC_MARKER_START = 3;
|
34
34
|
const ITALIC_MARKER_END = 4;
|
35
35
|
const ITALIC_MARKERS = exports.ITALIC_MARKERS = {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["ZWS","exports","MARKER_BYTE_LENGTH","MARKER_STRING_LENGTH","HEADLINE_MARKER_TYPE","HEADLINE_LEVELS","H1","H2","H3","HEADLINE_MARKERS","createMarker","BOLD_MARKER_TYPE","BOLD_MARKER_START","BOLD_MARKER_END","BOLD_MARKERS","START","END","ITALIC_MARKER_TYPE","ITALIC_MARKER_START","ITALIC_MARKER_END","ITALIC_MARKERS","BULLET_POINT_MARKER_TYPE","BULLET_POINT_UNORDERED","BULLET_POINT_UL_MARKER","BULLET_POINT_STRING_REPRESENTATION","data","length","array","Uint8Array","set"],"sourceRoot":"../../../../../src","sources":["internal/text-formats/unicode-markers-format/constants.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA,MAAMA,GAAG,GAAAC,OAAA,CAAAD,GAAA,GAAG,QAAQ,CAAC,CAAC;AACtB,MAAME,kBAAkB,GAAAD,OAAA,CAAAC,kBAAA,GAAG,CAAC,CAAC,CAAC;AAC9B,MAAMC,oBAAoB,GAAAF,OAAA,CAAAE,oBAAA,GAAGD,kBAAkB,GAAG,CAAC,CAAC,CAAC;AACrD,MAAME,oBAAoB,GAAAH,OAAA,CAAAG,oBAAA,GAAG,IAAI,CAAC,CAAC;AACnC;AACA,MAAMC,eAAe,GAAAJ,OAAA,CAAAI,eAAA,GAAG;EACtBC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE;AACN,CAAU;AACV,MAAMC,gBAAkE,GAAAR,OAAA,CAAAQ,gBAAA,GAAG;EACzEH,EAAE,EAAEI,YAAY,CAAC,CAACN,oBAAoB,EAAEC,eAAe,CAACC,EAAE,CAAC,CAAC;EAC5DC,EAAE,EAAEG,YAAY,CAAC,CAACN,oBAAoB,EAAEC,eAAe,CAACE,EAAE,CAAC,CAAC;EAC5DC,EAAE,EAAEE,YAAY,CAAC,CAACN,oBAAoB,EAAEC,eAAe,CAACG,EAAE,CAAC;AAC7D,CAAU;AAEV,MAAMG,gBAAgB,GAAAV,OAAA,CAAAU,gBAAA,GAAG,IAAI;AAC7B,MAAMC,iBAAiB,GAAG,CAAC;AAC3B,MAAMC,eAAe,GAAG,CAAC;AAEzB,MAAMC,YAAY,GAAAb,OAAA,CAAAa,YAAA,GAAG;EACnBC,KAAK,EAAEL,YAAY,CAAC,CAACC,gBAAgB,EAAEC,iBAAiB,CAAC,CAAC;EAC1DI,GAAG,EAAEN,YAAY,CAAC,CAACC,gBAAgB,EAAEE,eAAe,CAAC;AACvD,CAAU;AAEV,MAAMI,kBAAkB,GAAG,IAAI;AAC/B,MAAMC,mBAAmB,GAAG,CAAC;AAC7B,MAAMC,iBAAiB,GAAG,CAAC;AAE3B,MAAMC,cAAc,GAAAnB,OAAA,CAAAmB,cAAA,GAAG;EACrBL,KAAK,EAAEL,YAAY,CAAC,CAACO,kBAAkB,EAAEC,mBAAmB,CAAC,CAAC;EAC9DF,GAAG,EAAEN,YAAY,CAAC,CAACO,kBAAkB,EAAEE,iBAAiB,CAAC;AAC3D,CAAU;AAEV,MAAME,wBAAwB,GAAG,IAAI;AACrC,MAAMC,sBAAsB,GAAG,CAAC;AAChC,MAAMC,sBAAsB,GAAAtB,OAAA,CAAAsB,sBAAA,GAAGb,YAAY,CAAC,CAC1CW,wBAAwB,EACxBC,sBAAsB,CACvB,CAAC;AACF,MAAME,kCAAkC,GAAAvB,OAAA,CAAAuB,kCAAA,GAAG,IAAI;AAE/C,SAASd,YAAYA,CAACe,IAAc,EAAEC,MAAM,GAAGxB,kBAAkB,EAAE;EACjE,MAAMyB,KAAK,GAAG,IAAIC,UAAU,CAACF,MAAM,CAAC;EACpCC,KAAK,CAACE,GAAG,CAACJ,IAAI,CAAC;EACf,OAAOE,KAAK;AACd","ignoreList":[]}
|
1
|
+
{"version":3,"names":["ZWS","exports","MARKER_BYTE_LENGTH","MARKER_STRING_LENGTH","HEADLINE_MARKER_TYPE","HEADLINE_LEVELS","H1","H2","H3","HEADLINE_MARKERS","createMarker","BOLD_MARKER_TYPE","BOLD_MARKER_START","BOLD_MARKER_END","BOLD_MARKERS","START","END","ITALIC_MARKER_TYPE","ITALIC_MARKER_START","ITALIC_MARKER_END","ITALIC_MARKERS","BULLET_POINT_MARKER_TYPE","BULLET_POINT_UNORDERED","BULLET_POINT_UL_MARKER","BULLET_POINT_STRING_REPRESENTATION","data","length","array","Uint8Array","set"],"sourceRoot":"../../../../../src","sources":["internal/text-formats/unicode-markers-format/constants.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA,MAAMA,GAAG,GAAAC,OAAA,CAAAD,GAAA,GAAG,QAAQ,CAAC,CAAC;AACtB,MAAME,kBAAkB,GAAAD,OAAA,CAAAC,kBAAA,GAAG,CAAC,CAAC,CAAC;AAC9B,MAAMC,oBAAoB,GAAAF,OAAA,CAAAE,oBAAA,GAAGD,kBAAkB,GAAG,CAAC,CAAC,CAAC;AACrD,MAAME,oBAAoB,GAAAH,OAAA,CAAAG,oBAAA,GAAG,IAAI,CAAC,CAAC;AACnC;AACA,MAAMC,eAAe,GAAAJ,OAAA,CAAAI,eAAA,GAAG;EACtBC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE;AACN,CAAU;AACV,MAAMC,gBAAkE,GAAAR,OAAA,CAAAQ,gBAAA,GAAG;EACzEH,EAAE,EAAEI,YAAY,CAAC,CAACN,oBAAoB,EAAEC,eAAe,CAACC,EAAE,CAAC,CAAC;EAC5DC,EAAE,EAAEG,YAAY,CAAC,CAACN,oBAAoB,EAAEC,eAAe,CAACE,EAAE,CAAC,CAAC;EAC5DC,EAAE,EAAEE,YAAY,CAAC,CAACN,oBAAoB,EAAEC,eAAe,CAACG,EAAE,CAAC;AAC7D,CAAU;AAEV,MAAMG,gBAAgB,GAAAV,OAAA,CAAAU,gBAAA,GAAG,IAAI;AAC7B,MAAMC,iBAAiB,GAAG,CAAC;AAC3B,MAAMC,eAAe,GAAG,CAAC;AAEzB,MAAMC,YAAY,GAAAb,OAAA,CAAAa,YAAA,GAAG;EACnBC,KAAK,EAAEL,YAAY,CAAC,CAACC,gBAAgB,EAAEC,iBAAiB,CAAC,CAAC;EAC1DI,GAAG,EAAEN,YAAY,CAAC,CAACC,gBAAgB,EAAEE,eAAe,CAAC;AACvD,CAAU;AAEV,MAAMI,kBAAkB,GAAAhB,OAAA,CAAAgB,kBAAA,GAAG,IAAI;AAC/B,MAAMC,mBAAmB,GAAG,CAAC;AAC7B,MAAMC,iBAAiB,GAAG,CAAC;AAE3B,MAAMC,cAAc,GAAAnB,OAAA,CAAAmB,cAAA,GAAG;EACrBL,KAAK,EAAEL,YAAY,CAAC,CAACO,kBAAkB,EAAEC,mBAAmB,CAAC,CAAC;EAC9DF,GAAG,EAAEN,YAAY,CAAC,CAACO,kBAAkB,EAAEE,iBAAiB,CAAC;AAC3D,CAAU;AAEV,MAAME,wBAAwB,GAAG,IAAI;AACrC,MAAMC,sBAAsB,GAAG,CAAC;AAChC,MAAMC,sBAAsB,GAAAtB,OAAA,CAAAsB,sBAAA,GAAGb,YAAY,CAAC,CAC1CW,wBAAwB,EACxBC,sBAAsB,CACvB,CAAC;AACF,MAAME,kCAAkC,GAAAvB,OAAA,CAAAuB,kCAAA,GAAG,IAAI;AAE/C,SAASd,YAAYA,CAACe,IAAc,EAAEC,MAAM,GAAGxB,kBAAkB,EAAE;EACjE,MAAMyB,KAAK,GAAG,IAAIC,UAAU,CAACF,MAAM,CAAC;EACpCC,KAAK,CAACE,GAAG,CAACJ,IAAI,CAAC;EACf,OAAOE,KAAK;AACd","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
@@ -102,7 +102,7 @@ const RichTextEditor = ({
|
|
102
102
|
return /*#__PURE__*/_jsxs(View, {
|
103
103
|
style: styles.container,
|
104
104
|
children: [/*#__PURE__*/_jsxs(View, {
|
105
|
-
style: styles.
|
105
|
+
style: styles.toolbar,
|
106
106
|
children: [/*#__PURE__*/_jsx(TouchableOpacity, {
|
107
107
|
style: styles.button,
|
108
108
|
onPress: () => handleTextChange(addHeadlineMarker(Markers.H1, internalText, selection)),
|
@@ -132,18 +132,18 @@ const RichTextEditor = ({
|
|
132
132
|
children: "List"
|
133
133
|
})
|
134
134
|
}), /*#__PURE__*/_jsx(TouchableOpacity, {
|
135
|
-
style: [styles.button, styles.fixedWidth],
|
135
|
+
style: [styles.button, styles.fixedWidth, needsBoldEndMarker ? styles.endFontStyleButton : null],
|
136
136
|
onPress: handleFontStyleMarkerInsertion('bold'),
|
137
137
|
children: /*#__PURE__*/_jsx(Text, {
|
138
|
-
style: styles.buttonText,
|
139
|
-
children:
|
138
|
+
style: [styles.buttonText, needsBoldEndMarker ? styles.endFontStyleText : null],
|
139
|
+
children: "Bold"
|
140
140
|
})
|
141
141
|
}), /*#__PURE__*/_jsx(TouchableOpacity, {
|
142
|
-
style: [styles.button, styles.fixedWidth],
|
142
|
+
style: [styles.button, styles.fixedWidth, needsItalicEndMarker ? styles.endFontStyleButton : null],
|
143
143
|
onPress: handleFontStyleMarkerInsertion('italic'),
|
144
144
|
children: /*#__PURE__*/_jsx(Text, {
|
145
|
-
style: styles.buttonText,
|
146
|
-
children:
|
145
|
+
style: [styles.buttonText, needsItalicEndMarker ? styles.endFontStyleText : null],
|
146
|
+
children: "Italic"
|
147
147
|
})
|
148
148
|
})]
|
149
149
|
}), /*#__PURE__*/_jsx(TextInput, {
|
@@ -160,12 +160,13 @@ const RichTextEditor = ({
|
|
160
160
|
});
|
161
161
|
};
|
162
162
|
const electricBlueHex = '#009DDC';
|
163
|
+
const jasperRedHex = '#E03A3E';
|
163
164
|
const styles = StyleSheet.create({
|
164
165
|
container: {
|
165
166
|
flex: 1
|
166
167
|
},
|
167
|
-
|
168
|
-
|
168
|
+
toolbar: {
|
169
|
+
marginVertical: 8,
|
169
170
|
flexDirection: 'row',
|
170
171
|
justifyContent: 'space-between',
|
171
172
|
flexWrap: 'nowrap'
|
@@ -188,7 +189,13 @@ const styles = StyleSheet.create({
|
|
188
189
|
color: electricBlueHex
|
189
190
|
},
|
190
191
|
fixedWidth: {
|
191
|
-
width:
|
192
|
+
width: 80
|
193
|
+
},
|
194
|
+
endFontStyleButton: {
|
195
|
+
borderColor: jasperRedHex
|
196
|
+
},
|
197
|
+
endFontStyleText: {
|
198
|
+
color: jasperRedHex
|
192
199
|
}
|
193
200
|
});
|
194
201
|
export default RichTextEditor;
|
package/lib/module/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["useState","useEffect","useRef","useCallback","StyleSheet","TextInput","TouchableOpacity","View","Text","Render","addFontStyleMarkers","addFontStyleEndMarker","addHeadlineMarker","addBulletPointMarker","Markers","jsx","_jsx","jsxs","_jsxs","debounce","func","delay","timeoutId","args","clearTimeout","setTimeout","RichTextEditor","text","externalText","onEmitText","emitTextAfterMillisecondsOfInactivity","internalText","setInternalText","selection","setSelection","start","end","needsBoldEndMarker","setNeedsBoldEndMarker","needsItalicEndMarker","setNeedsItalicEndMarker","debouncedEmitText","newText","current","handleTextChange","handleFontStyleMarkerInsertion","style","isBold","styles","container","children","
|
1
|
+
{"version":3,"names":["useState","useEffect","useRef","useCallback","StyleSheet","TextInput","TouchableOpacity","View","Text","Render","addFontStyleMarkers","addFontStyleEndMarker","addHeadlineMarker","addBulletPointMarker","Markers","jsx","_jsx","jsxs","_jsxs","debounce","func","delay","timeoutId","args","clearTimeout","setTimeout","RichTextEditor","text","externalText","onEmitText","emitTextAfterMillisecondsOfInactivity","internalText","setInternalText","selection","setSelection","start","end","needsBoldEndMarker","setNeedsBoldEndMarker","needsItalicEndMarker","setNeedsItalicEndMarker","debouncedEmitText","newText","current","handleTextChange","handleFontStyleMarkerInsertion","style","isBold","styles","container","children","toolbar","button","onPress","H1","buttonText","H2","H3","fixedWidth","endFontStyleButton","endFontStyleText","multiline","autoFocus","autoCorrect","input","onSelectionChange","e","nativeEvent","onChangeText","encodedText","electricBlueHex","jasperRedHex","create","flex","marginVertical","flexDirection","justifyContent","flexWrap","textAlignVertical","paddingVertical","paddingHorizontal","borderRadius","borderWidth","borderColor","backgroundColor","flexShrink","textAlign","color","width"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
|
@@ -9,10 +9,12 @@ import { Fragment, jsx as _jsx, jsxs as _jsxs } from 'react/jsx-runtime';
|
|
9
9
|
import { Italic } from "./Italic.js";
|
10
10
|
import { BulletPoint } from "./BulletPoint.js";
|
11
11
|
import { intersperse } from "../utils.js";
|
12
|
+
const bulletPointRegex = new RegExp(BULLET_POINT_STRING_REPRESENTATION.trimEnd() + ' ?', 'g'); // matches the bullet point alone or the bullet point followed by a space
|
13
|
+
|
12
14
|
export const Render = ({
|
13
15
|
encodedText
|
14
16
|
}) => {
|
15
|
-
const lines = splitPreservingSeparator(encodedText.replaceAll(
|
17
|
+
const lines = splitPreservingSeparator(encodedText.replaceAll(bulletPointRegex, ''), ZWS); // each BulletPoint.tsx instance adds a BULLET_POINT_STRING_REPRESENTATION, we need to remove them to avoid adding extra chars on each render
|
16
18
|
|
17
19
|
return lines.map((line, i) => {
|
18
20
|
const marker = line.substring(0, MARKER_STRING_LENGTH);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["Text","ZWS","MARKER_STRING_LENGTH","BULLET_POINT_STRING_REPRESENTATION","Headline","Bold","Markers","Fragment","jsx","_jsx","jsxs","_jsxs","Italic","BulletPoint","intersperse","Render","encodedText","lines","splitPreservingSeparator","replaceAll","map","line","i","marker","substring","H1","H2","H3","headline","restOfLineWithoutMarkers","children","level","join","UL","bulletPoints","paragraphs","split","bulletPointLine","j","p","BOLD_START","BOLD_END","ITALIC_START","ITALIC_END","length","str","separator","s"],"sourceRoot":"../../../../../src","sources":["internal/rendering/components/Render.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,cAAc;AACnC,SACEC,GAAG,EACHC,oBAAoB,EACpBC,kCAAkC,QAC7B,wDAAwD;AAC/D,SAASC,QAAQ,QAAQ,eAAgB;AACzC,SAASC,IAAI,QAAQ,WAAY;AACjC,SAASC,OAAO,QAAQ,sDAAsD;AAC9E,SAASC,QAAQ,EAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA,QAAQ,mBAAmB;AAC5C,SAASC,MAAM,QAAQ,aAAc;AACrC,SAASC,WAAW,QAAQ,kBAAmB;AAC/C,SAASC,WAAW,QAAQ,aAAa;AAEzC,OAAO,MAAMC,MAAM,GAAGA,CAAC;EAAEC;AAAqC,CAAC,KAAK;EAClE,MAAMC,KAAK,GAAGC,wBAAwB,CACpCF,WAAW,CAACG,UAAU,
|
1
|
+
{"version":3,"names":["Text","ZWS","MARKER_STRING_LENGTH","BULLET_POINT_STRING_REPRESENTATION","Headline","Bold","Markers","Fragment","jsx","_jsx","jsxs","_jsxs","Italic","BulletPoint","intersperse","bulletPointRegex","RegExp","trimEnd","Render","encodedText","lines","splitPreservingSeparator","replaceAll","map","line","i","marker","substring","H1","H2","H3","headline","restOfLineWithoutMarkers","children","level","join","UL","bulletPoints","paragraphs","split","bulletPointLine","j","p","BOLD_START","BOLD_END","ITALIC_START","ITALIC_END","length","str","separator","s"],"sourceRoot":"../../../../../src","sources":["internal/rendering/components/Render.tsx"],"mappings":"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","ignoreList":[]}
|
@@ -1,11 +1,13 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
|
-
import { HEADLINE_MARKER_TYPE,
|
3
|
+
import { ZWS, HEADLINE_MARKER_TYPE, MARKER_STRING_LENGTH, BOLD_MARKER_TYPE, ITALIC_MARKER_TYPE } from "./unicode-markers-format/constants.js";
|
4
4
|
import { decode } from "./unicode-markers-format/encode-decode.js";
|
5
5
|
const Markdown = {
|
6
6
|
H1: '# ',
|
7
7
|
H2: '## ',
|
8
|
-
H3: '### '
|
8
|
+
H3: '### ',
|
9
|
+
BOLD: '**',
|
10
|
+
ITALIC: '__'
|
9
11
|
};
|
10
12
|
/**
|
11
13
|
* convertInternalFormatToMarkdown converts text from the internal format to Markdown
|
@@ -21,8 +23,14 @@ const convertInternalFormatToMarkdown = internalText => {
|
|
21
23
|
while (i < internalText.length) {
|
22
24
|
const char = internalText[i];
|
23
25
|
if (char === ZWS) {
|
24
|
-
markdownText += decodedTokenToMarkdownToken(decode(internalText.substring(i, i +
|
25
|
-
|
26
|
+
markdownText += decodedTokenToMarkdownToken(decode(internalText.substring(i, i + MARKER_STRING_LENGTH)));
|
27
|
+
/**
|
28
|
+
* Funny: when we use ${Markers.H1}Headline 1 in ./src/__tests__/utils/texts.ts to declare the test input text in the internal format,
|
29
|
+
* then we need to use MARKER_STRING_LENGTH to iterate to the next character.
|
30
|
+
* When we use a text like in `internalText1WithRealMarkers` variable, that has been produced by a function and copy-n-pasted,
|
31
|
+
* then need to use MARKER_BYTE_LENGTH..
|
32
|
+
*/
|
33
|
+
i += MARKER_STRING_LENGTH;
|
26
34
|
} else {
|
27
35
|
markdownText += char;
|
28
36
|
i++;
|
@@ -35,6 +43,11 @@ const decodedTokenToMarkdownToken = internalToken => {
|
|
35
43
|
switch (internalToken[0]) {
|
36
44
|
case HEADLINE_MARKER_TYPE:
|
37
45
|
return Markdown[`H${internalToken[1]}`];
|
46
|
+
case BOLD_MARKER_TYPE:
|
47
|
+
// no need to check whether it is a start marker or end marker, because they are the same in markdown
|
48
|
+
return Markdown.BOLD;
|
49
|
+
case ITALIC_MARKER_TYPE:
|
50
|
+
return Markdown.ITALIC;
|
38
51
|
default:
|
39
52
|
return '';
|
40
53
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["HEADLINE_MARKER_TYPE","
|
1
|
+
{"version":3,"names":["ZWS","HEADLINE_MARKER_TYPE","MARKER_STRING_LENGTH","BOLD_MARKER_TYPE","ITALIC_MARKER_TYPE","decode","Markdown","H1","H2","H3","BOLD","ITALIC","convertInternalFormatToMarkdown","internalText","markdownText","i","length","char","decodedTokenToMarkdownToken","substring","internalToken"],"sourceRoot":"../../../../src","sources":["internal/text-formats/conversions.ts"],"mappings":";;AAAA,SACEA,GAAG,EAEHC,oBAAoB,EACpBC,oBAAoB,EACpBC,gBAAgB,EAChBC,kBAAkB,QACb,uCAAuC;AAC9C,SAASC,MAAM,QAAQ,2CAA2C;AAElE,MAAMC,QAAQ,GAAG;EACfC,EAAE,EAAE,IAAI;EACRC,EAAE,EAAE,KAAK;EACTC,EAAE,EAAE,MAAM;EACVC,IAAI,EAAE,IAAI;EACVC,MAAM,EAAE;AACV,CAAU;AAIV;AACA;AACA;AACA;AACA;AACA,MAAMC,+BAA+B,GACnCC,YAAoB,IACD;EACnB;EACA;EACA;EACA,IAAIC,YAAY,GAAG,EAAE;EAErB,IAAIC,CAAC,GAAG,CAAC;EACT,OAAOA,CAAC,GAAGF,YAAY,CAACG,MAAM,EAAE;IAC9B,MAAMC,IAAI,GAAGJ,YAAY,CAACE,CAAC,CAAC;IAE5B,IAAIE,IAAI,KAAKjB,GAAG,EAAE;MAChBc,YAAY,IAAII,2BAA2B,CACzCb,MAAM,CAACQ,YAAY,CAACM,SAAS,CAACJ,CAAC,EAAEA,CAAC,GAAGb,oBAAoB,CAAC,CAC5D,CAAC;MACD;AACN;AACA;AACA;AACA;AACA;MACMa,CAAC,IAAIb,oBAAoB;IAC3B,CAAC,MAAM;MACLY,YAAY,IAAIG,IAAI;MACpBF,CAAC,EAAE;IACL;EACF;EAEA,OAAOD,YAAY;AACrB,CAAC;AAED,MAAMI,2BAA2B,GAC/BE,aAAuB,IACJ;EACnB;EACA,QAAQA,aAAa,CAAC,CAAC,CAAC;IACtB,KAAKnB,oBAAoB;MACvB,OAAOK,QAAQ,CACb,IAAIc,aAAa,CAAC,CAAC,CAAC,EAA4D,CACjF;IACH,KAAKjB,gBAAgB;MACnB;MACA,OAAOG,QAAQ,CAACI,IAAI;IACtB,KAAKN,kBAAkB;MACrB,OAAOE,QAAQ,CAACK,MAAM;IACxB;MACE,OAAO,EAAE;EACb;AACF,CAAC;AAED,SAASC,+BAA+B","ignoreList":[]}
|
@@ -41,5 +41,5 @@ function createMarker(data, length = MARKER_BYTE_LENGTH) {
|
|
41
41
|
array.set(data);
|
42
42
|
return array;
|
43
43
|
}
|
44
|
-
export { ZWS, MARKER_STRING_LENGTH, MARKER_BYTE_LENGTH, HEADLINE_MARKER_TYPE, HEADLINE_LEVELS, HEADLINE_MARKERS, BOLD_MARKER_TYPE, BOLD_MARKERS, ITALIC_MARKERS, BULLET_POINT_UL_MARKER, BULLET_POINT_STRING_REPRESENTATION };
|
44
|
+
export { ZWS, MARKER_STRING_LENGTH, MARKER_BYTE_LENGTH, HEADLINE_MARKER_TYPE, HEADLINE_LEVELS, HEADLINE_MARKERS, BOLD_MARKER_TYPE, ITALIC_MARKER_TYPE, BOLD_MARKERS, ITALIC_MARKERS, BULLET_POINT_UL_MARKER, BULLET_POINT_STRING_REPRESENTATION };
|
45
45
|
//# sourceMappingURL=constants.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["ZWS","MARKER_BYTE_LENGTH","MARKER_STRING_LENGTH","HEADLINE_MARKER_TYPE","HEADLINE_LEVELS","H1","H2","H3","HEADLINE_MARKERS","createMarker","BOLD_MARKER_TYPE","BOLD_MARKER_START","BOLD_MARKER_END","BOLD_MARKERS","START","END","ITALIC_MARKER_TYPE","ITALIC_MARKER_START","ITALIC_MARKER_END","ITALIC_MARKERS","BULLET_POINT_MARKER_TYPE","BULLET_POINT_UNORDERED","BULLET_POINT_UL_MARKER","BULLET_POINT_STRING_REPRESENTATION","data","length","array","Uint8Array","set"],"sourceRoot":"../../../../../src","sources":["internal/text-formats/unicode-markers-format/constants.ts"],"mappings":";;AAAA;AACA;AACA;AACA,MAAMA,GAAG,GAAG,QAAQ,CAAC,CAAC;AACtB,MAAMC,kBAAkB,GAAG,CAAC,CAAC,CAAC;AAC9B,MAAMC,oBAAoB,GAAGD,kBAAkB,GAAG,CAAC,CAAC,CAAC;AACrD,MAAME,oBAAoB,GAAG,IAAI,CAAC,CAAC;AACnC;AACA,MAAMC,eAAe,GAAG;EACtBC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE;AACN,CAAU;AACV,MAAMC,gBAAkE,GAAG;EACzEH,EAAE,EAAEI,YAAY,CAAC,CAACN,oBAAoB,EAAEC,eAAe,CAACC,EAAE,CAAC,CAAC;EAC5DC,EAAE,EAAEG,YAAY,CAAC,CAACN,oBAAoB,EAAEC,eAAe,CAACE,EAAE,CAAC,CAAC;EAC5DC,EAAE,EAAEE,YAAY,CAAC,CAACN,oBAAoB,EAAEC,eAAe,CAACG,EAAE,CAAC;AAC7D,CAAU;AAEV,MAAMG,gBAAgB,GAAG,IAAI;AAC7B,MAAMC,iBAAiB,GAAG,CAAC;AAC3B,MAAMC,eAAe,GAAG,CAAC;AAEzB,MAAMC,YAAY,GAAG;EACnBC,KAAK,EAAEL,YAAY,CAAC,CAACC,gBAAgB,EAAEC,iBAAiB,CAAC,CAAC;EAC1DI,GAAG,EAAEN,YAAY,CAAC,CAACC,gBAAgB,EAAEE,eAAe,CAAC;AACvD,CAAU;AAEV,MAAMI,kBAAkB,GAAG,IAAI;AAC/B,MAAMC,mBAAmB,GAAG,CAAC;AAC7B,MAAMC,iBAAiB,GAAG,CAAC;AAE3B,MAAMC,cAAc,GAAG;EACrBL,KAAK,EAAEL,YAAY,CAAC,CAACO,kBAAkB,EAAEC,mBAAmB,CAAC,CAAC;EAC9DF,GAAG,EAAEN,YAAY,CAAC,CAACO,kBAAkB,EAAEE,iBAAiB,CAAC;AAC3D,CAAU;AAEV,MAAME,wBAAwB,GAAG,IAAI;AACrC,MAAMC,sBAAsB,GAAG,CAAC;AAChC,MAAMC,sBAAsB,GAAGb,YAAY,CAAC,CAC1CW,wBAAwB,EACxBC,sBAAsB,CACvB,CAAC;AACF,MAAME,kCAAkC,GAAG,IAAI;AAE/C,SAASd,YAAYA,CAACe,IAAc,EAAEC,MAAM,GAAGxB,kBAAkB,EAAE;EACjE,MAAMyB,KAAK,GAAG,IAAIC,UAAU,CAACF,MAAM,CAAC;EACpCC,KAAK,CAACE,GAAG,CAACJ,IAAI,CAAC;EACf,OAAOE,KAAK;AACd;AAEA,SACE1B,GAAG,EACHE,oBAAoB,EACpBD,kBAAkB,EAClBE,oBAAoB,EACpBC,eAAe,EACfI,gBAAgB,EAChBE,gBAAgB,
|
1
|
+
{"version":3,"names":["ZWS","MARKER_BYTE_LENGTH","MARKER_STRING_LENGTH","HEADLINE_MARKER_TYPE","HEADLINE_LEVELS","H1","H2","H3","HEADLINE_MARKERS","createMarker","BOLD_MARKER_TYPE","BOLD_MARKER_START","BOLD_MARKER_END","BOLD_MARKERS","START","END","ITALIC_MARKER_TYPE","ITALIC_MARKER_START","ITALIC_MARKER_END","ITALIC_MARKERS","BULLET_POINT_MARKER_TYPE","BULLET_POINT_UNORDERED","BULLET_POINT_UL_MARKER","BULLET_POINT_STRING_REPRESENTATION","data","length","array","Uint8Array","set"],"sourceRoot":"../../../../../src","sources":["internal/text-formats/unicode-markers-format/constants.ts"],"mappings":";;AAAA;AACA;AACA;AACA,MAAMA,GAAG,GAAG,QAAQ,CAAC,CAAC;AACtB,MAAMC,kBAAkB,GAAG,CAAC,CAAC,CAAC;AAC9B,MAAMC,oBAAoB,GAAGD,kBAAkB,GAAG,CAAC,CAAC,CAAC;AACrD,MAAME,oBAAoB,GAAG,IAAI,CAAC,CAAC;AACnC;AACA,MAAMC,eAAe,GAAG;EACtBC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE,CAAC;EACLC,EAAE,EAAE;AACN,CAAU;AACV,MAAMC,gBAAkE,GAAG;EACzEH,EAAE,EAAEI,YAAY,CAAC,CAACN,oBAAoB,EAAEC,eAAe,CAACC,EAAE,CAAC,CAAC;EAC5DC,EAAE,EAAEG,YAAY,CAAC,CAACN,oBAAoB,EAAEC,eAAe,CAACE,EAAE,CAAC,CAAC;EAC5DC,EAAE,EAAEE,YAAY,CAAC,CAACN,oBAAoB,EAAEC,eAAe,CAACG,EAAE,CAAC;AAC7D,CAAU;AAEV,MAAMG,gBAAgB,GAAG,IAAI;AAC7B,MAAMC,iBAAiB,GAAG,CAAC;AAC3B,MAAMC,eAAe,GAAG,CAAC;AAEzB,MAAMC,YAAY,GAAG;EACnBC,KAAK,EAAEL,YAAY,CAAC,CAACC,gBAAgB,EAAEC,iBAAiB,CAAC,CAAC;EAC1DI,GAAG,EAAEN,YAAY,CAAC,CAACC,gBAAgB,EAAEE,eAAe,CAAC;AACvD,CAAU;AAEV,MAAMI,kBAAkB,GAAG,IAAI;AAC/B,MAAMC,mBAAmB,GAAG,CAAC;AAC7B,MAAMC,iBAAiB,GAAG,CAAC;AAE3B,MAAMC,cAAc,GAAG;EACrBL,KAAK,EAAEL,YAAY,CAAC,CAACO,kBAAkB,EAAEC,mBAAmB,CAAC,CAAC;EAC9DF,GAAG,EAAEN,YAAY,CAAC,CAACO,kBAAkB,EAAEE,iBAAiB,CAAC;AAC3D,CAAU;AAEV,MAAME,wBAAwB,GAAG,IAAI;AACrC,MAAMC,sBAAsB,GAAG,CAAC;AAChC,MAAMC,sBAAsB,GAAGb,YAAY,CAAC,CAC1CW,wBAAwB,EACxBC,sBAAsB,CACvB,CAAC;AACF,MAAME,kCAAkC,GAAG,IAAI;AAE/C,SAASd,YAAYA,CAACe,IAAc,EAAEC,MAAM,GAAGxB,kBAAkB,EAAE;EACjE,MAAMyB,KAAK,GAAG,IAAIC,UAAU,CAACF,MAAM,CAAC;EACpCC,KAAK,CAACE,GAAG,CAACJ,IAAI,CAAC;EACf,OAAOE,KAAK;AACd;AAEA,SACE1B,GAAG,EACHE,oBAAoB,EACpBD,kBAAkB,EAClBE,oBAAoB,EACpBC,eAAe,EACfI,gBAAgB,EAChBE,gBAAgB,EAChBM,kBAAkB,EAClBH,YAAY,EACZM,cAAc,EACdG,sBAAsB,EACtBC,kCAAkC","ignoreList":[]}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAuCtD,QAAA,MAAM,cAAc,GAAI,4EAIrB;IACD,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7C,qCAAqC,CAAC,EAAE,MAAM,CAAC;CAChD,
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAuCtD,QAAA,MAAM,cAAc,GAAI,4EAIrB;IACD,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7C,qCAAqC,CAAC,EAAE,MAAM,CAAC;CAChD,4CAkJA,CAAC;AAuCF,eAAe,cAAc,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,CAAC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Render.d.ts","sourceRoot":"","sources":["../../../../../../../src/internal/rendering/components/Render.tsx"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"Render.d.ts","sourceRoot":"","sources":["../../../../../../../src/internal/rendering/components/Render.tsx"],"names":[],"mappings":"AAmBA,eAAO,MAAM,MAAM,GAAI,iBAAiB;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,qDAwE9D,CAAC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"conversions.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/text-formats/conversions.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"conversions.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/text-formats/conversions.ts"],"names":[],"mappings":"AAkBA,KAAK,cAAc,GAAG,MAAM,CAAC;AAE7B;;;;GAIG;AACH,QAAA,MAAM,+BAA+B,GACnC,cAAc,MAAM,KACnB,cA4BF,CAAC;AAqBF,OAAO,EAAE,+BAA+B,EAAE,CAAC"}
|
package/lib/typescript/commonjs/src/internal/text-formats/unicode-markers-format/constants.d.ts
CHANGED
@@ -16,11 +16,12 @@ declare const BOLD_MARKERS: {
|
|
16
16
|
readonly START: Uint8Array<ArrayBuffer>;
|
17
17
|
readonly END: Uint8Array<ArrayBuffer>;
|
18
18
|
};
|
19
|
+
declare const ITALIC_MARKER_TYPE = 48;
|
19
20
|
declare const ITALIC_MARKERS: {
|
20
21
|
readonly START: Uint8Array<ArrayBuffer>;
|
21
22
|
readonly END: Uint8Array<ArrayBuffer>;
|
22
23
|
};
|
23
24
|
declare const BULLET_POINT_UL_MARKER: Uint8Array<ArrayBuffer>;
|
24
25
|
declare const BULLET_POINT_STRING_REPRESENTATION = "\u2022 ";
|
25
|
-
export { ZWS, MARKER_STRING_LENGTH, MARKER_BYTE_LENGTH, HEADLINE_MARKER_TYPE, HEADLINE_LEVELS, HEADLINE_MARKERS, BOLD_MARKER_TYPE, BOLD_MARKERS, ITALIC_MARKERS, BULLET_POINT_UL_MARKER, BULLET_POINT_STRING_REPRESENTATION, };
|
26
|
+
export { ZWS, MARKER_STRING_LENGTH, MARKER_BYTE_LENGTH, HEADLINE_MARKER_TYPE, HEADLINE_LEVELS, HEADLINE_MARKERS, BOLD_MARKER_TYPE, ITALIC_MARKER_TYPE, BOLD_MARKERS, ITALIC_MARKERS, BULLET_POINT_UL_MARKER, BULLET_POINT_STRING_REPRESENTATION, };
|
26
27
|
//# sourceMappingURL=constants.d.ts.map
|
package/lib/typescript/commonjs/src/internal/text-formats/unicode-markers-format/constants.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../../../src/internal/text-formats/unicode-markers-format/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,QAAA,MAAM,GAAG,WAAW,CAAC;AACrB,QAAA,MAAM,kBAAkB,IAAI,CAAC;AAC7B,QAAA,MAAM,oBAAoB,QAAyB,CAAC;AACpD,QAAA,MAAM,oBAAoB,KAAO,CAAC;AAElC,QAAA,MAAM,eAAe;;;;CAIX,CAAC;AACX,QAAA,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,OAAO,eAAe,EAAE,UAAU,CAI7D,CAAC;AAEX,QAAA,MAAM,gBAAgB,KAAO,CAAC;AAI9B,QAAA,MAAM,YAAY;;;CAGR,CAAC;
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../../../src/internal/text-formats/unicode-markers-format/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,QAAA,MAAM,GAAG,WAAW,CAAC;AACrB,QAAA,MAAM,kBAAkB,IAAI,CAAC;AAC7B,QAAA,MAAM,oBAAoB,QAAyB,CAAC;AACpD,QAAA,MAAM,oBAAoB,KAAO,CAAC;AAElC,QAAA,MAAM,eAAe;;;;CAIX,CAAC;AACX,QAAA,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,OAAO,eAAe,EAAE,UAAU,CAI7D,CAAC;AAEX,QAAA,MAAM,gBAAgB,KAAO,CAAC;AAI9B,QAAA,MAAM,YAAY;;;CAGR,CAAC;AAEX,QAAA,MAAM,kBAAkB,KAAO,CAAC;AAIhC,QAAA,MAAM,cAAc;;;CAGV,CAAC;AAIX,QAAA,MAAM,sBAAsB,yBAG1B,CAAC;AACH,QAAA,MAAM,kCAAkC,YAAO,CAAC;AAQhD,OAAO,EACL,GAAG,EACH,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,sBAAsB,EACtB,kCAAkC,GACnC,CAAC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAuCtD,QAAA,MAAM,cAAc,GAAI,4EAIrB;IACD,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7C,qCAAqC,CAAC,EAAE,MAAM,CAAC;CAChD,
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAuCtD,QAAA,MAAM,cAAc,GAAI,4EAIrB;IACD,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7C,qCAAqC,CAAC,EAAE,MAAM,CAAC;CAChD,4CAkJA,CAAC;AAuCF,eAAe,cAAc,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,CAAC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Render.d.ts","sourceRoot":"","sources":["../../../../../../../src/internal/rendering/components/Render.tsx"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"Render.d.ts","sourceRoot":"","sources":["../../../../../../../src/internal/rendering/components/Render.tsx"],"names":[],"mappings":"AAmBA,eAAO,MAAM,MAAM,GAAI,iBAAiB;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,qDAwE9D,CAAC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"conversions.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/text-formats/conversions.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"conversions.d.ts","sourceRoot":"","sources":["../../../../../../src/internal/text-formats/conversions.ts"],"names":[],"mappings":"AAkBA,KAAK,cAAc,GAAG,MAAM,CAAC;AAE7B;;;;GAIG;AACH,QAAA,MAAM,+BAA+B,GACnC,cAAc,MAAM,KACnB,cA4BF,CAAC;AAqBF,OAAO,EAAE,+BAA+B,EAAE,CAAC"}
|
package/lib/typescript/module/src/internal/text-formats/unicode-markers-format/constants.d.ts
CHANGED
@@ -16,11 +16,12 @@ declare const BOLD_MARKERS: {
|
|
16
16
|
readonly START: Uint8Array<ArrayBuffer>;
|
17
17
|
readonly END: Uint8Array<ArrayBuffer>;
|
18
18
|
};
|
19
|
+
declare const ITALIC_MARKER_TYPE = 48;
|
19
20
|
declare const ITALIC_MARKERS: {
|
20
21
|
readonly START: Uint8Array<ArrayBuffer>;
|
21
22
|
readonly END: Uint8Array<ArrayBuffer>;
|
22
23
|
};
|
23
24
|
declare const BULLET_POINT_UL_MARKER: Uint8Array<ArrayBuffer>;
|
24
25
|
declare const BULLET_POINT_STRING_REPRESENTATION = "\u2022 ";
|
25
|
-
export { ZWS, MARKER_STRING_LENGTH, MARKER_BYTE_LENGTH, HEADLINE_MARKER_TYPE, HEADLINE_LEVELS, HEADLINE_MARKERS, BOLD_MARKER_TYPE, BOLD_MARKERS, ITALIC_MARKERS, BULLET_POINT_UL_MARKER, BULLET_POINT_STRING_REPRESENTATION, };
|
26
|
+
export { ZWS, MARKER_STRING_LENGTH, MARKER_BYTE_LENGTH, HEADLINE_MARKER_TYPE, HEADLINE_LEVELS, HEADLINE_MARKERS, BOLD_MARKER_TYPE, ITALIC_MARKER_TYPE, BOLD_MARKERS, ITALIC_MARKERS, BULLET_POINT_UL_MARKER, BULLET_POINT_STRING_REPRESENTATION, };
|
26
27
|
//# sourceMappingURL=constants.d.ts.map
|
package/lib/typescript/module/src/internal/text-formats/unicode-markers-format/constants.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../../../src/internal/text-formats/unicode-markers-format/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,QAAA,MAAM,GAAG,WAAW,CAAC;AACrB,QAAA,MAAM,kBAAkB,IAAI,CAAC;AAC7B,QAAA,MAAM,oBAAoB,QAAyB,CAAC;AACpD,QAAA,MAAM,oBAAoB,KAAO,CAAC;AAElC,QAAA,MAAM,eAAe;;;;CAIX,CAAC;AACX,QAAA,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,OAAO,eAAe,EAAE,UAAU,CAI7D,CAAC;AAEX,QAAA,MAAM,gBAAgB,KAAO,CAAC;AAI9B,QAAA,MAAM,YAAY;;;CAGR,CAAC;
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../../../src/internal/text-formats/unicode-markers-format/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,QAAA,MAAM,GAAG,WAAW,CAAC;AACrB,QAAA,MAAM,kBAAkB,IAAI,CAAC;AAC7B,QAAA,MAAM,oBAAoB,QAAyB,CAAC;AACpD,QAAA,MAAM,oBAAoB,KAAO,CAAC;AAElC,QAAA,MAAM,eAAe;;;;CAIX,CAAC;AACX,QAAA,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,OAAO,eAAe,EAAE,UAAU,CAI7D,CAAC;AAEX,QAAA,MAAM,gBAAgB,KAAO,CAAC;AAI9B,QAAA,MAAM,YAAY;;;CAGR,CAAC;AAEX,QAAA,MAAM,kBAAkB,KAAO,CAAC;AAIhC,QAAA,MAAM,cAAc;;;CAGV,CAAC;AAIX,QAAA,MAAM,sBAAsB,yBAG1B,CAAC;AACH,QAAA,MAAM,kCAAkC,YAAO,CAAC;AAQhD,OAAO,EACL,GAAG,EACH,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,sBAAsB,EACtB,kCAAkC,GACnC,CAAC"}
|
package/package.json
CHANGED
package/src/index.tsx
CHANGED
@@ -133,7 +133,7 @@ const RichTextEditor = ({
|
|
133
133
|
|
134
134
|
return (
|
135
135
|
<View style={styles.container}>
|
136
|
-
<View style={styles.
|
136
|
+
<View style={styles.toolbar}>
|
137
137
|
<TouchableOpacity
|
138
138
|
style={styles.button}
|
139
139
|
onPress={() =>
|
@@ -173,19 +173,37 @@ const RichTextEditor = ({
|
|
173
173
|
<Text style={styles.buttonText}>List</Text>
|
174
174
|
</TouchableOpacity>
|
175
175
|
<TouchableOpacity
|
176
|
-
style={[
|
176
|
+
style={[
|
177
|
+
styles.button,
|
178
|
+
styles.fixedWidth,
|
179
|
+
needsBoldEndMarker ? styles.endFontStyleButton : null,
|
180
|
+
]}
|
177
181
|
onPress={handleFontStyleMarkerInsertion('bold')}
|
178
182
|
>
|
179
|
-
<Text
|
180
|
-
{
|
183
|
+
<Text
|
184
|
+
style={[
|
185
|
+
styles.buttonText,
|
186
|
+
needsBoldEndMarker ? styles.endFontStyleText : null,
|
187
|
+
]}
|
188
|
+
>
|
189
|
+
Bold
|
181
190
|
</Text>
|
182
191
|
</TouchableOpacity>
|
183
192
|
<TouchableOpacity
|
184
|
-
style={[
|
193
|
+
style={[
|
194
|
+
styles.button,
|
195
|
+
styles.fixedWidth,
|
196
|
+
needsItalicEndMarker ? styles.endFontStyleButton : null,
|
197
|
+
]}
|
185
198
|
onPress={handleFontStyleMarkerInsertion('italic')}
|
186
199
|
>
|
187
|
-
<Text
|
188
|
-
{
|
200
|
+
<Text
|
201
|
+
style={[
|
202
|
+
styles.buttonText,
|
203
|
+
needsItalicEndMarker ? styles.endFontStyleText : null,
|
204
|
+
]}
|
205
|
+
>
|
206
|
+
Italic
|
189
207
|
</Text>
|
190
208
|
</TouchableOpacity>
|
191
209
|
</View>
|
@@ -206,12 +224,13 @@ const RichTextEditor = ({
|
|
206
224
|
};
|
207
225
|
|
208
226
|
const electricBlueHex = '#009DDC';
|
227
|
+
const jasperRedHex = '#E03A3E';
|
209
228
|
const styles = StyleSheet.create({
|
210
229
|
container: {
|
211
230
|
flex: 1,
|
212
231
|
},
|
213
|
-
|
214
|
-
|
232
|
+
toolbar: {
|
233
|
+
marginVertical: 8,
|
215
234
|
flexDirection: 'row',
|
216
235
|
justifyContent: 'space-between',
|
217
236
|
flexWrap: 'nowrap',
|
@@ -231,7 +250,13 @@ const styles = StyleSheet.create({
|
|
231
250
|
color: electricBlueHex,
|
232
251
|
},
|
233
252
|
fixedWidth: {
|
234
|
-
width:
|
253
|
+
width: 80,
|
254
|
+
},
|
255
|
+
endFontStyleButton: {
|
256
|
+
borderColor: jasperRedHex,
|
257
|
+
},
|
258
|
+
endFontStyleText: {
|
259
|
+
color: jasperRedHex,
|
235
260
|
},
|
236
261
|
});
|
237
262
|
|
@@ -12,9 +12,14 @@ import { Italic } from './Italic.tsx';
|
|
12
12
|
import { BulletPoint } from './BulletPoint.tsx';
|
13
13
|
import { intersperse } from '../utils.ts';
|
14
14
|
|
15
|
+
const bulletPointRegex = new RegExp(
|
16
|
+
BULLET_POINT_STRING_REPRESENTATION.trimEnd() + ' ?',
|
17
|
+
'g'
|
18
|
+
); // matches the bullet point alone or the bullet point followed by a space
|
19
|
+
|
15
20
|
export const Render = ({ encodedText }: { encodedText: string }) => {
|
16
21
|
const lines = splitPreservingSeparator(
|
17
|
-
encodedText.replaceAll(
|
22
|
+
encodedText.replaceAll(bulletPointRegex, ''),
|
18
23
|
ZWS
|
19
24
|
); // each BulletPoint.tsx instance adds a BULLET_POINT_STRING_REPRESENTATION, we need to remove them to avoid adding extra chars on each render
|
20
25
|
|
@@ -1,8 +1,10 @@
|
|
1
1
|
import {
|
2
|
+
ZWS,
|
2
3
|
HEADLINE_LEVELS,
|
3
4
|
HEADLINE_MARKER_TYPE,
|
4
|
-
|
5
|
-
|
5
|
+
MARKER_STRING_LENGTH,
|
6
|
+
BOLD_MARKER_TYPE,
|
7
|
+
ITALIC_MARKER_TYPE,
|
6
8
|
} from './unicode-markers-format/constants.ts';
|
7
9
|
import { decode } from './unicode-markers-format/encode-decode.ts';
|
8
10
|
|
@@ -10,6 +12,8 @@ const Markdown = {
|
|
10
12
|
H1: '# ',
|
11
13
|
H2: '## ',
|
12
14
|
H3: '### ',
|
15
|
+
BOLD: '**',
|
16
|
+
ITALIC: '__',
|
13
17
|
} as const;
|
14
18
|
|
15
19
|
type MarkdownString = string;
|
@@ -33,9 +37,15 @@ const convertInternalFormatToMarkdown = (
|
|
33
37
|
|
34
38
|
if (char === ZWS) {
|
35
39
|
markdownText += decodedTokenToMarkdownToken(
|
36
|
-
decode(internalText.substring(i, i +
|
40
|
+
decode(internalText.substring(i, i + MARKER_STRING_LENGTH))
|
37
41
|
);
|
38
|
-
|
42
|
+
/**
|
43
|
+
* Funny: when we use ${Markers.H1}Headline 1 in ./src/__tests__/utils/texts.ts to declare the test input text in the internal format,
|
44
|
+
* then we need to use MARKER_STRING_LENGTH to iterate to the next character.
|
45
|
+
* When we use a text like in `internalText1WithRealMarkers` variable, that has been produced by a function and copy-n-pasted,
|
46
|
+
* then need to use MARKER_BYTE_LENGTH..
|
47
|
+
*/
|
48
|
+
i += MARKER_STRING_LENGTH;
|
39
49
|
} else {
|
40
50
|
markdownText += char;
|
41
51
|
i++;
|
@@ -54,6 +64,11 @@ const decodedTokenToMarkdownToken = (
|
|
54
64
|
return Markdown[
|
55
65
|
`H${internalToken[1] as (typeof HEADLINE_LEVELS)[keyof typeof HEADLINE_LEVELS]}`
|
56
66
|
];
|
67
|
+
case BOLD_MARKER_TYPE:
|
68
|
+
// no need to check whether it is a start marker or end marker, because they are the same in markdown
|
69
|
+
return Markdown.BOLD;
|
70
|
+
case ITALIC_MARKER_TYPE:
|
71
|
+
return Markdown.ITALIC;
|
57
72
|
default:
|
58
73
|
return '';
|
59
74
|
}
|