Skip to content

Commit 6805244

Browse files
committed
Merge remote-tracking branch 'origin/dev' into dev
2 parents 5a930d9 + 5636cba commit 6805244

File tree

10 files changed

+45
-22
lines changed

10 files changed

+45
-22
lines changed

docs/src/components/Codepen.vue

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,14 +52,39 @@ export default {
5252
},
5353
5454
js () {
55-
const imports = /(import*) ([^'\n]*) from ([^\n]*)/g
55+
const importsQ = /import\s+{([^}'\n]+)}\s+from\s+'quasar'/g
56+
const imports = /import ([^'\n]*) from ([^\n]*)/g
5657
let component = /export default {([\s\S]*)}/g.exec(this.parts.script || '')
5758
component = ((component && component[1]) || '').trim()
5859
if (component.length > 0) {
5960
component = ',\n ' + component
6061
}
6162
let script = /<script>([\s\S]*)export default {/g.exec(this.parts.script || '')
6263
script = ((script && script[1]) || '')
64+
.replace(importsQ, function (match, p1) {
65+
const parts = p1
66+
.split(',')
67+
.map(p => p.trim())
68+
.filter(p => p.length > 0)
69+
.reduce((acc, p) => {
70+
if (p[0] === 'Q') {
71+
acc.c.push(p)
72+
}
73+
else {
74+
acc.u.push(p)
75+
}
76+
return acc
77+
}, { c: [], u: [] })
78+
79+
const text = []
80+
if (parts.c.length > 0) {
81+
text.push('const { ' + parts.c.join(', ') + ' } = Quasar.components')
82+
}
83+
if (parts.u.length > 0) {
84+
text.push('const { ' + parts.u.join(', ') + ' } = Quasar')
85+
}
86+
return text.join('\n')
87+
})
6388
.replace(imports, '')
6489
.trim()
6590
script += script ? '\n\n' : ''
@@ -76,7 +101,7 @@ export default {
76101
.replace(/([\w]+=")([^"]*?)(")/g, function (match, p1, p2, p3) {
77102
return p1 + p2.replace(/>/g, '___TEMP_REPLACEMENT___') + p3
78103
})
79-
.replace(/<(q-[\w-]+|div)([^>]+?)\s*?([\r\n]+\s*)?\/>/g, '<$1$2$3></$1>')
104+
.replace(/<(q-[\w-]+|div)([^>]*?)\s*?([\r\n][\t ]+)?\/>/g, '<$1$2$3></$1>')
80105
.replace(/<(thead|tbody)(.*?)[\n\r]?(\s*)<\/\1>/g, function (match, p1, p2, p3) {
81106
return '<template>\n' + p3 + ' <' + p1 + p2.split(/[\n\r]+/g).join('\n ') + '\n' + p3 + ' </' + p1 + '>\n' + p3 + '</template>'
82107
})

docs/src/examples/Loading/Customized.vue

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,8 @@ import { QSpinnerFacebook } from 'quasar'
1010
export default {
1111
methods: {
1212
showLoading () {
13-
/* This is for Codepen (using UMD) to work */
14-
const spinner = typeof QSpinnerFacebook !== 'undefined'
15-
? QSpinnerFacebook // Non-UMD, imported above
16-
: Quasar.components.QSpinnerFacebook // eslint-disable-line
17-
/* End of Codepen workaround */
18-
1913
this.$q.loading.show({
20-
spinner,
14+
spinner: QSpinnerFacebook,
2115
spinnerColor: 'yellow',
2216
spinnerSize: 140,
2317
backgroundColor: 'purple',

docs/src/examples/Loading/ShowAndChange.vue

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,13 @@ import { QSpinnerGears } from 'quasar'
1010
export default {
1111
methods: {
1212
showLoading () {
13-
/* This is for Codepen (using UMD) to work */
14-
const spinner = typeof QSpinnerGears !== 'undefined'
15-
? QSpinnerGears
16-
: Quasar.components.QSpinnerGears // eslint-disable-line
17-
/* End of Codepen workaround */
18-
1913
this.$q.loading.show({
2014
message: 'First message. Gonna change it in 3 seconds...'
2115
})
2216
2317
this.timer = setTimeout(() => {
2418
this.$q.loading.show({
25-
spinner,
19+
spinner: QSpinnerGears,
2620
spinnerColor: 'red',
2721
messageColor: 'black',
2822
backgroundColor: 'yellow',

docs/src/pages/vue-components/table.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -341,7 +341,7 @@ In the example below, steps have been taken to emulate an ajax call to a server.
341341

342342
Below is an example of a naive csv encoding and then exporting table data by using the [exportFile](/quasar-utils/other-utils#Export-file) Quasar util. The browser should trigger a file download. For a more professional approach in regards to encoding we do recommend using [csv-parse](https://csv.js.org/parse/) and [csv-stringify](https://csv.js.org/stringify/) packages.
343343

344-
<doc-example title="Export to csv" file="QTable/ExportCsv" no-edit />
344+
<doc-example title="Export to csv" file="QTable/ExportCsv" />
345345

346346
## Keyboard navigation
347347

ui/src/components/ajax-bar/QAjaxBar.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import Vue from 'vue'
22

33
import { between } from '../../utils/format.js'
44
import { isSSR } from '../../plugins/Platform.js'
5+
import { ariaHidden } from '../../mixins/attrs'
56

67
const
78
xhr = isSSR ? null : XMLHttpRequest,
@@ -145,9 +146,7 @@ export default Vue.extend({
145146
'aria-valuemax': 100,
146147
'aria-valuenow': this.progress
147148
}
148-
: {
149-
'aria-hidden': 'true'
150-
}
149+
: ariaHidden
151150
}
152151
},
153152

ui/src/components/dialog/QDialog.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import HistoryMixin from '../../mixins/history.js'
44
import ModelToggleMixin from '../../mixins/model-toggle.js'
55
import PortalMixin from '../../mixins/portal.js'
66
import PreventScrollMixin from '../../mixins/prevent-scroll.js'
7-
import AttrsMixin from '../../mixins/attrs.js'
7+
import AttrsMixin, { ariaHidden } from '../../mixins/attrs.js'
88

99
import { childHasFocus } from '../../utils/dom.js'
1010
import EscapeKey from '../../utils/escape-key.js'
@@ -344,6 +344,7 @@ export default Vue.extend({
344344
}, this.useBackdrop === true ? [
345345
h('div', {
346346
staticClass: 'q-dialog__backdrop fixed-full',
347+
attrs: ariaHidden,
347348
on: cache(this, 'bkdrop', {
348349
click: this.__onBackdropClick
349350
})

ui/src/components/drawer/QDrawer.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import TouchPan from '../../directives/TouchPan.js'
1010
import { between } from '../../utils/format.js'
1111
import { slot } from '../../utils/slot.js'
1212
import cache from '../../utils/cache.js'
13+
import { ariaHidden } from '../../mixins/attrs'
1314

1415
const duration = 150
1516

@@ -653,6 +654,7 @@ export default Vue.extend({
653654
this.noSwipeOpen !== true && child.push(
654655
h('div', {
655656
staticClass: `q-drawer__opener fixed-${this.side}`,
657+
attrs: ariaHidden,
656658
directives: this.openDirective
657659
})
658660
)
@@ -662,6 +664,7 @@ export default Vue.extend({
662664
ref: 'backdrop',
663665
staticClass: 'fullscreen q-drawer__backdrop',
664666
class: this.backdropClass,
667+
attrs: ariaHidden,
665668
style: this.lastBackdropBg !== void 0
666669
? { backgroundColor: this.lastBackdropBg }
667670
: null,

ui/src/components/scroll-area/QScrollArea.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import QResizeObserver from '../resize-observer/QResizeObserver.js'
1010
import QScrollObserver from '../scroll-observer/QScrollObserver.js'
1111
import TouchPan from '../../directives/TouchPan.js'
1212
import DarkMixin from '../../mixins/dark.js'
13+
import { ariaHidden } from '../../mixins/attrs'
1314

1415
export default Vue.extend({
1516
name: 'QScrollArea',
@@ -272,6 +273,7 @@ export default Vue.extend({
272273
staticClass: 'q-scrollarea__bar',
273274
style: this.barStyle,
274275
class: this.barClass,
276+
attrs: ariaHidden,
275277
on: cache(this, 'bar', {
276278
mousedown: this.__mouseDown
277279
})
@@ -282,6 +284,7 @@ export default Vue.extend({
282284
staticClass: 'q-scrollarea__thumb',
283285
style: this.style,
284286
class: this.thumbClass,
287+
attrs: ariaHidden,
285288
directives: cache(this, 'thumb#' + this.horizontal, [{
286289
name: 'touch-pan',
287290
modifiers: {

ui/src/components/select/QSelect.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import CompositionMixin from '../../mixins/composition.js'
2424
import ListenersMixin from '../../mixins/listeners.js'
2525

2626
const validateNewValueMode = v => ['add', 'add-unique', 'toggle'].includes(v)
27+
const reEscapeList = '.*+?^${}()|[]\\'
2728

2829
export default Vue.extend({
2930
name: 'QSelect',
@@ -680,7 +681,7 @@ export default Vue.extend({
680681
this.searchBuffer += char
681682
}
682683

683-
const searchRe = new RegExp('^\\' + this.searchBuffer.split('').join('.*\\'), 'i')
684+
const searchRe = new RegExp('^' + this.searchBuffer.split('').map(l => reEscapeList.indexOf(l) > -1 ? '\\' + l : l).join('.*'), 'i')
684685

685686
let index = this.optionIndex
686687

ui/src/mixins/attrs.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,5 @@
11
import { getPropCacheMixin } from '../utils/cache.js'
2+
3+
export const ariaHidden = { 'aria-hidden': 'true' }
4+
25
export default getPropCacheMixin('$attrs', 'qAttrs')

0 commit comments

Comments
 (0)