yapp 4.0.12 → 4.0.18

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/src/highlights.js CHANGED
@@ -6,6 +6,8 @@ import { Element } from "easy";
6
6
 
7
7
  import Syntax from "./syntax";
8
8
 
9
+ import { MARGIN_RIGHT, MARGIN_BOTTOM } from "./constants";
10
+
9
11
  class Highlights extends Element {
10
12
  update(tokens) {
11
13
  this.updateSyntax(tokens);
@@ -15,6 +17,19 @@ class Highlights extends Element {
15
17
  this.scrollSyntax(scrollTop, scrollLeft);
16
18
  }
17
19
 
20
+ didMount() {
21
+ const { scrollbarThickness } = this.properties,
22
+ marginRight = `${scrollbarThickness}px`,
23
+ marginBottom = `${scrollbarThickness}px`;
24
+
25
+ this.style(MARGIN_RIGHT, marginRight);
26
+ this.style(MARGIN_BOTTOM, marginBottom);
27
+ }
28
+
29
+ willUnmount() {
30
+ ///
31
+ }
32
+
18
33
  childElements() {
19
34
  return (
20
35
 
@@ -44,6 +59,10 @@ class Highlights extends Element {
44
59
 
45
60
  static tagName = "div";
46
61
 
62
+ static ignoredProperties = [
63
+ "scrollbarThickness"
64
+ ];
65
+
47
66
  static defaultProperties = {
48
67
  className: "highlights"
49
68
  };
@@ -52,8 +71,8 @@ class Highlights extends Element {
52
71
  export default withStyle(Highlights)`
53
72
 
54
73
  z-index: 0;
55
- width: 100%;
56
- height: 100%;
74
+ width: auto;
75
+ height: auto;
57
76
  overflow: hidden;
58
77
  position: relative;
59
78
  grid-area: highlights-rich-textarea;
@@ -8,6 +8,8 @@ import Gutter from "./gutter";
8
8
  import Highlights from "./highlights";
9
9
  import RichTextarea from "./richTextarea";
10
10
 
11
+ import { getScrollbarThickness } from "./utilities/scrollbarThickness";
12
+
11
13
  class PrettyPrinter extends Element {
12
14
  scrollHandler = (event, element) => {
13
15
  const richTextarea = element, ///
@@ -26,9 +28,10 @@ class PrettyPrinter extends Element {
26
28
  }
27
29
 
28
30
  childElements() {
29
- const { onChange, hiddenGutter, fancyScrollbars, hiddenScrollbars, scrollbarThickness } = this.properties,
31
+ const { onChange, hiddenGutter, fancyScrollbars, hiddenScrollbars } = this.properties,
30
32
  hidden = hiddenGutter, ///
31
- changeHandler = onChange; ///
33
+ changeHandler = onChange, ///
34
+ scrollbarThickness = getScrollbarThickness(hiddenScrollbars, fancyScrollbars);
32
35
 
33
36
  return ([
34
37
 
@@ -69,8 +72,7 @@ class PrettyPrinter extends Element {
69
72
  "hiddenGutter",
70
73
  "hiddenGutter",
71
74
  "noScrollbars",
72
- "fancyScrollbars",
73
- "scrollbarThickness"
75
+ "fancyScrollbars"
74
76
  ];
75
77
  }
76
78
 
@@ -31,10 +31,16 @@ const outerDivWidth = outerDiv.getWidth(),
31
31
 
32
32
  outerDiv.remove();
33
33
 
34
- export function getScrollbarThickness(fancyScrollbars) {
35
- const scrollbarThickness = fancyScrollbars ?
36
- stripPixels(stylesScrollbarThickness) :
37
- outerDivWidth - innerDivWidth; ///
34
+ export function getScrollbarThickness(hiddenScrollbars, fancyScrollbars) {
35
+ let scrollbarThickness;
36
+
37
+ if (hiddenScrollbars) {
38
+ scrollbarThickness = 0;
39
+ } else {
40
+ scrollbarThickness = fancyScrollbars ?
41
+ stripPixels(stylesScrollbarThickness) : ///
42
+ outerDivWidth - innerDivWidth; ///
43
+ }
38
44
 
39
45
  return scrollbarThickness;
40
46
  }
package/src/yapp.js CHANGED
@@ -7,7 +7,6 @@ import { React, Element } from "easy";
7
7
  import styleMixins from "./mixins/style";
8
8
  import PrettyPrinter from "./prettyPrinter";
9
9
 
10
- import { getScrollbarThickness } from "./utilities/scrollbarThickness";
11
10
  import { pluginFromLanguageAndPlugin } from "./utilities/plugin";
12
11
  import { propertiesFromContentLanguagePluginAndOptions } from "./utilities/properties";
13
12
  import { lineCountFromContent, contentFromChildElements } from "./utilities/content";
@@ -21,24 +20,6 @@ class Yapp extends Element {
21
20
  this.plugin = plugin;
22
21
  }
23
22
 
24
- changeHandler = (event, element) => {
25
- const richTextarea = element, ///
26
- contentChanged = richTextarea.hasContentChanged();
27
-
28
- if (contentChanged) {
29
- const { onContentChange = null } = this.properties,
30
- contentChangeHandler = onContentChange; ///
31
-
32
- this.update();
33
-
34
- if (contentChangeHandler) {
35
- element = this; ///
36
-
37
- contentChangeHandler(event, element);
38
- }
39
- }
40
- }
41
-
42
23
  getPlugin() {
43
24
  return this.plugin;
44
25
  }
@@ -58,23 +39,27 @@ class Yapp extends Element {
58
39
  return initialLineCount;
59
40
  }
60
41
 
61
- getScrollbarThickness() {
62
- let scrollbarThickness = 0;
42
+ setLexer(lexer) { this.plugin.setLexer(lexer); }
63
43
 
64
- const { hiddenScrollbars = DEFAULT_HIDDEN_SCROLLBARS } = this.properties;
44
+ setParser(parser) { this.plugin.setParser(parser); }
65
45
 
66
- if (!hiddenScrollbars) {
67
- const { fancyScrollbars = DEFAULT_FANCY_SCROLLBARS } = this.properties;
46
+ changeHandler = (event, element) => {
47
+ const richTextarea = element, ///
48
+ contentChanged = richTextarea.hasContentChanged();
68
49
 
69
- scrollbarThickness = getScrollbarThickness(fancyScrollbars);
70
- }
50
+ if (contentChanged) {
51
+ const { onContentChange = null } = this.properties,
52
+ contentChangeHandler = onContentChange; ///
71
53
 
72
- return scrollbarThickness;
73
- }
54
+ this.update();
74
55
 
75
- setLexer(lexer) { this.plugin.setLexer(lexer); }
56
+ if (contentChangeHandler) {
57
+ element = this; ///
76
58
 
77
- setParser(parser) { this.plugin.setParser(parser); }
59
+ contentChangeHandler(event, element);
60
+ }
61
+ }
62
+ }
78
63
 
79
64
  update() {
80
65
  const content = this.getContent();
@@ -116,16 +101,11 @@ class Yapp extends Element {
116
101
  }
117
102
 
118
103
  childElements() {
119
- const { hiddenGutter = DEFAULT_HIDDEN_GUTTER, hiddenScrollbars = DEFAULT_HIDDEN_SCROLLBARS, fancyScrollbars = DEFAULT_FANCY_SCROLLBARS } = this.properties,
120
- scrollbarThickness = this.getScrollbarThickness();
104
+ const { hiddenGutter = DEFAULT_HIDDEN_GUTTER, hiddenScrollbars = DEFAULT_HIDDEN_SCROLLBARS, fancyScrollbars = DEFAULT_FANCY_SCROLLBARS } = this.properties;
121
105
 
122
106
  return (
123
107
 
124
- <PrettyPrinter onChange={this.changeHandler}
125
- hiddenGutter={hiddenGutter}
126
- fancyScrollbars={fancyScrollbars}
127
- hiddenScrollbars={hiddenScrollbars}
128
- scrollbarThickness={scrollbarThickness} />
108
+ <PrettyPrinter onChange={this.changeHandler} hiddenGutter={hiddenGutter} fancyScrollbars={fancyScrollbars} hiddenScrollbars={hiddenScrollbars} />
129
109
 
130
110
  );
131
111
  }
@@ -135,8 +115,6 @@ class Yapp extends Element {
135
115
  getContent = this.getContent.bind(this),
136
116
  updateYapp = this.update.bind(this), ///
137
117
  setYappLexer = this.setLexer.bind(this), ///
138
- setYappWidth = this.setWidth.bind(this), ///
139
- setYappHeight = this.setHeight.bind(this), ///
140
118
  setYappParser = this.setParser.bind(this); ///
141
119
 
142
120
  return ({
@@ -144,8 +122,6 @@ class Yapp extends Element {
144
122
  getContent,
145
123
  updateYapp,
146
124
  setYappLexer,
147
- setYappWidth,
148
- setYappHeight,
149
125
  setYappParser
150
126
  });
151
127
  }