quasar 1.22.4 → 1.22.6

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 (144) hide show
  1. package/dist/api/BottomSheet.json +12 -0
  2. package/dist/api/QCarouselSlide.json +1 -1
  3. package/dist/api/QChatMessage.json +1 -1
  4. package/dist/api/QImg.json +8 -2
  5. package/dist/api/QTimelineEntry.json +1 -1
  6. package/dist/icon-set/bootstrap-icons.umd.min.js +1 -1
  7. package/dist/icon-set/eva-icons.umd.min.js +1 -1
  8. package/dist/icon-set/fontawesome-v5-pro.umd.min.js +1 -1
  9. package/dist/icon-set/fontawesome-v5.umd.min.js +1 -1
  10. package/dist/icon-set/fontawesome-v6-pro.umd.min.js +1 -1
  11. package/dist/icon-set/fontawesome-v6.umd.min.js +1 -1
  12. package/dist/icon-set/ionicons-v4.umd.min.js +1 -1
  13. package/dist/icon-set/line-awesome.umd.min.js +1 -1
  14. package/dist/icon-set/material-icons-outlined.umd.min.js +1 -1
  15. package/dist/icon-set/material-icons-round.umd.min.js +1 -1
  16. package/dist/icon-set/material-icons-sharp.umd.min.js +1 -1
  17. package/dist/icon-set/material-icons.umd.min.js +1 -1
  18. package/dist/icon-set/material-symbols-outlined.umd.min.js +1 -1
  19. package/dist/icon-set/material-symbols-rounded.umd.min.js +1 -1
  20. package/dist/icon-set/material-symbols-sharp.umd.min.js +1 -1
  21. package/dist/icon-set/mdi-v3.umd.min.js +1 -1
  22. package/dist/icon-set/mdi-v4.umd.min.js +1 -1
  23. package/dist/icon-set/mdi-v5.umd.min.js +1 -1
  24. package/dist/icon-set/mdi-v6.umd.min.js +1 -1
  25. package/dist/icon-set/mdi-v7.umd.min.js +1 -1
  26. package/dist/icon-set/svg-bootstrap-icons.umd.min.js +1 -1
  27. package/dist/icon-set/svg-eva-icons.umd.min.js +1 -1
  28. package/dist/icon-set/svg-fontawesome-v5.umd.min.js +1 -1
  29. package/dist/icon-set/svg-fontawesome-v6.umd.min.js +1 -1
  30. package/dist/icon-set/svg-ionicons-v4.umd.min.js +1 -1
  31. package/dist/icon-set/svg-ionicons-v5.umd.min.js +1 -1
  32. package/dist/icon-set/svg-ionicons-v6.umd.min.js +1 -1
  33. package/dist/icon-set/svg-line-awesome.umd.min.js +1 -1
  34. package/dist/icon-set/svg-material-icons-outlined.umd.min.js +1 -1
  35. package/dist/icon-set/svg-material-icons-round.umd.min.js +1 -1
  36. package/dist/icon-set/svg-material-icons-sharp.umd.min.js +1 -1
  37. package/dist/icon-set/svg-material-icons.umd.min.js +1 -1
  38. package/dist/icon-set/svg-material-symbols-outlined.umd.min.js +1 -1
  39. package/dist/icon-set/svg-material-symbols-rounded.umd.min.js +1 -1
  40. package/dist/icon-set/svg-material-symbols-sharp.umd.min.js +1 -1
  41. package/dist/icon-set/svg-mdi-v4.umd.min.js +1 -1
  42. package/dist/icon-set/svg-mdi-v5.umd.min.js +1 -1
  43. package/dist/icon-set/svg-mdi-v6.umd.min.js +1 -1
  44. package/dist/icon-set/svg-mdi-v7.umd.min.js +1 -1
  45. package/dist/icon-set/svg-themify.umd.min.js +1 -1
  46. package/dist/icon-set/themify.umd.min.js +1 -1
  47. package/dist/lang/ar.umd.min.js +1 -1
  48. package/dist/lang/az-latn.umd.min.js +1 -1
  49. package/dist/lang/bg.umd.min.js +1 -1
  50. package/dist/lang/ca.umd.min.js +1 -1
  51. package/dist/lang/cs.umd.min.js +1 -1
  52. package/dist/lang/da.umd.min.js +1 -1
  53. package/dist/lang/de.umd.min.js +1 -1
  54. package/dist/lang/el.umd.min.js +1 -1
  55. package/dist/lang/en-gb.umd.min.js +1 -1
  56. package/dist/lang/en-us.umd.min.js +1 -1
  57. package/dist/lang/eo.umd.min.js +1 -1
  58. package/dist/lang/es.umd.min.js +1 -1
  59. package/dist/lang/et.umd.min.js +1 -1
  60. package/dist/lang/eu.umd.min.js +1 -1
  61. package/dist/lang/fa-ir.umd.min.js +1 -1
  62. package/dist/lang/fa.umd.min.js +1 -1
  63. package/dist/lang/fi.umd.min.js +1 -1
  64. package/dist/lang/fr.umd.min.js +1 -1
  65. package/dist/lang/gn.umd.min.js +1 -1
  66. package/dist/lang/he.umd.min.js +1 -1
  67. package/dist/lang/hr.umd.min.js +1 -1
  68. package/dist/lang/hu.umd.min.js +1 -1
  69. package/dist/lang/id.umd.min.js +1 -1
  70. package/dist/lang/is.umd.min.js +1 -1
  71. package/dist/lang/it.umd.min.js +1 -1
  72. package/dist/lang/ja.umd.min.js +1 -1
  73. package/dist/lang/km.umd.min.js +1 -1
  74. package/dist/lang/ko-kr.umd.min.js +1 -1
  75. package/dist/lang/kur-ckb.umd.min.js +1 -1
  76. package/dist/lang/kz.umd.min.js +1 -1
  77. package/dist/lang/lu.umd.min.js +1 -1
  78. package/dist/lang/lv.umd.min.js +1 -1
  79. package/dist/lang/ml.umd.min.js +1 -1
  80. package/dist/lang/mm.umd.min.js +1 -1
  81. package/dist/lang/ms.umd.min.js +1 -1
  82. package/dist/lang/my.umd.min.js +1 -1
  83. package/dist/lang/nb-no.umd.min.js +1 -1
  84. package/dist/lang/nl.umd.min.js +1 -1
  85. package/dist/lang/pl.umd.min.js +1 -1
  86. package/dist/lang/pt-br.umd.min.js +1 -1
  87. package/dist/lang/pt.umd.min.js +1 -1
  88. package/dist/lang/ro.umd.min.js +1 -1
  89. package/dist/lang/ru.umd.min.js +1 -1
  90. package/dist/lang/sk.umd.min.js +1 -1
  91. package/dist/lang/sl.umd.min.js +2 -2
  92. package/dist/lang/sm.umd.min.js +1 -1
  93. package/dist/lang/sr.umd.min.js +1 -1
  94. package/dist/lang/sv.umd.min.js +1 -1
  95. package/dist/lang/ta.umd.min.js +1 -1
  96. package/dist/lang/th.umd.min.js +1 -1
  97. package/dist/lang/tr.umd.min.js +1 -1
  98. package/dist/lang/ug.umd.min.js +1 -1
  99. package/dist/lang/uk.umd.min.js +1 -1
  100. package/dist/lang/uz-Cyrl.umd.min.js +1 -1
  101. package/dist/lang/uz-Latn.umd.min.js +1 -1
  102. package/dist/lang/vi.umd.min.js +1 -1
  103. package/dist/lang/zh-hans.umd.min.js +1 -1
  104. package/dist/lang/zh-hant.umd.min.js +1 -1
  105. package/dist/quasar.addon.css +1 -1
  106. package/dist/quasar.addon.rtl.css +1 -1
  107. package/dist/quasar.common.js +2 -2
  108. package/dist/quasar.css +2 -4
  109. package/dist/quasar.esm.js +2 -2
  110. package/dist/quasar.ie.polyfills.js +1 -1
  111. package/dist/quasar.ie.polyfills.umd.min.js +1 -1
  112. package/dist/quasar.min.css +1 -1
  113. package/dist/quasar.rtl.css +2 -4
  114. package/dist/quasar.rtl.min.css +1 -1
  115. package/dist/quasar.sass +2 -3
  116. package/dist/quasar.styl +2 -3
  117. package/dist/quasar.umd.js +95 -20
  118. package/dist/quasar.umd.min.js +2 -2
  119. package/dist/quasar.umd.modern.js +88 -18
  120. package/dist/quasar.umd.modern.min.js +2 -2
  121. package/dist/types/index.d.ts +12 -0
  122. package/dist/vetur/quasar-attributes.json +4 -0
  123. package/dist/vetur/quasar-tags.json +2 -1
  124. package/dist/web-types/web-types.json +16 -6
  125. package/lang/sl.js +1 -1
  126. package/package.json +1 -1
  127. package/src/components/carousel/QCarouselSlide.json +1 -1
  128. package/src/components/chat/QChatMessage.json +1 -1
  129. package/src/components/date/QDate.js +8 -3
  130. package/src/components/dialog/QDialog.js +2 -1
  131. package/src/components/dialog-bottom-sheet/BottomSheet.js +2 -0
  132. package/src/components/img/QImg.js +10 -1
  133. package/src/components/img/QImg.json +9 -2
  134. package/src/components/infinite-scroll/QInfiniteScroll.js +37 -2
  135. package/src/components/layout/QLayout.sass +1 -0
  136. package/src/components/layout/QLayout.styl +1 -0
  137. package/src/components/slide-transition/QSlideTransition.js +6 -1
  138. package/src/components/timeline/QTimelineEntry.json +1 -1
  139. package/src/css/core/visibility.sass +0 -3
  140. package/src/css/core/visibility.styl +0 -3
  141. package/src/mixins/mask.js +1 -1
  142. package/src/mixins/prevent-scroll.js +9 -1
  143. package/src/plugins/BottomSheet.json +7 -0
  144. package/src/utils/is.js +11 -6
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Quasar Framework v1.22.4
2
+ * Quasar Framework v1.22.6
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.4";
15
+ var version = "1.22.6";
16
16
 
17
17
  /* eslint-disable no-useless-escape */
18
18
 
@@ -7088,20 +7088,23 @@
7088
7088
  return false
7089
7089
  }
7090
7090
 
7091
- i = a.entries().next();
7091
+ let iter = a.entries();
7092
+
7093
+ i = iter.next();
7092
7094
  while (i.done !== true) {
7093
7095
  if (b.has(i.value[0]) !== true) {
7094
7096
  return false
7095
7097
  }
7096
- i = i.next();
7098
+ i = iter.next();
7097
7099
  }
7098
7100
 
7099
- i = a.entries().next();
7101
+ iter = a.entries();
7102
+ i = iter.next();
7100
7103
  while (i.done !== true) {
7101
7104
  if (isDeepEqual(i.value[1], b.get(i.value[0])) !== true) {
7102
7105
  return false
7103
7106
  }
7104
- i = i.next();
7107
+ i = iter.next();
7105
7108
  }
7106
7109
 
7107
7110
  return true
@@ -7112,12 +7115,14 @@
7112
7115
  return false
7113
7116
  }
7114
7117
 
7115
- i = a.entries().next();
7118
+ const iter = a.entries();
7119
+
7120
+ i = iter.next();
7116
7121
  while (i.done !== true) {
7117
7122
  if (b.has(i.value[0]) !== true) {
7118
7123
  return false
7119
7124
  }
7120
- i = i.next();
7125
+ i = iter.next();
7121
7126
  }
7122
7127
 
7123
7128
  return true
@@ -13209,8 +13214,8 @@
13209
13214
  this.lastEmitValue = 0;
13210
13215
  }
13211
13216
  else {
13212
- const { year, month } = this.__getViewModel(this.innerMask, this.innerLocale);
13213
- this.__updateViewModel(year, month);
13217
+ const model = this.__getViewModel(this.innerMask, this.innerLocale);
13218
+ this.__updateViewModel(model.year, model.month, model);
13214
13219
  }
13215
13220
  },
13216
13221
 
@@ -14378,7 +14383,7 @@
14378
14383
  }
14379
14384
  },
14380
14385
 
14381
- __updateViewModel (year, month) {
14386
+ __updateViewModel (year, month, time) {
14382
14387
  if (this.minNav !== void 0 && year <= this.minNav.year) {
14383
14388
  year = this.minNav.year;
14384
14389
  if (month < this.minNav.month) {
@@ -14393,6 +14398,11 @@
14393
14398
  }
14394
14399
  }
14395
14400
 
14401
+ if (time !== void 0) {
14402
+ const { hour, minute, second, millisecond, timezoneOffset, timeHash } = time;
14403
+ Object.assign(this.viewModel, { hour, minute, second, millisecond, timezoneOffset, timeHash });
14404
+ }
14405
+
14396
14406
  const newHash = year + '/' + pad(month) + '/01';
14397
14407
 
14398
14408
  if (newHash !== this.viewModel.dateHash) {
@@ -14617,6 +14627,7 @@
14617
14627
  vpPendingUpdate = false,
14618
14628
  bodyLeft,
14619
14629
  bodyTop,
14630
+ href,
14620
14631
  closeTimer;
14621
14632
 
14622
14633
  function onWheel (e) {
@@ -14703,6 +14714,8 @@
14703
14714
  bodyLeft = body.style.left;
14704
14715
  bodyTop = body.style.top;
14705
14716
 
14717
+ href = window.location.href;
14718
+
14706
14719
  body.style.left = `-${scrollPositionX}px`;
14707
14720
  body.style.top = `-${scrollPositionY}px`;
14708
14721
  if (overflowY !== 'hidden' && (overflowY === 'scroll' || body.scrollHeight > window.innerHeight)) {
@@ -14711,6 +14724,7 @@
14711
14724
 
14712
14725
  body.classList.add('q-body--prevent-scroll');
14713
14726
  document.qScrollPrevented = true;
14727
+
14714
14728
  if (client.is.ios === true) {
14715
14729
  if (hasViewport === true) {
14716
14730
  window.scrollTo(0, 0);
@@ -14747,7 +14761,11 @@
14747
14761
  body.style.left = bodyLeft;
14748
14762
  body.style.top = bodyTop;
14749
14763
 
14750
- window.scrollTo(scrollPositionX, scrollPositionY);
14764
+ // scroll back only if route has not changed
14765
+ if (window.location.href === href) {
14766
+ window.scrollTo(scrollPositionX, scrollPositionY);
14767
+ }
14768
+
14751
14769
  maxScrollTop = void 0;
14752
14770
  }
14753
14771
  }
@@ -15165,7 +15183,7 @@
15165
15183
  staticClass: 'q-dialog__backdrop fixed-full',
15166
15184
  attrs: backdropAttrs,
15167
15185
  on: cache(this, 'bkdrop', {
15168
- [ this.$q.platform.is.ios === true ? 'click' : 'focusin' ]: this.__onBackdropClick
15186
+ [ this.backdropEvt ]: this.__onBackdropClick
15169
15187
  })
15170
15188
  })
15171
15189
  ] : null),
@@ -15188,6 +15206,7 @@
15188
15206
  created () {
15189
15207
  this.__useTick('__registerTick', '__removeTick');
15190
15208
  this.__useTimeout('__registerTimeout');
15209
+ this.backdropEvt = this.$q.platform.is.ios === true || this.$q.platform.is.safari ? 'click' : 'focusin';
15191
15210
  },
15192
15211
 
15193
15212
  mounted () {
@@ -17676,7 +17695,7 @@
17676
17695
 
17677
17696
  methods: {
17678
17697
  __begin (el, height, done) {
17679
- el.style.overflowY = 'hidden';
17698
+ // here overflowY is 'hidden'
17680
17699
  if (height !== void 0) {
17681
17700
  el.style.height = `${height}px`;
17682
17701
  }
@@ -17721,12 +17740,14 @@
17721
17740
  let pos = 0;
17722
17741
  this.el = el;
17723
17742
 
17743
+ // if animationg overflowY is already 'hidden'
17724
17744
  if (this.animating === true) {
17725
17745
  this.__cleanup();
17726
17746
  pos = el.offsetHeight === el.scrollHeight ? 0 : void 0;
17727
17747
  }
17728
17748
  else {
17729
17749
  this.lastEvent = 'hide';
17750
+ el.style.overflowY = 'hidden';
17730
17751
  }
17731
17752
 
17732
17753
  this.__begin(el, pos, done);
@@ -17752,6 +17773,9 @@
17752
17773
  }
17753
17774
  else {
17754
17775
  this.lastEvent = 'show';
17776
+ // we need to set overflowY 'hidden' before calculating the height
17777
+ // or else we get small differences
17778
+ el.style.overflowY = 'hidden';
17755
17779
  pos = el.scrollHeight;
17756
17780
  }
17757
17781
 
@@ -20534,6 +20558,7 @@
20534
20558
  imgStyle: Object,
20535
20559
 
20536
20560
  nativeContextMenu: Boolean,
20561
+ notDraggable: Boolean,
20537
20562
 
20538
20563
  noDefaultSpinner: Boolean,
20539
20564
  spinnerColor: String,
@@ -20573,6 +20598,14 @@
20573
20598
  return att
20574
20599
  },
20575
20600
 
20601
+ imgAttrs () {
20602
+ const att = { src: this.url, 'aria-hidden': 'true' };
20603
+ if (this.notDraggable === true) {
20604
+ att.draggable = false;
20605
+ }
20606
+ return att
20607
+ },
20608
+
20576
20609
  imgContainerStyle () {
20577
20610
  return Object.assign(
20578
20611
  {
@@ -20724,7 +20757,7 @@
20724
20757
  ? [
20725
20758
  h('img', {
20726
20759
  staticClass: 'absolute-full fit',
20727
- attrs: { src: this.url, 'aria-hidden': 'true' }
20760
+ attrs: this.imgAttrs
20728
20761
  })
20729
20762
  ]
20730
20763
  : void 0;
@@ -20850,6 +20883,12 @@
20850
20883
  }
20851
20884
  },
20852
20885
 
20886
+ computed: {
20887
+ renderLoadingSlot () {
20888
+ return this.disable !== true && this.isWorking === true
20889
+ }
20890
+ },
20891
+
20853
20892
  watch: {
20854
20893
  disable (val) {
20855
20894
  if (val === true) { this.stop(); }
@@ -20868,6 +20907,14 @@
20868
20907
 
20869
20908
  debounce (val) {
20870
20909
  this.__setDebounce(val);
20910
+ },
20911
+
20912
+ isFetching () {
20913
+ this.__updateSvgAnimations();
20914
+ },
20915
+
20916
+ renderLoadingSlot () {
20917
+ this.__updateSvgAnimations();
20871
20918
  }
20872
20919
  },
20873
20920
 
@@ -20989,14 +21036,34 @@
20989
21036
 
20990
21037
  this.__scrollTarget.addEventListener('scroll', this.poll, passive$1);
20991
21038
  }
21039
+ },
21040
+
21041
+ __updateSvgAnimations (isRetry) {
21042
+ if (this.renderLoadingSlot === true) {
21043
+ const el = this.$refs.loading;
21044
+
21045
+ if (!el) {
21046
+ isRetry !== true && this.$nextTick(() => {
21047
+ this.__updateSvgAnimations(true);
21048
+ });
21049
+ return
21050
+ }
21051
+
21052
+ // we need to pause svg animations (if any) when hiding
21053
+ // otherwise the browser will keep on recalculating the style
21054
+ const action = `${ this.isFetching === true ? 'un' : '' }pauseAnimations`;
21055
+ Array.from(el.getElementsByTagName('svg')).forEach(el => {
21056
+ el[ action ]();
21057
+ });
21058
+ }
20992
21059
  }
20993
21060
  },
20994
21061
 
20995
21062
  mounted () {
20996
21063
  this.immediatePoll = this.poll;
20997
21064
  this.__setDebounce(this.debounce);
20998
-
20999
21065
  this.updateScrollTarget();
21066
+ this.isFetching === false && this.__updateSvgAnimations();
21000
21067
  },
21001
21068
 
21002
21069
  activated () {
@@ -21018,9 +21085,10 @@
21018
21085
  render (h) {
21019
21086
  const child = uniqueSlot(this, 'default', []);
21020
21087
 
21021
- if (this.disable !== true && this.isWorking === true) {
21088
+ if (this.renderLoadingSlot === true) {
21022
21089
  child[this.reverse === false ? 'push' : 'unshift'](
21023
21090
  h('div', {
21091
+ ref: 'loading',
21024
21092
  staticClass: 'q-infinite-scroll__loading',
21025
21093
  class: this.isFetching === true ? '' : 'invisible'
21026
21094
  }, slot(this, 'loading'))
@@ -21300,7 +21368,7 @@
21300
21368
 
21301
21369
  this.computedMask = mask;
21302
21370
  this.computedUnmask = val => {
21303
- const unmaskMatch = unmaskMatcher.exec(this.reverseFillMask === true ? val : val.slice(0, mask.length));
21371
+ const unmaskMatch = unmaskMatcher.exec(this.reverseFillMask === true ? val : val.slice(0, mask.length + 1));
21304
21372
  if (unmaskMatch !== null) {
21305
21373
  val = unmaskMatch.slice(1).join('');
21306
21374
  }
@@ -38763,6 +38831,7 @@
38763
38831
  : h('div', {
38764
38832
  staticClass: 'q-bottom-sheet__item q-hoverable q-focusable cursor-pointer relative-position',
38765
38833
  class: action.classes,
38834
+ style: action.style,
38766
38835
  attrs: attrsGridItem,
38767
38836
  on: {
38768
38837
  click: () => {
@@ -38800,6 +38869,7 @@
38800
38869
  : h(QItem, {
38801
38870
  staticClass: 'q-bottom-sheet__item',
38802
38871
  class: action.classes,
38872
+ style: action.style,
38803
38873
  props: {
38804
38874
  tabindex: 0,
38805
38875
  clickable: true,