quasar 2.7.1 → 2.7.2

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 (148) hide show
  1. package/dist/api/QDialog.json +6 -0
  2. package/dist/api/QPagination.json +1 -1
  3. package/dist/icon-set/bootstrap-icons.umd.prod.js +1 -1
  4. package/dist/icon-set/eva-icons.umd.prod.js +1 -1
  5. package/dist/icon-set/fontawesome-v5-pro.umd.prod.js +1 -1
  6. package/dist/icon-set/fontawesome-v5.umd.prod.js +1 -1
  7. package/dist/icon-set/fontawesome-v6-pro.umd.prod.js +1 -1
  8. package/dist/icon-set/fontawesome-v6.umd.prod.js +1 -1
  9. package/dist/icon-set/ionicons-v4.umd.prod.js +1 -1
  10. package/dist/icon-set/line-awesome.umd.prod.js +1 -1
  11. package/dist/icon-set/material-icons-outlined.umd.prod.js +1 -1
  12. package/dist/icon-set/material-icons-round.umd.prod.js +1 -1
  13. package/dist/icon-set/material-icons-sharp.umd.prod.js +1 -1
  14. package/dist/icon-set/material-icons.umd.prod.js +1 -1
  15. package/dist/icon-set/material-symbols-outlined.umd.prod.js +2 -2
  16. package/dist/icon-set/material-symbols-rounded.umd.prod.js +1 -1
  17. package/dist/icon-set/material-symbols-sharp.umd.prod.js +1 -1
  18. package/dist/icon-set/mdi-v3.umd.prod.js +1 -1
  19. package/dist/icon-set/mdi-v4.umd.prod.js +1 -1
  20. package/dist/icon-set/mdi-v5.umd.prod.js +1 -1
  21. package/dist/icon-set/mdi-v6.umd.prod.js +1 -1
  22. package/dist/icon-set/svg-bootstrap-icons.umd.prod.js +1 -1
  23. package/dist/icon-set/svg-eva-icons.umd.prod.js +1 -1
  24. package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +1 -1
  25. package/dist/icon-set/svg-fontawesome-v6.umd.prod.js +1 -1
  26. package/dist/icon-set/svg-ionicons-v4.umd.prod.js +1 -1
  27. package/dist/icon-set/svg-ionicons-v5.umd.prod.js +1 -1
  28. package/dist/icon-set/svg-ionicons-v6.umd.prod.js +1 -1
  29. package/dist/icon-set/svg-line-awesome.umd.prod.js +1 -1
  30. package/dist/icon-set/svg-material-icons-outlined.umd.prod.js +1 -1
  31. package/dist/icon-set/svg-material-icons-round.umd.prod.js +1 -1
  32. package/dist/icon-set/svg-material-icons-sharp.umd.prod.js +1 -1
  33. package/dist/icon-set/svg-material-icons.umd.prod.js +1 -1
  34. package/dist/icon-set/svg-material-symbols-outlined.umd.prod.js +2 -2
  35. package/dist/icon-set/svg-material-symbols-rounded.umd.prod.js +1 -1
  36. package/dist/icon-set/svg-material-symbols-sharp.umd.prod.js +1 -1
  37. package/dist/icon-set/svg-mdi-v6.umd.prod.js +1 -1
  38. package/dist/icon-set/svg-themify.umd.prod.js +1 -1
  39. package/dist/icon-set/themify.umd.prod.js +1 -1
  40. package/dist/lang/ar-TN.umd.prod.js +1 -1
  41. package/dist/lang/ar.umd.prod.js +1 -1
  42. package/dist/lang/az-Latn.umd.prod.js +1 -1
  43. package/dist/lang/bg.umd.prod.js +1 -1
  44. package/dist/lang/bn.umd.prod.js +1 -1
  45. package/dist/lang/ca.umd.prod.js +2 -2
  46. package/dist/lang/cs.umd.prod.js +1 -1
  47. package/dist/lang/da.umd.prod.js +1 -1
  48. package/dist/lang/de.umd.prod.js +1 -1
  49. package/dist/lang/el.umd.prod.js +1 -1
  50. package/dist/lang/en-GB.umd.prod.js +1 -1
  51. package/dist/lang/en-US.umd.prod.js +1 -1
  52. package/dist/lang/eo.umd.prod.js +1 -1
  53. package/dist/lang/es.umd.prod.js +1 -1
  54. package/dist/lang/et.umd.prod.js +1 -1
  55. package/dist/lang/eu.umd.prod.js +1 -1
  56. package/dist/lang/fa-IR.umd.prod.js +1 -1
  57. package/dist/lang/fa.umd.prod.js +1 -1
  58. package/dist/lang/fi.umd.prod.js +1 -1
  59. package/dist/lang/fr.umd.prod.js +1 -1
  60. package/dist/lang/gn.umd.prod.js +1 -1
  61. package/dist/lang/he.umd.prod.js +1 -1
  62. package/dist/lang/hr.umd.prod.js +1 -1
  63. package/dist/lang/hu.umd.prod.js +1 -1
  64. package/dist/lang/id.umd.prod.js +1 -1
  65. package/dist/lang/is.umd.prod.js +1 -1
  66. package/dist/lang/it.umd.prod.js +1 -1
  67. package/dist/lang/ja.umd.prod.js +1 -1
  68. package/dist/lang/km.umd.prod.js +1 -1
  69. package/dist/lang/ko-KR.umd.prod.js +2 -2
  70. package/dist/lang/kur-CKB.umd.prod.js +1 -1
  71. package/dist/lang/kz.umd.prod.js +1 -1
  72. package/dist/lang/lt.umd.prod.js +1 -1
  73. package/dist/lang/lu.umd.prod.js +1 -1
  74. package/dist/lang/lv.umd.prod.js +1 -1
  75. package/dist/lang/ml.umd.prod.js +1 -1
  76. package/dist/lang/mm.umd.prod.js +1 -1
  77. package/dist/lang/ms.umd.prod.js +1 -1
  78. package/dist/lang/my.umd.prod.js +1 -1
  79. package/dist/lang/nb-NO.umd.prod.js +1 -1
  80. package/dist/lang/nl.umd.prod.js +1 -1
  81. package/dist/lang/pl.umd.prod.js +1 -1
  82. package/dist/lang/pt-BR.umd.prod.js +1 -1
  83. package/dist/lang/pt.umd.prod.js +1 -1
  84. package/dist/lang/ro.umd.prod.js +1 -1
  85. package/dist/lang/ru.umd.prod.js +1 -1
  86. package/dist/lang/sk.umd.prod.js +1 -1
  87. package/dist/lang/sl.umd.prod.js +1 -1
  88. package/dist/lang/sm.umd.prod.js +6 -0
  89. package/dist/lang/sr-CYR.umd.prod.js +1 -1
  90. package/dist/lang/sr.umd.prod.js +1 -1
  91. package/dist/lang/sv.umd.prod.js +1 -1
  92. package/dist/lang/ta.umd.prod.js +1 -1
  93. package/dist/lang/th.umd.prod.js +1 -1
  94. package/dist/lang/tr.umd.prod.js +1 -1
  95. package/dist/lang/ug.umd.prod.js +1 -1
  96. package/dist/lang/uk.umd.prod.js +1 -1
  97. package/dist/lang/vi.umd.prod.js +1 -1
  98. package/dist/lang/zh-CN.umd.prod.js +1 -1
  99. package/dist/lang/zh-TW.umd.prod.js +1 -1
  100. package/dist/quasar.cjs.prod.js +2 -2
  101. package/dist/quasar.css +5 -3
  102. package/dist/quasar.esm.prod.js +2 -2
  103. package/dist/quasar.prod.css +1 -1
  104. package/dist/quasar.rtl.css +5 -3
  105. package/dist/quasar.rtl.prod.css +1 -1
  106. package/dist/quasar.sass +6 -4
  107. package/dist/quasar.umd.js +60 -45
  108. package/dist/quasar.umd.prod.js +2 -2
  109. package/dist/types/index.d.ts +6 -1
  110. package/dist/vetur/quasar-attributes.json +4 -0
  111. package/dist/vetur/quasar-tags.json +2 -1
  112. package/dist/web-types/web-types.json +12 -2
  113. package/icon-set/material-symbols-outlined.js +87 -87
  114. package/icon-set/material-symbols-outlined.mjs +87 -87
  115. package/icon-set/svg-material-symbols-outlined.js +151 -151
  116. package/icon-set/svg-material-symbols-outlined.mjs +151 -151
  117. package/lang/ca.js +31 -31
  118. package/lang/ca.mjs +31 -31
  119. package/lang/index.json +4 -0
  120. package/lang/ko-KR.js +21 -21
  121. package/lang/ko-KR.mjs +21 -21
  122. package/lang/sm.js +96 -0
  123. package/lang/sm.mjs +91 -0
  124. package/package.json +11 -11
  125. package/src/components/dialog/QDialog.js +3 -1
  126. package/src/components/dialog/QDialog.json +7 -0
  127. package/src/components/file/QFile.js +6 -1
  128. package/src/components/icon/QIcon.sass +3 -2
  129. package/src/components/img/QImg.sass +1 -0
  130. package/src/components/menu/__tests__/QMenu.spec.js +23 -23
  131. package/src/components/pagination/QPagination.json +1 -1
  132. package/src/components/select/QSelect.js +26 -14
  133. package/src/components/select/__tests__/QSelect.spec.js +427 -451
  134. package/src/components/table/QTable.js +0 -1
  135. package/src/components/table/QTable.sass +1 -1
  136. package/src/components/uploader/uploader-core.js +1 -0
  137. package/src/components/virtual-scroll/use-virtual-scroll.js +6 -1
  138. package/src/composables/private/__tests__/use-anchor.spec.js +6 -6
  139. package/src/composables/private/__tests__/use-field.spec.js +7 -7
  140. package/src/composables/private/__tests__/use-model-toggle.spec.js +18 -17
  141. package/src/composables/private/__tests__/use-transition.spec.js +5 -5
  142. package/src/composables/private/__tests__/use-validate.spec.js +4 -4
  143. package/src/composables/private/use-anchor.js +1 -1
  144. package/src/composables/private/use-field.js +1 -1
  145. package/src/composables/private/use-key-composition.js +10 -14
  146. package/src/directives/Ripple.js +2 -7
  147. package/src/utils/date.js +1 -1
  148. package/src/components/select/__tests__/WrapperOne.vue +0 -28
package/dist/quasar.sass CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Quasar Framework v2.7.1
2
+ * Quasar Framework v2.7.2
3
3
  * (c) 2015-present Razvan Stoenescu
4
4
  * Released under the MIT License.
5
5
  */
@@ -646,6 +646,7 @@ input[type='search']::-webkit-search-decoration
646
646
  line-height: 1
647
647
  width: 1em
648
648
  height: 1em
649
+ flex-shrink: 0
649
650
  letter-spacing: normal
650
651
  text-transform: none
651
652
  white-space: nowrap
@@ -663,8 +664,8 @@ input[type='search']::-webkit-search-decoration
663
664
  justify-content: center
664
665
  > svg,
665
666
  > img
666
- width: 1em
667
- height: 1em
667
+ width: 100%
668
+ height: 100%
668
669
  .q-icon,
669
670
  .material-icons,
670
671
  .material-icons-outlined,
@@ -2656,6 +2657,7 @@ $field-transition-label-right-up: .324s cubic-bezier(.4,0,.2,1)
2656
2657
  font-size: $img-loading-font-size
2657
2658
  &__container
2658
2659
  border-radius: inherit
2660
+ font-size: 0
2659
2661
  &__image
2660
2662
  border-radius: inherit
2661
2663
  width: 100%
@@ -4160,7 +4162,7 @@ body.platform-ios
4160
4162
  &--selected
4161
4163
  transform: scale(.95)
4162
4164
  .q-table--horizontal-separator, .q-table--cell-separator
4163
- thead th, tbody tr:not(:last-child) td
4165
+ thead th, tbody tr:not(:last-child) > td
4164
4166
  border-bottom-width: 1px
4165
4167
  .q-table--vertical-separator, .q-table--cell-separator
4166
4168
  td, th
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Quasar Framework v2.7.1
2
+ * Quasar Framework v2.7.2
3
3
  * (c) 2015-present Razvan Stoenescu
4
4
  * Released under the MIT License.
5
5
  */
@@ -1603,7 +1603,7 @@
1603
1603
  }
1604
1604
 
1605
1605
  var installQuasar = function (parentApp, opts = {}) {
1606
- const $q = { version: '2.7.1' };
1606
+ const $q = { version: '2.7.2' };
1607
1607
 
1608
1608
  if (globalConfigIsFrozen === false) {
1609
1609
  if (opts.config !== void 0) {
@@ -3194,11 +3194,7 @@
3194
3194
  if (
3195
3195
  ctx.enabled === true
3196
3196
  && evt.qSkipRipple !== true
3197
- && (
3198
- ctx.modifiers.early === true
3199
- ? [ 'mousedown', 'touchstart' ].includes(evt.type) === true
3200
- : evt.type === 'click'
3201
- )
3197
+ && evt.type === (ctx.modifiers.early === true ? 'pointerdown' : 'click')
3202
3198
  ) {
3203
3199
  showRipple(evt, el, ctx, evt.qKeyEvent === true);
3204
3200
  }
@@ -3221,8 +3217,7 @@
3221
3217
  el.__qripple = ctx;
3222
3218
 
3223
3219
  addEvt(ctx, 'main', [
3224
- [ el, 'mousedown', 'start', 'passive' ],
3225
- [ el, 'touchstart', 'start', 'passive' ],
3220
+ [ el, 'pointerdown', 'start', 'passive' ],
3226
3221
  [ el, 'click', 'start', 'passive' ],
3227
3222
  [ el, 'keydown', 'keystart', 'passive' ],
3228
3223
  [ el, 'keyup', 'keystart', 'passive' ]
@@ -3988,7 +3983,7 @@
3988
3983
  }
3989
3984
 
3990
3985
  function pickAnchorEl () {
3991
- if (props.target === false || props.target === '') {
3986
+ if (props.target === false || props.target === '' || proxy.$el.parentNode === null) {
3992
3987
  anchorEl.value = null;
3993
3988
  }
3994
3989
  else if (props.target === true) {
@@ -11982,7 +11977,7 @@
11982
11977
  const date = new Date(
11983
11978
  d.year,
11984
11979
  d.month === null ? null : d.month - 1,
11985
- d.day,
11980
+ d.day === null ? 1 : d.day,
11986
11981
  d.hour,
11987
11982
  d.minute,
11988
11983
  d.second,
@@ -14394,6 +14389,7 @@
14394
14389
 
14395
14390
  persistent: Boolean,
14396
14391
  autoClose: Boolean,
14392
+ allowFocusOutside: Boolean,
14397
14393
 
14398
14394
  noEscDismiss: Boolean,
14399
14395
  noBackdropDismiss: Boolean,
@@ -14698,7 +14694,8 @@
14698
14694
  function onFocusChange (evt) {
14699
14695
  // the focus is not in a vue child component
14700
14696
  if (
14701
- portalIsAccessible.value === true
14697
+ props.allowFocusOutside !== true
14698
+ && portalIsAccessible.value === true
14702
14699
  && childHasFocus(innerRef.value, evt.target) !== true
14703
14700
  ) {
14704
14701
  focus('[tabindex]:not([tabindex="-1"])');
@@ -18832,6 +18829,7 @@
18832
18829
  + (props.square === true ? ' q-uploader--square no-border-radius' : '')
18833
18830
  + (props.flat === true ? ' q-uploader--flat no-shadow' : '')
18834
18831
  + (props.disable === true ? ' disabled q-uploader--disable' : '')
18832
+ + (dnd.value === true ? ' q-uploader--dnd' : '')
18835
18833
  );
18836
18834
 
18837
18835
  const colorClass = vue.computed(() =>
@@ -21133,7 +21131,7 @@
21133
21131
  const labelAttrs = state.getControl === void 0 && slots.control === void 0
21134
21132
  ? {
21135
21133
  ...state.splitAttrs.attributes.value,
21136
- 'data-autofocus': props.autofocus,
21134
+ 'data-autofocus': props.autofocus === true || void 0,
21137
21135
  ...attributes.value
21138
21136
  }
21139
21137
  : attributes.value;
@@ -21326,6 +21324,11 @@
21326
21324
  disabled: state.editable.value !== true
21327
21325
  }));
21328
21326
 
21327
+ const fieldClass = vue.computed(() =>
21328
+ 'q-file q-field--auto-height'
21329
+ + (dnd.value === true ? ' q-file--dnd' : '')
21330
+ );
21331
+
21329
21332
  const isAppending = vue.computed(() =>
21330
21333
  props.multiple === true && props.append === true
21331
21334
  );
@@ -21458,7 +21461,7 @@
21458
21461
  }
21459
21462
 
21460
21463
  Object.assign(state, {
21461
- fieldClass: { value: 'q-file q-field--auto-height' },
21464
+ fieldClass,
21462
21465
  emitValue,
21463
21466
  hasValue,
21464
21467
  inputRef,
@@ -23246,23 +23249,19 @@
23246
23249
  e.target.qComposing = false;
23247
23250
  onInput(e);
23248
23251
  }
23249
- else if (e.type === 'compositionupdate') {
23250
- if (
23251
- e.target.qComposing !== true
23252
- && typeof e.data === 'string'
23253
- ) {
23254
- const isComposing = client.is.firefox === true
23255
- ? isPlainText.test(e.data) === false
23256
- : isJapanese.test(e.data) === true && isChinese.test(e.data) === true && isKorean.test(e.data) === true;
23252
+ else if (
23253
+ e.type === 'compositionupdate'
23254
+ && e.target.qComposing !== true
23255
+ && typeof e.data === 'string'
23256
+ ) {
23257
+ const isComposing = client.is.firefox === true
23258
+ ? isPlainText.test(e.data) === false
23259
+ : isJapanese.test(e.data) === true || isChinese.test(e.data) === true || isKorean.test(e.data) === true;
23257
23260
 
23258
- if (isComposing === true) {
23259
- e.target.qComposing = true;
23260
- }
23261
+ if (isComposing === true) {
23262
+ e.target.qComposing = true;
23261
23263
  }
23262
23264
  }
23263
- else {
23264
- e.target.qComposing = true;
23265
- }
23266
23265
  }
23267
23266
  }
23268
23267
 
@@ -27519,7 +27518,12 @@
27519
27518
  const setOverflowAnchor = window.getComputedStyle(document.body).overflowAnchor === void 0
27520
27519
  ? noop
27521
27520
  : function (contentEl, index) {
27522
- requestAnimationFrame(() => {
27521
+ if (contentEl === null) {
27522
+ return
27523
+ }
27524
+
27525
+ cancelAnimationFrame(contentEl._qOverflowAnimationFrame);
27526
+ contentEl._qOverflowAnimationFrame = requestAnimationFrame(() => {
27523
27527
  if (contentEl === null) {
27524
27528
  return
27525
27529
  }
@@ -28343,7 +28347,7 @@
28343
28347
 
28344
28348
  emits: [
28345
28349
  ...useFieldEmits,
28346
- 'add', 'remove', 'input-value',
28350
+ 'add', 'remove', 'input-value', 'new-value',
28347
28351
  'keyup', 'keypress', 'keydown',
28348
28352
  'filter-abort'
28349
28353
  ],
@@ -28391,7 +28395,6 @@
28391
28395
  localResetVirtualScroll,
28392
28396
  padVirtualScroll,
28393
28397
  onVirtualScrollEvt,
28394
- reset,
28395
28398
  scrollTo,
28396
28399
  setVirtualScrollSize
28397
28400
  } = useVirtualScroll({
@@ -28485,15 +28488,23 @@
28485
28488
 
28486
28489
  const tabindex = vue.computed(() => (state.focused.value === true ? props.tabindex : -1));
28487
28490
 
28488
- const comboboxAttrs = vue.computed(() => ({
28489
- tabindex: props.tabindex,
28490
- role: 'combobox',
28491
- 'aria-label': props.label,
28492
- 'aria-autocomplete': props.useInput === true ? 'list' : 'none',
28493
- 'aria-expanded': menu.value === true ? 'true' : 'false',
28494
- 'aria-owns': `${ state.targetUid.value }_lb`,
28495
- 'aria-controls': `${ state.targetUid.value }_lb`
28496
- }));
28491
+ const comboboxAttrs = vue.computed(() => {
28492
+ const attrs = {
28493
+ tabindex: props.tabindex,
28494
+ role: 'combobox',
28495
+ 'aria-label': props.label,
28496
+ 'aria-autocomplete': props.useInput === true ? 'list' : 'none',
28497
+ 'aria-expanded': menu.value === true ? 'true' : 'false',
28498
+ 'aria-owns': `${ state.targetUid.value }_lb`,
28499
+ 'aria-controls': `${ state.targetUid.value }_lb`
28500
+ };
28501
+
28502
+ if (optionIndex.value >= 0) {
28503
+ attrs[ 'aria-activedescendant' ] = `${ state.targetUid.value }_${ optionIndex.value }`;
28504
+ }
28505
+
28506
+ return attrs
28507
+ });
28497
28508
 
28498
28509
  const listboxAttrs = vue.computed(() => {
28499
28510
  const attrs = {
@@ -29558,13 +29569,18 @@
29558
29569
  setOptionIndex(optionIndex);
29559
29570
  }
29560
29571
 
29561
- function rerenderMenu () {
29572
+ function rerenderMenu (newLength, oldLength) {
29562
29573
  if (menu.value === true && state.innerLoading.value === false) {
29563
- reset();
29574
+ localResetVirtualScroll(-1, true);
29564
29575
 
29565
29576
  vue.nextTick(() => {
29566
29577
  if (menu.value === true && state.innerLoading.value === false) {
29567
- updateMenu(true);
29578
+ if (newLength > oldLength) {
29579
+ localResetVirtualScroll();
29580
+ }
29581
+ else {
29582
+ updateMenu(true);
29583
+ }
29568
29584
  }
29569
29585
  });
29570
29586
  }
@@ -33608,7 +33624,6 @@
33608
33624
 
33609
33625
  const __containerClass = vue.computed(() =>
33610
33626
  `q-table__container q-table--${ props.separator }-separator column no-wrap`
33611
- + (props.loading === true ? ' q-table--loading' : '')
33612
33627
  + (props.grid === true ? ' q-table--grid' : cardDefaultClass.value)
33613
33628
  + (isDark.value === true ? ' q-table--dark' : '')
33614
33629
  + (props.dense === true ? ' q-table--dense' : '')
@@ -39716,7 +39731,7 @@
39716
39731
  });
39717
39732
 
39718
39733
  var index_umd = {
39719
- version: '2.7.1',
39734
+ version: '2.7.2',
39720
39735
  install (app, opts) {
39721
39736
  installQuasar(app, {
39722
39737
  components,