quasar 2.4.6 → 2.4.10

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 (129) hide show
  1. package/dist/api/QFile.json +1 -0
  2. package/dist/api/QTree.json +7 -0
  3. package/dist/api/QUploader.json +3 -1
  4. package/dist/icon-set/bootstrap-icons.umd.prod.js +1 -1
  5. package/dist/icon-set/eva-icons.umd.prod.js +1 -1
  6. package/dist/icon-set/fontawesome-v5-pro.umd.prod.js +1 -1
  7. package/dist/icon-set/fontawesome-v5.umd.prod.js +1 -1
  8. package/dist/icon-set/ionicons-v4.umd.prod.js +1 -1
  9. package/dist/icon-set/line-awesome.umd.prod.js +1 -1
  10. package/dist/icon-set/material-icons-outlined.umd.prod.js +1 -1
  11. package/dist/icon-set/material-icons-round.umd.prod.js +1 -1
  12. package/dist/icon-set/material-icons-sharp.umd.prod.js +1 -1
  13. package/dist/icon-set/material-icons.umd.prod.js +1 -1
  14. package/dist/icon-set/mdi-v3.umd.prod.js +1 -1
  15. package/dist/icon-set/mdi-v4.umd.prod.js +1 -1
  16. package/dist/icon-set/mdi-v5.umd.prod.js +1 -1
  17. package/dist/icon-set/mdi-v6.umd.prod.js +1 -1
  18. package/dist/icon-set/svg-bootstrap-icons.umd.prod.js +1 -1
  19. package/dist/icon-set/svg-eva-icons.umd.prod.js +1 -1
  20. package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +1 -1
  21. package/dist/icon-set/svg-ionicons-v4.umd.prod.js +1 -1
  22. package/dist/icon-set/svg-ionicons-v5.umd.prod.js +1 -1
  23. package/dist/icon-set/svg-ionicons-v6.umd.prod.js +1 -1
  24. package/dist/icon-set/svg-line-awesome.umd.prod.js +1 -1
  25. package/dist/icon-set/svg-material-icons-outlined.umd.prod.js +1 -1
  26. package/dist/icon-set/svg-material-icons-round.umd.prod.js +1 -1
  27. package/dist/icon-set/svg-material-icons-sharp.umd.prod.js +1 -1
  28. package/dist/icon-set/svg-material-icons.umd.prod.js +1 -1
  29. package/dist/icon-set/svg-mdi-v4.umd.prod.js +1 -1
  30. package/dist/icon-set/svg-mdi-v5.umd.prod.js +1 -1
  31. package/dist/icon-set/svg-mdi-v6.umd.prod.js +1 -1
  32. package/dist/icon-set/svg-themify.umd.prod.js +1 -1
  33. package/dist/icon-set/themify.umd.prod.js +1 -1
  34. package/dist/lang/ar.umd.prod.js +1 -1
  35. package/dist/lang/az-Latn.umd.prod.js +1 -1
  36. package/dist/lang/bg.umd.prod.js +1 -1
  37. package/dist/lang/bn.umd.prod.js +1 -1
  38. package/dist/lang/ca.umd.prod.js +1 -1
  39. package/dist/lang/cs.umd.prod.js +1 -1
  40. package/dist/lang/da.umd.prod.js +1 -1
  41. package/dist/lang/de.umd.prod.js +1 -1
  42. package/dist/lang/el.umd.prod.js +1 -1
  43. package/dist/lang/en-GB.umd.prod.js +1 -1
  44. package/dist/lang/en-US.umd.prod.js +1 -1
  45. package/dist/lang/eo.umd.prod.js +1 -1
  46. package/dist/lang/es.umd.prod.js +1 -1
  47. package/dist/lang/et.umd.prod.js +1 -1
  48. package/dist/lang/fa-IR.umd.prod.js +1 -1
  49. package/dist/lang/fa.umd.prod.js +1 -1
  50. package/dist/lang/fi.umd.prod.js +1 -1
  51. package/dist/lang/fr.umd.prod.js +1 -1
  52. package/dist/lang/gn.umd.prod.js +1 -1
  53. package/dist/lang/he.umd.prod.js +1 -1
  54. package/dist/lang/hr.umd.prod.js +1 -1
  55. package/dist/lang/hu.umd.prod.js +1 -1
  56. package/dist/lang/id.umd.prod.js +1 -1
  57. package/dist/lang/is.umd.prod.js +1 -1
  58. package/dist/lang/it.umd.prod.js +1 -1
  59. package/dist/lang/ja.umd.prod.js +1 -1
  60. package/dist/lang/km.umd.prod.js +1 -1
  61. package/dist/lang/ko-KR.umd.prod.js +1 -1
  62. package/dist/lang/kur-CKB.umd.prod.js +1 -1
  63. package/dist/lang/lt.umd.prod.js +1 -1
  64. package/dist/lang/lu.umd.prod.js +1 -1
  65. package/dist/lang/lv.umd.prod.js +1 -1
  66. package/dist/lang/ml.umd.prod.js +1 -1
  67. package/dist/lang/ms.umd.prod.js +1 -1
  68. package/dist/lang/my.umd.prod.js +6 -0
  69. package/dist/lang/nb-NO.umd.prod.js +1 -1
  70. package/dist/lang/nl.umd.prod.js +1 -1
  71. package/dist/lang/pl.umd.prod.js +1 -1
  72. package/dist/lang/pt-BR.umd.prod.js +1 -1
  73. package/dist/lang/pt.umd.prod.js +1 -1
  74. package/dist/lang/ro.umd.prod.js +1 -1
  75. package/dist/lang/ru.umd.prod.js +1 -1
  76. package/dist/lang/sk.umd.prod.js +1 -1
  77. package/dist/lang/sl.umd.prod.js +1 -1
  78. package/dist/lang/sr-CYR.umd.prod.js +1 -1
  79. package/dist/lang/sr.umd.prod.js +1 -1
  80. package/dist/lang/sv.umd.prod.js +1 -1
  81. package/dist/lang/ta.umd.prod.js +1 -1
  82. package/dist/lang/th.umd.prod.js +1 -1
  83. package/dist/lang/tr.umd.prod.js +1 -1
  84. package/dist/lang/ug.umd.prod.js +1 -1
  85. package/dist/lang/uk.umd.prod.js +1 -1
  86. package/dist/lang/vi.umd.prod.js +1 -1
  87. package/dist/lang/zh-CN.umd.prod.js +1 -1
  88. package/dist/lang/zh-TW.umd.prod.js +1 -1
  89. package/dist/quasar.cjs.prod.js +2 -2
  90. package/dist/quasar.css +7 -4
  91. package/dist/quasar.esm.prod.js +2 -2
  92. package/dist/quasar.prod.css +1 -1
  93. package/dist/quasar.rtl.css +7 -4
  94. package/dist/quasar.rtl.prod.css +1 -1
  95. package/dist/quasar.sass +8 -4
  96. package/dist/quasar.umd.js +78 -60
  97. package/dist/quasar.umd.prod.js +2 -2
  98. package/dist/ssr-directives/Morph.js +1 -1
  99. package/dist/types/api/qfile.d.ts +8 -0
  100. package/dist/types/api/qselect.d.ts +4 -0
  101. package/dist/types/api/qtable.d.ts +12 -0
  102. package/dist/types/api/qtree.d.ts +31 -0
  103. package/dist/types/api/quploader.d.ts +28 -0
  104. package/dist/types/api/touchswipe.d.ts +11 -0
  105. package/dist/types/api.d.ts +6 -0
  106. package/dist/types/index.d.ts +287 -311
  107. package/dist/types/ts-helpers.d.ts +6 -2
  108. package/dist/types/utils.d.ts +4 -1
  109. package/dist/vetur/quasar-attributes.json +4 -0
  110. package/dist/vetur/quasar-tags.json +1 -0
  111. package/dist/web-types/web-types.json +11 -1
  112. package/lang/index.json +4 -0
  113. package/lang/my.js +90 -0
  114. package/package.json +1 -1
  115. package/src/components/date/QDate.js +6 -1
  116. package/src/components/dialog-plugin/DialogPlugin.js +1 -1
  117. package/src/components/icon/QIcon.js +4 -9
  118. package/src/components/icon/QIcon.sass +4 -3
  119. package/src/components/layout/QLayout.js +6 -5
  120. package/src/components/scroll-area/QScrollArea.js +15 -10
  121. package/src/components/scroll-observer/QScrollObserver.js +12 -10
  122. package/src/components/select/QSelect.js +20 -19
  123. package/src/components/select/QSelect.sass +3 -0
  124. package/src/components/tree/QTree.js +6 -1
  125. package/src/components/tree/QTree.json +8 -0
  126. package/src/components/uploader/uploader-core.js +2 -0
  127. package/src/components/uploader/xhr-uploader-plugin.json +2 -1
  128. package/src/composables/private/use-field.js +2 -0
  129. package/src/composables/private/use-file.json +1 -0
package/dist/quasar.sass CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Quasar Framework v2.4.6
2
+ * Quasar Framework v2.4.10
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,
@@ -3261,7 +3262,10 @@ body.desktop
3261
3262
  min-width: 50px !important
3262
3263
  &--padding
3263
3264
  padding-left: 4px
3265
+ &__focus-target,
3264
3266
  &__autocomplete-input
3267
+ position: absolute
3268
+ outline: 0 !important
3265
3269
  width: 0
3266
3270
  height: 0
3267
3271
  padding: 0
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Quasar Framework v2.4.6
2
+ * Quasar Framework v2.4.10
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.6' };
1450
+ const $q = { version: '2.4.10' };
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 })
@@ -12608,7 +12603,12 @@
12608
12603
  normalizedModel.value
12609
12604
  .filter(date => typeof date === 'string')
12610
12605
  .map(date => decodeString(date, innerMask.value, innerLocale.value))
12611
- .filter(date => date.dateHash !== null)
12606
+ .filter(date =>
12607
+ date.dateHash !== null
12608
+ && date.day !== null
12609
+ && date.month !== null
12610
+ && date.year !== null
12611
+ )
12612
12612
  );
12613
12613
 
12614
12614
  const rangeModel = vue.computed(() => {
@@ -18906,6 +18906,8 @@
18906
18906
  abort: state.abort
18907
18907
  };
18908
18908
 
18909
+ // TODO: the result of this computed, especially the dynamic part, isn't currently typed
18910
+ // This result in an error with Volar when accessing the state (eg. files array)
18909
18911
  const slotScope = vue.computed(() => {
18910
18912
  const acc = {
18911
18913
  canAddFiles: canAddFiles.value,
@@ -20759,6 +20761,8 @@
20759
20761
  name: props.clearIcon || $q.iconSet.field.clear,
20760
20762
  tabindex: 0,
20761
20763
  type: 'button',
20764
+ 'aria-hidden': null,
20765
+ role: null,
20762
20766
  onClick: clearValue
20763
20767
  })
20764
20768
  ])
@@ -23911,7 +23915,7 @@
23911
23915
  }
23912
23916
  };
23913
23917
 
23914
- let timer = null, localScrollTarget, parentEl;
23918
+ let clearTimer = null, localScrollTarget, parentEl;
23915
23919
 
23916
23920
  vue.watch(() => props.scrollTarget, () => {
23917
23921
  unconfigureScrollTarget();
@@ -23919,9 +23923,7 @@
23919
23923
  });
23920
23924
 
23921
23925
  function emitEvent () {
23922
- clearTimeout(timer);
23923
- cancelAnimationFrame(timer);
23924
- timer = null;
23926
+ clearTimer !== null && clearTimer();
23925
23927
 
23926
23928
  const top = Math.max(0, getVerticalScrollPosition(localScrollTarget));
23927
23929
  const left = getHorizontalScrollPosition(localScrollTarget);
@@ -23971,10 +23973,15 @@
23971
23973
  if (immediately === true || props.debounce === 0 || props.debounce === '0') {
23972
23974
  emitEvent();
23973
23975
  }
23974
- else if (timer === null) {
23975
- timer = props.debounce
23976
- ? setTimeout(emitEvent, props.debounce)
23977
- : requestAnimationFrame(emitEvent);
23976
+ else if (clearTimer === null) {
23977
+ const [ timer, fn ] = props.debounce
23978
+ ? [ setTimeout(emitEvent, props.debounce), clearTimeout ]
23979
+ : [ requestAnimationFrame(emitEvent), cancelAnimationFrame ];
23980
+
23981
+ clearTimer = () => {
23982
+ fn(timer);
23983
+ clearTimer = null;
23984
+ };
23978
23985
  }
23979
23986
  }
23980
23987
 
@@ -23986,8 +23993,7 @@
23986
23993
  });
23987
23994
 
23988
23995
  vue.onBeforeUnmount(() => {
23989
- clearTimeout(timer);
23990
- cancelAnimationFrame(timer);
23996
+ clearTimer !== null && clearTimer();
23991
23997
  unconfigureScrollTarget();
23992
23998
  });
23993
23999
 
@@ -24166,7 +24172,7 @@
24166
24172
 
24167
24173
  // prevent scrollbar flicker while resizing window height
24168
24174
  // if no page scrollbar is already present
24169
- {
24175
+ if (getScrollbarWidth() > 0) {
24170
24176
  let timer = null;
24171
24177
  const el = document.body;
24172
24178
 
@@ -24179,7 +24185,7 @@
24179
24185
  if (timer === null) {
24180
24186
  // if it has no scrollbar then there's nothing to do
24181
24187
 
24182
- if (el.scrollHeight > window.innerHeight) {
24188
+ if (el.scrollHeight > $q.screen.height) {
24183
24189
  return
24184
24190
  }
24185
24191
 
@@ -24202,11 +24208,12 @@
24202
24208
  }
24203
24209
 
24204
24210
  vue.watch(
24205
- () => (props.container !== true && scrollbarWidth.value > 0 ? 'add' : 'remove'),
24206
- updateScrollEvent,
24207
- { immediate: true }
24211
+ () => (props.container !== true ? 'add' : 'remove'),
24212
+ updateScrollEvent
24208
24213
  );
24209
24214
 
24215
+ props.container !== true && updateScrollEvent('add');
24216
+
24210
24217
  vue.onUnmounted(() => {
24211
24218
  updateScrollEvent('remove');
24212
24219
  });
@@ -26831,6 +26838,9 @@
26831
26838
  && panning.value === false
26832
26839
  ) || scroll.vertical.size.value <= container.vertical.value + 1
26833
26840
  );
26841
+ scroll.vertical.thumbStart = vue.computed(() =>
26842
+ scroll.vertical.percentage.value * (container.vertical.value - scroll.vertical.thumbSize.value)
26843
+ );
26834
26844
  scroll.vertical.thumbSize = vue.computed(() =>
26835
26845
  Math.round(
26836
26846
  between(
@@ -26841,13 +26851,11 @@
26841
26851
  )
26842
26852
  );
26843
26853
  scroll.vertical.style = vue.computed(() => {
26844
- const thumbSize = scroll.vertical.thumbSize.value;
26845
- const pos = scroll.vertical.percentage.value * (container.vertical.value - thumbSize);
26846
26854
  return {
26847
26855
  ...props.thumbStyle,
26848
26856
  ...props.verticalThumbStyle,
26849
- top: `${ pos }px`,
26850
- height: `${ thumbSize }px`
26857
+ top: `${ scroll.vertical.thumbStart.value }px`,
26858
+ height: `${ scroll.vertical.thumbSize.value }px`
26851
26859
  }
26852
26860
  });
26853
26861
  scroll.vertical.thumbClass = vue.computed(() =>
@@ -26872,6 +26880,9 @@
26872
26880
  && panning.value === false
26873
26881
  ) || scroll.horizontal.size.value <= container.horizontal.value + 1
26874
26882
  );
26883
+ scroll.horizontal.thumbStart = vue.computed(() =>
26884
+ scroll.horizontal.percentage.value * (container.horizontal.value - scroll.horizontal.thumbSize.value)
26885
+ );
26875
26886
  scroll.horizontal.thumbSize = vue.computed(() =>
26876
26887
  Math.round(
26877
26888
  between(
@@ -26882,13 +26893,11 @@
26882
26893
  )
26883
26894
  );
26884
26895
  scroll.horizontal.style = vue.computed(() => {
26885
- const thumbSize = scroll.horizontal.thumbSize.value;
26886
- const pos = scroll.horizontal.percentage.value * (container.horizontal.value - thumbSize);
26887
26896
  return {
26888
26897
  ...props.thumbStyle,
26889
26898
  ...props.horizontalThumbStyle,
26890
- left: `${ pos }px`,
26891
- width: `${ thumbSize }px`
26899
+ left: `${ scroll.horizontal.thumbStart.value }px`,
26900
+ width: `${ scroll.horizontal.thumbSize.value }px`
26892
26901
  }
26893
26902
  });
26894
26903
  scroll.horizontal.thumbClass = vue.computed(() =>
@@ -27034,8 +27043,11 @@
27034
27043
  const data = scroll[ axis ];
27035
27044
 
27036
27045
  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);
27046
+ const offset = evt[ dirProps[ axis ].offset ];
27047
+ if (offset < data.thumbStart.value || offset > data.thumbStart.value + data.thumbSize.value) {
27048
+ const pos = offset - data.thumbSize.value / 2;
27049
+ setScroll(pos / container[ axis ].value * data.size.value, axis);
27050
+ }
27039
27051
 
27040
27052
  // activate thumb pan
27041
27053
  if (data.ref.value !== null) {
@@ -28518,34 +28530,34 @@
28518
28530
 
28519
28531
  if (typeof value === 'string' && value.length > 0) {
28520
28532
  const needle = value.toLocaleLowerCase();
28533
+ const findFn = extractFn => {
28534
+ const option = props.options.find(opt => extractFn.value(opt).toLocaleLowerCase() === needle);
28521
28535
 
28522
- let fn = opt => getOptionValue.value(opt).toLocaleLowerCase() === needle;
28523
- let option = props.options.find(fn);
28536
+ if (option === void 0) {
28537
+ return false
28538
+ }
28524
28539
 
28525
- if (option !== void 0) {
28526
28540
  if (innerValue.value.indexOf(option) === -1) {
28527
28541
  toggleOption(option);
28528
28542
  }
28529
28543
  else {
28530
28544
  hidePopup();
28531
28545
  }
28532
- }
28533
- else {
28534
- fn = opt => getOptionLabel.value(opt).toLocaleLowerCase() === needle;
28535
- option = props.options.find(fn);
28536
28546
 
28537
- if (option !== void 0) {
28538
- if (innerValue.value.indexOf(option) === -1) {
28539
- toggleOption(option);
28540
- }
28541
- else {
28542
- hidePopup();
28543
- }
28547
+ return true
28548
+ };
28549
+ const fillFn = afterFilter => {
28550
+ if (findFn(getOptionValue) === true) {
28551
+ return
28544
28552
  }
28545
- else {
28546
- filter(value, true);
28553
+ if (findFn(getOptionLabel) === true || afterFilter === true) {
28554
+ return
28547
28555
  }
28548
- }
28556
+
28557
+ filter(value, true, () => fillFn(true));
28558
+ };
28559
+
28560
+ fillFn();
28549
28561
  }
28550
28562
  else {
28551
28563
  state.clearValue(e);
@@ -28924,7 +28936,7 @@
28924
28936
  }
28925
28937
  }
28926
28938
 
28927
- function filter (val, keepClosed) {
28939
+ function filter (val, keepClosed, afterUpdateFn) {
28928
28940
  if (props.onFilter === void 0 || (keepClosed !== true && state.focused.value !== true)) {
28929
28941
  return
28930
28942
  }
@@ -28982,6 +28994,7 @@
28982
28994
  }
28983
28995
 
28984
28996
  typeof afterFn === 'function' && vue.nextTick(() => { afterFn(proxy); });
28997
+ typeof afterUpdateFn === 'function' && vue.nextTick(() => { afterUpdateFn(proxy); });
28985
28998
  });
28986
28999
  }
28987
29000
  },
@@ -29336,7 +29349,7 @@
29336
29349
  vue.h('div', {
29337
29350
  ref: targetRef,
29338
29351
  key: 'd_t',
29339
- class: 'no-outline',
29352
+ class: 'q-select__focus-target',
29340
29353
  id: state.targetUid.value,
29341
29354
  ...comboboxAttrs.value,
29342
29355
  onKeydown: onTargetKeydown,
@@ -29348,7 +29361,7 @@
29348
29361
  if (typeof props.autocomplete === 'string' && props.autocomplete.length > 0) {
29349
29362
  child.push(
29350
29363
  vue.h('input', {
29351
- class: 'q-select__autocomplete-input no-outline',
29364
+ class: 'q-select__autocomplete-input',
29352
29365
  autocomplete: props.autocomplete,
29353
29366
  onKeyup: onTargetAutocomplete
29354
29367
  })
@@ -35323,6 +35336,8 @@
35323
35336
  expanded: Array, // v-model:expanded
35324
35337
  selected: {}, // v-model:selected
35325
35338
 
35339
+ noSelectionUnset: Boolean,
35340
+
35326
35341
  defaultExpandAll: Boolean,
35327
35342
  accordion: Boolean,
35328
35343
 
@@ -35880,7 +35895,10 @@
35880
35895
 
35881
35896
  if (hasSelection.value) {
35882
35897
  if (meta.selectable) {
35883
- emit('update:selected', meta.key !== props.selected ? meta.key : null);
35898
+ const val = meta.key !== props.selected ? meta.key : null;
35899
+ if (props.noSelectionUnset !== true || val !== null) {
35900
+ emit('update:selected', val);
35901
+ }
35884
35902
  }
35885
35903
  }
35886
35904
  else {
@@ -38093,8 +38111,8 @@
38093
38111
  color: vmColor.value,
38094
38112
  label: okLabel.value,
38095
38113
  ripple: false,
38096
- ...(Object(props.ok) === props.ok ? props.ok : { flat: true }),
38097
38114
  disable: okDisabled.value,
38115
+ ...(Object(props.ok) === props.ok ? props.ok : { flat: true }),
38098
38116
  'data-autofocus': (props.focus === 'ok' && hasForm.value !== true) || void 0,
38099
38117
  onClick: onOk
38100
38118
  }));
@@ -39263,7 +39281,7 @@
39263
39281
  });
39264
39282
 
39265
39283
  var index_umd = {
39266
- version: '2.4.6',
39284
+ version: '2.4.10',
39267
39285
  install (app, opts) {
39268
39286
  installQuasar(app, {
39269
39287
  components,