@syncfusion/ej2-inputs 19.4.52 → 20.1.55

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 (155) hide show
  1. package/CHANGELOG.md +0 -16
  2. package/README.md +15 -2
  3. package/dist/ej2-inputs.umd.min.js +2 -2
  4. package/dist/ej2-inputs.umd.min.js.map +1 -1
  5. package/dist/es6/ej2-inputs.es2015.js +49 -46
  6. package/dist/es6/ej2-inputs.es2015.js.map +1 -1
  7. package/dist/es6/ej2-inputs.es5.js +50 -47
  8. package/dist/es6/ej2-inputs.es5.js.map +1 -1
  9. package/dist/global/ej2-inputs.min.js +2 -2
  10. package/dist/global/ej2-inputs.min.js.map +1 -1
  11. package/dist/global/index.d.ts +1 -1
  12. package/package.json +9 -9
  13. package/src/color-picker/color-picker.js +1 -1
  14. package/src/common/signature-base.d.ts +7 -49
  15. package/src/common/signature-base.js +21 -33
  16. package/src/slider/slider.d.ts +1 -0
  17. package/src/slider/slider.js +5 -2
  18. package/src/textbox/textbox-model.d.ts +1 -1
  19. package/src/textbox/textbox.js +8 -1
  20. package/src/uploader/uploader.js +16 -11
  21. package/styles/bootstrap-dark.css +10 -12
  22. package/styles/bootstrap.css +10 -12
  23. package/styles/bootstrap4.css +9 -14
  24. package/styles/bootstrap5-dark.css +118 -57
  25. package/styles/bootstrap5.css +118 -57
  26. package/styles/color-picker/_bootstrap5-definition.scss +10 -10
  27. package/styles/color-picker/_fluent-dark-definition.scss +1 -0
  28. package/styles/color-picker/_fluent-definition.scss +18 -18
  29. package/styles/color-picker/_layout.scss +33 -5
  30. package/styles/color-picker/_tailwind-definition.scss +4 -3
  31. package/styles/color-picker/_theme.scss +1 -1
  32. package/styles/color-picker/bootstrap5-dark.css +26 -20
  33. package/styles/color-picker/bootstrap5.css +26 -20
  34. package/styles/color-picker/fluent-dark.css +902 -0
  35. package/styles/color-picker/fluent-dark.scss +11 -0
  36. package/styles/color-picker/fluent.css +902 -0
  37. package/styles/color-picker/fluent.scss +11 -0
  38. package/styles/color-picker/icons/_fluent-dark.scss +1 -0
  39. package/styles/color-picker/icons/_fluent.scss +1 -1
  40. package/styles/color-picker/icons/_tailwind-dark.scss +3 -2
  41. package/styles/color-picker/icons/_tailwind.scss +3 -2
  42. package/styles/color-picker/tailwind-dark.css +10 -6
  43. package/styles/color-picker/tailwind.css +10 -6
  44. package/styles/fabric-dark.css +8 -11
  45. package/styles/fabric.css +8 -11
  46. package/styles/fluent-dark.css +7366 -0
  47. package/styles/fluent-dark.scss +8 -0
  48. package/styles/fluent.css +7366 -0
  49. package/styles/fluent.scss +8 -0
  50. package/styles/highcontrast-light.css +8 -11
  51. package/styles/highcontrast.css +8 -11
  52. package/styles/input/_bootstrap-dark-definition.scss +1 -0
  53. package/styles/input/_bootstrap-definition.scss +1 -0
  54. package/styles/input/_bootstrap4-definition.scss +1 -0
  55. package/styles/input/_bootstrap5-definition.scss +23 -22
  56. package/styles/input/_fabric-dark-definition.scss +3 -1
  57. package/styles/input/_fabric-definition.scss +2 -1
  58. package/styles/input/_fluent-dark-definition.scss +1 -0
  59. package/styles/input/_fluent-definition.scss +8 -6
  60. package/styles/input/_highcontrast-definition.scss +2 -1
  61. package/styles/input/_highcontrast-light-definition.scss +2 -1
  62. package/styles/input/_layout.scss +186 -22
  63. package/styles/input/_material-dark-definition.scss +1 -0
  64. package/styles/input/_material-definition.scss +2 -1
  65. package/styles/input/_tailwind-definition.scss +18 -17
  66. package/styles/input/_theme.scss +9 -2
  67. package/styles/input/bootstrap-dark.css +8 -8
  68. package/styles/input/bootstrap.css +8 -8
  69. package/styles/input/bootstrap4.css +8 -8
  70. package/styles/input/bootstrap5-dark.css +86 -29
  71. package/styles/input/bootstrap5.css +86 -29
  72. package/styles/input/fabric-dark.css +7 -7
  73. package/styles/input/fabric.css +7 -7
  74. package/styles/input/fluent-dark.css +4595 -0
  75. package/styles/input/fluent-dark.scss +4 -0
  76. package/styles/input/fluent.css +4595 -0
  77. package/styles/input/fluent.scss +4 -0
  78. package/styles/input/highcontrast-light.css +7 -7
  79. package/styles/input/highcontrast.css +7 -7
  80. package/styles/input/icons/_fluent-dark.scss +1 -0
  81. package/styles/input/icons/_fluent.scss +2 -2
  82. package/styles/input/icons/_tailwind.scss +2 -2
  83. package/styles/input/material-dark.css +90 -7
  84. package/styles/input/material.css +90 -7
  85. package/styles/input/tailwind-dark.css +96 -40
  86. package/styles/input/tailwind.css +96 -40
  87. package/styles/maskedtextbox/_fluent-dark-definition.scss +1 -0
  88. package/styles/maskedtextbox/fluent-dark.css +26 -0
  89. package/styles/maskedtextbox/fluent-dark.scss +4 -0
  90. package/styles/maskedtextbox/fluent.css +26 -0
  91. package/styles/maskedtextbox/fluent.scss +4 -0
  92. package/styles/material-dark.css +91 -11
  93. package/styles/material.css +91 -11
  94. package/styles/numerictextbox/_fluent-dark-definition.scss +1 -0
  95. package/styles/numerictextbox/fluent-dark.css +60 -0
  96. package/styles/numerictextbox/fluent-dark.scss +5 -0
  97. package/styles/numerictextbox/fluent.css +60 -0
  98. package/styles/numerictextbox/fluent.scss +5 -0
  99. package/styles/numerictextbox/icons/_fluent-dark.scss +1 -0
  100. package/styles/numerictextbox/icons/_fluent.scss +3 -3
  101. package/styles/numerictextbox/icons/_tailwind.scss +2 -2
  102. package/styles/numerictextbox/tailwind-dark.css +2 -2
  103. package/styles/numerictextbox/tailwind.css +2 -2
  104. package/styles/signature/_fluent-dark-definition.scss +1 -0
  105. package/styles/signature/fluent-dark.css +9 -0
  106. package/styles/signature/fluent-dark.scss +3 -0
  107. package/styles/signature/fluent.css +9 -0
  108. package/styles/signature/fluent.scss +3 -0
  109. package/styles/slider/_fluent-dark-definition.scss +1 -0
  110. package/styles/slider/_fluent-definition.scss +46 -66
  111. package/styles/slider/_layout.scss +152 -51
  112. package/styles/slider/_tailwind-definition.scss +1 -1
  113. package/styles/slider/_theme.scss +14 -8
  114. package/styles/slider/bootstrap-dark.css +1 -0
  115. package/styles/slider/bootstrap.css +1 -0
  116. package/styles/slider/bootstrap4.css +0 -2
  117. package/styles/slider/bootstrap5-dark.css +5 -4
  118. package/styles/slider/bootstrap5.css +5 -4
  119. package/styles/slider/fluent-dark.css +632 -0
  120. package/styles/slider/fluent-dark.scss +5 -0
  121. package/styles/slider/fluent.css +632 -0
  122. package/styles/slider/fluent.scss +5 -0
  123. package/styles/slider/tailwind-dark.css +9 -5
  124. package/styles/slider/tailwind.css +9 -5
  125. package/styles/tailwind-dark.css +178 -92
  126. package/styles/tailwind.css +178 -92
  127. package/styles/textbox/_fluent-dark-definition.scss +1 -0
  128. package/styles/textbox/fluent-dark.css +0 -0
  129. package/styles/textbox/fluent-dark.scss +4 -0
  130. package/styles/textbox/fluent.css +0 -0
  131. package/styles/textbox/fluent.scss +4 -0
  132. package/styles/uploader/_fluent-dark-definition.scss +1 -0
  133. package/styles/uploader/_layout.scss +11 -0
  134. package/styles/uploader/_tailwind-definition.scss +29 -14
  135. package/styles/uploader/_theme.scss +25 -2
  136. package/styles/uploader/bootstrap-dark.css +1 -4
  137. package/styles/uploader/bootstrap.css +1 -4
  138. package/styles/uploader/bootstrap4.css +1 -4
  139. package/styles/uploader/bootstrap5-dark.css +1 -4
  140. package/styles/uploader/bootstrap5.css +1 -4
  141. package/styles/uploader/fabric-dark.css +1 -4
  142. package/styles/uploader/fabric.css +1 -4
  143. package/styles/uploader/fluent-dark.css +1137 -0
  144. package/styles/uploader/fluent-dark.scss +6 -0
  145. package/styles/uploader/fluent.css +1137 -0
  146. package/styles/uploader/fluent.scss +6 -0
  147. package/styles/uploader/highcontrast-light.css +1 -4
  148. package/styles/uploader/highcontrast.css +1 -4
  149. package/styles/uploader/icons/_fluent-dark.scss +1 -0
  150. package/styles/uploader/icons/_fluent.scss +7 -7
  151. package/styles/uploader/icons/_tailwind.scss +7 -8
  152. package/styles/uploader/material-dark.css +1 -4
  153. package/styles/uploader/material.css +1 -4
  154. package/styles/uploader/tailwind-dark.css +61 -39
  155. package/styles/uploader/tailwind.css +61 -39
@@ -4173,6 +4173,7 @@ let Slider = class Slider extends Component {
4173
4173
  this.isBootstrap4 = this.getTheme(this.sliderContainer) === 'bootstrap4';
4174
4174
  this.isTailwind = this.getTheme(this.sliderContainer) === 'tailwind' || this.getTheme(this.sliderContainer) === 'tailwind-dark';
4175
4175
  this.isBootstrap5 = this.getTheme(this.sliderContainer) === 'bootstrap5';
4176
+ this.isFluent = this.getTheme(this.sliderContainer) === 'FluentUI';
4176
4177
  this.isMaterialTooltip = this.isMaterial && this.type !== 'Range' && this.tooltip.isVisible;
4177
4178
  }
4178
4179
  createRangeBar() {
@@ -4320,7 +4321,9 @@ let Slider = class Slider extends Component {
4320
4321
  transitionEnd(e) {
4321
4322
  if (e.propertyName !== 'transform') {
4322
4323
  this.handleStart();
4323
- this.getHandle().style.transition = 'none';
4324
+ if (!this.enableAnimation) {
4325
+ this.getHandle().style.transition = 'none';
4326
+ }
4324
4327
  if (this.type !== 'Default') {
4325
4328
  this.rangeBar.style.transition = 'none';
4326
4329
  }
@@ -4661,7 +4664,7 @@ let Slider = class Slider extends Component {
4661
4664
  }
4662
4665
  renderTooltip() {
4663
4666
  this.tooltipObj = new Tooltip({
4664
- showTipPointer: this.isBootstrap || this.isMaterial || this.isBootstrap4 || this.isTailwind || this.isBootstrap5,
4667
+ showTipPointer: this.isBootstrap || this.isMaterial || this.isBootstrap4 || this.isTailwind || this.isBootstrap5 || this.isFluent,
4665
4668
  cssClass: classNames.sliderTooltip,
4666
4669
  height: this.isMaterial ? 30 : 'auto',
4667
4670
  animation: { open: { effect: 'None' }, close: { effect: 'FadeOut', duration: 500 } },
@@ -9008,15 +9011,17 @@ let Uploader = class Uploader extends Component {
9008
9011
  fileList.classList.add(INVALID_FILE);
9009
9012
  }
9010
9013
  createFormInput(fileData) {
9011
- const inputElement = this.element.cloneNode(true);
9012
- inputElement.classList.add(HIDDEN_INPUT);
9013
- for (const listItem of fileData) {
9014
- listItem.input = inputElement;
9015
- }
9016
- inputElement.setAttribute('name', this.uploaderName);
9017
- this.uploadWrapper.querySelector('.' + INPUT_WRAPPER).appendChild(inputElement);
9018
- if (this.browserName !== 'msie' && this.browserName !== 'edge') {
9019
- this.element.value = '';
9014
+ if (this.browserName !== 'safari') {
9015
+ const inputElement = this.element.cloneNode(true);
9016
+ inputElement.classList.add(HIDDEN_INPUT);
9017
+ for (const listItem of fileData) {
9018
+ listItem.input = inputElement;
9019
+ }
9020
+ inputElement.setAttribute('name', this.uploaderName);
9021
+ this.uploadWrapper.querySelector('.' + INPUT_WRAPPER).appendChild(inputElement);
9022
+ if (this.browserName !== 'msie' && this.browserName !== 'edge') {
9023
+ this.element.value = '';
9024
+ }
9020
9025
  }
9021
9026
  }
9022
9027
  getFileSize(fileData) {
@@ -9403,7 +9408,7 @@ let Uploader = class Uploader extends Component {
9403
9408
  }
9404
9409
  removecanceledFile(e, file) {
9405
9410
  const liElement = this.getLiElement(file);
9406
- if (liElement.querySelector('.' + RETRY_ICON) || isNullOrUndefined(liElement.querySelector('.' + ABORT_ICON))) {
9411
+ if (isNullOrUndefined(liElement) || liElement.querySelector('.' + RETRY_ICON) || isNullOrUndefined(liElement.querySelector('.' + ABORT_ICON))) {
9407
9412
  return;
9408
9413
  }
9409
9414
  this.updateStatus(file, this.localizedTexts('fileUploadCancel'), '5');
@@ -9636,6 +9641,9 @@ let Uploader = class Uploader extends Component {
9636
9641
  if (selectAll(uploadTemplate, document).length) {
9637
9642
  return compile(select(uploadTemplate, document).innerHTML.trim());
9638
9643
  }
9644
+ else {
9645
+ return compile(uploadTemplate);
9646
+ }
9639
9647
  }
9640
9648
  catch (exception) {
9641
9649
  return compile(uploadTemplate);
@@ -11170,7 +11178,7 @@ let ColorPicker = class ColorPicker extends Component {
11170
11178
  }
11171
11179
  roundedColor = this.roundValue(colors[i]).toLowerCase();
11172
11180
  tile = this.createElement('span', {
11173
- className: TILE, attrs: { 'role': 'gridcell', 'aria-label': roundedColor, 'aria-selected': 'false' }
11181
+ className: TILE, attrs: { 'role': 'gridcell', 'aria-label': roundedColor, 'aria-selected': 'false', 'tabindex': '0' }
11174
11182
  });
11175
11183
  this.trigger('beforeTileRender', { element: tile, presetName: key, value: colors[i] });
11176
11184
  row.appendChild(tile);
@@ -12894,6 +12902,9 @@ let TextBox = class TextBox extends Component {
12894
12902
  }
12895
12903
  this.updateHTMLAttrToElement();
12896
12904
  this.checkAttributes(false);
12905
+ if ((isNullOrUndefined(this.textboxOptions) || (this.textboxOptions['value'] === undefined)) && this.element.value !== '') {
12906
+ this.setProperties({ value: this.element.value }, true);
12907
+ }
12897
12908
  if (this.element.tagName !== 'TEXTAREA') {
12898
12909
  this.element.setAttribute('type', this.type);
12899
12910
  }
@@ -13188,6 +13199,10 @@ let TextBox = class TextBox extends Component {
13188
13199
  this.preventChange = false;
13189
13200
  this.trigger('change', eventArgs);
13190
13201
  this.previousValue = this.value;
13202
+ //EJ2CORE-738:For this task we update the textarea value to the input when input tag with multiline is present
13203
+ if (this.element.tagName === 'INPUT' && this.multiline && Browser.info.name === 'mozilla') {
13204
+ this.element.value = this.respectiveElement.value;
13205
+ }
13191
13206
  }
13192
13207
  bindClearEvent() {
13193
13208
  if (this.showClearButton && this.respectiveElement.tagName !== 'TEXTAREA') {
@@ -13442,53 +13457,36 @@ class SignatureBase extends Component {
13442
13457
  this.backgroundLoaded = null;
13443
13458
  this.clearArray = [];
13444
13459
  this.isBlazor = false;
13460
+ this.isResponsive = false;
13445
13461
  }
13446
13462
  /**
13447
13463
  * To Initialize the component rendering
13448
13464
  *
13449
13465
  * @private
13450
13466
  * @param {HTMLCanvasElement} element - Specifies the canvas element.
13451
- * @param {parameter} parameter - Specifies only for the blazor parameter.
13452
13467
  * @param {BlazorDotnetObject} dotnetRef - Specifies for blazor client to server communication.
13453
13468
  * @returns {void}
13454
13469
  */
13455
- initialize(element, parameter, dotnetRef) {
13470
+ initialize(element, dotnetRef) {
13456
13471
  this.element = element;
13457
13472
  this.canvasContext = this.element.getContext('2d');
13458
13473
  this.canvasContext.canvas.tabIndex = 0;
13459
- if (parameter) {
13460
- this.setBlazorParameter(parameter);
13474
+ if (dotnetRef) {
13461
13475
  this.dotnetRef = dotnetRef;
13476
+ this.isBlazor = true;
13477
+ if (this.signatureValue) {
13478
+ this.loadPersistedSignature();
13479
+ }
13462
13480
  }
13463
13481
  this.setHTMLProperties();
13464
13482
  if (isNullOrUndefined(this.signatureValue)) {
13465
13483
  this.updateSnapCollection(true);
13466
13484
  }
13467
13485
  this.wireEvents();
13468
- this.isSignatureEmpty = true;
13469
13486
  if (!this.isBlazor) {
13470
13487
  this.trigger('created', null);
13471
13488
  }
13472
13489
  }
13473
- setBlazorParameter(parameter) {
13474
- this.isBlazor = true;
13475
- this.backgroundColor = parameter.backgroundColor;
13476
- this.backgroundImage = parameter.backgroundImage;
13477
- this.disabled = parameter.disabled;
13478
- this.isReadOnly = parameter.isReadOnly;
13479
- this.maxStrokeWidth = parameter.maxStrokeWidth || 2;
13480
- this.minStrokeWidth = parameter.minStrokeWidth || 0.5;
13481
- this.velocity = parameter.velocity || 0.7;
13482
- this.strokeColor = parameter.strokeColor || '#000000';
13483
- this.saveWithBackground = parameter.saveWithBackground;
13484
- this.interval = 30;
13485
- this.previous = 0;
13486
- this.minDistance = 5;
13487
- this.signatureValue = parameter.signatureValue;
13488
- if (this.signatureValue) {
13489
- this.loadPersistedSignature();
13490
- }
13491
- }
13492
13490
  wireEvents() {
13493
13491
  if (isNullOrUndefined(this.pointColl) && !this.isReadOnly && !this.disabled) {
13494
13492
  EventHandler.add(this.canvasContext.canvas, 'mousedown touchstart', this.mouseDownHandler, this);
@@ -13509,24 +13507,21 @@ class SignatureBase extends Component {
13509
13507
  }
13510
13508
  else {
13511
13509
  EventHandler.remove(this.canvasContext.canvas, 'mousedown touchstart', this.mouseDownHandler);
13512
- EventHandler.remove(this.canvasContext.canvas, 'mousemove touchmove', this.mouseMoveHandler);
13513
- EventHandler.remove(this.canvasContext.canvas, 'mouseup touchend', this.mouseUpHandler);
13514
- EventHandler.remove(document, 'mouseup', this.mouseUpHandler);
13515
13510
  EventHandler.remove(this.canvasContext.canvas, 'keydown', this.keyboardHandler);
13516
13511
  window.removeEventListener('resize', this.resizeHandler);
13517
13512
  }
13518
13513
  }
13519
13514
  setHTMLProperties() {
13520
- if (this.element.height === 150) {
13515
+ if (this.element.height === 150 && this.element.width === 300) {
13521
13516
  this.element.height = this.element.offsetHeight;
13522
- }
13523
- if (this.element.width === 300) {
13524
13517
  this.element.width = this.element.offsetWidth;
13518
+ this.isResponsive = true;
13525
13519
  }
13526
13520
  this.canvasContext.scale(1, 1);
13527
13521
  this.canvasContext.fillStyle = this.strokeColor;
13528
13522
  if (this.backgroundImage) {
13529
13523
  this.canvasContext.canvas.style.backgroundImage = 'url(' + this.backgroundImage + ')';
13524
+ this.canvasContext.canvas.style.backgroundRepeat = "no-repeat";
13530
13525
  }
13531
13526
  else if (this.backgroundColor) {
13532
13527
  this.canvasContext.canvas.style.backgroundColor = this.backgroundColor;
@@ -13604,9 +13599,11 @@ class SignatureBase extends Component {
13604
13599
  resizeHandler() {
13605
13600
  // eslint-disable-next-line @typescript-eslint/no-this-alias
13606
13601
  const proxy = this;
13607
- this.canvasContext.canvas.width = this.element.offsetWidth;
13608
- this.canvasContext.canvas.height = this.element.offsetHeight;
13609
- this.canvasContext.scale(1, 1);
13602
+ if (this.isResponsive) {
13603
+ this.canvasContext.canvas.width = this.element.offsetWidth;
13604
+ this.canvasContext.canvas.height = this.element.offsetHeight;
13605
+ this.canvasContext.scale(1, 1);
13606
+ }
13610
13607
  const restoreImg = new Image();
13611
13608
  restoreImg.src = this.snapColl[this.incStep];
13612
13609
  restoreImg.onload = () => {
@@ -14094,6 +14091,9 @@ class SignatureBase extends Component {
14094
14091
  const proxy = this;
14095
14092
  const bitmapImage = new Image();
14096
14093
  bitmapImage.src = signature;
14094
+ if (signature.slice(0, 4) !== 'data') {
14095
+ bitmapImage.crossOrigin = 'anonymous';
14096
+ }
14097
14097
  bitmapImage.onload = () => {
14098
14098
  Promise.all([
14099
14099
  createImageBitmap(bitmapImage, 0, 0, width, height)
@@ -14102,6 +14102,9 @@ class SignatureBase extends Component {
14102
14102
  tempCanvas.width = width;
14103
14103
  tempCanvas.height = height;
14104
14104
  tempCanvas.getContext('2d').drawImage(results[0], 0, 0);
14105
+ if (signature.slice(0, 4) !== 'data') {
14106
+ proxy.canvasContext.globalCompositeOperation = 'source-over';
14107
+ }
14105
14108
  proxy.canvasContext.drawImage(tempCanvas, 0, 0, width, height, 0, 0, proxy.element.width, proxy.element.height);
14106
14109
  proxy.updateSnapCollection();
14107
14110
  });