quasar 1.22.6 → 1.22.8

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 (124) hide show
  1. package/dist/icon-set/bootstrap-icons.umd.min.js +1 -1
  2. package/dist/icon-set/eva-icons.umd.min.js +1 -1
  3. package/dist/icon-set/fontawesome-v5-pro.umd.min.js +1 -1
  4. package/dist/icon-set/fontawesome-v5.umd.min.js +1 -1
  5. package/dist/icon-set/fontawesome-v6-pro.umd.min.js +1 -1
  6. package/dist/icon-set/fontawesome-v6.umd.min.js +1 -1
  7. package/dist/icon-set/ionicons-v4.umd.min.js +1 -1
  8. package/dist/icon-set/line-awesome.umd.min.js +1 -1
  9. package/dist/icon-set/material-icons-outlined.umd.min.js +1 -1
  10. package/dist/icon-set/material-icons-round.umd.min.js +1 -1
  11. package/dist/icon-set/material-icons-sharp.umd.min.js +1 -1
  12. package/dist/icon-set/material-icons.umd.min.js +1 -1
  13. package/dist/icon-set/material-symbols-outlined.umd.min.js +1 -1
  14. package/dist/icon-set/material-symbols-rounded.umd.min.js +1 -1
  15. package/dist/icon-set/material-symbols-sharp.umd.min.js +1 -1
  16. package/dist/icon-set/mdi-v3.umd.min.js +1 -1
  17. package/dist/icon-set/mdi-v4.umd.min.js +1 -1
  18. package/dist/icon-set/mdi-v5.umd.min.js +1 -1
  19. package/dist/icon-set/mdi-v6.umd.min.js +1 -1
  20. package/dist/icon-set/mdi-v7.umd.min.js +1 -1
  21. package/dist/icon-set/svg-bootstrap-icons.umd.min.js +1 -1
  22. package/dist/icon-set/svg-eva-icons.umd.min.js +1 -1
  23. package/dist/icon-set/svg-fontawesome-v5.umd.min.js +1 -1
  24. package/dist/icon-set/svg-fontawesome-v6.umd.min.js +1 -1
  25. package/dist/icon-set/svg-ionicons-v4.umd.min.js +1 -1
  26. package/dist/icon-set/svg-ionicons-v5.umd.min.js +1 -1
  27. package/dist/icon-set/svg-ionicons-v6.umd.min.js +1 -1
  28. package/dist/icon-set/svg-line-awesome.umd.min.js +1 -1
  29. package/dist/icon-set/svg-material-icons-outlined.umd.min.js +1 -1
  30. package/dist/icon-set/svg-material-icons-round.umd.min.js +1 -1
  31. package/dist/icon-set/svg-material-icons-sharp.umd.min.js +1 -1
  32. package/dist/icon-set/svg-material-icons.umd.min.js +1 -1
  33. package/dist/icon-set/svg-material-symbols-outlined.umd.min.js +1 -1
  34. package/dist/icon-set/svg-material-symbols-rounded.umd.min.js +1 -1
  35. package/dist/icon-set/svg-material-symbols-sharp.umd.min.js +1 -1
  36. package/dist/icon-set/svg-mdi-v4.umd.min.js +1 -1
  37. package/dist/icon-set/svg-mdi-v5.umd.min.js +1 -1
  38. package/dist/icon-set/svg-mdi-v6.umd.min.js +1 -1
  39. package/dist/icon-set/svg-mdi-v7.umd.min.js +1 -1
  40. package/dist/icon-set/svg-themify.umd.min.js +1 -1
  41. package/dist/icon-set/themify.umd.min.js +1 -1
  42. package/dist/lang/ar.umd.min.js +1 -1
  43. package/dist/lang/az-latn.umd.min.js +1 -1
  44. package/dist/lang/bg.umd.min.js +1 -1
  45. package/dist/lang/ca.umd.min.js +1 -1
  46. package/dist/lang/cs.umd.min.js +1 -1
  47. package/dist/lang/da.umd.min.js +1 -1
  48. package/dist/lang/de.umd.min.js +1 -1
  49. package/dist/lang/el.umd.min.js +1 -1
  50. package/dist/lang/en-gb.umd.min.js +1 -1
  51. package/dist/lang/en-us.umd.min.js +1 -1
  52. package/dist/lang/eo.umd.min.js +1 -1
  53. package/dist/lang/es.umd.min.js +1 -1
  54. package/dist/lang/et.umd.min.js +1 -1
  55. package/dist/lang/eu.umd.min.js +1 -1
  56. package/dist/lang/fa-ir.umd.min.js +1 -1
  57. package/dist/lang/fa.umd.min.js +1 -1
  58. package/dist/lang/fi.umd.min.js +1 -1
  59. package/dist/lang/fr.umd.min.js +1 -1
  60. package/dist/lang/gn.umd.min.js +1 -1
  61. package/dist/lang/he.umd.min.js +1 -1
  62. package/dist/lang/hr.umd.min.js +1 -1
  63. package/dist/lang/hu.umd.min.js +1 -1
  64. package/dist/lang/id.umd.min.js +1 -1
  65. package/dist/lang/is.umd.min.js +1 -1
  66. package/dist/lang/it.umd.min.js +1 -1
  67. package/dist/lang/ja.umd.min.js +2 -2
  68. package/dist/lang/km.umd.min.js +1 -1
  69. package/dist/lang/ko-kr.umd.min.js +1 -1
  70. package/dist/lang/kur-ckb.umd.min.js +1 -1
  71. package/dist/lang/kz.umd.min.js +1 -1
  72. package/dist/lang/lu.umd.min.js +1 -1
  73. package/dist/lang/lv.umd.min.js +1 -1
  74. package/dist/lang/ml.umd.min.js +1 -1
  75. package/dist/lang/mm.umd.min.js +1 -1
  76. package/dist/lang/ms.umd.min.js +1 -1
  77. package/dist/lang/my.umd.min.js +1 -1
  78. package/dist/lang/nb-no.umd.min.js +1 -1
  79. package/dist/lang/nl.umd.min.js +1 -1
  80. package/dist/lang/pl.umd.min.js +1 -1
  81. package/dist/lang/pt-br.umd.min.js +1 -1
  82. package/dist/lang/pt.umd.min.js +1 -1
  83. package/dist/lang/ro.umd.min.js +1 -1
  84. package/dist/lang/ru.umd.min.js +1 -1
  85. package/dist/lang/sk.umd.min.js +1 -1
  86. package/dist/lang/sl.umd.min.js +1 -1
  87. package/dist/lang/sm.umd.min.js +1 -1
  88. package/dist/lang/sr.umd.min.js +1 -1
  89. package/dist/lang/sv.umd.min.js +1 -1
  90. package/dist/lang/ta.umd.min.js +1 -1
  91. package/dist/lang/th.umd.min.js +1 -1
  92. package/dist/lang/tr.umd.min.js +1 -1
  93. package/dist/lang/ug.umd.min.js +1 -1
  94. package/dist/lang/uk.umd.min.js +1 -1
  95. package/dist/lang/uz-Cyrl.umd.min.js +1 -1
  96. package/dist/lang/uz-Latn.umd.min.js +1 -1
  97. package/dist/lang/vi.umd.min.js +1 -1
  98. package/dist/lang/zh-hans.umd.min.js +1 -1
  99. package/dist/lang/zh-hant.umd.min.js +1 -1
  100. package/dist/quasar.addon.css +1 -1
  101. package/dist/quasar.addon.rtl.css +1 -1
  102. package/dist/quasar.common.js +2 -2
  103. package/dist/quasar.css +25 -5
  104. package/dist/quasar.esm.js +2 -2
  105. package/dist/quasar.ie.polyfills.js +1 -1
  106. package/dist/quasar.ie.polyfills.umd.min.js +1 -1
  107. package/dist/quasar.min.css +1 -1
  108. package/dist/quasar.rtl.css +3 -3
  109. package/dist/quasar.rtl.min.css +1 -1
  110. package/dist/quasar.sass +17 -5
  111. package/dist/quasar.styl +17 -5
  112. package/dist/quasar.umd.js +96 -56
  113. package/dist/quasar.umd.min.js +2 -2
  114. package/dist/quasar.umd.modern.js +95 -56
  115. package/dist/quasar.umd.modern.min.js +2 -2
  116. package/dist/web-types/web-types.json +1 -1
  117. package/lang/ja.js +1 -1
  118. package/package.json +1 -1
  119. package/src/components/field/QField.js +5 -1
  120. package/src/components/field/QField.sass +18 -4
  121. package/src/components/field/QField.styl +18 -4
  122. package/src/components/input/QInput.js +17 -4
  123. package/src/components/table/table-top.js +1 -1
  124. package/src/mixins/mask.js +70 -48
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Quasar Framework v1.22.6
2
+ * Quasar Framework v1.22.8
3
3
  * (c) 2015-present Razvan Stoenescu
4
4
  * Released under the MIT License.
5
5
  */
@@ -12,7 +12,7 @@
12
12
 
13
13
  Vue = Vue && Object.prototype.hasOwnProperty.call(Vue, 'default') ? Vue['default'] : Vue;
14
14
 
15
- var version = "1.22.6";
15
+ var version = "1.22.8";
16
16
 
17
17
  /* eslint-disable no-useless-escape */
18
18
 
@@ -18910,7 +18910,11 @@
18910
18910
  this.focused === true ||
18911
18911
  typeof this.inputValue === 'number' ||
18912
18912
  (typeof this.inputValue === 'string' && this.inputValue.length > 0) ||
18913
- (this.hideSelected !== true && this.hasValue === true) ||
18913
+ (
18914
+ this.hideSelected !== true &&
18915
+ this.hasValue === true &&
18916
+ (this.type !== 'number' || isNaN(this.value) === false)
18917
+ ) ||
18914
18918
  (
18915
18919
  this.displayValue !== void 0 &&
18916
18920
  this.displayValue !== null &&
@@ -21428,8 +21432,15 @@
21428
21432
  }
21429
21433
 
21430
21434
  if (inputType === 'insertFromPaste' && this.reverseFillMask !== true) {
21431
- const cursor = end - 1;
21432
- this.__moveCursorRight(inp, cursor, cursor);
21435
+ const maxEnd = inp.selectionEnd;
21436
+ let cursor = end - 1;
21437
+ // each non-marker char means we move once to right
21438
+ for (let i = this.__pastedTextStart; i <= cursor && i < maxEnd; i++) {
21439
+ if (this.maskMarked[i] !== MARKER) {
21440
+ cursor++;
21441
+ }
21442
+ }
21443
+ this.__moveCursorRight(inp, cursor);
21433
21444
 
21434
21445
  return
21435
21446
  }
@@ -21455,7 +21466,7 @@
21455
21466
  inp.setSelectionRange(cursor, cursor, 'forward');
21456
21467
  }
21457
21468
  else {
21458
- this.__moveCursorRightReverse(inp, cursor, cursor);
21469
+ this.__moveCursorRightReverse(inp, cursor);
21459
21470
  }
21460
21471
  }
21461
21472
  else {
@@ -21466,11 +21477,11 @@
21466
21477
  else {
21467
21478
  if (changed === true) {
21468
21479
  const cursor = Math.max(0, this.maskMarked.indexOf(MARKER), Math.min(preMasked.length, end) - 1);
21469
- this.__moveCursorRight(inp, cursor, cursor);
21480
+ this.__moveCursorRight(inp, cursor);
21470
21481
  }
21471
21482
  else {
21472
21483
  const cursor = end - 1;
21473
- this.__moveCursorRight(inp, cursor, cursor);
21484
+ this.__moveCursorRight(inp, cursor);
21474
21485
  }
21475
21486
  }
21476
21487
  });
@@ -21486,73 +21497,71 @@
21486
21497
  const preMasked = this.__mask(this.__unmask(inp.value));
21487
21498
 
21488
21499
  start = Math.max(0, this.maskMarked.indexOf(MARKER), Math.min(preMasked.length, start));
21500
+ this.__pastedTextStart = start;
21489
21501
 
21490
21502
  inp.setSelectionRange(start, end, 'forward');
21491
21503
  },
21492
21504
 
21493
- __moveCursorLeft (inp, start, end, selection) {
21494
- const noMarkBefore = this.maskMarked.slice(start - 1).indexOf(MARKER) === -1;
21495
- let i = Math.max(0, start - 1);
21505
+ __moveCursorLeft (inp, cursor) {
21506
+ const noMarkBefore = this.maskMarked.slice(cursor - 1).indexOf(MARKER) === -1;
21507
+ let i = Math.max(0, cursor - 1);
21496
21508
 
21497
21509
  for (; i >= 0; i--) {
21498
21510
  if (this.maskMarked[i] === MARKER) {
21499
- start = i;
21500
- noMarkBefore === true && start++;
21511
+ cursor = i;
21512
+ noMarkBefore === true && cursor++;
21501
21513
  break
21502
21514
  }
21503
21515
  }
21504
21516
 
21505
21517
  if (
21506
21518
  i < 0 &&
21507
- this.maskMarked[start] !== void 0 &&
21508
- this.maskMarked[start] !== MARKER
21519
+ this.maskMarked[cursor] !== void 0 &&
21520
+ this.maskMarked[cursor] !== MARKER
21509
21521
  ) {
21510
- return this.__moveCursorRight(inp, 0, 0)
21522
+ return this.__moveCursorRight(inp, 0)
21511
21523
  }
21512
21524
 
21513
- start >= 0 && inp.setSelectionRange(
21514
- start,
21515
- selection === true ? end : start, 'backward'
21516
- );
21525
+ cursor >= 0 && inp.setSelectionRange(cursor, cursor, 'backward');
21517
21526
  },
21518
21527
 
21519
- __moveCursorRight (inp, start, end, selection) {
21528
+ __moveCursorRight (inp, cursor) {
21520
21529
  const limit = inp.value.length;
21521
- let i = Math.min(limit, end + 1);
21530
+ let i = Math.min(limit, cursor + 1);
21522
21531
 
21523
21532
  for (; i <= limit; i++) {
21524
21533
  if (this.maskMarked[i] === MARKER) {
21525
- end = i;
21534
+ cursor = i;
21526
21535
  break
21527
21536
  }
21528
21537
  else if (this.maskMarked[i - 1] === MARKER) {
21529
- end = i;
21538
+ cursor = i;
21530
21539
  }
21531
21540
  }
21532
21541
 
21533
21542
  if (
21534
21543
  i > limit &&
21535
- this.maskMarked[end - 1] !== void 0 &&
21536
- this.maskMarked[end - 1] !== MARKER
21544
+ this.maskMarked[cursor - 1] !== void 0 &&
21545
+ this.maskMarked[cursor - 1] !== MARKER
21537
21546
  ) {
21538
- return this.__moveCursorLeft(inp, limit, limit)
21547
+ return this.__moveCursorLeft(inp, limit)
21539
21548
  }
21540
21549
 
21541
- inp.setSelectionRange(selection ? start : end, end, 'forward');
21550
+ inp.setSelectionRange(cursor, cursor, 'forward');
21542
21551
  },
21543
21552
 
21544
- __moveCursorLeftReverse (inp, start, end, selection) {
21553
+ __moveCursorLeftReverse (inp, cursor) {
21545
21554
  const
21546
21555
  maskMarked = this.__getPaddedMaskMarked(inp.value.length);
21547
- let i = Math.max(0, start - 1);
21556
+ let i = Math.max(0, cursor - 1);
21548
21557
 
21549
21558
  for (; i >= 0; i--) {
21550
21559
  if (maskMarked[i - 1] === MARKER) {
21551
- start = i;
21560
+ cursor = i;
21552
21561
  break
21553
21562
  }
21554
21563
  else if (maskMarked[i] === MARKER) {
21555
- start = i;
21564
+ cursor = i;
21556
21565
  if (i === 0) {
21557
21566
  break
21558
21567
  }
@@ -21561,42 +21570,45 @@
21561
21570
 
21562
21571
  if (
21563
21572
  i < 0 &&
21564
- maskMarked[start] !== void 0 &&
21565
- maskMarked[start] !== MARKER
21573
+ maskMarked[cursor] !== void 0 &&
21574
+ maskMarked[cursor] !== MARKER
21566
21575
  ) {
21567
- return this.__moveCursorRightReverse(inp, 0, 0)
21576
+ return this.__moveCursorRightReverse(inp, 0)
21568
21577
  }
21569
21578
 
21570
- start >= 0 && inp.setSelectionRange(
21571
- start,
21572
- selection === true ? end : start, 'backward'
21573
- );
21579
+ cursor >= 0 && inp.setSelectionRange(cursor, cursor, 'backward');
21574
21580
  },
21575
21581
 
21576
- __moveCursorRightReverse (inp, start, end, selection) {
21582
+ __moveCursorRightReverse (inp, cursor) {
21577
21583
  const
21578
21584
  limit = inp.value.length,
21579
21585
  maskMarked = this.__getPaddedMaskMarked(limit),
21580
- noMarkBefore = maskMarked.slice(0, end + 1).indexOf(MARKER) === -1;
21581
- let i = Math.min(limit, end + 1);
21586
+ noMarkBefore = maskMarked.slice(0, cursor + 1).indexOf(MARKER) === -1;
21587
+ let i = Math.min(limit, cursor + 1);
21582
21588
 
21583
21589
  for (; i <= limit; i++) {
21584
21590
  if (maskMarked[i - 1] === MARKER) {
21585
- end = i;
21586
- end > 0 && noMarkBefore === true && end--;
21591
+ cursor = i;
21592
+ cursor > 0 && noMarkBefore === true && cursor--;
21587
21593
  break
21588
21594
  }
21589
21595
  }
21590
21596
 
21591
21597
  if (
21592
21598
  i > limit &&
21593
- maskMarked[end - 1] !== void 0 &&
21594
- maskMarked[end - 1] !== MARKER
21599
+ maskMarked[cursor - 1] !== void 0 &&
21600
+ maskMarked[cursor - 1] !== MARKER
21595
21601
  ) {
21596
- return this.__moveCursorLeftReverse(inp, limit, limit)
21602
+ return this.__moveCursorLeftReverse(inp, limit)
21597
21603
  }
21598
21604
 
21599
- inp.setSelectionRange(selection === true ? start : end, end, 'forward');
21605
+ inp.setSelectionRange(cursor, cursor, 'forward');
21606
+ },
21607
+
21608
+ __onMaskedClick (e) {
21609
+ this.qListeners.click !== void 0 && this.$emit('click', e);
21610
+
21611
+ this.__selectionAnchor = void 0;
21600
21612
  },
21601
21613
 
21602
21614
  __onMaskedKeydown (e) {
@@ -21611,25 +21623,39 @@
21611
21623
  start = inp.selectionStart,
21612
21624
  end = inp.selectionEnd;
21613
21625
 
21626
+ if (!e.shiftKey) {
21627
+ this.__selectionAnchor = void 0;
21628
+ }
21629
+
21614
21630
  if (e.keyCode === 37 || e.keyCode === 39) { // Left / Right
21631
+ if (e.shiftKey && this.__selectionAnchor === void 0) {
21632
+ this.__selectionAnchor = inp.selectionDirection === 'forward' ? start : end;
21633
+ }
21634
+
21615
21635
  const fn = this['__moveCursor' + (e.keyCode === 39 ? 'Right' : 'Left') + (this.reverseFillMask === true ? 'Reverse' : '')];
21616
21636
 
21617
21637
  e.preventDefault();
21618
- fn(inp, start, end, e.shiftKey);
21638
+ fn(inp, this.__selectionAnchor === start ? end : start);
21639
+
21640
+ if (e.shiftKey) {
21641
+ const anchor = this.__selectionAnchor;
21642
+ const cursor = inp.selectionStart;
21643
+ inp.setSelectionRange(Math.min(anchor, cursor), Math.max(anchor, cursor), 'forward');
21644
+ }
21619
21645
  }
21620
21646
  else if (
21621
21647
  e.keyCode === 8 && // Backspace
21622
21648
  this.reverseFillMask !== true &&
21623
21649
  start === end
21624
21650
  ) {
21625
- this.__moveCursorLeft(inp, start, end, true);
21651
+ this.__moveCursorLeft(inp, start);
21626
21652
  }
21627
21653
  else if (
21628
21654
  e.keyCode === 46 && // Delete
21629
21655
  this.reverseFillMask === true &&
21630
21656
  start === end
21631
21657
  ) {
21632
- this.__moveCursorRightReverse(inp, start, end, true);
21658
+ this.__moveCursorRightReverse(inp, end);
21633
21659
  }
21634
21660
 
21635
21661
  this.$emit('keydown', e);
@@ -21880,6 +21906,8 @@
21880
21906
 
21881
21907
  if (this.hasMask === true) {
21882
21908
  on.keydown = this.__onMaskedKeydown;
21909
+ // reset selection anchor on pointer selection
21910
+ on.click = this.__onMaskedClick;
21883
21911
  }
21884
21912
 
21885
21913
  if (this.autogrow === true) {
@@ -22029,18 +22057,29 @@
22029
22057
  const inp = this.$refs.input;
22030
22058
  if (inp !== void 0) {
22031
22059
  const parentStyle = inp.parentNode.style;
22032
- const { overflow } = inp.style;
22060
+ // chrome does not keep scroll #15498
22061
+ const { scrollTop } = inp;
22062
+ // chrome calculates a smaller scrollHeight when in a .column container
22063
+ const { overflowY, maxHeight } = this.$q.platform.is.firefox === true
22064
+ ? {}
22065
+ : window.getComputedStyle(inp);
22066
+ // on firefox or if overflowY is specified as scroll #14263, #14344
22067
+ // we don't touch overflow
22068
+ // firefox is not so bad in the end
22069
+ const changeOverflow = overflowY !== void 0 && overflowY !== 'scroll';
22033
22070
 
22034
22071
  // reset height of textarea to a small size to detect the real height
22035
22072
  // but keep the total control size the same
22036
- // Firefox rulez #14263, #14344
22037
- this.$q.platform.is.firefox !== true && (inp.style.overflow = 'hidden');
22073
+ changeOverflow === true && (inp.style.overflowY = 'hidden');
22038
22074
  parentStyle.marginBottom = (inp.scrollHeight - 1) + 'px';
22039
22075
  inp.style.height = '1px';
22040
22076
 
22041
22077
  inp.style.height = inp.scrollHeight + 'px';
22042
- inp.style.overflow = overflow;
22078
+ // we should allow scrollbars only
22079
+ // if there is maxHeight and content is taller than maxHeight
22080
+ changeOverflow === true && (inp.style.overflowY = parseInt(maxHeight, 10) < inp.scrollHeight ? 'auto' : 'hidden');
22043
22081
  parentStyle.marginBottom = '';
22082
+ inp.scrollTop = scrollTop;
22044
22083
  }
22045
22084
  });
22046
22085
  },
@@ -32045,7 +32084,7 @@
32045
32084
 
32046
32085
  if (topLeft !== void 0) {
32047
32086
  child.push(
32048
- h('div', { staticClass: 'q-table-control' }, [
32087
+ h('div', { staticClass: 'q-table__control' }, [
32049
32088
  topLeft(this.marginalsScope)
32050
32089
  ])
32051
32090
  );