@syncfusion/ej2-inputs 22.2.12 → 23.1.38

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 (274) hide show
  1. package/CHANGELOG.md +4 -82
  2. package/dist/ej2-inputs.min.js +3 -3
  3. package/dist/ej2-inputs.umd.min.js +3 -3
  4. package/dist/ej2-inputs.umd.min.js.map +1 -1
  5. package/dist/es6/ej2-inputs.es2015.js +69 -41
  6. package/dist/es6/ej2-inputs.es2015.js.map +1 -1
  7. package/dist/es6/ej2-inputs.es5.js +69 -41
  8. package/dist/es6/ej2-inputs.es5.js.map +1 -1
  9. package/dist/global/ej2-inputs.min.js +3 -3
  10. package/dist/global/ej2-inputs.min.js.map +1 -1
  11. package/dist/global/index.d.ts +2 -2
  12. package/package.json +10 -10
  13. package/src/color-picker/color-picker-model.d.ts +1 -1
  14. package/src/color-picker/color-picker.js +10 -2
  15. package/src/common/signature-base.d.ts +3 -1
  16. package/src/common/signature-base.js +53 -34
  17. package/src/form-validator/form-validator.js +5 -5
  18. package/src/rating/rating-model.d.ts +12 -0
  19. package/src/rating/rating.d.ts +12 -0
  20. package/src/uploader/uploader.js +1 -0
  21. package/styles/bootstrap-dark.css +0 -4
  22. package/styles/bootstrap.css +0 -4
  23. package/styles/bootstrap4.css +0 -4
  24. package/styles/bootstrap5-dark.css +0 -4
  25. package/styles/bootstrap5.css +0 -4
  26. package/styles/color-picker/bootstrap-dark.scss +1 -1
  27. package/styles/color-picker/bootstrap.scss +1 -1
  28. package/styles/color-picker/bootstrap4.scss +1 -1
  29. package/styles/color-picker/bootstrap5-dark.scss +1 -1
  30. package/styles/color-picker/bootstrap5.scss +1 -1
  31. package/styles/color-picker/fabric-dark.scss +1 -1
  32. package/styles/color-picker/fabric.scss +1 -1
  33. package/styles/color-picker/fluent-dark.scss +1 -1
  34. package/styles/color-picker/fluent.scss +1 -1
  35. package/styles/color-picker/highcontrast-light.scss +1 -1
  36. package/styles/color-picker/highcontrast.scss +1 -1
  37. package/styles/color-picker/material-dark.css +0 -1
  38. package/styles/color-picker/material-dark.scss +1 -1
  39. package/styles/color-picker/material.css +0 -1
  40. package/styles/color-picker/material.scss +1 -1
  41. package/styles/color-picker/material3-dark.css +0 -1
  42. package/styles/color-picker/material3-dark.scss +1 -1
  43. package/styles/color-picker/material3.css +0 -1
  44. package/styles/color-picker/material3.scss +1 -1
  45. package/styles/color-picker/tailwind-dark.css +0 -1
  46. package/styles/color-picker/tailwind-dark.scss +1 -1
  47. package/styles/color-picker/tailwind.css +0 -1
  48. package/styles/color-picker/tailwind.scss +1 -1
  49. package/styles/fabric-dark.css +0 -4
  50. package/styles/fabric.css +0 -4
  51. package/styles/fluent-dark.css +0 -4
  52. package/styles/fluent.css +0 -4
  53. package/styles/highcontrast-light.css +0 -4
  54. package/styles/highcontrast.css +0 -4
  55. package/styles/input/_layout.scss +1 -1
  56. package/styles/input/bootstrap-dark.scss +1 -1
  57. package/styles/input/bootstrap.scss +1 -1
  58. package/styles/input/bootstrap4.scss +1 -1
  59. package/styles/input/bootstrap5-dark.scss +1 -1
  60. package/styles/input/bootstrap5.scss +1 -1
  61. package/styles/input/fabric-dark.scss +1 -1
  62. package/styles/input/fabric.scss +1 -1
  63. package/styles/input/fluent-dark.scss +1 -1
  64. package/styles/input/fluent.scss +1 -1
  65. package/styles/input/highcontrast-light.scss +1 -1
  66. package/styles/input/highcontrast.scss +1 -1
  67. package/styles/input/material-dark.css +0 -1
  68. package/styles/input/material-dark.scss +1 -1
  69. package/styles/input/material.css +0 -1
  70. package/styles/input/material.scss +1 -1
  71. package/styles/input/material3-dark.css +0 -1
  72. package/styles/input/material3-dark.scss +1 -1
  73. package/styles/input/material3.css +0 -1
  74. package/styles/input/material3.scss +1 -1
  75. package/styles/input/tailwind-dark.css +0 -1
  76. package/styles/input/tailwind-dark.scss +1 -1
  77. package/styles/input/tailwind.css +0 -1
  78. package/styles/input/tailwind.scss +1 -1
  79. package/styles/maskedtextbox/bootstrap-dark.scss +1 -1
  80. package/styles/maskedtextbox/bootstrap.scss +1 -1
  81. package/styles/maskedtextbox/bootstrap4.scss +1 -1
  82. package/styles/maskedtextbox/bootstrap5-dark.scss +1 -1
  83. package/styles/maskedtextbox/bootstrap5.scss +1 -1
  84. package/styles/maskedtextbox/fabric-dark.scss +1 -1
  85. package/styles/maskedtextbox/fabric.scss +1 -1
  86. package/styles/maskedtextbox/fluent-dark.scss +1 -1
  87. package/styles/maskedtextbox/fluent.scss +1 -1
  88. package/styles/maskedtextbox/highcontrast-light.scss +1 -1
  89. package/styles/maskedtextbox/highcontrast.scss +1 -1
  90. package/styles/maskedtextbox/material-dark.css +0 -1
  91. package/styles/maskedtextbox/material-dark.scss +1 -1
  92. package/styles/maskedtextbox/material.css +0 -1
  93. package/styles/maskedtextbox/material.scss +1 -1
  94. package/styles/maskedtextbox/material3-dark.css +0 -1
  95. package/styles/maskedtextbox/material3-dark.scss +1 -1
  96. package/styles/maskedtextbox/material3.css +0 -1
  97. package/styles/maskedtextbox/material3.scss +1 -1
  98. package/styles/maskedtextbox/tailwind-dark.css +0 -1
  99. package/styles/maskedtextbox/tailwind-dark.scss +1 -1
  100. package/styles/maskedtextbox/tailwind.css +0 -1
  101. package/styles/maskedtextbox/tailwind.scss +1 -1
  102. package/styles/material-dark.css +0 -5
  103. package/styles/material.css +0 -5
  104. package/styles/material3-dark.css +1 -6
  105. package/styles/material3-dark.scss +1 -1
  106. package/styles/material3.css +1 -6
  107. package/styles/material3.scss +1 -1
  108. package/styles/numerictextbox/bootstrap-dark.scss +1 -1
  109. package/styles/numerictextbox/bootstrap.scss +1 -1
  110. package/styles/numerictextbox/bootstrap4.scss +1 -1
  111. package/styles/numerictextbox/bootstrap5-dark.scss +1 -1
  112. package/styles/numerictextbox/bootstrap5.scss +1 -1
  113. package/styles/numerictextbox/fabric-dark.scss +1 -1
  114. package/styles/numerictextbox/fabric.scss +1 -1
  115. package/styles/numerictextbox/fluent-dark.scss +1 -1
  116. package/styles/numerictextbox/fluent.scss +1 -1
  117. package/styles/numerictextbox/highcontrast-light.scss +1 -1
  118. package/styles/numerictextbox/highcontrast.scss +1 -1
  119. package/styles/numerictextbox/material-dark.css +0 -1
  120. package/styles/numerictextbox/material-dark.scss +1 -1
  121. package/styles/numerictextbox/material.css +0 -1
  122. package/styles/numerictextbox/material.scss +1 -1
  123. package/styles/numerictextbox/material3-dark.css +0 -1
  124. package/styles/numerictextbox/material3-dark.scss +1 -1
  125. package/styles/numerictextbox/material3.css +0 -1
  126. package/styles/numerictextbox/material3.scss +1 -1
  127. package/styles/numerictextbox/tailwind-dark.css +0 -1
  128. package/styles/numerictextbox/tailwind-dark.scss +1 -1
  129. package/styles/numerictextbox/tailwind.css +0 -1
  130. package/styles/numerictextbox/tailwind.scss +1 -1
  131. package/styles/rating/_bootstrap-dark-definition.scss +0 -4
  132. package/styles/rating/_bootstrap-definition.scss +0 -4
  133. package/styles/rating/_bootstrap4-definition.scss +0 -4
  134. package/styles/rating/_bootstrap5-definition.scss +0 -4
  135. package/styles/rating/_fabric-dark-definition.scss +0 -4
  136. package/styles/rating/_fabric-definition.scss +0 -4
  137. package/styles/rating/_fluent-definition.scss +0 -4
  138. package/styles/rating/_fusionnew-definition.scss +0 -4
  139. package/styles/rating/_highcontrast-definition.scss +0 -4
  140. package/styles/rating/_highcontrast-light-definition.scss +0 -4
  141. package/styles/rating/_layout.scss +0 -4
  142. package/styles/rating/_material-dark-definition.scss +0 -4
  143. package/styles/rating/_material-definition.scss +0 -4
  144. package/styles/rating/_material3-definition.scss +0 -4
  145. package/styles/rating/_tailwind-definition.scss +0 -4
  146. package/styles/rating/_theme.scss +3 -0
  147. package/styles/rating/bootstrap-dark.css +0 -4
  148. package/styles/rating/bootstrap-dark.scss +1 -1
  149. package/styles/rating/bootstrap.css +0 -4
  150. package/styles/rating/bootstrap.scss +1 -1
  151. package/styles/rating/bootstrap4.css +0 -4
  152. package/styles/rating/bootstrap4.scss +1 -1
  153. package/styles/rating/bootstrap5-dark.css +0 -4
  154. package/styles/rating/bootstrap5-dark.scss +1 -1
  155. package/styles/rating/bootstrap5.css +0 -4
  156. package/styles/rating/bootstrap5.scss +1 -1
  157. package/styles/rating/fabric-dark.css +0 -4
  158. package/styles/rating/fabric-dark.scss +1 -1
  159. package/styles/rating/fabric.css +0 -4
  160. package/styles/rating/fabric.scss +1 -1
  161. package/styles/rating/fluent-dark.css +0 -4
  162. package/styles/rating/fluent-dark.scss +1 -1
  163. package/styles/rating/fluent.css +0 -4
  164. package/styles/rating/fluent.scss +1 -1
  165. package/styles/rating/highcontrast-light.css +0 -4
  166. package/styles/rating/highcontrast-light.scss +1 -1
  167. package/styles/rating/highcontrast.css +0 -4
  168. package/styles/rating/highcontrast.scss +1 -1
  169. package/styles/rating/material-dark.css +0 -5
  170. package/styles/rating/material-dark.scss +1 -1
  171. package/styles/rating/material.css +0 -5
  172. package/styles/rating/material.scss +1 -1
  173. package/styles/rating/material3-dark.css +1 -6
  174. package/styles/rating/material3-dark.scss +1 -1
  175. package/styles/rating/material3.css +1 -6
  176. package/styles/rating/material3.scss +1 -1
  177. package/styles/rating/tailwind-dark.css +0 -5
  178. package/styles/rating/tailwind-dark.scss +1 -1
  179. package/styles/rating/tailwind.css +0 -5
  180. package/styles/rating/tailwind.scss +1 -1
  181. package/styles/signature/bootstrap-dark.scss +1 -1
  182. package/styles/signature/bootstrap.scss +1 -1
  183. package/styles/signature/bootstrap4.scss +1 -1
  184. package/styles/signature/bootstrap5-dark.scss +1 -1
  185. package/styles/signature/bootstrap5.scss +1 -1
  186. package/styles/signature/fabric-dark.scss +1 -1
  187. package/styles/signature/fabric.scss +1 -1
  188. package/styles/signature/fluent-dark.scss +1 -1
  189. package/styles/signature/fluent.scss +1 -1
  190. package/styles/signature/highcontrast-light.scss +1 -1
  191. package/styles/signature/highcontrast.scss +1 -1
  192. package/styles/signature/material-dark.css +0 -1
  193. package/styles/signature/material-dark.scss +1 -1
  194. package/styles/signature/material.css +0 -1
  195. package/styles/signature/material.scss +1 -1
  196. package/styles/signature/material3-dark.css +0 -1
  197. package/styles/signature/material3-dark.scss +1 -1
  198. package/styles/signature/material3.css +0 -1
  199. package/styles/signature/material3.scss +1 -1
  200. package/styles/signature/tailwind-dark.css +0 -1
  201. package/styles/signature/tailwind-dark.scss +1 -1
  202. package/styles/signature/tailwind.css +0 -1
  203. package/styles/signature/tailwind.scss +1 -1
  204. package/styles/slider/bootstrap-dark.scss +1 -1
  205. package/styles/slider/bootstrap.scss +1 -1
  206. package/styles/slider/bootstrap4.scss +1 -1
  207. package/styles/slider/bootstrap5-dark.scss +1 -1
  208. package/styles/slider/bootstrap5.scss +1 -1
  209. package/styles/slider/fabric-dark.scss +1 -1
  210. package/styles/slider/fabric.scss +1 -1
  211. package/styles/slider/fluent-dark.scss +1 -1
  212. package/styles/slider/fluent.scss +1 -1
  213. package/styles/slider/highcontrast-light.scss +1 -1
  214. package/styles/slider/highcontrast.scss +1 -1
  215. package/styles/slider/material-dark.css +0 -1
  216. package/styles/slider/material-dark.scss +1 -1
  217. package/styles/slider/material.css +0 -1
  218. package/styles/slider/material.scss +1 -1
  219. package/styles/slider/material3-dark.css +0 -1
  220. package/styles/slider/material3-dark.scss +1 -1
  221. package/styles/slider/material3.css +0 -1
  222. package/styles/slider/material3.scss +1 -1
  223. package/styles/slider/tailwind-dark.css +0 -1
  224. package/styles/slider/tailwind-dark.scss +1 -1
  225. package/styles/slider/tailwind.css +0 -1
  226. package/styles/slider/tailwind.scss +1 -1
  227. package/styles/tailwind-dark.css +0 -13
  228. package/styles/tailwind.css +0 -13
  229. package/styles/textbox/bootstrap-dark.scss +1 -1
  230. package/styles/textbox/bootstrap.scss +1 -1
  231. package/styles/textbox/bootstrap4.scss +1 -1
  232. package/styles/textbox/bootstrap5-dark.scss +1 -1
  233. package/styles/textbox/bootstrap5.scss +1 -1
  234. package/styles/textbox/fabric-dark.scss +1 -1
  235. package/styles/textbox/fabric.scss +1 -1
  236. package/styles/textbox/fluent-dark.scss +1 -1
  237. package/styles/textbox/fluent.scss +1 -1
  238. package/styles/textbox/highcontrast-light.scss +1 -1
  239. package/styles/textbox/highcontrast.scss +1 -1
  240. package/styles/textbox/material-dark.css +0 -1
  241. package/styles/textbox/material-dark.scss +1 -1
  242. package/styles/textbox/material.css +0 -1
  243. package/styles/textbox/material.scss +1 -1
  244. package/styles/textbox/material3-dark.css +0 -1
  245. package/styles/textbox/material3-dark.scss +1 -1
  246. package/styles/textbox/material3.css +0 -1
  247. package/styles/textbox/material3.scss +1 -1
  248. package/styles/textbox/tailwind-dark.css +0 -1
  249. package/styles/textbox/tailwind-dark.scss +1 -1
  250. package/styles/textbox/tailwind.css +0 -1
  251. package/styles/textbox/tailwind.scss +1 -1
  252. package/styles/uploader/bootstrap-dark.scss +1 -1
  253. package/styles/uploader/bootstrap.scss +1 -1
  254. package/styles/uploader/bootstrap4.scss +1 -1
  255. package/styles/uploader/bootstrap5-dark.scss +1 -1
  256. package/styles/uploader/bootstrap5.scss +1 -1
  257. package/styles/uploader/fabric-dark.scss +1 -1
  258. package/styles/uploader/fabric.scss +1 -1
  259. package/styles/uploader/fluent-dark.scss +1 -1
  260. package/styles/uploader/fluent.scss +1 -1
  261. package/styles/uploader/highcontrast-light.scss +1 -1
  262. package/styles/uploader/highcontrast.scss +1 -1
  263. package/styles/uploader/material-dark.css +0 -1
  264. package/styles/uploader/material-dark.scss +1 -1
  265. package/styles/uploader/material.css +0 -1
  266. package/styles/uploader/material.scss +1 -1
  267. package/styles/uploader/material3-dark.css +0 -1
  268. package/styles/uploader/material3-dark.scss +1 -1
  269. package/styles/uploader/material3.css +0 -1
  270. package/styles/uploader/material3.scss +1 -1
  271. package/styles/uploader/tailwind-dark.css +0 -1
  272. package/styles/uploader/tailwind-dark.scss +1 -1
  273. package/styles/uploader/tailwind.css +0 -1
  274. package/styles/uploader/tailwind.scss +1 -1
@@ -1,5 +1,5 @@
1
1
  import { Ajax, Animation, Base, Browser, ChildProperty, Collection, Complex, Component, Event, EventHandler, Internationalization, KeyboardEvents, L10n, NotifyPropertyChanges, Property, SanitizeHtmlHelper, addClass, append, attributes, classList, closest, compile, createElement, detach, extend, formatUnit, getInstance, getNumericObject, getUniqueID, getValue, initializeCSPTemplate, isNullOrUndefined, merge, onIntlChange, remove, removeClass, rippleEffect, select, selectAll, setStyleAttribute, setValue } from '@syncfusion/ej2-base';
2
- import { Popup, Tooltip, createSpinner, getZindexPartial, hideSpinner, showSpinner } from '@syncfusion/ej2-popups';
2
+ import { Popup, Tooltip, createSpinner, getZindexPartial, hideSpinner, isCollide, showSpinner } from '@syncfusion/ej2-popups';
3
3
  import { Deferred, SplitButton, getModel } from '@syncfusion/ej2-splitbuttons';
4
4
 
5
5
  /* eslint-disable valid-jsdoc, jsdoc/require-jsdoc, jsdoc/require-returns, jsdoc/require-param */
@@ -7168,7 +7168,7 @@ let FormValidator = FormValidator_1 = class FormValidator extends Base {
7168
7168
  input.removeAttribute('aria-invalid');
7169
7169
  const inputParent = input.parentElement;
7170
7170
  const grandParent = inputParent.parentElement;
7171
- if (inputParent.classList.contains('e-control-wrapper') || inputParent.classList.contains('e-wrapper')) {
7171
+ if (inputParent.classList.contains('e-control-wrapper') || inputParent.classList.contains('e-wrapper') || (input.classList.contains('e-input') && inputParent.classList.contains('e-input-group'))) {
7172
7172
  inputParent.classList.remove(this.errorClass);
7173
7173
  }
7174
7174
  else if ((grandParent != null) && (grandParent.classList.contains('e-control-wrapper') || grandParent.classList.contains('e-wrapper'))) {
@@ -7182,7 +7182,7 @@ let FormValidator = FormValidator_1 = class FormValidator extends Base {
7182
7182
  this.getErrorElement(input.name);
7183
7183
  this.hideMessage(input.name);
7184
7184
  }
7185
- if (inputParent.classList.contains('e-control-wrapper') || inputParent.classList.contains('e-wrapper')) {
7185
+ if (inputParent.classList.contains('e-control-wrapper') || inputParent.classList.contains('e-wrapper') || (input.classList.contains('e-input') && inputParent.classList.contains('e-input-group'))) {
7186
7186
  inputParent.classList.remove(this.validClass);
7187
7187
  }
7188
7188
  else if ((grandParent != null) && (grandParent.classList.contains('e-control-wrapper') || grandParent.classList.contains('e-wrapper'))) {
@@ -7435,7 +7435,7 @@ let FormValidator = FormValidator_1 = class FormValidator extends Base {
7435
7435
  this.inputElement.setAttribute('aria-describedby', this.inputElement.id + '-info');
7436
7436
  const inputParent = this.inputElement.parentElement;
7437
7437
  const grandParent = inputParent.parentElement;
7438
- if (inputParent.classList.contains('e-control-wrapper') || inputParent.classList.contains('e-wrapper')) {
7438
+ if (inputParent.classList.contains('e-control-wrapper') || inputParent.classList.contains('e-wrapper') || (this.inputElement.classList.contains('e-input') && inputParent.classList.contains('e-input-group'))) {
7439
7439
  inputParent.classList.add(this.errorClass);
7440
7440
  inputParent.classList.remove(this.validClass);
7441
7441
  }
@@ -7455,7 +7455,7 @@ let FormValidator = FormValidator_1 = class FormValidator extends Base {
7455
7455
  }
7456
7456
  eventArgs.errorElement = this.infoElement;
7457
7457
  eventArgs.status = 'failure';
7458
- if (inputParent.classList.contains('e-control-wrapper') || inputParent.classList.contains('e-wrapper')) {
7458
+ if (inputParent.classList.contains('e-control-wrapper') || inputParent.classList.contains('e-wrapper') || (this.inputElement.classList.contains('e-input') && inputParent.classList.contains('e-input-group'))) {
7459
7459
  inputParent.classList.add(this.errorClass);
7460
7460
  inputParent.classList.remove(this.validClass);
7461
7461
  }
@@ -7610,7 +7610,7 @@ let FormValidator = FormValidator_1 = class FormValidator extends Base {
7610
7610
  this.removeErrorRules(name);
7611
7611
  const inputParent = this.inputElement.parentElement;
7612
7612
  const grandParent = inputParent.parentElement;
7613
- if (inputParent.classList.contains('e-control-wrapper') || inputParent.classList.contains('e-wrapper')) {
7613
+ if (inputParent.classList.contains('e-control-wrapper') || inputParent.classList.contains('e-wrapper') || (this.inputElement.classList.contains('e-input') && inputParent.classList.contains('e-input-group'))) {
7614
7614
  inputParent.classList.add(this.validClass);
7615
7615
  inputParent.classList.remove(this.errorClass);
7616
7616
  }
@@ -8997,6 +8997,7 @@ let Uploader = class Uploader extends Component {
8997
8997
  let fileData = [];
8998
8998
  if (!this.multiple) {
8999
8999
  this.clearData(true);
9000
+ this.actionCompleteCount = 0;
9000
9001
  targetFiles = [targetFiles[0]];
9001
9002
  }
9002
9003
  for (let i = 0; i < targetFiles.length; i++) {
@@ -11402,6 +11403,15 @@ let ColorPicker = class ColorPicker extends Component {
11402
11403
  }
11403
11404
  onOpen() {
11404
11405
  this.trigger('open', { element: this.container });
11406
+ if (!Browser.isDevice) {
11407
+ const popupInst = this.getPopupInst();
11408
+ const collision = isCollide(popupInst.element);
11409
+ if (collision.length > 0) {
11410
+ popupInst.collision = { X: 'flip', Y: 'fit' };
11411
+ popupInst.position = { X: 'right', Y: 'bottom' };
11412
+ popupInst.targetType = 'container';
11413
+ }
11414
+ }
11405
11415
  }
11406
11416
  getPopupInst() {
11407
11417
  return getInstance(this.getPopupEle(), Popup);
@@ -11812,7 +11822,6 @@ let ColorPicker = class ColorPicker extends Component {
11812
11822
  });
11813
11823
  tooltip.createElement = this.createElement;
11814
11824
  tooltip.appendTo(this.container);
11815
- // eslint-disable-next-line
11816
11825
  tooltip.open(this.container);
11817
11826
  this.tooltipEle.style.zIndex = getZindexPartial(this.tooltipEle).toString();
11818
11827
  select('.e-tip-content', this.tooltipEle).appendChild(this.createElement('div', { className: 'e-tip-transparent' }));
@@ -13909,20 +13918,28 @@ class SignatureBase extends Component {
13909
13918
  }
13910
13919
  }
13911
13920
  setHTMLProperties() {
13912
- if (this.element.height === 150 && this.element.width === 300) {
13921
+ if (this.element.height === 150 && this.element.width === 300 && this.element.offsetHeight !== 0 && this.element.offsetWidth !== 0) {
13913
13922
  this.element.height = this.element.offsetHeight;
13914
13923
  this.element.width = this.element.offsetWidth;
13915
13924
  this.isResponsive = true;
13916
13925
  }
13917
- else if (this.element.height !== this.element.offsetHeight - 1 || this.element.width !== this.element.offsetWidth - 1) {
13926
+ else if ((this.element.height !== this.element.offsetHeight - 1 || this.element.width !== this.element.offsetWidth - 1)
13927
+ && this.element.offsetHeight !== 0 && this.element.offsetWidth !== 0) {
13918
13928
  this.element.height = this.element.offsetHeight;
13919
13929
  this.element.width = this.element.offsetWidth;
13920
13930
  }
13921
13931
  this.canvasContext.scale(1, 1);
13922
13932
  this.canvasContext.fillStyle = this.strokeColor;
13933
+ this.tempCanvas = this.createElement('canvas', { className: 'e-' + this.getModuleName() + '-temp' });
13934
+ this.tempContext = this.tempCanvas.getContext('2d');
13935
+ this.tempCanvas.width = this.element.width;
13936
+ this.tempCanvas.height = this.element.height;
13923
13937
  if (this.backgroundImage) {
13924
13938
  this.canvasContext.canvas.style.backgroundImage = 'url(' + this.backgroundImage + ')';
13925
13939
  this.canvasContext.canvas.style.backgroundRepeat = 'no-repeat';
13940
+ if (this.saveWithBackground) {
13941
+ this.setBackgroundImage(this.backgroundImage, 'temp');
13942
+ }
13926
13943
  }
13927
13944
  else if (this.backgroundColor) {
13928
13945
  this.canvasContext.canvas.style.backgroundColor = this.backgroundColor;
@@ -14028,7 +14045,7 @@ class SignatureBase extends Component {
14028
14045
  }
14029
14046
  }
14030
14047
  beginStroke(e) {
14031
- this.refresh();
14048
+ this.internalRefresh();
14032
14049
  this.updateStroke(e);
14033
14050
  }
14034
14051
  updateStroke(e) {
@@ -14279,19 +14296,27 @@ class SignatureBase extends Component {
14279
14296
  this.clearArray.push(this.incStep);
14280
14297
  }
14281
14298
  }
14282
- setBackgroundImage(imageSrc) {
14299
+ setBackgroundImage(imageSrc, type) {
14283
14300
  // eslint-disable-next-line @typescript-eslint/no-this-alias
14284
14301
  const proxy = this;
14285
14302
  const imageObj = new Image();
14286
14303
  imageObj.crossOrigin = 'anonymous';
14287
14304
  imageObj.src = imageSrc;
14288
- imageObj.onload = () => {
14289
- proxy.canvasContext.globalCompositeOperation = 'source-over';
14290
- proxy.canvasContext.drawImage(imageObj, 0, 0, proxy.element.width, proxy.element.height);
14291
- proxy.updateSnapCollection();
14292
- proxy.saveBackground(true);
14293
- };
14294
- this.canvasContext.clearRect(0, 0, this.canvasContext.canvas.width, this.canvasContext.canvas.height);
14305
+ if (type == 'temp') {
14306
+ imageObj.onload = () => {
14307
+ proxy.tempContext.globalCompositeOperation = 'source-over';
14308
+ proxy.tempContext.drawImage(imageObj, 0, 0, proxy.element.width, proxy.element.height);
14309
+ };
14310
+ }
14311
+ else {
14312
+ imageObj.onload = () => {
14313
+ proxy.canvasContext.globalCompositeOperation = 'source-over';
14314
+ proxy.canvasContext.drawImage(imageObj, 0, 0, proxy.element.width, proxy.element.height);
14315
+ proxy.updateSnapCollection();
14316
+ proxy.saveBackground(true);
14317
+ };
14318
+ this.canvasContext.clearRect(0, 0, this.canvasContext.canvas.width, this.canvasContext.canvas.height);
14319
+ }
14295
14320
  }
14296
14321
  setBackgroundColor(color) {
14297
14322
  const canvasEle = this.canvasContext;
@@ -14347,16 +14372,21 @@ class SignatureBase extends Component {
14347
14372
  a.click();
14348
14373
  a.parentNode.removeChild(a);
14349
14374
  }
14375
+ internalRefresh() {
14376
+ this.pointColl = [];
14377
+ this.lastVelocity = 0;
14378
+ this.lastWidth = (this.minStrokeWidth + this.maxStrokeWidth) / 2;
14379
+ }
14350
14380
  /**
14351
14381
  * To refresh the signature.
14352
14382
  *
14353
- * @private
14354
14383
  * @returns {void}.
14355
14384
  */
14356
14385
  refresh() {
14357
- this.pointColl = [];
14358
- this.lastVelocity = 0;
14359
- this.lastWidth = (this.minStrokeWidth + this.maxStrokeWidth) / 2;
14386
+ this.isResponsive = false;
14387
+ this.setHTMLProperties();
14388
+ this.resizeHandler();
14389
+ this.internalRefresh();
14360
14390
  }
14361
14391
  /**
14362
14392
  * Erases all the signature strokes signed by user.
@@ -14366,7 +14396,7 @@ class SignatureBase extends Component {
14366
14396
  clear() {
14367
14397
  const args = { actionName: 'clear' };
14368
14398
  this.canvasContext.clearRect(0, 0, this.canvasContext.canvas.width, this.canvasContext.canvas.height);
14369
- this.refresh();
14399
+ this.internalRefresh();
14370
14400
  this.signRatioPointsColl = [];
14371
14401
  this.updateSnapCollection(true);
14372
14402
  this.isSignatureEmpty = true;
@@ -14640,8 +14670,7 @@ class SignatureBase extends Component {
14640
14670
  this.snapColl.pop();
14641
14671
  this.incStep--;
14642
14672
  }
14643
- toSVG(fileName) {
14644
- const dataUrl = this.canvasContext.canvas.toDataURL();
14673
+ toSVG(fileName, dataUrl) {
14645
14674
  const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
14646
14675
  svg.setAttribute('width', this.canvasContext.canvas.width.toString());
14647
14676
  svg.setAttribute('height', this.canvasContext.canvas.height.toString());
@@ -14682,27 +14711,23 @@ class SignatureBase extends Component {
14682
14711
  * @returns {string}.
14683
14712
  */
14684
14713
  getSignature(type) {
14714
+ if (this.saveWithBackground && this.backgroundColor && !this.backgroundImage) {
14715
+ this.tempContext.fillStyle = this.backgroundColor;
14716
+ this.tempContext.fillRect(0, 0, this.canvasContext.canvas.width, this.canvasContext.canvas.height);
14717
+ }
14718
+ else if (!this.backgroundColor && !this.backgroundImage && type === 'Jpeg') {
14719
+ this.tempContext.fillStyle = "#fff";
14720
+ this.tempContext.fillRect(0, 0, this.canvasContext.canvas.width, this.canvasContext.canvas.height);
14721
+ }
14722
+ this.tempContext.drawImage(this.element, 0, 0);
14685
14723
  if (type === 'Jpeg') {
14686
- const imgData = this.canvasContext.getImageData(0, 0, this.element.width, this.element.height);
14687
- const data = imgData.data;
14688
- for (let i = 0; i < data.length; i += 4) {
14689
- if (data[i + 3] < 255) {
14690
- data[i] = 255 - data[i];
14691
- data[i + 1] = 255 - data[i + 1];
14692
- data[i + 2] = 255 - data[i + 2];
14693
- data[i + 3] = 255 - data[i + 3];
14694
- }
14695
- }
14696
- this.canvasContext.putImageData(imgData, 0, 0);
14697
- const dataURL = this.canvasContext.canvas.toDataURL('image/jpeg');
14698
- this.resizeHandler();
14699
- return dataURL;
14724
+ return this.tempCanvas.toDataURL('image/jpeg');
14700
14725
  }
14701
14726
  else if (type === 'Svg') {
14702
- return this.toSVG(null);
14727
+ return this.toSVG(null, this.tempCanvas.toDataURL('image/png'));
14703
14728
  }
14704
14729
  else {
14705
- return this.canvasContext.canvas.toDataURL('image/png');
14730
+ return this.tempCanvas.toDataURL('image/png');
14706
14731
  }
14707
14732
  }
14708
14733
  /**
@@ -14757,6 +14782,9 @@ class SignatureBase extends Component {
14757
14782
  case 'backgroundImage':
14758
14783
  canvasNew.canvas.style.backgroundImage = 'url(' + value + ')';
14759
14784
  this.backgroundImage = value;
14785
+ if (this.saveWithBackground) {
14786
+ this.setBackgroundImage(this.backgroundImage, 'temp');
14787
+ }
14760
14788
  break;
14761
14789
  case 'strokeColor':
14762
14790
  canvasNew.fillStyle = value;