q2-tecton-elements 1.38.0 → 1.38.1

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 (174) hide show
  1. package/dist/cjs/click-elsewhere_2.cjs.entry.js +1 -1
  2. package/dist/cjs/{index-5d70039b.js → index-09c712ea.js} +9 -2
  3. package/dist/cjs/index-09c712ea.js.map +1 -0
  4. package/dist/cjs/q2-action-sheet.cjs.entry.js +1 -1
  5. package/dist/cjs/q2-btn_2.cjs.entry.js +1 -1
  6. package/dist/cjs/q2-calendar.cjs.entry.js +1 -1
  7. package/dist/cjs/q2-card.cjs.entry.js +1 -1
  8. package/dist/cjs/q2-carousel-pane.cjs.entry.js +1 -1
  9. package/dist/cjs/q2-carousel.cjs.entry.js +1 -1
  10. package/dist/cjs/q2-chart-area.cjs.entry.js +1 -1
  11. package/dist/cjs/q2-chart-bar.cjs.entry.js +1 -1
  12. package/dist/cjs/q2-chart-donut.cjs.entry.js +1 -1
  13. package/dist/cjs/q2-checkbox-group.cjs.entry.js +1 -1
  14. package/dist/cjs/q2-checkbox.cjs.entry.js +1 -1
  15. package/dist/cjs/q2-data-table.cjs.entry.js +1 -1
  16. package/dist/cjs/q2-dropdown-item.cjs.entry.js +1 -1
  17. package/dist/cjs/q2-dropdown.cjs.entry.js +1 -1
  18. package/dist/cjs/q2-editable-field.cjs.entry.js +1 -1
  19. package/dist/cjs/q2-icon.cjs.entry.js +1 -1
  20. package/dist/cjs/q2-input.cjs.entry.js +76 -4
  21. package/dist/cjs/q2-input.cjs.entry.js.map +1 -1
  22. package/dist/cjs/q2-loc.cjs.entry.js +1 -1
  23. package/dist/cjs/q2-message.cjs.entry.js +1 -1
  24. package/dist/cjs/q2-month-picker.cjs.entry.js +1 -1
  25. package/dist/cjs/q2-optgroup_2.cjs.entry.js +1 -1
  26. package/dist/cjs/q2-option-list.cjs.entry.js +1 -1
  27. package/dist/cjs/q2-pagination.cjs.entry.js +1 -1
  28. package/dist/cjs/q2-pill.cjs.entry.js +1 -1
  29. package/dist/cjs/q2-radio-group.cjs.entry.js +1 -1
  30. package/dist/cjs/q2-radio.cjs.entry.js +1 -1
  31. package/dist/cjs/q2-section.cjs.entry.js +1 -1
  32. package/dist/cjs/q2-select.cjs.entry.js +1 -1
  33. package/dist/cjs/q2-stepper-pane.cjs.entry.js +1 -1
  34. package/dist/cjs/q2-stepper-vertical.cjs.entry.js +1 -1
  35. package/dist/cjs/q2-stepper.cjs.entry.js +1 -1
  36. package/dist/cjs/q2-tab-container.cjs.entry.js +1 -1
  37. package/dist/cjs/q2-tag.cjs.entry.js +1 -1
  38. package/dist/cjs/q2-textarea.cjs.entry.js +1 -1
  39. package/dist/cjs/q2-tooltip.cjs.entry.js +1 -1
  40. package/dist/collection/components/q2-data-table/index.js +6 -6
  41. package/dist/collection/components/q2-input/index.js +77 -5
  42. package/dist/collection/components/q2-input/index.js.map +1 -1
  43. package/dist/collection/components/q2-option-list/index.js +2 -2
  44. package/dist/collection/components/q2-stepper-pane/index.js +2 -2
  45. package/dist/collection/utils/index.js +8 -1
  46. package/dist/collection/utils/index.js.map +1 -1
  47. package/dist/components/index16.js +8 -1
  48. package/dist/components/index16.js.map +1 -1
  49. package/dist/components/index9.js +76 -4
  50. package/dist/components/index9.js.map +1 -1
  51. package/dist/esm/click-elsewhere_2.entry.js +1 -1
  52. package/dist/esm/{index-58324e40.js → index-84f1034e.js} +9 -2
  53. package/dist/esm/index-84f1034e.js.map +1 -0
  54. package/dist/esm/q2-action-sheet.entry.js +1 -1
  55. package/dist/esm/q2-btn_2.entry.js +1 -1
  56. package/dist/esm/q2-calendar.entry.js +1 -1
  57. package/dist/esm/q2-card.entry.js +1 -1
  58. package/dist/esm/q2-carousel-pane.entry.js +1 -1
  59. package/dist/esm/q2-carousel.entry.js +1 -1
  60. package/dist/esm/q2-chart-area.entry.js +1 -1
  61. package/dist/esm/q2-chart-bar.entry.js +1 -1
  62. package/dist/esm/q2-chart-donut.entry.js +1 -1
  63. package/dist/esm/q2-checkbox-group.entry.js +1 -1
  64. package/dist/esm/q2-checkbox.entry.js +1 -1
  65. package/dist/esm/q2-data-table.entry.js +1 -1
  66. package/dist/esm/q2-dropdown-item.entry.js +1 -1
  67. package/dist/esm/q2-dropdown.entry.js +1 -1
  68. package/dist/esm/q2-editable-field.entry.js +1 -1
  69. package/dist/esm/q2-icon.entry.js +1 -1
  70. package/dist/esm/q2-input.entry.js +76 -4
  71. package/dist/esm/q2-input.entry.js.map +1 -1
  72. package/dist/esm/q2-loc.entry.js +1 -1
  73. package/dist/esm/q2-message.entry.js +1 -1
  74. package/dist/esm/q2-month-picker.entry.js +1 -1
  75. package/dist/esm/q2-optgroup_2.entry.js +1 -1
  76. package/dist/esm/q2-option-list.entry.js +1 -1
  77. package/dist/esm/q2-pagination.entry.js +1 -1
  78. package/dist/esm/q2-pill.entry.js +1 -1
  79. package/dist/esm/q2-radio-group.entry.js +1 -1
  80. package/dist/esm/q2-radio.entry.js +1 -1
  81. package/dist/esm/q2-section.entry.js +1 -1
  82. package/dist/esm/q2-select.entry.js +1 -1
  83. package/dist/esm/q2-stepper-pane.entry.js +1 -1
  84. package/dist/esm/q2-stepper-vertical.entry.js +1 -1
  85. package/dist/esm/q2-stepper.entry.js +1 -1
  86. package/dist/esm/q2-tab-container.entry.js +1 -1
  87. package/dist/esm/q2-tag.entry.js +1 -1
  88. package/dist/esm/q2-textarea.entry.js +1 -1
  89. package/dist/esm/q2-tooltip.entry.js +1 -1
  90. package/dist/q2-tecton-elements/{p-a8764ad0.entry.js → p-059ea7c9.entry.js} +2 -2
  91. package/dist/q2-tecton-elements/{p-65ab48b2.entry.js → p-072bda73.entry.js} +2 -2
  92. package/dist/q2-tecton-elements/{p-5ee3bf5f.entry.js → p-0cade28b.entry.js} +2 -2
  93. package/dist/q2-tecton-elements/{p-53bd1be9.entry.js → p-107f07f2.entry.js} +2 -2
  94. package/dist/q2-tecton-elements/{p-afd284f5.entry.js → p-145849d0.entry.js} +2 -2
  95. package/dist/q2-tecton-elements/p-14e3c48f.entry.js +2 -0
  96. package/dist/q2-tecton-elements/p-14e3c48f.entry.js.map +1 -0
  97. package/dist/q2-tecton-elements/{p-eb3289eb.entry.js → p-15179d55.entry.js} +2 -2
  98. package/dist/q2-tecton-elements/{p-99ff69c7.entry.js → p-2812f9d2.entry.js} +2 -2
  99. package/dist/q2-tecton-elements/{p-00587034.entry.js → p-29a7ca63.entry.js} +2 -2
  100. package/dist/q2-tecton-elements/{p-ec8624c9.entry.js → p-311f37e2.entry.js} +2 -2
  101. package/dist/q2-tecton-elements/{p-0b68e7ae.entry.js → p-3d82d94f.entry.js} +2 -2
  102. package/dist/q2-tecton-elements/{p-bf3846ea.entry.js → p-52132d80.entry.js} +2 -2
  103. package/dist/q2-tecton-elements/{p-09c7016a.entry.js → p-57e81863.entry.js} +2 -2
  104. package/dist/q2-tecton-elements/{p-b77dd620.entry.js → p-5843f6c8.entry.js} +2 -2
  105. package/dist/q2-tecton-elements/{p-ae00a4df.entry.js → p-5c033ed9.entry.js} +2 -2
  106. package/dist/q2-tecton-elements/{p-850025cf.entry.js → p-69dcf12e.entry.js} +2 -2
  107. package/dist/q2-tecton-elements/{p-b54fe10a.entry.js → p-6ae87415.entry.js} +2 -2
  108. package/dist/q2-tecton-elements/{p-e4a4f0e0.entry.js → p-72b4ecc6.entry.js} +2 -2
  109. package/dist/q2-tecton-elements/{p-570e5e5d.entry.js → p-81b917a5.entry.js} +2 -2
  110. package/dist/q2-tecton-elements/{p-a99817de.entry.js → p-85dc889e.entry.js} +2 -2
  111. package/dist/q2-tecton-elements/{p-88a19e74.entry.js → p-8f273db2.entry.js} +2 -2
  112. package/dist/q2-tecton-elements/{p-1e0b598b.entry.js → p-8f8d5362.entry.js} +2 -2
  113. package/dist/q2-tecton-elements/{p-75fd97cb.entry.js → p-9220365b.entry.js} +2 -2
  114. package/dist/q2-tecton-elements/{p-e1b729a0.entry.js → p-959f47ef.entry.js} +2 -2
  115. package/dist/q2-tecton-elements/{p-b2a176bb.entry.js → p-a09c90c1.entry.js} +2 -2
  116. package/dist/q2-tecton-elements/{p-32245ba0.entry.js → p-a4017e55.entry.js} +2 -2
  117. package/dist/q2-tecton-elements/{p-d66b73bb.entry.js → p-a6b03db1.entry.js} +2 -2
  118. package/dist/q2-tecton-elements/{p-9407edb1.entry.js → p-af98db79.entry.js} +2 -2
  119. package/dist/q2-tecton-elements/{p-357b5458.entry.js → p-b83568e7.entry.js} +2 -2
  120. package/dist/q2-tecton-elements/{p-ea191d6b.entry.js → p-c057134f.entry.js} +2 -2
  121. package/dist/q2-tecton-elements/{p-0fc09a6a.entry.js → p-db3bbfb8.entry.js} +2 -2
  122. package/dist/q2-tecton-elements/{p-470582f2.entry.js → p-deb773a5.entry.js} +2 -2
  123. package/dist/q2-tecton-elements/{p-de165df1.entry.js → p-e4dadcd7.entry.js} +2 -2
  124. package/dist/q2-tecton-elements/{p-d6f9c4d6.entry.js → p-e98d9cf2.entry.js} +2 -2
  125. package/dist/q2-tecton-elements/{p-17f7f31d.entry.js → p-f198f77b.entry.js} +2 -2
  126. package/dist/q2-tecton-elements/{p-75ad4639.js → p-f34521a4.js} +2 -2
  127. package/dist/q2-tecton-elements/p-f34521a4.js.map +1 -0
  128. package/dist/q2-tecton-elements/{p-ce4c903f.entry.js → p-f3868a77.entry.js} +2 -2
  129. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  130. package/dist/test/elements/q2-input-test.e2e.js +44 -2
  131. package/dist/test/elements/q2-input-test.e2e.js.map +1 -1
  132. package/dist/types/components/q2-input/index.d.ts +4 -1
  133. package/package.json +3 -3
  134. package/dist/cjs/index-5d70039b.js.map +0 -1
  135. package/dist/esm/index-58324e40.js.map +0 -1
  136. package/dist/q2-tecton-elements/p-742c6fb9.entry.js +0 -2
  137. package/dist/q2-tecton-elements/p-742c6fb9.entry.js.map +0 -1
  138. package/dist/q2-tecton-elements/p-75ad4639.js.map +0 -1
  139. /package/dist/q2-tecton-elements/{p-a8764ad0.entry.js.map → p-059ea7c9.entry.js.map} +0 -0
  140. /package/dist/q2-tecton-elements/{p-65ab48b2.entry.js.map → p-072bda73.entry.js.map} +0 -0
  141. /package/dist/q2-tecton-elements/{p-5ee3bf5f.entry.js.map → p-0cade28b.entry.js.map} +0 -0
  142. /package/dist/q2-tecton-elements/{p-53bd1be9.entry.js.map → p-107f07f2.entry.js.map} +0 -0
  143. /package/dist/q2-tecton-elements/{p-afd284f5.entry.js.map → p-145849d0.entry.js.map} +0 -0
  144. /package/dist/q2-tecton-elements/{p-eb3289eb.entry.js.map → p-15179d55.entry.js.map} +0 -0
  145. /package/dist/q2-tecton-elements/{p-99ff69c7.entry.js.map → p-2812f9d2.entry.js.map} +0 -0
  146. /package/dist/q2-tecton-elements/{p-00587034.entry.js.map → p-29a7ca63.entry.js.map} +0 -0
  147. /package/dist/q2-tecton-elements/{p-ec8624c9.entry.js.map → p-311f37e2.entry.js.map} +0 -0
  148. /package/dist/q2-tecton-elements/{p-0b68e7ae.entry.js.map → p-3d82d94f.entry.js.map} +0 -0
  149. /package/dist/q2-tecton-elements/{p-bf3846ea.entry.js.map → p-52132d80.entry.js.map} +0 -0
  150. /package/dist/q2-tecton-elements/{p-09c7016a.entry.js.map → p-57e81863.entry.js.map} +0 -0
  151. /package/dist/q2-tecton-elements/{p-b77dd620.entry.js.map → p-5843f6c8.entry.js.map} +0 -0
  152. /package/dist/q2-tecton-elements/{p-ae00a4df.entry.js.map → p-5c033ed9.entry.js.map} +0 -0
  153. /package/dist/q2-tecton-elements/{p-850025cf.entry.js.map → p-69dcf12e.entry.js.map} +0 -0
  154. /package/dist/q2-tecton-elements/{p-b54fe10a.entry.js.map → p-6ae87415.entry.js.map} +0 -0
  155. /package/dist/q2-tecton-elements/{p-e4a4f0e0.entry.js.map → p-72b4ecc6.entry.js.map} +0 -0
  156. /package/dist/q2-tecton-elements/{p-570e5e5d.entry.js.map → p-81b917a5.entry.js.map} +0 -0
  157. /package/dist/q2-tecton-elements/{p-a99817de.entry.js.map → p-85dc889e.entry.js.map} +0 -0
  158. /package/dist/q2-tecton-elements/{p-88a19e74.entry.js.map → p-8f273db2.entry.js.map} +0 -0
  159. /package/dist/q2-tecton-elements/{p-1e0b598b.entry.js.map → p-8f8d5362.entry.js.map} +0 -0
  160. /package/dist/q2-tecton-elements/{p-75fd97cb.entry.js.map → p-9220365b.entry.js.map} +0 -0
  161. /package/dist/q2-tecton-elements/{p-e1b729a0.entry.js.map → p-959f47ef.entry.js.map} +0 -0
  162. /package/dist/q2-tecton-elements/{p-b2a176bb.entry.js.map → p-a09c90c1.entry.js.map} +0 -0
  163. /package/dist/q2-tecton-elements/{p-32245ba0.entry.js.map → p-a4017e55.entry.js.map} +0 -0
  164. /package/dist/q2-tecton-elements/{p-d66b73bb.entry.js.map → p-a6b03db1.entry.js.map} +0 -0
  165. /package/dist/q2-tecton-elements/{p-9407edb1.entry.js.map → p-af98db79.entry.js.map} +0 -0
  166. /package/dist/q2-tecton-elements/{p-357b5458.entry.js.map → p-b83568e7.entry.js.map} +0 -0
  167. /package/dist/q2-tecton-elements/{p-ea191d6b.entry.js.map → p-c057134f.entry.js.map} +0 -0
  168. /package/dist/q2-tecton-elements/{p-0fc09a6a.entry.js.map → p-db3bbfb8.entry.js.map} +0 -0
  169. /package/dist/q2-tecton-elements/{p-470582f2.entry.js.map → p-deb773a5.entry.js.map} +0 -0
  170. /package/dist/q2-tecton-elements/{p-de165df1.entry.js.map → p-e4dadcd7.entry.js.map} +0 -0
  171. /package/dist/q2-tecton-elements/{p-d6f9c4d6.entry.js.map → p-e98d9cf2.entry.js.map} +0 -0
  172. /package/dist/q2-tecton-elements/{p-17f7f31d.entry.js.map → p-f198f77b.entry.js.map} +0 -0
  173. /package/dist/q2-tecton-elements/{p-ce4c903f.entry.js.map → p-f3868a77.entry.js.map} +0 -0
  174. /package/dist/types/workspace/workspace/{_Gitlab_tecton-production_master → tecton-production_release_1.38.x}/packages/q2-tecton-elements/.stencil/test/helpers.d.ts +0 -0
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-c2597758.js');
6
- const index$1 = require('./index-5d70039b.js');
6
+ const index$1 = require('./index-09c712ea.js');
7
7
 
8
8
  function formatNumber(val = '', options = {
9
9
  prefix: '',
@@ -2939,6 +2939,8 @@ const Q2Input = class {
2939
2939
  };
2940
2940
  this.onInputInput = (event) => {
2941
2941
  event.stopPropagation();
2942
+ if (this.type === 'currency')
2943
+ this.handleCurrencyDeletion(event);
2942
2944
  const newFormattedValue = this.getFormattedValue(event.target.value, false);
2943
2945
  this.handleDataInput(newFormattedValue);
2944
2946
  };
@@ -2962,9 +2964,19 @@ const Q2Input = class {
2962
2964
  }
2963
2965
  this.setCursorPosition(cursorPosition);
2964
2966
  };
2967
+ // Sets textSelectedForDeletion to true if the user has selected text for deletion
2968
+ // This is used to prevent other logic from running when text is deleted
2969
+ this.handleCurrencyKeydown = (event) => {
2970
+ if (event.key !== 'Backspace' && event.key !== 'Delete')
2971
+ return;
2972
+ const inputElement = this.inputField;
2973
+ this.textSelectedForDeletion = inputElement.selectionStart !== inputElement.selectionEnd;
2974
+ };
2965
2975
  this.onInputKeydown = (event) => {
2966
2976
  const keysThatMoveCursor = ['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Home', 'End'];
2967
2977
  const { key } = event;
2978
+ if (this.type === 'currency')
2979
+ this.handleCurrencyKeydown(event);
2968
2980
  if (this.shouldCursorStayAtEnd && keysThatMoveCursor.includes(key))
2969
2981
  event.preventDefault();
2970
2982
  if (key === 'Enter' && this.valueOnFocus !== this.formattedValueObject.value) {
@@ -3317,6 +3329,60 @@ const Q2Input = class {
3317
3329
  this.value = event.detail.value;
3318
3330
  }
3319
3331
  }
3332
+ handleCurrencyDeletion(event) {
3333
+ // Don't do anything if text was selected for deletion
3334
+ if (this.textSelectedForDeletion) {
3335
+ this.textSelectedForDeletion = false;
3336
+ return;
3337
+ }
3338
+ // We only care about "Backspace" and "Delete" events
3339
+ if (event.inputType !== 'deleteContentBackward' && event.inputType !== 'deleteContentForward')
3340
+ return;
3341
+ const input = event.target;
3342
+ const cursorPosition = input.selectionStart;
3343
+ const { formattedValue } = this.formattedValueObject;
3344
+ if (cursorPosition === null)
3345
+ return;
3346
+ let cursorMap;
3347
+ switch (event.inputType) {
3348
+ case 'deleteContentBackward':
3349
+ const valueBeforeCursor = formattedValue.substring(0, cursorPosition + 1);
3350
+ const isPrevCharAlphaNum = /[a-zA-Z0-9]$/.test(valueBeforeCursor);
3351
+ cursorMap = {
3352
+ leftIndex: isPrevCharAlphaNum ? cursorPosition : cursorPosition - 1,
3353
+ rightIndex: isPrevCharAlphaNum ? cursorPosition + 1 : cursorPosition,
3354
+ afterCursorOffset: 0,
3355
+ newCursorOffset: 1,
3356
+ };
3357
+ break;
3358
+ case 'deleteContentForward':
3359
+ const valueAfterCursor = formattedValue.substring(cursorPosition);
3360
+ const isNextCharAlphaNum = /^[a-zA-Z0-9]/.test(valueAfterCursor);
3361
+ cursorMap = {
3362
+ leftIndex: isNextCharAlphaNum ? cursorPosition : cursorPosition + 1,
3363
+ rightIndex: isNextCharAlphaNum ? cursorPosition + 1 : cursorPosition + 2,
3364
+ afterCursorOffset: 1,
3365
+ newCursorOffset: 0,
3366
+ };
3367
+ break;
3368
+ default:
3369
+ return;
3370
+ }
3371
+ // Ensure the cursor doesn't move with a newly formatted value
3372
+ const newValue = [
3373
+ formattedValue.substring(0, cursorMap.leftIndex),
3374
+ formattedValue.substring(cursorMap.rightIndex),
3375
+ ].join('');
3376
+ const charactersAfterCursor = formattedValue.length - cursorPosition - cursorMap.afterCursorOffset;
3377
+ const newFormattedValue = this.getFormattedValue(newValue, false).formattedValue;
3378
+ const newCursorPosition = Math.max(newFormattedValue.length - charactersAfterCursor + cursorMap.newCursorOffset, 0);
3379
+ input.value = newFormattedValue;
3380
+ input.setSelectionRange(newCursorPosition, newCursorPosition);
3381
+ // This handles a runtime issue when a character is deleted from the beginning of the input
3382
+ if (newCursorPosition === 0) {
3383
+ index$1.nextPaint(() => input.setSelectionRange(newCursorPosition, newCursorPosition));
3384
+ }
3385
+ }
3320
3386
  handleDataInput(newFormattedValue) {
3321
3387
  if (this.maxlength === undefined ||
3322
3388
  newFormattedValue.unformattedValue.length <= this.maxlength ||
@@ -3390,10 +3456,16 @@ const Q2Input = class {
3390
3456
  if (this.canSetSelection && !cursorData.hasSelection) {
3391
3457
  const input = this.inputField;
3392
3458
  const { valueLength, previousValueLength, startingPosition } = cursorData;
3393
- if (startingPosition === valueLength && valueLength >= previousValueLength && this.type === 'currency') {
3394
- input.setSelectionRange(valueLength, valueLength);
3459
+ if (this.type === 'currency') {
3460
+ if (previousValueLength - valueLength === 1) {
3461
+ input.setSelectionRange(startingPosition - 1, startingPosition - 1);
3462
+ }
3463
+ else {
3464
+ const difference = previousValueLength - valueLength;
3465
+ input.setSelectionRange(startingPosition - difference, startingPosition - difference);
3466
+ }
3395
3467
  }
3396
- else {
3468
+ if (this.type !== 'currency') {
3397
3469
  const difference = valueLength - previousValueLength;
3398
3470
  // Never allow the cursor to move in reverse
3399
3471
  const newPosition = startingPosition + (difference > 0 ? difference : 0);