quasar 2.20.3 → 2.21.1

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 (157) hide show
  1. package/dist/api/QTable.json +1 -1
  2. package/dist/icon-set/bootstrap-icons.umd.prod.js +1 -1
  3. package/dist/icon-set/eva-icons.umd.prod.js +1 -1
  4. package/dist/icon-set/fontawesome-v5-pro.umd.prod.js +1 -1
  5. package/dist/icon-set/fontawesome-v5.umd.prod.js +1 -1
  6. package/dist/icon-set/fontawesome-v6-pro.umd.prod.js +1 -1
  7. package/dist/icon-set/fontawesome-v6.umd.prod.js +1 -1
  8. package/dist/icon-set/fontawesome-v7-pro.umd.prod.js +1 -1
  9. package/dist/icon-set/fontawesome-v7.umd.prod.js +1 -1
  10. package/dist/icon-set/ionicons-v4.umd.prod.js +1 -1
  11. package/dist/icon-set/line-awesome.umd.prod.js +1 -1
  12. package/dist/icon-set/material-icons-outlined.umd.prod.js +1 -1
  13. package/dist/icon-set/material-icons-round.umd.prod.js +1 -1
  14. package/dist/icon-set/material-icons-sharp.umd.prod.js +1 -1
  15. package/dist/icon-set/material-icons.umd.prod.js +1 -1
  16. package/dist/icon-set/material-symbols-outlined.umd.prod.js +1 -1
  17. package/dist/icon-set/material-symbols-rounded.umd.prod.js +1 -1
  18. package/dist/icon-set/material-symbols-sharp.umd.prod.js +1 -1
  19. package/dist/icon-set/mdi-v3.umd.prod.js +1 -1
  20. package/dist/icon-set/mdi-v4.umd.prod.js +1 -1
  21. package/dist/icon-set/mdi-v5.umd.prod.js +1 -1
  22. package/dist/icon-set/mdi-v6.umd.prod.js +1 -1
  23. package/dist/icon-set/mdi-v7.umd.prod.js +1 -1
  24. package/dist/icon-set/svg-bootstrap-icons.umd.prod.js +1 -1
  25. package/dist/icon-set/svg-eva-icons.umd.prod.js +1 -1
  26. package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +1 -1
  27. package/dist/icon-set/svg-fontawesome-v6.umd.prod.js +1 -1
  28. package/dist/icon-set/svg-fontawesome-v7.umd.prod.js +1 -1
  29. package/dist/icon-set/svg-ionicons-v4.umd.prod.js +1 -1
  30. package/dist/icon-set/svg-ionicons-v5.umd.prod.js +1 -1
  31. package/dist/icon-set/svg-ionicons-v6.umd.prod.js +1 -1
  32. package/dist/icon-set/svg-ionicons-v7.umd.prod.js +1 -1
  33. package/dist/icon-set/svg-ionicons-v8.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 +1 -1
  40. package/dist/icon-set/svg-material-symbols-rounded.umd.prod.js +1 -1
  41. package/dist/icon-set/svg-material-symbols-sharp.umd.prod.js +1 -1
  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 +2 -2
  45. package/dist/icon-set/themify.umd.prod.js +2 -2
  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 +2 -2
  49. package/dist/lang/bg.umd.prod.js +1 -1
  50. package/dist/lang/bn.umd.prod.js +1 -1
  51. package/dist/lang/bs-BA.umd.prod.js +1 -1
  52. package/dist/lang/ca.umd.prod.js +1 -1
  53. package/dist/lang/cs.umd.prod.js +1 -1
  54. package/dist/lang/da.umd.prod.js +1 -1
  55. package/dist/lang/de-CH.umd.prod.js +1 -1
  56. package/dist/lang/de-DE.umd.prod.js +1 -1
  57. package/dist/lang/de.umd.prod.js +1 -1
  58. package/dist/lang/el.umd.prod.js +1 -1
  59. package/dist/lang/en-GB.umd.prod.js +1 -1
  60. package/dist/lang/en-US.umd.prod.js +1 -1
  61. package/dist/lang/eo.umd.prod.js +2 -2
  62. package/dist/lang/es.umd.prod.js +1 -1
  63. package/dist/lang/et.umd.prod.js +1 -1
  64. package/dist/lang/eu.umd.prod.js +1 -1
  65. package/dist/lang/fa-IR.umd.prod.js +1 -1
  66. package/dist/lang/fa.umd.prod.js +1 -1
  67. package/dist/lang/fi.umd.prod.js +2 -2
  68. package/dist/lang/fr.umd.prod.js +2 -2
  69. package/dist/lang/gn.umd.prod.js +1 -1
  70. package/dist/lang/he.umd.prod.js +1 -1
  71. package/dist/lang/hi.umd.prod.js +2 -2
  72. package/dist/lang/hr.umd.prod.js +1 -1
  73. package/dist/lang/hu.umd.prod.js +1 -1
  74. package/dist/lang/id.umd.prod.js +1 -1
  75. package/dist/lang/is.umd.prod.js +1 -1
  76. package/dist/lang/it.umd.prod.js +2 -2
  77. package/dist/lang/ja.umd.prod.js +2 -2
  78. package/dist/lang/kk.umd.prod.js +1 -1
  79. package/dist/lang/km.umd.prod.js +1 -1
  80. package/dist/lang/ko-KR.umd.prod.js +1 -1
  81. package/dist/lang/kur-CKB.umd.prod.js +2 -2
  82. package/dist/lang/lb.umd.prod.js +6 -0
  83. package/dist/lang/lt.umd.prod.js +2 -2
  84. package/dist/lang/lu.umd.prod.js +1 -1
  85. package/dist/lang/lv.umd.prod.js +2 -2
  86. package/dist/lang/mk.umd.prod.js +1 -1
  87. package/dist/lang/ml.umd.prod.js +1 -1
  88. package/dist/lang/mm.umd.prod.js +1 -1
  89. package/dist/lang/ms-MY.umd.prod.js +2 -2
  90. package/dist/lang/ms.umd.prod.js +2 -2
  91. package/dist/lang/my.umd.prod.js +2 -2
  92. package/dist/lang/nb-NO.umd.prod.js +2 -2
  93. package/dist/lang/nl.umd.prod.js +1 -1
  94. package/dist/lang/pl.umd.prod.js +1 -1
  95. package/dist/lang/pt-BR.umd.prod.js +1 -1
  96. package/dist/lang/pt.umd.prod.js +1 -1
  97. package/dist/lang/ro.umd.prod.js +1 -1
  98. package/dist/lang/ru.umd.prod.js +1 -1
  99. package/dist/lang/sk.umd.prod.js +1 -1
  100. package/dist/lang/sl.umd.prod.js +1 -1
  101. package/dist/lang/sm.umd.prod.js +1 -1
  102. package/dist/lang/sq.umd.prod.js +1 -1
  103. package/dist/lang/sr-CYR.umd.prod.js +1 -1
  104. package/dist/lang/sr.umd.prod.js +1 -1
  105. package/dist/lang/sv.umd.prod.js +1 -1
  106. package/dist/lang/ta.umd.prod.js +1 -1
  107. package/dist/lang/th.umd.prod.js +1 -1
  108. package/dist/lang/tl.umd.prod.js +1 -1
  109. package/dist/lang/tr.umd.prod.js +1 -1
  110. package/dist/lang/ug.umd.prod.js +2 -2
  111. package/dist/lang/uk.umd.prod.js +2 -2
  112. package/dist/lang/ur-PK.umd.prod.js +1 -1
  113. package/dist/lang/uz-Cyrl.umd.prod.js +1 -1
  114. package/dist/lang/uz-Latn.umd.prod.js +1 -1
  115. package/dist/lang/vi.umd.prod.js +1 -1
  116. package/dist/lang/zh-CN.umd.prod.js +1 -1
  117. package/dist/lang/zh-TW.umd.prod.js +1 -1
  118. package/dist/quasar.client.js +41 -42
  119. package/dist/quasar.css +8 -1
  120. package/dist/quasar.prod.css +1 -1
  121. package/dist/quasar.rtl.css +9 -1
  122. package/dist/quasar.rtl.prod.css +1 -1
  123. package/dist/quasar.sass +6 -2
  124. package/dist/quasar.server.prod.cjs +17 -17
  125. package/dist/quasar.server.prod.js +17 -17
  126. package/dist/quasar.umd.js +41 -42
  127. package/dist/quasar.umd.prod.js +17 -17
  128. package/dist/types/icon-set.d.ts +1 -3
  129. package/dist/types/index.d.ts +10 -2
  130. package/dist/types/utils.d.ts +2 -0
  131. package/dist/web-types/web-types.json +1 -1
  132. package/icon-set/svg-themify.js +1 -3
  133. package/icon-set/themify.js +1 -2
  134. package/lang/az-Latn.js +1 -1
  135. package/lang/eo.js +1 -1
  136. package/lang/fi.js +0 -5
  137. package/lang/fr.js +1 -1
  138. package/lang/hi.js +1 -1
  139. package/lang/index.json +1 -1
  140. package/lang/it.js +1 -1
  141. package/lang/ja.js +9 -9
  142. package/lang/kur-CKB.js +0 -1
  143. package/lang/lb.js +110 -0
  144. package/lang/lt.js +1 -1
  145. package/lang/lv.js +1 -1
  146. package/lang/ms-MY.js +3 -3
  147. package/lang/ms.js +1 -1
  148. package/lang/my.js +90 -92
  149. package/lang/nb-NO.js +5 -6
  150. package/lang/ug.js +7 -2
  151. package/lang/uk.js +1 -1
  152. package/package.json +3 -3
  153. package/src/components/table/QTable.js +6 -1
  154. package/src/components/table/QTable.json +28 -3
  155. package/src/components/tooltip/QTooltip.js +6 -0
  156. package/src/css/core/helpers.sass +6 -1
  157. package/src/utils/scroll/prevent-scroll.js +6 -48
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Quasar Framework v2.20.3
2
+ * Quasar Framework v2.21.1
3
3
  * (c) 2015-present Razvan Stoenescu
4
4
  * Released under the MIT License.
5
5
  */
@@ -1100,7 +1100,7 @@
1100
1100
  };
1101
1101
  }
1102
1102
  var install_quasar_default = function installQuasar(parentApp, opts = {}) {
1103
- const $q = { version: "2.20.3" };
1103
+ const $q = { version: "2.21.1" };
1104
1104
  if (!globalConfigIsFrozen) {
1105
1105
  if (opts.config !== void 0) Object.assign(globalConfig, opts.config);
1106
1106
  $q.config = { ...globalConfig };
@@ -2637,7 +2637,7 @@
2637
2637
  });
2638
2638
  configureAnchorEl = function configureAnchorElFn(context = props.contextMenu) {
2639
2639
  if (props.noParentEvent || anchorEl.value === null) return;
2640
- addEvt(anchorEvents, "anchor", context ? proxy.$q.platform.is.mobile ? [[
2640
+ const evts = context ? proxy.$q.platform.is.mobile ? [[
2641
2641
  anchorEl.value,
2642
2642
  "touchstart",
2643
2643
  "mobileTouch",
@@ -2662,7 +2662,8 @@
2662
2662
  "keyup",
2663
2663
  "toggleKey",
2664
2664
  "passive"
2665
- ]]);
2665
+ ]];
2666
+ addEvt(anchorEvents, "anchor", evts);
2666
2667
  };
2667
2668
  }
2668
2669
  function unconfigureAnchorEl() {
@@ -9600,18 +9601,6 @@
9600
9601
  //#endregion
9601
9602
  //#region src/utils/scroll/prevent-scroll.js
9602
9603
  let registered = 0, scrollPositionX, scrollPositionY, maxScrollTop, vpPendingUpdate = false, bodyLeft, bodyTop, href, closeTimer = null;
9603
- function onWheel(e) {
9604
- if (shouldPreventScroll(e)) stopAndPrevent(e);
9605
- }
9606
- function shouldPreventScroll(e) {
9607
- if (e.target === document.body || e.target.classList.contains("q-layout__backdrop")) return true;
9608
- const path = getEventPath(e), shift = e.shiftKey && !e.deltaX, scrollY = !shift && Math.abs(e.deltaX) <= Math.abs(e.deltaY), delta = shift || scrollY ? e.deltaY : e.deltaX;
9609
- for (let index = 0; index < path.length; index++) {
9610
- const el = path[index];
9611
- if (hasScrollbar(el, scrollY)) return scrollY ? delta < 0 && el.scrollTop === 0 ? true : delta > 0 && el.scrollTop + el.clientHeight === el.scrollHeight : delta < 0 && el.scrollLeft === 0 ? true : delta > 0 && el.scrollLeft + el.clientWidth === el.scrollWidth;
9612
- }
9613
- return true;
9614
- }
9615
9604
  function onAppleScroll(e) {
9616
9605
  if (e.target === document) document.scrollingElement.scrollTop = document.scrollingElement.scrollTop;
9617
9606
  }
@@ -9641,7 +9630,7 @@
9641
9630
  body.style.top = `-${scrollPositionY}px`;
9642
9631
  if (overflowX !== "hidden" && (overflowX === "scroll" || body.scrollWidth > window.innerWidth)) body.classList.add("q-body--force-scrollbar-x");
9643
9632
  if (overflowY !== "hidden" && (overflowY === "scroll" || body.scrollHeight > window.innerHeight)) body.classList.add("q-body--force-scrollbar-y");
9644
- body.classList.add("q-body--prevent-scroll");
9633
+ document.documentElement.classList.add("q-document--prevent-scroll");
9645
9634
  document.qScrollPrevented = true;
9646
9635
  if (client.is.ios) if (hasViewport) {
9647
9636
  window.scrollTo(0, 0);
@@ -9649,14 +9638,13 @@
9649
9638
  window.visualViewport.addEventListener("scroll", onAppleResize, listenOpts.passiveCapture);
9650
9639
  window.scrollTo(0, 0);
9651
9640
  } else window.addEventListener("scroll", onAppleScroll, listenOpts.passiveCapture);
9652
- }
9653
- if (client.is.desktop && client.is.mac) window[`${action}EventListener`]("wheel", onWheel, listenOpts.notPassive);
9654
- if (action === "remove") {
9641
+ } else {
9655
9642
  if (client.is.ios) if (hasViewport) {
9656
9643
  window.visualViewport.removeEventListener("resize", onAppleResize, listenOpts.passiveCapture);
9657
9644
  window.visualViewport.removeEventListener("scroll", onAppleResize, listenOpts.passiveCapture);
9658
9645
  } else window.removeEventListener("scroll", onAppleScroll, listenOpts.passiveCapture);
9659
- body.classList.remove("q-body--prevent-scroll", "q-body--force-scrollbar-x", "q-body--force-scrollbar-y");
9646
+ document.documentElement.classList.remove("q-document--prevent-scroll");
9647
+ body.classList.remove("q-body--force-scrollbar-x", "q-body--force-scrollbar-y");
9660
9648
  document.qScrollPrevented = false;
9661
9649
  body.style.left = bodyLeft;
9662
9650
  body.style.top = bodyTop;
@@ -10667,6 +10655,11 @@
10667
10655
  function handleShow(evt) {
10668
10656
  showPortal();
10669
10657
  registerTick(() => {
10658
+ observer?.disconnect();
10659
+ if (innerRef.value === null) {
10660
+ observer = void 0;
10661
+ return;
10662
+ }
10670
10663
  observer = new MutationObserver(() => updatePosition());
10671
10664
  observer.observe(innerRef.value, {
10672
10665
  attributes: false,
@@ -10720,7 +10713,7 @@
10720
10713
  clearSelection();
10721
10714
  document.body.classList.add("non-selectable");
10722
10715
  const target = anchorEl.value;
10723
- addEvt(anchorEvents, "tooltipTemp", [
10716
+ const evts = [
10724
10717
  "touchmove",
10725
10718
  "touchcancel",
10726
10719
  "touchend",
@@ -10730,7 +10723,8 @@
10730
10723
  e,
10731
10724
  "delayHide",
10732
10725
  "passiveCapture"
10733
- ]));
10726
+ ]);
10727
+ addEvt(anchorEvents, "tooltipTemp", evts);
10734
10728
  }
10735
10729
  registerTimeout(() => {
10736
10730
  show(evt);
@@ -10750,7 +10744,7 @@
10750
10744
  }
10751
10745
  function configureAnchorEl() {
10752
10746
  if (props.noParentEvent || anchorEl.value === null) return;
10753
- addEvt(anchorEvents, "anchor", $q.platform.is.mobile ? [[
10747
+ const evts = $q.platform.is.mobile ? [[
10754
10748
  anchorEl.value,
10755
10749
  "touchstart",
10756
10750
  "delayShow",
@@ -10765,7 +10759,8 @@
10765
10759
  "mouseleave",
10766
10760
  "delayHide",
10767
10761
  "passive"
10768
- ]]);
10762
+ ]];
10763
+ addEvt(anchorEvents, "anchor", evts);
10769
10764
  }
10770
10765
  function configureScrollTarget() {
10771
10766
  if (anchorEl.value !== null || props.scrollTarget !== void 0) {
@@ -20959,7 +20954,10 @@
20959
20954
  sort,
20960
20955
  resetVirtualScroll,
20961
20956
  scrollTo,
20962
- getCellValue
20957
+ getCellValue: (colName, row) => {
20958
+ const col = computedColsMap.value[colName];
20959
+ if (col !== void 0) return getCellValue(col, row);
20960
+ }
20963
20961
  });
20964
20962
  injectMultipleProps(vm.proxy, {
20965
20963
  filteredSortedRows: () => filteredSortedRows.value,
@@ -23343,6 +23341,19 @@
23343
23341
  margin: 0;
23344
23342
  width: 0;
23345
23343
  height: 0;
23344
+ `;
23345
+ const keyframesTo = options.keepToClone === true ? "" : `
23346
+ @keyframes ${qAnimId}-to {
23347
+ 0% {
23348
+ ${keyframeToStart}
23349
+ }
23350
+
23351
+ 100% {
23352
+ margin: ${elToParentHeightDiff < 0 ? elToParentHeightDiff / 2 : 0}px ${elToParentWidthDiff < 0 ? elToParentWidthDiff / 2 : 0}px;
23353
+ width: ${elToCloneWidth + elToPosition.marginH}px;
23354
+ height: ${elToCloneHeight + elToPosition.marginV}px;
23355
+ }
23356
+ }
23346
23357
  `;
23347
23358
  style.innerHTML = `
23348
23359
  @keyframes ${qAnimId} {
@@ -23378,19 +23389,7 @@
23378
23389
 
23379
23390
  ${keyframesFromTween}
23380
23391
 
23381
- ${options.keepToClone === true ? "" : `
23382
- @keyframes ${qAnimId}-to {
23383
- 0% {
23384
- ${keyframeToStart}
23385
- }
23386
-
23387
- 100% {
23388
- margin: ${elToParentHeightDiff < 0 ? elToParentHeightDiff / 2 : 0}px ${elToParentWidthDiff < 0 ? elToParentWidthDiff / 2 : 0}px;
23389
- width: ${elToCloneWidth + elToPosition.marginH}px;
23390
- height: ${elToCloneHeight + elToPosition.marginV}px;
23391
- }
23392
- }
23393
- `}
23392
+ ${keyframesTo}
23394
23393
  `;
23395
23394
  document.head.append(style);
23396
23395
  let animationDirection = "normal";
@@ -25383,8 +25382,8 @@
25383
25382
  if (!this.__installed) {
25384
25383
  positionList.forEach((pos) => {
25385
25384
  notificationsList[pos] = (0, vue.ref)([]);
25386
- const vert = pos === "left" || pos === "center" || pos === "right" ? "center" : pos.includes("top") ? "top" : "bottom", align = pos.includes("left") ? "start" : pos.includes("right") ? "end" : "center";
25387
- positionClass[pos] = `q-notifications__list q-notifications__list--${vert} fixed column no-wrap ${pos === "left" || pos === "right" ? `items-${pos === "left" ? "start" : "end"} justify-center` : pos === "center" ? "flex-center" : `items-${align}`}`;
25385
+ const vert = pos === "left" || pos === "center" || pos === "right" ? "center" : pos.includes("top") ? "top" : "bottom", align = pos.includes("left") ? "start" : pos.includes("right") ? "end" : "center", classes = pos === "left" || pos === "right" ? `items-${pos === "left" ? "start" : "end"} justify-center` : pos === "center" ? "flex-center" : `items-${align}`;
25386
+ positionClass[pos] = `q-notifications__list q-notifications__list--${vert} fixed column no-wrap ${classes}`;
25388
25387
  });
25389
25388
  const el = createGlobalNode("q-notify");
25390
25389
  createChildApp(getComponent(), parentApp).mount(el);
@@ -25960,7 +25959,7 @@
25960
25959
  */
25961
25960
  if (window.Vue === void 0) console.error("[ Quasar ] Vue is required to run. Please add a script tag for it before loading Quasar.");
25962
25961
  window.Quasar = {
25963
- version: "2.20.3",
25962
+ version: "2.21.1",
25964
25963
  install(app, opts) {
25965
25964
  install_quasar_default(app, {
25966
25965
  components: components_exports,