@syncfusion/ej2-image-editor 23.1.41 → 23.2.4

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 (67) hide show
  1. package/CHANGELOG.md +12 -2
  2. package/dist/ej2-image-editor.umd.min.js +2 -2
  3. package/dist/ej2-image-editor.umd.min.js.map +1 -1
  4. package/dist/es6/ej2-image-editor.es2015.js +305 -163
  5. package/dist/es6/ej2-image-editor.es2015.js.map +1 -1
  6. package/dist/es6/ej2-image-editor.es5.js +303 -161
  7. package/dist/es6/ej2-image-editor.es5.js.map +1 -1
  8. package/dist/global/ej2-image-editor.min.js +2 -2
  9. package/dist/global/ej2-image-editor.min.js.map +1 -1
  10. package/dist/global/index.d.ts +1 -1
  11. package/package.json +11 -11
  12. package/src/image-editor/action/draw.js +177 -133
  13. package/src/image-editor/action/selection.js +37 -1
  14. package/src/image-editor/action/shape.d.ts +1 -0
  15. package/src/image-editor/action/shape.js +14 -0
  16. package/src/image-editor/action/transform.js +3 -0
  17. package/src/image-editor/base/image-editor.js +3 -1
  18. package/src/image-editor/renderer/toolbar.js +70 -27
  19. package/styles/bootstrap-dark.css +14 -3
  20. package/styles/bootstrap.css +14 -3
  21. package/styles/bootstrap4.css +14 -3
  22. package/styles/bootstrap5-dark.css +14 -3
  23. package/styles/bootstrap5.css +14 -3
  24. package/styles/fabric-dark.css +14 -3
  25. package/styles/fabric.css +14 -3
  26. package/styles/fluent-dark.css +14 -3
  27. package/styles/fluent.css +14 -3
  28. package/styles/highcontrast-light.css +14 -3
  29. package/styles/highcontrast.css +14 -3
  30. package/styles/image-editor/_bootstrap-dark-definition.scss +4 -0
  31. package/styles/image-editor/_bootstrap-definition.scss +4 -0
  32. package/styles/image-editor/_bootstrap4-definition.scss +4 -0
  33. package/styles/image-editor/_bootstrap5-definition.scss +4 -0
  34. package/styles/image-editor/_fabric-dark-definition.scss +4 -0
  35. package/styles/image-editor/_fabric-definition.scss +4 -0
  36. package/styles/image-editor/_fluent-definition.scss +4 -0
  37. package/styles/image-editor/_fusionnew-definition.scss +4 -0
  38. package/styles/image-editor/_highcontrast-definition.scss +4 -0
  39. package/styles/image-editor/_highcontrast-light-definition.scss +4 -0
  40. package/styles/image-editor/_layout.scss +21 -7
  41. package/styles/image-editor/_material-dark-definition.scss +4 -0
  42. package/styles/image-editor/_material-definition.scss +4 -0
  43. package/styles/image-editor/_material3-definition.scss +4 -0
  44. package/styles/image-editor/_tailwind-definition.scss +4 -0
  45. package/styles/image-editor/bootstrap-dark.css +14 -3
  46. package/styles/image-editor/bootstrap.css +14 -3
  47. package/styles/image-editor/bootstrap4.css +14 -3
  48. package/styles/image-editor/bootstrap5-dark.css +14 -3
  49. package/styles/image-editor/bootstrap5.css +14 -3
  50. package/styles/image-editor/fabric-dark.css +14 -3
  51. package/styles/image-editor/fabric.css +14 -3
  52. package/styles/image-editor/fluent-dark.css +14 -3
  53. package/styles/image-editor/fluent.css +14 -3
  54. package/styles/image-editor/highcontrast-light.css +14 -3
  55. package/styles/image-editor/highcontrast.css +14 -3
  56. package/styles/image-editor/material-dark.css +14 -3
  57. package/styles/image-editor/material.css +14 -3
  58. package/styles/image-editor/material3-dark.css +19 -4
  59. package/styles/image-editor/material3.css +19 -4
  60. package/styles/image-editor/tailwind-dark.css +14 -3
  61. package/styles/image-editor/tailwind.css +14 -3
  62. package/styles/material-dark.css +14 -3
  63. package/styles/material.css +14 -3
  64. package/styles/material3-dark.css +19 -4
  65. package/styles/material3.css +19 -4
  66. package/styles/tailwind-dark.css +14 -3
  67. package/styles/tailwind.css +14 -3
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * filename: index.d.ts
3
- * version : 23.1.41
3
+ * version : 23.2.4
4
4
  * Copyright Syncfusion Inc. 2001 - 2023. All rights reserved.
5
5
  * Use of this code is subject to the terms of our license.
6
6
  * A copy of the current license can be obtained at any time by e-mailing
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "_from": "@syncfusion/ej2-image-editor@*",
3
- "_id": "@syncfusion/ej2-image-editor@23.1.39",
3
+ "_id": "@syncfusion/ej2-image-editor@23.1.43",
4
4
  "_inBundle": false,
5
- "_integrity": "sha512-yXE6senui8QfJwD5w3m9xCNYfdR2mauymav0ICQwvlSfxaBxpCmLpLFCKmC9IfYmpHNL/UTgAImhwbH9Wv1J4w==",
5
+ "_integrity": "sha512-5GOJdoi+vGksohDCzagLur1GQpWE6ZDNsm62D4TdX6aAltWilC1Z3BgWgOt4ZnJQka37BV8iZxb0krr05wPv0Q==",
6
6
  "_location": "/@syncfusion/ej2-image-editor",
7
7
  "_phantomChildren": {},
8
8
  "_requested": {
@@ -23,8 +23,8 @@
23
23
  "/@syncfusion/ej2-react-image-editor",
24
24
  "/@syncfusion/ej2-vue-image-editor"
25
25
  ],
26
- "_resolved": "https://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-image-editor/-/ej2-image-editor-23.1.39.tgz",
27
- "_shasum": "0054fb7af397eb92d72f5984b54deb791519fb03",
26
+ "_resolved": "https://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-image-editor/-/ej2-image-editor-23.1.43.tgz",
27
+ "_shasum": "6bbaed2aa3e4311d0b039d348c6b4c4f40d011a6",
28
28
  "_spec": "@syncfusion/ej2-image-editor@*",
29
29
  "_where": "/jenkins/workspace/elease-automation_release_23.1.1/packages/included",
30
30
  "author": {
@@ -32,12 +32,12 @@
32
32
  },
33
33
  "bundleDependencies": false,
34
34
  "dependencies": {
35
- "@syncfusion/ej2-base": "~23.1.41",
36
- "@syncfusion/ej2-buttons": "~23.1.41",
37
- "@syncfusion/ej2-inputs": "~23.1.40",
38
- "@syncfusion/ej2-navigations": "~23.1.41",
39
- "@syncfusion/ej2-popups": "~23.1.38",
40
- "@syncfusion/ej2-splitbuttons": "~23.1.41"
35
+ "@syncfusion/ej2-base": "~23.2.4",
36
+ "@syncfusion/ej2-buttons": "~23.2.4",
37
+ "@syncfusion/ej2-inputs": "~23.2.4",
38
+ "@syncfusion/ej2-navigations": "~23.2.4",
39
+ "@syncfusion/ej2-popups": "~23.2.4",
40
+ "@syncfusion/ej2-splitbuttons": "~23.2.4"
41
41
  },
42
42
  "deprecated": false,
43
43
  "description": "Essential JS 2 ImageEditor",
@@ -67,7 +67,7 @@
67
67
  "url": "https://github.com/syncfusion/ej2-javascript-ui-controls/tree/master/controls/imageeditor"
68
68
  },
69
69
  "typings": "index.d.ts",
70
- "version": "23.1.41",
70
+ "version": "23.2.4",
71
71
  "sideEffects": false,
72
72
  "homepage": "https://www.syncfusion.com/javascript-ui-controls"
73
73
  }
@@ -1592,6 +1592,7 @@ var Draw = /** @class */ (function () {
1592
1592
  };
1593
1593
  Draw.prototype.shapeImage = function (canvasDraw) {
1594
1594
  var parent = this.parent;
1595
+ var actObj = extend({}, parent.activeObj);
1595
1596
  var ctx = parent.activeObj.imageCanvas.getContext('2d');
1596
1597
  if (canvasDraw === this.lowerContext && this.isImageApply) {
1597
1598
  var dimObj = { width: 0, height: 0 };
@@ -1614,41 +1615,17 @@ var Draw = /** @class */ (function () {
1614
1615
  parent.activeObj.flipObjColl = [];
1615
1616
  parent.activeObj.shapeFlip = '';
1616
1617
  }
1617
- for (var j = 0, len = parent.activeObj.flipObjColl.length; j < len; j++) {
1618
- if (parent.activeObj.flipObjColl[j].toLowerCase() === 'horizontal') {
1619
- canvasDraw.translate(canvasDraw.canvas.width, 0);
1620
- canvasDraw.scale(-1, 1);
1621
- parent.activeObj.activePoint = this.updateActPoint('horizontal', canvasDraw);
1622
- }
1623
- else if (parent.activeObj.flipObjColl[j].toLowerCase() === 'vertical') {
1624
- canvasDraw.translate(0, canvasDraw.canvas.height);
1625
- canvasDraw.scale(1, -1);
1626
- parent.activeObj.activePoint = this.updateActPoint('vertical', canvasDraw);
1627
- }
1628
- }
1629
1618
  imgPoint.startX = ((parent.activeObj.activePoint.width - imgPoint.width) / 2) + parent.activeObj.activePoint.startX;
1630
1619
  imgPoint.startY = ((parent.activeObj.activePoint.height - imgPoint.height) / 2) + parent.activeObj.activePoint.startY;
1631
1620
  var temp = canvasDraw.globalAlpha;
1632
1621
  canvasDraw.globalAlpha = parent.activeObj.imageTransparency;
1633
- if (parent.activeObj.shapeDegree !== parent.transform.degree) {
1622
+ if (actObj.rotateFlipColl && actObj.rotateFlipColl.length > 0) {
1634
1623
  this.rotateImage(canvasDraw);
1635
1624
  }
1636
1625
  else {
1637
1626
  canvasDraw.drawImage(parent.activeObj.imageCanvas, imgPoint.startX, imgPoint.startY, imgPoint.width, imgPoint.height);
1638
1627
  }
1639
1628
  canvasDraw.globalAlpha = temp;
1640
- for (var k = 0, len = parent.activeObj.flipObjColl.length; k < len; k++) {
1641
- if (parent.activeObj.flipObjColl[k].toLowerCase() === 'horizontal') {
1642
- canvasDraw.translate(canvasDraw.canvas.width, 0);
1643
- canvasDraw.scale(-1, 1);
1644
- parent.activeObj.activePoint = this.updateActPoint('horizontal', canvasDraw);
1645
- }
1646
- else if (parent.activeObj.flipObjColl[k].toLowerCase() === 'vertical') {
1647
- canvasDraw.translate(0, canvasDraw.canvas.height);
1648
- canvasDraw.scale(1, -1);
1649
- parent.activeObj.activePoint = this.updateActPoint('vertical', canvasDraw);
1650
- }
1651
- }
1652
1629
  parent.currObjType.isText = false;
1653
1630
  };
1654
1631
  Draw.prototype.shapeText = function (canvasDraw) {
@@ -1656,6 +1633,7 @@ var Draw = /** @class */ (function () {
1656
1633
  canvasDraw.filter = 'none';
1657
1634
  var parent = this.parent;
1658
1635
  var actPoint = parent.activeObj.activePoint;
1636
+ var actObj = extend({}, parent.activeObj);
1659
1637
  var rows = parent.activeObj.keyHistory.split('\n');
1660
1638
  var height = parent.activeObj.textSettings.fontSize + parent.activeObj.textSettings.fontSize * 0.25;
1661
1639
  var lineHeight = ((height * rows.length) - (parent.activeObj.textSettings.fontSize * rows.length)) / rows.length;
@@ -1695,36 +1673,12 @@ var Draw = /** @class */ (function () {
1695
1673
  parent.activeObj.flipObjColl = [];
1696
1674
  parent.activeObj.shapeFlip = '';
1697
1675
  }
1698
- for (var j = 0, len = parent.activeObj.flipObjColl.length; j < len; j++) {
1699
- if (parent.activeObj.flipObjColl[j].toLowerCase() === 'horizontal') {
1700
- canvasDraw.translate(canvasDraw.canvas.width, 0);
1701
- canvasDraw.scale(-1, 1);
1702
- actPoint = this.updateActPoint('horizontal', canvasDraw);
1703
- }
1704
- else if (parent.activeObj.flipObjColl[j].toLowerCase() === 'vertical') {
1705
- canvasDraw.translate(0, canvasDraw.canvas.height);
1706
- canvasDraw.scale(1, -1);
1707
- actPoint = this.updateActPoint('vertical', canvasDraw);
1708
- }
1709
- }
1710
- if (parent.activeObj.shapeDegree !== parent.transform.degree) {
1676
+ if (actObj.rotateFlipColl && actObj.rotateFlipColl.length > 0) {
1711
1677
  this.rotateText(canvasDraw);
1712
1678
  }
1713
1679
  else {
1714
1680
  canvasDraw.fillText(text, actPoint.startX + parent.activeObj.textSettings.fontSize * 0.1, actPoint.startY + yPoint);
1715
1681
  }
1716
- for (var k = 0, len = parent.activeObj.flipObjColl.length; k < len; k++) {
1717
- if (parent.activeObj.flipObjColl[k].toLowerCase() === 'horizontal') {
1718
- canvasDraw.translate(canvasDraw.canvas.width, 0);
1719
- canvasDraw.scale(-1, 1);
1720
- actPoint = this.updateActPoint('horizontal', canvasDraw);
1721
- }
1722
- else if (parent.activeObj.flipObjColl[k].toLowerCase() === 'vertical') {
1723
- canvasDraw.translate(0, canvasDraw.canvas.height);
1724
- canvasDraw.scale(1, -1);
1725
- actPoint = this.updateActPoint('vertical', canvasDraw);
1726
- }
1727
- }
1728
1682
  }
1729
1683
  canvasDraw.filter = filter;
1730
1684
  parent.currObjType.isText = false;
@@ -1764,6 +1718,8 @@ var Draw = /** @class */ (function () {
1764
1718
  Draw.prototype.rotateImage = function (canvasDraw) {
1765
1719
  var parent = this.parent;
1766
1720
  var degree;
1721
+ var actObj = parent.activeObj;
1722
+ var tempActiveObj = extend({}, parent.activeObj, null, true);
1767
1723
  if (parent.activeObj.shapeDegree === 0) {
1768
1724
  degree = parent.transform.degree;
1769
1725
  }
@@ -1784,49 +1740,91 @@ var Draw = /** @class */ (function () {
1784
1740
  imgPoint.startY = parent.activeObj.activePoint.startY;
1785
1741
  var startX = imgPoint.startX;
1786
1742
  var startY = imgPoint.startY;
1787
- if (degree % 360 === 0 && (parent.transform.degree !== -360 || parent.transform.currFlipState === '')) {
1788
- canvasDraw.drawImage(parent.activeObj.imageCanvas, imgPoint.startX, imgPoint.startY, imgPoint.width, imgPoint.height);
1789
- }
1790
- else if (degree % 90 === 0 && degree % 180 !== 0) {
1791
- canvasDraw.translate(parent.lowerCanvas.width / 2, parent.lowerCanvas.height / 2);
1792
- canvasDraw.rotate(Math.PI / 180 * degree);
1793
- canvasDraw.translate(-parent.lowerCanvas.height / 2, -parent.lowerCanvas.width / 2);
1794
- if (degree % 90 === 0 && degree % 270 !== 0) {
1795
- startY = parent.lowerCanvas.width - (parent.activeObj.activePoint.startX + parent.activeObj.activePoint.width);
1796
- startY += ((parent.activeObj.activePoint.width - imgPoint.height) / 2);
1797
- startX = imgPoint.startY;
1798
- }
1799
- else if (degree % 270 === 0) {
1800
- startX = parent.lowerCanvas.height - (parent.activeObj.activePoint.startY + parent.activeObj.activePoint.height);
1801
- startX += ((parent.activeObj.activePoint.height - imgPoint.width) / 2);
1802
- startY = imgPoint.startX;
1803
- }
1804
- canvasDraw.drawImage(parent.activeObj.imageCanvas, startX, startY, imgPoint.width, imgPoint.height);
1805
- canvasDraw.translate(parent.lowerCanvas.height / 2, parent.lowerCanvas.width / 2);
1806
- canvasDraw.rotate(Math.PI / 180 * -degree);
1807
- canvasDraw.translate(-parent.lowerCanvas.width / 2, -parent.lowerCanvas.height / 2);
1743
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
1744
+ var tempDegree;
1745
+ var tempColl = [];
1746
+ canvasDraw.save();
1747
+ for (var i = 0, len = actObj.rotateFlipColl.length; i < len; i++) {
1748
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
1749
+ var coll = actObj.rotateFlipColl[i];
1750
+ tempColl.push(coll);
1751
+ if (typeof (coll) === 'number') {
1752
+ if (actObj.shapeDegree === 0) {
1753
+ tempDegree = coll;
1754
+ }
1755
+ else {
1756
+ tempDegree = coll - actObj.shapeDegree;
1757
+ }
1758
+ if (tempDegree === -450) {
1759
+ tempDegree = -90;
1760
+ }
1761
+ if (tempDegree < 0) {
1762
+ tempDegree = 360 + tempDegree;
1763
+ }
1764
+ imgPoint.width = tempDegree % 90 === 0 && tempDegree % 180 !== 0 ? actObj.activePoint.height : actObj.activePoint.width;
1765
+ imgPoint.height = tempDegree % 90 === 0 && tempDegree % 180 !== 0 ? actObj.activePoint.width :
1766
+ actObj.activePoint.height;
1767
+ canvasDraw.translate(canvasDraw.canvas.width / 2, canvasDraw.canvas.height / 2);
1768
+ canvasDraw.rotate(Math.PI / 180 * coll);
1769
+ canvasDraw.translate(-canvasDraw.canvas.height / 2, -canvasDraw.canvas.width / 2);
1770
+ if (tempDegree % 90 === 0 && tempDegree % 270 !== 0) {
1771
+ startY = canvasDraw.canvas.width - (actObj.activePoint.startX + actObj.activePoint.width);
1772
+ startY += ((actObj.activePoint.width - imgPoint.height) / 2);
1773
+ startX = imgPoint.startY;
1774
+ }
1775
+ else if (tempDegree % 270 === 0) {
1776
+ startX = canvasDraw.canvas.height - (actObj.activePoint.startY + actObj.activePoint.height);
1777
+ startX += ((actObj.activePoint.height - imgPoint.width) / 2);
1778
+ startY = imgPoint.startX;
1779
+ }
1780
+ imgPoint.startX = startX;
1781
+ imgPoint.startY = startY;
1782
+ actObj.activePoint.startX = startX;
1783
+ actObj.activePoint.startY = startY;
1784
+ actObj.activePoint.endX = actObj.activePoint.startX + imgPoint.width;
1785
+ actObj.activePoint.endY = actObj.activePoint.startY + imgPoint.height;
1786
+ actObj = this.updateWidthHeight(actObj);
1787
+ }
1788
+ else {
1789
+ if (coll === 'horizontal' && degree % 90 === 0 && degree % 180 !== 0) {
1790
+ coll = 'vertical';
1791
+ }
1792
+ else if (coll === 'vertical' && degree % 90 === 0 && degree % 180 !== 0) {
1793
+ coll = 'horizontal';
1794
+ }
1795
+ if (coll === 'horizontal') {
1796
+ canvasDraw.translate(canvasDraw.canvas.width, 0);
1797
+ canvasDraw.scale(-1, 1);
1798
+ actObj.activePoint = this.updateActPoint('horizontal', canvasDraw);
1799
+ }
1800
+ else if (coll === 'vertical') {
1801
+ canvasDraw.translate(0, canvasDraw.canvas.height);
1802
+ canvasDraw.scale(1, -1);
1803
+ actObj.activePoint = this.updateActPoint('vertical', canvasDraw);
1804
+ }
1805
+ imgPoint.startX = actObj.activePoint.startX;
1806
+ imgPoint.startY = actObj.activePoint.startY;
1807
+ }
1808
+ imgPoint.startX = actObj.activePoint.startX;
1809
+ imgPoint.startY = actObj.activePoint.startY;
1810
+ startX = imgPoint.startX;
1811
+ startY = imgPoint.startY;
1808
1812
  }
1809
- else {
1810
- canvasDraw.translate(parent.lowerCanvas.width / 2, parent.lowerCanvas.height / 2);
1811
- canvasDraw.rotate(Math.PI / 180 * degree);
1812
- startX = parent.lowerCanvas.width - (imgPoint.startX + imgPoint.width);
1813
- startY = parent.lowerCanvas.height - (imgPoint.startY + imgPoint.height);
1814
- canvasDraw.translate(-parent.lowerCanvas.width / 2, -parent.lowerCanvas.height / 2);
1815
- canvasDraw.drawImage(parent.activeObj.imageCanvas, startX, startY, imgPoint.width, imgPoint.height);
1816
- canvasDraw.translate(parent.lowerCanvas.width / 2, parent.lowerCanvas.height / 2);
1817
- canvasDraw.rotate(Math.PI / 180 * -degree);
1818
- canvasDraw.translate(-parent.lowerCanvas.width / 2, -parent.lowerCanvas.height / 2);
1813
+ if (actObj.rotatedAngle !== 0) {
1814
+ parent.notify('shape', { prop: 'setPointCollForShapeRotation', onPropertyChange: false, value: { obj: actObj } });
1819
1815
  }
1816
+ canvasDraw.drawImage(actObj.imageCanvas, imgPoint.startX, imgPoint.startY, imgPoint.width, imgPoint.height);
1817
+ canvasDraw.restore();
1818
+ parent.activeObj = tempActiveObj;
1820
1819
  if (parent.transform.degree === 360 || parent.transform.degree === -360) {
1821
1820
  parent.transform.degree = 0;
1822
1821
  }
1823
1822
  };
1824
1823
  Draw.prototype.rotateText = function (canvasDraw) {
1825
1824
  var parent = this.parent;
1826
- var startX = parent.activeObj.activePoint.startX;
1827
- var startY = parent.activeObj.activePoint.startY;
1828
1825
  var degree;
1829
- var actPoint = parent.activeObj.activePoint;
1826
+ var actObj = parent.activeObj;
1827
+ var tempActiveObj = extend({}, parent.activeObj, null, true);
1830
1828
  if (parent.activeObj.shapeDegree === 0) {
1831
1829
  degree = parent.transform.degree;
1832
1830
  }
@@ -1839,45 +1837,89 @@ var Draw = /** @class */ (function () {
1839
1837
  if (degree < 0) {
1840
1838
  degree = 360 + degree;
1841
1839
  }
1842
- if (degree % 360 === 0 && (parent.transform.degree !== -360 || parent.transform.currFlipState === '')) {
1843
- startX = actPoint.startX + parent.activeObj.textSettings.fontSize * 0.15;
1844
- startY = actPoint.startY + (actPoint.endY - actPoint.startY);
1845
- var rows = parent.activeObj.keyHistory.split('\n');
1846
- for (var i = 0; i < rows.length; i++) {
1847
- startY = actPoint.startY + (i * parent.activeObj.textSettings.fontSize + parent.activeObj.textSettings.fontSize * 0.25);
1848
- canvasDraw.fillText(rows[i], startX, startY);
1849
- }
1850
- }
1851
- else if (degree % 90 === 0 && degree % 180 !== 0) {
1852
- canvasDraw.translate(parent.lowerCanvas.width / 2, parent.lowerCanvas.height / 2);
1853
- canvasDraw.rotate(Math.PI / 180 * degree);
1854
- canvasDraw.translate(-parent.lowerCanvas.height / 2, -parent.lowerCanvas.width / 2);
1855
- if (degree % 90 === 0 && degree % 270 !== 0) {
1856
- startY = (parent.lowerCanvas.width - actPoint.endX) +
1857
- parent.activeObj.textSettings.fontSize * 0.4;
1858
- startX = actPoint.startY;
1859
- }
1860
- else if (degree % 270 === 0) {
1861
- startX = parent.lowerCanvas.height - actPoint.endY;
1862
- startY = actPoint.startX + parent.activeObj.textSettings.fontSize * 0.4;
1863
- }
1864
- this.textFlipDegree(canvasDraw, startX, startY);
1865
- canvasDraw.translate(parent.lowerCanvas.height / 2, parent.lowerCanvas.width / 2);
1866
- canvasDraw.rotate(Math.PI / 180 * -degree);
1867
- canvasDraw.translate(-parent.lowerCanvas.width / 2, -parent.lowerCanvas.height / 2);
1840
+ var imgPoint = { startX: 0, startY: 0, width: 0, height: 0 };
1841
+ imgPoint.width = degree % 90 === 0 && degree % 180 !== 0 ? actObj.activePoint.height : actObj.activePoint.width;
1842
+ imgPoint.height = degree % 90 === 0 && degree % 180 !== 0 ? actObj.activePoint.width :
1843
+ actObj.activePoint.height;
1844
+ imgPoint.startX = actObj.activePoint.startX;
1845
+ imgPoint.startY = actObj.activePoint.startY;
1846
+ var startX = imgPoint.startX;
1847
+ var startY = imgPoint.startY;
1848
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
1849
+ var tempDegree;
1850
+ var tempColl = [];
1851
+ canvasDraw.save();
1852
+ for (var i = 0, len = actObj.rotateFlipColl.length; i < len; i++) {
1853
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
1854
+ var coll = actObj.rotateFlipColl[i];
1855
+ tempColl.push(coll);
1856
+ if (typeof (coll) === 'number') {
1857
+ if (actObj.shapeDegree === 0) {
1858
+ tempDegree = coll;
1859
+ }
1860
+ else {
1861
+ tempDegree = coll - actObj.shapeDegree;
1862
+ }
1863
+ if (tempDegree === -450) {
1864
+ tempDegree = -90;
1865
+ }
1866
+ if (tempDegree < 0) {
1867
+ tempDegree = 360 + tempDegree;
1868
+ }
1869
+ imgPoint.width = tempDegree % 90 === 0 && tempDegree % 180 !== 0 ? actObj.activePoint.height : actObj.activePoint.width;
1870
+ imgPoint.height = tempDegree % 90 === 0 && tempDegree % 180 !== 0 ? actObj.activePoint.width :
1871
+ actObj.activePoint.height;
1872
+ canvasDraw.translate(canvasDraw.canvas.width / 2, canvasDraw.canvas.height / 2);
1873
+ canvasDraw.rotate(Math.PI / 180 * coll);
1874
+ canvasDraw.translate(-canvasDraw.canvas.height / 2, -canvasDraw.canvas.width / 2);
1875
+ if (tempDegree % 90 === 0 && tempDegree % 270 !== 0) {
1876
+ startY = (parent.lowerCanvas.width - actObj.activePoint.endX);
1877
+ startX = actObj.activePoint.startY;
1878
+ }
1879
+ else if (tempDegree % 270 === 0) {
1880
+ startX = parent.lowerCanvas.height - actObj.activePoint.endY;
1881
+ startY = actObj.activePoint.startX;
1882
+ }
1883
+ imgPoint.startX = startX;
1884
+ imgPoint.startY = startY;
1885
+ actObj.activePoint.startX = startX;
1886
+ actObj.activePoint.startY = startY;
1887
+ actObj.activePoint.endX = actObj.activePoint.startX + imgPoint.width;
1888
+ actObj.activePoint.endY = actObj.activePoint.startY + imgPoint.height;
1889
+ actObj = this.updateWidthHeight(actObj);
1890
+ }
1891
+ else {
1892
+ if (coll === 'horizontal' && degree % 90 === 0 && degree % 180 !== 0) {
1893
+ coll = 'vertical';
1894
+ }
1895
+ else if (coll === 'vertical' && degree % 90 === 0 && degree % 180 !== 0) {
1896
+ coll = 'horizontal';
1897
+ }
1898
+ if (coll === 'horizontal') {
1899
+ canvasDraw.translate(canvasDraw.canvas.width, 0);
1900
+ canvasDraw.scale(-1, 1);
1901
+ actObj.activePoint = this.updateActPoint('horizontal', canvasDraw);
1902
+ }
1903
+ else if (coll === 'vertical') {
1904
+ canvasDraw.translate(0, canvasDraw.canvas.height);
1905
+ canvasDraw.scale(1, -1);
1906
+ actObj.activePoint = this.updateActPoint('vertical', canvasDraw);
1907
+ }
1908
+ imgPoint.startX = actObj.activePoint.startX;
1909
+ imgPoint.startY = actObj.activePoint.startY;
1910
+ }
1911
+ imgPoint.startX = actObj.activePoint.startX;
1912
+ imgPoint.startY = actObj.activePoint.startY;
1913
+ startX = imgPoint.startX;
1914
+ startY = imgPoint.startY;
1868
1915
  }
1869
- else {
1870
- canvasDraw.translate(parent.lowerCanvas.width / 2, parent.lowerCanvas.height / 2);
1871
- canvasDraw.rotate(Math.PI / 180 * degree);
1872
- startX = parent.lowerCanvas.width - actPoint.endX;
1873
- startY = (parent.lowerCanvas.height - actPoint.endY) +
1874
- parent.activeObj.textSettings.fontSize * 0.4;
1875
- canvasDraw.translate(-parent.lowerCanvas.width / 2, -parent.lowerCanvas.height / 2);
1876
- this.textFlipDegree(canvasDraw, startX, startY);
1877
- canvasDraw.translate(parent.lowerCanvas.width / 2, parent.lowerCanvas.height / 2);
1878
- canvasDraw.rotate(Math.PI / 180 * -degree);
1879
- canvasDraw.translate(-parent.lowerCanvas.width / 2, -parent.lowerCanvas.height / 2);
1916
+ if (actObj.rotatedAngle !== 0) {
1917
+ parent.notify('shape', { prop: 'setPointCollForShapeRotation', onPropertyChange: false, value: { obj: actObj } });
1880
1918
  }
1919
+ startY += actObj.textSettings.fontSize * 0.4;
1920
+ this.textFlipDegree(canvasDraw, startX, startY);
1921
+ canvasDraw.restore();
1922
+ parent.activeObj = tempActiveObj;
1881
1923
  if (parent.transform.degree === 360 || parent.transform.degree === -360) {
1882
1924
  parent.transform.degree = 0;
1883
1925
  }
@@ -2412,22 +2454,23 @@ var Draw = /** @class */ (function () {
2412
2454
  this.parent.notify('toolbar', { prop: 'getPrevCropObj', onPropertyChange: false, value: { obj: obj1 } });
2413
2455
  this.parent.notify('toolbar', { prop: 'getPrevObj', onPropertyChange: false, value: { obj: obj2 } });
2414
2456
  if (obj1['prevCropObj'] && obj2['prevObj']) {
2415
- if (!aspectRatioElement) {
2416
- parent.objColl = [];
2417
- parent.pointColl = [];
2418
- parent.freehandCounter = 0;
2419
- parent.cropObj = extend({}, obj1['prevCropObj'], {}, true);
2420
- this.setCurrentObj(obj2['prevObj']);
2421
- parent.objColl = obj2['prevObj']['objColl'];
2422
- parent.pointColl = obj2['prevObj']['pointColl'];
2423
- parent.freehandCounter = parent.pointColl.length;
2424
- parent.notify('shape', { prop: 'zoomObjColl', onPropertyChange: false, value: { isPreventApply: null } });
2425
- parent.notify('freehand-draw', { prop: 'zoomFHDColl', onPropertyChange: false, value: { isPreventApply: null } });
2426
- }
2457
+ parent.objColl = [];
2458
+ parent.pointColl = [];
2459
+ parent.freehandCounter = 0;
2460
+ parent.cropObj = extend({}, obj1['prevCropObj'], {}, true);
2461
+ this.setCurrentObj(obj2['prevObj']);
2462
+ parent.objColl = obj2['prevObj']['objColl'];
2463
+ parent.pointColl = obj2['prevObj']['pointColl'];
2464
+ parent.freehandCounter = parent.pointColl.length;
2465
+ parent.notify('shape', { prop: 'zoomObjColl', onPropertyChange: false, value: { isPreventApply: null } });
2466
+ parent.notify('freehand-draw', { prop: 'zoomFHDColl', onPropertyChange: false, value: { isPreventApply: null } });
2467
+ var currObj = parent.currSelectionPoint ?
2468
+ extend({}, parent.currSelectionPoint, {}, true) : null;
2427
2469
  this.parent.notify('transform', { prop: 'zoomAction', onPropertyChange: false,
2428
2470
  value: { zoomFactor: -this.parent.transform.zoomFactor, zoomPoint: null, isResize: true } });
2429
2471
  this.parent.notify('transform', { prop: 'zoomAction', onPropertyChange: false,
2430
2472
  value: { zoomFactor: obj2['prevObj']['defaultZoom'], zoomPoint: null, isResize: true } });
2473
+ parent.currSelectionPoint = currObj;
2431
2474
  if (obj2['prevObj'].zoomFactor) {
2432
2475
  parent.setProperties({ zoomSettings: { zoomFactor: obj2['prevObj'].zoomFactor } }, true);
2433
2476
  }
@@ -2435,6 +2478,7 @@ var Draw = /** @class */ (function () {
2435
2478
  value: { previousZoomValue: parent.zoomSettings.zoomFactor } });
2436
2479
  }
2437
2480
  parent.isResize = false;
2481
+ parent.notify('transform', { prop: 'setResizedImgAngle', onPropertyChange: false, value: { angle: null } });
2438
2482
  }
2439
2483
  }
2440
2484
  if (parent.togglePen) {
@@ -1,4 +1,4 @@
1
- import { Browser, EventHandler, extend, isBlazor, isNullOrUndefined } from '@syncfusion/ej2-base';
1
+ import { Browser, EventHandler, extend, getComponent, isBlazor, isNullOrUndefined } from '@syncfusion/ej2-base';
2
2
  import { ZoomTrigger } from '../index';
3
3
  var Selection = /** @class */ (function () {
4
4
  function Selection(parent) {
@@ -3931,6 +3931,36 @@ var Selection = /** @class */ (function () {
3931
3931
  parent.notify('transform', { prop: 'resize', value: { width: point.x, height: point.y, isAspectRatio: false } });
3932
3932
  }
3933
3933
  }
3934
+ if (isBlazor()) {
3935
+ var aspectRatioHeight = this.parent.element.querySelector('.e-ie-toolbar-e-resize-height-input .e-numerictextbox');
3936
+ var aspectRatioWidth = this.parent.element.querySelector('.e-ie-toolbar-e-resize-width-input .e-numerictextbox');
3937
+ if ((blrAspRatElem && blrAspRatElem.classList.contains('e-hidden'))) {
3938
+ if (aspectRatioHeight && aspectRatioHeight.value === "") {
3939
+ aspectRatioHeight.value = aspectRatioHeight.placeholder;
3940
+ aspectRatioHeight.value = Math.floor(parent.img.destHeight).toString();
3941
+ }
3942
+ if (aspectRatioWidth && aspectRatioWidth.value === "") {
3943
+ aspectRatioWidth.value = aspectRatioWidth.placeholder;
3944
+ aspectRatioWidth.value = Math.floor(parent.img.destWidth).toString();
3945
+ }
3946
+ }
3947
+ }
3948
+ else {
3949
+ var aspectRatioHeight = parent.element.querySelector('#' + parent.element.id + '_resizeHeight');
3950
+ var aspectRatioWidth = parent.element.querySelector('#' + parent.element.id + '_resizeWidth');
3951
+ if (isNullOrUndefined(aspectRatioElement)) {
3952
+ var elem = getComponent(aspectRatioHeight, 'numerictextbox');
3953
+ if (aspectRatioHeight && isNullOrUndefined(elem.value)) {
3954
+ elem.value = parseFloat(elem.placeholder);
3955
+ aspectRatioHeight.value = Math.floor(parent.img.destHeight).toString() + ' px';
3956
+ }
3957
+ elem = getComponent(aspectRatioWidth, 'numerictextbox');
3958
+ if (aspectRatioWidth && isNullOrUndefined(elem.value)) {
3959
+ elem.value = parseFloat(elem.placeholder);
3960
+ aspectRatioWidth.value = Math.floor(parent.img.destWidth).toString() + ' px';
3961
+ }
3962
+ }
3963
+ }
3934
3964
  }
3935
3965
  else {
3936
3966
  var splitWords = void 0;
@@ -4889,6 +4919,12 @@ var Selection = /** @class */ (function () {
4889
4919
  if (widthElement && heightElement) {
4890
4920
  var heightString = heightElement.value.replace(/,/g, '');
4891
4921
  var widthString = widthElement.value.replace(/,/g, '');
4922
+ if (heightString === '') {
4923
+ heightString = heightElement.placeholder.replace(/,/g, '');
4924
+ }
4925
+ if (widthString === '') {
4926
+ widthString = widthElement.placeholder.replace(/,/g, '');
4927
+ }
4892
4928
  height = parseFloat(heightString);
4893
4929
  width = parseFloat(widthString);
4894
4930
  }
@@ -40,6 +40,7 @@ export declare class Shape {
40
40
  private setCenterPoints;
41
41
  private updSelChangeEventArgs;
42
42
  private updateShapeChangeEventArgs;
43
+ private updateSelectionChangeEventArgs;
43
44
  private addLetter;
44
45
  private redrawText;
45
46
  private updateTextFromTextArea;
@@ -227,6 +227,9 @@ var Shape = /** @class */ (function () {
227
227
  case 'updateObj':
228
228
  this.updateObj(args.value['dimObj'], args.value['x'], args.value['y']);
229
229
  break;
230
+ case 'updateSelectionChangeEventArgs':
231
+ this.updateSelectionChangeEventArgs(args.value['selectionSettings']);
232
+ break;
230
233
  }
231
234
  };
232
235
  Shape.prototype.getModuleName = function () {
@@ -793,6 +796,17 @@ var Shape = /** @class */ (function () {
793
796
  }
794
797
  }
795
798
  };
799
+ Shape.prototype.updateSelectionChangeEventArgs = function (selectionSettings) {
800
+ var parent = this.parent;
801
+ parent.activeObj.activePoint.startX = selectionSettings.startX;
802
+ parent.activeObj.activePoint.startY = selectionSettings.startY;
803
+ if (selectionSettings.width && selectionSettings.height) {
804
+ parent.activeObj.activePoint.width = selectionSettings.width;
805
+ parent.activeObj.activePoint.height = selectionSettings.height;
806
+ parent.activeObj.activePoint.endX = parent.activeObj.activePoint.startX + parent.activeObj.activePoint.width;
807
+ parent.activeObj.activePoint.endY = parent.activeObj.activePoint.startY + parent.activeObj.activePoint.height;
808
+ }
809
+ };
796
810
  Shape.prototype.addLetter = function (letter) {
797
811
  var parent = this.parent;
798
812
  if (parent.textArea.style.display === 'none' && (parent.currObjType.isText || parent.activeObj.shape === 'text')) {
@@ -167,6 +167,9 @@ var Transform = /** @class */ (function () {
167
167
  case 'resize':
168
168
  this.resize(args.value['width'], args.value['height'], args.value['isAspectRatio']);
169
169
  break;
170
+ case 'setResizedImgAngle':
171
+ this.resizedImgAngle = args.value['angle'];
172
+ break;
170
173
  case 'reset':
171
174
  this.reset();
172
175
  break;
@@ -998,6 +998,7 @@ var ImageEditor = /** @class */ (function (_super) {
998
998
  this.afterCropActions = [];
999
999
  this.currentFilter = '';
1000
1000
  this.tempFrameZoomLevel = null;
1001
+ this.cxtTbarHeight = null;
1001
1002
  var obj_1 = { initialZoomValue: false };
1002
1003
  this.notify('draw', { prop: 'getInitialZoomValue', onPropertyChange: false, value: { obj: obj_1 } });
1003
1004
  if (obj_1['initialZoomValue']) {
@@ -1645,7 +1646,8 @@ var ImageEditor = /** @class */ (function (_super) {
1645
1646
  value = 'vertical';
1646
1647
  }
1647
1648
  for (var i = 0; i < this.objColl.length; i++) {
1648
- if (this.objColl[i].shape === 'image') {
1649
+ var shape = this.objColl[i].shape;
1650
+ if (shape === 'image' || shape === 'text') {
1649
1651
  if (isNullOrUndefined(this.objColl[i].rotateFlipColl)) {
1650
1652
  this.objColl[i].rotateFlipColl = [];
1651
1653
  }