quasar 2.11.7 → 2.11.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/api/QCarousel.json +9 -0
- package/dist/api/QEditor.json +57 -0
- package/dist/api/QTable.json +9 -0
- 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/mdi-v7.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-mdi-v7.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 +2 -2
- package/dist/lang/kk.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/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.css +2 -2
- package/dist/quasar.esm.js +121 -64
- package/dist/quasar.esm.prod.js +2 -2
- package/dist/quasar.prod.css +1 -1
- package/dist/quasar.rtl.css +2 -2
- package/dist/quasar.rtl.prod.css +1 -1
- package/dist/quasar.sass +17 -5
- package/dist/quasar.umd.js +121 -64
- package/dist/quasar.umd.prod.js +2 -2
- package/dist/types/index.d.ts +43 -0
- package/dist/web-types/web-types.json +102 -1
- package/lang/ja.js +1 -1
- package/lang/ja.mjs +1 -1
- package/package.json +9 -6
- package/src/components/avatar/__tests__/{QAvatar.spec.js → QAvatar.cy.js} +7 -8
- package/src/components/badge/__tests__/{QBadge.spec.js → QBadge.cy.js} +1 -2
- package/src/components/banner/__tests__/{QBanner.spec.js → QBanner.cy.js} +7 -8
- package/src/components/bar/__tests__/{QBar.spec.js → QBar.cy.js} +3 -4
- package/src/components/breadcrumbs/__tests__/{QBreadcrumbs.spec.js → QBreadcrumbs.cy.js} +8 -9
- package/src/components/breadcrumbs/__tests__/{QBreadcrumbsEl.spec.js → QBreadcrumbsEl.cy.js} +5 -6
- package/src/components/btn/__tests__/{QBtn.spec.js → QBtn.cy.js} +4 -5
- package/src/components/btn/__tests__/{use-btn.spec.js → use-btn.cy.js} +1 -2
- package/src/components/chip/__tests__/{QChip.spec.js → QChip.cy.js} +1 -2
- package/src/components/editor/QEditor.js +12 -1
- package/src/components/editor/QEditor.json +50 -0
- package/src/components/editor/editor-utils.js +5 -1
- package/src/components/field/QField.sass +16 -4
- package/src/components/input/QInput.js +24 -7
- package/src/components/input/use-mask.js +74 -50
- package/src/components/menu/__tests__/{QMenu.spec.js → QMenu.cy.js} +29 -30
- package/src/components/select/QSelect.js +2 -1
- package/src/components/select/__tests__/{QSelect.spec.js → QSelect.cy.js} +2 -3
- package/src/components/table/QTable.js +1 -1
- package/src/components/uploader/__tests__/{QUploader.spec.js → QUploader.cy.js} +1 -2
- package/src/composables/private/__tests__/{use-anchor.spec.js → use-anchor.cy.js} +7 -8
- package/src/composables/private/__tests__/{use-field.spec.js → use-field.cy.js} +7 -8
- package/src/composables/private/__tests__/{use-model-toggle.spec.js → use-model-toggle.cy.js} +17 -18
- package/src/composables/private/__tests__/{use-size.spec.js → use-size.cy.js} +4 -5
- package/src/composables/private/__tests__/{use-transition.spec.js → use-transition.cy.js} +9 -10
- package/src/composables/private/__tests__/{use-validate.spec.js → use-validate.cy.js} +5 -6
- package/src/composables/private/use-fullscreen.json +12 -0
- /package/src/components/date/__tests__/{QDate.spec.js → QDate.cy.js} +0 -0
- /package/src/components/dialog/__tests__/{QDialog.spec.js → QDialog.cy.js} +0 -0
- /package/src/components/editor/__tests__/{QEditor.spec.js → QEditor.cy.js} +0 -0
- /package/src/components/input/__tests__/{QInput.spec.js → QInput.cy.js} +0 -0
- /package/src/components/input/__tests__/{use-mask.spec.js → use-mask.cy.js} +0 -0
- /package/src/components/table/__tests__/{QTable.spec.js → QTable.cy.js} +0 -0
- /package/src/components/table/__tests__/{QTd.spec.js → QTd.cy.js} +0 -0
- /package/src/components/table/__tests__/{QTh.spec.js → QTh.cy.js} +0 -0
- /package/src/components/table/__tests__/{QTr.spec.js → QTr.cy.js} +0 -0
- /package/src/components/tabs/__tests__/{QRouteTab.spec.js → QRouteTab.cy.js} +0 -0
- /package/src/components/tabs/__tests__/{QTab.spec.js → QTab.cy.js} +0 -0
- /package/src/components/tabs/__tests__/{QTabs.spec.js → QTabs.cy.js} +0 -0
- /package/src/composables/private/__tests__/{use-file.spec.js → use-file.cy.js} +0 -0
- /package/src/composables/private/__tests__/{use-form.spec.js → use-form.cy.js} +0 -0
- /package/src/composables/private/__tests__/{use-fullscreen.spec.js → use-fullscreen.cy.js} +0 -0
- /package/src/composables/private/__tests__/{use-portal.spec.js → use-portal.cy.js} +0 -0
- /package/src/composables/private/__tests__/{use-router-link.spec.js → use-router-link.cy.js} +0 -0
package/dist/types/index.d.ts
CHANGED
|
@@ -2059,6 +2059,11 @@ export interface QCarouselProps {
|
|
|
2059
2059
|
* Show thumbnails
|
|
2060
2060
|
*/
|
|
2061
2061
|
thumbnails?: boolean | undefined;
|
|
2062
|
+
/**
|
|
2063
|
+
* Emitted when fullscreen state changes
|
|
2064
|
+
* @param value Fullscreen state (showing/hidden)
|
|
2065
|
+
*/
|
|
2066
|
+
onFullscreen?: (value: boolean) => void;
|
|
2062
2067
|
/**
|
|
2063
2068
|
* Emitted when the component changes the model; This event _isn't_ fired if the model is changed externally; Is also used by v-model
|
|
2064
2069
|
* @param value New current panel name
|
|
@@ -3450,11 +3455,44 @@ export interface QEditorProps {
|
|
|
3450
3455
|
* Text to display as placeholder
|
|
3451
3456
|
*/
|
|
3452
3457
|
placeholder?: string | undefined;
|
|
3458
|
+
/**
|
|
3459
|
+
* Emitted when fullscreen state changes
|
|
3460
|
+
* @param value Fullscreen state (showing/hidden)
|
|
3461
|
+
*/
|
|
3462
|
+
onFullscreen?: (value: boolean) => void;
|
|
3453
3463
|
/**
|
|
3454
3464
|
* Emitted when the component needs to change the model; Is also used by v-model
|
|
3455
3465
|
* @param value The pure HTML of the content
|
|
3456
3466
|
*/
|
|
3457
3467
|
"onUpdate:modelValue"?: (value: string) => void;
|
|
3468
|
+
/**
|
|
3469
|
+
* Emitted after a dropdown in the toolbar has triggered show()
|
|
3470
|
+
* @param evt JS event object
|
|
3471
|
+
*/
|
|
3472
|
+
onDropdownShow?: (evt: Event) => void;
|
|
3473
|
+
/**
|
|
3474
|
+
* Emitted when a dropdown in the toolbar triggers show() but before it finishes doing it
|
|
3475
|
+
* @param evt JS event object
|
|
3476
|
+
*/
|
|
3477
|
+
onDropdownBeforeShow?: (evt: Event) => void;
|
|
3478
|
+
/**
|
|
3479
|
+
* Emitted after a dropdown in the toolbar has triggered hide()
|
|
3480
|
+
* @param evt JS event object
|
|
3481
|
+
*/
|
|
3482
|
+
onDropdownHide?: (evt: Event) => void;
|
|
3483
|
+
/**
|
|
3484
|
+
* Emitted when a dropdown in the toolbar triggers hide() but before it finishes doing it
|
|
3485
|
+
* @param evt JS event object
|
|
3486
|
+
*/
|
|
3487
|
+
onDropdownBeforeHide?: (evt: Event) => void;
|
|
3488
|
+
/**
|
|
3489
|
+
* Emitted when the toolbar for editing a link is shown
|
|
3490
|
+
*/
|
|
3491
|
+
onLinkShow?: () => void;
|
|
3492
|
+
/**
|
|
3493
|
+
* Emitted when the toolbar for editing a link is hidden
|
|
3494
|
+
*/
|
|
3495
|
+
onLinkHide?: () => void;
|
|
3458
3496
|
}
|
|
3459
3497
|
|
|
3460
3498
|
export interface QEditorSlots {}
|
|
@@ -10291,6 +10329,11 @@ export interface QTableProps {
|
|
|
10291
10329
|
descending: boolean
|
|
10292
10330
|
) => readonly any[])
|
|
10293
10331
|
| undefined;
|
|
10332
|
+
/**
|
|
10333
|
+
* Emitted when fullscreen state changes
|
|
10334
|
+
* @param value Fullscreen state (showing/hidden)
|
|
10335
|
+
*/
|
|
10336
|
+
onFullscreen?: (value: boolean) => void;
|
|
10294
10337
|
/**
|
|
10295
10338
|
* Emitted when user clicks/taps on a row; Is not emitted when using body/row/item scoped slots
|
|
10296
10339
|
* @param evt JS event object
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "",
|
|
3
3
|
"framework": "vue",
|
|
4
4
|
"name": "quasar",
|
|
5
|
-
"version": "2.11.
|
|
5
|
+
"version": "2.11.9",
|
|
6
6
|
"contributions": {
|
|
7
7
|
"html": {
|
|
8
8
|
"types-syntax": "typescript",
|
|
@@ -2385,6 +2385,19 @@
|
|
|
2385
2385
|
}
|
|
2386
2386
|
],
|
|
2387
2387
|
"events": [
|
|
2388
|
+
{
|
|
2389
|
+
"name": "fullscreen",
|
|
2390
|
+
"arguments": [
|
|
2391
|
+
{
|
|
2392
|
+
"name": "value",
|
|
2393
|
+
"type": "boolean",
|
|
2394
|
+
"description": "Fullscreen state (showing/hidden)",
|
|
2395
|
+
"doc-url": "https://v2.quasar.dev/vue-components/carousel"
|
|
2396
|
+
}
|
|
2397
|
+
],
|
|
2398
|
+
"description": "Emitted when fullscreen state changes",
|
|
2399
|
+
"doc-url": "https://v2.quasar.dev/vue-components/carousel"
|
|
2400
|
+
},
|
|
2388
2401
|
{
|
|
2389
2402
|
"name": "update:model-value",
|
|
2390
2403
|
"arguments": [
|
|
@@ -4794,6 +4807,19 @@
|
|
|
4794
4807
|
}
|
|
4795
4808
|
],
|
|
4796
4809
|
"events": [
|
|
4810
|
+
{
|
|
4811
|
+
"name": "fullscreen",
|
|
4812
|
+
"arguments": [
|
|
4813
|
+
{
|
|
4814
|
+
"name": "value",
|
|
4815
|
+
"type": "boolean",
|
|
4816
|
+
"description": "Fullscreen state (showing/hidden)",
|
|
4817
|
+
"doc-url": "https://v2.quasar.dev/vue-components/editor"
|
|
4818
|
+
}
|
|
4819
|
+
],
|
|
4820
|
+
"description": "Emitted when fullscreen state changes",
|
|
4821
|
+
"doc-url": "https://v2.quasar.dev/vue-components/editor"
|
|
4822
|
+
},
|
|
4797
4823
|
{
|
|
4798
4824
|
"name": "update:model-value",
|
|
4799
4825
|
"arguments": [
|
|
@@ -4806,6 +4832,68 @@
|
|
|
4806
4832
|
],
|
|
4807
4833
|
"description": "Emitted when the component needs to change the model; Is also used by v-model",
|
|
4808
4834
|
"doc-url": "https://v2.quasar.dev/vue-components/editor"
|
|
4835
|
+
},
|
|
4836
|
+
{
|
|
4837
|
+
"name": "dropdown-show",
|
|
4838
|
+
"arguments": [
|
|
4839
|
+
{
|
|
4840
|
+
"name": "evt",
|
|
4841
|
+
"type": "Event",
|
|
4842
|
+
"description": "JS event object",
|
|
4843
|
+
"doc-url": "https://v2.quasar.dev/vue-components/editor"
|
|
4844
|
+
}
|
|
4845
|
+
],
|
|
4846
|
+
"description": "Emitted after a dropdown in the toolbar has triggered show()",
|
|
4847
|
+
"doc-url": "https://v2.quasar.dev/vue-components/editor"
|
|
4848
|
+
},
|
|
4849
|
+
{
|
|
4850
|
+
"name": "dropdown-before-show",
|
|
4851
|
+
"arguments": [
|
|
4852
|
+
{
|
|
4853
|
+
"name": "evt",
|
|
4854
|
+
"type": "Event",
|
|
4855
|
+
"description": "JS event object",
|
|
4856
|
+
"doc-url": "https://v2.quasar.dev/vue-components/editor"
|
|
4857
|
+
}
|
|
4858
|
+
],
|
|
4859
|
+
"description": "Emitted when a dropdown in the toolbar triggers show() but before it finishes doing it",
|
|
4860
|
+
"doc-url": "https://v2.quasar.dev/vue-components/editor"
|
|
4861
|
+
},
|
|
4862
|
+
{
|
|
4863
|
+
"name": "dropdown-hide",
|
|
4864
|
+
"arguments": [
|
|
4865
|
+
{
|
|
4866
|
+
"name": "evt",
|
|
4867
|
+
"type": "Event",
|
|
4868
|
+
"description": "JS event object",
|
|
4869
|
+
"doc-url": "https://v2.quasar.dev/vue-components/editor"
|
|
4870
|
+
}
|
|
4871
|
+
],
|
|
4872
|
+
"description": "Emitted after a dropdown in the toolbar has triggered hide()",
|
|
4873
|
+
"doc-url": "https://v2.quasar.dev/vue-components/editor"
|
|
4874
|
+
},
|
|
4875
|
+
{
|
|
4876
|
+
"name": "dropdown-before-hide",
|
|
4877
|
+
"arguments": [
|
|
4878
|
+
{
|
|
4879
|
+
"name": "evt",
|
|
4880
|
+
"type": "Event",
|
|
4881
|
+
"description": "JS event object",
|
|
4882
|
+
"doc-url": "https://v2.quasar.dev/vue-components/editor"
|
|
4883
|
+
}
|
|
4884
|
+
],
|
|
4885
|
+
"description": "Emitted when a dropdown in the toolbar triggers hide() but before it finishes doing it",
|
|
4886
|
+
"doc-url": "https://v2.quasar.dev/vue-components/editor"
|
|
4887
|
+
},
|
|
4888
|
+
{
|
|
4889
|
+
"name": "link-show",
|
|
4890
|
+
"description": "Emitted when the toolbar for editing a link is shown",
|
|
4891
|
+
"doc-url": "https://v2.quasar.dev/vue-components/editor"
|
|
4892
|
+
},
|
|
4893
|
+
{
|
|
4894
|
+
"name": "link-hide",
|
|
4895
|
+
"description": "Emitted when the toolbar for editing a link is hidden",
|
|
4896
|
+
"doc-url": "https://v2.quasar.dev/vue-components/editor"
|
|
4809
4897
|
}
|
|
4810
4898
|
],
|
|
4811
4899
|
"slots": [],
|
|
@@ -16234,6 +16322,19 @@
|
|
|
16234
16322
|
}
|
|
16235
16323
|
],
|
|
16236
16324
|
"events": [
|
|
16325
|
+
{
|
|
16326
|
+
"name": "fullscreen",
|
|
16327
|
+
"arguments": [
|
|
16328
|
+
{
|
|
16329
|
+
"name": "value",
|
|
16330
|
+
"type": "boolean",
|
|
16331
|
+
"description": "Fullscreen state (showing/hidden)",
|
|
16332
|
+
"doc-url": "https://v2.quasar.dev/vue-components/table"
|
|
16333
|
+
}
|
|
16334
|
+
],
|
|
16335
|
+
"description": "Emitted when fullscreen state changes",
|
|
16336
|
+
"doc-url": "https://v2.quasar.dev/vue-components/table"
|
|
16337
|
+
},
|
|
16237
16338
|
{
|
|
16238
16339
|
"name": "row-click",
|
|
16239
16340
|
"arguments": [
|
package/lang/ja.js
CHANGED
|
@@ -31,7 +31,7 @@ module.exports = {
|
|
|
31
31
|
headerTitle: date => new Intl.DateTimeFormat('ja-JP', {
|
|
32
32
|
weekday: 'short', month: 'short', day: 'numeric'
|
|
33
33
|
}).format(date),
|
|
34
|
-
firstDayOfWeek:
|
|
34
|
+
firstDayOfWeek: 0, // 0-6, 0 - Sunday, 1 Monday, ...
|
|
35
35
|
format24h: true, // true
|
|
36
36
|
pluralDay: '日間'
|
|
37
37
|
},
|
package/lang/ja.mjs
CHANGED
|
@@ -26,7 +26,7 @@ export default {
|
|
|
26
26
|
headerTitle: date => new Intl.DateTimeFormat('ja-JP', {
|
|
27
27
|
weekday: 'short', month: 'short', day: 'numeric'
|
|
28
28
|
}).format(date),
|
|
29
|
-
firstDayOfWeek:
|
|
29
|
+
firstDayOfWeek: 0, // 0-6, 0 - Sunday, 1 Monday, ...
|
|
30
30
|
format24h: true, // true
|
|
31
31
|
pluralDay: '日間'
|
|
32
32
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "quasar",
|
|
3
|
-
"version": "2.11.
|
|
3
|
+
"version": "2.11.9",
|
|
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",
|
|
@@ -30,11 +30,13 @@
|
|
|
30
30
|
"lint": "eslint --ext .js,.vue src dev",
|
|
31
31
|
"lint-fix": "eslint --ext .js,.vue src dev --fix",
|
|
32
32
|
"format:types": "prettier --write \"types/**/*.{d.ts,ts,json}\"",
|
|
33
|
+
"test:create": "node ./test/cypress/helpers/create-spec.js -c",
|
|
33
34
|
"test:build": "node build/script.build.js js api && node build/script.build.js js transforms",
|
|
34
|
-
"test:
|
|
35
|
-
"test:
|
|
36
|
-
"test:component
|
|
37
|
-
"test:
|
|
35
|
+
"test:e2e": "yarn test:build && cd ./dev && cross-env NODE_ENV=test start-test \"node ./script.dev.js\" http-get://localhost:9000 \"cypress open --e2e\" && cd ..",
|
|
36
|
+
"test:e2e:ci": "yarn test:build && cd ./dev && cross-env NODE_ENV=test start-test \"node ./script.dev.js\" http-get://localhost:9000 \"cypress run --e2e\" && cd ..",
|
|
37
|
+
"test:component": "yarn test:build && cd ./dev && cross-env NODE_ENV=test cypress open --component && cd ..",
|
|
38
|
+
"test:component:run": "yarn test:build && cd ./dev && cross-env NODE_ENV=test cypress run --component && cd ..",
|
|
39
|
+
"test:component:ci": "yarn test:build && cd ./dev && cross-env NODE_ENV=test cypress run --component --record --parallel && cd .."
|
|
38
40
|
},
|
|
39
41
|
"repository": {
|
|
40
42
|
"type": "git",
|
|
@@ -70,13 +72,14 @@
|
|
|
70
72
|
"devDependencies": {
|
|
71
73
|
"@quasar/app-vite": "^1.2.0",
|
|
72
74
|
"@quasar/extras": "^1.15.11",
|
|
73
|
-
"@quasar/quasar-app-extension-testing-e2e-cypress": "^
|
|
75
|
+
"@quasar/quasar-app-extension-testing-e2e-cypress": "^5.1.0",
|
|
74
76
|
"@rollup/plugin-node-resolve": "^11.2.1",
|
|
75
77
|
"@rollup/plugin-replace": "^2.3.3",
|
|
76
78
|
"autoprefixer": "^10.4.13",
|
|
77
79
|
"babel-preset-es2015-rollup": "^3.0.0",
|
|
78
80
|
"cli-highlight": "^2.1.11",
|
|
79
81
|
"cssnano": "^5.1.14",
|
|
82
|
+
"cypress": "^12.7.0",
|
|
80
83
|
"diff": "^5.1.0",
|
|
81
84
|
"eslint": "^7.4.0",
|
|
82
85
|
"eslint-config-standard": "^17.0.0",
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { mount } from '@cypress/vue'
|
|
2
1
|
import QAvatar from '../QAvatar.js'
|
|
3
2
|
|
|
4
3
|
describe('Avatar API', () => {
|
|
@@ -7,7 +6,7 @@ describe('Avatar API', () => {
|
|
|
7
6
|
describe('(prop): icon', () => {
|
|
8
7
|
it('should render an icon', () => {
|
|
9
8
|
const icon = 'bug_report'
|
|
10
|
-
mount(QAvatar, {
|
|
9
|
+
cy.mount(QAvatar, {
|
|
11
10
|
props: {
|
|
12
11
|
icon,
|
|
13
12
|
color: 'grey'
|
|
@@ -28,7 +27,7 @@ describe('Avatar API', () => {
|
|
|
28
27
|
// Doing em/rem units here does not work
|
|
29
28
|
// Cypress looks at actual computed values in the browser
|
|
30
29
|
const fontSize = '32px'
|
|
31
|
-
mount(QAvatar, {
|
|
30
|
+
cy.mount(QAvatar, {
|
|
32
31
|
props: {
|
|
33
32
|
size,
|
|
34
33
|
fontSize,
|
|
@@ -46,7 +45,7 @@ describe('Avatar API', () => {
|
|
|
46
45
|
describe('(prop): color', () => {
|
|
47
46
|
it('should set a background color', () => {
|
|
48
47
|
const color = 'red'
|
|
49
|
-
mount(QAvatar, {
|
|
48
|
+
cy.mount(QAvatar, {
|
|
50
49
|
props: {
|
|
51
50
|
color
|
|
52
51
|
}
|
|
@@ -60,7 +59,7 @@ describe('Avatar API', () => {
|
|
|
60
59
|
describe('(prop): text-color', () => {
|
|
61
60
|
it('should set a text color', () => {
|
|
62
61
|
const textColor = 'red'
|
|
63
|
-
mount(QAvatar, {
|
|
62
|
+
cy.mount(QAvatar, {
|
|
64
63
|
props: {
|
|
65
64
|
textColor
|
|
66
65
|
}
|
|
@@ -73,7 +72,7 @@ describe('Avatar API', () => {
|
|
|
73
72
|
|
|
74
73
|
describe('(prop): square', () => {
|
|
75
74
|
it('should create a square avatar', () => {
|
|
76
|
-
mount(QAvatar, {
|
|
75
|
+
cy.mount(QAvatar, {
|
|
77
76
|
props: {
|
|
78
77
|
square: true,
|
|
79
78
|
color: 'grey'
|
|
@@ -88,7 +87,7 @@ describe('Avatar API', () => {
|
|
|
88
87
|
|
|
89
88
|
describe('(prop): rounded', () => {
|
|
90
89
|
it('should create a rounded avatar', () => {
|
|
91
|
-
mount(QAvatar, {
|
|
90
|
+
cy.mount(QAvatar, {
|
|
92
91
|
props: {
|
|
93
92
|
rounded: true,
|
|
94
93
|
color: 'grey'
|
|
@@ -106,7 +105,7 @@ describe('Avatar API', () => {
|
|
|
106
105
|
describe('(slot): default', () => {
|
|
107
106
|
it('render the text in the default slot', () => {
|
|
108
107
|
const text = 'QQ'
|
|
109
|
-
mount(QAvatar, {
|
|
108
|
+
cy.mount(QAvatar, {
|
|
110
109
|
slots: {
|
|
111
110
|
// Using only a string here results in an error, this is a workaround
|
|
112
111
|
default: () => text
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { mount } from '@cypress/vue'
|
|
2
1
|
import QBadge from '../QBadge.js'
|
|
3
2
|
|
|
4
3
|
const defaultOptions = {
|
|
@@ -13,7 +12,7 @@ function mountQBadge (options = {}) {
|
|
|
13
12
|
...options.props
|
|
14
13
|
}
|
|
15
14
|
|
|
16
|
-
return mount(QBadge, options)
|
|
15
|
+
return cy.mount(QBadge, options)
|
|
17
16
|
}
|
|
18
17
|
|
|
19
18
|
describe('Badge API', () => {
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { mount } from '@cypress/vue'
|
|
2
1
|
import QBanner from '../QBanner.js'
|
|
3
2
|
|
|
4
3
|
describe('Banner API', () => {
|
|
@@ -6,7 +5,7 @@ describe('Banner API', () => {
|
|
|
6
5
|
describe('Category: content', () => {
|
|
7
6
|
describe('(prop): inline-actions', () => {
|
|
8
7
|
it('should render the actions in the same row as the content', () => {
|
|
9
|
-
mount(QBanner, {
|
|
8
|
+
cy.mount(QBanner, {
|
|
10
9
|
slots: {
|
|
11
10
|
default: 'Banner content',
|
|
12
11
|
action: 'Banner action'
|
|
@@ -25,7 +24,7 @@ describe('Banner API', () => {
|
|
|
25
24
|
describe('Category: style', () => {
|
|
26
25
|
describe('(prop): dense', () => {
|
|
27
26
|
it('should have a dense style when "dense" prop is true', () => {
|
|
28
|
-
mount(QBanner, {
|
|
27
|
+
cy.mount(QBanner, {
|
|
29
28
|
props: {
|
|
30
29
|
dense: true
|
|
31
30
|
}
|
|
@@ -38,7 +37,7 @@ describe('Banner API', () => {
|
|
|
38
37
|
|
|
39
38
|
describe('(prop): rounded', () => {
|
|
40
39
|
it('should have a rounded style when "rounded" prop is true', () => {
|
|
41
|
-
mount(QBanner, {
|
|
40
|
+
cy.mount(QBanner, {
|
|
42
41
|
props: {
|
|
43
42
|
rounded: true
|
|
44
43
|
}
|
|
@@ -51,7 +50,7 @@ describe('Banner API', () => {
|
|
|
51
50
|
|
|
52
51
|
describe('(prop): dark', () => {
|
|
53
52
|
it('should have a dark style when "dark" prop is true', () => {
|
|
54
|
-
mount(QBanner, {
|
|
53
|
+
cy.mount(QBanner, {
|
|
55
54
|
props: {
|
|
56
55
|
dark: true
|
|
57
56
|
}
|
|
@@ -67,7 +66,7 @@ describe('Banner API', () => {
|
|
|
67
66
|
describe('Slots', () => {
|
|
68
67
|
describe('(slot): default', () => {
|
|
69
68
|
it('should render the default content', () => {
|
|
70
|
-
mount(QBanner, {
|
|
69
|
+
cy.mount(QBanner, {
|
|
71
70
|
slots: {
|
|
72
71
|
default: 'Banner content'
|
|
73
72
|
}
|
|
@@ -80,7 +79,7 @@ describe('Banner API', () => {
|
|
|
80
79
|
|
|
81
80
|
describe('(slot): avatar', () => {
|
|
82
81
|
it('should render the avatar content', () => {
|
|
83
|
-
mount(QBanner, {
|
|
82
|
+
cy.mount(QBanner, {
|
|
84
83
|
slots: {
|
|
85
84
|
avatar: 'Banner avatar'
|
|
86
85
|
}
|
|
@@ -93,7 +92,7 @@ describe('Banner API', () => {
|
|
|
93
92
|
|
|
94
93
|
describe('(slot): action', () => {
|
|
95
94
|
it('should render the action content', () => {
|
|
96
|
-
mount(QBanner, {
|
|
95
|
+
cy.mount(QBanner, {
|
|
97
96
|
slots: {
|
|
98
97
|
action: 'Banner action'
|
|
99
98
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { mount } from '@cypress/vue'
|
|
2
1
|
import QBar from '../QBar.js'
|
|
3
2
|
|
|
4
3
|
describe('Bar API', () => {
|
|
@@ -6,7 +5,7 @@ describe('Bar API', () => {
|
|
|
6
5
|
describe('Category: style', () => {
|
|
7
6
|
describe('(prop): dense', () => {
|
|
8
7
|
it('should have a dense style when "dense" prop is true', () => {
|
|
9
|
-
mount(QBar, {
|
|
8
|
+
cy.mount(QBar, {
|
|
10
9
|
propsData: {
|
|
11
10
|
dense: true
|
|
12
11
|
}
|
|
@@ -18,7 +17,7 @@ describe('Bar API', () => {
|
|
|
18
17
|
|
|
19
18
|
describe('(prop): dark', () => {
|
|
20
19
|
it('should have a dark style when "dark" prop is true', () => {
|
|
21
|
-
mount(QBar, {
|
|
20
|
+
cy.mount(QBar, {
|
|
22
21
|
propsData: {
|
|
23
22
|
dark: true
|
|
24
23
|
}
|
|
@@ -33,7 +32,7 @@ describe('Bar API', () => {
|
|
|
33
32
|
describe('Slots', () => {
|
|
34
33
|
describe('(slot): default', () => {
|
|
35
34
|
it('should render the default slot', () => {
|
|
36
|
-
mount(QBar, {
|
|
35
|
+
cy.mount(QBar, {
|
|
37
36
|
slots: {
|
|
38
37
|
default: 'default bar slot'
|
|
39
38
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { mount } from '@cypress/vue'
|
|
2
1
|
import { alignMap, alignValues } from '../../../composables/private/use-align.js'
|
|
3
2
|
import BasicBreadcrumbs from './BasicBreadcrumbs.vue'
|
|
4
3
|
import BreadcrumbWithSeparatorSlot from './BreadcrumbWithSeparatorSlot.vue'
|
|
@@ -12,7 +11,7 @@ describe('Breadcrumbs API', () => {
|
|
|
12
11
|
it('should render a custom separator based on the defined value', () => {
|
|
13
12
|
const customSeparator = '>'
|
|
14
13
|
|
|
15
|
-
mount(BasicBreadcrumbs, {
|
|
14
|
+
cy.mount(BasicBreadcrumbs, {
|
|
16
15
|
props: {
|
|
17
16
|
separator: customSeparator
|
|
18
17
|
}
|
|
@@ -24,7 +23,7 @@ describe('Breadcrumbs API', () => {
|
|
|
24
23
|
|
|
25
24
|
describe('(prop): gutter', () => {
|
|
26
25
|
it(`should render a breadcrumb with a gutter based on defined values: ${ gutterValues.join(', ') }`, () => {
|
|
27
|
-
mount(BasicBreadcrumbs)
|
|
26
|
+
cy.mount(BasicBreadcrumbs)
|
|
28
27
|
|
|
29
28
|
// loop through each gutter value
|
|
30
29
|
for (const gutter of gutterValues) {
|
|
@@ -35,7 +34,7 @@ describe('Breadcrumbs API', () => {
|
|
|
35
34
|
})
|
|
36
35
|
|
|
37
36
|
it('should render a breadcrumb with no gutter when the value is set to "none"', () => {
|
|
38
|
-
mount(BasicBreadcrumbs, {
|
|
37
|
+
cy.mount(BasicBreadcrumbs, {
|
|
39
38
|
props: {
|
|
40
39
|
gutter: 'none'
|
|
41
40
|
}
|
|
@@ -47,7 +46,7 @@ describe('Breadcrumbs API', () => {
|
|
|
47
46
|
|
|
48
47
|
describe('(prop): align', () => {
|
|
49
48
|
it(`should render a breadcrumb aligned based on defined values: ${ alignValues.join(', ') }`, () => {
|
|
50
|
-
mount(BasicBreadcrumbs)
|
|
49
|
+
cy.mount(BasicBreadcrumbs)
|
|
51
50
|
|
|
52
51
|
// loop over alignValues
|
|
53
52
|
for (const align of alignValues) {
|
|
@@ -64,7 +63,7 @@ describe('Breadcrumbs API', () => {
|
|
|
64
63
|
it('should change breadcrumb item color based on Quasar Color Palette', () => {
|
|
65
64
|
const activeColor = 'red'
|
|
66
65
|
|
|
67
|
-
mount(BasicBreadcrumbs, {
|
|
66
|
+
cy.mount(BasicBreadcrumbs, {
|
|
68
67
|
props: {
|
|
69
68
|
activeColor
|
|
70
69
|
}
|
|
@@ -78,7 +77,7 @@ describe('Breadcrumbs API', () => {
|
|
|
78
77
|
it('should change breadcrumb separator color based on Quasar Color Palette', () => {
|
|
79
78
|
const separatorColor = 'red'
|
|
80
79
|
|
|
81
|
-
mount(BasicBreadcrumbs, {
|
|
80
|
+
cy.mount(BasicBreadcrumbs, {
|
|
82
81
|
props: {
|
|
83
82
|
separatorColor
|
|
84
83
|
}
|
|
@@ -93,7 +92,7 @@ describe('Breadcrumbs API', () => {
|
|
|
93
92
|
describe('Slots', () => {
|
|
94
93
|
describe('(slot): default', () => {
|
|
95
94
|
it('should display the default slot content', () => {
|
|
96
|
-
mount(BasicBreadcrumbs)
|
|
95
|
+
cy.mount(BasicBreadcrumbs)
|
|
97
96
|
|
|
98
97
|
cy.get('.q-breadcrumbs > div')
|
|
99
98
|
.should('contain', 'Home')
|
|
@@ -102,7 +101,7 @@ describe('Breadcrumbs API', () => {
|
|
|
102
101
|
|
|
103
102
|
describe('(slot): separator', () => {
|
|
104
103
|
it('should display the separator slot content', () => {
|
|
105
|
-
mount(BreadcrumbWithSeparatorSlot)
|
|
104
|
+
cy.mount(BreadcrumbWithSeparatorSlot)
|
|
106
105
|
|
|
107
106
|
cy.get('.q-breadcrumbs__separator')
|
|
108
107
|
.should('contain', 'arrow_forward')
|
package/src/components/breadcrumbs/__tests__/{QBreadcrumbsEl.spec.js → QBreadcrumbsEl.cy.js}
RENAMED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { mount } from '@cypress/vue'
|
|
2
1
|
import QBreadcrumbsEl from '../QBreadcrumbsEl.js'
|
|
3
2
|
|
|
4
3
|
describe('BreadcrumbsEl API', () => {
|
|
@@ -8,7 +7,7 @@ describe('BreadcrumbsEl API', () => {
|
|
|
8
7
|
it('should render a label inside the breadcrumb element', () => {
|
|
9
8
|
const label = 'Breadcrumb label'
|
|
10
9
|
|
|
11
|
-
mount(QBreadcrumbsEl, {
|
|
10
|
+
cy.mount(QBreadcrumbsEl, {
|
|
12
11
|
props: { label }
|
|
13
12
|
})
|
|
14
13
|
|
|
@@ -21,7 +20,7 @@ describe('BreadcrumbsEl API', () => {
|
|
|
21
20
|
it('should render on the left of the breadcrumb element', () => {
|
|
22
21
|
const icon = 'home'
|
|
23
22
|
|
|
24
|
-
mount(QBreadcrumbsEl, {
|
|
23
|
+
cy.mount(QBreadcrumbsEl, {
|
|
25
24
|
props: { icon }
|
|
26
25
|
})
|
|
27
26
|
|
|
@@ -34,7 +33,7 @@ describe('BreadcrumbsEl API', () => {
|
|
|
34
33
|
it('should render a custom tag', () => {
|
|
35
34
|
const tag = 'a'
|
|
36
35
|
|
|
37
|
-
mount(QBreadcrumbsEl, {
|
|
36
|
+
cy.mount(QBreadcrumbsEl, {
|
|
38
37
|
props: { tag }
|
|
39
38
|
})
|
|
40
39
|
|
|
@@ -56,7 +55,7 @@ describe('BreadcrumbsEl API', () => {
|
|
|
56
55
|
it('should render the default slot', () => {
|
|
57
56
|
const label = 'Breadcrumb label'
|
|
58
57
|
|
|
59
|
-
mount(QBreadcrumbsEl, {
|
|
58
|
+
cy.mount(QBreadcrumbsEl, {
|
|
60
59
|
slots: { default: label }
|
|
61
60
|
})
|
|
62
61
|
|
|
@@ -71,7 +70,7 @@ describe('BreadcrumbsEl API', () => {
|
|
|
71
70
|
it('should emit "click" event when clicked', () => {
|
|
72
71
|
const fn = cy.stub()
|
|
73
72
|
|
|
74
|
-
mount(QBreadcrumbsEl, {
|
|
73
|
+
cy.mount(QBreadcrumbsEl, {
|
|
75
74
|
props: {
|
|
76
75
|
label: 'clicked breadcrumb',
|
|
77
76
|
onClick: fn
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { mount } from '@cypress/vue'
|
|
2
1
|
import QBtn from '../QBtn.js'
|
|
3
2
|
|
|
4
3
|
const defaultOptions = {
|
|
@@ -11,7 +10,7 @@ function mountQBtn (options = {}) {
|
|
|
11
10
|
...options.props
|
|
12
11
|
}
|
|
13
12
|
|
|
14
|
-
return mount(QBtn, options)
|
|
13
|
+
return cy.mount(QBtn, options)
|
|
15
14
|
}
|
|
16
15
|
|
|
17
16
|
describe('Btn API', () => {
|
|
@@ -118,10 +117,10 @@ describe('Btn API', () => {
|
|
|
118
117
|
props: {
|
|
119
118
|
onClick: fn
|
|
120
119
|
}
|
|
120
|
+
}).then(({ wrapper }) => {
|
|
121
|
+
wrapper.vm.click()
|
|
122
|
+
return expect(fn).to.be.calledOnce
|
|
121
123
|
})
|
|
122
|
-
|
|
123
|
-
cy.get('.q-btn').invoke('click')
|
|
124
|
-
.then(() => expect(fn).to.be.calledOnce)
|
|
125
124
|
})
|
|
126
125
|
})
|
|
127
126
|
})
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { mount } from '@cypress/vue'
|
|
2
1
|
import { createMemoryHistory, createRouter } from 'vue-router'
|
|
3
2
|
import { alignMap, alignValues } from '../../../composables/private/use-align.js'
|
|
4
3
|
import QBtn from '../QBtn.js'
|
|
@@ -36,7 +35,7 @@ function mountQBtn (options = {}) {
|
|
|
36
35
|
}
|
|
37
36
|
})
|
|
38
37
|
|
|
39
|
-
return mount(QBtn, options)
|
|
38
|
+
return cy.mount(QBtn, options)
|
|
40
39
|
}
|
|
41
40
|
|
|
42
41
|
describe('use-btn API', () => {
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { mount } from '@cypress/vue'
|
|
2
1
|
import QChip, { defaultSizes } from '../QChip.js'
|
|
3
2
|
|
|
4
3
|
const defaultOptions = {
|
|
@@ -13,7 +12,7 @@ function mountQChip (options = {}) {
|
|
|
13
12
|
...options.props
|
|
14
13
|
}
|
|
15
14
|
|
|
16
|
-
return mount(QChip, options)
|
|
15
|
+
return cy.mount(QChip, options)
|
|
17
16
|
}
|
|
18
17
|
|
|
19
18
|
describe('Chip API', () => {
|
|
@@ -76,7 +76,13 @@ export default createComponent({
|
|
|
76
76
|
...useFullscreenEmits,
|
|
77
77
|
'update:modelValue',
|
|
78
78
|
'keydown', 'click', 'mouseup', 'keyup', 'touchend',
|
|
79
|
-
'focus', 'blur'
|
|
79
|
+
'focus', 'blur',
|
|
80
|
+
'dropdownShow',
|
|
81
|
+
'dropdownHide',
|
|
82
|
+
'dropdownBeforeShow',
|
|
83
|
+
'dropdownBeforeHide',
|
|
84
|
+
'linkShow',
|
|
85
|
+
'linkHide'
|
|
80
86
|
],
|
|
81
87
|
|
|
82
88
|
setup (props, { slots, emit, attrs }) {
|
|
@@ -233,6 +239,7 @@ export default createComponent({
|
|
|
233
239
|
$q,
|
|
234
240
|
props,
|
|
235
241
|
slots,
|
|
242
|
+
emit,
|
|
236
243
|
// caret (will get injected after mount)
|
|
237
244
|
inFullscreen,
|
|
238
245
|
toggleFullscreen,
|
|
@@ -253,6 +260,10 @@ export default createComponent({
|
|
|
253
260
|
}
|
|
254
261
|
})
|
|
255
262
|
|
|
263
|
+
watch(editLinkUrl, v => {
|
|
264
|
+
emit(`link-${ v ? 'Show' : 'Hide' }`)
|
|
265
|
+
})
|
|
266
|
+
|
|
256
267
|
const hasToolbar = computed(() => props.toolbar && props.toolbar.length > 0)
|
|
257
268
|
|
|
258
269
|
const keys = computed(() => {
|