@expensify/react-native-live-markdown 0.1.13 → 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);
@@ -96,15 +96,16 @@ public class MarkdownUtils {
96
96
  String type = range.getString("type");
97
97
  int start = range.getInt("start");
98
98
  int length = range.getInt("length");
99
+ int depth = range.optInt("depth", 1);
99
100
  int end = start + length;
100
- applyRange(ssb, type, start, end);
101
+ applyRange(ssb, type, start, end, depth);
101
102
  }
102
103
  } catch (JSONException e) {
103
104
  // Do nothing
104
105
  }
105
106
  }
106
107
 
107
- 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) {
108
109
  switch (type) {
109
110
  case "bold":
110
111
  setSpan(ssb, new MarkdownBoldSpan(), start, end);
@@ -156,7 +157,8 @@ public class MarkdownUtils {
156
157
  mMarkdownStyle.getBlockquoteBorderColor(),
157
158
  mMarkdownStyle.getBlockquoteBorderWidth(),
158
159
  mMarkdownStyle.getBlockquoteMarginLeft(),
159
- mMarkdownStyle.getBlockquotePaddingLeft());
160
+ mMarkdownStyle.getBlockquotePaddingLeft(),
161
+ depth);
160
162
  setSpan(ssb, span, start, end);
161
163
  break;
162
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
61
  NSDictionary *item = obj;
62
62
  NSString *type = [item valueForKey:@"type"];
63
63
  NSInteger location = [[item valueForKey:@"start"] unsignedIntegerValue];
64
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
@@ -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","start","nextRangeStartIndex","span","push","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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"}
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
@@ -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","start","nextRangeStartIndex","span","push","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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"}
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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"}