quasar 2.11.4 → 2.11.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 (170) hide show
  1. package/dist/api/QCarouselSlide.json +1 -1
  2. package/dist/api/QChatMessage.json +1 -1
  3. package/dist/api/QForm.json +3 -2
  4. package/dist/api/QImg.json +2 -2
  5. package/dist/api/QTimelineEntry.json +1 -1
  6. package/dist/api/QVirtualScroll.json +2 -2
  7. package/dist/icon-set/bootstrap-icons.umd.prod.js +1 -1
  8. package/dist/icon-set/eva-icons.umd.prod.js +1 -1
  9. package/dist/icon-set/fontawesome-v5-pro.umd.prod.js +1 -1
  10. package/dist/icon-set/fontawesome-v5.umd.prod.js +1 -1
  11. package/dist/icon-set/fontawesome-v6-pro.umd.prod.js +1 -1
  12. package/dist/icon-set/fontawesome-v6.umd.prod.js +1 -1
  13. package/dist/icon-set/ionicons-v4.umd.prod.js +1 -1
  14. package/dist/icon-set/line-awesome.umd.prod.js +1 -1
  15. package/dist/icon-set/material-icons-outlined.umd.prod.js +1 -1
  16. package/dist/icon-set/material-icons-round.umd.prod.js +1 -1
  17. package/dist/icon-set/material-icons-sharp.umd.prod.js +1 -1
  18. package/dist/icon-set/material-icons.umd.prod.js +1 -1
  19. package/dist/icon-set/material-symbols-outlined.umd.prod.js +1 -1
  20. package/dist/icon-set/material-symbols-rounded.umd.prod.js +1 -1
  21. package/dist/icon-set/material-symbols-sharp.umd.prod.js +1 -1
  22. package/dist/icon-set/mdi-v3.umd.prod.js +1 -1
  23. package/dist/icon-set/mdi-v4.umd.prod.js +1 -1
  24. package/dist/icon-set/mdi-v5.umd.prod.js +1 -1
  25. package/dist/icon-set/mdi-v6.umd.prod.js +1 -1
  26. package/dist/icon-set/mdi-v7.umd.prod.js +1 -1
  27. package/dist/icon-set/svg-bootstrap-icons.umd.prod.js +1 -1
  28. package/dist/icon-set/svg-eva-icons.umd.prod.js +1 -1
  29. package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +1 -1
  30. package/dist/icon-set/svg-fontawesome-v6.umd.prod.js +2 -2
  31. package/dist/icon-set/svg-ionicons-v4.umd.prod.js +1 -1
  32. package/dist/icon-set/svg-ionicons-v5.umd.prod.js +1 -1
  33. package/dist/icon-set/svg-ionicons-v6.umd.prod.js +1 -1
  34. package/dist/icon-set/svg-line-awesome.umd.prod.js +1 -1
  35. package/dist/icon-set/svg-material-icons-outlined.umd.prod.js +1 -1
  36. package/dist/icon-set/svg-material-icons-round.umd.prod.js +1 -1
  37. package/dist/icon-set/svg-material-icons-sharp.umd.prod.js +1 -1
  38. package/dist/icon-set/svg-material-icons.umd.prod.js +1 -1
  39. package/dist/icon-set/svg-material-symbols-outlined.umd.prod.js +2 -2
  40. package/dist/icon-set/svg-material-symbols-rounded.umd.prod.js +2 -2
  41. package/dist/icon-set/svg-material-symbols-sharp.umd.prod.js +2 -2
  42. package/dist/icon-set/svg-mdi-v6.umd.prod.js +1 -1
  43. package/dist/icon-set/svg-mdi-v7.umd.prod.js +1 -1
  44. package/dist/icon-set/svg-themify.umd.prod.js +1 -1
  45. package/dist/icon-set/themify.umd.prod.js +1 -1
  46. package/dist/lang/ar-TN.umd.prod.js +1 -1
  47. package/dist/lang/ar.umd.prod.js +1 -1
  48. package/dist/lang/az-Latn.umd.prod.js +1 -1
  49. package/dist/lang/bg.umd.prod.js +1 -1
  50. package/dist/lang/bn.umd.prod.js +1 -1
  51. package/dist/lang/ca.umd.prod.js +1 -1
  52. package/dist/lang/cs.umd.prod.js +1 -1
  53. package/dist/lang/da.umd.prod.js +1 -1
  54. package/dist/lang/de.umd.prod.js +1 -1
  55. package/dist/lang/el.umd.prod.js +1 -1
  56. package/dist/lang/en-GB.umd.prod.js +1 -1
  57. package/dist/lang/en-US.umd.prod.js +1 -1
  58. package/dist/lang/eo.umd.prod.js +1 -1
  59. package/dist/lang/es.umd.prod.js +1 -1
  60. package/dist/lang/et.umd.prod.js +1 -1
  61. package/dist/lang/eu.umd.prod.js +1 -1
  62. package/dist/lang/fa-IR.umd.prod.js +1 -1
  63. package/dist/lang/fa.umd.prod.js +1 -1
  64. package/dist/lang/fi.umd.prod.js +1 -1
  65. package/dist/lang/fr.umd.prod.js +1 -1
  66. package/dist/lang/gn.umd.prod.js +1 -1
  67. package/dist/lang/he.umd.prod.js +1 -1
  68. package/dist/lang/hr.umd.prod.js +1 -1
  69. package/dist/lang/hu.umd.prod.js +1 -1
  70. package/dist/lang/id.umd.prod.js +1 -1
  71. package/dist/lang/is.umd.prod.js +1 -1
  72. package/dist/lang/it.umd.prod.js +1 -1
  73. package/dist/lang/ja.umd.prod.js +1 -1
  74. package/dist/lang/kk.umd.prod.js +1 -1
  75. package/dist/lang/km.umd.prod.js +1 -1
  76. package/dist/lang/ko-KR.umd.prod.js +1 -1
  77. package/dist/lang/kur-CKB.umd.prod.js +1 -1
  78. package/dist/lang/lt.umd.prod.js +1 -1
  79. package/dist/lang/lu.umd.prod.js +1 -1
  80. package/dist/lang/lv.umd.prod.js +1 -1
  81. package/dist/lang/ml.umd.prod.js +1 -1
  82. package/dist/lang/mm.umd.prod.js +1 -1
  83. package/dist/lang/ms.umd.prod.js +1 -1
  84. package/dist/lang/my.umd.prod.js +1 -1
  85. package/dist/lang/nb-NO.umd.prod.js +1 -1
  86. package/dist/lang/nl.umd.prod.js +1 -1
  87. package/dist/lang/pl.umd.prod.js +1 -1
  88. package/dist/lang/pt-BR.umd.prod.js +1 -1
  89. package/dist/lang/pt.umd.prod.js +1 -1
  90. package/dist/lang/ro.umd.prod.js +1 -1
  91. package/dist/lang/ru.umd.prod.js +1 -1
  92. package/dist/lang/sk.umd.prod.js +1 -1
  93. package/dist/lang/sl.umd.prod.js +2 -2
  94. package/dist/lang/sm.umd.prod.js +1 -1
  95. package/dist/lang/sr-CYR.umd.prod.js +1 -1
  96. package/dist/lang/sr.umd.prod.js +1 -1
  97. package/dist/lang/sv.umd.prod.js +1 -1
  98. package/dist/lang/ta.umd.prod.js +1 -1
  99. package/dist/lang/th.umd.prod.js +1 -1
  100. package/dist/lang/tr.umd.prod.js +1 -1
  101. package/dist/lang/ug.umd.prod.js +1 -1
  102. package/dist/lang/uk.umd.prod.js +1 -1
  103. package/dist/lang/uz-Cyrl.umd.prod.js +1 -1
  104. package/dist/lang/uz-Latn.umd.prod.js +1 -1
  105. package/dist/lang/vi.umd.prod.js +1 -1
  106. package/dist/lang/zh-CN.umd.prod.js +1 -1
  107. package/dist/lang/zh-TW.umd.prod.js +1 -1
  108. package/dist/quasar.cjs.prod.js +2 -2
  109. package/dist/quasar.css +1 -4
  110. package/dist/quasar.esm.js +83 -32
  111. package/dist/quasar.esm.prod.js +2 -2
  112. package/dist/quasar.prod.css +1 -1
  113. package/dist/quasar.rtl.css +1 -4
  114. package/dist/quasar.rtl.prod.css +1 -1
  115. package/dist/quasar.sass +4 -5
  116. package/dist/quasar.umd.js +83 -32
  117. package/dist/quasar.umd.prod.js +2 -2
  118. package/dist/types/api/dialog.d.ts +13 -11
  119. package/dist/types/api/qform.d.ts +5 -0
  120. package/dist/types/api/qinput.d.ts +0 -2
  121. package/dist/types/api/qloading.d.ts +1 -3
  122. package/dist/types/api/qnotify.d.ts +7 -5
  123. package/dist/types/api/qtable.d.ts +0 -2
  124. package/dist/types/api/slider.d.ts +6 -4
  125. package/dist/types/api/vue-prop-types.d.ts +9 -0
  126. package/dist/types/api/web-storage.d.ts +1 -2
  127. package/dist/types/api.d.ts +1 -0
  128. package/dist/types/composables.d.ts +2 -4
  129. package/dist/types/extras/icon-set.d.ts +42 -29
  130. package/dist/types/index.d.ts +6 -5
  131. package/dist/types/shim-icon-set.d.ts +0 -2
  132. package/dist/types/shim-lang.d.ts +0 -2
  133. package/dist/types/ts-helpers.d.ts +33 -10
  134. package/dist/types/tsconfig.json +15 -2
  135. package/dist/types/utils/colors.d.ts +4 -1
  136. package/dist/types/utils/date.d.ts +58 -12
  137. package/dist/types/utils/dom.d.ts +4 -1
  138. package/dist/types/utils/format.d.ts +6 -6
  139. package/dist/types/utils/scroll.d.ts +29 -6
  140. package/dist/types/utils.d.ts +26 -24
  141. package/dist/web-types/web-types.json +6 -6
  142. package/lang/sl.js +1 -1
  143. package/lang/sl.mjs +1 -1
  144. package/package.json +11 -9
  145. package/src/components/carousel/QCarouselSlide.json +1 -1
  146. package/src/components/chat/QChatMessage.json +1 -1
  147. package/src/components/date/use-datetime.js +1 -1
  148. package/src/components/dialog/QDialog.js +2 -4
  149. package/src/components/form/QForm.json +3 -2
  150. package/src/components/img/QImg.json +2 -2
  151. package/src/components/infinite-scroll/QInfiniteScroll.js +26 -4
  152. package/src/components/input/use-mask.js +1 -1
  153. package/src/components/layout/QLayout.sass +1 -0
  154. package/src/components/rating/QRating.js +3 -3
  155. package/src/components/slide-transition/QSlideTransition.js +6 -1
  156. package/src/components/timeline/QTimelineEntry.json +1 -1
  157. package/src/components/uploader/xhr-uploader-plugin.js +2 -2
  158. package/src/components/virtual-scroll/QVirtualScroll.json +2 -2
  159. package/src/components/virtual-scroll/use-virtual-scroll.js +5 -1
  160. package/src/composables/private/use-timeout.js +1 -1
  161. package/src/css/core/visibility.sass +0 -2
  162. package/src/css/variables.sass +2 -2
  163. package/src/plugins/Loading.js +11 -6
  164. package/src/plugins/Platform.js +1 -1
  165. package/src/utils/copy-to-clipboard.js +8 -0
  166. package/src/utils/is.js +11 -6
  167. package/src/utils/prevent-scroll.js +9 -1
  168. package/src/utils/private/define-reactive-plugin.js +1 -1
  169. package/dist/types/api/vue-prop-types.ts +0 -15
  170. package/dist/types/typings.json +0 -4
package/dist/quasar.css CHANGED
@@ -2938,6 +2938,7 @@ body.body--dark .q-knob--editable:focus:before {
2938
2938
 
2939
2939
  .q-layout {
2940
2940
  width: 100%;
2941
+ outline: 0;
2941
2942
  }
2942
2943
 
2943
2944
  .q-layout-container {
@@ -11561,10 +11562,6 @@ sup {
11561
11562
  animation: none !important;
11562
11563
  }
11563
11564
 
11564
- .invisible svg * {
11565
- display: none;
11566
- }
11567
-
11568
11565
  .transparent {
11569
11566
  background: transparent !important;
11570
11567
  }
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Quasar Framework v2.11.4
2
+ * Quasar Framework v2.11.6
3
3
  * (c) 2015-present Razvan Stoenescu
4
4
  * Released under the MIT License.
5
5
  */
@@ -1474,20 +1474,23 @@ function isDeepEqual (a, b) {
1474
1474
  return false
1475
1475
  }
1476
1476
 
1477
- i = a.entries().next();
1477
+ let iter = a.entries();
1478
+
1479
+ i = iter.next();
1478
1480
  while (i.done !== true) {
1479
1481
  if (b.has(i.value[ 0 ]) !== true) {
1480
1482
  return false
1481
1483
  }
1482
- i = i.next();
1484
+ i = iter.next();
1483
1485
  }
1484
1486
 
1485
- i = a.entries().next();
1487
+ iter = a.entries();
1488
+ i = iter.next();
1486
1489
  while (i.done !== true) {
1487
1490
  if (isDeepEqual(i.value[ 1 ], b.get(i.value[ 0 ])) !== true) {
1488
1491
  return false
1489
1492
  }
1490
- i = i.next();
1493
+ i = iter.next();
1491
1494
  }
1492
1495
 
1493
1496
  return true
@@ -1498,12 +1501,14 @@ function isDeepEqual (a, b) {
1498
1501
  return false
1499
1502
  }
1500
1503
 
1501
- i = a.entries().next();
1504
+ const iter = a.entries();
1505
+
1506
+ i = iter.next();
1502
1507
  while (i.done !== true) {
1503
1508
  if (b.has(i.value[ 0 ]) !== true) {
1504
1509
  return false
1505
1510
  }
1506
- i = i.next();
1511
+ i = iter.next();
1507
1512
  }
1508
1513
 
1509
1514
  return true
@@ -1646,7 +1651,7 @@ function prepareApp (app, uiOpts, pluginOpts) {
1646
1651
  }
1647
1652
 
1648
1653
  var installQuasar = function (parentApp, opts = {}) {
1649
- const $q = { version: '2.11.4' };
1654
+ const $q = { version: '2.11.6' };
1650
1655
 
1651
1656
  if (globalConfigIsFrozen === false) {
1652
1657
  if (opts.config !== void 0) {
@@ -12098,7 +12103,7 @@ function useDatetime (props, $q) {
12098
12103
  });
12099
12104
 
12100
12105
  const tabindex = computed(() => {
12101
- return props.editable === true ? 0 : -1
12106
+ return editable.value === true ? 0 : -1
12102
12107
  });
12103
12108
 
12104
12109
  const headerClass = computed(() => {
@@ -14635,6 +14640,7 @@ let
14635
14640
  vpPendingUpdate = false,
14636
14641
  bodyLeft,
14637
14642
  bodyTop,
14643
+ href,
14638
14644
  closeTimer = null;
14639
14645
 
14640
14646
  function onWheel (e) {
@@ -14721,6 +14727,8 @@ function apply$1 (action) {
14721
14727
  bodyLeft = body.style.left;
14722
14728
  bodyTop = body.style.top;
14723
14729
 
14730
+ href = window.location.href;
14731
+
14724
14732
  body.style.left = `-${ scrollPositionX }px`;
14725
14733
  body.style.top = `-${ scrollPositionY }px`;
14726
14734
 
@@ -14733,6 +14741,7 @@ function apply$1 (action) {
14733
14741
 
14734
14742
  body.classList.add('q-body--prevent-scroll');
14735
14743
  document.qScrollPrevented = true;
14744
+
14736
14745
  if (client.is.ios === true) {
14737
14746
  if (hasViewport === true) {
14738
14747
  window.scrollTo(0, 0);
@@ -14771,7 +14780,11 @@ function apply$1 (action) {
14771
14780
  body.style.left = bodyLeft;
14772
14781
  body.style.top = bodyTop;
14773
14782
 
14774
- window.scrollTo(scrollPositionX, scrollPositionY);
14783
+ // scroll back only if route has not changed
14784
+ if (window.location.href === href) {
14785
+ window.scrollTo(scrollPositionX, scrollPositionY);
14786
+ }
14787
+
14775
14788
  maxScrollTop = void 0;
14776
14789
  }
14777
14790
  }
@@ -15162,7 +15175,7 @@ var QDialog = createComponent({
15162
15175
  hide(e);
15163
15176
  }
15164
15177
  else if (props.noShake !== true) {
15165
- shake(e.relatedTarget);
15178
+ shake();
15166
15179
  }
15167
15180
  }
15168
15181
 
@@ -15189,8 +15202,6 @@ var QDialog = createComponent({
15189
15202
 
15190
15203
  onBeforeUnmount(cleanup);
15191
15204
 
15192
- const backdropEvt = vm.proxy.$q.platform.is.ios === true ? 'onClick' : 'onFocusin';
15193
-
15194
15205
  function renderPortalContent () {
15195
15206
  return h('div', {
15196
15207
  role: 'dialog',
@@ -15208,7 +15219,7 @@ var QDialog = createComponent({
15208
15219
  style: transitionStyle.value,
15209
15220
  'aria-hidden': 'true',
15210
15221
  tabindex: -1,
15211
- [ backdropEvt ]: onBackdropClick
15222
+ onClick: onBackdropClick
15212
15223
  })
15213
15224
  : null
15214
15225
  )),
@@ -17739,7 +17750,7 @@ var QSlideTransition = createComponent({
17739
17750
  }
17740
17751
 
17741
17752
  function begin (el, height, done) {
17742
- el.style.overflowY = 'hidden';
17753
+ // here overflowY is 'hidden'
17743
17754
  if (height !== void 0) {
17744
17755
  el.style.height = `${ height }px`;
17745
17756
  }
@@ -17761,12 +17772,14 @@ var QSlideTransition = createComponent({
17761
17772
  let pos = 0;
17762
17773
  element = el;
17763
17774
 
17775
+ // if animationg overflowY is already 'hidden'
17764
17776
  if (animating === true) {
17765
17777
  cleanup();
17766
17778
  pos = el.offsetHeight === el.scrollHeight ? 0 : void 0;
17767
17779
  }
17768
17780
  else {
17769
17781
  lastEvent = 'hide';
17782
+ el.style.overflowY = 'hidden';
17770
17783
  }
17771
17784
 
17772
17785
  begin(el, pos, done);
@@ -17795,6 +17808,9 @@ var QSlideTransition = createComponent({
17795
17808
  }
17796
17809
  else {
17797
17810
  lastEvent = 'show';
17811
+ // we need to set overflowY 'hidden' before calculating the height
17812
+ // or else we get small differences
17813
+ el.style.overflowY = 'hidden';
17798
17814
  pos = el.scrollHeight;
17799
17815
  }
17800
17816
 
@@ -20943,6 +20959,7 @@ var QInfiniteScroll = createComponent({
20943
20959
  const isFetching = ref(false);
20944
20960
  const isWorking = ref(true);
20945
20961
  const rootRef = ref(null);
20962
+ const loadingRef = ref(null);
20946
20963
 
20947
20964
  let index = props.initialIndex || 0;
20948
20965
  let localScrollTarget, poll;
@@ -21074,12 +21091,32 @@ var QInfiniteScroll = createComponent({
21074
21091
  }
21075
21092
  }
21076
21093
 
21094
+ function updateSvgAnimations (isRetry) {
21095
+ if (renderLoadingSlot.value === true) {
21096
+ if (loadingRef.value === null) {
21097
+ isRetry !== true && nextTick(() => { updateSvgAnimations(true); });
21098
+ return
21099
+ }
21100
+
21101
+ // we need to pause svg animations (if any) when hiding
21102
+ // otherwise the browser will keep on recalculating the style
21103
+ const action = `${ isFetching.value === true ? 'un' : '' }pauseAnimations`;
21104
+ Array.from(loadingRef.value.getElementsByTagName('svg')).forEach(el => {
21105
+ el[ action ]();
21106
+ });
21107
+ }
21108
+ }
21109
+
21110
+ const renderLoadingSlot = computed(() => props.disable !== true && isWorking.value === true);
21111
+
21112
+ watch([ isFetching, renderLoadingSlot ], () => { updateSvgAnimations(); });
21113
+
21077
21114
  watch(() => props.disable, val => {
21078
21115
  if (val === true) { stop(); }
21079
21116
  else { resume(); }
21080
21117
  });
21081
21118
 
21082
- watch(() => props.reverse, val => {
21119
+ watch(() => props.reverse, () => {
21083
21120
  if (isFetching.value === false && isWorking.value === true) {
21084
21121
  immediatePoll();
21085
21122
  }
@@ -21110,8 +21147,9 @@ var QInfiniteScroll = createComponent({
21110
21147
 
21111
21148
  onMounted(() => {
21112
21149
  setDebounce(props.debounce);
21113
-
21114
21150
  updateScrollTarget();
21151
+
21152
+ isFetching.value === false && updateSvgAnimations();
21115
21153
  });
21116
21154
 
21117
21155
  // expose public methods
@@ -21124,9 +21162,9 @@ var QInfiniteScroll = createComponent({
21124
21162
  return () => {
21125
21163
  const child = hUniqueSlot(slots.default, []);
21126
21164
 
21127
- if (props.disable !== true && isWorking.value === true) {
21165
+ if (renderLoadingSlot.value === true) {
21128
21166
  child[ props.reverse === false ? 'push' : 'unshift' ](
21129
- h('div', { class: classes.value }, hSlot(slots.loading))
21167
+ h('div', { ref: loadingRef, class: classes.value }, hSlot(slots.loading))
21130
21168
  );
21131
21169
  }
21132
21170
 
@@ -21394,7 +21432,7 @@ function useMask (props, emit, emitValue, inputRef) {
21394
21432
 
21395
21433
  computedMask = mask;
21396
21434
  computedUnmask = val => {
21397
- const unmaskMatch = unmaskMatcher.exec(props.reverseFillMask === true ? val : val.slice(0, mask.length));
21435
+ const unmaskMatch = unmaskMatcher.exec(props.reverseFillMask === true ? val : val.slice(0, mask.length + 1));
21398
21436
  if (unmaskMatch !== null) {
21399
21437
  val = unmaskMatch.slice(1).join('');
21400
21438
  }
@@ -25724,13 +25762,13 @@ var QRating = createComponent({
25724
25762
  case 37: // LEFT ARROW
25725
25763
  case 40: // DOWN ARROW
25726
25764
  if (iconRefs[ `rt${ i - 1 }` ]) {
25727
- iconRefs[ `rt${ i - 1 }` ].$el.focus();
25765
+ iconRefs[ `rt${ i - 1 }` ].focus();
25728
25766
  }
25729
25767
  return stopAndPrevent(e)
25730
25768
  case 39: // RIGHT ARROW
25731
25769
  case 38: // UP ARROW
25732
25770
  if (iconRefs[ `rt${ i + 1 }` ]) {
25733
- iconRefs[ `rt${ i + 1 }` ].$el.focus();
25771
+ iconRefs[ `rt${ i + 1 }` ].focus();
25734
25772
  }
25735
25773
  return stopAndPrevent(e)
25736
25774
  }
@@ -25753,7 +25791,7 @@ var QRating = createComponent({
25753
25791
  child.push(
25754
25792
  h('div', {
25755
25793
  key: i,
25756
- ref: vm => { iconRefs[ `rt${ i }` ] = vm; },
25794
+ ref: el => { iconRefs[ `rt${ i }` ] = el; },
25757
25795
  class: 'q-rating__icon-container flex flex-center',
25758
25796
  ...attrs,
25759
25797
  onClick () { set(i); },
@@ -26298,12 +26336,16 @@ const setOverflowAnchor = __QUASAR_SSR__ || window.getComputedStyle(document.bod
26298
26336
  return
26299
26337
  }
26300
26338
 
26301
- cancelAnimationFrame(contentEl._qOverflowAnimationFrame);
26339
+ if (contentEl._qOverflowAnimationFrame !== void 0) {
26340
+ cancelAnimationFrame(contentEl._qOverflowAnimationFrame);
26341
+ }
26342
+
26302
26343
  contentEl._qOverflowAnimationFrame = requestAnimationFrame(() => {
26303
26344
  if (contentEl === null) {
26304
26345
  return
26305
26346
  }
26306
26347
 
26348
+ contentEl._qOverflowAnimationFrame = void 0;
26307
26349
  const children = contentEl.children || [];
26308
26350
 
26309
26351
  filterProto
@@ -35719,7 +35761,7 @@ const props$2 = {
35719
35761
  factory: Function
35720
35762
  };
35721
35763
 
35722
- const emits$1 = [ 'factory-failed', 'uploaded', 'failed', 'uploading' ];
35764
+ const emits$1 = [ 'factoryFailed', 'uploaded', 'failed', 'uploading' ];
35723
35765
 
35724
35766
  function injectPlugin ({ props, emit, helpers }) {
35725
35767
  const xhrs = ref([]);
@@ -35776,7 +35818,7 @@ function injectPlugin ({ props, emit, helpers }) {
35776
35818
 
35777
35819
  if (!res) {
35778
35820
  emit(
35779
- 'factory-failed',
35821
+ 'factoryFailed',
35780
35822
  new Error('QUploader: factory() does not return properly'),
35781
35823
  files
35782
35824
  );
@@ -39068,7 +39110,7 @@ const Plugin$2 = defineReactivePlugin({
39068
39110
 
39069
39111
  const el = createGlobalNode('q-loading');
39070
39112
 
39071
- app = createApp({
39113
+ app = createChildApp({
39072
39114
  name: 'QLoading',
39073
39115
 
39074
39116
  setup () {
@@ -39130,7 +39172,7 @@ const Plugin$2 = defineReactivePlugin({
39130
39172
  onAfterLeave
39131
39173
  }, getContent)
39132
39174
  }
39133
- });
39175
+ }, Plugin$2.__parentApp);
39134
39176
 
39135
39177
  vm = app.mount(el);
39136
39178
  }, props.delay);
@@ -39189,11 +39231,15 @@ const Plugin$2 = defineReactivePlugin({
39189
39231
  }
39190
39232
  },
39191
39233
 
39192
- install ({ $q }) {
39234
+ install ({ $q, parentApp }) {
39193
39235
  $q.loading = this;
39194
39236
 
39195
- if ($q.config.loading !== void 0) {
39196
- this.setDefaults($q.config.loading);
39237
+ {
39238
+ Plugin$2.__parentApp = parentApp;
39239
+
39240
+ if ($q.config.loading !== void 0) {
39241
+ this.setDefaults($q.config.loading);
39242
+ }
39197
39243
  }
39198
39244
  }
39199
39245
  });
@@ -40149,6 +40195,9 @@ function fallback (text) {
40149
40195
  area.contentEditable = 'true';
40150
40196
  area.style.position = 'fixed'; // avoid scrolling to bottom
40151
40197
 
40198
+ const fn = () => {};
40199
+ addFocusout(fn);
40200
+
40152
40201
  document.body.appendChild(area);
40153
40202
  area.focus();
40154
40203
  area.select();
@@ -40156,6 +40205,8 @@ function fallback (text) {
40156
40205
  const res = document.execCommand('copy');
40157
40206
 
40158
40207
  area.remove();
40208
+ removeFocusout(fn);
40209
+
40159
40210
  return res
40160
40211
  }
40161
40212
 
@@ -40540,7 +40591,7 @@ function runSequentialPromises (
40540
40591
  */
40541
40592
 
40542
40593
  const Quasar = {
40543
- version: '2.11.4',
40594
+ version: '2.11.6',
40544
40595
  install: installQuasar,
40545
40596
  lang: Plugin$8,
40546
40597
  iconSet: Plugin$7