quasar 2.19.2 → 2.20.0
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/Lang.json +1 -1
- package/dist/api/QCarouselSlide.json +1 -1
- package/dist/api/QChatMessage.json +1 -1
- package/dist/api/QImg.json +1 -1
- package/dist/api/QParallax.json +1 -1
- package/dist/api/QRange.json +1 -1
- package/dist/api/QSlider.json +1 -1
- package/dist/api/QTimelineEntry.json +1 -1
- package/dist/api/QTree.json +1 -1
- package/dist/icon-set/bootstrap-icons.umd.prod.js +1 -1
- package/dist/icon-set/eva-icons.umd.prod.js +2 -2
- package/dist/icon-set/fontawesome-v5-pro.umd.prod.js +5 -5
- package/dist/icon-set/fontawesome-v5.umd.prod.js +5 -5
- package/dist/icon-set/fontawesome-v6-pro.umd.prod.js +5 -5
- package/dist/icon-set/fontawesome-v6.umd.prod.js +5 -5
- package/dist/icon-set/fontawesome-v7-pro.umd.prod.js +6 -0
- package/dist/icon-set/fontawesome-v7.umd.prod.js +6 -0
- package/dist/icon-set/ionicons-v4.umd.prod.js +2 -2
- 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 +5 -5
- package/dist/icon-set/mdi-v4.umd.prod.js +5 -5
- package/dist/icon-set/mdi-v5.umd.prod.js +5 -5
- package/dist/icon-set/mdi-v6.umd.prod.js +5 -5
- package/dist/icon-set/mdi-v7.umd.prod.js +1 -1
- package/dist/icon-set/svg-bootstrap-icons.umd.prod.js +1 -1
- package/dist/icon-set/svg-eva-icons.umd.prod.js +2 -2
- package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +5 -5
- package/dist/icon-set/svg-fontawesome-v6.umd.prod.js +5 -5
- package/dist/icon-set/svg-fontawesome-v7.umd.prod.js +6 -0
- package/dist/icon-set/svg-ionicons-v4.umd.prod.js +2 -2
- package/dist/icon-set/svg-ionicons-v5.umd.prod.js +5 -5
- package/dist/icon-set/svg-ionicons-v6.umd.prod.js +5 -5
- package/dist/icon-set/svg-ionicons-v7.umd.prod.js +6 -0
- package/dist/icon-set/svg-ionicons-v8.umd.prod.js +6 -0
- 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 +2 -2
- package/dist/icon-set/svg-material-symbols-rounded.umd.prod.js +2 -2
- package/dist/icon-set/svg-material-symbols-sharp.umd.prod.js +2 -2
- package/dist/icon-set/svg-mdi-v6.umd.prod.js +5 -5
- package/dist/icon-set/svg-mdi-v7.umd.prod.js +1 -1
- package/dist/icon-set/svg-themify.umd.prod.js +2 -2
- package/dist/icon-set/themify.umd.prod.js +2 -2
- package/dist/lang/ar-TN.umd.prod.js +2 -2
- package/dist/lang/ar.umd.prod.js +2 -2
- package/dist/lang/az-Latn.umd.prod.js +2 -2
- package/dist/lang/bg.umd.prod.js +2 -2
- package/dist/lang/bn.umd.prod.js +2 -2
- package/dist/lang/bs-BA.umd.prod.js +2 -2
- package/dist/lang/ca.umd.prod.js +2 -2
- package/dist/lang/cs.umd.prod.js +2 -2
- package/dist/lang/da.umd.prod.js +2 -2
- package/dist/lang/de-CH.umd.prod.js +2 -2
- package/dist/lang/de-DE.umd.prod.js +2 -2
- package/dist/lang/de.umd.prod.js +2 -2
- package/dist/lang/el.umd.prod.js +2 -2
- package/dist/lang/en-GB.umd.prod.js +2 -2
- package/dist/lang/en-US.umd.prod.js +2 -2
- package/dist/lang/eo.umd.prod.js +2 -2
- package/dist/lang/es.umd.prod.js +2 -2
- package/dist/lang/et.umd.prod.js +2 -2
- package/dist/lang/eu.umd.prod.js +2 -2
- package/dist/lang/fa-IR.umd.prod.js +2 -2
- package/dist/lang/fa.umd.prod.js +2 -2
- package/dist/lang/fi.umd.prod.js +2 -2
- package/dist/lang/fr.umd.prod.js +2 -2
- package/dist/lang/gn.umd.prod.js +2 -2
- package/dist/lang/he.umd.prod.js +2 -2
- package/dist/lang/hi.umd.prod.js +2 -2
- package/dist/lang/hr.umd.prod.js +2 -2
- package/dist/lang/hu.umd.prod.js +2 -2
- package/dist/lang/id.umd.prod.js +2 -2
- package/dist/lang/is.umd.prod.js +2 -2
- package/dist/lang/it.umd.prod.js +2 -2
- package/dist/lang/ja.umd.prod.js +2 -2
- package/dist/lang/kk.umd.prod.js +2 -2
- package/dist/lang/km.umd.prod.js +2 -2
- package/dist/lang/ko-KR.umd.prod.js +1 -1
- package/dist/lang/kur-CKB.umd.prod.js +2 -2
- package/dist/lang/lt.umd.prod.js +2 -2
- package/dist/lang/lu.umd.prod.js +2 -2
- package/dist/lang/lv.umd.prod.js +2 -2
- package/dist/lang/mk.umd.prod.js +2 -2
- package/dist/lang/ml.umd.prod.js +2 -2
- package/dist/lang/mm.umd.prod.js +2 -2
- package/dist/lang/ms-MY.umd.prod.js +2 -2
- package/dist/lang/ms.umd.prod.js +2 -2
- package/dist/lang/my.umd.prod.js +2 -2
- package/dist/lang/nb-NO.umd.prod.js +2 -2
- package/dist/lang/nl.umd.prod.js +2 -2
- package/dist/lang/pl.umd.prod.js +2 -2
- package/dist/lang/pt-BR.umd.prod.js +2 -2
- package/dist/lang/pt.umd.prod.js +2 -2
- package/dist/lang/ro.umd.prod.js +2 -2
- package/dist/lang/ru.umd.prod.js +2 -2
- package/dist/lang/sk.umd.prod.js +2 -2
- package/dist/lang/sl.umd.prod.js +2 -2
- package/dist/lang/sm.umd.prod.js +2 -2
- package/dist/lang/sq.umd.prod.js +2 -2
- package/dist/lang/sr-CYR.umd.prod.js +2 -2
- package/dist/lang/sr.umd.prod.js +2 -2
- package/dist/lang/sv.umd.prod.js +2 -2
- package/dist/lang/ta.umd.prod.js +2 -2
- package/dist/lang/th.umd.prod.js +2 -2
- package/dist/lang/tl.umd.prod.js +2 -2
- package/dist/lang/tr.umd.prod.js +2 -2
- package/dist/lang/ug.umd.prod.js +2 -2
- package/dist/lang/uk.umd.prod.js +2 -2
- package/dist/lang/ur-PK.umd.prod.js +2 -2
- package/dist/lang/uz-Cyrl.umd.prod.js +2 -2
- package/dist/lang/uz-Latn.umd.prod.js +2 -2
- package/dist/lang/vi.umd.prod.js +2 -2
- package/dist/lang/zh-CN.umd.prod.js +2 -2
- package/dist/lang/zh-TW.umd.prod.js +2 -2
- package/dist/quasar.client.js +2615 -2603
- package/dist/quasar.sass +1 -1
- package/dist/quasar.server.prod.cjs +11 -11
- package/dist/quasar.server.prod.js +25 -25
- package/dist/quasar.umd.js +2610 -2598
- package/dist/quasar.umd.prod.js +23 -23
- package/dist/types/api/dialog.d.ts +1 -1
- package/dist/types/api/qnotify.d.ts +1 -1
- package/dist/types/api/qpopupproxy.d.ts +1 -1
- package/dist/types/feature-flag.d.ts +2 -2
- package/dist/types/globals.d.ts +3 -3
- package/dist/types/{extras/icon-set.d.ts → icon-set.d.ts} +21 -16
- package/dist/types/index.d.ts +1 -1
- package/dist/types/plugin.d.ts +1 -1
- package/dist/types/shim-icon-set.d.ts +1 -2
- package/dist/types/shim-lang.d.ts +1 -2
- package/dist/types/ts-helpers.d.ts +3 -3
- package/dist/types/tsconfig.json +1 -1
- package/dist/types/utils/scroll.d.ts +1 -1
- package/dist/types/utils.d.ts +2 -2
- package/dist/web-types/web-types.json +1 -1
- package/icon-set/bootstrap-icons.js +1 -1
- package/icon-set/eva-icons.js +23 -23
- package/icon-set/fontawesome-v7-pro.js +128 -0
- package/icon-set/fontawesome-v7.js +128 -0
- package/icon-set/ionicons-v4.js +17 -17
- package/icon-set/svg-bootstrap-icons.js +1 -1
- package/icon-set/svg-eva-icons.js +23 -23
- package/icon-set/svg-fontawesome-v5.js +1 -1
- package/icon-set/svg-fontawesome-v7.js +197 -0
- package/icon-set/svg-ionicons-v4.js +17 -17
- package/icon-set/svg-ionicons-v5.js +1 -1
- package/icon-set/svg-ionicons-v6.js +1 -1
- package/icon-set/svg-ionicons-v7.js +224 -0
- package/icon-set/svg-ionicons-v8.js +224 -0
- package/icon-set/svg-themify.js +7 -7
- package/icon-set/themify.js +7 -7
- package/lang/ar-TN.js +1 -1
- package/lang/ar.js +1 -1
- package/lang/az-Latn.js +1 -1
- package/lang/bg.js +1 -1
- package/lang/bn.js +1 -1
- package/lang/bs-BA.js +1 -1
- package/lang/ca.js +1 -1
- package/lang/cs.js +11 -6
- package/lang/da.js +1 -1
- package/lang/de-CH.js +1 -1
- package/lang/de-DE.js +1 -1
- package/lang/de.js +1 -1
- package/lang/el.js +1 -1
- package/lang/en-GB.js +1 -1
- package/lang/en-US.js +1 -1
- package/lang/eo.js +1 -1
- package/lang/es.js +1 -1
- package/lang/et.js +1 -1
- package/lang/eu.js +1 -1
- package/lang/fa-IR.js +1 -1
- package/lang/fa.js +1 -1
- package/lang/fi.js +1 -1
- package/lang/fr.js +1 -1
- package/lang/gn.js +1 -1
- package/lang/he.js +1 -1
- package/lang/hi.js +1 -1
- package/lang/hr.js +1 -1
- package/lang/hu.js +1 -1
- package/lang/id.js +1 -1
- package/lang/is.js +1 -1
- package/lang/it.js +9 -9
- package/lang/ja.js +1 -1
- package/lang/kk.js +1 -1
- package/lang/km.js +1 -1
- package/lang/kur-CKB.js +1 -1
- package/lang/lt.js +2 -2
- package/lang/lu.js +1 -1
- package/lang/lv.js +1 -1
- package/lang/mk.js +1 -1
- package/lang/ml.js +1 -1
- package/lang/mm.js +1 -1
- package/lang/ms-MY.js +1 -1
- package/lang/ms.js +1 -1
- package/lang/my.js +1 -1
- package/lang/nb-NO.js +1 -1
- package/lang/nl.js +1 -1
- package/lang/pl.js +1 -1
- package/lang/pt-BR.js +1 -1
- package/lang/pt.js +1 -1
- package/lang/ro.js +1 -1
- package/lang/ru.js +1 -1
- package/lang/sk.js +1 -1
- package/lang/sl.js +1 -1
- package/lang/sm.js +1 -1
- package/lang/sq.js +1 -1
- package/lang/sr-CYR.js +1 -1
- package/lang/sr.js +1 -1
- package/lang/sv.js +1 -1
- package/lang/ta.js +1 -1
- package/lang/th.js +1 -1
- package/lang/tl.js +1 -1
- package/lang/tr.js +1 -1
- package/lang/ug.js +1 -1
- package/lang/uk.js +1 -1
- package/lang/ur-PK.js +1 -1
- package/lang/uz-Cyrl.js +1 -1
- package/lang/uz-Latn.js +1 -1
- package/lang/vi.js +1 -1
- package/lang/zh-CN.js +1 -1
- package/lang/zh-TW.js +1 -1
- package/package.json +13 -17
- package/src/components/ajax-bar/QAjaxBar.js +22 -25
- package/src/components/avatar/QAvatar.js +3 -3
- package/src/components/avatar/QAvatar.test.js +2 -2
- package/src/components/badge/QBadge.js +9 -10
- package/src/components/badge/QBadge.test.js +2 -2
- package/src/components/banner/QBanner.js +6 -6
- package/src/components/banner/QBanner.test.js +2 -2
- package/src/components/bar/QBar.js +3 -3
- package/src/components/bar/QBar.test.js +2 -2
- package/src/components/breadcrumbs/QBreadcrumbs.js +5 -4
- package/src/components/breadcrumbs/QBreadcrumbs.test.js +3 -3
- package/src/components/breadcrumbs/QBreadcrumbsEl.js +4 -4
- package/src/components/breadcrumbs/QBreadcrumbsEl.test.js +2 -2
- package/src/components/btn/QBtn.js +39 -44
- package/src/components/btn/QBtn.test.js +2 -2
- package/src/components/btn/use-btn.js +34 -47
- package/src/components/btn/use-btn.test.js +5 -5
- package/src/components/btn-dropdown/QBtnDropdown.js +15 -16
- package/src/components/btn-group/QBtnGroup.js +3 -3
- package/src/components/btn-toggle/QBtnToggle.js +5 -9
- package/src/components/card/QCard.js +5 -5
- package/src/components/card/QCardActions.js +2 -2
- package/src/components/card/QCardSection.js +2 -2
- package/src/components/carousel/QCarousel.js +32 -38
- package/src/components/carousel/QCarouselControl.js +1 -1
- package/src/components/carousel/QCarouselSlide.js +1 -1
- package/src/components/carousel/QCarouselSlide.json +1 -1
- package/src/components/chat/QChatMessage.js +13 -14
- package/src/components/chat/QChatMessage.json +1 -1
- package/src/components/checkbox/QCheckbox.js +5 -5
- package/src/components/checkbox/use-checkbox.js +38 -50
- package/src/components/chip/QChip.js +26 -34
- package/src/components/chip/QChip.test.js +2 -2
- package/src/components/circular-progress/QCircularProgress.js +8 -11
- package/src/components/circular-progress/circular-progress.test.js +1 -1
- package/src/components/color/QColor.js +75 -98
- package/src/components/date/QDate.js +128 -140
- package/src/components/date/use-datetime.js +3 -6
- package/src/components/dialog/QDialog.js +44 -50
- package/src/components/dialog/QDialog.test.js +7 -7
- package/src/components/drawer/QDrawer.js +110 -152
- package/src/components/editor/QEditor.js +44 -37
- package/src/components/editor/editor-caret.js +27 -31
- package/src/components/editor/editor-utils.js +9 -5
- package/src/components/expansion-item/QExpansionItem.js +36 -48
- package/src/components/fab/QFab.js +11 -11
- package/src/components/fab/QFabAction.js +2 -4
- package/src/components/fab/use-fab.js +6 -7
- package/src/components/field/QField.js +2 -2
- package/src/components/file/QFile.js +26 -33
- package/src/components/footer/QFooter.js +40 -53
- package/src/components/form/QForm.js +37 -43
- package/src/components/form/QFormChildMixin.js +3 -3
- package/src/components/header/QHeader.js +35 -47
- package/src/components/icon/QIcon.js +19 -19
- package/src/components/img/QImg.js +24 -24
- package/src/components/img/QImg.json +3 -3
- package/src/components/infinite-scroll/QInfiniteScroll.js +38 -52
- package/src/components/inner-loading/QInnerLoading.js +3 -3
- package/src/components/input/QInput.js +52 -52
- package/src/components/input/use-mask.js +56 -54
- package/src/components/intersection/QIntersection.js +6 -8
- package/src/components/item/QItem.js +20 -30
- package/src/components/item/QItemLabel.js +5 -7
- package/src/components/item/QItemSection.js +6 -6
- package/src/components/item/QList.js +6 -6
- package/src/components/item/QList.test.js +2 -2
- package/src/components/knob/QKnob.js +39 -44
- package/src/components/layout/QLayout.js +30 -34
- package/src/components/linear-progress/QLinearProgress.js +14 -23
- package/src/components/markup-table/QMarkupTable.js +7 -9
- package/src/components/menu/QMenu.js +36 -37
- package/src/components/no-ssr/QNoSsr.js +1 -1
- package/src/components/option-group/QOptionGroup.js +5 -5
- package/src/components/page/QPage.js +16 -18
- package/src/components/page/QPageContainer.js +9 -9
- package/src/components/page-scroller/QPageScroller.js +11 -13
- package/src/components/page-sticky/use-page-sticky.js +18 -18
- package/src/components/pagination/QPagination.js +24 -26
- package/src/components/parallax/QParallax.js +15 -9
- package/src/components/parallax/QParallax.json +1 -1
- package/src/components/popup-edit/QPopupEdit.js +10 -13
- package/src/components/popup-proxy/QPopupProxy.js +5 -7
- package/src/components/pull-to-refresh/QPullToRefresh.js +15 -17
- package/src/components/radio/QRadio.js +24 -29
- package/src/components/range/QRange.js +33 -37
- package/src/components/rating/QRating.js +59 -61
- package/src/components/resize-observer/QResizeObserver.js +55 -62
- package/src/components/scroll-area/QScrollArea.js +32 -36
- package/src/components/scroll-observer/QScrollObserver.js +3 -3
- package/src/components/select/QSelect.js +208 -269
- package/src/components/separator/QSeparator.js +7 -10
- package/src/components/skeleton/QSkeleton.js +4 -4
- package/src/components/slide-item/QSlideItem.js +7 -7
- package/src/components/slide-transition/QSlideTransition.js +4 -4
- package/src/components/slider/QSlider.js +13 -16
- package/src/components/slider/use-slider.js +53 -81
- package/src/components/slider/use-slider.json +3 -3
- package/src/components/space/QSpace.test.js +1 -1
- package/src/components/spinner/QSpinner.test.js +2 -2
- package/src/components/spinner/QSpinnerAudio.test.js +2 -2
- package/src/components/spinner/QSpinnerBall.test.js +2 -2
- package/src/components/spinner/QSpinnerBars.test.js +2 -2
- package/src/components/spinner/QSpinnerBox.test.js +2 -2
- package/src/components/spinner/QSpinnerClock.test.js +2 -2
- package/src/components/spinner/QSpinnerComment.test.js +2 -2
- package/src/components/spinner/QSpinnerCube.test.js +2 -2
- package/src/components/spinner/QSpinnerDots.test.js +2 -2
- package/src/components/spinner/QSpinnerFacebook.test.js +2 -2
- package/src/components/spinner/QSpinnerGears.test.js +2 -2
- package/src/components/spinner/QSpinnerGrid.test.js +2 -2
- package/src/components/spinner/QSpinnerHearts.test.js +2 -2
- package/src/components/spinner/QSpinnerHourglass.test.js +2 -2
- package/src/components/spinner/QSpinnerInfinity.test.js +2 -2
- package/src/components/spinner/QSpinnerIos.test.js +2 -2
- package/src/components/spinner/QSpinnerOrbit.test.js +2 -2
- package/src/components/spinner/QSpinnerOval.test.js +2 -2
- package/src/components/spinner/QSpinnerPie.test.js +2 -2
- package/src/components/spinner/QSpinnerPuff.test.js +2 -2
- package/src/components/spinner/QSpinnerRadio.test.js +2 -2
- package/src/components/spinner/QSpinnerRings.test.js +2 -2
- package/src/components/spinner/QSpinnerTail.test.js +2 -2
- package/src/components/spinner/use-spinner.test.js +1 -1
- package/src/components/splitter/QSplitter.js +19 -21
- package/src/components/stepper/QStep.js +12 -14
- package/src/components/stepper/QStepper.js +13 -14
- package/src/components/stepper/StepHeader.js +34 -35
- package/src/components/tab-panels/QTabPanels.js +3 -3
- package/src/components/table/QTable.js +82 -100
- package/src/components/table/QTd.js +3 -3
- package/src/components/table/QTh.js +5 -6
- package/src/components/table/QTr.js +3 -3
- package/src/components/table/table-column-selection.js +4 -6
- package/src/components/table/table-filter.js +2 -2
- package/src/components/table/table-pagination.js +14 -20
- package/src/components/table/table-row-expand.js +3 -3
- package/src/components/table/table-row-selection.js +10 -20
- package/src/components/table/table-sort.js +7 -7
- package/src/components/tabs/QRouteTab.js +1 -1
- package/src/components/tabs/QTab.js +1 -1
- package/src/components/tabs/QTabs.js +82 -109
- package/src/components/tabs/use-tab.js +36 -38
- package/src/components/time/QTime.js +109 -132
- package/src/components/timeline/QTimeline.js +7 -4
- package/src/components/timeline/QTimelineEntry.js +7 -6
- package/src/components/timeline/QTimelineEntry.json +1 -1
- package/src/components/toggle/QToggle.js +6 -8
- package/src/components/toolbar/QToolbar.js +2 -2
- package/src/components/toolbar/QToolbar.test.js +2 -2
- package/src/components/toolbar/QToolbarTitle.js +2 -4
- package/src/components/toolbar/QToolbarTitle.test.js +2 -2
- package/src/components/tooltip/QTooltip.js +27 -28
- package/src/components/tree/QTree.js +96 -114
- package/src/components/tree/QTree.json +1 -1
- package/src/components/uploader/QUploaderAddTrigger.js +2 -2
- package/src/components/uploader/uploader-core.js +44 -51
- package/src/components/uploader/xhr-uploader-plugin.js +13 -17
- package/src/components/video/QVideo.js +1 -1
- package/src/components/video/QVideo.test.js +2 -2
- package/src/components/virtual-scroll/QVirtualScroll.js +9 -10
- package/src/components/virtual-scroll/use-virtual-scroll.js +42 -50
- package/src/composables/private.use-align/use-align.js +2 -2
- package/src/composables/private.use-align/use-align.test.js +1 -1
- package/src/composables/private.use-anchor/use-anchor.js +23 -32
- package/src/composables/private.use-dark/use-dark.test.js +1 -1
- package/src/composables/private.use-field/use-field.js +79 -99
- package/src/composables/private.use-file/use-file-dom-props.js +2 -2
- package/src/composables/private.use-file/use-file.js +27 -27
- package/src/composables/private.use-fullscreen/use-fullscreen.js +15 -20
- package/src/composables/private.use-history/use-history.js +2 -2
- package/src/composables/private.use-history/use-history.test.js +1 -1
- package/src/composables/private.use-key-composition/use-key-composition.js +11 -12
- package/src/composables/private.use-model-toggle/use-model-toggle.js +16 -25
- package/src/composables/private.use-panel/use-panel.js +25 -27
- package/src/composables/private.use-portal/use-portal.js +11 -9
- package/src/composables/private.use-prevent-scroll/use-prevent-scroll.js +1 -4
- package/src/composables/private.use-ratio/use-ratio.js +6 -5
- package/src/composables/private.use-ratio/use-ratio.test.js +1 -1
- package/src/composables/private.use-refocus-target/use-refocus-target.js +2 -4
- package/src/composables/private.use-router-link/use-router-link.js +44 -55
- package/src/composables/private.use-scroll-target/use-scroll-target.js +1 -1
- package/src/composables/private.use-size/use-size.test.js +1 -1
- package/src/composables/private.use-transition/use-transition.test.js +1 -1
- package/src/composables/private.use-validate/use-validate.js +23 -36
- package/src/composables/use-dialog-plugin-component/use-dialog-plugin-component.js +1 -1
- package/src/composables/use-form/private.use-form.js +1 -1
- package/src/composables/use-form/private.use-form.test.js +3 -3
- package/src/composables/use-form/use-form-child.js +7 -7
- package/src/composables/use-hydration/use-hydration.js +2 -2
- package/src/composables/use-hydration/use-hydration.test.js +1 -1
- package/src/composables/use-id/use-id.js +4 -8
- package/src/composables/use-id/use-id.test.js +1 -1
- package/src/composables/use-interval/use-interval.js +3 -3
- package/src/composables/use-interval/use-interval.test.js +1 -1
- package/src/composables/use-meta/use-meta.js +3 -3
- package/src/composables/use-quasar/use-quasar.test.js +1 -1
- package/src/composables/use-render-cache/use-render-cache.js +1 -1
- package/src/composables/use-render-cache/use-render-cache.test.js +1 -1
- package/src/composables/use-split-attrs/use-split-attrs.js +3 -7
- package/src/composables/use-split-attrs/use-split-attrs.test.js +1 -1
- package/src/composables/use-tick/use-tick.js +3 -3
- package/src/composables/use-tick/use-tick.test.js +2 -2
- package/src/composables/use-timeout/use-timeout.js +2 -2
- package/src/composables/use-timeout/use-timeout.test.js +1 -1
- package/src/directives/close-popup/ClosePopup.js +4 -9
- package/src/directives/intersection/Intersection.js +5 -8
- package/src/directives/morph/Morph.js +12 -18
- package/src/directives/ripple/Ripple.js +19 -26
- package/src/directives/ripple/Ripple.test.js +2 -2
- package/src/directives/scroll/Scroll.js +2 -2
- package/src/directives/touch-hold/TouchHold.js +22 -28
- package/src/directives/touch-pan/TouchPan.js +68 -84
- package/src/directives/touch-repeat/TouchRepeat.js +28 -39
- package/src/directives/touch-swipe/TouchSwipe.js +30 -33
- package/src/index.ssr.js +2 -0
- package/src/index.umd.js +2 -0
- package/src/install-quasar.js +9 -9
- package/src/plugins/addressbar/AddressbarColor.js +9 -9
- package/src/plugins/addressbar/AddressbarColor.test.js +2 -2
- package/src/plugins/app-fullscreen/AppFullscreen.js +11 -10
- package/src/plugins/app-fullscreen/AppFullscreen.test.js +2 -2
- package/src/plugins/app-fullscreen/test/mock-fullscreen.js +2 -2
- package/src/plugins/app-visibility/AppVisibility.js +5 -5
- package/src/plugins/app-visibility/AppVisibility.test.js +2 -2
- package/src/plugins/bottom-sheet/BottomSheet.js +2 -2
- package/src/plugins/bottom-sheet/component/BottomSheetComponent.js +4 -4
- package/src/plugins/cookies/Cookies.js +50 -62
- package/src/plugins/dark/Dark.js +3 -5
- package/src/plugins/dark/Dark.test.js +1 -1
- package/src/plugins/dialog/Dialog.js +2 -2
- package/src/plugins/dialog/component/DialogPluginComponent.js +17 -20
- package/src/plugins/icon-set/IconSet.js +2 -4
- package/src/plugins/icon-set/IconSet.test.js +1 -1
- package/src/plugins/lang/Lang.js +7 -10
- package/src/plugins/lang/Lang.json +2 -2
- package/src/plugins/lang/Lang.test.js +2 -2
- package/src/plugins/loading/Loading.js +10 -12
- package/src/plugins/loading-bar/LoadingBar.js +4 -4
- package/src/plugins/meta/Meta.js +10 -11
- package/src/plugins/notify/Notify.js +67 -72
- package/src/plugins/platform/Platform.js +19 -21
- package/src/plugins/platform/Platform.test.js +1 -1
- package/src/plugins/private.body/Body.js +23 -29
- package/src/plugins/private.body/Body.test.js +1 -1
- package/src/plugins/private.history/History.js +17 -25
- package/src/plugins/private.history/History.test.js +1 -1
- package/src/plugins/screen/Screen.js +16 -16
- package/src/plugins/screen/Screen.test.js +1 -1
- package/src/plugins/storage/LocalStorage.js +3 -4
- package/src/plugins/storage/LocalStorage.test.js +2 -2
- package/src/plugins/storage/SessionStorage.js +3 -4
- package/src/plugins/storage/SessionStorage.test.js +2 -2
- package/src/plugins/storage/engine/web-storage.js +30 -23
- package/src/plugins/storage/engine/web-storage.test.js +1 -1
- package/src/utils/EventBus/EventBus.js +3 -4
- package/src/utils/EventBus/EventBus.test.js +1 -1
- package/src/utils/clone/clone.test.js +4 -8
- package/src/utils/colors/colors.js +38 -29
- package/src/utils/colors/colors.test.js +2 -2
- package/src/utils/copy-to-clipboard/copy-to-clipboard.js +6 -11
- package/src/utils/create-meta-mixin/create-meta-mixin.js +2 -2
- package/src/utils/create-uploader-component/create-uploader-component.js +12 -7
- package/src/utils/css-var/get-css-var.test.js +2 -2
- package/src/utils/css-var/set-css-var.test.js +2 -2
- package/src/utils/date/date.js +229 -172
- package/src/utils/date/private.persian.js +11 -11
- package/src/utils/debounce/debounce.js +3 -7
- package/src/utils/debounce/debounce.test.js +1 -1
- package/src/utils/dom/dom.js +2 -4
- package/src/utils/dom/dom.test.js +4 -4
- package/src/utils/event/event.js +21 -23
- package/src/utils/export-file/export-file.js +3 -3
- package/src/utils/extend/extend.js +15 -14
- package/src/utils/extend/extend.test.js +2 -2
- package/src/utils/format/format.js +4 -10
- package/src/utils/format/format.test.js +1 -1
- package/src/utils/frame-debounce/frame-debounce.js +23 -12
- package/src/utils/frame-debounce/frame-debounce.test.js +1 -1
- package/src/utils/is/is.js +15 -26
- package/src/utils/is/is.test.js +8 -7
- package/src/utils/morph/morph.js +57 -48
- package/src/utils/open-url/open-url.js +7 -7
- package/src/utils/patterns/patterns.js +26 -23
- package/src/utils/patterns/patterns.test.js +1 -1
- package/src/utils/private.click-outside/click-outside.js +5 -5
- package/src/utils/private.config/instance-config.js +2 -0
- package/src/utils/private.config/instance-config.test.js +4 -4
- package/src/utils/private.config/nodes.js +5 -5
- package/src/utils/private.config/nodes.test.js +4 -4
- package/src/utils/private.create/create.test.js +1 -1
- package/src/utils/private.dialog/create-dialog.js +9 -12
- package/src/utils/private.focus/focus-manager.js +1 -1
- package/src/utils/private.focus/focus-manager.test.js +4 -4
- package/src/utils/private.focus/focusout.js +2 -2
- package/src/utils/private.focus/focusout.test.js +1 -1
- package/src/utils/private.get-emits-object/get-emits-object.test.js +1 -1
- package/src/utils/private.inject-obj-prop/inject-obj-prop.test.js +2 -2
- package/src/utils/private.keyboard/escape-key.js +5 -5
- package/src/utils/private.keyboard/escape-key.test.js +1 -1
- package/src/utils/private.keyboard/key-composition.js +4 -6
- package/src/utils/private.noop-ssr-directive-transform/noop-ssr-directive-transform.js +3 -1
- package/src/utils/private.noop-ssr-directive-transform/noop-ssr-directive-transform.test.js +1 -1
- package/src/utils/private.portal/portal.js +5 -5
- package/src/utils/private.position-engine/position-engine.js +20 -22
- package/src/utils/private.render/render.js +5 -7
- package/src/utils/private.render/render.test.js +5 -5
- package/src/utils/private.rtl/rtl.js +3 -2
- package/src/utils/private.rtl/rtl.test.js +1 -1
- package/src/utils/private.selection/selection.js +1 -1
- package/src/utils/private.selection/selection.test.js +2 -2
- package/src/utils/private.sort/sort.test.js +2 -2
- package/src/utils/private.touch/touch.js +10 -14
- package/src/utils/private.touch/touch.test.js +1 -1
- package/src/utils/private.vm/vm.js +2 -2
- package/src/utils/private.vm/vm.test.js +4 -4
- package/src/utils/run-sequential-promises/run-sequential-promises.js +44 -54
- package/src/utils/run-sequential-promises/run-sequential-promises.test.js +183 -0
- package/src/utils/scroll/prevent-scroll.js +9 -9
- package/src/utils/scroll/scroll.js +11 -12
- package/src/utils/throttle/throttle.js +4 -3
- package/src/utils/throttle/throttle.test.js +1 -1
- package/src/utils/uid/uid.js +51 -77
- package/src/utils/uid/uid.test.js +3 -3
- package/wrappers/index.cjs +2 -2
- package/wrappers/index.js +2 -2
- package/dist/types/extras/animations.d.ts +0 -106
- package/dist/types/extras/fonts.d.ts +0 -1
- package/dist/types/extras.d.ts +0 -3
- package/dist/vetur/quasar-attributes.json +0 -1
- package/dist/vetur/quasar-tags.json +0 -1
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
import {
|
|
2
|
-
h,
|
|
3
|
-
ref,
|
|
4
2
|
computed,
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
onBeforeUnmount,
|
|
3
|
+
getCurrentInstance,
|
|
4
|
+
h,
|
|
8
5
|
nextTick,
|
|
9
|
-
|
|
6
|
+
onBeforeUnmount,
|
|
7
|
+
onMounted,
|
|
8
|
+
ref,
|
|
9
|
+
watch
|
|
10
10
|
} from 'vue'
|
|
11
11
|
|
|
12
12
|
import Caret from './editor-caret.js'
|
|
13
|
-
import {
|
|
13
|
+
import { getFonts, getLinkEditor, getToolbar } from './editor-utils.js'
|
|
14
14
|
|
|
15
15
|
import useDark, {
|
|
16
16
|
useDarkProps
|
|
17
17
|
} from '../../composables/private.use-dark/use-dark.js'
|
|
18
18
|
import useFullscreen, {
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
useFullscreenEmits,
|
|
20
|
+
useFullscreenProps
|
|
21
21
|
} from '../../composables/private.use-fullscreen/use-fullscreen.js'
|
|
22
22
|
import useSplitAttrs from '../../composables/use-split-attrs/use-split-attrs.js'
|
|
23
23
|
|
|
@@ -52,7 +52,7 @@ export default createComponent({
|
|
|
52
52
|
|
|
53
53
|
toolbar: {
|
|
54
54
|
type: Array,
|
|
55
|
-
validator: v => v.
|
|
55
|
+
validator: v => v.every(group => group.length),
|
|
56
56
|
// long line on purpose for API validation purposes:
|
|
57
57
|
// oxfmt-ignore
|
|
58
58
|
default: () => [['left', 'center', 'right', 'justify'], ['bold', 'italic', 'underline', 'strike'], ['undo', 'redo']]
|
|
@@ -116,7 +116,7 @@ export default createComponent({
|
|
|
116
116
|
let defaultFont, offsetBottom
|
|
117
117
|
let lastEmit = props.modelValue
|
|
118
118
|
|
|
119
|
-
if (__QUASAR_SSR_SERVER__
|
|
119
|
+
if (!__QUASAR_SSR_SERVER__) {
|
|
120
120
|
document.execCommand(
|
|
121
121
|
'defaultParagraphSeparator',
|
|
122
122
|
false,
|
|
@@ -130,7 +130,7 @@ export default createComponent({
|
|
|
130
130
|
)
|
|
131
131
|
|
|
132
132
|
const buttonProps = computed(() => {
|
|
133
|
-
const flat = props.toolbarOutline
|
|
133
|
+
const flat = !props.toolbarOutline && !props.toolbarPush
|
|
134
134
|
|
|
135
135
|
return {
|
|
136
136
|
type: 'a',
|
|
@@ -324,6 +324,7 @@ export default createComponent({
|
|
|
324
324
|
'size-1': {
|
|
325
325
|
cmd: 'fontSize',
|
|
326
326
|
param: '1',
|
|
327
|
+
// oxlint-disable-next-line unicorn/explicit-length-check
|
|
327
328
|
icon: i.size1 || i.size,
|
|
328
329
|
tip: e.size1,
|
|
329
330
|
htmlTip: `<font size="1">${e.size1}</font>`
|
|
@@ -331,6 +332,7 @@ export default createComponent({
|
|
|
331
332
|
'size-2': {
|
|
332
333
|
cmd: 'fontSize',
|
|
333
334
|
param: '2',
|
|
335
|
+
// oxlint-disable-next-line unicorn/explicit-length-check
|
|
334
336
|
icon: i.size2 || i.size,
|
|
335
337
|
tip: e.size2,
|
|
336
338
|
htmlTip: `<font size="2">${e.size2}</font>`
|
|
@@ -338,6 +340,7 @@ export default createComponent({
|
|
|
338
340
|
'size-3': {
|
|
339
341
|
cmd: 'fontSize',
|
|
340
342
|
param: '3',
|
|
343
|
+
// oxlint-disable-next-line unicorn/explicit-length-check
|
|
341
344
|
icon: i.size3 || i.size,
|
|
342
345
|
tip: e.size3,
|
|
343
346
|
htmlTip: `<font size="3">${e.size3}</font>`
|
|
@@ -345,6 +348,7 @@ export default createComponent({
|
|
|
345
348
|
'size-4': {
|
|
346
349
|
cmd: 'fontSize',
|
|
347
350
|
param: '4',
|
|
351
|
+
// oxlint-disable-next-line unicorn/explicit-length-check
|
|
348
352
|
icon: i.size4 || i.size,
|
|
349
353
|
tip: e.size4,
|
|
350
354
|
htmlTip: `<font size="4">${e.size4}</font>`
|
|
@@ -352,6 +356,7 @@ export default createComponent({
|
|
|
352
356
|
'size-5': {
|
|
353
357
|
cmd: 'fontSize',
|
|
354
358
|
param: '5',
|
|
359
|
+
// oxlint-disable-next-line unicorn/explicit-length-check
|
|
355
360
|
icon: i.size5 || i.size,
|
|
356
361
|
tip: e.size5,
|
|
357
362
|
htmlTip: `<font size="5">${e.size5}</font>`
|
|
@@ -359,6 +364,7 @@ export default createComponent({
|
|
|
359
364
|
'size-6': {
|
|
360
365
|
cmd: 'fontSize',
|
|
361
366
|
param: '6',
|
|
367
|
+
// oxlint-disable-next-line unicorn/explicit-length-check
|
|
362
368
|
icon: i.size6 || i.size,
|
|
363
369
|
tip: e.size6,
|
|
364
370
|
htmlTip: `<font size="6">${e.size6}</font>`
|
|
@@ -366,6 +372,7 @@ export default createComponent({
|
|
|
366
372
|
'size-7': {
|
|
367
373
|
cmd: 'fontSize',
|
|
368
374
|
param: '7',
|
|
375
|
+
// oxlint-disable-next-line unicorn/explicit-length-check
|
|
369
376
|
icon: i.size7 || i.size,
|
|
370
377
|
tip: e.size7,
|
|
371
378
|
htmlTip: `<font size="7">${e.size7}</font>`
|
|
@@ -417,12 +424,12 @@ export default createComponent({
|
|
|
417
424
|
(buttonDef.value[obj.cmd] &&
|
|
418
425
|
buttonDef.value[obj.cmd].type === 'no-state')))
|
|
419
426
|
? obj
|
|
420
|
-
:
|
|
421
|
-
}
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
427
|
+
: { type: 'toggle', ...obj }
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
return {
|
|
431
|
+
type: 'slot',
|
|
432
|
+
slot: token
|
|
426
433
|
}
|
|
427
434
|
})
|
|
428
435
|
)
|
|
@@ -502,13 +509,13 @@ export default createComponent({
|
|
|
502
509
|
|
|
503
510
|
const classes = computed(
|
|
504
511
|
() =>
|
|
505
|
-
`q-editor q-editor--${isViewingSource.value
|
|
506
|
-
(props.disable
|
|
507
|
-
(inFullscreen.value
|
|
508
|
-
(props.square
|
|
509
|
-
(props.flat
|
|
510
|
-
(props.dense
|
|
511
|
-
(isDark.value
|
|
512
|
+
`q-editor q-editor--${isViewingSource.value ? 'source' : 'default'}` +
|
|
513
|
+
(props.disable ? ' disabled' : '') +
|
|
514
|
+
(inFullscreen.value ? ' fullscreen column' : '') +
|
|
515
|
+
(props.square ? ' q-editor--square no-border-radius' : '') +
|
|
516
|
+
(props.flat ? ' q-editor--flat' : '') +
|
|
517
|
+
(props.dense ? ' q-editor--dense' : '') +
|
|
518
|
+
(isDark.value ? ' q-editor--dark q-dark' : '')
|
|
512
519
|
)
|
|
513
520
|
|
|
514
521
|
const innerClass = computed(() => [
|
|
@@ -521,12 +528,12 @@ export default createComponent({
|
|
|
521
528
|
])
|
|
522
529
|
|
|
523
530
|
const attributes = computed(() =>
|
|
524
|
-
props.disable
|
|
531
|
+
props.disable ? { 'aria-disabled': 'true' } : {}
|
|
525
532
|
)
|
|
526
533
|
|
|
527
534
|
function onInput() {
|
|
528
535
|
if (contentRef.value !== null) {
|
|
529
|
-
const prop = `inner${isViewingSource.value
|
|
536
|
+
const prop = `inner${isViewingSource.value ? 'Text' : 'HTML'}`
|
|
530
537
|
const val = contentRef.value[prop]
|
|
531
538
|
|
|
532
539
|
if (val !== props.modelValue) {
|
|
@@ -539,7 +546,7 @@ export default createComponent({
|
|
|
539
546
|
function onKeydown(e) {
|
|
540
547
|
emit('keydown', e)
|
|
541
548
|
|
|
542
|
-
if (e.ctrlKey
|
|
549
|
+
if (!e.ctrlKey || shouldIgnoreKey(e)) {
|
|
543
550
|
refreshToolbar()
|
|
544
551
|
return
|
|
545
552
|
}
|
|
@@ -582,10 +589,10 @@ export default createComponent({
|
|
|
582
589
|
|
|
583
590
|
if (
|
|
584
591
|
root !== null &&
|
|
585
|
-
root.contains(e.target)
|
|
586
|
-
(e.relatedTarget === null || root.contains(e.relatedTarget)
|
|
592
|
+
root.contains(e.target) &&
|
|
593
|
+
(e.relatedTarget === null || !root.contains(e.relatedTarget))
|
|
587
594
|
) {
|
|
588
|
-
const prop = `inner${isViewingSource.value
|
|
595
|
+
const prop = `inner${isViewingSource.value ? 'Text' : 'HTML'}`
|
|
589
596
|
eVm.caret.restorePosition(contentRef.value[prop].length)
|
|
590
597
|
refreshToolbar()
|
|
591
598
|
}
|
|
@@ -596,8 +603,8 @@ export default createComponent({
|
|
|
596
603
|
|
|
597
604
|
if (
|
|
598
605
|
root !== null &&
|
|
599
|
-
root.contains(e.target)
|
|
600
|
-
(e.relatedTarget === null || root.contains(e.relatedTarget)
|
|
606
|
+
root.contains(e.target) &&
|
|
607
|
+
(e.relatedTarget === null || !root.contains(e.relatedTarget))
|
|
601
608
|
) {
|
|
602
609
|
eVm.caret.savePosition()
|
|
603
610
|
refreshToolbar()
|
|
@@ -614,14 +621,14 @@ export default createComponent({
|
|
|
614
621
|
|
|
615
622
|
function setContent(v, restorePosition) {
|
|
616
623
|
if (contentRef.value !== null) {
|
|
617
|
-
if (restorePosition
|
|
624
|
+
if (restorePosition) {
|
|
618
625
|
eVm.caret.savePosition()
|
|
619
626
|
}
|
|
620
627
|
|
|
621
|
-
const prop = `inner${isViewingSource.value
|
|
628
|
+
const prop = `inner${isViewingSource.value ? 'Text' : 'HTML'}`
|
|
622
629
|
contentRef.value[prop] = v
|
|
623
630
|
|
|
624
|
-
if (restorePosition
|
|
631
|
+
if (restorePosition) {
|
|
625
632
|
eVm.caret.restorePosition(contentRef.value[prop].length)
|
|
626
633
|
refreshToolbar()
|
|
627
634
|
}
|
|
@@ -724,7 +731,7 @@ export default createComponent({
|
|
|
724
731
|
{
|
|
725
732
|
ref: rootRef,
|
|
726
733
|
class: classes.value,
|
|
727
|
-
style: { height: inFullscreen.value
|
|
734
|
+
style: { height: inFullscreen.value ? '100%' : null },
|
|
728
735
|
...attributes.value,
|
|
729
736
|
onFocusin,
|
|
730
737
|
onFocusout
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { noop } from '../../utils/event/event.js'
|
|
2
2
|
|
|
3
|
+
const tagList = ['div', 'li', 'ul', 'ol', 'blockquote']
|
|
4
|
+
|
|
3
5
|
function getBlockElement(el, parent) {
|
|
4
6
|
if (parent && el === parent) {
|
|
5
7
|
return null
|
|
@@ -7,9 +9,7 @@ function getBlockElement(el, parent) {
|
|
|
7
9
|
|
|
8
10
|
const nodeName = el.nodeName.toLowerCase()
|
|
9
11
|
|
|
10
|
-
if (
|
|
11
|
-
return el
|
|
12
|
-
}
|
|
12
|
+
if (tagList.includes(nodeName)) return el
|
|
13
13
|
|
|
14
14
|
const style = window.getComputedStyle
|
|
15
15
|
? window.getComputedStyle(el)
|
|
@@ -26,7 +26,7 @@ function getBlockElement(el, parent) {
|
|
|
26
26
|
function isChildOf(el, parent, orSame) {
|
|
27
27
|
return !el || el === document.body
|
|
28
28
|
? false
|
|
29
|
-
: (orSame
|
|
29
|
+
: (orSame && el === parent) ||
|
|
30
30
|
(parent === document ? document.body : parent).contains(el.parentNode)
|
|
31
31
|
}
|
|
32
32
|
|
|
@@ -186,46 +186,48 @@ export default class Caret {
|
|
|
186
186
|
}
|
|
187
187
|
|
|
188
188
|
hasParents(list, recursive, el = this.parent) {
|
|
189
|
-
if (el === null)
|
|
190
|
-
return false
|
|
191
|
-
}
|
|
189
|
+
if (el === null) return false
|
|
192
190
|
|
|
193
|
-
if (list.includes(el.nodeName.toLowerCase())
|
|
191
|
+
if (list.includes(el.nodeName.toLowerCase())) {
|
|
194
192
|
return true
|
|
195
193
|
}
|
|
196
194
|
|
|
197
|
-
return recursive
|
|
198
|
-
? this.hasParents(list, recursive, el.parentNode)
|
|
199
|
-
: false
|
|
195
|
+
return recursive ? this.hasParents(list, recursive, el.parentNode) : false
|
|
200
196
|
}
|
|
201
197
|
|
|
202
198
|
is(cmd, param) {
|
|
203
|
-
if (this.selection === null)
|
|
204
|
-
return false
|
|
205
|
-
}
|
|
199
|
+
if (this.selection === null) return false
|
|
206
200
|
|
|
207
201
|
switch (cmd) {
|
|
208
|
-
case 'formatBlock':
|
|
202
|
+
case 'formatBlock': {
|
|
209
203
|
return (
|
|
210
204
|
(param === 'DIV' && this.parent === this.el) ||
|
|
211
205
|
this.hasParent(param, param === 'PRE')
|
|
212
206
|
)
|
|
213
|
-
|
|
207
|
+
}
|
|
208
|
+
case 'link': {
|
|
214
209
|
return this.hasParent('A', true)
|
|
215
|
-
|
|
210
|
+
}
|
|
211
|
+
case 'fontSize': {
|
|
216
212
|
return document.queryCommandValue(cmd) === param
|
|
217
|
-
|
|
213
|
+
}
|
|
214
|
+
case 'fontName': {
|
|
218
215
|
const res = document.queryCommandValue(cmd)
|
|
219
216
|
return res === `"${param}"` || res === param
|
|
220
|
-
|
|
217
|
+
}
|
|
218
|
+
case 'fullscreen': {
|
|
221
219
|
return this.eVm.inFullscreen.value
|
|
222
|
-
|
|
220
|
+
}
|
|
221
|
+
case 'viewsource': {
|
|
223
222
|
return this.eVm.isViewingSource.value
|
|
224
|
-
|
|
223
|
+
}
|
|
224
|
+
case void 0: {
|
|
225
225
|
return false
|
|
226
|
-
|
|
226
|
+
}
|
|
227
|
+
default: {
|
|
227
228
|
const state = document.queryCommandState(cmd)
|
|
228
229
|
return param !== void 0 ? state === param : state
|
|
230
|
+
}
|
|
229
231
|
}
|
|
230
232
|
}
|
|
231
233
|
|
|
@@ -292,7 +294,7 @@ export default class Caret {
|
|
|
292
294
|
const url = selection ? selection.toString() : ''
|
|
293
295
|
|
|
294
296
|
if (
|
|
295
|
-
|
|
297
|
+
url.length === 0 &&
|
|
296
298
|
(!this.range || !this.range.cloneContents().querySelector('img'))
|
|
297
299
|
) {
|
|
298
300
|
return
|
|
@@ -315,7 +317,7 @@ export default class Caret {
|
|
|
315
317
|
|
|
316
318
|
return
|
|
317
319
|
} else if (cmd === 'viewsource') {
|
|
318
|
-
this.eVm.isViewingSource.value = this.eVm.isViewingSource.value
|
|
320
|
+
this.eVm.isViewingSource.value = !this.eVm.isViewingSource.value
|
|
319
321
|
this.eVm.setContent(this.eVm.props.modelValue)
|
|
320
322
|
done()
|
|
321
323
|
|
|
@@ -328,13 +330,7 @@ export default class Caret {
|
|
|
328
330
|
}
|
|
329
331
|
|
|
330
332
|
selectWord(sel) {
|
|
331
|
-
if (
|
|
332
|
-
sel === null ||
|
|
333
|
-
sel.isCollapsed !== true ||
|
|
334
|
-
/* IE 11 */ sel.modify === void 0
|
|
335
|
-
) {
|
|
336
|
-
return sel
|
|
337
|
-
}
|
|
333
|
+
if (sel === null || !sel.isCollapsed) return sel
|
|
338
334
|
|
|
339
335
|
// Detect if selection is backwards
|
|
340
336
|
const range = document.createRange()
|
|
@@ -35,7 +35,7 @@ function getBtn(eVm, btn, clickHandler, active = false) {
|
|
|
35
35
|
|
|
36
36
|
if (eVm.$q.platform.is.desktop && (btn.tip || btn.htmlTip)) {
|
|
37
37
|
const Key = btn.key
|
|
38
|
-
? h('div', [h('small', `(CTRL + ${String.
|
|
38
|
+
? h('div', [h('small', `(CTRL + ${String.fromCodePoint(btn.key)})`)])
|
|
39
39
|
: null
|
|
40
40
|
|
|
41
41
|
child.push(
|
|
@@ -143,7 +143,7 @@ function getDropdown(eVm, btn) {
|
|
|
143
143
|
}
|
|
144
144
|
},
|
|
145
145
|
() => [
|
|
146
|
-
noIcons
|
|
146
|
+
noIcons
|
|
147
147
|
? null
|
|
148
148
|
: h(
|
|
149
149
|
QItemSection,
|
|
@@ -291,13 +291,16 @@ export function getLinkEditor(eVm) {
|
|
|
291
291
|
link = evt.target.value
|
|
292
292
|
},
|
|
293
293
|
onKeydown: evt => {
|
|
294
|
-
if (shouldIgnoreKey(evt)
|
|
294
|
+
if (shouldIgnoreKey(evt)) return
|
|
295
295
|
|
|
296
296
|
switch (evt.keyCode) {
|
|
297
|
-
case 13:
|
|
297
|
+
case 13: {
|
|
298
|
+
// ENTER key
|
|
298
299
|
prevent(evt)
|
|
299
300
|
return updateLink()
|
|
300
|
-
|
|
301
|
+
}
|
|
302
|
+
case 27: {
|
|
303
|
+
// ESCAPE key
|
|
301
304
|
prevent(evt)
|
|
302
305
|
eVm.caret.restore()
|
|
303
306
|
if (
|
|
@@ -308,6 +311,7 @@ export function getLinkEditor(eVm) {
|
|
|
308
311
|
}
|
|
309
312
|
eVm.editLinkUrl.value = null
|
|
310
313
|
break
|
|
314
|
+
}
|
|
311
315
|
}
|
|
312
316
|
}
|
|
313
317
|
}),
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
|
-
h,
|
|
3
|
-
shallowReactive,
|
|
4
|
-
ref,
|
|
5
2
|
computed,
|
|
6
|
-
watch,
|
|
7
|
-
withDirectives,
|
|
8
3
|
getCurrentInstance,
|
|
4
|
+
h,
|
|
5
|
+
onBeforeUnmount,
|
|
6
|
+
ref,
|
|
7
|
+
shallowReactive,
|
|
9
8
|
vShow,
|
|
10
|
-
|
|
9
|
+
watch,
|
|
10
|
+
withDirectives
|
|
11
11
|
} from 'vue'
|
|
12
12
|
|
|
13
13
|
import QItem from '../item/QItem.js'
|
|
@@ -23,8 +23,8 @@ import useDark, {
|
|
|
23
23
|
import useId from '../../composables/use-id/use-id.js'
|
|
24
24
|
import { useRouterLinkProps } from '../../composables/private.use-router-link/use-router-link.js'
|
|
25
25
|
import useModelToggle, {
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
useModelToggleEmits,
|
|
27
|
+
useModelToggleProps
|
|
28
28
|
} from '../../composables/private.use-model-toggle/use-model-toggle.js'
|
|
29
29
|
|
|
30
30
|
import { createComponent } from '../../utils/private.create/create.js'
|
|
@@ -97,8 +97,8 @@ export default createComponent({
|
|
|
97
97
|
const classes = computed(
|
|
98
98
|
() =>
|
|
99
99
|
'q-expansion-item q-item-type' +
|
|
100
|
-
` q-expansion-item--${showing.value
|
|
101
|
-
` q-expansion-item--${props.popup
|
|
100
|
+
` q-expansion-item--${showing.value ? 'expanded' : 'collapsed'}` +
|
|
101
|
+
` q-expansion-item--${props.popup ? 'popup' : 'standard'}`
|
|
102
102
|
)
|
|
103
103
|
|
|
104
104
|
const contentStyle = computed(() => {
|
|
@@ -106,7 +106,7 @@ export default createComponent({
|
|
|
106
106
|
return null
|
|
107
107
|
}
|
|
108
108
|
|
|
109
|
-
const dir = $q.lang.rtl
|
|
109
|
+
const dir = $q.lang.rtl ? 'Right' : 'Left'
|
|
110
110
|
return {
|
|
111
111
|
['padding' + dir]: props.contentInsetLevel * 56 + 'px'
|
|
112
112
|
}
|
|
@@ -114,7 +114,7 @@ export default createComponent({
|
|
|
114
114
|
|
|
115
115
|
const hasLink = computed(
|
|
116
116
|
() =>
|
|
117
|
-
props.disable
|
|
117
|
+
!props.disable &&
|
|
118
118
|
(props.href !== void 0 ||
|
|
119
119
|
(props.to !== void 0 && props.to !== null && props.to !== ''))
|
|
120
120
|
)
|
|
@@ -127,27 +127,21 @@ export default createComponent({
|
|
|
127
127
|
return acc
|
|
128
128
|
})
|
|
129
129
|
|
|
130
|
-
const isClickable = computed(
|
|
131
|
-
() => hasLink.value === true || props.expandIconToggle !== true
|
|
132
|
-
)
|
|
130
|
+
const isClickable = computed(() => hasLink.value || !props.expandIconToggle)
|
|
133
131
|
|
|
134
132
|
const expansionIcon = computed(() =>
|
|
135
|
-
props.expandedIcon !== void 0 && showing.value
|
|
133
|
+
props.expandedIcon !== void 0 && showing.value
|
|
136
134
|
? props.expandedIcon
|
|
137
135
|
: props.expandIcon ||
|
|
138
|
-
$q.iconSet.expansionItem[
|
|
139
|
-
props.denseToggle === true ? 'denseIcon' : 'icon'
|
|
140
|
-
]
|
|
136
|
+
$q.iconSet.expansionItem[props.denseToggle ? 'denseIcon' : 'icon']
|
|
141
137
|
)
|
|
142
138
|
|
|
143
139
|
const activeToggleIcon = computed(
|
|
144
|
-
() =>
|
|
145
|
-
props.disable !== true &&
|
|
146
|
-
(hasLink.value === true || props.expandIconToggle === true)
|
|
140
|
+
() => !props.disable && (hasLink.value || props.expandIconToggle)
|
|
147
141
|
)
|
|
148
142
|
|
|
149
143
|
const headerSlotScope = computed(() => ({
|
|
150
|
-
expanded: showing.value
|
|
144
|
+
expanded: showing.value,
|
|
151
145
|
detailsId: targetUid.value,
|
|
152
146
|
toggle,
|
|
153
147
|
show,
|
|
@@ -158,13 +152,11 @@ export default createComponent({
|
|
|
158
152
|
const toggleAriaLabel =
|
|
159
153
|
props.toggleAriaLabel !== void 0
|
|
160
154
|
? props.toggleAriaLabel
|
|
161
|
-
: $q.lang.label[showing.value
|
|
162
|
-
props.label
|
|
163
|
-
)
|
|
155
|
+
: $q.lang.label[showing.value ? 'collapse' : 'expand'](props.label)
|
|
164
156
|
|
|
165
157
|
return {
|
|
166
158
|
role: 'button',
|
|
167
|
-
'aria-expanded': showing.value
|
|
159
|
+
'aria-expanded': showing.value ? 'true' : 'false',
|
|
168
160
|
'aria-controls': targetUid.value,
|
|
169
161
|
'aria-label': toggleAriaLabel
|
|
170
162
|
}
|
|
@@ -179,7 +171,7 @@ export default createComponent({
|
|
|
179
171
|
)
|
|
180
172
|
|
|
181
173
|
function onHeaderClick(e) {
|
|
182
|
-
if (hasLink.value
|
|
174
|
+
if (!hasLink.value) toggle(e)
|
|
183
175
|
emit('click', e)
|
|
184
176
|
}
|
|
185
177
|
|
|
@@ -188,9 +180,7 @@ export default createComponent({
|
|
|
188
180
|
}
|
|
189
181
|
|
|
190
182
|
function toggleIcon(e, keyboard) {
|
|
191
|
-
if (keyboard
|
|
192
|
-
blurTargetRef.value?.focus()
|
|
193
|
-
}
|
|
183
|
+
if (!keyboard && !e.qAvoidFocus) blurTargetRef.value?.focus()
|
|
194
184
|
|
|
195
185
|
toggle(e)
|
|
196
186
|
stopAndPrevent(e)
|
|
@@ -209,12 +199,12 @@ export default createComponent({
|
|
|
209
199
|
uniqueId = uid()
|
|
210
200
|
}
|
|
211
201
|
|
|
212
|
-
if (showing.value
|
|
202
|
+
if (showing.value) {
|
|
213
203
|
itemGroups[props.group] = uniqueId
|
|
214
204
|
}
|
|
215
205
|
|
|
216
206
|
const stopShowWatcher = watch(showing, val => {
|
|
217
|
-
if (val
|
|
207
|
+
if (val) {
|
|
218
208
|
itemGroups[props.group] = uniqueId
|
|
219
209
|
} else if (itemGroups[props.group] === uniqueId) {
|
|
220
210
|
delete itemGroups[props.group]
|
|
@@ -246,10 +236,10 @@ export default createComponent({
|
|
|
246
236
|
const data = {
|
|
247
237
|
class: [
|
|
248
238
|
'q-focusable relative-position cursor-pointer' +
|
|
249
|
-
`${props.denseToggle
|
|
239
|
+
`${props.denseToggle && props.switchToggleSide ? ' items-end' : ''}`,
|
|
250
240
|
props.expandIconClass
|
|
251
241
|
],
|
|
252
|
-
side: props.switchToggleSide
|
|
242
|
+
side: !props.switchToggleSide,
|
|
253
243
|
avatar: props.switchToggleSide
|
|
254
244
|
}
|
|
255
245
|
|
|
@@ -257,14 +247,14 @@ export default createComponent({
|
|
|
257
247
|
h(QIcon, {
|
|
258
248
|
class:
|
|
259
249
|
'q-expansion-item__toggle-icon' +
|
|
260
|
-
(props.expandedIcon === void 0 && showing.value
|
|
250
|
+
(props.expandedIcon === void 0 && showing.value
|
|
261
251
|
? ' q-expansion-item__toggle-icon--rotated'
|
|
262
252
|
: ''),
|
|
263
253
|
name: expansionIcon.value
|
|
264
254
|
})
|
|
265
255
|
]
|
|
266
256
|
|
|
267
|
-
if (activeToggleIcon.value
|
|
257
|
+
if (activeToggleIcon.value) {
|
|
268
258
|
Object.assign(data, {
|
|
269
259
|
tabindex: 0,
|
|
270
260
|
...toggleAriaAttrs.value,
|
|
@@ -289,7 +279,7 @@ export default createComponent({
|
|
|
289
279
|
let child
|
|
290
280
|
|
|
291
281
|
if (slots.header !== void 0) {
|
|
292
|
-
child = [
|
|
282
|
+
child = [slots.header(headerSlotScope.value)].flat()
|
|
293
283
|
} else {
|
|
294
284
|
child = [
|
|
295
285
|
h(QItemSection, () => [
|
|
@@ -306,12 +296,12 @@ export default createComponent({
|
|
|
306
296
|
]
|
|
307
297
|
|
|
308
298
|
if (props.icon) {
|
|
309
|
-
child[props.switchToggleSide
|
|
299
|
+
child[props.switchToggleSide ? 'push' : 'unshift'](
|
|
310
300
|
h(
|
|
311
301
|
QItemSection,
|
|
312
302
|
{
|
|
313
|
-
side: props.switchToggleSide
|
|
314
|
-
avatar: props.switchToggleSide
|
|
303
|
+
side: props.switchToggleSide,
|
|
304
|
+
avatar: !props.switchToggleSide
|
|
315
305
|
},
|
|
316
306
|
() => h(QIcon, { name: props.icon })
|
|
317
307
|
)
|
|
@@ -319,10 +309,8 @@ export default createComponent({
|
|
|
319
309
|
}
|
|
320
310
|
}
|
|
321
311
|
|
|
322
|
-
if (props.disable
|
|
323
|
-
child[props.switchToggleSide
|
|
324
|
-
getToggleIcon()
|
|
325
|
-
)
|
|
312
|
+
if (!props.disable && !props.hideExpandIcon) {
|
|
313
|
+
child[props.switchToggleSide ? 'unshift' : 'push'](getToggleIcon())
|
|
326
314
|
}
|
|
327
315
|
|
|
328
316
|
return child
|
|
@@ -339,13 +327,13 @@ export default createComponent({
|
|
|
339
327
|
insetLevel: props.headerInsetLevel
|
|
340
328
|
}
|
|
341
329
|
|
|
342
|
-
if (isClickable.value
|
|
330
|
+
if (isClickable.value) {
|
|
343
331
|
data.clickable = true
|
|
344
332
|
data.onClick = onHeaderClick
|
|
345
333
|
|
|
346
334
|
Object.assign(
|
|
347
335
|
data,
|
|
348
|
-
hasLink.value
|
|
336
|
+
hasLink.value ? linkProps.value : toggleAriaAttrs.value
|
|
349
337
|
)
|
|
350
338
|
}
|
|
351
339
|
|
|
@@ -383,7 +371,7 @@ export default createComponent({
|
|
|
383
371
|
)
|
|
384
372
|
]
|
|
385
373
|
|
|
386
|
-
if (props.expandSeparator
|
|
374
|
+
if (props.expandSeparator) {
|
|
387
375
|
node.push(
|
|
388
376
|
h(QSeparator, {
|
|
389
377
|
class:
|