@pie-lib/tools 0.39.0-mui-update.0 → 0.43.0-mui-update.0
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 +32 -0
- package/lib/anchor.js +3 -7
- package/lib/anchor.js.map +1 -1
- package/lib/protractor/index.js +2 -5
- package/lib/protractor/index.js.map +1 -1
- package/lib/rotatable.js +1 -4
- package/lib/rotatable.js.map +1 -1
- package/lib/ruler/index.js +2 -6
- package/lib/ruler/index.js.map +1 -1
- package/package.json +3 -5
- package/src/anchor.jsx +1 -1
- package/src/protractor/index.jsx +4 -5
- package/src/rotatable.jsx +1 -3
- package/src/ruler/index.jsx +3 -6
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,38 @@
|
|
|
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
|
+
# [0.43.0-mui-update.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/tools@0.42.0-mui-update.0...@pie-lib/tools@0.43.0-mui-update.0) (2025-12-29)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @pie-lib/tools
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
# [0.42.0-mui-update.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/tools@0.41.0-mui-update.0...@pie-lib/tools@0.42.0-mui-update.0) (2025-12-29)
|
|
15
|
+
|
|
16
|
+
**Note:** Version bump only for package @pie-lib/tools
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
# [0.41.0-mui-update.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/tools@0.40.0-mui-update.0...@pie-lib/tools@0.41.0-mui-update.0) (2025-12-17)
|
|
23
|
+
|
|
24
|
+
**Note:** Version bump only for package @pie-lib/tools
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
# [0.40.0-mui-update.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/tools@0.39.0-mui-update.0...@pie-lib/tools@0.40.0-mui-update.0) (2025-12-17)
|
|
31
|
+
|
|
32
|
+
**Note:** Version bump only for package @pie-lib/tools
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
6
38
|
# [0.39.0-mui-update.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/tools@0.38.0-mui-update.0...@pie-lib/tools@0.39.0-mui-update.0) (2025-12-11)
|
|
7
39
|
|
|
8
40
|
**Note:** Version bump only for package @pie-lib/tools
|
package/lib/anchor.js
CHANGED
|
@@ -5,11 +5,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports["default"] = void 0;
|
|
8
|
+
var _objectDestructuringEmpty2 = _interopRequireDefault(require("@babel/runtime/helpers/objectDestructuringEmpty"));
|
|
8
9
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
-
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
10
10
|
var _react = _interopRequireDefault(require("react"));
|
|
11
11
|
var _styles = require("@mui/material/styles");
|
|
12
|
-
var _excluded = ["className"];
|
|
13
12
|
var StyledAnchor = (0, _styles.styled)('div')(function (_ref) {
|
|
14
13
|
var theme = _ref.theme;
|
|
15
14
|
return {
|
|
@@ -27,11 +26,8 @@ var StyledAnchor = (0, _styles.styled)('div')(function (_ref) {
|
|
|
27
26
|
};
|
|
28
27
|
});
|
|
29
28
|
var Anchor = function Anchor(_ref2) {
|
|
30
|
-
var
|
|
31
|
-
|
|
32
|
-
return /*#__PURE__*/_react["default"].createElement(StyledAnchor, (0, _extends2["default"])({
|
|
33
|
-
className: className
|
|
34
|
-
}, props));
|
|
29
|
+
var props = (0, _extends2["default"])({}, ((0, _objectDestructuringEmpty2["default"])(_ref2), _ref2));
|
|
30
|
+
return /*#__PURE__*/_react["default"].createElement(StyledAnchor, props);
|
|
35
31
|
};
|
|
36
32
|
var _default = exports["default"] = Anchor;
|
|
37
33
|
//# sourceMappingURL=anchor.js.map
|
package/lib/anchor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anchor.js","names":["_react","_interopRequireDefault","require","_styles","
|
|
1
|
+
{"version":3,"file":"anchor.js","names":["_react","_interopRequireDefault","require","_styles","StyledAnchor","styled","_ref","theme","cursor","width","height","position","borderRadius","backgroundColor","concat","palette","primary","contrastText","transition","border","dark","light","Anchor","_ref2","props","_extends2","_objectDestructuringEmpty2","createElement","_default","exports"],"sources":["../src/anchor.jsx"],"sourcesContent":["import React from 'react';\nimport { styled } from '@mui/material/styles';\n\nconst StyledAnchor = styled('div')(({ theme }) => ({\n cursor: 'pointer',\n width: '20px',\n height: '20px',\n position: 'absolute',\n borderRadius: '10px',\n backgroundColor: `var(--ruler-bg, ${theme.palette.primary.contrastText})`,\n transition: 'background-color 200ms ease-in',\n border: `solid 1px var(--ruler-stroke, ${theme.palette.primary.dark})`,\n '&:hover': {\n backgroundColor: `var(--ruler-bg-hover, ${theme.palette.primary.light})`,\n },\n}));\n\nconst Anchor = ({ ...props }) => <StyledAnchor {...props} />;\n\nexport default Anchor;\n"],"mappings":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAEA,IAAME,YAAY,GAAG,IAAAC,cAAM,EAAC,KAAK,CAAC,CAAC,UAAAC,IAAA;EAAA,IAAGC,KAAK,GAAAD,IAAA,CAALC,KAAK;EAAA,OAAQ;IACjDC,MAAM,EAAE,SAAS;IACjBC,KAAK,EAAE,MAAM;IACbC,MAAM,EAAE,MAAM;IACdC,QAAQ,EAAE,UAAU;IACpBC,YAAY,EAAE,MAAM;IACpBC,eAAe,qBAAAC,MAAA,CAAqBP,KAAK,CAACQ,OAAO,CAACC,OAAO,CAACC,YAAY,MAAG;IACzEC,UAAU,EAAE,gCAAgC;IAC5CC,MAAM,mCAAAL,MAAA,CAAmCP,KAAK,CAACQ,OAAO,CAACC,OAAO,CAACI,IAAI,MAAG;IACtE,SAAS,EAAE;MACTP,eAAe,2BAAAC,MAAA,CAA2BP,KAAK,CAACQ,OAAO,CAACC,OAAO,CAACK,KAAK;IACvE;EACF,CAAC;AAAA,CAAC,CAAC;AAEH,IAAMC,MAAM,GAAG,SAATA,MAAMA,CAAAC,KAAA;EAAA,IAASC,KAAK,OAAAC,SAAA,sBAAAC,0BAAA,aAAAH,KAAA,GAAAA,KAAA;EAAA,oBAAOvB,MAAA,YAAA2B,aAAA,CAACvB,YAAY,EAAKoB,KAAQ,CAAC;AAAA;AAAC,IAAAI,QAAA,GAAAC,OAAA,cAE9CP,MAAM","ignoreList":[]}
|
package/lib/protractor/index.js
CHANGED
|
@@ -17,7 +17,6 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
17
17
|
var _graphic = _interopRequireDefault(require("./graphic"));
|
|
18
18
|
var _anchor = _interopRequireDefault(require("../anchor"));
|
|
19
19
|
var _rotatable = _interopRequireDefault(require("../rotatable"));
|
|
20
|
-
var _classnames = _interopRequireDefault(require("classnames"));
|
|
21
20
|
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
|
|
22
21
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
23
22
|
var StyledProtractor = (0, _styles.styled)('div')(function () {
|
|
@@ -50,10 +49,8 @@ var Protractor = exports.Protractor = /*#__PURE__*/function (_React$Component) {
|
|
|
50
49
|
value: function render() {
|
|
51
50
|
var _this$props = this.props,
|
|
52
51
|
width = _this$props.width,
|
|
53
|
-
className = _this$props.className,
|
|
54
52
|
startPosition = _this$props.startPosition;
|
|
55
53
|
return /*#__PURE__*/_react["default"].createElement(_rotatable["default"], {
|
|
56
|
-
className: className,
|
|
57
54
|
startPosition: startPosition,
|
|
58
55
|
handle: [{
|
|
59
56
|
"class": 'leftAnchor',
|
|
@@ -67,9 +64,9 @@ var Protractor = exports.Protractor = /*#__PURE__*/function (_React$Component) {
|
|
|
67
64
|
width: "".concat(width, "px")
|
|
68
65
|
}
|
|
69
66
|
}, /*#__PURE__*/_react["default"].createElement(_graphic["default"], null), /*#__PURE__*/_react["default"].createElement(StyledLeftAnchor, {
|
|
70
|
-
className:
|
|
67
|
+
className: "leftAnchor"
|
|
71
68
|
}), /*#__PURE__*/_react["default"].createElement(StyledRightAnchor, {
|
|
72
|
-
className:
|
|
69
|
+
className: "rightAnchor"
|
|
73
70
|
})));
|
|
74
71
|
}
|
|
75
72
|
}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_styles","_propTypes","_graphic","_anchor","_rotatable","
|
|
1
|
+
{"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_styles","_propTypes","_graphic","_anchor","_rotatable","_callSuper","t","o","e","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","call","StyledProtractor","styled","position","StyledLeftAnchor","Anchor","left","bottom","StyledRightAnchor","right","Protractor","exports","_React$Component","_classCallCheck2","arguments","_inherits2","_createClass2","key","value","render","_this$props","props","width","startPosition","createElement","handle","origin","concat","style","className","React","Component","_defineProperty2","PropTypes","number","isRequired","string","shape","top","_default"],"sources":["../../src/protractor/index.jsx"],"sourcesContent":["import React from 'react';\nimport { styled } from '@mui/material/styles';\nimport PropTypes from 'prop-types';\nimport Graphic from './graphic';\nimport Anchor from '../anchor';\nimport Rotatable from '../rotatable';\n\nconst StyledProtractor = styled('div')(() => ({\n position: 'relative',\n}));\n\nconst StyledLeftAnchor = styled(Anchor)(() => ({\n position: 'absolute',\n left: 0,\n bottom: 0,\n}));\n\nconst StyledRightAnchor = styled(Anchor)(() => ({\n position: 'absolute',\n right: 0,\n bottom: 0,\n}));\n\nexport class Protractor extends React.Component {\n static propTypes = {\n width: PropTypes.number.isRequired,\n className: PropTypes.string,\n startPosition: PropTypes.shape({\n left: PropTypes.number,\n top: PropTypes.number,\n }),\n };\n\n static defaultProps = {\n width: 450,\n startPosition: { left: 0, top: 0 },\n };\n\n render() {\n const { width, startPosition } = this.props;\n\n return (\n <Rotatable\n startPosition={startPosition}\n handle={[\n {\n class: 'leftAnchor',\n origin: `${width * 0.495}px ${width * 0.49}px`,\n },\n {\n class: 'rightAnchor',\n origin: `${width * 0.495}px ${width * 0.49}px`,\n },\n ]}\n >\n <StyledProtractor style={{ width: `${width}px` }}>\n <Graphic />\n\n <StyledLeftAnchor className=\"leftAnchor\" />\n <StyledRightAnchor className=\"rightAnchor\" />\n </StyledProtractor>\n </Rotatable>\n );\n }\n}\n\nexport default Protractor;\n"],"mappings":"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","ignoreList":[]}
|
package/lib/rotatable.js
CHANGED
|
@@ -287,8 +287,7 @@ var Rotatable = exports.Rotatable = /*#__PURE__*/function (_React$Component) {
|
|
|
287
287
|
var _this3 = this;
|
|
288
288
|
var _this$props = this.props,
|
|
289
289
|
children = _this$props.children,
|
|
290
|
-
showAnchor = _this$props.showAnchor
|
|
291
|
-
className = _this$props.className;
|
|
290
|
+
showAnchor = _this$props.showAnchor;
|
|
292
291
|
var _this$state3 = this.state,
|
|
293
292
|
rotation = _this$state3.rotation,
|
|
294
293
|
anchor = _this$state3.anchor,
|
|
@@ -303,7 +302,6 @@ var Rotatable = exports.Rotatable = /*#__PURE__*/function (_React$Component) {
|
|
|
303
302
|
transform: "".concat(t, " rotate(").concat(rotation, "deg)")
|
|
304
303
|
};
|
|
305
304
|
return /*#__PURE__*/_react["default"].createElement(RotatableContainer, {
|
|
306
|
-
className: className,
|
|
307
305
|
style: style,
|
|
308
306
|
ref: function ref(r) {
|
|
309
307
|
return _this3.rotatable = r;
|
|
@@ -321,7 +319,6 @@ var Rotatable = exports.Rotatable = /*#__PURE__*/function (_React$Component) {
|
|
|
321
319
|
"class": _propTypes["default"].string.isRequired,
|
|
322
320
|
origin: _propTypes["default"].string
|
|
323
321
|
})),
|
|
324
|
-
className: _propTypes["default"].string,
|
|
325
322
|
startPosition: _propTypes["default"].shape({
|
|
326
323
|
left: _propTypes["default"].number,
|
|
327
324
|
top: _propTypes["default"].number
|
package/lib/rotatable.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rotatable.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_anchorUtils","_reactPortal","_pointGeometry","_transformOrigin","_callSuper","t","o","e","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","call","AnchorSvg","styled","position","zIndex","width","height","Anchor","_ref","left","top","color","fill","createElement","Portal","style","cx","cy","r","strokeWidth","stroke","RotatableContainer","display","cursor","Rotatable","exports","_React$Component","props","_this","_classCallCheck2","_defineProperty2","handle","Array","isArray","handles","forEach","h","el","rotatable","querySelector","concat","mousedownHandler","rotateStart","origin","addEventListener","rotateStop","push","document","_this$rotatable","clientWidth","clientHeight","parseOrigin","rotation","state","_this$rotatable2","_this$rotatable$getBo","getBoundingClientRect","xy","originToXY","_calcAnchor","calcAnchor","anchorTop","anchorLeft","isRotating","preventDefault","anchor","getAnchor","_this$getAngle","getAngle","startAngle","angle","diff","x","y","_this$rotatable3","distanceBetween","setState","rotate","current","removeEventListener","drag","_this$state","_this$getAngle2","computedAnchor","find","target","dragStart","dragPoint","Point","pageX","pageY","translate","sub","_this$state2","lastPosition","startPosition","_inherits2","_createClass2","key","value","componentWillUnmount","_this2","componentDidMount","addMouseUpHandler","initHandles","clientX","clientY","arctangent","render","_this3","_this$props","children","showAnchor","className","_this$state3","transformOrigin","transform","ref","onMouseDown","mouseDown","onMouseUp","mouseUp","React","Component","PropTypes","oneOfType","arrayOf","node","isRequired","bool","shape","string","number","_default"],"sources":["../src/rotatable.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport { getAnchor as calcAnchor, distanceBetween, arctangent } from './anchor-utils';\nimport { Portal } from 'react-portal';\nimport Point from '@mapbox/point-geometry';\nimport { parse as parseOrigin } from './transform-origin';\n\nconst AnchorSvg = styled('svg')({\n position: 'absolute',\n zIndex: 100,\n width: '200px',\n height: '80px',\n});\n\nconst Anchor = ({ left, top, color, fill }) => {\n color = color || 'green';\n fill = fill || 'white';\n return (\n <Portal>\n <AnchorSvg\n style={{\n left: left - 10,\n top: top - 10,\n }}\n >\n <circle cx={10} cy={10} r={8} strokeWidth={1} stroke={color} fill={fill} />\n </AnchorSvg>\n </Portal>\n );\n};\n\n/**\n * Tip o' the hat to:\n * https://bl.ocks.org/joyrexus/7207044\n */\nconst RotatableContainer = styled('div')({\n position: 'relative',\n display: 'inline-block',\n cursor: 'move',\n});\n\nexport class Rotatable extends React.Component {\n static propTypes = {\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n showAnchor: PropTypes.bool,\n handle: PropTypes.arrayOf(\n PropTypes.shape({\n class: PropTypes.string.isRequired,\n origin: PropTypes.string,\n }),\n ),\n className: PropTypes.string,\n startPosition: PropTypes.shape({\n left: PropTypes.number,\n top: PropTypes.number,\n }),\n };\n\n static defaultProps = {\n showAnchor: false,\n startPosition: { left: 0, top: 0 },\n };\n\n constructor(props) {\n super(props);\n this.state = {\n isRotating: false,\n rotation: 0,\n startAngle: 0,\n angle: 0,\n position: {\n left: props.startPosition.left,\n top: props.startPosition.top,\n },\n };\n }\n\n componentWillUnmount() {\n document.removeEventListener('mouseup', this.rotateStop);\n document.removeEventListener('mousemove', this.drag);\n document.removeEventListener('mousemove', this.rotate);\n\n this.handles.forEach((h) => {\n h.el.removeEventListener('mousedown', h.mousedownHandler);\n h.el.removeEventListener('mouseup', this.rotateStop);\n });\n }\n\n componentDidMount() {\n this.addMouseUpHandler();\n this.initHandles();\n }\n\n initHandles = () => {\n const { handle } = this.props;\n\n if (Array.isArray(handle)) {\n this.handles = [];\n handle.forEach((h) => {\n const el = this.rotatable.querySelector(`.${h.class}`);\n\n if (el) {\n const mousedownHandler = this.rotateStart(h.origin);\n el.addEventListener('mousedown', mousedownHandler);\n el.addEventListener('mouseup', this.rotateStop);\n this.handles.push({ el, mousedownHandler });\n }\n });\n }\n };\n\n addMouseUpHandler = () => {\n document.addEventListener('mouseup', this.rotateStop);\n };\n\n originToXY = (origin) => {\n const { clientWidth: width, clientHeight: height } = this.rotatable;\n return parseOrigin({ width, height }, origin);\n };\n\n /**\n * Get the anchor point for the given element, origin and rotation.\n * @returns {{left:number, top: number}} - the co-ordinates of the anchor point relative to the whole page.\n */\n getAnchor = (origin) => {\n const { rotation } = this.state;\n const { clientWidth, clientHeight } = this.rotatable;\n const { top, left } = this.rotatable.getBoundingClientRect();\n const xy = this.originToXY(origin);\n const { top: anchorTop, left: anchorLeft } = calcAnchor(\n {\n width: clientWidth,\n height: clientHeight,\n },\n xy,\n rotation,\n );\n\n return {\n top: top + anchorTop,\n left: left + anchorLeft,\n };\n };\n\n rotateStart = (origin) => (e) => {\n const { isRotating } = this.state;\n if (isRotating) {\n return;\n }\n\n e.preventDefault();\n\n const anchor = this.getAnchor(origin);\n const { rotation } = this.state;\n const { angle: startAngle } = this.getAngle(anchor, e);\n\n let diff = { x: 0, y: 0 };\n if (origin !== this.state.origin) {\n const { clientWidth: width, clientHeight: height } = this.rotatable;\n diff = distanceBetween({ width, height }, rotation, this.state.origin, origin);\n }\n\n this.setState(\n {\n origin,\n isRotating: true,\n startAngle,\n anchor,\n position: {\n left: this.state.position.left + diff.x,\n top: this.state.position.top + diff.y,\n },\n },\n () => {\n document.addEventListener('mousemove', this.rotate);\n },\n );\n };\n\n rotateStop = (e) => {\n const { isRotating } = this.state;\n\n if (!isRotating) {\n return;\n }\n\n e.preventDefault();\n\n this.setState(\n {\n isRotating: false,\n angle: this.state.rotation,\n anchor: null,\n current: null,\n },\n () => {\n document.removeEventListener('mousemove', this.rotate);\n document.removeEventListener('mousemove', this.drag);\n },\n );\n };\n\n getAngle(anchor, e) {\n const x = e.clientX - anchor.left;\n const y = (e.clientY - anchor.top) * -1;\n return { angle: arctangent(x, y), x, y };\n }\n\n rotate = (e) => {\n const { isRotating } = this.state;\n if (!isRotating) {\n return;\n }\n\n e.preventDefault();\n\n const { startAngle, angle, anchor } = this.state;\n const { angle: current, x, y } = this.getAngle(anchor, e);\n const computedAnchor = { x, y };\n const diff = current - startAngle;\n const rotation = angle + diff;\n this.setState({ rotation, diff, current, computedAnchor });\n };\n\n mouseDown = (e) => {\n const handle = this.handles.find((h) => h.el === e.target);\n\n if (!handle) {\n this.dragStart(e);\n }\n };\n\n dragStart = (e) => {\n const dragPoint = new Point(e.pageX, e.pageY);\n this.setState({ dragPoint }, () => {\n document.addEventListener('mousemove', this.drag);\n });\n };\n\n drag = (e) => {\n e.preventDefault();\n const current = new Point(e.pageX, e.pageY);\n const translate = current.sub(this.state.dragPoint);\n this.setState({ translate });\n };\n\n mouseUp = () => {\n if (!this.state.translate) {\n return;\n }\n\n const { position: lastPosition, translate } = this.state;\n\n const position = {\n left: lastPosition.left + translate.x,\n top: lastPosition.top + translate.y,\n };\n\n document.removeEventListener('mousemove', this.drag);\n this.setState({ position, dragPoint: null, translate: null });\n };\n\n render() {\n const { children, showAnchor, className } = this.props;\n const { rotation, anchor, origin, translate, position } = this.state;\n\n const t = translate ? `translate(${translate.x}px, ${translate.y}px)` : '';\n\n const style = {\n left: position.left,\n top: position.top,\n transformOrigin: origin,\n transform: `${t} rotate(${rotation}deg)`,\n };\n\n return (\n <RotatableContainer\n className={className}\n style={style}\n ref={(r) => (this.rotatable = r)}\n onMouseDown={this.mouseDown}\n onMouseUp={this.mouseUp}\n >\n {anchor && showAnchor && <Anchor {...anchor} />}\n {children}\n </RotatableContainer>\n );\n }\n}\n\nexport default Rotatable;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"rotatable.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_anchorUtils","_reactPortal","_pointGeometry","_transformOrigin","_callSuper","t","o","e","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","call","AnchorSvg","styled","position","zIndex","width","height","Anchor","_ref","left","top","color","fill","createElement","Portal","style","cx","cy","r","strokeWidth","stroke","RotatableContainer","display","cursor","Rotatable","exports","_React$Component","props","_this","_classCallCheck2","_defineProperty2","handle","Array","isArray","handles","forEach","h","el","rotatable","querySelector","concat","mousedownHandler","rotateStart","origin","addEventListener","rotateStop","push","document","_this$rotatable","clientWidth","clientHeight","parseOrigin","rotation","state","_this$rotatable2","_this$rotatable$getBo","getBoundingClientRect","xy","originToXY","_calcAnchor","calcAnchor","anchorTop","anchorLeft","isRotating","preventDefault","anchor","getAnchor","_this$getAngle","getAngle","startAngle","angle","diff","x","y","_this$rotatable3","distanceBetween","setState","rotate","current","removeEventListener","drag","_this$state","_this$getAngle2","computedAnchor","find","target","dragStart","dragPoint","Point","pageX","pageY","translate","sub","_this$state2","lastPosition","startPosition","_inherits2","_createClass2","key","value","componentWillUnmount","_this2","componentDidMount","addMouseUpHandler","initHandles","clientX","clientY","arctangent","render","_this3","_this$props","children","showAnchor","_this$state3","transformOrigin","transform","ref","onMouseDown","mouseDown","onMouseUp","mouseUp","React","Component","PropTypes","oneOfType","arrayOf","node","isRequired","bool","shape","string","number","_default"],"sources":["../src/rotatable.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport { getAnchor as calcAnchor, distanceBetween, arctangent } from './anchor-utils';\nimport { Portal } from 'react-portal';\nimport Point from '@mapbox/point-geometry';\nimport { parse as parseOrigin } from './transform-origin';\n\nconst AnchorSvg = styled('svg')({\n position: 'absolute',\n zIndex: 100,\n width: '200px',\n height: '80px',\n});\n\nconst Anchor = ({ left, top, color, fill }) => {\n color = color || 'green';\n fill = fill || 'white';\n return (\n <Portal>\n <AnchorSvg\n style={{\n left: left - 10,\n top: top - 10,\n }}\n >\n <circle cx={10} cy={10} r={8} strokeWidth={1} stroke={color} fill={fill} />\n </AnchorSvg>\n </Portal>\n );\n};\n\n/**\n * Tip o' the hat to:\n * https://bl.ocks.org/joyrexus/7207044\n */\nconst RotatableContainer = styled('div')({\n position: 'relative',\n display: 'inline-block',\n cursor: 'move',\n});\n\nexport class Rotatable extends React.Component {\n static propTypes = {\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]).isRequired,\n showAnchor: PropTypes.bool,\n handle: PropTypes.arrayOf(\n PropTypes.shape({\n class: PropTypes.string.isRequired,\n origin: PropTypes.string,\n }),\n ),\n startPosition: PropTypes.shape({\n left: PropTypes.number,\n top: PropTypes.number,\n }),\n };\n\n static defaultProps = {\n showAnchor: false,\n startPosition: { left: 0, top: 0 },\n };\n\n constructor(props) {\n super(props);\n this.state = {\n isRotating: false,\n rotation: 0,\n startAngle: 0,\n angle: 0,\n position: {\n left: props.startPosition.left,\n top: props.startPosition.top,\n },\n };\n }\n\n componentWillUnmount() {\n document.removeEventListener('mouseup', this.rotateStop);\n document.removeEventListener('mousemove', this.drag);\n document.removeEventListener('mousemove', this.rotate);\n\n this.handles.forEach((h) => {\n h.el.removeEventListener('mousedown', h.mousedownHandler);\n h.el.removeEventListener('mouseup', this.rotateStop);\n });\n }\n\n componentDidMount() {\n this.addMouseUpHandler();\n this.initHandles();\n }\n\n initHandles = () => {\n const { handle } = this.props;\n\n if (Array.isArray(handle)) {\n this.handles = [];\n handle.forEach((h) => {\n const el = this.rotatable.querySelector(`.${h.class}`);\n\n if (el) {\n const mousedownHandler = this.rotateStart(h.origin);\n el.addEventListener('mousedown', mousedownHandler);\n el.addEventListener('mouseup', this.rotateStop);\n this.handles.push({ el, mousedownHandler });\n }\n });\n }\n };\n\n addMouseUpHandler = () => {\n document.addEventListener('mouseup', this.rotateStop);\n };\n\n originToXY = (origin) => {\n const { clientWidth: width, clientHeight: height } = this.rotatable;\n return parseOrigin({ width, height }, origin);\n };\n\n /**\n * Get the anchor point for the given element, origin and rotation.\n * @returns {{left:number, top: number}} - the co-ordinates of the anchor point relative to the whole page.\n */\n getAnchor = (origin) => {\n const { rotation } = this.state;\n const { clientWidth, clientHeight } = this.rotatable;\n const { top, left } = this.rotatable.getBoundingClientRect();\n const xy = this.originToXY(origin);\n const { top: anchorTop, left: anchorLeft } = calcAnchor(\n {\n width: clientWidth,\n height: clientHeight,\n },\n xy,\n rotation,\n );\n\n return {\n top: top + anchorTop,\n left: left + anchorLeft,\n };\n };\n\n rotateStart = (origin) => (e) => {\n const { isRotating } = this.state;\n if (isRotating) {\n return;\n }\n\n e.preventDefault();\n\n const anchor = this.getAnchor(origin);\n const { rotation } = this.state;\n const { angle: startAngle } = this.getAngle(anchor, e);\n\n let diff = { x: 0, y: 0 };\n if (origin !== this.state.origin) {\n const { clientWidth: width, clientHeight: height } = this.rotatable;\n diff = distanceBetween({ width, height }, rotation, this.state.origin, origin);\n }\n\n this.setState(\n {\n origin,\n isRotating: true,\n startAngle,\n anchor,\n position: {\n left: this.state.position.left + diff.x,\n top: this.state.position.top + diff.y,\n },\n },\n () => {\n document.addEventListener('mousemove', this.rotate);\n },\n );\n };\n\n rotateStop = (e) => {\n const { isRotating } = this.state;\n\n if (!isRotating) {\n return;\n }\n\n e.preventDefault();\n\n this.setState(\n {\n isRotating: false,\n angle: this.state.rotation,\n anchor: null,\n current: null,\n },\n () => {\n document.removeEventListener('mousemove', this.rotate);\n document.removeEventListener('mousemove', this.drag);\n },\n );\n };\n\n getAngle(anchor, e) {\n const x = e.clientX - anchor.left;\n const y = (e.clientY - anchor.top) * -1;\n return { angle: arctangent(x, y), x, y };\n }\n\n rotate = (e) => {\n const { isRotating } = this.state;\n if (!isRotating) {\n return;\n }\n\n e.preventDefault();\n\n const { startAngle, angle, anchor } = this.state;\n const { angle: current, x, y } = this.getAngle(anchor, e);\n const computedAnchor = { x, y };\n const diff = current - startAngle;\n const rotation = angle + diff;\n this.setState({ rotation, diff, current, computedAnchor });\n };\n\n mouseDown = (e) => {\n const handle = this.handles.find((h) => h.el === e.target);\n\n if (!handle) {\n this.dragStart(e);\n }\n };\n\n dragStart = (e) => {\n const dragPoint = new Point(e.pageX, e.pageY);\n this.setState({ dragPoint }, () => {\n document.addEventListener('mousemove', this.drag);\n });\n };\n\n drag = (e) => {\n e.preventDefault();\n const current = new Point(e.pageX, e.pageY);\n const translate = current.sub(this.state.dragPoint);\n this.setState({ translate });\n };\n\n mouseUp = () => {\n if (!this.state.translate) {\n return;\n }\n\n const { position: lastPosition, translate } = this.state;\n\n const position = {\n left: lastPosition.left + translate.x,\n top: lastPosition.top + translate.y,\n };\n\n document.removeEventListener('mousemove', this.drag);\n this.setState({ position, dragPoint: null, translate: null });\n };\n\n render() {\n const { children, showAnchor } = this.props;\n const { rotation, anchor, origin, translate, position } = this.state;\n\n const t = translate ? `translate(${translate.x}px, ${translate.y}px)` : '';\n\n const style = {\n left: position.left,\n top: position.top,\n transformOrigin: origin,\n transform: `${t} rotate(${rotation}deg)`,\n };\n\n return (\n <RotatableContainer\n style={style}\n ref={(r) => (this.rotatable = r)}\n onMouseDown={this.mouseDown}\n onMouseUp={this.mouseUp}\n >\n {anchor && showAnchor && <Anchor {...anchor} />}\n {children}\n </RotatableContainer>\n );\n }\n}\n\nexport default Rotatable;\n"],"mappings":"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","ignoreList":[]}
|
package/lib/ruler/index.js
CHANGED
|
@@ -14,7 +14,6 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
|
|
|
14
14
|
var _react = _interopRequireDefault(require("react"));
|
|
15
15
|
var _styles = require("@mui/material/styles");
|
|
16
16
|
var _rotatable = _interopRequireDefault(require("../rotatable"));
|
|
17
|
-
var _classnames = _interopRequireDefault(require("classnames"));
|
|
18
17
|
var _graphic = _interopRequireDefault(require("./graphic"));
|
|
19
18
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
20
19
|
var _anchor = _interopRequireDefault(require("../anchor"));
|
|
@@ -56,7 +55,6 @@ var Ruler = exports.Ruler = /*#__PURE__*/function (_React$Component) {
|
|
|
56
55
|
height = _this$props.height,
|
|
57
56
|
units = _this$props.units,
|
|
58
57
|
measure = _this$props.measure,
|
|
59
|
-
className = _this$props.className,
|
|
60
58
|
startPosition = _this$props.startPosition,
|
|
61
59
|
label = _this$props.label,
|
|
62
60
|
tickCount = _this$props.tickCount;
|
|
@@ -68,7 +66,6 @@ var Ruler = exports.Ruler = /*#__PURE__*/function (_React$Component) {
|
|
|
68
66
|
ticks: 10
|
|
69
67
|
};
|
|
70
68
|
return /*#__PURE__*/_react["default"].createElement(_rotatable["default"], {
|
|
71
|
-
className: className,
|
|
72
69
|
startPosition: startPosition,
|
|
73
70
|
handle: [{
|
|
74
71
|
"class": 'leftAnchor',
|
|
@@ -88,9 +85,9 @@ var Ruler = exports.Ruler = /*#__PURE__*/function (_React$Component) {
|
|
|
88
85
|
units: units,
|
|
89
86
|
unit: unit
|
|
90
87
|
}), /*#__PURE__*/_react["default"].createElement(StyledLeftAnchor, {
|
|
91
|
-
className:
|
|
88
|
+
className: "leftAnchor"
|
|
92
89
|
}), /*#__PURE__*/_react["default"].createElement(StyledRightAnchor, {
|
|
93
|
-
className:
|
|
90
|
+
className: "rightAnchor"
|
|
94
91
|
})));
|
|
95
92
|
}
|
|
96
93
|
}]);
|
|
@@ -100,7 +97,6 @@ var Ruler = exports.Ruler = /*#__PURE__*/function (_React$Component) {
|
|
|
100
97
|
height: _propTypes["default"].number,
|
|
101
98
|
units: _propTypes["default"].number.isRequired,
|
|
102
99
|
measure: _propTypes["default"].oneOf(['imperial', 'metric']).isRequired,
|
|
103
|
-
className: _propTypes["default"].string,
|
|
104
100
|
startPosition: _propTypes["default"].shape({
|
|
105
101
|
left: _propTypes["default"].number.isRequired,
|
|
106
102
|
top: _propTypes["default"].number.isRequired
|
package/lib/ruler/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_styles","_rotatable","
|
|
1
|
+
{"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_styles","_rotatable","_graphic","_propTypes","_anchor","_callSuper","t","o","e","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","call","StyledRuler","styled","_ref","theme","cursor","position","backgroundColor","palette","secondary","light","opacity","border","concat","primary","main","StyledLeftAnchor","Anchor","left","top","StyledRightAnchor","right","Ruler","exports","_React$Component","_classCallCheck2","arguments","_inherits2","_createClass2","key","value","render","_this$props","props","width","height","units","measure","startPosition","label","tickCount","unit","type","ticks","createElement","handle","origin","style","className","React","Component","_defineProperty2","PropTypes","number","isRequired","oneOf","shape","string","_default"],"sources":["../../src/ruler/index.jsx"],"sourcesContent":["import React from 'react';\nimport { styled } from '@mui/material/styles';\nimport Rotatable from '../rotatable';\nimport RulerGraphic from './graphic';\nimport PropTypes from 'prop-types';\nimport Anchor from '../anchor';\n\nconst StyledRuler = styled('div')(({ theme }) => ({\n cursor: 'move',\n position: 'relative',\n backgroundColor: theme.palette.secondary.light,\n opacity: 1.0,\n border: `solid 0px ${theme.palette.primary.main}`,\n}));\n\nconst StyledLeftAnchor = styled(Anchor)(() => ({\n left: '-10px',\n top: '40%',\n}));\n\nconst StyledRightAnchor = styled(Anchor)(() => ({\n right: '-10px',\n top: '40%',\n}));\n\nexport class Ruler extends React.Component {\n static propTypes = {\n width: PropTypes.number,\n height: PropTypes.number,\n units: PropTypes.number.isRequired,\n measure: PropTypes.oneOf(['imperial', 'metric']).isRequired,\n startPosition: PropTypes.shape({\n left: PropTypes.number.isRequired,\n top: PropTypes.number.isRequired,\n }),\n label: PropTypes.string,\n tickCount: PropTypes.number,\n };\n\n static defaultProps = {\n width: 480,\n height: 60,\n measure: 'imperial',\n units: 12,\n };\n\n render() {\n const { width, height, units, measure, startPosition, label, tickCount } = this.props;\n\n const unit =\n measure === 'imperial'\n ? {\n type: label,\n ticks: tickCount && tickCount % 4 === 0 ? tickCount : 16,\n }\n : {\n type: label,\n ticks: 10,\n };\n return (\n <Rotatable\n startPosition={startPosition}\n handle={[\n { class: 'leftAnchor', origin: 'bottom right' },\n { class: 'rightAnchor', origin: 'bottom left' },\n ]}\n >\n <StyledRuler style={{ width: `${width}px`, height: `${height}px` }}>\n <RulerGraphic width={width} height={height} units={units} unit={unit} />\n <StyledLeftAnchor className=\"leftAnchor\" />\n <StyledRightAnchor className=\"rightAnchor\" />\n </StyledRuler>\n </Rotatable>\n );\n }\n}\n\nexport default Ruler;\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "0.
|
|
6
|
+
"version": "0.43.0-mui-update.0",
|
|
7
7
|
"description": "Some interactive tools",
|
|
8
8
|
"keywords": [
|
|
9
9
|
"react",
|
|
@@ -22,11 +22,9 @@
|
|
|
22
22
|
"@mapbox/point-geometry": "^0.1.0",
|
|
23
23
|
"@mui/icons-material": "^7.3.4",
|
|
24
24
|
"@mui/material": "^7.3.4",
|
|
25
|
-
"@pie-lib/style-utils": "0.
|
|
25
|
+
"@pie-lib/style-utils": "0.35.0-mui-update.0",
|
|
26
26
|
"assert": "^1.4.1",
|
|
27
|
-
"classnames": "^2.2.6",
|
|
28
27
|
"debug": "^4.1.1",
|
|
29
|
-
"invariant": "^2.2.4",
|
|
30
28
|
"lodash": "^4.17.11",
|
|
31
29
|
"prop-types": "^15.7.2",
|
|
32
30
|
"react-portal": "^4.2.0",
|
|
@@ -41,5 +39,5 @@
|
|
|
41
39
|
"@mui/material": "^7.3.4",
|
|
42
40
|
"react": "^18.2.0"
|
|
43
41
|
},
|
|
44
|
-
"gitHead": "
|
|
42
|
+
"gitHead": "1e3f5fd7812b0a334d3b2719026a01c3102398c9"
|
|
45
43
|
}
|
package/src/anchor.jsx
CHANGED
package/src/protractor/index.jsx
CHANGED
|
@@ -4,7 +4,6 @@ import PropTypes from 'prop-types';
|
|
|
4
4
|
import Graphic from './graphic';
|
|
5
5
|
import Anchor from '../anchor';
|
|
6
6
|
import Rotatable from '../rotatable';
|
|
7
|
-
import classNames from 'classnames';
|
|
8
7
|
|
|
9
8
|
const StyledProtractor = styled('div')(() => ({
|
|
10
9
|
position: 'relative',
|
|
@@ -38,10 +37,10 @@ export class Protractor extends React.Component {
|
|
|
38
37
|
};
|
|
39
38
|
|
|
40
39
|
render() {
|
|
41
|
-
const { width,
|
|
40
|
+
const { width, startPosition } = this.props;
|
|
41
|
+
|
|
42
42
|
return (
|
|
43
43
|
<Rotatable
|
|
44
|
-
className={className}
|
|
45
44
|
startPosition={startPosition}
|
|
46
45
|
handle={[
|
|
47
46
|
{
|
|
@@ -57,8 +56,8 @@ export class Protractor extends React.Component {
|
|
|
57
56
|
<StyledProtractor style={{ width: `${width}px` }}>
|
|
58
57
|
<Graphic />
|
|
59
58
|
|
|
60
|
-
<StyledLeftAnchor className=
|
|
61
|
-
<StyledRightAnchor className=
|
|
59
|
+
<StyledLeftAnchor className="leftAnchor" />
|
|
60
|
+
<StyledRightAnchor className="rightAnchor" />
|
|
62
61
|
</StyledProtractor>
|
|
63
62
|
</Rotatable>
|
|
64
63
|
);
|
package/src/rotatable.jsx
CHANGED
|
@@ -50,7 +50,6 @@ export class Rotatable extends React.Component {
|
|
|
50
50
|
origin: PropTypes.string,
|
|
51
51
|
}),
|
|
52
52
|
),
|
|
53
|
-
className: PropTypes.string,
|
|
54
53
|
startPosition: PropTypes.shape({
|
|
55
54
|
left: PropTypes.number,
|
|
56
55
|
top: PropTypes.number,
|
|
@@ -262,7 +261,7 @@ export class Rotatable extends React.Component {
|
|
|
262
261
|
};
|
|
263
262
|
|
|
264
263
|
render() {
|
|
265
|
-
const { children, showAnchor
|
|
264
|
+
const { children, showAnchor } = this.props;
|
|
266
265
|
const { rotation, anchor, origin, translate, position } = this.state;
|
|
267
266
|
|
|
268
267
|
const t = translate ? `translate(${translate.x}px, ${translate.y}px)` : '';
|
|
@@ -276,7 +275,6 @@ export class Rotatable extends React.Component {
|
|
|
276
275
|
|
|
277
276
|
return (
|
|
278
277
|
<RotatableContainer
|
|
279
|
-
className={className}
|
|
280
278
|
style={style}
|
|
281
279
|
ref={(r) => (this.rotatable = r)}
|
|
282
280
|
onMouseDown={this.mouseDown}
|
package/src/ruler/index.jsx
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { styled } from '@mui/material/styles';
|
|
3
3
|
import Rotatable from '../rotatable';
|
|
4
|
-
import classNames from 'classnames';
|
|
5
4
|
import RulerGraphic from './graphic';
|
|
6
5
|
import PropTypes from 'prop-types';
|
|
7
6
|
import Anchor from '../anchor';
|
|
@@ -30,7 +29,6 @@ export class Ruler extends React.Component {
|
|
|
30
29
|
height: PropTypes.number,
|
|
31
30
|
units: PropTypes.number.isRequired,
|
|
32
31
|
measure: PropTypes.oneOf(['imperial', 'metric']).isRequired,
|
|
33
|
-
className: PropTypes.string,
|
|
34
32
|
startPosition: PropTypes.shape({
|
|
35
33
|
left: PropTypes.number.isRequired,
|
|
36
34
|
top: PropTypes.number.isRequired,
|
|
@@ -47,7 +45,7 @@ export class Ruler extends React.Component {
|
|
|
47
45
|
};
|
|
48
46
|
|
|
49
47
|
render() {
|
|
50
|
-
const { width, height, units, measure,
|
|
48
|
+
const { width, height, units, measure, startPosition, label, tickCount } = this.props;
|
|
51
49
|
|
|
52
50
|
const unit =
|
|
53
51
|
measure === 'imperial'
|
|
@@ -61,7 +59,6 @@ export class Ruler extends React.Component {
|
|
|
61
59
|
};
|
|
62
60
|
return (
|
|
63
61
|
<Rotatable
|
|
64
|
-
className={className}
|
|
65
62
|
startPosition={startPosition}
|
|
66
63
|
handle={[
|
|
67
64
|
{ class: 'leftAnchor', origin: 'bottom right' },
|
|
@@ -70,8 +67,8 @@ export class Ruler extends React.Component {
|
|
|
70
67
|
>
|
|
71
68
|
<StyledRuler style={{ width: `${width}px`, height: `${height}px` }}>
|
|
72
69
|
<RulerGraphic width={width} height={height} units={units} unit={unit} />
|
|
73
|
-
<StyledLeftAnchor className=
|
|
74
|
-
<StyledRightAnchor className=
|
|
70
|
+
<StyledLeftAnchor className="leftAnchor" />
|
|
71
|
+
<StyledRightAnchor className="rightAnchor" />
|
|
75
72
|
</StyledRuler>
|
|
76
73
|
</Rotatable>
|
|
77
74
|
);
|