quasar 1.22.3 → 1.22.5

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 (122) 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 +1 -1
  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 +1 -1
  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.rtl.css +1 -1
  108. package/dist/quasar.sass +1 -1
  109. package/dist/quasar.styl +1 -1
  110. package/dist/quasar.umd.js +134 -39
  111. package/dist/quasar.umd.min.js +2 -2
  112. package/dist/quasar.umd.modern.js +129 -38
  113. package/dist/quasar.umd.modern.min.js +2 -2
  114. package/dist/web-types/web-types.json +1 -1
  115. package/package.json +1 -1
  116. package/src/components/dialog/QDialog.js +2 -1
  117. package/src/components/infinite-scroll/QInfiniteScroll.js +37 -2
  118. package/src/css/core/visibility.sass +0 -1
  119. package/src/css/core/visibility.styl +0 -1
  120. package/src/mixins/prevent-scroll.js +9 -1
  121. package/src/utils/is.js +11 -6
  122. package/src/utils/private/position-engine.js +67 -30
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Quasar Framework v1.22.3
2
+ * Quasar Framework v1.22.5
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.3";
15
+ var version = "1.22.5";
16
16
 
17
17
  /* eslint-disable no-useless-escape */
18
18
 
@@ -5210,17 +5210,32 @@
5210
5210
  }
5211
5211
 
5212
5212
  return {
5213
- top,
5214
- left,
5215
- right,
5216
- bottom,
5217
- width,
5218
- height,
5213
+ top, bottom, height,
5214
+ left, right, width,
5219
5215
  middle: left + (right - left) / 2,
5220
5216
  center: top + (bottom - top) / 2
5221
5217
  }
5222
5218
  }
5223
5219
 
5220
+ function getAbsoluteAnchorProps (el, absoluteOffset, offset) {
5221
+ let { top, left } = el.getBoundingClientRect();
5222
+
5223
+ top += absoluteOffset.top;
5224
+ left += absoluteOffset.left;
5225
+
5226
+ if (offset !== void 0) {
5227
+ top += offset[ 1 ];
5228
+ left += offset[ 0 ];
5229
+ }
5230
+
5231
+ return {
5232
+ top, bottom: top + 1, height: 1,
5233
+ left, right: left + 1, width: 1,
5234
+ middle: left,
5235
+ center: top
5236
+ }
5237
+ }
5238
+
5224
5239
  function getTargetProps (el) {
5225
5240
  return {
5226
5241
  top: 0,
@@ -5232,6 +5247,13 @@
5232
5247
  }
5233
5248
  }
5234
5249
 
5250
+ function getTopLeftProps (anchorProps, targetProps, cfg) {
5251
+ return {
5252
+ top: anchorProps[ cfg.anchorOrigin.vertical ] - targetProps[ cfg.selfOrigin.vertical ],
5253
+ left: anchorProps[ cfg.anchorOrigin.horizontal ] - targetProps[ cfg.selfOrigin.horizontal ]
5254
+ }
5255
+ }
5256
+
5235
5257
  // cfg: { el, anchorEl, anchorOrigin, selfOrigin, offset, absoluteOffset, cover, fit, maxHeight, maxWidth }
5236
5258
  function setPosition (cfg) {
5237
5259
  if (client.is.ios === true && window.visualViewport !== void 0) {
@@ -5250,25 +5272,15 @@
5250
5272
  }
5251
5273
  }
5252
5274
 
5253
- let anchorProps;
5254
-
5255
5275
  // scroll position might change
5256
5276
  // if max-height/-width changes, so we
5257
5277
  // need to restore it after we calculate
5258
5278
  // the new positioning
5259
5279
  const { scrollLeft, scrollTop } = cfg.el;
5260
5280
 
5261
- if (cfg.absoluteOffset === void 0) {
5262
- anchorProps = getAnchorProps(cfg.anchorEl, cfg.cover === true ? [0, 0] : cfg.offset);
5263
- }
5264
- else {
5265
- const
5266
- { top: anchorTop, left: anchorLeft } = cfg.anchorEl.getBoundingClientRect(),
5267
- top = anchorTop + cfg.absoluteOffset.top,
5268
- left = anchorLeft + cfg.absoluteOffset.left;
5269
-
5270
- anchorProps = { top, left, width: 1, height: 1, right: left + 1, center: top, middle: left, bottom: top + 1 };
5271
- }
5281
+ const anchorProps = cfg.absoluteOffset === void 0
5282
+ ? getAnchorProps(cfg.anchorEl, cfg.cover === true ? [ 0, 0 ] : cfg.offset)
5283
+ : getAbsoluteAnchorProps(cfg.anchorEl, cfg.absoluteOffset, cfg.offset);
5272
5284
 
5273
5285
  let elStyle = {
5274
5286
  maxHeight: cfg.maxHeight,
@@ -5285,14 +5297,44 @@
5285
5297
 
5286
5298
  Object.assign(cfg.el.style, elStyle);
5287
5299
 
5288
- const
5289
- targetProps = getTargetProps(cfg.el),
5290
- props = {
5291
- top: anchorProps[cfg.anchorOrigin.vertical] - targetProps[cfg.selfOrigin.vertical],
5292
- left: anchorProps[cfg.anchorOrigin.horizontal] - targetProps[cfg.selfOrigin.horizontal]
5293
- };
5300
+ const targetProps = getTargetProps(cfg.el);
5301
+ let props = getTopLeftProps(anchorProps, targetProps, cfg);
5302
+
5303
+ if (cfg.absoluteOffset === void 0 || cfg.offset === void 0) {
5304
+ applyBoundaries(props, anchorProps, targetProps, cfg.anchorOrigin, cfg.selfOrigin);
5305
+ }
5306
+ else { // we have touch position or context menu with offset
5307
+ const { top, left } = props; // cache initial values
5308
+
5309
+ // apply initial boundaries
5310
+ applyBoundaries(props, anchorProps, targetProps, cfg.anchorOrigin, cfg.selfOrigin);
5311
+
5312
+ let hasChanged = false;
5313
+
5314
+ // did it flip vertically?
5315
+ if (props.top !== top) {
5316
+ hasChanged = true;
5317
+ const offsetY = 2 * cfg.offset[ 1 ];
5318
+ anchorProps.center = anchorProps.top -= offsetY;
5319
+ anchorProps.bottom -= offsetY + 2;
5320
+ }
5321
+
5322
+ // did it flip horizontally?
5323
+ if (props.left !== left) {
5324
+ hasChanged = true;
5325
+ const offsetX = 2 * cfg.offset[ 0 ];
5326
+ anchorProps.middle = anchorProps.left -= offsetX;
5327
+ anchorProps.right -= offsetX + 2;
5328
+ }
5329
+
5330
+ if (hasChanged === true) {
5331
+ // re-calculate props with the new anchor
5332
+ props = getTopLeftProps(anchorProps, targetProps, cfg);
5294
5333
 
5295
- applyBoundaries(props, anchorProps, targetProps, cfg.anchorOrigin, cfg.selfOrigin);
5334
+ // and re-apply boundaries
5335
+ applyBoundaries(props, anchorProps, targetProps, cfg.anchorOrigin, cfg.selfOrigin);
5336
+ }
5337
+ }
5296
5338
 
5297
5339
  elStyle = {
5298
5340
  top: props.top + 'px',
@@ -7046,20 +7088,23 @@
7046
7088
  return false
7047
7089
  }
7048
7090
 
7049
- i = a.entries().next();
7091
+ let iter = a.entries();
7092
+
7093
+ i = iter.next();
7050
7094
  while (i.done !== true) {
7051
7095
  if (b.has(i.value[0]) !== true) {
7052
7096
  return false
7053
7097
  }
7054
- i = i.next();
7098
+ i = iter.next();
7055
7099
  }
7056
7100
 
7057
- i = a.entries().next();
7101
+ iter = a.entries();
7102
+ i = iter.next();
7058
7103
  while (i.done !== true) {
7059
7104
  if (isDeepEqual(i.value[1], b.get(i.value[0])) !== true) {
7060
7105
  return false
7061
7106
  }
7062
- i = i.next();
7107
+ i = iter.next();
7063
7108
  }
7064
7109
 
7065
7110
  return true
@@ -7070,12 +7115,14 @@
7070
7115
  return false
7071
7116
  }
7072
7117
 
7073
- i = a.entries().next();
7118
+ const iter = a.entries();
7119
+
7120
+ i = iter.next();
7074
7121
  while (i.done !== true) {
7075
7122
  if (b.has(i.value[0]) !== true) {
7076
7123
  return false
7077
7124
  }
7078
- i = i.next();
7125
+ i = iter.next();
7079
7126
  }
7080
7127
 
7081
7128
  return true
@@ -14575,6 +14622,7 @@
14575
14622
  vpPendingUpdate = false,
14576
14623
  bodyLeft,
14577
14624
  bodyTop,
14625
+ href,
14578
14626
  closeTimer;
14579
14627
 
14580
14628
  function onWheel (e) {
@@ -14661,6 +14709,8 @@
14661
14709
  bodyLeft = body.style.left;
14662
14710
  bodyTop = body.style.top;
14663
14711
 
14712
+ href = window.location.href;
14713
+
14664
14714
  body.style.left = `-${scrollPositionX}px`;
14665
14715
  body.style.top = `-${scrollPositionY}px`;
14666
14716
  if (overflowY !== 'hidden' && (overflowY === 'scroll' || body.scrollHeight > window.innerHeight)) {
@@ -14669,6 +14719,7 @@
14669
14719
 
14670
14720
  body.classList.add('q-body--prevent-scroll');
14671
14721
  document.qScrollPrevented = true;
14722
+
14672
14723
  if (client.is.ios === true) {
14673
14724
  if (hasViewport === true) {
14674
14725
  window.scrollTo(0, 0);
@@ -14705,7 +14756,11 @@
14705
14756
  body.style.left = bodyLeft;
14706
14757
  body.style.top = bodyTop;
14707
14758
 
14708
- window.scrollTo(scrollPositionX, scrollPositionY);
14759
+ // scroll back only if route has not changed
14760
+ if (window.location.href === href) {
14761
+ window.scrollTo(scrollPositionX, scrollPositionY);
14762
+ }
14763
+
14709
14764
  maxScrollTop = void 0;
14710
14765
  }
14711
14766
  }
@@ -15123,7 +15178,7 @@
15123
15178
  staticClass: 'q-dialog__backdrop fixed-full',
15124
15179
  attrs: backdropAttrs,
15125
15180
  on: cache(this, 'bkdrop', {
15126
- [ this.$q.platform.is.ios === true ? 'click' : 'focusin' ]: this.__onBackdropClick
15181
+ [ this.backdropEvt ]: this.__onBackdropClick
15127
15182
  })
15128
15183
  })
15129
15184
  ] : null),
@@ -15146,6 +15201,7 @@
15146
15201
  created () {
15147
15202
  this.__useTick('__registerTick', '__removeTick');
15148
15203
  this.__useTimeout('__registerTimeout');
15204
+ this.backdropEvt = this.$q.platform.is.ios === true || this.$q.platform.is.safari ? 'click' : 'focusin';
15149
15205
  },
15150
15206
 
15151
15207
  mounted () {
@@ -20808,6 +20864,12 @@
20808
20864
  }
20809
20865
  },
20810
20866
 
20867
+ computed: {
20868
+ renderLoadingSlot () {
20869
+ return this.disable !== true && this.isWorking === true
20870
+ }
20871
+ },
20872
+
20811
20873
  watch: {
20812
20874
  disable (val) {
20813
20875
  if (val === true) { this.stop(); }
@@ -20826,6 +20888,14 @@
20826
20888
 
20827
20889
  debounce (val) {
20828
20890
  this.__setDebounce(val);
20891
+ },
20892
+
20893
+ isFetching () {
20894
+ this.__updateSvgAnimations();
20895
+ },
20896
+
20897
+ renderLoadingSlot () {
20898
+ this.__updateSvgAnimations();
20829
20899
  }
20830
20900
  },
20831
20901
 
@@ -20947,14 +21017,34 @@
20947
21017
 
20948
21018
  this.__scrollTarget.addEventListener('scroll', this.poll, passive$1);
20949
21019
  }
21020
+ },
21021
+
21022
+ __updateSvgAnimations (isRetry) {
21023
+ if (this.renderLoadingSlot === true) {
21024
+ const el = this.$refs.loading;
21025
+
21026
+ if (!el) {
21027
+ isRetry !== true && this.$nextTick(() => {
21028
+ this.__updateSvgAnimations(true);
21029
+ });
21030
+ return
21031
+ }
21032
+
21033
+ // we need to pause svg animations (if any) when hiding
21034
+ // otherwise the browser will keep on recalculating the style
21035
+ const action = `${ this.isFetching === true ? 'un' : '' }pauseAnimations`;
21036
+ Array.from(el.getElementsByTagName('svg')).forEach(el => {
21037
+ el[ action ]();
21038
+ });
21039
+ }
20950
21040
  }
20951
21041
  },
20952
21042
 
20953
21043
  mounted () {
20954
21044
  this.immediatePoll = this.poll;
20955
21045
  this.__setDebounce(this.debounce);
20956
-
20957
21046
  this.updateScrollTarget();
21047
+ this.isFetching === false && this.__updateSvgAnimations();
20958
21048
  },
20959
21049
 
20960
21050
  activated () {
@@ -20976,9 +21066,10 @@
20976
21066
  render (h) {
20977
21067
  const child = uniqueSlot(this, 'default', []);
20978
21068
 
20979
- if (this.disable !== true && this.isWorking === true) {
21069
+ if (this.renderLoadingSlot === true) {
20980
21070
  child[this.reverse === false ? 'push' : 'unshift'](
20981
21071
  h('div', {
21072
+ ref: 'loading',
20982
21073
  staticClass: 'q-infinite-scroll__loading',
20983
21074
  class: this.isFetching === true ? '' : 'invisible'
20984
21075
  }, slot(this, 'loading'))