@syncfusion/ej2-image-editor 24.1.43 → 24.1.44

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.
Files changed (52) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +1 -1
  3. package/dist/ej2-image-editor.umd.min.js +2 -2
  4. package/dist/ej2-image-editor.umd.min.js.map +1 -1
  5. package/dist/es6/ej2-image-editor.es2015.js +45 -21
  6. package/dist/es6/ej2-image-editor.es2015.js.map +1 -1
  7. package/dist/es6/ej2-image-editor.es5.js +45 -21
  8. package/dist/es6/ej2-image-editor.es5.js.map +1 -1
  9. package/dist/global/ej2-image-editor.min.js +2 -2
  10. package/dist/global/ej2-image-editor.min.js.map +1 -1
  11. package/dist/global/index.d.ts +1 -1
  12. package/package.json +7 -7
  13. package/src/image-editor/action/draw.js +19 -16
  14. package/src/image-editor/action/selection.js +8 -0
  15. package/src/image-editor/action/transform.js +4 -4
  16. package/src/image-editor/action/undo-redo.js +11 -1
  17. package/src/image-editor/renderer/toolbar.js +3 -0
  18. package/styles/bootstrap-dark.css +9 -2
  19. package/styles/bootstrap.css +9 -2
  20. package/styles/bootstrap4.css +9 -2
  21. package/styles/bootstrap5-dark.css +9 -2
  22. package/styles/bootstrap5.css +9 -2
  23. package/styles/fabric-dark.css +9 -2
  24. package/styles/fabric.css +9 -2
  25. package/styles/fluent-dark.css +9 -2
  26. package/styles/fluent.css +9 -2
  27. package/styles/highcontrast-light.css +9 -2
  28. package/styles/highcontrast.css +9 -2
  29. package/styles/image-editor/_layout.scss +9 -6
  30. package/styles/image-editor/bootstrap-dark.css +9 -2
  31. package/styles/image-editor/bootstrap.css +9 -2
  32. package/styles/image-editor/bootstrap4.css +9 -2
  33. package/styles/image-editor/bootstrap5-dark.css +9 -2
  34. package/styles/image-editor/bootstrap5.css +9 -2
  35. package/styles/image-editor/fabric-dark.css +9 -2
  36. package/styles/image-editor/fabric.css +9 -2
  37. package/styles/image-editor/fluent-dark.css +9 -2
  38. package/styles/image-editor/fluent.css +9 -2
  39. package/styles/image-editor/highcontrast-light.css +9 -2
  40. package/styles/image-editor/highcontrast.css +9 -2
  41. package/styles/image-editor/material-dark.css +9 -2
  42. package/styles/image-editor/material.css +9 -2
  43. package/styles/image-editor/material3-dark.css +7 -2
  44. package/styles/image-editor/material3.css +7 -2
  45. package/styles/image-editor/tailwind-dark.css +9 -2
  46. package/styles/image-editor/tailwind.css +9 -2
  47. package/styles/material-dark.css +9 -2
  48. package/styles/material.css +9 -2
  49. package/styles/material3-dark.css +7 -2
  50. package/styles/material3.css +7 -2
  51. package/styles/tailwind-dark.css +9 -2
  52. package/styles/tailwind.css +9 -2
@@ -1096,7 +1096,7 @@ class Draw {
1096
1096
  this.updateCanvas();
1097
1097
  break;
1098
1098
  case 'performCancel':
1099
- this.performCancel(args.value['isContextualToolbar']);
1099
+ this.performCancel(args.value['isContextualToolbar'], args.value['isUndoRedo']);
1100
1100
  break;
1101
1101
  case 'updateFlipPan':
1102
1102
  this.updateFlipPan(args.value['tempSelectionObj']);
@@ -1588,13 +1588,11 @@ class Draw {
1588
1588
  if (destTop < 0) {
1589
1589
  height += destTop;
1590
1590
  }
1591
- if (parent.currObjType.shape.toLowerCase() !== 'crop-square' && parent.currObjType.shape.toLowerCase() !== 'crop-circle') {
1592
- if (destLeft + destWidth > parent.lowerCanvas.width) {
1593
- width -= (destLeft + destWidth - parent.lowerCanvas.width);
1594
- }
1595
- if (destTop + destHeight > parent.lowerCanvas.height) {
1596
- height -= (destTop + destHeight - parent.lowerCanvas.height);
1597
- }
1591
+ if (destLeft + destWidth > parent.lowerCanvas.width) {
1592
+ width -= (destLeft + destWidth - parent.lowerCanvas.width);
1593
+ }
1594
+ if (destTop + destHeight > parent.lowerCanvas.height) {
1595
+ height -= (destTop + destHeight - parent.lowerCanvas.height);
1598
1596
  }
1599
1597
  }
1600
1598
  switch (parent.currObjType.shape.toLowerCase()) {
@@ -3216,7 +3214,7 @@ class Draw {
3216
3214
  parent.img.destHeight = maxDimension.width;
3217
3215
  }
3218
3216
  parent.img.destLeft = (parent.lowerCanvas.clientWidth - maxDimension.height) / 2;
3219
- parent.img.destTop = (parent.lowerCanvas.clientHeight - maxDimension.width + 1) / 2;
3217
+ parent.img.destTop = (parent.lowerCanvas.clientHeight - maxDimension.width) / 2;
3220
3218
  parent.img.destWidth = maxDimension.height;
3221
3219
  parent.img.destHeight = maxDimension.width;
3222
3220
  }
@@ -3232,7 +3230,12 @@ class Draw {
3232
3230
  parent.img.destHeight = maxDimension.height;
3233
3231
  }
3234
3232
  parent.img.destLeft = (parent.lowerCanvas.clientWidth - maxDimension.width) / 2;
3235
- parent.img.destTop = (parent.lowerCanvas.clientHeight - maxDimension.height + 1) / 2;
3233
+ if (degree === 0) {
3234
+ parent.img.destTop = (parent.lowerCanvas.clientHeight - maxDimension.height + 1) / 2;
3235
+ }
3236
+ else {
3237
+ parent.img.destTop = (parent.lowerCanvas.clientHeight - maxDimension.height) / 2;
3238
+ }
3236
3239
  parent.img.destWidth = maxDimension.width;
3237
3240
  parent.img.destHeight = maxDimension.height;
3238
3241
  }
@@ -3546,14 +3549,14 @@ class Draw {
3546
3549
  parent.cancelCropSelection = null;
3547
3550
  }
3548
3551
  }
3549
- performCancel(isContextualToolbar) {
3552
+ performCancel(isContextualToolbar, isUndoRedo) {
3550
3553
  const parent = this.parent;
3551
3554
  const straightenObj = { bool: parent.isStraightening };
3552
3555
  isContextualToolbar = isContextualToolbar ? isContextualToolbar : false;
3553
3556
  const obj = { bool: false };
3554
3557
  parent.allowDownScale = true;
3555
3558
  parent.notify('selection', { prop: 'getFreehandDrawEditing', onPropertyChange: false, value: { obj: obj } });
3556
- if (JSON.stringify(parent.frameObj) !== JSON.stringify(parent.tempFrameObj)) {
3559
+ if (isNullOrUndefined(isUndoRedo) && JSON.stringify(parent.frameObj) !== JSON.stringify(parent.tempFrameObj)) {
3557
3560
  extend(parent.frameObj, parent.tempFrameObj);
3558
3561
  this.renderImage(null, null, true);
3559
3562
  }
@@ -4316,16 +4319,16 @@ class Draw {
4316
4319
  setClientTransDim(isPreventDimension) {
4317
4320
  const parent = this.parent;
4318
4321
  if (parent.transform.degree % 90 === 0 && parent.transform.degree % 180 !== 0) {
4319
- parent.img.destLeft = (parent.lowerCanvas.width - parent.img.destHeight) / 2;
4320
- parent.img.destTop = (parent.lowerCanvas.height - parent.img.destWidth) / 2;
4322
+ parent.img.destLeft = (parent.lowerCanvas.clientWidth - parent.img.destHeight) / 2;
4323
+ parent.img.destTop = (parent.lowerCanvas.clientHeight - parent.img.destWidth + 1) / 2;
4321
4324
  const temp = parent.img.destWidth;
4322
4325
  parent.img.destWidth = parent.img.destHeight;
4323
4326
  parent.img.destHeight = temp;
4324
4327
  }
4325
4328
  else {
4326
4329
  if (isNullOrUndefined(isPreventDimension)) {
4327
- parent.img.destLeft = (parent.lowerCanvas.width - parent.img.destWidth) / 2;
4328
- parent.img.destTop = (parent.lowerCanvas.height - parent.img.destHeight) / 2;
4330
+ parent.img.destLeft = (parent.lowerCanvas.clientWidth - parent.img.destWidth) / 2;
4331
+ parent.img.destTop = (parent.lowerCanvas.clientHeight - parent.img.destHeight + 1) / 2;
4329
4332
  }
4330
4333
  }
4331
4334
  }
@@ -12613,7 +12616,15 @@ class Selection {
12613
12616
  this.getCurrentFlipState();
12614
12617
  }
12615
12618
  else {
12619
+ const totalPannedInternalPoint = extend({}, parent.panPoint.totalPannedInternalPoint, {}, true);
12620
+ const destPoints = { startX: parent.img.destLeft, startY: parent.img.destTop, width: parent.img.destWidth,
12621
+ height: parent.img.destHeight };
12616
12622
  parent.notify('draw', { prop: 'callUpdateCurrTransState', onPropertyChange: false });
12623
+ parent.panPoint.totalPannedInternalPoint = totalPannedInternalPoint;
12624
+ parent.img.destLeft = destPoints.startX;
12625
+ parent.img.destTop = destPoints.startY;
12626
+ parent.img.destWidth = destPoints.width;
12627
+ parent.img.destHeight = destPoints.height;
12617
12628
  parent.notify('freehand-draw', { prop: 'freehandRedraw', onPropertyChange: false,
12618
12629
  value: { context: this.lowerContext, points: null } });
12619
12630
  }
@@ -17814,11 +17825,11 @@ class Transform {
17814
17825
  if (parent.img.destTop > 0) {
17815
17826
  parent.img.destTop = 0;
17816
17827
  }
17817
- if (parent.img.destLeft + maxDimension.width < parent.lowerCanvas.width) {
17818
- parent.img.destLeft = parent.lowerCanvas.width - parent.img.destWidth;
17828
+ if (parent.img.destLeft + maxDimension.width < parent.lowerCanvas.clientWidth) {
17829
+ parent.img.destLeft = parent.lowerCanvas.clientWidth - parent.img.destWidth;
17819
17830
  }
17820
- if (parent.img.destTop + maxDimension.height < parent.lowerCanvas.height) {
17821
- parent.img.destTop = parent.lowerCanvas.height - parent.img.destHeight;
17831
+ if (parent.img.destTop + maxDimension.height < parent.lowerCanvas.clientHeight) {
17832
+ parent.img.destTop = parent.lowerCanvas.clientHeight - parent.img.destHeight;
17822
17833
  }
17823
17834
  }
17824
17835
  return maxDimension;
@@ -19431,7 +19442,7 @@ class UndoRedo {
19431
19442
  this.tempCurrSelPoint = extend({}, parent.currSelectionPoint, {}, true);
19432
19443
  parent.currSelectionPoint = null;
19433
19444
  }
19434
- parent.notify('draw', { prop: 'performCancel', value: { isContextualToolbar: null } });
19445
+ parent.notify('draw', { prop: 'performCancel', value: { isContextualToolbar: null, isUndoRedo: true } });
19435
19446
  parent.currObjType.isActiveObj = false;
19436
19447
  if (parent.transform.straighten !== 0) {
19437
19448
  parent.notify('draw', { prop: 'setStraightenActObj', value: { activeObj: null } });
@@ -19994,6 +20005,16 @@ class UndoRedo {
19994
20005
  this.parent.notify('draw', { prop: 'getArrowDimension', onPropertyChange: false, value: { obj: arrowObj } });
19995
20006
  const tempArrowObj = extend({}, arrowObj['arrowDimension'], {}, true);
19996
20007
  if (parent.transform.zoomFactor > 0 && (obj.length > 0 || point.length > 0)) {
20008
+ if (obj.length > 0) {
20009
+ for (let i = 0; i < obj.length; i++) {
20010
+ if (obj[i].currIndex) {
20011
+ continue;
20012
+ }
20013
+ else {
20014
+ obj[i].currIndex = 'shape_' + (i + 1);
20015
+ }
20016
+ }
20017
+ }
19997
20018
  parent.objColl = obj;
19998
20019
  parent.pointColl = point;
19999
20020
  const isUndoRedo = parent.isUndoRedo;
@@ -27461,6 +27482,9 @@ class ToolbarModule {
27461
27482
  qtArea.style.top = point.startY - (height + (height / 1.5)) + 'px';
27462
27483
  }
27463
27484
  }
27485
+ if (parseFloat(qtArea.style.top) < 0) {
27486
+ qtArea.style.top = '0px';
27487
+ }
27464
27488
  }
27465
27489
  }
27466
27490
  refreshDropDownBtn(isDisabled) {