quasar 2.4.5 → 2.4.9

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 (106) hide show
  1. package/dist/icon-set/bootstrap-icons.umd.prod.js +1 -1
  2. package/dist/icon-set/eva-icons.umd.prod.js +1 -1
  3. package/dist/icon-set/fontawesome-v5-pro.umd.prod.js +1 -1
  4. package/dist/icon-set/fontawesome-v5.umd.prod.js +1 -1
  5. package/dist/icon-set/ionicons-v4.umd.prod.js +1 -1
  6. package/dist/icon-set/line-awesome.umd.prod.js +1 -1
  7. package/dist/icon-set/material-icons-outlined.umd.prod.js +1 -1
  8. package/dist/icon-set/material-icons-round.umd.prod.js +1 -1
  9. package/dist/icon-set/material-icons-sharp.umd.prod.js +1 -1
  10. package/dist/icon-set/material-icons.umd.prod.js +1 -1
  11. package/dist/icon-set/mdi-v3.umd.prod.js +1 -1
  12. package/dist/icon-set/mdi-v4.umd.prod.js +1 -1
  13. package/dist/icon-set/mdi-v5.umd.prod.js +1 -1
  14. package/dist/icon-set/mdi-v6.umd.prod.js +1 -1
  15. package/dist/icon-set/svg-bootstrap-icons.umd.prod.js +1 -1
  16. package/dist/icon-set/svg-eva-icons.umd.prod.js +1 -1
  17. package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +1 -1
  18. package/dist/icon-set/svg-ionicons-v4.umd.prod.js +1 -1
  19. package/dist/icon-set/svg-ionicons-v5.umd.prod.js +1 -1
  20. package/dist/icon-set/svg-ionicons-v6.umd.prod.js +1 -1
  21. package/dist/icon-set/svg-line-awesome.umd.prod.js +1 -1
  22. package/dist/icon-set/svg-material-icons-outlined.umd.prod.js +1 -1
  23. package/dist/icon-set/svg-material-icons-round.umd.prod.js +1 -1
  24. package/dist/icon-set/svg-material-icons-sharp.umd.prod.js +1 -1
  25. package/dist/icon-set/svg-material-icons.umd.prod.js +1 -1
  26. package/dist/icon-set/svg-mdi-v4.umd.prod.js +1 -1
  27. package/dist/icon-set/svg-mdi-v5.umd.prod.js +1 -1
  28. package/dist/icon-set/svg-mdi-v6.umd.prod.js +1 -1
  29. package/dist/icon-set/svg-themify.umd.prod.js +1 -1
  30. package/dist/icon-set/themify.umd.prod.js +1 -1
  31. package/dist/lang/ar.umd.prod.js +1 -1
  32. package/dist/lang/az-Latn.umd.prod.js +1 -1
  33. package/dist/lang/bg.umd.prod.js +1 -1
  34. package/dist/lang/bn.umd.prod.js +1 -1
  35. package/dist/lang/ca.umd.prod.js +1 -1
  36. package/dist/lang/cs.umd.prod.js +1 -1
  37. package/dist/lang/da.umd.prod.js +1 -1
  38. package/dist/lang/de.umd.prod.js +1 -1
  39. package/dist/lang/el.umd.prod.js +1 -1
  40. package/dist/lang/en-GB.umd.prod.js +1 -1
  41. package/dist/lang/en-US.umd.prod.js +1 -1
  42. package/dist/lang/eo.umd.prod.js +1 -1
  43. package/dist/lang/es.umd.prod.js +1 -1
  44. package/dist/lang/et.umd.prod.js +1 -1
  45. package/dist/lang/fa-IR.umd.prod.js +1 -1
  46. package/dist/lang/fa.umd.prod.js +1 -1
  47. package/dist/lang/fi.umd.prod.js +1 -1
  48. package/dist/lang/fr.umd.prod.js +1 -1
  49. package/dist/lang/gn.umd.prod.js +1 -1
  50. package/dist/lang/he.umd.prod.js +1 -1
  51. package/dist/lang/hr.umd.prod.js +1 -1
  52. package/dist/lang/hu.umd.prod.js +1 -1
  53. package/dist/lang/id.umd.prod.js +1 -1
  54. package/dist/lang/is.umd.prod.js +1 -1
  55. package/dist/lang/it.umd.prod.js +1 -1
  56. package/dist/lang/ja.umd.prod.js +1 -1
  57. package/dist/lang/km.umd.prod.js +1 -1
  58. package/dist/lang/ko-KR.umd.prod.js +1 -1
  59. package/dist/lang/kur-CKB.umd.prod.js +1 -1
  60. package/dist/lang/lt.umd.prod.js +1 -1
  61. package/dist/lang/lu.umd.prod.js +1 -1
  62. package/dist/lang/lv.umd.prod.js +1 -1
  63. package/dist/lang/ml.umd.prod.js +1 -1
  64. package/dist/lang/ms.umd.prod.js +1 -1
  65. package/dist/lang/my.umd.prod.js +6 -0
  66. package/dist/lang/nb-NO.umd.prod.js +1 -1
  67. package/dist/lang/nl.umd.prod.js +1 -1
  68. package/dist/lang/pl.umd.prod.js +1 -1
  69. package/dist/lang/pt-BR.umd.prod.js +1 -1
  70. package/dist/lang/pt.umd.prod.js +1 -1
  71. package/dist/lang/ro.umd.prod.js +1 -1
  72. package/dist/lang/ru.umd.prod.js +1 -1
  73. package/dist/lang/sk.umd.prod.js +1 -1
  74. package/dist/lang/sl.umd.prod.js +1 -1
  75. package/dist/lang/sr-CYR.umd.prod.js +1 -1
  76. package/dist/lang/sr.umd.prod.js +1 -1
  77. package/dist/lang/sv.umd.prod.js +1 -1
  78. package/dist/lang/ta.umd.prod.js +1 -1
  79. package/dist/lang/th.umd.prod.js +1 -1
  80. package/dist/lang/tr.umd.prod.js +1 -1
  81. package/dist/lang/ug.umd.prod.js +1 -1
  82. package/dist/lang/uk.umd.prod.js +1 -1
  83. package/dist/lang/vi.umd.prod.js +1 -1
  84. package/dist/lang/zh-CN.umd.prod.js +1 -1
  85. package/dist/lang/zh-TW.umd.prod.js +1 -1
  86. package/dist/quasar.cjs.prod.js +2 -2
  87. package/dist/quasar.css +4 -3
  88. package/dist/quasar.esm.prod.js +2 -2
  89. package/dist/quasar.prod.css +1 -1
  90. package/dist/quasar.rtl.css +4 -3
  91. package/dist/quasar.rtl.prod.css +1 -1
  92. package/dist/quasar.sass +5 -4
  93. package/dist/quasar.umd.js +41 -36
  94. package/dist/quasar.umd.prod.js +2 -2
  95. package/dist/ssr-directives/Morph.js +1 -1
  96. package/dist/types/index.d.ts +1 -0
  97. package/dist/web-types/web-types.json +1 -1
  98. package/lang/index.json +4 -0
  99. package/lang/my.js +90 -0
  100. package/package.json +1 -1
  101. package/src/components/icon/QIcon.js +4 -9
  102. package/src/components/icon/QIcon.sass +4 -3
  103. package/src/components/layout/QLayout.js +5 -4
  104. package/src/components/scroll-area/QScrollArea.js +15 -10
  105. package/src/components/scroll-observer/QScrollObserver.js +12 -10
  106. package/src/composables/private/use-field.js +2 -0
package/dist/quasar.sass CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Quasar Framework v2.4.5
2
+ * Quasar Framework v2.4.9
3
3
  * (c) 2015-present Razvan Stoenescu
4
4
  * Released under the MIT License.
5
5
  */
@@ -661,9 +661,10 @@ input[type='search']::-webkit-search-decoration
661
661
  display: flex !important
662
662
  align-items: center
663
663
  justify-content: center
664
- > svg
665
- width: 100%
666
- height: 100%
664
+ > svg,
665
+ > img
666
+ width: 1em
667
+ height: 1em
667
668
  .q-icon,
668
669
  .material-icons,
669
670
  .material-icons-outlined,
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Quasar Framework v2.4.5
2
+ * Quasar Framework v2.4.9
3
3
  * (c) 2015-present Razvan Stoenescu
4
4
  * Released under the MIT License.
5
5
  */
@@ -1447,7 +1447,7 @@
1447
1447
  }
1448
1448
 
1449
1449
  var installQuasar = function (parentApp, opts = {}) {
1450
- const $q = { version: '2.4.5' };
1450
+ const $q = { version: '2.4.9' };
1451
1451
 
1452
1452
  if (globalConfigIsFrozen === false) {
1453
1453
  if (opts.config !== void 0) {
@@ -2032,27 +2032,22 @@
2032
2032
  }
2033
2033
 
2034
2034
  if (type.value.img === true) {
2035
- return vue.h('div', data, hMergeSlot(slots.default, [
2036
- vue.h('img', {
2037
- class: type.value.cls,
2038
- src: type.value.src
2039
- })
2035
+ return vue.h('span', data, hMergeSlot(slots.default, [
2036
+ vue.h('img', { src: type.value.src })
2040
2037
  ]))
2041
2038
  }
2042
2039
 
2043
2040
  if (type.value.svg === true) {
2044
- return vue.h('div', data, hMergeSlot(slots.default, [
2041
+ return vue.h('span', data, hMergeSlot(slots.default, [
2045
2042
  vue.h('svg', {
2046
- class: type.value.cls,
2047
2043
  viewBox: type.value.viewBox
2048
2044
  }, type.value.nodes)
2049
2045
  ]))
2050
2046
  }
2051
2047
 
2052
2048
  if (type.value.svguse === true) {
2053
- return vue.h('div', data, hMergeSlot(slots.default, [
2049
+ return vue.h('span', data, hMergeSlot(slots.default, [
2054
2050
  vue.h('svg', {
2055
- class: type.value.cls,
2056
2051
  viewBox: type.value.viewBox
2057
2052
  }, [
2058
2053
  vue.h('use', { 'xlink:href': type.value.src })
@@ -20759,6 +20754,8 @@
20759
20754
  name: props.clearIcon || $q.iconSet.field.clear,
20760
20755
  tabindex: 0,
20761
20756
  type: 'button',
20757
+ 'aria-hidden': null,
20758
+ role: null,
20762
20759
  onClick: clearValue
20763
20760
  })
20764
20761
  ])
@@ -23911,7 +23908,7 @@
23911
23908
  }
23912
23909
  };
23913
23910
 
23914
- let timer = null, localScrollTarget, parentEl;
23911
+ let clearTimer = null, localScrollTarget, parentEl;
23915
23912
 
23916
23913
  vue.watch(() => props.scrollTarget, () => {
23917
23914
  unconfigureScrollTarget();
@@ -23919,9 +23916,7 @@
23919
23916
  });
23920
23917
 
23921
23918
  function emitEvent () {
23922
- clearTimeout(timer);
23923
- cancelAnimationFrame(timer);
23924
- timer = null;
23919
+ clearTimer !== null && clearTimer();
23925
23920
 
23926
23921
  const top = Math.max(0, getVerticalScrollPosition(localScrollTarget));
23927
23922
  const left = getHorizontalScrollPosition(localScrollTarget);
@@ -23971,10 +23966,15 @@
23971
23966
  if (immediately === true || props.debounce === 0 || props.debounce === '0') {
23972
23967
  emitEvent();
23973
23968
  }
23974
- else if (timer === null) {
23975
- timer = props.debounce
23976
- ? setTimeout(emitEvent, props.debounce)
23977
- : requestAnimationFrame(emitEvent);
23969
+ else if (clearTimer === null) {
23970
+ const [ timer, fn ] = props.debounce
23971
+ ? [ setTimeout(emitEvent, props.debounce), clearTimeout ]
23972
+ : [ requestAnimationFrame(emitEvent), cancelAnimationFrame ];
23973
+
23974
+ clearTimer = () => {
23975
+ fn(timer);
23976
+ clearTimer = null;
23977
+ };
23978
23978
  }
23979
23979
  }
23980
23980
 
@@ -23986,8 +23986,7 @@
23986
23986
  });
23987
23987
 
23988
23988
  vue.onBeforeUnmount(() => {
23989
- clearTimeout(timer);
23990
- cancelAnimationFrame(timer);
23989
+ clearTimer !== null && clearTimer();
23991
23990
  unconfigureScrollTarget();
23992
23991
  });
23993
23992
 
@@ -24166,7 +24165,7 @@
24166
24165
 
24167
24166
  // prevent scrollbar flicker while resizing window height
24168
24167
  // if no page scrollbar is already present
24169
- {
24168
+ if (getScrollbarWidth() > 0) {
24170
24169
  let timer = null;
24171
24170
  const el = document.body;
24172
24171
 
@@ -24202,11 +24201,12 @@
24202
24201
  }
24203
24202
 
24204
24203
  vue.watch(
24205
- () => (props.container !== true && scrollbarWidth.value > 0 ? 'add' : 'remove'),
24206
- updateScrollEvent,
24207
- { immediate: true }
24204
+ () => (props.container !== true ? 'add' : 'remove'),
24205
+ updateScrollEvent
24208
24206
  );
24209
24207
 
24208
+ props.container !== true && updateScrollEvent('add');
24209
+
24210
24210
  vue.onUnmounted(() => {
24211
24211
  updateScrollEvent('remove');
24212
24212
  });
@@ -26831,6 +26831,9 @@
26831
26831
  && panning.value === false
26832
26832
  ) || scroll.vertical.size.value <= container.vertical.value + 1
26833
26833
  );
26834
+ scroll.vertical.thumbStart = vue.computed(() =>
26835
+ scroll.vertical.percentage.value * (container.vertical.value - scroll.vertical.thumbSize.value)
26836
+ );
26834
26837
  scroll.vertical.thumbSize = vue.computed(() =>
26835
26838
  Math.round(
26836
26839
  between(
@@ -26841,13 +26844,11 @@
26841
26844
  )
26842
26845
  );
26843
26846
  scroll.vertical.style = vue.computed(() => {
26844
- const thumbSize = scroll.vertical.thumbSize.value;
26845
- const pos = scroll.vertical.percentage.value * (container.vertical.value - thumbSize);
26846
26847
  return {
26847
26848
  ...props.thumbStyle,
26848
26849
  ...props.verticalThumbStyle,
26849
- top: `${ pos }px`,
26850
- height: `${ thumbSize }px`
26850
+ top: `${ scroll.vertical.thumbStart.value }px`,
26851
+ height: `${ scroll.vertical.thumbSize.value }px`
26851
26852
  }
26852
26853
  });
26853
26854
  scroll.vertical.thumbClass = vue.computed(() =>
@@ -26872,6 +26873,9 @@
26872
26873
  && panning.value === false
26873
26874
  ) || scroll.horizontal.size.value <= container.horizontal.value + 1
26874
26875
  );
26876
+ scroll.horizontal.thumbStart = vue.computed(() =>
26877
+ scroll.horizontal.percentage.value * (container.horizontal.value - scroll.horizontal.thumbSize.value)
26878
+ );
26875
26879
  scroll.horizontal.thumbSize = vue.computed(() =>
26876
26880
  Math.round(
26877
26881
  between(
@@ -26882,13 +26886,11 @@
26882
26886
  )
26883
26887
  );
26884
26888
  scroll.horizontal.style = vue.computed(() => {
26885
- const thumbSize = scroll.horizontal.thumbSize.value;
26886
- const pos = scroll.horizontal.percentage.value * (container.horizontal.value - thumbSize);
26887
26889
  return {
26888
26890
  ...props.thumbStyle,
26889
26891
  ...props.horizontalThumbStyle,
26890
- left: `${ pos }px`,
26891
- width: `${ thumbSize }px`
26892
+ left: `${ scroll.horizontal.thumbStart.value }px`,
26893
+ width: `${ scroll.horizontal.thumbSize.value }px`
26892
26894
  }
26893
26895
  });
26894
26896
  scroll.horizontal.thumbClass = vue.computed(() =>
@@ -27034,8 +27036,11 @@
27034
27036
  const data = scroll[ axis ];
27035
27037
 
27036
27038
  if (data.thumbHidden.value !== true) {
27037
- const pos = evt[ dirProps[ axis ].offset ] - data.thumbSize.value / 2;
27038
- setScroll(pos / container[ axis ].value * data.size.value, axis);
27039
+ const offset = evt[ dirProps[ axis ].offset ];
27040
+ if (offset < data.thumbStart.value || offset > data.thumbStart.value + data.thumbSize.value) {
27041
+ const pos = offset - data.thumbSize.value / 2;
27042
+ setScroll(pos / container[ axis ].value * data.size.value, axis);
27043
+ }
27039
27044
 
27040
27045
  // activate thumb pan
27041
27046
  if (data.ref.value !== null) {
@@ -39263,7 +39268,7 @@
39263
39268
  });
39264
39269
 
39265
39270
  var index_umd = {
39266
- version: '2.4.5',
39271
+ version: '2.4.9',
39267
39272
  install (app, opts) {
39268
39273
  installQuasar(app, {
39269
39274
  components,