quasar 2.9.2 → 2.10.1
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/Dialog.json +25 -68
- package/dist/api/Intersection.json +25 -100
- package/dist/api/Loading.json +5 -20
- package/dist/api/LoadingBar.json +1 -7
- package/dist/api/LocalStorage.json +4 -16
- package/dist/api/Morph.json +2 -14
- package/dist/api/Notify.json +0 -3
- package/dist/api/Platform.json +1 -4
- package/dist/api/QAjaxBar.json +1 -11
- package/dist/api/QBreadcrumbs.json +0 -8
- package/dist/api/QBreadcrumbsEl.json +0 -14
- package/dist/api/QBtn.json +0 -3
- package/dist/api/QBtnDropdown.json +32 -8
- package/dist/api/QCarousel.json +0 -10
- package/dist/api/QCarouselControl.json +0 -3
- package/dist/api/QCircularProgress.json +0 -23
- package/dist/api/QColor.json +0 -3
- package/dist/api/QDialog.json +18 -9
- package/dist/api/QDrawer.json +0 -6
- package/dist/api/QExpansionItem.json +0 -3
- package/dist/api/QFab.json +1 -6
- package/dist/api/QFabAction.json +1 -3
- package/dist/api/QField.json +1 -6
- package/dist/api/QFile.json +12 -29
- package/dist/api/QFooter.json +0 -3
- package/dist/api/QHeader.json +0 -6
- package/dist/api/QInfiniteScroll.json +9 -16
- package/dist/api/QInnerLoading.json +0 -4
- package/dist/api/QInput.json +8 -15
- package/dist/api/QIntersection.json +0 -4
- package/dist/api/QItemLabel.json +0 -5
- package/dist/api/QKnob.json +3 -36
- package/dist/api/QLayout.json +6 -24
- package/dist/api/QLinearProgress.json +0 -6
- package/dist/api/QList.json +15 -0
- package/dist/api/QMenu.json +7 -12
- package/dist/api/QOptionGroup.json +0 -3
- package/dist/api/QPage.json +2 -8
- package/dist/api/QPageScroller.json +0 -9
- package/dist/api/QPageSticky.json +0 -3
- package/dist/api/QPagination.json +138 -127
- package/dist/api/QParallax.json +2 -14
- package/dist/api/QPopupEdit.json +0 -8
- package/dist/api/QPopupProxy.json +0 -4
- package/dist/api/QRange.json +5 -32
- package/dist/api/QRating.json +0 -4
- package/dist/api/QResizeObserver.json +2 -8
- package/dist/api/QScrollArea.json +8 -36
- package/dist/api/QScrollObserver.json +6 -24
- package/dist/api/QSelect.json +18 -108
- package/dist/api/QSlideItem.json +1 -6
- package/dist/api/QSlideTransition.json +0 -4
- package/dist/api/QSlider.json +3 -24
- package/dist/api/QSpinner.json +0 -4
- package/dist/api/QSplitter.json +1 -4
- package/dist/api/QStepper.json +0 -7
- package/dist/api/QTabPanels.json +0 -7
- package/dist/api/QTable.json +43 -191
- package/dist/api/QTabs.json +1 -7
- package/dist/api/QTime.json +3 -12
- package/dist/api/QTooltip.json +7 -18
- package/dist/api/QTree.json +0 -3
- package/dist/api/QUploader.json +5 -16
- package/dist/api/QVirtualScroll.json +11 -56
- package/dist/api/Screen.json +9 -36
- package/dist/api/Scroll.json +2 -8
- package/dist/api/SessionStorage.json +4 -16
- package/dist/api/TouchHold.json +3 -12
- package/dist/api/TouchPan.json +7 -28
- package/dist/api/TouchRepeat.json +6 -24
- package/dist/api/TouchSwipe.json +3 -12
- 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.css +12 -2
- package/dist/quasar.esm.js +603 -445
- package/dist/quasar.esm.prod.js +2 -2
- package/dist/quasar.prod.css +1 -1
- package/dist/quasar.rtl.css +28 -2
- package/dist/quasar.rtl.prod.css +1 -1
- package/dist/quasar.sass +13 -3
- package/dist/quasar.umd.js +603 -445
- package/dist/quasar.umd.prod.js +2 -2
- package/dist/transforms/auto-import.json +7 -3
- package/dist/transforms/import-map.json +2 -0
- package/dist/types/index.d.ts +116 -106
- package/dist/vetur/quasar-attributes.json +65 -49
- package/dist/vetur/quasar-tags.json +18 -14
- package/dist/web-types/web-types.json +261 -222
- package/package.json +3 -3
- package/src/api.extends.json +1 -2
- package/src/components/ajax-bar/QAjaxBar.json +5 -11
- package/src/components/badge/QBadge.js +1 -1
- package/src/components/breadcrumbs/QBreadcrumbs.json +0 -2
- package/src/components/breadcrumbs/QBreadcrumbsEl.json +1 -6
- package/src/components/breadcrumbs/__tests__/BasicBreadcrumbs.vue +7 -0
- package/src/components/breadcrumbs/__tests__/BreadcrumbWithSeparatorSlot.vue +11 -0
- package/src/components/breadcrumbs/__tests__/QBreadcrumbs.spec.js +112 -0
- package/src/components/breadcrumbs/__tests__/QBreadcrumbsEl.spec.js +87 -0
- package/src/components/btn/QBtn.json +1 -3
- package/src/components/btn/__tests__/QBtn.spec.js +87 -14
- package/src/components/btn/__tests__/use-btn.spec.js +385 -58
- package/src/components/btn/use-btn.js +24 -14
- package/src/components/btn-dropdown/QBtnDropdown.js +34 -18
- package/src/components/btn-dropdown/QBtnDropdown.json +1 -3
- package/src/components/btn-toggle/QBtnToggle.js +14 -14
- package/src/components/btn-toggle/QBtnToggle.json +2 -4
- package/src/components/carousel/QCarousel.json +4 -9
- package/src/components/carousel/QCarouselControl.json +0 -1
- package/src/components/checkbox/use-checkbox.js +1 -1
- package/src/components/checkbox/use-checkbox.json +1 -2
- package/src/components/chip/QChip.js +14 -11
- package/src/components/circular-progress/QCircularProgress.json +0 -5
- package/src/components/color/QColor.json +0 -1
- package/src/components/date/QDate.js +3 -3
- package/src/components/date/QDate.json +28 -56
- package/src/components/dialog/QDialog.js +32 -41
- package/src/components/dialog/QDialog.json +9 -2
- package/src/components/dialog-bottom-sheet/BottomSheet.js +7 -4
- package/src/components/dialog-plugin/DialogPlugin.js +4 -4
- package/src/components/drawer/QDrawer.js +10 -8
- package/src/components/drawer/QDrawer.json +0 -4
- package/src/components/editor/QEditor.json +3 -6
- package/src/components/expansion-item/QExpansionItem.js +3 -3
- package/src/components/expansion-item/QExpansionItem.json +3 -8
- package/src/components/fab/QFab.json +0 -1
- package/src/components/fab/use-fab.json +0 -1
- package/src/components/field/QField.json +0 -1
- package/src/components/file/QFile.js +4 -1
- package/src/components/file/QFile.json +19 -20
- package/src/components/footer/QFooter.js +5 -3
- package/src/components/footer/QFooter.json +0 -1
- package/src/components/form/QForm.js +5 -3
- package/src/components/form/QForm.json +2 -4
- package/src/components/header/QHeader.js +5 -3
- package/src/components/header/QHeader.json +0 -4
- package/src/components/infinite-scroll/QInfiniteScroll.json +9 -6
- package/src/components/inner-loading/QInnerLoading.js +2 -5
- package/src/components/input/QInput.js +4 -1
- package/src/components/input/QInput.json +11 -7
- package/src/components/input/use-mask.js +2 -2
- package/src/components/intersection/QIntersection.json +0 -1
- package/src/components/item/QItem.js +1 -0
- package/src/components/item/QItem.json +1 -2
- package/src/components/item/QItemLabel.json +0 -1
- package/src/components/item/QList.js +7 -2
- package/src/components/item/QList.json +7 -0
- package/src/components/knob/QKnob.js +3 -3
- package/src/components/knob/QKnob.json +3 -12
- package/src/components/layout/QLayout.js +1 -1
- package/src/components/layout/QLayout.json +6 -12
- package/src/components/linear-progress/QLinearProgress.json +0 -2
- package/src/components/menu/QMenu.js +8 -5
- package/src/components/menu/QMenu.json +0 -2
- package/src/components/option-group/QOptionGroup.js +1 -1
- package/src/components/option-group/QOptionGroup.json +2 -5
- package/src/components/page/QPage.js +11 -4
- package/src/components/page/QPage.json +3 -6
- package/src/components/page/QPageContainer.js +5 -3
- package/src/components/page-scroller/QPageScroller.json +0 -2
- package/src/components/page-sticky/QPageSticky.json +0 -1
- package/src/components/page-sticky/use-page-sticky.js +5 -3
- package/src/components/pagination/QPagination.js +265 -188
- package/src/components/pagination/QPagination.json +87 -78
- package/src/components/pagination/QPagination.sass +14 -0
- package/src/components/parallax/QParallax.json +2 -6
- package/src/components/popup-edit/QPopupEdit.js +3 -3
- package/src/components/popup-edit/QPopupEdit.json +4 -10
- package/src/components/popup-proxy/QPopupProxy.json +0 -1
- package/src/components/radio/QRadio.json +1 -2
- package/src/components/range/QRange.json +2 -4
- package/src/components/rating/QRating.json +0 -1
- package/src/components/resize-observer/QResizeObserver.js +14 -10
- package/src/components/resize-observer/QResizeObserver.json +2 -4
- package/src/components/scroll-area/QScrollArea.js +15 -4
- package/src/components/scroll-area/QScrollArea.json +24 -50
- package/src/components/scroll-observer/QScrollObserver.js +2 -0
- package/src/components/scroll-observer/QScrollObserver.json +6 -12
- package/src/components/select/QSelect.js +20 -24
- package/src/components/select/QSelect.json +30 -65
- package/src/components/select/QSelect.sass +2 -2
- package/src/components/slide-item/QSlideItem.json +1 -2
- package/src/components/slide-transition/QSlideTransition.json +0 -1
- package/src/components/slider/use-slider.json +33 -70
- package/src/components/spinner/QSpinner.json +0 -1
- package/src/components/splitter/QSplitter.json +1 -2
- package/src/components/stepper/QStep.js +7 -5
- package/src/components/tab-panels/QTabPanel.js +1 -1
- package/src/components/table/QTable.js +3 -3
- package/src/components/table/QTable.json +118 -239
- package/src/components/tabs/QRouteTab.json +0 -1
- package/src/components/tabs/QTabs.js +0 -7
- package/src/components/tabs/QTabs.json +1 -3
- package/src/components/tabs/use-tab.js +5 -3
- package/src/components/time/QTime.json +10 -20
- package/src/components/timeline/QTimelineEntry.js +5 -3
- package/src/components/toolbar/QToolbar.js +1 -1
- package/src/components/tooltip/QTooltip.js +3 -6
- package/src/components/tooltip/QTooltip.json +0 -4
- package/src/components/tree/QTree.js +6 -6
- package/src/components/tree/QTree.json +15 -31
- package/src/components/uploader/QUploader.json +13 -22
- package/src/components/uploader/QUploaderAddTrigger.js +7 -3
- package/src/components/uploader/xhr-uploader-plugin.js +1 -1
- package/src/components/uploader/xhr-uploader-plugin.json +25 -50
- package/src/components/virtual-scroll/QVirtualScroll.json +5 -10
- package/src/components/virtual-scroll/use-virtual-scroll.js +1 -1
- package/src/components/virtual-scroll/use-virtual-scroll.json +8 -19
- package/src/composables/private/use-field.js +1 -1
- package/src/composables/private/use-field.json +2 -3
- package/src/composables/private/use-file.js +10 -1
- package/src/composables/private/use-file.json +4 -13
- package/src/composables/private/use-model-toggle.js +3 -3
- package/src/composables/private/use-panel.js +2 -2
- package/src/composables/private/use-panel.json +0 -2
- package/src/composables/private/use-portal.js +5 -1
- package/src/composables/private/use-portal.json +7 -1
- package/src/composables/private/use-transition.js +17 -11
- package/src/composables/private/use-transition.json +0 -1
- package/src/composables/private/use-validate.json +1 -3
- package/src/directives/Intersection.json +26 -53
- package/src/directives/Morph.json +4 -8
- package/src/directives/Mutation.json +6 -12
- package/src/directives/Scroll.json +2 -4
- package/src/directives/TouchHold.json +3 -6
- package/src/directives/TouchPan.json +7 -14
- package/src/directives/TouchRepeat.json +6 -12
- package/src/directives/TouchSwipe.json +3 -6
- package/src/plugins/BottomSheet.json +1 -2
- package/src/plugins/Cookies.json +2 -4
- package/src/plugins/Dialog.json +32 -72
- package/src/plugins/Loading.json +6 -11
- package/src/plugins/LoadingBar.json +3 -6
- package/src/plugins/Notify.json +4 -5
- package/src/plugins/Platform.json +3 -6
- package/src/plugins/Screen.json +9 -18
- package/src/utils/private/global-dialog.json +6 -12
- package/src/utils/private/portal.js +4 -4
- package/src/utils/private/symbols.js +2 -0
- package/src/utils/private/web-storage.json +6 -10
package/dist/quasar.umd.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Quasar Framework v2.
|
|
2
|
+
* Quasar Framework v2.10.1
|
|
3
3
|
* (c) 2015-present Razvan Stoenescu
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -1398,6 +1398,8 @@
|
|
|
1398
1398
|
const tabsKey = '_q_tabs_';
|
|
1399
1399
|
const uploaderKey = '_q_u_';
|
|
1400
1400
|
|
|
1401
|
+
const emptyRenderFn = () => {};
|
|
1402
|
+
|
|
1401
1403
|
const globalConfig = {};
|
|
1402
1404
|
let globalConfigIsFrozen = false;
|
|
1403
1405
|
|
|
@@ -1610,7 +1612,7 @@
|
|
|
1610
1612
|
}
|
|
1611
1613
|
|
|
1612
1614
|
var installQuasar = function (parentApp, opts = {}) {
|
|
1613
|
-
const $q = { version: '2.
|
|
1615
|
+
const $q = { version: '2.10.1' };
|
|
1614
1616
|
|
|
1615
1617
|
if (globalConfigIsFrozen === false) {
|
|
1616
1618
|
if (opts.config !== void 0) {
|
|
@@ -2369,7 +2371,7 @@
|
|
|
2369
2371
|
return () => vue.h('div', {
|
|
2370
2372
|
class: classes.value,
|
|
2371
2373
|
style: style.value,
|
|
2372
|
-
role: '
|
|
2374
|
+
role: 'status',
|
|
2373
2375
|
'aria-label': props.label
|
|
2374
2376
|
}, hMergeSlot(slots.default, props.label !== void 0 ? [ props.label ] : []))
|
|
2375
2377
|
}
|
|
@@ -3300,7 +3302,7 @@
|
|
|
3300
3302
|
}
|
|
3301
3303
|
);
|
|
3302
3304
|
|
|
3303
|
-
const
|
|
3305
|
+
const btnPadding = {
|
|
3304
3306
|
none: 0,
|
|
3305
3307
|
xs: 4,
|
|
3306
3308
|
sm: 8,
|
|
@@ -3320,6 +3322,21 @@
|
|
|
3320
3322
|
const formTypes = [ 'button', 'submit', 'reset' ];
|
|
3321
3323
|
const mediaTypeRE = /[^\s]\/[^\s]/;
|
|
3322
3324
|
|
|
3325
|
+
const btnDesignOptions = [ 'flat', 'outline', 'push', 'unelevated' ];
|
|
3326
|
+
const getBtnDesign = (props, defaultValue) => {
|
|
3327
|
+
if (props.flat === true) return 'flat'
|
|
3328
|
+
if (props.outline === true) return 'outline'
|
|
3329
|
+
if (props.push === true) return 'push'
|
|
3330
|
+
if (props.unelevated === true) return 'unelevated'
|
|
3331
|
+
return defaultValue
|
|
3332
|
+
};
|
|
3333
|
+
const getBtnDesignAttr = props => {
|
|
3334
|
+
const design = getBtnDesign(props);
|
|
3335
|
+
return design !== void 0
|
|
3336
|
+
? { [ design ]: true }
|
|
3337
|
+
: {}
|
|
3338
|
+
};
|
|
3339
|
+
|
|
3323
3340
|
const useBtnProps = {
|
|
3324
3341
|
...useSizeProps,
|
|
3325
3342
|
...useRouterLinkProps,
|
|
@@ -3333,13 +3350,14 @@
|
|
|
3333
3350
|
icon: String,
|
|
3334
3351
|
iconRight: String,
|
|
3335
3352
|
|
|
3336
|
-
|
|
3353
|
+
...btnDesignOptions.reduce(
|
|
3354
|
+
(acc, val) => (acc[ val ] = Boolean) && acc,
|
|
3355
|
+
{}
|
|
3356
|
+
),
|
|
3357
|
+
|
|
3337
3358
|
square: Boolean,
|
|
3338
|
-
|
|
3339
|
-
flat: Boolean,
|
|
3340
|
-
unelevated: Boolean,
|
|
3359
|
+
round: Boolean,
|
|
3341
3360
|
rounded: Boolean,
|
|
3342
|
-
push: Boolean,
|
|
3343
3361
|
glossy: Boolean,
|
|
3344
3362
|
|
|
3345
3363
|
size: String,
|
|
@@ -3389,7 +3407,7 @@
|
|
|
3389
3407
|
? Object.assign({}, obj, {
|
|
3390
3408
|
padding: props.padding
|
|
3391
3409
|
.split(/\s+/)
|
|
3392
|
-
.map(v => (v in
|
|
3410
|
+
.map(v => (v in btnPadding ? btnPadding[ v ] + 'px' : v))
|
|
3393
3411
|
.join(' '),
|
|
3394
3412
|
minWidth: '0',
|
|
3395
3413
|
minHeight: '0'
|
|
@@ -3409,13 +3427,7 @@
|
|
|
3409
3427
|
isActionable.value === true ? props.tabindex || 0 : -1
|
|
3410
3428
|
));
|
|
3411
3429
|
|
|
3412
|
-
const design = vue.computed(() =>
|
|
3413
|
-
if (props.flat === true) return 'flat'
|
|
3414
|
-
if (props.outline === true) return 'outline'
|
|
3415
|
-
if (props.push === true) return 'push'
|
|
3416
|
-
if (props.unelevated === true) return 'unelevated'
|
|
3417
|
-
return 'standard'
|
|
3418
|
-
});
|
|
3430
|
+
const design = vue.computed(() => getBtnDesign(props, 'standard'));
|
|
3419
3431
|
|
|
3420
3432
|
const attributes = vue.computed(() => {
|
|
3421
3433
|
const acc = { tabindex: tabIndex.value };
|
|
@@ -4175,7 +4187,7 @@
|
|
|
4175
4187
|
};
|
|
4176
4188
|
|
|
4177
4189
|
const useModelToggleEmits = [
|
|
4178
|
-
'
|
|
4190
|
+
'beforeShow', 'show', 'beforeHide', 'hide'
|
|
4179
4191
|
];
|
|
4180
4192
|
|
|
4181
4193
|
// handleShow/handleHide -> removeTick(), self (& emit show)
|
|
@@ -4235,7 +4247,7 @@
|
|
|
4235
4247
|
|
|
4236
4248
|
showing.value = true;
|
|
4237
4249
|
|
|
4238
|
-
emit('
|
|
4250
|
+
emit('beforeShow', evt);
|
|
4239
4251
|
|
|
4240
4252
|
if (handleShow !== void 0) {
|
|
4241
4253
|
handleShow(evt);
|
|
@@ -4274,7 +4286,7 @@
|
|
|
4274
4286
|
|
|
4275
4287
|
showing.value = false;
|
|
4276
4288
|
|
|
4277
|
-
emit('
|
|
4289
|
+
emit('beforeHide', evt);
|
|
4278
4290
|
|
|
4279
4291
|
if (handleHide !== void 0) {
|
|
4280
4292
|
handleHide(evt);
|
|
@@ -4396,8 +4408,8 @@
|
|
|
4396
4408
|
|
|
4397
4409
|
function getPortalProxy (el) {
|
|
4398
4410
|
return portalProxyList.find(proxy =>
|
|
4399
|
-
proxy.
|
|
4400
|
-
&& proxy.
|
|
4411
|
+
proxy.contentEl !== null
|
|
4412
|
+
&& proxy.contentEl.contains(el)
|
|
4401
4413
|
)
|
|
4402
4414
|
}
|
|
4403
4415
|
|
|
@@ -4411,7 +4423,7 @@
|
|
|
4411
4423
|
return getParentProxy(proxy)
|
|
4412
4424
|
}
|
|
4413
4425
|
}
|
|
4414
|
-
else if (proxy.
|
|
4426
|
+
else if (proxy.__qPortal === true) {
|
|
4415
4427
|
// treat it as point of separation if parent is QPopupProxy
|
|
4416
4428
|
// (so mobile matches desktop behavior)
|
|
4417
4429
|
// and hide it too
|
|
@@ -4432,7 +4444,7 @@
|
|
|
4432
4444
|
|
|
4433
4445
|
function closePortals (proxy, evt, depth) {
|
|
4434
4446
|
while (depth !== 0 && proxy !== void 0 && proxy !== null) {
|
|
4435
|
-
if (proxy.
|
|
4447
|
+
if (proxy.__qPortal === true) {
|
|
4436
4448
|
depth--;
|
|
4437
4449
|
|
|
4438
4450
|
if (proxy.$options.name === 'QMenu') {
|
|
@@ -4524,7 +4536,10 @@
|
|
|
4524
4536
|
vue.onUnmounted(() => { hidePortal(true); });
|
|
4525
4537
|
|
|
4526
4538
|
// needed for portal vm detection
|
|
4527
|
-
vm.proxy.
|
|
4539
|
+
vm.proxy.__qPortal = true;
|
|
4540
|
+
|
|
4541
|
+
// public way of accessing the rendered content
|
|
4542
|
+
injectProp(vm.proxy, 'contentEl', () => innerRef.value);
|
|
4528
4543
|
|
|
4529
4544
|
return {
|
|
4530
4545
|
showPortal,
|
|
@@ -4562,18 +4577,24 @@
|
|
|
4562
4577
|
}
|
|
4563
4578
|
};
|
|
4564
4579
|
|
|
4565
|
-
function useTransition (props,
|
|
4566
|
-
|
|
4580
|
+
function useTransition (props, defaultShowFn = () => {}, defaultHideFn = () => {}) {
|
|
4581
|
+
return {
|
|
4582
|
+
transitionProps: vue.computed(() => {
|
|
4583
|
+
const show = `q-transition--${ props.transitionShow || defaultShowFn() }`;
|
|
4584
|
+
const hide = `q-transition--${ props.transitionHide || defaultHideFn() }`;
|
|
4567
4585
|
|
|
4568
|
-
|
|
4569
|
-
|
|
4570
|
-
});
|
|
4586
|
+
return {
|
|
4587
|
+
appear: true,
|
|
4571
4588
|
|
|
4572
|
-
|
|
4573
|
-
|
|
4574
|
-
|
|
4575
|
-
|
|
4576
|
-
|
|
4589
|
+
enterFromClass: `${ show }-enter-from`,
|
|
4590
|
+
enterActiveClass: `${ show }-enter-active`,
|
|
4591
|
+
enterToClass: `${ show }-enter-to`,
|
|
4592
|
+
|
|
4593
|
+
leaveFromClass: `${ hide }-leave-from`,
|
|
4594
|
+
leaveActiveClass: `${ hide }-leave-active`,
|
|
4595
|
+
leaveToClass: `${ hide }-leave-to`
|
|
4596
|
+
}
|
|
4597
|
+
}),
|
|
4577
4598
|
|
|
4578
4599
|
transitionStyle: vue.computed(() => `--q-transition-duration: ${ props.transitionDuration }ms`)
|
|
4579
4600
|
}
|
|
@@ -5296,7 +5317,7 @@
|
|
|
5296
5317
|
|
|
5297
5318
|
emits: [
|
|
5298
5319
|
...useModelToggleEmits,
|
|
5299
|
-
'click', '
|
|
5320
|
+
'click', 'escapeKey'
|
|
5300
5321
|
],
|
|
5301
5322
|
|
|
5302
5323
|
setup (props, { slots, emit, attrs }) {
|
|
@@ -5317,7 +5338,7 @@
|
|
|
5317
5338
|
const isDark = useDark(props, $q);
|
|
5318
5339
|
const { registerTick, removeTick } = useTick();
|
|
5319
5340
|
const { registerTimeout } = useTimeout();
|
|
5320
|
-
const {
|
|
5341
|
+
const { transitionProps, transitionStyle } = useTransition(props);
|
|
5321
5342
|
const { localScrollTarget, changeScrollEvent, unconfigureScrollTarget } = useScrollTarget(props, configureScrollTarget);
|
|
5322
5343
|
|
|
5323
5344
|
const { anchorEl, canShow } = useAnchor({ showing });
|
|
@@ -5397,7 +5418,10 @@
|
|
|
5397
5418
|
let node = innerRef.value;
|
|
5398
5419
|
|
|
5399
5420
|
if (node && node.contains(document.activeElement) !== true) {
|
|
5400
|
-
node = node.querySelector('[autofocus], [data-autofocus]')
|
|
5421
|
+
node = node.querySelector('[autofocus][tabindex], [data-autofocus][tabindex]')
|
|
5422
|
+
|| node.querySelector('[autofocus] [tabindex], [data-autofocus] [tabindex]')
|
|
5423
|
+
|| node.querySelector('[autofocus], [data-autofocus]')
|
|
5424
|
+
|| node;
|
|
5401
5425
|
node.focus({ preventScroll: true });
|
|
5402
5426
|
}
|
|
5403
5427
|
});
|
|
@@ -5534,7 +5558,7 @@
|
|
|
5534
5558
|
}
|
|
5535
5559
|
|
|
5536
5560
|
function onEscapeKey (evt) {
|
|
5537
|
-
emit('
|
|
5561
|
+
emit('escapeKey');
|
|
5538
5562
|
hide(evt);
|
|
5539
5563
|
}
|
|
5540
5564
|
|
|
@@ -5562,7 +5586,7 @@
|
|
|
5562
5586
|
function renderPortalContent () {
|
|
5563
5587
|
return vue.h(
|
|
5564
5588
|
vue.Transition,
|
|
5565
|
-
|
|
5589
|
+
transitionProps.value,
|
|
5566
5590
|
() => (
|
|
5567
5591
|
showing.value === true
|
|
5568
5592
|
? vue.h('div', {
|
|
@@ -5667,11 +5691,25 @@
|
|
|
5667
5691
|
+ hexBytes[ b[ 14 ] ] + hexBytes[ b[ 15 ] ]
|
|
5668
5692
|
}
|
|
5669
5693
|
|
|
5694
|
+
const btnPropsList = Object.keys(useBtnProps);
|
|
5695
|
+
|
|
5696
|
+
const passBtnProps = props => btnPropsList.reduce(
|
|
5697
|
+
(acc, key) => {
|
|
5698
|
+
const val = props[ key ];
|
|
5699
|
+
if (val !== void 0) {
|
|
5700
|
+
acc[ key ] = val;
|
|
5701
|
+
}
|
|
5702
|
+
return acc
|
|
5703
|
+
},
|
|
5704
|
+
{}
|
|
5705
|
+
);
|
|
5706
|
+
|
|
5670
5707
|
var QBtnDropdown = createComponent({
|
|
5671
5708
|
name: 'QBtnDropdown',
|
|
5672
5709
|
|
|
5673
5710
|
props: {
|
|
5674
5711
|
...useBtnProps,
|
|
5712
|
+
...useTransitionProps,
|
|
5675
5713
|
|
|
5676
5714
|
modelValue: Boolean,
|
|
5677
5715
|
split: Boolean,
|
|
@@ -5703,7 +5741,7 @@
|
|
|
5703
5741
|
toggleAriaLabel: String
|
|
5704
5742
|
},
|
|
5705
5743
|
|
|
5706
|
-
emits: [ 'update:modelValue', 'click', '
|
|
5744
|
+
emits: [ 'update:modelValue', 'click', 'beforeShow', 'show', 'beforeHide', 'hide' ],
|
|
5707
5745
|
|
|
5708
5746
|
setup (props, { slots, emit }) {
|
|
5709
5747
|
const { proxy } = vue.getCurrentInstance();
|
|
@@ -5712,7 +5750,7 @@
|
|
|
5712
5750
|
const menuRef = vue.ref(null);
|
|
5713
5751
|
const targetUid = uid$3();
|
|
5714
5752
|
|
|
5715
|
-
const
|
|
5753
|
+
const ariaAttrs = vue.computed(() => {
|
|
5716
5754
|
const acc = {
|
|
5717
5755
|
'aria-expanded': showing.value === true ? 'true' : 'false',
|
|
5718
5756
|
'aria-haspopup': 'true',
|
|
@@ -5740,6 +5778,9 @@
|
|
|
5740
5778
|
+ (props.split === false ? ' q-btn-dropdown__arrow-container' : '')
|
|
5741
5779
|
);
|
|
5742
5780
|
|
|
5781
|
+
const btnDesignAttr = vue.computed(() => getBtnDesignAttr(props));
|
|
5782
|
+
const btnProps = vue.computed(() => passBtnProps(props));
|
|
5783
|
+
|
|
5743
5784
|
vue.watch(() => props.modelValue, val => {
|
|
5744
5785
|
menuRef.value !== null && menuRef.value[ val ? 'show' : 'hide' ]();
|
|
5745
5786
|
});
|
|
@@ -5748,7 +5789,7 @@
|
|
|
5748
5789
|
|
|
5749
5790
|
function onBeforeShow (e) {
|
|
5750
5791
|
showing.value = true;
|
|
5751
|
-
emit('
|
|
5792
|
+
emit('beforeShow', e);
|
|
5752
5793
|
}
|
|
5753
5794
|
|
|
5754
5795
|
function onShow (e) {
|
|
@@ -5758,7 +5799,7 @@
|
|
|
5758
5799
|
|
|
5759
5800
|
function onBeforeHide (e) {
|
|
5760
5801
|
showing.value = false;
|
|
5761
|
-
emit('
|
|
5802
|
+
emit('beforeHide', e);
|
|
5762
5803
|
}
|
|
5763
5804
|
|
|
5764
5805
|
function onHide (e) {
|
|
@@ -5820,6 +5861,9 @@
|
|
|
5820
5861
|
self: props.menuSelf,
|
|
5821
5862
|
offset: props.menuOffset,
|
|
5822
5863
|
separateClosePopup: true,
|
|
5864
|
+
transitionShow: props.transitionShow,
|
|
5865
|
+
transitionHide: props.transitionHide,
|
|
5866
|
+
transitionDuration: props.transitionDuration,
|
|
5823
5867
|
onBeforeShow,
|
|
5824
5868
|
onShow,
|
|
5825
5869
|
onBeforeHide,
|
|
@@ -5830,11 +5874,11 @@
|
|
|
5830
5874
|
if (props.split === false) {
|
|
5831
5875
|
return vue.h(QBtn, {
|
|
5832
5876
|
class: 'q-btn-dropdown q-btn-dropdown--simple',
|
|
5833
|
-
...
|
|
5877
|
+
...btnProps.value,
|
|
5878
|
+
...ariaAttrs.value,
|
|
5834
5879
|
disable: props.disable === true || props.disableMainBtn === true,
|
|
5835
5880
|
noWrap: true,
|
|
5836
5881
|
round: false,
|
|
5837
|
-
...attributes.value,
|
|
5838
5882
|
onClick
|
|
5839
5883
|
}, {
|
|
5840
5884
|
default: () => hSlot(slots.label, []).concat(Arrow),
|
|
@@ -5844,21 +5888,17 @@
|
|
|
5844
5888
|
|
|
5845
5889
|
return vue.h(QBtnGroup, {
|
|
5846
5890
|
class: 'q-btn-dropdown q-btn-dropdown--split no-wrap q-btn-item',
|
|
5847
|
-
outline: props.outline,
|
|
5848
|
-
flat: props.flat,
|
|
5849
5891
|
rounded: props.rounded,
|
|
5850
5892
|
square: props.square,
|
|
5851
|
-
|
|
5852
|
-
unelevated: props.unelevated,
|
|
5893
|
+
...btnDesignAttr.value,
|
|
5853
5894
|
glossy: props.glossy,
|
|
5854
5895
|
stretch: props.stretch
|
|
5855
5896
|
}, () => [
|
|
5856
5897
|
vue.h(QBtn, {
|
|
5857
5898
|
class: 'q-btn-dropdown--current',
|
|
5858
|
-
...
|
|
5899
|
+
...btnProps.value,
|
|
5859
5900
|
disable: props.disable === true || props.disableMainBtn === true,
|
|
5860
5901
|
noWrap: true,
|
|
5861
|
-
iconRight: props.iconRight,
|
|
5862
5902
|
round: false,
|
|
5863
5903
|
onClick: onClickHide
|
|
5864
5904
|
}, {
|
|
@@ -5868,16 +5908,15 @@
|
|
|
5868
5908
|
|
|
5869
5909
|
vue.h(QBtn, {
|
|
5870
5910
|
class: 'q-btn-dropdown__arrow-container q-anchor--skip',
|
|
5871
|
-
...
|
|
5911
|
+
...ariaAttrs.value,
|
|
5912
|
+
...btnDesignAttr.value,
|
|
5872
5913
|
disable: props.disable === true || props.disableDropdown === true,
|
|
5873
|
-
outline: props.outline,
|
|
5874
|
-
flat: props.flat,
|
|
5875
5914
|
rounded: props.rounded,
|
|
5876
|
-
push: props.push,
|
|
5877
|
-
size: props.size,
|
|
5878
5915
|
color: props.color,
|
|
5879
5916
|
textColor: props.textColor,
|
|
5880
5917
|
dense: props.dense,
|
|
5918
|
+
size: props.size,
|
|
5919
|
+
padding: props.padding,
|
|
5881
5920
|
ripple: props.ripple
|
|
5882
5921
|
}, () => Arrow)
|
|
5883
5922
|
])
|
|
@@ -5984,6 +6023,14 @@
|
|
|
5984
6023
|
|
|
5985
6024
|
const injectFormInput = useFormInject(formAttrs);
|
|
5986
6025
|
|
|
6026
|
+
const btnDesignAttr = vue.computed(() => getBtnDesignAttr(props));
|
|
6027
|
+
|
|
6028
|
+
const btnOptionDesign = vue.computed(() => ({
|
|
6029
|
+
rounded: props.rounded,
|
|
6030
|
+
dense: props.dense,
|
|
6031
|
+
...btnDesignAttr.value
|
|
6032
|
+
}));
|
|
6033
|
+
|
|
5987
6034
|
const btnOptions = vue.computed(() => props.options.map((item, i) => {
|
|
5988
6035
|
const { attrs, value, slot, ...opt } = item;
|
|
5989
6036
|
|
|
@@ -5991,19 +6038,11 @@
|
|
|
5991
6038
|
slot,
|
|
5992
6039
|
props: {
|
|
5993
6040
|
key: i,
|
|
5994
|
-
onClick (e) { set(value, item, e); },
|
|
5995
6041
|
|
|
5996
6042
|
'aria-pressed': value === props.modelValue ? 'true' : 'false',
|
|
5997
|
-
|
|
5998
6043
|
...attrs,
|
|
5999
6044
|
...opt,
|
|
6000
|
-
|
|
6001
|
-
outline: props.outline,
|
|
6002
|
-
flat: props.flat,
|
|
6003
|
-
rounded: props.rounded,
|
|
6004
|
-
push: props.push,
|
|
6005
|
-
unelevated: props.unelevated,
|
|
6006
|
-
dense: props.dense,
|
|
6045
|
+
...btnOptionDesign.value,
|
|
6007
6046
|
|
|
6008
6047
|
disable: props.disable === true || opt.disable === true,
|
|
6009
6048
|
|
|
@@ -6021,7 +6060,9 @@
|
|
|
6021
6060
|
padding: mergeOpt(opt, 'padding'),
|
|
6022
6061
|
ripple: mergeOpt(opt, 'ripple'),
|
|
6023
6062
|
stack: mergeOpt(opt, 'stack') === true,
|
|
6024
|
-
stretch: mergeOpt(opt, 'stretch') === true
|
|
6063
|
+
stretch: mergeOpt(opt, 'stretch') === true,
|
|
6064
|
+
|
|
6065
|
+
onClick (e) { set(value, item, e); }
|
|
6025
6066
|
}
|
|
6026
6067
|
}
|
|
6027
6068
|
}));
|
|
@@ -6060,12 +6101,9 @@
|
|
|
6060
6101
|
|
|
6061
6102
|
return () => vue.h(QBtnGroup, {
|
|
6062
6103
|
class: 'q-btn-toggle',
|
|
6063
|
-
|
|
6064
|
-
flat: props.flat,
|
|
6104
|
+
...btnDesignAttr.value,
|
|
6065
6105
|
rounded: props.rounded,
|
|
6066
|
-
push: props.push,
|
|
6067
6106
|
stretch: props.stretch,
|
|
6068
|
-
unelevated: props.unelevated,
|
|
6069
6107
|
glossy: props.glossy,
|
|
6070
6108
|
spread: props.spread
|
|
6071
6109
|
}, getContent)
|
|
@@ -6523,7 +6561,7 @@
|
|
|
6523
6561
|
keepAliveMax: Number
|
|
6524
6562
|
};
|
|
6525
6563
|
|
|
6526
|
-
const usePanelEmits = [ 'update:modelValue', '
|
|
6564
|
+
const usePanelEmits = [ 'update:modelValue', 'beforeTransition', 'transition' ];
|
|
6527
6565
|
|
|
6528
6566
|
function usePanel () {
|
|
6529
6567
|
const { props, emit, proxy } = vue.getCurrentInstance();
|
|
@@ -6595,7 +6633,7 @@
|
|
|
6595
6633
|
|
|
6596
6634
|
if (panelIndex.value !== index) {
|
|
6597
6635
|
panelIndex.value = index;
|
|
6598
|
-
emit('
|
|
6636
|
+
emit('beforeTransition', newVal, oldVal);
|
|
6599
6637
|
vue.nextTick(() => {
|
|
6600
6638
|
emit('transition', newVal, oldVal);
|
|
6601
6639
|
});
|
|
@@ -7506,7 +7544,7 @@
|
|
|
7506
7544
|
const attributes = vue.computed(() => {
|
|
7507
7545
|
const attrs = {
|
|
7508
7546
|
tabindex: tabindex.value,
|
|
7509
|
-
role: 'checkbox',
|
|
7547
|
+
role: type === 'toggle' ? 'switch' : 'checkbox',
|
|
7510
7548
|
'aria-label': props.label,
|
|
7511
7549
|
'aria-checked': isIndeterminate.value === true
|
|
7512
7550
|
? 'mixed'
|
|
@@ -7771,16 +7809,19 @@
|
|
|
7771
7809
|
+ (isDark.value === true ? ' q-chip--dark q-dark' : '')
|
|
7772
7810
|
});
|
|
7773
7811
|
|
|
7774
|
-
const attributes = vue.computed(() =>
|
|
7775
|
-
props.disable === true
|
|
7812
|
+
const attributes = vue.computed(() => {
|
|
7813
|
+
const chip = props.disable === true
|
|
7776
7814
|
? { tabindex: -1, 'aria-disabled': 'true' }
|
|
7777
|
-
: {
|
|
7778
|
-
|
|
7779
|
-
|
|
7780
|
-
|
|
7781
|
-
|
|
7782
|
-
|
|
7783
|
-
|
|
7815
|
+
: { tabindex: props.tabindex || 0 };
|
|
7816
|
+
const remove = {
|
|
7817
|
+
...chip,
|
|
7818
|
+
role: 'button',
|
|
7819
|
+
'aria-hidden': 'false',
|
|
7820
|
+
'aria-label': props.removeAriaLabel || $q.lang.label.remove
|
|
7821
|
+
};
|
|
7822
|
+
|
|
7823
|
+
return { chip, remove }
|
|
7824
|
+
});
|
|
7784
7825
|
|
|
7785
7826
|
function onKeyup (e) {
|
|
7786
7827
|
e.keyCode === 13 /* ENTER */ && onClick(e);
|
|
@@ -7838,7 +7879,7 @@
|
|
|
7838
7879
|
vue.h(QIcon, {
|
|
7839
7880
|
class: 'q-chip__icon q-chip__icon--remove cursor-pointer',
|
|
7840
7881
|
name: removeIcon.value,
|
|
7841
|
-
...attributes.value,
|
|
7882
|
+
...attributes.value.remove,
|
|
7842
7883
|
onClick: onRemove,
|
|
7843
7884
|
onKeyup: onRemove
|
|
7844
7885
|
})
|
|
@@ -7857,7 +7898,7 @@
|
|
|
7857
7898
|
|
|
7858
7899
|
isClickable.value === true && Object.assign(
|
|
7859
7900
|
data,
|
|
7860
|
-
attributes.value,
|
|
7901
|
+
attributes.value.chip,
|
|
7861
7902
|
{ onClick, onKeyup }
|
|
7862
7903
|
);
|
|
7863
7904
|
|
|
@@ -9341,17 +9382,21 @@
|
|
|
9341
9382
|
if (hasObserver === true) {
|
|
9342
9383
|
let observer;
|
|
9343
9384
|
|
|
9344
|
-
|
|
9345
|
-
|
|
9346
|
-
|
|
9385
|
+
// initialize as soon as possible
|
|
9386
|
+
const init = stop => {
|
|
9387
|
+
targetEl = proxy.$el.parentNode;
|
|
9347
9388
|
|
|
9348
|
-
|
|
9349
|
-
|
|
9350
|
-
|
|
9351
|
-
|
|
9352
|
-
|
|
9353
|
-
|
|
9354
|
-
|
|
9389
|
+
if (targetEl) {
|
|
9390
|
+
observer = new ResizeObserver(trigger);
|
|
9391
|
+
observer.observe(targetEl);
|
|
9392
|
+
emitEvent();
|
|
9393
|
+
}
|
|
9394
|
+
else if (stop !== true) {
|
|
9395
|
+
vue.nextTick(() => { init(true); });
|
|
9396
|
+
}
|
|
9397
|
+
};
|
|
9398
|
+
|
|
9399
|
+
vue.onMounted(() => { init(); });
|
|
9355
9400
|
|
|
9356
9401
|
vue.onBeforeUnmount(() => {
|
|
9357
9402
|
clearTimeout(timer);
|
|
@@ -10035,13 +10080,6 @@
|
|
|
10035
10080
|
}
|
|
10036
10081
|
}
|
|
10037
10082
|
|
|
10038
|
-
/*
|
|
10039
|
-
* Vue has an aggressive diff (in-place replacement) so we cannot
|
|
10040
|
-
* ensure that the instance getting destroyed is the actual tab
|
|
10041
|
-
* reported here. As a result, we cannot use its name or check
|
|
10042
|
-
* if it's a route one to make the necessary updates. We need to
|
|
10043
|
-
* always check the existing list again and infer the changes.
|
|
10044
|
-
*/
|
|
10045
10083
|
function unregisterTab (tabData) {
|
|
10046
10084
|
tabDataList.splice(tabDataList.indexOf(tabData), 1);
|
|
10047
10085
|
tabDataListLen.value--;
|
|
@@ -10173,9 +10211,11 @@
|
|
|
10173
10211
|
};
|
|
10174
10212
|
|
|
10175
10213
|
function useTab (props, slots, emit, routeData) {
|
|
10176
|
-
const $tabs = vue.inject(tabsKey,
|
|
10214
|
+
const $tabs = vue.inject(tabsKey, emptyRenderFn);
|
|
10215
|
+
if ($tabs === emptyRenderFn) {
|
|
10177
10216
|
console.error('QTab/QRouteTab component needs to be child of QTabs');
|
|
10178
|
-
|
|
10217
|
+
return emptyRenderFn
|
|
10218
|
+
}
|
|
10179
10219
|
|
|
10180
10220
|
const { proxy } = vue.getCurrentInstance();
|
|
10181
10221
|
|
|
@@ -10451,7 +10491,7 @@
|
|
|
10451
10491
|
props: usePanelChildProps,
|
|
10452
10492
|
|
|
10453
10493
|
setup (_, { slots }) {
|
|
10454
|
-
return () => vue.h('div', { class: 'q-tab-panel' }, hSlot(slots.default))
|
|
10494
|
+
return () => vue.h('div', { class: 'q-tab-panel', role: 'tabpanel' }, hSlot(slots.default))
|
|
10455
10495
|
}
|
|
10456
10496
|
});
|
|
10457
10497
|
|
|
@@ -13053,7 +13093,7 @@
|
|
|
13053
13093
|
|
|
13054
13094
|
emits: [
|
|
13055
13095
|
...useDatetimeEmits,
|
|
13056
|
-
'
|
|
13096
|
+
'rangeStart', 'rangeEnd', 'navigation'
|
|
13057
13097
|
],
|
|
13058
13098
|
|
|
13059
13099
|
setup (props, { slots, emit }) {
|
|
@@ -14362,7 +14402,7 @@
|
|
|
14362
14402
|
finalHash: initHash
|
|
14363
14403
|
};
|
|
14364
14404
|
|
|
14365
|
-
emit('
|
|
14405
|
+
emit('rangeStart', getShortDate(day));
|
|
14366
14406
|
}
|
|
14367
14407
|
else {
|
|
14368
14408
|
const
|
|
@@ -14375,7 +14415,7 @@
|
|
|
14375
14415
|
editRange.value = null;
|
|
14376
14416
|
addToModel(initHash === finalHash ? day : { target: day, ...payload });
|
|
14377
14417
|
|
|
14378
|
-
emit('
|
|
14418
|
+
emit('rangeEnd', {
|
|
14379
14419
|
from: getShortDate(payload.from),
|
|
14380
14420
|
to: getShortDate(payload.to)
|
|
14381
14421
|
});
|
|
@@ -14680,7 +14720,7 @@
|
|
|
14680
14720
|
left: 'fixed-left items-center'
|
|
14681
14721
|
};
|
|
14682
14722
|
|
|
14683
|
-
const
|
|
14723
|
+
const defaultTransitions = {
|
|
14684
14724
|
standard: [ 'scale', 'scale' ],
|
|
14685
14725
|
top: [ 'slide-down', 'slide-up' ],
|
|
14686
14726
|
bottom: [ 'slide-up', 'slide-down' ],
|
|
@@ -14697,8 +14737,8 @@
|
|
|
14697
14737
|
...useModelToggleProps,
|
|
14698
14738
|
...useTransitionProps,
|
|
14699
14739
|
|
|
14700
|
-
transitionShow: String,
|
|
14701
|
-
transitionHide: String,
|
|
14740
|
+
transitionShow: String, // override useTransitionProps
|
|
14741
|
+
transitionHide: String, // override useTransitionProps
|
|
14702
14742
|
|
|
14703
14743
|
persistent: Boolean,
|
|
14704
14744
|
autoClose: Boolean,
|
|
@@ -14729,7 +14769,7 @@
|
|
|
14729
14769
|
|
|
14730
14770
|
emits: [
|
|
14731
14771
|
...useModelToggleEmits,
|
|
14732
|
-
'shake', 'click', '
|
|
14772
|
+
'shake', 'click', 'escapeKey'
|
|
14733
14773
|
],
|
|
14734
14774
|
|
|
14735
14775
|
setup (props, { slots, emit, attrs }) {
|
|
@@ -14737,7 +14777,6 @@
|
|
|
14737
14777
|
|
|
14738
14778
|
const innerRef = vue.ref(null);
|
|
14739
14779
|
const showing = vue.ref(false);
|
|
14740
|
-
const transitionState = vue.ref(false);
|
|
14741
14780
|
const animating = vue.ref(false);
|
|
14742
14781
|
|
|
14743
14782
|
let shakeTimeout, refocusTarget = null, isMaximized, avoidAutoClose;
|
|
@@ -14752,6 +14791,12 @@
|
|
|
14752
14791
|
const { registerTimeout } = useTimeout();
|
|
14753
14792
|
const { registerTick, removeTick } = useTick();
|
|
14754
14793
|
|
|
14794
|
+
const { transitionProps, transitionStyle } = useTransition(
|
|
14795
|
+
props,
|
|
14796
|
+
() => defaultTransitions[ props.position ][ 0 ],
|
|
14797
|
+
() => defaultTransitions[ props.position ][ 1 ]
|
|
14798
|
+
);
|
|
14799
|
+
|
|
14755
14800
|
const { showPortal, hidePortal, portalIsAccessible, renderPortal } = usePortal(
|
|
14756
14801
|
vm, innerRef, renderPortalContent, /* pls do check if on a global dialog */ true
|
|
14757
14802
|
);
|
|
@@ -14776,26 +14821,6 @@
|
|
|
14776
14821
|
+ (props.square === true ? ' q-dialog__inner--square' : '')
|
|
14777
14822
|
);
|
|
14778
14823
|
|
|
14779
|
-
const transitionShow = vue.computed(() =>
|
|
14780
|
-
'q-transition--'
|
|
14781
|
-
+ (props.transitionShow === void 0 ? transitions[ props.position ][ 0 ] : props.transitionShow)
|
|
14782
|
-
);
|
|
14783
|
-
|
|
14784
|
-
const transitionHide = vue.computed(() =>
|
|
14785
|
-
'q-transition--'
|
|
14786
|
-
+ (props.transitionHide === void 0 ? transitions[ props.position ][ 1 ] : props.transitionHide)
|
|
14787
|
-
);
|
|
14788
|
-
|
|
14789
|
-
const transition = vue.computed(() => (
|
|
14790
|
-
transitionState.value === true
|
|
14791
|
-
? transitionHide.value
|
|
14792
|
-
: transitionShow.value
|
|
14793
|
-
));
|
|
14794
|
-
|
|
14795
|
-
const transitionStyle = vue.computed(
|
|
14796
|
-
() => `--q-transition-duration: ${ props.transitionDuration }ms`
|
|
14797
|
-
);
|
|
14798
|
-
|
|
14799
14824
|
const useBackdrop = vue.computed(() => showing.value === true && props.seamless !== true);
|
|
14800
14825
|
|
|
14801
14826
|
const onEvents = vue.computed(() => (
|
|
@@ -14810,12 +14835,6 @@
|
|
|
14810
14835
|
attrs.class
|
|
14811
14836
|
]);
|
|
14812
14837
|
|
|
14813
|
-
vue.watch(showing, val => {
|
|
14814
|
-
vue.nextTick(() => {
|
|
14815
|
-
transitionState.value = val;
|
|
14816
|
-
});
|
|
14817
|
-
});
|
|
14818
|
-
|
|
14819
14838
|
vue.watch(() => props.maximized, state => {
|
|
14820
14839
|
showing.value === true && updateMaximized(state);
|
|
14821
14840
|
});
|
|
@@ -14915,13 +14934,23 @@
|
|
|
14915
14934
|
return
|
|
14916
14935
|
}
|
|
14917
14936
|
|
|
14918
|
-
node =
|
|
14937
|
+
node = (selector !== '' ? node.querySelector(selector) : null)
|
|
14938
|
+
|| node.querySelector('[autofocus][tabindex], [data-autofocus][tabindex]')
|
|
14939
|
+
|| node.querySelector('[autofocus] [tabindex], [data-autofocus] [tabindex]')
|
|
14940
|
+
|| node.querySelector('[autofocus], [data-autofocus]')
|
|
14941
|
+
|| node;
|
|
14919
14942
|
node.focus({ preventScroll: true });
|
|
14920
14943
|
});
|
|
14921
14944
|
}
|
|
14922
14945
|
|
|
14923
|
-
function shake () {
|
|
14924
|
-
focus
|
|
14946
|
+
function shake (refocusTarget) {
|
|
14947
|
+
if (refocusTarget && typeof refocusTarget.focus === 'function') {
|
|
14948
|
+
refocusTarget.focus({ preventScroll: true });
|
|
14949
|
+
}
|
|
14950
|
+
else {
|
|
14951
|
+
focus();
|
|
14952
|
+
}
|
|
14953
|
+
|
|
14925
14954
|
emit('shake');
|
|
14926
14955
|
|
|
14927
14956
|
const node = innerRef.value;
|
|
@@ -14947,7 +14976,7 @@
|
|
|
14947
14976
|
props.maximized !== true && props.noShake !== true && shake();
|
|
14948
14977
|
}
|
|
14949
14978
|
else {
|
|
14950
|
-
emit('
|
|
14979
|
+
emit('escapeKey');
|
|
14951
14980
|
hide();
|
|
14952
14981
|
}
|
|
14953
14982
|
}
|
|
@@ -15002,7 +15031,7 @@
|
|
|
15002
15031
|
hide(e);
|
|
15003
15032
|
}
|
|
15004
15033
|
else if (props.noShake !== true) {
|
|
15005
|
-
shake();
|
|
15034
|
+
shake(e.relatedTarget);
|
|
15006
15035
|
}
|
|
15007
15036
|
}
|
|
15008
15037
|
|
|
@@ -15031,7 +15060,8 @@
|
|
|
15031
15060
|
|
|
15032
15061
|
function renderPortalContent () {
|
|
15033
15062
|
return vue.h('div', {
|
|
15034
|
-
|
|
15063
|
+
role: 'dialog',
|
|
15064
|
+
'aria-modal': useBackdrop.value === true ? 'true' : 'false',
|
|
15035
15065
|
...attrs,
|
|
15036
15066
|
class: rootClasses.value
|
|
15037
15067
|
}, [
|
|
@@ -15044,14 +15074,15 @@
|
|
|
15044
15074
|
class: 'q-dialog__backdrop fixed-full',
|
|
15045
15075
|
style: transitionStyle.value,
|
|
15046
15076
|
'aria-hidden': 'true',
|
|
15047
|
-
|
|
15077
|
+
tabindex: -1,
|
|
15078
|
+
onFocusin: onBackdropClick
|
|
15048
15079
|
})
|
|
15049
15080
|
: null
|
|
15050
15081
|
)),
|
|
15051
15082
|
|
|
15052
15083
|
vue.h(
|
|
15053
15084
|
vue.Transition,
|
|
15054
|
-
|
|
15085
|
+
transitionProps.value,
|
|
15055
15086
|
() => (
|
|
15056
15087
|
showing.value === true
|
|
15057
15088
|
? vue.h('div', {
|
|
@@ -15124,7 +15155,7 @@
|
|
|
15124
15155
|
|
|
15125
15156
|
emits: [
|
|
15126
15157
|
...useModelToggleEmits,
|
|
15127
|
-
'
|
|
15158
|
+
'onLayout', 'miniState'
|
|
15128
15159
|
],
|
|
15129
15160
|
|
|
15130
15161
|
setup (props, { slots, emit, attrs }) {
|
|
@@ -15135,9 +15166,11 @@
|
|
|
15135
15166
|
const { preventBodyScroll } = usePreventScroll();
|
|
15136
15167
|
const { registerTimeout, removeTimeout } = useTimeout();
|
|
15137
15168
|
|
|
15138
|
-
const $layout = vue.inject(layoutKey,
|
|
15169
|
+
const $layout = vue.inject(layoutKey, emptyRenderFn);
|
|
15170
|
+
if ($layout === emptyRenderFn) {
|
|
15139
15171
|
console.error('QDrawer needs to be child of QLayout');
|
|
15140
|
-
|
|
15172
|
+
return emptyRenderFn
|
|
15173
|
+
}
|
|
15141
15174
|
|
|
15142
15175
|
let lastDesktopState, timerMini, layoutTotalWidthWatcher;
|
|
15143
15176
|
|
|
@@ -15455,7 +15488,7 @@
|
|
|
15455
15488
|
vue.watch(offset, val => { updateLayout('offset', val); });
|
|
15456
15489
|
|
|
15457
15490
|
vue.watch(onLayout, val => {
|
|
15458
|
-
emit('
|
|
15491
|
+
emit('onLayout', val);
|
|
15459
15492
|
updateLayout('space', val);
|
|
15460
15493
|
});
|
|
15461
15494
|
|
|
@@ -15479,7 +15512,7 @@
|
|
|
15479
15512
|
}
|
|
15480
15513
|
});
|
|
15481
15514
|
|
|
15482
|
-
vue.watch(isMini, val => { emit('
|
|
15515
|
+
vue.watch(isMini, val => { emit('miniState', val); });
|
|
15483
15516
|
|
|
15484
15517
|
function applyPosition (position) {
|
|
15485
15518
|
if (position === void 0) {
|
|
@@ -15644,8 +15677,8 @@
|
|
|
15644
15677
|
}
|
|
15645
15678
|
|
|
15646
15679
|
vue.onMounted(() => {
|
|
15647
|
-
emit('
|
|
15648
|
-
emit('
|
|
15680
|
+
emit('onLayout', onLayout.value);
|
|
15681
|
+
emit('miniState', isMini.value);
|
|
15649
15682
|
|
|
15650
15683
|
lastDesktopState = props.showIfAbove === true;
|
|
15651
15684
|
|
|
@@ -16198,7 +16231,7 @@
|
|
|
16198
16231
|
|
|
16199
16232
|
const { registerTick, removeTick } = useTick();
|
|
16200
16233
|
const { registerTimeout } = useTimeout();
|
|
16201
|
-
const {
|
|
16234
|
+
const { transitionProps, transitionStyle } = useTransition(props);
|
|
16202
16235
|
const { localScrollTarget, changeScrollEvent, unconfigureScrollTarget } = useScrollTarget(props, configureScrollTarget);
|
|
16203
16236
|
|
|
16204
16237
|
const { anchorEl, canShow, anchorEvents } = useAnchor({ showing, configureAnchorEl });
|
|
@@ -16389,16 +16422,13 @@
|
|
|
16389
16422
|
attrs.style,
|
|
16390
16423
|
transitionStyle.value
|
|
16391
16424
|
],
|
|
16392
|
-
role: '
|
|
16425
|
+
role: 'tooltip'
|
|
16393
16426
|
}, hSlot(slots.default))
|
|
16394
16427
|
: null
|
|
16395
16428
|
}
|
|
16396
16429
|
|
|
16397
16430
|
function renderPortalContent () {
|
|
16398
|
-
return vue.h(vue.Transition,
|
|
16399
|
-
name: transition.value,
|
|
16400
|
-
appear: true
|
|
16401
|
-
}, getTooltipContent)
|
|
16431
|
+
return vue.h(vue.Transition, transitionProps.value, getTooltipContent)
|
|
16402
16432
|
}
|
|
16403
16433
|
|
|
16404
16434
|
vue.onBeforeUnmount(anchorCleanup);
|
|
@@ -16538,6 +16568,7 @@
|
|
|
16538
16568
|
ref: rootRef,
|
|
16539
16569
|
class: classes.value,
|
|
16540
16570
|
style: style.value,
|
|
16571
|
+
role: 'listitem',
|
|
16541
16572
|
onClick,
|
|
16542
16573
|
onKeyup
|
|
16543
16574
|
};
|
|
@@ -17771,7 +17802,7 @@
|
|
|
17771
17802
|
|
|
17772
17803
|
emits: [
|
|
17773
17804
|
...useModelToggleEmits,
|
|
17774
|
-
'click', '
|
|
17805
|
+
'click', 'afterShow', 'afterHide'
|
|
17775
17806
|
],
|
|
17776
17807
|
|
|
17777
17808
|
setup (props, { slots, emit }) {
|
|
@@ -17880,11 +17911,11 @@
|
|
|
17880
17911
|
}
|
|
17881
17912
|
|
|
17882
17913
|
function onShow () {
|
|
17883
|
-
emit('
|
|
17914
|
+
emit('afterShow');
|
|
17884
17915
|
}
|
|
17885
17916
|
|
|
17886
17917
|
function onHide () {
|
|
17887
|
-
emit('
|
|
17918
|
+
emit('afterHide');
|
|
17888
17919
|
}
|
|
17889
17920
|
|
|
17890
17921
|
function enterGroup () {
|
|
@@ -18712,7 +18743,7 @@
|
|
|
18712
18743
|
maxlength: [ Number, String ]
|
|
18713
18744
|
};
|
|
18714
18745
|
|
|
18715
|
-
const useFieldEmits = [ 'update:modelValue', 'clear', 'focus', 'blur', '
|
|
18746
|
+
const useFieldEmits = [ 'update:modelValue', 'clear', 'focus', 'blur', 'popupShow', 'popupHide' ];
|
|
18716
18747
|
|
|
18717
18748
|
function useFieldState () {
|
|
18718
18749
|
const { props, attrs, proxy, vnode } = vue.getCurrentInstance();
|
|
@@ -19442,7 +19473,14 @@
|
|
|
19442
19473
|
|
|
19443
19474
|
function onDragleave (e) {
|
|
19444
19475
|
stopAndPrevent(e);
|
|
19445
|
-
|
|
19476
|
+
|
|
19477
|
+
// Safari bug: relatedTarget is null for over 10 years
|
|
19478
|
+
// https://bugs.webkit.org/show_bug.cgi?id=66547
|
|
19479
|
+
const gone = e.relatedTarget !== null || client.is.safari !== true
|
|
19480
|
+
? e.relatedTarget !== dndRef.value
|
|
19481
|
+
: document.elementsFromPoint(e.clientX, e.clientY).includes(dndRef.value) === false;
|
|
19482
|
+
|
|
19483
|
+
gone === true && (dnd.value = false);
|
|
19446
19484
|
}
|
|
19447
19485
|
|
|
19448
19486
|
function onDrop (e) {
|
|
@@ -19476,6 +19514,7 @@
|
|
|
19476
19514
|
pickFiles,
|
|
19477
19515
|
addFiles,
|
|
19478
19516
|
onDragover,
|
|
19517
|
+
onDragleave,
|
|
19479
19518
|
processFiles,
|
|
19480
19519
|
getDndNode,
|
|
19481
19520
|
|
|
@@ -19799,9 +19838,11 @@
|
|
|
19799
19838
|
Object.assign(proxy, {
|
|
19800
19839
|
removeAtIndex,
|
|
19801
19840
|
removeFile,
|
|
19802
|
-
getNativeElement: () => inputRef.value
|
|
19841
|
+
getNativeElement: () => inputRef.value // deprecated
|
|
19803
19842
|
});
|
|
19804
19843
|
|
|
19844
|
+
injectProp(proxy, 'nativeEl', () => inputRef.value);
|
|
19845
|
+
|
|
19805
19846
|
return useField(state)
|
|
19806
19847
|
}
|
|
19807
19848
|
});
|
|
@@ -19829,9 +19870,11 @@
|
|
|
19829
19870
|
setup (props, { slots, emit }) {
|
|
19830
19871
|
const { proxy: { $q } } = vue.getCurrentInstance();
|
|
19831
19872
|
|
|
19832
|
-
const $layout = vue.inject(layoutKey,
|
|
19873
|
+
const $layout = vue.inject(layoutKey, emptyRenderFn);
|
|
19874
|
+
if ($layout === emptyRenderFn) {
|
|
19833
19875
|
console.error('QFooter needs to be child of QLayout');
|
|
19834
|
-
|
|
19876
|
+
return emptyRenderFn
|
|
19877
|
+
}
|
|
19835
19878
|
|
|
19836
19879
|
const size = vue.ref(parseInt(props.heightHint, 10));
|
|
19837
19880
|
const revealed = vue.ref(true);
|
|
@@ -20010,7 +20053,7 @@
|
|
|
20010
20053
|
onSubmit: Function
|
|
20011
20054
|
},
|
|
20012
20055
|
|
|
20013
|
-
emits: [ 'reset', '
|
|
20056
|
+
emits: [ 'reset', 'validationSuccess', 'validationError' ],
|
|
20014
20057
|
|
|
20015
20058
|
setup (props, { slots, emit }) {
|
|
20016
20059
|
const vm = vue.getCurrentInstance();
|
|
@@ -20027,7 +20070,7 @@
|
|
|
20027
20070
|
const index = ++validateIndex;
|
|
20028
20071
|
|
|
20029
20072
|
const emitEvent = (res, ref) => {
|
|
20030
|
-
emit('validation
|
|
20073
|
+
emit('validation' + (res === true ? 'Success' : 'Error'), ref);
|
|
20031
20074
|
};
|
|
20032
20075
|
|
|
20033
20076
|
const validateComponent = comp => {
|
|
@@ -20129,7 +20172,9 @@
|
|
|
20129
20172
|
addFocusFn(() => {
|
|
20130
20173
|
if (rootRef.value === null) { return }
|
|
20131
20174
|
|
|
20132
|
-
const target = rootRef.value.querySelector('[autofocus], [data-autofocus]')
|
|
20175
|
+
const target = rootRef.value.querySelector('[autofocus][tabindex], [data-autofocus][tabindex]')
|
|
20176
|
+
|| rootRef.value.querySelector('[autofocus] [tabindex], [data-autofocus] [tabindex]')
|
|
20177
|
+
|| rootRef.value.querySelector('[autofocus], [data-autofocus]')
|
|
20133
20178
|
|| Array.prototype.find.call(rootRef.value.querySelectorAll('[tabindex]'), el => el.tabIndex > -1);
|
|
20134
20179
|
|
|
20135
20180
|
target !== null && target !== void 0 && target.focus({ preventScroll: true });
|
|
@@ -20249,9 +20294,11 @@
|
|
|
20249
20294
|
setup (props, { slots, emit }) {
|
|
20250
20295
|
const { proxy: { $q } } = vue.getCurrentInstance();
|
|
20251
20296
|
|
|
20252
|
-
const $layout = vue.inject(layoutKey,
|
|
20297
|
+
const $layout = vue.inject(layoutKey, emptyRenderFn);
|
|
20298
|
+
if ($layout === emptyRenderFn) {
|
|
20253
20299
|
console.error('QHeader needs to be child of QLayout');
|
|
20254
|
-
|
|
20300
|
+
return emptyRenderFn
|
|
20301
|
+
}
|
|
20255
20302
|
|
|
20256
20303
|
const size = vue.ref(parseInt(props.heightHint, 10));
|
|
20257
20304
|
const revealed = vue.ref(true);
|
|
@@ -20940,7 +20987,7 @@
|
|
|
20940
20987
|
const vm = vue.getCurrentInstance();
|
|
20941
20988
|
const isDark = useDark(props, vm.proxy.$q);
|
|
20942
20989
|
|
|
20943
|
-
const {
|
|
20990
|
+
const { transitionProps, transitionStyle } = useTransition(props);
|
|
20944
20991
|
|
|
20945
20992
|
const classes = vue.computed(() =>
|
|
20946
20993
|
'q-inner-loading absolute-full column flex-center'
|
|
@@ -20984,10 +21031,7 @@
|
|
|
20984
21031
|
: null
|
|
20985
21032
|
}
|
|
20986
21033
|
|
|
20987
|
-
return () => vue.h(vue.Transition,
|
|
20988
|
-
name: transition.value,
|
|
20989
|
-
appear: true
|
|
20990
|
-
}, getContent)
|
|
21034
|
+
return () => vue.h(vue.Transition, transitionProps.value, getContent)
|
|
20991
21035
|
}
|
|
20992
21036
|
});
|
|
20993
21037
|
|
|
@@ -21155,7 +21199,7 @@
|
|
|
21155
21199
|
'^'
|
|
21156
21200
|
+ unmask.join('')
|
|
21157
21201
|
+ '(' + (unmaskChar === '' ? '.' : '[^' + unmaskChar + ']') + '+)?'
|
|
21158
|
-
+ '[' + unmaskChar + ']
|
|
21202
|
+
+ (unmaskChar === '' ? '' : '[' + unmaskChar + ']*') + '$'
|
|
21159
21203
|
),
|
|
21160
21204
|
extractLast = extract.length - 1,
|
|
21161
21205
|
extractMatcher = extract.map((re, index) => {
|
|
@@ -21175,7 +21219,7 @@
|
|
|
21175
21219
|
|
|
21176
21220
|
computedMask = mask;
|
|
21177
21221
|
computedUnmask = val => {
|
|
21178
|
-
const unmaskMatch = unmaskMatcher.exec(val);
|
|
21222
|
+
const unmaskMatch = unmaskMatcher.exec(props.reverseFillMask === true ? val : val.slice(0, mask.length));
|
|
21179
21223
|
if (unmaskMatch !== null) {
|
|
21180
21224
|
val = unmaskMatch.slice(1).join('');
|
|
21181
21225
|
}
|
|
@@ -21964,9 +22008,11 @@
|
|
|
21964
22008
|
Object.assign(proxy, {
|
|
21965
22009
|
focus,
|
|
21966
22010
|
select,
|
|
21967
|
-
getNativeElement: () => inputRef.value
|
|
22011
|
+
getNativeElement: () => inputRef.value // deprecated
|
|
21968
22012
|
});
|
|
21969
22013
|
|
|
22014
|
+
injectProp(proxy, 'nativeEl', () => inputRef.value);
|
|
22015
|
+
|
|
21970
22016
|
return renderFn
|
|
21971
22017
|
}
|
|
21972
22018
|
});
|
|
@@ -22165,7 +22211,12 @@
|
|
|
22165
22211
|
bordered: Boolean,
|
|
22166
22212
|
dense: Boolean,
|
|
22167
22213
|
separator: Boolean,
|
|
22168
|
-
padding: Boolean
|
|
22214
|
+
padding: Boolean,
|
|
22215
|
+
|
|
22216
|
+
tag: {
|
|
22217
|
+
type: String,
|
|
22218
|
+
default: 'div'
|
|
22219
|
+
}
|
|
22169
22220
|
},
|
|
22170
22221
|
|
|
22171
22222
|
setup (props, { slots }) {
|
|
@@ -22181,7 +22232,7 @@
|
|
|
22181
22232
|
+ (props.padding === true ? ' q-list--padding' : '')
|
|
22182
22233
|
);
|
|
22183
22234
|
|
|
22184
|
-
return () => vue.h(
|
|
22235
|
+
return () => vue.h(props.tag, { class: classes.value, role: 'list' }, hSlot(slots.default))
|
|
22185
22236
|
}
|
|
22186
22237
|
});
|
|
22187
22238
|
|
|
@@ -22219,7 +22270,7 @@
|
|
|
22219
22270
|
readonly: Boolean
|
|
22220
22271
|
},
|
|
22221
22272
|
|
|
22222
|
-
emits: [ 'update:modelValue', 'change', '
|
|
22273
|
+
emits: [ 'update:modelValue', 'change', 'dragValue' ],
|
|
22223
22274
|
|
|
22224
22275
|
setup (props, { slots, emit }) {
|
|
22225
22276
|
const { proxy } = vue.getCurrentInstance();
|
|
@@ -22266,7 +22317,7 @@
|
|
|
22266
22317
|
)
|
|
22267
22318
|
);
|
|
22268
22319
|
|
|
22269
|
-
const decimals = vue.computed(() => (String(props.step).trim(
|
|
22320
|
+
const decimals = vue.computed(() => (String(props.step).trim().split('.')[ 1 ] || '').length);
|
|
22270
22321
|
const step = vue.computed(() => (props.step === 0 ? 1 : props.step));
|
|
22271
22322
|
const instantFeedback = vue.computed(() => props.instantFeedback === true || dragging.value === true);
|
|
22272
22323
|
|
|
@@ -22401,7 +22452,7 @@
|
|
|
22401
22452
|
|
|
22402
22453
|
newModel = between(newModel, innerMin.value, innerMax.value);
|
|
22403
22454
|
|
|
22404
|
-
emit('
|
|
22455
|
+
emit('dragValue', newModel);
|
|
22405
22456
|
|
|
22406
22457
|
if (model.value !== newModel) {
|
|
22407
22458
|
model.value = newModel;
|
|
@@ -22576,6 +22627,8 @@
|
|
|
22576
22627
|
|
|
22577
22628
|
const { proxy } = vue.getCurrentInstance();
|
|
22578
22629
|
|
|
22630
|
+
vue.watch(() => proxy.$q.lang.rtl, emitEvent);
|
|
22631
|
+
|
|
22579
22632
|
vue.onMounted(() => {
|
|
22580
22633
|
parentEl = proxy.$el.parentNode;
|
|
22581
22634
|
configureScrollTarget();
|
|
@@ -22676,7 +22729,7 @@
|
|
|
22676
22729
|
if (height.value !== newHeight) {
|
|
22677
22730
|
resized = true;
|
|
22678
22731
|
height.value = newHeight;
|
|
22679
|
-
props.onScrollHeight !== void 0 && emit('
|
|
22732
|
+
props.onScrollHeight !== void 0 && emit('scrollHeight', newHeight);
|
|
22680
22733
|
updateScrollbarWidth();
|
|
22681
22734
|
}
|
|
22682
22735
|
if (width.value !== newWidth) {
|
|
@@ -23222,7 +23275,7 @@
|
|
|
23222
23275
|
);
|
|
23223
23276
|
|
|
23224
23277
|
const attrs = vue.computed(() => {
|
|
23225
|
-
const attrs = {};
|
|
23278
|
+
const attrs = { role: 'group' };
|
|
23226
23279
|
|
|
23227
23280
|
if (props.type === 'radio') {
|
|
23228
23281
|
attrs.role = 'radiogroup';
|
|
@@ -23287,10 +23340,17 @@
|
|
|
23287
23340
|
setup (props, { slots }) {
|
|
23288
23341
|
const { proxy: { $q } } = vue.getCurrentInstance();
|
|
23289
23342
|
|
|
23290
|
-
const $layout = vue.inject(layoutKey);
|
|
23291
|
-
|
|
23343
|
+
const $layout = vue.inject(layoutKey, emptyRenderFn);
|
|
23344
|
+
if ($layout === emptyRenderFn) {
|
|
23345
|
+
console.error('QPage needs to be a deep child of QLayout');
|
|
23346
|
+
return emptyRenderFn
|
|
23347
|
+
}
|
|
23348
|
+
|
|
23349
|
+
const $pageContainer = vue.inject(pageContainerKey, emptyRenderFn);
|
|
23350
|
+
if ($pageContainer === emptyRenderFn) {
|
|
23292
23351
|
console.error('QPage needs to be child of QPageContainer');
|
|
23293
|
-
|
|
23352
|
+
return emptyRenderFn
|
|
23353
|
+
}
|
|
23294
23354
|
|
|
23295
23355
|
const style = vue.computed(() => {
|
|
23296
23356
|
const offset
|
|
@@ -23333,9 +23393,11 @@
|
|
|
23333
23393
|
setup (_, { slots }) {
|
|
23334
23394
|
const { proxy: { $q } } = vue.getCurrentInstance();
|
|
23335
23395
|
|
|
23336
|
-
const $layout = vue.inject(layoutKey,
|
|
23396
|
+
const $layout = vue.inject(layoutKey, emptyRenderFn);
|
|
23397
|
+
if ($layout === emptyRenderFn) {
|
|
23337
23398
|
console.error('QPageContainer needs to be child of QLayout');
|
|
23338
|
-
|
|
23399
|
+
return emptyRenderFn
|
|
23400
|
+
}
|
|
23339
23401
|
|
|
23340
23402
|
vue.provide(pageContainerKey, true);
|
|
23341
23403
|
|
|
@@ -23385,9 +23447,11 @@
|
|
|
23385
23447
|
function usePageSticky () {
|
|
23386
23448
|
const { props, proxy: { $q } } = vue.getCurrentInstance();
|
|
23387
23449
|
|
|
23388
|
-
const $layout = vue.inject(layoutKey,
|
|
23450
|
+
const $layout = vue.inject(layoutKey, emptyRenderFn);
|
|
23451
|
+
if ($layout === emptyRenderFn) {
|
|
23389
23452
|
console.error('QPageSticky needs to be child of QLayout');
|
|
23390
|
-
|
|
23453
|
+
return emptyRenderFn
|
|
23454
|
+
}
|
|
23391
23455
|
|
|
23392
23456
|
const attach = vue.computed(() => {
|
|
23393
23457
|
const pos = props.position;
|
|
@@ -23600,6 +23664,12 @@
|
|
|
23600
23664
|
}
|
|
23601
23665
|
});
|
|
23602
23666
|
|
|
23667
|
+
function getBool (val, otherwise) {
|
|
23668
|
+
return [ true, false ].includes(val)
|
|
23669
|
+
? val
|
|
23670
|
+
: otherwise
|
|
23671
|
+
}
|
|
23672
|
+
|
|
23603
23673
|
var QPagination = createComponent({
|
|
23604
23674
|
name: 'QPagination',
|
|
23605
23675
|
|
|
@@ -23611,22 +23681,20 @@
|
|
|
23611
23681
|
required: true
|
|
23612
23682
|
},
|
|
23613
23683
|
min: {
|
|
23614
|
-
type: Number,
|
|
23684
|
+
type: [ Number, String ],
|
|
23615
23685
|
default: 1
|
|
23616
23686
|
},
|
|
23617
23687
|
max: {
|
|
23618
|
-
type: Number,
|
|
23688
|
+
type: [ Number, String ],
|
|
23619
23689
|
required: true
|
|
23620
23690
|
},
|
|
23621
|
-
|
|
23622
|
-
|
|
23623
|
-
|
|
23624
|
-
|
|
23691
|
+
maxPages: {
|
|
23692
|
+
type: [ Number, String ],
|
|
23693
|
+
default: 0,
|
|
23694
|
+
validator: v => (
|
|
23695
|
+
(typeof v === 'string' ? parseInt(v, 10) : v) >= 0
|
|
23696
|
+
)
|
|
23625
23697
|
},
|
|
23626
|
-
textColor: String,
|
|
23627
|
-
|
|
23628
|
-
activeColor: String,
|
|
23629
|
-
activeTextColor: String,
|
|
23630
23698
|
|
|
23631
23699
|
inputStyle: [ Array, String, Object ],
|
|
23632
23700
|
inputClass: [ Array, String, Object ],
|
|
@@ -23660,11 +23728,6 @@
|
|
|
23660
23728
|
type: Boolean,
|
|
23661
23729
|
default: null
|
|
23662
23730
|
},
|
|
23663
|
-
maxPages: {
|
|
23664
|
-
type: Number,
|
|
23665
|
-
default: 0,
|
|
23666
|
-
validator: v => v >= 0
|
|
23667
|
-
},
|
|
23668
23731
|
|
|
23669
23732
|
ripple: {
|
|
23670
23733
|
type: [ Boolean, Object ],
|
|
@@ -23680,7 +23743,21 @@
|
|
|
23680
23743
|
push: Boolean,
|
|
23681
23744
|
glossy: Boolean,
|
|
23682
23745
|
|
|
23683
|
-
|
|
23746
|
+
color: {
|
|
23747
|
+
type: String,
|
|
23748
|
+
default: 'primary'
|
|
23749
|
+
},
|
|
23750
|
+
textColor: String,
|
|
23751
|
+
|
|
23752
|
+
activeDesign: {
|
|
23753
|
+
type: String,
|
|
23754
|
+
default: '',
|
|
23755
|
+
values: v => v === '' || btnDesignOptions.includes(v)
|
|
23756
|
+
},
|
|
23757
|
+
activeColor: String,
|
|
23758
|
+
activeTextColor: String,
|
|
23759
|
+
|
|
23760
|
+
gutter: String,
|
|
23684
23761
|
padding: {
|
|
23685
23762
|
type: String,
|
|
23686
23763
|
default: '3px 2px'
|
|
@@ -23695,6 +23772,16 @@
|
|
|
23695
23772
|
|
|
23696
23773
|
const isDark = useDark(props, $q);
|
|
23697
23774
|
|
|
23775
|
+
const minProp = vue.computed(() => parseInt(props.min, 10));
|
|
23776
|
+
const maxProp = vue.computed(() => parseInt(props.max, 10));
|
|
23777
|
+
const maxPagesProp = vue.computed(() => parseInt(props.maxPages, 10));
|
|
23778
|
+
|
|
23779
|
+
const inputPlaceholder = vue.computed(() => model.value + ' / ' + maxProp.value);
|
|
23780
|
+
const boundaryLinksProp = vue.computed(() => getBool(props.boundaryLinks, props.input));
|
|
23781
|
+
const boundaryNumbersProp = vue.computed(() => getBool(props.boundaryNumbers, !props.input));
|
|
23782
|
+
const directionLinksProp = vue.computed(() => getBool(props.directionLinks, props.input));
|
|
23783
|
+
const ellipsesProp = vue.computed(() => getBool(props.ellipses, !props.input));
|
|
23784
|
+
|
|
23698
23785
|
const newPage = vue.ref(null);
|
|
23699
23786
|
const model = vue.computed({
|
|
23700
23787
|
get: () => props.modelValue,
|
|
@@ -23703,32 +23790,33 @@
|
|
|
23703
23790
|
if (props.disable || isNaN(val)) {
|
|
23704
23791
|
return
|
|
23705
23792
|
}
|
|
23706
|
-
const value = between(val,
|
|
23793
|
+
const value = between(val, minProp.value, maxProp.value);
|
|
23707
23794
|
if (props.modelValue !== value) {
|
|
23708
23795
|
emit('update:modelValue', value);
|
|
23709
23796
|
}
|
|
23710
23797
|
}
|
|
23711
23798
|
});
|
|
23712
23799
|
|
|
23713
|
-
vue.watch(() =>
|
|
23800
|
+
vue.watch(() => `${ minProp.value }|${ maxProp.value }`, () => {
|
|
23714
23801
|
model.value = props.modelValue;
|
|
23715
23802
|
});
|
|
23716
23803
|
|
|
23717
|
-
function getBool (val, otherwise) {
|
|
23718
|
-
return [ true, false ].includes(val)
|
|
23719
|
-
? val
|
|
23720
|
-
: otherwise
|
|
23721
|
-
}
|
|
23722
|
-
|
|
23723
23804
|
const classes = vue.computed(() =>
|
|
23724
23805
|
'q-pagination row no-wrap items-center'
|
|
23725
23806
|
+ (props.disable === true ? ' disabled' : '')
|
|
23726
23807
|
);
|
|
23727
|
-
|
|
23728
|
-
const
|
|
23729
|
-
|
|
23730
|
-
|
|
23731
|
-
|
|
23808
|
+
|
|
23809
|
+
const gutterProp = vue.computed(() => (
|
|
23810
|
+
props.gutter in btnPadding
|
|
23811
|
+
? `${ btnPadding[ props.gutter ] }px`
|
|
23812
|
+
: props.gutter || null
|
|
23813
|
+
));
|
|
23814
|
+
const gutterStyle = vue.computed(() => (
|
|
23815
|
+
gutterProp.value !== null
|
|
23816
|
+
? `--q-pagination-gutter-parent:-${ gutterProp.value };--q-pagination-gutter-child:${ gutterProp.value }`
|
|
23817
|
+
: null
|
|
23818
|
+
));
|
|
23819
|
+
|
|
23732
23820
|
const icons = vue.computed(() => {
|
|
23733
23821
|
const ico = [
|
|
23734
23822
|
props.iconFirst || $q.iconSet.pagination.first,
|
|
@@ -23739,38 +23827,90 @@
|
|
|
23739
23827
|
return $q.lang.rtl === true ? ico.reverse() : ico
|
|
23740
23828
|
});
|
|
23741
23829
|
|
|
23742
|
-
const attrs = vue.computed(() => (
|
|
23743
|
-
props.disable === true
|
|
23744
|
-
|
|
23745
|
-
|
|
23746
|
-
));
|
|
23830
|
+
const attrs = vue.computed(() => ({
|
|
23831
|
+
'aria-disabled': props.disable === true ? 'true' : 'false',
|
|
23832
|
+
role: 'navigation'
|
|
23833
|
+
}));
|
|
23747
23834
|
|
|
23835
|
+
const btnDesignProp = vue.computed(() => getBtnDesign(props, 'flat'));
|
|
23748
23836
|
const btnProps = vue.computed(() => ({
|
|
23837
|
+
[ btnDesignProp.value ]: true,
|
|
23838
|
+
|
|
23749
23839
|
round: props.round,
|
|
23750
23840
|
rounded: props.rounded,
|
|
23751
23841
|
|
|
23752
|
-
outline: props.outline,
|
|
23753
|
-
unelevated: props.unelevated,
|
|
23754
|
-
push: props.push,
|
|
23755
|
-
glossy: props.glossy,
|
|
23756
|
-
|
|
23757
|
-
dense: props.dense,
|
|
23758
23842
|
padding: props.padding,
|
|
23759
23843
|
|
|
23760
23844
|
color: props.color,
|
|
23761
|
-
|
|
23845
|
+
textColor: props.textColor,
|
|
23846
|
+
|
|
23762
23847
|
size: props.size,
|
|
23763
23848
|
ripple: props.ripple !== null
|
|
23764
23849
|
? props.ripple
|
|
23765
23850
|
: true
|
|
23766
23851
|
}));
|
|
23767
23852
|
|
|
23853
|
+
const btnActiveDesignProp = vue.computed(() => {
|
|
23854
|
+
// we also reset non-active design
|
|
23855
|
+
const acc = { [ btnDesignProp.value ]: false };
|
|
23856
|
+
if (props.activeDesign !== '') {
|
|
23857
|
+
acc[ props.activeDesign ] = true;
|
|
23858
|
+
}
|
|
23859
|
+
return acc
|
|
23860
|
+
});
|
|
23768
23861
|
const activeBtnProps = vue.computed(() => ({
|
|
23769
|
-
|
|
23862
|
+
...btnActiveDesignProp.value,
|
|
23770
23863
|
color: props.activeColor || props.color,
|
|
23771
23864
|
textColor: props.activeTextColor || props.textColor
|
|
23772
23865
|
}));
|
|
23773
23866
|
|
|
23867
|
+
const btnConfig = vue.computed(() => {
|
|
23868
|
+
let maxPages = Math.max(
|
|
23869
|
+
maxPagesProp.value,
|
|
23870
|
+
1 + (ellipsesProp.value ? 2 : 0) + (boundaryNumbersProp.value ? 2 : 0)
|
|
23871
|
+
);
|
|
23872
|
+
|
|
23873
|
+
const acc = {
|
|
23874
|
+
pgFrom: minProp.value,
|
|
23875
|
+
pgTo: maxProp.value,
|
|
23876
|
+
ellipsesStart: false,
|
|
23877
|
+
ellipsesEnd: false,
|
|
23878
|
+
boundaryStart: false,
|
|
23879
|
+
boundaryEnd: false,
|
|
23880
|
+
marginalStyle: {
|
|
23881
|
+
minWidth: `${ Math.max(2, String(maxProp.value).length) }em`
|
|
23882
|
+
}
|
|
23883
|
+
};
|
|
23884
|
+
|
|
23885
|
+
if (maxPagesProp.value && maxPages < (maxProp.value - minProp.value + 1)) {
|
|
23886
|
+
maxPages = 1 + Math.floor(maxPages / 2) * 2;
|
|
23887
|
+
acc.pgFrom = Math.max(minProp.value, Math.min(maxProp.value - maxPages + 1, props.modelValue - Math.floor(maxPages / 2)));
|
|
23888
|
+
acc.pgTo = Math.min(maxProp.value, acc.pgFrom + maxPages - 1);
|
|
23889
|
+
|
|
23890
|
+
if (boundaryNumbersProp.value) {
|
|
23891
|
+
acc.boundaryStart = true;
|
|
23892
|
+
acc.pgFrom++;
|
|
23893
|
+
}
|
|
23894
|
+
|
|
23895
|
+
if (ellipsesProp.value && acc.pgFrom > (minProp.value + (boundaryNumbersProp.value ? 1 : 0))) {
|
|
23896
|
+
acc.ellipsesStart = true;
|
|
23897
|
+
acc.pgFrom++;
|
|
23898
|
+
}
|
|
23899
|
+
|
|
23900
|
+
if (boundaryNumbersProp.value) {
|
|
23901
|
+
acc.boundaryEnd = true;
|
|
23902
|
+
acc.pgTo--;
|
|
23903
|
+
}
|
|
23904
|
+
|
|
23905
|
+
if (ellipsesProp.value && acc.pgTo < (maxProp.value - (boundaryNumbersProp.value ? 1 : 0))) {
|
|
23906
|
+
acc.ellipsesEnd = true;
|
|
23907
|
+
acc.pgTo--;
|
|
23908
|
+
}
|
|
23909
|
+
}
|
|
23910
|
+
|
|
23911
|
+
return acc
|
|
23912
|
+
});
|
|
23913
|
+
|
|
23774
23914
|
function set (value) {
|
|
23775
23915
|
model.value = value;
|
|
23776
23916
|
}
|
|
@@ -23779,20 +23919,40 @@
|
|
|
23779
23919
|
model.value = model.value + offset;
|
|
23780
23920
|
}
|
|
23781
23921
|
|
|
23782
|
-
|
|
23783
|
-
|
|
23784
|
-
|
|
23785
|
-
|
|
23922
|
+
const inputEvents = vue.computed(() => {
|
|
23923
|
+
function updateModel () {
|
|
23924
|
+
model.value = newPage.value;
|
|
23925
|
+
newPage.value = null;
|
|
23926
|
+
}
|
|
23927
|
+
|
|
23928
|
+
return {
|
|
23929
|
+
'onUpdate:modelValue': val => { newPage.value = val; },
|
|
23930
|
+
onKeyup: e => { isKeyCode(e, 13) === true && updateModel(); },
|
|
23931
|
+
onBlur: updateModel
|
|
23932
|
+
}
|
|
23933
|
+
});
|
|
23934
|
+
|
|
23935
|
+
function getBtn (cfg, page, active) {
|
|
23936
|
+
const data = {
|
|
23937
|
+
'aria-label': page,
|
|
23938
|
+
'aria-current': 'false',
|
|
23939
|
+
...btnProps.value,
|
|
23940
|
+
...cfg
|
|
23941
|
+
};
|
|
23786
23942
|
|
|
23787
|
-
|
|
23788
|
-
|
|
23943
|
+
if (active === true) {
|
|
23944
|
+
Object.assign(data, {
|
|
23945
|
+
'aria-current': 'true',
|
|
23946
|
+
...activeBtnProps.value
|
|
23947
|
+
});
|
|
23948
|
+
}
|
|
23789
23949
|
|
|
23790
23950
|
if (page !== void 0) {
|
|
23791
23951
|
if (props.toFn !== void 0) {
|
|
23792
23952
|
data.to = props.toFn(page);
|
|
23793
23953
|
}
|
|
23794
23954
|
else {
|
|
23795
|
-
data.onClick = () => set(page);
|
|
23955
|
+
data.onClick = () => { set(page); };
|
|
23796
23956
|
}
|
|
23797
23957
|
}
|
|
23798
23958
|
|
|
@@ -23803,147 +23963,107 @@
|
|
|
23803
23963
|
Object.assign(proxy, { set, setByOffset });
|
|
23804
23964
|
|
|
23805
23965
|
return () => {
|
|
23806
|
-
const
|
|
23807
|
-
|
|
23808
|
-
|
|
23809
|
-
|
|
23966
|
+
const contentStart = [];
|
|
23967
|
+
const contentEnd = [];
|
|
23968
|
+
let contentMiddle;
|
|
23969
|
+
|
|
23970
|
+
if (boundaryLinksProp.value === true) {
|
|
23971
|
+
contentStart.push(
|
|
23972
|
+
getBtn({
|
|
23973
|
+
key: 'bls',
|
|
23974
|
+
disable: props.disable || props.modelValue <= minProp.value,
|
|
23975
|
+
icon: icons.value[ 0 ]
|
|
23976
|
+
}, minProp.value)
|
|
23977
|
+
);
|
|
23810
23978
|
|
|
23811
|
-
|
|
23812
|
-
|
|
23813
|
-
|
|
23814
|
-
|
|
23815
|
-
|
|
23816
|
-
|
|
23817
|
-
|
|
23818
|
-
key: 'ble',
|
|
23819
|
-
disable: props.disable || props.modelValue >= props.max,
|
|
23820
|
-
icon: icons.value[ 3 ]
|
|
23821
|
-
}, props.max));
|
|
23822
|
-
}
|
|
23823
|
-
|
|
23824
|
-
if (__directionLinks.value) {
|
|
23825
|
-
contentStart.push(getBtn({
|
|
23826
|
-
key: 'bdp',
|
|
23827
|
-
disable: props.disable || props.modelValue <= props.min,
|
|
23828
|
-
icon: icons.value[ 1 ]
|
|
23829
|
-
}, props.modelValue - 1));
|
|
23830
|
-
contentEnd.unshift(getBtn({
|
|
23831
|
-
key: 'bdn',
|
|
23832
|
-
disable: props.disable || props.modelValue >= props.max,
|
|
23833
|
-
icon: icons.value[ 2 ]
|
|
23834
|
-
}, props.modelValue + 1));
|
|
23835
|
-
}
|
|
23836
|
-
|
|
23837
|
-
if (props.input === true) {
|
|
23838
|
-
contentMiddle.push(vue.h(QInput, {
|
|
23839
|
-
class: 'inline',
|
|
23840
|
-
style: {
|
|
23841
|
-
width: `${ inputPlaceholder.value.length / 1.5 }em`
|
|
23842
|
-
},
|
|
23843
|
-
type: 'number',
|
|
23844
|
-
dense: true,
|
|
23845
|
-
value: newPage.value,
|
|
23846
|
-
disable: props.disable,
|
|
23847
|
-
dark: isDark.value,
|
|
23848
|
-
borderless: true,
|
|
23849
|
-
inputClass: props.inputClass,
|
|
23850
|
-
inputStyle: props.inputStyle,
|
|
23851
|
-
placeholder: inputPlaceholder.value,
|
|
23852
|
-
min: props.min,
|
|
23853
|
-
max: props.max,
|
|
23854
|
-
'onUpdate:modelValue' (value) { newPage.value = value; },
|
|
23855
|
-
onKeyup (e) { isKeyCode(e, 13) === true && updateModel(); },
|
|
23856
|
-
onBlur: updateModel
|
|
23857
|
-
}));
|
|
23979
|
+
contentEnd.unshift(
|
|
23980
|
+
getBtn({
|
|
23981
|
+
key: 'ble',
|
|
23982
|
+
disable: props.disable || props.modelValue >= maxProp.value,
|
|
23983
|
+
icon: icons.value[ 3 ]
|
|
23984
|
+
}, maxProp.value)
|
|
23985
|
+
);
|
|
23858
23986
|
}
|
|
23859
|
-
|
|
23860
|
-
|
|
23861
|
-
|
|
23862
|
-
|
|
23863
|
-
|
|
23864
|
-
|
|
23865
|
-
|
|
23866
|
-
|
|
23867
|
-
|
|
23868
|
-
|
|
23869
|
-
|
|
23870
|
-
|
|
23871
|
-
|
|
23872
|
-
|
|
23873
|
-
|
|
23874
|
-
|
|
23875
|
-
|
|
23876
|
-
|
|
23877
|
-
|
|
23878
|
-
|
|
23879
|
-
|
|
23880
|
-
|
|
23881
|
-
|
|
23882
|
-
|
|
23883
|
-
|
|
23884
|
-
|
|
23885
|
-
|
|
23886
|
-
|
|
23887
|
-
|
|
23888
|
-
|
|
23889
|
-
|
|
23890
|
-
|
|
23891
|
-
|
|
23987
|
+
|
|
23988
|
+
if (directionLinksProp.value === true) {
|
|
23989
|
+
contentStart.push(
|
|
23990
|
+
getBtn({
|
|
23991
|
+
key: 'bdp',
|
|
23992
|
+
disable: props.disable || props.modelValue <= minProp.value,
|
|
23993
|
+
icon: icons.value[ 1 ]
|
|
23994
|
+
}, props.modelValue - 1)
|
|
23995
|
+
);
|
|
23996
|
+
|
|
23997
|
+
contentEnd.unshift(
|
|
23998
|
+
getBtn({
|
|
23999
|
+
key: 'bdn',
|
|
24000
|
+
disable: props.disable || props.modelValue >= maxProp.value,
|
|
24001
|
+
icon: icons.value[ 2 ]
|
|
24002
|
+
}, props.modelValue + 1)
|
|
24003
|
+
);
|
|
24004
|
+
}
|
|
24005
|
+
|
|
24006
|
+
if (props.input !== true) { // has buttons instead of inputbox
|
|
24007
|
+
contentMiddle = [];
|
|
24008
|
+
const { pgFrom, pgTo, marginalStyle: style } = btnConfig.value;
|
|
24009
|
+
|
|
24010
|
+
if (btnConfig.value.boundaryStart === true) {
|
|
24011
|
+
const active = minProp.value === props.modelValue;
|
|
24012
|
+
contentStart.push(
|
|
24013
|
+
getBtn({
|
|
24014
|
+
key: 'bns',
|
|
24015
|
+
style,
|
|
24016
|
+
disable: props.disable,
|
|
24017
|
+
label: minProp.value
|
|
24018
|
+
}, minProp.value, active)
|
|
24019
|
+
);
|
|
23892
24020
|
}
|
|
23893
|
-
|
|
23894
|
-
|
|
23895
|
-
|
|
23896
|
-
|
|
23897
|
-
|
|
23898
|
-
|
|
23899
|
-
|
|
23900
|
-
|
|
23901
|
-
|
|
23902
|
-
|
|
23903
|
-
|
|
23904
|
-
|
|
23905
|
-
|
|
23906
|
-
|
|
23907
|
-
|
|
23908
|
-
|
|
23909
|
-
|
|
23910
|
-
|
|
23911
|
-
|
|
23912
|
-
|
|
23913
|
-
|
|
23914
|
-
|
|
23915
|
-
|
|
23916
|
-
|
|
23917
|
-
|
|
23918
|
-
if (
|
|
23919
|
-
|
|
23920
|
-
|
|
23921
|
-
|
|
23922
|
-
|
|
23923
|
-
|
|
23924
|
-
|
|
23925
|
-
|
|
23926
|
-
|
|
23927
|
-
|
|
23928
|
-
contentEnd.unshift(getBtn({
|
|
23929
|
-
key: 'bee',
|
|
23930
|
-
style,
|
|
23931
|
-
disable: props.disable,
|
|
23932
|
-
label: '…',
|
|
23933
|
-
ripple: false
|
|
23934
|
-
}, pgTo + 1));
|
|
24021
|
+
|
|
24022
|
+
if (btnConfig.value.boundaryEnd === true) {
|
|
24023
|
+
const active = maxProp.value === props.modelValue;
|
|
24024
|
+
contentEnd.unshift(
|
|
24025
|
+
getBtn({
|
|
24026
|
+
key: 'bne',
|
|
24027
|
+
style,
|
|
24028
|
+
disable: props.disable,
|
|
24029
|
+
label: maxProp.value
|
|
24030
|
+
}, maxProp.value, active)
|
|
24031
|
+
);
|
|
24032
|
+
}
|
|
24033
|
+
|
|
24034
|
+
if (btnConfig.value.ellipsesStart === true) {
|
|
24035
|
+
contentStart.push(
|
|
24036
|
+
getBtn({
|
|
24037
|
+
key: 'bes',
|
|
24038
|
+
style,
|
|
24039
|
+
disable: props.disable,
|
|
24040
|
+
label: '…',
|
|
24041
|
+
ripple: false
|
|
24042
|
+
}, pgFrom - 1)
|
|
24043
|
+
);
|
|
24044
|
+
}
|
|
24045
|
+
|
|
24046
|
+
if (btnConfig.value.ellipsesEnd === true) {
|
|
24047
|
+
contentEnd.unshift(
|
|
24048
|
+
getBtn({
|
|
24049
|
+
key: 'bee',
|
|
24050
|
+
style,
|
|
24051
|
+
disable: props.disable,
|
|
24052
|
+
label: '…',
|
|
24053
|
+
ripple: false
|
|
24054
|
+
}, pgTo + 1)
|
|
24055
|
+
);
|
|
23935
24056
|
}
|
|
24057
|
+
|
|
23936
24058
|
for (let i = pgFrom; i <= pgTo; i++) {
|
|
23937
|
-
|
|
23938
|
-
|
|
23939
|
-
|
|
23940
|
-
|
|
23941
|
-
|
|
23942
|
-
|
|
23943
|
-
|
|
23944
|
-
|
|
23945
|
-
}
|
|
23946
|
-
contentMiddle.push(getBtn(btn, i));
|
|
24059
|
+
contentMiddle.push(
|
|
24060
|
+
getBtn({
|
|
24061
|
+
key: `bpg${ i }`,
|
|
24062
|
+
style,
|
|
24063
|
+
disable: props.disable,
|
|
24064
|
+
label: i
|
|
24065
|
+
}, i, i === props.modelValue)
|
|
24066
|
+
);
|
|
23947
24067
|
}
|
|
23948
24068
|
}
|
|
23949
24069
|
|
|
@@ -23951,15 +24071,35 @@
|
|
|
23951
24071
|
class: classes.value,
|
|
23952
24072
|
...attrs.value
|
|
23953
24073
|
}, [
|
|
23954
|
-
contentStart,
|
|
23955
|
-
|
|
23956
24074
|
vue.h('div', {
|
|
23957
|
-
class: 'row
|
|
24075
|
+
class: 'q-pagination__content row no-wrap items-center',
|
|
24076
|
+
style: gutterStyle.value
|
|
23958
24077
|
}, [
|
|
23959
|
-
|
|
23960
|
-
|
|
24078
|
+
...contentStart,
|
|
24079
|
+
|
|
24080
|
+
props.input === true
|
|
24081
|
+
? vue.h(QInput, {
|
|
24082
|
+
class: 'inline',
|
|
24083
|
+
style: { width: `${ inputPlaceholder.value.length / 1.5 }em` },
|
|
24084
|
+
type: 'number',
|
|
24085
|
+
dense: true,
|
|
24086
|
+
value: newPage.value,
|
|
24087
|
+
disable: props.disable,
|
|
24088
|
+
dark: isDark.value,
|
|
24089
|
+
borderless: true,
|
|
24090
|
+
inputClass: props.inputClass,
|
|
24091
|
+
inputStyle: props.inputStyle,
|
|
24092
|
+
placeholder: inputPlaceholder.value,
|
|
24093
|
+
min: minProp.value,
|
|
24094
|
+
max: maxProp.value,
|
|
24095
|
+
...inputEvents.value
|
|
24096
|
+
})
|
|
24097
|
+
: vue.h('div', {
|
|
24098
|
+
class: 'q-pagination__middle row justify-center'
|
|
24099
|
+
}, contentMiddle),
|
|
23961
24100
|
|
|
23962
|
-
|
|
24101
|
+
...contentEnd
|
|
24102
|
+
])
|
|
23963
24103
|
])
|
|
23964
24104
|
}
|
|
23965
24105
|
}
|
|
@@ -24240,7 +24380,7 @@
|
|
|
24240
24380
|
|
|
24241
24381
|
emits: [
|
|
24242
24382
|
'update:modelValue', 'save', 'cancel',
|
|
24243
|
-
'
|
|
24383
|
+
'beforeShow', 'show', 'beforeHide', 'hide'
|
|
24244
24384
|
],
|
|
24245
24385
|
|
|
24246
24386
|
setup (props, { slots, emit }) {
|
|
@@ -24304,7 +24444,7 @@
|
|
|
24304
24444
|
validated = false;
|
|
24305
24445
|
initialValue.value = cloneDeep(props.modelValue);
|
|
24306
24446
|
currentModel.value = cloneDeep(props.modelValue);
|
|
24307
|
-
emit('
|
|
24447
|
+
emit('beforeShow');
|
|
24308
24448
|
}
|
|
24309
24449
|
|
|
24310
24450
|
function onShow () {
|
|
@@ -24322,7 +24462,7 @@
|
|
|
24322
24462
|
}
|
|
24323
24463
|
}
|
|
24324
24464
|
|
|
24325
|
-
emit('
|
|
24465
|
+
emit('beforeHide');
|
|
24326
24466
|
}
|
|
24327
24467
|
|
|
24328
24468
|
function onHide () {
|
|
@@ -25591,7 +25731,7 @@
|
|
|
25591
25731
|
scroll.horizontal.percentage = vue.computed(() => {
|
|
25592
25732
|
const diff = scroll.horizontal.size.value - container.horizontal.value;
|
|
25593
25733
|
if (diff <= 0) { return 0 }
|
|
25594
|
-
const p = between(scroll.horizontal.position.value / diff, 0, 1);
|
|
25734
|
+
const p = between(Math.abs(scroll.horizontal.position.value) / diff, 0, 1);
|
|
25595
25735
|
return Math.round(p * 10000) / 10000
|
|
25596
25736
|
});
|
|
25597
25737
|
scroll.horizontal.thumbHidden = vue.computed(() =>
|
|
@@ -25617,7 +25757,7 @@
|
|
|
25617
25757
|
return {
|
|
25618
25758
|
...props.thumbStyle,
|
|
25619
25759
|
...props.horizontalThumbStyle,
|
|
25620
|
-
left: `${ scroll.horizontal.thumbStart.value }px`,
|
|
25760
|
+
[ proxy.$q.lang.rtl === true ? 'right' : 'left' ]: `${ scroll.horizontal.thumbStart.value }px`,
|
|
25621
25761
|
width: `${ scroll.horizontal.thumbSize.value }px`
|
|
25622
25762
|
}
|
|
25623
25763
|
});
|
|
@@ -25811,6 +25951,15 @@
|
|
|
25811
25951
|
|
|
25812
25952
|
let scrollPosition = null;
|
|
25813
25953
|
|
|
25954
|
+
vue.watch(() => proxy.$q.lang.rtl, rtl => {
|
|
25955
|
+
if (targetRef.value !== null) {
|
|
25956
|
+
setHorizontalScrollPosition(
|
|
25957
|
+
targetRef.value,
|
|
25958
|
+
Math.abs(scroll.horizontal.position.value) * (rtl === true ? -1 : 1)
|
|
25959
|
+
);
|
|
25960
|
+
}
|
|
25961
|
+
});
|
|
25962
|
+
|
|
25814
25963
|
vue.onDeactivated(() => {
|
|
25815
25964
|
scrollPosition = {
|
|
25816
25965
|
top: scroll.vertical.position.value,
|
|
@@ -25847,7 +25996,9 @@
|
|
|
25847
25996
|
setScrollPercentage (axis, percentage, duration) {
|
|
25848
25997
|
localSetScrollPosition(
|
|
25849
25998
|
axis,
|
|
25850
|
-
percentage
|
|
25999
|
+
percentage
|
|
26000
|
+
* (scroll[ axis ].size.value - container[ axis ].value)
|
|
26001
|
+
* (axis === 'horizontal' && proxy.$q.lang.rtl === true ? -1 : 1),
|
|
25851
26002
|
duration
|
|
25852
26003
|
);
|
|
25853
26004
|
}
|
|
@@ -26596,7 +26747,7 @@
|
|
|
26596
26747
|
|
|
26597
26748
|
function emitScroll (index) {
|
|
26598
26749
|
if (prevToIndex !== index) {
|
|
26599
|
-
props.onVirtualScroll !== void 0 && emit('
|
|
26750
|
+
props.onVirtualScroll !== void 0 && emit('virtualScroll', {
|
|
26600
26751
|
index,
|
|
26601
26752
|
from: virtualScrollSliceRange.value.from,
|
|
26602
26753
|
to: virtualScrollSliceRange.value.to - 1,
|
|
@@ -26768,9 +26919,9 @@
|
|
|
26768
26919
|
|
|
26769
26920
|
emits: [
|
|
26770
26921
|
...useFieldEmits,
|
|
26771
|
-
'add', 'remove', '
|
|
26922
|
+
'add', 'remove', 'inputValue', 'newValue',
|
|
26772
26923
|
'keyup', 'keypress', 'keydown',
|
|
26773
|
-
'
|
|
26924
|
+
'filterAbort'
|
|
26774
26925
|
],
|
|
26775
26926
|
|
|
26776
26927
|
setup (props, { slots, emit }) {
|
|
@@ -26909,20 +27060,16 @@
|
|
|
26909
27060
|
|
|
26910
27061
|
const tabindex = vue.computed(() => (state.focused.value === true ? props.tabindex : -1));
|
|
26911
27062
|
|
|
26912
|
-
const comboboxAttrs = vue.computed(() => {
|
|
26913
|
-
|
|
26914
|
-
|
|
26915
|
-
|
|
26916
|
-
|
|
26917
|
-
|
|
26918
|
-
|
|
26919
|
-
|
|
26920
|
-
|
|
26921
|
-
|
|
26922
|
-
};
|
|
26923
|
-
|
|
26924
|
-
return attrs
|
|
26925
|
-
});
|
|
27063
|
+
const comboboxAttrs = vue.computed(() => ({
|
|
27064
|
+
tabindex: props.tabindex,
|
|
27065
|
+
role: 'combobox',
|
|
27066
|
+
'aria-label': props.label,
|
|
27067
|
+
'aria-readonly': props.readonly === true ? 'true' : 'false',
|
|
27068
|
+
'aria-autocomplete': props.useInput === true ? 'list' : 'none',
|
|
27069
|
+
'aria-expanded': menu.value === true ? 'true' : 'false',
|
|
27070
|
+
'aria-owns': `${ state.targetUid.value }_lb`,
|
|
27071
|
+
'aria-controls': `${ state.targetUid.value }_lb`
|
|
27072
|
+
}));
|
|
26926
27073
|
|
|
26927
27074
|
const listboxAttrs = vue.computed(() => {
|
|
26928
27075
|
const attrs = {
|
|
@@ -27518,7 +27665,7 @@
|
|
|
27518
27665
|
};
|
|
27519
27666
|
|
|
27520
27667
|
if (props.onNewValue !== void 0) {
|
|
27521
|
-
emit('
|
|
27668
|
+
emit('newValue', inputValue.value, done);
|
|
27522
27669
|
}
|
|
27523
27670
|
else {
|
|
27524
27671
|
done(inputValue.value);
|
|
@@ -27541,8 +27688,8 @@
|
|
|
27541
27688
|
return hasDialog === true
|
|
27542
27689
|
? menuContentRef.value
|
|
27543
27690
|
: (
|
|
27544
|
-
menuRef.value !== null && menuRef.value.
|
|
27545
|
-
? menuRef.value.
|
|
27691
|
+
menuRef.value !== null && menuRef.value.contentEl !== null
|
|
27692
|
+
? menuRef.value.contentEl
|
|
27546
27693
|
: void 0
|
|
27547
27694
|
)
|
|
27548
27695
|
}
|
|
@@ -27685,7 +27832,7 @@
|
|
|
27685
27832
|
function setInputValue (val) {
|
|
27686
27833
|
if (inputValue.value !== val) {
|
|
27687
27834
|
inputValue.value = val;
|
|
27688
|
-
emit('
|
|
27835
|
+
emit('inputValue', val);
|
|
27689
27836
|
}
|
|
27690
27837
|
}
|
|
27691
27838
|
|
|
@@ -27709,7 +27856,7 @@
|
|
|
27709
27856
|
}
|
|
27710
27857
|
|
|
27711
27858
|
if (state.innerLoading.value === true) {
|
|
27712
|
-
emit('
|
|
27859
|
+
emit('filterAbort');
|
|
27713
27860
|
}
|
|
27714
27861
|
else {
|
|
27715
27862
|
state.innerLoading.value = true;
|
|
@@ -27926,7 +28073,7 @@
|
|
|
27926
28073
|
filterId = void 0;
|
|
27927
28074
|
|
|
27928
28075
|
if (state.innerLoading.value === true) {
|
|
27929
|
-
emit('
|
|
28076
|
+
emit('filterAbort');
|
|
27930
28077
|
state.innerLoading.value = false;
|
|
27931
28078
|
innerLoadingIndicator.value = false;
|
|
27932
28079
|
}
|
|
@@ -28012,14 +28159,14 @@
|
|
|
28012
28159
|
|
|
28013
28160
|
function onControlPopupShow (e) {
|
|
28014
28161
|
e !== void 0 && stop(e);
|
|
28015
|
-
emit('
|
|
28162
|
+
emit('popupShow', e);
|
|
28016
28163
|
state.hasPopupOpen = true;
|
|
28017
28164
|
state.onControlFocusin(e);
|
|
28018
28165
|
}
|
|
28019
28166
|
|
|
28020
28167
|
function onControlPopupHide (e) {
|
|
28021
28168
|
e !== void 0 && stop(e);
|
|
28022
|
-
emit('
|
|
28169
|
+
emit('popupHide', e);
|
|
28023
28170
|
state.hasPopupOpen = false;
|
|
28024
28171
|
state.onControlFocusout(e);
|
|
28025
28172
|
}
|
|
@@ -30878,9 +31025,11 @@
|
|
|
30878
31025
|
setup (props, { slots, emit }) {
|
|
30879
31026
|
const { proxy: { $q } } = vue.getCurrentInstance();
|
|
30880
31027
|
|
|
30881
|
-
const $stepper = vue.inject(stepperKey,
|
|
30882
|
-
|
|
30883
|
-
|
|
31028
|
+
const $stepper = vue.inject(stepperKey, emptyRenderFn);
|
|
31029
|
+
if ($stepper === emptyRenderFn) {
|
|
31030
|
+
console.error('QStep needs to be a child of QStepper');
|
|
31031
|
+
return emptyRenderFn
|
|
31032
|
+
}
|
|
30884
31033
|
|
|
30885
31034
|
const { getCacheWithFn } = useCache();
|
|
30886
31035
|
|
|
@@ -30938,7 +31087,7 @@
|
|
|
30938
31087
|
|
|
30939
31088
|
return () => vue.h(
|
|
30940
31089
|
'div',
|
|
30941
|
-
{ ref: rootRef, class: 'q-stepper__step', ...scrollEvent.value },
|
|
31090
|
+
{ ref: rootRef, class: 'q-stepper__step', role: 'tabpanel', ...scrollEvent.value },
|
|
30942
31091
|
$stepper.value.vertical === true
|
|
30943
31092
|
? [
|
|
30944
31093
|
vue.h(StepHeader, {
|
|
@@ -32008,7 +32157,7 @@
|
|
|
32008
32157
|
},
|
|
32009
32158
|
|
|
32010
32159
|
emits: [
|
|
32011
|
-
'request', '
|
|
32160
|
+
'request', 'virtualScroll',
|
|
32012
32161
|
...useFullscreenEmits,
|
|
32013
32162
|
...useTableRowExpandEmits,
|
|
32014
32163
|
...useTableRowSelectionEmits
|
|
@@ -32242,7 +32391,7 @@
|
|
|
32242
32391
|
|
|
32243
32392
|
scrollTarget.scrollTop = offsetTop;
|
|
32244
32393
|
|
|
32245
|
-
emit('
|
|
32394
|
+
emit('virtualScroll', {
|
|
32246
32395
|
index: toIndex,
|
|
32247
32396
|
from: 0,
|
|
32248
32397
|
to: innerPagination.value.rowsPerPage - 1,
|
|
@@ -32252,7 +32401,7 @@
|
|
|
32252
32401
|
}
|
|
32253
32402
|
|
|
32254
32403
|
function onVScroll (info) {
|
|
32255
|
-
emit('
|
|
32404
|
+
emit('virtualScroll', info);
|
|
32256
32405
|
}
|
|
32257
32406
|
|
|
32258
32407
|
function getProgress () {
|
|
@@ -34003,9 +34152,11 @@
|
|
|
34003
34152
|
},
|
|
34004
34153
|
|
|
34005
34154
|
setup (props, { slots }) {
|
|
34006
|
-
const $timeline = vue.inject(timelineKey,
|
|
34155
|
+
const $timeline = vue.inject(timelineKey, emptyRenderFn);
|
|
34156
|
+
if ($timeline === emptyRenderFn) {
|
|
34007
34157
|
console.error('QTimelineEntry needs to be child of QTimeline');
|
|
34008
|
-
|
|
34158
|
+
return emptyRenderFn
|
|
34159
|
+
}
|
|
34009
34160
|
|
|
34010
34161
|
const classes = vue.computed(() =>
|
|
34011
34162
|
`q-timeline__entry q-timeline__entry--${ props.side }`
|
|
@@ -34094,7 +34245,7 @@
|
|
|
34094
34245
|
+ (props.inset === true ? ' q-toolbar--inset' : '')
|
|
34095
34246
|
);
|
|
34096
34247
|
|
|
34097
|
-
return () => vue.h('div', { class: classes.value }, hSlot(slots.default))
|
|
34248
|
+
return () => vue.h('div', { class: classes.value, role: 'toolbar' }, hSlot(slots.default))
|
|
34098
34249
|
}
|
|
34099
34250
|
});
|
|
34100
34251
|
|
|
@@ -34178,9 +34329,9 @@
|
|
|
34178
34329
|
'update:expanded',
|
|
34179
34330
|
'update:ticked',
|
|
34180
34331
|
'update:selected',
|
|
34181
|
-
'
|
|
34182
|
-
'
|
|
34183
|
-
'
|
|
34332
|
+
'lazyLoad',
|
|
34333
|
+
'afterShow',
|
|
34334
|
+
'afterHide'
|
|
34184
34335
|
],
|
|
34185
34336
|
|
|
34186
34337
|
setup (props, { slots, emit }) {
|
|
@@ -34429,7 +34580,7 @@
|
|
|
34429
34580
|
if (Array.isArray(node[ props.childrenKey ]) !== true) {
|
|
34430
34581
|
node[ props.childrenKey ] = [];
|
|
34431
34582
|
}
|
|
34432
|
-
emit('
|
|
34583
|
+
emit('lazyLoad', {
|
|
34433
34584
|
node,
|
|
34434
34585
|
key,
|
|
34435
34586
|
done: children => {
|
|
@@ -34576,11 +34727,11 @@
|
|
|
34576
34727
|
}
|
|
34577
34728
|
|
|
34578
34729
|
function onShow () {
|
|
34579
|
-
emit('
|
|
34730
|
+
emit('afterShow');
|
|
34580
34731
|
}
|
|
34581
34732
|
|
|
34582
34733
|
function onHide () {
|
|
34583
|
-
emit('
|
|
34734
|
+
emit('afterHide');
|
|
34584
34735
|
}
|
|
34585
34736
|
|
|
34586
34737
|
function getNode (node) {
|
|
@@ -35423,7 +35574,7 @@
|
|
|
35423
35574
|
helpers.queuedFiles.value = helpers.queuedFiles.value.concat(files);
|
|
35424
35575
|
files.forEach(f => { helpers.updateFileStatus(f, 'failed'); });
|
|
35425
35576
|
|
|
35426
|
-
emit('
|
|
35577
|
+
emit('factoryFailed', err, files);
|
|
35427
35578
|
workingThreads.value--;
|
|
35428
35579
|
}
|
|
35429
35580
|
};
|
|
@@ -35582,9 +35733,13 @@
|
|
|
35582
35733
|
name: 'QUploaderAddTrigger',
|
|
35583
35734
|
|
|
35584
35735
|
setup () {
|
|
35585
|
-
|
|
35736
|
+
const $trigger = vue.inject(uploaderKey, emptyRenderFn);
|
|
35737
|
+
|
|
35738
|
+
if ($trigger === emptyRenderFn) {
|
|
35586
35739
|
console.error('QUploaderAddTrigger needs to be child of QUploader');
|
|
35587
|
-
}
|
|
35740
|
+
}
|
|
35741
|
+
|
|
35742
|
+
return $trigger
|
|
35588
35743
|
}
|
|
35589
35744
|
});
|
|
35590
35745
|
|
|
@@ -37904,6 +38059,7 @@
|
|
|
37904
38059
|
action.class
|
|
37905
38060
|
],
|
|
37906
38061
|
tabindex: 0,
|
|
38062
|
+
role: 'listitem',
|
|
37907
38063
|
onClick () { onOk(action); },
|
|
37908
38064
|
onKeyup (e) { e.keyCode === 13 && onOk(action); }
|
|
37909
38065
|
}, [
|
|
@@ -37936,8 +38092,7 @@
|
|
|
37936
38092
|
tabindex: 0,
|
|
37937
38093
|
clickable: true,
|
|
37938
38094
|
dark: isDark.value,
|
|
37939
|
-
onClick () { onOk(action); }
|
|
37940
|
-
onKeyup (e) { e.keyCode === 13 && onOk(action); }
|
|
38095
|
+
onClick () { onOk(action); }
|
|
37941
38096
|
}, () => [
|
|
37942
38097
|
vue.h(
|
|
37943
38098
|
QItemSection,
|
|
@@ -37979,9 +38134,12 @@
|
|
|
37979
38134
|
child.push(
|
|
37980
38135
|
props.grid === true
|
|
37981
38136
|
? vue.h('div', {
|
|
37982
|
-
class: 'row items-stretch justify-start'
|
|
38137
|
+
class: 'row items-stretch justify-start',
|
|
38138
|
+
role: 'list'
|
|
37983
38139
|
}, getGrid())
|
|
37984
|
-
: vue.h('div',
|
|
38140
|
+
: vue.h('div', {
|
|
38141
|
+
role: 'list'
|
|
38142
|
+
}, getList())
|
|
37985
38143
|
);
|
|
37986
38144
|
|
|
37987
38145
|
return child
|
|
@@ -38563,12 +38721,12 @@
|
|
|
38563
38721
|
function getPrompt () {
|
|
38564
38722
|
return [
|
|
38565
38723
|
vue.h(QInput, {
|
|
38566
|
-
modelValue: model.value,
|
|
38567
|
-
...formProps.value,
|
|
38568
38724
|
color: vmColor.value,
|
|
38569
38725
|
dense: true,
|
|
38570
38726
|
autofocus: true,
|
|
38571
38727
|
dark: isDark.value,
|
|
38728
|
+
...formProps.value,
|
|
38729
|
+
modelValue: model.value,
|
|
38572
38730
|
'onUpdate:modelValue': onUpdateModel,
|
|
38573
38731
|
onKeyup: onInputKeyup
|
|
38574
38732
|
})
|
|
@@ -38578,11 +38736,11 @@
|
|
|
38578
38736
|
function getOptions () {
|
|
38579
38737
|
return [
|
|
38580
38738
|
vue.h(QOptionGroup, {
|
|
38581
|
-
modelValue: model.value,
|
|
38582
|
-
...formProps.value,
|
|
38583
38739
|
color: vmColor.value,
|
|
38584
38740
|
options: props.options.items,
|
|
38585
38741
|
dark: isDark.value,
|
|
38742
|
+
...formProps.value,
|
|
38743
|
+
modelValue: model.value,
|
|
38586
38744
|
'onUpdate:modelValue': onUpdateModel
|
|
38587
38745
|
})
|
|
38588
38746
|
]
|
|
@@ -40325,7 +40483,7 @@
|
|
|
40325
40483
|
*/
|
|
40326
40484
|
|
|
40327
40485
|
var index_umd = {
|
|
40328
|
-
version: '2.
|
|
40486
|
+
version: '2.10.1',
|
|
40329
40487
|
install (app, opts) {
|
|
40330
40488
|
installQuasar(app, {
|
|
40331
40489
|
components,
|