@arbisoft/react-design-tool 1.0.17 → 1.0.19

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/dist/esm/index.js CHANGED
@@ -2765,7 +2765,7 @@ var OpacityPicker = function OpacityPicker(_ref) {
2765
2765
  src: IconOpacity
2766
2766
  })), /*#__PURE__*/React.createElement(StyledText, {
2767
2767
  fontFamily: fontFamily
2768
- }, varient === 'opacity' ? "".concat(value * 100, "%") : value), rightChild && rightChild), opacityPickerVisible && /*#__PURE__*/React.createElement("div", {
2768
+ }, varient === 'opacity' ? "".concat(value * 100, "%") : Math.round(value)), rightChild && rightChild), opacityPickerVisible && /*#__PURE__*/React.createElement("div", {
2769
2769
  style: {
2770
2770
  position: 'absolute',
2771
2771
  bottom: -50,
@@ -4202,31 +4202,35 @@ TextEditor.propTypes = propTypes$c;
4202
4202
 
4203
4203
  var EditableText = function EditableText(_ref) {
4204
4204
  var element = _ref.element,
4205
+ trRef = _ref.trRef,
4205
4206
  onClick = _ref.onClick,
4206
4207
  _onDragEnd = _ref.onDragEnd,
4207
4208
  onTransformEnd = _ref.onTransformEnd,
4208
4209
  id = _ref.id,
4209
4210
  onTransform = _ref.onTransform,
4210
4211
  onChangeTextContent = _ref.onChangeTextContent,
4211
- onChangeTextProperty = _ref.onChangeTextProperty,
4212
4212
  onDragMove = _ref.onDragMove;
4213
4213
  var textRef = useRef();
4214
4214
  var _useState = useState(element === null || element === void 0 ? void 0 : element.width),
4215
4215
  _useState2 = _slicedToArray(_useState, 2),
4216
4216
  textWidth = _useState2[0],
4217
4217
  setTextWidth = _useState2[1];
4218
- var _useState3 = useState(false),
4218
+ var _useState3 = useState(element === null || element === void 0 ? void 0 : element.fontSize),
4219
4219
  _useState4 = _slicedToArray(_useState3, 2),
4220
- isEditing = _useState4[0],
4221
- setIsEditing = _useState4[1];
4222
- var _useState5 = useState(element === null || element === void 0 ? void 0 : element.text),
4220
+ textFontSize = _useState4[0],
4221
+ setTextFontSize = _useState4[1];
4222
+ var _useState5 = useState(false),
4223
4223
  _useState6 = _slicedToArray(_useState5, 2),
4224
- text = _useState6[0],
4225
- setText = _useState6[1];
4226
- var _useState7 = useState(false),
4224
+ isEditing = _useState6[0],
4225
+ setIsEditing = _useState6[1];
4226
+ var _useState7 = useState(element === null || element === void 0 ? void 0 : element.text),
4227
4227
  _useState8 = _slicedToArray(_useState7, 2),
4228
- isFontLoaded = _useState8[0],
4229
- setIsFontLoaded = _useState8[1];
4228
+ text = _useState8[0],
4229
+ setText = _useState8[1];
4230
+ var _useState9 = useState(false),
4231
+ _useState10 = _slicedToArray(_useState9, 2),
4232
+ isFontLoaded = _useState10[0],
4233
+ setIsFontLoaded = _useState10[1];
4230
4234
  useEffect(function () {
4231
4235
  setIsFontLoaded(false);
4232
4236
  setTimeout(function () {
@@ -4236,23 +4240,49 @@ var EditableText = function EditableText(_ref) {
4236
4240
  useEffect(function () {
4237
4241
  setTextWidth(element === null || element === void 0 ? void 0 : element.width);
4238
4242
  setText(element === null || element === void 0 ? void 0 : element.text);
4243
+ setTextFontSize(element === null || element === void 0 ? void 0 : element.fontSize);
4239
4244
  }, [element]);
4240
4245
  var tranform = function tranform(e) {
4241
- var node = e.target;
4246
+ var transformer = trRef.current;
4247
+ var activeAnchor = transformer.getActiveAnchor();
4248
+ if (activeAnchor === 'middle-right' || activeAnchor === 'middle-left') {
4249
+ var node = e.target;
4250
+ var scaleX = sanitizeNumber(node.scaleX(), 1);
4251
+ var updatedWidth = sanitizeNumber(node.width() * scaleX, element.width);
4252
+ var updatedObject = _objectSpread2(_objectSpread2({}, node.attrs), {}, {
4253
+ width: updatedWidth,
4254
+ scaleX: 1,
4255
+ scaleY: 1
4256
+ });
4257
+ delete updatedObject['ref'];
4258
+ setTextWidth(updatedWidth);
4259
+ onTransform && onTransform(updatedObject);
4260
+ node.scaleX(1);
4261
+ node.scaleY(1);
4262
+ }
4263
+ };
4264
+ var handleTransformEnd = function handleTransformEnd(e) {
4265
+ var transformer = trRef.current;
4266
+ var activeAnchor = transformer.getActiveAnchor();
4267
+ if (activeAnchor === 'middle-right' || activeAnchor === 'middle-left') {
4268
+ onTransformEnd && onTransformEnd(e);
4269
+ return;
4270
+ }
4271
+ var node = textRef.current;
4272
+ var nodeAttrs = node.attrs;
4242
4273
  var scaleX = sanitizeNumber(node.scaleX(), 1);
4243
- var updatedWidth = sanitizeNumber(node.width() * scaleX, element.width);
4244
- var updatedObject = _objectSpread2(_objectSpread2({}, node.attrs), {}, {
4274
+ var newFontSize = nodeAttrs.fontSize * scaleX;
4275
+ var updatedWidth = sanitizeNumber(node.width() * scaleX, nodeAttrs.width);
4276
+ node.scaleX(1);
4277
+ node.scaleY(1);
4278
+ var updatedObject = _objectSpread2(_objectSpread2({}, nodeAttrs), {}, {
4245
4279
  width: updatedWidth,
4246
- scaleX: 1,
4247
- scaleY: 1
4280
+ fontSize: newFontSize
4248
4281
  });
4249
- delete updatedObject['ref'];
4282
+ setTextFontSize(newFontSize);
4250
4283
  setTextWidth(updatedWidth);
4284
+ delete updatedObject['ref'];
4251
4285
  onTransform && onTransform(updatedObject);
4252
- node.scaleX(1);
4253
- node.scaleY(1);
4254
- };
4255
- var transformEnd = function transformEnd(e) {
4256
4286
  onTransformEnd && onTransformEnd(e);
4257
4287
  };
4258
4288
  var handleTextDblClick = function handleTextDblClick() {
@@ -4268,7 +4298,7 @@ var EditableText = function EditableText(_ref) {
4268
4298
  var width = textRef === null || textRef === void 0 || (_textRef$current = textRef.current) === null || _textRef$current === void 0 ? void 0 : _textRef$current.getWidth();
4269
4299
  if (width) {
4270
4300
  setTextWidth(width);
4271
- onChangeTextProperty('width', width);
4301
+ // onChangeTextProperty('width', width);
4272
4302
  }
4273
4303
  // const scaleX = sanitizeNumber(node?.scaleX(), 1);
4274
4304
  // const updatedWidth = sanitizeNumber(node?.width() * scaleX, element?.width);
@@ -4285,6 +4315,7 @@ var EditableText = function EditableText(_ref) {
4285
4315
  fontVariant: element === null || element === void 0 ? void 0 : element.fontWeight,
4286
4316
  align: element === null || element === void 0 ? void 0 : element.textAlign,
4287
4317
  width: textWidth,
4318
+ fontSize: textFontSize,
4288
4319
  text: text,
4289
4320
  fill: element === null || element === void 0 ? void 0 : element.color,
4290
4321
  opacity: 0,
@@ -4299,6 +4330,7 @@ var EditableText = function EditableText(_ref) {
4299
4330
  fontVariant: element === null || element === void 0 ? void 0 : element.fontWeight,
4300
4331
  align: element === null || element === void 0 ? void 0 : element.textAlign,
4301
4332
  width: textWidth,
4333
+ fontSize: textFontSize,
4302
4334
  text: text,
4303
4335
  fill: element === null || element === void 0 ? void 0 : element.color,
4304
4336
  onClick: function onClick() {
@@ -4311,7 +4343,7 @@ var EditableText = function EditableText(_ref) {
4311
4343
  return _onDragEnd && _onDragEnd(e);
4312
4344
  },
4313
4345
  onTransformEnd: function onTransformEnd(e) {
4314
- transformEnd(e);
4346
+ handleTransformEnd(e);
4315
4347
  },
4316
4348
  onDragMove: onDragMove,
4317
4349
  onDblClick: handleTextDblClick,
@@ -4961,6 +4993,7 @@ var Editor = function Editor(_ref) {
4961
4993
  });
4962
4994
  case elementTypes.text:
4963
4995
  return /*#__PURE__*/React.createElement(EditableText, {
4996
+ trRef: transformerRef,
4964
4997
  key: el.id,
4965
4998
  id: el.id,
4966
4999
  element: el,
@@ -4975,8 +5008,7 @@ var Editor = function Editor(_ref) {
4975
5008
  handleDragEnd(e);
4976
5009
  },
4977
5010
  onDragMove: handleDragging,
4978
- onChangeTextContent: onChangeTextContent,
4979
- onChangeTextProperty: onChangeTextProperty
5011
+ onChangeTextContent: onChangeTextContent
4980
5012
  });
4981
5013
  default:
4982
5014
  return null;
@@ -5065,7 +5097,7 @@ var Editor = function Editor(_ref) {
5065
5097
  ref: transformerRef,
5066
5098
  onTransform: handleResizing,
5067
5099
  onTransformEnd: handleResizeEnd,
5068
- enabledAnchors: selectedElement !== null && selectedElement !== void 0 && selectedElement.draggable ? (selectedElement === null || selectedElement === void 0 ? void 0 : selectedElement.type) === (elementTypes === null || elementTypes === void 0 ? void 0 : elementTypes.text) ? ['middle-left', 'middle-right'] : ['top-left', 'top-right', 'bottom-left', 'bottom-right', 'middle-left', 'middle-right', 'top-center', 'bottom-center'] : [],
5100
+ enabledAnchors: selectedElement !== null && selectedElement !== void 0 && selectedElement.draggable ? (selectedElement === null || selectedElement === void 0 ? void 0 : selectedElement.type) === (elementTypes === null || elementTypes === void 0 ? void 0 : elementTypes.text) ? ['top-left', 'top-right', 'bottom-left', 'bottom-right', 'middle-left', 'middle-right'] : ['top-left', 'top-right', 'bottom-left', 'bottom-right', 'middle-left', 'middle-right', 'top-center', 'bottom-center'] : [],
5069
5101
  borderStroke: theme.color.primary,
5070
5102
  borderStrokeWidth: 2
5071
5103
  // add anchors
@@ -5080,7 +5112,9 @@ var Editor = function Editor(_ref) {
5080
5112
  ,
5081
5113
  boundBoxFunc: function boundBoxFunc(oldBox, newBox) {
5082
5114
  // limit resize
5083
- if (!(selectedElement !== null && selectedElement !== void 0 && selectedElement.draggable)) {
5115
+ if (!(selectedElement !== null && selectedElement !== void 0 && selectedElement.draggable) ||
5116
+ // Handle element flliping
5117
+ newBox.width < 1 || newBox.height < 1) {
5084
5118
  return oldBox;
5085
5119
  }
5086
5120
  return newBox;