@syncfusion/ej2-image-editor 31.1.17 → 31.1.22

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 (55) hide show
  1. package/dist/ej2-image-editor.umd.min.js +3 -3
  2. package/dist/ej2-image-editor.umd.min.js.map +1 -1
  3. package/dist/es6/ej2-image-editor.es2015.js +72 -9
  4. package/dist/es6/ej2-image-editor.es2015.js.map +1 -1
  5. package/dist/es6/ej2-image-editor.es5.js +72 -9
  6. package/dist/es6/ej2-image-editor.es5.js.map +1 -1
  7. package/dist/global/ej2-image-editor.min.js +3 -3
  8. package/dist/global/ej2-image-editor.min.js.map +1 -1
  9. package/dist/global/index.d.ts +2 -2
  10. package/package.json +14 -46
  11. package/src/image-editor/action/export.js +6 -2
  12. package/src/image-editor/action/freehand-draw.d.ts +1 -0
  13. package/src/image-editor/action/freehand-draw.js +30 -3
  14. package/src/image-editor/action/selection.js +14 -2
  15. package/src/image-editor/action/undo-redo.js +10 -0
  16. package/src/image-editor/base/image-editor.d.ts +1 -0
  17. package/src/image-editor/base/image-editor.js +9 -2
  18. package/src/image-editor/renderer/toolbar.js +3 -0
  19. package/dist/ts/image-editor/action/crop.d.ts +0 -44
  20. package/dist/ts/image-editor/action/crop.ts +0 -867
  21. package/dist/ts/image-editor/action/draw.d.ts +0 -187
  22. package/dist/ts/image-editor/action/draw.ts +0 -4924
  23. package/dist/ts/image-editor/action/export.d.ts +0 -29
  24. package/dist/ts/image-editor/action/export.ts +0 -509
  25. package/dist/ts/image-editor/action/filter.d.ts +0 -48
  26. package/dist/ts/image-editor/action/filter.ts +0 -872
  27. package/dist/ts/image-editor/action/freehand-draw.d.ts +0 -68
  28. package/dist/ts/image-editor/action/freehand-draw.ts +0 -1135
  29. package/dist/ts/image-editor/action/index.d.ts +0 -9
  30. package/dist/ts/image-editor/action/index.ts +0 -9
  31. package/dist/ts/image-editor/action/selection.d.ts +0 -178
  32. package/dist/ts/image-editor/action/selection.ts +0 -5241
  33. package/dist/ts/image-editor/action/shape.d.ts +0 -130
  34. package/dist/ts/image-editor/action/shape.ts +0 -3917
  35. package/dist/ts/image-editor/action/transform.d.ts +0 -77
  36. package/dist/ts/image-editor/action/transform.ts +0 -2008
  37. package/dist/ts/image-editor/action/undo-redo.d.ts +0 -52
  38. package/dist/ts/image-editor/action/undo-redo.ts +0 -1169
  39. package/dist/ts/image-editor/base/enum.d.ts +0 -277
  40. package/dist/ts/image-editor/base/enum.ts +0 -288
  41. package/dist/ts/image-editor/base/image-editor-model.d.ts +0 -770
  42. package/dist/ts/image-editor/base/image-editor.d.ts +0 -1928
  43. package/dist/ts/image-editor/base/image-editor.ts +0 -5496
  44. package/dist/ts/image-editor/base/index.d.ts +0 -4
  45. package/dist/ts/image-editor/base/index.ts +0 -4
  46. package/dist/ts/image-editor/base/interface.d.ts +0 -1637
  47. package/dist/ts/image-editor/base/interface.ts +0 -1709
  48. package/dist/ts/image-editor/index.d.ts +0 -3
  49. package/dist/ts/image-editor/index.ts +0 -3
  50. package/dist/ts/image-editor/renderer/index.d.ts +0 -1
  51. package/dist/ts/image-editor/renderer/index.ts +0 -1
  52. package/dist/ts/image-editor/renderer/toolbar.d.ts +0 -171
  53. package/dist/ts/image-editor/renderer/toolbar.ts +0 -6356
  54. package/dist/ts/index.d.ts +0 -4
  55. package/dist/ts/index.ts +0 -4
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * filename: index.d.ts
3
- * version : 31.1.17
4
- * Copyright Syncfusion Inc. 2001 - 2024. All rights reserved.
3
+ * version : 31.1.22
4
+ * Copyright Syncfusion Inc. 2001 - 2025. 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
7
7
  * licensing@syncfusion.com. Any infringement will be prosecuted under
package/package.json CHANGED
@@ -1,49 +1,22 @@
1
1
  {
2
- "_from": "@syncfusion/ej2-image-editor@*",
3
- "_id": "@syncfusion/ej2-image-editor@28.2.0",
4
- "_inBundle": false,
5
- "_integrity": "sha512-ZRXJy4ABn0/rhrAz6BSWecD3KqFtdXN6HpMbzT1Nwd+EpL4R8sKC7vJF4xo/km1ZTWgDjgFdImviKKV0Ze/GOQ==",
6
- "_location": "/@syncfusion/ej2-image-editor",
7
- "_phantomChildren": {},
8
- "_requested": {
9
- "type": "range",
10
- "registry": true,
11
- "raw": "@syncfusion/ej2-image-editor@*",
12
- "name": "@syncfusion/ej2-image-editor",
13
- "escapedName": "@syncfusion%2fej2-image-editor",
14
- "scope": "@syncfusion",
15
- "rawSpec": "*",
16
- "saveSpec": null,
17
- "fetchSpec": "*"
18
- },
19
- "_requiredBy": [
20
- "/",
21
- "/@syncfusion/ej2",
22
- "/@syncfusion/ej2-angular-image-editor",
23
- "/@syncfusion/ej2-react-image-editor",
24
- "/@syncfusion/ej2-vue-image-editor"
25
- ],
26
- "_resolved": "https://nexus.syncfusioninternal.com/repository/ej2-development/@syncfusion/ej2-image-editor/-/ej2-image-editor-28.2.0.tgz",
27
- "_shasum": "db58ce2ba449bdc03efaac0d29a3129ed74204ec",
28
- "_spec": "@syncfusion/ej2-image-editor@*",
29
- "_where": "D:\\SF3992\\WFH\\Nexus\\release",
30
- "author": {
31
- "name": "Syncfusion Inc."
32
- },
33
- "bundleDependencies": false,
2
+ "name": "@syncfusion/ej2-image-editor",
3
+ "version": "31.1.22",
4
+ "description": "Essential JS 2 ImageEditor",
5
+ "author": "Syncfusion Inc.",
6
+ "license": "SEE LICENSE IN license",
7
+ "main": "./dist/ej2-image-editor.umd.min.js",
8
+ "module": "./index.js",
9
+ "es2015": "./dist/es6/ej2-image-editor.es5.js",
34
10
  "dependencies": {
35
- "@syncfusion/ej2-base": "~31.1.17",
36
- "@syncfusion/ej2-buttons": "~31.1.17",
37
- "@syncfusion/ej2-dropdowns": "~31.1.17",
38
- "@syncfusion/ej2-inputs": "~31.1.17",
39
- "@syncfusion/ej2-navigations": "~31.1.17",
40
- "@syncfusion/ej2-popups": "~31.1.17",
11
+ "@syncfusion/ej2-base": "~31.1.22",
12
+ "@syncfusion/ej2-buttons": "~31.1.21",
13
+ "@syncfusion/ej2-dropdowns": "~31.1.22",
14
+ "@syncfusion/ej2-inputs": "~31.1.22",
15
+ "@syncfusion/ej2-navigations": "~31.1.20",
16
+ "@syncfusion/ej2-popups": "~31.1.20",
41
17
  "@syncfusion/ej2-splitbuttons": "~31.1.17"
42
18
  },
43
- "deprecated": false,
44
- "description": "Essential JS 2 ImageEditor",
45
19
  "devDependencies": {},
46
- "es2015": "./dist/es6/ej2-image-editor.es5.js",
47
20
  "keywords": [
48
21
  "ej2",
49
22
  "syncfusion",
@@ -59,16 +32,11 @@
59
32
  "web image editor",
60
33
  "image editing software"
61
34
  ],
62
- "license": "SEE LICENSE IN license",
63
- "main": "./dist/ej2-image-editor.umd.min.js",
64
- "module": "./index.js",
65
- "name": "@syncfusion/ej2-image-editor",
66
35
  "repository": {
67
36
  "type": "git",
68
37
  "url": "https://github.com/syncfusion/ej2-javascript-ui-controls/tree/master/controls/imageeditor"
69
38
  },
70
39
  "typings": "index.d.ts",
71
- "version": "31.1.17",
72
40
  "sideEffects": false,
73
41
  "homepage": "https://www.syncfusion.com/javascript-ui-controls"
74
42
  }
@@ -65,8 +65,12 @@ var Export = /** @class */ (function () {
65
65
  type = type ? type : 'Png';
66
66
  parent.notify('shape', { prop: 'redrawActObj', onPropertyChange: false,
67
67
  value: { x: null, y: null, isMouseDown: null } });
68
+ var imageQualityObj = { currentImageQuality: 1 };
69
+ if (type.toLowerCase() === 'jpeg') {
70
+ parent.notify('toolbar', { prop: 'getcurrentImageQuality', onPropertyChange: false, value: { obj: imageQualityObj } });
71
+ }
68
72
  var beforeSave = { cancel: false, fileName: fileName ? fileName : imageName,
69
- fileType: type, imageQuality: imgQuality };
73
+ fileType: type, imageQuality: imgQuality || imageQualityObj['currentImageQuality'] };
70
74
  parent.trigger('beforeSave', beforeSave);
71
75
  this.beforeSaveEvent(beforeSave, type, fileName, imageName, imgQuality);
72
76
  }
@@ -82,7 +86,7 @@ var Export = /** @class */ (function () {
82
86
  this.toSVGImg(fileName);
83
87
  }
84
88
  else {
85
- this.toBlobFn(fileName, lowerCaseType, imgQuality);
89
+ this.toBlobFn(fileName, lowerCaseType, observableSaveArgs.imageQuality || imgQuality);
86
90
  }
87
91
  var saved = { fileName: fileName ? fileName : imageName, fileType: type };
88
92
  parent.trigger('saved', saved);
@@ -32,6 +32,7 @@ export declare class FreehandDrawing {
32
32
  private hoverFhd;
33
33
  private freehandDownHandler;
34
34
  private freehandUpHandler;
35
+ private getHighestOrder;
35
36
  private freehandMoveHandler;
36
37
  private processPoint;
37
38
  private calcCurveCP;
@@ -149,6 +149,15 @@ var FreehandDrawing = /** @class */ (function () {
149
149
  case 'resetFreehandDrawSelectedId':
150
150
  this.fhdSelID = null;
151
151
  break;
152
+ case 'getFHDSelected':
153
+ args.value['obj']['isSelected'] = (this.parent.pointColl[this.fhdSelIdx] && this.parent.pointColl[this.fhdSelIdx].isSelected) ? this.parent.pointColl[this.fhdSelIdx].isSelected : false;
154
+ break;
155
+ case 'resetFHDIdx':
156
+ this.fhdHovIdx = this.fhdSelID = this.fhdSelIdx = null;
157
+ break;
158
+ case 'getHighestOrder':
159
+ this.getHighestOrder();
160
+ break;
152
161
  case 'getTempFreeHandDrawEditingStyles':
153
162
  args.value['obj']['tempFreeHandDrawEditingStyles'] = this.tempFHDStyles;
154
163
  break;
@@ -331,10 +340,11 @@ var FreehandDrawing = /** @class */ (function () {
331
340
  parent.notify('freehand-draw', { prop: 'getSelPointColl', onPropertyChange: false, value: { obj: selPointCollObj } });
332
341
  prevObj.selPointColl = extend([], selPointCollObj['selPointColl'], [], true);
333
342
  var fhCnt = parent.freehandCounter;
334
- var order = parent.objColl.length + parent.freehandCounter + 1;
343
+ var penIndex = this.getHighestOrder();
344
+ var order = parent.objColl.length + penIndex + 1;
335
345
  parent.pointColl[fhCnt] = { points: extend([], parent.points), strokeColor: parent.activeObj.strokeSettings.strokeColor,
336
346
  strokeWidth: this.penStrokeWidth, flipState: parent.transform.currFlipState,
337
- id: 'pen_' + (this.currFHDIdx + 1), order: order };
347
+ id: 'pen_' + (penIndex + 1), order: order };
338
348
  parent.points = [];
339
349
  this.dummyPoints = [];
340
350
  this.selPointColl[fhCnt] = { points: extend([], this.selPoints) };
@@ -349,7 +359,7 @@ var FreehandDrawing = /** @class */ (function () {
349
359
  previousCropObj: prevCropObj, previousText: null,
350
360
  currentText: null, previousFilter: null, isCircleCrop: null } });
351
361
  }
352
- var shapeSettings = { id: 'pen_' + (this.currFHDIdx + 1), type: ShapeType.FreehandDraw,
362
+ var shapeSettings = { id: 'pen_' + (penIndex + 1), type: ShapeType.FreehandDraw,
353
363
  startX: this.freehandDownPoint.x, startY: this.freehandDownPoint.y,
354
364
  strokeColor: parent.activeObj.strokeSettings.strokeColor, strokeWidth: this.penStrokeWidth,
355
365
  points: parent.pointColl[this.currFHDIdx].points, index: order };
@@ -358,6 +368,17 @@ var FreehandDrawing = /** @class */ (function () {
358
368
  this.triggerShapeChanging(shapeChangingArgs);
359
369
  this.currFHDIdx++;
360
370
  };
371
+ FreehandDrawing.prototype.getHighestOrder = function () {
372
+ var parent = this.parent;
373
+ var index = 0;
374
+ for (var i = 0; i < parent.pointColl.length; i++) {
375
+ var value = parseInt(parent.pointColl[i].id.split('_')[1], 10);
376
+ if (index < value) {
377
+ index = value;
378
+ }
379
+ }
380
+ return index;
381
+ };
361
382
  FreehandDrawing.prototype.freehandMoveHandler = function (e) {
362
383
  this.isFreehandPointMoved = true;
363
384
  var rect = this.parent.upperCanvas.getBoundingClientRect();
@@ -746,6 +767,7 @@ var FreehandDrawing = /** @class */ (function () {
746
767
  }
747
768
  parent.freehandCounter -= 1;
748
769
  this.fhdHovIdx = this.fhdSelIdx = null;
770
+ this.currFHDIdx--;
749
771
  parent.notify('selection', { prop: 'resetFreehandDrawVariables' });
750
772
  parent.notify('draw', { prop: 'render-image', value: { isMouseWheel: null } });
751
773
  parent.notify('toolbar', { prop: 'refresh-main-toolbar', onPropertyChange: false });
@@ -1142,6 +1164,11 @@ var FreehandDrawing = /** @class */ (function () {
1142
1164
  var parent = this.parent;
1143
1165
  var point = parent.pointColl[this.fhdSelIdx];
1144
1166
  parent.trigger('shapeChanging', shapeChangingArgs);
1167
+ if (shapeChangingArgs.cancel) {
1168
+ parent.editCompleteArgs = shapeChangingArgs;
1169
+ this.cancelFhd();
1170
+ return;
1171
+ }
1145
1172
  if (parent.element.getAttribute('data-value') === 'mask-drawing' && !this.isMasking) {
1146
1173
  this.isMasking = true;
1147
1174
  parent.upperCanvas.style.cursor = 'crosshair';
@@ -3463,6 +3463,9 @@ var Selection = /** @class */ (function () {
3463
3463
  var objColl = extend([], parent.objColl, [], true);
3464
3464
  if (!isNullOrUndefined(obj['index']) && obj['index'] > -1) {
3465
3465
  parent.notify('freehand-draw', { prop: 'selectFhd', value: { type: 'ok' } });
3466
+ if (!this.isFhdPoint) {
3467
+ return;
3468
+ }
3466
3469
  parent.notify('freehand-draw', { prop: 'hoverFhd', onPropertyChange: false,
3467
3470
  value: { strokeColor: null, strokeWidth: null } });
3468
3471
  parent.notify('toolbar', { prop: 'renderQAT', onPropertyChange: false, value: { isPenEdit: true } });
@@ -4007,7 +4010,9 @@ var Selection = /** @class */ (function () {
4007
4010
  this.currentDrawingShape = parent.drawingShape.toLowerCase();
4008
4011
  if (dummyClick) {
4009
4012
  parent.enableShapeDrawing(parent.toPascalCase(parent.drawingShape), true);
4010
- parent.upperCanvas.style.cursor = 'crosshair';
4013
+ if (parent.cursor !== 'move') {
4014
+ parent.upperCanvas.style.cursor = 'crosshair';
4015
+ }
4011
4016
  }
4012
4017
  }
4013
4018
  parent.isShapeDrawing = false;
@@ -5029,7 +5034,14 @@ var Selection = /** @class */ (function () {
5029
5034
  }
5030
5035
  if (!this.isCropSelection && parent.activeObj.shape !== 'redact') {
5031
5036
  parent.trigger('shapeChanging', shapeChangingArgs);
5032
- this.shapeEvent(shapeChangingArgs);
5037
+ if (shapeChangingArgs.cancel) {
5038
+ parent.objColl.splice(i, 0, temp);
5039
+ parent.notify('shape', { prop: 'refreshActiveObj', onPropertyChange: false });
5040
+ parent.notify('draw', { prop: 'render-image', value: { isMouseWheel: null } });
5041
+ }
5042
+ else {
5043
+ this.shapeEvent(shapeChangingArgs);
5044
+ }
5033
5045
  parent.editCompleteArgs = shapeChangingArgs;
5034
5046
  }
5035
5047
  else {
@@ -359,6 +359,12 @@ var UndoRedo = /** @class */ (function () {
359
359
  parent.initialAdjustmentValue = this.lowerContext.filter;
360
360
  parent.notify('filter', { prop: 'setBevelFilter', onPropertyChange: false, value: { bevelFilter: this.lowerContext.filter } });
361
361
  var editCompleteArgs = { action: this.getUndoRedoAction(obj.operation) };
362
+ var isSelected = void 0;
363
+ if (obj.operation === 'freehanddraw' || obj.operation === 'freehand-draw') {
364
+ var object = { isSelected: null };
365
+ parent.notify('freehand-draw', { prop: 'getFHDSelected', onPropertyChange: false, value: { obj: object } });
366
+ isSelected = object['isSelected'];
367
+ }
362
368
  switch (obj.operation) {
363
369
  case 'shapeTransform':
364
370
  case 'brightness':
@@ -386,6 +392,10 @@ var UndoRedo = /** @class */ (function () {
386
392
  this.updateFreehandDraw(obj.previousPointColl, obj.previousSelPointColl);
387
393
  parent.notify('freehand-draw', { prop: 'setCurrentFreehandDrawIndex',
388
394
  value: { value: parent.pointColl.length } });
395
+ if (isSelected) {
396
+ parent.notify('freehand-draw', { prop: 'resetFHDIdx' });
397
+ parent.notify('selection', { prop: 'resetFreehandDrawVariables' });
398
+ }
389
399
  break;
390
400
  case 'freehanddrawCustomized':
391
401
  this.updateFreehandDrawCustomized(obj.previousObjColl, obj.previousPointColl);
@@ -1925,4 +1925,5 @@ export declare class ImageEditor extends Component<HTMLDivElement> implements IN
1925
1925
  * @returns {boolean}.
1926
1926
  */
1927
1927
  drawRedact(type?: RedactType, x?: number, y?: number, width?: number, height?: number, value?: number): boolean;
1928
+ private handlePenActiveState;
1928
1929
  }
@@ -2101,7 +2101,7 @@ var ImageEditor = /** @class */ (function (_super) {
2101
2101
  * @returns {void}.
2102
2102
  */
2103
2103
  ImageEditor.prototype.undo = function () {
2104
- this.manageActiveAction();
2104
+ this.handlePenActiveState();
2105
2105
  this.notify('undo-redo', { prop: 'undo', onPropertyChange: false });
2106
2106
  this.notify('draw', { prop: 'redrawDownScale' });
2107
2107
  };
@@ -2113,7 +2113,7 @@ var ImageEditor = /** @class */ (function (_super) {
2113
2113
  * @returns {void}.
2114
2114
  */
2115
2115
  ImageEditor.prototype.redo = function () {
2116
- this.manageActiveAction();
2116
+ this.handlePenActiveState();
2117
2117
  this.notify('undo-redo', { prop: 'redo', onPropertyChange: false });
2118
2118
  this.notify('draw', { prop: 'redrawDownScale' });
2119
2119
  };
@@ -4881,6 +4881,13 @@ var ImageEditor = /** @class */ (function (_super) {
4881
4881
  }
4882
4882
  return isRedact;
4883
4883
  };
4884
+ ImageEditor.prototype.handlePenActiveState = function () {
4885
+ var freehandDrawObj = { freehandDrawSelectedId: null };
4886
+ this.notify('freehand-draw', { prop: 'getFreehandDrawSelectedId', onPropertyChange: false, value: { obj: freehandDrawObj } });
4887
+ if (isNullOrUndefined(freehandDrawObj['freehandDrawSelectedId'])) {
4888
+ this.manageActiveAction();
4889
+ }
4890
+ };
4884
4891
  var ImageEditor_1;
4885
4892
  __decorate([
4886
4893
  Property('')
@@ -280,6 +280,9 @@ var ToolbarModule = /** @class */ (function () {
280
280
  case 'getToolbarHeight':
281
281
  args.value['obj']['toolbarHeight'] = this.toolbarHeight;
282
282
  break;
283
+ case 'getcurrentImageQuality':
284
+ args.value['obj']['currentImageQuality'] = this.currentQuality;
285
+ break;
283
286
  case 'setToolbarHeight':
284
287
  if (isNullOrUndefined(parent.toolbar) || (parent.toolbar && parent.toolbar.length > 0 && parent.toolbar.indexOf('Open') > -1)) {
285
288
  this.toolbarHeight = args.value['height'];
@@ -1,44 +0,0 @@
1
- import { ImageEditor } from '../index';
2
- export declare class Crop {
3
- private parent;
4
- private lowerContext;
5
- private upperContext;
6
- private prevCropCurrObj;
7
- private croppedDegree;
8
- private cropDestPoints;
9
- private tempFlipPanPoint;
10
- private isPreventScaling;
11
- private isInitCrop;
12
- private isTransformCrop;
13
- constructor(parent: ImageEditor);
14
- destroy(): void;
15
- private addEventListener;
16
- private removeEventListener;
17
- private cropping;
18
- getModuleName(): string;
19
- private updateCropPvtVar;
20
- private reset;
21
- private cropImg;
22
- private adjustStraightenForShapes;
23
- private updateCropObj;
24
- private rotateCrop;
25
- private revertTransform;
26
- private updateFlipState;
27
- private resetZoom;
28
- private flipCrop;
29
- private cropObjColl;
30
- private cropPointCollection;
31
- private cropFreehandDrawColl;
32
- private resetAnnotations;
33
- private setCurrSelPoints;
34
- private panToSelRangle;
35
- private cropCircle;
36
- private getCurrCropState;
37
- private updateRotatePan;
38
- private crop;
39
- private cropEvent;
40
- private updateUndoRedoColl;
41
- private resizeWrapper;
42
- private calcRatio;
43
- private getCurrFlipState;
44
- }