quasar 2.4.5 → 2.4.9
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/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/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/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-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-mdi-v4.umd.prod.js +1 -1
- package/dist/icon-set/svg-mdi-v5.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.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/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/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/ms.umd.prod.js +1 -1
- package/dist/lang/my.umd.prod.js +6 -0
- 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/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/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.css +4 -3
- package/dist/quasar.esm.prod.js +2 -2
- package/dist/quasar.prod.css +1 -1
- package/dist/quasar.rtl.css +4 -3
- package/dist/quasar.rtl.prod.css +1 -1
- package/dist/quasar.sass +5 -4
- package/dist/quasar.umd.js +41 -36
- package/dist/quasar.umd.prod.js +2 -2
- package/dist/ssr-directives/Morph.js +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/web-types/web-types.json +1 -1
- package/lang/index.json +4 -0
- package/lang/my.js +90 -0
- package/package.json +1 -1
- package/src/components/icon/QIcon.js +4 -9
- package/src/components/icon/QIcon.sass +4 -3
- package/src/components/layout/QLayout.js +5 -4
- package/src/components/scroll-area/QScrollArea.js +15 -10
- package/src/components/scroll-observer/QScrollObserver.js +12 -10
- package/src/composables/private/use-field.js +2 -0
package/dist/types/index.d.ts
CHANGED
|
@@ -14421,6 +14421,7 @@ declare module "./lang" {
|
|
|
14421
14421
|
lv: true;
|
|
14422
14422
|
ml: true;
|
|
14423
14423
|
ms: true;
|
|
14424
|
+
my: true;
|
|
14424
14425
|
"nb-NO": true;
|
|
14425
14426
|
nl: true;
|
|
14426
14427
|
pl: true;
|
package/lang/index.json
CHANGED
package/lang/my.js
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
isoName: 'my',
|
|
3
|
+
nativeName: 'Malaysia',
|
|
4
|
+
label: {
|
|
5
|
+
clear: 'kosong',
|
|
6
|
+
ok: 'pasti',
|
|
7
|
+
cancel: 'Batal',
|
|
8
|
+
close: 'penutupan',
|
|
9
|
+
set: 'sediakan',
|
|
10
|
+
select: 'pilih',
|
|
11
|
+
reset: 'set semula',
|
|
12
|
+
remove: 'keluarkan',
|
|
13
|
+
update: 'memperbaharui',
|
|
14
|
+
create: 'cipta',
|
|
15
|
+
search: 'cari',
|
|
16
|
+
filter: 'penapis',
|
|
17
|
+
refresh: 'segarkan semula'
|
|
18
|
+
},
|
|
19
|
+
date: {
|
|
20
|
+
days: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),
|
|
21
|
+
daysShort: 'Aha_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),
|
|
22
|
+
months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'),
|
|
23
|
+
monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogo_Sep_Okt_Nov_Dis'.split('_'),
|
|
24
|
+
headerTitle: date => new Intl.DateTimeFormat('my', {
|
|
25
|
+
weekday: 'short', month: 'short', day: 'numeric'
|
|
26
|
+
}).format(date),
|
|
27
|
+
firstDayOfWeek: 0, // 0-6, 0 - Sunday, 1 Monday, ...
|
|
28
|
+
format24h: false,
|
|
29
|
+
pluralDay: 'langit'
|
|
30
|
+
},
|
|
31
|
+
table: {
|
|
32
|
+
noData: 'tiada data tersedia',
|
|
33
|
+
noResults: 'Tiada data yang sepadan ditemui',
|
|
34
|
+
loading: 'memuatkan...',
|
|
35
|
+
selectedRecords: rows => 'dipilih' + rows + 'baris',
|
|
36
|
+
recordsPerPage: 'baris setiap muka surat:',
|
|
37
|
+
allRows: 'semua',
|
|
38
|
+
pagination: (start, end, total) => start + '-' + end + ' / ' + total,
|
|
39
|
+
columns: 'Senaraikan'
|
|
40
|
+
},
|
|
41
|
+
editor: {
|
|
42
|
+
url: 'URL',
|
|
43
|
+
bold: 'berani',
|
|
44
|
+
italic: 'condong',
|
|
45
|
+
strikethrough: 'tembus',
|
|
46
|
+
underline: 'gariskan',
|
|
47
|
+
unorderedList: 'senarai tidak teratur',
|
|
48
|
+
orderedList: 'senarai pesanan',
|
|
49
|
+
subscript: 'subskrip',
|
|
50
|
+
superscript: 'superskrip',
|
|
51
|
+
hyperlink: 'Hiperpautan',
|
|
52
|
+
toggleFullscreen: 'togol skrin penuh',
|
|
53
|
+
quote: 'tanda petikan',
|
|
54
|
+
left: 'Jajar ke kiri',
|
|
55
|
+
center: 'penjajaran tengah',
|
|
56
|
+
right: 'Sejajar ke kanan',
|
|
57
|
+
justify: 'wajar',
|
|
58
|
+
print: 'Cetak',
|
|
59
|
+
outdent: 'mengurangkan lekukan',
|
|
60
|
+
indent: 'meningkatkan inden',
|
|
61
|
+
removeFormat: 'gaya yang jelas',
|
|
62
|
+
formatting: 'format',
|
|
63
|
+
fontSize: 'Saiz huruf',
|
|
64
|
+
align: 'selaraskan',
|
|
65
|
+
hr: 'Masukkan garisan mendatar',
|
|
66
|
+
undo: 'membatalkan',
|
|
67
|
+
redo: 'buat semula',
|
|
68
|
+
heading1: 'Tajuk satu',
|
|
69
|
+
heading2: 'Tajuk dua',
|
|
70
|
+
heading3: 'Tajuk tiga',
|
|
71
|
+
heading4: 'Tajuk Empat',
|
|
72
|
+
heading5: 'Tajuk Lima',
|
|
73
|
+
heading6: 'Tajuk Enam',
|
|
74
|
+
paragraph: 'perenggan',
|
|
75
|
+
code: 'kod',
|
|
76
|
+
size1: 'sangat kecil',
|
|
77
|
+
size2: 'lebih kecil',
|
|
78
|
+
size3: 'biasa',
|
|
79
|
+
size4: 'sederhana hingga besar',
|
|
80
|
+
size5: 'besar',
|
|
81
|
+
size6: 'sangat besar',
|
|
82
|
+
size7: 'super besar',
|
|
83
|
+
defaultFont: 'fon lalai',
|
|
84
|
+
viewSource: 'menyemak data'
|
|
85
|
+
},
|
|
86
|
+
tree: {
|
|
87
|
+
noNodes: 'tiada nod tersedia',
|
|
88
|
+
noResults: 'Tiada nod yang sepadan ditemui'
|
|
89
|
+
}
|
|
90
|
+
}
|
package/package.json
CHANGED
|
@@ -168,27 +168,22 @@ export default createComponent({
|
|
|
168
168
|
}
|
|
169
169
|
|
|
170
170
|
if (type.value.img === true) {
|
|
171
|
-
return h('
|
|
172
|
-
h('img', {
|
|
173
|
-
class: type.value.cls,
|
|
174
|
-
src: type.value.src
|
|
175
|
-
})
|
|
171
|
+
return h('span', data, hMergeSlot(slots.default, [
|
|
172
|
+
h('img', { src: type.value.src })
|
|
176
173
|
]))
|
|
177
174
|
}
|
|
178
175
|
|
|
179
176
|
if (type.value.svg === true) {
|
|
180
|
-
return h('
|
|
177
|
+
return h('span', data, hMergeSlot(slots.default, [
|
|
181
178
|
h('svg', {
|
|
182
|
-
class: type.value.cls,
|
|
183
179
|
viewBox: type.value.viewBox
|
|
184
180
|
}, type.value.nodes)
|
|
185
181
|
]))
|
|
186
182
|
}
|
|
187
183
|
|
|
188
184
|
if (type.value.svguse === true) {
|
|
189
|
-
return h('
|
|
185
|
+
return h('span', data, hMergeSlot(slots.default, [
|
|
190
186
|
h('svg', {
|
|
191
|
-
class: type.value.cls,
|
|
192
187
|
viewBox: type.value.viewBox
|
|
193
188
|
}, [
|
|
194
189
|
h('use', { 'xlink:href': type.value.src })
|
|
@@ -175,7 +175,7 @@ export default createComponent({
|
|
|
175
175
|
|
|
176
176
|
// prevent scrollbar flicker while resizing window height
|
|
177
177
|
// if no page scrollbar is already present
|
|
178
|
-
if (
|
|
178
|
+
if (__QUASAR_SSR_SERVER__ !== true && getScrollbarWidth() > 0) {
|
|
179
179
|
let timer = null
|
|
180
180
|
const el = document.body
|
|
181
181
|
|
|
@@ -211,11 +211,12 @@ export default createComponent({
|
|
|
211
211
|
}
|
|
212
212
|
|
|
213
213
|
watch(
|
|
214
|
-
() => (props.container !== true
|
|
215
|
-
updateScrollEvent
|
|
216
|
-
{ immediate: true }
|
|
214
|
+
() => (props.container !== true ? 'add' : 'remove'),
|
|
215
|
+
updateScrollEvent
|
|
217
216
|
)
|
|
218
217
|
|
|
218
|
+
props.container !== true && updateScrollEvent('add')
|
|
219
|
+
|
|
219
220
|
onUnmounted(() => {
|
|
220
221
|
updateScrollEvent('remove')
|
|
221
222
|
})
|
|
@@ -108,6 +108,9 @@ export default createComponent({
|
|
|
108
108
|
&& panning.value === false
|
|
109
109
|
) || scroll.vertical.size.value <= container.vertical.value + 1
|
|
110
110
|
)
|
|
111
|
+
scroll.vertical.thumbStart = computed(() =>
|
|
112
|
+
scroll.vertical.percentage.value * (container.vertical.value - scroll.vertical.thumbSize.value)
|
|
113
|
+
)
|
|
111
114
|
scroll.vertical.thumbSize = computed(() =>
|
|
112
115
|
Math.round(
|
|
113
116
|
between(
|
|
@@ -118,13 +121,11 @@ export default createComponent({
|
|
|
118
121
|
)
|
|
119
122
|
)
|
|
120
123
|
scroll.vertical.style = computed(() => {
|
|
121
|
-
const thumbSize = scroll.vertical.thumbSize.value
|
|
122
|
-
const pos = scroll.vertical.percentage.value * (container.vertical.value - thumbSize)
|
|
123
124
|
return {
|
|
124
125
|
...props.thumbStyle,
|
|
125
126
|
...props.verticalThumbStyle,
|
|
126
|
-
top: `${
|
|
127
|
-
height: `${ thumbSize }px`
|
|
127
|
+
top: `${ scroll.vertical.thumbStart.value }px`,
|
|
128
|
+
height: `${ scroll.vertical.thumbSize.value }px`
|
|
128
129
|
}
|
|
129
130
|
})
|
|
130
131
|
scroll.vertical.thumbClass = computed(() =>
|
|
@@ -149,6 +150,9 @@ export default createComponent({
|
|
|
149
150
|
&& panning.value === false
|
|
150
151
|
) || scroll.horizontal.size.value <= container.horizontal.value + 1
|
|
151
152
|
)
|
|
153
|
+
scroll.horizontal.thumbStart = computed(() =>
|
|
154
|
+
scroll.horizontal.percentage.value * (container.horizontal.value - scroll.horizontal.thumbSize.value)
|
|
155
|
+
)
|
|
152
156
|
scroll.horizontal.thumbSize = computed(() =>
|
|
153
157
|
Math.round(
|
|
154
158
|
between(
|
|
@@ -159,13 +163,11 @@ export default createComponent({
|
|
|
159
163
|
)
|
|
160
164
|
)
|
|
161
165
|
scroll.horizontal.style = computed(() => {
|
|
162
|
-
const thumbSize = scroll.horizontal.thumbSize.value
|
|
163
|
-
const pos = scroll.horizontal.percentage.value * (container.horizontal.value - thumbSize)
|
|
164
166
|
return {
|
|
165
167
|
...props.thumbStyle,
|
|
166
168
|
...props.horizontalThumbStyle,
|
|
167
|
-
left: `${
|
|
168
|
-
width: `${ thumbSize }px`
|
|
169
|
+
left: `${ scroll.horizontal.thumbStart.value }px`,
|
|
170
|
+
width: `${ scroll.horizontal.thumbSize.value }px`
|
|
169
171
|
}
|
|
170
172
|
})
|
|
171
173
|
scroll.horizontal.thumbClass = computed(() =>
|
|
@@ -311,8 +313,11 @@ export default createComponent({
|
|
|
311
313
|
const data = scroll[ axis ]
|
|
312
314
|
|
|
313
315
|
if (data.thumbHidden.value !== true) {
|
|
314
|
-
const
|
|
315
|
-
|
|
316
|
+
const offset = evt[ dirProps[ axis ].offset ]
|
|
317
|
+
if (offset < data.thumbStart.value || offset > data.thumbStart.value + data.thumbSize.value) {
|
|
318
|
+
const pos = offset - data.thumbSize.value / 2
|
|
319
|
+
setScroll(pos / container[ axis ].value * data.size.value, axis)
|
|
320
|
+
}
|
|
316
321
|
|
|
317
322
|
// activate thumb pan
|
|
318
323
|
if (data.ref.value !== null) {
|
|
@@ -47,7 +47,7 @@ export default createComponent({
|
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
let
|
|
50
|
+
let clearTimer = null, localScrollTarget, parentEl
|
|
51
51
|
|
|
52
52
|
watch(() => props.scrollTarget, () => {
|
|
53
53
|
unconfigureScrollTarget()
|
|
@@ -55,9 +55,7 @@ export default createComponent({
|
|
|
55
55
|
})
|
|
56
56
|
|
|
57
57
|
function emitEvent () {
|
|
58
|
-
|
|
59
|
-
cancelAnimationFrame(timer)
|
|
60
|
-
timer = null
|
|
58
|
+
clearTimer !== null && clearTimer()
|
|
61
59
|
|
|
62
60
|
const top = Math.max(0, getVerticalScrollPosition(localScrollTarget))
|
|
63
61
|
const left = getHorizontalScrollPosition(localScrollTarget)
|
|
@@ -107,10 +105,15 @@ export default createComponent({
|
|
|
107
105
|
if (immediately === true || props.debounce === 0 || props.debounce === '0') {
|
|
108
106
|
emitEvent()
|
|
109
107
|
}
|
|
110
|
-
else if (
|
|
111
|
-
timer = props.debounce
|
|
112
|
-
? setTimeout(emitEvent, props.debounce)
|
|
113
|
-
: requestAnimationFrame(emitEvent)
|
|
108
|
+
else if (clearTimer === null) {
|
|
109
|
+
const [ timer, fn ] = props.debounce
|
|
110
|
+
? [ setTimeout(emitEvent, props.debounce), clearTimeout ]
|
|
111
|
+
: [ requestAnimationFrame(emitEvent), cancelAnimationFrame ]
|
|
112
|
+
|
|
113
|
+
clearTimer = () => {
|
|
114
|
+
fn(timer)
|
|
115
|
+
clearTimer = null
|
|
116
|
+
}
|
|
114
117
|
}
|
|
115
118
|
}
|
|
116
119
|
|
|
@@ -122,8 +125,7 @@ export default createComponent({
|
|
|
122
125
|
})
|
|
123
126
|
|
|
124
127
|
onBeforeUnmount(() => {
|
|
125
|
-
|
|
126
|
-
cancelAnimationFrame(timer)
|
|
128
|
+
clearTimer !== null && clearTimer()
|
|
127
129
|
unconfigureScrollTarget()
|
|
128
130
|
})
|
|
129
131
|
|