@pie-lib/plot 2.1.10-next.258 → 2.1.10-next.408
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/CHANGELOG.md +22 -0
- package/lib/draggable.js.map +1 -1
- package/lib/graph-props.js +2 -4
- package/lib/graph-props.js.map +1 -1
- package/lib/grid-draggable.js.map +1 -1
- package/lib/index.js.map +1 -1
- package/lib/root.js +15 -14
- package/lib/root.js.map +1 -1
- package/lib/trig.js.map +1 -1
- package/lib/types.js.map +1 -1
- package/lib/utils.js +3 -3
- package/lib/utils.js.map +1 -1
- package/package.json +2 -2
- package/src/graph-props.js +3 -6
- package/src/root.jsx +12 -12
- package/src/utils.js +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,28 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [2.2.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/plot@2.1.10...@pie-lib/plot@2.2.0) (2022-05-10)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* **graphing, plot:** Added padding between labels and graph without changing the size of graph PD-1604 ([aa93191](https://github.com/pie-framework/pie-lib/commit/aa931910c56efddaf54d4586dc0730a9688e25e3))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
## [2.1.10](https://github.com/pie-framework/pie-lib/compare/@pie-lib/plot@2.1.9...@pie-lib/plot@2.1.10) (2022-03-21)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Bug Fixes
|
|
21
|
+
|
|
22
|
+
* **plot:** Added HTML-encoded characters support PD-1597 ([0ca23fc](https://github.com/pie-framework/pie-lib/commit/0ca23fc3276f73df875c6c9176e64890a2265d47))
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
6
28
|
## [2.1.9](https://github.com/pie-framework/pie-lib/compare/@pie-lib/plot@2.1.7...@pie-lib/plot@2.1.9) (2021-06-25)
|
|
7
29
|
|
|
8
30
|
**Note:** Version bump only for package @pie-lib/plot
|
package/lib/draggable.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"draggable.js","names":["LocalDraggable","next","setState","x","y","Draggable"],"sources":["../src/draggable.jsx"],"sourcesContent":["import Draggable, { DraggableCore } from 'react-draggable';\n\nexport default class LocalDraggable extends Draggable {\n componentWillReceiveProps(next) {\n super.componentWillReceiveProps(next);\n //Remove the x/y state as these values have now been updated and will come through as props.\n this.setState({ x: 0, y: 0 });\n }\n}\n\nexport { DraggableCore };\n"],"mappings":";;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEqBA,c;;;;;;;;;;;;;WACnB,mCAA0BC,IAA1B,EAAgC;MAC9B,8FAAgCA,IAAhC,EAD8B,CAE9B;;;MACA,KAAKC,QAAL,CAAc;QAAEC,CAAC,EAAE,CAAL;QAAQC,CAAC,EAAE;MAAX,CAAd;IACD;;;;EALyCC,0B"}
|
package/lib/graph-props.js
CHANGED
|
@@ -29,13 +29,11 @@ var createSnapMinAndMax = function createSnapMinAndMax(_ref) {
|
|
|
29
29
|
var create = function create(domain, range, size, getRootNode) {
|
|
30
30
|
(0, _invariant["default"])(domain.min < domain.max, 'domain: min must be less than max');
|
|
31
31
|
(0, _invariant["default"])(range.min < range.max, 'range: min must be less than max');
|
|
32
|
-
var widthArray = (0, _utils.buildSizeArray)(size.width, domain.padding);
|
|
33
|
-
var heightArray = (0, _utils.buildSizeArray)(size.height, range.padding);
|
|
34
32
|
var domainMinMax = createSnapMinAndMax(domain);
|
|
35
33
|
var rangeMinMax = createSnapMinAndMax(range);
|
|
36
34
|
var scale = {
|
|
37
|
-
x: (0, _d3Scale.scaleLinear)().domain([domain.min, domain.max]).range(
|
|
38
|
-
y: (0, _d3Scale.scaleLinear)().domain([range.max, range.min]).range(
|
|
35
|
+
x: (0, _d3Scale.scaleLinear)().domain([domain.min, domain.max]).range([0, size.width]),
|
|
36
|
+
y: (0, _d3Scale.scaleLinear)().domain([range.max, range.min]).range([0, size.height])
|
|
39
37
|
};
|
|
40
38
|
var snap = {
|
|
41
39
|
x: _utils.snapTo.bind(null, domainMinMax.min, domainMinMax.max, domainMinMax.step),
|
package/lib/graph-props.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"graph-props.js","names":["createSnapMinAndMax","min","max","step","parseInt","create","domain","range","size","getRootNode","invariant","domainMinMax","rangeMinMax","scale","x","scaleLinear","width","y","height","snap","snapTo","bind"],"sources":["../src/graph-props.js"],"sourcesContent":["import invariant from 'invariant';\nimport { snapTo } from './utils';\nimport { scaleLinear } from 'd3-scale';\n\nconst createSnapMinAndMax = ({ min, max, step }) => {\n // for graphing, if step is a value with decimals, we have to calculate the min & max for the grid taking in consideration that 0 has to be exactly in the middle\n // for example, if min: -5 & max: 5 & step: 0.75, in order to keep 0 in the middle we have to set min: -4.5 & max: 4.5\n return {\n step,\n min: parseInt(min / step) * step,\n max: parseInt(max / step) * step\n };\n};\n\nexport const create = (domain, range, size, getRootNode) => {\n invariant(domain.min < domain.max, 'domain: min must be less than max');\n invariant(range.min < range.max, 'range: min must be less than max');\n\n const domainMinMax = createSnapMinAndMax(domain);\n const rangeMinMax = createSnapMinAndMax(range);\n\n const scale = {\n x: scaleLinear()\n .domain([domain.min, domain.max])\n .range([0, size.width]),\n y: scaleLinear()\n .domain([range.max, range.min])\n .range([0, size.height])\n };\n\n const snap = {\n x: snapTo.bind(null, domainMinMax.min, domainMinMax.max, domainMinMax.step),\n y: snapTo.bind(null, rangeMinMax.min, rangeMinMax.max, rangeMinMax.step)\n };\n\n return { scale, snap, domain, range, size, getRootNode };\n};\n"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;AAEA,IAAMA,mBAAmB,GAAG,SAAtBA,mBAAsB,OAAwB;EAAA,IAArBC,GAAqB,QAArBA,GAAqB;EAAA,IAAhBC,GAAgB,QAAhBA,GAAgB;EAAA,IAAXC,IAAW,QAAXA,IAAW;EAClD;EACA;EACA,OAAO;IACLA,IAAI,EAAJA,IADK;IAELF,GAAG,EAAEG,QAAQ,CAACH,GAAG,GAAGE,IAAP,CAAR,GAAuBA,IAFvB;IAGLD,GAAG,EAAEE,QAAQ,CAACF,GAAG,GAAGC,IAAP,CAAR,GAAuBA;EAHvB,CAAP;AAKD,CARD;;AAUO,IAAME,MAAM,GAAG,SAATA,MAAS,CAACC,MAAD,EAASC,KAAT,EAAgBC,IAAhB,EAAsBC,WAAtB,EAAsC;EAC1D,IAAAC,qBAAA,EAAUJ,MAAM,CAACL,GAAP,GAAaK,MAAM,CAACJ,GAA9B,EAAmC,mCAAnC;EACA,IAAAQ,qBAAA,EAAUH,KAAK,CAACN,GAAN,GAAYM,KAAK,CAACL,GAA5B,EAAiC,kCAAjC;EAEA,IAAMS,YAAY,GAAGX,mBAAmB,CAACM,MAAD,CAAxC;EACA,IAAMM,WAAW,GAAGZ,mBAAmB,CAACO,KAAD,CAAvC;EAEA,IAAMM,KAAK,GAAG;IACZC,CAAC,EAAE,IAAAC,oBAAA,IACAT,MADA,CACO,CAACA,MAAM,CAACL,GAAR,EAAaK,MAAM,CAACJ,GAApB,CADP,EAEAK,KAFA,CAEM,CAAC,CAAD,EAAIC,IAAI,CAACQ,KAAT,CAFN,CADS;IAIZC,CAAC,EAAE,IAAAF,oBAAA,IACAT,MADA,CACO,CAACC,KAAK,CAACL,GAAP,EAAYK,KAAK,CAACN,GAAlB,CADP,EAEAM,KAFA,CAEM,CAAC,CAAD,EAAIC,IAAI,CAACU,MAAT,CAFN;EAJS,CAAd;EASA,IAAMC,IAAI,GAAG;IACXL,CAAC,EAAEM,aAAA,CAAOC,IAAP,CAAY,IAAZ,EAAkBV,YAAY,CAACV,GAA/B,EAAoCU,YAAY,CAACT,GAAjD,EAAsDS,YAAY,CAACR,IAAnE,CADQ;IAEXc,CAAC,EAAEG,aAAA,CAAOC,IAAP,CAAY,IAAZ,EAAkBT,WAAW,CAACX,GAA9B,EAAmCW,WAAW,CAACV,GAA/C,EAAoDU,WAAW,CAACT,IAAhE;EAFQ,CAAb;EAKA,OAAO;IAAEU,KAAK,EAALA,KAAF;IAASM,IAAI,EAAJA,IAAT;IAAeb,MAAM,EAANA,MAAf;IAAuBC,KAAK,EAALA,KAAvB;IAA8BC,IAAI,EAAJA,IAA9B;IAAoCC,WAAW,EAAXA;EAApC,CAAP;AACD,CAtBM"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/grid-draggable.jsx"],"names":["log","deltaFn","scale","snap","val","delta","normalized","inverted","invert","gridDraggable","opts","Comp","fromDelta","bounds","anchorPoint","graphProps","props","domain","range","x","step","y","e","onDragStart","document","activeElement","blur","setState","startX","clientX","startY","clientY","key","event","K","toUpperCase","end","start","state","Math","abs","out","grid","scaled","left","interval","right","top","bottom","dd","rootNode","getRootNode","rawX","rawY","xOutside","deltaX","min","max","yOutside","deltaY","onDrag","getScaledBounds","skipDragOutsideOfBounds","dragArg","applyDelta","undefined","point","pos","position","p","utils","getDelta","onDragStop","onClick","lastX","lastY","isClick","tiny","target","disabled","rest","onMouseDown","nativeEvent","preventDefault","isDragging","onStart","onStop","axis","React","Component","PropTypes","bool","func","onMove","GraphPropsType","isRequired"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { GraphPropsType } from './types';\nimport { DraggableCore } from './draggable';\nimport debug from 'debug';\nimport * as utils from './utils';\nimport isFunction from 'lodash/isFunction';\nimport invariant from 'invariant';\nimport { clientPoint } from 'd3-selection';\nconst log = debug('pie-lib:plot:grid-draggable');\nexport const deltaFn = (scale, snap, val) => delta => {\n const normalized = delta + scale(0);\n const inverted = scale.invert(normalized);\n return snap(val + inverted);\n};\n/**\n * Creates a Component that is draggable, within a bounded grid.\n * @param {*} opts\n */\nexport const gridDraggable = opts => Comp => {\n invariant(\n !!opts && isFunction(opts.fromDelta) && isFunction(opts.bounds) && isFunction(opts.anchorPoint),\n 'You must supply an object with: { anchorPoint: Function, fromDelta: Function, bounds: Function }'\n );\n return class GridDraggable extends React.Component {\n static propTypes = {\n disabled: PropTypes.bool,\n onDragStart: PropTypes.func,\n onDrag: PropTypes.func,\n onDragStop: PropTypes.func,\n onClick: PropTypes.func,\n onMove: PropTypes.func,\n graphProps: GraphPropsType.isRequired\n };\n grid = () => {\n const { graphProps } = this.props;\n const { scale, domain, range } = graphProps;\n return {\n x: scale.x(domain.step) - scale.x(0),\n y: scale.y(range.step) - scale.y(0)\n };\n };\n onStart = e => {\n const { onDragStart } = this.props;\n if (document.activeElement) {\n document.activeElement.blur();\n }\n this.setState({ startX: e.clientX, startY: e.clientY });\n if (onDragStart) {\n onDragStart();\n }\n };\n position = () => {\n const { x, y } = opts.anchorPoint(this.props);\n const { graphProps } = this.props;\n const { scale, snap } = graphProps;\n return {\n anchorPoint: {\n x,\n y\n },\n x: deltaFn(scale.x, snap.x, x),\n y: deltaFn(scale.y, snap.y, y)\n };\n };\n\n tiny = (key, event) => {\n const K = key.toUpperCase();\n const end = event[`client${K}`];\n const start = this.state[`start${K}`];\n const delta = Math.abs(end - start);\n const out = delta < Math.abs(this.grid()[key]) / 10;\n log('[tiny] key: ', key, 'delta: ', delta, 'out: ', out);\n return out;\n };\n\n getScaledBounds = () => {\n const bounds = opts.bounds(this.props, this.props.graphProps);\n log('bounds: ', bounds);\n const grid = this.grid();\n\n const scaled = {\n left: (bounds.left / grid.interval) * grid.x,\n right: (bounds.right / grid.interval) * grid.x,\n top: (bounds.top / grid.interval) * grid.y,\n bottom: (bounds.bottom / grid.interval) * grid.y\n };\n log('[getScaledBounds]: ', scaled);\n return scaled;\n };\n\n skipDragOutsideOfBounds = (dd, e, graphProps) => {\n // ignore drag movement outside of the domain and range.\n const rootNode = graphProps.getRootNode();\n const [rawX, rawY] = clientPoint(rootNode, e);\n const { scale, domain, range } = graphProps;\n let x = scale.x.invert(rawX);\n let y = scale.y.invert(rawY);\n\n const xOutside = (dd.deltaX > 0 && x < domain.min) || (dd.deltaX < 0 && x > domain.max);\n const yOutside = (dd.deltaY > 0 && y > range.max) || (dd.deltaY < 0 && y < range.min);\n return xOutside || yOutside;\n };\n\n onDrag = (e, dd) => {\n const { onDrag, graphProps } = this.props;\n\n if (!onDrag) {\n return;\n }\n\n const bounds = this.getScaledBounds();\n\n if (dd.deltaX < 0 && dd.deltaX < bounds.left) {\n return;\n }\n\n if (dd.deltaX > 0 && dd.deltaX > bounds.right) {\n return;\n }\n\n if (dd.deltaY < 0 && dd.deltaY < bounds.top) {\n return;\n }\n\n if (dd.deltaY > 0 && dd.deltaY > bounds.bottom) {\n return;\n }\n\n if (this.skipDragOutsideOfBounds(dd, e, graphProps)) {\n return;\n }\n\n const dragArg = this.applyDelta({ x: dd.deltaX, y: dd.deltaY });\n\n if (dragArg !== undefined || dragArg !== null) {\n onDrag(dragArg);\n }\n };\n\n getDelta = point => {\n const pos = this.position();\n\n const p = {\n x: pos.x(point.x),\n y: pos.y(point.y)\n };\n\n return utils.getDelta(pos.anchorPoint, p);\n };\n\n applyDelta = point => {\n const delta = this.getDelta(point);\n log('[applyDelta] delta:', delta);\n return opts.fromDelta(this.props, delta);\n };\n\n onStop = (e, dd) => {\n log('[onStop] dd:', dd);\n const { onDragStop, onClick } = this.props;\n\n if (onDragStop) {\n onDragStop();\n }\n\n log('[onStop] lastX/Y: ', dd.lastX, dd.lastY);\n const isClick = this.tiny('x', e) && this.tiny('y', e);\n\n if (isClick) {\n if (onClick) {\n log('call onClick');\n this.setState({ startX: null });\n const { graphProps } = this.props;\n const { scale, snap } = graphProps;\n const [rawX, rawY] = clientPoint(e.target, e);\n let x = scale.x.invert(rawX);\n let y = scale.y.invert(rawY);\n x = snap.x(x);\n y = snap.y(y);\n onClick({ x, y });\n return false;\n }\n }\n\n this.setState({ startX: null, startY: null });\n // return false to prevent state updates in the underlying draggable - a move will have triggered an update already.\n return false;\n };\n\n render() {\n /* eslint-disable no-unused-vars */\n //Note: we pull onClick out so that it's not in ...rest.\n const { disabled, onClick, ...rest } = this.props;\n /* eslint-enable no-unused-vars */\n\n const grid = this.grid();\n //prevent the text select icon from rendering.\n const onMouseDown = e => e.nativeEvent.preventDefault();\n\n /**\n * TODO: This shouldnt be necessary, we should be able to use the r-d classnames.\n * But they aren't being unset. If we continue with this lib, we'll have to fix this.\n */\n const isDragging = this.state ? !!this.state.startX : false;\n\n return (\n <DraggableCore\n disabled={disabled}\n onMouseDown={onMouseDown}\n onStart={this.onStart}\n onDrag={this.onDrag}\n onStop={this.onStop}\n axis={opts.axis || 'both'}\n grid={[grid.x, grid.y]}\n >\n <Comp {...rest} disabled={disabled} isDragging={isDragging} />\n </DraggableCore>\n );\n }\n };\n};\n"],"file":"grid-draggable.js"}
|
|
1
|
+
{"version":3,"file":"grid-draggable.js","names":["log","debug","deltaFn","scale","snap","val","delta","normalized","inverted","invert","gridDraggable","opts","Comp","invariant","isFunction","fromDelta","bounds","anchorPoint","graphProps","props","domain","range","x","step","y","e","onDragStart","document","activeElement","blur","setState","startX","clientX","startY","clientY","key","event","K","toUpperCase","end","start","state","Math","abs","out","grid","scaled","left","interval","right","top","bottom","dd","rootNode","getRootNode","clientPoint","rawX","rawY","xOutside","deltaX","min","max","yOutside","deltaY","onDrag","getScaledBounds","skipDragOutsideOfBounds","dragArg","applyDelta","undefined","point","pos","position","p","utils","getDelta","onDragStop","onClick","lastX","lastY","isClick","tiny","target","disabled","rest","onMouseDown","nativeEvent","preventDefault","isDragging","onStart","onStop","axis","React","Component","PropTypes","bool","func","onMove","GraphPropsType","isRequired"],"sources":["../src/grid-draggable.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { GraphPropsType } from './types';\nimport { DraggableCore } from './draggable';\nimport debug from 'debug';\nimport * as utils from './utils';\nimport isFunction from 'lodash/isFunction';\nimport invariant from 'invariant';\nimport { clientPoint } from 'd3-selection';\nconst log = debug('pie-lib:plot:grid-draggable');\nexport const deltaFn = (scale, snap, val) => delta => {\n const normalized = delta + scale(0);\n const inverted = scale.invert(normalized);\n return snap(val + inverted);\n};\n/**\n * Creates a Component that is draggable, within a bounded grid.\n * @param {*} opts\n */\nexport const gridDraggable = opts => Comp => {\n invariant(\n !!opts && isFunction(opts.fromDelta) && isFunction(opts.bounds) && isFunction(opts.anchorPoint),\n 'You must supply an object with: { anchorPoint: Function, fromDelta: Function, bounds: Function }'\n );\n return class GridDraggable extends React.Component {\n static propTypes = {\n disabled: PropTypes.bool,\n onDragStart: PropTypes.func,\n onDrag: PropTypes.func,\n onDragStop: PropTypes.func,\n onClick: PropTypes.func,\n onMove: PropTypes.func,\n graphProps: GraphPropsType.isRequired\n };\n grid = () => {\n const { graphProps } = this.props;\n const { scale, domain, range } = graphProps;\n return {\n x: scale.x(domain.step) - scale.x(0),\n y: scale.y(range.step) - scale.y(0)\n };\n };\n onStart = e => {\n const { onDragStart } = this.props;\n if (document.activeElement) {\n document.activeElement.blur();\n }\n this.setState({ startX: e.clientX, startY: e.clientY });\n if (onDragStart) {\n onDragStart();\n }\n };\n position = () => {\n const { x, y } = opts.anchorPoint(this.props);\n const { graphProps } = this.props;\n const { scale, snap } = graphProps;\n return {\n anchorPoint: {\n x,\n y\n },\n x: deltaFn(scale.x, snap.x, x),\n y: deltaFn(scale.y, snap.y, y)\n };\n };\n\n tiny = (key, event) => {\n const K = key.toUpperCase();\n const end = event[`client${K}`];\n const start = this.state[`start${K}`];\n const delta = Math.abs(end - start);\n const out = delta < Math.abs(this.grid()[key]) / 10;\n log('[tiny] key: ', key, 'delta: ', delta, 'out: ', out);\n return out;\n };\n\n getScaledBounds = () => {\n const bounds = opts.bounds(this.props, this.props.graphProps);\n log('bounds: ', bounds);\n const grid = this.grid();\n\n const scaled = {\n left: (bounds.left / grid.interval) * grid.x,\n right: (bounds.right / grid.interval) * grid.x,\n top: (bounds.top / grid.interval) * grid.y,\n bottom: (bounds.bottom / grid.interval) * grid.y\n };\n log('[getScaledBounds]: ', scaled);\n return scaled;\n };\n\n skipDragOutsideOfBounds = (dd, e, graphProps) => {\n // ignore drag movement outside of the domain and range.\n const rootNode = graphProps.getRootNode();\n const [rawX, rawY] = clientPoint(rootNode, e);\n const { scale, domain, range } = graphProps;\n let x = scale.x.invert(rawX);\n let y = scale.y.invert(rawY);\n\n const xOutside = (dd.deltaX > 0 && x < domain.min) || (dd.deltaX < 0 && x > domain.max);\n const yOutside = (dd.deltaY > 0 && y > range.max) || (dd.deltaY < 0 && y < range.min);\n return xOutside || yOutside;\n };\n\n onDrag = (e, dd) => {\n const { onDrag, graphProps } = this.props;\n\n if (!onDrag) {\n return;\n }\n\n const bounds = this.getScaledBounds();\n\n if (dd.deltaX < 0 && dd.deltaX < bounds.left) {\n return;\n }\n\n if (dd.deltaX > 0 && dd.deltaX > bounds.right) {\n return;\n }\n\n if (dd.deltaY < 0 && dd.deltaY < bounds.top) {\n return;\n }\n\n if (dd.deltaY > 0 && dd.deltaY > bounds.bottom) {\n return;\n }\n\n if (this.skipDragOutsideOfBounds(dd, e, graphProps)) {\n return;\n }\n\n const dragArg = this.applyDelta({ x: dd.deltaX, y: dd.deltaY });\n\n if (dragArg !== undefined || dragArg !== null) {\n onDrag(dragArg);\n }\n };\n\n getDelta = point => {\n const pos = this.position();\n\n const p = {\n x: pos.x(point.x),\n y: pos.y(point.y)\n };\n\n return utils.getDelta(pos.anchorPoint, p);\n };\n\n applyDelta = point => {\n const delta = this.getDelta(point);\n log('[applyDelta] delta:', delta);\n return opts.fromDelta(this.props, delta);\n };\n\n onStop = (e, dd) => {\n log('[onStop] dd:', dd);\n const { onDragStop, onClick } = this.props;\n\n if (onDragStop) {\n onDragStop();\n }\n\n log('[onStop] lastX/Y: ', dd.lastX, dd.lastY);\n const isClick = this.tiny('x', e) && this.tiny('y', e);\n\n if (isClick) {\n if (onClick) {\n log('call onClick');\n this.setState({ startX: null });\n const { graphProps } = this.props;\n const { scale, snap } = graphProps;\n const [rawX, rawY] = clientPoint(e.target, e);\n let x = scale.x.invert(rawX);\n let y = scale.y.invert(rawY);\n x = snap.x(x);\n y = snap.y(y);\n onClick({ x, y });\n return false;\n }\n }\n\n this.setState({ startX: null, startY: null });\n // return false to prevent state updates in the underlying draggable - a move will have triggered an update already.\n return false;\n };\n\n render() {\n /* eslint-disable no-unused-vars */\n //Note: we pull onClick out so that it's not in ...rest.\n const { disabled, onClick, ...rest } = this.props;\n /* eslint-enable no-unused-vars */\n\n const grid = this.grid();\n //prevent the text select icon from rendering.\n const onMouseDown = e => e.nativeEvent.preventDefault();\n\n /**\n * TODO: This shouldnt be necessary, we should be able to use the r-d classnames.\n * But they aren't being unset. If we continue with this lib, we'll have to fix this.\n */\n const isDragging = this.state ? !!this.state.startX : false;\n\n return (\n <DraggableCore\n disabled={disabled}\n onMouseDown={onMouseDown}\n onStart={this.onStart}\n onDrag={this.onDrag}\n onStop={this.onStop}\n axis={opts.axis || 'both'}\n grid={[grid.x, grid.y]}\n >\n <Comp {...rest} disabled={disabled} isDragging={isDragging} />\n </DraggableCore>\n );\n }\n };\n};\n"],"mappings":"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"}
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../src/index.js"],"sourcesContent":["import Root from './root';\nimport Draggable from './draggable';\nimport { gridDraggable } from './grid-draggable';\nimport * as utils from './utils';\nimport * as trig from './trig';\nimport * as types from './types';\nimport { create as createGraphProps } from './graph-props';\n\nexport { Root, Draggable, gridDraggable, utils, trig, types, createGraphProps };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;AACA;;;;AACA;;;;AACA"}
|
package/lib/root.js
CHANGED
|
@@ -21,8 +21,6 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
21
21
|
|
|
22
22
|
var _renderUi = require("@pie-lib/render-ui");
|
|
23
23
|
|
|
24
|
-
var _utils = require("./utils");
|
|
25
|
-
|
|
26
24
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
27
25
|
|
|
28
26
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
@@ -132,15 +130,19 @@ var Root = /*#__PURE__*/function (_React$Component) {
|
|
|
132
130
|
children = _this$props2.children,
|
|
133
131
|
classes = _this$props2.classes,
|
|
134
132
|
title = _this$props2.title,
|
|
135
|
-
rootRef = _this$props2.rootRef
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
var
|
|
133
|
+
rootRef = _this$props2.rootRef;
|
|
134
|
+
var _graphProps$size = graphProps.size,
|
|
135
|
+
_graphProps$size$widt = _graphProps$size.width,
|
|
136
|
+
width = _graphProps$size$widt === void 0 ? 500 : _graphProps$size$widt,
|
|
137
|
+
_graphProps$size$heig = _graphProps$size.height,
|
|
138
|
+
height = _graphProps$size$heig === void 0 ? 500 : _graphProps$size$heig,
|
|
139
|
+
domain = graphProps.domain,
|
|
140
|
+
range = graphProps.range;
|
|
141
|
+
var topPadding = 50;
|
|
142
|
+
var leftPadding = topPadding + 10; // left side requires an extra padding of 10
|
|
143
|
+
|
|
144
|
+
var finalWidth = width + leftPadding * 2 + (domain.padding || 0) * 2;
|
|
145
|
+
var finalHeight = height + topPadding * 2 + (range.padding || 0) * 2;
|
|
144
146
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
145
147
|
className: classes.root
|
|
146
148
|
}, title && /*#__PURE__*/_react["default"].createElement(GraphTitle, {
|
|
@@ -158,7 +160,7 @@ var Root = /*#__PURE__*/function (_React$Component) {
|
|
|
158
160
|
}
|
|
159
161
|
},
|
|
160
162
|
className: classes.graphBox,
|
|
161
|
-
transform: "translate(".concat(
|
|
163
|
+
transform: "translate(".concat(leftPadding, ", ").concat(topPadding, ")")
|
|
162
164
|
}, children)));
|
|
163
165
|
}
|
|
164
166
|
}]);
|
|
@@ -174,8 +176,7 @@ _defineProperty(Root, "propTypes", {
|
|
|
174
176
|
graphProps: _types.GraphPropsType.isRequired,
|
|
175
177
|
onMouseMove: _propTypes["default"].func,
|
|
176
178
|
classes: _propTypes["default"].object.isRequired,
|
|
177
|
-
rootRef: _propTypes["default"].func
|
|
178
|
-
paddingLeft: _propTypes["default"].number
|
|
179
|
+
rootRef: _propTypes["default"].func
|
|
179
180
|
});
|
|
180
181
|
|
|
181
182
|
var styles = function styles() {
|
package/lib/root.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"root.js","names":["GraphTitle","withStyles","theme","title","color","text","textAlign","paddingTop","spacing","unit","fontSize","typography","value","classes","__html","Root","g","props","graphProps","onMouseMove","scale","snap","coords","mouse","_groups","x","invert","y","snapped","select","on","mouseMove","bind","children","rootRef","size","width","height","domain","range","topPadding","leftPadding","finalWidth","padding","finalHeight","root","svg","r","graphBox","React","Component","PropTypes","string","ChildrenType","GraphPropsType","isRequired","func","object","styles","border","primaryLight","backgroundColor","background","cursor","userSelect"],"sources":["../src/root.jsx"],"sourcesContent":["import React from 'react';\nimport { ChildrenType } from './types';\nimport { withStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport { select, mouse } from 'd3-selection';\nimport PropTypes from 'prop-types';\nimport { GraphPropsType } from './types';\nimport { color } from '@pie-lib/render-ui';\n\nexport const GraphTitle = withStyles(theme => ({\n title: {\n color: color.text(),\n textAlign: 'center',\n paddingTop: theme.spacing.unit * 2,\n fontSize: theme.typography.fontSize + 6\n }\n}))(({ value, classes }) => (\n <Typography\n className={classes.title}\n color=\"primary\"\n variant=\"h5\"\n dangerouslySetInnerHTML={{ __html: value }}\n />\n));\n\nexport class Root extends React.Component {\n static propTypes = {\n title: PropTypes.string,\n children: ChildrenType,\n graphProps: GraphPropsType.isRequired,\n onMouseMove: PropTypes.func,\n classes: PropTypes.object.isRequired,\n rootRef: PropTypes.func\n };\n\n mouseMove = g => {\n const { graphProps, onMouseMove } = this.props;\n\n if (!onMouseMove) {\n return;\n }\n\n const { scale, snap } = graphProps;\n const coords = mouse(g._groups[0][0]);\n const x = scale.x.invert(coords[0]);\n const y = scale.y.invert(coords[1]);\n\n const snapped = {\n x: snap.x(x),\n y: snap.y(y)\n };\n\n onMouseMove(snapped);\n };\n\n componentDidMount() {\n const g = select(this.g);\n g.on('mousemove', this.mouseMove.bind(this, g));\n }\n\n componentWillUnmount() {\n const g = select(this.g);\n g.on('mousemove', null);\n }\n\n render() {\n const { graphProps, children, classes, title, rootRef } = this.props;\n const {\n size: { width = 500, height = 500 },\n domain,\n range\n } = graphProps;\n const topPadding = 50;\n const leftPadding = topPadding + 10; // left side requires an extra padding of 10\n const finalWidth = width + leftPadding * 2 + (domain.padding || 0) * 2;\n const finalHeight = height + topPadding * 2 + (range.padding || 0) * 2;\n\n return (\n <div className={classes.root}>\n {title && <GraphTitle value={title} />}\n <svg width={finalWidth} height={finalHeight} className={classes.svg}>\n <g\n ref={r => {\n this.g = r;\n if (rootRef) {\n rootRef(r);\n }\n }}\n className={classes.graphBox}\n transform={`translate(${leftPadding}, ${topPadding})`}\n >\n {children}\n </g>\n </svg>\n </div>\n );\n }\n}\nconst styles = () => ({\n root: {\n border: `solid 1px ${color.primaryLight()}`,\n color: color.text(),\n backgroundColor: color.background()\n },\n svg: {},\n graphBox: {\n cursor: 'pointer',\n userSelect: 'none'\n }\n});\n\nexport default withStyles(styles)(Root);\n"],"mappings":"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"}
|
package/lib/trig.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/trig.js"],"names":["log","toDegrees","radians","Math","PI","toRadians","degrees","angle","a","b","vd","y","hd","x","atan2","NINETY","ONE_EIGHTY","TWO_SEVENTY","acuteXAngle","abs","acuteYAngle","hypotenuse","alpha","out","sin","edges","domain","range","destX","max","min","destY","aToB","diffEdge","dX","dY","bToA","getOpposingSide","hyp","getShortestSide","xh","yh","Number","isFinite","isNaN","Infinity","console","warn","bounds","l","enabled","bind","xRadians","yRadians","xSide","xH","ySide","yH","side","Error","point","Point","multiplier","multByPoint","normalized","add"],"mappings":"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","sourcesContent":["import { xy } from '../lib/utils';\nimport Point from '@mapbox/point-geometry';\nimport debug from 'debug';\nconst log = debug('pie-lib:plot:trig');\n\nexport const toDegrees = radians => radians * (180 / Math.PI);\nexport const toRadians = degrees => degrees * (Math.PI / 180);\n/**\n * return angle in radians between 2 points using counting degrees counter clockwise\n *\n * 0,0 + 1,1 = 45 in radians\n * 1,1 + 0,0 = 45?\n * @param {Point} a\n * @param {Point} b\n */\nexport const angle = (a, b) => {\n const vd = b.y - a.y;\n const hd = b.x - a.x;\n log(a, b, 'vd: ', vd, 'hd: ', hd);\n const radians = Math.atan2(vd, hd);\n return radians < 0 ? radians + Math.PI * 2 : radians;\n};\n\nconst NINETY = Math.PI / 2;\nconst ONE_EIGHTY = Math.PI;\nconst TWO_SEVENTY = ONE_EIGHTY + NINETY;\n\nexport const acuteXAngle = a => {\n log(toDegrees(a));\n\n if (a < NINETY) {\n return a;\n }\n\n if (a < ONE_EIGHTY) {\n return Math.abs(ONE_EIGHTY - a);\n }\n\n if (a < TWO_SEVENTY) {\n return Math.abs(ONE_EIGHTY - a);\n }\n\n return Math.abs(Math.PI * 2 - a);\n};\n\nexport const acuteYAngle = a => NINETY - acuteXAngle(a);\n\nexport const hypotenuse = (a, alpha) => {\n const out = Math.abs(a / Math.sin(alpha));\n\n return out;\n};\n\n/**\n * return 2 edge points for a,b within domain + range.\n * - one edge is from following a -> b to the bounds\n * - one edge is from following b -> a to the bounds\n * @param {{min: number, max: number}} domain\n * @param {{min: number, max: number}} range\n * @param {{x: number, y: number}} a\n * @param {{x: number, y: number}} b\n * @returns [{x: number, y: number}, {x: number, y: number}]\n */\nexport const edges = (domain, range) => (a, b) => {\n // const xDest =\n const destX = a.x < b.x ? domain.max : domain.min;\n const destY = a.y < b.y ? range.max : range.min;\n const aToB = diffEdge(xy(destX, destY), a, b);\n\n const dX = b.x < a.x ? domain.max : domain.min;\n const dY = b.y < a.y ? range.max : range.min;\n const bToA = diffEdge(xy(dX, dY), b, a);\n return [aToB, bToA];\n};\n\n/** get length of side A of a triangle from H and angle Alpha */\nexport const getOpposingSide = (hyp, angle) => {\n log('[getOpposingSide] hyp: ', hyp, 'angle:', angle);\n return Math.abs(hyp * Math.sin(angle));\n};\n\nconst getShortestSide = (xh, yh) => {\n if (Number.isFinite(xh) && Number.isFinite(yh)) {\n if (xh === 0 && yh > 0) {\n return 'y';\n }\n if (yh === 0 && xh > 0) {\n return 'x';\n }\n return xh < yh ? 'x' : 'y';\n }\n if (isNaN(xh) && !isNaN(yh)) {\n return 'y';\n }\n if (!isNaN(xh) && isNaN(yh)) {\n return 'x';\n }\n if (xh === Infinity) {\n return 'y';\n }\n if (yh === Infinity) {\n return 'x';\n }\n\n // eslint-disable-next-line no-console\n console.warn('hypotenuse - which is shorter? x:', xh, 'y:', yh);\n};\n/**\n * return the difference between bounds and a as a Point\n * @param {*} bounds\n */\nexport const diffEdge = (bounds, a, b) => {\n let l = log.enabled ? log.bind(log, `diffEdge: [${a.x},${a.y} -> ${b.x},${b.y}]`) : () => {};\n const xRadians = angle(a, b);\n l('x angle', toDegrees(xRadians));\n const yRadians = Math.abs(xRadians - toRadians(90));\n l('y angle', toDegrees(yRadians));\n const xSide = Math.abs(a.x - bounds.x);\n\n /**\n * Draw 2 triangles:\n * 1 with a horizontal line from a to the graph x edge\n * 1 with a vertical line from a to the graph y edge\n * Calculate the hypotenuse for both, whichever is shorter\n * indicates that we should use that triangle to get the edge point.\n */\n const xH = hypotenuse(xSide, yRadians);\n\n const ySide = Math.abs(a.y - bounds.y);\n const yH = hypotenuse(ySide, xRadians);\n\n l('x: side', xSide, 'h:', xH);\n l('y: side', ySide, 'h:', yH);\n const side = getShortestSide(xH, yH);\n\n if (side !== 'x' && side !== 'y') {\n throw new Error('Cant decide which hypotenuse to use');\n }\n const point =\n side === 'x'\n ? new Point(xSide, getOpposingSide(xH, xRadians))\n : new Point(getOpposingSide(yH, yRadians), ySide);\n\n l('point:', point);\n const multiplier = new Point(b.x < a.x ? -1 : 1, b.y < a.y ? -1 : 1);\n l('multiplier:', multiplier);\n const out = point.multByPoint(multiplier);\n l('out:', out);\n const normalized = out.add(new Point(a.x, a.y));\n l('normalized:', normalized);\n return normalized;\n};\n"],"file":"trig.js"}
|
|
1
|
+
{"version":3,"file":"trig.js","names":["log","debug","toDegrees","radians","Math","PI","toRadians","degrees","angle","a","b","vd","y","hd","x","atan2","NINETY","ONE_EIGHTY","TWO_SEVENTY","acuteXAngle","abs","acuteYAngle","hypotenuse","alpha","out","sin","edges","domain","range","destX","max","min","destY","aToB","diffEdge","xy","dX","dY","bToA","getOpposingSide","hyp","getShortestSide","xh","yh","Number","isFinite","isNaN","Infinity","console","warn","bounds","l","enabled","bind","xRadians","yRadians","xSide","xH","ySide","yH","side","Error","point","Point","multiplier","multByPoint","normalized","add"],"sources":["../src/trig.js"],"sourcesContent":["import { xy } from '../lib/utils';\nimport Point from '@mapbox/point-geometry';\nimport debug from 'debug';\nconst log = debug('pie-lib:plot:trig');\n\nexport const toDegrees = radians => radians * (180 / Math.PI);\nexport const toRadians = degrees => degrees * (Math.PI / 180);\n/**\n * return angle in radians between 2 points using counting degrees counter clockwise\n *\n * 0,0 + 1,1 = 45 in radians\n * 1,1 + 0,0 = 45?\n * @param {Point} a\n * @param {Point} b\n */\nexport const angle = (a, b) => {\n const vd = b.y - a.y;\n const hd = b.x - a.x;\n log(a, b, 'vd: ', vd, 'hd: ', hd);\n const radians = Math.atan2(vd, hd);\n return radians < 0 ? radians + Math.PI * 2 : radians;\n};\n\nconst NINETY = Math.PI / 2;\nconst ONE_EIGHTY = Math.PI;\nconst TWO_SEVENTY = ONE_EIGHTY + NINETY;\n\nexport const acuteXAngle = a => {\n log(toDegrees(a));\n\n if (a < NINETY) {\n return a;\n }\n\n if (a < ONE_EIGHTY) {\n return Math.abs(ONE_EIGHTY - a);\n }\n\n if (a < TWO_SEVENTY) {\n return Math.abs(ONE_EIGHTY - a);\n }\n\n return Math.abs(Math.PI * 2 - a);\n};\n\nexport const acuteYAngle = a => NINETY - acuteXAngle(a);\n\nexport const hypotenuse = (a, alpha) => {\n const out = Math.abs(a / Math.sin(alpha));\n\n return out;\n};\n\n/**\n * return 2 edge points for a,b within domain + range.\n * - one edge is from following a -> b to the bounds\n * - one edge is from following b -> a to the bounds\n * @param {{min: number, max: number}} domain\n * @param {{min: number, max: number}} range\n * @param {{x: number, y: number}} a\n * @param {{x: number, y: number}} b\n * @returns [{x: number, y: number}, {x: number, y: number}]\n */\nexport const edges = (domain, range) => (a, b) => {\n // const xDest =\n const destX = a.x < b.x ? domain.max : domain.min;\n const destY = a.y < b.y ? range.max : range.min;\n const aToB = diffEdge(xy(destX, destY), a, b);\n\n const dX = b.x < a.x ? domain.max : domain.min;\n const dY = b.y < a.y ? range.max : range.min;\n const bToA = diffEdge(xy(dX, dY), b, a);\n return [aToB, bToA];\n};\n\n/** get length of side A of a triangle from H and angle Alpha */\nexport const getOpposingSide = (hyp, angle) => {\n log('[getOpposingSide] hyp: ', hyp, 'angle:', angle);\n return Math.abs(hyp * Math.sin(angle));\n};\n\nconst getShortestSide = (xh, yh) => {\n if (Number.isFinite(xh) && Number.isFinite(yh)) {\n if (xh === 0 && yh > 0) {\n return 'y';\n }\n if (yh === 0 && xh > 0) {\n return 'x';\n }\n return xh < yh ? 'x' : 'y';\n }\n if (isNaN(xh) && !isNaN(yh)) {\n return 'y';\n }\n if (!isNaN(xh) && isNaN(yh)) {\n return 'x';\n }\n if (xh === Infinity) {\n return 'y';\n }\n if (yh === Infinity) {\n return 'x';\n }\n\n // eslint-disable-next-line no-console\n console.warn('hypotenuse - which is shorter? x:', xh, 'y:', yh);\n};\n/**\n * return the difference between bounds and a as a Point\n * @param {*} bounds\n */\nexport const diffEdge = (bounds, a, b) => {\n let l = log.enabled ? log.bind(log, `diffEdge: [${a.x},${a.y} -> ${b.x},${b.y}]`) : () => {};\n const xRadians = angle(a, b);\n l('x angle', toDegrees(xRadians));\n const yRadians = Math.abs(xRadians - toRadians(90));\n l('y angle', toDegrees(yRadians));\n const xSide = Math.abs(a.x - bounds.x);\n\n /**\n * Draw 2 triangles:\n * 1 with a horizontal line from a to the graph x edge\n * 1 with a vertical line from a to the graph y edge\n * Calculate the hypotenuse for both, whichever is shorter\n * indicates that we should use that triangle to get the edge point.\n */\n const xH = hypotenuse(xSide, yRadians);\n\n const ySide = Math.abs(a.y - bounds.y);\n const yH = hypotenuse(ySide, xRadians);\n\n l('x: side', xSide, 'h:', xH);\n l('y: side', ySide, 'h:', yH);\n const side = getShortestSide(xH, yH);\n\n if (side !== 'x' && side !== 'y') {\n throw new Error('Cant decide which hypotenuse to use');\n }\n const point =\n side === 'x'\n ? new Point(xSide, getOpposingSide(xH, xRadians))\n : new Point(getOpposingSide(yH, yRadians), ySide);\n\n l('point:', point);\n const multiplier = new Point(b.x < a.x ? -1 : 1, b.y < a.y ? -1 : 1);\n l('multiplier:', multiplier);\n const out = point.multByPoint(multiplier);\n l('out:', out);\n const normalized = out.add(new Point(a.x, a.y));\n l('normalized:', normalized);\n return normalized;\n};\n"],"mappings":"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"}
|
package/lib/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"types.js","names":["BaseDomainRangeType","min","PropTypes","number","isRequired","max","step","DomainType","shape","RangeType","SizeType","width","height","PointType","x","y","ChildrenType","oneOfType","arrayOf","node","ScaleType","func","SnapType","GraphPropsType","scale","snap","domain","range","size"],"sources":["../src/types.js"],"sourcesContent":["import PropTypes from 'prop-types';\n\nexport const BaseDomainRangeType = {\n min: PropTypes.number.isRequired,\n max: PropTypes.number.isRequired,\n step: PropTypes.number\n};\n\nexport const DomainType = PropTypes.shape(BaseDomainRangeType);\n\nexport const RangeType = PropTypes.shape(BaseDomainRangeType);\n\nexport const SizeType = PropTypes.shape({\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired\n});\n\nexport const PointType = PropTypes.shape({\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired\n});\n\nexport const ChildrenType = PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node])\n .isRequired;\n\nexport const ScaleType = PropTypes.shape({\n x: PropTypes.func.isRequired,\n y: PropTypes.func.isRequired\n});\n\nexport const SnapType = PropTypes.shape({\n x: PropTypes.func.isRequired,\n y: PropTypes.func.isRequired\n});\n\nexport const GraphPropsType = PropTypes.shape({\n scale: ScaleType.isRequired,\n snap: SnapType.isRequired,\n domain: DomainType.isRequired,\n range: RangeType.isRequired,\n size: SizeType.isRequired\n});\n"],"mappings":";;;;;;;AAAA;;;;AAEO,IAAMA,mBAAmB,GAAG;EACjCC,GAAG,EAAEC,qBAAA,CAAUC,MAAV,CAAiBC,UADW;EAEjCC,GAAG,EAAEH,qBAAA,CAAUC,MAAV,CAAiBC,UAFW;EAGjCE,IAAI,EAAEJ,qBAAA,CAAUC;AAHiB,CAA5B;;;AAMA,IAAMI,UAAU,GAAGL,qBAAA,CAAUM,KAAV,CAAgBR,mBAAhB,CAAnB;;;;AAEA,IAAMS,SAAS,GAAGP,qBAAA,CAAUM,KAAV,CAAgBR,mBAAhB,CAAlB;;;;AAEA,IAAMU,QAAQ,GAAGR,qBAAA,CAAUM,KAAV,CAAgB;EACtCG,KAAK,EAAET,qBAAA,CAAUC,MAAV,CAAiBC,UADc;EAEtCQ,MAAM,EAAEV,qBAAA,CAAUC,MAAV,CAAiBC;AAFa,CAAhB,CAAjB;;;;AAKA,IAAMS,SAAS,GAAGX,qBAAA,CAAUM,KAAV,CAAgB;EACvCM,CAAC,EAAEZ,qBAAA,CAAUC,MAAV,CAAiBC,UADmB;EAEvCW,CAAC,EAAEb,qBAAA,CAAUC,MAAV,CAAiBC;AAFmB,CAAhB,CAAlB;;;;AAKA,IAAMY,YAAY,GAAGd,qBAAA,CAAUe,SAAV,CAAoB,CAACf,qBAAA,CAAUgB,OAAV,CAAkBhB,qBAAA,CAAUiB,IAA5B,CAAD,EAAoCjB,qBAAA,CAAUiB,IAA9C,CAApB,EACzBf,UADI;;;;AAGA,IAAMgB,SAAS,GAAGlB,qBAAA,CAAUM,KAAV,CAAgB;EACvCM,CAAC,EAAEZ,qBAAA,CAAUmB,IAAV,CAAejB,UADqB;EAEvCW,CAAC,EAAEb,qBAAA,CAAUmB,IAAV,CAAejB;AAFqB,CAAhB,CAAlB;;;;AAKA,IAAMkB,QAAQ,GAAGpB,qBAAA,CAAUM,KAAV,CAAgB;EACtCM,CAAC,EAAEZ,qBAAA,CAAUmB,IAAV,CAAejB,UADoB;EAEtCW,CAAC,EAAEb,qBAAA,CAAUmB,IAAV,CAAejB;AAFoB,CAAhB,CAAjB;;;;AAKA,IAAMmB,cAAc,GAAGrB,qBAAA,CAAUM,KAAV,CAAgB;EAC5CgB,KAAK,EAAEJ,SAAS,CAAChB,UAD2B;EAE5CqB,IAAI,EAAEH,QAAQ,CAAClB,UAF6B;EAG5CsB,MAAM,EAAEnB,UAAU,CAACH,UAHyB;EAI5CuB,KAAK,EAAElB,SAAS,CAACL,UAJ2B;EAK5CwB,IAAI,EAAElB,QAAQ,CAACN;AAL6B,CAAhB,CAAvB"}
|
package/lib/utils.js
CHANGED
|
@@ -183,7 +183,7 @@ exports.bandKey = bandKey;
|
|
|
183
183
|
|
|
184
184
|
var isDomainRangeEqual = function isDomainRangeEqual(graphProps, nextGraphProps) {
|
|
185
185
|
return (0, _isEqual["default"])(graphProps.domain, nextGraphProps.domain) && (0, _isEqual["default"])(graphProps.range, nextGraphProps.range);
|
|
186
|
-
}; // findLongestWord is also used in
|
|
186
|
+
}; // findLongestWord is also used in graphing
|
|
187
187
|
|
|
188
188
|
|
|
189
189
|
exports.isDomainRangeEqual = isDomainRangeEqual;
|
|
@@ -193,7 +193,7 @@ var findLongestWord = function findLongestWord(label) {
|
|
|
193
193
|
return b.length - a.length;
|
|
194
194
|
});
|
|
195
195
|
return longestWord[0].length;
|
|
196
|
-
}; // amountToIncreaseWidth is also used in
|
|
196
|
+
}; // amountToIncreaseWidth is also used in graphing
|
|
197
197
|
|
|
198
198
|
|
|
199
199
|
exports.findLongestWord = findLongestWord;
|
|
@@ -203,7 +203,7 @@ var amountToIncreaseWidth = function amountToIncreaseWidth(longestWord) {
|
|
|
203
203
|
return 0;
|
|
204
204
|
}
|
|
205
205
|
|
|
206
|
-
return longestWord *
|
|
206
|
+
return longestWord * 20;
|
|
207
207
|
};
|
|
208
208
|
|
|
209
209
|
exports.amountToIncreaseWidth = amountToIncreaseWidth;
|
package/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils.js"],"names":["xy","x","y","buildSizeArray","size","padding","Number","isFinite","Math","max","half","round","tickCount","min","step","abs","getInterval","domain","ticks","major","minor","Error","distance","minorTicks","normalizedMajor","isNaN","divider","raw","parseFloat","toFixed","mkRange","interval","splice","length","snapTo","value","rng","filter","v","reduce","prev","curr","currentDistance","previousDistance","buildTickModel","scaleFn","map","r","index","isMajor","polygonToArea","points","h","area","left","top","bottom","right","a","p","lineToArea","from","to","bounds","range","point","o","Point","getDelta","sub","bandKey","d","label","isDomainRangeEqual","graphProps","nextGraphProps","findLongestWord","longestWord","replace","split","sort","b","amountToIncreaseWidth"],"mappings":"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","sourcesContent":["import invariant from 'invariant';\nimport range from 'lodash/range';\nimport Point from '@mapbox/point-geometry';\nimport head from 'lodash/head';\nimport tail from 'lodash/tail';\nimport isEqual from 'lodash/isEqual';\n\nexport const xy = (x, y) => ({ x, y });\n\nexport const buildSizeArray = (size, padding) => {\n padding = Number.isFinite(padding) ? Math.max(padding, 0) : 0;\n invariant(padding < size, 'padding must be less than size');\n const half = Math.round(padding * 0.5);\n return [half, size - half];\n};\n\nexport const tickCount = (min, max, step) => {\n invariant(min < max, 'min must be less than max');\n const size = Math.abs(min - max);\n return Math.round(size / step);\n};\n\nexport function getInterval(domain, ticks) {\n const { min, max } = domain;\n const { major, minor } = ticks;\n\n if (min >= max) {\n throw new Error(`min is > max: ${min} > ${max}`);\n }\n\n const distance = max - min;\n const minorTicks = minor > 0 ? minor + 1 : 1;\n const normalizedMajor = major - 1;\n\n if (isNaN(normalizedMajor)) {\n throw new Error('Tick Frequency must be 2 or higher');\n }\n\n if (normalizedMajor <= 0) {\n throw new Error('Tick Frequency must be 2 or higher');\n }\n\n const divider = normalizedMajor * minorTicks;\n const raw = distance / divider;\n return parseFloat(Number(raw).toFixed(4));\n}\n\nconst mkRange = (min, max, interval) => {\n const raw = range(min, max, interval);\n /* Fix the last step due to rounding errors */\n raw.splice(raw.length, 1, max);\n return raw;\n};\n\nexport function snapTo(min, max, interval, value) {\n if (value >= max) {\n return max;\n }\n\n if (value <= min) {\n return min;\n }\n\n let rng = mkRange(min, max, interval);\n\n rng = rng.filter(v => {\n return Math.abs(value - v) <= interval;\n });\n\n return (\n rng.length &&\n rng.reduce((prev, curr) => {\n const currentDistance = Math.abs(curr - value);\n const previousDistance = Math.abs(prev - value);\n return currentDistance <= previousDistance ? curr : prev;\n })\n );\n}\n\nexport function buildTickModel(domain, ticks, interval, scaleFn) {\n const rng = mkRange(domain.min, domain.max, interval);\n\n return rng.map((r, index) => {\n const isMajor = index % (ticks.minor + 1) === 0;\n\n return {\n value: r,\n major: isMajor,\n x: scaleFn(r)\n };\n });\n}\n\nexport const polygonToArea = points => {\n const h = head(points);\n const area = {\n left: h.x,\n top: h.y,\n bottom: h.y,\n right: h.x\n };\n return tail(points).reduce((a, p) => {\n a.left = Math.min(a.left, p.x);\n a.top = Math.max(a.top, p.y);\n a.bottom = Math.min(a.bottom, p.y);\n a.right = Math.max(a.right, p.x);\n return a;\n }, area);\n};\n\nexport const lineToArea = (from, to) => {\n const left = Math.min(from.x, to.x);\n const top = Math.max(from.y, to.y);\n const bottom = Math.min(from.y, to.y);\n const right = Math.max(from.x, to.x);\n return { left, top, bottom, right };\n};\n\nexport const bounds = (area, domain, range) => {\n return {\n left: domain.min - area.left,\n right: Math.abs(area.right - domain.max),\n top: Math.abs(area.top - range.max),\n bottom: range.min - area.bottom\n };\n};\n\nexport const point = o => new Point(o.x, o.y);\nexport const getDelta = (from, to) => {\n return point(to).sub(point(from));\n};\n\nexport const bandKey = (d, index) => `${index}-${d.label || '-'}`;\n\nexport const isDomainRangeEqual = (graphProps, nextGraphProps) => {\n return (\n isEqual(graphProps.domain, nextGraphProps.domain) &&\n isEqual(graphProps.range, nextGraphProps.range)\n );\n};\n\n// findLongestWord is also used in grapghing\nexport const findLongestWord = label => {\n let longestWord = (label || '')\n .replace(/<[^>]+>/g, '')\n .split(' ')\n .sort((a, b) => b.length - a.length);\n\n return longestWord[0].length;\n};\n\n// amountToIncreaseWidth is also used in grapghing\nexport const amountToIncreaseWidth = longestWord => {\n if (!longestWord) {\n return 0;\n }\n\n return longestWord * 10;\n};\n"],"file":"utils.js"}
|
|
1
|
+
{"version":3,"file":"utils.js","names":["xy","x","y","buildSizeArray","size","padding","Number","isFinite","Math","max","invariant","half","round","tickCount","min","step","abs","getInterval","domain","ticks","major","minor","Error","distance","minorTicks","normalizedMajor","isNaN","divider","raw","parseFloat","toFixed","mkRange","interval","range","splice","length","snapTo","value","rng","filter","v","reduce","prev","curr","currentDistance","previousDistance","buildTickModel","scaleFn","map","r","index","isMajor","polygonToArea","points","h","head","area","left","top","bottom","right","tail","a","p","lineToArea","from","to","bounds","point","o","Point","getDelta","sub","bandKey","d","label","isDomainRangeEqual","graphProps","nextGraphProps","isEqual","findLongestWord","longestWord","replace","split","sort","b","amountToIncreaseWidth"],"sources":["../src/utils.js"],"sourcesContent":["import invariant from 'invariant';\nimport range from 'lodash/range';\nimport Point from '@mapbox/point-geometry';\nimport head from 'lodash/head';\nimport tail from 'lodash/tail';\nimport isEqual from 'lodash/isEqual';\n\nexport const xy = (x, y) => ({ x, y });\n\nexport const buildSizeArray = (size, padding) => {\n padding = Number.isFinite(padding) ? Math.max(padding, 0) : 0;\n invariant(padding < size, 'padding must be less than size');\n const half = Math.round(padding * 0.5);\n return [half, size - half];\n};\n\nexport const tickCount = (min, max, step) => {\n invariant(min < max, 'min must be less than max');\n const size = Math.abs(min - max);\n return Math.round(size / step);\n};\n\nexport function getInterval(domain, ticks) {\n const { min, max } = domain;\n const { major, minor } = ticks;\n\n if (min >= max) {\n throw new Error(`min is > max: ${min} > ${max}`);\n }\n\n const distance = max - min;\n const minorTicks = minor > 0 ? minor + 1 : 1;\n const normalizedMajor = major - 1;\n\n if (isNaN(normalizedMajor)) {\n throw new Error('Tick Frequency must be 2 or higher');\n }\n\n if (normalizedMajor <= 0) {\n throw new Error('Tick Frequency must be 2 or higher');\n }\n\n const divider = normalizedMajor * minorTicks;\n const raw = distance / divider;\n return parseFloat(Number(raw).toFixed(4));\n}\n\nconst mkRange = (min, max, interval) => {\n const raw = range(min, max, interval);\n /* Fix the last step due to rounding errors */\n raw.splice(raw.length, 1, max);\n return raw;\n};\n\nexport function snapTo(min, max, interval, value) {\n if (value >= max) {\n return max;\n }\n\n if (value <= min) {\n return min;\n }\n\n let rng = mkRange(min, max, interval);\n\n rng = rng.filter(v => {\n return Math.abs(value - v) <= interval;\n });\n\n return (\n rng.length &&\n rng.reduce((prev, curr) => {\n const currentDistance = Math.abs(curr - value);\n const previousDistance = Math.abs(prev - value);\n return currentDistance <= previousDistance ? curr : prev;\n })\n );\n}\n\nexport function buildTickModel(domain, ticks, interval, scaleFn) {\n const rng = mkRange(domain.min, domain.max, interval);\n\n return rng.map((r, index) => {\n const isMajor = index % (ticks.minor + 1) === 0;\n\n return {\n value: r,\n major: isMajor,\n x: scaleFn(r)\n };\n });\n}\n\nexport const polygonToArea = points => {\n const h = head(points);\n const area = {\n left: h.x,\n top: h.y,\n bottom: h.y,\n right: h.x\n };\n return tail(points).reduce((a, p) => {\n a.left = Math.min(a.left, p.x);\n a.top = Math.max(a.top, p.y);\n a.bottom = Math.min(a.bottom, p.y);\n a.right = Math.max(a.right, p.x);\n return a;\n }, area);\n};\n\nexport const lineToArea = (from, to) => {\n const left = Math.min(from.x, to.x);\n const top = Math.max(from.y, to.y);\n const bottom = Math.min(from.y, to.y);\n const right = Math.max(from.x, to.x);\n return { left, top, bottom, right };\n};\n\nexport const bounds = (area, domain, range) => {\n return {\n left: domain.min - area.left,\n right: Math.abs(area.right - domain.max),\n top: Math.abs(area.top - range.max),\n bottom: range.min - area.bottom\n };\n};\n\nexport const point = o => new Point(o.x, o.y);\nexport const getDelta = (from, to) => {\n return point(to).sub(point(from));\n};\n\nexport const bandKey = (d, index) => `${index}-${d.label || '-'}`;\n\nexport const isDomainRangeEqual = (graphProps, nextGraphProps) => {\n return (\n isEqual(graphProps.domain, nextGraphProps.domain) &&\n isEqual(graphProps.range, nextGraphProps.range)\n );\n};\n\n// findLongestWord is also used in graphing\nexport const findLongestWord = label => {\n let longestWord = (label || '')\n .replace(/<[^>]+>/g, '')\n .split(' ')\n .sort((a, b) => b.length - a.length);\n\n return longestWord[0].length;\n};\n\n// amountToIncreaseWidth is also used in graphing\nexport const amountToIncreaseWidth = longestWord => {\n if (!longestWord) {\n return 0;\n }\n\n return longestWord * 20;\n};\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "2.1.10-next.
|
|
6
|
+
"version": "2.1.10-next.408+9e77aef6",
|
|
7
7
|
"description": "Some underlying components for building charts/graphs",
|
|
8
8
|
"keywords": [
|
|
9
9
|
"react",
|
|
@@ -38,6 +38,6 @@
|
|
|
38
38
|
"peerDependencies": {
|
|
39
39
|
"react": "^16.8.1"
|
|
40
40
|
},
|
|
41
|
-
"gitHead": "
|
|
41
|
+
"gitHead": "9e77aef6241de40777005d2ab73f57e4e45fb744",
|
|
42
42
|
"scripts": {}
|
|
43
43
|
}
|
package/src/graph-props.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import invariant from 'invariant';
|
|
2
|
-
import {
|
|
2
|
+
import { snapTo } from './utils';
|
|
3
3
|
import { scaleLinear } from 'd3-scale';
|
|
4
4
|
|
|
5
5
|
const createSnapMinAndMax = ({ min, max, step }) => {
|
|
@@ -16,19 +16,16 @@ export const create = (domain, range, size, getRootNode) => {
|
|
|
16
16
|
invariant(domain.min < domain.max, 'domain: min must be less than max');
|
|
17
17
|
invariant(range.min < range.max, 'range: min must be less than max');
|
|
18
18
|
|
|
19
|
-
const widthArray = buildSizeArray(size.width, domain.padding);
|
|
20
|
-
const heightArray = buildSizeArray(size.height, range.padding);
|
|
21
|
-
|
|
22
19
|
const domainMinMax = createSnapMinAndMax(domain);
|
|
23
20
|
const rangeMinMax = createSnapMinAndMax(range);
|
|
24
21
|
|
|
25
22
|
const scale = {
|
|
26
23
|
x: scaleLinear()
|
|
27
24
|
.domain([domain.min, domain.max])
|
|
28
|
-
.range(
|
|
25
|
+
.range([0, size.width]),
|
|
29
26
|
y: scaleLinear()
|
|
30
27
|
.domain([range.max, range.min])
|
|
31
|
-
.range(
|
|
28
|
+
.range([0, size.height])
|
|
32
29
|
};
|
|
33
30
|
|
|
34
31
|
const snap = {
|
package/src/root.jsx
CHANGED
|
@@ -6,7 +6,6 @@ import { select, mouse } from 'd3-selection';
|
|
|
6
6
|
import PropTypes from 'prop-types';
|
|
7
7
|
import { GraphPropsType } from './types';
|
|
8
8
|
import { color } from '@pie-lib/render-ui';
|
|
9
|
-
import { findLongestWord, amountToIncreaseWidth } from './utils';
|
|
10
9
|
|
|
11
10
|
export const GraphTitle = withStyles(theme => ({
|
|
12
11
|
title: {
|
|
@@ -31,8 +30,7 @@ export class Root extends React.Component {
|
|
|
31
30
|
graphProps: GraphPropsType.isRequired,
|
|
32
31
|
onMouseMove: PropTypes.func,
|
|
33
32
|
classes: PropTypes.object.isRequired,
|
|
34
|
-
rootRef: PropTypes.func
|
|
35
|
-
paddingLeft: PropTypes.number
|
|
33
|
+
rootRef: PropTypes.func
|
|
36
34
|
};
|
|
37
35
|
|
|
38
36
|
mouseMove = g => {
|
|
@@ -66,14 +64,16 @@ export class Root extends React.Component {
|
|
|
66
64
|
}
|
|
67
65
|
|
|
68
66
|
render() {
|
|
69
|
-
const { graphProps, children, classes, title, rootRef
|
|
70
|
-
const {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
const
|
|
76
|
-
const
|
|
67
|
+
const { graphProps, children, classes, title, rootRef } = this.props;
|
|
68
|
+
const {
|
|
69
|
+
size: { width = 500, height = 500 },
|
|
70
|
+
domain,
|
|
71
|
+
range
|
|
72
|
+
} = graphProps;
|
|
73
|
+
const topPadding = 50;
|
|
74
|
+
const leftPadding = topPadding + 10; // left side requires an extra padding of 10
|
|
75
|
+
const finalWidth = width + leftPadding * 2 + (domain.padding || 0) * 2;
|
|
76
|
+
const finalHeight = height + topPadding * 2 + (range.padding || 0) * 2;
|
|
77
77
|
|
|
78
78
|
return (
|
|
79
79
|
<div className={classes.root}>
|
|
@@ -87,7 +87,7 @@ export class Root extends React.Component {
|
|
|
87
87
|
}
|
|
88
88
|
}}
|
|
89
89
|
className={classes.graphBox}
|
|
90
|
-
transform={`translate(${
|
|
90
|
+
transform={`translate(${leftPadding}, ${topPadding})`}
|
|
91
91
|
>
|
|
92
92
|
{children}
|
|
93
93
|
</g>
|
package/src/utils.js
CHANGED
|
@@ -139,7 +139,7 @@ export const isDomainRangeEqual = (graphProps, nextGraphProps) => {
|
|
|
139
139
|
);
|
|
140
140
|
};
|
|
141
141
|
|
|
142
|
-
// findLongestWord is also used in
|
|
142
|
+
// findLongestWord is also used in graphing
|
|
143
143
|
export const findLongestWord = label => {
|
|
144
144
|
let longestWord = (label || '')
|
|
145
145
|
.replace(/<[^>]+>/g, '')
|
|
@@ -149,11 +149,11 @@ export const findLongestWord = label => {
|
|
|
149
149
|
return longestWord[0].length;
|
|
150
150
|
};
|
|
151
151
|
|
|
152
|
-
// amountToIncreaseWidth is also used in
|
|
152
|
+
// amountToIncreaseWidth is also used in graphing
|
|
153
153
|
export const amountToIncreaseWidth = longestWord => {
|
|
154
154
|
if (!longestWord) {
|
|
155
155
|
return 0;
|
|
156
156
|
}
|
|
157
157
|
|
|
158
|
-
return longestWord *
|
|
158
|
+
return longestWord * 20;
|
|
159
159
|
};
|