quasar 1.22.5 → 1.22.7
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/BottomSheet.json +12 -0
- package/dist/api/QCarouselSlide.json +1 -1
- package/dist/api/QChatMessage.json +1 -1
- package/dist/api/QImg.json +8 -2
- package/dist/api/QTimelineEntry.json +1 -1
- package/dist/icon-set/bootstrap-icons.umd.min.js +1 -1
- package/dist/icon-set/eva-icons.umd.min.js +1 -1
- package/dist/icon-set/fontawesome-v5-pro.umd.min.js +1 -1
- package/dist/icon-set/fontawesome-v5.umd.min.js +1 -1
- package/dist/icon-set/fontawesome-v6-pro.umd.min.js +1 -1
- package/dist/icon-set/fontawesome-v6.umd.min.js +1 -1
- package/dist/icon-set/ionicons-v4.umd.min.js +1 -1
- package/dist/icon-set/line-awesome.umd.min.js +1 -1
- package/dist/icon-set/material-icons-outlined.umd.min.js +1 -1
- package/dist/icon-set/material-icons-round.umd.min.js +1 -1
- package/dist/icon-set/material-icons-sharp.umd.min.js +1 -1
- package/dist/icon-set/material-icons.umd.min.js +1 -1
- package/dist/icon-set/material-symbols-outlined.umd.min.js +1 -1
- package/dist/icon-set/material-symbols-rounded.umd.min.js +1 -1
- package/dist/icon-set/material-symbols-sharp.umd.min.js +1 -1
- package/dist/icon-set/mdi-v3.umd.min.js +1 -1
- package/dist/icon-set/mdi-v4.umd.min.js +1 -1
- package/dist/icon-set/mdi-v5.umd.min.js +1 -1
- package/dist/icon-set/mdi-v6.umd.min.js +1 -1
- package/dist/icon-set/mdi-v7.umd.min.js +1 -1
- package/dist/icon-set/svg-bootstrap-icons.umd.min.js +1 -1
- package/dist/icon-set/svg-eva-icons.umd.min.js +1 -1
- package/dist/icon-set/svg-fontawesome-v5.umd.min.js +1 -1
- package/dist/icon-set/svg-fontawesome-v6.umd.min.js +1 -1
- package/dist/icon-set/svg-ionicons-v4.umd.min.js +1 -1
- package/dist/icon-set/svg-ionicons-v5.umd.min.js +1 -1
- package/dist/icon-set/svg-ionicons-v6.umd.min.js +1 -1
- package/dist/icon-set/svg-line-awesome.umd.min.js +1 -1
- package/dist/icon-set/svg-material-icons-outlined.umd.min.js +1 -1
- package/dist/icon-set/svg-material-icons-round.umd.min.js +1 -1
- package/dist/icon-set/svg-material-icons-sharp.umd.min.js +1 -1
- package/dist/icon-set/svg-material-icons.umd.min.js +1 -1
- package/dist/icon-set/svg-material-symbols-outlined.umd.min.js +1 -1
- package/dist/icon-set/svg-material-symbols-rounded.umd.min.js +1 -1
- package/dist/icon-set/svg-material-symbols-sharp.umd.min.js +1 -1
- package/dist/icon-set/svg-mdi-v4.umd.min.js +1 -1
- package/dist/icon-set/svg-mdi-v5.umd.min.js +1 -1
- package/dist/icon-set/svg-mdi-v6.umd.min.js +1 -1
- package/dist/icon-set/svg-mdi-v7.umd.min.js +1 -1
- package/dist/icon-set/svg-themify.umd.min.js +1 -1
- package/dist/icon-set/themify.umd.min.js +1 -1
- package/dist/lang/ar.umd.min.js +1 -1
- package/dist/lang/az-latn.umd.min.js +1 -1
- package/dist/lang/bg.umd.min.js +1 -1
- package/dist/lang/ca.umd.min.js +1 -1
- package/dist/lang/cs.umd.min.js +1 -1
- package/dist/lang/da.umd.min.js +1 -1
- package/dist/lang/de.umd.min.js +1 -1
- package/dist/lang/el.umd.min.js +1 -1
- package/dist/lang/en-gb.umd.min.js +1 -1
- package/dist/lang/en-us.umd.min.js +1 -1
- package/dist/lang/eo.umd.min.js +1 -1
- package/dist/lang/es.umd.min.js +1 -1
- package/dist/lang/et.umd.min.js +1 -1
- package/dist/lang/eu.umd.min.js +1 -1
- package/dist/lang/fa-ir.umd.min.js +1 -1
- package/dist/lang/fa.umd.min.js +1 -1
- package/dist/lang/fi.umd.min.js +1 -1
- package/dist/lang/fr.umd.min.js +1 -1
- package/dist/lang/gn.umd.min.js +1 -1
- package/dist/lang/he.umd.min.js +1 -1
- package/dist/lang/hr.umd.min.js +1 -1
- package/dist/lang/hu.umd.min.js +1 -1
- package/dist/lang/id.umd.min.js +1 -1
- package/dist/lang/is.umd.min.js +1 -1
- package/dist/lang/it.umd.min.js +1 -1
- package/dist/lang/ja.umd.min.js +2 -2
- package/dist/lang/km.umd.min.js +1 -1
- package/dist/lang/ko-kr.umd.min.js +1 -1
- package/dist/lang/kur-ckb.umd.min.js +1 -1
- package/dist/lang/kz.umd.min.js +1 -1
- package/dist/lang/lu.umd.min.js +1 -1
- package/dist/lang/lv.umd.min.js +1 -1
- package/dist/lang/ml.umd.min.js +1 -1
- package/dist/lang/mm.umd.min.js +1 -1
- package/dist/lang/ms.umd.min.js +1 -1
- package/dist/lang/my.umd.min.js +1 -1
- package/dist/lang/nb-no.umd.min.js +1 -1
- package/dist/lang/nl.umd.min.js +1 -1
- package/dist/lang/pl.umd.min.js +1 -1
- package/dist/lang/pt-br.umd.min.js +1 -1
- package/dist/lang/pt.umd.min.js +1 -1
- package/dist/lang/ro.umd.min.js +1 -1
- package/dist/lang/ru.umd.min.js +1 -1
- package/dist/lang/sk.umd.min.js +1 -1
- package/dist/lang/sl.umd.min.js +2 -2
- package/dist/lang/sm.umd.min.js +1 -1
- package/dist/lang/sr.umd.min.js +1 -1
- package/dist/lang/sv.umd.min.js +1 -1
- package/dist/lang/ta.umd.min.js +1 -1
- package/dist/lang/th.umd.min.js +1 -1
- package/dist/lang/tr.umd.min.js +1 -1
- package/dist/lang/ug.umd.min.js +1 -1
- package/dist/lang/uk.umd.min.js +1 -1
- package/dist/lang/uz-Cyrl.umd.min.js +1 -1
- package/dist/lang/uz-Latn.umd.min.js +1 -1
- package/dist/lang/vi.umd.min.js +1 -1
- package/dist/lang/zh-hans.umd.min.js +1 -1
- package/dist/lang/zh-hant.umd.min.js +1 -1
- package/dist/quasar.addon.css +1 -1
- package/dist/quasar.addon.rtl.css +1 -1
- package/dist/quasar.common.js +2 -2
- package/dist/quasar.css +26 -5
- package/dist/quasar.esm.js +2 -2
- package/dist/quasar.ie.polyfills.js +1 -1
- package/dist/quasar.ie.polyfills.umd.min.js +1 -1
- package/dist/quasar.min.css +1 -1
- package/dist/quasar.rtl.css +4 -3
- package/dist/quasar.rtl.min.css +1 -1
- package/dist/quasar.sass +18 -5
- package/dist/quasar.styl +18 -5
- package/dist/quasar.umd.js +128 -64
- package/dist/quasar.umd.min.js +2 -2
- package/dist/quasar.umd.modern.js +122 -62
- package/dist/quasar.umd.modern.min.js +2 -2
- package/dist/types/index.d.ts +12 -0
- package/dist/vetur/quasar-attributes.json +4 -0
- package/dist/vetur/quasar-tags.json +2 -1
- package/dist/web-types/web-types.json +16 -6
- package/lang/ja.js +1 -1
- package/lang/sl.js +1 -1
- package/package.json +1 -1
- package/src/components/carousel/QCarouselSlide.json +1 -1
- package/src/components/chat/QChatMessage.json +1 -1
- package/src/components/date/QDate.js +8 -3
- package/src/components/dialog-bottom-sheet/BottomSheet.js +2 -0
- package/src/components/field/QField.js +5 -1
- package/src/components/field/QField.sass +18 -4
- package/src/components/field/QField.styl +18 -4
- package/src/components/img/QImg.js +10 -1
- package/src/components/img/QImg.json +9 -2
- package/src/components/input/QInput.js +17 -4
- package/src/components/layout/QLayout.sass +1 -0
- package/src/components/layout/QLayout.styl +1 -0
- package/src/components/slide-transition/QSlideTransition.js +6 -1
- package/src/components/table/table-top.js +1 -1
- package/src/components/timeline/QTimelineEntry.json +1 -1
- package/src/mixins/mask.js +71 -49
- package/src/plugins/BottomSheet.json +7 -0
package/dist/types/index.d.ts
CHANGED
|
@@ -81,6 +81,10 @@ export interface BottomSheet {
|
|
|
81
81
|
* CSS classes for this action
|
|
82
82
|
*/
|
|
83
83
|
classes? : string | any[] | LooseDictionary
|
|
84
|
+
/**
|
|
85
|
+
* Style definitions to be attributed to this action element
|
|
86
|
+
*/
|
|
87
|
+
style? : string | any[] | LooseDictionary
|
|
84
88
|
/**
|
|
85
89
|
* Icon name following Quasar convention; Make sure you have the icon library installed unless you are using 'img:' prefix; If 'none' (String) is used as value then no icon is rendered (but screen real estate will still be used for it)
|
|
86
90
|
*/
|
|
@@ -3905,6 +3909,10 @@ export interface QImg extends Vue {
|
|
|
3905
3909
|
* Enable the native context menu of the image
|
|
3906
3910
|
*/
|
|
3907
3911
|
nativeContextMenu? : boolean
|
|
3912
|
+
/**
|
|
3913
|
+
* Make the native img not-draggable (to allow swipe in QCarousel) - only has meaning when `native-context-menu` is used
|
|
3914
|
+
*/
|
|
3915
|
+
notDraggable? : boolean
|
|
3908
3916
|
}
|
|
3909
3917
|
|
|
3910
3918
|
export interface QInfiniteScroll extends Vue {
|
|
@@ -8792,6 +8800,10 @@ export interface QVueGlobals {
|
|
|
8792
8800
|
* CSS classes for this action
|
|
8793
8801
|
*/
|
|
8794
8802
|
classes? : string | any[] | LooseDictionary
|
|
8803
|
+
/**
|
|
8804
|
+
* Style definitions to be attributed to this action element
|
|
8805
|
+
*/
|
|
8806
|
+
style? : string | any[] | LooseDictionary
|
|
8795
8807
|
/**
|
|
8796
8808
|
* Icon name following Quasar convention; Make sure you have the icon library installed unless you are using 'img:' prefix; If 'none' (String) is used as value then no icon is rendered (but screen real estate will still be used for it)
|
|
8797
8809
|
*/
|
|
@@ -2367,6 +2367,10 @@
|
|
|
2367
2367
|
"type": "boolean",
|
|
2368
2368
|
"description": "Enable the native context menu of the image"
|
|
2369
2369
|
},
|
|
2370
|
+
"q-img/not-draggable": {
|
|
2371
|
+
"type": "boolean",
|
|
2372
|
+
"description": "Make the native img not-draggable (to allow swipe in QCarousel) - only has meaning when `native-context-menu` is used"
|
|
2373
|
+
},
|
|
2370
2374
|
"q-infinite-scroll/offset": {
|
|
2371
2375
|
"type": "number",
|
|
2372
2376
|
"description": "Offset (pixels) to bottom of Infinite Scroll container from which the component should start loading more content in advance"
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "",
|
|
3
3
|
"framework": "vue",
|
|
4
4
|
"name": "quasar",
|
|
5
|
-
"version": "1.22.
|
|
5
|
+
"version": "1.22.7",
|
|
6
6
|
"contributions": {
|
|
7
7
|
"html": {
|
|
8
8
|
"types-syntax": "typescript",
|
|
@@ -2573,7 +2573,7 @@
|
|
|
2573
2573
|
"kind": "expression",
|
|
2574
2574
|
"type": "string"
|
|
2575
2575
|
},
|
|
2576
|
-
"description": "URL pointing to a slide background image (use public folder)\n\nExamples:\n(public folder) src=\"img/my-bg.png\"\n(assets folder) src=\"~assets/my-img.png\"\n(relative path format) :src=\"require('./my_img.jpg')\"\n(URL) src=\"https://
|
|
2576
|
+
"description": "URL pointing to a slide background image (use public folder)\n\nExamples:\n(public folder) src=\"img/my-bg.png\"\n(assets folder) src=\"~assets/my-img.png\"\n(relative path format) :src=\"require('./my_img.jpg')\"\n(URL) src=\"https://picsum.photos/500/300\"",
|
|
2577
2577
|
"doc-url": "https://v1.quasar.dev/vue-components/carousel"
|
|
2578
2578
|
}
|
|
2579
2579
|
],
|
|
@@ -2646,7 +2646,7 @@
|
|
|
2646
2646
|
"kind": "expression",
|
|
2647
2647
|
"type": "string"
|
|
2648
2648
|
},
|
|
2649
|
-
"description": "URL to the avatar image of the author\n\nExamples:\n(public folder) src=\"boy-avatar.png\"\n(assets folder) src=\"~assets/boy-avatar.png\"\n(relative path format) :src=\"require('./my_img.jpg')\"\n(URL) src=\"https://
|
|
2649
|
+
"description": "URL to the avatar image of the author\n\nExamples:\n(public folder) src=\"boy-avatar.png\"\n(assets folder) src=\"~assets/boy-avatar.png\"\n(relative path format) :src=\"require('./my_img.jpg')\"\n(URL) src=\"https://picsum.photos/500/300\"",
|
|
2650
2650
|
"doc-url": "https://v1.quasar.dev/vue-components/chat"
|
|
2651
2651
|
},
|
|
2652
2652
|
{
|
|
@@ -7663,7 +7663,7 @@
|
|
|
7663
7663
|
"kind": "expression",
|
|
7664
7664
|
"type": "string"
|
|
7665
7665
|
},
|
|
7666
|
-
"description": "Path to image\n\nExamples:\n(public folder) src=\"img/something.png\"\n(assets folder) src=\"~assets/my-img.gif\"\n(relative path format) :src=\"require('./my_img.jpg')\"\n(URL) src=\"https://
|
|
7666
|
+
"description": "Path to image\n\nExamples:\n(public folder) src=\"img/something.png\"\n(assets folder) src=\"~assets/my-img.gif\"\n(relative path format) :src=\"require('./my_img.jpg')\"\n(URL) src=\"https://picsum.photos/500/300\"",
|
|
7667
7667
|
"doc-url": "https://v1.quasar.dev/vue-components/img"
|
|
7668
7668
|
},
|
|
7669
7669
|
{
|
|
@@ -7717,7 +7717,7 @@
|
|
|
7717
7717
|
"kind": "expression",
|
|
7718
7718
|
"type": "string"
|
|
7719
7719
|
},
|
|
7720
|
-
"description": "While waiting for your image to load, you can use a placeholder image\n\nExamples:\n(public folder) src=\"img/some-placeholder.png\"\n(assets folder) src=\"~assets/my-placeholder.gif\"\n(relative path format) :src=\"require('./placeholder.jpg')\"\n(URL) src=\"https://
|
|
7720
|
+
"description": "While waiting for your image to load, you can use a placeholder image\n\nExamples:\n(public folder) src=\"img/some-placeholder.png\"\n(assets folder) src=\"~assets/my-placeholder.gif\"\n(relative path format) :src=\"require('./placeholder.jpg')\"\n(URL) src=\"https://picsum.photos/500/300\"",
|
|
7721
7721
|
"doc-url": "https://v1.quasar.dev/vue-components/img"
|
|
7722
7722
|
},
|
|
7723
7723
|
{
|
|
@@ -7815,6 +7815,16 @@
|
|
|
7815
7815
|
"description": "Enable the native context menu of the image",
|
|
7816
7816
|
"doc-url": "https://v1.quasar.dev/vue-components/img",
|
|
7817
7817
|
"type": "boolean"
|
|
7818
|
+
},
|
|
7819
|
+
{
|
|
7820
|
+
"name": "not-draggable",
|
|
7821
|
+
"value": {
|
|
7822
|
+
"kind": "expression",
|
|
7823
|
+
"type": "boolean"
|
|
7824
|
+
},
|
|
7825
|
+
"description": "Make the native img not-draggable (to allow swipe in QCarousel) - only has meaning when `native-context-menu` is used",
|
|
7826
|
+
"doc-url": "https://v1.quasar.dev/vue-components/img",
|
|
7827
|
+
"type": "boolean"
|
|
7818
7828
|
}
|
|
7819
7829
|
],
|
|
7820
7830
|
"events": [
|
|
@@ -19308,7 +19318,7 @@
|
|
|
19308
19318
|
"kind": "expression",
|
|
19309
19319
|
"type": "string"
|
|
19310
19320
|
},
|
|
19311
|
-
"description": "URL to the avatar image; Icon takes precedence if used, so it replaces avatar\n\nExamples:\n(public folder) src=\"img/my-bg.png\"\n(assets folder) src=\"~assets/my-img.png\"\n(relative path format) :src=\"require('./my_img.jpg')\"\n(URL) src=\"https://
|
|
19321
|
+
"description": "URL to the avatar image; Icon takes precedence if used, so it replaces avatar\n\nExamples:\n(public folder) src=\"img/my-bg.png\"\n(assets folder) src=\"~assets/my-img.png\"\n(relative path format) :src=\"require('./my_img.jpg')\"\n(URL) src=\"https://picsum.photos/500/300\"",
|
|
19312
19322
|
"doc-url": "https://v1.quasar.dev/vue-components/timeline"
|
|
19313
19323
|
},
|
|
19314
19324
|
{
|
package/lang/ja.js
CHANGED
package/lang/sl.js
CHANGED
package/package.json
CHANGED
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"(public folder) src=\"img/my-bg.png\"",
|
|
27
27
|
"(assets folder) src=\"~assets/my-img.png\"",
|
|
28
28
|
"(relative path format) :src=\"require('./my_img.jpg')\"",
|
|
29
|
-
"(URL) src=\"https://
|
|
29
|
+
"(URL) src=\"https://picsum.photos/500/300\""
|
|
30
30
|
],
|
|
31
31
|
"category": "model"
|
|
32
32
|
}
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"(public folder) src=\"boy-avatar.png\"",
|
|
49
49
|
"(assets folder) src=\"~assets/boy-avatar.png\"",
|
|
50
50
|
"(relative path format) :src=\"require('./my_img.jpg')\"",
|
|
51
|
-
"(URL) src=\"https://
|
|
51
|
+
"(URL) src=\"https://picsum.photos/500/300\""
|
|
52
52
|
],
|
|
53
53
|
"category": "content"
|
|
54
54
|
},
|
|
@@ -96,8 +96,8 @@ export default Vue.extend({
|
|
|
96
96
|
this.lastEmitValue = 0
|
|
97
97
|
}
|
|
98
98
|
else {
|
|
99
|
-
const
|
|
100
|
-
this.__updateViewModel(year, month)
|
|
99
|
+
const model = this.__getViewModel(this.innerMask, this.innerLocale)
|
|
100
|
+
this.__updateViewModel(model.year, model.month, model)
|
|
101
101
|
}
|
|
102
102
|
},
|
|
103
103
|
|
|
@@ -1265,7 +1265,7 @@ export default Vue.extend({
|
|
|
1265
1265
|
}
|
|
1266
1266
|
},
|
|
1267
1267
|
|
|
1268
|
-
__updateViewModel (year, month) {
|
|
1268
|
+
__updateViewModel (year, month, time) {
|
|
1269
1269
|
if (this.minNav !== void 0 && year <= this.minNav.year) {
|
|
1270
1270
|
year = this.minNav.year
|
|
1271
1271
|
if (month < this.minNav.month) {
|
|
@@ -1280,6 +1280,11 @@ export default Vue.extend({
|
|
|
1280
1280
|
}
|
|
1281
1281
|
}
|
|
1282
1282
|
|
|
1283
|
+
if (time !== void 0) {
|
|
1284
|
+
const { hour, minute, second, millisecond, timezoneOffset, timeHash } = time
|
|
1285
|
+
Object.assign(this.viewModel, { hour, minute, second, millisecond, timezoneOffset, timeHash })
|
|
1286
|
+
}
|
|
1287
|
+
|
|
1283
1288
|
const newHash = year + '/' + pad(month) + '/01'
|
|
1284
1289
|
|
|
1285
1290
|
if (newHash !== this.viewModel.dateHash) {
|
|
@@ -76,6 +76,7 @@ export default Vue.extend({
|
|
|
76
76
|
: h('div', {
|
|
77
77
|
staticClass: 'q-bottom-sheet__item q-hoverable q-focusable cursor-pointer relative-position',
|
|
78
78
|
class: action.classes,
|
|
79
|
+
style: action.style,
|
|
79
80
|
attrs: attrsGridItem,
|
|
80
81
|
on: {
|
|
81
82
|
click: () => {
|
|
@@ -113,6 +114,7 @@ export default Vue.extend({
|
|
|
113
114
|
: h(QItem, {
|
|
114
115
|
staticClass: 'q-bottom-sheet__item',
|
|
115
116
|
class: action.classes,
|
|
117
|
+
style: action.style,
|
|
116
118
|
props: {
|
|
117
119
|
tabindex: 0,
|
|
118
120
|
clickable: true,
|
|
@@ -122,7 +122,11 @@ export default Vue.extend({
|
|
|
122
122
|
this.focused === true ||
|
|
123
123
|
typeof this.inputValue === 'number' ||
|
|
124
124
|
(typeof this.inputValue === 'string' && this.inputValue.length > 0) ||
|
|
125
|
-
(
|
|
125
|
+
(
|
|
126
|
+
this.hideSelected !== true &&
|
|
127
|
+
this.hasValue === true &&
|
|
128
|
+
(this.type !== 'number' || isNaN(this.value) === false)
|
|
129
|
+
) ||
|
|
126
130
|
(
|
|
127
131
|
this.displayValue !== void 0 &&
|
|
128
132
|
this.displayValue !== null &&
|
|
@@ -134,8 +134,15 @@ $field-transition-label-right-up: .324s cubic-bezier(.4,0,.2,1)
|
|
|
134
134
|
|
|
135
135
|
&:-webkit-autofill + .q-field__label
|
|
136
136
|
transform: translateY(-40%) scale(.75)
|
|
137
|
-
|
|
138
|
-
|
|
137
|
+
|
|
138
|
+
&[type="color"],
|
|
139
|
+
&[type="date"],
|
|
140
|
+
&[type="datetime-local"],
|
|
141
|
+
&[type="month"],
|
|
142
|
+
&[type="time"],
|
|
143
|
+
&[type="week"]
|
|
144
|
+
+ .q-field__label
|
|
145
|
+
transform: translateY(-40%) scale(.75)
|
|
139
146
|
|
|
140
147
|
&:invalid
|
|
141
148
|
box-shadow: none
|
|
@@ -439,8 +446,15 @@ $field-transition-label-right-up: .324s cubic-bezier(.4,0,.2,1)
|
|
|
439
446
|
.q-field__native, .q-field__input
|
|
440
447
|
&:-webkit-autofill + .q-field__label
|
|
441
448
|
transform: translateY(-30%) scale(.75)
|
|
442
|
-
|
|
443
|
-
|
|
449
|
+
|
|
450
|
+
&[type="color"],
|
|
451
|
+
&[type="date"],
|
|
452
|
+
&[type="datetime-local"],
|
|
453
|
+
&[type="month"],
|
|
454
|
+
&[type="time"],
|
|
455
|
+
&[type="week"]
|
|
456
|
+
+ .q-field__label
|
|
457
|
+
transform: translateY(-30%) scale(.75)
|
|
444
458
|
|
|
445
459
|
&--borderless, &--standard
|
|
446
460
|
|
|
@@ -134,8 +134,15 @@ $field-transition-label-right-up = .324s cubic-bezier(.4,0,.2,1)
|
|
|
134
134
|
|
|
135
135
|
&:-webkit-autofill + .q-field__label
|
|
136
136
|
transform: translateY(-40%) scale(.75)
|
|
137
|
-
|
|
138
|
-
|
|
137
|
+
|
|
138
|
+
&[type="color"],
|
|
139
|
+
&[type="date"],
|
|
140
|
+
&[type="datetime-local"],
|
|
141
|
+
&[type="month"],
|
|
142
|
+
&[type="time"],
|
|
143
|
+
&[type="week"]
|
|
144
|
+
+ .q-field__label
|
|
145
|
+
transform: translateY(-40%) scale(.75)
|
|
139
146
|
|
|
140
147
|
&:invalid
|
|
141
148
|
box-shadow: none
|
|
@@ -439,8 +446,15 @@ $field-transition-label-right-up = .324s cubic-bezier(.4,0,.2,1)
|
|
|
439
446
|
.q-field__native, .q-field__input
|
|
440
447
|
&:-webkit-autofill + .q-field__label
|
|
441
448
|
transform: translateY(-30%) scale(.75)
|
|
442
|
-
|
|
443
|
-
|
|
449
|
+
|
|
450
|
+
&[type="color"],
|
|
451
|
+
&[type="date"],
|
|
452
|
+
&[type="datetime-local"],
|
|
453
|
+
&[type="month"],
|
|
454
|
+
&[type="time"],
|
|
455
|
+
&[type="week"]
|
|
456
|
+
+ .q-field__label
|
|
457
|
+
transform: translateY(-30%) scale(.75)
|
|
444
458
|
|
|
445
459
|
&--borderless, &--standard
|
|
446
460
|
|
|
@@ -38,6 +38,7 @@ export default Vue.extend({
|
|
|
38
38
|
imgStyle: Object,
|
|
39
39
|
|
|
40
40
|
nativeContextMenu: Boolean,
|
|
41
|
+
notDraggable: Boolean,
|
|
41
42
|
|
|
42
43
|
noDefaultSpinner: Boolean,
|
|
43
44
|
spinnerColor: String,
|
|
@@ -77,6 +78,14 @@ export default Vue.extend({
|
|
|
77
78
|
return att
|
|
78
79
|
},
|
|
79
80
|
|
|
81
|
+
imgAttrs () {
|
|
82
|
+
const att = { src: this.url, 'aria-hidden': 'true' }
|
|
83
|
+
if (this.notDraggable === true) {
|
|
84
|
+
att.draggable = false
|
|
85
|
+
}
|
|
86
|
+
return att
|
|
87
|
+
},
|
|
88
|
+
|
|
80
89
|
imgContainerStyle () {
|
|
81
90
|
return Object.assign(
|
|
82
91
|
{
|
|
@@ -228,7 +237,7 @@ export default Vue.extend({
|
|
|
228
237
|
? [
|
|
229
238
|
h('img', {
|
|
230
239
|
staticClass: 'absolute-full fit',
|
|
231
|
-
attrs:
|
|
240
|
+
attrs: this.imgAttrs
|
|
232
241
|
})
|
|
233
242
|
]
|
|
234
243
|
: void 0
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"(public folder) src=\"img/something.png\"",
|
|
19
19
|
"(assets folder) src=\"~assets/my-img.gif\"",
|
|
20
20
|
"(relative path format) :src=\"require('./my_img.jpg')\"",
|
|
21
|
-
"(URL) src=\"https://
|
|
21
|
+
"(URL) src=\"https://picsum.photos/500/300\""
|
|
22
22
|
],
|
|
23
23
|
"category": "model"
|
|
24
24
|
},
|
|
@@ -80,7 +80,7 @@
|
|
|
80
80
|
"(public folder) src=\"img/some-placeholder.png\"",
|
|
81
81
|
"(assets folder) src=\"~assets/my-placeholder.gif\"",
|
|
82
82
|
"(relative path format) :src=\"require('./placeholder.jpg')\"",
|
|
83
|
-
"(URL) src=\"https://
|
|
83
|
+
"(URL) src=\"https://picsum.photos/500/300\""
|
|
84
84
|
],
|
|
85
85
|
"category": "model"
|
|
86
86
|
},
|
|
@@ -163,6 +163,13 @@
|
|
|
163
163
|
"desc": "Enable the native context menu of the image",
|
|
164
164
|
"category": "behavior",
|
|
165
165
|
"addedIn": "v1.8.4"
|
|
166
|
+
},
|
|
167
|
+
|
|
168
|
+
"not-draggable": {
|
|
169
|
+
"type": "Boolean",
|
|
170
|
+
"desc": "Make the native img not-draggable (to allow swipe in QCarousel) - only has meaning when `native-context-menu` is used",
|
|
171
|
+
"category": "behavior",
|
|
172
|
+
"addedIn": "v1.22.6"
|
|
166
173
|
}
|
|
167
174
|
},
|
|
168
175
|
|
|
@@ -142,6 +142,8 @@ export default Vue.extend({
|
|
|
142
142
|
|
|
143
143
|
if (this.hasMask === true) {
|
|
144
144
|
on.keydown = this.__onMaskedKeydown
|
|
145
|
+
// reset selection anchor on pointer selection
|
|
146
|
+
on.click = this.__onMaskedClick
|
|
145
147
|
}
|
|
146
148
|
|
|
147
149
|
if (this.autogrow === true) {
|
|
@@ -291,18 +293,29 @@ export default Vue.extend({
|
|
|
291
293
|
const inp = this.$refs.input
|
|
292
294
|
if (inp !== void 0) {
|
|
293
295
|
const parentStyle = inp.parentNode.style
|
|
294
|
-
|
|
296
|
+
// chrome does not keep scroll #15498
|
|
297
|
+
const { scrollTop } = inp
|
|
298
|
+
// chrome calculates a smaller scrollHeight when in a .column container
|
|
299
|
+
const { overflowY, maxHeight } = this.$q.platform.is.firefox === true
|
|
300
|
+
? {}
|
|
301
|
+
: window.getComputedStyle(inp)
|
|
302
|
+
// on firefox or if overflowY is specified as scroll #14263, #14344
|
|
303
|
+
// we don't touch overflow
|
|
304
|
+
// firefox is not so bad in the end
|
|
305
|
+
const changeOverflow = overflowY !== void 0 && overflowY !== 'scroll'
|
|
295
306
|
|
|
296
307
|
// reset height of textarea to a small size to detect the real height
|
|
297
308
|
// but keep the total control size the same
|
|
298
|
-
|
|
299
|
-
this.$q.platform.is.firefox !== true && (inp.style.overflow = 'hidden')
|
|
309
|
+
changeOverflow === true && (inp.style.overflowY = 'hidden')
|
|
300
310
|
parentStyle.marginBottom = (inp.scrollHeight - 1) + 'px'
|
|
301
311
|
inp.style.height = '1px'
|
|
302
312
|
|
|
303
313
|
inp.style.height = inp.scrollHeight + 'px'
|
|
304
|
-
|
|
314
|
+
// we should allow scrollbars only
|
|
315
|
+
// if there is maxHeight and content is taller than maxHeight
|
|
316
|
+
changeOverflow === true && (inp.style.overflowY = parseInt(maxHeight, 10) < inp.scrollHeight ? 'auto' : 'hidden')
|
|
305
317
|
parentStyle.marginBottom = ''
|
|
318
|
+
inp.scrollTop = scrollTop
|
|
306
319
|
}
|
|
307
320
|
})
|
|
308
321
|
},
|
|
@@ -16,7 +16,7 @@ export default Vue.extend({
|
|
|
16
16
|
|
|
17
17
|
methods: {
|
|
18
18
|
__begin (el, height, done) {
|
|
19
|
-
|
|
19
|
+
// here overflowY is 'hidden'
|
|
20
20
|
if (height !== void 0) {
|
|
21
21
|
el.style.height = `${height}px`
|
|
22
22
|
}
|
|
@@ -61,12 +61,14 @@ export default Vue.extend({
|
|
|
61
61
|
let pos = 0
|
|
62
62
|
this.el = el
|
|
63
63
|
|
|
64
|
+
// if animationg overflowY is already 'hidden'
|
|
64
65
|
if (this.animating === true) {
|
|
65
66
|
this.__cleanup()
|
|
66
67
|
pos = el.offsetHeight === el.scrollHeight ? 0 : void 0
|
|
67
68
|
}
|
|
68
69
|
else {
|
|
69
70
|
this.lastEvent = 'hide'
|
|
71
|
+
el.style.overflowY = 'hidden'
|
|
70
72
|
}
|
|
71
73
|
|
|
72
74
|
this.__begin(el, pos, done)
|
|
@@ -92,6 +94,9 @@ export default Vue.extend({
|
|
|
92
94
|
}
|
|
93
95
|
else {
|
|
94
96
|
this.lastEvent = 'show'
|
|
97
|
+
// we need to set overflowY 'hidden' before calculating the height
|
|
98
|
+
// or else we get small differences
|
|
99
|
+
el.style.overflowY = 'hidden'
|
|
95
100
|
pos = el.scrollHeight
|
|
96
101
|
}
|
|
97
102
|
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"(public folder) src=\"img/my-bg.png\"",
|
|
43
43
|
"(assets folder) src=\"~assets/my-img.png\"",
|
|
44
44
|
"(relative path format) :src=\"require('./my_img.jpg')\"",
|
|
45
|
-
"(URL) src=\"https://
|
|
45
|
+
"(URL) src=\"https://picsum.photos/500/300\""
|
|
46
46
|
],
|
|
47
47
|
"category": "content"
|
|
48
48
|
},
|