yapp 2.1.2 → 2.1.8

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/yapp.js CHANGED
@@ -6,9 +6,9 @@ import { React, Element } from "easy";
6
6
 
7
7
  import RichTextarea from "./richTextarea";
8
8
  import PrettyPrinter from "./prettyPrinter";
9
- import scrollBarThickness from "./scrollbarThickness";
10
9
 
11
10
  import { stripPixels } from "./utilities/css";
11
+ import { getScrollbarThickness } from "./utilities/scrollbarThickness";
12
12
  import { pluginFromLanguageAndPlugin } from "./utilities/plugin";
13
13
  import { TOP, LEFT, RIGHT, LINE_HEIGHT, BOTTOM } from "./constants";
14
14
  import { propertiesFromContentLanguagePluginAndOptions } from "./utilities/properties";
@@ -62,6 +62,14 @@ class Yapp extends Element {
62
62
  return borderLeftWidth;
63
63
  }
64
64
 
65
+ getInitialLineCount() {
66
+ const content = this.getContent(),
67
+ lineCount = lineCountFromContent(content),
68
+ initialLineCount = lineCount; ///
69
+
70
+ return initialLineCount;
71
+ }
72
+
65
73
  getBorderRightWidth() {
66
74
  const side = RIGHT,
67
75
  borderRightWidth = this.getBorderWidth(side);
@@ -76,6 +84,13 @@ class Yapp extends Element {
76
84
  return borderBottomWidth;
77
85
  }
78
86
 
87
+ getScrollbarThickness() {
88
+ const { fancyScrollbars = DEFAULT_FANCY_SCROLLBARS } = this.properties,
89
+ scrollbarThickness = getScrollbarThickness(fancyScrollbars);
90
+
91
+ return scrollbarThickness;
92
+ }
93
+
79
94
  setLexer(lexer) { this.plugin.setLexer(lexer); }
80
95
 
81
96
  setParser(parser) { this.plugin.setParser(parser); }
@@ -138,12 +153,12 @@ class Yapp extends Element {
138
153
  }
139
154
 
140
155
  render() {
141
- const content = this.getContent(),
142
- lineCount = lineCountFromContent(content),
143
- lineHeight = this.getLineHeight(),
156
+ const lineHeight = this.getLineHeight(),
144
157
  borderTopWidth = this.getBorderTopWidth(),
158
+ initialLineCount = this.getInitialLineCount(),
145
159
  borderBottomWidth = this.getBorderBottomWidth(),
146
- height = lineCount * lineHeight + scrollBarThickness + borderTopWidth + borderBottomWidth;
160
+ scrollbarThickness = this.getScrollbarThickness(),
161
+ height = initialLineCount * lineHeight + borderTopWidth + borderBottomWidth + scrollbarThickness;
147
162
 
148
163
  this.setHeight(height);
149
164
 
@@ -177,11 +192,12 @@ class Yapp extends Element {
177
192
  childElements() {
178
193
  const { hiddenGutter = DEFAULT_HIDDEN_GUTTER, fancyScrollbars = DEFAULT_FANCY_SCROLLBARS } = this.properties,
179
194
  changeHandler = this.changeHandler.bind(this),
180
- scrollHandler = this.scrollHandler.bind(this);
195
+ scrollHandler = this.scrollHandler.bind(this),
196
+ scrollbarThickness = this.getScrollbarThickness();
181
197
 
182
198
  return ([
183
199
 
184
- <PrettyPrinter hiddenGutter={hiddenGutter} />,
200
+ <PrettyPrinter hiddenGutter={hiddenGutter} scrollbarThickness={scrollbarThickness} />,
185
201
  <RichTextarea onChange={changeHandler} onScroll={scrollHandler} fancyScrollbars={fancyScrollbars} active />
186
202
 
187
203
  ]);
@@ -1,21 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- exports.default = void 0;
6
- var _easy = require("easy");
7
- var body = new _easy.Body(), style = {
8
- width: "50px",
9
- height: "50px",
10
- overflow: "scroll"
11
- }, outerDiv = /*#__PURE__*/ _easy.React.createElement("div", {
12
- style: style
13
- }), innerDiv = /*#__PURE__*/ _easy.React.createElement("div", null);
14
- outerDiv.append(innerDiv);
15
- body.append(outerDiv);
16
- var outerDivWidth = outerDiv.getWidth(), innerDivWidth = innerDiv.getWidth(), scrollbarThickness = outerDivWidth - innerDivWidth; ///
17
- outerDiv.remove();
18
- var _default = scrollbarThickness;
19
- exports.default = _default;
20
-
21
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9zY3JvbGxiYXJUaGlja25lc3MuanMiXSwibmFtZXMiOlsiUmVhY3QiLCJCb2R5IiwiYm9keSIsInN0eWxlIiwid2lkdGgiLCJoZWlnaHQiLCJvdmVyZmxvdyIsIm91dGVyRGl2IiwiZGl2IiwiaW5uZXJEaXYiLCJhcHBlbmQiLCJvdXRlckRpdldpZHRoIiwiZ2V0V2lkdGgiLCJpbm5lckRpdldpZHRoIiwic2Nyb2xsYmFyVGhpY2tuZXNzIiwicmVtb3ZlIl0sIm1hcHBpbmdzIjoiQUFBQSxDQUFZOzs7OztBQUVnQixHQUFNLENBQU4sS0FBTTtBQUVsQyxHQUFLLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FGWSxLQUFNLFNBRzVCLEtBQUssR0FBRyxDQUFDO0lBQ1AsS0FBSyxFQUFFLENBQU07SUFDYixNQUFNLEVBQUUsQ0FBTTtJQUNkLFFBQVEsRUFBRSxDQUFRO0FBQ3BCLENBQUMsRUFDRCxRQUFRLGlCQVJjLEtBQU0scUJBVXpCLENBQUc7SUFBQyxLQUFLLEVBQUUsS0FBSztJQUduQixRQUFRLGlCQWJjLEtBQU0scUJBZXpCLENBQUc7QUFJWixRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVE7QUFFeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRO0FBRXBCLEdBQUssQ0FBQyxhQUFhLEdBQUcsUUFBUSxDQUFDLFFBQVEsSUFDakMsYUFBYSxHQUFHLFFBQVEsQ0FBQyxRQUFRLElBQ2pDLGtCQUFrQixHQUFHLGFBQWEsR0FBRyxhQUFhLENBQUUsQ0FBRyxBQUFILEVBQUcsQUFBSCxDQUFHO0FBRTdELFFBQVEsQ0FBQyxNQUFNO2VBRUEsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IFJlYWN0LCBCb2R5IH0gZnJvbSBcImVhc3lcIjtcblxuY29uc3QgYm9keSA9IG5ldyBCb2R5KCksXG4gICAgICBzdHlsZSA9IHtcbiAgICAgICAgd2lkdGg6IFwiNTBweFwiLFxuICAgICAgICBoZWlnaHQ6IFwiNTBweFwiLFxuICAgICAgICBvdmVyZmxvdzogXCJzY3JvbGxcIlxuICAgICAgfSxcbiAgICAgIG91dGVyRGl2ID1cblxuICAgICAgICA8ZGl2IHN0eWxlPXtzdHlsZX0gLz5cblxuICAgICAgLFxuICAgICAgaW5uZXJEaXYgPVxuXG4gICAgICAgIDxkaXYgLz5cblxuICAgICAgO1xuXG5vdXRlckRpdi5hcHBlbmQoaW5uZXJEaXYpO1xuXG5ib2R5LmFwcGVuZChvdXRlckRpdik7XG5cbmNvbnN0IG91dGVyRGl2V2lkdGggPSBvdXRlckRpdi5nZXRXaWR0aCgpLFxuICAgICAgaW5uZXJEaXZXaWR0aCA9IGlubmVyRGl2LmdldFdpZHRoKCksXG4gICAgICBzY3JvbGxiYXJUaGlja25lc3MgPSBvdXRlckRpdldpZHRoIC0gaW5uZXJEaXZXaWR0aDsgLy8vXG5cbm91dGVyRGl2LnJlbW92ZSgpO1xuXG5leHBvcnQgZGVmYXVsdCBzY3JvbGxiYXJUaGlja25lc3M7XG4iXX0=
@@ -1,32 +0,0 @@
1
- "use strict";
2
-
3
- import { React, Body } from "easy";
4
-
5
- const body = new Body(),
6
- style = {
7
- width: "50px",
8
- height: "50px",
9
- overflow: "scroll"
10
- },
11
- outerDiv =
12
-
13
- <div style={style} />
14
-
15
- ,
16
- innerDiv =
17
-
18
- <div />
19
-
20
- ;
21
-
22
- outerDiv.append(innerDiv);
23
-
24
- body.append(outerDiv);
25
-
26
- const outerDivWidth = outerDiv.getWidth(),
27
- innerDivWidth = innerDiv.getWidth(),
28
- scrollbarThickness = outerDivWidth - innerDivWidth; ///
29
-
30
- outerDiv.remove();
31
-
32
- export default scrollbarThickness;