quasar 2.7.5 → 2.7.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 (134) hide show
  1. package/dist/api/QBtn.json +6 -0
  2. package/dist/api/QBtnDropdown.json +6 -0
  3. package/dist/api/QBtnGroup.json +6 -0
  4. package/dist/api/QExpansionItem.json +8 -1
  5. package/dist/icon-set/bootstrap-icons.umd.prod.js +1 -1
  6. package/dist/icon-set/eva-icons.umd.prod.js +1 -1
  7. package/dist/icon-set/fontawesome-v5-pro.umd.prod.js +1 -1
  8. package/dist/icon-set/fontawesome-v5.umd.prod.js +1 -1
  9. package/dist/icon-set/fontawesome-v6-pro.umd.prod.js +1 -1
  10. package/dist/icon-set/fontawesome-v6.umd.prod.js +1 -1
  11. package/dist/icon-set/ionicons-v4.umd.prod.js +1 -1
  12. package/dist/icon-set/line-awesome.umd.prod.js +1 -1
  13. package/dist/icon-set/material-icons-outlined.umd.prod.js +1 -1
  14. package/dist/icon-set/material-icons-round.umd.prod.js +1 -1
  15. package/dist/icon-set/material-icons-sharp.umd.prod.js +1 -1
  16. package/dist/icon-set/material-icons.umd.prod.js +1 -1
  17. package/dist/icon-set/material-symbols-outlined.umd.prod.js +1 -1
  18. package/dist/icon-set/material-symbols-rounded.umd.prod.js +1 -1
  19. package/dist/icon-set/material-symbols-sharp.umd.prod.js +1 -1
  20. package/dist/icon-set/mdi-v3.umd.prod.js +1 -1
  21. package/dist/icon-set/mdi-v4.umd.prod.js +1 -1
  22. package/dist/icon-set/mdi-v5.umd.prod.js +1 -1
  23. package/dist/icon-set/mdi-v6.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-ionicons-v4.umd.prod.js +1 -1
  29. package/dist/icon-set/svg-ionicons-v5.umd.prod.js +1 -1
  30. package/dist/icon-set/svg-ionicons-v6.umd.prod.js +1 -1
  31. package/dist/icon-set/svg-line-awesome.umd.prod.js +1 -1
  32. package/dist/icon-set/svg-material-icons-outlined.umd.prod.js +1 -1
  33. package/dist/icon-set/svg-material-icons-round.umd.prod.js +1 -1
  34. package/dist/icon-set/svg-material-icons-sharp.umd.prod.js +1 -1
  35. package/dist/icon-set/svg-material-icons.umd.prod.js +1 -1
  36. package/dist/icon-set/svg-material-symbols-outlined.umd.prod.js +1 -1
  37. package/dist/icon-set/svg-material-symbols-rounded.umd.prod.js +1 -1
  38. package/dist/icon-set/svg-material-symbols-sharp.umd.prod.js +1 -1
  39. package/dist/icon-set/svg-mdi-v6.umd.prod.js +1 -1
  40. package/dist/icon-set/svg-themify.umd.prod.js +1 -1
  41. package/dist/icon-set/themify.umd.prod.js +1 -1
  42. package/dist/lang/ar-TN.umd.prod.js +1 -1
  43. package/dist/lang/ar.umd.prod.js +1 -1
  44. package/dist/lang/az-Latn.umd.prod.js +1 -1
  45. package/dist/lang/bg.umd.prod.js +1 -1
  46. package/dist/lang/bn.umd.prod.js +1 -1
  47. package/dist/lang/ca.umd.prod.js +1 -1
  48. package/dist/lang/cs.umd.prod.js +1 -1
  49. package/dist/lang/da.umd.prod.js +1 -1
  50. package/dist/lang/de.umd.prod.js +1 -1
  51. package/dist/lang/el.umd.prod.js +1 -1
  52. package/dist/lang/en-GB.umd.prod.js +1 -1
  53. package/dist/lang/en-US.umd.prod.js +1 -1
  54. package/dist/lang/eo.umd.prod.js +1 -1
  55. package/dist/lang/es.umd.prod.js +1 -1
  56. package/dist/lang/et.umd.prod.js +1 -1
  57. package/dist/lang/eu.umd.prod.js +1 -1
  58. package/dist/lang/fa-IR.umd.prod.js +1 -1
  59. package/dist/lang/fa.umd.prod.js +1 -1
  60. package/dist/lang/fi.umd.prod.js +1 -1
  61. package/dist/lang/fr.umd.prod.js +1 -1
  62. package/dist/lang/gn.umd.prod.js +1 -1
  63. package/dist/lang/he.umd.prod.js +1 -1
  64. package/dist/lang/hr.umd.prod.js +1 -1
  65. package/dist/lang/hu.umd.prod.js +1 -1
  66. package/dist/lang/id.umd.prod.js +1 -1
  67. package/dist/lang/is.umd.prod.js +1 -1
  68. package/dist/lang/it.umd.prod.js +1 -1
  69. package/dist/lang/ja.umd.prod.js +1 -1
  70. package/dist/lang/km.umd.prod.js +1 -1
  71. package/dist/lang/ko-KR.umd.prod.js +1 -1
  72. package/dist/lang/kur-CKB.umd.prod.js +1 -1
  73. package/dist/lang/kz.umd.prod.js +1 -1
  74. package/dist/lang/lt.umd.prod.js +1 -1
  75. package/dist/lang/lu.umd.prod.js +1 -1
  76. package/dist/lang/lv.umd.prod.js +1 -1
  77. package/dist/lang/ml.umd.prod.js +1 -1
  78. package/dist/lang/mm.umd.prod.js +1 -1
  79. package/dist/lang/ms.umd.prod.js +1 -1
  80. package/dist/lang/my.umd.prod.js +1 -1
  81. package/dist/lang/nb-NO.umd.prod.js +1 -1
  82. package/dist/lang/nl.umd.prod.js +1 -1
  83. package/dist/lang/pl.umd.prod.js +1 -1
  84. package/dist/lang/pt-BR.umd.prod.js +1 -1
  85. package/dist/lang/pt.umd.prod.js +1 -1
  86. package/dist/lang/ro.umd.prod.js +1 -1
  87. package/dist/lang/ru.umd.prod.js +1 -1
  88. package/dist/lang/sk.umd.prod.js +1 -1
  89. package/dist/lang/sl.umd.prod.js +1 -1
  90. package/dist/lang/sm.umd.prod.js +1 -1
  91. package/dist/lang/sr-CYR.umd.prod.js +1 -1
  92. package/dist/lang/sr.umd.prod.js +1 -1
  93. package/dist/lang/sv.umd.prod.js +1 -1
  94. package/dist/lang/ta.umd.prod.js +1 -1
  95. package/dist/lang/th.umd.prod.js +1 -1
  96. package/dist/lang/tr.umd.prod.js +1 -1
  97. package/dist/lang/ug.umd.prod.js +1 -1
  98. package/dist/lang/uk.umd.prod.js +1 -1
  99. package/dist/lang/uz-Cyrl.umd.prod.js +1 -1
  100. package/dist/lang/uz-Latn.umd.prod.js +1 -1
  101. package/dist/lang/vi.umd.prod.js +1 -1
  102. package/dist/lang/zh-CN.umd.prod.js +1 -1
  103. package/dist/lang/zh-TW.umd.prod.js +1 -1
  104. package/dist/quasar.cjs.prod.js +2 -2
  105. package/dist/quasar.css +6 -0
  106. package/dist/quasar.esm.prod.js +2 -2
  107. package/dist/quasar.prod.css +1 -1
  108. package/dist/quasar.rtl.css +8 -0
  109. package/dist/quasar.rtl.prod.css +1 -1
  110. package/dist/quasar.sass +5 -1
  111. package/dist/quasar.umd.js +61 -37
  112. package/dist/quasar.umd.prod.js +2 -2
  113. package/dist/types/api/qtable.d.ts +4 -4
  114. package/dist/types/index.d.ts +19 -1
  115. package/dist/vetur/quasar-attributes.json +12 -0
  116. package/dist/vetur/quasar-tags.json +3 -0
  117. package/dist/web-types/web-types.json +31 -1
  118. package/package.json +1 -1
  119. package/src/components/btn/QBtn.sass +3 -0
  120. package/src/components/btn/use-btn.js +7 -2
  121. package/src/components/btn/use-btn.json +5 -0
  122. package/src/components/btn-dropdown/QBtnDropdown.js +1 -0
  123. package/src/components/btn-group/QBtnGroup.js +2 -1
  124. package/src/components/btn-group/QBtnGroup.json +5 -0
  125. package/src/components/btn-group/QBtnGroup.sass +3 -0
  126. package/src/components/expansion-item/QExpansionItem.js +1 -1
  127. package/src/components/expansion-item/QExpansionItem.json +8 -1
  128. package/src/components/file/QFile.js +5 -0
  129. package/src/components/select/QSelect.js +1 -0
  130. package/src/components/tabs/use-tab.js +8 -1
  131. package/src/components/uploader/uploader-core.js +3 -3
  132. package/src/composables/private/use-refocus-target.js +1 -1
  133. package/src/directives/Ripple.js +17 -7
  134. package/src/utils/private/global-dialog.js +13 -19
@@ -1,12 +1,12 @@
1
1
  // Error on "quasar" import shown in IDE is normal, as we only have Components/Directives/Plugins types after the build step
2
2
  // The import will work correctly at runtime
3
- import { QTable } from "quasar";
3
+ import { QTableProps } from "quasar";
4
4
 
5
5
  export type QTableColumn<
6
6
  Row extends Record<string, any> = any,
7
- K = Row extends Record<string, any> ? keyof Row : string,
8
- Field = K | ((row: Row) => any)
9
- > = Omit<NonNullable<QTable["columns"]>[0], "field" | "format"> & {
7
+ Key = keyof Row extends string ? keyof Row : string,
8
+ Field = Key | ((row: Row) => any)
9
+ > = Omit<NonNullable<QTableProps["columns"]>[number], "field" | "format"> & {
10
10
  field: Field;
11
11
  format?: (val: any, row: Row) => string;
12
12
  };
@@ -1222,6 +1222,10 @@ export interface QBtnDropdownProps {
1222
1222
  * Use 'push' design
1223
1223
  */
1224
1224
  push?: boolean | undefined;
1225
+ /**
1226
+ * Removes border-radius so borders are squared
1227
+ */
1228
+ square?: boolean | undefined;
1225
1229
  /**
1226
1230
  * Applies a glossy effect
1227
1231
  */
@@ -1468,6 +1472,10 @@ export interface QBtnGroupProps {
1468
1472
  * Applies a more prominent border-radius for squared shape buttons
1469
1473
  */
1470
1474
  rounded?: boolean | undefined;
1475
+ /**
1476
+ * Removes border-radius so borders are squared
1477
+ */
1478
+ square?: boolean | undefined;
1471
1479
  /**
1472
1480
  * Use 'push' design for buttons
1473
1481
  */
@@ -1701,6 +1709,10 @@ export interface QBtnProps {
1701
1709
  * Use 'push' design
1702
1710
  */
1703
1711
  push?: boolean | undefined;
1712
+ /**
1713
+ * Removes border-radius so borders are squared
1714
+ */
1715
+ square?: boolean | undefined;
1704
1716
  /**
1705
1717
  * Applies a glossy effect
1706
1718
  */
@@ -3664,8 +3676,14 @@ export interface QExpansionItemSlots {
3664
3676
  default: () => VNode[];
3665
3677
  /**
3666
3678
  * Slot used for overriding default header
3679
+ * @param scope
3667
3680
  */
3668
- header: () => VNode[];
3681
+ header: (scope: {
3682
+ /**
3683
+ * QExpansionItem expanded status
3684
+ */
3685
+ expanded: boolean;
3686
+ }) => VNode[];
3669
3687
  }
3670
3688
 
3671
3689
  export interface QExpansionItem
@@ -239,6 +239,10 @@
239
239
  "type": "boolean",
240
240
  "description": "Use 'push' design"
241
241
  },
242
+ "q-btn-dropdown/square": {
243
+ "type": "boolean",
244
+ "description": "Removes border-radius so borders are squared"
245
+ },
242
246
  "q-btn-dropdown/glossy": {
243
247
  "type": "boolean",
244
248
  "description": "Applies a glossy effect"
@@ -379,6 +383,10 @@
379
383
  "type": "boolean",
380
384
  "description": "Applies a more prominent border-radius for squared shape buttons"
381
385
  },
386
+ "q-btn-group/square": {
387
+ "type": "boolean",
388
+ "description": "Removes border-radius so borders are squared"
389
+ },
382
390
  "q-btn-group/push": {
383
391
  "type": "boolean",
384
392
  "description": "Use 'push' design for buttons"
@@ -547,6 +555,10 @@
547
555
  "type": "boolean",
548
556
  "description": "Use 'push' design"
549
557
  },
558
+ "q-btn/square": {
559
+ "type": "boolean",
560
+ "description": "Removes border-radius so borders are squared"
561
+ },
550
562
  "q-btn/glossy": {
551
563
  "type": "boolean",
552
564
  "description": "Applies a glossy effect"
@@ -96,6 +96,7 @@
96
96
  "unelevated",
97
97
  "rounded",
98
98
  "push",
99
+ "square",
99
100
  "glossy",
100
101
  "fab",
101
102
  "fab-mini",
@@ -136,6 +137,7 @@
136
137
  "flat",
137
138
  "unelevated",
138
139
  "rounded",
140
+ "square",
139
141
  "push",
140
142
  "stretch",
141
143
  "glossy"
@@ -188,6 +190,7 @@
188
190
  "unelevated",
189
191
  "rounded",
190
192
  "push",
193
+ "square",
191
194
  "glossy",
192
195
  "fab",
193
196
  "fab-mini",
@@ -2,7 +2,7 @@
2
2
  "$schema": "",
3
3
  "framework": "vue",
4
4
  "name": "quasar",
5
- "version": "2.7.5",
5
+ "version": "2.7.6",
6
6
  "contributions": {
7
7
  "html": {
8
8
  "types-syntax": "typescript",
@@ -735,6 +735,16 @@
735
735
  "doc-url": "https://v2.quasar.dev/vue-components/button-dropdown",
736
736
  "type": "boolean"
737
737
  },
738
+ {
739
+ "name": "square",
740
+ "value": {
741
+ "kind": "expression",
742
+ "type": "boolean"
743
+ },
744
+ "description": "Removes border-radius so borders are squared",
745
+ "doc-url": "https://v2.quasar.dev/vue-components/button-dropdown",
746
+ "type": "boolean"
747
+ },
738
748
  {
739
749
  "name": "glossy",
740
750
  "value": {
@@ -1180,6 +1190,16 @@
1180
1190
  "doc-url": "https://v2.quasar.dev/vue-components/button-group",
1181
1191
  "type": "boolean"
1182
1192
  },
1193
+ {
1194
+ "name": "square",
1195
+ "value": {
1196
+ "kind": "expression",
1197
+ "type": "boolean"
1198
+ },
1199
+ "description": "Removes border-radius so borders are squared",
1200
+ "doc-url": "https://v2.quasar.dev/vue-components/button-group",
1201
+ "type": "boolean"
1202
+ },
1183
1203
  {
1184
1204
  "name": "push",
1185
1205
  "value": {
@@ -1648,6 +1668,16 @@
1648
1668
  "doc-url": "https://v2.quasar.dev/vue-components/button",
1649
1669
  "type": "boolean"
1650
1670
  },
1671
+ {
1672
+ "name": "square",
1673
+ "value": {
1674
+ "kind": "expression",
1675
+ "type": "boolean"
1676
+ },
1677
+ "description": "Removes border-radius so borders are squared",
1678
+ "doc-url": "https://v2.quasar.dev/vue-components/button",
1679
+ "type": "boolean"
1680
+ },
1651
1681
  {
1652
1682
  "name": "glossy",
1653
1683
  "value": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "quasar",
3
- "version": "2.7.5",
3
+ "version": "2.7.6",
4
4
  "description": "Build high-performance VueJS user interfaces (SPA, PWA, SSR, Mobile and Desktop) in record time",
5
5
  "main": "dist/quasar.cjs.prod.js",
6
6
  "module": "dist/quasar.esm.prod.js",
@@ -94,6 +94,9 @@
94
94
  min-width: 3em
95
95
  min-height: 3em
96
96
 
97
+ &--square
98
+ border-radius: 0
99
+
97
100
  &--flat, &--outline, &--unelevated
98
101
  &:before
99
102
  box-shadow: none
@@ -38,6 +38,7 @@ export const useBtnProps = {
38
38
  iconRight: String,
39
39
 
40
40
  round: Boolean,
41
+ square: Boolean,
41
42
  outline: Boolean,
42
43
  flat: Boolean,
43
44
  unelevated: Boolean,
@@ -171,8 +172,11 @@ export default function (props) {
171
172
  colors = `text-${ props.textColor }`
172
173
  }
173
174
 
174
- return `q-btn--${ design.value } `
175
- + `q-btn--${ props.round === true ? 'round' : `rectangle${ isRounded.value === true ? ' q-btn--rounded' : '' }` }`
175
+ const shape = props.round === true
176
+ ? 'round'
177
+ : `rectangle${ isRounded.value === true ? ' q-btn--rounded' : (props.square === true ? ' q-btn--square' : '') }`
178
+
179
+ return `q-btn--${ design.value } q-btn--${ shape }`
176
180
  + (colors !== void 0 ? ' ' + colors : '')
177
181
  + (isActionable.value === true ? ' q-btn--actionable q-focusable q-hoverable' : (props.disable === true ? ' disabled' : ''))
178
182
  + (props.fab === true ? ' q-btn--fab' : (props.fabMini === true ? ' q-btn--fab-mini' : ''))
@@ -180,6 +184,7 @@ export default function (props) {
180
184
  + (props.dense === true ? ' q-btn--dense' : '')
181
185
  + (props.stretch === true ? ' no-border-radius self-stretch' : '')
182
186
  + (props.glossy === true ? ' glossy' : '')
187
+ + (props.square ? ' q-btn--square' : '')
183
188
  })
184
189
 
185
190
  const innerClasses = computed(() =>
@@ -91,6 +91,11 @@
91
91
  "category": "style"
92
92
  },
93
93
 
94
+ "square": {
95
+ "extends": "square",
96
+ "addedIn": "v2.7.6"
97
+ },
98
+
94
99
  "glossy": {
95
100
  "type": "Boolean",
96
101
  "desc": "Applies a glossy effect",
@@ -181,6 +181,7 @@ export default createComponent({
181
181
  outline: props.outline,
182
182
  flat: props.flat,
183
183
  rounded: props.rounded,
184
+ square: props.square,
184
185
  push: props.push,
185
186
  unelevated: props.unelevated,
186
187
  glossy: props.glossy,
@@ -11,6 +11,7 @@ export default createComponent({
11
11
  outline: Boolean,
12
12
  flat: Boolean,
13
13
  rounded: Boolean,
14
+ square: Boolean,
14
15
  push: Boolean,
15
16
  stretch: Boolean,
16
17
  glossy: Boolean,
@@ -19,7 +20,7 @@ export default createComponent({
19
20
 
20
21
  setup (props, { slots }) {
21
22
  const classes = computed(() => {
22
- const cls = [ 'unelevated', 'outline', 'flat', 'rounded', 'push', 'stretch', 'glossy' ]
23
+ const cls = [ 'unelevated', 'outline', 'flat', 'rounded', 'square', 'push', 'stretch', 'glossy' ]
23
24
  .filter(t => props[ t ] === true)
24
25
  .map(t => `q-btn-group--${ t }`).join(' ')
25
26
 
@@ -34,6 +34,11 @@
34
34
  "category": "style"
35
35
  },
36
36
 
37
+ "square": {
38
+ "extends": "square",
39
+ "addedIn": "v2.7.6"
40
+ },
41
+
37
42
  "push": {
38
43
  "type": "Boolean",
39
44
  "desc": "Use 'push' design for buttons",
@@ -56,6 +56,9 @@
56
56
  &--rounded
57
57
  border-radius: $button-rounded-border-radius
58
58
 
59
+ &--square
60
+ border-radius: 0
61
+
59
62
  &--flat, &--outline, &--unelevated
60
63
  box-shadow: none
61
64
 
@@ -235,7 +235,7 @@ export default createComponent({
235
235
  let child
236
236
 
237
237
  if (slots.header !== void 0) {
238
- child = [].concat(slots.header())
238
+ child = [].concat(slots.header({ expanded: showing.value === true }))
239
239
  }
240
240
  else {
241
241
  child = [
@@ -163,7 +163,14 @@
163
163
  },
164
164
 
165
165
  "header": {
166
- "desc": "Slot used for overriding default header"
166
+ "desc": "Slot used for overriding default header",
167
+ "scope": {
168
+ "expanded": {
169
+ "type": "Boolean",
170
+ "desc": "QExpansionItem expanded status",
171
+ "addedIn": "v2.7.6"
172
+ }
173
+ }
167
174
  }
168
175
  },
169
176
 
@@ -147,6 +147,11 @@ export default createComponent({
147
147
 
148
148
  function addFilesToQueue (e, fileList) {
149
149
  const files = processFiles(e, fileList, innerValue.value, isAppending.value)
150
+ const fileInput = getFileInput()
151
+
152
+ if (fileInput !== void 0 && fileInput !== null) {
153
+ fileInput.value = ''
154
+ }
150
155
 
151
156
  // if nothing to do...
152
157
  if (files === void 0) { return }
@@ -1439,6 +1439,7 @@ export default createComponent({
1439
1439
 
1440
1440
  floatingLabel: computed(() =>
1441
1441
  (props.hideSelected !== true && hasValue.value === true)
1442
+ || typeof inputValue.value === 'number'
1442
1443
  || inputValue.value.length > 0
1443
1444
  || fieldValueIsFilled(props.displayValue)
1444
1445
  ),
@@ -138,9 +138,16 @@ export default function (props, slots, emit, routerProps) {
138
138
  if (isKeyCode(e, [ 13, 32 ])) {
139
139
  onClick(e, true)
140
140
  }
141
- else if (shouldIgnoreKey(e) !== true && e.keyCode >= 35 && e.keyCode <= 40) {
141
+ else if (
142
+ shouldIgnoreKey(e) !== true
143
+ && e.keyCode >= 35
144
+ && e.keyCode <= 40
145
+ && e.altKey !== true
146
+ && e.metaKey !== true
147
+ ) {
142
148
  $tabs.onKbdNavigate(e.keyCode, proxy.$el) === true && stopAndPrevent(e)
143
149
  }
150
+
144
151
  emit('keydown', e)
145
152
  }
146
153
 
@@ -264,14 +264,14 @@ export function getRenderer (getPlugin) {
264
264
 
265
265
  function addFilesToQueue (e, fileList) {
266
266
  const localFiles = processFiles(e, fileList, state.files.value, true)
267
-
268
- if (localFiles === void 0) { return }
269
-
270
267
  const fileInput = getFileInput()
268
+
271
269
  if (fileInput !== void 0 && fileInput !== null) {
272
270
  fileInput.value = ''
273
271
  }
274
272
 
273
+ if (localFiles === void 0) { return }
274
+
275
275
  localFiles.forEach(file => {
276
276
  state.updateFileStatus(file, 'idle')
277
277
  uploadSize.value += file.size
@@ -4,7 +4,7 @@ export default function (props, rootRef) {
4
4
  const refocusRef = ref(null)
5
5
 
6
6
  const refocusTargetEl = computed(() => {
7
- if (props.disable !== true) {
7
+ if (props.disable === true) {
8
8
  return null
9
9
  }
10
10
 
@@ -78,8 +78,14 @@ export default createDirective(__QUASAR_SSR_SERVER__
78
78
  name: 'ripple',
79
79
 
80
80
  beforeMount (el, binding) {
81
+ const cfg = binding.instance.$.appContext.config.globalProperties.$q.config || {}
82
+
83
+ if (cfg.ripple === false) {
84
+ return
85
+ }
86
+
81
87
  const ctx = {
82
- cfg: binding.instance.$.appContext.config.globalProperties.$q.config,
88
+ cfg,
83
89
  enabled: binding.value !== false,
84
90
  modifiers: {},
85
91
  abort: [],
@@ -121,19 +127,23 @@ export default createDirective(__QUASAR_SSR_SERVER__
121
127
  updated (el, binding) {
122
128
  if (binding.oldValue !== binding.value) {
123
129
  const ctx = el.__qripple
124
- ctx.enabled = binding.value !== false
130
+ if (ctx !== void 0) {
131
+ ctx.enabled = binding.value !== false
125
132
 
126
- if (ctx.enabled === true && Object(binding.value) === binding.value) {
127
- updateModifiers(ctx, binding)
133
+ if (ctx.enabled === true && Object(binding.value) === binding.value) {
134
+ updateModifiers(ctx, binding)
135
+ }
128
136
  }
129
137
  }
130
138
  },
131
139
 
132
140
  beforeUnmount (el) {
133
141
  const ctx = el.__qripple
134
- ctx.abort.forEach(fn => { fn() })
135
- cleanEvt(ctx, 'main')
136
- delete el._qripple
142
+ if (ctx !== void 0) {
143
+ ctx.abort.forEach(fn => { fn() })
144
+ cleanEvt(ctx, 'main')
145
+ delete el._qripple
146
+ }
137
147
  }
138
148
  }
139
149
  )
@@ -1,4 +1,4 @@
1
- import { h, ref, nextTick } from 'vue'
1
+ import { h, ref } from 'vue'
2
2
 
3
3
  import { createChildApp } from '../../install-quasar.js'
4
4
  import { createGlobalNode, removeGlobalNode } from './global-nodes.js'
@@ -73,10 +73,10 @@ export default function (DefaultComponent, supportsCustomComponent, parentApp) {
73
73
 
74
74
  // account for "script setup" + async component way of declaring component
75
75
  if (
76
- target.component.subTree &&
77
- target.component.subTree.component &&
78
- target.component.subTree.component.proxy &&
79
- target.component.subTree.component.proxy[ cmd ]
76
+ target.component.subTree
77
+ && target.component.subTree.component
78
+ && target.component.subTree.component.proxy
79
+ && target.component.subTree.component.proxy[ cmd ]
80
80
  ) {
81
81
  target.component.subTree.component.proxy[ cmd ]()
82
82
  return
@@ -149,25 +149,19 @@ export default function (DefaultComponent, supportsCustomComponent, parentApp) {
149
149
  ...props,
150
150
  ref: dialogRef,
151
151
  onOk,
152
- onHide
152
+ onHide,
153
+ onVnodeMounted (...args) {
154
+ if (typeof props.onVnodeMounted === 'function') {
155
+ props.onVnodeMounted(...args)
156
+ }
157
+
158
+ applyState('show')
159
+ }
153
160
  })
154
161
  }, parentApp)
155
162
 
156
163
  vm = app.mount(el)
157
164
 
158
- function show () {
159
- applyState('show')
160
- }
161
-
162
- if (typeof DialogComponent.__asyncLoader === 'function') {
163
- DialogComponent.__asyncLoader().then(() => {
164
- nextTick(show)
165
- })
166
- }
167
- else {
168
- nextTick(show)
169
- }
170
-
171
165
  return API
172
166
  }
173
167
  }