@pie-element/number-line 9.6.6-next.3 → 9.6.6-next.31

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.
@@ -7,7 +7,7 @@
7
7
  "dependencies": {
8
8
  "@material-ui/core": "^3.9.2",
9
9
  "@pie-framework/pie-configure-events": "^1.3.0",
10
- "@pie-lib/pie-toolbox": "2.14.6",
10
+ "@pie-lib/pie-toolbox": "2.16.0",
11
11
  "lodash": "^4.17.15",
12
12
  "react": "^16.8.1",
13
13
  "react-dom": "^16.8.1"
@@ -14,7 +14,7 @@
14
14
  "access": "public"
15
15
  },
16
16
  "dependencies": {
17
- "@pie-lib/pie-toolbox": "2.14.6",
17
+ "@pie-lib/pie-toolbox": "2.16.0",
18
18
  "lodash": "^4.17.15",
19
19
  "mathjs": "^7.5.1"
20
20
  },
@@ -75,20 +75,59 @@ var Tick = /*#__PURE__*/function (_React$Component) {
75
75
  (0, _classCallCheck2["default"])(this, Tick);
76
76
  _this = _super.call(this, props);
77
77
  _this.wasRendered = false;
78
+ _this.state = {
79
+ textBox: {
80
+ width: 0,
81
+ height: 0,
82
+ x: 0,
83
+ y: 0
84
+ }
85
+ };
78
86
  return _this;
79
87
  }
80
88
 
81
89
  (0, _createClass2["default"])(Tick, [{
90
+ key: "updateTextBox",
91
+ value: function updateTextBox() {
92
+ if (this.text) {
93
+ var _this$text$getBBox = this.text.getBBox(),
94
+ width = _this$text$getBBox.width,
95
+ height = _this$text$getBBox.height,
96
+ x = _this$text$getBBox.x,
97
+ y = _this$text$getBBox.y;
98
+
99
+ this.setState({
100
+ textBox: {
101
+ width: width,
102
+ height: height,
103
+ x: x,
104
+ y: y
105
+ }
106
+ });
107
+ }
108
+ }
109
+ }, {
82
110
  key: "componentDidMount",
83
111
  value: function componentDidMount() {
84
112
  //center align the tick text
85
113
  if (this.text) {
86
114
  var fraction = this.props.fraction;
87
115
 
88
- var _this$text$getBBox = this.text.getBBox(),
89
- width = _this$text$getBBox.width;
116
+ var _this$text$getBBox2 = this.text.getBBox(),
117
+ width = _this$text$getBBox2.width,
118
+ height = _this$text$getBBox2.height,
119
+ x = _this$text$getBBox2.x,
120
+ y = _this$text$getBBox2.y;
90
121
 
91
122
  this.text.setAttribute('x', width / 2 * -1);
123
+ this.setState({
124
+ textBox: {
125
+ width: width,
126
+ height: height,
127
+ x: x,
128
+ y: y
129
+ }
130
+ });
92
131
 
93
132
  if (fraction && !this.wasRendered) {
94
133
  // used for rendering the line fraction
@@ -113,17 +152,15 @@ var Tick = /*#__PURE__*/function (_React$Component) {
113
152
  var displayFraction = fraction && x.n !== x.d && x.n !== 0 && x.d !== 1;
114
153
  var labelTick = type === 'major';
115
154
  var height = labelTick ? 20 : 10;
116
-
117
- var _ref = this.text && this.text.getBBox() || {},
118
- _ref$width = _ref.width,
119
- textWidth = _ref$width === void 0 ? 0 : _ref$width,
120
- _ref$height = _ref.height,
121
- textHeight = _ref$height === void 0 ? 0 : _ref$height,
122
- _ref$x = _ref.x,
123
- textX = _ref$x === void 0 ? 0 : _ref$x,
124
- _ref$y = _ref.y,
125
- textY = _ref$y === void 0 ? 0 : _ref$y;
126
-
155
+ var _this$state$textBox = this.state.textBox,
156
+ _this$state$textBox$w = _this$state$textBox.width,
157
+ textWidth = _this$state$textBox$w === void 0 ? 0 : _this$state$textBox$w,
158
+ _this$state$textBox$h = _this$state$textBox.height,
159
+ textHeight = _this$state$textBox$h === void 0 ? 0 : _this$state$textBox$h,
160
+ _this$state$textBox$x = _this$state$textBox.x,
161
+ textX = _this$state$textBox$x === void 0 ? 0 : _this$state$textBox$x,
162
+ _this$state$textBox$y = _this$state$textBox.y,
163
+ textY = _this$state$textBox$y === void 0 ? 0 : _this$state$textBox$y;
127
164
  var xText = !fraction ? Number(x.toFixed(3)) : !displayFraction ? x.n * x.s : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("tspan", {
128
165
  x: "0",
129
166
  dy: "0.71em"
@@ -199,9 +236,9 @@ var Ticks = /*#__PURE__*/function (_React$Component2) {
199
236
  var tickData = (0, _tickUtils.buildTickData)(domain, width, ticks, {
200
237
  fraction: fraction
201
238
  });
202
- return /*#__PURE__*/_react["default"].createElement("g", null, tickData.map(function (_ref2) {
203
- var x = _ref2.x,
204
- type = _ref2.type;
239
+ return /*#__PURE__*/_react["default"].createElement("g", null, tickData.map(function (_ref) {
240
+ var x = _ref.x,
241
+ type = _ref.type;
205
242
  return /*#__PURE__*/_react["default"].createElement(Tick, {
206
243
  classes: classes,
207
244
  fraction: fraction,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/number-line/graph/ticks.jsx"],"names":["style","text","userSelect","textAlign","fill","color","primary","line","stroke","TickValidator","PropTypes","shape","major","props","propName","minor","componentName","Error","isRequired","Tick","wasRendered","fraction","getBBox","width","setAttribute","forceUpdate","x","y","type","classes","xScale","displayFraction","n","d","labelTick","height","textWidth","textHeight","textX","textY","xText","Number","toFixed","s","React","Component","object","number","bool","func","string","Ticks","domain","ticks","context","tickData","map","min","max"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { buildTickData, isMultiple } from './tick-utils';\nimport injectSheet from 'react-jss';\nimport { color } from '@pie-lib/pie-toolbox/render-ui';\n\nconst style = {\n text: {\n userSelect: 'none',\n textAlign: 'center',\n fill: color.primary(),\n },\n line: {\n stroke: color.primary(),\n },\n};\n\nexport const TickValidator = PropTypes.shape({\n /** the number of major ticks (including min + max)\n * to display. cant be lower than 2.\n */\n major: (props, propName) => {},\n /** the number of minor ticks to display between major ticks.\n * Can't be less than zero.\n */\n minor: (props, propName, componentName) => {\n let minor = props[propName];\n if (minor <= 0) {\n return new Error(`Invalid prop ${propName} must be > 0. ${componentName}`);\n }\n },\n}).isRequired;\n\nexport class Tick extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n y: PropTypes.number.isRequired,\n x: PropTypes.number.isRequired,\n major: PropTypes.bool,\n fraction: PropTypes.bool,\n xScale: PropTypes.func,\n type: PropTypes.string,\n };\n\n static defaultProps = {\n major: false,\n };\n\n constructor(props) {\n super(props);\n this.wasRendered = false;\n }\n\n componentDidMount() {\n //center align the tick text\n if (this.text) {\n const { fraction } = this.props;\n let { width } = this.text.getBBox();\n this.text.setAttribute('x', (width / 2) * -1);\n\n if (fraction && !this.wasRendered) {\n // used for rendering the line fraction\n this.wasRendered = true;\n this.forceUpdate();\n }\n }\n }\n\n render() {\n //the domain value\n let { x, y, type, classes, xScale, fraction } = this.props;\n const displayFraction = fraction && x.n !== x.d && x.n !== 0 && x.d !== 1;\n const labelTick = type === 'major';\n const height = labelTick ? 20 : 10;\n const {\n width: textWidth = 0,\n height: textHeight = 0,\n x: textX = 0,\n y: textY = 0,\n } = (this.text && this.text.getBBox()) || {};\n\n const xText = !fraction ? (\n Number(x.toFixed(3))\n ) : !displayFraction ? (\n x.n * x.s\n ) : (\n <React.Fragment>\n <tspan x=\"0\" dy=\"0.71em\">\n {x.n * x.s}\n </tspan>\n <tspan x=\"0\" dy=\"1.11em\">\n {x.d}\n </tspan>\n </React.Fragment>\n );\n\n return (\n <g opacity=\"1\" transform={`translate(${xScale(x)}, ${y})`}>\n <line className={classes.line} y1={(height / 2) * -1} y2={height / 2} x1=\"0.5\" x2=\"0.5\" />\n\n {displayFraction && (\n <line\n className={classes.line}\n x1={textX}\n x2={textX + textWidth}\n y1={textY + textHeight / 2}\n y2={textY + textHeight / 2}\n />\n )}\n\n {labelTick && (\n <text\n ref={(text) => (this.text = text)}\n className={classes.text}\n y=\"14\"\n width=\"10\"\n dy=\"0.71em\"\n textAnchor={displayFraction && 'middle'}\n >\n {xText}\n </text>\n )}\n </g>\n );\n }\n}\n\nexport class Ticks extends React.Component {\n static contextTypes = {\n xScale: PropTypes.func.isRequired,\n };\n\n static propTypes = {\n classes: PropTypes.object.isRequired,\n domain: PropTypes.shape({\n min: PropTypes.number.isRequired,\n max: PropTypes.number.isRequired,\n }).isRequired,\n fraction: PropTypes.bool,\n width: PropTypes.number,\n ticks: TickValidator,\n y: PropTypes.number.isRequired,\n };\n\n render() {\n let { domain, width, ticks, y, classes, fraction } = this.props;\n let { xScale } = this.context;\n\n const tickData = buildTickData(domain, width, ticks, { fraction });\n\n return (\n <g>\n {tickData.map(({ x, type }) => {\n return (\n <Tick\n classes={classes}\n fraction={fraction}\n x={x}\n y={y}\n type={type}\n xScale={xScale}\n key={`${x}-${type}-${fraction}`}\n />\n );\n })}\n </g>\n );\n }\n}\n\nexport default injectSheet(style)(Ticks);\n"],"file":"ticks.js"}
1
+ {"version":3,"sources":["../../../src/number-line/graph/ticks.jsx"],"names":["style","text","userSelect","textAlign","fill","color","primary","line","stroke","TickValidator","PropTypes","shape","major","props","propName","minor","componentName","Error","isRequired","Tick","wasRendered","state","textBox","width","height","x","y","getBBox","setState","fraction","setAttribute","forceUpdate","type","classes","xScale","displayFraction","n","d","labelTick","textWidth","textHeight","textX","textY","xText","Number","toFixed","s","React","Component","object","number","bool","func","string","Ticks","domain","ticks","context","tickData","map","min","max"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { buildTickData } from './tick-utils';\nimport injectSheet from 'react-jss';\nimport { color } from '@pie-lib/pie-toolbox/render-ui';\n\nconst style = {\n text: {\n userSelect: 'none',\n textAlign: 'center',\n fill: color.primary(),\n },\n line: {\n stroke: color.primary(),\n },\n};\n\nexport const TickValidator = PropTypes.shape({\n /** the number of major ticks (including min + max)\n * to display. cant be lower than 2.\n */\n major: (props, propName) => {},\n /** the number of minor ticks to display between major ticks.\n * Can't be less than zero.\n */\n minor: (props, propName, componentName) => {\n let minor = props[propName];\n if (minor <= 0) {\n return new Error(`Invalid prop ${propName} must be > 0. ${componentName}`);\n }\n },\n}).isRequired;\n\nexport class Tick extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n y: PropTypes.number.isRequired,\n x: PropTypes.number.isRequired,\n major: PropTypes.bool,\n fraction: PropTypes.bool,\n xScale: PropTypes.func,\n type: PropTypes.string,\n };\n\n static defaultProps = {\n major: false,\n };\n\n constructor(props) {\n super(props);\n this.wasRendered = false;\n this.state = {\n textBox: {\n width: 0,\n height: 0,\n x: 0,\n y: 0,\n }\n };\n }\n \n updateTextBox() {\n if (this.text) {\n const { width, height, x, y } = this.text.getBBox();\n this.setState({ textBox: { width, height, x, y } });\n }\n }\n\n componentDidMount() {\n //center align the tick text\n if (this.text) {\n const { fraction } = this.props;\n let { width, height, x, y } = this.text.getBBox();\n this.text.setAttribute('x', (width / 2) * -1);\n this.setState({ textBox: { width, height, x, y } });\n\n if (fraction && !this.wasRendered) {\n // used for rendering the line fraction\n this.wasRendered = true;\n this.forceUpdate();\n }\n }\n }\n\n render() {\n //the domain value\n let { x, y, type, classes, xScale, fraction } = this.props;\n const displayFraction = fraction && x.n !== x.d && x.n !== 0 && x.d !== 1;\n const labelTick = type === 'major';\n const height = labelTick ? 20 : 10;\n const {\n width: textWidth = 0,\n height: textHeight = 0,\n x: textX = 0,\n y: textY = 0,\n } = this.state.textBox;\n\n const xText = !fraction ? (\n Number(x.toFixed(3))\n ) : !displayFraction ? (\n x.n * x.s\n ) : (\n <React.Fragment>\n <tspan x=\"0\" dy=\"0.71em\">\n {x.n * x.s}\n </tspan>\n <tspan x=\"0\" dy=\"1.11em\">\n {x.d}\n </tspan>\n </React.Fragment>\n );\n\n return (\n <g opacity=\"1\" transform={`translate(${xScale(x)}, ${y})`}>\n <line className={classes.line} y1={(height / 2) * -1} y2={height / 2} x1=\"0.5\" x2=\"0.5\" />\n\n {displayFraction && (\n <line\n className={classes.line}\n x1={textX}\n x2={textX + textWidth}\n y1={textY + textHeight / 2}\n y2={textY + textHeight / 2}\n />\n )}\n\n {labelTick && (\n <text\n ref={(text) => (this.text = text)}\n className={classes.text}\n y=\"14\"\n width=\"10\"\n dy=\"0.71em\"\n textAnchor={displayFraction && 'middle'}\n >\n {xText}\n </text>\n )}\n </g>\n );\n }\n}\n\nexport class Ticks extends React.Component {\n static contextTypes = {\n xScale: PropTypes.func.isRequired,\n };\n\n static propTypes = {\n classes: PropTypes.object.isRequired,\n domain: PropTypes.shape({\n min: PropTypes.number.isRequired,\n max: PropTypes.number.isRequired,\n }).isRequired,\n fraction: PropTypes.bool,\n width: PropTypes.number,\n ticks: TickValidator,\n y: PropTypes.number.isRequired,\n };\n\n render() {\n let { domain, width, ticks, y, classes, fraction } = this.props;\n let { xScale } = this.context;\n\n const tickData = buildTickData(domain, width, ticks, { fraction });\n\n return (\n <g>\n {tickData.map(({ x, type }) => {\n return (\n <Tick\n classes={classes}\n fraction={fraction}\n x={x}\n y={y}\n type={type}\n xScale={xScale}\n key={`${x}-${type}-${fraction}`}\n />\n );\n })}\n </g>\n );\n }\n}\n\nexport default injectSheet(style)(Ticks);\n"],"file":"ticks.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pie-element/number-line",
3
- "version": "9.6.6-next.3+227227454",
3
+ "version": "9.6.6-next.31+61185c0df",
4
4
  "repository": "pie-framework/pie-elements",
5
5
  "description": "",
6
6
  "publishConfig": {
@@ -8,7 +8,7 @@
8
8
  },
9
9
  "dependencies": {
10
10
  "@material-ui/core": "^3.9.2",
11
- "@pie-lib/pie-toolbox": "2.14.6",
11
+ "@pie-lib/pie-toolbox": "2.16.0",
12
12
  "classnames": "^2.2.5",
13
13
  "d3-scale": "^3.2.1",
14
14
  "d3-selection": "^1.4.1",
@@ -23,7 +23,7 @@
23
23
  },
24
24
  "author": "pie framework developers",
25
25
  "license": "ISC",
26
- "gitHead": "22722745439ac4a923b89dac36f96a9fc2cb4188",
26
+ "gitHead": "61185c0df80f9a7cd71d58a04ac4701e2bf628fc",
27
27
  "scripts": {
28
28
  "postpublish": "../../scripts/postpublish"
29
29
  },