quasar 1.22.4 → 1.22.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 (144) hide show
  1. package/dist/api/BottomSheet.json +12 -0
  2. package/dist/api/QCarouselSlide.json +1 -1
  3. package/dist/api/QChatMessage.json +1 -1
  4. package/dist/api/QImg.json +8 -2
  5. package/dist/api/QTimelineEntry.json +1 -1
  6. package/dist/icon-set/bootstrap-icons.umd.min.js +1 -1
  7. package/dist/icon-set/eva-icons.umd.min.js +1 -1
  8. package/dist/icon-set/fontawesome-v5-pro.umd.min.js +1 -1
  9. package/dist/icon-set/fontawesome-v5.umd.min.js +1 -1
  10. package/dist/icon-set/fontawesome-v6-pro.umd.min.js +1 -1
  11. package/dist/icon-set/fontawesome-v6.umd.min.js +1 -1
  12. package/dist/icon-set/ionicons-v4.umd.min.js +1 -1
  13. package/dist/icon-set/line-awesome.umd.min.js +1 -1
  14. package/dist/icon-set/material-icons-outlined.umd.min.js +1 -1
  15. package/dist/icon-set/material-icons-round.umd.min.js +1 -1
  16. package/dist/icon-set/material-icons-sharp.umd.min.js +1 -1
  17. package/dist/icon-set/material-icons.umd.min.js +1 -1
  18. package/dist/icon-set/material-symbols-outlined.umd.min.js +1 -1
  19. package/dist/icon-set/material-symbols-rounded.umd.min.js +1 -1
  20. package/dist/icon-set/material-symbols-sharp.umd.min.js +1 -1
  21. package/dist/icon-set/mdi-v3.umd.min.js +1 -1
  22. package/dist/icon-set/mdi-v4.umd.min.js +1 -1
  23. package/dist/icon-set/mdi-v5.umd.min.js +1 -1
  24. package/dist/icon-set/mdi-v6.umd.min.js +1 -1
  25. package/dist/icon-set/mdi-v7.umd.min.js +1 -1
  26. package/dist/icon-set/svg-bootstrap-icons.umd.min.js +1 -1
  27. package/dist/icon-set/svg-eva-icons.umd.min.js +1 -1
  28. package/dist/icon-set/svg-fontawesome-v5.umd.min.js +1 -1
  29. package/dist/icon-set/svg-fontawesome-v6.umd.min.js +1 -1
  30. package/dist/icon-set/svg-ionicons-v4.umd.min.js +1 -1
  31. package/dist/icon-set/svg-ionicons-v5.umd.min.js +1 -1
  32. package/dist/icon-set/svg-ionicons-v6.umd.min.js +1 -1
  33. package/dist/icon-set/svg-line-awesome.umd.min.js +1 -1
  34. package/dist/icon-set/svg-material-icons-outlined.umd.min.js +1 -1
  35. package/dist/icon-set/svg-material-icons-round.umd.min.js +1 -1
  36. package/dist/icon-set/svg-material-icons-sharp.umd.min.js +1 -1
  37. package/dist/icon-set/svg-material-icons.umd.min.js +1 -1
  38. package/dist/icon-set/svg-material-symbols-outlined.umd.min.js +1 -1
  39. package/dist/icon-set/svg-material-symbols-rounded.umd.min.js +1 -1
  40. package/dist/icon-set/svg-material-symbols-sharp.umd.min.js +1 -1
  41. package/dist/icon-set/svg-mdi-v4.umd.min.js +1 -1
  42. package/dist/icon-set/svg-mdi-v5.umd.min.js +1 -1
  43. package/dist/icon-set/svg-mdi-v6.umd.min.js +1 -1
  44. package/dist/icon-set/svg-mdi-v7.umd.min.js +1 -1
  45. package/dist/icon-set/svg-themify.umd.min.js +1 -1
  46. package/dist/icon-set/themify.umd.min.js +1 -1
  47. package/dist/lang/ar.umd.min.js +1 -1
  48. package/dist/lang/az-latn.umd.min.js +1 -1
  49. package/dist/lang/bg.umd.min.js +1 -1
  50. package/dist/lang/ca.umd.min.js +1 -1
  51. package/dist/lang/cs.umd.min.js +1 -1
  52. package/dist/lang/da.umd.min.js +1 -1
  53. package/dist/lang/de.umd.min.js +1 -1
  54. package/dist/lang/el.umd.min.js +1 -1
  55. package/dist/lang/en-gb.umd.min.js +1 -1
  56. package/dist/lang/en-us.umd.min.js +1 -1
  57. package/dist/lang/eo.umd.min.js +1 -1
  58. package/dist/lang/es.umd.min.js +1 -1
  59. package/dist/lang/et.umd.min.js +1 -1
  60. package/dist/lang/eu.umd.min.js +1 -1
  61. package/dist/lang/fa-ir.umd.min.js +1 -1
  62. package/dist/lang/fa.umd.min.js +1 -1
  63. package/dist/lang/fi.umd.min.js +1 -1
  64. package/dist/lang/fr.umd.min.js +1 -1
  65. package/dist/lang/gn.umd.min.js +1 -1
  66. package/dist/lang/he.umd.min.js +1 -1
  67. package/dist/lang/hr.umd.min.js +1 -1
  68. package/dist/lang/hu.umd.min.js +1 -1
  69. package/dist/lang/id.umd.min.js +1 -1
  70. package/dist/lang/is.umd.min.js +1 -1
  71. package/dist/lang/it.umd.min.js +1 -1
  72. package/dist/lang/ja.umd.min.js +1 -1
  73. package/dist/lang/km.umd.min.js +1 -1
  74. package/dist/lang/ko-kr.umd.min.js +1 -1
  75. package/dist/lang/kur-ckb.umd.min.js +1 -1
  76. package/dist/lang/kz.umd.min.js +1 -1
  77. package/dist/lang/lu.umd.min.js +1 -1
  78. package/dist/lang/lv.umd.min.js +1 -1
  79. package/dist/lang/ml.umd.min.js +1 -1
  80. package/dist/lang/mm.umd.min.js +1 -1
  81. package/dist/lang/ms.umd.min.js +1 -1
  82. package/dist/lang/my.umd.min.js +1 -1
  83. package/dist/lang/nb-no.umd.min.js +1 -1
  84. package/dist/lang/nl.umd.min.js +1 -1
  85. package/dist/lang/pl.umd.min.js +1 -1
  86. package/dist/lang/pt-br.umd.min.js +1 -1
  87. package/dist/lang/pt.umd.min.js +1 -1
  88. package/dist/lang/ro.umd.min.js +1 -1
  89. package/dist/lang/ru.umd.min.js +1 -1
  90. package/dist/lang/sk.umd.min.js +1 -1
  91. package/dist/lang/sl.umd.min.js +2 -2
  92. package/dist/lang/sm.umd.min.js +1 -1
  93. package/dist/lang/sr.umd.min.js +1 -1
  94. package/dist/lang/sv.umd.min.js +1 -1
  95. package/dist/lang/ta.umd.min.js +1 -1
  96. package/dist/lang/th.umd.min.js +1 -1
  97. package/dist/lang/tr.umd.min.js +1 -1
  98. package/dist/lang/ug.umd.min.js +1 -1
  99. package/dist/lang/uk.umd.min.js +1 -1
  100. package/dist/lang/uz-Cyrl.umd.min.js +1 -1
  101. package/dist/lang/uz-Latn.umd.min.js +1 -1
  102. package/dist/lang/vi.umd.min.js +1 -1
  103. package/dist/lang/zh-hans.umd.min.js +1 -1
  104. package/dist/lang/zh-hant.umd.min.js +1 -1
  105. package/dist/quasar.addon.css +1 -1
  106. package/dist/quasar.addon.rtl.css +1 -1
  107. package/dist/quasar.common.js +2 -2
  108. package/dist/quasar.css +2 -4
  109. package/dist/quasar.esm.js +2 -2
  110. package/dist/quasar.ie.polyfills.js +1 -1
  111. package/dist/quasar.ie.polyfills.umd.min.js +1 -1
  112. package/dist/quasar.min.css +1 -1
  113. package/dist/quasar.rtl.css +2 -4
  114. package/dist/quasar.rtl.min.css +1 -1
  115. package/dist/quasar.sass +2 -3
  116. package/dist/quasar.styl +2 -3
  117. package/dist/quasar.umd.js +95 -20
  118. package/dist/quasar.umd.min.js +2 -2
  119. package/dist/quasar.umd.modern.js +88 -18
  120. package/dist/quasar.umd.modern.min.js +2 -2
  121. package/dist/types/index.d.ts +12 -0
  122. package/dist/vetur/quasar-attributes.json +4 -0
  123. package/dist/vetur/quasar-tags.json +2 -1
  124. package/dist/web-types/web-types.json +16 -6
  125. package/lang/sl.js +1 -1
  126. package/package.json +1 -1
  127. package/src/components/carousel/QCarouselSlide.json +1 -1
  128. package/src/components/chat/QChatMessage.json +1 -1
  129. package/src/components/date/QDate.js +8 -3
  130. package/src/components/dialog/QDialog.js +2 -1
  131. package/src/components/dialog-bottom-sheet/BottomSheet.js +2 -0
  132. package/src/components/img/QImg.js +10 -1
  133. package/src/components/img/QImg.json +9 -2
  134. package/src/components/infinite-scroll/QInfiniteScroll.js +37 -2
  135. package/src/components/layout/QLayout.sass +1 -0
  136. package/src/components/layout/QLayout.styl +1 -0
  137. package/src/components/slide-transition/QSlideTransition.js +6 -1
  138. package/src/components/timeline/QTimelineEntry.json +1 -1
  139. package/src/css/core/visibility.sass +0 -3
  140. package/src/css/core/visibility.styl +0 -3
  141. package/src/mixins/mask.js +1 -1
  142. package/src/mixins/prevent-scroll.js +9 -1
  143. package/src/plugins/BottomSheet.json +7 -0
  144. package/src/utils/is.js +11 -6
package/dist/quasar.sass CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Quasar Framework v1.22.4
2
+ * Quasar Framework v1.22.6
3
3
  * (c) 2015-present Razvan Stoenescu
4
4
  * Released under the MIT License.
5
5
  */
@@ -2871,6 +2871,7 @@ body.mobile .q-textarea,
2871
2871
  box-shadow: $shadow-4
2872
2872
  .q-layout
2873
2873
  width: 100%
2874
+ outline: 0
2874
2875
  .q-layout-container
2875
2876
  position: relative
2876
2877
  width: 100%
@@ -7409,8 +7410,6 @@ sup
7409
7410
  visibility: hidden !important
7410
7411
  transition: none !important
7411
7412
  animation: none !important
7412
- .invisible svg *
7413
- display: none
7414
7413
  .transparent
7415
7414
  background: transparent !important
7416
7415
  .overflow-auto
package/dist/quasar.styl CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Quasar Framework v1.22.4
2
+ * Quasar Framework v1.22.6
3
3
  * (c) 2015-present Razvan Stoenescu
4
4
  * Released under the MIT License.
5
5
  */
@@ -2918,6 +2918,7 @@ body.mobile .q-textarea,
2918
2918
  box-shadow: $shadow-4
2919
2919
  .q-layout
2920
2920
  width: 100%
2921
+ outline: 0
2921
2922
  .q-layout-container
2922
2923
  position: relative
2923
2924
  width: 100%
@@ -7456,8 +7457,6 @@ sup
7456
7457
  visibility: hidden !important
7457
7458
  transition: none !important
7458
7459
  animation: none !important
7459
- .invisible svg *
7460
- display: none
7461
7460
  .transparent
7462
7461
  background: transparent !important
7463
7462
  .overflow-auto
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Quasar Framework v1.22.4
2
+ * Quasar Framework v1.22.6
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.4";
15
+ var version = "1.22.6";
16
16
 
17
17
  /* eslint-disable no-useless-escape */
18
18
 
@@ -7259,20 +7259,23 @@
7259
7259
  return false
7260
7260
  }
7261
7261
 
7262
- i = a.entries().next();
7262
+ var iter = a.entries();
7263
+
7264
+ i = iter.next();
7263
7265
  while (i.done !== true) {
7264
7266
  if (b.has(i.value[0]) !== true) {
7265
7267
  return false
7266
7268
  }
7267
- i = i.next();
7269
+ i = iter.next();
7268
7270
  }
7269
7271
 
7270
- i = a.entries().next();
7272
+ iter = a.entries();
7273
+ i = iter.next();
7271
7274
  while (i.done !== true) {
7272
7275
  if (isDeepEqual(i.value[1], b.get(i.value[0])) !== true) {
7273
7276
  return false
7274
7277
  }
7275
- i = i.next();
7278
+ i = iter.next();
7276
7279
  }
7277
7280
 
7278
7281
  return true
@@ -7283,12 +7286,14 @@
7283
7286
  return false
7284
7287
  }
7285
7288
 
7286
- i = a.entries().next();
7289
+ var iter$1 = a.entries();
7290
+
7291
+ i = iter$1.next();
7287
7292
  while (i.done !== true) {
7288
7293
  if (b.has(i.value[0]) !== true) {
7289
7294
  return false
7290
7295
  }
7291
- i = i.next();
7296
+ i = iter$1.next();
7292
7297
  }
7293
7298
 
7294
7299
  return true
@@ -13449,10 +13454,8 @@
13449
13454
  this.lastEmitValue = 0;
13450
13455
  }
13451
13456
  else {
13452
- var ref = this.__getViewModel(this.innerMask, this.innerLocale);
13453
- var year = ref.year;
13454
- var month = ref.month;
13455
- this.__updateViewModel(year, month);
13457
+ var model = this.__getViewModel(this.innerMask, this.innerLocale);
13458
+ this.__updateViewModel(model.year, model.month, model);
13456
13459
  }
13457
13460
  },
13458
13461
 
@@ -14670,7 +14673,7 @@
14670
14673
  }
14671
14674
  },
14672
14675
 
14673
- __updateViewModel: function __updateViewModel (year, month) {
14676
+ __updateViewModel: function __updateViewModel (year, month, time) {
14674
14677
  var this$1 = this;
14675
14678
 
14676
14679
  if (this.minNav !== void 0 && year <= this.minNav.year) {
@@ -14687,6 +14690,16 @@
14687
14690
  }
14688
14691
  }
14689
14692
 
14693
+ if (time !== void 0) {
14694
+ var hour = time.hour;
14695
+ var minute = time.minute;
14696
+ var second = time.second;
14697
+ var millisecond = time.millisecond;
14698
+ var timezoneOffset = time.timezoneOffset;
14699
+ var timeHash = time.timeHash;
14700
+ Object.assign(this.viewModel, { hour: hour, minute: minute, second: second, millisecond: millisecond, timezoneOffset: timezoneOffset, timeHash: timeHash });
14701
+ }
14702
+
14690
14703
  var newHash = year + '/' + pad(month) + '/01';
14691
14704
 
14692
14705
  if (newHash !== this.viewModel.dateHash) {
@@ -14923,6 +14936,7 @@
14923
14936
  vpPendingUpdate = false,
14924
14937
  bodyLeft,
14925
14938
  bodyTop,
14939
+ href,
14926
14940
  closeTimer;
14927
14941
 
14928
14942
  function onWheel (e) {
@@ -15011,6 +15025,8 @@
15011
15025
  bodyLeft = body.style.left;
15012
15026
  bodyTop = body.style.top;
15013
15027
 
15028
+ href = window.location.href;
15029
+
15014
15030
  body.style.left = "-" + scrollPositionX + "px";
15015
15031
  body.style.top = "-" + scrollPositionY + "px";
15016
15032
  if (overflowY !== 'hidden' && (overflowY === 'scroll' || body.scrollHeight > window.innerHeight)) {
@@ -15019,6 +15035,7 @@
15019
15035
 
15020
15036
  body.classList.add('q-body--prevent-scroll');
15021
15037
  document.qScrollPrevented = true;
15038
+
15022
15039
  if (client.is.ios === true) {
15023
15040
  if (hasViewport === true) {
15024
15041
  window.scrollTo(0, 0);
@@ -15055,7 +15072,11 @@
15055
15072
  body.style.left = bodyLeft;
15056
15073
  body.style.top = bodyTop;
15057
15074
 
15058
- window.scrollTo(scrollPositionX, scrollPositionY);
15075
+ // scroll back only if route has not changed
15076
+ if (window.location.href === href) {
15077
+ window.scrollTo(scrollPositionX, scrollPositionY);
15078
+ }
15079
+
15059
15080
  maxScrollTop = void 0;
15060
15081
  }
15061
15082
  }
@@ -15475,7 +15496,7 @@
15475
15496
  h('div', {
15476
15497
  staticClass: 'q-dialog__backdrop fixed-full',
15477
15498
  attrs: backdropAttrs,
15478
- on: cache(this, 'bkdrop', ( obj = {}, obj[ this.$q.platform.is.ios === true ? 'click' : 'focusin' ] = this.__onBackdropClick, obj ))
15499
+ on: cache(this, 'bkdrop', ( obj = {}, obj[ this.backdropEvt ] = this.__onBackdropClick, obj ))
15479
15500
  })
15480
15501
  ] : null),
15481
15502
 
@@ -15497,6 +15518,7 @@
15497
15518
  created: function created () {
15498
15519
  this.__useTick('__registerTick', '__removeTick');
15499
15520
  this.__useTimeout('__registerTimeout');
15521
+ this.backdropEvt = this.$q.platform.is.ios === true || this.$q.platform.is.safari ? 'click' : 'focusin';
15500
15522
  },
15501
15523
 
15502
15524
  mounted: function mounted () {
@@ -18014,7 +18036,7 @@
18014
18036
 
18015
18037
  methods: {
18016
18038
  __begin: function __begin (el, height, done) {
18017
- el.style.overflowY = 'hidden';
18039
+ // here overflowY is 'hidden'
18018
18040
  if (height !== void 0) {
18019
18041
  el.style.height = height + "px";
18020
18042
  }
@@ -18061,12 +18083,14 @@
18061
18083
  var pos = 0;
18062
18084
  this$1.el = el;
18063
18085
 
18086
+ // if animationg overflowY is already 'hidden'
18064
18087
  if (this$1.animating === true) {
18065
18088
  this$1.__cleanup();
18066
18089
  pos = el.offsetHeight === el.scrollHeight ? 0 : void 0;
18067
18090
  }
18068
18091
  else {
18069
18092
  this$1.lastEvent = 'hide';
18093
+ el.style.overflowY = 'hidden';
18070
18094
  }
18071
18095
 
18072
18096
  this$1.__begin(el, pos, done);
@@ -18092,6 +18116,9 @@
18092
18116
  }
18093
18117
  else {
18094
18118
  this$1.lastEvent = 'show';
18119
+ // we need to set overflowY 'hidden' before calculating the height
18120
+ // or else we get small differences
18121
+ el.style.overflowY = 'hidden';
18095
18122
  pos = el.scrollHeight;
18096
18123
  }
18097
18124
 
@@ -20867,6 +20894,7 @@
20867
20894
  imgStyle: Object,
20868
20895
 
20869
20896
  nativeContextMenu: Boolean,
20897
+ notDraggable: Boolean,
20870
20898
 
20871
20899
  noDefaultSpinner: Boolean,
20872
20900
  spinnerColor: String,
@@ -20906,6 +20934,14 @@
20906
20934
  return att
20907
20935
  },
20908
20936
 
20937
+ imgAttrs: function imgAttrs () {
20938
+ var att = { src: this.url, 'aria-hidden': 'true' };
20939
+ if (this.notDraggable === true) {
20940
+ att.draggable = false;
20941
+ }
20942
+ return att
20943
+ },
20944
+
20909
20945
  imgContainerStyle: function imgContainerStyle () {
20910
20946
  return Object.assign(
20911
20947
  {
@@ -21062,7 +21098,7 @@
21062
21098
  ? [
21063
21099
  h('img', {
21064
21100
  staticClass: 'absolute-full fit',
21065
- attrs: { src: this.url, 'aria-hidden': 'true' }
21101
+ attrs: this.imgAttrs
21066
21102
  })
21067
21103
  ]
21068
21104
  : void 0;
@@ -21188,6 +21224,12 @@
21188
21224
  }
21189
21225
  },
21190
21226
 
21227
+ computed: {
21228
+ renderLoadingSlot: function renderLoadingSlot () {
21229
+ return this.disable !== true && this.isWorking === true
21230
+ }
21231
+ },
21232
+
21191
21233
  watch: {
21192
21234
  disable: function disable (val) {
21193
21235
  if (val === true) { this.stop(); }
@@ -21206,6 +21248,14 @@
21206
21248
 
21207
21249
  debounce: function debounce (val) {
21208
21250
  this.__setDebounce(val);
21251
+ },
21252
+
21253
+ isFetching: function isFetching () {
21254
+ this.__updateSvgAnimations();
21255
+ },
21256
+
21257
+ renderLoadingSlot: function renderLoadingSlot () {
21258
+ this.__updateSvgAnimations();
21209
21259
  }
21210
21260
  },
21211
21261
 
@@ -21329,14 +21379,36 @@
21329
21379
 
21330
21380
  this.__scrollTarget.addEventListener('scroll', this.poll, passive$1);
21331
21381
  }
21382
+ },
21383
+
21384
+ __updateSvgAnimations: function __updateSvgAnimations (isRetry) {
21385
+ var this$1 = this;
21386
+
21387
+ if (this.renderLoadingSlot === true) {
21388
+ var el = this.$refs.loading;
21389
+
21390
+ if (!el) {
21391
+ isRetry !== true && this.$nextTick(function () {
21392
+ this$1.__updateSvgAnimations(true);
21393
+ });
21394
+ return
21395
+ }
21396
+
21397
+ // we need to pause svg animations (if any) when hiding
21398
+ // otherwise the browser will keep on recalculating the style
21399
+ var action = (this.isFetching === true ? 'un' : '') + "pauseAnimations";
21400
+ Array.from(el.getElementsByTagName('svg')).forEach(function (el) {
21401
+ el[ action ]();
21402
+ });
21403
+ }
21332
21404
  }
21333
21405
  },
21334
21406
 
21335
21407
  mounted: function mounted () {
21336
21408
  this.immediatePoll = this.poll;
21337
21409
  this.__setDebounce(this.debounce);
21338
-
21339
21410
  this.updateScrollTarget();
21411
+ this.isFetching === false && this.__updateSvgAnimations();
21340
21412
  },
21341
21413
 
21342
21414
  activated: function activated () {
@@ -21358,9 +21430,10 @@
21358
21430
  render: function render (h) {
21359
21431
  var child = uniqueSlot(this, 'default', []);
21360
21432
 
21361
- if (this.disable !== true && this.isWorking === true) {
21433
+ if (this.renderLoadingSlot === true) {
21362
21434
  child[this.reverse === false ? 'push' : 'unshift'](
21363
21435
  h('div', {
21436
+ ref: 'loading',
21364
21437
  staticClass: 'q-infinite-scroll__loading',
21365
21438
  class: this.isFetching === true ? '' : 'invisible'
21366
21439
  }, slot(this, 'loading'))
@@ -21642,7 +21715,7 @@
21642
21715
 
21643
21716
  this.computedMask = mask;
21644
21717
  this.computedUnmask = function (val) {
21645
- var unmaskMatch = unmaskMatcher.exec(this$1.reverseFillMask === true ? val : val.slice(0, mask.length));
21718
+ var unmaskMatch = unmaskMatcher.exec(this$1.reverseFillMask === true ? val : val.slice(0, mask.length + 1));
21646
21719
  if (unmaskMatch !== null) {
21647
21720
  val = unmaskMatch.slice(1).join('');
21648
21721
  }
@@ -39264,6 +39337,7 @@
39264
39337
  : h('div', {
39265
39338
  staticClass: 'q-bottom-sheet__item q-hoverable q-focusable cursor-pointer relative-position',
39266
39339
  class: action.classes,
39340
+ style: action.style,
39267
39341
  attrs: attrsGridItem,
39268
39342
  on: {
39269
39343
  click: function () {
@@ -39303,6 +39377,7 @@
39303
39377
  : h(QItem, {
39304
39378
  staticClass: 'q-bottom-sheet__item',
39305
39379
  class: action.classes,
39380
+ style: action.style,
39306
39381
  props: {
39307
39382
  tabindex: 0,
39308
39383
  clickable: true,