@pie-element/number-line 9.6.8-next.7 → 9.6.8-next.9
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.
|
@@ -83,49 +83,50 @@ var Tick = /*#__PURE__*/function (_React$Component) {
|
|
|
83
83
|
y: 0
|
|
84
84
|
}
|
|
85
85
|
};
|
|
86
|
+
_this.resizeObserver = null;
|
|
86
87
|
return _this;
|
|
87
88
|
}
|
|
88
89
|
|
|
89
90
|
(0, _createClass2["default"])(Tick, [{
|
|
90
91
|
key: "updateTextBox",
|
|
91
92
|
value: function updateTextBox() {
|
|
92
|
-
var _this2 = this;
|
|
93
|
-
|
|
94
93
|
if (this.text) {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
x: x,
|
|
110
|
-
y: y
|
|
111
|
-
}
|
|
112
|
-
});
|
|
94
|
+
var _this$text$getBBox = this.text.getBBox(),
|
|
95
|
+
width = _this$text$getBBox.width,
|
|
96
|
+
height = _this$text$getBBox.height,
|
|
97
|
+
x = _this$text$getBBox.x,
|
|
98
|
+
y = _this$text$getBBox.y;
|
|
99
|
+
|
|
100
|
+
this.text.setAttribute('x', width / 2 * -1);
|
|
101
|
+
this.setState({
|
|
102
|
+
textBox: {
|
|
103
|
+
width: width,
|
|
104
|
+
height: height,
|
|
105
|
+
x: x,
|
|
106
|
+
y: y
|
|
107
|
+
}
|
|
113
108
|
});
|
|
114
109
|
}
|
|
115
110
|
}
|
|
116
111
|
}, {
|
|
117
112
|
key: "componentDidMount",
|
|
118
113
|
value: function componentDidMount() {
|
|
119
|
-
|
|
114
|
+
var _this2 = this;
|
|
115
|
+
|
|
116
|
+
// Set up ResizeObserver
|
|
117
|
+
this.resizeObserver = new ResizeObserver(function () {
|
|
118
|
+
_this2.updateTextBox();
|
|
119
|
+
});
|
|
120
|
+
|
|
120
121
|
if (this.text) {
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
122
|
+
this.resizeObserver.observe(this.text);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}, {
|
|
126
|
+
key: "componentWillUnmount",
|
|
127
|
+
value: function componentWillUnmount() {
|
|
128
|
+
if (this.resizeObserver) {
|
|
129
|
+
this.resizeObserver.disconnect();
|
|
129
130
|
}
|
|
130
131
|
}
|
|
131
132
|
}, {
|
|
@@ -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","state","textBox","width","height","x","y","requestAnimationFrame","getBBox","setAttribute","setState","fraction","updateTextBox","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 // ensure the DOM is \"ready\" → layout is done before getting text measurements\n requestAnimationFrame(() => {\n const { 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 }\n }\n\n componentDidMount() {\n //center align the tick text\n if (this.text) {\n const { fraction } = this.props;\n this.updateTextBox();\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"}
|
|
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","resizeObserver","getBBox","setAttribute","setState","ResizeObserver","updateTextBox","observe","disconnect","type","classes","xScale","fraction","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 this.resizeObserver = null;\n }\n\n updateTextBox() {\n if (this.text) {\n const { 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 }\n\n componentDidMount() {\n // Set up ResizeObserver\n this.resizeObserver = new ResizeObserver(() => {\n this.updateTextBox();\n });\n\n if(this.text) {\n this.resizeObserver.observe(this.text);\n }\n }\n\n componentWillUnmount() {\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\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.8-next.
|
|
3
|
+
"version": "9.6.8-next.9+fa9e913ec",
|
|
4
4
|
"repository": "pie-framework/pie-elements",
|
|
5
5
|
"description": "",
|
|
6
6
|
"publishConfig": {
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
},
|
|
24
24
|
"author": "pie framework developers",
|
|
25
25
|
"license": "ISC",
|
|
26
|
-
"gitHead": "
|
|
26
|
+
"gitHead": "fa9e913ecd904a0f40f147eedc64e35a7ae8e173",
|
|
27
27
|
"scripts": {
|
|
28
28
|
"postpublish": "../../scripts/postpublish"
|
|
29
29
|
},
|