quasar 2.9.1 → 2.9.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.
- package/dist/api/QTree.json +6 -0
- package/dist/api/TouchPan.json +0 -4
- package/dist/icon-set/bootstrap-icons.umd.prod.js +1 -1
- package/dist/icon-set/eva-icons.umd.prod.js +1 -1
- package/dist/icon-set/fontawesome-v5-pro.umd.prod.js +1 -1
- package/dist/icon-set/fontawesome-v5.umd.prod.js +1 -1
- package/dist/icon-set/fontawesome-v6-pro.umd.prod.js +1 -1
- package/dist/icon-set/fontawesome-v6.umd.prod.js +1 -1
- package/dist/icon-set/ionicons-v4.umd.prod.js +1 -1
- package/dist/icon-set/line-awesome.umd.prod.js +1 -1
- package/dist/icon-set/material-icons-outlined.umd.prod.js +1 -1
- package/dist/icon-set/material-icons-round.umd.prod.js +1 -1
- package/dist/icon-set/material-icons-sharp.umd.prod.js +1 -1
- package/dist/icon-set/material-icons.umd.prod.js +1 -1
- package/dist/icon-set/material-symbols-outlined.umd.prod.js +1 -1
- package/dist/icon-set/material-symbols-rounded.umd.prod.js +1 -1
- package/dist/icon-set/material-symbols-sharp.umd.prod.js +1 -1
- package/dist/icon-set/mdi-v3.umd.prod.js +1 -1
- package/dist/icon-set/mdi-v4.umd.prod.js +1 -1
- package/dist/icon-set/mdi-v5.umd.prod.js +1 -1
- package/dist/icon-set/mdi-v6.umd.prod.js +1 -1
- package/dist/icon-set/svg-bootstrap-icons.umd.prod.js +1 -1
- package/dist/icon-set/svg-eva-icons.umd.prod.js +1 -1
- package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +1 -1
- package/dist/icon-set/svg-fontawesome-v6.umd.prod.js +1 -1
- package/dist/icon-set/svg-ionicons-v4.umd.prod.js +1 -1
- package/dist/icon-set/svg-ionicons-v5.umd.prod.js +1 -1
- package/dist/icon-set/svg-ionicons-v6.umd.prod.js +1 -1
- package/dist/icon-set/svg-line-awesome.umd.prod.js +1 -1
- package/dist/icon-set/svg-material-icons-outlined.umd.prod.js +1 -1
- package/dist/icon-set/svg-material-icons-round.umd.prod.js +1 -1
- package/dist/icon-set/svg-material-icons-sharp.umd.prod.js +1 -1
- package/dist/icon-set/svg-material-icons.umd.prod.js +1 -1
- package/dist/icon-set/svg-material-symbols-outlined.umd.prod.js +1 -1
- package/dist/icon-set/svg-material-symbols-rounded.umd.prod.js +1 -1
- package/dist/icon-set/svg-material-symbols-sharp.umd.prod.js +1 -1
- package/dist/icon-set/svg-mdi-v6.umd.prod.js +1 -1
- package/dist/icon-set/svg-themify.umd.prod.js +1 -1
- package/dist/icon-set/themify.umd.prod.js +1 -1
- package/dist/lang/ar-TN.umd.prod.js +1 -1
- package/dist/lang/ar.umd.prod.js +1 -1
- package/dist/lang/az-Latn.umd.prod.js +1 -1
- package/dist/lang/bg.umd.prod.js +1 -1
- package/dist/lang/bn.umd.prod.js +1 -1
- package/dist/lang/ca.umd.prod.js +1 -1
- package/dist/lang/cs.umd.prod.js +1 -1
- package/dist/lang/da.umd.prod.js +1 -1
- package/dist/lang/de.umd.prod.js +1 -1
- package/dist/lang/el.umd.prod.js +1 -1
- package/dist/lang/en-GB.umd.prod.js +1 -1
- package/dist/lang/en-US.umd.prod.js +1 -1
- package/dist/lang/eo.umd.prod.js +1 -1
- package/dist/lang/es.umd.prod.js +1 -1
- package/dist/lang/et.umd.prod.js +1 -1
- package/dist/lang/eu.umd.prod.js +1 -1
- package/dist/lang/fa-IR.umd.prod.js +1 -1
- package/dist/lang/fa.umd.prod.js +1 -1
- package/dist/lang/fi.umd.prod.js +1 -1
- package/dist/lang/fr.umd.prod.js +1 -1
- package/dist/lang/gn.umd.prod.js +1 -1
- package/dist/lang/he.umd.prod.js +1 -1
- package/dist/lang/hr.umd.prod.js +1 -1
- package/dist/lang/hu.umd.prod.js +1 -1
- package/dist/lang/id.umd.prod.js +1 -1
- package/dist/lang/is.umd.prod.js +1 -1
- package/dist/lang/it.umd.prod.js +1 -1
- package/dist/lang/ja.umd.prod.js +1 -1
- package/dist/lang/km.umd.prod.js +1 -1
- package/dist/lang/ko-KR.umd.prod.js +1 -1
- package/dist/lang/kur-CKB.umd.prod.js +1 -1
- package/dist/lang/kz.umd.prod.js +1 -1
- package/dist/lang/lt.umd.prod.js +1 -1
- package/dist/lang/lu.umd.prod.js +1 -1
- package/dist/lang/lv.umd.prod.js +1 -1
- package/dist/lang/ml.umd.prod.js +1 -1
- package/dist/lang/mm.umd.prod.js +1 -1
- package/dist/lang/ms.umd.prod.js +1 -1
- package/dist/lang/my.umd.prod.js +1 -1
- package/dist/lang/nb-NO.umd.prod.js +1 -1
- package/dist/lang/nl.umd.prod.js +1 -1
- package/dist/lang/pl.umd.prod.js +1 -1
- package/dist/lang/pt-BR.umd.prod.js +1 -1
- package/dist/lang/pt.umd.prod.js +1 -1
- package/dist/lang/ro.umd.prod.js +1 -1
- package/dist/lang/ru.umd.prod.js +1 -1
- package/dist/lang/sk.umd.prod.js +1 -1
- package/dist/lang/sl.umd.prod.js +1 -1
- package/dist/lang/sm.umd.prod.js +1 -1
- package/dist/lang/sr-CYR.umd.prod.js +1 -1
- package/dist/lang/sr.umd.prod.js +1 -1
- package/dist/lang/sv.umd.prod.js +1 -1
- package/dist/lang/ta.umd.prod.js +1 -1
- package/dist/lang/th.umd.prod.js +1 -1
- package/dist/lang/tr.umd.prod.js +1 -1
- package/dist/lang/ug.umd.prod.js +1 -1
- package/dist/lang/uk.umd.prod.js +1 -1
- package/dist/lang/uz-Cyrl.umd.prod.js +1 -1
- package/dist/lang/uz-Latn.umd.prod.js +1 -1
- package/dist/lang/vi.umd.prod.js +1 -1
- package/dist/lang/zh-CN.umd.prod.js +1 -1
- package/dist/lang/zh-TW.umd.prod.js +1 -1
- package/dist/quasar.cjs.prod.js +2 -2
- package/dist/quasar.esm.js +108 -53
- package/dist/quasar.esm.prod.js +2 -2
- package/dist/quasar.sass +1 -1
- package/dist/quasar.umd.js +108 -53
- package/dist/quasar.umd.prod.js +2 -2
- package/dist/types/index.d.ts +4 -0
- package/dist/vetur/quasar-attributes.json +4 -0
- package/dist/vetur/quasar-tags.json +1 -0
- package/dist/web-types/web-types.json +11 -6
- package/package.json +1 -1
- package/src/components/badge/__tests__/QBadge.spec.js +98 -23
- package/src/components/input/use-mask.js +1 -1
- package/src/components/pull-to-refresh/QPullToRefresh.js +1 -4
- package/src/components/tabs/QTabs.js +2 -2
- package/src/components/tree/QTree.js +33 -20
- package/src/components/tree/QTree.json +7 -0
- package/src/directives/TouchHold.js +10 -3
- package/src/directives/TouchPan.js +21 -8
- package/src/directives/TouchPan.json +0 -5
- package/src/directives/TouchRepeat.js +20 -6
- package/src/directives/TouchSwipe.js +10 -3
- package/src/utils/morph.js +7 -3
package/dist/types/index.d.ts
CHANGED
|
@@ -12385,6 +12385,10 @@ export interface QTreeProps {
|
|
|
12385
12385
|
* Allows the tree to be set in accordion mode
|
|
12386
12386
|
*/
|
|
12387
12387
|
accordion?: boolean | undefined;
|
|
12388
|
+
/**
|
|
12389
|
+
* Turn off transition effects when expanding/collapsing nodes; Also enhances perf by a lot as a side-effect; Recommended for big trees
|
|
12390
|
+
*/
|
|
12391
|
+
noTransition?: boolean | undefined;
|
|
12388
12392
|
/**
|
|
12389
12393
|
* The text value to be used for filtering nodes
|
|
12390
12394
|
*/
|
|
@@ -5651,6 +5651,10 @@
|
|
|
5651
5651
|
"type": "boolean",
|
|
5652
5652
|
"description": "Allows the tree to be set in accordion mode"
|
|
5653
5653
|
},
|
|
5654
|
+
"q-tree/no-transition": {
|
|
5655
|
+
"type": "boolean",
|
|
5656
|
+
"description": "Turn off transition effects when expanding/collapsing nodes; Also enhances perf by a lot as a side-effect; Recommended for big trees"
|
|
5657
|
+
},
|
|
5654
5658
|
"q-tree/filter": {
|
|
5655
5659
|
"type": "string",
|
|
5656
5660
|
"description": "The text value to be used for filtering nodes"
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "",
|
|
3
3
|
"framework": "vue",
|
|
4
4
|
"name": "quasar",
|
|
5
|
-
"version": "2.9.
|
|
5
|
+
"version": "2.9.2",
|
|
6
6
|
"contributions": {
|
|
7
7
|
"html": {
|
|
8
8
|
"types-syntax": "typescript",
|
|
@@ -18237,6 +18237,16 @@
|
|
|
18237
18237
|
"doc-url": "https://v2.quasar.dev/vue-components/tree",
|
|
18238
18238
|
"type": "boolean"
|
|
18239
18239
|
},
|
|
18240
|
+
{
|
|
18241
|
+
"name": "no-transition",
|
|
18242
|
+
"value": {
|
|
18243
|
+
"kind": "expression",
|
|
18244
|
+
"type": "boolean"
|
|
18245
|
+
},
|
|
18246
|
+
"description": "Turn off transition effects when expanding/collapsing nodes; Also enhances perf by a lot as a side-effect; Recommended for big trees",
|
|
18247
|
+
"doc-url": "https://v2.quasar.dev/vue-components/tree",
|
|
18248
|
+
"type": "boolean"
|
|
18249
|
+
},
|
|
18240
18250
|
{
|
|
18241
18251
|
"name": "filter",
|
|
18242
18252
|
"value": {
|
|
@@ -19260,11 +19270,6 @@
|
|
|
19260
19270
|
"description": "Calls event.preventDefault() for touch events",
|
|
19261
19271
|
"doc-url": "https://v2.quasar.dev/vue-directives/touch-pan"
|
|
19262
19272
|
},
|
|
19263
|
-
{
|
|
19264
|
-
"name": "mightPrevent",
|
|
19265
|
-
"description": "Required when you might call event.preventDefault() in your handler for touch events",
|
|
19266
|
-
"doc-url": "https://v2.quasar.dev/vue-directives/touch-pan"
|
|
19267
|
-
},
|
|
19268
19273
|
{
|
|
19269
19274
|
"name": "capture",
|
|
19270
19275
|
"description": "Use capture for touchstart event",
|
package/package.json
CHANGED
|
@@ -1,64 +1,126 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { mount } from '@cypress/vue'
|
|
2
|
+
import QBadge from '../QBadge.js'
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
const defaultOptions = {
|
|
5
|
+
label: 'simple badge'
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
const alignValues = [ 'top', 'middle', 'bottom' ]
|
|
9
|
+
|
|
10
|
+
function mountQBadge (options = {}) {
|
|
11
|
+
options.props = {
|
|
12
|
+
...defaultOptions,
|
|
13
|
+
...options.props
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
return mount(QBadge, options)
|
|
17
|
+
}
|
|
5
18
|
|
|
6
19
|
describe('Badge API', () => {
|
|
7
20
|
describe('Props', () => {
|
|
8
21
|
describe('Category: content', () => {
|
|
9
22
|
describe('(prop): floating', () => {
|
|
10
|
-
it
|
|
11
|
-
|
|
23
|
+
it('should render a floating badge', () => {
|
|
24
|
+
mountQBadge({
|
|
25
|
+
props: { floating: true }
|
|
26
|
+
})
|
|
27
|
+
|
|
28
|
+
cy.get('.q-badge')
|
|
29
|
+
.should('have.class', 'q-badge--floating')
|
|
12
30
|
})
|
|
13
31
|
})
|
|
14
32
|
|
|
15
33
|
describe('(prop): multi-line', () => {
|
|
16
|
-
it
|
|
17
|
-
|
|
34
|
+
it('should render a content with multiple lines', () => {
|
|
35
|
+
mountQBadge({
|
|
36
|
+
props: { multiLine: true }
|
|
37
|
+
})
|
|
38
|
+
|
|
39
|
+
cy.get('.q-badge')
|
|
40
|
+
.should('have.class', 'q-badge--multi-line')
|
|
18
41
|
})
|
|
19
42
|
})
|
|
20
43
|
|
|
21
44
|
describe('(prop): label', () => {
|
|
22
|
-
it
|
|
23
|
-
|
|
45
|
+
it('should render a label inside the badge', () => {
|
|
46
|
+
const label = 'Badge label'
|
|
47
|
+
|
|
48
|
+
mountQBadge({
|
|
49
|
+
props: { label }
|
|
50
|
+
})
|
|
51
|
+
|
|
52
|
+
cy.get('.q-badge')
|
|
53
|
+
.should('contain', label)
|
|
24
54
|
})
|
|
25
55
|
})
|
|
26
56
|
|
|
27
57
|
describe('(prop): align', () => {
|
|
28
|
-
it.
|
|
29
|
-
|
|
58
|
+
it(`should render a badge aligned based on defined values: ${ alignValues.join(', ') }`, () => {
|
|
59
|
+
mountQBadge()
|
|
60
|
+
|
|
61
|
+
// loop over alignValues
|
|
62
|
+
for (const align of alignValues) {
|
|
63
|
+
cy.get('.q-badge')
|
|
64
|
+
.then(() => Cypress.vueWrapper.setProps({ align }))
|
|
65
|
+
.should('have.css', 'vertical-align', align)
|
|
66
|
+
}
|
|
30
67
|
})
|
|
31
68
|
})
|
|
32
69
|
})
|
|
33
70
|
|
|
34
71
|
describe('Category: style', () => {
|
|
35
72
|
describe('(prop): color', () => {
|
|
36
|
-
it
|
|
37
|
-
|
|
73
|
+
it('should change color based on Quasar Color Palette', () => {
|
|
74
|
+
mountQBadge({
|
|
75
|
+
props: { color: 'red' }
|
|
76
|
+
})
|
|
77
|
+
|
|
78
|
+
cy.get('.q-badge')
|
|
79
|
+
.should('have.class', 'bg-red')
|
|
38
80
|
})
|
|
39
81
|
})
|
|
40
82
|
|
|
41
83
|
describe('(prop): text-color', () => {
|
|
42
|
-
it
|
|
43
|
-
|
|
84
|
+
it('should change text color based on Quasar Color Palette', () => {
|
|
85
|
+
mountQBadge({
|
|
86
|
+
props: { textColor: 'red' }
|
|
87
|
+
})
|
|
88
|
+
|
|
89
|
+
cy.get('.q-badge')
|
|
90
|
+
.should('have.class', 'text-red')
|
|
44
91
|
})
|
|
45
92
|
})
|
|
46
93
|
|
|
47
94
|
describe('(prop): transparent', () => {
|
|
48
|
-
it
|
|
49
|
-
|
|
95
|
+
it('should have opacity style when "transparent" prop is true', () => {
|
|
96
|
+
mountQBadge({
|
|
97
|
+
props: { transparent: true }
|
|
98
|
+
})
|
|
99
|
+
|
|
100
|
+
cy.get('.q-badge')
|
|
101
|
+
.should('have.class', 'q-badge--transparent')
|
|
50
102
|
})
|
|
51
103
|
})
|
|
52
104
|
|
|
53
105
|
describe('(prop): outline', () => {
|
|
54
|
-
it
|
|
55
|
-
|
|
106
|
+
it('should have a outline style when "outline" prop is true', () => {
|
|
107
|
+
mountQBadge({
|
|
108
|
+
props: { outline: true }
|
|
109
|
+
})
|
|
110
|
+
|
|
111
|
+
cy.get('.q-badge')
|
|
112
|
+
.should('have.class', 'q-badge--outline')
|
|
56
113
|
})
|
|
57
114
|
})
|
|
58
115
|
|
|
59
116
|
describe('(prop): rounded', () => {
|
|
60
|
-
it
|
|
61
|
-
|
|
117
|
+
it('should have a rounded style when "rounded" prop is true', () => {
|
|
118
|
+
mountQBadge({
|
|
119
|
+
props: { rounded: true }
|
|
120
|
+
})
|
|
121
|
+
|
|
122
|
+
cy.get('.q-badge')
|
|
123
|
+
.should('have.class', 'q-badge--rounded')
|
|
62
124
|
})
|
|
63
125
|
})
|
|
64
126
|
})
|
|
@@ -66,8 +128,21 @@ describe('Badge API', () => {
|
|
|
66
128
|
|
|
67
129
|
describe('Slots', () => {
|
|
68
130
|
describe('(slot): default', () => {
|
|
69
|
-
it
|
|
70
|
-
|
|
131
|
+
it('should display the default slot content', () => {
|
|
132
|
+
const label = 'Badge label'
|
|
133
|
+
|
|
134
|
+
mountQBadge({
|
|
135
|
+
props: {
|
|
136
|
+
label: undefined
|
|
137
|
+
},
|
|
138
|
+
|
|
139
|
+
slots: {
|
|
140
|
+
default: label
|
|
141
|
+
}
|
|
142
|
+
})
|
|
143
|
+
|
|
144
|
+
cy.get('.q-badge')
|
|
145
|
+
.should('have.text', label)
|
|
71
146
|
})
|
|
72
147
|
})
|
|
73
148
|
})
|
|
@@ -166,7 +166,7 @@ export default function (props, emit, emitValue, inputRef) {
|
|
|
166
166
|
'^'
|
|
167
167
|
+ unmask.join('')
|
|
168
168
|
+ '(' + (unmaskChar === '' ? '.' : '[^' + unmaskChar + ']') + '+)?'
|
|
169
|
-
+ '
|
|
169
|
+
+ '[' + unmaskChar + ']*$'
|
|
170
170
|
),
|
|
171
171
|
extractLast = extract.length - 1,
|
|
172
172
|
extractMatcher = extract.map((re, index) => {
|
|
@@ -111,10 +111,7 @@ export default createComponent({
|
|
|
111
111
|
|
|
112
112
|
const directives = computed(() => {
|
|
113
113
|
// if props.disable === false
|
|
114
|
-
const modifiers = {
|
|
115
|
-
down: true,
|
|
116
|
-
mightPrevent: true
|
|
117
|
-
}
|
|
114
|
+
const modifiers = { down: true }
|
|
118
115
|
|
|
119
116
|
if (props.noMouse !== true) {
|
|
120
117
|
modifiers.mouse = true
|
|
@@ -572,8 +572,8 @@ export default createComponent({
|
|
|
572
572
|
|
|
573
573
|
recalculateScroll()
|
|
574
574
|
|
|
575
|
-
// if it's a QTab
|
|
576
|
-
if (tabData.routeData === void 0) {
|
|
575
|
+
// if it's a QTab or we don't have Vue Router
|
|
576
|
+
if (tabData.routeData === void 0 || proxy.$route === void 0) {
|
|
577
577
|
// we should position to the currently active tab (if any)
|
|
578
578
|
registerScrollToTabTimeout(() => {
|
|
579
579
|
if (scrollable.value === true) {
|
|
@@ -68,6 +68,7 @@ export default createComponent({
|
|
|
68
68
|
|
|
69
69
|
duration: Number,
|
|
70
70
|
noConnectors: Boolean,
|
|
71
|
+
noTransition: Boolean,
|
|
71
72
|
|
|
72
73
|
noNodesLabel: String,
|
|
73
74
|
noResultsLabel: String
|
|
@@ -140,7 +141,6 @@ export default createComponent({
|
|
|
140
141
|
const
|
|
141
142
|
key = node[ props.nodeKey ],
|
|
142
143
|
isParent = node[ props.childrenKey ] && node[ props.childrenKey ].length > 0,
|
|
143
|
-
isLeaf = isParent !== true,
|
|
144
144
|
selectable = node.disabled !== true && hasSelection.value === true && node.selectable !== false,
|
|
145
145
|
expandable = node.disabled !== true && node.expandable !== false,
|
|
146
146
|
hasTicking = tickStrategy !== 'none',
|
|
@@ -166,7 +166,6 @@ export default createComponent({
|
|
|
166
166
|
key,
|
|
167
167
|
parent,
|
|
168
168
|
isParent,
|
|
169
|
-
isLeaf,
|
|
170
169
|
lazy: localLazy,
|
|
171
170
|
disabled: node.disabled,
|
|
172
171
|
link: node.disabled !== true && (selectable === true || (expandable === true && (isParent === true || localLazy === true))),
|
|
@@ -186,7 +185,7 @@ export default createComponent({
|
|
|
186
185
|
leafTicking,
|
|
187
186
|
ticked: strictTicking === true
|
|
188
187
|
? innerTicked.value.includes(key)
|
|
189
|
-
: (
|
|
188
|
+
: (isParent === true ? false : innerTicked.value.includes(key))
|
|
190
189
|
}
|
|
191
190
|
|
|
192
191
|
meta[ key ] = m
|
|
@@ -586,23 +585,37 @@ export default createComponent({
|
|
|
586
585
|
]),
|
|
587
586
|
|
|
588
587
|
isParent === true
|
|
589
|
-
?
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
588
|
+
? (
|
|
589
|
+
props.noTransition === true
|
|
590
|
+
? h('div', {
|
|
591
|
+
class: 'q-tree__node-collapsible' + textColorClass.value,
|
|
592
|
+
key: `${ key }__q`
|
|
593
|
+
}, [
|
|
594
|
+
body,
|
|
595
|
+
h('div', {
|
|
596
|
+
class: 'q-tree__children'
|
|
597
|
+
+ (m.disabled === true ? ' q-tree__node--disabled' : '')
|
|
598
|
+
}, m.expanded ? children : null)
|
|
599
|
+
])
|
|
600
|
+
|
|
601
|
+
: h(QSlideTransition, {
|
|
602
|
+
duration: props.duration,
|
|
603
|
+
onShow,
|
|
604
|
+
onHide
|
|
605
|
+
}, () => withDirectives(
|
|
606
|
+
h('div', {
|
|
607
|
+
class: 'q-tree__node-collapsible' + textColorClass.value,
|
|
608
|
+
key: `${ key }__q`
|
|
609
|
+
}, [
|
|
610
|
+
body,
|
|
611
|
+
h('div', {
|
|
612
|
+
class: 'q-tree__children'
|
|
613
|
+
+ (m.disabled === true ? ' q-tree__node--disabled' : '')
|
|
614
|
+
}, children)
|
|
615
|
+
]),
|
|
616
|
+
[ [ vShow, m.expanded ] ]
|
|
617
|
+
))
|
|
618
|
+
)
|
|
606
619
|
: body
|
|
607
620
|
])
|
|
608
621
|
}
|
|
@@ -126,6 +126,13 @@
|
|
|
126
126
|
"category": "behavior"
|
|
127
127
|
},
|
|
128
128
|
|
|
129
|
+
"no-transition": {
|
|
130
|
+
"type": "Boolean",
|
|
131
|
+
"desc": "Turn off transition effects when expanding/collapsing nodes; Also enhances perf by a lot as a side-effect; Recommended for big trees",
|
|
132
|
+
"category": "behavior",
|
|
133
|
+
"addedIn": "v2.9.2"
|
|
134
|
+
},
|
|
135
|
+
|
|
129
136
|
"filter": {
|
|
130
137
|
"type": "String",
|
|
131
138
|
"desc": "The text value to be used for filtering nodes",
|
|
@@ -126,9 +126,16 @@ export default createDirective(__QUASAR_SSR_SERVER__
|
|
|
126
126
|
|
|
127
127
|
el.__qtouchhold = ctx
|
|
128
128
|
|
|
129
|
-
modifiers.mouse === true
|
|
130
|
-
|
|
131
|
-
|
|
129
|
+
if (modifiers.mouse === true) {
|
|
130
|
+
// account for UMD too where modifiers will be lowercased to work
|
|
131
|
+
const capture = modifiers.mouseCapture === true || modifiers.mousecapture === true
|
|
132
|
+
? 'Capture'
|
|
133
|
+
: ''
|
|
134
|
+
|
|
135
|
+
addEvt(ctx, 'main', [
|
|
136
|
+
[ el, 'mousedown', 'mouseStart', `passive${ capture }` ]
|
|
137
|
+
])
|
|
138
|
+
}
|
|
132
139
|
|
|
133
140
|
client.has.touch === true && addEvt(ctx, 'main', [
|
|
134
141
|
[ el, 'touchstart', 'touchStart', `passive${ modifiers.capture === true ? 'Capture' : '' }` ],
|
|
@@ -188,7 +188,8 @@ export default createDirective(__QUASAR_SSR_SERVER__
|
|
|
188
188
|
*/
|
|
189
189
|
if (
|
|
190
190
|
ctx.direction.all !== true
|
|
191
|
-
|
|
191
|
+
// account for UMD too where modifiers will be lowercased to work
|
|
192
|
+
&& (mouseEvent !== true || (ctx.modifiers.mouseAllDir !== true && ctx.modifiers.mousealldir !== true))
|
|
192
193
|
) {
|
|
193
194
|
const clone = evt.type.indexOf('mouse') > -1
|
|
194
195
|
? new MouseEvent(evt.type, evt)
|
|
@@ -255,9 +256,12 @@ export default createDirective(__QUASAR_SSR_SERVER__
|
|
|
255
256
|
const start = () => {
|
|
256
257
|
handleEvent(evt, isMouseEvt)
|
|
257
258
|
|
|
258
|
-
|
|
259
|
+
let cursor
|
|
260
|
+
if (modifiers.preserveCursor !== true && modifiers.preservecursor !== true) {
|
|
261
|
+
cursor = document.documentElement.style.cursor || ''
|
|
259
262
|
document.documentElement.style.cursor = 'grabbing'
|
|
260
263
|
}
|
|
264
|
+
|
|
261
265
|
isMouseEvt === true && document.body.classList.add('no-pointer-events--children')
|
|
262
266
|
document.body.classList.add('non-selectable')
|
|
263
267
|
clearSelection()
|
|
@@ -265,9 +269,10 @@ export default createDirective(__QUASAR_SSR_SERVER__
|
|
|
265
269
|
ctx.styleCleanup = withDelayedFn => {
|
|
266
270
|
ctx.styleCleanup = void 0
|
|
267
271
|
|
|
268
|
-
if (
|
|
269
|
-
document.documentElement.style.cursor =
|
|
272
|
+
if (cursor !== void 0) {
|
|
273
|
+
document.documentElement.style.cursor = cursor
|
|
270
274
|
}
|
|
275
|
+
|
|
271
276
|
document.body.classList.remove('non-selectable')
|
|
272
277
|
|
|
273
278
|
if (isMouseEvt === true) {
|
|
@@ -315,7 +320,8 @@ export default createDirective(__QUASAR_SSR_SERVER__
|
|
|
315
320
|
|
|
316
321
|
if (
|
|
317
322
|
ctx.direction.all === true
|
|
318
|
-
|
|
323
|
+
// account for UMD too where modifiers will be lowercased to work
|
|
324
|
+
|| (isMouseEvt === true && (ctx.modifiers.mouseAllDir === true || ctx.modifiers.mousealldir === true))
|
|
319
325
|
) {
|
|
320
326
|
start()
|
|
321
327
|
ctx.event.detected = true
|
|
@@ -382,9 +388,16 @@ export default createDirective(__QUASAR_SSR_SERVER__
|
|
|
382
388
|
|
|
383
389
|
el.__qtouchpan = ctx
|
|
384
390
|
|
|
385
|
-
modifiers.mouse === true
|
|
386
|
-
|
|
387
|
-
|
|
391
|
+
if (modifiers.mouse === true) {
|
|
392
|
+
// account for UMD too where modifiers will be lowercased to work
|
|
393
|
+
const capture = modifiers.mouseCapture === true || modifiers.mousecapture === true
|
|
394
|
+
? 'Capture'
|
|
395
|
+
: ''
|
|
396
|
+
|
|
397
|
+
addEvt(ctx, 'main', [
|
|
398
|
+
[ el, 'mousedown', 'mouseStart', `passive${ capture }` ]
|
|
399
|
+
])
|
|
400
|
+
}
|
|
388
401
|
|
|
389
402
|
client.has.touch === true && addEvt(ctx, 'main', [
|
|
390
403
|
[ el, 'touchstart', 'touchStart', `passive${ modifiers.capture === true ? 'Capture' : '' }` ],
|
|
@@ -123,11 +123,6 @@
|
|
|
123
123
|
"desc": "Calls event.preventDefault() for touch events"
|
|
124
124
|
},
|
|
125
125
|
|
|
126
|
-
"mightPrevent": {
|
|
127
|
-
"type": "Boolean",
|
|
128
|
-
"desc": "Required when you might call event.preventDefault() in your handler for touch events"
|
|
129
|
-
},
|
|
130
|
-
|
|
131
126
|
"capture": {
|
|
132
127
|
"type": "Boolean",
|
|
133
128
|
"desc": "Use capture for touchstart event"
|
|
@@ -203,18 +203,32 @@ export default createDirective(__QUASAR_SSR_SERVER__
|
|
|
203
203
|
|
|
204
204
|
el.__qtouchrepeat = ctx
|
|
205
205
|
|
|
206
|
-
modifiers.mouse === true
|
|
207
|
-
|
|
208
|
-
|
|
206
|
+
if (modifiers.mouse === true) {
|
|
207
|
+
// account for UMD too where modifiers will be lowercased to work
|
|
208
|
+
const capture = modifiers.mouseCapture === true || modifiers.mousecapture === true
|
|
209
|
+
? 'Capture'
|
|
210
|
+
: ''
|
|
211
|
+
|
|
212
|
+
addEvt(ctx, 'main', [
|
|
213
|
+
[ el, 'mousedown', 'mouseStart', `passive${ capture }` ]
|
|
214
|
+
])
|
|
215
|
+
}
|
|
209
216
|
|
|
210
217
|
client.has.touch === true && addEvt(ctx, 'main', [
|
|
211
218
|
[ el, 'touchstart', 'touchStart', `passive${ modifiers.capture === true ? 'Capture' : '' }` ],
|
|
212
219
|
[ el, 'touchend', 'noop', 'passiveCapture' ]
|
|
213
220
|
])
|
|
214
221
|
|
|
215
|
-
keyboard.length
|
|
216
|
-
|
|
217
|
-
|
|
222
|
+
if (keyboard.length !== 0) {
|
|
223
|
+
// account for UMD too where modifiers will be lowercased to work
|
|
224
|
+
const capture = modifiers.keyCapture === true || modifiers.keycapture === true
|
|
225
|
+
? 'Capture'
|
|
226
|
+
: ''
|
|
227
|
+
|
|
228
|
+
addEvt(ctx, 'main', [
|
|
229
|
+
[ el, 'keydown', 'keyboardStart', `notPassive${ capture }` ]
|
|
230
|
+
])
|
|
231
|
+
}
|
|
218
232
|
},
|
|
219
233
|
|
|
220
234
|
updated (el, { oldValue, value }) {
|
|
@@ -228,9 +228,16 @@ export default createDirective(__QUASAR_SSR_SERVER__
|
|
|
228
228
|
|
|
229
229
|
el.__qtouchswipe = ctx
|
|
230
230
|
|
|
231
|
-
modifiers.mouse === true
|
|
232
|
-
|
|
233
|
-
|
|
231
|
+
if (modifiers.mouse === true) {
|
|
232
|
+
// account for UMD too where modifiers will be lowercased to work
|
|
233
|
+
const capture = modifiers.mouseCapture === true || modifiers.mousecapture === true
|
|
234
|
+
? 'Capture'
|
|
235
|
+
: ''
|
|
236
|
+
|
|
237
|
+
addEvt(ctx, 'main', [
|
|
238
|
+
[ el, 'mousedown', 'mouseStart', `passive${ capture }` ]
|
|
239
|
+
])
|
|
240
|
+
}
|
|
234
241
|
|
|
235
242
|
client.has.touch === true && addEvt(ctx, 'main', [
|
|
236
243
|
[ el, 'touchstart', 'touchStart', `passive${ modifiers.capture === true ? 'Capture' : '' }` ],
|
package/src/utils/morph.js
CHANGED
|
@@ -154,9 +154,13 @@ function normalizeOptions (options) {
|
|
|
154
154
|
fill: typeof options.fill === 'string' && options.fill.length > 0 ? options.fill : 'none',
|
|
155
155
|
|
|
156
156
|
resize: options.resize === true,
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
157
|
+
|
|
158
|
+
// account for UMD too where modifiers will be lowercased to work
|
|
159
|
+
useCSS: options.useCSS === true || options.usecss === true,
|
|
160
|
+
// account for UMD too where modifiers will be lowercased to work
|
|
161
|
+
hideFromClone: options.hideFromClone === true || options.hidefromclone === true,
|
|
162
|
+
// account for UMD too where modifiers will be lowercased to work
|
|
163
|
+
keepToClone: options.keepToClone === true || options.keeptoclone === true,
|
|
160
164
|
|
|
161
165
|
tween: options.tween === true,
|
|
162
166
|
tweenFromOpacity: isNaN(options.tweenFromOpacity) === true ? 0.6 : parseFloat(options.tweenFromOpacity),
|