@expensify/react-native-live-markdown 0.1.12 → 0.1.14

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.
@@ -15,17 +15,19 @@ public class MarkdownBlockquoteSpan implements MarkdownSpan, LeadingMarginSpan {
15
15
  private final float borderWidth;
16
16
  private final float marginLeft;
17
17
  private final float paddingLeft;
18
+ private final int nestingLevel;
18
19
 
19
- public MarkdownBlockquoteSpan(@ColorInt int borderColor, float borderWidth, float marginLeft, float paddingLeft) {
20
+ public MarkdownBlockquoteSpan(@ColorInt int borderColor, float borderWidth, float marginLeft, float paddingLeft, int nestingLevel) {
20
21
  this.borderColor = borderColor;
21
22
  this.borderWidth = PixelUtil.toPixelFromDIP(borderWidth);
22
23
  this.marginLeft = PixelUtil.toPixelFromDIP(marginLeft);
23
24
  this.paddingLeft = PixelUtil.toPixelFromDIP(paddingLeft);
25
+ this.nestingLevel = nestingLevel;
24
26
  }
25
27
 
26
28
  @Override
27
29
  public int getLeadingMargin(boolean first) {
28
- return (int) (marginLeft + borderWidth + paddingLeft);
30
+ return (int) (marginLeft + borderWidth + paddingLeft) * nestingLevel;
29
31
  }
30
32
 
31
33
  @Override
@@ -37,9 +39,12 @@ public class MarkdownBlockquoteSpan implements MarkdownSpan, LeadingMarginSpan {
37
39
  p.setStyle(Paint.Style.FILL);
38
40
  p.setColor(borderColor);
39
41
 
40
- float left = x + dir * marginLeft;
41
- float right = x + dir * (marginLeft + borderWidth);
42
- c.drawRect(left, top, right, bottom, p);
42
+ for (int level = 0; level < nestingLevel; level++) {
43
+ float shift = (marginLeft + borderWidth + paddingLeft) * level;
44
+ float left = x + dir * (marginLeft + shift);
45
+ float right = x + dir * (marginLeft + borderWidth + shift);
46
+ c.drawRect(left, top, right, bottom, p);
47
+ }
43
48
 
44
49
  p.setStyle(originalStyle);
45
50
  p.setColor(originalColor);
@@ -16,6 +16,7 @@ import com.facebook.soloader.SoLoader;
16
16
 
17
17
  import org.json.JSONArray;
18
18
  import org.json.JSONException;
19
+ import org.json.JSONObject;
19
20
 
20
21
  import java.io.IOException;
21
22
  import java.io.InputStream;
@@ -91,18 +92,20 @@ public class MarkdownUtils {
91
92
  try {
92
93
  JSONArray ranges = new JSONArray(output);
93
94
  for (int i = 0; i < ranges.length(); i++) {
94
- JSONArray range = ranges.getJSONArray(i);
95
- String type = range.getString(0);
96
- int start = range.getInt(1);
97
- int end = start + range.getInt(2);
98
- applyRange(ssb, type, start, end);
95
+ JSONObject range = ranges.getJSONObject(i);
96
+ String type = range.getString("type");
97
+ int start = range.getInt("start");
98
+ int length = range.getInt("length");
99
+ int depth = range.optInt("depth", 1);
100
+ int end = start + length;
101
+ applyRange(ssb, type, start, end, depth);
99
102
  }
100
103
  } catch (JSONException e) {
101
104
  // Do nothing
102
105
  }
103
106
  }
104
107
 
105
- private void applyRange(SpannableStringBuilder ssb, String type, int start, int end) {
108
+ private void applyRange(SpannableStringBuilder ssb, String type, int start, int end, int depth) {
106
109
  switch (type) {
107
110
  case "bold":
108
111
  setSpan(ssb, new MarkdownBoldSpan(), start, end);
@@ -154,7 +157,8 @@ public class MarkdownUtils {
154
157
  mMarkdownStyle.getBlockquoteBorderColor(),
155
158
  mMarkdownStyle.getBlockquoteBorderWidth(),
156
159
  mMarkdownStyle.getBlockquoteMarginLeft(),
157
- mMarkdownStyle.getBlockquotePaddingLeft());
160
+ mMarkdownStyle.getBlockquotePaddingLeft(),
161
+ depth);
158
162
  setSpan(ssb, span, start, end);
159
163
  break;
160
164
  default:
@@ -7,9 +7,11 @@
7
7
 
8
8
  [self enumerateLineFragmentsForGlyphRange:glyphsToShow usingBlock:^(CGRect rect, CGRect usedRect, NSTextContainer * _Nonnull textContainer, NSRange glyphRange, BOOL * _Nonnull stop) {
9
9
  __block BOOL isBlockquote = NO;
10
+ __block int currentDepth = 0;
10
11
  RCTMarkdownUtils *markdownUtils = [self valueForKey:@"markdownUtils"];
11
- [markdownUtils.blockquoteRanges enumerateObjectsUsingBlock:^(NSValue *item, NSUInteger idx, BOOL * _Nonnull stop) {
12
- NSRange range = [item rangeValue];
12
+ [markdownUtils.blockquoteRangesAndLevels enumerateObjectsUsingBlock:^(NSDictionary *item, NSUInteger idx, BOOL * _Nonnull stop) {
13
+ NSRange range = [[item valueForKey:@"range"] rangeValue];
14
+ currentDepth = [[item valueForKey:@"depth"] unsignedIntegerValue];
13
15
  NSUInteger start = range.location;
14
16
  NSUInteger end = start + range.length;
15
17
  NSUInteger location = glyphRange.location;
@@ -21,13 +23,16 @@
21
23
  if (isBlockquote) {
22
24
  CGFloat paddingLeft = markdownUtils.backedTextInputView.textContainerInset.left;
23
25
  CGFloat paddingTop = markdownUtils.backedTextInputView.textContainerInset.top;
24
- CGFloat x = paddingLeft + markdownUtils.markdownStyle.blockquoteMarginLeft;
25
26
  CGFloat y = paddingTop + rect.origin.y;
26
27
  CGFloat width = markdownUtils.markdownStyle.blockquoteBorderWidth;
27
28
  CGFloat height = rect.size.height;
28
- CGRect lineRect = CGRectMake(x, y, width, height);
29
- [markdownUtils.markdownStyle.blockquoteBorderColor setFill];
30
- UIRectFill(lineRect);
29
+ CGFloat shift = markdownUtils.markdownStyle.blockquoteMarginLeft + markdownUtils.markdownStyle.blockquoteBorderWidth + markdownUtils.markdownStyle.blockquotePaddingLeft;
30
+ for (int level = 0; level < currentDepth; level++) {
31
+ CGFloat x = paddingLeft + (level * shift) + markdownUtils.markdownStyle.blockquoteMarginLeft;
32
+ CGRect lineRect = CGRectMake(x, y, width, height);
33
+ [markdownUtils.markdownStyle.blockquoteBorderColor setFill];
34
+ UIRectFill(lineRect);
35
+ }
31
36
  }
32
37
  }];
33
38
  }
@@ -6,7 +6,7 @@ NS_ASSUME_NONNULL_BEGIN
6
6
  @interface RCTMarkdownUtils : NSObject
7
7
 
8
8
  @property (nonatomic) RCTMarkdownStyle *markdownStyle;
9
- @property (nonatomic) NSMutableArray<NSValue *> *blockquoteRanges;
9
+ @property (nonatomic) NSMutableArray<NSDictionary *> *blockquoteRangesAndLevels;
10
10
  @property (weak, nonatomic) UIView<RCTBackedTextInputViewProtocol> *backedTextInputView;
11
11
 
12
12
  - (instancetype)initWithBackedTextInputView:(UIView<RCTBackedTextInputViewProtocol> *)backedTextInputView;
@@ -55,13 +55,14 @@
55
55
  // This is a workaround that applies the NSUnderlineStyleNone to the string before iterating over ranges which resolves this problem.
56
56
  [attributedString addAttribute:NSUnderlineStyleAttributeName value:[NSNumber numberWithInteger:NSUnderlineStyleNone] range:NSMakeRange(0, attributedString.length)];
57
57
 
58
- _blockquoteRanges = [NSMutableArray new];
58
+ _blockquoteRangesAndLevels = [NSMutableArray new];
59
59
 
60
60
  [ranges enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
61
- NSArray *item = obj;
62
- NSString *type = item[0];
63
- NSUInteger location = [item[1] unsignedIntegerValue];
64
- NSUInteger length = [item[2] unsignedIntegerValue];
61
+ NSDictionary *item = obj;
62
+ NSString *type = [item valueForKey:@"type"];
63
+ NSInteger location = [[item valueForKey:@"start"] unsignedIntegerValue];
64
+ NSInteger length = [[item valueForKey:@"length"] unsignedIntegerValue];
65
+ NSInteger depth = [[item valueForKey:@"depth"] unsignedIntegerValue] ?: 1;
65
66
  NSRange range = NSMakeRange(location, length);
66
67
 
67
68
  if ([type isEqualToString:@"bold"] || [type isEqualToString:@"italic"] || [type isEqualToString:@"code"] || [type isEqualToString:@"pre"] || [type isEqualToString:@"h1"]) {
@@ -103,12 +104,15 @@
103
104
  [attributedString addAttribute:NSUnderlineStyleAttributeName value:[NSNumber numberWithInteger:NSUnderlineStyleSingle] range:range];
104
105
  [attributedString addAttribute:NSForegroundColorAttributeName value:_markdownStyle.linkColor range:range];
105
106
  } else if ([type isEqualToString:@"blockquote"]) {
106
- CGFloat indent = _markdownStyle.blockquoteMarginLeft + _markdownStyle.blockquoteBorderWidth + _markdownStyle.blockquotePaddingLeft;
107
+ CGFloat indent = (_markdownStyle.blockquoteMarginLeft + _markdownStyle.blockquoteBorderWidth + _markdownStyle.blockquotePaddingLeft) * depth;
107
108
  NSMutableParagraphStyle *paragraphStyle = [NSMutableParagraphStyle new];
108
109
  paragraphStyle.firstLineHeadIndent = indent;
109
110
  paragraphStyle.headIndent = indent;
110
111
  [attributedString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:range];
111
- [_blockquoteRanges addObject:[NSValue valueWithRange:range]];
112
+ [_blockquoteRangesAndLevels addObject:@{
113
+ @"range": [NSValue valueWithRange:range],
114
+ @"depth": @(depth)
115
+ }];
112
116
  } else if ([type isEqualToString:@"pre"]) {
113
117
  [attributedString addAttribute:NSForegroundColorAttributeName value:_markdownStyle.preColor range:range];
114
118
  NSRange rangeForBackground = [inputString characterAtIndex:range.location] == '\n' ? NSMakeRange(range.location + 1, range.length - 1) : range;
@@ -66,6 +66,24 @@ function addSubstringAsTextNode(root, text, startIndex, endIndex) {
66
66
  root.appendChild(document.createTextNode(substring));
67
67
  }
68
68
  }
69
+ function ungroupRanges(ranges) {
70
+ const ungroupedRanges = [];
71
+ ranges.forEach(range => {
72
+ if (!range.depth) {
73
+ ungroupedRanges.push(range);
74
+ }
75
+ const {
76
+ depth,
77
+ ...rangeWithoutDepth
78
+ } = range;
79
+ Array.from({
80
+ length: depth
81
+ }).forEach(() => {
82
+ ungroupedRanges.push(rangeWithoutDepth);
83
+ });
84
+ });
85
+ return ungroupedRanges;
86
+ }
69
87
  function parseRangesToHTMLNodes(text, ranges, markdownStyle = {}, disableInlineStyles = false) {
70
88
  const root = document.createElement('span');
71
89
  root.className = 'root';
@@ -74,7 +92,7 @@ function parseRangesToHTMLNodes(text, ranges, markdownStyle = {}, disableInlineS
74
92
  addSubstringAsTextNode(root, text, 0, textLength);
75
93
  return root;
76
94
  }
77
- const stack = [...ranges];
95
+ const stack = ungroupRanges(ranges);
78
96
  const nestedStack = [{
79
97
  node: root,
80
98
  endIndex: textLength
@@ -89,9 +107,9 @@ function parseRangesToHTMLNodes(text, ranges, markdownStyle = {}, disableInlineS
89
107
  if (!currentRoot) {
90
108
  break;
91
109
  }
92
- const endOfCurrentRange = range.startIndex + range.length;
93
- const nextRangeStartIndex = stack.length > 0 && !!stack[0] ? stack[0].startIndex || 0 : textLength;
94
- addSubstringAsTextNode(currentRoot.node, text, lastRangeEndIndex, range.startIndex); // add text with newlines before current range
110
+ const endOfCurrentRange = range.start + range.length;
111
+ const nextRangeStartIndex = stack.length > 0 && !!stack[0] ? stack[0].start || 0 : textLength;
112
+ addSubstringAsTextNode(currentRoot.node, text, lastRangeEndIndex, range.start); // add text with newlines before current range
95
113
 
96
114
  const span = document.createElement('span');
97
115
  if (disableInlineStyles) {
@@ -106,9 +124,9 @@ function parseRangesToHTMLNodes(text, ranges, markdownStyle = {}, disableInlineS
106
124
  node: span,
107
125
  endIndex: endOfCurrentRange
108
126
  });
109
- lastRangeEndIndex = range.startIndex;
127
+ lastRangeEndIndex = range.start;
110
128
  } else {
111
- addSubstringAsTextNode(span, text, range.startIndex, endOfCurrentRange);
129
+ addSubstringAsTextNode(span, text, range.start, endOfCurrentRange);
112
130
  currentRoot.node.appendChild(span);
113
131
  lastRangeEndIndex = endOfCurrentRange;
114
132
 
@@ -141,14 +159,7 @@ function parseText(target, text, curosrPositionIndex, markdownStyle = {}, disabl
141
159
  cursorPosition = CursorUtils.getCurrentCursorPosition(target).start;
142
160
  }
143
161
  const ranges = global.parseExpensiMarkToRanges(text);
144
- const markdownRanges = ranges.map(range => {
145
- const [type, startIndex, length] = range;
146
- return {
147
- type: type,
148
- startIndex,
149
- length
150
- };
151
- });
162
+ const markdownRanges = ranges;
152
163
  targetElement.innerHTML = '';
153
164
  targetElement.innerText = '';
154
165
 
@@ -1 +1 @@
1
- {"version":3,"names":["CursorUtils","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","addStyling","targetElement","type","markdownStyle","node","assign","style","syntax","fontWeight","fontStyle","textDecoration","mentionHere","mentionUser","link","code","pre","blockquote","borderLeftStyle","display","maxWidth","boxSizing","h1","addSubstringAsTextNode","root","text","startIndex","endIndex","substring","length","appendChild","document","createTextNode","parseRangesToHTMLNodes","ranges","disableInlineStyles","createElement","className","textLength","stack","nestedStack","lastRangeEndIndex","range","shift","currentRoot","endOfCurrentRange","nextRangeStartIndex","span","push","prevRoot","pop","lastNestedNode","parseText","target","curosrPositionIndex","disableNewLinesInCursorPositioning","alwaysMoveCursorToTheEnd","cursorPosition","isFocused","activeElement","getCurrentCursorPosition","start","global","parseExpensiMarkToRanges","markdownRanges","map","innerHTML","innerText","dom","moveCursorToEnd","setCursorPosition"],"sourceRoot":"../../../src","sources":["web/parserUtils.ts"],"mappings":"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"}
1
+ {"version":3,"names":["CursorUtils","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","addStyling","targetElement","type","markdownStyle","node","assign","style","syntax","fontWeight","fontStyle","textDecoration","mentionHere","mentionUser","link","code","pre","blockquote","borderLeftStyle","display","maxWidth","boxSizing","h1","addSubstringAsTextNode","root","text","startIndex","endIndex","substring","length","appendChild","document","createTextNode","ungroupRanges","ranges","ungroupedRanges","forEach","range","depth","push","rangeWithoutDepth","Array","from","parseRangesToHTMLNodes","disableInlineStyles","createElement","className","textLength","stack","nestedStack","lastRangeEndIndex","shift","currentRoot","endOfCurrentRange","start","nextRangeStartIndex","span","prevRoot","pop","lastNestedNode","parseText","target","curosrPositionIndex","disableNewLinesInCursorPositioning","alwaysMoveCursorToTheEnd","cursorPosition","isFocused","activeElement","getCurrentCursorPosition","global","parseExpensiMarkToRanges","markdownRanges","innerHTML","innerText","dom","moveCursorToEnd","setCursorPosition"],"sourceRoot":"../../../src","sources":["web/parserUtils.ts"],"mappings":"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"}
@@ -57,6 +57,24 @@ function addSubstringAsTextNode(root, text, startIndex, endIndex) {
57
57
  root.appendChild(document.createTextNode(substring));
58
58
  }
59
59
  }
60
+ function ungroupRanges(ranges) {
61
+ const ungroupedRanges = [];
62
+ ranges.forEach(range => {
63
+ if (!range.depth) {
64
+ ungroupedRanges.push(range);
65
+ }
66
+ const {
67
+ depth,
68
+ ...rangeWithoutDepth
69
+ } = range;
70
+ Array.from({
71
+ length: depth
72
+ }).forEach(() => {
73
+ ungroupedRanges.push(rangeWithoutDepth);
74
+ });
75
+ });
76
+ return ungroupedRanges;
77
+ }
60
78
  function parseRangesToHTMLNodes(text, ranges, markdownStyle = {}, disableInlineStyles = false) {
61
79
  const root = document.createElement('span');
62
80
  root.className = 'root';
@@ -65,7 +83,7 @@ function parseRangesToHTMLNodes(text, ranges, markdownStyle = {}, disableInlineS
65
83
  addSubstringAsTextNode(root, text, 0, textLength);
66
84
  return root;
67
85
  }
68
- const stack = [...ranges];
86
+ const stack = ungroupRanges(ranges);
69
87
  const nestedStack = [{
70
88
  node: root,
71
89
  endIndex: textLength
@@ -80,9 +98,9 @@ function parseRangesToHTMLNodes(text, ranges, markdownStyle = {}, disableInlineS
80
98
  if (!currentRoot) {
81
99
  break;
82
100
  }
83
- const endOfCurrentRange = range.startIndex + range.length;
84
- const nextRangeStartIndex = stack.length > 0 && !!stack[0] ? stack[0].startIndex || 0 : textLength;
85
- addSubstringAsTextNode(currentRoot.node, text, lastRangeEndIndex, range.startIndex); // add text with newlines before current range
101
+ const endOfCurrentRange = range.start + range.length;
102
+ const nextRangeStartIndex = stack.length > 0 && !!stack[0] ? stack[0].start || 0 : textLength;
103
+ addSubstringAsTextNode(currentRoot.node, text, lastRangeEndIndex, range.start); // add text with newlines before current range
86
104
 
87
105
  const span = document.createElement('span');
88
106
  if (disableInlineStyles) {
@@ -97,9 +115,9 @@ function parseRangesToHTMLNodes(text, ranges, markdownStyle = {}, disableInlineS
97
115
  node: span,
98
116
  endIndex: endOfCurrentRange
99
117
  });
100
- lastRangeEndIndex = range.startIndex;
118
+ lastRangeEndIndex = range.start;
101
119
  } else {
102
- addSubstringAsTextNode(span, text, range.startIndex, endOfCurrentRange);
120
+ addSubstringAsTextNode(span, text, range.start, endOfCurrentRange);
103
121
  currentRoot.node.appendChild(span);
104
122
  lastRangeEndIndex = endOfCurrentRange;
105
123
 
@@ -132,14 +150,7 @@ function parseText(target, text, curosrPositionIndex, markdownStyle = {}, disabl
132
150
  cursorPosition = CursorUtils.getCurrentCursorPosition(target).start;
133
151
  }
134
152
  const ranges = global.parseExpensiMarkToRanges(text);
135
- const markdownRanges = ranges.map(range => {
136
- const [type, startIndex, length] = range;
137
- return {
138
- type: type,
139
- startIndex,
140
- length
141
- };
142
- });
153
+ const markdownRanges = ranges;
143
154
  targetElement.innerHTML = '';
144
155
  targetElement.innerText = '';
145
156
 
@@ -1 +1 @@
1
- {"version":3,"names":["CursorUtils","addStyling","targetElement","type","markdownStyle","node","Object","assign","style","syntax","fontWeight","fontStyle","textDecoration","mentionHere","mentionUser","link","code","pre","blockquote","borderLeftStyle","display","maxWidth","boxSizing","h1","addSubstringAsTextNode","root","text","startIndex","endIndex","substring","length","appendChild","document","createTextNode","parseRangesToHTMLNodes","ranges","disableInlineStyles","createElement","className","textLength","stack","nestedStack","lastRangeEndIndex","range","shift","currentRoot","endOfCurrentRange","nextRangeStartIndex","span","push","prevRoot","pop","lastNestedNode","parseText","target","curosrPositionIndex","disableNewLinesInCursorPositioning","alwaysMoveCursorToTheEnd","cursorPosition","isFocused","activeElement","getCurrentCursorPosition","start","global","parseExpensiMarkToRanges","markdownRanges","map","innerHTML","innerText","dom","moveCursorToEnd","setCursorPosition"],"sourceRoot":"../../../src","sources":["web/parserUtils.ts"],"mappings":"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"}
1
+ {"version":3,"names":["CursorUtils","addStyling","targetElement","type","markdownStyle","node","Object","assign","style","syntax","fontWeight","fontStyle","textDecoration","mentionHere","mentionUser","link","code","pre","blockquote","borderLeftStyle","display","maxWidth","boxSizing","h1","addSubstringAsTextNode","root","text","startIndex","endIndex","substring","length","appendChild","document","createTextNode","ungroupRanges","ranges","ungroupedRanges","forEach","range","depth","push","rangeWithoutDepth","Array","from","parseRangesToHTMLNodes","disableInlineStyles","createElement","className","textLength","stack","nestedStack","lastRangeEndIndex","shift","currentRoot","endOfCurrentRange","start","nextRangeStartIndex","span","prevRoot","pop","lastNestedNode","parseText","target","curosrPositionIndex","disableNewLinesInCursorPositioning","alwaysMoveCursorToTheEnd","cursorPosition","isFocused","activeElement","getCurrentCursorPosition","global","parseExpensiMarkToRanges","markdownRanges","innerHTML","innerText","dom","moveCursorToEnd","setCursorPosition"],"sourceRoot":"../../../src","sources":["web/parserUtils.ts"],"mappings":"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"}